mirror of
https://github.com/void-linux/void-packages.git
synced 2025-04-21 16:47:00 +02:00
if a partial upgrade occurs that includes glibc but not libxcrypt, libcrypt.so.1 will disappear and things like PAM will fail to work. This is only solvable by chrooting in and downgrading glibc or installing libxcrypt-compat.
199 lines
5.6 KiB
Bash
199 lines
5.6 KiB
Bash
# Template file for 'glibc'
|
|
pkgname=glibc
|
|
version=2.38
|
|
revision=3
|
|
bootstrap=yes
|
|
short_desc="GNU C library"
|
|
maintainer="Enno Boland <gottox@voidlinux.org>"
|
|
license="GPL-2.0-or-later, LGPL-2.1-or-later, BSD-3-Clause"
|
|
homepage="http://www.gnu.org/software/libc"
|
|
distfiles="${GNU_SITE}/libc/glibc-${version}.tar.xz"
|
|
checksum=fb82998998b2b29965467bc1b69d152e9c307d2cf301c9eafb4555b770ef3fd2
|
|
# Do not strip these files, objcopy errors out.
|
|
nostrip_files="
|
|
XBS5_ILP32_OFFBIG
|
|
XBS5_ILP32_OFF32
|
|
POSIX_V6_ILP32_OFF32
|
|
POSIX_V6_ILP32_OFFBIG
|
|
POSIX_V7_ILP32_OFF32
|
|
POSIX_V7_ILP32_OFFBIG
|
|
POSIX_V6_LP64_OFF64
|
|
POSIX_V7_LP64_OFF64
|
|
XBS5_LP64_OFF64
|
|
ld-linux-x86-64.so.2
|
|
ld-linux.so.2
|
|
ld-linux.so.3
|
|
ld-linux-aarch64.so.1
|
|
ld64.so.2
|
|
ld.so.1
|
|
ld-linux-armhf.so.3
|
|
libresolv.so.2
|
|
libm.so.6
|
|
libthread_db.so.1
|
|
libnsl.so.1
|
|
libc.so.6
|
|
libc_malloc_debug.so.0
|
|
libmemusage.so
|
|
libmvec.so.1
|
|
libBrokenLocale.so.1
|
|
libnss_compat.so.2
|
|
libnss_db.so.2
|
|
libnss_dns.so.2
|
|
libnss_files.so.2
|
|
libnss_hesiod.so.2"
|
|
|
|
conf_files="
|
|
/etc/rpc
|
|
/etc/gai.conf
|
|
/etc/ld.so.conf"
|
|
if [ "$CHROOT_READY" ]; then
|
|
hostmakedepends="bison gettext perl python3 texinfo"
|
|
# XXX: remove this on the next update
|
|
# ensures partial upgrades don't break things like PAM
|
|
depends="libxcrypt-compat"
|
|
fi
|
|
makedepends="kernel-libc-headers"
|
|
lib32files="/usr/lib/gconv/gconv-modules"
|
|
lib32symlinks="ld-linux.so.2"
|
|
archs="~*-musl"
|
|
if [ "$XBPS_TARGET_LIBC" = musl ]; then
|
|
broken="no point in building this for musl"
|
|
fi
|
|
|
|
do_configure() {
|
|
mkdir build
|
|
cd build
|
|
|
|
local _libdir=/usr/lib${XBPS_TARGET_WORDSIZE}
|
|
|
|
echo "slibdir=${_libdir}" > configparms
|
|
echo "bindir=/usr/bin" >> configparms
|
|
echo "sbindir=/usr/bin" >> configparms
|
|
echo "rootsbindir=/usr/sbin" >> configparms
|
|
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
# Build with -mno-tls-direct-seg-refs to avoid performance
|
|
# problems with Xen on x86 32bit.
|
|
i686) export CFLAGS+=" -mno-tls-direct-seg-refs";;
|
|
# Force hard float ABI.
|
|
# To build for soft float: --with-float=soft --without-fp.
|
|
armv5*) configure_args+=" --with-march=armv5te --without-fp --with-float=soft";;
|
|
armv6l*) configure_args+=" --with-march=armv6 --with-fpu=vfp --with-float=hard";;
|
|
armv7l*) configure_args+=" --with-march=armv7-a --with-fpu=vfpv3 --with-float=hard";;
|
|
arm64*) configure_args+=" --with-march=armv8-a";;
|
|
esac
|
|
|
|
if [ "$CROSS_BUILD" ]; then
|
|
configure_args+=" --host=${XBPS_CROSS_TRIPLET}"
|
|
configure_args+=" --with-sysroot=${XBPS_CROSS_BASE}"
|
|
configure_args+=" --with-headers=${XBPS_CROSS_BASE}/usr/include"
|
|
else
|
|
configure_args+=" --with-headers=${XBPS_MASTERDIR}/usr/include"
|
|
fi
|
|
|
|
# Disable SSP from CFLAGS (enabled below)
|
|
export CFLAGS="${CFLAGS/-fstack-protector-strong/}"
|
|
# Disable FORTIFY_SOURCE
|
|
export CFLAGS="${CFLAGS/-D_FORTIFY_SOURCE=?/}"
|
|
|
|
SHELL=/bin/bash ../configure ${configure_args} \
|
|
--bindir=/usr/bin --sbindir=/usr/bin \
|
|
--libdir=${_libdir} --libexecdir=${_libdir} \
|
|
--enable-multi-arch --enable-bind-now \
|
|
--enable-stack-protector=strong \
|
|
--disable-profile --enable-kernel=3.2.0 \
|
|
--without-selinux --without-gd \
|
|
--disable-werror \
|
|
libc_cv_rootsbindir=/usr/bin \
|
|
libc_cv_rtlddir=${_libdir} libc_cv_slibdir=${_libdir}
|
|
}
|
|
|
|
do_build() {
|
|
# Less verbose output when compiling and assembling
|
|
sed -i Makerules \
|
|
-e 's|compile-command.c = \(.*\)|compile-command.c = @echo " CC $<"; \1|' \
|
|
-e 's|compile-command.cc = \(.*\)|compile-command.cc = @echo " CXX $<"; \1|' \
|
|
-e 's|compile-command.S = \(.*\)|compile-command.S = @echo " ASM $<"; \1|'
|
|
cd build
|
|
make ${makejobs}
|
|
}
|
|
do_install() {
|
|
vlicense LICENSES
|
|
# Create DESTDIR/etc/ld.so.conf
|
|
mkdir -p ${DESTDIR}/etc
|
|
echo "include /etc/ld.so.conf.d/*.conf" > ${DESTDIR}/etc/ld.so.conf
|
|
|
|
cd build
|
|
make install_root=${DESTDIR} install
|
|
|
|
# create /etc/default/libc-locales
|
|
vinstall ${FILESDIR}/libc-locales 644 etc/default
|
|
cp ${wrksrc}/localedata/SUPPORTED ${wrksrc}/build
|
|
sed -i -e "s|/| |g" \
|
|
-e 's|\\| |g' \
|
|
-e "s|SUPPORTED-LOCALES=||" \
|
|
-e "s|^|#|g" ${wrksrc}/build/SUPPORTED
|
|
cat ${wrksrc}/build/SUPPORTED >> ${DESTDIR}/etc/default/libc-locales
|
|
|
|
# ldd is a bash script, so make it run as such.
|
|
replace_interpreter bash ${DESTDIR}/usr/bin/ldd
|
|
|
|
# wrong 32bit dynamic linker when using elfv2 ABI
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
ppc64*)
|
|
vsed -i '/RTLDLIST=/s/ld.so.2/ld.so.1/g' \
|
|
${DESTDIR}/usr/bin/ldd
|
|
;;
|
|
esac
|
|
|
|
install -d ${DESTDIR}/etc/ld.so.conf.d
|
|
echo "/usr/local/lib" > ${DESTDIR}/etc/ld.so.conf.d/usr_local.conf
|
|
chmod 644 ${DESTDIR}/etc/ld.so.conf.d/usr_local.conf
|
|
rm -f ${DESTDIR}/etc/ld.so.cache
|
|
|
|
# Create ld-linux.so.3 symlink for ARM.
|
|
case "$XBPS_TARGET_MACHINE" in
|
|
armv?l) ln -sfr ${DESTDIR}/usr/lib/ld-linux-armhf.so.3 ${DESTDIR}/usr/lib/ld-linux.so.3;;
|
|
esac
|
|
|
|
vinstall ${wrksrc}/posix/gai.conf 644 etc
|
|
rm -rf ${DESTDIR}/var/db
|
|
# Remove tzselect and z{dump,ic}, provided by tzutils.
|
|
rm -f ${DESTDIR}/usr/bin/tzselect
|
|
rm -f ${DESTDIR}/usr/bin/z{dump,ic}
|
|
|
|
mv ${DESTDIR}/usr/sbin/* ${DESTDIR}/usr/bin
|
|
}
|
|
|
|
glibc-devel_package() {
|
|
lib32depends="glibc>=${version}_${revision}"
|
|
lib32files="/usr/include/gnu/stubs-32.h"
|
|
depends="${makedepends} glibc>=${version}_${revision}"
|
|
short_desc+=" - development files"
|
|
pkg_install() {
|
|
vmove usr/include
|
|
vmove "usr/lib/*.a"
|
|
vmove "usr/lib/*.o"
|
|
if [ -d "${DESTDIR}/usr/share/info" ]; then
|
|
vmove usr/share/info
|
|
fi
|
|
}
|
|
}
|
|
glibc-locales_package() {
|
|
conf_files="/etc/default/libc-locales"
|
|
short_desc+=" - locale data files"
|
|
pkg_install() {
|
|
vmove etc/default
|
|
vmove usr/share/i18n
|
|
vmove usr/share/locale
|
|
}
|
|
}
|
|
nscd_package() {
|
|
conf_files="/etc/nscd.conf"
|
|
short_desc+=" - Name Service Cache Daemon"
|
|
pkg_install() {
|
|
vmove usr/bin/nscd
|
|
vinstall ${wrksrc}/nscd/nscd.conf 644 etc
|
|
vsv nscd
|
|
}
|
|
}
|