commit:     778f492d269a30b95d5d85222d96e005e518f087
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 26 19:03:49 2021 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Feb 28 12:26:13 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=778f492d

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 <AT> gentoo.org>

 ...pnmixer-0.7.2-fix-assert-if-volume-gt-100.patch | 37 ++++++++++++++
 .../pnmixer-0.7.2-fix-possible-garbage-value.patch | 38 ++++++++++++++
 .../files/pnmixer-0.7.2-fix-possible-memleak.patch | 21 ++++++++
 media-sound/pnmixer/pnmixer-0.7.2-r1.ebuild        | 59 ++++++++++++++++++++++
 4 files changed, 155 insertions(+)

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 00000000000..6fd28572f90
--- /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 <elboulang...@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 00000000000..e85dcedd233
--- /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 <hasuf...@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 00000000000..a88013b9d4b
--- /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 <hasuf...@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 00000000000..4930d96eb60
--- /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
+}

Reply via email to