Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #####################################################################
- # ENVIRONMENT PREAPRATION ###########################################
- #####################################################################
- # Need to be root
- sudo su root
- # Need to change apt source list
- cd /etc/apt/ && cp sources.list sources.list.old && rm sources.list
- grep -v cdrom /etc/apt/sources.list.old | sed -e 's/restricted/universe/g' > sources.list
- rm sources.list.old
- # Update apt package list an install some shit
- apt-get update && apt-get install bison gawk gcc g++ m4 make texinfo
- # Change default shell symlink
- ln -svf /bin/bash /bin/sh
- # Test all
- wget -O - https://raw.githubusercontent.com/viktomas/linux-from-scratch/master/version-check.sh | bash
- # Partitioning 20 GB Disk ...
- gdisk /dev/sda
- # n --> (Enter) --> (Enter) --> +100M --> (Enter)
- # n --> (Enter) --> (Enter) --> +18330M --> (Enter)
- # n --> (Enter) --> (Enter) --> (Enter) --> (Enter)
- #
- # Number Start (sector) End (sector) Size Code Name
- # 1 2048 206847 100.0 MiB 8300 boot
- # 2 206848 37746687 17.9 GiB 8300 rootfs
- # 3 37746688 41943006 2.0 GiB 8300 swap
- # Format file systems
- mkfs -v -t ext4 /dev/sda2 # rootfs
- mkfs -v -t ext2 /dev/sda1 # boot
- mkswap /dev/sda3 # swap
- # Export LFS Path
- export LFS=/mnt/lfs && echo $LFS
- # Make structure and Mount file system
- mkdir -pv $LFS
- mount -v -t ext4 /dev/sda2 $LFS
- mkdir -pv $LFS/boot
- mount -v -t ext2 /dev/sda1 $LFS/boot
- /sbin/swapon -v /dev/sda3
- # Getting sources ...
- mkdir -v $LFS/sources
- chmod -v a+wt $LFS/sources
- wget http://www.linuxfromscratch.org/lfs/view/8.3/wget-list
- # Make tools dir
- mkdir -v $LFS/tools
- ln -sv $LFS/tools /
- # Make lfs User & Group
- groupadd lfs
- useradd -s /bin/bash -g lfs -m -k /dev/null lfs
- passwd lfs
- chown -v lfs $LFS/tools
- chown -v lfs $LFS/sources
- su - lfs
- # Make lfs env files
- cat > ~/.bash_profile << "EOF"
- exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
- EOF
- cat > ~/.bashrc << "EOF"
- set +h
- umask 022
- LFS=/mnt/lfs
- LC_ALL=POSIX
- LFS_TGT=$(uname -m)-lfs-linux-gnu
- PATH=/tools/bin:/bin:/usr/bin
- export LFS LC_ALL LFS_TGT PATH
- export MAKEFLAGS='-j 4'
- EOF
- source ~/.bash_profile
- # Final check before compiling process
- cat > ~/finalcheck.sh << "EOF"
- if [ "$LFS" = "/mnt/lfs" ]; then echo "OK !"; else echo "\$LFS var not set."; fi
- if [ "$BASH" = "/bin/bash" ]; then echo "OK !"; else echo "Current shell is not bash." $0 $1; fi
- if [ "$( readlink /bin/sh )" = "/bin/bash" ]; then echo "OK !"; else echo "Current sh symlink is not bash."; fi
- if [ "$( readlink $(readlink /usr/bin/awk) )" = "/usr/bin/gawk" ]; then echo "OK !"; else echo "Current awk symlink is not gawk."; fi
- if [ "$( readlink $(readlink /usr/bin/yacc) )" = "/usr/bin/bison.yacc" ]; then echo "OK !"; else echo "Current awk symlink is not gawk."; fi
- EOF
- chmod +xX finalcheck.sh && ./finalcheck.sh && rm finalcheck.sh
- #####################################################################
- # BULDING TEMPORARY SYSTEM ##########################################
- #####################################################################
- # go to src dir
- cd $LFS/sources
- # Binutils-2.31.1
- tar -xf binutils-2.31.1.tar.xz
- cd binutils-2.31.1
- mkdir -v build && cd build
- ../configure --prefix=/tools \
- --with-sysroot=$LFS \
- --with-lib-path=/tools/lib \
- --target=$LFS_TGT \
- --disable-nls \
- --disable-werror
- make
- case $(uname -m) in
- x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;;
- esac
- make install
- cd ../.. && rm -rf binutils-2.31.1
- # GCC-8.2.0
- tar -xf gcc-8.2.0.tar.xz
- cd gcc-8.2.0
- tar -xf ../mpfr-4.0.1.tar.xz
- mv -v mpfr-4.0.1 mpfr
- tar -xf ../gmp-6.1.2.tar.xz
- mv -v gmp-6.1.2 gmp
- tar -xf ../mpc-1.1.0.tar.gz
- mv -v mpc-1.1.0 mpc
- for file in gcc/config/{linux,i386/linux{,64}}.h
- do
- cp -uv $file{,.orig}
- sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
- -e 's@/usr@/tools@g' $file.orig > $file
- echo '
- #undef STANDARD_STARTFILE_PREFIX_1
- #undef STANDARD_STARTFILE_PREFIX_2
- #define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
- #define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
- touch $file.orig
- done
- 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
- ../configure \
- --target=$LFS_TGT \
- --prefix=/tools \
- --with-glibc-version=2.11 \
- --with-sysroot=$LFS \
- --with-newlib \
- --without-headers \
- --with-local-prefix=/tools \
- --with-native-system-header-dir=/tools/include \
- --disable-nls \
- --disable-shared \
- --disable-multilib \
- --disable-decimal-float \
- --disable-threads \
- --disable-libatomic \
- --disable-libgomp \
- --disable-libmpx \
- --disable-libquadmath \
- --disable-libssp \
- --disable-libvtv \
- --disable-libstdcxx \
- --enable-languages=c,c++
- make && make install
- cd ../.. && rm -rf gcc-8.2.0
- # Linux-4.18.5 API Headers
- tar -xf linux-4.18.5.tar.xz
- cd linux-4.18.5
- make mrproper
- make INSTALL_HDR_PATH=dest headers_install
- cp -rv dest/include/* /tools/include
- cd .. && rm -rf linux-4.18.5
- # Glibc-2.28
- tar -xf glibc-2.28.tar.xz
- cd glibc-2.28
- mkdir -v build && cd build
- ../configure \
- --prefix=/tools \
- --host=$LFS_TGT \
- --build=$(../scripts/config.guess) \
- --enable-kernel=3.2 \
- --with-headers=/tools/include \
- libc_cv_forced_unwind=yes \
- libc_cv_c_cleanup=yes
- make -j1 && make install
- echo 'int main(){}' > dummy.c
- $LFS_TGT-gcc dummy.c
- echo; echo "Expected --> [Requesting program interpreter: /tools/lib64/ld-linux-x86-64.so.2]"; echo;
- readelf -l a.out | grep ': /tools'
- cd ../.. && rm -rf glibc-2.28
- # Libstdc++
- tar -xf gcc-8.2.0.tar.xz
- cd gcc-8.2.0
- mkdir -v build && cd build
- ../libstdc++-v3/configure \
- --host=$LFS_TGT \
- --prefix=/tools \
- --disable-multilib \
- --disable-nls \
- --disable-libstdcxx-threads \
- --disable-libstdcxx-pch \
- --with-gxx-include-dir=/tools/$LFS_TGT/include/c++/8.2.0
- make && make install
- cd ../.. && rm -rf gcc-8.2.0
- # Binutils-2.31.1
- tar -xf binutils-2.31.1.tar.xz
- cd binutils-2.31.1
- mkdir -v build && cd build
- CC=$LFS_TGT-gcc \
- AR=$LFS_TGT-ar \
- RANLIB=$LFS_TGT-ranlib \
- ../configure \
- --prefix=/tools \
- --disable-nls \
- --disable-werror \
- --with-lib-path=/tools/lib \
- --with-sysroot
- make && make install
- make -C ld clean
- make -C ld LIB_PATH=/usr/lib:/lib
- cp -v ld/ld-new /tools/bin
- cd ../.. && rm -rf binutils-2.31.1
- # GCC-8.2.0
- tar -xf gcc-8.2.0.tar.xz
- cd gcc-8.2.0
- cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
- `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include-fixed/limits.h
- for file in gcc/config/{linux,i386/linux{,64}}.h
- do
- cp -uv $file{,.orig}
- sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
- -e 's@/usr@/tools@g' $file.orig > $file
- echo '
- #undef STANDARD_STARTFILE_PREFIX_1
- #undef STANDARD_STARTFILE_PREFIX_2
- #define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
- #define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
- touch $file.orig
- done
- case $(uname -m) in
- x86_64)
- sed -e '/m64=/s/lib64/lib/' \
- -i.orig gcc/config/i386/t-linux64
- ;;
- esac
- tar -xf ../mpfr-4.0.1.tar.xz
- mv -v mpfr-4.0.1 mpfr
- tar -xf ../gmp-6.1.2.tar.xz
- mv -v gmp-6.1.2 gmp
- tar -xf ../mpc-1.1.0.tar.gz
- mv -v mpc-1.1.0 mpc
- mkdir -v build && cd build
- CC=$LFS_TGT-gcc \
- CXX=$LFS_TGT-g++ \
- AR=$LFS_TGT-ar \
- RANLIB=$LFS_TGT-ranlib \
- ../configure \
- --prefix=/tools \
- --with-local-prefix=/tools \
- --with-native-system-header-dir=/tools/include \
- --enable-languages=c,c++ \
- --disable-libstdcxx-pch \
- --disable-multilib \
- --disable-bootstrap \
- --disable-libgomp
- make && make install
- ln -sv gcc /tools/bin/cc
- echo 'int main(){}' > dummy.c
- cc dummy.c
- echo; echo "Expected -->[Requesting program interpreter: /tools/lib64/ld-linux-x86-64.so.2]"; echo;
- readelf -l a.out | grep ': /tools'
- cd ../.. && rm -rf gcc-8.2.0
- # Tcl-8.6.8
- tar -xf tcl8.6.8-src.tar.gz
- cd tcl8.6.8/unix
- ./configure --prefix=/tools
- make && make install
- chmod -v u+w /tools/lib/libtcl8.6.so
- make install-private-headers
- ln -sv tclsh8.6 /tools/bin/tclsh
- cd ../.. && rm -rf tcl8.6.8
- # Expect-5.45.4
- tar -xf expect5.45.4.tar.gz
- cd expect5.45.4
- cp -v configure{,.orig}
- sed 's:/usr/local/bin:/bin:' configure.orig > configure
- ./configure --prefix=/tools \
- --with-tcl=/tools/lib \
- --with-tclinclude=/tools/include
- make && make SCRIPTS="" install
- cd .. && rm -rf expect5.45.4
- # DejaGNU-1.6.1
- tar -xf dejagnu-1.6.1.tar.gz
- cd dejagnu-1.6.1
- ./configure --prefix=/tools && make install && make check
- cd .. && rm -rf dejagnu-1.6.1
- # M4-1.4.18
- tar -xf m4-1.4.18.tar.xz
- cd m4-1.4.18
- sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
- echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h
- ./configure --prefix=/tools
- make && make check && make install
- cd .. && rm -rf m4-1.4.18
- # Ncurses-6.1
- tar -xf ncurses-6.1.tar.gz
- cd ncurses-6.1
- sed -i s/mawk// configure
- ./configure --prefix=/tools \
- --with-shared \
- --without-debug \
- --without-ada \
- --enable-widec \
- --enable-overwrite
- make && make install
- cd .. && rm -rf ncurses-6.1
- # Bash-4.4.18
- tar -xf bash-4.4.18.tar.gz
- cd bash-4.4.18
- ./configure --prefix=/tools --without-bash-malloc
- make && make install
- ln -sv bash /tools/bin/sh
- cd .. && rm -rf bash-4.4.18
- # Bison-3.0.5
- tar -xf bison-3.0.5.tar.xz
- cd bison-3.0.5
- ./configure --prefix=/tools
- make && make install
- cd .. && rm -rf bison-3.0.5
- # Bzip2-1.0.6
- tar -xf bzip2-1.0.6.tar.gz
- cd bzip2-1.0.6
- make && make PREFIX=/tools install
- cd .. && rm -rf bzip2-1.0.6
- # Coreutils-8.30
- tar -xf coreutils-8.30.tar.xz
- cd coreutils-8.30
- ./configure --prefix=/tools --enable-install-program=hostname
- make && make install
- cd .. && rm -rf coreutils-8.30
- # Diffutils-3.6
- tar -xf diffutils-3.6.tar.xz
- cd diffutils-3.6
- ./configure --prefix=/tools
- make && make install
- cd .. && rm -rf diffutils-3.6
- # File-5.34
- tar -xf file-5.34.tar.gz
- cd file-5.34
- ./configure --prefix=/tools
- make && make install
- cd .. && rm -rf file-5.34
- # Findutils-4.6.0
- tar -xf findutils-4.6.0.tar.gz
- cd findutils-4.6.0
- sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' gl/lib/*.c
- sed -i '/unistd/a #include <sys/sysmacros.h>' gl/lib/mountlist.c
- echo "#define _IO_IN_BACKUP 0x100" >> gl/lib/stdio-impl.h
- ./configure --prefix=/tools
- make && make install
- cd .. && rm -rf findutils-4.6.0
- # Gawk-4.2.1
- tar -xf gawk-4.2.1.tar.xz
- cd gawk-4.2.1
- ./configure --prefix=/tools
- make && make install
- cd .. && rm -rf gawk-4.2.1
- # Gettext-0.19.8.1
- tar -xf gettext-0.19.8.1.tar.xz
- cd gettext-0.19.8.1/gettext-tools
- EMACS="no" ./configure --prefix=/tools --disable-shared
- make -C gnulib-lib
- make -C intl pluralx.c
- make -C src msgfmt
- make -C src msgmerge
- make -C src xgettext
- cp -v src/{msgfmt,msgmerge,xgettext} /tools/bin
- cd ../.. && rm -rf gettext-0.19.8.1
- # Grep-3.1
- tar -xf grep-3.1.tar.xz
- cd grep-3.1
- ./configure --prefix=/tools
- make && make install
- cd .. && rm -rf grep-3.1
- # Gzip-1.9
- tar -xf gzip-1.9.tar.xz
- cd gzip-1.9
- sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
- echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h
- ./configure --prefix=/tools
- make && make install
- cd .. && rm -rf gzip-1.9
- # Make-4.2.1
- tar -xf make-4.2.1.tar.bz2
- cd make-4.2.1
- sed -i '211,217 d; 219,229 d; 232 d' glob/glob.c
- ./configure --prefix=/tools --without-guile
- make && make install
- cd .. && rm -rf make-4.2.1
- # Patch-2.7.6
- tar -xf patch-2.7.6.tar.xz
- cd patch-2.7.6
- ./configure --prefix=/tools
- make && make install
- cd .. && rm -rf patch-2.7.6
- # Perl-5.28.0
- tar -xf perl-5.28.0.tar.xz
- cd perl-5.28.0
- sh Configure -des -Dprefix=/tools -Dlibs=-lm -Uloclibpth -Ulocincpth
- make
- cp -v perl cpan/podlators/scripts/pod2man /tools/bin
- mkdir -pv /tools/lib/perl5/5.28.0
- cp -Rv lib/* /tools/lib/perl5/5.28.0
- cd .. && rm -rf perl-5.28.0
- # Sed-4.5
- tar -xf sed-4.5.tar.xz
- cd sed-4.5
- ./configure --prefix=/tools
- make && make install
- cd .. && rm -rf sed-4.5
- # Tar-1.30
- tar -xf tar-1.30.tar.xz
- cd tar-1.30
- ./configure --prefix=/tools
- make && make install
- cd .. && rm -rf tar-1.30
- # Texinfo-6.5
- tar -xf texinfo-6.5.tar.xz
- cd texinfo-6.5
- ./configure --prefix=/tools
- make && make install
- cd .. && rm -rf texinfo-6.5
- # Util-linux-2.32.1
- tar -xf util-linux-2.32.1.tar.xz
- cd util-linux-2.32.1
- ./configure --prefix=/tools \
- --without-python \
- --disable-makeinstall-chown \
- --without-systemdsystemunitdir \
- --without-ncurses \
- PKG_CONFIG=""
- make && make install
- cd .. && rm -rf util-linux-2.32.1
- # Xz-5.2.4
- tar -xf xz-5.2.4.tar.xz
- cd xz-5.2.4
- ./configure --prefix=/tools
- make && make install
- cd .. && rm -rf xz-5.2.4
- # Now stripping debug symbol & remove documentation.
- strip --strip-debug /tools/lib/*
- /usr/bin/strip --strip-unneeded /tools/{,s}bin/*
- rm -rf /tools/{,share}/{info,man,doc}
- find /tools/{lib,libexec} -name \*.la -delete
- # Now exit from LFS, and own tools directory by root
- exit
- chown -R root:root $LFS/tools
- #####################################################################
- # PREPARATION FOR BUILDING REAL SYSTEM ##############################
- #####################################################################
- # Create basic chroot structure
- mkdir -pv $LFS/{dev,proc,sys,run}
- mknod -m 600 $LFS/dev/console c 5 1
- mknod -m 666 $LFS/dev/null c 1 3
- # Mount some essentials
- mount -v --bind /dev $LFS/dev
- mount -vt devpts devpts $LFS/dev/pts -o gid=5,mode=620
- mount -vt proc proc $LFS/proc
- mount -vt sysfs sysfs $LFS/sys
- mount -vt tmpfs tmpfs $LFS/run
- # Workaround for SHM directory
- if [ -h $LFS/dev/shm ]; then
- mkdir -pv $LFS/$(readlink $LFS/dev/shm)
- fi
- # Chroot into LFS
- chroot "$LFS" /tools/bin/env -i \
- HOME=/root \
- TERM="$TERM" \
- PS1='(lfs chroot) \u:\w\$ ' \
- PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
- /tools/bin/bash --login +h
- # Create Filesystem Hierarchy Standard (FHS)
- mkdir -pv /{bin,boot,etc/{opt,sysconfig},home,lib/firmware,mnt,opt}
- mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}
- install -dv -m 0750 /root
- install -dv -m 1777 /tmp /var/tmp
- mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}
- mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
- mkdir -v /usr/{,local/}share/{misc,terminfo,zoneinfo}
- mkdir -v /usr/libexec
- mkdir -pv /usr/{,local/}share/man/man{1..8}
- case $(uname -m) in
- x86_64) mkdir -v /lib64 ;;
- esac
- mkdir -v /var/{log,mail,spool}
- ln -sv /run /var/run
- ln -sv /run/lock /var/lock
- mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}
- # Create some symlink for base utilities
- ln -sv /tools/bin/{bash,cat,dd,echo,ln,pwd,rm,stty} /bin
- ln -sv /tools/bin/{env,install,perl} /usr/bin
- ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib
- ln -sv /tools/lib/libstdc++.{a,so{,.6}} /usr/lib
- for lib in blkid lzma mount uuid
- do
- ln -sv /tools/lib/lib$lib.so* /usr/lib
- done
- ln -svf /tools/include/blkid /usr/include
- ln -svf /tools/include/libmount /usr/include
- ln -svf /tools/include/uuid /usr/include
- install -vdm755 /usr/lib/pkgconfig
- for pc in blkid mount uuid
- do
- sed 's@tools@usr@g' /tools/lib/pkgconfig/${pc}.pc \
- > /usr/lib/pkgconfig/${pc}.pc
- done
- ln -sv bash /bin/sh
- ln -sv /proc/self/mounts /etc/mtab
- # Create user and groups
- cat > /etc/passwd << "EOF"
- root:x:0:0:root:/root:/bin/bash
- bin:x:1:1:bin:/dev/null:/bin/false
- daemon:x:6:6:Daemon User:/dev/null:/bin/false
- messagebus:x:18:18:D-Bus Message Daemon User:/var/run/dbus:/bin/false
- nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
- EOF
- cat > /etc/group << "EOF"
- root:x:0:
- bin:x:1:daemon
- sys:x:2:
- kmem:x:3:
- tape:x:4:
- tty:x:5:
- daemon:x:6:
- floppy:x:7:
- disk:x:8:
- lp:x:9:
- dialout:x:10:
- audio:x:11:
- video:x:12:
- utmp:x:13:
- usb:x:14:
- cdrom:x:15:
- adm:x:16:
- messagebus:x:18:
- systemd-journal:x:23:
- input:x:24:
- mail:x:34:
- nogroup:x:99:
- users:x:999:
- EOF
- # Re-exec bash, force load of new ursers/groups
- exec /tools/bin/bash --login +h
- # Init log files
- touch /var/log/{btmp,lastlog,faillog,wtmp}
- chgrp -v utmp /var/log/lastlog
- chmod -v 664 /var/log/lastlog
- chmod -v 600 /var/log/btmp
- #####################################################################
- # START TO BUILDING REAL SYSTEM #####################################
- #####################################################################
- cd /sources/
- # Linux-4.18.5 API Headers
- tar -xf linux-4.18.5.tar.xz
- cd linux-4.18.5
- make mrproper
- make INSTALL_HDR_PATH=dest headers_install
- find dest/include \( -name .install -o -name ..install.cmd \) -delete
- cp -rv dest/include/* /usr/include
- cd .. && rm -rf linux-4.18.5
- # Man-pages-4.16
- tar -xf man-pages-4.16.tar.xz
- cd man-pages-4.16
- make install
- cd .. && rm -rf man-pages-4.16
- # Glibc-2.28
- tar -xf glibc-2.28.tar.xz
- cd glibc-2.28
- patch -Np1 -i ../glibc-2.28-fhs-1.patch
- ln -sfv /tools/lib/gcc /usr/lib
- case $(uname -m) in
- i?86) GCC_INCDIR=/usr/lib/gcc/$(uname -m)-pc-linux-gnu/8.2.0/include
- ln -sfv ld-linux.so.2 /lib/ld-lsb.so.3
- ;;
- x86_64) GCC_INCDIR=/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include
- ln -sfv ../lib/ld-linux-x86-64.so.2 /lib64
- ln -sfv ../lib/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
- ;;
- esac
- rm -f /usr/include/limits.h
- mkdir -v build && cd build
- CC="gcc -isystem $GCC_INCDIR -isystem /usr/include" \
- ../configure --prefix=/usr \
- --disable-werror \
- --enable-kernel=3.2 \
- --enable-stack-protector=strong \
- libc_cv_slibdir=/lib
- unset GCC_INCDIR
- make
- make check
- touch /etc/ld.so.conf
- sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile
- make install
- cp -v ../nscd/nscd.conf /etc/nscd.conf
- mkdir -pv /var/cache/nscd
- mkdir -pv /usr/lib/locale
- 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 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_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 it_IT -f ISO-8859-1 it_IT
- localedef -i it_IT -f UTF-8 it_IT.UTF-8
- localedef -i ja_JP -f EUC-JP ja_JP
- localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R
- localedef -i ru_RU -f UTF-8 ru_RU.UTF-8
- localedef -i tr_TR -f UTF-8 tr_TR.UTF-8
- localedef -i zh_CN -f GB18030 zh_CN.GB18030
- make localedata/install-locales
- cat > /etc/nsswitch.conf << "EOF"
- # Begin /etc/nsswitch.conf
- passwd: files
- group: files
- shadow: files
- hosts: files dns
- networks: files
- protocols: files
- services: files
- ethers: files
- rpc: files
- # End /etc/nsswitch.conf
- EOF
- tar -xf ../../tzdata2018e.tar.gz
- ZONEINFO=/usr/share/zoneinfo
- mkdir -pv $ZONEINFO/{posix,right}
- for tz in etcetera southamerica northamerica europe africa antarctica \
- asia australasia backward pacificnew systemv; do
- zic -L /dev/null -d $ZONEINFO -y "sh yearistype.sh" ${tz}
- zic -L /dev/null -d $ZONEINFO/posix -y "sh yearistype.sh" ${tz}
- zic -L leapseconds -d $ZONEINFO/right -y "sh yearistype.sh" ${tz}
- done
- cp -v zone.tab zone1970.tab iso3166.tab $ZONEINFO
- zic -d $ZONEINFO -p America/New_York
- unset ZONEINFO
- tzselect
- cp -v /usr/share/zoneinfo/Europe/Rome /etc/localtime
- cat > /etc/ld.so.conf << "EOF"
- # Begin /etc/ld.so.conf
- /usr/local/lib
- /opt/lib
- EOF
- 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
- mv -v /tools/bin/{ld,ld-old}
- mv -v /tools/$(uname -m)-pc-linux-gnu/bin/{ld,ld-old}
- mv -v /tools/bin/{ld-new,ld}
- ln -sv /tools/bin/ld /tools/$(uname -m)-pc-linux-gnu/bin/ld
- gcc -dumpspecs | sed -e 's@/tools@@g' \
- -e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \
- -e '/\*cpp:/{n;s@$@ -isystem /usr/include@}' > \
- `dirname $(gcc --print-libgcc-file-name)`/specs
- echo 'int main(){}' > dummy.c
- cc dummy.c -v -Wl,--verbose &> dummy.log
- readelf -l a.out | grep ': /lib'
- echo; echo "Expected --> [Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]"; echo;
- grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
- echo; echo "Expected --> /usr/lib/../lib/crt1.o succeeded"; echo;
- echo; echo "Expected --> /usr/lib/../lib/crti.o succeeded"; echo;
- echo; echo "Expected --> /usr/lib/../lib/crtn.o succeeded"; echo;
- grep -B1 '^ /usr/include' dummy.log
- echo; echo "Expected --> #include <...> search starts here:"; echo;
- echo; echo "Expected --> /usr/include"; echo;
- grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
- echo; echo "Expected --> SEARCH_DIR("/usr/lib")"; echo;
- echo; echo "Expected --> SEARCH_DIR("/lib")"; echo;
- grep "/lib.*/libc.so.6 " dummy.log
- echo; echo "Expected --> attempt to open /lib/libc.so.6 succeeded"; echo;
- grep found dummy.log
- echo; echo "Expected --> found ld-linux-x86-64.so.2 at /lib/ld-linux-x86-64.so.2"; echo;
- cd ../.. && rm -rf glibc-2.28
- # Zlib-1.2.11
- tar -xf zlib-1.2.11.tar.xz
- cd zlib-1.2.11
- ./configure --prefix=/usr
- make && make check
- make install
- mv -v /usr/lib/libz.so.* /lib
- ln -sfv ../../lib/$(readlink /usr/lib/libz.so) /usr/lib/libz.so
- cd .. && rm -rf zlib-1.2.11
- # File-5.34
- tar -xf file-5.34.tar.gz
- cd file-5.34
- ./configure --prefix=/usr
- make && make check
- make install
- cd .. && rm -rf file-5.34
- # Readline-7.0
- tar -xf readline-7.0.tar.gz
- cd readline-7.0
- sed -i '/MV.*old/d' Makefile.in
- sed -i '/{OLDSUFF}/c:' support/shlib-install
- ./configure --prefix=/usr \
- --disable-static \
- --docdir=/usr/share/doc/readline-7.0
- make SHLIB_LIBS="-L/tools/lib -lncursesw"
- make SHLIB_LIBS="-L/tools/lib -lncurses" install
- mv -v /usr/lib/lib{readline,history}.so.* /lib
- chmod -v u+w /lib/lib{readline,history}.so.*
- ln -sfv ../../lib/$(readlink /usr/lib/libreadline.so) /usr/lib/libreadline.so
- ln -sfv ../../lib/$(readlink /usr/lib/libhistory.so ) /usr/lib/libhistory.so
- install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-7.0
- cd .. && rm -rf readline-7.0
- # M4-1.4.18
- tar -xf m4-1.4.18.tar.xz
- cd m4-1.4.18
- sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
- echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h
- ./configure --prefix=/usr
- make && make check
- make install
- cd .. && rm -rf m4-1.4.18
- # Bc-1.07.1
- tar -xf bc-1.07.1.tar.gz
- cd bc-1.07.1
- cat > bc/fix-libmath_h << "EOF"
- #! /bin/bash
- sed -e '1 s/^/{"/' \
- -e 's/$/",/' \
- -e '2,$ s/^/"/' \
- -e '$ d' \
- -i libmath.h
- sed -e '$ s/$/0}/' \
- -i libmath.h
- EOF
- ln -sv /tools/lib/libncursesw.so.6 /usr/lib/libncursesw.so.6
- ln -sfv libncurses.so.6 /usr/lib/libncurses.so
- sed -i -e '/flex/s/as_fn_error/: ;; # &/' configure
- ./configure --prefix=/usr \
- --with-readline \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info
- make
- echo "quit" | ./bc/bc -l Test/checklib.b
- make install
- cd .. && rm -rf bc-1.07.1
- # Binutils-2.31.1
- expect -c "spawn ls"
- echo; echo "Expected --> spawn ls"; echo;
- tar -xf binutils-2.31.1.tar.xz
- cd binutils-2.31.1
- mkdir -v build && cd build
- ../configure --prefix=/usr \
- --enable-gold \
- --enable-ld=default \
- --enable-plugins \
- --enable-shared \
- --disable-werror \
- --enable-64-bit-bfd \
- --with-system-zlib
- make tooldir=/usr
- make -k check
- make tooldir=/usr install
- cd ../.. && rm -rf binutils-2.31.1
- # GMP-6.1.2
- tar -xf gmp-6.1.2.tar.xz
- cd gmp-6.1.2
- ./configure --prefix=/usr \
- --enable-cxx \
- --disable-static \
- --docdir=/usr/share/doc/gmp-6.1.2
- 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
- cd .. && rm -rf gmp-6.1.2
- # MPFR-4.0.1
- tar -xf mpfr-4.0.1.tar.xz
- cd mpfr-4.0.1
- ./configure --prefix=/usr \
- --disable-static \
- --enable-thread-safe \
- --docdir=/usr/share/doc/mpfr-4.0.1
- make && make html
- make check
- make install
- make install-html
- cd .. && rm -rf mpfr-4.0.1
- # MPC-1.1.0
- tar -xf mpc-1.1.0.tar.gz
- cd mpc-1.1.0
- ./configure --prefix=/usr \
- --disable-static \
- --docdir=/usr/share/doc/mpc-1.1.0
- make && make html
- make check
- make install
- make install-html
- cd .. && rm -rf mpc-1.1.0
- # Shadow-4.6
- tar -xf shadow-4.6.tar.xz
- cd shadow-4.6
- 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 -i -e 's@#ENCRYPT_METHOD DES@ENCRYPT_METHOD SHA512@' \
- -e 's@/var/spool/mail@/var/mail@' etc/login.defs
- sed -i 's/1000/999/' etc/useradd
- ./configure --sysconfdir=/etc --with-group-name-max-length=32
- make && make install
- mv -v /usr/bin/passwd /bin
- pwconv && grpconv
- sed -i 's/yes/no/' /etc/default/useradd
- passwd root
- cd .. && rm -rf shadow-4.6
- # GCC-8.2.0
- tar -xf gcc-8.2.0.tar.xz
- cd gcc-8.2.0
- case $(uname -m) in
- x86_64)
- sed -e '/m64=/s/lib64/lib/' \
- -i.orig gcc/config/i386/t-linux64
- ;;
- esac
- rm -f /usr/lib/gcc
- mkdir -v build && cd build
- SED=sed \
- ../configure --prefix=/usr \
- --enable-languages=c,c++ \
- --disable-multilib \
- --disable-bootstrap \
- --disable-libmpx \
- --with-system-zlib
- make
- ulimit -s 32768
- rm ../gcc/testsuite/g++.dg/pr83239.C
- chown -Rv nobody .
- su nobody -s /bin/bash -c "PATH=$PATH make -k check"
- ../contrib/test_summary | grep -A7 Summ
- make install
- ln -sv ../usr/bin/cpp /lib
- ln -sv gcc /usr/bin/cc
- install -v -dm755 /usr/lib/bfd-plugins
- ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/8.2.0/liblto_plugin.so \
- /usr/lib/bfd-plugins/
- echo 'int main(){}' > dummy.c
- cc dummy.c -v -Wl,--verbose &> dummy.log
- readelf -l a.out | grep ': /lib'
- echo; echo "Expected -->[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]"; echo;
- grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log
- echo; echo "Expected --> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../lib/crt1.o succeeded"; echo;
- echo; echo "Expected --> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../lib/crti.o succeeded"; echo;
- echo; echo "Expected --> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/../../../../lib/crtn.o succeeded"; echo;
- grep -B4 '^ /usr/include' dummy.log
- echo; echo "Expected --> #include <...> search starts here:"; echo;
- echo; echo "Expected --> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include"; echo;
- echo; echo "Expected --> /usr/local/include"; echo;
- echo; echo "Expected --> /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include-fixed"; echo;
- echo; echo "Expected --> /usr/include"; echo;
- grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g'
- echo; echo "Expected --> SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib64")"; echo;
- echo; echo "Expected --> SEARCH_DIR("/usr/local/lib64")"; echo;
- echo; echo "Expected --> SEARCH_DIR("/lib64")"; echo;
- echo; echo "Expected --> SEARCH_DIR("/usr/lib64")"; echo;
- echo; echo "Expected --> SEARCH_DIR("/usr/x86_64-pc-linux-gnu/lib")"; echo;
- echo; echo "Expected --> SEARCH_DIR("/usr/local/lib")"; echo;
- echo; echo "Expected --> SEARCH_DIR("/lib")"; echo;
- echo; echo "Expected --> SEARCH_DIR("/usr/lib");"; echo;
- grep "/lib.*/libc.so.6 " dummy.log
- echo; echo "Expected --> attempt to open /lib/libc.so.6 succeeded"; echo;
- grep found dummy.log
- echo; echo "Expected --> found ld-linux-x86-64.so.2 at /lib/ld-linux-x86-64.so.2"; echo;
- mkdir -pv /usr/share/gdb/auto-load/usr/lib
- mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib
- cd ../.. && rm -rf gcc-8.2.0
- # Bzip2-1.0.6
- tar -xf bzip2-1.0.6.tar.gz
- cd bzip2-1.0.6
- patch -Np1 -i ../bzip2-1.0.6-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 -v bzip2-shared /bin/bzip2
- cp -av libbz2.so* /lib
- ln -sv ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so
- rm -v /usr/bin/{bunzip2,bzcat,bzip2}
- ln -sv bzip2 /bin/bunzip2
- ln -sv bzip2 /bin/bzcat
- cd .. && rm -rf bzip2-1.0.6
- # Pkg-config-0.29.2
- tar -xf pkg-config-0.29.2.tar.gz
- cd pkg-config-0.29.2
- ./configure --prefix=/usr \
- --with-internal-glib \
- --disable-host-tool \
- --docdir=/usr/share/doc/pkg-config-0.29.2
- make
- make check
- make install
- cd .. && rm -rf pkg-config-0.29.2
- # Ncurses-6.1
- tar -xf ncurses-6.1.tar.gz
- cd ncurses-6.1
- sed -i '/LIBTOOL_INSTALL/d' c++/Makefile.in
- ./configure --prefix=/usr \
- --mandir=/usr/share/man \
- --with-shared \
- --without-debug \
- --without-normal \
- --enable-pc-files \
- --enable-widec
- make
- make install
- mv -v /usr/lib/libncursesw.so.6* /lib
- ln -sfv ../../lib/$(readlink /usr/lib/libncursesw.so) /usr/lib/libncursesw.so
- for lib in ncurses form panel menu ; do
- rm -vf /usr/lib/lib${lib}.so
- echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so
- ln -sfv ${lib}w.pc /usr/lib/pkgconfig/${lib}.pc
- done
- rm -vf /usr/lib/libcursesw.so
- echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so
- ln -sfv libncurses.so /usr/lib/libcurses.so
- mkdir -v /usr/share/doc/ncurses-6.1
- cp -v -R doc/* /usr/share/doc/ncurses-6.1
- cd .. && rm -rf ncurses-6.1
- # Attr-2.4.48
- tar -xf attr-2.4.48.tar.gz
- cd attr-2.4.48
- ./configure --prefix=/usr \
- --bindir=/bin \
- --disable-static \
- --sysconfdir=/etc \
- --docdir=/usr/share/doc/attr-2.4.48
- make
- make check
- make install
- mv -v /usr/lib/libattr.so.* /lib
- ln -sfv ../../lib/$(readlink /usr/lib/libattr.so) /usr/lib/libattr.so
- cd .. && rm -rf attr-2.4.48
- # Acl-2.2.53
- tar -xf acl-2.2.53.tar.gz
- cd acl-2.2.53
- ./configure --prefix=/usr \
- --bindir=/bin \
- --disable-static \
- --libexecdir=/usr/lib \
- --docdir=/usr/share/doc/acl-2.2.53
- make
- make install
- mv -v /usr/lib/libacl.so.* /lib
- ln -sfv ../../lib/$(readlink /usr/lib/libacl.so) /usr/lib/libacl.so
- cd .. && rm -rf acl-2.2.53
- # Acl-2.2.53
- tar -xf acl-2.2.53.tar.gz
- cd acl-2.2.53
- ./configure --prefix=/usr \
- --bindir=/bin \
- --disable-static \
- --libexecdir=/usr/lib \
- --docdir=/usr/share/doc/acl-2.2.53
- make
- make install
- mv -v /usr/lib/libacl.so.* /lib
- ln -sfv ../../lib/$(readlink /usr/lib/libacl.so) /usr/lib/libacl.so
- cd .. && rm -rf acl-2.2.53
- # Libcap-2.25
- tar -xf libcap-2.25.tar.xz
- cd libcap-2.25
- sed -i '/install.*STALIBNAME/d' libcap/Makefile
- make
- make RAISE_SETFCAP=no lib=lib prefix=/usr install
- chmod -v 755 /usr/lib/libcap.so
- mv -v /usr/lib/libcap.so.* /lib
- ln -sfv ../../lib/$(readlink /usr/lib/libcap.so) /usr/lib/libcap.so
- cd .. && rm -rf libcap-2.25
- # Sed-4.5
- tar -xf sed-4.5.tar.xz
- cd sed-4.5
- sed -i 's/usr/tools/' build-aux/help2man
- sed -i 's/testsuite.panic-tests.sh//' Makefile.in
- ./configure --prefix=/usr --bindir=/bin
- make && make html
- make check
- make install
- install -d -m755 /usr/share/doc/sed-4.5
- install -m644 doc/sed.html /usr/share/doc/sed-4.5
- cd .. && rm -rf sed-4.5
- # Psmisc-23.1
- tar -xf psmisc-23.1.tar.xz
- cd psmisc-23.1
- ./configure --prefix=/usr
- make && make install
- mv -v /usr/bin/fuser /bin
- mv -v /usr/bin/killall /bin
- cd .. && rm -rf psmisc-23.1
- # Iana-Etc-2.30
- tar -xf iana-etc-2.30.tar.bz2
- cd iana-etc-2.30
- make && make install
- cd .. && rm -rf iana-etc-2.30
- # Bison-3.0.5
- tar -xf bison-3.0.5.tar.xz
- cd bison-3.0.5
- ./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.0.5
- make && make install
- cd .. && rm -rf bison-3.0.5
- # Flex-2.6.4
- tar -xf flex-2.6.4.tar.gz
- cd flex-2.6.4
- sed -i "/math.h/a #include <malloc.h>" src/flexdef.h
- HELP2MAN=/tools/bin/true \
- ./configure --prefix=/usr --docdir=/usr/share/doc/flex-2.6.4
- make
- make check
- make install
- ln -sv flex /usr/bin/lex
- cd .. && rm -rf flex-2.6.4
- # Grep-3.1
- tar -xf grep-3.1.tar.xz
- cd grep-3.1
- ./configure --prefix=/usr --bindir=/bin
- make
- make -k check
- make install
- cd .. && rm -rf grep-3.1
- # Bash-4.4.18
- tar -xf bash-4.4.18.tar.gz
- cd bash-4.4.18
- ./configure --prefix=/usr \
- --docdir=/usr/share/doc/bash-4.4.18 \
- --without-bash-malloc \
- --with-installed-readline
- make
- chown -Rv nobody .
- su nobody -s /bin/bash -c "PATH=$PATH make tests"
- make install
- mv -vf /usr/bin/bash /bin
- exec /bin/bash --login +h
- cd .. && rm -rf bash-4.4.18
- # Libtool-2.4.6
- tar -xf libtool-2.4.6.tar.xz
- cd libtool-2.4.6
- ./configure --prefix=/usr
- make
- TESTSUITEFLAGS=-j4 make check
- make install
- cd .. && rm -rf libtool-2.4.6
- # GDBM-1.17
- tar -xf gdbm-1.17.tar.gz
- cd gdbm-1.17
- ./configure --prefix=/usr \
- --disable-static \
- --enable-libgdbm-compat
- make
- make check
- make install
- cd .. && rm -rf gdbm-1.17
- # Gperf-3.1
- tar -xf gperf-3.1.tar.gz
- cd gperf-3.1
- ./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.1
- make
- make -j1 check
- make install
- cd .. && rm -rf gperf-3.1
- # Expat-2.2.6
- tar -xf expat-2.2.6.tar.bz2
- cd expat-2.2.6
- sed -i 's|usr/bin/env |bin/|' run.sh.in
- ./configure --prefix=/usr \
- --disable-static \
- --docdir=/usr/share/doc/expat-2.2.6
- make
- make check
- make install
- install -v -m644 doc/*.{html,png,css} /usr/share/doc/expat-2.2.6
- cd .. && rm -rf expat-2.2.6
- # Inetutils-1.9.4
- tar -xf inetutils-1.9.4.tar.xz
- cd inetutils-1.9.4
- ./configure --prefix=/usr \
- --localstatedir=/var \
- --disable-logger \
- --disable-whois \
- --disable-rcp \
- --disable-rexec \
- --disable-rlogin \
- --disable-rsh \
- --disable-servers
- make
- make check
- make install
- mv -v /usr/bin/{hostname,ping,ping6,traceroute} /bin
- mv -v /usr/bin/ifconfig /sbin
- cd .. && rm -rf inetutils-1.9.4
- # Perl-5.28.0
- tar -xf perl-5.28.0.tar.xz
- cd perl-5.28.0
- echo "127.0.0.1 localhost $(hostname)" > /etc/hosts
- export BUILD_ZLIB=False
- export BUILD_BZIP2=0
- sh Configure -des -Dprefix=/usr \
- -Dvendorprefix=/usr \
- -Dman1dir=/usr/share/man/man1 \
- -Dman3dir=/usr/share/man/man3 \
- -Dpager="/usr/bin/less -isR" \
- -Duseshrplib \
- -Dusethreads
- make
- make -k test
- make install
- unset BUILD_ZLIB BUILD_BZIP2
- cd .. && rm -rf perl-5.28.0
- # XML::Parser-2.44
- tar -xf XML-Parser-2.44.tar.gz
- cd XML-Parser-2.44
- perl Makefile.PL
- make
- make test
- make install
- cd .. && rm -rf XML-Parser-2.44
- # Intltool-0.51.0
- tar -xf intltool-0.51.0.tar.gz
- cd intltool-0.51.0
- 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
- cd .. && rm -rf intltool-0.51.0
- # Autoconf-2.69
- tar -xf autoconf-2.69.tar.xz
- cd autoconf-2.69
- ./configure --prefix=/usr
- make
- TESTSUITEFLAGS=-j4 make check
- make install
- cd .. && rm -rf autoconf-2.69
- # Automake-1.16.1
- tar -xf automake-1.16.1.tar.xz
- cd automake-1.16.1
- ./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.16.1
- make
- make -j4 check
- make install
- cd .. && rm -rf automake-1.16.1
- # Xz-5.2.4
- tar -xf xz-5.2.4.tar.xz
- cd xz-5.2.4
- ./configure --prefix=/usr \
- --disable-static \
- --docdir=/usr/share/doc/xz-5.2.4
- make
- make check
- make install
- mv -v /usr/bin/{lzma,unlzma,lzcat,xz,unxz,xzcat} /bin
- mv -v /usr/lib/liblzma.so.* /lib
- ln -svf ../../lib/$(readlink /usr/lib/liblzma.so) /usr/lib/liblzma.so
- cd .. && rm -rf xz-5.2.4
- # Kmod-25
- tar -xf kmod-25.tar.xz
- cd kmod-25
- ./configure --prefix=/usr \
- --bindir=/bin \
- --sysconfdir=/etc \
- --with-rootlibdir=/lib \
- --with-xz \
- --with-zlib
- make
- make install
- for target in depmod insmod lsmod modinfo modprobe rmmod; do
- ln -sfv ../bin/kmod /sbin/$target
- done
- ln -sfv kmod /bin/lsmod
- cd .. && rm -rf kmod-25
- # Gettext-0.19.8.1
- tar -xf gettext-0.19.8.1.tar.xz
- cd gettext-0.19.8.1
- sed -i '/^TESTS =/d' gettext-runtime/tests/Makefile.in &&
- sed -i 's/test-lock..EXEEXT.//' gettext-tools/gnulib-tests/Makefile.in
- sed -e '/AppData/{N;N;p;s/\.appdata\./.metainfo./}' \
- -i gettext-tools/its/appdata.loc
- ./configure --prefix=/usr \
- --disable-static \
- --docdir=/usr/share/doc/gettext-0.19.8.1
- make
- make check
- make install
- chmod -v 0755 /usr/lib/preloadable_libintl.so
- cd .. && rm -rf gettext-0.19.8.1
- # Libelf 0.173
- tar -xf elfutils-0.173.tar.bz2
- cd elfutils-0.173
- ./configure --prefix=/usr
- make
- make check
- make -C libelf install
- install -vm644 config/libelf.pc /usr/lib/pkgconfig
- cd .. && rm -rf elfutils-0.173
- # Libffi-3.2.1
- tar -xf libffi-3.2.1.tar.gz
- cd libffi-3.2.1
- sed -e '/^includesdir/ s/$(libdir).*$/$(includedir)/' \
- -i include/Makefile.in
- sed -e '/^includedir/ s/=.*$/=@includedir@/' \
- -e 's/^Cflags: -I${includedir}/Cflags:/' \
- -i libffi.pc.in
- ./configure --prefix=/usr --disable-static --with-gcc-arch=native
- make
- make check
- make install
- cd .. && rm -rf libffi-3.2.1
- # Openssl-1.1.0i
- tar -xf openssl-1.1.0i.tar.gz
- cd openssl-1.1.0i
- ./config --prefix=/usr \
- --openssldir=/etc/ssl \
- --libdir=lib \
- shared \
- zlib-dynamic
- make
- make test
- sed -i '/INSTALL_LIBS/s/libcrypto.a libssl.a//' Makefile
- make MANSUFFIX=ssl install
- mv -v /usr/share/doc/openssl /usr/share/doc/openssl-1.1.0i
- cp -vfr doc/* /usr/share/doc/openssl-1.1.0i
- cd .. && rm -rf openssl-1.1.0i
- # Python-3.7.0
- tar -xf Python-3.7.0.tar.xz
- cd Python-3.7.0
- ./configure --prefix=/usr \
- --enable-shared \
- --with-system-expat \
- --with-system-ffi \
- --with-ensurepip=yes
- make
- make install
- chmod -v 755 /usr/lib/libpython3.7m.so
- chmod -v 755 /usr/lib/libpython3.so
- install -v -dm755 /usr/share/doc/python-3.7.0/html
- tar --strip-components=1 \
- --no-same-owner \
- --no-same-permissions \
- -C /usr/share/doc/python-3.7.0/html \
- -xvf ../python-3.7.0-docs-html.tar.bz2
- cd .. && rm -rf Python-3.7.0
- # Ninja-1.8.2
- tar -xf ninja-1.8.2.tar.gz
- cd ninja-1.8.2
- export NINJAJOBS=4
- patch -Np1 -i ../ninja-1.8.2-add_NINJAJOBS_var-1.patch
- python3 configure.py --bootstrap
- python3 configure.py
- ./ninja ninja_test
- ./ninja_test --gtest_filter=-SubprocessTest.SetWithLots
- install -vm755 ninja /usr/bin/
- install -vDm644 misc/bash-completion /usr/share/bash-completion/completions/ninja
- install -vDm644 misc/zsh-completion /usr/share/zsh/site-functions/_ninja
- cd .. && rm -rf ninja-1.8.2
- # Meson-0.47.1
- tar -xf meson-0.47.1.tar.gz
- cd meson-0.47.1
- python3 setup.py build
- python3 setup.py install --root=dest
- cp -rv dest/* /
- cd .. && rm -rf meson-0.47.1
- # Procps-ng-3.3.15
- tar -xf procps-ng-3.3.15.tar.xz
- cd procps-ng-3.3.15
- ./configure --prefix=/usr \
- --exec-prefix= \
- --libdir=/usr/lib \
- --docdir=/usr/share/doc/procps-ng-3.3.15 \
- --disable-static \
- --disable-kill
- make
- sed -i -r 's|(pmap_initname)\\\$|\1|' testsuite/pmap.test/pmap.exp
- sed -i '/set tty/d' testsuite/pkill.test/pkill.exp
- rm testsuite/pgrep.test/pgrep.exp
- make check
- make install
- mv -v /usr/lib/libprocps.so.* /lib
- ln -sfv ../../lib/$(readlink /usr/lib/libprocps.so) /usr/lib/libprocps.so
- cd .. && rm -rf procps-ng-3.3.15
- # E2fsprogs-1.44.3
- tar -xf e2fsprogs-1.44.3.tar.gz
- mkdir -v e2fsprogs-1.44.3/build
- cd e2fsprogs-1.44.3/build
- ../configure --prefix=/usr \
- --bindir=/bin \
- --with-root-prefix="" \
- --enable-elf-shlibs \
- --disable-libblkid \
- --disable-libuuid \
- --disable-uuidd \
- --disable-fsck
- make
- ln -sfv /tools/lib/lib{blk,uu}id.so.1 lib
- make LD_LIBRARY_PATH=/tools/lib check
- make install
- make install-libs
- chmod -v u+w /usr/lib/{libcom_err,libe2p,libext2fs,libss}.a
- gunzip -v /usr/share/info/libext2fs.info.gz
- install-info --dir-file=/usr/share/info/dir /usr/share/info/libext2fs.info
- makeinfo -o doc/com_err.info ../lib/et/com_err.texinfo
- install -v -m644 doc/com_err.info /usr/share/info
- install-info --dir-file=/usr/share/info/dir /usr/share/info/com_err.info
- cd ../.. && rm -rf e2fsprogs-1.44.3
- # Coreutils-8.30
- tar -xf coreutils-8.30.tar.xz
- cd coreutils-8.30
- patch -Np1 -i ../coreutils-8.30-i18n-1.patch
- sed -i '/test.lock/s/^/#/' gnulib-tests/gnulib.mk
- autoreconf -fiv
- FORCE_UNSAFE_CONFIGURE=1 ./configure \
- --prefix=/usr \
- --enable-no-install-program=kill,uptime
- FORCE_UNSAFE_CONFIGURE=1 make
- make NON_ROOT_USERNAME=nobody check-root
- echo "dummy:x:1000:nobody" >> /etc/group
- chown -Rv nobody .
- su nobody -s /bin/bash \
- -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check"
- sed -i '/dummy/d' /etc/group
- make install
- mv -v /usr/bin/{cat,chgrp,chmod,chown,cp,date,dd,df,echo} /bin
- mv -v /usr/bin/{false,ln,ls,mkdir,mknod,mv,pwd,rm} /bin
- mv -v /usr/bin/{rmdir,stty,sync,true,uname} /bin
- mv -v /usr/bin/chroot /usr/sbin
- mv -v /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8
- sed -i s/\"1\"/\"8\"/1 /usr/share/man/man8/chroot.8
- mv -v /usr/bin/{head,sleep,nice} /bin
- cd .. && rm -rf coreutils-8.30
- # Check-0.12.0
- tar -xf check-0.12.0.tar.gz
- cd check-0.12.0
- ./configure --prefix=/usr
- make
- make check
- make install
- sed -i '1 s/tools/usr/' /usr/bin/checkmk
- cd .. && rm -rf check-0.12.0
- # Diffutils-3.6
- tar -xf diffutils-3.6.tar.xz
- cd diffutils-3.6
- ./configure --prefix=/usr
- make
- make check
- make install
- cd .. && rm -rf diffutils-3.6
- # Gawk-4.2.1
- tar -xf gawk-4.2.1.tar.xz
- cd gawk-4.2.1
- sed -i 's/extras//' Makefile.in
- ./configure --prefix=/usr
- make
- make check
- make install
- mkdir -v /usr/share/doc/gawk-4.2.1
- cp -v doc/{awkforai.txt,*.{eps,pdf,jpg}} /usr/share/doc/gawk-4.2.1
- cd .. && rm -rf gawk-4.2.1
- # Findutils-4.6.0
- tar -xf findutils-4.6.0.tar.gz
- cd findutils-4.6.0
- sed -i 's/test-lock..EXEEXT.//' tests/Makefile.in
- sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' gl/lib/*.c
- sed -i '/unistd/a #include <sys/sysmacros.h>' gl/lib/mountlist.c
- echo "#define _IO_IN_BACKUP 0x100" >> gl/lib/stdio-impl.h
- ./configure --prefix=/usr --localstatedir=/var/lib/locate
- make
- make check
- make install
- mv -v /usr/bin/find /bin
- sed -i 's|find:=${BINDIR}|find:=/bin|' /usr/bin/updatedb
- cd .. && rm -rf findutils-4.6.0
- # Groff-1.22.3
- tar -xf groff-1.22.3.tar.gz
- cd groff-1.22.3
- PAGE=A4 ./configure --prefix=/usr
- make -j1
- make install
- cd .. && rm -rf groff-1.22.3
- # GRUB-2.02
- tar -xf grub-2.02.tar.xz
- cd grub-2.02
- ./configure --prefix=/usr \
- --sbindir=/sbin \
- --sysconfdir=/etc \
- --disable-efiemu \
- --disable-werror
- make && make install
- cd .. && rm -rf grub-2.02
- # Less-530
- tar -xf less-530.tar.gz
- cd less-530
- ./configure --prefix=/usr --sysconfdir=/etc
- make && make install
- cd .. && rm -rf less-530
- # Gzip-1.9
- tar -xf gzip-1.9.tar.xz
- cd gzip-1.9
- sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
- echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h
- ./configure --prefix=/usr
- make
- make check
- make install
- mv -v /usr/bin/gzip /bin
- cd .. && rm -rf gzip-1.9
- # IPRoute2-4.18.0
- tar -xf iproute2-4.18.0.tar.xz
- cd iproute2-4.18.0
- sed -i /ARPD/d Makefile
- rm -fv man/man8/arpd.8
- sed -i 's/.m_ipt.o//' tc/Makefile
- make
- make DOCDIR=/usr/share/doc/iproute2-4.18.0 install
- cd .. && rm -rf iproute2-4.18.0
- # Kbd-2.0.4
- tar -xf kbd-2.0.4.tar.xz
- cd kbd-2.0.4
- patch -Np1 -i ../kbd-2.0.4-backspace-1.patch
- sed -i 's/\(RESIZECONS_PROGS=\)yes/\1no/g' configure
- sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in
- PKG_CONFIG_PATH=/tools/lib/pkgconfig ./configure --prefix=/usr --disable-vlock
- make
- make check
- make install
- mkdir -v /usr/share/doc/kbd-2.0.4
- cp -R -v docs/doc/* /usr/share/doc/kbd-2.0.4
- cd .. && rm -rf kbd-2.0.4
- # Libpipeline-1.5.0
- tar -xf libpipeline-1.5.0.tar.gz
- cd libpipeline-1.5.0
- ./configure --prefix=/usr
- make
- make check
- make install
- cd .. && rm -rf libpipeline-1.5.0
- # Make-4.2.1
- tar -xf make-4.2.1.tar.bz2
- cd make-4.2.1
- sed -i '211,217 d; 219,229 d; 232 d' glob/glob.c
- ./configure --prefix=/usr
- make
- make PERL5LIB=$PWD/tests/ check
- make install
- cd .. && rm -rf make-4.2.1
- # Patch-2.7.6
- tar -xf patch-2.7.6.tar.xz
- cd patch-2.7.6
- ./configure --prefix=/usr
- make
- make check
- make install
- cd .. && rm -rf patch-2.7.6
- # Sysklogd-1.5.1
- tar -xf sysklogd-1.5.1.tar.gz
- cd sysklogd-1.5.1
- sed -i '/Error loading kernel symbols/{n;n;d}' ksym_mod.c
- sed -i 's/union wait/int/' syslogd.c
- make && make BINDIR=/sbin install
- cat > /etc/syslog.conf << "EOF"
- # Begin /etc/syslog.conf
- auth,authpriv.* -/var/log/auth.log
- *.*;auth,authpriv.none -/var/log/sys.log
- daemon.* -/var/log/daemon.log
- kern.* -/var/log/kern.log
- mail.* -/var/log/mail.log
- user.* -/var/log/user.log
- *.emerg *
- # End /etc/syslog.conf
- EOF
- cd .. && rm -rf sysklogd-1.5.1
- # Sysvinit-2.90
- tar -xf sysvinit-2.90.tar.xz
- cd sysvinit-2.90
- patch -Np1 -i ../sysvinit-2.90-consolidated-1.patch
- make -C src
- make -C src install
- cd .. && rm -rf sysvinit-2.90
- # Eudev-3.2.5
- tar -xf eudev-3.2.5.tar.gz
- cd eudev-3.2.5
- cat > config.cache << "EOF"
- HAVE_BLKID=1
- BLKID_LIBS="-lblkid"
- BLKID_CFLAGS="-I/tools/include"
- EOF
- ./configure --prefix=/usr \
- --bindir=/sbin \
- --sbindir=/sbin \
- --libdir=/usr/lib \
- --sysconfdir=/etc \
- --libexecdir=/lib \
- --with-rootprefix= \
- --with-rootlibdir=/lib \
- --enable-manpages \
- --disable-static \
- --config-cache
- LIBRARY_PATH=/tools/lib make
- mkdir -pv /lib/udev/rules.d
- mkdir -pv /etc/udev/rules.d
- make LD_LIBRARY_PATH=/tools/lib check
- make LD_LIBRARY_PATH=/tools/lib install
- tar -xvf ../udev-lfs-20171102.tar.bz2
- make -f udev-lfs-20171102/Makefile.lfs install
- LD_LIBRARY_PATH=/tools/lib udevadm hwdb --update
- cd .. && rm -rf eudev-3.2.5
- # Util-linux-2.32.1
- tar -xf util-linux-2.32.1.tar.xz
- cd util-linux-2.32.1
- mkdir -pv /var/lib/hwclock
- rm -vf /usr/include/{blkid,libmount,uuid}
- ./configure ADJTIME_PATH=/var/lib/hwclock/adjtime \
- --docdir=/usr/share/doc/util-linux-2.32.1 \
- --disable-chfn-chsh \
- --disable-login \
- --disable-nologin \
- --disable-su \
- --disable-setpriv \
- --disable-runuser \
- --disable-pylibmount \
- --disable-static \
- --without-python \
- --without-systemd \
- --without-systemdsystemunitdir
- make
- make install
- cd .. && rm -rf util-linux-2.32.1
- # Man-db-2.8.4
- tar -xf man-db-2.8.4.tar.xz
- cd man-db-2.8.4
- ./configure --prefix=/usr \
- --docdir=/usr/share/doc/man-db-2.8.4 \
- --sysconfdir=/etc \
- --disable-setuid \
- --enable-cache-owner=bin \
- --with-browser=/usr/bin/lynx \
- --with-vgrind=/usr/bin/vgrind \
- --with-grap=/usr/bin/grap \
- --with-systemdtmpfilesdir=
- make
- make check
- make install
- cd .. && rm -rf man-db-2.8.4
- # Tar-1.30
- tar -xf tar-1.30.tar.xz
- cd tar-1.30
- FORCE_UNSAFE_CONFIGURE=1 \
- ./configure --prefix=/usr \
- --bindir=/bin
- make
- make check
- make install
- make -C doc install-html docdir=/usr/share/doc/tar-1.30
- cd .. && rm -rf tar-1.30
- # texinfo-6.5.tar.xz
- tar -xf texinfo-6.5.tar.xz
- cd texinfo-6.5
- sed -i '5481,5485 s/({/(\\{/' tp/Texinfo/Parser.pm
- ./configure --prefix=/usr --disable-static
- make
- make check
- make install
- make TEXMF=/usr/share/texmf install-tex
- pushd /usr/share/info
- rm -v dir
- for f in *
- do install-info $f dir 2>/dev/null
- done
- popd
- cd .. && rm -rf texinfo-6.5
- # Vim-8.1
- tar -xf vim-8.1.tar.bz2
- cd vim81
- echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h
- ./configure --prefix=/usr
- make
- LANG=en_US.UTF-8 make -j1 test &> vim-test.log
- make install
- ln -sv vim /usr/bin/vi
- for L in /usr/share/man/{,*/}man1/vim.1; do
- ln -sv vim.1 $(dirname $L)/vi.1
- done
- ln -sv ../vim/vim81/doc /usr/share/doc/vim-8.1
- cat > /etc/vimrc << "EOF"
- " Begin /etc/vimrc
- " Ensure defaults are set before customizing settings, not after
- source $VIMRUNTIME/defaults.vim
- let skip_defaults_vim=1
- set nocompatible
- set backspace=2
- set mouse=
- syntax on
- if (&term == "xterm") || (&term == "putty")
- set background=dark
- endif
- " End /etc/vimrc
- EOF
- cd .. && rm -rf vim81
- #####################################################################
- # FINAL ADJUST ######################################################
- #####################################################################
- save_lib="ld-2.28.so libc-2.28.so libpthread-2.28.so libthread_db-1.0.so"
- cd /lib
- for LIB in $save_lib; do
- objcopy --only-keep-debug $LIB $LIB.dbg
- strip --strip-unneeded $LIB
- objcopy --add-gnu-debuglink=$LIB.dbg $LIB
- done
- save_usrlib="libquadmath.so.0.0.0 libstdc++.so.6.0.25
- libitm.so.1.0.0 libatomic.so.1.2.0"
- cd /usr/lib
- for LIB in $save_usrlib; do
- objcopy --only-keep-debug $LIB $LIB.dbg
- strip --strip-unneeded $LIB
- objcopy --add-gnu-debuglink=$LIB.dbg $LIB
- done
- unset LIB save_lib save_usrlib
- exec /tools/bin/bash
- /tools/bin/find /usr/lib -type f -name \*.a \
- -exec /tools/bin/strip --strip-debug {} ';'
- /tools/bin/find /lib /usr/lib -type f \( -name \*.so* -a ! -name \*dbg \) \
- -exec /tools/bin/strip --strip-unneeded {} ';'
- /tools/bin/find /{bin,sbin} /usr/{bin,sbin,libexec} -type f \
- -exec /tools/bin/strip --strip-all {} ';'
- rm -rf /tmp/*
- exit
- chroot "$LFS" /usr/bin/env -i \
- HOME=/root TERM="$TERM" \
- PS1='(lfs chroot) \u:\w\$ ' \
- PATH=/bin:/usr/bin:/sbin:/usr/sbin \
- /bin/bash --login
- rm -f /usr/lib/lib{bfd,opcodes}.a
- rm -f /usr/lib/libbz2.a
- rm -f /usr/lib/lib{com_err,e2p,ext2fs,ss}.a
- rm -f /usr/lib/libltdl.a
- rm -f /usr/lib/libfl.a
- rm -f /usr/lib/libz.a
- find /usr/lib /usr/libexec -name \*.la -delete
- tar -xf lfs-bootscripts-20180820.tar.bz2
- cd lfs-bootscripts-20180820
- make install
- cd .. && rm -rf lfs-bootscripts-20180820
- bash /lib/udev/init-net-rules.sh
- cat > /etc/udev/rules.d/83-duplicate_devs.rules << "EOF"
- # Persistent symlinks for webcam and tuner
- KERNEL=="video*", ATTRS{idProduct}=="1910", ATTRS{idVendor}=="0d81", \
- SYMLINK+="webcam"
- KERNEL=="video*", ATTRS{device}=="0x036f", ATTRS{vendor}=="0x109e", \
- SYMLINK+="tvtuner"
- EOF
- cat > ifconfig.eth0 << "EOF"
- ONBOOT=yes
- IFACE=eth0
- SERVICE=ipv4-static
- IP=192.168.1.2
- GATEWAY=192.168.1.1
- PREFIX=24
- BROADCAST=192.168.1.255
- EOF
- cat > /etc/resolv.conf << "EOF"
- # Begin /etc/resolv.conf
- nameserver 192.168.1.1
- nameserver 8.8.8.8
- # End /etc/resolv.conf
- EOF
- cat > /etc/inittab << "EOF"
- # Begin /etc/inittab
- id:3:initdefault:
- si::sysinit:/etc/rc.d/init.d/rc S
- l0:0:wait:/etc/rc.d/init.d/rc 0
- l1:S1:wait:/etc/rc.d/init.d/rc 1
- l2:2:wait:/etc/rc.d/init.d/rc 2
- l3:3:wait:/etc/rc.d/init.d/rc 3
- l4:4:wait:/etc/rc.d/init.d/rc 4
- l5:5:wait:/etc/rc.d/init.d/rc 5
- l6:6:wait:/etc/rc.d/init.d/rc 6
- ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
- su:S016:once:/sbin/sulogin
- 1:2345:respawn:/sbin/agetty --noclear tty1 9600
- 2:2345:respawn:/sbin/agetty tty2 9600
- 3:2345:respawn:/sbin/agetty tty3 9600
- 4:2345:respawn:/sbin/agetty tty4 9600
- 5:2345:respawn:/sbin/agetty tty5 9600
- 6:2345:respawn:/sbin/agetty tty6 9600
- # End /etc/inittab
- EOF
- cat > /etc/sysconfig/clock << "EOF"
- # Begin /etc/sysconfig/clock
- UTC=1
- # Set this to any options you might need to give to hwclock,
- # such as machine hardware clock type for Alphas.
- CLOCKPARAMS=
- # End /etc/sysconfig/clock
- EOF
- cat > /etc/sysconfig/console << "EOF"
- # Begin /etc/sysconfig/console
- KEYMAP="it"
- FONT="lat2a-16 -m 8859-2"
- # End /etc/sysconfig/console
- EOF
- cat > /etc/profile << "EOF"
- # Begin /etc/profile
- export LANG=it_IT.utf8
- # End /etc/profile
- EOF
- cat > /etc/inputrc << "EOF"
- # Begin /etc/inputrc
- # Modified by Chris Lynn <roryo@roryo.dynup.net>
- # Allow the command prompt to wrap to the next line
- set horizontal-scroll-mode Off
- # Enable 8bit input
- set meta-flag On
- set input-meta On
- # Turns off 8th bit stripping
- set convert-meta Off
- # Keep the 8th bit for display
- set output-meta On
- # none, visible or audible
- set bell-style none
- # All of the following map the escape sequence of the value
- # contained in the 1st argument to the readline specific functions
- "\eOd": backward-word
- "\eOc": forward-word
- # for linux console
- "\e[1~": beginning-of-line
- "\e[4~": end-of-line
- "\e[5~": beginning-of-history
- "\e[6~": end-of-history
- "\e[3~": delete-char
- "\e[2~": quoted-insert
- # for xterm
- "\eOH": beginning-of-line
- "\eOF": end-of-line
- # for Konsole
- "\e[H": beginning-of-line
- "\e[F": end-of-line
- # End /etc/inputrc
- EOF
- cat > /etc/shells << "EOF"
- # Begin /etc/shells
- /bin/sh
- /bin/bash
- # End /etc/shells
- EOF
- cat > /etc/fstab << "EOF"
- # Begin /etc/fstab
- # file system mount-point type options dump fsck
- # order
- /dev/sda1 /boot ext2 defaults 1 1
- /dev/sda2 / ext4 defaults 2 1
- /dev/sda3 swap swap pri=1 0 0
- proc /proc proc nosuid,noexec,nodev 0 0
- sysfs /sys sysfs nosuid,noexec,nodev 0 0
- devpts /dev/pts devpts gid=5,mode=620 0 0
- tmpfs /run tmpfs defaults 0 0
- devtmpfs /dev devtmpfs mode=0755,nosuid 0 0
- # End /etc/fstab
- EOF
- tar -xf linux-4.18.5.tar.xz
- cd linux-4.18.5
- make mrproper
- make defconfig
- make menuconfig
- make
- make modules_install
- cp -iv arch/x86/boot/bzImage /boot/vmlinuz-4.18.5-lfs-8.3
- cp -iv System.map /boot/System.map-4.18.5
- cp -iv .config /boot/config-4.18.5
- install -d /usr/share/doc/linux-4.18.5
- cp -r Documentation/* /usr/share/doc/linux-4.18.5
- install -v -m755 -d /etc/modprobe.d
- cat > /etc/modprobe.d/usb.conf << "EOF"
- # Begin /etc/modprobe.d/usb.conf
- install ohci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i ohci_hcd ; true
- install uhci_hcd /sbin/modprobe ehci_hcd ; /sbin/modprobe -i uhci_hcd ; true
- # End /etc/modprobe.d/usb.conf
- EOF
- cd .. && rm -rf linux-4.18.5
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement