summaryrefslogtreecommitdiff
path: root/app-admin/sudo
diff options
context:
space:
mode:
Diffstat (limited to 'app-admin/sudo')
-rw-r--r--app-admin/sudo/Manifest3
-rw-r--r--app-admin/sudo/files/sudo-1.9.4-without-sendmail_build_fix.patch45
-rw-r--r--app-admin/sudo/sudo-1.9.4_p2.ebuild (renamed from app-admin/sudo/sudo-1.9.4.ebuild)4
-rw-r--r--app-admin/sudo/sudo-1.9.5_p1.ebuild261
4 files changed, 263 insertions, 50 deletions
diff --git a/app-admin/sudo/Manifest b/app-admin/sudo/Manifest
index 238a3d6aada8..7ee4dd987ee5 100644
--- a/app-admin/sudo/Manifest
+++ b/app-admin/sudo/Manifest
@@ -1,2 +1,3 @@
DIST sudo-1.9.3p1.tar.gz 3958071 BLAKE2B b681c120faa5dc7f25e27c1be423d68cea70f63dcdfea2183fd386a34dec0376555453399d3f8886c66c6507343648d40b59a058710432154061b210df2a704c SHA512 3ad13fd03e5b371fd6bf7909731ffc11431d2182a744b654f7e5d4b810e47955d49bc78f551afe13ec56acbce694139c33a15bc022cea41b17af5496b8b7f89f
-DIST sudo-1.9.4.tar.gz 3992062 BLAKE2B 65eb8f78eb34ca7009ea0752a1acbfcb4e06ddd7083301736ac1bac7019c1a45cf2c34f69ac5b86fa4ac01310e209f236840712ad4998b692ddf774b9d1bf60d SHA512 682b4d303147193149509b734b64f8541e00ccc1c41468928dff307f9d52f2b1aae005deee1ef5ac389cd3dc506368dba8a78c0392ea1434dd78cf7ef8a08408
+DIST sudo-1.9.4p2.tar.gz 3994184 BLAKE2B 110562792fa3d6f3f30fb0f07eefca975f062d41743fb84a34c27bf4c72296aa5f581de1f74895deedd6b47cb235399c52b9d3d818d274c6cdc61c741a0a287e SHA512 5258531d3dca0e812df5f4f8f26665f643c036d42534e3b98f5dd463624e9df0bba2a92c15da0c9958bda7e68f6f10b7b34875792ac9c205d1e70a12bc4f98a4
+DIST sudo-1.9.5p1.tar.gz 4008926 BLAKE2B f033a0dcea98d5b038ee310e76cb9f532abc3aa33880e4f606cb9463d5daf231c7697670c68b2829e3f33f687280c15e026ae700dec527a380e26d6e20fc1171 SHA512 0168f0b61a6c2d2f60a92b5b4d3c3254aed4116decabac3821d9ac2fd7f74bb7b019e35bb8955335315b3b00ddf4e4acd82540df0addc1d9bf4f44b60447a878
diff --git a/app-admin/sudo/files/sudo-1.9.4-without-sendmail_build_fix.patch b/app-admin/sudo/files/sudo-1.9.4-without-sendmail_build_fix.patch
deleted file mode 100644
index f40bfe445e04..000000000000
--- a/app-admin/sudo/files/sudo-1.9.4-without-sendmail_build_fix.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-
-# HG changeset patch
-# User Todd C. Miller <Todd.Miller@sudo.ws>
-# Date 1606767492 25200
-# Node ID 41db1aad85bbce444b511bcb28b9628a0a22fcd9
-# Parent 96a5cfe3c66b6ee84d7f7b6fb26d932f45a44b76
-Fix build when configured using --without-sendmail
-Bug #947
-
-diff -r 96a5cfe3c66b -r 41db1aad85bb lib/eventlog/eventlog.c
---- a/lib/eventlog/eventlog.c Sun Nov 29 15:11:34 2020 -0700
-+++ b/lib/eventlog/eventlog.c Mon Nov 30 13:18:12 2020 -0700
-@@ -78,7 +78,7 @@
- static FILE *eventlog_stub_open_log(int type, const char *logfile);
- static void eventlog_stub_close_log(int type, FILE *fp);
-
--/* Eventlog config settings */
-+/* Eventlog config settings (default values). */
- static struct eventlog_config evl_conf = {
- EVLOG_NONE, /* type */
- EVLOG_SUDO, /* format */
-@@ -91,7 +91,11 @@
- false, /* omit_hostname */
- _PATH_SUDO_LOGFILE, /* logpath */
- "%h %e %T", /* time_fmt */
-+#ifdef _PATH_SUDO_SENDMAIL
- _PATH_SUDO_SENDMAIL, /* mailerpath */
-+#else
-+ NULL, /* mailerpath (disabled) */
-+#endif
- "-t", /* mailerflags */
- NULL, /* mailfrom */
- MAILTO, /* mailto */
-@@ -1436,8 +1440,10 @@
- evl_conf.logpath = _PATH_SUDO_LOGFILE;
- if (evl_conf.time_fmt == NULL)
- evl_conf.time_fmt = "%h %e %T";
-+#ifdef _PATH_SUDO_SENDMAIL
- if (evl_conf.mailerpath == NULL)
- evl_conf.mailerpath = _PATH_SUDO_SENDMAIL;
-+#endif
- if (evl_conf.mailerflags == NULL)
- evl_conf.mailerflags = "-t";
- if (evl_conf.mailto == NULL)
-
diff --git a/app-admin/sudo/sudo-1.9.4.ebuild b/app-admin/sudo/sudo-1.9.4_p2.ebuild
index 74f99d722acf..84770ae1b432 100644
--- a/app-admin/sudo/sudo-1.9.4.ebuild
+++ b/app-admin/sudo/sudo-1.9.4_p2.ebuild
@@ -74,10 +74,6 @@ REQUIRED_USE="
MAKEOPTS+=" SAMPLES="
-PATCHES=(
- "${FILESDIR}/${P}-without-sendmail_build_fix.patch" #757819
-)
-
src_prepare() {
default
elibtoolize
diff --git a/app-admin/sudo/sudo-1.9.5_p1.ebuild b/app-admin/sudo/sudo-1.9.5_p1.ebuild
new file mode 100644
index 000000000000..4bb085b6b846
--- /dev/null
+++ b/app-admin/sudo/sudo-1.9.5_p1.ebuild
@@ -0,0 +1,261 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit pam multilib libtool systemd tmpfiles
+
+MY_P="${P/_/}"
+MY_P="${MY_P/beta/b}"
+
+DESCRIPTION="Allows users or groups to run commands as other users"
+HOMEPAGE="https://www.sudo.ws/"
+if [[ ${PV} == "9999" ]] ; then
+ inherit mercurial
+ EHG_REPO_URI="https://www.sudo.ws/repos/sudo"
+else
+ uri_prefix=
+ case ${P} in
+ *_beta*|*_rc*) uri_prefix=beta/ ;;
+ esac
+
+ SRC_URI="https://www.sudo.ws/sudo/dist/${uri_prefix}${MY_P}.tar.gz
+ ftp://ftp.sudo.ws/pub/sudo/${uri_prefix}${MY_P}.tar.gz"
+ if [[ ${PV} != *_beta* ]] && [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 sparc x86 ~sparc-solaris"
+ fi
+fi
+
+# Basic license is ISC-style as-is, some files are released under
+# 3-clause BSD license
+LICENSE="ISC BSD"
+SLOT="0"
+IUSE="gcrypt ldap libressl nls offensive pam sasl +secure-path selinux +sendmail skey ssl sssd"
+
+DEPEND="
+ sys-libs/zlib:=
+ gcrypt? ( dev-libs/libgcrypt:= )
+ ldap? (
+ >=net-nds/openldap-2.1.30-r1
+ sasl? (
+ dev-libs/cyrus-sasl
+ net-nds/openldap[sasl]
+ )
+ )
+ pam? ( sys-libs/pam )
+ sasl? ( dev-libs/cyrus-sasl )
+ skey? ( >=sys-auth/skey-1.1.5-r1 )
+ ssl? (
+ !libressl? ( dev-libs/openssl:0= )
+ libressl? ( dev-libs/libressl:0= )
+ )
+ sssd? ( sys-auth/sssd[sudo] )
+"
+RDEPEND="
+ ${DEPEND}
+ >=app-misc/editor-wrapper-3
+ virtual/editor
+ ldap? ( dev-lang/perl )
+ pam? ( sys-auth/pambase )
+ selinux? ( sec-policy/selinux-sudo )
+ sendmail? ( virtual/mta )
+"
+BDEPEND="
+ sys-devel/bison
+ virtual/pkgconfig
+"
+
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="
+ ?? ( pam skey )
+ ?? ( gcrypt ssl )
+"
+
+MAKEOPTS+=" SAMPLES="
+
+src_prepare() {
+ default
+ elibtoolize
+}
+
+set_secure_path() {
+ # FIXME: secure_path is a compile time setting. using PATH or
+ # ROOTPATH is not perfect, env-update may invalidate this, but until it
+ # is available as a sudoers setting this will have to do.
+ einfo "Setting secure_path ..."
+
+ # first extract the default ROOTPATH from build env
+ SECURE_PATH=$(unset ROOTPATH; . "${EPREFIX}"/etc/profile.env;
+ echo "${ROOTPATH}")
+ case "${SECURE_PATH}" in
+ */usr/sbin*) ;;
+ *) SECURE_PATH=$(unset PATH;
+ . "${EPREFIX}"/etc/profile.env; echo "${PATH}")
+ ;;
+ esac
+ if [[ -z ${SECURE_PATH} ]] ; then
+ ewarn " Failed to detect SECURE_PATH, please report this"
+ fi
+
+ # then remove duplicate path entries
+ cleanpath() {
+ local newpath thisp IFS=:
+ for thisp in $1 ; do
+ if [[ :${newpath}: != *:${thisp}:* ]] ; then
+ newpath+=:${thisp}
+ else
+ einfo " Duplicate entry ${thisp} removed..."
+ fi
+ done
+ SECURE_PATH=${newpath#:}
+ }
+ cleanpath /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin${SECURE_PATH:+:${SECURE_PATH}}
+
+ # finally, strip gcc paths #136027
+ rmpath() {
+ local e newpath thisp IFS=:
+ for thisp in ${SECURE_PATH} ; do
+ for e ; do [[ ${thisp} == ${e} ]] && continue 2 ; done
+ newpath+=:${thisp}
+ done
+ SECURE_PATH=${newpath#:}
+ }
+ rmpath '*/gcc-bin/*' '*/gnat-gcc-bin/*' '*/gnat-gcc/*'
+
+ einfo "... done"
+}
+
+src_configure() {
+ local SECURE_PATH
+ set_secure_path
+
+ # audit: somebody got to explain me how I can test this before I
+ # enable it.. - Diego
+ # plugindir: autoconf code is crappy and does not delay evaluation
+ # until `make` time, so we have to use a full path here rather than
+ # basing off other values.
+ myeconfargs=(
+ # requires some python eclass
+ --disable-python
+ --enable-tmpfiles.d="${EPREFIX}"/usr/lib/tmpfiles.d
+ --enable-zlib=system
+ --with-editor="${EPREFIX}"/usr/libexec/editor
+ --with-env-editor
+ --with-plugindir="${EPREFIX}"/usr/$(get_libdir)/sudo
+ --with-rundir="${EPREFIX}"/run/sudo
+ --with-vardir="${EPREFIX}"/var/db/sudo
+ --without-linux-audit
+ --without-opie
+ $(use_enable gcrypt)
+ $(use_enable nls)
+ $(use_enable sasl)
+ $(use_enable ssl openssl)
+ $(use_with ldap)
+ $(use_with ldap ldap_conf_file /etc/ldap.conf.sudo)
+ $(use_with offensive insults)
+ $(use_with offensive all-insults)
+ $(use_with pam)
+ $(use_with pam pam-login)
+ $(use_with secure-path secure-path "${SECURE_PATH}")
+ $(use_with selinux)
+ $(use_with sendmail)
+ $(use_with skey)
+ $(use_with sssd)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ if use ldap ; then
+ dodoc README.LDAP
+
+ cat <<-EOF > "${T}"/ldap.conf.sudo
+ # See ldap.conf(5) and README.LDAP for details
+ # This file should only be readable by root
+
+ # supported directives: host, port, ssl, ldap_version
+ # uri, binddn, bindpw, sudoers_base, sudoers_debug
+ # tls_{checkpeer,cacertfile,cacertdir,randfile,ciphers,cert,key}
+ EOF
+
+ if use sasl ; then
+ cat <<-EOF >> "${T}"/ldap.conf.sudo
+
+ # SASL directives: use_sasl, sasl_mech, sasl_auth_id
+ # sasl_secprops, rootuse_sasl, rootsasl_auth_id, krb5_ccname
+ EOF
+ fi
+
+ insinto /etc
+ doins "${T}"/ldap.conf.sudo
+ fperms 0440 /etc/ldap.conf.sudo
+
+ insinto /etc/openldap/schema
+ newins doc/schema.OpenLDAP sudo.schema
+ fi
+
+ pamd_mimic system-auth sudo auth account session
+ pamd_mimic system-auth sudo-i auth account session
+
+ keepdir /var/db/sudo/lectured
+ fperms 0700 /var/db/sudo/lectured
+ fperms 0711 /var/db/sudo #652958
+
+ # Don't install into /run as that is a tmpfs most of the time
+ # (bug #504854)
+ rm -rf "${ED}"/run || die
+
+ find "${ED}" -type f -name "*.la" -delete || die #697812
+}
+
+pkg_postinst() {
+ tmpfiles_process sudo.conf
+
+ #652958
+ local sudo_db="${EROOT}/var/db/sudo"
+ if [[ "$(stat -c %a "${sudo_db}")" -ne 711 ]] ; then
+ chmod 711 "${sudo_db}" || die
+ fi
+
+ if use ldap ; then
+ ewarn
+ ewarn "sudo uses the /etc/ldap.conf.sudo file for ldap configuration."
+ ewarn
+ if grep -qs '^[[:space:]]*sudoers:' "${ROOT}"/etc/nsswitch.conf ; then
+ ewarn "In 1.7 series, LDAP is no more consulted, unless explicitly"
+ ewarn "configured in /etc/nsswitch.conf."
+ ewarn
+ ewarn "To make use of LDAP, add this line to your /etc/nsswitch.conf:"
+ ewarn " sudoers: ldap files"
+ ewarn
+ fi
+ fi
+ if use prefix ; then
+ ewarn
+ ewarn "To use sudo, you need to change file ownership and permissions"
+ ewarn "with root privileges, as follows:"
+ ewarn
+ ewarn " # chown root:root ${EPREFIX}/usr/bin/sudo"
+ ewarn " # chown root:root ${EPREFIX}/usr/lib/sudo/sudoers.so"
+ ewarn " # chown root:root ${EPREFIX}/etc/sudoers"
+ ewarn " # chown root:root ${EPREFIX}/etc/sudoers.d"
+ ewarn " # chown root:root ${EPREFIX}/var/db/sudo"
+ ewarn " # chmod 4111 ${EPREFIX}/usr/bin/sudo"
+ ewarn
+ fi
+
+ elog "To use the -A (askpass) option, you need to install a compatible"
+ elog "password program from the following list. Starred packages will"
+ elog "automatically register for the use with sudo (but will not force"
+ elog "the -A option):"
+ elog ""
+ elog " [*] net-misc/ssh-askpass-fullscreen"
+ elog " net-misc/x11-ssh-askpass"
+ elog ""
+ elog "You can override the choice by setting the SUDO_ASKPASS environmnent"
+ elog "variable to the program you want to use."
+}