#configuration error - unknown item 'CHFN_AUTH' (notify administrator)
#configuration error - unknown item 'ENVIRON_FILE' (notify administrator)
# - sync pam files from pwdutils
+# - tcb support?
+# - ensure Conflicts with various packages (util-linux,sysvinit,coreutils) is up to date
# Conditional build:
%bcond_without selinux # build without SE-Linux support
%bcond_with shared # build with shared libshadow (linking with selinux is broken)
-#
-#
+
Summary: Shadow password file utilities for Linux
Summary(de.UTF-8): Shadow-Paßwortdatei-Dienstprogramme für Linux
Summary(es.UTF-8): Utilitarios para el archivo de contraseñas Shadow
Summary(pt_BR.UTF-8): Utilitários para o arquivo de senhas Shadow
Summary(tr.UTF-8): Gölge parola dosyası araçları
Name: shadow
-Version: 4.2.1
+Version: 4.8
#BuildRequires: useradd -g is broken, use pwdutils, or fix it:
# http://zie.pg.gda.pl/mailman/pipermail/shadow/2006-September/000395.html
-Release: 0.1
+Release: 1
Epoch: 1
License: BSD
Group: Applications/System
-Source0: http://pkg-shadow.alioth.debian.org/releases/%{name}-%{version}.tar.xz
-# Source0-md5: 2bfafe7d4962682d31b5eba65dba4fc8
-Source1: http://pkg-shadow.alioth.debian.org/releases/%{name}-%{version}.tar.xz.sig
-# Source1-md5: 6752051fb07fc4be58c3d7b929bf2341
+Source0: https://github.com/shadow-maint/shadow/releases/download/%{version}/%{name}-%{version}.tar.xz
+# Source0-md5: 723ebb19b06e2f52d9ed7f0653483851
Source2: %{name}-login.defs
Source3: %{name}.useradd
Source10: chage.pamd
Patch0: %{name}-pld.patch
# allow names with upper case letters or containing dot in the middle
Patch1: %{name}-goodname.patch
-URL: http://pkg-shadow.alioth.debian.org/
+URL: https://github.com/shadow-maint/shadow
BuildRequires: acl-devel
BuildRequires: attr-devel
BuildRequires: audit-libs-devel
-BuildRequires: autoconf
-BuildRequires: automake >= 1.0
-BuildRequires: gettext-devel >= 0.12.1
+BuildRequires: autoconf >= 2.64
+BuildRequires: automake >= 1:1.11
+BuildRequires: gettext-tools >= 0.12.1
%{?with_selinux:BuildRequires: libselinux-devel}
+%{?with_selinux:BuildRequires: libsemanage-devel}
BuildRequires: libtool
BuildRequires: pam-devel
BuildRequires: tar >= 1:1.22
Várias páginas de manual estão também incluídas sobre estes
utilitários e senhas shadow em geral.
+%package -n uidmap
+Summary: Programs to help use subuids
+Group: Applications/System
+Requires: setup >= 2.10.0
+
+%description -n uidmap
+These programs help unprivileged users to create uid and gid mappings
+in user namespaces.
+
%prep
%setup -q
%patch0 -p1
-%patch1 -p1
+#%patch1 -p1 UPSTREAM or drop
%build
+# NOTE:
+# - cracklib option refers to non-PAM passwd code
+# - skey referes to non-PAM pw_auth/passwd_check (login, su, chfn, chsh) code
%configure \
--bindir=/bin \
--sbindir=/sbin \
+ --enable-shadowgrp \
%{?with_shared:--enable-shared --disable-static} \
- --without-libcrack \
- --without-tcb \
- --with-sha-crypt \
- --with-nscd \
- --with-audit \
+ --disable-silent-rules \
+ --enable-subordinate-ids \
--with-acl \
--with-attr \
+ --with-audit \
+ --with-group-name-max-length=32 \
--with-libpam \
- --enable-nls \
- --enable-shadowgrp \
+ --with-nscd \
+ --without-libcrack \
%{?with_selinux:--with-selinux} \
- --enable-subordinate-ids \
- --with-group-name-max-length=32
+ --with-sha-crypt \
+ --without-tcb
%{__make}
cp -p %{SOURCE22} $RPM_BUILD_ROOT/etc/pam.d/userdel
cp -p %{SOURCE23} $RPM_BUILD_ROOT/etc/pam.d/usermod
+
+# compatibility with old locations (and pwdutils)
+install -d $RPM_BUILD_ROOT%{_bindir}
+for f in chage chfn chsh expiry faillog gpasswd newgrp newgidmap passwd newuidmap sg; do
+ ln -s /bin/${f} $RPM_BUILD_ROOT%{_bindir}/${f}
+done
+install -d $RPM_BUILD_ROOT%{_sbindir}
+for f in chgpasswd chpasswd groupadd groupdel groupmems groupmod grpck grpconv grpunconv logoutd newusers pwck pwconv pwunconv useradd userdel usermod vigr vipw; do
+ ln -s /sbin/${f} $RPM_BUILD_ROOT%{_sbindir}/${f}
+done
+
> $RPM_BUILD_ROOT%{_sysconfdir}/shadow
> $RPM_BUILD_ROOT/etc/security/chfn.allow
> $RPM_BUILD_ROOT/etc/security/chsh.allow
%{__rm} $RPM_BUILD_ROOT%{_mandir}/{,*/}man3/*.3*
# packaged in SysVinit-tools
-%{__rm} $RPM_BUILD_ROOT%{_bindir}/lastlog
+%{__rm} $RPM_BUILD_ROOT/bin/lastlog
%{__rm} $RPM_BUILD_ROOT%{_mandir}/{,*/}man8/lastlog.8*
# packaged in coreutils
%{__rm} $RPM_BUILD_ROOT/bin/groups
%files -f %{name}.lang
%defattr(644,root,root,755)
%doc ChangeLog NEWS TODO doc/{HOWTO,WISHLIST}
-%attr(750,root,root) %dir %{_sysconfdir}/default
%attr(640,root,root) %config %verify(not md5 mtime size) %{_sysconfdir}/default/useradd
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/chage
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/chfn
%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/security/chsh.allow
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/login.defs
%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %ghost %{_sysconfdir}/shadow
-%dir /etc/skel
%dir /etc/skel/tmp
%{?with_shared:%attr(755,root,root) %{_libdir}/lib*.so.*.*}
+%attr(4755,root,root) /bin/chfn
%attr(4755,root,root) %{_bindir}/chfn
+%attr(4755,root,root) /bin/chsh
%attr(4755,root,root) %{_bindir}/chsh
+%attr(4755,root,root) /bin/expiry
%attr(4755,root,root) %{_bindir}/expiry
+%attr(4755,root,root) /bin/gpasswd
%attr(4755,root,root) %{_bindir}/gpasswd
+%attr(4755,root,root) /bin/passwd
%attr(4755,root,root) %{_bindir}/passwd
-%attr(755,root,root) %{_bindir}/chage
+%attr(4755,root,root) /bin/chage
+%attr(4755,root,root) %{_bindir}/chage
+%attr(755,root,root) /bin/faillog
%attr(755,root,root) %{_bindir}/faillog
-%attr(755,root,root) %{_bindir}/newgidmap
-%attr(755,root,root) %{_bindir}/newgrp
-%attr(755,root,root) %{_bindir}/newuidmap
+%attr(4755,root,root) /bin/newgrp
+%attr(4755,root,root) %{_bindir}/newgrp
+%attr(755,root,root) /bin/sg
%attr(755,root,root) %{_bindir}/sg
+%attr(755,root,root) /sbin/chgpasswd
%attr(755,root,root) %{_sbindir}/chgpasswd
+%attr(755,root,root) /sbin/chpasswd
%attr(755,root,root) %{_sbindir}/chpasswd
+%attr(755,root,root) /sbin/groupadd
%attr(755,root,root) %{_sbindir}/groupadd
+%attr(755,root,root) /sbin/groupdel
%attr(755,root,root) %{_sbindir}/groupdel
+%attr(755,root,root) /sbin/groupmems
%attr(755,root,root) %{_sbindir}/groupmems
+%attr(755,root,root) /sbin/groupmod
%attr(755,root,root) %{_sbindir}/groupmod
+%attr(755,root,root) /sbin/grpck
%attr(755,root,root) %{_sbindir}/grpck
+%attr(755,root,root) /sbin/grpconv
%attr(755,root,root) %{_sbindir}/grpconv
+%attr(755,root,root) /sbin/grpunconv
%attr(755,root,root) %{_sbindir}/grpunconv
+%attr(755,root,root) /sbin/logoutd
%attr(755,root,root) %{_sbindir}/logoutd
+%attr(755,root,root) /sbin//newusers
%attr(755,root,root) %{_sbindir}/newusers
+%attr(755,root,root) /sbin/pwck
%attr(755,root,root) %{_sbindir}/pwck
+%attr(755,root,root) /sbin/pwconv
%attr(755,root,root) %{_sbindir}/pwconv
+%attr(755,root,root) /sbin/pwunconv
%attr(755,root,root) %{_sbindir}/pwunconv
+%attr(755,root,root) /sbin/useradd
%attr(755,root,root) %{_sbindir}/useradd
+%attr(755,root,root) /sbin/userdel
%attr(755,root,root) %{_sbindir}/userdel
+%attr(755,root,root) /sbin/usermod
%attr(755,root,root) %{_sbindir}/usermod
+%attr(755,root,root) /sbin/vigr
%attr(755,root,root) %{_sbindir}/vigr
+%attr(755,root,root) /sbin/vipw
%attr(755,root,root) %{_sbindir}/vipw
%{_mandir}/man1/chage.1*
%{_mandir}/man1/chfn.1*
%{_mandir}/man1/chsh.1*
%{_mandir}/man1/expiry.1*
%{_mandir}/man1/gpasswd.1*
-%{_mandir}/man1/newgidmap.1*
%{_mandir}/man1/newgrp.1*
-%{_mandir}/man1/newuidmap.1*
%{_mandir}/man1/passwd.1*
%{_mandir}/man1/sg.1*
%{_mandir}/man5/faillog.5*
%{_mandir}/man5/passwd.5*
%{_mandir}/man5/shadow.5*
%{_mandir}/man5/suauth.5*
-%{_mandir}/man5/subgid.5*
-%{_mandir}/man5/subuid.5*
%{_mandir}/man8/chgpasswd.8*
%{_mandir}/man8/chpasswd.8*
%{_mandir}/man8/faillog.8*
%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/newgidmap.1*
%lang(fr) %{_mandir}/fr/man1/newgrp.1*
-%lang(fr) %{_mandir}/fr/man1/newuidmap.1*
%lang(fr) %{_mandir}/fr/man1/passwd.1*
%lang(fr) %{_mandir}/fr/man1/sg.1*
%lang(fr) %{_mandir}/fr/man5/faillog.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/man5/subgid.5*
-%lang(fr) %{_mandir}/fr/man5/subuid.5*
%lang(fr) %{_mandir}/fr/man8/chgpasswd.8*
%lang(fr) %{_mandir}/fr/man8/chpasswd.8*
%lang(fr) %{_mandir}/fr/man8/faillog.8*
%lang(zh_TW) %{_mandir}/zh_TW/man8/useradd.8*
%lang(zh_TW) %{_mandir}/zh_TW/man8/userdel.8*
%lang(zh_TW) %{_mandir}/zh_TW/man8/usermod.8*
+
+%files -n uidmap
+%defattr(644,root,root,755)
+%attr(4755,root,root) /bin/newgidmap
+%attr(4755,root,root) %{_bindir}/newgidmap
+%attr(4755,root,root) /bin/newuidmap
+%attr(4755,root,root) %{_bindir}/newuidmap
+%{_mandir}/man1/newgidmap.1*
+%{_mandir}/man1/newuidmap.1*
+%{_mandir}/man5/subgid.5*
+%{_mandir}/man5/subuid.5*
+%lang(fr) %{_mandir}/fr/man1/newgidmap.1*
+%lang(fr) %{_mandir}/fr/man1/newuidmap.1*
+%lang(fr) %{_mandir}/fr/man5/subgid.5*
+%lang(fr) %{_mandir}/fr/man5/subuid.5*