summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz93@gmail.com>2024-02-04 00:19:21 -0500
committerSam James <sam@gentoo.org>2024-02-05 14:12:33 +0000
commit762048810c50d1994b1af1c7d95b09353b78b38e (patch)
treeaed37867d6f5fb4022de885b7d7da598bf05aa1f /sys-apps/file/file-5.45-r4.ebuild
parentprofiles/arch/hppa: update and expand cups + pdf stable-mask (diff)
downloadgentoo-762048810c50d1994b1af1c7d95b09353b78b38e.tar.gz
gentoo-762048810c50d1994b1af1c7d95b09353b78b38e.tar.bz2
gentoo-762048810c50d1994b1af1c7d95b09353b78b38e.zip
sys-apps/file: fix dependencies for USE=python
This uses DISTUTILS_OPTIONAL and manually adds dependencies based on USE, but gets it wrong: - it requires python/setuptools in DEPEND, whereas the eclass expects it in BDEPEND for cross building - it adds all DEPEND to RDEPEND, which then includes setuptools - it uses hardcoded setuptools stuff instead of the eclass recommended variable containing additional build time dependencies It then also adds the correct BDEPEND version of the dependencies. Solve this by ripping out the DEPEND handling altogether, and using a minimal set of RDEPEND requirements. Signed-off-by: Eli Schwartz <eschwartz93@gmail.com> Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-apps/file/file-5.45-r4.ebuild')
-rw-r--r--sys-apps/file/file-5.45-r4.ebuild179
1 files changed, 179 insertions, 0 deletions
diff --git a/sys-apps/file/file-5.45-r4.ebuild b/sys-apps/file/file-5.45-r4.ebuild
new file mode 100644
index 000000000000..3876dcbbf72f
--- /dev/null
+++ b/sys-apps/file/file-5.45-r4.ebuild
@@ -0,0 +1,179 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_OPTIONAL=1
+PYTHON_COMPAT=( python3_{10..11} )
+
+inherit distutils-r1 toolchain-funcs multilib-minimal
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/glensc/file.git"
+ inherit autotools git-r3
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/file.asc
+ inherit autotools verify-sig
+ SRC_URI="ftp://ftp.astron.com/pub/file/${P}.tar.gz"
+ SRC_URI+=" verify-sig? ( ftp://ftp.astron.com/pub/file/${P}.tar.gz.asc )"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+
+ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-file )"
+fi
+
+DESCRIPTION="Identify a file's format by scanning binary data for patterns"
+HOMEPAGE="https://www.darwinsys.com/file/"
+
+LICENSE="BSD-2"
+SLOT="0"
+IUSE="bzip2 lzip lzma python seccomp static-libs zlib zstd"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+DEPEND="
+ bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] )
+ lzip? ( app-arch/lzlib )
+ lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] )
+ seccomp? ( >=sys-libs/libseccomp-2.5.4[${MULTILIB_USEDEP}] )
+ zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
+ zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
+"
+RDEPEND="
+ ${DEPEND}
+ python? (
+ ${PYTHON_DEPS}
+ !dev-python/python-magic
+ )
+ seccomp? ( >=sys-libs/libseccomp-2.5.4[${MULTILIB_USEDEP}] )
+"
+BDEPEND+="
+ python? (
+ ${PYTHON_DEPS}
+ ${DISTUTILS_DEPS}
+ )
+"
+
+# https://bugs.gentoo.org/898676
+QA_CONFIG_IMPL_DECL_SKIP=( makedev )
+
+PATCHES=(
+ "${FILESDIR}/file-5.43-seccomp-fstatat64-musl.patch" #789336, not upstream yet
+ "${FILESDIR}/file-5.45-seccomp-sandbox.patch"
+ "${FILESDIR}/${P}-32-bit-time_t.patch"
+ "${FILESDIR}/${P}-32-bit-time_t-deux.patch"
+ "${FILESDIR}/${P}-weak-magic-shell.patch" #908401
+)
+
+src_prepare() {
+ default
+
+ #if [[ ${PV} == 9999 ]] ; then
+ # eautoreconf
+ #else
+ # elibtoolize
+ #fi
+ # Just for file-5.45-32-bit-time_t-deux.patch, drop in 5.46
+ eautoreconf
+
+ # Don't let python README kill main README, bug #60043
+ mv python/README.md python/README.python.md || die
+
+ # bug #662090
+ sed -i 's@README.md@README.python.md@' python/setup.py || die
+}
+
+multilib_src_configure() {
+ local myeconfargs=(
+ --enable-fsect-man5
+ $(use_enable bzip2 bzlib)
+ $(multilib_native_use_enable lzip lzlib)
+ $(use_enable lzma xzlib)
+ $(use_enable seccomp libseccomp)
+ $(use_enable static-libs static)
+ $(use_enable zlib)
+ $(use_enable zstd zstdlib)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+build_src_configure() {
+ local myeconfargs=(
+ --disable-shared
+ --disable-libseccomp
+ --disable-bzlib
+ --disable-xzlib
+ --disable-zlib
+ )
+
+ econf_build "${myeconfargs[@]}"
+}
+
+need_build_file() {
+ # When cross-compiling, we need to build up our own file
+ # because people often don't keep matching host/target
+ # file versions, bug #362941
+ tc-is-cross-compiler && ! has_version -b "~${CATEGORY}/${P}"
+}
+
+src_configure() {
+ local ECONF_SOURCE="${S}"
+
+ if need_build_file ; then
+ mkdir -p "${WORKDIR}"/build || die
+ cd "${WORKDIR}"/build || die
+ build_src_configure
+ fi
+
+ multilib-minimal_src_configure
+}
+
+multilib_src_compile() {
+ if multilib_is_native_abi ; then
+ emake
+ else
+ # bug #586444
+ emake -C src magic.h
+ emake -C src libmagic.la
+ fi
+}
+
+src_compile() {
+ if need_build_file ; then
+ # bug #586444
+ emake -C "${WORKDIR}"/build/src magic.h
+ emake -C "${WORKDIR}"/build/src file
+ local -x PATH="${WORKDIR}/build/src:${PATH}"
+ fi
+
+ multilib-minimal_src_compile
+
+ if use python ; then
+ cd python || die
+ distutils-r1_src_compile
+ fi
+}
+
+multilib_src_install() {
+ if multilib_is_native_abi ; then
+ default
+ else
+ emake -C src install-{nodist_includeHEADERS,libLTLIBRARIES} DESTDIR="${D}"
+ fi
+}
+
+multilib_src_install_all() {
+ dodoc ChangeLog MAINT # README
+
+ # Required for `file -C`
+ insinto /usr/share/misc/magic
+ doins -r magic/Magdir/*
+
+ if use python ; then
+ cd python || die
+ distutils-r1_src_install
+ fi
+
+ find "${ED}" -type f -name "*.la" -delete || die
+}