1 |
zmedico 08/10/09 16:59:05 |
2 |
|
3 |
Added: portage-2.1.4.5.patch |
4 |
Log: |
5 |
2.1.4.5 stable bump for security bug #239560 (insecure search path for |
6 |
python -c). This also fixes bugs #222091 (mysterious 'Argument list too |
7 |
long' errors), #239006 (dependency issues triggered by EAPI bump without |
8 |
revbump), and #239471 (EAPI 2 triggers InvalidDependString during --search). |
9 |
Bug #240304 tracks all bugs fixed since 2.1.4.4. |
10 |
(Portage version: 2.2_rc11_p11661/cvs/Linux 2.6.26-0911-x86-64 i686, RepoMan options: --force) |
11 |
|
12 |
Revision Changes Path |
13 |
1.1 sys-apps/portage/files/portage-2.1.4.5.patch |
14 |
|
15 |
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-apps/portage/files/portage-2.1.4.5.patch?rev=1.1&view=markup |
16 |
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/sys-apps/portage/files/portage-2.1.4.5.patch?rev=1.1&content-type=text/plain |
17 |
|
18 |
Index: portage-2.1.4.5.patch |
19 |
=================================================================== |
20 |
diff --git a/bin/ebuild.sh b/bin/ebuild.sh |
21 |
index 61f6e18..7fe126e 100755 |
22 |
--- a/bin/ebuild.sh |
23 |
+++ b/bin/ebuild.sh |
24 |
@@ -260,6 +260,12 @@ register_die_hook() { |
25 |
export EBUILD_DEATH_HOOKS="${EBUILD_DEATH_HOOKS} $*" |
26 |
} |
27 |
|
28 |
+# Ensure that $PWD is sane whenever possible. |
29 |
+if ! hasq "$EBUILD_PHASE" clean depend help ; then |
30 |
+ cd "$PORTAGE_BUILDDIR" || \ |
31 |
+ die "PORTAGE_BUILDDIR does not exist: '$PORTAGE_BUILDDIR'" |
32 |
+fi |
33 |
+ |
34 |
#if no perms are specified, dirs/files will have decent defaults |
35 |
#(not secretive, but not stupid) |
36 |
umask 022 |
37 |
diff --git a/bin/emerge b/bin/emerge |
38 |
index bef6f40..61bec13 100755 |
39 |
--- a/bin/emerge |
40 |
+++ b/bin/emerge |
41 |
@@ -634,13 +634,19 @@ class search: |
42 |
import portage_manifest as manifest |
43 |
mf = manifest.Manifest( |
44 |
pkgdir, self.settings["DISTDIR"]) |
45 |
- fetchlist = self.portdb.getfetchlist(mycpv, |
46 |
- mysettings=self.settings, all=True)[1] |
47 |
try: |
48 |
- mysum[0] = mf.getDistfilesSize(fetchlist) |
49 |
- except KeyError, e: |
50 |
- file_size_str = "Unknown (missing digest for %s)" % \ |
51 |
- str(e) |
52 |
+ fetchlist = self.portdb.getfetchlist(mycpv, |
53 |
+ mysettings=self.settings, all=True)[1] |
54 |
+ except portage_exception.InvalidDependString, e: |
55 |
+ file_size_str = "Unknown (%s)" % (e,) |
56 |
+ del e |
57 |
+ else: |
58 |
+ try: |
59 |
+ mysum[0] = mf.getDistfilesSize(fetchlist) |
60 |
+ except KeyError, e: |
61 |
+ file_size_str = "Unknown (missing " + \ |
62 |
+ "digest for %s)" % (e,) |
63 |
+ del e |
64 |
|
65 |
available = False |
66 |
for db in self._dbs: |
67 |
@@ -1083,7 +1089,7 @@ class FakeVartree(portage.vartree): |
68 |
self._aux_get = self.dbapi.aux_get |
69 |
self.dbapi.aux_get = self._aux_get_wrapper |
70 |
self._aux_get_history = set() |
71 |
- self._portdb_keys = ["DEPEND", "RDEPEND", "PDEPEND"] |
72 |
+ self._portdb_keys = ["EAPI", "DEPEND", "RDEPEND", "PDEPEND"] |
73 |
self._portdb = portdb |
74 |
self._global_updates = None |
75 |
|
76 |
@@ -1095,6 +1101,8 @@ class FakeVartree(portage.vartree): |
77 |
# Use the live ebuild metadata if possible. |
78 |
live_metadata = dict(izip(self._portdb_keys, |
79 |
self._portdb.aux_get(pkg, self._portdb_keys))) |
80 |
+ if not portage.eapi_is_supported(live_metadata["EAPI"]): |
81 |
+ raise KeyError(pkg) |
82 |
self.dbapi.aux_update(pkg, live_metadata) |
83 |
except (KeyError, portage_exception.PortageException): |
84 |
if self._global_updates is None: |
85 |
diff --git a/bin/filter-bash-environment.py b/bin/filter-bash-environment.py |
86 |
index 83b250b..a078f04 100755 |
87 |
--- a/bin/filter-bash-environment.py |
88 |
+++ b/bin/filter-bash-environment.py |
89 |
@@ -31,7 +31,7 @@ def filter_bash_environment(pattern, file_in, file_out): |
90 |
file_out.write(line) |
91 |
continue |
92 |
if pattern.match(line) is None: |
93 |
- file_out.write(line) |
94 |
+ file_out.write(line.replace("\1", "")) |
95 |
|
96 |
if __name__ == "__main__": |
97 |
description = "Filter out any lines that match a given PATTERN " + \ |
98 |
diff --git a/pym/portage.py b/pym/portage.py |
99 |
index b63105c..83228ba 100644 |
100 |
--- a/pym/portage.py |
101 |
+++ b/pym/portage.py |
102 |
@@ -4475,8 +4475,7 @@ def doebuild(myebuild, mydo, myroot, mysettings, debug=0, listonly=0, |
103 |
|
104 |
# Build directory creation isn't required for any of these. |
105 |
have_build_dirs = False |
106 |
- if mydo not in ("clean", "cleanrm", "digest", |
107 |
- "fetch", "help", "manifest"): |
108 |
+ if mydo not in ("clean", "cleanrm", "digest", "help", "manifest"): |
109 |
mystatus = prepare_build_dirs(myroot, mysettings, cleanup) |
110 |
if mystatus: |
111 |
return mystatus |