From 8b5c0b991d345c720e4c36441cf53151c23138cf Mon Sep 17 00:00:00 2001 From: Patrick J Volkerding Date: Thu, 25 Jul 2019 22:48:09 +0000 Subject: Thu Jul 25 22:48:09 UTC 2019 l/SDL2-2.0.10-x86_64-1.txz: Upgraded. l/gmime-3.2.3-x86_64-1.txz: Upgraded. Shared library .so-version bump. n/NetworkManager-1.18.2-x86_64-1.txz: Upgraded. n/dhcpcd-8.0.1-x86_64-1.txz: Upgraded. n/openldap-client-2.4.48-x86_64-1.txz: Upgraded. xap/pan-0.145-x86_64-2.txz: Rebuilt. Recompiled against gmime-3.2.3. --- source/a/eudev/eudev.SlackBuild | 2 +- source/d/llvm/slack-desc | 4 +- source/l/SDL2/SDL2.SDL_syswm.h.diff | 42 ---- source/l/SDL2/SDL2.SlackBuild | 7 +- source/l/SDL2/SDL2.periodic.magnitude.patch | 20 -- source/l/glibc/glibc.SlackBuild | 4 +- source/l/gmime/gmime.SlackBuild | 2 +- .../patches/0000-slackware-use-fqdn.diff | 31 --- source/n/dhcpcd/dhcpcd-7.2.3.tar.xz.distinfo | 1 - source/n/dhcpcd/dhcpcd-8.0.1.tar.xz.distinfo | 1 + .../n/openldap-client/openldap-client.SlackBuild | 6 +- source/n/openldap-client/slack-desc | 2 +- source/xap/electricsheep/electricsheep.SlackBuild | 4 +- source/xap/pan/pan.SlackBuild | 12 +- ...-b9a4154942c932a493736d2292bbae16384e35df.patch | 25 +++ ...-e5be4d4a1d9d08796c1b5a5c763379383b8c119a.patch | 215 +++++++++++++++++++++ ...-50f6c43a698dcc0ba6b490c086a73eeedbdd8a80.patch | 31 +++ ...-ddcd5761075a6fb3ef7b768f004fa1e6663cb65e.patch | 33 ++++ ...-476b5a62fcda711ce2d7412a310b8182cca6940e.patch | 21 ++ 19 files changed, 352 insertions(+), 111 deletions(-) delete mode 100644 source/l/SDL2/SDL2.SDL_syswm.h.diff delete mode 100644 source/l/SDL2/SDL2.periodic.magnitude.patch delete mode 100644 source/n/NetworkManager/patches/0000-slackware-use-fqdn.diff delete mode 100644 source/n/dhcpcd/dhcpcd-7.2.3.tar.xz.distinfo create mode 100644 source/n/dhcpcd/dhcpcd-8.0.1.tar.xz.distinfo create mode 100644 source/xap/pan/patches/0000-b9a4154942c932a493736d2292bbae16384e35df.patch create mode 100644 source/xap/pan/patches/0001-e5be4d4a1d9d08796c1b5a5c763379383b8c119a.patch create mode 100644 source/xap/pan/patches/0002-50f6c43a698dcc0ba6b490c086a73eeedbdd8a80.patch create mode 100644 source/xap/pan/patches/0003-ddcd5761075a6fb3ef7b768f004fa1e6663cb65e.patch create mode 100644 source/xap/pan/patches/0004-476b5a62fcda711ce2d7412a310b8182cca6940e.patch (limited to 'source') diff --git a/source/a/eudev/eudev.SlackBuild b/source/a/eudev/eudev.SlackBuild index f8ea05d98..90e1a0696 100755 --- a/source/a/eudev/eudev.SlackBuild +++ b/source/a/eudev/eudev.SlackBuild @@ -26,7 +26,7 @@ PKGNAM=eudev VERSION=${VERSION:-$(echo eudev-*.tar.* | cut -d - -f 2 | rev | cut -f 3- -d . | rev)} BUILD=${BUILD:-1} -NUMJOBS=${NUMJOBS:-" -j7 "} +NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/d/llvm/slack-desc b/source/d/llvm/slack-desc index 76280c242..32ed62bf0 100644 --- a/source/d/llvm/slack-desc +++ b/source/d/llvm/slack-desc @@ -8,8 +8,8 @@ |-----handy-ruler------------------------------------------------------| llvm: llvm (LLVM compiler toolkit) llvm: -llvm: Low Level Virtual Machine is a toolkit for the construction of highly -llvm: optimized compilers, optimizers, and runtime environments. +llvm: LLVM is a toolkit for the construction of highly optimized compilers, +llvm: optimizers, and runtime environments. llvm: llvm: This package also includes the clang frontend for the C family of llvm: languages: C, C++, Objective-C, and Objective-C++ diff --git a/source/l/SDL2/SDL2.SDL_syswm.h.diff b/source/l/SDL2/SDL2.SDL_syswm.h.diff deleted file mode 100644 index 4f743fc47..000000000 --- a/source/l/SDL2/SDL2.SDL_syswm.h.diff +++ /dev/null @@ -1,42 +0,0 @@ - -# HG changeset patch -# User Ozkan Sezer -# Date 1541526624 -10800 -# Node ID 244cdac21bcdd0e4a6152ad7c28756bcb39c4aa9 -# Parent 50b071ef40ab427420dbe91212473e88c7d42155 -fix bug #4362 - SDL_syswm.h with SDL_PROTOTYPES_ONLY broken in C++ mode - -diff -r 50b071ef40ab -r 244cdac21bcd include/SDL_syswm.h ---- a/include/SDL_syswm.h Sun Nov 04 21:11:07 2018 -0500 -+++ b/include/SDL_syswm.h Tue Nov 06 20:50:24 2018 +0300 -@@ -41,9 +41,9 @@ - * an unhandled window event occurs. This event is ignored by default, but - * you can enable it with SDL_EventState(). - */ --#ifdef SDL_PROTOTYPES_ONLY - struct SDL_SysWMinfo; --#else -+ -+#if !defined(SDL_PROTOTYPES_ONLY) - - #if defined(SDL_VIDEO_DRIVER_WINDOWS) - #ifndef WIN32_LEAN_AND_MEAN -@@ -103,6 +103,8 @@ - #if defined(SDL_VIDEO_DRIVER_VIVANTE) - #include "SDL_egl.h" - #endif -+#endif /* SDL_PROTOTYPES_ONLY */ -+ - - #include "begin_code.h" - /* Set up for C function definitions, even when using C++ */ -@@ -110,6 +112,7 @@ - extern "C" { - #endif - -+#if !defined(SDL_PROTOTYPES_ONLY) - /** - * These are the various supported windowing subsystems - */ - - diff --git a/source/l/SDL2/SDL2.SlackBuild b/source/l/SDL2/SDL2.SlackBuild index 0599ad64a..5ec36ad9e 100755 --- a/source/l/SDL2/SDL2.SlackBuild +++ b/source/l/SDL2/SDL2.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2017, 2018 Patrick J. Volkerding, Sebeka, Minnesota, USA +# Copyright 2017, 2018, 2019 Patrick J. Volkerding, Sebeka, Minnesota, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=SDL2 VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-4} +BUILD=${BUILD:-1} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -78,9 +78,6 @@ rm -rf $PKGNAM-$VERSION tar xvf $CWD/$PKGNAM-$VERSION.tar.?z || exit 1 cd $PKGNAM-$VERSION || exit 1 -zcat $CWD/SDL2.SDL_syswm.h.diff.gz | patch -p1 --verbose || exit 1 -zcat $CWD/SDL2.periodic.magnitude.patch.gz | patch -p1 --verbose || exit 1 - chown -R root:root . find . \ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ diff --git a/source/l/SDL2/SDL2.periodic.magnitude.patch b/source/l/SDL2/SDL2.periodic.magnitude.patch deleted file mode 100644 index 2ac8756c6..000000000 --- a/source/l/SDL2/SDL2.periodic.magnitude.patch +++ /dev/null @@ -1,20 +0,0 @@ -# HG changeset patch -# User Ethan Lee -# Date 1544124378 18000 -# Node ID 1f8d0b1afe07d1cef54d05b46770ac2c5c8f0c09 -# Parent 99d8b18acf8a2a5f8344150ca55c3b3f382bab2f -Linux Haptic: Fix periodic.magnitude value - -diff -r 99d8b18acf8a -r 1f8d0b1afe07 src/haptic/linux/SDL_syshaptic.c ---- a/src/haptic/linux/SDL_syshaptic.c Sat Dec 08 11:22:50 2018 -0800 -+++ b/src/haptic/linux/SDL_syshaptic.c Thu Dec 06 14:26:18 2018 -0500 -@@ -801,8 +801,7 @@ - else if (periodic->type == SDL_HAPTIC_SAWTOOTHDOWN) - dest->u.periodic.waveform = FF_SAW_DOWN; - dest->u.periodic.period = CLAMP(periodic->period); -- /* Linux expects 0-65535, so multiply by 2 */ -- dest->u.periodic.magnitude = CLAMP(periodic->magnitude) * 2; -+ dest->u.periodic.magnitude = periodic->magnitude; - dest->u.periodic.offset = periodic->offset; - /* Linux phase is defined in interval "[0x0000, 0x10000[", corresponds with "[0deg, 360deg[" phase shift. */ - dest->u.periodic.phase = ((Uint32)periodic->phase * 0x10000U) / 36000; diff --git a/source/l/glibc/glibc.SlackBuild b/source/l/glibc/glibc.SlackBuild index 17bee21b3..0d1530647 100755 --- a/source/l/glibc/glibc.SlackBuild +++ b/source/l/glibc/glibc.SlackBuild @@ -54,6 +54,8 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then exit 0 fi +NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} + # Work around -Werror failure with gcc-8.2.0. # NOTE: Until the next glibc release takes care of this issue, this will # likely need to be updated with every new gcc release's version. Yes, we @@ -125,8 +127,6 @@ CVSVER=${VERSION}${CHECKOUT} TMP=${TMP:-/tmp} mkdir -p $TMP -NUMJOBS=${NUMJOBS:-" -j7 "} - # This function fixes a doinst.sh file for x86_64. # With thanks to Fred Emmott. fix_doinst() { diff --git a/source/l/gmime/gmime.SlackBuild b/source/l/gmime/gmime.SlackBuild index 6956639b6..35c8e36ea 100755 --- a/source/l/gmime/gmime.SlackBuild +++ b/source/l/gmime/gmime.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=gmime VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | cut -d - -f 2 | rev | cut -f 3- -d . | rev)} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} -BUILD=${BUILD:-4} +BUILD=${BUILD:-1} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/n/NetworkManager/patches/0000-slackware-use-fqdn.diff b/source/n/NetworkManager/patches/0000-slackware-use-fqdn.diff deleted file mode 100644 index f96f580f1..000000000 --- a/source/n/NetworkManager/patches/0000-slackware-use-fqdn.diff +++ /dev/null @@ -1,31 +0,0 @@ ---- ./src/nm-hostname-manager.c.orig 2017-11-10 09:46:25.000000000 -0600 -+++ ./src/nm-hostname-manager.c 2017-11-10 17:42:41.829996568 -0600 -@@ -134,8 +134,7 @@ - { - gs_free char *contents = NULL; - gs_strfreev char **all_lines = NULL; -- char *tmp; -- guint i, j = 0; -+ guint i = 0; - - if (!g_file_get_contents (path, &contents, NULL, NULL)) - return NULL; -@@ -145,17 +144,7 @@ - g_strstrip (all_lines[i]); - if (all_lines[i][0] == '#' || all_lines[i][0] == '\0') - continue; -- tmp = &all_lines[i][0]; -- /* We only want up to the first '.' -- the rest of the */ -- /* fqdn is defined in /etc/hosts */ -- while (tmp[j] != '\0') { -- if (tmp[j] == '.') { -- tmp[j] = '\0'; -- break; -- } -- j++; -- } -- return g_shell_unquote (tmp, NULL); -+ return g_shell_unquote (&all_lines[i][0], NULL); - } - return NULL; - } diff --git a/source/n/dhcpcd/dhcpcd-7.2.3.tar.xz.distinfo b/source/n/dhcpcd/dhcpcd-7.2.3.tar.xz.distinfo deleted file mode 100644 index aac6b827f..000000000 --- a/source/n/dhcpcd/dhcpcd-7.2.3.tar.xz.distinfo +++ /dev/null @@ -1 +0,0 @@ -SHA256 (dhcpcd-7.2.3.tar.xz) = 74ab38177548abe968c2abacefffdd97b573acaedd4f77b6c0a54ae38f68566e diff --git a/source/n/dhcpcd/dhcpcd-8.0.1.tar.xz.distinfo b/source/n/dhcpcd/dhcpcd-8.0.1.tar.xz.distinfo new file mode 100644 index 000000000..3fce0fc87 --- /dev/null +++ b/source/n/dhcpcd/dhcpcd-8.0.1.tar.xz.distinfo @@ -0,0 +1 @@ +SHA256 (dhcpcd-8.0.1.tar.xz) = 031f4fbef5ad41b44714fec343ff5be898e3e3cd5e7c53d6ef3aaec43cdba931 diff --git a/source/n/openldap-client/openldap-client.SlackBuild b/source/n/openldap-client/openldap-client.SlackBuild index 3d7f16c58..cb1b12869 100755 --- a/source/n/openldap-client/openldap-client.SlackBuild +++ b/source/n/openldap-client/openldap-client.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2008, 2009, 2010, 2018 Patrick J. Volkerding, Sebeka, Minnesota, USA +# Copyright 2008, 2009, 2010, 2018, 2019 Patrick J. Volkerding, Sebeka, Minnesota, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -46,6 +46,8 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then exit 0 fi +NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} + if [ "$ARCH" = "i586" ]; then SLKCFLAGS="-O2 -march=i586 -mtune=i686" LIBDIRSUFFIX="" @@ -94,7 +96,7 @@ CFLAGS="$SLKCFLAGS" \ --build=$ARCH-slackware-linux || exit 1 make depend || exit 1 -make -j7 || exit 1 +make $NUMJOBS || exit 1 make test || exit 1 make install DESTDIR=$PKG || exit 1 diff --git a/source/n/openldap-client/slack-desc b/source/n/openldap-client/slack-desc index 378cf14eb..814190d5b 100644 --- a/source/n/openldap-client/slack-desc +++ b/source/n/openldap-client/slack-desc @@ -15,5 +15,5 @@ openldap-client: the overly complex OSI stack. openldap-client: openldap-client: LDAP is often used to provide authentication (such as for email). openldap-client: -openldap-client: The OpenLDAP homepage is http://www.openldap.org/ +openldap-client: Homepage: https://www.openldap.org/ openldap-client: diff --git a/source/xap/electricsheep/electricsheep.SlackBuild b/source/xap/electricsheep/electricsheep.SlackBuild index 21f7a47dd..611e6eeb0 100755 --- a/source/xap/electricsheep/electricsheep.SlackBuild +++ b/source/xap/electricsheep/electricsheep.SlackBuild @@ -54,6 +54,8 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then exit 0 fi +NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} + # Where do we look for sources? cd $(dirname $0) ; SRCDIR=$(pwd) @@ -214,7 +216,7 @@ cd client --mandir=/usr/man \ --build=$ARCH-slackware-linux \ 2>&1 | tee $OUTPUT/configure-${PKGNAM}.log - make -j 7 2>&1 | tee $OUTPUT/make-${PKGNAM}.log + make $NUMJOBS 2>&1 | tee $OUTPUT/make-${PKGNAM}.log make DESTDIR=$PKG install 2>&1 |tee $OUTPUT/install-${PKGNAM}.log cd .. # Then the flam3 (fractal flames) renderer: diff --git a/source/xap/pan/pan.SlackBuild b/source/xap/pan/pan.SlackBuild index 229820f4b..123add226 100755 --- a/source/xap/pan/pan.SlackBuild +++ b/source/xap/pan/pan.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2018 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2018, 2019 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=pan VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | cut -d - -f 2 | rev | cut -f 3- -d . | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -75,6 +75,13 @@ find . \ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ -exec chmod 644 {} \; +# Upstream patches to fix when using gmime-3: +zcat $CWD/patches/0000-b9a4154942c932a493736d2292bbae16384e35df.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/0001-e5be4d4a1d9d08796c1b5a5c763379383b8c119a.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/0002-50f6c43a698dcc0ba6b490c086a73eeedbdd8a80.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/0003-ddcd5761075a6fb3ef7b768f004fa1e6663cb65e.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/patches/0004-476b5a62fcda711ce2d7412a310b8182cca6940e.patch.gz | patch -p1 --verbose || exit 1 + # Configure: CFLAGS="$SLKCFLAGS" \ ./configure \ @@ -84,6 +91,7 @@ CFLAGS="$SLKCFLAGS" \ --mandir=/usr/man \ --without-gtk3 \ --with-gnutls \ + --with-gmime30 \ --with-gmime-crypto \ --with-gtkspell \ --enable-libnotify \ diff --git a/source/xap/pan/patches/0000-b9a4154942c932a493736d2292bbae16384e35df.patch b/source/xap/pan/patches/0000-b9a4154942c932a493736d2292bbae16384e35df.patch new file mode 100644 index 000000000..1732e91f5 --- /dev/null +++ b/source/xap/pan/patches/0000-b9a4154942c932a493736d2292bbae16384e35df.patch @@ -0,0 +1,25 @@ +From b9a4154942c932a493736d2292bbae16384e35df Mon Sep 17 00:00:00 2001 +From: Federico Cuello +Date: Sat, 17 Nov 2018 17:44:49 +0100 +Subject: [PATCH] Fix ypart begin for bpf ranges + +It was creating yparts with begin=0 and end==previous_part_begin with +multipart files. It should start from 1 and next part from previous end ++ 1. +--- + uulib/uuencode.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/uulib/uuencode.c b/uulib/uuencode.c +index b9a390e..2768771 100644 +--- a/uulib/uuencode.c ++++ b/uulib/uuencode.c +@@ -1740,7 +1740,7 @@ UUEncodePartial_byFSize (FILE *outfile, FILE *infile, + } + + fprintf (outfile, "=ypart begin=%ld end=%ld%s", +- (partno-1)*bpf, ++ (partno-1)*bpf+1, + (partno*bpf) < progress.totsize ? + (partno*bpf) : progress.totsize, + eolstring); diff --git a/source/xap/pan/patches/0001-e5be4d4a1d9d08796c1b5a5c763379383b8c119a.patch b/source/xap/pan/patches/0001-e5be4d4a1d9d08796c1b5a5c763379383b8c119a.patch new file mode 100644 index 000000000..4cd6de196 --- /dev/null +++ b/source/xap/pan/patches/0001-e5be4d4a1d9d08796c1b5a5c763379383b8c119a.patch @@ -0,0 +1,215 @@ +From e5be4d4a1d9d08796c1b5a5c763379383b8c119a Mon Sep 17 00:00:00 2001 +From: Detlef Graef +Date: Fri, 19 Apr 2019 15:12:27 +0200 +Subject: [PATCH] Fix to build Pan with options --with-gmime30 and + --with-gmime-crypto + +--- + pan/usenet-utils/gpg.cc | 76 ++++++++++++++++++++++++++-------- + pan/usenet-utils/mime-utils.cc | 35 ++++++++++++++++ + 2 files changed, 94 insertions(+), 17 deletions(-) + +diff --git a/pan/usenet-utils/gpg.cc b/pan/usenet-utils/gpg.cc +index f24e723..4df4525 100644 +--- a/pan/usenet-utils/gpg.cc ++++ b/pan/usenet-utils/gpg.cc +@@ -70,6 +70,45 @@ namespace pan + signer.key_id = sig->cert->keyid ? sig->cert->keyid : "(null)"; + signer.fpr = sig->cert->fingerprint ? sig->cert->fingerprint : "(null)"; + ++#ifdef HAVE_GMIME_30 ++ switch (sig->cert->trust) { ++ case GMIME_TRUST_UNKNOWN: ++ signer.trust = "None"; ++ break; ++ case GMIME_TRUST_NEVER: ++ signer.trust = "Never"; ++ break; ++ case GMIME_TRUST_UNDEFINED: ++ signer.trust = "Undefined"; ++ break; ++ case GMIME_TRUST_MARGINAL: ++ signer.trust = "Marginal"; ++ break; ++ case GMIME_TRUST_FULL: ++ signer.trust = "Fully"; ++ break; ++ case GMIME_TRUST_ULTIMATE: ++ signer.trust = "Ultimate"; ++ break; ++ } ++ ++ switch (sig->status) { ++ case GMIME_SIGNATURE_STATUS_GREEN: ++ signer.status = "GOOD"; ++ break; ++ case GMIME_SIGNATURE_STATUS_RED: ++ signer.status = "BAD"; ++ break; ++ case GMIME_SIGNATURE_STATUS_SYS_ERROR: ++ signer.status = "ERROR"; ++ break; ++ } ++ ++ signer.created = sig->created; ++ signer.expires = sig->expires; ++ if (sig->expires == (time_t) 0) ++ signer.never_expires = true; ++#else + switch (sig->cert->trust) { + case GMIME_CERTIFICATE_TRUST_NONE: + signer.trust = "None"; +@@ -102,25 +141,28 @@ namespace pan + signer.status = "ERROR"; + break; + } ++#endif + + signer.created = sig->created; + signer.expires = sig->expires; + if (sig->expires == (time_t) 0) + signer.never_expires = true; + +- if (sig->errors) { +- +- if (sig->errors & GMIME_SIGNATURE_ERROR_EXPSIG) +- signer.error = "Expired"; +- if (sig->errors & GMIME_SIGNATURE_ERROR_NO_PUBKEY) +- signer.error = "No Pub Key"; +- if (sig->errors & GMIME_SIGNATURE_ERROR_EXPKEYSIG) +- signer.error = "Key Expired"; +- if (sig->errors & GMIME_SIGNATURE_ERROR_REVKEYSIG) +- signer.error = "Key Revoked"; +- } else { +- signer.error = "No errors for this signer"; +- } ++// https://developer.gnome.org/gmime/stable/gmime-changes-3-0.html ++// GMimeSignatureStatus and GMimeSignatureErrors have been merged into a single bitfield (GMimeSignatureStatus) ... ++// if (sig->errors) { ++ ++// if (sig->errors & GMIME_SIGNATURE_ERROR_EXPSIG) ++// signer.error = "Expired"; ++// if (sig->errors & GMIME_SIGNATURE_ERROR_NO_PUBKEY) ++// signer.error = "No Pub Key"; ++// if (sig->errors & GMIME_SIGNATURE_ERROR_EXPKEYSIG) ++// signer.error = "Key Expired"; ++// if (sig->errors & GMIME_SIGNATURE_ERROR_REVKEYSIG) ++// signer.error = "Key Revoked"; ++// } else { ++// signer.error = "No errors for this signer"; ++// } + + info.signers.push_back(signer); + } +@@ -128,11 +170,11 @@ namespace pan + + void init_gpg() + { +- gpg_ctx = g_mime_gpg_context_new (request_passwd, "gpg2"); ++// gpg_ctx = g_mime_gpg_context_new (request_passwd, "gpg2"); + if (!gpg_ctx) gpg_inited = false; else gpg_inited = true; +- g_mime_gpg_context_set_auto_key_retrieve(GMIME_GPG_CONTEXT(gpg_ctx),true); +- g_mime_gpg_context_set_always_trust(GMIME_GPG_CONTEXT(gpg_ctx),false); +- g_mime_gpg_context_set_use_agent(GMIME_GPG_CONTEXT(gpg_ctx), false); ++// g_mime_gpg_context_set_auto_key_retrieve(GMIME_GPG_CONTEXT(gpg_ctx),true); ++// g_mime_gpg_context_set_always_trust(GMIME_GPG_CONTEXT(gpg_ctx),false); ++// g_mime_gpg_context_set_use_agent(GMIME_GPG_CONTEXT(gpg_ctx), false); + } + + +diff --git a/pan/usenet-utils/mime-utils.cc b/pan/usenet-utils/mime-utils.cc +index 135f469..881df7b 100644 +--- a/pan/usenet-utils/mime-utils.cc ++++ b/pan/usenet-utils/mime-utils.cc +@@ -1634,12 +1634,20 @@ namespace pan + GMimeSignatureStatus + get_sig_status (GMimeSignatureList *signatures) + { ++#ifdef HAVE_GMIME_30 ++ GMimeSignatureStatus status = GMIME_SIGNATURE_STATUS_VALID; ++#else + GMimeSignatureStatus status = GMIME_SIGNATURE_STATUS_GOOD; ++#endif + GMimeSignature *sig; + int i; + + if (!signatures || signatures->array->len == 0) ++#ifdef HAVE_GMIME_30 ++ return GMIME_SIGNATURE_STATUS_SYS_ERROR; ++#else + return GMIME_SIGNATURE_STATUS_ERROR; ++#endif + + for (i = 0; i < g_mime_signature_list_length (signatures); i++) { + sig = g_mime_signature_list_get_signature (signatures, i); +@@ -1673,18 +1681,30 @@ namespace pan + + if (info.type == GPG_VERIFY) + { ++#ifdef HAVE_GMIME_30 ++ GMimeSignatureList * sigs = g_mime_multipart_signed_verify (mps, GMIME_VERIFY_NONE, &info.err); ++#else + GMimeSignatureList * sigs = g_mime_multipart_signed_verify (mps, gpg_ctx, &info.err); ++#endif + if (info.err || !sigs) return false; + if (sigs) info.no_sigs = false; + fill_signer_info(info.signers, sigs); ++#ifdef HAVE_GMIME_30 ++ bool status = get_sig_status(sigs) == GMIME_SIGNATURE_STATUS_VALID; ++#else + bool status = get_sig_status(sigs) == GMIME_SIGNATURE_STATUS_GOOD; ++#endif + g_object_unref(sigs); + return status; + } + + if (info.type == GPG_DECODE) + { ++#ifdef HAVE_GMIME_30 ++ info.decrypted = g_mime_multipart_encrypted_decrypt (mpe, GMIME_DECRYPT_NONE, NULL, &info.result, &info.err); ++#else + info.decrypted = g_mime_multipart_encrypted_decrypt (mpe, gpg_ctx, &info.result, &info.err); ++#endif + if (!info.decrypted) + if (info.err) return false; + +@@ -1693,7 +1713,11 @@ namespace pan + { + info.no_sigs = false; + fill_signer_info(info.signers, sigs); ++#ifdef HAVE_GMIME_30 ++ bool status = get_sig_status(info.result->signatures) == GMIME_SIGNATURE_STATUS_VALID; ++#else + bool status = get_sig_status(info.result->signatures) == GMIME_SIGNATURE_STATUS_GOOD; ++#endif + g_object_unref(sigs); + return status; + } +@@ -1722,7 +1746,13 @@ namespace pan + mps = g_mime_multipart_signed_new (); + + /* sign the part */ ++#ifdef HAVE_GMIME_30 ++ GMimeObject *gmo; ++ gmo = g_mime_message_get_mime_part (body); ++ if (g_mime_multipart_signed_sign (gpg_ctx, gmo, uid.c_str(), &err) <0) ++#else + if (g_mime_multipart_signed_sign (mps, GMIME_OBJECT (part), gpg_ctx, uid.c_str(), GMIME_DIGEST_ALGO_SHA1, &err) <0) ++#endif + { + g_object_unref(mps); + g_object_unref(G_OBJECT(part)); +@@ -1752,8 +1782,13 @@ namespace pan + + GMimeMultipartEncrypted * mpe = g_mime_multipart_encrypted_new(); + ++#ifdef HAVE_GMIME_30 ++ if (g_mime_multipart_encrypted_encrypt(gpg_ctx, GMIME_OBJECT (part), sign, uid.c_str(), ++ GMIME_ENCRYPT_NONE, rcp, &err) < 0) ++#else + if (g_mime_multipart_encrypted_encrypt(mpe, GMIME_OBJECT (part), gpg_ctx, sign, + uid.c_str(), GMIME_DIGEST_ALGO_SHA1, rcp, &err) < 0) ++#endif + { + g_object_unref(mpe); + g_object_unref(G_OBJECT(part)); diff --git a/source/xap/pan/patches/0002-50f6c43a698dcc0ba6b490c086a73eeedbdd8a80.patch b/source/xap/pan/patches/0002-50f6c43a698dcc0ba6b490c086a73eeedbdd8a80.patch new file mode 100644 index 000000000..02ed1b6eb --- /dev/null +++ b/source/xap/pan/patches/0002-50f6c43a698dcc0ba6b490c086a73eeedbdd8a80.patch @@ -0,0 +1,31 @@ +From 50f6c43a698dcc0ba6b490c086a73eeedbdd8a80 Mon Sep 17 00:00:00 2001 +From: Detlef Graef +Date: Fri, 19 Apr 2019 18:43:21 +0200 +Subject: [PATCH] Attempt to fix issue #77; segfault when build with gmime-3 + +--- + pan/general/utf8-utils.cc | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/pan/general/utf8-utils.cc b/pan/general/utf8-utils.cc +index be79a13..58565cf 100644 +--- a/pan/general/utf8-utils.cc ++++ b/pan/general/utf8-utils.cc +@@ -135,13 +135,16 @@ pan :: header_to_utf8 (const StringView & header, + const char * fallback_charset1, + const char * fallback_charset2) + { ++ ++ GMimeParserOptions *gmpo = g_mime_parser_options_new(); + std::string s = content_to_utf8 (header, fallback_charset1, fallback_charset2); + if (header.strstr ("=?")) { +- char * decoded (g_mime_utils_header_decode_text (NULL, s.c_str())); ++ char * decoded (g_mime_utils_header_decode_text (gmpo, s.c_str())); + s = clean_utf8 (decoded); + g_free (decoded); + } + return s; ++ g_mime_parser_options_free (gmpo); + } + + #else diff --git a/source/xap/pan/patches/0003-ddcd5761075a6fb3ef7b768f004fa1e6663cb65e.patch b/source/xap/pan/patches/0003-ddcd5761075a6fb3ef7b768f004fa1e6663cb65e.patch new file mode 100644 index 000000000..5e3449d35 --- /dev/null +++ b/source/xap/pan/patches/0003-ddcd5761075a6fb3ef7b768f004fa1e6663cb65e.patch @@ -0,0 +1,33 @@ +From ddcd5761075a6fb3ef7b768f004fa1e6663cb65e Mon Sep 17 00:00:00 2001 +From: Detlef Graef +Date: Fri, 26 Apr 2019 20:50:09 +0200 +Subject: [PATCH] Revert "Attempt to fix issue #77; segfault when build with + gmime-3" + +This reverts commit 50f6c43a698dcc0ba6b490c086a73eeedbdd8a80. +--- + pan/general/utf8-utils.cc | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/pan/general/utf8-utils.cc b/pan/general/utf8-utils.cc +index 58565cf..be79a13 100644 +--- a/pan/general/utf8-utils.cc ++++ b/pan/general/utf8-utils.cc +@@ -135,16 +135,13 @@ pan :: header_to_utf8 (const StringView & header, + const char * fallback_charset1, + const char * fallback_charset2) + { +- +- GMimeParserOptions *gmpo = g_mime_parser_options_new(); + std::string s = content_to_utf8 (header, fallback_charset1, fallback_charset2); + if (header.strstr ("=?")) { +- char * decoded (g_mime_utils_header_decode_text (gmpo, s.c_str())); ++ char * decoded (g_mime_utils_header_decode_text (NULL, s.c_str())); + s = clean_utf8 (decoded); + g_free (decoded); + } + return s; +- g_mime_parser_options_free (gmpo); + } + + #else diff --git a/source/xap/pan/patches/0004-476b5a62fcda711ce2d7412a310b8182cca6940e.patch b/source/xap/pan/patches/0004-476b5a62fcda711ce2d7412a310b8182cca6940e.patch new file mode 100644 index 000000000..cc4788b4f --- /dev/null +++ b/source/xap/pan/patches/0004-476b5a62fcda711ce2d7412a310b8182cca6940e.patch @@ -0,0 +1,21 @@ +From 476b5a62fcda711ce2d7412a310b8182cca6940e Mon Sep 17 00:00:00 2001 +From: Detlef Graef +Date: Fri, 26 Apr 2019 20:59:54 +0200 +Subject: [PATCH] Fix for issue #77. Segfault when build with gmime-3 + +--- + pan/gui/pan.cc | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/pan/gui/pan.cc b/pan/gui/pan.cc +index 8d28fdb..fb3a696 100644 +--- a/pan/gui/pan.cc ++++ b/pan/gui/pan.cc +@@ -906,6 +906,7 @@ main (int argc, char *argv[]) + g_thread_init (0); + #endif + #ifdef HAVE_GMIME_30 ++ g_mime_init (); + #else + g_mime_init (GMIME_ENABLE_RFC2047_WORKAROUNDS); + #endif -- cgit v1.2.3