forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
kde-frameworks/kwallet: backport patch from upstream to avoid unwante…
…d migration dialogues. Package-Manager: portage-2.2.20.1
- Loading branch information
1 parent
1f15d3d
commit 00bed7e
Showing
2 changed files
with
195 additions
and
0 deletions.
There are no files selected for viewing
152 changes: 152 additions & 0 deletions
152
kde-frameworks/kwallet/files/kwallet-5.13.0-migration.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,152 @@ | ||
From 127efedd1668b546d0ac8c83655a2056d0439f29 Mon Sep 17 00:00:00 2001 | ||
From: Valentin Rusu <[email protected]> | ||
Date: Fri, 7 Aug 2015 18:59:04 +0200 | ||
Subject: [PATCH] Stop showing the migration wizard by default | ||
|
||
BUG:351056 | ||
|
||
If the migration wizard is needed, then add this to kwalletrc | ||
[Migration] | ||
showMigrationWizard=true | ||
|
||
On systems having kwallet-pam the migration agent would also merge all the old | ||
wallets into the default LocalWallet, as a side effect. This would avoid | ||
wallet creation prompts, though. | ||
--- | ||
src/runtime/kwalletd/main.cpp | 2 +- | ||
src/runtime/kwalletd/migrationagent.cpp | 42 ++++++++++++++++++++++++++------ | ||
src/runtime/kwalletd/migrationagent.h | 5 ++-- | ||
src/runtime/kwalletd/migrationwizard.cpp | 2 +- | ||
4 files changed, 39 insertions(+), 12 deletions(-) | ||
|
||
diff --git a/src/runtime/kwalletd/main.cpp b/src/runtime/kwalletd/main.cpp | ||
index c0fecaa..62fcd3a 100644 | ||
--- a/src/runtime/kwalletd/main.cpp | ||
+++ b/src/runtime/kwalletd/main.cpp | ||
@@ -186,7 +186,7 @@ int main(int argc, char **argv) | ||
aboutdata.addAuthor(i18n("Thiago Maceira"), i18n("D-Bus Interface"), "[email protected]"); | ||
|
||
KWalletD walletd; | ||
- MigrationAgent migrationAgent(&walletd); | ||
+ MigrationAgent migrationAgent(&walletd, hash); | ||
KDBusService dbusUniqueInstance(KDBusService::Unique | KDBusService::NoExitOnFailure); | ||
|
||
// NOTE: the command should be parsed only after KDBusService instantiation | ||
diff --git a/src/runtime/kwalletd/migrationagent.cpp b/src/runtime/kwalletd/migrationagent.cpp | ||
index 6eaeb12..192a871 100644 | ||
--- a/src/runtime/kwalletd/migrationagent.cpp | ||
+++ b/src/runtime/kwalletd/migrationagent.cpp | ||
@@ -34,10 +34,12 @@ | ||
|
||
#define SERVICE_KWALLETD4 "org.kde.kwalletd" | ||
#define ENTRY_ALREADY_MIGRATED "alreadyMigrated" | ||
+#define ENTRY_SHOW_MIGRATION_WIZARD "showMigrationWizard" | ||
|
||
-MigrationAgent::MigrationAgent(KWalletD* kd) : | ||
+MigrationAgent::MigrationAgent(KWalletD* kd, const char *hash) : | ||
_kf5_daemon(kd) | ||
, _kde4_daemon(0) | ||
+ , _pam_hash(hash) | ||
{ | ||
QTimer::singleShot(100, this, SLOT(migrateWallets())); | ||
} | ||
@@ -118,11 +120,27 @@ bool MigrationAgent::isMigrationWizardOk() | ||
{ | ||
bool ok = false; | ||
|
||
- MigrationWizard *wizard = new MigrationWizard(this); | ||
- int result = wizard->exec(); | ||
- if (QDialog::Accepted == result) { | ||
- // the user either migrated the wallets, or choose not to be prompted again | ||
- ok = true; | ||
+ // The migration wizard would no longer been shown by default. | ||
+ // see BUG 351056 | ||
+ // NOTE if user wants to show the migration wizard, then he should add the | ||
+ // following setting to the kwalletrc: | ||
+ // [Migration] | ||
+ // showMigrationWizard=true | ||
+ KConfig kwalletrc("kwalletrc"); | ||
+ KConfigGroup cfg(&kwalletrc, "Migration"); | ||
+ bool showMigrationWizard = cfg.readEntry<bool>(ENTRY_SHOW_MIGRATION_WIZARD, false); | ||
+ | ||
+ if (showMigrationWizard) { | ||
+ MigrationWizard *wizard = new MigrationWizard(this); | ||
+ int result = wizard->exec(); | ||
+ if (QDialog::Accepted == result) { | ||
+ // the user either migrated the wallets, or choose not to be prompted again | ||
+ ok = true; | ||
+ } | ||
+ } else { | ||
+ if (performMigration(0, true)) { | ||
+ qDebug() << "Migration failed."; | ||
+ } | ||
} | ||
|
||
return ok; | ||
@@ -162,7 +180,7 @@ bool MigrationAgent::isEmptyOldWallet() const { | ||
return wallets.length() == 0; | ||
} | ||
|
||
-bool MigrationAgent::performMigration(WId wid) | ||
+bool MigrationAgent::performMigration(WId wid, bool withoutWizard) | ||
{ | ||
auto appId = i18n("KDE Wallet Migration Agent"); | ||
try { | ||
@@ -174,7 +192,15 @@ bool MigrationAgent::performMigration(WId wid) | ||
emit progressMessage(i18n("Migrating wallet: %1", wallet)); | ||
emit progressMessage(i18n("* Creating KF5 wallet: %1", wallet)); | ||
|
||
- int handle5 = _kf5_daemon->internalOpen(appId, wallet, false, 0, true, QString()); | ||
+ int handle5 = -1; | ||
+ if (withoutWizard && (_pam_hash != nullptr)) { | ||
+ // see BUG 351056 for why this hacky code | ||
+ // If the user has several wallets, all the values will be | ||
+ // merged into the single LocalWallet | ||
+ handle5 = _kf5_daemon->pamOpen(KWallet::Wallet::LocalWallet(), _pam_hash, 0); | ||
+ } else { | ||
+ handle5 = _kf5_daemon->internalOpen(appId, wallet, false, 0, true, QString()); | ||
+ } | ||
if (handle5 <0) { | ||
emit progressMessage(i18n("ERROR when attempting new wallet creation. Aborting.")); | ||
return false; | ||
diff --git a/src/runtime/kwalletd/migrationagent.h b/src/runtime/kwalletd/migrationagent.h | ||
index 55a251d..c52509e 100644 | ||
--- a/src/runtime/kwalletd/migrationagent.h | ||
+++ b/src/runtime/kwalletd/migrationagent.h | ||
@@ -32,10 +32,10 @@ class KWalletD; | ||
class MigrationAgent : public QObject { | ||
Q_OBJECT | ||
public: | ||
- MigrationAgent(KWalletD* kd); | ||
+ MigrationAgent(KWalletD* kd, const char* hash); | ||
|
||
bool isEmptyOldWallet() const; | ||
- bool performMigration(WId wid); | ||
+ bool performMigration(WId wid, bool withoutWizard); | ||
|
||
private Q_SLOTS: | ||
void migrateWallets(); | ||
@@ -52,6 +52,7 @@ Q_SIGNALS: | ||
private: | ||
KWalletD *_kf5_daemon; | ||
org::kde::KWallet *_kde4_daemon; | ||
+ const char *_pam_hash; | ||
}; | ||
|
||
#endif // _MIGRATIONAGENT_H_ | ||
diff --git a/src/runtime/kwalletd/migrationwizard.cpp b/src/runtime/kwalletd/migrationwizard.cpp | ||
index b7d3f70..cdd2a92 100644 | ||
--- a/src/runtime/kwalletd/migrationwizard.cpp | ||
+++ b/src/runtime/kwalletd/migrationwizard.cpp | ||
@@ -58,7 +58,7 @@ public: | ||
|
||
virtual void initializePage() { | ||
connect(_agent, SIGNAL(progressMessage(QString)), _ui._report, SLOT(append(QString))); | ||
- _migrationCompleted = _agent->performMigration(winId()); | ||
+ _migrationCompleted = _agent->performMigration(winId(), false); | ||
emit completeChanged(); | ||
} | ||
|
||
-- | ||
2.4.6 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
# Copyright 1999-2015 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
# $Id$ | ||
|
||
EAPI=5 | ||
|
||
inherit kde5 | ||
|
||
DESCRIPTION="Framework providing desktop-wide storage for passwords" | ||
LICENSE="LGPL-2+" | ||
KEYWORDS="~amd64 ~x86" | ||
IUSE="gpg" | ||
|
||
RDEPEND=" | ||
$(add_frameworks_dep kconfig) | ||
$(add_frameworks_dep kcoreaddons) | ||
$(add_frameworks_dep kdbusaddons) | ||
$(add_frameworks_dep ki18n) | ||
$(add_frameworks_dep kiconthemes) | ||
$(add_frameworks_dep knotifications) | ||
$(add_frameworks_dep kservice) | ||
$(add_frameworks_dep kwidgetsaddons) | ||
$(add_frameworks_dep kwindowsystem) | ||
dev-libs/libgcrypt:0= | ||
dev-qt/qtdbus:5 | ||
dev-qt/qtgui:5 | ||
dev-qt/qtwidgets:5 | ||
gpg? ( | ||
$(add_kdeapps_dep gpgmepp) | ||
app-crypt/gpgme | ||
) | ||
" | ||
DEPEND="${RDEPEND}" | ||
|
||
PATCHES=( "${FILESDIR}/${P}-migration.patch" ) | ||
|
||
src_configure() { | ||
local mycmakeargs=( | ||
$(cmake-utils_use_find_package gpg Gpgme) | ||
$(cmake-utils_use_find_package gpg KF5Gpgmepp) | ||
) | ||
kde5_src_configure | ||
} |