On 1/31/22 06:17 PM, Miro Hrončok wrote:
On 31. 01. 22 23:51, Steven A. Falco wrote:
> On 1/31/22 05:08 PM, Steven A. Falco wrote:
>> On 1/31/22 04:04 PM, Miro Hrončok wrote:
>>> On 31. 01. 22 21:58, przemek klosowski via devel wrote:
>>>> During recent major version update, some files were moved from
<package>-doc to <package>, and as a result updates of <package> fail
due to a file conflict. Manual update of <package>-doc resolves this, of course.
>>>>
>>>> A simple solution would be to declare that <package>
>>>>
>>>> Required: package-doc >= 6.0.0
>>>>
>>>> but that would force the install of the docs package if it wasn't
already there.
>>>>
>>>> Is there a way to declare a dependency only if the other package is
present/installed? Would
>>>>
>>>> Obsoletes: package-doc < 6.0.0
>>>>
>>>> be the right thing to do?
>>>
>>> The right thing to do is:
>>>
>>> Conflicts: package-doc < 6.0.0
>>
>> Ok, so that doesn't do what I'd like. I definitely added the conflict
property:
>>
>> # rpm -q -conflicts kicad-6.0.1-4.fc35.x86_64.rpm
>> kicad-doc < 6.0.0
>>
>> But when I try to upgrade just the kicad package without upgrading the docs
package, I still get:
>>
>> # dnf update kicad-6.0.1-4.fc35.x86_64.rpm
>> ...
>> Running transaction test
>> Error: Transaction test error:
>> file /usr/share/doc/kicad/scripts/lib_convert.py from install of
kicad-1:6.0.1-4.fc35.x86_64 conflicts with file from package
kicad-doc-1:5.1.12-1.fc35.noarch
>> file /usr/share/doc/kicad/scripts/test_kicad_plugin.py from install of
kicad-1:6.0.1-4.fc35.x86_64 conflicts with file from package
kicad-doc-1:5.1.12-1.fc35.noarch
>>
>> So the Conflicts line doesn't actually seem to buy me anything.
>>
>> I'll try again with the version from Stephen Gallagher (including the epoch)
and see if that is any better.
> The Conflict flag is now set to:
>
> # rpm -q -conflicts kicad-6.0.1-4.fc35.x86_64.rpm
> kicad-doc < 1:6.0.1-4.fc35
Oh, I did not know the package has an epoch.
It just has an epoch of "1", and that hasn't changed, so I didn't think
it was important. But I guess I was wrong about that. :-(
> And the result is:
>
> # dnf update kicad-6.0.1-4.fc35.x86_64.rpm
> Last metadata expiration check: 0:40:27 ago on Mon 31 Jan 2022 05:06:19 PM EST.
> Dependencies resolved.
>
> Problem: problem with installed package kicad-doc-1:5.1.12-1.fc35.noarch
> - package kicad-1:6.0.1-4.fc35.x86_64 conflicts with kicad-doc < 1:6.0.1-4.fc35
provided by kicad-doc-1:5.1.12-1.fc35.noarch
> - cannot install the best update candidate for package
kicad-1:5.1.12-1.fc35.x86_64
>
============================================================================================
> Package Architecture Version Repository Size
>
============================================================================================
> Skipping packages with conflicts:
> (add '--best --allowerasing' to command line to force their upgrade):
> kicad x86_64 1:6.0.1-4.fc35 @commandline 90 M
>
> Transaction Summary
>
============================================================================================
> Skip 1 Package
>
> When I add the '--best --allowerasing' flags, then I get the desired result:
>
> # dnf update kicad-6.0.1-4.fc35.x86_64.rpm --best --allowerasing
> Last metadata expiration check: 0:43:04 ago on Mon 31 Jan 2022 05:06:19 PM EST.
> Dependencies resolved.
>
============================================================================================
> Package Architecture Version Repository Size
>
============================================================================================
> Upgrading:
> kicad x86_64 1:6.0.1-4.fc35 @commandline 90 M
> Removing dependent packages:
> kicad-doc noarch 1:5.1.12-1.fc35 @updates 111 M
>
> So that looks like the best solution.
What you haven't mentioned is if kicad-doc 1:6.0.x still exists but just with fewer
files or if it is gone entirely.
If it is gone, you should probably obsolete it.
The doc package still has many files in it. So, it should not be obsoleted.
Thanks again for all the help. I think I'm good now.
Steve