diff options
author | Holger Levsen <holger@layer-acht.org> | 2015-06-10 19:12:05 +0200 |
---|---|---|
committer | Holger Levsen <holger@layer-acht.org> | 2015-06-10 19:12:05 +0200 |
commit | e0a362d6a20f202573e368d149360ddbe387517b (patch) | |
tree | 4d0d2b3ba9e30123465d4c8991217f5faded8c2f | |
parent | 68c8576870369953c24dc830521a081068cf4e5e (diff) | |
download | jenkins.debian.net-e0a362d6a20f202573e368d149360ddbe387517b.tar.xz |
reproducible coreboot: build with no payloads
-rw-r--r-- | TODO | 5 | ||||
-rwxr-xr-x | bin/reproducible_coreboot.sh | 6 | ||||
-rwxr-xr-x | bin/reproducible_scheduler.py | 39 |
3 files changed, 39 insertions, 11 deletions
@@ -235,9 +235,10 @@ egrep -R -l '(debbindiff had trouble comparing|maybe there is still )' /var/lib/ * coreboot ** add more variations: domain+hostname, uid+gid, USER, UTS namespace -** split into two jobs, one to build the toolchain, the other to test, keep the git repo and update it. run both jobs weekly. +** split into two jobs? one to build the toolchain, the other to test, keep the git repo and update it. run both jobs weekly. *** call script with "init" or "run-tests" -*** not sure how to best keep the git repo and the toolchain (not on tmpfs) while building in tmpfs... +*** not sure how to best keep the git repo and the toolchain (not on tmpfs) while building in tmpfs... maybe just do it in one job... +** build the docs? * openwrt ---- diff --git a/bin/reproducible_coreboot.sh b/bin/reproducible_coreboot.sh index 7b41f8d8..a925a5ee 100755 --- a/bin/reproducible_coreboot.sh +++ b/bin/reproducible_coreboot.sh @@ -146,7 +146,7 @@ sed -i "s#cpus=1#cpus=$NUM_CPU#" util/abuild/abuild sed -i 's#USE_XARGS=1#USE_XARGS=0#g' util/abuild/abuild # actually build everything nice ionice -c 3 \ - bash util/abuild/abuild || true # don't fail the full job just because some targets fail + bash util/abuild/abuild --payloads none || true # don't fail the full job just because some targets fail cd coreboot-builds for i in * ; do @@ -175,7 +175,7 @@ NEW_NUM_CPU=$(echo $NUM_CPU-1|bc) sed -i "s#cpus=$NUM_CPU#cpus=$NEW_NUM_CPU#" util/abuild/abuild nice ionice -c 3 \ linux64 --uname-2.6 \ - bash util/abuild/abuild || true # don't fail the full job just because some targets fail + bash util/abuild/abuild --payloads none || true # don't fail the full job just because some targets fail # reset environment to default values again export LANG="en_GB.UTF-8" @@ -225,7 +225,7 @@ cat > $PAGE <<- EOF EOF write_page " <h1>Reproducible Coreboot</h1>" write_page " <p><em>Reproducible builds</em> enable anyone to reproduce bit by bit identical binary packages from a given source, so that anyone can verify that a given binary derived from the source it was said to be derived. There is a lot more information about <a href=\"https://wiki.debian.org/ReproducibleBuilds\">reproducible builds on the Debian wiki</a> and on <a href=\"https://reproducible.debian.net\">https://reproducible.debian.net</a>. The wiki has a lot more information, eg. why this is useful, what common issues exist and which workaround and solutions are known.<br />" -write_page " <em>Reproducible Coreboot</em> is an effort to apply this to coreboot. Thus each coreboot.rom is build twice, with a few varitations added and then those two ROMs are compared using <a href=\"https://tracker.debian.org/debbindiff\">debbindiff</a>. Please note that the toolchain is not varied at all as the rebuild happens on exactly the same system. More variations are expected to be seen in the wild.</p>" +write_page " <em>Reproducible Coreboot</em> is an effort to apply this to coreboot. Thus each coreboot.rom is build twice (without payloads), with a few varitations added and then those two ROMs are compared using <a href=\"https://tracker.debian.org/debbindiff\">debbindiff</a>. Please note that the toolchain is not varied at all as the rebuild happens on exactly the same system. More variations are expected to be seen in the wild.</p>" write_page " <p>There is a monthly run <a href=\"https://jenkins.debian.net/view/reproducible/job/reproducible_coreboot/\">jenkins job</a> to test the <code>master</code> branch of <a href=\"https://review.coreboot.org/p/coreboot.git\">coreboot.git</a>. Currently this job is triggered more often though, because this is still under development and brand new. The jenkins job is simply running <a href=\"http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/bin/reproducible_coreboot.sh\">reproducible_coreboot.sh</a> in a Debian environemnt and this script is solely responsible for creating this page. Feel invited to join <code>#debian-reproducible</code> (on irc.oftc.net) to request job runs whenever sensible. Patches and other <a href=\"reproducible-builds@lists.alioth.debian.org\">feedback</a> are very much appreciated!</p>" write_page "<p><pre>" echo -n "$COREBOOT" >> $PAGE diff --git a/bin/reproducible_scheduler.py b/bin/reproducible_scheduler.py index 85e3d60a..4a60fe0f 100755 --- a/bin/reproducible_scheduler.py +++ b/bin/reproducible_scheduler.py @@ -304,12 +304,39 @@ def scheduler(): # update the scheduled page generate_schedule() # from reproducible_html_indexes # build the kgb message text - message = 'Scheduled in ' + '+'.join(SUITES) + ': ' + \ - add_up_numbers(untested) + ' new and untested packages, ' + \ - add_up_numbers(new) + ' packages with new versions and ' + \ - add_up_numbers(old) + ' old packages with the same version, ' + \ - 'for ' + str(total) + ' or ' + \ - '+'.join([str(now_queued_here[x]) for x in SUITES]) + ' packages in total.' + message = 'Scheduled in ' + '+'.join(SUITES) + ': ' + msgs = 0 + if add_up_numbers(untested) != '0': + msg_untested = add_up_numbers(untested) + ' new and untested packages' + msgs += 1 + else: + msg_untested = '' + if add_up_numbers(new) != '0': + msg_versions = add_up_numbers(new) + ' packages with new versions' + msgs += 1 + else: + msg_versions = '' + if add_up_numbers(old) != '0': + msg_old = add_up_numbers(old) + ' old packages with the same version' + msgs += 1 + else: + msg_old = '' + if len(msg_untested) != 0 + message += msg_untested + if msgs == 2: + message += ' and' + else: + message += ',' + if len(msg_versions) != 0 + message += msg_versions + if msgs == 3: + message += ' and' + else: + message += ',' + if len(msg_old) != 0 + message += msg_old + ',' + message += 'for ' + str(total) + ' or ' + \ + '+'.join([str(now_queued_here[x]) for x in SUITES]) + ' packages in total.' log.info('\n\n\n') log.info(message) # only notifiy irc if there were packages scheduled in any suite |