Skip to content

Releases: 12hrformat/copperlinux

Copper Linux v0.2.0

Copper Linux v0.2.0 Pre-release
Pre-release

Choose a tag to compare

@12hrformat 12hrformat released this 01 Oct 16:32
c3eba42

What's Changed

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. 🔋

Birth of copper linux 👑👑

Pre-release

Choose a tag to compare

@Copper-linux Copper-linux released this 26 Sep 13:55
43f6ca1

Copper Linux v0.1.0 — First Boot

The first real milestone of Copper Linux.

This release marks the point where Copper goes beyond a source tree and successfully boots as a Linux system in a virtual machine.

What works

  • Boots the Copper Linux ISO through GRUB
  • Kernel and initramfs successfully start
  • Copper's own PID 1 takes over after "switch_root"
  • Overlay filesystem is mounted correctly
  • Copper brings up a physical network interface
  • DHCP successfully obtains an IPv4 lease
  • Default routing is configured
  • DNS configuration is populated
  • CI builds and validates the ISO
  • Build stages use input-aware stamps to prevent stale cached artifacts
  • Boot and networking paths include regression tests and validation

A successful boot reaches the network stage with an output similar to:

copper: initramfs up, medium is /dev/sr0
copper: handing over to copper-init
copper: eth0 is up, asking DHCP for an address
copper-net: eth0 leased 192.168.x.x/24
copper-net: default route configured
copper-net: nameserver configured
What this release is not

This is an early development release. Copper is not yet a general-purpose desktop operating system and should currently be considered experimental. Pretty obv

Wi-Fi, Bluetooth, persistent installation, a graphical environment, broader hardware support, and additional userspace functionality are still under development.

Why this release matters

Copper can now boot its own kernel, execute its own init system and userspace, mount its filesystem environment, and establish network configuration without relying on an existing Linux distribution at runtime.

This is the foundation for everything that comes next.

Copper Linux is booting ARFGGGGGHHH STAY TUNED