a historical analysis of debian package incompatibilities

11
A Historical Analysis of Debian Package Incompatibilities Ma¨ elick Claes, Tom Mens, Roberto Di Cosmo, J´ erˆ ome Vouillon MSR - 17th May 2015

Upload: tom-mens

Post on 28-Jul-2015

72 views

Category:

Software


0 download

TRANSCRIPT

Page 1: A Historical Analysis of Debian Package Incompatibilities

A Historical Analysis of Debian PackageIncompatibilities

Maelick Claes, Tom Mens, Roberto Di Cosmo, Jerome Vouillon

MSR - 17th May 2015

Page 2: A Historical Analysis of Debian Package Incompatibilities

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

Page 3: A Historical Analysis of Debian Package Incompatibilities

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

Page 4: A Historical Analysis of Debian Package Incompatibilities

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

Page 5: A Historical Analysis of Debian Package Incompatibilities

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

Page 6: A Historical Analysis of Debian Package Incompatibilities

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

Page 7: A Historical Analysis of Debian Package Incompatibilities

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

Page 8: A Historical Analysis of Debian Package Incompatibilities

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

Page 9: A Historical Analysis of Debian Package Incompatibilities

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

Page 10: A Historical Analysis of Debian Package Incompatibilities

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

Page 11: A Historical Analysis of Debian Package Incompatibilities

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