pam_ldap 1.8.6

32bit版と64bit版を両方コンパイルします。
Solaris 11ではLDAP SDKではなく、システムのOpenLDAPのライブラリをリ ンクするためにconfigureスクリプトを修正します。

--- configure.orig      Mon Nov  8 09:58:44 2010
+++ configure   Tue Nov 11 16:24:09 2014
@@ -5528,13 +5528,13 @@

 fi

-  echo "$as_me:$LINENO: checking for main in -lldap" >&5
-echo $ECHO_N "checking for main in -lldap... $ECHO_C" >&6
+  echo "$as_me:$LINENO: checking for main in -lldap-2.4" >&5
+echo $ECHO_N "checking for main in -lldap-2.4... $ECHO_C" >&6
 if test "${ac_cv_lib_ldap_main+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lldap  $LIBS"
+LIBS="-lldap-2.4  $LIBS"
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -5587,7 +5587,7 @@
 echo "$as_me:$LINENO: result: $ac_cv_lib_ldap_main" >&5
 echo "${ECHO_T}$ac_cv_lib_ldap_main" >&6
 if test $ac_cv_lib_ldap_main = yes; then
-  LIBS="-lldap $LIBS" found_ldap_lib=yes
+  LIBS="-lldap-2.4 $LIBS" found_ldap_lib=yes
 fi

 fi

次のようなスクリプトを実行します。

setup.sh

#!/bin/sh

if [ $# -eq 1 ]; then
  . ../setup-pre.sh $1
else
  . ../setup-pre.sh
fi

if [ "$ISA" = "sparcv9" -o "$ISA" = "amd64" ]; then
  CFLAGS="-M /usr/lib/ld/$ISA/map.default $CFLAGS"
  LDFLAGS="-L/usr/lib$LIBISA -R/usr/lib$LIBISA"
  export LDFLAGS
fi

#sdk="auto"
#sdk="netscape5"
sdk="openldap"

case "$sdk" in
"netscape*")
  sdkpath="/usr"
  ;;

"openldap")
  if [ `uname -r` = "5.11" ]; then
    CPPFLAGS="-I/usr/include/openldap"
    export CPPFLAGS
    sdkpath="/usr"
  else
    sdkpath="/usr/local"
  fi
  ;;

*)
  sdkpath="/usr"
  ;;

esac

./configure --prefix=/usr/local \
  --sysconfdir=/etc \
  --with-ldap-lib=$sdk \
  --with-ldap-dir=$sdkpath \
  --with-ldap-conf-file=/etc/ldap.conf \
  --with-ldap-secret-file=/etc/ldap.secret
% ./setup.sh [ sparcv8plus | sparcv9 | i386 | amd64 ] && gmake

sparcv9 or amd64ではMakefileを修正します。

-       $(mkinstalldirs) $(DESTDIR)$(libdir)/security
+       $(mkinstalldirs) $(DESTDIR)$(libdir)/security/sparcv9
-       $(INSTALL_PROGRAM) -o root -g root pam_ldap.so $(DESTDIR)$(libdir)/security/pam_ldap.so.1
+       $(INSTALL_PROGRAM) -o root -g root pam_ldap.so $(DESTDIR)$(libdir)/security/sparcv9/pam_ldap.so.1
-       (cd $(DESTDIR)$(libdir)/security; rm -f pam_ldap.so; ln -s pam_ldap.so.1 pam_ldap.so)
+       (cd $(DESTDIR)$(libdir)/security/sparcv9; rm -f pam_ldap.so; ln -s pam_ldap.so.1 pam_ldap.so)

特にSolaris 10以前のsparcv9 or amd64ではライブラリの検索パスも変更します。

- -L/usr/local/lib -R/usr/local/lib
+ -L/usr/local/lib/64 -R/usr/local/lib/64

setup.shを実行してmakeします。

% ./setup.sh [sparcv9|sparcv8plus|amd64|i386]
% gmake
# gmake install

hiraga@next-hop.net
Last modified: $Date: 2014/11/12 01:23:24 $
Apache