# $Id$ PNAME="dbus" PVER="1.12.6" PBUILD="r1" SPLIT_PACKAGES="dbus-libs dbus dbus-x11" PCAT="sys-apps" HOMEPAGE="http://www.freedesktop.org/Software/dbus" LIB_DEPEND=">= virtual/glibc" DBUS_DEPEND=">= dev-libs/expat-2 >= sys-apps/util-linux-2.27 >= sys-libs/libsystemd-230" X11_DEPEND=">= x11-libs/libX11-1.6 >= x11-libs/libXt-1.1" # disable atm msetfeature "!check" if mqueryfeature "check" then CHECK_DEPEND=">= dev-libs/dbus-glib-0.104 >= dev-python/dbus-python-1.2.0" else CHECK_DEPEND="" fi SDEPEND="${LIB_DEPEND} ${DBUS_DEPEND} ${X11_DEPEND} ${CHECK_DEPEND} >= app-text/xmlto-0.0.26 >= dev-util/pkgconfig-0.25 >= sys-apps/systemd-230 >= app-text/docbook-xml-dtd44-4.4 >= app-text/docbook-xsl-stylesheets-1.75" SRCFILE="${PNAME}-${PVER}.tar.gz" SRCDIR="${BUILDDIR}/${PNAME}-${PVER}" sminclude mtools multilib systemd SESSION_SCRIPT_REV=2 SRC_URI=( http://dbus.freedesktop.org/releases/${PNAME}/${SRCFILE} mirror://${PNAME}/${SRCFILE} mirror://${PNAME}/${PNAME}-1.5.8-no-fatal-warnings.patch ) # use subdir $uri/dbus UP2SUBDIR="${PNAME}" UP2DATE="updatecmd_freedesktop ${PNAME} gz" split_info_dbus-libs() { DESCRIPTION="Libraries for accessing D-BUS." DEPEND="${LIB_DEPEND}" PCAT="sys-libs" } split_info_dbus() { DESCRIPTION="D-BUS is a message bus system, a simple way for applications to talk to one another." DEPEND="== sys-libs/dbus-libs-${PVER} ${DBUS_DEPEND}" } split_info_dbus-x11() { DESCRIPTION="X11-requiring add-ons for D-BUS." DEPEND="== sys-libs/dbus-libs-${PVER} == sys-apps/dbus-${PVER} ${X11_DEPEND}" } pkg_setup() { preinstall_dbus } src_prepare() { munpack ${SRCFILE} || die # do not abort on fatal warnings by default mpatch ${PNAME}-1.5.8-no-fatal-warnings.patch || die } src_compile() { # using /lib/systemd/system as systemd units dir even on multilib systems # to have one common rules/script directory! mconfigure \ --with-system-pid-file=/run/dbus.pid \ --with-system-socket=/run/dbus/system_bus_socket \ --with-session-socket-dir=/tmp \ --with-test-socket-dir=/tmp \ --with-console-auth-dir=/run/console \ --libexecdir=/usr/$(mlibdir)/dbus-1.0 \ --localstatedir=/var \ --with-dbus-user=messagebus \ --with-xml=expat \ --disable-verbose-mode \ --disable-checks \ --disable-asserts \ --enable-inotify \ --disable-dnotify \ --with-x \ --disable-doxygen-docs \ --with-systemdsystemunitdir=$(mget-systemd-unit-dir) \ --enable-systemd \ --enable-user-session \ || die mmake || die } src_install_dbus-libs() { # fix ln issue on multilib: force overwrite of all symlinks mmake DESTDIR=${BINDIR} LN_S="'ln -sf'" -C dbus install-libLTLIBRARIES || die } src_install_dbus() { # fix ln issue on multilib: force overwrite of all symlinks mmake install DESTDIR=${BINDIR} LN_S="'ln -sf'" || die # remove libraries provided by the dbus-libs package mmake DESTDIR=${BINDIR} LN_S="'ln -sf'" -C dbus uninstall-libLTLIBRARIES || die # remove dbus-launch provided by dbus-x11 package mdelete /usr/bin/dbus-launch || die mdelete /usr/share/man/man1/dbus-launch.1 || die # remove dbus-run-session provided by dbus-x11 package mdelete /usr/bin/dbus-run-session || die mdelete /usr/share/man/man1/dbus-run-session.1 || die # mark some dirs undeletable mkeepdir /var/lib/dbus || die mkeepdir /run/dbus || die mkeepdir /usr/lib/dbus-1.0/services || die mkeepdir /usr/share/dbus-1/services || die mkeepdir /etc/dbus-1/system.d || die mkeepdir /etc/dbus-1/session.d || die minstalldocs AUTHORS ChangeLog COPYING HACKING NEWS README || die } src_install_dbus-x11() { all-abis minstallexec tools/.libs/dbus-launch || die all-abis minstallman doc/dbus-launch.1 || die all-abis minstallexec tools/.libs/dbus-run-session || die all-abis minstallman doc/dbus-run-session.1 || die } preinstall_dbus() { # adds plugdev group mgroupadd -o "-g 302" plugdev # adds messagebus user mgroupadd -o "-g 300" messagebus museradd -o "-M -u 300 -g messagebus -d /dev/null -s /bin/false" messagebus } postinstall_dbus() { # only reload dbus-daemon if already running if pidof dbus-daemon > /dev/null then mreloadunit dbus.service dbus-daemon else mstartunit dbus.service dbus-daemon fi } postremove_dbus() { mstopunit dbus.service dbus-daemon }