aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'portage_with_autodep/bin/quickpkg')
-rwxr-xr-xportage_with_autodep/bin/quickpkg61
1 files changed, 30 insertions, 31 deletions
diff --git a/portage_with_autodep/bin/quickpkg b/portage_with_autodep/bin/quickpkg
index d908c03..cf5800c 100755
--- a/portage_with_autodep/bin/quickpkg
+++ b/portage_with_autodep/bin/quickpkg
@@ -1,33 +1,31 @@
#!/usr/bin/python
-# Copyright 1999-2010 Gentoo Foundation
+# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
from __future__ import print_function
import errno
import math
-import optparse
import signal
import sys
import tarfile
-try:
- import portage
-except ImportError:
- from os import path as osp
- sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
- import portage
-
+from os import path as osp
+pym_path = osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym")
+sys.path.insert(0, pym_path)
+import portage
+portage._internal_caller = True
from portage import os
from portage import xpak
from portage.dbapi.dep_expand import dep_expand
-from portage.dep import Atom, extended_cp_match, use_reduce
+from portage.dep import Atom, use_reduce
from portage.exception import (AmbiguousPackageName, InvalidAtom, InvalidData,
InvalidDependString, PackageSetNotFound, PermissionDenied)
from portage.util import ConfigProtect, ensure_dirs, shlex_split
from portage.dbapi.vartree import dblink, tar_contents
from portage.checksum import perform_md5
from portage._sets import load_default_config, SETPREFIX
+from portage.util._argparse import ArgumentParser
def quickpkg_atom(options, infos, arg, eout):
settings = portage.settings
@@ -68,11 +66,14 @@ def quickpkg_atom(options, infos, arg, eout):
bintree.prevent_collision(cpv)
dblnk = vardb._dblink(cpv)
have_lock = False
- try:
- dblnk.lockdb()
- have_lock = True
- except PermissionDenied:
- pass
+
+ if "__PORTAGE_INHERIT_VARDB_LOCK" not in settings:
+ try:
+ dblnk.lockdb()
+ have_lock = True
+ except PermissionDenied:
+ pass
+
try:
if not dblnk.exists():
# unmerged by a concurrent process
@@ -201,16 +202,15 @@ def quickpkg_extended_atom(options, infos, atom, eout):
atoms.append(cpv_atom)
continue
- if not extended_cp_match(atom.cp, cpv_atom.cp):
+ if not portage.match_from_list(atom, [cpv]):
continue
if require_metadata:
- slot, repo = vardb.aux_get(cpv, ["SLOT", "repository"])
-
- if atom.slot and atom.slot != slot:
+ try:
+ cpv = vardb._pkg_str(cpv, atom.repo)
+ except (KeyError, InvalidData):
continue
-
- if atom.repo and atom.repo != repo:
+ if not portage.match_from_list(atom, [cpv]):
continue
atoms.append(cpv_atom)
@@ -289,29 +289,28 @@ def quickpkg_main(options, args, eout):
if __name__ == "__main__":
usage = "quickpkg [options] <list of package atoms or package sets>"
- parser = optparse.OptionParser(usage=usage)
- parser.add_option("--umask",
+ parser = ArgumentParser(usage=usage)
+ parser.add_argument("--umask",
default="0077",
help="umask used during package creation (default is 0077)")
- parser.add_option("--ignore-default-opts",
+ parser.add_argument("--ignore-default-opts",
action="store_true",
help="do not use the QUICKPKG_DEFAULT_OPTS environment variable")
- parser.add_option("--include-config",
- type="choice",
+ parser.add_argument("--include-config",
choices=["y","n"],
default="n",
metavar="<y|n>",
help="include all files protected by CONFIG_PROTECT (as a security precaution, default is 'n')")
- parser.add_option("--include-unmodified-config",
- type="choice",
+ parser.add_argument("--include-unmodified-config",
choices=["y","n"],
default="n",
metavar="<y|n>",
help="include files protected by CONFIG_PROTECT that have not been modified since installation (as a security precaution, default is 'n')")
- options, args = parser.parse_args(sys.argv[1:])
+ options, args = parser.parse_known_args(sys.argv[1:])
if not options.ignore_default_opts:
- default_opts = portage.settings.get("QUICKPKG_DEFAULT_OPTS","").split()
- options, args = parser.parse_args(default_opts + sys.argv[1:])
+ default_opts = shlex_split(
+ portage.settings.get("QUICKPKG_DEFAULT_OPTS", ""))
+ options, args = parser.parse_known_args(default_opts + sys.argv[1:])
if not args:
parser.error("no packages atoms given")
try: