On 06/02/2018 04:09, Dan Mahoney (Gushi) wrote: > In the meantime, I am actually curious about the questions I asked, as > they're more than this issue -- if specifying a binary name in a ports > Makefile will survive through to pkg. (The docs say nothing one way or > the other), or how to get pkg to just do what I want it to (just install > a package but don't deinstall the conflicts, I know what I'm doing. > really).
If you in some way modify the port to alter RUN_DEPENDS then that change will propagate all the way down to generated pkgs. The important bit is not the 'binary name' that the ports uses to test that its dependency preconditions have been fulfilled, but the part after the colon giving the name of the port to install if that dependency hasn't been fulfilled. This is actually a problem in pkg(8) -- compiled in dependencies are overly prescriptive, and there aren't mechanisms to allow a package to depend on a choice of alternate packages or a range of different package versions. In the case of sysutils/facter and sysutils/rubygem-facter there is a further complication in that those two ports _conflict_ -- which usually means the ports both want to install a file of the same name. In this case /usr/local/bin/facter. There are other ways ports can conflict, but both wanting to install the same file is by far and away the most common cause. I note that 'CONFLICTS_INSTALL' is only set in sysutils/facter/Makefile but not sysutils/rubygem-facter/Makefile. In fact, this makes little practical difference as pkg(8) will compare the package manifests and detect and find such file name conflicts automatically. Cheers, Matthew
signature.asc
Description: OpenPGP digital signature