diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a34e8a6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +/v1.1.1.tar.gz +/v1.1.3.tar.gz +/v1.1.4.tar.gz +/v1.1.6.tar.gz +/v1.2.0.tar.gz +/v1.2.1.tar.gz +/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/changelog b/changelog new file mode 100644 index 0000000..d61b0c5 --- /dev/null +++ b/changelog @@ -0,0 +1,102 @@ +* Sat Jul 23 2022 Fedora Release Engineering - 1.3.2-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Apr 20 2022 Arthur Bols - 1.3.2-9 +- Added wrapper script that fixes GNOME on Wayland issues. + +* Fri Jan 21 2022 Fedora Release Engineering - 1.3.2-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Tue Nov 09 2021 Arthur Bols - 1.3.2-7 +- Rebuilt for Fedora 35 + +* Tue Jul 27 2021 Fedora Release Engineering - 1.3.2-6 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Jan 27 2021 Fedora Release Engineering - 1.3.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Sat Aug 01 2020 Fedora Release Engineering - 1.3.2-4 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 1.3.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jan 30 2020 Fedora Release Engineering - 1.3.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Oct 11 2019 Vasiliy N. Glazov - 1.3.2-1 +- Update to 1.3.2 + +* Fri Sep 06 2019 Vasiliy N. Glazov - 1.3.0-1 +- Update to 1.3.0 + +* Fri Jul 26 2019 Fedora Release Engineering - 1.2.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sat Feb 02 2019 Fedora Release Engineering - 1.2.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sat Jul 14 2018 Fedora Release Engineering - 1.2.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jun 05 2018 Dave Olsthoorn - 1.2.3-1 +- new version, changelog: https://github.com/IJHack/qtpass/releases/tag/v1.2.3 + +* Thu May 10 2018 Dave Olsthoorn - 1.2.2-1 +- new version upstream + +* Sun Feb 18 2018 Dave Olsthoorn - 1.2.1-3 +- add gcc-c++ to buildrequires + +* Fri Feb 09 2018 Fedora Release Engineering - 1.2.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Fri Feb 02 2018 Dave Olsthoorn - 1.2.0-2 +- Remove obsolete scriptlets + +* Thu Nov 09 2017 Dave Olsthoorn - 1.2.0-1 +- new version + +* Thu Aug 03 2017 Fedora Release Engineering - 1.1.6-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 1.1.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Feb 11 2017 Fedora Release Engineering - 1.1.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sat Dec 03 2016 Dave Olsthoorn - 1.1.6-1 +- new version, changelog: https://github.com/IJHack/qtpass/releases/tag/v1.1.6 + +* Wed Sep 28 2016 Dave Olsthoorn - 1.1.4-1 +- new version, changelog: https://github.com/IJHack/qtpass/releases/tag/v1.1.4 + +* Thu Jun 16 2016 Dave Olsthoorn - 1.1.3-2 +- install upstream manpage + +* Wed Jun 15 2016 Dave Olsthoorn - 1.1.3-1 +- version bump +- add qt5-qtsvg as runtime dependency + +* Sun May 22 2016 Dave Olsthoorn - 1.1.1-3 +- add appstream data file + +* Sat Apr 23 2016 Dave Olsthoorn - 1.1.1-2 +- require hicolor + +* Thu Apr 14 2016 Dave Olsthoorn - 1.1.1-1 +- new version +- Change license field to GPLv3 instead of GPL-3.0 +- Fix require for pass +- Add icon cache scriplets + +* Fri Apr 1 2016 Dave Olsthoorn +- Initial spec file diff --git a/dead.package b/dead.package deleted file mode 100644 index a4209f9..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -Dependencies no longer in epel7 (#1760988) diff --git a/qtpass.sh.in b/qtpass.sh.in new file mode 100755 index 0000000..15245cf --- /dev/null +++ b/qtpass.sh.in @@ -0,0 +1,13 @@ +#!/usr/bin/bash +# +# Wrapper script to bypass issues with GNOME on wayland +# + +_QT_QPA_PLATFORM=$QT_QPA_PLATFORM + +if [ "${XDG_SESSION_TYPE,,}" = "wayland" ] && [ -z "$QT_QPA_PLATFORM" ] && { [ "${XDG_CURRENT_DESKTOP,,}" = "gnome" ] || [ "${XDG_SESSION_DESKTOP,,}" = "gnome" ]; } +then + _QT_QPA_PLATFORM="xcb" +fi + +QT_QPA_PLATFORM=$_QT_QPA_PLATFORM exec /__PREFIX__/qtpass "$@" diff --git a/qtpass.spec b/qtpass.spec new file mode 100644 index 0000000..56a9051 --- /dev/null +++ b/qtpass.spec @@ -0,0 +1,81 @@ +Name: qtpass +Version: 1.4.0 +Release: %autorelease +Summary: Cross-platform GUI for pass + +License: GPL-3.0-only +URL: https://qtpass.org/ +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 +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: git +BuildRequires: sed +# required libraries (QT) +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: qt6-qtsvg +Requires: pass + +Recommends: git +Recommends: gpg2 +Recommends: pwgen + +%description +QtPass is a cross-platform GUI for pass, the standard Unix password manager. + +%prep +%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_qt6 PREFIX=%{_prefix} +%make_build + + +%install +%make_install INSTALL_ROOT=%{buildroot} +desktop-file-install %{name}.desktop +install -Dpm 644 artwork/icon.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/qtpass-icon.svg +install -Dpm 644 %{name}.appdata.xml %{buildroot}%{_datadir}/appdata/%{name}.appdata.xml +install -Dpm 644 %{name}.1 %{buildroot}%{_mandir}/man1/%{name}.1 + +# Move the qtpass binary and replace it with the wrapper script +install -Dpm 755 %{buildroot}%{_bindir}/qtpass %{buildroot}%{_libexecdir}/qtpass +sed -e 's,/__PREFIX__,%{_libexecdir},g' %{SOURCE1} > %{buildroot}%{_bindir}/qtpass +chmod 755 %{buildroot}%{_bindir}/qtpass + + +%files +%doc README.md +%license LICENSE +%{_bindir}/qtpass +%{_libexecdir}/qtpass +%{_datadir}/applications/%{name}.desktop +%{_datadir}/appdata/%{name}.appdata.xml +%{_datadir}/icons/hicolor/scalable/apps/%{name}-icon.svg +%{_mandir}/man1/%{name}.1* + + +%changelog +%autochangelog diff --git a/sources b/sources new file mode 100644 index 0000000..56c68a4 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (v1.4.0.tar.gz) = 47c1284c10e0d8a3bf63c049fc29d785d1a53bef6f183bbe22efebf466371dd454a6e43c944739f487d609f3cde188701ba538e9cb8e2c7e5530f8fa6f992625