[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: libstdc++ follow-up transitions



Hi Simon,

On Mon, Aug 17, 2015 at 01:46:16PM +0100, Simon McVittie wrote:
> I notice that Ubuntu has gone ahead with a lot of library renames. Did
> the Ubuntu developers doing these uploads test the results, or did you
> just "upload and hope"? One reason I have held back from doing more NMUs
> is that for the majority of transitioning packages, I have no idea how
> to smoke-test the results, and I'm not happy with putting my signature
> on a package that I haven't tested. However, if we're going for a lower
> standard of "successfully rebuilding the package and some random rdeps
> is enough testing", then there are quite a lot of NMUs that can be done.

Yes, this has been the standard in Ubuntu.  First, because the presence of a
C++ ABI change in a new version of the compiler does not imply an increased
risk of wrong code compilation, and we normally assume (in both Debian and
Ubuntu) that rebuilding without making other changes is safe; and second
because if there's anything *beyond* buildability of reverse-dependencies
that warrants testing as part of no-change rebuilds, the right way to
express that is by declaration of autopkgtests.  So a number of these
library packages have gotten suitable smoke testing by way of autopkgtests
(indeed, publishing these libraries to wily involved bypassing a number of
buggy autopkgtests on reverse dependencies), and many others did not but are
assumed to be ok unless someone reports otherwise.

> If we wait for a maintainer who knows the relevant package (who is
> likely on holiday and/or MIA in many cases) to inspect each of the
> packages involved, then I don't think anything vaguely C++-related is
> going to migrate for weeks, possibly months. That's a long time for
> developers without the appropriate C++ or specific-library knowledge to
> avoid touching unstable and hope security bug fixes get to them via t-p-u.

Right.  I certainly wouldn't recommend that Debian as a whole wait on
individual maintainers to make these decisions.  Indeed, in Ubuntu we went
ahead and pushed "conservative" transitions - namely, assuming that
everything needed to be renamed - with the rationale that in cases where we
find out that the transition was not needed *and* someone in Debian cares
enough to prevent having a transition, we can roll back the transition with
some combination of Provides: and dummy packages.

So the cost of waiting for careful evaluation of each package is high (weeks
or months spent blocking testing), and the cost of having to revert a
transition is low (revert the library name, throw in some Provides:, and
carry on).

> Having done more rebuilds in Ubuntu, it would be great if you could
> publish a complete list of the transitions you believe to be necessary,
> including those that are not ready to be uploaded until their
> dependencies have transitioned, so we can get an idea of the size of the
> problem.

Here's the count of source packages in Ubuntu wily that produce binary
packages ending in 'v5', which is probably a good approximation:

$ grep-dctrl -n -sSource:Package -FPackage -r 'v5$' /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_wily*Packages | sort -u | wc -l
333
$

Full list attached.

Cheers,
-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org
adplug
afflib
alglib
assimp
astyle
atkmm1.6
atlas-cpp
blackbox
bobcat
boolstuff
botan1.10
bulletml
cairomm
cal3d
camp
canl-c++
cauchy
ccfits
cg3
cgal
cigi-ccl
clam
clanlib
clhep
clipper
clucene-core
coin3
coinor-flopc++
coinor-ipopt
coinutils
colpack
console-bridge
cppunit
csound
ctemplate
ctpp2
cvc3
cwidget
cxxtools
dar
davix
dbus-c++
dcmtk
dolfin
double-conversion
ecasound
eclib
fbreader
ffmpegthumbnailer
flac
flatzebra
flightcrew
flowcanvas
flxmlrpc
freefem
freehdl
ganv
gconfmm2.6
gecode
gemanx-gtk2
geos
getfem++
gettext
gflags
ginac
givaro
glibmm2.4
gloox
gmetadom
gmsh
gnome-chemistry-utils
gnuift
google-glog
gr-air-modes
gr-fcdproplus
gr-osmosdr
graphicsmagick
gsmlib
gtkmm2.4
gtkmm3.0
guichan
gyoto
h323plus
hdf5
healpix-cxx
hmat-oss
htmlcxx
hunspell
ibutils
id3lib3.8.3
ignition-math2
igraph
imagemagick
ipe
kyotocabinet
kytea
lasi
leveldb
libabw
libaria
libassa
libbinio
libbitcoin
libbpp-core
libbpp-phyl
libbpp-phyl-omics
libbpp-popgen
libbpp-qt
libbpp-raa
libbpp-seq
libbpp-seq-omics
libccrtp
libcdr
libcec
libcec-platform
libcgicc
libclaw
libcmis
libcolumbus
libcommoncpp2
libconfig
libcoverart
libcoyotl
libcrypto++
libdap
libdc0
libebml
libetonyek
libevocosm
libftdi
libftdi1
libgenome
libgetopt++
libghemical
libgig
libgltf
libgtextutils
libgtksourceviewmm
libhmsbeagle
libitpp
libixion
libjsoncpp
libkexiv2
libkml
libkolab
libkolabxml
libktoblzcheck
libloki
libmatroska
libmediainfo
libmems
libmsn
libmusicbrainz3
libmusicbrainz5
libmwaw
libnzb
libodfgen
libofa
libopenraw
libopkele
liborcus
liborigin
liborigin2
libosl
libpagemaker
libpar2
libpcre++
libplist
libpodofo
libprelude
libproxy
libpyzy
libqalculate
librostlab-blast
libsfml
libshevek
libsidplay
libsigc++-2.0
libsmbios
libstxxl
libsynthesis
libtorrent-rasterbar
libtrace3
libucimf
libusb
libvigraimpex
libvoikko
libvsqlitepp
libwildmagic
libwpd
libwps
libxs
libzeep
libzen
liggghts
llvm-toolchain-3.5
llvm-toolchain-3.6
log4cplus
log4cpp
log4cxx
log4shib
logservice
lttoolbox
luabind
lucene++
lv2-c++-tools
mecab
med-fichier
mercator
mimetic
modglue
movit
mozjs24
mpqc
muparser
music
mygui
mysql++
mysql-connector-c++
netcdf
netxx
nexus
normaliz
ns3
nxcl
octomap
ogre-1.8
ogre-1.9
ois
omnievents
openbabel
openchange
opencolorio
opencsg
opencv
openigtlink
openimageio
openlayer
openmama
openrpt
opensaml2
openscenegraph
ossim
owncloud-client
pajeng
pangomm
pcre3
pcsc-cyberjack
petsc
pktools
player
poco
portsmf
projectm
protobuf
pstoedit
psurface
ptlib
pugixml
pynac
pythia8
qca2
qd
qpdf
qqwing
qscintilla2
qtruby
quickfix
qwtplot3d
raul
re2
relion
rlog
rtaudio
rtmidi
rubberband
rudecgi
scalc
scim
shiboken
sidplay-libs
sigx
silgraphite2.0
simbody
simgrid
siscone
skstream
sleuthkit
smokegen
smokeqt
snapper
snappy
sndobj
snmpkit
soci
socket++
sofa-framework
spatialindex
srecord
strigi
syfi
synopsis
tercpp
tesseract
ticcutils
tinyxml
tinyxml2
tulip
ucommon
udt
uhd
usbprog
vamp-plugin-sdk
varconf
verbiste
vips
voms
vtk
wfmath
wxsvg
wxwidgets3.0
xapian-core
xml-security-c
xmlrpc-c
xmltooling
xqilla
xylib
yaml-cpp
yaml-cpp0.3
zeroc-ice
zeroc-icee
zinnia
zipios++

Attachment: signature.asc
Description: Digital signature


Reply to: