Skip to content

feat(readline): drop configure-project-installer, inline build with self-extract + patches - #65

Merged
Sunrisepeak merged 1 commit into
mainfrom
feat/cluster-b-readline-sandbox
May 1, 2026
Merged

Sunrisepeak merged 1 commit into
mainfrom
feat/cluster-b-readline-sandbox

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

Summary

  • Switch fromsource:readline from xim:configure-project-installer shim to its own inline build
  • Apply the cluster-A sandbox-fix template
  • Self-extract source from tarball at install-hook start (xlings doesn't re-extract on retry; previous partial-patch state was leaking through and tripping Hunk FAILED at 1 on the patchlevel hunk)
  • Patches mirror: ftpmirror.gnu.org → ftp.gnu.org (mirror occasionally 404s on individual patches between rotations)
  • CPPFLAGS extended with <sysroot>/usr/include/ncurses so readline's #include <termcap.h> resolves (ncurses installs termcap.h under the ncurses/ subdir)
  • License: corrected to SPDX GPL-3.0
  • Cluster B leaf 4/8

Verification (local isolated xlings 0.4.9, with cluster-B 3 ncurses #64 already merged)

  • ✅ source self-extract + 13 upstream readline-8.2 patches applied
  • ✅ checking for termcap.h... yes, tputs/tgoto resolve to real 3-arg signatures
  • ✅ produced libreadline.so.8.2 + libhistory.so.8.2 + soname symlinks
  • ✅ pkgconfig files copied to subos sysroot/usr/lib/pkgconfig

Test plan

  • Local iso e2e
  • CI (linux-test, static-and-isolation, index-registration)

…elf-extract + patches

Switch fromsource:readline to its own inline autotools build, applying
the cluster-A sandbox-fix template and self-managing the source
extraction + patch pipeline:

* paths derived from pkginfo.install_file()
* sandbox-blocked APIs replaced: path.absolute, os.cd, os.files glob
* re-extract source from tarball at install-hook start (xlings doesn't
  re-extract on retry, so any partial-patch state from a previous
  failed run was leaking through and tripping `Hunk FAILED at 1` on
  the patchlevel hunk)
* patch fetch + apply + configure + make + install chained in single
  sh -c
* patches mirror switched ftpmirror.gnu.org → ftp.gnu.org (the round-
  robin mirror occasionally 404s on individual patches between
  rotations; canonical source is stable)
* CPPFLAGS now also points at <sysroot>/usr/include/ncurses so
  readline configure finds termcap.h (ncurses installs it under the
  ncurses/ subdir; readline's `#include <termcap.h>` won't otherwise
  match, and the build fails with stub `extern int tputs ();` decls
  vs real 3-arg call sites in display.c)
* license: GPL → SPDX GPL-3.0
* shell-cp glob replaces os.files(*.pc) loops in config()/uninstall()

Verified end-to-end in xlings 0.4.9 iso (with cluster-B leaf 3
ncurses MERGED upstream as #64):
  ✓ source self-extract + 13 upstream readline-8.2 patches applied
  ✓ termcap.h detected, tputs/tgoto resolve to real 3-arg signatures
  ✓ produced libreadline.so.8.2 + libhistory.so.8.2 + soname symlinks
  ✓ pkgconfig files copied to subos sysroot/usr/lib/pkgconfig
  ✓ "10 package(s) installed" exit 0

Cluster B leaf 4/8.
@Sunrisepeak
Sunrisepeak merged commit 60fb732 into main May 1, 2026
5 checks passed
@Sunrisepeak
Sunrisepeak deleted the feat/cluster-b-readline-sandbox branch May 1, 2026 18:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant