# 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
  dbus-daemon-units
  dbus-docs
)
pkgver=1.14.10
pkgrel=2.1
cross=nf
pkgdesc="Freedesktop.org message bus system"
url="https://wiki.freedesktop.org/www/Software/dbus/"
license=("AFL-2.1 OR GPL-2.0-or-later")
ncxfat_makedepends=(
  audit
  libcap-ng
  expat
  systemd-libs
)
ncxfab_makedepends=(base-devel)
source=(
  https://dbus.freedesktop.org/releases/dbus/dbus-$pkgver.tar.xz{,.asc}
  dbus-reload.hook
)
b2sums=('f605b0810dcde6a0753384927131e7f4675be737ad7506a51261717c2622e74b99ac33cc2c199b98e5aa6b9d7c68ef692b8ee9f684f6fdab8d06c6fa861a6f6b'
        'SKIP'
        '05ab81bf72e7cf45ad943f5b84eaecef4f06bed94979c579a3e23134cbabd7ea6f65fa9ac252f8b43ceb4a3295e0d2325f06560a044fe7ddf125fc30dfc2b7e2')
validpgpkeys=(
  DA98F25C0871C49A59EAFF2C4DE8FF2A63C7CC90  # Simon McVittie <simon.mcvittie@collabora.co.uk>
)

prepare() {
  cd dbus-$pkgver
}

build() {
  local configure_options=(
    --prefix=$MPKG_USRPATH
    --sysconfdir=$MPKG_ETCPATH
    --localstatedir=$MPKG_VARPATH
    --libexecdir=$MPKG_USRPATH/lib/dbus-1.0
    --runstatedir=/run
    --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
    --with-systemdsystemunitdir=$MPKG_USRPATH/lib/systemd/system
    --with-systemduserunitdir=$MPKG_USRPATH/lib/systemd/user
    --enable-inotify
    --enable-libaudit
    --enable-systemd
    --enable-user-session
    --disable-static
    --without-x
  )

  cd dbus-$pkgver
  ./configure "${configure_options[@]}"
  make
}

check() {
  make -C dbus-$pkgver -j1 check
}

_pick() {
  local p="$1" f d; shift
  for f; do
    d="$srcdir/$p/${f#$pkgdir/}"
    mkdir -p "$(dirname "$d")"
    mv "$f" "$d"
    rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
  done
}

package_dbus() {
  ncxfat_depends=(
    audit
    libcap-ng
    expat
    systemd-libs
    libaudit.so
    libcap-ng.so
    libexpat.so
    libsystemd.so
  )
  provides=(
    libdbus
    libdbus-1.so
  )
  conflicts=(libdbus)
  replaces=(libdbus)

  cd dbus-$pkgver
  DESTDIR="$pkgdir" make install

  rm -r "$pkgdir"/{$MPKG_ETCPATH,$MPKG_VARPATH}

  _pick unit "$pkgdir"$MPKG_USRPATH/lib/systemd/{system,user}/dbus.service
  _pick docs "$pkgdir"$MPKG_USRPATH/share/doc

  # We have a pre-assigned uid (81)
  echo 'u dbus 81 "System Message Bus"' |
    install -Dm644 /dev/stdin "$pkgdir$MPKG_USRPATH/lib/sysusers.d/dbus.conf"

  install -Dt "$pkgdir$MPKG_USRPATH/share/libalpm/hooks" -m644 ../*.hook

  install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 COPYING
}

package_dbus-daemon-units() {
  pkgdesc+=" - Service units"
  ncxfat_depends=(dbus)
  provides=(dbus-units)
  conflicts=(dbus-broker-units)

  mv unit/* "$pkgdir"
}

package_dbus-docs() {
  pkgdesc+=" - Documentation"

  mv docs/* "$pkgdir"
}

# vim:set sw=2 sts=-1 et:
