[calm - Cygwin server-side packaging maintenance script] branch master, updated. 20220704-22-g4d95cbf

Jon TURNEY jturney@sourceware.org
Sun Oct 2 15:51:24 GMT 2022




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

commit 4d95cbff712f07bf70115b75a8bb0b3d0f5face3
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Thu Sep 1 21:02:20 2022 +0100

    Allow '_windows' pseudo-package to appear in requires:
    
    Also add a test for that.

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

commit c7f80012646d51f3120f53e208ed1c78734dc5ac
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Thu Sep 1 17:59:02 2022 +0100

    Handle a version-constraint appearing in requires:
    
    Synthesize depends: from requires: in a way which doesn't mess up any
    version-constraint present while sorting.
    
    Future work:
    
    Store the depends: hint decomposed into a list, rather than a string
    which needs to get split everywhere it's used.

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

commit 8e2b79710039094bf941beb4270013895cf5dd6c
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Fri Sep 2 12:50:01 2022 +0100

    Drop internal uses of requires: hint
    
    Drop all remaining internal uses of requires: hint, use the
    (synthesized) depends: hint instead.

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

commit bb49c72fc95712f623c6f224502b1c020d4c1556
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Thu Sep 1 19:35:41 2022 +0100

    Drop reading putative 'depends:' hint
    
    There's never been anything that generates it, apart from internally
    from the requires: hint.

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

commit 6b43121c139e47641efe32f68333aae7909b9162
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Thu Sep 1 21:01:54 2022 +0100

    Correctly linkify packages with a version-constraint

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

commit de93bbcc131909111ec43ab5c0bdadf3131b9ab0
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Thu Apr 29 15:11:53 2021 +0100

    Drop generating requires: header
    
    For setup versions later than 2.885, it's superseded by depends2:
    
    Dropping this reduces the size of setup.ini by about 5%


Diff:
---
 calm/hint.py                                       |  9 +--
 calm/package.py                                    | 64 +++++++++++++++-------
 calm/past_mistakes.py                              |  1 +
 calm/pkg2html.py                                   |  6 +-
 .../noarch/release/test-c/test-c-1.0-1.expected    |  2 +-
 .../x86/release/cygwin/cygwin-2.3.0-0.3.expected   |  2 +-
 .../libtextcat-devel-2.2-2.expected                |  2 +-
 test/testdata/htdocs.expected/summary/test-c.html  |  2 +-
 test/testdata/inifile/setup.ini.expected           | 12 +---
 test/testdata/process_arch/setup.ini.expected      | 13 +----
 .../noarch/release/test-c/test-c-1.0-1.hint        |  2 +-
 .../x86/release/cygwin/cygwin-2.3.0-0.3.hint       |  2 +-
 test/testdata/uploads/pkglist.expected             | 14 +++--
 13 files changed, 67 insertions(+), 64 deletions(-)

diff --git a/calm/hint.py b/calm/hint.py
index 8990a25..b151317 100755
--- a/calm/hint.py
+++ b/calm/hint.py
@@ -73,7 +73,6 @@ hintkeys[pvr].update({
     'external-source': 'val',
     'requires': 'optval',
     'obsoletes': 'optval',
-    'depends': 'optval',
     'provides': 'val',
     'conflicts': 'val',
 })
@@ -351,18 +350,12 @@ def hint_file_parse(fn, kind, strict=False):
                     warnings.append('sdesc is much longer than ldesc')
 
             # sort these hints, as differences in ordering are uninteresting
-            if 'requires' in hints:
-                hints['requires'] = split_trim_sort_join(hints['requires'], None, ' ')
-
             if 'build-depends' in hints:
                 if ',' in hints['build-depends']:
                     hints['build-depends'] = split_trim_sort_join(hints['build-depends'], ',')
                 else:
                     hints['build-depends'] = split_trim_sort_join(hints['build-depends'], None, ', ')
 
-            if 'depends' in hints:
-                hints['depends'] = split_trim_sort_join(hints['depends'], ',')
-
             if 'obsoletes' in hints:
                 # obsoletes is specified as comma separated, but cygport writes it space separated at the moment...
                 if ',' in hints['obsoletes']:
@@ -429,7 +422,7 @@ def main(args):
     for fn in args.files:
         hints = hint_file_parse(fn, spvr if fn.endswith('src.hint') else pvr)
 
-        if args.verbose > 1:
+        if args.verbose >= 1:
             print(hints)
 
         if 'parse-warnings' in hints:
diff --git a/calm/package.py b/calm/package.py
index dd137fb..2b5bc85 100755
--- a/calm/package.py
+++ b/calm/package.py
@@ -152,6 +152,41 @@ def sha512_file(fn, block_size=256 * 128):
     return sha512.hexdigest()
 
 
+# process a list of package version-constraints
+def process_package_constraint_list(pcl):
+    # split, keeping optional version-relation, trim and sort
+    deplist = {}
+
+    if ',' in pcl:
+        # already comma separated is simple
+        for r in pcl.split(','):
+            r = r.strip()
+            item = re.sub(r'(.*)\s+\(.*?\)', r'\1', r)
+            deplist[item] = r
+    else:
+        # otherwise, split into a sequence of package names, version-relation
+        # constraints and white-space, and group package name with any following
+        # constraint
+        item = None
+        for r in re.split(r'(\(.*?\)|\s+)', pcl):
+            r = r.strip()
+            if not r:
+                continue
+            if r.startswith('('):
+                if not item:
+                    logging.warning("constraint '%s' before any package" % (r))
+                elif '(' in deplist[item]:
+                    logging.warning("multiple constraints after package %s" % (item))
+                else:
+                    deplist[item] = item + ' ' + r
+            else:
+                item = r
+                deplist[item] = item
+
+    # return a sorted list of package names with an optional version constraint.
+    return sorted(deplist.values())
+
+
 # helper function to read hints
 def read_hints(p, fn, kind, strict=False):
     hints = hint.hint_file_parse(fn, kind, strict)
@@ -166,12 +201,12 @@ def read_hints(p, fn, kind, strict=False):
         for l in hints['parse-warnings']:
             logging.info("package '%s': %s" % (p, l))
 
-    # if we don't have both requires: and depends:, generate the one
-    # from the other
-    if ('requires' in hints) and ('depends' not in hints):
-        hints['depends'] = ', '.join(hints['requires'].split())
-    elif ('depends' in hints) and ('requires' not in hints):
-        hints['requires'] = ' '.join([re.sub(r'(.*)\s+\(.*\)', r'\1', d) for d in hints['depends'].split(',')])
+    # generate depends: from requires:
+    # XXX: store this as a list, rather than splitting it into one everywhere we
+    # use it
+    hints['depends'] = ', '.join(process_package_constraint_list(hints.get('requires', '')))
+    # erase requires:, to ensure there is nothing using it
+    hints.pop('requires', None)
 
     return hints
 
@@ -524,7 +559,8 @@ def upgrade_oldstyle_obsoletes(packages):
 
                 if packages[p].tar(vr).is_empty:
                     if '_obsolete' in packages[p].version_hints[vr]['category']:
-                        requires = packages[p].version_hints[vr].get('requires', '').split()
+                        requires = packages[p].version_hints[vr].get('depends', '').split(', ')
+                        requires = [re.sub(r'(.*) +\(.*\)', r'\1', r) for r in requires]
 
                         if p in past_mistakes.old_style_obsolete_by:
                             o = past_mistakes.old_style_obsolete_by[p]
@@ -593,7 +629,6 @@ def validate_packages(args, packages, valid_requires_extra=None, missing_obsolet
 
         for (v, hints) in packages[p].version_hints.items():
             for (c, okmissing, splitchar) in [
-                    ('requires', 'missing-required-package', None),
                     ('depends', 'missing-depended-package', ','),
                     ('obsoletes', 'missing-obsoleted-package', ',')
             ]:
@@ -608,7 +643,7 @@ def validate_packages(args, packages, valid_requires_extra=None, missing_obsolet
                         if splitchar:
                             r = re.sub(r'(.*) +\(.*\)', r'\1', r)
 
-                        if c == 'requires':
+                        if c == 'depends':
                             # don't count cygwin-debuginfo for the purpose of
                             # checking if this package has any requires, as
                             # cygport always makes debuginfo packages require
@@ -1071,15 +1106,6 @@ def write_setup_ini(args, packages, arch):
             category = ' '.join(map(upper_first_character, category.split()))
             print("category: %s" % category, file=f)
 
-            # compute the union of requires for all versions
-            requires = set()
-            for hints in po.version_hints.values():
-                if 'requires' in hints:
-                    requires = set.union(requires, hints['requires'].split())
-            # empty requires are suppressed as setup's parser can't handle that
-            if requires:
-                print("requires: %s" % ' '.join(sorted(requires)), file=f)
-
             if 'message' in po.version_hints[bv]:
                 print("message: %s" % po.version_hints[bv]['message'], file=f)
 
@@ -1189,7 +1215,7 @@ def write_setup_ini(args, packages, arch):
                 # also itself emitted.
 
                 if version in po.versions():
-                    if hints.get('depends', '') or requires:
+                    if hints.get('depends', ''):
                         print("depends2: %s" % hints.get('depends', ''), file=f)
 
                     if hints.get('obsoletes', ''):
diff --git a/calm/past_mistakes.py b/calm/past_mistakes.py
index e4135aa..1403840 100644
--- a/calm/past_mistakes.py
+++ b/calm/past_mistakes.py
@@ -194,6 +194,7 @@ missing_obsolete = {
 
 # provides: which don't exist
 nonexistent_provides = [
+    '_windows',
     'perl5_026',
     'rdiff-debuginfo',           # not in x86
     'rxvt-unicode-X-debuginfo',  # not in x86_64
diff --git a/calm/pkg2html.py b/calm/pkg2html.py
index f6a2ada..4924847 100755
--- a/calm/pkg2html.py
+++ b/calm/pkg2html.py
@@ -147,10 +147,12 @@ def update_package_listings(args, packages):
 
     toremove = glob.glob(os.path.join(summaries, '*'))
 
-    def linkify_package(p):
+    def linkify_package(pkg):
+        p = re.sub(r'(.*)\s+\(.*\)', r'\1', pkg)
         if p in package_list:
             pn = arch_package(packages, p).orig_name
-            return '<a href="%s.html">%s</a>' % (p, pn)
+            text = re.sub(re.escape(p), pn, pkg)
+            return '<a href="%s.html">%s</a>' % (p, text)
         logging.debug('package linkification failed for %s' % p)
         return p
 
diff --git a/test/testdata/hints/noarch/release/test-c/test-c-1.0-1.expected b/test/testdata/hints/noarch/release/test-c/test-c-1.0-1.expected
index c8024d7..d5a43b4 100644
--- a/test/testdata/hints/noarch/release/test-c/test-c-1.0-1.expected
+++ b/test/testdata/hints/noarch/release/test-c/test-c-1.0-1.expected
@@ -1,4 +1,4 @@
 {'category': 'Devel',
  'sdesc': '"test package C"',
  'obsoletes': 'obs-a, obs-b',
- 'depends': 'test-d (>= 1.0), test-e'}
+ 'requires': 'test-d (>= 1.0), test-e'}
diff --git a/test/testdata/hints/x86/release/cygwin/cygwin-2.3.0-0.3.expected b/test/testdata/hints/x86/release/cygwin/cygwin-2.3.0-0.3.expected
index 4c2d9d7..7d9ea86 100644
--- a/test/testdata/hints/x86/release/cygwin/cygwin-2.3.0-0.3.expected
+++ b/test/testdata/hints/x86/release/cygwin/cygwin-2.3.0-0.3.expected
@@ -1,7 +1,7 @@
 {'sdesc': '"The UNIX emulation engine"',
  'ldesc': '"The UNIX emulation engine"',
  'category': 'Base',
- 'requires': 'base-cygwin',
+ 'requires': 'base-cygwin _windows ( >= 6.0 )',
  'provides': 'cygwin-api0_291',
  'conflicts': 'fruit-juice',
  'test': ''}
diff --git a/test/testdata/hints/x86/release/libtextcat/libtextcat-devel/libtextcat-devel-2.2-2.expected b/test/testdata/hints/x86/release/libtextcat/libtextcat-devel/libtextcat-devel-2.2-2.expected
index aca0db6..f60d34d 100644
--- a/test/testdata/hints/x86/release/libtextcat/libtextcat-devel/libtextcat-devel-2.2-2.expected
+++ b/test/testdata/hints/x86/release/libtextcat/libtextcat-devel/libtextcat-devel-2.2-2.expected
@@ -7,6 +7,6 @@
           'BSD License.\n'
           'http://software.wise-guys.nl/libtextcat/"',
  'category': 'Devel Text',
- 'requires': 'libtextcat libtextcat0',
+ 'requires': 'libtextcat0 libtextcat',
  'external-source': 'libtextcat',
  'parse-errors': ['embedded quote at line 7']}
diff --git a/test/testdata/htdocs.expected/summary/test-c.html b/test/testdata/htdocs.expected/summary/test-c.html
index 2a0d186..200bd7b 100644
--- a/test/testdata/htdocs.expected/summary/test-c.html
+++ b/test/testdata/htdocs.expected/summary/test-c.html
@@ -13,7 +13,7 @@
 <span class="detail">summary</span>: test package C<br><br>
 <span class="detail">description</span>: test package 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">depends</span>: <a href="test-d.html">test-d (>= 1.0)</a>, <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>
 <span class="detail">source package</span>: <a href="test-c-src.html">test-c</a><br><br>
 <span class="detail">maintainer(s)</span>: ORPHANED 
diff --git a/test/testdata/inifile/setup.ini.expected b/test/testdata/inifile/setup.ini.expected
index d3b7f23..aaf6805 100644
--- a/test/testdata/inifile/setup.ini.expected
+++ b/test/testdata/inifile/setup.ini.expected
@@ -31,7 +31,6 @@
  'sdesc: "Initial base installation helper script"\n'
  'ldesc: "Initial base installation helper script."\n'
  'category: Base\n'
- 'requires: cygwin-api0_291\n'
  'version: 3.8-1\n'
  'install: x86/release/base-cygwin/base-cygwin-3.8-1.tar.xz 228 '
  'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
@@ -40,7 +39,6 @@
  'version: 3.6-1\n'
  'install: x86/release/base-cygwin/base-cygwin-3.6-1.tar.xz 228 '
  'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
- 'depends2: \n'
  '\n'
  '@ corrupt\n'
  'sdesc: "A corrupt package"\n'
@@ -56,7 +54,6 @@
  'sdesc: "The UNIX emulation engine"\n'
  'ldesc: "The UNIX emulation engine"\n'
  'category: Base\n'
- 'requires: base-cygwin\n'
  'version: 2.2.1-1\n'
  'install: x86/release/cygwin/cygwin-2.2.1-1.tar.xz 228 '
  'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
@@ -76,7 +73,7 @@
  'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
  'source: x86/release/cygwin/cygwin-2.3.0-0.3-src.tar.xz 228 '
  'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
- 'depends2: base-cygwin\n'
+ 'depends2: _windows ( >= 6.0 ), base-cygwin\n'
  'provides: cygwin-api0_291\n'
  'conflicts: fruit-juice\n'
  '\n'
@@ -85,7 +82,6 @@
  'ldesc: "This package contains files necessary for debugging the\n'
  'cygwin package with gdb."\n'
  'category: Debug\n'
- 'requires: cygwin-debuginfo\n'
  'version: 2.2.1-1\n'
  'install: x86/release/cygwin/cygwin-debuginfo/cygwin-debuginfo-2.2.1-1.tar.xz 228 '
  'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
@@ -141,7 +137,6 @@
  'ssh-agent, otherwise it loads them, prompting you for a password if\n'
  'necessary"\n'
  'category: Utils\n'
- 'requires: openssh\n'
  'version: 2.7.1-1\n'
  'install: x86/release/keychain/keychain-2.7.1-1.tar.bz2 32219 '
  '0c7b7ad2636b6e23e40e8cb593196b3fabe9c44f7618ea9b2021b89ecdc08720a7f824be0beaa75c9e62dda9a7b5ed7e9c1ed147a1875c582e80866ad09533a2\n'
@@ -162,7 +157,6 @@
  'automatic discovery of computers, devices, and services on IP networks using\n'
  'industry standard IP protocols."\n'
  'category: Net\n'
- 'requires: libdns_sd1\n'
  'version: 379.32.1-1\n'
  'install: x86/release/mDNSResponder/libdns_sd-devel/libdns_sd-devel-379.32.1-1.tar.bz2 195 '
  'aff488008bee3486e25b539fe6ccd1397bd3c5c0ba2ee2cf34af279554baa195af7493ee51d6f8510735c9a2ea54436d776a71e768165716762aec286abbbf83\n'
@@ -188,7 +182,6 @@
  'automatic discovery of computers, devices, and services on IP networks using\n'
  'industry standard IP protocols."\n'
  'category: Net\n'
- 'requires: libdns_sd1\n'
  'message: mDNSResponder "The Cygwin mDNSResponder package contains only clients.\n'
  "If you do not already have the 'Bonjour Service' installed (it comes with\n"
  'a number of popular Windows programs), then you can download it at\n'
@@ -234,7 +227,6 @@
  'sdesc: "Per-version hint test package"\n'
  'ldesc: "Per-version hint test package"\n'
  'category: Base\n'
- 'requires: base-cygwin cygwin\n'
  'version: 4.8-1\n'
  'install: x86/release/per-version/per-version-4.8-1.tar.xz 228 '
  'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
@@ -253,7 +245,6 @@
  'sdesc: "Per-version hint test package"\n'
  'ldesc: "Per-version hint test package"\n'
  'category: Base\n'
- 'requires: cygwin\n'
  'version: 1.0-1\n'
  'install: x86/release/per-version-replacement-hint-only/per-version-replacement-hint-only-1.0-1.tar.xz 228 '
  'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
@@ -340,7 +331,6 @@
  '@ test-c\n'
  'sdesc: "test package C"\n'
  'category: Devel Unmaintained\n'
- 'requires: test-d test-e\n'
  'version: 1.0-1\n'
  'install: noarch/release/test-c/test-c-1.0-1.tar.xz 256 '
  'ef15790d8dc8163ed15dfca37565558203ed8b7569d586e0bc949f25282f44a1c059a60a7502863312b41cda649e3a9e2516d354eec9d54829e3ac1a3547097c\n'
diff --git a/test/testdata/process_arch/setup.ini.expected b/test/testdata/process_arch/setup.ini.expected
index d620250..288ff40 100644
--- a/test/testdata/process_arch/setup.ini.expected
+++ b/test/testdata/process_arch/setup.ini.expected
@@ -31,7 +31,6 @@
  'sdesc: "Initial base installation helper script"\n'
  'ldesc: "Initial base installation helper script."\n'
  'category: Base\n'
- 'requires: cygwin-api0_291\n'
  'version: 3.8-1\n'
  'install: x86/release/base-cygwin/base-cygwin-3.8-1.tar.xz 228 '
  'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
@@ -40,7 +39,6 @@
  'version: 3.6-1\n'
  'install: x86/release/base-cygwin/base-cygwin-3.6-1.tar.xz 228 '
  'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
- 'depends2: \n'
  '\n'
  '@ corrupt\n'
  'sdesc: "A corrupt package"\n'
@@ -56,7 +54,6 @@
  'sdesc: "The UNIX emulation engine"\n'
  'ldesc: "The UNIX emulation engine"\n'
  'category: Base\n'
- 'requires: base-cygwin\n'
  'version: 2.2.1-1\n'
  'install: x86/release/cygwin/cygwin-2.2.1-1.tar.xz 228 '
  'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
@@ -76,7 +73,7 @@
  'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
  'source: x86/release/cygwin/cygwin-2.3.0-0.3-src.tar.xz 228 '
  'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
- 'depends2: base-cygwin\n'
+ 'depends2: _windows ( >= 6.0 ), base-cygwin\n'
  'provides: cygwin-api0_291\n'
  'conflicts: fruit-juice\n'
  '\n'
@@ -85,7 +82,6 @@
  'ldesc: "This package contains files necessary for debugging the\n'
  'cygwin package with gdb."\n'
  'category: Debug\n'
- 'requires: cygwin-debuginfo\n'
  'version: 2.2.1-1\n'
  'install: x86/release/cygwin/cygwin-debuginfo/cygwin-debuginfo-2.2.1-1.tar.xz 228 '
  'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
@@ -141,7 +137,6 @@
  'ssh-agent, otherwise it loads them, prompting you for a password if\n'
  'necessary"\n'
  'category: Utils\n'
- 'requires: openssh\n'
  'version: 2.7.1-1\n'
  'install: x86/release/keychain/keychain-2.7.1-1.tar.bz2 32219 '
  '0c7b7ad2636b6e23e40e8cb593196b3fabe9c44f7618ea9b2021b89ecdc08720a7f824be0beaa75c9e62dda9a7b5ed7e9c1ed147a1875c582e80866ad09533a2\n'
@@ -162,7 +157,6 @@
  'automatic discovery of computers, devices, and services on IP networks using\n'
  'industry standard IP protocols."\n'
  'category: Net\n'
- 'requires: libdns_sd1\n'
  'version: 379.32.1-1\n'
  'install: x86/release/mDNSResponder/libdns_sd-devel/libdns_sd-devel-379.32.1-1.tar.bz2 195 '
  'aff488008bee3486e25b539fe6ccd1397bd3c5c0ba2ee2cf34af279554baa195af7493ee51d6f8510735c9a2ea54436d776a71e768165716762aec286abbbf83\n'
@@ -188,7 +182,6 @@
  'automatic discovery of computers, devices, and services on IP networks using\n'
  'industry standard IP protocols."\n'
  'category: Net\n'
- 'requires: libdns_sd1\n'
  'message: mDNSResponder "The Cygwin mDNSResponder package contains only clients.\n'
  "If you do not already have the 'Bonjour Service' installed (it comes with\n"
  'a number of popular Windows programs), then you can download it at\n'
@@ -234,7 +227,6 @@
  'sdesc: "Per-version hint test package"\n'
  'ldesc: "Per-version hint test package"\n'
  'category: Base\n'
- 'requires: base-cygwin cygwin\n'
  'version: 4.8-1\n'
  'install: x86/release/per-version/per-version-4.8-1.tar.xz 228 '
  'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
@@ -260,7 +252,6 @@
  'sdesc: "Replacement per-version hint test package - updated"\n'
  'ldesc: "Replacement per-version hint test package - updated"\n'
  'category: Base\n'
- 'requires: base-cygwin per-version\n'
  'version: 1.0-1\n'
  'install: x86/release/per-version-replacement-hint-only/per-version-replacement-hint-only-1.0-1.tar.xz 228 '
  'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
@@ -329,7 +320,6 @@
  '@ test-c\n'
  'sdesc: "test package C"\n'
  'category: Devel Unmaintained\n'
- 'requires: test-d test-e\n'
  'version: 1.0-1\n'
  'install: noarch/release/test-c/test-c-1.0-1.tar.xz 256 '
  'ef15790d8dc8163ed15dfca37565558203ed8b7569d586e0bc949f25282f44a1c059a60a7502863312b41cda649e3a9e2516d354eec9d54829e3ac1a3547097c\n'
@@ -363,7 +353,6 @@
  "It's description might contains some unicode junk\n"
  'Like it’s you’re Markup Language™ Nokogiri’s tool―that Bézier."\n'
  'category: Devel\n'
- 'requires: cygwin\n'
  'version: 1.0-1\n'
  'install: x86/release/testpackage/testpackage-1.0-1.tar.bz2 195 '
  'aff488008bee3486e25b539fe6ccd1397bd3c5c0ba2ee2cf34af279554baa195af7493ee51d6f8510735c9a2ea54436d776a71e768165716762aec286abbbf83\n'
diff --git a/test/testdata/relarea/noarch/release/test-c/test-c-1.0-1.hint b/test/testdata/relarea/noarch/release/test-c/test-c-1.0-1.hint
index 4610d7a..5ab7f54 100755
--- a/test/testdata/relarea/noarch/release/test-c/test-c-1.0-1.hint
+++ b/test/testdata/relarea/noarch/release/test-c/test-c-1.0-1.hint
@@ -1,4 +1,4 @@
 category: Devel
 sdesc: "test package C"
 obsoletes: obs-a obs-b
-depends: test-d (>= 1.0), test-e
+requires: test-d (>= 1.0), test-e
diff --git a/test/testdata/relarea/x86/release/cygwin/cygwin-2.3.0-0.3.hint b/test/testdata/relarea/x86/release/cygwin/cygwin-2.3.0-0.3.hint
index 9e3e36e..842197e 100644
--- a/test/testdata/relarea/x86/release/cygwin/cygwin-2.3.0-0.3.hint
+++ b/test/testdata/relarea/x86/release/cygwin/cygwin-2.3.0-0.3.hint
@@ -1,7 +1,7 @@
 sdesc: "The UNIX emulation engine"
 ldesc: "The UNIX emulation engine"
 category: Base
-requires: base-cygwin
+requires: base-cygwin _windows ( >= 6.0 )
 provides: cygwin-api0_291
 conflicts: fruit-juice
 test:
diff --git a/test/testdata/uploads/pkglist.expected b/test/testdata/uploads/pkglist.expected
index ae70bb4..538f40f 100644
--- a/test/testdata/uploads/pkglist.expected
+++ b/test/testdata/uploads/pkglist.expected
@@ -4,7 +4,6 @@
                     'Like it’s you’re Markup Language™ Nokogiri’s tool―that '
                     'Bézier."',
            'category': 'Devel',
-           'requires': 'cygwin',
            'depends': 'cygwin'}}, {}, False),
  'testpackage-src': Package('testpackage', {'1.0-1': Tar('testpackage-1.0-1-src.tar.bz2', 'x86/release/testpackage', 'acfd77df3347e6432ccf29c12989964bc680a158d574f85dfa7ef222759f411006c7bd2773e37c5abdee628bea769b2da9aae213db615cd91402fd385373933d', 266, False)}, {'1.0-1': {'sdesc': '"A test package"',
            'ldesc': '"A test package\n'
@@ -13,13 +12,14 @@
                     'Bézier."',
            'category': 'Devel',
            'homepage': 'http://homepage.url',
-           'parse-warnings': ["key 'license' missing"]}}, {}, False),
+           'parse-warnings': ["key 'license' missing"],
+           'depends': ''}}, {}, False),
  'testpackage-subpackage': Package('testpackage/testpackage-subpackage', {'1.0-1': Tar('testpackage-subpackage-1.0-1.tar.bz2', 'x86/release/testpackage/testpackage-subpackage', 'aff488008bee3486e25b539fe6ccd1397bd3c5c0ba2ee2cf34af279554baa195af7493ee51d6f8510735c9a2ea54436d776a71e768165716762aec286abbbf83', 195, False)}, {'1.0-1': {'sdesc': '"A test subpackage"',
            'ldesc': '"A test subpackage"',
            'category': 'Devel',
-           'external-source': 'testpackage-src'}}, {}, False),
+           'external-source': 'testpackage-src',
+           'depends': ''}}, {}, False),
  'testpackage-zstd': Package('testpackage-zstd', {'1.0-1': Tar('testpackage-zstd-1.0-1.tar.zst', 'x86/release/testpackage-zstd', '044066c54c036190f9b0496ccf31f74748d209cce961352e19631876d5abd79ef6d2b34edfb955b8d1a7a781294ee0636bb1305afe410b34562367a2cb77988d', 98, False)}, {'1.0-1': {'category': 'Base',
-           'requires': '',
            'sdesc': '"test package (zstd compressed)"',
            'ldesc': '"test package (zstd compressed)"',
            'depends': ''}}, {}, False),
@@ -29,7 +29,9 @@
            'ldesc': '"test package (zstd compressed)"',
            'homepage': 'http://zstd.testpkg.invalid',
            'skip': '',
-           'parse-warnings': ["key 'license' missing"]}}, {}, False),
+           'parse-warnings': ["key 'license' missing"],
+           'depends': ''}}, {}, False),
  'testpackage2-subpackage': Package('testpackage2/testpackage2-subpackage', {'1.0-1': Tar('testpackage2-subpackage-1.0-1.tar.bz2', 'x86/release/testpackage2/testpackage2-subpackage', 'c4bf8e28d71b532e2b741e2931906dec0f0a70d4d051c0503476f864a5228f43765ae3342aafcebfd5a1738073537726b2bfbbd89c6da939a5f46d95aca3feaf', 46, True)}, {'1.0-1': {'sdesc': '"A test subpackage 2"',
            'ldesc': '"A test subpackage 2"',
-           'category': 'Devel'}}, {}, False)}
+           'category': 'Devel',
+           'depends': ''}}, {}, False)}



More information about the Cygwin-apps-cvs mailing list