summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lxde-base/lxdm/files/lxdm-0.5.3-upstream-fixes.patch236
-rw-r--r--lxde-base/lxdm/lxdm-0.5.3-r1.ebuild68
2 files changed, 304 insertions, 0 deletions
diff --git a/lxde-base/lxdm/files/lxdm-0.5.3-upstream-fixes.patch b/lxde-base/lxdm/files/lxdm-0.5.3-upstream-fixes.patch
new file mode 100644
index 000000000000..0360ebff8d06
--- /dev/null
+++ b/lxde-base/lxdm/files/lxdm-0.5.3-upstream-fixes.patch
@@ -0,0 +1,236 @@
+From c6836939c6fd603f86f469bb7c6502b28b1ca583 Mon Sep 17 00:00:00 2001
+From: dgod <dgod.osa@gmail.com>
+Date: Sun, 3 Jan 2016 11:53:13 +0800
+Subject: [PATCH 01/07] create user specific directory under /var/run
+
+---
+ src/lxdm.c | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/src/lxdm.c b/src/lxdm.c
+index a37f051..d81b587 100644
+--- a/src/lxdm.c
++++ b/src/lxdm.c
+@@ -750,7 +750,13 @@ static char ** create_client_auth(struct passwd *pw,char **env)
+ if(xauth_write_file(authfile,s->display,s->mcookie)==-1)
+ {
+ g_free(authfile);
+- authfile = g_strdup_printf("/var/run/lxdm/.Xauth%d",pw->pw_uid);
++
++ gchar *authdir = g_strdup_printf("/var/run/lxdm/%d", pw->pw_uid);
++ g_mkdir_with_parents(authdir, S_IRWXU);
++ chown(authdir, pw->pw_uid, pw->pw_gid);
++
++ authfile = g_strdup_printf("%s/.Xauthority", authdir);
++ g_free(authdir);
+ remove(authfile);
+ xauth_write_file(authfile,s->display,s->mcookie);
+ }
+--
+2.1.4
+
+
+From 7258b57fd305182c6c031eb8c1ded96c5a06f6da Mon Sep 17 00:00:00 2001
+From: dgod <dgod.osa@gmail.com>
+Date: Sat, 20 Feb 2016 22:36:59 +0800
+Subject: [PATCH 02/07] fix build before gtk 2.22
+
+---
+ src/greeter-gdk.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/greeter-gdk.c b/src/greeter-gdk.c
+index 1abbefa..ad3267a 100644
+--- a/src/greeter-gdk.c
++++ b/src/greeter-gdk.c
+@@ -22,6 +22,7 @@
+
+ #define XLIB_ILLEGAL_ACCESS
+
++#include <gtk/gtk.h>
+ #include <gdk/gdk.h>
+ #include <gdk/gdkx.h>
+ #include <gdk/gdkkeysyms.h>
+@@ -88,12 +89,14 @@ static void on_ui_expose(void)
+ }
+
+ cr=gdk_cairo_create(win);
++#if GTK_CHECK_VERSION(3,0,0)
+ cairo_pattern_t *pattern=gdk_window_get_background_pattern(win);
+ if(pattern)
+ {
+ cairo_set_source(cr,pattern);
+ cairo_paint(cr);
+ }
++#endif
+
+ gdk_cairo_set_source_color(cr, &bg);
+ cairo_rectangle(cr, rc.x, rc.y, rc.width, rc.height);
+--
+2.1.4
+
+
+From 5d36a53702f1e60bb316946f1edccb2dbc3c01bd Mon Sep 17 00:00:00 2001
+From: dgod <dgod.osa@gmail.com>
+Date: Sun, 21 Feb 2016 10:45:58 +0800
+Subject: [PATCH 03/07] fix with user_list only: problem when password check
+ fail
+
+---
+ src/greeter.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/greeter.c b/src/greeter.c
+index 10b7f3f..03503b6 100644
+--- a/src/greeter.c
++++ b/src/greeter.c
+@@ -146,7 +146,7 @@ static void switch_to_input_user(void)
+ if(user_list_scrolled)
+ gtk_widget_show(user_list_scrolled);
+ else
+- gtk_widget_hide(user_list);
++ gtk_widget_show(user_list);
+ gtk_widget_grab_focus(user_list);
+ }
+ else
+--
+2.1.4
+
+
+From fe121ce70ad5e99bd3b3b896dfcbe439dd22716c Mon Sep 17 00:00:00 2001
+From: dgod <dgod.osa@gmail.com>
+Date: Sun, 21 Feb 2016 11:45:35 +0800
+Subject: [PATCH 04/07] fix not honor ctl+alt+backspacer for restarting
+
+---
+ src/lxdm.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/lxdm.c b/src/lxdm.c
+index d81b587..e00d219 100644
+--- a/src/lxdm.c
++++ b/src/lxdm.c
+@@ -962,6 +962,11 @@ static void on_xserver_stop(void *data,int pid, int status)
+ s->dpy=NULL;
+ ui_drop();
+ lxdm_startx(s);
++ #ifndef DISABLE_XAUTH
++ char temp[256];
++ sprintf(temp,"/var/run/lxdm/lxdm-:%d.auth",s->display);
++ setenv("XAUTHORITY",temp,1);
++ #endif
+ ui_prepare();
+ lxsession_set_active(s);
+ }
+--
+2.1.4
+
+
+From 72812894cfd9454d70e4b0753531e46580416771 Mon Sep 17 00:00:00 2001
+From: dgod <dgod.osa@gmail.com>
+Date: Mon, 21 Mar 2016 19:25:25 +0800
+Subject: [PATCH 05/07] fix css under gtk 3.20
+
+---
+ data/themes/Industrial/gtk.css | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/data/themes/Industrial/gtk.css b/data/themes/Industrial/gtk.css
+index 179f0d6..f8e6432 100644
+--- a/data/themes/Industrial/gtk.css
++++ b/data/themes/Industrial/gtk.css
+@@ -17,6 +17,7 @@
+ color: #000000;
+ }
+
++#bottom_pane label,
+ #bottom_pane GtkLabel {
+ font: Sans 12;
+ color: #9E9D9B;
+--
+2.1.4
+
+
+From 855c090f1330aedc97b9a486dcd0d0b4c7ff4f4e Mon Sep 17 00:00:00 2001
+From: dgod <dgod.osa@gmail.com>
+Date: Sun, 16 Oct 2016 12:49:40 +0800
+Subject: [PATCH 06/07] Compile with the musl c library (no execinfo.h)
+
+---
+ configure.ac | 2 +-
+ src/lxdm.c | 4 ++++
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 52f2ac9..a9fca61 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -32,7 +32,7 @@ AM_CONDITIONAL(HAVE_PAM, [test -n "$USE_PAM" -a "x$USE_PAM" != xno ])
+
+ # Checks for header files.
+ AC_PATH_X
+-AC_CHECK_HEADERS([shadow.h stdlib.h string.h unistd.h utmpx.h])
++AC_CHECK_HEADERS([execinfo.h shadow.h stdlib.h string.h unistd.h utmpx.h])
+
+ # Checks for typedefs, structures, and compiler characteristics.
+ AC_TYPE_PID_T
+diff --git a/src/lxdm.c b/src/lxdm.c
+index e00d219..53d2176 100644
+--- a/src/lxdm.c
++++ b/src/lxdm.c
+@@ -49,7 +49,9 @@
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
+
++#ifdef HAVE_EXECINFO_H
+ #include <execinfo.h>
++#endif
+
+ #ifdef HAVE_UTMPX_H
+ #include <utmpx.h>
+@@ -1552,6 +1554,7 @@ int lxdm_do_auto_login(void)
+
+ static void log_sigsegv(void)
+ {
++#ifdef HAVE_EXECINFO_H
+ void *array[40];
+ size_t size;
+ char **bt_strs;
+@@ -1564,6 +1567,7 @@ static void log_sigsegv(void)
+ fprintf(stderr, "%s\n", bt_strs[i]);
+
+ free(bt_strs);
++#endif
+ }
+
+ static void sigsegv_handler(int sig)
+--
+2.1.4
+
+
+From a548c73e35d62ec334df5cd3a491ee409d0067bd Mon Sep 17 00:00:00 2001
+From: dgod <dgod.osa@gmail.com>
+Date: Fri, 11 Nov 2016 20:24:30 +0800
+Subject: [PATCH 07/07] fix tcp_listen=1 does not work for mordern X.org
+
+---
+ src/lxdm.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/lxdm.c b/src/lxdm.c
+index 53d2176..722936f 100644
+--- a/src/lxdm.c
++++ b/src/lxdm.c
+@@ -490,6 +490,9 @@ static char *lxsession_xserver_command(LXSession *s)
+ {
+ arg[arc++] = g_strdup("-nolisten");
+ arg[arc++] = g_strdup("tcp");
++ } else {
++ arg[arc++] = g_strdup("-listen");
++ arg[arc++] = g_strdup("tcp");
+ }
+ if(!novtswitch)
+ {
+--
+2.1.4
+
diff --git a/lxde-base/lxdm/lxdm-0.5.3-r1.ebuild b/lxde-base/lxdm/lxdm-0.5.3-r1.ebuild
new file mode 100644
index 000000000000..720d8e8b2971
--- /dev/null
+++ b/lxde-base/lxdm/lxdm-0.5.3-r1.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+# Using strip-linguas in eutils
+inherit eutils autotools systemd
+
+DESCRIPTION="LXDE Display Manager"
+HOMEPAGE="http://lxde.org"
+SRC_URI="mirror://sourceforge/lxde/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86"
+
+IUSE="consolekit debug gtk3 nls pam"
+
+RDEPEND="consolekit? ( sys-auth/consolekit )
+ x11-libs/libxcb
+ gtk3? ( x11-libs/gtk+:3 )
+ !gtk3? ( x11-libs/gtk+:2 )
+ nls? ( sys-devel/gettext )
+ pam? ( virtual/pam )"
+DEPEND="${RDEPEND}
+ >=dev-util/intltool-0.40
+ virtual/pkgconfig"
+DOCS=( AUTHORS README TODO )
+
+src_prepare() {
+ # Upstream bug, tarball contains pre-made lxdm.conf
+ rm "${S}"/data/lxdm.conf || die
+
+ # Fix consolekit and selinux
+ eapply "${FILESDIR}/${P}-pam_console-disable.patch"
+ # Apply all upstream fixes in git until 2016-11-11
+ eapply "${FILESDIR}/lxdm-0.5.3-upstream-fixes.patch"
+ eapply_user
+
+ # this replaces the bootstrap/autogen script in most packages
+ eautoreconf
+
+ # process LINGUAS
+ if use nls; then
+ einfo "Running intltoolize ..."
+ intltoolize --force --copy --automake || die
+ strip-linguas -i "${S}/po" || die
+ fi
+}
+src_configure() {
+ econf --enable-password \
+ --with-x \
+ --with-xconn=xcb \
+ --with-systemdsystemunitdir=$(systemd_get_systemunitdir) \
+ $(use_enable consolekit) \
+ $(use_enable gtk3) \
+ $(use_enable nls) \
+ $(use_enable debug) \
+ $(use_with pam)
+}
+
+src_install() {
+ default_src_install
+
+ #Use Gentoo specific Xsession startup file
+ exeinto /etc/${PN}
+ doexe "${FILESDIR}"/Xsession
+}