public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Sam James" <sam@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-libs/zlib/, sys-libs/zlib/files/
Date: Fri, 11 Mar 2022 15:18:46 +0000 (UTC)	[thread overview]
Message-ID: <1647011903.de0d11e6108d577ba1305969615ac86c9296adb2.sam@gentoo> (raw)

commit:     de0d11e6108d577ba1305969615ac86c9296adb2
Author:     Adrian Ratiu <adrian.ratiu <AT> collabora <DOT> com>
AuthorDate: Thu Jan 20 19:15:59 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Mar 11 15:18:23 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=de0d11e6

sys-libs/zlib: add patch to fix configure AR/RANLIB/NM detection

This adds a patch from the zlib-devel ML to fix a minor
build inconsistency leading to GNU tools usage in LLVM
configured builds.

The reason we're adding it directly here is zlib upstream
takes forever to release new versions and there's not much
activity for some time (last release was in Jan 2017).

Closes: https://bugs.gentoo.org/831628
Signed-off-by: Adrian Ratiu <adrian.ratiu <AT> collabora.com>
Closes: https://github.com/gentoo/gentoo/pull/23888
Signed-off-by: Sam James <sam <AT> gentoo.org>

 ...2.11-configure-fix-AR-RANLIB-NM-detection.patch |  88 +++++++++++
 sys-libs/zlib/zlib-1.2.11-r5.ebuild                | 168 +++++++++++++++++++++
 2 files changed, 256 insertions(+)

diff --git a/sys-libs/zlib/files/zlib-1.2.11-configure-fix-AR-RANLIB-NM-detection.patch b/sys-libs/zlib/files/zlib-1.2.11-configure-fix-AR-RANLIB-NM-detection.patch
new file mode 100644
index 000000000000..1ab5b2f5dc81
--- /dev/null
+++ b/sys-libs/zlib/files/zlib-1.2.11-configure-fix-AR-RANLIB-NM-detection.patch
@@ -0,0 +1,88 @@
+From 4232e67ee1440634af8209c7022dfc64cf862819 Mon Sep 17 00:00:00 2001
+From: Adrian Ratiu <adrian.ratiu@collabora.com>
+Date: Mon, 17 Jan 2022 10:49:58 +0200
+Subject: [PATCH v3] configure: fix AR/RANLIB/NM detection
+
+Taken from zlib-devel ML:
+https://madler.net/pipermail/zlib-devel_madler.net/2022-January/003322.html
+
+Bug: https://bugs.gentoo.org/831628
+
+Scenarios where ${CROSS_PREFIX}ar & co are set but not desired
+are possible, for example in ChromiumOS we use the GNU binutils
+tools & GCC to build glibc but LLVM/Clang is used for the rest
+of the system.
+
+This allows $AR/$RANLIB/$NM to override default CROSS_PREFIX
+tools so they can be set to llvm-ar/ranlib/nm.
+
+Suggested-by: Manoj Gupta <manojgupta@chromium.org>
+Signed-off-by: Adrian Ratiu <adrian.ratiu@collabora.com>
+---
+
+Changes in v3:
+  * Whitespace style fixes
+  * Fixed top level variable tests (eg -z AR -> -z $AR)
+  * Review and testing as part of Gentoo PR:
+    https://github.com/gentoo/gentoo/pull/23888
+Changes in v2:
+  * Fixed a typo in the "unset NM" case
+---
+ configure | 38 ++++++++++++++++++++++----------------
+ 1 file changed, 22 insertions(+), 16 deletions(-)
+
+diff --git a/configure b/configure
+index e974d1f..045c616 100755
+--- a/configure
++++ b/configure
+@@ -46,25 +46,31 @@ VER2=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < ${SRCDIR}zlib.
+ VER1=`sed -n -e '/VERSION "/s/.*"\([0-9]*\)\\..*/\1/p' < ${SRCDIR}zlib.h`
+ 
+ # establish commands for library building
+-if "${CROSS_PREFIX}ar" --version >/dev/null 2>/dev/null || test $? -lt 126; then
+-    AR=${AR-"${CROSS_PREFIX}ar"}
+-    test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
+-else
+-    AR=${AR-"ar"}
+-    test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
++if [ -z "$AR" ]; then
++    if "${CROSS_PREFIX}ar" --version >/dev/null 2>/dev/null || test $? -lt 126; then
++        AR=${AR-"${CROSS_PREFIX}ar"}
++        test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
++    else
++        AR="ar"
++        test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
++    fi
+ fi
+ ARFLAGS=${ARFLAGS-"rc"}
+-if "${CROSS_PREFIX}ranlib" --version >/dev/null 2>/dev/null || test $? -lt 126; then
+-    RANLIB=${RANLIB-"${CROSS_PREFIX}ranlib"}
+-    test -n "${CROSS_PREFIX}" && echo Using ${RANLIB} | tee -a configure.log
+-else
+-    RANLIB=${RANLIB-"ranlib"}
++if [ -z "$RANLIB" ]; then
++    if "${CROSS_PREFIX}ranlib" --version >/dev/null 2>/dev/null || test $? -lt 126; then
++        RANLIB=${RANLIB-"${CROSS_PREFIX}ranlib"}
++        test -n "${CROSS_PREFIX}" && echo Using ${RANLIB} | tee -a configure.log
++    else
++        RANLIB="ranlib"
++    fi
+ fi
+-if "${CROSS_PREFIX}nm" --version >/dev/null 2>/dev/null || test $? -lt 126; then
+-    NM=${NM-"${CROSS_PREFIX}nm"}
+-    test -n "${CROSS_PREFIX}" && echo Using ${NM} | tee -a configure.log
+-else
+-    NM=${NM-"nm"}
++if [ -z "$NM" ]; then
++    if "${CROSS_PREFIX}nm" --version >/dev/null 2>/dev/null || test $? -lt 126;   then
++        NM=${NM-"${CROSS_PREFIX}nm"}
++        test -n "${CROSS_PREFIX}" && echo Using ${NM} | tee -a configure.log
++    else
++        NM="nm"
++    fi
+ fi
+ 
+ # set defaults before processing command line options
+-- 
+2.35.0
+

diff --git a/sys-libs/zlib/zlib-1.2.11-r5.ebuild b/sys-libs/zlib/zlib-1.2.11-r5.ebuild
new file mode 100644
index 000000000000..aede59d32f2a
--- /dev/null
+++ b/sys-libs/zlib/zlib-1.2.11-r5.ebuild
@@ -0,0 +1,168 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+AUTOTOOLS_AUTO_DEPEND="no"
+inherit autotools multilib-minimal usr-ldscript
+
+CYGWINPATCHES=(
+	"https://github.com/cygwinports/zlib/raw/22a3462cae33a82ad966ea0a7d6cbe8fc1368fec/1.2.11-gzopen_w.patch -> ${PN}-1.2.11-cygwin-gzopen_w.patch"
+	"https://github.com/cygwinports/zlib/raw/22a3462cae33a82ad966ea0a7d6cbe8fc1368fec/1.2.7-minizip-cygwin.patch -> ${PN}-1.2.7-cygwin-minizip.patch"
+)
+
+DESCRIPTION="Standard (de)compression library"
+HOMEPAGE="https://zlib.net/"
+SRC_URI="https://zlib.net/${P}.tar.gz
+	http://www.gzip.org/zlib/${P}.tar.gz
+	http://www.zlib.net/current/beta/${P}.tar.gz
+	elibc_Cygwin? ( ${CYGWINPATCHES[*]} )"
+
+LICENSE="ZLIB"
+SLOT="0/1" # subslot = SONAME
+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 ~x86-winnt"
+IUSE="minizip static-libs"
+
+BDEPEND="minizip? ( ${AUTOTOOLS_DEPEND} )"
+# See #309623 for libxml2
+RDEPEND="
+	!<dev-libs/libxml2-2.7.7
+	!sys-libs/zlib-ng[compat]
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-1.2.11-fix-deflateParams-usage.patch
+	"${FILESDIR}"/${PN}-1.2.11-minizip-drop-crypt-header.patch #658536
+	"${FILESDIR}"/${PN}-1.2.11-configure-fix-AR-RANLIB-NM-detection.patch #831628
+)
+
+src_prepare() {
+	default
+
+	if use elibc_Cygwin ; then
+		local p
+		for p in "${CYGWINPATCHES[@]}" ; do
+			# Strip out the "... -> " from the array
+			eapply -p2 "${DISTDIR}/${p#*> }"
+		done
+	fi
+
+	if use minizip ; then
+		cd contrib/minizip || die
+		eautoreconf
+	fi
+
+	case ${CHOST} in
+	*-cygwin*)
+		# do not use _wopen, is a mingw symbol only
+		sed -i -e '/define WIDECHAR/d' "${S}"/gzguts.h || die
+		# zlib1.dll is the mingw name, need cygz.dll
+		# cygz.dll is loaded by toolchain, put into subdir
+		sed -i -e 's|zlib1.dll|win32/cygz.dll|' win32/Makefile.gcc || die
+		;;
+	esac
+
+	case ${CHOST} in
+	*-mingw*|mingw*|*-cygwin*)
+		# uses preconfigured Makefile rather than configure script
+		multilib_copy_sources
+		;;
+	esac
+}
+
+echoit() { echo "$@"; "$@"; }
+
+multilib_src_configure() {
+	case ${CHOST} in
+	*-mingw*|mingw*|*-cygwin*)
+		;;
+	*)
+		local uname=$("${EPREFIX}"/usr/share/gnuconfig/config.sub "${CHOST}" | cut -d- -f3) #347167
+		local myconf=(
+			--shared
+			--prefix="${EPREFIX}/usr"
+			--libdir="${EPREFIX}/usr/$(get_libdir)"
+			${uname:+--uname=${uname}}
+		)
+		# not an autoconf script, so can't use econf
+		echoit "${S}"/configure "${myconf[@]}" || die
+		;;
+	esac
+
+	if use minizip ; then
+		local minizipdir="contrib/minizip"
+		mkdir -p "${BUILD_DIR}/${minizipdir}" || die
+		cd ${minizipdir} || die
+		ECONF_SOURCE="${S}/${minizipdir}" \
+		econf $(use_enable static-libs static)
+	fi
+}
+
+multilib_src_compile() {
+	case ${CHOST} in
+	*-mingw*|mingw*|*-cygwin*)
+		emake -f win32/Makefile.gcc STRIP=true PREFIX=${CHOST}-
+		sed \
+			-e 's|@prefix@|'"${EPREFIX}"'/usr|g' \
+			-e 's|@exec_prefix@|${prefix}|g' \
+			-e 's|@libdir@|${exec_prefix}/'$(get_libdir)'|g' \
+			-e 's|@sharedlibdir@|${exec_prefix}/'$(get_libdir)'|g' \
+			-e 's|@includedir@|${prefix}/include|g' \
+			-e 's|@VERSION@|'${PV}'|g' \
+			zlib.pc.in > zlib.pc || die
+		;;
+	*)
+		emake
+		;;
+	esac
+	use minizip && emake -C contrib/minizip
+}
+
+sed_macros() {
+	# clean up namespace a little #383179
+	# we do it here so we only have to tweak 2 files
+	sed -i -r 's:\<(O[FN])\>:_Z_\1:g' "$@" || die
+}
+
+multilib_src_install() {
+	case ${CHOST} in
+	*-mingw*|mingw*|*-cygwin*)
+		emake -f win32/Makefile.gcc install \
+			BINARY_PATH="${ED}/usr/bin" \
+			LIBRARY_PATH="${ED}/usr/$(get_libdir)" \
+			INCLUDE_PATH="${ED}/usr/include" \
+			SHARED_MODE=1
+		# overwrites zlib.pc created from win32/Makefile.gcc #620136
+		insinto /usr/$(get_libdir)/pkgconfig
+		doins zlib.pc
+		;;
+
+	*)
+		emake install DESTDIR="${D}" LDCONFIG=:
+		gen_usr_ldscript -a z
+		;;
+	esac
+	sed_macros "${ED}"/usr/include/*.h
+
+	if use minizip ; then
+		emake -C contrib/minizip install DESTDIR="${D}"
+		sed_macros "${ED}"/usr/include/minizip/*.h
+	fi
+
+	if use minizip; then
+		# This might not exist if slibtool is used.
+		# https://bugs.gentoo.org/816756
+		rm -f "${ED}"/usr/$(get_libdir)/libminizip.la || die
+	fi
+
+	if ! use static-libs ; then
+		# https://bugs.gentoo.org/419645
+		rm "${ED}"/usr/$(get_libdir)/libz.a || die
+	fi
+}
+
+multilib_src_install_all() {
+	dodoc FAQ README ChangeLog doc/*.txt
+	use minizip && dodoc contrib/minizip/*.txt
+}


             reply	other threads:[~2022-03-11 15:18 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-11 15:18 Sam James [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-03-04  2:24 [gentoo-commits] repo/gentoo:master commit in: sys-libs/zlib/, sys-libs/zlib/files/ Sam James
2024-01-24  8:05 Sam James
2023-10-30 10:21 Sam James
2022-11-23  4:25 Sam James
2022-03-28  7:28 Sam James
2022-01-28  7:53 Sam James
2015-09-29 13:26 Mike Frysinger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1647011903.de0d11e6108d577ba1305969615ac86c9296adb2.sam@gentoo \
    --to=sam@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox