mirror of
https://anongit.gentoo.org/git/repo/gentoo.git
synced 2025-12-15 22:50:54 +00:00
129 lines
3.1 KiB
Bash
129 lines
3.1 KiB
Bash
# Copyright 1999-2025 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
PYTHON_COMPAT=( python3_{11..13} )
|
|
|
|
inherit edo pam python-any-r1 readme.gentoo-r1
|
|
|
|
DESCRIPTION="PAM base configuration files"
|
|
HOMEPAGE="https://github.com/gentoo/pambase"
|
|
|
|
if [[ ${PV} == *9999 ]]; then
|
|
inherit git-r3
|
|
EGIT_REPO_URI="
|
|
https://anongit.gentoo.org/git/proj/pambase.git
|
|
https://github.com/gentoo/pambase.git
|
|
"
|
|
else
|
|
SRC_URI="https://gitweb.gentoo.org/proj/pambase.git/snapshot/${P}.tar.bz2"
|
|
|
|
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
|
|
fi
|
|
|
|
LICENSE="MIT"
|
|
SLOT="0"
|
|
IUSE="caps debug elogind gnome-keyring homed minimal mktemp +nullok pam_krb5 pam_ssh +passwdqc pwhistory pwquality securetty selinux +sha512 sssd systemd yescrypt"
|
|
|
|
RESTRICT="binchecks"
|
|
|
|
REQUIRED_USE="
|
|
?? ( elogind systemd )
|
|
?? ( passwdqc pwquality )
|
|
?? ( sha512 yescrypt )
|
|
pwhistory? ( || ( passwdqc pwquality ) )
|
|
homed? ( !pam_krb5 )
|
|
pam_krb5? ( !homed )
|
|
"
|
|
|
|
MIN_PAM_REQ=1.4.0
|
|
|
|
RDEPEND="
|
|
>=sys-libs/pam-${MIN_PAM_REQ}
|
|
elogind? ( sys-auth/elogind[pam] )
|
|
gnome-keyring? ( gnome-base/gnome-keyring[pam] )
|
|
mktemp? ( sys-auth/pam_mktemp )
|
|
pam_krb5? (
|
|
>=sys-libs/pam-${MIN_PAM_REQ}
|
|
sys-auth/pam_krb5
|
|
)
|
|
caps? ( sys-libs/libcap[pam] )
|
|
pam_ssh? ( sys-auth/pam_ssh )
|
|
passwdqc? ( >=sys-auth/passwdqc-1.4.0-r1 )
|
|
pwquality? ( dev-libs/libpwquality[pam] )
|
|
selinux? ( sys-libs/pam[selinux] )
|
|
sha512? ( >=sys-libs/pam-${MIN_PAM_REQ} )
|
|
homed? ( sys-apps/systemd[homed] )
|
|
systemd? ( sys-apps/systemd[pam] )
|
|
yescrypt? ( sys-libs/libxcrypt[system] )
|
|
sssd? ( sys-auth/sssd )
|
|
"
|
|
BDEPEND="
|
|
$(python_gen_any_dep '
|
|
dev-python/jinja2[${PYTHON_USEDEP}]
|
|
')
|
|
"
|
|
|
|
python_check_deps() {
|
|
python_has_version "dev-python/jinja2[${PYTHON_USEDEP}]"
|
|
}
|
|
|
|
src_configure() {
|
|
local crypt=md5
|
|
# TODO: sha256, blowfish, gost_yescrypt
|
|
use sha512 && crypt=sha512
|
|
use yescrypt && crypt=yescrypt
|
|
|
|
local pamargs=(
|
|
# Not all 'upstream' options are (currently) wired up
|
|
# in the ebuild.
|
|
#
|
|
# TODO: pam_shells
|
|
$(usev caps '--caps')
|
|
$(usev debug '--debug')
|
|
$(usev elogind '--elogind')
|
|
$(usev gnome-keyring '--gnome-keyring')
|
|
$(usev homed '--homed')
|
|
$(usev minimal '--minimal')
|
|
$(usev mktemp '--mktemp')
|
|
$(usev nullok '--nullok')
|
|
$(usev pam_krb5 '--krb5')
|
|
$(usev pam_ssh '--pam-ssh')
|
|
$(usev passwdqc '--passwdqc')
|
|
$(usev pwhistory '--pwhistory')
|
|
$(usev pwquality '--pwquality')
|
|
$(usev securetty '--securetty')
|
|
$(usev selinux '--selinux')
|
|
$(usex systemd '--systemd' '--openrc')
|
|
$(usev sssd '--sssd')
|
|
|
|
--encrypt=${crypt}
|
|
)
|
|
|
|
edo ${EPYTHON} ./${PN}.py "${pamargs[@]}"
|
|
}
|
|
|
|
src_test() { :; }
|
|
|
|
src_install() {
|
|
local DOC_CONTENTS
|
|
|
|
if use passwdqc; then
|
|
DOC_CONTENTS="To amend the existing password policy please see the man 5 passwdqc.conf
|
|
page and then edit the /etc/security/passwdqc.conf file"
|
|
fi
|
|
|
|
if use pwquality; then
|
|
DOC_CONTENTS="To amend the existing password policy please see the man 5 pwquality.conf
|
|
page and then edit the /etc/security/pwquality.conf file"
|
|
fi
|
|
|
|
{ use passwdqc || use pwquality; } && readme.gentoo_create_doc
|
|
|
|
dopamd -r stack/.
|
|
}
|
|
|
|
pkg_postinst() {
|
|
{ use passwdqc || use pwquality; } && readme.gentoo_print_elog
|
|
}
|