Re: Questions regarding BUILD_DEPENDS definition
Date: Tue, 11 Apr 2023 10:23:37 UTC
On 11/04/2023 09:45, Matthias Fechner wrote:
> Dear all,
>
> I have a question regarding BUILD_DEPENDS.
> The manual in bsd.port.mk tells:
> # BUILD_DEPENDS - A list of "path:dir[:target]" tuples of other ports this
> # package depends to build (between the
> "extract" and
> # "build" stages, inclusive). The test
> done to
> # determine the existence of the
> dependency is the
> # same as FETCH_DEPENDS. If the third
> field ("target")
> # exists, it will be used instead of
> ${DEPENDS_TARGET}.
>
> So if I understood it correctly, it should only be used between the
> extract and build phase but should not be recorded as a dependency if
> the package is installed with pkg?
>
> But it seems that pkg is pulling the BUILD_DEPENDS while installing the
> package.
>
> Clear example is this one:
> https://cgit.freebsd.org/ports/tree/devel/gitlab-shell/Makefile#n12
>
> How can I define a build dependency that is required to build the port
> but is not installed with the port?
Your initial understanding was correct: BUILD_DEPENDS is for software
required to build a package, but not necessary to be installed at
run-time. In my experience, it works exactly as described.
If devel/gitlab-shell is pulling in security/heimdal when you're
installing from a package repository, then something is clearly going
wrong. pkg(8) only records the run-time dependencies in the packages it
handles -- you can see those by `pkg info -d gitlab-shell`
If you're building the gitlab-shell package locally, then the
BUILD_DEPENDS packages will be installed as part of the build process,
but marked for `pkg autoremove` to delete.
Cheers,
Matthew