public inbox for cygwin-apps-cvs@sourceware.org
help / color / mirror / Atom feed
* [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20190530-21-g0c3affa
@ 2019-06-12 10:47 jturney
  0 siblings, 0 replies; only message in thread
From: jturney @ 2019-06-12 10:47 UTC (permalink / raw)
  To: cygwin-apps-cvs




https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=0c3affa71ccf8965269f2c4eaab54f7aa189ddb1

commit 0c3affa71ccf8965269f2c4eaab54f7aa189ddb1
Author: Jon Turney <jon.turney@dronecode.org.uk>
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 <jon.turney@dronecode.org.uk>
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 <jon.turney@dronecode.org.uk>
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 <jon.turney@dronecode.org.uk>
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):
                     <!--#include virtual="/top.html" -->
                     <h1>Package: %s</h1>''' % (title, p)), file=f)
 
-                    print('<span class="detail">sdesc</span>: %s<br><br>' % sdesc(arch_packages, p, bv), file=f)
-                    print('<span class="detail">ldesc</span>: %s<br><br>' % ldesc(arch_packages, p, bv), file=f)
+                    print('<span class="detail">summary</span>: %s<br><br>' % html.escape(sdesc(arch_packages, p, bv), quote=False), file=f)
+                    print('<span class="detail">description</span>: %s<br><br>' % html.escape(ldesc(arch_packages, p, bv), quote=False), file=f)
                     print('<span class="detail">categories</span>: %s<br><br>' % 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('''\
-                                     <table class="pkglist">'''), file=index)
+            print('<table class="pkglist">', 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('<tr><td><a href="summary' + '/' + p + '.html">' + p + '</a></td><td>' + html.escape(header, quote=False) + '</td></tr>', file=index)
+                print('<tr><td%s><a href="summary/%s.html">%s</a></td><td>%s</td></tr>' %
+                      (first, p, p, html.escape(header, quote=False)),
+                      file=index)
+                first = ''
 
-            print(textwrap.dedent('''\
-                                     </table>
-                                     '''), file=index)
+            print('</table>', 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 @@
 <table class="pkglist">
-<tr><td><a href="summary/arc.html">arc</a></td><td>The ARC archive utility</td></tr>
+<tr><td class="pkgname"><a href="summary/arc.html">arc</a></td><td>The ARC archive utility</td></tr>
 <tr><td><a href="summary/base-cygwin.html">base-cygwin</a></td><td>Initial base installation helper script</td></tr>
 <tr><td><a href="summary/corrupt.html">corrupt</a></td><td>A corrupt package</td></tr>
 <tr><td><a href="summary/cygwin.html">cygwin</a></td><td>The UNIX emulation engine</td></tr>
@@ -21,4 +21,3 @@
 <tr><td><a href="summary/test-e.html">test-e</a></td><td>test package E</td></tr>
 <tr><td><a href="summary/testpackage.html">testpackage</a></td><td>A test package (stuff &amp; other stuff)</td></tr>
 </table>
-
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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: arc</h1>
-<span class="detail">sdesc</span>: The ARC archive utility<br><br>
-<span class="detail">ldesc</span>: This program is based on the MSDOS ARC program, version 5.21, plus a
+<span class="detail">summary</span>: The ARC archive utility<br><br>
+<span class="detail">description</span>: 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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: base-cygwin</h1>
-<span class="detail">sdesc</span>: Initial base installation helper script<br><br>
-<span class="detail">ldesc</span>: Initial base installation helper script.<br><br>
+<span class="detail">summary</span>: Initial base installation helper script<br><br>
+<span class="detail">description</span>: Initial base installation helper script.<br><br>
 <span class="detail">categories</span>: Base<br><br>
 <span class="detail">binaries</span>: <br><br>
 <span class="detail">maintainer(s)</span>: 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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: corrupt</h1>
-<span class="detail">sdesc</span>: A corrupt package<br><br>
-<span class="detail">ldesc</span>: A package containing corrupt archives<br><br>
+<span class="detail">summary</span>: A corrupt package<br><br>
+<span class="detail">description</span>: A package containing corrupt archives<br><br>
 <span class="detail">categories</span>: Devel<br><br>
 <span class="detail">binaries</span>: <a href="corrupt.html">corrupt</a><br><br>
 <span class="detail">maintainer(s)</span>: 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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: cygwin-debuginfo</h1>
-<span class="detail">sdesc</span>: Debug info for cygwin<br><br>
-<span class="detail">ldesc</span>: This package contains files necessary for debugging the
+<span class="detail">summary</span>: Debug info for cygwin<br><br>
+<span class="detail">description</span>: This package contains files necessary for debugging the
 cygwin package with gdb.<br><br>
 <span class="detail">categories</span>: Debug<br><br>
 <span class="detail">depends</span>: <a href="cygwin-debuginfo.html">cygwin-debuginfo</a><br><br>
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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: cygwin-devel</h1>
-<span class="detail">sdesc</span>: Core development files<br><br>
-<span class="detail">ldesc</span>: Core development files required to build Cygwin packages<br><br>
+<span class="detail">summary</span>: Core development files<br><br>
+<span class="detail">description</span>: Core development files required to build Cygwin packages<br><br>
 <span class="detail">categories</span>: Devel<br><br>
 <span class="detail">source</span>: <a href="cygwin.html">cygwin</a><br><br>
 <span class="detail">maintainer(s)</span>: 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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: cygwin</h1>
-<span class="detail">sdesc</span>: The UNIX emulation engine<br><br>
-<span class="detail">ldesc</span>: The UNIX emulation engine<br><br>
+<span class="detail">summary</span>: The UNIX emulation engine<br><br>
+<span class="detail">description</span>: The UNIX emulation engine<br><br>
 <span class="detail">categories</span>: Base<br><br>
 <span class="detail">depends</span>: <a href="base-cygwin.html">base-cygwin</a><br><br>
 <span class="detail">binaries</span>: <a href="cygwin.html">cygwin</a>, <a href="cygwin-debuginfo.html">cygwin-debuginfo</a>, <a href="cygwin-devel.html">cygwin-devel</a><br><br>
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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: keychain</h1>
-<span class="detail">sdesc</span>: Key manager for OpenSSH<br><br>
-<span class="detail">ldesc</span>: Keychain is an OpenSSH key manager, typically run from
+<span class="detail">summary</span>: Key manager for OpenSSH<br><br>
+<span class="detail">description</span>: 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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: libdns_sd-devel</h1>
-<span class="detail">sdesc</span>: Bonjour Zeroconf implementation<br><br>
-<span class="detail">ldesc</span>: Bonjour, also known as zero-configuration networking, enables
+<span class="detail">summary</span>: Bonjour Zeroconf implementation<br><br>
+<span class="detail">description</span>: Bonjour, also known as zero-configuration networking, enables
 automatic discovery of computers, devices, and services on IP networks using
 industry standard IP protocols.<br><br>
 <span class="detail">categories</span>: Net<br><br>
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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: libdns_sd1</h1>
-<span class="detail">sdesc</span>: Bonjour Zeroconf implementation<br><br>
-<span class="detail">ldesc</span>: Bonjour, also known as zero-configuration networking, enables
+<span class="detail">summary</span>: Bonjour Zeroconf implementation<br><br>
+<span class="detail">description</span>: Bonjour, also known as zero-configuration networking, enables
 automatic discovery of computers, devices, and services on IP networks using
 industry standard IP protocols.<br><br>
 <span class="detail">categories</span>: Net<br><br>
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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: mDNSResponder</h1>
-<span class="detail">sdesc</span>: Bonjour Zeroconf implementation<br><br>
-<span class="detail">ldesc</span>: Bonjour, also known as zero-configuration networking, enables
+<span class="detail">summary</span>: Bonjour Zeroconf implementation<br><br>
+<span class="detail">description</span>: Bonjour, also known as zero-configuration networking, enables
 automatic discovery of computers, devices, and services on IP networks using
 industry standard IP protocols.<br><br>
 <span class="detail">categories</span>: Net<br><br>
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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: obs-a</h1>
-<span class="detail">sdesc</span>: obsolete package A<br><br>
-<span class="detail">ldesc</span>: obs-a<br><br>
+<span class="detail">summary</span>: obsolete package A<br><br>
+<span class="detail">description</span>: obs-a<br><br>
 <span class="detail">categories</span>: Devel<br><br>
 <span class="detail">binaries</span>: <a href="obs-a.html">obs-a</a><br><br>
 <span class="detail">maintainer(s)</span>: 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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: obs-b</h1>
-<span class="detail">sdesc</span>: obsolete package B<br><br>
-<span class="detail">ldesc</span>: obs-b<br><br>
+<span class="detail">summary</span>: obsolete package B<br><br>
+<span class="detail">description</span>: obs-b<br><br>
 <span class="detail">categories</span>: Devel<br><br>
 <span class="detail">binaries</span>: <a href="obs-b.html">obs-b</a><br><br>
 <span class="detail">maintainer(s)</span>: 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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: openssh</h1>
-<span class="detail">sdesc</span>: The OpenSSH server and client programs<br><br>
-<span class="detail">ldesc</span>: OpenSSH is a program for logging into a remote machine and for
+<span class="detail">summary</span>: The OpenSSH server and client programs<br><br>
+<span class="detail">description</span>: 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.<br><br>
 <span class="detail">categories</span>: Net<br><br>
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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: per-version-replacement-hint-only</h1>
-<span class="detail">sdesc</span>: Per-version hint test package<br><br>
-<span class="detail">ldesc</span>: Per-version hint test package<br><br>
+<span class="detail">summary</span>: Per-version hint test package<br><br>
+<span class="detail">description</span>: Per-version hint test package<br><br>
 <span class="detail">categories</span>: Base<br><br>
 <span class="detail">depends</span>: <a href="cygwin.html">cygwin</a><br><br>
 <span class="detail">binaries</span>: <a href="per-version-replacement-hint-only.html">per-version-replacement-hint-only</a><br><br>
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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: per-version</h1>
-<span class="detail">sdesc</span>: Per-version hint test package<br><br>
-<span class="detail">ldesc</span>: Per-version hint test package<br><br>
+<span class="detail">summary</span>: Per-version hint test package<br><br>
+<span class="detail">description</span>: Per-version hint test package<br><br>
 <span class="detail">categories</span>: Base<br><br>
 <span class="detail">depends</span>: <a href="base-cygwin.html">base-cygwin</a><br><br>
 <span class="detail">binaries</span>: <a href="per-version.html">per-version</a><br><br>
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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: perl-Net-SMTP-SSL</h1>
-<span class="detail">sdesc</span>: Perl distribution Net-SMTP-SSL<br><br>
-<span class="detail">ldesc</span>: Implements the same API as Net::SMTP, but uses IO::Socket::SSL for
+<span class="detail">summary</span>: Perl distribution Net-SMTP-SSL<br><br>
+<span class="detail">description</span>: Implements the same API as Net::SMTP, but uses IO::Socket::SSL for
 its network operations in order to support encrypted connections.<br><br>
 <span class="detail">categories</span>: Perl<br><br>
 <span class="detail">binaries</span>: <a href="perl-Net-SMTP-SSL.html">perl-Net-SMTP-SSL</a><br><br>
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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: rpm-doc</h1>
-<span class="detail">sdesc</span>: Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)<br><br>
-<span class="detail">ldesc</span>: rpm-doc<br><br>
+<span class="detail">summary</span>: Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)<br><br>
+<span class="detail">description</span>: rpm-doc<br><br>
 <span class="detail">categories</span>: _obsolete<br><br>
 <span class="detail">binaries</span>: <a href="rpm-doc.html">rpm-doc</a><br><br>
 <span class="detail">maintainer(s)</span>:  
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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: staleversion</h1>
-<span class="detail">sdesc</span>: Test package for stale version removal<br><br>
-<span class="detail">ldesc</span>: Test package for stale version removal<br><br>
+<span class="detail">summary</span>: Test package for stale version removal<br><br>
+<span class="detail">description</span>: Test package for stale version removal<br><br>
 <span class="detail">categories</span>: Shells Base<br><br>
 <span class="detail">binaries</span>: <a href="staleversion.html">staleversion</a><br><br>
 <span class="detail">maintainer(s)</span>: 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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: test-c</h1>
-<span class="detail">sdesc</span>: test package C<br><br>
-<span class="detail">ldesc</span>: test-c<br><br>
+<span class="detail">summary</span>: test package C<br><br>
+<span class="detail">description</span>: test-c<br><br>
 <span class="detail">categories</span>: Devel<br><br>
 <span class="detail">depends</span>: test-d (>= 1.0), <a href="test-e.html">test-e</a><br><br>
 <span class="detail">obsoletes</span>: <a href="obs-a.html">obs-a</a>, <a href="obs-b.html">obs-b</a><br><br>
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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: test-d</h1>
-<span class="detail">sdesc</span>: test package D<br><br>
-<span class="detail">ldesc</span>: test-d<br><br>
+<span class="detail">summary</span>: test package D<br><br>
+<span class="detail">description</span>: test-d<br><br>
 <span class="detail">categories</span>: Devel<br><br>
 <span class="detail">binaries</span>: <a href="test-d.html">test-d</a><br><br>
 <span class="detail">maintainer(s)</span>: 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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: test-e</h1>
-<span class="detail">sdesc</span>: test package E<br><br>
-<span class="detail">ldesc</span>: test-e<br><br>
+<span class="detail">summary</span>: test package E<br><br>
+<span class="detail">description</span>: test-e<br><br>
 <span class="detail">categories</span>: Devel<br><br>
 <span class="detail">build-depends</span>: libtextcat-devel<br><br>
 <span class="detail">binaries</span>: <a href="test-e.html">test-e</a><br><br>
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 @@
 <div id="main">
 <!--#include virtual="/top.html" -->
 <h1>Package: testpackage</h1>
-<span class="detail">sdesc</span>: A test package (stuff & other stuff)<br><br>
-<span class="detail">ldesc</span>: A test package (stuff & other stuff)<br><br>
+<span class="detail">summary</span>: A test package (stuff &amp; other stuff)<br><br>
+<span class="detail">description</span>: A test package (stuff &amp; other stuff)<br><br>
 <span class="detail">categories</span>: Devel<br><br>
 <span class="detail">binaries</span>: <a href="testpackage.html">testpackage</a><br><br>
 <span class="detail">maintainer(s)</span>: Blooey McFooey 


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-06-12 10:47 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-12 10:47 [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20190530-21-g0c3affa jturney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).