File PKGBUILD of Package musl
# Maintainer: Yukari Chiba <[email protected]> # Contributor: Aleksana QwQ <[email protected]> pkgbase=musl pkgname=(musl musl-static) pkgver=1.2.6 pkgrel=1 pkgdesc='An implementation of the C/POSIX standard library.' arch=(x86_64 aarch64 riscv64 loongarch64) url='https://musl.libc.org' license=(MIT) makedepends=(lld) provides=(ld-musl-$(arch).so.1 libc.so) # disable lto: https://github.com/InBetweenNames/gentooLTO/issues/244 options=(!lto) # 0001: Backport 6f6bd4a1896b ("dns: fix nameserver OOB read in IPv6-disabled fallback") # 0002: Backport 0572555dab1d ("fix incorrect access to tzname[] by strptime %Z conversion specifier") # 0003: Backport 40acb04b2c12 ("regex: reject invalid \digit back reference in BRE") # 0004: Backport 67219f0130ec ("fix pathological slowness & incorrect mappings in iconv gb18030 decoder") # This is a security fix since the slow decoder might be exploited for DoS # attack. # TODO: get{conf,ent}.c and iconv.c should be split into another package source=( "http://www.etalabs.net/musl/releases/$pkgbase-$pkgver.tar.gz" "getconf.c" "getent.c" "iconv.c" "0001-dns-fix-nameserver-OOB-read-in-IPv6-disabled-fallbac.patch" "0002-fix-incorrect-access-to-tzname-by-strptime-Z-convers.patch" "0003-regex-reject-invalid-digit-back-reference-in-BRE.patch" "0004-fix-pathological-slowness-incorrect-mappings-in-icon.patch" ) sha256sums=('d585fd3b613c66151fc3249e8ed44f77020cb5e6c1e635a616d3f9f82460512a' 'd87d0cbb3690ae2c5d8cc218349fd8278b93855dd625deaf7ae50e320aad247c' '002c1a216f6bed0f816ab1cfebde94a0b127193ef410c36b2190599983e015b8' 'f79a2930a2e5bb0624321589edf8b889d1e9b603e01e6b7ae214616605b3fdd7' '07f609c0d70cde7b22a983f816185ee80c08015ec9e24c554b7960b9498638c7' 'e0aec6b990e67eccdad65d421b67ba9a7840d4f6c7b20a7c9e46735d2a94c1e8' '37f6426eab187748f397fcb52443dba209d9744d6f9161222ad2645d8637967f' '0ce3d109f3bb3f1bc1252717de126ee5f259a002c47fdccd42cb36c138e88e84') prepare() { _patch_ $pkgbase-$pkgver cd $pkgbase-$pkgver # utmp/wtmp path sed -i 's/\/dev\/null\/utmp/\/run\/utmps\/utmp/g' include/paths.h sed -i 's/\/dev\/null\/wtmp/\/var\/log\/wtmp/g' include/paths.h } build() { cd $pkgbase-$pkgver # Linking with mold would cause segfault with mimalloc CFLAGS="$CFLAGS -fuse-ld=lld" ./configure --prefix=/usr --syslibdir=/usr/lib make cd $srcdir local i for i in getconf getent iconv; do cc $CFLAGS $i.c -o $i done } package_musl() { cd $pkgbase-$pkgver make DESTDIR=${pkgdir} install install -d "${pkgdir}"/usr/bin ln -sf /usr/lib/libc.so "${pkgdir}"/usr/bin/ldd install -D \ $srcdir/getent \ $srcdir/getconf \ $srcdir/iconv \ $pkgdir/usr/bin # provide by utmps rm "${pkgdir}"/usr/include/utmp{,x}.h # provide by libxcrypt rm "${pkgdir}"/usr/include/crypt.h mkdir -p $srcdir/static # only libc.a is real musl-static mv $pkgdir/usr/lib/libc.a $srcdir/static } package_musl-static() { options=('staticlibs') mkdir -p $pkgdir/usr/lib mv $srcdir/static/libc.a $pkgdir/usr/lib }