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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox