summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej Mrozowski <reavertm@gentoo.org>2010-06-23 21:56:39 +0000
committerMaciej Mrozowski <reavertm@gentoo.org>2010-06-23 21:56:39 +0000
commitc8df108d46e00d85ca1bea90775f4ae3c3ac8255 (patch)
treef9e7becca09f891cd3ae8c8fa8135782b9f3a279 /kde-base/kdm
parentStable on amd64 wrt bug #321151 (diff)
downloadgentoo-2-c8df108d46e00d85ca1bea90775f4ae3c3ac8255.tar.gz
gentoo-2-c8df108d46e00d85ca1bea90775f4ae3c3ac8255.tar.bz2
gentoo-2-c8df108d46e00d85ca1bea90775f4ae3c3ac8255.zip
Apply kdm timeout patch from bug 278473, add TerminateServer=true to kdmrc (workaround for nvidia), set FaceDir (kdm doesn't respect it yet), properly slot DataDir
(Portage version: 2.2_rc67/cvs/Linux x86_64)
Diffstat (limited to 'kde-base/kdm')
-rw-r--r--kde-base/kdm/ChangeLog11
-rw-r--r--kde-base/kdm/files/kdm-4.3.5-xdm-restart.patch41
-rw-r--r--kde-base/kdm/kdm-4.4.4-r1.ebuild (renamed from kde-base/kdm/kdm-4.4.4.ebuild)26
3 files changed, 73 insertions, 5 deletions
diff --git a/kde-base/kdm/ChangeLog b/kde-base/kdm/ChangeLog
index 2dfe07634a99..d9c73839cb69 100644
--- a/kde-base/kdm/ChangeLog
+++ b/kde-base/kdm/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for kde-base/kdm
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/kde-base/kdm/ChangeLog,v 1.219 2010/06/21 16:30:52 ssuominen Exp $
+# $Header: /var/cvsroot/gentoo-x86/kde-base/kdm/ChangeLog,v 1.220 2010/06/23 21:56:39 reavertm Exp $
+
+*kdm-4.4.4-r1 (23 Jun 2010)
+
+ 23 Jun 2010; Maciej Mrozowski <reavertm@gentoo.org>
+ +files/kdm-4.3.5-xdm-restart.patch, -kdm-4.4.4.ebuild,
+ +kdm-4.4.4-r1.ebuild:
+ Apply kdm timeout patch from bug 278473, add TerminateServer=true to kdmrc
+ (workaround for nvidia), set FaceDir (kdm doesn't respect it yet),
+ properly slot DataDir
21 Jun 2010; Tomáš Chvátal <scarabeus@gentoo.org> kdm-4.3.5.ebuild,
kdm-4.3.5-r1.ebuild, kdm-4.4.4.ebuild:
diff --git a/kde-base/kdm/files/kdm-4.3.5-xdm-restart.patch b/kde-base/kdm/files/kdm-4.3.5-xdm-restart.patch
new file mode 100644
index 000000000000..a47150c0266e
--- /dev/null
+++ b/kde-base/kdm/files/kdm-4.3.5-xdm-restart.patch
@@ -0,0 +1,41 @@
+--- kdm-4.3.5/kdm/backend/dm.c.orig 2010-05-08 17:00:38.000000000 -0700
++++ kdm-4.3.5/kdm/backend/dm.c 2010-05-08 17:38:17.000000000 -0700
+@@ -1469,7 +1469,15 @@
+
+ d->hstent->lock = d->hstent->rLogin = d->hstent->goodExit =
+ d->sdRec.how = 0;
+- d->lastStart = now;
++ /* If this is a local server then we record the actual
++ * start time of the server - this is because the server
++ * can be reset without restarting and it can crash when,
++ * or after, reset - we don't want to disable it if it
++ * crashes in this case. (See exitDisplay() below.)
++ * 'lastStart' is set in server.c to make this work.
++ */
++ if ((d->displayType & d_location) != dLocal)
++ d->lastStart = now;
+ break;
+ }
+ }
+@@ -1558,7 +1566,7 @@
+ } else {
+ if (serverCmd == XS_RETRY) {
+ if ((d->displayType & d_location) == dLocal) {
+- if (he->lastExit - d->lastStart < 120) {
++ if (he->lastExit - d->lastStart < 20) {
+ logError( "Unable to fire up local display %s;"
+ " disabling.\n", d->name );
+ stopDisplay( d );
+--- kdm-4.3.5/kdm/backend/server.c.orig 2010-05-08 17:00:43.000000000 -0700
++++ kdm-4.3.5/kdm/backend/server.c 2010-05-08 17:35:34.000000000 -0700
+@@ -76,6 +76,10 @@
+
+ debug( "startServerOnce for %s, try %d\n", d->name, ++d->startTries );
+ d->serverStatus = starting;
++ /* For the local X server record the start time of the server, not the
++ * session, so set the time here and not in dm.c:startDisplayP2()
++ */
++ d->lastStart = now;
+ switch (Fork( &d->serverPid )) {
+ case 0:
+ argv = prepareServerArgv( d, d->serverArgsLocal );
diff --git a/kde-base/kdm/kdm-4.4.4.ebuild b/kde-base/kdm/kdm-4.4.4-r1.ebuild
index 44b61485127c..785ea8c919bf 100644
--- a/kde-base/kdm/kdm-4.4.4.ebuild
+++ b/kde-base/kdm/kdm-4.4.4-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/kde-base/kdm/kdm-4.4.4.ebuild,v 1.2 2010/06/21 15:53:29 scarabeus Exp $
+# $Header: /var/cvsroot/gentoo-x86/kde-base/kdm/kdm-4.4.4-r1.ebuild,v 1.1 2010/06/23 21:56:39 reavertm Exp $
EAPI="3"
@@ -41,8 +41,15 @@ KMEXTRA="
PATCHES=(
"${FILESDIR}/kdebase-4.0.2-pam-optional.patch"
"${FILESDIR}/${PN}-4-gentoo-xinitrc.d.patch"
+ "${FILESDIR}/${PN}-4.3.5-xdm-restart.patch"
)
+pkg_setup() {
+ kde4-meta_pkg_setup
+
+ KDM_HOME=/var/lib/kdm-${SLOT}
+}
+
src_configure() {
# genkdmconf breaks with -O3
# last checked in 4.2.95
@@ -62,14 +69,25 @@ src_install() {
kde4-meta_src_install
- # Customize the kdmrc configuration
- sed -e "s:^.*SessionsDirs=.*$:#&\nSessionsDirs=${EPREFIX}/usr/share/xsessions:" \
- -e "s:#ServerTimeout=15:ServerTimeout=30:" \
+ # Customize the kdmrc configuration:
+ # - SessionDirs set to /usr/share/xsessions
+ # - increase server timeout to 30s
+ # - TerminateServer=true to workaround X server regen bug, bug 278473
+ # - DataDir set to /var/lib/kdm-${SLOT}
+ # - FaceDir set to /var/lib/kdm-${SLOT}/faces
+ sed -e "s|^.*SessionsDirs=.*$|#&\nSessionsDirs=${EPREFIX}/usr/share/xsessions|" \
+ -e "/#ServerTimeout=/s/^.*$/ServerTimeout=30/" \
+ -e "/#TerminateServer=/s/^.*$/TerminateServer=true/" \
+ -e "s|^.*DataDir=.*$|#&\nDataDir=${EPREFIX}${KDM_HOME}|" \
+ -e "s|^.*FaceDir=.*$|#&\nFaceDir=${EPREFIX}${KDM_HOME}/faces|" \
-i "${ED}"/${KDEDIR}/share/config/kdm/kdmrc \
|| die "Failed to set ServerTimeout and SessionsDirs correctly in kdmrc."
# Don't install empty dir
rmdir "${ED}${KDEDIR}"/share/config/kdm/sessions
+
+ # Set up kdm work directory
+ keepdir "${KDM_HOME}"
}
pkg_postinst() {