# Maintainer: Maxime Gauduin <alucryd@archlinux.org>
# Contributor: Morfeo <morfeo89@hotmail.it>

pkgbase=lightdm
pkgname=(
  lightdm
  liblightdm-qt5
)
pkgver=1.30.0
pkgrel=4
epoch=1
pkgdesc='A lightweight display manager'
arch=(x86_64)
url=https://github.com/canonical/lightdm
license=(
  GPL3
  LGPL3
)
makedepends=(
  glib2
  git
  gobject-introspection
  gtk-doc
  intltool
  itstool
  libgcrypt
  libx11
  libxcb
  libxdmcp
  libxklavier
  pam
  polkit
  qt5-base
  vala
  yelp-tools
)
source=(
  git+https://github.com/CanonicalLtd/lightdm.git?signed#tag=${pkgver}
  lightdm.service
  lightdm.sysusers
  lightdm.tmpfiles
  lightdm.pam
  lightdm-autologin.pam
  lightdm.rules
  lightdm-default-config.patch
  Xsession
)
validpgpkeys=(497851B5D455C606543F2B9318EAA1890F7C882E) # Robert Ancell <robert.ancell@gmail.com>
sha256sums=('SKIP'
            '0db37a14521be729411a767f157fbd07adb738b14006277def53a1efe4dacfb8'
            'fd93291bfc9985f0a1bb288472866aa0a9bcd259e024c3a29d20ca158bc08403'
            'cd69f928a1a5b30a30ba916e1b64c9f3657597cb28f3f0e220494d6e5e4bf587'
            'e8c4c5fd3b801a390d201166fd1fb9730e78a5c62928768103b870b6bd980ea0'
            'e111a484f98c1449e1cf10c31532748d98e850eff1ab9f3a3b8eec485f44198f'
            'a89566307e1c81c24f037d854cbd472d2f94f8a4b759877a01563a332319f7d6'
            '782a52dc39a7d6f2c6ee31e66897e3502fc14864e3e4ede8e3d1a0da74b8dfdf'
            'd30321a1b490500483b8ed7825fcff2c24a7c760ac627789ff517693888ec3c5')

prepare() {
  cd lightdm

  patch -Np1 -i ../lightdm-default-config.patch

  NOCONFIGURE=1 ./autogen.sh
}

build() {
  cd lightdm

  export MOC5=moc-qt5

  ./configure \
    --prefix=/usr \
    --libexecdir=/usr/lib/lightdm \
    --localstatedir=/var \
    --sbindir=/usr/bin \
    --sysconfdir=/etc \
    --disable-static \
    --disable-tests \
    --enable-gtk-doc \
    --with-greeter-user=lightdm \
    --with-greeter-session=lightdm-gtk-greeter
  make
}

package_lightdm() {
  depends=(
    glib2
    libgcrypt
    libx11
    libxcb
    libxdmcp
    libxklavier
    pam
    polkit
  )
  optdepends=(
    'accountsservice: Enhanced user accounts handling'
    'lightdm-gtk-greeter: GTK greeter'
    'xorg-server-xephyr: LightDM test mode'
  )
  backup=(
    etc/apparmor.d/lightdm-guest-session
    etc/lightdm/keys.conf
    etc/lightdm/lightdm.conf
    etc/lightdm/users.conf
    etc/lightdm/Xsession
    etc/pam.d/lightdm
    etc/pam.d/lightdm-autologin
    etc/pam.d/lightdm-greeter
  )

  cd lightdm

  make DESTDIR="${pkgdir}" install
  make DESTDIR="${pkgdir}" -C liblightdm-qt uninstall
  install -m 755 ../Xsession "${pkgdir}"/etc/lightdm/Xsession
  rm -rf "${pkgdir}"/etc/init
  rm -rf "${pkgdir}"/usr/include/lightdm-qt{,5}-*

  # Dbus
  mv "${pkgdir}"/{etc,usr/share}/dbus-1/system.d
  rmdir "${pkgdir}"/etc/dbus-1

  # PAM
  install -m 644 ../lightdm.pam "${pkgdir}"/etc/pam.d/lightdm
  install -m 644 ../lightdm-autologin.pam "${pkgdir}"/etc/pam.d/lightdm-autologin

  # PolicyKit
  install -dm 750 -g 102 "${pkgdir}"/usr/share/polkit-1/rules.d
  install -m 644 ../lightdm.rules "${pkgdir}"/usr/share/polkit-1/rules.d/lightdm.rules

  # Systemd
  install -dm 755 "${pkgdir}"/usr/lib/{systemd/system,sysusers.d,tmpfiles.d}
  install -m 644 ../lightdm.service "${pkgdir}"/usr/lib/systemd/system/lightdm.service
  install -m 644 ../lightdm.sysusers "${pkgdir}"/usr/lib/sysusers.d/lightdm.conf
  install -m 644 ../lightdm.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/lightdm.conf
}

package_liblightdm-qt5() {
  pkgdesc='LightDM Qt client library'
  depends=(
    lightdm
    qt5-base
  )
  options=(!emptydirs)

  cd lightdm

  make DESTDIR="${pkgdir}" -C liblightdm-gobject install
  make DESTDIR="${pkgdir}" -C liblightdm-qt install
  make DESTDIR="${pkgdir}" -C liblightdm-gobject uninstall
  find "${pkgdir}" -type d -name *qt[!5]* -exec rm -rf {} +
  find "${pkgdir}" -type f  -name *qt[!5]* -exec rm {} +
  find "${pkgdir}" -type l  -name *qt[!5]* -exec rm {} +
}

# vim: ts=2 sw=2 et:
