View | Details | Raw Unified | Return to bug 192571 | Differences between
and this patch

Collapse All | Expand All

(-)Makefile (-10 / +36 lines)
Lines 2-25 Link Here
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=	pavucontrol
4
PORTNAME=	pavucontrol
5
PORTVERSION=	0.9.10
5
PORTVERSION=	2.0
6
PORTREVISION=	3
7
CATEGORIES=	audio
6
CATEGORIES=	audio
8
MASTER_SITES=	http://0pointer.de/lennart/projects/${PORTNAME}/
7
MASTER_SITES=	http://freedesktop.org/software/pulseaudio/${PORTNAME}/
9
8
10
MAINTAINER=	romain@FreeBSD.org
9
MAINTAINER=	romain@FreeBSD.org
11
COMMENT=	GTK mixer for PulseAudio
10
COMMENT=	GTK mixer for PulseAudio
12
11
13
LIB_DEPENDS=	libglademm-2.4.so:${PORTSDIR}/devel/libglademm24 \
12
LICENSE=	GPLv2
14
		libpulse.so:${PORTSDIR}/audio/pulseaudio \
13
LICENSE_FILE=	${WRKSRC}/LICENSE
15
		libcanberra.so:${PORTSDIR}/audio/libcanberra
16
14
15
LIB_DEPENDS=	libpulse.so:${PORTSDIR}/audio/pulseaudio
16
17
GNU_CONFIGURE=	yes
17
GNU_CONFIGURE=	yes
18
USES=		gettext gmake pkgconfig
18
USES=		gmake pkgconfig gettext tar:xz
19
USE_GNOME=	intltool
19
USE_GNOME=	glibmm intltool libsigc++20
20
20
21
OPTIONS_SUB=	yes
22
OPTIONS_SINGLE=	GTK
23
OPTIONS_SINGLE_GTK=	GTK2 GTK3
24
OPTIONS_DEFAULT=	GTK2
25
21
CONFIGURE_ARGS=	--disable-lynx
26
CONFIGURE_ARGS=	--disable-lynx
22
CPPFLAGS+=	-I${LOCALBASE}/include
23
LIBS+=		-L${LOCALBASE}/lib
24
27
28
GTK2_USE=	GNOME=gtkmm24
29
GTK2_LIB_DEPENDS=	libcanberra.so:${PORTSDIR}/audio/libcanberra
30
GTK2_CONFIGURE_ON=	--disable-gtk3
31
32
GTK3_USE=	GNOME=gtkmm30
33
GTK3_LIB_DEPENDS=	libcanberra-gtk3.so:${PORTSDIR}/audio/libcanberra-gtk3
34
35
.include <bsd.port.options.mk>
36
37
.if ${PORT_OPTIONS:MGTK2}
38
EXTRA_PATCHES=	${FILESDIR}/extra-patch-support-gtkmm-24.patch
39
.endif
40
41
.if ${PORT_OPTIONS:MGTK3}
42
EXTRA_PATCHES=	${FILESDIR}/extra-patch-support-gtkmm-30.patch \
43
	${FILESDIR}/extra-patch-src_pavucontrol.glade
44
.endif
45
46
post-patch:
47
# Install locales files in right place
48
	${REINPLACE_CMD} -e 's|[$$][(]DATADIRNAME[)]|share|' \
49
		${WRKSRC}/po/Makefile.in.in
50
25
.include <bsd.port.mk>
51
.include <bsd.port.mk>
(-)distinfo (-2 / +2 lines)
Lines 1-2 Link Here
1
SHA256 (pavucontrol-0.9.10.tar.gz) = 7ee96d2ddc28f53e392a1bc51a7316d2a9087ea2ad18e611f6f6725e756a5a3c
1
SHA256 (pavucontrol-2.0.tar.xz) = 22f29dd81b4a1a34ec7bffe9b027aff2a37fc76ccded4539d43a8c126a39470b
2
SIZE (pavucontrol-0.9.10.tar.gz) = 227735
2
SIZE (pavucontrol-2.0.tar.xz) = 151560
(-)files/extra-patch-src_pavucontrol.glade (+52 lines)
Line 0 Link Here
1
From: Hans de Goede <hdegoede@redhat.com>
2
Date: Fri, 29 Aug 2014 09:42:04 +0200
3
Subject: Do not instantiate cardwidget, devicewidget and rolewidget with
4
 a type of EventBox
5
6
--- src/pavucontrol.glade.orig	2012-12-17 09:50:42 UTC
7
+++ src/pavucontrol.glade
8
@@ -12,12 +12,12 @@
9
     <property name="can_focus">False</property>
10
     <property name="title" translatable="yes">window1</property>
11
     <child>
12
-      <object class="GtkEventBox" id="cardWidget">
13
+      <object class="GtkEventBox" id="cardWidgetBox">
14
         <property name="visible">True</property>
15
         <property name="can_focus">False</property>
16
         <property name="visible_window">False</property>
17
         <child>
18
-          <object class="GtkVBox" id="cardWidget1">
19
+          <object class="GtkVBox" id="cardWidget">
20
             <property name="visible">True</property>
21
             <property name="can_focus">False</property>
22
             <child>
23
@@ -202,12 +202,12 @@
24
     <property name="can_focus">False</property>
25
     <property name="title" translatable="yes">window1</property>
26
     <child>
27
-      <object class="GtkEventBox" id="deviceWidget">
28
+      <object class="GtkEventBox" id="deviceWidgetBox">
29
         <property name="visible">True</property>
30
         <property name="can_focus">False</property>
31
         <property name="visible_window">False</property>
32
         <child>
33
-          <object class="GtkVBox" id="streamWidget2">
34
+          <object class="GtkVBox" id="deviceWidget">
35
             <property name="visible">True</property>
36
             <property name="can_focus">False</property>
37
             <child>
38
@@ -1316,12 +1316,12 @@
39
     <property name="can_focus">False</property>
40
     <property name="title" translatable="yes">window1</property>
41
     <child>
42
-      <object class="GtkEventBox" id="streamWidget">
43
+      <object class="GtkEventBox" id="streamWidgetBox">
44
         <property name="visible">True</property>
45
         <property name="can_focus">False</property>
46
         <property name="visible_window">False</property>
47
         <child>
48
-          <object class="GtkVBox" id="streamWidget2">
49
+          <object class="GtkVBox" id="streamWidget">
50
             <property name="visible">True</property>
51
             <property name="can_focus">False</property>
52
             <child>
(-)files/extra-patch-support-gtkmm-24.patch (+28 lines)
Line 0 Link Here
1
From: Alam Arias <alam.gbc@gmail.com>
2
Date: Fri, 8 Mar 2013 14:27:02 -0500
3
Subject: added back support for gtkmm-2.4 builds
4
5
--- src/devicewidget.cc.orig	2012-12-17 09:50:42 UTC
6
+++ src/devicewidget.cc
7
@@ -63,8 +63,8 @@ DeviceWidget::DeviceWidget(BaseObjectTyp
8
     for (unsigned i = 0; i < PA_CHANNELS_MAX; i++)
9
         channelWidgets[i] = NULL;
10
 
11
-    offsetAdjustment = Gtk::Adjustment::create(0.0, -2000.0, 2000.0, 10.0, 50.0, 0.0);
12
-    offsetButton->configure(offsetAdjustment, 0, 2);
13
+    offsetAdjustment = new Gtk::Adjustment(0.0, -2000.0, 2000.0, 10.0, 50.0, 0.0);
14
+    offsetButton->configure(*offsetAdjustment, 0.0, 2);
15
 }
16
 
17
 void DeviceWidget::init(MainWindow* mainWindow, Glib::ustring deviceType) {
18
--- src/devicewidget.h.orig	2012-12-17 09:17:56 UTC
19
+++ src/devicewidget.h
20
@@ -98,7 +98,7 @@ protected:
21
     Gtk::HBox *portSelect, *offsetSelect;
22
     Gtk::ComboBox *portList;
23
     Glib::RefPtr<Gtk::ListStore> treeModel;
24
-    Glib::RefPtr<Gtk::Adjustment> offsetAdjustment;
25
+    Gtk::Adjustment *offsetAdjustment;
26
 
27
 private:
28
     Glib::ustring mDeviceType;
(-)files/extra-patch-support-gtkmm-30.patch (+134 lines)
Line 0 Link Here
1
From: Hans de Goede <hdegoede@redhat.com>
2
Date: Thu, 28 Aug 2014 12:58:05 +0200
3
Subject: Reference the widget before returning it from ::create methods
4
5
--- src/cardwidget.cc.orig	2011-08-12 14:18:44 UTC
6
+++ src/cardwidget.cc
7
@@ -45,6 +45,7 @@ CardWidget* CardWidget::create() {
8
     CardWidget* w;
9
     Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "cardWidget");
10
     x->get_widget_derived("cardWidget", w);
11
+    w->reference();
12
     return w;
13
 }
14
 
15
--- src/channelwidget.cc.orig	2011-03-10 07:39:25 UTC
16
+++ src/channelwidget.cc
17
@@ -53,6 +53,7 @@ ChannelWidget* ChannelWidget::create() {
18
     x->add_from_file(GLADE_FILE, "adjustment1");
19
     x->add_from_file(GLADE_FILE, "channelWidget");
20
     x->get_widget_derived("channelWidget", w);
21
+    w->reference();
22
     return w;
23
 }
24
 
25
--- src/mainwindow.cc.orig	2012-12-17 09:19:04 UTC
26
+++ src/mainwindow.cc
27
@@ -298,6 +298,7 @@ void MainWindow::updateCard(const pa_car
28
     else {
29
         cardWidgets[info.index] = w = CardWidget::create();
30
         cardsVBox->pack_start(*w, false, false, 0);
31
+        w->unreference();
32
         w->index = info.index;
33
         is_new = true;
34
     }
35
@@ -414,6 +415,7 @@ bool MainWindow::updateSink(const pa_sin
36
         sinkWidgets[info.index] = w = SinkWidget::create(this);
37
         w->setChannelMap(info.channel_map, !!(info.flags & PA_SINK_DECIBEL_VOLUME));
38
         sinksVBox->pack_start(*w, false, false, 0);
39
+        w->unreference();
40
         w->index = info.index;
41
         w->monitor_index = info.monitor_source;
42
         is_new = true;
43
@@ -567,6 +569,7 @@ void MainWindow::updateSource(const pa_s
44
         sourceWidgets[info.index] = w = SourceWidget::create(this);
45
         w->setChannelMap(info.channel_map, !!(info.flags & PA_SOURCE_DECIBEL_VOLUME));
46
         sourcesVBox->pack_start(*w, false, false, 0);
47
+        w->unreference();
48
         w->index = info.index;
49
         is_new = true;
50
 
51
@@ -682,6 +685,7 @@ void MainWindow::updateSinkInput(const p
52
         sinkInputWidgets[info.index] = w = SinkInputWidget::create(this);
53
         w->setChannelMap(info.channel_map, true);
54
         streamsVBox->pack_start(*w, false, false, 0);
55
+        w->unreference();
56
         w->index = info.index;
57
         w->clientIndex = info.client;
58
         is_new = true;
59
@@ -737,6 +741,7 @@ void MainWindow::updateSourceOutput(cons
60
         w->setChannelMap(info.channel_map, true);
61
 #endif
62
         recsVBox->pack_start(*w, false, false, 0);
63
+        w->unreference();
64
         w->index = info.index;
65
         w->clientIndex = info.client;
66
         is_new = true;
67
@@ -830,6 +835,7 @@ bool MainWindow::createEventRoleWidget()
68
 
69
     eventRoleWidget = RoleWidget::create();
70
     streamsVBox->pack_start(*eventRoleWidget, false, false, 0);
71
+    eventRoleWidget->unreference();
72
     eventRoleWidget->role = "sink-input-by-media-role:event";
73
     eventRoleWidget->setChannelMap(cm, true);
74
 
75
--- src/rolewidget.cc.orig	2011-03-10 07:39:25 UTC
76
+++ src/rolewidget.cc
77
@@ -40,6 +40,7 @@ RoleWidget* RoleWidget::create() {
78
     RoleWidget* w;
79
     Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "streamWidget");
80
     x->get_widget_derived("streamWidget", w);
81
+    w->reference();
82
     return w;
83
 }
84
 
85
--- src/sinkinputwidget.cc.orig	2011-03-10 07:39:25 UTC
86
+++ src/sinkinputwidget.cc
87
@@ -43,6 +43,7 @@ SinkInputWidget* SinkInputWidget::create
88
     Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "streamWidget");
89
     x->get_widget_derived("streamWidget", w);
90
     w->init(mainWindow);
91
+    w->reference();
92
     return w;
93
 }
94
 
95
--- src/sinkwidget.cc.orig	2012-12-17 09:50:42 UTC
96
+++ src/sinkwidget.cc
97
@@ -70,6 +70,7 @@ SinkWidget* SinkWidget::create(MainWindo
98
     Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "deviceWidget");
99
     x->get_widget_derived("deviceWidget", w);
100
     w->init(mainWindow, "sink");
101
+    w->reference();
102
     return w;
103
 }
104
 
105
--- src/sourceoutputwidget.cc.orig	2011-08-08 13:33:17 UTC
106
+++ src/sourceoutputwidget.cc
107
@@ -49,6 +49,7 @@ SourceOutputWidget* SourceOutputWidget::
108
     Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "streamWidget");
109
     x->get_widget_derived("streamWidget", w);
110
     w->init(mainWindow);
111
+    w->reference();
112
     return w;
113
 }
114
 
115
--- src/sourcewidget.cc.orig	2011-03-10 07:39:25 UTC
116
+++ src/sourcewidget.cc
117
@@ -35,6 +35,7 @@ SourceWidget* SourceWidget::create(MainW
118
     Glib::RefPtr<Gtk::Builder> x = Gtk::Builder::create_from_file(GLADE_FILE, "deviceWidget");
119
     x->get_widget_derived("deviceWidget", w);
120
     w->init(mainWindow, "source");
121
+    w->reference();
122
     return w;
123
 }
124
 
125
--- src/streamwidget.cc.orig	2011-03-10 07:39:25 UTC
126
+++ src/streamwidget.cc
127
@@ -77,6 +77,7 @@ void StreamWidget::setChannelMap(const p
128
         snprintf(text, sizeof(text), "<b>%s</b>", pa_channel_position_to_pretty_string(m.map[i]));
129
         cw->channelLabel->set_markup(text);
130
         channelsVBox->pack_start(*cw, false, false, 0);
131
+        cw->unreference();
132
     }
133
     channelWidgets[m.channels-1]->last = true;
134
     channelWidgets[m.channels-1]->setBaseVolume(PA_VOLUME_NORM);
(-)pkg-descr (-1 / +1 lines)
Lines 3-6 Link Here
3
tools this one allows you to control both the volume of hardware devices and of
3
tools this one allows you to control both the volume of hardware devices and of
4
each playback stream separately.
4
each playback stream separately.
5
5
6
WWW: http://0pointer.de/lennart/projects/pavucontrol/
6
WWW: http://freedesktop.org/software/pulseaudio/pavucontrol/
(-)pkg-plist (-3 / +3 lines)
Lines 1-8 Link Here
1
bin/pavucontrol
1
bin/pavucontrol
2
share/applications/pavucontrol.desktop
2
share/applications/pavucontrol.desktop
3
share/doc/pavucontrol/README
3
%%DOCSDIR%%/README
4
share/doc/pavucontrol/README.html
4
%%DOCSDIR%%/README.html
5
share/doc/pavucontrol/style.css
5
%%DOCSDIR%%/style.css
6
share/locale/as/LC_MESSAGES/pavucontrol.mo
6
share/locale/as/LC_MESSAGES/pavucontrol.mo
7
share/locale/bn_IN/LC_MESSAGES/pavucontrol.mo
7
share/locale/bn_IN/LC_MESSAGES/pavucontrol.mo
8
share/locale/ca/LC_MESSAGES/pavucontrol.mo
8
share/locale/ca/LC_MESSAGES/pavucontrol.mo

Return to bug 192571