sys-apps/findutils: use LFS & 64-bit time_t

This only matters for 32-bit systems, but they can fail to build
under glibc-2.34 due to new 64-bit time_T checks.  We want this
to use 64-bit FS interfaces anyways since this heavily interacts
with the filesystem.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
Mike Frysinger 2021-10-25 12:00:56 -04:00
parent edd245fb1b
commit ee514defae
No known key found for this signature in database
GPG Key ID: BEA535A9AE2A5188
1 changed files with 76 additions and 0 deletions

View File

@ -0,0 +1,76 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="7"
PYTHON_COMPAT=( python3_{7..9} )
inherit flag-o-matic python-any-r1
DESCRIPTION="GNU utilities for finding files"
HOMEPAGE="https://www.gnu.org/software/findutils/"
SRC_URI="mirror://gnu/${PN}/${P}.tar.xz"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="nls selinux static test"
RESTRICT="!test? ( test )"
RDEPEND="selinux? ( sys-libs/libselinux )
nls? ( virtual/libintl )"
DEPEND="${RDEPEND}
test? ( ${PYTHON_DEPS} )
"
BDEPEND="
nls? ( sys-devel/gettext )
"
pkg_setup() {
use test && python-any-r1_pkg_setup
}
src_prepare() {
# Don't build or install locate because it conflicts with mlocate,
# which is a secure version of locate. See bug 18729
sed \
-e '/^SUBDIRS/s@locate@@' \
-e '/^built_programs/s@ frcode locate updatedb@@' \
-i Makefile.in || die
default
}
src_configure() {
append-lfs-flags #471102
append-cppflags -D_TIME_BITS=64
if use static; then
append-flags -pthread
append-ldflags -static
fi
if [[ ${CHOST} == *-darwin* ]] ; then
# https://lists.gnu.org/archive/html/bug-findutils/2021-01/msg00050.html
# https://lists.gnu.org/archive/html/bug-findutils/2021-01/msg00051.html
append-cppflags '-D__nonnull\(X\)='
fi
program_prefix=$(usex userland_GNU '' g)
local myeconfargs=(
--with-packager="Gentoo"
--with-packager-version="${PVR}"
--with-packager-bug-reports="https://bugs.gentoo.org/"
--program-prefix=${program_prefix}
$(use_enable nls)
$(use_with selinux)
--libexecdir='$(libdir)'/find
)
econf "${myeconfargs[@]}"
}
src_compile() {
# We don't build locate, but the docs want a file in there.
emake -C locate dblocation.texi
default
}