Files
binary-repo/sys/base/glibc/ympbuild
T
2025-08-08 07:11:21 +00:00

131 lines
3.6 KiB
Bash

#!/bin/bash
name='glibc'
release='7'
version='2.42'
url='https://ftp.gnu.org/gnu/glibc'
description='GNU libc library'
email='parduscix@yandex.ru'
maintainer='sulincix'
license=('GPLv3')
arch=(x86_64)
dontstrip="31"
makedepends=(gawk)
source=("https://ftp.gnu.org/gnu/glibc/glibc-${version}.tar.xz"
'ld.conf/ld.so.conf'
'ld.conf/usr-support.conf'
'ld.conf/x86_64-linux-gnu.conf'
'data/glibc.sysconf'
'scripts/locale-gen'
'scripts/revdep-rebuild'
'data/disable-ld-preload.patch'
'data/tr_TR'
)
sha256sums=('d1775e32e4628e64ef930f435b67bb63af7599acb6be2b335b9f19f16509f17f'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
)
uses=(multilib)
group=(sys.base)
export CFLAGS="-O2 ${debug:+-g} -s -mtune=generic -DTURKMAN"
export CXXFLAGS="-O2 ${debug:+-g} -s -mtune=generic -DTURKMAN"
cd "$name-$version"
prepare(){
patch -Np1 -i ../disable-ld-preload.patch
}
setup(){
opts=(
--prefix=/usr
--mandir=/usr/share/man
--infodir=/usr/share/info
--enable-bind-now
--enable-kernel=6.1
--enable-multi-arch
--enable-stack-protector=strong
--enable-stackguard-randomization
--disable-crypt
--disable-profile
--disable-werror
--enable-static-pie
--enable-static-nss
--disable-nscd
)
if use multilib ; then
export CC="gcc -m32"
export CXX="g++ -m32"
mkdir glibc32-build
cd glibc32-build
echo "slibdir=/lib32" >> configparms
echo "rtlddir=/lib32" >> configparms
../configure ${opts[@]} \
--host=i686-pc-linux-gnu \
--libdir=/lib32 \
--libexecdir=/lib32/glibc
cd ..
fi
export CC="gcc"
export CXX="g++"
mkdir glibc-build
cd glibc-build
echo "slibdir=/lib64" >> configparms
echo "rtlddir=/lib64" >> configparms
../configure ${opts[@]} \
--host=x86_64-pc-linux-gnu \
--libdir=/lib64 \
--libexecdir=/lib64/glibc
cd ..
}
build(){
for bdir in glibc-build glibc32-build ; do
if [[ -d $bdir ]] ; then
make -C $bdir all
make -C $bdir info
fi
done
}
package(){
# create symlink lib64 (gentoo compability)
mkdir -p ${DESTDIR}/lib64
ln -s lib64 ${DESTDIR}/lib
if use multilib ; then
mkdir -p ${DESTDIR}/lib32
ln -s lib32 ${DESTDIR}/libx32
fi
for bdir in glibc32-build glibc-build ; do
if [[ -d $bdir ]] ; then
make -C $bdir install
fi
done
mkdir -p ${DESTDIR}/etc/ld.so.conf.d/ ${DESTDIR}/etc/sysconf.d/ ${DESTDIR}/bin
install ../ld.so.conf ${DESTDIR}/etc/ld.so.conf
install ../usr-support.conf ${DESTDIR}/etc/ld.so.conf.d/
install ../x86_64-linux-gnu.conf ${DESTDIR}/etc/ld.so.conf.d/
# remove ld.so.cache file (this file must generated by ldconfig command from ymp)
rm -f ${DESTDIR}/etc/ld.so.cache
# install sysconf trigger
install ../glibc.sysconf ${DESTDIR}/etc/sysconf.d/glibc
# install extra tools
install ../locale-gen ${DESTDIR}/bin/locale-gen
install ../revdep-rebuild ${DESTDIR}/bin/revdep-rebuild
# replace buggy turkish format with better one
install ../tr_TR ${DESTDIR}/usr/share/i18n/locales/tr_TR
# remove unused languages
for l in ku hy ; do
rm -rf ${DESTDIR}/usr/lib/locale/${i}_*
rm -rf ${DESTDIR}/usr/share/locale/${i}_*
rm -rf ${DESTDIR}/usr/share/i18n/locales/${i}_*
done
# fix ldd shebang
sed -i "s|#!/bin/bash|#!/bin/sh|g" ${DESTDIR}/usr/bin/ldd
}