Download raw body.
update: x11/dunst version bump v1.11.0
El mié, 21 ago 2024 a la(s) 6:41 a.m., Stuart Henderson
(stu@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.myyra@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.myyra@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"
***********************************************
update: x11/dunst version bump v1.11.0