summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO86
-rw-r--r--0001-guest-account-Add-default-GSettings-support.patch33
-rw-r--r--PKGBUILD287
-rw-r--r--Xsession64
-rw-r--r--lightdm-autologin.pam3
-rw-r--r--lightdm-default-config.patch40
-rw-r--r--lightdm.install73
-rw-r--r--lightdm.pam2
-rw-r--r--lightdm.service11
-rw-r--r--lightdm.tmpfiles1
10 files changed, 376 insertions, 224 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 30b1ee131b0..510bf5d5e52 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,52 +1,88 @@
pkgbase = lightdm-ubuntu
pkgdesc = A lightweight display manager
- pkgver = 1.18.0
+ pkgver = 1.19.3
pkgrel = 1
url = https://launchpad.net/lightdm
- install = lightdm.install
arch = i686
arch = x86_64
groups = unity
license = GPL3
license = LGPL3
- makedepends = gnome-common
+ makedepends = glib2
makedepends = gobject-introspection
makedepends = gtk-doc
- makedepends = gtk3-ubuntu
makedepends = intltool
+ makedepends = itstool
+ makedepends = libgcrypt
+ makedepends = libx11
+ makedepends = libxcb
+ makedepends = libxdmcp
+ makedepends = libxklavier
+ makedepends = pam
+ makedepends = polkit
makedepends = qt4
makedepends = qt5-base
- makedepends = yelp-tools
+ makedepends = vala
+ source = https://launchpad.net/ubuntu/+archive/primary/+files/lightdm_1.19.3-0ubuntu1.tar.gz
+ source = lightdm.service
+ source = lightdm.tmpfiles
+ source = lightdm.pam
+ source = lightdm-autologin.pam
+ source = lightdm.rules
+ source = lightdm-default-config.patch
+ source = Xsession
+ source = 0001-guest-account-Add-default-GSettings-support.patch
+ sha512sums = 4c43309a5f0520047108646dcc8c5ede6da5f1478fd2ed7df30da738efe36129b1c98ab1872391a04b64ccf38afc3d28f99137a92fa824b3d0e60838490e2c97
+ sha512sums = d49344e79f6468ef06538068cbb12c37e313e02ade28984a75dad4d50e1e962372451908e9910ae60c74bd5230ae45e6a6346bb0f7c6af83c346a691f5714556
+ sha512sums = c359dbea59d9a38faa244fc52fa7fbe2a099984bdaa015e38046abfef71ed4941230b86a238c1691f04bda6f7608f403e99b04018a7cd5b7217fa89fc703af9f
+ sha512sums = cb912013a294f0801b357a43f3e5313ffa9ac5fcc493b2318843983388eb0b839c84060a97c355e12ca03f3b056644aa4a2bb8a74ed73a0f2405816b8d6efdc0
+ sha512sums = 61115380c8eb07b855c074f0c83f2f1f78a9c0ea0458cbb1e8cb1271db72e751ce6b54f80a591906c792f247cac463e8af2cc4707d3d6c1d43cb70e394fde104
+ sha512sums = 8d6aa12c4d129c25e56ecf2904db4e294d46631d11bd8bec2f20a76c871ba758094abb24616d3d2038a684fbb736ee61d1f80697d525d62c4dc68113e101194f
+ sha512sums = 62ef6fd02664d539c6169000774978c9780156d1483fabf25474073c221dc2d943f21c81b5225030f9b375eab1a83ccdefaf289d4a40a71b1fe91397da7d1425
+ sha512sums = 5e0f47e6d338e35548235dcfdb8b22622b749ffd69d5d6a4463021f51df0c679d1d78e0be17bbc072239d9916a027669aac9c6456afabe0ca3fde881b611b576
+ sha512sums = 393ede18563aab484aace26c6c470b07e16f79025fec5eec03e0f1072e39316bc73a73d45da843c6b76f356e8b069fda66fa3863f39d1106dbf1f3ff7e4175a6
+
+pkgname = lightdm-ubuntu
+ install = lightdm.install
+ depends = glib2
depends = libgcrypt
+ depends = libx11
depends = libxcb
depends = libxdmcp
depends = libxklavier
+ depends = pam
+ depends = polkit
optdepends = accountsservice: DBus interface for querying user information
+ optdepends = bindfs: Used for guest session to avoid copying skeleton dotfiles
optdepends = gnome-keyring: For pam_gnome_keyring.so in the greeter PAM config
optdepends = gtk3: For using the GTK greeter
- optdepends = lightdm-unity-greeter: Default Ubuntu 16.04 Greeter
- provides = lightdm=1.18.0
+ optdepends = lightdm-gtk-greeter: GTK greeter
+ optdepends = lightdm-kde-greeter: Qt greeter
+ optdepends = lightdm-unity-greeter: Default Ubuntu Greeter
+ provides = lightdm=1.19.3
conflicts = lightdm
- options = emptydirs
+ backup = etc/apparmor.d/lightdm-guest-session
backup = etc/lightdm/keys.conf
backup = etc/lightdm/lightdm.conf
backup = etc/lightdm/users.conf
- source = https://launchpad.net/ubuntu/+archive/primary/+files/lightdm_1.18.0-0ubuntu1.tar.gz
- source = lightdm.service
- source = lightdm.tmpfiles.d
- source = lightdm.pam
- source = lightdm-autologin.pam
- source = lightdm-greeter.pam
- source = lightdm.rules
- source = 0001-guest-account-Use-cross-distro-commands.patch
- sha512sums = a0d203c0acdcd6bbc068341bea847d1b7a037b8d361357197933a2413438282da705e40b637f7cbc34aeeb0920d0518df1c5e6019ffae4c6cd33d59a743cf4d8
- sha512sums = 26bb333e58ee63a6a0d472bb0a7f9006b93c7de629780399b1dff4af3aaccea02aa74ed0410b8fa6ba55b285f7c7bb6180db059928feba56f779c5b8f3ba8b86
- sha512sums = 81a76a49eb208b1d33f5ac0184d87a377cd37c522d74a93ccd3d96b3d6e32c44872a65873b91fec3daba0846cdb5a938b51944697e636c045d03259bd5424644
- sha512sums = 1067bcb25b6d6d01256b176b5854d1ace700ba2b7323b4af257aa95d2f47d5043ac22811f65e99f1e961772cd1e81c153ef69b162918827bd9d7d50d458908df
- sha512sums = 6f59d97515b37d53fb4f56de0f65994710e02c197c6d4c096aa7cdb9fe518d29223960018ae4ad8003056fed3210f47f3aa459c85b8efca80089f2046196892c
- sha512sums = 3b482f7e551df20a5c5d9331a420275d1dad5bb6aad287247baea82dc40dc31dca22db4da180fbb950865e37cf94f1737fa1ee7ec2f5233540f82f2f570a408b
- sha512sums = 8d6aa12c4d129c25e56ecf2904db4e294d46631d11bd8bec2f20a76c871ba758094abb24616d3d2038a684fbb736ee61d1f80697d525d62c4dc68113e101194f
- sha512sums = 67c32e5d0865efd6d8a8bad42efa52eaa36ad4ec5c31e083edb908a5ef5ff489905ca34a46714d83e2875dcc5c96606d63d1c42fad3e555b48cbc6bd9f559ead
+ backup = etc/lightdm/Xsession
+ backup = etc/pam.d/lightdm
+ backup = etc/pam.d/lightdm-autologin
+ backup = etc/pam.d/lightdm-greeter
-pkgname = lightdm-ubuntu
+pkgname = liblightdm-qt4-ubuntu
+ pkgdesc = LightDM Qt4 client library
+ depends = lightdm-ubuntu
+ depends = qt4
+ provides = liblightdm-qt4=1.19.3
+ conflicts = liblightdm-qt4
+ options = !emptydirs
+
+pkgname = liblightdm-qt5-ubuntu
+ pkgdesc = LightDM Qt5 client library
+ depends = lightdm-ubuntu
+ depends = qt5-base
+ provides = liblightdm-qt5=1.19.3
+ conflicts = liblightdm-qt5
+ options = !emptydirs
diff --git a/0001-guest-account-Add-default-GSettings-support.patch b/0001-guest-account-Add-default-GSettings-support.patch
new file mode 100644
index 00000000000..18b8d62c60b
--- /dev/null
+++ b/0001-guest-account-Add-default-GSettings-support.patch
@@ -0,0 +1,33 @@
+From 225320fe7d992e5452a3342ed36b9beca36395ec Mon Sep 17 00:00:00 2001
+From: Xiao-Long Chen <chenxiaolong@cxl.epac.to>
+Date: Sun, 13 Apr 2014 01:02:42 -0400
+Subject: [PATCH] guest-account: Add default GSettings support
+
+---
+ debian/guest-account.sh | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/debian/guest-account.sh b/debian/guest-account.sh
+index 675eb77..f5552bc 100644
+--- a/debian/guest-account.sh
++++ b/debian/guest-account.sh
+@@ -132,6 +132,16 @@ add_account ()
+ chown -R ${GUEST_USER}:${GUEST_USER} ${GUEST_HOME}
+ fi
+
++ # Load default dconf settings
++ mkdir -p "${GUEST_HOME}/.config/" "${GUEST_HOME}/.cache/"
++ chown -R ${GUEST_USER}:${GUEST_USER} "${GUEST_HOME}/.config/" "${GUEST_HOME}/.cache/"
++ if [ -d /etc/guest-session/gsettings/ ]; then
++ for i in /etc/guest-session/gsettings/*; do
++ cat "${i}" | sed '/^\[.*\]$/ s/\./\//g' | \
++ su - ${GUEST_USER} -c 'dbus-launch dconf load /'
++ done
++ fi
++
+ # setup session
+ su ${GUEST_USER} -c "env HOME=${GUEST_HOME} site_gs=${site_gs} ${dist_gs}/setup.sh"
+
+--
+2.7.0
+
diff --git a/PKGBUILD b/PKGBUILD
index 062ee885f57..a0d4599baf6 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,16 +1,13 @@
-# 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.
+# Maintainer: Xiao-Long Chen <chenxiaolong@cxl.epac.to>
# vercheck-pkgbuild: auto
-# vercheck-ubuntu: name=${pkgname%-*}, repo=xenial
+# vercheck-ubuntu: name=${pkgname%-*}, repo=yakkety
# vercheck-launchpad: name=${pkgname%-*}
-pkgname=lightdm-ubuntu
+pkgbase=lightdm-ubuntu
+pkgname=(lightdm-ubuntu liblightdm-qt4-ubuntu liblightdm-qt5-ubuntu)
_ubuntu_rel=0ubuntu1
-pkgver=1.18.0
+pkgver=1.19.3
pkgrel=1
pkgdesc="A lightweight display manager"
arch=(i686 x86_64)
@@ -18,140 +15,178 @@ 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 16.04 Greeter')
-provides=("lightdm=${pkgver}")
-conflicts=(lightdm)
-options=(emptydirs)
-backup=(etc/lightdm/keys.conf
- etc/lightdm/lightdm.conf
- etc/lightdm/users.conf)
-install=lightdm.install
+makedepends=(glib2 gobject-introspection gtk-doc intltool itstool libgcrypt
+ libx11 libxcb libxdmcp libxklavier pam polkit qt4 qt5-base vala)
source=("https://launchpad.net/ubuntu/+archive/primary/+files/lightdm_${pkgver}-${_ubuntu_rel}.tar.gz"
lightdm.service
- lightdm.tmpfiles.d
+ lightdm.tmpfiles
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'
+ lightdm-default-config.patch
+ Xsession
+ 0001-guest-account-Add-default-GSettings-support.patch)
+sha512sums=('4c43309a5f0520047108646dcc8c5ede6da5f1478fd2ed7df30da738efe36129b1c98ab1872391a04b64ccf38afc3d28f99137a92fa824b3d0e60838490e2c97'
+ 'd49344e79f6468ef06538068cbb12c37e313e02ade28984a75dad4d50e1e962372451908e9910ae60c74bd5230ae45e6a6346bb0f7c6af83c346a691f5714556'
+ 'c359dbea59d9a38faa244fc52fa7fbe2a099984bdaa015e38046abfef71ed4941230b86a238c1691f04bda6f7608f403e99b04018a7cd5b7217fa89fc703af9f'
+ 'cb912013a294f0801b357a43f3e5313ffa9ac5fcc493b2318843983388eb0b839c84060a97c355e12ca03f3b056644aa4a2bb8a74ed73a0f2405816b8d6efdc0'
+ '61115380c8eb07b855c074f0c83f2f1f78a9c0ea0458cbb1e8cb1271db72e751ce6b54f80a591906c792f247cac463e8af2cc4707d3d6c1d43cb70e394fde104'
'8d6aa12c4d129c25e56ecf2904db4e294d46631d11bd8bec2f20a76c871ba758094abb24616d3d2038a684fbb736ee61d1f80697d525d62c4dc68113e101194f'
- '67c32e5d0865efd6d8a8bad42efa52eaa36ad4ec5c31e083edb908a5ef5ff489905ca34a46714d83e2875dcc5c96606d63d1c42fad3e555b48cbc6bd9f559ead')
+ '62ef6fd02664d539c6169000774978c9780156d1483fabf25474073c221dc2d943f21c81b5225030f9b375eab1a83ccdefaf289d4a40a71b1fe91397da7d1425'
+ '5e0f47e6d338e35548235dcfdb8b22622b749ffd69d5d6a4463021f51df0c679d1d78e0be17bbc072239d9916a027669aac9c6456afabe0ca3fde881b611b576'
+ '393ede18563aab484aace26c6c470b07e16f79025fec5eec03e0f1072e39316bc73a73d45da843c6b76f356e8b069fda66fa3863f39d1106dbf1f3ff7e4175a6')
prepare() {
- cd "lightdm-${pkgver}"
-
- #patch -p1 -i "../lightdm_${pkgver}-${_ubuntu_rel}.diff"
+ cd "lightdm-${pkgver}"
- # Apply Ubuntu patches
+ patch -p1 -i "${srcdir}"/lightdm-default-config.patch
- # Disable patches
# Do not use Ubuntu's language-tools
- sed -i '/04_language_handling.patch/d' debian/patches/series
+ 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
+ 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
+ # Add support for settings GSettings/dconf defaults in the guest session. Just
+ # put the files in /etc/guest-session/gsettings/. The file format is the same
+ # as the regular GSettings override files.
+ patch -p1 -i ../0001-guest-account-Add-default-GSettings-support.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
+ cd "lightdm-${pkgver}"
+
+ export MOC4=moc-qt4
+ export MOC5=moc-qt5
+
+ gtkdocize
+ aclocal --install --force
+ autoreconf -vfi
+ intltoolize -f
+
+ ./configure \
+ --prefix=/usr \
+ --libexecdir=/usr/lib/lightdm \
+ --localstatedir=/var \
+ --sbindir=/usr/bin \
+ --sysconfdir=/etc \
+ --with-greeter-user=lightdm \
+ --with-greeter-session=lightdm-gtk-greeter \
+ --with-user-session=ubuntu \
+ --disable-static \
+ --disable-tests
+
+ make
+}
+
+package_lightdm-ubuntu() {
+ depends=(glib2 libgcrypt libx11 libxcb libxdmcp libxklavier pam polkit)
+ optdepends=('accountsservice: DBus interface for querying user information'
+ 'bindfs: Used for guest session to avoid copying skeleton dotfiles'
+ 'gnome-keyring: For pam_gnome_keyring.so in the greeter PAM config'
+ 'gtk3: For using the GTK greeter'
+ 'lightdm-gtk-greeter: GTK greeter'
+ 'lightdm-kde-greeter: Qt greeter'
+ 'lightdm-unity-greeter: Default Ubuntu Greeter')
+ provides=("lightdm=${pkgver}")
+ conflicts=(lightdm)
+ 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)
+ install=lightdm.install
+
+ cd "lightdm-${pkgver}"
+
+ make DESTDIR="${pkgdir}" install
+ make DESTDIR="${pkgdir}" -C liblightdm-qt uninstall
+
+ install -m755 ../Xsession "${pkgdir}"/etc/lightdm/Xsession
+ rm -rf "${pkgdir}"/etc/init
+ rm -rf "${pkgdir}"/usr/include/lightdm-qt{,5}-*
+
+ install -dm755 "${pkgdir}"/var/cache/lightdm
+ install -dm770 "${pkgdir}"/var/lib/lightdm{,-data}
+ install -dm711 "${pkgdir}"/var/log/lightdm
+ chmod +t "${pkgdir}"/var/{cache/lightdm,lib/lightdm{,-data}}
+ chown 620:620 -R "${pkgdir}"/var/lib/lightdm{,-data}
+ chgrp 620 "${pkgdir}"/var/log/lightdm
+
+ # PAM
+ install -m644 ../lightdm.pam "${pkgdir}"/etc/pam.d/lightdm
+ install -m644 ../lightdm-autologin.pam "${pkgdir}"/etc/pam.d/lightdm-autologin
+
+ # PolicyKit
+ install -dm750 -g102 "${pkgdir}"/usr/share/polkit-1/rules.d
+ install -m644 ../lightdm.rules "${pkgdir}"/usr/share/polkit-1/rules.d/lightdm.rules
+
+ # Systemd
+ install -dm755 "${pkgdir}"/usr/lib/{systemd/system,tmpfiles.d}
+ install -m644 ../lightdm.service "${pkgdir}"/usr/lib/systemd/system/lightdm.service
+ install -m644 ../lightdm.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/lightdm.conf
+
+ # Additional LightDM configuration files
+ install -dm755 "${pkgdir}"/etc/lightdm/lightdm.conf.d/
+ install -m644 debian/50-{xserver-command,greeter-wrapper,guest-wrapper,disable-log-backup}.conf \
+ "${pkgdir}"/etc/lightdm/lightdm.conf.d/
+
+ # Install binaries and scripts
+ install -dm755 "${pkgdir}"/usr/bin/
+ install -m755 debian/guest-account.sh "${pkgdir}"/usr/bin/guest-account
+ install -m755 debian/guest-session-auto.sh "${pkgdir}"/usr/lib/lightdm/
+ 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/
+
+ # Skeleton files for guest account
+ install -dm755 "${pkgdir}"/usr/share/lightdm/guest-session/skel/.config/autostart/
+ install -m644 debian/guest-session-startup.desktop \
+ "${pkgdir}"/usr/share/lightdm/guest-session/skel/.config/autostart/
+ install -m755 debian/guest-session-setup.sh \
+ "${pkgdir}"/usr/share/lightdm/guest-session/setup.sh
+
+ # Create GSettings defaults directory
+ install -dm755 "${pkgdir}"/etc/guest-session/gsettings/
+
+ # Remove apparmor stuff
+ rm -rvf "${pkgdir}"/etc/apparmor.d/
+}
+
+package_liblightdm-qt4-ubuntu() {
+ pkgdesc='LightDM Qt4 client library'
+ depends=(lightdm-ubuntu qt4)
+ provides=("liblightdm-qt4=${pkgver}")
+ conflicts=(liblightdm-qt4)
+ options=(!emptydirs)
+
+ cd "lightdm-${pkgver}"
+
+ 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 *qt5* -exec rm -rf {} +
+ find "${pkgdir}" -type f -name *qt5* -exec rm {} +
+ find "${pkgdir}" -type l -name *qt5* -exec rm {} +
}
-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/
+package_liblightdm-qt5-ubuntu() {
+ pkgdesc='LightDM Qt5 client library'
+ depends=(lightdm-ubuntu qt5-base)
+ provides=("liblightdm-qt5=${pkgver}")
+ conflicts=(liblightdm-qt5)
+ options=(!emptydirs)
+
+ cd "lightdm-${pkgver}"
+
+ 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 {} +
}
diff --git a/Xsession b/Xsession
new file mode 100644
index 00000000000..4a2a25ea118
--- /dev/null
+++ b/Xsession
@@ -0,0 +1,64 @@
+#!/bin/sh
+#
+# LightDM wrapper to run around X sessions.
+
+echo "Running X session wrapper"
+
+# Load profile
+for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do
+ if [ -f "$file" ]; then
+ echo "Loading profile from $file";
+ . "$file"
+ fi
+done
+
+# Load resources
+for file in "/etc/X11/Xresources" "$HOME/.Xresources"; do
+ if [ -f "$file" ]; then
+ echo "Loading resource: $file"
+ xrdb -merge "$file"
+ fi
+done
+
+# Load keymaps
+for file in "/etc/X11/Xkbmap" "$HOME/.Xkbmap"; do
+ if [ -f "$file" ]; then
+ echo "Loading keymap: $file"
+ setxkbmap `cat "$file"`
+ XKB_IN_USE=yes
+ fi
+done
+
+# Load xmodmap if not using XKB
+if [ -z "$XKB_IN_USE" ]; then
+ for file in "/etc/X11/Xmodmap" "$HOME/.Xmodmap"; do
+ if [ -f "$file" ]; then
+ echo "Loading modmap: $file"
+ xmodmap "$file"
+ fi
+ done
+fi
+
+unset XKB_IN_USE
+
+# Run all system xinitrc shell scripts
+xinitdir="/etc/X11/xinit/xinitrc.d"
+if [ -d "$xinitdir" ]; then
+ for script in $xinitdir/*; do
+ echo "Loading xinit script $script"
+ if [ -x "$script" -a ! -d "$script" ]; then
+ . "$script"
+ fi
+ done
+fi
+
+# Run user xsession shell script
+script="$HOME/.xsession"
+if [ -x "$script" -a ! -d "$script" ]; then
+ echo "Loading xsession script $script"
+ . "$script"
+fi
+
+echo "X session wrapper complete, running session $@"
+
+exec $@
diff --git a/lightdm-autologin.pam b/lightdm-autologin.pam
index bdb87ea9804..0b1f79e3e66 100644
--- a/lightdm-autologin.pam
+++ b/lightdm-autologin.pam
@@ -3,10 +3,11 @@ auth required pam_env.so
auth required pam_tally.so file=/var/log/faillog onerr=succeed
auth required pam_shells.so
auth required pam_nologin.so
+auth [success=1 default=ignore] pam_succeed_if.so user ingroup autologin
+auth required pam_unix.so
auth required pam_permit.so
-auth optional pam_gnome_keyring.so
account include system-local-login
password include system-local-login
session include system-local-login
--session optional pam_ck_connector.so
-session optional pam_gnome_keyring.so auto_start
diff --git a/lightdm-default-config.patch b/lightdm-default-config.patch
new file mode 100644
index 00000000000..a92e56c4192
--- /dev/null
+++ b/lightdm-default-config.patch
@@ -0,0 +1,40 @@
+diff -rupN lightdm-1.16.7.orig/data/lightdm.conf lightdm-1.16.7/data/lightdm.conf
+--- lightdm-1.16.7.orig/data/lightdm.conf 2016-02-07 10:44:47.229197400 +0100
++++ lightdm-1.16.7/data/lightdm.conf 2016-02-07 10:47:36.011855600 +0100
+@@ -21,13 +21,13 @@
+ #start-default-seat=true
+ #greeter-user=lightdm
+ #minimum-display-number=0
+-#minimum-vt=7
++#minimum-vt=7 # Setting this to a value < 7 implies security issues, see FS#46799
+ #lock-memory=true
+ #user-authority-in-system-dir=false
+ #guest-account-script=guest-account
+ #logind-check-graphical=false
+ #log-directory=/var/log/lightdm
+-#run-directory=/var/run/lightdm
++run-directory=/run/lightdm
+ #cache-directory=/var/cache/lightdm
+ #sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions
+ #remote-sessions-directory=/usr/share/lightdm/remote-sessions
+@@ -110,7 +110,7 @@
+ #allow-user-switching=true
+ #allow-guest=true
+ #guest-session=
+-#session-wrapper=lightdm-session
++session-wrapper=/etc/lightdm/Xsession
+ #greeter-wrapper=
+ #guest-wrapper=
+ #display-setup-script=
+diff -rupN lightdm-1.16.7.orig/data/users.conf lightdm-1.16.7/data/users.conf
+--- lightdm-1.16.7.orig/data/users.conf 2016-02-07 10:44:47.224423000 +0100
++++ lightdm-1.16.7/data/users.conf 2016-02-07 10:44:53.660216200 +0100
+@@ -9,6 +9,6 @@
+ # hidden-shells = Shells that indicate a user cannot login
+ #
+ [UserList]
+-minimum-uid=500
++minimum-uid=1000
+ hidden-users=nobody nobody4 noaccess
+-hidden-shells=/bin/false /usr/sbin/nologin
++hidden-shells=/bin/false /usr/bin/nologin
diff --git a/lightdm.install b/lightdm.install
index ce36d4b2713..c130f4771cc 100644
--- a/lightdm.install
+++ b/lightdm.install
@@ -1,72 +1,17 @@
-# The UID and GID for the lightdm package in [community] is 620 (for whatever
-# reason), so we'll keep that
-
post_install() {
- if ! getent group lightdm >/dev/null; then
- groupadd -g 620 lightdm
- fi
-
- if ! getent passwd lightdm >/dev/null; then
- useradd -u 620 -c "Light Display Manager" -g lightdm -d /var/lib/lightdm -s /sbin/nologin lightdm
- fi
-
- if ! getent group nopasswdlogin >/dev/null; then
- groupadd --system nopasswdlogin
- fi
-
- if [ ! -d /var/lib/lightdm ]; then
- mkdir -p /var/lib/lightdm
- fi
-
- chown -R lightdm:lightdm /var/lib/lightdm
- chmod -R 0750 /var/lib/lightdm
-
- systemd-tmpfiles --create /usr/lib/tmpfiles.d/lightdm.conf
-}
-
-post_upgrade() {
- if getent group lightdm >/dev/null; then
- if [ "x$(id -g lightdm 2>/dev/null)" != "x620" ]; then
- userdel lightdm &>/dev/null || :
- groupdel lightdm &>/dev/null || :
- groupadd -g 620 lightdm
+ if ! getent group lightdm &>/dev/null; then
+ groupadd -g 620 lightdm
fi
- fi
- if ! getent passwd lightdm >/dev/null; then
- if [ "x$(id -u lightdm 2>/dev/null)" != "x620" ]; then
- userdel lightdm &>/dev/null || :
- useradd -u 620 -c "Light Display Manager" -g lightdm -d /var/lib/lightdm -s /sbin/nologin lightdm
+ if ! getent passwd lightdm &>/dev/null; then
+ useradd -c 'Light Display Manager' -u 620 -g lightdm -d /var/lib/lightdm -s /usr/bin/nologin lightdm
fi
- fi
-
- chown -R lightdm:lightdm /var/lib/lightdm
- chmod -R 0750 /var/lib/lightdm
-}
-
-post_remove() {
- rm -f /etc/lightdm.conf
- if [ -d /var/lib/lightdm ]; then
- rm -r /var/lib/lightdm
- fi
+ passwd -l lightdm > /dev/null
- if [ -d /var/log/lightdm ]; then
- rm -r /var/log/lightdm
- fi
-
- if [ -d /var/cache/lightdm ]; then
- rm -r /var/cache/lightdm
- fi
-
- if [ -d /var/run/lightdm/authority ]; then
- rm -r /var/run/lightdm/authority
- fi
+ systemd-tmpfiles --create /usr/lib/tmpfiles.d/lightdm.conf
+}
- if getent passwd lightdm >/dev/null; then
- userdel -r -f lightdm
- fi
- if getent group lightdm >/dev/null; then
- groupdel lightdm
- fi
+post_upgrade() {
+ post_install
}
diff --git a/lightdm.pam b/lightdm.pam
index 21b6e1695b5..76b8869a251 100644
--- a/lightdm.pam
+++ b/lightdm.pam
@@ -1,9 +1,7 @@
#%PAM-1.0
auth include system-login
-auth sufficient pam_succeed_if.so user ingroup nopasswdlogin
-auth optional pam_gnome_keyring.so
account include system-login
password include system-login
session include system-login
--session optional pam_ck_connector.so
-session optional pam_gnome_keyring.so auto_start
diff --git a/lightdm.service b/lightdm.service
index a2400399809..4a793031be3 100644
--- a/lightdm.service
+++ b/lightdm.service
@@ -1,13 +1,12 @@
[Unit]
-Description=LightDM Display Manager
+Description=Light Display Manager
Documentation=man:lightdm(1)
-After=systemd-user-sessions.service
+Conflicts=getty@tty1.service
+After=getty@tty1.service systemd-user-sessions.service plymouth-quit.service acpid.service
[Service]
-ExecStart=/usr/sbin/lightdm
-StandardOutput=syslog
-# Don't want a continuous loop if X fails to start
-#Restart=always
+ExecStart=/usr/bin/lightdm
+Restart=always
IgnoreSIGPIPE=no
BusName=org.freedesktop.DisplayManager
diff --git a/lightdm.tmpfiles b/lightdm.tmpfiles
new file mode 100644
index 00000000000..d8ef132d3da
--- /dev/null
+++ b/lightdm.tmpfiles
@@ -0,0 +1 @@
+d /run/lightdm 0711 lightdm lightdm