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

Stefan Esser se at freebsd.org
Fri Dec 15 16:12:32 UTC 2017


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.

Regards, STefan


More information about the freebsd-ports mailing list