From f619d5f9468d1d0eaab8eadf9fe11b0492094bbf Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 18 Jun 2008 04:38:32 +0000 Subject: Bug #225285 - Add a --skip-manifest option that disables all interaction with the manifest. svn path=/main/trunk/; revision=10712 --- bin/ebuild | 10 +++++++++- pym/portage/__init__.py | 5 ++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/bin/ebuild b/bin/ebuild index a91a78587..00ef29512 100755 --- a/bin/ebuild +++ b/bin/ebuild @@ -17,7 +17,10 @@ force_help = "When used together with the digest or manifest " + \ "that do not already exist in ${DISTDIR} will be automatically fetched." parser.add_option("--force", help=force_help, action="store_true", dest="force") -parser.add_option("--debug", help="show debug output", action="store_true", dest="debug") +parser.add_option("--debug", help="show debug output", + action="store_true", dest="debug") +parser.add_option("--skip-manifest", help="skip all manifest checks", + action="store_true", dest="skip_manifest") opts, pargs = parser.parse_args(args=sys.argv[1:]) @@ -152,6 +155,11 @@ if "test" in pargs: tmpsettings["FEATURES"] = " ".join(tmpsettings.features) tmpsettings.backup_changes("FEATURES") +if opts.skip_manifest: + tmpsettings["EBUILD_SKIP_MANIFEST"] = "1" + tmpsettings.backup_changes("EBUILD_SKIP_MANIFEST") + portage._doebuild_manifest_exempt_depend += 1 + build_dir_phases = set(["setup", "unpack", "compile", "test", "install", "package", "rpm"]) diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 6b35f1791..901edf924 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -3296,8 +3296,9 @@ def fetch(myuris, mysettings, listonly=0, fetchonly=0, locks_in_subdir=".locks", if try_mirrors: mymirrors += [x.rstrip("/") for x in mysettings["GENTOO_MIRRORS"].split() if x] + skip_manifest = mysettings.get("EBUILD_SKIP_MANIFEST") == "1" pkgdir = mysettings.get("O") - if pkgdir is not None: + if not (pkgdir is None or skip_manifest): mydigests = Manifest( pkgdir, mysettings["DISTDIR"]).getTypeDigests("DIST") else: @@ -4063,6 +4064,8 @@ def digestcheck(myfiles, mysettings, strict=0, justmanifest=0): """Verifies checksums. Assumes all files have been downloaded. DEPRECATED: this is now only a compability wrapper for portage.manifest.Manifest().""" + if mysettings.get("EBUILD_SKIP_MANIFEST") == "1": + return 1 pkgdir = mysettings["O"] manifest_path = os.path.join(pkgdir, "Manifest") if not os.path.exists(manifest_path): -- cgit v1.2.3-1-g7c22