Page Menu
Home
GnuPG
Search
Configure Global Search
Log In
Files
F22948066
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Size
39 KB
Subscribers
None
View Options
diff --git a/Makefile.am b/Makefile.am
index 89e3e113..795d399c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,105 +1,106 @@
# 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 <http://www.gnu.org/licenses/>.
ACLOCAL_AMFLAGS = -I m4
AUTOMAKE_OPTIONS = dist-xz 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 -L patches-appimage -type f | sort | sed 's/$/ \\/' | sed 's/^/ /'
EXTRA_DIST = autogen.rc autogen.sh README.GIT ONEWS \
doc/license-page doc/GPLv3 \
build-aux/git-log-footer build-aux/git-log-fix \
build-aux/authenticode-sign.sh \
docker/appimage/Dockerfile \
docker/appimage/Dockerfile-CentOS7 \
docker/docker-build.sh \
docker/gpg4win-bookworm/Dockerfile \
patches/breeze-icons/0001-Draft-Handle-cross-compiling-for-tools.patch \
patches/breeze-icons/add-the-nose.patch \
patches/extra-cmake-modules/0001-Do-not-abort-without-QML-tools.patch \
patches/extra-cmake-modules/0001-Use-BIN_INSTALL_DIR-data-for-DATAROOTDIR-on-Windows.patch \
patches/jpeg/fix-redefine.patch \
patches/kcontacts/0001-Make-the-depedency-to-QML-optional.patch \
patches/kcoreaddons/0001-Fix-MINGW-build.patch \
patches/ki18n/0001-Undef-snprintf-for-windows.patch \
patches/kio/0001-Remove-kencodingfiledialog-to-avoid-Qt5Compat.patch \
patches/kio2/0001-WIP-Add-option-to-force-disable-DBus-and-KCrash.patch \
patches/kjobwidgets/0001-Remove-knotification.patch \
patches/knotifications/0001-Fix-build-wihout-QDbus.patch \
patches/kparts_/0001-Change-check-from-Android-to-DBus-check.patch \
patches/ktextaddons/0001-Remove-unused-QDbus-includes.patch \
patches/libical/workaround-weird-mingw-10.0.0-issue.patch \
patches/libkdepim/0001-Disable-dbus-on-windows-and-macOS.patch \
patches/libkdepim/0002-Fix-compilation-with-mingw.patch \
patches/libkdepim/0003-Remove-test-dependency-unless-we-compile-the-tests.patch \
patches/okular/0001-Add-GnuPG-specific-manifest-to-okular.patch \
patches/okular/lower-cmake-requirement.patch \
patches/pcre2/cross-build-cmake.patch \
patches/prison/0001-Only-include-ECMQmlModule-if-building-WITH_QUICK.patch \
patches/qtbase/0001-Gpg4win-qstandardpaths-patch.patch \
patches/qtbase/add-kleopatras-mime-types.patch \
patches/qtbase/qt_use_share_instead_of_data.patch \
patches-appimage/extra-cmake-modules/0001-Do-not-abort-without-QML-tools.patch \
+ patches-appimage/kcrash/0001-DRAFT-Do-not-use-OpenGL-if-it-is-not-available.patch \
patches-appimage/kio/0001-Remove-kencodingfiledialog-to-avoid-Qt5Compat.patch \
patches-appimage/kjobwidgets/0001-Remove-knotification.patch \
patches-appimage/okular/0001-Make-KF6Pty-dependency-optional.patch \
patches-appimage/okular/lower-cmake-requirement.patch \
patches-appimage/qtbase/add-kleopatras-mime-types.patch
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.common packages/packages.4 packages/packages.3
(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/docker/appimage/Dockerfile b/docker/appimage/Dockerfile
index 3cc57176..a965aea2 100644
--- a/docker/appimage/Dockerfile
+++ b/docker/appimage/Dockerfile
@@ -1,98 +1,98 @@
# Dockerfile - docker/appimage
# Copyright (C) 2024 g10 Code GmbH
#
# Software engineering by Ingo Klöcker <dev@ingo-kloecker.de>
# Andre Heinecke <aheinecke@gnupg.org>
#
# 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 <https://www.gnu.org/licenses/>.
#
# SPDX-License-Identifier: GPL-2.0+
FROM registry.suse.com/suse/sle15:latest
RUN zypper --non-interactive update && \
zypper --non-interactive install \
# Build basics
flex bison gperf awk patch wget automake rsync xz bzip2 \
gettext gettext-tools gettext-runtime meson ninja \
which file git-core cmake gcc13 gcc13-c++ glibc-devel-static pkg-config \
glibc-locale-base \
# Python
python311 python311-lxml \
# Libraries
alsa-devel \
at-spi2-core-devel \
cups-devel \
boost-devel \
- fontconfig-devel \
+# fontconfig-devel \
openssl-devel \
libtiff-devel \
libusb-devel \
libicu-devel \
libmount-devel \
libudev-devel \
libSM-devel \
libX11-devel \
libX11-xcb1 \
libxcb-devel \
libXcomposite-devel \
libXcursor-devel \
libXi-devel \
libxkbcommon-devel \
libxkbcommon-x11-devel \
libXrandr-devel \
libXtst-devel \
- Mesa-libEGL-devel \
+# Mesa-libEGL-devel \
Mesa-libGL-devel \
openjpeg2-devel \
openldap2-devel \
readline-devel \
vulkan-devel \
vulkan-headers \
wayland-devel \
xcb-util-image-devel \
xcb-util-keysyms-devel \
xcb-util-renderutil-devel \
xcb-util-wm-devel \
xcb-proto-devel \
xkbcomp-devel \
xz-devel \
zlib-devel
# cleanup to ensure we don't leave behind anything that doesn't need to be in the image
RUN zypper --non-interactive clean -a && \
# make sure the appropriate gcc/python versions are the defaults
alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 1 && \
alternatives --install /usr/bin/cc cc /usr/bin/gcc-13 1 && \
alternatives --install /usr/bin/cpp cpp /usr/bin/g++-13 1 && \
alternatives --install /usr/bin/g++ gcc++ /usr/bin/g++-13 1 && \
alternatives --install /usr/bin/python python /usr/bin/python3.11 1 && \
alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
# download the necessary linuxdeploy AppImages and extract them because we have no fuse in the container
RUN mkdir -p /tmp/download \
&& cd /tmp/download \
&& wget --no-verbose https://github.com/linuxdeploy/linuxdeploy/releases/download/1-alpha-20240109-1/linuxdeploy-x86_64.AppImage \
&& wget --no-verbose https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/1-alpha-20240109-1/linuxdeploy-plugin-qt-x86_64.AppImage \
&& echo "f53349093d333a6558c560844c1a0f64a3b6bd077bf02740af3ad3dbb8827433 linuxdeploy-plugin-qt-x86_64.AppImage" > chk \
&& echo "c86d6540f1df31061f02f539a2d3445f8d7f85cc3994eee1e74cd1ac97b76df0 linuxdeploy-x86_64.AppImage" >> chk \
&& sha256sum -c chk \
&& chmod +x linuxdeploy-* \
&& cd /tmp \
&& download/linuxdeploy-plugin-qt-x86_64.AppImage --appimage-extract \
&& download/linuxdeploy-x86_64.AppImage --appimage-extract \
&& rm -rf /tmp/download \
&& mkdir -p /opt \
&& mv /tmp/squashfs-root /opt/linuxdeploy
diff --git a/patches-appimage/kcrash/0001-DRAFT-Do-not-use-OpenGL-if-it-is-not-available.patch b/patches-appimage/kcrash/0001-DRAFT-Do-not-use-OpenGL-if-it-is-not-available.patch
new file mode 100755
index 00000000..dbec39d8
--- /dev/null
+++ b/patches-appimage/kcrash/0001-DRAFT-Do-not-use-OpenGL-if-it-is-not-available.patch
@@ -0,0 +1,52 @@
+#! /bin/sh
+patch -p1 -l -f $* < $0
+exit $?
+
+From 6bae228a55b091dd658e0ee41dde0e6604a368b3 Mon Sep 17 00:00:00 2001
+From: Andre Heinecke <aheinecke@gnupg.org>
+Date: Mon, 22 Jul 2024 22:37:17 +0200
+Subject: [PATCH] DRAFT: Do not use OpenGL if it is not available
+
+This is obviously missing the configure check for
+the opengl header and just a hack for now.
+---
+ src/kcrash.cpp | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/src/kcrash.cpp b/src/kcrash.cpp
+index f0fbc62..58385b4 100644
+--- a/src/kcrash.cpp
++++ b/src/kcrash.cpp
+@@ -47,8 +47,12 @@
+ #include <QGuiApplication>
+ #include <QLibraryInfo>
+ #include <QOffscreenSurface>
++// TODO add feature detection in cmake
++#define NO_OPENGL 1
++#ifndef NO_OPENGL
+ #include <QOpenGLContext>
+ #include <QOpenGLFunctions>
++#endif
+ #include <QStandardPaths>
+ #include <QThread>
+
+@@ -136,6 +140,7 @@ std::unique_ptr<char[]> s_glRenderer; // the GL_RENDERER
+
+ QString glRenderer()
+ {
++#ifndef NO_OPENGL
+ QOpenGLContext context;
+ QOffscreenSurface surface;
+ surface.create();
+@@ -152,6 +157,9 @@ QString glRenderer()
+ context.doneCurrent();
+ });
+ return QString::fromUtf8(reinterpret_cast<const char *>(context.functions()->glGetString(GL_RENDERER)));
++#else
++ return {};
++#endif
+ }
+
+ QString bootId()
+--
+2.45.2
diff --git a/src/Makefile.am b/src/Makefile.am
index 655a8b5e..a0941382 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,588 +1,588 @@
# Makefile.am - Installer for GnuPG 4 Windows Makefile.
# Copyright (C) 2005, 2006, 2007, 2008, 2009 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 <http://www.gnu.org/licenses/>.
EXTRA_DIST = config.site \
findicons.sh \
exdll.h exdll.c \
g4wihelp.c desktopshellrun.cpp \
slideshow.cpp gpgwrap.c \
gpg-enable-keyboxd.bat gpg-disable-keyboxd.bat \
BreezeClassic.colors BreezeDark.colors \
sha1sum.c \
potomo \
index.theme \
slideshow/slides.dat \
slideshow/slide1-gpgol.png \
slideshow/slide2-gpgex.png \
slideshow/slide3-kleopatra.png \
slideshow/slide4-summary.png \
icons/file-ext.ico \
icons/mail-ext.ico \
icons/shield.ico \
kdeglobals qtlogging.ini \
make-msi.pl make-msi.guids \
build-gpg4win.sh \
qt.conf \
WixUI_Gpg4win.wxs included-icons.txt \
zlib.pc
if BUILD_APPIMAGE
appimage = appimage
else
appimage =
endif
SUBDIRS = ${appimage} nsis
# These paths must be absolute, as we switch directories pretty often.
root := $(shell pwd)/playground
stampdir := $(shell pwd)/stamps
gpg4win_howto_smime_ll = en de
HOWTO_files = $(addsuffix .txt, \
$(addprefix HOWTO-SMIME.,$(gpg4win_howto_smime_ll)))
foosum_exe = sha1sum.exe md5sum.exe sha256sum.exe
# Need to clean the dll because we bypassed automake.
CLEANFILES = g4wihelp.dll desktopshellrun.o versioninfo.txt \
$(HOWTO_files) NEWS.tmp COMPONENTS-list.tmp \
license.blurb cdversioninfo.tmp slideshow.o \
$(foosum_exe) gpgwrap.exe
# Supported source packages. (see also ../appimage/Makefile.am)
gpg4win_spkgs = glib libffi gdk-pixbuf gtk+ \
libgpg-error gpgme gpgol gpgex libpng \
gpa opencdk jpeg \
pinentry libassuan ntbtls pcre \
paperkey regex libiconv gettext scute qrencode
# Source packages following the KDE pattern
gpg4win_kdepkgs = qtbase qttools qtsvg qttranslations qthttpserver \
kconfig kwidgetsaddons ki18n extra-cmake-modules \
kcompletion kwindowsystem kcoreaddons libkleo kcodecs \
kmime kconfigwidgets kxmlgui kguiaddons kitemviews \
kiconthemes kleopatra breeze-icons kitemmodels karchive \
gpg4win-tools kcrash kio kbookmarks kservice solid \
kjobwidgets poppler okular freetype threadweaver \
kparts tiff openjpeg sonnet ktextwidgets mimetreeparser \
libical kcalendarcore kmbox pcre2 prison gpgpass \
knotifications kcolorscheme zstd kstatusnotifieritem \
gpgoljs libkdepim syntax-highlighting ktextaddons \
kpimtextedit qtkeychain kcontacts qtwebsockets
# Supported source packages to build in an additional architecture
gpg4win_expkgs = libgpg-error libassuan libiconv gettext gpgex gpgol \
gpgme
# The packages that should also be compiled natively
gpg4win_nativepkgs = qtbase breeze-icons kconfig extra-cmake-modules \
qttools
# Some variables
WINE = wine
WINHOST = win10
WINLIGHT = c:/wix/light.exe
# Extra options to configure for individual packages.
# We can use $(idir) here for the installation prefix.
gpg4win_pkg_libiconv_ex_configure = \
--enable-shared=no --enable-static=yes
gpg4win_pkg_gettext_configure = \
--with-lib-prefix=$(idir) --with-libiconv-prefix=$(idir) \
CPPFLAGS=-I$(idir)/include CFLAGS=-O2 LDFLAGS=-L$(idir)/lib
gpg4win_pkg_scute_configure = \
LDFLAGS=-lws2_32
gpg4win_pkg_gettext_ex_configure = \
--with-lib-prefix=$(ex_idir) --with-libiconv-prefix=$(ex_idir) \
CPPFLAGS=-I$(ex_idir)/include CFLAGS=-O2 LDFLAGS=-L$(ex_idir)/lib
# We only need gettext-runtime and there is sadly no top level
# configure option for this
gpg4win_pkg_gettext_make_dir = gettext-runtime
gpg4win_pkg_gettext_make_dir_inst = gettext-runtime
gpg4win_pkg_gettext_ex_make_dir = gettext-runtime
gpg4win_pkg_gettext_ex_make_dir_inst = gettext-runtime
# CMakeList.txt does not live in the top level
gpg4win_pkg_zstd_conf_subdir = /build/cmake
gpg4win_pkg_zstd_configure = -DZSTD_BUILD_PROGRAMS=OFF
# Paperkey comes with a man pages which we have to convert.
define gpg4win_pkg_paperkey_post_install
(for i in paperkey ; \
do man -Tlatin1 -l $$$${pkgidir}/share/man/man1/$$$${i}.1 | \
sed `printf "s/_\b//g;s/\b.//g"` | \
sed -e 's/$$$$/\r/' > $$$${pkgidir}/share/man/man1/$$$${i}.man ; \
done)
endef
# Build the reference manual.
define gpg4win_pkg_gpgol_post_install
( cd $$$${pkgbdir}/doc; make pdf )
endef
gpg4win_pkg_libgpg_error_configure = --enable-static
gpg4win_pkg_libgpg_error_ex_configure = --enable-static
gpg4win_pkg_libgpg_error_extracflags = -D_WIN32_WINNT=0x0600
gpg4win_pkg_libgpg_error_ex_extracflags = -D_WIN32_WINNT=0x0600
# We convert the PO files to UTF-8. FIXME: This should be done in
# libgpg-error proper.
define gpg4win_pkg_libgpg_error_post_install
(for i in `$(tsdir)/src/potomo --get-linguas $$$${pkgsdir}/po` ; do \
rm $$$${pkgidir}/share/locale/$$$${i}/LC_MESSAGES/libgpg-error.mo \
2>/dev/null|| true; \
$(tsdir)/src/potomo $$$${pkgsdir}/po/$$$${i}.po \
$$$${pkgidir}/share/locale/$$$${i}/LC_MESSAGES/libgpg-error.mo; \
done)
endef
gpg4win_pkg_libassuan_configure = --enable-static
gpg4win_pkg_libassuan_ex_configure = --enable-static
gpg4win_pkg_libpng_configure = HAVE_SOLARIS_LD_FALSE=yes CPPFLAGS=\"-I$(idir)/include -DPNG_BUILD_DLL\" LDFLAGS=\"-L$(idir)/lib\" LIBPNG_DEFINES=\"-DPNG_BUILD_DLL\"
gpg4win_pkg_pinentry_configure = \
--enable-pinentry-qt \
--disable-pinentry-fltk \
--disable-pinentry-curses \
--disable-fallback-curses
gpg4win_pkg_gpgme_configure = \
--enable-static \
--enable-languages=qt,cpp \
--disable-gpg-test \
--disable-gpgsm-test
gpg4win_pkg_gpgme_ex_configure = \
--enable-static \
--enable-languages=cpp \
--disable-gpg-test \
--disable-gpgsm-test
gpg4win_pkg_openjpeg_configure = -DBUILD_CODEC=OFF
gpg4win_pkg_paperkey_configure = --silent
gpg4win_pkg_sonnet_configure = -DSONNET_USE_QML=OFF
gpg4win_pkg_ki18n_configure = -DBUILD_WITH_QML=OFF
gpg4win_pkg_kconfig_configure = -DKCONFIG_USE_DBUS=OFF -DKCONFIG_USE_QML=OFF
gpg4win_pkg_kconfig_native_configure = -DKCONFIG_USE_DBUS=OFF \
-DKCONFIG_USE_QML=OFF \
-DKCONFIG_USE_GUI=OFF
gpg4win_pkg_pcre2_configure = -DPCRE2_BUILD_PCRE2_8=OFF -DPCRE2_BUILD_PCRE2_16=ON \
-DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF
gpg4win_pkg_karchive_configure = -DWITH_LIBZSTD=ON -DWITH_LIBLZMA=OFF
gpg4win_pkg_kcoreaddons_configure = -DKCOREADDONS_USE_QML=OFF
gpg4win_pkg_kwindowsystem_configure = -DKWINDOWSYSTEM_QML=OFF
gpg4win_pkg_ktextwidgets_configure = -DWITH_TEXT_TO_SPEECH=OFF
gpg4win_pkg_qtkeychain_configure = -DBUILD_WITH_QT6=ON
gpg4win_pkg_ktextaddons_configure = -DFORCE_DISABLE_MULTIMEDIA=ON
# Create a minmal build on the build system of the
# same version before cross compiling.
gpg4win_pkg_qtbase_native_configure = \
-DQT_BUILD_EXAMPLES=OFF \
-DQT_BUILD_TESTS=OFF \
-DBUILD_WITH_PCH=OFF \
-DFEATURE_assistant=ON \
-DFEATURE_linguist=ON \
-DFEATURE_eventfd=OFF \
-DFEATURE_harfbuzz=OFF \
-DFEATURE_icu=OFF \
-DFEATURE_zstd=OFF \
-DFEATURE_glib=OFF \
+ -DFEATURE_dynamicgl=OFF \
+ -DFEATURE_egl=OFF \
+ -DFEATURE_opengl_desktop=OFF \
-DFEATURE_opengl_dynamic=OFF \
-DFEATURE_opengles2=OFF \
- -DFEATURE_opengl_desktop=OFF \
- -DFEATURE_egl=OFF \
- -DFEATURE_dynamicgl=OFF \
+ -DINPUT_opengl=no \
-DFEATURE_openssl=OFF \
-DFEATURE_zstd=OFF \
-DFEATURE_sql_mysql=OFF \
-DFEATURE_sql_db2=OFF \
-DFEATURE_sql_psql=OFF \
-DFEATURE_sql_oci=OFF \
-DFEATURE_sql_odbc=OFF \
-DFEATURE_sql_sqlite=OFF \
-DFEATURE_sql_ibase=OFF \
- -DINPUT_opengl=no \
-DCMAKE_VERBOSE_MAKEFILE=ON
define gpg4win_pkg_qtbase_native_post_install
(cd $$$${pkgidir}/bin; \
cp qtpaths qtpaths_real; \
unlink qtpaths; \
echo "#!/bin/sh" > qtpaths; \
echo "$$$${pkgidir}/bin/qtpaths_real \"\$$$$@\" | sed 's@/pkgs.*@/@'" >> qtpaths; \
chmod u+x qtpaths; \
cp qtpaths qtpaths6; \
)
endef
gpg4win_pkg_qtbase_configure = \
-DQT_HOST_PATH=$(native_idir) \
-DQt6HostInfo_DIR=$(native_idir)/lib/cmake/Qt6HostInfo \
-DQT_QMAKE_DEVICE_OPTIONS='CROSS_COMPILE=$(host)- \
-DQT_QMAKE_TARGET_MKSPEC=win32-g++ \
-DQT_BUILD_EXAMPLES=OFF \
-DQT_BUILD_TESTS=OFF \
-DBUILD_WITH_PCH=OFF \
-DFEATURE_accessibility=ON \
-DFEATURE_dbus=OFF \
-DFEATURE_fontconfig=OFF \
-DFEATURE_glib=OFF \
-DFEATURE_opengl_dynamic=ON \
-DFEATURE_openssl=OFF \
-DFEATURE_pkg_config=ON \
-DFEATURE_sql_mysql=OFF \
-DFEATURE_sql_odbc=OFF \
-DFEATURE_sql_psql=OFF \
-DFEATURE_system_zlib=ON \
-DFEATURE_system_zstd=ON \
-DFEATURE_system_pcre=ON \
-DFEATURE_system_freetype=ON \
-DFEATURE_system_harfbuzz=OFF \
-DFEATURE_schannel=ON \
-DFEATURE_use_gold_linker_alias=OFF \
-DCMAKE_VERBOSE_MAKEFILE=ON
# copy moc and rcc from the tools into the target tree
# so that pkg-config can find them.
define gpg4win_pkg_qtbase_post_install
(cp $(native_idir)/libexec/moc $$$${pkgidir}/bin; \
cp $(native_idir)/libexec/rcc $$$${pkgidir}/bin; \
)
endef
define gpg4win_pkg_okular_post_install
( rm $$$${pkgidir}/share/icons/hicolor/icon-theme.cache; )
endef
gpg4win_pkg_kleopatra_configure = \
-DFORCE_DISABLE_KCMUTILS=ON \
-DDISABLE_KWATCHGNUPG=ON \
-DRELEASE_SERVICE_VERSION=Gpg4win-$(VERSION) \
-DKLEOPATRA_DISTRIBUTION_TEXT="$(DISTRIBUTION_TEXT)"
gpg4win_pkg_kxmlgui_configure = \
-DFORCE_DISABLE_KGLOBALACCEL=ON \
-DFORCE_DISABLE_DBUS=ON \
-DXMLGUI_COMPILER_VERSION="i686-w64-mingw32-gcc" \
-DXMLGUI_DISTRIBUTION_TEXT="$(DISTRIBUTION_TEXT)"
gpg4win_pkg_kio_configure = \
-DFORCE_DISABLE_DBUS=ON \
-DFORCE_DISABLE_KCRASH=ON
gpg4win_pkg_knotifications_configure = \
-DFORCE_DISABLE_CANBERRA=ON
gpg4win_pkg_breeze_icons_native_configure = \
-DWITH_ICON_GENERATION=OFF \
-DSKIP_INSTALL_ICONS=ON
define gpg4win_pkg_breeze_icons_native_post_install
( mkdir -p $$$${pkgidir}/bin/ && cp $$$${pkgbdir}/bin/* $$$${pkgidir}/bin )
endef
#gpg4win_pkg_breeze_icons_configure = \
# -DBINARY_ICONS_RESOURCE=ON \
# -DICON_SUBSET_INCLUDE_FILE=$(abs_srcdir)/included-icons.txt
gpg4win_pkg_kbookmarks_configure = \
-DANDROID=ON
gpg4win_pkg_kservice_configure = \
-DANDROID=ON
gpg4win_pkg_kjobwidgets_configure = \
-DANDROID=ON
gpg4win_pkg_kiconthemes_configure = \
-DKICONTHEMES_USE_QTQUICK=OFF
gpg4win_pkg_okular_configure = \
-DFORCE_NOT_REQUIRED_DEPENDENCIES="KF6Purpose\;Qt6TextToSpeech\;LibZip\;KF6DocTools\;Phonon4Qt6\;TIFF\;JPEG\;LibSpectre\;KExiv2Qt6\;CHM\;DjVuLibre\;EPub\;QMobipocket\;Discount\;Qt6Qml\;Qt6DBus"
gpg4win_pkg_libical_configure = \
-DICAL_GLIB=false \
-DENABLE_GTK_DOC=false
gpg4win_pkg_prison_configure = \
-DWITH_QUICK=OFF \
-DWITH_MULTIMEDIA=OFF
gpg4win_pkg_poppler_configure = \
-DENABLE_NSS3=OFF \
-DENABLE_GLIB=OFF \
-DENABLE_GOBJECT_INTROSPECTION=OFF \
-DENABLE_QT5=OFF \
-DENABLE_LCMS=OFF \
-DENABLE_LIBCURL=OFF
gpg4win_pkg_kcontacts_configure = \
-DKCONTACTS_USE_QML=OFF
gpg4win_pkg_libkdepim_configure = \
-DFORCE_NOT_REQUIRED_DEPENDENCIES="Qt6DBus"
# Supported make-only source packages.
gpg4win_mpkgs = bzip2 zlib
# Extra options for the make invocations for individual packages.
# make_flags is used for building, make_args_inst is used for installing.
gpg4win_pkg_bzip2_make_args = \
CC=$(CC) AR=$(AR) RANLIB=$(RANLIB)
gpg4win_pkg_bzip2_make_args_inst = \
PREFIX=$$$${pkgidir} CC=$(CC) AR=$(AR) RANLIB=$(RANLIB)
gpg4win_pkg_zlib_make_args = \
-fwin32/Makefile.gcc PREFIX=$(host)- IMPLIB=libz.dll.a
gpg4win_pkg_zlib_make_args_inst = -fwin32/Makefile.gcc install \
BINARY_PATH=$$$${pkgidir}/bin INCLUDE_PATH=$$$${pkgidir}/include \
LIBRARY_PATH=$$$${pkgidir}/lib SHARED_MODE=1 IMPLIB=libz.dll.a
# Zlib needs some special magic to generate a libtool file.
# We also install the pc file here.
define gpg4win_pkg_zlib_post_install
(mkdir $$$${pkgidir}/lib/pkgconfig || true; \
cp $(abs_srcdir)/zlib.pc $$$${pkgidir}/lib/pkgconfig/; \
cd $$$${pkgidir}; \
echo "# Generated by libtool" > lib/libz.la \
echo "dlname='../bin/zlib1.dll'" >> lib/libz.la; \
echo "library_names='libz.dll.a'" >> lib/libz.la; \
echo "old_library='libz.a'" >> lib/libz.la; \
echo "dependency_libs=''" >> lib/libz.la; \
echo "current=1" >> lib/libz.la; \
echo "age=2" >> lib/libz.la; \
echo "revision=5" >> lib/libz.la; \
echo "installed=yes" >> lib/libz.la; \
echo "shouldnotlink=no" >> lib/libz.la; \
echo "dlopen=''" >> lib/libz.la; \
echo "dlpreopen=''" >> lib/libz.la; \
echo "libdir=\"$$$${pkgidir}/lib\"" >> lib/libz.la)
endef
# Supported binary packages.
gpg4win_bpkgs = pkgconfig gnupg-w32
# Default to same version.
VSD_VERSION=$(VERSION)
# Include installer targets for customized packages
-include gnupg-vsd/custom.mk
$(stampdir)/stamp-msi-base: icons/shield.ico Makefile.am \
$(top_srcdir)/doc/logo/gpg4win-msi*.bmp \
$(top_srcdir)/po/gpg4win-de.wxl \
$(top_srcdir)/po/gpg4win-en.wxl
ssh $(WINHOST) "mkdir AppData\\Local\\Temp\\gpg4win-$(VERSION)" || true
scp $(top_srcdir)/packages/gnupg-msi-$(gpg4win_pkg_gnupg_msi_version)-bin.wixlib \
$(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION);
scp $(top_srcdir)/src/icons/shield.ico $(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION)
scp $(top_srcdir)/doc/logo/gpg4win-msi-header_install-493x58.bmp \
$(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION)/header.bmp
scp $(top_srcdir)/doc/logo/gpg4win-msi-wizard_install-493x312.bmp \
$(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION)/dialog.bmp
scp $(top_srcdir)/doc/logo/gpg4win-msi-wizard_install-493x312.bmp \
$(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION)/dialog.bmp
scp $(top_srcdir)/doc/logo/gpg4win-msi-wizard_install-info-32x32.bmp \
$(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION)/info.bmp
scp $(top_srcdir)/doc/logo/gpg4win-msi-wizard_install-exclamation-32x32.bmp \
$(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION)/exclamation.bmp
scp $(top_srcdir)/po/gpg4win-en.wxl $(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION)
scp $(top_srcdir)/po/gpg4win-de.wxl $(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION)
scp WixUI_Gpg4win.wxs $(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION)
touch $(stampdir)/stamp-msi-base
# Now do the bunch of the work. This is a bunch of dirty magic to
# integrate our special makefile into automake, while not actually
# including it (make should include it). This is in turn necessary
# because automake can't deal with the elegant magic in the actual
# Makefile.
define INCLUDE_BY_MAKE
include $(1)
endef
if BUILD_GPG4WIN
$(eval $(call INCLUDE_BY_MAKE,gpg4win.mk))
gpg4win_clean = clean-gpg4win
endif
clean-local: $(gpg4win_clean)
common_nsi = nsis/inst-sections.nsi nsis/installer.nsi \
nsis/installer-finish.nsi nsis/gpg4win.nsi \
$(addsuffix .nsi,$(addprefix nsis/inst-,$(gpg4win_build_list))) \
$(addsuffix .nsi,$(addprefix nsis/uninst-,$(gpg4win_build_list)))
# Sign additional files as per signing setup
# This is a bit of a hack.
# Exit in case of error because that usually means that sign.mk
# is not up to date.
$(stampdir)/stamp-additional-signedfiles: $(stampdir)/stamp-binaries \
$(foosum_exe)
(set -e;\
cd "$(idir)"; \
for f in $(AUTHENTICODE_FILES); do \
if [ ! -f "$$f" ]; then \
echo "speedo: ERROR: file '$$f' not available for signing"; \
exit 1; \
fi;\
done; \
for f in $(AUTHENTICODE_FILES); do \
$(abs_top_srcdir)/build-aux/authenticode-sign.sh --stamp "$$f" "$$f" ;\
done \
)
touch $(stampdir)/stamp-additional-signedfiles
# Prepare the versioninfo file. The pipeline extracts the last
# occurrence of a package with the same name, sorts the entries and
# writes the file with DOS line endings. This helps to avoid
# duplicate entries in case one package has been rebuild (which is
# common when developing a new version).
versioninfo.txt:
$(SHA1SUM) $(pkg_files) </dev/null > versioninfo.tmp
set -e; \
( while read a b; do echo "$$a $$(basename $$b)"; \
done < versioninfo.tmp \
| sort -k2 -sf | tac | uniq -f1 ; \
echo '=========== SHA-1 checksum ============= == package ==' \
) | tac | awk '{printf "%s\r\n", $$0}' > versioninfo.txt
-rm versioninfo.tmp
NEWS.tmp : $(top_srcdir)/NEWS
awk '/^#/ {next} /^\(de\)/ {skip=1;next} /^[^[:space:]]/ {skip=0} \
!skip { sub(/^\(en\)/," *"); print }' \
<$(top_srcdir)/NEWS >NEWS.tmp
NEWS.de : $(top_srcdir)/NEWS
awk '/^#/ {next} /^\(en\)/ {skip=1;next} /^[^[:space:]]/ {skip=0} \
!skip { sub(/^\(de\)/,"-"); print }' \
<$(top_srcdir)/NEWS >NEWS.de; \
sed -i 's/^ / /' NEWS.de
NEWS.en : $(top_srcdir)/NEWS
awk '/^#/ {next} /^\(de\)/ {skip=1;next} /^[^[:space:]]/ {skip=0} \
!skip { sub(/^\(en\)/,"-"); print }' \
<$(top_srcdir)/NEWS >NEWS.en; \
sed -i 's/^ / /' NEWS.en
COMPONENTS-list.tmp : $(top_srcdir)/NEWS
awk '/^~~~~~~~~~~~/ { ok++; next} ok==1 {print " "$$0}' \
< $(top_srcdir)/NEWS > COMPONENTS-list.tmp
# For some nut-crazy reason someone thought it would be a great idea
# if makensis changed to the directory of the source file at startup.
# So we have to pull a couple of strings to correct this.
installers/gpg4win-$(VERSION).exe: $(common_nsi) $(stampdir)/stamp-final \
g4wihelp.dll gpgwrap.exe \
$(foosum_exe) \
$(HOWTO_files) \
license.blurb versioninfo.txt
$(MAKENSIS) -V3 -DBUILD_DIR=`pwd` -DTOP_SRCDIR=$(top_srcdir) \
-DSRCDIR=$(srcdir) $(EXTRA_MAKENSIS_FLAGS) $(srcdir)/nsis/gpg4win.nsi && \
mv gpg4win-$(VERSION).exe installers/gpg4win-$(VERSION).exe
$(stampdir)/stamp-dist-self: versioninfo.txt
(set -e; cd ..; make dist-xz)
touch $(stampdir)/stamp-dist-self
license.blurb: $(top_srcdir)/doc/license-page $(top_srcdir)/doc/GPLv3
cat $(top_srcdir)/doc/license-page $(top_srcdir)/doc/GPLv3 >$@
g4wihelp.dll: slideshow.cpp desktopshellrun.cpp g4wihelp.c exdll.h
$(CC) -DUNICODE -static-libgcc -I. -O2 -c \
-o exdll.o $(srcdir)/exdll.c
$(CC) -DUNICODE -static-libgcc -I. -O2 -c \
-o desktopshellrun.o $(srcdir)/desktopshellrun.cpp
$(CC) -DUNICODE -static-libgcc -I. -O2 -c \
-o slideshow.o $(srcdir)/slideshow.cpp
$(CC) -DUNICODE -DENABLE_SLIDE_SHOW -static-libgcc -I. -shared -O2 \
-o g4wihelp.dll $(srcdir)/g4wihelp.c \
desktopshellrun.o slideshow.o exdll.o \
-lwinmm -lgdi32 -luserenv -lshell32 \
-lole32 -loleaut32 -lshlwapi -lmsimg32
$(STRIP) g4wihelp.dll
gpgwrap.exe: gpgwrap.c
$(CC) -I. -I.. -DHAVE_CONFIG_H -O2 -Wl,-subsystem,windows -o $@ $^
$(STRIP) $@
sha1sum.exe: sha1sum.c
$(CC) -O2 -o $@ $^
$(STRIP) $@
md5sum.exe: sha1sum.c
$(CC) -DBUILD_MD5SUM -O2 -o $@ $^
$(STRIP) $@
sha256sum.exe: sha1sum.c
$(CC) -DBUILD_SHA256SUM -O2 -o $@ $^
$(STRIP) $@
if BUILD_GPG4WIN
all_full = installers/gpg4win-$(VERSION).exe
endif
all-local: $(all_full)
if BUILD_GPG4WIN
@echo "###################################################"
@echo " Gpg4win $(VERSION) successfully build!"
@echo " Installers can be found under src/installers"
@echo "###################################################"
endif
clean-local:
-rm -f installers/gpg4win-$(VERSION).exe \
installers/GnuPG-VS-Desktop-$(VERSION).msi \
installers/GnuPG-Desktop-$(VERSION).msi
distclean-local:
rm -f *.dll-x*
diff --git a/src/appimage/Makefile.am b/src/appimage/Makefile.am
index 387e3f6c..ee5bedcf 100644
--- a/src/appimage/Makefile.am
+++ b/src/appimage/Makefile.am
@@ -1,189 +1,196 @@
# Makefile.am - Makefile for building AppImage of Kleopatra
# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2021 g10 Code GmbH
#
# Software engineering by Ingo Klöcker <dev@ingo-kloecker.de>
#
# 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 <https://www.gnu.org/licenses/>.
#
# SPDX-License-Identifier: GPL-2.0+
EXTRA_DIST = AppRun start-shell build-appimage.sh
SUBDIRS = rsync-filters
root := /build/src/playground
stampdir := $(root)/stamps
# Source packages for the AppImage (see also ../src/Makefile.am)
appimage_spkgs = sqlite libgpg-error libassuan npth libgcrypt libksba gnupg \
pinentry gpgme paperkey ntbtls \
freetype qrencode jpeg libpng xcb-util-cursor
appimage_pkg_libgpg_error_configure = --enable-install-gpg-error-config
# KDE packages for the AppImage
appimage_kdepkgs = kconfig kwidgetsaddons ki18n extra-cmake-modules \
kcompletion kwindowsystem kcoreaddons libkleo kcodecs \
kmime kmbox kconfigwidgets kxmlgui kguiaddons kitemviews \
kiconthemes kleopatra breeze-icons kitemmodels karchive \
kcrash kdbusaddons kio kbookmarks kservice solid \
kjobwidgets libical kcalendarcore mimetreeparser \
kcolorscheme sonnet ktextwidgets kauth kstatusnotifieritem \
threadweaver kparts poppler okular \
prison gpgpass zstd pcre2 \
qtbase qttools qtsvg qttranslations qtwayland \
plasma-wayland-protocols
appimage_bpkgs = wayland-protocols
define appimage_pkg_wayland_protocols_post_install
( \
cd ..; \
mv $$$${pkgidir}/* $$$${pkgsdir};\
cd $$$${pkgsdir}; \
meson setup --prefix $$$${pkgidir} build; \
cd build; \
ninja && ninja install; \
cd $$$${pkgidir}; \
)
endef
appimage_pkg_gpgme_configure = --enable-languages=cpp,qt \
--disable-gpg-test \
--disable-gpgsm-test
appimage_pkg_qtbase_configure = \
-DQT_BUILD_EXAMPLES=OFF \
-DQT_BUILD_TESTS=OFF \
-DBUILD_WITH_PCH=OFF \
-DFEATURE_accessibility=ON \
-DFEATURE_glib=OFF \
- -DFEATURE_opengl_desktop=ON \
+ -DFEATURE_dynamicgl=OFF \
+ -DFEATURE_egl=OFF \
+ -DFEATURE_opengl_desktop=OFF \
+ -DFEATURE_opengl_dynamic=OFF \
+ -DFEATURE_opengles2=OFF \
+ -DFEATURE_opengl=OFF \
+ -DINPUT_opengl=no \
-DFEATURE_pkg_config=ON \
-DFEATURE_sql_mysql=OFF \
-DFEATURE_sql_odbc=OFF \
-DFEATURE_sql_psql=OFF \
- -DFEATURE_system_freetype=ON \
+ -DFEATURE_qt_freetype=ON \
-DFEATURE_system_pcre=ON \
-DFEATURE_system_jpeg=ON \
-DFEATURE_system_zstd=ON \
-DFEATURE_xcb=ON \
-DFEATURE_use_gold_linker_alias=OFF \
-DCMAKE_MESSAGE_LOG_LEVEL=STATUS \
-DCMAKE_VERBOSE_MAKEFILE=ON
# do not create the huge icon resource files
appimage_pkg_breeze_icons_configure = -DBINARY_ICONS_RESOURCE=OFF
appimage_pkg_karchive_configure = -DWITH_BZIP2=OFF
appimage_pkg_kcompletion_configure = \
-DBUILD_DESIGNERPLUGIN=OFF
appimage_pkg_kconfigwidgets_configure = \
-DBUILD_DESIGNERPLUGIN=OFF
appimage_pkg_kconfig_configure = -DKCONFIG_USE_DBUS=OFF -DKCONFIG_USE_QML=OFF
appimage_pkg_kguiaddons_configure = -DWITH_WAYLAND=OFF
appimage_pkg_sonnet_configure = -DSONNET_USE_QML=OFF
appimage_pkg_ki18n_configure = -DBUILD_WITH_QML=OFF
appimage_pkg_kitemviews_configure = \
-DBUILD_DESIGNERPLUGIN=OFF
appimage_pkg_kwidgetsaddons_configure = \
-DBUILD_DESIGNERPLUGIN=OFF
# FIXME: Uses spaces in distribution text
appimage_pkg_kxmlgui_configure = \
-DBUILD_DESIGNERPLUGIN=OFF \
-DFORCE_DISABLE_KGLOBALACCEL=ON \
-DXMLGUI_DISTRIBUTION_TEXT=g10_Code_GmbH_AppImage
appimage_pkg_libkleo_configure = \
-DBOOST_INCLUDEDIR=/usr/include/boost169 \
-DBOOST_LIBRARYDIR=/usr/lib64/boost169
appimage_pkg_kleopatra_configure = \
-DBOOST_INCLUDEDIR=/usr/include/boost169 \
-DBOOST_LIBRARYDIR=/usr/lib64/boost169 \
-DDISABLE_KWATCHGNUPG=ON \
-DRELEASE_SERVICE_VERSION=AppImage-$(VERSION)
appimage_pkg_poppler_configure = \
-DENABLE_BOOST=OFF \
-DENABLE_NSS3=OFF \
-DENABLE_GOBJECT_INTROSPECTION=OFF \
-DENABLE_QT5=OFF \
-DENABLE_LCMS=OFF \
- -DENABLE_LIBCURL=OFF
+ -DENABLE_LIBCURL=OFF \
+ -DFONT_CONFIGURATION=generic
appimage_pkg_okular_configure = \
-DFORCE_NOT_REQUIRED_DEPENDENCIES="PlasmaActivities\;KF6Wallet\;KF6Purpose\;Qt6TextToSpeech\;LibZip\;KF6DocTools\;Phonon4Qt6\;LibSpectre\;KExiv2Qt6\;CHM\;DjVuLibre\;EPub\;QMobipocket\;Discount\;Qt6Qml\;Qt6DBus\;KF6Pty"
appimage_pkg_libical_configure = \
-DICAL_GLIB=false \
-DENABLE_GTK_DOC=false
appimage_pkg_prison_configure = \
-DWITH_QUICK=OFF \
-DWITH_MULTIMEDIA=OFF
appimage_pkg_kiconthemes_configure = \
-DKICONTHEMES_USE_QTQUICK=OFF
appimage_pkg_kcoreaddons_configure = -DKCOREADDONS_USE_QML=OFF
appimage_pkg_ktextwidgets_configure = -DWITH_TEXT_TO_SPEECH=OFF
appimage_pkg_kio_configure = -DWITH_WAYLAND=OFF
appimage_pkg_kwindowsystem_configure = -DKWINDOWSYSTEM_QML=OFF
appimage_pkg_xcb_util_cursor_configure = --enable-static --disable-shared
appimage_pkg_xcb_util_cursor_extracflags = -fPIC
appimage_pkg_zstd_conf_subdir = /build/cmake
appimage_pkg_zstd_configure = -DZSTD_BUILD_PROGRAMS=OFF
########################################################################
# Now do the bunch of the work. This is a bunch of dirty magic to
# integrate our special makefile into automake, while not actually
# including it (make should include it). This is in turn necessary
# because automake can't deal with the elegant magic in the actual
# Makefile.
define INCLUDE_BY_MAKE
include $(1)
endef
$(eval $(call INCLUDE_BY_MAKE,appimage.mk))
clean-local: clean-appimage
license.blurb: $(top_srcdir)/doc/license-page $(top_srcdir)/doc/GPLv3
cat $(top_srcdir)/doc/license-page $(top_srcdir)/doc/GPLv3 >$@
all-local: $(stampdir)/stamp-final
@echo "###################################################"
@echo " AppDir prepared successfully for the AppImage!"
@echo " Now run linuxdeploy to create the AppImage."
@echo "###################################################"
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sat, May 10, 8:53 AM (1 d, 7 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
c9/ab/6730d34fbdb52a4ca564a8f9ea63
Attached To
rW Gpg4win
Event Timeline
Log In to Comment