Browse Source

initial successfull build

master
Cyril CONSTANTIN 4 weeks ago
parent
commit
a5d46a80aa
  1. 21
      COPYING
  2. 20
      LICENSE
  3. 4
      Makefile
  4. 94
      README.md
  5. 2444
      build.sh
  6. 0
      build/10000_howto.txt
  7. 0
      build/100200_fstab.txt
  8. 10
      build/103100_linux-6.18.10.sh
  9. 0
      build/103110_linuxconfig.txt
  10. 0
      build/103120_linuxcompilation.txt
  11. 0
      build/104000_grub.txt
  12. 0
      build/110100_release.txt
  13. 0
      build/110300_reboot.txt
  14. 0
      build/22000_host.txt
  15. 0
      build/27000_mounting.txt
  16. 0
      build/31000_download.txt
  17. 0
      build/32000_download.txt
  18. 0
      build/42000_directories.txt
  19. 0
      build/47000_copy.txt
  20. 0
      build/48000_copy.txt
  21. 0
      build/50000_crosstoolchain.txt
  22. 19
      build/52100_binutils.sh
  23. 53
      build/52200_gcc.sh
  24. 15
      build/52300_linux.sh
  25. 54
      build/52400_glibc.sh
  26. 19
      build/52500_gcc.sh
  27. 0
      build/60000_crosscompiletools.txt
  28. 9
      build/60210_m4.sh
  29. 28
      build/60310_ncurses.sh
  30. 11
      build/60410_bash.sh
  31. 16
      build/60510_coreutils.sh
  32. 10
      build/60610_diffutils.sh
  33. 18
      build/60710_file.sh
  34. 10
      build/60810_findutils.sh
  35. 11
      build/60910_gawk.sh
  36. 8
      build/61010_grep.sh
  37. 7
      build/61110_gzip.sh
  38. 9
      build/61210_make.sh
  39. 9
      build/61310_patch.sh
  40. 9
      build/61410_sed.sh
  41. 9
      build/61510_tar.sh
  42. 13
      build/61610_xz.sh
  43. 26
      build/61710_binutils.sh
  44. 50
      build/61810_gcc.sh
  45. 0
      build/70200_ownership.txt
  46. 0
      build/70500_directories.txt
  47. 0
      build/70600_essential_files.txt
  48. 8
      build/70710_gettext.sh
  49. 8
      build/70810_bison.sh
  50. 16
      build/70910_perl.sh
  51. 10
      build/71010_Python.sh
  52. 7
      build/71110_texinfo.sh
  53. 22
      build/71210_util-linux.sh
  54. 0
      build/71310_cleaning.txt
  55. 5
      build/80310_man-pages.sh
  56. 4
      build/80410_iana-etc.sh
  57. 138
      build/80510_glibc.sh
  58. 12
      build/80610_zlib.sh
  59. 25
      build/80710_bzip2.sh
  60. 12
      build/80810_xz.sh
  61. 5
      build/80910_lz4.sh
  62. 10
      build/81010_zstd.sh
  63. 10
      build/81110_file.sh
  64. 24
      build/81210_readline.sh
  65. 18
      build/81310_pcre2.sh
  66. 10
      build/81410_m4.sh
  67. 10
      build/81510_bc.sh
  68. 14
      build/81610_flex.sh
  69. 50
      build/81710_tcl8.6.17-src.sh
  70. 23
      build/81810_expect.sh
  71. 16
      build/81910_dejagnu.sh
  72. 12
      build/82010_pkgconf.sh
  73. 39
      build/82110_binutils.sh
  74. 30
      build/82210_gmp.sh
  75. 15
      build/82310_mpfr.sh
  76. 14
      build/82410_mpc.sh
  77. 13
      build/82510_attr.sh
  78. 28
      build/82610_acl.sh
  79. 10
      build/82710_libcap.sh
  80. 27
      build/82810_libxcrypt.sh
  81. 32
      build/82910_shadow.sh
  82. 64
      build/83010_gcc.sh
  83. 38
      build/83110_ncurses.sh
  84. 14
      build/83210_sed.sh
  85. 10
      build/83310_psmisc.sh
  86. 13
      build/83410_gettext.sh
  87. 10
      build/83510_bison.sh
  88. 12
      build/83610_grep.sh
  89. 23
      build/83710_bash.sh
  90. 12
      build/83810_libtool.sh
  91. 12
      build/83910_gdbm.sh
  92. 10
      build/84010_gperf.sh
  93. 14
      build/84110_expat.sh
  94. 40
      build/84210_inetutils.sh
  95. 10
      build/84310_less.sh
  96. 27
      build/84410_perl.sh
  97. 10
      build/84510_XML-Parser.sh
  98. 13
      build/84610_intltool.sh
  99. 37
      build/84710_autoconf.sh
  100. 10
      build/84810_automake.sh
  101. Some files were not shown because too many files have changed in this diff Show More

21
COPYING

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
MIT License
Copyright (c) 2026 Cyril CONSTANTIN
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

20
LICENSE

@ -1,9 +1,21 @@ @@ -1,9 +1,21 @@
MIT License
Copyright (c) <year> <copyright holders>
Copyright (c) 2026 Cyril CONSTANTIN
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

4
Makefile

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
all: bash
bash :
bash build.sh | tee ${HOME}/lfs_build.log

94
README.md

@ -1,3 +1,95 @@ @@ -1,3 +1,95 @@
# cclfs
Bash script to build LFS
It's a compliant bash script that builds Linux From Scratch.
If you don't know what this is, or haven't built Linux From Scratch on your own before, you should go through the LFS [book](https://linuxfromscratch.org) before using this script.
This is a script based on <https://github.com/krglaws/MyLFS.git>.
It was developped on debian (bookworm i686, trixie x86_64).
## Requirements
The requirements are those of the book : <https://www.linuxfromscratch.org/lfs/view/stable-systemd/>
The */mnt/lfs* partition is not created by the script.
You have to create it by yourself.
Some commands are provided by the script.
Some additionnal requirements :
* the *lfs* user is mandatory
* User creation is provided by the script
* The script should by executed by *lfs* user
* sudo command is necessary
* a sudoers file is provided for *lfs* user to restrict rights to stricts requirements.
* this sudoers file allow to protect the host and restrict command only to */mnt/lfs* directory
* it allow the following commands on */mnt/lfs* : chown mount install chroot
* build directory is hardcoded : /mnt/lfs
* mount |grep -q "/mnt/lfs type ext4 should return ok
* /etc/bash.bashrc should not be used on host
* sudo mv -v /etc/bash.bashrc /etc/bash.bashrc.NOUSE
* cross compilation for glibc seems to need some specific packages
* sudo apt install flex libzstd-dev pkgconf
* you can't execute in parallel the script on the same namespace.
## How It Works
Copy the repository under any location <build_directory>.
The script do some writings only under :
* <build_directory>
* LFS_PACKAGE_DIR if it does not contains all required packages
* ~lfs/
* /tmp/lfs*
* /mnt/lfs/
* /mnt/lfs/sources/
The script builds LFS by completing the following steps:
1. Download package source code and save to the `packages` directory.
2. Build initial cross compilation tools. This corresponds to chapter 5 in the LFS book, and "phase 1" of the script.
3. Begin to build tools required for minimal chroot environment. (chapter 6/phase 2)
4. Enter chroot environment, and build remaining tools needed to build the entire LFS system. (chapter 7/phase 3)
5. Build the entire LFS system from within chroot envirnment, including the kernel, GRUB, and others. (chapter 8+/phase 4)
The script ask for validation for each step.
You can disable validation until desired step with a number as argument.
The *number* is the chapter (of the books) on 5 digits until you validate.
If you want to start validation at *5. Compiling a Cross-Toolchain*, it's *50000*.
To configure it, execute a first time the *make* command.
A file *~lfs/.lfsbuild_config* will be created.
You can customize it by setting the BREAKPOINT var.
Or create the file before :
```bash
cat /home/lfs/.lfsbuild_config << EOSF
# location of local package sources
LFS_PACKAGE_DIR=/home/lfs/packages
# Number of processors to use
LFS_NPROC=$(nproc)
# Bypass step by step validation until a breakpoint
LFS_BREAKPOINT=1
# strip binaries or not
LFS_STRIP_BINARIES=false
# bypass network config validation by taking network config from host
LFS_NETWORKSAMEASHOST=false
# bypass network configuration for full offline build
LFS_NETWORKOFFLINE=false
# bypass linux config validation by taking linux config from host
# !!! LFS doesn't built a initramfs. If your host load required drivers as modules in it, you won't be able to boot.
# It may be convenient if you build from an LFS host.
# You can also put a config file in your home ( $HOME/linux-config-*version* e.g. linux-config-6.8.10 ) and it will be taken as config file.
LFS_LINUXCONFIGSAMEASHOST=false
EOSF
```
## Examples
Execute as *lfs* user.
```bash
make
```

2444
build.sh

File diff suppressed because it is too large Load Diff

0
build/10000_howto.txt

0
build/100200_fstab.txt

10
build/103100_linux-6.18.10.sh

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
#!/usr/bin/env bash
case $(uname -m) in
i?86)
export ARCH=x86
;;
esac
make mrproper

0
build/103110_linuxconfig.txt

0
build/103120_linuxcompilation.txt

0
build/104000_grub.txt

0
build/110100_release.txt

0
build/110300_reboot.txt

0
build/22000_host.txt

0
build/27000_mounting.txt

0
build/31000_download.txt

0
build/32000_download.txt

0
build/42000_directories.txt

0
build/47000_copy.txt

0
build/48000_copy.txt

0
build/50000_crosstoolchain.txt

19
build/52100_binutils.sh

@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
#!/usr/bin/env bash
mkdir --parents build
cd build || return 1
../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
make
make install

53
build/52200_gcc.sh

@ -0,0 +1,53 @@ @@ -0,0 +1,53 @@
#!/usr/bin/env bash
mkdir --parents mpfr
archivepath=$(find "${SOURCES}" -name "mpfr*.tar.*" -print)
tar --extract --file=../"$(basename "${archivepath}")" --directory=mpfr --strip-components=1
mkdir --parents gmp
archivepath=$(find "${SOURCES}" -name "gmp*.tar.*" -print)
tar --extract --file=../"$(basename "${archivepath}")" --directory=gmp --strip-components=1
mkdir --parents mpc
archivepath=$(find "${SOURCES}" -name "mpc*.tar.*" -print)
tar --extract --file=../"$(basename "${archivepath}")" --directory=mpc --strip-components=1
case $(uname -m) in
x86_64)
sed --expression='/m64=/s/lib64/lib/' --in-place=.orig gcc/config/i386/t-linux64
;;
esac
mkdir --parents build
(
cd build || return 1
../configure \
--target=$LFS_TGT \
--prefix=$LFS/tools \
--with-glibc-version=2.43 \
--with-sysroot=$LFS \
--with-newlib \
--without-headers \
--enable-default-pie \
--enable-default-ssp \
--disable-nls \
--disable-shared \
--disable-multilib \
--disable-threads \
--disable-libatomic \
--disable-libgomp \
--disable-libquadmath \
--disable-libssp \
--disable-libvtv \
--disable-libstdcxx \
--enable-languages=c,c++
make
make install
)
cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
$(dirname $($LFS_TGT-gcc -print-libgcc-file-name))/include/limits.h

15
build/52300_linux.sh

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
#!/usr/bin/env bash
case $(uname -m) in
i?86)
export ARCH=x86
;;
esac
make mrproper
make headers
find usr/include -type f ! -name '*.h' -delete
cp --recursive --verbose usr/include "${LFS}"/usr

54
build/52400_glibc.sh

@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
#!/usr/bin/env bash
echo "---- LFS=${LFS}"
echo "---- LFS_TGT=${LFS_TGT}"
case $(uname --machine) in
i?86)
ln -sfv ld-linux.so.2 $LFS/lib/ld-lsb.so.3
;;
x86_64)
ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64
ln -sfv ../lib/ld-linux-x86-64.so.2 $LFS/lib64/ld-lsb-x86-64.so.3
;;
esac
patch -Np1 -i ../glibc-fhs-1.patch
mkdir --verbose build
cd build || return 1
echo "rootsbindir=/usr/sbin" > configparms
../configure \
--prefix=/usr \
--host=$LFS_TGT \
--build=$(../scripts/config.guess) \
--disable-nscd \
libc_cv_slibdir=/usr/lib \
--enable-kernel=5.4
make
make DESTDIR="${LFS}" install
sed '/RTLDLIST=/s@/usr@@g' -i $LFS/usr/bin/ldd
echo 'int main(){}' | $LFS_TGT-gcc -x c - -v -Wl,--verbose &> dummy.log
grep -E -o "$LFS/lib.*/S?crt[1in].*succeeded" dummy.log || return 1
grep -B3 "^ $LFS/usr/include" dummy.log || return 1
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g' || return 1
grep "/lib.*/libc.so.6 " dummy.log |grep 'succeeded' || return 1
case $(uname -m) in
i?86)
readelf -l a.out | grep ': /lib' | grep '/lib/ld-linux.so.2' || return 1
grep found dummy.log |grep '/mnt/lfs/usr/lib/ld-linux.so.2' || return 1
;;
x86_64)
readelf -l a.out | grep ': /lib' | grep '/lib64/ld-linux-x86-64.so.2' || return 1
grep found dummy.log |grep '/mnt/lfs/usr/lib/ld-linux-x86-64.so.2' || return 1
;;
esac

19
build/52500_gcc.sh

@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
#!/usr/bin/env bash
mkdir -p build
cd build || return 1
../libstdc++-v3/configure \
--host=$LFS_TGT \
--build=$(../config.guess) \
--prefix=/usr \
--disable-multilib \
--disable-nls \
--disable-libstdcxx-pch \
--with-gxx-include-dir=/tools/$LFS_TGT/include/c++/15.2.0
make
make DESTDIR=$LFS install
rm -v "${LFS}"/usr/lib/lib{stdc++{,exp,fs},supc++}.la

0
build/60000_crosscompiletools.txt

9
build/60210_m4.sh

@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--host="${LFS_TGT}" \
--build="$(build-aux/config.guess)"
make
make DESTDIR="${LFS}" install

28
build/60310_ncurses.sh

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
#!/usr/bin/env bash
mkdir build
pushd build || return 1
../configure --prefix="${LFS}"/tools AWK=gawk
make -C include
make -C progs tic
install progs/tic "${LFS}"/tools/bin
popd || exit 1
./configure --prefix=/usr \
--host="${LFS_TGT}" \
--build="$(./config.guess)" \
--mandir=/usr/share/man \
--with-manpage-format=normal \
--with-shared \
--without-normal \
--with-cxx-shared \
--without-debug \
--without-ada \
--disable-stripping \
AWK=gawk
make
make DESTDIR="${LFS}" install
ln -sv libncursesw.so "${LFS}"/usr/lib/libncurses.so
sed -e 's/^#if.*XOPEN.*$/#if 1/' -i "${LFS}"/usr/include/curses.h

11
build/60410_bash.sh

@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--build="$(sh support/config.guess)" \
--host="${LFS_TGT}" \
--without-bash-malloc
make
make DESTDIR="${LFS}" install
ln -s bash "${LFS}"/bin/sh

16
build/60510_coreutils.sh

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--host="${LFS_TGT}" \
--build="$(build-aux/config.guess)" \
--enable-install-program=hostname \
--enable-no-install-program=kill,uptime
make
make DESTDIR="${LFS}" install
mv "${LFS}"/usr/bin/chroot "${LFS}"/usr/sbin
mkdir -p "${LFS}"/usr/share/man/man8
mv "${LFS}"/usr/share/man/man1/chroot.1 "${LFS}"/usr/share/man/man8/chroot.8
sed -i 's/"1"/"8"/' "${LFS}"/usr/share/man/man8/chroot.8

10
build/60610_diffutils.sh

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--host="${LFS_TGT}" \
gl_cv_func_strcasecmp_works=y \
--build="$(./build-aux/config.guess)"
make
make DESTDIR="${LFS}" install

18
build/60710_file.sh

@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
#!/usr/bin/env bash
mkdir build
pushd build || return 1
../configure --disable-bzlib \
--disable-libseccomp \
--disable-xzlib \
--disable-zlib
make
popd || exit 1
./configure --prefix=/usr --host="${LFS_TGT}" --build="$(./config.guess)"
make FILE_COMPILE="$(pwd)"/build/src/file
make DESTDIR="${LFS}" install
rm "${LFS}"/usr/lib/libmagic.la

10
build/60810_findutils.sh

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--localstatedir=/var/lib/locate \
--host="${LFS_TGT}" \
--build="$(build-aux/config.guess)"
make
make DESTDIR="${LFS}" install

11
build/60910_gawk.sh

@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
#!/usr/bin/env bash
sed -i 's/extras//' Makefile.in
./configure --prefix=/usr \
--host="${LFS_TGT}" \
--build="$(build-aux/config.guess)"
make
make DESTDIR="${LFS}" install

8
build/61010_grep.sh

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--host="${LFS_TGT}" \
--build="$(./build-aux/config.guess)"
make
make DESTDIR="${LFS}" install

7
build/61110_gzip.sh

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
#!/usr/bin/env bash
./configure --prefix=/usr --host="${LFS_TGT}"
make
make DESTDIR="${LFS}" install

9
build/61210_make.sh

@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--host="${LFS_TGT}" \
--build="$(build-aux/config.guess)"
make
make DESTDIR="${LFS}" install

9
build/61310_patch.sh

@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--host="${LFS_TGT}" \
--build="$(build-aux/config.guess)"
make
make DESTDIR="${LFS}" install

9
build/61410_sed.sh

@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--host="${LFS_TGT}" \
--build="$(./build-aux/config.guess)"
make
make DESTDIR="${LFS}" install

9
build/61510_tar.sh

@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--host="${LFS_TGT}" \
--build="$(build-aux/config.guess)"
make
make DESTDIR="${LFS}" install

13
build/61610_xz.sh

@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--host="${LFS_TGT}" \
--build="$(build-aux/config.guess)" \
--disable-static \
--docdir=/usr/share/doc/xz-5.8.2
make
make DESTDIR="${LFS}" install
rm "${LFS}"/usr/lib/liblzma.la

26
build/61710_binutils.sh

@ -0,0 +1,26 @@ @@ -0,0 +1,26 @@
#!/usr/bin/env bash
# shellcheck disable=SC2016
sed '6031s/$add_dir//' -i ltmain.sh
mkdir build
pushd build || return 1
../configure \
--prefix=/usr \
--build="$(../config.guess)" \
--host="${LFS_TGT}" \
--disable-nls \
--enable-shared \
--enable-gprofng=no \
--disable-werror \
--enable-64-bit-bfd \
--enable-new-dtags \
--enable-default-hash-style=gnu
make
make DESTDIR="${LFS}" install
popd || exit 1
rm "${LFS}"/usr/lib/lib{bfd,ctf,ctf-nobfd,opcodes,sframe}.{a,la}

50
build/61810_gcc.sh

@ -0,0 +1,50 @@ @@ -0,0 +1,50 @@
#!/usr/bin/env bash
mkdir -p mpfr
archivepath=$(find "${SOURCES}" -name "mpfr*.tar.*" -print)
tar -xf ../"$(basename "${archivepath}")" -C mpfr --strip-components=1
mkdir -p gmp
archivepath=$(find "${SOURCES}" -name "gmp*.tar.*" -print)
tar -xf ../"$(basename "${archivepath}")" -C gmp --strip-components=1
mkdir -p mpc
archivepath=$(find "${SOURCES}" -name "mpc*.tar.*" -print)
tar -xf ../"$(basename "${archivepath}")" -C mpc --strip-components=1
case $(uname -m) in
x86_64)
sed -e '/m64=/s/lib64/lib/' -i gcc/config/i386/t-linux64
;;
esac
sed '/thread_header =/s/@.*@/gthr-posix.h/' \
-i libgcc/Makefile.in libstdc++-v3/include/Makefile.in
mkdir build
cd build || return 1
../configure \
--build="$(../config.guess)" \
--host="${LFS_TGT}" \
--target="${LFS_TGT}" \
--prefix=/usr \
--with-build-sysroot="${LFS}" \
--enable-default-pie \
--enable-default-ssp \
--disable-nls \
--disable-multilib \
--disable-libatomic \
--disable-libgomp \
--disable-libquadmath \
--disable-libsanitizer \
--disable-libssp \
--disable-libvtv \
--enable-languages=c,c++ \
LDFLAGS_FOR_TARGET=-L"${PWD}"/"${LFS_TGT}"/libgcc
make
make DESTDIR="${LFS}" install
ln -s gcc "${LFS}"/usr/bin/cc

0
build/70200_ownership.txt

0
build/70500_directories.txt

0
build/70600_essential_files.txt

8
build/70710_gettext.sh

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
#!/usr/bin/env bash
./configure --disable-shared
make
cp gettext-tools/src/{msgfmt,msgmerge,xgettext} /usr/bin

8
build/70810_bison.sh

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--docdir=/usr/share/doc/bison-3.8.2
make
make install

16
build/70910_perl.sh

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
#!/usr/bin/env bash
sh Configure -des \
-D prefix=/usr \
-D vendorprefix=/usr \
-D useshrplib \
-D privlib=/usr/lib/perl5/5.42/core_perl \
-D archlib=/usr/lib/perl5/5.42/core_perl \
-D sitelib=/usr/lib/perl5/5.42/site_perl \
-D sitearch=/usr/lib/perl5/5.42/site_perl \
-D vendorlib=/usr/lib/perl5/5.42/vendor_perl \
-D vendorarch=/usr/lib/perl5/5.42/vendor_perl
make
make install

10
build/71010_Python.sh

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--enable-shared \
--without-ensurepip \
--without-static-libpython
make
make install

7
build/71110_texinfo.sh

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
#!/usr/bin/env bash
./configure --prefix=/usr
make
make install

22
build/71210_util-linux.sh

@ -0,0 +1,22 @@ @@ -0,0 +1,22 @@
#!/usr/bin/env bash
mkdir -pv /var/lib/hwclock
./configure --libdir=/usr/lib \
--runstatedir=/run \
--disable-chfn-chsh \
--disable-login \
--disable-nologin \
--disable-su \
--disable-setpriv \
--disable-runuser \
--disable-pylibmount \
--disable-static \
--disable-liblastlog2 \
--without-python \
ADJTIME_PATH=/var/lib/hwclock/adjtime \
--docdir=/usr/share/doc/util-linux-2.41.3
make
make install

0
build/71310_cleaning.txt

5
build/80310_man-pages.sh

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
#!/usr/bin/env bash
rm man3/crypt*
make -R GIT=false prefix=/usr install

4
build/80410_iana-etc.sh

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
#!/usr/bin/env bash
cp -v services protocols /etc

138
build/80510_glibc.sh

@ -0,0 +1,138 @@ @@ -0,0 +1,138 @@
#!/usr/bin/env bash
patch -Np1 -i ../glibc-fhs-1.patch
mkdir -v build
cd build || return 1
echo "rootsbindir=/usr/sbin" > configparms
../configure --prefix=/usr \
--disable-werror \
--disable-nscd \
libc_cv_slibdir=/usr/lib \
--enable-stack-protector=strong \
--enable-kernel=5.4
make
# sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile
echo "Fix the Makefile to skip an outdated sanity check that fails with a modern Glibc configuration"
echo "sed /test-installation/s#\$\(PERL\)\ scripts/test-installation.pl#echo\ outdated_sanity_check_disabled# ../Makefile"
sed /test-installation/s#\$\(PERL\)\ scripts/test-installation.pl#echo\ outdated_sanity_check_disabled# ../Makefile
sed /test-installation/s#\$\(PERL\)\ scripts/test-installation.pl#echo\ outdated_sanity_check_disabled# -i ../Makefile
[ -e /tmp/glibc_make_check.log ] && rm /tmp/glibc_make_check.log
if ! make check | tee /tmp/glibc_make_check.log
then
grep ^FAIL /tmp/glibc_make_check.log | cut -d' ' -f 2 | while IFS= read -r failure
do
case ${failure} in
io/tst-lchmod)
continue
;;
libio/tst-asprintf-null)
continue
;;
nptl/tst-basic3)
continue
;;
*)
echo "Failed on FAIL"
exit 1
;;
esac
done
fi
cat >> /etc/ld.so.conf << "EOF"
# Add an include directory
include /etc/ld.so.conf.d/*.conf
EOF
mkdir -pv /etc/ld.so.conf.d
cat > /etc/ld.so.conf.d/libc.conf << "EOF"
/usr/lib
/usr/local/lib
EOF
make install
sed '/RTLDLIST=/s@/usr@@g' -i /usr/bin/ldd
localedef -i C -f UTF-8 C.UTF-8
localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8
localedef -i de_DE -f ISO-8859-1 de_DE
localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
localedef -i de_DE -f UTF-8 de_DE.UTF-8
localedef -i el_GR -f ISO-8859-7 el_GR
localedef -i en_GB -f ISO-8859-1 en_GB
localedef -i en_GB -f UTF-8 en_GB.UTF-8
localedef -i en_HK -f ISO-8859-1 en_HK
localedef -i en_PH -f ISO-8859-1 en_PH
localedef -i en_US -f ISO-8859-1 en_US
localedef -i en_US -f UTF-8 en_US.UTF-8
localedef -i es_ES -f ISO-8859-15 es_ES@euro
localedef -i es_MX -f ISO-8859-1 es_MX
localedef -i fa_IR -f UTF-8 fa_IR
localedef -i fr_FR -f ISO-8859-1 fr_FR
localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
localedef -i fr_FR -f UTF-8 fr_FR.UTF-8
localedef -i is_IS -f ISO-8859-1 is_IS
localedef -i is_IS -f UTF-8 is_IS.UTF-8
localedef -i it_IT -f ISO-8859-1 it_IT
localedef -i it_IT -f ISO-8859-15 it_IT@euro
localedef -i it_IT -f UTF-8 it_IT.UTF-8
localedef -i ja_JP -f EUC-JP ja_JP
localedef -i ja_JP -f UTF-8 ja_JP.UTF-8
localedef -i nl_NL@euro -f ISO-8859-15 nl_NL@euro
localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R
localedef -i ru_RU -f UTF-8 ru_RU.UTF-8
localedef -i se_NO -f UTF-8 se_NO.UTF-8
localedef -i ta_IN -f UTF-8 ta_IN.UTF-8
localedef -i tr_TR -f UTF-8 tr_TR.UTF-8
localedef -i zh_CN -f GB18030 zh_CN.GB18030
localedef -i zh_HK -f BIG5-HKSCS zh_HK.BIG5-HKSCS
localedef -i zh_TW -f UTF-8 zh_TW.UTF-8
make localedata/install-locales
cat > /etc/nsswitch.conf << "EOF"
# Begin /etc/nsswitch.conf
passwd: files systemd
group: files systemd
shadow: files systemd
hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns
networks: files
protocols: files
services: files
ethers: files
rpc: files
# End /etc/nsswitch.conf
EOF
tar -xf ../../tzdata2025c.tar.gz
ZONEINFO=/usr/share/zoneinfo
mkdir -pv $ZONEINFO/{posix,right}
for tz in etcetera southamerica northamerica europe africa antarctica \
asia australasia backward; do
zic -L /dev/null -d $ZONEINFO ${tz}
zic -L /dev/null -d $ZONEINFO/posix ${tz}
zic -L leapseconds -d $ZONEINFO/right ${tz}
done
cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO
zic -d $ZONEINFO -p America/New_York
unset ZONEINFO tz
ln -sfv /usr/share/zoneinfo/America/New_York /etc/localtime

12
build/80610_zlib.sh

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
#!/usr/bin/env bash
./configure --prefix=/usr
make
make check
make install
rm -f /usr/lib/libz.a

25
build/80710_bzip2.sh

@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
#!/usr/bin/env bash
patch -Np1 -i ../bzip2-1.0.8-install_docs-1.patch
sed -i "s@\(ln -s -f \)$(PREFIX)/bin/@\1@" Makefile
sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g" Makefile
make -f Makefile-libbz2_so
make clean
make
make PREFIX=/usr install
cp -av libbz2.so.* /usr/lib
ln -sfv libbz2.so.1.0.8 /usr/lib/libbz2.so
ln -sfv libbz2.so.1.0.8 /usr/lib/libbz2.so.1
cp -v bzip2-shared /usr/bin/bzip2
for i in /usr/bin/{bzcat,bunzip2}; do
ln -sfv bzip2 $i
done
rm -fv /usr/lib/libbz2.a

12
build/80810_xz.sh

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/xz-5.8.2
make
make check
make install

5
build/80910_lz4.sh

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
#!/usr/bin/env bash
make BUILD_STATIC=no PREFIX=/usr
make -j1 check
make BUILD_STATIC=no PREFIX=/usr install

10
build/81010_zstd.sh

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
#!/usr/bin/env bash
make prefix=/usr
make check
make prefix=/usr install
rm -v /usr/lib/libzstd.a

10
build/81110_file.sh

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
#!/usr/bin/env bash
./configure --prefix=/usr
make
make check
make install

24
build/81210_readline.sh

@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
#!/usr/bin/env bash
sed -i '/MV.*old/d' Makefile.in
sed -i '/{OLDSUFF}/c:' support/shlib-install
sed -i 's/-Wl,-rpath,[^ ]*//' support/shobj-conf
sed -e '270a\
else\
chars_avail = 1;' \
-e '288i\ result = -1;' \
-i.orig input.c
./configure --prefix=/usr \
--disable-static \
--with-curses \
--docdir=/usr/share/doc/readline-8.3
make SHLIB_LIBS="-lncursesw"
make install
install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.3

18
build/81310_pcre2.sh

@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--docdir=/usr/share/doc/pcre2-10.47 \
--enable-unicode \
--enable-jit \
--enable-pcre2-16 \
--enable-pcre2-32 \
--enable-pcre2grep-libz \
--enable-pcre2grep-libbz2 \
--enable-pcre2test-libreadline \
--disable-static
make
make check
make install

10
build/81410_m4.sh

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
#!/usr/bin/env bash
./configure --prefix=/usr
make
make check
make install

10
build/81510_bc.sh

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
#!/usr/bin/env bash
CC='gcc -std=c99' ./configure --prefix=/usr -G -O3 -r
make
make test
make install

14
build/81610_flex.sh

@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/flex-2.6.4
make
make check
make install
ln -sv flex /usr/bin/lex
ln -sv flex.1 /usr/share/man/man1/lex.1

50
build/81710_tcl8.6.17-src.sh

@ -0,0 +1,50 @@ @@ -0,0 +1,50 @@
#!/usr/bin/env bash
SRCDIR=$(pwd)
(
cd unix || return 1
./configure --prefix=/usr \
--mandir=/usr/share/man \
--disable-rpath
make
make
sed -e "s|$SRCDIR/unix|/usr/lib|" \
-e "s|$SRCDIR|/usr/include|" \
-i tclConfig.sh
sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.12|/usr/lib/tdbc1.1.12|" \
-e "s|$SRCDIR/pkgs/tdbc1.1.12/generic|/usr/include|" \
-e "s|$SRCDIR/pkgs/tdbc1.1.12/library|/usr/lib/tcl8.6|" \
-e "s|$SRCDIR/pkgs/tdbc1.1.12|/usr/include|" \
-i pkgs/tdbc1.1.12/tdbcConfig.sh
sed -e "s|$SRCDIR/unix/pkgs/itcl4.3.4|/usr/lib/itcl4.3.4|" \
-e "s|$SRCDIR/pkgs/itcl4.3.4/generic|/usr/include|" \
-e "s|$SRCDIR/pkgs/itcl4.3.4|/usr/include|" \
-i pkgs/itcl4.3.4/itclConfig.sh
unset SRCDIR
LC_ALL=C.UTF-8 make test
make install
chmod 644 /usr/lib/libtclstub8.6.a
chmod -v u+w /usr/lib/libtcl8.6.so
make install-private-headers
ln -sfv tclsh8.6 /usr/bin/tclsh
mv -v /usr/share/man/man3/{Thread,Tcl_Thread}.3
)
#cd ..
tar -xf ../tcl8.6.17-html.tar.gz --strip-components=1
mkdir -v -p /usr/share/doc/tcl-8.6.17
cp -v -r ./html/* /usr/share/doc/tcl-8.6.17

23
build/81810_expect.sh

@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
#!/usr/bin/env bash
python3 -c 'from pty import spawn; spawn(["echo", "ok"])' | tee /tmp/python_pty_spawn.log
grep "OSError: out of pty devices" /tmp/python_pty_spawn.log && return 1
patch -Np1 -i ../expect-5.45.4-gcc15-1.patch
./configure --prefix=/usr \
--with-tcl=/usr/lib \
--enable-shared \
--disable-rpath \
--mandir=/usr/share/man \
--with-tclinclude=/usr/include
make
make test
make install
ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib

16
build/81910_dejagnu.sh

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
#!/usr/bin/env bash
mkdir -v build
cd build || return 1
../configure --prefix=/usr
makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi
makeinfo --plaintext -o doc/dejagnu.txt ../doc/dejagnu.texi
make check
make install
install -v -dm755 /usr/share/doc/dejagnu-1.6.3
install -v -m644 doc/dejagnu.{html,txt} /usr/share/doc/dejagnu-1.6.3

12
build/82010_pkgconf.sh

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/pkgconf-2.5.1
make
make install
ln -s pkgconf /usr/bin/pkg-config
ln -s pkgconf.1 /usr/share/man/man1/pkg-config.1

39
build/82110_binutils.sh

@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
#!/usr/bin/env bash
mkdir -v build
cd build || exit 1
../configure --prefix=/usr \
--sysconfdir=/etc \
--enable-ld=default \
--enable-plugins \
--enable-shared \
--disable-werror \
--enable-64-bit-bfd \
--enable-new-dtags \
--with-system-zlib \
--enable-defualt-hash-style=gnu
make tooldir=/usr
PID=$$
if ! make -k check | tee /tmp/binutils_make_check_${PID}.log
then
find . -type f -name '*.log' -exec grep --files-with-matches ^FAIL {} \; | while IFS= read -r failure
do
case "${failure}" in
./gprofng/gprofng.log)
continue
;;
*)
echo "test failure"
return 1
;;
esac
done
fi
make tooldir=/usr install
rm -rfv /usr/lib/lib{bfd,ctf,ctf-nobfd,gprofng,opcodes,sframe}.a /usr/share/doc/gprofng/

30
build/82210_gmp.sh

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
#!/usr/bin/env bash
sed -i '/long long t1;/,+1s/()/(...)/' configure
case $(uname -m) in
i*86)
ABI=32 ./configure --prefix=/usr \
--enable-cxx \
--disable-static \
--docdir=/usr/share/doc/gmp-6.3.0
;;
x86_64)
./configure --prefix=/usr \
--enable-cxx \
--disable-static \
--docdir=/usr/share/doc/gmp-6.3.0
;;
esac
make
make html
make check 2>&1 | tee gmp-check-log
awk '/# PASS:/{total+=$3} ; END{print total}' gmp-check-log
make install
make install-html

15
build/82310_mpfr.sh

@ -0,0 +1,15 @@ @@ -0,0 +1,15 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--disable-static \
--enable-thread-safe \
--docdir=/usr/share/doc/mpfr-4.2.2
make
make html
make check
make install
make install-html

14
build/82410_mpc.sh

@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/mpc-1.3.1
make
make html
make check
make install
make install-html

13
build/82510_attr.sh

@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--disable-static \
--sysconfdir=/etc \
--docdir=/usr/share/doc/attr-2.5.2
make
make check
make install

28
build/82610_acl.sh

@ -0,0 +1,28 @@ @@ -0,0 +1,28 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/acl-2.3.2
make
#make check
if ! make check | tee binutils_make_check.log
then
grep ^FAIL binutils_make_check.log | cut -d' ' -f 2 | while IFS= read -r failure
do
case "${failure}" in
test/cp.test)
continue
;;
*)
echo "test failure"
return 1
;;
esac
done
fi
make install

10
build/82710_libcap.sh

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
#!/usr/bin/env bash
sed -i '/install -m.*STA/d' libcap/Makefile
make prefix=/usr lib=lib
make test
make prefix=/usr lib=lib install

27
build/82810_libxcrypt.sh

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
#!/usr/bin/env bash
sed -i '/strchr/s/const//' lib/crypt-{sm3,gost}-yescrypt.c
./configure --prefix=/usr \
--enable-hashes=strong,glibc \
--enable-obsolete-api=no \
--disable-static \
--disable-failure-tokens
make
make check
make install
# recompile for ABI version 1 functions
#
# make distclean
# ./configure --prefix=/usr \
# --enable-hashes=strong,glibc \
# --enable-obsolete-api=glibc \
# --disable-static \
# --disable-failure-tokens
# make
# cp -av --remove-destination .libs/libcrypt.so.1* /usr/lib

32
build/82910_shadow.sh

@ -0,0 +1,32 @@ @@ -0,0 +1,32 @@
#!/usr/bin/env bash
sed -i "s/groups$(EXEEXT) //" src/Makefile.in
find man -name Makefile.in -exec sed -i 's/groups\.1 / /' {} \;
find man -name Makefile.in -exec sed -i 's/getspnam\.3 / /' {} \;
find man -name Makefile.in -exec sed -i 's/passwd\.5 / /' {} \;
sed -e 's:#ENCRYPT_METHOD DES:ENCRYPT_METHOD SHA512:' \
-e 's:/var/spool/mail:/var/mail:' \
-e '/PATH=/{s@/sbin:@@;s@/bin:@@}' \
-i etc/login.defs
touch /usr/bin/passwd
./configure --sysconfdir=/etc \
--disable-static \
--with-{b,yes}crypt \
--without-libbsd \
--disable-logind \
--with-group-name-max-length=32
make
make exec_prefix=/usr install
make -C man install-man
pwconv
grpconv
mkdir -p /etc/default
useradd -D --gid 999
echo "root:$(basename "$(pwd)")" | chpasswd

64
build/83010_gcc.sh

@ -0,0 +1,64 @@ @@ -0,0 +1,64 @@
#!/usr/bin/env bash
sed -i 's/char [*]q/const &/' libgomp/affinity-fmt.c
case $(uname -m) in
x86_64)
sed -e '/m64=/s/lib64/lib/' \
-i.orig gcc/config/i386/t-linux64
;;
esac
mkdir -v build
cd build || return 1
../configure --prefix=/usr \
LD=ld \
--enable-languages=c,c++ \
--enable-default-pie \
--enable-default-ssp \
--enable-host-pie \
--disable-multilib \
--disable-bootstrap \
--disable-fixincludes \
--with-system-zlib
make || return 1
ulimit -s -H unlimited
sed -e '/cpython/d' -i ../gcc/testsuite/gcc.dg/plugin/plugin.exp
chown -Rv tester .
su tester -c "PATH=$PATH make -k check"
../contrib/test_summary
make install || return 1
chown -v -R root:root /usr/lib/gcc/"$(gcc -dumpmachine)"/15.2.0/include{,-fixed}
ln -svr /usr/bin/cpp /usr/lib
ln -sv gcc.1 /usr/share/man/man1/cc.1
ln -svf ../../libexec/gcc/"$(gcc -dumpmachine)"/15.2.0/liblto_plugin.so /usr/lib/bfd-plugins/
echo 'int main(){}' | cc -x c - -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep ': /lib' || return 1
grep -E -o '/usr/lib.*/S?crt[1in].*succeeded' dummy.log || return 1
grep -B4 '^ /usr/include' dummy.log || return 1
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g' || return 1
grep "/lib.*/libc.so.6 " dummy.log || return 1
grep found dummy.log || return 1
mkdir -pv /usr/share/gdb/auto-load/usr/lib
mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib

38
build/83110_ncurses.sh

@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--mandir=/usr/share/man \
--with-shared \
--without-debug \
--without-normal \
--with-cxx-shared \
--enable-pc-files \
--with-pkg-config-libdir=/usr/lib/pkgconfig
make
make DESTDIR="${PWD}"/dest install
sed -e 's/^#if.*XOPEN.*$/#if 1/' \
-i dest/usr/include/curses.h
cp --remove-destination -av dest/* /
for lib in ncurses form panel menu ; do
ln -svf lib${lib}w.so /usr/lib/lib${lib}.so
ln -svf ${lib}w.pc /usr/lib/pkgconfig/${lib}.pc
done
ln -sf libncursesw.so /usr/lib/libcurses.so
cp -v -R doc -T /usr/share/doc/ncurses-6.6
# compilation with ABI version 5
# make distclean
# ./configure --prefix=/usr \
# --with-shared \
# --without-normal \
# --without-debug \
# --without-cxx-binding \
# --with-abi-version=5
# make sources libs
# cp -av lib/lib*.so.5* /usr/lib

14
build/83210_sed.sh

@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
#!/usr/bin/env bash
./configure --prefix=/usr
make
make html
chown -R tester .
su tester -c "PATH=$PATH make check"
make install
install -d -m755 /usr/share/doc/sed-4.9
install -m644 doc/sed.html /usr/share/doc/sed-4.9

10
build/83310_psmisc.sh

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
#!/usr/bin/env bash
./configure --prefix=/usr
make
make check
make install

13
build/83410_gettext.sh

@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/gettext-1.0
make
make check
make install
chmod -v 0755 /usr/lib/preloadable_libintl.so

10
build/83510_bison.sh

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
#!/usr/bin/env bash
./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.8.2
make
make check
make install

12
build/83610_grep.sh

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
#!/usr/bin/env bash
sed -i "s/echo/#echo/" src/egrep.sh
./configure --prefix=/usr
make
make check
make install

23
build/83710_bash.sh

@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--without-bash-malloc \
--with-installed-readline \
--docdir=/usr/share/doc/bash-5.3
make
chown -R tester .
LC_ALL=C.UTF-8 su -s /usr/bin/expect tester << "EOF"
set timeout -1
spawn make tests
expect eof
lassign [wait] _ _ _ value
exit $value
EOF
make install
#exec /usr/bin/bash --login

12
build/83810_libtool.sh

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
#!/usr/bin/env bash
./configure --prefix=/usr
make
make check
make install
rm -fv /usr/lib/libltdl.a

12
build/83910_gdbm.sh

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--disable-static \
--enable-libgdbm-compat
make
make check
make install

10
build/84010_gperf.sh

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
#!/usr/bin/env bash
./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.3
make
make check
make install

14
build/84110_expat.sh

@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
#!/usr/bin/env bash
./configure --prefix=/usr \
--disable-static \
--docdir=/usr/share/doc/expat-2.7.4
make
make check
make install
install -v -m644 doc/*.{html,css} /usr/share/doc/expat-2.7.4

40
build/84210_inetutils.sh

@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
#!/usr/bin/env bash
sed -i 's/def HAVE_TERMCAP_TGETENT/ 1/' telnet/telnet.c
./configure --prefix=/usr \
--bindir=/usr/bin \
--localstatedir=/var \
--disable-logger \
--disable-whois \
--disable-rcp \
--disable-rexec \
--disable-rlogin \
--disable-rsh \
--disable-servers
make
[ -e /tmp/inetutils_make_check.log ] && rm /tmp/inetutils_make_check.log
if ! make check | tee /tmp/inetutils_make_check.log
then
grep ^FAIL /tmp/inetutils_make_check.log | cut --delimiter=' ' --fields=2 | while IFS= read -r failure
do
case ${failure} in
libls.sh)
echo "One test named libls.sh is known to fail sometimes."
continue
;;
*)
echo "Failed on FAIL"
exit 1
;;
esac
done
fi
make install
mv -v /usr/{,s}bin/ifconfig

10
build/84310_less.sh

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
#!/usr/bin/env bash
./configure --prefix=/usr --sysconfdir=/etc
make
make check
make install

27
build/84410_perl.sh

@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
#!/usr/bin/env bash
export BUILD_ZLIB=False
export BUILD_BZIP2=0
sh Configure -des \
-D prefix=/usr \
-D vendorprefix=/usr \
-D privlib=/usr/lib/perl5/5.42/core_perl \
-D archlib=/usr/lib/perl5/5.42/core_perl \
-D sitelib=/usr/lib/perl5/5.42/site_perl \
-D sitearch=/usr/lib/perl5/5.42/site_perl \
-D vendorlib=/usr/lib/perl5/5.42/vendor_perl \
-D vendorarch=/usr/lib/perl5/5.42/vendor_perl \
-D man1dir=/usr/share/man/man1 \
-D man3dir=/usr/share/man/man3 \
-D pager="/usr/bin/less -isR" \
-D useshrplib \
-D usethreads
make
TEST_JOBS=${LFS_NPROC} make test_harness
make install
unset BUILD_ZLIB BUILD_BZIP2

10
build/84510_XML-Parser.sh

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
#!/usr/bin/env bash
perl Makefile.PL
make
make test
make install

13
build/84610_intltool.sh

@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
#!/usr/bin/env bash
sed -i 's:\\\${:\\\$\\{:' intltool-update.in
./configure --prefix=/usr
make
make check
make install
install -v -Dm644 doc/I18N-HOWTO /usr/share/doc/intltool-0.51.0/I18N-HOWTO

37
build/84710_autoconf.sh

@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
#!/usr/bin/env bash
./configure --prefix=/usr
make
[ -e /tmp/autoconf_make_check.log ] && rm /tmp/autoconf_make_check.log
if ! make check | tee /tmp/autoconf_make_check.log
then
echo "return code ko"
case $(uname -m) in
i?86)
grep FAILED /tmp/autoconf_make_check.log | cut -d' ' -f 2 | while IFS= read -r failure
do
echo "FAILED : ${failure}"
case ${failure} in
AC_SYS_LARGEFILE|AC_SYS_YEAR2038|AC_SYS_YEAR2038_RECOMMENDED)
echo "It's a 32 bits system. don't pass 2038 date limit."
continue
;;
*)
echo "Critical error in tests : ${failure}"
exit 1
;;
esac
done
;;
*)
echo "Critical error in tests"
exit 1
;;
esac
fi
make install

10
build/84810_automake.sh

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
#!/usr/bin/env bash
./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.18.1
make
make -j$((LFS_NPROC>4?LFS_NPROC:4)) check
make install

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save