diff options
author | root <root@rshg054.dnsready.net> | 2012-11-01 01:47:44 -0700 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-11-01 01:47:44 -0700 |
commit | 83a318800db22408628e60c9e1730578efcfee37 (patch) | |
tree | 9f1c330c5019dd940e41c44a7c1db13d337058a6 /extra/kdebase-workspace | |
parent | 5827948456201df72a1bd73e87977c569129fb27 (diff) |
Thu Nov 1 01:47:04 PDT 2012
Diffstat (limited to 'extra/kdebase-workspace')
-rw-r--r-- | extra/kdebase-workspace/PKGBUILD | 17 | ||||
-rw-r--r-- | extra/kdebase-workspace/fix-mesa9.patch | 60 | ||||
-rw-r--r-- | extra/kdebase-workspace/kde-np.pam | 2 | ||||
-rw-r--r-- | extra/kdebase-workspace/kdebase-workspace.install | 6 | ||||
-rw-r--r-- | extra/kdebase-workspace/logind-support2.patch | 124 |
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); |