Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217From 6a426b8093cf6633425d08a2d33ed24d200473a0 Mon Sep 17 00:00:00 2001From: Alyssa Ross <hi@alyssa.is>Date: Sun, 9 Feb 2025 08:51:32 +0100Subject: [PATCH] build: use pkg-config to find tss2-esys
Otherwise, tss2-esys's dependencies (other tss2 libraries, OpenSSL)won't be linked when tss2-esys is a static library.---Link: https://dev.gnupg.org/D606
configure | 131 +++++++++++++++++++++++++++++---------------------- configure.ac | 5 +- 2 files changed, 76 insertions(+), 60 deletions(-)
diff --git a/configure b/configureindex 59f027d..f53c99d 100755--- a/configure+++ b/configure@@ -669,12 +669,12 @@ TEST_LIBTSS_FALSE TEST_LIBTSS_TRUE HAVE_LIBTSS_FALSE HAVE_LIBTSS_TRUE-LIBTSS_CFLAGS-LIBTSS_LIBS SWTPM TSSSTARTUP TPMSERVER TSS_INCLUDE+LIBTSS_LIBS+LIBTSS_CFLAGS W32SOCKLIBS NETLIBS CROSS_COMPILING_FALSE@@ -1005,7 +1005,9 @@ PKG_CONFIG_LIBDIR SQLITE3_CFLAGS SQLITE3_LIBS LIBGNUTLS_CFLAGS-LIBGNUTLS_LIBS'+LIBGNUTLS_LIBS+LIBTSS_CFLAGS+LIBTSS_LIBS' # Initialize some variables set by options.@@ -1771,6 +1773,9 @@ Some influential environment variables: C compiler flags for LIBGNUTLS, overriding pkg-config LIBGNUTLS_LIBS linker flags for LIBGNUTLS, overriding pkg-config+ LIBTSS_CFLAGS+ C compiler flags for LIBTSS, overriding pkg-config+ LIBTSS_LIBS linker flags for LIBTSS, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations.@@ -15465,64 +15470,77 @@ else fi elif test "$with_tss" = intel; then- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing Esys_Initialize" >&5-$as_echo_n "checking for library containing Esys_Initialize... " >&6; }-if ${ac_cv_search_Esys_Initialize+:} false; then :- $as_echo_n "(cached) " >&6-else- ac_func_search_save_LIBS=$LIBS-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */ -/* Override any GCC internal prototype to avoid an error.- Use char because int might match the return type of a GCC- builtin and then its argument prototype would still apply. */-#ifdef __cplusplus-extern "C"-#endif-char Esys_Initialize ();-int-main ()-{-return Esys_Initialize ();- ;- return 0;-}-_ACEOF-for ac_lib in '' tss2-esys; do- if test -z "$ac_lib"; then- ac_res="none required"- else- ac_res=-l$ac_lib- LIBS="-l$ac_lib $ac_func_search_save_LIBS"- fi- if ac_fn_c_try_link "$LINENO"; then :- ac_cv_search_Esys_Initialize=$ac_res-fi-rm -f core conftest.err conftest.$ac_objext \- conftest$ac_exeext- if ${ac_cv_search_Esys_Initialize+:} false; then :- break-fi-done-if ${ac_cv_search_Esys_Initialize+:} false; then :+pkg_failed=no+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBTSS" >&5+$as_echo_n "checking for LIBTSS... " >&6; } +if test -n "$LIBTSS_CFLAGS"; then+ pkg_cv_LIBTSS_CFLAGS="$LIBTSS_CFLAGS"+ elif test -n "$PKG_CONFIG"; then+ if test -n "$PKG_CONFIG" && \+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tss2-esys tss2-mu tss2-rc tss2-tctildr\""; } >&5+ ($PKG_CONFIG --exists --print-errors "tss2-esys tss2-mu tss2-rc tss2-tctildr") 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; then+ pkg_cv_LIBTSS_CFLAGS=`$PKG_CONFIG --cflags "tss2-esys tss2-mu tss2-rc tss2-tctildr" 2>/dev/null`+ test "x$?" != "x0" && pkg_failed=yes else- ac_cv_search_Esys_Initialize=no+ pkg_failed=yes fi-rm conftest.$ac_ext-LIBS=$ac_func_search_save_LIBS+ else+ pkg_failed=untried fi-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_Esys_Initialize" >&5-$as_echo "$ac_cv_search_Esys_Initialize" >&6; }-ac_res=$ac_cv_search_Esys_Initialize-if test "$ac_res" != no; then :- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"- have_libtss=Intel+if test -n "$LIBTSS_LIBS"; then+ pkg_cv_LIBTSS_LIBS="$LIBTSS_LIBS"+ elif test -n "$PKG_CONFIG"; then+ if test -n "$PKG_CONFIG" && \+ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tss2-esys tss2-mu tss2-rc tss2-tctildr\""; } >&5+ ($PKG_CONFIG --exists --print-errors "tss2-esys tss2-mu tss2-rc tss2-tctildr") 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; then+ pkg_cv_LIBTSS_LIBS=`$PKG_CONFIG --libs "tss2-esys tss2-mu tss2-rc tss2-tctildr" 2>/dev/null`+ test "x$?" != "x0" && pkg_failed=yes else- as_fn_error $? "Intel TPM Software Stack requested but not found" "$LINENO" 5+ pkg_failed=yes+fi+ else+ pkg_failed=untried fi +++if test $pkg_failed = yes; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }++if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then+ _pkg_short_errors_supported=yes+else+ _pkg_short_errors_supported=no+fi+ if test $_pkg_short_errors_supported = yes; then+ LIBTSS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "tss2-esys tss2-mu tss2-rc tss2-tctildr" 2>&1`+ else+ LIBTSS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "tss2-esys tss2-mu tss2-rc tss2-tctildr" 2>&1`+ fi+ # Put the nasty error message in config.log where it belongs+ echo "$LIBTSS_PKG_ERRORS" >&5++ as_fn_error $? "Intel TPM Software Stack requested but not found" "$LINENO" 5+elif test $pkg_failed = untried; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+ as_fn_error $? "Intel TPM Software Stack requested but not found" "$LINENO" 5+else+ LIBTSS_CFLAGS=$pkg_cv_LIBTSS_CFLAGS+ LIBTSS_LIBS=$pkg_cv_LIBTSS_LIBS+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5+$as_echo "yes" >&6; }+ have_libtss=Intel+fi else as_fn_error $? "Invalid TPM Software Stack requested: $with_tss" "$LINENO" 5 fi@@ -15616,7 +15634,6 @@ $as_echo "$as_me: WARNING: Need Esys_TR_GetTpmHandle API (usually requires Intel fi - LIBTSS_LIBS="$LIBS -ltss2-mu -ltss2-rc -ltss2-tctildr" $as_echo "#define HAVE_INTEL_TSS 1" >>confdefs.h diff --git a/configure.ac b/configure.acindex dc44465..92880e6 100644--- a/configure.ac+++ b/configure.ac@@ -1574,8 +1574,8 @@ if test "$build_tpm2d" = "yes"; then AC_SEARCH_LIBS([TSS_Create],[tss ibmtss],have_libtss=IBM, [AC_MSG_ERROR([IBM TPM Software Stack requested but not found])]) elif test "$with_tss" = intel; then- AC_SEARCH_LIBS([Esys_Initialize],[tss2-esys],have_libtss=Intel,- [AC_MSG_ERROR([Intel TPM Software Stack requested but not found])])+ PKG_CHECK_MODULES([LIBTSS], [tss2-esys tss2-mu tss2-rc tss2-tctildr],have_libtss=Intel,+ [AC_MSG_ERROR([Intel TPM Software Stack requested but not found])]) else AC_MSG_ERROR([Invalid TPM Software Stack requested: $with_tss]) fi@@ -1605,7 +1605,6 @@ if test "$build_tpm2d" = "yes"; then AC_MSG_WARN([Need Esys_TR_GetTpmHandle API (usually requires Intel TSS 2.4.0 or later, disabling TPM support)]) have_libtss=no ])- LIBTSS_LIBS="$LIBS -ltss2-mu -ltss2-rc -ltss2-tctildr" AC_DEFINE(HAVE_INTEL_TSS, 1, [Defined if we have the Intel TSS]) fi LIBS="$_save_libs"-- 2.47.2