1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
6 if [[ ${PV} = *9999* ]]; then
7 EGIT_BRANCH="v241-stable"
8 EGIT_REPO_URI="https://github.com/elogind/elogind.git"
11 SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
12 KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ppc ppc64 sparc x86"
15 inherit linux-info meson pam udev xdg-utils
17 DESCRIPTION="The systemd project's logind, extracted to a standalone package"
18 HOMEPAGE="https://github.com/elogind/elogind"
20 LICENSE="CC0-1.0 LGPL-2.1+ public-domain"
22 IUSE="+acl debug doc +pam +policykit selinux"
25 app-text/docbook-xml-dtd:4.2
26 app-text/docbook-xml-dtd:4.5
27 app-text/docbook-xsl-stylesheets
38 selinux? ( sys-libs/libselinux )
45 policykit? ( sys-auth/polkit )
48 DOCS=( README.md src/libelogind/sd-bus/GVARIANT-SERIALIZATION )
51 "${FILESDIR}/${P}-nodocs.patch"
52 "${FILESDIR}/${PN}-241.4-broken-test.patch" # bug 699116
53 "${FILESDIR}/${P}-selinux-missing-headers.patch" # bug 711432
57 local CONFIG_CHECK="~CGROUPS ~EPOLL ~INOTIFY_USER ~SIGNALFD ~TIMERFD"
59 use kernel_linux && linux-info_pkg_setup
68 local rccgroupmode="$(grep rc_cgroup_mode ${EPREFIX}/etc/rc.conf | cut -d '"' -f 2)"
69 local cgroupmode="legacy"
71 if [[ "xhybrid" = "x${rccgroupmode}" ]] ; then
73 elif [[ "xunified" = "x${rccgroupmode}" ]] ; then
78 -Ddocdir="${EPREFIX}/usr/share/doc/${PF}"
79 -Dhtmldir="${EPREFIX}/usr/share/doc/${PF}/html"
80 -Dpamlibdir=$(getpam_mod_dir)
81 -Dudevrulesdir="${EPREFIX}$(get_udevdir)"/rules.d
82 --libdir="${EPREFIX}"/usr/$(get_libdir)
83 -Drootlibdir="${EPREFIX}"/$(get_libdir)
84 -Drootlibexecdir="${EPREFIX}"/$(get_libdir)/elogind
85 -Drootprefix="${EPREFIX}/"
86 -Dbashcompletiondir="${EPREFIX}/usr/share/bash-completion/completions"
89 -Dcgroup-controller=openrc
90 -Ddefault-hierarchy=${cgroupmode}
91 -Ddefault-kill-user-processes=false
92 -Dacl=$(usex acl true false)
93 --buildtype $(usex debug debug release)
94 -Dhtml=$(usex doc auto false)
95 -Dpam=$(usex pam true false)
96 -Dselinux=$(usex selinux true false)
97 -Dutmp=$(usex elibc_musl false true)
104 DOCS+=( src/libelogind/sd-bus/GVARIANT-SERIALIZATION )
108 newinitd "${FILESDIR}"/${PN}.init ${PN}
110 sed -e "s/@libdir@/$(get_libdir)/" "${FILESDIR}"/${PN}.conf.in > ${PN}.conf || die
111 newconfd ${PN}.conf ${PN}
115 if [[ "$(rc-config list boot | grep elogind)" != "" ]]; then
116 elog "elogind is currently started from boot runlevel."
117 elif [[ "$(rc-config list default | grep elogind)" != "" ]]; then
118 ewarn "elogind is currently started from default runlevel."
119 ewarn "Please remove elogind from the default runlevel and"
120 ewarn "add it to the boot runlevel by:"
121 ewarn "# rc-update del elogind default"
122 ewarn "# rc-update add elogind boot"
124 elog "elogind is currently not started from any runlevel."
125 elog "You may add it to the boot runlevel by:"
126 elog "# rc-update add elogind boot"
128 elog "Alternatively, you can leave elogind out of any"
129 elog "runlevel. It will then be started automatically"
131 elog "when the first service calls it via dbus, or"
132 elog "the first user logs into the system."
134 elog "when the first service calls it via dbus."