author | Felix Yan
<felixonmars@archlinux.org> 2015-09-12 04:19:13 UTC |
committer | Felix Yan
<felixonmars@archlinux.org> 2015-09-12 04:19:13 UTC |
parent | 3a6cc2cac3528e12fd05c9c224f911160c2bf8a0 |
PKGBUILD | +4 | -7 |
no-migration-wizard.patch | +0 | -144 |
diff --git a/PKGBUILD b/PKGBUILD index 4adb0f3..451b0bd 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -2,8 +2,8 @@ # Contributor: Andrea Scarpino <andrea@archlinux.org> pkgname=kwallet -pkgver=5.13.0 -pkgrel=4 +pkgver=5.14.0 +pkgrel=1 pkgdesc='Secure and unified container for user passwords' arch=('i686' 'x86_64') url='https://projects.kde.org/projects/frameworks/kwallet' @@ -12,16 +12,13 @@ depends=('knotifications' 'kiconthemes' 'kservice' 'gpgmepp') makedepends=('extra-cmake-modules' 'python' 'kdoctools' 'boost') optdepends=('kwalletmanager: Configuration GUI') groups=('kf5') -source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz" 'no-migration-wizard.patch') -md5sums=('df67412fef04c891c98facf870ec370f' - '8d5ad74a46e345d2bd5c537353d48298') +source=("http://download.kde.org/stable/frameworks/${pkgver%.*}/${pkgname}-${pkgver}.tar.xz") +md5sums=('9c6ddf667c3a4dfca3f617ec22f3b6bc') prepare() { mkdir -p build cd $pkgname-$pkgver -# Don't show migration wizard - patch -p1 -i ../no-migration-wizard.patch } build() { diff --git a/no-migration-wizard.patch b/no-migration-wizard.patch deleted file mode 100644 index 5b85a8e..0000000 --- a/no-migration-wizard.patch +++ /dev/null @@ -1,144 +0,0 @@ -From: Valentin Rusu <kde@rusu.info> -Date: Fri, 07 Aug 2015 16:59:04 +0000 -Subject: Stop showing the migration wizard by default -X-Git-Url: http://quickgit.kde.org/?p=kwallet.git&a=commitdiff&h=127efedd1668b546d0ac8c83655a2056d0439f29 ---- -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. ---- - - ---- a/src/runtime/kwalletd/main.cpp -+++ b/src/runtime/kwalletd/main.cpp -@@ -186,7 +186,7 @@ - aboutdata.addAuthor(i18n("Thiago Maceira"), i18n("D-Bus Interface"), "thiago@kde.org"); - - 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 - ---- 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" -- --MigrationAgent::MigrationAgent(KWalletD* kd) : -+#define ENTRY_SHOW_MIGRATION_WIZARD "showMigrationWizard" -+ -+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 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 @@ - 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 @@ - 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; - ---- a/src/runtime/kwalletd/migrationagent.h -+++ b/src/runtime/kwalletd/migrationagent.h -@@ -32,10 +32,10 @@ - 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 @@ - private: - KWalletD *_kf5_daemon; - org::kde::KWallet *_kde4_daemon; -+ const char *_pam_hash; - }; - - #endif // _MIGRATIONAGENT_H_ - ---- a/src/runtime/kwalletd/migrationwizard.cpp -+++ b/src/runtime/kwalletd/migrationwizard.cpp -@@ -58,7 +58,7 @@ - - virtual void initializePage() { - connect(_agent, SIGNAL(progressMessage(QString)), _ui._report, SLOT(append(QString))); -- _migrationCompleted = _agent->performMigration(winId()); -+ _migrationCompleted = _agent->performMigration(winId(), false); - emit completeChanged(); - } - -