Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Jul 2018 12:41:09 +0000
From:      bugzilla-noreply@freebsd.org
To:        ruby@FreeBSD.org
Subject:   [Bug 229630] rubygem update fails with portmaster caused of wrong order of build (missing build depends in rubygem ports)
Message-ID:  <bug-229630-21402-5itTTfAvwu@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-229630-21402@https.bugs.freebsd.org/bugzilla/>
References:  <bug-229630-21402@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D229630

Stefan Esser <se@FreeBSD.org> changed:

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

--- Comment #2 from Stefan Esser <se@FreeBSD.org> ---
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 bu=
ilt.

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 readi=
ng)
are:

RUN_DEPENDS:

A list of "path:dir[:target]" tuples of other ports this=20
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 suffici=
ent
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.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-229630-21402-5itTTfAvwu>