diff options
Diffstat (limited to 'source/l')
7 files changed, 383 insertions, 3 deletions
diff --git a/source/l/libxml2/libxml2.SlackBuild b/source/l/libxml2/libxml2.SlackBuild index c9a4346ab..3ab2261c5 100755 --- a/source/l/libxml2/libxml2.SlackBuild +++ b/source/l/libxml2/libxml2.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libxml2 VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-3} +BUILD=${BUILD:-1} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/l/pulseaudio/ed3d4f0837f670e5e5afb1afa5bcfc8ff05d3407.patch b/source/l/pulseaudio/ed3d4f0837f670e5e5afb1afa5bcfc8ff05d3407.patch new file mode 100644 index 000000000..3fd2adc0c --- /dev/null +++ b/source/l/pulseaudio/ed3d4f0837f670e5e5afb1afa5bcfc8ff05d3407.patch @@ -0,0 +1,64 @@ +From ed3d4f0837f670e5e5afb1afa5bcfc8ff05d3407 Mon Sep 17 00:00:00 2001 +From: Alper Nebi Yasak <alpernebiyasak@gmail.com> +Date: Fri, 1 Dec 2023 13:28:05 +0300 +Subject: [PATCH] alsa-ucm: Replace port device UCM context assertion with an + error + +The pa_alsa_ucm_set_port() function is passed both a mapping context and +a device port, and both of these refer to their respective UCM device. +While switching over to having one port per mapping per UCM device, I +expected both of these to be the same device struct, so added an assert +checking so. + +This assertion gets triggered when we have multiple UCM verbs declaring +the same UCM device name. The root cause here is that the ports' UCM +device references are set once while creating the ports for the card, so +they happen to be those of a specific verb and may not match those from +a different UCM verb's profiles' mappings. + +Solving the root cause necessitates a larger refactor. What we actually +assume here is that name of the UCM device is same for both the port and +the UCM context, which ends up always true in practice. For now, replace +the assert with a check and error. + +Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com> +Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/802> +--- + src/modules/alsa/alsa-ucm.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/src/modules/alsa/alsa-ucm.c b/src/modules/alsa/alsa-ucm.c +index 7f5136249..018c01739 100644 +--- a/src/modules/alsa/alsa-ucm.c ++++ b/src/modules/alsa/alsa-ucm.c +@@ -1581,6 +1581,7 @@ int pa_alsa_ucm_set_port(pa_alsa_ucm_mapping_context *context, pa_device_port *p + pa_alsa_ucm_config *ucm; + pa_alsa_ucm_device *dev; + pa_alsa_ucm_port_data *data; ++ const char *dev_name, *ucm_dev_name; + + pa_assert(context && context->ucm); + +@@ -1588,8 +1589,17 @@ int pa_alsa_ucm_set_port(pa_alsa_ucm_mapping_context *context, pa_device_port *p + pa_assert(ucm->ucm_mgr); + + data = PA_DEVICE_PORT_DATA(port); +- dev = context->ucm_device; +- pa_assert(dev == data->device); ++ dev = data->device; ++ pa_assert(dev); ++ ++ if (context->ucm_device) { ++ dev_name = pa_proplist_gets(dev->proplist, PA_ALSA_PROP_UCM_NAME); ++ ucm_dev_name = pa_proplist_gets(context->ucm_device->proplist, PA_ALSA_PROP_UCM_NAME); ++ if (!pa_streq(dev_name, ucm_dev_name)) { ++ pa_log_error("Failed to set port %s with wrong UCM context: %s", dev_name, ucm_dev_name); ++ return -1; ++ } ++ } + + return ucm_device_enable(ucm, dev); + } +-- +GitLab + diff --git a/source/l/pulseaudio/f5cacd94abcc47003bd88ad7ca1450de649ffb15.patch b/source/l/pulseaudio/f5cacd94abcc47003bd88ad7ca1450de649ffb15.patch new file mode 100644 index 000000000..6e1bd3389 --- /dev/null +++ b/source/l/pulseaudio/f5cacd94abcc47003bd88ad7ca1450de649ffb15.patch @@ -0,0 +1,95 @@ +From f5cacd94abcc47003bd88ad7ca1450de649ffb15 Mon Sep 17 00:00:00 2001 +From: Alper Nebi Yasak <alpernebiyasak@gmail.com> +Date: Thu, 30 Nov 2023 20:17:22 +0300 +Subject: [PATCH] alsa-ucm: Check UCM verb before working with device status + +Some versions of the ALSA libraries run into a segmentation fault when +we query a UCM device/modifier status without first setting a UCM verb. +It's not a reasonable thing to do anyway, so check for this case and +return an error. Also do the check in other helpers. + +Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com> +Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/801> +--- + src/modules/alsa/alsa-ucm.c | 30 ++++++++++++++++++++++++++++++ + 1 file changed, 30 insertions(+) + +diff --git a/src/modules/alsa/alsa-ucm.c b/src/modules/alsa/alsa-ucm.c +index bb9438f79..7f5136249 100644 +--- a/src/modules/alsa/alsa-ucm.c ++++ b/src/modules/alsa/alsa-ucm.c +@@ -624,6 +624,11 @@ static long ucm_device_status(pa_alsa_ucm_config *ucm, pa_alsa_ucm_device *dev) + char *devstatus; + long status = 0; + ++ if (!ucm->active_verb) { ++ pa_log_error("Failed to get status for UCM device %s: no UCM verb set", dev_name); ++ return -1; ++ } ++ + devstatus = pa_sprintf_malloc("_devstatus/%s", dev_name); + if (snd_use_case_geti(ucm->ucm_mgr, devstatus, &status) < 0) { + pa_log_debug("Failed to get status for UCM device %s", dev_name); +@@ -637,6 +642,11 @@ static long ucm_device_status(pa_alsa_ucm_config *ucm, pa_alsa_ucm_device *dev) + static int ucm_device_disable(pa_alsa_ucm_config *ucm, pa_alsa_ucm_device *dev) { + const char *dev_name = pa_proplist_gets(dev->proplist, PA_ALSA_PROP_UCM_NAME); + ++ if (!ucm->active_verb) { ++ pa_log_error("Failed to disable UCM device %s: no UCM verb set", dev_name); ++ return -1; ++ } ++ + /* If any of dev's conflicting devices is enabled, trying to disable + * dev gives an error despite the fact that it's already disabled. + * Check that dev is enabled to avoid this error. */ +@@ -657,6 +667,11 @@ static int ucm_device_disable(pa_alsa_ucm_config *ucm, pa_alsa_ucm_device *dev) + static int ucm_device_enable(pa_alsa_ucm_config *ucm, pa_alsa_ucm_device *dev) { + const char *dev_name = pa_proplist_gets(dev->proplist, PA_ALSA_PROP_UCM_NAME); + ++ if (!ucm->active_verb) { ++ pa_log_error("Failed to enable UCM device %s: no UCM verb set", dev_name); ++ return -1; ++ } ++ + /* We don't need to enable devices that are already enabled */ + if (ucm_device_status(ucm, dev) > 0) { + pa_log_debug("UCM device %s is already enabled", dev_name); +@@ -707,6 +722,11 @@ static long ucm_modifier_status(pa_alsa_ucm_config *ucm, pa_alsa_ucm_modifier *m + char *modstatus; + long status = 0; + ++ if (!ucm->active_verb) { ++ pa_log_error("Failed to get status for UCM modifier %s: no UCM verb set", mod_name); ++ return -1; ++ } ++ + modstatus = pa_sprintf_malloc("_modstatus/%s", mod_name); + if (snd_use_case_geti(ucm->ucm_mgr, modstatus, &status) < 0) { + pa_log_debug("Failed to get status for UCM modifier %s", mod_name); +@@ -720,6 +740,11 @@ static long ucm_modifier_status(pa_alsa_ucm_config *ucm, pa_alsa_ucm_modifier *m + static int ucm_modifier_disable(pa_alsa_ucm_config *ucm, pa_alsa_ucm_modifier *mod) { + const char *mod_name = pa_proplist_gets(mod->proplist, PA_ALSA_PROP_UCM_NAME); + ++ if (!ucm->active_verb) { ++ pa_log_error("Failed to disable UCM modifier %s: no UCM verb set", mod_name); ++ return -1; ++ } ++ + /* We don't need to disable modifiers that are already disabled */ + if (ucm_modifier_status(ucm, mod) == 0) { + pa_log_debug("UCM modifier %s is already disabled", mod_name); +@@ -738,6 +763,11 @@ static int ucm_modifier_disable(pa_alsa_ucm_config *ucm, pa_alsa_ucm_modifier *m + static int ucm_modifier_enable(pa_alsa_ucm_config *ucm, pa_alsa_ucm_modifier *mod) { + const char *mod_name = pa_proplist_gets(mod->proplist, PA_ALSA_PROP_UCM_NAME); + ++ if (!ucm->active_verb) { ++ pa_log_error("Failed to disable UCM modifier %s: no UCM verb set", mod_name); ++ return -1; ++ } ++ + /* We don't need to enable modifiers that are already enabled */ + if (ucm_modifier_status(ucm, mod) > 0) { + pa_log_debug("UCM modifier %s is already enabled", mod_name); +-- +GitLab + diff --git a/source/l/pulseaudio/pulseaudio.SlackBuild b/source/l/pulseaudio/pulseaudio.SlackBuild index 910670e3c..788149095 100755 --- a/source/l/pulseaudio/pulseaudio.SlackBuild +++ b/source/l/pulseaudio/pulseaudio.SlackBuild @@ -3,7 +3,7 @@ # Slackware build script for pulseaudio # Copyright 2015 Christoph Willing Brisbane, Australia -# Copyright 2016, 2018, 2020 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2016, 2018, 2020, 2024 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=pulseaudio VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} if [ -z "$ARCH" ]; then case "$( uname -m )" in @@ -94,6 +94,10 @@ zcat $CWD/pulseaudio-autostart.patch.gz | patch -p1 --verbose || exit 1 # When built by meson, this patch also required to fix the above issue: zcat $CWD/pulseaudio-autostart-meson.build.patch.gz | patch -p1 --verbose || exit 1 +# Fix 17.0 regressions: +zcat $CWD/ed3d4f0837f670e5e5afb1afa5bcfc8ff05d3407.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/f5cacd94abcc47003bd88ad7ca1450de649ffb15.patch.gz | patch -p1 --verbose || exit 1 + # Configure, build, and install: export CFLAGS="$SLKCFLAGS" export CXXFLAGS="$SLKCFLAGS" diff --git a/source/l/readline/readline-8.2-patches/readline82-008 b/source/l/readline/readline-8.2-patches/readline82-008 new file mode 100644 index 000000000..2d8b368f1 --- /dev/null +++ b/source/l/readline/readline-8.2-patches/readline82-008 @@ -0,0 +1,77 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 8.2 +Patch-ID: readline82-008 + +Bug-Reported-by: +Bug-Reference-ID: +Bug-Reference-URL: + +Bug-Description: + +Add missing prototypes for several function declarations. + +Patch (apply with `patch -p0'): + +*** ../readline-8.2-patched/text.c Wed Oct 27 11:03:59 2021 +--- text.c Thu Nov 16 16:24:58 2023 +*************** +*** 1765,1770 **** + #if defined (READLINE_CALLBACKS) + static int +! _rl_char_search_callback (data) +! _rl_callback_generic_arg *data; + { + _rl_callback_func = 0; +--- 1765,1769 ---- + #if defined (READLINE_CALLBACKS) + static int +! _rl_char_search_callback (_rl_callback_generic_arg *data) + { + _rl_callback_func = 0; +*** ../readline-8.2-patched/bind.c Wed Feb 9 11:02:22 2022 +--- bind.c Thu Nov 16 16:25:17 2023 +*************** +*** 1168,1174 **** + + static int +! parse_comparison_op (s, indp) +! const char *s; +! int *indp; + { + int i, peekc, op; +--- 1168,1172 ---- + + static int +! parse_comparison_op (const char *s, int *indp) + { + int i, peekc, op; +*** ../readline-8.2-patched/rltty.c Fri Feb 18 11:14:22 2022 +--- rltty.c Thu Nov 16 16:25:36 2023 +*************** +*** 81,86 **** + to get the tty settings. */ + static void +! set_winsize (tty) +! int tty; + { + #if defined (TIOCGWINSZ) +--- 81,85 ---- + to get the tty settings. */ + static void +! set_winsize (int tty) + { + #if defined (TIOCGWINSZ) + +*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 7 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 8 diff --git a/source/l/readline/readline-8.2-patches/readline82-009 b/source/l/readline/readline-8.2-patches/readline82-009 new file mode 100644 index 000000000..b3acc4150 --- /dev/null +++ b/source/l/readline/readline-8.2-patches/readline82-009 @@ -0,0 +1,73 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 8.2 +Patch-ID: readline82-009 + +Bug-Reported-by: Stefan H. Holek <stefan@epy.co.at> +Bug-Reference-ID: <50F8DA45-B7F3-4DE1-AB94-19AE42649CDC@epy.co.at> +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2022-10/msg00021.html + +Bug-Description: + +Fix issue where the directory name portion of the word to be completed (the +part that is passed to opendir()) requires both tilde expansion and dequoting. +Readline only performed tilde expansion in this case, so filename completion +would fail. + +Patch (apply with `patch -p0'): + +*** ../readline-8.2-patched/complete.c 2022-04-05 10:47:06.000000000 -0400 +--- complete.c 2022-10-26 15:08:51.000000000 -0400 +*************** +*** 2527,2531 **** + xfree (dirname); + dirname = temp; +! tilde_dirname = 1; + } + +--- 2527,2532 ---- + xfree (dirname); + dirname = temp; +! if (*dirname != '~') +! tilde_dirname = 1; /* indicate successful tilde expansion */ + } + +*************** +*** 2546,2554 **** + users_dirname = savestring (dirname); + } +! else if (tilde_dirname == 0 && rl_completion_found_quote && rl_filename_dequoting_function) + { +! /* delete single and double quotes */ + xfree (dirname); +! dirname = savestring (users_dirname); + } + directory = opendir (dirname); +--- 2547,2560 ---- + users_dirname = savestring (dirname); + } +! else if (rl_completion_found_quote && rl_filename_dequoting_function) + { +! /* We already ran users_dirname through the dequoting function. +! If tilde_dirname == 1, we successfully performed tilde expansion +! on dirname. Now we need to reconcile those results. We either +! just copy the already-dequoted users_dirname or tilde expand it +! if we tilde-expanded dirname. */ +! temp = tilde_dirname ? tilde_expand (users_dirname) : savestring (users_dirname); + xfree (dirname); +! dirname = temp; + } + directory = opendir (dirname); + +*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 8 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 9 diff --git a/source/l/readline/readline-8.2-patches/readline82-010 b/source/l/readline/readline-8.2-patches/readline82-010 new file mode 100644 index 000000000..d2ca5eae2 --- /dev/null +++ b/source/l/readline/readline-8.2-patches/readline82-010 @@ -0,0 +1,67 @@ + READLINE PATCH REPORT + ===================== + +Readline-Release: 8.2 +Patch-ID: readline82-010 + +Bug-Reported-by: Martin Castillo <castilma@uni-bremen.de> +Bug-Reference-ID: <2d42153b-cf65-caba-dff1-cd3bc6268c7e@uni-bremen.de> +Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-readline/2023-01/msg00000.html + +Bug-Description: + +Fix the case where text to be completed from the line buffer (quoted) is +compared to the common prefix of the possible matches (unquoted) and the +quoting makes the former appear to be longer than the latter. Readline +assumes the match doesn't add any characters to the word and doesn't display +multiple matches. + +Patch (apply with `patch -p0'): + +*** ../readline-8.2-patched/complete.c Tue Apr 5 10:47:06 2022 +--- complete.c Sat Jan 7 14:19:45 2023 +*************** +*** 2032,2038 **** + text = rl_copy_text (start, end); + matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char); + /* nontrivial_lcd is set if the common prefix adds something to the word + being completed. */ +! nontrivial_lcd = matches && compare_match (text, matches[0]) != 0; + if (what_to_do == '!' || what_to_do == '@') + tlen = strlen (text); +--- 2038,2060 ---- + text = rl_copy_text (start, end); + matches = gen_completion_matches (text, start, end, our_func, found_quote, quote_char); ++ /* If TEXT contains quote characters, it will be dequoted as part of ++ generating the matches, and the matches will not contain any quote ++ characters. We need to dequote TEXT before performing the comparison. ++ Since compare_match performs the dequoting, and we only want to do it ++ once, we don't call compare_matches after dequoting TEXT; we call ++ strcmp directly. */ + /* nontrivial_lcd is set if the common prefix adds something to the word + being completed. */ +! if (rl_filename_completion_desired && rl_filename_quoting_desired && +! rl_completion_found_quote && rl_filename_dequoting_function) +! { +! char *t; +! t = (*rl_filename_dequoting_function) (text, rl_completion_quote_character); +! xfree (text); +! text = t; +! nontrivial_lcd = matches && strcmp (text, matches[0]) != 0; +! } +! else +! nontrivial_lcd = matches && strcmp (text, matches[0]) != 0; + if (what_to_do == '!' || what_to_do == '@') + tlen = strlen (text); + +*** ../readline-8.2/patchlevel 2013-11-15 08:11:11.000000000 -0500 +--- patchlevel 2014-03-21 08:28:40.000000000 -0400 +*************** +*** 1,3 **** + # Do not edit -- exists only for use by patch + +! 9 +--- 1,3 ---- + # Do not edit -- exists only for use by patch + +! 10 |