[PATCH] Issue #5610 - Build failure on Debian
authorViktor Ashirov <vashirov@redhat.com>
Fri, 20 Jan 2023 14:46:53 +0000 (15:46 +0100)
committerAndrej Shadura <andrewsh@debian.org>
Thu, 16 Jan 2025 16:16:37 +0000 (17:16 +0100)
Bug Description:
On Debian libslapd.so is not getting linked with libcrypto.so,
which results in `undefined reference` link errors.

Fix Description:
Move -lssl and -lcrypto for libslapd.so from LDFLAGS to LIBADD.

Fixes: https://github.com/389ds/389-ds-base/issues/5610
Reviewed by: ???

Gbp-Pq: Name 5610-fix-linking.diff

Makefile.am
configure.ac

index 916cf25eb6e8908250056c50df03166867e63fc7..e4caccc2dd20234d9ac540ce1310d2b4c90e98e1 100644 (file)
@@ -1166,7 +1166,7 @@ libslapd_la_SOURCES = ldap/servers/slapd/add.c \
        $(libavl_a_SOURCES)
 
 libslapd_la_CPPFLAGS = $(AM_CPPFLAGS) $(DSPLUGIN_CPPFLAGS) $(SASL_CFLAGS) $(DB_INC) $(KERBEROS_CFLAGS) $(PCRE_CFLAGS) $(SVRCORE_INCLUDES)
-libslapd_la_LIBADD = $(LDAPSDK_LINK) $(SASL_LINK) $(NSS_LINK) $(NSPR_LINK) $(KERBEROS_LIBS) $(PCRE_LIBS) $(THREADLIB) $(SYSTEMD_LIBS) libsvrcore.la $(RSLAPD_LIB)
+libslapd_la_LIBADD = $(LDAPSDK_LINK) $(SASL_LINK) $(NSS_LINK) $(NSPR_LINK) $(KERBEROS_LIBS) $(PCRE_LIBS) $(THREADLIB) $(SYSTEMD_LIBS) libsvrcore.la $(RSLAPD_LIB) $(OPENSSL_LIBS)
 # If asan is enabled, it creates special libcrypt interceptors. However, they are
 # detected by the first load of libasan at runtime, and what is in the linked lib
 # so we need libcrypt to be present as soon as libasan is loaded for the interceptors
@@ -1175,7 +1175,7 @@ libslapd_la_LIBADD = $(LDAPSDK_LINK) $(SASL_LINK) $(NSS_LINK) $(NSPR_LINK) $(KER
 if enable_asan
 libslapd_la_LIBADD += $(LIBCRYPT)
 endif
-libslapd_la_LDFLAGS = $(AM_LDFLAGS) $(SLAPD_LDFLAGS) -lssl -lcrypto
+libslapd_la_LDFLAGS = $(AM_LDFLAGS) $(SLAPD_LDFLAGS)
 
 #////////////////////////////////////////////////////////////////
 #
@@ -1868,7 +1868,7 @@ ns_slapd_CPPFLAGS = $(AM_CPPFLAGS) $(DSPLUGIN_CPPFLAGS) $(SASL_CFLAGS) $(SVRCORE
 # We need our libraries to come first, then our externals libraries second.
 ns_slapd_LDADD = libslapd.la libldaputil.la libsvrcore.la $(RNSSLAPD_LIB)
 
-ns_slapd_LDADD += $(LDAPSDK_LINK) $(NSS_LINK) $(LIBADD_DL) -lssl -lcrypto \
+ns_slapd_LDADD += $(LDAPSDK_LINK) $(NSS_LINK) $(LIBADD_DL) $(OPENSSL_LIBS) \
        $(NSPR_LINK) $(SASL_LINK) $(LIBNSL) $(LIBSOCKET) $(THREADLIB) $(SYSTEMD_LIBS) $(EVENT_LINK)
 
 ns_slapd_DEPENDENCIES = libslapd.la libldaputil.la
index 955c6681fc9964561c2721c3aa48c146db923c90..9fd7a08e6f1fa234942740765b7757a9cc7eeac5 100644 (file)
@@ -97,8 +97,6 @@ AC_SUBST([rust_vendor_sources])
 if test "$enable_rust_offline" = yes; then
     AC_CHECK_PROG(CARGO, [cargo], [yes], [no])
     AC_CHECK_PROG(RUSTC, [rustc], [yes], [no])
-    # Since fernet uses the openssl lib.
-    PKG_CHECK_MODULES([OPENSSL], [openssl])
 
     AS_IF([test "$CARGO" != "yes" -o "$RUSTC" != "yes"], [
       AC_MSG_FAILURE("Rust based plugins cannot be built cargo=$CARGO rustc=$RUSTC")
@@ -822,6 +820,8 @@ else
 fi
 AC_SUBST(nss_libdir)
 
+PKG_CHECK_MODULES([OPENSSL], [openssl])
+
 m4_include(m4/openldap.m4)
 m4_include(m4/db.m4)