diff --git a/configure.ac b/configure.ac index 5a888bb9..8f5ed33b 100644 --- a/configure.ac +++ b/configure.ac @@ -1,507 +1,511 @@ # 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], [4.0.0]) # 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:']) GPG4WIN_BUILD_RELEASE(gpg4win, no) GPG4WIN_BUILD_RELEASE(appimage, no) # For development it is often faster to build without manuals. AC_ARG_ENABLE(manuals, AC_HELP_STRING([--disable-manuals], [Do not build the manuals (for debugging)]), build_manuals=$enableval, build_manuals=yes) AM_CONDITIONAL(BUILD_MANUALS, test "$build_manuals" = yes) # Additionaly enable building gpgex for another host AC_ARG_WITH([additional-gpgex-host], AC_HELP_STRING([--with-additional-gpgex-host=HOST], [Additionaly build gpgex for this host]), [if test "$withval" = yes; then AC_MSG_FAILURE( [--with-additional-gpgex-host was given, but no host specified]) else gpgex_host=$withval fi ], gpgex_host=no) if test "$gpgex_host" != no; then GPGEX_ADD_HOST="$gpgex_host" fi AC_SUBST(GPGEX_ADD_HOST) AC_ARG_ENABLE(fast-makensis, AC_HELP_STRING([--enable-fast-makensis], [Use a less efficient compressor to speed up building]), use_fast_makensis=$enableval, use_fast_makensis=no) if test "$use_fast_makensis" = yes; then EXTRA_MAKENSIS_FLAGS="${EXTRA_MAKENSIS_FLAGS} -DDISABLE_LZMA=1" fi AC_SUBST(EXTRA_MAKENSIS_FLAGS) # # Set variables for use by automake makefiles. # AM_CONDITIONAL(BUILD_GPG4WIN, test "$build_gpg4win" = "yes") AM_CONDITIONAL(BUILD_APPIMAGE, test "$build_appimage" = "yes") # Required tools. AC_PROG_CC AC_PROG_CPP AC_PROG_RANLIB AC_CHECK_TOOL(AR, ar, :) AC_CHECK_TOOLS(STRIP, strip) AC_CHECK_TOOLS(DLLTOOL, dlltool) AC_CHECK_PROGS(MAKE, make) AC_CHECK_PROGS(UNZIP, unzip) AC_CHECK_PROGS(TAR, tar) AC_CHECK_PROGS(MKDIR, mkdir) AC_CHECK_PROGS(CP, cp) AC_CHECK_PROGS(RM, rm) AC_CHECK_PROGS(STOW, stow) AC_CHECK_PROGS(MAKENSIS, makensis) AC_CHECK_PROGS(ZCAT, zcat) AC_CHECK_PROGS(TEXI2DVI, texi2dvi) AC_CHECK_PROGS(DVIPDF, dvipdf) AC_CHECK_PROGS(CONVERT, convert) AC_CHECK_PROGS(SHA1SUM, sha1sum) AC_CHECK_PROGS(MSGFMT, msgfmt) AC_CHECK_PROGS(GITLOG_TO_CHANGELOG, gitlog-to-changelog, [build-aux/gitlog-to-changelog]) AC_CHECK_PROGS(BUILD_CC, gcc cc) AC_CHECK_PROGS(CMAKE, cmake3 cmake) AC_CHECK_PROGS(RSYNC, rsync) AC_PROG_INSTALL if test -n "$GPGEX_ADD_HOST"; then AC_CHECK_TOOLS(STRIP_EX, ${GPGEX_ADD_HOST}-strip) fi if test -z "$GPG4WIN_PARALLEL"; then JOBS=$(nproc 2>/dev/null || echo 1) GPG4WIN_PARALLEL=-j$JOBS AC_MSG_NOTICE([Using autodetected $JOBS make jobs. You can override this by setting GPG4WIN_PARALLEL.]) fi AC_SUBST(GPG4WIN_PARALLEL) required_tools="MAKE TAR MKDIR CP RM ZCAT SHA1SUM MSGFMT BUILD_CC CMAKE" if test "$build_gpg4win" = yes ; then required_tools="$required_tools DLLTOOL UNZIP STOW MAKENSIS TEXI2DVI DVIPDF CONVERT" fi if test "$build_appimage" = yes ; then required_tools="$required_tools RSYNC" fi missing_tools= for i in $required_tools; do eval tmp='$'$i if test -z "$tmp"; then missing_tools="$missing_tools `echo $i | tr 'A-Z' 'a-z'`" fi done if test "$build_gpg4win" = yes ; then # Try to find the KF5ConfigConfig to set up host tooling # variable for the kconfig compiler. # A variable path here would probably be better but we cant # use $libdir to avoid it beeing required to configure gpg4win # build with a multiarch libdir set. kf5_host_tooling="/usr/lib/x86_64-linux-gnu/cmake" if test ! -f "$kf5_host_tooling/KF5Config/KF5ConfigConfig.cmake"; then missing_tools="$missing_tools libkf5config-dev" fi AC_SUBST(kf5_host_tooling) # 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) fi opt_tools= if test "$build_gpg4win" = yes ; then opt_tools="GLIB_GENMARSHAL GLIB_COMPILE_SCHEMAS GLIB_COMPILE_RESOURCES GDK_PIXBUF_CSOURCE" fi missing_opt_tools= for i in $opt_tools; 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 for Gpg4Win. if test "$build_gpg4win" = yes ; then gpg4win_dup_sources="" GPG4WIN_SPKG([zlib]) GPG4WIN_BPKG_GTK([pkgconfig]) GPG4WIN_SPKG([libffi], [pkgconfig]) GPG4WIN_SPKG([glib], [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 ki18n]) GPG4WIN_KDEPKG([kconfigwidgets], [kwidgetsaddons kguiaddons ki18n kcodecs kconfig]) GPG4WIN_KDEPKG([kitemviews], [qtbase qttools]) GPG4WIN_KDEPKG([kitemmodels], [qtbase qttools]) GPG4WIN_KDEPKG([karchive], [qtbase qttools extra-cmake-modules]) GPG4WIN_KDEPKG([kcrash], [kwindowsystem kcoreaddons]) GPG4WIN_KDEPKG([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 fi # Packages for the AppImage if test "$build_appimage" = yes ; then appimage_dup_sources="" APPIMAGE_SPKG([sqlite]) APPIMAGE_SPKG([libgpg-error]) APPIMAGE_SPKG([libassuan], [libgpg-error]) APPIMAGE_SPKG([npth]) APPIMAGE_SPKG([libgcrypt], [libgpg-error]) APPIMAGE_SPKG([libksba], [libgpg-error]) APPIMAGE_SPKG([gnupg], [libgpg-error libassuan npth libgcrypt libksba sqlite]) APPIMAGE_SPKG([pinentry], [qtbase qtx11extras]) APPIMAGE_SPKG([gpgme], [libgpg-error libassuan qtbase]) APPIMAGE_SPKG([paperkey]) # See the script kde-l10n.sh how this package is created. - #APPIMAGE_BPKG_BINSRC([kde-l10n]) + APPIMAGE_BPKG_BINSRC([kde-l10n]) # Qt related stuff. APPIMAGE_SPKG([qtbase]) APPIMAGE_SPKG([qttools], [qtbase]) APPIMAGE_SPKG([qttranslations], [qtsvg qttools qtx11extras]) APPIMAGE_SPKG([qtx11extras], [qtbase]) APPIMAGE_SPKG([qtwayland], [qtbase]) APPIMAGE_SPKG([qtsvg], [qtbase]) APPIMAGE_KDEPKG([extra-cmake-modules], [qttools]) APPIMAGE_KDEPKG([breeze-icons], [extra-cmake-modules qtbase]) APPIMAGE_KDEPKG([kconfig], [qtbase qttools extra-cmake-modules]) APPIMAGE_KDEPKG([ki18n], [qtbase qttools extra-cmake-modules]) APPIMAGE_KDEPKG([kcoreaddons], [qtbase qttools extra-cmake-modules]) APPIMAGE_KDEPKG([kcodecs], [qtbase qttools extra-cmake-modules]) APPIMAGE_KDEPKG([kdbusaddons], [qtbase qttools extra-cmake-modules]) APPIMAGE_KDEPKG([kguiaddons], [qtbase qttools extra-cmake-modules]) APPIMAGE_KDEPKG([kitemviews], [qtbase qttools extra-cmake-modules]) APPIMAGE_KDEPKG([kitemmodels], [qtbase qttools extra-cmake-modules]) APPIMAGE_KDEPKG([karchive], [qtbase qttools extra-cmake-modules]) APPIMAGE_KDEPKG([kwindowsystem], [qtbase qtx11extras extra-cmake-modules]) APPIMAGE_KDEPKG([kcrash], [kwindowsystem kcoreaddons]) APPIMAGE_KDEPKG([kmime], [kcodecs ki18n]) APPIMAGE_KDEPKG([kwidgetsaddons], [kconfig qttools qtbase]) APPIMAGE_KDEPKG([kcompletion], [kwidgetsaddons]) APPIMAGE_KDEPKG([kconfigwidgets], [kwidgetsaddons kguiaddons ki18n kcodecs kconfig]) APPIMAGE_KDEPKG([kiconthemes], [qtsvg kconfigwidgets karchive]) APPIMAGE_KDEPKG([kxmlgui], [kiconthemes kconfigwidgets kitemviews]) - #APPIMAGE_KDEPKG([libkleo], [kmime kwidgetsaddons kwindowsystem kcompletion kconfig gpgme kde-l10n]) - APPIMAGE_KDEPKG([libkleo], [kmime kwidgetsaddons kwindowsystem kcompletion kconfig gpgme]) + # snapshot of libkleo without translations; needs kde-l10n + APPIMAGE_KDEPKG([libkleo], [kmime kwidgetsaddons kwindowsystem kcompletion kconfig gpgme kde-l10n]) + # (release) tarball of libkleo with translations + #APPIMAGE_KDEPKG([libkleo], [kmime kwidgetsaddons kwindowsystem kcompletion kconfig gpgme]) - #APPIMAGE_KDEPKG([kleopatra], [gnupg gpgme breeze-icons kxmlgui libkleo kde-l10n kitemmodels qttranslations kdbusaddons]) - APPIMAGE_KDEPKG([kleopatra], [gnupg gpgme breeze-icons kxmlgui libkleo kitemmodels qttranslations kdbusaddons]) + # snapshot of kleopatra without translations; needs kde-l10n + APPIMAGE_KDEPKG([kleopatra], [gnupg gpgme breeze-icons kxmlgui libkleo kitemmodels qttranslations kdbusaddons kde-l10n]) + # (release) tarball of kleopatra with translations + #APPIMAGE_KDEPKG([kleopatra], [gnupg gpgme breeze-icons kxmlgui libkleo kitemmodels qttranslations kdbusaddons]) APPIMAGE_FINALIZE fi # Throw an error if required tools are missing if test -n "$missing_tools"; then for i in $missing_tools; do AC_MSG_NOTICE([$i is missing]) done AC_MSG_ERROR([[ *** *** Required tools not found. Please consult the above messages *** and install them before running configure again. ***]]) fi # Throw an error if any duplicate source packages have been found if test -n "$gpg4win_dup_sources"; then tmp= for i in $gpg4win_dup_sources; do tmp="$tmp $i" done tmp2=" You might remove them with:" for i in $gpg4win_rm_candidates; do if ! grep -q $(basename $i) packages/packages.current; then tmp2="$tmp2 rm $i" fi done AC_MSG_ERROR([Packages with more that one source version:$tmp$tmp2]) fi if test -n "$appimage_dup_sources"; then tmp= for i in $appimage_dup_sources; do tmp="$tmp $i" done tmp2=" You might remove them with:" for i in $appimage_rm_candidates; do if ! grep -q $(basename $i) packages/packages.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_CONFIG_FILES(src/appimage/Makefile src/appimage/appimage.mk) 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 2a3702e5..2314ff2c 100644 --- a/packages/packages.current +++ b/packages/packages.current @@ -1,670 +1,670 @@ # 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 SHA256 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 (checksum added by ik) # verified: Sig 9001 B85A F9E1 B83D F1BD A942 F5BE 8B26 7C6A 406D file gettext/gettext-0.21.tar.xz chk d20fcbb537e02dcf1383197ba05bd0734ef7bf5db06bdb241eb69b7d16b73192 # # 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 # last-changed: 2015-06-05 # Latest minor release is 2.45 but 2.41 works for us. # 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 # # 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 # # SQLite # server https://www.sqlite.org # last changed: 2021-09-20 # by: ik # verified: SHA1 checksum on https://web.archive.org/web/20190228201545/https://www.sqlite.org/download.html name sqlite-3.27.2.tar.gz file 2019/sqlite-autoconf-3270200.tar.gz chk 50c39e85ea28b5ecfdb3f9e860afe9ba606381e21836b2849efca6a0bfe6ef6e # # 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)" or one of the other # gnupg main contributors. # Server changed from ftp to https by wk 2021-09-22 server https://gnupg.org/ftp/gcrypt # last changed 2021-04-21 # by ah # verified: distsigkey.gpg 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-09-20 # by ik # verified: distsigkey.gpg file npth/npth-1.6.tar.bz2 chk 1393abd9adcf0762d34798dc34fdcf4d0d22a8410721e76f1e3afcd1daa4e2d1 # last changed 2021-09-20 # by ik # verified: distsigkey.gpg file libgcrypt/libgcrypt-1.9.4.tar.bz2 chk ea849c83a72454e3ed4267697e8ca03390aee972ab421e7df69dfe42b65caaf7 # last changed 2021-09-20 # by ik # verified: distsigkey.gpg file libksba/libksba-1.6.0.tar.bz2 chk dad683e6f2d915d880aa4bed5cea9a115690b8935b78a1bbe01669189307a48b # last changed: 2021-09-09 # by: ik # verified: "Werner Koch (dist signing 2020)" (distsigkey.gpg) file gnupg/gnupg-2.3.2.tar.bz2 chk e1d953e0e296072fca284215103ef168885eaac596c4660c5039a36a83e3041b # last changed: 2020-11-17 # by: ah # verified: distsigkey.gpg name gnupg-w32-2.3.1-20210420-bin.exe file binary/gnupg-w32-2.3.1_20210420.exe chk 77cec7f274ee6347642a488efdfa324e8c3ab577286e611c397e69b1b396ab16 name gnupg-w32-2.3.1-20210420-src.tar.xz file binary/gnupg-w32-2.3.1_20210420.tar.xz chk 46f7bf49ac5445370012a3698e048cd994579981df28f80f8b8494cf45869e8d #name gnupg-msi-2.3.1-beta18-20210420-src.tar.xz #file binary/gnupg-w32-2.3.1_20210420.tar.xz #chk e1a2dc705c940938b7bf7a17f521a41b1ef14139acd8860b2fd59aed2750aa3b #name gnupg-msi-2.3.1-20210420-bin.wixlib #file binary/gnupg-w32-2.3.1_20210420.wixlib #chk 133817a4c4d11996956676c5c200222839ee5dc16e9476bd682d4e68b33ef73e # last changed: 2021-04-21 # by: ah file pinentry/pinentry-1.2.0.tar.bz2 chk 10072045a3e043d0581f91cd5676fcac7ffee957a16636adedaa4f583a616470 # last changed 2021-09-20 # by ik # verified: distsigkey.gpg -file gpgme/gpgme-1.16.0.tar.bz2 -chk 6c8cc4aedb10d5d4c905894ba1d850544619ee765606ac43df7405865de29ed0 +#file gpgme/gpgme-1.16.0.tar.bz2 +#chk 6c8cc4aedb10d5d4c905894ba1d850544619ee765606ac43df7405865de29ed0 # 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 # # GpgOL # # by: ah # verified: Sig 5B80 C575 4298 F0CB 55D8 ED6A BCEF 7E29 4B09 2E28 file gpgol/gpgol-2.5.0.tar.bz2 chk 76cb742ae53cf54f2d42d258f6ba657d2b98c752d2c742b1e4f04b26a6baf0df # # GpgEX # # last-changed: 2021-09-22 # by: wk # verified: distsigkey.gpg file gpgex/gpgex-1.0.8.tar.bz2 chk dc044904e0d2dfe28ba1dca9a55b5b4abd306070b9f34e122493b332d15f8b14 # # 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 X11 extras # last changed: 2021-09-20 # by: ik # verified: HTTPS https://download.qt.io/official_releases/qt/5.15/5.15.0/submodules/qtx11extras-everywhere-src-5.15.0.tar.xz.sha256 name qtx11extras-5.15.0.tar.xz file 5.15/5.15.0/submodules/qtx11extras-everywhere-src-5.15.0.tar.xz chk c72b6c188284facddcf82835af048240e721dc8d6d9e8a7bd71d76fd876881a1 # Qt WaylandClient # last changed: 2021-09-21 # by: ik # verified: HTTPS https://download.qt.io/official_releases/qt/5.15/5.15.0/submodules/qtwayland-everywhere-src-5.15.0.tar.xz.sha256 name qtwayland-5.15.0.tar.xz file 5.15/5.15.0/submodules/qtwayland-everywhere-src-5.15.0.tar.xz chk 084133e10bfbd32a28125639660c59975f23457bba6a79b30a25802cec76a9fb # 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 # kdbusaddons # last changed: 2021-09-23 # by: ah # verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) file 5.77/kdbusaddons-5.77.0.tar.xz chk f9c11ebd460ecc198d65b1c3e00dfd4121b6b2ac63dadb14189fee1f605d78bc # 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 server https://download.kde.org/stable/release-service # libkleo # last changed: 2021-09-23 # by: ik # verified: PGP Signed by ./kde-release-key.gpg (created by gen-kde-gears.sh) -file 21.08.1/src/libkleo-21.08.1.tar.xz -chk bf9ff39620e06303fba0d9bdf77c4dce19d52a1bcbf48bb014dc021c325336d8 +#file 21.08.1/src/libkleo-21.08.1.tar.xz +#chk bf9ff39620e06303fba0d9bdf77c4dce19d52a1bcbf48bb014dc021c325336d8 # kleopatra # last changed: 2021-09-23 # by: ik # verified: PGP Signed by ./kde-release-key.gpg (created by gen-kde-gears.sh) -file 21.08.1/src/kleopatra-21.08.1.tar.xz -chk fd5747063654ef5a1a64f33e0344c0e5bacdfa2422c3ffa9155970b6236a32c8 +#file 21.08.1/src/kleopatra-21.08.1.tar.xz +#chk fd5747063654ef5a1a64f33e0344c0e5bacdfa2422c3ffa9155970b6236a32c8 # Snapshots which contain unreleased fixes important for Gpg4win server https://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-beta14.tar.bz2 -#chk 941118668e7ed7bb907c09f7f2b9d803162e1023db713bb306815fe5e8da1168 +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 +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-202109141048-bin.tar.xz chk dc7b20473a5fe314e491e6f7e365a7e9464422b9d039fe9e834aac26353b1d4d file kde-l10n/kde-l10n-202109141048-src.tar.xz chk d68abe3c6f03b5934bee380b88c66bf27c23eed658c8a11fb57357bc85038a92 # 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 # # Snapshots stored on the GnuPG server # server ftp://ftp.gnupg.org/gcrypt/snapshots # kleopatra # last changed: 2021-10-09 # by: wk # verified: Tarball created by wk. -#file kleopatra/kleopatra-202110091719.tar.xz -#chk ff519b18c76bf39b3c3a37e9027a2b3f87e37940e72e40e9d62736b6c2aa5438 +file kleopatra/kleopatra-202110091719.tar.xz +chk ff519b18c76bf39b3c3a37e9027a2b3f87e37940e72e40e9d62736b6c2aa5438 diff --git a/patches-appimage/kleopatra/build-fixes.patch b/patches-appimage/kleopatra/build-fixes.patch new file mode 100755 index 00000000..7e062f7e --- /dev/null +++ b/patches-appimage/kleopatra/build-fixes.patch @@ -0,0 +1,34 @@ +#! /bin/sh +patch -p1 -l -f $* < $0 +exit $? + +diff --git a/src/dialogs/certificatedetailswidget.cpp b/src/dialogs/certificatedetailswidget.cpp +index f7783583..68745236 100644 +--- a/src/dialogs/certificatedetailswidget.cpp ++++ b/src/dialogs/certificatedetailswidget.cpp +@@ -172,11 +172,11 @@ private: + hboxLayout_1->addWidget(trustChainDetailsBtn); + + genRevokeBtn = new QPushButton(i18n("Generate revocation certificate"), parent); +- genRevokeBtn->setToolTip(u"" + ++ genRevokeBtn->setToolTip(QStringLiteral("") + + i18n("A revocation certificate is a file that serves as a \"kill switch\" to publicly " + "declare that a key shall not anymore be used. It is not possible " + "to retract such a revocation certificate once it has been published.") + +- u""); ++ QStringLiteral("")); + + hboxLayout_1->addWidget(genRevokeBtn); + +diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp +index 4a312855..5ae755e1 100644 +--- a/src/mainwindow.cpp ++++ b/src/mainwindow.cpp +@@ -167,7 +167,7 @@ public: + } + void editKeybindings() + { +- KShortcutsDialog::showDialog(q->actionCollection(), KShortcutsEditor::LetterShortcutsAllowed, q); ++ KShortcutsDialog::configure(q->actionCollection(), KShortcutsEditor::LetterShortcutsAllowed); + updateSearchBarClickMessage(); + } diff --git a/patches-appimage/kleopatra/set-cxx-standard.patch b/patches-appimage/kleopatra/set-cxx-standard.patch new file mode 100755 index 00000000..c4318438 --- /dev/null +++ b/patches-appimage/kleopatra/set-cxx-standard.patch @@ -0,0 +1,16 @@ +#! /bin/sh +patch -p1 -l -f $* < $0 +exit $? + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d7d1cfc9..05e750ac 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -168,6 +168,7 @@ if(CMAKE_COMPILER_IS_GNUCXX) + endif() + add_definitions(-DQT_NO_EMIT) + remove_definitions(-DQT_NO_FOREACH) ++set(CMAKE_CXX_STANDARD 17) + + kde_enable_exceptions() + option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF) diff --git a/patches-appimage/libkleo-21.08.1/z-01-use-pre-5.80-ecm_qt_declare_logging_category.patch b/patches-appimage/libkleo-21.08.1/z-01-use-pre-5.80-ecm_qt_declare_logging_category.patch deleted file mode 100755 index f5a0e98b..00000000 --- a/patches-appimage/libkleo-21.08.1/z-01-use-pre-5.80-ecm_qt_declare_logging_category.patch +++ /dev/null @@ -1,41 +0,0 @@ -#! /bin/sh -patch -p1 -l -f $* < $0 -exit $? - -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 806b1bb..496843d 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -51,11 +51,13 @@ target_sources(KF5Libkleo PRIVATE - utils/cryptoconfig.cpp - utils/test.cpp - ) --ecm_qt_declare_logging_category(KF5Libkleo HEADER libkleo_debug.h IDENTIFIER LIBKLEO_LOG CATEGORY_NAME org.kde.pim.libkleo -+ecm_qt_declare_logging_category(libkleo_core_SRCS HEADER libkleo_debug.h IDENTIFIER LIBKLEO_LOG CATEGORY_NAME org.kde.pim.libkleo - DESCRIPTION "libkleo (kleo_core)" - EXPORT LIBKLEO - ) -- -+target_sources(KF5Libkleo PRIVATE -+ ${libkleo_core_SRCS} -+) - - target_sources(KF5Libkleo PRIVATE - ui/dnattributeorderconfigwidget.cpp -@@ -70,12 +72,14 @@ target_sources(KF5Libkleo PRIVATE - ui/editdirectoryservicedialog.cpp - ) - --ecm_qt_declare_logging_category(KF5Libkleo HEADER kleo_ui_debug.h IDENTIFIER KLEO_UI_LOG CATEGORY_NAME org.kde.pim.kleo_ui -+ecm_qt_declare_logging_category(libkleo_ui_SRCS HEADER kleo_ui_debug.h IDENTIFIER KLEO_UI_LOG CATEGORY_NAME org.kde.pim.kleo_ui - DESCRIPTION "libkleo (kleo_ui)" - OLD_CATEGORY_NAMES log_kleo_ui - EXPORT LIBKLEO - ) -- -+target_sources(KF5Libkleo PRIVATE -+ ${libkleo_ui_SRCS} -+) - - target_sources(KF5Libkleo PRIVATE # make this a separate lib. - ui/keylistview.cpp diff --git a/patches-appimage/libkleo-21.08.1/0001-Add-support-for-non-standard-boost-include-directori.patch b/patches-appimage/libkleo/0001-Add-support-for-non-standard-boost-include-directori.patch similarity index 100% rename from patches-appimage/libkleo-21.08.1/0001-Add-support-for-non-standard-boost-include-directori.patch rename to patches-appimage/libkleo/0001-Add-support-for-non-standard-boost-include-directori.patch diff --git a/patches-appimage/libkleo/0001-Revert-Use-more-target-centric-cmake-code.patch b/patches-appimage/libkleo/0001-Revert-Use-more-target-centric-cmake-code.patch new file mode 100755 index 00000000..8a6c3189 --- /dev/null +++ b/patches-appimage/libkleo/0001-Revert-Use-more-target-centric-cmake-code.patch @@ -0,0 +1,100 @@ +#! /bin/sh +patch -p1 -l -f $* < $0 +exit $? + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index a14b52f..e2cc379 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -15,11 +15,9 @@ add_subdirectory( pics ) + if (BUILD_TESTING) + add_subdirectory( tests ) + endif() +-add_library(KF5Libkleo) +-add_library(KF5::Libkleo ALIAS KF5Libkleo) + + ########### next target ############### +-target_sources(KF5Libkleo PRIVATE ++set(libkleo_core_SRCS + kleo/checksumdefinition.cpp + kleo/debug.cpp + kleo/defaultkeyfilter.cpp +@@ -51,13 +49,13 @@ target_sources(KF5Libkleo PRIVATE + utils/cryptoconfig.cpp + utils/test.cpp + ) +-ecm_qt_declare_logging_category(KF5Libkleo HEADER libkleo_debug.h IDENTIFIER LIBKLEO_LOG CATEGORY_NAME org.kde.pim.libkleo ++ecm_qt_declare_logging_category(libkleo_core_SRCS HEADER libkleo_debug.h IDENTIFIER LIBKLEO_LOG CATEGORY_NAME org.kde.pim.libkleo + DESCRIPTION "libkleo (kleo_core)" + EXPORT LIBKLEO + ) + + +-target_sources(KF5Libkleo PRIVATE ++set(libkleo_ui_common_SRCS + ui/dnattributeorderconfigwidget.cpp + ui/kdhorizontalline.cpp + ui/filenamerequester.cpp +@@ -70,14 +68,14 @@ target_sources(KF5Libkleo PRIVATE + ui/editdirectoryservicedialog.cpp + ) + +-ecm_qt_declare_logging_category(KF5Libkleo HEADER kleo_ui_debug.h IDENTIFIER KLEO_UI_LOG CATEGORY_NAME org.kde.pim.kleo_ui ++ecm_qt_declare_logging_category(libkleo_ui_common_SRCS HEADER kleo_ui_debug.h IDENTIFIER KLEO_UI_LOG CATEGORY_NAME org.kde.pim.kleo_ui + DESCRIPTION "libkleo (kleo_ui)" + OLD_CATEGORY_NAMES log_kleo_ui + EXPORT LIBKLEO + ) + + +-target_sources(KF5Libkleo PRIVATE # make this a separate lib. ++set(libkleo_ui_SRCS # make this a separate lib. + ui/keylistview.cpp + ui/keyselectiondialog.cpp + ui/keyrequester.cpp +@@ -86,8 +84,10 @@ target_sources(KF5Libkleo PRIVATE # make this a separate lib. + ui/keyselectioncombo.cpp + ) + ++set(kleo_LIB_SRCS ${libkleo_core_SRCS} ${libkleo_ui_SRCS} ++ ${libkleo_ui_common_SRCS}) + +-target_link_libraries(KF5Libkleo PUBLIC QGpgme Gpgmepp PRIVATE Qt::Widgets ++set(kleo_LIB_LIBS PUBLIC QGpgme Gpgmepp PRIVATE Qt::Widgets + KF5::I18n + KF5::Completion + KF5::ConfigCore +@@ -98,15 +98,19 @@ target_link_libraries(KF5Libkleo PUBLIC QGpgme Gpgmepp PRIVATE Qt::Widgets + + if (KF5PimTextEdit_FOUND) + add_definitions(-DHAVE_PIMTEXTEDIT) +- target_link_libraries(KF5Libkleo PRIVATE KF5::PimTextEdit) ++ set(kleo_LIB_LIBS ${kleo_LIB_LIBS} PRIVATE KF5::PimTextEdit) + endif() + ++add_library(KF5Libkleo ${kleo_LIB_SRCS}) + if (COMPILE_WITH_UNITY_CMAKE_SUPPORT) + set_target_properties(KF5Libkleo PROPERTIES UNITY_BUILD ON) + endif() + generate_export_header(KF5Libkleo BASE_NAME kleo) ++add_library(KF5::Libkleo ALIAS KF5Libkleo) + if(WIN32) +- target_link_libraries(KF5Libkleo ${GPGME_VANILLA_LIBRARIES} ) ++target_link_libraries(KF5Libkleo ${kleo_LIB_LIBS} ${GPGME_VANILLA_LIBRARIES} ) ++else() ++target_link_libraries(KF5Libkleo ${kleo_LIB_LIBS} ) + endif() + + set_target_properties(KF5Libkleo PROPERTIES +@@ -229,9 +233,9 @@ install(FILES + + + if ( WIN32 ) +- install ( FILES libkleopatrarc-win32.desktop DESTINATION ${KDE_INSTALL_CONFDIR} RENAME libkleopatrarc ) ++install ( FILES libkleopatrarc-win32.desktop DESTINATION ${KDE_INSTALL_CONFDIR} RENAME libkleopatrarc ) + else () +- install ( FILES libkleopatrarc.desktop DESTINATION ${KDE_INSTALL_CONFDIR} RENAME libkleopatrarc ) ++install ( FILES libkleopatrarc.desktop DESTINATION ${KDE_INSTALL_CONFDIR} RENAME libkleopatrarc ) + endif () + + if (BUILD_QCH) diff --git a/patches-appimage/libkleo/set-cxx-standard.patch b/patches-appimage/libkleo/set-cxx-standard.patch new file mode 100755 index 00000000..d05da254 --- /dev/null +++ b/patches-appimage/libkleo/set-cxx-standard.patch @@ -0,0 +1,30 @@ +#! /bin/sh +patch -p1 -l -f $* < $0 +exit $? + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index bb34e0d..9faec4f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -73,6 +73,8 @@ add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0) + add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x055600) + remove_definitions(-DQT_NO_FOREACH) + add_definitions(-DQT_NO_EMIT) ++set(CMAKE_CXX_STANDARD 17) ++ + ########### CMake Config Files ########### + set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Libkleo") + +diff --git a/src/ui/keyselectiondialog.cpp b/src/ui/keyselectiondialog.cpp +index 6a2630e..28298d2 100644 +--- a/src/ui/keyselectiondialog.cpp ++++ b/src/ui/keyselectiondialog.cpp +@@ -252,7 +252,7 @@ QString ColumnStrategy::toolTip(const GpgME::Key &key, int) const + QString keyStatusString; + if (!checkKeyUsage(key, mKeyUsage, &keyStatusString)) { + // Show the status in bold if there is a problem +- keyStatusString = QLatin1String("") % keyStatusString % QLatin1String(""); ++ keyStatusString = QLatin1String("") + keyStatusString + QLatin1String(""); + } + + QString html = QStringLiteral("

"); diff --git a/src/appimage/Makefile.am b/src/appimage/Makefile.am index f963e8de..d282699d 100644 --- a/src/appimage/Makefile.am +++ b/src/appimage/Makefile.am @@ -1,196 +1,196 @@ # Makefile.am - Makefile for building AppImage of Kleopatra # Copyright (C) 2005, 2006, 2007, 2008, 2009, 2021 g10 Code GmbH # # Software engineering by Ingo Klöcker # # This file is part of Gpg4win. # # Gpg4win is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # Gpg4win is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # SPDX-License-Identifier: GPL-2.0+ EXTRA_DIST = AppRun root := /build stampdir := $(root)/stamps # Source packages for the AppImage appimage_spkgs = sqlite libgpg-error libassuan npth libgcrypt libksba gnupg \ pinentry gpgme paperkey # Qt packages for the AppImage appimage_qtpkgs = qtbase qttools qtx11extras qtwayland qtsvg qttranslations # KDE packages for the AppImage appimage_kdepkgs = kconfig kwidgetsaddons ki18n extra-cmake-modules \ kcompletion kwindowsystem kcoreaddons libkleo kcodecs \ kmime kconfigwidgets kxmlgui kguiaddons kitemviews \ kiconthemes kleopatra breeze-icons kitemmodels karchive \ kcrash kdbusaddons # Binary packages for the AppImage -#appimage_bpkgs = kde-l10n +appimage_bpkgs = kde-l10n appimage_pkg_gpgme_configure = --enable-languages=cpp,qt \ --disable-gpg-test \ --disable-gpgsm-test # TODO: Disable Qt Sql? # TODO: Disable Qt Testlib? appimage_pkg_qtbase_configure = ../$$$${pkg_version}/configure -opensource \ -confirm-license \ -platform linux-g++ \ -release \ -shared \ -prefix $$$${pkgidir} \ -I '$(idir)/include' \ -L '$(idir)/lib' \ -opengl desktop \ -no-glib \ -accessibility \ -nomake examples \ -nomake tests \ -no-sql-mysql \ -no-sql-sqlite \ -no-sql-odbc \ -no-sql-psql \ -no-sql-tds \ -v \ OPENSSL_INCDIR=/usr/include/openssl11 define appimage_pkg_qtbase_post_install (cd $$$${pkgbdir}; \ make install;) endef appimage_pkg_qttools_configure = \ "$(idir)/bin/qmake" ../$$$${pkg_version} define appimage_pkg_qttools_post_install (cd $$$${pkgbdir}; \ mkdir -p $$$${pkgidir}; \ cp -r bin lib include $$$${pkgidir}) endef appimage_pkg_qtx11extras_configure = \ "$(idir)/bin/qmake" ../$$$${pkg_version} define appimage_pkg_qtx11extras_post_install (cd $$$${pkgbdir}; \ mkdir -p $$$${pkginstallroot}; \ make install INSTALL_ROOT=$$$${pkginstallroot}; \ mkdir -p $$$${pkgidir}; \ mv $$$${pkgbladir}/* $$$${pkgidir}; \ rm -rf $$$${pkginstallroot};) endef appimage_pkg_qtwayland_configure = \ "$(idir)/bin/qmake" ../$$$${pkg_version} define appimage_pkg_qtwayland_post_install (cd $$$${pkgbdir}; \ mkdir -p $$$${pkginstallroot}; \ make install INSTALL_ROOT=$$$${pkginstallroot}; \ mkdir -p $$$${pkgidir}; \ mv $$$${pkgbladir}/* $$$${pkgidir}; \ rm -rf $$$${pkginstallroot};) endef appimage_pkg_qtsvg_configure = \ "$(idir)/bin/qmake" ../$$$${pkg_version} # XXX Adding the qtconf after qtsvg is a weird hack # because somhow (yay qmake) zlib is not linked if # the qt conf exists before that. The qt conf is # needed for qttranslations to find the correct path # of the translation tools. define appimage_pkg_qtsvg_post_install (cd $$$${pkgbdir}; \ mkdir -p $$$${pkgidir}; \ cp -r lib include plugins $$$${pkgidir}; \ mkdir -p $$$${pkgidir}/bin; \ echo "[Paths]" > $$$${pkgidir}/bin/qt.conf; \ echo "Prefix = .." >> $$$${pkgidir}/bin/qt.conf) endef appimage_pkg_qttranslations_configure = \ "$(idir)/bin/qmake" ../$$$${pkg_version} define appimage_pkg_qttranslations_post_install ( rm -rf $$$${pkgidir}/translations; \ mkdir -p $$$${pkgidir}; \ cp -r $$$${pkgbdir}/translations $$$${pkgidir}/translations;) endef # do not create the huge icon resource files appimage_pkg_breeze_icons_configure = -DBINARY_ICONS_RESOURCE=OFF appimage_pkg_kcompletion_configure = \ -DBUILD_DESIGNERPLUGIN=OFF appimage_pkg_kconfigwidgets_configure = \ -DBUILD_DESIGNERPLUGIN=OFF appimage_pkg_ki18n_configure = -DBUILD_WITH_QML=OFF appimage_pkg_kiconthemes_configure = \ -DBUILD_DESIGNERPLUGIN=OFF appimage_pkg_kitemviews_configure = \ -DBUILD_DESIGNERPLUGIN=OFF appimage_pkg_kwidgetsaddons_configure = \ -DBUILD_DESIGNERPLUGIN=OFF # FIXME: Uses spaces in distribution text appimage_pkg_kxmlgui_configure = \ -DBUILD_DESIGNERPLUGIN=OFF \ -DFORCE_DISABLE_KGLOBALACCEL=ON \ -DXMLGUI_DISTRIBUTION_TEXT=g10_Code_GmbH_AppImage appimage_pkg_libkleo_configure = \ -DBOOST_INCLUDEDIR=/usr/include/boost169 \ -DBOOST_LIBRARYDIR=/usr/lib64/boost169 appimage_pkg_kleopatra_configure = \ -DBOOST_INCLUDEDIR=/usr/include/boost169 \ -DBOOST_LIBRARYDIR=/usr/lib64/boost169 \ -DDISABLE_KWATCHGNUPG=ON \ -DRELEASE_SERVICE_VERSION=AppImage-$(VERSION) ######################################################################## # Now do the bunch of the work. This is a bunch of dirty magic to # integrate our special makefile into automake, while not actually # including it (make should include it). This is in turn necessary # because automake can't deal with the elegant magic in the actual # Makefile. define INCLUDE_BY_MAKE include $(1) endef $(eval $(call INCLUDE_BY_MAKE,appimage.mk)) clean-local: clean-appimage license.blurb: $(top_srcdir)/doc/license-page $(top_srcdir)/doc/GPLv3 cat $(top_srcdir)/doc/license-page $(top_srcdir)/doc/GPLv3 >$@ all-local: $(stampdir)/stamp-final @echo "###################################################" @echo " AppDir prepared successfully for the AppImage!" @echo " Now run linuxdeploy to create the AppImage." @echo "###################################################" diff --git a/src/appimage/appimage.mk.in b/src/appimage/appimage.mk.in index e1b8e67a..569b6acf 100644 --- a/src/appimage/appimage.mk.in +++ b/src/appimage/appimage.mk.in @@ -1,490 +1,477 @@ # appimage.m4.in - Makefile for building AppImage of Kleopatra. -*- makefile -*- # Copyright (C) 2005, 2009, 2021 g10 Code GmbH # # Software engineering by Ingo Klöcker # # This file is part of Gpg4win. # # Gpg4win is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # Gpg4win is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # SPDX-License-Identifier: GPL-2.0+ # No servicable parts below this line :) # These paths must be absolute, as we switch directories pretty often. logdir := $(root)/logs bdir := $(root)/build appdir := $(root)/AppDir idir := $(root)/install ipdir := $(root)/install/pkgs tsdir := $(shell pwd)/${top_srcdir} pdir := $(shell pwd)/${top_srcdir}/patches-appimage rsyncfilterdir := $(tsdir)/src/appimage/rsync-filters # We collect the names of all pkg files used. pkg_files = # The build area is our scratch area, where we unpack, build and # install the packages. $(stampdir)/stamp-directories: $(MKDIR) -p $(root) $(MKDIR) -p $(stampdir) $(MKDIR) -p $(logdir) $(MKDIR) -p $(bdir) $(MKDIR) -p $(idir) $(MKDIR) -p $(ipdir) $(MKDIR) -p $(appdir)/usr touch $(bdir)/versioninfo.txt touch $(stampdir)/stamp-directories # Frob the name $1 by converting all '-' and '+' characters to '_'. define FROB_macro $(subst +,_,$(subst -,_,$(1))) endef # Get the variable $(1) (which may contain '-' and '+' characters). define GETVAR $($(call FROB_macro,$(1))) endef # Set a couple of common variables. define SETVARS set -e; \ set -o pipefail; \ pkg="$(call GETVAR,appimage_pkg_$(1))"; \ pkg_version="$(1)-$(call GETVAR,appimage_pkg_$(1)_version)"; \ pkglogdir="$(logdir)/$$$${pkg_version}"; \ pkgsdir="$(bdir)/$$$${pkg_version}"; \ pkgbdir="$(bdir)/$$$${pkg_version}-build"; \ pkgpdir="$(pdir)/$$$${pkg_version}"; \ pkgpbdir="$(pdir)/$(1)"; \ pkgidir="$(ipdir)/$$$${pkg_version}"; \ pkginstallroot="/tmp/$$$${pkg_version}"; \ pkgbladir="/tmp/$$$${pkg_version}/$(idir)"; \ - pkg_dev="$(call GETVAR,appimage_pkg_$(1)_dev)"; \ - pkg_version_dev="$(1)-dev-$(call GETVAR,appimage_pkg_$(1)_version)"; \ - pkgidir_dev="$(ipdir)/$$$${pkg_version_dev}"; \ pkgcfg="$(call GETVAR,appimage_pkg_$(1)_configure)"; \ pkgextracflags="$(call GETVAR,appimage_pkg_$(1)_extracflags)"; \ pkgmkargs="$(call GETVAR,appimage_pkg_$(1)_make_args)"; \ pkgmkargs_inst="$(call GETVAR,appimage_pkg_$(1)_make_args_inst)";\ pkgmkdir="$(call GETVAR,appimage_pkg_$(1)_make_dir)"; \ pkgmkdir_inst="$(call GETVAR,appimage_pkg_$(1)_make_dir)"; \ pkgrsyncfilter="$(rsyncfilterdir)/$(1).rsync-filter"; \ export PKG_CONFIG_PATH="$(idir)/lib/pkgconfig"; \ export PATH="$(idir)/bin:$${PATH}" endef # Support macro. Unpack the archive $(1). define DEFLATE_macro rm -rf $$$${pkgsdir}; \ case "$(1)" in \ */qtbase*.*.tar.xz) \ $(TAR) -xJ --transform='s,^qtbase-everywhere-src,qtbase,' -f "$(1)" ;; \ */qttools*.*.tar.xz) \ $(TAR) -xJ --transform='s,^qttools-everywhere-src,qttools,' -f "$(1)" ;; \ */qtx11extras*.*.tar.xz) \ $(TAR) -xJ --transform='s,^qtx11extras-everywhere-src,qtx11extras,' -f "$(1)" ;; \ */qtwayland*.*.tar.xz) \ $(TAR) -xJ --transform='s,^qtwayland-everywhere-src,qtwayland,' -f "$(1)" ;; \ */qtsvg*.*.tar.xz) \ $(TAR) -xJ --transform='s,^qtsvg-everywhere-src,qtsvg,' -f "$(1)" ;; \ */qttranslations*.*.tar.xz) \ $(TAR) -xJ --transform='s,^qttranslations-everywhere-src,qttranslations,' -f "$(1)" ;; \ */sqlite*.*.tar.gz) \ $(TAR) -xz --transform='s,^sqlite-autoconf-3270200,sqlite-3.27.2,' -f "$(1)" ;; \ *.tar.gz | *.tgz) \ $(TAR) xzf "$(1)" ;; \ *.tar.bz2 | *.tbz2 | *.tbz) \ $(TAR) xjf "$(1)" ;; \ *.tar.xz ) \ $(TAR) xJf "$(1)" ;; \ *.exe ) \ cp "$(1)" . ;; \ *.zip) \ $(UNZIP) -o "$(1)" ;; \ esac endef # Support macro. Strip all exe files below $(1). define STRIP_macro if test -z '$(DEBUG)'; then \ (cd $(1); \ for f in `find . -name \*.exe -o -name \*.dll`; do \ echo Calling $(STRIP) "$$$${pkg_version}/$$$${f}"; \ $(STRIP) "$$$${f}"; done); \ fi endef define GETDEPS $(addprefix $(stampdir)/stamp-final-, $(call GETVAR,appimage_pkg_$(1)_deps)) endef # Template for source packages. define SPKG_template_ pkg_files += $(call GETVAR,appimage_pkg_$(1)) $(stampdir)/stamp-$(1)-00-unpack: $(stampdir)/stamp-directories $(call GETDEPS,$(1)) (cd $(bdir); \ $(call SETVARS,$(1)); \ $(call DEFLATE_macro,$$$${pkg})) touch $(stampdir)/stamp-$(1)-00-unpack $(stampdir)/stamp-$(1)-01-patch: $(stampdir)/stamp-$(1)-00-unpack (shopt -s nullglob; \ $(call SETVARS,$(1)); \ for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \ (cd "$$$${pkgsdir}"; chmod +x "$$$${pfile}"; "$$$${pfile}") \ done) touch $(stampdir)/stamp-$(1)-01-patch $(stampdir)/stamp-$(1)-02-configure: $(stampdir)/stamp-$(1)-01-patch ($(call SETVARS,$(1)); \ set -x; \ mkdir -p "$$$${pkglogdir}"; \ mkdir -p "$$$${pkgbdir}"; \ cd "$$$${pkgbdir}"; \ eval "../$$$${pkg_version}/configure" \ --prefix="$$$${pkgidir}" \ $$$${pkgcfg} \ CFLAGS=\"-mms-bitfields $$$${pkgextracflags}\" | \ tee "$$$${pkglogdir}/configure.log"; \ shopt -s nullglob; \ for pfile in "$$$${pkgpbdir}"/*.postcfg \ "$$$${pkgpdir}"/*.postcfg ; do \ (cd "$$$${pkgsdir}"; "$$$${pfile}") \ done; \ for pfile in "$$$${pkgpbdir}"/*.postcfg-build \ "$$$${pkgpdir}"/*.postcfg-build ; do \ (cd "$$$${pkgbdir}"; "$$$${pfile}") \ done) touch $(stampdir)/stamp-$(1)-02-configure $(stampdir)/stamp-$(1)-03-make: $(stampdir)/stamp-$(1)-02-configure ($(call SETVARS,$(1)); \ cd "$$$${pkgbdir}"; \ test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \ $(MAKE) $(AM_MAKEFLAGS) $(GPG4WIN_PARALLEL) $$$${pkgmkargs}) touch $(stampdir)/stamp-$(1)-03-make # Note that post_install must come last because it may be empty and # "; ;" is a syntax error. $(stampdir)/stamp-$(1)-04-install: $(stampdir)/stamp-$(1)-03-make ($(call SETVARS,$(1)); \ cd "$$$${pkgbdir}"; \ cd "$$$${pkgmkdir_inst}"; \ $(MAKE) $(AM_MAKEFLAGS) $$$${pkgmkargs_inst} install; \ $(call STRIP_macro,"$$$${pkgidir}"); \ rm -f "$$$${pkgidir}/share/info/dir"; \ $(call appimage_pkg_$(call FROB_macro,$(1))_post_install)) touch $(stampdir)/stamp-$(1)-04-install $(stampdir)/stamp-$(1)-05-rsync: $(stampdir)/stamp-$(1)-04-install ($(call SETVARS,$(1)); \ set -x; \ $(RSYNC) -a --link-dest="$$$${pkgidir}/" "$$$${pkgidir}/" "$(idir)/" ) touch $(stampdir)/stamp-$(1)-05-rsync $(stampdir)/stamp-$(1)-06-copy-to-appdir: $(stampdir)/stamp-$(1)-05-rsync ($(call SETVARS,$(1)); \ set -x; \ if test -f "$$$${pkgrsyncfilter}"; then \ cp "$$$${pkgrsyncfilter}" "$$$${pkgidir}/.rsync-filter"; \ $(RSYNC) -av -FF --omit-dir-times --link-dest="$$$${pkgidir}/" "$$$${pkgidir}/" "$(appdir)/usr/"; \ fi ) touch $(stampdir)/stamp-$(1)-06-copy-to-appdir $(stampdir)/stamp-final-$(1): $(stampdir)/stamp-$(1)-06-copy-to-appdir touch $(stampdir)/stamp-final-$(1) .PHONY : clean-$(1) clean-$(1): ($(call SETVARS,$(1)); \ (cd $(ipdir) && \ (rm -fR "$$$${pkg_version}")); \ rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}") rm -f $(stampdir)/stamp-final-$(1) $(stampdir)/stamp-$(1)-* endef define SPKG_template $(if $(filter-out no, $(call GETVAR,appimage_pkg_$(1))), $(call SPKG_template_,$1)) endef # Template for binary packages. define BPKG_template_ pkg_files += $(call GETVAR,appimage_pkg_$(1)) -pkg_files += $(call GETVAR,appimage_pkg_$(1)_dev) $(stampdir)/stamp-$(1)-00-install: $(stampdir)/stamp-directories $(call GETDEPS,$(1)) ($(call SETVARS,$(1)); \ $(MKDIR) "$$$${pkgidir}"; \ cd $$$${pkgidir}; \ $(call DEFLATE_macro,$$$${pkg})) touch $(stampdir)/stamp-$(1)-00-install -# Note that post_install must come last because it may be empty and -# "; ;" is a syntax error. -$(stampdir)/stamp-$(1)-01-install-dev: $(stampdir)/stamp-$(1)-00-install - ($(call SETVARS,$(1)); \ - $(MKDIR) "$$$${pkgidir_dev}"; \ - (cd $$$${pkgidir_dev}; \ - $(call DEFLATE_macro,$$$${pkg_dev})); \ - $(call appimage_pkg_$(call FROB_macro,$(1))_post_install)) - touch $(stampdir)/stamp-$(1)-01-install-dev - -$(stampdir)/stamp-$(1)-02-stow: $(stampdir)/stamp-$(1)-01-install-dev +$(stampdir)/stamp-$(1)-01-rsync: $(stampdir)/stamp-$(1)-00-install ($(call SETVARS,$(1)); \ - cd $(ipdir); \ - $(STOW) "$$$${pkg_version}") - touch $(stampdir)/stamp-$(1)-02-stow + set -x; \ + $(RSYNC) -a --link-dest="$$$${pkgidir}/" "$$$${pkgidir}/" "$(idir)/" ) + touch $(stampdir)/stamp-$(1)-01-rsync -$(stampdir)/stamp-$(1)-03-stow-dev: $(stampdir)/stamp-$(1)-02-stow +$(stampdir)/stamp-$(1)-02-copy-to-appdir: $(stampdir)/stamp-$(1)-01-rsync ($(call SETVARS,$(1)); \ - cd $(ipdir); \ - $(STOW) "$$$${pkg_version_dev}") - touch $(stampdir)/stamp-$(1)-03-stow-dev + set -x; \ + if test -f "$$$${pkgrsyncfilter}"; then \ + cp "$$$${pkgrsyncfilter}" "$$$${pkgidir}/.rsync-filter"; \ + $(RSYNC) -av -FF --omit-dir-times --link-dest="$$$${pkgidir}/" "$$$${pkgidir}/" "$(appdir)/usr/"; \ + fi ) + touch $(stampdir)/stamp-$(1)-02-copy-to-appdir -$(stampdir)/stamp-final-$(1): $(stampdir)/stamp-$(1)-03-stow-dev +$(stampdir)/stamp-final-$(1): $(stampdir)/stamp-$(1)-02-copy-to-appdir touch $(stampdir)/stamp-final-$(1) .PHONY : clean-$(1) clean-$(1): ($(call SETVARS,$(1)); \ cd $(ipdir) && \ - ($(STOW) -D "$$$${pkg_version}" || true; \ - $(STOW) -D "$$$${pkg_version_dev}" || true; \ - rm -fR "$$$${pkg_version}" "$$$${pkg_version_dev}")) + (rm -fR "$$$${pkg_version}")) rm -f $(stampdir)/stamp-final-$(1) $(stampdir)/stamp-$(1)-* endef define BPKG_template $(if $(filter-out no, $(call GETVAR,appimage_pkg_$(1))), $(call BPKG_template_,$1)) endef # Template for Qt packages. define QTPKG_template_ pkg_files += $(call GETVAR,appimage_pkg_$(1)) $(stampdir)/stamp-$(1)-00-unpack: $(stampdir)/stamp-directories $(call GETDEPS,$(1)) (cd $(bdir); \ $(call SETVARS,$(1)); \ $(call DEFLATE_macro,$$$${pkg})) touch $(stampdir)/stamp-$(1)-00-unpack $(stampdir)/stamp-$(1)-01-patch: $(stampdir)/stamp-$(1)-00-unpack (shopt -s nullglob; \ $(call SETVARS,$(1)); \ for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \ (cd "$$$${pkgsdir}"; chmod +x "$$$${pfile}"; "$$$${pfile}") \ done) touch $(stampdir)/stamp-$(1)-01-patch $(stampdir)/stamp-$(1)-02-configure: $(stampdir)/stamp-$(1)-01-patch ($(call SETVARS,$(1)); \ set -x; \ mkdir -p "$$$${pkglogdir}"; \ mkdir -p "$$$${pkgbdir}"; \ cd "$$$${pkgbdir}"; \ $$$${pkgcfg} | \ tee "$$$${pkglogdir}/configure.log") touch $(stampdir)/stamp-$(1)-02-configure $(stampdir)/stamp-$(1)-03-make: $(stampdir)/stamp-$(1)-02-configure ($(call SETVARS,$(1)); \ cd "$$$${pkgbdir}"; \ test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \ export LD_LIBRARY_PATH=$(idir)/lib; \ $(MAKE) $(AM_MAKEFLAGS) $(GPG4WIN_PARALLEL) $$$${pkgmkargs}) touch $(stampdir)/stamp-$(1)-03-make # Note that post_install must come last because it may be empty and # "; ;" is a syntax error. $(stampdir)/stamp-$(1)-04-install: $(stampdir)/stamp-$(1)-03-make ($(call SETVARS,$(1)); \ set -x; \ $(call appimage_pkg_$(call FROB_macro,$(1))_post_install)) touch $(stampdir)/stamp-$(1)-04-install $(stampdir)/stamp-$(1)-05-rsync: $(stampdir)/stamp-$(1)-04-install ($(call SETVARS,$(1)); \ set -x; \ $(RSYNC) -a --link-dest="$$$${pkgidir}/" "$$$${pkgidir}/" "$(idir)/" ) touch $(stampdir)/stamp-$(1)-05-rsync $(stampdir)/stamp-$(1)-06-copy-to-appdir: $(stampdir)/stamp-$(1)-05-rsync ($(call SETVARS,$(1)); \ set -x; \ if test -f "$$$${pkgrsyncfilter}"; then \ cp "$$$${pkgrsyncfilter}" "$$$${pkgidir}/.rsync-filter"; \ $(RSYNC) -av -FF --omit-dir-times --link-dest="$$$${pkgidir}/" "$$$${pkgidir}/" "$(appdir)/usr/"; \ fi ) touch $(stampdir)/stamp-$(1)-06-copy-to-appdir $(stampdir)/stamp-final-$(1): $(stampdir)/stamp-$(1)-06-copy-to-appdir touch $(stampdir)/stamp-final-$(1) .PHONY : clean-$(1) clean-$(1): ($(call SETVARS,$(1)); \ (cd $(ipdir) && \ (rm -fR "$$$${pkg_version}")); \ rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}") rm -f $(stampdir)/stamp-final-$(1) $(stampdir)/stamp-$(1)-* endef define QTPKG_template $(if $(filter-out no, $(call GETVAR,appimage_pkg_$(1))), $(call QTPKG_template_,$1)) endef # Template for KDE packages. define KDEPKG_template_ pkg_files += $(call GETVAR,appimage_pkg_$(1)) $(stampdir)/stamp-$(1)-00-unpack: $(stampdir)/stamp-directories $(call GETDEPS,$(1)) (cd $(bdir); \ $(call SETVARS,$(1)); \ $(call DEFLATE_macro,$$$${pkg})) touch $(stampdir)/stamp-$(1)-00-unpack $(stampdir)/stamp-$(1)-01-patch: $(stampdir)/stamp-$(1)-00-unpack (shopt -s nullglob; \ $(call SETVARS,$(1)); \ cd "$$$${pkgsdir}"; \ sed -i 's/set(KF5_MIN_VERSION.*)/set(KF5_MIN_VERSION "5.77.0")/' CMakeLists.txt; \ sed -i 's/set(KF5_VERSION.*)/set(KF5_VERSION "5.77.0")/' CMakeLists.txt; \ sed -i 's/set(KMIME_VERSION.*)/set(KMIME_VERSION "5.2.40")/' CMakeLists.txt; \ sed -i 's/set(LIBKLEO_VERSION.*)/set(LIBKLEO_VERSION "5.4.40")/' CMakeLists.txt; \ sed -i 's/set(QT_REQUIRED_VERSION.*)/set(QT_REQUIRED_VERSION "5.15.0")/' CMakeLists.txt; \ for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \ (cd "$$$${pkgsdir}"; chmod +x "$$$${pfile}"; "$$$${pfile}") \ done) touch $(stampdir)/stamp-$(1)-01-patch $(stampdir)/stamp-$(1)-02-configure: $(stampdir)/stamp-$(1)-01-patch (set -x; \ $(call SETVARS,$(1)); \ mkdir -p "$$$${pkglogdir}"; \ mkdir -p "$$$${pkgbdir}"; \ cd "$$$${pkgbdir}"; \ $(CMAKE) \ -DCMAKE_INSTALL_PREFIX="$$$${pkgidir}" \ -DCMAKE_PREFIX_PATH="$$$${pkgidir}" \ -DKDE_INSTALL_DATADIR="$$$${pkgidir}/share" \ -DBUILD_TESTING=False \ $$$${pkgcfg} $$$${pkgextracflags} "../$$$${pkg_version}" | \ tee "$$$${pkglogdir}/configure.log") touch $(stampdir)/stamp-$(1)-02-configure $(stampdir)/stamp-$(1)-03-make: $(stampdir)/stamp-$(1)-02-configure ($(call SETVARS,$(1)); \ cd "$$$${pkgbdir}"; \ test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \ export LD_LIBRARY_PATH=$(idir)/lib; \ $(MAKE) $(AM_MAKEFLAGS) $(GPG4WIN_PARALLEL) $$$${pkgmkargs}) touch $(stampdir)/stamp-$(1)-03-make # Note that post_install must come last because it may be empty and # "; ;" is a syntax error. $(stampdir)/stamp-$(1)-04-install: $(stampdir)/stamp-$(1)-03-make ($(call SETVARS,$(1)); \ cd "$$$${pkgbdir}"; \ cd "$$$${pkgmkdir_inst}"; \ $(MAKE) $(AM_MAKEFLAGS) $$$${pkgmkargs_inst} install; \ $(call STRIP_macro,"$$$${pkgidir}"); \ $(call appimage_pkg_$(call FROB_macro,$(1))_post_install)) touch $(stampdir)/stamp-$(1)-04-install $(stampdir)/stamp-$(1)-05-rsync: $(stampdir)/stamp-$(1)-04-install ($(call SETVARS,$(1)); \ set -x; \ $(RSYNC) -a --link-dest="$$$${pkgidir}/" "$$$${pkgidir}/" "$(idir)/" ) touch $(stampdir)/stamp-$(1)-05-rsync $(stampdir)/stamp-$(1)-06-copy-to-appdir: $(stampdir)/stamp-$(1)-05-rsync ($(call SETVARS,$(1)); \ set -x; \ if test -f "$$$${pkgrsyncfilter}"; then \ cp "$$$${pkgrsyncfilter}" "$$$${pkgidir}/.rsync-filter"; \ $(RSYNC) -av -FF --omit-dir-times --link-dest="$$$${pkgidir}/" "$$$${pkgidir}/" "$(appdir)/usr/"; \ fi ) touch $(stampdir)/stamp-$(1)-06-copy-to-appdir $(stampdir)/stamp-final-$(1): $(stampdir)/stamp-$(1)-06-copy-to-appdir touch $(stampdir)/stamp-final-$(1) .PHONY : clean-$(1) clean-$(1): ($(call SETVARS,$(1)); \ (cd $(ipdir) && \ (rm -fR "$$$${pkg_version}")); \ rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}") rm -f $(stampdir)/stamp-final-$(1) $(stampdir)/stamp-$(1)-* endef define KDEPKG_template $(if $(filter-out no, $(call GETVAR,appimage_pkg_$(1))), $(call KDEPKG_template_,$1)) endef # Insert the template for each source package. $(foreach spkg, $(appimage_spkgs), $(eval $(call SPKG_template,$(spkg)))) # Insert the template for each binary package. $(foreach bpkg, $(appimage_bpkgs), $(eval $(call BPKG_template,$(bpkg)))) # Insert the template for Qt packages. $(foreach qtpkg, $(appimage_qtpkgs), $(eval $(call QTPKG_template,$(qtpkg)))) # Insert the template for KDE packages. $(foreach kdepkg, $(appimage_kdepkgs), $(eval $(call KDEPKG_template,$(kdepkg)))) $(stampdir)/stamp-final: $(stampdir)/stamp-directories $(stampdir)/stamp-final: $(addprefix $(stampdir)/stamp-final-,$(appimage_build_list)) touch $(stampdir)/stamp-final $(bdir)/versioninfo.txt: $(stampdir)/stamp-final touch $(bdir)/versioninfo.txt all-appimage: $(stampdir)/stamp-final # Just to check if we catched all stamps. clean-stamps: $(RM) -fR $(stampdir) clean-appimage: $(RM) -fR $(bdir) $(idir) $(stampdir) $(logdir) $(appdir) .PHONY : all-appimage clean-stamps clean-appimage # @emacs_local_vars_begin@ # @emacs_local_vars_read_only@ # @emacs_local_vars_end@ diff --git a/src/appimage/rsync-filters/kde-l10n.rsync-filter b/src/appimage/rsync-filters/kde-l10n.rsync-filter new file mode 100644 index 00000000..8ad7479c --- /dev/null +++ b/src/appimage/rsync-filters/kde-l10n.rsync-filter @@ -0,0 +1,2 @@ ++ /share/ +- kwatchgnupg.mo