diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2024-09-17 22:56:48 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2024-11-04 19:38:28 +0100 |
commit | dcd56bc818bfeefc763f53b89355161a2f466f61 (patch) | |
tree | b94da272ced48d8da1e4d5dc644e3ffad92957dd /media-libs | |
parent | media-libs/libcanberra: update EAPI 7 -> 8, drop IUSE gtk2, gtk3 (diff) | |
download | gentoo-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')
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> |