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