[opensuse-packaging] Conflicting gcc versions?
Hi, I have two packages (one linked to the other) to build on different architectures and platforms. In order to build the code for a specific platform I need a specific version of gcc (v.6.0) but when the build kicks off for OpenSuse 42.2 I get the following error despite the fact that gcc6 is available on that distro. unresolvable: conflict for provider of libgcc_s1 >= 6.1.1+r238085-1.12 needed by gcc6 (provider libgcc_s1-gcc6 is conflicted by installed libgcc_s1) I'd like to keep the two .spec files as aligned as possible (hence keeping the dependency in both of them) to avoid bugs introduced in one version of the file vs the other. The build is successful for the Factory repos. Is there a way to fix this problem (i.e. force OBS to use/install a specific version of gcc) ? On an installed distro (42.2), this works fine by installing one version of gcc rather than the other... Thanks, Marco -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Donnerstag, 5. Januar 2017, 11:15:17 CET wrote Marco Varlese:
Hi,
I have two packages (one linked to the other) to build on different architectures and platforms. In order to build the code for a specific platform I need a specific version of gcc (v.6.0) but when the build kicks off for OpenSuse 42.2 I get the following error despite the fact that gcc6 is available on that distro.
unresolvable: conflict for provider of libgcc_s1 >= 6.1.1+r238085-1.12 needed by gcc6 (provider libgcc_s1-gcc6 is conflicted by installed libgcc_s1)
I'd like to keep the two .spec files as aligned as possible (hence keeping the dependency in both of them) to avoid bugs introduced in one version of the file vs the other.
The build is successful for the Factory repos.
Is there a way to fix this problem (i.e. force OBS to use/install a specific version of gcc) ? On an installed distro (42.2), this works fine by installing one version of gcc rather than the other...
Yes, but there is only a way via the prjconf: Preinstall: !libgcc_s1 Preinstall: libgcc_s1-gcc6 IMHO we should modify our official project configuration of openSUSE to use the newer libgcc_s1 always. We can maybe do this in :Update project at least? Ludwig? -- Adrian Schroeter email: adrian@suse.de SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) Maxfeldstraße 5 90409 Nürnberg Germany -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Thu, 5 Jan 2017, Adrian Schröter wrote:
On Donnerstag, 5. Januar 2017, 11:15:17 CET wrote Marco Varlese:
Hi,
I have two packages (one linked to the other) to build on different architectures and platforms. In order to build the code for a specific platform I need a specific version of gcc (v.6.0) but when the build kicks off for OpenSuse 42.2 I get the following error despite the fact that gcc6 is available on that distro.
unresolvable: conflict for provider of libgcc_s1 >= 6.1.1+r238085-1.12 needed by gcc6 (provider libgcc_s1-gcc6 is conflicted by installed libgcc_s1)
I'd like to keep the two .spec files as aligned as possible (hence keeping the dependency in both of them) to avoid bugs introduced in one version of the file vs the other.
The build is successful for the Factory repos.
Is there a way to fix this problem (i.e. force OBS to use/install a specific version of gcc) ? On an installed distro (42.2), this works fine by installing one version of gcc rather than the other...
Yes, but there is only a way via the prjconf:
Preinstall: !libgcc_s1 Preinstall: libgcc_s1-gcc6
IMHO we should modify our official project configuration of openSUSE to use the newer libgcc_s1 always. We can maybe do this in :Update project at least?
Yeah, not sure why 42.2 doesn't mirror what SLE12 does here. I think I remember that GCC 6 was taken into 42.2 "early" (before we actually released the Toolchain module update), so it has probably been forgotten? Richard.
Ludwig?
-- Richard Biener <rguenther@suse.de> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg)
Richard Biener wrote:
[...] Yeah, not sure why 42.2 doesn't mirror what SLE12 does here. I think I remember that GCC 6 was taken into 42.2 "early" (before we actually released the Toolchain module update), so it has probably been forgotten?
Well, those in charge of the project config were not notified of any required changes. gcc6 came to 42.2 via automatic bot submission from Factory in August. You approved the submission yourself. SLE released gcc6 as maintenance update for GA in September. AFAICS a mix of gcc 4.8, gcc 5 and gcc 6 libraries is used in SLE. So we end up with three compilers in Ring0 now? cu Ludwig -- (o_ Ludwig Nussel //\ V_/_ http://www.suse.com/ SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Thu, 5 Jan 2017, Ludwig Nussel wrote:
Richard Biener wrote:
[...] Yeah, not sure why 42.2 doesn't mirror what SLE12 does here. I think I remember that GCC 6 was taken into 42.2 "early" (before we actually released the Toolchain module update), so it has probably been forgotten?
Well, those in charge of the project config were not notified of any required changes. gcc6 came to 42.2 via automatic bot submission from Factory in August. You approved the submission yourself.
Yes, but we've had a discussion on the hallway about this and I didn't care either way.
SLE released gcc6 as maintenance update for GA in September.
So why was it then not "pushed"/"auto-submitted" to 42.2 from that then? But yes, unfortunately required project config changes are not tied to packages.
AFAICS a mix of gcc 4.8, gcc 5 and gcc 6 libraries is used in SLE. So we end up with three compilers in Ring0 now?
Quite possibly yes, though only gcc48 should take part in the "bootstrapping", gcc5 and gcc6 should just build once. Richard. -- Richard Biener <rguenther@suse.de> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nuernberg) -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Richard Biener wrote:
On Thu, 5 Jan 2017, Ludwig Nussel wrote:
Richard Biener wrote:
[...] SLE released gcc6 as maintenance update for GA in September.
So why was it then not "pushed"/"auto-submitted" to 42.2 from that then?
The package was marked as coming from Factory plus the one that appeared as SLE Update had a different srcmd5. So a script can't see the relation. This needs a nudge from a human.
But yes, unfortunately required project config changes are not tied to packages.
AFAICS a mix of gcc 4.8, gcc 5 and gcc 6 libraries is used in SLE. So we end up with three compilers in Ring0 now?
Quite possibly yes, though only gcc48 should take part in the "bootstrapping", gcc5 and gcc6 should just build once.
What I see in Ring0 with gcc5 doesn't confirm that :-) cu Ludwig -- (o_ Ludwig Nussel //\ V_/_ http://www.suse.com/ SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Donnerstag, 5. Januar 2017, 11:15:17 CET wrote Marco Varlese:
Hi,
I have two packages (one linked to the other) to build on different architectures and platforms. In order to build the code for a specific platform I need a specific version of gcc (v.6.0) but when the build kicks off for OpenSuse 42.2 I get the following error despite the fact that gcc6 is available on that distro.
unresolvable: conflict for provider of libgcc_s1 >= 6.1.1+r238085-1.12 needed by gcc6 (provider libgcc_s1-gcc6 is conflicted by installed libgcc_s1)
I'd like to keep the two .spec files as aligned as possible (hence keeping the dependency in both of them) to avoid bugs introduced in one version of the file vs the other.
The build is successful for the Factory repos.
Is there a way to fix this problem (i.e. force OBS to use/install a specific version of gcc) ? On an installed distro (42.2), this works fine by installing one version of gcc rather than the other...
Yes, but there is only a way via the prjconf:
Preinstall: !libgcc_s1 Preinstall: libgcc_s1-gcc6 Thanks for the hint; however, this I think is a project wide setting so all
On Thu, 2017-01-05 at 11:27 +0100, Adrian Schröter wrote: packages under my project will be affected, even other packages which shouldn't be. Do I get this right? A possible solution then would be to create a project containing only the packages which I need to and separate others...?
IMHO we should modify our official project configuration of openSUSE to use
the newer libgcc_s1 always. We can maybe do this in :Update project at least?
I was wondering the same; if we have gcc6 available for 42.2 why OBS is still (by default) building with the older compiler? Couldn't we have the most recent one (available for a given distro) being the default compiler for OBS?
Ludwig?
-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Donnerstag, 5. Januar 2017, 13:22:44 CET wrote Marco Varlese:
On Donnerstag, 5. Januar 2017, 11:15:17 CET wrote Marco Varlese:
Hi,
I have two packages (one linked to the other) to build on different architectures and platforms. In order to build the code for a specific platform I need a specific version of gcc (v.6.0) but when the build kicks off for OpenSuse 42.2 I get the following error despite the fact that gcc6 is available on that distro.
unresolvable: conflict for provider of libgcc_s1 >= 6.1.1+r238085-1.12 needed by gcc6 (provider libgcc_s1-gcc6 is conflicted by installed libgcc_s1)
I'd like to keep the two .spec files as aligned as possible (hence keeping the dependency in both of them) to avoid bugs introduced in one version of the file vs the other.
The build is successful for the Factory repos.
Is there a way to fix this problem (i.e. force OBS to use/install a specific version of gcc) ? On an installed distro (42.2), this works fine by installing one version of gcc rather than the other...
Yes, but there is only a way via the prjconf:
Preinstall: !libgcc_s1 Preinstall: libgcc_s1-gcc6 Thanks for the hint; however, this I think is a project wide setting so all
On Thu, 2017-01-05 at 11:27 +0100, Adrian Schröter wrote: packages under my project will be affected, even other packages which shouldn't be. Do I get this right?
yes, right, but the newer libgcc_s1 should be fully backward compatible. So IMHO the risk is really low.
A possible solution then would be to create a project containing only the packages which I need to and separate others...?
IMHO we should modify our official project configuration of openSUSE to use
the newer libgcc_s1 always. We can maybe do this in :Update project at least?
I was wondering the same; if we have gcc6 available for 42.2 why OBS is still (by default) building with the older compiler?
because it is still the default compile used in SLE and therefore all sources are only QA'd with the older one.
Couldn't we have the most recent one (available for a given distro) being the default compiler for OBS?
No, but IMHO the switch to the newer libgcc_s1 should be okay. That way a package just needs to BuildRequires: gcc >= 6.0 or alike to switch.
Ludwig?
-- Adrian Schroeter email: adrian@suse.de SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) Maxfeldstraße 5 90409 Nürnberg Germany -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
Marco Varlese wrote:
On Donnerstag, 5. Januar 2017, 11:15:17 CET wrote Marco Varlese:
[...] Is there a way to fix this problem (i.e. force OBS to use/install a specific version of gcc) ? On an installed distro (42.2), this works fine by installing one version of gcc rather than the other...
Yes, but there is only a way via the prjconf:
Preinstall: !libgcc_s1 Preinstall: libgcc_s1-gcc6 Thanks for the hint; however, this I think is a project wide setting so all
On Thu, 2017-01-05 at 11:27 +0100, Adrian Schröter wrote: packages under my project will be affected, even other packages which shouldn't be. Do I get this right? A possible solution then would be to create a project containing only the packages which I need to and separate others...?
You could make it conditional with something like %if 0%{?leap_version} == 420200 cu Ludwig -- (o_ Ludwig Nussel //\ V_/_ http://www.suse.com/ SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (4)
-
Adrian Schröter
-
Ludwig Nussel
-
Marco Varlese
-
Richard Biener