From: Zac Medico Date: Tue, 4 Oct 2011 05:42:22 +0000 (-0700) Subject: repoman: bail out if unsupported manifest-hashes X-Git-Tag: v2.2.0_alpha61~8 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=12cf3eb1397dc2b33b087f6e37878d94a15a6b9f;p=portage.git repoman: bail out if unsupported manifest-hashes --- diff --git a/bin/repoman b/bin/repoman index 711fce98b..7943f54ef 100755 --- a/bin/repoman +++ b/bin/repoman @@ -587,6 +587,31 @@ manifest_hashes = repo_config.manifest_hashes if manifest_hashes is None: manifest_hashes = portage.const.MANIFEST2_HASH_DEFAULTS +if options.mode in ("commit", "fix", "manifest"): + if portage.const.MANIFEST2_REQUIRED_HASH not in manifest_hashes: + msg = ("The 'manifest-hashes' setting in the '%s' repository's " + "metadata/layout.conf does not contain the '%s' hash which " + "is required by this portage version. You will have to " + "upgrade portage if you want to generate valid manifests for " + "this repository.") % \ + (repo_config.name, portage.const.MANIFEST2_REQUIRED_HASH) + for line in textwrap.wrap(msg, 70): + logging.error(line) + sys.exit(1) + + unsupported_hashes = manifest_hashes.difference( + portage.const.MANIFEST2_HASH_FUNCTIONS) + if unsupported_hashes: + msg = ("The 'manifest-hashes' setting in the '%s' repository's " + "metadata/layout.conf contains one or more hash types '%s' " + "which are not supported by this portage version. You will " + "have to upgrade portage if you want to generate valid " + "manifests for this repository.") % \ + (repo_config.name, " ".join(sorted(unsupported_hashes))) + for line in textwrap.wrap(msg, 70): + logging.error(line) + sys.exit(1) + if "commit" == options.mode and \ repo_config.name == "gentoo" and \ "RMD160" in manifest_hashes and \