diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/a/gawk/0001-Add-missing-UPREF.patch | 24 | ||||
-rwxr-xr-x | source/a/gawk/gawk.SlackBuild | 4 | ||||
-rwxr-xr-x | source/a/rpm2tgz/rpm2tgz.SlackBuild | 2 | ||||
-rw-r--r-- | source/a/rpm2tgz/rpmoffset.c | 145 | ||||
-rw-r--r-- | source/a/rpm2tgz/rpmoffset.c.url | 1 | ||||
-rw-r--r-- | source/l/glib2/glib-2.74.1-gnome-keyring-cpu.patch | 131 | ||||
-rwxr-xr-x | source/l/glib2/glib2.SlackBuild | 4 | ||||
-rwxr-xr-x | source/l/newt/newt.SlackBuild | 2 | ||||
-rw-r--r-- | source/l/pipewire/b46d8a8c921a8da6883610ad4b68da95bf59b59e.patch | 30 | ||||
-rwxr-xr-x | source/l/pipewire/pipewire.SlackBuild | 4 | ||||
-rwxr-xr-x | source/tcl/tcl/tcl.SlackBuild | 2 | ||||
-rwxr-xr-x | source/tcl/tk/tk.SlackBuild | 2 | ||||
-rw-r--r-- | source/x/wayland-protocols/wayland-protocols.url | 1 |
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 |