From owner-freebsd-python@freebsd.org Fri Dec 15 16:12:32 2017 Return-Path: Delivered-To: freebsd-python@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 B4411E855EE for ; Fri, 15 Dec 2017 16:12:32 +0000 (UTC) (envelope-from se@freebsd.org) Received: from mailman.ysv.freebsd.org (unknown [127.0.1.3]) by mx1.freebsd.org (Postfix) with ESMTP id 9A6EB7B943 for ; Fri, 15 Dec 2017 16:12:32 +0000 (UTC) (envelope-from se@freebsd.org) Received: by mailman.ysv.freebsd.org (Postfix) id 99B0FE855EC; Fri, 15 Dec 2017 16:12:32 +0000 (UTC) Delivered-To: python@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 97575E855EB; Fri, 15 Dec 2017 16:12:32 +0000 (UTC) (envelope-from se@freebsd.org) Received: from mailout04.t-online.de (mailout04.t-online.de [194.25.134.18]) (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 5B66F7B941; Fri, 15 Dec 2017 16:12:32 +0000 (UTC) (envelope-from se@freebsd.org) Received: from fwd19.aul.t-online.de (fwd19.aul.t-online.de [172.20.27.65]) by mailout04.t-online.de (Postfix) with SMTP id AD49741ADFE2; Fri, 15 Dec 2017 17:12:23 +0100 (CET) Received: from Stefans-MBP-2.fritz.box (JO915eZBohFK-I0SDBVeJhZce3jerI-fvlTqd2Rctph+27A73S1-tcxBMFr7T+0wA9@[84.154.97.124]) by fwd19.t-online.de with (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384 encrypted) esmtp id 1ePsaw-2soSnY0; Fri, 15 Dec 2017 17:12:18 +0100 From: Stefan Esser Subject: Re: new portmaster fails to build devel/py-libzfs@py36 because of failing cython To: koobs@FreeBSD.org, Johan Hendriks , freebsd-ports@freebsd.org Cc: "python@freebsd.org" References: <875c07bd-b718-d74b-5302-d41af7476a14@gmail.com> <842cfe0c-9d96-0261-c380-59bfed89beff@FreeBSD.org> <63cc46cc-8d1b-8a9a-4690-28e1f1adbef5@freebsd.org> Message-ID: <74827d4b-661b-2e83-d270-1c4eaa038871@freebsd.org> Date: Fri, 15 Dec 2017 17:12:18 +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: <63cc46cc-8d1b-8a9a-4690-28e1f1adbef5@freebsd.org> Content-Type: text/plain; charset=windows-1252 Content-Language: en-US Content-Transfer-Encoding: 7bit X-ID: JO915eZBohFK-I0SDBVeJhZce3jerI-fvlTqd2Rctph+27A73S1-tcxBMFr7T+0wA9 X-TOI-MSGID: 8e7c6b55-9284-4746-baf2-4eaf10e0bd15 X-BeenThere: freebsd-python@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: FreeBSD-specific Python issues List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Dec 2017 16:12:32 -0000 Am 15.12.17 um 14:25 schrieb Stefan Esser> Hmmm, now I see what's the problem: The package name seems to have been > changed during the conversion to a flavored port (from "cython3-0.26.tbz" > to "py36-cython-0.26.tar.bz"). This is not typical of ports that use > flavors now, in general they generate packages under the same name as the > non-flavored port did. > > I have to see, whether I can easily detect this case - the current logic > that distinguishes between fresh installs and re-installs does not see > that the old version needs to be deleted before installing the new one. > > For now the advice to manually delete the cython3 port is right and will > let you install the new version. I'm sorry, but fixing this problem will take quite some effort ... The problem is, that portmaster operates in phases and recursively invokes itself with an always smaller set of options. While knows that the port origin has moved in one invocation, it then goes on and just calls itself to build and install with only the new origin (in this case "lang/cython@py36"). It is not possible to derive the old package name from that information, portmaster must assume, that the package name (sans version) did not change, it can then lookup the nane of the package to be replaced in the package DB. But in the case of this port, the origin changed and the package name changed at the same time, and I'd need to have at least one of these parameters unchanged to lookup the old package name to de-install it before installing the new version. I have plans to refactor portmaster and completely rewrite the logic that builds and installs packages, but this is a major undertaking and earlier maintainers have given up after trying. So please accept that it may be necessary to manually remove a package in case both port directory (origin) and package name change at the same time. All information is there at a point, but the structure of the program does not allow to easily access it when actually needed. Regards, STefan