summaryrefslogtreecommitdiff
path: root/extra/kdebase-workspace
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-11-01 01:47:44 -0700
committerroot <root@rshg054.dnsready.net>2012-11-01 01:47:44 -0700
commit83a318800db22408628e60c9e1730578efcfee37 (patch)
tree9f1c330c5019dd940e41c44a7c1db13d337058a6 /extra/kdebase-workspace
parent5827948456201df72a1bd73e87977c569129fb27 (diff)
Thu Nov 1 01:47:04 PDT 2012
Diffstat (limited to 'extra/kdebase-workspace')
-rw-r--r--extra/kdebase-workspace/PKGBUILD17
-rw-r--r--extra/kdebase-workspace/fix-mesa9.patch60
-rw-r--r--extra/kdebase-workspace/kde-np.pam2
-rw-r--r--extra/kdebase-workspace/kdebase-workspace.install6
-rw-r--r--extra/kdebase-workspace/logind-support2.patch124
5 files changed, 203 insertions, 6 deletions
diff --git a/extra/kdebase-workspace/PKGBUILD b/extra/kdebase-workspace/PKGBUILD
index ed6d4d6ad..bc329f0e5 100644
--- a/extra/kdebase-workspace/PKGBUILD
+++ b/extra/kdebase-workspace/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 169946 2012-10-30 22:46:25Z heftig $
+# $Id: PKGBUILD 170060 2012-10-31 10:38:11Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgname=kdebase-workspace
_pkgname=kde-workspace
pkgver=4.9.2
-pkgrel=5
+pkgrel=6
pkgdesc="Provides the interface and basic tools for the KDE workspace"
arch=('i686' 'x86_64')
url='https://projects.kde.org/projects/kde/kde-workspace'
@@ -26,18 +26,22 @@ backup=('usr/share/config/kdm/kdmrc')
source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.xz"
'kdm' 'kde.pam' 'kde-np.pam' 'kscreensaver.pam' 'kdm.service' 'kdm.logrotate'
'etc-scripts.patch' 'terminate-server.patch' 'kdm-xinitrd.patch'
- 'logind-support.patch')
+ 'logind-support.patch'
+ 'logind-support2.patch'
+ 'fix-mesa9.patch')
sha1sums=('091bec159d85db2a9a6d6b1b43a53183c23de488'
'5db3a245201bd4a50e65aa2ef583cf5490e4f646'
'660eae40a707d2711d8d7f32a93214865506b795'
- 'b7980f2e199963caf8e92b499042d244ece2fca0'
+ '6aeecc9e0e221f0515c6bf544f9a3c11cb6961fe'
'106635aa1aae51d6f0668b1853f6c49a4fe9d3d8'
'b6f8e8692737b11eec1f8022ce74b5b23e247b1b'
'bbe55f2000217474ce7246f12ee437ceaaf7e9ae'
'c079ebd157c836ba996190f0d2bcea1a7828d02c'
'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee'
'd509dac592bd8b310df27991b208c95b6d907514'
- 'ccde71c42e19feaf40d3bd76e7396a0cb6df012f')
+ 'ccde71c42e19feaf40d3bd76e7396a0cb6df012f'
+ '8f27ebd4bcc2f833a73d453837f4522b2be0aa1f'
+ 'c57583555bf8acd213295316512b92b6dc07703e')
build() {
cd ${_pkgname}-${pkgver}
@@ -51,6 +55,9 @@ build() {
patch -p0 -i "${srcdir}"/terminate-server.patch
# KDEBUG#307412 (fixed upstream)
patch -p1 -i "${srcdir}"/logind-support.patch
+ patch -p1 -i "${srcdir}"/logind-support2.patch
+ # KDEBUG#308385 (fixed upstream)
+ patch -p1 -i "${srcdir}"/fix-mesa9.patch
cd ../
diff --git a/extra/kdebase-workspace/fix-mesa9.patch b/extra/kdebase-workspace/fix-mesa9.patch
new file mode 100644
index 000000000..4c5fca408
--- /dev/null
+++ b/extra/kdebase-workspace/fix-mesa9.patch
@@ -0,0 +1,60 @@
+commit 6cf057777555a5d0c834de3a0165a62916cf3b40
+Author: Fredrik Höglund <fredrik@kde.org>
+Date: Tue Oct 30 18:20:00 2012 +0100
+
+ kwin/glx: Avoid MSAA configs in initBufferConfigs()
+
+ It appears that we're accidentally choosing an MSAA config with the
+ Intel driver in Mesa 9.0. So change the algorithm to take the values
+ of GLX_SAMPLES and GLX_SAMPLE_BUFFERS into account.
+
+ Found by Kenneth Graunke.
+
+diff --git a/kwin/scene_opengl_glx.cpp b/kwin/scene_opengl_glx.cpp
+index 1fe2f18..cf7933b 100644
+--- a/kwin/scene_opengl_glx.cpp
++++ b/kwin/scene_opengl_glx.cpp
+@@ -270,12 +270,15 @@ bool SceneOpenGL::initBufferConfigs()
+ fbcbuffer_nondb = NULL;
+
+ for (int i = 0; i < 2; i++) {
+- int back, stencil, depth, caveat, alpha;
++ int back, stencil, depth, caveat, msaa_buffers, msaa_samples, alpha;
+ back = i > 0 ? INT_MAX : 1;
+ stencil = INT_MAX;
+ depth = INT_MAX;
+ caveat = INT_MAX;
++ msaa_buffers = INT_MAX;
++ msaa_samples = INT_MAX;
+ alpha = 0;
++
+ for (int j = 0; j < cnt; j++) {
+ XVisualInfo *vi;
+ int visual_depth;
+@@ -322,10 +325,26 @@ bool SceneOpenGL::initBufferConfigs()
+ GLX_CONFIG_CAVEAT, &caveat_value);
+ if (caveat_value > caveat)
+ continue;
++
++ int msaa_buffers_value;
++ glXGetFBConfigAttrib(display(), fbconfigs[j], GLX_SAMPLE_BUFFERS,
++ &msaa_buffers_value);
++ if (msaa_buffers_value > msaa_buffers)
++ continue;
++
++ int msaa_samples_value;
++ glXGetFBConfigAttrib(display(), fbconfigs[j], GLX_SAMPLES,
++ &msaa_samples_value);
++ if (msaa_samples_value > msaa_samples)
++ continue;
++
+ back = back_value;
+ stencil = stencil_value;
+ depth = depth_value;
+ caveat = caveat_value;
++ msaa_buffers = msaa_buffers_value;
++ msaa_samples = msaa_samples_value;
++
+ if (i > 0)
+ fbcbuffer_nondb = fbconfigs[ j ];
+ else
diff --git a/extra/kdebase-workspace/kde-np.pam b/extra/kdebase-workspace/kde-np.pam
index eccaa08f4..2a4a940c7 100644
--- a/extra/kdebase-workspace/kde-np.pam
+++ b/extra/kdebase-workspace/kde-np.pam
@@ -3,7 +3,7 @@ auth required pam_tally.so onerr=succeed file=/var/log/faillog
auth required pam_shells.so
auth requisite pam_nologin.so
auth required pam_env.so
-auth optional pam_permit.s
+auth optional pam_permit.so
account include system-login
diff --git a/extra/kdebase-workspace/kdebase-workspace.install b/extra/kdebase-workspace/kdebase-workspace.install
index f7d6d305b..c52c06417 100644
--- a/extra/kdebase-workspace/kdebase-workspace.install
+++ b/extra/kdebase-workspace/kdebase-workspace.install
@@ -4,6 +4,7 @@ post_install() {
chown -R 135:135 var/lib/kdm &>/dev/null
xdg-icon-resource forceupdate --theme hicolor &>/dev/null
update-desktop-database -q
+ genkdmconf --no-old --no-backup &>/dev/null
}
post_upgrade() {
@@ -12,6 +13,7 @@ post_upgrade() {
chown -R 135:135 var/lib/kdm &>/dev/null
xdg-icon-resource forceupdate --theme hicolor &> /dev/null
update-desktop-database -q
+ genkdmconf &>/dev/null
}
post_remove() {
@@ -22,4 +24,8 @@ post_remove() {
groupdel kdm
fi
xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+
+ if [ -d usr/share/apps/kdm/faces ]; then
+ rm -r usr/share/apps/kdm/faces
+ fi
}
diff --git a/extra/kdebase-workspace/logind-support2.patch b/extra/kdebase-workspace/logind-support2.patch
new file mode 100644
index 000000000..e36757f6a
--- /dev/null
+++ b/extra/kdebase-workspace/logind-support2.patch
@@ -0,0 +1,124 @@
+commit 80e9e6e48ff5b84962f3a8543ee06bcd4f122623
+Author: Lukáš Tinkl <lukas@kde.org>
+Date: Tue Oct 30 11:32:52 2012 +0100
+
+ move systemd inhibition initialization to a slot
+
+ and call it on resume. It looks like the filedescriptor
+ goes away when you suspend so we need to recreate it.
+
+ BUG: 307412
+
+diff --git a/powerdevil/daemon/powerdevilcore.cpp b/powerdevil/daemon/powerdevilcore.cpp
+index df79667..7f24cbb 100644
+--- a/powerdevil/daemon/powerdevilcore.cpp
++++ b/powerdevil/daemon/powerdevilcore.cpp
+@@ -127,8 +127,6 @@ void Core::onBackendReady()
+ this, SLOT(onAcAdapterStateChanged(PowerDevil::BackendInterface::AcAdapterState)));
+ connect(m_backend, SIGNAL(batteryRemainingTimeChanged(qulonglong)),
+ this, SLOT(onBatteryRemainingTimeChanged(qulonglong)));
+- connect(m_backend, SIGNAL(resumeFromSuspend()),
+- this, SLOT(onResumeFromSuspend()));
+ connect(KIdleTime::instance(), SIGNAL(timeoutReached(int,int)),
+ this, SLOT(onKIdleTimeoutReached(int,int)));
+ connect(KIdleTime::instance(), SIGNAL(resumingFromIdle()),
+@@ -139,6 +137,9 @@ void Core::onBackendReady()
+ // Set up the policy agent
+ PowerDevil::PolicyAgent::instance()->init();
+
++ connect(m_backend, SIGNAL(resumeFromSuspend()),
++ this, SLOT(onResumeFromSuspend()));
++
+ // Initialize the action pool, which will also load the needed startup actions.
+ PowerDevil::ActionPool::instance()->init(this);
+
+@@ -601,6 +602,7 @@ void Core::onResumeFromSuspend()
+ "/ScreenSaver",
+ QDBusConnection::sessionBus());
+ iface.SimulateUserActivity();
++ PowerDevil::PolicyAgent::instance()->setupSystemdInhibition();
+
+ emit resumingFromSuspend();
+ }
+diff --git a/powerdevil/daemon/powerdevilpolicyagent.cpp b/powerdevil/daemon/powerdevilpolicyagent.cpp
+index 70588db..0777846 100644
+--- a/powerdevil/daemon/powerdevilpolicyagent.cpp
++++ b/powerdevil/daemon/powerdevilpolicyagent.cpp
+@@ -88,6 +88,7 @@ PolicyAgent *PolicyAgent::instance()
+ PolicyAgent::PolicyAgent(QObject* parent)
+ : QObject(parent)
+ , m_sdAvailable(false)
++ , m_systemdInhibitFd(-1)
+ , m_ckAvailable(false)
+ , m_sessionIsBeingInterrupted(false)
+ , m_lastCookie(0)
+@@ -223,23 +224,7 @@ void PolicyAgent::onSessionHandlerRegistered(const QString & serviceName)
+
+ onActiveSessionChanged(m_activeSessionPath);
+
+- // inhibit systemd handling of power/sleep/lid buttons
+- // http://www.freedesktop.org/wiki/Software/systemd/inhibit
+- kDebug() << "fd passing available:" << bool(managerIface.connection().connectionCapabilities() & QDBusConnection::UnixFileDescriptorPassing);
+-
+- QVariantList args;
+- args << "handle-power-key:handle-suspend-key:handle-hibernate-key:handle-lid-switch"; // what
+- args << "PowerDevil"; // who
+- args << "KDE handles power events"; // why
+- args << "block"; // mode
+- QDBusPendingReply<QDBusUnixFileDescriptor> desc = managerIface.asyncCallWithArgumentList("Inhibit", args);
+- desc.waitForFinished();
+- if (desc.isValid()) {
+- m_systemdInhibitFd = desc.value();
+- kDebug() << "systemd powersave events handling inhibited, descriptor:" << m_systemdInhibitFd.fileDescriptor();
+- }
+- else
+- kWarning() << "failed to inhibit systemd powersave handling";
++ setupSystemdInhibition();
+
+ kDebug() << "systemd support initialized";
+ } else if (serviceName == CONSOLEKIT_SERVICE) {
+@@ -552,6 +537,31 @@ void PolicyAgent::releaseAllInhibitions()
+ }
+ }
+
++void PolicyAgent::setupSystemdInhibition()
++{
++ if (m_systemdInhibitFd.fileDescriptor() != -1)
++ return;
++
++ // inhibit systemd handling of power/sleep/lid buttons
++ // http://www.freedesktop.org/wiki/Software/systemd/inhibit
++ QDBusInterface managerIface(SYSTEMD_LOGIN1_SERVICE, SYSTEMD_LOGIN1_PATH, SYSTEMD_LOGIN1_MANAGER_IFACE, QDBusConnection::systemBus());
++ kDebug() << "fd passing available:" << bool(managerIface.connection().connectionCapabilities() & QDBusConnection::UnixFileDescriptorPassing);
++
++ QVariantList args;
++ args << "handle-power-key:handle-suspend-key:handle-hibernate-key:handle-lid-switch"; // what
++ args << "PowerDevil"; // who
++ args << "KDE handles power events"; // why
++ args << "block"; // mode
++ QDBusPendingReply<QDBusUnixFileDescriptor> desc = managerIface.asyncCallWithArgumentList("Inhibit", args);
++ desc.waitForFinished();
++ if (desc.isValid()) {
++ m_systemdInhibitFd = desc.value();
++ kDebug() << "systemd powersave events handling inhibited, descriptor:" << m_systemdInhibitFd.fileDescriptor();
++ }
++ else
++ kWarning() << "failed to inhibit systemd powersave handling";
++}
++
+ }
+
+ #include "powerdevilpolicyagent.moc"
+diff --git a/powerdevil/daemon/powerdevilpolicyagent.h b/powerdevil/daemon/powerdevilpolicyagent.h
+index a046497..f1e8c03 100644
+--- a/powerdevil/daemon/powerdevilpolicyagent.h
++++ b/powerdevil/daemon/powerdevilpolicyagent.h
+@@ -74,6 +74,8 @@ public:
+
+ RequiredPolicies unavailablePolicies();
+
++ void setupSystemdInhibition();
++
+ public Q_SLOTS:
+ // Exported slots
+ uint AddInhibition(uint types, const QString &appName, const QString &reason);