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>2023-01-19 16:13:17 +0300
committerJon Turney <jon.turney@dronecode.org.uk>2023-01-19 19:24:20 +0300
commitd77b94da78034219f9b5d89ecfe4fc24562cd344 (patch)
tree6be043ba19704e2ec7285e3cc786bf5613007131
parentad6b47c27b1113abacdfebf7234d38b6524606cd (diff)
Propagate any error reading packages through mksetupini
At the moment, calm.process_relarea() is expected to keep going, although we might later fail due to package set validation problemss. (In particular tests just assume that we ignore various problematic packages, although we don't actually check that they are being rejected with the epxected problem)
-rwxr-xr-xcalm/calm.py2
-rwxr-xr-xcalm/mksetupini.py6
-rwxr-xr-xcalm/package.py7
-rwxr-xr-xcalm/pkg2html.py2
-rwxr-xr-xtest/test_calm.py4
5 files changed, 13 insertions, 8 deletions
diff --git a/calm/calm.py b/calm/calm.py
index e8a7f08..b6e7e6e 100755
--- a/calm/calm.py
+++ b/calm/calm.py
@@ -103,7 +103,7 @@ def process_relarea(args, state):
# read the package list for each arch
for arch in common_constants.ARCHES:
logging.debug("reading existing packages for arch %s" % (arch))
- packages[arch] = package.read_packages(args.rel_area, arch)
+ packages[arch], _ = package.read_packages(args.rel_area, arch)
state.valid_provides = db.update_package_names(args, packages)
for arch in common_constants.ARCHES:
diff --git a/calm/mksetupini.py b/calm/mksetupini.py
index 170311b..9e3a006 100755
--- a/calm/mksetupini.py
+++ b/calm/mksetupini.py
@@ -48,7 +48,11 @@ except ImportError:
#
def do_main(args):
# build package list
- packages = package.read_packages(args.rel_area, args.arch)
+ packages, error = package.read_packages(args.rel_area, args.arch)
+
+ if not error:
+ logging.error("errors reading package set, not writing setup.ini")
+ return 1
# spellcheck text hints
if args.spell:
diff --git a/calm/package.py b/calm/package.py
index 72c03f0..81d07fe 100755
--- a/calm/package.py
+++ b/calm/package.py
@@ -141,6 +141,7 @@ class Hint(object):
# read a packages from a directory hierarchy
#
def read_packages(rel_area, arch):
+ error = False
packages = {}
# <arch>/ noarch/ and src/ directories are considered
@@ -151,11 +152,11 @@ def read_packages(rel_area, arch):
logging.debug('reading packages from %s' % releasedir)
for (dirpath, _subdirs, files) in os.walk(releasedir, followlinks=True):
- read_package_dir(packages[root], rel_area, dirpath, files)
+ error = read_package_dir(packages[root], rel_area, dirpath, files) or error
logging.debug("%d packages read from %s" % (len(packages[root]), releasedir))
- return merge({}, *packages.values())
+ return (merge({}, *packages.values()), error)
# helper function to compute sha512 for a particular file
@@ -1738,5 +1739,5 @@ def stale_packages(packages, vault_requests):
if __name__ == "__main__":
for arch in common_constants.ARCHES:
- packages = read_packages(common_constants.FTP, arch)
+ packages, _ = read_packages(common_constants.FTP, arch)
print("arch %s has %d packages" % (arch, len(packages)))
diff --git a/calm/pkg2html.py b/calm/pkg2html.py
index 2194a05..2a0d25d 100755
--- a/calm/pkg2html.py
+++ b/calm/pkg2html.py
@@ -573,5 +573,5 @@ if __name__ == "__main__":
logging.basicConfig(format=os.path.basename(sys.argv[0]) + ': %(message)s')
- packages = package.read_packages(args.rel_area, args.arch)
+ packages, _ = package.read_packages(args.rel_area, args.arch)
update_package_listings(args, packages, args.arch)
diff --git a/test/test_calm.py b/test/test_calm.py
index aced23b..bd8390d 100755
--- a/test/test_calm.py
+++ b/test/test_calm.py
@@ -180,7 +180,7 @@ class CalmTest(unittest.TestCase):
packages = {}
for arch in common_constants.ARCHES:
packages[arch] = {}
- packages[args.arch] = package.read_packages(args.rel_area, args.arch)
+ packages[args.arch], _ = package.read_packages(args.rel_area, args.arch)
package.validate_packages(args, packages[args.arch])
pkg2html.update_package_listings(args, packages)
@@ -379,7 +379,7 @@ class CalmTest(unittest.TestCase):
args.release = 'testing'
args.setup_version = '4.321'
- packages = package.read_packages(args.rel_area, args.arch)
+ packages, _ = package.read_packages(args.rel_area, args.arch)
package.delete(packages, 'x86_64/release/nonexistent', 'nosuchfile-1.0.0.tar.xz')
self.assertEqual(package.validate_packages(args, packages), True)
package.write_setup_ini(args, packages, args.arch)