From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <gentoo-python+bounces-187-garchives=archives.gentoo.org@lists.gentoo.org>
Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80])
	by finch.gentoo.org (Postfix) with ESMTP id 05EA2138010
	for <garchives@archives.gentoo.org>; Sun, 28 Oct 2012 15:54:38 +0000 (UTC)
Received: from pigeon.gentoo.org (localhost [127.0.0.1])
	by pigeon.gentoo.org (Postfix) with SMTP id 7C8C4E03E0;
	Sun, 28 Oct 2012 15:54:33 +0000 (UTC)
Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183])
	by pigeon.gentoo.org (Postfix) with ESMTP id EEFFBE03E0
	for <gentoo-python@lists.gentoo.org>; Sun, 28 Oct 2012 15:54:32 +0000 (UTC)
Received: from pomiocik.lan (213-238-96-169.adsl.inetia.pl [213.238.96.169])
	(using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits))
	(No client certificate requested)
	(Authenticated sender: mgorny)
	by smtp.gentoo.org (Postfix) with ESMTPSA id 116F533D887;
	Sun, 28 Oct 2012 15:54:30 +0000 (UTC)
Date: Sun, 28 Oct 2012 16:55:18 +0100
From: =?UTF-8?B?TWljaGHFgiBHw7Nybnk=?= <mgorny@gentoo.org>
To: =?UTF-8?B?TWljaGHFgiBHw7Nybnk=?= <mgorny@gentoo.org>
Cc: gentoo-python@lists.gentoo.org
Subject: Re: [gentoo-python] distutils-r1 -- support for out-of-source
 builds?
Message-ID: <20121028165518.5f1afe4a@pomiocik.lan>
In-Reply-To: <20121028085705.62e1eed4@pomiocik.lan>
References: <20121028085705.62e1eed4@pomiocik.lan>
Organization: Gentoo
X-Mailer: Claws Mail 3.8.1 (GTK+ 2.24.13; x86_64-pc-linux-gnu)
Precedence: bulk
List-Post: <mailto:gentoo-python@lists.gentoo.org>
List-Help: <mailto:gentoo-python+help@lists.gentoo.org>
List-Unsubscribe: <mailto:gentoo-python+unsubscribe@lists.gentoo.org>
List-Subscribe: <mailto:gentoo-python+subscribe@lists.gentoo.org>
List-Id: Discussions centering around the Python ecosystem in Gentoo Linux <gentoo-python.gentoo.org>
X-BeenThere: gentoo-python@gentoo.org
X-BeenThere: gentoo-python@lists.gentoo.org
Mime-Version: 1.0
Content-Type: multipart/signed; micalg=PGP-SHA256;
 boundary="Sig_/k_b9mUUFr=VAWcN0c9Ujem+"; protocol="application/pgp-signature"
X-Archives-Salt: ce7c36d6-6b1e-4a76-a09f-8b032a2391cc
X-Archives-Hash: cde01c4cce0499934d055314d53ad84d

--Sig_/k_b9mUUFr=VAWcN0c9Ujem+
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On Sun, 28 Oct 2012 08:57:05 +0100
Micha=C5=82 G=C3=B3rny <mgorny@gentoo.org> wrote:

> On the other hand, we would introduce a tiny bit of additional code.

I did a bit research on the topic, and the code introduced is circa 100
lines, including docs and esetuppy() which would be probably added
anyway. There are other potential problems however.

The main issue is how distutils is designed. The only command accepting
build-dir is the 'build' command. Other commands which need to access
the build tree just use some weird method of getting parameters for
other commands. Effectively, if you need to provide a build-dir, you
always have to run 'build'.

So, the install command would grow from:

  ./setup.py install ...

to:

  ./setup.py build -b ... install ...

Of course, all other commands accessing the build-dir would need to
be prepended with the 'build -b ...' as well. For that reason,
the patches I'm going to attach add that thing to esetuppy() directly.

This has the following implications:

1) all calls to esetuppy() involve running build,

2) if build takes additional arguments, they may need to be passed
consistently to all esetuppy calls (like: 'build --foo' in args).
Otherwise, a rebuild with different options may happen (but that's
probably a case already anyway).

In any case, I wouldn't say it's very elegant of Python. It will work
flawlessly for the most of Python packages, and likely most
of the remaining ones would require running in-source builds anyway
(and that can be enabled with a single variable).

Well, best just look at the code and tell me what you think.

--=20
Best regards,
Micha=C5=82 G=C3=B3rny

--Sig_/k_b9mUUFr=VAWcN0c9Ujem+
Content-Type: application/pgp-signature; name=signature.asc
Content-Disposition: attachment; filename=signature.asc

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)

iJwEAQEIAAYFAlCNVWkACgkQfXuS5UK5QB2CYgP/Y7ty8obKt5p/PIRkZpT/pndq
rOFW3x8A34jTybJuAsBR6s1kdRpnc74VfNsrrupK2dd7SES7XUI5hzUSxYZ8U+Nr
kT0zp3NbAbJKpML7iN3eQgtTULp73nIpiIfEg1LgDsv8jiCJ2eMUsLOj1EyOf5Dg
sAuXEUltA2Q8agvPBGo=
=fPGS
-----END PGP SIGNATURE-----

--Sig_/k_b9mUUFr=VAWcN0c9Ujem+--