2012-10-29 16:15:23 +01:00
#
2012-11-13 10:36:56 +01:00
# spec file for package shadow
2012-10-29 16:15:23 +01:00
#
2019-01-23 12:16:47 +01:00
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
2012-10-29 16:15:23 +01:00
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
2019-12-17 13:44:46 +01:00
# Please submit bugfixes or comments via https://bugs.opensuse.org/
2012-10-29 16:15:23 +01:00
#
2019-10-09 10:44:59 +02:00
%if ! %{defined _distconfdir}
%define _distconfdir %{_sysconfdir}
%else
%define no_config 1
%endif
2012-10-29 16:15:23 +01:00
Name : shadow
2019-12-17 13:44:46 +01:00
Version : 4.8
2012-11-13 10:36:56 +01:00
Release : 0
2017-09-08 13:44:56 +02:00
Summary : Utilities to Manage User and Group Accounts
2018-11-02 12:24:14 +01:00
License : BSD-3-Clause AND GPL-2.0-or-later
2017-09-08 13:44:56 +02:00
Group : System/Base
2019-05-31 08:00:55 +02:00
URL : https://github.com/shadow-maint/shadow
2017-05-23 14:25:13 +02:00
Source : https://github.com/shadow-maint/shadow/releases/download/%{version} /shadow-%{version} .tar.xz
2012-11-13 10:36:56 +01:00
Source1 : pamd.tar.bz2
Source2 : README.changes-pwdutils
Source3 : useradd.local
Source4 : userdel-pre.local
Source5 : userdel-post.local
2015-07-16 11:52:01 +02:00
Source6 : shadow.service
Source7 : shadow.timer
2017-09-08 13:44:56 +02:00
Source42 : https://github.com/shadow-maint/shadow/releases/download/%{version} /shadow-%{version} .tar.xz.asc
Source43 : %{name} .keyring
2019-05-06 09:58:15 +02:00
# SOURCE-FEATURE-SUSE shadow-login_defs-check.sh sbrabec@suse.com -- Supplementary script that verifies coverage of variables in shadow-login_defs-unused-by-pam.patch and other patches.
Source44 : shadow-login_defs-check.sh
# PATCH-FIX-SUSE shadow-login_defs-unused-by-pam.patch kukuk@suse.com -- Remove variables that have no use with PAM.
Patch0 : shadow-login_defs-unused-by-pam.patch
# PATCH-FEATURE-SUSE userdel-script.patch kukuk@suse.com -- Add support for USERDEL_PRECMD and USERDEL_POSTCMD.
2016-05-30 12:38:25 +02:00
Patch1 : userdel-script.patch
2019-05-06 09:58:15 +02:00
# PATCH-FEATURE-SUSE useradd-script.patch kukuk@suse.com -- Add support for USERADD_CMD.
2016-05-30 12:38:25 +02:00
Patch2 : useradd-script.patch
2019-05-06 09:58:15 +02:00
# PATCH-FEATURE-SUSE chkname-regex.patch kukuk@suse.com -- Username restriction by regex.
2016-05-30 12:38:25 +02:00
Patch3 : chkname-regex.patch
2019-05-06 09:58:15 +02:00
# PATCH-FEATURE-SUSE useradd-default.patch kukuk@suse.com -- Change useradd defaults group to 1000.
2016-05-30 12:38:25 +02:00
Patch4 : useradd-default.patch
2019-05-06 09:58:15 +02:00
# PATCH-FEATURE-SUSE shadow-util-linux.patch sbrabec@suse.com -- Add support for util-linux specific variables, delete shadow login, su runuser specific.
Patch5 : shadow-util-linux.patch
# PATCH-FEATURE-FEDORA shadow-4.1.5.1-userdel-helpfix.patch christian.brauner@mailbox.org -- Give a hint about what happens when you force the removal of a user.
2017-05-23 14:25:13 +02:00
Patch6 : shadow-4.1.5.1-userdel-helpfix.patch
2019-07-19 12:00:36 +02:00
# PATCH-FIX-FEDORA shadow-4.1.5.1-logmsg.patch kukuk@suse.com -- Fix error message.
2013-09-17 14:59:36 +02:00
Patch7 : shadow-4.1.5.1-logmsg.patch
2019-05-06 09:58:15 +02:00
# PATCH-FEATURE-SUSE shadow-login_defs-comments.patch kukuk@suse.com -- Adjust login.defs comments.
Patch13 : shadow-login_defs-comments.patch
# PATCH-FEATURE-SUSE shadow-login_defs-suse.patch kukuk@suse.com -- Customize login.defs.
Patch14 : shadow-login_defs-suse.patch
2019-12-17 13:44:46 +01:00
# PATCH-FIX-UPSTREAM shadow-4.8-selinux-include.patch mvetter@suse.com -- https://github.com/shadow-maint/shadow/pull/200
Patch15 : shadow-4.8-selinux-include.patch
2019-05-06 09:58:15 +02:00
# PATCH-FIX-SUSE disable_new_audit_function.patch adam.majer@suse.de -- Disable newer libaudit functionality for older distributions.
2017-05-23 14:25:13 +02:00
Patch20 : disable_new_audit_function.patch
BuildRequires : audit-devel > 2.3
2019-01-23 13:44:35 +01:00
BuildRequires : autoconf
BuildRequires : automake
2012-11-13 10:36:56 +01:00
BuildRequires : libacl-devel
BuildRequires : libattr-devel
2019-10-09 10:44:59 +02:00
BuildRequires : libeconf-devel
2012-11-13 10:36:56 +01:00
BuildRequires : libselinux-devel
2012-10-29 16:15:23 +01:00
BuildRequires : libsemanage-devel
2019-01-23 13:44:35 +01:00
BuildRequires : libtool
2012-11-13 10:36:56 +01:00
BuildRequires : pam-devel
2017-05-23 14:25:13 +02:00
BuildRequires : xz
2017-10-12 11:42:41 +02:00
Requires(pre) : group(root)
Requires(pre) : group(shadow)
2019-05-31 08:00:55 +02:00
Requires(pre) : permissions
2017-10-12 11:42:41 +02:00
Requires(pre) : user(root)
2012-11-13 10:36:56 +01:00
Provides : pwdutils = 3.2.20
Obsoletes : pwdutils <= 3.2.19
2019-05-06 09:58:15 +02:00
# Virtual provides for supported variables in login.defs.
# It prevents references to unknown variables.
# Upgrade them only if shadow-util-linux.patch or
# encryption_method_nis.patch has to be ported!
# Call shadow-login_defs-check.sh before!
Provides : login_defs-support-for-pam = 1.3.1
Provides : login_defs-support-for-util-linux = 2.33.1
2019-07-26 10:31:05 +02:00
Provides : useradd_or_adduser_dep
2012-10-29 16:15:23 +01:00
%description
This package includes the necessary programs for converting plain
password files to the shadow password format and to manage user and
group accounts.
%prep
%setup -q -a 1
2017-09-08 13:44:56 +02:00
%patch0
2019-05-06 09:58:15 +02:00
%patch1
2017-09-08 13:44:56 +02:00
%patch2
%patch3
%patch4
%patch5
%patch6
%patch7
2019-05-06 09:58:15 +02:00
%patch13
%patch14
2019-12-17 13:44:46 +01:00
%patch15 -p1
2017-05-23 14:25:13 +02:00
%if 0%{?suse_version} < 1330
%patch20 -p1
%endif
2012-10-29 16:15:23 +01:00
iconv -f ISO88591 -t utf-8 doc/HOWTO > doc/HOWTO.utf8
mv -v doc/HOWTO.utf8 doc/HOWTO
%build
2017-09-08 13:44:56 +02:00
export CFLAGS=" %{optflags} - f p i e "
2012-10-29 16:15:23 +01:00
export LDFLAGS=" - p i e "
2019-01-23 13:44:35 +01:00
autoreconf -fvi
2012-10-29 16:15:23 +01:00
%configure \
2019-05-31 08:00:55 +02:00
--disable-shadowgrp \
--enable-account-tools-setuid \
--with-audit \
--with-libpam \
--with-sha-crypt \
--with-acl \
--with-attr \
--with-nscd \
--with-selinux \
--without-libcrack \
--disable-shared \
2019-10-09 10:44:59 +02:00
--with-group-name-max-length=32 \
--enable-vendordir=%{_distconfdir}
2019-05-31 08:00:55 +02:00
make %{?_smp_mflags} V=1
2012-10-29 16:15:23 +01:00
%install
2017-09-08 13:44:56 +02:00
cp %{SOURCE2} .
2019-05-31 08:00:55 +02:00
%make_install gnulocaledir=%{buildroot} /%{_datadir} /locale MKINSTALLDIRS=`pwd`/mkinstalldirs
2012-10-29 16:15:23 +01:00
# install useradd.local, userdel.local, ...
2017-09-08 13:44:56 +02:00
install -m 0755 %{SOURCE3} %{buildroot} /%{_sbindir} /
install -m 0755 %{SOURCE4} %{buildroot} /%{_sbindir} /
install -m 0755 %{SOURCE5} %{buildroot} /%{_sbindir} /
install -Dm644 %{SOURCE6} %{buildroot} %{_unitdir} /shadow.service
install -Dm644 %{SOURCE7} %{buildroot} %{_unitdir} /shadow.timer
2012-10-29 16:15:23 +01:00
2018-11-02 12:24:14 +01:00
# add empty /etc/sub{u,g}id files
touch %{buildroot} /%{_sysconfdir} /subuid
touch %{buildroot} /%{_sysconfdir} /subgid
2012-10-29 16:15:23 +01:00
# Remove binaries we don't use.
2017-09-08 13:44:56 +02:00
rm %{buildroot} /%{_bindir} /groups
rm %{buildroot} /%{_mandir} /man1/groups.*
rm %{buildroot} /%{_mandir} /*/man1/groups.*
rm %{buildroot} /%{_sbindir} /grpconv
rm %{buildroot} /%{_mandir} /man8/grpconv.*
rm %{buildroot} /%{_mandir} /*/man8/grpconv.*
rm %{buildroot} /%{_sbindir} /grpunconv
rm %{buildroot} /%{_mandir} /man8/grpunconv.*
rm %{buildroot} /%{_mandir} /*/man8/grpunconv.*
rm %{buildroot} /%{_sbindir} /groupmems
rm %{buildroot} /%{_mandir} /man8/groupmems.*
rm %{buildroot} /%{_mandir} /*/man8/groupmems.*
rm %{buildroot} %{_sysconfdir} /pam.d/groupmems
rm %{buildroot} /%{_bindir} /login
rm %{buildroot} /%{_mandir} /man1/login.*
rm %{buildroot} /%{_mandir} /*/man1/login.*
rm %{buildroot} %{_sysconfdir} /pam.d/login
rm %{buildroot} /%{_bindir} /su
rm %{buildroot} /%{_mandir} /man1/su.*
rm %{buildroot} /%{_mandir} /*/man1/su.*
rm %{buildroot} /%{_mandir} /man5/suauth.*
rm %{buildroot} /%{_mandir} /*/man5/suauth.*
rm %{buildroot} %{_sysconfdir} /pam.d/su
rm %{buildroot} /%{_bindir} /faillog
rm %{buildroot} /%{_mandir} /man5/faillog.*
rm %{buildroot} /%{_mandir} /*/man5/faillog.*
rm %{buildroot} /%{_mandir} /man8/faillog.*
rm %{buildroot} /%{_mandir} /*/man8/faillog.*
rm %{buildroot} /%{_sbindir} /logoutd
rm %{buildroot} /%{_mandir} /man8/logoutd.*
rm %{buildroot} /%{_mandir} /*/man8/logoutd.*
rm %{buildroot} /%{_sbindir} /nologin
rm %{buildroot} /%{_mandir} /man8/nologin.*
rm %{buildroot} /%{_mandir} /*/man8/nologin.*
rm %{buildroot} /%{_sbindir} /chgpasswd
rm %{buildroot} /%{_mandir} /man8/chgpasswd.*
rm %{buildroot} /%{_mandir} /*/man8/chgpasswd.*
rm %{buildroot} %{_sysconfdir} /pam.d/chgpasswd
rm %{buildroot} /%{_mandir} /man3/getspnam.*
rm %{buildroot} /%{_mandir} /*/man3/getspnam.*
rm %{buildroot} /%{_mandir} /man5/gshadow.5*
rm %{buildroot} /%{_mandir} /*/man5/gshadow.5*
rm %{buildroot} /%{_mandir} /man5/passwd.5*
rm %{buildroot} /%{_mandir} /*/man5/passwd.5*
rm -rf %{buildroot} %{_mandir} /{??,??_??}
2012-10-29 16:15:23 +01:00
2019-10-09 10:44:59 +02:00
# Move /etc to /usr/etc
if [ ! -d %{buildroot} %{_distconfdir} ]; then
mkdir -p %{buildroot} %{_distconfdir}
mv %{buildroot} %{_sysconfdir} /{login.defs,pam.d} %{buildroot} %{_distconfdir}
fi
2012-10-29 16:15:23 +01:00
%find_lang shadow
2015-07-16 11:52:01 +02:00
%pre
%service_add_pre shadow.service shadow.timer
2019-10-09 10:44:59 +02:00
for i in login.defs pam.d/chage pam.d/chfn pam.d/chpasswd pam.d/chsh pam.d/groupadd pam.d/groupdel pam.d/groupmod pam.d/newusers pam.d/passwd pam.d/useradd pam.d/userdel pam.d/usermod; do
test -f /etc/${i}.rpmsave && mv -v /etc/${i}.rpmsave /etc/${i}.rpmsave.old ||:
done
2015-07-16 11:52:01 +02:00
2012-10-29 16:15:23 +01:00
%post
2017-09-08 13:44:56 +02:00
%set_permissions %{_bindir} /chage
%set_permissions %{_bindir} /chfn
%set_permissions %{_bindir} /chsh
%set_permissions %{_bindir} /expiry
%set_permissions %{_bindir} /gpasswd
%set_permissions %{_bindir} /newgrp
%set_permissions %{_bindir} /passwd
%set_permissions %{_bindir} /newgidmap
%set_permissions %{_bindir} /newuidmap
2012-10-29 16:15:23 +01:00
2016-01-18 12:08:55 +01:00
%service_add_post shadow.service shadow.timer
2012-10-29 16:15:23 +01:00
%verify script
2017-09-08 13:44:56 +02:00
%verify _permissions %{_bindir} /chage
%verify _permissions %{_bindir} /chfn
%verify _permissions %{_bindir} /chsh
%verify _permissions %{_bindir} /expiry
%verify _permissions %{_bindir} /gpasswd
%verify _permissions %{_bindir} /newgrp
%verify _permissions %{_bindir} /passwd
%verify _permissions %{_bindir} /newgidmap
%verify _permissions %{_bindir} /newuidmap
2012-10-29 16:15:23 +01:00
2015-07-16 11:52:01 +02:00
%preun
%service_del_preun shadow.service shadow.timer
%postun
%service_del_postun shadow.service shadow.timer
2019-10-09 10:44:59 +02:00
%posttrans
# Migration to /usr/etc
for i in login.defs pam.d/chage pam.d/chfn pam.d/chpasswd pam.d/chsh pam.d/groupadd pam.d/groupdel pam.d/groupmod pam.d/newusers pam.d/passwd pam.d/useradd pam.d/userdel pam.d/usermod; do
test -f /etc/${i}.rpmsave && mv -v /etc/${i}.rpmsave /etc/${i} ||:
done
2012-10-29 16:15:23 +01:00
%files -f shadow.lang
2018-02-26 10:59:29 +01:00
%license COPYING
2012-10-29 16:15:23 +01:00
%doc NEWS doc/HOWTO README README.changes-pwdutils
2019-10-09 10:44:59 +02:00
%if %{defined no_config}
%attr (0644,root,root) %{_distconfdir} /login.defs
%else
2012-10-29 16:15:23 +01:00
%attr (0644,root,root) %config %{_sysconfdir} /login.defs
2019-10-09 10:44:59 +02:00
%endif
2012-10-29 16:15:23 +01:00
%attr (0644,root,root) %config (noreplace) %{_sysconfdir} /default/useradd
2018-11-02 12:24:14 +01:00
%verify (not md5 size mtime) %config (noreplace) %{_sysconfdir} /subuid
%verify (not md5 size mtime) %config (noreplace) %{_sysconfdir} /subgid
2019-10-09 10:44:59 +02:00
%if %{defined no_config}
%{_distconfdir} /pam.d/chage
%{_distconfdir} /pam.d/chfn
%{_distconfdir} /pam.d/chsh
%{_distconfdir} /pam.d/passwd
%{_distconfdir} /pam.d/useradd
%{_distconfdir} /pam.d/chpasswd
%{_distconfdir} /pam.d/groupadd
%{_distconfdir} /pam.d/groupdel
%{_distconfdir} /pam.d/groupmod
%{_distconfdir} /pam.d/newusers
%{_distconfdir} /pam.d/useradd
%{_distconfdir} /pam.d/userdel
%{_distconfdir} /pam.d/usermod
%else
2017-09-08 13:44:56 +02:00
%config %{_sysconfdir} /pam.d/chage
%config %{_sysconfdir} /pam.d/chfn
%config %{_sysconfdir} /pam.d/chsh
%config %{_sysconfdir} /pam.d/passwd
%config %{_sysconfdir} /pam.d/useradd
%config %{_sysconfdir} /pam.d/chpasswd
%config %{_sysconfdir} /pam.d/groupadd
%config %{_sysconfdir} /pam.d/groupdel
%config %{_sysconfdir} /pam.d/groupmod
%config %{_sysconfdir} /pam.d/newusers
%config %{_sysconfdir} /pam.d/useradd
%config %{_sysconfdir} /pam.d/userdel
%config %{_sysconfdir} /pam.d/usermod
2019-10-09 10:44:59 +02:00
%endif
2016-10-19 11:17:17 +02:00
%verify (not mode) %attr (2755,root,shadow) %{_bindir} /chage
%verify (not mode) %attr (4755,root,shadow) %{_bindir} /chfn
%verify (not mode) %attr (4755,root,shadow) %{_bindir} /chsh
%verify (not mode) %attr (4755,root,shadow) %{_bindir} /expiry
%verify (not mode) %attr (4755,root,shadow) %{_bindir} /gpasswd
%verify (not mode) %attr (4755,root,root) %{_bindir} /newgrp
%verify (not mode) %attr (4755,root,shadow) %{_bindir} /passwd
2017-09-14 10:23:12 +02:00
%verify (not mode) %attr (4755,root,shadow) %{_bindir} /newgidmap
%verify (not mode) %attr (4755,root,shadow) %{_bindir} /newuidmap
2012-10-29 16:15:23 +01:00
%{_bindir} /lastlog
%{_bindir} /sg
%{_sbindir} /groupadd
%{_sbindir} /groupdel
%{_sbindir} /groupmod
%{_sbindir} /grpck
%{_sbindir} /pwck
%{_sbindir} /useradd
%{_sbindir} /userdel
%{_sbindir} /usermod
%{_sbindir} /pwconv
%{_sbindir} /pwunconv
%{_sbindir} /chpasswd
%{_sbindir} /newusers
%{_sbindir} /vipw
%{_sbindir} /vigr
%verify (not md5 size mtime) %config (noreplace) %{_sbindir} /useradd.local
%verify (not md5 size mtime) %config (noreplace) %{_sbindir} /userdel-pre.local
%verify (not md5 size mtime) %config (noreplace) %{_sbindir} /userdel-post.local
2019-05-31 08:00:55 +02:00
%{_mandir} /man1/chage.1%{?ext_man}
%{_mandir} /man1/chfn.1%{?ext_man}
%{_mandir} /man1/chsh.1%{?ext_man}
%{_mandir} /man1/expiry.1%{?ext_man}
%{_mandir} /man1/gpasswd.1%{?ext_man}
%{_mandir} /man1/newgrp.1%{?ext_man}
%{_mandir} /man1/passwd.1%{?ext_man}
%{_mandir} /man1/sg.1%{?ext_man}
%{_mandir} /man3/shadow.3%{?ext_man}
%{_mandir} /man5/login.defs.5%{?ext_man}
%{_mandir} /man5/shadow.5%{?ext_man}
%{_mandir} /man8/chpasswd.8%{?ext_man}
%{_mandir} /man8/groupadd.8%{?ext_man}
%{_mandir} /man8/groupdel.8%{?ext_man}
%{_mandir} /man8/groupmod.8%{?ext_man}
%{_mandir} /man8/grpck.8%{?ext_man}
%{_mandir} /man8/lastlog.8%{?ext_man}
%{_mandir} /man8/newusers.8%{?ext_man}
%{_mandir} /man8/pwck.8%{?ext_man}
%{_mandir} /man8/pwconv.8%{?ext_man}
%{_mandir} /man8/pwunconv.8%{?ext_man}
%{_mandir} /man8/useradd.8%{?ext_man}
%{_mandir} /man8/userdel.8%{?ext_man}
%{_mandir} /man8/usermod.8%{?ext_man}
%{_mandir} /man8/vigr.8%{?ext_man}
%{_mandir} /man8/vipw.8%{?ext_man}
%{_mandir} /man5/subuid.5%{?ext_man}
%{_mandir} /man5/subgid.5%{?ext_man}
%{_mandir} /man1/newgidmap.1%{?ext_man}
%{_mandir} /man1/newuidmap.1%{?ext_man}
2012-10-29 16:15:23 +01:00
2015-07-16 11:52:01 +02:00
%{_unitdir} /*
2012-10-29 16:15:23 +01:00
%changelog