Page MenuHome GnuPG

No OneTemporary

diff --git a/docker/appimage/Dockerfile b/docker/appimage/Dockerfile
index 29a040f6..cec5f93a 100644
--- a/docker/appimage/Dockerfile
+++ b/docker/appimage/Dockerfile
@@ -1,105 +1,107 @@
# Dockerfile - docker/appimage
# Copyright (C) 2021 g10 Code GmbH
#
# Software engineering by Ingo Klöcker <dev@ingo-kloecker.de>
#
# This file is part of GnuPG.
#
# 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 centos:7
# Import the CentOS 7 package signing key after verifying its fingerprint.
# Then add the software collections repository from the CentOS SCLo SIG and
# import its package signing key after verifying the fingerprint.
# Ditto for the EPEL 7 package signing key.
RUN test $(gpg --with-colons --with-fingerprint < /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 | grep ^pub: | wc -l) = 1 \
&& gpg --with-colons --with-fingerprint < /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 | grep -q ^fpr:::::::::6341AB2753D78A78A7C27BB124C6A8A7F4A80EB5 \
&& rpmkeys --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 \
&& yum -y update \
&& yum -y install \
centos-release-scl \
&& test $(gpg --with-colons --with-fingerprint < /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo | grep ^pub: | wc -l) = 1 \
&& gpg --with-colons --with-fingerprint < /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo | grep -q ^fpr:::::::::C4DBD535B1FBBA14F8BA64A84EB84E71F2EE9D55 \
&& rpmkeys --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo \
&& yum -y update \
&& yum -y install \
epel-release \
&& test $(gpg --with-colons --with-fingerprint < /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 | grep ^pub: | wc -l) = 1 \
&& gpg --with-colons --with-fingerprint < /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 | grep -q ^fpr:::::::::91E97D7C4A5E96F17F3E888F6A2FAEA2352C64E5 \
&& rpmkeys --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 \
&& yum -y update \
&& rm -rf /root/.gnupg
RUN yum -y install \
at-spi2-core-devel \
automake \
boost169-devel \
bzip2 \
bzip2-devel \
cmake3 \
dbus-devel \
devtoolset-7-binutils \
devtoolset-7-gcc \
devtoolset-7-gcc-c++ \
devtoolset-7-make \
egl-wayland-devel \
file \
fontconfig-devel \
freetype-devel \
gettext \
git \
gnutls-devel \
gperf \
+ gtk-update-icon-cache \
libXrender-devel \
libicu-devel \
libjpeg-devel \
libpng-devel \
libxkbcommon-x11-devel \
mesa-libEGL-devel \
mesa-libGL-devel \
openldap-devel \
openssl11-devel \
patch \
pcre2-devel \
+ python36-lxml \
readline-devel \
stow \
wayland-devel \
wget \
which \
xcb-util-image-devel \
xcb-util-keysyms-devel \
xcb-util-renderutil-devel \
xcb-util-wm-devel \
xz-devel \
zlib-devel
# 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 https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage \
&& wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage \
&& 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
COPY build-appimage.sh /
RUN chmod +x build-appimage.sh
diff --git a/src/appimage/Makefile.am b/src/appimage/Makefile.am
index 6fc21e04..e014b202 100644
--- a/src/appimage/Makefile.am
+++ b/src/appimage/Makefile.am
@@ -1,181 +1,184 @@
# 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
root := /build
stampdir := $(root)/stamps
# Source packages for the AppImage
appimage_spkgs = sqlite libgpg-error libassuan npth libgcrypt libksba gnupg \
pinentry gpgme paperkey
# Qt packages for the AppImage
appimage_qtpkgs = qtbase qttools qtx11extras qtwayland qtsvg qttranslations
# KDE packages for the AppImage
appimage_kdepkgs = kconfig kwidgetsaddons ki18n extra-cmake-modules \
kcompletion kwindowsystem kcoreaddons libkleo kcodecs \
kmime kconfigwidgets kxmlgui kguiaddons kitemviews \
kiconthemes kleopatra breeze-icons kitemmodels karchive \
kcrash kdbusaddons
# Binary packages for the AppImage
#appimage_bpkgs = kde-l10n
appimage_pkg_gpgme_configure = --enable-languages=cpp,qt \
--disable-gpg-test \
--disable-gpgsm-test
# TODO: Disable Qt Sql?
# TODO: Disable Qt Testlib?
appimage_pkg_qtbase_configure = ../$$$${pkg_version}/configure -opensource \
-confirm-license \
-platform linux-g++ \
-release \
-shared \
-prefix $$$${pkgidir} \
-I '$(idir)/include' \
-L '$(idir)/lib' \
-opengl desktop \
-no-glib \
-accessibility \
-nomake examples \
-nomake tests \
-no-sql-mysql \
-no-sql-sqlite \
-no-sql-odbc \
-no-sql-psql \
-no-sql-tds \
-v \
OPENSSL_INCDIR=/usr/include/openssl11
define appimage_pkg_qtbase_post_install
(cd $$$${pkgbdir}; \
make install;)
endef
appimage_pkg_qttools_configure = \
"$(idir)/bin/qmake" ../$$$${pkg_version}
define appimage_pkg_qttools_post_install
(cd $$$${pkgbdir}; \
mkdir -p $$$${pkgidir}; \
cp -r bin lib include $$$${pkgidir})
endef
appimage_pkg_qtx11extras_configure = \
"$(idir)/bin/qmake" ../$$$${pkg_version}
define appimage_pkg_qtx11extras_post_install
(cd $$$${pkgbdir}; \
mkdir -p $$$${pkginstallroot}; \
make install INSTALL_ROOT=$$$${pkginstallroot}; \
mkdir -p $$$${pkgidir}; \
mv $$$${pkgbladir}/* $$$${pkgidir}; \
rm -rf $$$${pkginstallroot};)
endef
appimage_pkg_qtwayland_configure = \
"$(idir)/bin/qmake" ../$$$${pkg_version}
define appimage_pkg_qtwayland_post_install
(cd $$$${pkgbdir}; \
mkdir -p $$$${pkginstallroot}; \
make install INSTALL_ROOT=$$$${pkginstallroot}; \
mkdir -p $$$${pkgidir}; \
mv $$$${pkgbladir}/* $$$${pkgidir}; \
rm -rf $$$${pkginstallroot};)
endef
appimage_pkg_qtsvg_configure = \
"$(idir)/bin/qmake" ../$$$${pkg_version}
# XXX Adding the qtconf after qtsvg is a weird hack
# because somhow (yay qmake) zlib is not linked if
# the qt conf exists before that. The qt conf is
# needed for qttranslations to find the correct path
# of the translation tools.
define appimage_pkg_qtsvg_post_install
(cd $$$${pkgbdir}; \
mkdir -p $$$${pkgidir}; \
cp -r lib include plugins $$$${pkgidir}; \
mkdir -p $$$${pkgidir}/bin; \
echo "[Paths]" > $$$${pkgidir}/bin/qt.conf; \
echo "Prefix = .." >> $$$${pkgidir}/bin/qt.conf)
endef
appimage_pkg_qttranslations_configure = \
"$(idir)/bin/qmake" ../$$$${pkg_version}
define appimage_pkg_qttranslations_post_install
( rm -rf $$$${pkgidir}/translations; \
mkdir -p $$$${pkgidir}; \
cp -r $$$${pkgbdir}/translations $$$${pkgidir}/translations;)
endef
+# do not create the huge icon resource files
+appimage_pkg_breeze_icons_configure = -DBINARY_ICONS_RESOURCE=OFF
+
appimage_pkg_ki18n_configure = -DBUILD_WITH_QML=OFF
appimage_pkg_libkleo_configure = \
-DBOOST_INCLUDEDIR=/usr/include/boost169 \
-DBOOST_LIBRARYDIR=/usr/lib64/boost169
gpg4win_pkg_kleopatra_configure = \
-DFORCE_DISABLE_KCMUTILS=ON \
-DDISABLE_KWATCHGNUPG=ON \
-DRELEASE_SERVICE_VERSION=Gpg4win-$(VERSION)
appimage_pkg_kleopatra_configure = \
-DBOOST_INCLUDEDIR=/usr/include/boost169 \
-DBOOST_LIBRARYDIR=/usr/lib64/boost169 \
-DDISABLE_KWATCHGNUPG=ON \
-DRELEASE_SERVICE_VERSION=Gpg4win-$(VERSION)
# FIXME: Uses spaces in distribution text
appimage_pkg_kxmlgui_configure = \
-DFORCE_DISABLE_KGLOBALACCEL=ON \
-DXMLGUI_DISTRIBUTION_TEXT=g10_Code_GmbH_AppImage
########################################################################
# 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 " AppImage $(VERSION) successfully build!"
@echo " The AppImage can be found under src/installers"
@echo "###################################################"

File Metadata

Mime Type
text/x-diff
Expires
Thu, Jul 17, 12:58 AM (1 d, 18 h)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
5d/62/f7bf01018f9351dc397caef6ecfd

Event Timeline