commit:     6c3a277f3e713c807bdf56100dffee2b1686f3a3
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Fri Sep  5 11:37:38 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Fri Sep  5 17:57:49 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6c3a277f

media-sound/pnmixer: Fix build and runtime w/ cmake-4

I feel like this should rather be treecleaned, but not to throw away
some good work by various non-maintainers ...

Closes: https://bugs.gentoo.org/961943
Closes: https://bugs.gentoo.org/957783
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 .../pnmixer-0.7.2-cmake4-fix-signalhandlers.patch  | 57 ++++++++++++++++++++++
 .../pnmixer/files/pnmixer-0.7.2-cmake4.patch       |  8 +++
 media-sound/pnmixer/pnmixer-0.7.2-r3.ebuild        | 52 ++++++++++++++++++++
 3 files changed, 117 insertions(+)

diff --git 
a/media-sound/pnmixer/files/pnmixer-0.7.2-cmake4-fix-signalhandlers.patch 
b/media-sound/pnmixer/files/pnmixer-0.7.2-cmake4-fix-signalhandlers.patch
new file mode 100644
index 000000000000..d92faa9fcf56
--- /dev/null
+++ b/media-sound/pnmixer/files/pnmixer-0.7.2-cmake4-fix-signalhandlers.patch
@@ -0,0 +1,57 @@
+Thanks-to: Maciej S. Szmigiero
+Source: https://bugs.gentoo.org/961943
+
+--- a/src/ui-hotkey-dialog.c
++++ b/src/ui-hotkey-dialog.c
+@@ -248,6 +248,8 @@
+       gtk_window_set_transient_for(GTK_WINDOW(dialog->hotkey_dialog), parent);
+ 
+       /* Connect ui signal handlers */
++      gtk_builder_add_callback_symbol(builder, 
"on_hotkey_dialog_key_press_event", 
G_CALLBACK(on_hotkey_dialog_key_press_event));
++      gtk_builder_add_callback_symbol(builder, 
"on_hotkey_dialog_key_release_event", 
G_CALLBACK(on_hotkey_dialog_key_release_event));
+       gtk_builder_connect_signals(builder, dialog);
+ 
+       /* Cleanup */
+--- a/src/ui-popup-menu.c
++++ b/src/ui-popup-menu.c
+@@ -330,6 +330,11 @@
+ #endif
+ 
+       /* Connect ui signal handlers */
++      gtk_builder_add_callback_symbol(builder, "on_mute_item_activate", 
G_CALLBACK(on_mute_item_activate));
++      gtk_builder_add_callback_symbol(builder, "on_mixer_item_activate", 
G_CALLBACK(on_mixer_item_activate));
++      gtk_builder_add_callback_symbol(builder, "on_prefs_item_activate", 
G_CALLBACK(on_prefs_item_activate));
++      gtk_builder_add_callback_symbol(builder, "on_reload_item_activate", 
G_CALLBACK(on_reload_item_activate));
++      gtk_builder_add_callback_symbol(builder, "on_about_item_activate", 
G_CALLBACK(on_about_item_activate));
+       gtk_builder_connect_signals(builder, menu);
+ 
+       /* Connect audio signal handlers */
+--- a/src/ui-popup-window.c
++++ b/src/ui-popup-window.c
+@@ -476,6 +476,10 @@
+       configure_vol_increment(GTK_ADJUSTMENT(window->vol_scale_adj));
+ 
+       /* Connect ui signal handlers */
++      gtk_builder_add_callback_symbol(builder, "on_popup_window_event", 
G_CALLBACK(on_popup_window_event));
++      gtk_builder_add_callback_symbol(builder, "on_vol_scale_value_changed", 
G_CALLBACK(on_vol_scale_value_changed));
++      gtk_builder_add_callback_symbol(builder, "on_mute_check_toggled", 
G_CALLBACK(on_mute_check_toggled));
++      gtk_builder_add_callback_symbol(builder, "on_mixer_button_clicked", 
G_CALLBACK(on_mixer_button_clicked));
+       gtk_builder_connect_signals(builder, window);
+ 
+       /* Connect audio signal handlers */
+--- a/src/ui-prefs-dialog.c
++++ b/src/ui-prefs-dialog.c
+@@ -922,6 +922,13 @@
+       gtk_window_set_transient_for(GTK_WINDOW(dialog->prefs_dialog), parent);
+ 
+       /* Connect ui signal handlers */
++      gtk_builder_add_callback_symbol(builder, 
"on_noti_enable_check_toggled", G_CALLBACK(on_noti_enable_check_toggled));
++      gtk_builder_add_callback_symbol(builder, "on_card_combo_changed", 
G_CALLBACK(on_card_combo_changed));
++      gtk_builder_add_callback_symbol(builder, "on_vol_text_check_toggled", 
G_CALLBACK(on_vol_text_check_toggled));
++      gtk_builder_add_callback_symbol(builder, 
"on_vol_meter_draw_check_toggled", G_CALLBACK(on_vol_meter_draw_check_toggled));
++      gtk_builder_add_callback_symbol(builder, 
"on_middle_click_combo_changed", G_CALLBACK(on_middle_click_combo_changed));
++      gtk_builder_add_callback_symbol(builder, 
"on_hotkeys_enable_check_toggled", G_CALLBACK(on_hotkeys_enable_check_toggled));
++      gtk_builder_add_callback_symbol(builder, 
"on_hotkey_event_box_button_press_event", 
G_CALLBACK(on_hotkey_event_box_button_press_event));
+       gtk_builder_connect_signals(builder, dialog);
+ 
+       /* Save some references */

diff --git a/media-sound/pnmixer/files/pnmixer-0.7.2-cmake4.patch 
b/media-sound/pnmixer/files/pnmixer-0.7.2-cmake4.patch
new file mode 100644
index 000000000000..ba1de19ae56c
--- /dev/null
+++ b/media-sound/pnmixer/files/pnmixer-0.7.2-cmake4.patch
@@ -0,0 +1,8 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-cmake_minimum_required(VERSION 3.0)
++cmake_minimum_required(VERSION 3.10)
+ project(PNMixer)
+ 
+ 

diff --git a/media-sound/pnmixer/pnmixer-0.7.2-r3.ebuild 
b/media-sound/pnmixer/pnmixer-0.7.2-r3.ebuild
new file mode 100644
index 000000000000..1a231cce54c0
--- /dev/null
+++ b/media-sound/pnmixer/pnmixer-0.7.2-r3.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_P="${PN}-v${PV}"
+inherit cmake xdg
+
+DESCRIPTION="Volume mixer for the system tray"
+HOMEPAGE="https://github.com/nicklan/pnmixer";
+SRC_URI="https://github.com/nicklan/${PN}/releases/download/v${PV}/${MY_P}.tar.gz";
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="doc libnotify nls"
+
+RDEPEND="
+       dev-libs/glib:2
+       media-libs/alsa-lib
+       x11-libs/gtk+:3[X]
+       x11-libs/libX11
+       libnotify? ( x11-libs/libnotify )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+       virtual/pkgconfig
+       doc? (
+               app-text/doxygen
+               media-gfx/graphviz
+       )
+       nls? ( sys-devel/gettext )
+"
+
+PATCHES=(
+       "${FILESDIR}/${P}-fix-assert-if-volume-gt-100.patch"
+       "${FILESDIR}/${P}-fix-possible-garbage-value.patch"
+       "${FILESDIR}/${P}-fix-possible-memleak.patch"
+       "${FILESDIR}/${P}-cmake4.patch" # bug 957783
+       "${FILESDIR}/${P}-cmake4-fix-signalhandlers.patch" # bug 961943
+)
+
+src_configure() {
+       local mycmakeargs=(
+               -DBUILD_DOCUMENTATION="$(usex doc)"
+               -DWITH_LIBNOTIFY="$(usex libnotify)"
+               -DENABLE_NLS="$(usex nls)"
+               -DCMAKE_INSTALL_DOCDIR="share/doc/${PF}"
+       )
+       cmake_src_configure
+}

Reply via email to