Description of problem: There is too common and well knonw situations: 1- BuildRequires: lirc-devel will break in mock (for i386) since lirc from fedora.repo and lirc-libs from fedora-updates.repo will introduce this: ------------- Transaction Check Error: file /usr/lib/liblirc_client.so.0.2.0 conflicts between attempted installs of lirc-libs-0.8.3-1.fc8 and lirc-0.8.2-2.fc8 ------------- 2- Upgrade path from F-8 to F-9 will fails in x86_64 because lirc.i386 will stay installed on the end-users system and will conflict with lirc.x86_64 binaries. Version-Release number of selected component (if applicable): this problem start with the multilibs introduction in lirc in the F-8 repository How reproducible: alsways in F-8 for (1). The attached fix need to be available until F-10 for (2) Additional info: This problem is described in our guideline here: https://fedoraproject.org/wiki/PackagingDrafts/MultilibTricks See Splitting libraries into separate packages
s/too/two/ (was a typo)
Created attachment 316824 [details] solve_multilibs_transition in the lirc package from F-8 version it possible to use %{version}-%{release}, in F-8 F-9 and to harcode the evr in devel. This additional can be removed in the F-11 tree (Fedora N+2 need to be covered)
Shouldn't the Obsoletes: be for the -libs sub-package, not the devel one? If its in the devel package, that won't help the upgrade path for people that don't have the devel package installed. I'm pretty sure attached to -libs where you meant to put it... :) I believe this should do the job: diff -u -p -r1.37 lirc.spec --- lirc.spec 14 Aug 2008 15:41:38 -0000 1.37 +++ lirc.spec 16 Sep 2008 12:54:14 -0000 @@ -18,7 +18,7 @@ Name: lirc Version: 0.8.3 -Release: 6%{?pre:.%{pre}}%{?dist} +Release: 7%{?pre:.%{pre}}%{?dist} Summary: The Linux Infrared Remote Control package Group: System Environment/Daemons @@ -69,6 +69,8 @@ computer with a remote control. %package libs Summary: LIRC libraries Group: System Environment/Libraries +# Fix old F8 multilib upgrade path issue +Obsoletes: %{name} < 0.8.3 %description libs LIRC is a package that allows you to decode and send infra-red and @@ -266,6 +268,9 @@ fi %changelog +* Tue Sep 16 2008 - Jarod Wilson <jarod> - 0.8.3-7 +- Fix multilib upgrade path from F8 (Nicolas Chauvet, #462435) + * Thu Aug 14 2008 - Bastien Nocera <bnocera> - 0.8.3-6 - Make lircd not exit when there's no device available, so that the daemon is running as expected when the hardware is plugged back in
Oups, good catch, was for the -libs indeed. (I've made the same tweak for lcms) Obsoletes: %{name} < 0.8.3 is fine as version (only) and not version-release as the multilib tweak was introduced in 0.8.3-1. Now if its only available in -devel, it will only fix (2) whereas (1) it still annoying; specially in F-8 Do you mind it can be backported in F-8/F-9 ?
Don't mind at all, that's what I was planning on doing. Building for rawhide right now, will get the others done after that.
lirc-0.8.3-2.fc9 has been submitted as an update for Fedora 9. http://admin.fedoraproject.org/updates/lirc-0.8.3-2.fc9
lirc-0.8.3-2.fc8 has been pushed to the Fedora 8 stable repository. If problems still persist, please make note of it in this bug report.