Re: Error: transaction test error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 10, 2022 at 4:01 PM Zbigniew Jędrzejewski-Szmek
<zbyszek@xxxxxxxxx> wrote:
>
> On Thu, Feb 10, 2022 at 03:54:28PM +0100, Petr Pisar wrote:
> > V Thu, Feb 10, 2022 at 03:19:18PM +0100, Zbigniew Jędrzejewski-Szmek napsal(a):
> > > can deal with that. But if they having conflicting files with
> > > declaring Conflicts, this is only detected after packages have been
> > > downloaded and results in a failed transaction and is generally bad UX.
> >
> > s/with/without/ ?
>
> Oops, yes.
>
> > > Recently I was installing a bunch of packages for the the "package notes"
> > > tests, and I was surprised how many such packages we have:
> > >
> > > Error: Transaction test error:
> > >   file /usr/bin/arping from install of golang-github-j-keck-arping-1.0.2-2.fc36.x86_64 conflicts with file from package iputils-20211215-2.fc36.x86_64
> > >   file /usr/bin/cbc from install of libcouchbase-tools-3.2.2-1.fc36.x86_64 conflicts with file from package coin-or-Cbc-2.10.5-8.fc36.x86_64
> > [...]
> > > Such conflicts lead to subpar user experience… Should we make an effort to clean this
> > > up?
> >
> > We could add a new implicit CI test to check for the conflicting files. A test
> > similar to fedora-ci.koji-build.installability.functional. That would inform
> > packagers that their new build is missing the explicit Conflicts.
>
> It's not trivial to do right now, because you actually need to
> download all the packages to see the issue. (Though file names are
> available in the metadata files, e.g. dnf install /some/path works,
> so I guess it could be done without downloading packages theoretically.)
>
> > > Add Conflicts between those packages?
> >
> > Yes. It's mandated by the guidelines
> > <https://docs.fedoraproject.org/en-US/packaging-guidelines/Conflicts/#_implicit_conflicts>.
>
> Yeah, but is is worth the effort? I could open a bunch of bugs, but
> I don't want to do this if nobody wants to look at them anyway.

You might be able to save yourself from downloading and installing all
packages manually, by querying repository metadata for file providers:

for package in repository:
    for file in package:
        for provider in whatprovides(file):
            if provider != package:
                print "Path {file} is provided by both {package} and
{provider}."

Though you'd probably get a bunch of false positives, for things like
shared directory ownership. Not sure if you could filter that out
somehow.

Fabio
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux