Integrate metadata documentation and jhalfs manifests

This commit is contained in:
m00d 2025-10-01 06:58:04 +02:00
parent 74bf8a32d6
commit 3ce470e019
34 changed files with 5544 additions and 240 deletions

29
ai/bugs.json Normal file
View file

@ -0,0 +1,29 @@
[
{
"id": "disk-manager-private-fields",
"title": "Disk manager accesses private GPT fields",
"description": "src/tui/disk_manager.rs reaches into gptman::GPT::partitions which is private, breaking compilation.",
"status": "open",
"owner": "default_cli",
"created_at": "2025-03-09T00:00:00Z",
"labels": ["tui", "blocking-build"]
},
{
"id": "tui-feature-build",
"title": "TUI modules require crossterm feature gating",
"description": "When the crate is built without the `tui` feature the main binary still imports crossterm types and fails to compile.",
"status": "open",
"owner": "default_cli",
"created_at": "2025-03-09T00:00:00Z",
"labels": ["tui", "feature-gate"]
},
{
"id": "metadata-harvest-no-source-urls",
"title": "Harvested metadata missing source URLs",
"description": "`metadata_indexer harvest --book mlfs --page chapter05/binutils-pass1 --dry-run` emits a draft record with no source URLs even after wget-list fallback; Binutils tarball discovery logic needs to inspect package download tables or improve slug matching.",
"status": "open",
"owner": "default_cli",
"created_at": "2025-10-01T04:40:00Z",
"labels": ["metadata", "ingest", "mlfs"]
}
]

97
ai/metadata/cache/mlfs-md5sums.txt vendored Normal file
View file

@ -0,0 +1,97 @@
590765dee95907dbc3c856f7255bd669 acl-2.3.2.tar.xz
227043ec2f6ca03c0948df5517f9c927 attr-2.5.2.tar.gz
1be79f7106ab6767f18391c5e22be701 autoconf-2.72.tar.xz
cea31dbf1120f890cbf2a3032cfb9a68 automake-1.18.1.tar.xz
977c8c0c5ae6309191e7768e28ebc951 bash-5.3.tar.gz
ad4db5a0eb4fdbb3f6813be4b6b3da74 bc-7.0.3.tar.xz
dee5b4267e0305a99a3c9d6131f45759 binutils-2.45.tar.xz
c28f119f405a2304ff0a7ccdcc629713 bison-3.8.2.tar.xz
67e051268d0c475ea773822f7500d0e5 bzip2-1.0.8.tar.gz
b2e687b6e664b9dd76581836c5c3e782 coreutils-9.8.tar.xz
68c5208c58236eba447d7d6d1326b821 dejagnu-1.6.3.tar.gz
d1b18b20868fb561f77861cd90b05de4 diffutils-3.12.tar.xz
113d7a7ee0710d2a670a44692a35fd2e e2fsprogs-1.47.3.tar.gz
ceefa052ded950a4c523688799193a44 elfutils-0.193.tar.bz2
423975a2a775ff32f12c53635b463a91 expat-2.7.3.tar.xz
00fce8de158422f5ccd2666512329bd2 expect5.45.4.tar.gz
459da2d4b534801e2e2861611d823864 file-5.46.tar.gz
870cfd71c07d37ebe56f9f4aaf4ad872 findutils-4.10.0.tar.xz
2882e3179748cc9f9c23ec593d6adc8d flex-2.6.4.tar.gz
c538415c1f27bd69cbbbf3cdd5135d39 flit_core-3.12.0.tar.gz
b7014650c5f45e5d4837c31209dc0037 gawk-5.3.2.tar.xz
b861b092bf1af683c46a8aa2e689a6fd gcc-15.2.0.tar.xz
aaa600665bc89e2febb3c7bd90679115 gdbm-1.26.tar.gz
8e14e926f088e292f5f2bce95b81d10e gettext-0.26.tar.xz
23c6f5a27932b435cae94e087cb8b1f5 glibc-2.42.tar.xz
956dc04e864001a9c22429f761f2c283 gmp-6.3.0.tar.xz
31753b021ea78a21f154bf9eecb8b079 gperf-3.3.tar.gz
5d9301ed9d209c4a88c8d3a6fd08b9ac grep-3.12.tar.xz
5e4f40315a22bb8a158748e7d5094c7d groff-1.23.0.tar.gz
60c564b1bdc39d8e43b3aab4bc0fb140 grub-2.12.tar.xz
4bf5a10f287501ee8e8ebe00ef62b2c2 gzip-1.14.tar.xz
437a3e9f4a420244c90db4ab20e713b6 iana-etc-20250926.tar.gz
401d7d07682a193960bcdecafd03de94 inetutils-2.6.tar.xz
12e517cac2b57a0121cda351570f1e63 intltool-0.51.0.tar.gz
80e1f91bf59d572acc15d5c6eb4f3e7c iproute2-6.16.0.tar.xz
11ee9d335b227ea2e8579c4ba6e56138 isl-0.27.tar.xz
66d4c25ff43d1deaf9637ccda523dec8 jinja2-3.1.6.tar.gz
7be7c6f658f5fb9512e2c490349a8eeb kbd-2.9.0.tar.xz
36f2cc483745e81ede3406fa55e1065a kmod-34.2.tar.xz
0386dc14f6a081a94dfb4c2413864eed less-679.tar.gz
2be34eced7c861fea8894e7195dac636 lfs-bootscripts-20250827.tar.xz
449ade7d620b5c4eeb15a632fbaa4f74 libcap-2.76.tar.xz
92af9efad4ba398995abf44835c5d9e9 libffi-3.5.2.tar.gz
17ac6969b2015386bcb5d278a08a40b5 libpipeline-1.5.8.tar.gz
22e0a29df8af5fdde276ea3a7d351d30 libtool-2.5.4.tar.xz
1796a5d20098e9dd9e3f576803c83000 libxcrypt-4.4.38.tar.xz
feb0a3d5ecf5a4628aed7d9f8f7ab3f6 linux-6.16.9.tar.xz
dead9f5f1966d9ae56e1e32761e4e675 lz4-1.10.0.tar.gz
6eb2ebed5b24e74b6e890919331d2132 m4-1.4.20.tar.xz
c8469a3713cbbe04d955d4ae4be23eeb make-4.4.1.tar.gz
b6335533cbeac3b24cd7be31fdee8c83 man-db-2.13.1.tar.xz
16f68d70139dd2bbcae4102be4705753 man-pages-6.15.tar.xz
13a73126d25afa72a1ff0daed072f5fe markupsafe-3.0.3.tar.gz
19e0a1091cec23d369dd77d852844195 meson-1.9.1.tar.gz
5c9bc658c9fd0f940e8e3e0f09530c62 mpc-1.3.1.tar.gz
7c32c39b8b6e3ae85f25156228156061 mpfr-4.2.2.tar.xz
679987405412f970561cc85e1e6428a2 ncurses-6.5-20250809.tgz
c35f8f55f4cf60f1a916068d8f45a0f8 ninja-1.13.1.tar.gz
0ec20faeb96bbb203c8684cc7fe4432e openssl-3.5.3.tar.gz
ab0ef21ddebe09d1803575120d3f99f8 packaging-25.0.tar.gz
149327a021d41c8f88d034eab41c039f patch-2.8.tar.xz
641f99b635ebb9332a9b6a8ce8e2f3cf pcre2-10.46.tar.bz2
7a6950a9f12d01eb96a9d2ed2f4e0072 perl-5.42.0.tar.xz
3291128c917fdb8fccd8c9e7784b643b pkgconf-2.5.1.tar.xz
90803e64f51f192f3325d25c3335d057 procps-ng-4.0.5.tar.xz
53eae841735189a896d614cba440eb10 psmisc-23.7.tar.xz
256cdb3bbf45cdce7499e52ba6c36ea3 Python-3.13.7.tar.xz
b84c0d81b2758398bb7f5b7411d3d908 python-3.13.7-docs-html.tar.bz2
25a73bfb2a3ad7146c5e9d4408d9f6cd readline-8.3.tar.gz
6aac9b2dbafcd5b7a67a8a9bcb8036c3 sed-4.9.tar.xz
82e1d67883b713f9493659b50d13b436 setuptools-80.9.0.tar.gz
30ef46f54363db1d624587be68794ef2 shadow-4.18.0.tar.xz
d74bbdca4ab1b2bd46d3b3f8dbb0f3db sqlite-autoconf-3500400.tar.gz
63a62af5b35913459954e6e66876f2b8 sqlite-doc-3500400.tar.xz
af60786956a2dc84054fbf46652e515e sysklogd-2.7.2.tar.gz
25fe5d328e22641254761f1baa74cee0 systemd-257.8.tar.gz
a44063e2ec0cf4adfd2ed5c9e9e095c5 systemd-man-pages-257.8.tar.xz
bc6890b975d19dc9db42d0c7364dd092 sysvinit-3.14.tar.xz
a2d8042658cfd8ea939e6d911eaf4152 tar-1.35.tar.xz
1ec3444533f54d0f86cd120058e15e48 tcl8.6.17-src.tar.gz
60c71044e723b0db5f21be82929f3534 tcl8.6.17-html.tar.gz
11939a7624572814912a18e76c8d8972 texinfo-7.2.tar.xz
ad65154c48c74a9b311fe84778c5434f tzdata2025b.tar.gz
acd4360d8a5c3ef320b9db88d275dae6 udev-lfs-20230818.tar.xz
a2a3281ce76821c4bc28794fdf9d3994 util-linux-2.41.2.tar.xz
e72f31be182f1ccf4b66bef46ac1e60e vim-9.1.1806.tar.gz
65e09ee84af36821e3b1e9564aa91bd5 wheel-0.46.1.tar.gz
89a8e82cfd2ad948b349c0a69c494463 XML-Parser-2.47.tar.gz
cf5e1feb023d22c6bdaa30e84ef3abe3 xz-5.8.1.tar.xz
9855b6d802d7fe5b7bd5b196a2271655 zlib-1.3.1.tar.gz
780fc1896922b1bc52a4e90980cdda48 zstd-1.5.7.tar.gz
6a5ac7e89b791aae556de0f745916f7f bzip2-1.0.8-install_docs-1.patch
c800540039fb0707954197486b1bde70 coreutils-9.8-i18n-2.patch
0ca4d6bb8d572fbcdb13cb36cd34833e expect-5.45.4-gcc15-1.patch
9a5997c3452909b1769918c759eff8a2 glibc-2.42-fhs-1.patch
f75cca16a38da6caa7d52151f7136895 kbd-2.9.0-backspace-1.patch
3af8fd8e13cad481eeeaa48be4247445 sysvinit-3.14-consolidated-1.patch

97
ai/metadata/cache/mlfs-wget-list.txt vendored Normal file
View file

@ -0,0 +1,97 @@
https://download.savannah.gnu.org/releases/acl/acl-2.3.2.tar.xz
https://download.savannah.gnu.org/releases/attr/attr-2.5.2.tar.gz
https://ftp.gnu.org/gnu/autoconf/autoconf-2.72.tar.xz
https://ftp.gnu.org/gnu/automake/automake-1.18.1.tar.xz
https://ftp.gnu.org/gnu/bash/bash-5.3.tar.gz
https://github.com/gavinhoward/bc/releases/download/7.0.3/bc-7.0.3.tar.xz
https://sourceware.org/pub/binutils/releases/binutils-2.45.tar.xz
https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz
https://www.sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz
https://ftp.gnu.org/gnu/coreutils/coreutils-9.8.tar.xz
https://ftp.gnu.org/gnu/dejagnu/dejagnu-1.6.3.tar.gz
https://ftp.gnu.org/gnu/diffutils/diffutils-3.12.tar.xz
https://downloads.sourceforge.net/project/e2fsprogs/e2fsprogs/v1.47.3/e2fsprogs-1.47.3.tar.gz
https://sourceware.org/ftp/elfutils/0.193/elfutils-0.193.tar.bz2
https://github.com/libexpat/libexpat/releases/download/R_2_7_3/expat-2.7.3.tar.xz
https://prdownloads.sourceforge.net/expect/expect5.45.4.tar.gz
https://astron.com/pub/file/file-5.46.tar.gz
https://ftp.gnu.org/gnu/findutils/findutils-4.10.0.tar.xz
https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz
https://pypi.org/packages/source/f/flit-core/flit_core-3.12.0.tar.gz
https://ftp.gnu.org/gnu/gawk/gawk-5.3.2.tar.xz
https://ftp.gnu.org/gnu/gcc/gcc-15.2.0/gcc-15.2.0.tar.xz
https://ftp.gnu.org/gnu/gdbm/gdbm-1.26.tar.gz
https://ftp.gnu.org/gnu/gettext/gettext-0.26.tar.xz
https://ftp.gnu.org/gnu/glibc/glibc-2.42.tar.xz
https://ftp.gnu.org/gnu/gmp/gmp-6.3.0.tar.xz
https://ftp.gnu.org/gnu/gperf/gperf-3.3.tar.gz
https://ftp.gnu.org/gnu/grep/grep-3.12.tar.xz
https://ftp.gnu.org/gnu/groff/groff-1.23.0.tar.gz
https://ftp.gnu.org/gnu/grub/grub-2.12.tar.xz
https://ftp.gnu.org/gnu/gzip/gzip-1.14.tar.xz
https://github.com/Mic92/iana-etc/releases/download/20250926/iana-etc-20250926.tar.gz
https://ftp.gnu.org/gnu/inetutils/inetutils-2.6.tar.xz
https://launchpad.net/intltool/trunk/0.51.0/+download/intltool-0.51.0.tar.gz
https://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-6.16.0.tar.xz
https://libisl.sourceforge.io/isl-0.27.tar.xz
https://pypi.org/packages/source/J/Jinja2/jinja2-3.1.6.tar.gz
https://www.kernel.org/pub/linux/utils/kbd/kbd-2.9.0.tar.xz
https://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-34.2.tar.xz
https://www.greenwoodsoftware.com/less/less-679.tar.gz
https://www.linuxfromscratch.org/lfs/downloads/development/lfs-bootscripts-20250827.tar.xz
https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.76.tar.xz
https://github.com/libffi/libffi/releases/download/v3.5.2/libffi-3.5.2.tar.gz
https://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.5.8.tar.gz
https://ftp.gnu.org/gnu/libtool/libtool-2.5.4.tar.xz
https://github.com/besser82/libxcrypt/releases/download/v4.4.38/libxcrypt-4.4.38.tar.xz
https://www.kernel.org/pub/linux/kernel/v6.x/linux-6.16.9.tar.xz
https://github.com/lz4/lz4/releases/download/v1.10.0/lz4-1.10.0.tar.gz
https://ftp.gnu.org/gnu/m4/m4-1.4.20.tar.xz
https://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz
https://download.savannah.gnu.org/releases/man-db/man-db-2.13.1.tar.xz
https://www.kernel.org/pub/linux/docs/man-pages/man-pages-6.15.tar.xz
https://pypi.org/packages/source/M/MarkupSafe/markupsafe-3.0.3.tar.gz
https://github.com/mesonbuild/meson/releases/download/1.9.1/meson-1.9.1.tar.gz
https://ftp.gnu.org/gnu/mpc/mpc-1.3.1.tar.gz
https://ftp.gnu.org/gnu/mpfr/mpfr-4.2.2.tar.xz
https://invisible-mirror.net/archives/ncurses/current/ncurses-6.5-20250809.tgz
https://github.com/ninja-build/ninja/archive/v1.13.1/ninja-1.13.1.tar.gz
https://github.com/openssl/openssl/releases/download/openssl-3.5.3/openssl-3.5.3.tar.gz
https://files.pythonhosted.org/packages/source/p/packaging/packaging-25.0.tar.gz
https://ftp.gnu.org/gnu/patch/patch-2.8.tar.xz
https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.46/pcre2-10.46.tar.bz2
https://www.cpan.org/src/5.0/perl-5.42.0.tar.xz
https://distfiles.ariadne.space/pkgconf/pkgconf-2.5.1.tar.xz
https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-4.0.5.tar.xz
https://sourceforge.net/projects/psmisc/files/psmisc/psmisc-23.7.tar.xz
https://www.python.org/ftp/python/3.13.7/Python-3.13.7.tar.xz
https://www.python.org/ftp/python/doc/3.13.7/python-3.13.7-docs-html.tar.bz2
https://ftp.gnu.org/gnu/readline/readline-8.3.tar.gz
https://ftp.gnu.org/gnu/sed/sed-4.9.tar.xz
https://pypi.org/packages/source/s/setuptools/setuptools-80.9.0.tar.gz
https://github.com/shadow-maint/shadow/releases/download/4.18.0/shadow-4.18.0.tar.xz
https://sqlite.org/2025/sqlite-autoconf-3500400.tar.gz
https://anduin.linuxfromscratch.org/LFS/sqlite-doc-3500400.tar.xz
https://github.com/troglobit/sysklogd/releases/download/v2.7.2/sysklogd-2.7.2.tar.gz
https://github.com/systemd/systemd/archive/v257.8/systemd-257.8.tar.gz
https://anduin.linuxfromscratch.org/LFS/systemd-man-pages-257.8.tar.xz
https://github.com/slicer69/sysvinit/releases/download/3.14/sysvinit-3.14.tar.xz
https://ftp.gnu.org/gnu/tar/tar-1.35.tar.xz
https://downloads.sourceforge.net/tcl/tcl8.6.17-src.tar.gz
https://downloads.sourceforge.net/tcl/tcl8.6.17-html.tar.gz
https://ftp.gnu.org/gnu/texinfo/texinfo-7.2.tar.xz
https://www.iana.org/time-zones/repository/releases/tzdata2025b.tar.gz
https://anduin.linuxfromscratch.org/LFS/udev-lfs-20230818.tar.xz
https://www.kernel.org/pub/linux/utils/util-linux/v2.41/util-linux-2.41.2.tar.xz
https://github.com/vim/vim/archive/v9.1.1806/vim-9.1.1806.tar.gz
https://pypi.org/packages/source/w/wheel/wheel-0.46.1.tar.gz
https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-2.47.tar.gz
https://github.com//tukaani-project/xz/releases/download/v5.8.1/xz-5.8.1.tar.xz
https://zlib.net/fossils/zlib-1.3.1.tar.gz
https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz
https://www.linuxfromscratch.org/patches/lfs/development/bzip2-1.0.8-install_docs-1.patch
https://www.linuxfromscratch.org/patches/lfs/development/coreutils-9.8-i18n-2.patch
https://www.linuxfromscratch.org/patches/lfs/development/expect-5.45.4-gcc15-1.patch
https://www.linuxfromscratch.org/patches/lfs/development/glibc-2.42-fhs-1.patch
https://www.linuxfromscratch.org/patches/lfs/development/kbd-2.9.0-backspace-1.patch
https://www.linuxfromscratch.org/patches/lfs/development/sysvinit-3.14-consolidated-1.patch

16
ai/metadata/index.json Normal file
View file

@ -0,0 +1,16 @@
{
"generated_at": "2025-10-01T04:35:27.106227+00:00",
"packages": [
{
"book": "mlfs",
"id": "mlfs/binutils/pass1",
"name": "Binutils",
"path": "packages/mlfs/binutils-pass1.json",
"stage": "cross-toolchain",
"status": "draft",
"variant": "Pass 1",
"version": "2.45"
}
],
"schema_version": "v0.1.0"
}

View file

@ -0,0 +1,113 @@
{
"artifacts": {
"disk": 678,
"install_prefix": null,
"sbu": 1.0
},
"build": [
{
"commands": [
"mkdir -v build",
"cd build"
],
"cwd": null,
"notes": null,
"phase": "setup",
"requires_root": false
},
{
"commands": [
"../configure --prefix=$LFS/tools \\",
"--with-sysroot=$LFS \\",
"--target=$LFS_TGT \\",
"--disable-nls \\",
"--enable-gprofng=no \\",
"--disable-werror \\",
"--enable-new-dtags \\",
"--enable-default-hash-style=gnu"
],
"cwd": null,
"notes": null,
"phase": "configure",
"requires_root": false
},
{
"commands": [
"make"
],
"cwd": null,
"notes": null,
"phase": "build",
"requires_root": false
},
{
"commands": [
"make install"
],
"cwd": null,
"notes": null,
"phase": "install",
"requires_root": false
}
],
"dependencies": {
"build": [],
"runtime": []
},
"environment": {
"users": [],
"variables": []
},
"optimizations": {
"cflags": [
"-O3",
"-flto"
],
"enable_lto": true,
"enable_pgo": true,
"ldflags": [
"-flto"
],
"profdata": null
},
"package": {
"anchors": {
"section": "https://linuxfromscratch.org/~thomas/multilib-m32/chapter05/binutils-pass1.html#ch-tools-binutils-pass1"
},
"book": "mlfs",
"chapter": 5,
"id": "mlfs/binutils-pass-1",
"name": "Binutils",
"section": "5.2",
"stage": "cross-toolchain",
"upstream": null,
"variant": "Pass 1",
"version": "2.45"
},
"provenance": {
"book_release": "lfs-ml-12.4-40-multilib",
"content_hash": "7c580aad04933a2f6ec5e5410a57695dd2d0b76a293212f33fd3edd226490853",
"page_url": "https://linuxfromscratch.org/~thomas/multilib-m32/chapter05/binutils-pass1.html",
"retrieved_at": "2025-10-01T04:57:22.375928+00:00"
},
"schema_version": "v0.1.0",
"source": {
"archive": "binutils-2.45.tar.xz",
"checksums": [
{
"alg": "md5",
"value": "dee5b4267e0305a99a3c9d6131f45759"
}
],
"urls": [
{
"kind": "primary",
"url": "https://sourceware.org/pub/binutils/releases/binutils-2.45.tar.xz"
}
]
},
"status": {
"issues": [],
"state": "draft"
}
}

View file

@ -0,0 +1,147 @@
{
"schema_version": "v0.1.0",
"package": {
"id": "mlfs/binutils/pass1",
"name": "Binutils",
"upstream": "gnu/binutils",
"version": "2.45",
"book": "mlfs",
"chapter": 5,
"section": "5.02",
"stage": "cross-toolchain",
"variant": "Pass 1",
"anchors": {
"section": "https://linuxfromscratch.org/~thomas/multilib-m32/chapter05/binutils-pass1.html#ch-tools-binutils-pass1"
}
},
"source": {
"urls": [
{
"url": "https://ftp.gnu.org/gnu/binutils/binutils-2.45.tar.xz",
"kind": "primary"
},
{
"url": "https://ftpmirror.gnu.org/binutils/binutils-2.45.tar.xz",
"kind": "mirror"
}
],
"archive": "binutils-2.45.tar.xz"
},
"artifacts": {
"sbu": 1,
"disk": 678,
"install_prefix": "$LFS/tools"
},
"dependencies": {
"build": [
{ "name": "bash" },
{ "name": "coreutils" },
{ "name": "gcc", "optional": true }
],
"runtime": []
},
"environment": {
"variables": [
{
"name": "LFS",
"description": "Absolute path to mounted LFS workspace"
},
{
"name": "LFS_TGT",
"description": "Target triple for cross toolchain"
}
],
"users": []
},
"build": [
{
"phase": "setup",
"commands": [
"tar -xf binutils-2.45.tar.xz",
"cd binutils-2.45",
"mkdir -v build",
"cd build"
]
},
{
"phase": "configure",
"commands": [
"../configure --prefix=$LFS/tools \\",
" --with-sysroot=$LFS \\",
" --target=$LFS_TGT \\",
" --disable-nls \\",
" --enable-gprofng=no \\",
" --disable-werror \\",
" --enable-new-dtags \\",
" --enable-default-hash-style=gnu"
],
"cwd": "build"
},
{
"phase": "build",
"commands": [
"make"
],
"cwd": "build"
},
{
"phase": "test",
"commands": [
"make -k check"
],
"cwd": "build",
"notes": "Tests are optional for cross-toolchain; failures can be ignored"
},
{
"phase": "install",
"commands": [
"make install"
],
"cwd": "build"
}
],
"optimizations": {
"enable_lto": true,
"enable_pgo": true,
"cflags": ["-O3", "-flto", "-fprofile-generate"],
"ldflags": ["-flto", "-fprofile-generate"],
"profdata": null
},
"tests": [
{
"commands": [
"make -k check"
],
"optional": true,
"expected_failures": ["gas/run/elf-x86-64-reloc.sh"]
}
],
"post_install": [
{
"commands": [
"rm -v $LFS/tools/lib/libbfd.a",
"rm -v $LFS/tools/lib/libctf-nobfd.a"
],
"description": "Remove static libraries per LFS guidance"
}
],
"notes": [
{
"severity": "warning",
"text": "Ensure the host uses recent flex/bison to avoid configure warnings."
}
],
"provenance": {
"book_release": "ml-12.4-40-multilib",
"page_url": "https://linuxfromscratch.org/~thomas/multilib-m32/chapter05/binutils-pass1.html",
"retrieved_at": "2025-03-09T00:00:00Z",
"content_hash": "0000000000000000000000000000000000000000000000000000000000000000"
},
"status": {
"state": "draft",
"issues": [
"Checksums not yet verified",
"Dependency list requires confirmation"
]
}
}

377
ai/metadata/schema.json Normal file
View file

@ -0,0 +1,377 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://lpkg.dev/schemas/package-metadata.json",
"title": "LPKG Package Metadata",
"type": "object",
"required": ["schema_version", "package", "source", "build", "provenance", "status"],
"additionalProperties": false,
"properties": {
"schema_version": {
"type": "string",
"pattern": "^v\\d+\\.\\d+\\.\\d+$"
},
"package": {
"type": "object",
"required": ["id", "name", "version", "book"],
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-/]*$"
},
"name": {
"type": "string",
"minLength": 1
},
"upstream": {
"type": "string"
},
"version": {
"type": "string",
"minLength": 1
},
"book": {
"type": "string",
"enum": ["lfs", "mlfs", "blfs", "glfs"]
},
"chapter": {
"type": ["integer", "null"],
"minimum": 0
},
"section": {
"type": ["string", "null"],
"pattern": "^\\d+\\.\\d+$"
},
"stage": {
"type": ["string", "null"],
"enum": [
"cross-toolchain",
"temporary-tools",
"system",
"system-configuration",
"system-finalization",
"desktop",
"server",
"multilib",
"kernel",
"boot",
null
]
},
"variant": {
"type": ["string", "null"],
"minLength": 1
},
"anchors": {
"type": "object",
"additionalProperties": {
"type": "string",
"format": "uri"
}
}
}
},
"source": {
"type": "object",
"required": ["urls"],
"additionalProperties": false,
"properties": {
"urls": {
"type": "array",
"items": {
"type": "object",
"required": ["url"],
"additionalProperties": false,
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"kind": {
"type": "string",
"enum": ["primary", "mirror", "patch", "signature"]
}
}
}
},
"archive": {
"type": ["string", "null"]
},
"checksums": {
"type": "array",
"items": {
"type": "object",
"required": ["alg", "value"],
"additionalProperties": false,
"properties": {
"alg": {
"type": "string",
"enum": ["md5", "sha1", "sha256", "sha512"]
},
"value": {
"type": "string",
"pattern": "^[A-Fa-f0-9]{16,128}$"
}
}
}
}
}
},
"artifacts": {
"type": "object",
"additionalProperties": false,
"properties": {
"sbu": {
"type": ["number", "null"],
"minimum": 0
},
"disk": {
"type": ["integer", "null"],
"minimum": 0,
"description": "Approximate disk usage in MB"
},
"install_prefix": {
"type": ["string", "null"],
"minLength": 1
}
}
},
"dependencies": {
"type": "object",
"additionalProperties": false,
"properties": {
"build": {
"type": "array",
"items": {
"type": "object",
"required": ["name"],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"optional": {
"type": "boolean",
"default": false
}
}
}
},
"runtime": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
}
},
"environment": {
"type": "object",
"additionalProperties": false,
"properties": {
"variables": {
"type": "array",
"items": {
"type": "object",
"required": ["name"],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"pattern": "^[A-Z0-9_]+$"
},
"required": {
"type": "boolean",
"default": true
},
"description": {
"type": "string"
}
}
}
},
"users": {
"type": "array",
"items": {
"type": "object",
"required": ["name"],
"additionalProperties": false,
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"purpose": {
"type": "string"
}
}
}
}
}
},
"build": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"required": ["phase", "commands"],
"additionalProperties": false,
"properties": {
"phase": {
"type": "string",
"enum": ["setup", "configure", "build", "test", "install", "post"]
},
"commands": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"cwd": {
"type": ["string", "null"],
"minLength": 1
},
"requires_root": {
"type": "boolean",
"default": false
},
"notes": {
"type": ["string", "null"],
"minLength": 1
}
}
}
},
"optimizations": {
"type": "object",
"additionalProperties": false,
"properties": {
"enable_lto": {
"type": "boolean"
},
"enable_pgo": {
"type": "boolean"
},
"cflags": {
"type": "array",
"items": {
"type": "string"
}
},
"ldflags": {
"type": "array",
"items": {
"type": "string"
}
},
"profdata": {
"type": ["string", "null"],
"minLength": 1
}
}
},
"tests": {
"type": "array",
"items": {
"type": "object",
"required": ["commands"],
"additionalProperties": false,
"properties": {
"commands": {
"type": "array",
"items": {
"type": "string"
}
},
"optional": {
"type": "boolean"
},
"expected_failures": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"post_install": {
"type": "array",
"items": {
"type": "object",
"required": ["commands"],
"additionalProperties": false,
"properties": {
"commands": {
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": ["string", "null"]
}
}
}
},
"notes": {
"type": "array",
"items": {
"type": "object",
"required": ["text"],
"additionalProperties": false,
"properties": {
"severity": {
"type": "string",
"enum": ["info", "warning", "error"]
},
"text": {
"type": "string"
}
}
}
},
"provenance": {
"type": "object",
"required": ["book_release", "page_url", "retrieved_at"],
"additionalProperties": false,
"properties": {
"book_release": {
"type": "string"
},
"page_url": {
"type": "string",
"format": "uri"
},
"retrieved_at": {
"type": "string",
"format": "date-time"
},
"content_hash": {
"type": "string",
"pattern": "^[A-Fa-f0-9]{64}$"
}
}
},
"status": {
"type": "object",
"required": ["state"],
"additionalProperties": false,
"properties": {
"state": {
"type": "string",
"enum": ["draft", "review", "imported", "stale"]
},
"issues": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}

15
ai/notes.md Normal file
View file

@ -0,0 +1,15 @@
# Integrating jhalfs Source Metadata
- Goal: reuse jhalfs wget-list and md5sums to populate package `source.urls` and
auto-fill checksums when harvesting metadata for MLFS/BLFS/GLFS packages.
- Data source: `https://anduin.linuxfromscratch.org/` hosts per-release
`wget-list`/`md5sums` files already curated by the jhalfs project.
- Approach:
1. Fetch (and optionally cache under `ai/cache/`) the lists for each book.
2. When harvesting, map `<package>-<version>` against the list to gather all
relevant URLs.
3. Pull matching checksum entries to populate `source.checksums`.
4. Keep the existing HTML scrape for chapter/stage text; jhalfs covers only
sources.
- Benefits: avoids fragile HTML tables, keeps URLs aligned with official build
scripts, and ensures checksums are up-to-date.

24
ai/personas.json Normal file
View file

@ -0,0 +1,24 @@
[
{
"id": "default_cli",
"name": "Codex CLI Assistant",
"description": "Default persona for repository automation; focuses on safe refactors and tooling improvements.",
"strengths": [
"Rust and tooling pipelines",
"Workflow automation",
"Incremental migrations"
],
"notes": "Derived from GPT-5 Codex runtime; avoids destructive operations without explicit approval."
},
{
"id": "mlfs_researcher",
"name": "MLFS Researcher",
"description": "Persona dedicated to tracking Multilib Linux From Scratch package metadata and translating it into lpkg modules.",
"strengths": [
"HTML scraping",
"Package manifest synthesis",
"Optimization flag tuning"
],
"notes": "Activated when working with https://linuxfromscratch.org/~thomas/multilib-m32/ resources."
}
]

56
ai/tasks.json Normal file
View file

@ -0,0 +1,56 @@
{
"generated_at": "2025-03-09T00:00:00Z",
"unfinished": [
{
"id": "mlfs-package-import",
"title": "Import all MLFS packages into lpkg",
"description": "Parse the Multilib LFS book and scaffold package definitions with optimization defaults (LTO/PGO/-O3).",
"blocked_on": [
"Implement automated parser"
],
"owner": "mlfs_researcher"
},
{
"id": "pgo-integration",
"title": "Integrate profile guided optimization support",
"description": "Add infrastructure for collection and replay of profiling data during package builds.",
"blocked_on": [
"Decide on profiling workload definitions"
],
"owner": "default_cli"
},
{
"id": "lfs-html-parsers",
"title": "Automate LFS/BLFS/GLFS ingest via HTML parsing",
"description": "Avoid hardcoded package data; download the upstream books (LFS, BLFS, GLFS) and parse them to drive scaffolding and metadata updates.",
"blocked_on": [
"Design resilient scraping strategies for each book",
"Implement incremental update workflow"
],
"owner": "mlfs_researcher"
}
],
"solved": [
{
"id": "ai-metadata-store",
"title": "Create AI metadata directory",
"description": "Introduce ai/personas.json, ai/tasks.json, ai/bugs.json for persistent assistant context.",
"resolution": "Initial JSON files checked in with placeholder content.",
"owner": "default_cli"
},
{
"id": "metadata-schema-v0.1",
"title": "Define package metadata schema",
"description": "Specify JSON schema and layout for storing scraped package detail from LFS family books.",
"resolution": "Added ai/metadata/schema.json with v0.1.0 structure and seeded initial package entry/index.",
"owner": "default_cli"
},
{
"id": "metadata-indexer-cli",
"title": "Build metadata validation/indexing tool",
"description": "Provide a standalone CLI to validate package metadata against the schema and regenerate ai/metadata/index.json.",
"resolution": "Added src/bin/metadata_indexer.rs with schema validation, summary extraction, and index writer integration.",
"owner": "default_cli"
}
]
}