void-packages/srcpkgs/coreutils/template
Đoàn Trần Công Danh ea561b51f0 coreutils: add upstream patch for ls, fix aarch64 build
Also fix build in ethereal chroot
2020-03-08 07:48:01 +01:00

119 lines
3.6 KiB
Bash

# Template file for 'coreutils'
pkgname=coreutils
version=8.32
revision=2
bootstrap=yes
makedepends="gmp-devel acl-devel libcap-devel"
short_desc="GNU core utilities"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="https://www.gnu.org/software/coreutils"
changelog="https://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=blob_plain;f=NEWS;hb=HEAD"
distfiles="${GNU_SITE}/coreutils/coreutils-${version}.tar.xz"
checksum=4458d8de7849df44ccab15e16b1548b285224dbba5f08fac070c1c0e0bcc4cfa
replaces="chroot-coreutils>=0 coreutils-doc>=0 b2sum>=0"
if [ "$CHROOT_READY" ]; then
hostmakedepends+=" perl"
# allow run ./configure by root in ethereal chroot
if [ "$XBPS_ALLOW_CHROOT_BREAKOUT" ]; then
_force_unsafe_configure="FORCE_UNSAFE_CONFIGURE=1"
fi
fi
alternatives="
hostname:hostname:/usr/bin/hostname-coreutils
hostname:hostname.1:/usr/share/man/man1/hostname-coreutils.1"
pre_configure() {
# Build natively all utils for the host, we need this to generate
# the manpages via help2man.
if [ "$CROSS_BUILD" ]; then
env CC=cc LD=ld AR=ar RANLIB=ranlib \
CFLAGS=-Os CXXFLAGS=-Os LDFLAGS= \
$_force_unsafe_configure \
./configure --prefix=${wrksrc}/coreutils-${XBPS_MACHINE} \
--enable-install-program=arch,hostname \
--enable-no-install-program=kill,uptime
make ${makejobs}
make install
make distclean
fi
}
do_configure() {
if [ "$CROSS_BUILD" ]; then
configure_args+=" fu_cv_sys_stat_statfs2_bsize=no
gl_cv_func_working_mkstemp=yes
gl_cv_func_working_acl_get_file=yes "
fi
case "$XBPS_TARGET_MACHINE" in
# XXX syncfs() in src/sync.c expects a return value.
*-musl) configure_args+=" ac_cv_func_syncfs=no";;
esac
#
# Do not install kill: provided by util-linux.
# Do not install uptime: provided by procps-ng.
#
env $_force_unsafe_configure ./configure ${configure_args} \
--enable-install-program=arch,hostname \
--enable-no-install-program=kill,uptime \
--disable-rpath
if [ "$CROSS_BUILD" ]; then
# Use install when cross compiling
cp Makefile Makefile.cfg.orig
sed -e 's;^\(cu_install_program =\).*;\1 install;' \
Makefile.cfg.orig >Makefile
fi
}
do_build() {
if [ "$CROSS_BUILD" ]; then
cp Makefile Makefile.orig
sed '/src_make_prime_list/d' Makefile.orig > Makefile
depbase=$(echo src/make-prime-list.o | sed 's|[^/]*$|.deps/&|;s|\.o$||')
cc -std=gnu99 -I. -I./lib -Ilib -I./lib -Isrc -I./src \
-fdiagnostics-show-option -funit-at-a-time -g -O2 -MT \
src/make-prime-list.o -MD -MP -MF $depbase.Tpo -c \
-o src/make-prime-list.o \
src/make-prime-list.c
mv -f $depbase.Tpo $depbase.Po
cc -std=gnu99 -fdiagnostics-show-option -funit-at-a-time -g -O2 \
-Wl,--as-needed -o src/make-prime-list src/make-prime-list.o
cp Makefile Makefile.bak
sed -e '/hostname.1/d' Makefile.bak > Makefile
fi
make ${makejobs}
}
do_check() {
local exeext_tests
# chgrp tests fail inside a chroot
sed -i '/tests\/chgrp/d' Makefile
# Tests that fail due to being inside a chroot
exeext_tests="chown lchown fchownat"
# Tests that depend on the tests reemoved
exeext_tests+=" fchmodat fchdir"
for test in $exeext_tests ; do
sed -i "/test-$test\$(EXEEXT)/d" gnulib-tests/Makefile
done
make check
}
do_install() {
make DESTDIR=${DESTDIR} install
if [ "$CROSS_BUILD" ]; then
mv ${wrksrc}/coreutils-${XBPS_MACHINE}/share/man \
${DESTDIR}/usr/share
# provided by procps-ng
rm -f ${DESTDIR}/usr/share/man/man1/{kill,uptime}.1
fi
mv ${DESTDIR}/usr/bin/hostname ${DESTDIR}/usr/bin/hostname-coreutils
mv ${DESTDIR}/usr/share/man/man1/hostname.1 ${DESTDIR}/usr/share/man/man1/hostname-coreutils.1
}