Arctic Linux - Alpha 2 (not fully tested)
Arctic Linux Alpha 2 — Arctic-linux-a2.iso, x86_64, 695 MiB.
Not fully tested. The live image is verified — it boots, the greeting,
console and regulatory database were checked on a running machine. The
install-to-disk path carries fixes that are reasoned and code-verified but
whose end-to-end run was not completed before release, and the wireless
fix could not be exercised in a virtual machine because there is no wireless
hardware in one. Treat this as a test image. Keep a copy of anything that
matters on the disk you point it at.
Alpha 1 ran from a1 to a1.24. This is the start of the second line, and it is
mostly two things that had never worked at all.
Wireless could never have associated
wifi-connect wrote its wpa_supplicant configuration by piping the passphrase
into wpa_passphrase, to keep it out of a command line every process can read.
wpa_passphrase turns terminal echo off before reading, so it calls
tcgetattr on its stdin. On a pipe that fails with ENOTTY and it exits 1
having written nothing:
$ printf 'testpass123\n' | wpa_passphrase TestNet
exit=1 stdout: (empty)
stderr: tcgetattr: Inappropriate ioctl for device
Its stderr went to /dev/null and its exit status was never checked, so what
landed on disk was a configuration file with no network= block in it.
wpa_supplicant started perfectly, associated with nothing, and thirty seconds
later blamed the passphrase. The passphrase was never wrong.
The block is written directly now — wpa_supplicant derives the key from a
quoted passphrase itself, and wpa_passphrase's own output carries the
plaintext in a #psk= comment beside the hash anyway, so the indirection was
protecting nothing. 0600 either way, and it refuses to continue if no network
block landed.
Three more, all on the same path:
- Nothing wrote a
ctrl_interface, so wpa_supplicant opened no control
socket, everywpa_clicall failed silently — including the association
check in the wait loop — and the error message told you to run
wpa_cli -i wlan0 status, which could only answerCould not connect to wpa_supplicant. It prints the realwpa_stateand the supplicant log now. - The installer dropped the key it was carrying across. It read the psk
withgrep -v '^"', deliberately skipping a quoted passphrase, which would
have written an open-network profile for a WPA network. Both forms accepted. - No regulatory database on the image, so the kernel stayed in world
domain00where most 5 GHz channels are receive-only: the access point
shows in a scan and the card is forbidden to transmit to it.
wireless-regdbis 17 KiB and ships now;WIFI_COUNTRY=US wifi-connect
sets a domain.
No installed system could boot
The installer wrote root=PARTUUID= on the kernel command line and into
fstab. Arctic always boots through an initramfs, and the initramfs resolves
root= with busybox findfs, which implements LABEL= and UUID= and
nothing else:
# findfs UUID=f1832033-6264-4f35-8f81-43170e93a396
/dev/vda3
# findfs PARTUUID=9813faed-6c1b-4e86-808b-61e6498d25db
Usage: findfs LABEL=label | UUID=uuid
Every install finished, reported success, and then stopped at no device matches PARTUUID=... in the initramfs shell with the disk sitting right
there. busybox blkid does not report PARTUUID either, so nothing on the
machine could have resolved it. /boot in fstab had the same problem.
Both are UUID= now, falling back to PARTUUID= then the device path;
arctic-boot-strap re-derives rather than copying a PARTUUID out of an older
fstab; and the initramfs falls back to LABEL=arctic-root, which every
filesystem the installer makes carries, so a machine installed by an older
version comes up too.
The firewall had no package
A_FIREWALL=y is the default and nftables had no binary in any repository, so
the installer compiled it inside the target and failed with "C compiler cannot
create executables" — and reported success anyway. It would not build on the
host either: configure probes for readline inside -ledit, which Arctic's
libedit does not provide. Built --with-cli=no, which drops nft -i and
nothing else, and packaged with libnftnl.
The boot and the console
- The whole boot was right-aligned against column 80 of a 240-column
console. The width was measured whenrc.libwas sourced — the first
thing rc.boot does, before/devis mounted — so every boot took the
80-column fallback. Measured at first use and cached now. - Every service reported
t=0.0s: one decimal place, and almost
everything starts in under a tenth of a second. - A failure before
/run/arcticexisted printed a shell error on top of
itself — a redirection that cannot be opened is reported by the shell
before2>/dev/nullis in effect. - The live session says how to install it instead of running
arcticfetch. Three steps, the alpm commands, where the configuration
lives, andarctic-chrootfor repair.arcticfetchis still there to run,
and no longer reportsshfor a session running zsh.
Known
- No web browser: firefox, librewolf, chromium and qutebrowser all need Rust.
- No audio — wireplumber will not build against the packaged lua.
- No terminfo database, so
tputdoes not work. - Declared dependencies are still not checked against real linkage; dwm
installs and then fails onlibharfbuzz.so.0. gtk3in the repository is corrupt (no.PKGINFO) and cannot be installed.- LXDE and LXQt have recipes but no packages.
Install
dd if=Arctic-linux-a2.iso of=/dev/sdX bs=4M status=progress conv=fsync
Run wifi-connect if you need wireless, edit /etc/arctic/install.conf, run
arctic-install.
sha256 b4972b233eda64f30717d8271f2787b752f3315a326d40f2836f6e56491fdf2b