summaryrefslogtreecommitdiffstats
path: root/source/a/elogind
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/elogind')
-rw-r--r--source/a/elogind/10-enable-elogind-power.rules12
-rw-r--r--source/a/elogind/doinst.sh3
-rwxr-xr-xsource/a/elogind/elogind.SlackBuild17
3 files changed, 29 insertions, 3 deletions
diff --git a/source/a/elogind/10-enable-elogind-power.rules b/source/a/elogind/10-enable-elogind-power.rules
new file mode 100644
index 000000000..db4992062
--- /dev/null
+++ b/source/a/elogind/10-enable-elogind-power.rules
@@ -0,0 +1,12 @@
+polkit.addRule(
+ function(action, subject) {
+ if ( (action.id == "org.freedesktop.login1.reboot" ||
+ action.id == "org.freedesktop.login1.reboot-multiple-sessions" ||
+ action.id == "org.freedesktop.login1.power-off" ||
+ action.id == "org.freedesktop.login1.power-off-multiple-sessions")
+ && subject.isInGroup("power") ) {
+ return polkit.Result.YES;
+ }
+ }
+);
+
diff --git a/source/a/elogind/doinst.sh b/source/a/elogind/doinst.sh
index dc85465c8..d920f6641 100644
--- a/source/a/elogind/doinst.sh
+++ b/source/a/elogind/doinst.sh
@@ -26,8 +26,9 @@ preserve_perms() {
#
# Preserve permissions while moving into place:
-config etc/elogind/logind.conf.new
preserve_perms etc/rc.d/rc.elogind.new
+config etc/elogind/logind.conf.new
+config usr/share/polkit-1/rules.d/10-enable-session-power.rules.new
if pgrep -f elogind-daemon | grep -q 'elogind-daemon'; then
echo "Reloading elogind-daemon..."
diff --git a/source/a/elogind/elogind.SlackBuild b/source/a/elogind/elogind.SlackBuild
index 1e0e0e3bb..1cf2e5c62 100755
--- a/source/a/elogind/elogind.SlackBuild
+++ b/source/a/elogind/elogind.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=elogind
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -113,7 +113,7 @@ meson \
--libdir /usr/lib${LIBDIRSUFFIX} \
-Drootlibdir="/lib${LIBDIRSUFFIX}" \
-Drootlibexecdir="/lib${LIBDIRSUFFIX}/elogind" \
- -Dudevrulesdir="/etc/udev/rules.d" \
+ -Dudevrulesdir="/lib/udev/rules.d" \
-Ddocdir="/usr/doc/$PKGNAM-$VERSION" \
-Dhtmldir="/usr/doc/$PKGNAM-$VERSION/html" \
-Dmandir="/usr/man" \
@@ -163,6 +163,19 @@ cat $CWD/rc.elogind \
> $PKG/etc/rc.d/rc.elogind.new
chmod 755 $PKG/etc/rc.d/rc.elogind.new
+# Create supported dirs in /etc/elogind/ (local config)
+mkdir -p $PKG/etc/elogind/logind.conf.d/ $PKG/etc/elogind/sleep.conf.d/
+
+# Add login1 policy file that allows users in the 'power' group
+# to shutdown/reboot the computer:
+mkdir -p $PKG/usr/share/polkit-1/rules.d
+install -m 0644 -o root \
+ $CWD/10-enable-elogind-power.rules \
+ $PKG/usr/share/polkit-1/rules.d/10-enable-session-power.rules.new
+
+# We don't need the hidden files to make inferior package managers keep dirs:
+find $PKG -type f -name ".keep_dir" -exec rm -f {} \;
+
# Add a documentation directory:
mkdir -p $PKG/usr/doc/${PKGNAM}-$VERSION
cp -a \