summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/reproducible_common.sh2
-rwxr-xr-xbin/reproducible_openwrt.sh54
-rw-r--r--userContent/reproducible/openwrt/bg.jpgbin0 -> 40537 bytes
-rw-r--r--userContent/reproducible/openwrt/cascade.css99
-rw-r--r--userContent/reproducible/openwrt/header.pngbin0 -> 33244 bytes
-rw-r--r--userContent/reproducible/openwrt/logo.pngbin13810 -> 0 bytes
6 files changed, 128 insertions, 27 deletions
diff --git a/bin/reproducible_common.sh b/bin/reproducible_common.sh
index c8abb7b8..1352b5db 100755
--- a/bin/reproducible_common.sh
+++ b/bin/reproducible_common.sh
@@ -195,7 +195,7 @@ write_page_header() {
if [ "$1" = "dd-list" ] || [ "$1" = "stats" ] ; then
write_page "<p>Join <code>#debian-reproducible</code> on OFTC"
write_page " or <a href="mailto:reproducible-builds@lists.alioth.debian.org">send us an email</a>"
- write_page " to get support for making sure your packages build reproducibly too. Also, we care about free software in general, so if you are an upstream developer or working on another distribution, we'd love to hear from you! Just now We've started to regularily test <a href=\"/coreboot/\">coreboot</a> and <a href=\"/openwrt/\">OpenWRT</a>!"
+ write_page " to get support for making sure your packages build reproducibly too. Also, we care about free software in general, so if you are an upstream developer or working on another distribution, we'd love to hear from you! Just now we've started to programatically test <a href=\"/coreboot/\">coreboot</a> and <a href=\"/openwrt/\">OpenWRT</a>!"
write_page "</p>"
fi
write_page "<ul><li>Have a look at:</li>"
diff --git a/bin/reproducible_openwrt.sh b/bin/reproducible_openwrt.sh
index 9a2bcde7..6bfb3e8a 100755
--- a/bin/reproducible_openwrt.sh
+++ b/bin/reproducible_openwrt.sh
@@ -70,11 +70,18 @@ save_openwrt_results(){
cd bin
for i in * ; do
cd $i
+ # save images
mkdir -p $TMPDIR/$RUN/$i
- for j in $(find . -name "*.bin") ; do
+ for j in $(find . -name "*.bin" -exec basename \{\} \; ) ; do
cp -p $j $TMPDIR/$RUN/$i/
done
- cd ..
+ # save packages
+ cd packages
+ for j in $(find * -name "*.ipk") ; do
+ mkdir -p $TMPDIR/$RUN/$i/ipk/$(dirname $j)
+ cp -p $j $TMPDIR/$RUN/$i/ipk/$(dirname $j)
+ done
+ cd ../..
done
cd ..
}
@@ -125,7 +132,7 @@ ionice -c 3 nice \
ionice -c 3 nice \
make -j $NUM_CPU package/cleanup
ionice -c 3 nice \
- make -j $NUM_CPU package/compile
+ make -j $NUM_CPU package/compile || true # don't let some packages fail the whole build
ionice -c 3 nice \
make -j $NUM_CPU package/install
ionice -c 3 nice \
@@ -160,7 +167,7 @@ ionice -c 3 nice \
make -j $NEW_NUM_CPU package/cleanup
ionice -c 3 nice \
linux64 --uname-2.6 \
- make -j $NEW_NUM_CPU package/compile
+ make -j $NEW_NUM_CPU package/compile || true # don't let some packages fail the whole build
ionice -c 3 nice \
linux64 --uname-2.6 \
make -j $NEW_NUM_CPU package/install
@@ -186,12 +193,12 @@ save_openwrt_results b2
#
TOOLCHAIN_HTML=$(mktemp)
TARGET=$(ls -1d staging_dir/toolchain*|cut -d "-" -f2-|xargs echo)
-echo "<table><tr><th>Contents of <pre>build_dir/host/</pre></th></tr>" > $TOOLCHAIN_HTML
+echo "<table><tr><th>Contents of <code>build_dir/host/</code></th></tr>" > $TOOLCHAIN_HTML
for i in $(ls -1 build_dir/host/) ; do
echo " <tr><td>$i</td></tr>" >> $TOOLCHAIN_HTML
done
echo "</table>" >> $TOOLCHAIN_HTML
-echo "<table><tr><th>Downloaded software built for <pre>$TARGET</pre></th></tr>" >> $TOOLCHAIN_HTML
+echo "<table><tr><th>Downloaded software built for <code>$TARGET</code></th></tr>" >> $TOOLCHAIN_HTML
for i in $(ls -1 dl/) ; do
echo " <tr><td>$i</td></tr>" >> $TOOLCHAIN_HTML
done
@@ -215,14 +222,14 @@ echo "==========================================================================
echo "$(date -u) - Running $DBDVERSION on openwrt images now"
echo "============================================================================="
IMAGES_HTML=$(mktemp)
-echo " <ul>" > $IMAGES_HTML
+echo " <table><tr><th>Images for <code>$TARGET</code></th></tr>" > $IMAGES_HTML
GOOD_IMAGES=0
ALL_IMAGES=0
create_results_dirs
cd $TMPDIR/b1
for i in * ; do
cd $i
- for j in $(find . -name "*.bin"|sort -u ) ; do
+ for j in $(find . -name "*.bin" -exec basename \{\} \; |sort -u ) ; do
let ALL_IMAGES+=1
call_debbindiff $i $j
SIZE="$(du -h -b $j | cut -f1)"
@@ -230,17 +237,17 @@ for i in * ; do
if [ -f $TMPDIR/$i/$j.html ] ; then
mkdir -p $BASE/openwrt/dbd/$i
mv $TMPDIR/$i/$j.html $BASE/openwrt/dbd/$i/$j.html
- echo " <li><a href=\"dbd/$i/$j.html\"><img src=\"/userContent/static/weather-showers-scattered.png\" alt=\"unreproducible icon\" /> $j</a> (${SIZE}K) is unreproducible.</li>" >> $IMAGES_HTML
+ echo " <tr><td><a href=\"dbd/$i/$j.html\"><img src=\"/userContent/static/weather-showers-scattered.png\" alt=\"unreproducible icon\" /> $j</a> (${SIZE}K) is unreproducible.</td></tr>" >> $IMAGES_HTML
else
SHASUM=$(sha256sum $j|cut -d " " -f1)
- echo " <li><img src=\"/userContent/static/weather-clear.png\" alt=\"reproducible icon\" /> $j ($SHASUM, ${SIZE}K) is reproducible.</li>" >> $IMAGES_HTML
+ echo " <tr><td><img src=\"/userContent/static/weather-clear.png\" alt=\"reproducible icon\" /> $j ($SHASUM, ${SIZE}K) is reproducible.</td></tr>" >> $IMAGES_HTML
let GOOD_IMAGES+=1
rm -f $BASE/openwrt/dbd/$i/$j.html # cleanup from previous (unreproducible) tests - if needed
fi
done
cd ..
done
-echo " </ul>" >> $IMAGES_HTML
+echo " </table>" >> $IMAGES_HTML
GOOD_PERCENT=$(echo "scale=1 ; ($GOOD_IMAGES*100/$ALL_IMAGES)" | bc)
#
@@ -255,22 +262,17 @@ cat > $PAGE <<- EOF
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<title>openwrt</title>
- <!-- link rel='stylesheet' id='twentyfourteen-style-css' href='landing_style.css?ver=4.0' type='text/css' media='all' /-->
+ <link rel='stylesheet' id='kamikaze-style-css' href='cascading.css?ver=4.0' type='text/css' media='all'>
</head>
<body>
- <div class="content">
- <div class="page-content">
- <p>&nbsp;</p>
- <p><center><img src="logo.png" alt="openwrt logo"" /><br />
- <blockquote>
- <br />
- <strong>OpenWRT</strong>: <em>reproducible</em> wireless freedom?
- </blockquote>
- <pre>
+ <div id="header">
+ <p><center>
+ <code>
EOF
cat $(find openwrt/build_dir/ -name banner | grep etc/banner|head -1) >> $PAGE
-write_page " </pre></center></p>"
-write_page " <h1>Reproducible OpenWRT</h1>"
+write_page " </code></center></p>"
+write_page " </div><div id=\"main-content\">"
+write_page " <h1>Reproducible OpenWRT - <em>reproducible</em> wireless freedom?</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 workarounds and solutions are known.<br />"
write_page " <em>Reproducible OpenWRT</em> is an effort to apply this to OpenWRT. Thus each OpenWR target is build twice, with a few varitations added and then the resulting images from the two builds 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_openwrt/\">jenkins job</a> to test the <code>master</code> branch of <a href=\"git://git.openwrt.org/openwrt.git\">openwrt.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_openwrt.sh\">reproducible_openwrt.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=\"mailto:reproducible-builds@lists.alioth.debian.org\">feedback</a> are very much appreciated!</p>"
@@ -278,11 +280,11 @@ write_page " <p>$GOOD_IMAGES ($GOOD_PERCENT%) out of $ALL_IMAGES built ope
write_page " These tests were last run on $DATE for version ${OPENWRT_VERSION}.</p>"
write_explaination_table OpenWRT
cat $IMAGES_HTML >> $PAGE
-write_page " <p><pre>"
+write_page " <table><tr><th>git commit built</th></tr><tr><td>><code>"
echo -n "$OPENWRT" >> $PAGE
-write_page " </pre></p>"
+write_page " </code></td></tr></table>"
cat $TOOLCHAIN_HTML >> $PAGE
-write_page " </div></div>"
+write_page " </div>"
write_page_footer OpenWRT
publish_page
rm -f $IMAGES_HTML $TOOLCHAIN_HTML
diff --git a/userContent/reproducible/openwrt/bg.jpg b/userContent/reproducible/openwrt/bg.jpg
new file mode 100644
index 00000000..dece957d
--- /dev/null
+++ b/userContent/reproducible/openwrt/bg.jpg
Binary files differ
diff --git a/userContent/reproducible/openwrt/cascade.css b/userContent/reproducible/openwrt/cascade.css
new file mode 100644
index 00000000..26a54561
--- /dev/null
+++ b/userContent/reproducible/openwrt/cascade.css
@@ -0,0 +1,99 @@
+@charset "utf-8";
+
+@media all {
+
+html {
+ min-height: 100%;
+ height: auto;
+}
+
+body {
+ color: #ffffff;
+ background-color: #4a6b7c;
+ background-image: url(bg.jpg);
+ background-position: bottom center;
+ background-repeat: repeat-x;
+ font-family: Verdana, Arial, sans-serif;
+ font-size: 101%;
+ line-height: 110%;
+ padding-bottom: 1.5em;
+}
+
+code {
+ font-family: monospace;
+ white-space: pre;
+ margin-left: 2em;
+}
+
+ul {
+ margin-left: 2em;
+}
+
+
+#header {
+ min-height: 98px;
+ background-image: url(header.png);
+ background-repeat: no-repeat;
+ background-position: left center;
+ background-color: #557788;
+ color: #ffffff;
+ text-align: right;
+}
+
+h1 {
+ padding: 1em 1em 0 1em;
+}
+
+p {
+ padding: 1em 1em 1em 1em;
+}
+
+#maincontent {
+ clear: both;
+ width: 80%;
+ margin: 0 auto;
+ padding: 0.5em;
+ background: #f5f5f5;
+ color: #000000;
+ border-width: 0 1px 1px 1px;
+ border-style: solid;
+ border-color: #444444;
+ font-size: 80%;
+}
+
+table td,
+table th {
+ color: #000000;
+}
+
+table {
+ background: #f5f5f5;
+ color: #000000;
+ border-top: 1px solid #666666;
+ border-right: 1px solid #666666;
+ border-bottom: 1px solid #666666;
+ font-size: 90%;
+ width: 80%;
+ margin-left: auto;
+ margin-right: auto;
+ border-collapse: collapse;
+}
+
+table tr:hover td {
+ background-color: #bbddee;
+ color: #000000;
+}
+
+table tr th {
+ padding: 0 0.25em;
+ border-left: 1px solid #666666;
+ text-align: left;
+}
+
+table tr td {
+ padding: 0 0.25em;
+ border-top: 1px solid #666666;
+ border-left: 1px solid #666666;
+}
+
+}
diff --git a/userContent/reproducible/openwrt/header.png b/userContent/reproducible/openwrt/header.png
new file mode 100644
index 00000000..5a7c9a10
--- /dev/null
+++ b/userContent/reproducible/openwrt/header.png
Binary files differ
diff --git a/userContent/reproducible/openwrt/logo.png b/userContent/reproducible/openwrt/logo.png
deleted file mode 100644
index 916fb57a..00000000
--- a/userContent/reproducible/openwrt/logo.png
+++ /dev/null
Binary files differ