summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2023-09-07 19:41:00 +0000
committer Eric Hameleers <alien@slackware.com>2023-09-07 22:01:03 +0200
commitb6b0663c2b4f8ba0150fcbb958e667e337ee3596 (patch)
tree8666ac06129472d47490f10dfb34ca25e9f7d18d /source
parentbb5293798e5696f1e72797a298a9bc7d7c68f102 (diff)
downloadcurrent-b6b0663c2b4f8ba0150fcbb958e667e337ee3596.tar.gz
current-b6b0663c2b4f8ba0150fcbb958e667e337ee3596.tar.xz
Thu Sep 7 19:41:00 UTC 202320230907194100
d/rust-bindgen-0.68.1-x86_64-1.txz: Upgraded. l/glib2-2.76.5-x86_64-2.txz: Rebuilt. [PATCH] gkeyfile: Temporarily re-allow invalid escapes when parsing strings. l/netpbm-11.03.05-x86_64-1.txz: Upgraded. n/iproute2-6.5.0-x86_64-2.txz: Rebuilt. Fixed build/install script issues due to config files moving from /etc.
Diffstat (limited to 'source')
-rwxr-xr-xsource/d/rust-bindgen/fetch-sources.sh2
-rw-r--r--source/l/glib2/3565.patch75
-rwxr-xr-xsource/l/glib2/glib2.SlackBuild4
-rw-r--r--source/n/iproute2/doinst.sh2
-rwxr-xr-xsource/n/iproute2/iproute2.SlackBuild14
5 files changed, 89 insertions, 8 deletions
diff --git a/source/d/rust-bindgen/fetch-sources.sh b/source/d/rust-bindgen/fetch-sources.sh
index 7064468a1..4085da729 100755
--- a/source/d/rust-bindgen/fetch-sources.sh
+++ b/source/d/rust-bindgen/fetch-sources.sh
@@ -1,7 +1,7 @@
#!/bin/bash
#VERSION=$1
-VERSION=0.66.1
+VERSION=0.68.1
rm -rf rust-bindgen-*.tar.?z cargo-rust-bindgen*
diff --git a/source/l/glib2/3565.patch b/source/l/glib2/3565.patch
new file mode 100644
index 000000000..b85c2bd32
--- /dev/null
+++ b/source/l/glib2/3565.patch
@@ -0,0 +1,75 @@
+From 4a9672764214d5fab569b774fe761ae7d2ec11d9 Mon Sep 17 00:00:00 2001
+From: Philip Withnall <philip@tecnocode.co.uk>
+Date: Wed, 6 Sep 2023 12:08:56 +0100
+Subject: [PATCH] gkeyfile: Temporarily re-allow invalid escapes when parsing
+ strings
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Before commit 71b7efd08a1feadc8ddca31e164034b1f5a6bd74, `GKeyFile`
+incorrectly allowed invalid escape sequences: it would treat the
+sequence as a literal, set a `GError`, but not return failure from the
+function. So if a caller was explicitly checking for returned `GError`s,
+they could detect the invalid escape; but if they were just checking the
+function’s return value, they’d miss it.
+
+This is not correct use of `GError`, and the [Desktop Entry
+Spec](https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s04.html)
+doesn’t allow for invalid escape sequences to be accepted. So it’s wrong
+in both ways.
+
+However, the commit above changed this behaviour without realising it,
+quite close to the 2.78 stable release deadline. There are numerous key
+files in the wild which use invalid escape sequences, and it’s too late
+in the cycle to ‘break’ parsing of all of them.
+
+So, for now, revert to the old behaviour for invalid escape sequences,
+and give people another cycle to adapt to the changes. This will likely
+mean they end up calling `g_key_file_get_value()` rather than
+`g_key_file_get_string()`. See
+https://gitlab.gnome.org/GNOME/glib/-/issues/3098 for tracking
+re-enabling the error handling for invalid escape sequences.
+
+Signed-off-by: Philip Withnall <philip@tecnocode.co.uk>
+
+Fixes: #3095
+See: #3098
+
+--- ./glib/gkeyfile.c.orig 2023-08-31 06:08:59.000000000 -0500
++++ ./glib/gkeyfile.c 2023-09-07 14:28:02.317026537 -0500
+@@ -4325,6 +4325,7 @@
+ break;
+
+ case '\0':
++ g_clear_error (error);
+ g_set_error_literal (error, G_KEY_FILE_ERROR,
+ G_KEY_FILE_ERROR_INVALID_VALUE,
+ _("Key file contains escape character "
+@@ -4347,11 +4348,25 @@
+ sequence[1] = *p;
+ sequence[2] = '\0';
+
++ /* FIXME: This should be a fatal error, but there was a
++ * bug which prevented that being reported for a long
++ * time, so a lot of applications and in-the-field key
++ * files use invalid escape sequences without anticipating
++ * problems. For now (GLib 2.78), message about it; in
++ * future, the behaviour may become fatal again.
++ *
++ * The previous behaviour was to set the #GError but not
++ * return failure from the function, so the caller could
++ * explicitly check for invalid escapes, but also ignore
++ * the error if they want. This is not how #GError is
++ * meant to be used, but the #GKeyFile code is very old.
++ *
++ * See https://gitlab.gnome.org/GNOME/glib/-/issues/3098 */
++ g_clear_error (error);
+ g_set_error (error, G_KEY_FILE_ERROR,
+ G_KEY_FILE_ERROR_INVALID_VALUE,
+ _("Key file contains invalid escape "
+ "sequence “%s”"), sequence);
+- goto error;
+ }
+ }
+ break;
diff --git a/source/l/glib2/glib2.SlackBuild b/source/l/glib2/glib2.SlackBuild
index 739578e0f..f1c79ce1f 100755
--- a/source/l/glib2/glib2.SlackBuild
+++ b/source/l/glib2/glib2.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=glib2
VERSION=${VERSION:-$(echo glib-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
@@ -77,6 +77,8 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
+cat $CWD/3565.patch | patch -p1 --verbose || exit 1
+
# Configure, build, and install:
export CFLAGS="$SLKCFLAGS"
export CXXFLAGS="$SLKCFLAGS"
diff --git a/source/n/iproute2/doinst.sh b/source/n/iproute2/doinst.sh
index ddd598af0..23cad0587 100644
--- a/source/n/iproute2/doinst.sh
+++ b/source/n/iproute2/doinst.sh
@@ -9,6 +9,6 @@ config() {
fi
# Otherwise, we leave the .new copy for the admin to consider...
}
-for file in etc/iproute2/*.new ; do
+for file in usr/lib/iproute2/*.new ; do
config $file
done
diff --git a/source/n/iproute2/iproute2.SlackBuild b/source/n/iproute2/iproute2.SlackBuild
index 65415b864..079ff0e2a 100755
--- a/source/n/iproute2/iproute2.SlackBuild
+++ b/source/n/iproute2/iproute2.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=iproute2
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
#NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
@@ -82,7 +82,8 @@ find . \
make \
CCOPTS="$SLKCFLAGS" \
LIBDIR=/usr/lib${LIBDIRSUFFIX} \
- CONFDIR=/etc/iproute2 \
+ CONF_ETC_DIR?=/etc/iproute2 \
+ CONF_USR_DIR?=/usr/lib/iproute2 \
DOCDIR=/usr/doc/iproute2-$VERSION \
MANDIR=/usr/man \
DBM_INCLUDE=/usr/include/db48 \
@@ -90,7 +91,8 @@ make \
make install \
LIBDIR=/usr/lib${LIBDIRSUFFIX} \
- CONFDIR=/etc/iproute2 \
+ CONF_ETC_DIR?=/etc/iproute2 \
+ CONF_USR_DIR?=/usr/lib/iproute2 \
DOCDIR=/usr/doc/iproute2-$VERSION \
MANDIR=/usr/man \
DBM_INCLUDE=/usr/include/db48 \
@@ -99,6 +101,9 @@ make install \
mkdir -p $PKG/usr
make install LIBDIR=/usr/lib${LIBDIRSUFFIX} DESTDIR=$PKG/usr/ || exit 1
+# Add a configuration override directory:
+mkdir -p $PKG/etc/iproute2
+
# This stuff has always been installed under /sbin rather than
# /usr/sbin, as the latter could possibly be network-mounted, and
# these utilities may be needed to set up that network, so move
@@ -113,7 +118,7 @@ mv $PKG/usr/sbin/* $PKG/sbin
)
# Don't clobber existing config files
-for file in $PKG/etc/iproute2/* ; do
+for file in $PKG/usr/lib/iproute2/* ; do
mv $file ${file}.new
done
@@ -158,4 +163,3 @@ zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $TMP/iproute2-$(echo $VERSION | tr - _)-$ARCH-$BUILD.txz
-