summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO69
-rw-r--r--MKPKG3
-rw-r--r--PKGBUILD138
-rw-r--r--Xsession73
-rw-r--r--lightdm-autologin.pam13
-rw-r--r--lightdm-default-config.patch40
-rw-r--r--lightdm.install17
-rw-r--r--lightdm.pam7
-rw-r--r--lightdm.rules15
-rw-r--r--lightdm.service14
-rw-r--r--lightdm.tmpfiles1
11 files changed, 390 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..0d66dc257bd8
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,69 @@
+pkgbase = lightdm-devel
+ pkgdesc = A lightweight display manager
+ pkgver = 1.15.0
+ pkgrel = 1
+ url = https://launchpad.net/lightdm
+ arch = i686
+ arch = x86_64
+ license = GPL3
+ license = LGPL3
+ makedepends = gobject-introspection
+ makedepends = gtk-doc
+ makedepends = intltool
+ makedepends = itstool
+ makedepends = libxklavier
+ makedepends = polkit
+ makedepends = qt4
+ makedepends = qt5-base
+ makedepends = systemd
+ source = https://launchpad.net/lightdm/1.15/1.15.0/+download/lightdm-1.15.0.tar.xz
+ source = lightdm.service
+ source = lightdm.tmpfiles
+ source = lightdm.pam
+ source = lightdm-autologin.pam
+ source = lightdm.rules
+ source = lightdm-default-config.patch
+ source = Xsession
+ sha256sums = 1a8a4a4bf81a00e44fb57e13cff475b7cfedf94a09c2be544b04e3b372140c38
+ sha256sums = 0d2adba25cdbe59e97ffd302083db9d5e23920780f41e04f64512cd6b633289a
+ sha256sums = b29521fbd7a48a8f60b93ecca3b30c30bcb71560de8033c8d39b25c22c6f696f
+ sha256sums = e8c4c5fd3b801a390d201166fd1fb9730e78a5c62928768103b870b6bd980ea0
+ sha256sums = 33e3c3d6e16c8d30756754ea3f31f5457c5be0343686aad287692be34958984a
+ sha256sums = a89566307e1c81c24f037d854cbd472d2f94f8a4b759877a01563a332319f7d6
+ sha256sums = ed3dca57ef19d32499b72668bc78eaff0d9e772718b76f3816c5ee5f816b1891
+ sha256sums = 7fb85a1b54406032a922e8fd6f45d869fcfe5681df630e74e8e50c040b786ee4
+
+pkgname = lightdm-devel
+ install = lightdm.install
+ depends = libxklavier
+ depends = polkit
+ depends = systemd
+ optdepends = xorg-server-xephyr: LightDM test mode
+ optdepends = accountsservice: limit visible accounts
+ provides = lightdm=1.15.0
+ conflicts = lightdm
+ backup = etc/apparmor.d/lightdm-guest-session
+ backup = etc/lightdm/keys.conf
+ backup = etc/lightdm/lightdm.conf
+ backup = etc/lightdm/users.conf
+ backup = etc/lightdm/Xsession
+ backup = etc/pam.d/lightdm
+ backup = etc/pam.d/lightdm-autologin
+ backup = etc/pam.d/lightdm-greeter
+
+pkgname = liblightdm-qt4-devel
+ pkgdesc = LightDM Qt client library
+ depends = lightdm
+ depends = qt4
+ provides = liblightdm-qt4
+ conflicts = liblightdm-qt4
+ options = !emptydirs
+
+pkgname = liblightdm-qt5-devel
+ pkgdesc = LightDM Qt client library
+ depends = lightdm
+ depends = qt5-base
+ provides = liblightdm-qt5
+ conflicts = liblightdm-qt5
+ options = !emptydirs
+
diff --git a/MKPKG b/MKPKG
new file mode 100644
index 000000000000..8af9fc215f80
--- /dev/null
+++ b/MKPKG
@@ -0,0 +1,3 @@
+pkgname=('lightdm-devel')
+
+# vim: ts=2 sw=2 et:
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..f8cfd104a267
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,138 @@
+# Maintainer: Maxime Gauduin <alucryd@archlinux.org>
+# Contributor: padfoot <padfoot@exemail.com.au>
+# Contributor: Morfeo <morfeo89@hotmail.it>
+
+pkgbase=lightdm-devel
+pkgname=('lightdm-devel' 'liblightdm-qt4-devel' 'liblightdm-qt5-devel')
+pkgver=1.15.0
+pkgrel=1
+pkgdesc='A lightweight display manager'
+arch=('i686' 'x86_64')
+url='https://launchpad.net/lightdm'
+license=('GPL3' 'LGPL3')
+makedepends=('gobject-introspection' 'gtk-doc' 'intltool' 'itstool'
+ 'libxklavier' 'polkit' 'qt4' 'qt5-base' 'systemd')
+source=("https://launchpad.net/lightdm/${pkgver%.*}/${pkgver}/+download/lightdm-${pkgver}.tar.xz"
+ 'lightdm.service'
+ 'lightdm.tmpfiles'
+ 'lightdm.pam'
+ 'lightdm-autologin.pam'
+ 'lightdm.rules'
+ 'lightdm-default-config.patch'
+ 'Xsession')
+sha256sums=('1a8a4a4bf81a00e44fb57e13cff475b7cfedf94a09c2be544b04e3b372140c38'
+ '0d2adba25cdbe59e97ffd302083db9d5e23920780f41e04f64512cd6b633289a'
+ 'b29521fbd7a48a8f60b93ecca3b30c30bcb71560de8033c8d39b25c22c6f696f'
+ 'e8c4c5fd3b801a390d201166fd1fb9730e78a5c62928768103b870b6bd980ea0'
+ '33e3c3d6e16c8d30756754ea3f31f5457c5be0343686aad287692be34958984a'
+ 'a89566307e1c81c24f037d854cbd472d2f94f8a4b759877a01563a332319f7d6'
+ 'ed3dca57ef19d32499b72668bc78eaff0d9e772718b76f3816c5ee5f816b1891'
+ '7fb85a1b54406032a922e8fd6f45d869fcfe5681df630e74e8e50c040b786ee4')
+
+prepare() {
+ cd lightdm-${pkgver}
+
+ patch -Np1 -i ../lightdm-default-config.patch
+}
+
+build() {
+ cd lightdm-${pkgver}
+
+ export MOC4='moc-qt4'
+ export MOC5='moc-qt5'
+
+ ./configure \
+ --prefix='/usr' \
+ --libexecdir='/usr/lib/lightdm' \
+ --localstatedir='/var' \
+ --sbindir='/usr/bin' \
+ --sysconfdir='/etc' \
+ --with-greeter-session='lightdm-gtk-greeter' \
+ --with-greeter-user='lightdm' \
+ --disable-static \
+ --disable-tests
+ make
+}
+
+package_lightdm-devel() {
+depends=('libxklavier' 'polkit' 'systemd')
+optdepends=('xorg-server-xephyr: LightDM test mode'
+ 'accountsservice: limit visible accounts')
+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 -m 755 ../Xsession "${pkgdir}"/etc/lightdm/Xsession
+ rm -rf "${pkgdir}"/etc/init
+ rm -rf "${pkgdir}"/usr/include/lightdm-qt{,5}-*
+
+ install -dm 755 "${pkgdir}"/var/cache/lightdm
+ install -dm 770 "${pkgdir}"/var/lib/lightdm{,-data}
+ install -dm 711 "${pkgdir}"/var/log/lightdm
+ chmod +t "${pkgdir}"/var/{cache/lightdm,lib/lightdm{,-data}}
+ echo 'GDK_CORE_DEVICE_EVENTS=true' > "${pkgdir}"/var/lib/lightdm/.pam_environment
+ chmod 644 "${pkgdir}"/var/lib/lightdm/.pam_environment
+ chown 620:620 -R "${pkgdir}"/var/lib/lightdm{,-data}
+ chgrp 620 "${pkgdir}"/var/log/lightdm
+
+# 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 700 -o polkitd "${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,tmpfiles.d}
+ install -m 644 ../lightdm.service "${pkgdir}"/usr/lib/systemd/system/lightdm.service
+ install -m 644 ../lightdm.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/lightdm.conf
+}
+
+package_liblightdm-qt4-devel() {
+pkgdesc='LightDM Qt client library'
+depends=('lightdm' 'qt4')
+provides=('liblightdm-qt4')
+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_liblightdm-qt5-devel() {
+pkgdesc='LightDM Qt client library'
+depends=('lightdm' 'qt5-base')
+provides=('liblightdm-qt5')
+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 {} +
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/Xsession b/Xsession
new file mode 100644
index 000000000000..58920534254f
--- /dev/null
+++ b/Xsession
@@ -0,0 +1,73 @@
+#!/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 -nocpp -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
+
+# Load xsession scripts
+xsessionddir="/etc/X11/xsession.d"
+if [ -d "$xsessionddir" ]; then
+ for i in `ls $xsessionddir`; do
+ script="$xsessionddir/$i"
+ echo "Loading X session script $script"
+ if [ -r "$script" -a -f "$script" ] && expr "$i" : '^[[:alnum:]_-]\+$' > /dev/null; then
+ . "$script"
+ fi
+ done
+fi
+if [ -x "$HOME/.xsession" -a -f "$HOME/.xsession" ]; then
+ echo "Loading user X session script"
+ . "$HOME/.xsession"
+fi
+
+echo "X session wrapper complete, running session $@"
+
+exec $@
diff --git a/lightdm-autologin.pam b/lightdm-autologin.pam
new file mode 100644
index 000000000000..0b1f79e3e665
--- /dev/null
+++ b/lightdm-autologin.pam
@@ -0,0 +1,13 @@
+#%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 [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_gnome_keyring.so auto_start
diff --git a/lightdm-default-config.patch b/lightdm-default-config.patch
new file mode 100644
index 000000000000..32a8f8cd86f1
--- /dev/null
+++ b/lightdm-default-config.patch
@@ -0,0 +1,40 @@
+diff -rupN lightdm-1.11.9.orig/data/lightdm.conf lightdm-1.11.9/data/lightdm.conf
+--- lightdm-1.11.9.orig/data/lightdm.conf 2014-09-14 12:55:09.591944064 +0200
++++ lightdm-1.11.9/data/lightdm.conf 2014-09-14 12:58:13.396791044 +0200
+@@ -20,13 +20,13 @@
+ #start-default-seat=true
+ #greeter-user=lightdm
+ #minimum-display-number=0
+-#minimum-vt=7
++minimum-vt=1
+ #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
+ #remote-sessions-directory=/usr/share/lightdm/remote-sessions
+@@ -101,7 +101,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.11.9.orig/data/users.conf lightdm-1.11.9/data/users.conf
+--- lightdm-1.11.9.orig/data/users.conf 2014-09-14 12:55:09.591944064 +0200
++++ lightdm-1.11.9/data/users.conf 2014-09-14 12:59:21.426117548 +0200
+@@ -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
new file mode 100644
index 000000000000..5b9b01b96342
--- /dev/null
+++ b/lightdm.install
@@ -0,0 +1,17 @@
+post_install() {
+ getent group lightdm > /dev/null 2>&1 || groupadd -g 620 lightdm
+ getent passwd lightdm > /dev/null 2>&1 || useradd -c 'Light Display Manager' -u 620 -g lightdm -d /var/lib/lightdm -s /usr/bin/nologin lightdm
+ passwd -l lightdm > /dev/null
+ systemd-tmpfiles --create /usr/lib/tmpfiles.d/lightdm.conf
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ getent passwd lightdm > /dev/null 2>&1 && userdel lightdm
+ getent group lightdm > /dev/null 2>&1 && groupdel lightdm
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/lightdm.pam b/lightdm.pam
new file mode 100644
index 000000000000..76b8869a2515
--- /dev/null
+++ b/lightdm.pam
@@ -0,0 +1,7 @@
+#%PAM-1.0
+auth include system-login
+-auth optional pam_gnome_keyring.so
+account include system-login
+password include system-login
+session include system-login
+-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..9b22f034c5da
--- /dev/null
+++ b/lightdm.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Light Display Manager
+Documentation=man:lightdm(1)
+Conflicts=getty@tty1.service
+After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service
+
+[Service]
+ExecStart=/usr/bin/lightdm
+Restart=always
+IgnoreSIGPIPE=no
+BusName=org.freedesktop.DisplayManager
+
+[Install]
+Alias=display-manager.service
diff --git a/lightdm.tmpfiles b/lightdm.tmpfiles
new file mode 100644
index 000000000000..d8ef132d3daa
--- /dev/null
+++ b/lightdm.tmpfiles
@@ -0,0 +1 @@
+d /run/lightdm 0711 lightdm lightdm