summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 4d9948d3ea59421c2b31edc6466c633e16fa441c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# Maintainer: Michael Healy <horsemanoffaith@gmail.com>

# This package no longer depends on a specific toolkit. It will build the GTK and
# Qt libraries and recommend the installation of those respective tookits using
# optdepends.

# vercheck-pkgbuild: auto
# vercheck-ubuntu: name=${pkgname%-*}, repo=xenial
# vercheck-launchpad: name=${pkgname%-*}

pkgname=lightdm-ubuntu
_ubuntu_rel=0ubuntu1
pkgver=1.18.0
pkgrel=1
pkgdesc="A lightweight display manager"
arch=(i686 x86_64)
url="https://launchpad.net/lightdm"
# Libraries are LGPLv3+, everything else is GPLv3+
license=(GPL3 LGPL3)
groups=(unity)
depends=(libgcrypt libxcb libxdmcp libxklavier)
# Useful dependencies, but not required
#depends=('gnome-themes-standard' 'gnome-backgrounds' 'gnome-icon-theme' 'webkitgtk3')
makedepends=(gnome-common gobject-introspection gtk-doc gtk3-ubuntu intltool qt4 qt5-base yelp-tools)
optdepends=('accountsservice: DBus interface for querying user information'
            'gnome-keyring: For pam_gnome_keyring.so in the greeter PAM config'
            'gtk3: For using the GTK greeter'
            'lightdm-unity-greeter: Default Ubuntu 13.04 Greeter'
            'qt4: To use the qt4 version of liblightdm-qt'
            'qt5-base: To use the qt5 version of liblightdm-qt')
provides=("lightdm=${pkgver}" "liblightdm-qt4=${pkgver}")
conflicts=(lightdm liblightdm-qt4)
options=(emptydirs)
backup=(etc/lightdm/keys.conf
        etc/lightdm/lightdm.conf
        etc/lightdm/users.conf)
install=lightdm.install
source=("https://launchpad.net/ubuntu/+archive/primary/+files/lightdm_${pkgver}-${_ubuntu_rel}.tar.gz"
        lightdm.service
        lightdm.tmpfiles.d
        lightdm.pam
        lightdm-autologin.pam
        lightdm-greeter.pam
        lightdm.rules
        0001-guest-account-Use-cross-distro-commands.patch)
sha512sums=('a0d203c0acdcd6bbc068341bea847d1b7a037b8d361357197933a2413438282da705e40b637f7cbc34aeeb0920d0518df1c5e6019ffae4c6cd33d59a743cf4d8'
            '26bb333e58ee63a6a0d472bb0a7f9006b93c7de629780399b1dff4af3aaccea02aa74ed0410b8fa6ba55b285f7c7bb6180db059928feba56f779c5b8f3ba8b86'
            '81a76a49eb208b1d33f5ac0184d87a377cd37c522d74a93ccd3d96b3d6e32c44872a65873b91fec3daba0846cdb5a938b51944697e636c045d03259bd5424644'
            '1067bcb25b6d6d01256b176b5854d1ace700ba2b7323b4af257aa95d2f47d5043ac22811f65e99f1e961772cd1e81c153ef69b162918827bd9d7d50d458908df'
            '6f59d97515b37d53fb4f56de0f65994710e02c197c6d4c096aa7cdb9fe518d29223960018ae4ad8003056fed3210f47f3aa459c85b8efca80089f2046196892c'
            '3b482f7e551df20a5c5d9331a420275d1dad5bb6aad287247baea82dc40dc31dca22db4da180fbb950865e37cf94f1737fa1ee7ec2f5233540f82f2f570a408b'
            '8d6aa12c4d129c25e56ecf2904db4e294d46631d11bd8bec2f20a76c871ba758094abb24616d3d2038a684fbb736ee61d1f80697d525d62c4dc68113e101194f'
            '67c32e5d0865efd6d8a8bad42efa52eaa36ad4ec5c31e083edb908a5ef5ff489905ca34a46714d83e2875dcc5c96606d63d1c42fad3e555b48cbc6bd9f559ead')

prepare() {
  cd "lightdm-${pkgver}"

  #patch -p1 -i "../lightdm_${pkgver}-${_ubuntu_rel}.diff"

  # Apply Ubuntu patches

  # Disable patches
    # Do not use Ubuntu's language-tools
      sed -i '/04_language_handling.patch/d' debian/patches/series

  for i in $(grep -v '#' debian/patches/series); do
    patch -p1 -i "debian/patches/${i}"
  done

   # Do not depend on Debian/Ubuntu specific adduser package
  patch -p1 -i ../0001-guest-account-Use-cross-distro-commands.patch
}

build() {
  cd "lightdm-${pkgver}"

  export MOC4=moc-qt4
  export MOC5=moc-qt5

  gtkdocize
  aclocal --install --force
  autoreconf -vfi
  intltoolize -f

  ./configure \
    --prefix=/usr \
    --sysconfdir=/etc \
    --sbindir=/usr/bin \
    --disable-static \
    --libexecdir=/usr/lib/lightdm \
    --localstatedir=/var \
    --with-user-session=ubuntu \
    --with-greeter-user=lightdm

  make
}

package() {
  cd "lightdm-${pkgver}"
  make DESTDIR="${pkgdir}/" install

  install -dm755 "${pkgdir}/usr/lib/systemd/system/"

  # Additional LightDM configuration files
  install -dm755 "${pkgdir}"/etc/lightdm/lightdm.conf.d/
  install -m644 debian/50-{xserver-command,greeter-wrapper,guest-wrapper}.conf \
                "${pkgdir}"/etc/lightdm/lightdm.conf.d/

  # Install PAM service
  install -dm755  "${pkgdir}"/etc/pam.d/
  install -m644 "${srcdir}"/lightdm.pam "${pkgdir}"/etc/pam.d/lightdm
  install -m644 "${srcdir}"/lightdm-autologin.pam \
                "${pkgdir}"/etc/pam.d/lightdm-autologin
  install -m644 "${srcdir}"/lightdm-greeter.pam \
                "${pkgdir}"/etc/pam.d/lightdm-greeter

  # Install configuration files
  install -dm755 "${pkgdir}"/usr/share/doc/lightdm/
  install -m644 "${pkgdir}"/etc/lightdm/lightdm.conf \
                "${pkgdir}"/usr/share/doc/lightdm/
  install -m644 "${pkgdir}"/etc/lightdm/keys.conf \
                "${pkgdir}"/usr/share/doc/lightdm/

  # Install binaries and scripts
  install -dm755 "${pkgdir}"/usr/bin/
  install -m755 debian/guest-account.sh "${pkgdir}"/usr/bin/guest-account
  install -m755 debian/lightdm-session "${pkgdir}"/usr/bin/
  install -m755 debian/lightdm-greeter-session "${pkgdir}"/usr/lib/lightdm/
  install -m755 debian/config-error-dialog.sh "${pkgdir}"/usr/lib/lightdm/

  # Install systemd service
  install -m644 "${srcdir}"/lightdm.service "${pkgdir}"/usr/lib/systemd/system/

  # Install systemd tmpfiles.d file
  install -dm755 "${pkgdir}"/usr/lib/tmpfiles.d/
  install -m644 "${srcdir}"/lightdm.tmpfiles.d \
                "${pkgdir}"/usr/lib/tmpfiles.d/lightdm.conf

  # Install PolicyKit rules from Fedora which allow the lightdm user to access
  # the systemd-logind, consolekit, and upower DBus interfaces
  install -dm700 "${pkgdir}"/usr/share/polkit-1/rules.d/
  install -m644 "${srcdir}"/lightdm.rules \
                "${pkgdir}"/usr/share/polkit-1/rules.d/

  # Configuration settings that differ from Ubuntu
  sed -i \
    -e 's/^\(minimum-uid=\).*$/\11000/g' \
    -e 's@/usr\(/sbin/nologin\)$@\1@g' \
    "${pkgdir}"/etc/lightdm/users.conf

  # Configuration files specific to Ubuntu
  rm -rvf "${pkgdir}"/etc/init/

  # Create GSettings defaults directory
  install -dm755 "${pkgdir}"/etc/guest-session/gsettings/

  # Remove apparmor stuff
  rm -rvf "${pkgdir}"/etc/apparmor.d/
}