feat(util-linux): drop configure-project-installer + sudo, inline autotools build#68
Merged
Sunrisepeak merged 1 commit intomainfrom May 1, 2026
Merged
Conversation
…otools build
Switch fromsource:util-linux to its own inline autotools build:
* paths derived from pkginfo.install_file()
* configure + make + install in single sh -c
* fixed -j8
* sysroot include dir wrapped in _sys_usr_includedir() helper
* shell cp -r replaces os.dirs / os.files glob (silent no-ops in 0.4.9)
* declare upstream url + sha256 (mirrors.edge.kernel.org, derives the
v<MAJOR.MINOR>/ subdir from version)
* deps: explicit xim:gcc + xim:make + xim:xpkg-helper (previously
pulled in transitively via xim:configure-project-installer)
Build flags:
--disable-eject (skip scsi/scsi.h dep)
--disable-makeinstall-chown
--disable-makeinstall-setuid (drop sudo install path; xpkg
binaries get xvm-shimmed into
subos/default/bin and root
perms aren't useful inside the
per-user xpkg dir anyway)
--without-systemd
--without-systemdsystemunitdir (no systemd in xpkg sysroot)
--disable-asciidoc (skip docs)
--disable-bash-completion (would write outside prefix to
/usr/share/bash-completion)
Verified end-to-end in xlings 0.4.9 iso (with cluster-B leaf 3
ncurses MERGED upstream as #64):
✓ configure -> make -j8 -> make install
✓ produced bin/{uuidgen,lsblk,mount,fdisk,hwclock,…}
✓ produced lib/{libuuid,libmount,libblkid,libfdisk,libsmartcols,
liblastlog2}.so.1.x.y + soname symlinks
✓ headers (incl. libmount/, blkid/, uuid/, …) shell-copied to
subos sysroot
✓ "9 package(s) installed" exit 0
Cluster B leaf 7/8.
2 tasks
Sunrisepeak
added a commit
that referenced
this pull request
May 1, 2026
#69) Switch fromsource:python (cpython) to its own inline autotools build, applying the cluster-A sandbox-fix template. This is the last cluster B leaf and exercises every other cluster-B fix end-to-end (zlib, openssl, ncurses, readline, libffi, bzip2, xz-utils, util-linux/libuuid). * paths derived from pkginfo.install_file() (path.absolute is nil) * configure + make + install chained in single sh -c (os.cd doesn't propagate to system.exec children) * fixed -j8 * deps: explicit xim:gcc + xim:make + xim:xpkg-helper (previously pulled in transitively via xim:configure-project-installer) * license: humanized string -> SPDX PSF-2.0 * env exports kept inline in sh -c (TZDIR, CPPFLAGS, LDFLAGS) so they reach the configure subprocess; os.setenv at lua scope didn't reach configure's grandchildren via xpkg-helper indirection in the legacy flow. CPPFLAGS / LDFLAGS extensions: -I<sysroot>/usr/include core stdlib deps -I<sysroot>/usr/include/ncurses for `<termcap.h>` / `<curses.h>` flat lookup (ncurses installs these under the ncurses/ subdir) -I<sysroot>/usr/include/openssl for openssl 3 headers (some are under the openssl/ subdir) -L<sysroot>/lib find xvm-shimmed shared libs -Wl,-rpath,/home/xlings/.xlings_data/subos/linux/lib bake canonical xlings runtime lib path so the produced python binary loads its dependent shared libs from a user-machine install, not the build host Configure flags: --enable-shared ship libpython3.13.so for embedders --with-computed-gotos faster main loop dispatch --enable-ipv6 IPv6 sockets --enable-loadable-sqlite-extensions ready for future fromsource:sqlite3 --with-system-ffi link against fromsource:libffi Verified end-to-end in xlings 0.4.9 iso (with cluster B 1..7 all MERGED upstream as #62..#68): ✓ configure -> make -j8 -> make install (~1m20s with deps cached) ✓ produced bin/python3, bin/pip3, bin/idle3, bin/python3-config ✓ produced lib/libpython3.13.so.1.0 ✓ python3 --version -> 3.13.1 ✓ stdlib import sanity: - zlib (zlib 1.3.1) - ssl (OpenSSL 3.1.5 30 Jan 2024) - hashlib (sha256 round-trip) - lzma (xz-utils via _lzma) - bz2 (bzip2) - uuid (util-linux libuuid) - readline (8.2 patched series) - ctypes (libffi) _sqlite3 is intentionally skipped (no fromsource:sqlite3 yet — tracked under the existing "TODO: gdbm, sqlite3, tk/tkinter" line in deps). Cluster B leaf 8/8 — sweep complete. Net effect across cluster B: `grep -lR configure-project-installer pkgs/` should now match zero.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
fromsource:util-linuxfromxim:configure-project-installershim to its own inline autotools buildsudo configure-project-installer ... --install-by-sudowhich was needed for setuid bits onmount/wall. Setuid is meaningless for files inside the per-user xpkg dir that get xvm-shimmed intosubos/default/binlater, so we use--disable-makeinstall-{chown,setuid}and skip the elevation--without-systemd*,--disable-asciidoc,--disable-bash-completionto keep the install confined to our prefixv<MAJOR.MINOR>/subdir derivation)Verification (local isolated xlings 0.4.9, with cluster-B 3 ncurses #64 merged)
bin/{uuidgen,lsblk,mount,fdisk,hwclock,…}lib/{libuuid,libmount,libblkid,libfdisk,libsmartcols,liblastlog2}.so.1.*+ soname symlinksTest plan