Repository navigation
Copper Linux v0.2.0
Pre-release
Pre-release
What's Changed
- Copper Linux v0.2.0 released - second boot by @12hrformat in #7
- copper linux - v0.2.0 the second boot by @12hrformat in #8
Full Changelog: v0.1.0...v0.2.0
🔋 Copper Linux v0.2.0
v0.1.0 was a proof of life. This is the release where it stopped being
one.
Eighteen commits, one theme: stop shipping things that were obviously
broken and calling them done. Every single fix in here came from
actually sitting at the terminal and using it.
🖥️ The terminal
The headline. Our shell had no line editor — you typed, you backspaced,
and one wrong character in the middle meant retyping the whole line.
Now:
- ← → move through the line
- Home / End jump to either end
- Backspace / Delete real editing
- ↑ ↓ walk command history
- Prompt redraws in place
From scratch in src/main.c. Raw termios, no readline, no ncurses. Just
our shell being a shell.
edit_move_left() edit_move_right() edit_move_home() edit_move_end()
edit_insert() edit_backspace() edit_delete()
edit_hist_prev() edit_hist_next() refresh_line()
🔋 Hotfixes
Fix Copper without a reinstall. No new ISO, no reboot, no lost session.
copper charge # apply
copper rollback # list backups
copper rollback <name> # put one back
A maintainer writes the fix into hotfixes.json, you run one command.
{
"id": "demo-banner",
"file": "etc/copper/demo.txt",
"fail_code": "THIS LINE IS BROKEN",
"new_code": "THIS LINE HAS BEEN FIXED BY COPPER CHARGE",
"description": "Demo"
}
The good part: if fail_code isn't in the file, it's already fixed,
so it skips. No version tracking, no state file. Safe to run twice, ten
times, on a machine that's already patched.
Ships in the ISO, with config in /etc/copper/config and a local
database so you can test it with the network unplugged. 🔌
🐛 What was actually broken
First run, four fatal bugs:
- called curl, which we don't ship. We ship busybox wget.
- rollback could not restore anything. Backup names turn / into _;
the undo looked for a double underscore tr never emits.
- the only hotfix pointed at src/main.c — a repo path, not a live one
- there was no copper binary at all. The command you'd type
returned not found
Plus, from real screenshots: wizard prompts only appeared after you
pressed Enter, passwords echoed in plain text, the banner printed twice,
garbled typing from two shells fighting over one tty, Couldn't create
user, and a hardcoded copper@copper.
The copper charge feature looked finished. It was completely
non-functional. Fixing that is the actual story of this release.
✨ Smaller things
- Prompt is now you@copper instead of hardcoded
- CI fails the build on things it used to ship silently
- Serial log and screen say the same thing
⚠️ Not proven yet
Being straight about it, because "it compiles" isn't "it works":
- A full clean first-boot run — banner to shell, in one pass. Every
bug is fixed and individually verified; the whole path isn't.
- copper charge on a booted system. Verified off-ISO against a
fake root. Next thing I'm testing.
- Real internet traffic. ping/nslookup/wget still unrun.
- WiFi. Wired only. No wireless driver, no wpa_supplicant, and a
VM has no wireless NIC anyway.
That's why this is a pre-release off untested. Boot it, break it, tell
me. 🔋