GCC5
Contents
libstdc++ follow-up transitions in wily-proposed
icu: libicu52 -> libicu55. Only partial rebuilds for now
boost1.58: 1.55 -> 1.58, only partial rebuilds for now
apt: libapt-pkg4.12 -> libapt-pkg4.16. only partial rebuilds for now
process-cpp: libprocess-cpp2 -> libprocess-cpp3
net-cpp: libnet-cpp1 -> libnet-cpp2
dbus-cpp: libdbus-cpp4 -> libdbus-cpp5
libphonenumber: libphonenumber6 -> libphonenumber7
trust-store: libtrust-store1 -> libtrust-store2
unity-scopes-api: libunity-scopes3 -> libunity-scopes1.0
glibmm2.4: libglibmm-2.4-1c2a -> libglibmm-2.4-1v5
libmediainfo: libmediainfo0 -> libmediainfo0v5
Transitions in the landing-16 PPA
The PPA was used to track down any issues with the ubuntu-touch stack. Note that this PPA contains rebuilt but not renamed libraries.
The https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/landing-016 hosts the follow-up transitions as well (this are the packages with the explicit changes of the library names):
icu: libicu52 -> libicu55. Only partial rebuilds for now
boost1.58: 1.55 -> 1.58, only partial rebuilds for now
apt: libapt-pkg4.12 -> libapt-pkg4.16. only partial rebuilds for now
process-cpp: libprocess-cpp2 -> libprocess-cpp3
net-cpp: libnet-cpp1 -> libnet-cpp2
dbus-cpp: libdbus-cpp4 -> libdbus-cpp5
libphonenumber: libphonenumber6 -> libphonenumber7
trust-store: libtrust-store1 -> libtrust-store2
unity-scopes-api: libunity-scopes3 -> libunity-scopes1.0
glibmm2.4: libglibmm-2.4-1c2a -> libglibmm-2.4-1v5
libmediainfo: libmediainfo0 -> libmediainfo0v5
gettext: libasprintf0c2 -> libasprintf0v5
pcre3: libpcrecpp0 -> libpcrecpp0v5
libjsoncpp: libjsoncpp0 -> libjsoncpp0v5
libsigc++-2.0: libsigc++-2.0-0c2a -> libsigc++-2.0-0v5
llvm-toolchain-3.6: libllvm3.6 -> libllvm3.6v5
libmusicbrainz5: libmusicbrainz5cc2 -> libmusicbrainz5cc2v5
xapian-core: libxapian22 -> libxapian22v5
ilmbase: libilmbase6 -> libilmbase12
libconfig: libconfig++9v5 -> libconfig++9v5
- scim: libscim8c2a to libscim8v5
protobuf: libprotobuf-lite9 -> libprotobuf-lite9v5, libprotobuf9 -> libprotobuf9v5, libprotoc9 -> libprotoc9v5.
glibmm2.4: libglibmm-2.4-1 -> libglibmm-2.4-1v5
cairomm: libcairomm-1.0-1 -> libcairomm-1.0-1v5
cppunit: libcppunit-1.13-0 -> libcppunit-1.13-0v5
gflags: libgflags2 -> libgflags2v5
google-glog: libgoogle-glog0 -> libgoogle-glog0v5
pangomm: libpangomm-1.4-1 -> libpangomm-1.4-1v5
hunspell: libhunspell-1.3-0 -> libhunspell-1.3-0v5
leveldb: libleveldb1 -> libleveldb1v5
libprelude: libprelude2 -> libprelude2v5
libproxy: libproxy1 -> libproxy1v5
libsynthesis: libsynthesis0 -> libsynthesis0v5
libqalculate: libqalculate5 -> libqalculate5v5
libzen: libzen0 -> libzen0v5
tinyxml: libtinyxml2.6.2 -> libtinyxml2.6.2v5
log4cpp: liblog4cpp5 -> liblog4cpp5v5
log4cxx: liblog4cxx10 -> liblog4cxx10v5
log4shib: liblog4shib1 -> liblog4shib1v5
opensaml2: libsaml8 -> libsaml8v5
imagemagick: libmagick++-6.q16-5 -> libmagick++-6.q16-5v5
gtkmm3.0: libgtkmm-3.0-1 -> libgtkmm-3.0-1v5
xmltooling: libxmltooling6 -> libxmltooling6v5
ptlib: libpt2.10.10 -> libpt2.10.10v5
exiv2: libexiv2-13 -> libexiv2-13v5
- strigi: many libs, renamed to *v5
- libclaw: many libs, renamed to *v5
- openscenegraph: renamed to libopenscenegraph100v5
Transitions in the landing-39 PPA
This PPA is used to upload all library packages which need a follow-up transition after GCC 5 is uploaded. The package depends on the landing-16 PPA. For local development, both PPAs must be in sources.list.
The https://launchpad.net/~ci-train-ppa-service/+archive/ubuntu/landing-039 hosts the transitions:
gettext: libasprintf0c2 -> libasprintf0v5
pcre3: libpcrecpp0 -> libpcrecpp0v5
libjsoncpp: libjsoncpp0 -> libjsoncpp0v5
libsigc++-2.0: libsigc++-2.0-0c2a -> libsigc++-2.0-0v5
llvm-toolchain-3.6: libllvm3.6 -> libllvm3.6v5
libmusicbrainz5: libmusicbrainz5cc2 -> libmusicbrainz5cc2v5
xapian-core: libxapian22 -> libxapian22v5
ilmbase: libilmbase6 -> libilmbase12
libconfig: libconfig++9v5 -> libconfig++9v5
- scim: libscim8c2a to libscim8v5
protobuf: libprotobuf-lite9 -> libprotobuf-lite9v5, libprotobuf9 -> libprotobuf9v5, libprotoc9 -> libprotoc9v5.
glibmm2.4: libglibmm-2.4-1 -> libglibmm-2.4-1v5
cairomm: libcairomm-1.0-1 -> libcairomm-1.0-1v5
cppunit: libcppunit-1.13-0 -> libcppunit-1.13-0v5
gflags: libgflags2 -> libgflags2v5
google-glog: libgoogle-glog0 -> libgoogle-glog0v5
pangomm: libpangomm-1.4-1 -> libpangomm-1.4-1v5
hunspell: libhunspell-1.3-0 -> libhunspell-1.3-0v5
leveldb: libleveldb1 -> libleveldb1v5
libprelude: libprelude2 -> libprelude2v5
libproxy: libproxy1 -> libproxy1v5
libsynthesis: libsynthesis0 -> libsynthesis0v5
libqalculate: libqalculate5 -> libqalculate5v5
libzen: libzen0 -> libzen0v5
tinyxml: libtinyxml2.6.2 -> libtinyxml2.6.2v5
log4cpp: liblog4cpp5 -> liblog4cpp5v5
log4cxx: liblog4cxx10 -> liblog4cxx10v5
log4shib: liblog4shib1 -> liblog4shib1v5
opensaml2: libsaml8 -> libsaml8v5
imagemagick: libmagick++-6.q16-5 -> libmagick++-6.q16-5v5
gtkmm3.0: libgtkmm-3.0-1 -> libgtkmm-3.0-1v5
xmltooling: libxmltooling6 -> libxmltooling6v5
ptlib: libpt2.10.10 -> libpt2.10.10v5
exiv2: libexiv2-13 -> libexiv2-13v5
- strigi: many libs, renamed to *v5
- libclaw: many libs, renamed to *v5
- openscenegraph: renamed to libopenscenegraph100v5
Email Announce Draft
GCC 5 for 14.10 (wily) on July 31
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
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
GCC5 (last edited 2015-07-31 17:16:24 by doko)