Re: Questions regarding BUILD_DEPENDS definition

From: Matthew Seaman <matthew_at_FreeBSD.org>
Date: Tue, 11 Apr 2023 16:54:10 UTC
On 11/04/2023 12:41, Matthias Fechner wrote:
> Am 11.04.2023 um 13:23 schrieb Matthew Seaman:
>> 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.
> 
> ok, then something is here broken:
> root@gitlab:/usr/local/www/gitlab-ce # pkg info -d gitlab-shell
> gitlab-shell-14.18.0:
> 
> If I now try to remove heimdal:
> root@gitlab:/usr/local/www/gitlab-ce # pkg delete heimdal
> Checking integrity... done (0 conflicting)
> Deinstallation has been requested for the following 2 packages (of 0 
> packages in the universe):
> 
> Installed packages to be REMOVED:
>          gitlab-shell: 14.18.0
>          heimdal: 7.8.0_6
> 
> So for an unkown reason, heimdal is recorded as a dependency, even if it 
> should not.
> 
> Is this maybe a bug in pkg?

Hmmm... I wonder if this is the shared library provides/requires thing 
that pkg does?  If you run ldd(1) against the binaries from 
gitlab-shell, is there any indication of linking against a shlib from 
the heimdal port?

If so, then that would seem to be a mistake in the gitlab-shell port, 
and it should probably add a LIB_DEPENDS against security/heimdal.

Otherwise, all I can suggest is deleting both heimdal and gitlab-shell 
packages, and then reinstalling gitlab-shell.  Hopefully that will tidy 
up the dependency graph.

	Cheers,

	Matthew