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>