From owner-freebsd-ports@freebsd.org Sat Jan 9 05:57:25 2016 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 74521A67A70 for ; Sat, 9 Jan 2016 05:57:25 +0000 (UTC) (envelope-from FreeBSD@shaneware.biz) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by mx1.freebsd.org (Postfix) with ESMTP id 094161CD9 for ; Sat, 9 Jan 2016 05:57:24 +0000 (UTC) (envelope-from FreeBSD@shaneware.biz) Received: from ppp14-2-90-202.lns21.adl6.internode.on.net (HELO leader.local) ([14.2.90.202]) by ipmail07.adl2.internode.on.net with ESMTP; 09 Jan 2016 16:22:14 +1030 Subject: Re: Poudriere and python framework of ports To: Yasuhiro KIMURA , freebsd-ports@freebsd.org References: <20160109.115115.720784853649304585.yasu@utahime.org> From: Shane Ambler Message-ID: <5690A000.3010909@ShaneWare.Biz> Date: Sat, 9 Jan 2016 16:22:00 +1030 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <20160109.115115.720784853649304585.yasu@utahime.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 Jan 2016 05:57:25 -0000 On 09/01/2016 13:21, Yasuhiro KIMURA wrote: > But on poudriere with 10.2-R jail the result is different as > following: > > * "poudriere testport -j 102release -o mail/postfix-policyd-spf-python" > fails at check-sanity phase. > * Some dependents (such as mail/py-authres or mail/py-pyspf) are build > as python 2 packages (py27-authres-0.800, py27-pyspf-2.0.12_3, and > etc.) > > Then what is the cause of failure on poudriere? Is there something > wrong with my patch, or is this bug of either poudriere or python > framework of ports? Would someone please let me know? In poudriere each port is built independently, that is they don't inherit the specified python version from the port triggering the build as a dependency. It is possible that poudriere could be adjusted to compensate for this. It would require considering PYTHON_VERSION and using pkg names when dealing with dependencies instead of just the port origin. So, yes to a poudriere bug. For now - to get ports to build in poudriere with python3 you need to create a make.conf for the poudriere jail - /usr/local/etc/poudriere.d/jailname-make.conf To get all ports built with python3 as the default version add DEFAULT_VERSIONS= python=3.5 To get python3 ports that install into a system that has py2.7 as default you need to have DEFAULT_VERSIONS= python=2.7 python3=3.5 PYTHON_VERSION= python3.5 As the default python is still 2.7 I believe the port will need to define IGNORE. Something like - .if defined(PACKAGE_BUILDING) && ${PYTHON_DEFAULT} == 2.7 IGNORE= requires python3 dependencies and must be built manually .endif -- FreeBSD - the place to B...Software Developing Shane Ambler