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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to