https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240006

Stefan Esser <s...@freebsd.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |Works As Intended
             Status|Open                        |Closed

--- Comment #8 from Stefan Esser <s...@freebsd.org> ---
Sorry for the late reply - apparently I do no longer get a notification by mail
when a PR is assigned to me.

The information given by Walter Schwarzenfeld in Comment 7 is correct:

Some ports have dependencies that are declared as run dependencies, but which
are in fact required to install a port. This is possible in the "plain" ports
system, since it implements recursion into run dependencies before installing
the port being requested. I.e. the building and installation of run
dependencies is injected between building and installing the requested port. I
consider this an artefact of the implementation of the ports system in "make",
which cannot provide a different order: when the requested port has been
installed the trigger for the installation of run dependencies is lost - if you
interrupt the process at that time, the requested port has been installed and
the missing run dependencies will be ignored.

Portmaster processes always just one port from begin to end, it knows to update
or install build dependencies before the port needing them, run dependencies
afterwards, and it will detect missing run dependencies even if the build
process is interrupted between installation of the port and its run
dependencies.

A different treatment of run dependencies in portmaster is possible, but will
lead to dependency cycles, since run dependencies may themselves depend on the
port being worked being installed. If all run dependencies were treated like
build dependencies, then these cycles will prevent building of either of them.

Those ports that need run dependencies being available before the port
depending on them has been installed have to declare them as build
dependencies. If they are required for the build process to finish besides
being run dependencies, then they need to be declared as both build and run
dependencies.

That the plain ports system does not require them to be declared as build
dependencies is caused by the tool used (make) which does not support a
different order than is implemented, but that does not set a precedent for
portmaster, IMHO.

Therefore, I'm going to close this PR - the fix is in the individual port that
lacks a RUN_DEPENDS declaration.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
freebsd-ruby@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ruby
To unsubscribe, send any mail to "freebsd-ruby-unsubscr...@freebsd.org"

Reply via email to