From mboxrd@z Thu Jan  1 00:00:00 1970
Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org)
	by finch.gentoo.org with esmtp (Exim 4.60)
	(envelope-from <gentoo-commits+bounces-322171-garchives=archives.gentoo.org@lists.gentoo.org>)
	id 1PvY4C-0003GO-Et
	for garchives@archives.gentoo.org; Fri, 04 Mar 2011 16:41:24 +0000
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 88C061C008;
	Fri,  4 Mar 2011 16:41:17 +0000 (UTC)
Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183])
	by pigeon.gentoo.org (Postfix) with ESMTP id 58F191C008
	for <gentoo-commits@lists.gentoo.org>; Fri,  4 Mar 2011 16:41:17 +0000 (UTC)
Received: from pelican.gentoo.org (unknown [66.219.59.40])
	(using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits))
	(No client certificate requested)
	by smtp.gentoo.org (Postfix) with ESMTPS id DA54F1BC125
	for <gentoo-commits@lists.gentoo.org>; Fri,  4 Mar 2011 16:41:16 +0000 (UTC)
Received: from localhost.localdomain (localhost [127.0.0.1])
	by pelican.gentoo.org (Postfix) with ESMTP id 46D428006A
	for <gentoo-commits@lists.gentoo.org>; Fri,  4 Mar 2011 16:41:16 +0000 (UTC)
From: "Zac Medico" <zmedico@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Content-type: text/plain; charset=UTF-8
Reply-To: gentoo-dev@lists.gentoo.org, "Zac Medico" <zmedico@gentoo.org>
Message-ID: <233c2efb6d86d9ac603ba224b71c0b65a64118f7.zmedico@gentoo>
Subject: [gentoo-commits] proj/portage:master commit in: pym/portage/package/ebuild/
X-VCS-Repository: proj/portage
X-VCS-Files: pym/portage/package/ebuild/config.py
X-VCS-Directories: pym/portage/package/ebuild/
X-VCS-Committer: zmedico
X-VCS-Committer-Name: Zac Medico
X-VCS-Revision: 233c2efb6d86d9ac603ba224b71c0b65a64118f7
Date: Fri,  4 Mar 2011 16:41:16 +0000 (UTC)
Precedence: bulk
List-Post: <mailto:gentoo-commits@lists.gentoo.org>
List-Help: <mailto:gentoo-commits+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-commits+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-commits+subscribe@lists.gentoo.org>
List-Id: Gentoo Linux mail <gentoo-commits.gentoo.org>
X-BeenThere: gentoo-commits@lists.gentoo.org
Content-Transfer-Encoding: quoted-printable
X-Archives-Salt: 
X-Archives-Hash: a0c91fa45ce026afe6a731467b8b79e5

commit:     233c2efb6d86d9ac603ba224b71c0b65a64118f7
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Fri Mar  4 16:39:53 2011 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Fri Mar  4 16:39:53 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=3Dproj/portage.git;a=
=3Dcommit;h=3D233c2efb

config: quote overlays containing spaces

This will fix bug #357297.

---
 pym/portage/package/ebuild/config.py |   25 +++++++++++++------------
 1 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/pym/portage/package/ebuild/config.py b/pym/portage/package/e=
build/config.py
index 1f943e4..82d660d 100644
--- a/pym/portage/package/ebuild/config.py
+++ b/pym/portage/package/ebuild/config.py
@@ -482,27 +482,28 @@ class config(object):
 				main_repo =3D main_repo.user_location
 				self["PORTDIR"] =3D main_repo
 				self.backup_changes("PORTDIR")
+
+			# repoman controls PORTDIR_OVERLAY via the environment, so no
+			# special cases are needed here.
 			portdir_overlay =3D list(self.repositories.repoUserLocationList())
 			if self["PORTDIR"] in portdir_overlay:
 				portdir_overlay.remove(self["PORTDIR"])
-			self["PORTDIR_OVERLAY"] =3D " ".join(portdir_overlay)
-			self.backup_changes("PORTDIR_OVERLAY")
-
-			""" repoman controls PORTDIR_OVERLAY via the environment, so no
-			special cases are needed here."""
=20
-			overlays =3D shlex_split(self.get('PORTDIR_OVERLAY', ''))
-			if overlays:
-				new_ov =3D []
-				for ov in overlays:
+			new_ov =3D []
+			if portdir_overlay:
+				whitespace_re =3D re.compile(r"\s")
+				for ov in portdir_overlay:
 					ov =3D normalize_path(ov)
 					if os.path.isdir(ov):
+						if whitespace_re.search(ov) is not None:
+							ov =3D portage._shell_quote(ov)
 						new_ov.append(ov)
 					else:
 						writemsg(_("!!! Invalid PORTDIR_OVERLAY"
 							" (not a dir): '%s'\n") % ov, noiselevel=3D-1)
-				self["PORTDIR_OVERLAY"] =3D " ".join(new_ov)
-				self.backup_changes("PORTDIR_OVERLAY")
+
+			self["PORTDIR_OVERLAY"] =3D " ".join(new_ov)
+			self.backup_changes("PORTDIR_OVERLAY")
=20
 			locations_manager.set_port_dirs(self["PORTDIR"], self["PORTDIR_OVERLA=
Y"])
=20
@@ -2130,7 +2131,7 @@ class config(object):
 	def thirdpartymirrors(self):
 		if getattr(self, "_thirdpartymirrors", None) is None:
 			profileroots =3D [os.path.join(self["PORTDIR"], "profiles")]
-			for x in self["PORTDIR_OVERLAY"].split():
+			for x in shlex_split(self.get("PORTDIR_OVERLAY", "")):
 				profileroots.insert(0, os.path.join(x, "profiles"))
 			thirdparty_lists =3D [grabdict(os.path.join(x, "thirdpartymirrors")) =
for x in profileroots]
 			self._thirdpartymirrors =3D stack_dictlist(thirdparty_lists, incremen=
tal=3DTrue)