-# TODO:
-# - finish and test it
+#
+# Conditional build:
+%bcond_without ldap # build without LDAP support
+%bcond_without selinux # build without SELinux support
#
Summary: Utilities to manage the passwd and shadow user information
Summary(pl): Narzêdzia do zarz±dzania informacjami o u¿ytkownikach z passwd i shadow
Name: pwdutils
-Version: 2.4
+Version: 2.6.90
Release: 2
License: GPL
Group: Applications/System
Source0: ftp://ftp.kernel.org/pub/linux/utils/net/NIS/%{name}-%{version}.tar.bz2
-# Source0-md5: 7635c09b005f0e9447df8b42b3942187
+# Source0-md5: 477703b1d538d96a0747e2ef0ee0081d
Source1: %{name}.useradd
Source2: %{name}.rpasswdd.init
Source3: %{name}.login.defs
Source6: chsh.pamd
Source7: passwd.pamd
Source8: useradd.pamd
+Source9: userdb.pamd
+Patch0: %{name}-f-option.patch
+URL: http://www.thkukuk.de/pam/pwdutils/
BuildRequires: autoconf
BuildRequires: automake
+BuildRequires: gcc >= 5:3.2
BuildRequires: gettext-devel
-BuildRequires: libselinux-devel
-BuildRequires: openldap-devel
-BuildRequires: openssl-devel
+%{?with_selinux:BuildRequires: libselinux-devel}
+%{?with_ldap:BuildRequires: openldap-devel}
+BuildRequires: openssl-devel >= 0.9.7d
+BuildRequires: openslp-devel
BuildRequires: pam-devel
+BuildRequires: sed >= 4.0
+Provides: shadow = 2:%{version}-%{release}
+Provides: shadow-extras = 2:%{version}-%{release}
Obsoletes: shadow
Obsoletes: shadow-extras
-Provides: shadow
-Provides: shadow-extras
+Obsoletes: shadow-utils
+Conflicts: util-linux < 2.12-10
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+# for pam module in /%{_lib}/security
+%define _libdir /%{_lib}
+
%description
pwdutils is a collection of utilities to manage the passwd and shadow
user information. The difference to the shadow suite is that these
passwd(1) i u¿ywam PAM do uwierzytelniania i zmiany hase³, wiêc mo¿e
byæ bardzo elastycznie konfigurowany dla lokalnych wymagañ.
+%package -n pam-pam_rpasswd
+Summary: pam_rpasswd - PAM module to change remote password
+Summary(pl): pam_rpasswd - modu³ PAM do zdalnej zmiany has³a
+Group: Base
+# rpasswd.conf is in base
+Requires: %{name} = %{version}-%{release}
+
+%description -n pam-pam_rpasswd
+The pam_rpasswd PAM module is for changing the password of user
+accounts on a remote server over a secure SSL connection. It only
+provides functionality for one PAM management group: password
+changing.
+
+%description -n pam-pam_rpasswd -l pl
+Modu³ PAM pam_rpasswd s³u¿y do zmiany hase³ dla kont u¿ytkowników na
+zdalnym serwerze po bezpiecznym po³±czeniu SSL. Udostêpnia
+funkcjonalno¶æ tylko dla jednej grupy zarz±dzania PAM: zmiany hase³.
+
%prep
%setup -q
+%patch0 -p1
%build
+sed -i -e 's#EXTRA_CFLAGS=.*#EXTRA_CFLAGS="-W -Wall"#g' configure.in
%{__gettextize}
%{__aclocal}
%{__autoconf}
%{__autoheader}
%{__automake}
%configure \
- --enable-selinux \
+ --enable-pam_rpasswd \
+ --%{?with_selinux:en}%{!?with_selinux:dis}able-selinux \
+ --enable-slp \
+ --enable-ssl \
+ --%{?with_ldap:en}%{!?with_ldap:dis}able-ldap \
+ --enable-nls \
--disable-rpath
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d/,pwdutils,skel}
+install -d $RPM_BUILD_ROOT/etc/{rc.d/init.d,pwdutils,skel}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
install %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/chsh
install %{SOURCE7} $RPM_BUILD_ROOT/etc/pam.d/passwd
install %{SOURCE8} $RPM_BUILD_ROOT/etc/pam.d/useradd
+install %{SOURCE9} $RPM_BUILD_ROOT/etc/pam.d/shadow
:> $RPM_BUILD_ROOT/etc/shadow
rm -rf $RPM_BUILD_ROOT
%post
-/sbin/ldconfig
if [ ! -f /etc/shadow ]; then
%{_sbindir}/pwconv
fi
-%postun -p /sbin/ldconfig
-
%post -n rpasswdd
/sbin/chkconfig --add rpasswdd
if [ -f /var/lock/subsys/rpasswdd ]; then
- /etc/rc.d/init.d/rpasswdd restart 1>&2
+ /etc/rc.d/init.d/rpasswdd restart 1>&2
else
- echo "Run \"/etc/rc.d/init.d/rpasswdd start\" to start rpasswdd daemon."
+ echo "Run \"/etc/rc.d/init.d/rpasswdd start\" to start rpasswdd daemon."
fi
%preun -n rpasswdd
if [ "$1" = "0" ]; then
- if [ -f /var/lock/subsys/rpasswdd ]; then
- /etc/rc.d/init.d/rpasswdd stop 1>&2
- fi
- /sbin/chkconfig --del rpasswdd
+ if [ -f /var/lock/subsys/rpasswdd ]; then
+ /etc/rc.d/init.d/rpasswdd stop 1>&2
+ fi
+ /sbin/chkconfig --del rpasswdd
fi
%files -f %{name}.lang
%attr(640,root,root) %config(noreplace) %verify(not md5 size mtime) /etc/pam.d/chsh
%attr(640,root,root) %config(noreplace) %verify(not md5 size mtime) /etc/pam.d/passwd
%attr(640,root,root) %config(noreplace) %verify(not md5 size mtime) /etc/pam.d/useradd
+%attr(640,root,root) %config(noreplace) %verify(not md5 size mtime) /etc/pam.d/shadow
%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/login.defs
+%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /etc/rpasswd.conf
%dir /etc/skel
%attr(755,root,root) %{_bindir}/chage
%attr(4755,root,root) %{_bindir}/chfn
%attr(4755,root,root) %{_bindir}/chsh
%attr(4755,root,root) %{_bindir}/expiry
%attr(4755,root,root) %{_bindir}/gpasswd
+%attr(755,root,root) %{_bindir}/newgrp
%attr(4755,root,root) %{_bindir}/passwd
%attr(755,root,root) %{_bindir}/rpasswd
+%attr(755,root,root) %{_bindir}/sg
%attr(755,root,root) %{_sbindir}/chpasswd
%attr(755,root,root) %{_sbindir}/groupadd
%attr(755,root,root) %{_sbindir}/groupdel
%attr(755,root,root) %{_sbindir}/groupmod
+%attr(755,root,root) %{_sbindir}/grpconv
+%attr(755,root,root) %{_sbindir}/grpck
+%attr(755,root,root) %{_sbindir}/grpunconv
+%attr(755,root,root) %{_sbindir}/pwconv
+%attr(755,root,root) %{_sbindir}/pwck
+%attr(755,root,root) %{_sbindir}/pwunconv
%attr(755,root,root) %{_sbindir}/rpasswdd
%attr(755,root,root) %{_sbindir}/useradd
%attr(755,root,root) %{_sbindir}/userdel
%attr(755,root,root) %{_sbindir}/vipw
%{_mandir}/man?/*
%exclude %{_mandir}/man8/rpasswdd*
+%exclude %{_mandir}/man8/pam_rpasswd.8*
%files -n rpasswdd
%defattr(644,root,root,755)
%attr(754,root,root) /etc/rc.d/init.d/rpasswdd
%attr(640,root,root) %config(noreplace) %verify(not md5 size mtime) /etc/pam.d/rpasswd
%{_mandir}/man8/rpasswdd*
+
+%files -n pam-pam_rpasswd
+%defattr(644,root,root,755)
+%attr(755,root,root) /%{_lib}/security/pam_rpasswd.so
+%{_mandir}/man8/pam_rpasswd.8*