Hi ports@, this is an update to the latest fvwm3 release [1].
Unfortunately there was a bug [2] that caused consistent crashes on OpenBSD. Reverting the commit in question seems to resolve that issue, which is also what others [3] seem to be doing for now. Patch for this is included as 'patch-fvwm_ewmh_names_c'. Tested on amd64. [1] https://github.com/fvwmorg/fvwm3/releases/tag/1.0.7 [2] https://github.com/fvwmorg/fvwm3/issues/873 [3] https://github.com/freebsd/freebsd-ports/commit/3e35051e913e46e0132df070d5a718d443bfd0b8
Index: Makefile =================================================================== RCS file: /cvs/ports/x11/fvwm3/Makefile,v retrieving revision 1.8 diff -u -p -r1.8 Makefile --- Makefile 24 Jan 2023 18:05:35 -0000 1.8 +++ Makefile 25 Aug 2023 12:22:31 -0000 @@ -1,6 +1,6 @@ COMMENT= multiple virtual desktop window manager -VERSION= 1.0.6a +VERSION= 1.0.7 DISTNAME= fvwm3-${VERSION} CATEGORIES= x11 Index: distinfo =================================================================== RCS file: /cvs/ports/x11/fvwm3/distinfo,v retrieving revision 1.3 diff -u -p -r1.3 distinfo --- distinfo 22 Jan 2023 12:11:26 -0000 1.3 +++ distinfo 25 Aug 2023 12:22:31 -0000 @@ -1,2 +1,2 @@ -SHA256 (fvwm3-1.0.6a.tar.gz) = RmWmYTPgcLeRkXsHlMxt9rdUZ56+kTBxhCfbZHm7W2g= -SIZE (fvwm3-1.0.6a.tar.gz) = 4538100 +SHA256 (fvwm3-1.0.7.tar.gz) = OqzXz+/2DbG82cdzMtxXX+dxHS0wbwR5UlN43G2z0x4= +SIZE (fvwm3-1.0.7.tar.gz) = 4512128 Index: patches/patch-configure =================================================================== RCS file: /cvs/ports/x11/fvwm3/patches/patch-configure,v retrieving revision 1.3 diff -u -p -r1.3 patch-configure --- patches/patch-configure 13 Oct 2022 16:00:45 -0000 1.3 +++ patches/patch-configure 25 Aug 2023 12:22:31 -0000 @@ -1,7 +1,7 @@ Index: configure --- configure.orig +++ configure -@@ -11779,7 +11779,7 @@ then : +@@ -11726,7 +11726,7 @@ then : else $as_nop with_intl=maybe Index: patches/patch-default-config_Makefile_in =================================================================== RCS file: /cvs/ports/x11/fvwm3/patches/patch-default-config_Makefile_in,v retrieving revision 1.3 diff -u -p -r1.3 patch-default-config_Makefile_in --- patches/patch-default-config_Makefile_in 13 Oct 2022 16:00:45 -0000 1.3 +++ patches/patch-default-config_Makefile_in 25 Aug 2023 12:22:31 -0000 @@ -1,7 +1,7 @@ Index: default-config/Makefile.in --- default-config/Makefile.in.orig +++ default-config/Makefile.in -@@ -593,9 +593,10 @@ uninstall-am: uninstall-configDATA +@@ -574,9 +574,10 @@ uninstall-am: uninstall-configDATA install-data-hook: cp -r $(srcdir)/images $(inst_location)/default-config Index: patches/patch-fvwm_ewmh_names_c =================================================================== RCS file: patches/patch-fvwm_ewmh_names_c diff -N patches/patch-fvwm_ewmh_names_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-fvwm_ewmh_names_c 25 Aug 2023 12:22:31 -0000 @@ -0,0 +1,133 @@ +Revert b7ae07c34bb9172b8aba964023c2febc178f7f97 to work around +https://github.com/fvwmorg/fvwm3/issues/873 + +Index: fvwm/ewmh_names.c +--- fvwm/ewmh_names.c.orig ++++ fvwm/ewmh_names.c +@@ -125,14 +125,15 @@ int EWMH_WMIconName( + { + int size = 0; + char *val; +- char *text; ++ char *tmp_str; ++ FlocaleCharset *fc = NULL; + + if (!FiconvSupport) + { + return 0; + } + +- text = val = ewmh_AtomGetByName( ++ val = ewmh_AtomGetByName( + FW_W(fw), "_NET_WM_ICON_NAME", + EWMH_ATOM_LIST_PROPERTY_NOTIFY, &size); + +@@ -141,25 +142,28 @@ int EWMH_WMIconName( + SET_HAS_EWMH_WM_ICON_NAME(fw,0); + return 0; + } +- if (IS_ICON_FONT_LOADED(fw) && fw->icon_font != NULL && fw->icon_font->fftf.fftfont[0] == NULL) ++ if (IS_ICON_FONT_LOADED(fw) && fw->icon_font != NULL) + { +- text = FiconvUtf8ToCharset(dpy, fw->icon_font->str_fc, val, size); +- free(val); ++ fc = fw->icon_font->str_fc; + } +- if (text == NULL) ++ ++ tmp_str = (char *)FiconvUtf8ToCharset( ++ dpy, fc, (const char *) val, size); ++ free(val); ++ if (tmp_str == NULL) + { + SET_HAS_EWMH_WM_ICON_NAME(fw, 0); + return 0; + } +- if (strlen(text) > MAX_ICON_NAME_LEN) ++ if (strlen(tmp_str) > MAX_ICON_NAME_LEN) + { +- text[MAX_ICON_NAME_LEN] = 0; ++ tmp_str[MAX_ICON_NAME_LEN] = 0; + } + SET_HAS_EWMH_WM_ICON_NAME(fw, 1); +- if (fw->icon_name.name && strcmp(text, fw->icon_name.name) == 0) ++ if (fw->icon_name.name && strcmp(tmp_str, fw->icon_name.name) == 0) + { + /* migo: some apps update their names every second */ +- free(text); ++ free(tmp_str); + return 0; + } + +@@ -169,7 +173,7 @@ int EWMH_WMIconName( + free_window_names(fw, False, True); + } + +- fw->icon_name.name = text; ++ fw->icon_name.name = tmp_str; + + SET_WAS_ICON_NAME_PROVIDED(fw, 1); + +@@ -189,13 +193,14 @@ int EWMH_WMName( + { + int size = 0; + char *val; +- char *text; ++ char *tmp_str; ++ FlocaleCharset *fc = NULL; + int what_changed; + + if (!FiconvSupport) + return 0; + +- text = val = ewmh_AtomGetByName( ++ val = ewmh_AtomGetByName( + FW_W(fw), "_NET_WM_NAME", + EWMH_ATOM_LIST_PROPERTY_NOTIFY, &size); + +@@ -204,25 +209,28 @@ int EWMH_WMName( + SET_HAS_EWMH_WM_NAME(fw,0); + return 0; + } +- if (IS_WINDOW_FONT_LOADED(fw) && fw->title_font != NULL && fw->title_font->fftf.fftfont[0] == NULL) ++ if (IS_WINDOW_FONT_LOADED(fw) && fw->title_font != NULL) + { +- text = FiconvUtf8ToCharset(dpy, fw->title_font->str_fc, val, size); +- free(val); ++ fc = fw->title_font->str_fc; + } +- if (text == NULL) ++ ++ tmp_str = (char *)FiconvUtf8ToCharset( ++ dpy, fc, (const char *) val, size); ++ free(val); ++ if (tmp_str == NULL) + { + SET_HAS_EWMH_WM_NAME(fw,0); + return 0; + } +- if (strlen(text) > MAX_WINDOW_NAME_LEN) ++ if (strlen(tmp_str) > MAX_WINDOW_NAME_LEN) + { +- text[MAX_WINDOW_NAME_LEN] = 0; ++ tmp_str[MAX_WINDOW_NAME_LEN] = 0; + } + SET_HAS_EWMH_WM_NAME(fw, 1); +- if (fw->name.name && strcmp(text, fw->name.name) == 0) ++ if (fw->name.name && strcmp(tmp_str, fw->name.name) == 0) + { + /* migo: some apps update their names every second */ +- free(text); ++ free(tmp_str); + return 0; + } + +@@ -232,7 +240,7 @@ int EWMH_WMName( + free_window_names(fw, True, False); + } + +- fw->name.name = text; ++ fw->name.name = tmp_str; + + if (ev == NULL) + {