All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] package/libcanberra: new package
@ 2023-10-03 12:40 Takumi Takahashi
  2023-11-04 22:07 ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 2+ messages in thread
From: Takumi Takahashi @ 2023-10-03 12:40 UTC (permalink / raw)
  To: buildroot; +Cc: Thomas Petazzoni, Takumi Takahashi

This package defines a simple abstract interface for playing event sounds.
It is mainly used by desktop applications such as GDM and GNOME Session.

http://0pointer.de/lennart/projects/libcanberra/

Signed-off-by: Takumi Takahashi <takumiiinn@gmail.com>
---
 package/Config.in                    |  1 +
 package/libcanberra/Config.in        | 17 ++++++++
 package/libcanberra/libcanberra.hash |  3 ++
 package/libcanberra/libcanberra.mk   | 59 ++++++++++++++++++++++++++++
 4 files changed, 80 insertions(+)
 create mode 100644 package/libcanberra/Config.in
 create mode 100644 package/libcanberra/libcanberra.hash
 create mode 100644 package/libcanberra/libcanberra.mk

diff --git a/package/Config.in b/package/Config.in
index 009f7ba186..8f44e3efab 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1425,6 +1425,7 @@ menu "Audio/Sound"
 	source "package/fdk-aac/Config.in"
 	source "package/libao/Config.in"
 	source "package/libbroadvoice/Config.in"
+	source "package/libcanberra/Config.in"
 	source "package/libcdaudio/Config.in"
 	source "package/libcddb/Config.in"
 	source "package/libcdio/Config.in"
diff --git a/package/libcanberra/Config.in b/package/libcanberra/Config.in
new file mode 100644
index 0000000000..4274bcbec9
--- /dev/null
+++ b/package/libcanberra/Config.in
@@ -0,0 +1,17 @@
+comment "libcanberra needs a toolchain w/ wchar, threads, dynamic library"
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
+
+comment "libcanberra needs a alsa-lib or pulseaudio or gstreamer"
+	depends on !BR2_PACKAGE_ALSA_LIB && !BR2_PACKAGE_PULSEAUDIO && !BR2_PACKAGE_GSTREAMER1
+
+config BR2_PACKAGE_LIBCANBERRA
+	bool "libcanberra"
+	depends on BR2_USE_WCHAR
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_STATIC_LIBS
+	select BR2_PACKAGE_LIBTOOL
+	select BR2_PACKAGE_LIBVORBIS
+	help
+	  libcanberra defines a simple abstract interface for playing event sounds.
+
+	  http://0pointer.de/lennart/projects/libcanberra/
diff --git a/package/libcanberra/libcanberra.hash b/package/libcanberra/libcanberra.hash
new file mode 100644
index 0000000000..8dc90ccd88
--- /dev/null
+++ b/package/libcanberra/libcanberra.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72  libcanberra-0.30.tar.xz
+sha256  a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861  LGPL
diff --git a/package/libcanberra/libcanberra.mk b/package/libcanberra/libcanberra.mk
new file mode 100644
index 0000000000..1eadcb571b
--- /dev/null
+++ b/package/libcanberra/libcanberra.mk
@@ -0,0 +1,59 @@
+################################################################################
+#
+# libcanberra
+#
+################################################################################
+
+LIBCANBERRA_VERSION = 0.30
+LIBCANBERRA_SOURCE = libcanberra-$(LIBCANBERRA_VERSION).tar.xz
+LIBCANBERRA_SITE = http://0pointer.de/lennart/projects/libcanberra
+LIBCANBERRA_LICENSE = LGPL-2.1+
+LIBCANBERRA_LICENSE_FILES = LICENSE
+LIBCANBERRA_INSTALL_STAGING = YES
+
+LIBCANBERRA_DEPENDENCIES = host-pkgconf libtool libvorbis
+LIBCANBERRA_CONF_OPTS = --disable-oss --disable-null --disable-tdb --disable-lynx
+
+ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
+LIBCANBERRA_CONF_OPTS += --enable-udev
+LIBCANBERRA_DEPENDENCIES += udev
+else
+LIBCANBERRA_CONF_OPTS += --disable-udev
+endif
+
+ifeq ($(BR2_PACKAGE_ALSA_LIB),y)
+LIBCANBERRA_CONF_OPTS += --enable-alsa
+LIBCANBERRA_DEPENDENCIES += alsa-lib
+else
+LIBCANBERRA_CONF_OPTS += --disable-alsa
+endif
+
+ifeq ($(BR2_PACKAGE_PULSEAUDIO),y)
+LIBCANBERRA_CONF_OPTS += --enable-pulse
+LIBCANBERRA_DEPENDENCIES += pulseaudio
+else
+LIBCANBERRA_CONF_OPTS += --disable-pulse
+endif
+
+ifeq ($(BR2_PACKAGE_GSTREAMER1),y)
+LIBCANBERRA_CONF_OPTS += --enable-gstreamer
+LIBCANBERRA_DEPENDENCIES += gstreamer1
+else
+LIBCANBERRA_CONF_OPTS += --disable-gstreamer
+endif
+
+ifeq ($(BR2_PACKAGE_LIBGTK2),y)
+LIBCANBERRA_CONF_OPTS += --enable-gtk
+LIBCANBERRA_DEPENDENCIES += libgtk2
+else
+LIBCANBERRA_CONF_OPTS += --disable-gtk
+endif
+
+ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y)
+LIBCANBERRA_CONF_OPTS += --enable-gtk3
+LIBCANBERRA_DEPENDENCIES += libgtk3
+else
+LIBCANBERRA_CONF_OPTS += --disable-gtk3
+endif
+
+$(eval $(autotools-package))
-- 
2.42.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Buildroot] [PATCH] package/libcanberra: new package
  2023-10-03 12:40 [Buildroot] [PATCH] package/libcanberra: new package Takumi Takahashi
@ 2023-11-04 22:07 ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-11-04 22:07 UTC (permalink / raw)
  To: Takumi Takahashi; +Cc: buildroot

Hello,

Thanks for your contribution! I applied it, after adjusting a few
things, see below.

On Tue,  3 Oct 2023 21:40:03 +0900
Takumi Takahashi <takumiiinn@gmail.com> wrote:

> This package defines a simple abstract interface for playing event sounds.
> It is mainly used by desktop applications such as GDM and GNOME Session.
> 
> http://0pointer.de/lennart/projects/libcanberra/
> 
> Signed-off-by: Takumi Takahashi <takumiiinn@gmail.com>
> ---
>  package/Config.in                    |  1 +
>  package/libcanberra/Config.in        | 17 ++++++++
>  package/libcanberra/libcanberra.hash |  3 ++
>  package/libcanberra/libcanberra.mk   | 59 ++++++++++++++++++++++++++++
>  4 files changed, 80 insertions(+)

An entry in the DEVELOPERS file was missing.


> +comment "libcanberra needs a alsa-lib or pulseaudio or gstreamer"
> +	depends on !BR2_PACKAGE_ALSA_LIB && !BR2_PACKAGE_PULSEAUDIO && !BR2_PACKAGE_GSTREAMER1

This is not really useful, as it doesn't prevent a build failure. So
instead, I've added...

> +
> +config BR2_PACKAGE_LIBCANBERRA
> +	bool "libcanberra"
> +	depends on BR2_USE_WCHAR
> +	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on !BR2_STATIC_LIBS

This:

+       # We need at least one audio backend
+       select BR2_PACKAGE_ALSA_LIB if \
+              !BR2_PACKAGE_PULSEAUDIO && \
+              !BR2_PACKAGE_GSTREAMER1

> +sha256  c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72  libcanberra-0.30.tar.xz
> +sha256  a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861  LGPL
> diff --git a/package/libcanberra/libcanberra.mk b/package/libcanberra/libcanberra.mk
> new file mode 100644
> index 0000000000..1eadcb571b
> --- /dev/null
> +++ b/package/libcanberra/libcanberra.mk
> @@ -0,0 +1,59 @@
> +################################################################################
> +#
> +# libcanberra
> +#
> +################################################################################
> +
> +LIBCANBERRA_VERSION = 0.30
> +LIBCANBERRA_SOURCE = libcanberra-$(LIBCANBERRA_VERSION).tar.xz
> +LIBCANBERRA_SITE = http://0pointer.de/lennart/projects/libcanberra
> +LIBCANBERRA_LICENSE = LGPL-2.1+
> +LIBCANBERRA_LICENSE_FILES = LICENSE

This was incorrect: the file is named "LGPL". I only realized this
after pushing, so I fixed up in a follow-up commit.

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-11-04 22:07 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-03 12:40 [Buildroot] [PATCH] package/libcanberra: new package Takumi Takahashi
2023-11-04 22:07 ` Thomas Petazzoni via buildroot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.