From d7df572717ba5c577b7c827aa1bbc92953232c55 Mon Sep 17 00:00:00 2001 From: NHOrus Date: Fri, 10 Jan 2025 20:47:18 +0400 Subject: [PATCH] media-libs/tiff-compat: Fix implicit declarations in configure by regenerating it with autotools. Drop blocker on tiff-4.4* - it was dropped two years ago Also fix C23 compliance by adding AC_SYSTEM_EXTENSIONS and updating config header templates, plus one stubborn source file. Bug: https://bugs.gentoo.org/910693 Signed-off-by: NHOrus Closes: https://github.com/gentoo/gentoo/pull/40089 Signed-off-by: Sam James --- .../tiff-compat/files/tiff-4.4.0-C23.patch | 52 ++++++++++ .../tiff-compat/tiff-compat-4.4.0-r1.ebuild | 3 +- .../tiff-compat/tiff-compat-4.4.0-r2.ebuild | 95 +++++++++++++++++++ 3 files changed, 148 insertions(+), 2 deletions(-) create mode 100644 media-libs/tiff-compat/files/tiff-4.4.0-C23.patch create mode 100644 media-libs/tiff-compat/tiff-compat-4.4.0-r2.ebuild diff --git a/media-libs/tiff-compat/files/tiff-4.4.0-C23.patch b/media-libs/tiff-compat/files/tiff-4.4.0-C23.patch new file mode 100644 index 0000000000000..81e5740c8215e --- /dev/null +++ b/media-libs/tiff-compat/files/tiff-4.4.0-C23.patch @@ -0,0 +1,52 @@ +https://bugs.gentoo.org/910693 +Fix implicit declarations by regenerating configure, +Fix config header templates, manually define _GNU_SOURCE when +correct header was not cooperating +--- a/configure.ac ++++ b/configure.ac +@@ -29,6 +29,7 @@ + AC_CONFIG_AUX_DIR(config) + AC_CONFIG_MACRO_DIR(m4) + AC_LANG(C) ++AC_USE_SYSTEM_EXTENSIONS + + dnl Compute the canonical host (run-time) system type variable + AC_CANONICAL_HOST +--- a/libtiff/tif_config.h.in ++++ b/libtiff/tif_config.h.in +@@ -139,6 +139,11 @@ + /* Support zstd compression */ + #undef ZSTD_SUPPORT + ++/* Enable GNU extensions on systems that have them. */ ++#ifndef _GNU_SOURCE ++# undef _GNU_SOURCE ++#endif ++ + /* Enable large inode numbers on Mac OS X 10.5. */ + #ifndef _DARWIN_USE_64_BIT_INODE + # define _DARWIN_USE_64_BIT_INODE 1 +--- a/libtiff/tiffconf.h.in ++++ b/libtiff/tiffconf.h.in +@@ -90,6 +90,11 @@ + /* Support Deflate compression */ + #undef ZIP_SUPPORT + ++/* Enable GNU extensions on systems that have them. */ ++#ifndef _GNU_SOURCE ++# undef _GNU_SOURCE ++#endif ++ + /* Support libdeflate enhanced compression */ + #undef LIBDEFLATE_SUPPORT + +--- a/libtiff/mkg3states.c ++++ b/libtiff/mkg3states.c +@@ -27,6 +27,7 @@ + * in Frank Cringle's viewfax program; + * Copyright (C) 1990, 1995 Frank D. Cringle. + */ ++#define _GNU_SOURCE 1 + #include "tif_config.h" + #include "libport.h" + diff --git a/media-libs/tiff-compat/tiff-compat-4.4.0-r1.ebuild b/media-libs/tiff-compat/tiff-compat-4.4.0-r1.ebuild index 432e66e9c98e1..077bc24a46923 100644 --- a/media-libs/tiff-compat/tiff-compat-4.4.0-r1.ebuild +++ b/media-libs/tiff-compat/tiff-compat-4.4.0-r1.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -38,7 +38,6 @@ RDEPEND=" webp? ( media-libs/libwebp:=[${MULTILIB_USEDEP}] ) zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] ) zstd? ( >=app-arch/zstd-1.3.7-r1:=[${MULTILIB_USEDEP}] ) - !=media-libs/tiff-4.4* " DEPEND="${RDEPEND}" BDEPEND="verify-sig? ( sec-keys/openpgp-keys-evenrouault )" diff --git a/media-libs/tiff-compat/tiff-compat-4.4.0-r2.ebuild b/media-libs/tiff-compat/tiff-compat-4.4.0-r2.ebuild new file mode 100644 index 0000000000000..84be51fcbf3ce --- /dev/null +++ b/media-libs/tiff-compat/tiff-compat-4.4.0-r2.ebuild @@ -0,0 +1,95 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +QA_PKGCONFIG_VERSION="$(ver_cut 1-3)" + +# Release signer can vary per version but not clear if others will be doing +# them in future, so gone with Even Rouault for now as he does other geosci +# stuff too like PROJ, GDAL. Previous release manager of TIFF was +# GraphicsMagick maintainer Bob Friesenhahn. Please be careful when verifying +# who made releases. +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/rouault.asc +inherit multilib-minimal verify-sig flag-o-matic autotools + +MY_P="${P/_rc/rc}" +DESCRIPTION="Tag Image File Format (TIFF) library (compat package for libtiff.so.5)" +HOMEPAGE="http://libtiff.maptools.org" +SRC_URI="https://download.osgeo.org/libtiff/${MY_P/-compat}.tar.xz" +SRC_URI+=" verify-sig? ( https://download.osgeo.org/libtiff/${MY_P/-compat}.tar.xz.sig )" +S="${WORKDIR}/${PN/-compat}-$(ver_cut 1-3)" + +LICENSE="libtiff" +SLOT="4" +if [[ ${PV} != *_rc* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +fi +IUSE="+cxx jbig jpeg lzma test webp zlib zstd" +RESTRICT="!test? ( test )" + +# bug #483132 +REQUIRED_USE="test? ( jpeg )" + +RDEPEND=" + jbig? ( >=media-libs/jbigkit-2.1:=[${MULTILIB_USEDEP}] ) + jpeg? ( media-libs/libjpeg-turbo:=[${MULTILIB_USEDEP}] ) + lzma? ( >=app-arch/xz-utils-5.0.5-r1[${MULTILIB_USEDEP}] ) + webp? ( media-libs/libwebp:=[${MULTILIB_USEDEP}] ) + zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] ) + zstd? ( >=app-arch/zstd-1.3.7-r1:=[${MULTILIB_USEDEP}] ) +" +DEPEND="${RDEPEND}" +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-evenrouault )" + +# Easier to keep this even though we remove the headers to avoid +# triggering multilib header check +MULTILIB_WRAPPED_HEADERS=( + /usr/include/tiffconf.h +) + +PATCHES=( + "${FILESDIR}"/${PN/-compat}-4.4.0_rc1-skip-thumbnail-test.patch + "${FILESDIR}"/${P/-compat}-hylafaxplus-regression.patch + "${FILESDIR}"/${P/-compat}-C23.patch +) + +src_prepare() { + default + + # Added to fix cross-compilation and bug #910693 + eautoreconf +} + +multilib_src_configure() { + append-lfs-flags + + local myeconfargs=( + --without-x + $(use_enable cxx) + $(use_enable jbig) + $(use_enable jpeg) + $(use_enable lzma) + $(use_enable webp) + $(use_enable zlib) + $(use_enable zstd) + ) + + ECONF_SOURCE="${S}" econf "${myeconfargs[@]}" + + sed -i \ + -e 's/ tools//' \ + -e 's/ contrib//' \ + -e 's/ man//' \ + -e 's/ html//' \ + Makefile || die +} + +multilib_src_install_all() { + rm -r "${ED}"/usr/include || die + rm -r "${ED}"/usr/share || die + rm -r "${ED}"/usr/lib*/pkgconfig || die + rm -r "${ED}"/usr/lib*/*.so || die + + find "${ED}" -type f -name '*.la' -delete || die +}