From: Volker Schlecht Subject: Re: sparc64 bulk build report To: ports@openbsd.org Date: Sun, 6 Sep 2026 22:03:18 +0200 On 9/6/26 3:13 PM, kmos@openbsd.org wrote: [...] > Build failures: 35 [...] > https://cranky.work/sparc64/2026-09-01/wayland/waybar.log Looks like a hidden build dependency on devel/git. I've been updating my local version of waybar to recent upstream commits semi-regularly: they contain some improvements for wayland/mango, wayland/wayfire, and some of our patches, and have been working fine for me all the while. So here's a proposal to update the port and fix the build issue in one go ... thoughts? ok? Index: Makefile =================================================================== RCS file: /cvs/ports/wayland/waybar/Makefile,v retrieving revision 1.6 diff -u -p -r1.6 Makefile --- Makefile 24 Jun 2026 12:18:13 -0000 1.6 +++ Makefile 6 Sep 2026 19:52:26 -0000 @@ -1,10 +1,9 @@ COMMENT = Customizable Wayland bar for wlroots based compositors -V = 0.15.0 +V = 0.15.0pl20260906 -DIST_TUPLE= github Alexays Waybar ${V} . +DIST_TUPLE= github Alexays Waybar 6d60c8e02be67bb85bb9b1ea803f2fbcf0722002 . PKGNAME= waybar-${V} -REVISION= 2 CATEGORIES = wayland @@ -59,7 +58,8 @@ CONFIGURE_ARGS = -Dcava=disabled \ -Dpulseaudio=disabled \ -Dsndio=enabled \ -Dsystemd=disabled \ - -Dwireplumber=disabled + -Dwireplumber=disabled \ + -Dwwan=disabled DEBUG_PACKAGES = ${BUILD_PACKAGES} Index: distinfo =================================================================== RCS file: /cvs/ports/wayland/waybar/distinfo,v retrieving revision 1.2 diff -u -p -r1.2 distinfo --- distinfo 3 Mar 2026 19:18:10 -0000 1.2 +++ distinfo 6 Sep 2026 19:52:26 -0000 @@ -1,2 +1,2 @@ -SHA256 (Alexays-Waybar-0.15.0.tar.gz) = IcK774jEBHPDVQA1gvkzHS+bigHv3M4JNe38X2sCOj4= -SIZE (Alexays-Waybar-0.15.0.tar.gz) = 355671 +SHA256 (Alexays-Waybar-6d60c8e02be67bb85bb9b1ea803f2fbcf0722002.tar.gz) = QgwHUAkvarB/6AfimCQ9xpq46hIk4vJZeoK9ZYktgyA= +SIZE (Alexays-Waybar-6d60c8e02be67bb85bb9b1ea803f2fbcf0722002.tar.gz) = 508917 Index: patches/patch-include_util_SafeSignal_hpp =================================================================== RCS file: patches/patch-include_util_SafeSignal_hpp diff -N patches/patch-include_util_SafeSignal_hpp --- patches/patch-include_util_SafeSignal_hpp 17 Apr 2026 14:11:30 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,15 +0,0 @@ -Index: include/util/SafeSignal.hpp ---- include/util/SafeSignal.hpp.orig -+++ include/util/SafeSignal.hpp -@@ -11,11 +11,6 @@ - #include - #include - --#ifdef __OpenBSD__ --#define SIGRTMIN SIGUSR1 - 1 --#define SIGRTMAX SIGUSR1 + 1 --#endif -- - namespace waybar { - - /** Index: patches/patch-meson_build =================================================================== RCS file: patches/patch-meson_build diff -N patches/patch-meson_build --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-meson_build 6 Sep 2026 19:52:26 -0000 @@ -0,0 +1,15 @@ +Index: meson.build +--- meson.build.orig ++++ meson.build +@@ -36,9 +36,9 @@ elif compiler.has_link_argument('-lstdc++fs') + cpp_link_args += ['-lstdc++fs'] + endif + +-git = find_program('git', native: true, required: false) ++# git = find_program('git', native: true, required: false) + +-if not git.found() ++if true + add_project_arguments('-DVERSION="@0@"'.format(meson.project_version()), language: 'cpp') + else + git_path = run_command(git, 'rev-parse', '--show-toplevel', check: false).stdout().strip() Index: patches/patch-resources_config_jsonc =================================================================== RCS file: /cvs/ports/wayland/waybar/patches/patch-resources_config_jsonc,v retrieving revision 1.4 diff -u -p -r1.4 patch-resources_config_jsonc --- patches/patch-resources_config_jsonc 17 Apr 2026 14:11:30 -0000 1.4 +++ patches/patch-resources_config_jsonc 6 Sep 2026 19:52:26 -0000 @@ -3,10 +3,11 @@ Tweak configuration for OpenBSD Index: resources/config.jsonc --- resources/config.jsonc.orig +++ resources/config.jsonc -@@ -7,30 +7,28 @@ +@@ -7,30 +7,30 @@ "spacing": 4, // Gaps between modules (4px) // Choose the order of the modules "modules-left": [ ++ "mango/workspaces", + "niri/workspaces", "sway/workspaces", "sway/mode", @@ -14,6 +15,7 @@ Index: resources/config.jsonc - "custom/media" ], "modules-center": [ ++ "mango/window", + "niri/window", "sway/window" ], @@ -42,10 +44,10 @@ Index: resources/config.jsonc "custom/power" ], // Modules configuration -@@ -50,15 +48,6 @@ - // "default": "" - // } - // }, +@@ -71,15 +71,6 @@ + "default": "" + } + }, - "keyboard-state": { - "numlock": true, - "capslock": true, @@ -58,7 +60,7 @@ Index: resources/config.jsonc "sway/mode": { "format": "{}" }, -@@ -112,7 +101,7 @@ +@@ -133,7 +124,7 @@ }, "clock": { // "timezone": "America/New_York", @@ -67,7 +69,7 @@ Index: resources/config.jsonc "format-alt": "{:%Y-%m-%d}" }, "cpu": { -@@ -122,98 +111,32 @@ +@@ -143,99 +134,33 @@ "memory": { "format": "{}% " }, @@ -77,12 +79,13 @@ Index: resources/config.jsonc - "critical-threshold": 80, - // "format-critical": "{temperatureC}°C {icon}", - "format": "{temperatureC}°C {icon}", -- "format-icons": ["", "", ""] +- "format-icons": ["󰉬", "", "󰉪"] - }, "backlight": { // "device": "acpi_video1", "format": "{percent}% {icon}", - "format-icons": ["", "", "", "", "", "", "", "", ""] + "format-icons": ["", "", "", "", "", "", "", "", ""], + "min-brightness": 1 }, - "battery": { - "states": { @@ -92,19 +95,19 @@ Index: resources/config.jsonc - }, - "format": "{capacity}% {icon}", - "format-full": "{capacity}% {icon}", -- "format-charging": "{capacity}% ", +- "format-charging": "{capacity}% 󰃨", - "format-plugged": "{capacity}% ", - "format-alt": "{time} {icon}", - // "format-good": "", // An empty format will hide the module - // "format-full": "", - "format-icons": ["", "", "", "", ""] + "custom/sndio": { -+ "format": "  {}% ", -+ "interval": 10, -+ "exec": "if [ $(sndioctl -n output.mute) -eq 1 ]; then echo \"--\"; else sndioctl -n output.level | awk '{printf \"%.0f\\n\", $1 * 100}'; fi", -+ "on-click": "sndioctl output.mute=! > /dev/null", -+ "on-scroll-down": "sndioctl output.level=-0.01 > /dev/null", -+ "on-scroll-up": "sndioctl output.level=+0.01 > /dev/null" ++ "format": "  {}% ", ++ "interval": 10, ++ "exec": "if [ $(sndioctl -n output.mute) -eq 1 ]; then echo \"--\"; else sndioctl -n output.level | awk '{printf \"%.0f\\n\", $1 * 100}'; fi", ++ "on-click": "sndioctl output.mute=! > /dev/null", ++ "on-scroll-down": "sndioctl output.level=-0.01 > /dev/null", ++ "on-scroll-up": "sndioctl output.level=+0.01 > /dev/null" }, - "battery#bat2": { - "bat": "BAT2" @@ -115,7 +118,7 @@ Index: resources/config.jsonc }, - "power-profiles-daemon": { - "format": "{icon}", -- "tooltip-format": "Power profile: {profile}\nDriver: {driver}", +- "tooltip-format": "Power profile: {profile}\nCPU driver: {cpu_driver}\nPlatform driver: {platform_driver}", - "tooltip": true, - "format-icons": { - "default": "", @@ -131,9 +134,9 @@ Index: resources/config.jsonc - "network": { - // "interface": "wlp2*", // (Optional) To force the use of this interface - "format-wifi": "{essid} ({signalStrength}%) ", -- "format-ethernet": "{ipaddr}/{cidr} ", -- "tooltip-format": "{ifname} via {gwaddr} ", -- "format-linked": "{ifname} (No IP) ", +- "format-ethernet": "{ipaddr}/{cidr} 󰊗", +- "tooltip-format": "{ifname} via {gwaddr} 󰊗", +- "format-linked": "{ifname} (No IP) 󰊗", - "format-disconnected": "Disconnected ⚠", - "format-alt": "{ifname}: {ipaddr}/{cidr}" - }, @@ -141,14 +144,14 @@ Index: resources/config.jsonc - // "scroll-step": 1, // %, can be a float - "format": "{volume}% {icon} {format_source}", - "format-bluetooth": "{volume}% {icon} {format_source}", -- "format-bluetooth-muted": " {icon} {format_source}", -- "format-muted": " {format_source}", +- "format-bluetooth-muted": "󰅶 {icon} {format_source}", +- "format-muted": "󰅶 {format_source}", - "format-source": "{volume}% ", - "format-source-muted": "", - "format-icons": { - "headphone": "", -- "hands-free": "", -- "headset": "", +- "hands-free": "󰂑", +- "headset": "󰂑", - "phone": "", - "portable": "", - "car": "", @@ -169,7 +172,7 @@ Index: resources/config.jsonc - // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name - }, "custom/power": { -- "format" : "⏻ ", + "format" : "⏻ ", - "tooltip": false, - "menu": "on-click", - "menu-file": "$HOME/.config/waybar/power_menu.xml", // Menu file in resources folder @@ -179,7 +182,6 @@ Index: resources/config.jsonc - "suspend": "systemctl suspend", - "hibernate": "systemctl hibernate" - } -+ "format" : "⏻", + "tooltip": "Sleep", + "on-click": "zzz" } Index: patches/patch-src_main_cpp =================================================================== RCS file: patches/patch-src_main_cpp diff -N patches/patch-src_main_cpp --- patches/patch-src_main_cpp 17 Apr 2026 14:11:30 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,30 +0,0 @@ -Index: src/main.cpp ---- src/main.cpp.orig -+++ src/main.cpp -@@ -52,9 +52,11 @@ static void catchSignals(waybar::SafeSignal& sign - std::signal(SIGINT, writeSignalToPipe); - std::signal(SIGCHLD, writeSignalToPipe); - -+#ifdef SIGRTMIN - for (int sig = SIGRTMIN + 1; sig <= SIGRTMAX; ++sig) { - std::signal(sig, writeSignalToPipe); - } -+#endif - - while (true) { - int signum; -@@ -116,12 +118,14 @@ void handleUserSignal(int signal, bool& reload) { - // If this signal should restart or close the bar, this function will write - // `true` or `false`, respectively, into `reload`. - static void handleSignalMainThread(int signum, bool& reload) { -+#ifdef SIGRTMIN - if (signum >= SIGRTMIN + 1 && signum <= SIGRTMAX) { - for (auto& bar : waybar::Client::inst()->bars) { - bar->handleSignal(signum); - } - return; - } -+#endif - - switch (signum) { - case SIGUSR1: Index: patches/patch-src_modules_custom_cpp =================================================================== RCS file: patches/patch-src_modules_custom_cpp diff -N patches/patch-src_modules_custom_cpp --- patches/patch-src_modules_custom_cpp 17 Apr 2026 14:11:30 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,15 +0,0 @@ -Index: src/modules/custom.cpp ---- src/modules/custom.cpp.orig -+++ src/modules/custom.cpp -@@ -136,9 +136,11 @@ void waybar::modules::Custom::waitingWorker() { - } - - void waybar::modules::Custom::refresh(int sig) { -+#ifdef SIGRTMIN - if (config_["signal"].isInt() && sig == SIGRTMIN + config_["signal"].asInt()) { - thread_.wake_up(); - } -+#endif - } - - void waybar::modules::Custom::handleEvent() { Index: patches/patch-src_modules_image_cpp =================================================================== RCS file: patches/patch-src_modules_image_cpp diff -N patches/patch-src_modules_image_cpp --- patches/patch-src_modules_image_cpp 17 Apr 2026 14:11:30 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,15 +0,0 @@ -Index: src/modules/image.cpp ---- src/modules/image.cpp.orig -+++ src/modules/image.cpp -@@ -41,9 +41,11 @@ void waybar::modules::Image::delayWorker() { - } - - void waybar::modules::Image::refresh(int sig) { -+#ifdef SIGRTMIN - if (config_["signal"].isInt() && sig == SIGRTMIN + config_["signal"].asInt()) { - thread_.wake_up(); - } -+#endif - } - - auto waybar::modules::Image::update() -> void { Index: pkg/PLIST =================================================================== RCS file: /cvs/ports/wayland/waybar/pkg/PLIST,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 PLIST --- pkg/PLIST 4 Jan 2026 18:15:27 -0000 1.1.1.1 +++ pkg/PLIST 6 Sep 2026 19:52:26 -0000 @@ -17,6 +17,11 @@ @man man/man5/waybar-idle-inhibitor.5 @man man/man5/waybar-image.5 @man man/man5/waybar-inhibitor.5 +@man man/man5/waybar-mango-keymode.5 +@man man/man5/waybar-mango-language.5 +@man man/man5/waybar-mango-layout.5 +@man man/man5/waybar-mango-window.5 +@man man/man5/waybar-mango-workspaces.5 @man man/man5/waybar-memory.5 @man man/man5/waybar-menu.5 @man man/man5/waybar-mpd.5 @@ -38,6 +43,9 @@ @man man/man5/waybar-temperature.5 @man man/man5/waybar-tray.5 @man man/man5/waybar-upower.5 +@man man/man5/waybar-user.5 +@man man/man5/waybar-wayfire-window.5 +@man man/man5/waybar-wayfire-workspaces.5 @man man/man5/waybar-wlr-taskbar.5 @man man/man5/waybar.5 share/examples/waybar/