From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 45397 invoked by alias); 12 Jun 2019 10:47:59 -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 45354 invoked by uid 9795); 12 Jun 2019 10:47:59 -0000 Date: Wed, 12 Jun 2019 10:47:00 -0000 Message-ID: <20190612104759.45342.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-21-g0c3affa X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 11f3d9a7cbe29ccea6b70597b70fc0679540c9cb X-Git-Newrev: 0c3affa71ccf8965269f2c4eaab54f7aa189ddb1 X-SW-Source: 2019-q2/txt/msg00021.txt.bz2 https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=0c3affa71ccf8965269f2c4eaab54f7aa189ddb1 commit 0c3affa71ccf8965269f2c4eaab54f7aa189ddb1 Author: Jon Turney Date: Tue Jun 11 11:39:45 2019 +0100 Touch packages_list.html when packages.inc is updated Touch packages_list.html when packages.inc is updated, for the benefit of 'XBitHack full' Factor out touch utility function https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=dd2acec3d8d881e9560f3f07455f138a140248b8 commit dd2acec3d8d881e9560f3f07455f138a140248b8 Author: Jon Turney Date: Tue Jun 11 10:21:13 2019 +0100 Use summary/description rather than sdesc/ldesc in package summary page Also HTML escape those texts https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=05fd42a2837950e66d744caf10e076311db6dd49 commit 05fd42a2837950e66d744caf10e076311db6dd49 Author: Jon Turney Date: Sun Jun 9 19:27:10 2019 +0100 Add a tool for fixing skip: only hints These used to be generated by cygport for source-only packages. Try to fill these in with information from associated packages. https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=4ec26afb45ce0f1fb2335e11c579df1f32ac3a56 commit 4ec26afb45ce0f1fb2335e11c579df1f32ac3a56 Author: Jon Turney Date: Sun Jun 9 16:07:43 2019 +0100 Give first package name in pkglist the 'pkgname' style This can be used to give that column a fixed width in the CSS, rather than waiting until the entire page has loaded before it's finalized. Diff: --- calm/fix-skip-only-hint.py | 225 ++++++++++++++++++++ calm/maintainers.py | 11 +- calm/pkg2html.py | 23 ++- calm/utils.py | 36 +++ test/testdata/htdocs.expected/packages.inc | 3 +- test/testdata/htdocs.expected/summary/arc.html | 4 +- .../htdocs.expected/summary/base-cygwin.html | 4 +- test/testdata/htdocs.expected/summary/corrupt.html | 4 +- .../htdocs.expected/summary/cygwin-debuginfo.html | 4 +- .../htdocs.expected/summary/cygwin-devel.html | 4 +- test/testdata/htdocs.expected/summary/cygwin.html | 4 +- .../testdata/htdocs.expected/summary/keychain.html | 4 +- .../htdocs.expected/summary/libdns_sd-devel.html | 4 +- .../htdocs.expected/summary/libdns_sd1.html | 4 +- .../htdocs.expected/summary/mDNSResponder.html | 4 +- test/testdata/htdocs.expected/summary/obs-a.html | 4 +- test/testdata/htdocs.expected/summary/obs-b.html | 4 +- test/testdata/htdocs.expected/summary/openssh.html | 4 +- .../summary/per-version-replacement-hint-only.html | 4 +- .../htdocs.expected/summary/per-version.html | 4 +- .../htdocs.expected/summary/perl-Net-SMTP-SSL.html | 4 +- test/testdata/htdocs.expected/summary/rpm-doc.html | 4 +- .../htdocs.expected/summary/staleversion.html | 4 +- test/testdata/htdocs.expected/summary/test-c.html | 4 +- test/testdata/htdocs.expected/summary/test-d.html | 4 +- test/testdata/htdocs.expected/summary/test-e.html | 4 +- .../htdocs.expected/summary/testpackage.html | 4 +- 27 files changed, 323 insertions(+), 63 deletions(-) diff --git a/calm/fix-skip-only-hint.py b/calm/fix-skip-only-hint.py new file mode 100644 index 0000000..9f3c49c --- /dev/null +++ b/calm/fix-skip-only-hint.py @@ -0,0 +1,225 @@ +#!/usr/bin/env python3 +# +# Copyright (c) 2019 Jon Turney +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# + +# +# Fix hints for (probably source) packages consisting of just 'skip:' +# +# (cygport stopped generating these since 0.23.0) +# + +import argparse +import os +import re +import sys + +from . import common_constants +from . import hint +from .version import SetupVersion + + +# +# write a hint file +# +def hint_file_write(fn, hints): + with open(fn, 'w') as f: + for k, v in hints.items(): + print("%s: %s" % (k, v), file=f) + + +# +# pick most popular item from a list +# +def pick(l): + if not l: + return None + + h = {} + + for i in l: + h[i] = h.get(i, 0) + 1 + + for i in sorted(h, key=h.get, reverse=True): + print('%4d: %s' % (h[i], i)) + + i = sorted(h, key=h.get, reverse=True)[0] + # unanimous ? + if h[i] == len(l): + return i + + return None + + +# +# try to invent plausible information by looking at subpackages +# +def invent_from_subpackages(path, vr): + sdesc_candidates = [] + category_candidates = [] + + for (dirpath, subdirs, files) in os.walk(path): + # debuginfo packages never have a good information + if 'debuginfo' in dirpath: + continue + + # consider sub-package hints + for f in files: + if re.match('^.*-' + re.escape(vr) + '.hint$', f): + hints = hint.hint_file_parse(os.path.join(dirpath, f), hint.pvr) + if 'sdesc' in hints: + # ... which doesn't contain 'Obsolete' etc. + if 'Obsolete' in hints['sdesc'] or '_obsolete' in hints['category']: + continue + + # remove anything inside parentheses, or a single word after + # a hyphen, at the end of quoted sdesc + sdesc = hints['sdesc'] + sdesc = re.sub(r'"(.*)"', r'\1', sdesc) + sdesc = re.sub(r'(\(.*?\))$', '', sdesc) + sdesc = re.sub(r' - \w*$', '', sdesc) + sdesc = sdesc.strip() + sdesc = '"' + sdesc + '"' + + sdesc_candidates.append(sdesc) + + # ignore 'Doc' category (on the basis that this usually a + # documentation subpackage) + if hints['category'] != 'Doc': + category_candidates.append(hints['category']) + + # Ignore a single tool/utility subpackage + for t in ['utility', 'utilities', 'tool']: + occurences = [c for c in sdesc_candidates if re.search(r'\b' + t + '\b', c.lower())] + if len(occurences) == 1: + sdesc_candidates.remove(occurences[0]) + + # pick 'Libs' if that's a possibility + category = pick(category_candidates) + if not category and 'Libs' in category_candidates: + category = 'Libs' + + return (pick(sdesc_candidates), category) + + +# +# try to invent plausible information by looking at more recent versions +# +def invent_from_other_versions(path, later_vrs): + sdesc_candidates = [] + category_candidates = [] + + pn = path.split(os.path.sep)[-1] + for vr in later_vrs: + f = pn + '-' + vr + '.hint' + hints = hint.hint_file_parse(os.path.join(path, f), hint.pvr) + + if 'sdesc' in hints: + sdesc_candidates.append(hints['sdesc']) + if 'category' in hints: + category_candidates.append(hints['category']) + + return (pick(sdesc_candidates), pick(category_candidates)) + + +# +# +# +def fix_one_hint(dirpath, hintfile, vr, later_vrs): + hints = hint.hint_file_parse(os.path.join(dirpath, hintfile), hint.pvr) + + hints.pop('parse-errors', None) + hints.pop('parse-warnings', None) + + if ('skip' not in hints) or (len(hints) > 1): + return (0, 0) + + # if hint only contains skip:, try to come up with plausible sdesc and category + (sdesc, category) = invent_from_subpackages(dirpath, vr) + if not (sdesc and category): + (sdesc, category) = invent_from_other_versions(dirpath, later_vrs) + if not (sdesc and category): + print('couldn\'t invent hints for %s' % (hintfile)) + return (1, 0) + + hints['sdesc'] = sdesc + hints['category'] = category + + if 'source' not in hints['sdesc']: + sdesc = re.sub(r'"(.*)"', r'\1', hints['sdesc']) + sdesc += ' (source)' + hints['sdesc'] = '"' + sdesc + '"' + + print('writing invented hints for %s' % (hintfile)) + hint_file_write(os.path.join(dirpath, hintfile), hints) + + return (1, 1) + + +def fix_hints(rel_area, mode): + skip_only = 0 + invented = 0 + + for (dirpath, subdirs, files) in os.walk(rel_area): + vrs = {} + for f in files: + match = re.match(r'^.*?-(\d.*).hint$', f) + if match: + vrs[match.group(1)] = f + + if vrs: + if mode == 'newest': + v = sorted(vrs, key=lambda v: SetupVersion(v), reverse=True)[0] + f = vrs[v] + vrs = {v: f} + + sorted_vrs = sorted(vrs, key=lambda v: SetupVersion(v)) + while sorted_vrs: + vr = sorted_vrs.pop(0) + (s, i) = fix_one_hint(dirpath, vrs[vr], vr, sorted_vrs) + skip_only += s + invented += i + + print('%d skip only hints, invented %d hints' % (skip_only, invented)) + + +# +# +# + + +def main(): + relarea_default = common_constants.FTP + + parser = argparse.ArgumentParser(description='skip-only hint fixer') + parser.add_argument('--releasearea', action='store', metavar='DIR', help="release directory (default: " + relarea_default + ")", default=relarea_default, dest='rel_area') + parser.add_argument('--mode', action='store', metavar='all|newest', choices=['all', 'newest'], help="fix all hints, or (default) only for newest version", default='newest') + (args) = parser.parse_args() + + return fix_hints(args.rel_area, args.mode) + + +# +# +# + +if __name__ == "__main__": + sys.exit(main()) diff --git a/calm/maintainers.py b/calm/maintainers.py index b9c51fd..7ffc12b 100644 --- a/calm/maintainers.py +++ b/calm/maintainers.py @@ -46,14 +46,7 @@ import logging import os import re -# -# -# - - -def touch(fn, times=None): - with open(fn, 'a'): - os.utime(fn, times) +from . import utils # # @@ -94,7 +87,7 @@ class Maintainer(object): if self.reminders_issued: # if reminders were issued, update the timestamp logging.debug("updating reminder time for %s" % self.name) - touch(reminder_file) + utils.touch(reminder_file) elif (not self.reminders_timestamp_checked) and (self.reminder_time != 0): # if we didn't need to check the reminder timestamp, it can be # reset diff --git a/calm/pkg2html.py b/calm/pkg2html.py index 9370092..a74f913 100755 --- a/calm/pkg2html.py +++ b/calm/pkg2html.py @@ -55,6 +55,7 @@ from .version import SetupVersion from . import common_constants from . import maintainers from . import package +from . import utils # @@ -176,8 +177,8 @@ def update_package_listings(args, packages):

Package: %s

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

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

' % ldesc(arch_packages, p, bv), 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('categories: %s

' % arch_packages[p].version_hints[bv].get('category', ''), file=f) for key in ['depends', 'obsoletes', 'provides', 'conflicts', 'build-depends']: @@ -247,9 +248,9 @@ def update_package_listings(args, packages): if not args.dryrun: with open(packages_inc, 'w') as index: os.fchmod(index.fileno(), 0o755) - print(textwrap.dedent('''\ - '''), file=index) + print('
', file=index) + first = ' class="pkgname"' for p in sorted(package_list, key=package.sort_key): if p.endswith('-debuginfo'): continue @@ -266,11 +267,17 @@ def update_package_listings(args, packages): bv = arch_packages[p].best_version header = sdesc(arch_packages, p, bv) - print('', file=index) + print('%s' % + (first, p, p, html.escape(header, quote=False)), + file=index) + first = '' - print(textwrap.dedent('''\ -
' + p + '' + html.escape(header, quote=False) + '
%s
- '''), file=index) + print('', file=index) + + # touch the including file for the benefit of 'XBitHack full' + package_list = os.path.join(args.htdocs, 'package_list.html') + if os.path.exists(package_list): + utils.touch(package_list) def write_arch_listing(args, packages, arch): diff --git a/calm/utils.py b/calm/utils.py new file mode 100644 index 0000000..07e45a0 --- /dev/null +++ b/calm/utils.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python3 +# +# Copyright (c) 2019 Jon Turney +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# + +# +# utility functions +# + +import os + + +# +# touch a file +# +def touch(fn, times=None): + with open(fn, 'a'): + os.utime(fn, times) diff --git a/test/testdata/htdocs.expected/packages.inc b/test/testdata/htdocs.expected/packages.inc index af1c670..0ed68aa 100755 --- a/test/testdata/htdocs.expected/packages.inc +++ b/test/testdata/htdocs.expected/packages.inc @@ -1,5 +1,5 @@ - + @@ -21,4 +21,3 @@
arcThe ARC archive utility
arcThe ARC archive utility
base-cygwinInitial base installation helper script
corruptA corrupt package
cygwinThe UNIX emulation engine
test-etest package E
testpackageA test package (stuff & other stuff)
- diff --git a/test/testdata/htdocs.expected/summary/arc.html b/test/testdata/htdocs.expected/summary/arc.html index a848293..2d988b8 100644 --- a/test/testdata/htdocs.expected/summary/arc.html +++ b/test/testdata/htdocs.expected/summary/arc.html @@ -10,8 +10,8 @@

Package: arc

-sdesc: The ARC archive utility

-ldesc: This program is based on the MSDOS ARC program, version 5.21, plus a +summary: The ARC archive utility

+description: This program is based on the MSDOS ARC program, version 5.21, plus a few enhancements. ARC performs Huffman Squeezing on data. The Huffman Squeeze algorithm was removed from MSDOS ARC after version 5.12. It turns out to be more efficient than Lempel-Ziv style compression when diff --git a/test/testdata/htdocs.expected/summary/base-cygwin.html b/test/testdata/htdocs.expected/summary/base-cygwin.html index 24b3742..a0d814d 100644 --- a/test/testdata/htdocs.expected/summary/base-cygwin.html +++ b/test/testdata/htdocs.expected/summary/base-cygwin.html @@ -10,8 +10,8 @@

Package: base-cygwin

-sdesc: Initial base installation helper script

-ldesc: Initial base installation helper script.

+summary: Initial base installation helper script

+description: Initial base installation helper script.

categories: Base

binaries:

maintainer(s): Corinna Vinschen diff --git a/test/testdata/htdocs.expected/summary/corrupt.html b/test/testdata/htdocs.expected/summary/corrupt.html index 4c311c2..0b91c3a 100644 --- a/test/testdata/htdocs.expected/summary/corrupt.html +++ b/test/testdata/htdocs.expected/summary/corrupt.html @@ -10,8 +10,8 @@

Package: corrupt

-sdesc: A corrupt package

-ldesc: A package containing corrupt archives

+summary: A corrupt package

+description: A package containing corrupt archives

categories: Devel

binaries: corrupt

maintainer(s): Blooey McFooey diff --git a/test/testdata/htdocs.expected/summary/cygwin-debuginfo.html b/test/testdata/htdocs.expected/summary/cygwin-debuginfo.html index af5d1e3..bf4d895 100644 --- a/test/testdata/htdocs.expected/summary/cygwin-debuginfo.html +++ b/test/testdata/htdocs.expected/summary/cygwin-debuginfo.html @@ -10,8 +10,8 @@

Package: cygwin-debuginfo

-sdesc: Debug info for cygwin

-ldesc: This package contains files necessary for debugging the +summary: Debug info for cygwin

+description: This package contains files necessary for debugging the cygwin package with gdb.

categories: Debug

depends: cygwin-debuginfo

diff --git a/test/testdata/htdocs.expected/summary/cygwin-devel.html b/test/testdata/htdocs.expected/summary/cygwin-devel.html index d951336..1a443b8 100644 --- a/test/testdata/htdocs.expected/summary/cygwin-devel.html +++ b/test/testdata/htdocs.expected/summary/cygwin-devel.html @@ -10,8 +10,8 @@

Package: cygwin-devel

-sdesc: Core development files

-ldesc: Core development files required to build Cygwin packages

+summary: Core development files

+description: Core development files required to build Cygwin packages

categories: Devel

source: cygwin

maintainer(s): Corinna Vinschen, Yaakov Selkowitz diff --git a/test/testdata/htdocs.expected/summary/cygwin.html b/test/testdata/htdocs.expected/summary/cygwin.html index cdd427e..b77856b 100644 --- a/test/testdata/htdocs.expected/summary/cygwin.html +++ b/test/testdata/htdocs.expected/summary/cygwin.html @@ -10,8 +10,8 @@

Package: cygwin

-sdesc: The UNIX emulation engine

-ldesc: The UNIX emulation engine

+summary: The UNIX emulation engine

+description: The UNIX emulation engine

categories: Base

depends: base-cygwin

binaries: cygwin, cygwin-debuginfo, cygwin-devel

diff --git a/test/testdata/htdocs.expected/summary/keychain.html b/test/testdata/htdocs.expected/summary/keychain.html index a15fad4..392083b 100644 --- a/test/testdata/htdocs.expected/summary/keychain.html +++ b/test/testdata/htdocs.expected/summary/keychain.html @@ -10,8 +10,8 @@

Package: keychain

-sdesc: Key manager for OpenSSH

-ldesc: Keychain is an OpenSSH key manager, typically run from +summary: Key manager for OpenSSH

+description: Keychain is an OpenSSH key manager, typically run from ~/.bash_profile. When keychain is run, it checks for a running ssh-agent, otherwise it starts one. It saves the ssh-agent environment variables to ~/.keychain/$HOSTNAME-sh, so that subsequent logins diff --git a/test/testdata/htdocs.expected/summary/libdns_sd-devel.html b/test/testdata/htdocs.expected/summary/libdns_sd-devel.html index 1a309c9..efa7fef 100644 --- a/test/testdata/htdocs.expected/summary/libdns_sd-devel.html +++ b/test/testdata/htdocs.expected/summary/libdns_sd-devel.html @@ -10,8 +10,8 @@

Package: libdns_sd-devel

-sdesc: Bonjour Zeroconf implementation

-ldesc: Bonjour, also known as zero-configuration networking, enables +summary: Bonjour Zeroconf implementation

+description: Bonjour, also known as zero-configuration networking, enables automatic discovery of computers, devices, and services on IP networks using industry standard IP protocols.

categories: Net

diff --git a/test/testdata/htdocs.expected/summary/libdns_sd1.html b/test/testdata/htdocs.expected/summary/libdns_sd1.html index 40c926f..1b1e201 100644 --- a/test/testdata/htdocs.expected/summary/libdns_sd1.html +++ b/test/testdata/htdocs.expected/summary/libdns_sd1.html @@ -10,8 +10,8 @@

Package: libdns_sd1

-sdesc: Bonjour Zeroconf implementation

-ldesc: Bonjour, also known as zero-configuration networking, enables +summary: Bonjour Zeroconf implementation

+description: Bonjour, also known as zero-configuration networking, enables automatic discovery of computers, devices, and services on IP networks using industry standard IP protocols.

categories: Net

diff --git a/test/testdata/htdocs.expected/summary/mDNSResponder.html b/test/testdata/htdocs.expected/summary/mDNSResponder.html index 49c3740..94788d1 100644 --- a/test/testdata/htdocs.expected/summary/mDNSResponder.html +++ b/test/testdata/htdocs.expected/summary/mDNSResponder.html @@ -10,8 +10,8 @@

Package: mDNSResponder

-sdesc: Bonjour Zeroconf implementation

-ldesc: Bonjour, also known as zero-configuration networking, enables +summary: Bonjour Zeroconf implementation

+description: Bonjour, also known as zero-configuration networking, enables automatic discovery of computers, devices, and services on IP networks using industry standard IP protocols.

categories: Net

diff --git a/test/testdata/htdocs.expected/summary/obs-a.html b/test/testdata/htdocs.expected/summary/obs-a.html index e069b83..0d32039 100644 --- a/test/testdata/htdocs.expected/summary/obs-a.html +++ b/test/testdata/htdocs.expected/summary/obs-a.html @@ -10,8 +10,8 @@

Package: obs-a

-sdesc: obsolete package A

-ldesc: obs-a

+summary: obsolete package A

+description: obs-a

categories: Devel

binaries: obs-a

maintainer(s): ORPHANED diff --git a/test/testdata/htdocs.expected/summary/obs-b.html b/test/testdata/htdocs.expected/summary/obs-b.html index 0e9f2ae..3062af6 100644 --- a/test/testdata/htdocs.expected/summary/obs-b.html +++ b/test/testdata/htdocs.expected/summary/obs-b.html @@ -10,8 +10,8 @@

Package: obs-b

-sdesc: obsolete package B

-ldesc: obs-b

+summary: obsolete package B

+description: obs-b

categories: Devel

binaries: obs-b

maintainer(s): ORPHANED diff --git a/test/testdata/htdocs.expected/summary/openssh.html b/test/testdata/htdocs.expected/summary/openssh.html index 67bc7e4..a8a92be 100644 --- a/test/testdata/htdocs.expected/summary/openssh.html +++ b/test/testdata/htdocs.expected/summary/openssh.html @@ -10,8 +10,8 @@

Package: openssh

-sdesc: The OpenSSH server and client programs

-ldesc: OpenSSH is a program for logging into a remote machine and for +summary: The OpenSSH server and client programs

+description: OpenSSH is a program for logging into a remote machine and for executing commands on a remote machine. It can replace rlogin and rsh, providing encrypted communication between two machines.

categories: Net

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 679f572..277fd3b 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 @@ -10,8 +10,8 @@

Package: per-version-replacement-hint-only

-sdesc: Per-version hint test package

-ldesc: Per-version hint test package

+summary: Per-version hint test package

+description: Per-version hint test package

categories: Base

depends: cygwin

binaries: per-version-replacement-hint-only

diff --git a/test/testdata/htdocs.expected/summary/per-version.html b/test/testdata/htdocs.expected/summary/per-version.html index 286f867..fe82cee 100644 --- a/test/testdata/htdocs.expected/summary/per-version.html +++ b/test/testdata/htdocs.expected/summary/per-version.html @@ -10,8 +10,8 @@

Package: per-version

-sdesc: Per-version hint test package

-ldesc: Per-version hint test package

+summary: Per-version hint test package

+description: Per-version hint test package

categories: Base

depends: base-cygwin

binaries: per-version

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 8270b36..700037e 100644 --- a/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL.html +++ b/test/testdata/htdocs.expected/summary/perl-Net-SMTP-SSL.html @@ -10,8 +10,8 @@

Package: perl-Net-SMTP-SSL

-sdesc: Perl distribution Net-SMTP-SSL

-ldesc: Implements the same API as Net::SMTP, but uses IO::Socket::SSL for +summary: Perl distribution Net-SMTP-SSL

+description: Implements the same API as Net::SMTP, but uses IO::Socket::SSL for its network operations in order to support encrypted connections.

categories: Perl

binaries: perl-Net-SMTP-SSL

diff --git a/test/testdata/htdocs.expected/summary/rpm-doc.html b/test/testdata/htdocs.expected/summary/rpm-doc.html index a20b3d0..d7c844f 100644 --- a/test/testdata/htdocs.expected/summary/rpm-doc.html +++ b/test/testdata/htdocs.expected/summary/rpm-doc.html @@ -10,8 +10,8 @@

Package: rpm-doc

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

-ldesc: rpm-doc

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

+description: rpm-doc

categories: _obsolete

binaries: rpm-doc

maintainer(s): diff --git a/test/testdata/htdocs.expected/summary/staleversion.html b/test/testdata/htdocs.expected/summary/staleversion.html index 5f336ff..a283f53 100644 --- a/test/testdata/htdocs.expected/summary/staleversion.html +++ b/test/testdata/htdocs.expected/summary/staleversion.html @@ -10,8 +10,8 @@

Package: staleversion

-sdesc: Test package for stale version removal

-ldesc: Test package for stale version removal

+summary: Test package for stale version removal

+description: Test package for stale version removal

categories: Shells Base

binaries: staleversion

maintainer(s): Blooey McFooey diff --git a/test/testdata/htdocs.expected/summary/test-c.html b/test/testdata/htdocs.expected/summary/test-c.html index 18fe254..c506b97 100644 --- a/test/testdata/htdocs.expected/summary/test-c.html +++ b/test/testdata/htdocs.expected/summary/test-c.html @@ -10,8 +10,8 @@

Package: test-c

-sdesc: test package C

-ldesc: test-c

+summary: test package C

+description: test-c

categories: Devel

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

obsoletes: obs-a, obs-b

diff --git a/test/testdata/htdocs.expected/summary/test-d.html b/test/testdata/htdocs.expected/summary/test-d.html index 0c6a0e0..fc139bf 100644 --- a/test/testdata/htdocs.expected/summary/test-d.html +++ b/test/testdata/htdocs.expected/summary/test-d.html @@ -10,8 +10,8 @@

Package: test-d

-sdesc: test package D

-ldesc: test-d

+summary: test package D

+description: test-d

categories: Devel

binaries: test-d

maintainer(s): ORPHANED diff --git a/test/testdata/htdocs.expected/summary/test-e.html b/test/testdata/htdocs.expected/summary/test-e.html index e7a30fc..b97a9ba 100644 --- a/test/testdata/htdocs.expected/summary/test-e.html +++ b/test/testdata/htdocs.expected/summary/test-e.html @@ -10,8 +10,8 @@

Package: test-e

-sdesc: test package E

-ldesc: test-e

+summary: test package E

+description: test-e

categories: Devel

build-depends: libtextcat-devel

binaries: test-e

diff --git a/test/testdata/htdocs.expected/summary/testpackage.html b/test/testdata/htdocs.expected/summary/testpackage.html index acc6098..ca5706e 100644 --- a/test/testdata/htdocs.expected/summary/testpackage.html +++ b/test/testdata/htdocs.expected/summary/testpackage.html @@ -10,8 +10,8 @@

Package: testpackage

-sdesc: A test package (stuff & other stuff)

-ldesc: A test package (stuff & other stuff)

+summary: A test package (stuff & other stuff)

+description: A test package (stuff & other stuff)

categories: Devel

binaries: testpackage

maintainer(s): Blooey McFooey