Date: Sunday, May 12, 2013 @ 12:40:13 Author: alucryd Revision: 90427
archrelease: copy trunk to community-staging-i686, community-staging-x86_64 Added: lightdm/repos/community-staging-i686/ lightdm/repos/community-staging-i686/PKGBUILD (from rev 90426, lightdm/trunk/PKGBUILD) lightdm/repos/community-staging-i686/lightdm-autologin.pam (from rev 90426, lightdm/trunk/lightdm-autologin.pam) lightdm/repos/community-staging-i686/lightdm-default-config.patch (from rev 90426, lightdm/trunk/lightdm-default-config.patch) lightdm/repos/community-staging-i686/lightdm-lock-screen-before-switch.patch (from rev 90426, lightdm/trunk/lightdm-lock-screen-before-switch.patch) lightdm/repos/community-staging-i686/lightdm.install (from rev 90426, lightdm/trunk/lightdm.install) lightdm/repos/community-staging-i686/lightdm.pam (from rev 90426, lightdm/trunk/lightdm.pam) lightdm/repos/community-staging-i686/lightdm.rules (from rev 90426, lightdm/trunk/lightdm.rules) lightdm/repos/community-staging-i686/lightdm.service (from rev 90426, lightdm/trunk/lightdm.service) lightdm/repos/community-staging-i686/lightdm.tmpfiles (from rev 90426, lightdm/trunk/lightdm.tmpfiles) lightdm/repos/community-staging-i686/xsession (from rev 90426, lightdm/trunk/xsession) lightdm/repos/community-staging-x86_64/ lightdm/repos/community-staging-x86_64/PKGBUILD (from rev 90426, lightdm/trunk/PKGBUILD) lightdm/repos/community-staging-x86_64/lightdm-autologin.pam (from rev 90426, lightdm/trunk/lightdm-autologin.pam) lightdm/repos/community-staging-x86_64/lightdm-default-config.patch (from rev 90426, lightdm/trunk/lightdm-default-config.patch) lightdm/repos/community-staging-x86_64/lightdm-lock-screen-before-switch.patch (from rev 90426, lightdm/trunk/lightdm-lock-screen-before-switch.patch) lightdm/repos/community-staging-x86_64/lightdm.install (from rev 90426, lightdm/trunk/lightdm.install) lightdm/repos/community-staging-x86_64/lightdm.pam (from rev 90426, lightdm/trunk/lightdm.pam) lightdm/repos/community-staging-x86_64/lightdm.rules (from rev 90426, lightdm/trunk/lightdm.rules) lightdm/repos/community-staging-x86_64/lightdm.service (from rev 90426, lightdm/trunk/lightdm.service) lightdm/repos/community-staging-x86_64/lightdm.tmpfiles (from rev 90426, lightdm/trunk/lightdm.tmpfiles) lightdm/repos/community-staging-x86_64/xsession (from rev 90426, lightdm/trunk/xsession) ------------------------------------------------------------------+ community-staging-i686/PKGBUILD | 118 ++++++++++ community-staging-i686/lightdm-autologin.pam | 13 + community-staging-i686/lightdm-default-config.patch | 43 +++ community-staging-i686/lightdm-lock-screen-before-switch.patch | 55 ++++ community-staging-i686/lightdm.install | 18 + community-staging-i686/lightdm.pam | 7 community-staging-i686/lightdm.rules | 15 + community-staging-i686/lightdm.service | 14 + community-staging-i686/lightdm.tmpfiles | 1 community-staging-i686/xsession | 73 ++++++ community-staging-x86_64/PKGBUILD | 118 ++++++++++ community-staging-x86_64/lightdm-autologin.pam | 13 + community-staging-x86_64/lightdm-default-config.patch | 43 +++ community-staging-x86_64/lightdm-lock-screen-before-switch.patch | 55 ++++ community-staging-x86_64/lightdm.install | 18 + community-staging-x86_64/lightdm.pam | 7 community-staging-x86_64/lightdm.rules | 15 + community-staging-x86_64/lightdm.service | 14 + community-staging-x86_64/lightdm.tmpfiles | 1 community-staging-x86_64/xsession | 73 ++++++ 20 files changed, 714 insertions(+) Copied: lightdm/repos/community-staging-i686/PKGBUILD (from rev 90426, lightdm/trunk/PKGBUILD) =================================================================== --- community-staging-i686/PKGBUILD (rev 0) +++ community-staging-i686/PKGBUILD 2013-05-12 10:40:13 UTC (rev 90427) @@ -0,0 +1,118 @@ +# $Id$ +# Maintainer: Maxime Gauduin <aluc...@gmail.com> +# Contributor: Morfeo <morfe...@hotmail.it> + +pkgbase=lightdm +pkgname=('lightdm' 'liblightdm-qt4' 'liblightdm-qt5') +pkgver=1.6.0 +pkgrel=2 +epoch=1 +pkgdesc="A lightweight display manager" +arch=('i686' 'x86_64') +url="https://launchpad.net/lightdm" +license=('GPL3' 'LGPL3') +groups=('lightdm') +makedepends=('gobject-introspection' 'gtk-doc' 'intltool' 'itstool' 'libxklavier' 'qt4' 'qt5-base' 'yelp-tools') +options=('!emptydirs' '!libtool') +source=("https://launchpad.net/lightdm/1.6/${pkgver}/+download/${pkgbase}-${pkgver}.tar.xz" + 'lightdm.service' + 'lightdm.tmpfiles' + 'lightdm.pam' + 'lightdm-autologin.pam' + 'lightdm.rules' + 'lightdm-default-config.patch' + 'lightdm-lock-screen-before-switch.patch' + 'xsession') +sha256sums=('882ece568df0d81c0b6e399ff00b3f89eee6d50efc09ad1c52c61d8753efb419' + '3daf2f7e1b751415eab9b2aa92d78d8e00c3447a77fa31f7e75863136286a86f' + 'b29521fbd7a48a8f60b93ecca3b30c30bcb71560de8033c8d39b25c22c6f696f' + 'e8c4c5fd3b801a390d201166fd1fb9730e78a5c62928768103b870b6bd980ea0' + '33e3c3d6e16c8d30756754ea3f31f5457c5be0343686aad287692be34958984a' + 'a89566307e1c81c24f037d854cbd472d2f94f8a4b759877a01563a332319f7d6' + '6d5a754f41e9c7e52c51d2ff018b926ddaabb807e9a0b88c4a7bde1acffa3b1c' + '4793eaee5915f5c519f569a4cd9158822d4c57c8b6e405895d2eddf82fa00822' + '7fb85a1b54406032a922e8fd6f45d869fcfe5681df630e74e8e50c040b786ee4') + +prepare() { + cd "${srcdir}"/${pkgbase}-${pkgver} + + patch -Np1 -i ../lightdm-default-config.patch + patch -Np1 -i ../lightdm-lock-screen-before-switch.patch + sed -i 's/MOC5 --qt=qt5/MOC5/' configure +} + +build() { + cd "${srcdir}"/${pkgbase}-${pkgver} + + ./configure --prefix=/usr --sbindir=/usr/bin --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/${pkgbase} --with-greeter-user=lightdm --with-greeter-session=lightdm-gtk-greeter --disable-{static,tests} + make +} + +package_lightdm() { +depends=('libxklavier' 'systemd') +optdepends=('xorg-server-xephyr: LightDM test mode' + 'accountsservice: limit visible accounts') +backup=('etc/apparmor.d/lightdm-guest-session' + 'etc/lightdm/keys.conf' + 'etc/lightdm/lightdm.conf' + 'etc/lightdm/users.conf') +install=${pkgbase}.install + + cd "${srcdir}"/${pkgbase}-${pkgver} + + make DESTDIR="${pkgdir}" install + make DESTDIR="${pkgdir}" -C liblightdm-qt uninstall + rm -rf "${pkgdir}"/etc/init + +# Persistent home + install -dm 770 "${pkgdir}"/var/lib/lightdm + chmod +t "${pkgdir}"/var/lib/lightdm + echo 'GDK_CORE_DEVICE_EVENTS=true' > "${pkgdir}"/var/lib/lightdm/.pam_environment + chmod 644 "${pkgdir}"/var/lib/lightdm/.pam_environment + +# Session wrapper + install -m 755 ../xsession "${pkgdir}"/etc/lightdm/xsession + +# 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 "${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() { +pkgdesc=('LightDM Qt client library') +depends=('lightdm' 'qt4') + + cd "${srcdir}"/${pkgbase}-${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() { +pkgdesc=('LightDM Qt client library') +depends=('lightdm' 'qt5-base') + + cd "${srcdir}"/${pkgbase}-${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: Copied: lightdm/repos/community-staging-i686/lightdm-autologin.pam (from rev 90426, lightdm/trunk/lightdm-autologin.pam) =================================================================== --- community-staging-i686/lightdm-autologin.pam (rev 0) +++ community-staging-i686/lightdm-autologin.pam 2013-05-12 10:40:13 UTC (rev 90427) @@ -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 Copied: lightdm/repos/community-staging-i686/lightdm-default-config.patch (from rev 90426, lightdm/trunk/lightdm-default-config.patch) =================================================================== --- community-staging-i686/lightdm-default-config.patch (rev 0) +++ community-staging-i686/lightdm-default-config.patch 2013-05-12 10:40:13 UTC (rev 90427) @@ -0,0 +1,43 @@ +diff -rupN lightdm-1.5.1.orig/data/lightdm.conf lightdm-1.5.1/data/lightdm.conf +--- lightdm-1.5.1.orig/data/lightdm.conf 2013-03-06 03:40:10.000000000 +0100 ++++ lightdm-1.5.1/data/lightdm.conf 2013-03-12 22:59:22.494743200 +0100 +@@ -24,7 +24,7 @@ + #user-authority-in-system-dir=false + #guest-account-script=guest-account + #log-directory=/var/log/lightdm +-#run-directory=/var/run/lightdm ++run-directory=/run/lightdm + #cache-directory=/var/cache/lightdm + #xsessions-directory=/usr/share/xsessions + #remote-sessions-directory=/usr/share/lightdm/remote-sessions +@@ -77,7 +77,7 @@ + #user-session=default + #allow-guest=true + #guest-session=UNIMPLEMENTED +-#session-wrapper=lightdm-session ++session-wrapper=/etc/lightdm/xsession + #display-setup-script= + #greeter-setup-script= + #session-setup-script= +@@ -86,6 +86,7 @@ + #autologin-user= + #autologin-user-timeout=0 + #autologin-session=UNIMPLEMENTED ++pam-service=lightdm-autologin + #exit-on-failure=false + + # +diff -rupN lightdm-1.5.1.orig/data/users.conf lightdm-1.5.1/data/users.conf +--- lightdm-1.5.1.orig/data/users.conf 2013-03-06 03:40:10.000000000 +0100 ++++ lightdm-1.5.1/data/users.conf 2013-03-12 22:54:29.398854700 +0100 +@@ -8,7 +8,7 @@ + # hidden-users = Users that are not shown to the user + # hidden-shells = Shells that indicate a user cannot login + # +-[UserAccounts] +-minimum-uid=500 ++[UserList] ++minimum-uid=1000 + hidden-users=nobody nobody4 noaccess +-hidden-shells=/bin/false /usr/sbin/nologin ++hidden-shells=/bin/false /sbin/nologin Copied: lightdm/repos/community-staging-i686/lightdm-lock-screen-before-switch.patch (from rev 90426, lightdm/trunk/lightdm-lock-screen-before-switch.patch) =================================================================== --- community-staging-i686/lightdm-lock-screen-before-switch.patch (rev 0) +++ community-staging-i686/lightdm-lock-screen-before-switch.patch 2013-05-12 10:40:13 UTC (rev 90427) @@ -0,0 +1,55 @@ +# HG changeset patch +# Parent b329fa1badaa454239690c3feb93d53324134915 +try to lock the screen before switching users + +diff --git a/utils/gdmflexiserver b/utils/gdmflexiserver +--- a/utils/gdmflexiserver ++++ b/utils/gdmflexiserver +@@ -9,9 +9,47 @@ + # + # See http://www.gnu.org/copyleft/gpl.html for the full text of the license. + ++PATH=/usr/local/bin:/bin:/usr/bin ++export PATH ++ + if [ -z "$XDG_SEAT_PATH" ]; then + # something went wrong + exit 1 + fi + ++find_command () { ++ cmd="$1" ++ oIFS="${IFS}"; IFS=: ++ set -- ${PATH} ++ IFS="${oIFS}" ++ ++ for part; do ++ [ -x "${part}/${cmd}" ] && return 0 ++ done ++ return 1 ++} ++ ++lock_screen () { ++ for lock_cmd in \ ++ "xscreensaver-command -lock" \ ++ "gnome-screensaver-command --lock" \ ++ "dbus-send --session --dest=org.freedesktop.ScreenSaver --type=method_call /ScreenSaver org.freedesktop.ScreenSaver.Lock" ++ do ++ ${lock_cmd} >/dev/null 2>&1 && return ++ done ++ ++ for lock_cmd in \ ++ "slock" \ ++ "xlock -mode blank" ++ do ++ set -- ${lock_cmd} ++ if find_command "$1"; then ++ ${lock_cmd} >/dev/null 2>&1 & ++ return ++ fi ++ done ++} ++ ++lock_screen ++ + dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.DisplayManager $XDG_SEAT_PATH org.freedesktop.DisplayManager.Seat.SwitchToGreeter Copied: lightdm/repos/community-staging-i686/lightdm.install (from rev 90426, lightdm/trunk/lightdm.install) =================================================================== --- community-staging-i686/lightdm.install (rev 0) +++ community-staging-i686/lightdm.install 2013-05-12 10:40:13 UTC (rev 90427) @@ -0,0 +1,18 @@ +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 /sbin/nologin lightdm + passwd -l lightdm > /dev/null + chown -R lightdm:lightdm /var/lib/lightdm > /dev/null + systemd-tmpfiles --create 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: Copied: lightdm/repos/community-staging-i686/lightdm.pam (from rev 90426, lightdm/trunk/lightdm.pam) =================================================================== --- community-staging-i686/lightdm.pam (rev 0) +++ community-staging-i686/lightdm.pam 2013-05-12 10:40:13 UTC (rev 90427) @@ -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 Copied: lightdm/repos/community-staging-i686/lightdm.rules (from rev 90426, lightdm/trunk/lightdm.rules) =================================================================== --- community-staging-i686/lightdm.rules (rev 0) +++ community-staging-i686/lightdm.rules 2013-05-12 10:40:13 UTC (rev 90427) @@ -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; + } + } +}); Copied: lightdm/repos/community-staging-i686/lightdm.service (from rev 90426, lightdm/trunk/lightdm.service) =================================================================== --- community-staging-i686/lightdm.service (rev 0) +++ community-staging-i686/lightdm.service 2013-05-12 10:40:13 UTC (rev 90427) @@ -0,0 +1,14 @@ +[Unit] +Description=Light Display Manager +Documentation=man:lightdm(1) +After=systemd-user-sessions.service + +[Service] +ExecStart=/usr/bin/lightdm +StandardOutput=syslog +Restart=always +IgnoreSIGPIPE=no +BusName=org.freedesktop.DisplayManager + +[Install] +Alias=display-manager.service Copied: lightdm/repos/community-staging-i686/lightdm.tmpfiles (from rev 90426, lightdm/trunk/lightdm.tmpfiles) =================================================================== --- community-staging-i686/lightdm.tmpfiles (rev 0) +++ community-staging-i686/lightdm.tmpfiles 2013-05-12 10:40:13 UTC (rev 90427) @@ -0,0 +1 @@ +d /run/lightdm 0711 lightdm lightdm Copied: lightdm/repos/community-staging-i686/xsession (from rev 90426, lightdm/trunk/xsession) =================================================================== --- community-staging-i686/xsession (rev 0) +++ community-staging-i686/xsession 2013-05-12 10:40:13 UTC (rev 90427) @@ -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 $@ Copied: lightdm/repos/community-staging-x86_64/PKGBUILD (from rev 90426, lightdm/trunk/PKGBUILD) =================================================================== --- community-staging-x86_64/PKGBUILD (rev 0) +++ community-staging-x86_64/PKGBUILD 2013-05-12 10:40:13 UTC (rev 90427) @@ -0,0 +1,118 @@ +# $Id$ +# Maintainer: Maxime Gauduin <aluc...@gmail.com> +# Contributor: Morfeo <morfe...@hotmail.it> + +pkgbase=lightdm +pkgname=('lightdm' 'liblightdm-qt4' 'liblightdm-qt5') +pkgver=1.6.0 +pkgrel=2 +epoch=1 +pkgdesc="A lightweight display manager" +arch=('i686' 'x86_64') +url="https://launchpad.net/lightdm" +license=('GPL3' 'LGPL3') +groups=('lightdm') +makedepends=('gobject-introspection' 'gtk-doc' 'intltool' 'itstool' 'libxklavier' 'qt4' 'qt5-base' 'yelp-tools') +options=('!emptydirs' '!libtool') +source=("https://launchpad.net/lightdm/1.6/${pkgver}/+download/${pkgbase}-${pkgver}.tar.xz" + 'lightdm.service' + 'lightdm.tmpfiles' + 'lightdm.pam' + 'lightdm-autologin.pam' + 'lightdm.rules' + 'lightdm-default-config.patch' + 'lightdm-lock-screen-before-switch.patch' + 'xsession') +sha256sums=('882ece568df0d81c0b6e399ff00b3f89eee6d50efc09ad1c52c61d8753efb419' + '3daf2f7e1b751415eab9b2aa92d78d8e00c3447a77fa31f7e75863136286a86f' + 'b29521fbd7a48a8f60b93ecca3b30c30bcb71560de8033c8d39b25c22c6f696f' + 'e8c4c5fd3b801a390d201166fd1fb9730e78a5c62928768103b870b6bd980ea0' + '33e3c3d6e16c8d30756754ea3f31f5457c5be0343686aad287692be34958984a' + 'a89566307e1c81c24f037d854cbd472d2f94f8a4b759877a01563a332319f7d6' + '6d5a754f41e9c7e52c51d2ff018b926ddaabb807e9a0b88c4a7bde1acffa3b1c' + '4793eaee5915f5c519f569a4cd9158822d4c57c8b6e405895d2eddf82fa00822' + '7fb85a1b54406032a922e8fd6f45d869fcfe5681df630e74e8e50c040b786ee4') + +prepare() { + cd "${srcdir}"/${pkgbase}-${pkgver} + + patch -Np1 -i ../lightdm-default-config.patch + patch -Np1 -i ../lightdm-lock-screen-before-switch.patch + sed -i 's/MOC5 --qt=qt5/MOC5/' configure +} + +build() { + cd "${srcdir}"/${pkgbase}-${pkgver} + + ./configure --prefix=/usr --sbindir=/usr/bin --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib/${pkgbase} --with-greeter-user=lightdm --with-greeter-session=lightdm-gtk-greeter --disable-{static,tests} + make +} + +package_lightdm() { +depends=('libxklavier' 'systemd') +optdepends=('xorg-server-xephyr: LightDM test mode' + 'accountsservice: limit visible accounts') +backup=('etc/apparmor.d/lightdm-guest-session' + 'etc/lightdm/keys.conf' + 'etc/lightdm/lightdm.conf' + 'etc/lightdm/users.conf') +install=${pkgbase}.install + + cd "${srcdir}"/${pkgbase}-${pkgver} + + make DESTDIR="${pkgdir}" install + make DESTDIR="${pkgdir}" -C liblightdm-qt uninstall + rm -rf "${pkgdir}"/etc/init + +# Persistent home + install -dm 770 "${pkgdir}"/var/lib/lightdm + chmod +t "${pkgdir}"/var/lib/lightdm + echo 'GDK_CORE_DEVICE_EVENTS=true' > "${pkgdir}"/var/lib/lightdm/.pam_environment + chmod 644 "${pkgdir}"/var/lib/lightdm/.pam_environment + +# Session wrapper + install -m 755 ../xsession "${pkgdir}"/etc/lightdm/xsession + +# 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 "${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() { +pkgdesc=('LightDM Qt client library') +depends=('lightdm' 'qt4') + + cd "${srcdir}"/${pkgbase}-${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() { +pkgdesc=('LightDM Qt client library') +depends=('lightdm' 'qt5-base') + + cd "${srcdir}"/${pkgbase}-${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: Copied: lightdm/repos/community-staging-x86_64/lightdm-autologin.pam (from rev 90426, lightdm/trunk/lightdm-autologin.pam) =================================================================== --- community-staging-x86_64/lightdm-autologin.pam (rev 0) +++ community-staging-x86_64/lightdm-autologin.pam 2013-05-12 10:40:13 UTC (rev 90427) @@ -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 Copied: lightdm/repos/community-staging-x86_64/lightdm-default-config.patch (from rev 90426, lightdm/trunk/lightdm-default-config.patch) =================================================================== --- community-staging-x86_64/lightdm-default-config.patch (rev 0) +++ community-staging-x86_64/lightdm-default-config.patch 2013-05-12 10:40:13 UTC (rev 90427) @@ -0,0 +1,43 @@ +diff -rupN lightdm-1.5.1.orig/data/lightdm.conf lightdm-1.5.1/data/lightdm.conf +--- lightdm-1.5.1.orig/data/lightdm.conf 2013-03-06 03:40:10.000000000 +0100 ++++ lightdm-1.5.1/data/lightdm.conf 2013-03-12 22:59:22.494743200 +0100 +@@ -24,7 +24,7 @@ + #user-authority-in-system-dir=false + #guest-account-script=guest-account + #log-directory=/var/log/lightdm +-#run-directory=/var/run/lightdm ++run-directory=/run/lightdm + #cache-directory=/var/cache/lightdm + #xsessions-directory=/usr/share/xsessions + #remote-sessions-directory=/usr/share/lightdm/remote-sessions +@@ -77,7 +77,7 @@ + #user-session=default + #allow-guest=true + #guest-session=UNIMPLEMENTED +-#session-wrapper=lightdm-session ++session-wrapper=/etc/lightdm/xsession + #display-setup-script= + #greeter-setup-script= + #session-setup-script= +@@ -86,6 +86,7 @@ + #autologin-user= + #autologin-user-timeout=0 + #autologin-session=UNIMPLEMENTED ++pam-service=lightdm-autologin + #exit-on-failure=false + + # +diff -rupN lightdm-1.5.1.orig/data/users.conf lightdm-1.5.1/data/users.conf +--- lightdm-1.5.1.orig/data/users.conf 2013-03-06 03:40:10.000000000 +0100 ++++ lightdm-1.5.1/data/users.conf 2013-03-12 22:54:29.398854700 +0100 +@@ -8,7 +8,7 @@ + # hidden-users = Users that are not shown to the user + # hidden-shells = Shells that indicate a user cannot login + # +-[UserAccounts] +-minimum-uid=500 ++[UserList] ++minimum-uid=1000 + hidden-users=nobody nobody4 noaccess +-hidden-shells=/bin/false /usr/sbin/nologin ++hidden-shells=/bin/false /sbin/nologin Copied: lightdm/repos/community-staging-x86_64/lightdm-lock-screen-before-switch.patch (from rev 90426, lightdm/trunk/lightdm-lock-screen-before-switch.patch) =================================================================== --- community-staging-x86_64/lightdm-lock-screen-before-switch.patch (rev 0) +++ community-staging-x86_64/lightdm-lock-screen-before-switch.patch 2013-05-12 10:40:13 UTC (rev 90427) @@ -0,0 +1,55 @@ +# HG changeset patch +# Parent b329fa1badaa454239690c3feb93d53324134915 +try to lock the screen before switching users + +diff --git a/utils/gdmflexiserver b/utils/gdmflexiserver +--- a/utils/gdmflexiserver ++++ b/utils/gdmflexiserver +@@ -9,9 +9,47 @@ + # + # See http://www.gnu.org/copyleft/gpl.html for the full text of the license. + ++PATH=/usr/local/bin:/bin:/usr/bin ++export PATH ++ + if [ -z "$XDG_SEAT_PATH" ]; then + # something went wrong + exit 1 + fi + ++find_command () { ++ cmd="$1" ++ oIFS="${IFS}"; IFS=: ++ set -- ${PATH} ++ IFS="${oIFS}" ++ ++ for part; do ++ [ -x "${part}/${cmd}" ] && return 0 ++ done ++ return 1 ++} ++ ++lock_screen () { ++ for lock_cmd in \ ++ "xscreensaver-command -lock" \ ++ "gnome-screensaver-command --lock" \ ++ "dbus-send --session --dest=org.freedesktop.ScreenSaver --type=method_call /ScreenSaver org.freedesktop.ScreenSaver.Lock" ++ do ++ ${lock_cmd} >/dev/null 2>&1 && return ++ done ++ ++ for lock_cmd in \ ++ "slock" \ ++ "xlock -mode blank" ++ do ++ set -- ${lock_cmd} ++ if find_command "$1"; then ++ ${lock_cmd} >/dev/null 2>&1 & ++ return ++ fi ++ done ++} ++ ++lock_screen ++ + dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.DisplayManager $XDG_SEAT_PATH org.freedesktop.DisplayManager.Seat.SwitchToGreeter Copied: lightdm/repos/community-staging-x86_64/lightdm.install (from rev 90426, lightdm/trunk/lightdm.install) =================================================================== --- community-staging-x86_64/lightdm.install (rev 0) +++ community-staging-x86_64/lightdm.install 2013-05-12 10:40:13 UTC (rev 90427) @@ -0,0 +1,18 @@ +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 /sbin/nologin lightdm + passwd -l lightdm > /dev/null + chown -R lightdm:lightdm /var/lib/lightdm > /dev/null + systemd-tmpfiles --create 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: Copied: lightdm/repos/community-staging-x86_64/lightdm.pam (from rev 90426, lightdm/trunk/lightdm.pam) =================================================================== --- community-staging-x86_64/lightdm.pam (rev 0) +++ community-staging-x86_64/lightdm.pam 2013-05-12 10:40:13 UTC (rev 90427) @@ -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 Copied: lightdm/repos/community-staging-x86_64/lightdm.rules (from rev 90426, lightdm/trunk/lightdm.rules) =================================================================== --- community-staging-x86_64/lightdm.rules (rev 0) +++ community-staging-x86_64/lightdm.rules 2013-05-12 10:40:13 UTC (rev 90427) @@ -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; + } + } +}); Copied: lightdm/repos/community-staging-x86_64/lightdm.service (from rev 90426, lightdm/trunk/lightdm.service) =================================================================== --- community-staging-x86_64/lightdm.service (rev 0) +++ community-staging-x86_64/lightdm.service 2013-05-12 10:40:13 UTC (rev 90427) @@ -0,0 +1,14 @@ +[Unit] +Description=Light Display Manager +Documentation=man:lightdm(1) +After=systemd-user-sessions.service + +[Service] +ExecStart=/usr/bin/lightdm +StandardOutput=syslog +Restart=always +IgnoreSIGPIPE=no +BusName=org.freedesktop.DisplayManager + +[Install] +Alias=display-manager.service Copied: lightdm/repos/community-staging-x86_64/lightdm.tmpfiles (from rev 90426, lightdm/trunk/lightdm.tmpfiles) =================================================================== --- community-staging-x86_64/lightdm.tmpfiles (rev 0) +++ community-staging-x86_64/lightdm.tmpfiles 2013-05-12 10:40:13 UTC (rev 90427) @@ -0,0 +1 @@ +d /run/lightdm 0711 lightdm lightdm Copied: lightdm/repos/community-staging-x86_64/xsession (from rev 90426, lightdm/trunk/xsession) =================================================================== --- community-staging-x86_64/xsession (rev 0) +++ community-staging-x86_64/xsession 2013-05-12 10:40:13 UTC (rev 90427) @@ -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 $@