It seems OpenBSD uses `f_frsize` instead of `f_bsize` to report correct
disksize.
I also sent a pull-request upstream but it seems to be inactive since some time.
Denis
Index: Makefile
===================================================================
RCS file: /cvs/ports/x11/i3status/Makefile,v
diff -u -p -r1.67 Makefile
--- Makefile 31 Mar 2025 14:37:47 -0000 1.67
+++ Makefile 30 Apr 2025 12:24:38 -0000
@@ -9,6 +9,8 @@ HOMEPAGE= https://i3wm.org/i3status/
MAINTAINER= Robert Nagy <robert@openbsd.org>
+REVISION= 0
+
# BSD
PERMIT_PACKAGE = Yes
Index: patches/patch-src_print_disk_info_c
===================================================================
RCS file: patches/patch-src_print_disk_info_c
diff -N patches/patch-src_print_disk_info_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_print_disk_info_c 30 Apr 2025 12:24:38 -0000
@@ -0,0 +1,29 @@
+Index: src/print_disk_info.c
+--- src/print_disk_info.c.orig
++++ src/print_disk_info.c
+@@ -73,13 +73,13 @@ static bool below_threshold(struct statvfs buf, const
+ } else if (strcasecmp(threshold_type, "percentage_avail") == 0) {
+ return 100.0 * (double)buf.f_bavail / (double)buf.f_blocks < low_threshold;
+ } else if (strcasecmp(threshold_type, "bytes_free") == 0) {
+-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__)
+- return (double)buf.f_bsize * (double)buf.f_bfree < low_threshold;
++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) || defined(__APPLE__)
++ return (double)buf.f_size * (double)buf.f_bfree < low_threshold;
+ #else
+ return (double)buf.f_frsize * (double)buf.f_bfree < low_threshold;
+
No comments:
Post a Comment