diff --git a/Makefile.am b/Makefile.am index a004ca71..ffe4f7cb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,124 +1,127 @@ # Makefile.am - Installer for GnuPG 4 Windows Makefile. # Copyright (C) 2005, 2008, 2012 g10 Code GmbH # # This file is part of GPG4Win. # # GPG4Win is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # GPG4Win is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . ACLOCAL_AMFLAGS = -I m4 AUTOMAKE_OPTIONS = dist-bzip2 no-dist-gzip DISTCHECK_CONFIGURE_FLAGS = --host=i686-w64-mingw32 if BUILD_GPG4WIN po = po else po = endif if BUILD_GPG4WIN doc = doc else doc = endif SUBDIRS = ${po} packages ${doc} src # find patches -type f | sort | sed 's/$/ \\/' | sed 's/^/ /' # find patches-appimage -type f | sort | sed 's/$/ \\/' | sed 's/^/ /' EXTRA_DIST = autogen.sh README.GIT ONEWS \ doc/license-page doc/GPLv3 \ build-aux/git-log-footer build-aux/git-log-fix \ docker/appimage/build-appimage.sh \ docker/appimage/Dockerfile \ docker/build-appimage-docker-image.sh \ docker/run-appimage-build.sh \ patches/boost/boost-1-fixes.patch \ patches/breeze-icons/0001-Make-binary-icons-cross-compilable.patch \ patches/extra-cmake-modules/0001-Use-BIN_INSTALL_DIR-data-for-DATAROOTDIR-on-Windows.patch \ patches/glib-2.41.5/01-socket.patch \ patches/glib-2.41.5/02-formatsec.patch \ patches/gpgol/0001-Enable-sync-encryption-again.patch \ patches/kconfigwidgets/0001-Make-QDbus-optional.patch \ patches/kiconthemes/0001-Make-DBus-optional.patch \ + patches/kleopatra/build-fixes.patch \ patches/kleopatra/lower-cmake-requirement.patch \ + patches/kleopatra/set-cxx-standard.patch \ patches/kxmlgui/0001-make-qdbus-optional.patch \ patches/kxmlgui/0004-Cruedly-disable-KSendbugmail.patch \ + patches/libkleo/0001-Revert-Use-more-target-centric-cmake-code.patch \ patches/libkleo/lower-cmake-requirement.patch \ - patches/libkleo/z-01-use-pre-5.80-ecm_qt_declare_logging_category.patch \ + patches/libkleo/set-cxx-standard.patch \ patches/qtbase/0001-Fix-build-without-std-thread.patch \ patches/qtbase/0001-Gpg4win-qstandardpaths-patch.patch \ patches/qtbase/0002-Gpg4win-theme-names-and-relpaths.patch \ patches/qtbase/0003-Fix-build-with-GCC-11-include-limits.patch \ patches/qttools/disable-most-tools.patch \ patches/w32pth-2.0.5/workaround-broken-libtool.patch \ patches-appimage/gnupg-2.3.2/0001-agent-Fix-segv-in-GET_PASSPHRASE-regression.patch \ patches-appimage/gnupg-2.3.2/0002-build-Fix-ksba.h-not-found-problem.patch \ patches-appimage/gnupg-2.3.2/0003-common-New-function-substitute_envvars.patch \ patches-appimage/gnupg-2.3.2/0004-common-Support-a-gpgconf.ctl-file-under-Unix.patch \ patches-appimage/gnupg-2.3.2/0005-build-Fix-several-include-file-not-found-problems.patch \ patches-appimage/kconfigwidgets/0001-build-without-KF5Auth.patch \ patches-appimage/libkleo-21.08.1/0001-Add-support-for-non-standard-boost-include-directori.patch \ patches-appimage/libkleo-21.08.1/z-01-use-pre-5.80-ecm_qt_declare_logging_category.patch \ patches-appimage/qtwayland-5.15.0/00-disable-wayland-server.patch copy-news: cp NEWS doc/website/NEWS.last copy-release: gpg4win-$(VERSION).tar.bz2 installers/gpg4win-$(VERSION).exe \ installers/gpg4win-light-$(VERSION).exe \ installers/gpg4win-vanilla-$(VERSION).exe @echo Copying $(VERSION) to $(RELEASEHOST) >&2 @set -e;\ if ssh "$$(echo $(RELEASEHOST)|cut -d: -f -1)" \ test -f "$$(echo $(RELEASEHOST)/gpg4win-$(VERSION).exe|cut -d: -f2-)";\ then echo "This release has already been copied to the server" >&2 ;\ else scp gpg4win-$(VERSION).tar.bz2 \ installers/gpg4win-$(VERSION).exe \ installers/gpg4win-light-$(VERSION).exe \ installers/gpg4win-vanilla-$(VERSION).exe \ installers/gpg4win-src-$(VERSION).exe $(RELEASEHOST)/ ;\ for f in en de ; do \ scp src/README.$$f.txt \ $(RELEASEHOST)/README-$(VERSION).$$f.txt; \ done;\ fi dist-hook: gen-ChangeLog gen_start_date = 2012-03-26T00:00:00 .PHONY: gen-ChangeLog gen-ChangeLog: set -e; \ if test -d $(top_srcdir)/.git; then \ (cd $(top_srcdir) && \ $(GITLOG_TO_CHANGELOG) --append-dot --tear-off \ --amend=build-aux/git-log-fix \ --since=$(gen_start_date) ) > $(distdir)/cl-t; \ cat $(top_srcdir)/build-aux/git-log-footer >> $(distdir)/cl-t;\ rm -f $(distdir)/ChangeLog; \ mv $(distdir)/cl-t $(distdir)/ChangeLog; \ fi download: packages/packages.current (cd packages; ./download.sh) msi: $(MAKE) $(AM_MAKEFLAGS) -C src msi msi-signed: $(MAKE) $(AM_MAKEFLAGS) -C src msi-signed msi-upload: $(MAKE) $(AM_MAKEFLAGS) -C src msi-upload diff --git a/patches/kleopatra/build-fixes.patch b/patches/kleopatra/build-fixes.patch new file mode 100755 index 00000000..7e062f7e --- /dev/null +++ b/patches/kleopatra/build-fixes.patch @@ -0,0 +1,34 @@ +#! /bin/sh +patch -p1 -l -f $* < $0 +exit $? + +diff --git a/src/dialogs/certificatedetailswidget.cpp b/src/dialogs/certificatedetailswidget.cpp +index f7783583..68745236 100644 +--- a/src/dialogs/certificatedetailswidget.cpp ++++ b/src/dialogs/certificatedetailswidget.cpp +@@ -172,11 +172,11 @@ private: + hboxLayout_1->addWidget(trustChainDetailsBtn); + + genRevokeBtn = new QPushButton(i18n("Generate revocation certificate"), parent); +- genRevokeBtn->setToolTip(u"" + ++ genRevokeBtn->setToolTip(QStringLiteral("") + + i18n("A revocation certificate is a file that serves as a \"kill switch\" to publicly " + "declare that a key shall not anymore be used. It is not possible " + "to retract such a revocation certificate once it has been published.") + +- u""); ++ QStringLiteral("")); + + hboxLayout_1->addWidget(genRevokeBtn); + +diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp +index 4a312855..5ae755e1 100644 +--- a/src/mainwindow.cpp ++++ b/src/mainwindow.cpp +@@ -167,7 +167,7 @@ public: + } + void editKeybindings() + { +- KShortcutsDialog::showDialog(q->actionCollection(), KShortcutsEditor::LetterShortcutsAllowed, q); ++ KShortcutsDialog::configure(q->actionCollection(), KShortcutsEditor::LetterShortcutsAllowed); + updateSearchBarClickMessage(); + } diff --git a/patches/kleopatra/lower-cmake-requirement.patch b/patches/kleopatra/lower-cmake-requirement.patch index c0986295..1e4f75ae 100755 --- a/patches/kleopatra/lower-cmake-requirement.patch +++ b/patches/kleopatra/lower-cmake-requirement.patch @@ -1,17 +1,14 @@ #! /bin/sh patch -p1 -l -f $* < $0 exit $? diff --git a/CMakeLists.txt b/CMakeLists.txt -index 43562b94..2f6cb167 100644 +index d7d1cfc9..11163068 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -1,7 +1,7 @@ - set(kleopatra_version 3.1.15) - # The following is for Windows. Keep in line with kleopatra_version. - set(kleopatra_fileversion 3,1,15,0) +@@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.16 FATAL_ERROR) +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) - project(kleopatra VERSION ${kleopatra_version}) # The RELEASE_SERVICE_VERSION is used by Gpg4win to add the Gpg4win version + set(RELEASE_SERVICE_VERSION_MAJOR "21") diff --git a/patches/kleopatra/set-cxx-standard.patch b/patches/kleopatra/set-cxx-standard.patch new file mode 100755 index 00000000..c4318438 --- /dev/null +++ b/patches/kleopatra/set-cxx-standard.patch @@ -0,0 +1,16 @@ +#! /bin/sh +patch -p1 -l -f $* < $0 +exit $? + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d7d1cfc9..05e750ac 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -168,6 +168,7 @@ if(CMAKE_COMPILER_IS_GNUCXX) + endif() + add_definitions(-DQT_NO_EMIT) + remove_definitions(-DQT_NO_FOREACH) ++set(CMAKE_CXX_STANDARD 17) + + kde_enable_exceptions() + option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF) diff --git a/patches/libkleo/0001-Revert-Use-more-target-centric-cmake-code.patch b/patches/libkleo/0001-Revert-Use-more-target-centric-cmake-code.patch new file mode 100755 index 00000000..8a6c3189 --- /dev/null +++ b/patches/libkleo/0001-Revert-Use-more-target-centric-cmake-code.patch @@ -0,0 +1,100 @@ +#! /bin/sh +patch -p1 -l -f $* < $0 +exit $? + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index a14b52f..e2cc379 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -15,11 +15,9 @@ add_subdirectory( pics ) + if (BUILD_TESTING) + add_subdirectory( tests ) + endif() +-add_library(KF5Libkleo) +-add_library(KF5::Libkleo ALIAS KF5Libkleo) + + ########### next target ############### +-target_sources(KF5Libkleo PRIVATE ++set(libkleo_core_SRCS + kleo/checksumdefinition.cpp + kleo/debug.cpp + kleo/defaultkeyfilter.cpp +@@ -51,13 +49,13 @@ target_sources(KF5Libkleo PRIVATE + utils/cryptoconfig.cpp + utils/test.cpp + ) +-ecm_qt_declare_logging_category(KF5Libkleo HEADER libkleo_debug.h IDENTIFIER LIBKLEO_LOG CATEGORY_NAME org.kde.pim.libkleo ++ecm_qt_declare_logging_category(libkleo_core_SRCS HEADER libkleo_debug.h IDENTIFIER LIBKLEO_LOG CATEGORY_NAME org.kde.pim.libkleo + DESCRIPTION "libkleo (kleo_core)" + EXPORT LIBKLEO + ) + + +-target_sources(KF5Libkleo PRIVATE ++set(libkleo_ui_common_SRCS + ui/dnattributeorderconfigwidget.cpp + ui/kdhorizontalline.cpp + ui/filenamerequester.cpp +@@ -70,14 +68,14 @@ target_sources(KF5Libkleo PRIVATE + ui/editdirectoryservicedialog.cpp + ) + +-ecm_qt_declare_logging_category(KF5Libkleo HEADER kleo_ui_debug.h IDENTIFIER KLEO_UI_LOG CATEGORY_NAME org.kde.pim.kleo_ui ++ecm_qt_declare_logging_category(libkleo_ui_common_SRCS HEADER kleo_ui_debug.h IDENTIFIER KLEO_UI_LOG CATEGORY_NAME org.kde.pim.kleo_ui + DESCRIPTION "libkleo (kleo_ui)" + OLD_CATEGORY_NAMES log_kleo_ui + EXPORT LIBKLEO + ) + + +-target_sources(KF5Libkleo PRIVATE # make this a separate lib. ++set(libkleo_ui_SRCS # make this a separate lib. + ui/keylistview.cpp + ui/keyselectiondialog.cpp + ui/keyrequester.cpp +@@ -86,8 +84,10 @@ target_sources(KF5Libkleo PRIVATE # make this a separate lib. + ui/keyselectioncombo.cpp + ) + ++set(kleo_LIB_SRCS ${libkleo_core_SRCS} ${libkleo_ui_SRCS} ++ ${libkleo_ui_common_SRCS}) + +-target_link_libraries(KF5Libkleo PUBLIC QGpgme Gpgmepp PRIVATE Qt::Widgets ++set(kleo_LIB_LIBS PUBLIC QGpgme Gpgmepp PRIVATE Qt::Widgets + KF5::I18n + KF5::Completion + KF5::ConfigCore +@@ -98,15 +98,19 @@ target_link_libraries(KF5Libkleo PUBLIC QGpgme Gpgmepp PRIVATE Qt::Widgets + + if (KF5PimTextEdit_FOUND) + add_definitions(-DHAVE_PIMTEXTEDIT) +- target_link_libraries(KF5Libkleo PRIVATE KF5::PimTextEdit) ++ set(kleo_LIB_LIBS ${kleo_LIB_LIBS} PRIVATE KF5::PimTextEdit) + endif() + ++add_library(KF5Libkleo ${kleo_LIB_SRCS}) + if (COMPILE_WITH_UNITY_CMAKE_SUPPORT) + set_target_properties(KF5Libkleo PROPERTIES UNITY_BUILD ON) + endif() + generate_export_header(KF5Libkleo BASE_NAME kleo) ++add_library(KF5::Libkleo ALIAS KF5Libkleo) + if(WIN32) +- target_link_libraries(KF5Libkleo ${GPGME_VANILLA_LIBRARIES} ) ++target_link_libraries(KF5Libkleo ${kleo_LIB_LIBS} ${GPGME_VANILLA_LIBRARIES} ) ++else() ++target_link_libraries(KF5Libkleo ${kleo_LIB_LIBS} ) + endif() + + set_target_properties(KF5Libkleo PROPERTIES +@@ -229,9 +233,9 @@ install(FILES + + + if ( WIN32 ) +- install ( FILES libkleopatrarc-win32.desktop DESTINATION ${KDE_INSTALL_CONFDIR} RENAME libkleopatrarc ) ++install ( FILES libkleopatrarc-win32.desktop DESTINATION ${KDE_INSTALL_CONFDIR} RENAME libkleopatrarc ) + else () +- install ( FILES libkleopatrarc.desktop DESTINATION ${KDE_INSTALL_CONFDIR} RENAME libkleopatrarc ) ++install ( FILES libkleopatrarc.desktop DESTINATION ${KDE_INSTALL_CONFDIR} RENAME libkleopatrarc ) + endif () + + if (BUILD_QCH) diff --git a/patches/libkleo/lower-cmake-requirement.patch b/patches/libkleo/lower-cmake-requirement.patch index 01aaa77e..80eb1a10 100755 --- a/patches/libkleo/lower-cmake-requirement.patch +++ b/patches/libkleo/lower-cmake-requirement.patch @@ -1,14 +1,14 @@ #! /bin/sh patch -p1 -l -f $* < $0 exit $? diff --git a/CMakeLists.txt b/CMakeLists.txt index 4fea1af..feed360 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.16 FATAL_ERROR) +cmake_minimum_required(VERSION 3.5 FATAL_ERROR) - set(PIM_VERSION "5.17.44") + set(PIM_VERSION "5.18.40") project(libkleo VERSION ${PIM_VERSION}) diff --git a/patches/libkleo/set-cxx-standard.patch b/patches/libkleo/set-cxx-standard.patch new file mode 100755 index 00000000..d05da254 --- /dev/null +++ b/patches/libkleo/set-cxx-standard.patch @@ -0,0 +1,30 @@ +#! /bin/sh +patch -p1 -l -f $* < $0 +exit $? + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index bb34e0d..9faec4f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -73,6 +73,8 @@ add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0) + add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055600) + remove_definitions(-DQT_NO_FOREACH) + add_definitions(-DQT_NO_EMIT) ++set(CMAKE_CXX_STANDARD 17) ++ + ########### CMake Config Files ########### + set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Libkleo") + +diff --git a/src/ui/keyselectiondialog.cpp b/src/ui/keyselectiondialog.cpp +index 6a2630e..28298d2 100644 +--- a/src/ui/keyselectiondialog.cpp ++++ b/src/ui/keyselectiondialog.cpp +@@ -252,7 +252,7 @@ QString ColumnStrategy::toolTip(const GpgME::Key &key, int) const + QString keyStatusString; + if (!checkKeyUsage(key, mKeyUsage, &keyStatusString)) { + // Show the status in bold if there is a problem +- keyStatusString = QLatin1String("") % keyStatusString % QLatin1String(""); ++ keyStatusString = QLatin1String("") + keyStatusString + QLatin1String(""); + } + + QString html = QStringLiteral("

");