diff options
author | Eli Schwartz <eschwartz93@gmail.com> | 2024-02-04 00:19:21 -0500 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2024-02-05 14:12:33 +0000 |
commit | 762048810c50d1994b1af1c7d95b09353b78b38e (patch) | |
tree | aed37867d6f5fb4022de885b7d7da598bf05aa1f /sys-apps/file | |
parent | profiles/arch/hppa: update and expand cups + pdf stable-mask (diff) | |
download | gentoo-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')
-rw-r--r-- | sys-apps/file/file-5.45-r4.ebuild | 179 | ||||
-rw-r--r-- | sys-apps/file/file-9999.ebuild | 11 |
2 files changed, 184 insertions, 6 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 +} diff --git a/sys-apps/file/file-9999.ebuild b/sys-apps/file/file-9999.ebuild index 1f2cf6f8d1ac..19c650b61358 100644 --- a/sys-apps/file/file-9999.ebuild +++ b/sys-apps/file/file-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -35,17 +35,16 @@ DEPEND=" bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] ) lzip? ( app-arch/lzlib ) lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] ) - python? ( - ${PYTHON_DEPS} - dev-python/setuptools[${PYTHON_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? ( !dev-python/python-magic ) + python? ( + ${PYTHON_DEPS} + !dev-python/python-magic + ) seccomp? ( >=sys-libs/libseccomp-2.5.4[${MULTILIB_USEDEP}] ) " BDEPEND+=" |