diff --git a/configure.ac b/configure.ac
index 07585fb3..5b316019 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,529 +1,532 @@
# configure.ac for GPG4Win
# Copyright (C) 2005, 2006, 2007, 2008, 2010, 2023 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 .
# (Process this file with autoconf to produce a configure script.)
AC_PREREQ(2.59)
min_automake_version="1.9.3"
# To build a release you need to create a tag with the version number
# (git tag -s gpg4win-2.x.y) and run "./autogen.sh --force". Please
# bump the version number immediately after the release and do another
# commit and push so that the git magic is able to work.
m4_define([mym4_package],[gpg4win])
m4_define([mym4_isvsd],m4_if(m4_esyscmd([ls packages/gnupg-2.*.tar.* | \
head -1 | cut -d. -f2 | tr -d '\n']),[2],
[yes], [no]))
m4_if(mym4_isvsd,yes,
[m4_define([mym4_major],[3])
m4_define([mym4_minor],[1])
m4_define([mym4_micro],[27])],
[m4_define([mym4_major],[4])
m4_define([mym4_minor],[2])
m4_define([mym4_micro],[1])])
# Below is m4 magic to extract and compute the git revision number,
# the decimalized short revision number, a beta version string and a
# flag indicating a development version (mym4_isbeta). Note that the
# m4 processing is done by autoconf and not during the configure run.
m4_define([mym4_verslist], m4_split(m4_esyscmd([./autogen.sh --find-version] \
mym4_package mym4_major mym4_minor mym4_micro),[:]))
m4_define([mym4_isbeta], m4_argn(2, mym4_verslist))
m4_define([mym4_ingit], m4_argn(3, mym4_verslist))
m4_define([mym4_version], m4_argn(4, mym4_verslist))
m4_define([mym4_betastr], m4_argn(6, mym4_verslist))
m4_define([mym4_revision], m4_argn(7, mym4_verslist))
m4_define([mym4_revision_dec], m4_argn(8, mym4_verslist))
AC_INIT([mym4_package],[mym4_version],[https://bugs.gnupg.org])
# Remember to update these version numbers also in the NEWS file.
MANUALVERSION_EINSTEIGER="2.0.2"
MANUALDATE_EINSTEIGER="30. Mai 2006"
MANUALVERSION_DURCHBLICKER="2.0.2"
MANUALDATE_DURCHBLICKER="30. Mai 2006"
MANUALVERSION_NOVICES="1.0.0"
MANUALDATE_NOVICES="Nov. 30, 2006"
MANUALVERSION_ADVANCED="0.0.0"
MANUALDATE_ADVANCED="Nov. 30, 2006"
COMPENDIUM_VERSION_DE="4.0.1"
COMPENDIUM_DATE_DE="3. April 2018"
COMPENDIUMINPROGRESS_DE="zuletzt leicht korrigiert am 3. April 2018"
COMPENDIUM_VERSION_EN="3.0.0"
COMPENDIUM_DATE_EN="30th November 2016"
COMPENDIUMINPROGRESS_EN="last minor changes from 30th November 2016"
MANUALINPROGRESS_DE=m4_if(my_isbeta,[yes],["~und evtl. seitdem weiter bearbeitet"])
MANUALINPROGRESS_EN=m4_if(my_isbeta,[yes],["~and may have been further edited"])
IS_VSD_BUILD=mym4_isvsd
PACKAGE=$PACKAGE_NAME
VERSION=$PACKAGE_VERSION
GIT_REVISION=mym4_revision
GIT_REVISION_DEC=mym4_revision_dec
GIT_BETASTRING=mym4_betastr
IS_BETA_BUILD=mym4_isbeta
IS_VSD_BUILD=mym4_isvsd
# XXX: It seems to be impossible in the way we call cmake to pass
# defines with spaces. So we use a nice "FOUR-PER-EM SPACE" U+2005 *cough*
DISTRIBUTION_TEXT=m4_if(mym4_isvsd, [yes], ["g10 Code GmbH"], ["Gpg4win"])
AC_CONFIG_SRCDIR(src/config.nsi.in)
AC_CONFIG_MACRO_DIR(m4)
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([tar-ustar])
AM_MAINTAINER_MODE
AC_CANONICAL_HOST
AM_CONFIG_HEADER(config.h)
# Language support
AM_PO_SUBDIRS
AC_SUBST(PACKAGE)
AC_SUBST(VERSION)
AC_SUBST(MANUALVERSION_EINSTEIGER)
AC_SUBST(MANUALDATE_EINSTEIGER)
AC_SUBST(MANUALVERSION_DURCHBLICKER)
AC_SUBST(MANUALDATE_DURCHBLICKER)
AC_SUBST(MANUALINPROGRESS_DE)
AC_SUBST(MANUALVERSION_NOVICES)
AC_SUBST(MANUALDATE_NOVICES)
AC_SUBST(MANUALVERSION_ADVANCED)
AC_SUBST(MANUALDATE_ADVANCED)
AC_SUBST(MANUALINPROGRESS_EN)
AC_SUBST(COMPENDIUM_VERSION_DE)
AC_SUBST(COMPENDIUM_DATE_DE)
AC_SUBST(COMPENDIUMINPROGRESS_DE)
AC_SUBST(COMPENDIUM_VERSION_EN)
AC_SUBST(COMPENDIUM_DATE_EN)
AC_SUBST(COMPENDIUMINPROGRESS_EN)
AC_SUBST(GIT_BETASTRING)
AC_SUBST(IS_BETA_BUILD)
AC_SUBST(IS_VSD_BUILD)
AC_SUBST(DISTRIBUTION_TEXT)
# Generate extended version information. Note, that for NSIS use we
# must not translate the dots to commas in the BUILD_FILEVERSION.
BUILD_TIMESTAMP=`date --iso-8601=minutes`
BUILD_ISODATE=`date --iso-8601`
changequote(,)dnl
BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./'`
changequote([,])dnl
BUILD_FILEVERSION="${BUILD_FILEVERSION}${GIT_REVISION_DEC}"
AC_SUBST(BUILD_TIMESTAMP)
AC_SUBST(BUILD_ISODATE)
AC_SUBST(BUILD_FILEVERSION)
# The final release is copied to an archive server. The default
# location may be changed by setting the RELEASEHOST envvar.
if test -z "$RELEASEHOST" ; then
RELEASEHOST="vigenere:tarballs/gpg4win"
if test "${IS_BETA_BUILD}" = yes ; then
RELEASEHOST="${RELEASEHOST}/Beta"
fi
fi
AC_SUBST(RELEASEHOST)
# Substitutions to set generated files in a Emacs buffer to read-only.
AC_SUBST(emacs_local_vars_begin, ['Local Variables:'])
AC_SUBST(emacs_local_vars_read_only, ['buffer-read-only: t'])
AC_SUBST(emacs_local_vars_end, ['End:'])
GPG4WIN_BUILD_RELEASE(gpg4win, no)
GPG4WIN_BUILD_RELEASE(appimage, no)
# For development it is often faster to build without manuals.
AC_ARG_ENABLE(manuals,
AC_HELP_STRING([--disable-manuals],
[Do not build the manuals (for debugging)]),
build_manuals=$enableval,
build_manuals=yes)
AM_CONDITIONAL(BUILD_MANUALS, test "$build_manuals" = yes)
# Additionaly enable building gpgex for another host
AC_ARG_WITH([additional-gpgex-host],
AC_HELP_STRING([--with-additional-gpgex-host=HOST],
[Additionaly build gpgex for this host]),
[if test "$withval" = yes; then
AC_MSG_FAILURE(
[--with-additional-gpgex-host was given,
but no host specified])
else
gpgex_host=$withval
fi
],
gpgex_host=no)
if test "$gpgex_host" != no; then
GPGEX_ADD_HOST="$gpgex_host"
fi
AC_SUBST(GPGEX_ADD_HOST)
AC_ARG_ENABLE(fast-makensis,
AC_HELP_STRING([--enable-fast-makensis],
[Use a less efficient compressor to speed up building]),
use_fast_makensis=$enableval,
use_fast_makensis=no)
if test "$use_fast_makensis" = yes; then
EXTRA_MAKENSIS_FLAGS="${EXTRA_MAKENSIS_FLAGS} -DDISABLE_LZMA=1"
fi
AC_SUBST(EXTRA_MAKENSIS_FLAGS)
#
# Set variables for use by automake makefiles.
#
AM_CONDITIONAL(BUILD_GPG4WIN, test "$build_gpg4win" = "yes")
AM_CONDITIONAL(BUILD_APPIMAGE, test "$build_appimage" = "yes")
# Required tools.
AC_PROG_CC
AC_PROG_CPP
AC_PROG_RANLIB
AC_CHECK_TOOL(AR, ar, :)
AC_CHECK_TOOLS(STRIP, strip)
AC_CHECK_TOOLS(DLLTOOL, dlltool)
AC_CHECK_PROGS(MAKE, make)
AC_CHECK_PROGS(UNZIP, unzip)
AC_CHECK_PROGS(TAR, tar)
AC_CHECK_PROGS(MKDIR, mkdir)
AC_CHECK_PROGS(CP, cp)
AC_CHECK_PROGS(RM, rm)
AC_CHECK_PROGS(STOW, stow)
AC_CHECK_PROGS(MAKENSIS, makensis)
AC_CHECK_PROGS(ZCAT, zcat)
AC_CHECK_PROGS(TEXI2DVI, texi2dvi)
AC_CHECK_PROGS(DVIPDF, dvipdf)
AC_CHECK_PROGS(CONVERT, convert)
AC_CHECK_PROGS(SHA1SUM, sha1sum)
AC_CHECK_PROGS(MSGFMT, msgfmt)
AC_CHECK_PROGS(GITLOG_TO_CHANGELOG, gitlog-to-changelog,
[build-aux/gitlog-to-changelog])
AC_CHECK_PROGS(BUILD_CC, gcc cc)
AC_CHECK_PROGS(CMAKE, cmake3 cmake)
AC_CHECK_PROGS(RSYNC, rsync)
AC_PROG_INSTALL
if test -n "$GPGEX_ADD_HOST"; then
AC_CHECK_TOOLS(STRIP_EX, ${GPGEX_ADD_HOST}-strip)
fi
if test -z "$GPG4WIN_PARALLEL"; then
JOBS=$(nproc 2>/dev/null || echo 1)
GPG4WIN_PARALLEL=-j$JOBS
AC_MSG_NOTICE([Using autodetected $JOBS make jobs. You can override this by setting GPG4WIN_PARALLEL.])
fi
AC_SUBST(GPG4WIN_PARALLEL)
required_tools="MAKE TAR MKDIR CP RM ZCAT SHA1SUM MSGFMT BUILD_CC CMAKE"
if test "$build_gpg4win" = yes ; then
required_tools="$required_tools DLLTOOL UNZIP STOW MAKENSIS TEXI2DVI DVIPDF CONVERT"
fi
if test "$build_appimage" = yes ; then
required_tools="$required_tools RSYNC"
fi
missing_tools=
for i in $required_tools; do
eval tmp='$'$i
if test -z "$tmp"; then
missing_tools="$missing_tools `echo $i | tr 'A-Z' 'a-z'`"
fi
done
if test "$build_gpg4win" = yes ; then
# Try to find the KF5ConfigConfig to set up host tooling
# variable for the kconfig compiler.
# A variable path here would probably be better but we cant
# use $libdir to avoid it beeing required to configure gpg4win
# build with a multiarch libdir set.
kf5_host_tooling="/usr/lib/x86_64-linux-gnu/cmake"
if test ! -f "$kf5_host_tooling/KF5Config/KF5ConfigConfig.cmake"; then
missing_tools="$missing_tools libkf5config-dev"
fi
AC_SUBST(kf5_host_tooling)
GPG4WIN_RUNTIME_LIBRARY(libstdc++-6)
GPG4WIN_RUNTIME_LIBRARY(libwinpthread-1)
if test -f "/usr/lib/gcc/i686-w64-mingw32/10-win32/libgcc_s_dw2-1.dll"; then
AC_MSG_NOTICE([Using dw2 exceptions.])
GPG4WIN_RUNTIME_LIBRARY(libgcc_s_dw2-1)
$CP /dev/null src/libgcc_s_sjlj-1.dll-x
else
AC_MSG_NOTICE([Using sjlj exceptions.])
GPG4WIN_RUNTIME_LIBRARY(libgcc_s_sjlj-1)
$CP /dev/null src/libgcc_s_dw2-1.dll-x
fi
fi
AC_CHECK_PROGS(WGET, wget)
# Packages for Gpg4Win.
if test "$build_gpg4win" = yes ; then
gpg4win_dup_sources=""
GPG4WIN_SPKG([zlib])
GPG4WIN_BPKG_GTK([pkgconfig])
GPG4WIN_SPKG([bzip2])
GPG4WIN_SPKG([libgpg-error], [libiconv gettext])
GPG4WIN_SPKG([libassuan], [libgpg-error])
GPG4WIN_SPKG([scute], [libgpg-error libassuan])
GPG4WIN_SPKG([pinentry], [qtbase libassuan libiconv])
GPG4WIN_SPKG([gpgme], [libgpg-error libassuan qtbase])
GPG4WIN_SPKG([gpgol], [gpgme libassuan])
GPG4WIN_SPKG([gpgex], [libassuan])
GPG4WIN_SPKG([paperkey])
GPG4WIN_SPKG([libiconv])
GPG4WIN_SPKG([gettext], [libiconv])
GPG4WIN_SPKG([libpng], [zlib])
GPG4WIN_SPKG([jpeg])
# Packages needed for gpgex
GPG4WIN_SPKGEX([libgpg-error])
GPG4WIN_SPKGEX([libassuan], [libgpg-error])
GPG4WIN_SPKGEX([gpgex], [libassuan])
GPG4WIN_SPKGEX([gpgme], [libgpg-error libassuan])
GPG4WIN_SPKGEX([gpgol], [gpgme])
GPG4WIN_IPKG([compendium])
# The GnuPG Package.
GPG4WIN_BPKG_BINSRC([gnupg-w32])
GPG4WIN_BPKG_MSISRC([gnupg-msi])
# Qt related stuff.
GPG4WIN_SPKG([qtbase])
GPG4WIN_SPKG([qttools], [qtbase])
GPG4WIN_SPKG([qttranslations], [qtsvg qttools qtwinextras])
GPG4WIN_SPKG([qtwinextras], [qtbase])
GPG4WIN_SPKG([qtsvg], [qtbase])
GPG4WIN_KDEPKG([tiff])
GPG4WIN_KDEPKG([openjpeg], [tiff jpeg])
GPG4WIN_KDEPKG([breeze-icons], [extra-cmake-modules qtbase])
- GPG4WIN_KDEPKG([kleopatra], [kio gnupg-w32 breeze-icons kxmlgui libkleo kitemmodels qttranslations ktextwidgets])
+ GPG4WIN_KDEPKG([kleopatra], [mimetreeparser kio gnupg-w32 breeze-icons kxmlgui libkleo kitemmodels qttranslations ktextwidgets])
GPG4WIN_KDEPKG([extra-cmake-modules])
GPG4WIN_KDEPKG([kconfig], [qtbase qttools extra-cmake-modules])
GPG4WIN_KDEPKG([ki18n], [qtbase gettext qttools extra-cmake-modules])
GPG4WIN_KDEPKG([kwidgetsaddons], [kconfig qttools qtbase])
GPG4WIN_KDEPKG([kcompletion], [kwidgetsaddons])
GPG4WIN_KDEPKG([kwindowsystem], [qtbase qtwinextras qttools])
GPG4WIN_KDEPKG([kcoreaddons], [qtbase qttools])
GPG4WIN_KDEPKG([kcodecs], [qtbase qttools])
GPG4WIN_KDEPKG([kguiaddons], [qtbase qttools])
GPG4WIN_KDEPKG([kmime], [kcodecs ki18n])
GPG4WIN_KDEPKG([kconfigwidgets], [kwidgetsaddons kguiaddons ki18n kcodecs kconfig])
GPG4WIN_KDEPKG([kitemviews], [qtbase qttools])
GPG4WIN_KDEPKG([kitemmodels], [qtbase qttools])
GPG4WIN_KDEPKG([karchive], [qtbase qttools extra-cmake-modules])
GPG4WIN_KDEPKG([kcrash], [kwindowsystem kcoreaddons])
GPG4WIN_KDEPKG([solid], [qttools qtbase extra-cmake-modules])
GPG4WIN_KDEPKG([kjobwidgets], [kwidgetsaddons kcoreaddons qtbase extra-cmake-modules])
GPG4WIN_KDEPKG([kservice], [kconfig kcoreaddons ki18n])
GPG4WIN_KDEPKG([kbookmarks], [kconfig kxmlgui kcoreaddons kconfigwidgets kwidgetsaddons kcodecs])
GPG4WIN_KDEPKG([kio], [kcrash kjobwidgets solid kservice kbookmarks kwidgetsaddons kxmlgui kwindowsystem karchive kconfig kcoreaddons ki18n])
GPG4WIN_KDEPKG([kiconthemes], [qtsvg kconfigwidgets karchive])
GPG4WIN_KDEPKG([kxmlgui], [kiconthemes kconfigwidgets kitemviews ktextwidgets])
GPG4WIN_KDEPKG([libkleo], [kmime kconfigwidgets kwindowsystem kcompletion gpgme])
GPG4WIN_KDEPKG([gpg4win-tools], [libkleo gpgme])
GPG4WIN_KDEPKG([threadweaver], [qtbase extra-cmake-modules])
GPG4WIN_KDEPKG([freetype], [zlib bzip2])
GPG4WIN_KDEPKG([sonnet], [qtbase qttools])
GPG4WIN_KDEPKG([ktextwidgets], [sonnet kcompletion kconfig kconfigwidgets ki18n kwidgetsaddons])
GPG4WIN_KDEPKG([poppler], [libpng openjpeg tiff gpgme kio qtbase freetype])
GPG4WIN_KDEPKG([kparts], [kio kservice kxmlgui kconfigwidgets kwidgetsaddons ktextwidgets])
GPG4WIN_KDEPKG([okular], [kparts gpgme kio poppler threadweaver qtsvg])
+ GPG4WIN_KDEPKG([libical])
+ GPG4WIN_KDEPKG([kcalendarcore], [qtbase libical extra-cmake-modules])
+ GPG4WIN_KDEPKG([mimetreeparser], [kwidgetsaddons ki18n kmime kcodecs kcalendarcore])
GPG4WIN_FINALIZE
fi
# Packages for the AppImage
if test "$build_appimage" = yes ; then
appimage_dup_sources=""
APPIMAGE_SPKG([freetype])
APPIMAGE_SPKG([sqlite])
APPIMAGE_SPKG([libgpg-error])
APPIMAGE_SPKG([libassuan], [libgpg-error])
APPIMAGE_SPKG([npth])
APPIMAGE_SPKG([libgcrypt], [libgpg-error])
APPIMAGE_SPKG([libksba], [libgpg-error])
APPIMAGE_SPKG([ntbtls], [libgcrypt libksba])
APPIMAGE_SPKG([gnupg], [libgpg-error libassuan npth libgcrypt libksba sqlite ntbtls])
APPIMAGE_SPKG([pinentry], [qtbase qtx11extras])
# Note that GPGME needs Qt
APPIMAGE_SPKG([gpgme], [libgpg-error libassuan qtbase])
APPIMAGE_SPKG([paperkey])
# Qt related stuff.
# (dependency on gnupg is only to make sure gnupg is build first so
# that we don't need to wait for the long running Qt builds)
APPIMAGE_SPKG([qtbase], [freetype gnupg])
APPIMAGE_SPKG([qttools], [qtbase])
APPIMAGE_SPKG([qttranslations], [qtsvg qttools qtx11extras])
APPIMAGE_SPKG([qtx11extras], [qtbase])
APPIMAGE_SPKG([qtwayland], [qtbase])
APPIMAGE_SPKG([qtsvg], [qtbase])
# KDE Frameworks Tier 1
APPIMAGE_KDEPKG([extra-cmake-modules], [qttools])
APPIMAGE_KDEPKG([breeze-icons], [extra-cmake-modules qtbase])
APPIMAGE_KDEPKG([karchive], [qtbase qttools extra-cmake-modules])
APPIMAGE_KDEPKG([kauth], [qtbase qttools extra-cmake-modules])
APPIMAGE_KDEPKG([kcodecs], [qtbase qttools extra-cmake-modules])
APPIMAGE_KDEPKG([kconfig], [qtbase qttools extra-cmake-modules])
APPIMAGE_KDEPKG([kcoreaddons], [qtbase qttools extra-cmake-modules])
APPIMAGE_KDEPKG([kdbusaddons], [qtbase qttools extra-cmake-modules])
APPIMAGE_KDEPKG([kguiaddons], [qtbase qttools extra-cmake-modules])
APPIMAGE_KDEPKG([ki18n], [qtbase qttools extra-cmake-modules])
APPIMAGE_KDEPKG([kitemmodels], [qtbase qttools extra-cmake-modules])
APPIMAGE_KDEPKG([kitemviews], [qtbase qttools extra-cmake-modules])
APPIMAGE_KDEPKG([kwidgetsaddons], [kconfig qttools qtbase])
APPIMAGE_KDEPKG([kwindowsystem], [qtbase qtx11extras extra-cmake-modules])
APPIMAGE_KDEPKG([solid], [qtbase extra-cmake-modules])
APPIMAGE_KDEPKG([sonnet], [qtbase extra-cmake-modules])
APPIMAGE_KDEPKG([threadweaver], [qtbase extra-cmake-modules])
# KDE Frameworks Tier 2
APPIMAGE_KDEPKG([kactivities], [kwindowsystem])
APPIMAGE_KDEPKG([kcompletion], [kwidgetsaddons])
APPIMAGE_KDEPKG([kcrash], [kwindowsystem kcoreaddons])
APPIMAGE_KDEPKG([kjobwidgets], [kwidgetsaddons kcoreaddons qtbase extra-cmake-modules])
# KDE Frameworks Tier 3
APPIMAGE_KDEPKG([kconfigwidgets], [kwidgetsaddons kguiaddons ki18n kcodecs kconfig])
APPIMAGE_KDEPKG([kiconthemes], [qtsvg kconfigwidgets karchive])
APPIMAGE_KDEPKG([ktextwidgets], [sonnet kcompletion kconfig kconfigwidgets ki18n kwidgetsaddons])
APPIMAGE_KDEPKG([kxmlgui], [kiconthemes kconfigwidgets kitemviews ktextwidgets])
APPIMAGE_KDEPKG([kbookmarks], [kconfig kxmlgui kcoreaddons kconfigwidgets kwidgetsaddons kcodecs])
APPIMAGE_KDEPKG([kservice], [kconfig kcoreaddons ki18n])
APPIMAGE_KDEPKG([kio], [kcrash kjobwidgets solid kservice kbookmarks kwidgetsaddons kxmlgui kwindowsystem karchive kconfig kcoreaddons ki18n kauth])
APPIMAGE_KDEPKG([kparts], [kio kservice kxmlgui kconfigwidgets kwidgetsaddons ktextwidgets])
# KDE PIM
APPIMAGE_KDEPKG([kmime], [kcodecs ki18n])
APPIMAGE_KDEPKG([libkleo], [kmime kconfigwidgets kwindowsystem kcompletion gpgme])
APPIMAGE_KDEPKG([kleopatra], [gnupg gpgme breeze-icons kio kxmlgui libkleo kitemmodels qttranslations kdbusaddons])
# Okular/Poppler
APPIMAGE_KDEPKG([poppler], [gpgme kio qtbase freetype])
APPIMAGE_KDEPKG([okular], [kparts gpgme kio poppler threadweaver qtsvg kactivities])
APPIMAGE_FINALIZE
fi
# Throw an error if required tools are missing
if test -n "$missing_tools"; then
for i in $missing_tools; do
AC_MSG_NOTICE([$i is missing])
done
AC_MSG_ERROR([[
***
*** Required tools not found. Please consult the above messages
*** and install them before running configure again.
***]])
fi
# Throw an error if any duplicate source packages have been found
if test -n "$gpg4win_dup_sources"; then
tmp=
for i in $gpg4win_dup_sources; do
tmp="$tmp
$i"
done
tmp2="
You might remove them with:"
for i in $gpg4win_rm_candidates; do
if ! grep -q $(basename $i) packages/packages.common packages/packages.3 packages/packages.4; then
tmp2="$tmp2
rm $i"
fi
done
AC_MSG_ERROR([Packages with more that one source version:$tmp$tmp2])
fi
if test -n "$appimage_dup_sources"; then
tmp=
for i in $appimage_dup_sources; do
tmp="$tmp
$i"
done
tmp2="
You might remove them with:"
for i in $appimage_rm_candidates; do
if ! grep -q $(basename $i) packages/packages.common packages/packages.3 packages/packages.4; then
tmp2="$tmp2
rm $i"
fi
done
AC_MSG_ERROR([Packages with more that one source version:$tmp$tmp2])
fi
# Finalize.
AC_CONFIG_FILES(Makefile)
AC_CONFIG_FILES(packages/Makefile src/Makefile po/Makefile.in)
AC_CONFIG_FILES(po/build-cc)
AC_CONFIG_FILES(src/config.nsi src/gpg4win.mk)
AC_CONFIG_FILES(doc/Makefile)
AC_CONFIG_FILES(doc/logo/Makefile)
AC_CONFIG_FILES(doc/manual/Makefile doc/manual/version.tex)
AC_CONFIG_FILES(src/toolchain.cmake)
AC_CONFIG_FILES(src/appimage/Makefile src/appimage/appimage.mk)
AC_CONFIG_FILES(src/appimage/rsync-filters/Makefile)
AC_OUTPUT
# Throw a warning if optional tools are missing
if test -n "$missing_opt_tools"; then
AC_MSG_WARN([[
***
*** Some tools not found. They may or may not be needed depending on
*** the packages you want to include. For example GLIB and GTK+
*** require certain tools; you may need to install a recent version of
*** GLIB and GTK+ on the build machine to allow for cross-compiling.
***]])
for i in $missing_opt_tools; do
AC_MSG_NOTICE([$i is missing])
done
fi
echo -n "
$PACKAGE_NAME-$PACKAGE_VERSION prepared for make
Revision: ${GIT_REVISION} (${GIT_REVISION_DEC})
32bit platform: $host
64bit platform: ${GPGEX_ADD_HOST}
Distribution: ${DISTRIBUTION_TEXT}
"
if test -n "$JOBS"; then
echo " make jobs: ${JOBS}"
else
echo ""
fi
diff --git a/packages/gen-frameworks.sh b/packages/gen-frameworks.sh
index 66b22920..52b5c6f4 100755
--- a/packages/gen-frameworks.sh
+++ b/packages/gen-frameworks.sh
@@ -1,119 +1,120 @@
#!/bin/bash
# Copyright (C) 2016 Intevation GmbH
# Copyright (C) 2021 g10 Code GmbH
#
# Software engineering by Ingo Klöcker
#
# 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 .
#
# SPDX-License-Identifier: GPL-2.0+
# Grab the version information for KDE Frameworks and generate a text block
# that can be copy and pasted into packages.current.
set -e
if [ -z "$1" ]; then
echo "Usage $0 > snippet"
exit 1
fi
FRAMEWORKS="extra-cmake-modules
kactivities
kconfig
ki18n
kwidgetsaddons
kcompletion
kwindowsystem
kcoreaddons
kcodecs
kconfigwidgets
kdbusaddons
kxmlgui
kguiaddons
kitemviews
kitemmodels
kiconthemes
breeze-icons
karchive
kcrash
kio
kbookmarks
kservice
solid
kjobwidgets
threadweaver
kparts
ktextwidgets
- sonnet"
+ sonnet
+ kcalendarcore"
fullversion=$1
case ${fullversion} in
*.*.*)
majorversion=${fullversion%.*}
;;
*.*)
majorversion=${fullversion}
fullversion=${majorversion}.0
echo "Using full version ${fullversion}"
;;
*)
echo "Invalid version ${fullversion}"
exit 1
;;
esac
curdate=$(date +%Y-%m-%d)
KEYRING=$(dirname $0)/kde-release-keys.gpg
server=https://download.kde.org/stable/frameworks
echo "server ${server}"
tmpdir=$(mktemp -d -t gen-frameworks.XXXXXXXXXX)
for fw in $FRAMEWORKS; do
# Download packages over https now and verify that the signature matches
tarfile="$fw-${fullversion}.tar.xz"
tarfileurl="${server}/$majorversion/${tarfile}"
if ! curl -L --silent --show-error --fail "${tarfileurl}" > "$tmpdir/${tarfile}"; then
echo "Downloading ${tarfileurl} failed"
exit 1
fi
sigfile="${tarfile}.sig"
sigfileurl="${tarfileurl}.sig"
if ! curl -L --silent --show-error --fail "${sigfileurl}" > "$tmpdir/${sigfile}"; then
echo "Downloading ${sigfileurl} failed"
exit 1
fi
# Check the signature
if ! gpgv --keyring "$KEYRING" "$tmpdir/${sigfile}" "$tmpdir/${tarfile}"; then
echo "Signature for $tmpdir/${tarfile} is not valid!"
exit 1
fi
sha2=$(sha256sum $tmpdir/${tarfile} | cut -d ' ' -f 1)
echo "# $fw"
echo "# last changed: $curdate"
echo "# by: ah"
echo "# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)"
echo "file $majorversion/${tarfile}"
echo "chk $sha2"
echo ""
done
rm -r $tmpdir
diff --git a/packages/gen-tarball.sh b/packages/gen-tarball.sh
index 901a0ef0..baf842f4 100755
--- a/packages/gen-tarball.sh
+++ b/packages/gen-tarball.sh
@@ -1,136 +1,139 @@
#!/bin/bash
# Copyright (C) 2021 g10 Code GmbH
#
# Software engineering by Ingo Klöcker
#
# 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 .
#
# SPDX-License-Identifier: GPL-2.0+
# Packages the current HEAD of a git repository as tarball and generates
# a text block that can be copy and pasted into packages.current.
set -e
if [ -z "$1" ]; then
echo "Usage: $0 PACKAGE"
echo "where PACKAGE is either the name of a supported library or application, e.g. 'kleopatra',"
echo "or the path of a local Git repository, e.g. '~/src/kleopatra',"
echo "or the URL of a remote Git repository, e.g. 'https://invent.kde.org/pim/kleopatra.git'."
exit 1
fi
package=$1
is_gpg="no"
is_w32="no"
branch="master"
case ${package} in
*/*)
repo=${package%/}
package=$(basename ${repo})
package=${package%.git}
;;
gnupg | gpgme | libassuan | libgcrypt | libgpg-error | \
libksba | npth | pinentry | scute | ntbtls)
repo=git://git.gnupg.org/${package}.git
is_gpg="yes"
;;
gpgol | gpgex)
repo=git://git.gnupg.org/${package}.git
is_gpg="yes"
is_w32="yes"
;;
gpg4win-tools)
repo=git://git.gnupg.org/${package}.git
;;
+ mimetreeparser)
+ repo=https://dev.gnupg.org/source/${package}.git
+ ;;
kleopatra | libkleo)
# assume that package is provided by KDE
repo=https://invent.kde.org/pim/${package}.git
branch=gpg4win/23.07
;;
k* | libk*)
# assume that package is provided by KDE
repo=https://invent.kde.org/pim/${package}.git
;;
okular)
repo=https://invent.kde.org/graphics/${package}.git
branch="work/sune/WORK"
;;
poppler)
repo=https://anongit.freedesktop.org/git/poppler/poppler.git
#repo=https://gitlab.freedesktop.org/svuorela/${package}.git
#branch="WORK"
;;
*)
echo "Error: Unsupported package '${package}'"
exit 1
;;
esac
case ${package} in
kleopatra)
# pofiles="kleopatra.po kwatchgnupg.po"
;;
libkleo)
#pofiles="libkleopatra.po"
;;
*)
echo "Warning: No known translations for package '${package}'"
;;
esac
tmpdir=$(mktemp -d -t gen-tarball.XXXXXXXXXX)
curdate=$(date +%Y-%m-%d)
timestamp=$(date +%Y%m%d%H%M)
snapshotdir=${package}-${timestamp}
tarball=${snapshotdir}.tar.xz
git clone ${repo} ${tmpdir}/${snapshotdir}
if [ "${is_gpg}" == "yes" ]; then
olddir=$(pwd)
cd ${tmpdir}/${snapshotdir}
./autogen.sh --force >&2
if [ "${is_w32}" == "yes" ]; then
./autogen.sh --build-w32 >&2
# ./autogen.sh --build-w32 --with-libassuan-prefix=/home/aheinecke/w64root/ >&2
else
./configure >&2
fi
make dist-xz >&2
tarball=$(ls -t *.tar.xz | head -1)
cp ${tmpdir}/${snapshotdir}/${tarball} ${olddir}
else
echo "Archiving $branch.."
(cd ${tmpdir}/${snapshotdir} && \
git archive --format tar.xz --prefix=${snapshotdir}/ "origin/$branch") > ${tarball} || \
(echo "Failed to archive tarball. Is tar.xz configured?: git config --global tar.tar.xz.command \"xz -c\"" && exit 1)
fi
checksum=$(sha256sum ${tarball} | cut -d ' ' -f 1)
echo "------------------------------ >8 ------------------------------"
echo "# ${package}"
echo "# last changed: ${curdate}"
echo "# by: $USER"
echo "# verified: Tarball created by $USER."
echo "file ${package}/${tarball}"
echo "chk ${checksum}"
echo "------------------------------ >8 ------------------------------"
echo "To upload:" >&2
echo "rsync -vP ${tarball} trithemius.gnupg.org:/home/ftp/gcrypt/snapshots/${package}/" >&2
rm -fr ${tmpdir}
diff --git a/packages/packages.common b/packages/packages.common
index 5f6f7937..1e10efe6 100644
--- a/packages/packages.common
+++ b/packages/packages.common
@@ -1,541 +1,564 @@
# packages.common - list of packages for use with gpg4win -*- sh -*-
#
# The download script processes the statements here to
# actually download the packages. The syntax is trivial:
#
# If the first non whitespace character of a line is #, the line is
# considered a comment. If the first word of a line is "server", the
# rest of the line will be taken as the base URL for following file
# commands. If the first word of a line is "file" the rest of the
# line will be appended to the current base URL (with a / as
# delimiter). The statement "chk" is followed by the SHA256 checksum of
# the last file.
#
# Third party libraries
#
server ftp://ftp.gnu.org/pub/gnu
# last-changed: 2017-02-15
# by: ah
# verified: Sig 68D9 4D8A AEEA D48A E7DC 5B90 4F49 4A94 2E46 16C2
file libiconv/libiconv-1.15.tar.gz
chk ccf536620a45458d26ba83887a983b96827001e92a13847b45e4925cc8913178
# last-changed: 2021-08-17
# by: ah (checksum added by ik)
# verified: Sig 9001 B85A F9E1 B83D F1BD A942 F5BE 8B26 7C6A 406D
file gettext/gettext-0.21.tar.xz
chk d20fcbb537e02dcf1383197ba05bd0734ef7bf5db06bdb241eb69b7d16b73192
# last-changed: 2023-05-03
# by ah
# verified: verification of checksum from both sf and libpng.org
server https://downloads.sourceforge.net
file libpng/libpng16/1.6.39/libpng-1.6.39.tar.xz
chk 1f4696ce70b4ee5f85f1e1623dc1229b210029fa4b7aee573df3e2ba7b036937
+# last-changed: 2023-05-03
+# by ah
# verified: verification of checksum from multiple sources
server https://www.ijg.org
name jpeg-9e.tar.gz
file files/jpegsrc.v9e.tar.gz
chk 4077d6a6a75aeb01884f708919d25934c93305e49f7e3f36db9129320e6f4f3d
+# last-changed: 2023-05-03
+# by ah
+# verified: SIG B1FA7D81EEB8E66399178B9733EBBFC47B3DD87D
+server https://download.osgeo.org
+file libtiff/tiff-4.5.0.tar.xz
+chk dafac979c5e7b6c650025569c5a4e720995ba5f17bc17e6276d1f12427be267c
+
+server https://github.com
+
# last-changed: 2023-05-03
# by ah
# verified: verification of checksum from multiple sources e.g. homebrew
-server https://github.com/uclouvain/openjpeg/archive/refs/tags/
name openjpeg-2.5.0.tar.gz
-file v2.5.0.tar.gz
+file uclouvain/openjpeg/archive/refs/tags/v2.5.0.tar.gz
chk 0333806d6adecc6f7a91243b2b839ff4d2053823634d4f6ed7a59bc87409122a
-# last-changed: 2023-05-03
+# last-changed: 2023-07-31
# by ah
-# verified: SIG B1FA7D81EEB8E66399178B9733EBBFC47B3DD87D
-server https://download.osgeo.org
-file libtiff/tiff-4.5.0.tar.xz
-chk dafac979c5e7b6c650025569c5a4e720995ba5f17bc17e6276d1f12427be267c
+# verified: verification of checksum from multiple sources e.g. homebrew
+file libical/libical/releases/download/v3.0.16/libical-3.0.16.tar.gz
+chk b44705dd71ca4538c86fb16248483ab4b48978524fb1da5097bd76aa2e0f0c33
#
# GIMP stuff for W32
#
server http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies
# checked: 2012-03-28 wk - Not updated - not a security problem
name pkgconfig-0.23.tar.gz
file pkg-config-0.23.tar.gz
chk 08a0e072d6a05419a58124db864f0685e6ac96e71b2875bf15ac12714e983b53
name pkgconfig-0.23.zip
file pkg-config_0.23-3_win32.zip
chk 677d6055494e24cad6c49eab33eee618ddc6ed65da827c8b5b7da761b4063278
server https://download.savannah.gnu.org/releases/
# last-changed: 2023-04-19
# by: ah
# verified: SIG E30674707856409FF1948010BE6C3AAC63AD8E3F
file freetype/freetype-2.13.0.tar.xz
chk 5ee23abd047636c24b2d43c6625dcafc66661d1aca64dec9e0d05df29592624c
#
# SQLite
#
server https://www.sqlite.org
# last changed: 2021-09-20
# by: ik
# verified: SHA1 checksum on https://web.archive.org/web/20190228201545/https://www.sqlite.org/download.html
name sqlite-3.27.2.tar.gz
file 2019/sqlite-autoconf-3270200.tar.gz
chk 50c39e85ea28b5ecfdb3f9e860afe9ba606381e21836b2849efca6a0bfe6ef6e
#
# GnuPG et al.
#
# All tarballs from this server are verified with an openpgp
# signature made by "Werner Koch (dist sig)" or one of the other
# gnupg main contributors.
# Server changed from ftp to https by wk 2021-09-22
server https://gnupg.org/ftp/gcrypt
# last-changed: 2022-04-07
# by: wk
# verified: swdb
file zlib/zlib-1.2.12.tar.gz
chk 91844808532e5ce316b3c010929493c0244f3d37593afd6de04f71821d5136d9
# Stripped down version of BZIP2
# (full source at http://bzip.org)
# checked: 2014-07-16 ah
file bzip2/bzip2-1.0.6-g10.tar.gz
chk c2a9b3aec1a38d34b66106116a39f64b01d84f475fef75c40ea0bda0ea67ed07
# last changed 2023-04-11
# by wk
# verified: swdb
file libgpg-error/libgpg-error-1.47.tar.bz2
chk 9e3c670966b96ecc746c28c2c419541e3bcb787d1a73930f5e5f5e1bcbbb9bdb
# last-changed: 2023-06-19
# by: wk
# verified: build tree
file libassuan/libassuan-2.5.6.tar.bz2
chk e9fd27218d5394904e4e39788f9b1742711c3e6b41689a31aa3380bd5aa4f426
# last changed 2021-09-20
# by ik
# verified: distsigkey.gpg
file npth/npth-1.6.tar.bz2
chk 1393abd9adcf0762d34798dc34fdcf4d0d22a8410721e76f1e3afcd1daa4e2d1
# last changed 2023-06-19
# by wk
# verified: build tree
file libksba/libksba-1.6.4.tar.bz2
chk bbb43f032b9164d86c781ffe42213a83bf4f2fee91455edfa4654521b8b03b6b
# last changed 2022-04-07
# by wk
# verified: swdb
file ntbtls/ntbtls-0.3.1.tar.bz2
chk 8922181fef523b77b71625e562e4d69532278eabbd18bc74579dbe14135729ba
#name gnupg-msi-2.3.1-beta18-20210420-src.tar.xz
#file binary/gnupg-w32-2.3.1_20210420.tar.xz
#chk e1a2dc705c940938b7bf7a17f521a41b1ef14139acd8860b2fd59aed2750aa3b
#name gnupg-msi-2.3.1-20210420-bin.wixlib
#file binary/gnupg-w32-2.3.1_20210420.wixlib
#chk 133817a4c4d11996956676c5c200222839ee5dc16e9476bd682d4e68b33ef73e
# pinentry
# last changed: 2022-08-24
# by: wk
# verified: swdb
file pinentry/pinentry-1.2.1.tar.bz2
chk 457a185e5a85238fb945a955dc6352ab962dc8b48720b62fc9fa48c7540a4067
# last changed 2023-07-07
# by wk
# verified: [build tree]
file gpgme/gpgme-1.21.0.tar.bz2
chk 416e174e165734d84806253f8c96bda2993fd07f258c3aad5f053a6efd463e88
# last changed: 2021-01-07
# by: ah
file scute/scute-1.7.0.tar.bz2
chk 437fe758b27c243a5ee2535c6b065ea1d09f2c9a02d83567d2f934bb6395c249
# GpgOL
# last-changed: 2023-07-07
# by: ah
# verified: build tree
file gpgol/gpgol-2.5.8.tar.bz2
chk b737f2b246bec2ace6316649ca12da9825c854f9c48e6c829e670c9c2dd99789
#
# GpgEX
#
# last-changed: 2022-11-18
# by: ah
# verified: distsigkey.gpg
#file gpgex/gpgex-1.0.10-beta5.tar.bz2
#chk f7e4c619aefed02dfbb07363a4435878a50999b290c60779e670fceb826e283e
#
# GnuPG utilities
#
server http://www.jabberwocky.com/software/paperkey
# last-changed: 2017-12-05
# by: ah
# verified: SIG 7D92 FD31 3AB6 F373 4CC5 9CA1 DB69 8D71 9924 2560
file paperkey-1.5.tar.gz
chk c4737943083ce92e41faf13c27a9d608105b6285c0840dfb684a7ee294142ddf
#
# Kleopatra and dependencies
#
# Qt base
# last changed: 2023-05-08
# by: ah
# verified: HTTPS https://download.qt.io/official_releases/qt/5.15/5.15.9/submodules/qtbase-everywhere-opensource-src-5.15.9.tar.xz.sha256
server http://download.qt.io/official_releases/qt/
name qtbase-5.15.9.tar.xz
file 5.15/5.15.9/submodules/qtbase-everywhere-opensource-src-5.15.9.tar.xz
chk 1947deb9d98aaf46bf47e6659b3e1444ce6616974470523756c082041d396d1e
# Qt Tools
# last changed: 2023-05-08
# by: ah
# verified: HTTPS https://download.qt.io/official_releases/qt/5.15/5.15.9/submodules/qttools-everywhere-opensource-src-5.15.9.tar.xz.sha256
name qttools-5.15.9.tar.xz
file 5.15/5.15.9/submodules/qttools-everywhere-opensource-src-5.15.9.tar.xz
chk 40dce7845bc156dce7878b304e05b19f1ce7dedd4221c67af3bdf0138196006d
# Qt Winextras
# last changed: 2023-05-08
# by: ah
# verified: HTTPS https://download.qt.io/official_releases/qt/5.15/5.15.9/submodules/qtwinextras-everywhere-opensource-src-5.15.9.tar.xz.sha256
name qtwinextras-5.15.9.tar.xz
file 5.15/5.15.9/submodules/qtwinextras-everywhere-opensource-src-5.15.9.tar.xz
chk ea5107105b2072ea7194c16cc0721212f28f77c484ce38b370aaa78bfca45798
# Qt X11 extras
# last changed: 2021-09-20
# by: ik
# verified: HTTPS https://download.qt.io/official_releases/qt/5.15/5.15.9/submodules/qtx11extras-everywhere-opensource-src-5.15.9.tar.xz.sha256
name qtx11extras-5.15.9.tar.xz
file 5.15/5.15.9/submodules/qtx11extras-everywhere-opensource-src-5.15.9.tar.xz
chk 7ba3123de7b4ff87d02f513ffa1e4c4284e8f882563d114f29cb98d4c00fcbdb
# Qt WaylandClient
# last changed: 2021-09-21
# by: ik
# verified: HTTPS https://download.qt.io/official_releases/qt/5.15/5.15.9/submodules/qtwayland-everywhere-opensource-src-5.15.9.tar.xz.sha256
name qtwayland-5.15.9.tar.xz
file 5.15/5.15.9/submodules/qtwayland-everywhere-opensource-src-5.15.9.tar.xz
chk b719baf33068f3b92309ac610c3b7ed70edb5bf1e8fa07eefc7cbae6ab6a3c12
# Qt svg
# last changed: 2023-05-08
# by: ah
# verified: HTTPS https://download.qt.io/official_releases/qt/5.15/5.15.9/submodules/qtsvg-everywhere-opensource-src-5.15.9.tar.xz.sha256
name qtsvg-5.15.9.tar.xz
file 5.15/5.15.9/submodules/qtsvg-everywhere-opensource-src-5.15.9.tar.xz
chk 881f75d3c4a29a4ef88202763115c19d4869af2638227e9c3474e422639abb5a
# Qt translations
# last changed: 2023-05-08
# by: ah
# verified: HTTPS https://download.qt.io/official_releases/qt/5.15/5.15.9/submodules/qttranslations-everywhere-opensource-src-5.15.9.tar.xz.sha256
name qttranslations-5.15.9.tar.xz
file 5.15/5.15.9/submodules/qttranslations-everywhere-opensource-src-5.15.9.tar.xz
chk 35f4c4496e8a1f0605b3fb2e28c4b08e191796c9c03c32175a608e9c4dc4bb60
# KDE Frameworks generated by gen-frameworks.sh
# When outdated activate this link:
#server https://download.kde.org/Attic/frameworks/
server https://download.kde.org/stable/frameworks
##### Paste Here #####
#
# Don't forget to update gpg4win.mk.in with new version numbers
#
# extra-cmake-modules
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/extra-cmake-modules-5.104.0.tar.xz
chk e49eb21fdb66634b84cccbf6ba65eae3f8e0eee0dc72d50f627280f49df585d9
# kconfig
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kconfig-5.104.0.tar.xz
chk b8e7a6b7b0e78e3eb01755a965d893bd95c231befeff10479243e5a182ec2938
# ki18n
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/ki18n-5.104.0.tar.xz
chk fe815b9e28c680fa472c7ab56e4d7934a8915f19409734a13433797a4be14ee1
# kwidgetsaddons
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kwidgetsaddons-5.104.0.tar.xz
chk 4abbb552cd43e51ad2070d8780ca7112e2c9771c2258734ae4a97712b9123120
# kcompletion
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kcompletion-5.104.0.tar.xz
chk b0ed0246871283df04c62f0df2b221e32911cb4d292d5ae42f860958032eb510
# kwindowsystem
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kwindowsystem-5.104.0.tar.xz
chk 6b10ee354ebb7d2dfd6baa1374929d30811f8169c8233e55849e31e38e6af81a
# kcoreaddons
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kcoreaddons-5.104.0.tar.xz
chk ed760d4a7fed6c03480dcc3cfe621a49ac5ca9853c846080afe393f7ce794e40
# kcodecs
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kcodecs-5.104.0.tar.xz
chk 7ec909f6865eba87a99b046a9aeaa6a83c01308ad1dda87be3f69e91a7909d6b
# kconfigwidgets
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kconfigwidgets-5.104.0.tar.xz
chk eb9014b813a1c8a18c78ef11be296964b31338e5237080a74234bf97ead64522
# kdbusaddons
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kdbusaddons-5.104.0.tar.xz
chk 4c6add0481c407bc3768729e27e8644feba748c333872e62aaa3260338fd56b4
# kxmlgui
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kxmlgui-5.104.0.tar.xz
chk f45d5a5411b3ca0197c1e4720c27c7d85e351aeee03aca861066e8db3c7c93e6
# kguiaddons
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kguiaddons-5.104.0.tar.xz
chk fb8d8de25b684af6f9e9e893912664a18231486ac995d2522676018c3e93840d
# kitemviews
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kitemviews-5.104.0.tar.xz
chk 94920dc68c187319fa79c64e194e9ebecaef8c97fc4bd6aba342c18bc75a48bc
# kitemmodels
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kitemmodels-5.104.0.tar.xz
chk 0bac2fe2fc607443e3332911655ced5dd309e346f2f6a2ff3f29b2f45b7b18d7
# kiconthemes
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kiconthemes-5.104.0.tar.xz
chk 70f4d9f950acdaa28b539838226ed1cff7e70cdcf177272185bac7c75a6cccdf
# breeze-icons
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/breeze-icons-5.104.0.tar.xz
chk ff2dacc3fb6f1c7acd378638329f2e5b5fc4fdb3dab1321716d2d54b32eaae6a
# karchive
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/karchive-5.104.0.tar.xz
chk b62f3dfe68691ad2917d0592d66ffc02cfbcc7571b7d1fb1d3fadd695534fd2e
# kcrash
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kcrash-5.104.0.tar.xz
chk 12d6004f9e2e51a9d74f044462753dd7410e10a40a1f6b07727dcd5b52a7ea96
# kio
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kio-5.104.0.tar.xz
chk 5a8b93a5de72406fc4cc7b9aa4715be6d1d5264e617b26be257f5d0e26dde310
# kbookmarks
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kbookmarks-5.104.0.tar.xz
chk 85e565590233cfc6dc8c3459717c327961e79c74199d4d1c2741b40946936354
# kservice
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kservice-5.104.0.tar.xz
chk 215b109738ea5a10f97c4abbd3c9b9da58c826127708eddd34af345b4e8ad8a3
# solid
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/solid-5.104.0.tar.xz
chk 2a9a33bc71b4cafec35b9692bd7681a736eeb4e4b81c25f5bd87dbec38c143cf
# kjobwidgets
# last changed: 2023-03-22
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kjobwidgets-5.104.0.tar.xz
chk 3b254124d3bf20666a514710fef8990325da2ade14f49368b1bed1256eb8fea1
# threadweaver
# last changed: 2023-04-19
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/threadweaver-5.104.0.tar.xz
chk 963decfdf0cf780406eb585efdb213539a00cd16ae4dff2b2ffe8822a609a647
# kparts
# last changed: 2023-04-19
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kparts-5.104.0.tar.xz
chk 66a40646cc4890669991cc63d33803ec335b0c08b7aeb0476b2a852951e700cd
# ktextwidgets
# last changed: 2023-05-08
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/ktextwidgets-5.104.0.tar.xz
chk 48fe28cbe8a54b1227a0ce502c3f4534e46789a4988db44b2e5f362ee2e17dea
# sonnet
# last changed: 2023-05-08
# by: ah
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/sonnet-5.104.0.tar.xz
chk 17276e51f0f4ac2f8745796db135d3143f2f91ee3fc8fb823c94072de5c0b953
# kauth
# last changed: 2023-06-05
# by: ikloecker
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kauth-5.104.0.tar.xz
chk 614086598e66c1f136e5a6296f358548509e0e868f62a03c97ade73d9b7d581e
# kactivities
# last changed: 2023-07-03
# by: ikloecker
# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
file 5.104/kactivities-5.104.0.tar.xz
chk 29c31525763a44def441fed012af951fe424bd9a88892701ddf16d84f0917953
+# kcalendarcore
+# last changed: 2023-07-31
+# by: ah
+# verified: PGP Signed by ./kde-release-keys.gpg (created by gen-frameworks.sh)
+file 5.104/kcalendarcore-5.104.0.tar.xz
+chk 8e1037bf7af35799a33fd0cf05b4dc57b5a07d9cac3f14ba5671beaf66ca1432
+
### END PASTE ###
server http://download.kde.org/stable/release-service/
# kmime
# last changed: 2022-02-01
# by: ah
# verified: PGP Sig D81C0CB38EB725EF6691C385BB463350D6EF31EF
#file 21.12.1/src/kmime-21.12.1.tar.xz
#chk c1f4c06c61f6b4ddde7395b1cfb1f2411a32638e09c6f0a58c6557a7dffe4120
#
# Snapshots stored on the GnuPG server
#
server https://gnupg.org/ftp/gcrypt/snapshots
# gpgex
# last changed: 2022-12-06
# by: aheinecke
# verified: Tarball created by aheinecke.
file gpgex/gpgex-1.0.10-beta5.tar.xz
chk 2c227634528ef76bcca7fd4b7fe5c38a535f6e68bbe5b2cdc6cc4a74810b2dba
# gpg4win-tools
# last changed: 2023-06-21
# by: aheinecke
# verified: Tarball created by aheinecke.
file gpg4win-tools/gpg4win-tools-202306211455.tar.xz
chk d62e15b63c3837277c99548933ec2bc17d38af3d09fccb468b590951d934ea7a
# kmime
# last changed: 2023-03-22
# by: aheinecke
# verified: Tarball created by aheinecke.
file kmime/kmime-202303221649.tar.xz
chk 0a26c6b7a1b921191e52ee17d8d131f606a1def9ed09e31074a1c7aed5c4c6b7
+# mimetreeparser
+# last changed: 2023-07-28
+# by: aheinecke
+# verified: Tarball created by aheinecke.
+file mimetreeparser/mimetreeparser-202307281051.tar.xz
+chk fd898d080dcec4f245a8ba6e410b88884a6392fd9a07aed40a1f7c2131a1f4be
+
# libkleo
# last changed: 2023-07-10
# by: aheinecke
# verified: Tarball created by aheinecke.
file libkleo/libkleo-202307101603.tar.xz
chk f48c725ad09212c82e9b92e303a28cbab12fc38386fc870e71c7df650eab49c5
# kleopatra
# last changed: 2023-07-13
# by: aheinecke
# verified: Tarball created by aheinecke.
file kleopatra/kleopatra-202307131432.tar.xz
chk 46bdef3c4f0769f116f6446f0905d48fa8039f22b739e182fa4260982d852b2a
# Okular and dependencies
# poppler
# last changed: 2023-07-12
# by: aheinecke
# verified: Tarball created by aheinecke.
file poppler/poppler-202307121527.tar.xz
chk 347931704cf6fc80f5672254814d623cb24151139d767c8e43f3cd9c8d48b80b
# okular
# last changed: 2023-07-07
# by: aheinecke
# verified: Tarball created by aheinecke.
file okular/okular-202307071512.tar.xz
chk 6c011b80a86c1f8f3bbc91ce50b12af33ecb115b4860f491701a5fd5e36242f8
diff --git a/src/Makefile.am b/src/Makefile.am
index e8b6a4de..15112356 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,666 +1,674 @@
# 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 .
EXTRA_DIST = pkg-config gpg4win.nsi gpg4win-src.nsi \
config.site config.nsi.in \
libiconv.def libintl.def loreley.mid \
gpg4win-splash.wav exdll.h exdll.c g4wihelp.c desktopshellrun.cpp \
g4wihelp.nsi slideshow.cpp gpgwrap.c \
gpg-enable-keyboxd.bat gpg-disable-keyboxd.bat \
inst-sections.nsi installer.nsi installer-finish.nsi \
zlib.pc sha1sum.c \
potomo Memento.nsh \
inst-gpg4win.nsi uninst-gpg4win.nsi \
inst-gettext.nsi uninst-gettext.nsi \
inst-gnupg-w32.nsi uninst-gnupg-w32.nsi \
inst-gpgme.nsi uninst-gpgme.nsi \
inst-paperkey.nsi uninst-paperkey.nsi \
inst-gpgol.nsi uninst-gpgol.nsi \
inst-gpgex.nsi uninst-gpgex.nsi \
inst-libassuan.nsi uninst-libassuan.nsi \
inst-libgpg-error.nsi uninst-libgpg-error.nsi \
inst-libiconv.nsi uninst-libiconv.nsi \
inst-compendium.nsi uninst-compendium.nsi \
inst-man_advanced_de.nsi uninst-man_advanced_de.nsi \
inst-man_advanced_en.nsi uninst-man_advanced_en.nsi \
inst-man_novice_de.nsi uninst-man_novice_de.nsi \
inst-man_novice_en.nsi uninst-man_novice_en.nsi \
inst-pinentry.nsi uninst-pinentry.nsi \
inst-pkgconfig.nsi uninst-pkgconfig.nsi \
inst-zlib.nsi uninst-zlib.nsi \
inst-kconfig.nsi uninst-kconfig.nsi \
inst-kleopatra.nsi uninst-kleopatra.nsi \
inst-bzip2.nsi uninst-bzip2.nsi \
inst-qtbase.nsi uninst-qtbase.nsi \
inst-ki18n.nsi uninst-ki18n.nsi \
inst-kio.nsi uninst-kio.nsi \
inst-kbookmarks.nsi uninst-kbookmarks.nsi \
inst-kservice.nsi uninst-kservice.nsi \
inst-solid.nsi uninst-solid.nsi \
inst-kjobwidgets.nsi uninst-kjobwidgets.nsi \
inst-kwidgetsaddons.nsi uninst-kwidgetsaddons.nsi \
inst-kcompletion.nsi uninst-kcompletion.nsi \
inst-kwindowsystem.nsi uninst-kwindowsystem.nsi \
inst-ktextwidgets.nsi uninst-ktextwidgets.nsi \
inst-sonnet.nsi uninst-sonnet.nsi \
inst-libkleo.nsi uninst-libkleo.nsi \
inst-kcoreaddons.nsi uninst-kcoreaddons.nsi \
inst-kcodecs.nsi uninst-kcodecs.nsi \
inst-kconfigwidgets.nsi uninst-kconfigwidgets.nsi \
inst-kxmlgui.nsi uninst-kxmlgui.nsi \
inst-kiconthemes.nsi uninst-kiconthemes.nsi \
inst-breeze-icons.nsi uninst-breeze-icons.nsi \
inst-karchive.nsi uninst-karchive.nsi \
inst-kcrash.nsi uninst-kcrash.nsi \
inst-kitemviews.nsi uninst-kitemviews.nsi \
inst-kitemmodels.nsi uninst-kitemmodels.nsi \
inst-kguiaddons.nsi uninst-kguiaddons.nsi \
inst-kmime.nsi uninst-kmime.nsi \
inst-kde-l10n.nsi uninst-kde-l10n.nsi \
inst-qtsvg.nsi uninst-qtsvg.nsi \
inst-qttools.nsi uninst-qttools.nsi \
inst-qttranslations.nsi uninst-qttranslations.nsi \
inst-qtwinextras.nsi uninst-qtwinextras.nsi \
inst-scute.nsi uninst-scute.nsi \
inst-extra-cmake-modules.nsi uninst-extra-cmake-modules.nsi \
inst-gpg4win-tools.nsi uninst-gpg4win-tools.nsi \
inst-gpgme-browser.nsi \
inst-poppler.nsi uninst-poppler.nsi \
inst-libpng.nsi uninst-libpng.nsi \
inst-openjpeg.nsi uninst-openjpeg.nsi \
inst-jpeg.nsi uninst-jpeg.nsi \
inst-tiff.nsi uninst-tiff.nsi \
inst-freetype.nsi uninst-freetype.nsi \
inst-threadweaver.nsi uninst-threadweaver.nsi \
inst-kparts.nsi uninst-kparts.nsi \
inst-okular.nsi uninst-okular.nsi \
+ inst-mimetreeparser.nsi uninst-mimetreeparser.nsi \
+ inst-kcalendarcore.nsi uninst-kcalendarcore.nsi \
+ inst-libical.nsi uninst-libical.nsi \
inst-final.nsi 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 \
kdeglobals qtlogging.ini \
make-msi.pl make-msi.guids \
build-gpg4win.sh \
WixUI_Gpg4win.wxs icons/shield.ico
if BUILD_APPIMAGE
appimage = appimage
else
appimage =
endif
SUBDIRS = ${appimage}
# These paths must be absolute, as we switch directories pretty often.
root := $(shell pwd)/playground
stampdir := $(shell pwd)/stamps
gpg4win_readme_ll = en de ar es fr ru pt zh
README_files = $(addsuffix .txt,$(addprefix README.,$(gpg4win_readme_ll)))
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 $(README_files) \
$(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
gpg4win_qtpkgs = qtbase qttools qtwinextras qtsvg qttranslations
# Source packages following the KDE pattern
gpg4win_kdepkgs = 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
+ kparts tiff openjpeg sonnet ktextwidgets mimetreeparser \
+ libical kcalendarcore
# Supported source packages to build in an additional architecture
gpg4win_expkgs = libgpg-error libassuan libiconv gettext gpgex gpgol \
gpgme
# 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
# 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
# We would like to use --with-libiconv-prefix and
# --with-libintl-prefix, but these don't work with the cheesy
# non-"libfoo.la" versions of iconv and gettext that we are using.
#gpg4win_pkg_libgpg_error_configure = \
# --with-libiconv-prefix=$(idir) --with-libintl-prefix=$(idir)
gpg4win_pkg_libgpg_error_configure = --silent \
CPPFLAGS=-I$(idir)/include LDFLAGS=-L$(idir)/lib \
--enable-static --enable-install-gpg-error-config
gpg4win_pkg_libgpg_error_ex_configure = --silent \
--enable-static --enable-install-gpg-error-config
# 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 = --silent --enable-static
gpg4win_pkg_libassuan_ex_configure = --with-gpg-error-prefix=$(ex_idir) --silent --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\"
# We would like to use --with-libiconv-prefix and
# --with-libintl-prefix, but these don't work with the cheesy
# non-"libfoo.la" versions of iconv and gettext that we are using.
gpg4win_pkg_pinentry_configure = \
--enable-pinentry-qt \
--disable-pinentry-fltk \
--disable-pinentry-curses \
--disable-fallback-curses \
CPPFLAGS=-I$(idir)/include LDFLAGS=-L$(idir)/lib
# --with-libiconv-prefix=$(idir) --with-libintl-prefix=$(idir)
# The LDFLAGS is needed for -lintl for glib. The QT4 variables work
# around the lack of cross compilation support in qt-dev.
gpg4win_pkg_gpgme_configure = --silent \
--with-gpg-error-prefix=$(idir) --enable-static \
LDFLAGS=-L$(idir)/lib \
--enable-languages=qt,cpp \
--disable-gpg-test \
--disable-gpgsm-test
gpg4win_pkg_gpgme_ex_configure = --silent \
--with-gpg-error-prefix=$(ex_idir) --enable-static \
--with-libassuan-prefix=$(ex_idir) \
LDFLAGS=-L$(ex_idir)/lib \
--enable-languages=cpp \
--disable-gpg-test \
--disable-gpgsm-test
gpg4win_pkg_gpgol_configure = --silent \
--with-gpgme-prefix=$(idir) --with-gpg-error-prefix=$(idir) \
--with-libassuan-prefix=$(idir)
gpg4win_pkg_gpgol_ex_configure = --silent \
--with-gpgme-prefix=$(ex_idir) --with-gpg-error-prefix=$(ex_idir) \
--with-libassuan-prefix=$(ex_idir)
gpg4win_pkg_gpgex_configure = --silent \
--with-gpg-error-prefix=$(idir) \
--with-libassuan-prefix=$(idir)
gpg4win_pkg_gpgex_ex_configure = --silent \
--with-gpg-error-prefix=$(ex_idir) \
--with-libassuan-prefix=$(ex_idir)
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_qtbase_configure = ../$$$${pkg_version}/configure -opensource \
-confirm-license \
-xplatform win32-g++ \
-device-option CROSS_COMPILE=$(host)- \
-device-option PKG_CONFIG='$(host)-pkg-config' \
-no-use-gold-linker \
-release \
-shared \
-prefix $$$${pkgidir} \
-I '$(idir)/include' \
-L '$(idir)/lib' \
-no-icu \
-opengl desktop \
-no-glib \
-accessibility \
-nomake examples \
-nomake tests \
-no-sql-mysql \
-no-sql-sqlite \
-no-sql-odbc \
-no-sql-psql \
-no-sql-tds \
-qt-zlib \
-qt-libpng \
-qt-libjpeg \
-qt-freetype \
-qt-pcre \
-no-openssl \
-no-dbus \
-v
# qtbase
# invoke qmake with removed debug options as a workaround for
# https://bugreports.qt-project.org/browse/QTBUG-30898
gpg4win_pkg_qtbase_make_args = \
QMAKE='$$$${pkgbdir}/bin/qmake'
# Make install step. Somehow qtprintsupport is now installed automatically.
define gpg4win_pkg_qtbase_post_install
(cd $$$${pkgbdir}; \
make install; \
cd $$$${pkgbdir}/src/printsupport; \
make install;)
endef
gpg4win_pkg_qttools_configure = \
"$(idir)/bin/qmake" ../$$$${pkg_version}
define gpg4win_pkg_qttools_post_install
(cd $$$${pkgbdir}; \
mkdir -p $$$${pkgidir}; \
cp -r bin lib include $$$${pkgidir})
endef
# Qmake does not support setting the installation path.
# really https://bugreports.qt.io/browse/QTBUG-12341
gpg4win_pkg_qtwinextras_configure = \
"$(idir)/bin/qmake" ../$$$${pkg_version}
define gpg4win_pkg_qtwinextras_post_install
(cd $$$${pkgbdir}; \
mkdir -p $$$${pkgidir}/bin; \
cp -r lib include $$$${pkgidir}; \
mv $$$${pkgidir}/lib/*.dll $$$${pkgidir}/bin;)
endef
gpg4win_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 gpg4win_pkg_qtsvg_post_install
(cd $$$${pkgbdir}; \
mkdir -p $$$${pkgidir}; \
cp -r lib include plugins $$$${pkgidir}; \
mkdir -p $$$${pkgidir}/bin; \
mv $$$${pkgidir}/lib/*.dll $$$${pkgidir}/bin; \
echo "[Paths]" > $$$${pkgidir}/bin/qt.conf; \
echo "Prefix = .." >> $$$${pkgidir}/bin/qt.conf)
endef
gpg4win_pkg_qttranslations_configure = \
"$(idir)/bin/qmake" ../$$$${pkg_version}
define gpg4win_pkg_qttranslations_post_install
( rm -fR $$$${pkgidir}/qttranslations; \
mkdir -p $$$${pkgidir}; \
cp -r $$$${pkgbdir}/translations $$$${pkgidir}/qttranslations;)
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_breeze_icons_configure = \
-DBINARY_ICONS_RESOURCE=OFF
gpg4win_pkg_kbookmarks_configure = \
-DANDROID=ON
gpg4win_pkg_kservice_configure = \
-DANDROID=ON
gpg4win_pkg_kjobwidgets_configure = \
-DANDROID=ON
gpg4win_pkg_okular_configure = \
-DFORCE_NOT_REQUIRED_DEPENDENCIES="KF5Purpose\;Qt5TextToSpeech\;LibZip\;KF5Wallet\;KF5DocTools\;KF5JS\;Phonon4Qt5\;TIFF\;JPEG\;LibSpectre\;KF5KExiv2\;CHM\;KF5KHtml\;DjVuLibre\;EPub\;QMobipocket\;Discount\;Qt5Qml\;Qt5DBus"
+gpg4win_pkg_libical_configure = \
+ -DICAL_GLIB=false \
+ -DENABLE_GTK_DOC=false
+
# 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
# Supported binary packages.
gpg4win_bpkgs = pkgconfig gnupg-w32 kde-l10n
# libiconv needs some special magic to generate a usable import
# library.
# define gpg4win_pkg_libiconv_post_install
# (cp $(srcdir)/libiconv.def $$$${pkgidir}/lib; \
# cd $$$${pkgidir}/lib; \
# $(DLLTOOL) --output-lib libiconv.dll.a --def libiconv.def)
# endef
# libiconv needs some special magic to generate a usable import
# library. Note that we include some internal symbols that are not
# actually part of the DLL. They are needed by the AM_GNU_GETTEXT
# configure test, but not used otherwise.
# define gpg4win_pkg_gettext_post_install
# (cp $(srcdir)/libintl.def $$$${pkgidir}/lib; \
# cd $$$${pkgidir}/lib; \
# $(DLLTOOL) --output-lib libintl.dll.a --def libintl.def)
# endef
# 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
# We don't use khelpcenter in kleopatra so remove the help links and
# point to the correct common folder
# TODO Needs to be fixed with current doc
#define gpg4win_pkg_kleopatra_post_install
# (for i in de en ; do \
# (cd $$$${pkgidir}/share/doc/HTML/$$$${i}; \
# perl -pi -e 's/help:\///g' `find . -name \*.html`; \
# perl -pi -e 's@common/@../../common/@g' `find . -name \*.html`); \
# done)
#endef
#define gpg4win_pkg_libiconv_post_install
#(cp $(srcdir)/libiconv.def $$$${pkgidir}/lib; \
#cd $$$${pkgidir}/lib; \
#$(DLLTOOL) --output-lib libiconv.dll.a --def libiconv.def)
#endef
# Supported internal packages. Internal packages do not require any
# special support. Thus, this variable is actually unused, and no
# rules are added in gpg4win.mk.
gpg4win_ipkgs = man_novice_de man_advanced_de man_novice_en man_advanced_en \
compendium
# Default to same version.
VSD_VERSION=$(VERSION)
# Include installer targets for customized packages
-include gnupg-vsd/custom.mk
# Signging host/key setup for codesigning
-include gnupg-vsd/sign.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 = inst-sections.nsi installer.nsi installer-finish.nsi \
$(addsuffix .nsi,$(addprefix inst-,$(gpg4win_build_list))) \
$(addsuffix .nsi,$(addprefix uninst-,$(gpg4win_build_list)))
# Sign additional files as per signing setup
# This is a bit of a hack.
$(stampdir)/stamp-additional-signedfiles: $(stampdir)/stamp-binaries
(set -e;\
cd "$(idir)"; \
for f in $(AUTHENTICODE_FILES); do \
if [ -f "$$f" ]; then \
$(call AUTHENTICODE_sign,"$$f","$$f");\
else \
echo "speedo: WARNING: file '$$f' not available for signing";\
fi;\
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) 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: gpg4win.nsi $(common_nsi) $(stampdir)/stamp-final \
g4wihelp.dll gpgwrap.exe \
$(foosum_exe) \
$(README_files) $(HOWTO_files) \
license.blurb versioninfo.txt
$(MAKENSIS) -V3 -DBUILD_DIR=`pwd` -DTOP_SRCDIR=$(top_srcdir) \
-DSRCDIR=$(srcdir) $(EXTRA_MAKENSIS_FLAGS) $(srcdir)/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
installers/gpg4win-src-$(VERSION).exe: gpg4win-src.nsi $(common_nsii) \
$(stampdir)/stamp-final \
$(stampdir)/stamp-dist-self \
license.blurb
$(MAKENSIS) -V3 -DBUILD_DIR=`pwd` -DTOP_SRCDIR=$(top_srcdir) \
-DSRCDIR=$(srcdir) $(EXTRA_MAKENSIS_FLAGS) $(srcdir)/gpg4win-src.nsi && \
mv gpg4win-src-$(VERSION).exe installers/gpg4win-src-$(VERSION).exe
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
diff --git a/src/config.nsi.in b/src/config.nsi.in
index ebde9fb3..29a95da0 100644
--- a/src/config.nsi.in
+++ b/src/config.nsi.in
@@ -1,288 +1,300 @@
# config.nsi - Configuration settings for gpg4win.nsi. -*- nsi -*-
# Copyright (C) 2005, 2007 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, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
# USA.
!define _PACKAGE @PACKAGE@
!define _VERSION @VERSION@
!define _BUILD_FILEVERSION @BUILD_FILEVERSION@
!define _BUILD_TIMESTAMP @BUILD_TIMESTAMP@
!define _BUILD_ISODATE @BUILD_ISODATE@
!define build @build_cpu@-@build_os@
!define host @host_cpu@-@host_os@
!define MAKE @MAKE@
!define UNZIP @UNZIP@
!define TAR @TAR@
!define MKDIR @MKDIR@
!define CP @CP@
!define RM @RM@
!define STOW @STOW@
!define INSTALL "@INSTALL@"
!define WGET @WGET@
!define DOSLF "\r\n"
# If debugging is desired.
@GPG4WIN_DEBUG@
# The package build list, in order.
!define gpg4win_build_list "@gpg4win_build_list@"
# The default packages source directory.
!define gpg4win_packages @gpg4win_packages@
# The path of each package.
@HAVE_PKG_LIBGPG_ERROR@
!define gpg4win_pkg_libgpg_error @gpg4win_pkg_libgpg_error@
!define gpg4win_pkg_libgpg_error_version @gpg4win_pkg_libgpg_error_version@
@HAVE_PKG_LIBASSUAN@
!define gpg4win_pkg_libassuan @gpg4win_pkg_libassuan@
!define gpg4win_pkg_libassuan_version @gpg4win_pkg_libassuan_version@
@HAVE_PKG_GPGME@
!define gpg4win_pkg_gpgme @gpg4win_pkg_gpgme@
!define gpg4win_pkg_gpgme_version @gpg4win_pkg_gpgme_version@
@HAVE_PKG_GNUPG_W32@
!define gpg4win_pkg_gnupg_w32 @gpg4win_pkg_gnupg_w32@
!define gpg4win_pkg_gnupg_w32_version @gpg4win_pkg_gnupg_w32_version@
@HAVE_PKG_PINENTRY@
!define gpg4win_pkg_pinentry @gpg4win_pkg_pinentry@
!define gpg4win_pkg_pinentry_version @gpg4win_pkg_pinentry_version@
@HAVE_PKG_GPGOL@
!define gpg4win_pkg_gpgol @gpg4win_pkg_gpgol@
!define gpg4win_pkg_gpgol_version @gpg4win_pkg_gpgol_version@
@HAVE_PKG_GPGEX@
!define gpg4win_pkg_gpgex @gpg4win_pkg_gpgex@
!define gpg4win_pkg_gpgex_version @gpg4win_pkg_gpgex_version@
@HAVE_PKG_ZLIB@
!define gpg4win_pkg_zlib @gpg4win_pkg_zlib@
!define gpg4win_pkg_zlib_version @gpg4win_pkg_zlib_version@
@HAVE_PKG_BZIP2@
!define gpg4win_pkg_bzip2 @gpg4win_pkg_bzip2@
!define gpg4win_pkg_bzip2_version @gpg4win_pkg_bzip2_version@
@HAVE_PKG_PKGCONFIG@
!define gpg4win_pkg_pkgconfig @gpg4win_pkg_pkgconfig@
!define gpg4win_pkg_pkgconfig_version @gpg4win_pkg_pkgconfig_version@
!define gpg4win_pkg_pkgconfig_src @gpg4win_pkg_pkgconfig_src@
@HAVE_PKG_LIBICONV@
!define gpg4win_pkg_libiconv @gpg4win_pkg_libiconv@
!define gpg4win_pkg_libiconv_version @gpg4win_pkg_libiconv_version@
!define gpg4win_pkg_libiconv_src @gpg4win_pkg_libiconv_src@
@HAVE_PKG_GETTEXT@
!define gpg4win_pkg_gettext @gpg4win_pkg_gettext@
!define gpg4win_pkg_gettext_version @gpg4win_pkg_gettext_version@
!define gpg4win_pkg_gettext_src @gpg4win_pkg_gettext_src@
@HAVE_PKG_QTBASE@
!define gpg4win_pkg_qtbase @gpg4win_pkg_qtbase@
!define gpg4win_pkg_qtbase_version @gpg4win_pkg_qtbase_version@
!define gpg4win_pkg_qtbase_src @gpg4win_pkg_qtbase_src@
@HAVE_PKG_BREEZE_ICONS@
!define gpg4win_pkg_breeze_icons @gpg4win_pkg_breeze_icons@
!define gpg4win_pkg_breeze_icons_version @gpg4win_pkg_breeze_icons_version@
@HAVE_PKG_KLEOPATRA@
!define gpg4win_pkg_kleopatra @gpg4win_pkg_kleopatra@
!define gpg4win_pkg_kleopatra_version @gpg4win_pkg_kleopatra_version@
@HAVE_PKG_PAPERKEY@
!define gpg4win_pkg_paperkey @gpg4win_pkg_paperkey@
!define gpg4win_pkg_paperkey_version @gpg4win_pkg_paperkey_version@
@HAVE_PKG_KCONFIG@
!define gpg4win_pkg_kconfig @gpg4win_pkg_kconfig@
!define gpg4win_pkg_kconfig_version @gpg4win_pkg_kconfig_version@
@HAVE_PKG_QTTOOLS@
!define gpg4win_pkg_qttools @gpg4win_pkg_qttools@
!define gpg4win_pkg_qttools_version @gpg4win_pkg_qttools_version@
@HAVE_PKG_EXTRA_CMAKE_MODULES@
!define gpg4win_pkg_extra_cmake_modules @gpg4win_pkg_extra_cmake_modules@
!define gpg4win_pkg_extra_cmake_modules_version @gpg4win_pkg_extra_cmake_modules_version@
@HAVE_PKG_KI18N@
!define gpg4win_pkg_ki18n @gpg4win_pkg_ki18n@
!define gpg4win_pkg_ki18n_version @gpg4win_pkg_ki18n_version@
@HAVE_PKG_KWIDGETSADDONS@
!define gpg4win_pkg_kwidgetsaddons @gpg4win_pkg_kwidgetsaddons@
!define gpg4win_pkg_kwidgetsaddons_version @gpg4win_pkg_kwidgetsaddons_version@
@HAVE_PKG_KCOMPLETION@
!define gpg4win_pkg_kcompletion @gpg4win_pkg_kcompletion@
!define gpg4win_pkg_kcompletion_version @gpg4win_pkg_kcompletion_version@
@HAVE_PKG_KWINDOWSYSTEM@
!define gpg4win_pkg_kwindowsystem @gpg4win_pkg_kwindowsystem@
!define gpg4win_pkg_kwindowsystem_version @gpg4win_pkg_kwindowsystem_version@
@HAVE_PKG_QTWINEXTRAS@
!define gpg4win_pkg_qtwinextras @gpg4win_pkg_qtwinextras@
!define gpg4win_pkg_qtwinextras_version @gpg4win_pkg_qtwinextras_version@
@HAVE_PKG_KCOREADDONS@
!define gpg4win_pkg_kcoreaddons @gpg4win_pkg_kcoreaddons@
!define gpg4win_pkg_kcoreaddons_version @gpg4win_pkg_kcoreaddons_version@
@HAVE_PKG_LIBKLEO@
!define gpg4win_pkg_libkleo @gpg4win_pkg_libkleo@
!define gpg4win_pkg_libkleo_version @gpg4win_pkg_libkleo_version@
@HAVE_PKG_KCODECS@
!define gpg4win_pkg_kcodecs @gpg4win_pkg_kcodecs@
!define gpg4win_pkg_kcodecs_version @gpg4win_pkg_kcodecs_version@
@HAVE_PKG_KMIME@
!define gpg4win_pkg_kmime @gpg4win_pkg_kmime@
!define gpg4win_pkg_kmime_version @gpg4win_pkg_kmime_version@
@HAVE_PKG_KCONFIGWIDGETS@
!define gpg4win_pkg_kconfigwidgets @gpg4win_pkg_kconfigwidgets@
!define gpg4win_pkg_kconfigwidgets_version @gpg4win_pkg_kconfigwidgets_version@
@HAVE_PKG_KXMLGUI@
!define gpg4win_pkg_kxmlgui @gpg4win_pkg_kxmlgui@
!define gpg4win_pkg_kxmlgui_version @gpg4win_pkg_kxmlgui_version@
@HAVE_PKG_KGUIADDONS@
!define gpg4win_pkg_kguiaddons @gpg4win_pkg_kguiaddons@
!define gpg4win_pkg_kguiaddons_version @gpg4win_pkg_kguiaddons_version@
@HAVE_PKG_KITEMVIEWS@
!define gpg4win_pkg_kitemviews @gpg4win_pkg_kitemviews@
!define gpg4win_pkg_kitemviews_version @gpg4win_pkg_kitemviews_version@
@HAVE_PKG_KITEMMODELS@
!define gpg4win_pkg_kitemmodels @gpg4win_pkg_kitemmodels@
!define gpg4win_pkg_kitemmodels_version @gpg4win_pkg_kitemmodels_version@
@HAVE_PKG_KICONTHEMES@
!define gpg4win_pkg_kiconthemes @gpg4win_pkg_kiconthemes@
!define gpg4win_pkg_kiconthemes_version @gpg4win_pkg_kiconthemes_version@
@HAVE_PKG_QTSVG@
!define gpg4win_pkg_qtsvg @gpg4win_pkg_qtsvg@
!define gpg4win_pkg_qtsvg_version @gpg4win_pkg_qtsvg_version@
@HAVE_PKG_QTTRANSLATIONS@
!define gpg4win_pkg_qttranslations @gpg4win_pkg_qttranslations@
!define gpg4win_pkg_qttranslations_version @gpg4win_pkg_qttranslations_version@
@HAVE_PKG_KARCHIVE@
!define gpg4win_pkg_karchive @gpg4win_pkg_karchive@
!define gpg4win_pkg_karchive_version @gpg4win_pkg_karchive_version@
@HAVE_PKG_KCRASH@
!define gpg4win_pkg_kcrash @gpg4win_pkg_kcrash@
!define gpg4win_pkg_kcrash_version @gpg4win_pkg_kcrash_version@
@HAVE_PKG_KIO@
!define gpg4win_pkg_kio @gpg4win_pkg_kio@
!define gpg4win_pkg_kio_version @gpg4win_pkg_kio_version@
@HAVE_PKG_KSERVICE@
!define gpg4win_pkg_kservice @gpg4win_pkg_kservice@
!define gpg4win_pkg_kservice_version @gpg4win_pkg_kservice_version@
@HAVE_PKG_SOLID@
!define gpg4win_pkg_solid @gpg4win_pkg_solid@
!define gpg4win_pkg_solid_version @gpg4win_pkg_solid_version@
@HAVE_PKG_KBOOKMARKS@
!define gpg4win_pkg_kbookmarks @gpg4win_pkg_kbookmarks@
!define gpg4win_pkg_kbookmarks_version @gpg4win_pkg_kbookmarks_version@
@HAVE_PKG_KJOBWIDGETS@
!define gpg4win_pkg_kjobwidgets @gpg4win_pkg_kjobwidgets@
!define gpg4win_pkg_kjobwidgets_version @gpg4win_pkg_kjobwidgets_version@
@HAVE_PKG_OKULAR@
!define gpg4win_pkg_okular @gpg4win_pkg_okular@
!define gpg4win_pkg_okular_version @gpg4win_pkg_okular_version@
@HAVE_PKG_FREETYPE@
!define gpg4win_pkg_freetype @gpg4win_pkg_freetype@
!define gpg4win_pkg_freetype_version @gpg4win_pkg_freetype_version@
@HAVE_PKG_POPPLER@
!define gpg4win_pkg_poppler @gpg4win_pkg_poppler@
!define gpg4win_pkg_poppler_version @gpg4win_pkg_poppler_version@
@HAVE_PKG_LIBPNG@
!define gpg4win_pkg_libpng @gpg4win_pkg_libpng@
!define gpg4win_pkg_libpng_version @gpg4win_pkg_libpng_version@
@HAVE_PKG_TIFF@
!define gpg4win_pkg_tiff @gpg4win_pkg_tiff@
!define gpg4win_pkg_tiff_version @gpg4win_pkg_tiff_version@
@HAVE_PKG_OPENJPEG@
!define gpg4win_pkg_openjpeg @gpg4win_pkg_openjpeg@
!define gpg4win_pkg_openjpeg_version @gpg4win_pkg_openjpeg_version@
@HAVE_PKG_JPEG@
!define gpg4win_pkg_jpeg @gpg4win_pkg_jpeg@
!define gpg4win_pkg_jpeg_version @gpg4win_pkg_jpeg_version@
@HAVE_PKG_KPARTS@
!define gpg4win_pkg_kparts @gpg4win_pkg_kparts@
!define gpg4win_pkg_kparts_version @gpg4win_pkg_kparts_version@
@HAVE_PKG_KTEXTWIDGETS@
!define gpg4win_pkg_ktextwidgets @gpg4win_pkg_ktextwidgets@
!define gpg4win_pkg_ktextwidgets_version @gpg4win_pkg_ktextwidgets_version@
@HAVE_PKG_SONNET@
!define gpg4win_pkg_sonnet @gpg4win_pkg_sonnet@
!define gpg4win_pkg_sonnet_version @gpg4win_pkg_sonnet_version@
@HAVE_PKG_THREADWEAVER@
!define gpg4win_pkg_threadweaver @gpg4win_pkg_threadweaver@
!define gpg4win_pkg_threadweaver_version @gpg4win_pkg_threadweaver_version@
@HAVE_PKG_GPG4WIN_TOOLS@
!define gpg4win_pkg_gpg4win_tools @gpg4win_pkg_gpg4win_tools@
!define gpg4win_pkg_gpg4win_tools_version @gpg4win_pkg_gpg4win_tools_version@
@HAVE_PKG_SCUTE@
!define gpg4win_pkg_scute @gpg4win_pkg_scute@
!define gpg4win_pkg_scute_version @gpg4win_pkg_scute_version@
+@HAVE_PKG_KCALENDARCORE@
+!define gpg4win_pkg_kcalendarcore @gpg4win_pkg_kcalendarcore@
+!define gpg4win_pkg_kcalendarcore_version @gpg4win_pkg_kcalendarcore_version@
+
+@HAVE_PKG_LIBICAL@
+!define gpg4win_pkg_libical @gpg4win_pkg_libical@
+!define gpg4win_pkg_libical_version @gpg4win_pkg_libical_version@
+
+@HAVE_PKG_MIMETREEPARSER@
+!define gpg4win_pkg_mimetreeparser @gpg4win_pkg_mimetreeparser@
+!define gpg4win_pkg_mimetreeparser_version @gpg4win_pkg_mimetreeparser_version@
+
# Internal packages.
@HAVE_PKG_COMPENDIUM@
# @HAVE_PKG_MAN_NOVICE_EN@
# @HAVE_PKG_MAN_ADVANCED_EN@
diff --git a/src/gpg4win.mk.in b/src/gpg4win.mk.in
index 8e47e958..dbf826fd 100644
--- a/src/gpg4win.mk.in
+++ b/src/gpg4win.mk.in
@@ -1,1233 +1,1234 @@
# gpg4win.m4.in - Installer for GnuPG 4 Windows Makefile. -*- makefile -*-
# Copyright (C) 2005, 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
# No servicable parts below this line :)
# These paths must be absolute, as we switch directories pretty often.
bdir := $(root)/build
idir := $(root)/install
ipdir := $(root)/install/pkgs
tsdir := $(shell pwd)/${top_srcdir}
pdir := $(shell pwd)/${top_srcdir}/patches
ex_idir := $(root)/install-ex
ex_ipdir := $(root)/install-ex/pkgs
ifdef GIT_BETASTRING
VSD_VERSION_FILE:=$(VSD_VERSION)$(GIT_BETASTRING)
else
VSD_VERSION_FILE:=$(VSD_VERSION)
endif
# We collect the names of all pkg files used.
pkg_files =
# The playground area is our scratch area, where we unpack, build and
# install the packages.
#
# Boost includes are only needed for the host and are linked in the
# playground install tree
$(stampdir)/stamp-directories:
$(MKDIR) $(stampdir)
$(MKDIR) $(root)
$(MKDIR) -p installers
$(MKDIR) $(bdir)
$(MKDIR) $(idir)
$(MKDIR) $(idir)/include
ln -s /usr/include/boost $(idir)/include/boost
$(MKDIR) $(ipdir)
$(if $GPGEX_ADD_HOST, $(MKDIR) $(ex_idir))
$(if $GPGEX_ADD_HOST, $(MKDIR) $(ex_ipdir))
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,gpg4win_pkg_$(1))"; \
pkg_version="$(1)-$(call GETVAR,gpg4win_pkg_$(1)_version)"; \
pkgsdir="$(bdir)/$$$${pkg_version}"; \
pkgbdir="$(bdir)/$$$${pkg_version}-build"; \
pkgpdir="$(pdir)/$$$${pkg_version}"; \
pkgpbdir="$(pdir)/$(1)"; \
pkgidir="$(ipdir)/$$$${pkg_version}"; \
pkg_dev="$(call GETVAR,gpg4win_pkg_$(1)_dev)"; \
pkg_version_dev="$(1)-dev-$(call GETVAR,gpg4win_pkg_$(1)_version)"; \
pkgidir_dev="$(ipdir)/$$$${pkg_version_dev}"; \
pkgcfg="$(call GETVAR,gpg4win_pkg_$(1)_configure)"; \
pkgextracflags="$(call GETVAR,gpg4win_pkg_$(1)_extracflags)"; \
pkgmkargs="$(call GETVAR,gpg4win_pkg_$(1)_make_args)"; \
pkgmkargs_inst="$(call GETVAR,gpg4win_pkg_$(1)_make_args_inst)";\
pkgmkdir="$(call GETVAR,gpg4win_pkg_$(1)_make_dir)"; \
pkgmkdir_inst="$(call GETVAR,gpg4win_pkg_$(1)_make_dir)"; \
export PKG_CONFIG="$(tsdir)/src/pkg-config"; \
export PKG_CONFIG_PATH="$(idir)/lib/pkgconfig"; \
export PKG_CONFIG_LIBDIR=""; \
export PATH="$(idir)/bin:$${PATH}"; \
export SYSROOT="$(idir)"; \
export CONFIG_SITE="$(tsdir)/src/config.site"
endef
# Set variables for building in an additional architecture
define SETVARS_EX
set -e; \
pkg="$(call GETVAR,gpg4win_pkg_$(1))"; \
pkg_version="$(1)-$(call GETVAR,gpg4win_pkg_$(1)_version)"; \
pkgsdir="$(bdir)/$$$${pkg_version}"; \
pkgbdir="$(bdir)/$$$${pkg_version}-ex-build"; \
pkgpdir="$(pdir)/$$$${pkg_version}"; \
pkgpbdir="$(pdir)/$(1)"; \
pkgidir="$(ex_ipdir)/$$$${pkg_version}"; \
pkgidir_dev="$(ex_ipdir)/$$$${pkg_version_dev}"; \
pkgcfg="$(call GETVAR,gpg4win_pkg_$(1)_ex_configure)"; \
pkgextracflags="$(call GETVAR,gpg4win_pkg_$(1)_ex_extracflags)"; \
pkgmkargs="$(call GETVAR,gpg4win_pkg_$(1)_ex_make_args)"; \
pkgmkargs_inst="$(call GETVAR,gpg4win_pkg_$(1)_ex_make_args_inst)"; \
pkgmkdir="$(call GETVAR,gpg4win_pkg_$(1)_ex_make_dir)"; \
pkgmkdir_inst="$(call GETVAR,gpg4win_pkg_$(1)_ex_make_dir)"; \
export PKG_CONFIG="$(tsdir)/src/pkg-config"; \
export PKG_CONFIG_PATH="$(ex_idir)/lib/pkgconfig"; \
export PKG_CONFIG_LIBDIR=""; \
export PATH="$(ex_idir)/bin:$${PATH}"; \
export SYSROOT="$(ex_idir)"
endef
define SETVARS_WINE
set -e; \
if [ -z "$$$$(which $(WINE))" ]; then \
echo "ERROR: For the msi-package wine needs to be installed."; \
exit 1; \
fi; \
if [ -z "$(WIXPREFIX)" ]; then \
if [ -d `readlink -f ~/w32root/wixtools` ]; then \
WIXPREFIX2=`readlink -f ~/w32root/wixtools`; \
echo "Using $$$$WIXPREFIX2 as WIXPREFIX"; \
else \
echo "ERROR: You must set WIXPREFIX to an installation of wixtools."; \
exit 1; \
fi; \
else \
WIXPREFIX2="$(WIXPREFIX)"; \
fi; \
if [ -z "$$$$WINEPREFIX" ]; then \
WINEPREFIX="$$$$HOME/.wine"; \
if [ ! -e "$$$$WINEPREFIX/dosdevices" ]; then \
echo "ERROR: No wine prefix found under $$WINEPREFIX"; \
exit 1; \
fi; \
fi; \
WINEINST=$$$$WINEPREFIX/dosdevices/k:; \
WINESRC=$$$$WINEPREFIX/dosdevices/i:; \
WINEINSTEX=$$$$WINEPREFIX/dosdevices/j:; \
if [ -e "$$$$WINEINST" ]; then \
echo "ERROR: $$$$WINEINST already exists. Please remove."; \
exit 1; \
fi; \
if [ -e "$$$$WINESRC" ]; then \
echo "ERROR: $$$$WINESRC already exists. Please remove."; \
exit 1; \
fi; \
if [ -e "$$$$WINEINSTEX" ]; then \
echo "ERROR: $$$$WINEINSTEX already exists. Please remove."; \
exit 1; \
fi; \
MSI_VERSION=$$$$(echo $(VSD_VERSION))
endef
# Same as above
define SETVARS_WINE_TWO_DOLLAR
set -e; \
if [ -z "$$(which $(WINE))" ]; then \
echo "ERROR: For the msi-package wine needs to be installed."; \
exit 1; \
fi; \
if [ -z "$(WIXPREFIX)" ]; then \
if [ -d `readlink -f ~/w32root/wixtools` ]; then \
WIXPREFIX2=`readlink -f ~/w32root/wixtools`; \
echo "Using $$WIXPREFIX2 as WIXPREFIX"; \
else \
echo "ERROR: You must set WIXPREFIX to an installation of wixtools."; \
exit 1; \
fi; \
else \
WIXPREFIX2="$(WIXPREFIX)"; \
fi; \
if [ -z "$$WINEPREFIX" ]; then \
WINEPREFIX="$$HOME/.wine"; \
if [ ! -e "$$WINEPREFIX/dosdevices" ]; then \
echo "ERROR: No wine prefix found under $$WINEPREFIX"; \
exit 1; \
fi; \
fi; \
WINEINST=$$WINEPREFIX/dosdevices/k:; \
WINESRC=$$WINEPREFIX/dosdevices/i:; \
WINEINSTEX=$$WINEPREFIX/dosdevices/j:; \
if [ -e "$$WINEINST" ]; then \
echo "ERROR: $$WINEINST already exists. Please remove."; \
exit 1; \
fi; \
if [ -e "$$WINESRC" ]; then \
echo "ERROR: $$WINESRC already exists. Please remove."; \
exit 1; \
fi; \
if [ -e "$$WINEINSTEX" ]; then \
echo "ERROR: $$WINEINSTEX already exists. Please remove."; \
exit 1; \
fi; \
MSI_VERSION=$$(echo $(VSD_VERSION))
endef
# Support macro. Unpack the archive $(1).
define DEFLATE_macro
if [ -L "$$$${pkgsdir}" ]; then \
echo "Not overwriting symlink $$$${pkgsdir}"; \
else \
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)" ;; \
*/qtwinextras*.*.tar.xz) \
$(TAR) -xJ --transform='s,^qtwinextras-everywhere-src,qtwinextras,' -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)" ;; \
*.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; \
fi
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
# Support macro. Strip all exe files below $(1) using STRIP_EX.
define STRIP_EX_macro
if test -z '$(DEBUG)'; then \
(cd $(1); \
for f in `find . -name \*.exe -o -name \*.dll`; do \
echo Calling $(STRIP_EX) "$$$${pkg_version}/$$$${f}"; \
$(STRIP_EX) "$$$${f}"; done); \
fi
endef
define GETDEPS
$(addprefix $(stampdir)/stamp-final-, $(call GETVAR,gpg4win_pkg_$(1)_deps))
endef
define GETDEPS_EX
$(addprefix $(stampdir)/stamp-final-ex-, $(call GETVAR,gpg4win_pkg_$(1)_ex_deps))
endef
# Template for source packages to build for an additional host
define EXPKG_template_
pkg_files += $(call GETVAR,gpg4win_pkg_$(1))
$(stampdir)/stamp-$(1)-ex-00-unpack: $(stampdir)/stamp-$(1)-00-unpack $(call GETDEPS_EX,$(1))
touch $(stampdir)/stamp-$(1)-ex-00-unpack
$(stampdir)/stamp-$(1)-ex-01-patch: $(stampdir)/stamp-$(1)-ex-00-unpack $(stampdir)/stamp-$(1)-01-patch
touch $(stampdir)/stamp-$(1)-ex-01-patch
$(stampdir)/stamp-$(1)-ex-02-configure: $(stampdir)/stamp-$(1)-ex-01-patch
($(call SETVARS_EX,$(1)); \
mkdir -p "$$$${pkgbdir}"; \
cd "$$$${pkgbdir}"; \
eval "../$$$${pkg_version}/configure" \
--prefix="$$$${pkgidir}" \
--host=$(GPGEX_ADD_HOST) \
--build=$(build) \
$$$${pkgcfg} CFLAGS=\"-mms-bitfields -fcommon $$$${pkgextracflags}\";\
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)-ex-02-configure
$(stampdir)/stamp-$(1)-ex-03-make: $(stampdir)/stamp-$(1)-ex-02-configure
($(call SETVARS_EX,$(1)); \
cd "$$$${pkgbdir}"; \
test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \
$(MAKE) $(AM_MAKEFLAGS) $(GPG4WIN_PARALLEL) $$$${pkgmkargs} \
)
touch $(stampdir)/stamp-$(1)-ex-03-make
# Note that post_install must come last because it may be empty and
# "; ;" is a syntax error.
$(stampdir)/stamp-$(1)-ex-04-install: $(stampdir)/stamp-$(1)-ex-03-make
($(call SETVARS_EX,$(1)); \
cd "$$$${pkgbdir}"; \
$(MAKE) $(AM_MAKEFLAGS) $$$${pkgmkargs_inst} install; \
$(call STRIP_EX_macro,"$$$${pkgidir}"); \
rm -f "$$$${pkgidir}/share/info/dir"; \
$(call gpg4win_pkg_$(call FROB_macro,$(1))_ex_post_install))
touch $(stampdir)/stamp-$(1)-ex-04-install
$(stampdir)/stamp-$(1)-ex-05-stow: $(stampdir)/stamp-$(1)-ex-04-install
($(call SETVARS_EX,$(1)); \
cd $(ex_ipdir); \
$(STOW) -t `readlink -f $(ex_idir)` "$$$${pkg_version}")
touch $(stampdir)/stamp-$(1)-ex-05-stow
$(stampdir)/stamp-final-ex-$(1): $(stampdir)/stamp-$(1)-ex-05-stow
touch $(stampdir)/stamp-final-ex-$(1)
$(1): $(stampdir)/stamp-final-$(1)
.PHONY : clean-ex-$(1)
clean-ex-$(1):
($(call SETVARS_EX,$(1)); \
(cd $(ex_ipdir) && \
($(STOW) -D "$$$${pkg_version}" || true; \
rm -fR "$$$${pkg_version}")); \
rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}")
rm -f $(stampdir)/stamp-final-ex-$(1) $(stampdir)/stamp-$(1)-ex-*
endef
define EXPKG_template
$(if $(filter-out no, $(call GETVAR,gpg4win_pkg_$(1))),
$(call EXPKG_template_,$1))
endef
# Template for source packages.
define SPKG_template_
pkg_files += $(call GETVAR,gpg4win_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)); \
if [ ! -L "$$$${pkgsdir}" ]; then \
for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \
(cd "$$$${pkgsdir}"; chmod +x "$$$${pfile}"; "$$$${pfile}") \
done \
else \
echo "Not patching symlinked $(1)"; \
fi)
touch $(stampdir)/stamp-$(1)-01-patch
$(stampdir)/stamp-$(1)-02-configure: $(stampdir)/stamp-$(1)-01-patch
($(call SETVARS,$(1)); \
mkdir "$$$${pkgbdir}"; \
cd "$$$${pkgbdir}"; \
eval "../$$$${pkg_version}/configure" \
--prefix="$$$${pkgidir}" \
--host=$(host) \
--build=$(build) \
$$$${pkgcfg} CFLAGS=\"-mms-bitfields -fcommon $$$${pkgextracflags}\";\
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 gpg4win_pkg_$(call FROB_macro,$(1))_post_install))
touch $(stampdir)/stamp-$(1)-04-install
$(stampdir)/stamp-$(1)-05-stow: $(stampdir)/stamp-$(1)-04-install
($(call SETVARS,$(1)); \
cd $(ipdir); \
$(STOW) "$$$${pkg_version}")
touch $(stampdir)/stamp-$(1)-05-stow
$(stampdir)/stamp-final-$(1): $(stampdir)/stamp-$(1)-05-stow
touch $(stampdir)/stamp-final-$(1)
$(1): $(stampdir)/stamp-final-$(1)
.PHONY : clean-$(1)
clean-$(1):
($(call SETVARS,$(1)); \
(cd $(ipdir) && \
($(STOW) -D "$$$${pkg_version}" || true; \
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,gpg4win_pkg_$(1))),
$(call SPKG_template_,$1))
endef
# Template for source packages using only make and no build
# directory.
define MPKG_template_
pkg_files += $(call GETVAR,gpg4win_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)); \
if [ ! -L "$$$${pkgsdir}" ]; then \
for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \
(cd "$$$${pkgsdir}"; chmod +x "$$$${pfile}"; "$$$${pfile}") \
done \
else \
echo "Not patching symlinked $(1)"; \
fi)
touch $(stampdir)/stamp-$(1)-01-patch
$(stampdir)/stamp-$(1)-03-make: $(stampdir)/stamp-$(1)-01-patch
($(call SETVARS,$(1)); \
cd "$$$${pkgsdir}"; \
test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \
$(MAKE) $(AM_MAKEFLAGS) $$$${pkgmkargs})
touch $(stampdir)/stamp-$(1)-03-make
$(stampdir)/stamp-$(1)-04-install: $(stampdir)/stamp-$(1)-03-make
($(call SETVARS,$(1)); \
cd "$$$${pkgsdir}"; \
$(MAKE) $(AM_MAKEFLAGS) $$$${pkgmkargs_inst} install; \
$(call STRIP_macro,"$$$${pkgidir}"); \
$(call gpg4win_pkg_$(call FROB_macro,$(1))_post_install))
touch $(stampdir)/stamp-$(1)-04-install
$(stampdir)/stamp-$(1)-05-stow: $(stampdir)/stamp-$(1)-04-install
($(call SETVARS,$(1)); \
cd $(ipdir); \
$(STOW) "$$$${pkg_version}")
touch $(stampdir)/stamp-$(1)-05-stow
$(stampdir)/stamp-final-$(1): $(stampdir)/stamp-$(1)-05-stow
touch $(stampdir)/stamp-final-$(1)
$(1): $(stampdir)/stamp-final-$(1)
.PHONY : clean-$(1)
clean-$(1):
($(call SETVARS,$(1)); \
(cd $(ipdir) && \
($(STOW) -D "$$$${pkg_version}" || true; \
rm -fR "$$$${pkg_version}")); \
rm -fR "$$$${pkgsdir}")
rm -f $(stampdir)/stamp-final-$(1) $(stampdir)/stamp-$(1)-*
endef
define MPKG_template
$(if $(filter-out no, $(call GETVAR,gpg4win_pkg_$(1))),
$(call MPKG_template_,$1))
endef
# Template for binary packages.
define BPKG_template_
pkg_files += $(call GETVAR,gpg4win_pkg_$(1))
pkg_files += $(call GETVAR,gpg4win_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 gpg4win_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)
$(1): $(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,gpg4win_pkg_$(1))),
$(call BPKG_template_,$1))
endef
# Template for qt packages.
define QTPKG_template_
pkg_files += $(call GETVAR,gpg4win_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)); \
if [ ! -L "$$$${pkgsdir}" ]; then \
for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \
(cd "$$$${pkgsdir}"; chmod +x "$$$${pfile}"; "$$$${pfile}") \
done \
else \
echo "Not patching symlinked $(1)"; \
fi)
touch $(stampdir)/stamp-$(1)-01-patch
$(stampdir)/stamp-$(1)-02-configure: $(stampdir)/stamp-$(1)-01-patch
($(call SETVARS,$(1)); \
mkdir "$$$${pkgbdir}"; \
cd "$$$${pkgbdir}"; \
$$$${pkgcfg}) && \
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)); \
$(call gpg4win_pkg_$(call FROB_macro,$(1))_post_install))
touch $(stampdir)/stamp-$(1)-04-install
$(stampdir)/stamp-$(1)-05-stow: $(stampdir)/stamp-$(1)-04-install
($(call SETVARS,$(1)); \
cd $(ipdir); \
$(STOW) "$$$${pkg_version}")
touch $(stampdir)/stamp-$(1)-05-stow
$(stampdir)/stamp-final-$(1): $(stampdir)/stamp-$(1)-05-stow
touch $(stampdir)/stamp-final-$(1)
$(1): $(stampdir)/stamp-final-$(1)
.PHONY : clean-$(1)
clean-$(1):
($(call SETVARS,$(1)); \
(cd $(ipdir) && \
($(STOW) -D "$$$${pkg_version}" || true; \
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,gpg4win_pkg_$(1))),
$(call QTPKG_template_,$1))
endef
# Template for internal packages.
define IPKG_template
$(stampdir)/stamp-final-$(1): $(stampdir)/stamp-directories $(call GETDEPS,$(1))
touch $(stampdir)/stamp-final-$(1)
endef
# Template for README files
# (The final awk command converts the file endings).
define README_template
README.$(1).txt : versioninfo.txt NEWS.tmp $(top_srcdir)/doc/README.$(1).txt \
COMPONENTS-list.tmp $(top_srcdir)/doc/beta-warning.txt
sed -e '/^;.*/d;/!VERSIONINFO!/{r versioninfo.txt' -e 'd;}' \
-e '/!NEWSFILE!/{r NEWS.tmp' -e 'd;}' \
-e '/!NEWSFILE!/{r NEWS.tmp' -e 'd;}' \
-e '/!COMPONENTS!/{r COMPONENTS-list.tmp' -e 'd;}' \
-e '/!PKG-COPYRIGHT!/{r $(top_srcdir)/doc/pkg-copyright.txt' -e 'd;}' \
-e 's,!VERSION!,$(VERSION),g' \
-e 's,!BUILD_ISODATE!,$(BUILD_ISODATE),g' \
< $(top_srcdir)/doc/README.$(1).txt \
| (if echo "$(VERSION)" | egrep 'svn|rc|beta|git' >/dev/null; then \
sed -e '/!BETA-WARNING!/{r $(top_srcdir)/doc/beta-warning.txt' \
-e 'd;}'; else sed -e 's,!BETA-WARNING!,,g'; fi) \
| awk '{printf "%s\r\n", $$$$0}' >README.$(1).txt
endef
define HOWTO_template
HOWTO-$(1).$(2).txt : $(top_srcdir)/doc/HOWTO-$(1).$(2).txt
sed -e '/^;.*/d' \
-e 's,!VERSION!,$(VERSION),g' \
-e 's,!BUILD_ISODATE!,$(BUILD_ISODATE),g' \
< $(top_srcdir)/doc/HOWTO-$(1).$(2).txt \
| awk '{printf "%s\r\n", $$$$0}' > HOWTO-$(1).$(2).txt
endef
# Template for source packages of KDE software
define KDEPKG_template_
pkg_files += $(call GETVAR,gpg4win_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)); \
if [ ! -L "$$$${pkgsdir}" ]; then \
cd "$$$${pkgsdir}"; \
sed -i 's/set(KF5_MIN_VERSION.*)/set(KF5_MIN_VERSION "5.104.0")/' CMakeLists.txt; \
+ sed -i 's/set(KF_MIN_VERSION.*)/set(KF_MIN_VERSION "5.104.0")/' CMakeLists.txt; \
sed -i 's/set(KF5_VERSION.*)/set(KF5_VERSION "5.104.0")/' CMakeLists.txt; \
sed -i 's/set(KMIME_VERSION.*)/set(KMIME_VERSION "5.2.40")/' CMakeLists.txt; \
for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \
(cd "$$$${pkgsdir}"; chmod +x "$$$${pfile}"; "$$$${pfile}") \
done \
else \
echo "Not patching symlinked $(1)"; \
fi)
touch $(stampdir)/stamp-$(1)-01-patch
$(stampdir)/stamp-$(1)-02-configure: $(stampdir)/stamp-$(1)-01-patch
($(call SETVARS,$(1)); \
mkdir "$$$${pkgbdir}"; \
cd "$$$${pkgbdir}"; \
$(CMAKE) \
-DCMAKE_INSTALL_PREFIX="$$$${pkgidir}" \
-DCMAKE_PREFIX_PATH="$$$${pkgidir}" \
-DQT_MAJOR_VERSION="5" \
-DCMAKE_TOOLCHAIN_FILE=$(abs_top_srcdir)/src/toolchain.cmake \
-DPKG_CONFIG_EXECUTABLE=$(abs_top_srcdir)/src/pkg-config \
-DKDE_INSTALL_DATADIR="$$$${pkgidir}/share" \
-DBUILD_TESTING=False \
$$$${pkgcfg} $$$${pkgextracflags} "../$$$${pkg_version}") && \
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}"); \
$(call gpg4win_pkg_$(call FROB_macro,$(1))_post_install))
touch $(stampdir)/stamp-$(1)-04-install
$(stampdir)/stamp-$(1)-05-stow: $(stampdir)/stamp-$(1)-04-install
($(call SETVARS,$(1)); \
cd $(ipdir); \
$(STOW) "$$$${pkg_version}")
touch $(stampdir)/stamp-$(1)-05-stow
$(stampdir)/stamp-final-$(1): $(stampdir)/stamp-$(1)-05-stow
touch $(stampdir)/stamp-final-$(1)
$(1): $(stampdir)/stamp-final-$(1)
.PHONY : clean-$(1)
clean-$(1):
($(call SETVARS,$(1)); \
(cd $(ipdir) && \
($(STOW) -D "$$$${pkg_version}" || true; \
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,gpg4win_pkg_$(1))),
$(call KDEPKG_template_,$1))
endef
# Sign the file $1 and save the result as $2
define AUTHENTICODE_sign
set -e;\
if [ -n "$(3)" ]; then \
val_n="$(3)"; \
val_i="https://gnupg.com"; \
elif [ "$(IS_VSD_BUILD)" = yes ]; then \
val_n="GnuPG VS-Desktop" ;\
val_i="https://gnupg.com" ;\
else \
val_n="Gpg4win" ;\
val_i="https://gpg4win.org" ;\
fi ;\
if [ -n "$(AUTHENTICODE_SIGNHOST)" ]; then \
echo "speedo: Signing via host $(AUTHENTICODE_SIGNHOST)";\
scp $(1) "$(AUTHENTICODE_SIGNHOST):a.exe" ;\
ssh "$(AUTHENTICODE_SIGNHOST)" $(AUTHENTICODE_TOOL) sign \
/v /sm \
/a /n '"g10 Code GmbH"' \
/tr 'http://rfc3161timestamp.globalsign.com/advanced' /td sha256 \
/d '"GnuPG VS-Desktop"' \
/fd sha256 /du https://gnupg.com a.exe; \
scp "$(AUTHENTICODE_SIGNHOST):a.exe" $(2);\
echo "signed file is '$(2)'" ;\
elif [ "$(AUTHENTICODE_KEY)" = card ]; then \
echo "speedo: Signing using a card '$(1)'";\
$(OSSLSIGNCODE) sign \
-pkcs11engine $(OSSLPKCS11ENGINE) \
-pkcs11module $(SCUTEMODULE) \
-certs $(AUTHENTICODE_CERTS) \
-h sha256 -n "$$$${val_n}" -i "$$$${val_i}" \
-ts http://rfc3161timestamp.globalsign.com/advanced \
-in $(1) -out $(2).tmp ; cp $(2).tmp $(2) ; rm $(2).tmp ; \
echo "signed file is '$(2)'" ;\
else \
echo "speedo: Signing using key $(AUTHENTICODE_KEY)";\
osslsigncode sign -certs $(AUTHENTICODE_CERTS) \
-pkcs12 $(AUTHENTICODE_KEY) -askpass \
-ts "http://timestamp.globalsign.com/scripts/timstamp.dll" \
-h sha256 -n "$$$${val_n}" -i "$$$${val_i}" \
-in $(1) -out $(2) ;\
fi
endef
define MSI_template
$(1)_PRODUCT := $(msi_target_$(1)_PRODUCT)
ifeq ($$($(1)_PRODUCT),)
$(1)_PRODUCT := $(VSD_PRODUCT)
endif
ifeq ($$($(1)_PRODUCT),)
$(1)_PRODUCT := Gpg4win
endif
$(1)_PRODUCT_PRETTY := $(msi_target_$(1)_PRODUCT_PRETTY)
ifeq ($$($(1)_PRODUCT_PRETTY),)
$(1)_PRODUCT_PRETTY := $(VSD_PRODUCT_PRETTY)
endif
ifeq ($$($(1)_PRODUCT_PRETTY),)
$(1)_PRODUCT_PRETTY := Gpg4win
endif
$(1)-package: installers/$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi
$$($(1)_PRODUCT)-$(VERSION).wxs: gpg4win.nsi $(common_nsi) $(stampdir)/stamp-final \
$(foosum_exe) gpgwrap.exe \
$(README_files) $(HOWTO_files) \
versioninfo.txt make-msi.pl \
$(addsuffix /VERSION.sig,$(addprefix gnupg-vsd/,$(msi_targets)))
perl make-msi.pl --guids $(srcdir)/make-msi.guids \
--manifest gpg4win-$(VERSION).files \
--version $(VSD_VERSION) \
--name "$$($(1)_PRODUCT_PRETTY)" \
-DBUILD_DIR=. -DTOP_SRCDIR=$(top_srcdir) \
-DSRCDIR=$(srcdir) $(srcdir)/gpg4win.nsi > $$($(1)_PRODUCT)-$(VERSION).wxs
$(idir)/$$($(1)_PRODUCT)-$(VERSION).wixlib: \
$(stampdir)/stamp-final \
$(foosum_exe) \
$(README_files) $(HOWTO_files) \
license.blurb versioninfo.txt \
WixUI_Gpg4win.wxs \
$$($(1)_PRODUCT)-$(VERSION).wxs \
$(stampdir)/stamp-additional-signedfiles
($(call SETVARS_WINE,); \
echo "Gpg4win" > $(root)/VERSION; \
echo "$(VERSION)" >> $(root)/VERSION; \
(ln -s $(idir) $$$$WINEINST; \
ln -s $(ex_idir) $$$$WINEINSTEX; \
ln -s `readlink -f $(top_srcdir)` $$$$WINESRC; \
$(WINE) $$$$WIXPREFIX2/candle.exe \
-dInstDir=k: \
-dInstDirEx=j: \
-dSrcDir=i:\\src \
-dVersion=$$$$MSI_VERSION \
-out k:\\$$($(1)_PRODUCT)-$(VERSION).wixobj \
-pedantic -wx i:\\src\\$$($(1)_PRODUCT)-$(VERSION).wxs \
-arch x64 || exit 1;\
$(WINE) $$$$WIXPREFIX2/candle.exe \
-dInstDir=k: \
-dInstDirEx=j: \
-dSrcDir=i:\\src \
-dVersion=$$$$MSI_VERSION \
-out k:\\gpg4win-ui.wixobj \
-arch x64 \
-pedantic -wx i:\\src\\WixUI_Gpg4win.wxs || exit 1;\
\
$(WINE) $$$$WIXPREFIX2/lit.exe \
-out k:\\$$($(1)_PRODUCT)-$(VERSION).wixlib \
-bf \
-wx \
-pedantic \
k:\\$$($(1)_PRODUCT)-$(VERSION).wixobj k:\\gpg4win-ui.wixobj || exit 1; \
\
) || ERR=1; (rm $$$$WINEINST; rm $$$$WINESRC; rm $$$$WINEINSTEX); \
if [ -n "$$$$ERR" ]; then \
exit 1; \
fi)
$(idir)/$$($(1)_PRODUCT)-$(VERSION)-x86.wixlib: \
$(stampdir)/stamp-final \
$(foosum_exe) \
$(README_files) $(HOWTO_files) \
license.blurb versioninfo.txt \
WixUI_Gpg4win.wxs \
$$($(1)_PRODUCT)-$(VERSION).wxs \
$(stampdir)/stamp-additional-signedfiles
($(call SETVARS_WINE,); \
echo "Gpg4win" > $(root)/VERSION; \
echo "$(VERSION)" >> $(root)/VERSION; \
(ln -s $(idir) $$$$WINEINST; \
ln -s $(ex_idir) $$$$WINEINSTEX; \
ln -s `readlink -f $(top_srcdir)` $$$$WINESRC; \
$(WINE) $$$$WIXPREFIX2/candle.exe \
-dInstDir=k: \
-dInstDirEx=j: \
-dSrcDir=i:\\src \
-dVersion=$$$$MSI_VERSION \
-arch x86 \
-out k:\\$$($(1)_PRODUCT)-$(VERSION)-x86.wixobj \
-pedantic -wx i:\\src\\$$($(1)_PRODUCT)-$(VERSION).wxs || exit 1;\
$(WINE) $$$$WIXPREFIX2/candle.exe \
-dInstDir=k: \
-dInstDirEx=j: \
-dSrcDir=i:\\src \
-dVersion=$$$$MSI_VERSION \
-arch x86 \
-out k:\\gpg4win-ui-x86.wixobj \
-pedantic -wx i:\\src\\WixUI_Gpg4win.wxs || exit 1;\
\
$(WINE) $$$$WIXPREFIX2/lit.exe \
-out k:\\$$$$($(1)_PRODUCT)-$(VERSION)-x86.wixlib \
-bf \
-wx \
-pedantic \
k:\\$$($(1)_PRODUCT)-$(VERSION)-x86.wixobj k:\\gpg4win-ui-x86.wixobj || exit 1; \
\
) || ERR=1; (rm $$$$WINEINST; rm $$$$WINESRC; rm $$$$WINEINSTEX); \
if [ -n "$$$$ERR" ]; then \
exit 1; \
fi)
$(idir)/$(1)-x86.wixlib: gnupg-vsd/$(1)/$(1).wxs
($(call SETVARS_WINE,); \
( \
ln -s $(idir) $$$$WINEINST; \
ln -s $(ex_idir) $$$$WINEINSTEX; \
ln -s `readlink -f $(top_srcdir)` $$$$WINESRC; \
$(WINE) $$$$WIXPREFIX2/candle.exe \
-dInstDir=k: \
-dInstDirEx=j: \
-dSrcDir=i:\\src \
-dVersion=$$$$MSI_VERSION \
-arch x86 \
-out k:\\$(1)-$(VERSION)-x86.wixobj \
-pedantic -wx i:\\src\\gnupg-vsd\\$(1)\\$(1).wxs || exit 1;\
$(WINE) $$$$WIXPREFIX2/lit.exe \
-out k:\\$(1)-x86.wixlib \
-bf \
-wx \
-pedantic \
k:\\$(1)-$(VERSION)-x86.wixobj || exit 1; \
\
) || ERR=1; \
(rm $$$$WINEINST; rm $$$$WINESRC; rm $$$$WINEINSTEX); \
if [ -n "$$$$ERR" ]; then \
exit 1; \
fi \
)
$(idir)/$(1).wixlib: gnupg-vsd/$(1)/$(1).wxs
($(call SETVARS_WINE,); \
( \
ln -s $(idir) $$$$WINEINST; \
ln -s $(ex_idir) $$$$WINEINSTEX; \
ln -s `readlink -f $(top_srcdir)` $$$$WINESRC; \
$(WINE) $$$$WIXPREFIX2/candle.exe \
-dInstDir=k: \
-dInstDirEx=j: \
-dSrcDir=i:\\src \
-dVersion=$$$$MSI_VERSION \
-out k:\\$(1)-$(VERSION).wixobj \
-arch x64 \
-pedantic -wx i:\\src\\gnupg-vsd\\$(1)\\$(1).wxs || exit 1;\
$(WINE) $$$$WIXPREFIX2/lit.exe \
-out k:\\$(1).wixlib \
-bf \
-wx \
-pedantic \
k:\\$(1)-$(VERSION).wixobj || exit 1; \
\
) || ERR=1; \
(rm $$$$WINEINST; rm $$$$WINESRC; rm $$$$WINEINSTEX); \
if [ -n "$$$$ERR" ]; then \
exit 1; \
fi \
)
# This is generated by make-msi.pl
gnupg-vsd/$(1)/$(1).wxs: gnupg-vsd/$(1)/VERSION.sig make-msi.pl $$($(1)_PRODUCT)-$(VERSION).wxs
perl make-msi.pl --guids $(srcdir)/make-msi.guids \
--manifest gpg4win-$(VERSION).files \
--version $(VSD_VERSION) \
--name "$$($(1)_PRODUCT_PRETTY)" \
-DBUILD_DIR=. -DTOP_SRCDIR=$(top_srcdir) \
-DSRCDIR=$(srcdir) $(srcdir)/gpg4win.nsi > /dev/null
gnupg-vsd/$(1)/VERSION.sig: gnupg-vsd/$(1)/VERSION
echo "----------SIGNING----------"
echo "using key: $(version_signkey)"
cat gnupg-vsd/$(1)/VERSION
gpg --yes -o gnupg-vsd/$(1)/VERSION.sig -bau $(version_signkey) gnupg-vsd/$(1)/VERSION
gnupg-vsd/$(1)/VERSION: gnupg-vsd/custom.mk
if [ "$(call GETVAR,msi_target_$(1)_VERSION)" = "VS-Desktop-$(VSD_VERSION)" ]; then \
echo "VS-Desktop-$(VSD_VERSION_FILE)" > gnupg-vsd/$(1)/VERSION; \
else \
echo "$(call GETVAR,msi_target_$(1)_VERSION)" > gnupg-vsd/$(1)/VERSION;\
fi
echo "$(call GETVAR,msi_target_$(1)_DESC)" >> gnupg-vsd/$(1)/VERSION
echo "$(call GETVAR,msi_target_$(1)_DESC_SHORT)" >> gnupg-vsd/$(1)/VERSION
gnupg-vsd/$(1)/announcement.txt: gnupg-vsd/custom.mk gnupg-vsd/announcement.de.in gnupg-vsd/announcement.en.in
cat gnupg-vsd/$(call GETVAR,msi_target_$(1)_announcement) | \
sed 's/VSD_VERSION/$(VSD_VERSION)/' | \
sed 's@GNUPG_VSD_CUSTOMER_LINK@https://download.gnupg.com/files/$(call GETVAR,msi_target_$(1)_directory)/$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi@' | \
sed 's@GNUPG_VSD_SOURCE_LINK@https://download.gnupg.com/files/src/Gnupg-VS-Desktop-$(VSD_VERSION).tar.xz@' > gnupg-vsd/$(1)/announcement.txt
installers/$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi: $(stampdir)/stamp-msi-base $(idir)/$(1).wixlib \
gnupg-vsd/$(1)/license.rtf $(idir)/$$($(1)_PRODUCT)-$(VERSION).wixlib
scp gnupg-vsd/$(1)/license.rtf \
$(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION); \
scp $(idir)/$(1).wixlib \
$(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION); \
scp $(call GETVAR,msi_target_$(1)_branding)/*.bmp \
$(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION); \
scp $(idir)/$$($(1)_PRODUCT)-$(VERSION).wixlib $(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION); \
ssh $(WINHOST) "cd AppData/Local/Temp/gpg4win-$(VERSION) && $(WINLIGHT) \
-cc . \
-reusecab \
-spdb \
-ext WixUIExtension \
-out $$($(1)_PRODUCT)-$(VERSION)-$(1).msi \
$(call GETVAR,msi_target_$(1)_l10n) \
-dcl:high \
-pedantic \
\
$$($(1)_PRODUCT)-$(VERSION).wixlib \
gnupg-msi-$(gpg4win_pkg_gnupg_msi_version)-bin.wixlib \
$(1).wixlib" | grep -v "ICE80" | grep -v "ICE57" ; \
scp $(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION)/$$($(1)_PRODUCT)-$(VERSION)-$(1).msi \
installers/$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi;
installers/$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1)-x86.msi: $(stampdir)/stamp-msi-base $(idir)/$(1)-x86.wixlib \
gnupg-vsd/$(1)/license.rtf \
$(idir)/$$($(1)_PRODUCT)-$(VERSION)-x86.wixlib
scp gnupg-vsd/$(1)/license.rtf \
$(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION); \
scp $(idir)/$$($(1)_PRODUCT)-$(VERSION)-x86.wixlib \
$(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION); \
scp $(idir)/$(1)-x86.wixlib \
$(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION); \
scp $(call GETVAR,msi_target_$(1)_branding)/*.bmp \
$(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION); \
scp $(idir)/$$($(1)_PRODUCT)-$(VERSION)-x86.wixlib $(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION); \
ssh $(WINHOST) "cd AppData/Local/Temp/gpg4win-$(VERSION) && $(WINLIGHT) \
-cc . \
-reusecab \
-spdb \
-ext WixUIExtension \
-out $$($(1)_PRODUCT)-$(VERSION)-$(1)-x86.msi \
$(call GETVAR,msi_target_$(1)_l10n) \
-dcl:high \
-v -pedantic \
\
$$($(1)_PRODUCT)-$(VERSION)-x86.wixlib \
gnupg-msi-$(gpg4win_pkg_gnupg_msi_version)-bin.wixlib \
$(1)-x86.wixlib"; \
scp $(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION)/$$($(1)_PRODUCT)-$(VERSION)-$(1)-x86.msi \
installers/$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1)-x86.msi;
signed_installers/$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi: installers/$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi
mkdir -p signed_installers
$(call AUTHENTICODE_sign,"installers/$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi","signed_installers/$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi",$$($(1)_PRODUCT_PRETTY));\
$(stampdir)/stamp-$(1)-upload: signed_installers/$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi \
$(stampdir)/stamp-dist-self
@(set -e; cd signed_installers; \
sha256sum $$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi > \
$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi.sha256; \
if [ -f "../gnupg-vsd/$(1)/customer-enc-key.asc" ]; then \
echo "Encrypting installer"; \
k="-f ../gnupg-vsd/$(1)/customer-enc-key.asc" ; \
for i in 2 3 4 5 6 7 8 9; do \
if [ -f "../gnupg-vsd/$(1)/customer-enc-key$$$${i}.asc" ]; then \
k="$$$${k} -f ../gnupg-vsd/$(1)/customer-enc-key$$$${i}.asc";\
fi; \
done; \
gpg --no-options --batch --yes -seu $(msi_signkey) \
$$$${k} \
-f "../gnupg-vsd/general-enc-key.asc" \
-o $$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi.gpg \
$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi;\
sha256sum $$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi.gpg > \
$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi.gpg.sha256; \
scp $$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi.gpg \
$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi.gpg.sha256 \
$(VSD_PUBLISH_HOST)/$(call GETVAR,msi_target_$(1)_directory); \
echo "https://download.gnupg.com/files/$(call GETVAR,msi_target_$(1)_directory)/$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi.gpg" \
> $(stampdir)/stamp-$(1)-upload; \
else \
gpg --yes -o $$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi.sig -bu $(msi_signkey) \
$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi; \
scp $$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi \
$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi.sha256 \
$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi.sig \
$(VSD_PUBLISH_HOST)/$(call GETVAR,msi_target_$(1)_directory); \
ssh `echo $(VSD_PUBLISH_HOST) | cut -d ":" -f 1` \
echo "https://download.gnupg.com/files/$(call GETVAR,msi_target_$(1)_directory)/$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi" \
> $(stampdir)/stamp-$(1)-upload; \
echo "https://download.gnupg.com/files/$(call GETVAR,msi_target_$(1)_directory)/$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi.sig" \
>> $(stampdir)/stamp-$(1)-upload; \
fi)
.phony : $(1)
$(1): installers/$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi
.PHONY : $(1)-x86
$(1)-x86: installers/$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1)-x86.msi
echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
echo "XXXX FIXME: x86 Registration of GpgOL and GpgEX does not work! XXXX"
echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
.PHONY : $(1)-upload
$(1)-upload: $(stampdir)/stamp-$(1)-upload $(stampdir)/stamp-dist-self
gpg --yes -o gnupg-vsd-$(VERSION).tar.xz.sig -bau $(msi_signkey) \
../gpg4win-$(VERSION).tar.xz
rsync -vP ../gpg4win-$(VERSION).tar.xz $(VSD_PUBLISH_HOST)/src/$$($(1)_PRODUCT)-$(VERSION).tar.xz
rsync -vP gnupg-vsd-$(VERSION).tar.xz.sig $(VSD_PUBLISH_HOST)/src/$$($(1)_PRODUCT)-$(VERSION).tar.xz.sig
echo "Upload URLs:"
cat $(stampdir)/stamp-$(1)-upload
echo "Source links:"
echo "https://download.gnupg.com/files/src/$$($(1)_PRODUCT)-$(VERSION).tar.xz"
echo "https://download.gnupg.com/files/src/$$($(1)_PRODUCT)-$(VERSION).tar.xz.sig"
$(1)-signed: signed_installers/$$($(1)_PRODUCT)-$(VSD_VERSION_FILE)-$(1).msi
$(1)-announce: gnupg-vsd/$(1)/announcement.txt
set -x
echo "-------- Announcement for $(1) ---------"
cat gnupg-vsd/$(1)/announcement.txt
echo "-----------------------------"
echo "Send to: $(call GETVAR,msi_target_$(1)_contact)"
echo "Ticket: $(call GETVAR,msi_target_$(1)_ticket)"
echo "-----------------------------"
endef
# Insert the template for each source package.
$(foreach spkg, $(gpg4win_spkgs), $(eval $(call SPKG_template,$(spkg))))
# Insert the template for each gpgEx architecture package.
$(foreach expkg, $(gpg4win_expkgs), $(eval $(call EXPKG_template,$(expkg))))
# Insert the template for each make only source package.
$(foreach mpkg, $(gpg4win_mpkgs), $(eval $(call MPKG_template,$(mpkg))))
# Insert the template for each binary package.
$(foreach bpkg, $(gpg4win_bpkgs), $(eval $(call BPKG_template,$(bpkg))))
# Insert the template for each internal package.
$(foreach ipkg, $(gpg4win_ipkgs), $(eval $(call IPKG_template,$(ipkg))))
# Insert the template for the README and HOWTO files.
$(foreach rll, $(gpg4win_readme_ll), $(eval $(call README_template,$(rll))))
# Insert the template for KDE packages.
$(foreach kdepkg, $(gpg4win_kdepkgs), $(eval $(call KDEPKG_template,$(kdepkg))))
# Insert the template for qt packages.
$(foreach qtpkg, $(gpg4win_qtpkgs), $(eval $(call QTPKG_template,$(qtpkg))))
$(foreach rll, $(gpg4win_howto_smime_ll), \
$(eval $(call HOWTO_template,SMIME,$(rll))))
$(stampdir)/stamp-binaries: $(addprefix $(stampdir)/stamp-final-,$(gpg4win_build_list)) \
$(addprefix $(stampdir)/stamp-final-ex-,$(gpg4win_build_ex_list))
touch $(stampdir)/stamp-binaries
$(stampdir)/stamp-final: $(stampdir)/stamp-directories $(stampdir)/stamp-additional-signedfiles
touch $(stampdir)/stamp-final
$(bdir)/versioninfo.txt: $(stampdir)/stamp-final
touch $(bdir)/versioninfo.txt
all-gpg4win: $(stampdir)/stamp-final
# Just to check if we catched all stamps.
clean-stamps:
$(RM) -fR $(stampdir)
clean-gpg4win:
$(RM) -fR $(root) $(stampdir)
$(stampdir)/stamp-versions-all-signed: $(stampdir)/stamp-directories \
$(addsuffix /VERSION.sig, $(addprefix gnupg-vsd/,$(msi_targets)))
touch $(stampdir)/stamp-versions-all-signed
$(stampdir)/stamp-all-upload: $(stampdir)/stamp-dist-self \
$(addsuffix -upload, $(addprefix $(stampdir)/stamp-,$(msi_targets)))
echo "Upload URLs:"
cat $(addsuffix -upload, $(addprefix $(stampdir)/stamp-,$(msi_targets)))
gpg --yes -o gnupg-vsd-$(VERSION).tar.xz.sig -bau $(msi_signkey) \
../gpg4win-$(VERSION).tar.xz
rsync -vP ../gpg4win-$(VERSION).tar.xz $(VSD_PUBLISH_HOST)/src/GnuPG-VS-Desktop-$(VSD_VERSION).tar.bz2
rsync -vP gnupg-vsd-$(VERSION).tar.xz.sig $(VSD_PUBLISH_HOST)/src/GnuPG-VS-Desktop-$(VSD_VERSION).tar.xz.sig
echo "Source links:"
echo "https://download.gnupg.com/files/src/Gnupg-VS-Desktop-$(VSD_VERSION).tar.xz"
echo "https://download.gnupg.com/files/src/Gnupg-VS-Desktop-$(VSD_VERSION).tar.xz.sig"
touch $(stampdir)/stamps-all-upload
.PHONY: msi
# Add here if you use new product names we need new subst targets
msi: $(stampdir)/stamp-versions-all-signed \
$(subst GnuPG-VS-Desktop-$(VSD_VERSION_FILE)-Desktop.msi, installers/GnuPG-Desktop-$(VSD_VERSION_FILE)-Desktop.msi, \
$(addsuffix .msi,$(addprefix installers/GnuPG-VS-Desktop-$(VSD_VERSION_FILE)-,$(msi_targets))))
if [ -z "$(addsuffix .msi,$(addprefix installers/GnuPG-VS-Desktop-$(VSD_VERSION_FILE)-,$(msi_targets)))" ]; then \
echo "No MSI targets configured."; \
else \
echo "######################"; \
echo "# MSI Packaging done #"; \
echo "######################"; \
fi
$(stampdir)/stamp-msi-all-signed: gnupg-vsd/sign.mk \
$(subst GnuPG-VS-Desktop-$(VSD_VERSION_FILE)-Desktop.msi, signed_installers/GnuPG-Desktop-$(VSD_VERSION_FILE)-Desktop.msi, \
$(addsuffix .msi,$(addprefix signed_installers/GnuPG-VS-Desktop-$(VSD_VERSION_FILE)-,$(msi_targets))))
touch $(stampdir)/stamp-msi-all-signed
msi-signed: $(stampdir)/stamp-msi-all-signed
msi-upload: $(stampdir)/stamp-all-upload $(stampdir)/stamp-dist-self
installers: \
$(addsuffix .msi,$(addprefix installers/GnuPG-VS-Desktop-$(VSD_VERSION_FILE)-,$(msi_targets)))
.PHONY : all-gpg4win clean-stamps clean-gpg4win msi msi-signed msi-upload
# Insert the template for msi packages.
$(foreach msipkg, $(msi_targets), $(eval $(call MSI_template,$(msipkg))))
# @emacs_local_vars_begin@
# @emacs_local_vars_read_only@
# @emacs_local_vars_end@
diff --git a/src/inst-kcalendarcore.nsi b/src/inst-kcalendarcore.nsi
new file mode 100644
index 00000000..7a8388ad
--- /dev/null
+++ b/src/inst-kcalendarcore.nsi
@@ -0,0 +1,31 @@
+# Copyright (C) 2023 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, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+!ifdef prefix
+!undef prefix
+!endif
+!define prefix ${ipdir}/kcalendarcore-${gpg4win_pkg_kcalendarcore_version}
+
+!ifdef DEBUG
+Section "kcalendarcore" SEC_kcalendarcore
+!else
+Section "-kcalendarcore" SEC_kcalendarcore
+!endif
+ SetOutPath "$INSTDIR"
+ SetOutPath "$INSTDIR\bin"
+ File ${prefix}/bin/libKF5CalendarCore.dll
+SectionEnd
diff --git a/src/inst-libical.nsi b/src/inst-libical.nsi
new file mode 100644
index 00000000..75ffcb09
--- /dev/null
+++ b/src/inst-libical.nsi
@@ -0,0 +1,30 @@
+# Copyright (C) 2023 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, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+!ifdef prefix
+!undef prefix
+!endif
+!define prefix ${ipdir}/libical-${gpg4win_pkg_libical_version}
+
+!ifdef DEBUG
+Section "libical" SEC_libical
+!else
+Section "-libical" SEC_libical
+!endif
+ SetOutPath "$INSTDIR\bin"
+ File ${prefix}/bin/libical.dll
+SectionEnd
diff --git a/src/inst-mimetreeparser.nsi b/src/inst-mimetreeparser.nsi
new file mode 100644
index 00000000..184584c2
--- /dev/null
+++ b/src/inst-mimetreeparser.nsi
@@ -0,0 +1,32 @@
+# Copyright (C) 2023 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, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+!ifdef prefix
+!undef prefix
+!endif
+!define prefix ${ipdir}/mimetreeparser-${gpg4win_pkg_mimetreeparser_version}
+
+!ifdef DEBUG
+Section "mimetreeparser" SEC_mimetreeparser
+!else
+Section "-mimetreeparser" SEC_mimetreeparser
+!endif
+ SetOutPath "$INSTDIR"
+ SetOutPath "$INSTDIR\bin"
+ File ${prefix}/bin/libKPim5MimeTreeParserCore.dll
+ File ${prefix}/bin/libKPim5MimeTreeParserWidgets.dll
+SectionEnd
diff --git a/src/inst-sections.nsi b/src/inst-sections.nsi
index a5e659cd..32b95b9e 100644
--- a/src/inst-sections.nsi
+++ b/src/inst-sections.nsi
@@ -1,1055 +1,1084 @@
# inst-sections.nsi - Installer for GPG4Win sections. -*- coding: latin-1; -*-
# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2023 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 .
!include "inst-gpg4win.nsi"
# The order of installation must be the same as the build order. You
# can use tsort on the info in configure.ac, or just check out
# gpg4win_build_list in config.nsi. The order determines also the
# order in the packages selection dialog.
!ifdef HAVE_PKG_BZIP2
!include "inst-bzip2.nsi"
!endif
!ifdef HAVE_PKG_LIBICONV
!include "inst-libiconv.nsi"
!endif
!ifdef HAVE_PKG_LIBTASN1
!include "inst-libtasn1.nsi"
!endif
!ifdef HAVE_PKG_BREEZE_ICONS
!include "inst-breeze-icons.nsi"
!endif
!ifdef HAVE_PKG_PKGCONFIG
!include "inst-pkgconfig.nsi"
!endif
!ifdef HAVE_PKG_ZLIB
!include "inst-zlib.nsi"
!endif
!ifdef HAVE_PKG_QTBASE
!include "inst-qtbase.nsi"
!endif
!ifdef HAVE_PKG_GETTEXT
!include "inst-gettext.nsi"
!endif
!ifdef HAVE_PKG_LIBASSUAN
!include "inst-libassuan.nsi"
!endif
!ifdef HAVE_PKG_LIBGPG_ERROR
!include "inst-libgpg-error.nsi"
!endif
!ifdef HAVE_PKG_PINENTRY
!include "inst-pinentry.nsi"
!endif
# BEGIN MSI IGNORE
!ifdef HAVE_PKG_GNUPG_W32
!include "inst-gnupg-w32.nsi"
!endif
# END MSI IGNORE
!ifdef HAVE_PKG_GPGME
!include "inst-gpgme.nsi"
!endif
!ifdef HAVE_PKG_QTTOOLS
!include "inst-qttools.nsi"
!endif
!ifdef HAVE_PKG_QTWINEXTRAS
!include "inst-qtwinextras.nsi"
!endif
!ifdef HAVE_PKG_KCONFIG
!include "inst-kconfig.nsi"
!endif
!ifdef HAVE_PKG_KI18N
!include "inst-ki18n.nsi"
!endif
!ifdef HAVE_PKG_KWIDGETSADDONS
!include "inst-kwidgetsaddons.nsi"
!endif
!ifdef HAVE_PKG_KCOMPLETION
!include "inst-kcompletion.nsi"
!endif
!ifdef HAVE_PKG_KWINDOWSYSTEM
!include "inst-kwindowsystem.nsi"
!endif
!ifdef HAVE_PKG_KCOREADDONS
!include "inst-kcoreaddons.nsi"
!endif
!ifdef HAVE_PKG_KCODECS
!include "inst-kcodecs.nsi"
!endif
!ifdef HAVE_PKG_KCONFIGWIDGETS
!include "inst-kconfigwidgets.nsi"
!endif
!ifdef HAVE_PKG_KXMLGUI
!include "inst-kxmlgui.nsi"
!endif
!ifdef HAVE_PKG_KGUIADDONS
!include "inst-kguiaddons.nsi"
!endif
!ifdef HAVE_PKG_KMIME
!include "inst-kmime.nsi"
!endif
# include translations unconditionally
!include "inst-kde-l10n.nsi"
!ifdef HAVE_PKG_KICONTHEMES
!include "inst-kiconthemes.nsi"
!endif
!ifdef HAVE_PKG_KARCHIVE
!include "inst-karchive.nsi"
!endif
!ifdef HAVE_PKG_KJOBWIDGETS
!include "inst-kjobwidgets.nsi"
!endif
!ifdef HAVE_PKG_PCRE
!include "inst-pcre.nsi"
!endif
!ifdef HAVE_PKG_LIBPNG
!include "inst-libpng.nsi"
!endif
!ifdef HAVE_PKG_TIFF
!include "inst-tiff.nsi"
!endif
!ifdef HAVE_PKG_OPENJPEG
!include "inst-openjpeg.nsi"
!endif
!ifdef HAVE_PKG_JPEG
!include "inst-jpeg.nsi"
!endif
!ifdef HAVE_PKG_KCRASH
!include "inst-kcrash.nsi"
!endif
!ifdef HAVE_PKG_KIO
!include "inst-kio.nsi"
!endif
!ifdef HAVE_PKG_SOLID
!include "inst-solid.nsi"
!endif
!ifdef HAVE_PKG_FREETYPE
!include "inst-freetype.nsi"
!endif
!ifdef HAVE_PKG_THREADWEAVER
!include "inst-threadweaver.nsi"
!endif
!ifdef HAVE_PKG_POPPLER
!include "inst-poppler.nsi"
!endif
!ifdef HAVE_PKG_KPARTS
!include "inst-kparts.nsi"
!endif
!ifdef HAVE_PKG_OKULAR
!include "inst-okular.nsi"
!endif
!ifdef HAVE_PKG_KBOOKMARKS
!include "inst-kbookmarks.nsi"
!endif
!ifdef HAVE_PKG_KSERVICE
!include "inst-kservice.nsi"
!endif
!ifdef HAVE_PKG_KITEMVIEWS
!include "inst-kitemviews.nsi"
!endif
!ifdef HAVE_PKG_KITEMMODELS
!include "inst-kitemmodels.nsi"
!endif
!ifdef HAVE_PKG_LIBKLEO
!include "inst-libkleo.nsi"
!endif
!ifdef HAVE_PKG_EXTRA_CMAKE_MODULES
!include "inst-extra-cmake-modules.nsi"
!endif
!ifdef HAVE_PKG_QTSVG
!include "inst-qtsvg.nsi"
!endif
!ifdef HAVE_PKG_QTTRANSLATIONS
!include "inst-qttranslations.nsi"
!endif
!ifdef HAVE_PKG_GPG4WIN_TOOLS
!include "inst-gpg4win-tools.nsi"
!endif
!ifdef HAVE_PKG_SCUTE
!include "inst-scute.nsi"
!endif
!ifdef HAVE_PKG_SONNET
!include "inst-sonnet.nsi"
!endif
!ifdef HAVE_PKG_KTEXTWIDGETS
!include "inst-ktextwidgets.nsi"
!endif
+!ifdef HAVE_PKG_MIMETREEPARSER
+!include "inst-mimetreeparser.nsi"
+!endif
+!ifdef HAVE_PKG_KCALENDARCORE
+!include "inst-kcalendarcore.nsi"
+!endif
+!ifdef HAVE_PKG_LIBICAL
+!include "inst-libical.nsi"
+!endif
!ifdef HAVE_PKG_PAPERKEY
!include "inst-paperkey.nsi"
!endif
!ifdef HAVE_PKG_MAN_NOVICE_EN
!include "inst-man_novice_en.nsi"
!endif
!ifdef HAVE_PKG_MAN_ADVANCED_EN
!include "inst-man_advanced_en.nsi"
!endif
!ifdef HAVE_PKG_MAN_NOVICE_DE
!include "inst-man_novice_de.nsi"
!endif
!ifdef HAVE_PKG_MAN_ADVANCED_DE
!include "inst-man_advanced_de.nsi"
!endif
# These are displayed in the selection dialog.
!ifdef HAVE_PKG_KLEOPATRA
!include "inst-kleopatra.nsi"
!endif
!ifdef HAVE_PKG_GPGOL
!include "inst-gpgol.nsi"
!endif
!ifdef HAVE_PKG_GPGEX
!include "inst-gpgex.nsi"
!endif
!ifdef HAVE_PKG_COMPENDIUM
!include "inst-compendium.nsi"
!endif
!include "inst-gpgme-browser.nsi"
!include "inst-final.nsi"
# We have to invoke the uninstallers in reverse order!
!ifdef HAVE_PKG_MAN_ADVANCED_DE
!include "uninst-man_advanced_de.nsi"
!endif
!ifdef HAVE_PKG_MAN_NOVICE_DE
!include "uninst-man_novice_de.nsi"
!endif
!ifdef HAVE_PKG_MAN_ADVANCED_EN
!include "uninst-man_advanced_en.nsi"
!endif
!ifdef HAVE_PKG_MAN_NOVICE_EN
!include "uninst-man_novice_en.nsi"
!endif
!ifdef HAVE_PKG_COMPENDIUM
!include "uninst-compendium.nsi"
!endif
!ifdef HAVE_PKG_PAPERKEY
!include "uninst-paperkey.nsi"
!endif
!ifdef HAVE_PKG_GPGEX
!include "uninst-gpgex.nsi"
!endif
!ifdef HAVE_PKG_GPGOL
!include "uninst-gpgol.nsi"
!endif
!ifdef HAVE_PKG_KLEOPATRA
!include "uninst-kleopatra.nsi"
!endif
!ifdef HAVE_PKG_GPGME
!include "uninst-gpgme.nsi"
!endif
!ifdef HAVE_PKG_GNUPG_W32
!include "uninst-gnupg-w32.nsi"
!endif
!ifdef HAVE_PKG_PINENTRY
!include "uninst-pinentry.nsi"
!endif
!ifdef HAVE_PKG_GNUTLS
!include "uninst-gnutls.nsi"
!endif
!ifdef HAVE_PKG_CURL
!include "uninst-curl.nsi"
!endif
!ifdef HAVE_PKG_LIBGPG_ERROR
!include "uninst-libgpg-error.nsi"
!endif
!ifdef HAVE_PKG_LIBASSUAN
!include "uninst-libassuan.nsi"
!endif
!ifdef HAVE_PKG_GETTEXT
!include "uninst-gettext.nsi"
!endif
!ifdef HAVE_PKG_QTBASE
!include "uninst-qtbase.nsi"
!endif
!ifdef HAVE_PKG_ZLIB
!include "uninst-zlib.nsi"
!endif
!ifdef HAVE_PKG_PKGCONFIG
!include "uninst-pkgconfig.nsi"
!endif
!ifdef HAVE_PKG_BREEZE_ICONS
!include "uninst-breeze-icons.nsi"
!endif
!ifdef HAVE_PKG_MAN_ADVANCED_DE
!include "uninst-man_advanced_de.nsi"
!endif
!ifdef HAVE_PKG_MAN_NOVICE_DE
!include "uninst-man_novice_de.nsi"
!endif
!ifdef HAVE_PKG_MAN_ADVANCED_EN
!include "uninst-man_advanced_en.nsi"
!endif
!ifdef HAVE_PKG_MAN_NOVICE_EN
!include "uninst-man_novice_en.nsi"
!endif
!ifdef HAVE_PKG_LIBICONV
!include "uninst-libiconv.nsi"
!endif
!ifdef HAVE_PKG_QTTOOLS
!include "uninst-qttools.nsi"
!endif
!ifdef HAVE_PKG_QTWINEXTRAS
!include "uninst-qtwinextras.nsi"
!endif
!ifdef HAVE_PKG_KCONFIG
!include "uninst-kconfig.nsi"
!endif
!ifdef HAVE_PKG_KI18N
!include "uninst-ki18n.nsi"
!endif
!ifdef HAVE_PKG_KWIDGETSADDONS
!include "uninst-kwidgetsaddons.nsi"
!endif
!ifdef HAVE_PKG_KCOMPLETION
!include "uninst-kcompletion.nsi"
!endif
!ifdef HAVE_PKG_KWINDOWSYSTEM
!include "uninst-kwindowsystem.nsi"
!endif
!ifdef HAVE_PKG_KCOREADDONS
!include "uninst-kcoreaddons.nsi"
!endif
!ifdef HAVE_PKG_KCODECS
!include "uninst-kcodecs.nsi"
!endif
!ifdef HAVE_PKG_KCONFIGWIDGETS
!include "uninst-kconfigwidgets.nsi"
!endif
!ifdef HAVE_PKG_KGUIADDONS
!include "uninst-kguiaddons.nsi"
!endif
!ifdef HAVE_PKG_KXMLGUI
!include "uninst-kxmlgui.nsi"
!endif
!ifdef HAVE_PKG_KICONTHEMES
!include "uninst-kiconthemes.nsi"
!endif
!ifdef HAVE_PKG_KARCHIVE
!include "uninst-karchive.nsi"
!endif
!ifdef HAVE_PKG_KJOBWIDGETS
!include "uninst-kjobwidgets.nsi"
!endif
!ifdef HAVE_PKG_PCRE
!include "uninst-pcre.nsi"
!endif
!ifdef HAVE_PKG_LIBPNG
!include "uninst-libpng.nsi"
!endif
!ifdef HAVE_PKG_TIFF
!include "uninst-tiff.nsi"
!endif
!ifdef HAVE_PKG_OPENJPEG
!include "uninst-openjpeg.nsi"
!endif
!ifdef HAVE_PKG_JPEG
!include "uninst-jpeg.nsi"
!endif
!ifdef HAVE_PKG_KCRASH
!include "uninst-kcrash.nsi"
!endif
!ifdef HAVE_PKG_KIO
!include "uninst-kio.nsi"
!endif
!ifdef HAVE_PKG_KJOBWIDGETS
!include "uninst-kjobwidgets.nsi"
!endif
!ifdef HAVE_PKG_SOLID
!include "uninst-solid.nsi"
!endif
!ifdef HAVE_PKG_FREETYPE
!include "uninst-freetype.nsi"
!endif
!ifdef HAVE_PKG_THREADWEAVER
!include "uninst-threadweaver.nsi"
!endif
!ifdef HAVE_PKG_POPPLER
!include "uninst-poppler.nsi"
!endif
!ifdef HAVE_PKG_KPARTS
!include "uninst-kparts.nsi"
!endif
!ifdef HAVE_PKG_OKULAR
!include "uninst-okular.nsi"
!endif
!ifdef HAVE_PKG_KBOOKMARKS
!include "uninst-kbookmarks.nsi"
!endif
!ifdef HAVE_PKG_KSERVICE
!include "uninst-kservice.nsi"
!endif
!ifdef HAVE_PKG_KITEMVIEWS
!include "uninst-kitemviews.nsi"
!endif
!ifdef HAVE_PKG_KITEMMODELS
!include "uninst-kitemmodels.nsi"
!endif
!ifdef HAVE_PKG_KMIME
!include "uninst-kmime.nsi"
!endif
!include "uninst-kde-l10n.nsi"
!ifdef HAVE_PKG_LIBKLEO
!include "uninst-libkleo.nsi"
!endif
!ifdef HAVE_PKG_EXTRA_CMAKE_MODULES
!include "uninst-extra-cmake-modules.nsi"
!endif
!ifdef HAVE_PKG_BZIP2
!include "uninst-bzip2.nsi"
!endif
!ifdef HAVE_PKG_QTSVG
!include "uninst-qtsvg.nsi"
!endif
!ifdef HAVE_PKG_QTTRANSLATIONS
!include "uninst-qttranslations.nsi"
!endif
!ifdef HAVE_PKG_GPG4WIN_TOOLS
!include "uninst-gpg4win-tools.nsi"
!endif
!ifdef HAVE_PKG_KTEXTWIDGETS
!include "uninst-ktextwidgets.nsi"
!endif
+!ifdef HAVE_PKG_KCALENDARCORE
+!include "uninst-kcalendarcore.nsi"
+!endif
+!ifdef HAVE_PKG_LIBICAL
+!include "uninst-libical.nsi"
+!endif
+!ifdef HAVE_PKG_MIMETREEPARSER
+!include "uninst-mimetreeparser.nsi"
+!endif
!ifdef HAVE_PKG_SONNET
!include "uninst-sonnet.nsi"
!endif
!ifdef HAVE_PKG_SCUTE
!include "uninst-scute.nsi"
!endif
!include "uninst-gpg4win.nsi"
# Dependency Management
${MementoSectionDone}
Function CalcDefaults
!ifdef HAVE_PKG_KLEOPATRA
g4wihelp::config_fetch_bool "inst_kleopatra"
StrCmp $R0 "1" 0 calc_defaults_kleopatra_not_one
!insertmacro SelectSection ${SEC_kleopatra}
Goto calc_defaults_kleopatra_done
calc_defaults_kleopatra_not_one:
StrCmp $R0 "0" 0 calc_defaults_kleopatra_done
!insertmacro UnselectSection ${SEC_kleopatra}
calc_defaults_kleopatra_done:
!endif
!ifdef HAVE_PKG_OKULAR
g4wihelp::config_fetch_bool "inst_okular"
StrCmp $R0 "1" 0 calc_defaults_okular_not_one
!insertmacro SelectSection ${SEC_okular}
Goto calc_defaults_okular_done
calc_defaults_okular_not_one:
StrCmp $R0 "0" 0 calc_defaults_okular_done
!insertmacro UnselectSection ${SEC_okular}
calc_defaults_okular_done:
!endif
!ifdef HAVE_PKG_GPGOL
g4wihelp::config_fetch_bool "inst_gpgol"
StrCmp $R0 "1" 0 calc_defaults_gpgol_not_one
!insertmacro SelectSection ${SEC_gpgol}
Goto calc_defaults_gpgol_done
calc_defaults_gpgol_not_one:
StrCmp $R0 "0" 0 calc_defaults_gpgol_done
!insertmacro UnselectSection ${SEC_gpgol}
calc_defaults_gpgol_done:
!endif
!ifdef HAVE_PKG_GPGEX
g4wihelp::config_fetch_bool "inst_gpgex"
StrCmp $R0 "1" 0 calc_defaults_gpgex_not_one
!insertmacro SelectSection ${SEC_gpgex}
Goto calc_defaults_gpgex_done
calc_defaults_gpgex_not_one:
StrCmp $R0 "0" 0 calc_defaults_gpgex_done
!insertmacro UnselectSection ${SEC_gpgex}
calc_defaults_gpgex_done:
!endif
!ifdef HAVE_PKG_PAPERKEY
g4wihelp::config_fetch_bool "inst_paperkey"
StrCmp $R0 "1" 0 calc_defaults_paperkey_not_one
!insertmacro SelectSection ${SEC_paperkey}
Goto calc_defaults_paperkey_done
calc_defaults_paperkey_not_one:
StrCmp $R0 "0" 0 calc_defaults_paperkey_done
!insertmacro UnselectSection ${SEC_paperkey}
calc_defaults_paperkey_done:
!endif
!ifdef HAVE_PKG_COMPENDIUM
g4wihelp::config_fetch_bool "inst_compendium"
StrCmp $R0 "1" 0 calc_defaults_compendium_not_one
!insertmacro SelectSection ${SEC_compendium}
Goto calc_defaults_compendium_done
calc_defaults_compendium_not_one:
StrCmp $R0 "0" 0 calc_defaults_compendium_done
!insertmacro UnselectSection ${SEC_compendium}
calc_defaults_compendium_done:
!endif
!ifdef HAVE_PKG_MAN_NOVICE_DE
g4wihelp::config_fetch_bool "inst_man_novice_de"
StrCmp $R0 "1" 0 calc_defaults_man_novice_de_not_one
!insertmacro SelectSection ${SEC_man_novice_de}
Goto calc_defaults_man_novice_de_done
calc_defaults_man_novice_de_not_one:
StrCmp $R0 "0" 0 calc_defaults_man_novice_de_done
!insertmacro UnselectSection ${SEC_man_novice_de}
calc_defaults_man_novice_de_done:
!endif
!ifdef HAVE_PKG_MAN_NOVICE_EN
g4wihelp::config_fetch_bool "inst_man_novice_en"
StrCmp $R0 "1" 0 calc_defaults_man_novice_en_not_one
!insertmacro SelectSection ${SEC_man_novice_en}
Goto calc_defaults_man_novice_en_done
calc_defaults_man_novice_en_not_one:
StrCmp $R0 "0" 0 calc_defaults_man_novice_en_done
!insertmacro UnselectSection ${SEC_man_novice_en}
calc_defaults_man_novice_en_done:
!endif
!ifdef HAVE_PKG_MAN_ADVANCED_DE
g4wihelp::config_fetch_bool "inst_man_advanced_de"
StrCmp $R0 "1" 0 calc_defaults_man_advanced_de_not_one
!insertmacro SelectSection ${SEC_man_advanced_de}
Goto calc_defaults_man_advanced_de_done
calc_defaults_man_advanced_de_not_one:
StrCmp $R0 "0" 0 calc_defaults_man_advanced_de_done
!insertmacro UnselectSection ${SEC_man_advanced_de}
calc_defaults_man_advanced_de_done:
!endif
!ifdef HAVE_PKG_MAN_ADVANCED_EN
g4wihelp::config_fetch_bool "inst_man_advanced_en"
StrCmp $R0 "1" 0 calc_defaults_man_advanced_en_not_one
!insertmacro SelectSection ${SEC_man_advanced_en}
Goto calc_defaults_man_advanced_en_done
calc_defaults_man_advanced_en_not_one:
StrCmp $R0 "0" 0 calc_defaults_man_advanced_en_done
!insertmacro UnselectSection ${SEC_man_advanced_en}
calc_defaults_man_advanced_en_done:
!endif
# Check if minimal install was requested on the command line
StrCmp $is_minimal '1' select_minimal continue
select_minimal:
!insertmacro UnselectSection ${SEC_kleopatra}
!insertmacro UnselectSection ${SEC_okular}
!insertmacro UnselectSection ${SEC_gpgol}
!insertmacro UnselectSection ${SEC_gpgex}
!insertmacro UnselectSection ${SEC_gpgme_browser}
!insertmacro UnselectSection ${SEC_compendium}
# We only do pinentry and gnupg-w32
!insertmacro SelectSection ${SEC_paperkey}
!insertmacro SelectSection ${SEC_gnupg_w32}
!insertmacro SelectSection ${SEC_pinentry}
!insertmacro SelectSection ${SEC_gpgme}
continue:
# Check if browser integration was selected on the command line
# or in the ini
# You can either select the browser integration by adding
# inst_browser = true to a gpg4win.ini or adding a
# /WITH_BROWSER=1 command line switch to the installer.
g4wihelp::config_fetch_bool "inst_browser"
StrCmp $R0 "1" select_browser 0
StrCmp $with_browser '1' select_browser skip_browser
select_browser:
!insertmacro SelectSection ${SEC_gpgme_browser}
skip_browser:
FunctionEnd
Function CalcDepends
# This section could very well be autogenerated from the
# information in configure.ac. Note that it doesn't hurt to have
# stuff here for packages that we don't include.
# First clear all indirect dependencies.
!ifdef HAVE_PKG_LIBICONV
!insertmacro UnselectSection ${SEC_libiconv}
!endif
!ifdef HAVE_PKG_GETTEXT
!insertmacro UnselectSection ${SEC_gettext}
!endif
!ifdef HAVE_PKG_ZLIB
!insertmacro UnselectSection ${SEC_zlib}
!endif
!ifdef HAVE_PKG_PKGCONFIG
!insertmacro UnselectSection ${SEC_pkgconfig}
!endif
!ifdef HAVE_PKG_BZIP2
!insertmacro UnselectSection ${SEC_bzip2}
!endif
!ifdef HAVE_PKG_LIBGPG_ERROR
!insertmacro UnselectSection ${SEC_libgpg_error}
!endif
!ifdef HAVE_PKG_LIBASSUAN
!insertmacro UnselectSection ${SEC_libassuan}
!endif
!ifdef HAVE_PKG_GPGME
!insertmacro UnselectSection ${SEC_gpgme}
!endif
!ifdef HAVE_PKG_QTBASE
!insertmacro UnselectSection ${SEC_qtbase}
!endif
!ifdef HAVE_PKG_QTTOOLS
!insertmacro UnselectSection ${SEC_qttools}
!endif
!ifdef HAVE_PKG_QTWINEXTRAS
!insertmacro UnselectSection ${SEC_qtwinextras}
!endif
!ifdef HAVE_PKG_FREETYPE
!insertmacro UnselectSection ${SEC_freetype}
!endif
!ifdef HAVE_PKG_BREEZE_ICONS
!insertmacro UnselectSection ${SEC_breeze_icons}
!endif
!ifdef HAVE_PKG_KCONFIG
!insertmacro UnselectSection ${SEC_kconfig}
!endif
!ifdef HAVE_PKG_KI18N
!insertmacro UnselectSection ${SEC_ki18n}
!endif
!ifdef HAVE_PKG_KWIDGETSADDONS
!insertmacro UnselectSection ${SEC_kwidgetsaddons}
!endif
!ifdef HAVE_PKG_KCOMPLETION
!insertmacro UnselectSection ${SEC_kcompletion}
!endif
!ifdef HAVE_PKG_KWINDOWSYSTEM
!insertmacro UnselectSection ${SEC_kwindowsystem}
!endif
!ifdef HAVE_PKG_KCOREADDONS
!insertmacro UnselectSection ${SEC_kcoreaddons}
!endif
!ifdef HAVE_PKG_KCODECS
!insertmacro UnselectSection ${SEC_kcodecs}
!endif
!ifdef HAVE_PKG_KCONFIGWIDGETS
!insertmacro UnselectSection ${SEC_kconfigwidgets}
!endif
!ifdef HAVE_PKG_KXMLGUI
!insertmacro UnselectSection ${SEC_kxmlgui}
!endif
!ifdef HAVE_PKG_KICONTHEMES
!insertmacro UnselectSection ${SEC_kiconthemes}
!endif
!ifdef HAVE_PKG_KARCHIVE
!insertmacro UnselectSection ${SEC_karchive}
!endif
!ifdef HAVE_PKG_KCRASH
!insertmacro UnselectSection ${SEC_kcrash}
!endif
!ifdef HAVE_PKG_KIO
!insertmacro UnselectSection ${SEC_kio}
!endif
!ifdef HAVE_PKG_KJOBWIDGETS
!insertmacro UnselectSection ${SEC_kjobwidgets}
!endif
!ifdef HAVE_PKG_LIBPNG
!insertmacro UnselectSection ${SEC_libpng}
!endif
!ifdef HAVE_PKG_TIFF
!insertmacro UnselectSection ${SEC_tiff}
!endif
!ifdef HAVE_PKG_OPENJPEG
!insertmacro UnselectSection ${SEC_openjpeg}
!endif
!ifdef HAVE_PKG_JPEG
!insertmacro UnselectSection ${SEC_jpeg}
!endif
!ifdef HAVE_PKG_SOLID
!insertmacro UnselectSection ${SEC_solid}
!endif
!ifdef HAVE_PKG_POPPLER
!insertmacro UnselectSection ${SEC_poppler}
!endif
!ifdef HAVE_PKG_KPARTS
!insertmacro UnselectSection ${SEC_kparts}
!endif
!ifdef HAVE_PKG_FREETYPE
!insertmacro UnselectSection ${SEC_freetype}
!endif
!ifdef HAVE_PKG_KBOOKMARKS
!insertmacro UnselectSection ${SEC_kbookmarks}
!endif
!ifdef HAVE_PKG_KSERVICE
!insertmacro UnselectSection ${SEC_kservice}
!endif
!ifdef HAVE_PKG_KITEMVIEWS
!insertmacro UnselectSection ${SEC_kitemviews}
!endif
!ifdef HAVE_PKG_KITEMMODELS
!insertmacro UnselectSection ${SEC_kitemmodels}
!endif
!ifdef HAVE_PKG_KGUIADDONS
!insertmacro UnselectSection ${SEC_kguiaddons}
!endif
!ifdef HAVE_PKG_LIBKLEO
!insertmacro UnselectSection ${SEC_libkleo}
!endif
!ifdef HAVE_PKG_KMIME
!insertmacro UnselectSection ${SEC_kmime}
!endif
!ifdef HAVE_PKG_SONNET
!insertmacro UnselectSection ${SEC_sonnet}
!endif
!ifdef HAVE_PKG_KTEXTWIDGETS
!insertmacro UnselectSection ${SEC_ktextwidgets}
!endif
+!ifdef HAVE_PKG_KCALENDARCORE
+ !insertmacro UnselectSection ${SEC_kcalendarcore}
+!endif
+!ifdef HAVE_PKG_LIBICAL
+ !insertmacro UnselectSection ${SEC_libical}
+!endif
+!ifdef HAVE_PKG_MIMETREEPARSER
+ !insertmacro UnselectSection ${SEC_mimetreeparser}
+!endif
!ifdef HAVE_PKG_KDE_L10N
!insertmacro UnselectSection ${SEC_kde_l10n}
!endif
!ifdef HAVE_PKG_QTSVG
!insertmacro UnselectSection ${SEC_qtsvg}
!endif
!ifdef HAVE_PKG_QTTRANSLATIONS
!insertmacro UnselectSection ${SEC_qttranslations}
!endif
!ifdef HAVE_PKG_GPG4WIN_TOOLS
!insertmacro UnselectSection ${SEC_gpg4win_tools}
!endif
# BEGIN MSI IGNORE
# MSI pulls this in through the gnupg-w32 component.
# Always install gnupg2. This is also ensured by putting
# these packages in the RO section and enabling them by default, but
# it doesn't harm to add it explicitely here as well.
# TODO: Handle newer / other gnupg versions
!insertmacro SelectSection ${SEC_gnupg_w32}
!insertmacro SelectSection ${SEC_gpgme}
# Then enable all dependencies, mostly in reverse build list order!
# First the explicitely installed packages.
# END MSI IGNORE
!ifdef HAVE_PKG_PAPERKEY
!insertmacro SectionFlagIsSet ${SEC_paperkey} \
${SF_SELECTED} have_paperkey skip_paperkey
have_paperkey:
# All dependencies are linked in statically.
skip_paperkey:
!endif
!ifdef HAVE_PKG_GPGEX
!insertmacro SectionFlagIsSet ${SEC_gpgex} \
${SF_SELECTED} have_gpgex skip_gpgex
have_gpgex:
# This is not a build dependency, but it is a run-time dependency.
!insertmacro SelectSection ${SEC_kleopatra}
# Other dependencies are linked in statically.
skip_gpgex:
!endif
!ifdef HAVE_PKG_GPGOL
!insertmacro SectionFlagIsSet ${SEC_gpgol} \
${SF_SELECTED} have_gpgol skip_gpgol
have_gpgol:
!insertmacro SelectSection ${SEC_gpgme}
!insertmacro SelectSection ${SEC_gpg4win_tools}
# This is not a build dependency, but it is a run-time dependency.
!insertmacro SelectSection ${SEC_kleopatra}
skip_gpgol:
!endif
!ifdef HAVE_PKG_OKULAR
${IfNot} ${AtLeastWin7}
# Disable Okular for Windows below 7
SectionSetFlags ${SEC_okular} 16
${Endif}
!insertmacro SectionFlagIsSet ${SEC_okular} ${SF_SELECTED} have_okular skip_okular
have_okular:
!insertmacro SelectSection ${SEC_gpgme}
!insertmacro SelectSection ${SEC_qtbase}
!insertmacro SelectSection ${SEC_breeze_icons}
!insertmacro SelectSection ${SEC_kconfig}
!insertmacro SelectSection ${SEC_ki18n}
!insertmacro SelectSection ${SEC_kwidgetsaddons}
!insertmacro SelectSection ${SEC_kcompletion}
!insertmacro SelectSection ${SEC_kwindowsystem}
!insertmacro SelectSection ${SEC_kcoreaddons}
!insertmacro SelectSection ${SEC_kcodecs}
!insertmacro SelectSection ${SEC_kconfigwidgets}
!insertmacro SelectSection ${SEC_kxmlgui}
!insertmacro SelectSection ${SEC_kitemviews}
!insertmacro SelectSection ${SEC_kitemmodels}
!insertmacro SelectSection ${SEC_kiconthemes}
!insertmacro SelectSection ${SEC_karchive}
!insertmacro SelectSection ${SEC_kio}
!insertmacro SelectSection ${SEC_kjobwidgets}
!insertmacro SelectSection ${SEC_solid}
!insertmacro SelectSection ${SEC_kservice}
!insertmacro SelectSection ${SEC_kbookmarks}
!insertmacro SelectSection ${SEC_freetype}
!insertmacro SelectSection ${SEC_poppler}
!insertmacro SelectSection ${SEC_threadweaver}
!insertmacro SelectSection ${SEC_kparts}
# KArchive depdens on zlib
!insertmacro SelectSection ${SEC_zlib}
!insertmacro SelectSection ${SEC_kcrash}
!insertmacro SelectSection ${SEC_kguiaddons}
!insertmacro SelectSection ${SEC_qtsvg}
!insertmacro SelectSection ${SEC_qttranslations}
!insertmacro SelectSection ${SEC_kde_l10n}
!insertmacro SelectSection ${SEC_qttools}
!insertmacro SelectSection ${SEC_freetype}
!insertmacro SelectSection ${SEC_qtwinextras}
!insertmacro SelectSection ${SEC_extra-cmake-modules}
!insertmacro SelectSection ${SEC_libpng}
!insertmacro SelectSection ${SEC_tiff}
!insertmacro SelectSection ${SEC_openjpeg}
!insertmacro SelectSection ${SEC_jpeg}
!insertmacro SelectSection ${SEC_sonnet}
!insertmacro SelectSection ${SEC_ktextwidgets}
skip_okular:
!endif
!ifdef HAVE_PKG_KLEOPATRA
!ifndef SOURCES
${IfNot} ${AtLeastWin7}
# Disable Kleo for Windows below 7
SectionSetFlags ${SEC_kleopatra} 16
${Endif}
!endif
!insertmacro SectionFlagIsSet ${SEC_kleopatra} ${SF_SELECTED} have_kleopatra skip_kleopatra
have_kleopatra:
!insertmacro SelectSection ${SEC_gpgme}
!insertmacro SelectSection ${SEC_compendium}
!insertmacro SelectSection ${SEC_qtbase}
!insertmacro SelectSection ${SEC_breeze_icons}
!insertmacro SelectSection ${SEC_kconfig}
!insertmacro SelectSection ${SEC_ki18n}
!insertmacro SelectSection ${SEC_kwidgetsaddons}
!insertmacro SelectSection ${SEC_kcompletion}
!insertmacro SelectSection ${SEC_kwindowsystem}
!insertmacro SelectSection ${SEC_kcoreaddons}
!insertmacro SelectSection ${SEC_kcodecs}
!insertmacro SelectSection ${SEC_kconfigwidgets}
!insertmacro SelectSection ${SEC_kxmlgui}
!insertmacro SelectSection ${SEC_kitemviews}
!insertmacro SelectSection ${SEC_kitemmodels}
!insertmacro SelectSection ${SEC_kiconthemes}
!insertmacro SelectSection ${SEC_karchive}
!insertmacro SelectSection ${SEC_kio}
!insertmacro SelectSection ${SEC_kjobwidgets}
!insertmacro SelectSection ${SEC_solid}
!insertmacro SelectSection ${SEC_kservice}
!insertmacro SelectSection ${SEC_kbookmarks}
-# KArchive depdens on zlib
!insertmacro SelectSection ${SEC_zlib}
!insertmacro SelectSection ${SEC_kcrash}
!insertmacro SelectSection ${SEC_kguiaddons}
!insertmacro SelectSection ${SEC_qtsvg}
!insertmacro SelectSection ${SEC_qttranslations}
!insertmacro SelectSection ${SEC_kmime}
!insertmacro SelectSection ${SEC_kde_l10n}
!insertmacro SelectSection ${SEC_libkleo}
!insertmacro SelectSection ${SEC_qttools}
!insertmacro SelectSection ${SEC_qtwinextras}
!insertmacro SelectSection ${SEC_extra-cmake-modules}
!insertmacro SelectSection ${SEC_sonnet}
!insertmacro SelectSection ${SEC_ktextwidgets}
+ !insertmacro SelectSection ${SEC_mimetreeparser}
+ !insertmacro SelectSection ${SEC_libical}
+ !insertmacro SelectSection ${SEC_kcalendarcore}
skip_kleopatra:
!endif
!insertmacro SectionFlagIsSet ${SEC_gpgme_browser} ${SF_SELECTED} have_gpgme_browser skip_gpgme_browser
have_gpgme_browser:
!insertmacro SelectSection ${SEC_gpgme}
skip_gpgme_browser:
# Now the implicitely installed packages.
!ifdef HAVE_PKG_GPGME
!insertmacro SectionFlagIsSet ${SEC_gpgme} \
${SF_SELECTED} have_gpgme skip_gpgme
have_gpgme:
# GPGME does not depend on gnupg2. Do this in the
# actual application instead.
!insertmacro SelectSection ${SEC_libgpg_error}
!insertmacro SelectSection ${SEC_libassuan}
!ifdef HAVE_PKG_QTBASE
!insertmacro SelectSection ${SEC_qtbase}
!endif
skip_gpgme:
!endif
!ifdef HAVE_PKG_PINENTRY
!insertmacro SectionFlagIsSet ${SEC_pinentry} \
${SF_SELECTED} have_pinentry skip_pinentry
have_pinentry:
!insertmacro SelectSection ${SEC_libiconv}
!insertmacro SelectSection ${SEC_libgpg_error}
!insertmacro SelectSection ${SEC_libassuan}
!ifdef HAVE_PKG_QTBASE
!insertmacro SelectSection ${SEC_qtbase}
!endif
# BEGIN MSI IGNORE
!ifdef HAVE_PKG_GTK_
!insertmacro SelectSection ${SEC_gtk_}
!endif
# END MSI IGNORE
skip_pinentry:
!endif
!ifdef HAVE_PKG_QTBASE
!ifndef SOURCES
${IfNot} ${AtLeastWin7}
# Disable qt for Windows below 7
!insertmacro UnSelectSection ${SEC_qtbase}
${Endif}
!endif
!insertmacro SectionFlagIsSet ${SEC_qtbase} \
${SF_SELECTED} have_qt skip_qt
have_qt:
!insertmacro SelectSection ${SEC_zlib}
!insertmacro SelectSection ${SEC_qttranslations}
skip_qt:
!endif
!ifdef HAVE_PKG_LIBASSUAN
!insertmacro SectionFlagIsSet ${SEC_libassuan} ${SF_SELECTED} have_libassuan skip_libassuan
have_libassuan:
!insertmacro SelectSection ${SEC_libgpg_error}
skip_libassuan:
!endif
!ifdef HAVE_PKG_LIBGPG_ERROR
!insertmacro SectionFlagIsSet ${SEC_libgpg_error} ${SF_SELECTED} have_libgpg_error skip_libgpg_error
have_libgpg_error:
!insertmacro SelectSection ${SEC_libiconv}
!insertmacro SelectSection ${SEC_gettext}
skip_libgpg_error:
!endif
# Package "bzip2" has no dependencies.
# Package "pkgconfig" has no dependencies.
# Package "zlib" has no dependencies.
!ifdef HAVE_PKG_GETTEXT
!insertmacro SectionFlagIsSet ${SEC_gettext} \
${SF_SELECTED} have_gettext skip_gettext
have_gettext:
!insertmacro SelectSection ${SEC_libiconv}
skip_gettext:
!endif
# Package "libiconv" has no dependencies.
FunctionEnd
Function .onInstFailed
Delete $TEMP\gpgspltmp.wav
FunctionEnd
Function .onInstSuccess
${MementoSectionSave}
Delete $TEMP\gpgspltmp.wav
FunctionEnd
Function .onSelChange
Call CalcDepends
FunctionEnd
# This also must be in a central place. Also Urgs.
Section "-startmenu"
UserInfo::GetAccountType
Pop $1
StrCmp $1 "Admin" is_admin is_no_admin
is_admin:
SetShellVarContext all
is_no_admin:
# NOT SetOutPath.
StrCpy $OUTDIR "%HOMEDRIVE%%HOMEPATH%"
# Check if the start menu entries where requested.
g4wihelp::config_fetch_bool "inst_start_menu"
StrCmp $R0 "0" no_start_menu
!ifdef HAVE_PKG_KLEOPATRA
SectionGetFlags ${SEC_kleopatra} $R0
IntOp $R0 $R0 & ${SF_SELECTED}
IntCmp $R0 ${SF_SELECTED} 0 no_kleopatra_menu
CreateShortCut "$SMPROGRAMS\Kleopatra.lnk" \
"$INSTDIR\bin\kleopatra.exe" \
"" "$INSTDIR\bin\kleopatra.exe" "" SW_SHOWNORMAL "" $(DESC_Menu_kleopatra)
no_kleopatra_menu:
!endif
!ifdef HAVE_PKG_OKULAR
SectionGetFlags ${SEC_okular} $R0
IntOp $R0 $R0 & ${SF_SELECTED}
IntCmp $R0 ${SF_SELECTED} 0 no_okular_menu
CreateShortCut "$SMPROGRAMS\Okular - GnuPG Edition.lnk" \
"$INSTDIR\bin\okular.exe" \
"" "$INSTDIR\bin\okular.exe" "" SW_SHOWNORMAL "" $(DESC_Menu_okular)
no_okular_menu:
!endif
no_start_menu:
# Check if the desktop entries where requested.
g4wihelp::config_fetch_bool "inst_desktop"
StrCmp $R0 "0" no_desktop
!ifdef HAVE_PKG_KLEOPATRA
SectionGetFlags ${SEC_kleopatra} $R0
IntOp $R0 $R0 & ${SF_SELECTED}
IntCmp $R0 ${SF_SELECTED} 0 no_kleopatra_desktop
StrCmp $is_update '1' no_kleopatra_desktop
CreateShortCut "$DESKTOP\Kleopatra.lnk" \
"$INSTDIR\bin\kleopatra.exe" \
"" "$INSTDIR\bin\kleopatra.exe" "" SW_SHOWNORMAL "" $(DESC_Menu_kleopatra)
no_kleopatra_desktop:
!endif
no_desktop:
SectionEnd
diff --git a/src/uninst-kcalendarcore.nsi b/src/uninst-kcalendarcore.nsi
new file mode 100644
index 00000000..a0959c92
--- /dev/null
+++ b/src/uninst-kcalendarcore.nsi
@@ -0,0 +1,23 @@
+# Copyright (C) 2023 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, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+; Uninstaller section.
+Section "-un.kcalendarcore"
+ Delete "$INSTDIR\bin\libKF5CalendarCore.dll"
+ RmDir "$INSTDIR\bin"
+SectionEnd
diff --git a/src/uninst-libical.nsi b/src/uninst-libical.nsi
new file mode 100644
index 00000000..67ae2a16
--- /dev/null
+++ b/src/uninst-libical.nsi
@@ -0,0 +1,23 @@
+# Copyright (C) 2023 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, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+; Uninstaller section.
+Section "-un.libical"
+ Delete "$INSTDIR\bin\libical.dll"
+ RmDir "$INSTDIR\bin"
+SectionEnd
diff --git a/src/uninst-mimetreeparser.nsi b/src/uninst-mimetreeparser.nsi
new file mode 100644
index 00000000..17f5e5d6
--- /dev/null
+++ b/src/uninst-mimetreeparser.nsi
@@ -0,0 +1,24 @@
+# Copyright (C) 2023 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, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+; Uninstaller section.
+Section "-un.mimetreeparser"
+ Delete "$INSTDIR\bin\libKPim5MimeTreeParserCore.dll"
+ Delete "$INSTDIR\bin\libKPim5MimeTreeParserWidgets.dll"
+ RmDir "$INSTDIR\bin"
+SectionEnd