mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-24 18:58:08 -07:00
x11-apps/xdm: Drop old versions
Signed-off-by: Matt Turner <mattst88@gentoo.org>
This commit is contained in:
@@ -1,2 +1 @@
|
||||
DIST xdm-1.1.11.tar.bz2 446612 BLAKE2B ce9bed568e036a882ecc56d75f7ce8646d14ae00c754d6e5542ea5b186c3ef1ce8499e2d70190b4fbc4b344e0c70fd36deab5aacc5f1f55501db709300aee520 SHA512 fe6f2b7817c0f7f07a1f5f497edcdfa15b93986fd87f314daa472dac8625327ef46ebbf40d27fe8d4a8a2f8d5af8a01c4438a29356740e0eb350f2bd0c7ec0d5
|
||||
DIST xdm-1.1.12.tar.bz2 512074 BLAKE2B a82d124f4b7ce3185d703fca3aade92e86094602aec5343566ba8c91c54b70cdedbaea2fa6fee330d7ed48d9138b04a998aa2dae06db2683bfcce6c7693edc82 SHA512 1a4be0a070ced5db8fda6fc74794c9f9ed0cb37fa440fda6a3a7652aff62dfc3d7ba68b9facf054671ebf0f4db2a0eec29d0aa3716e3407ccd5529bac3553bdb
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
diff -ur a/xdm/genauth.c b/xdm/genauth.c
|
||||
--- a/xdm/genauth.c 2011-09-25 09:35:47.000000000 +0200
|
||||
+++ b/xdm/genauth.c 2014-01-06 16:28:09.664060603 +0100
|
||||
@@ -40,6 +40,14 @@
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
+#ifdef HAVE_ARC4RANDOM
|
||||
+# ifdef __linux__
|
||||
+# include <bsd/stdlib.h>
|
||||
+# else
|
||||
+# include <stdlib.h>
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
#include <time.h>
|
||||
#define Time_t time_t
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
From 8d1eb5c74413e4c9a21f689fc106949b121c0117 Mon Sep 17 00:00:00 2001
|
||||
From: mancha <mancha1@hush.com>
|
||||
Date: Wed, 22 May 2013 14:20:26 +0000
|
||||
Subject: Handle NULL returns from glibc 2.17+ crypt().
|
||||
|
||||
Starting with glibc 2.17 (eglibc 2.17), crypt() fails with EINVAL
|
||||
(w/ NULL return) if the salt violates specifications. Additionally,
|
||||
on FIPS-140 enabled Linux systems, DES/MD5-encrypted passwords
|
||||
passed to crypt() fail with EPERM (w/ NULL return).
|
||||
|
||||
If using glibc's crypt(), check return value to avoid a possible
|
||||
NULL pointer dereference.
|
||||
|
||||
Reviewed-by: Matthieu Herrb <matthieu@herrb.eu>
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
---
|
||||
diff --git a/greeter/verify.c b/greeter/verify.c
|
||||
index db3cb7d..b009e2b 100644
|
||||
--- a/greeter/verify.c
|
||||
+++ b/greeter/verify.c
|
||||
@@ -329,6 +329,7 @@ Verify (struct display *d, struct greet_info *greet, struct verify_info *verify)
|
||||
struct spwd *sp;
|
||||
# endif
|
||||
char *user_pass = NULL;
|
||||
+ char *crypted_pass = NULL;
|
||||
# endif
|
||||
# ifdef __OpenBSD__
|
||||
char *s;
|
||||
@@ -464,7 +465,9 @@ Verify (struct display *d, struct greet_info *greet, struct verify_info *verify)
|
||||
# if defined(ultrix) || defined(__ultrix__)
|
||||
if (authenticate_user(p, greet->password, NULL) < 0)
|
||||
# else
|
||||
- if (strcmp (crypt (greet->password, user_pass), user_pass))
|
||||
+ crypted_pass = crypt (greet->password, user_pass);
|
||||
+ if ((crypted_pass == NULL)
|
||||
+ || (strcmp (crypted_pass, user_pass)))
|
||||
# endif
|
||||
{
|
||||
if(!greet->allow_null_passwd || strlen(p->pw_passwd) > 0) {
|
||||
--
|
||||
cgit v0.9.0.2-2-gbebe
|
||||
@@ -1,37 +0,0 @@
|
||||
diff -ur a/xdm/choose.c b/xdm/choose.c
|
||||
--- a/xdm/choose.c 2011-09-25 09:35:47.000000000 +0200
|
||||
+++ b/xdm/choose.c 2014-01-06 16:33:09.628065364 +0100
|
||||
@@ -54,6 +54,14 @@
|
||||
# include <tiuser.h>
|
||||
# endif
|
||||
|
||||
+# ifdef HAVE_SETPROCTITLE
|
||||
+# ifdef __linux__
|
||||
+# include <bsd/unistd.h>
|
||||
+# else
|
||||
+# include <unistd.h>
|
||||
+# endif
|
||||
+# endif
|
||||
+
|
||||
# include <time.h>
|
||||
# define Time_t time_t
|
||||
|
||||
diff -ur a/xdm/session.c b/xdm/session.c
|
||||
--- a/xdm/session.c 2011-09-25 09:35:47.000000000 +0200
|
||||
+++ b/xdm/session.c 2014-01-06 16:40:57.508072789 +0100
|
||||
@@ -54,6 +54,15 @@
|
||||
# include <usersec.h>
|
||||
#endif
|
||||
|
||||
+# ifdef HAVE_SETPROCTITLE
|
||||
+# include <sys/types.h>
|
||||
+# ifdef __linux__
|
||||
+# include <bsd/unistd.h>
|
||||
+# else
|
||||
+# include <unistd.h>
|
||||
+# endif
|
||||
+# endif
|
||||
+
|
||||
#ifndef USE_PAM /* PAM modules should handle these */
|
||||
# ifdef SECURE_RPC
|
||||
# include <rpc/rpc.h>
|
||||
@@ -1,230 +0,0 @@
|
||||
http://bugs.gentoo.org/360987
|
||||
http://projects.archlinux.org/svntogit/packages.git/plain/trunk/xdm-consolekit.patch?h=packages/xorg-xdm
|
||||
http://lists.x.org/archives/xorg-devel/2011-February/019615.html
|
||||
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=615020
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -362,6 +362,20 @@
|
||||
|
||||
AM_CONDITIONAL(DYNAMIC_GREETER, test x$DYNAMIC_GREETER = xyes)
|
||||
|
||||
+# ConsoleKit support
|
||||
+AC_ARG_WITH(consolekit, AC_HELP_STRING([--with-consolekit], [Use ConsoleKit]),
|
||||
+ [USE_CONSOLEKIT=$withval], [USE_CONSOLEKIT=yes])
|
||||
+if test x"$USE_CONSOLEKIT" != xno; then
|
||||
+ PKG_CHECK_MODULES(CK_CONNECTOR, ck-connector,
|
||||
+ [USE_CONSOLEKIT=yes], [USE_CONSOLEKIT=no])
|
||||
+ if test x"$USE_CONSOLEKIT" = xyes; then
|
||||
+ AC_DEFINE([USE_CONSOLEKIT], 1, [Define to 1 to use ConsoleKit])
|
||||
+ XDM_CFLAGS="$XDM_CFLAGS $CK_CONNECTOR_CFLAGS -DUSE_CONSOLEKIT"
|
||||
+ XDM_LIBS="$XDM_LIBS $CK_CONNECTOR_LIBS"
|
||||
+ fi
|
||||
+fi
|
||||
+dnl AM_CONDITIONAL(USE_CONSOLEKIT, test$USE_CONSOLEKIT = xyes)
|
||||
+
|
||||
#
|
||||
# XDM
|
||||
#
|
||||
--- a/xdm/session.c
|
||||
+++ b/xdm/session.c
|
||||
@@ -66,6 +66,11 @@
|
||||
#endif
|
||||
#endif /* USE_PAM */
|
||||
|
||||
+#ifdef USE_CONSOLEKIT
|
||||
+#include <ck-connector.h>
|
||||
+#include <dbus/dbus.h>
|
||||
+#endif
|
||||
+
|
||||
#ifdef __SCO__
|
||||
#include <prot.h>
|
||||
#endif
|
||||
@@ -472,6 +477,97 @@
|
||||
}
|
||||
}
|
||||
|
||||
+#ifdef USE_CONSOLEKIT
|
||||
+
|
||||
+static CkConnector *connector;
|
||||
+
|
||||
+static int openCKSession(struct verify_info *verify, struct display *d)
|
||||
+{
|
||||
+ int ret;
|
||||
+ DBusError error;
|
||||
+ char *remote_host_name = "";
|
||||
+ dbus_bool_t is_local;
|
||||
+ char *display_name = "";
|
||||
+ char *display_device = "";
|
||||
+ char devtmp[16];
|
||||
+
|
||||
+ if (!use_consolekit)
|
||||
+ return 1;
|
||||
+
|
||||
+ is_local = d->displayType.location == Local;
|
||||
+ if (d->peerlen > 0 && d->peer)
|
||||
+ remote_host_name = d->peer;
|
||||
+ if (d->name)
|
||||
+ display_name = d->name;
|
||||
+ /* how can we get the corresponding tty at best...? */
|
||||
+ if (d->windowPath) {
|
||||
+ display_device = strchr(d->windowPath, ':');
|
||||
+ if (display_device && display_device[1])
|
||||
+ display_device++;
|
||||
+ else
|
||||
+ display_device = d->windowPath;
|
||||
+ snprintf(devtmp, sizeof(devtmp), "/dev/tty%s", display_device);
|
||||
+ display_device = devtmp;
|
||||
+ }
|
||||
+
|
||||
+ connector = ck_connector_new();
|
||||
+ if (!connector) {
|
||||
+ LogOutOfMem("ck_connector");
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ dbus_error_init(&error);
|
||||
+ ret = ck_connector_open_session_with_parameters(
|
||||
+ connector, &error,
|
||||
+ "unix-user", &verify->uid,
|
||||
+ "x11-display", &display_name,
|
||||
+ "x11-display-device", &display_device,
|
||||
+ "remote-host-name", &remote_host_name,
|
||||
+ "is-local", &is_local,
|
||||
+ NULL);
|
||||
+ if (!ret) {
|
||||
+ if (dbus_error_is_set(&error)) {
|
||||
+ LogError("Dbus error: %s\n", error.message);
|
||||
+ dbus_error_free(&error);
|
||||
+ } else {
|
||||
+ LogError("ConsoleKit error\n");
|
||||
+ }
|
||||
+ LogError("console-kit-daemon not running?\n");
|
||||
+ ck_connector_unref(connector);
|
||||
+ connector = NULL;
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ verify->userEnviron = setEnv(verify->userEnviron,
|
||||
+ "XDG_SESSION_COOKIE", ck_connector_get_cookie(connector));
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+static void closeCKSession(void)
|
||||
+{
|
||||
+ DBusError error;
|
||||
+
|
||||
+ if (!connector)
|
||||
+ return;
|
||||
+
|
||||
+ dbus_error_init(&error);
|
||||
+ if (!ck_connector_close_session(connector, &error)) {
|
||||
+ if (dbus_error_is_set(&error)) {
|
||||
+ LogError("Dbus error: %s\n", error.message);
|
||||
+ dbus_error_free(&error);
|
||||
+ } else {
|
||||
+ LogError("ConsoleKit close error\n");
|
||||
+ }
|
||||
+ LogError("console-kit-daemon not running?\n");
|
||||
+ }
|
||||
+ ck_connector_unref(connector);
|
||||
+ connector = NULL;
|
||||
+}
|
||||
+#else
|
||||
+#define openCKSession(v,d) 1
|
||||
+#define closeCKSession()
|
||||
+#endif
|
||||
+
|
||||
void
|
||||
SessionExit (struct display *d, int status, int removeAuth)
|
||||
{
|
||||
@@ -486,6 +580,8 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
+ closeCKSession();
|
||||
+
|
||||
/* make sure the server gets reset after the session is over */
|
||||
if (d->serverPid >= 2 && d->resetSignal)
|
||||
kill (d->serverPid, d->resetSignal);
|
||||
@@ -568,6 +664,10 @@
|
||||
#ifdef USE_PAM
|
||||
if (pamh) pam_open_session(pamh, 0);
|
||||
#endif
|
||||
+
|
||||
+ if (!openCKSession(verify, d))
|
||||
+ return 0;
|
||||
+
|
||||
switch (pid = fork ()) {
|
||||
case 0:
|
||||
CleanUpChild ();
|
||||
--- a/include/dm.h
|
||||
+++ b/include/dm.h
|
||||
@@ -325,6 +325,9 @@
|
||||
extern char *prngdSocket;
|
||||
extern int prngdPort;
|
||||
# endif
|
||||
+#ifdef USE_CONSOLEKIT
|
||||
+extern int use_consolekit;
|
||||
+#endif
|
||||
|
||||
extern char *greeterLib;
|
||||
extern char *willing;
|
||||
--- a/xdm/resource.c
|
||||
+++ b/xdm/resource.c
|
||||
@@ -68,6 +68,9 @@
|
||||
char *prngdSocket;
|
||||
int prngdPort;
|
||||
#endif
|
||||
+#ifdef USE_CONSOLEKIT
|
||||
+int use_consolekit;
|
||||
+#endif
|
||||
|
||||
char *greeterLib;
|
||||
char *willing;
|
||||
@@ -258,6 +261,10 @@
|
||||
"false"} ,
|
||||
{ "willing", "Willing", DM_STRING, &willing,
|
||||
""} ,
|
||||
+#ifdef USE_CONSOLEKIT
|
||||
+{ "consoleKit", "ConsoleKit", DM_BOOL, (char **) &use_consolekit,
|
||||
+ "true"} ,
|
||||
+#endif
|
||||
};
|
||||
|
||||
# define NUM_DM_RESOURCES (sizeof DmResources / sizeof DmResources[0])
|
||||
@@ -440,7 +447,11 @@
|
||||
{"-debug", "*debugLevel", XrmoptionSepArg, (caddr_t) NULL },
|
||||
{"-xrm", NULL, XrmoptionResArg, (caddr_t) NULL },
|
||||
{"-daemon", ".daemonMode", XrmoptionNoArg, "true" },
|
||||
-{"-nodaemon", ".daemonMode", XrmoptionNoArg, "false" }
|
||||
+{"-nodaemon", ".daemonMode", XrmoptionNoArg, "false" },
|
||||
+#ifdef USE_CONSOLEKIT
|
||||
+{"-consolekit", ".consoleKit", XrmoptionNoArg, "true" },
|
||||
+{"-noconsolekit", ".consoleKit", XrmoptionNoArg, "false" }
|
||||
+#endif
|
||||
};
|
||||
|
||||
static int originalArgc;
|
||||
--- a/man/xdm.man
|
||||
+++ b/man/xdm.man
|
||||
@@ -51,6 +51,8 @@
|
||||
] [
|
||||
.B \-session
|
||||
.I session_program
|
||||
+] [
|
||||
+.B \-noconsolekit
|
||||
]
|
||||
.SH DESCRIPTION
|
||||
.I Xdm
|
||||
@@ -218,6 +220,10 @@
|
||||
.IP "\fB\-xrm\fP \fIresource_specification\fP"
|
||||
Allows an arbitrary resource to be specified, as in most
|
||||
X Toolkit applications.
|
||||
+.IP "\fB\-noconsolekit\fP"
|
||||
+Specifies ``false'' as the value for the \fBDisplayManager.consoleKit\fP
|
||||
+resource.
|
||||
+This suppresses the session management using ConsoleKit.
|
||||
.SH RESOURCES
|
||||
At many stages the actions of
|
||||
.I xdm
|
||||
@@ -7,6 +7,5 @@
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="consolekit">Enable native <pkg>sys-auth/consolekit</pkg> support</flag>
|
||||
<flag name="xdm-auth">Enable XDM-AUTHENTICATION-1 support</flag>
|
||||
</use>
|
||||
</pkgmetadata>
|
||||
|
||||
@@ -1,77 +0,0 @@
|
||||
# Copyright 1999-2018 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=5
|
||||
|
||||
XORG_EAUTORECONF=yes
|
||||
|
||||
inherit multilib xorg-2 pam systemd
|
||||
|
||||
DEFAULTVT=vt7
|
||||
|
||||
DESCRIPTION="X.Org xdm application"
|
||||
|
||||
KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~x86-fbsd"
|
||||
IUSE="consolekit ipv6 pam xdm-auth"
|
||||
|
||||
RDEPEND="x11-apps/xrdb
|
||||
x11-libs/libXdmcp
|
||||
x11-libs/libXaw
|
||||
>=x11-apps/xinit-1.0.2-r3
|
||||
x11-libs/libXinerama
|
||||
x11-libs/libXmu
|
||||
x11-libs/libX11
|
||||
x11-libs/libXt
|
||||
x11-apps/sessreg
|
||||
x11-apps/xconsole
|
||||
consolekit? ( sys-auth/consolekit )
|
||||
pam? ( virtual/pam )
|
||||
!<sys-apps/systemd-187"
|
||||
DEPEND="${RDEPEND}
|
||||
x11-base/xorg-proto
|
||||
consolekit? ( !=sys-auth/pambase-20101024-r1 )"
|
||||
|
||||
pkg_setup() {
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-consolekit.patch
|
||||
"${FILESDIR}"/${P}-cve-2013-2179.patch
|
||||
"${FILESDIR}"/${PN}-1.1.11-arc4random-include.patch
|
||||
"${FILESDIR}"/${PN}-1.1.11-setproctitle-include.patch
|
||||
)
|
||||
|
||||
XORG_CONFIGURE_OPTIONS=(
|
||||
$(use_enable ipv6)
|
||||
$(use_with pam)
|
||||
"$(systemd_with_unitdir)"
|
||||
--with-default-vt=${DEFAULTVT}
|
||||
--with-xdmconfigdir=/etc/X11/xdm
|
||||
$(use_with consolekit)
|
||||
)
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
# fedora invented that in -187...
|
||||
sed -i -e 's:^Alias=.*$:Alias=display-manager.service:' \
|
||||
xdm.service.in || die
|
||||
|
||||
# disable XDM-AUTHENTICATION-1 wrt bug #445662.
|
||||
# it causes issue with libreoffice and SDL games (bug #306223).
|
||||
if use !xdm-auth; then
|
||||
sed -i -e '/authorize/a\
|
||||
DisplayManager*authName: MIT-MAGIC-COOKIE-1' \
|
||||
config/xdm-config.cpp || die
|
||||
fi
|
||||
xorg-2_src_prepare
|
||||
}
|
||||
|
||||
src_install() {
|
||||
xorg-2_src_install
|
||||
|
||||
exeinto /usr/$(get_libdir)/X11/xdm
|
||||
doexe "${FILESDIR}"/Xsession
|
||||
|
||||
use pam && pamd_mimic system-local-login xdm auth account session
|
||||
|
||||
# Keep /var/lib/xdm. This is where authfiles are stored. See #286350.
|
||||
keepdir /var/lib/xdm
|
||||
}
|
||||
Reference in New Issue
Block a user