From d0a6c4c212b7204aef7ee577cf897d6c0c792520 Mon Sep 17 00:00:00 2001 From: Greg Schafer Date: Tue, 20 Jan 2004 05:59:05 +0000 Subject: [PATCH] Upgraded to Glibc-2.3.3, Kbd-1.12, Perl-5.8.3 and Shadow-4.0.4.1. git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@3177 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689 --- appendixa/coreutils-down.xml | 2 ++ appendixa/glibc-down.xml | 11 ++++++--- appendixa/shadowpwd-down.xml | 4 +-- chapter01/changelog.xml | 14 ++++++++--- chapter04/chapter04.xml | 39 ++++++++++++++++++------------ chapter05/coreutils.xml | 14 ++++++++++- chapter05/glibc.xml | 47 +++++++++++++++++------------------- chapter06/binutils.xml | 4 +-- chapter06/coreutils.xml | 4 +++ chapter06/glibc.xml | 31 ++++++++++-------------- chapter06/shadowpwd.xml | 35 +++++++++------------------ chapter06/vim.xml | 2 +- chapter08/grub.xml | 8 +++--- entities/coreutils.ent | 2 ++ entities/glibc.ent | 19 ++++++--------- entities/kbd.ent | 6 ++--- entities/perl.ent | 8 +++--- entities/shadow.ent | 11 +++------ index.xml | 4 +-- 19 files changed, 138 insertions(+), 127 deletions(-) diff --git a/appendixa/coreutils-down.xml b/appendixa/coreutils-down.xml index 0b9ae165f..afc6cd999 100644 --- a/appendixa/coreutils-down.xml +++ b/appendixa/coreutils-down.xml @@ -2,5 +2,7 @@ And for the Coreutils Hostname Patch: +And for the Coreutils Posixver Patch: + And for the Coreutils Uname Patch: diff --git a/appendixa/glibc-down.xml b/appendixa/glibc-down.xml index 835afd30e..15083edcf 100644 --- a/appendixa/glibc-down.xml +++ b/appendixa/glibc-down.xml @@ -1,6 +1,9 @@ Official download location for Glibc (&glibc-version;): -And for Glibc-linuxthreads (&glibc-version;): - -And for the Glibc Sscanf Patch: - + +Alternate Download Locations (courtesy of the generous LFS Mirrors): + + + + + diff --git a/appendixa/shadowpwd-down.xml b/appendixa/shadowpwd-down.xml index a74d4ad1c..834d8eb1d 100644 --- a/appendixa/shadowpwd-down.xml +++ b/appendixa/shadowpwd-down.xml @@ -1,4 +1,2 @@ Official download location for Shadow (&shadow-version;): - -And for the Shadow Newgrp Patch: - + diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 2da8d7000..313820acd 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -13,15 +13,17 @@ file-4.07 gcc-3.3.2 gettext-0.13.1 -kbd-1.11 +glibc-2.3.3 +kbd-1.12 man-pages-1.64 lfs-utils-0.4.2 linux-2.4.24 modutils-2.4.26 -perl-5.8.2 +perl-5.8.3 procps-3.1.15 psmisc-21.4 sed-4.0.9 +shadow-4.0.4.1 tcl-8.4.5 zlib-1.2.1 @@ -29,9 +31,10 @@ Added: +coreutils-5.0-posixver-2.patch gcc-3.3.2-no_fixincludes-1.patch inetutils-1.4.2-no_server_man_pages-1.patch -kbd-1.11-more-programs-1.patch +kbd-1.12-more-programs-1.patch @@ -40,16 +43,21 @@ gawk-3.1.3-libexecdir.patch gcc-3.3.1-no_fixincludes-2.patch gcc-3.3.1-suppress-libiberty.patch +glibc-2.3.2-sscanf-1.patch grub-0.93-gcc33-1.patch kbd-1.08-more-programs.patch man-1.5m2-manpath.patch man-1.5m2-pager.patch ncurses-5.3-vsscanf.patch procps-3.1.11-locale-fix.patch +shadow-4.0.3-newgrp-fix.patch zlib-1.1.4-vsnprintf.patch +January 19th, 2004 [greg]: Upgraded to Glibc-2.3.3, Kbd-1.12, +Perl-5.8.3 and Shadow-4.0.4.1. + January 19th, 2004 [alex]: Chapter 2 - Added a reference to Bruce's pages on build times and SBUs. diff --git a/chapter04/chapter04.xml b/chapter04/chapter04.xml index 1643e9b26..9890a587c 100644 --- a/chapter04/chapter04.xml +++ b/chapter04/chapter04.xml @@ -101,7 +101,7 @@ Ed (&ed-version;) - &ed-size;: Expect (&expect-version;) - &expect-size;: -File (&file-version;) - &file-size;: (*) See Note Below +File (&file-version;) - &file-size;: -- (*) See Note 1 Below Findutils (&findutils-version;) - &findutils-size;: @@ -128,10 +128,7 @@ GCC-testsuite (&gcc-version;) - &gcc-testsuite-size;: Gettext (&gettext-version;) - &gettext-size;: -Glibc (&glibc-version;) - &glibc-size;: - - -Glibc-linuxthreads (&glibc-version;) - &glibc-threads-size;: +Glibc (&glibc-version;) - &glibc-size;: -- (*) See Note 2 Below Grep (&grep-version;) - &grep-size;: @@ -239,10 +236,25 @@ Zlib (&zlib-version;) - &zlib-size;: Total size of these packages: &all-size-mb; -File (&file-version;) may not be available by the time you read -this. The master download location is known to remove old versions when new -ones are released. Please refer to the corresponding section in - for an alternate download location. +1) File (&file-version;) may not be available by the time you read +this. The site admins of the master download location are known to occasionally +remove old versions when new ones are released. Please refer to the + section for an alternate download +location. + +2) As of this writing, the Glibc maintainers have decided in their +wisdom not to make available new release tarballs for download. The only way to +obtain the current Glibc release from pristine upstream sources is to pull it +from the Glibc CVS repository. The following commands will download the current +release and make a tarball from it: + +cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/glibc \ +    export -d &glibc-dir; -D "2003-12-02 UTC" libc +tar jcvf &glibc-package; &glibc-dir; + +Alternatively, we've made our own tarball available which you can +download courtesy of the generous LFS mirror sites. Please refer to the + section for the download links. @@ -266,6 +278,9 @@ Bison Attribute Patch - &bison-patch-size;: Coreutils Hostname Patch - &coreutils-hostname-patch-size;: +Coreutils Posixver Patch - &coreutils-posixver-patch-size;: + + Coreutils Uname Patch - &coreutils-uname-patch-size;: @@ -290,9 +305,6 @@ GCC-2 No-Fixincludes Patch - &gcc-2953-no-fixinc-patch-size;: GCC-2 Return-Type Patch - &gcc-2953-returntype-fix-patch-size;: -Glibc Sscanf Patch - &glibc-sscanf-patch-size;: - - Inetutils No-Server-Man-Pages Patch - &inetutils-no-server-man-pages-patch-size;: @@ -310,9 +322,6 @@ Net-tools Mii-Tool-Gcc33 Patch - &net-tools-mii-patch-size;: Perl Libc Patch - &perl-libc-patch-size;: - -Shadow Newgrp Patch - &shadow-patch-size;: - In addition to the above required patches, there exist a number of diff --git a/chapter05/coreutils.xml b/chapter05/coreutils.xml index 31d59312b..70362f9fc 100644 --- a/chapter05/coreutils.xml +++ b/chapter05/coreutils.xml @@ -15,7 +15,19 @@ Estimated required disk space: &coreutils-compsize-tools; Installation of Coreutils -Prepare Coreutils for compilation: +Coreutils has an issue when compiled against Glibc-&glibc-version;. +Without the patch below, some of the Coreutils utilities (head, tail, sort etc) +will reject their traditional syntax which has been in use for approximately 30 +years. The old syntax is so pervasive that compatibility must be preserved until +the many places where it is used can be updated. More details are provided in +the comments inside the patch itself. Use of this patch is by no means +compulsory but opting not to use it means you'll have deal with the consequences +yourself, i.e. patch the many software packages that use the old syntax. Apply +the patch: + +patch -Np1 -i ../&coreutils-posixver-patch; + +Now prepare Coreutils for compilation: ./configure --prefix=/tools diff --git a/chapter05/glibc.xml b/chapter05/glibc.xml index 1f178dd15..58f198917 100644 --- a/chapter05/glibc.xml +++ b/chapter05/glibc.xml @@ -13,11 +13,6 @@ Estimated required disk space: &glibc-compsize-tools; Installation of Glibc -Before starting to install Glibc, you must cd -into the glibc-&glibc-version; directory and unpack -Glibc-linuxthreads in that directory, not in the directory where you usually -unpack all the sources. - This package is known to behave badly when you have changed its default optimization flags (including the -march and -mcpu options). Therefore, if you have defined any environment variables that override @@ -27,11 +22,6 @@ them when building Glibc. Basically, compiling Glibc in any other way than the book suggests is putting the stability of your system at risk. -Glibc has a subtle problem when compiled with GCC &gcc-version;. -Apply the following patch to fix this: - -patch -Np1 -i ../&glibc-sscanf-patch; - The Glibc documentation recommends building Glibc outside of the source directory in a dedicated build directory: @@ -40,11 +30,11 @@ cd ../glibc-build Next, prepare Glibc for compilation: -../glibc-&glibc-version;/configure --prefix=/tools \ -    --disable-profile --enable-add-ons \ +../&glibc-dir;/configure --prefix=/tools \ +    --disable-profile --enable-add-ons=linuxthreads \     --with-headers=/tools/include \     --with-binutils=/tools/bin \ -    --without-gd +    --without-gd --without-cvs The meaning of the configure options: @@ -53,8 +43,9 @@ cd ../glibc-build building of the libraries with profiling information. Omit this option if you plan to do profiling. ---enable-add-ons: This enables any -add-ons that were installed with Glibc, in our case Linuxthreads. +--enable-add-ons=linuxthreads: This +tells Glibc to use the Linuxthreads add-on as its threading +library. --with-binutils=/tools/bin and --with-headers=/tools/include: Strictly speaking @@ -62,10 +53,16 @@ these switches are not required. But they ensure nothing can go wrong with regard to what kernel headers and Binutils programs get used during the Glibc build. - --without-gd: This switch ensures +--without-gd: This switch ensures that we don't build the memusagestat program, which strangely enough insists on linking against the host's libraries (libgd, libpng, libz, and so forth). + +--without-cvs: This is meant to prevent +the Makefiles from attempting automatic CVS commits when using a CVS snapshot. +But it's not actually needed these days. We use it because it silences an +annoying but harmless warning about a missing autoconf +program. During this stage you might see the following warning: @@ -158,15 +155,15 @@ command will do so: make localedata/install-locales -An alternative to running the previous command is to install only -those locales which you need or want. This can be achieved by using the -localedef command. Information on this can be -found in the INSTALL file in the -glibc-&glibc-version; source. However, there are a number -of locales that are essential for the tests of future packages to pass, in -particular, the libstdc++ tests from GCC. The following -instructions, instead of the install-locales target above, will install -the minimum set of locales necessary for the tests to run successfully: +An alternative to running the previous command is to install only those +locales which you need or want. This can be achieved by using the +localedef command. Information on this can be found in +the INSTALL file in the Glibc source. However, there are +a number of locales that are essential for the tests of future packages to +pass, in particular, the libstdc++ tests from GCC. The +following instructions, instead of the install-locales target above, will +install the minimum set of locales necessary for the tests to run +successfully: mkdir -p /tools/lib/locale localedef -i de_DE -f ISO-8859-1 de_DE diff --git a/chapter06/binutils.xml b/chapter06/binutils.xml index 11e7226c5..02f771868 100644 --- a/chapter06/binutils.xml +++ b/chapter06/binutils.xml @@ -28,8 +28,8 @@ everything is set up correctly by performing a simple test: Your chroot environment is not set up for proper PTY operation. In this case there is no point in running the test suites for Binutils and GCC until you are able to resolve the issue. Please refer back to -and and perform the recommended steps to fix the -problem. +and the section and perform the recommended steps +to fix the problem. The test suite for Binutils in this section is considered critical. Our advice is to not skip it under any diff --git a/chapter06/coreutils.xml b/chapter06/coreutils.xml index 9ceb62437..815a272c5 100644 --- a/chapter06/coreutils.xml +++ b/chapter06/coreutils.xml @@ -16,6 +16,10 @@ Estimated required disk space: &coreutils-compsize; Installation of Coreutils +Apply the same "Posixver" patch we used previously: + +patch -Np1 -i ../&coreutils-posixver-patch; + Normally the functionality of uname is somewhat broken, in that the -p switch always returns "unknown". The following patch fixes this behaviour for Intel architectures: diff --git a/chapter06/glibc.xml b/chapter06/glibc.xml index 5bb78e198..3009a84d2 100644 --- a/chapter06/glibc.xml +++ b/chapter06/glibc.xml @@ -28,14 +28,8 @@ results and thus defeat our goal of achieving a clean build. critical. Our advice is to not skip it under any circumstance. -Before starting to build Glibc, remember to unpack the Glibc-linuxthreads -again inside the glibc-&glibc-version; directory, and to -unset any environment variables that override the default optimization -flags. - -Apply the same patch we used previously: - -patch -Np1 -i ../&glibc-sscanf-patch; +Before starting to build Glibc, remember to unset any environment +variables that override the default optimization flags. The Glibc documentation recommends building Glibc outside of the source directory in a dedicated build directory: @@ -45,9 +39,10 @@ cd ../glibc-build Now prepare Glibc for compilation: -../glibc-&glibc-version;/configure --prefix=/usr \ -    --disable-profile --enable-add-ons \ -    --libexecdir=/usr/lib --with-headers=/usr/include +../&glibc-dir;/configure --prefix=/usr \ +    --disable-profile --enable-add-ons=linuxthreads \ +    --libexecdir=/usr/lib --with-headers=/usr/include \ +    --without-cvs The meaning of the new configure options: @@ -95,14 +90,14 @@ weren't installed by the above command. Do it with this: make localedata/install-locales An alternative to running the previous command is to install only those -locales which you need or want. This can be achieved using the +locales which you need or want. This can be achieved by using the localedef command. Information on this can be found in -the INSTALL file in the -glibc-&glibc-version; tree. However, there are a number -of locales that are essential for the tests of future packages to pass -correctly. The following instructions, in place of the install-locales -command above, will install the minimum set of locales necessary for the -tests to run successfully: +the INSTALL file in the Glibc source. However, there are +a number of locales that are essential for the tests of future packages to +pass, in particular, the libstdc++ tests from GCC. The +following instructions, instead of the install-locales target above, will +install the minimum set of locales necessary for the tests to run +successfully: mkdir -p /usr/lib/locale localedef -i de_DE -f ISO-8859-1 de_DE diff --git a/chapter06/shadowpwd.xml b/chapter06/shadowpwd.xml index 89cfd5d39..a89df4002 100644 --- a/chapter06/shadowpwd.xml +++ b/chapter06/shadowpwd.xml @@ -27,15 +27,14 @@ the package incorrectly assumes it is going to be located at touch /usr/bin/passwd -The current Shadow suite has a problem that causes the -newgrp command to fail. The following patch (also -appearing in Shadow's CVS code) fixes this problem: - -patch -Np1 -i ../&shadow-patch; - Now prepare Shadow for compilation: -./configure --prefix=/usr --libdir=/usr/lib --enable-shared +./configure --libdir=/usr/lib --enable-shared + +Work around a problem that prevents Shadow's internationalization from +working: + +echo '#define HAVE_SETLOCALE 1' >> config.h Compile the package: @@ -65,20 +64,10 @@ relevant configuration file while copying it to its destination: Be extra careful when typing all of the above. It is probably safer to cut-and-paste it rather than try and type it all in. -According to the man page of vipw, a -vigr program should exist too. Since the installation -procedure doesn't create this program, create a symlink manually: +Move some misplaced symlinks to their proper locations: -ln -s vipw /usr/sbin/vigr - -As the /bin/vipw symlink is redundant (and even -pointing to a non-existent file), remove it: - -rm /bin/vipw - -Now move the sg program to its proper place: - -mv /bin/sg /usr/bin +mv /bin/sg /usr/bin +mv /bin/vigr /usr/sbin And move Shadow's dynamic libraries to a more appropriate location: @@ -95,9 +84,9 @@ directory for it to work properly: mkdir /etc/default -Coreutils has already installed a groups program -in /usr/bin. If you wish, you can remove the one -installed by Shadow: +Coreutils has already installed a better groups +program in /usr/bin. Remove the one installed by +Shadow: rm /bin/groups diff --git a/chapter06/vim.xml b/chapter06/vim.xml index 06a10aebc..e4ab8dba2 100644 --- a/chapter06/vim.xml +++ b/chapter06/vim.xml @@ -42,7 +42,7 @@ echo '#define SYS_GVIMRC_FILE "/etc/gvimrc"' >> src/feature.h< This package has a test suite available which performs a number of checks to ensure it will function correctly. However, the Vim test suite will output a whole lot of seemingly garbage characters to screen which can -sometimes wreak havoc with the running terminal. Accordingly, the running of +occasionally wreak havoc with the running terminal. Accordingly, the running of the test suite here is optional. Should you choose to run the Vim test suite, the following command will do so: diff --git a/chapter08/grub.xml b/chapter08/grub.xml index 5902ef954..dcc11dc4b 100644 --- a/chapter08/grub.xml +++ b/chapter08/grub.xml @@ -92,10 +92,10 @@ kernel --no-mem-option /boot/lfskernel root=/dev/hda4 EOF By default, Grub will automatically pass a "mem=xxx" command line -argument to the kernel. However, Grub sometimes gets the amount of memory wrong -which can lead to problems in some circumstances. It's best to disable this -functionality and let the kernel determine the amount of memory itself, hence -the use of the --no-mem-option above. +argument to the kernel. However, Grub occasionally gets the amount of memory +wrong which can lead to problems in some circumstances. It's best to disable +this functionality and let the kernel determine the amount of memory itself, +hence the use of the --no-mem-option above. You may want to add an entry for your host distribution. It might look like this: diff --git a/entities/coreutils.ent b/entities/coreutils.ent index e246fea96..18288839c 100644 --- a/entities/coreutils.ent +++ b/entities/coreutils.ent @@ -18,6 +18,8 @@ + + diff --git a/entities/glibc.ent b/entities/glibc.ent index 0fb0c7d40..77ee4e11e 100644 --- a/entities/glibc.ent +++ b/entities/glibc.ent @@ -8,18 +8,13 @@ - - - - - - - - - - - - + + + + + + + diff --git a/entities/kbd.ent b/entities/kbd.ent index 174dbb43d..b241147ab 100644 --- a/entities/kbd.ent +++ b/entities/kbd.ent @@ -5,9 +5,9 @@ - - - + + + diff --git a/entities/perl.ent b/entities/perl.ent index 75f23a125..bc5cef1f6 100644 --- a/entities/perl.ent +++ b/entities/perl.ent @@ -7,12 +7,12 @@ - - - + + + - + diff --git a/entities/shadow.ent b/entities/shadow.ent index 4e8032c1f..5f9e4e973 100644 --- a/entities/shadow.ent +++ b/entities/shadow.ent @@ -6,15 +6,12 @@ - - - + + + - - - - + diff --git a/index.xml b/index.xml index f939f8a12..bf4e0e29b 100644 --- a/index.xml +++ b/index.xml @@ -2,8 +2,8 @@ - + +