pkgsrc-Bugs archive

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

Re: pkg/59702: sysutils/btop: multiple issues in btop-1.4.5



The following reply was made to PR pkg/59702; it has been noted by GNATS.

From: RVP <rvp%SDF.ORG@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: pkg-manager%netbsd.org@localhost, pkgsrc-bugs%netbsd.org@localhost
Subject: Re: pkg/59702: sysutils/btop: multiple issues in btop-1.4.5
Date: Sun, 12 Oct 2025 13:38:05 +0000 (UTC)

 On Sat, 11 Oct 2025, Thomas Klausner wrote:
 
 > Two questions:
 >
 > 1. can you please upstream this?
 >
 
 I can; if fox@ doesn't do it. He's both the package maintainer and the author
 of the NetBSD port according to the copyright in `src/netbsd/btop_collect.cpp'
 
 (My C++ skillz are nothing to write home about...)
 
 > 2. does your build also end up with the foreground colour set to light
 > gray/white? Any ideas how to fix this?
 >
 
 You'll have to show me a screenshot, Thomas. My build looks OK.
 btop(1) autosaves any config. changes (type 'm' for menu), so try deleting
 your `~/.config/btop/' to get a default config.
 
 I would've suspected some theme issue, except themes don't work on NetBSD!
 
 Fix:
 
 ---START patch---
 diff -urN btop-1.4.5.orig/src/btop.cpp btop-1.4.5/src/btop.cpp
 --- btop-1.4.5.orig/src/btop.cpp	2025-09-19 20:29:22.000000000 +0000
 +++ btop-1.4.5/src/btop.cpp	2025-10-12 12:39:45.135765518 +0000
 @@ -46,6 +46,12 @@
   	#include <limits.h>
   #endif
 
 +#ifdef __NetBSD__
 +	#include <sys/param.h>
 +	#include <sys/sysctl.h>
 +	#include <unistd.h>
 +#endif
 +
   #include "btop_cli.hpp"
   #include "btop_shared.hpp"
   #include "btop_tools.hpp"
 @@ -877,6 +883,19 @@
   		if(!_NSGetExecutablePath(buf, &bufsize))
   			Global::self_path = fs::path(buf).remove_filename();
   	}
 +#elif __NetBSD__
 +	{
 +		int mib[4];
 +		char buf[PATH_MAX];
 +		size_t bufsize = sizeof buf;
 +
 +		mib[0] = CTL_KERN;
 +		mib[1] = KERN_PROC_ARGS;
 +		mib[2] = getpid();
 +		mib[3] = KERN_PROC_PATHNAME;
 +		if (sysctl(mib, 4, buf, &bufsize, NULL, 0) == 0)
 +			Global::self_path = fs::path(buf).remove_filename();
 +	}
   #endif
   	if (std::error_code ec; not Global::self_path.empty()) {
   		Theme::theme_dir = fs::canonical(Global::self_path / "../share/btop/themes", ec);
 @@ -884,7 +903,12 @@
   	}
   	//? If relative path failed, check two most common absolute paths
   	if (Theme::theme_dir.empty()) {
 -		for (auto theme_path : {"/usr/local/share/btop/themes", "/usr/share/btop/themes"}) {
 +		for (auto theme_path : {
 +#ifdef __NetBSD__
 +			"/usr/pkg/share/btop/themes",
 +#endif
 +			"/usr/local/share/btop/themes", "/usr/share/btop/themes"
 +		}) {
   			if (fs::is_directory(fs::path(theme_path)) and access(theme_path, R_OK) != -1) {
   				Theme::theme_dir = fs::path(theme_path);
   				break;
 diff -urN btop-1.4.5.orig/src/btop_menu.cpp btop-1.4.5/src/btop_menu.cpp
 --- btop-1.4.5.orig/src/btop_menu.cpp	2025-09-19 20:29:22.000000000 +0000
 +++ btop-1.4.5/src/btop_menu.cpp	2025-10-12 12:37:56.670049020 +0000
 @@ -214,6 +214,9 @@
   				"Set color theme.",
   				"",
   				"Choose from all theme files in (usually)",
 +#ifdef __NetBSD__
 +				"\"/usr/pkg/share/btop/themes\",",
 +#endif
   				"\"/usr/[local/]share/btop/themes\" and",
   				"\"~/.config/btop/themes\".",
   				"",
 ---END patch---
 
 -RVP
 


Home | Main Index | Thread Index | Old Index