commit:     0f0ba1c7b1f617b17eb0b946a5f63e92b3320a01
Author:     Sebastian Pipping <sping <AT> gentoo <DOT> org>
AuthorDate: Fri May 12 14:01:33 2023 +0000
Commit:     Sebastian Pipping <sping <AT> gentoo <DOT> org>
CommitDate: Fri May 12 14:01:33 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0f0ba1c7

app-text/xmlstarlet: EAPI 8 + Clang 16 fixes

Closes: https://bugs.gentoo.org/883131
Signed-off-by: Sebastian Pipping <sping <AT> gentoo.org>

 .../files/xmlstarlet-1.6.1-clang16.patch           | 32 ++++++++++++
 app-text/xmlstarlet/xmlstarlet-1.6.1-r1.ebuild     | 59 ++++++++++++++++++++++
 2 files changed, 91 insertions(+)

diff --git a/app-text/xmlstarlet/files/xmlstarlet-1.6.1-clang16.patch 
b/app-text/xmlstarlet/files/xmlstarlet-1.6.1-clang16.patch
new file mode 100644
index 000000000000..fda631611216
--- /dev/null
+++ b/app-text/xmlstarlet/files/xmlstarlet-1.6.1-clang16.patch
@@ -0,0 +1,32 @@
+From d01c3e8a488282bc8bc2fae5bd21efc6c3931a32 Mon Sep 17 00:00:00 2001
+From: Khem Raj <[email protected]>
+Date: Wed, 18 Jan 2023 14:50:08 -0800
+Subject: [PATCH] Fix hash_key_put() signature
+
+Fixes
+
+../xmlstarlet-1.6.1/src/xml_elem.c:271:27: error: incompatible function 
pointer types passing 'void (void *, void *, xmlChar *)' (aka 'void (void *, 
void *, unsigned char *)') to parameter of type 'xmlHashScanner' (aka 'void 
(*)(void *, void *, const unsigned char *)') 
[-Wincompatible-function-pointer-types]
+        xmlHashScan(uniq, hash_key_put, &lines);
+                          ^~~~~~~~~~~~
+
+Signed-off-by: Khem Raj <[email protected]>
+---
+ src/xml_elem.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/xml_elem.c b/src/xml_elem.c
+index 024e62a..a73038a 100644
+--- a/src/xml_elem.c
++++ b/src/xml_elem.c
+@@ -186,7 +186,7 @@ typedef struct {
+  * put @name into @data->array[@data->offset]
+  */
+ static void
+-hash_key_put(void *payload, void *data, xmlChar *name)
++hash_key_put(void *payload, void *data, const xmlChar *name)
+ {
+     ArrayDest *dest = data;
+     dest->array[dest->offset++] = name;
+-- 
+2.40.1
+

diff --git a/app-text/xmlstarlet/xmlstarlet-1.6.1-r1.ebuild 
b/app-text/xmlstarlet/xmlstarlet-1.6.1-r1.ebuild
new file mode 100644
index 000000000000..a508a3ef094f
--- /dev/null
+++ b/app-text/xmlstarlet/xmlstarlet-1.6.1-r1.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic toolchain-funcs
+
+DESCRIPTION="A set of tools to transform, query, validate, and edit XML 
documents"
+HOMEPAGE="https://xmlstar.sourceforge.net/";
+SRC_URI="mirror://sourceforge/xmlstar/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~s390 ~sparc ~x86 
~amd64-linux ~x86-linux ~ppc-macos"
+
+RDEPEND="
+       dev-libs/libxml2
+       dev-libs/libxslt
+       dev-libs/libgcrypt:0=
+       virtual/libiconv"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.6.1-clang16.patch
+)
+
+src_prepare() {
+       default
+
+       # We need to patch use of /usr/lib because it is a problem with
+       # linker lld with profile 17.1 on amd64 (see 
https://bugs.gentoo.org/729600).
+       # The grep sandwich acts as a regression test so that a future
+       # version bump cannot break patching without noticing.
+       if [[ $(get_libdir) != lib ]]; then
+           grep -wq _PREFIX/lib m4/xstar-check-libs.m4 || die
+           sed "s,_PREFIX/lib,_PREFIX/$(get_libdir)," -i 
m4/xstar-check-libs.m4 || die
+           grep -w _PREFIX/lib m4/xstar-check-libs.m4 && die
+       fi
+
+       eautoreconf
+}
+
+src_configure() {
+       append-cppflags $($(tc-getPKG_CONFIG) --cflags libxml-2.0)
+
+       # NOTE: Fully built documentation is already shipped with the tarball:
+       # - doc/xmlstarlet-ug.{pdf,ps,html}
+       # - doc/xmlstarlet.txt
+       # - doc/xmlstarlet.1
+       econf \
+               --disable-build-docs \
+               --disable-static-libs
+}
+
+src_install() {
+       default
+       dosym xml /usr/bin/xmlstarlet
+}

Reply via email to