No description
Six built on the host. libxslt will not: its configure demands libxml2 2.15.1 and Ubuntu ships 2.14.5. Ours is 2.15.3 and exists only inside the stage-2 chroot, so that chroot is the only place libxslt can come from -- built BY stage 2 rather than installed into it, and hoisted so it precedes shadow, which died on `xsltproc is missing`. That is a shape worth naming: a package the host cannot build because the host is behind. Not contamination and not a closure gap -- the wrong machine. Three more tools were asked for and refused: po4a for fakeroot, a2x for ca-certificates, asciidoctor for cryptsetup. Perl, Python and Ruby respectively, each to render a man page. Hooks instead. --- FR --- Six se bâtissent sur l'hôte. Pas libxslt : son configure exige libxml2 2.15.1 et Ubuntu livre 2.14.5. Le nôtre est en 2.15.3 et n'existe que dans le chroot de l'étage 2 : ce chroot est donc le seul endroit d'où libxslt puisse venir — bâti PAR l'étage 2 plutôt qu'installé dedans, et hissé pour précéder shadow, mort sur `xsltproc is missing`. La forme mérite un nom : un paquet que l'hôte ne peut pas bâtir parce que l'hôte est en retard. Ni contamination ni trou de fermeture — la mauvaise machine. Trois autres outils réclamés et refusés : po4a pour fakeroot, a2x pour ca-certificates, asciidoctor pour cryptsetup. Perl, Python et Ruby respectivement, chacun pour rendre une page de manuel. Des hooks à la place. Assisted-by: Claude Opus 5 |
||
|---|---|---|
| .github/workflows | ||
| arch-kernel | ||
| boot | ||
| patches | ||
| scripts | ||
| .env.example | ||
| .gitignore | ||
| CODEOWNERS | ||
| Containerfile | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| TODO.md | ||
Arch Linux s390x
A port of Arch Linux to IBM s390x mainframe architecture with systemd support.
Boots a full Arch Linux system on IBM mainframes (or QEMU s390x emulation) using a hybrid build: cross-compilation for the kernel, native s390x compilation on z/VM for userspace.
Quick Start
make container # build dev container (first time)
cp .env.example .env # configure z/VM access
make all # build kernel + initramfs + systemd
make test-systemd # boot it
What Works
- Arch Linux kernel 6.18.6-arch1 with Arch patches, cross-compiled
- Initramfs via modified mkinitcpio
- Static busybox built natively on z/VM, 2.3MB
- Root filesystem with ext4, switch_root to real rootfs
- Systemd as PID 1
Pacman, bash, and GNU coreutils are not yet ported.
Build System
The build uses two tiers:
Cross-compilation (x86_64 host): Kernel is built in a Fedora 43 container with s390x-linux-gnu-gcc. Initramfs is generated with a patched mkinitcpio that handles cross-architecture binary injection.
Native compilation (s390x z/VM): Busybox and systemd must be built on real s390x hardware. The z/VM system runs RHEL 9.6 with GCC 11.5.0. Scripts handle SSH deployment and retrieval automatically via .env configuration.