Description of problem: When trying to install fcitx-gtk2.i686 (with x86_64 rpm installed also), it failed with these errors: === Transaction Check Error: file /usr/bin/fcitx4-config from install of fcitx-libs-4.2.7-1.fc18.i686 conflicts with file from package fcitx-libs-4.2.7-1.fc18.x86_64 Error Summary === Version-Release number of selected component (if applicable): fcitx-libs-4.2.7-1.fc18 How reproducible: 100% Steps to Reproduce: 1. yum install -y fcitx-libs.i686 fcitx-libs.x86_64 2. 3. Actual results: yum failed with conflicting file. Expected results: i686 rpm could installed aside with x86_64 Additional info: /usr/bin/fcitx4-config is just shell script, try store it in fcitx rpm or new rpm.
Created attachment 751500 [details] This patch will fix this multilib issue
(In reply to Parag from comment #1) > Created attachment 751500 [details] > This patch will fix this multilib issue This patch may be too Fedora-specific and not upstreamable. And then people would not be possible to this script for cross-building. How about just moving "fcitx4-config" to the fcitx-devel sub-package? This makes fcitx-libs not conflict between i686 and x86_64.
fcitx-4.2.7-4.fc18 has been submitted as an update for Fedora 18. https://admin.fedoraproject.org/updates/fcitx-4.2.7-4.fc18
As expected from not applying multilib patch, Transaction check error: file /usr/bin/fcitx4-config conflicts between attempted installs of fcitx-devel-4.2.7-4.fc19.x86_64 and fcitx-devel-4.2.7-4.fc19.i686
(In reply to Parag from comment #4) > As expected from not applying multilib patch, > > Transaction check error: > file /usr/bin/fcitx4-config conflicts between attempted installs of > fcitx-devel-4.2.7-4.fc19.x86_64 and fcitx-devel-4.2.7-4.fc19.i686 It is more common that -devel packages conflict between multiarch. And we cannot break cross-compiling when people build i686 program on x86_64 host.
Package fcitx-4.2.7-4.fc18: * should fix your issue, * was pushed to the Fedora 18 testing repository, * should be available at your local mirror within two days. Update it with: # su -c 'yum update --enablerepo=updates-testing fcitx-4.2.7-4.fc18' as soon as you are able to. Please go to the following url: https://admin.fedoraproject.org/updates/FEDORA-2013-11293/fcitx-4.2.7-4.fc18 then log in and leave karma (feedback).
(In reply to Robin Lee from comment #5) > (In reply to Parag from comment #4) > > As expected from not applying multilib patch, > > > > Transaction check error: > > file /usr/bin/fcitx4-config conflicts between attempted installs of > > fcitx-devel-4.2.7-4.fc19.x86_64 and fcitx-devel-4.2.7-4.fc19.i686 > > It is more common that -devel packages conflict between multiarch. And we > cannot break cross-compiling when people build i686 program on x86_64 host. devel (and lib) packages must be multilib safe, without any file conflicts
(In reply to Dan Horák from comment #7) > (In reply to Robin Lee from comment #5) > > (In reply to Parag from comment #4) > > > As expected from not applying multilib patch, > > > > > > Transaction check error: > > > file /usr/bin/fcitx4-config conflicts between attempted installs of > > > fcitx-devel-4.2.7-4.fc19.x86_64 and fcitx-devel-4.2.7-4.fc19.i686 > > > > It is more common that -devel packages conflict between multiarch. And we > > cannot break cross-compiling when people build i686 program on x86_64 host. > > devel (and lib) packages must be multilib safe, without any file conflicts Any guideline for this 'must'?
http://fedoraproject.org/wiki/Packaging:Conflicts http://fedoraproject.org/wiki/PackagingDrafts/MultilibTricks http://fedoraproject.org/wiki/Packaging:Guidelines#Multilib_Exempt_Locations It's a natural feature of multilib system that the devel packages don't conflict, the goal is to have both 32 and 64 bit packages installed. You can find many examples in the existing packages that solve this problem with modified foo-config script, a wrapper over 32/64 bit headers etc.
The point is the approach of modified fcitx4-config is not that sane for me. Though it may just work, but it won't provide accurate result when people want to build i686 program on x86_64 host.
(In reply to Robin Lee from comment #10) > The point is the approach of modified fcitx4-config is not that sane for me. > Though it may just work, but it won't provide accurate result when people > want to build i686 program on x86_64 host. I don't think it's a big issue, because anybody should use mock to build for other arch to get sane results.
(In reply to Dan Horák from comment #11) > (In reply to Robin Lee from comment #10) > > The point is the approach of modified fcitx4-config is not that sane for me. > > Though it may just work, but it won't provide accurate result when people > > want to build i686 program on x86_64 host. > > I don't think it's a big issue, because anybody should use mock to build for > other arch to get sane results. That is also the reason that conflicting -devel packages is not a bit deal. Cross-building is the unique usage for i686 -devel packages to be ever installed on x86_64 machine. I may not try to get parallel-installability but break cross-building.
Fedora has taken some initiative to fix such conflicting -devel packages some years ago. See https://bugzilla.redhat.com/192658. Its still valid not to have conflicting -devel packages.
fcitx-4.2.7-6.fc18 has been submitted as an update for Fedora 18. https://admin.fedoraproject.org/updates/fcitx-4.2.7-6.fc18
fcitx-4.2.7-6.fc18 has been pushed to the Fedora 18 stable repository. If problems still persist, please make note of it in this bug report.