Monday, 20 July 2015

GCC 5 for 14.10 (wily) on July 31

Hi,

We are currently preparing the switch to GCC 5 as the default compiler for 14.10
(wily). Unlike earlier updates to newer compiler versions, which only required
updating packages to newer language standards, this time we have a partial ABI
transition in the standard C++ library (libstdc++6). Basically we'll have to
rebuild around 3500 source packages, and will have some hundred follow-up
library transitions.

The libstdc++6 transition is prepared in the PPA

https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/landing-016

To test other packages you need to use this PPA as a dependency for your PPA /
your local chroot. It is not enough to use the GCC 5 packages in wily. We are
preparing the transition in a PPA, because direct uploads would break things a
bit too much. Of course we can't prepare some thousand packages in the PPA and
keep track of them with the wily archive, so at some point (July 31), we'll copy
this PPA to the distribution and will continue the transition from there. The
PPA probably is not yet ready to be installed into your host system, not
everything is yet rebuilt using the new compilers. Help from the Ubuntu desktop
team would be appreciated. Same for the server and cloud teams.

The technical details what you can expect from GCC 5 are described in the Debian
Wiki (not different for Ubuntu) at https://wiki.debian.org/GCC5.
Porting hints available at https://gcc.gnu.org/gcc-5/porting_to.html.

The g++-5/libstdc++6 will trigger some followup transitions; these are currently
only tracked for Debian unstable, and will sync/merge into Ubuntu. We are
trying to avoid explicit transitions in Ubuntu because of the extra work, and
because Ubuntu doesn't guarantee partial updates. Packages affected by the
transition will have a dependency on libstdc++6 (>= 5.2), which won't migrate to
the release pocket soon. We will keep these packages in the proposed pocket
until we can validate that common installation like the Ubuntu desktop or the
Kubuntu desktop won't break. This effectively means, that migrations to the
release pocket won't happen for a week or two (of course except those not
relying on libstdc++6).

If you are a core developer you can upload directly to the landing-016 PPA.
Please keep in mind that you are responsible to keep packages in this PPA up to
date. Packages should have a higher version number than in wily-proposed.
No-change uploads should have a version number of the form
<upstream-ver>-<next ubuntu version>~gcc5.N
When in doubt, please ask on IRC (FreeNode, #ubuntu-devel).

Non core developers should prepare packages in their own PPA, depending on the
landing-16 PPA. The Kubuntu developers already did this with KDE, having
eliminated all issues exposed by GCC 5 (see [1]). It would be good to prepare
something similar for Lubuntu and Xubuntu.

What still needs fixing? Build failures with GCC 5 can be seen with the last
test rebuild using GCC 5 [2], comparing that with a regular test rebuild [3].
Build failures in the landing-016 PPA should be fixed. Packages with fixes in
Debian should be merged / synced either now (unstable), or after GCC 5 becomes
the default (those which are being prepared in Debian experimental). Build
failures and component mismatches should be cleared during the following two weeks.

Thanks for joining the ride, and have fun with this roller coaster transition
(it's by far the biggest transition since the migration to Warty Warthog)!

Matthias


[1] https://lists.ubuntu.com/archives/kubuntu-devel/2015-July/009765.html
[2]
http://people.ubuntuwire.org/~wgrant/rebuild-ftbfs-test/test-rebuild-20150402-gcc5-vivid.html
[3]
http://people.ubuntuwire.org/~wgrant/rebuild-ftbfs-test/test-rebuild-20150402-vivid.html

--
ubuntu-devel mailing list
[email protected]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel