+# TODO
+# - new files:
+# /etc/pam.d/chgpasswd
+# /etc/pam.d/chpasswd
+# /etc/pam.d/newusers
+# /usr/sbin/chgpasswd
+# /usr/sbin/nologin
+# /usr/share/man/man5/gshadow.5.gz
+# /usr/share/man/man8/chgpasswd.8.gz
+# /usr/share/man/man8/nologin.8.gz
+# - check polish part in -typo.patch
+# - update shadow-po-update.patch
+# - package or remove:
+# /etc/pam.d/chgpasswd
+# /etc/pam.d/chpasswd
+# /etc/pam.d/groupmems
+# /etc/pam.d/newusers
+# /usr/sbin/chgpasswd
+# /usr/sbin/groupmems
+# /usr/sbin/nologin
+# /usr/share/man/cs/man5/gshadow.5.gz
+# /usr/share/man/cs/man8/nologin.8.gz
+# /usr/share/man/fr/man3/shadow.3.gz
+# /usr/share/man/fr/man5/gshadow.5.gz
+# /usr/share/man/man1/su.1.gz
+# /usr/share/man/man3/shadow.3.gz
+# /usr/share/man/man5/gshadow.5.gz
+# /usr/share/man/man5/limits.5.gz
+# /usr/share/man/man5/login.access.5.gz
+# /usr/share/man/man5/porttime.5.gz
+# /usr/share/man/man8/chgpasswd.8.gz
+# /usr/share/man/man8/groupmems.8.gz
+# /usr/share/man/man8/nologin.8.gz
+# /usr/share/man/ru/man5/gshadow.5.gz
+# /usr/share/man/ru/man5/limits.5.gz
+# /usr/share/man/ru/man5/login.access.5.gz
+# /usr/share/man/ru/man5/porttime.5.gz
+# /usr/share/man/ru/man8/chgpasswd.8.gz
+# /usr/share/man/ru/man8/nologin.8.gz
+# /usr/share/man/sv/man1/chage.1.gz
+# /usr/share/man/sv/man1/chfn.1.gz
+# /usr/share/man/sv/man1/chsh.1.gz
+# /usr/share/man/sv/man1/expiry.1.gz
+# /usr/share/man/sv/man1/gpasswd.1.gz
+# /usr/share/man/sv/man1/groups.1.gz
+# /usr/share/man/sv/man1/login.1.gz
+# /usr/share/man/sv/man1/newgrp.1.gz
+# /usr/share/man/sv/man1/passwd.1.gz
+# /usr/share/man/sv/man1/sg.1.gz
+# /usr/share/man/sv/man1/su.1.gz
+# /usr/share/man/sv/man3/getspnam.3
+# /usr/share/man/sv/man3/shadow.3.gz
+# /usr/share/man/sv/man5/faillog.5.gz
+# /usr/share/man/sv/man5/gshadow.5.gz
+# /usr/share/man/sv/man5/login.defs.5.gz
+# /usr/share/man/sv/man5/passwd.5.gz
+# /usr/share/man/sv/man5/shadow.5.gz
+# /usr/share/man/sv/man5/suauth.5.gz
+# /usr/share/man/sv/man8/chgpasswd.8.gz
+# /usr/share/man/sv/man8/chpasswd.8.gz
+# /usr/share/man/sv/man8/faillog.8.gz
+# /usr/share/man/sv/man8/groupadd.8.gz
+# /usr/share/man/sv/man8/groupdel.8.gz
+# /usr/share/man/sv/man8/groupmems.8.gz
+# /usr/share/man/sv/man8/groupmod.8.gz
+# /usr/share/man/sv/man8/grpck.8.gz
+# /usr/share/man/sv/man8/grpconv.8
+# /usr/share/man/sv/man8/grpunconv.8
+# /usr/share/man/sv/man8/lastlog.8.gz
+# /usr/share/man/sv/man8/logoutd.8.gz
+# /usr/share/man/sv/man8/newusers.8.gz
+# /usr/share/man/sv/man8/nologin.8.gz
+# /usr/share/man/sv/man8/pwck.8.gz
+# /usr/share/man/sv/man8/pwconv.8.gz
+# /usr/share/man/sv/man8/pwunconv.8
+# /usr/share/man/sv/man8/useradd.8.gz
+# /usr/share/man/sv/man8/userdel.8.gz
+# /usr/share/man/sv/man8/usermod.8.gz
+# /usr/share/man/sv/man8/vigr.8
+# /usr/share/man/sv/man8/vipw.8.gz
#
# Conditional build:
%bcond_without selinux # build without SE-Linux support
-%bcond_with shared # build with shared libshadow
+%bcond_with shared # build with shared libshadow (linking with selinux is broken)
#
Summary: Shadow password file utilities for Linux
Summary(de): Shadow-Paßwortdatei-Dienstprogramme für Linux
Summary(es): Utilitarios para el archivo de contraseñas Shadow
Summary(fr): Fichiers utilitaires pour Shadow password pour Linux
Summary(pl): Narzêdzia do obs³ugi mechanizmu ukrytych hase³
-Summary(tr): Gölge parola dosyasý araçlarý
Summary(pt_BR): Utilitários para o arquivo de senhas Shadow
+Summary(tr): Gölge parola dosyasý araçlarý
Name: shadow
-Version: 4.0.16
-Release: 0.1
+Version: 4.0.18.1
+Release: 0.12
Epoch: 1
License: BSD
Group: Applications/System
Source0: ftp://ftp.pld.org.pl/software/shadow/%{name}-%{version}.tar.bz2
-# Source0-md5: 1d91f7479143d1d705b94180c0d4874b
+# Source0-md5: e7751d46ecf219c07ae0b028ab3335c6
Source1: %{name}-login.defs
Source2: %{name}.useradd
Source3: chage.pamd
Source8: useradd.pamd
Patch0: %{name}-pld.patch
Patch1: %{name}-chage_expdays.patch
-Patch2: %{name}-typo.patch
+Patch2: %{name}-po-update.patch
+Patch3: %{name}-removed-programs.patch
+Patch4: %{name}-shared.patch
+Patch5: %{name}-typo.patch
BuildRequires: autoconf
BuildRequires: automake >= 1.0
BuildRequires: gettext-devel >= 0.12.1
-BuildRequires: pam-devel
-BuildRequires: libtool
%{?with_selinux:BuildRequires: libselinux-devel}
+BuildRequires: libtool
+BuildRequires: pam-devel
Requires: pam >= 0.77.3
# to force proper coreutils version, so "groups" command exists
Requires: /usr/bin/groups
%prep
%setup -q
-#%patch0 -p1
+%patch0 -p1
%patch1 -p1
#%patch2 -p1
+%patch3 -p1
+%{?with_shared:%patch4 -p1}
+#%patch5 -p1
# ugh, too populated to patch
-%{__perl} -pi -e 's/instead DES/instead of DES/' src/chpasswd.c po/*.po
+%{__sed} -i -e 's/instead DES/instead of DES/' src/chpasswd.c po/*.po
rm -f po/stamp-po
# vigr symlink is created by make install, but in wrong dir
ln -sf vipw $RPM_BUILD_ROOT%{_sbindir}/vigr
-echo '.so newgrp.1' > $RPM_BUILD_ROOT%{_mandir}/fr/man1/sg.1
+# what's this for?
echo '.so newgrp.1' > $RPM_BUILD_ROOT%{_mandir}/it/man1/sg.1
-echo '.so newgrp.1' > $RPM_BUILD_ROOT%{_mandir}/ko/man1/sg.1
-%if %{without shared}
+%if !%{with shared}
# invalid static library
rm -f $RPM_BUILD_ROOT%{_libdir}/*.a
%endif
-# included in glibc-devel
-rm -f $RPM_BUILD_ROOT%{_mandir}/man3/{getspnam,shadow}.3*
-
-# /bin/login already in login (from util-linux.spec)
-rm -f $RPM_BUILD_ROOT{%{_bindir}/login,%{_sbindir}/logoutd,%{_mandir}/{,*/}man1/login.1*,%{_mandir}/{,*/}man5/porttime.5,%{_mandir}/{,*/}man8/logoutd.8}
-# /bin/id already in coreutils
-rm -f $RPM_BUILD_ROOT%{_mandir}/cs/man1/id.1
-# /bin/su already in coreutils
-rm -f $RPM_BUILD_ROOT{%{_bindir}/su,%{_mandir}/{,*/}man1/su.1}
-# /usr/bin/groups already in coreutils
-rm -f $RPM_BUILD_ROOT{%{_bindir}/groups,%{_mandir}/{,*/}man1/groups.1}
-# /etc/limits not used with pam
-rm -f $RPM_BUILD_ROOT%{_mandir}/{,*/}man5/limits.5
+# no -devel, be gone
+rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
%find_lang %{name}
%lang(cs) %{_mandir}/cs/man5/passwd.5*
%lang(cs) %{_mandir}/cs/man5/shadow.5*
+%lang(cs) %{_mandir}/cs/man5/faillog.5*
+%lang(cs) %{_mandir}/cs/man8/faillog.8*
+%lang(cs) %{_mandir}/cs/man8/groupadd.8*
+%lang(cs) %{_mandir}/cs/man8/groupdel.8*
+%lang(cs) %{_mandir}/cs/man8/groupmod.8*
+%lang(cs) %{_mandir}/cs/man8/grpck.8*
+%lang(cs) %{_mandir}/cs/man8/lastlog.8*
+%lang(cs) %{_mandir}/cs/man8/vipw.8*
%lang(de) %{_mandir}/de/man1/passwd.1*
%lang(de) %{_mandir}/de/man8/vigr.8*
%lang(de) %{_mandir}/de/man8/vipw.8*
+%lang(de) %{_mandir}/de/man5/passwd.5*
%lang(es) %{_mandir}/es/man1/passwd.1*
+%lang(es) %{_mandir}/es/man5/passwd.5*
+%lang(es) %{_mandir}/es/man8/vigr.8*
+%lang(es) %{_mandir}/es/man8/vipw.8*
+
+%lang(fi) %{_mandir}/fi/man1/passwd.1*
%lang(fr) %{_mandir}/fr/man1/passwd.1*
%lang(fr) %{_mandir}/fr/man5/faillog.5*
+%lang(fr) %{_mandir}/fr/man5/login.defs.5*
%lang(fr) %{_mandir}/fr/man5/passwd.5*
%lang(fr) %{_mandir}/fr/man5/shadow.5*
+%lang(fr) %{_mandir}/fr/man5/suauth.5*
%lang(fr) %{_mandir}/fr/man8/chpasswd.8*
+%lang(fr) %{_mandir}/fr/man8/faillog.8*
+%lang(fr) %{_mandir}/fr/man8/groupadd.8*
+%lang(fr) %{_mandir}/fr/man8/groupdel.8*
+%lang(fr) %{_mandir}/fr/man8/groupmod.8*
+%lang(fr) %{_mandir}/fr/man8/grpck.8*
+%lang(fr) %{_mandir}/fr/man8/grpconv.8*
+%lang(fr) %{_mandir}/fr/man8/grpunconv.8*
+%lang(fr) %{_mandir}/fr/man8/lastlog.8*
+%lang(fr) %{_mandir}/fr/man8/pwck.8*
+%lang(fr) %{_mandir}/fr/man8/pwconv.8*
+%lang(fr) %{_mandir}/fr/man8/pwunconv.8*
%lang(fr) %{_mandir}/fr/man8/useradd.8*
%lang(fr) %{_mandir}/fr/man8/userdel.8*
%lang(fr) %{_mandir}/fr/man8/usermod.8*
+%lang(fr) %{_mandir}/fr/man8/vigr.8*
+%lang(fr) %{_mandir}/fr/man8/vipw.8*
%lang(hu) %{_mandir}/hu/man1/passwd.1*
%lang(ja) %{_mandir}/ja/man8/useradd.8*
%lang(ja) %{_mandir}/ja/man8/userdel.8*
%lang(ja) %{_mandir}/ja/man8/usermod.8*
-%lang(ja) %{_mandir}/ja/man8/vipw.8*
%lang(ja) %{_mandir}/ja/man8/vigr.8*
+%lang(ja) %{_mandir}/ja/man8/vipw.8*
%lang(ko) %{_mandir}/ko/man5/passwd.5*
+%lang(ko) %{_mandir}/ko/man8/vigr.8*
+%lang(ko) %{_mandir}/ko/man8/vipw.8*
%lang(pl) %{_mandir}/pl/man1/passwd.1*
%lang(pl) %{_mandir}/pl/man5/faillog.5*
%lang(pl) %{_mandir}/pl/man8/vigr.8*
%lang(pl) %{_mandir}/pl/man8/vipw.8*
+# FIXME change to -> pt?
+%lang(pt_BR) %{_mandir}/pt_BR/man5/passwd.5*
%lang(pt_BR) %{_mandir}/pt_BR/man5/shadow.5*
%lang(pt_BR) %{_mandir}/pt_BR/man8/groupadd.8*
%lang(pt_BR) %{_mandir}/pt_BR/man8/groupdel.8*
%lang(pt_BR) %{_mandir}/pt_BR/man8/groupmod.8*
+%lang(ru) %{_mandir}/ru/man1/passwd.1*
+%lang(ru) %{_mandir}/ru/man5/faillog.5*
+%lang(ru) %{_mandir}/ru/man5/login.defs.5*
%lang(ru) %{_mandir}/ru/man5/passwd.5*
+%lang(ru) %{_mandir}/ru/man5/shadow.5*
+%lang(ru) %{_mandir}/ru/man5/suauth.5*
+%lang(ru) %{_mandir}/ru/man8/chpasswd.8*
+%lang(ru) %{_mandir}/ru/man8/faillog.8*
+%lang(ru) %{_mandir}/ru/man8/groupadd.8*
+%lang(ru) %{_mandir}/ru/man8/groupdel.8*
+%lang(ru) %{_mandir}/ru/man8/groupmems.8*
+%lang(ru) %{_mandir}/ru/man8/groupmod.8*
+%lang(ru) %{_mandir}/ru/man8/grpck.8*
+%lang(ru) %{_mandir}/ru/man8/grpconv.8*
+%lang(ru) %{_mandir}/ru/man8/grpunconv.8*
+%lang(ru) %{_mandir}/ru/man8/lastlog.8*
+%lang(ru) %{_mandir}/ru/man8/pwck.8*
+%lang(ru) %{_mandir}/ru/man8/pwconv.8*
+%lang(ru) %{_mandir}/ru/man8/pwunconv.8*
+%lang(ru) %{_mandir}/ru/man8/useradd.8*
+%lang(ru) %{_mandir}/ru/man8/userdel.8*
+%lang(ru) %{_mandir}/ru/man8/usermod.8*
+%lang(ru) %{_mandir}/ru/man8/vigr.8*
+%lang(ru) %{_mandir}/ru/man8/vipw.8*
+
+%lang(tr) %{_mandir}/tr/man1/passwd.1*
+%lang(tr) %{_mandir}/tr/man5/passwd.5*
+%lang(tr) %{_mandir}/tr/man5/shadow.5*
+%lang(tr) %{_mandir}/tr/man8/groupadd.8*
+%lang(tr) %{_mandir}/tr/man8/groupdel.8*
+%lang(tr) %{_mandir}/tr/man8/groupmod.8*
+%lang(tr) %{_mandir}/tr/man8/useradd.8*
+%lang(tr) %{_mandir}/tr/man8/userdel.8*
+%lang(tr) %{_mandir}/tr/man8/usermod.8*
%lang(zh_CN) %{_mandir}/zh_CN/man8/chpasswd.8*
%lang(zh_CN) %{_mandir}/zh_CN/man8/groupadd.8*
%{_mandir}/man1/sg.1*
%{_mandir}/man8/newusers.8*
+%lang(cs) %{_mandir}/cs/man1/expiry.1*
+%lang(cs) %{_mandir}/cs/man1/gpasswd.1*
+
%lang(de) %{_mandir}/de/man1/chfn.1*
%lang(de) %{_mandir}/de/man1/chsh.1*
+%lang(de) %{_mandir}/de/man1/newgrp.1*
+
+%lang(es) %{_mandir}/es/man1/newgrp.1*
+
+%lang(fi) %{_mandir}/fi/man1/chfn.1*
+%lang(fi) %{_mandir}/fi/man1/chsh.1*
%lang(fr) %{_mandir}/fr/man1/chage.1*
+%lang(fr) %{_mandir}/fr/man1/chfn.1*
%lang(fr) %{_mandir}/fr/man1/chsh.1*
+%lang(fr) %{_mandir}/fr/man1/expiry.1*
%lang(fr) %{_mandir}/fr/man1/gpasswd.1*
%lang(fr) %{_mandir}/fr/man1/newgrp.1*
%lang(fr) %{_mandir}/fr/man1/sg.1*
+%lang(fr) %{_mandir}/fr/man8/newusers.8*
%lang(hu) %{_mandir}/hu/man1/chsh.1*
%lang(hu) %{_mandir}/hu/man1/gpasswd.1*
%lang(hu) %{_mandir}/hu/man1/newgrp.1*
%lang(hu) %{_mandir}/hu/man1/sg.1*
+%lang(hu) %{_mandir}/hu/man5/passwd.5*
+%lang(hu) %{_mandir}/hu/man8/lastlog.8*
%lang(id) %{_mandir}/id/man1/chsh.1*
+%lang(it) %{_mandir}/it/man1/chage.1*
%lang(it) %{_mandir}/it/man1/chfn.1*
%lang(it) %{_mandir}/it/man1/chsh.1*
+%lang(it) %{_mandir}/it/man1/expiry.1*
%lang(it) %{_mandir}/it/man1/gpasswd.1*
%lang(it) %{_mandir}/it/man1/newgrp.1*
%lang(it) %{_mandir}/it/man1/sg.1*
+%lang(it) %{_mandir}/it/man5/faillog.5*
+%lang(it) %{_mandir}/it/man8/chpasswd.8*
+%lang(it) %{_mandir}/it/man8/faillog.8*
+%lang(it) %{_mandir}/it/man8/newusers.8*
+%lang(it) %{_mandir}/it/man8/pwck.8*
%lang(ja) %{_mandir}/ja/man1/chage.1*
%lang(ja) %{_mandir}/ja/man1/chfn.1*
%lang(ko) %{_mandir}/ko/man1/chsh.1*
# missing in tarball
#%lang(ko) %{_mandir}/ko/man1/newgrp.1*
-%lang(ko) %{_mandir}/ko/man1/sg.1*
+
+%lang(ru) %{_mandir}/ru/man1/chage.1*
+%lang(ru) %{_mandir}/ru/man1/chfn.1*
+%lang(ru) %{_mandir}/ru/man1/chsh.1*
+%lang(ru) %{_mandir}/ru/man1/expiry.1*
+%lang(ru) %{_mandir}/ru/man1/gpasswd.1*
+%lang(ru) %{_mandir}/ru/man1/newgrp.1*
+%lang(ru) %{_mandir}/ru/man1/sg.1*
+%lang(ru) %{_mandir}/ru/man8/newusers.8*
%lang(pl) %{_mandir}/pl/man1/chage.1*
%lang(pl) %{_mandir}/pl/man1/chfn.1*
%lang(pt_BR) %{_mandir}/pt_BR/man1/gpasswd.1*
+%lang(tr) %{_mandir}/tr/man1/chage.1*
+%lang(tr) %{_mandir}/tr/man1/chfn.1*
+
%lang(zh_CN) %{_mandir}/zh_CN/man1/chfn.1*
%lang(zh_CN) %{_mandir}/zh_CN/man1/chsh.1*
+%lang(zh_CN) %{_mandir}/zh_CN/man1/newgrp.1*
+%lang(zh_CN) %{_mandir}/zh_CN/man5/passwd.5*
%lang(zh_TW) %{_mandir}/zh_TW/man1/chfn.1*
%lang(zh_TW) %{_mandir}/zh_TW/man1/chsh.1*
+%lang(zh_TW) %{_mandir}/zh_TW/man1/newgrp.1*
+%lang(zh_TW) %{_mandir}/zh_TW/man5/passwd.5*
+%lang(zh_TW) %{_mandir}/zh_TW/man8/chpasswd.8*