diff --git a/README.md b/README.md index 4ee9fe8..e250217 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,6 @@ # MyLFS Giant bash script to build my own Linux distro based on LFS + BLFS + +## TODO +- make running tests optional +- output test logs to dedicated location diff --git a/config/global.sh b/config/global.sh index 6ec7b4f..a36c117 100644 --- a/config/global.sh +++ b/config/global.sh @@ -7,6 +7,7 @@ export CONF_DIR=$(cd $(dirname $BASH_SOURCE) && pwd) export MAIN_DIR=$(dirname $CONF_DIR) export GLOBAL_CONF=$CONF_DIR/global.sh export USER_CONF=$CONF_DIR/user.sh +export MAKEFLAGS=-j4 export PACKAGE_LIST=$CONF_DIR/pkgs.sh export LFS=/mnt/lfs export LFS_TGT=$(uname -m)-lfs-linux-gnu @@ -14,8 +15,9 @@ export LFS_FS=ext4 export LFS_IMG=$MAIN_DIR/lfs.img export LFS_IMG_SIZE=$((10*1024*1024*1024)) # 10 GiB export LFS_USER=lfs +export ROOT_PASSWD= -KEYS="CONF_DIR MAIN_DIR GLOBAL_CONF USER_CONF PACKAGE_LIST LFS LFS_TGT LFS_FS LFS_IMG LFS_IMG_SIZE LFS_USER" +KEYS="CONF_DIR MAIN_DIR GLOBAL_CONF USER_CONF MAKEFLAGS PACKAGE_LIST LFS LFS_TGT LFS_FS LFS_IMG LFS_IMG_SIZE LFS_USER ROOT_PASSWD" for KEY in $KEYS do diff --git a/stage6/autoconf.sh b/stage6/autoconf.sh new file mode 100644 index 0000000..0481a9d --- /dev/null +++ b/stage6/autoconf.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# Autoconf Stage 6 +# ~~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep AUTOCONF $PACKAGE_LIST)" +PKG_AUTOCONF=$(basename $PKG_AUTOCONF) + +tar -xf $PKG_AUTOCONF +cd ${PKG_AUTOCONF%.tar*} + +./configure --prefix=/usr + +make + +make check TESTSUITEFLAGS=-j4 + +make install + +cd /sources +rm -rf ${PKG_AUTOCONF%.tar*} + diff --git a/stage6/automake.sh b/stage6/automake.sh new file mode 100644 index 0000000..c8fc2f9 --- /dev/null +++ b/stage6/automake.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# Automake Stage 6 +# ~~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep AUTOMAKE $PACKAGE_LIST)" +PKG_AUTOMAKE=$(basename $PKG_AUTOMAKE) + +tar -xf $PKG_AUTOMAKE +cd ${PKG_AUTOMAKE%.tar*} + +./configure --prefix=/usr --docdir=/usr/share/doc/automake-1.16.5 + +make + +make -j4 check + +make install + +cd /sources +rm -rf ${PKG_AUTOMAKE%.tar*} + diff --git a/stage6/bash.sh b/stage6/bash.sh new file mode 100644 index 0000000..e1ddf45 --- /dev/null +++ b/stage6/bash.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# Bash Stage 6 +# ~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep BASH $PACKAGE_LIST)" +PKG_BASH=$(basename $PKG_BASH) + +tar -xf $PKG_BASH +cd ${PKG_BASH%.tar*} + +./configure --prefix=/usr \ + --docdir=/usr/share/doc/bash-5.1.16 \ + --without-bash-malloc \ + --with-installed-readline + +make + +chown -R tester . + +su -s /usr/bin/expect tester << EOF +set timeout -1 +spawn make tests +expect eof +lassign [wait] _ _ _ value +exit $value +EOF + +make install + +cd /sources +rm -rf ${PKG_BASH%.tar*} + diff --git a/stage6/bison.sh b/stage6/bison.sh new file mode 100644 index 0000000..b1ef136 --- /dev/null +++ b/stage6/bison.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# Bison Stage 6 +# ~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep BISON $PACKAGE_LIST)" +PKG_BISON=$(basename $PKG_BISON) + +tar -xf $PKG_BISON +cd ${PKG_BISON%.tar*} + +./configure --prefix=/usr --docdir=/usr/share/doc/bison-3.8.2 + +make + +make check + +make install + +cd /sources +rm -rf ${PKG_BISON%.tar*} + diff --git a/stage6/bzip2.sh b/stage6/bzip2.sh index 6435688..74c14fb 100644 --- a/stage6/bzip2.sh +++ b/stage6/bzip2.sh @@ -18,13 +18,13 @@ make -f Makefile-libbz2_so make clean make make PREFIX=/usr install -cp -av libbz2.so.* /usr/lib -ln -sv libbz2.so.1.0.8 /usr/lib/libbz2.so -cp -v bzip2-shared /usr/bin/bzip2 +cp -a libbz2.so.* /usr/lib +ln -s libbz2.so.1.0.8 /usr/lib/libbz2.so +cp bzip2-shared /usr/bin/bzip2 for i in /usr/bin/{bzcat,bunzip2}; do - ln -sfv bzip2 $i + ln -sf bzip2 $i done -rm -fv /usr/lib/libbz2.a +rm -f /usr/lib/libbz2.a cd /sources rm -rf ${PKG_BZIP2%.tar*} diff --git a/stage6/check.sh b/stage6/check.sh new file mode 100644 index 0000000..7bc5883 --- /dev/null +++ b/stage6/check.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# Check Stage 6 +# ~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep CHECK $PACKAGE_LIST)" +PKG_CHECK=$(basename $PKG_CHECK) + +tar -xf $PKG_CHECK +cd ${PKG_CHECK%.tar*} + +./configure --prefix=/usr --disable-static + +make + +make check + +make docdir=/usr/share/doc/check-0.15.2 install + +cd /sources +rm -rf ${PKG_CHECK%.tar*} + diff --git a/stage6/chroot_main.sh b/stage6/chroot_main.sh index ede1b31..76c93d0 100644 --- a/stage6/chroot_main.sh +++ b/stage6/chroot_main.sh @@ -22,4 +22,88 @@ function build_package { cd /sources/stage6 build_package "Man Pages" ./man.sh /sources/man_stage6.log +build_package "Iana-Etc" ./ianaetc.sh /sources/ianaetc_stage6.log +build_package "Glibc" ./glibc.sh /sources/glibc_stage6.log +build_package "Zlib" ./zlib.sh /sources/zlib_stage6.log +build_package "Bzip2" ./bzip2.sh /sources/bzip2_stage6.log +build_package "Xz" ./xz.sh /sources/xz_stage6.log +build_package "Zstd" ./zstd.sh /sources/zstd_stage6.log +build_package "File" ./file.sh /sources/file_stage6.log +build_package "Readline" ./readline.sh /sources/readline_stage6.log +build_package "M4" ./M4.sh /sources/m4_stage6.log +build_package "Bc" ./Bc.sh /sources/bc_stage6.log +build_package "Flex" ./flex.sh /sources/flex_stage6.log +build_package "Tcl" ./tcl.sh /sources/tcl_stage6.log +build_package "Expect" ./expect.sh /sources/expect_stage6.log +build_package "DejaGNU" ./dejagnu.sh /sources/dejagnu_stage6.log +build_package "Binutils" ./binutils.sh /sources/binutils_stage6.log +build_package "GMP" ./gmp.sh /sources/gmp_stage6.log +build_package "MPFR" ./mpfr.sh /sources/mpfr_stage6.log +build_package "MPC" ./mpc.sh /sources/mpc_stage6.log +build_package "Attr" ./attr.sh /sources/attr_stage6.log +build_package "Acl" ./acl.sh /sources/acl_stage6.log +build_package "Libcap" ./libcap.sh /sources/libcap_stage6.log +build_package "Shadow" ./shadow.sh /sources/shadow_stage6.log +build_package "GCC" ./gcc.sh /sources/gcc_stage6.log +build_package "Pkg-config" ./pkgconfig.sh /sources/pkgconfig_stage6.log +build_package "Ncurses" ./ncurses.sh /sources/ncurses_stage6.log +build_package "Sed" ./sed.sh /sources/sed_stage6.log +build_package "Psmisc" ./psmisc.sh /sources/psmisc_stage6.log +build_package "Gettext" ./gettext.sh /sources/gettext_stage6.log +build_package "Bison" ./bison.sh /sources/bison_stage6.log +build_package "Grep" ./grep.sh /sources/grep_stage6.log +build_package "Bash" ./bash.sh /sources/bash_stage6.log +build_package "Libtool" ./libtool.sh /sources/libtool_stage6.log +build_package "GDBM" ./gdbm.sh /sources/gdbm_stage6.log +build_package "Gperf" ./gperf.sh /sources/gperf_stage6.log +build_package "Expat" ./expat.sh /sources/expat_stage6.log +build_package "Inetutils" ./inetutils.sh /sources/inetutils_stage6.log +build_package "Less" ./less.sh /sources/less_stage6.log +build_package "Perl" ./perl.sh /sources/perl_stage6.log +build_package "XML::Parser" ./xmlparser.sh /sources/xmlparser_stage6.log +build_package "Intltool" ./intltool.sh /sources/intltool_stage6.log +build_package "Autoconf" ./autoconf.sh /sources/autoconf_stage6.log +build_package "Automake" ./automake.sh /sources/automake_stage6.log +build_package "OpenSSL" ./openssl.sh /sources/openssl_stage6.log +build_package "Kmod" ./kmod.sh /sources/kmod_stage6.log +build_package "Elfutils" ./elfutils.sh /sources/elfutils_stage6.log +build_package "Libffi" ./libffi.sh /sources/libffi_stage6.log +build_package "Python" ./python.sh /sources/python_stage6.log +build_package "Ninja" ./ninja.sh /sources/ninja_stage6.log +build_package "Meson" ./meson.sh /sources/meson_stage6.log +build_package "Coreutils" ./coreutils.sh /sources/coreutils_stage6.log +build_package "Check" ./check.sh /sources/check_stage6.log +build_package "Diffutils" ./diffutils.sh /sources/diffutils_stage6.log +build_package "Gawk" ./gawk.sh /sources/gawk_stage6.log +build_package "Findutils" ./findutils.sh /sources/findutils_stage6.log +build_package "Groff" ./groff.sh /sources/groff_stage6.log +# Skipping GRUB MBR build since we are using UEFI +build_package "Gzip" ./gzip.sh /sources/gzip_stage6.log +build_package "IPRoute2" ./iproute2.sh /sources/iproute2_stage6.log +build_package "Kbd" ./kbd.sh /sources/kbd_stage6.log +build_package "Libpipeline" ./libpipeline.sh /sources/libpipeline_stage6.log +build_package "Make" ./make.sh /sources/make_stage6.log +build_package "Patch" ./patch.sh /sources/patch_stage6.log +build_package "Tar" ./tar.sh /sources/tar_stage6.log +build_package "Texinfo" ./texinfo.sh /sources/texinfo_stage6.log +build_package "Vim" ./vim.sh /sources/vim_stage6.log +build_package "Eudev" ./eudev.sh /sources/eudev_stage6.log +build_package "Man-DB" ./mandb.sh /sources/mandb_stage6.log +build_package "Procps-ng" ./procpsng.sh /sources/procpsng_stage6.log +build_package "Util-linux" ./utillinux.sh /sources/utillinux_stage6.log +build_package "E2fsprogs" ./e2fsprogs.sh /sources/e2fsprogs_stage6.log +build_package "Sysklogd" ./sysklogd.sh /sources/sysklogd_stage6.log +build_package "Sysvinit" ./sysvinit.sh /sources/sysvinit_stage6.log + +# delete temp files leftover from tests +rm -rf /tmp/* + +# delete libtool archives (only useful when linking to static libs) +find /usr/lib /usr/libexec -name \*.la -delete + +# delete cross compiler tools from previous stages +find /usr -depth -name $LFS_TGT\* | xargs rm -rf + +# remove 'tester' user account +userdel -r tester diff --git a/stage6/coreutils.sh b/stage6/coreutils.sh new file mode 100644 index 0000000..b830e3f --- /dev/null +++ b/stage6/coreutils.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +# Coreutils Stage 6 +# ~~~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep COREUTILS $PACKAGE_LIST)" +PKG_COREUTILS=$(basename $PKG_COREUTILS) +PATCH_COREUTILS=$(basename $PATCH_COREUTILS) +PATCH_COREUTILS_CHMOD=$(basename $PATCH_COREUTILS_CHMOD) + +tar -xf $PKG_COREUTILS +cd ${PKG_COREUTILS%.tar*} + +patch -Np1 -i ../$PATCH_COREUTILS +patch -Np1 -i ../$PATCH_COREUTILS_CHMOD + +autoreconf -fi +FORCE_UNSAFE_CONFIGURE=1 ./configure \ + --prefix=/usr \ + --enable-no-install-program=kill,uptime + +make + +make NON_ROOT_USERNAME=tester check-root + +echo "dummy:x:102:tester" >> /etc/group + +chown -R tester . + +su tester -c "PATH=$PATH make RUN_EXPENSIVE_TESTS=yes check" + +sed -i '/dummy/d' /etc/group + +make install + +mv /usr/bin/chroot /usr/sbin +mv /usr/share/man/man1/chroot.1 /usr/share/man/man8/chroot.8 +sed -i 's/"1"/"8"/' /usr/share/man/man8/chroot.8 + +cd /sources +rm -rf ${PKG_COREUTILS%.tar*} + diff --git a/stage6/dejagnu.sh b/stage6/dejagnu.sh index b6e3754..695484f 100644 --- a/stage6/dejagnu.sh +++ b/stage6/dejagnu.sh @@ -19,8 +19,8 @@ makeinfo --html --no-split -o doc/dejagnu.html ../doc/dejagnu.texi makeinfo --plaintext -o doc/dejagnu.txt ../doc/dejagnu.texi 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 +install -dm755 /usr/share/doc/dejagnu-1.6.3 +install -m644 doc/dejagnu.{html,txt} /usr/share/doc/dejagnu-1.6.3 make check diff --git a/stage6/diffutils.sh b/stage6/diffutils.sh new file mode 100644 index 0000000..a39ae91 --- /dev/null +++ b/stage6/diffutils.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# Diffutils Stage 6 +# ~~~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep DIFFUTILS $PACKAGE_LIST)" +PKG_DIFFUTILS=$(basename $PKG_DIFFUTILS) + +tar -xf $PKG_DIFFUTILS +cd ${PKG_DIFFUTILS%.tar*} + +./configure --prefix=/usr + +make + +make check + +make install + +cd /sources +rm -rf ${PKG_DIFFUTILS%.tar*} + diff --git a/stage6/e2fsprogs.sh b/stage6/e2fsprogs.sh new file mode 100644 index 0000000..a1b9abb --- /dev/null +++ b/stage6/e2fsprogs.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +# E2fsprogs Stage 6 +# ~~~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep E2FSPROGS $PACKAGE_LIST)" +PKG_E2FSPROGS=$(basename $PKG_E2FSPROGS) + +tar -xf $PKG_E2FSPROGS +cd ${PKG_E2FSPROGS%.tar*} + +mkdir -v build +cd build + +../configure --prefix=/usr \ + --sysconfdir=/etc \ + --enable-elf-shlibs \ + --disable-libblkid \ + --disable-libuuid \ + --disable-uuidd \ + --disable-fsck + +make + +make check + +make install + +rm -fv /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 /sources +rm -rf ${PKG_E2FSPROGS%.tar*} + diff --git a/stage6/elfutils.sh b/stage6/elfutils.sh new file mode 100644 index 0000000..bb533d7 --- /dev/null +++ b/stage6/elfutils.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +# Elfutils Stage 6 +# ~~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep ELFUTILS $PACKAGE_LIST)" +PKG_ELFUTILS=$(basename $PKG_ELFUTILS) + +tar -xf $PKG_ELFUTILS +cd ${PKG_ELFUTILS%.tar*} + +./configure --prefix=/usr \ + --disable-debuginfod \ + --enable-libdebuginfod=dummy + +make + +make check + +make -C libelf install +install -m644 config/libelf.pc /usr/lib/pkgconfig +rm /usr/lib/libelf.a + +cd /sources +rm -rf ${PKG_ELFUTILS%.tar*} + diff --git a/stage6/eudev.sh b/stage6/eudev.sh new file mode 100644 index 0000000..48754a2 --- /dev/null +++ b/stage6/eudev.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +# Eudev Stage 6 +# ~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep EUDEV $PACKAGE_LIST)" +PKG_EUDEV=$(basename $PKG_EUDEV) + +tar -xf $PKG_EUDEV +cd ${PKG_EUDEV%.tar*} + +./configure --prefix=/usr \ + --bindir=/usr/sbin \ + --sysconfdir=/etc \ + --enable-manpages \ + --disable-static + +make + +mkdir -pv /usr/lib/udev/rules.d +mkdir -pv /etc/udev/rules.d + +make check + +make install + +tar -xf ../udev-lfs-20171102.tar.xz +make -f udev-lfs-20171102/Makefile.lfs install + +udevadm hwdb --update + +cd /sources +rm -rf ${PKG_EUDEV%.tar*} + diff --git a/stage6/expat.sh b/stage6/expat.sh new file mode 100644 index 0000000..9c0e125 --- /dev/null +++ b/stage6/expat.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +# Expat Stage 6 +# ~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep EXPAT $PACKAGE_LIST)" +PKG_EXPAT=$(basename $PKG_EXPAT) + +tar -xf $PKG_EXPAT +cd ${PKG_EXPAT%.tar*} + +./configure --prefix=/usr \ + --disable-static \ + --docdir=/usr/share/doc/expat-2.4.6 + +make + +make check + +make install + +install -m644 doc/*.{html,css} /usr/share/doc/expat-2.4.6 + +cd /sources +rm -rf ${PKG_EXPAT%.tar*} + diff --git a/stage6/expect.sh b/stage6/expect.sh index 5f3eac5..2f4b6e4 100644 --- a/stage6/expect.sh +++ b/stage6/expect.sh @@ -23,7 +23,7 @@ make test make install -ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib +ln -sf expect5.45.4/libexpect5.45.4.so /usr/lib cd /sources rm -rf ${PKG_EXPECT%.tar*} diff --git a/stage6/findutils.sh b/stage6/findutils.sh new file mode 100644 index 0000000..dc9afc1 --- /dev/null +++ b/stage6/findutils.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +# Findutils Stage 6 +# ~~~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep FINDUTILS $PACKAGE_LIST)" +PKG_FINDUTILS=$(basename $PKG_FINDUTILS) + +tar -xf $PKG_FINDUTILS +cd ${PKG_FINDUTILS%.tar*} + +case $(uname -m) in + i?86) TIME_T_32_BIT_OK=yes ./configure --prefix=/usr --localstatedir=/var/lib/locate ;; + x86_64) ./configure --prefix=/usr --localstatedir=/var/lib/locate ;; +esac + +make + +chown -Rv tester . +su tester -c "PATH=$PATH make check" + +make install + +cd /sources +rm -rf ${PKG_FINDUTILS%.tar*} + diff --git a/stage6/flex.sh b/stage6/flex.sh index b4f0f97..2660d42 100644 --- a/stage6/flex.sh +++ b/stage6/flex.sh @@ -21,7 +21,7 @@ make check make install -ln -sv flex /usr/bin/lex +ln -s flex /usr/bin/lex cd /sources rm -rf ${PKG_FLEX%.tar*} diff --git a/stage6/gawk.sh b/stage6/gawk.sh new file mode 100644 index 0000000..fc97c4d --- /dev/null +++ b/stage6/gawk.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +# Gawk Stage 6 +# ~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep GAWK $PACKAGE_LIST)" +PKG_GAWK=$(basename $PKG_GAWK) + +tar -xf $PKG_GAWK +cd ${PKG_GAWK%.tar*} + +sed -i 's/extras//' Makefile.in + +./configure --prefix=/usr + +make + +make check + +make install + +mkdir -pv /usr/share/doc/gawk-5.1.1 +cp -v doc/{awkforai.txt,*.{eps,pdf,jpg}} /usr/share/doc/gawk-5.1.1 + +cd /sources +rm -rf ${PKG_GAWK%.tar*} + diff --git a/stage6/gcc.sh b/stage6/gcc.sh new file mode 100644 index 0000000..04d3a79 --- /dev/null +++ b/stage6/gcc.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash +# GCC Stage 6 +# ~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep GCC $PACKAGE_LIST)" +PKG_GCC=$(basename $PKG_GCC) + +tar -xf $PKG_GCC +cd ${PKG_GCC%.tar*} + +sed -e '/static.*SIGSTKSZ/d' \ + -e 's/return kAltStackSize/return SIGSTKSZ * 4/' \ + -i libsanitizer/sanitizer_common/sanitizer_posix_libcdep.cpp + +case $(uname -m) in + x86_64) + sed -e '/m64=/s/lib64/lib/' \ + -i.orig gcc/config/i386/t-linux64 + ;; +esac + +mkdir build +cd build + +make + +ulimit -s 32768 + +chown -R tester . +su tester -c "PATH=$PATH make -k check" + +make install +rm -rf /usr/lib/gcc/$(gcc -dumpmachine)/11.2.0/include-fixed/bits/ + +chown -R root:root \ + /usr/lib/gcc/*linux-gnu/11.2.0/include{,-fixed} + +ln -sr /usr/bin/cpp /usr/lib + +ln -sf ../../libexec/gcc/$(gcc -dumpmachine)/11.2.0/liblto_plugin.so \ + /usr/lib/bfd-plugins/ + +echo 'int main(){}' > dummy.c +cc dummy.c -Wl,--verbose &> dummy.log + +rm dummy.c a.out dummy.log + +mkdir -p /usr/share/gdb/auto-load/usr/lib +mv /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib + +cd /sources +rm -rf ${PKG_GCC%.tar*} + diff --git a/stage6/gdbm.sh b/stage6/gdbm.sh new file mode 100644 index 0000000..eba7641 --- /dev/null +++ b/stage6/gdbm.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +# GDBM Stage 6 +# ~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep GDBM $PACKAGE_LIST)" +PKG_GDBM=$(basename $PKG_GDBM) + +tar -xf $PKG_GDBM +cd ${PKG_GDBM%.tar*} + +./configure --prefix=/usr \ + --disable-static \ + --enable-libgdbm-compat + +make + +make check + +make install + +cd /sources +rm -rf ${PKG_GDBM%.tar*} + diff --git a/stage6/gettext.sh b/stage6/gettext.sh new file mode 100644 index 0000000..7023775 --- /dev/null +++ b/stage6/gettext.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# Gettext Stage 6 +# ~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep GETTEXT $PACKAGE_LIST)" +PKG_GETTEXT=$(basename $PKG_GETTEXT) + +tar -xf $PKG_GETTEXT +cd ${PKG_GETTEXT%.tar*} + +./configure --prefix=/usr \ + --disable-static \ + --docdir=/usr/share/doc/gettext-0.21 + +make + +make check + +make install +chmod 0755 /usr/lib/preloadable_libint1.so + +cd /sources +rm -rf ${PKG_GETTEXT%.tar*} + diff --git a/stage6/gperf.sh b/stage6/gperf.sh new file mode 100644 index 0000000..6defca6 --- /dev/null +++ b/stage6/gperf.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# Gperf Stage 6 +# ~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep GPERF $PACKAGE_LIST)" +PKG_GPERF=$(basename $PKG_GPERF) + +tar -xf $PKG_GPERF +cd ${PKG_GPERF%.tar*} + +./configure --prefix=/usr --docdir=/usr/share/doc/gperf-3.1 + +make + +make -j1 check + +make install + +cd /sources +rm -rf ${PKG_GPERF%.tar*} + diff --git a/stage6/grep.sh b/stage6/grep.sh new file mode 100644 index 0000000..2f51ff9 --- /dev/null +++ b/stage6/grep.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# Grep Stage 6 +# ~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep GREP $PACKAGE_LIST)" +PKG_GREP=$(basename $PKG_GREP) + +tar -xf $PKG_GREP +cd ${PKG_GREP%.tar*} + +./configure --prefix=/usr + +make + +make check + +make install + +cd /sources +rm -rf ${PKG_GREP%.tar*} + diff --git a/stage6/groff.sh b/stage6/groff.sh new file mode 100644 index 0000000..4c651a9 --- /dev/null +++ b/stage6/groff.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +# Groff Stage 6 +# ~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep GROFF $PACKAGE_LIST)" +PKG_GROFF=$(basename $PKG_GROFF) + +tar -xf $PKG_GROFF +cd ${PKG_GROFF%.tar*} + +PAGE=letter ./configure --prefix=/usr + +make -j1 + +make install + +cd /sources +rm -rf ${PKG_GROFF%.tar*} + diff --git a/stage6/gzip.sh b/stage6/gzip.sh new file mode 100644 index 0000000..2173226 --- /dev/null +++ b/stage6/gzip.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# Gzip Stage 6 +# ~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep GZIP $PACKAGE_LIST)" +PKG_GZIP=$(basename $PKG_GZIP) + +tar -xf $PKG_GZIP +cd ${PKG_GZIP%.tar*} + +./configure --prefix=/usr + +make + +make check + +make install + +cd /sources +rm -rf ${PKG_GZIP%.tar*} + diff --git a/stage6/iana_etc.sh b/stage6/ianaetc.sh similarity index 100% rename from stage6/iana_etc.sh rename to stage6/ianaetc.sh diff --git a/stage6/inetutils.sh b/stage6/inetutils.sh new file mode 100644 index 0000000..06587d3 --- /dev/null +++ b/stage6/inetutils.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# Inetutils Stage 6 +# ~~~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep INETUTILS $PACKAGE_LIST)" +PKG_INETUTILS=$(basename $PKG_INETUTILS) + +tar -xf $PKG_INETUTILS +cd ${PKG_INETUTILS%.tar*} + +./configure --prefix=/usr \ + --bindir=/usr/bin \ + --localstatedir=/var \ + --disable-logger \ + --disable-whois \ + --disable-rcp \ + --disable-rexec \ + --disable-rlogin \ + --disable-rsh \ + --disable-servers + +make + +make check + +make install + +mv /usr/{,s}bin/ifconfig + +cd /sources +rm -rf ${PKG_BC%.tar*} + diff --git a/stage6/intltool.sh b/stage6/intltool.sh new file mode 100644 index 0000000..78c246e --- /dev/null +++ b/stage6/intltool.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# Intltool Stage 6 +# ~~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep INTLTOOL $PACKAGE_LIST)" +PKG_INTLTOOL=$(basename $PKG_INTLTOOL) + +tar -xf $PKG_INTLTOOL +cd ${PKG_INTLTOOL%.tar*} + +sed -i 's:\\\${:\\\$\\{:' intltool-update.in + +./configure --prefix=/usr + +make + +make check + +make install +install -Dm644 doc/I18N-HOWTO /usr/share/doc/intltool-0.51.0/I18N-HOWTO + +cd /sources +rm -rf ${PKG_INTLTOOL%.tar*} + diff --git a/stage6/iproute2.sh b/stage6/iproute2.sh new file mode 100644 index 0000000..902c3dc --- /dev/null +++ b/stage6/iproute2.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +# IPRoute2 Stage 6 +# ~~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep IPROUTE2 $PACKAGE_LIST)" +PKG_IPROUTE2=$(basename $PKG_IPROUTE2) + +tar -xf $PKG_IPROUTE2 +cd ${PKG_IPROUTE2%.tar*} + +sed -i /ARPD/d Makefile +rm -fv man/man8/arpd.8 + +make + +make SBINDIR=/usr/sbin install + +mkdir -pv /usr/share/doc/iproute2-5.16.0 +cp -v COPYING README* /usr/share/doc/iproute2-5.16.0 + +cd /sources +rm -rf ${PKG_IPROUTE2%.tar*} + diff --git a/stage6/kbd.sh b/stage6/kbd.sh new file mode 100644 index 0000000..a3105c9 --- /dev/null +++ b/stage6/kbd.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +# Kbd Stage 6 +# ~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep KBD $PACKAGE_LIST)" +PKG_KBD=$(basename $PKG_KBD) +PATCH_KBD=$(basename $PATCH_KBD) + +tar -xf $PKG_KBD +cd ${PKG_KBD%.tar*} + +patch -Np1 -i ../kbd-2.4.0-backspace-1.patch + +sed -i '/RESIZECONS_PROGS=/s/yes/no/' configure +sed -i 's/resizecons.8 //' docs/man/man8/Makefile.in + +./configure --prefix=/usr --disable-vlock + +make + +make check + +make install + +mkdir -pv /usr/share/doc/kbd-2.4.0 +cp -R -v docs/doc/* /usr/share/doc/kbd-2.4.0 + +cd /sources +rm -rf ${PKG_KBD%.tar*} + diff --git a/stage6/kmod.sh b/stage6/kmod.sh new file mode 100644 index 0000000..98bc150 --- /dev/null +++ b/stage6/kmod.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +# Kmod Stage 6 +# ~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep KMOD $PACKAGE_LIST)" +PKG_KMOD=$(basename $PKG_KMOD) + +tar -xf $PKG_KMOD +cd ${PKG_KMOD%.tar*} + +./configure --prefix=/usr \ + --sysconfdir=/etc \ + --with-openssl \ + --with-xz \ + --with-zstd \ + --with-zlib + +make + +make install + +for target in depmod insmod modinfo modprobe rmmod; do + ln -sf ../bin/kmod /usr/sbin/$target +done + +ln -sf kmod /usr/bin/lsmod + +cd /sources +rm -rf ${PKG_KMOD%.tar*} + diff --git a/stage6/less.sh b/stage6/less.sh new file mode 100644 index 0000000..c7a3df4 --- /dev/null +++ b/stage6/less.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +# Less Stage 6 +# ~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep LESS $PACKAGE_LIST)" +PKG_LESS=$(basename $PKG_LESS) + +tar -xf $PKG_LESS +cd ${PKG_LESS%.tar*} + +./configure --prefix=/usr --sysconfdir=/etc + +make + +make install + +cd /sources +rm -rf ${PKG_LESS%.tar*} + diff --git a/stage6/libcap.sh b/stage6/libcap.sh index 872ad12..c31cec2 100644 --- a/stage6/libcap.sh +++ b/stage6/libcap.sh @@ -11,7 +11,10 @@ PKG_LIBCAP=$(basename $PKG_LIBCAP) tar -xf $PKG_LIBCAP cd ${PKG_LIBCAP%.tar*} - +sed -i '/install -m.*STA/d' libcap/Makefile +make prefix=/usr lib=lib +make test +make prefix=/usr lib=lib install cd /sources rm -rf ${PKG_LIBCAP%.tar*} diff --git a/stage6/libffi.sh b/stage6/libffi.sh new file mode 100644 index 0000000..143f1ca --- /dev/null +++ b/stage6/libffi.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# Libffi Stage 6 +# ~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep LIBFFI $PACKAGE_LIST)" +PKG_LIBFFI=$(basename $PKG_LIBFFI) + +tar -xf $PKG_LIBFFI +cd ${PKG_LIBFFI%.tar*} + +./configure --prefix=/usr \ + --disable-static \ + --with-gcc-arch=native \ + --disable-exec-static-tramp + +make + +make check + +make install + +cd /sources +rm -rf ${PKG_LIBFFI%.tar*} + diff --git a/stage6/libpipline.sh b/stage6/libpipline.sh new file mode 100644 index 0000000..2d56a98 --- /dev/null +++ b/stage6/libpipline.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# Libpipeline Stage 6 +# ~~~~~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep LIBPIPELINE $PACKAGE_LIST)" +PKG_LIBPIPELINE=$(basename $PKG_LIBPIPELINE) + +tar -xf $PKG_LIBPIPELINE +cd ${PKG_LIBPIPELINE%.tar*} + +./configure --prefix=/usr + +make + +make check + +make install + +cd /sources +rm -rf ${PKG_LIBPIPELINE%.tar*} + diff --git a/stage6/libtool.sh b/stage6/libtool.sh new file mode 100644 index 0000000..61fd47b --- /dev/null +++ b/stage6/libtool.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +# Libtool Stage 6 +# ~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep LIBTOOL $PACKAGE_LIST)" +PKG_LIBTOOL=$(basename $PKG_LIBTOOL) + +tar -xf $PKG_LIBTOOL +cd ${PKG_LIBTOOL%.tar*} + +./configure --prefix=/usr + +make + +make check TESTSUITEFLAGS=-j4 + +make install + +rm -f /usr/lib/libltdl.a + +cd /sources +rm -rf ${PKG_LIBTOOL%.tar*} + diff --git a/stage6/make.sh b/stage6/make.sh new file mode 100644 index 0000000..09f1c4e --- /dev/null +++ b/stage6/make.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# Make Stage 6 +# ~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep MAKE $PACKAGE_LIST)" +PKG_MAKE=$(basename $PKG_MAKE) + +tar -xf $PKG_MAKE +cd ${PKG_MAKE%.tar*} + +./configure --prefix=/usr + +make + +make check + +make install + +cd /sources +rm -rf ${PKG_MAKE%.tar*} + diff --git a/stage6/mandb.sh b/stage6/mandb.sh new file mode 100644 index 0000000..8faed64 --- /dev/null +++ b/stage6/mandb.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +# Man-DB Stage 6 +# ~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep MANDB $PACKAGE_LIST)" +PKG_MANDB=$(basename $PKG_MANDB) + +tar -xf $PKG_MANDB +cd ${PKG_MANDB%.tar*} + +./configure --prefix=/usr \ + --docdir=/usr/share/doc/man-db-2.10.1 \ + --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= \ + --with-systemdsystemunitdir= + +make + +make check + +make install + +cd /sources +rm -rf ${PKG_MANDB%.tar*} + diff --git a/stage6/meson.sh b/stage6/meson.sh new file mode 100644 index 0000000..4edeccf --- /dev/null +++ b/stage6/meson.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +# Coreutils Stage 6 +# ~~~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep COREUTILS $PACKAGE_LIST)" +PKG_COREUTILS=$(basename $PKG_COREUTILS) + +tar -xf $PKG_COREUTILS +cd ${PKG_COREUTILS%.tar*} + +python3 setup.py build + +python3 setup.py install --root=dest +cp -r dest/* / +install -Dm644 data/shell-completions/bash/meson /usr/share/bash-completion/completions/meson +install -Dm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/_meson + +cd /sources +rm -rf ${PKG_COREUTILS%.tar*} + diff --git a/stage6/ncurses.sh b/stage6/ncurses.sh new file mode 100644 index 0000000..1a14522 --- /dev/null +++ b/stage6/ncurses.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +# Ncurses Stage 6 +# ~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep NCURSES $PACKAGE_LIST)" +PKG_NCURSES=$(basename $PKG_NCURSES) + +tar -xf $PKG_NCURSES +cd ${PKG_NCURSES%.tar*} + +./configure --prefix=/usr \ + --mandir=/usr/share/man \ + --with-shared \ + --without-debug \ + --without-normal \ + --enable-pc-files \ + --enable-widec \ + --with-pkg-config-libdir=/usr/lib/pkgconfig + +make + +make DESTDIR=$PWD/dest install +install -m755 dest/usr/lib/libncursesw.so.6.3 /usr/lib +rm dest/usr/lib/{libncursesw.so.6.3,libncurses++w.a} +cp -a dest/* / + +for lib in ncurses form panel menu ; do + rm -f /usr/lib/lib${lib}.so + echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so + ln -sf ${lib}w.pc /usr/lib/pkgconfig/${lib}.pc +done + +rm -f /usr/lib/libcursesw.so +echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so +ln -sf libncurses.so /usr/lib/libcurses.so + +mkdir -p /usr/share/doc/ncurses-6.3 +cp -R doc/* /usr/share/doc/ncurses-6.3i + +cd /sources +rm -rf ${PKG_NCURSES%.tar*} + diff --git a/stage6/ninja.sh b/stage6/ninja.sh new file mode 100644 index 0000000..0067096 --- /dev/null +++ b/stage6/ninja.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash +# Ninja Stage 6 +# ~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep NINJA $PACKAGE_LIST)" +PKG_NINJA=$(basename $PKG_NINJA) + +tar -xf $PKG_NINJA +cd ${PKG_NINJA%.tar*} + +sed -i '/int Guess/a \ + int j = 0;\ + char* jobs = getenv( "NINJAJOBS" );\ + if ( jobs != NULL ) j = atoi( jobs );\ + if ( j > 0 ) return j;\ +' src/ninja.cc + +python3 configure.py --bootstrap + +./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 /sources +rm -rf ${PKG_NINJA%.tar*} + diff --git a/stage6/openssl.sh b/stage6/openssl.sh new file mode 100644 index 0000000..66314da --- /dev/null +++ b/stage6/openssl.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +# OpenSSL Stage 6 +# ~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep OPENSSL $PACKAGE_LIST)" +PKG_OPENSSL=$(basename $PKG_OPENSSL) + +tar -xf $PKG_OPENSSL +cd ${PKG_OPENSSL%.tar*} + +./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 /usr/share/doc/openssl /usr/share/doc/openssl-3.0.1 + +cp -fr doc/* /usr/share/doc/openssl-3.0.1 + +cd /sources +rm -rf ${PKG_OPENSSL%.tar*} + diff --git a/stage6/patch.sh b/stage6/patch.sh new file mode 100644 index 0000000..0f54895 --- /dev/null +++ b/stage6/patch.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# Patch Stage 6 +# ~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep PATCH $PACKAGE_LIST)" +PKG_PATCH=$(basename $PKG_PATCH) + +tar -xf $PKG_PATCH +cd ${PKG_PATCH%.tar*} + +./configure --prefix=/usr + +make + +make check + +make install + +cd /sources +rm -rf ${PKG_PATCH%.tar*} + diff --git a/stage6/perl.sh b/stage6/perl.sh new file mode 100644 index 0000000..62e3cf5 --- /dev/null +++ b/stage6/perl.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash +# Perl Stage 6 +# ~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep PERL $PACKAGE_LIST)" +PKG_PERL=$(basename $PKG_PERL) +PATCH_PERL=$(basename $PATCH_PERL) + +tar -xf $PKG_PERL +cd ${PKG_PERL%.tar*} + +patch -Np1 -i ../$PATCH_PERL + +export BUILD_ZLIB=False +export BUILD_BZIP2=0 + +sh Configure -des \ + -Dprefix=/usr \ + -Dvendorprefix=/usr \ + -Dprivlib=/usr/lib/perl5/5.34/core_perl \ + -Darchlib=/usr/lib/perl5/5.34/core_perl \ + -Dsitelib=/usr/lib/perl5/5.34/site_perl \ + -Dsitearch=/usr/lib/perl5/5.34/site_perl \ + -Dvendorlib=/usr/lib/perl5/5.34/vendor_perl \ + -Dvendorarch=/usr/lib/perl5/5.34/vendor_perl \ + -Dman1dir=/usr/share/man/man1 \ + -Dman3dir=/usr/share/man/man3 \ + -Dpager="/usr/bin/less -isR" \ + -Duseshrplib \ + -Dusethreads + +make + +make test + +make install + +cd /sources +rm -rf ${PKG_PERL%.tar*} + diff --git a/stage6/pkgconfig.sh b/stage6/pkgconfig.sh new file mode 100644 index 0000000..42d123b --- /dev/null +++ b/stage6/pkgconfig.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# Pkg-config Stage 6 +# ~~~~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep PKGCONFIG $PACKAGE_LIST)" +PKG_PKGCONFIG=$(basename $PKG_PKGCONFIG) + +tar -xf $PKG_PKGCONFIG +cd ${PKG_PKGCONFIG%.tar*} + +./configure --prefix=/usr \ + --with-internal-glib \ + --disable-host-tool \ + --docdir=/usr/share/doc/pkg-config-0.29.2 + +make + +make check + +make install + +cd /sources +rm -rf ${PKG_PKGCONFIG%.tar*} + diff --git a/stage6/procpsng.sh b/stage6/procpsng.sh new file mode 100644 index 0000000..9ed3260 --- /dev/null +++ b/stage6/procpsng.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# Procps-ng Stage 6 +# ~~~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep PROCPS $PACKAGE_LIST)" +PKG_PROCPS=$(basename $PKG_PROCPS) + +tar -xf $PKG_PROCPS +cd ${PKG_PROCPS%.tar*} + +./configure --prefix=/usr \ + --docdir=/usr/share/doc/procps-ng-3.3.17 \ + --disable-static \ + --disable-kill + +make + +make check + +make install + +cd /sources +rm -rf ${PKG_PROCPS%.tar*} + diff --git a/stage6/psmisc.sh b/stage6/psmisc.sh new file mode 100644 index 0000000..3adaf0e --- /dev/null +++ b/stage6/psmisc.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +# Psmisc Stage 6 +# ~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep PSMISC $PACKAGE_LIST)" +PKG_PSMISC=$(basename $PKG_PSMISC) + +tar -xf $PKG_PSMISC +cd ${PKG_PSMISC%.tar*} + +./configure --prefix=/usr + +make + +make install + +cd /sources +rm -rf ${PKG_PSMISC%.tar*} + diff --git a/stage6/python.sh b/stage6/python.sh new file mode 100644 index 0000000..3f9b544 --- /dev/null +++ b/stage6/python.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# Python Stage 6 +# ~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep PYTHON $PACKAGE_LIST)" +PKG_PYTHON=$(basename $PKG_PYTHON) + +tar -xf $PKG_PYTHON +cd ${PKG_PYTHON%.tar*} + +./configure --prefix=/usr \ + --enable-shared \ + --with-system-expat \ + --with-system-ffi \ + --with-ensurepip=yes \ + --enable-optimizations + +make + +make install + +install -dm755 /usr/share/doc/python-3.10.2/html + +tar --strip-components=1 \ + --no-same-owner \ + --no-same-permissions \ + -C /usr/share/doc/python-3.10.2/html \ + -xvf ../python-3.10.2-docs-html.tar.bz2 + +cd /sources +rm -rf ${PKG_PYTHON%.tar*} + diff --git a/stage6/readline.sh b/stage6/readline.sh index 712aae0..5acdd06 100644 --- a/stage6/readline.sh +++ b/stage6/readline.sh @@ -22,7 +22,7 @@ sed -i '/{OLDSUFF}/c:' support/shlib-install make SHLIB_LIBS="-lncursesw" make SHLIB_LIBS="-lncursesw" install -install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.1.2 +install -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-8.1.2 cd /sources rm -rf ${PKG_READLINE%.tar*} diff --git a/stage6/sed.sh b/stage6/sed.sh new file mode 100644 index 0000000..be6aa30 --- /dev/null +++ b/stage6/sed.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +# Sed Stage 6 +# ~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep SED $PACKAGE_LIST)" +PKG_SED=$(basename $PKG_SED) + +tar -xf $PKG_SED +cd ${PKG_SED%.tar*} + +./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.8 +install -m644 doc/sed.html /usr/share/doc/sed-4.8 + +cd /sources +rm -rf ${PKG_SED%.tar*} + diff --git a/stage6/shadow.sh b/stage6/shadow.sh new file mode 100644 index 0000000..f5becb8 --- /dev/null +++ b/stage6/shadow.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash +# Shadow Stage 6 +# ~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep SHADOW $PACKAGE_LIST)" +PKG_SHADOW=$(basename $PKG_SHADOW) + +tar -xf $PKG_SHADOW +cd ${PKG_SHADOW%.tar*} + +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-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 + +passwd root <> src/feature.h + +./configure --prefix=/usr + +make + +chown -Rv tester . + +su tester -c "LANG=en_US.UTF-8 make -j1 test" &> vim-test.log + +make install + +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 /sources +rm -rf ${PKG_VIM%.tar*} + diff --git a/stage6/xmlparser.sh b/stage6/xmlparser.sh new file mode 100644 index 0000000..b4deb3d --- /dev/null +++ b/stage6/xmlparser.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# XML::Parser Stage 6 +# ~~~~~~~~~~~~~~~~~~~ +set -e + +cd /sources + +eval "$(grep XMLPARSER $PACKAGE_LIST)" +PKG_XMLPARSER=$(basename $PKG_XMLPARSER) + +tar -xf $PKG_XMLPARSER +cd ${PKG_XMLPARSER%.tar*} + +perl Makefile.PL + +make + +make test + +make install + +cd /sources +rm -rf ${PKG_XMLPARSER%.tar*} +