sudo/sudo.spec
Kristyna Streitova fc0b553ce4 Accepting request 568794 from home:avindra
- Update to 1.8.22
  * Commands run in the background from a script run via sudo will
    no longer receive SIGHUP when the parent exits and I/O logging
    is enabled
  * A particularly offensive insult is now disabled by default
  * The description of sudo -i now correctly documents that the
    env_keep and env_check sudoers options are applied to the
    environment
  * Fixed a crash when the system's host name is not set
  * The sudoers2ldif script now handles #include and #includedir
    directives.
  * Fixed a bug where sudo would silently exit when the command
    was not allowed by sudoers and the passwd_tries sudoers option
    was set to a value less than one.
  * Fixed a bug with the listpw and verifypw sudoers options and
    multiple sudoers sources. If the option is set to all a
    password should be required unless none of a user's sudoers
    entries from any source require authentication.
  * Fixed a bug with the listpw and verifypw sudoers options in
    the LDAP and SSSD back-ends. If the option is set to any and
    the entry contained multiple rules, only the first matching
    rule was checked. If an entry contained more than one matching
    rule and the first rule required authentication but a
    subsequent rule did not, sudo would prompt for a password when
    it should not have.
  * When running a command as the invoking user (not root), sudo
    would execute the command with the same group vector it was
    started with. Sudo now executes the command with a new group
    vector based on the group database which is consistent with how
    su(1) operates.
  * Fixed a double free in the SSSD back-end that could occur when
    ipa_hostname is present in sssd.conf and is set to an unqualified
    host name.
  * When I/O logging is enabled, sudo will now write to the terminal
    even when it is a background process. Previously, sudo would only
    write to the tty when it was the foreground process when I/O
    logging was enabled. If the TOSTOP terminal flag is set, sudo
    will suspend the command (and then itself) with the SIGTTOU signal.
  * A new authfail_message sudoers option that overrides the default
    N incorrect password attempt(s).
  * An empty sudoRunAsUser attribute in the LDAP and SSSD backends
    will now match the invoking user. This is more consistent with
    how an empty runas user in the sudoers file is treated.
  * Documented that in check mode, visudo does not check the owner /
    mode on files specified with the -f flag
  * It is now an error to specify the runas user as an empty string
    on the command line. Previously, an empty runas user was treated
    the same as an unspecified runas user
  * When timestamp_type option is set to tty and a terminal is
    present, the time stamp record will now include the start time
    of the session leader. When the timestamp_type option is set
    to ppid or when no terminal is available, the start time of the
    parent process is used instead. This significantly reduces the
    likelihood of a time stamp record being re-used when a user logs
    out and back in again.
  * The sudoers time stamp file format is now documented in the new
    sudoers_timestamp manual.
  * Visudo will now use the SUDO_EDITOR environment variable (if
    present) in addition to VISUAL and EDITOR. 
- rebase sudoers2ldif-env.patch
- cleanup with spec-cleaner

OBS-URL: https://build.opensuse.org/request/show/568794
OBS-URL: https://build.opensuse.org/package/show/Base:System/sudo?expand=0&rev=130
2018-01-24 11:27:07 +00:00

192 lines
6.1 KiB
RPMSpec

#
# spec file for package sudo
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: sudo
Version: 1.8.22
Release: 0
Summary: Execute some commands as root
License: ISC
Group: System/Base
Url: https://www.sudo.ws/
Source0: https://sudo.ws/sudo/dist/%{name}-%{version}.tar.gz
Source1: sudo.pamd
Source2: README.SUSE
Source3: fate_313276_test.sh
Source4: README_313276.test
Source5: https://sudo.ws/sudo/dist/%{name}-%{version}.tar.gz.sig
Source6: %{name}.keyring
Patch0: sudoers2ldif-env.patch
# PATCH-OPENSUSE: the "SUSE" branding of the default sudo config
Patch1: sudo-sudoers.patch
BuildRequires: audit-devel
BuildRequires: cyrus-sasl-devel
BuildRequires: groff
BuildRequires: libselinux-devel
BuildRequires: openldap2-devel
BuildRequires: pam-devel
BuildRequires: systemd-rpm-macros
BuildRequires: zlib-devel
Requires(pre): coreutils
Requires(pre): permissions
%description
Sudo is a command that allows users to execute some commands as root.
The %{_sysconfdir}/sudoers file (edited with 'visudo') specifies which users have
access to sudo and which commands they can run. Sudo logs all its
activities to syslogd, so the system administrator can keep an eye on
things. Sudo asks for the password for initializing a check period of a
given time N (where N is defined at installation and is set to 5
minutes by default).
%package devel
Summary: Header files needed for sudo plugin development
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
%description devel
These header files are needed for building of sudo plugins.
%package test
Summary: Tests for the package
Group: Development/Tools/Other
Requires: %{name} = %{version}
%description test
Tests for fate#313276
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%build
%ifarch s390 s390x %{sparc}
F_PIE=-fPIE
%else
F_PIE=-fpie
%endif
export CFLAGS="%{optflags} -Wall $F_PIE -DLDAP_DEPRECATED"
export LDFLAGS="-pie"
%configure \
--libexecdir=%{_libexecdir}/sudo \
--docdir=%{_docdir}/%{name} \
--with-noexec=%{_libexecdir}/sudo/sudo_noexec.so \
--enable-tmpfiles.d=%{_tmpfilesdir} \
--with-pam \
--with-ldap \
--with-selinux \
--with-linux-audit \
--with-logfac=auth \
--with-all-insults \
--with-ignore-dot \
--with-tty-tickets \
--enable-shell-sets-home \
--enable-warnings \
--with-sendmail=%{_sbindir}/sendmail \
--with-sudoers-mode=0440 \
--with-env-editor \
--without-secure-path \
--with-passprompt="[sudo] password for %{p}: " \
--with-rundir=%{_localstatedir}/lib/sudo \
--with-sssd
make %{?_smp_mflags}
%install
%make_install install_uid=`id -u` install_gid=`id -g`
install -d -m 755 %{buildroot}%{_sysconfdir}/pam.d
install -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/pam.d/sudo
mv %{buildroot}%{_docdir}/%{name}/sudoers2ldif %{buildroot}%{_sbindir}
rm -f %{buildroot}%{_bindir}/sudoedit
ln -sf %{_bindir}/sudo %{buildroot}%{_bindir}/sudoedit
install -d -m 755 %{buildroot}%{_sysconfdir}/openldap/schema
install -m 644 doc/schema.OpenLDAP %{buildroot}%{_sysconfdir}/openldap/schema/sudo.schema
install -m 644 %{SOURCE2} %{buildroot}%{_docdir}/%{name}/
rm -f %{buildroot}%{_docdir}/%{name}/sample.pam
rm -f %{buildroot}%{_docdir}/%{name}/sample.syslog.conf
rm -f %{buildroot}%{_docdir}/%{name}/schema.OpenLDAP
rm -f %{buildroot}%{_sysconfdir}/sudoers.dist
%find_lang %{name}
%find_lang sudoers
cat sudoers.lang >> %{name}.lang
# tests
install -d -m 755 %{buildroot}%{_localstatedir}/lib/tests/sudo
install -m 755 %{SOURCE3} %{buildroot}%{_localstatedir}/lib/tests/sudo
install -m 755 %{SOURCE4} %{buildroot}%{_localstatedir}/lib/tests/sudo
install -d %{buildroot}%{_docdir}/%{name}-test
install -m 644 %{buildroot}%{_docdir}/%{name}/LICENSE %{buildroot}%{_docdir}/%{name}-test/LICENSE
%post
chmod 0440 %{_sysconfdir}/sudoers
%if 0%{?suse_version} <= 1130
%run_permissions
%else
%set_permissions %{_bindir}/sudo
%endif
%tmpfiles_create %{_tmpfilesdir}/sudo.conf
%verifyscript
%verify_permissions -e %{_bindir}/sudo
%files -f %{name}.lang
%doc %{_docdir}/%{name}
%{_mandir}/man5/sudoers.5%{ext_man}
%{_mandir}/man5/sudo.conf.5%{ext_man}
%{_mandir}/man5/sudoers.ldap.5%{ext_man}
%{_mandir}/man5/sudoers_timestamp.5%{ext_man}
%{_mandir}/man8/sudo.8%{ext_man}
%{_mandir}/man8/sudoedit.8%{ext_man}
%{_mandir}/man8/sudoreplay.8%{ext_man}
%{_mandir}/man8/visudo.8%{ext_man}
%config(noreplace) %attr(0440,root,root) %{_sysconfdir}/sudoers
%dir %{_sysconfdir}/sudoers.d
%config %{_sysconfdir}/pam.d/sudo
%attr(4755,root,root) %{_bindir}/sudo
%dir %{_sysconfdir}/openldap
%dir %{_sysconfdir}/openldap/schema
%attr(0444,root,root) %config %{_sysconfdir}/openldap/schema/sudo.schema
%{_bindir}/sudoedit
%{_bindir}/sudoreplay
%{_sbindir}/visudo
%attr(0755,root,root) %{_sbindir}/sudoers2ldif
%dir %{_libexecdir}/%{name}
%{_libexecdir}/%{name}/sesh
%{_libexecdir}/%{name}/sudo_noexec.so
%{_libexecdir}/%{name}/sudoers.so
%{_libexecdir}/%{name}/group_file.so
%{_libexecdir}/%{name}/system_group.so
%{_libexecdir}/%{name}/libsudo_util.so.*
%attr(0700,root,root) %dir %ghost %{_localstatedir}/lib/%{name}
%dir %{_tmpfilesdir}
%{_tmpfilesdir}/sudo.conf
%ghost %{_localstatedir}/lib/sudo/ts
%files devel
%doc plugins/sample/sample_plugin.c
%{_includedir}/sudo_plugin.h
%{_mandir}/man8/sudo_plugin.8*
%attr(0644,root,root) %{_libexecdir}/%{name}/libsudo_util.so
%{_libexecdir}/%{name}/*.la
%files test
%{_localstatedir}/lib/tests
%{_docdir}/%{name}-test/
%changelog