summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/a/gawk/0001-Add-missing-UPREF.patch24
-rwxr-xr-xsource/a/gawk/gawk.SlackBuild4
-rwxr-xr-xsource/a/rpm2tgz/rpm2tgz.SlackBuild2
-rw-r--r--source/a/rpm2tgz/rpmoffset.c145
-rw-r--r--source/a/rpm2tgz/rpmoffset.c.url1
-rw-r--r--source/l/glib2/glib-2.74.1-gnome-keyring-cpu.patch131
-rwxr-xr-xsource/l/glib2/glib2.SlackBuild4
-rwxr-xr-xsource/l/newt/newt.SlackBuild2
-rw-r--r--source/l/pipewire/b46d8a8c921a8da6883610ad4b68da95bf59b59e.patch30
-rwxr-xr-xsource/l/pipewire/pipewire.SlackBuild4
-rwxr-xr-xsource/tcl/tcl/tcl.SlackBuild2
-rwxr-xr-xsource/tcl/tk/tk.SlackBuild2
-rw-r--r--source/x/wayland-protocols/wayland-protocols.url1
13 files changed, 306 insertions, 46 deletions
diff --git a/source/a/gawk/0001-Add-missing-UPREF.patch b/source/a/gawk/0001-Add-missing-UPREF.patch
deleted file mode 100644
index a9a5cda86..000000000
--- a/source/a/gawk/0001-Add-missing-UPREF.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
-Date: Mon, 5 Sep 2022 15:33:49 +0000
-Subject: [PATCH] Add missing UPREF.
-
-Fixes: d2e694ad66a379fa128137d19c10b77b942972f2
-Fixes: https://bugs.gentoo.org/868567
-Fixes: https://lists.gnu.org/archive/html/bug-gawk/2022-09/msg00006.html
----
- interpret.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/interpret.h b/interpret.h
-index 57d060e63f37..268655b2231f 100644
---- a/interpret.h
-+++ b/interpret.h
-@@ -238,6 +238,7 @@ uninitialized_scalar:
- _("reference to uninitialized argument `%s'") :
- _("reference to uninitialized variable `%s'"),
- save_symbol->vname);
-+ UPREF(m);
- PUSH(m);
- break;
-
diff --git a/source/a/gawk/gawk.SlackBuild b/source/a/gawk/gawk.SlackBuild
index 7c0d701e0..63d668eb7 100755
--- a/source/a/gawk/gawk.SlackBuild
+++ b/source/a/gawk/gawk.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=gawk
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-1}
NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "}
@@ -82,8 +82,6 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
-zcat $CWD/0001-Add-missing-UPREF.patch.gz | patch -p1 --verbose || exit 1
-
CFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
diff --git a/source/a/rpm2tgz/rpm2tgz.SlackBuild b/source/a/rpm2tgz/rpm2tgz.SlackBuild
index 7aae64cbd..0fadd0d13 100755
--- a/source/a/rpm2tgz/rpm2tgz.SlackBuild
+++ b/source/a/rpm2tgz/rpm2tgz.SlackBuild
@@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=rpm2tgz
VERSION=1.2.2
-BUILD=${BUILD:-6}
+BUILD=${BUILD:-7}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
diff --git a/source/a/rpm2tgz/rpmoffset.c b/source/a/rpm2tgz/rpmoffset.c
index fd09e623b..99a5c16cf 100644
--- a/source/a/rpm2tgz/rpmoffset.c
+++ b/source/a/rpm2tgz/rpmoffset.c
@@ -4,22 +4,141 @@
/* Wouldn't it be a lot more sane if we could just untar these things? */
-#include <stdlib.h>
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE
+#endif
+
+#include <stdint.h>
#include <stdio.h>
+#include <string.h>
+
+#ifndef ARRAY_SIZE
+# define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
+#endif
+#ifndef BUFSIZ
+# define BUFSIZ 8192
+#endif
-/* These offsets keep getting bigger, so we're going to just bite a 2MB */
-/* chunk of RAM right away so that we have enough. Yeah, horrible */
-/* quick and dirty implementation, but hey -- it gets the job done. */
+#if !defined(__GLIBC__)
+static void *rp_memmem(const void *buf, size_t buflen, const void *pattern, size_t len)
+{
+ char *bf = (char *)buf, *pt = (char *)pattern, *p = bf;
-#define RPMBUFSIZ 2097152
+ while (len <= (buflen - (p - bf))) {
+ if (NULL != (p = memchr(p, (int)(*pt), buflen - (p - bf)))) {
+ if (0 == memcmp(p, pattern, len))
+ return p;
+ else
+ ++p;
+ }
+ else
+ break;
+ }
+ return NULL;
+}
+#define memmem(a,b,c,d) rp_memmem(a,b,c,d)
+#endif
+
+typedef struct {
+ const char *type;
+ const unsigned char *magic;
+ const size_t len;
+} magic_t;
+
+/* LZMA is some fuzzy crap */
+int is_magic_lzma(const char *buf)
+{
+ const unsigned char *ubuf = (const void *)buf;
+ return (ubuf[0] == 0x5d && ubuf[4] < 0x20) &&
+ (!memcmp(buf + 10, "\x00\x00\x00", 3) ||
+ !memcmp(buf + 5, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF", 8));
+}
+#define magic_lzma_len 13
+
+static const unsigned char magic_gzip[] = { '\037', '\213', '\010' };
+static const unsigned char magic_bzip2[] = { 'B', 'Z', 'h' };
+static const unsigned char magic_xz[] = { 0xFD, '7', 'z', 'X', 'Z', 0x00 };
+static const unsigned char magic_zstd[] = { 0x28, 0xB5, 0x2F, 0xFD };
+static const magic_t magics[] = {
+#define DECLARE_MAGIC_T(t) { .type = #t, .magic = magic_##t, .len = sizeof(magic_##t), },
+ DECLARE_MAGIC_T(gzip)
+ DECLARE_MAGIC_T(bzip2)
+ DECLARE_MAGIC_T(xz)
+ DECLARE_MAGIC_T(zstd)
+#undef DECLARE_MAGIC_T
+};
+#define MAGIC_SIZE_MIN 3
+#define MAGIC_SIZE_MAX 13
+
+static int show_magic;
+
+static int magic_finish(const char *magic, size_t offset)
+{
+ if (show_magic)
+ printf("%s ", magic);
+ printf("%zu\n", offset);
+ return 0;
+}
-main()
+int main(int argc, char *argv[])
{
- char *buff = malloc(RPMBUFSIZ),*eb,*p;
- for (p = buff, eb = buff + read(0,buff,RPMBUFSIZ); p < eb; p++)
- if ((*p == '\037' && p[1] == '\213' && p[2] == '\010') ||
- (*p == 'B' && p[1] == 'Z' && p[2] == 'h' && '1' <= p[3] && p[3] <= '9' ))
- printf("%d\n",p - buff),
- exit(0);
- exit(1);
+ size_t i, read_cnt, offset, left, lzma_offset;
+ FILE *fp = stdin;
+ char p[BUFSIZ];
+
+ if (argc == 2 && !strcmp(argv[1], "-v")) {
+ show_magic = 1;
+ --argc;
+ }
+
+ if (argc != 1) {
+ puts("Usage: rpmoffset < rpmfile");
+ return 1;
+ }
+ /* fp = fopen(argv[1], "r"); */
+
+ lzma_offset = 0;
+ offset = left = 0;
+ while (1) {
+ read_cnt = fread(p + left, 1, sizeof(p) - left, fp);
+ if (read_cnt + left < MAGIC_SIZE_MIN)
+ break;
+
+ for (i = 0; i < ARRAY_SIZE(magics); ++i) {
+ const char *needle;
+
+ if (read_cnt + left < magics[i].len)
+ continue;
+
+ needle = memmem(p, sizeof(p), magics[i].magic, magics[i].len);
+ if (needle)
+ return magic_finish(magics[i].type, offset + (needle - p));
+ }
+
+ /* Scan for LZMA magic, but don't return yet ... */
+ if (!lzma_offset && read_cnt + left >= magic_lzma_len) {
+ for (i = 0; i <= read_cnt + left - magic_lzma_len; ++i)
+ if (is_magic_lzma(p + i)) {
+ lzma_offset = offset + i;
+ break;
+ }
+ }
+
+ memmove(p, p + left + read_cnt - MAGIC_SIZE_MIN + 1, MAGIC_SIZE_MIN - 1);
+
+ offset += read_cnt;
+ if (left == 0) {
+ offset -= MAGIC_SIZE_MIN - 1;
+ left = MAGIC_SIZE_MIN - 1;
+ }
+ }
+
+ /* Delay till the end for LZMA archives since it is too fuzzy */
+ if (lzma_offset)
+ return magic_finish("lzma", lzma_offset);
+
+ if (ferror(stdin))
+ perror(argv[0]);
+
+ return 1;
}
diff --git a/source/a/rpm2tgz/rpmoffset.c.url b/source/a/rpm2tgz/rpmoffset.c.url
new file mode 100644
index 000000000..b335732a5
--- /dev/null
+++ b/source/a/rpm2tgz/rpmoffset.c.url
@@ -0,0 +1 @@
+https://gitweb.gentoo.org/proj/rpm2targz.git/plain/rpmoffset.c?id=9abf939441a6d38c512f8723d1c4e62a1f2af611
diff --git a/source/l/glib2/glib-2.74.1-gnome-keyring-cpu.patch b/source/l/glib2/glib-2.74.1-gnome-keyring-cpu.patch
new file mode 100644
index 000000000..8cb07a280
--- /dev/null
+++ b/source/l/glib2/glib-2.74.1-gnome-keyring-cpu.patch
@@ -0,0 +1,131 @@
+https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3029
+https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3039 (backport PR we've used)
+https://bugs.gentoo.org/878995
+https://bugs.gentoo.org/878351
+
+From e2f283d7c8c5ab3aeb2f281a27ec7c0f24b86868 Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode@redhat.com>
+Date: Fri, 28 Oct 2022 11:21:04 -0400
+Subject: [PATCH 1/2] Revert "Handling collision between standard i/o file
+ descriptors and newly created ones"
+
+g_unix_open_pipe tries to avoid the standard io fd range
+when getting pipe fds. This turns out to be a bad idea because
+certain buggy programs rely on it using that range.
+
+This reverts commit d9ba6150909818beb05573f54f26232063492c5b
+--- a/glib/glib-unix.c
++++ b/glib/glib-unix.c
+@@ -108,17 +108,6 @@ g_unix_open_pipe (int *fds,
+ ecode = pipe2 (fds, pipe2_flags);
+ if (ecode == -1 && errno != ENOSYS)
+ return g_unix_set_error_from_errno (error, errno);
+- /* Don't reassign pipes to stdin, stdout, stderr if closed meanwhile */
+- else if (fds[0] < 3 || fds[1] < 3)
+- {
+- int old_fds[2] = { fds[0], fds[1] };
+- gboolean result = g_unix_open_pipe (fds, flags, error);
+- close (old_fds[0]);
+- close (old_fds[1]);
+-
+- if (!result)
+- g_unix_set_error_from_errno (error, errno);
+- }
+ else if (ecode == 0)
+ return TRUE;
+ /* Fall through on -ENOSYS, we must be running on an old kernel */
+@@ -127,19 +116,6 @@ g_unix_open_pipe (int *fds,
+ ecode = pipe (fds);
+ if (ecode == -1)
+ return g_unix_set_error_from_errno (error, errno);
+- /* Don't reassign pipes to stdin, stdout, stderr if closed meanwhile */
+- else if (fds[0] < 3 || fds[1] < 3)
+- {
+- int old_fds[2] = { fds[0], fds[1] };
+- gboolean result = g_unix_open_pipe (fds, flags, error);
+- close (old_fds[0]);
+- close (old_fds[1]);
+-
+- if (!result)
+- g_unix_set_error_from_errno (error, errno);
+-
+- return result;
+- }
+
+ if (flags == 0)
+ return TRUE;
+GitLab
+From 4526620d8c485f5dfba6ddca33f91670982f82eb Mon Sep 17 00:00:00 2001
+From: Ray Strode <rstrode@redhat.com>
+Date: Mon, 31 Oct 2022 09:17:55 -0400
+Subject: [PATCH 2/2] glib-unix: Add test to make sure g_unix_open_pipe will
+ intrude standard range
+
+Now that we know it's a bad idea to avoid the standard io fd range
+when getting pipe fds for g_unix_open_pipe, we should test to make sure
+we don't inadvertently try to do it again.
+
+This commit adds that test.
+--- a/glib/tests/unix.c
++++ b/glib/tests/unix.c
+@@ -24,8 +24,11 @@
+ #include "config.h"
+
+ #include "glib-unix.h"
++#include "gstdio.h"
++
+ #include <string.h>
+ #include <pwd.h>
++#include <unistd.h>
+
+ static void
+ test_pipe (void)
+@@ -52,6 +55,39 @@ test_pipe (void)
+ g_assert (g_str_has_prefix (buf, "hello"));
+ }
+
++static void
++test_pipe_stdio_overwrite (void)
++{
++ GError *error = NULL;
++ int pipefd[2], ret;
++ gboolean res;
++ int stdin_fd;
++
++ stdin_fd = dup (STDIN_FILENO);
++ g_assert_cmpint (stdin_fd, >, 0);
++
++ g_close (STDIN_FILENO, &error);
++ g_assert_no_error (error);
++
++ res = g_unix_open_pipe (pipefd, FD_CLOEXEC, &error);
++ g_assert_no_error (error);
++ g_assert_true (res);
++
++ g_assert_cmpint (pipefd[0], ==, STDIN_FILENO);
++
++ g_close (pipefd[0], &error);
++ g_assert_no_error (error);
++
++ g_close (pipefd[1], &error);
++ g_assert_no_error (error);
++
++ ret = dup2 (stdin_fd, STDIN_FILENO);
++ g_assert_cmpint (ret, >=, 0);
++
++ g_close (stdin_fd, &error);
++ g_assert_no_error (error);
++}
++
+ static void
+ test_error (void)
+ {
+@@ -337,6 +373,7 @@ main (int argc,
+ g_test_init (&argc, &argv, NULL);
+
+ g_test_add_func ("/glib-unix/pipe", test_pipe);
++ g_test_add_func ("/glib-unix/pipe-stdio-overwrite", test_pipe_stdio_overwrite);
+ g_test_add_func ("/glib-unix/error", test_error);
+ g_test_add_func ("/glib-unix/nonblocking", test_nonblocking);
+ g_test_add_func ("/glib-unix/sighup", test_sighup);
+GitLab
diff --git a/source/l/glib2/glib2.SlackBuild b/source/l/glib2/glib2.SlackBuild
index c3ff80303..2424b9616 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 {} \+
+zcat $CWD/glib-2.74.1-gnome-keyring-cpu.patch.gz | patch -p1 --verbose || exit 1
+
# Configure, build, and install:
export CFLAGS="$SLKCFLAGS"
export CXXFLAGS="$SLKCFLAGS"
diff --git a/source/l/newt/newt.SlackBuild b/source/l/newt/newt.SlackBuild
index 5c9ffc0bb..db12aa63e 100755
--- a/source/l/newt/newt.SlackBuild
+++ b/source/l/newt/newt.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=newt
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-7}
+BUILD=${BUILD:-1}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
diff --git a/source/l/pipewire/b46d8a8c921a8da6883610ad4b68da95bf59b59e.patch b/source/l/pipewire/b46d8a8c921a8da6883610ad4b68da95bf59b59e.patch
new file mode 100644
index 000000000..70af7d0ad
--- /dev/null
+++ b/source/l/pipewire/b46d8a8c921a8da6883610ad4b68da95bf59b59e.patch
@@ -0,0 +1,30 @@
+From b46d8a8c921a8da6883610ad4b68da95bf59b59e Mon Sep 17 00:00:00 2001
+From: Wim Taymans <wtaymans@redhat.com>
+Date: Wed, 16 Nov 2022 20:45:38 +0100
+Subject: [PATCH] alsa: force playback start when buffer is full
+
+When we try to play data but the ringbuffer is full, we need to start
+the device or else we will stay in this situation forever and stay
+silent.
+
+Fixes #2830
+---
+ spa/plugins/alsa/alsa-pcm.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/spa/plugins/alsa/alsa-pcm.c b/spa/plugins/alsa/alsa-pcm.c
+index fed56e7bb..5e0a60b37 100644
+--- a/spa/plugins/alsa/alsa-pcm.c
++++ b/spa/plugins/alsa/alsa-pcm.c
+@@ -2128,7 +2128,7 @@ again:
+
+ state->sample_count += total_written;
+
+- if (SPA_UNLIKELY(!state->alsa_started && total_written > 0))
++ if (SPA_UNLIKELY(!state->alsa_started && (total_written > 0 || frames == 0)))
+ do_start(state);
+
+ return 0;
+--
+GitLab
+
diff --git a/source/l/pipewire/pipewire.SlackBuild b/source/l/pipewire/pipewire.SlackBuild
index a601917b7..474b3a626 100755
--- a/source/l/pipewire/pipewire.SlackBuild
+++ b/source/l/pipewire/pipewire.SlackBuild
@@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=pipewire
VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -89,6 +89,8 @@ find . \
# Add media-session:
( cd subprojects ; tar xf $CWD/media-session.tar.lz )
+cat $CWD/b46d8a8c921a8da6883610ad4b68da95bf59b59e.patch | patch -p1 --verbose || exit 1
+
# Configure, build, and install:
export CFLAGS="$SLKCFLAGS"
export CXXFLAGS="$SLKCFLAGS"
diff --git a/source/tcl/tcl/tcl.SlackBuild b/source/tcl/tcl/tcl.SlackBuild
index c42d80aff..4960c0c2c 100755
--- a/source/tcl/tcl/tcl.SlackBuild
+++ b/source/tcl/tcl/tcl.SlackBuild
@@ -23,7 +23,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=tcl
-VERSION=${VERSION:-8.6.12}
+VERSION=${VERSION:-8.6.13}
# See also version number 8.6 in the symlinks below...)
BUILD=${BUILD:-1}
diff --git a/source/tcl/tk/tk.SlackBuild b/source/tcl/tk/tk.SlackBuild
index a15808493..44408ddfc 100755
--- a/source/tcl/tk/tk.SlackBuild
+++ b/source/tcl/tk/tk.SlackBuild
@@ -23,7 +23,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=tk
-VERSION=${VERSION:-8.6.12}
+VERSION=${VERSION:-8.6.13}
# See also version number 8.6 in the symlinks below...)
BUILD=${BUILD:-1}
diff --git a/source/x/wayland-protocols/wayland-protocols.url b/source/x/wayland-protocols/wayland-protocols.url
index e7383601d..799c61be2 100644
--- a/source/x/wayland-protocols/wayland-protocols.url
+++ b/source/x/wayland-protocols/wayland-protocols.url
@@ -1 +1,2 @@
https://wayland.freedesktop.org/releases.html
+https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/1.30/downloads/wayland-protocols-1.30.tar.xz