#!/bin/bash MAKEDEPS=(make) DEPS=(glibc) PKG_VER=2.34 SOURCE=https://ftp.gnu.org/gnu/glibc/glibc-$PKG_VER.tar.xz ADDITIONAL=( https://www.linuxfromscratch.org/patches/lfs/development/glibc-$PKG_VER-fhs-1.patch https://raw.githubusercontent.com/archlinux/svntogit-packages/packages/glibc/trunk/locale-gen ) DESC="The main gnu C library providing basic routines and procedures" prepare () { # patches as recommended by lfs sed -e '/NOTIFY_REMOVED)/s/)/ \&\& data.attr != NULL)/' -i sysdeps/unix/sysv/linux/mq_notify.c patch -Np1 -i glibc-$PKG_VER-fhs-1.patch || exit 1 } build () { mkdir -v build cd build # ensure that the ldconfig and sln utilities are installed into /usr/sbin echo "rootsbindir=/usr/sbin" > configparms ../configure --prefix=/usr \ --disable-werror \ --enable-kernel=3.2 \ --enable-stack-protector=strong \ --with-headers=/usr/include \ libc_cv_slibdir=/usr/lib make } check () { # some check failures are 'expected' make check || true } package () { mkdir -pv $PKG_DEST/etc touch $PKG_DEST/etc/ld.so.conf sed '/test-installation/s@$(PERL)@echo not running@' -i ../Makefile make DESTDIR=$PKG_DEST install # fix hardcoded path to the excutable in ldd script sed '/RTLDLIST=/s@/usr@@g' -i $PKG_DEST/usr/bin/ldd cp -v ../nscd/nscd.conf $PKG_DEST/etc/nscd.conf mkdir -pv $PKG_DEST/var/cache/nscd # create locales for the system # note, this should be moved to a better place make DESTDIR=$PKG_DEST localedata/install-locales cat > $PKG_DEST/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 #install -m755 locale-gen "$PKG_DEST/usr/bin" #curl https://data.iana.org/time-zones/releases/tzdata2021e.tar.gz > tzdata2021e.tar.gz #tar -xf tzdata2021e.tar.gz # #ZONEINFO=$PKG_DEST/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 # configure dynamic loader cat > $PKG_DEST/etc/ld.so.conf << "EOF" # Begin /etc/ld.so.conf /usr/local/lib /opt/lib include /etc/ld.so.conf.d/*.conf EOF mkdir -pv $PKG_DEST/etc/ld.so.conf.d }