El mié, 21 ago 2024 a la(s) 6:41 a.m., Stuart Henderson
(s...@spacehopper.org) escribió:
>
> They're using wordexp to replace environment variables, I don't think either 
> glob or the first propose patch handle that.
>
> --
>   Sent from a phone, apologies for poor formatting.
>
>
> On 20 August 2024 18:51:55 Timo Myyrä <timo.my...@bittivirhe.fi> wrote:
>
>> On Tue, Aug 20 2024, José Maldonado wrote:
>>
>>> El mar, 20 ago 2024 a la(s) 12:24 a.m., Timo Myyrä
>>> (timo.my...@bittivirhe.fi) escribió:
>>>>
>>>>
>>>> On Mon, Aug 19 2024, José Maldonado wrote:
>>>>
>>>>> Hi!
>>>>>
>>>>> A new update for x11/dunst, for bump version to v1.11.0 (with patches
>>>>> updates), take a look at the changelog for all the bug fixes and
>>>>> improvements.
>>>>>
>>>>> Added
>>>>>
>>>>> * Add corners, progress_bar_corners and icon_corners options to
>>>>> control which corners to round (#1268)
>>>>> * Support GTK/CSS cursor names on Wayland (#1276)
>>>>> * Make dunst more portable (#1288)
>>>>> * Print detected monitors names (X11) (#1332)
>>>>> * New completions for bash, zsh and fish
>>>>>
>>>>> Changed
>>>>>
>>>>> * Make X11 optional in build (this allows wayland-only dunst) (#1290)
>>>>> * Shell completions are now official and can be installed from the
>>>>> Makefile (#1262, #1263)
>>>>> * Don't search for icon path if icons are disabled (#1301)
>>>>> * Eagerly parse and cache colors (#1306)
>>>>> * Update dunstctl manpage (#1298)
>>>>> * Update documentation (#1315, #1334)
>>>>>
>>>>> Fixed
>>>>>
>>>>> * Fix settings initialization (this prevented --print and
>>>>> --startup_notification from working) (#1299)
>>>>> * Rework timer logic and fix error about Glib source ID for good (#1308, 
>>>>> #1196)
>>>>> * Prevent memory corruption in XrmSetDatabase (#1256, #1291)
>>>>> * Don't try to print NULL strings (#1323)
>>>>> * Do not resolve icon paths twice (#1307, #1314)
>>>>> * Don't crash the test suite if librsvg is not present (#1329)
>>>>> * Fix memory leak in DBus RuleEnable (#1328)
>>>>> * Fix dunstctl rule (#1281)
>>>>> * Remove newlines from icon logging (#1296)
>>>>> * Prevent make from failing if git tags are not found (#1287)
>>>>> * Fix some typos (#1324, #1325, #1279)
>>>>>
>>>>> --
>>>>> "Dios en su Cielo, todo bien en la Tierra"
>>>>> ***********************************************
>>>>>
>>>>> Index: Makefile
>>>>> ===================================================================
>>>>> RCS file: /cvs/ports/x11/dunst/Makefile,v
>>>>> diff -u -p -r1.16 Makefile
>>>>> --- Makefile  2 Nov 2023 11:49:20 -0000       1.16
>>>>> +++ Makefile  20 Aug 2024 00:57:35 -0000
>>>>> @@ -2,8 +2,7 @@ COMMENT =     customizable and lightweight n
>>>>>
>>>>> GH_ACCOUNT = dunst-project
>>>>> GH_PROJECT = dunst
>>>>> -GH_TAGNAME = v1.9.2
>>>>> -REVISION =   0
>>>>> +GH_TAGNAME = v1.11.0
>>>>>
>>>>> CATEGORIES = x11
>>>>>
>>>>> Index: distinfo
>>>>> ===================================================================
>>>>> RCS file: /cvs/ports/x11/dunst/distinfo,v
>>>>> diff -u -p -r1.9 distinfo
>>>>> --- distinfo  8 May 2023 17:58:46 -0000       1.9
>>>>> +++ distinfo  20 Aug 2024 00:57:35 -0000
>>>>> @@ -1,2 +1,2 @@
>>>>> -SHA256 (dunst-1.9.2.tar.gz) = 
>>>>> +mzkXAr0uuGIsNZ5pbqS+Pm35DAbsbtHboLfJrzp5xo=
>>>>> -SIZE (dunst-1.9.2.tar.gz) = 4614703
>>>>> +SHA256 (dunst-1.11.0.tar.gz) = 
>>>>> McDrdJyoPat/WvM765Ucn5qEUSY/zubLz4uj3tvy4fE=
>>>>> +SIZE (dunst-1.11.0.tar.gz) = 4645279
>>>>> Index: patches/patch-config_mk
>>>>> ===================================================================
>>>>> RCS file: /cvs/ports/x11/dunst/patches/patch-config_mk,v
>>>>> diff -u -p -r1.8 patch-config_mk
>>>>> --- patches/patch-config_mk   8 May 2023 17:58:46 -0000       1.8
>>>>> +++ patches/patch-config_mk   20 Aug 2024 00:57:35 -0000
>>>>> @@ -1,14 +1,14 @@
>>>>> Index: config.mk
>>>>> --- config.mk.orig
>>>>> +++ config.mk
>>>>> -@@ -42,8 +42,8 @@ endif
>>>>> -
>>>>> +@@ -52,8 +52,8 @@ endif
>>>>> +
>>>>> # flags
>>>>> DEFAULT_CPPFLAGS = -Wno-gnu-zero-variadic-macro-arguments 
>>>>> -D_DEFAULT_SOURCE -DVERSION=\"${VERSION}\" -DSYSCONFDIR=\"${SYSCONFDIR}\"
>>>>> --DEFAULT_CFLAGS   = -g -std=gnu99 -pedantic -Wall 
>>>>> -Wno-overlength-strings -Os ${ENABLE_WAYLAND} ${EXTRA_CFLAGS}
>>>>> +-DEFAULT_CFLAGS   = -g -std=gnu11 -pedantic -Wall 
>>>>> -Wno-overlength-strings -Os ${ENABLE_WAYLAND} ${ENABLE_X11} 
>>>>> ${EXTRA_CFLAGS}
>>>>> -DEFAULT_LDFLAGS  = -lm -lrt
>>>>> -+DEFAULT_CFLAGS   = -g -std=gnu99 -pedantic -Wall 
>>>>> -Wno-overlength-strings ${ENABLE_WAYLAND} ${EXTRA_CFLAGS}
>>>>> ++DEFAULT_CFLAGS   = -g -std=gnu11 -pedantic -Wall 
>>>>> -Wno-overlength-strings ${ENABLE_WAYLAND} ${ENABLE_X11} ${EXTRA_CFLAGS}
>>>>> +DEFAULT_LDFLAGS  = -lm
>>>>> -
>>>>> +
>>>>> CPPFLAGS_DEBUG := -DDEBUG_BUILD
>>>>> CFLAGS_DEBUG   := -O0
>>>>> Index: patches/patch-docs_dunst_5_pod
>>>>> ===================================================================
>>>>> RCS file: /cvs/ports/x11/dunst/patches/patch-docs_dunst_5_pod,v
>>>>> diff -u -p -r1.4 patch-docs_dunst_5_pod
>>>>> --- patches/patch-docs_dunst_5_pod    8 May 2023 17:58:46 -0000       1.4
>>>>> +++ patches/patch-docs_dunst_5_pod    20 Aug 2024 00:57:35 -0000
>>>>> @@ -1,7 +1,7 @@
>>>>> Index: docs/dunst.5.pod
>>>>> --- docs/dunst.5.pod.orig
>>>>> +++ docs/dunst.5.pod
>>>>> -@@ -409,7 +409,7 @@ Hide the count of stacked duplicate notifications.
>>>>> +@@ -444,7 +444,7 @@ Hide the count of stacked duplicate notifications.
>>>>> Show an indicator if a notification contains actions and/or open-able 
>>>>> URLs. See
>>>>> ACTIONS below for further details.
>>>>>
>>>>> @@ -10,16 +10,16 @@ Index: docs/dunst.5.pod
>>>>>
>>>>> Can be set to a colon-separated list of paths to search for icons to use 
>>>>> with
>>>>> notifications.
>>>>> -@@ -423,7 +423,7 @@ replace this and will need new settings.
>>>>> - Comma-separated of names of the the themes to use for looking up icons. 
>>>>> This has
>>>>> - to be the name of the directory in which the theme is located, not the
>>>>> +@@ -458,7 +458,7 @@ replace this and will need new settings.
>>>>> + Comma-separated list of names of the the themes to use for looking up 
>>>>> icons. This
>>>>> + as to be the name of the directory in which the theme is located, not 
>>>>> the
>>>>> human-friendly name of the theme. So for example, the theme B<Breeze 
>>>>> Dark> is
>>>>> -located in F</usr/share/icons/breeze-dark>. In this case you have to set 
>>>>> the
>>>>> +located in F<${PREFIX}/share/icons/breeze-dark>. In this case you have 
>>>>> to set the
>>>>> theme to B<breeze-dark>.
>>>>>
>>>>> The first theme in the list is the most important. Only if the icon 
>>>>> cannot be
>>>>> -@@ -461,12 +461,12 @@ Maximum number of notifications that will be kept 
>>>>> in h
>>>>> +@@ -496,12 +496,12 @@ Maximum number of notifications that will be kept 
>>>>> in history. After that limit
>>>>> is reached, older notifications will be deleted once a new one arrives. 
>>>>> See
>>>>> HISTORY.
>>>>>
>>>>> Index: patches/patch-dunstrc
>>>>> ===================================================================
>>>>> RCS file: /cvs/ports/x11/dunst/patches/patch-dunstrc,v
>>>>> diff -u -p -r1.7 patch-dunstrc
>>>>> --- patches/patch-dunstrc     8 May 2023 17:58:46 -0000       1.7
>>>>> +++ patches/patch-dunstrc     20 Aug 2024 00:57:35 -0000
>>>>> @@ -1,16 +1,16 @@
>>>>> Index: dunstrc
>>>>> --- dunstrc.orig
>>>>> +++ dunstrc
>>>>> -@@ -217,7 +217,7 @@
>>>>> +@@ -230,7 +230,7 @@
>>>>>  max_icon_size = 128
>>>>>
>>>>> -     # Paths to default icons (only neccesary when not using recursive 
>>>>> icon lookup)
>>>>> +     # Paths to default icons (only necessary when not using recursive 
>>>>> icon lookup)
>>>>> -    icon_path = 
>>>>> /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
>>>>> +    icon_path = 
>>>>> ${LOCALBASE}/share/icons/gnome/16x16/status/:${LOCALBASE}/share/icons/gnome/16x16/devices/
>>>>>
>>>>>  ### History ###
>>>>>
>>>>> -@@ -231,10 +231,10 @@
>>>>> +@@ -244,10 +244,10 @@
>>>>>  ### Misc/Advanced ###
>>>>>
>>>>>  # dmenu path.
>>>>> Index: patches/patch-src_dunst_c
>>>>> ===================================================================
>>>>> RCS file: /cvs/ports/x11/dunst/patches/patch-src_dunst_c,v
>>>>> diff -u -p -r1.8 patch-src_dunst_c
>>>>> --- patches/patch-src_dunst_c 8 May 2023 17:58:46 -0000       1.8
>>>>> +++ patches/patch-src_dunst_c 20 Aug 2024 00:57:35 -0000
>>>>> @@ -1,12 +1,12 @@
>>>>> Index: src/dunst.c
>>>>> --- src/dunst.c.orig
>>>>> +++ src/dunst.c
>>>>> -@@ -100,7 +100,7 @@ static gboolean run(void *data)
>>>>> +@@ -162,7 +162,7 @@ static gboolean run(void *data)
>>>>>              gint64 sleep = timeout_at - now;
>>>>>              sleep = MAX(sleep, 1000); // Sleep at least 1ms
>>>>>
>>>>> -                LOG_D("Sleeping for %li ms", sleep/1000);
>>>>> +                LOG_D("Sleeping for %lli ms", (long long)sleep/1000);
>>>>>
>>>>> -                 if (sleep >= 0) {
>>>>> -                         if (reason == 0 || next_timeout < now || 
>>>>> timeout_at < next_timeout) {
>>>>> +                 next_timeout_id = g_timeout_add(sleep/1000, run, NULL);
>>>>> +         }
>>>>> Index: patches/patch-src_input_c
>>>>> ===================================================================
>>>>> RCS file: patches/patch-src_input_c
>>>>> diff -N patches/patch-src_input_c
>>>>> --- patches/patch-src_input_c 6 Jul 2022 19:30:02 -0000       1.3
>>>>> +++ /dev/null 1 Jan 1970 00:00:00 -0000
>>>>> @@ -1,13 +0,0 @@
>>>>> -Index: src/input.c
>>>>> ---- src/input.c.orig
>>>>> -+++ src/input.c
>>>>> -@@ -4,7 +4,9 @@
>>>>> - #include "settings.h"
>>>>> - #include "queues.h"
>>>>> - #include <stddef.h>
>>>>> -+#ifdef __linux__
>>>>> - #include <linux/input-event-codes.h>
>>>>> -+#endif
>>>>> -
>>>>> - int get_notification_clickable_height(struct notification *n, bool 
>>>>> first, bool last)
>>>>> - {
>>>>> Index: patches/patch-src_notification_c
>>>>> ===================================================================
>>>>> RCS file: /cvs/ports/x11/dunst/patches/patch-src_notification_c,v
>>>>> diff -u -p -r1.7 patch-src_notification_c
>>>>> --- patches/patch-src_notification_c  8 May 2023 17:58:46 -0000       1.7
>>>>> +++ patches/patch-src_notification_c  20 Aug 2024 00:57:35 -0000
>>>>> @@ -1,16 +1,20 @@
>>>>> Index: src/notification.c
>>>>> --- src/notification.c.orig
>>>>> +++ src/notification.c
>>>>> -@@ -60,7 +60,7 @@ void notification_print(const struct notification *n)
>>>>> -         printf("\ticon_id: '%s'\n", n->icon_id);
>>>>> +@@ -60,9 +60,9 @@ void notification_print(const struct notification *n)
>>>>> +         printf("\ticon_id: '%s'\n", STR_NN(n->icon_id));
>>>>>      printf("\tdesktop_entry: '%s'\n", n->desktop_entry ? 
>>>>> n->desktop_entry : "");
>>>>> -         printf("\tcategory: %s\n", n->category);
>>>>> +         printf("\tcategory: %s\n", STR_NN(n->category));
>>>>> -        printf("\ttimeout: %ld\n", n->timeout/1000);
>>>>> +-        printf("\tstart: %ld\n", n->start);
>>>>> +-        printf("\ttimestamp: %ld\n", n->timestamp);
>>>>> +        printf("\ttimeout: %lld\n", (long long)n->timeout/1000);
>>>>> ++        printf("\tstart: %lld\n", n->start);
>>>>> ++        printf("\ttimestamp: %lld\n", n->timestamp);
>>>>>      printf("\turgency: %s\n", 
>>>>> notification_urgency_to_string(n->urgency));
>>>>>      printf("\ttransient: %d\n", n->transient);
>>>>> -         printf("\tformatted: '%s'\n", n->msg);
>>>>> -@@ -140,8 +140,8 @@ void notification_run_script(struct notification *n)
>>>>> +         printf("\tformatted: '%s'\n", STR_NN(n->msg));
>>>>> +@@ -143,8 +143,8 @@ void notification_run_script(struct notification *n)
>>>>>                              // Set environment variables
>>>>>                              gchar *n_id_str = g_strdup_printf("%i", 
>>>>> n->id);
>>>>>                              gchar *n_progress_str = 
>>>>> g_strdup_printf("%i", n->progress);
>>>>> @@ -21,7 +25,7 @@ Index: src/notification.c
>>>>>                              safe_setenv("DUNST_APP_NAME",  appname);
>>>>>                              safe_setenv("DUNST_SUMMARY",   summary);
>>>>>                              safe_setenv("DUNST_BODY",      body);
>>>>> -@@ -684,14 +684,14 @@ void notification_update_text_to_render(struct 
>>>>> notific
>>>>> +@@ -705,14 +705,15 @@ void notification_update_text_to_render(struct 
>>>>> notification *n)
>>>>>              char *new_buf;
>>>>>              if (hours > 0) {
>>>>>                      new_buf =
>>>>> @@ -36,6 +40,7 @@ Index: src/notification.c
>>>>>              } else {
>>>>> -                        new_buf = g_strdup_printf("%s (%lds old)", buf, 
>>>>> seconds);
>>>>> +                        new_buf = g_strdup_printf("%s (%llds old)", buf, 
>>>>> seconds);
>>>>> ++
>>>>>              }
>>>>>
>>>>>              g_free(buf);
>>>>> Index: patches/patch-src_settings_h
>>>>> ===================================================================
>>>>> RCS file: patches/patch-src_settings_h
>>>>> diff -N patches/patch-src_settings_h
>>>>> --- patches/patch-src_settings_h      2 Nov 2023 11:49:21 -0000       1.4
>>>>> +++ /dev/null 1 Jan 1970 00:00:00 -0000
>>>>> @@ -1,12 +0,0 @@
>>>>> -Index: src/settings.h
>>>>> ---- src/settings.h.orig
>>>>> -+++ src/settings.h
>>>>> -@@ -13,6 +13,8 @@
>>>>> -
>>>>> - #define LIST_END (-1)
>>>>> -
>>>>> -+enum mouse_button { BTN_LEFT=1, BTN_RIGHT, BTN_MIDDLE, BTN_TOUCH };
>>>>> -+
>>>>> - enum alignment { ALIGN_LEFT, ALIGN_CENTER, ALIGN_RIGHT };
>>>>> - enum vertical_alignment { VERTICAL_TOP, VERTICAL_CENTER, 
>>>>> VERTICAL_BOTTOM };
>>>>> - enum separator_color { SEP_FOREGROUND, SEP_AUTO, SEP_FRAME, SEP_CUSTOM 
>>>>> };
>>>>> Index: patches/patch-src_utils_c
>>>>> ===================================================================
>>>>> RCS file: patches/patch-src_utils_c
>>>>> diff -N patches/patch-src_utils_c
>>>>> --- /dev/null 1 Jan 1970 00:00:00 -0000
>>>>> +++ patches/patch-src_utils_c 20 Aug 2024 00:57:35 -0000
>>>>> @@ -0,0 +1,54 @@
>>>>> +Index: src/utils.c
>>>>> +--- src/utils.c.orig
>>>>> ++++ src/utils.c
>>>>> +@@ -13,7 +13,6 @@
>>>>> + #include <sys/stat.h>
>>>>> + #include <time.h>
>>>>> + #include <unistd.h>
>>>>> +-#include <wordexp.h>
>>>>> +
>>>>> + #include "log.h"
>>>>> + #include "settings_data.h"
>>>>> +@@ -180,34 +179,16 @@ int string_array_length(char **s)
>>>>> + /* see utils.h */
>>>>> + char *string_to_path(char *string)
>>>>> + {
>>>>> +-        ASSERT_OR_RET(string, string);
>>>>> +-
>>>>> +-        wordexp_t we;
>>>>> +-        switch (wordexp(string, &we, WRDE_NOCMD | WRDE_UNDEF)) {
>>>>> +-                case 0:
>>>>> +-                        break;
>>>>> +-                case WRDE_BADCHAR:
>>>>> +-                        LOG_W("Expansion of \"%s\" failed. It contains 
>>>>> invalid characters.", string);
>>>>> +-                        return string;
>>>>> +-                case WRDE_BADVAL:
>>>>> +-                        LOG_W("Expansion of \"%s\" failed. It contains 
>>>>> an undefined variable.", string);
>>>>> +-                        return string;
>>>>> +-                case WRDE_CMDSUB:
>>>>> +-                        LOG_W("Expansion of \"%s\" failed. The 
>>>>> requested command substitution is currently not supported.", string);
>>>>> +-                        return string;
>>>>> +-                case WRDE_NOSPACE:
>>>>> +-                        LOG_W("Expansion of \"%s\" failed. We ran out 
>>>>> of memory.", string);
>>>>> +-                        return string;
>>>>> +-                case WRDE_SYNTAX:
>>>>> +-                        LOG_W("Expansion of \"%s\" failed. It contains 
>>>>> invalid syntax.", string);
>>>>> +-                        return string;
>>>>> +-        }
>>>>> +-        g_free(string);
>>>>> ++        if (string && STRN_EQ(string, "~/", 2)) {
>>>>> ++                char *home = g_strconcat(user_get_home(), "/", NULL);
>>>>> ++
>>>>> ++                string = string_replace_at(string, 0, 2, home);
>>>>> +
>>>>> +-        char *res = g_strjoinv(" ", we.we_wordv);
>>>>> +-        wordfree(&we);
>>>>> ++                g_free(home);
>>>>> ++        }
>>>>> +
>>>>> +-        return res;
>>>>> ++        return string;
>>>>> ++
>>>>> + }
>>>>> +
>>>>> + /* see utils.h */
>>>>> Index: patches/patch-src_x11_x_c
>>>>> ===================================================================
>>>>> RCS file: patches/patch-src_x11_x_c
>>>>> diff -N patches/patch-src_x11_x_c
>>>>> --- patches/patch-src_x11_x_c 11 Mar 2022 20:15:26 -0000      1.2
>>>>> +++ /dev/null 1 Jan 1970 00:00:00 -0000
>>>>> @@ -1,13 +0,0 @@
>>>>> -Index: src/x11/x.c
>>>>> ---- src/x11/x.c.orig
>>>>> -+++ src/x11/x.c
>>>>> -@@ -19,7 +19,9 @@
>>>>> - #include <X11/Xlib.h>
>>>>> - #include <X11/Xresource.h>
>>>>> - #include <X11/Xutil.h>
>>>>> -+#ifdef __linux__
>>>>> - #include <linux/input-event-codes.h>
>>>>> -+#endif
>>>>> -
>>>>> - #include "../dbus.h"
>>>>> - #include "../draw.h"
>>>>> Index: pkg/PLIST
>>>>> ===================================================================
>>>>> RCS file: /cvs/ports/x11/dunst/pkg/PLIST,v
>>>>> diff -u -p -r1.6 PLIST
>>>>> --- pkg/PLIST 11 Mar 2022 20:15:26 -0000      1.6
>>>>> +++ pkg/PLIST 20 Aug 2024 00:57:35 -0000
>>>>> @@ -8,6 +8,19 @@ share/dunst/
>>>>> @sample ${SYSCONFDIR}/dunst/
>>>>> share/dunst/dunstrc
>>>>> @sample ${SYSCONFDIR}/dunst/dunstrc
>>>>> +share/examples/bash-completion/
>>>>> +share/examples/bash-completion/completions/
>>>>> +share/examples/bash-completion/completions/dunst
>>>>> +share/examples/bash-completion/completions/dunstctl
>>>>> share/examples/dbus-1/
>>>>> share/examples/dbus-1/services/
>>>>> share/examples/dbus-1/services/org.knopwob.dunst.service
>>>>> +share/examples/fish/
>>>>> +share/examples/fish/vendor_completions.d/
>>>>> +share/examples/fish/vendor_completions.d/dunst
>>>>> +share/examples/fish/vendor_completions.d/dunstctl
>>>>> +share/examples/fish/vendor_completions.d/dunstify
>>>>> +share/examples/zsh/
>>>>> +share/examples/zsh/site-functions/
>>>>> +share/examples/zsh/site-functions/_dunst
>>>>> +share/examples/zsh/site-functions/_dunstctl
>>>>
>>>>
>>>> Hi,
>>>>
>>>> I have similar diff I'm working with as well. I'm trying to see if using
>>>> glob(3) would be better in the utils.c but so far I haven't got it to
>>>> work. I'm trying to come up a bit more clean implementation so it might
>>>> be upstreamed later on.
>>>>
>>>> timo
>>>
>>>
>>> Hi!
>>>
>>> I can try something using glob(3), but at the moment I am using it as
>>> is without problems. Maybe for the weekend, I can give you something
>>> with a more elaborate glob(3) and we'll check it out.
>>>
>>> Thanks!
>>
>>
>> I got following diff at the moment. Not sure if the glob adds value
>> here.
>>
>> timo
>>
>> diff /usr/ports
>> commit - 8e4b8dff34f8c8a46b16f8f5f305a301d14bbf3d
>> path + /usr/ports
>> blob - eac7443cb23f53d564d0d50c9e3a4c894a1fda82
>> file + x11/dunst/Makefile
>> --- x11/dunst/Makefile
>> +++ x11/dunst/Makefile
>> @@ -2,8 +2,7 @@ COMMENT = customizable and lightweight notification-da
>>
>>  GH_ACCOUNT = dunst-project
>>  GH_PROJECT = dunst
>> -GH_TAGNAME = v1.9.2
>> -REVISION = 0
>> +GH_TAGNAME = v1.11.0
>>
>>  CATEGORIES = x11
>>
>> blob - 093bbc84211d476e0f7fa34991e242f0a06f73da
>> file + x11/dunst/distinfo
>> --- x11/dunst/distinfo
>> +++ x11/dunst/distinfo
>> @@ -1,2 +1,2 @@
>> -SHA256 (dunst-1.9.2.tar.gz) = +mzkXAr0uuGIsNZ5pbqS+Pm35DAbsbtHboLfJrzp5xo=
>> -SIZE (dunst-1.9.2.tar.gz) = 4614703
>> +SHA256 (dunst-1.11.0.tar.gz) = McDrdJyoPat/WvM765Ucn5qEUSY/zubLz4uj3tvy4fE=
>> +SIZE (dunst-1.11.0.tar.gz) = 4645279
>> blob - 958ea4261737f9be45def56356d55fbd23c4dccb
>> file + x11/dunst/patches/patch-config_mk
>> --- x11/dunst/patches/patch-config_mk
>> +++ x11/dunst/patches/patch-config_mk
>> @@ -1,13 +1,13 @@
>>  Index: config.mk
>>  --- config.mk.orig
>>  +++ config.mk
>> -@@ -42,8 +42,8 @@ endif
>> +@@ -52,8 +52,8 @@ endif
>>
>>   # flags
>>   DEFAULT_CPPFLAGS = -Wno-gnu-zero-variadic-macro-arguments 
>> -D_DEFAULT_SOURCE -DVERSION=\"${VERSION}\" -DSYSCONFDIR=\"${SYSCONFDIR}\"
>> --DEFAULT_CFLAGS   = -g -std=gnu99 -pedantic -Wall -Wno-overlength-strings 
>> -Os ${ENABLE_WAYLAND} ${EXTRA_CFLAGS}
>> +-DEFAULT_CFLAGS   = -g -std=gnu11 -pedantic -Wall -Wno-overlength-strings 
>> -Os ${ENABLE_WAYLAND} ${ENABLE_X11} ${EXTRA_CFLAGS}
>>  -DEFAULT_LDFLAGS  = -lm -lrt
>> -+DEFAULT_CFLAGS   = -g -std=gnu99 -pedantic -Wall -Wno-overlength-strings 
>> ${ENABLE_WAYLAND} ${EXTRA_CFLAGS}
>> ++DEFAULT_CFLAGS   = -g -std=gnu11 -pedantic -Wall -Wno-overlength-strings 
>> ${ENABLE_WAYLAND} ${ENABLE_X11} ${EXTRA_CFLAGS}
>>  +DEFAULT_LDFLAGS  = -lm
>>
>>   CPPFLAGS_DEBUG := -DDEBUG_BUILD
>> blob - 76eb300d292dd84ed65eb1f6f5a8a1deb9d9a797
>> file + x11/dunst/patches/patch-docs_dunst_5_pod
>> --- x11/dunst/patches/patch-docs_dunst_5_pod
>> +++ x11/dunst/patches/patch-docs_dunst_5_pod
>> @@ -1,7 +1,7 @@
>>  Index: docs/dunst.5.pod
>>  --- docs/dunst.5.pod.orig
>>  +++ docs/dunst.5.pod
>> -@@ -409,7 +409,7 @@ Hide the count of stacked duplicate notifications.
>> +@@ -444,7 +444,7 @@ Hide the count of stacked duplicate notifications.
>>   Show an indicator if a notification contains actions and/or open-able 
>> URLs. See
>>   ACTIONS below for further details.
>>
>> @@ -10,16 +10,16 @@ Index: docs/dunst.5.pod
>>
>>   Can be set to a colon-separated list of paths to search for icons to use 
>> with
>>   notifications.
>> -@@ -423,7 +423,7 @@ replace this and will need new settings.
>> - Comma-separated of names of the the themes to use for looking up icons. 
>> This has
>> - to be the name of the directory in which the theme is located, not the
>> +@@ -458,7 +458,7 @@ replace this and will need new settings.
>> + Comma-separated list of names of the the themes to use for looking up 
>> icons. This
>> + as to be the name of the directory in which the theme is located, not the
>>   human-friendly name of the theme. So for example, the theme B<Breeze Dark> 
>> is
>>  -located in F</usr/share/icons/breeze-dark>. In this case you have to set 
>> the
>>  +located in F<${PREFIX}/share/icons/breeze-dark>. In this case you have to 
>> set the
>>   theme to B<breeze-dark>.
>>
>>   The first theme in the list is the most important. Only if the icon cannot 
>> be
>> -@@ -461,12 +461,12 @@ Maximum number of notifications that will be kept in h
>> +@@ -496,12 +496,12 @@ Maximum number of notifications that will be kept in h
>>   is reached, older notifications will be deleted once a new one arrives. See
>>   HISTORY.
>>
>> blob - fed4e50ecba2ae7b194f97a5556806372857a133
>> file + x11/dunst/patches/patch-dunstrc
>> --- x11/dunst/patches/patch-dunstrc
>> +++ x11/dunst/patches/patch-dunstrc
>> @@ -1,21 +1,21 @@
>>  Index: dunstrc
>>  --- dunstrc.orig
>>  +++ dunstrc
>> -@@ -217,7 +217,7 @@
>> +@@ -230,7 +230,7 @@
>>       max_icon_size = 128
>>
>> -     # Paths to default icons (only neccesary when not using recursive icon 
>> lookup)
>> +     # Paths to default icons (only necessary when not using recursive icon 
>> lookup)
>>  -    icon_path = 
>> /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
>>  +    icon_path = 
>> ${LOCALBASE}/share/icons/gnome/16x16/status/:${LOCALBASE}/share/icons/gnome/16x16/devices/
>>
>>       ### History ###
>>
>> -@@ -231,10 +231,10 @@
>> +@@ -244,10 +244,10 @@
>>       ### Misc/Advanced ###
>>
>>       # dmenu path.
>>  -    dmenu = /usr/bin/dmenu -p dunst:
>> -+    dmenu = ${LOCALBASE}/bin/dmenu -p dunst:
>> ++    dmenu = ${LOCALBASE}/usr/bin/dmenu -p dunst:
>>
>>       # Browser for opening urls in context menu.
>>  -    browser = /usr/bin/xdg-open
>> blob - cba0c845fee96e3f439ac82f300a16f0427e3bb9
>> file + x11/dunst/patches/patch-src_dunst_c
>> --- x11/dunst/patches/patch-src_dunst_c
>> +++ x11/dunst/patches/patch-src_dunst_c
>> @@ -1,12 +1,12 @@
>>  Index: src/dunst.c
>>  --- src/dunst.c.orig
>>  +++ src/dunst.c
>> -@@ -100,7 +100,7 @@ static gboolean run(void *data)
>> +@@ -162,7 +162,7 @@ static gboolean run(void *data)
>>                   gint64 sleep = timeout_at - now;
>>                   sleep = MAX(sleep, 1000); // Sleep at least 1ms
>>
>>  -                LOG_D("Sleeping for %li ms", sleep/1000);
>>  +                LOG_D("Sleeping for %lli ms", (long long)sleep/1000);
>>
>> -                 if (sleep >= 0) {
>> -                         if (reason == 0 || next_timeout < now || 
>> timeout_at < next_timeout) {
>> +                 next_timeout_id = g_timeout_add(sleep/1000, run, NULL);
>> +         }
>> blob - f49421b7619b5443f71067d2824793187f223852
>> file + /dev/null
>> --- x11/dunst/patches/patch-src_input_c
>> +++ /dev/null
>> @@ -1,13 +0,0 @@
>> -Index: src/input.c
>> ---- src/input.c.orig
>> -+++ src/input.c
>> -@@ -4,7 +4,9 @@
>> - #include "settings.h"
>> - #include "queues.h"
>> - #include <stddef.h>
>> -+#ifdef __linux__
>> - #include <linux/input-event-codes.h>
>> -+#endif
>> -
>> - int get_notification_clickable_height(struct notification *n, bool first, 
>> bool last)
>> - {
>> blob - 715b6f4731cd5787df605a5fe2e7e98aa020ece7
>> file + x11/dunst/patches/patch-src_notification_c
>> --- x11/dunst/patches/patch-src_notification_c
>> +++ x11/dunst/patches/patch-src_notification_c
>> @@ -1,16 +1,20 @@
>>  Index: src/notification.c
>>  --- src/notification.c.orig
>>  +++ src/notification.c
>> -@@ -60,7 +60,7 @@ void notification_print(const struct notification *n)
>> -         printf("\ticon_id: '%s'\n", n->icon_id);
>> +@@ -60,9 +60,9 @@ void notification_print(const struct notification *n)
>> +         printf("\ticon_id: '%s'\n", STR_NN(n->icon_id));
>>           printf("\tdesktop_entry: '%s'\n", n->desktop_entry ? 
>> n->desktop_entry : "");
>> -         printf("\tcategory: %s\n", n->category);
>> +         printf("\tcategory: %s\n", STR_NN(n->category));
>>  -        printf("\ttimeout: %ld\n", n->timeout/1000);
>> +-        printf("\tstart: %ld\n", n->start);
>> +-        printf("\ttimestamp: %ld\n", n->timestamp);
>>  +        printf("\ttimeout: %lld\n", (long long)n->timeout/1000);
>> ++        printf("\tstart: %lld\n", (long long)n->start);
>> ++        printf("\ttimestamp: %lld\n", (long long)n->timestamp);
>>           printf("\turgency: %s\n", 
>> notification_urgency_to_string(n->urgency));
>>           printf("\ttransient: %d\n", n->transient);
>> -         printf("\tformatted: '%s'\n", n->msg);
>> -@@ -140,8 +140,8 @@ void notification_run_script(struct notification *n)
>> +         printf("\tformatted: '%s'\n", STR_NN(n->msg));
>> +@@ -143,8 +143,8 @@ void notification_run_script(struct notification *n)
>>                                   // Set environment variables
>>                                   gchar *n_id_str = g_strdup_printf("%i", 
>> n->id);
>>                                   gchar *n_progress_str = 
>> g_strdup_printf("%i", n->progress);
>> @@ -21,21 +25,24 @@ Index: src/notification.c
>>                                   safe_setenv("DUNST_APP_NAME",  appname);
>>                                   safe_setenv("DUNST_SUMMARY",   summary);
>>                                   safe_setenv("DUNST_BODY",      body);
>> -@@ -684,14 +684,14 @@ void notification_update_text_to_render(struct notific
>> +@@ -705,14 +705,15 @@ void notification_update_text_to_render(struct notific
>>                   char *new_buf;
>>                   if (hours > 0) {
>>                           new_buf =
>>  -                            g_strdup_printf("%s (%ldh %ldm %lds old)", 
>> buf, hours,
>> -+                            g_strdup_printf("%s (%lldh %lldm %llds old)", 
>> buf, hours,
>> -                                             minutes, seconds);
>> +-                                            minutes, seconds);
>> ++                            g_strdup_printf("%s (%lldh %lldm %llds old)", 
>> buf,
>> ++                                            (long long)hours, (long 
>> long)minutes,
>> ++                                            (long long)seconds);
>>                   } else if (minutes > 0) {
>>                           new_buf =
>>  -                            g_strdup_printf("%s (%ldm %lds old)", buf, 
>> minutes,
>> -+                            g_strdup_printf("%s (%lldm %llds old)", buf, 
>> minutes,
>> -                                             seconds);
>> +-                                            seconds);
>> ++                            g_strdup_printf("%s (%lldm %llds old)", buf, 
>> (long long)minutes,
>> ++                                            (long long)seconds);
>>                   } else {
>>  -                        new_buf = g_strdup_printf("%s (%lds old)", buf, 
>> seconds);
>> -+                        new_buf = g_strdup_printf("%s (%llds old)", buf, 
>> seconds);
>> ++                        new_buf = g_strdup_printf("%s (%llds old)", buf, 
>> (long long)seconds);
>>                   }
>>
>>                   g_free(buf);
>> blob - e7f4abb95bfa619ce7cb19344f2dee16446b0e7a
>> file + /dev/null
>> --- x11/dunst/patches/patch-src_settings_h
>> +++ /dev/null
>> @@ -1,12 +0,0 @@
>> -Index: src/settings.h
>> ---- src/settings.h.orig
>> -+++ src/settings.h
>> -@@ -13,6 +13,8 @@
>> -
>> - #define LIST_END (-1)
>> -
>> -+enum mouse_button { BTN_LEFT=1, BTN_RIGHT, BTN_MIDDLE, BTN_TOUCH };
>> -+
>> - enum alignment { ALIGN_LEFT, ALIGN_CENTER, ALIGN_RIGHT };
>> - enum vertical_alignment { VERTICAL_TOP, VERTICAL_CENTER, VERTICAL_BOTTOM };
>> - enum separator_color { SEP_FOREGROUND, SEP_AUTO, SEP_FRAME, SEP_CUSTOM };
>> blob - /dev/null
>> file + x11/dunst/patches/patch-src_utils_c (mode 644)
>> --- /dev/null
>> +++ x11/dunst/patches/patch-src_utils_c
>> @@ -0,0 +1,40 @@
>> +Index: src/utils.c
>> +--- src/utils.c.orig
>> ++++ src/utils.c
>> +@@ -13,7 +13,11 @@
>> + #include <sys/stat.h>
>> + #include <time.h>
>> + #include <unistd.h>
>> ++#ifndef __OpenBSD__
>> + #include <wordexp.h>
>> ++#else
>> ++#include <glob.h>
>> ++#endif
>> +
>> + #include "log.h"
>> + #include "settings_data.h"
>> +@@ -181,7 +185,7 @@ int string_array_length(char **s)
>> + char *string_to_path(char *string)
>> + {
>> +         ASSERT_OR_RET(string, string);
>> +-
>> ++#ifndef __OpenBSD__
>> +         wordexp_t we;
>> +         switch (wordexp(string, &we, WRDE_NOCMD | WRDE_UNDEF)) {
>> +                 case 0:
>> +@@ -208,6 +212,15 @@ char *string_to_path(char *string)
>> +         wordfree(&we);
>> +
>> +         return res;
>> ++#else
>> ++ glob_t p;
>> ++        if (glob(string, GLOB_TILDE, NULL, &p) == 0) {
>> ++ char *str = g_strjoinv(" ", p.gl_pathv);
>> ++                globfree(&p);
>> ++                return str;
>> ++        }
>> ++        return string;
>> ++#endif
>> + }
>> +
>> + /* see utils.h */
>> blob - 7fd20d0e4edf51b71a83f9dc5f95a0ced5d4c98e
>> file + /dev/null
>> --- x11/dunst/patches/patch-src_x11_x_c
>> +++ /dev/null
>> @@ -1,13 +0,0 @@
>> -Index: src/x11/x.c
>> ---- src/x11/x.c.orig
>> -+++ src/x11/x.c
>> -@@ -19,7 +19,9 @@
>> - #include <X11/Xlib.h>
>> - #include <X11/Xresource.h>
>> - #include <X11/Xutil.h>
>> -+#ifdef __linux__
>> - #include <linux/input-event-codes.h>
>> -+#endif
>> -
>> - #include "../dbus.h"
>> - #include "../draw.h"
>> blob - 118752ce99490e2ccca2614ef2e5e184afb0c909
>> file + x11/dunst/pkg/PLIST
>> --- x11/dunst/pkg/PLIST
>> +++ x11/dunst/pkg/PLIST
>> @@ -8,6 +8,19 @@ share/dunst/
>>  @sample ${SYSCONFDIR}/dunst/
>>  share/dunst/dunstrc
>>  @sample ${SYSCONFDIR}/dunst/dunstrc
>> +share/examples/bash-completion/
>> +share/examples/bash-completion/completions/
>> +share/examples/bash-completion/completions/dunst
>> +share/examples/bash-completion/completions/dunstctl
>>  share/examples/dbus-1/
>>  share/examples/dbus-1/services/
>>  share/examples/dbus-1/services/org.knopwob.dunst.service
>> +share/examples/fish/
>> +share/examples/fish/vendor_completions.d/
>> +share/examples/fish/vendor_completions.d/dunst
>> +share/examples/fish/vendor_completions.d/dunstctl
>> +share/examples/fish/vendor_completions.d/dunstify
>> +share/examples/zsh/
>> +share/examples/zsh/site-functions/
>> +share/examples/zsh/site-functions/_dunst
>> +share/examples/zsh/site-functions/_dunstctl
>
>

Hi, Stuart!

You are right about the use of wordexp. In fact, the proposed patch is
actually just a rollback to the old string_to_path function that dunst
used in its 1.9.2 version (current port version) and that works fine
for our case (we can't use things like $HOME in the config or it gives
an error reading the path for scripts).

For now, if we want to do the bump version, the rollback is a "good
option", until we do a code equivalent to the current wordexp using
glob.

In any case, the best way to solve this is to make a PR that allows us
to correct this situation so that it doesn't hinder the portability of
dunst in OpenBSD for future versions. I will get to work on it and if
it is accepted, it is likely that the next version will not need this
dirty hack to compile and work.

-- 
"Dios en su Cielo, todo bien en la Tierra"
***********************************************

Reply via email to