From owner-freebsd-python@FreeBSD.ORG Sat Apr 21 10:12:12 2012 Return-Path: Delivered-To: python@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 073C8106564A; Sat, 21 Apr 2012 10:12:12 +0000 (UTC) (envelope-from mva@FreeBSD.org) Received: from smtprelay04.ispgateway.de (smtprelay04.ispgateway.de [80.67.31.27]) by mx1.freebsd.org (Postfix) with ESMTP id 8A4E88FC15; Sat, 21 Apr 2012 10:12:11 +0000 (UTC) Received: from [89.182.9.154] (helo=localhost) by smtprelay04.ispgateway.de with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.68) (envelope-from ) id 1SLXIA-0006ws-Th; Sat, 21 Apr 2012 12:11:47 +0200 Date: Sat, 21 Apr 2012 12:12:53 +0200 From: Marcus von Appen To: freebsd-ports@freebsd.org Message-ID: <20120421101253.GA1496@medusa.sysfault.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="6c2NcOVqGQ03X4Wi" Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-Df-Sender: MzAzMjU2 Cc: python@freebsd.org Subject: USE_PYTHON usage shadows dependency requirements and creates conflicts X-BeenThere: freebsd-python@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Marcus von Appen List-Id: FreeBSD-specific Python issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Apr 2012 10:12:12 -0000 --6c2NcOVqGQ03X4Wi Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi, I stumbled upon an interesting issue today, which might have been discussed at length earlier, but I was unable to find any reference so far. Using USE_PYTHON=3Dx.y in a port A, which has a dependency on another port B, which also defines USE_PYTHON=3Dq.w will cause a IGNORE to be raised =66rom bsd.python.mk, since _PYTHON_VERSION_NONSUPPORTED gets set to whatever the USE_PYTHON value from port A was. Test case: Create 2 directories, /usr/ports/devel/fake1 and /usr/ports/devel/fake2 Add the Makefiles (diffs below) to both: diff -Nur /nonexistent/Makefile fake1/Makefile --- /nonexistent/Makefile 1970-01-01 01:00:00.000000000 +0100 +++ fake1/Makefile 2012-04-21 11:55:05.000000000 +0200 @@ -0,0 +1,9 @@ +PORTNAME=3D fake1 +PORTVERSION=3D 1 +CATEGORIES=3D devel + +LIB_DEPENDS=3D fake2.0:${PORTSDIR}/devel/fake2 + +USE_PYTHON=3D 3.2 + +.include diff -Nur /nonexistent/Makefile fake2/Makefile --- /nonexistent/Makefile 1970-01-01 01:00:00.000000000 +0100 +++ fake2/Makefile 2012-04-21 11:55:13.000000000 +0200 @@ -0,0 +1,6 @@ +PORTNAME=3D fake2 +PORTVERSION=3D 1 + +USE_PYTHON=3D 2.5-3.1 + +.include Execute make depends in /usr/ports/devel/fake1. /usr/ports/devel/fake1 # make depends =3D=3D=3D> fake1-1 depends on shared library: fake2.0 - not found =3D=3D=3D> Verifying install for fake2.0 in /usr/ports/devel/fake2 =3D=3D=3D> fake2-1 needs Python 3.1 at most. But you specified 3.2. *** Error code 1 Stop in /usr/ports/devel/fake2. *** Error code 1 Stop in /usr/ports/devel/fake1. Installing fake2 before fake1 will circumvent the problem, which however does not help the typical ports tree user. It looks to me like we have an isolation issue for environment/make variables here. Could other parts be affected, too or can we assume that this issue solely affects bsd.python.mk at the moment? Regards Marcus --6c2NcOVqGQ03X4Wi Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (FreeBSD) iEYEARECAAYFAk+SiCUACgkQi68/ErJnpkfdtwCgywDkZ2G1eLWebu38xPjaQ7PW UeMAn3tSeajxeAWAeP5gAvtpzQcAkY04 =I60L -----END PGP SIGNATURE----- --6c2NcOVqGQ03X4Wi--