Release version 2.3.0
This commit is contained in:
49
CHANGELOG.md
49
CHANGELOG.md
@@ -1,5 +1,54 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [2.3.0] - 2026-07-24
|
||||||
|
|
||||||
|
**✨ New**
|
||||||
|
|
||||||
|
- Guided setup wizard, now the default command: *lim* with no *--type* (or
|
||||||
|
*lim --type guided*) asks everything up front — distribution, target device,
|
||||||
|
hostname, login user + SSH key, password — then builds an encrypted,
|
||||||
|
Tor-remote-unlockable image unattended.
|
||||||
|
- Debian / Raspberry Pi OS remote LUKS unlock. The initramfs unlock stack is
|
||||||
|
now distro-agnostic behind an *InitramfsBackend* abstraction: *mkinitcpio*
|
||||||
|
for Arch/Manjaro, *initramfs-tools* (cryptsetup-initramfs + dropbear-initramfs
|
||||||
|
+ a Tor onion) for Raspberry Pi OS / moode / RetroPie.
|
||||||
|
- Flash full disk images into LUKS. Distributions that ship a *.img* rather
|
||||||
|
than a rootfs tarball (Raspberry Pi OS, moode, RetroPie, Manjaro ARM) are
|
||||||
|
loop-mounted and their boot + root partitions copied into a fresh LUKS
|
||||||
|
container. New Raspberry Pi OS catalog (*lite64* / *desktop64* / *lite32*).
|
||||||
|
- New *remote-unlock* command: reach a waiting initramfs over Tor (onion, via
|
||||||
|
*torsocks*) or plain SSH (host/IP), running *cryptroot-unlock* or presenting
|
||||||
|
the passphrase prompt. The wizard saves a target record under
|
||||||
|
*~/.config/lim/unlocks* so *lim --type remote-unlock* offers it directly.
|
||||||
|
- Cross-architecture builds. Building a foreign-arch image (e.g. arm64
|
||||||
|
Raspberry Pi OS on an x86 host) auto-installs *qemu-user-static* and registers
|
||||||
|
binfmt, or aborts before the target is erased with per-distro instructions.
|
||||||
|
- RTC-less clock hardening. A clock floor (build epoch baked into the initramfs)
|
||||||
|
plus a numeric *tor_ntp=* cmdline let the clock sync without DNS, so the Tor
|
||||||
|
onion still publishes on boards without a real-time clock (which boot at 1970).
|
||||||
|
- Numbered selection menus for distribution and version prompts; typing the
|
||||||
|
name still works.
|
||||||
|
- CI: a full Debian *build → boot → LUKS-unlock* QEMU end-to-end job runs on
|
||||||
|
push (*make test-qemu-debian*).
|
||||||
|
|
||||||
|
**🐛 Fixes**
|
||||||
|
|
||||||
|
- Raspberry Pi OS Bookworm boots the encrypted image: the initramfs is placed on
|
||||||
|
the */boot/firmware* FAT partition instead of the ext4 root, so cryptsetup is
|
||||||
|
present at boot (no more *(initramfs)* emergency shell).
|
||||||
|
- Chroot package installs are robust cross-host: a Debian-safe *PATH* (so
|
||||||
|
*update-initramfs* / *useradd* resolve) and *apt-get update* before install
|
||||||
|
(stock images ship stale lists whose superseded *.deb* URLs 404).
|
||||||
|
- Stock-image *fstab* is normalized (the existing */* line is replaced, not
|
||||||
|
duplicated) when copying a distro image into LUKS.
|
||||||
|
- Large copies show progress (*rsync --info=progress2*, *cp* fallback).
|
||||||
|
|
||||||
|
**💥 Breaking / behavior**
|
||||||
|
|
||||||
|
- *lim* with no *--type* now runs the guided wizard (previously *--type* was
|
||||||
|
required).
|
||||||
|
- The long-deprecated *--extra* argument is removed.
|
||||||
|
|
||||||
## [2.2.0] - 2026-07-21
|
## [2.2.0] - 2026-07-21
|
||||||
|
|
||||||
- Optional remote LUKS unlock via a Tor onion service in the initramfs.
|
- Optional remote LUKS unlock via a Tor onion service in the initramfs.
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "linux-image-manager"
|
name = "linux-image-manager"
|
||||||
version = "2.2.0"
|
version = "2.3.0"
|
||||||
description = "CLI (`lim`) for downloading, verifying and flashing Linux images, LUKS/Btrfs encrypted storage (single drive and RAID1), image backups and chroot maintenance"
|
description = "CLI (`lim`) for downloading, verifying and flashing Linux images, LUKS/Btrfs encrypted storage (single drive and RAID1), image backups and chroot maintenance"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.10"
|
requires-python = ">=3.10"
|
||||||
|
|||||||
Reference in New Issue
Block a user