diff mbox series

[1/3] consolekit: Upgrade to ConsoleKit2 2.0.0

Message ID 20261024161033.4140130-1-raj.khem@gmail.com
State Under Review
Headers show
Series [1/3] consolekit: Upgrade to ConsoleKit2 2.0.0 | expand

Commit Message

Khem Raj Oct. 24, 2026, 4:10 p.m. UTC
From: Khem Raj <khem.raj@oss.qualcomm.com>

ConsoleKit is unmaintained since 0.4.6 (2011); ConsoleKit2 is the
maintained fork used by FreeBSD and others. Keep the recipe
name so existing consumers continue to work.

* Use git fetcher, upstream does not publish release tarballs
* Drop add-polkit-configure-argument.patch, polkit support is now
  selectable via --enable/--disable-polkit
* Refresh sepbuildfix.patch
* X11 is now optional, so drop REQUIRED_DISTRO_FEATURES = "x11" and
  add an x11 PACKAGECONFIG
* Add explicit PACKAGECONFIGs for automagic dependencies (selinux,
  udev/libdrm, libevdev, udev-acl) and disable cgmanager
* AC_CONFIG_AUX_DIR is autotools/, point AUTOTOOLS_AUXDIR there so
  config.rpath is found
* Pre-seed AC_CHECK_FILE result for /sys/class/tty/tty0/active
* Drop -Wno-error=incompatible-pointer-types, no longer needed

Note that 2.0.0 changes session and seat IDs on D-Bus from object
paths to bare IDs, which needs a matching fix in polkit's ConsoleKit
backend.

https://github.com/ConsoleKit2/ConsoleKit2/releases/tag/2.0.0

Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
---
 .../add-polkit-configure-argument.patch       | 33 ----------
 .../consolekit/consolekit/sepbuildfix.patch   | 18 ++---
 .../consolekit/consolekit_0.4.6.bb            | 53 ---------------
 .../consolekit/consolekit_2.0.0.bb            | 66 +++++++++++++++++++
 4 files changed, 76 insertions(+), 94 deletions(-)
 delete mode 100644 meta/recipes-support/consolekit/consolekit/add-polkit-configure-argument.patch
 delete mode 100644 meta/recipes-support/consolekit/consolekit_0.4.6.bb
 create mode 100644 meta/recipes-support/consolekit/consolekit_2.0.0.bb
diff mbox series

Patch

diff --git a/meta/recipes-support/consolekit/consolekit/add-polkit-configure-argument.patch b/meta/recipes-support/consolekit/consolekit/add-polkit-configure-argument.patch
deleted file mode 100644
index ad879d466b..0000000000
--- a/meta/recipes-support/consolekit/consolekit/add-polkit-configure-argument.patch
+++ /dev/null
@@ -1,33 +0,0 @@ 
-Upstream-Status: Pending
-
---- ConsoleKit-0.4.6.orig/configure.ac
-+++ ConsoleKit-0.4.6/configure.ac
-@@ -56,10 +56,24 @@ PKG_CHECK_MODULES(CONSOLE_KIT,
-   gthread-2.0 >= $GLIB_REQUIRED_VERSION
- )
-
--PKG_CHECK_MODULES(POLKIT,
--  polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION,
--  have_polkit=yes,
--  have_polkit=no)
-+AC_ARG_WITH([polkit],
-+  [AS_HELP_STRING([--with-polkit],
-+    [support PolicyKit @<:@default=check@:>@])],
-+  [],
-+  [with_polkit=check])
-+
-+AS_IF([test "x$with_polkit" != xno],
-+  [PKG_CHECK_MODULES(POLKIT,
-+     polkit-gobject-1 >= $POLKIT_REQUIRED_VERSION,
-+     have_polkit=yes,
-+     [if test "x$with_polkit" != xcheck; then
-+       AC_MSG_FAILURE(
-+         [--with-polkit was given, but test for polkit failed])
-+      else
-+        have_polkit=no
-+      fi
-+     ])])
-+
- if test "x$have_polkit" = "xyes" ; then
-        AC_DEFINE(HAVE_POLKIT, [], [Define if we have polkit])
- fi
diff --git a/meta/recipes-support/consolekit/consolekit/sepbuildfix.patch b/meta/recipes-support/consolekit/consolekit/sepbuildfix.patch
index f2f9b9c682..21b1eaad8a 100644
--- a/meta/recipes-support/consolekit/consolekit/sepbuildfix.patch
+++ b/meta/recipes-support/consolekit/consolekit/sepbuildfix.patch
@@ -1,16 +1,18 @@ 
-Fix builds in the case of seprate source from the build directory.
+Fix builds in the case of separate source from the build directory.
 
 RP 2013/4/17
 
 Upstream-Status: Pending
-
-Index: pam-ck-connector/Makefile.am
-===================================================================
---- consolekit/pam-ck-connector.orig/Makefile.am	2010-09-03 13:54:31.000000000 +0000
-+++ consolekit/pam-ck-connector/Makefile.am	2013-04-17 09:06:49.093524918 +0000
-@@ -4,7 +4,7 @@
+---
+ pam-ck-connector/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+diff --git a/pam-ck-connector/Makefile.am b/pam-ck-connector/Makefile.am
+index 7778d16..9b960a7 100644
+--- a/pam-ck-connector/Makefile.am
++++ b/pam-ck-connector/Makefile.am
+@@ -4,7 +4,7 @@ if ENABLE_PAM_MODULE
  
- INCLUDES = 					\
+ AM_CFLAGS = 					\
  	$(LIBDBUS_CFLAGS)			\
 -	-I$(top_builddir)/libck-connector	\
 +	-I$(top_srcdir)/libck-connector	\
diff --git a/meta/recipes-support/consolekit/consolekit_0.4.6.bb b/meta/recipes-support/consolekit/consolekit_0.4.6.bb
deleted file mode 100644
index acef3483bb..0000000000
--- a/meta/recipes-support/consolekit/consolekit_0.4.6.bb
+++ /dev/null
@@ -1,53 +0,0 @@ 
-SUMMARY = "Framework for defining and tracking users, login sessions, and seats"
-DESCRIPTION = "It provides a mechanism for software to react to changes \
-of any of these items or of any of the metadata associated with them."
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/ConsoleKit"
-BUGTRACKER = "https://bugs.freedesktop.org/buglist.cgi?query_format=specific&product=ConsoleKit"
-
-LICENSE = "GPL-2.0-or-later"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
-                    file://src/main.c;endline=21;md5=0a994e09769780220163255d8f9071c3"
-
-DEPENDS = "glib-2.0 glib-2.0-native dbus dbus-glib virtual/libx11"
-RDEPENDS:${PN} += "base-files"
-
-inherit autotools pkgconfig features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "http://www.freedesktop.org/software/ConsoleKit/dist/ConsoleKit-${PV}.tar.xz \
-           file://sepbuildfix.patch \
-           file://add-polkit-configure-argument.patch \
-"
-
-SRC_URI[sha256sum] = "b41d17e06f80059589fbeefe96ad07bcc564c49e65516da1caf975146475565c"
-
-S = "${UNPACKDIR}/ConsoleKit-${PV}"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd polkit', d)}"
-
-PACKAGECONFIG[pam] = "--enable-pam-module --with-pam-module-dir=${base_libdir}/security,--disable-pam-module,libpam"
-PACKAGECONFIG[polkit] = "--with-polkit,--without-polkit,polkit"
-PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_system_unitdir}/,--with-systemdsystemunitdir="
-
-# Fails to build with GCC14 with incompatible pointer error warning being treated as error
-CFLAGS += "-Wno-error=incompatible-pointer-types"
-
-FILES:${PN} += "${exec_prefix}/lib/ConsoleKit \
-                ${libdir}/ConsoleKit  ${systemd_unitdir} ${base_libdir} \
-                ${datadir}/dbus-1 ${datadir}/PolicyKit ${datadir}/polkit*"
-
-PACKAGES =+ "pam-plugin-ck-connector"
-FILES:pam-plugin-ck-connector += "${base_libdir}/security/*.so"
-RDEPENDS:pam-plugin-ck-connector += "${PN}"
-
-do_install:append() {
-	if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
-		install -d ${D}${sysconfdir}/tmpfiles.d
-		echo "d ${localstatedir}/log/ConsoleKit - - - -" \
-			> ${D}${sysconfdir}/tmpfiles.d/consolekit.conf
-	fi
-
-	# Remove /var/ directories as the daemon creates them as required
-	rm -rf ${D}${localstatedir}
-}
diff --git a/meta/recipes-support/consolekit/consolekit_2.0.0.bb b/meta/recipes-support/consolekit/consolekit_2.0.0.bb
new file mode 100644
index 0000000000..05207f9db3
--- /dev/null
+++ b/meta/recipes-support/consolekit/consolekit_2.0.0.bb
@@ -0,0 +1,66 @@ 
+SUMMARY = "Framework for defining and tracking users, login sessions, and seats"
+DESCRIPTION = "ConsoleKit2 provides a mechanism for software to react to changes \
+of any of these items or of any of the metadata associated with them."
+HOMEPAGE = "https://github.com/ConsoleKit2/ConsoleKit2"
+BUGTRACKER = "https://github.com/ConsoleKit2/ConsoleKit2/issues"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+                    file://src/main.c;endline=19;md5=c343c20c262ac4b97f0ab08665f3058d"
+
+DEPENDS = "glib-2.0 glib-2.0-native dbus zlib"
+RDEPENDS:${PN} += "base-files"
+
+inherit autotools pkgconfig gettext gobject-introspection gtk-doc
+
+SRC_URI = "git://github.com/ConsoleKit2/ConsoleKit2.git;protocol=https;branch=master;tag=${PV} \
+           file://sepbuildfix.patch \
+"
+SRCREV = "cbaab28b42a9126448edd093a68e1f8ea6930982"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd polkit selinux x11', d)} udev"
+
+PACKAGECONFIG[pam] = "--enable-pam-module --with-pam-module-dir=${base_libdir}/security,--disable-pam-module,libpam"
+PACKAGECONFIG[polkit] = "--enable-polkit,--disable-polkit,polkit"
+PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_system_unitdir}/,--without-systemdsystemunitdir"
+PACKAGECONFIG[selinux] = "--enable-libselinux,--disable-libselinux,libselinux"
+# udev backend for device management with a session controller needs both libudev and libdrm
+PACKAGECONFIG[udev] = "--enable-libudev --enable-libdrm,--disable-libudev --disable-libdrm,udev libdrm"
+PACKAGECONFIG[evdev] = "--enable-libevdev,--disable-libevdev,libevdev"
+PACKAGECONFIG[udev-acl] = "--enable-udev-acl,--disable-udev-acl,udev acl"
+PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11"
+
+AUTOTOOLS_AUXDIR = "${S}/autotools"
+
+do_configure:prepend() {
+	mkdir -p ${AUTOTOOLS_AUXDIR}
+}
+
+# AC_CHECK_FILE cannot be used when cross compiling, all supported kernels
+# provide VT change signalling via sysfs
+CACHED_CONFIGUREVARS += "ac_cv_file__sys_class_tty_tty0_active=yes"
+
+EXTRA_OECONF = "--disable-libcgmanager \
+                --disable-docbook-docs \
+                --disable-tests \
+"
+
+FILES:${PN} += "${exec_prefix}/lib/ConsoleKit \
+                ${libdir}/ConsoleKit ${systemd_unitdir} ${base_libdir} \
+                ${datadir}/dbus-1 ${datadir}/polkit-1 \
+                ${sysconfdir}/X11/xinit/xinitrc.d"
+
+PACKAGES =+ "pam-plugin-ck-connector"
+FILES:pam-plugin-ck-connector += "${base_libdir}/security/*.so"
+RDEPENDS:pam-plugin-ck-connector += "${PN}"
+
+do_install:append() {
+	if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+		install -d ${D}${sysconfdir}/tmpfiles.d
+		echo "d ${localstatedir}/log/ConsoleKit - - - -" \
+			> ${D}${sysconfdir}/tmpfiles.d/consolekit.conf
+	fi
+
+	# Remove /var/ directories as the daemon creates them as required
+	rm -rf ${D}${localstatedir}
+}