new portmaster fails to build devel/py-libzfs at py36 because of failing cython

Jim Trigg jtrigg at huiekin.org
Sat Dec 16 06:04:55 UTC 2017


On 12/15/2017 11:12 AM, Stefan Esser wrote:
> 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 at 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.

As I said in a reply to an earlier message (that I just sent), I think 
this is exactly what the -o switch was meant for.

portmaster -o lang/cython at py36 cython3

The question is whether the flavor support will work with the -o switch.

Thanks,
Jim Trigg




More information about the freebsd-ports mailing list