From owner-freebsd-ports@freebsd.org Sun Dec 17 13:01:54 2017 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 A08D5E8925F for ; Sun, 17 Dec 2017 13:01:54 +0000 (UTC) (envelope-from se@freebsd.org) Received: from mailout07.t-online.de (mailout07.t-online.de [194.25.134.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mailout00.t-online.de", Issuer "TeleSec ServerPass DE-2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 383EC6FA43 for ; Sun, 17 Dec 2017 13:01:53 +0000 (UTC) (envelope-from se@freebsd.org) Received: from fwd34.aul.t-online.de (fwd34.aul.t-online.de [172.20.26.145]) by mailout07.t-online.de (Postfix) with SMTP id C8A3B426C3AC; Sun, 17 Dec 2017 14:01:44 +0100 (CET) Received: from Stefans-MBP-2.fritz.box (Gvpeq4ZVwhmJaAQfwQPkwVXnUf1O0iqNWjy9upanEc-3OGPAwodsu-OOEgmNu+CZ1-@[84.154.97.124]) by fwd34.t-online.de with (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384 encrypted) esmtp id 1eQYZZ-19DOIy0; Sun, 17 Dec 2017 14:01:41 +0100 Subject: Re: new portmaster fails to build devel/py-libzfs@py36 because of failing cython To: Jim Trigg , freebsd-ports@freebsd.org, Johan Hendriks References: <875c07bd-b718-d74b-5302-d41af7476a14@gmail.com> From: Stefan Esser Message-ID: <663c1678-7f32-7dd4-867f-b5fd3f862222@freebsd.org> Date: Sun, 17 Dec 2017 14:01:41 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:52.0) Gecko/20100101 Thunderbird/52.5.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Language: en-US Content-Transfer-Encoding: 8bit X-ID: Gvpeq4ZVwhmJaAQfwQPkwVXnUf1O0iqNWjy9upanEc-3OGPAwodsu-OOEgmNu+CZ1- X-TOI-MSGID: 5f3c257e-7ef9-434a-b9a3-398c67149cc7 X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Dec 2017 13:01:54 -0000 Am 17.12.17 um 05:47 schrieb Jim Trigg: > > > On December 15, 2017 4:50:53 AM EST, Johan Hendriks wrote: >> Hello all. >> First of all thank you for the update of portmaster, much appreciated. >> >> When i am updating my ports, portmaster fails with the following error. >> >> ====> Compressing man pages (compress-man) >> ===>>> Starting check for runtime dependencies >> ===>>> Gathering dependency list for lang/cython@py36 from ports >> ===>>> Dependency check complete for lang/cython@py36 >> >> ===>>> devel/py-libzfs@py36 1/10 >> lang/cython@py36 (1/1) >> >> ===>  Installing for py36-cython-0.26 >> ===>  Checking if py36-cython already installed >> ===>   Registering installation for py36-cython-0.26 as automatic >> Installing py36-cython-0.26... >> pkg-static: py36-cython-0.26 conflicts with cython3-0.26 (installs >> files >> into the same place).  Problematic file: /usr/local/bin/cygdb-3.6 >> *** Error code 70 >> >> Stop. >> make: stopped in /usr/ports/lang/cython >> >> ===>>> Installation of py36-cython-0.26 (lang/cython@py36) failed >> ===>>> Aborting update >> >> ===>>> Update for lang/cython@py36 failed >> ===>>> Aborting update >> >> ===>>> Update for devel/py-libzfs@py36 failed >> ===>>> Aborting update >> >> >> Is there someting i can try or do? Yes, try the latest version of portmaster that I just committed ... Adding flavor support to portmaster was complicated by the way parameters are passed from one phase (config options, dependency checks, ...) to the final build process. It worked if either the port origin or package name changed when a port was upgraded, but not if both were changed simultaneously. And that was just the case with cython, were the origin changed from "lang/cython3" to "lang/cython" (with flavor py36) and the package name from "cython3-0.26" to "py36-cython-0.26". There was no way for portmaster to make the connection between the old and new version if both changed at a time, and thus it failed to deinstall the old version before installing the new one. I plan to completely change the way state is maintained in portmaster (from implicit by some global variables being set) to explicit state variables, and at the same time pass parameters explicitly. But this will be a major change, which will void any patches that have been attached to PRs and Issues, and will make it much harder to work on them. > Question: is 3.6 your default python version? I've discovered that the current version > of portmaster uses python default version for dependencies when building a flavored > port. Dependencies should be built based on the different *_DEPENDS variables defined in the port's Makefile and the *.mk files of the port framework. Portmaster currently only accepts the notation of "origin@flavor" when a new port of a given flavor is to be installed. I'm planning to add a --flavor option for that purpose, but I have to be careful not to introduce any regressions by doing so. Regards, STefan