pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/wm/i3



Module Name:    pkgsrc
Committed By:   wiz
Date:           Sat Dec 27 15:37:50 UTC 2025

Modified Files:
        pkgsrc/wm/i3: Makefile distinfo
        pkgsrc/wm/i3/patches: patch-meson.build patch-src_config.c
Added Files:
        pkgsrc/wm/i3/patches: patch-i3-config-wizard_main.c
            patch-i3bar_src_child.c patch-src_ipc.c patch-src_load__layout.c
            patch-src_util.c

Log Message:
i3: update to 4.25.

Most changes in this release cycle have been “behind the scenes”,
without an observable effect for users. For example, we switched
to clang-format-20, fixed a number of (benign) memory issues,
fixed a few flaky tests and maintained our GitHub Actions setup,
e.g. for the shutdown of baltocdn (our old host for nightly builds).


To generate a diff of this commit:
cvs rdiff -u -r1.64 -r1.65 pkgsrc/wm/i3/Makefile
cvs rdiff -u -r1.33 -r1.34 pkgsrc/wm/i3/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/wm/i3/patches/patch-i3-config-wizard_main.c \
    pkgsrc/wm/i3/patches/patch-i3bar_src_child.c \
    pkgsrc/wm/i3/patches/patch-src_ipc.c \
    pkgsrc/wm/i3/patches/patch-src_load__layout.c \
    pkgsrc/wm/i3/patches/patch-src_util.c
cvs rdiff -u -r1.1 -r1.2 pkgsrc/wm/i3/patches/patch-meson.build \
    pkgsrc/wm/i3/patches/patch-src_config.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/wm/i3/Makefile
diff -u pkgsrc/wm/i3/Makefile:1.64 pkgsrc/wm/i3/Makefile:1.65
--- pkgsrc/wm/i3/Makefile:1.64  Thu Oct 23 20:39:41 2025
+++ pkgsrc/wm/i3/Makefile       Sat Dec 27 15:37:49 2025
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.64 2025/10/23 20:39:41 wiz Exp $
+# $NetBSD: Makefile,v 1.65 2025/12/27 15:37:49 wiz Exp $
 
-DISTNAME=      i3-4.24
-PKGREVISION=   2
+DISTNAME=      i3-4.25
 CATEGORIES=    wm
 MASTER_SITES=  https://i3wm.org/downloads/
 EXTRACT_SUFX=  .tar.xz

Index: pkgsrc/wm/i3/distinfo
diff -u pkgsrc/wm/i3/distinfo:1.33 pkgsrc/wm/i3/distinfo:1.34
--- pkgsrc/wm/i3/distinfo:1.33  Wed Nov 20 13:15:06 2024
+++ pkgsrc/wm/i3/distinfo       Sat Dec 27 15:37:49 2025
@@ -1,10 +1,15 @@
-$NetBSD: distinfo,v 1.33 2024/11/20 13:15:06 wiz Exp $
+$NetBSD: distinfo,v 1.34 2025/12/27 15:37:49 wiz Exp $
 
-BLAKE2s (i3-4.24.tar.xz) = 14bd55d76c933b89e58ae786dbbc3d2cf7655022a72ada5f50025e92b64ff9fd
-SHA512 (i3-4.24.tar.xz) = 0fddf0f73025ed784b82d274f147f730abb42a00e70684567943acbe941a3329919c76e9f08888c9ee71cc3aaf55e5be3104682481711a5c6aa112d53e511a23
-Size (i3-4.24.tar.xz) = 1358292 bytes
+BLAKE2s (i3-4.25.tar.xz) = 20fe167cf78466836f8cf3383c29b79712aa687f6a0ada5b4543bd86b0cb1f26
+SHA512 (i3-4.25.tar.xz) = 237f62ccb25b13bd676cca562abe6ba4c65451a02976cd0547ee44c9ed8a5ccd60e90c871e75a625fc6e3cbda1aaa6abfff246293a9b2460ae6bf9ee074bd3fb
+Size (i3-4.25.tar.xz) = 1357280 bytes
 SHA1 (patch-etc_config) = d3f649e8d4dc7cae7eb3c1548fa8d81224e4dacb
 SHA1 (patch-etc_config.keycodes) = 6adde0b3a56576805facd951fa9d32bfd6c88011
-SHA1 (patch-meson.build) = 013ac42f10aeb1ad05b5496f6283878e53506c46
-SHA1 (patch-src_config.c) = ce89b90fedadb2a025363e772a803e47535df0a7
+SHA1 (patch-i3-config-wizard_main.c) = 39d740b5b8ed89f03e9d90a98ff0aaf43dd17848
+SHA1 (patch-i3bar_src_child.c) = 7fb302dbe263c59dd33e9b198c7f479df189ee1f
+SHA1 (patch-meson.build) = 89ec2c7f594f8f13c13b522c7635cb59626554af
+SHA1 (patch-src_config.c) = 7985366b892f240379daa19d9b7baeddb22f66ee
+SHA1 (patch-src_ipc.c) = 0e8961d8da4b55fca4f207829f6e26deffa3c47c
+SHA1 (patch-src_load__layout.c) = 35ab682dd326c3a8ad00337321305eda52924feb
 SHA1 (patch-src_log.c) = 19b33b43d1716ead4bad36e2afd52ff30af017c1
+SHA1 (patch-src_util.c) = 6285072f4d0d385bb1d3868a2a5574bd6f375fdc

Index: pkgsrc/wm/i3/patches/patch-meson.build
diff -u pkgsrc/wm/i3/patches/patch-meson.build:1.1 pkgsrc/wm/i3/patches/patch-meson.build:1.2
--- pkgsrc/wm/i3/patches/patch-meson.build:1.1  Sun Sep 12 07:22:47 2021
+++ pkgsrc/wm/i3/patches/patch-meson.build      Sat Dec 27 15:37:50 2025
@@ -1,7 +1,10 @@
-$NetBSD: patch-meson.build,v 1.1 2021/09/12 07:22:47 nia Exp $
+$NetBSD: patch-meson.build,v 1.2 2025/12/27 15:37:50 wiz Exp $
 
 Install config files to examples, per pkgsrc policy.
 
+Check for uselocale() before using it.
+https://github.com/i3/i3/issues/6566
+
 --- meson.build.orig   2021-02-27 09:37:58.753311900 +0000
 +++ meson.build
 @@ -44,7 +44,7 @@ else
@@ -13,7 +16,15 @@ Install config files to examples, per pk
  
  if get_option('b_sanitize').split(',').contains('address')
    cdata.set('I3_ASAN_ENABLED', 1)
-@@ -580,7 +580,7 @@ install_data(
+@@ -52,6 +52,7 @@ endif
+ 
+ cdata.set('HAVE_STRNDUP', cc.has_function('strndup'))
+ cdata.set('HAVE_MKDIRP', cc.has_function('mkdirp'))
++cdata.set('HAVE_USELOCALE', cc.has_function('uselocale'))
+ 
+ # Instead of generating config.h directly, make vcs_tag generate it so that
+ # @VCS_TAG@ is replaced.
+@@ -580,7 +581,7 @@ install_data(
  install_subdir(
    'etc',
    strip_directory: true,
Index: pkgsrc/wm/i3/patches/patch-src_config.c
diff -u pkgsrc/wm/i3/patches/patch-src_config.c:1.1 pkgsrc/wm/i3/patches/patch-src_config.c:1.2
--- pkgsrc/wm/i3/patches/patch-src_config.c:1.1 Mon Nov  6 11:08:52 2023
+++ pkgsrc/wm/i3/patches/patch-src_config.c     Sat Dec 27 15:37:50 2025
@@ -1,17 +1,17 @@
-$NetBSD: patch-src_config.c,v 1.1 2023/11/06 11:08:52 nia Exp $
+$NetBSD: patch-src_config.c,v 1.2 2025/12/27 15:37:50 wiz Exp $
 
 Include the correct headers for realpath(3), PATH_MAX.
 
 Should help SunOS.
 
---- src/config.c.orig  2023-01-02 08:39:00.000000000 +0000
+--- src/config.c.orig  2025-12-19 07:19:53.000000000 +0000
 +++ src/config.c
 @@ -12,6 +12,8 @@
  
  #include <libgen.h>
- #include <unistd.h>
+ #include <xkbcommon/xkbcommon.h>
 +#include <stdlib.h>
 +#include <limits.h>
  
- #include <xkbcommon/xkbcommon.h>
- 
+ char *current_configpath = NULL;
+ Config config;

Added files:

Index: pkgsrc/wm/i3/patches/patch-i3-config-wizard_main.c
diff -u /dev/null pkgsrc/wm/i3/patches/patch-i3-config-wizard_main.c:1.1
--- /dev/null   Sat Dec 27 15:37:50 2025
+++ pkgsrc/wm/i3/patches/patch-i3-config-wizard_main.c  Sat Dec 27 15:37:50 2025
@@ -0,0 +1,16 @@
+$NetBSD: patch-i3-config-wizard_main.c,v 1.1 2025/12/27 15:37:50 wiz Exp $
+
+Fix ctype(3) usage.
+https://github.com/i3/i3/issues/6566
+
+--- i3-config-wizard/main.c.orig       2025-12-19 07:19:53.000000000 +0000
++++ i3-config-wizard/main.c
+@@ -732,7 +732,7 @@ static void finish(void) {
+ 
+         /* Skip leading whitespace */
+         char *walk = line;
+-        while (isspace(*walk) && walk < (line + len)) {
++        while (isspace((unsigned char)*walk) && walk < (line + len)) {
+             /* Pre-output the skipped whitespaces to keep proper indentation */
+             fputc(*walk, ks_config);
+             walk++;
Index: pkgsrc/wm/i3/patches/patch-i3bar_src_child.c
diff -u /dev/null pkgsrc/wm/i3/patches/patch-i3bar_src_child.c:1.1
--- /dev/null   Sat Dec 27 15:37:50 2025
+++ pkgsrc/wm/i3/patches/patch-i3bar_src_child.c        Sat Dec 27 15:37:50 2025
@@ -0,0 +1,16 @@
+$NetBSD: patch-i3bar_src_child.c,v 1.1 2025/12/27 15:37:50 wiz Exp $
+
+Fix ctype(3) usage.
+https://github.com/i3/i3/issues/6566
+
+--- i3bar/src/child.c.orig     2025-12-19 07:19:53.000000000 +0000
++++ i3bar/src/child.c
+@@ -525,7 +525,7 @@ static void stdin_io_first_line_cb(int f
+ 
+ static bool isempty(char *s) {
+     while (*s != '\0') {
+-        if (!isspace(*s)) {
++        if (!isspace((unsigned char)*s)) {
+             return false;
+         }
+         s++;
Index: pkgsrc/wm/i3/patches/patch-src_ipc.c
diff -u /dev/null pkgsrc/wm/i3/patches/patch-src_ipc.c:1.1
--- /dev/null   Sat Dec 27 15:37:50 2025
+++ pkgsrc/wm/i3/patches/patch-src_ipc.c        Sat Dec 27 15:37:50 2025
@@ -0,0 +1,123 @@
+$NetBSD: patch-src_ipc.c,v 1.1 2025/12/27 15:37:50 wiz Exp $
+
+Check for uselocale() before using it.
+https://github.com/i3/i3/issues/6566
+
+--- src/ipc.c.orig     2025-12-19 07:19:53.000000000 +0000
++++ src/ipc.c
+@@ -909,11 +909,18 @@ static void dump_bar_config(yajl_gen gen
+ }
+ 
+ IPC_HANDLER(tree) {
++#if HAVE_USELOCALE
+     locale_t prev_locale = uselocale(numericC);
++#else
++    setlocale(LC_NUMERIC, "C");
++#endif
+     yajl_gen gen = ygenalloc();
+     dump_node(gen, croot, false);
++#if HAVE_USELOCALE
+     uselocale(prev_locale);
+-
++#else
++    setlocale(LC_NUMERIC, "");
++#endif
+     const unsigned char *payload;
+     ylength length;
+     y(get_buf, &payload, &length);
+@@ -1585,7 +1592,11 @@ ipc_client *ipc_new_client_on_fd(EV_P_ i
+  * generator. Free with yajl_gen_free().
+  */
+ yajl_gen ipc_marshal_workspace_event(const char *change, Con *current, Con *old) {
++#if HAVE_USELOCALE
+     locale_t prev_locale = uselocale(numericC);
++#else
++    setlocale(LC_NUMERIC, "C");
++#endif
+     yajl_gen gen = ygenalloc();
+ 
+     y(map_open);
+@@ -1609,7 +1620,11 @@ yajl_gen ipc_marshal_workspace_event(con
+ 
+     y(map_close);
+ 
++#if HAVE_USELOCALE
+     uselocale(prev_locale);
++#else
++    setlocale(LC_NUMERIC, "");
++#endif
+ 
+     return gen;
+ }
+@@ -1639,7 +1654,11 @@ void ipc_send_window_event(const char *p
+     DLOG("Issue IPC window %s event (con = %p, window = 0x%08x)\n",
+          property, con, (con->window ? con->window->id : XCB_WINDOW_NONE));
+ 
++#if HAVE_USELOCALE
+     locale_t prev_locale = uselocale(numericC);
++#else
++    setlocale(LC_NUMERIC, "C");
++#endif
+     yajl_gen gen = ygenalloc();
+ 
+     y(map_open);
+@@ -1658,7 +1677,11 @@ void ipc_send_window_event(const char *p
+ 
+     ipc_send_event("window", I3_IPC_EVENT_WINDOW, (const char *)payload);
+     y(free);
++#if HAVE_USELOCALE
+     uselocale(prev_locale);
++#else
++    setlocale(LC_NUMERIC, "");
++#endif
+ }
+ 
+ /*
+@@ -1666,7 +1689,11 @@ void ipc_send_window_event(const char *p
+  */
+ void ipc_send_barconfig_update_event(Barconfig *barconfig) {
+     DLOG("Issue barconfig_update event for id = %s\n", barconfig->id);
++#if HAVE_USELOCALE
+     locale_t prev_locale = uselocale(numericC);
++#else
++    setlocale(LC_NUMERIC, "C");
++#endif
+     yajl_gen gen = ygenalloc();
+ 
+     dump_bar_config(gen, barconfig);
+@@ -1677,7 +1704,11 @@ void ipc_send_barconfig_update_event(Bar
+ 
+     ipc_send_event("barconfig_update", I3_IPC_EVENT_BARCONFIG_UPDATE, (const char *)payload);
+     y(free);
++#if HAVE_USELOCALE
+     uselocale(prev_locale);
++#else
++    setlocale(LC_NUMERIC, "");
++#endif
+ }
+ 
+ /*
+@@ -1686,7 +1717,11 @@ void ipc_send_barconfig_update_event(Bar
+ void ipc_send_binding_event(const char *event_type, Binding *bind, const char *modename) {
+     DLOG("Issue IPC binding %s event (sym = %s, code = %d)\n", event_type, bind->symbol, bind->keycode);
+ 
++#if HAVE_USELOCALE
+     locale_t prev_locale = uselocale(numericC);
++#else
++    setlocale(LC_NUMERIC, "C");
++#endif
+ 
+     yajl_gen gen = ygenalloc();
+ 
+@@ -1714,7 +1749,11 @@ void ipc_send_binding_event(const char *
+     ipc_send_event("binding", I3_IPC_EVENT_BINDING, (const char *)payload);
+ 
+     y(free);
++#if HAVE_USELOCALE
+     uselocale(prev_locale);
++#else
++    setlocale(LC_NUMERIC, "");
++#endif
+ }
+ 
+ /*
Index: pkgsrc/wm/i3/patches/patch-src_load__layout.c
diff -u /dev/null pkgsrc/wm/i3/patches/patch-src_load__layout.c:1.1
--- /dev/null   Sat Dec 27 15:37:50 2025
+++ pkgsrc/wm/i3/patches/patch-src_load__layout.c       Sat Dec 27 15:37:50 2025
@@ -0,0 +1,78 @@
+$NetBSD: patch-src_load__layout.c,v 1.1 2025/12/27 15:37:50 wiz Exp $
+
+Check for uselocale() before using it.
+https://github.com/i3/i3/issues/6566
+
+--- src/load_layout.c.orig     2025-12-19 07:19:53.000000000 +0000
++++ src/load_layout.c
+@@ -634,14 +634,22 @@ bool json_validate(const char *buf, cons
+     /* Allow multiple values, i.e. multiple nodes to attach */
+     yajl_config(hand, yajl_allow_multiple_values, true);
+ 
++#if HAVE_USELOCALE
+     locale_t prev_locale = uselocale(numericC);
++#else
++    setlocale(LC_NUMERIC, "C");
++#endif
+     if (yajl_parse(hand, (const unsigned char *)buf, len) != yajl_status_ok) {
+         unsigned char *str = yajl_get_error(hand, 1, (const unsigned char *)buf, len);
+         ELOG("JSON parsing error: %s\n", str);
+         yajl_free_error(hand, str);
+         valid = false;
+     }
++#if HAVE_USELOCALE
+     uselocale(prev_locale);
++#else
++    setlocale(LC_NUMERIC, "");
++#endif
+ 
+     yajl_complete_parse(hand);
+     yajl_free(hand);
+@@ -671,7 +679,11 @@ json_content_t json_determine_content(co
+     yajl_config(hand, yajl_allow_comments, true);
+     /* Allow multiple values, i.e. multiple nodes to attach */
+     yajl_config(hand, yajl_allow_multiple_values, true);
++#if HAVE_USELOCALE
+     locale_t prev_locale = uselocale(numericC);
++#else
++    setlocale(LC_NUMERIC, "C");
++#endif
+     const yajl_status stat = yajl_parse(hand, (const unsigned char *)buf, len);
+     if (stat != yajl_status_ok && stat != yajl_status_client_canceled) {
+         unsigned char *str = yajl_get_error(hand, 1, (const unsigned char *)buf, len);
+@@ -679,7 +691,11 @@ json_content_t json_determine_content(co
+         yajl_free_error(hand, str);
+     }
+ 
++#if HAVE_USELOCALE
+     uselocale(prev_locale);
++#else
++    setlocale(LC_NUMERIC, "");
++#endif
+     yajl_complete_parse(hand);
+     yajl_free(hand);
+ 
+@@ -725,7 +741,11 @@ void tree_append_json(Con *con, const ch
+     parsing_geometry = false;
+     parsing_focus = false;
+     parsing_marks = false;
++#if HAVE_USELOCALE
+     locale_t prev_locale = uselocale(numericC);
++#else
++    setlocale(LC_NUMERIC, "C");
++#endif
+     const yajl_status stat = yajl_parse(hand, (const unsigned char *)buf, len);
+     if (stat != yajl_status_ok) {
+         unsigned char *str = yajl_get_error(hand, 1, (const unsigned char *)buf, len);
+@@ -750,7 +770,11 @@ void tree_append_json(Con *con, const ch
+      * next time. */
+     con_fix_percent(con);
+ 
++#if HAVE_USELOCALE
+     uselocale(prev_locale);
++#else
++    setlocale(LC_NUMERIC, "");
++#endif
+     yajl_complete_parse(hand);
+     yajl_free(hand);
+ 
Index: pkgsrc/wm/i3/patches/patch-src_util.c
diff -u /dev/null pkgsrc/wm/i3/patches/patch-src_util.c:1.1
--- /dev/null   Sat Dec 27 15:37:50 2025
+++ pkgsrc/wm/i3/patches/patch-src_util.c       Sat Dec 27 15:37:50 2025
@@ -0,0 +1,38 @@
+$NetBSD: patch-src_util.c,v 1.1 2025/12/27 15:37:50 wiz Exp $
+
+Check for uselocale() before using it.
+Fix ctype(3) abuse.
+https://github.com/i3/i3/issues/6566
+
+--- src/util.c.orig    2025-12-19 07:19:53.000000000 +0000
++++ src/util.c
+@@ -67,7 +67,7 @@ __attribute__((__const__)) bool rect_equ
+ __attribute__((pure)) bool name_is_digits(const char *name) {
+     /* positive integers and zero are interpreted as numbers */
+     for (size_t i = 0; i < strlen(name); i++) {
+-        if (!isdigit(name[i])) {
++        if (!isdigit((unsigned char)name[i])) {
+             return false;
+         }
+     }
+@@ -221,12 +221,20 @@ static char **add_argument(char **origin
+ #define ystr(str) yajl_gen_string(gen, (unsigned char *)str, strlen(str))
+ 
+ static char *store_restart_layout(void) {
++#if HAVE_USELOCALE
+     locale_t prev_locale = uselocale(numericC);
++#else
++    setlocale(LC_NUMERIC, "C");
++#endif
+     yajl_gen gen = yajl_gen_alloc(NULL);
+ 
+     dump_node(gen, croot, true);
+ 
++#if HAVE_USELOCALE
+     uselocale(prev_locale);
++#else
++    setlocale(LC_NUMERIC, "");
++#endif
+ 
+     const unsigned char *payload;
+     size_t length;



Home | Main Index | Thread Index | Old Index