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>2016-09-14 00:07:09 +0300
committerJon Turney <jon.turney@dronecode.org.uk>2016-09-14 15:04:28 +0300
commitdb2d7aa3af433748b4c4e8fd922e5151dff72211 (patch)
treef05e15076b8045dcf151c62a25ef259cecd05df8
parent9967dd937702f63df47a99cbf5624277e6c6297a (diff)
Correctly handle upload which doesn't alter an existing override.hint
If there is an existing override.hint, it should be retained rather than be discarded when there is an upload
-rwxr-xr-xcalm/package.py8
-rw-r--r--test/testdata/process_arch/setup.ini.expected12
2 files changed, 12 insertions, 8 deletions
diff --git a/calm/package.py b/calm/package.py
index e198c9e..27d6457 100755
--- a/calm/package.py
+++ b/calm/package.py
@@ -734,6 +734,10 @@ def upper_first_character(s):
# - we combine the list of tarfiles, duplicates are not permitted
# - we use the hints from b, and warn if they are different to the hints for a
#
+# (XXX: this implementation possibly assumes that a package is at most in a and
+# one of b, which is currently true, but it could be written with more
+# generality)
+#
def merge(a, *l):
# start with a copy of a
c = copy.deepcopy(a)
@@ -770,8 +774,8 @@ def merge(a, *l):
logging.warning("package '%s' hints changed\n%s" % (p, diff))
- # take overrides from b
- c[p].override_hints = b[p].override_hints
+ # overrides from b take precedence
+ c[p].override_hints.update(b[p].override_hints)
# skip if both a and b are skip
c[p].skip = a[p].skip and b[p].skip
diff --git a/test/testdata/process_arch/setup.ini.expected b/test/testdata/process_arch/setup.ini.expected
index 27bc529..7de15aa 100644
--- a/test/testdata/process_arch/setup.ini.expected
+++ b/test/testdata/process_arch/setup.ini.expected
@@ -197,17 +197,17 @@
'ldesc: "Per-version hint test package"\n'
'category: Base\n'
'requires: base-cygwin cygwin\n'
- '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'
- '[prev]\n'
'version: 4.8-1\n'
'install: x86/release/per-version/per-version-4.8-1.tar.xz 228 '
'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
'source: x86/release/per-version/per-version-4.8-1-src.tar.xz 228 '
'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
+ '[prev]\n'
+ 'version: 4.0-1\n'
+ 'install: x86/release/per-version/per-version-4.0-1.tar.xz 228 '
+ 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
+ 'source: x86/release/per-version/per-version-4.0-1-src.tar.xz 228 '
+ 'e675b0ac4bc2c3e1c4971bc56d77b0cd53a9bdf5632873a235d7582e29dfd3e8a7bb04b28f6cdee3e6b3d14c25ed39392538e3f628a9bfda6c905646ebc3c225\n'
'\n'
'@ perl-Net-SMTP-SSL\n'
'sdesc: "Perl distribution Net-SMTP-SSL"\n'