Skip to contentSkip to conversation

speex, speexdsp: 1.2rc1 -> 1.2rc2/1.2rc3

PATCH Superseded Tanu Kaskinen 4 participants 12 messages Jul 6, 2015 – Jul 22, 2015

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

cover speex, speexdsp: 1.2rc1 -> 1.2rc2/1.2rc3

These patches update speex to 1.2rc2 and speexdsp to 1.2rc3. speexdsp was previously included in speex, but now it's in a separate source tree, so a new recipe is needed.

The following changes since commit dd09fab685de2eaf04aa5ab60f8220b89c1deae9:

tune-core2.inc: set X86ARCH32 to i686 (instead of i586) (2015-07-02 23:08:27 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib tanuk/speex
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=tanuk/speex

Tanu Kaskinen (3):
speexdsp: initial recipe
speex: 1.2rc1 -> 1.2rc2
alsa-plugins, pulseaudio: depend on speexdsp, not speex

 .../recipes-multimedia/alsa/alsa-plugins_1.0.29.bb |  4 +-
 meta/recipes-multimedia/pulseaudio/pulseaudio.inc  |  2 +-
 meta/recipes-multimedia/speex/speex-fpu.inc        |  4 --
 .../speex/{speex_1.2rc1.bb => speex_1.2rc2.bb}     | 18 +++----
 ...ely-on-HAVE_STDINT_H-et-al.-being-defined.patch | 63 ++++++++++++++++++++++
 meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb   | 39 ++++++++++++++
 6 files changed, 112 insertions(+), 18 deletions(-)
 delete mode 100644 meta/recipes-multimedia/speex/speex-fpu.inc
 rename meta/recipes-multimedia/speex/{speex_1.2rc1.bb => speex_1.2rc2.bb} (51%)
 create mode 100644 meta/recipes-multimedia/speex/speexdsp/0001-Don-t-rely-on-HAVE_STDINT_H-et-al.-being-defined.patch
 create mode 100644 meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb
Signature · 1 line
1.9.3
#1 lore raw

PATCH 1/3 speexdsp: initial recipe

speexdsp was split off from speex in 1.2rc2, so we need a separate recipe for speexdsp when before we can upgrade speex.

The speex recipe has so far used the --enable-fixed-point configure option unconditionally, but I believe that was a mistake, so I dropped that. The option is still enabled if TARGET_FPU is set to "soft". Commit e8f707f16a38d85535593a32efff6dcbf4ddb203 added the TARGET_FPU check, and I think that commit should have removed --enable-fixed-point from the static configure options, like it removed --disable-float-api.

The NEON code caused a build failure on qemuarm64. As a workaround, I disabled NEON optimizations when building for aarch64.

I added a patch that fixes a build failure in alsa-plugins. Compiling alsa-plugins against the new speexdsp version without the patch resulted in this error:

In file included from .../usr/include/speex/speexdsp_types.h:122:0,

                 from .../usr/include/speex/speex_preprocess.h:46,
                 from .../alsa-plugins-1.0.29/speex/pcm_speex.c:23:

.../usr/include/speex/speexdsp_config_types.h:13:9: error: unknown type name 'uint16_t'

 typedef uint16_t spx_uint16_t;
         ^
---
 ...ely-on-HAVE_STDINT_H-et-al.-being-defined.patch | 63 ++++++++++++++++++++++
 meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb   | 39 ++++++++++++++
 2 files changed, 102 insertions(+)
 create mode 100644 meta/recipes-multimedia/speex/speexdsp/0001-Don-t-rely-on-HAVE_STDINT_H-et-al.-being-defined.patch
 create mode 100644 meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb
meta/recipes-multimedia/speex/speexdsp/0001-Don-t-rely-on-HAVE_STDINT_H-et-al.-being-defined.patch new file +63 -0
new file mode 100644
index 0000000..c7067da
@@ -0,0 +1,63 @@
+From c73370ceafd138becee8ca3c688ba75756830bfe Mon Sep 17 00:00:00 2001
+From: Tanu Kaskinen <[email protected]>
+Date: Sun, 5 Jul 2015 17:48:16 +0300
+Subject: [PATCH] Don't rely on HAVE_STDINT_H et al. being defined
+
+Not everyone who includes speexdsp_config_types.h will have a test
+which defines those, and if we've chosen to use the stdint types at
+configure time then we know exactly which header(s) are available, so
+just choose the best one then and generate the header to use it.
+
+This patch, including the above text, is copied from a commit in the
+speex repository[1]. The original commit for speex was made by Ron
+<[email protected]>.
+
+[1] https://git.xiph.org/?p=speex.git;a=commitdiff;h=774c87d6cb7dd8dabdd17677fc6da753ecf4aa87
+
+Upstream-Status: Backport
+
+Signed-off-by: Tanu Kaskinen <[email protected]>
+---
+ configure.ac                             | 6 ++++++
+ include/speex/speexdsp_config_types.h.in | 8 +-------
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 2cd2d1e..1de0c23 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -334,6 +334,12 @@ AC_SUBST([USIZE16])
+ AC_SUBST([SIZE32])
+ AC_SUBST([USIZE32])
+ 
++AS_IF([test "$ac_cv_header_stdint_h" = "yes"],    [INCLUDE_STDINT="#include <stdint.h>"],
++      [test "$ac_cv_header_inttypes_h" = "yes"],  [INCLUDE_STDINT="#include <inttypes.h>"],
++      [test "$ac_cv_header_sys_types_h" = "yes"], [INCLUDE_STDINT="#include <sys/types.h>"])
++
++AC_SUBST([INCLUDE_STDINT])
++
+ AC_CONFIG_FILES([
+            Makefile libspeexdsp/Makefile doc/Makefile SpeexDSP.spec
+            include/Makefile include/speex/Makefile speexdsp.pc
+diff --git a/include/speex/speexdsp_config_types.h.in b/include/speex/speexdsp_config_types.h.in
+index 02b82fd..5ea7b55 100644
+--- a/include/speex/speexdsp_config_types.h.in
++++ b/include/speex/speexdsp_config_types.h.in
+@@ -1,13 +1,7 @@
+ #ifndef __SPEEX_TYPES_H__
+ #define __SPEEX_TYPES_H__
+ 
+-#if defined HAVE_STDINT_H
+-#  include <stdint.h>
+-#elif defined HAVE_INTTYPES_H
+-#  include <inttypes.h>
+-#elif defined HAVE_SYS_TYPES_H
+-#  include <sys/types.h>
+-#endif
++@INCLUDE_STDINT@
+ 
+ typedef @SIZE16@ spx_int16_t;
+ typedef @USIZE16@ spx_uint16_t;
+-- 
+1.9.3
+
meta/recipes-multimedia/speex/speexdsp_1.2rc3.bb new file +39 -0
new file mode 100644
index 0000000..6b1aced
@@ -0,0 +1,39 @@
+SUMMARY = "A patent-free DSP library"
+DESCRIPTION = "SpeexDSP is a patent-free, Open Source/Free Software DSP library."
+HOMEPAGE = "http://www.speex.org"
+SECTION = "libs"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=314649d8ba9dd7045dfb6683f298d0a8"
+
+SRC_URI = "http://downloads.xiph.org/releases/speex/speexdsp-${PV}.tar.gz \
+           file://0001-Don-t-rely-on-HAVE_STDINT_H-et-al.-being-defined.patch"
+
+SRC_URI[md5sum] = "70d9d31184f7eb761192fd1ef0b73333"
+SRC_URI[sha256sum] = "4ae688600039f5d224bdf2e222d2fbde65608447e4c2f681585e4dca6df692f1"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "\
+        --disable-examples \
+        ${@bb.utils.contains('TARGET_FPU', 'soft', '--enable-fixed-point --disable-float-api', '', d)} \
+"
+
+# Workaround for a build failure when building with MACHINE=qemuarm64. I think
+# aarch64 is supposed to support NEON just fine, but building for qemuarm64
+# fails in NEON code:
+#
+# .../speexdsp-1.2rc3/libspeexdsp/resample_neon.h:148:5: error: impossible constraint in 'asm'
+#      asm volatile ("  cmp %[len], #0\n"
+#      ^
+#
+# I sent an email about the issue to speex-dev. At the time of writing there
+# are no responses yet:
+# http://thread.gmane.org/gmane.comp.audio.compression.speex.devel/7360
+EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '--disable-neon', '', d)}"
+
+# speexdsp was split off from speex in 1.2rc2. Older versions of speex can't
+# be installed together with speexdsp, since they contain overlapping files.
+RCONFLICTS_${PN} = "speex (< 1.2rc2)"
+RCONFLICTS_${PN}-dbg = "speex-dbg (< 1.2rc2)"
+RCONFLICTS_${PN}-dev = "speex-dev (< 1.2rc2)"
+RCONFLICTS_${PN}-staticdev = "speex-staticdev (< 1.2rc2)"
Signature · 1 line
1.9.3
#2 lore raw

PATCH 2/3 speex: 1.2rc1 -> 1.2rc2

In reply to Tanu Kaskinen

Dropped speex-fpu.inc, since it's simpler to put the logic directly in the .bb file.

LIC_FILES_CHKSUM changed due to whitespace changes only.

Dropped PR.

Added a dependency on speexdsp. The speexdsp functionality used to be included in speex, but upstream split the speexdsp package off into a separate source tree. speexdsp could otherwise be an optional dependency, but the upstream configure script doesn't support disabling it explicitly, and relying on automatic detection would make builds nondeterministic, so it's better to always enable it.

--enable-fixed-point was previously included in the configure options unconditionally, but the option should be used only when TARGET_FPU is set to "soft".

--with-ogg-libraries, --with-ogg-includes and --disable-oggtest aren't supported anymore, since speex now uses pkg-config to find libogg.

---
 meta/recipes-multimedia/speex/speex-fpu.inc            |  4 ----
 .../speex/{speex_1.2rc1.bb => speex_1.2rc2.bb}         | 18 +++++++-----------
 2 files changed, 7 insertions(+), 15 deletions(-)
 delete mode 100644 meta/recipes-multimedia/speex/speex-fpu.inc
 rename meta/recipes-multimedia/speex/{speex_1.2rc1.bb => speex_1.2rc2.bb} (51%)
meta/recipes-multimedia/speex/speex-fpu.inc deleted +0 -4
deleted file mode 100644
index 2571d32..0000000
@@ -1,4 +0,0 @@
-def get_speex_fpu_setting(bb, d):
-     if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
-             return "--enable-fixed-point --disable-float-api --disable-vbr"
-     return ""
meta/recipes-multimedia/speex/speex_1.2rc2.bb renamed from meta/recipes-multimedia/speex/speex_1.2rc1.bb +7 -11
similarity index 51%
rename from meta/recipes-multimedia/speex/speex_1.2rc1.bb
rename to meta/recipes-multimedia/speex/speex_1.2rc2.bb
index 5ff50b7..f7d23db 100644
@@ -4,20 +4,16 @@ HOMEPAGE = "http://www.speex.org"
 SECTION = "libs"
 LICENSE = "BSD"
 LIC_FILES_CHKSUM = "file://COPYING;md5=314649d8ba9dd7045dfb6683f298d0a8 \
-                    file://include/speex/speex.h;beginline=1;endline=34;md5=a68129f78d7fe66e07163f73aba143b3"
-DEPENDS = "libogg"
-
-PR = "r2"
+                    file://include/speex/speex.h;beginline=1;endline=34;md5=ef8c8ea4f7198d71cf3509c6ed05ea50"
+DEPENDS = "libogg speexdsp"
 
 SRC_URI = "http://downloads.us.xiph.org/releases/speex/speex-${PV}.tar.gz"
 
-SRC_URI[md5sum] = "c4438b22c08e5811ff10e2b06ee9b9ae"
-SRC_URI[sha256sum] = "342f30dc57bd4a6dad41398365baaa690429660b10d866b7d508e8f1179cb7a6"
+SRC_URI[md5sum] = "6ae7db3bab01e1d4b86bacfa8ca33e81"
+SRC_URI[sha256sum] = "caa27c7247ff15c8521c2ae0ea21987c9e9710a8f2d3448e8b79da9806bce891"
 
 inherit autotools pkgconfig lib_package
 
-EXTRA_OECONF = " --enable-fixed-point --with-ogg-libraries=${STAGING_LIBDIR} \
-                 --with-ogg-includes=${STAGING_INCDIR} --disable-oggtest"
-
-require speex-fpu.inc
-EXTRA_OECONF += "${@get_speex_fpu_setting(bb, d)}"
+EXTRA_OECONF = "\
+        ${@bb.utils.contains('TARGET_FPU', 'soft', '--enable-fixed-point --disable-float-api --disable-vbr', '', d)} \
+"
Signature · 1 line
1.9.3
#3 lore raw

PATCH 3/3 alsa-plugins, pulseaudio: depend on speexdsp, not speex

In reply to Tanu Kaskinen

Speexdsp was split off from speex, and alsa-plugins and pulseaudio only depend on the speexdsp library.

---
 meta/recipes-multimedia/alsa/alsa-plugins_1.0.29.bb | 4 ++--
 meta/recipes-multimedia/pulseaudio/pulseaudio.inc   | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)
meta/recipes-multimedia/alsa/alsa-plugins_1.0.29.bb +2 -2
index 85df8bf..3395031 100644
@@ -29,7 +29,7 @@ inherit autotools pkgconfig
 
 PACKAGECONFIG ??= "\
         samplerate \
-        speex \
+        speexdsp \
         ${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \
 "
 PACKAGECONFIG[avcodec] = "--enable-avcodec,--disable-avcodec,libav"
@@ -38,7 +38,7 @@ PACKAGECONFIG[maemo-plugin] = "--enable-maemo-plugin,--disable-maemo-plugin"
 PACKAGECONFIG[maemo-resource-manager] = "--enable-maemo-resource-manager,--disable-maemo-resource-manager,dbus"
 PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio"
 PACKAGECONFIG[samplerate] = "--enable-samplerate,--disable-samplerate,libsamplerate0"
-PACKAGECONFIG[speex] = "--with-speex=lib,--with-speex=no,speex"
+PACKAGECONFIG[speexdsp] = "--with-speex=lib,--with-speex=no,speexdsp"
 
 PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pulseaudio', 'alsa-plugins-pulseaudio-conf', '', d)}"
 
meta/recipes-multimedia/pulseaudio/pulseaudio.inc +1 -1
index 30fe221..b309d26 100644
@@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://GPL;md5=4325afd396febcb659c36b49533135d4 \
 DEPENDS = "libatomics-ops liboil libsndfile1 libtool"
 # optional
 DEPENDS += "udev alsa-lib glib-2.0 dbus gconf"
-DEPENDS += "json-c gdbm speex libxml-parser-perl-native libcap"
+DEPENDS += "json-c gdbm speexdsp libxml-parser-perl-native libcap"
 
 inherit autotools pkgconfig useradd gettext perlnative bluetooth systemd
 
Signature · 1 line
1.9.3
#4 lore raw
In reply to Tanu Kaskinen
Quoted 3 lines · Tanu Kaskinen

These patches update speex to 1.2rc2 and speexdsp to 1.2rc3. speexdsp was previously included in speex, but now it's in a separate source tree, so a new recipe is needed.

The gap between rc1 and rc2 has been six *years*, and rc2 has been released 7 *months* ago. The upstream clearly doesn't know the definition of 'release candidate' :)

I'm totally fine with your patches, just in case.

Alex

#5 lore raw
In reply to Tanu Kaskinen
Quoted 4 lines · Tanu Kaskinen

These patches update speex to 1.2rc2 and speexdsp to 1.2rc3. speexdsp was previously included in speex, but now it's in a separate source tree, so a new recipe is needed.

Quoted 8 lines

The following changes since commit dd09fab685de2eaf04aa5ab60f8220b89c1deae9:

tune-core2.inc: set X86ARCH32 to i686 (instead of i586) (2015-07-02 23:08:27 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib tanuk/speex
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=tanuk/speex

I included these patches on the autobuilder in master-next and saw:

https://autobuilder.yoctoproject.org/main/builders/nightly-x86-lsb/builds/385/steps/BuildImages_1/logs/stdio

and also what looks like a another separate but related issue:

https://autobuilder.yoctoproject.org/main/builders/nightly-world-lsb/builds/107/steps/BuildImages/logs/stdio
https://autobuilder.yoctoproject.org/main/builders/nightly-world/builds/387/steps/BuildImages/logs/stdio
https://autobuilder.yoctoproject.org/main/builders/nightly-multilib/builds/383/steps/BuildImages_2/logs/stdio

Could you take a look and see if we can figure out the issue there please?

Cheers,

Richard

#6 lore raw
Quoted 18 lines · Richard Purdie
Quoted 4 lines · Tanu Kaskinen

These patches update speex to 1.2rc2 and speexdsp to 1.2rc3. speexdsp was previously included in speex, but now it's in a separate source tree, so a new recipe is needed.

Quoted 8 lines

The following changes since commit dd09fab685de2eaf04aa5ab60f8220b89c1deae9:

tune-core2.inc: set X86ARCH32 to i686 (instead of i586) (2015-07-02 23:08:27 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib tanuk/speex
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=tanuk/speex

I included these patches on the autobuilder in master-next and saw:

https://autobuilder.yoctoproject.org/main/builders/nightly-x86-lsb/builds/385/steps/BuildImages_1/logs/stdio

Quoted 8 lines

and also what looks like a another separate but related issue:

https://autobuilder.yoctoproject.org/main/builders/nightly-world-lsb/builds/107/steps/BuildImages/logs/stdio
https://autobuilder.yoctoproject.org/main/builders/nightly-world/builds/387/steps/BuildImages/logs/stdio
https://autobuilder.yoctoproject.org/main/builders/nightly-multilib/builds/383/steps/BuildImages_2/logs/stdio

Could you take a look and see if we can figure out the issue there please?

Yes, I'll investigate.

Signature · 1 line
Tanu
#7 lore raw
Quoted 21 lines · Tanu Kaskinen
Quoted 20 lines · Richard Purdie
Quoted 4 lines · Tanu Kaskinen

These patches update speex to 1.2rc2 and speexdsp to 1.2rc3. speexdsp was previously included in speex, but now it's in a separate source tree, so a new recipe is needed.

Quoted 8 lines

The following changes since commit dd09fab685de2eaf04aa5ab60f8220b89c1deae9:

tune-core2.inc: set X86ARCH32 to i686 (instead of i586) (2015-07-02 23:08:27 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib tanuk/speex
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=tanuk/speex

I included these patches on the autobuilder in master-next and saw:

https://autobuilder.yoctoproject.org/main/builders/nightly-x86-lsb/builds/385/steps/BuildImages_1/logs/stdio

and also what looks like a another separate but related issue:

Quoted 8 lines
Quoted 6 lines

https://autobuilder.yoctoproject.org/main/builders/nightly-world-lsb/builds/107/steps/BuildImages/logs/stdio
https://autobuilder.yoctoproject.org/main/builders/nightly-world/builds/387/steps/BuildImages/logs/stdio
https://autobuilder.yoctoproject.org/main/builders/nightly-multilib/builds/383/steps/BuildImages_2/logs/stdio

Could you take a look and see if we can figure out the issue there please?

Yes, I'll investigate.

I sent now v2 of the patches, which should fix the alsa-plugins build failures.

The libspeexdsp-dev problem is more difficult, and I don't really know how to debug it further. The error message was:

error: Can't install pulseaudio-dev-6.0-r0@core2_32: no package provides libspeexdsp-dev

However, "bitbake speexdsp" seems to generate the libspeexdsp-dev package just fine (libspeexdsp-dev_1.2rc3-r0_core2-64.ipk appears in the deploy directory).

Signature · 1 line
Tanu
#8 lore raw
Quoted 2 lines · Tanu Kaskinen

I sent now v2 of the patches, which should fix the alsa-plugins build failures.

Thanks, those do indeed seem resolved.

Quoted 8 lines

The libspeexdsp-dev problem is more difficult, and I don't really know how to debug it further. The error message was:

error: Can't install pulseaudio-dev-6.0-r0@core2_32: no package provides libspeexdsp-dev

However, "bitbake speexdsp" seems to generate the libspeexdsp-dev package just fine (libspeexdsp-dev_1.2rc3-r0_core2-64.ipk appears in the deploy directory).

Oddly enough, it happened again with the new patches:

https://autobuilder.yoctoproject.org/main/builders/nightly-x86-lsb/builds/389/steps/BuildImages_1/logs/stdio

It only seems to happen on x86-lsb, not any other architecture. Why? No idea as yet :/.

Cheers,

Richard

#9 lore raw
In reply to Tanu Kaskinen
Quoted 7 lines · Tanu Kaskinen
Quoted 5 lines · Tanu Kaskinen
Quoted 4 lines · Richard Purdie

I included these patches on the autobuilder in master-next and saw:

https://autobuilder.yoctoproject.org/main/builders/nightly-x86-lsb/builds/385/steps/BuildImages_1/logs/stdio

Quoted 8 lines

The libspeexdsp-dev problem is more difficult, and I don't really know how to debug it further. The error message was:

error: Can't install pulseaudio-dev-6.0-r0@core2_32: no package provides libspeexdsp-dev

However, "bitbake speexdsp" seems to generate the libspeexdsp-dev package just fine (libspeexdsp-dev_1.2rc3-r0_core2-64.ipk appears in the deploy directory).

This one is a little crazy to debug. What you need to do is build something i586 (like qemux86), then build something core2_32 (like genericx86), then "bitbake core-image-lsb core-image-lsb-sdk -c rootfs" and hope the -lsb image builds before -lsb-sdk (I hacked runqueue to ensure that). Then you see this error.

genericx86 is seeing two copies of libspeexdsp-dev, one from the i586 feed and one from the core2_32 feed and somehow they confuse it, perhaps due to the RCONFLICTS or something.

Obviously this isn't really a bug in the libspeexdsp recipe, its a bug in smart combined with a second bug where genericx86 shouldn't be seeing the i586 packages.

I'll continue to try and narrow it down and produce a test case which is more easily replicable. I'll not block your upgrades on this though, this needs fixing elsewhere.

Cheers,

Richard
(going quietly insane with the number of AB 'random' failures)

#10 lore raw
Quoted 23 lines · Richard Purdie
Quoted 7 lines · Tanu Kaskinen
Quoted 5 lines · Tanu Kaskinen
Quoted 4 lines · Richard Purdie

I included these patches on the autobuilder in master-next and saw:

https://autobuilder.yoctoproject.org/main/builders/nightly-x86-lsb/builds/385/steps/BuildImages_1/logs/stdio

Quoted 8 lines

The libspeexdsp-dev problem is more difficult, and I don't really know how to debug it further. The error message was:

error: Can't install pulseaudio-dev-6.0-r0@core2_32: no package provides libspeexdsp-dev

However, "bitbake speexdsp" seems to generate the libspeexdsp-dev package just fine (libspeexdsp-dev_1.2rc3-r0_core2-64.ipk appears in the deploy directory).

This one is a little crazy to debug. What you need to do is build something i586 (like qemux86), then build something core2_32 (like genericx86), then "bitbake core-image-lsb core-image-lsb-sdk -c rootfs" and hope the -lsb image builds before -lsb-sdk (I hacked runqueue to ensure that). Then you see this error.

Quoted 7 lines

genericx86 is seeing two copies of libspeexdsp-dev, one from the i586 feed and one from the core2_32 feed and somehow they confuse it, perhaps due to the RCONFLICTS or something.

Obviously this isn't really a bug in the libspeexdsp recipe, its a bug in smart combined with a second bug where genericx86 shouldn't be seeing the i586 packages.

Not sure if it's related, but tune-core2.inc deliberately includes PACKAGE_EXTRA_ARCHS_tune-i586 when defining PACKAGE_EXTRA_ARCHS_tune-core2-32, which seems to be correct according to conf/machine/include/README:

"PACKAGE_EXTRA_ARCHS_tune-<tune> - List all of the package architectures that are compatible with this specific tune. The package arch of this tune must be in the list."

Quoted 15 lines

I'll continue to try and narrow it down and produce a test case which is more easily replicable. I'll not block your upgrades on this though, this needs fixing elsewhere.

Cheers,

Richard
(going quietly insane with the number of AB 'random' failures)

--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

#11 lore raw
Quoted 33 lines · Andre McCurdy
Quoted 23 lines · Richard Purdie
Quoted 7 lines · Tanu Kaskinen
Quoted 5 lines · Tanu Kaskinen
Quoted 4 lines · Richard Purdie

I included these patches on the autobuilder in master-next and saw:

https://autobuilder.yoctoproject.org/main/builders/nightly-x86-lsb/builds/385/steps/BuildImages_1/logs/stdio

Quoted 8 lines

The libspeexdsp-dev problem is more difficult, and I don't really know how to debug it further. The error message was:

error: Can't install pulseaudio-dev-6.0-r0@core2_32: no package provides libspeexdsp-dev

However, "bitbake speexdsp" seems to generate the libspeexdsp-dev package just fine (libspeexdsp-dev_1.2rc3-r0_core2-64.ipk appears in the deploy directory).

This one is a little crazy to debug. What you need to do is build something i586 (like qemux86), then build something core2_32 (like genericx86), then "bitbake core-image-lsb core-image-lsb-sdk -c rootfs" and hope the -lsb image builds before -lsb-sdk (I hacked runqueue to ensure that). Then you see this error.

Quoted 7 lines

genericx86 is seeing two copies of libspeexdsp-dev, one from the i586 feed and one from the core2_32 feed and somehow they confuse it, perhaps due to the RCONFLICTS or something.

Obviously this isn't really a bug in the libspeexdsp recipe, its a bug in smart combined with a second bug where genericx86 shouldn't be seeing the i586 packages.

Quoted 8 lines

Not sure if it's related, but tune-core2.inc deliberately includes PACKAGE_EXTRA_ARCHS_tune-i586 when defining PACKAGE_EXTRA_ARCHS_tune-core2-32, which seems to be correct according to conf/machine/include/README:

"PACKAGE_EXTRA_ARCHS_tune-<tune> - List all of the package architectures that are compatible with this specific tune. The package arch of this tune must be in the list."

As we define things today, its certainly correct. I do continue to wonder if there shouldn't be two different fields, the list of arches to use at build time and the complete list of compatible arches which would be separate.

How we'd go about such an invasive change is the real issue.

Cheers,

Richard