summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoah Vogt2021-11-10 19:57:05 +0100
committerNoah Vogt2021-11-10 19:57:05 +0100
commitd6294db691a79c70a1d365976440efb38517ae03 (patch)
treed0603a1c801e63283e68e04578382c0cb87882b8
downloadaur-d6294db691a79c70a1d365976440efb38517ae03.tar.gz
init commit
-rw-r--r--.SRCINFO46
-rw-r--r--PKGBUILD95
-rw-r--r--dbus-enable-elogind.patch73
-rw-r--r--dbus-launch-Move-dbus-autolaunch-stuff-to-runuser.patch206
-rw-r--r--no-fatal-warnings.diff13
5 files changed, 433 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..9bf665abee4a
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,46 @@
+pkgbase = dbus
+ pkgdesc = Freedesktop.org message bus system - but do not create a ~/.dbus directory (for non-systemd systems)
+ pkgver = 1.12.20
+ pkgrel = 1
+ url = https://wiki.freedesktop.org/www/Software/dbus/
+ arch = x86_64
+ license = GPL
+ license = custom
+ makedepends = elogind
+ makedepends = xmlto
+ makedepends = docbook-xsl
+ makedepends = python
+ makedepends = yelp-tools
+ makedepends = doxygen
+ makedepends = git
+ makedepends = autoconf-archive
+ depends = libx11
+ depends = libelogind
+ depends = expat
+ depends = audit
+ provides = dbus
+ conflicts = dbus
+ source = https://gitlab.freedesktop.org/dbus/dbus/-/archive/dbus-1.12.20/dbus-dbus-1.12.20.tar.gz
+ source = dbus-enable-elogind.patch
+ source = no-fatal-warnings.diff
+ source = dbus-launch-Move-dbus-autolaunch-stuff-to-runuser.patch
+ sha256sums = SKIP
+ sha256sums = faffcaa5b295f49fcedeed2c9ece5298949096be3062fd99a4bf1a6ac3ad1ea0
+ sha256sums = 6958eeec07557b92a28419eb1702331ee2f0a6fd17285e37dfb6130b9fa4cf6e
+ sha256sums = 691a84ca6543ac8d1cd19e915fee7dc967dae106e72200d58b682748265501fc
+
+pkgname = dbus-xdg-elogind
+ depends = libx11
+ depends = libelogind
+ depends = expat
+ depends = audit
+ depends = libelogind.so
+ depends = libaudit.so
+ provides = libdbus
+ provides = libdbus-1.so
+ conflicts = libdbus
+ replaces = libdbus
+
+pkgname = dbus-docs
+ pkgdesc = Freedesktop.org message bus system - but do not create a ~/.dbus directory (for non-systemd systems) (documentation)
+ depends =
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..6ccb291b46b2
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,95 @@
+# Maintainer: Noah Vogt (noahvogt) <noah@noahvogt.com>
+# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
+# Contributor: Tom Gundersen <teg@jklm.no>
+# Contributor: Link Dupont <link@subpop.net>
+
+pkgbase=dbus
+pkgname=(dbus-xdg-elogind dbus-docs)
+pkgver=1.12.20
+pkgrel=1
+pkgdesc="Freedesktop.org message bus system - but do not create a ~/.dbus directory (for non-systemd systems)"
+url="https://wiki.freedesktop.org/www/Software/dbus/"
+arch=(x86_64)
+license=(GPL custom)
+depends=(libx11 libelogind expat audit)
+makedepends=(elogind xmlto docbook-xsl python yelp-tools doxygen git autoconf-archive)
+source=("https://gitlab.freedesktop.org/dbus/dbus/-/archive/dbus-$pkgver/dbus-dbus-$pkgver.tar.gz"
+ dbus-enable-elogind.patch
+ no-fatal-warnings.diff
+ dbus-launch-Move-dbus-autolaunch-stuff-to-runuser.patch)
+sha256sums=('SKIP'
+ 'faffcaa5b295f49fcedeed2c9ece5298949096be3062fd99a4bf1a6ac3ad1ea0'
+ '6958eeec07557b92a28419eb1702331ee2f0a6fd17285e37dfb6130b9fa4cf6e'
+ '691a84ca6543ac8d1cd19e915fee7dc967dae106e72200d58b682748265501fc')
+provides=('dbus')
+conflicts=('dbus')
+
+prepare() {
+ cd "$pkgbase-$pkgbase-$pkgver"
+ patch -Np 1 -i ../dbus-enable-elogind.patch
+ # Allow us to enable checks without them being fatal
+ patch -Np1 -i ../no-fatal-warnings.diff
+ patch -p1 -i ../dbus-launch-Move-dbus-autolaunch-stuff-to-runuser.patch
+
+ NOCONFIGURE=1 ./autogen.sh
+}
+
+build() {
+ cd "$pkgbase-$pkgbase-$pkgver"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/dbus-1.0 \
+ --with-console-auth-dir=/run/console/ \
+ --with-dbus-user=dbus \
+ --with-system-pid-file=/run/dbus/pid \
+ --with-system-socket=/run/dbus/system_bus_socket \
+ --without-systemdsystemunitdir \
+ --enable-inotify \
+ --enable-libaudit \
+ --disable-systemd \
+ --disable-user-session \
+ --enable-xml-docs \
+ --enable-doxygen-docs \
+ --enable-ducktype-docs \
+ --disable-static \
+ --enable-elogind \
+ --enable-x11-autolaunch
+ make
+}
+
+check() {
+ make -C "$pkgbase-$pkgbase-$pkgver" check
+}
+
+package_dbus-xdg-elogind() {
+ depends+=(libelogind.so libaudit.so)
+ provides=(libdbus libdbus-1.so)
+ conflicts=(libdbus)
+ replaces=(libdbus)
+
+ DESTDIR="$pkgdir" make -C "$pkgbase-$pkgbase-$pkgver" install
+
+ rm -r "$pkgdir"/{etc,var}
+
+ # We have a pre-assigned uid (81)
+ echo 'u dbus 81 "System Message Bus"' |
+ install -Dm644 /dev/stdin "$pkgdir/usr/lib/sysusers.d/dbus.conf"
+
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 "$pkgbase-$pkgbase-$pkgver"/COPYING
+
+ # Split docs
+ mv "$pkgdir/usr/share/doc" "$srcdir"
+}
+
+package_dbus-docs() {
+ pkgdesc+=" (documentation)"
+ depends=()
+
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 "$pkgbase-$pkgbase-$pkgver"/COPYING
+ mv doc "$pkgdir/usr/share"
+}
+
+# vim:set sw=2 et:
diff --git a/dbus-enable-elogind.patch b/dbus-enable-elogind.patch
new file mode 100644
index 000000000000..5cb5d649cd91
--- /dev/null
+++ b/dbus-enable-elogind.patch
@@ -0,0 +1,73 @@
+--- a/dbus/dbus-userdb-util.c 2015-09-30 16:48:40.000000000 +0200
++++ b/dbus/dbus-userdb-util.c 2016-11-03 11:09:42.550520587 +0100
+@@ -32,6 +32,9 @@
+ #if HAVE_SYSTEMD
+ #include <systemd/sd-login.h>
+ #endif
++#if HAVE_ELOGIND
++#include <elogind/sd-login.h>
++#endif
+
+ /**
+ * @addtogroup DBusInternalsUtils
+@@ -54,7 +57,7 @@
+ const DBusUserInfo *info;
+ dbus_bool_t result = FALSE;
+
+-#ifdef HAVE_SYSTEMD
++#if defined(HAVE_SYSTEMD) || defined(HAVE_ELOGIND)
+ /* check if we have logind */
+ if (access ("/run/systemd/seats/", F_OK) >= 0)
+ {
+--- a/configure.ac 2016-11-03 11:13:58.286528265 +0100
++++ b/configure.ac 2016-11-03 11:22:11.210543063 +0100
+@@ -185,6 +185,7 @@
+ AC_ARG_ENABLE(kqueue, AS_HELP_STRING([--enable-kqueue],[build with kqueue support]),enable_kqueue=$enableval,enable_kqueue=auto)
+ AC_ARG_ENABLE(console-owner-file, AS_HELP_STRING([--enable-console-owner-file],[enable console owner file]),enable_console_owner_file=$enableval,enable_console_owner_file=auto)
+ AC_ARG_ENABLE(launchd, AS_HELP_STRING([--enable-launchd],[build with launchd auto-launch support]),enable_launchd=$enableval,enable_launchd=auto)
++AC_ARG_ENABLE(elogind, AS_HELP_STRING([--enable-elogind],[build with elogind user seat support]),enable_elogind=$enableval,enable_elogind=auto)
+ AC_ARG_ENABLE(systemd, AS_HELP_STRING([--enable-systemd],[build with systemd at_console support]),enable_systemd=$enableval,enable_systemd=auto)
+
+ AC_ARG_WITH(init-scripts, AS_HELP_STRING([--with-init-scripts=[redhat]],[Style of init scripts to install]))
+@@ -1184,6 +1185,24 @@
+
+ AM_CONDITIONAL(HAVE_CONSOLE_OWNER_FILE, test x$have_console_owner_file = xyes)
+
++dnl elogind detection
++if test x$enable_elogind = xno ; then
++ have_elogind=no;
++else
++ PKG_CHECK_MODULES([ELOGIND],
++ [libelogind >= 209],
++ [have_elogind=yes],
++ [have_elogind=no])
++fi
++
++if test x$have_elogind = xyes; then
++ AC_DEFINE(HAVE_ELOGIND,1,[Have elogind])
++fi
++
++if test x$enable_elogind = xyes -a x$have_elogind != xyes ; then
++ AC_MSG_ERROR([Explicitly requested elogind support, but libelogind not found])
++fi
++
+ dnl systemd detection
+ if test x$enable_systemd = xno ; then
+ have_systemd=no;
+@@ -1290,7 +1309,7 @@
+ fi
+
+ #### Set up final flags
+-LIBDBUS_LIBS="$THREAD_LIBS $NETWORK_libs $SYSTEMD_LIBS"
++LIBDBUS_LIBS="$THREAD_LIBS $NETWORK_libs $SYSTEMD_LIBS $ELOGIND_LIBS"
+ AC_SUBST([LIBDBUS_LIBS])
+
+ ### X11 detection
+@@ -1949,6 +1968,7 @@
+ Building AppArmor support: ${have_apparmor}
+ Building inotify support: ${have_inotify}
+ Building kqueue support: ${have_kqueue}
++ Building elogind support: ${have_elogind}
+ Building systemd support: ${have_systemd}
+ Building X11 code: ${have_x11}
+ Building Doxygen docs: ${enable_doxygen_docs}
diff --git a/dbus-launch-Move-dbus-autolaunch-stuff-to-runuser.patch b/dbus-launch-Move-dbus-autolaunch-stuff-to-runuser.patch
new file mode 100644
index 000000000000..370670eba193
--- /dev/null
+++ b/dbus-launch-Move-dbus-autolaunch-stuff-to-runuser.patch
@@ -0,0 +1,206 @@
+From f595065ab70c6c310f14610f8acc46a94ede7070 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Fri, 27 Apr 2012 14:36:01 -0400
+Subject: [PATCH] dbus-launch: Move ~/.dbus autolaunch stuff to /run/user
+
+We shouldn't be polluting the user's home directory when we have a
+per-machine per-user directory available in XDG_RUNTIME_DIR.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=35887
+---
+ tools/dbus-launch-x11.c | 148 +++++++++++++++++++++++++++++++----------------
+ 1 files changed, 97 insertions(+), 51 deletions(-)
+
+diff --git a/tools/dbus-launch-x11.c b/tools/dbus-launch-x11.c
+index c7e3330..b50d43a 100644
+--- a/tools/dbus-launch-x11.c
++++ b/tools/dbus-launch-x11.c
+@@ -30,6 +30,8 @@
+ #include <sys/stat.h>
+ #include <unistd.h>
+ #include <fcntl.h>
++#include <limits.h>
++#include <stdarg.h>
+ #include <errno.h>
+ #include <stdio.h>
+ #include <string.h>
+@@ -87,16 +89,98 @@ get_homedir (void)
+ return home;
+ }
+
+-#define DBUS_DIR ".dbus"
+-#define DBUS_SESSION_BUS_DIR "session-bus"
++static char *
++wish_i_had_g_build_filename (const char *first,
++ ...)
++{
++ const char *arg;
++ const char *next;
++ char *p;
++ char buf[PATH_MAX+1];
++ va_list args;
++
++ va_start (args, first);
++
++ p = &(buf[0]);
++
++ arg = first;
++ do
++ {
++ next = va_arg (args, const char *);
++ strcpy (p, arg);
++ p += strlen (arg);
++ if (next)
++ {
++ *p = '/';
++ p++;
++ }
++ arg = next;
++ }
++ while (arg != NULL);
++
++ va_end (args);
++
++ *p = '\0';
++
++ return strdup ((char*)buf);
++}
++
++static char *
++wish_i_had_g_strconcat (const char *first,
++ ...)
++{
++ char *result;
++ const char *arg;
++ va_list args;
++
++ va_start (args, first);
++
++ result = strdup (first);
++
++ while ((arg = va_arg (args, const char *)) != NULL)
++ {
++ char *end = result + strlen (result);
++ result = realloc (result, strlen (result) + strlen (arg) + 1);
++ strcpy (end, arg);
++ }
++
++ va_end (args);
++ return result;
++}
++
++/* This used to live in ~/.dbus, but we don't want to put stuff
++ * in the user home directory for multiple reasons; see
++ * https://bugs.freedesktop.org/show_bug.cgi?id=35887
++ */
++static char *autolaunch_data_dir = NULL;
++static const char *
++get_autolaunch_data_dir (void)
++{
++ if (autolaunch_data_dir == NULL)
++ {
++ const char *datadir;
++ const char *home;
++ /* http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html */
++ datadir = getenv ("XDG_RUNTIME_DIR");
++
++ if (datadir)
++ autolaunch_data_dir = wish_i_had_g_build_filename (datadir, "dbus-autolaunch", NULL);
++ else
++ {
++ home = get_homedir ();
++ autolaunch_data_dir = wish_i_had_g_build_filename (home, ".dbus", "session-bus", NULL);
++ }
++ }
++ return autolaunch_data_dir;
++}
+
+ static char *
+ get_session_file (void)
+ {
+- static const char prefix[] = "/" DBUS_DIR "/" DBUS_SESSION_BUS_DIR "/";
++ const char *autolaunch_data_dir;
+ const char *machine;
+- const char *home;
+ char *display;
++ char *session_filename;
+ char *result;
+ char *p;
+
+@@ -149,23 +233,13 @@ get_session_file (void)
+ *p = '_';
+ }
+
+- home = get_homedir ();
+-
+- result = malloc (strlen (home) + strlen (prefix) + strlen (machine) +
+- strlen (display) + 2);
+- if (result == NULL)
+- {
+- /* out of memory */
+- free (display);
+- return NULL;
+- }
++ autolaunch_data_dir = get_autolaunch_data_dir ();
+
+- strcpy (result, home);
+- strcat (result, prefix);
+- strcat (result, machine);
+- strcat (result, "-");
+- strcat (result, display);
+- free (display);
++ session_filename = wish_i_had_g_strconcat (machine, "-", display, NULL);
++
++ result = wish_i_had_g_build_filename (autolaunch_data_dir, session_filename, NULL);
++
++ free (session_filename);
+
+ verbose ("session file: %s\n", result);
+ return result;
+@@ -174,41 +248,13 @@ get_session_file (void)
+ static void
+ ensure_session_directory (void)
+ {
+- const char *home;
+- char *dir;
+-
+- home = get_homedir ();
+-
+- /* be sure we have space for / and nul */
+- dir = malloc (strlen (home) + strlen (DBUS_DIR) + strlen (DBUS_SESSION_BUS_DIR) + 3);
+- if (dir == NULL)
+- {
+- fprintf (stderr, "no memory\n");
+- exit (1);
+- }
+-
+- strcpy (dir, home);
+- strcat (dir, "/");
+- strcat (dir, DBUS_DIR);
+-
+- if (mkdir (dir, 0700) < 0)
++ const char *autolaunch_dir = get_autolaunch_data_dir();
++ if (mkdir (autolaunch_dir, 0700) < 0)
+ {
+ /* only print a warning here, writing the session file itself will fail later */
+ if (errno != EEXIST)
+- fprintf (stderr, "Unable to create %s\n", dir);
++ fprintf (stderr, "Unable to create %s\n", autolaunch_dir);
+ }
+-
+- strcat (dir, "/");
+- strcat (dir, DBUS_SESSION_BUS_DIR);
+-
+- if (mkdir (dir, 0700) < 0)
+- {
+- /* only print a warning here, writing the session file itself will fail later */
+- if (errno != EEXIST)
+- fprintf (stderr, "Unable to create %s\n", dir);
+- }
+-
+- free (dir);
+ }
+
+ static Display *
+--
+1.7.7.6 \ No newline at end of file
diff --git a/no-fatal-warnings.diff b/no-fatal-warnings.diff
new file mode 100644
index 000000000000..459da9047a50
--- /dev/null
+++ b/no-fatal-warnings.diff
@@ -0,0 +1,13 @@
+diff --git i/dbus/dbus-internals.c w/dbus/dbus-internals.c
+index 267aef97..b1064e85 100644
+--- i/dbus/dbus-internals.c
++++ w/dbus/dbus-internals.c
+@@ -185,7 +185,7 @@ const char *_dbus_no_memory_message = "Not enough memory";
+
+ static dbus_bool_t warn_initted = FALSE;
+ static dbus_bool_t fatal_warnings = FALSE;
+-static dbus_bool_t fatal_warnings_on_check_failed = TRUE;
++static dbus_bool_t fatal_warnings_on_check_failed = FALSE;
+
+ static void
+ init_warnings(void)