summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/reproducible_common.py77
-rwxr-xr-xbin/reproducible_common.sh92
-rwxr-xr-xbin/reproducible_html_packages.py21
3 files changed, 125 insertions, 65 deletions
diff --git a/bin/reproducible_common.py b/bin/reproducible_common.py
index 0bc374a7..e71eb713 100755
--- a/bin/reproducible_common.py
+++ b/bin/reproducible_common.py
@@ -165,11 +165,10 @@ html_footer = Template("""
</div></body>
</html>""" % (JOB_FOOTER, JENKINS_URL))
-html_head_page = Template((tab*2).join("""
+html_head_page = Template((tab*2).join(("""
<header class="head">
<h2>$page_title</h2>
<ul class=\"menu\">
-$links
<li>$suite/$arch:<ul class="children">
<li>Notes:<ul class="children">
<li><a href="/$suite/$arch/index_notes.html">packages with notes</a></li>
@@ -200,25 +199,30 @@ $links
</a>
</li>
</ul></li>
-$pkgsetslink
+ $link_pkgsets
<li>Recently tested:<ul class="children">
<li><a href="/$suite/$arch/index_last_24h.html">packages tested in the last 24h</a></li>
<li><a href="/$suite/arch/index_last_48h.html">packages tested in the last 48h</a></li>
</ul></li>
<li><a href="/$suite/$arch/index_all_abc.html">all tested packages (sorted alphabetically)</a></li>
</ul></li>
- <li><a href="/index_issues.html">issues</a></li>
- <li><a href="/index_${arch}_scheduled.html">currently scheduled</a></li>
- <li><a href="/index_notify.html" title="notify icon">⚑ packages with enabled notifications</a></li>
- <li><a href="/$suite/index_dd-list.html">maintainers of unreproducible packages</a></li>
- <li><a href="/index_repositories.html">repositories overview</a></li>
- <li><a href="/reproducible.html">dashboard</a></li>
- <li><a href="https://wiki.debian.org/ReproducibleBuilds" target="_blank">wiki</a></li>
- <li><a href="https://reproducible.alioth.debian.org/blog/" target="_blank">blog</a></li>
- <li><a href="https://Reproducible-builds.org" target="_blank">Reproducible-builds.org</a></li>
+ <li>Architectures:<ul class="children">
+ $link_archs
+ <li><a href="/index_${arch}_scheduled.html">currently scheduled</a></li>
+ </ul></li>
+ <li>Suites:<ul class="children">
+ $link_suites
+ <li><a href="/$suite/index_dd-list.html">maintainers of unreproducible packages</a></li>
+ </ul></li>
+ <li><a href="%s">Debian dashboard</a>
+ <ul class="children">
+ <li><a href="/index_issues.html">issues</a></li>
+ <li><a href="/index_repositories.html">repositories overview</a></li>
+ <li><a href="/index_notify.html" title="notify icon">⚑ packages with enabled notifications</a></li>
+ </ul></li>
</ul>
-</header><div class="mainbody">""".splitlines(True)))
-
+$project_links
+</header><div class="mainbody">""" % REPRODUCIBLE_URL ).splitlines(True)))
html_foot_page_style_note = Template((tab*2).join("""
<p style="font-size:0.9em;">
@@ -233,6 +237,24 @@ html_foot_page_style_note = Template((tab*2).join("""
indicates a closed bug. In cases of several bugs, the symbol is repeated.
</p>""".splitlines(True)))
+html_project_links = Template((tab*2).join("""
+ <ul class="reproducible-links">
+ <li>Reproducible Builds projects links
+ <ul class="children"><li>
+ <a href="https://Reproducible-builds.org">Reproducible-builds.org</a><br />
+ Reproducible-builds.org - <a href="https://Reproducible-builds.org/docs/">HowTo</a><br />
+ Reproducible Debian - <a href="https://wiki.debian.org/ReproducibleBuilds">Wiki</a><br />
+ Reproducible builds <a href="https://reproducible.alioth.debian.org/blog/">weekly news</a><br />
+ </li><li>
+ Reproducible <a href="https://tests.reproducible-builds.org/archlinux/">Arch Linux</a> /
+ <a href="https://tests.reproducible-builds.org/coreboot/">coreboot</a> /
+ <a href="https://tests.reproducible-builds.org/fedora/">Fedora</a> /
+ <a href="https://tests.reproducible-builds.org/freebsd/">FreeBSD</a> /
+ <a href="https://tests.reproducible-builds.org/netbsd/">NetBSD</a> /
+ <a href="https://tests.reproducible-builds.org/openwrt/">OpenWrt</a>
+ </li></ul></li>
+ </ul>
+""".splitlines(True)))
url2html = re.compile(r'((mailto\:|((ht|f)tps?)\://|file\:///){1}\S+)')
@@ -299,16 +321,18 @@ def convert_into_hms_string(duration):
def _gen_pkg_sets_link(suite, arch):
html = ''
if suite != 'experimental':
- html = '<li><a href="/$suite/$arch/index_pkg_sets.html">package sets</a></li>'
+ html = '<li><a href="/' + suite + '/' + arch + '/index_pkg_sets.html">package sets</a></li>'
return html
-
-def _gen_links(suite, arch):
- html = '<li>Architectures:'
+def _gen_arch_links(suite, arch):
+ html = '<li>'
for a in ARCHS:
- html += ' <a href="/$suite/index_suite_' + a + '_stats.html\">' + a + '</a>'
+ html += ' <a href="/' + suite + '/index_suite_' + a + '_stats.html\">' + a + '</a>'
html += '</li>'
- html += '<li>Suites:'
+ return html
+
+def _gen_suite_links(suite, arch):
+ html = '<li>'
for s in SUITES:
html += ' <a href="/' + s + '/index_suite_' + arch + '_stats.html">' + s + '</a>'
html += '</li>'
@@ -324,14 +348,19 @@ def write_html_page(title, body, destfile, suite=defaultsuite, arch=defaultarch,
page_title=title,
meta_refresh=meta_refresh)
if not noheader:
- links = _gen_links(suite, arch)
- pkgsetslink = _gen_pkg_sets_link(suite, arch)
+ link_archs = _gen_arch_links(suite, arch)
+ link_suites = _gen_suite_links(suite, arch)
+ link_pkgsets = _gen_pkg_sets_link(suite, arch)
+ project_links=html_project_links.substitute()
+
html += html_head_page.substitute(
page_title=title,
suite=suite,
arch=arch,
- links=links,
- pkgsetslink=pkgsetslink)
+ link_archs=link_archs,
+ link_suites=link_suites,
+ link_pkgsets=link_pkgsets,
+ project_links=project_links)
html += body
if style_note:
html += html_foot_page_style_note.substitute()
diff --git a/bin/reproducible_common.sh b/bin/reproducible_common.sh
index cb9eb3b5..57fb10ba 100755
--- a/bin/reproducible_common.sh
+++ b/bin/reproducible_common.sh
@@ -181,10 +181,12 @@ write_icon() {
}
write_page_header() {
+ # this is really quite uncomprehensible and should be killed
+ # the solution is to write all html pages with python…
rm -f $PAGE
MAINVIEW="dashboard"
ALLSTATES="reproducible FTBR FTBFS depwait not_for_us 404 blacklisted"
- ALLVIEWS="issues notes no_notes scheduled last_24h last_48h all_abc notify dd-list pkg_sets suite_stats arch repositories dashboard"
+ ALLVIEWS="notes no_notes pkg_sets last_24h last_48h all_abc arch scheduled suite_stats dd-list dashboard issues repositories notify"
GLOBALVIEWS="issues scheduled notify repositories dashboard"
SUITEVIEWS="dd-list suite_stats"
SPOKENTARGET["issues"]="issues"
@@ -199,7 +201,7 @@ write_page_header() {
SPOKENTARGET["pkg_sets"]="package sets"
SPOKENTARGET["suite_stats"]="suite: $SUITE"
SPOKENTARGET["repositories"]="repositories overview"
- SPOKENTARGET["dashboard"]="dashboard"
+ SPOKENTARGET["dashboard"]="Debian dashboard"
write_page "<!DOCTYPE html><html><head>"
write_page "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />"
write_page "<meta name=\"viewport\" content=\"width=device-width\" />"
@@ -210,14 +212,8 @@ write_page_header() {
else
write_page "<body class=\"wrapper\" onload=\"selectSearch()\"><header class=\"head\"><h2>$2</h2>"
fi
- write_page "<ul class=\"menu\"><li>Package states:"
- write_page "<ul class=\"children\"><li>"
- for MY_STATE in $ALLSTATES ; do
- set_icon $MY_STATE
- write_icon
- write_page " "
- done
- write_page "</li></ul></li>"
+ write_page "<ul class=\"menu\">"
+ write_page "<li>$SUITE/$ARCH:<ul class=\"children\">"
for TARGET in $ALLVIEWS ; do
if [ "$TARGET" = "pkg_sets" ] && [ "$SUITE" = "experimental" ] ; then
# no pkg_sets are tested in experimental
@@ -236,30 +232,78 @@ write_page_header() {
BASEURL="/$SUITE"
fi
done
- if [ "$TARGET" = "suite_stats" ] ; then
- for i in $SUITES ; do
- write_page "<li><a href=\"/$i/index_suite_${ARCH}_stats.html\">suite: $i</a></li>"
- done
- elif [ "$TARGET" = "scheduled" ] ; then
+ # prepare unsorted lists
+ if [ "$TARGET" = "notes" ] ; then
+ write_page "<li>Notes<ul class=\"children\">"
+ elif [ "$TARGET" = "last_24h" ] ; then
+ write_page "<li>Recently tested:<ul class=\"children\">"
+ fi
+ # prepare links
+ if [ "$TARGET" = "scheduled" ] ; then
write_page "<li><a href=\"/index_${ARCH}_scheduled.html\">${SPOKEN_TARGET}</a></li>"
elif [ "$TARGET" = "notify" ] ; then
write_page "<li><a href=\"$BASEURL/index_${TARGET}.html\" title=\"notify icon\">${SPOKEN_TARGET}</a></li>"
elif [ "$TARGET" = "arch" ] ; then
- for LINKARCH in ${ARCHS} ; do
- if [ "$ARCH" = "$LINKARCH" ] ; then
- continue
- else
- write_page "<li><a href=\"/unstable/index_suite_${LINKARCH}_stats.html\">arch: $LINKARCH</a></li>"
- fi
+ write_page "<li>Architectures:<ul class=\"children\"><li>"
+ for i in ${ARCHS} ; do
+ write_page " <a href=\"/$SUITE/index_suite_${i}_stats.html\">$i</a>"
done
+ write_page "</li>"
+ elif [ "$TARGET" = "suite_stats" ] ; then
+ write_page "<li>Suites:<ul class=\"children\"><li>"
+ for i in $SUITES ; do
+ write_page " <a href=\"/$i/index_suite_${ARCH}_stats.html\">$i</a>"
+ done
+ write_page "</li>"
+ elif [ "$TARGET" = "dashboard" ] ; then
+ write_page "<li><a href=\"$BASEURL/index_${TARGET}.html\">${SPOKEN_TARGET}</a><ul class=\"children\">"
else
+ # finally, write link
write_page "<li><a href=\"$BASEURL/index_${TARGET}.html\">${SPOKEN_TARGET}</a></li>"
fi
+ # close unsorted lists (and package states loop)
+ if [ "$TARGET" = "all_abc" ] ; then
+ write_page "</ul></li>"
+ elif [ "$TARGET" = "last_48h" ] ; then
+ write_page "</ul></li>"
+ elif [ "$TARGET" = "notify" ] ; then
+ write_page "</ul></li>"
+ elif [ "$TARGET" = "scheduled" ] ; then
+ write_page "</ul></li>"
+ elif [ "$TARGET" = "dd-list" ] ; then
+ write_page "</ul></li>"
+ elif [ "$TARGET" = "no_notes" ] ; then
+ write_page "</ul></li>"
+ # after notes we have package states
+ write_page "<li>Package states:"
+ write_page "<ul class=\"children\"><li>"
+ for MY_STATE in $ALLSTATES ; do
+ set_icon $MY_STATE
+ write_icon
+ write_page " "
+ done
+ write_page "</li></ul></li>"
+ fi
done
- write_page "<li><a href=\"https://wiki.debian.org/ReproducibleBuilds\" target=\"_blank\">wiki</a></li>"
- write_page "<li><a href=\"https://reproducible.alioth.debian.org/blog/\" target=\"_blank\">blog</a></li>"
- write_page "<li><a href=\"https://Reproducible-builds.org\" target=\"_blank\">Reproducible-builds.org</a></li>"
write_page "</ul>"
+ # project links
+ write_page " <ul class=\"reproducible-links\">"
+ write_page " <li>Reproducible Builds projects links"
+ write_page " <ul class=\"children\"><li>"
+ write_page " <a href=\"https://Reproducible-builds.org\">Reproducible-builds.org</a><br />"
+ write_page " Reproducible-builds.org - <a href=\"https://Reproducible-builds.org/docs/\">HowTo</a><br />"
+ write_page " Reproducible Debian - <a href=\"https://wiki.debian.org/ReproducibleBuilds\">Wiki</a><br />"
+ write_page " Reproducible builds <a href=\"https://reproducible.alioth.debian.org/blog/\">weekly news</a><br />"
+ write_page " </li><li>"
+ write_page " Reproducible <a href=\"https://tests.reproducible-builds.org/archlinux/\">Arch Linux</a> /"
+ write_page " <a href=\"https://tests.reproducible-builds.org/coreboot/\">coreboot</a> /"
+ write_page " <a href=\"https://tests.reproducible-builds.org/fedora/\">Fedora</a> /"
+ write_page " <a href=\"https://tests.reproducible-builds.org/freebsd/\">FreeBSD</a> /"
+ write_page " <a href=\"https://tests.reproducible-builds.org/netbsd/\">NetBSD</a> /"
+ write_page " <a href=\"https://tests.reproducible-builds.org/openwrt/\">OpenWrt</a>"
+ write_page " </li></ul></li>"
+ write_page " </ul>"
+ # end project links
write_page "</header>"
write_page "<div class=\"mainbody\">"
if [ "$1" = "$MAINVIEW" ] ; then
diff --git a/bin/reproducible_html_packages.py b/bin/reproducible_html_packages.py
index fc59f3e1..fe64450d 100755
--- a/bin/reproducible_html_packages.py
+++ b/bin/reproducible_html_packages.py
@@ -39,25 +39,10 @@ html_package_page = Template((tab*2).join(("""
<li>
<a href="$history" target="main">Test history</a>
</li>
- </ul>
-
${suites_links}
-
- <ul class="reproducible-links">
- Reproducible Builds projects links
- <li>
- tests.reproducible-builds.org - <a href="%s">Debian Dashboard</a><br />
- Reproducible Debian - <a href="https://wiki.debian.org/ReproducibleBuilds">Wiki</a><br />
- Reproducible-builds.org - <a href="https://Reproducible-builds.org/docs/">HowTo</a><br />
- <a href="https://Reproducible-builds.org">Reproducible-builds.org</a><br />
- Reproducible <a href="https://tests.reproducible-builds.org/archlinux/">Arch Linux</a> /
- <a href="https://tests.reproducible-builds.org/coreboot/">coreboot</a> /
- <a href="https://tests.reproducible-builds.org/fedora/">Fedora</a> /
- <a href="https://tests.reproducible-builds.org/freebsd/">FreeBSD</a> /
- <a href="https://tests.reproducible-builds.org/netbsd/">NetBSD</a> /
- <a href="https://tests.reproducible-builds.org/openwrt/">OpenWrt</a>
- </li>
+ <li><a href="%s">Debian dashboard</a></li></ul>
</ul>
+${project_links}
</header>
<iframe id="main" name="main" tabindex="1" src="${default_view}">
@@ -271,6 +256,7 @@ def gen_packages_html(packages, no_clean=False):
status, icon, spokenstatus = get_status_icon(status)
status = gen_status_link_icon(status, spokenstatus, icon, suite, arch)
history = '{}/{}.html'.format(HISTORY_URI, pkg)
+ project_links = html_project_links.substitute()
html = html_package_page.substitute(
package=pkg,
@@ -283,6 +269,7 @@ def gen_packages_html(packages, no_clean=False):
links=links,
notify_maintainer=package.notify_maint,
suites_links=suites_links,
+ project_links=project_links,
default_view=default_view)
destfile = RB_PKG_PATH + '/' + suite + '/' + arch + '/' + pkg + '.html'
desturl = REPRODUCIBLE_URL + RB_PKG_URI + '/' + suite + \