No description
Find a file
Mathieu Benoit fe9c58c1a3 [FIX] systemd: sixteen man page operations, across five sub-packages
This section was written three times, each catching more:

  1st  man3 only                    -> stopped on man8/*nss*
  2nd  mv and rm of share/man       -> stopped on `ln -s ... installkernel.8.gz`
  3rd  mv, ln and rm                -> stopped on

         install -D -m0644 -t "$pkgdir"/usr/share/man/man1 \
           build/man/init.1

       in package_systemd-sysvcompat(), whose SOURCE is under build/ and whose
       path contains no "man<digit>" component at all.

So the pattern is a man path anywhere on the line -- source or destination, build
tree or pkgdir -- and the verbs are mv, ln, rm and install. Nine neutralised,
three made tolerant, `install -d` left alone because creating an empty directory
harms nothing and other lines put real files in the same trees.

Three rounds on one package is what guessing the shape of "all of them" costs
instead of listing them. The listing is in the hook now.

--- FR ---

Cette section a été écrite trois fois, chacune en attrapant davantage :

  1re  man3 seul                    -> arrêt sur man8/*nss*
  2e   mv et rm de share/man        -> arrêt sur `ln -s ... installkernel.8.gz`
  3e   mv, ln et rm                 -> arrêt sur

         install -D -m0644 -t "$pkgdir"/usr/share/man/man1 \
           build/man/init.1

       dans package_systemd-sysvcompat(), dont la SOURCE est sous build/ et dont
       le chemin ne contient aucun composant « man<chiffre> ».

Le motif est donc un chemin de manuel n'importe où sur la ligne — source ou
destination, arbre de construction ou pkgdir — et les verbes sont mv, ln, rm et
install. Neuf neutralisés, trois rendus tolérants, `install -d` laissé tel quel :
créer un répertoire vide ne nuit pas, et d'autres lignes y installent de vrais
fichiers.

Trois tours sur un seul paquet, voilà ce que coûte le fait de deviner la forme de
« tous » au lieu de les énumérer. L'énumération est dans le hook.

Assisted-by: Claude Opus 5
2026-08-24 00:33:37 -04:00
.github/workflows making the house a home 2026-01-27 23:26:31 +01:00
arch-kernel making the house a home 2026-01-27 23:26:31 +01:00
boot making the house a home 2026-01-27 23:26:31 +01:00
patches [FIX] systemd: sixteen man page operations, across five sub-packages 2026-08-24 00:33:37 -04:00
scripts [FIX] the chroot had no /dev/shm, and systemd links man pages too 2026-08-24 00:29:13 -04:00
.env.example [ADD] upstream.lock, and keep the machine out of the repository 2026-08-22 22:52:04 -04:00
.gitignore making the house a home 2026-01-27 23:26:31 +01:00
CODEOWNERS making the house a home 2026-01-27 23:26:31 +01:00
Containerfile making the house a home 2026-01-27 23:26:31 +01:00
LICENSE use arch kernel patches 2025-06-02 21:53:33 +02:00
Makefile making the house a home 2026-01-27 23:26:31 +01:00
README.md making the house a home 2026-01-27 23:26:31 +01:00
RELAIS.md [ADD] upstream.lock, and keep the machine out of the repository 2026-08-22 22:52:04 -04:00
TODO.md [FIX] help2man was uninstallable, which stopped the whole pass 2026-08-21 00:33:07 -04:00

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.