From 02d83bf66089b4d85651b95da577a81bf4eb7023 Mon Sep 17 00:00:00 2001
From: ale <ale@incal.net>
Date: Sat, 22 Jun 2019 12:21:51 +0100
Subject: [PATCH] Only link to libpam in the pam_sso module

Prevents spurious dependencies in the other libraries.
---
 configure.ac            | 7 ++++++-
 src/pam_sso/Makefile.am | 4 ++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/configure.ac b/configure.ac
index b60a036..ebb60a6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -59,7 +59,12 @@ AC_ARG_ENABLE(pam-sso,
 dnl Probe for the functionality of the PAM libraries and their include file
 dnl naming.  Mac OS X puts them in pam/* instead of security/*.
 if test "$build_pam_sso" != "no" ; then
-  AC_SEARCH_LIBS([pam_set_data], [pam])
+  dnl Do not add -lpam to LIBS, set PAM_LIBS instead.
+  save_LIBS="$LIBS"
+  AC_SEARCH_LIBS([pam_set_data], [pam], [], [
+    AC_MSG_ERROR([libpam not found])])
+  LIBS="$save_LIBS"
+  AC_SUBST(PAM_LIBS, [-lpam])
   AC_CHECK_FUNCS([pam_getenv pam_getenvlist pam_modutil_getpwnam])
   AC_REPLACE_FUNCS([pam_syslog pam_vsyslog])
   AC_CHECK_HEADERS([security/pam_modutil.h], [],
diff --git a/src/pam_sso/Makefile.am b/src/pam_sso/Makefile.am
index 7deae9f..6155d3a 100644
--- a/src/pam_sso/Makefile.am
+++ b/src/pam_sso/Makefile.am
@@ -7,7 +7,7 @@ lib_LTLIBRARIES = pam_sso.la
 pam_sso_la_SOURCES = \
 	pam_sso.c pam_sso.h
 pam_sso_la_LDFLAGS = -module
-pam_sso_la_LIBADD = $(top_builddir)/src/sso/libsso.la
+pam_sso_la_LIBADD = $(PAM_LIBS) $(top_builddir)/src/sso/libsso.la
 
 check_PROGRAMS = \
 	pam_sso_unittest
@@ -16,6 +16,6 @@ TESTS = $(check_PROGRAMS)
 
 pam_sso_unittest_CPPFLAGS = $(AM_CPPFLAGS) $(GTEST_CPPFLAGS)
 pam_sso_unittest_LDFLAGS = $(AM_LDFLAGS) $(GTEST_LDFLAGS)
-pam_sso_unittest_LDADD = $(GTEST_LIBS) \
+pam_sso_unittest_LDADD = $(GTEST_LIBS) $(PAM_LIBS) \
 	$(top_builddir)/src/sso/libsso.la
 pam_sso_unittest_SOURCES = pam_sso_unittest.cc
-- 
GitLab