pkgsrc-WIP-changes archive

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

gkrellm{,-share,-server}: Preparing for 2.4.0 update



Module Name:	pkgsrc-wip
Committed By:	PHO <pho%cielonegro.org@localhost>
Pushed By:	pho
Date:		Tue Aug 26 12:36:16 2025 +0900
Changeset:	f556d37b9c21404bbe14f0a5d571b1e201819e78

Added Files:
	gkrellm-server/DESCR
	gkrellm-server/Makefile
	gkrellm-server/PLIST
	gkrellm-share/DESCR
	gkrellm-share/Makefile
	gkrellm-share/PLIST
	gkrellm/COMMIT_MSG
	gkrellm/DESCR
	gkrellm/Makefile
	gkrellm/Makefile.common
	gkrellm/PLIST
	gkrellm/buildlink3.mk
	gkrellm/distinfo
	gkrellm/files/gkrellmd.sh
	gkrellm/options.mk
	gkrellm/patches/patch-gkrellmd.1
	gkrellm/patches/patch-server_Makefile
	gkrellm/patches/patch-src_Makefile

Log Message:
gkrellm{,-share,-server}: Preparing for 2.4.0 update

It's quite a large change, and I'm testing this on platforms not only NetBSD.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=f556d37b9c21404bbe14f0a5d571b1e201819e78

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

diffstat:
 gkrellm-server/DESCR                  |  24 +++
 gkrellm-server/Makefile               |  47 +++++
 gkrellm-server/PLIST                  |   6 +
 gkrellm-share/DESCR                   |  24 +++
 gkrellm-share/Makefile                |  25 +++
 gkrellm-share/PLIST                   |  19 ++
 gkrellm/COMMIT_MSG                    | 354 ++++++++++++++++++++++++++++++++++
 gkrellm/DESCR                         |  24 +++
 gkrellm/Makefile                      |  53 +++++
 gkrellm/Makefile.common               |  98 ++++++++++
 gkrellm/PLIST                         |  15 ++
 gkrellm/buildlink3.mk                 |  16 ++
 gkrellm/distinfo                      |   8 +
 gkrellm/files/gkrellmd.sh             |  17 ++
 gkrellm/options.mk                    |  46 +++++
 gkrellm/patches/patch-gkrellmd.1      |  13 ++
 gkrellm/patches/patch-server_Makefile |  54 ++++++
 gkrellm/patches/patch-src_Makefile    |  45 +++++
 18 files changed, 888 insertions(+)

diffs:
diff --git a/gkrellm-server/DESCR b/gkrellm-server/DESCR
new file mode 100644
index 0000000000..0928bcb774
--- /dev/null
+++ b/gkrellm-server/DESCR
@@ -0,0 +1,24 @@
+With a single process, GKrellM manages multiple stacked monitors and supports
+applying themes to match the monitors appearance to your window manager, Gtk, or
+any other theme.
+ * SMP CPU, Disk, Proc, and active net interface monitors with LEDs.
+ * Internet monitor that displays current and charts historical port hits
+ * Memory and swap space usage meters and a system uptime monitor.
+ * File system meters show capacity/free space and can mount/umount.
+ * A mailbox monitor which can launch mail reader, remote mail fetch.
+ * Clock/calendar and hostname display.
+ * APM laptop battery monitor.
+ * CPU/motherboard temperature display if lm_sensors modules installed.
+ * Multiple monitors managed by a single process to reduce system load.
+ * A timer button that can execute PPP or ISDN logon/logoff scripts.
+ * Charts are autoscaling with configurable grid line resolution, or can be set
+   to a fixed scale mode.
+ * Separate colors for "in" and "out" data.  The in color is used for CPU user
+   time, disk read, forks, and net receive data.  The out color is used for CPU
+   sys time, disk write, load, and net transmit data.
+ * Commands can be configured to run when monitor labels are clicked.
+ * GKrellM is plugin capable so special interest monitors can be created.
+ * A different theme can be created with the GIMP.
+The gkrellm2-server package installs the monitoring part of GKrellM, which can
+be made to run as a daemon to be polled over the network by the GKrellM client
+as found in the gkrellm2 package.
diff --git a/gkrellm-server/Makefile b/gkrellm-server/Makefile
new file mode 100644
index 0000000000..e6bcaac188
--- /dev/null
+++ b/gkrellm-server/Makefile
@@ -0,0 +1,47 @@
+# $NetBSD: Makefile,v 1.35 2021/12/08 16:06:29 adam Exp $
+
+.include "../../wip/gkrellm/Makefile.common"
+
+GKRELLM_PKGBASE=	gkrellm-server
+COMMENT=		Monitoring daemon remotely accessible by a GKrellM client
+DEPENDS+=		gkrellm-share-${GKRELLM_VERSION}:../../wip/gkrellm-share
+
+USE_TOOLS+=		pkg-config
+PTHREAD_OPTS+=		require
+RCD_SCRIPTS=		gkrellmd
+EGDIR=			${PREFIX}/share/examples/gkrellm-server
+CONF_FILES=		${EGDIR}/gkrellmd.conf ${PKG_SYSCONFDIR}/gkrellmd.conf
+
+.include "../../mk/bsd.fast.prefs.mk"
+
+.if ${OPSYS} == "FreeBSD" || ${OPSYS} == "OpenBSD" || ${OPSYS} == "DragonFly"
+SPECIAL_PERMS+=		${PREFIX}/bin/gkrellmd ${REAL_ROOT_USER} kmem 2555
+.endif
+
+SUBST_CLASSES+=		gkprefix
+SUBST_STAGE.gkprefix=	pre-configure
+SUBST_FILES.gkprefix=	server/gkrellmd.h
+SUBST_SED.gkprefix+=	-e '/GKRELLMD_LOCAL_ETC/d'
+SUBST_SED.gkprefix+=	-e '/GKRELLMD_SYS_ETC/{s!/etc!${PKG_SYSCONFDIR}!;}'
+
+BUILD_DIRS=		server
+BUILD_TARGET=		${GKRELLM_PER_PLATFORM_TARGET}
+.if !empty(PKG_OPTIONS:Mnls)
+BUILD_MAKE_FLAGS+=	LOCALEDIR=${PREFIX}/${PKGLOCALEDIR}/locale
+.endif
+
+INSTALL_MAKE_FLAGS+=	CFGDIR=${DESTDIR}${EGDIR}
+INSTALL_MAKE_FLAGS+=	SINSTALLDIR=${DESTDIR}${PREFIX}/sbin
+INSTALL_MAKE_FLAGS+=	SMANDIR=${DESTDIR}${PREFIX}/${PKGMANDIR}/man8
+INSTALL_TARGET=		install_bin install_inc install_man install_cfg
+
+# include/gkrellm2/log.h conflicts with sysutils/gkrellm because the latter
+# also installs exactly the same file. Removing it means that one cannot
+# build a gkrellm plugin with only the server installed, but can we do
+# anything better than this?
+post-install:
+	${RM} -f ${DESTDIR}${PREFIX}/include/gkrellm2/log.h
+
+.include "../../devel/glib2/buildlink3.mk"
+.include "../../mk/pthread.buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/gkrellm-server/PLIST b/gkrellm-server/PLIST
new file mode 100644
index 0000000000..30eca90d39
--- /dev/null
+++ b/gkrellm-server/PLIST
@@ -0,0 +1,6 @@
+@comment $NetBSD$
+include/gkrellm2/gkrellmd-version.h
+include/gkrellm2/gkrellmd.h
+man/man8/gkrellmd.8
+sbin/gkrellmd
+share/examples/gkrellm-server/gkrellmd.conf
diff --git a/gkrellm-share/DESCR b/gkrellm-share/DESCR
new file mode 100644
index 0000000000..4414758d43
--- /dev/null
+++ b/gkrellm-share/DESCR
@@ -0,0 +1,24 @@
+With a single process, GKrellM manages multiple stacked monitors and supports
+applying themes to match the monitors appearance to your window manager, Gtk, or
+any other theme.
+ * SMP CPU, Disk, Proc, and active net interface monitors with LEDs.
+ * Internet monitor that displays current and charts historical port hits
+ * Memory and swap space usage meters and a system uptime monitor.
+ * File system meters show capacity/free space and can mount/umount.
+ * A mailbox monitor which can launch mail reader, remote mail fetch.
+ * Clock/calendar and hostname display.
+ * APM laptop battery monitor.
+ * CPU/motherboard temperature display if lm_sensors modules installed.
+ * Multiple monitors managed by a single process to reduce system load.
+ * A timer button that can execute PPP or ISDN logon/logoff scripts.
+ * Charts are autoscaling with configurable grid line resolution, or can be set
+   to a fixed scale mode.
+ * Separate colors for "in" and "out" data.  The in color is used for CPU user
+   time, disk read, forks, and net receive data.  The out color is used for CPU
+   sys time, disk write, load, and net transmit data.
+ * Commands can be configured to run when monitor labels are clicked.
+ * GKrellM is plugin capable so special interest monitors can be created.
+ * A different theme can be created with the GIMP.
+GKrellM can either monitor the host it is running on or poll a server over the
+network. Both packages, gkrellm2 and gkrellm2-server, share a certain amount of
+data, notably i18n files which are included in the gkrellm2-share package.
diff --git a/gkrellm-share/Makefile b/gkrellm-share/Makefile
new file mode 100644
index 0000000000..37183c16de
--- /dev/null
+++ b/gkrellm-share/Makefile
@@ -0,0 +1,25 @@
+# $NetBSD: Makefile,v 1.7 2012/10/23 19:51:03 asau Exp $
+
+.include "../../wip/gkrellm/Makefile.common"
+
+GKRELLM_PKGBASE=	gkrellm-share
+
+COMMENT=		GKrellM2 locale files
+
+BUILD_DIRS=		po
+INSTALLATION_DIRS=	share/gkrellm2
+
+.if !empty(PKG_OPTIONS:Mnls)
+USE_TOOLS+=		msgfmt
+USE_PKGLOCALEDIR=	yes
+INSTALL_MAKE_FLAGS=	LOCALEDIR=${DESTDIR}${PREFIX}/${PKGLOCALEDIR}/locale
+INSTALLATION_DIRS+=	${PKGLOCALEDIR}/locale
+PLIST.nls=		yes
+.endif
+PLIST_VARS+=		nls
+PRINT_PLIST_AWK+=	/^${PKGLOCALEDIR:S,/,\/,g}\/locale/ { $$0 = "$${PLIST.nls}" $$0 }
+
+post-install:
+	${INSTALL_DATA} ${WRKSRC}/README ${WRKSRC}/COPYRIGHT ${DESTDIR}${PREFIX}/share/gkrellm2
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/gkrellm-share/PLIST b/gkrellm-share/PLIST
new file mode 100644
index 0000000000..5d530e93e5
--- /dev/null
+++ b/gkrellm-share/PLIST
@@ -0,0 +1,19 @@
+@comment $NetBSD$
+share/gkrellm2/COPYRIGHT
+share/gkrellm2/README
+${PLIST.nls}share/locale/bg/LC_MESSAGES/gkrellm.mo
+${PLIST.nls}share/locale/cs/LC_MESSAGES/gkrellm.mo
+${PLIST.nls}share/locale/da/LC_MESSAGES/gkrellm.mo
+${PLIST.nls}share/locale/de/LC_MESSAGES/gkrellm.mo
+${PLIST.nls}share/locale/es/LC_MESSAGES/gkrellm.mo
+${PLIST.nls}share/locale/fr/LC_MESSAGES/gkrellm.mo
+${PLIST.nls}share/locale/it/LC_MESSAGES/gkrellm.mo
+${PLIST.nls}share/locale/ja/LC_MESSAGES/gkrellm.mo
+${PLIST.nls}share/locale/nl/LC_MESSAGES/gkrellm.mo
+${PLIST.nls}share/locale/pl/LC_MESSAGES/gkrellm.mo
+${PLIST.nls}share/locale/pt/LC_MESSAGES/gkrellm.mo
+${PLIST.nls}share/locale/pt_BR/LC_MESSAGES/gkrellm.mo
+${PLIST.nls}share/locale/ru/LC_MESSAGES/gkrellm.mo
+${PLIST.nls}share/locale/sl/LC_MESSAGES/gkrellm.mo
+${PLIST.nls}share/locale/sv/LC_MESSAGES/gkrellm.mo
+${PLIST.nls}share/locale/uk/LC_MESSAGES/gkrellm.mo
diff --git a/gkrellm/COMMIT_MSG b/gkrellm/COMMIT_MSG
new file mode 100644
index 0000000000..789a44cdb8
--- /dev/null
+++ b/gkrellm/COMMIT_MSG
@@ -0,0 +1,354 @@
+sysutils/gkrellm-share: Update to 2.4.0
+
+pkgsrc changes:
+- Changed HOMEPAGE. gkrellm.net has apparently been taken over and now it
+  only contains irrelevent ads and AI-generated crap, pretending to still
+  be the official website. It's clearly a fake because it doesn't even
+  distribute the source tarball. The upstream has moved to srcbox.net.
+- Removed patch-aa (src/sysdeps/bsd-common.c), patch-ab
+  (src/sysdeps/netbsd.c), patch-ac (src/sysdeps/openbsd.c), patch-ad
+  (src/sysdeps/bsd-net-open.c), patch-ae (server/gkrellmd-private.h),
+  patch-ag (src/chart.c), patch-ah (src/config.c), patch-ai (src/disk.c),
+  patch-aj (src/mail.c), patch-ak (src/net.c), patch-al (src/sensors.c),
+  patch-an (server/mail.c), patch-ao (server/sysdeps-unix.c), patch-ap
+  (src/client.c), patch-aq (server/main.c), patch-ar (src/monitor.c),
+  patch-as (src/configure), patch-au (src/gkrellm.h), patch-aw
+  (src/inet.h), patch-ay (src/sysdeps-unix.c), and patch-az
+  (src/sysdeps/sensors-common.c): The upstream took our patch and merged
+  them. How amazing!
+- Removed patch-am (src/smbencrypt.c): The upstream removed SMB stuff and
+  now it uses libntlm.
+- Removed patch-Makefile.inc and patch-src_Makefile: We've (including me)
+  been patching makefiles without knowing those files have come from pkgsrc
+  but not from upstream. The original files were in ${FILESDIR}. This is
+  confusing even to us, pkgsrc devs, so don't do this anymore.
+- gkrellmd from sysutils/gkrellm-server is no longer setuid'ed on NetBSD,
+  because its NetBSD-specific code has migrated away from kvm to sysctl.
+- NLS support is now optional but is enabled by default.
+- Dropped the option for building with glib1 instead of glib2. It's no
+  longer supported.
+- Dropped optional dependencies from sysutils/gkrellm/buildlink3.mk because
+  they are private to sysutils/gkrellm and don't affect any of the plugins.
+- Moved gkrellmd from ${PREFIX}/bin to ${PREFIX}/sbin because it's not
+  supposed to be directly executed by users. Its man page is now also moved
+  to section 8.
+
+upstream changes:
+
+## [2.4.0](https://git.srcbox.net/gkrellm/gkrellm/releases/tag/gkrellm-2.4.0) - 2025-01-19
+
+- Use a sans-serif font and slightly bigger font sizes by default
+- Add native GnuTLS support mail check via SSL/TLS and require GnuTLS 3.3 or newer (#29)
+- Add and install a systemd service unit for gkrellmd
+- Install gkrellmd configuration file in standard "install" make target
+- Require and always use `getaddrinfo()` function. In a previous release this
+  was already done on Linux. Now it also applies to other platforms like BSD,
+  macOS, Solaris and Windows.
+- Enable gkrellmd timeouts by default to make gkrellm clients automatically
+  reconnect after a connection loss
+- Fix syslog facility/priority code in gkrellmd to be POSIX compliant so it
+  is more portable to Unix platforms other than Linux
+- Require OpenSSL 1.1 or newer for mail check via SSL/TLS.
+- Fix translations and add menu items to main context menu which were previously
+  only available as debug options
+- Replace MD5 code with existing functionality from GLib
+- Add and install XDG desktop file as well as icons on Unix/Linux systems.
+  This uses the GKrellM icon used on Windows only so far because the old icon
+  is only available in a very small size that is not suitable for modern
+  screen sizes. The icon is also used as the default window icon in taskbars
+  and launchers.
+- Use locale-dependent date and time formatting by default
+- Add Windows 10, 11, Server 2016/2019/2022 OS version detection
+- Do not strip executables during installation by default anymore. Use
+  `make install-strip` if you prefer the old behavior.
+- Fix syntax errors in manual pages (patch by Sandro Tosi)
+- Fix GTK and GLib deprecation warnings and require GTK >= 2.24
+- Fix most compiler warnings when building with GCC 13 and Clang 18
+- Center each line in multiline clock/calendar decals
+- Fix IPv6 address matching in gkrellmd client access list
+- Update French translation (patch by Jerome UZEL)
+- Fix stack corruption in Solaris kstat code (patch by Adam Stylinsk)
+
+## [2.3.11](https://git.srcbox.net/gkrellm/gkrellm/releases/tag/gkrellm-2.3.11) - 2019-07-25
+
+- Fix krell scale for medium sized filesystems (based on patch by Peter Hymann)
+- Support OpenSSL >= 1.1 for mail check over SSL/TLS
+- Sort Linux disk devices alphabetically (patch by Petr Gajdos)
+- Avoid corruption of chart labels (based on patch by Stefan Seyfried)
+- Fix possible buffer-overflow in disk size formatting
+
+## [2.3.10](https://git.srcbox.net/gkrellm/gkrellm/releases/tag/gkrellm-2.3.10) - 2016-10-23
+
+- Fix Linux nvme block devices
+- Do not reject disks because they are not found in `/proc/devices` (the nvme
+  disks may not be there) so new default is to accept anything in
+  `/proc/diskstats` regardless if major number is known or in devices file.
+
+## [2.3.9](https://git.srcbox.net/gkrellm/gkrellm/releases/tag/gkrellm-2.3.9) - 2016-10-11
+
+- Fix mmc block devices (regression in 2.3.8)
+- Allow Pango markup for all configurable panel labels
+
+## [2.3.8](https://git.srcbox.net/gkrellm/gkrellm/releases/tag/gkrellm-2.3.8) - 2016-09-07
+
+- Add option to ignore network interfaces that match a regular expression
+  pattern
+- Fix composite disk graph double counting
+- Handle dynamic disk major numbers for `dm` and `mdp` virtual devices and don't
+  add their data to the composite disk
+- Disk panel labels are now configurable. This is mostly useful for user
+  labeling of virtual disks
+- Use wrap bytes instead of discarding data when cumulative chart data overflows
+- Changed keyboard shortcut for theme changes to `Shift+Page Up` and `Shift+Page Down`
+  (patch by Pavel Reznicek)
+- Indentation cleanup bugfix for Linux kernel version detection
+  (patch by Ville Skytta)
+
+## [2.3.7](https://git.srcbox.net/gkrellm/gkrellm/releases/tag/gkrellm-2.3.7) - 2016-06-03
+
+- Use `gdk_pixbuf_new_from_data()` instead of deprecated
+  `gdk_pixbuf_new_from_inline()`. Inline `alert_inline[]` needed to be --raw.
+- Fix sending error message back to clients that were refused by gkrellmd and
+  add dialog to gkrellm client to display the error message
+- Fix possible chart rendering problem for single pixels
+- Fix compilation without OpenSSL and GnuTLS (patch by Felix Janda)
+- Always use `getaddrinfo()` on Linux to fix IPv6 support on C libraries other
+  than glibc (for example musl libc)
+- Fix handling of `mmcblkN` SD disk partition numbers
+
+## [2.3.6-RC2](https://git.srcbox.net/gkrellm/gkrellm/releases/tag/gkrellm-2.3.6-rc2) - 2015-12-23
+
+- Each real CPU chart may be individually enabled instead of as a group so CPU
+  charts may be split into multiple instances. For systems with large numbers
+  of CPUs.
+- Make drawing CPU panel labels optional to allow saving vertical space.
+- Patch from Ville Skytta: fix some `netbsd.c` and `winops-win32.c` issues flagged by cppcheck.
+- Patch from Neil Booth: Add multiple CPU capability to CPU monitor for
+  Dragonfly. Acquired `dragonfly.c` from web so could apply patch. I have no clue
+  why I never had a `dragonfly.c`.
+- Patch from Jindrich Makovicka: Update multiple GKrellM files to compile with
+  `-DGTK_DISABLE_DEPRECATED -DGSEAL_ENABLE` for GTK3 compatibility. Replaces
+  GtkItemFactory and GtkTooltips.
+- Add nvidia-smi interface to linux.c for getting nvidia GPU temperatures.
+- Translation updates
+  - ru.po from Roman Savochenko
+  - uk.po new translation from Roman Savochenko
+  - pt.po new translation from Ze based on pt_BR.po
+  - fr.po from Jerome UZEL
+- Bugfixes
+  - fix memory leaks: add `g_thread_unref()` for all GThread pointers returned
+    from `g_thread_new()` calls.
+  - Flag config as modified when changing a charts Resolution per Grid and bump
+    max grid resolution to 500000000.
+  - Store lockfiles under `/var/lock/gkrellm-UID` directories to make lockfiles
+    work for multiple users.
+- Only link against and initialize Libgcrypt when building with GnuTLS < 2.12.
+  This allows using GKrellM with GnuTLS versions built against Nettle instead
+  of Libgcrypt.
+- Patch from Gerard Neil: Skip autofs mounts in free disk space polling
+- Patch from Gerard Neil: Handle cifs as remote filesystem to use longer
+  `nfs-timeout` polling interval
+- Patch from Alexandre Rostovtsev: Explicitly link against gmodule-2.0
+- Add support for GPU-Z sensor information on Windows
+- Increase minimum required GLib version to 2.32, some parts of gkrellm use
+  newer GLib API
+- Drop remaining GLib 1.x compatibility from gkrellmd
+- Patch from Ville Skyttä: Allow binding to a listen address that doesn't exist
+  yet (gkrellmd)
+- Patch from Pierre Neyron: Option to enable/disable new network interfaces
+  by default
+
+2.3.5 - Thu Oct 7, 2010
+------------------------
+	* Patch from Hajimu Umemoto: use utmpx instead of utmp on FreeBSD 9-CURRENT
+	* Linux sensors: check for /sys/class/thermal/thermal_zone[0-*].
+	* Patch from Simon de Hartog: Add Linux net monitor checking for
+	  IPv6 routes.
+	* Patches from Stefan Gehn:
+	    - Use dynamic buffering to handle large disk names from a Mac gkrellmd.
+	    - Clean up debug printing by using gkrellm_debug(), g_message(),
+	      g_debug(), g_warning().
+	    - Replace sprintf() calls with snprintf().
+	    - Use glib gstdio to replace unix calls: fopen()->g_fopen(), etc.
+	    - Use glib mutex functions for portability when building with
+	      GnuTLS.
+	    - Fix IMAP login by escaping backslash and double-quotes in
+	      username, password and mailbox strings.
+	    - Fix initial sending of fstab entries in gkrellmd, fstab was only
+	      sent if it was marked as "changed"
+	    - Configure scripts handle pkg-config and compiler errors better.
+	    - src/Makefile: Rename SMC_LIBS to X11_lIBS and add -lX11
+	    - Makefile: Drop duplicating SMC_LIBS in "netbsd" targets by calling
+	      src/Makefile with "netbsd" target instead of using the generic
+	      "gkrellm" target.
+	    - gkrellmd: Make "-d" commandline option the short version
+	      for "--detach" instead of for "--debug-level".
+	    - Enable IPv6-support on win32 if target os is windows xp or newer.
+	    - Support monitoring of active IPv6 TCP connections on windows vista
+	      or newer.
+	    - Fix building with mingw-w64 environment.
+	    - Fix time formatting on win32 for monthly network statistics
+	* Patch from Stefan Gehn: add searching for linux sensors directly below
+	  hwmon dir since kernel is putting newer devices there.
+	* Patch from Hajimu Umemoto: FreeBSD memory usage calculation update.
+	* Translation updates
+	  o fr.po from Jerome UZEL
+	  o es.po from Cristian Othon Martinez Vera
+	  o de.po minor bug patch from Jan Brinkmann.
+	  o pt_BR.po update from Vinicius Moreira de Oliveira
+	* Bugfixes
+	  o Fix eof check in fgets_pipe() (when using external mail check program).
+	  o Jindrich Makovicka patch: fix some aliasing violations due to
+	    sockaddr_* typecasting.
+	  o Ville Skytta patch: add explicit -lm linking to fix Fedora builds
+	    with --no-add-needed.
+
+2.3.4 - Mon Jan 4, 2010
+------------------------
+	* Add gkrellm_sys_setup_connect() function so sysdep code can register
+	  from gkrellm_sys_main_init() a setup function to call after main()
+	  argument parsing.
+	* Patch from Hajimu Umemoto: add FreeBSD support for the amdtemp
+	  temperature sensor.
+	* Add some mbmon usage help to gkrellm.1 and README.
+	* Bugfixes
+	  o Patch from Sandro Tosi: fix a FTBFS when using gold as linker
+	    (by simply adding -lX11).
+	  o Add SSL library init calls to mail check for gnutls case.
+	  o Patch from Hans de Goede: Fix some crashes - check for NULL GC when
+	    drawing root pixmap on transparent chart or panel.
+	  o Patch from Goswin von Brederlow: Ignore device mapper devices in
+	    Linux disk stats.
+
+2.3.3 - Mon Dec 21, 2009
+------------------------
+	* gkrellm.spec update from Tim Keller.
+	* Patch from Cyrus Rahman: restore gkrellm_sys_main_init() call to proper
+	  place and fix FreeBSD sensors for amd64 and fix allocate sensor bug.
+	* Patch from Hajimu Umemoto: add --without-ntlm option
+	* Patches from Hajimu Umemoto for FreeBSD:
+	    - Support SMP CPU charts coming in FreeBSD 6.4-RELEASE and 7.1-RELEASE
+	    - Use sysctl for swap info on recent FreeBSD; suppress compile warnings
+	    - Include patch from Pietro Cerutti for coretemp(4) sensor support and
+	      fix bug causing only one instance of a sensor type to be added.
+	    - Include patch from Sven Berkvens-Matthijsse to enable battery support
+	      on amd64 using ACPI.
+	* Patch from Stefan Gehn: Makefile & configure ntlm detect use pkg-config.
+	* Patch from Erik-Jan: sensors monitor option to show temperature units.
+	* Patch from Hans de Goede: rename getline to gkrellm_getline to avoid
+	      conflict with new getline function in recent glibc.
+	* Bugfixes
+	  o Fix a crah by moving "unable to connect" Gtk dialogs outside
+	    of the connect to client thread.
+	  o Divide by zero crash in Linux battery monitor when batteries are dead.
+	  o Patch from Hans de Goede: fix a crash by adding openssl mail check
+	    locking to mail monitor.
+	* Translation updates
+	  o pt_BR.po update from Vinicius Moreira de Oliveira
+
+2.3.2 - Fri Oct 3, 2008
+------------------------
+	* Patch from Stefan Gehn:
+	    - Add error logging routines so errors and debugging can be routed to
+	      a file or stdout, and gkrellmd can log to the system syslog file.
+	      Begin replacing debug printf() with g_message(), g_warning(), etc
+	      functions to support the logging functions.
+	    - Port gtk_combo functions to gtk_combo_box
+	    - Add client mode server connection error dialog pupups.
+	    - Use GTK 2.12 gtk_widget_xxx_tooltip over gtk_tooltip in mail.c 
+	    - win32 changes:
+	        Use unicode function calls.
+	        Use getaddrinfo() on win32.
+	        Support CoreTemp application for getting cpu temperatures.
+	        Redo sensor-handling to support multiple sensor backends.
+	        Make Proc monitor work and properly count # of logged in users.
+	        Mem monitor displays cache bytes.
+	        System name shows some new windows versions.
+	        Remove trayicon
+	    - Other various cleanups and changes in his quite large patch.
+	* Add OpenSSL license exception.
+	  Make OpenSSL the default to avoid gnutls symbol conflict crash.
+	* Link to libntlm and remove smb* files from gkrellm source distribution.
+	* Patch from Takao Fujiwara: Pass clock/calendar strings to strftime in
+	  current locale.  Bump default width up to 100.
+	* Patch from Leo Schwab: add linux sysfs battery interface.  Use
+	  preferencially over deprecated /proc/acpi interface.
+	* Patch from Lycestra:
+	    - Mac OS X support:
+	        "darwin9" build mode for Leopard, which lacks libkvm
+	        add inet monitor interface
+			add buffers and cache data to memory monitor
+	    - don't client connect to server in the case read_server_setup() fails
+	* Bugfixes
+	  o Allow spaces in file system monitor directories.
+	  o Andrey Rahmatullin and Ravi Pinjal both sent a patch to fix:
+	    some memleaks in clock monitor.
+	  o Ken Milmore patch: fix configure script to work for lm_sensors >= 3.1
+	  o NULL serve_name segfault
+	* Translation updates
+	  o pl.po from Michal Smoczyk
+
+2.3.1 - Sun Dec 2, 2007
+------------------------
+	* Clock/Calendar monitor rewritten to use user configurable display
+	  format strings containing strftime conversion characters and
+	  Pango text attribute markup strings.
+	* Hans de Goede patch: add new to be released libsensors4 interface to
+	  linux sensors.
+	* Martijn Ras patch: -A option to bind gkrellmd to a specific interface.
+	* Include UDP connections in the Linux inet monitor.
+	* Bugfixes
+	  o Ville Skytta patch: add gcrypt.h for mail monitor gnutls support.
+	  o Add test for "charged" when checking linux battery charging state.
+	  o Stop pumping extra "float_factor" lines into user-config.
+	  o Add omitted substitution variables: $L for disk, $H for some others.
+	  o make fs monitor panels adjust height according to changes in text
+	    extents with panel format string Pango markup changes (and fs
+	    labels can now use markup).
+	* Translation updates
+	  o de.po from Steffen Weise
+	  o fr.po from Jerome UZEL
+	  o pl.po from Michal Smoczyk
+
+2.3.0 - Fri Jul 20, 2007
+------------------------
+	* Upgrade to GPLv3
+	* Jindrich Makovicka patch: mail check for Sylpheed .claws_mark mark file.
+	* Stefan Gehn large set of patches for Windows:
+	    1) Makefiles updated for Windows 2000/XP builds under MinGW/MSYS.
+	       Drop win9x support.
+	    2) Add support: SpeedFan sensors, tcp port stats for the Inet monitor,
+	       theme transparency, 
+	    3) Add Vista detection, but running under Vista needs testing.
+	    4) Improve the plugin interface.  Added static libgkrellm.a for easier
+	       plugin porting.  New files: src/win32-libgkrellm.c,
+	       src/win32-plugin.c server/win32-gui.c  server/win32-gui.h 
+	       server/win32-libgkrellmd.c server/win32-plugin.c
+	       server/win32-plugin.h.
+	       Pass callback pointer to win32 gkrellmd plugins.
+	    5) Various #ifdef WIN32 unix/windows compatibility cleanups, new
+	       gkrellmd_get_timer_ticks() and gkrellmd_ticks() functions, trayicon
+	       handling.
+	* Michal Nazarewicz patch: preserve config of disabled monitors.
+	* Anthony Mallet patches:
+	    1) Add NetBSD ACPI battery monitor support.
+	    2) Collection of NetBSD pkgsrc port patches: Disk monitor API changes,
+	       DragonFLY OS support, 64 bit compile cleanups.
+	* Will Simoneau patch: look for linux I2O disks.
+	* Don't save config for disabled non-existing net interfaces.
+	* Add memory monitor raw free and raw used panel variables.
+	* Plugin interface to export strings (data) for panel/chart labels.
+	  Net monitor updated to check for exports.
+	* Linux nvidia GPU option to use nvclock when nvidia-settings fails.
+	* Translation updates
+	  o de.po from Steffen Weise
+	  o fr.po from Jerome UZEL
+	* Bugfixes
+	  o Add SubstructureRedirectMask in net_wm_state().
+	  o gkrellmd documentation: fix gkrellmd.1 typos, add missing pidfile.
+	  o Read of inet update_interval from config failed.
+	  o Negative sensor factors weren't saved in the config.
+	  o Linux sensors:
+	    1) handle libsensors via686a 2.0V voltage label style.
+	    2) Read temps from multiple nVidia gpu cores.
+	  o Linux.c 64 bit compile warnings.
diff --git a/gkrellm/DESCR b/gkrellm/DESCR
new file mode 100644
index 0000000000..2a70ad45e0
--- /dev/null
+++ b/gkrellm/DESCR
@@ -0,0 +1,24 @@
+With a single process, GKrellM manages multiple stacked monitors and supports
+applying themes to match the monitors appearance to your window manager,
+Gtk, or any other theme.
+
+  * SMP CPU, Disk, Proc, and active net interface monitors with LEDs.
+  * Internet monitor that displays current and charts historical port hits
+  * Memory and swap space usage meters and a system uptime monitor.
+  * File system meters show capacity/free space and can mount/umount.
+  * A mailbox monitor which can launch mail reader, remote mail fetch.
+  * Clock/calendar and hostname display.
+  * APM laptop battery monitor.
+  * CPU/motherboard temperature display if lm_sensors modules installed.
+  * Multiple monitors managed by a single process to reduce system load.
+  * Charts are autoscaling with configurable grid line resolution, or
+    can be set to a fixed scale mode.
+  * Separate colors for "in" and "out" data.  The in color is used for
+    CPU user time, disk read, forks, and net receive data.  The out color
+    is used for CPU sys time, disk write, load, and net transmit data.
+  * GKrellM is plugin capable so special interest monitors can be created.
+  * A different theme can be created with the GIMP.
+  * And a lot more...
+
+While GKrellM monitors the host it is running on, it can poll a server
+over the network.  The server package is named gkrellm-server.
diff --git a/gkrellm/Makefile b/gkrellm/Makefile
new file mode 100644
index 0000000000..f3ec885538
--- /dev/null
+++ b/gkrellm/Makefile
@@ -0,0 +1,53 @@
+# $NetBSD: Makefile,v 1.130 2025/04/24 14:15:45 wiz Exp $
+
+.include "Makefile.common"
+
+GKRELLM_PKGBASE=	gkrellm
+COMMENT=		GTK2 based system monitor
+DEPENDS+=		gkrellm-share-${GKRELLM_VERSION}:../../wip/gkrellm-share
+
+USE_TOOLS+=		pkg-config
+
+.include "../../mk/bsd.fast.prefs.mk"
+
+.if ${OPSYS} == "FreeBSD" || ${OPSYS} == "OpenBSD" || ${OPSYS} == "DragonFly"
+SPECIAL_PERMS+=		${PREFIX}/bin/gkrellm ${BINOWN} kmem 2555
+.endif
+
+SUBST_CLASSES+=		gkprefix
+SUBST_STAGE.gkprefix=	pre-configure
+SUBST_FILES.gkprefix=	src/gkrellm.h
+SUBST_SED.gkprefix+=	-e '/LOCAL_[A-Z][A-Z]*_DIR/d'
+SUBST_SED.gkprefix+=	-e '/SYSTEM_[A-Z][A-Z]*_DIR/{s!/usr!${PREFIX}!;}'
+
+BUILD_DIRS=		src
+BUILD_TARGET=		${GKRELLM_PER_PLATFORM_TARGET}
+.if !empty(PKG_OPTIONS:Mnls)
+BUILD_MAKE_FLAGS+=	LOCALEDIR=${PREFIX}/${PKGLOCALEDIR}/locale
+.endif
+
+MAKE_ENV+=		MANDIR=${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
+
+# Fix PR pkg/40047, Thanks to Ondrej Tuma
+.if ${OBJECT_FMT} == "ELF" && ${OPSYS} != "SunOS"
+LDFLAGS+=	-Wl,-export-dynamic
+.endif
+
+REQD_DIRS=	lib/gkrellm2/plugins lib/gkrellm2/themes
+
+# Generate and install gkrellm.pc
+post-build:
+	${RUN}cd ${WRKSRC} && \
+		${BUILD_MAKE_CMD} gkrellm.pc
+
+INSTALL_MAKE_CMD= \
+	${PKGSRC_SETENV} ${MAKE_ENV} \
+	${MAKE_PROGRAM} ${MAKE_FLAGS} ${INSTALL_MAKE_FLAGS}
+post-install:
+	${RUN}cd ${WRKSRC} && \
+		${INSTALL_MAKE_CMD} install_gkrellm.pc
+
+.include "../../devel/glib2/buildlink3.mk"
+.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
+.include "../../x11/gtk2/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/gkrellm/Makefile.common b/gkrellm/Makefile.common
new file mode 100644
index 0000000000..83f368c6ed
--- /dev/null
+++ b/gkrellm/Makefile.common
@@ -0,0 +1,98 @@
+# $NetBSD: Makefile.common,v 1.19 2021/11/27 05:37:59 pho Exp $
+#
+# used by wip/gkrellm-share/Makefile
+# used by wip/gkrellm-server/Makefile
+
+GKRELLM_VERSION=	2.4.0
+GKRELLM_DISTBASE=	gkrellm-${GKRELLM_VERSION}
+
+DISTNAME=	${GKRELLM_DISTBASE}
+PKGNAME=	${GKRELLM_PKGBASE}-${GKRELLM_VERSION}
+CATEGORIES=	sysutils
+MASTER_SITES=	https://gkrellm.srcbox.net/releases/
+EXTRACT_SUFX=	.tar.bz2
+
+MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=	https://gkrellm.srcbox.net/
+LICENSE=	gnu-gpl-v3
+
+USE_TOOLS+=		gmake
+
+FILESDIR=		${.CURDIR}/../../wip/gkrellm/files
+PATCHDIR=		${.CURDIR}/../../wip/gkrellm/patches
+DISTINFO_FILE=		${.CURDIR}/../../wip/gkrellm/distinfo
+
+.include "../../wip/gkrellm/options.mk"
+.include "../../mk/bsd.fast.prefs.mk"
+
+BROKEN_EXCEPT_ON_PLATFORM=	# empty
+
+###
+### Darwin
+###
+BROKEN_EXCEPT_ON_PLATFORM+=	Darwin-*-*
+.if ${OPSYS} == "Darwin"
+.  if !empty(PKG_OPTIONS:Mquartz)
+GKRELLM_PER_PLATFORM_TARGET=	macosx
+.  elif ${OPSYS_VERSION} >= 100400 # post-Tiger; libkvm unavailable
+GKRELLM_PER_PLATFORM_TARGET=	darwin9
+.  else
+GKRELLM_PER_PLATFORM_TARGET=	darwin
+.  endif
+.endif
+
+###
+### DragonFly
+###
+BROKEN_EXCEPT_ON_PLATFORM+=	DragonFly-*-*
+.if ${OPSYS} == "DragonFly"
+GKRELLM_PER_PLATFORM_TARGET=	dragonfly
+.endif
+
+###
+### FreeBSD
+###
+BROKEN_EXCEPT_ON_PLATFORM+=	FreeBSD-*-*
+.if ${OPSYS} == "FreeBSD"
+.  if ${OPSYS_VERSION} >= 030000
+GKRELLM_PER_PLATFORM_TARGET=	freebsd
+.  else
+GKRELLM_PER_PLATFORM_TARGET=	freebsd2
+.  endif
+.endif
+
+###
+### Linux
+###
+BROKEN_EXCEPT_ON_PLATFORM+=	Linux-*-*
+.if ${OPSYS} == "Linux"
+GKRELLM_PER_PLATFORM_TARGET=	all
+.endif
+
+###
+### NetBSD
+###
+BROKEN_EXCEPT_ON_PLATFORM+=	NetBSD-*-*
+.if ${OPSYS} == "NetBSD"
+.  if ${OPSYS_VERSION} >= 020000
+GKRELLM_PER_PLATFORM_TARGET=	netbsd2
+.  else
+GKRELLM_PER_PLATFORM_TARGET=	netbsd1
+.  endif
+.endif
+
+###
+### OpenBSD
+###
+BROKEN_EXCEPT_ON_PLATFORM+=	OpenBSD-*-*
+.if ${OPSYS} == "OpenBSD"
+GKRELLM_PER_PLATFORM_TARGET=	openbsd
+.endif
+
+###
+### SunOS
+###
+BROKEN_EXCEPT_ON_PLATFORM+=	SunOS-*-*
+.if ${OPSYS} == "SunOS"
+GKRELLM_PER_PLATFORM_TARGET=	solaris
+.endif
diff --git a/gkrellm/PLIST b/gkrellm/PLIST
new file mode 100644
index 0000000000..2b4913acfa
--- /dev/null
+++ b/gkrellm/PLIST
@@ -0,0 +1,15 @@
+@comment $NetBSD$
+bin/gkrellm
+include/gkrellm2/gkrellm-public-proto.h
+include/gkrellm2/gkrellm-version.h
+include/gkrellm2/gkrellm.h
+include/gkrellm2/log.h
+lib/pkgconfig/gkrellm.pc
+man/man1/gkrellm.1
+share/applications/gkrellm.desktop
+share/icons/hicolor/16x16/apps/gkrellm.png
+share/icons/hicolor/24x24/apps/gkrellm.png
+share/icons/hicolor/32x32/apps/gkrellm.png
+share/icons/hicolor/48x48/apps/gkrellm.png
+share/icons/hicolor/64x64/apps/gkrellm.png
+share/metainfo/net.srcbox.gkrellm.GKrellM.metainfo.xml
diff --git a/gkrellm/buildlink3.mk b/gkrellm/buildlink3.mk
new file mode 100644
index 0000000000..e38fd586c0
--- /dev/null
+++ b/gkrellm/buildlink3.mk
@@ -0,0 +1,16 @@
+# $NetBSD: buildlink3.mk,v 1.73 2025/04/24 14:15:45 wiz Exp $
+
+BUILDLINK_TREE+=	gkrellm
+
+.if !defined(GKRELLM_BUILDLINK3_MK)
+GKRELLM_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.gkrellm+=	gkrellm>=2.1.22
+BUILDLINK_ABI_DEPENDS.gkrellm+=	gkrellm>=2.2.10nb67
+BUILDLINK_PKGSRCDIR.gkrellm?=	../../wip/gkrellm
+
+.include "../../devel/glib2/buildlink3.mk"
+.include "../../x11/gtk2/buildlink3.mk"
+.endif # GKRELLM_BUILDLINK3_MK
+
+BUILDLINK_TREE+=	-gkrellm
diff --git a/gkrellm/distinfo b/gkrellm/distinfo
new file mode 100644
index 0000000000..fcc31b8220
--- /dev/null
+++ b/gkrellm/distinfo
@@ -0,0 +1,8 @@
+$NetBSD: distinfo,v 1.49 2021/11/27 04:43:02 pho Exp $
+
+BLAKE2s (gkrellm-2.4.0.tar.bz2) = fe1062d50117f49eb846063e773d012cc6e1ad86e8a2208372880e1a73f36430
+SHA512 (gkrellm-2.4.0.tar.bz2) = 770acfe5ee23b74ffe5becc89d3735e9e8688ac338b052e1c2f86cb722b7867b1f8c262a969ef3140eb32912cf0426ac13bf3743e2a9149eec2a962655e05a9f
+Size (gkrellm-2.4.0.tar.bz2) = 790070 bytes
+SHA1 (patch-gkrellmd.1) = 579f6eac994ec5321645a21a117e621260be8a6c
+SHA1 (patch-server_Makefile) = a8194ddd9dc9f58cbacd0615914b53cc2af8a9b0
+SHA1 (patch-src_Makefile) = f9c9ebe1f25aa6560fe5034e8df705d0c90374eb
diff --git a/gkrellm/files/gkrellmd.sh b/gkrellm/files/gkrellmd.sh
new file mode 100644
index 0000000000..ebfd5710e1
--- /dev/null
+++ b/gkrellm/files/gkrellmd.sh
@@ -0,0 +1,17 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD: gkrellmd.sh,v 1.1.1.1 2004/02/24 22:11:28 cube Exp $
+#
+
+# PROVIDE: gkrellmd
+# REQUIRE: DAEMON
+
+. /etc/rc.subr
+
+name="gkrellmd"
+rcvar=$name
+command="@PREFIX@/sbin/gkrellmd"
+gkrellmd_flags="-d"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/gkrellm/options.mk b/gkrellm/options.mk
new file mode 100644
index 0000000000..da8b1ac794
--- /dev/null
+++ b/gkrellm/options.mk
@@ -0,0 +1,46 @@
+# $NetBSD: options.mk,v 1.2 2021/11/27 05:37:59 pho Exp $
+
+PKG_OPTIONS_VAR=		PKG_OPTIONS.gkrellm
+PKG_SUPPORTED_OPTIONS=		nls ntlm
+PKG_OPTIONS_OPTIONAL_GROUPS=	tls
+PKG_OPTIONS_GROUP.tls=		gnutls openssl
+PKG_SUGGESTED_OPTIONS+=		nls ntlm openssl
+PKG_OPTIONS_LEGACY_OPTS+=	ssl:openssl
+
+.include "../../mk/bsd.fast.prefs.mk"
+
+.if ${OPSYS} == "Darwin"
+PKG_SUPPORTED_OPTIONS+=	quartz
+.endif
+
+.include "../../mk/bsd.options.mk"
+
+.if !empty(PKG_OPTIONS:Mnls)
+.  include "../../devel/gettext-lib/buildlink3.mk"
+MAKE_FLAGS+=	enable_nls=1
+.endif
+
+.if !empty(PKG_OPTIONS:Mntlm)
+.  include "../../devel/libntlm/buildlink3.mk"
+.else
+MAKE_FLAGS+=	without-ntlm=yes
+.endif
+
+.if !empty(PKG_OPTIONS:Mopenssl)
+.  include "../../security/openssl/buildlink3.mk"
+.else
+MAKE_FLAGS+=	without-ssl=yes
+.endif
+
+.if !empty(PKG_OPTIONS:Mgnutls)
+.  include "../../security/gnutls/buildlink3.mk"
+.else
+MAKE_FLAGS+=	without-gnutls=yes
+.endif
+
+.if !empty(PKG_OPTIONS:Mquartz)
+# Handled in Makefile.common
+.else
+.  include "../../x11/libICE/buildlink3.mk"
+.  include "../../x11/libSM/buildlink3.mk"
+.endif
diff --git a/gkrellm/patches/patch-gkrellmd.1 b/gkrellm/patches/patch-gkrellmd.1
new file mode 100644
index 0000000000..b4727a4e23
--- /dev/null
+++ b/gkrellm/patches/patch-gkrellmd.1
@@ -0,0 +1,13 @@
+$NetBSD$
+
+Move gkrellmd(1) to section 8 because it's not supposed to be directly
+executed by users.
+
+--- gkrellmd.1.orig	2025-08-25 14:03:28.877318062 +0000
++++ gkrellmd.1
+@@ -1,4 +1,4 @@
+-.TH gkrellmd 1 "Jan 07, 2025" "" "User's Manual"
++.TH gkrellmd 8 "Jan 07, 2025" "" "User's Manual"
+ 
+ .SH "NAME"
+ gkrellmd \- The GNU Krell Monitors Server
diff --git a/gkrellm/patches/patch-server_Makefile b/gkrellm/patches/patch-server_Makefile
new file mode 100644
index 0000000000..f6331416b4
--- /dev/null
+++ b/gkrellm/patches/patch-server_Makefile
@@ -0,0 +1,54 @@
+$NetBSD$
+
+Hunk #0:
+  Support building on DragonFly.
+
+Hunk #1:
+  Add an explicit -lm for Solaris. Not sure why it's needed but we've been
+  doing this.
+
+Hunk #2:
+  Move gkrellmd(1) to section 8 because it's not supposed to be directly
+  executed by users.
+
+--- server/Makefile.orig	2025-01-19 16:02:37.000000000 +0000
++++ server/Makefile
+@@ -88,6 +88,9 @@ static: $(OBJS) $(EXTRAOBJS)
+ 	$(CC) $(OBJS) $(EXTRAOBJS) -o gkrellmd.static -static \
+ 		$(LDFLAGS) $(LIBS) $(LINK_FLAGS)
+ 
++dragonfly:
++	$(MAKE) EXTRAOBJS= SYS_LIBS="-lkvm -lkinfo -ldevstat -lm" gkrellmd
++
+ freebsd2:
+ 	$(MAKE) EXTRAOBJS= SYS_LIBS="-lkvm -lmd" gkrellmd
+ 
+@@ -124,12 +127,12 @@ openbsd:
+ 
+ solaris:
+ ifeq ($(OS_RELEASE),5.8)
+-	$(MAKE) CFLAGS="-Wno-implicit-int" \
+-		SYS_LIBS="-lkstat -lkvm -ldevinfo -lsocket -lnsl -lintl" \
++	$(MAKE) CFLAGS="-Wno-implicit-int -DSOLARIS_8" \
++		SYS_LIBS="-lm -lkstat -lkvm -ldevinfo -lsocket -lnsl -lintl" \
+ 		LINK_FLAGS="" gkrellmd
+ else
+ 	$(MAKE) CFLAGS="-Wno-implicit-int" \
+-		SYS_LIBS="-lkstat -lkvm -ldevinfo -lsocket -lnsl" \
++		SYS_LIBS="-lm -lkstat -lkvm -ldevinfo -lsocket -lnsl" \
+ 		LINK_FLAGS="" gkrellmd
+ endif
+ 
+@@ -174,10 +177,10 @@ uninstall_inc:
+ 
+ install_man:
+ 	$(INSTALL) -d -m $(MANDIRMODE) $(SMANDIR)
+-	$(INSTALL) -c -m $(MANMODE) ../gkrellmd.1 $(SMANDIR)/$(PACKAGE_D).1
++	$(INSTALL) -c -m $(MANMODE) ../gkrellmd.1 $(SMANDIR)/$(PACKAGE_D).8
+ 
+ uninstall_man:
+-	$(RM) $(SMANDIR)/$(PACKAGE_D).1
++	$(RM) $(SMANDIR)/$(PACKAGE_D).8
+ 
+ install_cfg:
+ 	$(INSTALL) -d -m $(CFGDIRMODE) $(CFGDIR)
diff --git a/gkrellm/patches/patch-src_Makefile b/gkrellm/patches/patch-src_Makefile
new file mode 100644
index 0000000000..e5b3521584
--- /dev/null
+++ b/gkrellm/patches/patch-src_Makefile
@@ -0,0 +1,45 @@
+$NetBSD$
+
+Hunk #1:
+  Support building on DragonFly.
+
+Hunk #0, #2:
+  Add an explicit -lm for Solaris. Not sure why it's needed but we've been
+  doing this.
+
+--- src/Makefile.orig	2025-08-25 12:22:48.901061537 +0000
++++ src/Makefile
+@@ -82,6 +82,7 @@ ifneq ($(PACKAGE),gkrellm)
+     FLAGS += -DPACKAGE=\"$(PACKAGE)\"
+ endif
+ 
++OS_RELEASE=$(shell uname -r)
+ 
+ OBJS =	main.o alerts.o battery.o base64.o clock.o cpu.o disk.o fs.o \
+ 	hostname.o inet.o mail.o mem.o net.o proc.o sensors.o uptime.o \
+@@ -100,6 +101,9 @@ static: $(OBJS) $(UNIXOBJS) $(EXTRAOBJS)
+ 	$(CC) $(OBJS) $(UNIXOBJS) $(EXTRAOBJS) -o gkrellm.static -static \
+ 		$(LDFLAGS) $(LIBS) $(LINK_FLAGS)
+ 
++dragonfly:
++	$(MAKE) EXTRAOBJS= SYS_LIBS="-lkvm -lkinfo -ldevstat -lm" gkrellm
++
+ freebsd2:
+ ifeq ($(HAVE_SSL),1)
+ 	$(MAKE) EXTRAOBJS= SYS_LIBS="-lkvm" gkrellm
+@@ -161,8 +165,13 @@ openbsd:
+ 	$(MAKE) GTOP_LIBS= SYS_LIBS="-lkvm -pthread" gkrellm
+ 
+ solaris:
+-	$(MAKE) CFLAGS="-Wno-implicit-int" \
+-		SYS_LIBS="-lkstat -lkvm -ldevinfo" gkrellm
++ifeq ($(OS_RELEASE),5.8)
++	$(MAKE) CFLAGS="-Wno-implicit-int -DSOLARIS_8" \
++		SYS_LIBS="-lm -lkstat -lkvm -ldevinfo -lsocket -lnsl -lintl -lresolv" gkrellm
++else
++	$(MAKE) CFLAGS="-Wno-implicit-int -DSOLARIS_8" \
++		SYS_LIBS="-lm -lkstat -lkvm -ldevinfo -lsocket -lnsl -lresolv" gkrellm
++endif
+ 
+ windows: libgkrellm.a
+ 	$(MAKE) \



Home | Main Index | Thread Index | Old Index