Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Jun 2024 22:47:05 +0900
From:      Tomoaki AOKI <junchoon@dec.sakura.ne.jp>
To:        ports@freebsd.org
Subject:   Re: dependency hell
Message-ID:  <20240606224705.801cbb2ed2847b38e9138b57@dec.sakura.ne.jp>
In-Reply-To: <9c709d96-98b9-490a-baab-8a076ef4fd7e@quip.cz>
References:  <31f85810-cb4d-46b8-8fb9-4923f6499a31@waschbuesch.de> <9c709d96-98b9-490a-baab-8a076ef4fd7e@quip.cz>

next in thread | previous in thread | raw e-mail | index | archive | help
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?
> 
> Not a perfect but better than nothing - https://www.freshports.org/
> You can search for some package and then view the list of dependencies 
> or you can go the other way - what packages require this package.
> 
> But once you do not use default options your dependencies may be different.
> 
> Kind regards
> Miroslav Lachman

Before FLAVOR feature is introduced, ports-mgmt/portupgrade did a
perfect job for you, with `portupgrade -r -n port-to-check`.

# Means, dry-run for upgrading all ports depending upon specified port
# RECURSIVELY.

But unfortunately, it doesn't (officially and perfectly) support
FLAVORs. So it is now NOT as perfect as before.

ports-mgmt/pkg_replace basically tracks direct dependencies/dependants
only.
Not sure for other tools for bare-metal environment.


Instead, if you want you can run
  `poudriere bulk -j <jailname> -n <origin[@flavor]>`
and
  `poudriere bulk -j <jailname> -S -n <origin[@flavor]>`
then check for differences.

Without -S, all UPATED ports which the specified port depends on
AND all ports depending upon the specicied port REGARDLESS THEY ARE
UPDATED OR NOT, both recursively.
With -S, only all UPATED ports which the specified port depends on
are shown as tobuild.

So the difference would be what you want.

And if you don't want unneeded dependency hell, as you may already
undderstood, option -S would be what you want, taking the risks that
forgotton to be bumped dependants are not rebuilt until it is bumped or
actually updated.

HTH.

-- 
Tomoaki AOKI    <junchoon@dec.sakura.ne.jp>



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