| Summary: | Build fails when building multilib with ipk packaging | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Stoicescu Cornel <corneliux.stoicescu> | ||||||||||||
| Component: | core | Assignee: | Richard Purdie <richard.purdie> | ||||||||||||
| Status: | VERIFIED FIXED | QA Contact: | |||||||||||||
| Severity: | normal | ||||||||||||||
| Priority: | Medium | CC: | bluelightning, jessica.zhang, meta.mr.watcher, meta.watcher, richard.purdie | ||||||||||||
| Version: | 1.3 | ||||||||||||||
| Target Milestone: | 1.4 | ||||||||||||||
| Hardware: | x86 | ||||||||||||||
| OS: | Multiple | ||||||||||||||
| Whiteboard: | Release note | ||||||||||||||
| OS type for building Yocto: | --- | Type of Regression: | --- | ||||||||||||
| Verified: | Documentation change: | --- | |||||||||||||
| Attachments: |
|
||||||||||||||
|
Description
Stoicescu Cornel
2012-11-16 13:39:31 UTC
Created attachment 959 [details]
log.do_rootfs
A similar issue happened in master: 247b6a3754c2c50318e2a73d79981ba0e9cb560b
Same configuration produced this result:
Downloading file:/home/cornel/SDD/Yocto/3poky/build/tmp/deploy/ipk/x86/lib32-gdk-pixbuf-loader-gif_2.24.1-r7_x86.ipk.
| + multilib_tryout_dirs=' /home/cornel/SDD/Yocto/3poky/build/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/multilib/lib32'
| + '[' '!' -z /home/cornel/SDD/Yocto/3poky/build/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/multilib_check.py ']'
| + multilib_sanity_check /home/cornel/SDD/Yocto/3poky/build/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs /home/cornel/SDD/Yocto/3poky/build/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/multilib/lib32
| + multilib_generate_python_file
| + cat
| + echo /home/cornel/SDD/Yocto/3poky/build/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs /home/cornel/SDD/Yocto/3poky/build/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/multilib/lib32
| + python /home/cornel/SDD/Yocto/3poky/build/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/multilib_check.py
| Traceback (most recent call last):
| File "/home/cornel/SDD/Yocto/3poky/build/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/multilib_check.py", line 21, in <module>
| if not filecmp.cmp(files[key],item):
| File "/usr/lib/python2.7/filecmp.py", line 42, in cmp
| s1 = _sig(os.stat(f1))
| OSError: [Errno 2] No such file or directory: '/home/cornel/SDD/Yocto/3poky/build/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/rootfs/etc/fonts/conf.d/69-unifont.conf'
| + exit 1
| ERROR: Function failed: do_rootfs (see /home/cornel/SDD/Yocto/3poky/build/tmp/work/qemux86_64-poky-linux/core-image-sato/1.0-r0/temp/log.do_rootfs.25113 for further information)
ERROR: Task 7 (/home/cornel/SDD/Yocto/3poky/meta/recipes-sato/images/core-image-sato.bb, do_rootfs) failed with exit code '1'
NOTE: Tasks Summary: Attempted 6298 tasks of which 6297 didn't need to be rerun and 1 failed.
No currently running tasks (6297 of 6299)
Summary: 1 task failed:
Please note that IMAGE_INSTALL_append = "lib32-connman-gnome" is used correctly (I mistyped when first posting this): IMAGE_INSTALL_append = " lib32-connman-gnome" Created attachment 988 [details]
log.do_rootfs
Again, do_rootfs fails in master:90c0eb29f0b41e4ac2d3d17ebad7295c2ebdc02a but at a different point:
Collected errors:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for lib32-connman-gnome:
* <--->lib32-update-alternatives-cworth *.
* opkg_install_cmd: Cannot install package lib32-connman-gnome.
(In reply to comment #3) > Created attachment 988 [details] > log.do_rootfs > > Again, do_rootfs fails in master:90c0eb29f0b41e4ac2d3d17ebad7295c2ebdc02a > but at a different point: > > Collected errors: > * satisfy_dependencies_for: Cannot satisfy the following dependencies for > lib32-connman-gnome: > * <--->lib32-update-alternatives-cworth *. > * opkg_install_cmd: Cannot install package lib32-connman-gnome. At this point building lib32-core-image-sato is broken. I'll start from there. Happened in denzil: 3456295898bf157e40ea1f8c335f0b7285d3d8a7 NOTE: package gconf-3.2.3-r8: task do_compile: Started ERROR: Function failed: do_compile (see /home/cornel/work/poky/build/tmp/work/x86_64-poky-linux/gconf-3.2.3-r8/temp/log.do_compile.13916 for further information) ERROR: Logfile of failure stored in: /home/cornel/work/poky/build/tmp/work/x86_64-poky-linux/gconf-3.2.3-r8/temp/log.do_compile.13916 Log data follows: | DEBUG: SITE files ['endian-little', 'common-linux', 'common-glibc', 'bit-64', 'x86_64-linux', 'common'] | NOTE: make -j 8 | make all-recursive | make[1]: Entering directory `/home/cornel/work/poky/build/tmp/work/x86_64-poky-linux/gconf-3.2.3-r8/GConf-3.2.3' | Making all in gconf | make[2]: Entering directory `/home/cornel/work/poky/build/tmp/work/x86_64-poky-linux/gconf-3.2.3-r8/GConf-3.2.3/gconf' | make all-am | make[3]: Entering directory `/home/cornel/work/poky/build/tmp/work/x86_64-poky-linux/gconf-3.2.3-r8/GConf-3.2.3/gconf' | ../x86_64-poky-linux-libtool --tag=CC --mode=link ccache x86_64-poky-linux-gcc -m64 --sysroot=/home/cornel/work/poky/build/tmp/sysroots/qemux86-64 -O2 -pipe -g -feliminate-unused-debug-types -Wall -DGCONF_ENABLE_DEBUG=1 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o gconf-sanity-check-2 gconf-sanity-check.o libgconf-2.la -pthread -Wl,--export-dynamic -L/home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -lxml2 | x86_64-poky-linux-libtool: link: ccache x86_64-poky-linux-gcc -m64 --sysroot=/home/cornel/work/poky/build/tmp/sysroots/qemux86-64 -O2 -pipe -g -feliminate-unused-debug-types -Wall -DGCONF_ENABLE_DEBUG=1 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o .libs/gconf-sanity-check-2 gconf-sanity-check.o -pthread -Wl,--export-dynamic ./.libs/libgconf-2.so -L/home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64 -L=/usr/lib64 /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libdbus-glib-1.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libdbus-1.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libgtk-x11-2.0.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libgdk-x11-2.0.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libatk-1.0.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libpangocairo-1.0.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libpangoft2-1.0.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/../lib64/libstdc++.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libgdk_pixbuf-2.0.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libgio-2.0.so -lresolv /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libcairo.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libpixman-1.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libpng12.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libXrender.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libX11.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libxcb.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libXau.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libXdmcp.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libpango-1.0.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libfontconfig.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libfreetype.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libexpat.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libgobject-2.0.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libffi.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libgmodule-2.0.so /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libgthread-2.0.so -lpthread /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libglib-2.0.so -lrt /home/cornel/work/poky/build/tmp/sysroots/qemux86-64/usr/lib64/libxml2.so -ldl -lz -lm -pthread -Wl,-rpath -Wl,/usr/lib64/../lib64 | /usr/lib64/../lib64/libXrandr.so.2: undefined reference to `memcpy@GLIBC_2.14' | /usr/lib64/../lib64/libXrandr.so.2: undefined reference to `_XGetRequest' | collect2: ld returned 1 exit status | make[3]: *** [gconf-sanity-check-2] Error 1 | make[3]: Leaving directory `/home/cornel/work/poky/build/tmp/work/x86_64-poky-linux/gconf-3.2.3-r8/GConf-3ERROR: Function failed: do_compile (see /home/cornel/work/poky/build/tmp/work/x86_64-poky-linux/gconf-3.2.3-r8/temp/log.do_compile.13916 for further information) | .2.3/gconf' | make[2]: *** [all] Error 2 | make[2]: Leaving directory `/home/cornel/work/poky/build/tmp/work/x86_64-poky-linux/gconf-3.2.3-r8/GConf-3.2.3/gconf' | make[1]: *** [all-recursive] Error 1 | make[1]: Leaving directory `/home/cornel/work/poky/build/tmp/work/x86_64-poky-linux/gconf-3.2.3-r8/GConf-3.2.3' | make: *** [all] Error 2 | ERROR: oe_runmake failed NOTE: package gconf-3.2.3-r8: task do_compile: Failed ERROR: Task 2666 (/home/cornel/work/poky/meta/recipes-gnome/gnome/gconf_3.2.3.bb, do_compile) failed with exit code '1' NOTE: package speex-1.2rc1-r1: task do_compile: Started (In reply to comment #5) > Happened in denzil: 3456295898bf157e40ea1f8c335f0b7285d3d8a7 > > NOTE: package gconf-3.2.3-r8: task do_compile: Started > ERROR: Function failed: do_compile (see > /home/cornel/work/poky/build/tmp/work/x86_64-poky-linux/gconf-3.2.3-r8/temp/ > log.do_compile.13916 for further information) ... > (/home/cornel/work/poky/meta/recipes-gnome/gnome/gconf_3.2.3.bb, do_compile) > failed with exit code '1' > NOTE: package speex-1.2rc1-r1: task do_compile: Started Please do not copy paste long log in here, use the attachments if you want to add logs. It's getting difficult to follow a bug like this just by scrolling to much/long to get at the last post. The first problem I encountered seems to be with allarch packages. The dependencies are loaded from ${DEPLOY_DIR_IPK}/$arch and for allarch packages the lib32- prefix is missing in there and thus the missing dependency on lib32-update-rc.d while the only package being provided is update-rc.d
One approach to fix this would be something similar with what has been done for rpm, that is to strip the lib32- prefix. I'm currently investigating this approach.
The update-alternatives issue in one of the errors above at least should now be fixed by http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=59e15f671222077db57d394b1f022549fa3509ff Created attachment 1027 [details]
do_rootfs log
This is still an issue in master: 8d6e55bf2192524bda84138b5356a2791adbbe61
The breakdown is now(log attached):
| Collected errors:
| * satisfy_dependencies_for: Cannot satisfy the following dependencies for lib32-connman-gnome:
| * lib32-hicolor-icon-theme * lib32-update-rc.d * lib32-update-rc.d * lib32-upda te-rc.d *
| * opkg_install_cmd: Cannot install package lib32-connman-gnome.
(In reply to comment #9) > Created attachment 1027 [details] > do_rootfs log > > This is still an issue in master: 8d6e55bf2192524bda84138b5356a2791adbbe61 > > The breakdown is now(log attached): > > | Collected errors: > | * satisfy_dependencies_for: Cannot satisfy the following dependencies for > lib32-connman-gnome: > | * lib32-hicolor-icon-theme * lib32-update-rc.d * > lib32-update-rc.d * lib32-upda > te-rc.d * > | * opkg_install_cmd: Cannot install package lib32-connman-gnome. Nobody said this is not an issue anymore. It is in progress, that means we are looking into it.Please wait for it to be fixed, and marked as such, before posting other logs. Not actively working on this because of systemd workload. Changing to New so that it can be reassigned as necessary, while I'm loaded with other tasks. I'm updating the estimation for this, since I took a look. The problem was stated before, but we do not yet have a solution for it. RPM approach probably won't fit this scenario so a little more investigation is required. Created attachment 1165 [details]
Fix for some of the issues
The patch I attached fixes some of the problems. The issue is the RPROVIDES of allarch packages is disappearing by the runtime mapping/renaming code. Sadly with that fixed, we end up with file conflict errors like: | Collected errors: | * check_data_file_clashes: Package libc6 wants to install file /media/build1/poky/build/tmp/work/qemux86_64-poky-linux/lib32-core-image-sato/1.0-r0/rootfs/sbin/ldconfig | But that file is already provided by package * lib32-eglibc | * check_data_file_clashes: Package libc6 wants to install file /media/build1/poky/build/tmp/work/qemux86_64-poky-linux/lib32-core-image-sato/1.0-r0/rootfs/etc/ld.so.conf | But that file is already provided by package * lib32-eglibc | * opkg_install_cmd: Cannot install package lib32-packagegroup-core-x11-sato. | * check_data_file_clashes: Package libc6 wants to install file /media/build1/poky/build/tmp/work/qemux86_64-poky-linux/lib32-core-image-sato/1.0-r0/rootfs/sbin/ldconfig | But that file is already provided by package * lib32-eglibc | * check_data_file_clashes: Package libc6 wants to install file /media/build1/poky/build/tmp/work/qemux86_64-poky-linux/lib32-core-image-sato/1.0-r0/rootfs/etc/ld.so.conf | But that file is already provided by package * lib32-eglibc | * opkg_install_cmd: Cannot install package lib32-packagegroup-base-extended. | * check_data_file_clashes: Package libc6 wants to install file /media/build1/poky/build/tmp/work/qemux86_64-poky-linux/lib32-core-image-sato/1.0-r0/rootfs/sbin/ldconfig | But that file is already provided by package * lib32-eglibc | * check_data_file_clashes: Package libc6 wants to install file /media/build1/poky/build/tmp/work/qemux86_64-poky-linux/lib32-core-image-sato/1.0-r0/rootfs/etc/ld.so.conf | But that file is already provided by package * lib32-eglibc | * opkg_install_cmd: Cannot install package lib32-packagegroup-core-x11-base. | ERROR: Function failed: do_rootfs (see /media/build1/poky/build/tmp/work/qemux86_64-poky-linux/lib32-core-image-sato/1.0-r0/temp/log.do_rootfs.4241 for further information) ERROR: Task 7 (virtual:multilib:lib32:/media/build1/poky/meta/recipes-sato/images/core-image-sato.bb, do_rootfs) failed with exit code '1' Those errors can be worked around with:
--- a/meta/classes/package_ipk.bbclass
+++ b/meta/classes/package_ipk.bbclass
@@ -10,7 +10,7 @@ PKGWRITEDIRIPK = "${WORKDIR}/deploy-ipks"
# Program to be used to build opkg packages
OPKGBUILDCMD ??= "opkg-build"
-OPKG_ARGS = "-f $INSTALL_CONF_IPK -o $INSTALL_ROOTFS_IPK --force_postinstall --prefer-arch-to-version"
+OPKG_ARGS = "-f $INSTALL_CONF_IPK -o $INSTALL_ROOTFS_IPK --force_postinstall --force-overwrite --prefer-arch-to-version"
OPKGLIBDIR = "${localstatedir}/lib"
(Intorduced in http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=88a9f6db3482623c9cb54fb03db1045051cec9f6)
however this still leaves:
| Configuring lib32-packagegroup-core-x11-utils.
| Configuring lib32-packagegroup-core-x11-base.
| Configuring lib32-poky-feed-config-opkg.
| Configuring lib32-packagegroup-core-ssh-dropbear.
| Configuring lib32-locale-base-en-us.
| Collected errors:
| * resolve_conffiles: Existing conffile /media/build1/poky/build/tmp/work/qemux86_64-poky-linux/lib32-core-image-sato/1.0-r0/rootfs/etc/dbus-1/system.conf is different from the conffile in the new package. The new conffile will be placed at /media/build1/poky/build/tmp/work/qemux86_64-poky-linux/lib32-core-image-sato/1.0-r0/rootfs/etc/dbus-1/system.conf-opkg.
| Package lib32-locale-base-en-gb (2.17-r0) installed in root is up to date.
| Package lib32-locale-base-en-us (2.17-r0) installed in root is up to date.
| Package lib32-packagegroup-core-x11-sato (1.0-r33) installed in root is up to date.
| Package lib32-opkg (1:0.1.8+svnr649-r13.0) installed in root is up to date.
which is from:
tmp/work$ diff -u x86_64-poky-linux/dbus/1.6.8-r6.0/image/etc/dbus-1/system.conf x86-pokymllib32-linux/lib32-dbus/1.6.8-r6.0/image/etc/dbus-1/system.conf
--- x86_64-poky-linux/dbus/1.6.8-r6.0/image/etc/dbus-1/system.conf 2013-04-11 21:57:20.070285782 +0000
+++ x86-pokymllib32-linux/lib32-dbus/1.6.8-r6.0/image/etc/dbus-1/system.conf 2013-04-11 21:53:55.918290511 +0000
@@ -24,7 +24,7 @@
<standard_system_servicedirs/>
<!-- This is a setuid helper that is used to launch system services -->
- <servicehelper>/usr/lib64/dbus/dbus-daemon-launch-helper</servicehelper>
+ <servicehelper>/usr/lib32/dbus/dbus-daemon-launch-helper</servicehelper>
<!-- Write a pid file -->
<pidfile>/var/run/dbus/pid</pidfile>
I've posted some patches on the mailing list which make this test case build. To avoid the conf file issue the --force-maintainer option can be used. Fixed in master with http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=093dec12e6b3ade7d8a88782d6b8ec02d935d58c and http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=b9dde37eb5c76a8a058f1ec5183e644515ab1c4e Verified in master:814d89bcbacb559775ad1b46f2163eaa7fae7f34 |