sys-auth/pambase: revision bump adds elogind support
authorMichael Palimaka <kensington@gentoo.org>
Sat, 3 Jun 2017 12:04:16 +0000 (22:04 +1000)
committerMichael Palimaka <kensington@gentoo.org>
Sat, 3 Jun 2017 12:06:00 +0000 (22:06 +1000)
Thanks-to: Sven Eden <yamakuzure@gmx.net>
Thanks-to: Andreas Sturmlechner <asturm@gentoo.org>
Gentoo-bug: 599498
Package-Manager: Portage-2.3.5, Repoman-2.3.2

sys-auth/pambase/files/pambase-20150213-elogind.patch [new file with mode: 0644]
sys-auth/pambase/files/pambase-20150213-selinux-note.patch
sys-auth/pambase/metadata.xml
sys-auth/pambase/pambase-20150213-r1.ebuild [new file with mode: 0644]

diff --git a/sys-auth/pambase/files/pambase-20150213-elogind.patch b/sys-auth/pambase/files/pambase-20150213-elogind.patch
new file mode 100644 (file)
index 0000000..7ec92f7
--- /dev/null
@@ -0,0 +1,23 @@
+--- a/Makefile
++++ b/Makefile
+@@ -32,6 +32,10 @@
+ PAMFLAGS += -DHAVE_SYSTEMD=1
+ endif
+ 
++ifeq "$(ELOGIND)" "yes"
++PAMFLAGS += -DHAVE_ELOGIND=1
++endif
++
+ ifeq "$(GNOME_KEYRING)" "yes"
+ PAMFLAGS += -DHAVE_GNOME_KEYRING=1
+ endif
+--- a/system-auth.in
++++ b/system-auth.in
+@@ -39,3 +39,7 @@
+ #if HAVE_SYSTEMD
+ -session        optional        pam_systemd.so
+ #endif
++
++#if HAVE_ELOGIND
++-session        optional        pam_elogind.so
++#endif
index 1cb018f34508d0b2c5b883e83d830925d86f6aaa..0c44d108090c95b058792c55a52457912440b3cd 100644 (file)
@@ -1,5 +1,5 @@
---- system-login.in.orig       2015-04-17 16:58:02.247000000 +0200
-+++ system-login.in    2015-04-17 16:58:07.684000000 +0200
+--- a/system-login.in.orig     2015-04-17 16:58:02.247000000 +0200
++++ b/system-login.in  2015-04-17 16:58:07.684000000 +0200
 @@ -48,7 +48,7 @@
  session               optional        pam_ck_connector.so nox11
  #endif
index 2d8727dbfa3dc45fcf7b4e843f77852ad3cabbfa..7cd2dea5abe7a09f8c490547d68b828bbfab7a25 100644 (file)
@@ -16,6 +16,9 @@
       allows for console logins to make use of ConsoleKit
       authorization.
     </flag>
+    <flag name="elogind">
+      Use pam_elogind module to register user sessions with elogind.
+    </flag>
     <flag name="systemd">
       Use pam_systemd module to register user sessions in the systemd
       control group hierarchy.
diff --git a/sys-auth/pambase/pambase-20150213-r1.ebuild b/sys-auth/pambase/pambase-20150213-r1.ebuild
new file mode 100644 (file)
index 0000000..9be8d62
--- /dev/null
@@ -0,0 +1,107 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+DESCRIPTION="PAM base configuration files"
+HOMEPAGE="https://www.gentoo.org/proj/en/base/pam/"
+SRC_URI="https://dev.gentoo.org/~vapier/dist/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 -sparc-fbsd -x86-fbsd ~amd64-linux ~x86-linux"
+IUSE="consolekit cracklib debug elogind gnome-keyring minimal mktemp +nullok pam_krb5 pam_ssh passwdqc securetty selinux +sha512 systemd"
+
+RESTRICT="binchecks"
+
+MIN_PAM_REQ=1.1.3
+
+RDEPEND="
+       || (
+               >=sys-libs/pam-${MIN_PAM_REQ}
+               ( sys-auth/openpam || ( sys-freebsd/freebsd-pam-modules sys-netbsd/netbsd-pam-modules ) )
+       )
+       consolekit? ( sys-auth/consolekit[pam] )
+       cracklib? ( sys-libs/pam[cracklib] )
+       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/openpam )
+               sys-auth/pam_krb5
+       )
+       pam_ssh? ( sys-auth/pam_ssh )
+       passwdqc? ( sys-auth/pam_passwdqc )
+       selinux? ( sys-libs/pam[selinux] )
+       sha512? ( >=sys-libs/pam-${MIN_PAM_REQ} )
+       systemd? ( sys-apps/systemd[pam] )
+"
+DEPEND="
+       app-arch/xz-utils
+       app-portage/portage-utils
+"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-selinux-note.patch #540096
+       "${FILESDIR}"/${P}-elogind.patch #599498
+)
+
+pkg_setup() {
+       local stcnt=0
+
+       use consolekit && stcnt=$((stcnt+1))
+       use elogind && stcnt=$((stcnt+1))
+       use systemd && stcnt=$((stcnt+1))
+
+       if [[ ${stcnt} -gt 1 ]] ; then
+               ewarn "You are enabling ${stcnt} session trackers at the same time."
+               ewarn "This is not a recommended setup to have. Please consider enabling"
+               ewarn "only one of USE=\"consolekit\", USE=\"elogind\" or USE=\"systemd\"."
+       fi
+}
+
+src_compile() {
+       local implementation linux_pam_version
+       if has_version sys-libs/pam; then
+               implementation=linux-pam
+               local ver_str=$(qatom $(best_version sys-libs/pam) | cut -d ' ' -f 3)
+               linux_pam_version=$(printf "0x%02x%02x%02x" ${ver_str//\./ })
+       elif has_version sys-auth/openpam; then
+               implementation=openpam
+       else
+               die "PAM implementation not identified"
+       fi
+
+       use_var() {
+               local varname=$(echo "$1" | tr '[:lower:]' '[:upper:]')
+               local usename=${2-$(echo "$1" | tr '[:upper:]' '[:lower:]')}
+               local varvalue=$(usex ${usename})
+               echo "${varname}=${varvalue}"
+       }
+
+       emake \
+               GIT=true \
+               $(use_var debug) \
+               $(use_var cracklib) \
+               $(use_var passwdqc) \
+               $(use_var consolekit) \
+               $(use_var elogind) \
+               $(use_var systemd) \
+               $(use_var GNOME_KEYRING gnome-keyring) \
+               $(use_var selinux) \
+               $(use_var nullok) \
+               $(use_var mktemp) \
+               $(use_var pam_ssh) \
+               $(use_var securetty) \
+               $(use_var sha512) \
+               $(use_var KRB5 pam_krb5) \
+               $(use_var minimal) \
+               IMPLEMENTATION=${implementation} \
+               LINUX_PAM_VERSION=${linux_pam_version}
+}
+
+src_test() { :; }
+
+src_install() {
+       emake GIT=true DESTDIR="${ED}" install
+}