Page Menu
Home
GnuPG
Search
Configure Global Search
Log In
Files
F18825812
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Size
27 KB
Subscribers
None
View Options
diff --git a/docker/appimage/build-appimage.sh b/docker/appimage/build-appimage.sh
index 6564fa20..590b0080 100644
--- a/docker/appimage/build-appimage.sh
+++ b/docker/appimage/build-appimage.sh
@@ -1,62 +1,62 @@
#!/bin/sh
# Build an AppImage of Kleopatra
# Copyright (C) 2021 g10 Code GmbH
#
# Software engineering by Ingo Klöcker <dev@ingo-kloecker.de>
#
# This file is part of GnuPG.
#
# GnuPG 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 3 of the License, or
# (at your option) any later version.
#
# GnuPG 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-3.0+
set -e
source /opt/rh/devtoolset-7/enable
cd /src/packages
./download.sh
cd /src
./configure --enable-appimage --enable-maintainer-mode --disable-manuals
cd /src
make
echo 'rootdir = $APPDIR/usr' >/build/AppDir/usr/bin/gpgconf.ctl
export PATH=/opt/linuxdeploy/usr/bin:$PATH
-export LD_LIBRARY_PATH=/build/AppDir/usr/lib
+export LD_LIBRARY_PATH=/build/install/lib
# tell the linuxdeploy qt-plugin where to find qmake
-export QMAKE=/build/AppDir/usr/bin/qmake
+export QMAKE=/build/install/bin/qmake
# create plugin directories expected by linuxdeploy qt-plugin
# workaround for
# [qt/stdout] Deploy[qt/stderr] terminate called after throwing an instance of 'boost::filesystem::filesystem_error'
# [qt/stderr] what(): boost::filesystem::directory_iterator::construct: No such file or directory: "/build/AppDir/usr/plugins/printsupport"
# ERROR: Failed to run plugin: qt (exit code: 6)
-mkdir -p /build/AppDir/usr/plugins/{printsupport,sqldrivers}
+mkdir -p /build/install/plugins/{printsupport,sqldrivers}
cd /build
-# remove existing wrapped AppRun, that may be left over from a previous run of
+# remove existing AppRun and wrapped AppRun, that may be left over from a previous run of
# linuxdeploy, to ensure that our custom AppRun is deployed
-rm -f /build/AppDir/AppRun.wrapped
+rm -f /build/AppDir/AppRun /build/AppDir/AppRun.wrapped
linuxdeploy --appdir /build/AppDir \
--desktop-file /build/AppDir/usr/share/applications/org.kde.kleopatra.desktop \
--icon-file /build/AppDir/usr/share/icons/hicolor/256x256/apps/kleopatra.png \
--custom-apprun /src/src/appimage/AppRun \
--plugin qt \
--output appimage \
2>&1 | tee /build/logs/linuxdeploy-kleopatra.log
diff --git a/src/appimage/appimage.mk.in b/src/appimage/appimage.mk.in
index dd2ab27f..33dd300d 100644
--- a/src/appimage/appimage.mk.in
+++ b/src/appimage/appimage.mk.in
@@ -1,459 +1,489 @@
# appimage.m4.in - Makefile for building AppImage of Kleopatra. -*- makefile -*-
# Copyright (C) 2005, 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+
# No servicable parts below this line :)
# These paths must be absolute, as we switch directories pretty often.
logdir := $(root)/logs
bdir := $(root)/build
appdir := $(root)/AppDir
-idir := $(appdir)/usr
+idir := $(root)/install
ipdir := $(root)/install/pkgs
tsdir := $(shell pwd)/${top_srcdir}
pdir := $(shell pwd)/${top_srcdir}/patches-appimage
+rsyncfilterdir := $(tsdir)/src/appimage/rsync-filters
# We collect the names of all pkg files used.
pkg_files =
# The build area is our scratch area, where we unpack, build and
# install the packages.
$(stampdir)/stamp-directories:
$(MKDIR) -p $(root)
$(MKDIR) -p $(stampdir)
$(MKDIR) -p $(logdir)
$(MKDIR) -p $(bdir)
$(MKDIR) -p $(idir)
$(MKDIR) -p $(ipdir)
+ $(MKDIR) -p $(appdir)/usr
touch $(bdir)/versioninfo.txt
touch $(stampdir)/stamp-directories
# Frob the name $1 by converting all '-' and '+' characters to '_'.
define FROB_macro
$(subst +,_,$(subst -,_,$(1)))
endef
# Get the variable $(1) (which may contain '-' and '+' characters).
define GETVAR
$($(call FROB_macro,$(1)))
endef
# Set a couple of common variables.
define SETVARS
set -e; \
pkg="$(call GETVAR,appimage_pkg_$(1))"; \
pkg_version="$(1)-$(call GETVAR,appimage_pkg_$(1)_version)"; \
pkglogdir="$(logdir)/$$$${pkg_version}"; \
pkgsdir="$(bdir)/$$$${pkg_version}"; \
pkgbdir="$(bdir)/$$$${pkg_version}-build"; \
pkgpdir="$(pdir)/$$$${pkg_version}"; \
pkgpbdir="$(pdir)/$(1)"; \
pkgidir="$(ipdir)/$$$${pkg_version}"; \
pkginstallroot="/tmp/$$$${pkg_version}"; \
pkgbladir="/tmp/$$$${pkg_version}/$(idir)"; \
pkg_dev="$(call GETVAR,appimage_pkg_$(1)_dev)"; \
pkg_version_dev="$(1)-dev-$(call GETVAR,appimage_pkg_$(1)_version)"; \
pkgidir_dev="$(ipdir)/$$$${pkg_version_dev}"; \
pkgcfg="$(call GETVAR,appimage_pkg_$(1)_configure)"; \
pkgextracflags="$(call GETVAR,appimage_pkg_$(1)_extracflags)"; \
pkgmkargs="$(call GETVAR,appimage_pkg_$(1)_make_args)"; \
pkgmkargs_inst="$(call GETVAR,appimage_pkg_$(1)_make_args_inst)";\
pkgmkdir="$(call GETVAR,appimage_pkg_$(1)_make_dir)"; \
pkgmkdir_inst="$(call GETVAR,appimage_pkg_$(1)_make_dir)"; \
+ pkgrsyncfilter="$(rsyncfilterdir)/$(1).rsync-filter"; \
export PKG_CONFIG_PATH="$(idir)/lib/pkgconfig"; \
export PATH="$(idir)/bin:$${PATH}"
endef
# Support macro. Unpack the archive $(1).
define DEFLATE_macro
rm -rf $$$${pkgsdir}; \
case "$(1)" in \
*/qtbase*.*.tar.xz) \
$(TAR) -xJ --transform='s,^qtbase-everywhere-src,qtbase,' -f "$(1)" ;; \
*/qttools*.*.tar.xz) \
$(TAR) -xJ --transform='s,^qttools-everywhere-src,qttools,' -f "$(1)" ;; \
*/qtx11extras*.*.tar.xz) \
$(TAR) -xJ --transform='s,^qtx11extras-everywhere-src,qtx11extras,' -f "$(1)" ;; \
*/qtwayland*.*.tar.xz) \
$(TAR) -xJ --transform='s,^qtwayland-everywhere-src,qtwayland,' -f "$(1)" ;; \
*/qtsvg*.*.tar.xz) \
$(TAR) -xJ --transform='s,^qtsvg-everywhere-src,qtsvg,' -f "$(1)" ;; \
*/qttranslations*.*.tar.xz) \
$(TAR) -xJ --transform='s,^qttranslations-everywhere-src,qttranslations,' -f "$(1)" ;; \
*/sqlite*.*.tar.gz) \
$(TAR) -xz --transform='s,^sqlite-autoconf-3270200,sqlite-3.27.2,' -f "$(1)" ;; \
*.tar.gz | *.tgz) \
$(TAR) xzf "$(1)" ;; \
*.tar.bz2 | *.tbz2 | *.tbz) \
$(TAR) xjf "$(1)" ;; \
*.tar.xz ) \
$(TAR) xJf "$(1)" ;; \
*.exe ) \
cp "$(1)" . ;; \
*.zip) \
$(UNZIP) -o "$(1)" ;; \
esac
endef
# Support macro. Strip all exe files below $(1).
define STRIP_macro
if test -z '$(DEBUG)'; then \
(cd $(1); \
for f in `find . -name \*.exe -o -name \*.dll`; do \
echo Calling $(STRIP) "$$$${pkg_version}/$$$${f}"; \
$(STRIP) "$$$${f}"; done); \
fi
endef
define GETDEPS
$(addprefix $(stampdir)/stamp-final-, $(call GETVAR,appimage_pkg_$(1)_deps))
endef
# Template for source packages.
define SPKG_template_
pkg_files += $(call GETVAR,appimage_pkg_$(1))
$(stampdir)/stamp-$(1)-00-unpack: $(stampdir)/stamp-directories $(call GETDEPS,$(1))
(cd $(bdir); \
$(call SETVARS,$(1)); \
$(call DEFLATE_macro,$$$${pkg}))
touch $(stampdir)/stamp-$(1)-00-unpack
$(stampdir)/stamp-$(1)-01-patch: $(stampdir)/stamp-$(1)-00-unpack
(shopt -s nullglob; \
$(call SETVARS,$(1)); \
for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \
(cd "$$$${pkgsdir}"; chmod +x "$$$${pfile}"; "$$$${pfile}") \
done)
touch $(stampdir)/stamp-$(1)-01-patch
$(stampdir)/stamp-$(1)-02-configure: $(stampdir)/stamp-$(1)-01-patch
($(call SETVARS,$(1)); \
set -x; \
mkdir -p "$$$${pkglogdir}"; \
mkdir -p "$$$${pkgbdir}"; \
cd "$$$${pkgbdir}"; \
eval "../$$$${pkg_version}/configure" \
--prefix="$$$${pkgidir}" \
$$$${pkgcfg} \
CFLAGS=\"-mms-bitfields $$$${pkgextracflags}\" | \
tee "$$$${pkglogdir}/configure.log"; \
shopt -s nullglob; \
for pfile in "$$$${pkgpbdir}"/*.postcfg \
"$$$${pkgpdir}"/*.postcfg ; do \
(cd "$$$${pkgsdir}"; "$$$${pfile}") \
done; \
for pfile in "$$$${pkgpbdir}"/*.postcfg-build \
"$$$${pkgpdir}"/*.postcfg-build ; do \
(cd "$$$${pkgbdir}"; "$$$${pfile}") \
done;) && \
touch $(stampdir)/stamp-$(1)-02-configure
$(stampdir)/stamp-$(1)-03-make: $(stampdir)/stamp-$(1)-02-configure
($(call SETVARS,$(1)); \
cd "$$$${pkgbdir}"; \
test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \
$(MAKE) $(AM_MAKEFLAGS) $(GPG4WIN_PARALLEL) $$$${pkgmkargs})
touch $(stampdir)/stamp-$(1)-03-make
# Note that post_install must come last because it may be empty and
# "; ;" is a syntax error.
$(stampdir)/stamp-$(1)-04-install: $(stampdir)/stamp-$(1)-03-make
($(call SETVARS,$(1)); \
cd "$$$${pkgbdir}"; \
cd "$$$${pkgmkdir_inst}"; \
$(MAKE) $(AM_MAKEFLAGS) $$$${pkgmkargs_inst} install; \
$(call STRIP_macro,"$$$${pkgidir}"); \
rm -f "$$$${pkgidir}/share/info/dir"; \
$(call appimage_pkg_$(call FROB_macro,$(1))_post_install))
touch $(stampdir)/stamp-$(1)-04-install
$(stampdir)/stamp-$(1)-05-rsync: $(stampdir)/stamp-$(1)-04-install
($(call SETVARS,$(1)); \
set -x; \
$(RSYNC) -a --link-dest="$$$${pkgidir}/" "$$$${pkgidir}/" "$(idir)/" )
touch $(stampdir)/stamp-$(1)-05-rsync
-$(stampdir)/stamp-final-$(1): $(stampdir)/stamp-$(1)-05-rsync
+$(stampdir)/stamp-$(1)-06-copy-to-appdir: $(stampdir)/stamp-$(1)-05-rsync
+ ($(call SETVARS,$(1)); \
+ set -x; \
+ if test -f "$$$${pkgrsyncfilter}"; then \
+ cp "$$$${pkgrsyncfilter}" "$$$${pkgidir}/.rsync-filter"; \
+ $(RSYNC) -av -FF --omit-dir-times --link-dest="$$$${pkgidir}/" "$$$${pkgidir}/" "$(appdir)/usr/"; \
+ fi )
+ touch $(stampdir)/stamp-$(1)-06-copy-to-appdir
+
+$(stampdir)/stamp-final-$(1): $(stampdir)/stamp-$(1)-06-copy-to-appdir
touch $(stampdir)/stamp-final-$(1)
.PHONY : clean-$(1)
clean-$(1):
($(call SETVARS,$(1)); \
(cd $(ipdir) && \
(rm -fR "$$$${pkg_version}")); \
rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}")
rm -f $(stampdir)/stamp-final-$(1) $(stampdir)/stamp-$(1)-*
endef
define SPKG_template
$(if $(filter-out no, $(call GETVAR,appimage_pkg_$(1))),
$(call SPKG_template_,$1))
endef
# Template for binary packages.
define BPKG_template_
pkg_files += $(call GETVAR,appimage_pkg_$(1))
pkg_files += $(call GETVAR,appimage_pkg_$(1)_dev)
$(stampdir)/stamp-$(1)-00-install: $(stampdir)/stamp-directories $(call GETDEPS,$(1))
($(call SETVARS,$(1)); \
$(MKDIR) "$$$${pkgidir}"; \
cd $$$${pkgidir}; \
$(call DEFLATE_macro,$$$${pkg}))
touch $(stampdir)/stamp-$(1)-00-install
# Note that post_install must come last because it may be empty and
# "; ;" is a syntax error.
$(stampdir)/stamp-$(1)-01-install-dev: $(stampdir)/stamp-$(1)-00-install
($(call SETVARS,$(1)); \
$(MKDIR) "$$$${pkgidir_dev}"; \
(cd $$$${pkgidir_dev}; \
$(call DEFLATE_macro,$$$${pkg_dev})); \
$(call appimage_pkg_$(call FROB_macro,$(1))_post_install))
touch $(stampdir)/stamp-$(1)-01-install-dev
$(stampdir)/stamp-$(1)-02-stow: $(stampdir)/stamp-$(1)-01-install-dev
($(call SETVARS,$(1)); \
cd $(ipdir); \
$(STOW) "$$$${pkg_version}")
touch $(stampdir)/stamp-$(1)-02-stow
$(stampdir)/stamp-$(1)-03-stow-dev: $(stampdir)/stamp-$(1)-02-stow
($(call SETVARS,$(1)); \
cd $(ipdir); \
$(STOW) "$$$${pkg_version_dev}")
touch $(stampdir)/stamp-$(1)-03-stow-dev
$(stampdir)/stamp-final-$(1): $(stampdir)/stamp-$(1)-03-stow-dev
touch $(stampdir)/stamp-final-$(1)
.PHONY : clean-$(1)
clean-$(1):
($(call SETVARS,$(1)); \
cd $(ipdir) && \
($(STOW) -D "$$$${pkg_version}" || true; \
$(STOW) -D "$$$${pkg_version_dev}" || true; \
rm -fR "$$$${pkg_version}" "$$$${pkg_version_dev}"))
rm -f $(stampdir)/stamp-final-$(1) $(stampdir)/stamp-$(1)-*
endef
define BPKG_template
$(if $(filter-out no, $(call GETVAR,appimage_pkg_$(1))),
$(call BPKG_template_,$1))
endef
# Template for Qt packages.
define QTPKG_template_
pkg_files += $(call GETVAR,appimage_pkg_$(1))
$(stampdir)/stamp-$(1)-00-unpack: $(stampdir)/stamp-directories $(call GETDEPS,$(1))
(cd $(bdir); \
$(call SETVARS,$(1)); \
$(call DEFLATE_macro,$$$${pkg}))
touch $(stampdir)/stamp-$(1)-00-unpack
$(stampdir)/stamp-$(1)-01-patch: $(stampdir)/stamp-$(1)-00-unpack
(shopt -s nullglob; \
$(call SETVARS,$(1)); \
for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \
(cd "$$$${pkgsdir}"; chmod +x "$$$${pfile}"; "$$$${pfile}") \
done)
touch $(stampdir)/stamp-$(1)-01-patch
$(stampdir)/stamp-$(1)-02-configure: $(stampdir)/stamp-$(1)-01-patch
($(call SETVARS,$(1)); \
set -x; \
mkdir -p "$$$${pkglogdir}"; \
mkdir -p "$$$${pkgbdir}"; \
cd "$$$${pkgbdir}"; \
$$$${pkgcfg} | \
tee "$$$${pkglogdir}/configure.log") && \
touch $(stampdir)/stamp-$(1)-02-configure
$(stampdir)/stamp-$(1)-03-make: $(stampdir)/stamp-$(1)-02-configure
($(call SETVARS,$(1)); \
cd "$$$${pkgbdir}"; \
test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \
export LD_LIBRARY_PATH=$(idir)/lib; \
$(MAKE) $(AM_MAKEFLAGS) $(GPG4WIN_PARALLEL) $$$${pkgmkargs})
touch $(stampdir)/stamp-$(1)-03-make
# Note that post_install must come last because it may be empty and
# "; ;" is a syntax error.
$(stampdir)/stamp-$(1)-04-install: $(stampdir)/stamp-$(1)-03-make
($(call SETVARS,$(1)); \
set -x; \
$(call appimage_pkg_$(call FROB_macro,$(1))_post_install))
touch $(stampdir)/stamp-$(1)-04-install
$(stampdir)/stamp-$(1)-05-rsync: $(stampdir)/stamp-$(1)-04-install
($(call SETVARS,$(1)); \
set -x; \
$(RSYNC) -a --link-dest="$$$${pkgidir}/" "$$$${pkgidir}/" "$(idir)/" )
touch $(stampdir)/stamp-$(1)-05-rsync
-$(stampdir)/stamp-final-$(1): $(stampdir)/stamp-$(1)-05-rsync
+$(stampdir)/stamp-$(1)-06-copy-to-appdir: $(stampdir)/stamp-$(1)-05-rsync
+ ($(call SETVARS,$(1)); \
+ set -x; \
+ if test -f "$$$${pkgrsyncfilter}"; then \
+ cp "$$$${pkgrsyncfilter}" "$$$${pkgidir}/.rsync-filter"; \
+ $(RSYNC) -av -FF --omit-dir-times --link-dest="$$$${pkgidir}/" "$$$${pkgidir}/" "$(appdir)/usr/"; \
+ fi )
+ touch $(stampdir)/stamp-$(1)-06-copy-to-appdir
+
+$(stampdir)/stamp-final-$(1): $(stampdir)/stamp-$(1)-06-copy-to-appdir
touch $(stampdir)/stamp-final-$(1)
.PHONY : clean-$(1)
clean-$(1):
($(call SETVARS,$(1)); \
(cd $(ipdir) && \
(rm -fR "$$$${pkg_version}")); \
rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}")
rm -f $(stampdir)/stamp-final-$(1) $(stampdir)/stamp-$(1)-*
endef
define QTPKG_template
$(if $(filter-out no, $(call GETVAR,appimage_pkg_$(1))),
$(call QTPKG_template_,$1))
endef
# Template for KDE packages.
define KDEPKG_template_
pkg_files += $(call GETVAR,appimage_pkg_$(1))
$(stampdir)/stamp-$(1)-00-unpack: $(stampdir)/stamp-directories $(call GETDEPS,$(1))
(cd $(bdir); \
$(call SETVARS,$(1)); \
$(call DEFLATE_macro,$$$${pkg}))
touch $(stampdir)/stamp-$(1)-00-unpack
$(stampdir)/stamp-$(1)-01-patch: $(stampdir)/stamp-$(1)-00-unpack
(shopt -s nullglob; \
$(call SETVARS,$(1)); \
cd "$$$${pkgsdir}"; \
sed -i 's/set(KF5_MIN_VERSION.*)/set(KF5_MIN_VERSION "5.77.0")/' CMakeLists.txt; \
sed -i 's/set(KF5_VERSION.*)/set(KF5_VERSION "5.77.0")/' CMakeLists.txt; \
sed -i 's/set(KMIME_VERSION.*)/set(KMIME_VERSION "5.2.40")/' CMakeLists.txt; \
sed -i 's/set(LIBKLEO_VERSION.*)/set(LIBKLEO_VERSION "5.4.40")/' CMakeLists.txt; \
sed -i 's/set(QT_REQUIRED_VERSION.*)/set(QT_REQUIRED_VERSION "5.15.0")/' CMakeLists.txt; \
for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \
(cd "$$$${pkgsdir}"; chmod +x "$$$${pfile}"; "$$$${pfile}") \
done)
touch $(stampdir)/stamp-$(1)-01-patch
$(stampdir)/stamp-$(1)-02-configure: $(stampdir)/stamp-$(1)-01-patch
(set -x; \
$(call SETVARS,$(1)); \
mkdir -p "$$$${pkglogdir}"; \
mkdir -p "$$$${pkgbdir}"; \
cd "$$$${pkgbdir}"; \
$(CMAKE) \
-DCMAKE_INSTALL_PREFIX="$$$${pkgidir}" \
-DCMAKE_PREFIX_PATH="$$$${pkgidir}" \
-DKDE_INSTALL_DATADIR="$$$${pkgidir}/share" \
-DBUILD_TESTING=False \
$$$${pkgcfg} $$$${pkgextracflags} "../$$$${pkg_version}" | \
tee "$$$${pkglogdir}/configure.log") && \
touch $(stampdir)/stamp-$(1)-02-configure
$(stampdir)/stamp-$(1)-03-make: $(stampdir)/stamp-$(1)-02-configure
($(call SETVARS,$(1)); \
cd "$$$${pkgbdir}"; \
test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \
export LD_LIBRARY_PATH=$(idir)/lib; \
$(MAKE) $(AM_MAKEFLAGS) $(GPG4WIN_PARALLEL) $$$${pkgmkargs})
touch $(stampdir)/stamp-$(1)-03-make
# Note that post_install must come last because it may be empty and
# "; ;" is a syntax error.
$(stampdir)/stamp-$(1)-04-install: $(stampdir)/stamp-$(1)-03-make
($(call SETVARS,$(1)); \
cd "$$$${pkgbdir}"; \
cd "$$$${pkgmkdir_inst}"; \
$(MAKE) $(AM_MAKEFLAGS) $$$${pkgmkargs_inst} install; \
$(call STRIP_macro,"$$$${pkgidir}"); \
$(call appimage_pkg_$(call FROB_macro,$(1))_post_install))
touch $(stampdir)/stamp-$(1)-04-install
$(stampdir)/stamp-$(1)-05-rsync: $(stampdir)/stamp-$(1)-04-install
($(call SETVARS,$(1)); \
set -x; \
$(RSYNC) -a --link-dest="$$$${pkgidir}/" "$$$${pkgidir}/" "$(idir)/" )
touch $(stampdir)/stamp-$(1)-05-rsync
-$(stampdir)/stamp-final-$(1): $(stampdir)/stamp-$(1)-05-rsync
+$(stampdir)/stamp-$(1)-06-copy-to-appdir: $(stampdir)/stamp-$(1)-05-rsync
+ ($(call SETVARS,$(1)); \
+ set -x; \
+ if test -f "$$$${pkgrsyncfilter}"; then \
+ cp "$$$${pkgrsyncfilter}" "$$$${pkgidir}/.rsync-filter"; \
+ $(RSYNC) -av -FF --omit-dir-times --link-dest="$$$${pkgidir}/" "$$$${pkgidir}/" "$(appdir)/usr/"; \
+ fi )
+ touch $(stampdir)/stamp-$(1)-06-copy-to-appdir
+
+$(stampdir)/stamp-final-$(1): $(stampdir)/stamp-$(1)-06-copy-to-appdir
touch $(stampdir)/stamp-final-$(1)
.PHONY : clean-$(1)
clean-$(1):
($(call SETVARS,$(1)); \
(cd $(ipdir) && \
(rm -fR "$$$${pkg_version}")); \
rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}")
rm -f $(stampdir)/stamp-final-$(1) $(stampdir)/stamp-$(1)-*
endef
define KDEPKG_template
$(if $(filter-out no, $(call GETVAR,appimage_pkg_$(1))),
$(call KDEPKG_template_,$1))
endef
# Insert the template for each source package.
$(foreach spkg, $(appimage_spkgs), $(eval $(call SPKG_template,$(spkg))))
# Insert the template for each binary package.
$(foreach bpkg, $(appimage_bpkgs), $(eval $(call BPKG_template,$(bpkg))))
# Insert the template for Qt packages.
$(foreach qtpkg, $(appimage_qtpkgs), $(eval $(call QTPKG_template,$(qtpkg))))
# Insert the template for KDE packages.
$(foreach kdepkg, $(appimage_kdepkgs), $(eval $(call KDEPKG_template,$(kdepkg))))
$(stampdir)/stamp-final: $(stampdir)/stamp-directories
$(stampdir)/stamp-final: $(addprefix $(stampdir)/stamp-final-,$(appimage_build_list))
touch $(stampdir)/stamp-final
$(bdir)/versioninfo.txt: $(stampdir)/stamp-final
touch $(bdir)/versioninfo.txt
all-appimage: $(stampdir)/stamp-final
# Just to check if we catched all stamps.
clean-stamps:
$(RM) -fR $(stampdir)
clean-appimage:
- $(RM) -fR $(root) $(stampdir) $(logdir) $(appdir)
+ $(RM) -fR $(bdir) $(idir) $(stampdir) $(logdir) $(appdir)
.PHONY : all-appimage clean-stamps clean-appimage
# @emacs_local_vars_begin@
# @emacs_local_vars_read_only@
# @emacs_local_vars_end@
diff --git a/src/appimage/rsync-filters/breeze-icons.rsync-filter b/src/appimage/rsync-filters/breeze-icons.rsync-filter
new file mode 100644
index 00000000..50dbce3e
--- /dev/null
+++ b/src/appimage/rsync-filters/breeze-icons.rsync-filter
@@ -0,0 +1 @@
++ /share/
diff --git a/src/appimage/rsync-filters/gnupg.rsync-filter b/src/appimage/rsync-filters/gnupg.rsync-filter
new file mode 100644
index 00000000..366a98e7
--- /dev/null
+++ b/src/appimage/rsync-filters/gnupg.rsync-filter
@@ -0,0 +1,10 @@
++ /bin/*
++ /libexec/*
+- /sbin/
+
++ /share/
++ /share/gnupg/
++ /share/gnupg/*
++ /share/locale/
++ /share/locale/**
+- /share/*
diff --git a/src/appimage/rsync-filters/karchive.rsync-filter b/src/appimage/rsync-filters/karchive.rsync-filter
new file mode 100644
index 00000000..ae1a64c2
--- /dev/null
+++ b/src/appimage/rsync-filters/karchive.rsync-filter
@@ -0,0 +1,4 @@
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/kcodecs.rsync-filter b/src/appimage/rsync-filters/kcodecs.rsync-filter
new file mode 100644
index 00000000..ae1a64c2
--- /dev/null
+++ b/src/appimage/rsync-filters/kcodecs.rsync-filter
@@ -0,0 +1,4 @@
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/kcompletion.rsync-filter b/src/appimage/rsync-filters/kcompletion.rsync-filter
new file mode 100644
index 00000000..ae1a64c2
--- /dev/null
+++ b/src/appimage/rsync-filters/kcompletion.rsync-filter
@@ -0,0 +1,4 @@
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/kconfig.rsync-filter b/src/appimage/rsync-filters/kconfig.rsync-filter
new file mode 100644
index 00000000..a132821e
--- /dev/null
+++ b/src/appimage/rsync-filters/kconfig.rsync-filter
@@ -0,0 +1,5 @@
+- /bin/
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/kconfigwidgets.rsync-filter b/src/appimage/rsync-filters/kconfigwidgets.rsync-filter
new file mode 100644
index 00000000..a132821e
--- /dev/null
+++ b/src/appimage/rsync-filters/kconfigwidgets.rsync-filter
@@ -0,0 +1,5 @@
+- /bin/
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/kcoreaddons.rsync-filter b/src/appimage/rsync-filters/kcoreaddons.rsync-filter
new file mode 100644
index 00000000..a132821e
--- /dev/null
+++ b/src/appimage/rsync-filters/kcoreaddons.rsync-filter
@@ -0,0 +1,5 @@
+- /bin/
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/kcrash.rsync-filter b/src/appimage/rsync-filters/kcrash.rsync-filter
new file mode 100644
index 00000000..ae1a64c2
--- /dev/null
+++ b/src/appimage/rsync-filters/kcrash.rsync-filter
@@ -0,0 +1,4 @@
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/kdbusaddons.rsync-filter b/src/appimage/rsync-filters/kdbusaddons.rsync-filter
new file mode 100644
index 00000000..a132821e
--- /dev/null
+++ b/src/appimage/rsync-filters/kdbusaddons.rsync-filter
@@ -0,0 +1,5 @@
+- /bin/
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/kguiaddons.rsync-filter b/src/appimage/rsync-filters/kguiaddons.rsync-filter
new file mode 100644
index 00000000..ae1a64c2
--- /dev/null
+++ b/src/appimage/rsync-filters/kguiaddons.rsync-filter
@@ -0,0 +1,4 @@
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/ki18n.rsync-filter b/src/appimage/rsync-filters/ki18n.rsync-filter
new file mode 100644
index 00000000..ae1a64c2
--- /dev/null
+++ b/src/appimage/rsync-filters/ki18n.rsync-filter
@@ -0,0 +1,4 @@
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/kiconthemes.rsync-filter b/src/appimage/rsync-filters/kiconthemes.rsync-filter
new file mode 100644
index 00000000..a132821e
--- /dev/null
+++ b/src/appimage/rsync-filters/kiconthemes.rsync-filter
@@ -0,0 +1,5 @@
+- /bin/
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/kitemmodels.rsync-filter b/src/appimage/rsync-filters/kitemmodels.rsync-filter
new file mode 100644
index 00000000..ae1a64c2
--- /dev/null
+++ b/src/appimage/rsync-filters/kitemmodels.rsync-filter
@@ -0,0 +1,4 @@
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/kitemviews.rsync-filter b/src/appimage/rsync-filters/kitemviews.rsync-filter
new file mode 100644
index 00000000..ae1a64c2
--- /dev/null
+++ b/src/appimage/rsync-filters/kitemviews.rsync-filter
@@ -0,0 +1,4 @@
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/kleopatra.rsync-filter b/src/appimage/rsync-filters/kleopatra.rsync-filter
new file mode 100644
index 00000000..014885a0
--- /dev/null
+++ b/src/appimage/rsync-filters/kleopatra.rsync-filter
@@ -0,0 +1,3 @@
++ /bin/
+- /lib64/
++ /share/
diff --git a/src/appimage/rsync-filters/kmime.rsync-filter b/src/appimage/rsync-filters/kmime.rsync-filter
new file mode 100644
index 00000000..ae1a64c2
--- /dev/null
+++ b/src/appimage/rsync-filters/kmime.rsync-filter
@@ -0,0 +1,4 @@
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/kwidgetsaddons.rsync-filter b/src/appimage/rsync-filters/kwidgetsaddons.rsync-filter
new file mode 100644
index 00000000..ae1a64c2
--- /dev/null
+++ b/src/appimage/rsync-filters/kwidgetsaddons.rsync-filter
@@ -0,0 +1,4 @@
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/kwindowsystem.rsync-filter b/src/appimage/rsync-filters/kwindowsystem.rsync-filter
new file mode 100644
index 00000000..ae1a64c2
--- /dev/null
+++ b/src/appimage/rsync-filters/kwindowsystem.rsync-filter
@@ -0,0 +1,4 @@
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/kxmlgui.rsync-filter b/src/appimage/rsync-filters/kxmlgui.rsync-filter
new file mode 100644
index 00000000..938f67d3
--- /dev/null
+++ b/src/appimage/rsync-filters/kxmlgui.rsync-filter
@@ -0,0 +1,5 @@
++ /etc/
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/libgpg-error.rsync-filter b/src/appimage/rsync-filters/libgpg-error.rsync-filter
new file mode 100644
index 00000000..f5ebc239
--- /dev/null
+++ b/src/appimage/rsync-filters/libgpg-error.rsync-filter
@@ -0,0 +1,12 @@
+- /bin/
+- /include/
+
+# explicitly copy libgpg-error.so to AppDir because linuxdeploy blacklists it
++ /lib/
++ /lib/libgpg-error.so*
+- /lib/*
+
++ /share/
++ /share/locale/
++ /share/locale/**
+- /share/*
diff --git a/src/appimage/rsync-filters/libkleo.rsync-filter b/src/appimage/rsync-filters/libkleo.rsync-filter
new file mode 100644
index 00000000..938f67d3
--- /dev/null
+++ b/src/appimage/rsync-filters/libkleo.rsync-filter
@@ -0,0 +1,5 @@
++ /etc/
+- /include/
+- /lib64/
+- /mkspecs/
++ /share/
diff --git a/src/appimage/rsync-filters/paperkey.rsync-filter b/src/appimage/rsync-filters/paperkey.rsync-filter
new file mode 100644
index 00000000..883e8a82
--- /dev/null
+++ b/src/appimage/rsync-filters/paperkey.rsync-filter
@@ -0,0 +1,2 @@
++ /bin/
+- /share/
diff --git a/src/appimage/rsync-filters/pinentry.rsync-filter b/src/appimage/rsync-filters/pinentry.rsync-filter
new file mode 100644
index 00000000..5590e888
--- /dev/null
+++ b/src/appimage/rsync-filters/pinentry.rsync-filter
@@ -0,0 +1,2 @@
++ /bin/*
+- /share/
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Mon, Dec 23, 3:26 PM (23 h, 53 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
f8/09/fbf955a32f1de7249aefafd205d9
Attached To
rW Gpg4win
Event Timeline
Log In to Comment