ソースを参照

upgrade to PAM package and make PAM optional

Ralf S. Engelschall 24 年 前
コミット
145af394ec
1 ファイル変更21 行追加32 行削除
  1. 21 32
      proftpd/proftpd.spec

+ 21 - 32
proftpd/proftpd.spec

@@ -23,6 +23,11 @@
 ##  SUCH DAMAGE. 
 ##  
 
+#   package options
+%ifndef       with_pam
+%define       with_pam  yes
+%endif
+
 #   package information
 Name:         proftpd
 Summary:      Professional FTP Daemon
@@ -33,7 +38,7 @@ Distribution: OpenPKG [REL]
 Group:        FTP
 License:      GPL
 Version:      1.2.4
-Release:      20020301
+Release:      20020312
 
 #   list of sources
 Source0:      ftp://ftp.proftpd.net/distrib/proftpd-%{version}.tar.bz2
@@ -48,6 +53,10 @@ Prefix:       %{l_prefix}
 BuildRoot:    %{l_buildroot}
 BuildPreReq:  OpenPKG, openpkg >= 20020206, make
 PreReq:       OpenPKG, openpkg >= 20020206
+%if "%{with_pam}" == "yes"
+BuildPreReq:  PAM
+PreReq:       PAM
+%endif
 AutoReq:      no
 AutoReqProv:  no
 
@@ -85,7 +94,9 @@ AutoReqProv:  no
         --sysconfdir=%{l_prefix}/etc/proftpd \
         --localstatedir=%{l_prefix}/var/proftpd \
         --with-modules=mod_ratio:mod_readme \
+%if "%{with_pam}" == "yes"
         --enable-pam
+%endif
 
     #   build ProFTPd programs
     %{l_make} %{l_mflags -O}
@@ -150,43 +161,21 @@ AutoReqProv:  no
     rm -rf $RPM_BUILD_ROOT
 
 %post
+%if "%{with_pam}" == "yes"
     #   add PAM configuration entry
-    check=`grep '^#<OpenPKG pkg=proftpd>' /etc/pam.conf`
-    if [ ".$check" = . ]; then
-        ( echo "#<OpenPKG pkg=proftpd>"
-          case "%{l_target}" in
-              *-freebsd* ) 
-                  echo "proftpd auth     sufficient pam_skey.so"
-                  echo "proftpd auth     required   pam_unix.so   try_first_pass"
-                  echo "proftpd account  required   pam_unix.so   try_first_pass"
-                  echo "proftpd session  required   pam_permit.so"
-                  ;;
-              *-linux* ) 
-                  echo "proftpd auth     required /lib/security/pam_unix.so shadow nodelay"
-                  echo "proftpd auth     required /lib/security/pam_nologin.so"
-                  echo "proftpd account  required /lib/security/pam_unix.so"
-                  echo "proftpd session  required /lib/security/pam_unix.so"
-                  ;;
-              *-solaris* ) 
-                  echo "proftpd auth     required /usr/lib/security/pam_unix.so try_first_pass"
-                  echo "proftpd account  required /usr/lib/security/pam_unix.so try_first_pass"
-                  echo "proftpd session  required /usr/lib/security/pam_unix.so"
-                  ;;
-          esac
-          echo "#</OpenPKG>"
-        ) >>/etc/pam.conf
+    if [ $1 -eq 1 ]; then
+        $RPM_INSTALL_PREFIX/sbin/pamtool -a -s -n "proftpd"
     fi
+%endif
 
 %preun
+%if "%{with_pam}" == "yes"
     #   remove PAM configuration entry
     if [ $1 -eq 0 ]; then
-        check=`grep '^#<OpenPKG pkg=proftpd>' /etc/pam.conf`
-        if [ ".$check" != . ]; then
-            cp /etc/pam.conf /etc/pam.conf.tmp && \
-            sed -e '/^#<OpenPKG pkg=proftpd>/,/^#<\/OpenPKG>/d' \
-            </etc/pam.conf.tmp >/etc/pam.conf && \
-            rm -f /etc/pam.conf.tmp
-        fi
+        $RPM_INSTALL_PREFIX/sbin/pamtool -r -s -n "proftpd"
+    fi
+%endif
+    if [ $1 -eq 0 ]; then
         $RPM_INSTALL_PREFIX/etc/rc proftpd stop
         rm -f $RPM_INSTALL_PREFIX/var/proftpd/*.log
         rm -f $RPM_INSTALL_PREFIX/var/proftpd/*.pid