#!/bin/mkpkg # description: D-Bus message bus system # url: https://freedesktop.org/wiki/Software/dbus name=dbus version=1.16.2 release=2 depends=(expat) makedeps=(meson libxslt docbook-xsl) groups=(messagebus:user:messagebus:/nonexistent:755:81:81) services=(dbus) source=(https://dbus.freedesktop.org/releases/$name/$name-$version.tar.xz fix-daemon-location.patch) patch() { cd $name-$version patch -p1 -i "$SRC"/fix-daemon-location.patch } sha256sums=( "0ba2a1a4b16afe7bceb2c07e9ce99a8c2c3508e5dec290dbb643384bd6beb7e2" "32862e56777619a479ebefc45589cb76207c836de24a8bca14aecb4552e42528" ) build() { meson setup $name-$version build \ --prefix=/usr \ --libdir=lib \ --localstatedir=/var \ --sysconfdir=/etc \ --libexecdir=lib/dbus \ --buildtype=plain \ -D dbus_daemondir=/usr/bin \ -D dbus_user=messagebus \ -D runtime_dir=/run \ -D system_pid_file=/run/dbus/pid \ -D system_socket=/run/dbus/system_bus_socket \ -D x11_autolaunch=disabled \ -D systemd=disabled \ -D selinux=disabled \ -D xml_docs=enabled \ -D doxygen_docs=disabled \ -D ducktype_docs=disabled \ -D qt_help=disabled meson compile -C build DESTDIR=$PKG meson install -C build # Symlink arch-specific header into the standard include path # so consumers find dbus-arch-deps.h without needing the lib include path ln -sf /usr/lib/dbus-1.0/include/dbus/dbus-arch-deps.h \ "$PKG"/usr/include/dbus-1.0/dbus/dbus-arch-deps.h # machine-id lives on tmpfs, regenerated each boot by the run script ln -s /run/machine-id "$PKG"/etc/machine-id rm -f "$PKG"/usr/lib/dbus/dbus-daemon-launch-helper rm -rf $PKG/usr/share/doc rm -rf $PKG/usr/share/xml rm -rf $PKG/run } post_build() { # runit service install -d $PKG/etc/sv/dbus/log printf '%s\n' \ '#!/bin/sh' \ 'exec 2>&1' \ 'install -d -m 755 -o messagebus -g messagebus /run/dbus' \ 'dbus-uuidgen --ensure=/run/machine-id' \ 'exec dbus-daemon --system --nofork --nopidfile' \ > $PKG/etc/sv/dbus/run printf '%s\n' \ '#!/bin/sh' \ 'rm -f /run/dbus/system_bus_socket' \ > $PKG/etc/sv/dbus/finish printf '%s\n' \ '#!/bin/sh' \ 'mkdir -p /var/log/dbus' \ 'exec svlogd -tt /var/log/dbus' \ > $PKG/etc/sv/dbus/log/run chmod 755 $PKG/etc/sv/dbus/run chmod 755 $PKG/etc/sv/dbus/finish chmod 755 $PKG/etc/sv/dbus/log/run # session bus: started on first login, reused afterwards install -d "$PKG"/etc/profile.d printf '%s\n' \ '# /etc/profile.d/20-dbus.sh - start/attach per-user D-Bus session bus' \ 'if [ -n "$XDG_RUNTIME_DIR" ]; then' \ ' _bus="$XDG_RUNTIME_DIR/bus"' \ ' if [ ! -S "$_bus" ] && mkdir "$XDG_RUNTIME_DIR/.dbus-lock" 2>/dev/null; then' \ ' /usr/bin/dbus-daemon --session --address="unix:path=$_bus" \' \ ' --fork --nopidfile --syslog-only' \ ' rmdir "$XDG_RUNTIME_DIR/.dbus-lock"' \ ' fi' \ ' if [ -S "$_bus" ]; then' \ ' export DBUS_SESSION_BUS_ADDRESS="unix:path=$_bus"' \ ' fi' \ ' unset _bus' \ 'fi' \ > "$PKG"/etc/profile.d/20-dbus.sh chmod 644 "$PKG"/etc/profile.d/20-dbus.sh } signify() { untrusted comment: public key RWTZ9IduCSQ/mL8337TEUinPwT92xFEUpD92hkS7IxcOnzTt9QdpohT3 } # vim: filetype=sh