aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Woods <woodsb02@FreeBSD.org>2016-12-26 06:53:37 +0000
committerBen Woods <woodsb02@FreeBSD.org>2016-12-26 06:53:37 +0000
commit81a45042c342bf0f62a4c96fb97d90ec979d9f23 (patch)
tree590486ac88d7babc478cab49e7a99301356865d8
parentb4e182a0c7290e601831b79012cf220df2fe7f15 (diff)
downloadports-81a45042c342bf0f62a4c96fb97d90ec979d9f23.tar.gz
ports-81a45042c342bf0f62a4c96fb97d90ec979d9f23.zip
Add x11/lightdm and x11/lightdm-gtk-greeter.
Lightdm is a display manager that: * Is cross-desktop - supports different desktops * Supports different display technologies * Is lightweight - low memory usage and fast performance * Has a comprehensive test suite WWW: https://www.freedesktop.org/wiki/Software/LightDM/ lightdm-gtk-greeter is the reference GTK+ greeter for LightDM. WWW: https://launchpad.net/lightdm-gtk-greeter Approved by: adamw (mentor, implicit)
Notes
Notes: svn path=/head/; revision=429481
-rw-r--r--GIDs2
-rw-r--r--UIDs2
-rw-r--r--x11/Makefile2
-rw-r--r--x11/lightdm-gtk-greeter/Makefile23
-rw-r--r--x11/lightdm-gtk-greeter/distinfo3
-rw-r--r--x11/lightdm-gtk-greeter/pkg-descr3
-rw-r--r--x11/lightdm-gtk-greeter/pkg-plist98
-rw-r--r--x11/lightdm/Makefile65
-rw-r--r--x11/lightdm/distinfo3
-rw-r--r--x11/lightdm/files/Xsession.in71
-rw-r--r--x11/lightdm/files/lightdm.in29
-rw-r--r--x11/lightdm/files/patch-data_lightdm.conf20
-rw-r--r--x11/lightdm/files/patch-data_pam_lightdm26
-rw-r--r--x11/lightdm/files/patch-data_pam_lightdm-autologin27
-rw-r--r--x11/lightdm/files/patch-data_pam_lightdm-greeter18
-rw-r--r--x11/lightdm/files/patch-data_users.conf10
-rw-r--r--x11/lightdm/files/patch-liblightdm-gobject_language.c38
-rw-r--r--x11/lightdm/files/patch-src_process.c11
-rw-r--r--x11/lightdm/files/patch-src_session-child.c64
-rw-r--r--x11/lightdm/files/patch-src_x-server.c11
-rw-r--r--x11/lightdm/files/patch-tests_src_libsystem.c10
-rw-r--r--x11/lightdm/pkg-descr7
-rw-r--r--x11/lightdm/pkg-message2
-rw-r--r--x11/lightdm/pkg-plist164
24 files changed, 707 insertions, 2 deletions
diff --git a/GIDs b/GIDs
index 8d3e45dc7939..23406ac5a7ab 100644
--- a/GIDs
+++ b/GIDs
@@ -105,7 +105,7 @@ _ypldap:*:160:
solr:*:161:
octoprint:*:162:
_iked:*:163:
-# free: 164
+lightdm:*:164:
# free: 165
# free: 166
# free: 167
diff --git a/UIDs b/UIDs
index 1e0512a08049..ae20cd43bf53 100644
--- a/UIDs
+++ b/UIDs
@@ -110,7 +110,7 @@ _ypldap:*:160:160::0:0:YP Ldap unprivileged user:/var/empty:/usr/sbin/nologin
solr:*:161:161::0:0:Apache Solr System:/var/db/solr:/usr/sbin/nologin
octoprint:*:162:162::0:0:OctoPrint Daemon:/usr/local/octoprint:/usr/sbin/nologin
_iked:*:163:163::0:0:IKEv2 Daemon:/var/empty:/usr/sbin/nologin
-# free: 164
+lightdm:*:164:164::0:0:Light Display Manager:/var/lib/lightdm-data:/usr/sbin/nologin
# free: 165
# free: 166
# free: 167
diff --git a/x11/Makefile b/x11/Makefile
index 33b930b26f9a..a35708a8700b 100644
--- a/x11/Makefile
+++ b/x11/Makefile
@@ -192,6 +192,8 @@
SUBDIR += libxkbui
SUBDIR += libxklavier
SUBDIR += libxshmfence
+ SUBDIR += lightdm
+ SUBDIR += lightdm-gtk-greeter
SUBDIR += linux-c6-pixman
SUBDIR += linux-c6-xorg-libs
SUBDIR += linux-c7-pixman
diff --git a/x11/lightdm-gtk-greeter/Makefile b/x11/lightdm-gtk-greeter/Makefile
new file mode 100644
index 000000000000..20fa0b9db4ec
--- /dev/null
+++ b/x11/lightdm-gtk-greeter/Makefile
@@ -0,0 +1,23 @@
+# Created by: Ben Woods <woodsb02@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= lightdm-gtk-greeter
+PORTVERSION= 2.0.2
+CATEGORIES= x11
+MASTER_SITES= https://launchpad.net/${PORTNAME}/${PORTVERSION:R}/${PORTVERSION}/+download/
+
+MAINTAINER= woodsb02@FreeBSD.org
+COMMENT= GTK+ greeter for LightDM
+
+LICENSE= GPLv3
+LICENSE_FILE= ${WRKSRC}/COPYING
+
+LIB_DEPENDS= liblightdm-gobject-1.so:x11/lightdm
+
+USES= gettext gmake localbase pkgconfig xfce
+GNU_CONFIGURE= yes
+USE_GNOME= cairo gdkpixbuf2 gtk30 intltool
+USE_XFCE= libexo
+USE_XORG= x11
+
+.include <bsd.port.mk>
diff --git a/x11/lightdm-gtk-greeter/distinfo b/x11/lightdm-gtk-greeter/distinfo
new file mode 100644
index 000000000000..34c2dd65e624
--- /dev/null
+++ b/x11/lightdm-gtk-greeter/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1481640304
+SHA256 (lightdm-gtk-greeter-2.0.2.tar.gz) = 8ee6d93d1d6837b3590f64ac4d5bac5db888a8861dff1cb2ef10f7816ad36690
+SIZE (lightdm-gtk-greeter-2.0.2.tar.gz) = 487825
diff --git a/x11/lightdm-gtk-greeter/pkg-descr b/x11/lightdm-gtk-greeter/pkg-descr
new file mode 100644
index 000000000000..f9d539dede17
--- /dev/null
+++ b/x11/lightdm-gtk-greeter/pkg-descr
@@ -0,0 +1,3 @@
+Reference GTK+ greeter for LightDM.
+
+WWW: https://launchpad.net/lightdm-gtk-greeter
diff --git a/x11/lightdm-gtk-greeter/pkg-plist b/x11/lightdm-gtk-greeter/pkg-plist
new file mode 100644
index 000000000000..a56ba79b03c8
--- /dev/null
+++ b/x11/lightdm-gtk-greeter/pkg-plist
@@ -0,0 +1,98 @@
+etc/lightdm/lightdm-gtk-greeter.conf
+sbin/lightdm-gtk-greeter
+%%PORTDOCS%%%%DOCSDIR%%/sample-lightdm-gtk-greeter.css
+share/icons/hicolor/scalable/places/budgie-desktop_badge-symbolic.svg
+share/icons/hicolor/scalable/places/gnome-classic_badge-symbolic.svg
+share/icons/hicolor/scalable/places/gnome-fallback-compiz_badge-symbolic.svg
+share/icons/hicolor/scalable/places/gnome-fallback_badge-symbolic.svg
+share/icons/hicolor/scalable/places/gnome-flashback-compiz_badge-symbolic.svg
+share/icons/hicolor/scalable/places/gnome-flashback_badge-symbolic.svg
+share/icons/hicolor/scalable/places/gnome-shell_badge-symbolic.svg
+share/icons/hicolor/scalable/places/gnome_badge-symbolic.svg
+share/icons/hicolor/scalable/places/kde-plasma_badge-symbolic.svg
+share/icons/hicolor/scalable/places/kde_badge-symbolic.svg
+share/icons/hicolor/scalable/places/lubuntu_badge-symbolic.svg
+share/icons/hicolor/scalable/places/lxde_badge-symbolic.svg
+share/icons/hicolor/scalable/places/mate_badge-symbolic.svg
+share/icons/hicolor/scalable/places/pantheon_badge-symbolic.svg
+share/icons/hicolor/scalable/places/ubuntu-2d_badge-symbolic.svg
+share/icons/hicolor/scalable/places/ubuntu_badge-symbolic.svg
+share/icons/hicolor/scalable/places/ubuntustudio_badge-symbolic.svg
+share/icons/hicolor/scalable/places/wmaker-common_badge-symbolic.svg
+share/icons/hicolor/scalable/places/xfce_badge-symbolic.svg
+share/icons/hicolor/scalable/places/xterm_badge-symbolic.svg
+share/icons/hicolor/scalable/places/xubuntu_badge-symbolic.svg
+share/locale/ar/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/ast/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/be/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/bg/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/bn/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/bo/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/br/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/bs/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/ca/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/ca@valencia/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/cs/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/da/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/de/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/el/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/en_AU/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/en_CA/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/en_GB/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/eo/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/es/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/et/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/eu/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/fi/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/fr/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/fy/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/gd/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/gl/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/he/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/hi/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/hr/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/hu/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/ia/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/id/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/is/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/it/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/ja/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/kk/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/km/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/ko/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/ku/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/lb/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/lt/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/lv/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/mhr/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/ml/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/ms/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/nb/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/nl/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/nn/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/oc/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/pl/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/pt/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/pt_BR/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/ro/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/ru/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/sd/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/si/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/sk/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/sl/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/sq/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/sr/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/sv/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/ta/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/te/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/th/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/tr/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/ug/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/uk/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/uz/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/vi/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/wae/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/zh_CN/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/zh_HK/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/locale/zh_TW/LC_MESSAGES/lightdm-gtk-greeter.mo
+share/xgreeters/lightdm-gtk-greeter.desktop
diff --git a/x11/lightdm/Makefile b/x11/lightdm/Makefile
new file mode 100644
index 000000000000..ffb0a616ef5c
--- /dev/null
+++ b/x11/lightdm/Makefile
@@ -0,0 +1,65 @@
+# Created by: Ben Woods <woodsb02@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= lightdm
+PORTVERSION= 1.20.0
+CATEGORIES= x11
+MASTER_SITES= https://launchpad.net/${PORTNAME}/${PORTVERSION:R}/${PORTVERSION}/+download/
+
+MAINTAINER= woodsb02@FreeBSD.org
+COMMENT= Lightweight Display Manager
+
+# library/bindings are LGPLv2 or LGPLv3, the rest GPLv3+
+LICENSE= LGPL20 LGPL3 GPLv3
+LICENSE_COMB= multi
+LICENSE_FILE_LGPL20= ${WRKSRC}/COPYING.LGPL2
+LICENSE_FILE_LGPL3= ${WRKSRC}/COPYING.LGPL3
+LICENSE_FILE_GPLv3= ${WRKSRC}/COPYING.GPL3
+
+BUILD_DEPENDS= itstool:textproc/itstool
+LIB_DEPENDS= libaccountsservice.so:sysutils/accountsservice \
+ libck-connector.so:sysutils/consolekit \
+ libgcrypt.so:security/libgcrypt \
+ libxklavier.so:x11/libxklavier
+
+USES= localbase gettext gmake libtool pathfix pkgconfig tar:xz
+GNU_CONFIGURE= yes
+USE_GNOME= glib20 intlhack
+USE_XORG= x11 xcb xdmcp
+CONFIGURE_ARGS= --disable-tests # PAM errors
+INSTALL_TARGET= install-strip
+USE_RC_SUBR= lightdm
+SUB_FILES= Xsession
+
+USERS= lightdm
+GROUPS= lightdm
+
+OPTIONS_DEFINE= DOCS VALA
+OPTIONS_DEFAULT=VALA
+OPTIONS_SUB= yes
+
+DOCS_BUILD_DEPENDS= gtkdoc-check:textproc/gtk-doc
+DOCS_CONFIGURE_ENABLE= gtk-doc
+
+VALA_BUILD_DEPENDS= vapigen:lang/vala
+VALA_CONFIGURE_ENABLE= vala
+VALA_USE= gnome=introspection:build
+
+post-patch:
+ @${REINPLACE_CMD} -e 's,%%PREFIX%%,${PREFIX},' \
+ ${WRKSRC}/data/lightdm.conf
+
+post-install:
+ ${RM} -r ${STAGEDIR}${PREFIX}/etc/init
+ ${INSTALL_SCRIPT} ${WRKDIR}/Xsession ${STAGEDIR}${PREFIX}/etc/lightdm/
+ ${MV} ${STAGEDIR}${PREFIX}/etc/lightdm/keys.conf ${STAGEDIR}${PREFIX}/etc/lightdm/keys.conf.sample
+ ${MV} ${STAGEDIR}${PREFIX}/etc/lightdm/lightdm.conf ${STAGEDIR}${PREFIX}/etc/lightdm/lightdm.conf.sample
+ ${MV} ${STAGEDIR}${PREFIX}/etc/lightdm/users.conf ${STAGEDIR}${PREFIX}/etc/lightdm/users.conf.sample
+ ${MKDIR} ${STAGEDIR}/var/cache/lightdm \
+ ${STAGEDIR}/var/log/lightdm \
+ ${STAGEDIR}/var/run/lightdm
+ ${MKDIR} ${STAGEDIR}${PREFIX}/share/xgreeters
+ @(cd ${STAGEDIR}${PREFIX}/share/xgreeters && \
+ ${LN} -sf lightdm-gtk-greeter.desktop default.desktop)
+
+.include <bsd.port.mk>
diff --git a/x11/lightdm/distinfo b/x11/lightdm/distinfo
new file mode 100644
index 000000000000..99f519c14eec
--- /dev/null
+++ b/x11/lightdm/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1482730054
+SHA256 (lightdm-1.20.0.tar.xz) = f03b7804a4902d189849a060292e4987d1e4f8272a1edb3e681e6f3cdfaa5ba4
+SIZE (lightdm-1.20.0.tar.xz) = 506488
diff --git a/x11/lightdm/files/Xsession.in b/x11/lightdm/files/Xsession.in
new file mode 100644
index 000000000000..76de7d9060a9
--- /dev/null
+++ b/x11/lightdm/files/Xsession.in
@@ -0,0 +1,71 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# LightDM wrapper to run around X sessions.
+
+echo "Running X session wrapper"
+
+# Load profile
+for file in "%%LOCALBASE%%/etc/profile" "$HOME/.profile" "%%LOCALBASE%%/etc/xprofile" "$HOME/.xprofile"; do
+ if [ -f "$file" ]; then
+ echo "Loading profile from $file";
+ . "$file"
+ fi
+done
+
+# Load resources
+for file in "%%LOCALBASE%%/etc/X11/Xresources" "$HOME/.Xresources"; do
+ if [ -f "$file" ]; then
+ echo "Loading resource: $file"
+ xrdb -merge "$file"
+ fi
+done
+
+# Load keymaps
+for file in "%%LOCALBASE%%/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 "%%LOCALBASE%%/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="%%LOCALBASE%%/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
+xsessiondir="%%LOCALBASE%%/share/xsessions"
+if [ -d "$xsessiondir" ]; then
+ for file in `ls $xsessiondir`; do
+ script="$xsessiondir/$file"
+ echo "Loading X session script $script"
+ if [ -r "$script" -a -f "$script" ] && expr "$file" : '^[[:alnum:]_-]\+$' > /dev/null; then
+ . "$script"
+ fi
+ done
+fi
+
+echo "X session wrapper complete, running session $@"
+
+exec $@
diff --git a/x11/lightdm/files/lightdm.in b/x11/lightdm/files/lightdm.in
new file mode 100644
index 000000000000..227abd106976
--- /dev/null
+++ b/x11/lightdm/files/lightdm.in
@@ -0,0 +1,29 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# PROVIDE: lightdm
+# REQUIRE: LOGIN cleanvar moused syscons dbus
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf to enable the LightDM:
+#
+# lightdm_enable="YES"
+#
+
+. /etc/rc.subr
+
+export PATH=/bin:/sbin:/usr/bin:/usr/sbin:%%LOCALBASE%%/bin:%%LOCALBASE%%/sbin
+
+name="lightdm"
+rcvar=lightdm_enable
+
+load_rc_config ${name}
+
+: ${lightdm_enable:="NO"}
+
+command="%%PREFIX%%/sbin/${name}"
+pidfile="/var/run/${name}.pid"
+command_args="--pid-file=${pidfile} > /dev/null 2>&1 &"
+
+run_rc_command "$1"
diff --git a/x11/lightdm/files/patch-data_lightdm.conf b/x11/lightdm/files/patch-data_lightdm.conf
new file mode 100644
index 000000000000..c2f0c35050a6
--- /dev/null
+++ b/x11/lightdm/files/patch-data_lightdm.conf
@@ -0,0 +1,20 @@
+--- data/lightdm.conf.orig 2016-12-26 04:21:00 UTC
++++ data/lightdm.conf
+@@ -22,7 +22,7 @@
+ #start-default-seat=true
+ #greeter-user=lightdm
+ #minimum-display-number=0
+-#minimum-vt=7
++minimum-vt=9
+ #lock-memory=true
+ #user-authority-in-system-dir=false
+ #guest-account-script=guest-account
+@@ -114,7 +114,7 @@
+ #allow-user-switching=true
+ #allow-guest=true
+ #guest-session=
+-#session-wrapper=lightdm-session
++session-wrapper=%%PREFIX%%/etc/lightdm/Xsession
+ #greeter-wrapper=
+ #guest-wrapper=
+ #display-setup-script=
diff --git a/x11/lightdm/files/patch-data_pam_lightdm b/x11/lightdm/files/patch-data_pam_lightdm
new file mode 100644
index 000000000000..7a7b46b1d6fb
--- /dev/null
+++ b/x11/lightdm/files/patch-data_pam_lightdm
@@ -0,0 +1,26 @@
+--- data/pam/lightdm.orig 2015-08-09 23:30:00 UTC
++++ data/pam/lightdm
+@@ -1,13 +1,13 @@
+ #%PAM-1.0
+
+ # Block login if they are globally disabled
+-auth required pam_nologin.so
++account required pam_nologin.so
+
+ # Load environment from /etc/environment and ~/.pam_environment
+-auth required pam_env.so
++#auth required pam_env.so
+
+ # Use /etc/passwd and /etc/shadow for passwords
+-auth required pam_unix.so
++auth required pam_unix.so no_warn try_first_pass
+
+ # Check account is active, change password if required
+ account required pam_unix.so
+@@ -16,5 +16,4 @@ account required pam_unix.so
+ password required pam_unix.so
+
+ # Setup session
+-session required pam_unix.so
+-session optional pam_systemd.so
++session required pam_permit.so
diff --git a/x11/lightdm/files/patch-data_pam_lightdm-autologin b/x11/lightdm/files/patch-data_pam_lightdm-autologin
new file mode 100644
index 000000000000..e2dba909866b
--- /dev/null
+++ b/x11/lightdm/files/patch-data_pam_lightdm-autologin
@@ -0,0 +1,27 @@
+--- data/pam/lightdm-autologin.orig 2015-08-09 23:30:00 UTC
++++ data/pam/lightdm-autologin
+@@ -1,20 +1,19 @@
+ #%PAM-1.0
+
+ # Block login if they are globally disabled
+-auth required pam_nologin.so
++account required pam_nologin.so
+
+ # Load environment from /etc/environment and ~/.pam_environment
+-auth required pam_env.so
++#auth required pam_env.so
+
+ # Allow access without authentication
+ auth required pam_permit.so
+
+ # Stop autologin if account requires action
+-account required pam_unix.so
++account required pam_unix.so no_warn try_first_pass
+
+ # Can't change password
+ password required pam_deny.so
+
+ # Setup session
+-session required pam_unix.so
+-session optional pam_systemd.so
++session required pam_permit.so
diff --git a/x11/lightdm/files/patch-data_pam_lightdm-greeter b/x11/lightdm/files/patch-data_pam_lightdm-greeter
new file mode 100644
index 000000000000..77496c0095ae
--- /dev/null
+++ b/x11/lightdm/files/patch-data_pam_lightdm-greeter
@@ -0,0 +1,18 @@
+--- data/pam/lightdm-greeter.orig 2015-08-09 23:30:00 UTC
++++ data/pam/lightdm-greeter
+@@ -1,7 +1,7 @@
+ #%PAM-1.0
+
+ # Load environment from /etc/environment and ~/.pam_environment
+-auth required pam_env.so
++#auth required pam_env.so
+
+ # Always let the greeter start without authentication
+ auth required pam_permit.so
+@@ -13,5 +13,4 @@ account required pam_permit.so
+ password required pam_deny.so
+
+ # Setup session
+-session required pam_unix.so
+-session optional pam_systemd.so
++session required pam_permit.so
diff --git a/x11/lightdm/files/patch-data_users.conf b/x11/lightdm/files/patch-data_users.conf
new file mode 100644
index 000000000000..5366e684f798
--- /dev/null
+++ b/x11/lightdm/files/patch-data_users.conf
@@ -0,0 +1,10 @@
+--- data/users.conf.orig 2015-08-09 23:30:00 UTC
++++ data/users.conf
+@@ -9,6 +9,6 @@
+ # hidden-shells = Shells that indicate a user cannot login
+ #
+ [UserList]
+-minimum-uid=500
++minimum-uid=1001
+ hidden-users=nobody nobody4 noaccess
+ hidden-shells=/bin/false /usr/sbin/nologin
diff --git a/x11/lightdm/files/patch-liblightdm-gobject_language.c b/x11/lightdm/files/patch-liblightdm-gobject_language.c
new file mode 100644
index 000000000000..b64d8642594d
--- /dev/null
+++ b/x11/lightdm/files/patch-liblightdm-gobject_language.c
@@ -0,0 +1,38 @@
+https://bugs.launchpad.net/lightdm/+bug/790186
+
+--- liblightdm-gobject/language.c.orig 2016-12-09 01:04:48 UTC
++++ liblightdm-gobject/language.c
+@@ -248,10 +248,16 @@ lightdm_language_get_name (LightDMLangua
+ if (locale)
+ {
+ gchar *current = setlocale (LC_ALL, NULL);
++#ifdef LC_IDENTIFICATION
+ setlocale (LC_IDENTIFICATION, locale);
++#endif
+ setlocale (LC_MESSAGES, "");
+
++#ifdef _NL_IDENTIFICATION_LANGUAGE
+ gchar *language_en = nl_langinfo (_NL_IDENTIFICATION_LANGUAGE);
++#else
++ gchar *language_en = "Unknown";
++#endif
+ if (language_en && strlen (language_en) > 0)
+ priv->name = g_strdup (dgettext ("iso_639_3", language_en));
+
+@@ -291,10 +297,16 @@ lightdm_language_get_territory (LightDML
+ if (locale)
+ {
+ gchar *current = setlocale (LC_ALL, NULL);
++#ifdef LC_IDENTIFICATION
+ setlocale (LC_IDENTIFICATION, locale);
++#endif
+ setlocale (LC_MESSAGES, "");
+
++#ifdef _NL_IDENTIFICATION_TERRITORY
+ gchar *country_en = nl_langinfo (_NL_IDENTIFICATION_TERRITORY);
++#else
++ gchar *country_en = "Unknown";
++#endif
+ if (country_en && strlen (country_en) > 0 && g_strcmp0 (country_en, "ISO") != 0)
+ priv->territory = g_strdup (dgettext ("iso_3166", country_en));
+
diff --git a/x11/lightdm/files/patch-src_process.c b/x11/lightdm/files/patch-src_process.c
new file mode 100644
index 000000000000..df43c5e4d2e3
--- /dev/null
+++ b/x11/lightdm/files/patch-src_process.c
@@ -0,0 +1,11 @@
+--- src/process.c.orig 2016-12-08 21:38:14 UTC
++++ src/process.c
+@@ -231,7 +231,7 @@ process_start (Process *process, gboolea
+ #ifdef HAVE_CLEARENV
+ clearenv ();
+ #else
+- environ = NULL;
++ putenv ("environ=NULL");
+ #endif
+ for (i = 0; i < env_length; i++)
+ setenv (env_keys[i], env_values[i], TRUE);
diff --git a/x11/lightdm/files/patch-src_session-child.c b/x11/lightdm/files/patch-src_session-child.c
new file mode 100644
index 000000000000..d0cd13b4a84c
--- /dev/null
+++ b/x11/lightdm/files/patch-src_session-child.c
@@ -0,0 +1,64 @@
+--- src/session-child.c.orig 2016-10-19 12:20:14 UTC
++++ src/session-child.c
+@@ -13,7 +13,6 @@
+ #include <grp.h>
+ #include <glib.h>
+ #include <security/pam_appl.h>
+-#include <utmp.h>
+ #include <utmpx.h>
+ #include <sys/mman.h>
+
+@@ -202,29 +201,6 @@ read_xauth (void)
+ return x_authority_new (x_authority_family, x_authority_address, x_authority_address_length, x_authority_number, x_authority_name, x_authority_data, x_authority_data_length);
+ }
+
+-/* GNU provides this but we can't rely on that so let's make our own version */
+-static void
+-updwtmpx (const gchar *wtmp_file, struct utmpx *ut)
+-{
+- struct utmp u;
+-
+- memset (&u, 0, sizeof (u));
+- u.ut_type = ut->ut_type;
+- u.ut_pid = ut->ut_pid;
+- if (ut->ut_line)
+- strncpy (u.ut_line, ut->ut_line, sizeof (u.ut_line));
+- if (ut->ut_id)
+- strncpy (u.ut_id, ut->ut_id, sizeof (u.ut_id));
+- if (ut->ut_user)
+- strncpy (u.ut_user, ut->ut_user, sizeof (u.ut_user));
+- if (ut->ut_host)
+- strncpy (u.ut_host, ut->ut_host, sizeof (u.ut_host));
+- u.ut_tv.tv_sec = ut->ut_tv.tv_sec;
+- u.ut_tv.tv_usec = ut->ut_tv.tv_usec;
+-
+- updwtmp (wtmp_file, &u);
+-}
+-
+ #if HAVE_LIBAUDIT
+ static void
+ audit_event (int type, const gchar *username, uid_t uid, const gchar *remote_host_name, const gchar *tty, gboolean success)
+@@ -420,7 +396,6 @@ session_child_run (int argc, char **argv
+ ut.ut_tv.tv_sec = tv.tv_sec;
+ ut.ut_tv.tv_usec = tv.tv_usec;
+
+- updwtmpx ("/var/log/btmp", &ut);
+
+ #if HAVE_LIBAUDIT
+ audit_event (AUDIT_USER_LOGIN, username, -1, remote_host_name, tty, FALSE);
+@@ -749,7 +724,6 @@ session_child_run (int argc, char **argv
+ if (!pututxline (&ut))
+ g_printerr ("Failed to write utmpx: %s\n", strerror (errno));
+ endutxent ();
+- updwtmpx ("/var/log/wtmp", &ut);
+
+ #if HAVE_LIBAUDIT
+ audit_event (AUDIT_USER_LOGIN, username, uid, remote_host_name, tty, TRUE);
+@@ -786,7 +760,6 @@ session_child_run (int argc, char **argv
+ if (!pututxline (&ut))
+ g_printerr ("Failed to write utmpx: %s\n", strerror (errno));
+ endutxent ();
+- updwtmpx ("/var/log/wtmp", &ut);
+
+ #if HAVE_LIBAUDIT
+ audit_event (AUDIT_USER_LOGOUT, username, uid, remote_host_name, tty, TRUE);
diff --git a/x11/lightdm/files/patch-src_x-server.c b/x11/lightdm/files/patch-src_x-server.c
new file mode 100644
index 000000000000..d329ba9a6aa9
--- /dev/null
+++ b/x11/lightdm/files/patch-src_x-server.c
@@ -0,0 +1,11 @@
+--- src/x-server.c.orig 2016-06-17 04:53:18 UTC
++++ src/x-server.c
+@@ -143,7 +143,7 @@ x_server_connect_session (DisplayServer
+ {
+ gchar *t;
+
+- t = g_strdup_printf ("/dev/tty%d", vt);
++ t = g_strdup_printf ("/dev/ttyv%d", vt);
+ session_set_tty (session, t);
+ g_free (t);
+
diff --git a/x11/lightdm/files/patch-tests_src_libsystem.c b/x11/lightdm/files/patch-tests_src_libsystem.c
new file mode 100644
index 000000000000..5aabfa020323
--- /dev/null
+++ b/x11/lightdm/files/patch-tests_src_libsystem.c
@@ -0,0 +1,10 @@
+--- tests/src/libsystem.c.orig 2016-11-13 22:45:48 UTC
++++ tests/src/libsystem.c
+@@ -20,7 +20,6 @@
+ #include <security/pam_appl.h>
+ #include <fcntl.h>
+ #include <dlfcn.h>
+-#include <utmp.h>
+ #include <utmpx.h>
+ #ifdef __linux__
+ #include <linux/vt.h>
diff --git a/x11/lightdm/pkg-descr b/x11/lightdm/pkg-descr
new file mode 100644
index 000000000000..1815a6292cc6
--- /dev/null
+++ b/x11/lightdm/pkg-descr
@@ -0,0 +1,7 @@
+Lightdm is a display manager that:
+* Is cross-desktop - supports different desktops
+* Supports different display technologies
+* Is lightweight - low memory usage and fast performance
+* Has a comprehensive test suite
+
+WWW: https://www.freedesktop.org/wiki/Software/LightDM/
diff --git a/x11/lightdm/pkg-message b/x11/lightdm/pkg-message
new file mode 100644
index 000000000000..d12f83c8d11a
--- /dev/null
+++ b/x11/lightdm/pkg-message
@@ -0,0 +1,2 @@
+For lightdm to function, it requires one of the available greeters to be
+installed, which are available in the ports tree at x11/lightdm-*greeter*
diff --git a/x11/lightdm/pkg-plist b/x11/lightdm/pkg-plist
new file mode 100644
index 000000000000..1d7199cccf76
--- /dev/null
+++ b/x11/lightdm/pkg-plist
@@ -0,0 +1,164 @@
+bin/dm-tool
+etc/apparmor.d/abstractions/lightdm
+etc/apparmor.d/abstractions/lightdm_chromium-browser
+etc/apparmor.d/lightdm-guest-session
+etc/dbus-1/system.d/org.freedesktop.DisplayManager.conf
+@sample %%ETCDIR%%/keys.conf.sample
+@sample %%ETCDIR%%/lightdm.conf.sample
+@sample %%ETCDIR%%/users.conf.sample
+%%ETCDIR%%/Xsession
+etc/pam.d/lightdm
+etc/pam.d/lightdm-autologin
+etc/pam.d/lightdm-greeter
+include/lightdm-gobject-1/lightdm.h
+include/lightdm-gobject-1/lightdm/greeter.h
+include/lightdm-gobject-1/lightdm/language.h
+include/lightdm-gobject-1/lightdm/layout.h
+include/lightdm-gobject-1/lightdm/power.h
+include/lightdm-gobject-1/lightdm/session.h
+include/lightdm-gobject-1/lightdm/system.h
+include/lightdm-gobject-1/lightdm/user.h
+%%VALA%%lib/girepository-1.0/LightDM-1.typelib
+lib/liblightdm-gobject-1.a
+lib/liblightdm-gobject-1.so
+lib/liblightdm-gobject-1.so.0
+lib/liblightdm-gobject-1.so.0.0.0
+libdata/pkgconfig/liblightdm-gobject-1.pc
+libexec/lightdm-guest-session
+man/man1/dm-tool.1.gz
+man/man1/lightdm.1.gz
+sbin/lightdm
+share/bash-completion/completions/dm-tool
+share/bash-completion/completions/lightdm
+%%VALA%%share/gir-1.0/LightDM-1.gir
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/core.html
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/home.png
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/index.html
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/index.sgml
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/left-insensitive.png
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/left.png
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/lightdm-gobject-1-Greeter-Interface.html
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/lightdm-gobject-1-Keyboard-Layout.html
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/lightdm-gobject-1-Languages.html
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/lightdm-gobject-1-Power-Management.html
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/lightdm-gobject-1-Sessions.html
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/lightdm-gobject-1-System-Information.html
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/lightdm-gobject-1-User-Accounts.html
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/lightdm-gobject-1.devhelp2
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/right-insensitive.png
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/right.png
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/style.css
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/up-insensitive.png
+%%PORTDOCS%%share/gtk-doc/html/lightdm-gobject-1/up.png
+%%VALA%%share/help/C/lightdm/autologin.page
+%%VALA%%share/help/C/lightdm/config.page
+%%VALA%%share/help/C/lightdm/default-greeter.page
+%%VALA%%share/help/C/lightdm/default-session.page
+%%VALA%%share/help/C/lightdm/diagnostics.page
+%%VALA%%share/help/C/lightdm/guest.page
+%%VALA%%share/help/C/lightdm/index.page
+%%VALA%%share/help/C/lightdm/legal.xml
+%%VALA%%share/help/C/lightdm/local-sessions.page
+%%VALA%%share/help/C/lightdm/remote-sessions.page
+%%VALA%%share/help/C/lightdm/seat.page
+%%VALA%%share/help/C/lightdm/standard-authentication.page
+%%VALA%%share/help/C/lightdm/user-list.page
+%%VALA%%share/help/C/lightdm/user-switching.page
+%%VALA%%share/help/C/lightdm/vnc.page
+%%VALA%%share/help/C/lightdm/write-greeter.page
+%%VALA%%share/help/C/lightdm/xdmcp.page
+%%VALA%%share/locale/af/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/an/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/ar/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/ast/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/az/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/be/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/bg/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/bn/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/bo/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/br/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/bs/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/ca/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/ca@valencia/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/ckb/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/cs/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/da/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/de/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/el/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/en_AU/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/en_CA/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/en_GB/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/eo/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/es/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/et/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/eu/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/fa/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/fi/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/fo/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/fr/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/fy/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/gd/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/gl/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/gu/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/he/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/hi/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/hr/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/hu/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/ia/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/id/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/is/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/it/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/ja/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/kk/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/km/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/kn/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/ko/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/ku/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/lb/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/lt/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/lv/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/mhr/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/mi/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/ml/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/mr/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/ms/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/my/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/nb/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/nl/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/nn/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/oc/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/pa/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/pl/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/pt/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/pt_BR/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/ro/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/ru/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/sc/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/sd/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/shn/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/si/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/sk/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/sl/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/sq/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/sr/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/sv/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/ta/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/te/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/tg/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/th/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/tl/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/tr/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/ug/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/uk/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/uz/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/vi/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/wae/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/zh_CN/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/zh_HK/LC_MESSAGES/lightdm.mo
+%%VALA%%share/locale/zh_TW/LC_MESSAGES/lightdm.mo
+%%VALA%%share/vala/vapi/liblightdm-gobject-1.deps
+%%VALA%%share/vala/vapi/liblightdm-gobject-1.vapi
+share/xgreeters/default.desktop
+@dir /var/cache/lightdm
+@dir /var/log/lightdm
+@dir /var/run/lightdm