tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

TOOL_DEPENDS vs pbulk fallout



There was one critical part of the BUILD_DEPENDS to TOOL_DEPENDS conversion that was overlooked. BUILD_DEPENDS are encoded into the package metadata, and can be retrieved with "pkg_info -N" to show all of the packages a particular package was built with.

pbulk uses this information to determine whether a dependency has changed, and therefore whether a downstream package needs to be rebuilt or not.

I just noticed this because cargo-c introduced a serious bug in 0.9.26 where the encoded SONAME is incorrect:

  https://github.com/lu-zero/cargo-c/issues/345

Packages that depend on cargo-c build fine, for example libimagequant, but any package that then depends on those packages, for example gd, will fail to build because the libraries cannot be found, e.g.:

  https://us-central.manta.mnx.io/pkgsrc/public/reports/trunk/tools/20231012.1136/gd-2.3.3nb10/install.log

cargo-c was updated to 0.9.27, and this somewhat fixes the issue, but will now cause PLIST failures in any package that depends on it, because they no longer create libfoo.so.0 symlinks.

However, pbulk is no longer rebuilding any package that depends on cargo-c, and thus we are neither:

* getting build failures caused by the cargo-c update, because pbulk thinks they do not need rebuilding.

* getting build fixes for downstream packages, once the PLIST issues have been fixed.

An option would be to include all "tool" depends in @blddep too, but that feels wrong, and I don't know how it will handle native tools.

I'm going to leave this to others more familiar with the TOOL_DEPENDS conversion, but it needs fixing quite urgently.

--
Jonathan Perkin   -   mnx.io   -   pkgsrc.smartos.org
Open Source Complete Cloud   www.tritondatacenter.com


Home | Main Index | Thread Index | Old Index