Bug 201837 - The flex rpm is not suitable for multilib environments
Summary: The flex rpm is not suitable for multilib environments
Alias: None
Product: Fedora
Classification: Fedora
Component: flex (Show other bugs)
(Show other bugs)
Version: 5
Hardware: All Linux
Target Milestone: ---
Assignee: Petr Machata
QA Contact:
Depends On:
TreeView+ depends on / blocked
Reported: 2006-08-09 10:24 UTC by David Howells
Modified: 2015-05-05 01:32 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2006-08-10 11:39:51 UTC
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

Description David Howells 2006-08-09 10:24:04 UTC
The flex package produces a single rpm that contains both the flex binary and 
the flex libraries. However, this is a problem on systems with installations 
of libraries for multiple architectures.

For instance, on my x86_64 desktop box, I only get the x86_64 flex rpm 
installed, and so only have /usr/lib64/libfl.a installed. I *don't* 
get /usr/lib/libfl.a installed, and so can't build, say, pam for i686 on my 
x86_64 box.

I can't install both packages without getting a conflict over the common files 
(such as the flex program).

Comment 1 Petr Machata 2006-08-10 10:46:40 UTC
I have no problems installing both x86_64 and i386 flex packages alongside. 
Turns out rpm won't overwrite the /usr/bin/flex with the version from i386
package.  The libraries are both in place however.

[root@prdell ~]# cat /etc/redhat-release
Fedora Core release 5 (Bordeaux)

[root@prdell ~]# rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' flex

[root@prdell ~]# ls -ls /usr/lib*/libfl*
8 -rw-r--r-- 1 root root 2764 Jul 19 06:51 /usr/lib64/libfl.a
8 -rw-r--r-- 1 root root 2288 Jul 19 06:49 /usr/lib/libfl.a

[root@prdell ~]# rpm -q --whatprovides --qf
'%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' /usr/lib/libfl.a

[root@prdell ~]# rpm -q --whatprovides --qf
'%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n' /usr/lib64/libfl.a

The binary is owned by x86_64 package, so it will get removed on rpm -e even
when i386 package is still in place, but installing and uninstalling i386
package alongside x86_64 is possible.  I don't think it's necessary to have
separate package for libfl.a.  Is this OK for you?

Comment 2 David Howells 2006-08-10 11:39:51 UTC
Hmmm... You're right: it does work.  Shouldn't the installation raise a 
complaint?  For flex this probably isn't a problem, provided you install the 
right arch package first. So it's probably okay - at least I can't think of a 
problem with it just at this moment in time.

Comment 3 Petr Machata 2006-08-10 11:59:02 UTC
I believe this is by design of some internal rpm magic.  I think it would
complain e.g. if the two arches got different FlexLexer.h, or if there was real
conflict in library files, but binaries probably get resolved by prioritizing
x86_64 files.

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