No description
Find a file
Mathieu Benoit f6c0969929 [ADD] gyp for nss, and jsoncpp's doxygen output
nss will not configure without gyp:

  Building NSS requires an installation of gyp: https://gyp.gsrc.io

Google's build-file generator, which nss uses to produce its ninja files. It is a
real Arch package and a Python program, so it joins the Python set.

jsoncpp is the fourteenth instance of this shape and the sixth of my own making.
Removing the doxybuild.py call stopped the API html being generated; package()
still copied the directory it would have produced, and the name carries pkgver so
the path is not greppable without knowing the version.

The rule is mechanical enough now to state as a procedure rather than a lesson:
after removing a documentation build, grep package() for the OUTPUT directory
name, not for the tool. The tool appears in build(); the path appears in
package(), and it is the path that fails.

--- FR ---

nss ne se configure pas sans gyp :

  Building NSS requires an installation of gyp: https://gyp.gsrc.io

Le générateur de fichiers de construction de Google, dont nss se sert pour produire
ses fichiers ninja. C'est un vrai paquet Arch et un programme Python : il rejoint
l'ensemble Python.

jsoncpp est la quatorzième occurrence de cette forme, et la sixième de ma main.
Retirer l'appel à doxybuild.py a arrêté la génération du html d'API ; package()
copiait toujours le répertoire qu'il aurait produit, et son nom porte pkgver — le
chemin n'est donc pas trouvable par grep sans connaître la version.

La règle est assez mécanique pour être énoncée en procédure plutôt qu'en leçon :
après avoir retiré une construction de documentation, chercher dans package() le
nom du répertoire de SORTIE, pas celui de l'outil. L'outil est dans build() ; le
chemin est dans package(), et c'est le chemin qui échoue.

Assisted-by: Claude Opus 5
2026-08-24 00:03:26 -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 [ADD] gyp for nss, and jsoncpp's doxygen output 2026-08-24 00:03:26 -04:00
scripts [ADD] gyp for nss, and jsoncpp's doxygen output 2026-08-24 00:03:26 -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.