summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2021-02-26 20:03:49 +0100
committerAndreas Sturmlechner <asturm@gentoo.org>2021-02-28 13:26:13 +0100
commit778f492d269a30b95d5d85222d96e005e518f087 (patch)
treea2cdbedb01103ae3231bec08f605853c07bc25e8 /media-sound/pnmixer
parentmedia-sound/pamix: Drop 1.5 (diff)
downloadgentoo-778f492d269a30b95d5d85222d96e005e518f087.tar.gz
gentoo-778f492d269a30b95d5d85222d96e005e518f087.tar.bz2
gentoo-778f492d269a30b95d5d85222d96e005e518f087.zip
media-sound/pnmixer: Various upstream fixes and port to EAPI-7
Package-Manager: Portage-3.0.15, Repoman-3.0.2 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'media-sound/pnmixer')
-rw-r--r--media-sound/pnmixer/files/pnmixer-0.7.2-fix-assert-if-volume-gt-100.patch37
-rw-r--r--media-sound/pnmixer/files/pnmixer-0.7.2-fix-possible-garbage-value.patch38
-rw-r--r--media-sound/pnmixer/files/pnmixer-0.7.2-fix-possible-memleak.patch21
-rw-r--r--media-sound/pnmixer/pnmixer-0.7.2-r1.ebuild59
4 files changed, 155 insertions, 0 deletions
diff --git a/media-sound/pnmixer/files/pnmixer-0.7.2-fix-assert-if-volume-gt-100.patch b/media-sound/pnmixer/files/pnmixer-0.7.2-fix-assert-if-volume-gt-100.patch
new file mode 100644
index 000000000000..6fd28572f90e
--- /dev/null
+++ b/media-sound/pnmixer/files/pnmixer-0.7.2-fix-assert-if-volume-gt-100.patch
@@ -0,0 +1,37 @@
+From 7eed10b2bd4650dadbc2c98f435d2bb10de7f75e Mon Sep 17 00:00:00 2001
+From: Arnaud Rebillout <elboulangero@gmail.com>
+Date: Mon, 19 Jun 2017 20:02:01 +0700
+Subject: [PATCH] Clip volume between 0 and 100 (thx to yunake) #162
+
+---
+ src/audio.c | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/src/audio.c b/src/audio.c
+index 750f20f..06b245c 100644
+--- a/src/audio.c
++++ b/src/audio.c
+@@ -437,11 +437,22 @@ gdouble
+ audio_get_volume(Audio *audio)
+ {
+ AlsaCard *soundcard = audio->soundcard;
++ gdouble volume;
+
+ if (!soundcard)
+ return 0;
+
+- return alsa_card_get_volume(soundcard);
++ volume = alsa_card_get_volume(soundcard);
++
++ /* With PulseAudio, it is perfectly possible for the volume to go above 100%.
++ * Since we don't really expect or handle that, let's clip it right now.
++ */
++ if (volume < 0)
++ volume = 0;
++ if (volume > 100)
++ volume = 100;
++
++ return volume;
+ }
+
+ /**
diff --git a/media-sound/pnmixer/files/pnmixer-0.7.2-fix-possible-garbage-value.patch b/media-sound/pnmixer/files/pnmixer-0.7.2-fix-possible-garbage-value.patch
new file mode 100644
index 000000000000..e85dcedd2337
--- /dev/null
+++ b/media-sound/pnmixer/files/pnmixer-0.7.2-fix-possible-garbage-value.patch
@@ -0,0 +1,38 @@
+From c8577027aa4597c8f194a84a73982aa0ce7f2dd0 Mon Sep 17 00:00:00 2001
+From: Julian Ospald <hasufell@posteo.de>
+Date: Mon, 19 Feb 2018 20:06:26 +0100
+Subject: [PATCH] MEM: fix possible garbage value wrt #174
+
+Not sure if the clang static analyzer has trouble
+with g_memdup() or if there is something more serious
+going on. Good old g_malloc() works too though.
+---
+ src/ui-tray-icon.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/ui-tray-icon.c b/src/ui-tray-icon.c
+index 27b35f3..23ba947 100644
+--- a/src/ui-tray-icon.c
++++ b/src/ui-tray-icon.c
+@@ -166,9 +166,11 @@ pixbuf_array_free(GdkPixbuf **pixbufs)
+ static GdkPixbuf **
+ pixbuf_array_new(int size)
+ {
+- GdkPixbuf *pixbufs[N_VOLUME_PIXBUFS];
++ GdkPixbuf **pixbufs;
+ gboolean system_theme;
+
++ pixbufs = g_new0(GdkPixbuf *, N_VOLUME_PIXBUFS);
++
+ DEBUG("Building pixbuf array (requesting size %d)", size);
+
+ system_theme = prefs_get_boolean("SystemTheme", FALSE);
+@@ -202,7 +204,7 @@ pixbuf_array_new(int size)
+ pixbufs[VOLUME_HIGH] = pixbuf_new_from_file("pnmixer-high.png");
+ }
+
+- return g_memdup(pixbufs, sizeof pixbufs);
++ return pixbufs;
+ }
+
+ /* Tray icon volume meter */
diff --git a/media-sound/pnmixer/files/pnmixer-0.7.2-fix-possible-memleak.patch b/media-sound/pnmixer/files/pnmixer-0.7.2-fix-possible-memleak.patch
new file mode 100644
index 000000000000..a88013b9d4b8
--- /dev/null
+++ b/media-sound/pnmixer/files/pnmixer-0.7.2-fix-possible-memleak.patch
@@ -0,0 +1,21 @@
+From 84c66c389cd7a8a47aa5f543726683a19dcca5ff Mon Sep 17 00:00:00 2001
+From: Julian Ospald <hasufell@posteo.de>
+Date: Mon, 19 Feb 2018 20:06:45 +0100
+Subject: [PATCH] MEM: fix possible memory leak wrt #174
+
+---
+ src/alsa.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/alsa.c b/src/alsa.c
+index c46d4d8..d91c79f 100644
+--- a/src/alsa.c
++++ b/src/alsa.c
+@@ -336,6 +336,7 @@ mixer_get_poll_descriptors(const char *hctl, snd_mixer_t *mixer)
+ err = snd_mixer_poll_descriptors(mixer, fds, count);
+ if (err < 0) {
+ ALSA_CARD_ERR(hctl, err, "Couldn't get poll descriptors");
++ g_free(fds);
+ return NULL;
+ }
+
diff --git a/media-sound/pnmixer/pnmixer-0.7.2-r1.ebuild b/media-sound/pnmixer/pnmixer-0.7.2-r1.ebuild
new file mode 100644
index 000000000000..4930d96eb601
--- /dev/null
+++ b/media-sound/pnmixer/pnmixer-0.7.2-r1.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MY_P="${PN}-v${PV}"
+inherit cmake xdg-utils
+
+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"
+
+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
+ x11-libs/libX11
+ libnotify? ( x11-libs/libnotify )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+ doc? (
+ app-doc/doxygen
+ media-gfx/graphviz
+ )
+ nls? ( sys-devel/gettext )
+"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-fix-assert-if-volume-gt-100.patch"
+ "${FILESDIR}/${P}-fix-possible-garbage-value.patch"
+ "${FILESDIR}/${P}-fix-possible-memleak.patch"
+)
+
+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
+}
+
+pkg_postinst() {
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ xdg_icon_cache_update
+}