Skip to contentSkip to conversation

alsa-tools: fix build when x11 and gtk+ not available

PATCH In review Rogerio Nunes 5 participants 7 messages Apr 3, 2013 – Apr 8, 2013

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 alsa-tools: fix build when x11 and gtk+ not available

Current verion of gtk+ (2.15.24) does not accept pure framebuffer as backend and some alsa-tools sub-modules depend on gtk+.

This patch removes those sub-modules from the build only when x11 is not set in DISTRO_FEATURES.

---
 .../alsa/alsa-tools/makefile_no_gtk.patch          |   21 ++++++++++++++++++++
 .../recipes-multimedia/alsa/alsa-tools_1.0.26.1.bb |    8 ++++++--
 2 files changed, 27 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch
meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch new file +21 -0
new file mode 100644
index 0000000..51f934d
@@ -0,0 +1,21 @@
+Remove some sub-components which need gtk+.
+
+Signed-off-by: Rogerio Nunes <[email protected]>
+
+Upstream-Status: Inappropriate [configuration]
+
+diff --git a/Makefile b/Makefile
+--- a/Makefile
++++ b/Makefile
+@@ -1,8 +1,8 @@
+ VERSION = 1.0.26.1
+ TOP = .
+-SUBDIRS = ac3dec as10k1 envy24control \
+-	  mixartloader pcxhrloader rmedigicontrol sb16_csp seq sscape_ctl \
+-	  us428control usx2yloader vxloader echomixer \
++SUBDIRS = ac3dec as10k1 \
++	  mixartloader pcxhrloader sb16_csp seq sscape_ctl \
++	  us428control usx2yloader vxloader \
+ 	  hwmixvolume hda-verb
+ 
+ all:
meta/recipes-multimedia/alsa/alsa-tools_1.0.26.1.bb +6 -2
index 2b46aaf..81ad55a 100644
@@ -5,14 +5,15 @@ SECTION = "console/utils"
 LICENSE = "GPLv2 & LGPLv2+"
 DEPENDS = "alsa-lib ncurses"
 
-PR = "r0"
+PR = "r1"
 
 LIC_FILES_CHKSUM = "file://hdsploader/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
                     file://ld10k1/COPYING.LIB;md5=7fbc338309ac38fefcd64b04bb903e34"
 
 SRC_URI = "ftp://ftp.alsa-project.org/pub/tools/alsa-tools-${PV}.tar.bz2 \
            file://mips_has_no_io_h.patch \
-           file://autotools.patch"
+           file://autotools.patch \
+           ${@base_contains('DISTRO_FEATURES', 'x11', '', 'file://makefile_no_gtk.patch', d)}"
 
 SRC_URI[md5sum] = "805526ea5d6c40e1f2c94cee86141230"
 SRC_URI[sha256sum] = "553338693707fe6ddfc430b9edc4cd2677390e200c9e38de82ede3394e733841"
@@ -21,6 +22,9 @@ inherit autotools
 
 EXTRA_OEMAKE += "GITCOMPILE_ARGS='--host=${HOST_SYS} --build=${BUILD_SYS} --target=${TARGET_SYS} --with-libtool-sysroot=${STAGING_DIR_HOST} --prefix=${prefix}' ACLOCAL_FLAGS='-I ${STAGING_DATADIR}/aclocal'"
 
+PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'gtk+', '', d)}"
+PACKAGECONFIG[gtk+] = ",,gtk+,"
+
 do_compile_prepend () {
     #Automake dir is not correctly detected in cross compilation case
     export AUTOMAKE_DIR=${STAGING_DATADIR_NATIVE}/$(ls ${STAGING_DATADIR_NATIVE} | grep automake)
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH 2/2 gst-plugins-bad: disable librsvg when x11 is disabled

librsvg depends on gtk+, which in turn does not support framebuffer as backend in current version (2.15.24). This patch disables librsvg when x11 is not in the distro.

---
 .../gstreamer/gst-plugins-bad_0.10.23.bb           |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.23.bb +5 -2
index 9039f97..eb289c7 100644
@@ -6,9 +6,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
                     file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \
                     file://gst/tta/crc32.h;beginline=12;endline=29;md5=71a904d99ce7ae0c1cf129891b98145c"
 
-DEPENDS += "gst-plugins-base tremor librsvg curl"
+DEPENDS += "gst-plugins-base tremor curl"
 
-PR = "r3"
+PR = "r4"
 
 inherit gettext
 
@@ -16,6 +16,9 @@ EXTRA_OECONF += "--disable-examples --disable-experimental --disable-sdl --disab
                  --with-plugins=wavpack,ivorbis,mpegvideoparse --disable-vdpau --disable-apexsink \
                  --disable-orc"
 
+PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'librsvg', '', d)}"
+PACKAGECONFIG[librsvg] = "--enable-librsvg,--disable-librsvg,librsvg,"
+
 ARM_INSTRUCTION_SET = "arm"
 
 do_configure_prepend() {
Signature · 1 line
1.7.9.5
#2 lore raw

Re: [PATCH 2/2] gst-plugins-bad: disable librsvg when x11 is disabled

Quoted 3 lines · Rogerio Nunes

librsvg depends on gtk+, which in turn does not support framebuffer as backend in current version (2.15.24). This patch disables librsvg when x11 is not in the distro.

One of my plans is to make every optional dependency a packageconfig option in the long term, so feel free to do the rest whilst you're there! :)

Ross

#3 lore raw

Re: [PATCH 2/2] gst-plugins-bad: disable librsvg when x11 is disabled

Quoted 8 lines · Ross
Quoted 3 lines · Rogerio Nunes

librsvg depends on gtk+, which in turn does not support framebuffer as backend in current version (2.15.24). This patch disables librsvg when x11 is not in the distro.

One of my plans is to make every optional dependency a packageconfig option in the long term, so feel free to do the rest whilst you're there! :)

I agree with the longterm goal but let's not hold this until the goal is accomplished. This fixes a real issue and delay it won't help.

--
Otavio Salvador O.S. Systems
E-mail: [email protected] http://www.ossystems.com.br
Mobile: +55 53 9981-7854 http://projetos.ossystems.com.br

#4 lore raw

Re: [PATCH 2/2] gst-plugins-bad: disable librsvg when x11 is disabled

Quoted 7 lines · Otavio Salvador
Quoted 5 lines · Ross
Quoted 3 lines · Rogerio Nunes

librsvg depends on gtk+, which in turn does not support framebuffer as backend in current version (2.15.24). This patch disables librsvg when x11 is not in the distro.

Quoted 6 lines
Quoted 3 lines

One of my plans is to make every optional dependency a packageconfig option in the long term, so feel free to do the rest whilst you're there! :)

I agree with the longterm goal but let's not hold this until the goal is accomplished. This fixes a real issue and delay it won't help.

I agree with both. This is a real issue and I like the long term plan. Hope I can help to execute it :)

#5 lore raw
In reply to Rogerio Nunes

With a rather recent HEAD

Build Configuration:

BB_VERSION        = "1.17.1"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "openSUSE-project-12.3"
TARGET_SYS        = "x86_64-poky-linux"
MACHINE           = "qemux86-64"
DISTRO            = "poky"
DISTRO_VERSION    = "1.3+snapshot-20130407"
TUNE_FEATURES     = "m64"
TARGET_FPU        = ""

meta
meta-yocto
meta-yocto-bsp = "master:813127247a1100b1abe179dfba25795560eac864"

I am able to successfully perform a "bitbake world" on a number of different targets:

- qemux86
- qemuarm
- qemumips
- qemux86-64

Unfortunately qemuppc fails when building alsa-tools. Is anyone else seeing the same thing?

| make[1]: Entering directory /home/trevor/build/yocto/fullbuild/qemuppc/work/ppc603e-poky-linux/alsa-tools/1.0.26.1-r1/alsa-tools-1.0.26.1/hda-verb' | make[1]: warning: jobserver unavailable: using -j1. Add +' to parent
make rule.
| powerpc-poky-linux-gcc -m32 -mhard-float -mcpu=603e --sysroot=/home/trevor/build/yocto/fullbuild/qemuppc/sysroots/qemuppc
-DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
-DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\"
-DPACKAGE=\"hda-verb\" -DVERSION=\"0.4\" -DSTDC_HEADERS=1 -I. -O2 -Wall
-pipe -g -MT hda-verb.o -MD -MP -MF .deps/hda-verb.Tpo -c -o hda-verb.o
hda-verb.c

| hda-verb.c:17:20: fatal error: sys/io.h: No such file or directory
| compilation terminated.
| make[1]: *** [hda-verb.o] Error 1
| make[1]: Leaving directory

`/home/trevor/build/yocto/fullbuild/qemuppc/work/ppc603e-poky-linux/alsa-tools/1.0.26.1-r1/alsa-tools-1.0.26.1/hda-verb' | make: *** [all] Error 1
| ERROR: oe_runmake failed

#6 lore raw
Quoted 38 lines · Trevor Woerner

With a rather recent HEAD

Build Configuration:

BB_VERSION        = "1.17.1"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "openSUSE-project-12.3"
TARGET_SYS        = "x86_64-poky-linux"
MACHINE           = "qemux86-64"
DISTRO            = "poky"
DISTRO_VERSION    = "1.3+snapshot-20130407"
TUNE_FEATURES     = "m64"
TARGET_FPU        = ""

meta
meta-yocto
meta-yocto-bsp = "master:813127247a1100b1abe179dfba25795560eac864"

I am able to successfully perform a "bitbake world" on a number of different targets:

- qemux86
- qemuarm
- qemumips
- qemux86-64

Unfortunately qemuppcfails when building alsa-tools. Is anyone else seeing the same thing?

| make[1]: Entering directory /home/trevor/build/yocto/fullbuild/qemuppc/work/ppc603e-poky-linux/alsa-tools/1.0.26.1-r1/alsa-tools-1.0.26.1/hda-verb' | make[1]: warning: jobserver unavailable: using -j1. Add +' to parent
make rule.
| powerpc-poky-linux-gcc -m32 -mhard-float -mcpu=603e --sysroot=/home/trevor/build/yocto/fullbuild/qemuppc/sysroots/qemuppc

(quoted diff) +0 -4
-DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\"
-DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\"
-DPACKAGE=\"hda-verb\" -DVERSION=\"0.4\" -DSTDC_HEADERS=1 -I.     -O2
-Wall -pipe -g -MT hda-verb.o -MD -MP -MF .deps/hda-verb.Tpo -c -o

hda-verb.o hda-verb.c

Quoted 7 lines
| hda-verb.c:17:20: fatal error: sys/io.h: No such file or directory
| compilation terminated.
| make[1]: *** [hda-verb.o] Error 1
| make[1]: Leaving directory

`/home/trevor/build/yocto/fullbuild/qemuppc/work/ppc603e-poky-linux/alsa-tools/1.0.26.1-r1/alsa-tools-1.0.26.1/hda-verb' | make: *** [all] Error 1
| ERROR: oe_runmake failed

I recall doing a patch for this, I just reviewed it and it seems I did not do the right #if directive.

I was fixing the mips build which had the same problem and did not correctly retest.

Patch out shortly.

Sau!