diff --git a/bootscripts/lfs/init.d/checkfs b/bootscripts/lfs/init.d/checkfs index 0903a0111..bbbae8d99 100644 --- a/bootscripts/lfs/init.d/checkfs +++ b/bootscripts/lfs/init.d/checkfs @@ -101,7 +101,7 @@ case "${1}" in if [ "${error_value}" = 2 -o "${error_value}" = 3 ]; then msg="\nWARNING:\n\nFile system errors " - msg="${msg}were found and have been been " + msg="${msg}were found and have been " msg="${msg}corrected, but the nature of the " msg="${msg}errors require this system to be rebooted.\n\n" msg="${msg}After you press enter, " diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index dff0fc8f6..475a03fc9 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,6 +40,77 @@ appropriate for the entry or if needed the entire day's listitem. --> + + 2023-09-02 + + + [xry111] - Add --no-cache-dir option for pip3 wheel + commands. Addresses + BLFS #18466. + + + [bdubbs] - Update to vim-9.0.1837. Addresses + #4500. + + + [bdubbs] - Update to zlib-1.3. Fixes + #5324. + + + [bdubbs] - Update to wheel-0.41.2 (Python Module). Fixes + #5328. + + + [bdubbs] - Update to util-linux-2.39.2. Fixes + #5322. + + + [bdubbs] - Update to sysvinit-3.08. Fixes + #5321. + + + [bdubbs] - Update to shadow-4.14.0. Fixes + #5319. + + + [bdubbs] - Update to Python-3.11.5. Fixes + #5330. + + + [bdubbs] - Update to procps-ng-4.0.4. Fixes + #5335. + + + [bdubbs] - Update to pkgconf-2.0.2. Fixes + #5323. + + + [bdubbs] - Update to mpfr-4.2.1. Fixes + #5326. + + + [bdubbs] - Update to kbd-2.6.2. Fixes + #5318. + + + [bdubbs] - Update to gzip-1.13. Fixes + #5325. + + + [bdubbs] - Update to coreutils-9.4. Fixes + #5334. + + + [bdubbs] - Specify the 'nobody-group' for systemd. Fixes + #5333. + + + [bdubbs] - Remove unused usb group. Fixes + #5331. + + + + 2023-09-01 diff --git a/chapter01/whatsnew.xml b/chapter01/whatsnew.xml index 3b9d5fd1e..0f72bd434 100644 --- a/chapter01/whatsnew.xml +++ b/chapter01/whatsnew.xml @@ -83,9 +83,9 @@ Perhaps a new page - somthing like 'Upgrading an Existing LFS System'. - + @@ -149,9 +149,9 @@ Perhaps a new page - somthing like 'Upgrading an Existing LFS System'. - + @@ -167,9 +167,9 @@ Perhaps a new page - somthing like 'Upgrading an Existing LFS System'. - + @@ -218,9 +218,9 @@ Perhaps a new page - somthing like 'Upgrading an Existing LFS System'. - + @@ -233,39 +233,39 @@ Perhaps a new page - somthing like 'Upgrading an Existing LFS System'. - + - + - + - + - + @@ -278,24 +278,24 @@ Perhaps a new page - somthing like 'Upgrading an Existing LFS System'. - - - + - + diff --git a/chapter02/hostreqs.xml b/chapter02/hostreqs.xml index 12a2afd82..c2047c1aa 100644 --- a/chapter02/hostreqs.xml +++ b/chapter02/hostreqs.xml @@ -173,7 +173,7 @@ To see whether your host system has all the appropriate versions, and the ability to compile programs, run the following commands: -cat > version-check.sh << "EOF" +cat > version-check.sh << "EOF" #!/bin/bash # A script to list version numbers of critical development tools diff --git a/chapter07/createfiles.xml b/chapter07/createfiles.xml index 2434a6b17..2b752b944 100644 --- a/chapter07/createfiles.xml +++ b/chapter07/createfiles.xml @@ -107,7 +107,6 @@ dialout:x:10: audio:x:11: video:x:12: utmp:x:13: -usb:x:14: cdrom:x:15: adm:x:16: messagebus:x:18: @@ -135,7 +134,6 @@ dialout:x:10: audio:x:11: video:x:12: utmp:x:13: -usb:x:14: cdrom:x:15: adm:x:16: messagebus:x:18: diff --git a/chapter08/autoconf.xml b/chapter08/autoconf.xml index 7925e44ea..38375665f 100644 --- a/chapter08/autoconf.xml +++ b/chapter08/autoconf.xml @@ -153,7 +153,7 @@ Helps to create a configure.in file for a software package; it examines the source files in a directory tree, searching them for common portability issues, and creates a - configure.scan file that serves as as a + configure.scan file that serves as a preliminary configure.in file for the package diff --git a/chapter08/flit-core.xml b/chapter08/flit-core.xml index 641ff73b7..661a02684 100644 --- a/chapter08/flit-core.xml +++ b/chapter08/flit-core.xml @@ -42,7 +42,7 @@ Build the package: -pip3 wheel -w dist --no-build-isolation --no-deps $PWD +pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD Install the package: @@ -66,6 +66,15 @@ + + --no-cache-dir + + Prevents pip from copying the created wheel into the + /root/.cache/pip + directory. + + + install diff --git a/chapter08/jinja2.xml b/chapter08/jinja2.xml index ca614ecdc..59a01e26c 100644 --- a/chapter08/jinja2.xml +++ b/chapter08/jinja2.xml @@ -42,7 +42,7 @@ Build the package: -pip3 wheel -w dist --no-build-isolation --no-deps $PWD +pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD Install the package: diff --git a/chapter08/markupsafe.xml b/chapter08/markupsafe.xml index b4a0cbc58..c09b9a64c 100644 --- a/chapter08/markupsafe.xml +++ b/chapter08/markupsafe.xml @@ -42,7 +42,7 @@ Compile MarkupSafe with the following command: -pip3 wheel -w dist --no-build-isolation --no-deps $PWD +pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD This package does not come with a test suite. diff --git a/chapter08/meson.xml b/chapter08/meson.xml index a53a88c3c..8cf308237 100644 --- a/chapter08/meson.xml +++ b/chapter08/meson.xml @@ -46,7 +46,7 @@ --> Compile Meson with the following command: -pip3 wheel -w dist --no-build-isolation --no-deps $PWD +pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD The test suite requires some packages outside the scope of LFS. diff --git a/chapter08/mpfr.xml b/chapter08/mpfr.xml index 2d16053de..c9e7c1a7d 100644 --- a/chapter08/mpfr.xml +++ b/chapter08/mpfr.xml @@ -41,20 +41,6 @@ Installation of MPFR - - Fix a test case based on a bug of old Glibc releases: - -sed -e 's/+01,234,567/+1,234,567 /' \ - -e 's/13.10Pd/13Pd/' \ - -i tests/tsprintf.c - Prepare MPFR for compilation: ./configure --prefix=/usr \ diff --git a/chapter08/openssl.xml b/chapter08/openssl.xml index f466bd5f1..0aaf13c36 100644 --- a/chapter08/openssl.xml +++ b/chapter08/openssl.xml @@ -101,21 +101,6 @@ make MANSUFFIX=ssl install number. - - - If OpenSSH is installed, it will be an - exception of the general rule above. It contains an - over-restrictive OpenSSL version check, so both SSH client and SSH - server will refuse to start if OpenSSL - is updated with MAJOR version number unchanged but MINOR version - number changed. You need to rebuild - OpenSSH after such an upgrade. - If OpenSSH is being - used to access the system, you must rebuild and reinstall it - after upgrading OpenSSL to a new MINOR version number before logout - or you won't be able to login via SSH anymore. - - However, any running programs linked to those libraries need to be stopped and restarted. Read the related entries in diff --git a/chapter08/procps.xml b/chapter08/procps.xml index 20a6be096..7fc74f587 100644 --- a/chapter08/procps.xml +++ b/chapter08/procps.xml @@ -67,18 +67,9 @@ Compile the package: -make - To run the test suite, run: make check diff --git a/chapter08/shadow.xml b/chapter08/shadow.xml index 0f34d70ac..f88216a5b 100644 --- a/chapter08/shadow.xml +++ b/chapter08/shadow.xml @@ -107,6 +107,7 @@ find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \; @@ -144,6 +145,14 @@ find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \; + + --without-libbsd + + Do not use the readpassphrase function from libbsd which + is not in LFS. Use the internal copy instead. + + + Compile the package: diff --git a/chapter08/systemd.xml b/chapter08/systemd.xml index ea77f3696..68482de0b 100644 --- a/chapter08/systemd.xml +++ b/chapter08/systemd.xml @@ -68,6 +68,7 @@ meson setup \ -Dmode=release \ -Dpamconfdir=no \ -Ddev-kvm-mode=0660 \ + -Dnobody-group=nogroup \ -Ddocdir=/usr/share/doc/systemd-&systemd-version; \ .. @@ -178,6 +179,14 @@ meson setup \ consider it dangerous. This option overrides it. + + + -Dnobody-group=nogroup + + Tell the package the group name with GID 65534 is + nogroup. + + Compile the package: diff --git a/chapter08/wheel.xml b/chapter08/wheel.xml index 88e47d556..0f3a1c99e 100644 --- a/chapter08/wheel.xml +++ b/chapter08/wheel.xml @@ -42,7 +42,7 @@ Compile Wheel with the following command: -pip3 wheel -w dist --no-build-isolation --no-deps $PWD +pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD Install Wheel with the following command: diff --git a/chapter10/kernel.xml b/chapter10/kernel.xml index dc7fc9895..86f29dbdc 100644 --- a/chapter10/kernel.xml +++ b/chapter10/kernel.xml @@ -122,6 +122,7 @@ + A good starting place for setting up the kernel configuration is to run make defconfig. This will set the base configuration to a good state that takes your current system architecture @@ -139,7 +140,7 @@ - + Enable some additional features if you are building a 64-bit system. If you are using menuconfig, enable them in the order of CONFIG_PCI_MSI first, then @@ -323,7 +324,7 @@ Support running the interrupt controller of 64-bit x86 processors in x2APIC mode. x2APIC may be enabled by firmware on 64-bit x86 systems, and a kernel without this option enabled will - panic on boot if x2APIC is enabled by firmware. This option has + panic on boot if x2APIC is enabled by firmware. This option has no effect, but also does no harm if x2APIC is disabled by the firmware. diff --git a/general.ent b/general.ent index a222812e9..0540ac6c2 100644 --- a/general.ent +++ b/general.ent @@ -103,6 +103,7 @@ --> + diff --git a/lfs-latest.php b/lfs-latest.php deleted file mode 100644 index 3a4df9243..000000000 --- a/lfs-latest.php +++ /dev/null @@ -1,481 +0,0 @@ -#! /usr/bin/php - 80 - list( $major, $minor, $rest ) = explode( ".", $slice . ".0" ); - if ( $minor % 2 == 1 ) continue; - if ( $minor > 80 ) continue; - array_push( $a, $slice ); - } - - rsort( $a, SORT_NATURAL ); // Max version is at the top - return ( isset( $a[0] ) ) ? $a[0] : -2; -} - -function http_get_file( $url ) -{ - if ( ! preg_match( "/sourceforge/", $url ) && - ! preg_match( "/psmisc/", $url ) ) - { - exec( "curl --location --silent --max-time 30 $url", $dir ); - - $s = implode( "\n", $dir ); - $dir = strip_tags( $s ); - return explode( "\n", $dir ); - } - else - { - exec( "links -dump $url 2>/dev/null", $lines ); - return $lines; - } -} - -function max_parent( $dirpath, $prefix ) -{ - // First, remove a directory - $dirpath = rtrim ( $dirpath, "/" ); // Trim any trailing slash - $position = strrpos( $dirpath, "/" ); - $dirpath = substr ( $dirpath, 0, $position ); - - $lines = http_get_file( $dirpath ); - - $regex_match = "#${prefix}[\d\.]+/#"; - $regex_replace = "#^.*(${prefix}[\d\.]+)/.*$#"; - $max = find_max( $lines, $regex_match, $regex_replace ); - - return "$dirpath/$max"; -} - -function get_packages( $package, $dirpath ) -{ - global $exceptions; - global $regex; - -//if ( $package != "psmisc" ) return 0; // Debug - -if ( $package == "bc" ) $dirpath = "https://github.com/gavinhoward/bc/releases"; -if ( $package == "check" ) $dirpath = "https://github.com/libcheck/check/releases"; -if ( $package == "e2fsprogs" ) $dirpath = "http://sourceforge.net/projects/e2fsprogs/files/e2fsprogs"; -if ( $package == "expat" ) $dirpath = "http://sourceforge.net/projects/expat/files"; -if ( $package == "elfutils" ) $dirpath = "https://sourceware.org/ftp/elfutils"; -if ( $package == "expect" ) $dirpath = "http://sourceforge.net/projects/expect/files"; -if ( $package == "file" ) $dirpath = "https://github.com/file/file/releases"; -if ( $package == "flex" ) $dirpath = "https://github.com/westes/flex/releases"; -if ( $package == "gcc" ) $dirpath = max_parent( $dirpath, "gcc-" ); -if ( $package == "iana-etc" ) $dirpath = "https://github.com/Mic92/iana-etc/releases"; -if ( $package == "intltool" ) $dirpath = "https://launchpad.net/intltool/trunk"; -if ( $package == "meson" ) $dirpath = "https://github.com/mesonbuild/meson/releases"; -if ( $package == "mpc" ) $dirpath = "https://ftp.gnu.org/gnu/mpc"; -if ( $package == "mpfr" ) $dirpath = "http://mpfr.loria.fr/mpfr-current"; -if ( $package == "ninja" ) $dirpath = "https://github.com/ninja-build/ninja/releases"; -if ( $package == "procps-ng" ) $dirpath = "https://gitlab.com/procps-ng/procps/-/tags"; -if ( $package == "psmisc" ) $dirpath = "https://gitlab.com/psmisc/psmisc/-/tags"; -if ( $package == "Python" ) $dirpath = "https://www.python.org/downloads/source/"; -if ( $package == "shadow" ) $dirpath = "https://github.com/shadow-maint/shadow/releases"; -if ( $package == "systemd" ) $dirpath = "https://github.com/systemd/systemd/releases"; -if ( $package == "tcl" ) $dirpath = "http://sourceforge.net/projects/tcl/files"; -if ( $package == "util-linux" ) $dirpath = max_parent( $dirpath, "v." ); -if ( $package == "vim" ) $dirpath = "https://github.com/vim/vim/releases"; -if ( $package == "zstd" ) $dirpath = "https://github.com/facebook/zstd/releases"; -//if ( $package == "vim" ) $dirpath = "ftp://ftp.vim.org/pub/vim/unix"; - - // Check for ftp - if ( preg_match( "/^ftp/", $dirpath ) ) - { - $dirpath = substr( $dirpath, 6 ); // Remove ftp:// - $dirpath = rtrim ( $dirpath, "/" ); // Trim any trailing slash - $position = strpos( $dirpath, "/" ); // Divide at first slash - $server = substr( $dirpath, 0, $position ); - $path = substr( $dirpath, $position ); - - $conn = ftp_connect( $server ); - ftp_login( $conn, "anonymous", "" ); - - // See if we need special handling - if ( isset( $exceptions[ $package ] ) ) - { - $specials = explode( ":", $exceptions[ $package ] ); - - foreach ( $specials as $i ) - { - list( $op, $regexp ) = explode( "=", $i ); - - switch ($op) - { - case "UPDIR": - // Remove last dir from $path - $position = strrpos( $path, "/" ); - $path = substr( $path, 0, $position ); - - // Get dir listing - $lines = ftp_rawlist ($conn, $path); - $max = find_max( $lines, $regexp, $regexp ); - break; - - case "DOWNDIR": - // Append found directory - $path .= "/$max"; - break; - - default: - echo "Error in specials array for $package\n"; - return -5; - break; - } - } - } - - $lines = ftp_rawlist ($conn, $path); - ftp_close( $conn ); - } - else // http - { - // Customize http directories as needed - if ( $package == "tzdata" ) - { - // Remove two directories - $dirpath = rtrim ( $dirpath, "/" ); // Trim any trailing slash - $position = strrpos( $dirpath, "/" ); - $dirpath = substr ( $dirpath, 0, $position ); - $position = strrpos( $dirpath, "/" ); - $dirpath = substr ( $dirpath, 0, $position ); - } - - //if ( $package == "bzip2" ) - //{ - // // Remove one directory - // $dirpath = rtrim ( $dirpath, "/" ); // Trim any trailing slash - // $position = strrpos( $dirpath, "/" ); - // $dirpath = substr ( $dirpath, 0, $position ); - //} - - $lines = http_get_file( $dirpath ); - if ( ! is_array( $lines ) ) return -6; - } // End fetch -//print_r($lines); - if ( isset( $regex[ $package ] ) ) - { - // Custom search for latest package name - foreach ( $lines as $l ) - { - $ver = preg_replace( $regex[ $package ], "$1", $l ); - if ( $ver == $l ) continue; - return $ver; // Return first match of regex - } - - return -7; // This is an error - } - - if ( $package == "perl" ) // Custom for perl - { - $tmp = array(); - - foreach ( $lines as $l ) - { - if ( preg_match( "/sperl/", $l ) ) continue; // Don't want this - $ver = preg_replace( "/^.*perl-([\d\.]+\d)\.tar.*$/", "$1", $l ); - if ( $ver == $l ) continue; - list( $s1, $s2, $rest ) = explode( ".", $ver ); - if ( $s2 % 2 == 1 ) continue; // Remove odd minor versions - array_push( $tmp, $l ); - } - - $lines = $tmp; - } - - if ( $package == "attr" || - $package == "acl" ) - { - return find_max( $lines, "/$package/", "/^.*$package-([\d\.-]*\d).tar.*$/" ); - } - - if ( $package == "e2fsprogs" ) - return find_max( $lines, "/v\d/", "/^.*v(\d[\d\.]+\d).*$/" ); - - if ( $package == "expect" ) - return find_max( $lines, "/expect/", "/^.*expect(\d[\d\.]+\d).tar.*$/" ); - - if ( $package == "elfutils" ) - return find_max( $lines, "/^\d/", "/^(\d[\d\.]+\d)\/.*$/" ); - - if ( $package == "XML-Parser" ) - { - $max = find_max( $lines, "/$package/", "/^.*$package-([\d\._]*\d).tar.*$/" ); - # 2.44_01 is a developer release - if ( $max == "2.44_01" ) { return "2.44"; } - return $max; - } - - if ( $package == "tcl" ) - return find_max( $lines, "/tcl/", "/^.*tcl(\d[\d\.]*\d)-src.*$/" ); - - if ( $package == "ninja" ) - return find_max( $lines, "/v\d/", "/^.*v(\d[\d\.]*\d).*$/" ); - - if ( $package == "gmp" ) - return find_max( $lines, "/$package/", "/^.*$package-([\d\._]*\d[a-z]?).tar.*$/" ); - - if ( $package == "dbus" ) - return find_even_max( $lines, "/$package/", "/^.*$package-([\d\.]+).tar.*$/" ); - - if ( $package == "file" ) - { - $max = find_max( $lines, "/FILE5/", "/^.*FILE(5_\d+)*$/" ); - return str_replace( "_", ".", $max ); - } - - if ( $package == "procps-ng" ) - return find_max( $lines, "/v\d/", "/^.*v([\d\.]+)$/" ); - - if ( $package == "psmisc" ) - return find_max( $lines, "/v\d/", "/^.*v([\d\.]+) .*$/" ); - - if ( $package == "grub" ) - return find_max( $lines, "/grub/", "/^.*grub-(\d\..*).tar.xz.*$/" ); - - if ( $package == "openssl" ) - return find_max( $lines, "/openssl/", "/^.*openssl-([\d\.p]*\d.?).tar.*$/" ); - - if ( $package == "vim" ) - return find_max( $lines, "/v\d\./", "/^.*v([\d\.]+).*$/" ); - - if ( $package == "zstd" ) - return find_max( $lines, "/Zstandard v/", "/^.*v([\d\.]+).*$/" ); - - // Most packages are in the form $package-n.n.n - // Occasionally there are dashes (e.g. 201-1) - return find_max( $lines, "/$package/", "/^.*$package-([\d\.-]*\d)\.tar.*$/" ); -} - -function get_current() -{ - global $dirs; - global $vers; - - // Fetech from svn and get wget-list - $current = array(); - $lfssvn = "svn://svn.linuxfromscratch.org/LFS/trunk"; - - $tmpdir = exec( "mktemp -d /tmp/lfscheck.XXXXXX" ); - $cdir = getcwd(); - chdir( $tmpdir ); - exec ( "svn --quiet export $lfssvn LFS" ); - chdir( $cdir ); - - $PAGE = "$tmpdir/LFS/BOOK/chapter03/chapter03.xml"; - $STYLESHEET = "$tmpdir/LFS/BOOK/stylesheets/wget-list.xsl"; - - exec( "xsltproc --xinclude --nonet $STYLESHEET $PAGE", $current ); - exec( "rm -rf $tmpdir" ); - - foreach ( $current as $line ) - { - $file = basename( $line ) . "\n"; - if ( preg_match( "/patch$/", $file ) ) { continue; } // Skip patches - - $file = preg_replace( "/bz2/", '', $file ); // The 2 confusses the regex - - $file = rtrim( $file ); - $pkg_pattern = "/(\D*).*/"; - //$pattern = "/\D*(\d.*\d)\D*/"; - $pattern = "/\D*(\d.*\d)\D*/"; - - if ( preg_match( "/e2fsprogs/", $file ) ) - { - $pattern = "/e2\D*(\d.*\d)\D*/"; - $pkg_pattern = "/(e2\D*).*/"; - } - - else if ( preg_match( "/tzdata/", $file ) ) - { - $pattern = "/\D*(\d.*[a-z])\.tar\D*/"; - } - - else if ( preg_match( "/openssl/", $file ) ) - { - $pattern = "/\D*(\d.*\d.*).tar.*$/"; - } - - else if ( preg_match( "/gmp/", $file ) ) - { - $pattern = "/\D*(\d.*[a-z]*)\.tar\D*/"; - } - - else if ( preg_match( "/systemd-man-pages/", $file ) ) continue; - else if ( preg_match( "/python/" , $file ) ) continue; - - $version = preg_replace( $pattern, "$1", $file ); // Isolate version - $version = preg_replace( "/^\d-/", "", $version ); // Remove leading #- - - // Touch up package names - $pkg_name = preg_replace( $pkg_pattern, "$1", $file ); - $pkg_name = trim( $pkg_name, "-" ); - - if ( preg_match( "/bzip|iproute/", $pkg_name ) ) { $pkg_name .= "2"; } - if ( preg_match( "/^m$/" , $pkg_name ) ) { $pkg_name .= "4"; } - if ( preg_match( "/shadow/" , $pkg_name ) ) { $pkg_name = "shadow"; } - - $dirs[ $pkg_name ] = dirname( $line ); - $vers[ $pkg_name ] = $version; - } -} - -function mail_to_lfs() -{ - global $date; - global $vers; - global $dirs; - - //$to = "bruce.dubbs@gmail.com"; - $to = "lfs-book@lists.linuxfromscratch.org"; - $from = "bdubbs@linuxfromscratch.org"; - $subject = "LFS Package Currency Check - $date GMT"; - $headers = "From: bdubbs@anduin.linuxfromscratch.org"; - - $message = "Package LFS Upstream Flag\n\n"; - - foreach ( $dirs as $pkg => $dir ) - { - //if ( $pkg != "gmp" ) continue; //debug - $v = get_packages( $pkg, $dir ); - - $flag = ( $vers[ $pkg ] != $v ) ? "*" : ""; - - // Pad for output - $pad = " "; - $p = substr( $pkg . $pad, 0, 15 ); - $l = substr( $vers[ $pkg ] . $pad, 0, 10 ); - $c = substr( $v . $pad, 0, 10 ); - - $message .= "$p $l $c $flag\n"; - } - - exec ( "echo '$message' | mailx -r $from -s '$subject' $to" ); - //echo $message; -} - -function html() -{ - - global $date; - global $vers; - global $dirs; - - echo " - - -LFS Package Currency Check - $date - - - - -

LFS Package Currency Check

-

As of $date GMT

- - -\n"; - - // Get the latest version of each package - foreach ( $dirs as $pkg => $dir ) - { - $v = get_packages( $pkg, $dir ); - $flag = ( $vers[ $pkg ] != $v ) ? "*" : ""; - echo "\n"; - } - - echo "
LFS Package LFS Version Latest Flag
$pkg ${vers[ $pkg ]} $v $flag
- -\n"; - -} - -get_current(); // Get what is in the book -mail_to_lfs(); -//html(); // Write html output -?> diff --git a/lfs-latest.php b/lfs-latest.php new file mode 120000 index 000000000..f41b1b2b9 --- /dev/null +++ b/lfs-latest.php @@ -0,0 +1 @@ +lfs-latest-git.php \ No newline at end of file diff --git a/packages.ent b/packages.ent index 67f418461..c429596fa 100644 --- a/packages.ent +++ b/packages.ent @@ -104,10 +104,10 @@ - - + + - + @@ -308,10 +308,10 @@ - - + + - + @@ -368,10 +368,10 @@ - - + + - + @@ -518,10 +518,10 @@ - - + + - + @@ -576,18 +576,18 @@ - + - + - - + + - + @@ -603,19 +603,19 @@ - + - + - + - - + + @@ -636,10 +636,10 @@ - - + + - + @@ -669,10 +669,10 @@ - - + + - + @@ -725,31 +725,31 @@ - - + + - + - + - + - + - + - + @@ -772,11 +772,15 @@ - - - - - + + + + + + diff --git a/patches.ent b/patches.ent index c3b6dfb18..7bb34e656 100644 --- a/patches.ent +++ b/patches.ent @@ -2,50 +2,14 @@ - - - - - + - - - - @@ -62,49 +26,11 @@ - - - - - -