diff --git a/configure.ac b/configure.ac index 5ae22dec..9bd9225a 100644 --- a/configure.ac +++ b/configure.ac @@ -1,408 +1,409 @@ # configure.ac for GPG4Win # Copyright (C) 2005, 2006, 2007, 2008, 2010 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([my_version], [3.1.16]) # 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 (my_isgit). The latter works # by requiring the final tag in the repository. m4_define([git_revision], m4_esyscmd([git rev-parse --short HEAD | tr -d '\n\r'])) m4_define([git_revision_dec], m4_esyscmd_s([echo $((0x$(echo ]git_revision[|head -c 4)))])) m4_define([git_betastring], m4_esyscmd_s([git describe --tags --match 'gpg4win-[0-9].*.*[0-9]' \ --long | awk -F- '$3!=0{print"-beta"$3}'])) m4_define([my_isgit],m4_if(git_betastring,[],[no],[yes])) m4_define([my_full_version],[my_version[]git_betastring]) AC_INIT([gpg4win],[my_full_version],[gpg4win-devel@wald.intevation.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 geringfügig 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_isgit,[yes],["~und evtl. seitdem weiter bearbeitet"]) MANUALINPROGRESS_EN=m4_if(my_isgit,[yes],["~and may have been further edited"]) PACKAGE=$PACKAGE_NAME VERSION=$PACKAGE_VERSION GIT_REVISION=git_revision GIT_REVISION_DEC=git_revision_dec AC_CONFIG_SRCDIR(src/config.nsi.in) AC_CONFIG_MACRO_DIR(m4) 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) if echo "${PACKAGE_VERSION}" | egrep 'svn|rc|beta|git' >/dev/null ; then IS_BETA_BUILD=yes else IS_BETA_BUILD=no fi AC_SUBST(IS_BETA_BUILD) # 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:']) # 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) # 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_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) missing_tools= for i in DLLTOOL MAKE UNZIP TAR MKDIR CP RM STOW MAKENSIS ZCAT TEXI2DVI \ DVIPDF CONVERT SHA1SUM MSGFMT BUILD_CC; do eval tmp='$'$i if test -z "$tmp"; then missing_tools="$missing_tools `echo $i | tr 'A-Z' 'a-z'`" fi done # 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) # Additional runtime libraries from mingw. GPG4WIN_RUNTIME_LIBRARY(libgcc_s_sjlj-1) GPG4WIN_RUNTIME_LIBRARY(libstdc++-6) GPG4WIN_RUNTIME_LIBRARY(libwinpthread-1) AC_CHECK_PROGS(GLIB_GENMARSHAL, glib-genmarshal) AC_CHECK_PROGS(GLIB_COMPILE_SCHEMAS, glib-compile-schemas) AC_CHECK_PROGS(GLIB_COMPILE_RESOURCES, glib-compile-resources) AC_CHECK_PROGS(GDK_PIXBUF_CSOURCE, gdk-pixbuf-csource) missing_opt_tools= for i in GLIB_GENMARSHAL GLIB_COMPILE_SCHEMAS GLIB_COMPILE_RESOURCES \ GDK_PIXBUF_CSOURCE; do eval tmp='$'$i if test -z "$tmp"; then missing_opt_tools="$missing_opt_tools `echo $i | tr 'A-Z' 'a-z'`" fi done # Optional tools. AC_CHECK_PROGS(WGET, wget) # Packages. gpg4win_dup_sources="" GPG4WIN_SPKG([zlib]) GPG4WIN_BPKG_GTK([pkgconfig]) GPG4WIN_SPKG([libffi], [pkgconfig]) -GPG4WIN_SPKG([glib], [libiconv gettext pkgconfig libffi zlib]) +GPG4WIN_SPKG([pcre], [pkgconfig]) +GPG4WIN_SPKG([glib], [pcre libiconv gettext pkgconfig libffi zlib]) GPG4WIN_BPKG_GTK_DEV([atk], [glib pkgconfig]) GPG4WIN_BPKG_GTK_DEV([pango], [glib pkgconfig]) GPG4WIN_BPKG_GTK_DEV([cairo], [glib pkgconfig]) GPG4WIN_BPKG_GTK_DEV([expat]) GPG4WIN_BPKG_GTK_DEV([freetype], [pkgconfig zlib]) GPG4WIN_BPKG_GTK_DEV([fontconfig], [pkgconfig zlib expat]) GPG4WIN_SPKG([gdk-pixbuf], [glib]) GPG4WIN_SPKG([gtk+], [libiconv gettext pkgconfig atk pango dnl glib gdk-pixbuf cairo]) GPG4WIN_SPKG([libpng], [pkgconfig]) GPG4WIN_SPKG([bzip2]) GPG4WIN_SPKG([libgpg-error], [libiconv gettext]) GPG4WIN_SPKG([libassuan], [libgpg-error w32pth]) GPG4WIN_SPKG([scute], [libgpg-error libassuan]) GPG4WIN_SPKG([pinentry], [qtbase libiconv gtk+]) GPG4WIN_SPKG([gpgme], [libgpg-error libassuan glib qtbase]) GPG4WIN_SPKG([gpgol], [gpgme libassuan]) GPG4WIN_SPKG([gpgex], [libassuan]) GPG4WIN_SPKG([paperkey]) GPG4WIN_SPKG([gpa], [libiconv gettext zlib gtk+ libpng glib gpgme]) GPG4WIN_SPKG([w32pth]) GPG4WIN_SPKG([libiconv]) GPG4WIN_SPKG([gettext], [libiconv]) # 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]) # See the script kde-l10n.sh how this package is created. GPG4WIN_BPKG_BINSRC([kde-l10n]) # Qt related stuff. GPG4WIN_SPKG([qtbase], [libpng]) GPG4WIN_SPKG([qttools], [qtbase]) GPG4WIN_SPKG([qttranslations], [qtsvg qttools qtwinextras]) GPG4WIN_SPKG([qtwinextras], [qtbase]) GPG4WIN_SPKG([qtsvg], [qtbase]) GPG4WIN_SPKG([boost], [expat zlib bzip2]) GPG4WIN_KDEPKG([breeze-icons], [extra-cmake-modules qtbase]) GPG4WIN_KDEPKG([kleopatra], [gnupg-w32 breeze-icons kxmlgui libkleo kde-l10n kitemmodels qttranslations]) 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]) GPG4WIN_KDEPKG([kcoreaddons], [qtbase qttools]) GPG4WIN_KDEPKG([kcodecs], [qtbase qttools]) GPG4WIN_KDEPKG([kguiaddons], [qtbase qttools]) GPG4WIN_KDEPKG([kmime], [kcodecs]) 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([kiconthemes], [qtsvg kconfigwidgets karchive]) GPG4WIN_KDEPKG([kxmlgui], [kiconthemes kconfigwidgets kitemviews]) GPG4WIN_KDEPKG([libkleo], [kmime kwidgetsaddons kwindowsystem kcompletion kconfig gpgme]) GPG4WIN_KDEPKG([gpg4win-tools], [libkleo gpgme]) GPG4WIN_FINALIZE # 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.current; 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_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} " if test -n "$JOBS"; then echo " make jobs: ${JOBS}" else echo "" fi diff --git a/packages/packages.current b/packages/packages.current index 03956e09..886a58bb 100644 --- a/packages/packages.current +++ b/packages/packages.current @@ -1,598 +1,601 @@ # packages.current - list of current 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 SHA1 checksum of # the last file. # # zlib # server http://zlib.net # last-changed: 2017-01-23 # by: ah # verified: Sig 5ED4 6A67 21D3 6558 7791 E2AA 783F CD8E 58BC AFBA file zlib-1.2.11.tar.gz chk c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1 # # GNU # 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 # verified: Sig 9001 B85A F9E1 B83D F1BD A942 F5BE 8B26 7C6A 406D file gettext/gettext-0.21.tar.xz + +# Glib needs PCRE +# last-changed: 2021-09-02 +# verified: Sig: 45F6 8D54 BBE2 3FB3 039B 46E5 9766 E084 FB0F 43D8 +server https://ftp.pcre.org/pub/pcre/ +file pcre-8.44.tar.gz + # # GLIB # # The GTK boyz seem to think that sha256sum files on the server # magically get them a lot of additional security karma. # # And it's plain to see # You were meant for me # Yeah I'm your .sig # Your 21th Century sig # 21th Century sig, I wanna be your file # -server http://ftp.gnome.org/pub/gnome/sources/glib/2.41 +server http://ftp.gnome.org/pub/gnome/sources/glib/2.49 -# last-changed: 2015-06-05 -# Latest minor release is 2.45 but 2.41 works for us. +# last-changed: 2021-08-17 # by: ah -# compared checksum with debian experimental version. -# https://lists.debian.org/debian-experimental-changes/2014/09/msg00182.html -# verified: Sig 3D0E FB95 E7B5 237F 16E8 2258 E352 D5C5 1C50 41D4 -file glib-2.41.5.tar.xz -chk e76a6bd1456749bdd05db19a8f0f174e787e612ed443d30cc9cf02237dd58e16 +file glib-2.49.7.tar.xz +chk 0fd13406ca31d6f654c3be620e0adaaa4f9fb788e164e265e33edf4b21e64ef6 # # GDK-PIXBUF # server http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.30/ # checked: 2015-06-05 # by: ah # There is a 2.31 series but afaik no security problems with 2.30 # verified: with linuxfromscratch and frugalware checksums file gdk-pixbuf-2.30.8.tar.xz chk 4853830616113db4435837992c0aebd94cbb993c44dc55063cee7f72a7bef8be # # ATK # server http://ftp.gnome.org/pub/gnome/sources/atk/1.32 # checked: 2013-04-29 wk (1.32.0 still the latest in 1.32) file atk-1.32.0.tar.bz2 chk e9a3e598f75c4db1af914f8b052dd9f7e89e920a96cc187c18eb06b8339cb16e server http://ftp.gnome.org/pub/gnome/binaries/win32/atk/1.32 # checked: 2013-04-29 wk name atk-1.32.0.zip file atk_1.32.0-2_win32.zip chk cadc6d52f2af21996a6dcba7b1fac27ce66721e14d1c4ab21fde7bc9965f5037 # checked: 2013-04-29 wk name atk-dev-1.32.0.zip file atk-dev_1.32.0-2_win32.zip chk 5021d64043d270350d6a8d50b91db691a7421a68ca0bfa4eeb0c8804a176ac44 # # PANGO # server http://ftp.gnome.org/pub/gnome/sources/pango/1.29 # fixme: 2013-04-29 wk - There is a 1.29.5 but no 1.29.5 binaries # What shall we do: Update to 1.32? There are no # 1.32 binaries either. file pango-1.29.4.tar.bz2 chk f15deecaecf1e9dcb7db0e4947d12b5bcff112586434f8d30a5afd750747ff2b server http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.29 name pango-1.29.4.zip file pango_1.29.4-1_win32.zip chk e1b865ae2e4054388c598f92b34593b3d24d7fd15e6308c8926ee634717c21ce name pango-dev-1.29.4.zip file pango-dev_1.29.4-1_win32.zip chk 0d7fb255e65ed4bd43acedab4405986e4877b87ba8227d5fa22b38330485e3cb # # CAIRO # server http://cairographics.org/releases # checked: 2013-04-29 wk - 1.10.2 is the latest in the 1.10 series. file cairo-1.10.2.tar.gz chk 32018c7998358eebc2ad578ff8d8559d34fc80252095f110a572ed23d989fc41 server http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies # checked: 2013-07-16 ah most recent package on that server is from # 2012-09-27 TODO -> Move to another source / source build of those # dependencies # checked: 2013-04-29 wk name cairo-1.10.2.zip file cairo_1.10.2-2_win32.zip chk e6c361ec1df4ccb23edbe5b68db16329d563a19eeee7fa70d583dda3d2358f4e name cairo-dev-1.10.2.zip file cairo-dev_1.10.2-2_win32.zip chk b86f875bf776bbf578e3fa8c46866b84c93200b962b30d03cf795f82157e3167 # checked: 2013-04-29 wk file freetype-2.4.2.tar.bz2 chk 9a987aef8c50d9bcfdfdc9f012f8bd0de6095cc1a5524e62c1a037deb8dacbfe name freetype-2.4.2.zip file freetype_2.4.2-1_win32.zip chk bdf67e6573363fd2256a58295931cc1186382fd0ad1fe420059d6ffdb5fba7c0 name freetype-dev-2.4.2.zip file freetype-dev_2.4.2-1_win32.zip chk eed58c2807b65d5e0ec78031e89f1628577ad76bf47f02eaecde432c0b99eae9 server http://www.fontconfig.org/release # checked: 2013-04-29 wk - 2.8.0 still the latest in 2.8 file fontconfig-2.8.0.tar.gz chk fa2a1c6eea654d9fce7a4b1220f10c99cdec848dccaf1625c01f076b31382335 server http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies # checked: 2013-04-29 wk name fontconfig-2.8.0.zip file fontconfig_2.8.0-2_win32.zip chk 9d6bcaeed0eced43a649953132d9f2b3e15b98c7bb9e4a207872dfeade818204 name fontconfig-dev-2.8.0.zip file fontconfig-dev_2.8.0-2_win32.zip chk 2f15af3d27ca507dad2a208e58409f484aa7e7c7eac10b49edca079b31ae7073 server ftp://ftp.g10code.com/g10code/misc # checked: 2013-04-29 wk - 2.0.1 still the latest in 2.0 file expat-2.0.1.tar.gz chk 847660b4df86e707c9150e33cd8c25bc5cd828f708c7418e765e3e983a2e5e93 server http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies # checked: 2013-04-29 wk name expat-2.0.1.zip file expat_2.0.1-1_win32.zip chk 77b88ab780e698d6590426b26a877878584b9f8b6357909699674fb5045737bd name expat-dev-2.0.1.zip file expat-dev_2.0.1-1_win32.zip chk 67b92b7f3441fee077bdc0094bf4dd673870acdf51899e32e199246801538162 # # GTK+ # server http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24 # last-changed: 2015-06-05 # by: ah # verified: chk from https://download.gnome.org/core/3.17/3.17.2/sources/SHA256SUMS-for-xz file gtk+-2.24.28.tar.xz chk b2c6441e98bc5232e5f9bba6965075dcf580a8726398f7374d39f90b88ed4656 # # 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 # PNG # last changed: 2017-08-28 # by: js # verified: Sig 8048 643B A2C8 40F4 F92A 195F F549 84BF A16C 640F server ftp://ftp.simplesystems.org/pub/png/src file libpng14/libpng-1.4.22.tar.xz chk 8d419a8b2a5edddda5cbcb897ded92205344a3249fa7a00d6384ea23ac3ccbd8 # # LibFFI # server ftp://sourceware.org/pub/libffi # checked: 2013-04-29 wk - updated from 3.0.10. # checked: 2014-07-16 ah - only rc availble from 3.0.14 file libffi-3.0.13.tar.gz chk 1dddde1400c3bcb7749d398071af88c3e4754058d2d4c0b3696c2f82dc5cf11c # # GpgOL # server http://files.gpg4win.org/src # by: ah # verified: Sig 5B80 C575 4298 F0CB 55D8 ED6A BCEF 7E29 4B09 2E28 file gpgol/gpgol-2.5.0.tar.bz2 chk 76cb742ae53cf54f2d42d258f6ba657d2b98c752d2c742b1e4f04b26a6baf0df # for beta #server http://files.intevation.de/projects/gpg4all #file gpgol/gpgol-2.5.0-beta36.tar.bz2 #chk cf3431d9ffb06f6c86af4aaa35fd69f343a18854016ab7d4145844a9be8346cf # # GpgEX # server http://files.gpg4win.org/src # last-changed: 2021-01-26 # by: ah # verified: Sig 5B80 C575 4298 F0CB 55D8 ED6A BCEF 7E29 4B09 2E28 file gpgex/gpgex-1.0.7.tar.bz2 chk ff6b9cce03d835bbf0fbfd5fbe986ed42813ababa4a98a791da8b57d745b5848 # # Pth emulation # server ftp://ftp.g10code.com/g10code/w32pth # checked: 2014-07-16 ah file w32pth-2.0.5.tar.bz2 chk 5e462d06ed50e9e961546ab5264258e606b101860a74c1e410d086432ec27a06 # # Stripped down version of BZIP2 # (full source at http://bzip.org) # server ftp://ftp.g10code.com/g10code/bzip2 # checked: 2014-07-16 ah file bzip2-1.0.6-g10.tar.gz chk c2a9b3aec1a38d34b66106116a39f64b01d84f475fef75c40ea0bda0ea67ed07 # # GnuPG et al. # # All tarballs from this server are verified with an openpgp # signature made by "Werner Koch (dist sig)". # D869 2123 C406 5DEA 5E0F 3AB5 249B 39D2 4F25 E3B6 server ftp://ftp.gnupg.org/gcrypt # last changed 2021-04-21 # by ah # verified: distsigkey.gpg server ftp://ftp.gnupg.org/gcrypt file libgpg-error/libgpg-error-1.42.tar.bz2 chk fc07e70f6c615f8c4f590a8e37a9b8dd2e2ca1e9408f8e60459c67452b925e23 # last-changed: 2021-04-21 # by: ah # verified: distsigkey.gpg file libassuan/libassuan-2.5.5.tar.bz2 chk 8e8c2fcc982f9ca67dcbb1d95e2dc746b1739a4668bc20b3a3c5be632edb34e4 # last changed: 2021-08-27 # by: ah # verified: distsigkey.gpg name gnupg-w32-2.2.30-20210826-bin.exe file binary/gnupg-w32-2.2.30_20210826.exe chk 646833b59645a6dd1138b1a93ae384f702ee4b55b72a26b5d42a185d9b6523c4 name gnupg-w32-2.2.30-20210826-src.tar.xz file binary/gnupg-w32-2.2.30_20210826.tar.xz chk 0d30b30c207a1ecb0472b65f167e651d161d096d629589722ec72742d50b8b04 name gnupg-msi-2.2.30-20210826-src.tar.xz file binary/gnupg-w32-2.2.30_20210826.tar.xz chk 0d30b30c207a1ecb0472b65f167e651d161d096d629589722ec72742d50b8b04 name gnupg-msi-2.2.30-20210826-bin.wixlib file binary/gnupg-w32-2.2.30_20210826.wixlib chk 93e05470f126c64964d67d5789c74903c4f0190e44ccfa1187db1ede3fa3931f server ftp://ftp.gnupg.org/gcrypt # last changed: 2021-04-21 # by: ah file pinentry/pinentry-1.2.0.tar.bz2 chk 10072045a3e043d0581f91cd5676fcac7ffee957a16636adedaa4f583a616470 # last changed: 2021-01-08 # by: wk # verified: swdb.mac #cd file gpgme/gpgme-1.15.1.tar.bz2 #chk eebc3c1b27f1c8979896ff361ba9bb4778b508b2496c2fc10e3775a40b1de1ad # last changed: 2018-10-17 # by: ah file gpa/gpa-0.10.0.tar.bz2 chk 95dbabe75fa5c8dc47e3acf2df7a51cee096051e5a842b4c9b6d61e40a6177b1 # last changed: 2021-01-07 # by: ah file scute/scute-1.7.0.tar.bz2 chk 437fe758b27c243a5ee2535c6b065ea1d09f2c9a02d83567d2f934bb6395c249 # # 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 # # Boost # last changes: 2016-01-21 # by: ah # verified: Second source https://github.com/mxe/mxe/commit/fdd5b9f7aa8bf0e40c1f1f8119701af96e51457e server http://downloads.sourceforge.net/project/boost/boost/ name boost-1.60.0.tar.bz2 file 1.60.0/boost_1_60_0.tar.bz2 chk 686affff989ac2488f79a97b9479efb9f2abae035b5ed4d8226de6857933fd3b # Qt base # last changed: 2020-07-22 # by: ah # verified: HTTPS https://download.qt.io/official_releases/qt/5.10/5.15.0/submodules/qtbase-everywhere-src-5.15.0.tar.xz.sha256 server http://download.qt.io/official_releases/qt/ name qtbase-5.15.0.tar.xz file 5.15/5.15.0/submodules/qtbase-everywhere-src-5.15.0.tar.xz chk 9e7af10aece15fa9500369efde69cb220eee8ec3a6818afe01ce1e7d484824c5 # Qt Tools # last changed: 2020-07-22 # by: ah # verified: HTTPS https://download.qt.io/official_releases/qt/5.15/5.15.0/submodules/qttools-everywhere-src-5.15.0.tar.xz.sha256 name qttools-5.15.0.tar.xz file 5.15/5.15.0/submodules/qttools-everywhere-src-5.15.0.tar.xz chk ddbcb49aab3a2e3672582c6e2e7bec0058feff790f67472343c79e2895e0e437 # Qt Winextras # last changed: 2020-07-22 # by: ah # verified: HTTPS https://download.qt.io/official_releases/qt/5.15/5.15.0/submodules/qtwinextras-everywhere-src-5.15.0.tar.xz.sha256 name qtwinextras-5.15.0.tar.xz file 5.15/5.15.0/submodules/qtwinextras-everywhere-src-5.15.0.tar.xz chk d77f2cb2ce83bdbfd0a970bc8d7d11c96b2df16befc257d6594f79dfd92abff0 # Qt svg # last changed: 2020-07-22 # by: ah # verified: HTTPS https://download.qt.io/official_releases/qt/5.15/5.15.0/submodules/qtsvg-everywhere-src-5.15.0.tar.xz.sha256 name qtsvg-5.15.0.tar.xz file 5.15/5.15.0/submodules/qtsvg-everywhere-src-5.15.0.tar.xz chk ee4d287e2e205ca8c08921b9cbe0fc58bf46be080b5359ad4d7fbdee44aeee0d # Qt translations # last changed: 2020-07-22 # by: ah # verified: HTTPS https://download.qt.io/official_releases/qt/5.15/5.15.0/submodules/qttranslations-everywhere-src-5.15.0.tar.xz.sha256 name qttranslations-5.15.0.tar.xz file 5.15/5.15.0/submodules/qttranslations-everywhere-src-5.15.0.tar.xz chk 45c43268d9df50784d4d8ca345fce9288a1055fd074ac0ef508097f7aeba22fe # 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: 2021-01-06 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/extra-cmake-modules-5.77.0.tar.xz chk 42f071f628b192122894026de20097cb0b3de411cb41c6935b48eb86ce992a65 # kconfig # last changed: 2021-01-06 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/kconfig-5.77.0.tar.xz chk 30e81a7d00cc862e9d07d0e6d0fa55b561641850b7aaffcf51d4b390f1eff981 # ki18n # last changed: 2021-01-06 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/ki18n-5.77.0.tar.xz chk b2e1b74dedc1a3af88f04c470922d1fafb892d5846ea91ad139d421070cff357 # kwidgetsaddons # last changed: 2021-01-06 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/kwidgetsaddons-5.77.0.tar.xz chk c72094fdad6740280513ff27477003839f20555071817337d3bf5c95761d7ae4 # kcompletion # last changed: 2021-01-06 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/kcompletion-5.77.0.tar.xz chk 2ed7c90a575de468fd025688e7aa566b30003f4e43b1d7ed0c5dacafa0abf3d4 # kwindowsystem # last changed: 2021-01-06 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/kwindowsystem-5.77.0.tar.xz chk 064d31310a8568fb1900c19b955176e245d96f0b42061c15c20bc2e2a7ab4f82 # kcoreaddons # last changed: 2021-01-06 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/kcoreaddons-5.77.0.tar.xz chk 238e4cc422a62a2c3cb12915dbb52ad1a04be2ed13f59bfe3d1959266f08471d # kcodecs # last changed: 2021-01-06 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/kcodecs-5.77.0.tar.xz chk c1b34aac21f6ab21e91e0e11f620949574678146f4407c853516c0f456e81fc4 # kconfigwidgets # last changed: 2021-01-06 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/kconfigwidgets-5.77.0.tar.xz chk 5f4a6897ef58992d38e820e8b0112069aec2ef0e7b943eb14265482c4fb22cd1 # kxmlgui # last changed: 2021-01-06 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/kxmlgui-5.77.0.tar.xz chk ae6df2146464ea403d33e8b0e4b69579428bf76c1e13f5fffb8634a65da930f1 # kguiaddons # last changed: 2021-01-06 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/kguiaddons-5.77.0.tar.xz chk df674a64142d494345daed77cb64ab5b27960ebeda94ae30287bf311acaef63c # kitemviews # last changed: 2021-01-06 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/kitemviews-5.77.0.tar.xz chk 1013c09c47b87c51b21e6cfe5a6ed112ba43ab9b18b8d41fe7ffe2214faf1b23 # kitemmodels # last changed: 2021-01-06 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/kitemmodels-5.77.0.tar.xz chk decc3f607a0b2e9e6d585188eb6664a2cf06646db50d4d60dce83d96a0456534 # kiconthemes # last changed: 2021-01-06 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/kiconthemes-5.77.0.tar.xz chk 735834671bd32f26da075d25f4209faac04fcc6af2f4090f99d055a3a277dc79 # breeze-icons # last changed: 2021-01-06 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/breeze-icons-5.77.0.tar.xz chk 96ad021edd6999e632991bff286f13601b898dc623388e52e82b68b5ac0a0f82 # karchive # last changed: 2021-01-06 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/karchive-5.77.0.tar.xz chk 2239af811b9205d9f4486791f4b25ff5ea299b3873021a646e1c8b9d44c2be36 # kcrash # last changed: 2021-01-06 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/kcrash-5.77.0.tar.xz chk bda5567aca769590fbdd96d82d64ef6200350e3c88029d26c7a3603ce880a84e ##### End Paste ##### # KDE Applications # For older releases check here: server https://download.kde.org/Attic/applications # server http://download.kde.org/stable/applications/ # kmime # last changed: 2020-11-12 # by: ah # verified: PGP Sig F23275E4BF10AFC1DF6914A6DBD2CE893E2D1C87 file 19.08.3/src/kmime-19.08.3.tar.xz chk e659e1154fbc11db624f1b76bc1a8e5cf8c7f6731cef7b4ff6fad9ccf90580dd # Snapshots which contain unreleased fixes important for Gpg4win server http://files.intevation.de/projects/gpg4all #by ah #file scute/scute-1.6.0-beta187.tar.bz2 #chk 8d2a56dff6e6c12d628dd32075497326e8345c0096dec1280f7ab2c737410837 # by: ah # file pinentry/pinentry-1.1.1-beta44.tar.bz2 # chk c2091536687cd83569c9919d6d9fc8c3a53e74d8419320bcbb8b7dc36019c677 # by: ah file gpgme/gpgme-1.16.1-beta16.tar.bz2 chk 2aebf01c533a68372ce4b95ffaa6cd5144aa147c143f1125a947dff5d4dda6c9 # Libkleo # last changed: see package date. # by: ah # verified: Tarball created by ah. file libkleo/libkleo-202108261518.tar.gz chk aa5e5da428075f61a3bb62e8e0065efd8756cf535558c254d1de94e6efce1ff1 # KDE-L10n # last changed: see package date. # by: ah # verified: Tarball created by ah with script kde-l10n.sh file kde-l10n/kde-l10n-202106110943-bin.tar.xz chk 25f7fdcf28b099f4468a1b284e5b91d4bde6ad82341d8267b2258625a660bc4f file kde-l10n/kde-l10n-202106110943-src.tar.xz chk 2bbd748c5bd4ed6b9389ed9d05eeb9d0f543104ef916c09a1d89b1633632f2a4 # Gpg4win-tools package # last changed: see package date. # by: ah # verified: Tarball created by ah. file gpg4win-tools/gpg4win-tools-202104211124.tar.gz chk 79ea82ede46bbd02f70a64e4f003c6279e98cf4ad1e302eca753087c42fccdf3 # Kleopatra # last changed: see package date. # by: ah # verified: Tarball created by ah. file kleopatra/kleopatra-202108261520.tar.gz chk 4440c6992acbf05a7283e8fb62fbe878cb3f38799d2d5f0985c3a80e2245027b diff --git a/src/Makefile.am b/src/Makefile.am index 40ac1038..2d4b8870 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,804 +1,813 @@ # 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 g4wihelp.c desktopshellrun.cpp \ g4wihelp.nsi slideshow.cpp gpgwrap.c \ inst-sections.nsi installer.nsi installer-finish.nsi \ zlib.pc sha1sum.c mkportable.c \ mkportable-vanilla.h mkportable-full.h \ potomo Memento.nsh \ inst-gpg4win.nsi uninst-gpg4win.nsi \ inst-atk.nsi uninst-atk.nsi \ inst-expat.nsi uninst-expat.nsi \ inst-freetype.nsi uninst-freetype.nsi \ inst-fontconfig.nsi uninst-fontconfig.nsi \ inst-cairo.nsi uninst-cairo.nsi \ inst-gettext.nsi uninst-gettext.nsi \ inst-libffi.nsi uninst-libffi.nsi \ inst-glib.nsi uninst-glib.nsi \ inst-gnupg-w32.nsi uninst-gnupg-w32.nsi \ inst-gpa.nsi uninst-gpa.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-gdk-pixbuf.nsi uninst-gdk-pixbuf.nsi \ inst-gtk+.nsi uninst-gtk+.nsi \ inst-libassuan.nsi uninst-libassuan.nsi \ inst-libgpg-error.nsi uninst-libgpg-error.nsi \ inst-libiconv.nsi uninst-libiconv.nsi \ inst-libpng.nsi uninst-libpng.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-pango.nsi uninst-pango.nsi \ inst-pinentry.nsi uninst-pinentry.nsi \ inst-pkgconfig.nsi uninst-pkgconfig.nsi \ inst-w32pth.nsi uninst-w32pth.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 \ uninst-claws-mail.nsi uninst-claws-mail-cmds.nsi \ inst-qtbase.nsi uninst-qtbase.nsi \ inst-ki18n.nsi uninst-ki18n.nsi \ inst-kwidgetsaddons.nsi uninst-kwidgetsaddons.nsi \ inst-kcompletion.nsi uninst-kcompletion.nsi \ inst-kwindowsystem.nsi uninst-kwindowsystem.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-boost.nsi uninst-boost.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-final.nsi index.theme \ + inst-pcre.nsi uninst-pcre.nsi \ slideshow/slides.dat \ slideshow/slide1-gpgol.png \ slideshow/slide2-gpgex.png \ slideshow/slide3-kleopatra.png \ slideshow/slide4-summary.png \ file-ext.ico \ kdeglobals qtlogging.ini \ make-msi.pl WixUI_Gpg4win.wxs shield.ico 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 mkportable.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. gpg4win_spkgs = glib libffi gdk-pixbuf gtk+ \ libgpg-error gpgme gpgol gpgex libpng \ gpa opencdk \ - pinentry libassuan \ + pinentry libassuan pcre \ w32pth 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 # Supported source packages to build in an additional architecture gpg4win_expkgs = libgpg-error libassuan libiconv gettext w32pth 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 gpg4win_pkg_glib_configure = \ --disable-modular-tests \ --with-lib-prefix=$(idir) --with-libiconv-prefix=$(idir) \ CPPFLAGS=-I$(idir)/include LDFLAGS=-L$(idir)/lib CCC=$(host)-g++ gpg4win_pkg_glib_extracflags = -march=i486 gpg4win_pkg_gdk_pixbuf_configure = \ --with-lib-prefix=$(idir) --with-libiconv-prefix=$(idir) \ --with-included-loaders=yes \ CPPFLAGS=-I$(idir)/include LDFLAGS=-L$(idir)/lib gpg4win_pkg_gtk__configure = \ CPPFLAGS=-I$(idir)/include LDFLAGS=-L$(idir)/lib --disable-cups +gpg4win_pkg_pcre_configure = \ + --enable-utf \ + --enable-unicode-properties \ + --enable-cpp \ + --disable-pcregrep-libz \ + --disable-pcregrep-libbz2 \ + --disable-pcretest-libreadline + # The GnuPG package provides man pages which we have to convert. # We also create the MO files here. define gpg4win_pkg_gnupg2_post_install (for i in gpg2 gpgv2 gpgsm gpg-agent scdaemon gpg-connect-agent gpgconf ; \ 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 ; \ for i in `$(tsdir)/src/potomo --get-linguas $$$${pkgsdir}/po` ; do \ $(MKDIR_P) $$$${pkgidir}/share/locale/$$$${i}/LC_MESSAGES || true; \ rm $$$${pkgidir}/share/locale/$$$${i}/LC_MESSAGES/gnupg2.mo 2>/dev/null \ || true; \ $(tsdir)/src/potomo $$$${pkgsdir}/po/$$$${i}.po \ $$$${pkgidir}/share/locale/$$$${i}/LC_MESSAGES/gnupg2.mo; \ done) endef # 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 gpg4win_pkg_libgpg_error_ex_configure = --silent \ --enable-static # 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 = --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 \ $(pinentry_enable_disable) \ --disable-pinentry-fltk \ --enable-pinentry-gtk2 \ 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 \ `test -n "@HAVE_PKG_GLIB@" && echo "--enable-w32-glib"` \ CFLAGS=-I$(idir)/include/glib-2.0/ \ 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_gpa_configure = --silent \ --with-libiconv-prefix=$(idir) --with-libintl-prefix=$(idir) \ --with-gpgme-prefix=$(idir) --with-zlib=$(idir) \ --with-libassuan-prefix=$(idir) --with-gpg-error-prefix=$(idir) gpg4win_pkg_gpgol_configure = --silent \ --with-gpgme-prefix=$(idir) --with-gpg-error-prefix=$(idir) \ --with-libassuan-prefix=$(idir) --enable-mime-send gpg4win_pkg_gpgol_ex_configure = --silent \ --with-gpgme-prefix=$(ex_idir) --with-gpg-error-prefix=$(ex_idir) \ --with-libassuan-prefix=$(ex_idir) --enable-mime-send 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_paperkey_configure = --silent gpg4win_pkg_ki18n_configure = -DBUILD_WITH_QML=OFF gpg4win_pkg_kconfig_configure = -DKCONFIG_USE_DBUS=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' # Qmake still writes debug names in pkgconfig files. define gpg4win_pkg_qtbase_post_install (cd $$$${pkgbdir}; \ 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 -f $$$${pkgidir}/qttranslations; \ mkdir -p $$$${pkgidir}; \ cp -r $$$${pkgbdir}/translations $$$${pkgidir}/qttranslations;) endef gpg4win_pkg_kleopatra_configure = \ -DFORCE_DISABLE_KCMUTILS=ON \ -DDISABLE_KWATCHGNUPG=ON \ -DRELEASE_SERVICE_VERSION=Gpg4win-$(VERSION) gpg4win_pkg_kxmlgui_configure = \ -DFORCE_DISABLE_KGLOBALACCEL=ON \ -DFORCE_DISABLE_DBUS=ON \ -DXMLGUI_COMPILER_VERSION="i686-w64-mingw32-gcc" \ -DXMLGUI_DISTRIBUTION_TEXT="Gpg4win" gpg4win_pkg_breeze_icons_configure = \ -DBINARY_ICONS_RESOURCE=OFF # 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 pango expat freetype fontconfig \ cairo atk 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 need to fix the prefix in the various packages using pkgconfig, # or we can't substitute it properly in our pkg-config wrapper. # glib also installs an empty charset.alias for mingw which creates # a stow conflict with the one from iconv. define gpg4win_pkg_glib_post_install (cd $$$${pkgidir}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`; \ rm $$$${pkgidir}/lib/charset.alias) endef define gpg4win_pkg_libffi_post_install (cd $$$${pkgidir}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`) endef define gpg4win_pkg_gdk_pixbuf_post_install (cd $$$${pkgidir}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`) endef define gpg4win_pkg_atk_post_install (cd $$$${pkgidir_dev}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`) endef define gpg4win_pkg_freetype_post_install (cd $$$${pkgidir_dev}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`) endef define gpg4win_pkg_fontconfig_post_install (cd $$$${pkgidir_dev}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`) endef define gpg4win_pkg_cairo_post_install (cd $$$${pkgidir_dev}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`) endef define gpg4win_pkg_pango_post_install (cd $$$${pkgidir_dev}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`) endef define gpg4win_pkg_libpng_post_install (cd $$$${pkgidir}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`) 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 stamps/stamp-msi-base: playground/install/gpg4win-$(VERSION).wixlib \ 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 $(idir)/gpg4win-$(VERSION).wixlib $(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION) scp $(top_srcdir)/packages/gnupg-msi-$(gpg4win_pkg_gnupg_msi_version)-bin.wixlib \ $(WINHOST):AppData/Local/Temp/gpg4win-$(VERSION); scp $(top_srcdir)/src/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 stamps/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 $(eval $(call INCLUDE_BY_MAKE,gpg4win.mk)) clean-local: clean-gpg4win 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. stamps/stamp-additional-signedfiles: (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 stamps/stamp-additional-signedfiles playground/install/gpg4win-$(VERSION).wixlib: \ gpg4win-$(VERSION).wxs stamps/stamp-final \ $(foosum_exe) \ $(README_files) $(HOWTO_files) \ license.blurb versioninfo.txt \ WixUI_Gpg4win.wxs \ stamps/stamp-additional-signedfiles ($(call SETVARS_WINE_TWO_DOLLAR,); \ echo "Gpg4win" > $(srcdir)/playground/VERSION; \ echo "$(VERSION)" >> $(srcdir)/playground/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:\\gpg4win-$(VERSION).wixobj \ -pedantic -wx i:\\src\\gpg4win-$(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:\\gpg4win-$(VERSION).wixlib \ -bf \ -wx \ -pedantic \ k:\\gpg4win-$(VERSION).wixobj k:\\gpg4win-ui.wixobj || exit 1; \ \ ) || ERR=1; (rm $$WINEINST; rm $$WINESRC; rm $$WINEINSTEX); \ if [ -n "$$ERR" ]; then \ exit 1; \ fi) playground/install/gpg4win-$(VERSION)-x86.wixlib: \ gpg4win-$(VERSION).wxs stamps/stamp-final \ $(foosum_exe) \ $(README_files) $(HOWTO_files) \ license.blurb versioninfo.txt \ WixUI_Gpg4win.wxs \ stamps/stamp-additional-signedfiles ($(call SETVARS_WINE_TWO_DOLLAR,); \ echo "Gpg4win" > $(srcdir)/playground/VERSION; \ echo "$(VERSION)" >> $(srcdir)/playground/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:\\gpg4win-$(VERSION)-x86.wixobj \ -pedantic -wx i:\\src\\gpg4win-$(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:\\gpg4win-$(VERSION)-x86.wixlib \ -bf \ -wx \ -pedantic \ k:\\gpg4win-$(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) gpg4win-$(VERSION).wxs: gpg4win.nsi $(common_nsi) stamps/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) \ -DBUILD_DIR=. -DTOP_SRCDIR=$(top_srcdir) \ -DSRCDIR=$(srcdir) $(srcdir)/gpg4win.nsi > $@ # 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) stamps/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 stamps/stamp-dist-self: versioninfo.txt (set -e; cd ..; make dist-bzip2) touch stamps/stamp-dist-self installers/gpg4win-src-$(VERSION).exe: gpg4win-src.nsi $(common_nsii) \ stamps/stamp-final \ stamps/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) -static-libgcc -I. -O2 -c -o desktopshellrun.o $(srcdir)/desktopshellrun.cpp $(CC) -static-libgcc -I. -O2 -c -o slideshow.o $(srcdir)/slideshow.cpp $(CC) -static-libgcc -I. -shared -O2 -o g4wihelp.dll $(srcdir)/g4wihelp.c \ desktopshellrun.o slideshow.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) $@ mkportable.exe: mkportable.c \ mkportable-vanilla.h mkportable-full.h $(CC) -O2 -o $@ $(srcdir)/mkportable.c $(STRIP) $@ all_full = installers/gpg4win-$(VERSION).exe all-local: $(all_full) $(all_src) @echo "###################################################" @echo " Gpg4win $(VERSION) successfully build!" @echo " Installers can be found under src/installers" @echo "###################################################" 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 94e697cf..944b3f98 100644 --- a/src/config.nsi.in +++ b/src/config.nsi.in @@ -1,302 +1,306 @@ # 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_W32PTH@ !define gpg4win_pkg_w32pth @gpg4win_pkg_w32pth@ !define gpg4win_pkg_w32pth_version @gpg4win_pkg_w32pth_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_GPA@ !define gpg4win_pkg_gpa @gpg4win_pkg_gpa@ !define gpg4win_pkg_gpa_version @gpg4win_pkg_gpa_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_LIBPNG@ !define gpg4win_pkg_libpng @gpg4win_pkg_libpng@ !define gpg4win_pkg_libpng_version @gpg4win_pkg_libpng_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_GLIB@ !define gpg4win_pkg_glib @gpg4win_pkg_glib@ !define gpg4win_pkg_glib_version @gpg4win_pkg_glib_version@ #!define gpg4win_pkg_glib_dev @gpg4win_pkg_glib_dev@ #!define gpg4win_pkg_glib_src @gpg4win_pkg_glib_src@ @HAVE_PKG_GDK_PIXBUF@ !define gpg4win_pkg_gdk_pixbuf @gpg4win_pkg_gdk_pixbuf@ !define gpg4win_pkg_gdk_pixbuf_version @gpg4win_pkg_gdk_pixbuf_version@ @HAVE_PKG_LIBFFI@ !define gpg4win_pkg_libffi @gpg4win_pkg_libffi@ !define gpg4win_pkg_libffi_version @gpg4win_pkg_libffi_version@ @HAVE_PKG_ATK@ !define gpg4win_pkg_atk @gpg4win_pkg_atk@ !define gpg4win_pkg_atk_version @gpg4win_pkg_atk_version@ !define gpg4win_pkg_atk_dev @gpg4win_pkg_atk_dev@ !define gpg4win_pkg_atk_src @gpg4win_pkg_atk_src@ @HAVE_PKG_EXPAT@ !define gpg4win_pkg_expat @gpg4win_pkg_expat@ !define gpg4win_pkg_expat_version @gpg4win_pkg_expat_version@ !define gpg4win_pkg_expat_dev @gpg4win_pkg_expat_dev@ !define gpg4win_pkg_expat_src @gpg4win_pkg_expat_src@ @HAVE_PKG_FREETYPE@ !define gpg4win_pkg_freetype @gpg4win_pkg_freetype@ !define gpg4win_pkg_freetype_version @gpg4win_pkg_freetype_version@ !define gpg4win_pkg_freetype_dev @gpg4win_pkg_freetype_dev@ !define gpg4win_pkg_freetype_src @gpg4win_pkg_freetype_src@ @HAVE_PKG_FONTCONFIG@ !define gpg4win_pkg_fontconfig @gpg4win_pkg_fontconfig@ !define gpg4win_pkg_fontconfig_version @gpg4win_pkg_fontconfig_version@ !define gpg4win_pkg_fontconfig_dev @gpg4win_pkg_fontconfig_dev@ !define gpg4win_pkg_fontconfig_src @gpg4win_pkg_fontconfig_src@ @HAVE_PKG_CAIRO@ !define gpg4win_pkg_cairo @gpg4win_pkg_cairo@ !define gpg4win_pkg_cairo_version @gpg4win_pkg_cairo_version@ !define gpg4win_pkg_cairo_dev @gpg4win_pkg_cairo_dev@ !define gpg4win_pkg_cairo_src @gpg4win_pkg_cairo_src@ @HAVE_PKG_PANGO@ !define gpg4win_pkg_pango @gpg4win_pkg_pango@ !define gpg4win_pkg_pango_version @gpg4win_pkg_pango_version@ !define gpg4win_pkg_pango_dev @gpg4win_pkg_pango_dev@ !define gpg4win_pkg_pango_src @gpg4win_pkg_pango_src@ @HAVE_PKG_GTK_@ !define gpg4win_pkg_gtk_ @gpg4win_pkg_gtk_@ !define gpg4win_pkg_gtk__version @gpg4win_pkg_gtk__version@ !define gpg4win_pkg_gtk__dev @gpg4win_pkg_gtk__dev@ !define gpg4win_pkg_gtk__src @gpg4win_pkg_gtk__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_BOOST@ !define gpg4win_pkg_boost @gpg4win_pkg_boost@ !define gpg4win_pkg_boost_version @gpg4win_pkg_boost_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_KDE_L10N@ !define gpg4win_pkg_kde_l10n @gpg4win_pkg_kde_l10n@ !define gpg4win_pkg_kde_l10n_version @gpg4win_pkg_kde_l10n_version@ !define gpg4win_pkg_kde_l10n_src @gpg4win_pkg_kde_l10n_src@ @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_karchive@ !define gpg4win_pkg_kcrash_version @gpg4win_pkg_karchive_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_PCRE@ +!define gpg4win_pkg_pcre @gpg4win_pkg_pcre@ +!define gpg4win_pkg_pcre_version @gpg4win_pkg_pcre_version@ + # Internal packages. @HAVE_PKG_COMPENDIUM@ # @HAVE_PKG_MAN_NOVICE_EN@ # @HAVE_PKG_MAN_ADVANCED_EN@ diff --git a/src/inst-pcre.nsi b/src/inst-pcre.nsi new file mode 100644 index 00000000..2fb73547 --- /dev/null +++ b/src/inst-pcre.nsi @@ -0,0 +1,37 @@ +# Copyright (C) 2021 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}/pcre-${gpg4win_pkg_pcre_version} + +!ifdef DEBUG +Section "pcre" SEC_pcre +!else +Section "-pcre" SEC_pcre +!endif + SetOutPath "$INSTDIR" +!ifdef SOURCES + File "${gpg4win_pkg_pcre}" +!else + SetOutPath "$INSTDIR\bin" + File ${prefix}/bin/libpcre-1.dll + File ${prefix}/bin/libpcrecpp-0.dll + File ${prefix}/bin/libpcreposix-0.dll +!endif +SectionEnd diff --git a/src/inst-sections.nsi b/src/inst-sections.nsi index 5d515465..82f7157a 100644 --- a/src/inst-sections.nsi +++ b/src/inst-sections.nsi @@ -1,1110 +1,1116 @@ # inst-sections.nsi - Installer for GPG4Win sections. -*- coding: latin-1; -*- # 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 . !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_W32PTH !include "inst-w32pth.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_LIBPNG !include "inst-libpng.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_LIBFFI !include "inst-libffi.nsi" !endif !ifdef HAVE_PKG_GLIB !include "inst-glib.nsi" !endif !ifdef HAVE_PKG_EXPAT !include "inst-expat.nsi" !endif !ifdef HAVE_PKG_FREETYPE !include "inst-freetype.nsi" !endif !ifdef HAVE_PKG_FONTCONFIG !include "inst-fontconfig.nsi" !endif !ifdef HAVE_PKG_CAIRO !include "inst-cairo.nsi" !endif !ifdef HAVE_PKG_PANGO !include "inst-pango.nsi" !endif !ifdef HAVE_PKG_ATK !include "inst-atk.nsi" !endif !ifdef HAVE_PKG_GDK_PIXBUF !include "inst-gdk-pixbuf.nsi" !endif !ifdef HAVE_PKG_GTK_ !include "inst-gtk+.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_BOOST !include "inst-boost.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 !ifdef HAVE_PKG_KDE_L10N !include "inst-kde-l10n.nsi" !endif !ifdef HAVE_PKG_KICONTHEMES !include "inst-kiconthemes.nsi" !endif !ifdef HAVE_PKG_KARCHIVE !include "inst-karchive.nsi" !endif +!ifdef HAVE_PKG_PCRE +!include "inst-pcre.nsi" +!endif !ifdef HAVE_PKG_KCRASH !include "inst-kcrash.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_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 # BEGIN MSI IGNORE !ifdef HAVE_PKG_GPA !include "inst-gpa.nsi" !endif # END MSI IGNORE !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_GPA !include "uninst-gpa.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_GTK_ !include "uninst-gtk+.nsi" !endif !ifdef HAVE_PKG_GDK_PIXBUF !include "uninst-gdk-pixbuf.nsi" !endif !ifdef HAVE_PKG_ATK !include "uninst-atk.nsi" !endif !ifdef HAVE_PKG_PANGO !include "uninst-pango.nsi" !endif !ifdef HAVE_PKG_CAIRO !include "uninst-cairo.nsi" !endif !ifdef HAVE_PKG_FONTCONFIG !include "uninst-fontconfig.nsi" !endif !ifdef HAVE_PKG_FREETYPE !include "uninst-freetype.nsi" !endif !ifdef HAVE_PKG_EXPAT !include "uninst-expat.nsi" !endif !ifdef HAVE_PKG_GLIB !include "uninst-glib.nsi" !endif !ifdef HAVE_PKG_LIBFFI !include "uninst-libffi.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_LIBPNG !include "uninst-libpng.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_W32PTH !include "uninst-w32pth.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_BOOST !include "uninst-boost.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_PCRE +!include "uninst-pcre.nsi" +!endif !ifdef HAVE_PKG_KCRASH !include "uninst-kcrash.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 !ifdef HAVE_PKG_KDE_L10N !include "uninst-kde-l10n.nsi" !endif !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_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_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_GPA g4wihelp::config_fetch_bool "inst_gpa" StrCmp $R0 "1" 0 calc_defaults_gpa_not_one !insertmacro SelectSection ${SEC_gpa} Goto calc_defaults_gpa_done calc_defaults_gpa_not_one: StrCmp $R0 "0" 0 calc_defaults_gpa_done !insertmacro UnselectSection ${SEC_gpa} calc_defaults_gpa_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_gpgol} !insertmacro UnselectSection ${SEC_gpgex} !insertmacro UnselectSection ${SEC_gpa} !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} 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_LIBPNG !insertmacro UnselectSection ${SEC_libpng} !endif !ifdef HAVE_PKG_PKGCONFIG !insertmacro UnselectSection ${SEC_pkgconfig} !endif !ifdef HAVE_PKG_GLIB !insertmacro UnselectSection ${SEC_glib} !endif !ifdef HAVE_PKG_ATK !insertmacro UnselectSection ${SEC_atk} !endif !ifdef HAVE_PKG_PANGO !insertmacro UnselectSection ${SEC_pango} !endif !ifdef HAVE_PKG_EXPAT !insertmacro UnselectSection ${SEC_expat} !endif !ifdef HAVE_PKG_FREETYPE !insertmacro UnselectSection ${SEC_freetype} !endif !ifdef HAVE_PKG_FONTCONFIG !insertmacro UnselectSection ${SEC_fontconfig} !endif !ifdef HAVE_PKG_CAIRO !insertmacro UnselectSection ${SEC_cairo} !endif !ifdef HAVE_PKG_GTK_ !insertmacro UnselectSection ${SEC_gtk_} !endif !ifdef HAVE_PKG_BZIP2 !insertmacro UnselectSection ${SEC_bzip2} !endif !ifdef HAVE_PKG_LIBGPG_ERROR !insertmacro UnselectSection ${SEC_libgpg_error} !endif !ifdef HAVE_PKG_W32PTH !insertmacro UnselectSection ${SEC_w32pth} !endif !ifdef HAVE_PKG_LIBASSUAN !insertmacro UnselectSection ${SEC_libassuan} !endif !ifdef HAVE_PKG_GPGME !insertmacro UnselectSection ${SEC_gpgme} !endif !ifdef HAVE_PKG_LIBGSASL !insertmacro UnselectSection ${SEC_libgsasl} !endif !ifdef HAVE_PKG_LIBTASN1 !insertmacro UnselectSection ${SEC_libtasn1} !endif !ifdef HAVE_PKG_GNUTLS !insertmacro UnselectSection ${SEC_gnutls} !endif !ifdef HAVE_PKG_CURL !insertmacro UnselectSection ${SEC_curl} !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_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_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_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} # 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 SectionFlagIsSet ${SEC_gpa} \ ${SF_SELECTED} skipa_gpgex_dep_kleopatra need_gpgex_dep_kleopatra need_gpgex_dep_kleopatra: !insertmacro SelectSection ${SEC_kleopatra} skipa_gpgex_dep_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 SectionFlagIsSet ${SEC_gpa} \ ${SF_SELECTED} skipa_gpgol_dep_kleopatra need_gpgol_dep_kleopatra need_gpgol_dep_kleopatra: !insertmacro SelectSection ${SEC_kleopatra} skipa_gpgol_dep_kleopatra: skip_gpgol: !endif !ifdef HAVE_PKG_KLEOPATRA !ifndef SOURCES ${IfNot} ${AtLeastWin7} # Disable Kleo for Windows below 7 SectionSetFlags ${SEC_kleopatra} 16 !insertmacro SelectSection ${SEC_gpa} ${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} # 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_boost} !insertmacro SelectSection ${SEC_extra-cmake-modules} skip_kleopatra: !endif # BEGIN MSI IGNORE !ifdef HAVE_PKG_GPA !insertmacro SectionFlagIsSet ${SEC_gpa} ${SF_SELECTED} have_gpa skip_gpa have_gpa: !insertmacro SelectSection ${SEC_libiconv} !insertmacro SelectSection ${SEC_gettext} !insertmacro SelectSection ${SEC_zlib} !insertmacro SelectSection ${SEC_gtk_} !insertmacro SelectSection ${SEC_libpng} !insertmacro SelectSection ${SEC_glib} !insertmacro SelectSection ${SEC_gpgme} skip_gpa: !endif # END MSI IGNORE !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_libpng} !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} !insertmacro SelectSection ${SEC_w32pth} skip_libassuan: !endif # Package "w32pth" has no dependencies. !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. !ifdef HAVE_PKG_GTK_ !insertmacro SectionFlagIsSet ${SEC_gtk_} \ ${SF_SELECTED} have_gtk_ skip_gtk_ have_gtk_: !insertmacro SelectSection ${SEC_libiconv} !insertmacro SelectSection ${SEC_gettext} !insertmacro SelectSection ${SEC_pkgconfig} !insertmacro SelectSection ${SEC_atk} !insertmacro SelectSection ${SEC_pango} !insertmacro SelectSection ${SEC_glib} !insertmacro SelectSection ${SEC_cairo} skip_gtk_: !endif !ifdef HAVE_PKG_CAIRO !insertmacro SectionFlagIsSet ${SEC_cairo} \ ${SF_SELECTED} have_cairo skip_cairo have_cairo: !insertmacro SelectSection ${SEC_glib} !insertmacro SelectSection ${SEC_pkgconfig} !insertmacro SelectSection ${SEC_expat} !insertmacro SelectSection ${SEC_freetype} !insertmacro SelectSection ${SEC_fontconfig} skip_cairo: !endif !ifdef HAVE_PKG_FONTCONFIG !insertmacro SectionFlagIsSet ${SEC_fontconfig} \ ${SF_SELECTED} have_fontconfig skip_fontconfig have_fontconfig: !insertmacro SelectSection ${SEC_pkgconfig} !insertmacro SelectSection ${SEC_freetype} skip_fontconfig: !endif !ifdef HAVE_PKG_FREETYPE !insertmacro SectionFlagIsSet ${SEC_freetype} \ ${SF_SELECTED} have_freetype skip_freetype have_freetype: !insertmacro SelectSection ${SEC_pkgconfig} !insertmacro SelectSection ${SEC_expat} skip_freetype: !endif # Package "expat" has no dependencies. !ifdef HAVE_PKG_PANGO !insertmacro SectionFlagIsSet ${SEC_pango} \ ${SF_SELECTED} have_pango skip_pango have_pango: !insertmacro SelectSection ${SEC_glib} !insertmacro SelectSection ${SEC_pkgconfig} skip_pango: !endif !ifdef HAVE_PKG_ATK !insertmacro SectionFlagIsSet ${SEC_atk} \ ${SF_SELECTED} have_atk skip_atk have_atk: !insertmacro SelectSection ${SEC_glib} !insertmacro SelectSection ${SEC_pkgconfig} skip_atk: !endif !ifdef HAVE_PKG_GLIB !insertmacro SectionFlagIsSet ${SEC_glib} \ ${SF_SELECTED} have_glib skip_glib have_glib: !insertmacro SelectSection ${SEC_libiconv} !insertmacro SelectSection ${SEC_gettext} !insertmacro SelectSection ${SEC_pkgconfig} skip_glib: !endif # Package "pkgconfig" has no dependencies. !ifdef HAVE_PKG_LIBPNG !insertmacro SectionFlagIsSet ${SEC_libpng} \ ${SF_SELECTED} have_libpng skip_libpng have_libpng: !insertmacro SelectSection ${SEC_pkgconfig} skip_libpng: !endif # 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 # Note used anymore: # This function is run from the finish page. #Function RunOnFinish #!ifdef HAVE_PKG_GPA # SectionGetFlags ${SEC_gpa} $R0 # IntOp $R0 $R0 & ${SF_SELECTED} # IntCmp $R0 ${SF_SELECTED} 0 no_gpa_avail # Exec "$INSTDIR\gpa.exe" # Return # no_gpa_avail: #!endif # MessageBox MB_OK "$(T_NoKeyManager)" #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_GPA SectionGetFlags ${SEC_gpa} $R0 IntOp $R0 $R0 & ${SF_SELECTED} IntCmp $R0 ${SF_SELECTED} 0 no_gpa_menu CreateShortCut "$SMPROGRAMS\GPA.lnk" \ "$INSTDIR\bin\gpa.exe" \ "" "" "" SW_SHOWNORMAL "" $(DESC_Menu_gpa) no_gpa_menu: !endif !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 no_start_menu: # Check if the desktop entries where requested. g4wihelp::config_fetch_bool "inst_desktop" StrCmp $R0 "0" no_desktop !ifdef HAVE_PKG_GPA SectionGetFlags ${SEC_gpa} $R0 IntOp $R0 $R0 & ${SF_SELECTED} IntCmp $R0 ${SF_SELECTED} 0 no_gpa_desktop StrCmp $is_update '1' no_gpa_desktop CreateShortCut "$DESKTOP\GPA.lnk" \ "$INSTDIR\bin\gpa.exe" \ "" "" "" SW_SHOWNORMAL "" $(DESC_Menu_gpa) no_gpa_desktop: !endif !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-pcre.nsi b/src/uninst-pcre.nsi new file mode 100644 index 00000000..8d4c9bd3 --- /dev/null +++ b/src/uninst-pcre.nsi @@ -0,0 +1,35 @@ +# Copyright (C) 2021 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}/pcre-${gpg4win_pkg_pcre_version} + +; Uninstaller section. +Section "-un.pcre" +!ifdef SOURCES + Push "${gpg4win_pkg_pcre}" + Call un.SourceDelete +!else + Delete "$INSTDIR\bin\libpcre-1.dll" + Delete "$INSTDIR\bin\libpcrecpp-0.dll" + Delete "$INSTDIR\bin\libpcreposix-0.dll" + RmDir "$INSTDIR\bin" + +!endif +SectionEnd