#!/bin/env beesh # BEE_VERSION glibc-2.27-0 SRCURL[0]="https://ftp.gnu.org/gnu/glibc/glibc-${PKGVERSION}.tar.bz2" PATCHURL=( /src/mariux/patches/glibc-2.25-0001-ldconfig-don-t-generate-links-by-default-v2.patch /src/mariux/patches/glibc-2.25-0002-ldconfig-don-t-remove-stale-symlinks-by-default-v2.patch ) SYSCONFDIR=/etc SBINDIR=/usr/sbin LIBEXECDIR=/usr/lib/glibc ROOTSBINDIR=/sbin SLIBDIR=/lib mee_patch_post() { # set DL - cut /tools from dynloader in temporary system DL=$(readelf -l /bin/sh | sed -n 's@.*interpret.*/tools\(.*\)]$@\1@p') # if not temporary system just set DL to current dynloader : ${DL:=$(readelf -l /bin/sh | sed -n 's@.*interpret.*\(/lib.*\)]$@\1@p')} # replace dynloader in test-script.. echo "sed-ing scripts/test-installation.pl - dynloader => ${DL}" sed -i "s|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=$DL -o|" scripts/test-installation.pl unset DL # use /bin/bash instead of /bin/sh .. echo "sed-ing elf/ldd.bash.in" sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.in # fix some binary issues when gzipping manpages.. echo "sed-ing manual/Makefile" sed -i 's|gzip -9|gzip -n -9|' manual/Makefile # those seds prevent installing glibc in /lib64 instead of /lib.. # echo "sed-ing sysdeps/unix/sysv/linux/configure" # sed -i 's,x86_64 |,,' sysdeps/unix/sysv/linux/configure # echo "sed-ing sysdeps/unix/sysv/linux/configure.in" # sed -i 's,x86_64 |,,' sysdeps/unix/sysv/linux/configure.in } mee_configure() { bee_configure \ --disable-profile \ --enable-add-ons \ --enable-obsolete-rpc \ --enable-obsolete-nsl \ --enable-kernel=4.4.34 } mee_build_pre() { echo "CFLAGS += -march=x86-64 -mtune=generic" > configparms echo "slibdir=${SLIBDIR}" >> configparms echo "rootsbindir=${ROOTSBINDIR}" >> configparms } mee_build_post() { cp -v ${S}/iconvdata/gconv-modules iconvdata } mee_check() { make -k check 2>&1 | tee glibc-check-log grep Error glibc-check-log echo grep Error glibc-check-log bash } mee_install_pre() { # create temporary ld.co.conf to build glibc.. mkdir -p ${D}${SYSCONFDIR} touch ${D}${SYSCONFDIR}/ld.so.conf } mee_install() { # install.. DESTDIR is called install_root in glibc.. make install install_root=${D} } mee_install_post() { # remove temporary ld.so.* because this is not part of the package rm -v ${D}${SYSCONFDIR}/ld.so.{conf,cache} #mkdir -vp ${D}/usr/include/rpc{,svc} #cp -v ${S}/sunrpc/rpc/*.h ${D}/usr/include/rpc #cp -v ${S}/sunrpc/rpcsvc/*.h ${D}/usr/include/rpcsvc #cp -v ${S}/nis/rpcsvc/*.h ${D}/usr/include/rpcsvc # this has been moved to tzdata package since glibc dow not provide # timezones anymore with glibc >= 2.16 # install Europe/Berlin as default Timezone #rm -v ${D}${SYSCONFDIR}/localtime #ln -v ${D}/${PREFIX}/share/zoneinfo/Europe/Berlin ${D}${SYSCONFDIR}/localtime if [ "${SLIBDIR}" != "${LIBDIR}" ] ; then cd ${D}${SLIBDIR} for i in * ; do start_cmd ln -v $i ${D}${LIBDIR}/$i done cd - fi if [ "${ROOTSBINDIR}" != "${SBINDIR}" ] ; then cd ${D}${ROOTSBINDIR} for i in * ; do start_cmd mv -v $i ${D}${SBINDIR}/$i start_cmd ln -sv ${SBINDIR}/$i ${D}${ROOTSBINDIR}/$i done cd - fi # "make install" created (e.g.) /lib64/ld-linux-x86-64.so.2 -> ../lib/ld-2.26.so # we have /lib64 -> /lib , so remove the lib64 directory and create a new link # rm $D/lib64/ld-linux-x86-64.so.${PKGVERSION[1]} rmdir $D/lib64 ln -s ld-$PKGVERSION.so $D/lib/ld-linux-x86-64.so.${PKGVERSION[1]} }