diff --git a/ai/metadata/index.json b/ai/metadata/index.json index 0245bc5..195bf7e 100644 --- a/ai/metadata/index.json +++ b/ai/metadata/index.json @@ -1,5 +1,5 @@ { - "generated_at": "2025-10-01T05:54:56.228701+00:00", + "generated_at": "2025-10-01T07:30:15.338392+00:00", "packages": [ { "book": "mlfs", diff --git a/ai/metadata/schema.json b/ai/metadata/schema.json index 8405871..e2268ca 100644 --- a/ai/metadata/schema.json +++ b/ai/metadata/schema.json @@ -370,6 +370,24 @@ "items": { "type": "string" } + }, + "tags": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "25.10", + "base-system", + "cross-toolchain", + "temporary-tools", + "development", + "system-tools", + "networking", + "security", + "documentation", + "configuration" + ] + } } } } diff --git a/docs/RELEASES.md b/docs/RELEASES.md new file mode 100644 index 0000000..c58be70 --- /dev/null +++ b/docs/RELEASES.md @@ -0,0 +1,91 @@ +# LPKG Release History + +## 25.10 System Release +Release Date: October 2025 + +### Cross Toolchain Packages +- linux-headers 6.16.9 +- glibc 2.42 +- binutils-pass-1 2.45 +- gcc-pass-1 15.2.0 + +### Base System Packages +- acl 2.3.2 +- attr 2.5.2 +- autoconf 2.72 +- automake 1.16.5 +- bash 5.2.21 +- bc 6.7.5 +- binutils 2.42 +- bison 3.8.2 +- bzip2 1.0.8 +- check 0.15.2 +- coreutils 9.4 +- dejagnu 1.6.3 +- diffutils 3.10 +- e2fsprogs 1.47.0 +- elfutils 0.190 +- expat 2.6.0 +- expect 5.45.4 +- file 5.45 +- findutils 4.9.0 +- flex 2.6.4 +- flit_core 3.9.0 +- gawk 5.3.0 +- gcc 13.2.0 +- gdbm 1.23 +- gettext 0.22.4 +- gmp 6.3.0 +- gperf 3.1 +- grep 3.11 +- groff 1.23.0 +- grub 2.12 +- gzip 1.13 +- iana-etc 20240125 +- inetutils 2.5 +- intltool 0.51.0 +- iproute2 6.7.0 +- jinja2 3.1.3 +- kbd 2.6.4 +- kmod 31 +- less 643 +- libcap 2.69 +- libffi 3.4.4 +- libpipeline 1.5.7 +- libtool 2.4.7 +- libxcrypt 4.4.36 +- m4 1.4.19 +- make 4.4.1 +- man-db 2.12.0 +- man-pages 6.06 +- markupsafe 2.1.5 +- meson 1.3.2 +- mpc 1.3.1 +- mpfr 4.2.1 +- ncurses 6.4 +- ninja 1.11.1 +- openssl 3.2.1 +- patch 2.7.6 +- perl 5.38.2 +- pkgconf 2.1.1 +- procps 4.0.4 +- psmisc 23.6 +- python 3.12.2 +- readline 8.2 +- sed 4.9 +- setuptools 69.1.0 +- shadow 4.14.5 +- sysklogd 1.5.1 +- systemd 255 +- sysvinit 3.08 +- tar 1.35 +- tcl 8.6.13 +- texinfo 7.1 +- tzdata 2024a +- util-linux 2.39.3 +- vim 9.1.0041 +- wheel 0.42.0 +- xml-parser 2.47 +- xz 5.4.6 +- zlib 1.3.1 +- zstd 1.5.5 \ No newline at end of file diff --git a/harvest_all.sh b/harvest_all.sh new file mode 100755 index 0000000..515162c --- /dev/null +++ b/harvest_all.sh @@ -0,0 +1,108 @@ +#!/bin/bash + +# Build metadata indexer +cargo build --bin metadata_indexer + +# Refresh manifests for all books +./target/debug/metadata_indexer refresh --books mlfs,blfs,glfs --force + +# Function to harvest a package across all books +harvest_package() { + local pkg=$1 + # Try all books in order + for book in mlfs blfs glfs; do + echo "Trying to harvest $pkg from $book..." + ./target/debug/metadata_indexer harvest --book $book --page "$pkg" && break + done +} + +# All packages to harvest +PACKAGES=( + "acl-2.3.2" + "attr-2.5.2" + "autoconf-2.72" + "automake-1.16.5" + "bash-5.2.21" + "bc-6.7.5" + "binutils-2.42" + "bison-3.8.2" + "bzip2-1.0.8" + "check-0.15.2" + "coreutils-9.4" + "dejagnu-1.6.3" + "diffutils-3.10" + "e2fsprogs-1.47.0" + "elfutils-0.190" + "expat-2.6.0" + "expect-5.45.4" + "file-5.45" + "findutils-4.9.0" + "flex-2.6.4" + "flit_core-3.9.0" + "gawk-5.3.0" + "gcc-13.2.0" + "gdbm-1.23" + "gettext-0.22.4" + "gmp-6.3.0" + "gperf-3.1" + "grep-3.11" + "groff-1.23.0" + "grub-2.12" + "gzip-1.13" + "iana-etc-20240125" + "inetutils-2.5" + "intltool-0.51.0" + "iproute2-6.7.0" + "jinja2-3.1.3" + "kbd-2.6.4" + "kmod-31" + "less-643" + "libcap-2.69" + "libffi-3.4.4" + "libpipeline-1.5.7" + "libtool-2.4.7" + "libxcrypt-4.4.36" + "m4-1.4.19" + "make-4.4.1" + "man-db-2.12.0" + "man-pages-6.06" + "markupsafe-2.1.5" + "meson-1.3.2" + "mpc-1.3.1" + "mpfr-4.2.1" + "ncurses-6.4" + "ninja-1.11.1" + "openssl-3.2.1" + "patch-2.7.6" + "perl-5.38.2" + "pkgconf-2.1.1" + "procps-4.0.4" + "psmisc-23.6" + "python-3.12.2" + "readline-8.2" + "sed-4.9" + "setuptools-69.1.0" + "shadow-4.14.5" + "sysklogd-1.5.1" + "systemd-255" + "sysvinit-3.08" + "tar-1.35" + "tcl-8.6.13" + "texinfo-7.1" + "tzdata-2024a" + "util-linux-2.39.3" + "vim-9.1.0041" + "wheel-0.42.0" + "xml-parser-2.47" + "xz-5.4.6" + "zlib-1.3.1" + "zstd-1.5.5" +) + +# Harvest each package +for pkg in "${PACKAGES[@]}"; do + harvest_package "$pkg" +done + +# Update index +./target/debug/metadata_indexer index \ No newline at end of file diff --git a/harvest_all_books.sh b/harvest_all_books.sh new file mode 100755 index 0000000..0a4a7e9 --- /dev/null +++ b/harvest_all_books.sh @@ -0,0 +1,128 @@ +#!/bin/bash + +# Build metadata indexer +cargo build --bin metadata_indexer + +# Refresh manifests for all books +./target/debug/metadata_indexer refresh --books mlfs,lfs,blfs,glfs --force + +# Function to harvest a package +harvest_package() { + local book=$1 + local page=$2 + local base_url=$3 + + echo "Harvesting $book/$page..." + if [ -n "$base_url" ]; then + ./target/debug/metadata_indexer harvest --book "$book" --page "$page" --base-url "$base_url" + else + ./target/debug/metadata_indexer harvest --book "$book" --page "$page" + fi +} + +# MLFS Packages +MLFS_PACKAGES=( + "linux" + "glibc" + "binutils-pass-1" + "gcc-pass-1" +) + +# Base System Packages +BASE_PACKAGES=( + "acl" + "attr" + "autoconf" + "automake" + "bash" + "bc" + "binutils" + "bison" + "bzip2" + "check" + "coreutils" + "dejagnu" + "diffutils" + "e2fsprogs" + "elfutils" + "expat" + "expect" + "file" + "findutils" + "flex" + "flit_core" + "gawk" + "gcc" + "gdbm" + "gettext" + "gmp" + "gperf" + "grep" + "groff" + "grub" + "gzip" + "iana-etc" + "inetutils" + "intltool" + "iproute2" + "jinja2" + "kbd" + "kmod" + "less" + "libcap" + "libffi" + "libpipeline" + "libtool" + "libxcrypt" + "m4" + "make" + "man-db" + "man-pages" + "markupsafe" + "meson" + "mpc" + "mpfr" + "ncurses" + "ninja" + "openssl" + "patch" + "perl" + "pkgconf" + "procps" + "psmisc" + "python" + "readline" + "sed" + "setuptools" + "shadow" + "sysklogd" + "systemd" + "sysvinit" + "tar" + "tcl" + "texinfo" + "tzdata" + "util-linux" + "vim" + "wheel" + "xml-parser" + "xz" + "zlib" + "zstd" +) + +# Harvest MLFS packages +for pkg in "${MLFS_PACKAGES[@]}"; do + harvest_package "mlfs" "$pkg" "https://linuxfromscratch.org/~thomas/multilib-m32" +done + +# Harvest base system packages +for pkg in "${BASE_PACKAGES[@]}"; do + harvest_package "lfs" "$pkg" "https://linuxfromscratch.org/lfs/view/development" +done + +# Update index +./target/debug/metadata_indexer index + +# Print summary +echo "Done! Packages have been harvested and index has been updated." \ No newline at end of file diff --git a/src/bin/metadata_indexer.rs b/src/bin/metadata_indexer.rs index 13fe78c..1f19ef3 100644 --- a/src/bin/metadata_indexer.rs +++ b/src/bin/metadata_indexer.rs @@ -148,6 +148,7 @@ fn main() -> Result<()> { "variant": s.variant.clone(), "status": s.status.clone(), "path": s.relative_path.clone(), + "tags": s.tags.clone(), }) }) .collect(); @@ -326,6 +327,7 @@ struct PackageSummary { variant: Option, status: String, relative_path: String, + tags: Vec, } struct PackageRecord { @@ -685,6 +687,10 @@ fn build_metadata_value( "status": { "state": status_state, "issues": issues, + "tags": vec![ + "25.10".to_string(), + stage.unwrap_or("base-system").to_string() + ] } }); diff --git a/src/pkgs/by_name/bi/binutils/cross_toolchain.rs b/src/pkgs/by_name/bi/binutils/cross_toolchain.rs index 968f405..7c1623e 100644 --- a/src/pkgs/by_name/bi/binutils/cross_toolchain.rs +++ b/src/pkgs/by_name/bi/binutils/cross_toolchain.rs @@ -3,11 +3,10 @@ use crate::pkgs::by_name::bi::binutils::parser::{BinutilsInfo, fetch_page, parse use reqwest::Client; use std::{ error::Error, - ffi::OsStr, path::{Path, PathBuf}, }; use tokio::process::Command; -use tracing::{error, info, warn}; +use tracing::{info, warn}; /// Configuration object - uses environment if values omitted. #[derive(Debug, Clone)]