diff --git a/.gitignore b/.gitignore index 3624f97..a34e8a6 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ /v1.2.2.tar.gz /v1.2.3.tar.gz /v1.3.2.tar.gz +/1.4.0-rc2.tar.gz +/v1.4.0.tar.gz diff --git a/0001-Fix-build-with-Qt6.patch b/0001-Fix-build-with-Qt6.patch new file mode 100644 index 0000000..868480e --- /dev/null +++ b/0001-Fix-build-with-Qt6.patch @@ -0,0 +1,26 @@ +From eed724f1725094d605aaa2dee762c66a4168d916 Mon Sep 17 00:00:00 2001 +From: Vasiliy Glazov +Date: Wed, 20 Sep 2023 15:47:33 +0300 +Subject: [PATCH 1/3] Fix build with Qt6. + +--- + src/executor.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/executor.cpp b/src/executor.cpp +index a4e91bb4..1da58e81 100644 +--- a/src/executor.cpp ++++ b/src/executor.cpp +@@ -4,6 +4,9 @@ + #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + #include + #endif ++#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) ++#include ++#endif + + #ifdef QT_DEBUG + #include "debughelper.h" +-- +2.47.0 + diff --git a/0002-Update-new-TLDs.patch b/0002-Update-new-TLDs.patch new file mode 100644 index 0000000..8063ebd --- /dev/null +++ b/0002-Update-new-TLDs.patch @@ -0,0 +1,26 @@ +From 1780fa7b1beab3bc5a062b215eb833e41484da44 Mon Sep 17 00:00:00 2001 +From: Chuyen Vo <73516+vdchuyen@users.noreply.github.com> +Date: Tue, 30 Apr 2024 12:31:17 +0700 +Subject: [PATCH 2/3] Update new TLDs + +There are so many new LTLDs with longer than 4 chars: https://en.wikipedia.org/wiki/List_of_Internet_top-level_domains +--- + src/keygendialog.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/keygendialog.cpp b/src/keygendialog.cpp +index ba1efdb0..cae73ff8 100644 +--- a/src/keygendialog.cpp ++++ b/src/keygendialog.cpp +@@ -145,7 +145,7 @@ void KeygenDialog::done(int r) { + // check email + static const QRegularExpression mailre( + QRegularExpression::anchoredPattern( +- R"(\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b)"), ++ R"(\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b)"), + QRegularExpression::CaseInsensitiveOption); + if (!mailre.match(ui->email->text()).hasMatch()) { + QMessageBox::critical( +-- +2.47.0 + diff --git a/0003-Fix-multiple-profiles-issue-for-Qt6.patch b/0003-Fix-multiple-profiles-issue-for-Qt6.patch new file mode 100644 index 0000000..98fe2aa --- /dev/null +++ b/0003-Fix-multiple-profiles-issue-for-Qt6.patch @@ -0,0 +1,45 @@ +From 50e895ad514d10e09f6502ce72f3b5581c53825c Mon Sep 17 00:00:00 2001 +From: John Doe +Date: Sat, 25 May 2024 01:23:33 +0800 +Subject: [PATCH 3/3] Fix multiple profiles issue for Qt6 + +--- + src/mainwindow.cpp | 4 ++++ + src/mainwindow.h | 4 ++++ + 2 files changed, 8 insertions(+) + +diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp +index b39d3147..66b87dc2 100644 +--- a/src/mainwindow.cpp ++++ b/src/mainwindow.cpp +@@ -787,7 +787,11 @@ void MainWindow::updateProfileBox() { + * correct "profile" + * @param name + */ ++#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + void MainWindow::on_profileBox_currentIndexChanged(QString name) { ++#else ++void MainWindow::on_profileBox_currentTextChanged(QString name) { ++#endif + if (m_qtPass->isFreshStart() || name == QtPassSettings::getProfile()) + return; + +diff --git a/src/mainwindow.h b/src/mainwindow.h +index 172e326f..b5325f61 100644 +--- a/src/mainwindow.h ++++ b/src/mainwindow.h +@@ -97,7 +97,11 @@ private slots: + void clearPanel(bool notify = true); + void on_lineEdit_textChanged(const QString &arg1); + void on_lineEdit_returnPressed(); ++#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) + void on_profileBox_currentIndexChanged(QString); ++#else ++ void on_profileBox_currentTextChanged(QString); ++#endif + void showContextMenu(const QPoint &pos); + void showBrowserContextMenu(const QPoint &pos); + void openFolder(); +-- +2.47.0 + diff --git a/0004-getRecipientListSplitByHash.patch b/0004-getRecipientListSplitByHash.patch new file mode 100644 index 0000000..050825f --- /dev/null +++ b/0004-getRecipientListSplitByHash.patch @@ -0,0 +1,25 @@ +From 1a1ebfdc2e1018b6d989e32b94f4bf4245dea36d Mon Sep 17 00:00:00 2001 +From: shemeshg +Date: Sun, 24 Sep 2023 03:42:12 +0300 +Subject: [PATCH] getRecipientListSplitByHash + +--- + src/pass.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/pass.cpp b/src/pass.cpp +index 44f6401d..568809a1 100644 +--- a/src/pass.cpp ++++ b/src/pass.cpp +@@ -322,7 +322,7 @@ QStringList Pass::getRecipientList(QString for_file) { + QStringList recipients; + while (!gpgId.atEnd()) { + QString recipient(gpgId.readLine()); +- recipient = recipient.trimmed(); ++ recipient = recipient.split("#")[0].trimmed(); + if (!recipient.isEmpty()) + recipients += recipient; + } +-- +2.47.0 + diff --git a/0005-fix-add-missing-QDirIterator-include.patch b/0005-fix-add-missing-QDirIterator-include.patch new file mode 100644 index 0000000..b6ae0c9 --- /dev/null +++ b/0005-fix-add-missing-QDirIterator-include.patch @@ -0,0 +1,26 @@ +From c3d04090260edd77e56c0602f264d923b236c42f Mon Sep 17 00:00:00 2001 +From: Arthur Bols +Date: Tue, 5 Nov 2024 17:20:56 +0100 +Subject: [PATCH] fix: add missing QDirIterator include + +Added missing include for QDirIterator in mainwindow.cpp to resolve compilation +errors introduced with Qt 6.8. +--- + src/mainwindow.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp +index 66b87dc2..691b8593 100644 +--- a/src/mainwindow.cpp ++++ b/src/mainwindow.cpp +@@ -19,6 +19,7 @@ + #include + #include + #include ++#include + #include + #include + #include +-- +2.47.0 + diff --git a/qtpass.spec b/qtpass.spec index 0750f1e..56a9051 100644 --- a/qtpass.spec +++ b/qtpass.spec @@ -1,5 +1,5 @@ Name: qtpass -Version: 1.3.2 +Version: 1.4.0 Release: %autorelease Summary: Cross-platform GUI for pass @@ -9,6 +9,16 @@ Source0: https://github.com/IJHack/qtpass/archive/v%{version}.tar.gz # Wrapper script for GNOME on Wayland Source1: qtpass.sh.in +# https://github.com/IJHack/QtPass/pull/656 +Patch1: 0001-Fix-build-with-Qt6.patch +# https://github.com/IJHack/QtPass/pull/680 +Patch2: 0002-Update-new-TLDs.patch +# https://github.com/IJHack/QtPass/pull/681 +Patch3: 0003-Fix-multiple-profiles-issue-for-Qt6.patch +# https://github.com/IJHack/QtPass/pull/658 +Patch4: 0004-getRecipientListSplitByHash.patch +# https://github.com/IJHack/QtPass/pull/690 +Patch5: 0005-fix-add-missing-QDirIterator-include.patch # required tools BuildRequires: make @@ -17,15 +27,14 @@ BuildRequires: gcc-c++ BuildRequires: git BuildRequires: sed # required libraries (QT) -BuildRequires: qt5-qtbase-devel -BuildRequires: qt5-linguist -BuildRequires: pkgconfig(Qt5Svg) +BuildRequires: qt6-qtbase-devel +BuildRequires: qt6-linguist # install/check desktop files BuildRequires: desktop-file-utils # for ownership of hicolor directories Requires: hicolor-icon-theme # for icons to appear without freedesktop -Requires: qt5-qtsvg +Requires: qt6-qtsvg Requires: pass Recommends: git @@ -36,11 +45,11 @@ Recommends: pwgen QtPass is a cross-platform GUI for pass, the standard Unix password manager. %prep -%autosetup -S git -n QtPass-%{version} - +%autosetup -p1 -n QtPass-%{version} +sed -i "s|#include |#include \n#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)\n#include \n#endif|" src/executor.cpp %build -%qmake_qt5 PREFIX=%{_prefix} +%qmake_qt6 PREFIX=%{_prefix} %make_build diff --git a/sources b/sources index 32ed040..56c68a4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (v1.3.2.tar.gz) = 9026f74f6ff75fcef2f6a0862484a2a1eaed1370edd0659e8b4d20039affe846e0da3a0a26a804563813bc678638ab67fa516441208e70c7e9de9b2eda876a10 +SHA512 (v1.4.0.tar.gz) = 47c1284c10e0d8a3bf63c049fc29d785d1a53bef6f183bbe22efebf466371dd454a6e43c944739f487d609f3cde188701ba538e9cb8e2c7e5530f8fa6f992625