Bug 201837 - The flex rpm is not suitable for multilib environments
The flex rpm is not suitable for multilib environments
Status: CLOSED NOTABUG
Product: Fedora
Classification: Fedora
Component: flex (Show other bugs)
5
All Linux
medium Severity medium
: ---
: ---
Assigned To: Petr Machata
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2006-08-09 06:24 EDT by David Howells
Modified: 2015-05-04 21:32 EDT (History)
1 user (show)

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


Attachments (Terms of Use)

  None (edit)
Description David Howells 2006-08-09 06:24:04 EDT
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 06:46:40 EDT
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
flex-2.5.4a-41.fc5.x86_64
flex-2.5.4a-41.fc5.i386

[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
flex-2.5.4a-41.fc5.i386

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

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 07:39:51 EDT
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 07:59:02 EDT
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.