Bug 198649 - up2date fails by downloading libgomp-4.1.0-18.EL4.ppc.rpm from rhn
Summary: up2date fails by downloading libgomp-4.1.0-18.EL4.ppc.rpm from rhn
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: up2date
Version: 4.0
Hardware: ppc64
OS: Linux
medium
medium
Target Milestone: ---
: ---
Assignee: Bret McMillan
QA Contact: Beth Nackashi
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2006-07-12 14:42 UTC by Jan Lieskovsky
Modified: 2007-11-30 22:07 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-08-09 18:55:09 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Jan Lieskovsky 2006-07-12 14:42:28 UTC
Description of problem:

up2date fails to download default arch pkg (-m32) for libgomp on
ppc64 

from tps-rhnqa.log: 
. . .
sigVerify of /var/spool/up2date/libgomp-4.1.0-18.EL4.ppc.rpm
verify of /var/spool/up2date/libgomp-4.1.0-18.EL4.ppc.rpm FAILED: no such file
sigVerify of /var/spool/up2date/libgomp-4.1.0-18.EL4.ppc64.rpm
signature verification: PASS for
/var/spool/up2date/libgomp-4.1.0-18.EL4.ppc64.rpm : keyID: db42a60e
. . . 

There should by implicitly available libgomp*.ppc pkg even if this is
64 bit architecture, and libgomp*.ppc64 should be available via

up2date --arch 

command (additional installation).



Version-Release number of selected component (if applicable):
up2date-4.4.67-4.ppc

How reproducible:
Always

Steps to Reproduce:
1.
2.
3.
  
Actual results:

sigVerify of /var/spool/up2date/libgomp-4.1.0-18.EL4.ppc.rpm
verify of /var/spool/up2date/libgomp-4.1.0-18.EL4.ppc.rpm FAILED: no such file
sigVerify of /var/spool/up2date/libgomp-4.1.0-18.EL4.ppc64.rpm
signature verification: PASS for
/var/spool/up2date/libgomp-4.1.0-18.EL4.ppc64.rpm : keyID: db42a60e



Expected results:
sigVerify of /var/spool/up2date/libgomp-4.1.0-18.EL4.ppc.rpm
signature verification: PASS for /var/spool/up2date/libgomp-4.1.0-18.EL4.ppc.rpm
: keyID: db42a60e


Additional info:
Found during tps-RHNQA testing of 2006:0511 for RHEL4.

The similar problem is on ia64, s390x and x86_64 archs (default 
option for ia64,s390x and x86_64 is -m64)
(there are downloaded native pkgs libgomp.*.{ia64,s390x,x86_64}
and their 32 bit versions is available via running

up2date --arch={i386,s390,i386} -i libgomp

command.
But this is not the case of the ppc64 arch. The default option here is
-m32, so there should be libgomp.*.ppc implicit available, and 
libgomp.*.ppc64 by additional installation. Current state is exactly
contradictory (there are libgomp.*.ppc64 implicit available, and 
libgomp.*.ppc by additional installation)

See 
http://errata.devel.redhat.com/errata/showrequest.cgi?advisory=2006:0511#c76
if unsure.

Comment 1 Jan Lieskovsky 2006-07-12 15:23:59 UTC
ppc pkgs filelist (which new pkgs should be installed):

/mnt/redhat/beehive/updates/dist/4AS/ppc/gcc4-4.1.0-18.EL4.ppc.rpm
/mnt/redhat/beehive/updates/dist/4AS/ppc/gcc4-c++-4.1.0-18.EL4.ppc.rpm
/mnt/redhat/beehive/updates/dist/4AS/ppc/gcc4-debuginfo-4.1.0-18.EL4.ppc.rpm
/mnt/redhat/beehive/updates/dist/4AS/ppc/gcc4-debuginfo-4.1.0-18.EL4.ppc64.rpm
/mnt/redhat/beehive/updates/dist/4AS/ppc/gcc4-gfortran-4.1.0-18.EL4.ppc.rpm
/mnt/redhat/beehive/updates/dist/4AS/ppc/gcc4-java-4.1.0-18.EL4.ppc.rpm
/mnt/redhat/beehive/updates/dist/4AS/ppc/libgcj4-4.1.0-18.EL4.ppc.rpm
/mnt/redhat/beehive/updates/dist/4AS/ppc/libgcj4-4.1.0-18.EL4.ppc64.rpm
/mnt/redhat/beehive/updates/dist/4AS/ppc/libgcj4-devel-4.1.0-18.EL4.ppc.rpm
/mnt/redhat/beehive/updates/dist/4AS/ppc/libgcj4-src-4.1.0-18.EL4.ppc.rpm
/mnt/redhat/beehive/updates/dist/4AS/ppc/libgfortran-4.1.0-18.EL4.ppc.rpm
/mnt/redhat/beehive/updates/dist/4AS/ppc/libgfortran-4.1.0-18.EL4.ppc64.rpm
/mnt/redhat/beehive/updates/dist/4AS/ppc/libgomp-4.1.0-18.EL4.ppc.rpm
/mnt/redhat/beehive/updates/dist/4AS/ppc/libgomp-4.1.0-18.EL4.ppc64.rpm
/mnt/redhat/beehive/updates/dist/4AS/ppc/libmudflap-4.1.0-18.EL4.ppc.rpm
/mnt/redhat/beehive/updates/dist/4AS/ppc/libmudflap-4.1.0-18.EL4.ppc64.rpm
/mnt/redhat/beehive/updates/dist/4AS/ppc/libmudflap-devel-4.1.0-18.EL4.ppc.rpm

what is installed(for i in `cat pkgnames-new-4AS-ppc.list`; do rpm -q $i; done):

gcc4-4.1.0-18.EL4.ppc
gcc4-c++-4.1.0-18.EL4.ppc
gcc4-debuginfo-4.1.0-18.EL4.ppc
gcc4-gfortran-4.1.0-18.EL4.ppc
gcc4-java-4.1.0-18.EL4.ppc
libgcj4-4.1.0-18.EL4.ppc64
libgcj4-4.1.0-18.EL4.ppc
libgcj4-devel-4.1.0-18.EL4.ppc
libgcj4-src-4.1.0-18.EL4.ppc
libgfortran-4.1.0-18.EL4.ppc64
libgfortran-4.1.0-18.EL4.ppc
libgomp-4.1.0-18.EL4.ppc64
libgomp-4.1.0-18.EL4.ppc
libmudflap-4.1.0-18.EL4.ppc64
libmudflap-4.1.0-18.EL4.ppc
libmudflap-devel-4.1.0-18.EL4.ppc

Comment 2 Bret McMillan 2006-07-12 15:28:12 UTC
I fixed a large number of multilib issues with up2date 4.4.69 pkgs in 3u8 & 4u4.
 Please retest using those packages.

However, up2date uses rpm to determine "preferred arch."  If, on ppc64, rpm
states that ppc64 is preferred over ppc, up2date will follow that rule.  If a
change needs to happen here, we would need to focus the discussion at the rpm
level, not up2date.

Comment 3 Jan Lieskovsky 2006-07-12 15:38:28 UTC
Received up2date result:

up2date --nox -d --src gcc4 gcc4-c++ gcc4-debuginfo gcc4-gfortran gcc4-java
libgcj4 libgcj4-devel libgcj4-src libgfortran libgomp libmudflap libmudflap-devel

Fetching Obsoletes list for channel: rhel-ppc-as-4...

Fetching Obsoletes list for channel: rhel-ppc-as-4-extras...

Fetching Obsoletes list for channel: rhel-ppc-as-4-hwcert...

Fetching Obsoletes list for channel: rhel-ppc-as-4-fastrack...

Fetching rpm headers...
########################################

Name                                    Version        Rel
----------------------------------------------------------
gcc4                                    4.1.0          18.EL4            ppc
gcc4-c++                                4.1.0          18.EL4            ppc
gcc4-gfortran                           4.1.0          18.EL4            ppc
gcc4-java                               4.1.0          18.EL4            ppc
libgcj4                                 4.1.0          18.EL4            ppc
libgcj4                                 4.1.0          18.EL4            ppc64
libgcj4-devel                           4.1.0          18.EL4            ppc
libgcj4-src                             4.1.0          18.EL4            ppc
libgfortran                             4.1.0          18.EL4            ppc
libgfortran                             4.1.0          18.EL4            ppc64
libgomp                                 4.1.0          18.EL4            ppc64
libmudflap                              4.1.0          18.EL4            ppc
libmudflap                              4.1.0          18.EL4            ppc64
libmudflap-devel                        4.1.0          18.EL4            ppc


Testing package set / solving RPM inter-dependencies...
warning: waiting for transaction lock on /var/lock/rpm/transaction
########################################
gcc4-4.1.0-18.EL4.ppc.rpm:  ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:   gcc4-c++-4.1.0-18.EL4.ppc.r
########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
gcc4-gfortran-4.1.0-18.EL4. ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
gcc4-java-4.1.0-18.EL4.ppc. ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libgcj4-4.1.0-18.EL4.ppc.rp ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libgcj4-4.1.0-18.EL4.ppc64. ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libgcj4-devel-4.1.0-18.EL4. ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libgcj4-src-4.1.0-18.EL4.pp ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libgfortran-4.1.0-18.EL4.pp ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libgfortran-4.1.0-18.EL4.pp ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libgomp-4.1.0-18.EL4.ppc64. ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libmudflap-4.1.0-18.EL4.ppc ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libmudflap-4.1.0-18.EL4.ppc ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libmudflap-devel-4.1.0-18.E ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.

Comment 4 Jan Lieskovsky 2006-07-12 15:40:02 UTC
Expected up2date result:

up2date --nox -d --src gcc4 gcc4-c++ gcc4-debuginfo gcc4-gfortran gcc4-java
libgcj4 libgcj4-devel libgcj4-src libgfortran libgomp libmudflap libmudflap-devel

Fetching Obsoletes list for channel: rhel-ppc-as-4...

Fetching Obsoletes list for channel: rhel-ppc-as-4-extras...

Fetching Obsoletes list for channel: rhel-ppc-as-4-hwcert...

Fetching Obsoletes list for channel: rhel-ppc-as-4-fastrack...

Fetching rpm headers...
########################################

Name                                    Version        Rel
----------------------------------------------------------
gcc4                                    4.1.0          18.EL4            ppc
gcc4-c++                                4.1.0          18.EL4            ppc
gcc4-gfortran                           4.1.0          18.EL4            ppc
gcc4-java                               4.1.0          18.EL4            ppc
libgcj4                                 4.1.0          18.EL4            ppc
libgcj4                                 4.1.0          18.EL4            ppc64
libgcj4-devel                           4.1.0          18.EL4            ppc
libgcj4-src                             4.1.0          18.EL4            ppc
libgfortran                             4.1.0          18.EL4            ppc
libgfortran                             4.1.0          18.EL4            ppc64
libgomp                                 4.1.0          18.EL4            ppc64
libmudflap                              4.1.0          18.EL4            ppc
libmudflap                              4.1.0          18.EL4            ppc64
libmudflap-devel                        4.1.0          18.EL4            ppc


Testing package set / solving RPM inter-dependencies...
warning: waiting for transaction lock on /var/lock/rpm/transaction
########################################
gcc4-4.1.0-18.EL4.ppc.rpm:  ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:   gcc4-c++-4.1.0-18.EL4.ppc.r
########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
gcc4-gfortran-4.1.0-18.EL4. ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
gcc4-java-4.1.0-18.EL4.ppc. ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libgcj4-4.1.0-18.EL4.ppc.rp ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libgcj4-4.1.0-18.EL4.ppc64. ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libgcj4-devel-4.1.0-18.EL4. ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libgcj4-src-4.1.0-18.EL4.pp ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libgfortran-4.1.0-18.EL4.pp ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libgfortran-4.1.0-18.EL4.pp ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.

libgomp-4.1.0-18.EL4.ppc. ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.

libmudflap-4.1.0-18.EL4.ppc ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libmudflap-4.1.0-18.EL4.ppc ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libmudflap-devel-4.1.0-18.E ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.


Comment 5 Jan Lieskovsky 2006-07-13 08:48:34 UTC
up2date up2date-4.4.69-22.ppc returns following: 

up2date --nox -d --src gcc4 gcc4-c++ gcc4-debuginfo gcc4-gfortran gcc4-java
libgcj4 libgcj4-devel libgcj4-src libgfortran libgomp libmudflap libmudflap-devel

=> 
Fetching Obsoletes list for channel: rhel-ppc-as-4...

Fetching Obsoletes list for channel: rhel-ppc-as-4-extras...

. . .
. . .

libgfortran-4.1.0-18.EL4.pp ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libgfortran-4.1.0-18.EL4.pp ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libgomp-4.1.0-18.EL4.ppc64. ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libmudflap-4.1.0-18.EL4.ppc ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libmudflap-4.1.0-18.EL4.ppc ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.
libmudflap-devel-4.1.0-18.E ########################## Done.
gcc4-4.1.0-18.EL4.src.rpm:  ########################## Done.


So up2date still offers .ppc64 version of the libgomp pkg. 

Comment 6 Bret McMillan 2006-08-09 18:55:09 UTC
I'm not really sure what comments 4 & 5 are trying to tell me.  Please take a
look at the 2nd bit of comment 3:

"However, up2date uses rpm to determine "preferred arch."  If, on ppc64, rpm
states that ppc64 is preferred over ppc, up2date will follow that rule.  If a
change needs to happen here, we would need to focus the discussion at the rpm
level, not up2date."

My understanding is that rpm prefers ppc64 over ppc on compatible systems.  If
this is not desired by customers, we need to drive that fix into rpm, not each
and every separate tool that uses rpm (up2date, yum, etc).

I'm closing this bug; if I've missed something not related to archscore, please
re-open and point me at what I missed :)

Comment 7 John W. Lockhart 2006-08-09 19:35:51 UTC
The correct thing when using this package is to always have libgomp.ppc
available on any ppc box (whether ppc or ppc64).

<jwl> jakub: gcc4/libgomp question.  On ppc for 4AS, an up2date of gcc4 yields
gcc-4.1.ppc+libgomp.ppc64.  libgomp.ppc is not installed.  What problems does
this pose? --  https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=198649

<jakub> jwl: that you can't link -fopenmp programs by default?
<jakub> jwl: unless you build it as 64-bit program, i.e. -m64 -fopenmp

<roland> jwl: what happens for libgcc?
<jakub> roland: libgcc is likely used by big number of packages, unlike libgomp
<jakub> roland: so usually both libgcc.ppc and libgcc.ppc64 are installed
<jwl> roland: for libgcc, you get both ppc and ppc64
<roland> jakub: true, so it might be winning only by luck rather than correctness
<jakub> roland: for libgomp, the thing is that this is a new subpackage
<jakub> roland: yeah.  Really ppc64 shouldn't win over ppc on ppc*, when we
clearly prefer 32-bit there
<roland> jakub: and there is no canonical -devel pkg that requires libgomp?
<jakub> roland: the rpm preferences don't match the distro intentions
<jakub> roland: no, libgomp's -devel stuff is in gcc package, for both arches
<roland> jakub: maybe gcc should Require: %{_libdir}/libgomp.so ?
<roland> jakub: and then also require other-libdir on biarch arches
<jakub> roland: maybe; but the RHEL4.4 packages are already done
<jakub> roland: I can't require libgomp.ppc64 on ppc, because that would make it
impossible to install gcc on 32-bit ppc CPUs
<roland> jakub: hmm.  i guess 32-bit hardware installs don't want to be able to
use gcc -m64?
<jk_meeting> roland: does that even work from a pure 32bit system?  Rpm prevents
the installing of off-arch packages.
<roland> jk_meeting: no clue


Comment 8 Paul Nasrat 2006-08-09 20:09:30 UTC
I assume this is because:
rpm -qpR /mnt/redhat/beehive/updates/dist/4AS/ppc/gcc4-4.1.0-18.EL4.ppc.rpm

requires shows:

libgomp = 4.1.0-18.EL4

on rawhide we also have libgomp.so.1 (which will be coloured) so we should pull
in correctly due  to the symlink deps rpm --qf '[%{filenames} %{filerequire}\n]'
-q gcc shows you that.  If we actually had something linking against libgomp in
the package that'd pull it in, else we'd have to do something in the spec to require
libgomp.so.X or libgomp.so.X (64bit) as appropriate.


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