On Tue, 18 Jul 2023 15:27:01 +0200
Fabio Valentini <decathorpe(a)gmail.com> wrote:
On Tue, Jul 18, 2023, 15:22 Maxwell G <maxwell(a)gtmx.me> wrote:
> On Tue Jul 18, 2023 at 12:38 +0200, Jakub Kadlcik wrote:
> > Hello Jerry,
> > I proposed a workaround a few days ago
> >
https://pagure.io/FedoraReview/pull-request/485
> >
> > but your patch looks like a proper fix. I'll try it and merge to
> > the fedora-review codebase.
> >
> > Does anybody know what was the purpose of --resolve and if it
> > will be no problem when we remove it?
>
> --requires --resolve resolves the entire dependency tree of a
> package. --requires just prints the direct dependencies that are
> specified in the RPM metadata.
> I don't know what this code is used for,
> but I don't think simply removing --resolve is the right solution.
>
Is it though? I assume you're thinking of "--recursive". As far as I
know, "--requires --resolve" force resolution of virtual provides
instead. I don't think removing "--resolve" is the correct solution
for this case.
For example, the check if a package depends on something that's
deprecated (i.e. "Provides: deprecated ()") would need to resolve and
check the actual package dependencies, not only virtual provides.
I have a script that uses --requires, --resolve and --recursive all at
the same time:
...
dnf repoquery \
--quiet \
--releasever=$RELEASE_VER \
$EXTRA_REPO_SPEC \
--disablerepo=\* \
--enablerepo=$LOCAL_SOURCE_REPO \
--enablerepo=$LOCAL_BINARY_REPO \
--enablerepo=$BASE_BINARY_REPO \
--arch=${BINARY_ARCHLIST},noarch,src \
--forcearch=$FORCE_ARCH \
--qf ' %{name}' \
--requires --resolve --recursive $BUILD_GROUP $LOCAL_PACKAGE_LIST
...
I use it to work out all of the dependencies (build and run time) for
all of the packages in a local repo so that I can mirror them locally.
Regards, Paul.