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 +#}
