Bug 198649
Summary: | up2date fails by downloading libgomp-4.1.0-18.EL4.ppc.rpm from rhn | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 4 | Reporter: | Jan Lieskovsky <jlieskov> |
Component: | up2date | Assignee: | Bret McMillan <bretm> |
Status: | CLOSED NOTABUG | QA Contact: | Beth Nackashi <bnackash> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 4.0 | CC: | jakub, lockhart, nobody+pnasrat, poelstra, rbiba |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | ppc64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2006-08-09 18:55:09 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Jan Lieskovsky
2006-07-12 14:42:28 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 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. 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. 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. 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. 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 :) 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 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. |