On Mon Mar 24, 2025 at 10:13 AM CET, Stuart Henderson wrote: > The completions files would be better in the standard locations > (probably easiest to mv in post-install).
Thanks for the feedback. I have attached an updated patch. Best, Alvar diff --git Makefile Makefile index 775e475ea5c..03413c0556d 100644 --- Makefile +++ Makefile @@ -2,8 +2,7 @@ COMMENT = customizable and lightweight notification-daemon GH_ACCOUNT = dunst-project GH_PROJECT = dunst -GH_TAGNAME = v1.9.2 -REVISION = 2 +GH_TAGNAME = v1.12.2 CATEGORIES = x11 @@ -52,5 +51,8 @@ pre-configure: post-install: mv ${WRKINST}/${SYSCONFDIR}/dunst ${PREFIX}/share + mv ${PREFIX}/share/examples/bash-completion ${PREFIX}/share/bash-completion + mv ${PREFIX}/share/examples/fish ${PREFIX}/share/fish + mv ${PREFIX}/share/examples/zsh ${PREFIX}/share/zsh .include <bsd.port.mk> diff --git distinfo distinfo index 093bbc84211..131aa727da1 100644 --- distinfo +++ 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.12.2.tar.gz) = j3ZkvU5gg+lgTighRf5bje52VfoLCZpbaColSeHzPTI= +SIZE (dunst-1.12.2.tar.gz) = 4657260 diff --git patches/patch-config_mk patches/patch-config_mk index 958ea426173..c010fc861b3 100644 --- patches/patch-config_mk +++ 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_CPPFLAGS = -Wno-gnu-zero-variadic-macro-arguments -D_DEFAULT_SOURCE -DVERSION=\"${VERSION}\" -DSYSCONFDIR=\"${SYSCONFDIR}\" ${ENABLE_WAYLAND} ${ENABLE_X11} +-DEFAULT_CFLAGS = -g -std=gnu11 -pedantic -Wall -Wno-overlength-strings -Os ${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 ${EXTRA_CFLAGS} +DEFAULT_LDFLAGS = -lm CPPFLAGS_DEBUG := -DDEBUG_BUILD diff --git patches/patch-docs_dunst_1_pod patches/patch-docs_dunst_1_pod index e6662fa63ed..f78cc4119e3 100644 --- patches/patch-docs_dunst_1_pod +++ patches/patch-docs_dunst_1_pod @@ -1,7 +1,7 @@ Index: docs/dunst.1.pod --- docs/dunst.1.pod.orig +++ docs/dunst.1.pod -@@ -61,7 +61,7 @@ Display a notification on startup. +@@ -94,7 +94,7 @@ Set notification timeout time. A default configuration file is included (usually ##SYSCONFDIR##/dunst/dunstrc) and serves as the least important configuration file. Note: this was previously diff --git patches/patch-docs_dunst_5_pod patches/patch-docs_dunst_5_pod index 76eb300d292..df6ae772052 100644 --- patches/patch-docs_dunst_5_pod +++ 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. +@@ -463,7 +463,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 +@@ -477,7 +477,7 @@ replace icon_path search. + Comma-separated list of names of 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 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 +@@ -515,12 +515,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. diff --git patches/patch-dunstify_c patches/patch-dunstify_c deleted file mode 100644 index 16accda91f0..00000000000 --- patches/patch-dunstify_c +++ /dev/null @@ -1,75 +0,0 @@ -From 09501e55cfde0b10f8950adb2a94762198b5fcc9 Mon Sep 17 00:00:00 2001 -From: bynect <68197565+byn...@users.noreply.github.com> -Date: Mon, 24 Feb 2025 17:45:03 +0100 -Subject: [PATCH 1/2] Use properties instead of private fields in dunstify - -From 20992966f6c00edb4b0233906971307d8d73148c Mon Sep 17 00:00:00 2001 -From: bynect <68197565+byn...@users.noreply.github.com> -Date: Tue, 25 Feb 2025 19:38:02 +0100 -Subject: [PATCH 2/2] Fix warning with cast - -Index: dunstify.c ---- dunstify.c.orig -+++ dunstify.c -@@ -171,53 +171,20 @@ void parse_commandline(int argc, char *argv[]) - } - } - --typedef struct _NotifyNotificationPrivate --{ -- guint32 id; -- char *app_name; -- char *summary; -- char *body; -- -- /* NULL to use icon data. Anything else to have server lookup icon */ -- char *icon_name; -- -- /* -- * -1 = use server default -- * 0 = never timeout -- * > 0 = Number of milliseconds before we timeout -- */ -- gint timeout; -- -- GSList *actions; -- GHashTable *action_map; -- GHashTable *hints; -- -- gboolean has_nondefault_actions; -- gboolean updates_pending; -- -- gulong proxy_signal_handler; -- -- gint closed_reason; --} knickers; -- - int get_id(NotifyNotification *n) - { -- knickers *kn = n->priv; -- -- /* I'm sorry for taking a peek */ -- return kn->id; -+ GValue value = G_VALUE_INIT; -+ g_value_init(&value, G_TYPE_UINT); -+ g_object_get_property(G_OBJECT(n), "id", &value); -+ return g_value_get_int(&value); - } - - void put_id(NotifyNotification *n, guint32 id) - { -- knickers *kn = n->priv; -- -- /* And know I'm putting stuff into -- * your knickers. I'm sorry. -- * I'm so sorry. -- * */ -- -- kn->id = id; -+ GValue value = G_VALUE_INIT; -+ g_value_init(&value, G_TYPE_UINT); -+ g_value_set_uint(&value, id); -+ g_object_set_property(G_OBJECT(n), "id", &value); - } - - void actioned(NotifyNotification *n, char *a, gpointer foo) diff --git patches/patch-dunstrc patches/patch-dunstrc index fed4e50ecba..74ca9bd6eed 100644 --- patches/patch-dunstrc +++ patches/patch-dunstrc @@ -1,16 +1,16 @@ Index: dunstrc --- dunstrc.orig +++ dunstrc -@@ -217,7 +217,7 @@ +@@ -238,7 +238,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 @@ +@@ -252,10 +252,10 @@ ### Misc/Advanced ### # dmenu path. diff --git patches/patch-src_dunst_c patches/patch-src_dunst_c deleted file mode 100644 index cba0c845fee..00000000000 --- patches/patch-src_dunst_c +++ /dev/null @@ -1,12 +0,0 @@ -Index: src/dunst.c ---- src/dunst.c.orig -+++ src/dunst.c -@@ -100,7 +100,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) { diff --git patches/patch-src_input_c patches/patch-src_input_c deleted file mode 100644 index f49421b7619..00000000000 --- 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) - { diff --git patches/patch-src_notification_c patches/patch-src_notification_c deleted file mode 100644 index 715b6f4731c..00000000000 --- patches/patch-src_notification_c +++ /dev/null @@ -1,41 +0,0 @@ -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); - printf("\tdesktop_entry: '%s'\n", n->desktop_entry ? n->desktop_entry : ""); - printf("\tcategory: %s\n", n->category); -- printf("\ttimeout: %ld\n", n->timeout/1000); -+ printf("\ttimeout: %lld\n", (long long)n->timeout/1000); - 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) - // Set environment variables - gchar *n_id_str = g_strdup_printf("%i", n->id); - gchar *n_progress_str = g_strdup_printf("%i", n->progress); -- gchar *n_timeout_str = g_strdup_printf("%li", n->timeout/1000); -- gchar *n_timestamp_str = g_strdup_printf("%li", n->timestamp / 1000); -+ gchar *n_timeout_str = g_strdup_printf("%lli", (long long)n->timeout/1000); -+ gchar *n_timestamp_str = g_strdup_printf("%lli", (long long)n->timestamp / 1000); - 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 - 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); - } 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); - } else { -- new_buf = g_strdup_printf("%s (%lds old)", buf, seconds); -+ new_buf = g_strdup_printf("%s (%llds old)", buf, seconds); - } - - g_free(buf); diff --git patches/patch-src_settings_h patches/patch-src_settings_h deleted file mode 100644 index e7f4abb95bf..00000000000 --- 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 }; diff --git patches/patch-src_utils_c patches/patch-src_utils_c new file mode 100644 index 00000000000..75f20a35473 --- /dev/null +++ patches/patch-src_utils_c @@ -0,0 +1,51 @@ +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,13 @@ 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; ++ if (string && STRN_EQ(string, "~/", 2)) { ++ char *home = g_strconcat(user_get_home(), "/", NULL); ++ string = string_replace_at(string, 0, 2, home); ++ g_free(home); + } +- g_free(string); + +- char *res = g_strjoinv(" ", we.we_wordv); +- wordfree(&we); +- +- return res; ++ return string; + } + + /* see utils.h */ diff --git patches/patch-src_x11_x_c patches/patch-src_x11_x_c deleted file mode 100644 index 7fd20d0e4ed..00000000000 --- 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" diff --git pkg/PLIST pkg/PLIST index 118752ce994..2c1e8aa2ea3 100644 --- pkg/PLIST +++ pkg/PLIST @@ -3,7 +3,10 @@ bin/dunstctl @bin bin/dunstify @man man/man1/dunst.1 @man man/man1/dunstctl.1 +@man man/man1/dunstify.1 @man man/man5/dunst.5 +share/bash-completion/completions/dunst +share/bash-completion/completions/dunstctl share/dunst/ @sample ${SYSCONFDIR}/dunst/ share/dunst/dunstrc @@ -11,3 +14,12 @@ share/dunst/dunstrc share/examples/dbus-1/ share/examples/dbus-1/services/ share/examples/dbus-1/services/org.knopwob.dunst.service +share/fish/ +share/fish/vendor_completions.d/ +share/fish/vendor_completions.d/dunst.fish +share/fish/vendor_completions.d/dunstctl.fish +share/fish/vendor_completions.d/dunstify.fish +share/zsh/ +share/zsh/site-functions/ +share/zsh/site-functions/_dunst +share/zsh/site-functions/_dunstctl