a historical analysis of debian package incompatibilities
TRANSCRIPT
A Historical Analysis of Debian PackageIncompatibilities
Maelick Claes, Tom Mens, Roberto Di Cosmo, Jerome Vouillon
MSR - 17th May 2015
Introduction Empirical analysis Conclusion
GNU/Linux distribution since 1993
Well known for its stability
deb packages and package manager APT
Three different distributions: stable, testing and unstable
Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 2 / 10
Introduction Empirical analysis Conclusion
control filesDebian packages defined by a Debian Control File (DCF) containingamong other meta-data
Dependencies with other packages
Conflicts with other packages
Providing a virtual package
ExamplePackage: xul-ext-adblock-plus
Source: adblock-plus
Version: 2.1-1+deb7u1
Installed-Size: 2487
Maintainer: Dmitry E. Oboukhov <[email protected]>
Architecture: all
Replaces: adblock-plus (<< 1.1.1-2)
Provides: adblock-plus, iceape-adblock-plus,
icedove-adblock-plus, iceweasel-adblock-plus
Depends: iceweasel (>= 8.0) | icedove (>= 8.0) | iceape (>= 2.5)
Conflicts: mozilla-firefox-adblock
Breaks: adblock-plus (<< 1.1.1-2), iceape (>> 2.13 a1+),
iceape (<< 2.5), icedove (<< 8.0), iceweasel (<< 8.0)
[...]
Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 3 / 10
Introduction Empirical analysis Conclusion
Declared conflicts and strong conflictsWarning: conflicts propagate into strong conflicts!
We call declared conflicts the conflicts declared inside DCF
But all packages depending on xul-ext-adblock-plus will beincompatible with all packages depending on mozilla-firefox-adblock!
These incompatibilities are called strong conflicts
Data analysis
Analysis of strong conflicts in snapshots of all DCF
From 12th March 2005 to 4th May 2015
Stable and testing distributions for i386 architecture
From 15k packages in 2005 to 43k packages
> 100 Go of compressed raw data, > 1 To of compressed processeddata.
Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 4 / 10
Introduction Empirical analysis Conclusion
How to track down all incompatibilities?
Directly on the dependency graph? Too difficult!
a
b f
v
c d#
e
#
g
h
Using the coinst tool, we can manage it
coinst output:
c d a,e,f
Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 5 / 10
Introduction Empirical analysis Conclusion
How to track down all incompatibilities?
Directly on the dependency graph? Too difficult!
a
b f
v
c d#
e
#
g
h
Using the coinst tool, we can manage it
coinst output:
c d a,e,f
Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 5 / 10
Introduction Empirical analysis Conclusion
Survival analysis
Kaplan Meier estimator and curve: gives the probability that an eventtakes at least n units of time to occur
Number of years before all conflicts get removed from a strongconflicting package
0 2 4 6 8 10
0.0
0.2
0.4
0.6
0.8
1.0
After package introductionUpon package introduction
Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 6 / 10
Introduction Empirical analysis Conclusion
Survival analysis
Time before a strong conflict is introducted in a package
The longer a package stays without conflict, the less likely one willappear
0 2 4 6 8 10
0.0
0.2
0.4
0.6
0.8
1.0
Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 7 / 10
Introduction Empirical analysis Conclusion
Detecting new issues
Trend breaks Main root cause (manually identified) Tool able to detect Relevance+4379/-4201 updated x11-common conflicts with videogen comigrate medium+2364/-2371 new libgdk-pixbuf* conflicts with libgtk2.0-0 this paper medium
+1658 new liboss-salsa-asound2 conflicts with all alsa tools this paper minor+1279/-809 reinstallable cdebconf conflicts with debconf this paper serious
+1268/-1270 updated initscripts conflicts with sysklogd comigrate serious+1188/-2442 updated python conflicts with ppmtofb challenged minor+1025/-1282 updated initscripts conflicts with selinux-policy-default comigrate serious
+859/-1126 new libopenblas-base conflicts with libatlas3gf-* this paper medium+763 updated libsdl1.2debian conflicts with liboss-salsa-asound2 comigrate minor
+758/-756 updated netbase conflicts with ifupdown comigrate serious+727 new libopenmpi1.6 conflicts with libopenmpi1.3 comigrate mediumsame less conflicts with man comigrate serious
+706/-732 updated libldap-2.4-2 conflicts with libldap2 comigrate minor+682/-1074 updated libpam-modules conflicts with libpam-umask comigrate minor
+633/-577 updated initscripts conflicts with bootchart comigrate minor+632 new package libgif4 conflicts with libungif4g this paper minor
+536/-558 new packages libhttp-* conflicts with libwww-perl this paper medium
Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 8 / 10
Introduction Empirical analysis Conclusion
Conclusion
While conflicts are declared for design reasons, they can break a lot ofpackages because of mistakes spreading through dependencies
Such incompatibilities are generally detected and solved quicklythanks both to the work done by the community but also because ofthe existence of support tools
Based on a historical analysis and trend breaks we can find problemsnot detected by existing tools! (i.e. we can build new tools orimprove current ones)
Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 9 / 10
Introduction Empirical analysis Conclusion
Thanks for your attention
Presentation slides
http://maelick.net/presentations/msr2015
Replicate our study
https://github.com/ecos-umons/DebianCoinstEvol
Questions?
Claes, Mens, Di Cosmo, Vouillon A Historical Analysis of Debian Package Incompatibilities MSR 2015 10 / 10