Date: Fri, 15 Dec 2017 17:12:18 +0100 From: Stefan Esser <se@freebsd.org> To: koobs@FreeBSD.org, Johan Hendriks <joh.hendriks@gmail.com>, freebsd-ports@freebsd.org Cc: "python@freebsd.org" <python@freebsd.org> Subject: Re: new portmaster fails to build devel/py-libzfs@py36 because of failing cython Message-ID: <74827d4b-661b-2e83-d270-1c4eaa038871@freebsd.org> In-Reply-To: <63cc46cc-8d1b-8a9a-4690-28e1f1adbef5@freebsd.org> References: <875c07bd-b718-d74b-5302-d41af7476a14@gmail.com> <842cfe0c-9d96-0261-c380-59bfed89beff@FreeBSD.org> <63cc46cc-8d1b-8a9a-4690-28e1f1adbef5@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?74827d4b-661b-2e83-d270-1c4eaa038871>