Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 294719 | Differences between
and this patch

Collapse All | Expand All

(-)a/man/emerge.1 (-2 / +3 lines)
Lines 712-720 allowed to be broken when satisfying dependencies of other packages. Link Here
712
Broken dependencies of this sort will invalidate assumptions that make
712
Broken dependencies of this sort will invalidate assumptions that make
713
it possible for \fB\-\-deep\fR to be disabled by default.
713
it possible for \fB\-\-deep\fR to be disabled by default.
714
.TP
714
.TP
715
.BR "\-\-onlydeps " (\fB\-o\fR)
715
.BR "\-\-onlydeps[=minimal] " (\fB\-o\fR)
716
Only merge (or pretend to merge) the dependencies of the packages
716
Only merge (or pretend to merge) the dependencies of the packages
717
specified, not the packages themselves.
717
specified, not the packages themselves.  If the \fBminimal\fR argument
718
is given then do not merge run time dependencies.
718
.TP
719
.TP
719
.BR "\-\-package\-moves [ y | n ]"
720
.BR "\-\-package\-moves [ y | n ]"
720
Perform package moves when necessary. This option is enabled
721
Perform package moves when necessary. This option is enabled
(-)a/pym/_emerge/depgraph.py (-3 / +4 lines)
Lines 2995-3001 class depgraph(object): Link Here
2995
			use_enabled.add("test")
2995
			use_enabled.add("test")
2996
2996
2997
		if not pkg.built and \
2997
		if not pkg.built and \
2998
			"--buildpkgonly" in self._frozen_config.myopts and \
2998
			("--buildpkgonly" in self._frozen_config.myopts or \
2999
			 pkg.onlydeps == "minimal") and \
2999
			"deep" not in self._dynamic_config.myparams:
3000
			"deep" not in self._dynamic_config.myparams:
3000
			edepend["RDEPEND"] = ""
3001
			edepend["RDEPEND"] = ""
3001
			edepend["PDEPEND"] = ""
3002
			edepend["PDEPEND"] = ""
Lines 3637-3643 class depgraph(object): Link Here
3637
		bindb = self._frozen_config.trees[eroot]["bintree"].dbapi
3638
		bindb = self._frozen_config.trees[eroot]["bintree"].dbapi
3638
		pkgsettings = self._frozen_config.pkgsettings[eroot]
3639
		pkgsettings = self._frozen_config.pkgsettings[eroot]
3639
		args = []
3640
		args = []
3640
		onlydeps = "--onlydeps" in self._frozen_config.myopts
3641
		onlydeps = self._frozen_config.myopts.get("--onlydeps")
3641
		lookup_owners = []
3642
		lookup_owners = []
3642
		for x in myfiles:
3643
		for x in myfiles:
3643
			ext = os.path.splitext(x)[1]
3644
			ext = os.path.splitext(x)[1]
Lines 3987-3993 class depgraph(object): Link Here
3987
		call self._creategraph to process theier deps and return
3988
		call self._creategraph to process theier deps and return
3988
		a favorite list."""
3989
		a favorite list."""
3989
		debug = "--debug" in self._frozen_config.myopts
3990
		debug = "--debug" in self._frozen_config.myopts
3990
		onlydeps = "--onlydeps" in self._frozen_config.myopts
3991
		onlydeps = self._frozen_config.myopts.get("--onlydeps")
3991
		myroot = self._frozen_config.target_root
3992
		myroot = self._frozen_config.target_root
3992
		pkgsettings = self._frozen_config.pkgsettings[myroot]
3993
		pkgsettings = self._frozen_config.pkgsettings[myroot]
3993
		pprovideddict = pkgsettings.pprovideddict
3994
		pprovideddict = pkgsettings.pprovideddict
(-)a/pym/_emerge/main.py (-1 / +12 lines)
Lines 42-48 options=[ Link Here
42
"--newuse",
42
"--newuse",
43
"--nodeps",       "--noreplace",
43
"--nodeps",       "--noreplace",
44
"--nospinner",    "--oneshot",
44
"--nospinner",    "--oneshot",
45
"--onlydeps",     "--pretend",
45
"--pretend",
46
"--quiet-repo-display",
46
"--quiet-repo-display",
47
"--quiet-unmerge-warn",
47
"--quiet-unmerge-warn",
48
"--resume",
48
"--resume",
Lines 147-152 def insert_optional_args(args): Link Here
147
		'--jobs'       : valid_integers,
147
		'--jobs'       : valid_integers,
148
		'--keep-going'           : y_or_n,
148
		'--keep-going'           : y_or_n,
149
		'--load-average'         : valid_floats,
149
		'--load-average'         : valid_floats,
150
		'--onlydeps'             : ('minimal',),
150
		'--package-moves'        : y_or_n,
151
		'--package-moves'        : y_or_n,
151
		'--quiet'                : y_or_n,
152
		'--quiet'                : y_or_n,
152
		'--quiet-build'          : y_or_n,
153
		'--quiet-build'          : y_or_n,
Lines 559-564 def parse_opts(tmpcmdline, silent=False): Link Here
559
			"action" : "append",
560
			"action" : "append",
560
		},
561
		},
561
562
563
		"--onlydeps": {
564
			"help"    : "modify interpretation of depedencies",
565
			"choices" :("True", "minimal")
566
		},
567
562
		"--rebuild-exclude": {
568
		"--rebuild-exclude": {
563
			"help"   :"A space separated list of package names or slot atoms. " + \
569
			"help"   :"A space separated list of package names or slot atoms. " + \
564
				"Emerge will not rebuild these packages due to the " + \
570
				"Emerge will not rebuild these packages due to the " + \
Lines 890-895 def parse_opts(tmpcmdline, silent=False): Link Here
890
	else:
896
	else:
891
		myoptions.keep_going = None
897
		myoptions.keep_going = None
892
898
899
	if myoptions.onlydeps in true_y:
900
		myoptions.onlydeps = True
901
	elif myoptions.onlydeps is False:
902
		myoptions.onlydeps = None
903
893
	if myoptions.package_moves in true_y:
904
	if myoptions.package_moves in true_y:
894
		myoptions.package_moves = True
905
		myoptions.package_moves = True
895
906
(-)a/pym/portage/tests/resolver/test_onlydeps_minimal.py (-1 / +45 lines)
Line 0 Link Here
0
- 
1
# Copyright 2017 Gentoo Foundation
2
# Distributed under the terms of the GNU General Public License v2
3
4
from portage.tests import TestCase
5
from portage.tests.resolver.ResolverPlayground import ResolverPlayground, ResolverPlaygroundTestCase
6
7
class OnlydepsMinimalTestCase(TestCase):
8
9
	def testOnlydepsMinimal(self):
10
		ebuilds = {
11
			"dev-libs/A-1": { "DEPEND": "dev-libs/B",
12
			                  "RDEPEND": "dev-libs/C",
13
			                  "PDEPEND": "dev-libs/D" },
14
			"dev-libs/B-1": { },
15
			"dev-libs/C-1": { },
16
			"dev-libs/D-1": { },
17
			}
18
		installed = {
19
		}
20
21
		test_cases = (
22
			ResolverPlaygroundTestCase(
23
				["dev-libs/A"],
24
				all_permutations = True,
25
				success = True,
26
				options = { "--onlydeps": True },
27
				mergelist = ["dev-libs/B-1",
28
				             "dev-libs/C-1",
29
				             "dev-libs/D-1"]),
30
			ResolverPlaygroundTestCase(
31
				["dev-libs/A"],
32
				all_permutations = True,
33
				success = True,
34
				options = { "--onlydeps": "minimal" },
35
				mergelist = ["dev-libs/B-1"]),
36
			)
37
38
		playground = ResolverPlayground(ebuilds=ebuilds,
39
			installed=installed, debug=False)
40
		try:
41
			for test_case in test_cases:
42
				playground.run_TestCase(test_case)
43
				self.assertEqual(test_case.test_success, True, test_case.fail_msg)
44
		finally:
45
			playground.cleanup()

Return to bug 294719