]> git.pld-linux.org Git - packages/pam.git/blobdiff - pam.spec
- updated to 1.4.0
[packages/pam.git] / pam.spec
index 1c1a443babb32067e63f52282593950154dfc3c2..2117eea942877236ac2c33bfe8dfcc505c062de0 100644 (file)
--- a/pam.spec
+++ b/pam.spec
@@ -1,12 +1,16 @@
 # TODO
-# - check and package docs: https://fedorahosted.org/releases/l/i/linux-pam/Linux-PAM-1.1.8-docs.tar.bz2
 # - fix pdf gen or disable it: No fo2pdf processor installed, skip PDF generation
+# - replace pam_cracklib.so with pam_pwquality.so (backwards compatible with its options), comes with pam-pam_pwquality package
+# - pam_tally, pam_tally2 are deprecated in favor of pam_faillock
+# NOTE: https://github.com/linux-pam/linux-pam/releases/download/v%{version}/Linux-PAM-%{version}-docs.tar.xz
+#   is not needed here: it contains documentation in target formats (HTML, PDF) built from sources included in main tarball
 #
 # Conditional build:
-%bcond_without doc             # don't build documentation
-%bcond_with    prelude         # build with Prelude IDS support (in libpam)
-%bcond_without selinux         # build without SELinux support
-%bcond_without audit           # build with Linux Auditing library support
+%bcond_without doc             # documentation
+%bcond_with    prelude         # Prelude IDS support (in libpam)
+%bcond_without cracklib        # (deprecated) cracklib module
+%bcond_without selinux         # SELinux support
+%bcond_without audit           # Linux Auditing library support
 
 %define                pam_pld_version 1.1.2-1
 Summary:       Pluggable Authentication Modules: modular, incremental authentication
@@ -19,13 +23,16 @@ Summary(ru.UTF-8):  Интструмент, обеспечивающий ауте
 Summary(tr.UTF-8):     Modüler, artımsal doğrulama birimleri
 Summary(uk.UTF-8):     Інструмент, що забезпечує аутентифікацію для програм
 Name:          pam
-Version:       1.2.1
+Version:       1.4.0
 Release:       1
 Epoch:         1
-License:       GPL or BSD
+# The library is BSD licensed with option to relicense as GPLv2+
+# - this option is redundant as the BSD license allows that anyway.
+# pam_timestamp, pam_loginuid, and pam_console modules are GPLv2+.
+License:       BSD and GPL v2+
 Group:         Base
-Source0:       http://www.linux-pam.org/library/Linux-PAM-%{version}.tar.bz2
-# Source0-md5: 9dc53067556d2dd567808fd509519dd6
+Source0:       https://github.com/linux-pam/linux-pam/releases/download/v%{version}/Linux-PAM-%{version}.tar.xz
+# Source0-md5: 39fca0523bccec6af4b63b5322276c84
 Source2:       ftp://ftp.pld-linux.org/software/pam/%{name}-pld-%{pam_pld_version}.tar.gz
 # Source2-md5: f9ec6fcafcf1801bf318e60040244f2e
 Source3:       other.pamd
@@ -37,6 +44,7 @@ Source8:      config-util.5
 Source9:       %{name}.tmpfiles
 Source10:      postlogin.pamd
 Patch0:                %{name}-pld-modules.patch
+Patch1:                %{name}_console-lex-static.patch
 Patch2:                %{name}-tally-fail-close.patch
 Patch3:                %{name}-mkhomedir-notfound.patch
 Patch4:                %{name}-db-gdbm.patch
@@ -47,19 +55,22 @@ URL:                http://www.linux-pam.org/
 BuildRequires: autoconf >= 2.61
 BuildRequires: automake
 BuildRequires: bison
-BuildRequires: cracklib-devel >= 2.8.3
-# gdbm due to db pulling libpthread
+%{?with_cracklib:BuildRequires:        cracklib-devel >= 2.8.3}
 BuildRequires: flex
+# gdbm due to db pulling libpthread
 BuildRequires: gdbm-devel >= 1.8.3-7
 BuildRequires: gettext-tools >= 0.18.3
 BuildRequires: glibc-devel >= 6:2.10.1
+BuildRequires: libnsl-devel
 %{?with_prelude:BuildRequires: libprelude-devel >= 0.9.0}
-%{?with_selinux:BuildRequires: libselinux-devel >= 1.33.2}
-#BuildRequires:        libtirpc-devel
-BuildRequires: libtool >= 2:1.5
+%{?with_selinux:BuildRequires: libselinux-devel >= 2.1.9}
+BuildRequires: libtirpc-devel
+BuildRequires: libtool >= 2:2
 BuildRequires: libxcrypt-devel
 %{?with_audit:BuildRequires:   linux-libc-headers >= 2.6.23.1}
 BuildRequires: pkgconfig
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
 BuildRequires: zlib-devel
 %if %{with doc}
 BuildRequires: docbook-dtd412-xml
@@ -75,11 +86,12 @@ BuildRequires:      w3m
 Requires:      %{name}-libs = %{epoch}:%{version}-%{release}
 %{?with_audit:Requires:        audit-libs >= 1.0.8}
 Requires:      awk
-Requires:      cracklib >= 2.8.3
-Requires:      cracklib-dicts >= 2.8.3
 Requires:      crypt(blowfish)
 Requires:      glibc >= 6:2.5-0.5
+%{?with_selinux:Requires:      libselinux >= 2.1.9}
+%{?with_cracklib:Requires:     pam-pam_cracklib = %{epoch}:%{version}-%{release}}
 Suggests:      make
+Suggests:      pam-pam_pwquality
 Suggests:      pam-pam_userdb = %{epoch}:%{version}-%{release}
 Obsoletes:     pam-doc
 Obsoletes:     pam-pam_opie
@@ -179,7 +191,7 @@ Summary(pt_BR.UTF-8):       Bibliotecas e arquivos de inclusão para desenvolvimento c
 Summary(ru.UTF-8):     Библиотеки разработчика для PAM
 Summary(uk.UTF-8):     Бібліотеки програміста для PAM
 Group:         Development/Libraries
-Requires:      %{name} = %{epoch}:%{version}-%{release}
+Requires:      %{name}-libs = %{epoch}:%{version}-%{release}
 %{?with_audit:Requires:        audit-libs-devel >= 1.0.8}
 Requires:      filesystem >= 3.0-11
 
@@ -218,11 +230,26 @@ Biblioteki statyczne PAM.
 %description static -l uk.UTF-8
 Цей пакет містить статичні бібліотеки програміста для PAM.
 
+%package pam_cracklib
+Summary:       PAM module to check the password against dictionary words
+Summary(pl.UTF-8):     Moduł PAM do sprawdzania haseł względem słów ze słownika
+Group:         Base
+Requires:      %{name}-libs = %{epoch}:%{version}-%{release}
+Requires:      cracklib >= 2.8.3
+Requires:      cracklib-dicts >= 2.8.3
+
+%description pam_cracklib
+PAM module to check the password against dictionary words.
+
+%description pam_cracklib -l pl.UTF-8
+Moduł PAM do sprawdzania haseł względem słów ze słownika.
+
 %package pam_selinux
 Summary:       PAM module - SELinux support
 Summary(pl.UTF-8):     Moduł PAM pozwalający na zmianę kontekstów SELinuksa
 Group:         Base
-Requires:      libselinux >= 1.33.2
+Requires:      %{name}-libs = %{epoch}:%{version}-%{release}
+Requires:      libselinux >= 2.1.9
 
 %description pam_selinux
 PAM module - SELinux support.
@@ -231,22 +258,30 @@ PAM module - SELinux support.
 Moduł PAM pozwalający na zmianę kontekstów SELinuksa.
 
 %package pam_userdb
-Summary:       PAM module - authenticate against db database
+Summary:       PAM module - authenticate against GDBM database
+Summary(pl.UTF-8):     Moduł PAM do uwierzytelniania względem bazy danych GDBM
 Group:         Base
+Requires:      %{name}-libs = %{epoch}:%{version}-%{release}
 Requires:      gdbm >= 1.8.3-7
-Conflicts:     pam-libs < 1:1.1.8-3.1
 
 %description pam_userdb
-pam_userdb - PAM module to authenticate against a Berkeley DB database
+pam_userdb - PAM module to authenticate against GDBM database.
+
+%description pam_userdb -l pl.UTF-8
+pam_userdb - moduł PAM służący do uwierzytelniania względem bazy
+danych GDBM.
 
 %prep
 %setup -q -a2 -n Linux-PAM-%{version}
 %patch0 -p1
+%patch1 -p1
 %patch2 -p1
 %patch3 -p1
 %patch4 -p1
 %patch5 -p1
-%patch6 -p1
+# upstream has similar approach for multiple files (not no exec):
+# https://github.com/linux-pam/linux-pam/pull/48
+#%patch6 -p1
 
 %build
 %{__libtoolize}
@@ -260,11 +295,14 @@ pam_userdb - PAM module to authenticate against a Berkeley DB database
        --enable-shared \
        --libdir=/%{_lib} \
        --includedir=%{_includedir}/security \
-       --enable-isadir=../../%{_lib}/security \
+       %{!?with_audit:--disable-audit} \
+       %{?with_cracklib:--enable-cracklib} \
        --enable-db=gdbm \
-       %{!?with_selinux:--disable-selinux} \
+       --enable-isadir=../../%{_lib}/security \
        %{!?with_prelude:--disable-prelude} \
-       %{!?with_audit:--disable-audit}
+       %{!?with_selinux:--disable-selinux} \
+       --enable-tally \
+       --enable-tally2
 
 # we must explicitely update-gmo as we patch a po file
 %{__make} -C po update-gmo
@@ -277,7 +315,8 @@ install -d $RPM_BUILD_ROOT{%{_libdir},/etc/pam.d,/var/{log,run/sepermit}} \
        $RPM_BUILD_ROOT%{systemdtmpfilesdir}
 
 %{__make} install \
-       DESTDIR=$RPM_BUILD_ROOT
+       DESTDIR=$RPM_BUILD_ROOT \
+       servicedir=%{systemdunitdir}
 
 %if %{with selinux}
 install -p modules/pam_selinux/.libs/pam_selinux_check $RPM_BUILD_ROOT%{_sbindir}
@@ -291,7 +330,8 @@ install -d doc/txts
 for r in modules/pam_*/README; do
        cp -pf $r doc/txts/README.$(basename $(dirname $r))
 done
-rm doc/txts/README.pam_userdb
+%{__rm} doc/txts/README.pam_userdb
+%{__rm} doc/txts/README.pam_cracklib
 install -d doc/html
 cp -pf doc/index.html doc/html/
 
@@ -303,13 +343,13 @@ echo ".so PAM.8" > $RPM_BUILD_ROOT%{_mandir}/man8/pam.8
 
 :> $RPM_BUILD_ROOT/var/log/tallylog
 
-mv -f $RPM_BUILD_ROOT/%{_lib}/lib*.a $RPM_BUILD_ROOT%{_libdir}
+%{__mv} $RPM_BUILD_ROOT/%{_lib}/lib*.a $RPM_BUILD_ROOT%{_libdir}
 
 cd $RPM_BUILD_ROOT/%{_lib}
 for f in lib*.la ; do
-       sed -e 's|/%{_lib}/libpam|%{_libdir}/libpam|g' $f > $RPM_BUILD_ROOT%{_libdir}/$f
-       rm -f $f
-       sed -i -e "s|libdir='/%{_lib}|libdir='%{_libdir}|g" $RPM_BUILD_ROOT%{_libdir}/$f
+       %{__sed} -e 's|/%{_lib}/libpam|%{_libdir}/libpam|g' \
+                -e "s|libdir='/%{_lib}|libdir='%{_libdir}|g" $f > $RPM_BUILD_ROOT%{_libdir}/$f
+       %{__rm} $f
 done
 ln -sf /%{_lib}/$(echo libpam.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libpam.so
 ln -sf /%{_lib}/$(echo libpam_misc.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/libpam_misc.so
@@ -352,9 +392,9 @@ for module in $RPM_BUILD_ROOT/%{_lib}/security/pam*.so ; do
 done
 
 # useless - shut up check-files
-rm -f $RPM_BUILD_ROOT/%{_lib}/security/*.{la,a}
-rm -f $RPM_BUILD_ROOT/%{_lib}/lib*.so
-rm -rf $RPM_BUILD_ROOT%{_docdir}/Linux-PAM
+%{__rm} $RPM_BUILD_ROOT/%{_lib}/security/*.{la,a}
+%{__rm} $RPM_BUILD_ROOT/%{_lib}/lib*.so
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/Linux-PAM
 
 %if %{without selinux}
 rm -rf $RPM_BUILD_ROOT{/%{_lib}/security/pam_selinux.so,%{_sbindir}/pam_selinux_check,%{_mandir}/man8/pam_selinux*.8*}
@@ -438,6 +478,7 @@ end
 %config(noreplace) %verify(not md5 mtime size) /etc/security/blacklist
 %config(noreplace) %verify(not md5 mtime size) /etc/security/console.handlers
 %config(noreplace) %verify(not md5 mtime size) /etc/security/console.perms
+%config(noreplace) %verify(not md5 mtime size) /etc/security/faillock.conf
 %config(noreplace) %verify(not md5 mtime size) /etc/security/group.conf
 %config(noreplace) %verify(not md5 mtime size) /etc/security/limits.conf
 %config(noreplace) %verify(not md5 mtime size) /etc/security/namespace.conf
@@ -457,19 +498,24 @@ end
 %config(noreplace) %verify(not md5 mtime size) /etc/security/console.perms.d/50-default.perms
 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/opasswd
 %attr(755,root,root) %{_bindir}/pam_pwgen
+%attr(755,root,root) %{_sbindir}/faillock
 %attr(755,root,root) %{_sbindir}/mkhomedir_helper
 %attr(755,root,root) %{_sbindir}/pam_console_apply
+%attr(755,root,root) %{_sbindir}/pam_namespace_helper
 %attr(755,root,root) %{_sbindir}/pam_tally
 %attr(755,root,root) %{_sbindir}/pam_tally2
 %attr(755,root,root) %{_sbindir}/pam_timestamp_check
 %attr(755,root,root) %{_sbindir}/pwgen_trigram
 %attr(4755,root,root) %{_sbindir}/unix_chkpwd
 %attr(4755,root,root) %{_sbindir}/unix_update
+%{systemdunitdir}/pam_namespace.service
 %{_mandir}/man5/access.conf.5*
 %{_mandir}/man5/config-util.5*
 %{_mandir}/man5/console.apps.5*
 %{_mandir}/man5/console.handlers.5*
 %{_mandir}/man5/console.perms.5*
+%{_mandir}/man5/environment.5*
+%{_mandir}/man5/faillock.conf.5*
 %{_mandir}/man5/group.conf.5*
 %{_mandir}/man5/limits.conf.5*
 %{_mandir}/man5/namespace.conf.5*
@@ -479,11 +525,15 @@ end
 %{_mandir}/man5/system-auth.5*
 %{_mandir}/man5/time.conf.5*
 %{_mandir}/man8/PAM.8*
+%{_mandir}/man8/faillock.8*
 %{_mandir}/man8/mkhomedir_helper.8*
 %{_mandir}/man8/pam.8*
 %{_mandir}/man8/pam_*.8*
 %{_mandir}/man8/unix_chkpwd.8*
 %{_mandir}/man8/unix_update.8*
+%if %{with cracklib}
+%exclude %{_mandir}/man8/pam_cracklib.8*
+%endif
 %if %{with selinux}
 %exclude %{_mandir}/man8/pam_selinux*.8*
 %exclude %{_mandir}/man8/pam_sepermit.8*
@@ -494,13 +544,13 @@ end
 # PAM modules
 %attr(755,root,root) /%{_lib}/security/pam_access.so
 %attr(755,root,root) /%{_lib}/security/pam_console.so
-%attr(755,root,root) /%{_lib}/security/pam_cracklib.so
 %attr(755,root,root) /%{_lib}/security/pam_debug.so
 %attr(755,root,root) /%{_lib}/security/pam_deny.so
 %attr(755,root,root) /%{_lib}/security/pam_echo.so
 %attr(755,root,root) /%{_lib}/security/pam_env.so
 %attr(755,root,root) /%{_lib}/security/pam_exec.so
 %attr(755,root,root) /%{_lib}/security/pam_faildelay.so
+%attr(755,root,root) /%{_lib}/security/pam_faillock.so
 %attr(755,root,root) /%{_lib}/security/pam_filter.so
 %attr(755,root,root) /%{_lib}/security/pam_filter/upperLOWER
 %attr(755,root,root) /%{_lib}/security/pam_ftp.so
@@ -525,16 +575,18 @@ end
 %attr(755,root,root) /%{_lib}/security/pam_rootok.so
 %attr(755,root,root) /%{_lib}/security/pam_rps.so
 %attr(755,root,root) /%{_lib}/security/pam_securetty.so
+%attr(755,root,root) /%{_lib}/security/pam_setquota.so
 %attr(755,root,root) /%{_lib}/security/pam_shells.so
 %attr(755,root,root) /%{_lib}/security/pam_stress.so
 %attr(755,root,root) /%{_lib}/security/pam_succeed_if.so
-%attr(755,root,root) /%{_lib}/security/pam_tally2.so
 %attr(755,root,root) /%{_lib}/security/pam_tally.so
+%attr(755,root,root) /%{_lib}/security/pam_tally2.so
 %attr(755,root,root) /%{_lib}/security/pam_time.so
 %attr(755,root,root) /%{_lib}/security/pam_timestamp.so
 %{?with_audit:%attr(755,root,root) /%{_lib}/security/pam_tty_audit.so}
 %attr(755,root,root) /%{_lib}/security/pam_umask.so
 %attr(755,root,root) /%{_lib}/security/pam_unix.so
+%attr(755,root,root) /%{_lib}/security/pam_usertype.so
 %attr(755,root,root) /%{_lib}/security/pam_warn.so
 %attr(755,root,root) /%{_lib}/security/pam_wheel.so
 %attr(755,root,root) /%{_lib}/security/pam_xauth.so
@@ -571,6 +623,14 @@ end
 %{_libdir}/libpamc.a
 %{_libdir}/libpam_misc.a
 
+%if %{with cracklib}
+%files pam_cracklib
+%defattr(644,root,root,755)
+%doc modules/pam_cracklib/README
+%attr(755,root,root) /%{_lib}/security/pam_cracklib.so
+%{_mandir}/man8/pam_cracklib.8*
+%endif
+
 %if %{with selinux}
 %files pam_selinux
 %defattr(644,root,root,755)
This page took 0.157984 seconds and 4 git commands to generate.