Gentoo Archives: gentoo-commits

From: Fabian Groffen <grobian@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:prefix commit in: /
Date: Thu, 22 Dec 2011 09:51:48
Message-Id: 80319ff9c03b94303c4df153dc1f1de7462e5542.grobian@gentoo
1 commit: 80319ff9c03b94303c4df153dc1f1de7462e5542
2 Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
3 AuthorDate: Thu Dec 22 09:47:11 2011 +0000
4 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
5 CommitDate: Thu Dec 22 09:47:11 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=80319ff9
7
8 Merge remote-tracking branch 'overlays-gentoo-org/master' into prefix
9
10 Conflicts:
11 bin/ebuild-helpers/prepstrip
12 pym/portage/data.py
13
14
15 bin/ebuild-helpers/prepstrip | 24 +++----
16 bin/misc-functions.sh | 49 +++++++++++-
17 bin/phase-functions.sh | 8 ++-
18 cnf/make.conf | 6 ++
19 cnf/make.conf.ia64.diff | 23 +-----
20 cnf/make.conf.s390.diff | 23 +-----
21 cnf/make.globals | 4 +-
22 doc/package/ebuild.docbook | 1 +
23 doc/package/ebuild/eapi/4-python.docbook | 49 ++++++++++++
24 doc/portage.docbook | 1 +
25 man/ebuild.5 | 9 ++
26 man/emerge.1 | 4 +-
27 man/make.conf.5 | 4 +
28 pym/_emerge/MergeListItem.py | 2 +-
29 pym/_emerge/PackageMerge.py | 2 +-
30 pym/_emerge/Scheduler.py | 8 +-
31 pym/_emerge/depgraph.py | 10 +-
32 pym/_emerge/main.py | 5 +-
33 pym/_emerge/resolver/output.py | 2 +-
34 pym/_emerge/resolver/slot_collision.py | 2 +-
35 pym/_emerge/search.py | 2 +-
36 pym/portage/data.py | 55 ++++++++++----
37 pym/portage/dbapi/vartree.py | 125 ++++++++++++++++++++++++-----
38 pym/portage/eclass_cache.py | 2 +
39 pym/portage/package/ebuild/doebuild.py | 4 +
40 25 files changed, 313 insertions(+), 111 deletions(-)
41
42 diff --cc bin/misc-functions.sh
43 index 1e3785c,c74b4a4..8b58bda
44 mode 100644,100755..100644
45 --- a/bin/misc-functions.sh
46 +++ b/bin/misc-functions.sh
47 diff --cc bin/phase-functions.sh
48 index e62a9ad,7407aba..493bb54
49 --- a/bin/phase-functions.sh
50 +++ b/bin/phase-functions.sh
51 @@@ -128,9 -132,11 +132,11 @@@ filter_readonly_variables()
52 ${PORTAGE_SAVED_READONLY_VARS}
53 ${PORTAGE_MUTABLE_FILTERED_VARS}
54 "
55 + elif ! has --allow-extra-vars $* ; then
56 + filtered_vars+=" ${binpkg_untrusted_vars}"
57 fi
58
59 - "${PORTAGE_PYTHON:-/usr/bin/python}" "${PORTAGE_BIN_PATH}"/filter-bash-environment.py "${filtered_vars}" || die "filter-bash-environment.py failed"
60 + "${PORTAGE_PYTHON:-@PREFIX_PORTAGE_PYTHON@}" "${PORTAGE_BIN_PATH}"/filter-bash-environment.py "${filtered_vars}" || die "filter-bash-environment.py failed"
61 }
62
63 # @FUNCTION: preprocess_ebuild_env
64 diff --cc pym/portage/data.py
65 index 1351c7f,c4d967a..a136093
66 --- a/pym/portage/data.py
67 +++ b/pym/portage/data.py
68 @@@ -156,26 -141,46 +156,51 @@@ def _get_global(k)
69
70 # Avoid instantiating portage.settings when the desired
71 # variable is set in os.environ.
72 - elif k == '_portage_grpname':
73 + elif k in ('_portage_grpname', '_portage_username'):
74 v = None
75 - if 'PORTAGE_GRPNAME' in os.environ:
76 - v = os.environ['PORTAGE_GRPNAME']
77 - elif hasattr(portage, 'settings'):
78 - v = portage.settings.get('PORTAGE_GRPNAME')
79 - if v is None:
80 - # PREFIX LOCAL: use var iso hardwired 'portage'
81 - v = PORTAGE_GROUPNAME
82 - # END PREFIX LOCAL
83 - elif k == '_portage_username':
84 - v = None
85 - if 'PORTAGE_USERNAME' in os.environ:
86 - v = os.environ['PORTAGE_USERNAME']
87 + if k == '_portage_grpname':
88 + env_key = 'PORTAGE_GRPNAME'
89 + else:
90 + env_key = 'PORTAGE_USERNAME'
91 +
92 + if env_key in os.environ:
93 + v = os.environ[env_key]
94 elif hasattr(portage, 'settings'):
95 - v = portage.settings.get('PORTAGE_USERNAME')
96 + v = portage.settings.get(env_key)
97 + elif portage.const.EPREFIX:
98 + # For prefix environments, default to the UID and GID of
99 + # the top-level EROOT directory. The config class has
100 + # equivalent code, but we also need to do it here if
101 + # _disable_legacy_globals() has been called.
102 + eroot = os.path.join(os.environ.get('ROOT', os.sep),
103 + portage.const.EPREFIX.lstrip(os.sep))
104 + try:
105 + eroot_st = os.stat(eroot)
106 + except OSError:
107 + pass
108 + else:
109 + if k == '_portage_grpname':
110 + try:
111 + grp_struct = grp.getgrgid(eroot_st.st_gid)
112 + except KeyError:
113 + pass
114 + else:
115 + v = grp_struct.gr_name
116 + else:
117 + try:
118 + pwd_struct = pwd.getpwuid(eroot_st.st_uid)
119 + except KeyError:
120 + pass
121 + else:
122 + v = pwd_struct.pw_name
123 +
124 if v is None:
125 - v = 'portage'
126 + # PREFIX LOCAL: use var iso hardwired 'portage'
127 - v = PORTAGE_USERNAME
128 ++ if k == '_portage_grpname':
129 ++ v = PORTAGE_GRPNAME
130 ++ else:
131 ++ v = PORTAGE_USERNAME
132 + # END PREFIX LOCAL
133 else:
134 raise AssertionError('unknown name: %s' % k)
135
136 diff --cc pym/portage/dbapi/vartree.py
137 index edc3983,d93d3c2..4745743
138 --- a/pym/portage/dbapi/vartree.py
139 +++ b/pym/portage/dbapi/vartree.py
140 @@@ -30,11 -30,9 +30,12 @@@ portage.proxy.lazyimport.lazyimport(glo
141 'portage.util.movefile:movefile',
142 'portage.util._dyn_libs.PreservedLibsRegistry:PreservedLibsRegistry',
143 'portage.util._dyn_libs.LinkageMapELF:LinkageMapELF@LinkageMap',
144 + 'portage.util._dyn_libs.LinkageMapMachO:LinkageMapMachO',
145 + 'portage.util._dyn_libs.LinkageMapPeCoff:LinkageMapPeCoff',
146 + 'portage.util._dyn_libs.LinkageMapXCoff:LinkageMapXCoff',
147 'portage.versions:best,catpkgsplit,catsplit,cpv_getkey,pkgcmp,' + \
148 '_pkgsplit@pkgsplit',
149 + 'subprocess',
150 'tarfile',
151 )