public inbox for cygwin-apps-cvs@sourceware.org help / color / mirror / Atom feed
From: jturney@sourceware.org To: cygwin-apps-cvs@sourceware.org Subject: [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20190530-33-gd75abce Date: Mon, 01 Jul 2019 16:46:00 -0000 [thread overview] Message-ID: <20190701164659.130772.qmail@sourceware.org> (raw) https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=d75abceedb46749982669236c5c102796a1fbfb1 commit d75abceedb46749982669236c5c102796a1fbfb1 Author: Jon Turney <jon.turney@dronecode.org.uk> Date: Sun Apr 28 19:32:17 2019 +0100 Don't depend on an obsoleting package Diff: --- calm/package.py | 21 +++++++++++++++++++++ 1 files changed, 21 insertions(+), 0 deletions(-) diff --git a/calm/package.py b/calm/package.py index 008d01c..4ce1660 100755 --- a/calm/package.py +++ b/calm/package.py @@ -464,6 +464,27 @@ def validate_packages(args, packages): logging.error("package '%s' version '%s' refers to nonexistent or errored external-source '%s'" % (p, v, e)) error = True + # If package A is obsoleted by package B, B should appear in the + # requires: for A (so the upgrade occurs with pre-depends: aware + # versions of setup), but not in the depends: for A (as that creates an + # unsatisfiable dependency when explicitly installing A with lisolv + # versions of setup, which should just install B). This condition can + # occur since we might have synthesized the depends: from the requires: + # in read_hints(), so fix that up here. + for (v, hints) in packages[p].version_hints.items(): + obsoletes = hints.get('obsoletes', '') + if obsoletes: + for o in obsoletes.split(','): + o = o.strip() + o = re.sub(r'(.*) +\(.*\)', r'\1', o) + + for (ov, ohints) in packages[o].version_hints.items(): + if 'depends' in ohints: + depends = ohints['depends'].split(',') + depends = [d for d in depends if d != p] + packages[o].version_hints[ov]['depends'] = ','.join(depends) + logging.debug("removed obsoleting '%s' from the depends: of package '%s'" % (p, o)) + packages[p].vermap = defaultdict(defaultdict) is_empty = {} has_install = False
reply other threads:[~2019-07-01 16:46 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190701164659.130772.qmail@sourceware.org \ --to=jturney@sourceware.org \ --cc=cygwin-apps-cvs@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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).