public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/xmlrpc-c/files/, dev-libs/xmlrpc-c/
@ 2022-09-23  1:18 Sam James
  0 siblings, 0 replies; only message in thread
From: Sam James @ 2022-09-23  1:18 UTC (permalink / raw
  To: gentoo-commits

commit:     c9b83345ff0a30dd9625d2220f00867c710705d8
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Sep 23 01:07:09 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Sep 23 01:18:24 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c9b83345

dev-libs/xmlrpc-c: use pkg-config to find deps

Closes: https://bugs.gentoo.org/870253
Thanks-to: Mark Yacoub <markyacoub <AT> chromium.org>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../xmlrpc-c-1.51.06-pkg-config-libxml2.patch      | 225 +++++++++++++++++++++
 .../xmlrpc-c-1.51.06-pkg-config-openssl.patch      |  46 +++++
 dev-libs/xmlrpc-c/xmlrpc-c-1.51.06-r3.ebuild       |  88 ++++++++
 dev-libs/xmlrpc-c/xmlrpc-c-1.54.05-r1.ebuild       |  88 ++++++++
 4 files changed, 447 insertions(+)

diff --git a/dev-libs/xmlrpc-c/files/xmlrpc-c-1.51.06-pkg-config-libxml2.patch b/dev-libs/xmlrpc-c/files/xmlrpc-c-1.51.06-pkg-config-libxml2.patch
new file mode 100644
index 000000000000..df8d992c62d8
--- /dev/null
+++ b/dev-libs/xmlrpc-c/files/xmlrpc-c-1.51.06-pkg-config-libxml2.patch
@@ -0,0 +1,225 @@
+https://sourceforge.net/p/xmlrpc-c/code/3151
+https://bugs.gentoo.org/870253
+--- a/common.mk
++++ b/common.mk
+@@ -281,7 +281,7 @@
+         -L$(BLDDIR)/lib/expat/xmlparse -lxmlrpc_xmlparse \
+         -L$(BLDDIR)/lib/expat/xmltok   -lxmlrpc_xmltok
+ else
+-  LDLIBS_XML = $(shell xml2-config --libs)
++  LDLIBS_XML = $(shell ${PKG_CONFIG} libxml-2.0 --libs)
+ endif
+ 
+ # LIBXMLRPC_UTIL_LIBDEP is the string of linker options you need on the link
+--- a/configure
++++ b/configure
+@@ -628,9 +628,8 @@
+ CC_WARN_FLAGS
+ CXX_COMPILER_GNU
+ C_COMPILER_GNU
++HAVE_LIBWWW_SSL_DEFINE
+ ENABLE_LIBXML2_BACKEND
+-have_xml2_config
+-HAVE_LIBWWW_SSL_DEFINE
+ HAVE_ABYSS_OPENSSL_DEFINE
+ MUST_BUILD_ABYSS_OPENSSL
+ HAVE_OPENSSL
+@@ -781,8 +780,8 @@
+ enable_cplusplus
+ enable_abyss_threads
+ enable_abyss_openssl
++enable_libxml2_backend
+ with_libwww_ssl
+-enable_libxml2_backend
+ '
+       ac_precious_vars='build_alias
+ host_alias
+@@ -6053,62 +6053,39 @@
+ fi
+
+
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Libxml2 library" >&5
++$as_echo_n "checking for Libxml2 library... " >&6; }
++
++if ${PKG_CONFIG} libxml-2.0; then
++  HAVE_LIBXML2=yes
++else
++  HAVE_LIBXML2=no
++fi
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_LIBXML2" >&5
++$as_echo "$HAVE_LIBXML2" >&6; }
++
++# Check whether --enable-libxml2-backend was given.
++if test "${enable_libxml2_backend+set}" = set; then :
++  enableval=$enable_libxml2_backend;
++else
++  enable_libxml2_backend=no
++fi
++
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build the libxml2 backend" >&5
++$as_echo_n "checking whether to build the libxml2 backend... " >&6; }
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_libxml2_backend" >&5
++$as_echo "$enable_libxml2_backend" >&6; }
++
++if test $enable_libxml2_backend = yes; then
++  if test $HAVE_LIBXML2 = no; then
++    as_fn_error $? "You specified --enable-libxml2_backend, but don't appear to have libxml2 installed (no pkg-config file for it in your pkg-config search path), so we cannot not build for libxml2" "$LINENO" 5
++  fi
++fi
++
++ENABLE_LIBXML2_BACKEND=$enable_libxml2_backend
++
++
+-# Check whether --enable-libxml2-backend was given.
+-if test "${enable_libxml2_backend+set}" = set; then :
+-  enableval=$enable_libxml2_backend;
+-else
+-  enable_libxml2_backend=no
+-fi
+-
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build the libxml2 backend" >&5
+-$as_echo_n "checking whether to build the libxml2 backend... " >&6; }
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_libxml2_backend" >&5
+-$as_echo "$enable_libxml2_backend" >&6; }
+-
+-if test $enable_libxml2_backend = yes; then
+-  # Extract the first word of "xml2-config", so it can be a program name with args.
+-set dummy xml2-config; ac_word=$2
+-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+-$as_echo_n "checking for $ac_word... " >&6; }
+-if ${ac_cv_prog_have_xml2_config+:} false; then :
+-  $as_echo_n "(cached) " >&6
+-else
+-  if test -n "$have_xml2_config"; then
+-  ac_cv_prog_have_xml2_config="$have_xml2_config" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-    for ac_exec_ext in '' $ac_executable_extensions; do
+-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_have_xml2_config="yes"
+-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-  done
+-IFS=$as_save_IFS
+-
+-  test -z "$ac_cv_prog_have_xml2_config" && ac_cv_prog_have_xml2_config="no"
+-fi
+-fi
+-have_xml2_config=$ac_cv_prog_have_xml2_config
+-if test -n "$have_xml2_config"; then
+-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_xml2_config" >&5
+-$as_echo "$have_xml2_config" >&6; }
+-else
+-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+-$as_echo "no" >&6; }
+-fi
+-
+-
+-  if test $have_xml2_config = no; then
+-    as_fn_error $? "You specified --enable-libxml2_backend, but don't appear to have libxml2 installed (no working xml2-config in your command search path), so we cannot not build for libxml2" "$LINENO" 5
+-  fi
+-fi
+-ENABLE_LIBXML2_BACKEND=$enable_libxml2_backend
+ 
+ 
+ C_COMPILER_GNU=$ac_cv_c_compiler_gnu
+--- a/configure.in
++++ b/configure.in
+@@ -742,6 +742,36 @@
+ 
+ 
+ dnl =======================================================================
++dnl Finding Libxml2
++dnl =======================================================================
++
++AC_MSG_CHECKING(for Libxml2 library)
++
++if ${PKG_CONFIG} libxml-2.0; then
++  HAVE_LIBXML2=yes
++else
++  HAVE_LIBXML2=no
++fi
++
++AC_MSG_RESULT($HAVE_LIBXML2)
++
++AC_ARG_ENABLE(libxml2-backend,
++  [  --enable-libxml2-backend  Use libxml2 instead of built-in expat], ,
++enable_libxml2_backend=no)
++AC_MSG_CHECKING(whether to build the libxml2 backend)
++AC_MSG_RESULT($enable_libxml2_backend)
++
++if test $enable_libxml2_backend = yes; then
++  if test $HAVE_LIBXML2 = no; then
++    AC_MSG_ERROR([You specified --enable-libxml2_backend, but don't appear to have libxml2 installed (no pkg-config file for it in your pkg-config search path), so we cannot not build for libxml2])
++  fi
++fi
++
++ENABLE_LIBXML2_BACKEND=$enable_libxml2_backend
++AC_SUBST(ENABLE_LIBXML2_BACKEND)
++
++
++dnl =======================================================================
+ dnl Checks for build options.
+ dnl =======================================================================
+ 
+@@ -763,22 +793,6 @@
+ fi
+ AC_SUBST(HAVE_LIBWWW_SSL_DEFINE)
+ 
+-dnl Check to see if we should build the libxml2 backend.
+-AC_ARG_ENABLE(libxml2-backend,
+-  [  --enable-libxml2-backend  Use libxml2 instead of built-in expat], ,
+-enable_libxml2_backend=no)
+-AC_MSG_CHECKING(whether to build the libxml2 backend)
+-AC_MSG_RESULT($enable_libxml2_backend)
+-
+-if test $enable_libxml2_backend = yes; then
+-  AC_CHECK_PROG(have_xml2_config, xml2-config, yes, no)
+-  if test $have_xml2_config = no; then
+-    AC_MSG_ERROR([You specified --enable-libxml2_backend, but don't appear to have libxml2 installed (no working xml2-config in your command search path), so we cannot not build for libxml2])
+-  fi
+-fi
+-ENABLE_LIBXML2_BACKEND=$enable_libxml2_backend
+-AC_SUBST(ENABLE_LIBXML2_BACKEND)
+-
+ dnl =======================================================================
+ dnl Compiler information
+ dnl =======================================================================
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -68,7 +68,7 @@
+ 
+ ifeq ($(ENABLE_LIBXML2_BACKEND),yes)
+   XMLRPC_XML_PARSER = xmlrpc_libxml2
+-  XML_PARSER_LIBDEP = $(shell xml2-config --libs)
++  XML_PARSER_LIBDEP = $(shell ${PKG_CONFIG} libxml-2.0 --libs)
+   XML_PARSER_LIBDEP_DEP =
+   XML_PKGCONFIG_REQ = libxml-2.0
+ else
+@@ -276,7 +276,7 @@
+   -Isrcdir/lib/util/include \
+ 
+ ifeq ($(ENABLE_LIBXML2_BACKEND),yes)
+-  LIBXML_INCLUDES = $(shell xml2-config --cflags)
++  LIBXML_INCLUDES = $(shell ${PKG_CONFIG} libxml-2.0 --cflags)
+ else
+   LIBXML_INCLUDES = -Isrcdir/lib/expat/xmlparse
+ endif
+--- a/src/cpp/Makefile
++++ b/src/cpp/Makefile
+@@ -46,7 +46,7 @@
+ endif
+ 
+ ifeq ($(ENABLE_LIBXML2_BACKEND),yes)
+-  XML_PARSER_LIBDEP = $(shell xml2-config --libs)
++  XML_PARSER_LIBDEP = $(shell ${PKG_CONFIG} libxml-2.0 --libs)
+ else
+   XML_PARSER_LIBDEP = \
+     -L$(BLDDIR)/lib/expat/xmlparse -lxmlrpc_xmlparse \

diff --git a/dev-libs/xmlrpc-c/files/xmlrpc-c-1.51.06-pkg-config-openssl.patch b/dev-libs/xmlrpc-c/files/xmlrpc-c-1.51.06-pkg-config-openssl.patch
new file mode 100644
index 000000000000..b39ae428f29b
--- /dev/null
+++ b/dev-libs/xmlrpc-c/files/xmlrpc-c-1.51.06-pkg-config-openssl.patch
@@ -0,0 +1,46 @@
+https://sourceforge.net/p/xmlrpc-c/code/3152
+https://bugs.gentoo.org/870253
+--- a/configure
++++ b/configure
+@@ -5974,11 +5974,11 @@
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL library" >&5
+ $as_echo_n "checking for OpenSSL library... " >&6; }
+
+-if pkg-config openssl; then
+-  HAVE_OPENSSL=yes
+-  OPENSSL_LDADD=$(pkg-config openssl --libs)
+-
+-  OPENSSL_CFLAGS=$(pkg-config openssl --cflags)
++if ${PKG_CONFIG} openssl; then
++  HAVE_OPENSSL=yes
++  OPENSSL_LDADD=$(${PKG_CONFIG} openssl --libs)
++ 
++  OPENSSL_CFLAGS=$(${PKG_CONFIG} openssl --cflags)
+
+ else
+   HAVE_OPENSSL=no
+
+--- a/config.mk.in
++++ b/config.mk.in
+@@ -59,6 +59,8 @@
+ C_COMPILER_GNU = @C_COMPILER_GNU@
+ CXX_COMPILER_GNU = @CXX_COMPILER_GNU@
+ 
++PKG_CONFIG ?= pkg-config
++
+ # Stuff 'configure' figured out via AC_CANONICAL_HOST macro in configure.in
+ # and config.guess program and 'configure' command options:
+
+--- a/lib/openssl/Makefile
++++ b/lib/openssl/Makefile
+@@ -25,8 +25,8 @@
+ 
+ MAJ := 1
+ 
+-OPENSSL_INCLUDES := $(shell pkg-config openssl --cflags)
+-OPENSSL_LIBS     := $(shell pkg-config openssl --libs)
++OPENSSL_INCLUDES := $(shell $(PKG_CONFIG) openssl --cflags)
++OPENSSL_LIBS     := $(shell $(PKG_CONFIG) openssl --libs)
+ 
+ include $(SRCDIR)/common.mk
+ 

diff --git a/dev-libs/xmlrpc-c/xmlrpc-c-1.51.06-r3.ebuild b/dev-libs/xmlrpc-c/xmlrpc-c-1.51.06-r3.ebuild
new file mode 100644
index 000000000000..2f376e845193
--- /dev/null
+++ b/dev-libs/xmlrpc-c/xmlrpc-c-1.51.06-r3.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit multilib-minimal toolchain-funcs
+
+# Upstream maintains 3 release channels: http://xmlrpc-c.sourceforge.net/release.html
+# 1. Only the "Super Stable" series is released as a tarball
+# 2. SVN tagging of releases seems spotty: http://svn.code.sf.net/p/xmlrpc-c/code/release_number/
+# Because of this, we are following the "Super Stable" release channel
+
+DESCRIPTION="A lightweight RPC library based on XML and HTTP"
+HOMEPAGE="http://xmlrpc-c.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tgz"
+
+LICENSE="BSD"
+SLOT="0/4.51"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+
+IUSE="abyss +cgi +curl +cxx +libxml2 threads test"
+
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="test? ( abyss curl cxx )"
+
+RDEPEND="
+	sys-libs/ncurses:0=[${MULTILIB_USEDEP}]
+	sys-libs/readline:0=[${MULTILIB_USEDEP}]
+	curl? ( net-misc/curl[${MULTILIB_USEDEP}] )
+	libxml2? ( dev-libs/libxml2[${MULTILIB_USEDEP}] )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-1.51.06-pkg-config-libxml2.patch
+	"${FILESDIR}"/${PN}-1.51.06-pkg-config-openssl.patch
+)
+
+pkg_setup() {
+	use curl || ewarn "Curl support disabled: No client library will be built"
+}
+
+src_prepare() {
+	sed -i \
+		-e "/CFLAGS_COMMON/s|-g -O3$||" \
+		-e "/CXXFLAGS_COMMON/s|-g$||" \
+		common.mk || die
+
+	default
+
+	# Out-of-source install phase is broken
+	multilib_copy_sources
+}
+
+multilib_src_configure() {
+	tc-export PKG_CONFIG
+
+	ECONF_SOURCE="${S}" \
+	econf \
+		--disable-libwww-client \
+		--disable-wininet-client \
+		--without-libwww-ssl \
+		$(use_enable abyss abyss-server) \
+		$(use_enable cgi cgi-server) \
+		$(use_enable curl curl-client) \
+		$(use_enable cxx cplusplus) \
+		$(use_enable libxml2 libxml2-backend) \
+		$(use_enable threads abyss-threads)
+}
+
+multilib_src_compile() {
+	default_src_compile
+	# Tools building is broken in this release
+	#multilib_is_native_abi && use tools && emake -rC "${S}"/tools
+}
+
+multilib_src_test() {
+	# Needed for tests, bug #836469
+	cp "${BUILD_DIR}"/include/xmlrpc-c/config.h "${S}"/include/xmlrpc-c || die
+	default_src_test
+}
+
+#multilib_src_install_all() {
+#	# Tools building is broken in this release
+#	#use tools && emake DESTDIR="${D}" -rC "${S}"/tools install
+#}

diff --git a/dev-libs/xmlrpc-c/xmlrpc-c-1.54.05-r1.ebuild b/dev-libs/xmlrpc-c/xmlrpc-c-1.54.05-r1.ebuild
new file mode 100644
index 000000000000..c473a0e5f5f2
--- /dev/null
+++ b/dev-libs/xmlrpc-c/xmlrpc-c-1.54.05-r1.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit multilib-minimal toolchain-funcs
+
+# Upstream maintains 3 release channels: http://xmlrpc-c.sourceforge.net/release.html
+# 1. Only the "Super Stable" series is released as a tarball
+# 2. SVN tagging of releases seems spotty: http://svn.code.sf.net/p/xmlrpc-c/code/release_number/
+# Because of this, we are following the "Super Stable" release channel
+
+DESCRIPTION="A lightweight RPC library based on XML and HTTP"
+HOMEPAGE="http://xmlrpc-c.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tgz"
+
+LICENSE="BSD"
+SLOT="0/4.54"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+
+IUSE="abyss +cgi +curl +cxx +libxml2 threads test"
+
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="test? ( abyss curl cxx )"
+
+RDEPEND="
+	sys-libs/ncurses:0=[${MULTILIB_USEDEP}]
+	sys-libs/readline:0=[${MULTILIB_USEDEP}]
+	curl? ( net-misc/curl[${MULTILIB_USEDEP}] )
+	libxml2? ( dev-libs/libxml2[${MULTILIB_USEDEP}] )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-1.51.06-pkg-config-libxml2.patch
+	"${FILESDIR}"/${PN}-1.51.06-pkg-config-openssl.patch
+)
+
+pkg_setup() {
+	use curl || ewarn "Curl support disabled: No client library will be built"
+}
+
+src_prepare() {
+	sed -i \
+		-e "/CFLAGS_COMMON/s|-g -O3$||" \
+		-e "/CXXFLAGS_COMMON/s|-g$||" \
+		common.mk || die
+
+	default
+
+	# Out-of-source install phase is broken
+	multilib_copy_sources
+}
+
+multilib_src_configure() {
+	tc-export PKG_CONFIG
+
+	ECONF_SOURCE="${S}" \
+	econf \
+		--disable-libwww-client \
+		--disable-wininet-client \
+		--without-libwww-ssl \
+		$(use_enable abyss abyss-server) \
+		$(use_enable cgi cgi-server) \
+		$(use_enable curl curl-client) \
+		$(use_enable cxx cplusplus) \
+		$(use_enable libxml2 libxml2-backend) \
+		$(use_enable threads abyss-threads)
+}
+
+multilib_src_compile() {
+	default_src_compile
+	# Tools building is broken in this release
+	#multilib_is_native_abi && use tools && emake -rC "${S}"/tools
+}
+
+multilib_src_test() {
+	# Needed for tests, bug #836469
+	cp "${BUILD_DIR}"/include/xmlrpc-c/config.h "${S}"/include/xmlrpc-c || die
+	default_src_test
+}
+
+#multilib_src_install_all() {
+#	# Tools building is broken in this release
+#	#use tools && emake DESTDIR="${D}" -rC "${S}"/tools install
+#}


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2022-09-23  1:18 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-09-23  1:18 [gentoo-commits] repo/gentoo:master commit in: dev-libs/xmlrpc-c/files/, dev-libs/xmlrpc-c/ Sam James

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox