Bug 965914 - "/usr/bin/fcitx4-config" of fcitx-libs are preventing install fcitx-libs.i686 with fcitx-libs.x86_64
Summary: "/usr/bin/fcitx4-config" of fcitx-libs are preventing install fcitx-libs.i686...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: fcitx
Version: 18
Hardware: x86_64
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Robin Lee
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-05-22 02:38 UTC by Gris Ge
Modified: 2013-07-02 00:35 UTC (History)
6 users (show)

Fixed In Version: fcitx-4.2.7-6.fc18
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-07-02 00:35:06 UTC


Attachments (Terms of Use)
This patch will fix this multilib issue (700 bytes, patch)
2013-05-22 05:27 UTC, Parag Nemade
no flags Details | Diff

Description Gris Ge 2013-05-22 02:38:41 UTC
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.

Comment 1 Parag Nemade 2013-05-22 05:27:18 UTC
Created attachment 751500 [details]
This patch will fix this multilib issue

Comment 2 Robin Lee 2013-05-28 09:23:59 UTC
(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.

Comment 3 Fedora Update System 2013-06-19 08:55:09 UTC
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

Comment 4 Parag Nemade 2013-06-19 15:54:57 UTC
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

Comment 5 Robin Lee 2013-06-20 02:31:30 UTC
(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.

Comment 6 Fedora Update System 2013-06-20 02:32:42 UTC
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).

Comment 7 Dan Horák 2013-06-20 06:59:39 UTC
(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

Comment 8 Robin Lee 2013-06-20 09:58:15 UTC
(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'?

Comment 9 Dan Horák 2013-06-20 10:13:40 UTC
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.

Comment 10 Robin Lee 2013-06-20 11:03:40 UTC
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.

Comment 11 Dan Horák 2013-06-20 11:13:45 UTC
(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.

Comment 12 Robin Lee 2013-06-21 02:39:52 UTC
(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.

Comment 13 Parag Nemade 2013-06-21 03:40:08 UTC
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.

Comment 14 Fedora Update System 2013-06-21 07:58:23 UTC
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

Comment 15 Fedora Update System 2013-07-02 00:35:06 UTC
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.


Note You need to log in before you can comment on or make changes to this bug.