1 |
commit: b74e878839a2b1e8d6148776d5a44019d8fffbc1 |
2 |
Author: Thomas Sachau <tommy <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed May 23 12:22:27 2018 +0000 |
4 |
Commit: Thomas Sachau <tommy <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed May 23 12:22:27 2018 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=b74e8788 |
7 |
|
8 |
Merge portage-2.3.38 |
9 |
|
10 |
.travis.yml | 2 + |
11 |
NEWS | 9 + |
12 |
RELEASE-NOTES | 92 +++ |
13 |
bin/eapi.sh | 18 +- |
14 |
bin/ebuild | 8 +- |
15 |
bin/ebuild-helpers/ecompressdir | 4 +- |
16 |
bin/ebuild-ipc.py | 55 +- |
17 |
bin/ebuild.sh | 3 + |
18 |
bin/egencache | 5 +- |
19 |
bin/emaint | 3 + |
20 |
bin/emerge | 5 + |
21 |
bin/emirrordist | 6 +- |
22 |
bin/estrip | 3 +- |
23 |
bin/etc-update | 31 +- |
24 |
bin/install-qa-check.d/10ignored-flags | 2 +- |
25 |
bin/misc-functions.sh | 2 +- |
26 |
bin/phase-functions.sh | 9 + |
27 |
bin/phase-helpers.sh | 159 ++--- |
28 |
bin/portageq | 6 +- |
29 |
bin/quickpkg | 14 +- |
30 |
cnf/repos.conf | 3 +- |
31 |
man/ebuild.5 | 6 + |
32 |
man/emerge.1 | 38 +- |
33 |
man/portage.5 | 10 +- |
34 |
pym/_emerge/AbstractEbuildProcess.py | 97 ++- |
35 |
pym/_emerge/AbstractPollTask.py | 87 +-- |
36 |
pym/_emerge/AsynchronousLock.py | 76 +-- |
37 |
pym/_emerge/AsynchronousTask.py | 60 +- |
38 |
pym/_emerge/Binpkg.py | 78 ++- |
39 |
pym/_emerge/BinpkgExtractorAsync.py | 16 +- |
40 |
pym/_emerge/BinpkgFetcher.py | 104 ++- |
41 |
pym/_emerge/CompositeTask.py | 46 +- |
42 |
pym/_emerge/EbuildBuild.py | 99 ++- |
43 |
pym/_emerge/EbuildBuildDir.py | 172 +++-- |
44 |
pym/_emerge/EbuildFetcher.py | 135 +++- |
45 |
pym/_emerge/EbuildIpcDaemon.py | 28 +- |
46 |
pym/_emerge/EbuildMerge.py | 26 +- |
47 |
pym/_emerge/EbuildMetadataPhase.py | 55 +- |
48 |
pym/_emerge/EbuildPhase.py | 22 +- |
49 |
pym/_emerge/FifoIpcDaemon.py | 32 +- |
50 |
pym/_emerge/MetadataRegen.py | 14 +- |
51 |
pym/_emerge/Package.py | 54 +- |
52 |
pym/_emerge/PackageUninstall.py | 37 +- |
53 |
pym/_emerge/PipeReader.py | 42 +- |
54 |
pym/_emerge/Scheduler.py | 106 ++-- |
55 |
pym/_emerge/SpawnProcess.py | 23 +- |
56 |
pym/_emerge/SubProcess.py | 123 +--- |
57 |
pym/_emerge/actions.py | 53 +- |
58 |
pym/_emerge/create_world_atom.py | 6 +- |
59 |
pym/_emerge/depgraph.py | 33 +- |
60 |
pym/_emerge/main.py | 13 +- |
61 |
pym/_emerge/resolver/DbapiProvidesIndex.py | 3 +- |
62 |
pym/portage/__init__.py | 8 +- |
63 |
pym/portage/_emirrordist/FetchIterator.py | 323 ++++++---- |
64 |
pym/portage/_emirrordist/FetchTask.py | 2 +- |
65 |
pym/portage/_emirrordist/MirrorDistTask.py | 27 +- |
66 |
pym/portage/_legacy_globals.py | 3 +- |
67 |
pym/portage/const.py | 2 +- |
68 |
pym/portage/dbapi/IndexedVardb.py | 2 +- |
69 |
pym/portage/dbapi/_MergeProcess.py | 47 +- |
70 |
pym/portage/dbapi/__init__.py | 44 +- |
71 |
pym/portage/dbapi/bintree.py | 89 ++- |
72 |
pym/portage/dbapi/porttree.py | 153 ++++- |
73 |
pym/portage/dbapi/vartree.py | 10 +- |
74 |
pym/portage/dbapi/virtual.py | 4 +- |
75 |
pym/portage/eapi.py | 16 +- |
76 |
pym/portage/emaint/modules/binhost/binhost.py | 1 + |
77 |
pym/portage/exception.py | 3 + |
78 |
.../package/ebuild/_config/LocationsManager.py | 25 +- |
79 |
.../package/ebuild/_config/special_env_vars.py | 8 +- |
80 |
pym/portage/package/ebuild/_ipc/QueryCommand.py | 4 +- |
81 |
.../ebuild/_parallel_manifest/ManifestScheduler.py | 25 +- |
82 |
.../ebuild/_parallel_manifest/ManifestTask.py | 24 +- |
83 |
pym/portage/package/ebuild/config.py | 44 +- |
84 |
pym/portage/package/ebuild/doebuild.py | 30 +- |
85 |
pym/portage/package/ebuild/profile_iuse.py | 32 + |
86 |
pym/portage/process.py | 10 + |
87 |
pym/portage/sync/modules/rsync/rsync.py | 42 +- |
88 |
pym/portage/tests/__init__.py | 20 +- |
89 |
pym/portage/tests/dbapi/test_portdb_cache.py | 3 +- |
90 |
pym/portage/tests/ebuild/test_ipc_daemon.py | 6 +- |
91 |
pym/portage/tests/emerge/test_simple.py | 51 +- |
92 |
pym/portage/tests/locks/test_asynchronous_lock.py | 22 +- |
93 |
pym/portage/tests/resolver/ResolverPlayground.py | 10 + |
94 |
pym/portage/tests/resolver/test_autounmask.py | 48 +- |
95 |
pym/portage/tests/resolver/test_eapi.py | 2 +- |
96 |
pym/portage/tests/resolver/test_required_use.py | 6 +- |
97 |
pym/portage/tests/resolver/test_slot_collisions.py | 20 +- |
98 |
.../tests/resolver/test_slot_operator_rebuild.py | 45 +- |
99 |
pym/portage/tests/runTests.py | 6 +- |
100 |
.../util/futures/asyncio}/__init__.py | 0 |
101 |
.../{bin => util/futures/asyncio}/__test__.py | 0 |
102 |
.../util/futures/asyncio/test_child_watcher.py | 50 ++ |
103 |
.../futures/asyncio/test_event_loop_in_fork.py | 65 ++ |
104 |
.../tests/util/futures/asyncio/test_pipe_closed.py | 151 +++++ |
105 |
.../asyncio/test_policy_wrapper_recursion.py | 29 + |
106 |
.../futures/asyncio/test_run_until_complete.py | 34 + |
107 |
.../util/futures/asyncio/test_subprocess_exec.py | 236 +++++++ |
108 |
.../tests/util/futures/test_iter_completed.py | 40 +- |
109 |
pym/portage/tests/util/futures/test_retry.py | 177 ++++-- |
110 |
pym/portage/util/SlotObject.py | 9 +- |
111 |
pym/portage/util/_async/AsyncFunction.py | 7 +- |
112 |
pym/portage/util/_async/AsyncScheduler.py | 49 +- |
113 |
pym/portage/util/_async/AsyncTaskFuture.py | 4 +- |
114 |
pym/portage/util/_async/FileDigester.py | 7 +- |
115 |
pym/portage/util/_async/ForkProcess.py | 10 + |
116 |
pym/portage/util/_async/PipeLogger.py | 32 +- |
117 |
pym/portage/util/_async/PipeReaderBlockingIO.py | 16 +- |
118 |
pym/portage/util/_async/PopenProcess.py | 17 +- |
119 |
pym/portage/util/_async/SchedulerInterface.py | 34 +- |
120 |
pym/portage/util/_eventloop/EventLoop.py | 374 +++++++++-- |
121 |
pym/portage/util/_eventloop/GlibEventLoop.py | 23 - |
122 |
pym/portage/util/_eventloop/asyncio_event_loop.py | 85 +++ |
123 |
pym/portage/util/_eventloop/global_event_loop.py | 11 +- |
124 |
pym/portage/util/elf/constants.py | 4 +- |
125 |
pym/portage/util/futures/__init__.py | 8 + |
126 |
pym/portage/util/futures/_asyncio/__init__.py | 185 ++++++ |
127 |
.../util/futures/{wait.py => _asyncio/tasks.py} | 19 +- |
128 |
pym/portage/util/futures/events.py | 191 ++++++ |
129 |
pym/portage/util/futures/executor/fork.py | 6 +- |
130 |
pym/portage/util/futures/futures.py | 9 +- |
131 |
pym/portage/util/futures/iter_completed.py | 138 +++- |
132 |
pym/portage/util/futures/retry.py | 13 +- |
133 |
pym/portage/util/futures/transports.py | 90 +++ |
134 |
pym/portage/util/futures/unix_events.py | 705 +++++++++++++++++++++ |
135 |
pym/portage/versions.py | 6 +- |
136 |
repoman/bin/repoman | 3 + |
137 |
repoman/cnf/qa_data/qa_data.yaml | 2 +- |
138 |
repoman/man/repoman.1 | 2 +- |
139 |
.../modules/linechecks/assignment/assignment.py | 9 +- |
140 |
.../modules/linechecks/deprecated/inherit.py | 3 + |
141 |
.../repoman/modules/linechecks/quotes/quotes.py | 3 +- |
142 |
repoman/pym/repoman/modules/scan/fetch/fetches.py | 2 +- |
143 |
repoman/pym/repoman/modules/scan/module.py | 2 +- |
144 |
repoman/pym/repoman/tests/__init__.py | 3 + |
145 |
repoman/pym/repoman/tests/runTests.py | 6 +- |
146 |
repoman/setup.py | 3 +- |
147 |
setup.py | 5 +- |
148 |
138 files changed, 4789 insertions(+), 1438 deletions(-) |
149 |
|
150 |
diff --cc pym/_emerge/Package.py |
151 |
index 5d86c9635,a7ce00bc9..2be526471 |
152 |
--- a/pym/_emerge/Package.py |
153 |
+++ b/pym/_emerge/Package.py |
154 |
@@@ -82,24 -93,10 +93,16 @@@ class Package(Task) |
155 |
# sync metadata with validated repo (may be UNKNOWN_REPO) |
156 |
self._metadata['repository'] = self.cpv.repo |
157 |
|
158 |
- if eapi_attrs.iuse_effective: |
159 |
- implicit_match = self.root_config.settings._iuse_effective_match |
160 |
- if self.built: |
161 |
- implicit_match = functools.partial( |
162 |
- self._built_iuse_effective_match, |
163 |
- implicit_match, frozenset(self._metadata['USE'].split())) |
164 |
- else: |
165 |
- implicit_match = self.root_config.settings._iuse_implicit_match |
166 |
- iuse = self._metadata["IUSE"] |
167 |
+ implicit_match = db._iuse_implicit_cnstr(self.cpv, self._metadata) |
168 |
+ if 'force-multilib' in self.root_config.settings.features: |
169 |
+ if self.built is False: |
170 |
+ for multilib_abis in self.root_config.settings.get("MULTILIB_ABIS", '').split(): |
171 |
+ iuse += " multilib_abi_" + multilib_abis |
172 |
+ iuse += " abiwrapper" |
173 |
+ self._metadata["IUSE"] = iuse |
174 |
usealiases = self.root_config.settings._use_manager.getUseAliases(self) |
175 |
- self.iuse = self._iuse(self, iuse.split(), implicit_match, |
176 |
- usealiases, self.eapi) |
177 |
+ self.iuse = self._iuse(self, self._metadata["IUSE"].split(), |
178 |
+ implicit_match, usealiases, self.eapi) |
179 |
|
180 |
if (self.iuse.enabled or self.iuse.disabled) and \ |
181 |
not eapi_attrs.iuse_defaults: |
182 |
diff --cc pym/_emerge/actions.py |
183 |
index 966b4421b,70fb8d3b4..f53c33b46 |
184 |
--- a/pym/_emerge/actions.py |
185 |
+++ b/pym/_emerge/actions.py |
186 |
@@@ -2868,16 -2882,29 +2882,36 @@@ def run_action(emerge_config) |
187 |
"--usepkg", "--usepkgonly"): |
188 |
emerge_config.opts.pop(opt, None) |
189 |
|
190 |
+ # Populate the bintree with current --getbinpkg setting. |
191 |
+ # This needs to happen before: |
192 |
+ # * expand_set_arguments, in case any sets use the bintree |
193 |
+ # * adjust_configs and profile_check, in order to propagate settings |
194 |
+ # implicit IUSE and USE_EXPAND settings from the binhost(s) |
195 |
+ if (emerge_config.action in ('search', None) and |
196 |
+ '--usepkg' in emerge_config.opts): |
197 |
+ for mytrees in emerge_config.trees.values(): |
198 |
+ try: |
199 |
+ mytrees['bintree'].populate( |
200 |
+ getbinpkgs='--getbinpkg' in emerge_config.opts) |
201 |
+ except ParseError as e: |
202 |
+ writemsg('\n\n!!!%s.\nSee make.conf(5) for more info.\n' |
203 |
+ % (e,), noiselevel=-1) |
204 |
+ return 1 |
205 |
+ |
206 |
adjust_configs(emerge_config.opts, emerge_config.trees) |
207 |
+ |
208 |
+ if profile_check(emerge_config.trees, emerge_config.action) != os.EX_OK: |
209 |
+ return 1 |
210 |
+ |
211 |
apply_priorities(emerge_config.target_config.settings) |
212 |
|
213 |
+ if 'force-multilib' in emerge_config.target_config.settings.features: |
214 |
+ if emerge_config.target_config.settings.get("NO_AUTO_FLAG", "") is "": |
215 |
+ writemsg_level(bad("!!! Failed to find vars from extra profile") + "\n",level=logging.ERROR, noiselevel=-1) |
216 |
+ writemsg_level(bad("!!! Please make sure that you did follow the instructions and included the extra profile\n"),level=logging.ERROR, noiselevel=-1) |
217 |
+ writemsg_level(bad("!!! http://git.overlays.gentoo.org/gitweb/?p=proj/multilib-portage.git;a=blob;f=doc/portage-multilib-instructions\n"),level=logging.ERROR, noiselevel=-1) |
218 |
+ writemsg_level(bad("!!! has some basic instructions for the setup\n"),level=logging.ERROR, noiselevel=-1) |
219 |
+ return 1 |
220 |
if ("--autounmask-continue" in emerge_config.opts and |
221 |
emerge_config.opts.get("--autounmask") == "n"): |
222 |
writemsg_level( |