Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/cygwin-apps/calm.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2021-05-29 16:35:11 +0300
committerJon Turney <jon.turney@dronecode.org.uk>2021-05-29 18:03:31 +0300
commit88ddf1ea8212fcffb8a9b12f7645b16ea446f97c (patch)
tree21e94acb3f21a4f042462059d07304702dcc12c9
parentaea57c2823ad55b2c34b6d0cf8d8548f7965e679 (diff)
Make 'homepage:' mandatory in new -src.hint uploads
Also update test data appropriately
-rwxr-xr-xcalm/hint.py8
-rwxr-xr-xcalm/package.py10
-rw-r--r--test/testdata/homes/Blooey McFooey/noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-2-src.tar.xzbin2752 -> 2792 bytes
-rw-r--r--test/testdata/homes/Blooey McFooey/x86/release/per-version/per-version-5.0-1-src.tar.xzbin228 -> 296 bytes
-rw-r--r--test/testdata/homes/Blooey McFooey/x86/release/testpackage-zstd/testpackage-zstd-1.0-1-src.hint1
-rw-r--r--test/testdata/process_arch/homedir.expected4
-rw-r--r--test/testdata/process_arch/packages.json.expected1
-rw-r--r--test/testdata/process_arch/setup.ini.expected8
-rw-r--r--test/testdata/uploads/pkglist.expected1
9 files changed, 20 insertions, 13 deletions
diff --git a/calm/hint.py b/calm/hint.py
index 6cabea4..9deb2f0 100755
--- a/calm/hint.py
+++ b/calm/hint.py
@@ -192,7 +192,7 @@ def split_trim_sort_join(hint, splitchar, joinchar=None):
# parse the file |fn| as a .hint file of kind |kind|
-def hint_file_parse(fn, kind):
+def hint_file_parse(fn, kind, strict=False):
hints = OrderedDict()
errors = []
warnings = []
@@ -289,9 +289,13 @@ def hint_file_parse(fn, kind):
errors.append("hint only contains skip: key, please update to cygport >= 0.22.0")
# for the pvr kind, 'category' and 'sdesc' must be present
- # XXX: genini also requires 'requires' but that seems wrong
+ # (genini also requires 'requires' but that seems wrong)
+ # for the spvr kind, 'homepage' must be present for new packages
if (kind == pvr) or (kind == spvr):
mandatory = ['category', 'sdesc']
+ if (kind == spvr) and strict:
+ mandatory.append('homepage')
+
for k in mandatory:
if k not in hints:
errors.append("required key '%s' missing" % (k))
diff --git a/calm/package.py b/calm/package.py
index 9b3d8ad..d253afb 100755
--- a/calm/package.py
+++ b/calm/package.py
@@ -136,8 +136,8 @@ def sha512_file(fn, block_size=256 * 128):
# helper function to read hints
-def read_hints(p, fn, kind):
- hints = hint.hint_file_parse(fn, kind)
+def read_hints(p, fn, kind, strict=False):
+ hints = hint.hint_file_parse(fn, kind, strict)
if 'parse-errors' in hints:
for l in hints['parse-errors']:
@@ -247,7 +247,7 @@ def read_package_dir(packages, basedir, dirpath, files, remove=None, upload=Fals
for kind in Kind:
# only create a package if there's archives for it to contain
if fl[kind]:
- result = read_one_package(packages, p, relpath, dirpath, fl[kind] + fl['all'], remove, kind) or result
+ result = read_one_package(packages, p, relpath, dirpath, fl[kind] + fl['all'], remove, kind, upload) or result
# warn about unexpected files, including tarfiles which don't match the
# package name
@@ -261,7 +261,7 @@ def read_package_dir(packages, basedir, dirpath, files, remove=None, upload=Fals
#
# read a single package
#
-def read_one_package(packages, p, relpath, dirpath, files, remove, kind):
+def read_one_package(packages, p, relpath, dirpath, files, remove, kind, strict):
warnings = False
if not re.match(r'^[\w\-._+]*$', p):
@@ -390,7 +390,7 @@ def read_one_package(packages, p, relpath, dirpath, files, remove, kind):
hint_fn = '%s-%s%s.hint' % (p, vr, '-src' if kind == Kind.source else '')
if hint_fn in files:
# is there a PVR.hint file?
- pvr_hint = read_hints(p, os.path.join(dirpath, hint_fn), hint.pvr if kind == Kind.binary else hint.spvr)
+ pvr_hint = read_hints(p, os.path.join(dirpath, hint_fn), hint.pvr if kind == Kind.binary else hint.spvr, strict)
if not pvr_hint:
logging.error("error parsing %s" % (os.path.join(dirpath, hint_fn)))
return True
diff --git a/test/testdata/homes/Blooey McFooey/noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-2-src.tar.xz b/test/testdata/homes/Blooey McFooey/noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-2-src.tar.xz
index 9e7f93d..fb7a692 100644
--- a/test/testdata/homes/Blooey McFooey/noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-2-src.tar.xz
+++ b/test/testdata/homes/Blooey McFooey/noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-2-src.tar.xz
Binary files differ
diff --git a/test/testdata/homes/Blooey McFooey/x86/release/per-version/per-version-5.0-1-src.tar.xz b/test/testdata/homes/Blooey McFooey/x86/release/per-version/per-version-5.0-1-src.tar.xz
index 0e6f1e8..7bb8552 100644
--- a/test/testdata/homes/Blooey McFooey/x86/release/per-version/per-version-5.0-1-src.tar.xz
+++ b/test/testdata/homes/Blooey McFooey/x86/release/per-version/per-version-5.0-1-src.tar.xz
Binary files differ
diff --git a/test/testdata/homes/Blooey McFooey/x86/release/testpackage-zstd/testpackage-zstd-1.0-1-src.hint b/test/testdata/homes/Blooey McFooey/x86/release/testpackage-zstd/testpackage-zstd-1.0-1-src.hint
index 386cdb9..6b9d514 100644
--- a/test/testdata/homes/Blooey McFooey/x86/release/testpackage-zstd/testpackage-zstd-1.0-1-src.hint
+++ b/test/testdata/homes/Blooey McFooey/x86/release/testpackage-zstd/testpackage-zstd-1.0-1-src.hint
@@ -2,5 +2,6 @@ category: Base
build-depends: cygport
sdesc: "test package (zstd compressed)"
ldesc: "test package (zstd compressed)"
+homepage: http://zstd.testpkg.invalid
skip:
diff --git a/test/testdata/process_arch/homedir.expected b/test/testdata/process_arch/homedir.expected
index 7c07d4f..5804575 100644
--- a/test/testdata/process_arch/homedir.expected
+++ b/test/testdata/process_arch/homedir.expected
@@ -2,7 +2,7 @@
'Blooey McFooey': ['!reminder-timestamp'],
'Blooey McFooey/noarch': [],
'Blooey McFooey/noarch/release': [],
- 'Blooey McFooey/noarch/release/perl-Net-SMTP-SSL': [],
+ 'Blooey McFooey/noarch/release/perl-Net-SMTP-SSL': ['perl-Net-SMTP-SSL-1.03-2-src.hint.bak'],
'Blooey McFooey/x86': [],
'Blooey McFooey/x86/release': [],
'Blooey McFooey/x86/release/after-ready': ['after-ready-1.0-1.tar.bz2', 'setup.hint'],
@@ -10,7 +10,7 @@
'Blooey McFooey/x86/release/not-on-maintainer-list': ['not-on-maintainer-list-1.0-1.tar.bz2', 'setup.hint'],
'Blooey McFooey/x86/release/not-on-package-list': ['not-on-package-list-1.0-1.tar.bz2', 'setup.hint'],
'Blooey McFooey/x86/release/not-ready': ['-not-ready-0.9-1.tar.bz2', 'not-ready-1.0-1.tar.bz2', 'setup.hint'],
- 'Blooey McFooey/x86/release/per-version': [],
+ 'Blooey McFooey/x86/release/per-version': ['per-version-5.0-1-src.hint.bak'],
'Blooey McFooey/x86/release/per-version-replacement-hint-only': [],
'Blooey McFooey/x86/release/testpackage': ['testpackage-1.0-1-src.hint.bak'],
'Blooey McFooey/x86/release/testpackage-zstd': ['testpackage-zstd-1.0-1-src.hint',
diff --git a/test/testdata/process_arch/packages.json.expected b/test/testdata/process_arch/packages.json.expected
index 05e4168..512fcf2 100644
--- a/test/testdata/process_arch/packages.json.expected
+++ b/test/testdata/process_arch/packages.json.expected
@@ -266,6 +266,7 @@
' "x86",\n'
' "x86_64"\n'
' ],\n'
+ ' "homepage": "https://metacpan.org/release/RJBS/Net-SMTP-SSL-1.04",\n'
' "maintainers": [\n'
' "Blooey McFooey",\n'
' "Yaakov Selkowitz"\n'
diff --git a/test/testdata/process_arch/setup.ini.expected b/test/testdata/process_arch/setup.ini.expected
index 6705bfb..d97f1a3 100644
--- a/test/testdata/process_arch/setup.ini.expected
+++ b/test/testdata/process_arch/setup.ini.expected
@@ -252,8 +252,8 @@
'version: 5.0-1\n'
'install: x86/release/per-version/per-version-5.0-1.tar.xz 228 '
'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
- 'source: x86/release/per-version/per-version-5.0-1-src.tar.xz 228 '
- 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
+ 'source: x86/release/per-version/per-version-5.0-1-src.tar.xz 296 '
+ '3937b5bedff65c8eaee1705661ca2d1402c5af417b258f0d87adcc377b815024a559b591651adc00d069454582183512c234ce915276bdf7c276efd6a9bdf354\n'
'depends2: base-cygwin\n'
'\n'
'@ per-version-replacement-hint-only\n'
@@ -276,8 +276,8 @@
'version: 1.03-2\n'
'install: noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-2.tar.xz 3180 '
'aac6428f56fed431da1430242a327f36f1ec1ca6106366acb6752dd87f1b9adb87767709be9279b2f9435d16cee003f119a5ed4519c7365c8411404555618e66\n'
- 'source: noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-2-src.tar.xz 2752 '
- '4de528554acb0b63f2a964bc8a0421118f96ce05cb4c9d111983aaea1a4a93025b31627fd66875fa09c2dfaecc11a89f2a294bdd3c77055bfaa93a27fdfc1f07\n'
+ 'source: noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.03-2-src.tar.xz 2792 '
+ '2c6e4f22eecef8f5e664898745d7957da0399cd6e9f1b900c0bdf39bed8404ed90aca60cc4c8ee69a38d28e302c39bcdbb440c8c972bb46a90300f33a031e800\n'
'[prev]\n'
'version: 1.02-1\n'
'install: noarch/release/perl-Net-SMTP-SSL/perl-Net-SMTP-SSL-1.02-1.tar.xz 3180 '
diff --git a/test/testdata/uploads/pkglist.expected b/test/testdata/uploads/pkglist.expected
index fb3d59d..8312127 100644
--- a/test/testdata/uploads/pkglist.expected
+++ b/test/testdata/uploads/pkglist.expected
@@ -28,6 +28,7 @@
'build-depends': 'cygport',
'sdesc': '"test package (zstd compressed)"',
'ldesc': '"test package (zstd compressed)"',
+ 'homepage': 'http://zstd.testpkg.invalid',
'skip': ''}}, {}, 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"',