summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Huber <johu@gentoo.org>2014-07-24 18:20:33 +0000
committerJohannes Huber <johu@gentoo.org>2014-07-24 18:20:33 +0000
commit42970b02be8846bfb1975284241235e392d0a5d2 (patch)
tree14587f287e33ac0540c281eb53ea39d31ef588f3 /kde-base
parentUse virtual/libgudev with := for automatic rebuild instead of virtual/udev. (diff)
downloadgentoo-2-42970b02be8846bfb1975284241235e392d0a5d2.tar.gz
gentoo-2-42970b02be8846bfb1975284241235e392d0a5d2.tar.bz2
gentoo-2-42970b02be8846bfb1975284241235e392d0a5d2.zip
Revision bump adds backported Plasma 5 upstream patch by Michael Palimaka <kensington@gentoo.org>, which uses sys-apps/accountsservice at runtime, fixes bug #380899.
(Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key F3CFD2BD)
Diffstat (limited to 'kde-base')
-rw-r--r--kde-base/kdepasswd/ChangeLog11
-rw-r--r--kde-base/kdepasswd/files/kdepasswd-4.13.3-use-accountsservice.patch104
-rw-r--r--kde-base/kdepasswd/kdepasswd-4.13.3-r1.ebuild (renamed from kde-base/kdepasswd/kdepasswd-4.13.3.ebuild)5
3 files changed, 118 insertions, 2 deletions
diff --git a/kde-base/kdepasswd/ChangeLog b/kde-base/kdepasswd/ChangeLog
index abd1c1de6ff8..6ca74b7cce43 100644
--- a/kde-base/kdepasswd/ChangeLog
+++ b/kde-base/kdepasswd/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for kde-base/kdepasswd
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/kde-base/kdepasswd/ChangeLog,v 1.326 2014/07/23 16:53:06 johu Exp $
+# $Header: /var/cvsroot/gentoo-x86/kde-base/kdepasswd/ChangeLog,v 1.327 2014/07/24 18:20:33 johu Exp $
+
+*kdepasswd-4.13.3-r1 (24 Jul 2014)
+
+ 24 Jul 2014; Johannes Huber <johu@gentoo.org>
+ +files/kdepasswd-4.13.3-use-accountsservice.patch,
+ +kdepasswd-4.13.3-r1.ebuild, -kdepasswd-4.13.3.ebuild:
+ Revision bump adds backported Plasma 5 upstream patch by Michael Palimaka
+ <kensington@gentoo.org>, which uses sys-apps/accountsservice at runtime, fixes
+ bug #380899.
23 Jul 2014; Johannes Huber <johu@gentoo.org> -kdepasswd-4.13.2.ebuild:
Remove KDE SC 4.13.2
diff --git a/kde-base/kdepasswd/files/kdepasswd-4.13.3-use-accountsservice.patch b/kde-base/kdepasswd/files/kdepasswd-4.13.3-use-accountsservice.patch
new file mode 100644
index 000000000000..5a89d4d809db
--- /dev/null
+++ b/kde-base/kdepasswd/files/kdepasswd-4.13.3-use-accountsservice.patch
@@ -0,0 +1,104 @@
+Use accountsservice instead of calling chfn directly.
+
+This avoids a potential error or crash when changing user account information.
+Backported 77275f50241eb2f4e38051152074c379fa96fe84 and
+23bbe79912ec21ded8fdfc595935f48a6d2298ea from Plasma 5.
+
+Gentoo bug #380899
+KDE bug #156396
+
+--- a/kdepasswd/kcm/CMakeLists.txt
++++ b/kdepasswd/kcm/CMakeLists.txt
+@@ -1,7 +1,6 @@
+ add_subdirectory(pics)
+
+ set(kcm_useraccount_PART_SRCS
+- chfnprocess.cpp
+ main.cpp
+ chfacedlg.cpp)
+
+--- a/kdepasswd/kcm/main.cpp
++++ b/kdepasswd/kcm/main.cpp
+@@ -49,7 +49,6 @@
+
+ #include "settings.h"
+ #include "pass.h"
+-#include "chfnprocess.h"
+ #include <KPluginFactory>
+ #include <KPluginLoader>
+
+@@ -181,36 +180,27 @@ void KCMUserAccount::save()
+ /* Save realname to /etc/passwd */
+ if ( _mw->leRealname->isModified() )
+ {
+- KPasswordDialog dlg( _mw );
+- dlg.setPrompt(i18n("Please enter your password in order to save your settings:"));
+- if ( !dlg.exec() )
+- {
+- KMessageBox::sorry( this, i18n("You must enter "
+- "your password in order to change your information."));
+- return;
+- }
+-
+- ChfnProcess *proc = new ChfnProcess();
+- int ret = proc->exec(dlg.password().toLocal8Bit() , _mw->leRealname->text().toLocal8Bit() );
+- if ( ret )
+- {
+- if ( ret == ChfnProcess::PasswordError )
+- KMessageBox::sorry( this, i18n("You must enter a correct password."));
+-
+- else
+- {
+- KMessageBox::sorry( this, i18n("An error occurred and your name has "
+- "probably not been changed. The error "
+- "message was:\n%1", QString::fromLocal8Bit(proc->error())));
+- kDebug() << "ChfnProcess->exec() failed. Error code: " << ret
+- << "\nOutput:" << proc->error() << endl;
+- }
+-
+- delete proc;
+- return;
+- }
+-
+- delete proc;
++ // save icon file also with accountsservice
++ QDBusInterface ainterface("org.freedesktop.Accounts",
++ "/org/freedesktop/Accounts",
++ "org.freedesktop.Accounts",
++ QDBusConnection::systemBus());
++ QDBusReply<QDBusObjectPath> reply = ainterface.call("FindUserById", qlonglong(_ku->uid()));
++ if (reply.isValid() && !reply.error().isValid()) {
++ QDBusInterface uinterface("org.freedesktop.Accounts",
++ reply.value().path(),
++ "org.freedesktop.Accounts.User",
++ QDBusConnection::systemBus(),
++ this);
++
++ QString name = _mw->leRealname->text();
++ QDBusReply<void> ureply = uinterface.call("SetRealName", name);
++ if (!ureply.isValid() || ureply.error().isValid()) {
++ kDebug() << ureply.error().message();
++ KMessageBox::error( this, i18n("There was an error setting the name: %1" ,
++ name) );
++ }
++ }
+ }
+ #endif
+
+@@ -243,10 +233,12 @@ void KCMUserAccount::save()
+ }
+ }
+ else { // delete existing image
+- if ( !KIO::NetAccess::del(KCFGUserAccount::faceFile(), this) ) {
+- KMessageBox::error( this, i18n("There was an error deleting the image: %1" ,
+- KCFGUserAccount::faceFile()) );
+- }
++ if (QFile::exists(KCFGUserAccount::faceFile())) {
++ if ( !KIO::NetAccess::del(KCFGUserAccount::faceFile(), this) ) {
++ KMessageBox::error( this, i18n("There was an error deleting the image: %1" ,
++ KCFGUserAccount::faceFile()) );
++ }
++ }
+ }
+
+ /* Save KDE's homebrewn settings */ \ No newline at end of file
diff --git a/kde-base/kdepasswd/kdepasswd-4.13.3.ebuild b/kde-base/kdepasswd/kdepasswd-4.13.3-r1.ebuild
index 6172dafd7fa6..997f46a6bc51 100644
--- a/kde-base/kdepasswd/kdepasswd-4.13.3.ebuild
+++ b/kde-base/kdepasswd/kdepasswd-4.13.3-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/kde-base/kdepasswd/kdepasswd-4.13.3.ebuild,v 1.1 2014/07/16 17:40:10 johu Exp $
+# $Header: /var/cvsroot/gentoo-x86/kde-base/kdepasswd/kdepasswd-4.13.3-r1.ebuild,v 1.1 2014/07/24 18:20:33 johu Exp $
EAPI=5
@@ -17,4 +17,7 @@ DEPEND="
"
RDEPEND="${DEPEND}
$(add_kdebase_dep kdesu)
+ sys-apps/accountsservice
"
+
+PATCHES=( "${FILESDIR}/${P}-use-accountsservice.patch" )