diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2017-09-17 11:22:37 +0100 |
---|---|---|
committer | Sergei Trofimovich <slyfox@gentoo.org> | 2017-09-17 11:24:10 +0100 |
commit | 032c84c9d3b226b882e5f4f13552754fe8e38804 (patch) | |
tree | 4b2b62609f5c32db818a78ce6521786662d72178 /dev-libs | |
parent | profiles/default/linux/arm: mask USE=mongo for app-admin/diamond (diff) | |
download | gentoo-032c84c9d3b226b882e5f4f13552754fe8e38804.tar.gz gentoo-032c84c9d3b226b882e5f4f13552754fe8e38804.tar.bz2 gentoo-032c84c9d3b226b882e5f4f13552754fe8e38804.zip |
dev-libs/libfilezilla: backported pkg-config cppunit detection, bug #630094
libfilezilla-0.9.2/m4/cppunit.m4 relies on cppunit-config tool presence.
In 1.14.0 cppunit-config was removed and the only way to setup cppunit
environment is to use pkg-config.
Upstream fixed it in revision 8441. I've applied extracted patch as-is:
svn diff -r 8440:8441
And not tests link and pass fine against both cppunit 1.13 and 1.14
Reported-by: Toralf Förster
Closes: https://bugs.gentoo.org/630094
Package-Manager: Portage-2.3.8, Repoman-2.3.3
Diffstat (limited to 'dev-libs')
-rw-r--r-- | dev-libs/libfilezilla/files/libfilezilla-0.9.2-cppunit-pkgconfig.patch | 428 | ||||
-rw-r--r-- | dev-libs/libfilezilla/libfilezilla-0.9.2.ebuild | 11 |
2 files changed, 438 insertions, 1 deletions
diff --git a/dev-libs/libfilezilla/files/libfilezilla-0.9.2-cppunit-pkgconfig.patch b/dev-libs/libfilezilla/files/libfilezilla-0.9.2-cppunit-pkgconfig.patch new file mode 100644 index 000000000000..7c33fdbbe4a4 --- /dev/null +++ b/dev-libs/libfilezilla/files/libfilezilla-0.9.2-cppunit-pkgconfig.patch @@ -0,0 +1,428 @@ +https://bugs.gentoo.org/630094 +Extrtacted as: + svn diff -r 8440:8441 + +Index: m4/cppunit.m4 +=================================================================== +--- a/m4/cppunit.m4 (revision 8440) ++++ b/m4/cppunit.m4 (nonexistent) +@@ -1,89 +0,0 @@ +-dnl +-dnl AM_PATH_CPPUNIT(MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) +-dnl +-AC_DEFUN([AM_PATH_CPPUNIT], +-[ +- +-AC_ARG_WITH(cppunit-prefix,[ --with-cppunit-prefix=PFX Prefix where CppUnit is installed (optional)], +- cppunit_config_prefix="$withval", cppunit_config_prefix="") +-AC_ARG_WITH(cppunit-exec-prefix,[ --with-cppunit-exec-prefix=PFX Exec prefix where CppUnit is installed (optional)], +- cppunit_config_exec_prefix="$withval", cppunit_config_exec_prefix="") +- +- if test x$cppunit_config_exec_prefix != x ; then +- cppunit_config_args="$cppunit_config_args --exec-prefix=$cppunit_config_exec_prefix" +- if test x${CPPUNIT_CONFIG+set} != xset ; then +- CPPUNIT_CONFIG=$cppunit_config_exec_prefix/bin/cppunit-config +- fi +- fi +- if test x$cppunit_config_prefix != x ; then +- cppunit_config_args="$cppunit_config_args --prefix=$cppunit_config_prefix" +- if test x${CPPUNIT_CONFIG+set} != xset ; then +- CPPUNIT_CONFIG=$cppunit_config_prefix/bin/cppunit-config +- fi +- fi +- +- AC_PATH_PROG(CPPUNIT_CONFIG, cppunit-config, no) +- cppunit_version_min=$1 +- +- AC_MSG_CHECKING(for Cppunit - version >= $cppunit_version_min) +- no_cppunit="" +- if test "$CPPUNIT_CONFIG" = "no" ; then +- AC_MSG_RESULT(no) +- no_cppunit=yes +- else +- CPPUNIT_CFLAGS=`$CPPUNIT_CONFIG --cflags` +- CPPUNIT_LIBS=`$CPPUNIT_CONFIG --libs` +- cppunit_version=`$CPPUNIT_CONFIG --version` +- +- cppunit_major_version=`echo $cppunit_version | \ +- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` +- cppunit_minor_version=`echo $cppunit_version | \ +- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` +- cppunit_micro_version=`echo $cppunit_version | \ +- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` +- +- cppunit_major_min=`echo $cppunit_version_min | \ +- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` +- if test "x${cppunit_major_min}" = "x" ; then +- cppunit_major_min=0 +- fi +- +- cppunit_minor_min=`echo $cppunit_version_min | \ +- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` +- if test "x${cppunit_minor_min}" = "x" ; then +- cppunit_minor_min=0 +- fi +- +- cppunit_micro_min=`echo $cppunit_version_min | \ +- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` +- if test "x${cppunit_micro_min}" = "x" ; then +- cppunit_micro_min=0 +- fi +- +- cppunit_version_proper=`expr \ +- $cppunit_major_version \> $cppunit_major_min \| \ +- $cppunit_major_version \= $cppunit_major_min \& \ +- $cppunit_minor_version \> $cppunit_minor_min \| \ +- $cppunit_major_version \= $cppunit_major_min \& \ +- $cppunit_minor_version \= $cppunit_minor_min \& \ +- $cppunit_micro_version \>= $cppunit_micro_min ` +- +- if test "$cppunit_version_proper" = "1" ; then +- AC_MSG_RESULT([$cppunit_major_version.$cppunit_minor_version.$cppunit_micro_version]) +- else +- AC_MSG_RESULT(no) +- no_cppunit=yes +- fi +- fi +- +- if test "x$no_cppunit" = x ; then +- ifelse([$2], , :, [$2]) +- else +- CPPUNIT_CFLAGS="" +- CPPUNIT_LIBS="" +- ifelse([$3], , :, [$3]) +- fi +- +- AC_SUBST(CPPUNIT_CFLAGS) +- AC_SUBST(CPPUNIT_LIBS) +-]) + +Property changes on: m4/cppunit.m4 +___________________________________________________________________ +Deleted: svn:eol-style +## -1 +0,0 ## +-native +\ No newline at end of property +Index: m4/pkg.m4 +=================================================================== +--- a/m4/pkg.m4 (nonexistent) ++++ b/m4/pkg.m4 (revision 8441) +@@ -0,0 +1,275 @@ ++# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- ++# serial 12 (pkg-config-0.29.2) ++ ++dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>. ++dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com> ++dnl ++dnl This program is free software; you can redistribute it and/or modify ++dnl it under the terms of the GNU General Public License as published by ++dnl the Free Software Foundation; either version 2 of the License, or ++dnl (at your option) any later version. ++dnl ++dnl This program is distributed in the hope that it will be useful, but ++dnl WITHOUT ANY WARRANTY; without even the implied warranty of ++dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++dnl General Public License for more details. ++dnl ++dnl You should have received a copy of the GNU General Public License ++dnl along with this program; if not, write to the Free Software ++dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ++dnl 02111-1307, USA. ++dnl ++dnl As a special exception to the GNU General Public License, if you ++dnl distribute this file as part of a program that contains a ++dnl configuration script generated by Autoconf, you may include it under ++dnl the same distribution terms that you use for the rest of that ++dnl program. ++ ++dnl PKG_PREREQ(MIN-VERSION) ++dnl ----------------------- ++dnl Since: 0.29 ++dnl ++dnl Verify that the version of the pkg-config macros are at least ++dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's ++dnl installed version of pkg-config, this checks the developer's version ++dnl of pkg.m4 when generating configure. ++dnl ++dnl To ensure that this macro is defined, also add: ++dnl m4_ifndef([PKG_PREREQ], ++dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) ++dnl ++dnl See the "Since" comment for each macro you use to see what version ++dnl of the macros you require. ++m4_defun([PKG_PREREQ], ++[m4_define([PKG_MACROS_VERSION], [0.29.2]) ++m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, ++ [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ++])dnl PKG_PREREQ ++ ++dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) ++dnl ---------------------------------- ++dnl Since: 0.16 ++dnl ++dnl Search for the pkg-config tool and set the PKG_CONFIG variable to ++dnl first found in the path. Checks that the version of pkg-config found ++dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is ++dnl used since that's the first version where most current features of ++dnl pkg-config existed. ++AC_DEFUN([PKG_PROG_PKG_CONFIG], ++[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) ++m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) ++m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) ++AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) ++AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) ++AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) ++ ++if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then ++ AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) ++fi ++if test -n "$PKG_CONFIG"; then ++ _pkg_min_version=m4_default([$1], [0.9.0]) ++ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) ++ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then ++ AC_MSG_RESULT([yes]) ++ else ++ AC_MSG_RESULT([no]) ++ PKG_CONFIG="" ++ fi ++fi[]dnl ++])dnl PKG_PROG_PKG_CONFIG ++ ++dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) ++dnl ------------------------------------------------------------------- ++dnl Since: 0.18 ++dnl ++dnl Check to see whether a particular set of modules exists. Similar to ++dnl PKG_CHECK_MODULES(), but does not set variables or print errors. ++dnl ++dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) ++dnl only at the first occurence in configure.ac, so if the first place ++dnl it's called might be skipped (such as if it is within an "if", you ++dnl have to call PKG_CHECK_EXISTS manually ++AC_DEFUN([PKG_CHECK_EXISTS], ++[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl ++if test -n "$PKG_CONFIG" && \ ++ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then ++ m4_default([$2], [:]) ++m4_ifvaln([$3], [else ++ $3])dnl ++fi]) ++ ++dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) ++dnl --------------------------------------------- ++dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting ++dnl pkg_failed based on the result. ++m4_define([_PKG_CONFIG], ++[if test -n "$$1"; then ++ pkg_cv_[]$1="$$1" ++ elif test -n "$PKG_CONFIG"; then ++ PKG_CHECK_EXISTS([$3], ++ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` ++ test "x$?" != "x0" && pkg_failed=yes ], ++ [pkg_failed=yes]) ++ else ++ pkg_failed=untried ++fi[]dnl ++])dnl _PKG_CONFIG ++ ++dnl _PKG_SHORT_ERRORS_SUPPORTED ++dnl --------------------------- ++dnl Internal check to see if pkg-config supports short errors. ++AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], ++[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) ++if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then ++ _pkg_short_errors_supported=yes ++else ++ _pkg_short_errors_supported=no ++fi[]dnl ++])dnl _PKG_SHORT_ERRORS_SUPPORTED ++ ++ ++dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], ++dnl [ACTION-IF-NOT-FOUND]) ++dnl -------------------------------------------------------------- ++dnl Since: 0.4.0 ++dnl ++dnl Note that if there is a possibility the first call to ++dnl PKG_CHECK_MODULES might not happen, you should be sure to include an ++dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac ++AC_DEFUN([PKG_CHECK_MODULES], ++[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl ++AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl ++AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl ++ ++pkg_failed=no ++AC_MSG_CHECKING([for $2]) ++ ++_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) ++_PKG_CONFIG([$1][_LIBS], [libs], [$2]) ++ ++m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS ++and $1[]_LIBS to avoid the need to call pkg-config. ++See the pkg-config man page for more details.]) ++ ++if test $pkg_failed = yes; then ++ AC_MSG_RESULT([no]) ++ _PKG_SHORT_ERRORS_SUPPORTED ++ if test $_pkg_short_errors_supported = yes; then ++ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` ++ else ++ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` ++ fi ++ # Put the nasty error message in config.log where it belongs ++ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD ++ ++ m4_default([$4], [AC_MSG_ERROR( ++[Package requirements ($2) were not met: ++ ++$$1_PKG_ERRORS ++ ++Consider adjusting the PKG_CONFIG_PATH environment variable if you ++installed software in a non-standard prefix. ++ ++_PKG_TEXT])[]dnl ++ ]) ++elif test $pkg_failed = untried; then ++ AC_MSG_RESULT([no]) ++ m4_default([$4], [AC_MSG_FAILURE( ++[The pkg-config script could not be found or is too old. Make sure it ++is in your PATH or set the PKG_CONFIG environment variable to the full ++path to pkg-config. ++ ++_PKG_TEXT ++ ++To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl ++ ]) ++else ++ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS ++ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS ++ AC_MSG_RESULT([yes]) ++ $3 ++fi[]dnl ++])dnl PKG_CHECK_MODULES ++ ++ ++dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], ++dnl [ACTION-IF-NOT-FOUND]) ++dnl --------------------------------------------------------------------- ++dnl Since: 0.29 ++dnl ++dnl Checks for existence of MODULES and gathers its build flags with ++dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags ++dnl and VARIABLE-PREFIX_LIBS from --libs. ++dnl ++dnl Note that if there is a possibility the first call to ++dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to ++dnl include an explicit call to PKG_PROG_PKG_CONFIG in your ++dnl configure.ac. ++AC_DEFUN([PKG_CHECK_MODULES_STATIC], ++[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl ++_save_PKG_CONFIG=$PKG_CONFIG ++PKG_CONFIG="$PKG_CONFIG --static" ++PKG_CHECK_MODULES($@) ++PKG_CONFIG=$_save_PKG_CONFIG[]dnl ++])dnl PKG_CHECK_MODULES_STATIC ++ ++ ++dnl PKG_INSTALLDIR([DIRECTORY]) ++dnl ------------------------- ++dnl Since: 0.27 ++dnl ++dnl Substitutes the variable pkgconfigdir as the location where a module ++dnl should install pkg-config .pc files. By default the directory is ++dnl $libdir/pkgconfig, but the default can be changed by passing ++dnl DIRECTORY. The user can override through the --with-pkgconfigdir ++dnl parameter. ++AC_DEFUN([PKG_INSTALLDIR], ++[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) ++m4_pushdef([pkg_description], ++ [pkg-config installation directory @<:@]pkg_default[@:>@]) ++AC_ARG_WITH([pkgconfigdir], ++ [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, ++ [with_pkgconfigdir=]pkg_default) ++AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) ++m4_popdef([pkg_default]) ++m4_popdef([pkg_description]) ++])dnl PKG_INSTALLDIR ++ ++ ++dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) ++dnl -------------------------------- ++dnl Since: 0.27 ++dnl ++dnl Substitutes the variable noarch_pkgconfigdir as the location where a ++dnl module should install arch-independent pkg-config .pc files. By ++dnl default the directory is $datadir/pkgconfig, but the default can be ++dnl changed by passing DIRECTORY. The user can override through the ++dnl --with-noarch-pkgconfigdir parameter. ++AC_DEFUN([PKG_NOARCH_INSTALLDIR], ++[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) ++m4_pushdef([pkg_description], ++ [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) ++AC_ARG_WITH([noarch-pkgconfigdir], ++ [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, ++ [with_noarch_pkgconfigdir=]pkg_default) ++AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) ++m4_popdef([pkg_default]) ++m4_popdef([pkg_description]) ++])dnl PKG_NOARCH_INSTALLDIR ++ ++ ++dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, ++dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) ++dnl ------------------------------------------- ++dnl Since: 0.28 ++dnl ++dnl Retrieves the value of the pkg-config variable for the given module. ++AC_DEFUN([PKG_CHECK_VAR], ++[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl ++AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl ++ ++_PKG_CONFIG([$1], [variable="][$3]["], [$2]) ++AS_VAR_COPY([$1], [pkg_cv_][$1]) ++ ++AS_VAR_IF([$1], [""], [$5], [$4])dnl ++])dnl PKG_CHECK_VAR + +Property changes on: m4/pkg.m4 +___________________________________________________________________ +Added: svn:eol-style +## -0,0 +1 ## ++native +\ No newline at end of property +Index: configure.ac +=================================================================== +--- a/configure.ac (revision 8440) ++++ b/configure.ac (revision 8441) +@@ -178,13 +178,21 @@ + fi + fi + ++# Require pkg-config ++# ------------------ ++PKG_PROG_PKG_CONFIG + ++# Do not abort while not having runtime dependency ++#if test -z "$PKG_CONFIG"; then ++# AC_MSG_ERROR([pkg-config not found. pkg-config is required to check for some dependencies.]) ++#fi ++ ++ + # CppUnit tests + # ------------- + +-AM_PATH_CPPUNIT([1.10.2], [has_cppunit="yes"]) ++PKG_CHECK_MODULES(CPPUNIT, [cppunit >= 1.13.0], [has_cppunit=yes],[:]) + +- + # Doxygen + # ------- + +@@ -195,7 +203,6 @@ + # ---------------------------- + + AM_CONDITIONAL(USE_RESOURCEFILE, test "$use_resourcefile" = "true") +-AM_CONDITIONAL(HAS_CPPUNIT, [test "$has_cppunit" = "yes"]) + + AC_CONFIG_FILES( + Makefile diff --git a/dev-libs/libfilezilla/libfilezilla-0.9.2.ebuild b/dev-libs/libfilezilla/libfilezilla-0.9.2.ebuild index 221991c1845a..902b8f0163b4 100644 --- a/dev-libs/libfilezilla/libfilezilla-0.9.2.ebuild +++ b/dev-libs/libfilezilla/libfilezilla-0.9.2.ebuild @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=6 -inherit flag-o-matic +inherit autotools flag-o-matic DESCRIPTION="C++ library offering some basic functionality for platform-independent programs" HOMEPAGE="https://lib.filezilla-project.org/" @@ -18,6 +18,8 @@ RDEPEND="" DEPEND="${RDEPEND} test? ( dev-util/cppunit )" +PATCHES=("${FILESDIR}"/${PN}-0.9.2-cppunit-pkgconfig.patch) + pkg_pretend() { if [[ ${MERGE_TYPE} != binary ]]; then if ! test-flag-CXX -std=c++14; then @@ -28,3 +30,10 @@ pkg_pretend() { fi fi } + +src_prepare() { + default + + # cppunit patch changes .m4 + eautoreconf +} |