From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 107587 invoked by alias); 20 Jun 2019 16:18:40 -0000 Mailing-List: contact cygwin-apps-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cygwin-apps-cvs-owner@sourceware.org Received: (qmail 107312 invoked by uid 9795); 20 Jun 2019 16:18:40 -0000 Date: Thu, 20 Jun 2019 16:18:00 -0000 Message-ID: <20190620161840.107279.qmail@sourceware.org> From: jturney@sourceware.org To: cygwin-apps-cvs@sourceware.org Subject: [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20190530-32-gf92ad1d X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: a650a81c43b11560a7c7b87660b9920c2858e285 X-Git-Newrev: f92ad1d5c292ed54e7a62f5c52280efab8267f37 X-SW-Source: 2019-q2/txt/msg00023.txt.bz2 https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=f92ad1d5c292ed54e7a62f5c52280efab8267f37 commit f92ad1d5c292ed54e7a62f5c52280efab8267f37 Author: Jon Turney Date: Wed Jun 19 18:26:23 2019 +0100 Omit maintainer in package summary page if we don't have any details Also improve the package/maintainer validation we do, to better detect non-obsolete, maintainer-less packages. Also make some unnecessarily absolute URLs relative. https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=7b5e7c5f9a9e981d9165a0486c1407ad9e9b6a09 commit 7b5e7c5f9a9e981d9165a0486c1407ad9e9b6a09 Author: Jon Turney Date: Mon Jun 17 20:01:35 2019 +0100 Linkify hyperlinks in ldesc in package summary page Also move where we do html escaping, so it doesn't interact with formatting of line-breaks in ldesc https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=65fee8305bcab558831f89750c1690298a210895 commit 65fee8305bcab558831f89750c1690298a210895 Author: Jon Turney Date: Mon Jun 17 11:43:34 2019 +0100 Clarify messages which can appear as a consequence of another error Clarify messages which can appear as a consequence of another error in a different package. (We don't distinguish between missing and errored packages, so this is the best we can do, at the moment.) https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=9d3908e05391a205ebcdb923d2ffdf9fa8687f50 commit 9d3908e05391a205ebcdb923d2ffdf9fa8687f50 Author: Jon Turney Date: Sun Jun 16 23:39:05 2019 +0100 Round file size up in package summary Round the file size up in package summary (so tiny, but non-empty packages are reported as 1kB, while empty packages are still reported as 0kB) https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=3a2efe206ea6879cdf0dfac252a9f1f70d6e9638 commit 3a2efe206ea6879cdf0dfac252a9f1f70d6e9638 Author: Jon Turney Date: Sun Jun 16 23:18:24 2019 +0100 Add alphabetic shortcuts to package list https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=5a0661fd16b9af1663ab6b8676df0b35616604ae commit 5a0661fd16b9af1663ab6b8676df0b35616604ae Author: Jon Turney Date: Mon Jun 10 19:58:03 2019 +0100 Drop some accomodations for sdesc:-less packages Also use sdesc, rather than package name, in place of an absent ldesc in package summary https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=4a35a245b35b5817c772eda941b45d06ffacb01f commit 4a35a245b35b5817c772eda941b45d06ffacb01f Author: Jon Turney Date: Sun Jun 9 21:13:35 2019 +0100 Don't allow hint file to consist of just 'skip:' Historically, this was allowed for a source-only package, but source packages not having a sdesc: is now inconvenient. For uploads, this should be no great hardship, as we already suggest cygport >= 0.23.0 for pvr.hint generation. 'calm-tool fix-skip-only-hint' can be used on an existing relarea. https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=c1d428b24f352cbb1f92ceae9b279bcffe128e50 commit c1d428b24f352cbb1f92ceae9b279bcffe128e50 Author: Jon Turney Date: Tue Jun 11 17:57:22 2019 +0100 packages.inc doesn't need execute permissions https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=46a115f52f38ae46f0e32b6956a55a5b5c2e91bd commit 46a115f52f38ae46f0e32b6956a55a5b5c2e91bd Author: Jon Turney Date: Tue Jun 11 13:26:19 2019 +0100 Factor out os.makedirs wrapper Diff: --- calm/calm.py | 6 +- calm/dedupsrc.py | 6 +- calm/hint.py | 8 ++- calm/movelist.py | 11 +-- calm/package.py | 19 +++-- calm/past_mistakes.py | 11 +++ calm/pkg2html.py | 77 ++++++++++++-------- calm/utils.py | 13 ++++ test/testdata/htdocs.expected/packages.inc | 35 ++++++--- test/testdata/htdocs.expected/summary/arc.html | 4 +- .../htdocs.expected/summary/base-cygwin.html | 8 +- test/testdata/htdocs.expected/summary/corrupt.html | 6 +- .../htdocs.expected/summary/cygwin-debuginfo.html | 10 ++-- .../htdocs.expected/summary/cygwin-devel.html | 10 ++-- test/testdata/htdocs.expected/summary/cygwin.html | 16 ++-- .../testdata/htdocs.expected/summary/keychain.html | 8 +- .../htdocs.expected/summary/libdns_sd-devel.html | 6 +- .../htdocs.expected/summary/libdns_sd1.html | 6 +- .../htdocs.expected/summary/mDNSResponder.html | 8 +- test/testdata/htdocs.expected/summary/obs-a.html | 10 ++-- test/testdata/htdocs.expected/summary/obs-b.html | 10 ++-- test/testdata/htdocs.expected/summary/openssh.html | 8 +- .../summary/per-version-replacement-hint-only.html | 8 +- .../htdocs.expected/summary/per-version.html | 12 ++-- .../htdocs.expected/summary/perl-Net-SMTP-SSL.html | 10 ++-- test/testdata/htdocs.expected/summary/rpm-doc.html | 10 +-- .../htdocs.expected/summary/staleversion.html | 28 ++++---- test/testdata/htdocs.expected/summary/test-c.html | 10 ++-- test/testdata/htdocs.expected/summary/test-d.html | 10 ++-- test/testdata/htdocs.expected/summary/test-e.html | 10 ++-- .../htdocs.expected/summary/testpackage.html | 4 +- 31 files changed, 221 insertions(+), 177 deletions(-) diff --git a/calm/calm.py b/calm/calm.py index 0ff63ec..28e15e3 100755 --- a/calm/calm.py +++ b/calm/calm.py @@ -75,6 +75,7 @@ from . import pkg2html from . import queue from . import setup_exe from . import uploads +from . import utils # @@ -619,10 +620,7 @@ def mail_logs(enabled, toaddrs, subject, thresholdLevel, retainLevel=None): def logging_setup(args): # set up logging to a file - try: - os.makedirs(args.logdir, exist_ok=True) - except FileExistsError: - pass + utils.makedirs(args.logdir) rfh = logging.handlers.TimedRotatingFileHandler(os.path.join(args.logdir, 'calm.log'), backupCount=48, when='midnight') rfh.setFormatter(logging.Formatter('%(asctime)s - %(levelname)-8s - %(message)s')) rfh.setLevel(logging.DEBUG) diff --git a/calm/dedupsrc.py b/calm/dedupsrc.py index d8a8e84..4bf48ea 100644 --- a/calm/dedupsrc.py +++ b/calm/dedupsrc.py @@ -35,6 +35,7 @@ import sys from . import common_constants from . import hint +from . import utils binary_only_hints = ['requires', 'depends', 'obsoletes', 'external-source'] @@ -142,10 +143,7 @@ def dedup(archive, relarea): return 1 # ensure target directory exists - try: - os.makedirs(os.path.join(relarea, 'src', path, p + '-src')) - except FileExistsError: - pass + utils.makedirs(os.path.join(relarea, 'src', path, p + '-src')) # write .hint file for new -src package src_hints = copy.copy(hints['x86']) diff --git a/calm/hint.py b/calm/hint.py index c340b94..5b050a7 100755 --- a/calm/hint.py +++ b/calm/hint.py @@ -276,10 +276,12 @@ def hint_file_parse(fn, kind): else: errors.append("unknown construct '%s' at line %d" % (item, i)) - # for the pvr kind, if 'skip' isn't present, 'category' and - # 'sdesc' must be + if ('skip' in hints) and (len(hints) == 1): + errors.append("hint only contains skip: key, please update to cygport >= 0.22.0") + + # for the pvr kind, 'category' and 'sdesc' must be present # XXX: genini also requires 'requires' but that seems wrong - if 'skip' not in hints and kind == pvr: + if kind == pvr: mandatory = ['category', 'sdesc'] for k in mandatory: if k not in hints: diff --git a/calm/movelist.py b/calm/movelist.py index 8fb682a..bf6268e 100644 --- a/calm/movelist.py +++ b/calm/movelist.py @@ -25,6 +25,7 @@ import logging import os from collections import defaultdict +from . import utils # @@ -54,10 +55,7 @@ class MoveList(object): for p in sorted(self.movelist): logging.debug("mkdir %s" % os.path.join(todir, p)) if not args.dryrun: - try: - os.makedirs(os.path.join(todir, p), exist_ok=True) - except FileExistsError: - pass + utils.makedirs(os.path.join(todir, p)) logging.debug("move from '%s' to '%s':" % (os.path.join(fromdir, p), os.path.join(todir, p))) for f in sorted(self.movelist[p]): if os.path.exists(os.path.join(fromdir, p, f)): @@ -98,10 +96,7 @@ class MoveList(object): for p in sorted(self.movelist): logging.debug("mkdir %s" % os.path.join(todir, p)) if not args.dryrun: - try: - os.makedirs(os.path.join(todir, p), exist_ok=True) - except FileExistsError: - pass + utils.makedirs(os.path.join(todir, p)) logging.debug("copy from '%s' to '%s':" % (os.path.join(fromdir, p), os.path.join(todir, p))) for f in sorted(self.movelist[p]): if os.path.exists(os.path.join(fromdir, p, f)): diff --git a/calm/package.py b/calm/package.py index 7e7bb6a..008d01c 100755 --- a/calm/package.py +++ b/calm/package.py @@ -448,7 +448,7 @@ def validate_packages(args, packages): # disable-check option says that's ok) if r not in packages: if okmissing not in getattr(args, 'disable_check', []): - logging.error("package '%s' version '%s' %s nonexistent package '%s'" % (p, v, c, r)) + logging.error("package '%s' version '%s' %s nonexistent or errored package '%s'" % (p, v, c, r)) error = True continue @@ -461,7 +461,7 @@ def validate_packages(args, packages): if 'external-source' in hints: e = hints['external-source'] if e not in packages: - logging.error("package '%s' version '%s' refers to nonexistent external-source '%s'" % (p, v, e)) + logging.error("package '%s' version '%s' refers to nonexistent or errored external-source '%s'" % (p, v, e)) error = True packages[p].vermap = defaultdict(defaultdict) @@ -807,15 +807,20 @@ def validate_package_maintainers(args, packages): # validate that all packages are in the package list for p in sorted(packages): - # ignore skip packages - if packages[p].skip: - continue # ignore obsolete packages if any(['_obsolete' in packages[p].version_hints[vr].get('category', '') for vr in packages[p].version_hints]): continue + # validate that the package is in a path which starts with something in the package list if not is_in_package_list(packages[p].pkgpath, all_packages): - logging.error("package '%s' is not in the package list" % (p)) + logging.error("package '%s' on path '%s', which doesn't start with a package in the package list" % (p, packages[p].pkgpath)) error = True + # validate that the source package has a maintainer + bv = packages[p].best_version + es = packages[p].version_hints[bv].get('external-source', p) + if es not in all_packages and p not in all_packages: + if bv not in past_mistakes.maint_anomalies.get(p, []): + logging.error("package '%s' is not obsolete, but has no maintainer" % (p)) + error = True return error @@ -1051,7 +1056,7 @@ def write_repo_json(args, packages, f): d = { 'name': pn, 'versions': versions, - 'summary': po.version_hints[bv].get('sdesc', '').strip('"'), + 'summary': po.version_hints[bv]['sdesc'].strip('"'), 'subpackages': [{'name': sp, 'categories': package(sp).version_hints[package(sp).best_version].get('category', '').split()} for sp in po.is_used_by], 'arches': arches, } diff --git a/calm/past_mistakes.py b/calm/past_mistakes.py index 9a04f3d..31bcb0d 100644 --- a/calm/past_mistakes.py +++ b/calm/past_mistakes.py @@ -169,3 +169,14 @@ mtime_anomalies = [ 'subversion-ruby', 'subversion-tools', ] + +# packages with maintainer anomalies +maint_anomalies = { + 'libelf0': ['0.8.13-2'], # libelf is called libelf0 in x86 arch + 'libelf0-devel': ['0.8.13-2'], + 'ksnapshot-debuginfo': ['15.04.3-1'], # should be obsoleted by spectacle(-debuginfo) + 'man-debuginfo': ['1.6g-2'], # should be obsoleted by man-db(-debuginfo) + 'procps-debuginfo': ['3.2.8-5'], # should be obsoleted by procps-ng(-debuginfo) + 'python-debuginfo': ['2.7.12-1'], # should be obsoleted by python2(-debuginfo) + 'transfig-debuginfo': ['3.2.5e-2'], # should be obsoleted by xfig(-debuginfo) +} diff --git a/calm/pkg2html.py b/calm/pkg2html.py index a74f913..e5c3c06 100755 --- a/calm/pkg2html.py +++ b/calm/pkg2html.py @@ -44,8 +44,10 @@ import glob import html import itertools import logging +import math import os import re +import string import sys import tarfile import textwrap @@ -61,46 +63,39 @@ from . import utils # # get sdesc for a package # -# some source-only packages don't have an sdesc, since they consist of just -# 'skip':', in which case we try to make a reasonable one -# - def sdesc(packages, p, bv): - if 'sdesc' in packages[p].version_hints[bv]: - header = packages[p].version_hints[bv]['sdesc'] - else: - header = p - - return header.strip('"') + header = packages[p].version_hints[bv]['sdesc'] + header = header.strip('"') + return html.escape(header, quote=False) +# # ditto for ldesc - +# def ldesc(packages, p, bv): if 'ldesc' in packages[p].version_hints[bv]: header = packages[p].version_hints[bv]['ldesc'] else: - header = p + return sdesc(packages, p, bv) header = header.strip('"') + # escape html entities + header = html.escape(header, quote=False) header = header.replace('\n\n', '\n
\n') # try to recognize things which look like bullet points header = re.sub(r'\n(\s*[*-]\s)', r'
\n\1', header) + # linkify things which look like hyperlinks + header = re.sub(r'http(s|)://[^\s\)]*', r'\g<0>', header) return header +# # ensure a directory exists # -# for some versions of python, os.makedirs() can still raise FileExistsError -# even when exists_ok=True, if the directory mode is not as expected. - def ensure_dir_exists(args, path): if not args.dryrun: - try: - os.makedirs(path, exist_ok=True) - except FileExistsError: - pass + utils.makedirs(path) os.chmod(path, 0o755) @@ -177,8 +172,8 @@ def update_package_listings(args, packages):

Package: %s

''' % (title, p)), file=f) - print('summary: %s

' % html.escape(sdesc(arch_packages, p, bv), quote=False), file=f) - print('description: %s

' % html.escape(ldesc(arch_packages, p, bv), quote=False), file=f) + print('summary: %s

' % sdesc(arch_packages, p, bv), file=f) + print('description: %s

' % ldesc(arch_packages, p, bv), file=f) print('categories: %s

' % arch_packages[p].version_hints[bv].get('category', ''), file=f) for key in ['depends', 'obsoletes', 'provides', 'conflicts', 'build-depends']: @@ -197,11 +192,13 @@ def update_package_listings(args, packages): m = 'ORPHANED' else: m = ', '.join(sorted(pkg_maintainers[es])) - print('maintainer(s): %s ' % m, file=f) - print(textwrap.dedent('''\ - (Use the mailing list to report bugs or ask questions. - Do not contact the maintainer(s) directly.)'''), file=f) - print('

', file=f) + + if m: + print('maintainer(s): %s ' % m, file=f) + print(textwrap.dedent('''\ + (Use the mailing list to report bugs or ask questions. + Do not contact the maintainer(s) directly.)'''), file=f) + print('

', file=f) print('
    ', file=f) for arch in sorted(packages): @@ -216,7 +213,7 @@ def update_package_listings(args, packages): if category not in p.vermap[v]: return t = p.vermap[v][category] - size = round(p.tar(v, category).size / 1024) + size = int(math.ceil(p.tar(v, category).size / 1024)) name = v if category == 'install' else v + ' (source)' target = "%s-%s" % (pn, v) + ('' if category == 'install' else '-src') test = 'test' if 'test' in p.version_hints[v] else 'stable' @@ -247,10 +244,22 @@ def update_package_listings(args, packages): logging.debug('writing %s' % packages_inc) if not args.dryrun: with open(packages_inc, 'w') as index: - os.fchmod(index.fileno(), 0o755) + os.fchmod(index.fileno(), 0o644) + + jumplist = set() + for p in package_list: + c = p[0].lower() + if c in string.ascii_lowercase: + jumplist.add(c) + + print('

    ', file=index) + print(' - \n'.join(['%s' % (c, c) for c in sorted(jumplist)]), file=index) + print('

    ', file=index) + print('', file=index) first = ' class="pkgname"' + jump = '' for p in sorted(package_list, key=package.sort_key): if p.endswith('-debuginfo'): continue @@ -267,8 +276,14 @@ def update_package_listings(args, packages): bv = arch_packages[p].best_version header = sdesc(arch_packages, p, bv) - print('%s' % - (first, p, p, html.escape(header, quote=False)), + anchor = '' + if jump != p[0].lower(): + jump = p[0].lower() + if jump in jumplist: + anchor = ' id="%s"' % (jump) + + print('%s' % + (anchor, first, p, p, header), file=index) first = '' @@ -360,8 +375,6 @@ def write_arch_listing(args, packages, arch): if fver.endswith('-src'): header = header + " (source code)" - header = html.escape(header, quote=False) - print(textwrap.dedent('''\ diff --git a/calm/utils.py b/calm/utils.py index 7c33ac7..d6d6e1c 100644 --- a/calm/utils.py +++ b/calm/utils.py @@ -38,3 +38,16 @@ def touch(fn, times=None): os.utime(fn, times) except PermissionError: logging.error("couldn't update mtime for %s" % (fn)) + + +# +# ensure a directory exists +# +# for some versions of python, os.makedirs() can still raise FileExistsError +# even when exists_ok=True, if the directory mode is not as expected. +# +def makedirs(name): + try: + os.makedirs(name, exist_ok=True) + except FileExistsError: + pass diff --git a/test/testdata/htdocs.expected/packages.inc b/test/testdata/htdocs.expected/packages.inc index 0ed68aa..25a317f 100755 --- a/test/testdata/htdocs.expected/packages.inc +++ b/test/testdata/htdocs.expected/packages.inc @@ -1,22 +1,35 @@ +

    +a - +b - +c - +k - +l - +m - +o - +p - +r - +s - +t +

    %s
    %s
    - - - + + + - - + + - - + + - + - - - + + + diff --git a/test/testdata/htdocs.expected/summary/arc.html b/test/testdata/htdocs.expected/summary/arc.html index 2d988b8..009b8f5 100644 --- a/test/testdata/htdocs.expected/summary/arc.html +++ b/test/testdata/htdocs.expected/summary/arc.html @@ -20,8 +20,8 @@ the best of packing, squeezing, or crunching is used.

    categories: Archive

    binaries: arc

    maintainer(s): Jari Aalto -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

    arcThe ARC archive utility
    base-cygwinInitial base installation helper script
    corruptA corrupt package
    arcThe ARC archive utility
    base-cygwinInitial base installation helper script
    corruptA corrupt package
    cygwinThe UNIX emulation engine
    cygwin-develCore development files
    keychainKey manager for OpenSSH
    libdns_sd-develBonjour Zeroconf implementation
    keychainKey manager for OpenSSH
    libdns_sd-develBonjour Zeroconf implementation
    libdns_sd1Bonjour Zeroconf implementation
    mDNSResponderBonjour Zeroconf implementation
    obs-aobsolete package A
    mDNSResponderBonjour Zeroconf implementation
    obs-aobsolete package A
    obs-bobsolete package B
    opensshThe OpenSSH server and client programs
    per-versionPer-version hint test package
    per-versionPer-version hint test package
    per-version-replacement-hint-onlyPer-version hint test package
    perl-Net-SMTP-SSLPerl distribution Net-SMTP-SSL
    rpm-docObsolete package for RPM package management system manual pages (extra text to so repr is not one line)
    staleversionTest package for stale version removal
    test-ctest package C
    rpm-docObsolete package for RPM package management system manual pages (extra text to so repr is not one line)
    staleversionTest package for stale version removal
    test-ctest package C
    test-dtest package D
    test-etest package E
    testpackageA test package (stuff & other stuff)
    - - + +
    VersionPackage SizeFilesStatus
    3.6-10 kB[list of files]stable
    3.8-10 kB[list of files]stable
    3.6-11 kB[list of files]stable
    3.8-11 kB[list of files]stable

diff --git a/test/testdata/htdocs.expected/summary/corrupt.html b/test/testdata/htdocs.expected/summary/corrupt.html index 0b91c3a..d7016dc 100644 --- a/test/testdata/htdocs.expected/summary/corrupt.html +++ b/test/testdata/htdocs.expected/summary/corrupt.html @@ -15,14 +15,14 @@ categories: Devel

binaries: corrupt

maintainer(s): Blooey McFooey -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

diff --git a/test/testdata/htdocs.expected/summary/cygwin-debuginfo.html b/test/testdata/htdocs.expected/summary/cygwin-debuginfo.html index bf4d895..0d613d6 100644 --- a/test/testdata/htdocs.expected/summary/cygwin-debuginfo.html +++ b/test/testdata/htdocs.expected/summary/cygwin-debuginfo.html @@ -17,16 +17,16 @@ cygwin package with gdb.

depends: cygwin-debuginfo

source: cygwin

maintainer(s): Corinna Vinschen, Yaakov Selkowitz -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

diff --git a/test/testdata/htdocs.expected/summary/cygwin-devel.html b/test/testdata/htdocs.expected/summary/cygwin-devel.html index 1a443b8..2435a15 100644 --- a/test/testdata/htdocs.expected/summary/cygwin-devel.html +++ b/test/testdata/htdocs.expected/summary/cygwin-devel.html @@ -15,16 +15,16 @@ categories: Devel

source: cygwin

maintainer(s): Corinna Vinschen, Yaakov Selkowitz -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

diff --git a/test/testdata/htdocs.expected/summary/cygwin.html b/test/testdata/htdocs.expected/summary/cygwin.html index b77856b..c7c16de 100644 --- a/test/testdata/htdocs.expected/summary/cygwin.html +++ b/test/testdata/htdocs.expected/summary/cygwin.html @@ -16,19 +16,19 @@ depends: base-cygwin

binaries: cygwin, cygwin-debuginfo, cygwin-devel

maintainer(s): Corinna Vinschen, Yaakov Selkowitz -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

diff --git a/test/testdata/htdocs.expected/summary/keychain.html b/test/testdata/htdocs.expected/summary/keychain.html index 392083b..96f30f7 100644 --- a/test/testdata/htdocs.expected/summary/keychain.html +++ b/test/testdata/htdocs.expected/summary/keychain.html @@ -24,16 +24,16 @@ necessary

depends: openssh

binaries: keychain

maintainer(s): Jari Aalto -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

diff --git a/test/testdata/htdocs.expected/summary/libdns_sd-devel.html b/test/testdata/htdocs.expected/summary/libdns_sd-devel.html index efa7fef..e28d111 100644 --- a/test/testdata/htdocs.expected/summary/libdns_sd-devel.html +++ b/test/testdata/htdocs.expected/summary/libdns_sd-devel.html @@ -18,14 +18,14 @@ industry standard IP protocols.

depends: libdns_sd1

source: mDNSResponder

maintainer(s): Yaakov Selkowitz -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

diff --git a/test/testdata/htdocs.expected/summary/libdns_sd1.html b/test/testdata/htdocs.expected/summary/libdns_sd1.html index 1b1e201..8fe51cd 100644 --- a/test/testdata/htdocs.expected/summary/libdns_sd1.html +++ b/test/testdata/htdocs.expected/summary/libdns_sd1.html @@ -17,14 +17,14 @@ industry standard IP protocols.

categories: Net

source: mDNSResponder

maintainer(s): Yaakov Selkowitz -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

diff --git a/test/testdata/htdocs.expected/summary/mDNSResponder.html b/test/testdata/htdocs.expected/summary/mDNSResponder.html index 94788d1..eac93f9 100644 --- a/test/testdata/htdocs.expected/summary/mDNSResponder.html +++ b/test/testdata/htdocs.expected/summary/mDNSResponder.html @@ -18,15 +18,15 @@ industry standard IP protocols.

depends: libdns_sd1

binaries: libdns_sd-devel, libdns_sd1, mDNSResponder

maintainer(s): Yaakov Selkowitz -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

diff --git a/test/testdata/htdocs.expected/summary/obs-a.html b/test/testdata/htdocs.expected/summary/obs-a.html index 0d32039..b3f5ac7 100644 --- a/test/testdata/htdocs.expected/summary/obs-a.html +++ b/test/testdata/htdocs.expected/summary/obs-a.html @@ -11,19 +11,19 @@

Package: obs-a

summary: obsolete package A

-description: obs-a

+description: obsolete package A

categories: Devel

binaries: obs-a

maintainer(s): ORPHANED -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

diff --git a/test/testdata/htdocs.expected/summary/obs-b.html b/test/testdata/htdocs.expected/summary/obs-b.html index 3062af6..436fa94 100644 --- a/test/testdata/htdocs.expected/summary/obs-b.html +++ b/test/testdata/htdocs.expected/summary/obs-b.html @@ -11,19 +11,19 @@

Package: obs-b

summary: obsolete package B

-description: obs-b

+description: obsolete package B

categories: Devel

binaries: obs-b

maintainer(s): ORPHANED -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

diff --git a/test/testdata/htdocs.expected/summary/openssh.html b/test/testdata/htdocs.expected/summary/openssh.html index a8a92be..a2f3b78 100644 --- a/test/testdata/htdocs.expected/summary/openssh.html +++ b/test/testdata/htdocs.expected/summary/openssh.html @@ -17,15 +17,15 @@ categories: Net

binaries: openssh

maintainer(s): Corinna Vinschen -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

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 277fd3b..8ab2a7f 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 @@ -16,15 +16,15 @@ depends: cygwin

binaries: per-version-replacement-hint-only

maintainer(s): Blooey McFooey -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

diff --git a/test/testdata/htdocs.expected/summary/per-version.html b/test/testdata/htdocs.expected/summary/per-version.html index fe82cee..3fef454 100644 --- a/test/testdata/htdocs.expected/summary/per-version.html +++ b/test/testdata/htdocs.expected/summary/per-version.html @@ -16,17 +16,17 @@ depends: base-cygwin

binaries: per-version

maintainer(s): Blooey McFooey -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

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 700037e..68f5b81 100644 --- a/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL.html +++ b/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL.html @@ -16,18 +16,18 @@ its network operations in order to support encrypted connections.

categories: Perl

binaries: perl-Net-SMTP-SSL

maintainer(s): Blooey McFooey, Yaakov Selkowitz -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

diff --git a/test/testdata/htdocs.expected/summary/rpm-doc.html b/test/testdata/htdocs.expected/summary/rpm-doc.html index d7c844f..f56be56 100644 --- a/test/testdata/htdocs.expected/summary/rpm-doc.html +++ b/test/testdata/htdocs.expected/summary/rpm-doc.html @@ -11,20 +11,16 @@

Package: rpm-doc

summary: Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)

-description: rpm-doc

+description: Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)

categories: _obsolete

binaries: rpm-doc

-maintainer(s): -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) -

diff --git a/test/testdata/htdocs.expected/summary/staleversion.html b/test/testdata/htdocs.expected/summary/staleversion.html index a283f53..0f59ea2 100644 --- a/test/testdata/htdocs.expected/summary/staleversion.html +++ b/test/testdata/htdocs.expected/summary/staleversion.html @@ -15,25 +15,25 @@ categories: Shells Base

binaries: staleversion

maintainer(s): Blooey McFooey -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

diff --git a/test/testdata/htdocs.expected/summary/test-c.html b/test/testdata/htdocs.expected/summary/test-c.html index c506b97..188f4b0 100644 --- a/test/testdata/htdocs.expected/summary/test-c.html +++ b/test/testdata/htdocs.expected/summary/test-c.html @@ -11,21 +11,21 @@

Package: test-c

summary: test package C

-description: test-c

+description: test package C

categories: Devel

depends: test-d (>= 1.0), test-e

obsoletes: obs-a, obs-b

binaries: test-c

maintainer(s): ORPHANED -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

diff --git a/test/testdata/htdocs.expected/summary/test-d.html b/test/testdata/htdocs.expected/summary/test-d.html index fc139bf..ba3ee0e 100644 --- a/test/testdata/htdocs.expected/summary/test-d.html +++ b/test/testdata/htdocs.expected/summary/test-d.html @@ -11,19 +11,19 @@

Package: test-d

summary: test package D

-description: test-d

+description: test package D

categories: Devel

binaries: test-d

maintainer(s): ORPHANED -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

diff --git a/test/testdata/htdocs.expected/summary/test-e.html b/test/testdata/htdocs.expected/summary/test-e.html index b97a9ba..1360f7d 100644 --- a/test/testdata/htdocs.expected/summary/test-e.html +++ b/test/testdata/htdocs.expected/summary/test-e.html @@ -11,20 +11,20 @@

Package: test-e

summary: test package E

-description: test-e

+description: test package E

categories: Devel

build-depends: libtextcat-devel

binaries: test-e

maintainer(s): ORPHANED -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

diff --git a/test/testdata/htdocs.expected/summary/testpackage.html b/test/testdata/htdocs.expected/summary/testpackage.html index ca5706e..6f6daff 100644 --- a/test/testdata/htdocs.expected/summary/testpackage.html +++ b/test/testdata/htdocs.expected/summary/testpackage.html @@ -15,8 +15,8 @@ categories: Devel

binaries: testpackage

maintainer(s): Blooey McFooey -(Use the mailing list to report bugs or ask questions. -Do not contact the maintainer(s) directly.) +(Use the mailing list to report bugs or ask questions. +Do not contact the maintainer(s) directly.)

  • x86