https://bugzilla.novell.com/show_bug.cgi?id=795594
https://bugzilla.novell.com/show_bug.cgi?id=795594#c0
Summary: gcc47 source package requires unknown glibc-32bit Classification: openSUSE Product: openSUSE 12.2 Version: Final Platform: x86 OS/Version: openSUSE 12.2 Status: NEW Severity: Normal Priority: P5 - None Component: Development AssignedTo: bnc-team-screening@forge.provo.novell.com ReportedBy: Franz.Reinhardt@wenglor.com QAContact: qa-bugs@suse.de Found By: --- Blocker: ---
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0
Installing the sourc package requires glibc-32bit, which is not available
zypper si gcc47 Reading installed packages... Loading repository data... Resolving package dependencies...
Problem: nothing provides glibc-32bit needed by gcc47-4.7.1_20120723-1.1.1.src Solution 1: do not ask to install a solvable providing gcc47.src = 4.7.1_20120723-1.1.1 Solution 2: break gcc47-4.7.1_20120723-1.1.1.src by ignoring some of its dependencies
Choose from above solutions by number or cancel [1/2/c] (c):
Reproducible: Always
Steps to Reproduce:
From the cli call: zypper si gcc47
rpm -bb on the spec works correctly, even when installed with solution 2
https://bugzilla.novell.com/show_bug.cgi?id=795594
https://bugzilla.novell.com/show_bug.cgi?id=795594#c1
--- Comment #1 from Franz Reinhardt Franz.Reinhardt@wenglor.com 2012-12-21 09:03:14 UTC --- # | Alias | Name | Enabled | Refresh | Priority | Type | URI | Service --+-----------------------+-----------------------+---------+---------+----------+--------+---------------------------------------------------------------------------+-------- 1 | DebugInfo | DebugInfo | Yes | Yes | 99 | yast2 | http://download.opensuse.org/debug/distribution/12.2/repo/oss/ | 2 | Factory | Factory | No | No | 97 | yast2 | http://download.opensuse.org/factory/repo/oss/ | 3 | NonOss | NonOss | Yes | Yes | 99 | yast2 | http://download.opensuse.org/distribution/12.2/repo/non-oss/ | 4 | SrcNonOss | SrcNonOss | Yes | Yes | 99 | yast2 | http://download.opensuse.org/source/distribution/12.2/repo/non-oss/ | 5 | SrcOss | SrcOss | Yes | Yes | 99 | yast2 | http://download.opensuse.org/source/distribution/12.2/repo/oss/ | 6 | Tumbleweed | Tumbleweed | No | No | 99 | rpm-md | http://download.opensuse.org/repositories/openSUSE:/Tumbleweed/standard/ | 7 | home:XroadracerX_12.2 | home:XroadracerX_12.2 | Yes | No | 100 | rpm-md | http://download.opensuse.org/repositories/home:XroadracerX/openSUSE_12.2/ | 8 | openSUSE_12.2_OSS | openSUSE_12.2_OSS | Yes | Yes | 99 | yast2 | http://download.opensuse.org/distribution/12.2/repo/oss | 9 | openSUSE_12.2_Updates | openSUSE_12.2_Updates | Yes | Yes | 98 | rpm-md | http://download.opensuse.org/update/12.2/ |
https://bugzilla.novell.com/show_bug.cgi?id=795594
https://bugzilla.novell.com/show_bug.cgi?id=795594#c
Jiaying ren jren@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jren@suse.com AssignedTo|bnc-team-screening@forge.pr |rguenther@suse.com |ovo.novell.com |
https://bugzilla.novell.com/show_bug.cgi?id=795594
https://bugzilla.novell.com/show_bug.cgi?id=795594#c2
Richard Biener rguenther@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |adrian@suse.com, | |coolo@suse.com, | |rguenther@suse.com, | |ro@suse.com AssignedTo|rguenther@suse.com |mls@suse.com
--- Comment #2 from Richard Biener rguenther@suse.com 2013-01-02 10:06:47 UTC --- Well, this is a generic issue in how we handle multilibs in BuildRequires (which get translated to Requires of the source package) and the fact that we only ship one source package.
The
BuildRequires: glibc-devel-32bit
of the gcc47 source package gets magically translated to an appropriate architecture specific BuildRequires (nothing for x86 for example, glibc-devel-64bit for ppc for example). Due to the fact that we (randomly?) pick a source package from any architecture you sometimes get superfluous (or even bogus) requires in source packages.
I believe the correct solution is to get rid of the magic translations and use (SUSE specific) macros here that are properly expanded on the host architecture and provided by rpm[build] macro files.
Thus, instead of the above, have
BuildRequires: glibc-devel-%multi
or even
BuildRequires: %glibc-devel-multi
or
BuildRequires: %multi(glibc-devel)
which would select all available multilib variants for glibc-devel (if we ever again end up with more than two, like when we ever ship the new 32bit x86_64 multilibs).
https://bugzilla.novell.com/show_bug.cgi?id=795594
https://bugzilla.novell.com/show_bug.cgi?id=795594#c3
--- Comment #3 from Richard Biener rguenther@suse.com 2013-01-02 11:41:54 UTC --- It also means that in the build services all architecture conditional stuff needs to be removed and added in appropriate places.
For example:
%ifarch ia64 Support: libunwind libunwind-devel Preinstall: libunwind %endif
should be in rpmbuild's dependency (well, doesn't work for Preinstall of course).
And the fortunately only "magic" substitute:
%ifarch x86_64 ppc64 s390x sparc64 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit %else %ifarch ppc sparc sparcv9 Substitute: glibc-devel-32bit glibc-devel-64bit %else Substitute: glibc-devel-32bit %endif %endif
should go. Can be replicated in all affected .spec files (won't fix source package dependencies though) or implemented via some mechanism as I suggested.
http://bugzilla.novell.com/show_bug.cgi?id=795594 http://bugzilla.novell.com/show_bug.cgi?id=795594#c5
Richard Biener rguenther@suse.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |WONTFIX
--- Comment #5 from Richard Biener rguenther@suse.com --- So nobody is interested here? Ok.