All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [v2 1/2] caps: new package
@ 2014-08-06  0:02 Martin Bark
  2014-08-06  0:02 ` [Buildroot] [v2 2/2] alsaequal: " Martin Bark
  2014-08-06 20:14 ` [Buildroot] [v2 1/2] caps: " Thomas Petazzoni
  0 siblings, 2 replies; 5+ messages in thread
From: Martin Bark @ 2014-08-06  0:02 UTC (permalink / raw)
  To: buildroot

CAPS is a collection of audio plugins comprising virtual guitar
amplification and a small range of basic classic effects, signal
processors and generators of often elementary and occasionally
exotic nature.

The plugins aim to satisfy the highest demands in sound quality
with maximal computational efficiency and zero latency.

Signed-off-by: Martin Bark <martin@barkynet.com>
CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

---

Changes v1 -> v2:
  - Added dependency to BR2_INSTALL_LIBSTDCPP (Thomas Petazzoni)
  - Add description and Signed-off-by to patch (Thomas Petazzoni)
  - Fixed use of $(TARGET_CONFIGURE_OPTS) and $(TARGET_MAKE_ENV) (Thomas Petazzoni)

Signed-off-by: Martin Bark <martin@barkynet.com>
---
 package/Config.in                                |  1 +
 package/caps/Config.in                           | 16 +++++
 package/caps/caps-01-fix-cross-compilation.patch | 79 ++++++++++++++++++++++++
 package/caps/caps.mk                             | 23 +++++++
 4 files changed, 119 insertions(+)
 create mode 100644 package/caps/Config.in
 create mode 100644 package/caps/caps-01-fix-cross-compilation.patch
 create mode 100644 package/caps/caps.mk

diff --git a/package/Config.in b/package/Config.in
index 4520ba6..1a20bee 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -525,6 +525,7 @@ menu "Libraries"
 menu "Audio/Sound"
 	source "package/alsa-lib/Config.in"
 	source "package/audiofile/Config.in"
+	source "package/caps/Config.in"
 	source "package/celt051/Config.in"
 	source "package/fdk-aac/Config.in"
 	source "package/libao/Config.in"
diff --git a/package/caps/Config.in b/package/caps/Config.in
new file mode 100644
index 0000000..5a74c38
--- /dev/null
+++ b/package/caps/Config.in
@@ -0,0 +1,16 @@
+config BR2_PACKAGE_CAPS
+	bool "caps"
+	depends on BR2_INSTALL_LIBSTDCPP
+	help
+	  CAPS is a collection of audio plugins comprising virtual guitar
+	  amplification and a small range of basic classic effects, signal
+	  processors and generators of often elementary and occasionally
+	  exotic nature.
+
+	  The plugins aim to satisfy the highest demands in sound quality
+	  with maximal computational efficiency and zero latency.
+
+	  http://quitte.de/dsp/caps.html
+
+comment "caps needs a toolchain w/ C++"
+	depends on !BR2_INSTALL_LIBSTDCPP
diff --git a/package/caps/caps-01-fix-cross-compilation.patch b/package/caps/caps-01-fix-cross-compilation.patch
new file mode 100644
index 0000000..350eb98
--- /dev/null
+++ b/package/caps/caps-01-fix-cross-compilation.patch
@@ -0,0 +1,79 @@
+From 8b34232d89e81346c6087d94146f35cd2813a638 Mon Sep 17 00:00:00 2001
+From: Martin Bark <martin@barkynet.com>
+Date: Tue, 5 Aug 2014 21:59:23 +0100
+Subject: [PATCH 1/1] Fix cross compilation
+
+Corrections to Makefile to correctly use CXX and CXXFLAGS when compiling
+c++ code.
+
+Signed-off-by: Martin Bark <martin@barkynet.com>
+---
+ Makefile | 21 ++++++++++-----------
+ 1 file changed, 10 insertions(+), 11 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index a519e96..2883ccf 100644
+--- a/Makefile
++++ b/Makefile
+@@ -3,18 +3,18 @@ VERSION = 0.9.23
+ PREFIX = /usr
+ DESTDIR = 
+ 
+-CC = g++
++CXX ?= g++
+ 
+-OPTS = -O3 -ffast-math -funroll-loops -Wall -fPIC -DPIC
++OPTS = -fPIC -DPIC
+ #OPTS = -g -DDEBUG 
+ 
+ _LDFLAGS = -shared 
+-STRIP = strip
++STRIP ?= strip
+ 
+ -include defines.make
+ 
+-CFLAGS += $(OPTS) $(_CFLAGS)
+-LDFLAGS += $(_LDFLAGS) $(CFLAGS)
++override CXXFLAGS += $(OPTS) $(_CXXFLAGS)
++override LDFLAGS += $(_LDFLAGS) $(CXXFLAGS)
+ 
+ PLUG = caps
+ 
+@@ -48,19 +48,18 @@ $(PLUG).rdf: all tools/make-rdf.py
+ 	python tools/make-rdf.py > $(PLUG).rdf
+ 
+ $(PLUG).so: $(OBJECTS)
+-	$(CC) $(ARCH) $(LDFLAGS) -o $@ $(OBJECTS)
++	$(CXX) $(ARCH) $(LDFLAGS) -o $@ $(OBJECTS)
+ 
+ .cc.s: 
+-	$(CC) $(ARCH) $(CFLAGS) -S $<
++	$(CXX) $(ARCH) $(CXXFLAGS) -S $<
+ 
+ .cc.o: depend 
+-	$(CC) $(ARCH) $(CFLAGS) -o $@ -c $<
++	$(CXX) $(ARCH) $(CXXFLAGS) -o $@ -c $<
+ 
+ tags: $(SOURCES) $(HEADERS)
+ 	@-if [ -x /usr/bin/ctags ]; then ctags $(SOURCES) $(HEADERS) >/dev/null 2>&1 ; fi
+ 
+ install: all
+-	@$(STRIP) $(PLUG).so > /dev/null
+ 	install -d $(DESTDIR)$(DEST)
+ 	install -m 644 $(PLUG).so $(DESTDIR)$(DEST)
+ 	install -d $(DESTDIR)$(RDFDEST)
+@@ -87,9 +86,9 @@ version.h:
+ 	@VERSION=$(VERSION) python tools/make-version.h.py
+ 
+ dist: all $(PLUG).rdf version.h
+-	tools/make-dist.py caps $(VERSION) $(CFLAGS)
++	tools/make-dist.py caps $(VERSION) $(CXXFLAGS)
+ 
+ depend: $(SOURCES) $(HEADERS)
+-	$(CC) -MM $(CFLAGS) $(DEFINES) $(SOURCES) > depend
++	$(CXX) -MM $(CXXFLAGS) $(DEFINES) $(SOURCES) > depend
+ 
+ -include depend
+-- 
+1.9.1
+
diff --git a/package/caps/caps.mk b/package/caps/caps.mk
new file mode 100644
index 0000000..8e8c06c
--- /dev/null
+++ b/package/caps/caps.mk
@@ -0,0 +1,23 @@
+################################################################################
+#
+# caps
+#
+################################################################################
+
+CAPS_VERSION = 0.9.23
+CAPS_SOURCE = caps_$(CAPS_VERSION).tar.bz2
+CAPS_SITE = http://quitte.de/dsp/
+CAPS_LICENSE = GPLv3
+CAPS_LICENSE_FILES = COPYING
+
+define CAPS_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
+		all	-C $(@D)
+endef
+
+define CAPS_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
+		DESTDIR=$(TARGET_DIR) install -C $(@D)
+endef
+
+$(eval $(generic-package))
-- 
1.9.1

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

* [Buildroot] [v2 2/2] alsaequal: new package
  2014-08-06  0:02 [Buildroot] [v2 1/2] caps: new package Martin Bark
@ 2014-08-06  0:02 ` Martin Bark
  2014-08-06 20:14 ` [Buildroot] [v2 1/2] caps: " Thomas Petazzoni
  1 sibling, 0 replies; 5+ messages in thread
From: Martin Bark @ 2014-08-06  0:02 UTC (permalink / raw)
  To: buildroot

Alsaequal is a real-time adjustable equalizer plugin for ALSA. It
can be adjusted using an ALSA compatible mixer, like alsamixergui
or alsamixer.

Alsaequal uses the Eq CAPS LADSPA Plugin as it's default
equalizer.

Signed-off-by: Martin Bark <martin@barkynet.com>
CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

---

Changes v1 -> v2:
  - Add description and Signed-off-by to patch files (Thomas Petazzoni)
  - Fixed use of $(TARGET_CONFIGURE_OPTS) and $(TARGET_MAKE_ENV) (Thomas Petazzoni)Petazzoni)

Signed-off-by: Martin Bark <martin@barkynet.com>
---
 package/Config.in                                  |  1 +
 package/alsaequal/Config.in                        | 18 +++++
 .../alsaequal-01-fix-cross-compilation.patch       | 49 ++++++++++++
 package/alsaequal/alsaequal-02-fix-eq-name.patch   | 86 ++++++++++++++++++++++
 .../alsaequal/alsaequal-03-fix-caps-error.patch    | 37 ++++++++++
 package/alsaequal/alsaequal.mk                     | 24 ++++++
 package/alsaequal/readme.txt                       | 59 +++++++++++++++
 7 files changed, 274 insertions(+)
 create mode 100644 package/alsaequal/Config.in
 create mode 100644 package/alsaequal/alsaequal-01-fix-cross-compilation.patch
 create mode 100644 package/alsaequal/alsaequal-02-fix-eq-name.patch
 create mode 100644 package/alsaequal/alsaequal-03-fix-caps-error.patch
 create mode 100644 package/alsaequal/alsaequal.mk
 create mode 100644 package/alsaequal/readme.txt

diff --git a/package/Config.in b/package/Config.in
index 1a20bee..a84895b 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -523,6 +523,7 @@ endmenu
 menu "Libraries"
 
 menu "Audio/Sound"
+	source "package/alsaequal/Config.in"
 	source "package/alsa-lib/Config.in"
 	source "package/audiofile/Config.in"
 	source "package/caps/Config.in"
diff --git a/package/alsaequal/Config.in b/package/alsaequal/Config.in
new file mode 100644
index 0000000..48bfa2b
--- /dev/null
+++ b/package/alsaequal/Config.in
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_ALSAEQUAL
+	bool "alsaequal"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_TOOLCHAIN_HAS_THREADS # alsa-lib
+	select BR2_PACKAGE_ALSA_LIB
+	select BR2_PACKAGE_CAPS # Runtime dependency
+	help
+	  Alsaequal is a real-time adjustable equalizer plugin for ALSA. It
+	  can be adjusted using an ALSA compatible mixer, like alsamixergui
+	  or alsamixer.
+
+	  Alsaequal uses the Eq CAPS LADSPA Plugin as it's default
+	  equalizer.
+
+	  http://www.thedigitalmachine.net/alsaequal.html
+
+comment "alsaequal needs a toolchain w/ C++, threads"
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/alsaequal/alsaequal-01-fix-cross-compilation.patch b/package/alsaequal/alsaequal-01-fix-cross-compilation.patch
new file mode 100644
index 0000000..eee3aa0
--- /dev/null
+++ b/package/alsaequal/alsaequal-01-fix-cross-compilation.patch
@@ -0,0 +1,49 @@
+From bde241492b2b19015980a5097dbcfa2ef4480033 Mon Sep 17 00:00:00 2001
+From: Martin Bark <martin@barkynet.com>
+Date: Tue, 5 Aug 2014 22:21:59 +0100
+Subject: [PATCH 1/3] Fix cross compilation
+
+Update Makefile to allow setting CC, remove unnecessary flags from CFLAGS
+and LDFLAGS and set LD equal to CC.
+
+Signed-off-by: Martin Bark <martin@barkynet.com>
+---
+ Makefile | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 3b2aa7d..5eb5476 100644
+--- a/Makefile
++++ b/Makefile
+@@ -4,10 +4,10 @@ Q	?= @
+ #Q	?=
+ 
+ # Build Tools
+-CC 	:= gcc
+-CFLAGS := -I. -O2 -Wall -funroll-loops -ffast-math -fPIC -DPIC
+-LD := gcc
+-LDFLAGS := -O2 -Wall -shared -lasound
++CC 	?= gcc
++override CFLAGS += -I. -fPIC -DPIC
++LD := $(CC)
++override LDFLAGS := -shared -lasound
+ 
+ SND_PCM_OBJECTS = pcm_equal.o ladspa_utils.o
+ SND_PCM_LIBS =
+@@ -29,11 +29,11 @@ dep:
+ 
+ $(SND_PCM_BIN): $(SND_PCM_OBJECTS)
+ 	@echo LD $@
+-	$(Q)$(LD) $(LDFLAGS) $(SND_PCM_LIBS) $(SND_PCM_OBJECTS) -o $(SND_PCM_BIN)
++	$(Q)$(CC) $(LDFLAGS) $(SND_PCM_LIBS) $(SND_PCM_OBJECTS) -o $(SND_PCM_BIN)
+ 
+ $(SND_CTL_BIN): $(SND_CTL_OBJECTS)
+ 	@echo LD $@
+-	$(Q)$(LD) $(LDFLAGS) $(SND_CTL_LIBS) $(SND_CTL_OBJECTS) -o $(SND_CTL_BIN)
++	$(Q)$(CC) $(LDFLAGS) $(SND_CTL_LIBS) $(SND_CTL_OBJECTS) -o $(SND_CTL_BIN)
+ 
+ %.o: %.c
+ 	@echo GCC $<
+-- 
+1.9.1
+
diff --git a/package/alsaequal/alsaequal-02-fix-eq-name.patch b/package/alsaequal/alsaequal-02-fix-eq-name.patch
new file mode 100644
index 0000000..bb7cad5
--- /dev/null
+++ b/package/alsaequal/alsaequal-02-fix-eq-name.patch
@@ -0,0 +1,86 @@
+From f8804ccbfd5c7192826fbbb3e55e92bd1b4e112f Mon Sep 17 00:00:00 2001
+From: Martin Bark <martin@barkynet.com>
+Date: Tue, 5 Aug 2014 22:25:38 +0100
+Subject: [PATCH 2/3] Fix eq name
+
+Fix CAPS Eq plugin name. Fix from debian/patches/05_fix-eq-name.patch.
+
+Description: Fix CAPS Eq plugin name
+Origin: vendor
+Bug-Debian: http://bugs.debian.org/721355
+Forwarded: no
+Author: Alessandro Ghedini <ghedo@debian.org>
+Last-Update: 2013-08-30
+
+Signed-off-by: Martin Bark <martin@barkynet.com>
+---
+ README      | 8 ++++----
+ ctl_equal.c | 2 +-
+ pcm_equal.c | 2 +-
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/README b/README
+index b77fd2d..2df3dc5 100644
+--- a/README
++++ b/README
+@@ -1,11 +1,11 @@
+ Alsaequal is a real-time adjustable equalizer plugin for ALSA. It can
+ be adjusted using any ALSA compatible mixer, e.g. alsamixergui.
+ 
+-Alsaequal uses the Eq CAPS LADSPA Plugin for audio processing, actually
++Alsaequal uses the Eq10 CAPS LADSPA Plugin for audio processing, actually
+ alsaequal is a generic LADSPA plugin interface with real-time access to
+ the LADSPA controls (the LADSPA plugin included with alsa doesn't allow
+ for real-time controls) but it was developed for and only tested with
+-Eq CAPS LADSPA plugin. You are welcome to try it with other plugins, it
++Eq10 CAPS LADSPA plugin. You are welcome to try it with other plugins, it
+ may work. Let me know how it goes, you can reach me at
+ <charles@thedigitalmachine.net>.
+ 
+@@ -66,7 +66,7 @@ ctl.<name_equal> {
+ 	library -- location of the LADSPA library, the default is
+ 					"/usr/lib/ladspa/caps.so"
+ 	module -- module name within the LADSPA library, the deafault
+-					is "Eq"
++					is "Eq10"
+ 	channels -- number of channels, the default is 2
+ }
+ 
+@@ -81,7 +81,7 @@ pcm.<name_pcm> {
+ 	library -- location of the LADSPA library, the default is
+ 					"/usr/lib/ladspa/caps.so"
+ 	module -- module name within the LADSPA library, the deafault
+-					is "Eq"
++					is "Eq10"
+ 	channels -- number of channels, the default is 2
+ }
+ 
+diff --git a/ctl_equal.c b/ctl_equal.c
+index 40747d4..afba793 100644
+--- a/ctl_equal.c
++++ b/ctl_equal.c
+@@ -167,7 +167,7 @@ SND_CTL_PLUGIN_DEFINE_FUNC(equal)
+ 	snd_ctl_equal_t *equal;
+ 	const char *controls = ".alsaequal.bin";
+ 	const char *library = "/usr/lib/ladspa/caps.so";
+-	const char *module = "Eq";
++	const char *module = "Eq10";
+ 	long channels = 2;
+ 	const char *sufix = " Playback Volume";
+ 	int err, i, index;
+diff --git a/pcm_equal.c b/pcm_equal.c
+index 2bc87fb..b0b4265 100644
+--- a/pcm_equal.c
++++ b/pcm_equal.c
+@@ -151,7 +151,7 @@ SND_PCM_PLUGIN_DEFINE_FUNC(equal)
+ 	snd_config_t *sconf = NULL;
+ 	const char *controls = ".alsaequal.bin";
+ 	const char *library = "/usr/lib/ladspa/caps.so";
+-	const char *module = "Eq";
++	const char *module = "Eq10";
+ 	long channels = 2;
+ 	int err;
+ 	
+-- 
+1.9.1
+
diff --git a/package/alsaequal/alsaequal-03-fix-caps-error.patch b/package/alsaequal/alsaequal-03-fix-caps-error.patch
new file mode 100644
index 0000000..b27e439
--- /dev/null
+++ b/package/alsaequal/alsaequal-03-fix-caps-error.patch
@@ -0,0 +1,37 @@
+From f773aef9e1275f61577819ffc1ef9b8c8b739ec3 Mon Sep 17 00:00:00 2001
+From: Martin Bark <martin@barkynet.com>
+Date: Tue, 5 Aug 2014 22:28:57 +0100
+Subject: [PATCH 3/3] Fix caps error
+
+Fix a spurious error with newer caps versions. Fix from
+debian/patches/06_fix-caps-error.patch.
+
+Origin: vendor, https://aur.archlinux.org/packages/alsaequal/?comments=all
+Forwarded: no
+Author: Alessandro Ghedini <ghedo@debian.org>
+Last-Update: 2013-08-30
+Applied-Upstream: *** FIXME ***
+
+Signed-off-by: Martin Bark <martin@barkynet.com>
+---
+ ctl_equal.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/ctl_equal.c b/ctl_equal.c
+index afba793..bd0a8ba 100644
+--- a/ctl_equal.c
++++ b/ctl_equal.c
+@@ -263,8 +263,8 @@ SND_CTL_PLUGIN_DEFINE_FUNC(equal)
+ 	for(i = 0; i < equal->num_input_controls; i++) {
+ 		if(equal->control_data->control[i].type == LADSPA_CNTRL_INPUT) {
+ 			index = equal->control_data->control[i].index;
+-			if(equal->klass->PortDescriptors[index] !=
+-					(LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL)) {
++			if((equal->klass->PortDescriptors[index] &
++					(LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL)) == 0) {
+ 				SNDERR("Problem with control file %s, %d.", controls, index);
+ 				return -1;
+ 			}
+-- 
+1.9.1
+
diff --git a/package/alsaequal/alsaequal.mk b/package/alsaequal/alsaequal.mk
new file mode 100644
index 0000000..8180d8e
--- /dev/null
+++ b/package/alsaequal/alsaequal.mk
@@ -0,0 +1,24 @@
+################################################################################
+#
+# alsaequal
+#
+################################################################################
+
+ALSAEQUAL_VERSION = 0.6
+ALSAEQUAL_SOURCE = alsaequal-$(ALSAEQUAL_VERSION).tar.bz2
+ALSAEQUAL_SITE = http://www.thedigitalmachine.net/tools/
+ALSAEQUAL_LICENSE = LGPLv2.1
+ALSAEQUAL_LICENSE_FILES = COPYING
+ALSAEQUAL_DEPENDENCIES = alsa-lib
+
+define ALSAEQUAL_BUILD_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
+		all	-C $(@D)
+endef
+
+define ALSAEQUAL_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
+		DESTDIR=$(TARGET_DIR) install -C $(@D)
+endef
+
+$(eval $(generic-package))
diff --git a/package/alsaequal/readme.txt b/package/alsaequal/readme.txt
new file mode 100644
index 0000000..579706d
--- /dev/null
+++ b/package/alsaequal/readme.txt
@@ -0,0 +1,59 @@
+
+Alsaequal is a real-time adjustable equalizer plugin for ALSA. It
+can be adjusted using an ALSA compatible mixer, like alsamixergui
+or alsamixer.
+
+For example, add the following line to /etc/asound.conf
+
+ctl.equal {
+    type equal;
+}
+
+pcm.plugequal {
+    type equal;
+    slave.pcm "plughw:0,0";
+}
+
+pcm.equal{
+    type plug;
+    slave.pcm plugequal;
+}
+
+you can now adjust the 10 band equaliser using
+
+    alsamixer -D equal
+
+and then play using
+
+    aplay -D equal some_audio.wav
+
+By default alsaequal uses the 10 band equaliser (Eq10) from the alsa
+ladspa plugin caps.  You can bypass alsaequal and directly use caps in
+/etc/asound.conf. This can be useful if you want to fix the equaliser
+settings.
+
+Add the following lines to /etc/asound.conf to add a fixed 10 band
+equaliser setup to attenuate frequencies below 500Hz
+
+pcm.plugequal_fixed {
+    type equal;
+    slave.pcm "plughw:0,0";
+}
+
+pcm.equal_fixed {
+    type ladspa
+    slave.pcm plugequal_fixed;
+    path "/usr/lib/ladspa";
+    plugins [{
+        label Eq10
+        input {
+            # bands (Hz)   31   63   125  250  500  1000 2000 4000 8000 16000
+            controls     [ -48  -48  -48  -48  -48  0    0    0    0    0     ]
+        }
+    }]
+}
+
+
+Further reading:
+    http://alsa.opensrc.org/Ladspa_(plugin)
+    http://quitte.de/dsp/caps.html#Eq10
-- 
1.9.1

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

* [Buildroot] [v2 1/2] caps: new package
  2014-08-06  0:02 [Buildroot] [v2 1/2] caps: new package Martin Bark
  2014-08-06  0:02 ` [Buildroot] [v2 2/2] alsaequal: " Martin Bark
@ 2014-08-06 20:14 ` Thomas Petazzoni
  2014-08-06 21:26   ` Martin Bark
  1 sibling, 1 reply; 5+ messages in thread
From: Thomas Petazzoni @ 2014-08-06 20:14 UTC (permalink / raw)
  To: buildroot

Dear Martin Bark,

On Wed,  6 Aug 2014 01:02:06 +0100, Martin Bark wrote:
> CAPS is a collection of audio plugins comprising virtual guitar
> amplification and a small range of basic classic effects, signal
> processors and generators of often elementary and occasionally
> exotic nature.
> 
> The plugins aim to satisfy the highest demands in sound quality
> with maximal computational efficiency and zero latency.
> 
> Signed-off-by: Martin Bark <martin@barkynet.com>
> CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> 
> ---
> 
> Changes v1 -> v2:
>   - Added dependency to BR2_INSTALL_LIBSTDCPP (Thomas Petazzoni)
>   - Add description and Signed-off-by to patch (Thomas Petazzoni)
>   - Fixed use of $(TARGET_CONFIGURE_OPTS) and $(TARGET_MAKE_ENV) (Thomas Petazzoni)

Thanks for this new version. Review-wise, it looks good, but
unfortunately, it doesn't build here:

/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-g++  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -pipe -Os  -fPIC -DPIC  -o Eq.o -c Eq.cc
In file included from dsp/Oversampler.h:35:0,
                 from Amp.h:35,
                 from Amp.cc:30:
dsp/windows.h: In function ?void DSP::kaiser(sample_t*, int, double, double)?:
dsp/windows.h:165:17: error: there are no arguments to ?finite? that depend on a template parameter, so a declaration of ?finite? must be available [-fpermissive]
dsp/windows.h:165:17: note: (if you use ?-fpermissive?, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
In file included from Eq.h:36:0,
                 from Eq.cc:33:
dsp/v4f_BiQuad.h: In member function ?void DSP::BiQuad4f::set_eq(v4f_t, v4f_t, v4f_t)?:
dsp/v4f_BiQuad.h:145:17: error: ?pow10f? was not declared in this scope
dsp/v4f_BiQuad.h:145:27: error: no matching function for call to ?v4f_map(v4f_t&)?
dsp/v4f_BiQuad.h:145:27: note: candidate is:
In file included from Eq.h:35:0,
                 from Eq.cc:33:
dsp/v4f.h:74:7: note: template<float (* fn)(float)> v4f_t v4f_map(v4f_t)
dsp/v4f.h:74:7: note:   template argument deduction/substitution failed:
In file included from Eq.h:36:0,
                 from Eq.cc:33:
dsp/v4f_BiQuad.h:145:27: error: template argument 1 is invalid
In file included from Compress.h:36:0,
                 from Compress.cc:28:
dsp/windows.h: In function ?void DSP::kaiser(sample_t*, int, double, double)?:
dsp/windows.h:165:17: error: there are no arguments to ?finite? that depend on a template parameter, so a declaration of ?finite? must be available [-fpermissive]dsp/v4f_BiQuad.h: In member function ?void DSP::BiQuad4fBank<N>::set_eq(v4f_t*, v4f_t*, v4f_t*)?:
dsp/v4f_BiQuad.h:432:18: error: ?pow10f? was not declared in this scope

dsp/windows.h:165:17: note: (if you use ?-fpermissive?, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
dsp/windows.h: In instantiation of ?void DSP::kaiser(sample_t*, int, double, double) [with void (* F)(sample_t&, sample_t) = DSP::apply_window; sample_t = float]?:
dsp/Oversampler.h:73:5:   required from ?void DSP::Oversampler<Oversample, FIRSize>::init(float) [with int Oversample = 2; int FIRSize = 32]?
dsp/Oversampler.h:65:6:   required from ?DSP::Oversampler<Oversample, FIRSize>::Oversampler() [with int Oversample = 2; int FIRSize = 32]?
Amp.h:44:7:   required from ?static void* Descriptor<T>::_instantiate(const _LADSPA_Descriptor*, ulong) [with T = AmpVTS; LADSPA_Handle = void*; _LADSPA_Descriptor = _LADSPA_Descriptor; ulong = long unsigned int]?
Descriptor.h:123:5:   required from ?void Descriptor<T>::autogen() [with T = AmpVTS]?
Amp.cc:222:2:   required from here
dsp/windows.h:165:3: error: ?finite? was not declared in this scope
dsp/windows.h: In instantiation of ?void DSP::kaiser(sample_t*, int, double, double) [with void (* F)(sample_t&, sample_t) = DSP::apply_window; sample_t = float]?:
Compress.h:53:5:   required from ?void CompSaturate<Over, FIRSize>::init(double) [with int Over = 2; int FIRSize = 32]?
Compress.h:123:6:   required from ?void CompressStub<Channels>::init() [with int Channels = 1]?
Descriptor.h:150:5:   required from ?static void* Descriptor<T>::_instantiate(const _LADSPA_Descriptor*, ulong) [with T = Compress; LADSPA_Handle = void*; _LADSPA_Descriptor = _LADSPA_Descriptor; ulong = long unsigned int]?
Descriptor.h:123:5:   required from ?void Descriptor<T>::autogen() [with T = Compress]?
Compress.cc:157:2:   required from here
dsp/windows.h:165:3: error: ?finite? was not declared in this scope
make[1]: *** [Eq.o] Erreur 1
make[1]: *** Attente des t?ches non termin?es....
make[1]: *** [Amp.o] Erreur 1
In file included from dsp/Oversampler.h:35:0,
                 from Cabinet.h:42,
                 from Click.cc:158:
dsp/windows.h: In function ?void DSP::kaiser(sample_t*, int, double, double)?:
dsp/windows.h:165:17: error: there are no arguments to ?finite? that depend on a template parameter, so a declaration of ?finite? must be available [-fpermissive]
dsp/windows.h:165:17: note: (if you use ?-fpermissive?, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
In file included from Cabinet.h:45:0,
                 from Click.cc:158:
dsp/v4f_BiQuad.h: In member function ?void DSP::BiQuad4f::set_eq(v4f_t, v4f_t, v4f_t)?:
dsp/v4f_BiQuad.h:145:17: error: ?pow10f? was not declared in this scope
dsp/v4f_BiQuad.h:145:27: error: no matching function for call to ?v4f_map(v4f_t&)?
dsp/v4f_BiQuad.h:145:27: note: candidate is:
In file included from Cabinet.h:43:0,
                 from Click.cc:158:
dsp/v4f.h:74:7: note: template<float (* fn)(float)> v4f_t v4f_map(v4f_t)
dsp/v4f.h:74:7: note:   template argument deduction/substitution failed:
In file included from Cabinet.h:45:0,
                 from Click.cc:158:
dsp/v4f_BiQuad.h:145:27: error: template argument 1 is invalid
dsp/v4f_BiQuad.h: In member function ?void DSP::BiQuad4fBank<N>::set_eq(v4f_t*, v4f_t*, v4f_t*)?:
dsp/v4f_BiQuad.h:432:18: error: ?pow10f? was not declared in this scope
make[1]: *** [Compress.o] Erreur 1
In file included from dsp/Oversampler.h:35:0,
                 from Cabinet.h:42,
                 from Cabinet.cc:29:
dsp/windows.h: In function ?void DSP::kaiser(sample_t*, int, double, double)?:
dsp/windows.h:165:17: error: there are no arguments to ?finite? that depend on a template parameter, so a declaration of ?finite? must be available [-fpermissive]
dsp/windows.h:165:17: note: (if you use ?-fpermissive?, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
In file included from Cabinet.h:45:0,
                 from Cabinet.cc:29:
dsp/v4f_BiQuad.h: In member function ?void DSP::BiQuad4f::set_eq(v4f_t, v4f_t, v4f_t)?:
dsp/v4f_BiQuad.h:145:17: error: ?pow10f? was not declared in this scope
dsp/v4f_BiQuad.h:145:27: error: no matching function for call to ?v4f_map(v4f_t&)?
dsp/v4f_BiQuad.h:145:27: note: candidate is:
In file included from Cabinet.h:43:0,
                 from Cabinet.cc:29:
dsp/v4f.h:74:7: note: template<float (* fn)(float)> v4f_t v4f_map(v4f_t)
dsp/v4f.h:74:7: note:   template argument deduction/substitution failed:
In file included from Cabinet.h:45:0,
                 from Cabinet.cc:29:
dsp/v4f_BiQuad.h:145:27: error: template argument 1 is invalid
dsp/v4f_BiQuad.h: In member function ?void DSP::BiQuad4fBank<N>::set_eq(v4f_t*, v4f_t*, v4f_t*)?:
dsp/v4f_BiQuad.h:432:18: error: ?pow10f? was not declared in this scope
make[1]: *** [Click.o] Erreur 1
In file included from dsp/Oversampler.h:35:0,
                 from Cabinet.h:42,
                 from Cabinet.cc:29:
dsp/windows.h: In instantiation of ?void DSP::kaiser(sample_t*, int, double, double) [with void (* F)(sample_t&, sample_t) = DSP::apply_window; sample_t = float]?:
dsp/Oversampler.h:73:5:   required from ?void DSP::Oversampler<Oversample, FIRSize>::init(float) [with int Oversample = 4; int FIRSize = 64]?
Cabinet.cc:251:31:   required from here
dsp/windows.h:165:3: error: ?finite? was not declared in this scope
make[1]: *** [Cabinet.o] Erreur 1
make[1]: quittant le r?pertoire ? /home/thomas/projets/buildroot/output/build/caps-0.9.23 ?
make: *** [/home/thomas/projets/buildroot/output/build/caps-0.9.23/.stamp_built] Erreur 2

You can use this defconfig to reproduce the problem:

BR2_arm=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2014.05-rc1.tar.bz2"
BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_14=y
BR2_TOOLCHAIN_EXTERNAL_LARGEFILE=y
BR2_TOOLCHAIN_EXTERNAL_INET_IPV6=y
BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
BR2_TOOLCHAIN_EXTERNAL_INET_RPC=y
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_INIT_NONE=y
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_CAPS=y
# BR2_TARGET_ROOTFS_TAR is not set

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [Buildroot] [v2 1/2] caps: new package
  2014-08-06 20:14 ` [Buildroot] [v2 1/2] caps: " Thomas Petazzoni
@ 2014-08-06 21:26   ` Martin Bark
  2015-01-02 18:23     ` Thomas Petazzoni
  0 siblings, 1 reply; 5+ messages in thread
From: Martin Bark @ 2014-08-06 21:26 UTC (permalink / raw)
  To: buildroot

Thomas,

On 06/08/14 21:14, Thomas Petazzoni wrote:
> Dear Martin Bark,
>
> On Wed,  6 Aug 2014 01:02:06 +0100, Martin Bark wrote:
>> CAPS is a collection of audio plugins comprising virtual guitar
>> amplification and a small range of basic classic effects, signal
>> processors and generators of often elementary and occasionally
>> exotic nature.
>>
>> The plugins aim to satisfy the highest demands in sound quality
>> with maximal computational efficiency and zero latency.
>>
>> Signed-off-by: Martin Bark <martin@barkynet.com>
>> CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
>>
>> ---
>>
>> Changes v1 -> v2:
>>    - Added dependency to BR2_INSTALL_LIBSTDCPP (Thomas Petazzoni)
>>    - Add description and Signed-off-by to patch (Thomas Petazzoni)
>>    - Fixed use of $(TARGET_CONFIGURE_OPTS) and $(TARGET_MAKE_ENV) (Thomas Petazzoni)
>
> Thanks for this new version. Review-wise, it looks good, but
> unfortunately, it doesn't build here:
>
> /home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-g++  -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -pipe -Os  -fPIC -DPIC  -o Eq.o -c Eq.cc
> In file included from dsp/Oversampler.h:35:0,
>                   from Amp.h:35,
>                   from Amp.cc:30:
> dsp/windows.h: In function ?void DSP::kaiser(sample_t*, int, double, double)?:
> dsp/windows.h:165:17: error: there are no arguments to ?finite? that depend on a template parameter, so a declaration of ?finite? must be available [-fpermissive]
> dsp/windows.h:165:17: note: (if you use ?-fpermissive?, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
> In file included from Eq.h:36:0,
>                   from Eq.cc:33:
> dsp/v4f_BiQuad.h: In member function ?void DSP::BiQuad4f::set_eq(v4f_t, v4f_t, v4f_t)?:
> dsp/v4f_BiQuad.h:145:17: error: ?pow10f? was not declared in this scope
> dsp/v4f_BiQuad.h:145:27: error: no matching function for call to ?v4f_map(v4f_t&)?
> dsp/v4f_BiQuad.h:145:27: note: candidate is:
> In file included from Eq.h:35:0,
>                   from Eq.cc:33:
> dsp/v4f.h:74:7: note: template<float (* fn)(float)> v4f_t v4f_map(v4f_t)
> dsp/v4f.h:74:7: note:   template argument deduction/substitution failed:
> In file included from Eq.h:36:0,
>                   from Eq.cc:33:
> dsp/v4f_BiQuad.h:145:27: error: template argument 1 is invalid
> In file included from Compress.h:36:0,
>                   from Compress.cc:28:
> dsp/windows.h: In function ?void DSP::kaiser(sample_t*, int, double, double)?:
> dsp/windows.h:165:17: error: there are no arguments to ?finite? that depend on a template parameter, so a declaration of ?finite? must be available [-fpermissive]dsp/v4f_BiQuad.h: In member function ?void DSP::BiQuad4fBank<N>::set_eq(v4f_t*, v4f_t*, v4f_t*)?:
> dsp/v4f_BiQuad.h:432:18: error: ?pow10f? was not declared in this scope
>
> dsp/windows.h:165:17: note: (if you use ?-fpermissive?, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
> dsp/windows.h: In instantiation of ?void DSP::kaiser(sample_t*, int, double, double) [with void (* F)(sample_t&, sample_t) = DSP::apply_window; sample_t = float]?:
> dsp/Oversampler.h:73:5:   required from ?void DSP::Oversampler<Oversample, FIRSize>::init(float) [with int Oversample = 2; int FIRSize = 32]?
> dsp/Oversampler.h:65:6:   required from ?DSP::Oversampler<Oversample, FIRSize>::Oversampler() [with int Oversample = 2; int FIRSize = 32]?
> Amp.h:44:7:   required from ?static void* Descriptor<T>::_instantiate(const _LADSPA_Descriptor*, ulong) [with T = AmpVTS; LADSPA_Handle = void*; _LADSPA_Descriptor = _LADSPA_Descriptor; ulong = long unsigned int]?
> Descriptor.h:123:5:   required from ?void Descriptor<T>::autogen() [with T = AmpVTS]?
> Amp.cc:222:2:   required from here
> dsp/windows.h:165:3: error: ?finite? was not declared in this scope
> dsp/windows.h: In instantiation of ?void DSP::kaiser(sample_t*, int, double, double) [with void (* F)(sample_t&, sample_t) = DSP::apply_window; sample_t = float]?:
> Compress.h:53:5:   required from ?void CompSaturate<Over, FIRSize>::init(double) [with int Over = 2; int FIRSize = 32]?
> Compress.h:123:6:   required from ?void CompressStub<Channels>::init() [with int Channels = 1]?
> Descriptor.h:150:5:   required from ?static void* Descriptor<T>::_instantiate(const _LADSPA_Descriptor*, ulong) [with T = Compress; LADSPA_Handle = void*; _LADSPA_Descriptor = _LADSPA_Descriptor; ulong = long unsigned int]?
> Descriptor.h:123:5:   required from ?void Descriptor<T>::autogen() [with T = Compress]?
> Compress.cc:157:2:   required from here
> dsp/windows.h:165:3: error: ?finite? was not declared in this scope
> make[1]: *** [Eq.o] Erreur 1
> make[1]: *** Attente des t?ches non termin?es....
> make[1]: *** [Amp.o] Erreur 1
> In file included from dsp/Oversampler.h:35:0,
>                   from Cabinet.h:42,
>                   from Click.cc:158:
> dsp/windows.h: In function ?void DSP::kaiser(sample_t*, int, double, double)?:
> dsp/windows.h:165:17: error: there are no arguments to ?finite? that depend on a template parameter, so a declaration of ?finite? must be available [-fpermissive]
> dsp/windows.h:165:17: note: (if you use ?-fpermissive?, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
> In file included from Cabinet.h:45:0,
>                   from Click.cc:158:
> dsp/v4f_BiQuad.h: In member function ?void DSP::BiQuad4f::set_eq(v4f_t, v4f_t, v4f_t)?:
> dsp/v4f_BiQuad.h:145:17: error: ?pow10f? was not declared in this scope
> dsp/v4f_BiQuad.h:145:27: error: no matching function for call to ?v4f_map(v4f_t&)?
> dsp/v4f_BiQuad.h:145:27: note: candidate is:
> In file included from Cabinet.h:43:0,
>                   from Click.cc:158:
> dsp/v4f.h:74:7: note: template<float (* fn)(float)> v4f_t v4f_map(v4f_t)
> dsp/v4f.h:74:7: note:   template argument deduction/substitution failed:
> In file included from Cabinet.h:45:0,
>                   from Click.cc:158:
> dsp/v4f_BiQuad.h:145:27: error: template argument 1 is invalid
> dsp/v4f_BiQuad.h: In member function ?void DSP::BiQuad4fBank<N>::set_eq(v4f_t*, v4f_t*, v4f_t*)?:
> dsp/v4f_BiQuad.h:432:18: error: ?pow10f? was not declared in this scope
> make[1]: *** [Compress.o] Erreur 1
> In file included from dsp/Oversampler.h:35:0,
>                   from Cabinet.h:42,
>                   from Cabinet.cc:29:
> dsp/windows.h: In function ?void DSP::kaiser(sample_t*, int, double, double)?:
> dsp/windows.h:165:17: error: there are no arguments to ?finite? that depend on a template parameter, so a declaration of ?finite? must be available [-fpermissive]
> dsp/windows.h:165:17: note: (if you use ?-fpermissive?, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
> In file included from Cabinet.h:45:0,
>                   from Cabinet.cc:29:
> dsp/v4f_BiQuad.h: In member function ?void DSP::BiQuad4f::set_eq(v4f_t, v4f_t, v4f_t)?:
> dsp/v4f_BiQuad.h:145:17: error: ?pow10f? was not declared in this scope
> dsp/v4f_BiQuad.h:145:27: error: no matching function for call to ?v4f_map(v4f_t&)?
> dsp/v4f_BiQuad.h:145:27: note: candidate is:
> In file included from Cabinet.h:43:0,
>                   from Cabinet.cc:29:
> dsp/v4f.h:74:7: note: template<float (* fn)(float)> v4f_t v4f_map(v4f_t)
> dsp/v4f.h:74:7: note:   template argument deduction/substitution failed:
> In file included from Cabinet.h:45:0,
>                   from Cabinet.cc:29:
> dsp/v4f_BiQuad.h:145:27: error: template argument 1 is invalid
> dsp/v4f_BiQuad.h: In member function ?void DSP::BiQuad4fBank<N>::set_eq(v4f_t*, v4f_t*, v4f_t*)?:
> dsp/v4f_BiQuad.h:432:18: error: ?pow10f? was not declared in this scope
> make[1]: *** [Click.o] Erreur 1
> In file included from dsp/Oversampler.h:35:0,
>                   from Cabinet.h:42,
>                   from Cabinet.cc:29:
> dsp/windows.h: In instantiation of ?void DSP::kaiser(sample_t*, int, double, double) [with void (* F)(sample_t&, sample_t) = DSP::apply_window; sample_t = float]?:
> dsp/Oversampler.h:73:5:   required from ?void DSP::Oversampler<Oversample, FIRSize>::init(float) [with int Oversample = 4; int FIRSize = 64]?
> Cabinet.cc:251:31:   required from here
> dsp/windows.h:165:3: error: ?finite? was not declared in this scope
> make[1]: *** [Cabinet.o] Erreur 1
> make[1]: quittant le r?pertoire ? /home/thomas/projets/buildroot/output/build/caps-0.9.23 ?
> make: *** [/home/thomas/projets/buildroot/output/build/caps-0.9.23/.stamp_built] Erreur 2
>
> You can use this defconfig to reproduce the problem:
>
> BR2_arm=y
> BR2_TOOLCHAIN_EXTERNAL=y
> BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
> BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
> BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2014.05-rc1.tar.bz2"
> BR2_TOOLCHAIN_EXTERNAL_HEADERS_3_14=y
> BR2_TOOLCHAIN_EXTERNAL_LARGEFILE=y
> BR2_TOOLCHAIN_EXTERNAL_INET_IPV6=y
> BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
> # BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
> BR2_TOOLCHAIN_EXTERNAL_INET_RPC=y
> BR2_TOOLCHAIN_EXTERNAL_CXX=y
> BR2_INIT_NONE=y
> # BR2_PACKAGE_BUSYBOX is not set
> BR2_PACKAGE_CAPS=y
> # BR2_TARGET_ROOTFS_TAR is not set
>
> Thanks,
>
> Thomas
>

Thanks for running the test.  After a quick looks it seems the finite() 
and pow10f() functions are the issue.  I tried a quick change to use 
isfinite() and powf(10,x) instead and that builds.

I'm off on holiday now for a week so I?ll create an updated patch when i 
get back.

Thanks

Martin

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

* [Buildroot] [v2 1/2] caps: new package
  2014-08-06 21:26   ` Martin Bark
@ 2015-01-02 18:23     ` Thomas Petazzoni
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2015-01-02 18:23 UTC (permalink / raw)
  To: buildroot

Dear Martin Bark,

On Wed, 06 Aug 2014 22:26:22 +0100, Martin Bark wrote:

> Thanks for running the test.  After a quick looks it seems the finite() 
> and pow10f() functions are the issue.  I tried a quick change to use 
> isfinite() and powf(10,x) instead and that builds.
> 
> I'm off on holiday now for a week so I?ll create an updated patch when i 
> get back.

Any news about this?

Since you did not send updated versions of this patch, I'll mark this
patch, and the following one add alsaequal as "Changes Requested" in
patchwork. Therefore, if you would like to see those patches merged in
Buildroot, could you resend an updated versions that fixes the build
issues that I reported back in August?

Thanks,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

end of thread, other threads:[~2015-01-02 18:23 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-06  0:02 [Buildroot] [v2 1/2] caps: new package Martin Bark
2014-08-06  0:02 ` [Buildroot] [v2 2/2] alsaequal: " Martin Bark
2014-08-06 20:14 ` [Buildroot] [v2 1/2] caps: " Thomas Petazzoni
2014-08-06 21:26   ` Martin Bark
2015-01-02 18:23     ` Thomas Petazzoni

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.