summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sturmlechner <asturm@gentoo.org>2024-09-17 22:56:48 +0200
committerAndreas Sturmlechner <asturm@gentoo.org>2024-11-04 19:38:28 +0100
commitdcd56bc818bfeefc763f53b89355161a2f466f61 (patch)
treeb94da272ced48d8da1e4d5dc644e3ffad92957dd /media-libs
parentmedia-libs/libcanberra: update EAPI 7 -> 8, drop IUSE gtk2, gtk3 (diff)
downloadgentoo-dcd56bc818bfeefc763f53b89355161a2f466f61.tar.gz
gentoo-dcd56bc818bfeefc763f53b89355161a2f466f61.tar.bz2
gentoo-dcd56bc818bfeefc763f53b89355161a2f466f61.zip
media-libs/libcanberra-gtk3: new package, add 0.30
GTK3 part split out of media-libs/libcanberra Bug: https://bugs.gentoo.org/769464 Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'media-libs')
-rw-r--r--media-libs/libcanberra-gtk3/Manifest1
-rw-r--r--media-libs/libcanberra-gtk3/files/libcanberra-0.30-wayland.patch64
-rw-r--r--media-libs/libcanberra-gtk3/files/libcanberra-gtk-module.sh16
-rw-r--r--media-libs/libcanberra-gtk3/libcanberra-gtk3-0.30.ebuild88
-rw-r--r--media-libs/libcanberra-gtk3/metadata.xml12
5 files changed, 181 insertions, 0 deletions
diff --git a/media-libs/libcanberra-gtk3/Manifest b/media-libs/libcanberra-gtk3/Manifest
new file mode 100644
index 000000000000..2d908fe537f1
--- /dev/null
+++ b/media-libs/libcanberra-gtk3/Manifest
@@ -0,0 +1 @@
+DIST libcanberra-0.30.tar.xz 318960 BLAKE2B c90c6863738b103c256eeb0907060a0f74b73ef50ac0728d2114aa558a7a1ad7cbae4184860573d3fac0032eba77327a4de94c459b99a81c3dc19da0e98adfda SHA512 f7543582122256826cd01d0f5673e1e58d979941a93906400182305463d6166855cb51f35c56d807a56dc20b7a64f7ce4391368d24990c1b70782a7d0b4429c2
diff --git a/media-libs/libcanberra-gtk3/files/libcanberra-0.30-wayland.patch b/media-libs/libcanberra-gtk3/files/libcanberra-0.30-wayland.patch
new file mode 100644
index 000000000000..e51cfe00c0df
--- /dev/null
+++ b/media-libs/libcanberra-gtk3/files/libcanberra-0.30-wayland.patch
@@ -0,0 +1,64 @@
+From c0620e432650e81062c1967cc669829dbd29b310 Mon Sep 17 00:00:00 2001
+From: Michael Meeks <michael.meeks@suse.com>
+Date: Fri, 09 Nov 2012 16:16:40 +0000
+Subject: gtk: Don't assume all GdkDisplays are GdkX11Displays: broadway/wayland
+
+---
+diff --git a/src/canberra-gtk-module.c b/src/canberra-gtk-module.c
+index 67791f0..c1532ab 100644
+--- a/src/canberra-gtk-module.c
++++ b/src/canberra-gtk-module.c
+@@ -307,6 +307,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) {
+ guchar *data = NULL;
+ gint ret = -1;
+
++#ifdef GDK_IS_X11_DISPLAY
++ if (!GDK_IS_X11_DISPLAY(d))
++ return 0;
++#endif
++
+ if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w),
+ gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"),
+ 0, G_MAXLONG, False, XA_CARDINAL, &type_return,
+@@ -335,6 +340,11 @@ static gint display_get_desktop(GdkDisplay *d) {
+ guchar *data = NULL;
+ gint ret = -1;
+
++#ifdef GDK_IS_X11_DISPLAY
++ if (!GDK_IS_X11_DISPLAY(d))
++ return 0;
++#endif
++
+ if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), DefaultRootWindow(GDK_DISPLAY_XDISPLAY(d)),
+ gdk_x11_get_xatom_by_name_for_display(d, "_NET_CURRENT_DESKTOP"),
+ 0, G_MAXLONG, False, XA_CARDINAL, &type_return,
+@@ -365,6 +375,11 @@ static gboolean window_is_xembed(GdkDisplay *d, GdkWindow *w) {
+ gboolean ret = FALSE;
+ Atom xembed;
+
++#ifdef GDK_IS_X11_DISPLAY
++ if (!GDK_IS_X11_DISPLAY(d))
++ return FALSE;
++#endif
++
+ /* Gnome Panel applets are XEMBED windows. We need to make sure we
+ * ignore them */
+
+diff --git a/src/canberra-gtk.c b/src/canberra-gtk.c
+index 34446f5..08cb668 100644
+--- a/src/canberra-gtk.c
++++ b/src/canberra-gtk.c
+@@ -185,6 +185,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) {
+ guchar *data = NULL;
+ gint ret = -1;
+
++#ifdef GDK_IS_X11_DISPLAY
++ if (!GDK_IS_X11_DISPLAY(d))
++ return 0;
++#endif
++
+ if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w),
+ gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"),
+ 0, G_MAXLONG, False, XA_CARDINAL, &type_return,
+--
+cgit v0.9.2
diff --git a/media-libs/libcanberra-gtk3/files/libcanberra-gtk-module.sh b/media-libs/libcanberra-gtk3/files/libcanberra-gtk-module.sh
new file mode 100644
index 000000000000..63c16af71861
--- /dev/null
+++ b/media-libs/libcanberra-gtk3/files/libcanberra-gtk-module.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+# to be sourced
+
+case "$SESSION" in
+ GNOME)
+ # Done by gnome-settings-daemon
+ ;;
+ *)
+ if [ -z "$GTK_MODULES" ] ; then
+ GTK_MODULES="canberra-gtk-module"
+ else
+ GTK_MODULES="$GTK_MODULES:canberra-gtk-module"
+ fi
+ export GTK_MODULES
+ ;;
+esac
diff --git a/media-libs/libcanberra-gtk3/libcanberra-gtk3-0.30.ebuild b/media-libs/libcanberra-gtk3/libcanberra-gtk3-0.30.ebuild
new file mode 100644
index 000000000000..ec20d28ae8db
--- /dev/null
+++ b/media-libs/libcanberra-gtk3/libcanberra-gtk3-0.30.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PN="libcanberra"
+MY_P="libcanberra-${PV}"
+inherit libtool multilib-minimal
+
+DESCRIPTION="GTK3 bindings for libcanberra, the portable sound event library"
+HOMEPAGE="https://0pointer.de/lennart/projects/libcanberra/"
+SRC_URI="https://0pointer.de/lennart/projects/${MY_PN}/${MY_P}.tar.xz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="LGPL-2.1+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="gnome"
+
+COMMON_DEPEND="
+ ~media-libs/libcanberra-${PV}[${MULTILIB_USEDEP}]
+ >=dev-libs/glib-2.32:2[${MULTILIB_USEDEP}]
+ x11-libs/gtk+:3[X,${MULTILIB_USEDEP}]
+ x11-libs/libX11[${MULTILIB_USEDEP}]
+"
+DEPEND="${COMMON_DEPEND}
+ dev-libs/libltdl:0[${MULTILIB_USEDEP}]
+ media-libs/libvorbis[${MULTILIB_USEDEP}]
+"
+RDEPEND="${COMMON_DEPEND}
+ !<media-libs/libcanberra-0.30-r8[gtk3(-)]
+ gnome? (
+ gnome-base/dconf
+ gnome-base/gsettings-desktop-schemas )
+"
+BDEPEND="
+ app-arch/xz-utils
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ # gtk: Don't assume all GdkDisplays are GdkX11Displays: broadway/wayland (from 'master')
+ "${FILESDIR}/${MY_P}-wayland.patch"
+)
+
+src_prepare() {
+ default
+ elibtoolize
+}
+
+multilib_src_configure() {
+ local myeconfargs=(
+ --docdir="${EPREFIX}"/usr/share/doc/${PF}
+ --disable-alsa
+ --disable-oss
+ --disable-pulse
+ --disable-gstreamer
+ --disable-gtk
+ --enable-gtk3
+ --disable-tdb
+ --disable-udev
+ --disable-lynx
+ --disable-gtk-doc
+ )
+
+ ECONF_SOURCE="${S}" econf "${myeconfargs[@]}"
+}
+
+multilib_src_install() {
+ # Disable parallel installation until bug #253862 is solved
+ emake DESTDIR="${D}" -j1 install
+
+ rm "${D}"/usr/include/canberra.h \
+ "${D}"/usr/lib64/libcanberra-0.30/libcanberra-{multi,null}.so \
+ "${D}"/usr/lib64/libcanberra.so{,.0,.0.2.5} \
+ "${D}"/usr/lib64/pkgconfig/libcanberra.pc \
+ "${D}"/usr/share/vala/vapi/libcanberra.vapi \
+ || die
+}
+
+multilib_src_install_all() {
+ einstalldocs
+ find "${ED}" -type f -name '*.la' -delete || die
+
+ # This is needed for desktops different than GNOME, bug #520550
+ exeinto /etc/X11/xinit/xinitrc.d
+ newexe "${FILESDIR}"/${MY_PN}-gtk-module.sh 40-${MY_PN}-gtk-module
+}
diff --git a/media-libs/libcanberra-gtk3/metadata.xml b/media-libs/libcanberra-gtk3/metadata.xml
new file mode 100644
index 000000000000..1db67d7ed56f
--- /dev/null
+++ b/media-libs/libcanberra-gtk3/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>sound@gentoo.org</email>
+ <name>Gentoo Sound project</name>
+ </maintainer>
+</pkgmetadata>