summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /media-sound/pavucontrol
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'media-sound/pavucontrol')
-rw-r--r--media-sound/pavucontrol/Manifest2
-rw-r--r--media-sound/pavucontrol/files/pavucontrol-2.0-fix-startup-crashes.patch188
-rw-r--r--media-sound/pavucontrol/metadata.xml5
-rw-r--r--media-sound/pavucontrol/pavucontrol-1.0.ebuild36
-rw-r--r--media-sound/pavucontrol/pavucontrol-2.0-r1.ebuild44
5 files changed, 275 insertions, 0 deletions
diff --git a/media-sound/pavucontrol/Manifest b/media-sound/pavucontrol/Manifest
new file mode 100644
index 000000000000..0e6a72565b63
--- /dev/null
+++ b/media-sound/pavucontrol/Manifest
@@ -0,0 +1,2 @@
+DIST pavucontrol-1.0.tar.xz 179596 SHA256 3dbe2865b6e3a195a8951967d9234f62cd254c30b08bdea1ecf8997b58f68cde SHA512 ff17e452426ff11da9a3215232b4742c88dd84ea3d2f55f8e6e6459f0edbe1323ad4ee8a3403db9a22a72eadae60baa6ecabfa502c005fde4c92ae3bf4aac007 WHIRLPOOL 07f32ee76b44f290eb6ffbf0bf4f9419e3bc26efbef2c54fb0a711d492a0de79300d84181c8fae0f8ada5111931464d199e8b4d9deccd64ee721894a44f7cc0a
+DIST pavucontrol-2.0.tar.xz 151560 SHA256 22f29dd81b4a1a34ec7bffe9b027aff2a37fc76ccded4539d43a8c126a39470b SHA512 2b5f83f79cf6d7ce94bd836278274acb09824af389f5a7ad7d3977db743d8f9c5def78d8e9dea901a7e05355cfebb060f513cf01997baf546fd2dd2ada0513b1 WHIRLPOOL f85b60363ea30aee976e4e704bddf607b4e18ea9f9041d63acd0dc36183e103435f37c70e3b55b6327b7b1c7291c898b8167742cbcc7c47ebcd83a10f790d33c
diff --git a/media-sound/pavucontrol/files/pavucontrol-2.0-fix-startup-crashes.patch b/media-sound/pavucontrol/files/pavucontrol-2.0-fix-startup-crashes.patch
new file mode 100644
index 000000000000..0689290b6229
--- /dev/null
+++ b/media-sound/pavucontrol/files/pavucontrol-2.0-fix-startup-crashes.patch
@@ -0,0 +1,188 @@
+From b2362f2223b1ecc0c92fac9d261d5684f33af06f Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Thu, 28 Aug 2014 12:58:05 +0200
+Subject: Reference the widget before returning it from ::create methods
+
+Widgets (unlike Windows and Dialogs) returned by Gtk::Builder::get_widget*
+start owned by the GtkBuilder object, the idea being that they will get
+added to a container before the scope of the GtkBuilder object ends, and it
+thus automatically gets destroyed.
+
+But in the various ::create methods in pavucontrol, a pointer to the widget
+gets returned, so that it can be added to a cointainer by the caller.
+However as soon as the ::create method exits the GtkBuilder object owning
+the widget, and thus also the widget gets destroyed, and we end up returning
+free-ed memory.
+
+This commit fixes this by making all ::create methods take a reference on
+the widget before returning it, and having all the callers unreference the
+widget after adding it to a container.
+
+https://bugs.freedesktop.org/show_bug.cgi?id=83144
+https://bugzilla.redhat.com/show_bug.cgi?id=1133339
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+
+diff --git a/src/cardwidget.cc b/src/cardwidget.cc
+index c79ac6c..28c558d 100644
+--- a/src/cardwidget.cc
++++ b/src/cardwidget.cc
+@@ -45,6 +45,7 @@ CardWidget* CardWidget::create() {
+ CardWidget* w;
+ Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "cardWidget");
+ x->get_widget_derived("cardWidget", w);
++ w->reference();
+ return w;
+ }
+
+diff --git a/src/channelwidget.cc b/src/channelwidget.cc
+index 6f59de2..fe94c11 100644
+--- a/src/channelwidget.cc
++++ b/src/channelwidget.cc
+@@ -53,6 +53,7 @@ ChannelWidget* ChannelWidget::create() {
+ x->add_from_file(GLADE_FILE, "adjustment1");
+ x->add_from_file(GLADE_FILE, "channelWidget");
+ x->get_widget_derived("channelWidget", w);
++ w->reference();
+ return w;
+ }
+
+diff --git a/src/devicewidget.cc b/src/devicewidget.cc
+index 1a148ee..813780f 100644
+--- a/src/devicewidget.cc
++++ b/src/devicewidget.cc
+@@ -89,6 +89,7 @@ void DeviceWidget::setChannelMap(const pa_channel_map &m, bool can_decibel) {
+ snprintf(text, sizeof(text), "<b>%s</b>", pa_channel_position_to_pretty_string(m.map[i]));
+ cw->channelLabel->set_markup(text);
+ channelsVBox->pack_start(*cw, false, false, 0);
++ cw->unreference();
+ }
+ channelWidgets[m.channels-1]->last = true;
+
+diff --git a/src/mainwindow.cc b/src/mainwindow.cc
+index 5a42318..5d205fb 100644
+--- a/src/mainwindow.cc
++++ b/src/mainwindow.cc
+@@ -300,6 +300,7 @@ void MainWindow::updateCard(const pa_card_info &info) {
+ else {
+ cardWidgets[info.index] = w = CardWidget::create();
+ cardsVBox->pack_start(*w, false, false, 0);
++ w->unreference();
+ w->index = info.index;
+ is_new = true;
+ }
+@@ -416,6 +417,7 @@ bool MainWindow::updateSink(const pa_sink_info &info) {
+ sinkWidgets[info.index] = w = SinkWidget::create(this);
+ w->setChannelMap(info.channel_map, !!(info.flags & PA_SINK_DECIBEL_VOLUME));
+ sinksVBox->pack_start(*w, false, false, 0);
++ w->unreference();
+ w->index = info.index;
+ w->monitor_index = info.monitor_source;
+ is_new = true;
+@@ -570,6 +572,7 @@ void MainWindow::updateSource(const pa_source_info &info) {
+ sourceWidgets[info.index] = w = SourceWidget::create(this);
+ w->setChannelMap(info.channel_map, !!(info.flags & PA_SOURCE_DECIBEL_VOLUME));
+ sourcesVBox->pack_start(*w, false, false, 0);
++ w->unreference();
+ w->index = info.index;
+ is_new = true;
+
+@@ -686,6 +689,7 @@ void MainWindow::updateSinkInput(const pa_sink_input_info &info) {
+ sinkInputWidgets[info.index] = w = SinkInputWidget::create(this);
+ w->setChannelMap(info.channel_map, true);
+ streamsVBox->pack_start(*w, false, false, 0);
++ w->unreference();
+ w->index = info.index;
+ w->clientIndex = info.client;
+ is_new = true;
+@@ -743,6 +747,7 @@ void MainWindow::updateSourceOutput(const pa_source_output_info &info) {
+ w->setChannelMap(info.channel_map, true);
+ #endif
+ recsVBox->pack_start(*w, false, false, 0);
++ w->unreference();
+ w->index = info.index;
+ w->clientIndex = info.client;
+ is_new = true;
+@@ -838,6 +843,7 @@ bool MainWindow::createEventRoleWidget() {
+
+ eventRoleWidget = RoleWidget::create();
+ streamsVBox->pack_start(*eventRoleWidget, false, false, 0);
++ eventRoleWidget->unreference();
+ eventRoleWidget->role = "sink-input-by-media-role:event";
+ eventRoleWidget->setChannelMap(cm, true);
+
+diff --git a/src/rolewidget.cc b/src/rolewidget.cc
+index fd3196c..db07f92 100644
+--- a/src/rolewidget.cc
++++ b/src/rolewidget.cc
+@@ -40,6 +40,7 @@ RoleWidget* RoleWidget::create() {
+ RoleWidget* w;
+ Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "streamWidget");
+ x->get_widget_derived("streamWidget", w);
++ w->reference();
+ return w;
+ }
+
+diff --git a/src/sinkinputwidget.cc b/src/sinkinputwidget.cc
+index b88b718..5a0ba39 100644
+--- a/src/sinkinputwidget.cc
++++ b/src/sinkinputwidget.cc
+@@ -43,6 +43,7 @@ SinkInputWidget* SinkInputWidget::create(MainWindow* mainWindow) {
+ Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "streamWidget");
+ x->get_widget_derived("streamWidget", w);
+ w->init(mainWindow);
++ w->reference();
+ return w;
+ }
+
+diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc
+index 7f4902c..f682cf2 100644
+--- a/src/sinkwidget.cc
++++ b/src/sinkwidget.cc
+@@ -82,6 +82,7 @@ SinkWidget* SinkWidget::create(MainWindow* mainWindow) {
+ Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "deviceWidget");
+ x->get_widget_derived("deviceWidget", w);
+ w->init(mainWindow, "sink");
++ w->reference();
+ return w;
+ }
+
+diff --git a/src/sourceoutputwidget.cc b/src/sourceoutputwidget.cc
+index 827c5a8..4d915b0 100644
+--- a/src/sourceoutputwidget.cc
++++ b/src/sourceoutputwidget.cc
+@@ -49,6 +49,7 @@ SourceOutputWidget* SourceOutputWidget::create(MainWindow* mainWindow) {
+ Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "streamWidget");
+ x->get_widget_derived("streamWidget", w);
+ w->init(mainWindow);
++ w->reference();
+ return w;
+ }
+
+diff --git a/src/sourcewidget.cc b/src/sourcewidget.cc
+index 5e4ecf0..fde5333 100644
+--- a/src/sourcewidget.cc
++++ b/src/sourcewidget.cc
+@@ -35,6 +35,7 @@ SourceWidget* SourceWidget::create(MainWindow* mainWindow) {
+ Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "deviceWidget");
+ x->get_widget_derived("deviceWidget", w);
+ w->init(mainWindow, "source");
++ w->reference();
+ return w;
+ }
+
+diff --git a/src/streamwidget.cc b/src/streamwidget.cc
+index 94363ec..e602cce 100644
+--- a/src/streamwidget.cc
++++ b/src/streamwidget.cc
+@@ -77,6 +77,7 @@ void StreamWidget::setChannelMap(const pa_channel_map &m, bool can_decibel) {
+ snprintf(text, sizeof(text), "<b>%s</b>", pa_channel_position_to_pretty_string(m.map[i]));
+ cw->channelLabel->set_markup(text);
+ channelsVBox->pack_start(*cw, false, false, 0);
++ cw->unreference();
+ }
+ channelWidgets[m.channels-1]->last = true;
+ channelWidgets[m.channels-1]->setBaseVolume(PA_VOLUME_NORM);
+--
+cgit v0.10.2
+
diff --git a/media-sound/pavucontrol/metadata.xml b/media-sound/pavucontrol/metadata.xml
new file mode 100644
index 000000000000..3bf6bcfeb512
--- /dev/null
+++ b/media-sound/pavucontrol/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sound</herd>
+</pkgmetadata>
diff --git a/media-sound/pavucontrol/pavucontrol-1.0.ebuild b/media-sound/pavucontrol/pavucontrol-1.0.ebuild
new file mode 100644
index 000000000000..519b82f2aa15
--- /dev/null
+++ b/media-sound/pavucontrol/pavucontrol-1.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=4
+
+DESCRIPTION="Pulseaudio Volume Control, GTK based mixer for Pulseaudio"
+HOMEPAGE="http://freedesktop.org/software/pulseaudio/pavucontrol/"
+SRC_URI="http://freedesktop.org/software/pulseaudio/${PN}/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ~ppc64 ~sparc x86 ~x86-fbsd"
+IUSE="nls"
+
+RDEPEND=">=dev-cpp/gtkmm-3.0:3.0
+ >=dev-libs/libsigc++-2.2:2
+ >=media-libs/libcanberra-0.16[gtk3]
+ >=media-sound/pulseaudio-0.9.16[glib]
+ virtual/freedesktop-icon-theme"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ nls? (
+ dev-util/intltool
+ sys-devel/gettext
+ )"
+
+DOCS="ChangeLog"
+
+src_configure() {
+ econf \
+ --docdir=/usr/share/doc/${PF} \
+ --htmldir=/usr/share/doc/${PF}/html \
+ --disable-lynx \
+ $(use_enable nls)
+}
diff --git a/media-sound/pavucontrol/pavucontrol-2.0-r1.ebuild b/media-sound/pavucontrol/pavucontrol-2.0-r1.ebuild
new file mode 100644
index 000000000000..b42518be041b
--- /dev/null
+++ b/media-sound/pavucontrol/pavucontrol-2.0-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="Pulseaudio Volume Control, GTK based mixer for Pulseaudio"
+HOMEPAGE="http://freedesktop.org/software/pulseaudio/pavucontrol/"
+SRC_URI="http://freedesktop.org/software/pulseaudio/${PN}/${P}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ~ppc64 ~sparc x86 ~x86-fbsd"
+IUSE="nls"
+
+RDEPEND="
+ >=dev-cpp/gtkmm-3.0:3.0
+ >=dev-libs/libsigc++-2.2:2
+ >=media-libs/libcanberra-0.16[gtk3]
+ >=media-sound/pulseaudio-3[glib]
+ virtual/freedesktop-icon-theme
+"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig
+ nls? (
+ dev-util/intltool
+ sys-devel/gettext
+ )
+"
+
+src_prepare() {
+ # Fix statup crashes (bug #530170)
+ epatch "${FILESDIR}"/${P}-fix-startup-crashes.patch
+}
+
+src_configure() {
+ econf \
+ --docdir=/usr/share/doc/${PF} \
+ --htmldir=/usr/share/doc/${PF}/html \
+ --disable-lynx \
+ $(use_enable nls)
+}