1 |
--- |
2 |
pym/_emerge/EbuildExecuter.py | 2 +- |
3 |
pym/portage/package/ebuild/doebuild.py | 32 +----------------------- |
4 |
pym/portage/package/ebuild/prepare_build_dirs.py | 31 +++++++++++++++++++++++ |
5 |
3 files changed, 33 insertions(+), 32 deletions(-) |
6 |
|
7 |
diff --git a/pym/_emerge/EbuildExecuter.py b/pym/_emerge/EbuildExecuter.py |
8 |
index 5587d4eb0..7a454c3e6 100644 |
9 |
--- a/pym/_emerge/EbuildExecuter.py |
10 |
+++ b/pym/_emerge/EbuildExecuter.py |
11 |
@@ -8,7 +8,7 @@ import portage |
12 |
from portage import os |
13 |
from portage.eapi import eapi_has_src_prepare_and_src_configure, \ |
14 |
eapi_exports_replace_vars |
15 |
-from portage.package.ebuild.doebuild import _prepare_fake_distdir |
16 |
+from portage.package.ebuild.prepare_build_dirs import _prepare_fake_distdir |
17 |
|
18 |
class EbuildExecuter(CompositeTask): |
19 |
|
20 |
diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py |
21 |
index e7db54bcf..15e4abb48 100644 |
22 |
--- a/pym/portage/package/ebuild/doebuild.py |
23 |
+++ b/pym/portage/package/ebuild/doebuild.py |
24 |
@@ -31,6 +31,7 @@ portage.proxy.lazyimport.lazyimport(globals(), |
25 |
'portage.package.ebuild.digestcheck:digestcheck', |
26 |
'portage.package.ebuild.digestgen:digestgen', |
27 |
'portage.package.ebuild.fetch:fetch', |
28 |
+ 'portage.package.ebuild.prepare_build_dirs:_prepare_fake_distdir', |
29 |
'portage.package.ebuild._ipc.QueryCommand:QueryCommand', |
30 |
'portage.dep._slot_operator:evaluate_slot_operator_equal_deps', |
31 |
'portage.package.ebuild._spawn_nofetch:spawn_nofetch', |
32 |
@@ -1307,37 +1308,6 @@ def _prepare_env_file(settings): |
33 |
env_extractor.wait() |
34 |
return env_extractor.returncode |
35 |
|
36 |
-def _prepare_fake_distdir(settings, alist): |
37 |
- orig_distdir = settings["DISTDIR"] |
38 |
- settings["PORTAGE_ACTUAL_DISTDIR"] = orig_distdir |
39 |
- edpath = settings["DISTDIR"] = \ |
40 |
- os.path.join(settings["PORTAGE_BUILDDIR"], "distdir") |
41 |
- portage.util.ensure_dirs(edpath, gid=portage_gid, mode=0o755) |
42 |
- |
43 |
- # Remove any unexpected files or directories. |
44 |
- for x in os.listdir(edpath): |
45 |
- symlink_path = os.path.join(edpath, x) |
46 |
- st = os.lstat(symlink_path) |
47 |
- if x in alist and stat.S_ISLNK(st.st_mode): |
48 |
- continue |
49 |
- if stat.S_ISDIR(st.st_mode): |
50 |
- shutil.rmtree(symlink_path) |
51 |
- else: |
52 |
- os.unlink(symlink_path) |
53 |
- |
54 |
- # Check for existing symlinks and recreate if necessary. |
55 |
- for x in alist: |
56 |
- symlink_path = os.path.join(edpath, x) |
57 |
- target = os.path.join(orig_distdir, x) |
58 |
- try: |
59 |
- link_target = os.readlink(symlink_path) |
60 |
- except OSError: |
61 |
- os.symlink(target, symlink_path) |
62 |
- else: |
63 |
- if link_target != target: |
64 |
- os.unlink(symlink_path) |
65 |
- os.symlink(target, symlink_path) |
66 |
- |
67 |
def _spawn_actionmap(settings): |
68 |
features = settings.features |
69 |
restrict = settings["PORTAGE_RESTRICT"].split() |
70 |
diff --git a/pym/portage/package/ebuild/prepare_build_dirs.py b/pym/portage/package/ebuild/prepare_build_dirs.py |
71 |
index e3ae318bd..0fa43ba59 100644 |
72 |
--- a/pym/portage/package/ebuild/prepare_build_dirs.py |
73 |
+++ b/pym/portage/package/ebuild/prepare_build_dirs.py |
74 |
@@ -409,3 +409,34 @@ def _prepare_fake_filesdir(settings): |
75 |
if link_target != real_filesdir: |
76 |
os.unlink(symlink_path) |
77 |
os.symlink(real_filesdir, symlink_path) |
78 |
+ |
79 |
+def _prepare_fake_distdir(settings, alist): |
80 |
+ orig_distdir = settings["DISTDIR"] |
81 |
+ settings["PORTAGE_ACTUAL_DISTDIR"] = orig_distdir |
82 |
+ edpath = settings["DISTDIR"] = \ |
83 |
+ os.path.join(settings["PORTAGE_BUILDDIR"], "distdir") |
84 |
+ portage.util.ensure_dirs(edpath, gid=portage_gid, mode=0o755) |
85 |
+ |
86 |
+ # Remove any unexpected files or directories. |
87 |
+ for x in os.listdir(edpath): |
88 |
+ symlink_path = os.path.join(edpath, x) |
89 |
+ st = os.lstat(symlink_path) |
90 |
+ if x in alist and stat.S_ISLNK(st.st_mode): |
91 |
+ continue |
92 |
+ if stat.S_ISDIR(st.st_mode): |
93 |
+ shutil.rmtree(symlink_path) |
94 |
+ else: |
95 |
+ os.unlink(symlink_path) |
96 |
+ |
97 |
+ # Check for existing symlinks and recreate if necessary. |
98 |
+ for x in alist: |
99 |
+ symlink_path = os.path.join(edpath, x) |
100 |
+ target = os.path.join(orig_distdir, x) |
101 |
+ try: |
102 |
+ link_target = os.readlink(symlink_path) |
103 |
+ except OSError: |
104 |
+ os.symlink(target, symlink_path) |
105 |
+ else: |
106 |
+ if link_target != target: |
107 |
+ os.unlink(symlink_path) |
108 |
+ os.symlink(target, symlink_path) |
109 |
-- |
110 |
2.12.0 |