[calm - Cygwin server-side packaging maintenance script] branch master, updated. 20250329-72-g6f418cf
Jon Turney via Cygwin-apps-cvs <[email protected]> Tue, 28 Jul 2026 13:05:36 +0000 (GMT)
| Newsgroups | gmane.os.cygwin.cvs.apps |
|---|---|
| Message-ID | <[email protected]> |
Diff:
---
calm/mail-inactive-maintainers.py | 2 ++
calm/package.py | 31 ++++++++++------------
calm/reports.py | 25 ++++++++++++-----
test/test_calm.py | 2 +-
test/testdata/conflict/rel_area.expected | 2 +-
test/testdata/conflict/vault.expected | 4 ++-
.../x86_64/release/rpm-doc/rpm-doc-999-1.expected | 3 ++-
.../htdocs.expected/summary/base-cygwin.html | 2 +-
test/testdata/htdocs.expected/summary/rpm-doc.html | 1 +
test/testdata/inifile/setup.ini.expected | 1 +
test/testdata/mksetupini/setup.ini.expected | 1 +
test/testdata/process_arch/htdocs.expected | 2 --
test/testdata/process_arch/rel_area.expected | 2 +-
test/testdata/process_arch/setup.ini.expected | 9 ++-----
test/testdata/process_arch/vault.expected | 4 ++-
.../x86_64/release/rpm-doc/rpm-doc-999-1.hint | 1 +
test/testdata/upload_bad_auth/rel_area.expected | 2 +-
test/testdata/upload_bad_auth/vault.expected | 4 ++-
18 files changed, 57 insertions(+), 41 deletions(-)
diff --git a/calm/mail-inactive-maintainers.py b/calm/mail-inactive-maintainers.py
index 5ec4934..2b1b2c4 100644
--- a/calm/mail-inactive-maintainers.py
+++ b/calm/mail-inactive-maintainers.py
@@ -102,12 +102,14 @@ def main(args):
if __name__ == "__main__":
+ htdocs_default = os.path.join(common_constants.HTDOCS, 'packages')
relarea_default = common_constants.FTP
homedir_default = common_constants.HOMEDIR
pkglist_default = common_constants.PKGMAINT
parser = argparse.ArgumentParser(description='Send mail to inactive maintainers')
parser.add_argument('--homedir', action='store', metavar='DIR', help="maintainer home directory (default: " + homedir_default + ")", default=homedir_default)
+ parser.add_argument('--htdocs', action='store', metavar='DIR', help="htdocs output directory (default: " + htdocs_default + ")", default=htdocs_default)
parser.add_argument('--pkglist', action='store', metavar='FILE', help="package maintainer list (default: " + pkglist_default + ")", default=pkglist_default)
parser.add_argument('--releasearea', action='store', metavar='DIR', help="release directory (default: " + relarea_default + ")", default=relarea_default, dest='relarea')
parser.add_argument('-n', '--dry-run', action='store_true', dest='dryrun', help="don't send mails")
diff --git a/calm/package.py b/calm/package.py
index df10c6a..209ac00 100755
--- a/calm/package.py
+++ b/calm/package.py
@@ -1506,7 +1506,11 @@ def write_setup_ini(args, packages, arch):
print("obsoletes: %s" % ', '.join(hints['obsoletes']), file=f)
if hints.get('provides', ''):
- print("provides: %s" % ', '.join(hints['provides']), file=f)
+ # this is a work-around for an overcautious
+ # implementation in setup, which defaults provides to
+ # obsoletes, but does not implicitly add them if
+ # provides has an explicit value
+ print("provides: %s" % ', '.join(hints['provides'] + hints.get('obsoletes', [])), file=f)
if hints.get('conflicts', ''):
print("conflicts: %s" % ', '.join(hints['conflicts']), file=f)
@@ -1719,7 +1723,7 @@ def mark_package_fresh(packages, p, v, mark=Freshness.fresh):
# helper function evaluate if package needs marking for conditional retention
#
-def mark_fn(packages, po, v, certain_age, obs_threshold, vault_requests):
+def mark_fn(packages, po, v, certain_age, vault_requests):
pn = po.name
bv = po.best_version
@@ -1747,16 +1751,13 @@ def mark_fn(packages, po, v, certain_age, obs_threshold, vault_requests):
logging.debug("deprecated soversion package '%s' version '%s' mtime '%s' is over cut-off age" % (pn, v, time.strftime("%F %T %Z", time.localtime(mtime))))
return (Freshness.conditional, True)
- # - package is an old-style obsoletion, over a certain age, and not marked
- # as self-destruct
+ # - package is an old-style obsoletion, and not marked as self-destruct
#
if '_obsolete' in po.hints(v)['category']:
- mtime = po.tar(v).mtime
- if mtime < obs_threshold:
- provides = po.hints(v).get('provides', [])
- if '_self-destruct' not in provides:
- logging.debug("obsolete package '%s' version '%s' mtime '%s' is over cut-off age" % (pn, v, time.strftime("%F %T %Z", time.localtime(mtime))))
- return (Freshness.conditional, False)
+ provides = po.hints(v).get('provides', [])
+ if '_self-destruct' not in provides:
+ logging.debug("obsoletion package '%s' version '%s' not retained as old-style" % (pn, v))
+ return (Freshness.conditional, False)
es = po.srcpackage(v, suffix=False)
# - if package depends on anything in expired_provides
@@ -1782,16 +1783,12 @@ def mark_fn(packages, po, v, certain_age, obs_threshold, vault_requests):
#
SO_AGE_THRESHOLD_YEARS = 5
-OBSOLETE_AGE_THRESHOLD_YEARS = 2
def stale_packages(packages, vault_requests):
certain_age = time.time() - (SO_AGE_THRESHOLD_YEARS * 365.25 * 24 * 60 * 60)
logging.debug("cut-off date for soversion package to be considered old is %s" % (time.strftime("%F %T %Z", time.localtime(certain_age))))
- obs_threshold = time.time() - (OBSOLETE_AGE_THRESHOLD_YEARS * 365.25 * 24 * 60 * 60)
- logging.debug("cut-off date for obsolete package to be considered old is %s" % (time.strftime("%F %T %Z", time.localtime(obs_threshold))))
-
# mark install packages for freshness
for pn, po in packages.items():
# mark as fresh any versions explicitly listed in the keep: override
@@ -1849,7 +1846,7 @@ def stale_packages(packages, vault_requests):
# overwrite with 'conditional' package retention mark if it meets
# various criteria
for v in sorted(po.versions(), key=lambda v: SetupVersion(v)):
- (mark, others) = mark_fn(packages, po, v, certain_age, obs_threshold, vault_requests)
+ (mark, others) = mark_fn(packages, po, v, certain_age, vault_requests)
if mark != Freshness.fresh:
mark_package_fresh(packages, pn, v, mark)
@@ -1888,14 +1885,14 @@ def stale_packages(packages, vault_requests):
if mark == Freshness.conditional:
mark = Freshness.stale
- po.tar(v).fresh = mark
+ mark_package_fresh(packages, po.name, v, mark)
# update install packages which use this source package to the
# matching state
for ip in po.is_used_by:
if v in packages[ip].versions():
if getattr(packages[ip].tar(v), 'fresh', Freshness.stale) == Freshness.conditional:
- packages[ip].tar(v).fresh = mark
+ mark_package_fresh(packages, ip, v, mark)
# build a move list of stale versions
stale = MoveList()
diff --git a/calm/reports.py b/calm/reports.py
index 9c0c577..491548c 100644
--- a/calm/reports.py
+++ b/calm/reports.py
@@ -77,6 +77,17 @@ def filenameify(m):
return 'maintainer_' + re.sub(r'[ .]', r'_', m.lower()) + '.html'
+def maintainer_link(m):
+ return '<a href="%s">%s</a>' % (filenameify(m), m)
+
+
+def linkify_maintainers(mp):
+ if mp.is_orphaned():
+ return 'ORPHANED'
+ else:
+ return ','.join(maintainer_link(m) for m in mp.maintainers())
+
+
def status(s):
if s < 0:
style = "red"
@@ -392,9 +403,6 @@ def maintainer_activity_report(args, packages, reportlist):
def pkg_details(pkgs):
return '<details><summary>%d</summary>%s</details>' % (len(pkgs), ', '.join(linkify(p, packages[p]) for p in pkgs))
- def maintainer_link(m):
- return '<a href="%s">%s</a>' % (filenameify(m), m)
-
print('<tr><td>%s</td><td sorttable_customkey="%d">%s</td><td>%s</td><td>%s</td></tr>' %
(maintainer_link(a.name), len(a.pkgs), pkg_details(a.pkgs), pkg2html.tsformat(a.last_seen), pkg2html.tsformat(a.last_package)), file=body)
@@ -408,6 +416,7 @@ def maintainer_activity_report(args, packages, reportlist):
#
def provides_rebuild(args, packages, fn, provide_package, reportlist):
pr_list = []
+ pkg_maintainers = maintainers.pkg_list(args.pkglist)
pp_package = packages.get(provide_package, None)
pp_provide = None
@@ -447,6 +456,10 @@ def provides_rebuild(args, packages, fn, provide_package, reportlist):
pr.depends = d
pr.bv = bv
+ pr.maintainers = []
+ if pr.spo.orig_name in pkg_maintainers:
+ pr.maintainers = pkg_maintainers[pr.spo.orig_name]
+
pr_list.append(pr)
break
@@ -454,11 +467,11 @@ def provides_rebuild(args, packages, fn, provide_package, reportlist):
print('<p>Packages whose latest version depends on a version provides: other than %s.</p>' % pp_provide, file=body)
print('<table class="grid sortable">', file=body)
- print('<tr><th>package</th><th>srcpackage</th><th>version</th><th>depends</th></tr>', file=body)
+ print('<tr><th>package</th><th>srcpackage</th><th>Maintainer</th><th>version</th><th>depends</th></tr>', file=body)
for pr in sorted(pr_list, key=lambda i: (i.depends, i.pn)):
- print('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>' %
- (linkify(pr.pn, pr.po), linkify(pr.spn, pr.spo), pr.bv, pr.depends), file=body)
+ print('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>' %
+ (linkify(pr.pn, pr.po), linkify(pr.spn, pr.spo), linkify_maintainers(pr.maintainers), pr.bv, pr.depends), file=body)
print('</table>', file=body)
diff --git a/test/test_calm.py b/test/test_calm.py
index 88157be..c14cde7 100755
--- a/test/test_calm.py
+++ b/test/test_calm.py
@@ -443,7 +443,7 @@ class CalmTest(unittest.TestCase):
compare_with_expected_file(self, 'testdata/upload_bad_auth', dirlist, d)
shutil.rmtree(getattr(args, d))
- def test_process(self):
+ def test_process_normal(self):
self.maxDiff = None
args = types.SimpleNamespace()
diff --git a/test/testdata/conflict/rel_area.expected b/test/testdata/conflict/rel_area.expected
index 7ae1ec3..886b55b 100644
--- a/test/testdata/conflict/rel_area.expected
+++ b/test/testdata/conflict/rel_area.expected
@@ -153,7 +153,7 @@
'x86_64/release/proj': ['proj-4.8.0-1.hint', 'sha512.sum'],
'x86_64/release/proj/libproj-devel': ['libproj-devel-4.8.0-1.hint', 'sha512.sum'],
'x86_64/release/proj/libproj1': ['libproj1-4.8.0-1.hint', 'sha512.sum'],
- 'x86_64/release/rpm-doc': ['rpm-doc-999-1.hint', 'rpm-doc-999-1.tar.bz2', 'sha512.sum'],
+ 'x86_64/release/rpm-doc': ['sha512.sum'],
'x86_64/release/splint': ['sha512.sum', 'splint-3.1.2-1.hint'],
'x86_64/release/staleversion': ['override.hint',
'sha512.sum',
diff --git a/test/testdata/conflict/vault.expected b/test/testdata/conflict/vault.expected
index 8d3f6eb..7e5cc3a 100644
--- a/test/testdata/conflict/vault.expected
+++ b/test/testdata/conflict/vault.expected
@@ -4,7 +4,9 @@
'x86_64/release/rpm-doc': ['rpm-doc-4.1-2-src.hint',
'rpm-doc-4.1-2-src.tar.bz2',
'rpm-doc-4.1-2.hint',
- 'rpm-doc-4.1-2.tar.bz2'],
+ 'rpm-doc-4.1-2.tar.bz2',
+ 'rpm-doc-999-1.hint',
+ 'rpm-doc-999-1.tar.bz2'],
'x86_64/release/staleversion': ['staleversion-240-1-src.hint',
'staleversion-240-1-src.tar.xz',
'staleversion-240-1.hint',
diff --git a/test/testdata/hints/x86_64/release/rpm-doc/rpm-doc-999-1.expected b/test/testdata/hints/x86_64/release/rpm-doc/rpm-doc-999-1.expected
index a47a381..dedd151 100644
--- a/test/testdata/hints/x86_64/release/rpm-doc/rpm-doc-999-1.expected
+++ b/test/testdata/hints/x86_64/release/rpm-doc/rpm-doc-999-1.expected
@@ -1,2 +1,3 @@
{'sdesc': '"Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)"',
- 'category': '_obsolete'}
+ 'category': '_obsolete',
+ 'requires': 'base-cygwin'}
diff --git a/test/testdata/htdocs.expected/summary/base-cygwin.html b/test/testdata/htdocs.expected/summary/base-cygwin.html
index a1d69f3..a337a02 100755
--- a/test/testdata/htdocs.expected/summary/base-cygwin.html
+++ b/test/testdata/htdocs.expected/summary/base-cygwin.html
@@ -15,7 +15,7 @@
<tr><td><p><span class="detail">description</span>:</p></td><td><p>Initial base installation helper script.</p></td></tr>
<tr><td><p><span class="detail">categories</span>:</p></td><td><p>Base</p></td></tr>
<tr><td><p><span class="detail">depends</span>:</p></td><td><p>cygwin-api0_291</p></td></tr>
-<tr><td><p><span class="detail">rdepends</span>:</p></td><td><p><a href="cygwin.html">cygwin</a>, <a href="per-version.html">per-version</a></p></td></tr>
+<tr><td><p><span class="detail">rdepends</span>:</p></td><td><p><a href="cygwin.html">cygwin</a>, <a href="per-version.html">per-version</a>, <a href="rpm-doc.html">rpm-doc</a></p></td></tr>
<tr><td><p><span class="detail">source package</span>:</p></td><td><p>base-cygwin-src</p></td></tr>
<tr><td><p><span class="detail">maintainer(s)</span>:</p></td><td><p><a href="../reports/maintainer_corinna_vinschen.html">Corinna Vinschen</a>
<span class="smaller">(Use <a href="/lists.html#cygwin">the mailing list</a> to report bugs or ask questions.
diff --git a/test/testdata/htdocs.expected/summary/rpm-doc.html b/test/testdata/htdocs.expected/summary/rpm-doc.html
index 88a079d..3ab75b0 100755
--- a/test/testdata/htdocs.expected/summary/rpm-doc.html
+++ b/test/testdata/htdocs.expected/summary/rpm-doc.html
@@ -14,6 +14,7 @@
<tr><td><p><span class="detail">summary</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">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">depends</span>:</p></td><td><p><a href="base-cygwin.html">base-cygwin</a></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><br>
<table class="pkgtable">
diff --git a/test/testdata/inifile/setup.ini.expected b/test/testdata/inifile/setup.ini.expected
index a123dab..831d600 100644
--- a/test/testdata/inifile/setup.ini.expected
+++ b/test/testdata/inifile/setup.ini.expected
@@ -434,6 +434,7 @@
'version: 999-1\n'
'install: x86_64/release/rpm-doc/rpm-doc-999-1.tar.bz2 42 '
'28c70b843fe01d90a3eeab4a3617551d236cd0b7d69668d1b1b6c8b14a9fd050e4039c192894c93bdf31575771c58c1fea2a41c24c8da22d10080d8b032b6369\n'
+ 'depends2: base-cygwin\n'
'[prev]\n'
'version: 4.1-2\n'
'install: x86_64/release/rpm-doc/rpm-doc-4.1-2.tar.bz2 50941 '
diff --git a/test/testdata/mksetupini/setup.ini.expected b/test/testdata/mksetupini/setup.ini.expected
index 6a7a354..9105b65 100644
--- a/test/testdata/mksetupini/setup.ini.expected
+++ b/test/testdata/mksetupini/setup.ini.expected
@@ -433,6 +433,7 @@
'version: 999-1\n'
'install: x86_64/release/rpm-doc/rpm-doc-999-1.tar.bz2 42 '
'28c70b843fe01d90a3eeab4a3617551d236cd0b7d69668d1b1b6c8b14a9fd050e4039c192894c93bdf31575771c58c1fea2a41c24c8da22d10080d8b032b6369\n'
+ 'depends2: base-cygwin\n'
'[prev]\n'
'version: 4.1-2\n'
'install: x86_64/release/rpm-doc/rpm-doc-4.1-2.tar.bz2 50941 '
diff --git a/test/testdata/process_arch/htdocs.expected b/test/testdata/process_arch/htdocs.expected
index 5bf6eeb..5907fdf 100644
--- a/test/testdata/process_arch/htdocs.expected
+++ b/test/testdata/process_arch/htdocs.expected
@@ -131,7 +131,6 @@
'per-version.html',
'perl-Net-SMTP-SSL-src.html',
'perl-Net-SMTP-SSL.html',
- 'rpm-doc.html',
'staleversion-src.html',
'staleversion.html',
'test-c-src.html',
@@ -160,7 +159,6 @@
'x86_64/openssh': ['.htaccess', 'openssh-7.2p2-1'],
'x86_64/per-version': ['.htaccess', 'per-version-4.0-1', 'per-version-4.8-1', 'per-version-5.0-1'],
'x86_64/per-version-replacement-hint-only': ['.htaccess', 'per-version-replacement-hint-only-1.0-1'],
- 'x86_64/rpm-doc': ['.htaccess', 'rpm-doc-999-1'],
'x86_64/staleversion': ['.htaccess', 'staleversion-243-0', 'staleversion-250-0', 'staleversion-260-0'],
'x86_64/testpackage': ['.htaccess', 'testpackage-1.0-1'],
'x86_64/testpackage-subpackage': ['.htaccess', 'testpackage-subpackage-1.0-1']}
diff --git a/test/testdata/process_arch/rel_area.expected b/test/testdata/process_arch/rel_area.expected
index 71ebc33..5433e9c 100644
--- a/test/testdata/process_arch/rel_area.expected
+++ b/test/testdata/process_arch/rel_area.expected
@@ -157,7 +157,7 @@
'x86_64/release/proj': ['proj-4.8.0-1.hint', 'sha512.sum'],
'x86_64/release/proj/libproj-devel': ['libproj-devel-4.8.0-1.hint', 'sha512.sum'],
'x86_64/release/proj/libproj1': ['libproj1-4.8.0-1.hint', 'sha512.sum'],
- 'x86_64/release/rpm-doc': ['rpm-doc-999-1.hint', 'rpm-doc-999-1.tar.bz2', 'sha512.sum'],
+ 'x86_64/release/rpm-doc': ['sha512.sum'],
'x86_64/release/splint': ['sha512.sum', 'splint-3.1.2-1.hint'],
'x86_64/release/staleversion': ['override.hint',
'sha512.sum',
diff --git a/test/testdata/process_arch/setup.ini.expected b/test/testdata/process_arch/setup.ini.expected
index 70b5575..102077d 100644
--- a/test/testdata/process_arch/setup.ini.expected
+++ b/test/testdata/process_arch/setup.ini.expected
@@ -49,10 +49,12 @@
'install: x86_64/release/base-cygwin/base-cygwin-3.8-1.tar.xz 228 '
'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
'depends2: cygwin-api0_291\n'
+ 'obsoletes: rpm-doc\n'
'[prev]\n'
'version: 3.6-1\n'
'install: x86_64/release/base-cygwin/base-cygwin-3.6-1.tar.xz 228 '
'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
+ 'obsoletes: rpm-doc\n'
'\n'
'@ corrupt\n'
'sdesc: "A corrupt package"\n'
@@ -440,13 +442,6 @@
'source: noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-1-src.tar.xz 2752 '
'4de528554acb0b63f2a964bc8a0421118f96ce05cb4c9d111983aaea1a4a93025b31627fd66875fa09c2dfaecc11a89f2a294bdd3c77055bfaa93a27fdfc1f07\n'
'\n'
- '@ rpm-doc\n'
- 'sdesc: "Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)"\n'
- 'category: _obsolete\n'
- 'version: 999-1\n'
- 'install: x86_64/release/rpm-doc/rpm-doc-999-1.tar.bz2 42 '
- '28c70b843fe01d90a3eeab4a3617551d236cd0b7d69668d1b1b6c8b14a9fd050e4039c192894c93bdf31575771c58c1fea2a41c24c8da22d10080d8b032b6369\n'
- '\n'
'@ staleversion\n'
'sdesc: "Test package for stale version removal"\n'
'ldesc: "Test package for stale version removal"\n'
diff --git a/test/testdata/process_arch/vault.expected b/test/testdata/process_arch/vault.expected
index 66a0789..641326a 100644
--- a/test/testdata/process_arch/vault.expected
+++ b/test/testdata/process_arch/vault.expected
@@ -10,7 +10,9 @@
'x86_64/release/rpm-doc': ['rpm-doc-4.1-2-src.hint',
'rpm-doc-4.1-2-src.tar.bz2',
'rpm-doc-4.1-2.hint',
- 'rpm-doc-4.1-2.tar.bz2'],
+ 'rpm-doc-4.1-2.tar.bz2',
+ 'rpm-doc-999-1.hint',
+ 'rpm-doc-999-1.tar.bz2'],
'x86_64/release/staleversion': ['staleversion-240-1-src.hint',
'staleversion-240-1-src.tar.xz',
'staleversion-240-1.hint',
diff --git a/test/testdata/relarea/x86_64/release/rpm-doc/rpm-doc-999-1.hint b/test/testdata/relarea/x86_64/release/rpm-doc/rpm-doc-999-1.hint
index 087a6dd..a53fb06 100644
--- a/test/testdata/relarea/x86_64/release/rpm-doc/rpm-doc-999-1.hint
+++ b/test/testdata/relarea/x86_64/release/rpm-doc/rpm-doc-999-1.hint
@@ -1,2 +1,3 @@
sdesc: "Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)"
category: _obsolete
+requires: base-cygwin
diff --git a/test/testdata/upload_bad_auth/rel_area.expected b/test/testdata/upload_bad_auth/rel_area.expected
index 7ae1ec3..886b55b 100644
--- a/test/testdata/upload_bad_auth/rel_area.expected
+++ b/test/testdata/upload_bad_auth/rel_area.expected
@@ -153,7 +153,7 @@
'x86_64/release/proj': ['proj-4.8.0-1.hint', 'sha512.sum'],
'x86_64/release/proj/libproj-devel': ['libproj-devel-4.8.0-1.hint', 'sha512.sum'],
'x86_64/release/proj/libproj1': ['libproj1-4.8.0-1.hint', 'sha512.sum'],
- 'x86_64/release/rpm-doc': ['rpm-doc-999-1.hint', 'rpm-doc-999-1.tar.bz2', 'sha512.sum'],
+ 'x86_64/release/rpm-doc': ['sha512.sum'],
'x86_64/release/splint': ['sha512.sum', 'splint-3.1.2-1.hint'],
'x86_64/release/staleversion': ['override.hint',
'sha512.sum',
diff --git a/test/testdata/upload_bad_auth/vault.expected b/test/testdata/upload_bad_auth/vault.expected
index 8d3f6eb..7e5cc3a 100644
--- a/test/testdata/upload_bad_auth/vault.expected
+++ b/test/testdata/upload_bad_auth/vault.expected
@@ -4,7 +4,9 @@
'x86_64/release/rpm-doc': ['rpm-doc-4.1-2-src.hint',
'rpm-doc-4.1-2-src.tar.bz2',
'rpm-doc-4.1-2.hint',
- 'rpm-doc-4.1-2.tar.bz2'],
+ 'rpm-doc-4.1-2.tar.bz2',
+ 'rpm-doc-999-1.hint',
+ 'rpm-doc-999-1.tar.bz2'],
'x86_64/release/staleversion': ['staleversion-240-1-src.hint',
'staleversion-240-1-src.tar.xz',
'staleversion-240-1.hint',