| From f2fe2c648454bc5885366c93d4075ca5777ddbda Mon Sep 17 00:00:00 2001 |
| From: Neal Gompa <ngompa13@gmail.com> |
| Date: Sun, 29 Apr 2018 15:52:26 -0400 |
| Subject: [PATCH] Fix TDNF build configuration to use pkgconfig data to find |
| dependencies |
| |
| With the notable exception of identifying that we're using rpm.org rpm, |
| all the configuration of how to use dependencies to compile and link |
| TDNF and its libraries should come from pkgconfig. That way, TDNF |
| will reliably build across more platforms. |
| |
| In addition, trivial changes to drop -Werror and specify that -std=gnu99 |
| is required for the build are included so that it will compile properly |
| on compilers that do not default to newer C standards and not make |
| assumptions about what is coerced from a warning to an error by default. |
| |
| client/Makefile.am | 5 ++--- |
| configure.ac | 25 +++++++++++++------------ |
| solv/Makefile.am | 4 ++-- |
| tdnf-cli-libs.pc.in | 2 +- |
| tdnf.pc.in | 2 +- |
| 5 files changed, 19 insertions(+), 19 deletions(-) |
| |
| diff --git a/client/Makefile.am b/client/Makefile.am |
| index 9bd3deb..6857c3f 100644 |
| |
| |
| @@ -26,6 +26,5 @@ libtdnf_la_LIBADD = \ |
| @top_builddir@/solv/libtdnfsolv.la \ |
| $(top_builddir)/common/libcommon.la \ |
| @LIBCURL_LIBS@ \ |
| - -lrpm \ |
| - -lsolv \ |
| - -lsolvext |
| + @RPM_LIBS@ \ |
| + @LIBSOLVEXT_LIBS@ |
| diff --git a/configure.ac b/configure.ac |
| index d78bb8c..d5c4a51 100644 |
| |
| |
| @@ -2,7 +2,7 @@ AC_INIT(tdnf, 2.0.0) |
| AC_MSG_NOTICE([tdnf configuration]) |
| |
| AC_CANONICAL_SYSTEM |
| -AM_INIT_AUTOMAKE([-Wall -Werror foreign]) |
| +AM_INIT_AUTOMAKE([-Wall foreign]) |
| |
| AC_CONFIG_TESTDIR(tests) |
| |
| @@ -15,29 +15,30 @@ AC_PROG_LIBTOOL |
| CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_GNU_SOURCE -fPIC" |
| |
| AM_CPPFLAGS="$AM_CPPFLAGS -I${top_srcdir}/include" |
| -AM_CFLAGS="$AM_CFLAGS -Wall -Werror -fno-strict-aliasing" |
| +AM_CFLAGS="$AM_CFLAGS -std=gnu99 -Wall -fno-strict-aliasing" |
| |
| CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_GNU_SOURCE -fPIC" |
| AC_SUBST(AM_CPPFLAGS) |
| AC_SUBST(AM_CFLAGS) |
| |
| #libsolv |
| -echo "Looking for libsolv headers" |
| -AC_CHECK_HEADERS(solv/pool.h) |
| +PKG_CHECK_MODULES([LIBSOLV], [libsolv], [have_libsolv=yes], [have_libsolv=no]) |
| +PKG_CHECK_MODULES([LIBSOLVEXT], [libsolvext], [have_libsolvext=yes], [have_libsolvext=no]) |
| +AM_CONDITIONAL([LIBSOLV], [test "$have_libsolv" = "yes"]) |
| +AM_CONDITIONAL([LIBSOLVEXT], [test "$have_libsolvext" = "yes"]) |
| |
| -echo "Looking for libsolv libs" |
| -AC_CHECK_LIB(solv, pool_create) |
| - |
| -#licurl |
| +#libcurl |
| PKG_CHECK_MODULES([LIBCURL], [libcurl], [have_libcurl=yes], [have_libcurl=no]) |
| AM_CONDITIONAL([LIBCURL], [test "$have_libcurl" = "yes"]) |
| |
| #rpm |
| -echo "Looking for librpm headers" |
| -AC_CHECK_HEADERS(rpm/rpmlib.h) |
| +PKG_CHECK_MODULES([RPM], [rpm], [have_rpm=yes], [have_rpm=no]) |
| +AM_CONDITIONAL([RPM], [test "$have_rpm" = "yes"]) |
| + |
| +# test to prove rpm.org rpm |
| +echo "Looking for rpm.org librpm headers" |
| +AC_CHECK_HEADERS(rpm/header.h) |
| |
| -echo "Looking for librpm libs" |
| -AC_CHECK_LIB(rpm, rpmtsCreate) |
| |
| #makefiles |
| AC_CONFIG_FILES([Makefile |
| diff --git a/solv/Makefile.am b/solv/Makefile.am |
| index 6625b3b..ef546a9 100644 |
| |
| |
| @@ -10,5 +10,5 @@ libtdnfsolv_la_SOURCES = \ |
| |
| libtdnfsolv_la_LDFLAGS = \ |
| -static \ |
| - -lrpm \ |
| - -lsolv |
| + @RPM_LIBS@ \ |
| + @LIBSOLV_LIBS@ |
| diff --git a/tdnf-cli-libs.pc.in b/tdnf-cli-libs.pc.in |
| index 0912b68..4523e4d 100644 |
| |
| |
| @@ -6,6 +6,6 @@ includedir=@includedir@/tdnf |
| Name: tdnf-cli-libs |
| Description: tdnf cli libs |
| Version: @VERSION@ |
| -Requires: |
| +Requires: tdnf |
| Libs: -L${libdir} -ltdnfcli |
| Cflags: -I${includedir} |
| diff --git a/tdnf.pc.in b/tdnf.pc.in |
| index 811568d..4ad7a07 100644 |
| |
| |
| @@ -6,6 +6,6 @@ includedir=@includedir@/tdnf |
| Name: tdnf |
| Description: tiny dandified yum |
| Version: @VERSION@ |
| -Requires:libsolv rpm |
| +Requires: libsolv libsolvext rpm libcurl |
| Libs: -L${libdir} -ltdnf |
| Cflags: -I${includedir} |
| -- |
| 2.17.0 |
| |