From: Andreas Oberritter <obi@opendreambox.org>
To: openembedded-core@lists.openembedded.org
Subject: Undeterministic builds with different distributions
Date: Thu, 08 Mar 2012 03:27:30 +0100 [thread overview]
Message-ID: <4F581912.1090708@opendreambox.org> (raw)
Hi,
I've built an image for the opendreambox distribution on two hosts:
a) Ubuntu 11.10 ("oneiric"), amd64
b) Debian 6.0.4 ("Squeeze"), i386
Afterwards I compared image statistics of both runs recorded by
buildhistory. Before building the images, I disabled image-prelink
on both hosts.
I did this test, because I had a report that python was broken in
this image. The broken image was built on squeeze and I was able to
reproduce it, by building on another squeeze machine (b).
The result was a little surprising. I'm including diffs (excerpts)
from host a to host b.
1.) depends.dot
python_fcntl -> libc6;
python_image -> python_core;
+python_image -> libpython2_7_1_0;
+python_image -> libc6;
python_imaging -> libpython2_7_1_0;
I'm not sure how this could happen. It's the only package that actually
changed dependencies.
2.) files-in-image.txt
* Many, but not all, shared libraries differ. E.g.:
--rw-r--r-- root root 47427 ./lib/libcap.so.2.22
+-rw-r--r-- root root 47311 ./lib/libcap.so.2.22
They may contain build-timestamps. I haven't done a thorough analysis
yet.
* There are even differences between text files, e.g.:
--rw-r--r-- root root 17792 ./etc/mc/mc.ext
+-rw-r--r-- root root 17782 ./etc/mc/mc.ext
In detail:
- Open=(if test -n "opera" && test -n "$DISPLAY"; then (opera file://%d/%p &) 1>&2; else links %f || lynx -force_html %f || ${PAGER:-more} %f; fi) 2>/dev/null
+ Open=(if test -n "" && test -n "$DISPLAY"; then ( file://%d/%p &) 1>&2; else links %f || lynx -force_html %f || ${PAGER:-more} %f; fi) 2>/dev/null
Opera is installed on machine a.
* Owners differ, e.g.:
--rw-rw-r-- 1000 1000 2048 ./lib/firmware/rt73.bin
+-rw-r--r-- root root 2048 ./lib/firmware/rt73.bin
Builds were done by userids 1000 (a) and 1001 (b).
* Permissions differ, most notably in /var/lib/opkg/info, e.g.:
--rw-rw-r-- root root 29 ./var/lib/opkg/info/avahi-daemon.conffiles
--rw-rw-r-- root root 1120 ./var/lib/opkg/info/avahi-daemon.control
+-rw-r--r-- root root 29 ./var/lib/opkg/info/avahi-daemon.conffiles
+-rw-r--r-- root root 1120 ./var/lib/opkg/info/avahi-daemon.control
Actually the whole directory is affected. This may be caused by different umasks,
0002 (a) and 0022 (b).
* Python seems to pick up the build-host's kernel version:
-drwxr-xr-x root root 4096 ./usr/lib/python2.7/plat-linux3
--rw-r--r-- root root 195 ./usr/lib/python2.7/plat-linux3/regen
+drwxr-xr-x root root 4096 ./usr/lib/python2.7/plat-linux2
+-rw-r--r-- root root 5035 ./usr/lib/python2.7/plat-linux2/CDROM.py
+-rw-r--r-- root root 6735 ./usr/lib/python2.7/plat-linux2/CDROM.pyo
+-rw-r--r-- root root 1628 ./usr/lib/python2.7/plat-linux2/DLFCN.py
+-rw-r--r-- root root 2708 ./usr/lib/python2.7/plat-linux2/DLFCN.pyo
+-rw-r--r-- root root 13030 ./usr/lib/python2.7/plat-linux2/IN.py
+-rw-r--r-- root root 20436 ./usr/lib/python2.7/plat-linux2/IN.pyo
+-rw-r--r-- root root 3420 ./usr/lib/python2.7/plat-linux2/TYPES.py
+-rw-r--r-- root root 6036 ./usr/lib/python2.7/plat-linux2/TYPES.pyo
+-rwxr-xr-x root root 195 ./usr/lib/python2.7/plat-linux2/regen
I haven't yet figured out which of the changes actually causes python to misbehave.
Creating a symlink plat-linux3 doesn't help, at least.
The python error looks like this:
File "/usr/lib/python2.7/random.py", line 70, in <module>
import _random
ImportError: invalid mode parameter
or
File "/usr/lib/python2.7/site-packages/pythonwifi/iwlibs.py", line 25, in <module>
import array
ImportError: invalid mode parameter
and happens in many different modules.
Regards,
Andreas
next reply other threads:[~2012-03-08 2:36 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-08 2:27 Andreas Oberritter [this message]
2012-03-08 17:50 ` Undeterministic builds with different distributions Mark Hatle
2012-03-08 20:26 ` Andreas Oberritter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F581912.1090708@opendreambox.org \
--to=obi@opendreambox.org \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.