Firefox and GTK2
Jan Beich
jbeich at FreeBSD.org
Sat Jun 29 00:50:54 UTC 2019
Steve Wills <swills at FreeBSD.org> writes:
> Hi,
>
> On 6/28/19 5:56 PM, Jan Beich wrote:
>> Steve Wills <swills at FreeBSD.org> writes:
>>
> [snip]
>>
>> How does libcanberra decide which gtk to use?
>>
>
> Wouldn't that be based on how it's built and what it's linked against?
We're back then. libcanberra.so.0 doesn't depend on gtk unlike
libcanberra-gtk.so.0 or libcanberra-gtk3.so.0. And Firefox doesn't
depend on libcanberra-gtk.so.0 or libcanberra-gtk3.so.0.
>>>> GTK3 is still optional in www/seamonkey and not supported in www/palemoon.
>>>
>>> Maybe the libcanberra dep could be moved out of bsd.gecko.mk and into
>>> the ports?
>>
>> Right. To Mk/Uses/gnome.mk where USE_GNOME=canberra can decide whether
>> to pull -gtk3 slave or not.
>
> USE_GNOME=canberra might make sense, yeah, although I'm not sure how
> it would decide which to use. Maybe that would have to specified.
Here's an ugly example:
$ make WITH=CANBERRA -V RUN_DEPENDS:M\*canberra\* -C www/firefox
/usr/local/lib/libcanberra-gtk3.so:audio/libcanberra-gtk3
$ make WITH=CANBERRA -V RUN_DEPENDS:M\*canberra\* -C www/palemoon
/usr/local/lib/libcanberra.so:audio/libcanberra
$ make WITH=CANBERRA -V RUN_DEPENDS:M\*canberra\* -C www/seamonkey
/usr/local/lib/libcanberra-gtk3.so:audio/libcanberra-gtk3
$ make WITH=CANBERRA\ GTK2 WITHOUT=GTK3 -V RUN_DEPENDS:M\*canberra\* -C www/seamonkey
/usr/local/lib/libcanberra.so:audio/libcanberra
diff --git a/Mk/Uses/gnome.mk b/Mk/Uses/gnome.mk
index 1d2b418fbe8d..3fbe55dfbc77 100644
--- a/Mk/Uses/gnome.mk
+++ b/Mk/Uses/gnome.mk
@@ -77,7 +77,7 @@ _USE_GNOME_ALL+= atk cairo \
gnomedocutils gnomesharp20 \
gnomevfs2 gtk-update-icon-cache gtk20 gtkhtml3 \
gtksharp20 gtksourceview2 gvfs libartlgpl2 libbonobo \
- libbonoboui libglade2 libgnome \
+ libbonoboui libcanberra libglade2 libgnome \
libgnomecanvas libgnomekbd libgnomeprint libgnomeprintui \
libgnomeui libgsf libgtkhtml libidl librsvg2 libwnck \
libxml2 libxslt \
@@ -87,7 +87,7 @@ _USE_GNOME_ALL+= atk cairo \
# GNOME 3 components
_USE_GNOME_ALL+=dconf evolutiondataserver3 gnomecontrolcenter3 gnomedesktop3 \
gnomemenus3 gsound gtk30 gtkhtml4 gtksourceview3 \
- gtksourceview4 libgda5 \
+ gtksourceview4 libcanberra-gtk3 libgda5 \
libgda5-ui libwnck3 metacity nautilus3 \
pygobject3 vte3
@@ -121,6 +121,13 @@ gnomeprefix_CONFIGURE_ARGS=--localstatedir=${GNOME_LOCALSTATEDIR} \
atkmm_LIB_DEPENDS= libatkmm-1.6.so:accessibility/atkmm
atkmm_USE_GNOME_IMPL= glibmm atk
+libcanberra_BUILD_DEPENDS= ${LOCALBASE}/include/canberra.h:audio/libcanberra
+libcanberra_LIB_DEPENDS= libcanberra.so:audio/libcanberra
+libcanberra_RUN_DEPENDS= ${LOCALBASE}/lib/libcanberra.so:audio/libcanberra
+libcanberra-gtk3_BUILD_DEPENDS= libcanberra-gtk3>0:audio/libcanberra-gtk3
+libcanberra-gtk3_LIB_DEPENDS= libcanberra-gtk3.so:audio/libcanberra-gtk3
+libcanberra-gtk3_RUN_DEPENDS= ${LOCALBASE}/lib/libcanberra-gtk3.so:audio/libcanberra-gtk3
+
libxml++26_LIB_DEPENDS= libxml++-2.6.so:textproc/libxml++26
libxml++26_USE_GNOME_IMPL= glibmm libxml2
@@ -393,6 +400,14 @@ IGNORE= cannot install: Unknown component ${component}
_USE_GNOME+= ${${component}_USE_GNOME_IMPL} ${component}
. endfor
+# XXX _USE_GNOME_IMPL cannot be used due to recursion e.g.,
+# libcanberra_USE_GNOME_IMPL+=${_USE_GNOME:S/gtk30/libcanberra-gtk3/}
+# gtk30_USE_GNOME_IMPL+=${_USE_GNOME:S/libcanberra/&-gtk3/}
+.if ${_USE_GNOME:Mgtk30}
+USE_GNOME:= ${USE_GNOME:S/libcanberra/&-gtk3/}
+_USE_GNOME:= ${_USE_GNOME:S/libcanberra/&-gtk3/}
+.endif
+
# Setup the GTK+ API version for pixbuf loaders, input method modules,
# and theme engines.
PLIST_SUB+= GTK2_VERSION="${GTK2_VERSION}" \
diff --git a/Mk/bsd.gecko.mk b/Mk/bsd.gecko.mk
index 28cd910ae90a..cbe2f74d844e 100644
--- a/Mk/bsd.gecko.mk
+++ b/Mk/bsd.gecko.mk
@@ -274,7 +274,7 @@ LDFLAGS+= -B${LOCALBASE}/bin
.endif
.if ${PORT_OPTIONS:MCANBERRA}
-RUN_DEPENDS+= libcanberra>0:audio/libcanberra
+USE_GNOME+= libcanberra:run
.endif
.if ${PORT_OPTIONS:MDBUS}
More information about the freebsd-gecko
mailing list