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