Upstream development of gkrellm continued and updated some sources over the last months, as well as the Makefile (e.g. does not automatically strip the binary after build to let distributions decide); gkrellm has updated dependencies (especially openssl, gnutls); it now also delivers a service unit for systemd. Yesterday version 2.4.0 was released: https://git.srcbox.net/gkrellm/gkrellm/releases The 9999 ebuild is outdated regarding the recent changes, it also tries to patch the sources, which fails: >>> Source unpacked in /mnt/ramdisk/portage/app-admin/gkrellm-9999/work >>> Preparing source in /mnt/ramdisk/portage/app-admin/gkrellm-9999/work/gkrellm-9999 ... * Applying gkrellm-2.3.5-config.patch ... patching file server/gkrellmd.conf Hunk #2 FAILED at 77. Hunk #3 FAILED at 86. 2 out of 3 hunks FAILED -- saving rejects to file server/gkrellmd.conf.rej [ !! ] * ERROR: app-admin/gkrellm-9999::gentoo failed (prepare phase): * patch -p1 failed with /mnt/ramdisk/portage/app-admin/gkrellm-9999/files/gkrellm-2.3.5-config.patch More details below. Reproducible: Always emerge info: Portage 3.0.66.1 (python 3.12.8-final-0, default/linux/amd64/23.0/desktop/plasma/systemd, gcc-14, glibc-2.40-r5, 6.12.10 x86_64) ================================================================= System Settings ================================================================= System uname: Linux-6.12.10-x86_64-AMD_Ryzen_7_7700X_8-Core_Processor-with-glibc2.40 KiB Mem: 31915696 total, 25813208 free KiB Swap: 0 total, 0 free Timestamp of repository gentoo: Mon, 20 Jan 2025 12:03:27 +0000 Head commit of repository gentoo: 3ad3e17020259cfd4759c9a7e7826d2d5d0b696a Timestamp of repository guru: Mon, 20 Jan 2025 09:48:44 +0000 Head commit of repository guru: fad88f4d794067a20e9e64ff73c6a881868c5837 Timestamp of repository swegener: Tue, 17 Dec 2024 22:21:06 +0000 Head commit of repository swegener: 40a68fe6e309fb43158ae55a17f1dddeb22ed39d sh bash 5.2_p37 ld GNU ld (Gentoo 2.43 p3) 2.43.1 ccache version 4.10.2 [disabled] app-misc/pax-utils: 1.3.8::gentoo app-shells/bash: 5.2_p37::gentoo dev-build/autoconf: 2.71-r7::gentoo, 2.72-r1::gentoo dev-build/automake: 1.16.5-r2::gentoo dev-build/cmake: 3.30.6::gentoo dev-build/libtool: 2.5.4::gentoo dev-build/make: 4.4.1-r100::gentoo dev-build/meson: 1.6.1::gentoo dev-java/java-config: 2.3.4::gentoo dev-lang/perl: 5.40.0-r1::gentoo dev-lang/python: 3.12.8_p1::gentoo, 3.13.0::gentoo dev-lang/rust: 1.82.0-r101::gentoo, 1.83.0-r1::gentoo dev-util/ccache: 4.10.2-r1::gentoo llvm-core/clang: 19.1.7::gentoo llvm-core/lld: 19.1.7::gentoo llvm-core/llvm: 19.1.7::gentoo sys-apps/baselayout: 2.17::gentoo sys-apps/sandbox: 2.39::gentoo sys-apps/systemd: 256.7::gentoo sys-devel/binutils: 2.43-r2::gentoo sys-devel/binutils-config: 5.5.2::gentoo sys-devel/gcc: 14.2.1_p20241221::gentoo sys-devel/gcc-config: 2.11::gentoo sys-kernel/linux-headers: 6.12::gentoo (virtual/os-headers) sys-libs/glibc: 2.40-r5::gentoo Repositories: gentoo location: /var/db/repos/gentoo sync-type: git sync-uri: https://anongit.gentoo.org/git/repo/sync/gentoo.git priority: -1000 volatile: False sync-git-verify-commit-signature: yes guru location: /var/db/repos/guru sync-type: git sync-uri: https://github.com/gentoo-mirror/guru.git masters: gentoo volatile: False swegener location: /var/db/repos/swegener sync-type: git sync-uri: https://github.com/gentoo-mirror/swegener.git masters: gentoo volatile: False x-portage location: /usr/local/portage masters: gentoo priority: 0 volatile: True ACCEPT_KEYWORDS="amd64" ACCEPT_LICENSE="*" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=znver4 -flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -O2 -pipe" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/easy-rsa /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.9/conf /var/bind" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-march=znver4 -flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -O2 -pipe" DISTDIR="/var/cache/distfiles" ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME" FCFLAGS="-march=znver4 -flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -O2 -pipe" FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg-live config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync merge-wait multilib-strict network-sandbox news parallel-fetch pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" FFLAGS="-march=znver4 -flto -Werror=odr -Werror=lto-type-mismatch -Werror=strict-aliasing -O2 -pipe" GENTOO_MIRRORS="http://distfiles.gentoo.org" LANG="de_DE.utf8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -fuse-ld=mold" LEX="flex" PKGDIR="/var/cache/binpkgs" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" PORTAGE_TMPDIR="/mnt/ramdisk" RUSTFLAGS="-C target-cpu=native -C opt-level=3 -C link-arg=-Wl,-z,pack-relative-relocs" SHELL="/bin/bash" USE="X a52 aac acl acpi activities alsa amd64 ao avif branding bzip2 cairo cdda cdr cet crypt cups curl dbus declarative dri dts dvd dvdr encode exif ffmpeg flac gdbm gif gles2 glslang gpm gstreamer gtk gui heif iconv icu ipv6 jpeg jpeg2k kde kf6compat kwallet ladspa lcms libass libnotify libplacebo libtirpc llvm-libunwind lto lv2 lz4 mad matroska mng mp3 mp4 mpeg mtp multilib ncurses networkmanager nls ogg opencl opengl openmp opus pam pango pcre pdf pgo phonon pipewire plasma png policykit ppds pulseaudio qml qt6 raw readline rubberband screencast sdl seccomp smp sound speex spell ssl startup-notification svg systemd taglib test-rust theora threads tiff truetype udev udisks unicode upower usb vaapi vdpau verify-sig vorbis vulkan wayland webp widgets wxwidgets x264 x265 xattr xcb xft xml xv xvid xxhash zlib zstd" ABI_X86="64" ADA_TARGET="gcc_13" ALSA_CARDS="hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 avx512_bf16 avx512_bitalg avx512_vbmi2 avx512_vnni avx512_vpopcntdq avx512bw avx512cd avx512dq avx512f avx512ifma avx512vbmi avx512vl f16c fma3 mmx mmxext pclmul popcnt rdrand sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 vpclmulqdq" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" GRUB_PLATFORMS="efi-64" GUILE_SINGLE_TARGET="3-0" GUILE_TARGETS="3-0" INPUT_DEVICES="roccat_konepuremilitary roccat_ryosmk" KERNEL="linux" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-2" POSTGRES_TARGETS="postgres16" PYTHON_SINGLE_TARGET="python3_12" PYTHON_TARGETS="python3_12" RUBY_TARGETS="ruby32" SANE_BACKENDS="genesys" VIDEO_CARDS="amdgpu radeonsi radeon" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account" Unset: ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EMERGE_DEFAULT_OPTS, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, MAKEOPTS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, SIZE, STRINGS, STRIP, YACC, YFLAGS emerge pqv: [ebuild U ] app-admin/gkrellm-9999 [2.3.11-r4] USE="X nls ssl -gnutls -hddtemp -lm-sensors -ntlm" build.log: [32m * [39;49;00mPackage: app-admin/gkrellm-9999:2 [32m * [39;49;00mRepository: gentoo [32m * [39;49;00mMaintainer: sam@gentoo.org [32m * [39;49;00mUSE: X abi_x86_64 amd64 elibc_glibc kernel_linux nls ssl [32m * [39;49;00mFEATURES: network-sandbox preserve-libs sandbox userpriv usersandbox >>> Unpacking source... [32m*[0m Repository id: gkrellm_gkrellm.git [32m*[0m To override fetched repository properties, use: [32m*[0m EGIT_OVERRIDE_REPO_GKRELLM_GKRELLM [32m*[0m EGIT_OVERRIDE_BRANCH_GKRELLM_GKRELLM [32m*[0m EGIT_OVERRIDE_COMMIT_GKRELLM_GKRELLM [32m*[0m EGIT_OVERRIDE_COMMIT_DATE_GKRELLM_GKRELLM [32m*[0m [32m*[0m Fetching https://git.srcbox.net/gkrellm/gkrellm.git ... git fetch https://git.srcbox.net/gkrellm/gkrellm.git +HEAD:refs/git-r3/HEAD git symbolic-ref refs/git-r3/app-admin/gkrellm/2/__main__ refs/git-r3/HEAD [32m*[0m Checking out https://git.srcbox.net/gkrellm/gkrellm.git to /mnt/ramdisk/portage/app-admin/gkrellm-9999/work/gkrellm-9999 ... git checkout --quiet refs/git-r3/HEAD GIT update --> repository: https://git.srcbox.net/gkrellm/gkrellm.git at the commit: 8769bb434adcc5268ad415132f578f032bcd8b43 >>> Source unpacked in /mnt/ramdisk/portage/app-admin/gkrellm-9999/work >>> Preparing source in /mnt/ramdisk/portage/app-admin/gkrellm-9999/work/gkrellm-9999 ... [32m*[0m Applying gkrellm-2.3.5-config.patch ... patching file server/gkrellmd.conf Hunk #2 FAILED at 77. Hunk #3 FAILED at 86. 2 out of 3 hunks FAILED -- saving rejects to file server/gkrellmd.conf.rej [A[137C [34;01m[ [31;01m!![34;01m ][0m [31;01m*[0m ERROR: app-admin/gkrellm-9999::gentoo failed (prepare phase): [31;01m*[0m patch -p1 failed with /mnt/ramdisk/portage/app-admin/gkrellm-9999/files/gkrellm-2.3.5-config.patch [31;01m*[0m [31;01m*[0m Call stack: [31;01m*[0m ebuild.sh, line 136: Called src_prepare [31;01m*[0m environment, line 2266: Called default [31;01m*[0m phase-functions.sh, line 874: Called default_src_prepare [31;01m*[0m phase-functions.sh, line 950: Called __eapi8_src_prepare [31;01m*[0m environment, line 332: Called eapply '--' '/mnt/ramdisk/portage/app-admin/gkrellm-9999/files/gkrellm-2.3.5-config.patch' '/mnt/ramdisk/portage/app-admin/gkrellm-9999/files/gkrellm-2.3.5-width.patch' '/mnt/ramdisk/portage/app-admin/gkrellm-9999/files/gkrellm-2.3.5-sansfont.patch' '/mnt/ramdisk/portage/app-admin/gkrellm-9999/files/gkrellm-2.3.11-clang16.patch' [31;01m*[0m environment, line 807: Called _eapply_patch '/mnt/ramdisk/portage/app-admin/gkrellm-9999/files/gkrellm-2.3.5-config.patch' [31;01m*[0m environment, line 745: Called __helpers_die 'patch -p1 failed with /mnt/ramdisk/portage/app-admin/gkrellm-9999/files/gkrellm-2.3.5-config.patch' [31;01m*[0m isolated-functions.sh, line 112: Called die [31;01m*[0m The specific snippet of code: [31;01m*[0m die "$@" [31;01m*[0m [31;01m*[0m If you need support, post the output of `emerge --info '=app-admin/gkrellm-9999::gentoo'`, [31;01m*[0m the complete build log and the output of `emerge -pqv '=app-admin/gkrellm-9999::gentoo'`. [31;01m*[0m The complete build log is located at '/mnt/ramdisk/portage/app-admin/gkrellm-9999/temp/build.log'. [31;01m*[0m The ebuild environment file is located at '/mnt/ramdisk/portage/app-admin/gkrellm-9999/temp/environment'. [31;01m*[0m Working directory: '/mnt/ramdisk/portage/app-admin/gkrellm-9999/work/gkrellm-9999' [31;01m*[0m S: '/mnt/ramdisk/portage/app-admin/gkrellm-9999/work/gkrellm-9999'
FWIW, I adopted gkrellm because of user outpouring against last-rites -- I don't use it personally. I will get to this bug but it won't be immediate. If you (or someone) who does use it is able to provide some patches for me to use as a starting point for the migration, that'd speed things up greatly.
(I also encourage anyone interested in it to proxy-maint/co-maintain it with me.)
Created attachment 917505 [details] ebuild for version 2.4.0 and 9999 I updated the 2.x ebuild, which also works as 9999 ebuild, as both files were identical. The attached ebuild seems to work with a X and a -X build; both binaries are running and the client can connect to the remote gkrellmd. I commented all patches because compiler issues and font issues were taken care of upstream and I changed the ebuild to use the .service file from the package instead of portage (and it seems the Gentoo version of the service was picked upstream, so nothing really changes). I just realized: The gkrellm-2.3.5-config.patch we probably want to keep though, it changes the config file presets to some better values (e.g. from user nobody to user gkrellmd). So you can remove the comment, I kept them in. The plugins I use also still work. Upstream is working on porting gkrellm to gtk-3 as well. Version 2.4 contains a couple of code cleanups required for it. Maybe there will be more intermediate releases before the port commits are eventually released.
I've used Gkrellm for years so delighted to learn of this new release. Thanks for taking the time to come up with an ebuild Mark, I'll give it a try today. And thanks Sam for keeping it on life support for Gentoo :-) Would be happy to lend a hand with maintenance, if anyone who steps up would like any help feel free to contact me. If no one else steps up I might have a read up on the relevant Gentoo proxy-maint requirements/procedures and put a pull request in time permitting.
Created attachment 917910 [details] Updated 2.4.0 ebuild Hi Mark, Thanks again for your ebuild, I've made a couple of improvements to it (attached): - corrected wrong installation of /usr/etc/gkrellmd.conf by server/Makefile. Just handled it in src_install() although of course fixing upstream would be ideal. - added systemd use flag purely so the unit file does not get installed if the use flag not set - we no longer need the gkrellmd.service file in the files directory nor the call to systemd_dounit, the upstream unit file gets installed correctly anyway without it. - created a new gkrellm-2.4.0-config.patch as the old one fails to apply cleanly. I've tested the updated ebuild and the resultant installation works great on my workstation as a client connected to a remote instance of the same install.
Created attachment 917911 [details, diff] Updated config file patch
Heya, I'm currently maintaining GKrellM and thus am responsible for most of the breakages and fixes. Regarding the config location that is indeed a bit unfortunate. For the default installation prefix of /usr/local it makes sense to use /usr/local/etc, however for the typical distro prefix of /usr you rather want /etc. This should work with the current make logic already by passing both PREFIX=/usr and CFGDIR=/etc. A heads up for packaging: After I studied the elaborate changes in the FreeBSD port I think I finally found out why the separation between PREFIX and DESTDIR which is meant for distro packaging did not work as expected. I am currently in the process to fix that so distros hopefully do not need makefiles patches anymore. I will probably release an update soon, mostly with makefile fixes to make packaging less of a hassle. In the long run the handwritten makefiles will probably be replaced with meson (another task I already started on) but for the time being makefile it is :) Please reach out to me if there are other oddities when it comes to packaging. I already spotted a few others and will create additional bugreports so it's visible what defects I am aware of.
Long, long time gkrellm user, quite happy the project is not collecting dust anymore. FWIW, I tried the latest 2.4.0 ebuild + config file patch on my amd64 machine, both as local client instance and as a client to a remote server, and both appear to work just as well as the 2.3.11 version did. Thanks to all involved.