Gentoo Archives: gentoo-commits

From: "Zac Medico (zmedico)" <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in sys-apps/portage/files: portage-2.1.4.5.patch
Date: Thu, 09 Oct 2008 16:59:08
Message-Id: E1Knyqv-0005KV-OD@stork.gentoo.org
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