cvs commit: hints static-pwd.txt

timothy at linuxfromscratch.org timothy at linuxfromscratch.org
Sun Jan 5 06:17:24 PST 2003


timothy     03/01/05 09:17:24

  Added:       .        static-pwd.txt
  Log:
  Initial commit.
  
  Revision  Changes    Path
  1.1                  hints/static-pwd.txt
  
  Index: static-pwd.txt
  ===================================================================
  TITLE:		LFS 4.1 using static-pwd hack
  LFS VERSION:	4.1
  AUTHOR:		Ronald Hummelink <ronald AT hummelink DOT xs4all DOT nl>
  
  SYNOPSIS:
  	How to install Linux From Scratch 4.1 from a pre glibc-2.3.x system
  	using the static password lib hack
  
  ACKNOWLEDGEMENS:
  	Grant Leslie for inventing the hack.
  
  CHANGELOG:
  	1.1	05-03-2002	Initial release
  
  HINT:
  
  Use the hint at your own risk. Neither the author, nor the Linux From Scratch
  project accepts any reponsibility for anything that happens when using these
  documents or associated files.
  
  You may freely copy this document or create derivate works or distribute the
  document in any format. At your discretion, you may give credit to the original
  author:)
  
  Comments and improvements are welcome at the email address mentioned above in
  the author field.
  
  When installing Linux From Scratch with glibc 2.3.1 from a system with an
  older glibc version installed several binaries will crash with a segmentation
  fault when attempting to access the libnss libraries. This is due to an
  incompatibility between the static binaries (linked with old glibc) and the
  new nss libraries.
  
  This hint describes how to work around this problem by compiling a small
  library that will replace the passwd and group resolving functions avoiding
  the binaries to crash.
  
  
  The work-around only involves a number of changes to chapter 5 of the LFS book.
  The hint will only list instructions for the packages that have changed
  instructions.
  
  Before building bash you need to compile the static-pwd libary
  
  Download the static-pwd package from:
  http://www.linuxfromscratch.org/~scot/static-pwd.tar.bz2
  Extract the tarball normally and cd into the created directory
  
  Build libpwd.a:
  
  	make &&
  	export LFS_LIBS=$(pwd)
  
  export LFS_LIBS=$(pwd): This command sets an environment variable to aid in
  linking this library with some of the later installed programs.
  
  
  Bash-2.05a
  
  Install Bash by running the following commands:
  
  	CFLAGS="-I$LFS_LIBS" ./configure --enable-static-link \
  	    --prefix=$LFS/static --with-curses &&
  	make LOCAL_LIBS="$LFS_LIBS/libpwd.a" &&
  	make install
  
  CFLAGS="-I$LFS_LIBS": This adds the static-pwd directory to the library search
  path.
  LOCAL_LIBS="$LFS_LIBS/libpwd.a": This adds the static-pwd stub library to the
  library list.
  
  
  Fileutils-4.1
  
  If you need the fileutils patch, apply it:
  
  	patch -Np1 -i ../fileutils-4.1.patch
  
  Install Fileutils by running the following commands:
  
  	LDFLAGS=-static CFLAGS="-I$LFS_LIBS" \
  	    ./configure --disable-nls --prefix=$LFS/static &&
  	make LIBS="$LFS_LIBS/libpwd.a" &&
  	make install
  
  LIBS="$LFS_LIBS/libpwd.a": This adds the static_pwd stub library to the
  library list.
  
  
  Findutils-4.1
  
  Install Findutils by running the following commands:
  
  	patch -Np1 -i ../findutils-4.1.patch &&
  	CPPFLAGS=-Dre_max_failures=re_max_failures2 \
  	    CFLAGS="-I$LFS_LIBS" ./configure --prefix=$LFS/static &&
  	make LDFLAGS=-static LIBS="$LFS_LIBS/libpwd.a" &&
  	make install
  
  
  Make-3.80
  
  Install Make by running the following commands:
  
  	CFLAGS="-I$LFS_LIBS" ./configure \
  	    --prefix=$LFS/static --disable-nls &&
  	make LDFLAGS=-static LIBS="$LFS_LIBS/libpwd.a" &&
  	make install
  
  
  Sh-utils-2.0
  
  If you need the sh-utils patch, apply it:
  
  patch -Np1 -i ../sh-utils-2.0.patch
  
  Install Sh-utils by running the following commands:
  
  	CFLAGS="-I$LFS_LIBS" ./configure --prefix=$LFS/static \
  	    --disable-nls &&
  	make LDFLAGS=-static LIBS="$LFS_LIBS/libpwd.a" &&
  	make install
  
  
  Tar-1.13
  
  If you want the tar patch, apply it:
  
  	patch -Np1 -i ../tar-1.13.patch
  
  Install Tar by running the following commands:
  
  	CFLAGS="-I$LFS_LIBS" ./configure \
  	     --prefix=$LFS/static --disable-nls &&
  	make LDFLAGS=-static LIBS="$LFS_LIBS/libpwd.a" &&
  	make install
  
  
  All the other packages build in chapter 5 are build with the normal
  instructions as given in the book.
  
  Optionally you can create the passwd and group files before chrooting into the
  chapter 5 system. This is purely cosmetic however, you won't get the
  "I have no name" prompt from bash.
  
  mkdir $LFS/etc &&
  echo "root:x:0:0:root:/root:/bin/bash" > $LFS/etc/passwd
  
  cat > $LFS/etc/group << "EOF"
  root:x:0:
  bin:x:1:
  sys:x:2:
  kmem:x:3:
  tty:x:4:
  tape:x:5:
  daemon:x:6:
  floppy:x:7:
  disk:x:8:
  lp:x:9:
  dialout:x:10:
  audio:x:11:
  EOF
  
  If you do this you can also change the command to change the ownership from
  the lfs user to:
  
  chown -R root:root /static /etc/passwd /etc/group
  
  You should from now on be able to complete chapter 6 without any problems with
  segmentation faults without any more changes.
  
  
  
  
-- 
Unsubscribe: send email to listar at linuxfromscratch.org
and put 'unsubscribe hints' in the subject header of the message



More information about the hints mailing list