[Bug 229630] rubygem update fails with portmaster caused of wrong order of build (missing build depends in rubygem ports)

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[Bug 229630] rubygem update fails with portmaster caused of wrong order of build (missing build depends in rubygem ports)

bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=229630

Stefan Esser <[hidden email]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|New                         |Open

--- Comment #2 from Stefan Esser <[hidden email]> ---
The RUN_DEPENDS list is for dependencies that need not be available or
up-to-date during a port build, but only to execute the applications in this
port (e.g. shells, interpreters). These lead to dependencies recorded in the
package built from a port. If the port is manually installed, then run
dependencies are checked in the install phase (after the port has been built
and staged).

Pure run dependencies need not be available when some port is built.
Dependencies that are required to build a port are either BUILD_DEPENDS (if the
test is for the existence of some binary, e.g. a compiler) or LIB_DEPENDS.
These are made available (and upgraded by portmaster, if applicable) before
port that depends on them is built.

Since the rubygem ports declare their dependencies as RUN_DEPENDS only, it is
correct to assume that they need by updated before the dependent port is built.

Therefore, the actual problem is that there are dependencies on shared
libraries, which are wrongly declared as run dependencies.

The relevant excerpts from bsd.port.mk (somewhat sanitized for easier reading)
are:

RUN_DEPENDS:

A list of "path:dir[:target]" tuples of other ports this
package depends to run.  The test done to determine
the existence of the dependency is the same as
FETCH_DEPENDS.  This will be checked during the
"install" stage and the name of the dependency will
be put into the package as well. [...]

LIB_DEPENDS:

A list of "lib:dir[:target]" tuples of other ports this
package depends on.  "lib" is the name of a shared library.


For dependencies on shared libraries provided by other ports, it is sufficient
to specify those ports in LIB_DEPENDS, this will imply that those libraries
will be registered as run dependencies in the generated packages.

Examples of correct usage can also be found in many Uses/*.mk files.

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
[hidden email] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ruby
To unsubscribe, send any mail to "[hidden email]"