Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Jun 2024 12:09:26 -0700
From:      "Edward Sanford Sutton, III" <mirror176@hotmail.com>
To:        ports@freebsd.org
Subject:   Re: dependency hell
Message-ID:  <CO1PR11MB4770F943D888644EC892DDB1E6FA2@CO1PR11MB4770.namprd11.prod.outlook.com>
In-Reply-To: <20240606155222.28742590@daleth.home>
References:  <31f85810-cb4d-46b8-8fb9-4923f6499a31@waschbuesch.de> <9c709d96-98b9-490a-baab-8a076ef4fd7e@quip.cz> <20240606155222.28742590@daleth.home>

next in thread | previous in thread | raw e-mail | index | archive | help
On 6/6/24 06:52, Piotr Smyrak wrote:
> On Thu, 6 Jun 2024 15:16:33 +0200
> Miroslav Lachman <000.fbsd@quip.cz> wrote:
> 
>> On 06/06/2024 14:30, Martin Waschbüsch wrote:
>>> Hello port list,
>>>
>>> I use poudriere to create my own repositories for typical
>>> webservers we run (apache, mariadb, php).
>>>
>>> Some change(s) in some port(s) seem to have introduced loads of
>>> additional dependencies (X, wayland, gtk) mostly unwanted on the
>>> type of system we run.
>>>
>>> I know how to find out dependencies for installed packages, but
>>> that does not help here as the packages are not yet built.
>>>
>>> Is there a way (other than searching the commit logs for all
>>> packages I plan to build) to pinpoint the package(s) that
>>> introduced the new dependency?
> 
> If you have the ports tree extracted and updated, running:
> 
> $ cd /usr/ports/`pkg info -qo foo`
> $ make all-depends-list
> 
> … in the package port dir and its direct dependencies shall let you
> figure it out. Please do note that dependencies may change depending
> on the choice of OPTIONS. Packages are built with the defaults chosen by
> port maintainers.
> 
> If your ports tree is indeed a git repo with something like this you
> shall get a sinking list of changes made to Makefiles of your affected
> port/package dependencies:
> 
> $ cd /usr/ports/`pkg info -qo foo`
> $ make all-depends-list | sed -e 's@/usr/ports@../..@; s@$@/Makefile@;'
> | xargs git log -p

If not wanting to know what poudriere uses for building but rather care 
about what systems using the results will need installed once poudriere 
is done, you likely want `make package-depends-list` to base it solely 
off of the ports tree. You could use `make actual-package-depends` to 
base it off of currently installed packages that could satisfy 
dependencies but that is more for an unclean environment build process 
like using the ports tree from the installed system directly.
If analyzing the build process instead of just what a package install 
will bring in, you can subdivide all-depends-list with 
build-depends-list, run-depends-list and test-depends-list.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CO1PR11MB4770F943D888644EC892DDB1E6FA2>