diff options
Diffstat (limited to 'source/l/ConsoleKit2')
8 files changed, 807 insertions, 0 deletions
diff --git a/source/l/ConsoleKit2/ConsoleKit2.SlackBuild b/source/l/ConsoleKit2/ConsoleKit2.SlackBuild new file mode 100755 index 00000000..4f4e3949 --- /dev/null +++ b/source/l/ConsoleKit2/ConsoleKit2.SlackBuild @@ -0,0 +1,157 @@ +#!/bin/sh + +# Slackware build script for ConsoleKit + +# Copyright 2009, 2015 Robby Workman, Northport, Alabama, USA +# Copyright 2010, 2015 Eric Hameleers, Eindhoven, NL +# Copyright 2010 Patrick J. Volkerding, Sebeka, MN, USA +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PKGNAM=ConsoleKit2 +VERSION=${VERSION:-1.0.0} +BUILD=${BUILD:-3} + +NUMJOBS=${NUMJOBS:--j6} + +CWD=$(pwd) +TMP=${TMP:-/tmp} +PKG=$TMP/package-$PKGNAM + +# Automatically determine the architecture we're building on: +if [ -z "$ARCH" ]; then + case "$(uname -m)" in + i?86) ARCH=i586 ;; + arm*) readelf /usr/bin/file -A | egrep -q "Tag_CPU.*[4,5]" && ARCH=arm || ARCH=armv7hl ;; + # Unless $ARCH is already set, use uname -m for all other archs: + *) ARCH=$(uname -m) ;; + esac + export ARCH +fi + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + SLKLDFLAGS="" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + SLKLDFLAGS="" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + SLKLDFLAGS="-L/usr/lib64" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "armv7hl" ]; then + SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16" + SLKLDFLAGS="" + LIBDIRSUFFIX="" +else + SLKCFLAGS="-O2" + SLKLDFLAGS="" + LIBDIRSUFFIX="" +fi + +case "$ARCH" in + arm*) TARGET=$ARCH-slackware-linux-gnueabi ;; + *) TARGET=$ARCH-slackware-linux ;; +esac + +rm -rf $PKG +mkdir -p $TMP $PKG +cd $TMP +rm -rf $PKGNAM-$VERSION +tar xvf $CWD/$PKGNAM-$VERSION.tar.?z* || exit 1 +cd $PKGNAM-$VERSION || exit 1 + +zcat $CWD/patches/0001-Revert-Minor-code-refactoring.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/0002-Fix-some-libdir-scripts-stuff-missed-in-4d87a25ea0af.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/0003-Filter-out-the-kdm-user.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/0004-Apply-overlooked-prefix-lib-libdir-substitution.patch.gz | patch -p1 --verbose || exit 1 + +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +autoreconf -vif + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --mandir=/usr/man \ + --docdir=/usr/doc/$PKGNAM-$VERSION \ + --with-rundir=/var/run \ + --with-pid-file=/var/run/ConsoleKit/pid \ + --enable-docbook-docs \ + --enable-pam-module=no \ + --enable-udev-acl \ + --disable-static \ + --build=$TARGET + +make $NUMJOBS || make || exit 1 +make install DESTDIR=$PKG + +# Let's not clobber config files +mv $PKG/etc/ConsoleKit/seats.d/00-primary.seat \ + $PKG/etc/ConsoleKit/seats.d/00-primary.seat.new + +# Add an init script +mkdir -p $PKG/etc/rc.d +cat $CWD/rc.consolekit > $PKG/etc/rc.d/rc.consolekit.new +chmod 0755 $PKG/etc/rc.d/rc.consolekit.new + +# Remove unused xinitrc.d script: +rm -r $PKG/etc/X11/xinit/xinitrc.d + +find $PKG | xargs file | grep -e "executable" -e "shared object" \ + | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null + +# Compress manual pages: +find $PKG/usr/man -type f -exec gzip -9 {} \; +for i in $( find $PKG/usr/man -type l ) ; do + ln -s $( readlink $i ).gz $i.gz + rm $i +done + +mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION +cp -a \ + AUTHORS COPYING HACKING INSTALL NEWS README TODO \ + $PKG/usr/doc/$PKGNAM-$VERSION + +# If there's a ChangeLog, installing at least part of the recent history +# is useful, but don't let it get totally out of control: +if [ -r ChangeLog ]; then + DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION) + cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog + touch -r ChangeLog $DOCSDIR/ChangeLog +fi + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh + +cd $PKG +/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz + diff --git a/source/l/ConsoleKit2/doinst.sh b/source/l/ConsoleKit2/doinst.sh new file mode 100644 index 00000000..c13a36e3 --- /dev/null +++ b/source/l/ConsoleKit2/doinst.sh @@ -0,0 +1,27 @@ +config() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + # If there's no config file by that name, mv it over: + if [ ! -r $OLD ]; then + mv $NEW $OLD + elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then + # toss the redundant copy + rm $NEW + fi + # Otherwise, we leave the .new copy for the admin to consider... +} + +preserve_perms() { + NEW="$1" + OLD="$(dirname $NEW)/$(basename $NEW .new)" + if [ -e $OLD ]; then + cp -a $OLD ${NEW}.incoming + cat $NEW > ${NEW}.incoming + mv ${NEW}.incoming $NEW + fi + config $NEW +} + +config etc/ConsoleKit/seats.d/00-primary.seat.new +preserve_perms etc/rc.d/rc.consolekit.new + diff --git a/source/l/ConsoleKit2/patches/0001-Revert-Minor-code-refactoring.patch b/source/l/ConsoleKit2/patches/0001-Revert-Minor-code-refactoring.patch new file mode 100644 index 00000000..b6cadb3f --- /dev/null +++ b/source/l/ConsoleKit2/patches/0001-Revert-Minor-code-refactoring.patch @@ -0,0 +1,477 @@ +From 1e3f7f9862dceec3fa11ee4205c343ed64ce5b63 Mon Sep 17 00:00:00 2001 +From: Eric Koegel <eric.koegel@gmail.com> +Date: Sat, 22 Aug 2015 10:51:20 +0300 +Subject: [PATCH 1/5] Revert "Minor code refactoring" + +This reverts commit bee63889f4a0b8f57807a61d8396346cec8cd5b1. + +There are some cases where ConsoleKit2 would crash after successfully +suspending so revert this commit. +--- + src/ck-manager.c | 160 ++++++++++++++++++++++++++++++++++---------------- + src/ck-session.c | 56 +++++++++++++++++- + src/ck-sysdeps-unix.c | 59 ------------------- + src/ck-sysdeps.h | 6 -- + tools/Makefile.am | 3 - + 5 files changed, 163 insertions(+), 121 deletions(-) + +diff --git a/src/ck-manager.c b/src/ck-manager.c +index db5f906..66da8b2 100644 +--- a/src/ck-manager.c ++++ b/src/ck-manager.c +@@ -960,11 +960,13 @@ logind_ready_cb (PolkitAuthority *authority, + g_object_unref (ret); + } + ++/* We use this to avoid breaking API compability with ConsoleKit1 for ++ * CanStop and CanRestart, but this method emulates how logind ++ * presents it's API */ + static void +-get_polkit_permissions_for_callback (CkManager *manager, +- const char *action, +- GDBusMethodInvocation *context, +- GAsyncReadyCallback callback) ++get_polkit_logind_permissions (CkManager *manager, ++ const char *action, ++ GDBusMethodInvocation *context) + { + const char *sender; + PolkitSubject *subject; +@@ -980,37 +982,96 @@ get_polkit_permissions_for_callback (CkManager *manager, + NULL, + 0, + NULL, +- callback, ++ (GAsyncReadyCallback) logind_ready_cb, + context); + g_object_unref (subject); + } + +-/* We use this to avoid breaking API compability with ConsoleKit1 for +- * CanStop and CanRestart, but this method emulates how logind +- * presents it's API */ +-static void +-get_polkit_logind_permissions (CkManager *manager, +- const char *action, +- GDBusMethodInvocation *context) +-{ +- get_polkit_permissions_for_callback (manager, +- action, +- context, +- (GAsyncReadyCallback) logind_ready_cb); +-} +- + static void + get_polkit_permissions (CkManager *manager, + const char *action, + GDBusMethodInvocation *context) + { +- get_polkit_permissions_for_callback (manager, +- action, +- context, +- (GAsyncReadyCallback) ready_cb); ++ const char *sender; ++ PolkitSubject *subject; ++ ++ g_debug ("get permissions for action %s", action); ++ ++ sender = g_dbus_method_invocation_get_sender (context); ++ subject = polkit_system_bus_name_new (sender); ++ ++ polkit_authority_check_authorization (manager->priv->pol_ctx, ++ subject, ++ action, ++ NULL, ++ 0, ++ NULL, ++ (GAsyncReadyCallback) ready_cb, ++ context); ++ g_object_unref (subject); + } + #endif + ++/* adapted from PolicyKit */ ++static gboolean ++get_caller_info (CkManager *manager, ++ const char *sender, ++ uid_t *calling_uid, ++ pid_t *calling_pid) ++{ ++ gboolean res = FALSE; ++ GVariant *value = NULL; ++ GError *error = NULL; ++ ++ if (sender == NULL) { ++ g_debug ("sender == NULL"); ++ goto out; ++ } ++ ++ if (manager->priv->bus_proxy == NULL) { ++ g_debug ("manager->priv->bus_proxy == NULL"); ++ goto out; ++ } ++ ++ value = g_dbus_proxy_call_sync (manager->priv->bus_proxy, "GetConnectionUnixUser", ++ g_variant_new ("(s)", sender), ++ G_DBUS_CALL_FLAGS_NONE, ++ 2000, ++ NULL, ++ &error); ++ ++ if (value == NULL) { ++ g_warning ("GetConnectionUnixUser() failed: %s", error->message); ++ g_error_free (error); ++ goto out; ++ } ++ g_variant_get (value, "(u)", calling_uid); ++ g_variant_unref (value); ++ ++ value = g_dbus_proxy_call_sync (manager->priv->bus_proxy, "GetConnectionUnixProcessID", ++ g_variant_new ("(s)", sender), ++ G_DBUS_CALL_FLAGS_NONE, ++ 2000, ++ NULL, ++ &error); ++ ++ if (value == NULL) { ++ g_warning ("GetConnectionUnixProcessID() failed: %s", error->message); ++ g_error_free (error); ++ goto out; ++ } ++ g_variant_get (value, "(u)", calling_pid); ++ g_variant_unref (value); ++ ++ res = TRUE; ++ ++ g_debug ("uid = %d", *calling_uid); ++ g_debug ("pid = %d", *calling_pid); ++ ++out: ++ return res; ++} ++ + static char * + get_user_name (uid_t uid) + { +@@ -1118,7 +1179,7 @@ check_rbac_permissions (CkManager *manager, + + username = NULL; + sender = g_dbus_method_invocation_get_sender (context); +- res = get_caller_info (manager->priv->bus_proxy, ++ res = get_caller_info (manager, + sender, + &uid, + &pid); +@@ -2055,7 +2116,7 @@ dbus_inhibit (ConsoleKitManager *ckmanager, + priv = CK_MANAGER_GET_PRIVATE (CK_MANAGER (ckmanager)); + + sender = g_dbus_method_invocation_get_sender (context); +- res = get_caller_info (priv->bus_proxy, ++ res = get_caller_info (CK_MANAGER (ckmanager), + sender, + &uid, + &pid); +@@ -2698,7 +2759,7 @@ create_session_for_sender (CkManager *manager, + + g_debug ("CkManager: create session for sender: %s", sender); + +- res = get_caller_info (manager->priv->bus_proxy, ++ res = get_caller_info (manager, + sender, + &uid, + &pid); +@@ -2767,7 +2828,7 @@ dbus_get_session_for_cookie (ConsoleKitManager *ckmanager, + + sender = g_dbus_method_invocation_get_sender (context); + +- res = get_caller_info (manager->priv->bus_proxy, ++ res = get_caller_info (manager, + sender, + &calling_uid, + &calling_pid); +@@ -2852,7 +2913,7 @@ dbus_get_session_for_unix_process (ConsoleKitManager *ckmanager, + TRACE (); + g_debug ("pid: %u", pid); + +- res = get_caller_info (manager->priv->bus_proxy, ++ res = get_caller_info (manager, + sender, + &calling_uid, + &calling_pid); +@@ -2900,7 +2961,7 @@ dbus_get_current_session (ConsoleKitManager *ckmanager, + + g_debug ("CkManager: get current session"); + +- res = get_caller_info (manager->priv->bus_proxy, ++ res = get_caller_info (manager, + sender, + &calling_uid, + &calling_pid); +@@ -3100,7 +3161,7 @@ dbus_close_session (ConsoleKitManager *ckmanager, + manager = CK_MANAGER (ckmanager); + + sender = g_dbus_method_invocation_get_sender (context); +- res = get_caller_info (manager->priv->bus_proxy, ++ res = get_caller_info (manager, + sender, + &calling_uid, + &calling_pid); +@@ -3443,17 +3504,6 @@ create_seats (CkManager *manager) + } + + static void +-cancel_timeout_and_call_system_action (CkManagerPrivate *priv) +-{ +- /* The inhibit lock for this action was removed. +- * Stop the timeout and call the system action now. +- */ +- g_source_remove (priv->system_action_idle_id); +- priv->system_action_idle_id = 0; +- system_action_idle_cb (priv->system_action_data); +-} +- +-static void + on_inhibit_manager_changed_event (CkInhibitManager *manager, gint inhibit_mode, gint event, gboolean enabled, gpointer user_data) + { + CkManagerPrivate *priv; +@@ -3472,6 +3522,17 @@ on_inhibit_manager_changed_event (CkInhibitManager *manager, gint inhibit_mode, + return; + } + ++ /* this system action must be for a sleep or shutdown operation */ ++ if (priv->system_action_data->signal != PREPARE_FOR_SLEEP && ++ priv->system_action_data->signal != PREPARE_FOR_SHUTDOWN) { ++ return; ++ } ++ ++ /* the inhibit change must be for sleep or shutdown */ ++ if (event != CK_INHIBIT_EVENT_SUSPEND && event != CK_INHIBIT_EVENT_SHUTDOWN) { ++ return; ++ } ++ + /* must be a delay inhibitor */ + if (inhibit_mode != CK_INHIBIT_MODE_DELAY) { + return; +@@ -3482,17 +3543,12 @@ on_inhibit_manager_changed_event (CkInhibitManager *manager, gint inhibit_mode, + return; + } + +- /* Did we stop inhibiting sleep? */ +- if (priv->system_action_data->signal == PREPARE_FOR_SLEEP && +- event == CK_INHIBIT_EVENT_SUSPEND) { +- cancel_timeout_and_call_system_action (priv); +- } +- +- /* Did we stop inhibiting shutdown? */ +- if (priv->system_action_data->signal == PREPARE_FOR_SHUTDOWN && +- event == CK_INHIBIT_EVENT_SHUTDOWN) { +- cancel_timeout_and_call_system_action (priv); +- } ++ /* The inhibit lock for this action was removed. ++ * Stop the timeout and call the system action now. ++ */ ++ g_source_remove (priv->system_action_idle_id); ++ priv->system_action_idle_id = 0; ++ system_action_idle_cb (priv->system_action_data); + } + + static void +diff --git a/src/ck-session.c b/src/ck-session.c +index 478dce2..ca0f8ca 100644 +--- a/src/ck-session.c ++++ b/src/ck-session.c +@@ -248,6 +248,60 @@ dbus_unlock (ConsoleKitSession *cksession, + return TRUE; + } + ++/* adapted from PolicyKit */ ++static gboolean ++get_caller_info (CkSession *session, ++ const char *sender, ++ uid_t *calling_uid, ++ pid_t *calling_pid) ++{ ++ gboolean res = FALSE; ++ GVariant *value = NULL; ++ GError *error = NULL; ++ ++ if (sender == NULL) { ++ goto out; ++ } ++ ++ value = g_dbus_proxy_call_sync (session->priv->bus_proxy, "GetConnectionUnixUser", ++ g_variant_new ("(s)", sender), ++ G_DBUS_CALL_FLAGS_NONE, ++ 2000, ++ NULL, ++ &error); ++ ++ if (value == NULL) { ++ g_warning ("GetConnectionUnixUser() failed: %s", error->message); ++ g_error_free (error); ++ goto out; ++ } ++ g_variant_get (value, "(u)", calling_uid); ++ g_variant_unref (value); ++ ++ value = g_dbus_proxy_call_sync (session->priv->bus_proxy, "GetConnectionUnixProcessID", ++ g_variant_new ("(s)", sender), ++ G_DBUS_CALL_FLAGS_NONE, ++ 2000, ++ NULL, ++ &error); ++ ++ if (value == NULL) { ++ g_warning ("GetConnectionUnixProcessID() failed: %s", error->message); ++ g_error_free (error); ++ goto out; ++ } ++ g_variant_get (value, "(u)", calling_pid); ++ g_variant_unref (value); ++ ++ res = TRUE; ++ ++ g_debug ("uid = %d", *calling_uid); ++ g_debug ("pid = %d", *calling_pid); ++ ++out: ++ return res; ++} ++ + static gboolean + session_set_idle_hint_internal (CkSession *session, + gboolean idle_hint) +@@ -326,7 +380,7 @@ dbus_set_idle_hint (ConsoleKitSession *cksession, + + sender = g_dbus_method_invocation_get_sender (context); + +- res = get_caller_info (session->priv->bus_proxy, ++ res = get_caller_info (session, + sender, + &calling_uid, + &calling_pid); +diff --git a/src/ck-sysdeps-unix.c b/src/ck-sysdeps-unix.c +index 87333d1..0f751b9 100644 +--- a/src/ck-sysdeps-unix.c ++++ b/src/ck-sysdeps-unix.c +@@ -132,65 +132,6 @@ ck_get_socket_peer_credentials (int socket_fd, + return ret; + } + +-/* adapted from PolicyKit */ +-gboolean +-get_caller_info (GDBusProxy *bus_proxy, +- const char *sender, +- uid_t *calling_uid, +- pid_t *calling_pid) +-{ +- gboolean res = FALSE; +- GVariant *value = NULL; +- GError *error = NULL; +- +- if (sender == NULL) { +- g_debug ("sender == NULL"); +- goto out; +- } +- +- if (bus_proxy == NULL) { +- g_debug ("bus_proxy == NULL"); +- goto out; +- } +- +- value = g_dbus_proxy_call_sync (bus_proxy, "GetConnectionUnixUser", +- g_variant_new ("(s)", sender), +- G_DBUS_CALL_FLAGS_NONE, +- 2000, +- NULL, +- &error); +- +- if (value == NULL) { +- g_warning ("GetConnectionUnixUser() failed: %s", error->message); +- g_error_free (error); +- goto out; +- } +- g_variant_get (value, "(u)", calling_uid); +- g_variant_unref (value); +- +- value = g_dbus_proxy_call_sync (bus_proxy, "GetConnectionUnixProcessID", +- g_variant_new ("(s)", sender), +- G_DBUS_CALL_FLAGS_NONE, +- 2000, +- NULL, +- &error); +- +- if (value == NULL) { +- g_warning ("GetConnectionUnixProcessID() failed: %s", error->message); +- g_error_free (error); +- goto out; +- } +- g_variant_get (value, "(u)", calling_pid); +- g_variant_unref (value); +- +- res = TRUE; +- +- g_debug ("uid = %d", *calling_uid); +- g_debug ("pid = %d", *calling_pid); +- +-out: +- return res; +-} + + /* + * getfd.c +diff --git a/src/ck-sysdeps.h b/src/ck-sysdeps.h +index 66df581..bc32631 100644 +--- a/src/ck-sysdeps.h ++++ b/src/ck-sysdeps.h +@@ -24,7 +24,6 @@ + #include "config.h" + + #include <glib.h> +-#include <gio/gio.h> + + G_BEGIN_DECLS + +@@ -55,11 +54,6 @@ gboolean ck_get_socket_peer_credentials (int socket_fd, + uid_t *uid, + GError **error); + +-gboolean get_caller_info (GDBusProxy *bus_proxy, +- const char *sender, +- uid_t *calling_uid, +- pid_t *calling_pid); +- + int ck_get_a_console_fd (void); + + gboolean ck_fd_is_a_console (int fd); +diff --git a/tools/Makefile.am b/tools/Makefile.am +index 69dd1eb..81f4d1f 100644 +--- a/tools/Makefile.am ++++ b/tools/Makefile.am +@@ -131,7 +131,6 @@ ck_collect_session_info_SOURCES = \ + $(NULL) + + ck_collect_session_info_LDADD = \ +- $(CONSOLE_KIT_LIBS) \ + $(TOOLS_LIBS) \ + $(top_builddir)/src/libck.la \ + $(NULL) +@@ -141,7 +140,6 @@ ck_get_x11_server_pid_SOURCES = \ + $(NULL) + + ck_get_x11_server_pid_LDADD = \ +- $(CONSOLE_KIT_LIBS) \ + $(TOOLS_LIBS) \ + $(XLIB_LIBS) \ + $(top_builddir)/src/libck.la \ +@@ -152,7 +150,6 @@ ck_get_x11_display_device_SOURCES = \ + $(NULL) + + ck_get_x11_display_device_LDADD = \ +- $(CONSOLE_KIT_LIBS) \ + $(TOOLS_LIBS) \ + $(top_builddir)/src/libck.la \ + $(NULL) +-- +2.5.1 + diff --git a/source/l/ConsoleKit2/patches/0002-Fix-some-libdir-scripts-stuff-missed-in-4d87a25ea0af.patch b/source/l/ConsoleKit2/patches/0002-Fix-some-libdir-scripts-stuff-missed-in-4d87a25ea0af.patch new file mode 100644 index 00000000..2c46bbd8 --- /dev/null +++ b/source/l/ConsoleKit2/patches/0002-Fix-some-libdir-scripts-stuff-missed-in-4d87a25ea0af.patch @@ -0,0 +1,42 @@ +From b045a4245199b12dfc04f03b22bc1e9b1f80aae9 Mon Sep 17 00:00:00 2001 +From: Robby Workman <rworkman@slackware.com> +Date: Sun, 23 Aug 2015 16:53:52 -0500 +Subject: [PATCH 2/5] Fix some libdir/scripts stuff missed in 4d87a25ea0af + +--- + src/ck-seat.c | 2 +- + tools/Makefile.am | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/ck-seat.c b/src/ck-seat.c +index ead6425..47e6933 100644 +--- a/src/ck-seat.c ++++ b/src/ck-seat.c +@@ -1443,7 +1443,7 @@ ck_seat_run_programs (CkSeat *seat, + g_assert(n <= G_N_ELEMENTS(extra_env)); + + ck_run_programs (SYSCONFDIR "/ConsoleKit/run-seat.d", action, extra_env); +- ck_run_programs (PREFIX "/lib/ConsoleKit/run-seat.d", action, extra_env); ++ ck_run_programs (LIBDIR "/ConsoleKit/run-seat.d", action, extra_env); + + for (n = 0; extra_env[n] != NULL; n++) { + g_free (extra_env[n]); +diff --git a/tools/Makefile.am b/tools/Makefile.am +index 69dd1eb..d61b845 100644 +--- a/tools/Makefile.am ++++ b/tools/Makefile.am +@@ -171,9 +171,9 @@ udev_acl_CFLAGS = \ + $(NULL) + + install-exec-hook: +- mkdir -p $(DESTDIR)$(prefix)/lib/ConsoleKit/run-seat.d ++ mkdir -p $(DESTDIR)$(libdir)/ConsoleKit/run-seat.d + mkdir -p $(DESTDIR)$(UDEVDIR) +- ln -sf $(libexecdir)/udev-acl $(DESTDIR)$(prefix)/lib/ConsoleKit/run-seat.d/udev-acl.ck ++ ln -sf $(libexecdir)/udev-acl $(DESTDIR)$(libdir)/ConsoleKit/run-seat.d/udev-acl.ck + ln -sf $(libexecdir)/udev-acl $(DESTDIR)$(UDEVDIR)/udev-acl + endif + +-- +2.5.1 + diff --git a/source/l/ConsoleKit2/patches/0003-Filter-out-the-kdm-user.patch b/source/l/ConsoleKit2/patches/0003-Filter-out-the-kdm-user.patch new file mode 100644 index 00000000..c0ec63d8 --- /dev/null +++ b/source/l/ConsoleKit2/patches/0003-Filter-out-the-kdm-user.patch @@ -0,0 +1,29 @@ +From f848c1de94ef2f5ae7d53358d30e26400a69d3d4 Mon Sep 17 00:00:00 2001 +From: Ivailo Monev <xakepa10@gmail.com> +Date: Mon, 24 Aug 2015 20:18:50 +0300 +Subject: [PATCH 5/5] Filter out the kdm user + +--- + src/ck-manager.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/ck-manager.c b/src/ck-manager.c +index 66da8b2..4a6e511 100644 +--- a/src/ck-manager.c ++++ b/src/ck-manager.c +@@ -1111,9 +1111,10 @@ session_is_real_user (CkSession *session, + + username = get_user_name (uid); + +- /* filter out GDM/SDDM user */ ++ /* filter out GDM/SDDM/KDM user */ + if (g_strcmp0 (username, "gdm") == 0 || +- g_strcmp0 (username, "sddm") == 0) { ++ g_strcmp0 (username, "sddm") == 0 || ++ g_strcmp0 (username, "kdm") == 0) { + ret = FALSE; + goto out; + } +-- +2.5.1 + diff --git a/source/l/ConsoleKit2/patches/0004-Apply-overlooked-prefix-lib-libdir-substitution.patch b/source/l/ConsoleKit2/patches/0004-Apply-overlooked-prefix-lib-libdir-substitution.patch new file mode 100644 index 00000000..ee3b1e23 --- /dev/null +++ b/source/l/ConsoleKit2/patches/0004-Apply-overlooked-prefix-lib-libdir-substitution.patch @@ -0,0 +1,22 @@ +From 22958330535c9e26ed537d1568925f64e3bafe4d Mon Sep 17 00:00:00 2001 +From: Eric Hameleers <alien@slackware.com> +Date: Thu, 10 Sep 2015 14:19:43 +0200 +Subject: [PATCH] Apply overlooked PREFIX/lib -> LIBDIR substitution + +--- + src/ck-session.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/ck-session.c b/src/ck-session.c +index ca0f8ca..1b58889 100644 +--- a/src/ck-session.c ++++ b/src/ck-session.c +@@ -1273,7 +1273,7 @@ ck_session_run_programs (CkSession *session, + g_assert(n <= G_N_ELEMENTS(extra_env)); + + ck_run_programs (SYSCONFDIR "/ConsoleKit/run-session.d", action, extra_env); +- ck_run_programs (PREFIX "/lib/ConsoleKit/run-session.d", action, extra_env); ++ ck_run_programs (LIBDIR "/ConsoleKit/run-session.d", action, extra_env); + + for (n = 0; extra_env[n] != NULL; n++) { + g_free (extra_env[n]); diff --git a/source/l/ConsoleKit2/rc.consolekit b/source/l/ConsoleKit2/rc.consolekit new file mode 100644 index 00000000..a1937569 --- /dev/null +++ b/source/l/ConsoleKit2/rc.consolekit @@ -0,0 +1,34 @@ +#!/bin/sh +# +# /etc/rc.d/rc.consolekit +# +# Start/stop consolekit-kit daemon. +# +# This daemon is used by polkit's console auth agent. + +# Start consolekit: +ck_start() { + echo "Starting ConsoleKit daemon: /usr/sbin/console-kit-daemon" + /usr/sbin/console-kit-daemon +} + +# Stop consolekit: +ck_stop() { + if [ -r /var/run/ConsoleKit/pid ]; then + kill -HUP $(cat /var/run/ConsoleKit/pid) + rm -f /var/run/ConsoleKit/pid + else + killall -HUP -q console-kit-daemon + fi +} + +case "$1" in +'start') + ck_start + ;; +'stop') + ck_stop + ;; +*) + echo "Usage: $0 start|stop" +esac diff --git a/source/l/ConsoleKit2/slack-desc b/source/l/ConsoleKit2/slack-desc new file mode 100644 index 00000000..508b7320 --- /dev/null +++ b/source/l/ConsoleKit2/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler-----------------------------------------------------| +ConsoleKit2: ConsoleKit2 (user, login, and seat tracking framework) +ConsoleKit2: +ConsoleKit2: ConsoleKit2 is a framework for defining and tracking users, login +ConsoleKit2: sessions, and seats. +ConsoleKit2: +ConsoleKit2: Homepage: https://github.com/ConsoleKit2/ConsoleKit2 +ConsoleKit2: +ConsoleKit2: +ConsoleKit2: +ConsoleKit2: +ConsoleKit2: |