[calm - Cygwin server-side packaging maintenance script] branch master, updated. 20230209-109-g21a8e6b
Jon Turney
jturney@sourceware.org
Sat May 4 15:34:51 GMT 2024
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=21a8e6b6e8ae03f326c5832f13e00f63c48d4147
commit 21a8e6b6e8ae03f326c5832f13e00f63c48d4147
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Sat May 4 16:28:17 2024 +0100
Wind the obsolete package exipry threshold age forward
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=8729295b9b205c2db2a6bb0981f2d50f504a3462
commit 8729295b9b205c2db2a6bb0981f2d50f504a3462
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Thu May 2 18:41:53 2024 +0100
Include arch into package summary versions table
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=ded3a9940351cb51f84d76e544308f0e38debdcc
commit ded3a9940351cb51f84d76e544308f0e38debdcc
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Thu May 2 13:38:56 2024 +0100
Simplify the way arch_re is made
(There's actually a thinko in the previous implementation, as it doesn't
add the '-' in the right place if the ARCHES list has more than one
element.)
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=10400e31a8eae916b65edaecfac3b32b26aeede2
commit 10400e31a8eae916b65edaecfac3b32b26aeede2
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Wed May 1 19:23:56 2024 +0100
Improve fix-requires-by-linkage tool
* allow to only consider packages which already have some dependency
* also consider loadable modules built with .so extension
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=eb276adc82952e8509a489f6b893166e4dc87ac8
commit eb276adc82952e8509a489f6b893166e4dc87ac8
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Sun Apr 28 21:20:52 2024 +0100
Include obsoletes: in the set of valid things to depends: on
It's OK to depends: on something which only exists as an obsoletes: on
some package, after the original package providing it has been removed.
Diff:
---
calm/fix-requires-by-linkage.py | 6 ++-
calm/package.py | 19 ++++++----
calm/past_mistakes.py | 4 +-
calm/pkg2html.py | 43 +++++++++++-----------
test/testdata/htdocs.expected/summary/arc-src.html | 9 ++---
test/testdata/htdocs.expected/summary/arc.html | 9 ++---
.../htdocs.expected/summary/base-cygwin.html | 11 ++----
.../htdocs.expected/summary/corrupt-src.html | 9 ++---
test/testdata/htdocs.expected/summary/corrupt.html | 9 ++---
.../htdocs.expected/summary/cygwin-debuginfo.html | 13 +++----
.../htdocs.expected/summary/cygwin-devel.html | 13 +++----
.../htdocs.expected/summary/cygwin-src.html | 13 +++----
test/testdata/htdocs.expected/summary/cygwin.html | 13 +++----
.../htdocs.expected/summary/keychain-src.html | 11 ++----
.../testdata/htdocs.expected/summary/keychain.html | 11 ++----
.../htdocs.expected/summary/libdns_sd-devel.html | 9 ++---
.../htdocs.expected/summary/libdns_sd1.html | 9 ++---
.../htdocs.expected/summary/mDNSResponder-src.html | 9 ++---
.../htdocs.expected/summary/mDNSResponder.html | 9 ++---
.../htdocs.expected/summary/obs-a-src.html | 9 ++---
test/testdata/htdocs.expected/summary/obs-a.html | 9 ++---
.../htdocs.expected/summary/obs-b-src.html | 9 ++---
test/testdata/htdocs.expected/summary/obs-b.html | 9 ++---
.../htdocs.expected/summary/openssh-src.html | 9 ++---
test/testdata/htdocs.expected/summary/openssh.html | 9 ++---
.../per-version-replacement-hint-only-src.html | 9 ++---
.../summary/per-version-replacement-hint-only.html | 9 ++---
.../htdocs.expected/summary/per-version-src.html | 11 ++----
.../htdocs.expected/summary/per-version.html | 11 ++----
.../summary/perl-Net-SMTP-SSL-src.html | 13 +++----
.../htdocs.expected/summary/perl-Net-SMTP-SSL.html | 13 +++----
.../htdocs.expected/summary/rpm-doc-src.html | 9 ++---
test/testdata/htdocs.expected/summary/rpm-doc.html | 11 ++----
.../htdocs.expected/summary/staleversion-src.html | 19 ++++------
.../htdocs.expected/summary/staleversion.html | 19 ++++------
.../htdocs.expected/summary/test-c-src.html | 9 ++---
test/testdata/htdocs.expected/summary/test-c.html | 9 ++---
.../htdocs.expected/summary/test-d-src.html | 9 ++---
test/testdata/htdocs.expected/summary/test-d.html | 9 ++---
.../htdocs.expected/summary/test-e-src.html | 9 ++---
test/testdata/htdocs.expected/summary/test-e.html | 9 ++---
.../htdocs.expected/summary/testpackage-src.html | 9 ++---
.../htdocs.expected/summary/testpackage.html | 9 ++---
43 files changed, 185 insertions(+), 294 deletions(-)
diff --git a/calm/fix-requires-by-linkage.py b/calm/fix-requires-by-linkage.py
index 0f1136f..62a2c33 100644
--- a/calm/fix-requires-by-linkage.py
+++ b/calm/fix-requires-by-linkage.py
@@ -59,6 +59,9 @@ def fix_one_hint(args, dirpath, hintfile, tf):
if args.requires in requires:
return
+ if args.only and args.only not in requires:
+ return
+
# check if this package installs executables linked to the specified DLL,
# and if so, add to the requires, if not already present
exe = False
@@ -69,7 +72,7 @@ def fix_one_hint(args, dirpath, hintfile, tf):
if not m.isfile():
continue
- if re.search(r'\.(exe|dll)$', m.name):
+ if re.search(r'\.(exe|dll|so)$', m.name):
logging.info('Found executable %s' % m.name)
a.extract(m)
@@ -141,6 +144,7 @@ if __name__ == "__main__":
parser.add_argument('-v', '--verbose', action='count', dest='verbose', help='verbose output', default=0)
parser.add_argument('--releasearea', action='store', metavar='DIR', help="release directory (default: " + relarea_default + ")", default=relarea_default, dest='relarea')
parser.add_argument('--replace', action='store', metavar='DEPATOM', help="replace existing DEPATOM if present")
+ parser.add_argument('--only', action='store', metavar='DEPATOM', help="only operate on packages with existing DEPATOM")
(args) = parser.parse_args()
if args.verbose:
diff --git a/calm/package.py b/calm/package.py
index 712f9b5..98fdd34 100755
--- a/calm/package.py
+++ b/calm/package.py
@@ -469,11 +469,8 @@ def read_one_package(packages, p, basedir, files, kind, strict):
if kind == Kind.source:
arch_re = r'(-src)'
else:
- # XXX: we might also need to handle ARCHIVED_ARCHES, so this works
- # for mksetupini invoked on an x86 repo with new packages made by
- # future versions of cygport which generate arch-tagged packages (it
- # might be better if we had an idea what the valid arches are here)
- arch_re = r'(-' + '|'.join(common_constants.ARCHES) + r'|)'
+ # archtag is either missing, or the appropriate one for the path
+ arch_re = r'(-' + rp.arch + r'|)'
# warn if filename doesn't follow P-V-R naming convention
#
@@ -486,7 +483,6 @@ def read_one_package(packages, p, basedir, files, kind, strict):
else:
v = match.group(1)
r = match.group(2)
- arch_tag = match.group(3)
# historically, V can contain a '-' (since we can use the fact
# we already know P to split unambiguously), but this is a bad
@@ -541,10 +537,16 @@ def read_one_package(packages, p, basedir, files, kind, strict):
t.mtime = os.path.getmtime(rp.abspath(basedir))
t.sha512 = sha512_file(rp.abspath(basedir))
+ # record the arch_tag (or what it would have been, if not omitted)
+ if kind == Kind.source:
+ t.arch = 'src'
+ else:
+ t.arch = rp.arch
+
tars[vr] = t
# it's an error to not have a corresponding pvr.hint in the same directory
- hint_fn = '%s-%s%s.hint' % (p, vr, arch_tag)
+ hint_fn = '%s-%s%s.hint' % (p, vr, match.group(3))
hrp = RepoPath(rp.arch, rp.path, hint_fn)
if hrp not in files:
logging.error("package %s has packages for version %s, but no %s" % (p, vr, hint_fn))
@@ -759,6 +761,7 @@ def validate_packages(args, packages, valid_provides_extra=None, missing_obsolet
for p in packages:
valid_requires.add(p)
for hints in packages[p].version_hints.values():
+ valid_requires.update(hints.get('obsoletes', []))
valid_requires.update(hints.get('provides', []))
# reset computed package state
@@ -1712,7 +1715,7 @@ def mark_fn(packages, po, v, certain_age, obs_threshold, vault_requests):
#
SO_AGE_THRESHOLD_YEARS = 5
-OBSOLETE_AGE_THRESHOLD_YEARS = 10
+OBSOLETE_AGE_THRESHOLD_YEARS = 8
def stale_packages(packages, vault_requests):
diff --git a/calm/past_mistakes.py b/calm/past_mistakes.py
index b9ffec9..338095f 100644
--- a/calm/past_mistakes.py
+++ b/calm/past_mistakes.py
@@ -277,6 +277,7 @@ old_style_obsolete_by = {
'at-spi2-atk': 'libatk-bridge2.0_0',
'idle3': 'idle39',
'lighttpd-mod_trigger_b4_dl': 'lighttpd',
+ 'octave-octcdf': 'octave-netcdf',
'python-gi-common': 'python3-gi',
'python-pyatspi-common': 'python3-pyatspi',
'qt-gstreamer': 'libQtGStreamer1_0_0',
@@ -293,11 +294,10 @@ old_style_obsolete_by = {
'python3-.*': '',
# these packages probably should be marked as self-destruct?
'mate-utils': '',
- 'octave-octcdf': '',
'python-twisted-debuginfo': '',
'texlive-collection-htmlxml': '',
'vte2.91': '',
- 'w32api': '',
# self-destruct, or need to start to exist
'cron-debuginfo': '',
+ 'w32api': '',
}
diff --git a/calm/pkg2html.py b/calm/pkg2html.py
index 86a41df..979914b 100755
--- a/calm/pkg2html.py
+++ b/calm/pkg2html.py
@@ -50,6 +50,7 @@ import string
import sys
import textwrap
import time
+import types
from typing import NamedTuple
import markdown
@@ -322,35 +323,35 @@ def update_package_listings(args, packages):
if not v.startswith('<p>'):
v = '<p>' + v + '</p>'
print('<tr><td><p><span class="detail">%s</span>:</p></td><td>%s</td></tr>' % (d, v), file=f)
- print('</table>', file=f)
+ print('</table><br>', file=f)
- # output per-arch package versions table
- print('<ul>', file=f)
+ # output package versions table
+ versions_table = []
for arch in sorted(packages):
if p in packages[arch]:
- print('<li><span class="detail">%s</span></li>' % arch, file=f)
-
- print('<table class="pkgtable">', file=f)
- print('<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>', file=f)
-
- def tar_line(pn, p, v, arch, f):
- size = int(math.ceil(p.tar(v).size / 1024))
+ def tar_line(pn, p, v, arch):
+ item = types.SimpleNamespace()
+ item.version = v
+ item.size = int(math.ceil(p.tar(v).size / 1024))
if p.kind == package.Kind.binary:
- name = v
target = "%s-%s" % (p.orig_name, v)
else:
- name = v + ' (source)'
target = "%s-%s-src" % (p.orig_name, v)
- test = 'test' if 'test' in p.version_hints[v] else 'stable'
- ts = tsformat(p.tar(v).mtime)
- print('<tr><td>%s</td><td class="right">%d KiB</td><td>%s</td><td>[<a href="../%s/%s/%s">list of files</a>]</td><td>%s</td></tr>' % (name, size, ts, arch, pn, target, test), file=f)
-
- for version in sorted(packages[arch][p].versions(), key=lambda v: SetupVersion(v)):
- tar_line(p, packages[arch][p], version, arch, f)
-
- print('</table><br>', file=f)
- print('</ul>', file=f)
+ item.link = "../%s/%s/%s" % (arch, pn, target)
+ item.status = 'test' if 'test' in p.version_hints[v] else 'stable'
+ item.ts = tsformat(p.tar(v).mtime)
+ item.arch = p.tar(v).arch
+ return item
+
+ for version in packages[arch][p].versions():
+ versions_table.append(tar_line(p, packages[arch][p], version, arch))
+
+ print('<table class="pkgtable">', file=f)
+ print('<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>', file=f)
+ for i in sorted(versions_table, key=lambda i: (SetupVersion(i.version), i.arch)):
+ print('<tr><td>%s</td><td>%s</td><td class="right">%d KiB</td><td>%s</td><td>[<a href="%s">list of files</a>]</td><td>%s</td></tr>' % (i.version, i.arch, i.size, i.ts, i.link, i.status), file=f)
+ print('</table><br>', file=f)
print(textwrap.dedent('''\
</div>
diff --git a/test/testdata/htdocs.expected/summary/arc-src.html b/test/testdata/htdocs.expected/summary/arc-src.html
index 439b271..9e95ab4 100755
--- a/test/testdata/htdocs.expected/summary/arc-src.html
+++ b/test/testdata/htdocs.expected/summary/arc-src.html
@@ -23,14 +23,11 @@ the best of packing, squeezing, or crunching is used.</p></td></tr>
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Jari Aalto
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>4.32.7-10 (source)</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/arc-src/arc-4.32.7-10-src">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>4.32.7-10</td><td>src</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/arc-src/arc-4.32.7-10-src">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/arc.html b/test/testdata/htdocs.expected/summary/arc.html
index 595e278..6d3b765 100644
--- a/test/testdata/htdocs.expected/summary/arc.html
+++ b/test/testdata/htdocs.expected/summary/arc.html
@@ -23,14 +23,11 @@ the best of packing, squeezing, or crunching is used.</p></td></tr>
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Jari Aalto
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>4.32.7-10</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/arc/arc-4.32.7-10">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>4.32.7-10</td><td>x86_64</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/arc/arc-4.32.7-10">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/base-cygwin.html b/test/testdata/htdocs.expected/summary/base-cygwin.html
index 4eceb2f..f7c8f7c 100644
--- a/test/testdata/htdocs.expected/summary/base-cygwin.html
+++ b/test/testdata/htdocs.expected/summary/base-cygwin.html
@@ -20,15 +20,12 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Corinna Vinschen
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>3.6-1</td><td class="right">1 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/base-cygwin/base-cygwin-3.6-1">list of files</a>]</td><td>stable</td></tr>
-<tr><td>3.8-1</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/base-cygwin/base-cygwin-3.8-1">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>3.6-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/base-cygwin/base-cygwin-3.6-1">list of files</a>]</td><td>stable</td></tr>
+<tr><td>3.8-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/base-cygwin/base-cygwin-3.8-1">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/corrupt-src.html b/test/testdata/htdocs.expected/summary/corrupt-src.html
index 0d9f881..8dc69c2 100755
--- a/test/testdata/htdocs.expected/summary/corrupt-src.html
+++ b/test/testdata/htdocs.expected/summary/corrupt-src.html
@@ -18,14 +18,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>2.0.0-1 (source)</td><td class="right">354 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/corrupt-src/corrupt-2.0.0-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>2.0.0-1</td><td>src</td><td class="right">354 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/corrupt-src/corrupt-2.0.0-1-src">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/corrupt.html b/test/testdata/htdocs.expected/summary/corrupt.html
index 08442ea..0507405 100644
--- a/test/testdata/htdocs.expected/summary/corrupt.html
+++ b/test/testdata/htdocs.expected/summary/corrupt.html
@@ -18,14 +18,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>2.0.0-1</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/corrupt/corrupt-2.0.0-1">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>2.0.0-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/corrupt/corrupt-2.0.0-1">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/cygwin-debuginfo.html b/test/testdata/htdocs.expected/summary/cygwin-debuginfo.html
index 9d017df..594761c 100644
--- a/test/testdata/htdocs.expected/summary/cygwin-debuginfo.html
+++ b/test/testdata/htdocs.expected/summary/cygwin-debuginfo.html
@@ -21,16 +21,13 @@ cygwin package with gdb.</p></td></tr>
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Corinna Vinschen, Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>2.2.0-1</td><td class="right">1 KiB</td><td>2016-11-01 00:00</td><td>[<a href="../x86_64/cygwin-debuginfo/cygwin-debuginfo-2.2.0-1">list of files</a>]</td><td>stable</td></tr>
-<tr><td>2.2.1-1</td><td class="right">1 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/cygwin-debuginfo/cygwin-debuginfo-2.2.1-1">list of files</a>]</td><td>stable</td></tr>
-<tr><td>2.3.0-0.3</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/cygwin-debuginfo/cygwin-debuginfo-2.3.0-0.3">list of files</a>]</td><td>test</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>2.2.0-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2016-11-01 00:00</td><td>[<a href="../x86_64/cygwin-debuginfo/cygwin-debuginfo-2.2.0-1">list of files</a>]</td><td>stable</td></tr>
+<tr><td>2.2.1-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/cygwin-debuginfo/cygwin-debuginfo-2.2.1-1">list of files</a>]</td><td>stable</td></tr>
+<tr><td>2.3.0-0.3</td><td>x86_64</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/cygwin-debuginfo/cygwin-debuginfo-2.3.0-0.3">list of files</a>]</td><td>test</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/cygwin-devel.html b/test/testdata/htdocs.expected/summary/cygwin-devel.html
index c4e6b59..9120025 100644
--- a/test/testdata/htdocs.expected/summary/cygwin-devel.html
+++ b/test/testdata/htdocs.expected/summary/cygwin-devel.html
@@ -19,16 +19,13 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Corinna Vinschen, Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>2.2.0-1</td><td class="right">1 KiB</td><td>2016-11-01 00:00</td><td>[<a href="../x86_64/cygwin-devel/cygwin-devel-2.2.0-1">list of files</a>]</td><td>stable</td></tr>
-<tr><td>2.2.1-1</td><td class="right">1 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/cygwin-devel/cygwin-devel-2.2.1-1">list of files</a>]</td><td>stable</td></tr>
-<tr><td>2.3.0-0.3</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/cygwin-devel/cygwin-devel-2.3.0-0.3">list of files</a>]</td><td>test</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>2.2.0-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2016-11-01 00:00</td><td>[<a href="../x86_64/cygwin-devel/cygwin-devel-2.2.0-1">list of files</a>]</td><td>stable</td></tr>
+<tr><td>2.2.1-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/cygwin-devel/cygwin-devel-2.2.1-1">list of files</a>]</td><td>stable</td></tr>
+<tr><td>2.3.0-0.3</td><td>x86_64</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/cygwin-devel/cygwin-devel-2.3.0-0.3">list of files</a>]</td><td>test</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/cygwin-src.html b/test/testdata/htdocs.expected/summary/cygwin-src.html
index 9ad7b0d..84bb91d 100755
--- a/test/testdata/htdocs.expected/summary/cygwin-src.html
+++ b/test/testdata/htdocs.expected/summary/cygwin-src.html
@@ -20,16 +20,13 @@
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
<tr><td><p><span class="detail">packaging repository</span>:</p></td><td><p><a href="/cgit/cygwin-packages/cygwin/">cygwin.git</a></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>2.2.0-1 (source)</td><td class="right">1 KiB</td><td>2016-11-01 00:00</td><td>[<a href="../x86_64/cygwin-src/cygwin-2.2.0-1-src">list of files</a>]</td><td>stable</td></tr>
-<tr><td>2.2.1-1 (source)</td><td class="right">1 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/cygwin-src/cygwin-2.2.1-1-src">list of files</a>]</td><td>stable</td></tr>
-<tr><td>2.3.0-0.3 (source)</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/cygwin-src/cygwin-2.3.0-0.3-src">list of files</a>]</td><td>test</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>2.2.0-1</td><td>src</td><td class="right">1 KiB</td><td>2016-11-01 00:00</td><td>[<a href="../x86_64/cygwin-src/cygwin-2.2.0-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><td>2.2.1-1</td><td>src</td><td class="right">1 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/cygwin-src/cygwin-2.2.1-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><td>2.3.0-0.3</td><td>src</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/cygwin-src/cygwin-2.3.0-0.3-src">list of files</a>]</td><td>test</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/cygwin.html b/test/testdata/htdocs.expected/summary/cygwin.html
index fd9801b..3b956b2 100644
--- a/test/testdata/htdocs.expected/summary/cygwin.html
+++ b/test/testdata/htdocs.expected/summary/cygwin.html
@@ -20,16 +20,13 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Corinna Vinschen, Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>2.2.0-1</td><td class="right">1 KiB</td><td>2016-11-01 00:00</td><td>[<a href="../x86_64/cygwin/cygwin-2.2.0-1">list of files</a>]</td><td>stable</td></tr>
-<tr><td>2.2.1-1</td><td class="right">1 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/cygwin/cygwin-2.2.1-1">list of files</a>]</td><td>stable</td></tr>
-<tr><td>2.3.0-0.3</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/cygwin/cygwin-2.3.0-0.3">list of files</a>]</td><td>test</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>2.2.0-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2016-11-01 00:00</td><td>[<a href="../x86_64/cygwin/cygwin-2.2.0-1">list of files</a>]</td><td>stable</td></tr>
+<tr><td>2.2.1-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/cygwin/cygwin-2.2.1-1">list of files</a>]</td><td>stable</td></tr>
+<tr><td>2.3.0-0.3</td><td>x86_64</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/cygwin/cygwin-2.3.0-0.3">list of files</a>]</td><td>test</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/keychain-src.html b/test/testdata/htdocs.expected/summary/keychain-src.html
index 6a7b984..908685c 100755
--- a/test/testdata/htdocs.expected/summary/keychain-src.html
+++ b/test/testdata/htdocs.expected/summary/keychain-src.html
@@ -26,15 +26,12 @@ necessary</p></td></tr>
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Jari Aalto
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>2.6.8-1 (source)</td><td class="right">36 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/keychain-src/keychain-2.6.8-1-src">list of files</a>]</td><td>stable</td></tr>
-<tr><td>2.7.1-1 (source)</td><td class="right">132 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/keychain-src/keychain-2.7.1-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>2.6.8-1</td><td>src</td><td class="right">36 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/keychain-src/keychain-2.6.8-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><td>2.7.1-1</td><td>src</td><td class="right">132 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/keychain-src/keychain-2.7.1-1-src">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/keychain.html b/test/testdata/htdocs.expected/summary/keychain.html
index 91f916b..436ddb0 100644
--- a/test/testdata/htdocs.expected/summary/keychain.html
+++ b/test/testdata/htdocs.expected/summary/keychain.html
@@ -27,15 +27,12 @@ necessary</p></td></tr>
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Jari Aalto
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>2.6.8-1</td><td class="right">30 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/keychain/keychain-2.6.8-1">list of files</a>]</td><td>stable</td></tr>
-<tr><td>2.7.1-1</td><td class="right">32 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/keychain/keychain-2.7.1-1">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>2.6.8-1</td><td>x86_64</td><td class="right">30 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/keychain/keychain-2.6.8-1">list of files</a>]</td><td>stable</td></tr>
+<tr><td>2.7.1-1</td><td>x86_64</td><td class="right">32 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/keychain/keychain-2.7.1-1">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/libdns_sd-devel.html b/test/testdata/htdocs.expected/summary/libdns_sd-devel.html
index 14b43b7..31bc9e5 100644
--- a/test/testdata/htdocs.expected/summary/libdns_sd-devel.html
+++ b/test/testdata/htdocs.expected/summary/libdns_sd-devel.html
@@ -21,14 +21,11 @@ industry standard IP protocols.</p></td></tr>
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>379.32.1-1</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/libdns_sd-devel/libdns_sd-devel-379.32.1-1">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>379.32.1-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/libdns_sd-devel/libdns_sd-devel-379.32.1-1">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/libdns_sd1.html b/test/testdata/htdocs.expected/summary/libdns_sd1.html
index d099261..74f71b2 100644
--- a/test/testdata/htdocs.expected/summary/libdns_sd1.html
+++ b/test/testdata/htdocs.expected/summary/libdns_sd1.html
@@ -21,14 +21,11 @@ industry standard IP protocols.</p></td></tr>
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>379.32.1-1</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/libdns_sd1/libdns_sd1-379.32.1-1">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>379.32.1-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/libdns_sd1/libdns_sd1-379.32.1-1">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/mDNSResponder-src.html b/test/testdata/htdocs.expected/summary/mDNSResponder-src.html
index 38ccab9..05db800 100755
--- a/test/testdata/htdocs.expected/summary/mDNSResponder-src.html
+++ b/test/testdata/htdocs.expected/summary/mDNSResponder-src.html
@@ -20,14 +20,11 @@ industry standard IP protocols.</p></td></tr>
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>379.32.1-1 (source)</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/mDNSResponder-src/mDNSResponder-379.32.1-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>379.32.1-1</td><td>src</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/mDNSResponder-src/mDNSResponder-379.32.1-1-src">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/mDNSResponder.html b/test/testdata/htdocs.expected/summary/mDNSResponder.html
index 3c304de..ba4c9ec 100644
--- a/test/testdata/htdocs.expected/summary/mDNSResponder.html
+++ b/test/testdata/htdocs.expected/summary/mDNSResponder.html
@@ -21,14 +21,11 @@ industry standard IP protocols.</p></td></tr>
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>379.32.1-1</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/mDNSResponder/mDNSResponder-379.32.1-1">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>379.32.1-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/mDNSResponder/mDNSResponder-379.32.1-1">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/obs-a-src.html b/test/testdata/htdocs.expected/summary/obs-a-src.html
index 74467e2..de4a680 100755
--- a/test/testdata/htdocs.expected/summary/obs-a-src.html
+++ b/test/testdata/htdocs.expected/summary/obs-a-src.html
@@ -18,14 +18,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>1.0-1 (source)</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/obs-a-src/obs-a-1.0-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>1.0-1</td><td>src</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/obs-a-src/obs-a-1.0-1-src">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/obs-a.html b/test/testdata/htdocs.expected/summary/obs-a.html
index 298db09..774c985 100644
--- a/test/testdata/htdocs.expected/summary/obs-a.html
+++ b/test/testdata/htdocs.expected/summary/obs-a.html
@@ -19,14 +19,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>1.0-1</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/obs-a/obs-a-1.0-1">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>1.0-1</td><td>noarch</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/obs-a/obs-a-1.0-1">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/obs-b-src.html b/test/testdata/htdocs.expected/summary/obs-b-src.html
index 877fcf9..9b2e61b 100755
--- a/test/testdata/htdocs.expected/summary/obs-b-src.html
+++ b/test/testdata/htdocs.expected/summary/obs-b-src.html
@@ -18,14 +18,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>1.0-1 (source)</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/obs-b-src/obs-b-1.0-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>1.0-1</td><td>src</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/obs-b-src/obs-b-1.0-1-src">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/obs-b.html b/test/testdata/htdocs.expected/summary/obs-b.html
index e56bbc1..623cebd 100644
--- a/test/testdata/htdocs.expected/summary/obs-b.html
+++ b/test/testdata/htdocs.expected/summary/obs-b.html
@@ -19,14 +19,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>1.0-1</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/obs-b/obs-b-1.0-1">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>1.0-1</td><td>noarch</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/obs-b/obs-b-1.0-1">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/openssh-src.html b/test/testdata/htdocs.expected/summary/openssh-src.html
index 9ac2ab1..c8eb895 100755
--- a/test/testdata/htdocs.expected/summary/openssh-src.html
+++ b/test/testdata/htdocs.expected/summary/openssh-src.html
@@ -20,14 +20,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Corinna Vinschen
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>7.2p2-1 (source)</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/openssh-src/openssh-7.2p2-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>7.2p2-1</td><td>src</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/openssh-src/openssh-7.2p2-1-src">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/openssh.html b/test/testdata/htdocs.expected/summary/openssh.html
index 75f3bc2..812ae7d 100644
--- a/test/testdata/htdocs.expected/summary/openssh.html
+++ b/test/testdata/htdocs.expected/summary/openssh.html
@@ -21,14 +21,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Corinna Vinschen
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>7.2p2-1</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/openssh/openssh-7.2p2-1">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>7.2p2-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/openssh/openssh-7.2p2-1">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/per-version-replacement-hint-only-src.html b/test/testdata/htdocs.expected/summary/per-version-replacement-hint-only-src.html
index 110add2..078fa31 100755
--- a/test/testdata/htdocs.expected/summary/per-version-replacement-hint-only-src.html
+++ b/test/testdata/htdocs.expected/summary/per-version-replacement-hint-only-src.html
@@ -18,14 +18,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>1.0-1 (source)</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/per-version-replacement-hint-only-src/per-version-replacement-hint-only-1.0-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>1.0-1</td><td>src</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/per-version-replacement-hint-only-src/per-version-replacement-hint-only-1.0-1-src">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/per-version-replacement-hint-only.html b/test/testdata/htdocs.expected/summary/per-version-replacement-hint-only.html
index fce022f..e9bd68a 100644
--- a/test/testdata/htdocs.expected/summary/per-version-replacement-hint-only.html
+++ b/test/testdata/htdocs.expected/summary/per-version-replacement-hint-only.html
@@ -19,14 +19,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>1.0-1</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/per-version-replacement-hint-only/per-version-replacement-hint-only-1.0-1">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>1.0-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/per-version-replacement-hint-only/per-version-replacement-hint-only-1.0-1">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/per-version-src.html b/test/testdata/htdocs.expected/summary/per-version-src.html
index 3703449..f99713c 100755
--- a/test/testdata/htdocs.expected/summary/per-version-src.html
+++ b/test/testdata/htdocs.expected/summary/per-version-src.html
@@ -18,15 +18,12 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>4.0-1 (source)</td><td class="right">1 KiB</td><td>2017-04-09 00:00</td><td>[<a href="../x86_64/per-version-src/per-version-4.0-1-src">list of files</a>]</td><td>stable</td></tr>
-<tr><td>4.8-1 (source)</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/per-version-src/per-version-4.8-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>4.0-1</td><td>src</td><td class="right">1 KiB</td><td>2017-04-09 00:00</td><td>[<a href="../x86_64/per-version-src/per-version-4.0-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><td>4.8-1</td><td>src</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/per-version-src/per-version-4.8-1-src">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/per-version.html b/test/testdata/htdocs.expected/summary/per-version.html
index 2fdd500..a16b0bb 100644
--- a/test/testdata/htdocs.expected/summary/per-version.html
+++ b/test/testdata/htdocs.expected/summary/per-version.html
@@ -19,15 +19,12 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>4.0-1</td><td class="right">1 KiB</td><td>2017-04-09 00:00</td><td>[<a href="../x86_64/per-version/per-version-4.0-1">list of files</a>]</td><td>stable</td></tr>
-<tr><td>4.8-1</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/per-version/per-version-4.8-1">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>4.0-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2017-04-09 00:00</td><td>[<a href="../x86_64/per-version/per-version-4.0-1">list of files</a>]</td><td>stable</td></tr>
+<tr><td>4.8-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/per-version/per-version-4.8-1">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL-src.html b/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL-src.html
index ec4255c..faff410 100755
--- a/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL-src.html
+++ b/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL-src.html
@@ -19,16 +19,13 @@ its network operations in order to support encrypted connections.</p></td></tr>
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey, Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>1.01-1 (source)</td><td class="right">3 KiB</td><td>2016-09-01 00:00</td><td>[<a href="../x86_64/perl-Net-SMTP-SSL-src/perl-Net-SMTP-SSL-1.01-1-src">list of files</a>]</td><td>stable</td></tr>
-<tr><td>1.02-1 (source)</td><td class="right">3 KiB</td><td>2016-10-01 00:00</td><td>[<a href="../x86_64/perl-Net-SMTP-SSL-src/perl-Net-SMTP-SSL-1.02-1-src">list of files</a>]</td><td>stable</td></tr>
-<tr><td>1.03-1 (source)</td><td class="right">3 KiB</td><td>2016-11-01 00:00</td><td>[<a href="../x86_64/perl-Net-SMTP-SSL-src/perl-Net-SMTP-SSL-1.03-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>1.01-1</td><td>src</td><td class="right">3 KiB</td><td>2016-09-01 00:00</td><td>[<a href="../x86_64/perl-Net-SMTP-SSL-src/perl-Net-SMTP-SSL-1.01-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><td>1.02-1</td><td>src</td><td class="right">3 KiB</td><td>2016-10-01 00:00</td><td>[<a href="../x86_64/perl-Net-SMTP-SSL-src/perl-Net-SMTP-SSL-1.02-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><td>1.03-1</td><td>src</td><td class="right">3 KiB</td><td>2016-11-01 00:00</td><td>[<a href="../x86_64/perl-Net-SMTP-SSL-src/perl-Net-SMTP-SSL-1.03-1-src">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL.html b/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL.html
index 0f42fb3..2237ceb 100644
--- a/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL.html
+++ b/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL.html
@@ -19,16 +19,13 @@ its network operations in order to support encrypted connections.</p></td></tr>
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey, Yaakov Selkowitz
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>1.01-1</td><td class="right">4 KiB</td><td>2016-09-01 00:00</td><td>[<a href="../x86_64/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.01-1">list of files</a>]</td><td>stable</td></tr>
-<tr><td>1.02-1</td><td class="right">4 KiB</td><td>2016-10-01 00:00</td><td>[<a href="../x86_64/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.02-1">list of files</a>]</td><td>stable</td></tr>
-<tr><td>1.03-1</td><td class="right">4 KiB</td><td>2016-11-01 00:00</td><td>[<a href="../x86_64/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-1">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>1.01-1</td><td>noarch</td><td class="right">4 KiB</td><td>2016-09-01 00:00</td><td>[<a href="../x86_64/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.01-1">list of files</a>]</td><td>stable</td></tr>
+<tr><td>1.02-1</td><td>noarch</td><td class="right">4 KiB</td><td>2016-10-01 00:00</td><td>[<a href="../x86_64/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.02-1">list of files</a>]</td><td>stable</td></tr>
+<tr><td>1.03-1</td><td>noarch</td><td class="right">4 KiB</td><td>2016-11-01 00:00</td><td>[<a href="../x86_64/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-1">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/rpm-doc-src.html b/test/testdata/htdocs.expected/summary/rpm-doc-src.html
index fe14c1b..ae1ffa3 100755
--- a/test/testdata/htdocs.expected/summary/rpm-doc-src.html
+++ b/test/testdata/htdocs.expected/summary/rpm-doc-src.html
@@ -15,14 +15,11 @@
<tr><td><p><span class="detail">description</span>:</p></td><td><p>Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)</p></td></tr>
<tr><td><p><span class="detail">categories</span>:</p></td><td><p>_obsolete</p></td></tr>
<tr><td><p><span class="detail">install package(s)</span>:</p></td><td><p><a href="rpm-doc.html">rpm-doc</a></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>4.1-2 (source)</td><td class="right">1 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/rpm-doc-src/rpm-doc-4.1-2-src">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>4.1-2</td><td>src</td><td class="right">1 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/rpm-doc-src/rpm-doc-4.1-2-src">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/rpm-doc.html b/test/testdata/htdocs.expected/summary/rpm-doc.html
index 7f18d06..85dd47b 100644
--- a/test/testdata/htdocs.expected/summary/rpm-doc.html
+++ b/test/testdata/htdocs.expected/summary/rpm-doc.html
@@ -15,15 +15,12 @@
<tr><td><p><span class="detail">description</span>:</p></td><td><p>Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)</p></td></tr>
<tr><td><p><span class="detail">categories</span>:</p></td><td><p>_obsolete</p></td></tr>
<tr><td><p><span class="detail">source package</span>:</p></td><td><p><a href="rpm-doc-src.html">rpm-doc</a></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>4.1-2</td><td class="right">50 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/rpm-doc/rpm-doc-4.1-2">list of files</a>]</td><td>stable</td></tr>
-<tr><td>999-1</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/rpm-doc/rpm-doc-999-1">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>4.1-2</td><td>x86_64</td><td class="right">50 KiB</td><td>2016-11-02 00:00</td><td>[<a href="../x86_64/rpm-doc/rpm-doc-4.1-2">list of files</a>]</td><td>stable</td></tr>
+<tr><td>999-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/rpm-doc/rpm-doc-999-1">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/staleversion-src.html b/test/testdata/htdocs.expected/summary/staleversion-src.html
index c5ef835..4437f2e 100755
--- a/test/testdata/htdocs.expected/summary/staleversion-src.html
+++ b/test/testdata/htdocs.expected/summary/staleversion-src.html
@@ -18,19 +18,16 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>240-1 (source)</td><td class="right">1 KiB</td><td>2017-04-07 00:00</td><td>[<a href="../x86_64/staleversion-src/staleversion-240-1-src">list of files</a>]</td><td>stable</td></tr>
-<tr><td>242-0 (source)</td><td class="right">1 KiB</td><td>2017-04-08 00:00</td><td>[<a href="../x86_64/staleversion-src/staleversion-242-0-src">list of files</a>]</td><td>stable</td></tr>
-<tr><td>243-0 (source)</td><td class="right">1 KiB</td><td>2017-04-09 00:00</td><td>[<a href="../x86_64/staleversion-src/staleversion-243-0-src">list of files</a>]</td><td>stable</td></tr>
-<tr><td>250-0 (source)</td><td class="right">1 KiB</td><td>2017-04-10 00:00</td><td>[<a href="../x86_64/staleversion-src/staleversion-250-0-src">list of files</a>]</td><td>stable</td></tr>
-<tr><td>251-0 (source)</td><td class="right">1 KiB</td><td>2017-04-09 00:00</td><td>[<a href="../x86_64/staleversion-src/staleversion-251-0-src">list of files</a>]</td><td>test</td></tr>
-<tr><td>260-0 (source)</td><td class="right">1 KiB</td><td>2017-04-12 00:00</td><td>[<a href="../x86_64/staleversion-src/staleversion-260-0-src">list of files</a>]</td><td>test</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>240-1</td><td>src</td><td class="right">1 KiB</td><td>2017-04-07 00:00</td><td>[<a href="../x86_64/staleversion-src/staleversion-240-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><td>242-0</td><td>src</td><td class="right">1 KiB</td><td>2017-04-08 00:00</td><td>[<a href="../x86_64/staleversion-src/staleversion-242-0-src">list of files</a>]</td><td>stable</td></tr>
+<tr><td>243-0</td><td>src</td><td class="right">1 KiB</td><td>2017-04-09 00:00</td><td>[<a href="../x86_64/staleversion-src/staleversion-243-0-src">list of files</a>]</td><td>stable</td></tr>
+<tr><td>250-0</td><td>src</td><td class="right">1 KiB</td><td>2017-04-10 00:00</td><td>[<a href="../x86_64/staleversion-src/staleversion-250-0-src">list of files</a>]</td><td>stable</td></tr>
+<tr><td>251-0</td><td>src</td><td class="right">1 KiB</td><td>2017-04-09 00:00</td><td>[<a href="../x86_64/staleversion-src/staleversion-251-0-src">list of files</a>]</td><td>test</td></tr>
+<tr><td>260-0</td><td>src</td><td class="right">1 KiB</td><td>2017-04-12 00:00</td><td>[<a href="../x86_64/staleversion-src/staleversion-260-0-src">list of files</a>]</td><td>test</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/staleversion.html b/test/testdata/htdocs.expected/summary/staleversion.html
index 00e875a..d3f31f3 100644
--- a/test/testdata/htdocs.expected/summary/staleversion.html
+++ b/test/testdata/htdocs.expected/summary/staleversion.html
@@ -18,19 +18,16 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>240-1</td><td class="right">1 KiB</td><td>2017-04-07 00:00</td><td>[<a href="../x86_64/staleversion/staleversion-240-1">list of files</a>]</td><td>stable</td></tr>
-<tr><td>242-0</td><td class="right">1 KiB</td><td>2017-04-08 00:00</td><td>[<a href="../x86_64/staleversion/staleversion-242-0">list of files</a>]</td><td>stable</td></tr>
-<tr><td>243-0</td><td class="right">1 KiB</td><td>2017-04-09 00:00</td><td>[<a href="../x86_64/staleversion/staleversion-243-0">list of files</a>]</td><td>stable</td></tr>
-<tr><td>250-0</td><td class="right">1 KiB</td><td>2017-04-10 00:00</td><td>[<a href="../x86_64/staleversion/staleversion-250-0">list of files</a>]</td><td>stable</td></tr>
-<tr><td>251-0</td><td class="right">1 KiB</td><td>2017-04-09 00:00</td><td>[<a href="../x86_64/staleversion/staleversion-251-0">list of files</a>]</td><td>test</td></tr>
-<tr><td>260-0</td><td class="right">1 KiB</td><td>2017-04-12 00:00</td><td>[<a href="../x86_64/staleversion/staleversion-260-0">list of files</a>]</td><td>test</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>240-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2017-04-07 00:00</td><td>[<a href="../x86_64/staleversion/staleversion-240-1">list of files</a>]</td><td>stable</td></tr>
+<tr><td>242-0</td><td>x86_64</td><td class="right">1 KiB</td><td>2017-04-08 00:00</td><td>[<a href="../x86_64/staleversion/staleversion-242-0">list of files</a>]</td><td>stable</td></tr>
+<tr><td>243-0</td><td>x86_64</td><td class="right">1 KiB</td><td>2017-04-09 00:00</td><td>[<a href="../x86_64/staleversion/staleversion-243-0">list of files</a>]</td><td>stable</td></tr>
+<tr><td>250-0</td><td>x86_64</td><td class="right">1 KiB</td><td>2017-04-10 00:00</td><td>[<a href="../x86_64/staleversion/staleversion-250-0">list of files</a>]</td><td>stable</td></tr>
+<tr><td>251-0</td><td>x86_64</td><td class="right">1 KiB</td><td>2017-04-09 00:00</td><td>[<a href="../x86_64/staleversion/staleversion-251-0">list of files</a>]</td><td>test</td></tr>
+<tr><td>260-0</td><td>x86_64</td><td class="right">1 KiB</td><td>2017-04-12 00:00</td><td>[<a href="../x86_64/staleversion/staleversion-260-0">list of files</a>]</td><td>test</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/test-c-src.html b/test/testdata/htdocs.expected/summary/test-c-src.html
index e53dfe1..098c371 100755
--- a/test/testdata/htdocs.expected/summary/test-c-src.html
+++ b/test/testdata/htdocs.expected/summary/test-c-src.html
@@ -18,14 +18,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>1.0-1 (source)</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/test-c-src/test-c-1.0-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>1.0-1</td><td>src</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/test-c-src/test-c-1.0-1-src">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/test-c.html b/test/testdata/htdocs.expected/summary/test-c.html
index 642cf13..1b5ffd9 100644
--- a/test/testdata/htdocs.expected/summary/test-c.html
+++ b/test/testdata/htdocs.expected/summary/test-c.html
@@ -20,14 +20,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>1.0-1</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/test-c/test-c-1.0-1">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>1.0-1</td><td>noarch</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/test-c/test-c-1.0-1">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/test-d-src.html b/test/testdata/htdocs.expected/summary/test-d-src.html
index 81a7bdb..66f361d 100755
--- a/test/testdata/htdocs.expected/summary/test-d-src.html
+++ b/test/testdata/htdocs.expected/summary/test-d-src.html
@@ -18,14 +18,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>1.0.42590-1 (source)</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/test-d-src/test-d-1.0.42590-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>1.0.42590-1</td><td>src</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/test-d-src/test-d-1.0.42590-1-src">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/test-d.html b/test/testdata/htdocs.expected/summary/test-d.html
index 90ccc9e..29dedf5 100644
--- a/test/testdata/htdocs.expected/summary/test-d.html
+++ b/test/testdata/htdocs.expected/summary/test-d.html
@@ -19,14 +19,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>1.0.42590-1</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/test-d/test-d-1.0.42590-1">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>1.0.42590-1</td><td>noarch</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/test-d/test-d-1.0.42590-1">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/test-e-src.html b/test/testdata/htdocs.expected/summary/test-e-src.html
index 81e6a7f..798e28d 100755
--- a/test/testdata/htdocs.expected/summary/test-e-src.html
+++ b/test/testdata/htdocs.expected/summary/test-e-src.html
@@ -19,14 +19,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>1.0-1 (source)</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/test-e-src/test-e-1.0-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>1.0-1</td><td>src</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/test-e-src/test-e-1.0-1-src">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/test-e.html b/test/testdata/htdocs.expected/summary/test-e.html
index 4d742f8..63e16f2 100644
--- a/test/testdata/htdocs.expected/summary/test-e.html
+++ b/test/testdata/htdocs.expected/summary/test-e.html
@@ -19,14 +19,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>ORPHANED
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>1.0-1</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/test-e/test-e-1.0-1">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>1.0-1</td><td>noarch</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/test-e/test-e-1.0-1">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/testpackage-src.html b/test/testdata/htdocs.expected/summary/testpackage-src.html
index 1ce0be6..1d8fd98 100755
--- a/test/testdata/htdocs.expected/summary/testpackage-src.html
+++ b/test/testdata/htdocs.expected/summary/testpackage-src.html
@@ -18,14 +18,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>0.1-1 (source)</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/testpackage-src/testpackage-0.1-1-src">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>0.1-1</td><td>src</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/testpackage-src/testpackage-0.1-1-src">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
diff --git a/test/testdata/htdocs.expected/summary/testpackage.html b/test/testdata/htdocs.expected/summary/testpackage.html
index 896e12a..be934c8 100644
--- a/test/testdata/htdocs.expected/summary/testpackage.html
+++ b/test/testdata/htdocs.expected/summary/testpackage.html
@@ -18,14 +18,11 @@
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p>Blooey McFooey
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
<a href="/problems.html#personal-email">Do not contact the maintainer(s) directly</a>.)</span></p></td></tr>
-</table>
-<ul>
-<li><span class="detail">x86_64</span></li>
+</table><br>
<table class="pkgtable">
-<tr><th>Version</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
-<tr><td>0.1-1</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/testpackage/testpackage-0.1-1">list of files</a>]</td><td>stable</td></tr>
+<tr><th>Version</th><th>Arch</th><th>Package Size</th><th>Date</th><th>Files</th><th>Status</th></tr>
+<tr><td>0.1-1</td><td>x86_64</td><td class="right">1 KiB</td><td>2018-03-02 00:00</td><td>[<a href="../x86_64/testpackage/testpackage-0.1-1">list of files</a>]</td><td>stable</td></tr>
</table><br>
-</ul>
</div>
</body>
</html>
More information about the Cygwin-apps-cvs
mailing list