summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO60
-rw-r--r--0001-guest-account-Use-cross-distro-commands.patch89
-rw-r--r--0002-guest-account-Add-default-GSettings-support.patch33
-rw-r--r--PKGBUILD168
-rw-r--r--lightdm-autologin.pam12
-rw-r--r--lightdm-greeter.pam11
-rw-r--r--lightdm.install72
-rw-r--r--lightdm.pam9
-rw-r--r--lightdm.rules15
-rw-r--r--lightdm.service15
-rw-r--r--lightdm.tmpfiles.d2
11 files changed, 486 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..a812f889f215
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,60 @@
+# Generated by makepkg 4.2.1
+# Sat May 30 00:47:51 UTC 2015
+pkgbase = lightdm-ubuntu
+ pkgdesc = A lightweight display manager
+ pkgver = 1.15.0
+ 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 = gobject-introspection
+ makedepends = gtk-doc
+ makedepends = gtk3
+ makedepends = intltool
+ makedepends = qt4
+ makedepends = qt5-base
+ makedepends = yelp-tools
+ depends = libgcrypt
+ depends = libxcb
+ depends = libxdmcp
+ depends = libxklavier
+ optdepends = accountsservice: DBus interface for querying user information
+ 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 13.04 Greeter
+ optdepends = qt4: To use the qt4 version of liblightdm-qt
+ optdepends = qt5-base: To use the qt5 version of liblightdm-qt
+ provides = lightdm=1.15.0
+ provides = liblightdm-qt4=1.15.0
+ conflicts = lightdm
+ conflicts = liblightdm-qt4
+ options = emptydirs
+ 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.15.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
+ source = 0002-guest-account-Add-default-GSettings-support.patch
+ sha512sums = d0ef9d4066c2f23db87a57c239e8ddea05c427e103e42ecf9b58b4d16e856ba93a89f6348c144f0b5cb31ae41341623c7d6b079539fa76e239d3d9a77cf88082
+ sha512sums = 26bb333e58ee63a6a0d472bb0a7f9006b93c7de629780399b1dff4af3aaccea02aa74ed0410b8fa6ba55b285f7c7bb6180db059928feba56f779c5b8f3ba8b86
+ sha512sums = 81a76a49eb208b1d33f5ac0184d87a377cd37c522d74a93ccd3d96b3d6e32c44872a65873b91fec3daba0846cdb5a938b51944697e636c045d03259bd5424644
+ sha512sums = 1067bcb25b6d6d01256b176b5854d1ace700ba2b7323b4af257aa95d2f47d5043ac22811f65e99f1e961772cd1e81c153ef69b162918827bd9d7d50d458908df
+ sha512sums = 6f59d97515b37d53fb4f56de0f65994710e02c197c6d4c096aa7cdb9fe518d29223960018ae4ad8003056fed3210f47f3aa459c85b8efca80089f2046196892c
+ sha512sums = 3b482f7e551df20a5c5d9331a420275d1dad5bb6aad287247baea82dc40dc31dca22db4da180fbb950865e37cf94f1737fa1ee7ec2f5233540f82f2f570a408b
+ sha512sums = 8d6aa12c4d129c25e56ecf2904db4e294d46631d11bd8bec2f20a76c871ba758094abb24616d3d2038a684fbb736ee61d1f80697d525d62c4dc68113e101194f
+ sha512sums = 490eef8c2136ebe6525ef09e5b7ee15d2b78827538f1d4c9c4c5f2f1175d4d1d097ff57fac4ce880ceb2cfe9a810431f82625a8712c6d9306bbaf3ad5ceae742
+ sha512sums = 8a9e280bc4b60cfd9c48097878542b1005c7f3b3345296e448b3cd19987f0e51975518eb33b4c228a4d79701f57621b43cdb81f58662cb51d70d1bb9f4a3cf41
+
+pkgname = lightdm-ubuntu
+
diff --git a/0001-guest-account-Use-cross-distro-commands.patch b/0001-guest-account-Use-cross-distro-commands.patch
new file mode 100644
index 000000000000..d5caff98ef37
--- /dev/null
+++ b/0001-guest-account-Use-cross-distro-commands.patch
@@ -0,0 +1,89 @@
+From f79dcd208c2d0e09425cda9535c6881ecf22125c Mon Sep 17 00:00:00 2001
+From: Xiao-Long Chen <chenxiaolong@cxl.epac.to>
+Date: Sun, 13 Apr 2014 01:01:44 -0400
+Subject: [PATCH 1/2] guest-account: Use cross-distro commands
+
+---
+ debian/guest-account.sh | 41 +++++++++++++++++++++++++++++++++--------
+ 1 file changed, 33 insertions(+), 8 deletions(-)
+
+diff --git a/debian/guest-account.sh b/debian/guest-account.sh
+index 6da5687..0fc3daa 100644
+--- a/debian/guest-account.sh
++++ b/debian/guest-account.sh
+@@ -20,7 +20,12 @@ fi
+
+ add_account ()
+ {
+- HOME=`mktemp -td guest-XXXXXX`
++ NEWHOME=`mktemp -td guest-XXXXXX`
++ # useradd does not accept upper case characters in the username
++ HOME=`echo $NEWHOME | tr '[A-Z]' '[a-z]'`
++ if [ "x$NEWHOME" != "x$HOME" ]; then
++ mv $NEWHOME $HOME
++ fi
+ USER=`echo $HOME | sed 's/\(.*\)guest/guest/'`
+
+ # if $USER already exists, it must be a locked system account with no existing
+@@ -46,7 +51,21 @@ add_account ()
+ fi
+ else
+ # does not exist, so create it
+- adduser --system --no-create-home --home / --gecos $(gettext "Guest") --group --shell /bin/bash $USER || {
++ # Arch Linux modification: Ubuntu/Debian uses their own adduser package,
++ # which works differently from the own provided by the shadow package.
++ # Instead, use useradd, which works in any distro.
++ #
++ # Only the syntax is changed
++ # adduser -> useradd
++ # --system -> --system
++ # --no-create-home -> --no-create-home
++ # --home -> --home-dir
++ # --gecos -> --comment
++ # --group -> --user-group
++ # --shell -> --shell
++ #
++ #adduser --system --no-create-home --home / --gecos $(gettext "Guest") --group --shell /bin/bash $USER || {
++ useradd --system --no-create-home --home-dir / --comment $(gettext "Guest") --user-group --shell /bin/bash $USER || {
+ umount "$HOME"
+ rm -rf "$HOME"
+ exit 1
+@@ -128,7 +147,12 @@ remove_account ()
+ GUEST_UID=`echo "$PWENT" | cut -f3 -d:`
+ GUEST_HOME=`echo "$PWENT" | cut -f6 -d:`
+
+- if [ "$GUEST_UID" -ge 500 ]; then
++ # deluser is provided by the adduser package on Debian/Ubuntu. useradd
++ # doesn't have a '--system' parameter, which causes deluser to only delete
++ # system users, so this will be handled using this script.
++ SYS_UID_MIN="$(cat /etc/login.defs | grep SYS_UID_MIN | awk '{print $2}')"
++ SYS_UID_MAX="$(cat /etc/login.defs | grep SYS_UID_MAX | awk '{print $2}')"
++ if [ "$GUEST_UID" -lt "$SYS_UID_MIN" ] || [ "$GUEST_UID" -gt "$SYS_UID_MAX" ]; then
+ echo "Error: user $GUEST_USER is not a system user."
+ exit 1
+ fi
+@@ -150,15 +174,16 @@ remove_account ()
+ # remove leftovers in /tmp
+ find /tmp -mindepth 1 -maxdepth 1 -uid "$GUEST_UID" -print0 | xargs -0 rm -rf || true
+
+- # remove possible /media/guest-XXXXXX folder
+- if [ -d /media/"$GUEST_USER" ]; then
+- for dir in $( find /media/"$GUEST_USER" -mindepth 1 -maxdepth 1 ); do
++ # remove possible /run/media/guest-XXXXXX folder
++ if [ -d /run/media/"$GUEST_USER" ]; then
++ for dir in $( find /run/media/"$GUEST_USER" -mindepth 1 -maxdepth 1 ); do
+ umount "$dir" || true
+ done
+- rmdir /media/"$GUEST_USER" || true
++ rmdir /run/media/"$GUEST_USER" || true
+ fi
+
+- deluser --system "$GUEST_USER"
++ #deluser --system "$GUEST_USER"
++ userdel "$GUEST_USER"
+ }
+
+ case "$1" in
+--
+2.3.3
+
diff --git a/0002-guest-account-Add-default-GSettings-support.patch b/0002-guest-account-Add-default-GSettings-support.patch
new file mode 100644
index 000000000000..6970c8139310
--- /dev/null
+++ b/0002-guest-account-Add-default-GSettings-support.patch
@@ -0,0 +1,33 @@
+From 44e3fe3f4fe5c22b78dfe36c6affa9d42c1fb395 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 2/2] 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 0fc3daa..38e849c 100644
+--- a/debian/guest-account.sh
++++ b/debian/guest-account.sh
+@@ -131,6 +131,16 @@ add_account ()
+ . /etc/guest-session/prefs.sh
+ fi
+
++ # Load default dconf settings
++ mkdir -p "$HOME/.config/" "$HOME/.cache/"
++ chown -R $USER:$USER "$HOME/.config/" "$HOME/.cache/"
++ if [ -d /etc/guest-session/gsettings/ ]; then
++ for i in /etc/guest-session/gsettings/*; do
++ cat "${i}" | sed '/^\[.*\]$/ s/\./\//g' | \
++ su - $USER -c 'dbus-launch dconf load /'
++ done
++ fi
++
+ chown -R $USER:$USER "$HOME"
+
+ echo $USER
+--
+2.3.3
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..521a8863f6db
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,168 @@
+# Maintainer: Xiao-Long Chen <chenxiaolong@cxl.epac.to>
+
+# 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=vivid
+# vercheck-launchpad: name=${pkgname%-*}
+
+pkgname=lightdm-ubuntu
+_ubuntu_rel=0ubuntu1
+pkgver=1.15.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 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}.orig.tar.gz"
+ #"https://launchpad.net/ubuntu/+archive/primary/+files/lightdm_${pkgver}-${_ubuntu_rel}.diff.gz"
+ "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
+ 0002-guest-account-Add-default-GSettings-support.patch)
+sha512sums=('d0ef9d4066c2f23db87a57c239e8ddea05c427e103e42ecf9b58b4d16e856ba93a89f6348c144f0b5cb31ae41341623c7d6b079539fa76e239d3d9a77cf88082'
+ '26bb333e58ee63a6a0d472bb0a7f9006b93c7de629780399b1dff4af3aaccea02aa74ed0410b8fa6ba55b285f7c7bb6180db059928feba56f779c5b8f3ba8b86'
+ '81a76a49eb208b1d33f5ac0184d87a377cd37c522d74a93ccd3d96b3d6e32c44872a65873b91fec3daba0846cdb5a938b51944697e636c045d03259bd5424644'
+ '1067bcb25b6d6d01256b176b5854d1ace700ba2b7323b4af257aa95d2f47d5043ac22811f65e99f1e961772cd1e81c153ef69b162918827bd9d7d50d458908df'
+ '6f59d97515b37d53fb4f56de0f65994710e02c197c6d4c096aa7cdb9fe518d29223960018ae4ad8003056fed3210f47f3aa459c85b8efca80089f2046196892c'
+ '3b482f7e551df20a5c5d9331a420275d1dad5bb6aad287247baea82dc40dc31dca22db4da180fbb950865e37cf94f1737fa1ee7ec2f5233540f82f2f570a408b'
+ '8d6aa12c4d129c25e56ecf2904db4e294d46631d11bd8bec2f20a76c871ba758094abb24616d3d2038a684fbb736ee61d1f80697d525d62c4dc68113e101194f'
+ '490eef8c2136ebe6525ef09e5b7ee15d2b78827538f1d4c9c4c5f2f1175d4d1d097ff57fac4ce880ceb2cfe9a810431f82625a8712c6d9306bbaf3ad5ceae742'
+ '8a9e280bc4b60cfd9c48097878542b1005c7f3b3345296e448b3cd19987f0e51975518eb33b4c228a4d79701f57621b43cdb81f58662cb51d70d1bb9f4a3cf41')
+
+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
+
+ # 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 ../0002-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
+}
+
+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/
+}
diff --git a/lightdm-autologin.pam b/lightdm-autologin.pam
new file mode 100644
index 000000000000..bdb87ea9804e
--- /dev/null
+++ b/lightdm-autologin.pam
@@ -0,0 +1,12 @@
+#%PAM-1.0
+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 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-greeter.pam b/lightdm-greeter.pam
new file mode 100644
index 000000000000..dc9bb5471847
--- /dev/null
+++ b/lightdm-greeter.pam
@@ -0,0 +1,11 @@
+#%PAM-1.0
+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 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_gnome_keyring.so auto_start
diff --git a/lightdm.install b/lightdm.install
new file mode 100644
index 000000000000..ce36d4b27137
--- /dev/null
+++ b/lightdm.install
@@ -0,0 +1,72 @@
+# 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
+ 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
+ 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
+
+ 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
+
+ if getent passwd lightdm >/dev/null; then
+ userdel -r -f lightdm
+ fi
+ if getent group lightdm >/dev/null; then
+ groupdel lightdm
+ fi
+}
diff --git a/lightdm.pam b/lightdm.pam
new file mode 100644
index 000000000000..21b6e1695b54
--- /dev/null
+++ b/lightdm.pam
@@ -0,0 +1,9 @@
+#%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.rules b/lightdm.rules
new file mode 100644
index 000000000000..eda155bf304e
--- /dev/null
+++ b/lightdm.rules
@@ -0,0 +1,15 @@
+polkit.addRule(function(action, subject) {
+ if (subject.user == "lightdm") {
+ polkit.log("action=" + action);
+ polkit.log("subject=" + subject);
+ if (action.id.indexOf("org.freedesktop.login1.") == 0) {
+ return polkit.Result.YES;
+ }
+ if (action.id.indexOf("org.freedesktop.consolekit.system.") == 0) {
+ return polkit.Result.YES;
+ }
+ if (action.id.indexOf("org.freedesktop.upower.") == 0) {
+ return polkit.Result.YES;
+ }
+ }
+});
diff --git a/lightdm.service b/lightdm.service
new file mode 100644
index 000000000000..a24003998099
--- /dev/null
+++ b/lightdm.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=LightDM Display Manager
+Documentation=man:lightdm(1)
+After=systemd-user-sessions.service
+
+[Service]
+ExecStart=/usr/sbin/lightdm
+StandardOutput=syslog
+# Don't want a continuous loop if X fails to start
+#Restart=always
+IgnoreSIGPIPE=no
+BusName=org.freedesktop.DisplayManager
+
+[Install]
+Alias=display-manager.service
diff --git a/lightdm.tmpfiles.d b/lightdm.tmpfiles.d
new file mode 100644
index 000000000000..5199f5327186
--- /dev/null
+++ b/lightdm.tmpfiles.d
@@ -0,0 +1,2 @@
+d /run/lightdm 0775 lightdm lightdm
+f /run/lightdm/.pam_environment 0644 lightdm lightdm - GDK_CORE_DEVICE_EVENTS=true