summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/a/FTBFSlog3
-rwxr-xr-xsource/a/file/file.SlackBuild11
-rw-r--r--source/a/file/git-patches/1c677c04c0fa43ecfeccdb9705dbbd19fb356891.patch33
-rw-r--r--source/a/file/git-patches/2f62d5544d13ca32dc09504ec70358db581e9e65.patch61
-rw-r--r--source/a/file/git-patches/576d713ec955faafdc9d7b783f3f4c27b7bc1793.patch32
-rw-r--r--source/a/file/git-patches/64dcffa715049351327851c8b5a6f3430a32ff39.patch102
-rw-r--r--source/a/file/git-patches/6b34436ac766dae64749b8d14f18c6910be40131.patch26
-rw-r--r--source/a/file/git-patches/9e2becec20d023409a1671bf10a682f699350e85.patch22
-rw-r--r--source/a/file/git-patches/f06015040e7ffb3be21bb7622f9f8291b749aaf9.patch159
-rwxr-xr-xsource/a/libblockdev/libblockdev.SlackBuild3
-rw-r--r--source/a/libblockdev/libblockdev.glib-2.68.0.diff11
-rw-r--r--source/a/sysvinit-scripts/scripts/rc.S2
-rwxr-xr-xsource/a/sysvinit-scripts/sysvinit-scripts.SlackBuild2
-rwxr-xr-xsource/ap/linuxdoc-tools/linuxdoc-tools.build16
-rw-r--r--source/kde/kde/build/digikam2
-rw-r--r--source/l/FTBFSlog3
-rwxr-xr-xsource/l/graphene/graphene.SlackBuild2
-rwxr-xr-xsource/l/libbluray/libbluray.SlackBuild2
-rw-r--r--source/l/speech-dispatcher/a2faab416e42cbdf3d73f98578a89eb7a235e25a.patch102
-rwxr-xr-xsource/l/speech-dispatcher/speech-dispatcher.SlackBuild3
-rwxr-xr-xsource/tcl/tk/tk.SlackBuild4
-rw-r--r--source/x/FTBFSlog4
-rwxr-xr-xsource/x/fcitx-anthy/fcitx-anthy.SlackBuild2
-rwxr-xr-xsource/x/fcitx-configtool/fcitx-configtool.SlackBuild3
-rwxr-xr-xsource/x/fcitx/fcitx.SlackBuild2
-rw-r--r--source/x/x11/build/xf86-input-libinput2
-rw-r--r--source/xap/FTBFSlog3
-rw-r--r--source/xap/pan/0d775547f0e7cf7529538704814469e1db5496f2.patch25
-rw-r--r--source/xap/pan/495bfb2eb9228b5b5cef8b50e11af577e4b473f8.patch280
-rwxr-xr-xsource/xap/pan/pan.SlackBuild4
-rw-r--r--source/xap/pan/pan.glib-2.68.0.diff743
31 files changed, 1349 insertions, 320 deletions
diff --git a/source/a/FTBFSlog b/source/a/FTBFSlog
index 58e0ffb0..b4009135 100644
--- a/source/a/FTBFSlog
+++ b/source/a/FTBFSlog
@@ -1,3 +1,6 @@
+Tue Apr 6 18:09:15 UTC 2021
+ libblockdev: Fix build with glib-2.68.0. Thanks to nobodino.
++--------------------------+
Sun Jan 17 20:10:50 UTC 2021
mkinitrd: upgrade busybox to fix missing stime in newer glibc.
+--------------------------+
diff --git a/source/a/file/file.SlackBuild b/source/a/file/file.SlackBuild
index 2554d14b..e70f55a1 100755
--- a/source/a/file/file.SlackBuild
+++ b/source/a/file/file.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=file
VERSION=${VERSION:-$(echo file-*.tar.?z* | cut -d - -f 2 | rev | cut -f 3- -d . | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
@@ -100,6 +100,15 @@ zcat $CWD/file.PT_DYNAMIC.is.dynamically.linked.diff.gz | patch -p1 -E --verbose
zcat $CWD/file.zisofs.magic.gz >> magic/Magdir/compress
zcat $CWD/file.crdaregbin.magic.gz >> magic/Magdir/crdaregbin
+# Add some regression fixes from upstream:
+zcat $CWD/git-patches/1c677c04c0fa43ecfeccdb9705dbbd19fb356891.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/git-patches/2f62d5544d13ca32dc09504ec70358db581e9e65.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/git-patches/576d713ec955faafdc9d7b783f3f4c27b7bc1793.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/git-patches/64dcffa715049351327851c8b5a6f3430a32ff39.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/git-patches/6b34436ac766dae64749b8d14f18c6910be40131.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/git-patches/9e2becec20d023409a1671bf10a682f699350e85.patch.gz | patch -p1 --verbose || exit 1
+zcat $CWD/git-patches/f06015040e7ffb3be21bb7622f9f8291b749aaf9.patch.gz | patch -p1 --verbose || exit 1
+
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
diff --git a/source/a/file/git-patches/1c677c04c0fa43ecfeccdb9705dbbd19fb356891.patch b/source/a/file/git-patches/1c677c04c0fa43ecfeccdb9705dbbd19fb356891.patch
new file mode 100644
index 00000000..47c8c2ae
--- /dev/null
+++ b/source/a/file/git-patches/1c677c04c0fa43ecfeccdb9705dbbd19fb356891.patch
@@ -0,0 +1,33 @@
+From 1c677c04c0fa43ecfeccdb9705dbbd19fb356891 Mon Sep 17 00:00:00 2001
+From: Christos Zoulas <christos@zoulas.com>
+Date: Sun, 4 Apr 2021 21:02:19 +0000
+Subject: [PATCH] Don't count each byte encounter as 1, count the total number
+ of bytes found (Anatol Belski). This makes it behave like 5.39.
+
+---
+ src/encoding.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/src/encoding.c b/src/encoding.c
+index c8b404390..c66703bb6 100644
+--- a/src/encoding.c
++++ b/src/encoding.c
+@@ -35,7 +35,7 @@
+ #include "file.h"
+
+ #ifndef lint
+-FILE_RCSID("@(#)$File: encoding.c,v 1.27 2021/02/05 21:33:49 christos Exp $")
++FILE_RCSID("@(#)$File: encoding.c,v 1.28 2021/04/04 21:02:19 christos Exp $")
+ #endif /* lint */
+
+ #include "magic.h"
+@@ -282,8 +282,7 @@ looks_ ## NAME(const unsigned char *buf, size_t nbytes, file_unichar_t *ubuf, \
+ } \
+ u = 0; \
+ for (i = 0; i < __arraycount(dist); i++) { \
+- if (dist[i]) \
+- u++; \
++ u+= dist[i]; \
+ } \
+ if (u < 3) \
+ return 0; \
diff --git a/source/a/file/git-patches/2f62d5544d13ca32dc09504ec70358db581e9e65.patch b/source/a/file/git-patches/2f62d5544d13ca32dc09504ec70358db581e9e65.patch
new file mode 100644
index 00000000..61919d5c
--- /dev/null
+++ b/source/a/file/git-patches/2f62d5544d13ca32dc09504ec70358db581e9e65.patch
@@ -0,0 +1,61 @@
+From 2f62d5544d13ca32dc09504ec70358db581e9e65 Mon Sep 17 00:00:00 2001
+From: Christos Zoulas <christos@zoulas.com>
+Date: Wed, 31 Mar 2021 19:51:14 +0000
+Subject: [PATCH] Improve 8086 relocatable detection (Joerg Jenderek)
+
+---
+ magic/Magdir/xenix | 20 +++++++++++++++-----
+ 1 file changed, 15 insertions(+), 5 deletions(-)
+
+diff --git a/magic/Magdir/xenix b/magic/Magdir/xenix
+index 3e248de26..d5ab69e5d 100644
+--- a/magic/Magdir/xenix
++++ b/magic/Magdir/xenix
+@@ -1,6 +1,6 @@
+
+ #------------------------------------------------------------------------------
+-# $File: xenix,v 1.12 2021/02/23 00:51:10 christos Exp $
++# $File: xenix,v 1.13 2021/03/31 19:51:14 christos Exp $
+ # xenix: file(1) magic for Microsoft Xenix
+ #
+ # "Middle model" stuff, and "Xenix 8086 relocatable or 80286 small
+@@ -13,25 +13,35 @@
+ #
+ 0 string core core file (Xenix)
+ # URL: http://www.polarhome.com/service/man/?qf=86rel&tf=2&of=Xenix
++# http://fileformats.archiveteam.org/wiki/OMF
+ # Reference: http://www.azillionmonkeys.com/qed/Omfg.pdf
+ # Update: Joerg Jenderek
+ # recordtype~TranslatorHEADerRecord
+ 0 byte 0x80
+-# GRR: line above is too general as it catches also Extensible storage engine DataBase
++# GRR: line above is too general as it catches also Extensible storage engine DataBase,
++# all lif files like forth.lif hpcc88.lif lex90b.lif ( See ./lif)
++# and all compressed DEGAS low-res bitmaps like: MUNCHIE.PC1 PIDER1.PC1
+ # skip examples like GENA.SND Switch.Snd by looking for record length maximal 1024-3
+ >1 uleshort <1022
+ # skip examples like GAME.PICTURE Strange.Pic by looking for positive record length
+ >>1 uleshort >0
+ # skip examples like Xtable.Data FRACTAL.GEN SHR.VIEW by looking for positive string length
+ >>>3 ubyte >0
+-# skip examples like OMBRE.6 with "UUUUUU" by looking for filename like "hello.c"
+->>>>4 regex [a-zA-Z_/]{1,8}[.] 8086 relocatable (Microsoft)
++# skip examples like OMBRE.6 with "UUUUUU" name by looking for valid high second record type
++>>>>(1.s+3) ubyte >0x6D 8086 relocatable (Microsoft)
+ #!:mime application/octet-stream
+ !:mime application/x-object
+-!:ext o/a
++!:ext obj/o/a
++# T-module name often source name like "hello.c" or "jmppm32.asm" in JMPPM32.OBJ or
++# "kbhit" in KBHITS.OBJ or "CAUSEWAY_KERNAL" in CWAPI.OBJ
+ >>>>>3 pstring x \b, "%s"
++# data length probably lower 256 according to TrID obj_omf.trid.xml
++>>>>>1 uleshort x \b, 1st record data length %u
+ # checksum
+ #>>>>>(3.b+4) ubyte x \b, checksum 0x%2.2x
++# second recordtype: 96h~LNAMES 88h~COMENT 8CH~EXTDEF
++>>>>>(1.s+3) ubyte x \b, 2nd record type 0x%x
++>>>>>(1.s+4) uleshort x \b, 2nd record data length %u
+ 0 leshort 0xff65 x.out
+ >2 string __.SYMDEF randomized
+ >0 byte x archive
diff --git a/source/a/file/git-patches/576d713ec955faafdc9d7b783f3f4c27b7bc1793.patch b/source/a/file/git-patches/576d713ec955faafdc9d7b783f3f4c27b7bc1793.patch
new file mode 100644
index 00000000..1e80ac99
--- /dev/null
+++ b/source/a/file/git-patches/576d713ec955faafdc9d7b783f3f4c27b7bc1793.patch
@@ -0,0 +1,32 @@
+From 576d713ec955faafdc9d7b783f3f4c27b7bc1793 Mon Sep 17 00:00:00 2001
+From: Christos Zoulas <christos@zoulas.com>
+Date: Tue, 6 Apr 2021 15:43:11 +0000
+Subject: [PATCH] Add more ash paths from Cormac Stephenson
+
+---
+ magic/Magdir/commands | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/magic/Magdir/commands b/magic/Magdir/commands
+index 10f8d2b20..5f6be0cce 100644
+--- a/magic/Magdir/commands
++++ b/magic/Magdir/commands
+@@ -1,6 +1,6 @@
+
+ #------------------------------------------------------------------------------
+-# $File: commands,v 1.63 2020/06/06 15:36:30 christos Exp $
++# $File: commands,v 1.64 2021/04/06 15:43:11 christos Exp $
+ # commands: file(1) magic for various shells and interpreters
+ #
+ #0 string/w : shell archive or script for antique kernel text
+@@ -38,6 +38,10 @@
+ 0 search/1 #!/usr/bin/env\ zsh Paul Falstad's zsh script text executable
+ !:mime text/x-shellscript
+
++0 string/wt #!\ /bin/ash Neil Brown's ash script text executable
++!:mime text/x-shellscript
++0 string/wt #!\ /usr/bin/ash Neil Brown's ash script text executable
++!:mime text/x-shellscript
+ 0 string/wt #!\ /usr/local/bin/ash Neil Brown's ash script text executable
+ !:mime text/x-shellscript
+ 0 string/wt #!\ /usr/local/bin/ae Neil Brown's ae script text executable
diff --git a/source/a/file/git-patches/64dcffa715049351327851c8b5a6f3430a32ff39.patch b/source/a/file/git-patches/64dcffa715049351327851c8b5a6f3430a32ff39.patch
new file mode 100644
index 00000000..f026891f
--- /dev/null
+++ b/source/a/file/git-patches/64dcffa715049351327851c8b5a6f3430a32ff39.patch
@@ -0,0 +1,102 @@
+From 64dcffa715049351327851c8b5a6f3430a32ff39 Mon Sep 17 00:00:00 2001
+From: Christos Zoulas <christos@zoulas.com>
+Date: Sun, 4 Apr 2021 18:24:34 +0000
+Subject: [PATCH] Add arm-coff (Mark Harmstone)
+
+---
+ magic/Magdir/arm | 41 +++++++++++++++++++++++++++++++++++++++++
+ magic/Magdir/coff | 7 ++++++-
+ magic/Makefile.am | 3 ++-
+ 3 files changed, 49 insertions(+), 2 deletions(-)
+ create mode 100644 magic/Magdir/arm
+
+diff --git a/magic/Magdir/arm b/magic/Magdir/arm
+new file mode 100644
+index 000000000..8869d1928
+--- /dev/null
++++ b/magic/Magdir/arm
+@@ -0,0 +1,41 @@
++#------------------------------------------------------------------------------
++# $File: arm,v 1.1 2021/04/04 18:24:34 christos Exp $
++# arm: file(1) magic for ARM COFF
++#
++# https://docs.microsoft.com/en-us/windows/win32/debug/pe-format
++
++# Aarch64
++0 leshort 0xaa64
++# test for unused flag bits in f_flags
++>18 uleshort&0x8E80 0
++# use little endian variant of subroutine to
++# display name+variables+flags for common object formated files
++>>0 use display-coff
++!:strength -10
++
++# ARM
++0 leshort 0x01c0
++# test for unused flag bits in f_flags
++>18 uleshort&0x8E80 0
++# use little endian variant of subroutine to
++# display name+variables+flags for common object formated files
++>>0 use display-coff
++!:strength -10
++
++# ARM Thumb
++0 leshort 0x01c2
++# test for unused flag bits in f_flags
++>18 uleshort&0x8E80 0
++# use little endian variant of subroutine to
++# display name+variables+flags for common object formated files
++>>0 use display-coff
++!:strength -10
++
++# ARMv7 Thumb
++0 leshort 0x01c4
++# test for unused flag bits in f_flags
++>18 uleshort&0x8E80 0
++# use little endian variant of subroutine to
++# display name+variables+flags for common object formated files
++>>0 use display-coff
++!:strength -10
+diff --git a/magic/Magdir/coff b/magic/Magdir/coff
+index 18e7b665e..5063bc19e 100644
+--- a/magic/Magdir/coff
++++ b/magic/Magdir/coff
+@@ -1,6 +1,6 @@
+
+ #------------------------------------------------------------------------------
+-# $File: coff,v 1.4 2021/02/10 00:37:02 christos Exp $
++# $File: coff,v 1.5 2021/04/04 18:24:34 christos Exp $
+ # coff: file(1) magic for Common Object Files not specific to known cpu types or manufactures
+ #
+ # COFF
+@@ -34,6 +34,11 @@
+ # https://msdn.microsoft.com/en-us/library/windows/desktop/ms680313(v=vs.85).aspx
+ >>>>0 uleshort 0x0200 Intel ia64
+ >>>>0 uleshort 0x8664 Intel amd64
++# ARM COFF (./arm)
++>>>>0 uleshort 0xaa64 Aarch64
++>>>>0 uleshort 0x01c0 ARM
++>>>>0 uleshort 0x01c2 ARM Thumb
++>>>>0 uleshort 0x01c4 ARMv7 Thumb
+ # TODO for other COFFs
+ #>>>>0 uleshort 0xABCD COFF_TEMPLATE
+ >>>>0 default x
+diff --git a/magic/Makefile.am b/magic/Makefile.am
+index 0eb5865b7..75d39bbde 100644
+--- a/magic/Makefile.am
++++ b/magic/Makefile.am
+@@ -1,5 +1,5 @@
+ #
+-# $File: Makefile.am,v 1.166 2021/03/14 16:24:18 christos Exp $
++# $File: Makefile.am,v 1.167 2021/04/04 18:24:34 christos Exp $
+ #
+ MAGIC_FRAGMENT_BASE = Magdir
+ MAGIC_DIR = $(top_srcdir)/magic
+@@ -29,6 +29,7 @@ $(MAGIC_FRAGMENT_DIR)/application \
+ $(MAGIC_FRAGMENT_DIR)/applix \
+ $(MAGIC_FRAGMENT_DIR)/apt \
+ $(MAGIC_FRAGMENT_DIR)/archive \
++$(MAGIC_FRAGMENT_DIR)/arm \
+ $(MAGIC_FRAGMENT_DIR)/asf \
+ $(MAGIC_FRAGMENT_DIR)/assembler \
+ $(MAGIC_FRAGMENT_DIR)/asterix \
diff --git a/source/a/file/git-patches/6b34436ac766dae64749b8d14f18c6910be40131.patch b/source/a/file/git-patches/6b34436ac766dae64749b8d14f18c6910be40131.patch
new file mode 100644
index 00000000..78f7d31c
--- /dev/null
+++ b/source/a/file/git-patches/6b34436ac766dae64749b8d14f18c6910be40131.patch
@@ -0,0 +1,26 @@
+From 6b34436ac766dae64749b8d14f18c6910be40131 Mon Sep 17 00:00:00 2001
+From: Christos Zoulas <christos@zoulas.com>
+Date: Mon, 5 Apr 2021 16:36:14 +0000
+Subject: [PATCH] remove "u" from the pattern (Joerg Jenderek)
+
+---
+ magic/Magdir/mail.news | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/magic/Magdir/mail.news b/magic/Magdir/mail.news
+index 3a2eeb962..6a2229107 100644
+--- a/magic/Magdir/mail.news
++++ b/magic/Magdir/mail.news
+@@ -1,5 +1,5 @@
+ #------------------------------------------------------------------------------
+-# $File: mail.news,v 1.26 2021/03/21 14:37:03 christos Exp $
++# $File: mail.news,v 1.27 2021/04/05 16:36:14 christos Exp $
+ # mail.news: file(1) magic for mail and news
+ #
+ # Unfortunately, saved netnews also has From line added in some news software.
+@@ -81,4 +81,4 @@
+ # File format spec: https://wiki.dovecot.org/Design/Dcrypt/#File_format
+ # From: Stephen Gildea
+ 0 string CRYPTED\003\007 Dovecot encrypted message
+->9 byte xu \b, dcrypt version %d
++>9 byte x \b, dcrypt version %d
diff --git a/source/a/file/git-patches/9e2becec20d023409a1671bf10a682f699350e85.patch b/source/a/file/git-patches/9e2becec20d023409a1671bf10a682f699350e85.patch
new file mode 100644
index 00000000..9fa3ab4f
--- /dev/null
+++ b/source/a/file/git-patches/9e2becec20d023409a1671bf10a682f699350e85.patch
@@ -0,0 +1,22 @@
+From 9e2becec20d023409a1671bf10a682f699350e85 Mon Sep 17 00:00:00 2001
+From: Christos Zoulas <christos@zoulas.com>
+Date: Sun, 4 Apr 2021 21:03:43 +0000
+Subject: [PATCH] Encoding bug fix.
+
+---
+ ChangeLog | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/ChangeLog b/ChangeLog
+index 23a93cf4b..2238ba6f8 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,3 +1,8 @@
++2021-04-04 17:02 Christos Zoulas <christos@zoulas.com>
++
++ * count the total bytes found not the total byte positions
++ in order to determine encoding (Anatol Belski)
++
+ 2021-03-30 20:21 Christos Zoulas <christos@zoulas.com>
+
+ * release 5.40
diff --git a/source/a/file/git-patches/f06015040e7ffb3be21bb7622f9f8291b749aaf9.patch b/source/a/file/git-patches/f06015040e7ffb3be21bb7622f9f8291b749aaf9.patch
new file mode 100644
index 00000000..c0cbf3cb
--- /dev/null
+++ b/source/a/file/git-patches/f06015040e7ffb3be21bb7622f9f8291b749aaf9.patch
@@ -0,0 +1,159 @@
+From f06015040e7ffb3be21bb7622f9f8291b749aaf9 Mon Sep 17 00:00:00 2001
+From: Christos Zoulas <christos@zoulas.com>
+Date: Sun, 4 Apr 2021 17:46:17 +0000
+Subject: [PATCH] Fix regression after unsigned/signed printing changes by
+ making types unsigned (Richard W.M. Jones)
+
+---
+ magic/Magdir/filesystems | 54 +++++++++++++++++++--------------------
+ magic/Magdir/linux | 30 +++++++++++-----------
+ tests/Makefile.am | 1 +
+ tests/ext4.result | 1 +
+ tests/ext4.testfile | Bin 0 -> 2048 bytes
+ 5 files changed, 44 insertions(+), 42 deletions(-)
+ create mode 100644 tests/ext4.result
+ create mode 100644 tests/ext4.testfile
+
+diff --git a/magic/Magdir/filesystems b/magic/Magdir/filesystems
+index 0cb45cbfe..81966d6cc 100644
+--- a/magic/Magdir/filesystems
++++ b/magic/Magdir/filesystems
+@@ -1,5 +1,5 @@
+ #------------------------------------------------------------------------------
+-# $File: filesystems,v 1.140 2021/02/23 00:51:10 christos Exp $
++# $File: filesystems,v 1.141 2021/04/04 17:46:17 christos Exp $
+ # filesystems: file(1) magic for different filesystems
+ #
+ 0 name partid
+@@ -1739,12 +1739,12 @@
+ >>>0x464 lelong >0x0000007 ext4 filesystem data
+ # else large INCOMPAT?
+ >>0x460 lelong >0x000003f ext4 filesystem data
+->0x468 belong x \b, UUID=%08x
+->0x46c beshort x \b-%04x
+->0x46e beshort x \b-%04x
+->0x470 beshort x \b-%04x
+->0x472 belong x \b-%08x
+->0x476 beshort x \b%04x
++>0x468 ubelong x \b, UUID=%08x
++>0x46c ubeshort x \b-%04x
++>0x46e ubeshort x \b-%04x
++>0x470 ubeshort x \b-%04x
++>0x472 ubelong x \b-%08x
++>0x476 ubeshort x \b%04x
+ >0x478 string >0 \b, volume name "%s"
+ # General flags for any ext* fs
+ >0x460 lelong &0x0000004 (needs journal recovery)
+@@ -1767,12 +1767,12 @@
+
+ # f2fs filesystem - Tuomas Tynkkynen <tuomas.tynkkynen@iki.fi>
+ 0x400 lelong 0xF2F52010 F2FS filesystem
+->0x46c belong x \b, UUID=%08x
+->0x470 beshort x \b-%04x
+->0x472 beshort x \b-%04x
+->0x474 beshort x \b-%04x
+->0x476 belong x \b-%08x
+->0x47a beshort x \b%04x
++>0x46c ubelong x \b, UUID=%08x
++>0x470 ubeshort x \b-%04x
++>0x472 ubeshort x \b-%04x
++>0x474 ubeshort x \b-%04x
++>0x476 ubelong x \b-%08x
++>0x47a ubeshort x \b%04x
+ >0x147c lestring16 x \b, volume name "%s"
+
+ # Minix filesystems - Juan Cespedes <cespedes@debian.org>
+@@ -2296,20 +2296,20 @@
+ >>0x10060 string >\0 lockproto %s)
+
+ # Russell Coker <russell@coker.com.au>
+-0x10040 string _BHRfS_M BTRFS Filesystem
+->0x1012b string >\0 label "%s",
+->0x10090 lelong x sectorsize %d,
+->0x10094 lelong x nodesize %d,
+->0x10098 lelong x leafsize %d,
+->0x10020 belong x UUID=%08x-
+->0x10024 beshort x \b%04x-
+->0x10026 beshort x \b%04x-
+->0x10028 beshort x \b%04x-
+->0x1002a beshort x \b%04x
+->0x1002c belong x \b%08x,
+->0x10078 lequad x %lld/
+->0x10070 lequad x \b%lld bytes used,
+->0x10088 lequad x %lld devices
++0x10040 string _BHRfS_M BTRFS Filesystem
++>0x1012b string >\0 label "%s",
++>0x10090 lelong x sectorsize %d,
++>0x10094 lelong x nodesize %d,
++>0x10098 lelong x leafsize %d,
++>0x10020 ubelong x UUID=%08x-
++>0x10024 ubeshort x \b%04x-
++>0x10026 ubeshort x \b%04x-
++>0x10028 ubeshort x \b%04x-
++>0x1002a ubeshort x \b%04x
++>0x1002c ubelong x \b%08x,
++>0x10078 lequad x %lld/
++>0x10070 lequad x \b%lld bytes used,
++>0x10088 lequad x %lld devices
+
+ # dvdisaster's .ecc
+ # From: "Nelson A. de Oliveira" <naoliv@gmail.com>
+diff --git a/magic/Magdir/linux b/magic/Magdir/linux
+index 693cef6f5..f25243e20 100644
+--- a/magic/Magdir/linux
++++ b/magic/Magdir/linux
+@@ -1,6 +1,6 @@
+
+ #------------------------------------------------------------------------------
+-# $File: linux,v 1.77 2021/02/24 23:05:02 christos Exp $
++# $File: linux,v 1.78 2021/04/04 17:46:17 christos Exp $
+ # linux: file(1) magic for Linux files
+ #
+ # Values for Linux/i386 binaries, from Daniel Quinlan <quinlan@yggdrasil.com>
+@@ -83,20 +83,20 @@
+
+ # format v1, supported since 1998
+ 0 name linux-swap
+->0x400 lelong 1 little endian, version %u,
+->>0x404 lelong x size %u pages,
+->>0x408 lelong x %u bad pages,
+->0x400 belong 1 big endian, version %u,
+->>0x404 belong x size %u pages,
+->>0x408 belong x %u bad pages,
+->0x41c string \0 no label,
+->0x41c string >\0 LABEL=%s,
+->0x40c belong x UUID=%08x
+->0x410 beshort x \b-%04x
+->0x412 beshort x \b-%04x
+->0x414 beshort x \b-%04x
+->0x416 belong x \b-%08x
+->0x41a beshort x \b%04x
++>0x400 lelong 1 little endian, version %u,
++>>0x404 lelong x size %u pages,
++>>0x408 lelong x %u bad pages,
++>0x400 belong 1 big endian, version %u,
++>>0x404 belong x size %u pages,
++>>0x408 belong x %u bad pages,
++>0x41c string \0 no label,
++>0x41c string >\0 LABEL=%s,
++>0x40c ubelong x UUID=%08x
++>0x410 ubeshort x \b-%04x
++>0x412 ubeshort x \b-%04x
++>0x414 ubeshort x \b-%04x
++>0x416 ubelong x \b-%08x
++>0x41a ubeshort x \b%04x
+
+ 0xff6 string SWAPSPACE2 Linux swap file, 4k page size,
+ >0 use linux-swap
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index b38a25b3d..a63c2f65a 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -7,6 +7,7 @@ regex-eol.magic \
+ CVE-2014-1943.testfile \
+ JW07022A.mp3.testfile \
+ escapevel.testfile \
++ext4.testfile \
+ fit-map-data.testfile \
+ gedcom.testfile \
+ hddrawcopytool.testfile \
diff --git a/source/a/libblockdev/libblockdev.SlackBuild b/source/a/libblockdev/libblockdev.SlackBuild
index 812f2922..ccf0cc0f 100755
--- a/source/a/libblockdev/libblockdev.SlackBuild
+++ b/source/a/libblockdev/libblockdev.SlackBuild
@@ -79,6 +79,9 @@ rm -rf $PKGNAM-$VERSION
tar xvf $CWD/$PKGNAM-$VERSION.tar.?z || exit 1
cd $PKGNAM-$VERSION || exit 1
+# Fix build with glib-2.68.0:
+zcat $CWD/libblockdev.glib-2.68.0.diff.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/a/libblockdev/libblockdev.glib-2.68.0.diff b/source/a/libblockdev/libblockdev.glib-2.68.0.diff
new file mode 100644
index 00000000..029f70fb
--- /dev/null
+++ b/source/a/libblockdev/libblockdev.glib-2.68.0.diff
@@ -0,0 +1,11 @@
+--- ./src/plugins/vdo.c.orig 2021-01-11 04:48:35.000000000 -0600
++++ ./src/plugins/vdo.c 2021-04-06 12:57:27.128009876 -0500
+@@ -81,7 +81,7 @@
+ }
+
+ BDVDOStats* bd_vdo_stats_copy (BDVDOStats *stats) {
+- return g_memdup (stats, sizeof (BDVDOStats));
++ return g_memdup2 (stats, sizeof (BDVDOStats));
+ }
+
+
diff --git a/source/a/sysvinit-scripts/scripts/rc.S b/source/a/sysvinit-scripts/scripts/rc.S
index aa40bac1..90406546 100644
--- a/source/a/sysvinit-scripts/scripts/rc.S
+++ b/source/a/sysvinit-scripts/scripts/rc.S
@@ -369,8 +369,6 @@ else
/sbin/mount -a -v -t nonfs,nosmbfs,nocifs,noproc,nosysfs | grep successfully | cut -f 1 -d : | tr -d ' ' | while read dev ; do mount | grep " ${dev} " ; done
fi
-# This should be empty as it's just a mountpoint now:
-rm -rf /var/run/*
# Bind mount /run to /var/run:
mount -o bind /run /var/run
diff --git a/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild
index 6245ae08..d97b63e2 100755
--- a/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild
+++ b/source/a/sysvinit-scripts/sysvinit-scripts.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=sysvinit-scripts
VERSION=${VERSION:-2.1}
ARCH=noarch
-BUILD=${BUILD:-40}
+BUILD=${BUILD:-41}
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
diff --git a/source/ap/linuxdoc-tools/linuxdoc-tools.build b/source/ap/linuxdoc-tools/linuxdoc-tools.build
index 2a30a4bb..32ecd3ce 100755
--- a/source/ap/linuxdoc-tools/linuxdoc-tools.build
+++ b/source/ap/linuxdoc-tools/linuxdoc-tools.build
@@ -329,6 +329,10 @@ patch --verbose -p1 < ../opensp-sigsegv.patch || exit 1
patch --verbose -p1 < ../opensp-manpage.patch || exit 1
patch --verbose -p1 < ../opensp-nodeids.patch || exit 1
+# Refresh libtool for new architecture definitions:
+find . -name config.guess -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.guess '{}'
+find . -name config.sub -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.sub '{}'
+
# Configure without optimisation. OpenSP & OpenJade
# are sensitive to optimisations, resulting in segfaults,
# particularly on the ARM platform. Apparently -O1 will work but
@@ -415,6 +419,10 @@ xz -dc $CWD/sources/openjade-1.3.2-gcc46.patch.xz | patch -p1 --verbose || exit
# Migrate from Perl 4 'getopts' function which was deprecated in Perl 5.16:
sed -i -e '/getopts/{N;s#&G#g#;s#do .getopts.pl.;##;}' -e '/use POSIX/ause Getopt::Std;' msggen.pl
+# Refresh libtool for new architecture definitions:
+find . -name config.guess -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.guess '{}'
+find . -name config.sub -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.sub '{}'
+
# Configure:
CXXFLAGS="$SLKCFLAGS -fno-lifetime-dse" \
./configure \
@@ -541,6 +549,10 @@ for i in \
; do patch --verbose -p1 < ../$i
done || exit 1
+# Refresh libtool for new architecture definitions:
+find . -name config.guess -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.guess '{}'
+find . -name config.sub -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.sub '{}'
+
# Configure:
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
@@ -1046,6 +1058,10 @@ for i in \
; do patch --verbose -p1 < ../$i
done || exit 1
+# Refresh libtool for new architecture definitions:
+find . -name config.guess -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.guess '{}'
+find . -name config.sub -print0 | xargs -0i cp -favv /usr/share/libtool/build-aux/config.sub '{}'
+
# Configure:
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
diff --git a/source/kde/kde/build/digikam b/source/kde/kde/build/digikam
index d00491fd..0cfbf088 100644
--- a/source/kde/kde/build/digikam
+++ b/source/kde/kde/build/digikam
@@ -1 +1 @@
-1
+2
diff --git a/source/l/FTBFSlog b/source/l/FTBFSlog
index ed91b745..aa234b8c 100644
--- a/source/l/FTBFSlog
+++ b/source/l/FTBFSlog
@@ -1,3 +1,6 @@
+Tue Apr 6 18:11:11 UTC 2021
+ speech-dispatcher: Fix build with glib-2.68.0. Thanks to nobodino and ponce.
++--------------------------+
Sun Apr 4 19:03:17 UTC 2021
qt5-webkit: Patched to fix building with glib-2.68.0.
Thanks to nobodino and ponce.
diff --git a/source/l/graphene/graphene.SlackBuild b/source/l/graphene/graphene.SlackBuild
index 76b408bb..f229fc6e 100755
--- a/source/l/graphene/graphene.SlackBuild
+++ b/source/l/graphene/graphene.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=graphene
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/l/libbluray/libbluray.SlackBuild b/source/l/libbluray/libbluray.SlackBuild
index 87ac3775..13e1a341 100755
--- a/source/l/libbluray/libbluray.SlackBuild
+++ b/source/l/libbluray/libbluray.SlackBuild
@@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=libbluray
VERSION=${VERSION:-$(echo libbluray-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
diff --git a/source/l/speech-dispatcher/a2faab416e42cbdf3d73f98578a89eb7a235e25a.patch b/source/l/speech-dispatcher/a2faab416e42cbdf3d73f98578a89eb7a235e25a.patch
new file mode 100644
index 00000000..b4f7a840
--- /dev/null
+++ b/source/l/speech-dispatcher/a2faab416e42cbdf3d73f98578a89eb7a235e25a.patch
@@ -0,0 +1,102 @@
+From a2faab416e42cbdf3d73f98578a89eb7a235e25a Mon Sep 17 00:00:00 2001
+From: Michael Catanzaro <mcatanzaro@gnome.org>
+Date: Tue, 2 Feb 2021 14:50:23 -0600
+Subject: [PATCH] Fix build after glib e38982df
+
+glib.h now includes <type_traits> when building as C++. But kali.cpp
+includes it (via module_utils.h) inside an extern "C" block. This is
+illegal.
+
+Best practice is to use extern "C" in project header files, not around
+include statements. So let's do that. module_utils.h already includes
+glib.h, so we can use G_BEGIN_DECLS/G_END_DECLS there. spd_audio.h does
+not, so I decided to write out the usual boilerplate, as including all
+of glib.h just for G_BEGIN_DECLS/G_END_DECLS seemed like overkill.
+Finally, I'll move config.h at the very top of kali.cpp, since I'm
+touching this code anyway and that is the usual place to put it.
+
+This is the minimum viable change required for speech-dispatcher to
+build with glib master. As long as speech-dispatcher is combining C and
+C++, it would be advisible to use extern "C" in all headers that declare
+C functions and might be included from C++.
+---
+ src/modules/kali.cpp | 10 +++++-----
+ src/modules/module_utils.h | 4 ++++
+ src/modules/spd_audio.h | 8 ++++++++
+ 3 files changed, 17 insertions(+), 5 deletions(-)
+
+diff --git a/src/modules/kali.cpp b/src/modules/kali.cpp
+index 193975d8..7b497626 100644
+--- a/src/modules/kali.cpp
++++ b/src/modules/kali.cpp
+@@ -21,21 +21,21 @@
+ * $Id: kali.c,v 1.59 2008-06-09 10:38:02 hanke Exp $
+ */
+
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
++
+ #include <stdio.h>
+ #include <string.h>
+ #include <unistd.h>
+ #include <kali/Kali/kali.h>
+-extern "C" {
+-#ifdef HAVE_CONFIG_H
+-#include <config.h>
+-#endif
++
+ #include <semaphore.h>
+ #include "spd_audio.h"
+
+ #include <speechd_types.h>
+
+ #include "module_utils.h"
+-}
+ #define MODULE_NAME "kali"
+ #define MODULE_VERSION "0.0"
+ #define DEBUG_MODULE 1
+diff --git a/src/modules/module_utils.h b/src/modules/module_utils.h
+index 6081e7e1..e82850b2 100644
+--- a/src/modules/module_utils.h
++++ b/src/modules/module_utils.h
+@@ -41,6 +41,8 @@
+ #include <speechd_types.h>
+ #include "spd_audio.h"
+
++G_BEGIN_DECLS
++
+ typedef struct SPDMarks {
+ unsigned num;
+ unsigned allocated;
+@@ -420,4 +422,6 @@ char *module_getvoice(char *language, SPDVoiceType voice);
+ gboolean module_existsvoice(char *voicename);
+ char *module_getdefaultvoice(void);
+
++G_END_DECLS
++
+ #endif /* #ifndef __MODULE_UTILS_H */
+diff --git a/src/modules/spd_audio.h b/src/modules/spd_audio.h
+index 25045e2f..b9de3cd5 100644
+--- a/src/modules/spd_audio.h
++++ b/src/modules/spd_audio.h
+@@ -28,6 +28,10 @@
+
+ #define SPD_AUDIO_LIB_PREFIX "spd_"
+
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ AudioID *spd_audio_open(char *name, void **pars, char **error);
+
+ int spd_audio_play(AudioID * id, AudioTrack track, AudioFormat format);
+@@ -47,4 +51,8 @@ void spd_audio_set_loglevel(AudioID * id, int level);
+
+ char const *spd_audio_get_playcmd(AudioID * id);
+
++#ifdef __cplusplus
++}
++#endif
++
+ #endif /* ifndef #__SPD_AUDIO_H */
diff --git a/source/l/speech-dispatcher/speech-dispatcher.SlackBuild b/source/l/speech-dispatcher/speech-dispatcher.SlackBuild
index b6f0ee30..9ef0055c 100755
--- a/source/l/speech-dispatcher/speech-dispatcher.SlackBuild
+++ b/source/l/speech-dispatcher/speech-dispatcher.SlackBuild
@@ -90,6 +90,9 @@ find -L . \
sed -i "s/cicero //g" configure.ac
sed -i "s/sd_cicero//g" src/modules/Makefile.am
+# Fix build with glib-2.68.0:
+zcat $CWD/a2faab416e42cbdf3d73f98578a89eb7a235e25a.patch.gz | patch -p1 --verbose || exit 1
+
autoreconf -vif || exit 1
CFLAGS="$SLKCFLAGS" \
diff --git a/source/tcl/tk/tk.SlackBuild b/source/tcl/tk/tk.SlackBuild
index 38e52d07..c025b44e 100755
--- a/source/tcl/tk/tk.SlackBuild
+++ b/source/tcl/tk/tk.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=tk
VERSION=${VERSION:-8.6.11.1}
# See also version number 8.6 in the symlinks below...)
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-4}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -73,7 +73,7 @@ cd $TMP
rm -rf tk8.6.11 tk$VERSION
tar xvf $CWD/tk$VERSION-src.tar.?z || exit 1
cd tk$VERSION || cd tk8.6.11 || exit 1
-sed -i -e "s#^TK_LIBRARY='\$(prefix)/lib/#TK_LIBRARY='\$(libdir)/#" \
+sed -i -e "s#TK_LIBRARY='\$(prefix)/lib/#TK_LIBRARY='\$(libdir)/#" \
unix/configure
chown -R root:root .
diff --git a/source/x/FTBFSlog b/source/x/FTBFSlog
index e7c6293b..51d321af 100644
--- a/source/x/FTBFSlog
+++ b/source/x/FTBFSlog
@@ -1,3 +1,7 @@
+Tue Apr 6 18:07:59 UTC 2021
+ fcitx: Remove -fPIC to fix build (it uses it anyway). Thanks to nobodino.
+ fcitx-configtool: Remove -fPIC to fix build. Thanks to nobodino.
++--------------------------+
Sat Jan 30 02:44:45 UTC 2021
fcitx-libpinyin: fix building against libpinyin-2.6.0 with upstream patch.
Thanks to nobodino for the report.
diff --git a/source/x/fcitx-anthy/fcitx-anthy.SlackBuild b/source/x/fcitx-anthy/fcitx-anthy.SlackBuild
index 2ccfcf58..6c60c204 100755
--- a/source/x/fcitx-anthy/fcitx-anthy.SlackBuild
+++ b/source/x/fcitx-anthy/fcitx-anthy.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=fcitx-anthy
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d- | rev)}
-BUILD=${BUILD:-3}
+BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
diff --git a/source/x/fcitx-configtool/fcitx-configtool.SlackBuild b/source/x/fcitx-configtool/fcitx-configtool.SlackBuild
index 92ac59fd..1452ecb0 100755
--- a/source/x/fcitx-configtool/fcitx-configtool.SlackBuild
+++ b/source/x/fcitx-configtool/fcitx-configtool.SlackBuild
@@ -51,7 +51,7 @@ elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2"
LIBDIRSUFFIX="64"
elif [ "$ARCH" = "armv7hl" ]; then
SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
@@ -89,6 +89,7 @@ find . \
mkdir build
cd build
cmake \
+ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DCMAKE_C_FLAGS:STRING=${SLKCFLAGS} \
-DCMAKE_CXX_FLAGS:STRING=${SLKCFLAGS} \
-DCMAKE_INSTALL_PREFIX=/usr \
diff --git a/source/x/fcitx/fcitx.SlackBuild b/source/x/fcitx/fcitx.SlackBuild
index 474a2e6f..ddbcc2c9 100755
--- a/source/x/fcitx/fcitx.SlackBuild
+++ b/source/x/fcitx/fcitx.SlackBuild
@@ -54,7 +54,7 @@ elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC"
+ SLKCFLAGS="-O2"
LIBDIRSUFFIX="64"
elif [ "$ARCH" = "armv7hl" ]; then
SLKCFLAGS="-O3 -march=armv7-a -mfpu=vfpv3-d16"
diff --git a/source/x/x11/build/xf86-input-libinput b/source/x/x11/build/xf86-input-libinput
index 00750edc..d00491fd 100644
--- a/source/x/x11/build/xf86-input-libinput
+++ b/source/x/x11/build/xf86-input-libinput
@@ -1 +1 @@
-3
+1
diff --git a/source/xap/FTBFSlog b/source/xap/FTBFSlog
index 82df57f0..af5588c8 100644
--- a/source/xap/FTBFSlog
+++ b/source/xap/FTBFSlog
@@ -1,3 +1,6 @@
+Tue Apr 6 18:10:12 UTC 2021
+ pan: Fix build with glib-2.68.0. Thanks to nobodino and ponce.
++--------------------------+
Tue Jan 19 01:20:27 UTC 2021
seamonkey: patch to fix build with Rust 1.48.0.
Thanks to USUARIONUEVO and nobodino.
diff --git a/source/xap/pan/0d775547f0e7cf7529538704814469e1db5496f2.patch b/source/xap/pan/0d775547f0e7cf7529538704814469e1db5496f2.patch
deleted file mode 100644
index 80dc0487..00000000
--- a/source/xap/pan/0d775547f0e7cf7529538704814469e1db5496f2.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 0d775547f0e7cf7529538704814469e1db5496f2 Mon Sep 17 00:00:00 2001
-From: Detlef Graef <detlef.graef@yahoo.de>
-Date: Sun, 5 Jul 2020 08:54:35 +0200
-Subject: [PATCH] Remove empty line from file posting.xml
-
----
- pan/data-impl/profiles.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pan/data-impl/profiles.cc b/pan/data-impl/profiles.cc
-index e999fda..4053cae 100644
---- a/pan/data-impl/profiles.cc
-+++ b/pan/data-impl/profiles.cc
-@@ -240,7 +240,7 @@ ProfilesImpl :: serialize (std::ostream& out) const
- }
- out << indent(--depth) << "</profile>\n";
- }
-- out << indent(--depth) << "</profiles>\n\n";
-+ out << indent(--depth) << "</profiles>\n";
- out << indent(--depth) << "</posting>\n";
- }
-
---
-GitLab
-
diff --git a/source/xap/pan/495bfb2eb9228b5b5cef8b50e11af577e4b473f8.patch b/source/xap/pan/495bfb2eb9228b5b5cef8b50e11af577e4b473f8.patch
deleted file mode 100644
index 6b876d1e..00000000
--- a/source/xap/pan/495bfb2eb9228b5b5cef8b50e11af577e4b473f8.patch
+++ /dev/null
@@ -1,280 +0,0 @@
-From 495bfb2eb9228b5b5cef8b50e11af577e4b473f8 Mon Sep 17 00:00:00 2001
-From: Detlef Graef <detlef.graef@yahoo.de>
-Date: Sun, 5 Jul 2020 08:47:54 +0200
-Subject: [PATCH] Fix for GMime3 build (Posting error). Issues #103 and #114
-
----
- pan/gui/post-ui.cc | 176 ++++++++++++++++++++++++++++++++-------------
- 1 file changed, 126 insertions(+), 50 deletions(-)
-
-diff --git a/pan/gui/post-ui.cc b/pan/gui/post-ui.cc
-index 8769ec5..eb21384 100644
---- a/pan/gui/post-ui.cc
-+++ b/pan/gui/post-ui.cc
-@@ -1598,86 +1598,178 @@ namespace
- GMimeMessage*
- PostUI :: new_message_from_ui (Mode mode, bool copy_body)
- {
-+#ifdef HAVE_GMIME_30
-
- GMimeMessage * msg(0);
-- msg = g_mime_message_new (false);
-+ msg = g_mime_message_new (true);
-+ const char * charset_cstr = _charset.c_str();
-
- // headers from the ui: From
- const Profile profile (get_current_profile ());
- std::string s;
- profile.get_from_header (s);
--#ifdef HAVE_GMIME_30
-- g_mime_message_add_mailbox (msg, GMIME_ADDRESS_TYPE_SENDER, NULL, s.c_str());
-+ g_mime_message_add_mailbox (msg, GMIME_ADDRESS_TYPE_FROM, profile.username.c_str(), profile.address.c_str());
-+
-+ // headers from the ui: Subject
-+ const char * cpch (gtk_entry_get_text (GTK_ENTRY(_subject_entry)));
-+ if (cpch) {
-+ g_mime_message_set_subject (msg, cpch, charset_cstr);
-+ }
-+
-+ // headers from the ui: To
-+ const StringView to (gtk_entry_get_text (GTK_ENTRY(_to_entry)));
-+ if (!to.empty())
-+ pan_g_mime_message_add_recipients_from_string (msg, GMIME_ADDRESS_TYPE_TO, to.str);
-+
-+ // headers from the ui: Newsgroups
-+ const StringView groups (gtk_entry_get_text (GTK_ENTRY(_groups_entry)));
-+ if (!groups.empty())
-+ g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", groups.str, charset_cstr);
-+
-+ // headers from the ui: Followup-To
-+ const StringView followupto (gtk_entry_get_text (GTK_ENTRY(_followupto_entry)));
-+ if (!followupto.empty())
-+ g_mime_object_set_header ((GMimeObject *) msg, "Followup-To", followupto.str, charset_cstr);
-+
-+ // headers from the ui: Reply-To
-+ const StringView replyto (gtk_entry_get_text (GTK_ENTRY(_replyto_entry)));
-+ if (!replyto.empty())
-+ g_mime_object_set_header ((GMimeObject *) msg, "Reply-To", replyto.str, charset_cstr);
-+
-+ // headers from posting profile(via prefs): X-Face
-+ if (!profile.xface.empty())
-+ {
-+ std::string f;
-+ f += " " + profile.xface;
-+ g_mime_object_set_header ((GMimeObject *) msg, "X-Face", f.c_str(), charset_cstr);
-+ }
-+
-+ // add the 'hidden headers' (references)
-+ const gchar * h_key_str;
-+ foreach_const (str2str_t, _hidden_headers, it)
-+ if ((mode==DRAFTING) || (it->first.find ("X-Draft-")!=0))
-+ {
-+ h_key_str = it->first.c_str();
-+ if ( g_ascii_strncasecmp (h_key_str, "Content", 7) )
-+ {
-+ g_mime_object_set_header ((GMimeObject *) msg, it->first.c_str(), it->second.c_str(), charset_cstr);
-+ }
-+ }
-+
-+ // build headers from the 'more headers' entry field
-+ std::map<std::string,std::string> headers;
-+ GtkTextBuffer * buf (_headers_buf);
-+ GtkTextIter start, end;
-+ gtk_text_buffer_get_bounds (buf, &start, &end);
-+ char * pch = gtk_text_buffer_get_text (buf, &start, &end, false);
-+ StringView key, val, v(pch);
-+ v.trim ();
-+ while (v.pop_token (val, '\n') && val.pop_token(key,':')) {
-+ key.trim ();
-+ val.eat_chars (1);
-+ val.trim ();
-+ std::string key_str (key.to_string());
-+ if (extra_header_is_editable (key, val))
-+ g_mime_object_set_header ((GMimeObject *) msg, key.to_string().c_str(),
-+ val.to_string().c_str(), charset_cstr);
-+ }
-+ g_free (pch);
-+
-+ // User-Agent
-+ if ((mode==POSTING || mode == UPLOADING) && _prefs.get_flag (USER_AGENT_PREFS_KEY, true))
-+ g_mime_object_set_header ((GMimeObject *) msg, "User-Agent", get_user_agent(), charset_cstr);
-+
-+ // Message-ID for single text-only posts
-+ if (mode==DRAFTING || ((mode==POSTING || mode==UPLOADING) && _prefs.get_flag (MESSAGE_ID_PREFS_KEY, false))) {
-+ const std::string message_id = generate_message_id(profile);
-+ pan_g_mime_message_set_message_id (msg, message_id.c_str());
-+ }
-+
-+ // body & charset
-+ {
-+ std::string body;
-+ if (copy_body) body = get_body();
-+
-+ GMimeStream * stream = g_mime_stream_mem_new_with_buffer (body.c_str(), body.size());
-+
-+ const std::string charset ((mode==POSTING && !_charset.empty()) ? _charset : "UTF-8");
-+ if (charset != "UTF-8") {
-+ // add a wrapper to convert from UTF-8 to $charset
-+ GMimeStream * tmp = g_mime_stream_filter_new (stream);
-+ g_object_unref (stream);
-+ GMimeFilter * filter = g_mime_filter_charset_new ("UTF-8", charset.c_str());
-+ g_mime_stream_filter_add (GMIME_STREAM_FILTER(tmp), filter);
-+ g_object_unref (filter);
-+ stream = tmp;
-+ }
-+ GMimeDataWrapper * content_object = g_mime_data_wrapper_new_with_stream (stream, GMIME_CONTENT_ENCODING_DEFAULT);
-+ g_object_unref (stream);
-+ GMimePart * part = g_mime_part_new ();
-+ g_mime_part_set_content (part, content_object);
-+
-+ pch = g_strdup_printf ("text/plain; charset=%s", charset.c_str());
-+ GMimeContentType * type = g_mime_content_type_parse (NULL, pch);
-+ g_free (pch);
-+ g_mime_object_set_content_type ((GMimeObject *) part, type); // part owns type now. type isn't refcounted.
-+
-+ if (mode != UPLOADING) g_mime_part_set_content_encoding (part, _enc);
-+
-+ g_object_unref (content_object);
-+ g_mime_message_set_mime_part (msg, GMIME_OBJECT(part));
-+ g_object_unref (part);
-+ }
-+
-+ return msg;
-+
- #else
-+
-+ GMimeMessage * msg(0);
-+ msg = g_mime_message_new (false);
-+
-+ // headers from the ui: From
-+ const Profile profile (get_current_profile ());
-+ std::string s;
-+ profile.get_from_header (s);
- g_mime_message_set_sender (msg, s.c_str());
--#endif
-
- // headers from the ui: Subject
- const char * cpch (gtk_entry_get_text (GTK_ENTRY(_subject_entry)));
- if (cpch) {
--#ifdef HAVE_GMIME_30
-- g_mime_message_set_subject (msg, cpch, NULL);
--#else
- g_mime_message_set_subject (msg, cpch);
--#endif
- }
-
- // headers from the ui: To
- const StringView to (gtk_entry_get_text (GTK_ENTRY(_to_entry)));
- if (!to.empty())
--#ifdef HAVE_GMIME_30
-- pan_g_mime_message_add_recipients_from_string (msg, GMIME_ADDRESS_TYPE_TO, to.str);
--#else
- pan_g_mime_message_add_recipients_from_string (msg, GMIME_RECIPIENT_TYPE_TO, to.str);
--#endif
-
- // headers from the ui: Newsgroups
- const StringView groups (gtk_entry_get_text (GTK_ENTRY(_groups_entry)));
- if (!groups.empty())
--#ifdef HAVE_GMIME_30
-- g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", groups.str, NULL);
--#else
- g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", groups.str);
--#endif
-
- // headers from the ui: Followup-To
- const StringView followupto (gtk_entry_get_text (GTK_ENTRY(_followupto_entry)));
- if (!followupto.empty())
--#ifdef HAVE_GMIME_30
-- g_mime_object_set_header ((GMimeObject *) msg, "Followup-To", followupto.str, NULL);
--#else
- g_mime_object_set_header ((GMimeObject *) msg, "Followup-To", followupto.str);
--#endif
-
- // headers from the ui: Reply-To
- const StringView replyto (gtk_entry_get_text (GTK_ENTRY(_replyto_entry)));
- if (!replyto.empty())
--#ifdef HAVE_GMIME_30
-- g_mime_object_set_header ((GMimeObject *) msg, "Reply-To", replyto.str, NULL);
--#else
- g_mime_object_set_header ((GMimeObject *) msg, "Reply-To", replyto.str);
--#endif
-
- // headers from posting profile(via prefs): X-Face
- if (!profile.xface.empty())
- {
- std::string f;
- f += " " + profile.xface;
--#ifdef HAVE_GMIME_30
-- g_mime_object_set_header ((GMimeObject *) msg, "X-Face", f.c_str(), NULL);
--#else
- g_mime_object_set_header ((GMimeObject *) msg, "X-Face", f.c_str());
--#endif
- }
-
- // add the 'hidden headers'
- foreach_const (str2str_t, _hidden_headers, it)
- if ((mode==DRAFTING) || (it->first.find ("X-Draft-")!=0))
--#ifdef HAVE_GMIME_30
-- g_mime_object_set_header ((GMimeObject *) msg, it->first.c_str(), it->second.c_str(), NULL);
--#else
- g_mime_object_set_header ((GMimeObject *) msg, it->first.c_str(), it->second.c_str());
--#endif
-
- // build headers from the 'more headers' entry field
- std::map<std::string,std::string> headers;
-@@ -1693,23 +1785,14 @@ PostUI :: new_message_from_ui (Mode mode, bool copy_body)
- val.trim ();
- std::string key_str (key.to_string());
- if (extra_header_is_editable (key, val))
--#ifdef HAVE_GMIME_30
-- g_mime_object_set_header ((GMimeObject *) msg, key.to_string().c_str(),
-- val.to_string().c_str(), NULL);
--#else
- g_mime_object_set_header ((GMimeObject *) msg, key.to_string().c_str(),
- val.to_string().c_str());
--#endif
- }
- g_free (pch);
-
- // User-Agent
- if ((mode==POSTING || mode == UPLOADING) && _prefs.get_flag (USER_AGENT_PREFS_KEY, true))
--#ifdef HAVE_GMIME_30
-- g_mime_object_set_header ((GMimeObject *) msg, "User-Agent", get_user_agent(), NULL);
--#else
- g_mime_object_set_header ((GMimeObject *) msg, "User-Agent", get_user_agent());
--#endif
-
- // Message-ID for single text-only posts
- if (mode==DRAFTING || ((mode==POSTING || mode==UPLOADING) && _prefs.get_flag (MESSAGE_ID_PREFS_KEY, false))) {
-@@ -1738,19 +1821,10 @@ PostUI :: new_message_from_ui (Mode mode, bool copy_body)
- g_object_unref (stream);
- GMimePart * part = g_mime_part_new ();
- pch = g_strdup_printf ("text/plain; charset=%s", charset.c_str());
--
--#ifdef HAVE_GMIME_30
-- GMimeContentType * type = g_mime_content_type_parse (NULL, pch);
--#else
- GMimeContentType * type = g_mime_content_type_new_from_string (pch);
--#endif
- g_free (pch);
- g_mime_object_set_content_type ((GMimeObject *) part, type); // part owns type now. type isn't refcounted.
--#ifdef HAVE_GMIME_30
-- g_mime_part_set_content(part, content_object);
--#else
- g_mime_part_set_content_object (part, content_object);
--#endif
- if (mode != UPLOADING) g_mime_part_set_content_encoding (part, _enc);
- g_object_unref (content_object);
- g_mime_message_set_mime_part (msg, GMIME_OBJECT(part));
-@@ -1758,6 +1832,8 @@ PostUI :: new_message_from_ui (Mode mode, bool copy_body)
- }
-
- return msg;
-+
-+#endif
- }
-
- void
---
-GitLab
-
diff --git a/source/xap/pan/pan.SlackBuild b/source/xap/pan/pan.SlackBuild
index 1881feee..b3a8a3bf 100755
--- a/source/xap/pan/pan.SlackBuild
+++ b/source/xap/pan/pan.SlackBuild
@@ -75,8 +75,8 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
-zcat $CWD/0d775547f0e7cf7529538704814469e1db5496f2.patch.gz | patch -p1 --verbose || exit 1
-zcat $CWD/495bfb2eb9228b5b5cef8b50e11af577e4b473f8.patch.gz | patch -p1 --verbose || exit 1
+# Fix gmime3 errors and building with glib-2.68.0:
+zcat $CWD/pan.glib-2.68.0.diff.gz | patch -p1 --verbose || exit 1
# Configure:
CFLAGS="$SLKCFLAGS" \
diff --git a/source/xap/pan/pan.glib-2.68.0.diff b/source/xap/pan/pan.glib-2.68.0.diff
new file mode 100644
index 00000000..e02f28ca
--- /dev/null
+++ b/source/xap/pan/pan.glib-2.68.0.diff
@@ -0,0 +1,743 @@
+diff -aurN pan-0.146/pan/data/article-cache.cc pan-0.146-mod/pan/data/article-cache.cc
+--- pan-0.146/pan/data/article-cache.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/data/article-cache.cc 2021-04-05 18:50:26.132408821 +0200
+@@ -26,12 +26,10 @@
+ #include <sys/stat.h>
+ #include <unistd.h>
+ #include <dirent.h>
+-
+- #include <glib.h>
+- #include <glib/gi18n.h>
+- #include <gmime/gmime.h>
+ }
+-
++#include <glib.h>
++#include <glib/gi18n.h>
++#include <gmime/gmime.h>
+ #include <pan/general/debug.h>
+ #include <pan/general/file-util.h>
+ #include <pan/general/macros.h>
+diff -aurN pan-0.146/pan/data/article-cache.h pan-0.146-mod/pan/data/article-cache.h
+--- pan-0.146/pan/data/article-cache.h 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/data/article-cache.h 2021-04-05 18:49:41.686408990 +0200
+@@ -22,9 +22,7 @@
+
+ #include <map>
+ #include <vector>
+-extern "C" {
+- #include <glib.h> // for guint64
+-}
++#include <glib.h> // for guint64
+ #include <pan/general/string-view.h>
+ #include <pan/general/quark.h>
+
+diff -aurN pan-0.146/pan/data-impl/data-impl.cc pan-0.146-mod/pan/data-impl/data-impl.cc
+--- pan-0.146/pan/data-impl/data-impl.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/data-impl/data-impl.cc 2021-04-05 18:59:43.045406696 +0200
+@@ -22,10 +22,8 @@
+ **************/
+
+ #include <config.h>
+-extern "C" {
+- #include <glib/gi18n.h>
+- #include <glib.h> // for g_build_filename
+-}
++#include <glib/gi18n.h>
++#include <glib.h> // for g_build_filename
+ #include <pan/general/debug.h>
+ #include <pan/general/file-util.h>
+ #include <pan/general/log.h>
+diff -aurN pan-0.146/pan/data-impl/profiles.cc pan-0.146-mod/pan/data-impl/profiles.cc
+--- pan-0.146/pan/data-impl/profiles.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/data-impl/profiles.cc 2021-04-05 07:03:32.546986596 +0200
+@@ -240,7 +240,7 @@
+ }
+ out << indent(--depth) << "</profile>\n";
+ }
+- out << indent(--depth) << "</profiles>\n\n";
++ out << indent(--depth) << "</profiles>\n";
+ out << indent(--depth) << "</posting>\n";
+ }
+
+diff -aurN pan-0.146/pan/general/file-util.cc pan-0.146-mod/pan/general/file-util.cc
+--- pan-0.146/pan/general/file-util.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/general/file-util.cc 2021-04-05 18:44:45.568410120 +0200
+@@ -27,13 +27,12 @@
+ #include <unistd.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+- #include <glib.h>
+- #include <glib/gi18n.h>
+ #ifndef G_OS_WIN32
+ #include <pwd.h>
+ #endif
+ }
+-
++#include <glib.h>
++#include <glib/gi18n.h>
+ #include "debug.h"
+ #include "log.h"
+ #include "messages.h"
+diff -aurN pan-0.146/pan/general/file-util.h pan-0.146-mod/pan/general/file-util.h
+--- pan-0.146/pan/general/file-util.h 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/general/file-util.h 2021-04-05 18:43:33.527410395 +0200
+@@ -25,9 +25,9 @@
+ extern "C" {
+ #include <stddef.h>
+ #include <stdio.h>
+- #include <glib.h>
+- #include <glib/gstdio.h>
+ }
++#include <glib.h>
++#include <glib/gstdio.h>
+ #include <pan/general/string-view.h>
+
+ #define g_freopen freopen
+diff -aurN pan-0.146/pan/general/line-reader.cc pan-0.146-mod/pan/general/line-reader.cc
+--- pan-0.146/pan/general/line-reader.cc 2017-12-23 20:51:55.000000000 +0100
++++ pan-0.146-mod/pan/general/line-reader.cc 2021-04-05 18:45:43.352409899 +0200
+@@ -1,9 +1,7 @@
+ #include <config.h>
+ #include <cstdio>
+ #include <cstdlib>
+-extern "C"{
+- #include <glib/gi18n.h>
+-}
++#include <glib/gi18n.h>
+ #include <cerrno>
+ #include "file-util.h"
+ #include "line-reader.h"
+diff -aurN pan-0.146/pan/general/text-match.cc pan-0.146-mod/pan/general/text-match.cc
+--- pan-0.146/pan/general/text-match.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/general/text-match.cc 2021-04-05 18:46:30.698409719 +0200
+@@ -20,9 +20,9 @@
+ #include <config.h>
+ extern "C" {
+ #include <ctype.h>
+- #include <glib.h>
+- #include <glib/gi18n.h>
+ }
++#include <glib.h>
++#include <glib/gi18n.h>
+ #include "debug.h"
+ #include "log.h"
+ #include "text-match.h"
+diff -aurN pan-0.146/pan/gui/actions.cc pan-0.146-mod/pan/gui/actions.cc
+--- pan-0.146/pan/gui/actions.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/gui/actions.cc 2021-04-05 19:03:23.526405855 +0200
+@@ -18,11 +18,8 @@
+ */
+
+ #include <config.h>
+-extern "C" {
+- #include <glib/gi18n.h>
+- #include "gtk-compat.h"
+-}
+-
++#include "gtk-compat.h"
++#include <glib/gi18n.h>
+ #include <pan/general/macros.h>
+ #include <pan/general/debug.h>
+ #include <pan/data-impl/data-impl.h>
+diff -aurN pan-0.146/pan/gui/dl-headers-ui.cc pan-0.146-mod/pan/gui/dl-headers-ui.cc
+--- pan-0.146/pan/gui/dl-headers-ui.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/gui/dl-headers-ui.cc 2021-04-05 19:04:01.884405709 +0200
+@@ -18,11 +18,9 @@
+ */
+
+ #include <config.h>
+-extern "C" {
+- #include <glib.h>
+- #include <glib/gi18n.h>
+- #include "gtk-compat.h"
+-}
++#include <glib.h>
++#include <glib/gi18n.h>
++#include "gtk-compat.h"
+ #include <pan/general/macros.h>
+ #include <pan/tasks/queue.h>
+ #include <pan/tasks/task-xover.h>
+diff -aurN pan-0.146/pan/gui/group-prefs.cc pan-0.146-mod/pan/gui/group-prefs.cc
+--- pan-0.146/pan/gui/group-prefs.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/gui/group-prefs.cc 2021-04-05 19:04:41.030405560 +0200
+@@ -21,8 +21,8 @@
+ #include <config.h>
+ #include <sys/types.h> // chmod
+ #include <sys/stat.h> // chmod
+- #include <glib.h>
+ }
++#include <glib.h>
+ #include <iostream>
+ #include <fstream>
+ #include <pan/general/file-util.h>
+diff -aurN pan-0.146/pan/gui/group-prefs-dialog.cc pan-0.146-mod/pan/gui/group-prefs-dialog.cc
+--- pan-0.146/pan/gui/group-prefs-dialog.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/gui/group-prefs-dialog.cc 2021-04-05 19:05:19.236405414 +0200
+@@ -19,13 +19,13 @@
+
+ #include <config.h>
+ extern "C" {
+- #include <glib/gi18n.h>
+- #include <glib.h>
+- #include "gtk-compat.h"
+ #ifdef HAVE_GTKSPELL
+ #include <enchant/enchant.h>
+ #endif
+ }
++#include <glib/gi18n.h>
++#include <glib.h>
++#include "gtk-compat.h"
+ #include <pan/general/debug.h>
+ #include <pan/general/macros.h>
+ #include <pan/data/data.h>
+diff -aurN pan-0.146/pan/gui/gui.cc pan-0.146-mod/pan/gui/gui.cc
+--- pan-0.146/pan/gui/gui.cc 2019-05-04 18:10:27.000000000 +0200
++++ pan-0.146-mod/pan/gui/gui.cc 2021-04-05 19:00:49.351406443 +0200
+@@ -25,9 +25,9 @@
+ extern "C" {
+ #include <sys/types.h> // for chmod
+ #include <sys/stat.h> // for chmod
+- #include <glib/gi18n.h>
+ #include <dirent.h>
+ }
++#include <glib/gi18n.h>
+ #include <pan/general/debug.h>
+ #include <pan/general/e-util.h>
+ #include <pan/general/file-util.h>
+diff -aurN pan-0.146/pan/gui/header-pane.cc pan-0.146-mod/pan/gui/header-pane.cc
+--- pan-0.146/pan/gui/header-pane.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/gui/header-pane.cc 2021-04-05 19:06:37.048405117 +0200
+@@ -19,10 +19,9 @@
+
+ extern "C" {
+ #include <config.h>
+- #include <glib/gi18n.h>
+- #include "gtk-compat.h"
+- #include "gtk-compat.h"
+ }
++#include "gtk-compat.h"
++#include <glib/gi18n.h>
+ #include <cctype>
+ #include <cmath>
+ #include <algorithm>
+diff -aurN pan-0.146/pan/gui/post-ui.cc pan-0.146-mod/pan/gui/post-ui.cc
+--- pan-0.146/pan/gui/post-ui.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/gui/post-ui.cc 2021-04-05 07:03:32.564986261 +0200
+@@ -1598,86 +1598,178 @@
+ GMimeMessage*
+ PostUI :: new_message_from_ui (Mode mode, bool copy_body)
+ {
++#ifdef HAVE_GMIME_30
+
+ GMimeMessage * msg(0);
+- msg = g_mime_message_new (false);
++ msg = g_mime_message_new (true);
++ const char * charset_cstr = _charset.c_str();
+
+ // headers from the ui: From
+ const Profile profile (get_current_profile ());
+ std::string s;
+ profile.get_from_header (s);
+-#ifdef HAVE_GMIME_30
+- g_mime_message_add_mailbox (msg, GMIME_ADDRESS_TYPE_SENDER, NULL, s.c_str());
++ g_mime_message_add_mailbox (msg, GMIME_ADDRESS_TYPE_FROM, profile.username.c_str(), profile.address.c_str());
++
++ // headers from the ui: Subject
++ const char * cpch (gtk_entry_get_text (GTK_ENTRY(_subject_entry)));
++ if (cpch) {
++ g_mime_message_set_subject (msg, cpch, charset_cstr);
++ }
++
++ // headers from the ui: To
++ const StringView to (gtk_entry_get_text (GTK_ENTRY(_to_entry)));
++ if (!to.empty())
++ pan_g_mime_message_add_recipients_from_string (msg, GMIME_ADDRESS_TYPE_TO, to.str);
++
++ // headers from the ui: Newsgroups
++ const StringView groups (gtk_entry_get_text (GTK_ENTRY(_groups_entry)));
++ if (!groups.empty())
++ g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", groups.str, charset_cstr);
++
++ // headers from the ui: Followup-To
++ const StringView followupto (gtk_entry_get_text (GTK_ENTRY(_followupto_entry)));
++ if (!followupto.empty())
++ g_mime_object_set_header ((GMimeObject *) msg, "Followup-To", followupto.str, charset_cstr);
++
++ // headers from the ui: Reply-To
++ const StringView replyto (gtk_entry_get_text (GTK_ENTRY(_replyto_entry)));
++ if (!replyto.empty())
++ g_mime_object_set_header ((GMimeObject *) msg, "Reply-To", replyto.str, charset_cstr);
++
++ // headers from posting profile(via prefs): X-Face
++ if (!profile.xface.empty())
++ {
++ std::string f;
++ f += " " + profile.xface;
++ g_mime_object_set_header ((GMimeObject *) msg, "X-Face", f.c_str(), charset_cstr);
++ }
++
++ // add the 'hidden headers' (references)
++ const gchar * h_key_str;
++ foreach_const (str2str_t, _hidden_headers, it)
++ if ((mode==DRAFTING) || (it->first.find ("X-Draft-")!=0))
++ {
++ h_key_str = it->first.c_str();
++ if ( g_ascii_strncasecmp (h_key_str, "Content", 7) )
++ {
++ g_mime_object_set_header ((GMimeObject *) msg, it->first.c_str(), it->second.c_str(), charset_cstr);
++ }
++ }
++
++ // build headers from the 'more headers' entry field
++ std::map<std::string,std::string> headers;
++ GtkTextBuffer * buf (_headers_buf);
++ GtkTextIter start, end;
++ gtk_text_buffer_get_bounds (buf, &start, &end);
++ char * pch = gtk_text_buffer_get_text (buf, &start, &end, false);
++ StringView key, val, v(pch);
++ v.trim ();
++ while (v.pop_token (val, '\n') && val.pop_token(key,':')) {
++ key.trim ();
++ val.eat_chars (1);
++ val.trim ();
++ std::string key_str (key.to_string());
++ if (extra_header_is_editable (key, val))
++ g_mime_object_set_header ((GMimeObject *) msg, key.to_string().c_str(),
++ val.to_string().c_str(), charset_cstr);
++ }
++ g_free (pch);
++
++ // User-Agent
++ if ((mode==POSTING || mode == UPLOADING) && _prefs.get_flag (USER_AGENT_PREFS_KEY, true))
++ g_mime_object_set_header ((GMimeObject *) msg, "User-Agent", get_user_agent(), charset_cstr);
++
++ // Message-ID for single text-only posts
++ if (mode==DRAFTING || ((mode==POSTING || mode==UPLOADING) && _prefs.get_flag (MESSAGE_ID_PREFS_KEY, false))) {
++ const std::string message_id = generate_message_id(profile);
++ pan_g_mime_message_set_message_id (msg, message_id.c_str());
++ }
++
++ // body & charset
++ {
++ std::string body;
++ if (copy_body) body = get_body();
++
++ GMimeStream * stream = g_mime_stream_mem_new_with_buffer (body.c_str(), body.size());
++
++ const std::string charset ((mode==POSTING && !_charset.empty()) ? _charset : "UTF-8");
++ if (charset != "UTF-8") {
++ // add a wrapper to convert from UTF-8 to $charset
++ GMimeStream * tmp = g_mime_stream_filter_new (stream);
++ g_object_unref (stream);
++ GMimeFilter * filter = g_mime_filter_charset_new ("UTF-8", charset.c_str());
++ g_mime_stream_filter_add (GMIME_STREAM_FILTER(tmp), filter);
++ g_object_unref (filter);
++ stream = tmp;
++ }
++ GMimeDataWrapper * content_object = g_mime_data_wrapper_new_with_stream (stream, GMIME_CONTENT_ENCODING_DEFAULT);
++ g_object_unref (stream);
++ GMimePart * part = g_mime_part_new ();
++ g_mime_part_set_content (part, content_object);
++
++ pch = g_strdup_printf ("text/plain; charset=%s", charset.c_str());
++ GMimeContentType * type = g_mime_content_type_parse (NULL, pch);
++ g_free (pch);
++ g_mime_object_set_content_type ((GMimeObject *) part, type); // part owns type now. type isn't refcounted.
++
++ if (mode != UPLOADING) g_mime_part_set_content_encoding (part, _enc);
++
++ g_object_unref (content_object);
++ g_mime_message_set_mime_part (msg, GMIME_OBJECT(part));
++ g_object_unref (part);
++ }
++
++ return msg;
++
+ #else
++
++ GMimeMessage * msg(0);
++ msg = g_mime_message_new (false);
++
++ // headers from the ui: From
++ const Profile profile (get_current_profile ());
++ std::string s;
++ profile.get_from_header (s);
+ g_mime_message_set_sender (msg, s.c_str());
+-#endif
+
+ // headers from the ui: Subject
+ const char * cpch (gtk_entry_get_text (GTK_ENTRY(_subject_entry)));
+ if (cpch) {
+-#ifdef HAVE_GMIME_30
+- g_mime_message_set_subject (msg, cpch, NULL);
+-#else
+ g_mime_message_set_subject (msg, cpch);
+-#endif
+ }
+
+ // headers from the ui: To
+ const StringView to (gtk_entry_get_text (GTK_ENTRY(_to_entry)));
+ if (!to.empty())
+-#ifdef HAVE_GMIME_30
+- pan_g_mime_message_add_recipients_from_string (msg, GMIME_ADDRESS_TYPE_TO, to.str);
+-#else
+ pan_g_mime_message_add_recipients_from_string (msg, GMIME_RECIPIENT_TYPE_TO, to.str);
+-#endif
+
+ // headers from the ui: Newsgroups
+ const StringView groups (gtk_entry_get_text (GTK_ENTRY(_groups_entry)));
+ if (!groups.empty())
+-#ifdef HAVE_GMIME_30
+- g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", groups.str, NULL);
+-#else
+ g_mime_object_set_header ((GMimeObject *) msg, "Newsgroups", groups.str);
+-#endif
+
+ // headers from the ui: Followup-To
+ const StringView followupto (gtk_entry_get_text (GTK_ENTRY(_followupto_entry)));
+ if (!followupto.empty())
+-#ifdef HAVE_GMIME_30
+- g_mime_object_set_header ((GMimeObject *) msg, "Followup-To", followupto.str, NULL);
+-#else
+ g_mime_object_set_header ((GMimeObject *) msg, "Followup-To", followupto.str);
+-#endif
+
+ // headers from the ui: Reply-To
+ const StringView replyto (gtk_entry_get_text (GTK_ENTRY(_replyto_entry)));
+ if (!replyto.empty())
+-#ifdef HAVE_GMIME_30
+- g_mime_object_set_header ((GMimeObject *) msg, "Reply-To", replyto.str, NULL);
+-#else
+ g_mime_object_set_header ((GMimeObject *) msg, "Reply-To", replyto.str);
+-#endif
+
+ // headers from posting profile(via prefs): X-Face
+ if (!profile.xface.empty())
+ {
+ std::string f;
+ f += " " + profile.xface;
+-#ifdef HAVE_GMIME_30
+- g_mime_object_set_header ((GMimeObject *) msg, "X-Face", f.c_str(), NULL);
+-#else
+ g_mime_object_set_header ((GMimeObject *) msg, "X-Face", f.c_str());
+-#endif
+ }
+
+ // add the 'hidden headers'
+ foreach_const (str2str_t, _hidden_headers, it)
+ if ((mode==DRAFTING) || (it->first.find ("X-Draft-")!=0))
+-#ifdef HAVE_GMIME_30
+- g_mime_object_set_header ((GMimeObject *) msg, it->first.c_str(), it->second.c_str(), NULL);
+-#else
+ g_mime_object_set_header ((GMimeObject *) msg, it->first.c_str(), it->second.c_str());
+-#endif
+
+ // build headers from the 'more headers' entry field
+ std::map<std::string,std::string> headers;
+@@ -1693,23 +1785,14 @@
+ val.trim ();
+ std::string key_str (key.to_string());
+ if (extra_header_is_editable (key, val))
+-#ifdef HAVE_GMIME_30
+- g_mime_object_set_header ((GMimeObject *) msg, key.to_string().c_str(),
+- val.to_string().c_str(), NULL);
+-#else
+ g_mime_object_set_header ((GMimeObject *) msg, key.to_string().c_str(),
+ val.to_string().c_str());
+-#endif
+ }
+ g_free (pch);
+
+ // User-Agent
+ if ((mode==POSTING || mode == UPLOADING) && _prefs.get_flag (USER_AGENT_PREFS_KEY, true))
+-#ifdef HAVE_GMIME_30
+- g_mime_object_set_header ((GMimeObject *) msg, "User-Agent", get_user_agent(), NULL);
+-#else
+ g_mime_object_set_header ((GMimeObject *) msg, "User-Agent", get_user_agent());
+-#endif
+
+ // Message-ID for single text-only posts
+ if (mode==DRAFTING || ((mode==POSTING || mode==UPLOADING) && _prefs.get_flag (MESSAGE_ID_PREFS_KEY, false))) {
+@@ -1738,19 +1821,10 @@
+ g_object_unref (stream);
+ GMimePart * part = g_mime_part_new ();
+ pch = g_strdup_printf ("text/plain; charset=%s", charset.c_str());
+-
+-#ifdef HAVE_GMIME_30
+- GMimeContentType * type = g_mime_content_type_parse (NULL, pch);
+-#else
+ GMimeContentType * type = g_mime_content_type_new_from_string (pch);
+-#endif
+ g_free (pch);
+ g_mime_object_set_content_type ((GMimeObject *) part, type); // part owns type now. type isn't refcounted.
+-#ifdef HAVE_GMIME_30
+- g_mime_part_set_content(part, content_object);
+-#else
+ g_mime_part_set_content_object (part, content_object);
+-#endif
+ if (mode != UPLOADING) g_mime_part_set_content_encoding (part, _enc);
+ g_object_unref (content_object);
+ g_mime_message_set_mime_part (msg, GMIME_OBJECT(part));
+@@ -1758,6 +1832,8 @@
+ }
+
+ return msg;
++
++#endif
+ }
+
+ void
+diff -aurN pan-0.146/pan/gui/prefs-ui.cc pan-0.146-mod/pan/gui/prefs-ui.cc
+--- pan-0.146/pan/gui/prefs-ui.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/gui/prefs-ui.cc 2021-04-05 19:07:26.592404928 +0200
+@@ -18,10 +18,8 @@
+ */
+
+ #include <config.h>
+-extern "C" {
+- #include <glib/gi18n.h>
+- #include "gtk-compat.h"
+-}
++#include <glib/gi18n.h>
++#include "gtk-compat.h"
+ #include <pan/general/debug.h>
+ #include <pan/general/macros.h>
+ #include <pan/general/file-util.h>
+diff -aurN pan-0.146/pan/gui/progress-view.cc pan-0.146-mod/pan/gui/progress-view.cc
+--- pan-0.146/pan/gui/progress-view.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/gui/progress-view.cc 2021-04-05 19:08:01.207404796 +0200
+@@ -18,9 +18,7 @@
+ */
+
+ #include <config.h>
+-extern "C" {
+- #include "gtk-compat.h"
+-}
++#include "gtk-compat.h"
+ #include <pan/general/string-view.h>
+ #include <pan/usenet-utils/mime-utils.h>
+ #include "progress-view.h"
+diff -aurN pan-0.146/pan/gui/save-attach-ui.cc pan-0.146-mod/pan/gui/save-attach-ui.cc
+--- pan-0.146/pan/gui/save-attach-ui.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/gui/save-attach-ui.cc 2021-04-05 19:09:43.571404405 +0200
+@@ -18,10 +18,8 @@
+ */
+
+ #include <config.h>
+-extern "C" {
+- #include <glib/gi18n.h>
+- #include "gtk-compat.h"
+-}
++#include <glib/gi18n.h>
++#include "gtk-compat.h"
+ #include <pan/general/debug.h>
+ #include <pan/general/macros.h>
+ #include <pan/icons/pan-pixbufs.h>
+diff -aurN pan-0.146/pan/gui/save-ui.cc pan-0.146-mod/pan/gui/save-ui.cc
+--- pan-0.146/pan/gui/save-ui.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/gui/save-ui.cc 2021-04-05 19:08:49.801404611 +0200
+@@ -18,10 +18,8 @@
+ */
+
+ #include <config.h>
+-extern "C" {
+- #include <glib/gi18n.h>
+- #include "gtk-compat.h"
+-}
++#include <glib/gi18n.h>
++#include "gtk-compat.h"
+ #include <pan/general/debug.h>
+ #include <pan/general/macros.h>
+ #include <pan/icons/pan-pixbufs.h>
+diff -aurN pan-0.146/pan/gui/score-add-ui.cc pan-0.146-mod/pan/gui/score-add-ui.cc
+--- pan-0.146/pan/gui/score-add-ui.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/gui/score-add-ui.cc 2021-04-05 19:10:11.844404298 +0200
+@@ -20,9 +20,7 @@
+ #include <config.h>
+ #include <cassert>
+ #include <climits>
+-extern "C" {
+- #include <glib/gi18n.h>
+-}
++#include <glib/gi18n.h>
+ #include <pan/general/debug.h>
+ #include <pan/general/text-match.h>
+ #include "hig.h"
+diff -aurN pan-0.146/pan/gui/score-view-ui.cc pan-0.146-mod/pan/gui/score-view-ui.cc
+--- pan-0.146/pan/gui/score-view-ui.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/gui/score-view-ui.cc 2021-04-05 19:10:51.159404148 +0200
+@@ -18,10 +18,8 @@
+ */
+
+ #include <config.h>
+-extern "C" {
+- #include <glib/gi18n.h>
+- #include "gtk-compat.h"
+-}
++#include <glib/gi18n.h>
++#include "gtk-compat.h"
+ #include <pan/general/debug.h>
+ #include "pad.h"
+ #include "score-add-ui.h"
+diff -aurN pan-0.146/pan/gui/server-ui.cc pan-0.146-mod/pan/gui/server-ui.cc
+--- pan-0.146/pan/gui/server-ui.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/gui/server-ui.cc 2021-04-05 19:11:30.464403998 +0200
+@@ -21,12 +21,9 @@
+ #include <cstdlib>
+ #include <cstring>
+ #include <climits>
+-extern "C" {
+- #include <glib.h>
+- #include <glib/gi18n.h>
+- #include "gtk-compat.h"
+-}
+-
++#include <glib.h>
++#include <glib/gi18n.h>
++#include "gtk-compat.h"
+ #include <pan/icons/pan-pixbufs.h>
+ #include <pan/general/file-util.h>
+ #include <pan/general/macros.h>
+diff -aurN pan-0.146/pan/gui/task-pane.cc pan-0.146-mod/pan/gui/task-pane.cc
+--- pan-0.146/pan/gui/task-pane.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/gui/task-pane.cc 2021-04-05 19:12:05.829403863 +0200
+@@ -18,11 +18,9 @@
+ */
+
+ #include <config.h>
+-extern "C" {
+- #include <glib.h>
+- #include <glib/gi18n.h>
+- #include "gtk-compat.h"
+-}
++#include <glib.h>
++#include <glib/gi18n.h>
++#include "gtk-compat.h"
+ #include <pan/general/e-util.h>
+ #include <pan/general/debug.h>
+ #include <pan/general/file-util.h>
+diff -aurN pan-0.146/pan/tasks/nntp.cc pan-0.146-mod/pan/tasks/nntp.cc
+--- pan-0.146/pan/tasks/nntp.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/tasks/nntp.cc 2021-04-05 18:57:01.768407312 +0200
+@@ -22,10 +22,8 @@
+ #include <cstdarg>
+ #include <cstdlib> // abort, atoi, strtoul
+ #include <cstdio> // snprintf
+-extern "C" {
+- #include <glib.h>
+- #include <glib/gi18n.h>
+-}
++#include <glib.h>
++#include <glib/gi18n.h>
+ #include <pan/general/debug.h>
+ #include <pan/general/log.h>
+ #include <pan/general/messages.h>
+diff -aurN pan-0.146/pan/tasks/socket.cc pan-0.146-mod/pan/tasks/socket.cc
+--- pan-0.146/pan/tasks/socket.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/tasks/socket.cc 2021-04-05 18:58:43.178406925 +0200
+@@ -21,9 +21,7 @@
+ #include <cstdarg>
+ #include <ctime>
+ #include <cmath>
+-extern "C" {
+- #include <glib.h>
+-}
++#include <glib.h>
+ #include <pan/general/debug.h>
+ #include <pan/general/string-view.h>
+ #include "socket.h"
+diff -aurN pan-0.146/pan/tasks/task-groups.cc pan-0.146-mod/pan/tasks/task-groups.cc
+--- pan-0.146/pan/tasks/task-groups.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/tasks/task-groups.cc 2021-04-05 18:52:54.804408254 +0200
+@@ -20,9 +20,9 @@
+ #include <config.h>
+ #include <cassert>
+ extern "C" {
+- #include <glib/gi18n.h>
+ #include <stdlib.h>
+ }
++#include <glib/gi18n.h>
+ #include <pan/general/debug.h>
+ #include <pan/general/macros.h>
+ #include <pan/general/messages.h>
+diff -aurN pan-0.146/pan/tasks/task-post.cc pan-0.146-mod/pan/tasks/task-post.cc
+--- pan-0.146/pan/tasks/task-post.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/tasks/task-post.cc 2021-04-05 18:54:43.554407839 +0200
+@@ -18,9 +18,7 @@
+ */
+
+ #include <config.h>
+-extern "C" {
+- #include <glib/gi18n.h>
+-}
++#include <glib/gi18n.h>
+ #include "task-post.h"
+ #include <pan/general/debug.h>
+ #include <pan/general/log.h>
+diff -aurN pan-0.146/pan/tasks/task-xover.cc pan-0.146-mod/pan/tasks/task-xover.cc
+--- pan-0.146/pan/tasks/task-xover.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/tasks/task-xover.cc 2021-04-05 18:55:26.528407675 +0200
+@@ -26,10 +26,9 @@
+ #define PROTOTYPES
+ #include <stdio.h>
+ #include <uulib/uudeview.h>
++}
+ #include <glib/gi18n.h>
+ #include <gmime/gmime-utils.h>
+-}
+-
+ #include <fstream>
+ #include <iostream>
+ #include <pan/general/debug.h>
+diff -aurN pan-0.146/pan/tasks/task-xoverinfo.cc pan-0.146-mod/pan/tasks/task-xoverinfo.cc
+--- pan-0.146/pan/tasks/task-xoverinfo.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/tasks/task-xoverinfo.cc 2021-04-05 18:56:10.119407509 +0200
+@@ -24,10 +24,10 @@
+ #define PROTOTYPES
+ #include <stdio.h>
+ #include <uulib/uudeview.h>
+- #include <glib/gi18n.h>
+- #include <gmime/gmime-utils.h>
+ #include <zlib.h>
+ }
++#include <glib/gi18n.h>
++#include <gmime/gmime-utils.h>
+ #include <fstream>
+ #include <iostream>
+ #include <pan/general/debug.h>
+diff -aurN pan-0.146/pan/usenet-utils/filter-info.cc pan-0.146-mod/pan/usenet-utils/filter-info.cc
+--- pan-0.146/pan/usenet-utils/filter-info.cc 2017-12-29 18:15:47.000000000 +0100
++++ pan-0.146-mod/pan/usenet-utils/filter-info.cc 2021-04-05 18:48:09.801409341 +0200
+@@ -18,10 +18,8 @@
+ */
+
+ #include <config.h>
+-extern "C" {
+- #include <glib.h>
+- #include <glib/gi18n.h>
+-}
++#include <glib.h>
++#include <glib/gi18n.h>
+ #include <pan/general/macros.h>
+ #include "filter-info.h"
+
+diff -aurN pan-0.146/README.windows pan-0.146-mod/README.windows
+--- pan-0.146/README.windows 2019-10-12 21:57:23.000000000 +0200
++++ pan-0.146-mod/README.windows 1970-01-01 01:00:00.000000000 +0100
+@@ -1,16 +0,0 @@
+-
+- http://pan.rebelbase.com/download/releases/0.146/
+- has a full list of changes since the previous release.
+-
+- On Windows, Pan requires GTK 2.16.0 or higher, which can be found at
+- <http://gtk-win.sourceforge.net/>.
+-
+- Found a bug? Have a suggestion?
+- Send feedback to the pan-users@nongnu.org mailing list.
+-
+- Information on building Pan on Windows can be found at
+- <https://gitlab.gnome.org/GNOME/pan/raw/master/README.mingw>.
+-
+- See the following page for more information on Pan builds for Windows:
+- <http://pan.rebelbase.com/download/>.
+-