free sorftware research at irill (highlights)
DESCRIPTION
A short overview of Free Software Reseaerch performed at Irill, presented at the Suse Labs Conference, September 2014TRANSCRIPT
Free Software Research at Irill(highlights)
Roberto Di Cosmohttp://www.dicosmo.org
18/09/2014Suse Labs Conference 2014
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 1 / 46
IRILL, a special place for FOSS
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 2 / 46
Who we are
Researchers that love FOSS ...
Vincent Balat Albert Cohen Julia Lawall Stefano Zacchiroli
... and like to collaborate!
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 3 / 46
Our focus: software quality
Some key examples:
Coccinelle
Beautiful work on semantic matching and pacthing; based on sophisticatedtheoretical tools, and yet so intuitive and practical: see Julia's talks
GCC/LLVM
Long term work led by Albert Cohen to provide cutting edge polyhedraloptimisation for all of us
GNU/Linux distributions our focus today
Many great tools for users and maintainers developed over almost ten yearsto help distributions scale up, be released faster and have better QA
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 4 / 46
Our focus: software quality
Some key examples:
Coccinelle
Beautiful work on semantic matching and pacthing; based on sophisticatedtheoretical tools, and yet so intuitive and practical: see Julia's talks
GCC/LLVM
Long term work led by Albert Cohen to provide cutting edge polyhedraloptimisation for all of us
GNU/Linux distributions our focus today
Many great tools for users and maintainers developed over almost ten yearsto help distributions scale up, be released faster and have better QA
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 4 / 46
Our focus: software quality
Some key examples:
Coccinelle
Beautiful work on semantic matching and pacthing; based on sophisticatedtheoretical tools, and yet so intuitive and practical: see Julia's talks
GCC/LLVM
Long term work led by Albert Cohen to provide cutting edge polyhedraloptimisation for all of us
GNU/Linux distributions our focus today
Many great tools for users and maintainers developed over almost ten yearsto help distributions scale up, be released faster and have better QA
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 4 / 46
Credits: joint work with. . .
Pietro Abate Jaap Boender Yacine Boufkhad
Stefano Zacchiroli Ralf Treinen Jérôme Vouillon
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 5 / 46
Outline
1 GNU/Linux Distributions: industrialising Free Software
2 User side: improving package managers
3 Back to the server side : Package QAFind uninstallable packages
Learning from the future of repositories
Find non co-installable packagesFind new non co-installable packagesFilter incoming packages
4 In conclusion
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 6 / 46
Free Software, industrialised: distributions
Idea from FOSS in the 1990s: distributions are intermediate softwarevendors between FOSS developers and users, o�ering to share upstreamtracking, integration, testing and QA among all of us
Project 1
Project 2
Project 3
FOSS Bazaar
User installations
Server side
Client side
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 7 / 46
Free Software, industrialised: distributions
Idea from FOSS in the 1990s: distributions are intermediate softwarevendors between FOSS developers and users, o�ering to share upstreamtracking, integration, testing and QA among all of us
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 7 / 46
Distributions: a �somehow� successful idea . . .
Key notions: packages and package managers
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 8 / 46
Packages and their metadata
Package =
{some �lessome scriptsmetadata
Identi�cation
Inter-package rel.
I DependenciesI Con�icts
Feature declarations
Other
I Package maintainerI Textual descriptionsI ...
Example (package metadata)Package: aterm
Version: 0.4.2-11
Section: x11
Installed-Size: 280
Maintainer: Göran Weinholt ...
Architecture: i386
Depends: libc6 (>= 2.3.2.ds1-4),
libice6 | xlibs (> 4.1.0), ...
Conflicts: suidmanager (< 0.50)
Provides: x-terminal-emulator
...
A package is the elemental component of modern distribution systems (notFOSS-speci�c). A working system is deployed by installing a package set(≈ 2'000+ for modern FOSS distros)
.Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 9 / 46
Inter-package relationships get complex. . .
To play Backgammon. . .
Package: gnubgVersion: 0.14.3+20060923-4Depends: gnubg-data, ttf-bitstream-vera,libartsc0 (>= 1.5.0-1), ..., libgl1-mesa-glx| libgl1, ...Conflicts: ...
. . . pull a few strings
Distributions grow superlinearly
Using and maintaining such largesoftware collections is becoming hard!
manual package review
semi-automated tools
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 10 / 46
Inter-package relationships get complex. . .
To play Backgammon. . .
Package: gnubgVersion: 0.14.3+20060923-4Depends: gnubg-data, ttf-bitstream-vera,libartsc0 (>= 1.5.0-1), ..., libgl1-mesa-glx| libgl1, ...Conflicts: ...
. . . pull a few strings
Distributions grow superlinearly
Using and maintaining such largesoftware collections is becoming hard!
manual package review
semi-automated tools
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 10 / 46
Using and maintaining free software distributions is hard
We need advanced tools:1 end user side � package managers
I install packages and their dependencies, . . .I . . . according to the user needs and policies
2 distribution editor side � QA infrastructureI �nd �broken� packages (now easy!)I �nd packages which impact large parts of the distributionI predict repository update woesI identify compatibility issuesI . . .
At Irill, through the Mancoosi project1, we have made progress in bothareas.
Let's see some examples.
1http://www.mancoosi.orgRoberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 11 / 46
Outline
1 GNU/Linux Distributions: industrialising Free Software
2 User side: improving package managers
3 Back to the server side : Package QAFind uninstallable packages
Learning from the future of repositories
Find non co-installable packagesFind new non co-installable packagesFilter incoming packages
4 In conclusion
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 12 / 46
Installation woes: no solution
$ sudo apt-get install baobab
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
gnome-settings-daemon: Breaks: gnome-screensaver (< 2.28.0)
but 2.26.1-1 is to be installed
E: Broken packages
(whereas a solution did in fact exist)
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 13 / 46
Installation woes: no solution
$ sudo apt-get install baobab
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
gnome-settings-daemon: Breaks: gnome-screensaver (< 2.28.0)
but 2.26.1-1 is to be installed
E: Broken packages
(whereas a solution did in fact exist)
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 13 / 46
Installation woes: no solution
$ sudo apt-get install baobab
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
gnome-settings-daemon: Breaks: gnome-screensaver (< 2.28.0)
but 2.26.1-1 is to be installed
E: Broken packages
(whereas a solution did in fact exist)
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 13 / 46
Installation woes: debatable solution
$ sudo apt-get install debhelper
Reading Package Lists... DoneBuilding Dependency Tree... DoneThe following extra packages will be installed:armagetron armagetron-common autoconf bonobo-activation codebreaker debconfdebconf-i18n debconf-utils dialog esound-common fb-music-high fontconfigfrozen-bubble-data grepmail gv intltool-debian libaiksaurus-datalibaiksaurus0c102 libatk1.0-0 libatk1.0-dev libbonobo-activation4 libbonobo2-0libbonobo2-common libdb3 libdbd-mysql-perl libdbi-perl libeel2-data libesd0...
The following packages will be REMOVED:autoconf2.13 frozen-bubble frozen-bubble-lib gconf2 gnomemeeting itk3.1-devlibbonoboui2-0 libbonoboui2-common libdigest-md5-perl libforms0.89 libgconf2-4libgnome2-0 libgnome2-common libgnomeui-0 libgnomevfs2-0 libgnomevfs2-commonlibgtk1.2-dev libgtk2.0-0png3 libgtk2.0-dev libmime-base64-perllibpango1.0-dev libsdl-mixer1.2-dev libsdl-perl libsdl-ttf1.2-devlibsdl1.2-dev libsmpeg-dev libstorable-perl nautilus tk8.3-dev tktable-devx-window-system x-window-system-core xaw3dg-dev xlib6g xlib6g-dev xlibmesa-devxlibmesa3 xlibosmesa3 xlibs-dev xlibs-pic xpdf xpdf-reader
The following NEW packages will be installed:armagetron-common debconf-i18n fb-music-high fontconfig intltool-debianlibaiksaurus-data libaiksaurus0c102 libeel2-data libfilehandle-unget-perllibfontconfig1 libforms1 libgdbm3 libgnutls7 libgsf-1 libice-dev libice6libidl0 liblzo1 libmagick5.5.7 libmail-mbox-messageparser-perllibmysqlclient12 libncursesw5 libnet-daemon-perl libnewt0.51 libpaper1libplrpc-perl libsdl-console ...
75 packages upgraded, 80 newly installed, 42 to remove and 858 not upgraded.Need to get 67.1MB of archives. After unpacking 26.9MB will be used.Do you want to continue? [Y/n] Abort.
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 14 / 46
Installation woes: debatable solution
$ sudo apt-get install debhelper
Reading Package Lists... DoneBuilding Dependency Tree... Done
The following extra packages will be installed:armagetron armagetron-common autoconf bonobo-activation codebreaker debconfdebconf-i18n debconf-utils dialog esound-common fb-music-high fontconfigfrozen-bubble-data grepmail gv intltool-debian libaiksaurus-datalibaiksaurus0c102 libatk1.0-0 libatk1.0-dev libbonobo-activation4 libbonobo2-0libbonobo2-common libdb3 libdbd-mysql-perl libdbi-perl libeel2-data libesd0...
The following packages will be REMOVED:autoconf2.13 frozen-bubble frozen-bubble-lib gconf2 gnomemeeting itk3.1-devlibbonoboui2-0 libbonoboui2-common libdigest-md5-perl libforms0.89 libgconf2-4libgnome2-0 libgnome2-common libgnomeui-0 libgnomevfs2-0 libgnomevfs2-commonlibgtk1.2-dev libgtk2.0-0png3 libgtk2.0-dev libmime-base64-perllibpango1.0-dev libsdl-mixer1.2-dev libsdl-perl libsdl-ttf1.2-devlibsdl1.2-dev libsmpeg-dev libstorable-perl nautilus tk8.3-dev tktable-devx-window-system x-window-system-core xaw3dg-dev xlib6g xlib6g-dev xlibmesa-devxlibmesa3 xlibosmesa3 xlibs-dev xlibs-pic xpdf xpdf-reader
The following NEW packages will be installed:armagetron-common debconf-i18n fb-music-high fontconfig intltool-debianlibaiksaurus-data libaiksaurus0c102 libeel2-data libfilehandle-unget-perllibfontconfig1 libforms1 libgdbm3 libgnutls7 libgsf-1 libice-dev libice6libidl0 liblzo1 libmagick5.5.7 libmail-mbox-messageparser-perllibmysqlclient12 libncursesw5 libnet-daemon-perl libnewt0.51 libpaper1libplrpc-perl libsdl-console ...
75 packages upgraded, 80 newly installed, 42 to remove and 858 not upgraded.Need to get 67.1MB of archives. After unpacking 26.9MB will be used.Do you want to continue? [Y/n] Abort.
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 14 / 46
Installation woes: debatable solution
$ sudo apt-get install debhelper
Reading Package Lists... DoneBuilding Dependency Tree... DoneThe following extra packages will be installed:armagetron armagetron-common autoconf bonobo-activation codebreaker debconfdebconf-i18n debconf-utils dialog esound-common fb-music-high fontconfigfrozen-bubble-data grepmail gv intltool-debian libaiksaurus-datalibaiksaurus0c102 libatk1.0-0 libatk1.0-dev libbonobo-activation4 libbonobo2-0libbonobo2-common libdb3 libdbd-mysql-perl libdbi-perl libeel2-data libesd0...
The following packages will be REMOVED:autoconf2.13 frozen-bubble frozen-bubble-lib gconf2 gnomemeeting itk3.1-devlibbonoboui2-0 libbonoboui2-common libdigest-md5-perl libforms0.89 libgconf2-4libgnome2-0 libgnome2-common libgnomeui-0 libgnomevfs2-0 libgnomevfs2-commonlibgtk1.2-dev libgtk2.0-0png3 libgtk2.0-dev libmime-base64-perllibpango1.0-dev libsdl-mixer1.2-dev libsdl-perl libsdl-ttf1.2-devlibsdl1.2-dev libsmpeg-dev libstorable-perl nautilus tk8.3-dev tktable-devx-window-system x-window-system-core xaw3dg-dev xlib6g xlib6g-dev xlibmesa-devxlibmesa3 xlibosmesa3 xlibs-dev xlibs-pic xpdf xpdf-reader
The following NEW packages will be installed:armagetron-common debconf-i18n fb-music-high fontconfig intltool-debianlibaiksaurus-data libaiksaurus0c102 libeel2-data libfilehandle-unget-perllibfontconfig1 libforms1 libgdbm3 libgnutls7 libgsf-1 libice-dev libice6libidl0 liblzo1 libmagick5.5.7 libmail-mbox-messageparser-perllibmysqlclient12 libncursesw5 libnet-daemon-perl libnewt0.51 libpaper1libplrpc-perl libsdl-console ...
75 packages upgraded, 80 newly installed, 42 to remove and 858 not upgraded.Need to get 67.1MB of archives. After unpacking 26.9MB will be used.Do you want to continue? [Y/n] Abort.
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 14 / 46
Installation woes: debatable solution
$ sudo apt-get install debhelper
Reading Package Lists... DoneBuilding Dependency Tree... DoneThe following extra packages will be installed:armagetron armagetron-common autoconf bonobo-activation codebreaker debconfdebconf-i18n debconf-utils dialog esound-common fb-music-high fontconfigfrozen-bubble-data grepmail gv intltool-debian libaiksaurus-datalibaiksaurus0c102 libatk1.0-0 libatk1.0-dev libbonobo-activation4 libbonobo2-0libbonobo2-common libdb3 libdbd-mysql-perl libdbi-perl libeel2-data libesd0...
The following packages will be REMOVED:autoconf2.13 frozen-bubble frozen-bubble-lib gconf2 gnomemeeting itk3.1-devlibbonoboui2-0 libbonoboui2-common libdigest-md5-perl libforms0.89 libgconf2-4libgnome2-0 libgnome2-common libgnomeui-0 libgnomevfs2-0 libgnomevfs2-commonlibgtk1.2-dev libgtk2.0-0png3 libgtk2.0-dev libmime-base64-perllibpango1.0-dev libsdl-mixer1.2-dev libsdl-perl libsdl-ttf1.2-devlibsdl1.2-dev libsmpeg-dev libstorable-perl nautilus tk8.3-dev tktable-devx-window-system x-window-system-core xaw3dg-dev xlib6g xlib6g-dev xlibmesa-devxlibmesa3 xlibosmesa3 xlibs-dev xlibs-pic xpdf xpdf-reader
The following NEW packages will be installed:armagetron-common debconf-i18n fb-music-high fontconfig intltool-debianlibaiksaurus-data libaiksaurus0c102 libeel2-data libfilehandle-unget-perllibfontconfig1 libforms1 libgdbm3 libgnutls7 libgsf-1 libice-dev libice6libidl0 liblzo1 libmagick5.5.7 libmail-mbox-messageparser-perllibmysqlclient12 libncursesw5 libnet-daemon-perl libnewt0.51 libpaper1libplrpc-perl libsdl-console ...
75 packages upgraded, 80 newly installed, 42 to remove and 858 not upgraded.Need to get 67.1MB of archives. After unpacking 26.9MB will be used.Do you want to continue? [Y/n] Abort.
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 14 / 46
Installation woes: debatable solution
$ sudo apt-get install debhelper
Reading Package Lists... DoneBuilding Dependency Tree... DoneThe following extra packages will be installed:armagetron armagetron-common autoconf bonobo-activation codebreaker debconfdebconf-i18n debconf-utils dialog esound-common fb-music-high fontconfigfrozen-bubble-data grepmail gv intltool-debian libaiksaurus-datalibaiksaurus0c102 libatk1.0-0 libatk1.0-dev libbonobo-activation4 libbonobo2-0libbonobo2-common libdb3 libdbd-mysql-perl libdbi-perl libeel2-data libesd0...
The following packages will be REMOVED:autoconf2.13 frozen-bubble frozen-bubble-lib gconf2 gnomemeeting itk3.1-devlibbonoboui2-0 libbonoboui2-common libdigest-md5-perl libforms0.89 libgconf2-4libgnome2-0 libgnome2-common libgnomeui-0 libgnomevfs2-0 libgnomevfs2-commonlibgtk1.2-dev libgtk2.0-0png3 libgtk2.0-dev libmime-base64-perllibpango1.0-dev libsdl-mixer1.2-dev libsdl-perl libsdl-ttf1.2-devlibsdl1.2-dev libsmpeg-dev libstorable-perl nautilus tk8.3-dev tktable-devx-window-system x-window-system-core xaw3dg-dev xlib6g xlib6g-dev xlibmesa-devxlibmesa3 xlibosmesa3 xlibs-dev xlibs-pic xpdf xpdf-reader
The following NEW packages will be installed:armagetron-common debconf-i18n fb-music-high fontconfig intltool-debianlibaiksaurus-data libaiksaurus0c102 libeel2-data libfilehandle-unget-perllibfontconfig1 libforms1 libgdbm3 libgnutls7 libgsf-1 libice-dev libice6libidl0 liblzo1 libmagick5.5.7 libmail-mbox-messageparser-perllibmysqlclient12 libncursesw5 libnet-daemon-perl libnewt0.51 libpaper1libplrpc-perl libsdl-console ...
75 packages upgraded, 80 newly installed, 42 to remove and 858 not upgraded.Need to get 67.1MB of archives. After unpacking 26.9MB will be used.Do you want to continue? [Y/n] Abort.
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 14 / 46
Installation woes: debatable solution
$ sudo apt-get install debhelper
Reading Package Lists... DoneBuilding Dependency Tree... DoneThe following extra packages will be installed:armagetron armagetron-common autoconf bonobo-activation codebreaker debconfdebconf-i18n debconf-utils dialog esound-common fb-music-high fontconfigfrozen-bubble-data grepmail gv intltool-debian libaiksaurus-datalibaiksaurus0c102 libatk1.0-0 libatk1.0-dev libbonobo-activation4 libbonobo2-0libbonobo2-common libdb3 libdbd-mysql-perl libdbi-perl libeel2-data libesd0...
The following packages will be REMOVED:autoconf2.13 frozen-bubble frozen-bubble-lib gconf2 gnomemeeting itk3.1-devlibbonoboui2-0 libbonoboui2-common libdigest-md5-perl libforms0.89 libgconf2-4libgnome2-0 libgnome2-common libgnomeui-0 libgnomevfs2-0 libgnomevfs2-commonlibgtk1.2-dev libgtk2.0-0png3 libgtk2.0-dev libmime-base64-perllibpango1.0-dev libsdl-mixer1.2-dev libsdl-perl libsdl-ttf1.2-devlibsdl1.2-dev libsmpeg-dev libstorable-perl nautilus tk8.3-dev tktable-devx-window-system x-window-system-core xaw3dg-dev xlib6g xlib6g-dev xlibmesa-devxlibmesa3 xlibosmesa3 xlibs-dev xlibs-pic xpdf xpdf-reader
The following NEW packages will be installed:armagetron-common debconf-i18n fb-music-high fontconfig intltool-debianlibaiksaurus-data libaiksaurus0c102 libeel2-data libfilehandle-unget-perllibfontconfig1 libforms1 libgdbm3 libgnutls7 libgsf-1 libice-dev libice6libidl0 liblzo1 libmagick5.5.7 libmail-mbox-messageparser-perllibmysqlclient12 libncursesw5 libnet-daemon-perl libnewt0.51 libpaper1libplrpc-perl libsdl-console ...
75 packages upgraded, 80 newly installed, 42 to remove and 858 not upgraded.Need to get 67.1MB of archives. After unpacking 26.9MB will be used.Do you want to continue? [Y/n]
Abort.
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 14 / 46
Installation woes: debatable solution
$ sudo apt-get install debhelper
Reading Package Lists... DoneBuilding Dependency Tree... DoneThe following extra packages will be installed:armagetron armagetron-common autoconf bonobo-activation codebreaker debconfdebconf-i18n debconf-utils dialog esound-common fb-music-high fontconfigfrozen-bubble-data grepmail gv intltool-debian libaiksaurus-datalibaiksaurus0c102 libatk1.0-0 libatk1.0-dev libbonobo-activation4 libbonobo2-0libbonobo2-common libdb3 libdbd-mysql-perl libdbi-perl libeel2-data libesd0...
The following packages will be REMOVED:autoconf2.13 frozen-bubble frozen-bubble-lib gconf2 gnomemeeting itk3.1-devlibbonoboui2-0 libbonoboui2-common libdigest-md5-perl libforms0.89 libgconf2-4libgnome2-0 libgnome2-common libgnomeui-0 libgnomevfs2-0 libgnomevfs2-commonlibgtk1.2-dev libgtk2.0-0png3 libgtk2.0-dev libmime-base64-perllibpango1.0-dev libsdl-mixer1.2-dev libsdl-perl libsdl-ttf1.2-devlibsdl1.2-dev libsmpeg-dev libstorable-perl nautilus tk8.3-dev tktable-devx-window-system x-window-system-core xaw3dg-dev xlib6g xlib6g-dev xlibmesa-devxlibmesa3 xlibosmesa3 xlibs-dev xlibs-pic xpdf xpdf-reader
The following NEW packages will be installed:armagetron-common debconf-i18n fb-music-high fontconfig intltool-debianlibaiksaurus-data libaiksaurus0c102 libeel2-data libfilehandle-unget-perllibfontconfig1 libforms1 libgdbm3 libgnutls7 libgsf-1 libice-dev libice6libidl0 liblzo1 libmagick5.5.7 libmail-mbox-messageparser-perllibmysqlclient12 libncursesw5 libnet-daemon-perl libnewt0.51 libpaper1libplrpc-perl libsdl-console ...
75 packages upgraded, 80 newly installed, 42 to remove and 858 not upgraded.Need to get 67.1MB of archives. After unpacking 26.9MB will be used.Do you want to continue? [Y/n] Abort.
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 14 / 46
How di�cult are package installation problems?
Theorem
The following problems are NP-complete:
installability of a single package
co-installability of a set of packages
Proof ideaEquivalence with boolean satis�ability.
Di Cosmo, Leroy, Treinen, Vouillon et al.Managing the complexity of large free and open source package-based
software distributions.ASE 2006: Automated Software Engineering.
Alternative proof of NP-hardness (Daniel Burrows, 2008)
Encode Sudoku solving as a package installation problem, left as exercisefor the public.
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 15 / 46
How di�cult are package installation problems?
Theorem
The following problems are NP-complete:
installability of a single package
co-installability of a set of packages
Proof ideaEquivalence with boolean satis�ability.
Di Cosmo, Leroy, Treinen, Vouillon et al.Managing the complexity of large free and open source package-based
software distributions.ASE 2006: Automated Software Engineering.
Alternative proof of NP-hardness (Daniel Burrows, 2008)
Encode Sudoku solving as a package installation problem, left as exercisefor the public.
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 15 / 46
Install/upgrade: �nding a needle in a haystack
Finding a solution is NP-complete, but installing and upgrading is more
demanding... how many ways are there to install a package?
Too many upgrade candidates
Suppose we have components qi , for 1 ≤ i ≤ n, available in versions 1 and2, all of which are installed in version 1 on the system.We want to install a component p in version 1 that depends on all ofq1, . . . , qn, any version.Any of the 2n con�gurations {(p, 1)} ∪ {(qi , i)|i ∈ 1 . . . n, 1 ≤ i ≤ 2} is asolution.
Which one do we choose?
paranoid only install p
trendy install p and step up all qi 's to version 2
... and exponentially many in between!
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 16 / 46
Install/upgrade: �nding a needle in a haystack
Finding a solution is NP-complete, but installing and upgrading is more
demanding... how many ways are there to install a package?
Too many upgrade candidates
Suppose we have components qi , for 1 ≤ i ≤ n, available in versions 1 and2, all of which are installed in version 1 on the system.
We want to install a component p in version 1 that depends on all ofq1, . . . , qn, any version.Any of the 2n con�gurations {(p, 1)} ∪ {(qi , i)|i ∈ 1 . . . n, 1 ≤ i ≤ 2} is asolution.
Which one do we choose?
paranoid only install p
trendy install p and step up all qi 's to version 2
... and exponentially many in between!
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 16 / 46
Install/upgrade: �nding a needle in a haystack
Finding a solution is NP-complete, but installing and upgrading is more
demanding... how many ways are there to install a package?
Too many upgrade candidates
Suppose we have components qi , for 1 ≤ i ≤ n, available in versions 1 and2, all of which are installed in version 1 on the system.
We want to install a component p in version 1 that depends on all ofq1, . . . , qn, any version.Any of the 2n con�gurations {(p, 1)} ∪ {(qi , i)|i ∈ 1 . . . n, 1 ≤ i ≤ 2} is asolution.
Which one do we choose?
paranoid only install p
trendy install p and step up all qi 's to version 2
... and exponentially many in between!
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 16 / 46
Install/upgrade: �nding a needle in a haystack
Finding a solution is NP-complete, but installing and upgrading is more
demanding... how many ways are there to install a package?
Too many upgrade candidates
Suppose we have components qi , for 1 ≤ i ≤ n, available in versions 1 and2, all of which are installed in version 1 on the system.We want to install a component p in version 1 that depends on all ofq1, . . . , qn, any version.
Any of the 2n con�gurations {(p, 1)} ∪ {(qi , i)|i ∈ 1 . . . n, 1 ≤ i ≤ 2} is asolution.
Which one do we choose?
paranoid only install p
trendy install p and step up all qi 's to version 2
... and exponentially many in between!
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 16 / 46
Install/upgrade: �nding a needle in a haystack
Finding a solution is NP-complete, but installing and upgrading is more
demanding... how many ways are there to install a package?
Too many upgrade candidates
Suppose we have components qi , for 1 ≤ i ≤ n, available in versions 1 and2, all of which are installed in version 1 on the system.We want to install a component p in version 1 that depends on all ofq1, . . . , qn, any version.Any of the 2n con�gurations {(p, 1)} ∪ {(qi , i)|i ∈ 1 . . . n, 1 ≤ i ≤ 2} is asolution.
Which one do we choose?
paranoid only install p
trendy install p and step up all qi 's to version 2
... and exponentially many in between!
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 16 / 46
Install/upgrade: �nding a needle in a haystack
Finding a solution is NP-complete, but installing and upgrading is more
demanding... how many ways are there to install a package?
Too many upgrade candidates
Suppose we have components qi , for 1 ≤ i ≤ n, available in versions 1 and2, all of which are installed in version 1 on the system.We want to install a component p in version 1 that depends on all ofq1, . . . , qn, any version.Any of the 2n con�gurations {(p, 1)} ∪ {(qi , i)|i ∈ 1 . . . n, 1 ≤ i ≤ 2} is asolution.
Which one do we choose?
paranoid only install p
trendy install p and step up all qi 's to version 2
... and exponentially many in between!
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 16 / 46
For users, dependency solving is not (yet) good enough!
Main issues:
1 incompleteness of ad-hoc dependency solvers
2 poor expressivity
3 moving target
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 17 / 46
For users, dependency solving is not (yet) good enough!
Main issues:1 incompleteness of ad-hoc dependency solvers
Example
package: a package: b
version: 2 version: 2
depends: b (= 1) depends: a (= 1)
package: a package: b
version: 1 version: 1
depends: b depends: a
# apt-get install a b ← fails
The need for real solvers starts spreading
Now ok for zypper, dnf, 0install, that use a SAT solver, but...
2 poor expressivity3 moving target
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 17 / 46
For users, dependency solving is not (yet) good enough!
Main issues:
1 incompleteness of ad-hoc dependency solvers
2 poor expressivity (AKA lack of user-level policies)
does your package manager enable you (sysadm) to:
1 minimize installed size cool for embedded
2 minimize download size 28.8 Kbps or mobile connections
3 prefer version aligned installations
4 minimise downgrades, or removals
5 mix and match releases with more �exibility than pinning?
We need (measurable) solution quality, wrt user desiderata.
see http://www.dicosmo.org/Articles/usercriteria.pdf
3 moving target
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 17 / 46
For users, dependency solving is not (yet) good enough!
Main issues:
1 incompleteness of ad-hoc dependency solvers
2 poor expressivity3 moving target (research problem)
I implementing a given state of the art solving strategy may be �netoday, . . .
I what if repositories grow ten times bigger? or add new features?I package manager developers need to connect with research on solvers
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 17 / 46
For users, dependency solving is not (yet) good enough!
Main issues:
1 incompleteness of ad-hoc dependency solvers
2 poor expressivity
3 moving target
On the other hand. . .
Various research communities have powerful constraint solvers able toaddress (some of) the above problems, and would love to validate them onreal world use cases.
We can close the gap!
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 17 / 46
Separation of concerns
Use a common format for installation/upgrade problems...
Figure: Common Upgradeability Description Format (CUDF)
See www.mancoosi.org/cudf, and the libcudf library by Stefano Zacchiroli
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 18 / 46
Separation of concerns (cont.)
Use a common format for installation/upgrade problems...
Figure: Modular component manager
See www.mancoosi.org/cudf, and the libcudf library by Stefano Zacchiroli
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 18 / 46
A language for user preferences
A preference expression is built from four basic ingredients:
package selectors denote in a proposed solution certain classes of packages(the ones that changed, the ones that got removed, etc.)
measurements can be applied to a package selector to obtain an integervalue (the number of package selected, the number ofpackages selected that are up-to-date, etc.)
maximisation/minimisation directives to ask the solver to �nd a solutionthat maximises or minimises the value of a measurement
aggregation combinations can be used to ask the solver to combinecriteria in lexicographical order
For full details, see
www.dicosmo.org/Articles/usercriteria.pdf
www.mancoosi.org/misc-2012/criteria/
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 19 / 46
Strategy to improve the state of the art
Distribution
editors
Users
Mancoosi
Distribution
editors
upgrade
install
report failures
via DUDF
verify reports
submit problems
via CUDF
interesting
problems
improved
algorithms
improved tools
Competition
Researchers
(Mancoosi project, 2008)
MISC competition http://www.mancoosi.org/misc/: 2010, 11, 12
1 make the �solving community� aware of distro needs
2 �nd reusable common-ground dependency solvers
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 20 / 46
Stocktacking
Several CUDF solvers are available$ apt-cache search cudf
aspcud - CUDF solver based on Answer Set Programming
mccs - multi-critera CUDF solver
packup - CUDF solver based on pseudo-Boolean constraints
aspcud supports sophisticated user preferences, e.g.:
aspcud sample.cudf sol.cudf
"-count(down), -notuptodate(solution),
-aligned(solution,source,sourceversion),
-unsat_recommends(solution), -count(new)"
P2�OSGi provisioning platform for Eclipse�speaks CUDF
OPAM�the OCaml package manager�prefers aspcud/CUDF
[your component manager here] ?
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 21 / 46
Improved tools, added bonus for CUDF adopters
Building systems
Minimal system size -sum(solution,installedsize),-count(solution)
Noah's ark +count(solution)
Noah's ark, fresh -notuptodate(solution),+count(solution)
Fast bootstrap -sum(solution,compiletime)
Repairing a broken system con�guration
Use an empty request with
�xup -count(changed),-count(down),-notuptodate(solution)
Kiss cool e�ect
All of this requires zero changes to the package manager code!
Can �nd unexpected usages, like thinning virtual machines
https://github.com/rdicosmo/ami-thinner
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 22 / 46
Improved tools, added bonus for CUDF adopters
Building systems
Minimal system size -sum(solution,installedsize),-count(solution)
Noah's ark +count(solution)
Noah's ark, fresh -notuptodate(solution),+count(solution)
Fast bootstrap -sum(solution,compiletime)
Repairing a broken system con�guration
Use an empty request with
�xup -count(changed),-count(down),-notuptodate(solution)
Kiss cool e�ect
All of this requires zero changes to the package manager code!
Can �nd unexpected usages, like thinning virtual machines
https://github.com/rdicosmo/ami-thinner
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 22 / 46
Improved tools, added bonus for CUDF adopters
Building systems
Minimal system size -sum(solution,installedsize),-count(solution)
Noah's ark +count(solution)
Noah's ark, fresh -notuptodate(solution),+count(solution)
Fast bootstrap -sum(solution,compiletime)
Repairing a broken system con�guration
Use an empty request with
�xup -count(changed),-count(down),-notuptodate(solution)
Kiss cool e�ect
All of this requires zero changes to the package manager code!
Can �nd unexpected usages, like thinning virtual machines
https://github.com/rdicosmo/ami-thinner
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 22 / 46
Improved tools, added bonus for CUDF adopters
Building systems
Minimal system size -sum(solution,installedsize),-count(solution)
Noah's ark +count(solution)
Noah's ark, fresh -notuptodate(solution),+count(solution)
Fast bootstrap -sum(solution,compiletime)
Repairing a broken system con�guration
Use an empty request with
�xup -count(changed),-count(down),-notuptodate(solution)
Kiss cool e�ect
All of this requires zero changes to the package manager code!
Can �nd unexpected usages, like thinning virtual machines
https://github.com/rdicosmo/ami-thinner
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 22 / 46
Outline
1 GNU/Linux Distributions: industrialising Free Software
2 User side: improving package managers
3 Back to the server side : Package QAFind uninstallable packages
Learning from the future of repositories
Find non co-installable packagesFind new non co-installable packagesFilter incoming packages
4 In conclusion
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 23 / 46
Working for the QA team
The QA team and the release manager need to track tens of thousands ofpackages, their bugs, their incompatibilities, etc.
We want to catch automatically installation-related errors before they hitthe user and the BTS!
Static analysis of package dependencies
�nd packages that cannot be installed at all, and...I spot the ones that surely need to be �xed (know who to blame)I provide advance warning for future problems
�nd the incompatibilities between packages
show how these incompatibilities evolve
automate package migration
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 24 / 46
QA 101: �nd individually broken packages
The problem
In a repository R , �nd all packages that cannot be installed at all
Solving tens of thousands of NP-complete problem?
In practice:
explicit con�icts between packages are not very frequent (withoutcon�icts, dependencies are dual Horn clauses)
recent SAT solvers are able to handle current instances easily
A practical tool
rpmcheck/debcheck (Vouillon, 2006)I List all packages that cannot be installed at all in a repositoryI Provide short explanationsI fast: analyses ≈ 40′000 (binary) packages in a few seconds on
commodity desktop hardware
Integrated in the dose3 as distcheck, with many improvements byPietro Abate et al. http://www.mancoosi.org/software/
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 25 / 46
QA 101: �nd individually broken packages
The problem
In a repository R , �nd all packages that cannot be installed at all
Solving tens of thousands of NP-complete problem?
In practice:
explicit con�icts between packages are not very frequent (withoutcon�icts, dependencies are dual Horn clauses)
recent SAT solvers are able to handle current instances easily
A practical tool
rpmcheck/debcheck (Vouillon, 2006)I List all packages that cannot be installed at all in a repositoryI Provide short explanationsI fast: analyses ≈ 40′000 (binary) packages in a few seconds on
commodity desktop hardware
Integrated in the dose3 as distcheck, with many improvements byPietro Abate et al. http://www.mancoosi.org/software/
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 25 / 46
QA 101: �nd individually broken packages
The problem
In a repository R , �nd all packages that cannot be installed at all
Solving tens of thousands of NP-complete problem?In practice:
explicit con�icts between packages are not very frequent (withoutcon�icts, dependencies are dual Horn clauses)
recent SAT solvers are able to handle current instances easily
A practical tool
rpmcheck/debcheck (Vouillon, 2006)I List all packages that cannot be installed at all in a repositoryI Provide short explanationsI fast: analyses ≈ 40′000 (binary) packages in a few seconds on
commodity desktop hardware
Integrated in the dose3 as distcheck, with many improvements byPietro Abate et al. http://www.mancoosi.org/software/
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 25 / 46
Usage in Debian
https://qa.debian.org/dose/
Release goal: 0 non-installable packagesAlso: Debian autobuilder network (check whether the Build-Deps can be
satis�ed)Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 26 / 46
Usage in Debian (cont.)
Verify installability of packages before uploading them to the archiveI used daily by Emdebian
Check that build-dependencies are satis�able before attempting apackage build
I �life changing� for porters (quote)
Generate test cases for �nding errors occurring during packageinstallation
I �le con�icts, by Ralf TreinenI ≈ 650 bugs reported over time, ≈ 10 outstandingI https://qa.debian.org/dose/file-overwrites.html
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 27 / 46
QA 101, level 2: what can we say about the future?
De�nition (outdated packages)
p is outdated if p is not installable, and it remains uninstallable no matterhow the other packages evolve (i.e. p's maintainer has no excuses)
De�nition (challengers)
p challenges q if upgrading p �forces� to upgrade q
What they have in common:
properties that hold in all installations of any future evolution of therepository
seems unfeasible, but we can e�ciently decide some properties of thiskind
Abate, Di Cosmo, Treinen, ZacchiroliLearning from the Future of Component Repositories
CBSE 2012. Best paper award
Tools in the dose library now used in qa.debian.org/doseRoberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 28 / 46
Speculative analysis � example
Outdated packages110 outdated packages in Debian testing (Oct 2011)
60% because of ongoing transition Python 2.6 → 2.7
20% because of kdebindings, broken as part of a large refactoringprocess
20% outdated dependencies unknown to developersI �xed now thanks to our reports
Signi�cance
automatically distinguish between transiently and permanently
uninstallable packages; pinpoint actual responsibilities for �xinguninstallability issues!
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 29 / 46
Speculative analysis � example (cont.)Challengers (Debian Lenny)Source Version Target Version Breaks
python-defaults 2.5.2-3 ≥ 3 1079
python-defaults 2.5.2-3 2.6 ≤ . < 3 1075
e2fsprogs 1.41.3-1 any 139
ghc6 6.8.2dfsg1-1 ≥ 6.8.2+ 136
libio-compress-base-perl 2.012-1 ≥ 2.012. 80
libcompress-raw-zlib-perl 2.012-1 ≥ 2.012. 80
libio-compress-zlib-perl 2.012-1 ≥ 2.012. 79
icedove 2.0.0.19-1 > 2.1-0 78
iceweasel 3.0.6-1 > 3.1 70
haskell-mtl 1.1.0.0-2 ≥ 1.1.0.0+ 48
sip4-qt3 4.7.6-1 > 4.8 47
ghc6 6.8.2dfsg1-1 6.8.2dfsg1+ ≤ . < 6.8.2+ 36
haskell-parsec 2.1.0.0-2 ≥ 2.1.0.0+ 29
Signi�cance
provide a map of future uninstallability issues, sorted by severity, greatdashboard for a release manager
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 30 / 46
QA 201: Package Co-Installability
Next step: interaction between packages
Example: is there any package which cannot be installedtogether with iceweasel? with kde-full?
De�nition: a set of packages are co-installable if they can be installedtogether.
all packages should be installable (individually!)
some package incompatibilities are expected
Can we summarise all incompatibility issues, and avoid browsing throughhundreds of hyperlinked pages?
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 31 / 46
Coinst
A simpli�cation theory for repositories, based on the extraction of aco-installability kernel, i.e. a repository much smaller than the original butequivalent wrt co-installability.Highlights:
re�exive/transitive dependency closure
equivalent classes and quotients
machine-checked proofs (in Coq!)
In a word: tough maths at work!
A tool: coinst (packaged in Debian)
Vouillon, Di CosmoOn Software Components Co-Installability
ESEC/FSE 2011: Foundations of Software Engineering.Best Artifact Award.
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 32 / 46
Co-Installability Graphs
coinst -root iceweasel -o graph.dot Packages_i386
iceweasel
xul-ext-sage
xul-ext-gnome-keyring
libasound2
xul-ext-greasemonkey
liboss4-salsa-asound2
coinst -root kde-full -o graph.dot Packages_i386
libphonon4 libqt4-phonon
kde-window-manager kwin-style-dekorator
libgps20 fso-gpsd
oxygen-icon-theme fdpowermon-icons
libasound2 liboss4-salsa-asound2
kde-full
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 33 / 46
libzookeeper-mt-dev libzookeeper-st-dev
zephyr-server zephyr-server-krb5 libzephyr4-krb5 libzephyr4
#
zabbix-proxy-mysql
zabbix-proxy-pgsql
zabbix-proxy-sqlite3
zabbix-server-mysql
zabbix-server-pgsql
xmpuzzles
xpuzzles
libasound2 (x 2355)
#
libxine-dev libxine2-dev
libxerces-c-dev (x 3)
libxerces-c2-dev (x 2)
xabacus
xmabacus
wims-extra-all
wims-extra-es
libgd2-xpm (x 103)
w3m-el-snapshot w3m-el
libtomcat6-java (x 10) libtomcat7-java (x 7)
#
systemd-sysv
systemd (x 3)
#
sysvinit
upstart
sysv-rc (x 4) file-rc
#
python-sugar-0.84 (x 2)
python-sugar-0.86 (x 2)
python-sugar-0.88 (x 2)
python-sugar-0.90 (x 2)
python-sugar-0.92
#
sugar-artwork-0.84
sugar-artwork-0.86
sugar-artwork-0.88
sugar-artwork-0.90
sugar-artwork-0.92
sudo sudo-ldap
stardict-gnome
stardict-gtk
#snort
∨
busybox-syslogd
dsyslog (x 5)
inetutils-syslogd
rsyslog (x 6)
socklog-run
klogd
syslog-ng-core (x 5)
snort-mysql
snort-pgsql
#snd-gtk-jack
snd-gtk-pulse
snd-nox (x 2)
libsnack2 (x 2) libsnack2-alsa
rxvt-ml
rxvt-beta
rxvt
libreadline6-dev (x 18)
libreadline-gplv2-dev (x 2)
#radiusd-livingston
#
radsecproxy
yardradius
quassel-data
quassel-data-kde4
libqt4-dbg (x 3)
qt-x11-free-dbg
gdb (x 15) gdb-minimal
python-xattr (x 8)
python-pyxattr (x 2)
python-sqlite (x 13)
python-pysqlite1.1 (x 2)
python-pyface (x 5)
python-traitsbackendwx
python-traitsbackendqt
python-envisage python-envisageplugins
python-pyorbit-omg python-omniorb-omg
#
libpt-dev
libjpeg8-dev (x 39)
unixodbc-dev (x 12)
libjpeg62-dev
libiodbc2-dev
libpt2.4.5-dev (x 2)
libpt-1.10.10-dev (x 2)
libportaudio-dev portaudio19-dev (x 4)
php5-mysql (x 22) php5-mysqlnd
libapache2-mod-php5 (x 3)
libapache2-mod-php5filter
∨
apache2-mpm-itk
apache2-mpm-prefork (x 4)
phonon-backend-null
phonon-backend-vlc (x 2)
phonon-backend-gstreamer (x 3)
libphonon4 (x 24) libqt4-phonon
libpcp3-dev (x 2) libpgpool-dev libpcp3 (x 18) pgpool2
python-vtk (x 5)
paraview-python
libhdf5-openmpi-1.8.4 (x 28)
#
libopenh323-1.18.0 (x 2)
libopenh323-1.18.0-develop
libopenmpi-dev (x 20)
libopal-dev
obex-data-server (x 3) obexd-server
libneon27-dev
libneon27-gnutls-dev
libkrb5-dev (x 30)
libgnutls-dev (x 44)
heimdal-dev
libelektra-dev (x 3)
libgnutls28-dev
mplayer (x 2)
mplayer2 (x 2)
moon-buggy moon-buggy-esd
minbif (x 2)
minbif-webcam
mew-bin
mew-beta-bin
libgl1-mesa-glx (x 17) libgl1-mesa-swx11 (x 4)
#
libmeep-dev
libmeep-mpi-dev
libmeep-openmpi-dev
maven2 maven
maatkit
percona-toolkit
#lsb
nullmailer
#
#
#
xmail
#
#
lprlprng
#
#live-config-runit
#
live-config-systemd
live-config-upstart
live-config-sysvinit
#
libnl-dev
libnl2-dev (x 6)
libnl-3-dev (x 5)
libiodbc2 (x 98)
odbc-postgresql (x 2)
libmyodbc
libmdbodbc1 (x 2)
tdsodbc
libhdf4-alt-dev
libhdf4-dev (x 2)
libgpod4 (x 42)
libgpod4-nogtk
libgdchart-gd2-noxpm
libgdchart-gd2-xpm
libgd2-noxpm
libgd-gd2-perl (x 28)
libgd-gd2-noxpm-perl
libswscale2
libswscale-extra-2
libavutil-extra-51
libpostproc52
libpostproc-extra-52
libavutil51
libavformat53
libavformat-extra-53 libavcodec-extra-53
libavfilter2
libavfilter-extra-2
libavdevice53
libavdevice-extra-53
libavcodec53
libalog0.3-full
libalog0.3-base (x 3)
gnat-4.4 (x 41)
gnat-4.6 (x 8)
#
lam4-dev
mpi-doc
#
mpich2-doc
openmpi-doc
lam-mpidoc
python-kombu (x 4)
python-cjson (x 2)
kdiff3
kdiff3-qt
oxygen-icon-theme fdpowermon-iconskdesvn-kio-plugins
kdesdk-kio-plugins
tomcat6 (x 2) jenkins
libjack0 (x 2)
libjack-jackd2-0 (x 2)
#
racoon (x 3)
#
#
openswan (x 5)
strongswan-ikev2 (x 2)
strongswan-ikev1
inn (x 2)
inn2-inews
inn2-dev
#
#
inetutils-telnetd
#
krb5-telnetdkrb5-rsh-server
#
telnetd
#
telnetd-ssl
iputils-ping (x 22) inetutils-ping
#
inetutils-inetd
openbsd-inetd
rlinetd
xinetd
ike (x 2)
#ifupdown (x 3)
netscript-2.4
netscript-2.4-upstart
icheck qtmobility-dev
iceape (x 4)
xul-ext-requestpolicy
mgetty-fax hylafax-client (x 4)
heimdal-servers (x 2)
#
#
#
inetutils-ftpd
krb5-ftpd
ftpd
ftpd-ssl
muddleftpd
proftpd-basic (x 19)
pure-ftpd
pure-ftpd-ldap
pure-ftpd-mysql
pure-ftpd-postgresql
twoftpd-run
runit (x 3) daemontools-run
vsftpd
wu-ftpd
wzdftpd (x 7)
libhdf5-lam-1.8.4
libhdf5-mpich-1.8.4
libhdf5-serial-1.8.4
sendmail-bin (x 3)
harden-servers (x 2) pyftpd
#
#
#
#
#
rpcbind (x 11)
rsh-server
rsh-redone-server
#
guile-1.6-dev
guile-1.8-dev (x 4)
guile-2.0-dev
gtalk (x 2)
inetutils-talkd
talkd
gss-man
#
grub-coreboot (x 2)
grub2-common
grub-efi-amd64
grub-efi-ia32 (x 2)
grub-ieee1275
grub-pc (x 4)
grub-legacy
#
libgrib-api-0d-1 (x 2)
libgrib-api-1.9.9 (x 5)
libgrib-api-data
perlmagick
graphicsmagick-libmagick-dev-compat
libmagickcore-dev (x 6)
graphicsmagick-imagemagick-compat octave-image
imagemagick (x 2)
gpivtools-mpi gpivtools
gpiv
gpiv-mpi
gpe-login
xdm
wdm
slim
kdm (x 2)
gnuspool (x 3) system-config-printer-udev
gnome-control-center (x 3)
gpe-conf (x 3)
gnome-control-center-datacapplets-data
git-daemon-run
git-daemon-sysvinit
gdm3 (x 2)
#
fusionforge-full
∨
exim4-daemon-heavy (x 3)
courier-mta (x 4)
postfix (x 14)
fusionforge-minimal
fusionforge-standard (x 2)
fuse (x 57)
loop-aes-utils
fso-gsm0710muxd gsm0710muxd
libgps20 (x 14)
fso-gpsd
fso-frameworkd (x 3)
libphone-utils0 (x 4)
#
fso-config-general
fso-config-gta01
fso-config-gta02
freeradius-common (x 8)
fontforge (x 2) fontforge-nox
fltk1.1-games
fltk1.3-games
filelight-l10n
kde-l10n-zhtw
kde-l10n-zhcn
kde-l10n-wa
kde-l10n-uk
kde-l10n-tr
kde-l10n-th
kde-l10n-sv
kde-l10n-sr
kde-l10n-sl
kde-l10n-sk
kde-l10n-ru
kde-l10n-ro
kde-l10n-ptbr
kde-l10n-pt
kde-l10n-pl
kde-l10n-pa
kde-l10n-nn
kde-l10n-nl
kde-l10n-nds
kde-l10n-nb
kde-l10n-mai
kde-l10n-lv
kde-l10n-lt
kde-l10n-ko
kde-l10n-kn (x 2)
kde-l10n-km
kde-l10n-kk
kde-l10n-ja
kde-l10n-it
kde-l10n-is
kde-l10n-id
kde-l10n-ia
kde-l10n-hu
kde-l10n-hr
kde-l10n-hi
kde-l10n-he
kde-l10n-gu
kde-l10n-gl
kde-l10n-ga
kde-l10n-fr
kde-l10n-fi
kde-l10n-eu
kde-l10n-et
kde-l10n-es
kde-l10n-engb
kde-l10n-el
kde-l10n-de
kde-l10n-da
kde-l10n-cs
kde-l10n-cavalencia
kde-l10n-ca
kde-l10n-bg
kde-l10n-ar
festvox-kdlpc16k
festvox-kdlpc8k
festvox-kallpc16k
festvox-kallpc8k
cman (x 3)
fence-agents
gamin (x 11)
libfam0 (x 3)
fam
#
exim4-config (x 4)
#
exim4-daemon-light (x 2)
rmail
#
evince (x 3)
evince-gtk
epiphany-browser (x 5)
swfdec-mozilla
#
emacs23 (x 2)
emacs23-lucid
emacs23-nox
#
#
libdap-dev
libdnet-dev (x 2)
libcurl4-gnutls-dev (x 24)
#
dma
esmtp-run
masqmail
msmtp-mta
ssmtp
#discount
libtext-markdown-perl (x 3)
markdown
isc-dhcp-server (x 4)
dhcp-helper isc-dhcp-relay (x 2)
libdb5.1-java (x 5)
libdb5.3-java (x 2)
#
libdb5.1-dev (x 5)
libdb4.8-dev
libdb5.3-dev (x 2)
dconf-tools
dconf
libcyrus-imap-perl24 (x 4)
kolab-libcyrus-imap-perl (x 3)
#cyrus-nntpd-2.4 (x 3)
cyrus-common (x 7)
kolab-cyrus-common
inn2
inn2-lfs
leafnode
sn
cyrus-imapd-2.4 (x 3)
#
uw-imapd
#
cyrus-clients-2.4 (x 2)
kolab-cyrus-clients
libcurl4-nss-dev (x 2)
libcurl4-openssl-dev
cups-client (x 15)
cups-bsd (x 2)
controlaula
ltsp-controlaula
gnome-font-viewer
console-tools (x 4)
kbd
console-setup (x 2)
console-setup-mini
libcoin60-doc
inventor-dev
libcoin60-dev
resource-agents (x 5) cluster-agents
citadel-server (x 2)
courier-pop (x 2)
dovecot-pop3d
kolab-cyrus-pop3d
mailutils-pop3d
popa3d
solid-pop3d
ipopd
courier-imap (x 2)
dovecot-imapd (x 2)
kolab-cyrus-imapd
mailutils-imap4d
cyrus-pop3d-2.4 (x 3)
citadel-mta (x 2)
ucspi-unix
check-mk-livestatus
cfingerd
efingerd
xfingerd
pawserv (x 2)
udhcpd
sysklogd
fingerd
libboost1.46-dev (x 18)
libboost1.48-dev (x 63)
libboost-mpi-python1.46.1
libboost-mpi-python1.48.0
bitlbee (x 2) bitlbee-libpurple
fp-compiler-2.4.4 (x 14)
binutils-gold
#
bidentd
ident2
nullidentd
oidentd
pidentd
cron (x 5)
bcron-run
bandwidthd bandwidthd-pgsql
openbabel (x 2) babel-1.4.0
#
atftpd
tftpd
tftpd-hpa
python-pyatspipython-pyatspi2 (x 5)
asterisk-core-sounds-es-gsm asterisk-prompt-es-co
#
asterisk-voicemail
asterisk-voicemail-imapstorage
asterisk-voicemail-odbcstorage
iputils-arping (x 3)
arping
ardour
ardour-i686
apache2-prefork-dev
apache2-threaded-dev
#apache2-mpm-event
#
apache2-mpm-worker
torrus-apache2
libasound2-dev (x 2)
liboss4-salsa-dev
liboss-salsa-asound2
liboss4-salsa-asound2
xul-ext-adblock-plus (x 2)
libabiword-2.9-dev (x 4)
libace-foxreactor-dev (x 3)
acetoneiso
akonadi-kde-resource-googledata (x 358)
plasma-widget-amule (x 56)
libapq-postgresql-dbg (x 2)
auth2db (x 5)
auth2db-frontend (x 5)
banshee-extension-lirc (x 6)
bluedevil
libboost-all-dev (x 4)
libboost-mpi-dev (x 2)
libboost-mpi-python1.46-dev (x 2)
libboost-mpi1.46-dev
cdo (x 3)
libcegui-mk2-dev
libcheese-dev (x 4)
chemical-structures
cl-sql-odbc (x 2)
code-saturne (x 13)
connectomeviewer (x 2)
courier-faxmail
libcups2-dev (x 11)
libcupsdriver1-dev (x 9)
cyrus-admin-2.2 (x 5)
cyrus-clients-2.2
cyrus-replication (x 2) ∨
libdb5.1-java-gcj (x 2)
libdb5.3-java-gcj
libdevil-dev (x 39)
digikam-dbg (x 20)
docbookwiki
doodle-dbg (x 2)
libdose2-ocaml-dev (x 2)
e17-dev
libecore-dev (x 3)
libedje-dev
libeet-dev (x 3)
exim4 (x 3)
∨
fai-quickstart
∨
fileschanged ∨
libfluidsynth-dev (x 2)
fpc (x 2)
freeradius-iodbc
freevo (x 4)
fusionforge-plugin-blocks (x 25)
gforge-lists-mailman
python-gamera-dev (x 2)
∨
∨
∨
libgd-gd2-noxpm-ocaml-dev (x 2)
libgdal1-dev (x 3)
libgdb-dev
libgeda-dev
geogebra-kde (x 2)
glance (x 20)
gnome-osd
gnome-session (x 4)
gnome-utils
gosa (x 44)
goto-fai-backend
∨
gpe
gradle (x 2)
gross ∨
grub-choose-default ∨
grub-imageboot ∨
libgtkhtml3.14-dev (x 9)
libguichan-dev
hapm (x 3)
libhdf5-lam-dev
libhdf5-mpich-dev
libhdf5-serial-dev
libigstk4-dev (x 3)
illuminator-demo
imagemagick-dbg
jackd1 (x 2)
jackd2 (x 3)
jenkins-tomcat
libk3b-dev (x 7)
libkaya-gd-dev
libkaya-sdl-dev
kdeartwork (x 19)
kdepim-dbg (x 3)
kdeplasma-addons-dbg
kdesvn (x 2)
keystone (x 2)
kolabd
libalog-full-dbg (x 2)
libapache2-mod-log-sql (x 5)
ffmpeg-dbg (x 2)
libgd2-xpm-dev
libgdchart-gd2-noxpm-dev
libgdchart-gd2-xpm-dev
libgpod-dev
libgpod-nogtk-dev
libgnomeada2.14.2-dbg (x 2)
libmojomojo-perl
libphone-ui-20100517 (x 2)
libphone-ui-dev
libplayer-dev
libtuxcap-dev
ltsp-client
ltsp-server-standalone
libluabind-dev
libmagics++-dev (x 4)
libmapnik-dev (x 2)
maven-debian-helper
mdbtools-dbg
gnome (x 2)
gnome-core (x 2)
gnome-dbg
mew
mew-beta
monodevelop-debugger-gdb
mscore (x 2)
mysqmail-courier-logger
∨
mysqmail-dovecot-logger
mysqmail-pure-ftpd-logger
∨
nagiosgrapher
network-manager-strongswan
nova-compute-kvm
nova-network
octave-pkg-dev (x 2)
oggvideotools (x 2)
open-font-design-toolkit
libsaml2-dev (x 3)
libopenwalnut1-dev
libapache2-mod-passenger (x 2)
∨
libpcp-logsummary-perl (x 2)
pfqueue (x 2) ∨
robot-player-dev
python-fs
python-traitsgui ∨
qt-sdk
quassel (x 2)
quassel-client-kde4 (x 2)
r-base-core-dbg (x 2)
redhat-cluster-suite (x 2)
request-tracker3.8 (x 6)
sa-learn-cyrus ∨
sdpam
sepia
snd-gtk
∨
libsoqt4-dev
startupmanager
strongswan (x 2)
strongswan-starter∨
python-jarabe-0.84 (x 6)
sucrose-0.84
sugar-emulator-0.84 (x 2)
python-jarabe-0.86 (x 4)
sucrose-0.86
sugar-emulator-0.86 (x 2)
python-jarabe-0.88 (x 4)
sucrose-0.88
sugar-emulator-0.88 (x 2)
python-jarabe-0.90 (x 4)
sucrose-0.90
sugar-emulator-0.90 (x 2)
sugar-browse-activity-0.86 (x 5) ∨
sugar-calculate-activity
∨
sugar-connect-activity (x 9) ∨
task-kde-desktop
task-lxde-desktop
tcos-tftp-dhcp
uucpsend
libkwebkit-dbg
ytalk
∨
∨
zoneminder
xmakemol xmakemol-gl
libxine1-doc libxine2-doc
xserver-xorg-input-mtrack xserver-xorg-input-multitouch
wmnd wmnd-snmp
wl
wl-beta
semi
vm (x 2)
gnus
libwine-gecko-dbg-unstable libwine-gecko-unstable
w3c-dtd-xhtml w3c-sgml-lib (x 2)
ucspi-tcp ucspi-tcp-ipv6
tk8.4-doc tk8.5-doc
texmacs-common (x 2) texmacs-extra-fonts
tcl-trf (x 2) tcl-trf-doc
tcl8.4-doc tcl8.5-doc
libtag1-rusxmms libtag1-vanilla
synce-hal (x 2) synce-serial
slapos-client python-zc.buildout
slurm-llnl (x 2) sinfo
#
qterm
torque-client
#
torque-client-x11
gridengine-client
slurm-llnl-torque
shorewall6-lite
uif
filtergen
ferm
#
shorewall-lite
fiaif
shorewall (x 2)
shorewall-init ∨
scid-rating-data scid-spell-data
#
rxvt-unicode (x 2)
rxvt-unicode-256color
rxvt-unicode-lite
ruby-bacon ruby-rspec-core (x 7)
libamrita-ruby1.8 (x 2) ruby-amrita2 (x 4)
rt-tests xenomai-runtime
libreadline5-dbg libreadline6-dbg
lib64readline-gplv2-dev lib64readline6-dev
#
ratbox-services-mysql
ratbox-services-pgsql
ratbox-services-sqlite
raptor-utils raptor2-utils
radiusclient1 (x 2)
libradiusclient-ng-dev
libradius1-dev
radare radare-gtk
libqwt-doc libqwt5-doc
libqwt-dev libqwt5-qt4-dev
python-quixote (x 2) python-quixote1 (x 2)
qca-dev libqca2-dev (x 2)
psi3 yagiuda
planet-venus racket (x 2)
pimd smcroute
php-apc php5-xcache
pennmush pennmush-mysql
orville-write xtell
openwince-jtag urjtag
opendnssec-enforcer-mysql (x 2) opendnssec-enforcer-sqlite3 (x 2)
olpc-kbdshim olpc-kbdshim-hal
libode-dev libode-sp-dev
oce-draw opencascade-draw
liboce-foundation-dev (x 5) libopencascade-foundation-dev (x 6)
#
nginx-extras (x 2)
nginx-full (x 2)
nginx-light (x 2)
nginx ∨
libnetpbm10-dev
libnetpbm9-dev
libpgm-dev
tftp tftp-hpa
telnet telnet-ssl
harden-clients
x2vnc
ftp-upload
ftp ftp-ssl
mtr mtr-tiny modemmanager (x 2) wader-core
libapache2-mod-wsgi libapache2-mod-wsgi-py3
mlterm mlterm-tiny
chasen-cannadic naist-jdic (x 2)ipadic
mcstrans policycoreutils (x 6)
myspell-hu hunspell-hu
#myspell-fr
myspell-fr-gut
hunspell-fr
myspell-da
hunspell-vi
hunspell-sr
hunspell-sh
hunspell-da
lzma xz-lzma
liblua50-socket2 luasocketliblua50-socket-dev
luasocket-dev
#
libxbase2.0-bin
dvb-apps (x 2)
libxdb-dev
libupnp3-dev (x 2) libupnp4-dev
libunique-doc libunique-3.0-doc
libsieve2-dev libmailutils-dev (x 2)
libsendmail-milter-perl libsendmail-pmilter-perl
libpam-ldap libpam-ldapd
libpam-heimdal libpam-krb5
libowfat-dev
libudt-dev
libcdb-dev
libodbc-ruby-doc ruby-odbc (x 10)
libnss-ldap libnss-ldapd
libnet-proxy-perl sslh
libmimedir-dev libmimedir-gnome-dev (x 2)
libev-libevent-dev libevent-dev
libapache2-authenntlm-perl libauthen-smb-perl (x 2)
libantlr3c-3.2-0 libantlr3c-antlrdbg-3.2-0
ldap2zone ldapdnsldap2dns
laptop-mode-tools noflushd
joe joe-jupp
#
ircd-hybrid
#
#
#
ircd-irc2
ircd-ircu
ngircd
inspircd (x 2)
dancer-ircd
charybdis
ircd-ratbox (x 2)
im-config im-switch
#
hunspell-de-ch
myspell-de-ch
hunspell-de-ch-frami
#
hunspell-de-at
myspell-de-at
hunspell-de-at-frami
#
myspell-de-de-oldspell
hunspell-de-de
myspell-de-de
hunspell-de-de-frami
hunspell-de-med ∨
ifrench ifrench-gut hwloc hwloc-nox
hunspell-ru myspell-ru
hunspell-en-us myspell-en-us
hunspell-tools myspell-tools
hello hello-debhelper
heimdal-docs krb5-doc
heimdal-clients (x 3)
otp
krb5-clients
#
kcc
krb5-user (x 4)
openafs-kpasswd
libgnutls26-dbg libgnutls28-dbg
#
gnome-ppp
openresolv
resolvconf
gnokii-smsd (x 3) smstools
gmt (x 2) gmt-manpages
gimp-dcraw gimp-ufraw
libgfs-1.3-2 (x 3) libgfs-mpi-1.3-2 (x 3)
gcc-mingw32
mingw32
mingw32-binutils
binutils-mingw-w64-x86-64
binutils-mingw-w64-i686
binutils-mingw-w64 (x 5)
#
libstdc++6-4.4-doc
libstdc++6-4.5-doc
libstdc++6-4.6-doc
#
libstdc++6-4.4-dbg
libstdc++6-4.5-dbg
libstdc++6-4.6-dbg
#
lib64stdc++6-4.4-dbg
lib64stdc++6-4.5-dbg
lib64stdc++6-4.6-dbg
libwnn-dev libwnn6-dev
freebsd-sendpr gnats-user (x 2)
freebsd-buildutils (x 2) pmake
foomatic-db foomatic-db-compressed-ppds
fookb-plainx fookb-wmaker
libfltk1.1-dev (x 3) libfltk1.3-dev (x 2)
flex flex-old
bison (x 2) bison++
pretzel (x 3)
firebird2.5-classic-common (x 2)
firebird2.5-super (x 2) firebird2.5-server-common (x 3)
firebird2.5-classic
firebird2.5-superclassic
firebird2.1-server-common (x 2)
firebird2.1-classic
firebird2.1-super
fb-music-high fb-music-low
ettercap-graphical ettercap-text-only
erlang-base erlang-base-hipe
elvis elvis-console
elinks-data (x 2) elinks-lite
libelf-dev (x 2) libelfg0-dev (x 2)libdwarf-dev libdw-dev
nscd unscd
ecm gmp-ecm
dvi2ps-fontdata-ptexfake ptex-base (x 6)
python-dnspython (x 5) linkchecker (x 2)
dicod (x 4) dictd
dico le-dico-de-rene-cougnenc
dhcpcd pump (x 2)
debget debian-goodies
#
dbskkd-cdb
skksearch
yaskkserv
libdb5.1-tcl libdb5.3-tcl
libdb5.1-stl-dev libdb5.3-stl-dev libdb5.1-sql-dev (x 2) libdb5.3-sql-dev
libsasl2-modules-gssapi-heimdal (x 2) libsasl2-modules-gssapi-mit (x 2)
libcunit1 (x 2) libcunit1-ncurses (x 2)
crossfire-maps crossfire-maps-small
crack crack-md5
cpufreqd powernowd
courier-maildrop (x 5) maildrop
conky-cli conky-std
libclutter-gtk-1.0-doc (x 2) libclutter-gtk-0.10-doc
libcloog-isl-dev libcloog-ppl-dev
#
chrony
ntp (x 2)
openntpd
python-cherrypy3 (x 4) python-cherrypy (x 3)
check-mk-config-icinga check-mk-config-nagios3
busybox (x 4) busybox-static
bootchart bootchart2
libboost1.46-doc libboost1.48-doc (x 2)
blends-doc cdd-doc
biff mailutils-comsatd
#
bacula-common-mysql (x 3)
bacula-common-pgsql (x 3)
bacula-common-sqlite3 (x 5)
libavahi-ui-dev libavahi-ui-gtk3-dev
#
aumix
aumix-gtk
oss-preserve
mpg123-el ∨
#
asterisk-core-sounds-fr-gsm
asterisk-prompt-fr-armelle
asterisk-prompt-fr-proformatique
#
apsfilter
magicfilter
printfilters-ppd
#
apcupsd (x 2)
nut-server (x 5)
powstatd
apache2-suexec apache2-suexec-custom
amavisd-new (x 3) phamm-ldap-amavis
#
aide
aide-dynamic
aide-xen
2ping (x 29205)
console-setup-freebsd MISSING DEP
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 34 / 46
libzookeeper-mt-dev libzookeeper-st-dev
zephyr-server zephyr-server-krb5 libzephyr4-krb5 libzephyr4
#
zabbix-proxy-mysql
zabbix-proxy-pgsql
zabbix-proxy-sqlite3
zabbix-server-mysql
zabbix-server-pgsql
xmpuzzles
xpuzzles
libasound2 (x 2355)
#
libxine-dev libxine2-dev
libxerces-c-dev (x 3)
libxerces-c2-dev (x 2)
xabacus
xmabacus
wims-extra-all
wims-extra-es
libgd2-xpm (x 103)
w3m-el-snapshot w3m-el
libtomcat6-java (x 10) libtomcat7-java (x 7)
#
systemd-sysv
systemd (x 3)
#
sysvinit
upstart
sysv-rc (x 4) file-rc
#
python-sugar-0.84 (x 2)
python-sugar-0.86 (x 2)
python-sugar-0.88 (x 2)
python-sugar-0.90 (x 2)
python-sugar-0.92
#
sugar-artwork-0.84
sugar-artwork-0.86
sugar-artwork-0.88
sugar-artwork-0.90
sugar-artwork-0.92
sudo sudo-ldap
stardict-gnome
stardict-gtk
#snort
∨
busybox-syslogd
dsyslog (x 5)
inetutils-syslogd
rsyslog (x 6)
socklog-run
klogd
syslog-ng-core (x 5)
snort-mysql
snort-pgsql
#snd-gtk-jack
snd-gtk-pulse
snd-nox (x 2)
libsnack2 (x 2) libsnack2-alsa
rxvt-ml
rxvt-beta
rxvt
libreadline6-dev (x 18)
libreadline-gplv2-dev (x 2)
#radiusd-livingston
#
radsecproxy
yardradius
quassel-data
quassel-data-kde4
libqt4-dbg (x 3)
qt-x11-free-dbg
gdb (x 15) gdb-minimal
python-xattr (x 8)
python-pyxattr (x 2)
python-sqlite (x 13)
python-pysqlite1.1 (x 2)
python-pyface (x 5)
python-traitsbackendwx
python-traitsbackendqt
python-envisage python-envisageplugins
python-pyorbit-omg python-omniorb-omg
#
libpt-dev
libjpeg8-dev (x 39)
unixodbc-dev (x 12)
libjpeg62-dev
libiodbc2-dev
libpt2.4.5-dev (x 2)
libpt-1.10.10-dev (x 2)
libportaudio-dev portaudio19-dev (x 4)
php5-mysql (x 22) php5-mysqlnd
libapache2-mod-php5 (x 3)
libapache2-mod-php5filter
∨
apache2-mpm-itk
apache2-mpm-prefork (x 4)
phonon-backend-null
phonon-backend-vlc (x 2)
phonon-backend-gstreamer (x 3)
libphonon4 (x 24) libqt4-phonon
libpcp3-dev (x 2) libpgpool-dev libpcp3 (x 18) pgpool2
python-vtk (x 5)
paraview-python
libhdf5-openmpi-1.8.4 (x 28)
#
libopenh323-1.18.0 (x 2)
libopenh323-1.18.0-develop
libopenmpi-dev (x 20)
libopal-dev
obex-data-server (x 3) obexd-server
libneon27-dev
libneon27-gnutls-dev
libkrb5-dev (x 30)
libgnutls-dev (x 44)
heimdal-dev
libelektra-dev (x 3)
libgnutls28-dev
mplayer (x 2)
mplayer2 (x 2)
moon-buggy moon-buggy-esd
minbif (x 2)
minbif-webcam
mew-bin
mew-beta-bin
libgl1-mesa-glx (x 17) libgl1-mesa-swx11 (x 4)
#
libmeep-dev
libmeep-mpi-dev
libmeep-openmpi-dev
maven2 maven
maatkit
percona-toolkit
#lsb
nullmailer
#
#
#
xmail
#
#
lprlprng
#
#live-config-runit
#
live-config-systemd
live-config-upstart
live-config-sysvinit
#
libnl-dev
libnl2-dev (x 6)
libnl-3-dev (x 5)
libiodbc2 (x 98)
odbc-postgresql (x 2)
libmyodbc
libmdbodbc1 (x 2)
tdsodbc
libhdf4-alt-dev
libhdf4-dev (x 2)
libgpod4 (x 42)
libgpod4-nogtk
libgdchart-gd2-noxpm
libgdchart-gd2-xpm
libgd2-noxpm
libgd-gd2-perl (x 28)
libgd-gd2-noxpm-perl
libswscale2
libswscale-extra-2
libavutil-extra-51
libpostproc52
libpostproc-extra-52
libavutil51
libavformat53
libavformat-extra-53 libavcodec-extra-53
libavfilter2
libavfilter-extra-2
libavdevice53
libavdevice-extra-53
libavcodec53
libalog0.3-full
libalog0.3-base (x 3)
gnat-4.4 (x 41)
gnat-4.6 (x 8)
#
lam4-dev
mpi-doc
#
mpich2-doc
openmpi-doc
lam-mpidoc
python-kombu (x 4)
python-cjson (x 2)
kdiff3
kdiff3-qt
oxygen-icon-theme fdpowermon-iconskdesvn-kio-plugins
kdesdk-kio-plugins
tomcat6 (x 2) jenkins
libjack0 (x 2)
libjack-jackd2-0 (x 2)
#
racoon (x 3)
#
#
openswan (x 5)
strongswan-ikev2 (x 2)
strongswan-ikev1
inn (x 2)
inn2-inews
inn2-dev
#
#
inetutils-telnetd
#
krb5-telnetdkrb5-rsh-server
#
telnetd
#
telnetd-ssl
iputils-ping (x 22) inetutils-ping
#
inetutils-inetd
openbsd-inetd
rlinetd
xinetd
ike (x 2)
#ifupdown (x 3)
netscript-2.4
netscript-2.4-upstart
icheck qtmobility-dev
iceape (x 4)
xul-ext-requestpolicy
mgetty-fax hylafax-client (x 4)
heimdal-servers (x 2)
#
#
#
inetutils-ftpd
krb5-ftpd
ftpd
ftpd-ssl
muddleftpd
proftpd-basic (x 19)
pure-ftpd
pure-ftpd-ldap
pure-ftpd-mysql
pure-ftpd-postgresql
twoftpd-run
runit (x 3) daemontools-run
vsftpd
wu-ftpd
wzdftpd (x 7)
libhdf5-lam-1.8.4
libhdf5-mpich-1.8.4
libhdf5-serial-1.8.4
sendmail-bin (x 3)
harden-servers (x 2) pyftpd
#
#
#
#
#
rpcbind (x 11)
rsh-server
rsh-redone-server
#
guile-1.6-dev
guile-1.8-dev (x 4)
guile-2.0-dev
gtalk (x 2)
inetutils-talkd
talkd
gss-man
#
grub-coreboot (x 2)
grub2-common
grub-efi-amd64
grub-efi-ia32 (x 2)
grub-ieee1275
grub-pc (x 4)
grub-legacy
#
libgrib-api-0d-1 (x 2)
libgrib-api-1.9.9 (x 5)
libgrib-api-data
perlmagick
graphicsmagick-libmagick-dev-compat
libmagickcore-dev (x 6)
graphicsmagick-imagemagick-compat octave-image
imagemagick (x 2)
gpivtools-mpi gpivtools
gpiv
gpiv-mpi
gpe-login
xdm
wdm
slim
kdm (x 2)
gnuspool (x 3) system-config-printer-udev
gnome-control-center (x 3)
gpe-conf (x 3)
gnome-control-center-datacapplets-data
git-daemon-run
git-daemon-sysvinit
gdm3 (x 2)
#
fusionforge-full
∨
exim4-daemon-heavy (x 3)
courier-mta (x 4)
postfix (x 14)
fusionforge-minimal
fusionforge-standard (x 2)
fuse (x 57)
loop-aes-utils
fso-gsm0710muxd gsm0710muxd
libgps20 (x 14)
fso-gpsd
fso-frameworkd (x 3)
libphone-utils0 (x 4)
#
fso-config-general
fso-config-gta01
fso-config-gta02
freeradius-common (x 8)
fontforge (x 2) fontforge-nox
fltk1.1-games
fltk1.3-games
filelight-l10n
kde-l10n-zhtw
kde-l10n-zhcn
kde-l10n-wa
kde-l10n-uk
kde-l10n-tr
kde-l10n-th
kde-l10n-sv
kde-l10n-sr
kde-l10n-sl
kde-l10n-sk
kde-l10n-ru
kde-l10n-ro
kde-l10n-ptbr
kde-l10n-pt
kde-l10n-pl
kde-l10n-pa
kde-l10n-nn
kde-l10n-nl
kde-l10n-nds
kde-l10n-nb
kde-l10n-mai
kde-l10n-lv
kde-l10n-lt
kde-l10n-ko
kde-l10n-kn (x 2)
kde-l10n-km
kde-l10n-kk
kde-l10n-ja
kde-l10n-it
kde-l10n-is
kde-l10n-id
kde-l10n-ia
kde-l10n-hu
kde-l10n-hr
kde-l10n-hi
kde-l10n-he
kde-l10n-gu
kde-l10n-gl
kde-l10n-ga
kde-l10n-fr
kde-l10n-fi
kde-l10n-eu
kde-l10n-et
kde-l10n-es
kde-l10n-engb
kde-l10n-el
kde-l10n-de
kde-l10n-da
kde-l10n-cs
kde-l10n-cavalencia
kde-l10n-ca
kde-l10n-bg
kde-l10n-ar
festvox-kdlpc16k
festvox-kdlpc8k
festvox-kallpc16k
festvox-kallpc8k
cman (x 3)
fence-agents
gamin (x 11)
libfam0 (x 3)
fam
#
exim4-config (x 4)
#
exim4-daemon-light (x 2)
rmail
#
evince (x 3)
evince-gtk
epiphany-browser (x 5)
swfdec-mozilla
#
emacs23 (x 2)
emacs23-lucid
emacs23-nox
#
#
libdap-dev
libdnet-dev (x 2)
libcurl4-gnutls-dev (x 24)
#
dma
esmtp-run
masqmail
msmtp-mta
ssmtp
#discount
libtext-markdown-perl (x 3)
markdown
isc-dhcp-server (x 4)
dhcp-helper isc-dhcp-relay (x 2)
libdb5.1-java (x 5)
libdb5.3-java (x 2)
#
libdb5.1-dev (x 5)
libdb4.8-dev
libdb5.3-dev (x 2)
dconf-tools
dconf
libcyrus-imap-perl24 (x 4)
kolab-libcyrus-imap-perl (x 3)
#cyrus-nntpd-2.4 (x 3)
cyrus-common (x 7)
kolab-cyrus-common
inn2
inn2-lfs
leafnode
sn
cyrus-imapd-2.4 (x 3)
#
uw-imapd
#
cyrus-clients-2.4 (x 2)
kolab-cyrus-clients
libcurl4-nss-dev (x 2)
libcurl4-openssl-dev
cups-client (x 15)
cups-bsd (x 2)
controlaula
ltsp-controlaula
gnome-font-viewer
console-tools (x 4)
kbd
console-setup (x 2)
console-setup-mini
libcoin60-doc
inventor-dev
libcoin60-dev
resource-agents (x 5) cluster-agents
citadel-server (x 2)
courier-pop (x 2)
dovecot-pop3d
kolab-cyrus-pop3d
mailutils-pop3d
popa3d
solid-pop3d
ipopd
courier-imap (x 2)
dovecot-imapd (x 2)
kolab-cyrus-imapd
mailutils-imap4d
cyrus-pop3d-2.4 (x 3)
citadel-mta (x 2)
ucspi-unix
check-mk-livestatus
cfingerd
efingerd
xfingerd
pawserv (x 2)
udhcpd
sysklogd
fingerd
libboost1.46-dev (x 18)
libboost1.48-dev (x 63)
libboost-mpi-python1.46.1
libboost-mpi-python1.48.0
bitlbee (x 2) bitlbee-libpurple
fp-compiler-2.4.4 (x 14)
binutils-gold
#
bidentd
ident2
nullidentd
oidentd
pidentd
cron (x 5)
bcron-run
bandwidthd bandwidthd-pgsql
openbabel (x 2) babel-1.4.0
#
atftpd
tftpd
tftpd-hpa
python-pyatspipython-pyatspi2 (x 5)
asterisk-core-sounds-es-gsm asterisk-prompt-es-co
#
asterisk-voicemail
asterisk-voicemail-imapstorage
asterisk-voicemail-odbcstorage
iputils-arping (x 3)
arping
ardour
ardour-i686
apache2-prefork-dev
apache2-threaded-dev
#apache2-mpm-event
#
apache2-mpm-worker
torrus-apache2
libasound2-dev (x 2)
liboss4-salsa-dev
liboss-salsa-asound2
liboss4-salsa-asound2
xul-ext-adblock-plus (x 2)
libabiword-2.9-dev (x 4)
libace-foxreactor-dev (x 3)
acetoneiso
akonadi-kde-resource-googledata (x 358)
plasma-widget-amule (x 56)
libapq-postgresql-dbg (x 2)
auth2db (x 5)
auth2db-frontend (x 5)
banshee-extension-lirc (x 6)
bluedevil
libboost-all-dev (x 4)
libboost-mpi-dev (x 2)
libboost-mpi-python1.46-dev (x 2)
libboost-mpi1.46-dev
cdo (x 3)
libcegui-mk2-dev
libcheese-dev (x 4)
chemical-structures
cl-sql-odbc (x 2)
code-saturne (x 13)
connectomeviewer (x 2)
courier-faxmail
libcups2-dev (x 11)
libcupsdriver1-dev (x 9)
cyrus-admin-2.2 (x 5)
cyrus-clients-2.2
cyrus-replication (x 2) ∨
libdb5.1-java-gcj (x 2)
libdb5.3-java-gcj
libdevil-dev (x 39)
digikam-dbg (x 20)
docbookwiki
doodle-dbg (x 2)
libdose2-ocaml-dev (x 2)
e17-dev
libecore-dev (x 3)
libedje-dev
libeet-dev (x 3)
exim4 (x 3)
∨
fai-quickstart
∨
fileschanged ∨
libfluidsynth-dev (x 2)
fpc (x 2)
freeradius-iodbc
freevo (x 4)
fusionforge-plugin-blocks (x 25)
gforge-lists-mailman
python-gamera-dev (x 2)
∨
∨
∨
libgd-gd2-noxpm-ocaml-dev (x 2)
libgdal1-dev (x 3)
libgdb-dev
libgeda-dev
geogebra-kde (x 2)
glance (x 20)
gnome-osd
gnome-session (x 4)
gnome-utils
gosa (x 44)
goto-fai-backend
∨
gpe
gradle (x 2)
gross ∨
grub-choose-default ∨
grub-imageboot ∨
libgtkhtml3.14-dev (x 9)
libguichan-dev
hapm (x 3)
libhdf5-lam-dev
libhdf5-mpich-dev
libhdf5-serial-dev
libigstk4-dev (x 3)
illuminator-demo
imagemagick-dbg
jackd1 (x 2)
jackd2 (x 3)
jenkins-tomcat
libk3b-dev (x 7)
libkaya-gd-dev
libkaya-sdl-dev
kdeartwork (x 19)
kdepim-dbg (x 3)
kdeplasma-addons-dbg
kdesvn (x 2)
keystone (x 2)
kolabd
libalog-full-dbg (x 2)
libapache2-mod-log-sql (x 5)
ffmpeg-dbg (x 2)
libgd2-xpm-dev
libgdchart-gd2-noxpm-dev
libgdchart-gd2-xpm-dev
libgpod-dev
libgpod-nogtk-dev
libgnomeada2.14.2-dbg (x 2)
libmojomojo-perl
libphone-ui-20100517 (x 2)
libphone-ui-dev
libplayer-dev
libtuxcap-dev
ltsp-client
ltsp-server-standalone
libluabind-dev
libmagics++-dev (x 4)
libmapnik-dev (x 2)
maven-debian-helper
mdbtools-dbg
gnome (x 2)
gnome-core (x 2)
gnome-dbg
mew
mew-beta
monodevelop-debugger-gdb
mscore (x 2)
mysqmail-courier-logger
∨
mysqmail-dovecot-logger
mysqmail-pure-ftpd-logger
∨
nagiosgrapher
network-manager-strongswan
nova-compute-kvm
nova-network
octave-pkg-dev (x 2)
oggvideotools (x 2)
open-font-design-toolkit
libsaml2-dev (x 3)
libopenwalnut1-dev
libapache2-mod-passenger (x 2)
∨
libpcp-logsummary-perl (x 2)
pfqueue (x 2) ∨
robot-player-dev
python-fs
python-traitsgui ∨
qt-sdk
quassel (x 2)
quassel-client-kde4 (x 2)
r-base-core-dbg (x 2)
redhat-cluster-suite (x 2)
request-tracker3.8 (x 6)
sa-learn-cyrus ∨
sdpam
sepia
snd-gtk
∨
libsoqt4-dev
startupmanager
strongswan (x 2)
strongswan-starter∨
python-jarabe-0.84 (x 6)
sucrose-0.84
sugar-emulator-0.84 (x 2)
python-jarabe-0.86 (x 4)
sucrose-0.86
sugar-emulator-0.86 (x 2)
python-jarabe-0.88 (x 4)
sucrose-0.88
sugar-emulator-0.88 (x 2)
python-jarabe-0.90 (x 4)
sucrose-0.90
sugar-emulator-0.90 (x 2)
sugar-browse-activity-0.86 (x 5) ∨
sugar-calculate-activity
∨
sugar-connect-activity (x 9) ∨
task-kde-desktop
task-lxde-desktop
tcos-tftp-dhcp
uucpsend
libkwebkit-dbg
ytalk
∨
∨
zoneminder
xmakemol xmakemol-gl
libxine1-doc libxine2-doc
xserver-xorg-input-mtrack xserver-xorg-input-multitouch
wmnd wmnd-snmp
wl
wl-beta
semi
vm (x 2)
gnus
libwine-gecko-dbg-unstable libwine-gecko-unstable
w3c-dtd-xhtml w3c-sgml-lib (x 2)
ucspi-tcp ucspi-tcp-ipv6
tk8.4-doc tk8.5-doc
texmacs-common (x 2) texmacs-extra-fonts
tcl-trf (x 2) tcl-trf-doc
tcl8.4-doc tcl8.5-doc
libtag1-rusxmms libtag1-vanilla
synce-hal (x 2) synce-serial
slapos-client python-zc.buildout
slurm-llnl (x 2) sinfo
#
qterm
torque-client
#
torque-client-x11
gridengine-client
slurm-llnl-torque
shorewall6-lite
uif
filtergen
ferm
#
shorewall-lite
fiaif
shorewall (x 2)
shorewall-init ∨
scid-rating-data scid-spell-data
#
rxvt-unicode (x 2)
rxvt-unicode-256color
rxvt-unicode-lite
ruby-bacon ruby-rspec-core (x 7)
libamrita-ruby1.8 (x 2) ruby-amrita2 (x 4)
rt-tests xenomai-runtime
libreadline5-dbg libreadline6-dbg
lib64readline-gplv2-dev lib64readline6-dev
#
ratbox-services-mysql
ratbox-services-pgsql
ratbox-services-sqlite
raptor-utils raptor2-utils
radiusclient1 (x 2)
libradiusclient-ng-dev
libradius1-dev
radare radare-gtk
libqwt-doc libqwt5-doc
libqwt-dev libqwt5-qt4-dev
python-quixote (x 2) python-quixote1 (x 2)
qca-dev libqca2-dev (x 2)
psi3 yagiuda
planet-venus racket (x 2)
pimd smcroute
php-apc php5-xcache
pennmush pennmush-mysql
orville-write xtell
openwince-jtag urjtag
opendnssec-enforcer-mysql (x 2) opendnssec-enforcer-sqlite3 (x 2)
olpc-kbdshim olpc-kbdshim-hal
libode-dev libode-sp-dev
oce-draw opencascade-draw
liboce-foundation-dev (x 5) libopencascade-foundation-dev (x 6)
#
nginx-extras (x 2)
nginx-full (x 2)
nginx-light (x 2)
nginx ∨
libnetpbm10-dev
libnetpbm9-dev
libpgm-dev
tftp tftp-hpa
telnet telnet-ssl
harden-clients
x2vnc
ftp-upload
ftp ftp-ssl
mtr mtr-tiny modemmanager (x 2) wader-core
libapache2-mod-wsgi libapache2-mod-wsgi-py3
mlterm mlterm-tiny
chasen-cannadic naist-jdic (x 2)ipadic
mcstrans policycoreutils (x 6)
myspell-hu hunspell-hu
#myspell-fr
myspell-fr-gut
hunspell-fr
myspell-da
hunspell-vi
hunspell-sr
hunspell-sh
hunspell-da
lzma xz-lzma
liblua50-socket2 luasocketliblua50-socket-dev
luasocket-dev
#
libxbase2.0-bin
dvb-apps (x 2)
libxdb-dev
libupnp3-dev (x 2) libupnp4-dev
libunique-doc libunique-3.0-doc
libsieve2-dev libmailutils-dev (x 2)
libsendmail-milter-perl libsendmail-pmilter-perl
libpam-ldap libpam-ldapd
libpam-heimdal libpam-krb5
libowfat-dev
libudt-dev
libcdb-dev
libodbc-ruby-doc ruby-odbc (x 10)
libnss-ldap libnss-ldapd
libnet-proxy-perl sslh
libmimedir-dev libmimedir-gnome-dev (x 2)
libev-libevent-dev libevent-dev
libapache2-authenntlm-perl libauthen-smb-perl (x 2)
libantlr3c-3.2-0 libantlr3c-antlrdbg-3.2-0
ldap2zone ldapdnsldap2dns
laptop-mode-tools noflushd
joe joe-jupp
#
ircd-hybrid
#
#
#
ircd-irc2
ircd-ircu
ngircd
inspircd (x 2)
dancer-ircd
charybdis
ircd-ratbox (x 2)
im-config im-switch
#
hunspell-de-ch
myspell-de-ch
hunspell-de-ch-frami
#
hunspell-de-at
myspell-de-at
hunspell-de-at-frami
#
myspell-de-de-oldspell
hunspell-de-de
myspell-de-de
hunspell-de-de-frami
hunspell-de-med ∨
ifrench ifrench-gut hwloc hwloc-nox
hunspell-ru myspell-ru
hunspell-en-us myspell-en-us
hunspell-tools myspell-tools
hello hello-debhelper
heimdal-docs krb5-doc
heimdal-clients (x 3)
otp
krb5-clients
#
kcc
krb5-user (x 4)
openafs-kpasswd
libgnutls26-dbg libgnutls28-dbg
#
gnome-ppp
openresolv
resolvconf
gnokii-smsd (x 3) smstools
gmt (x 2) gmt-manpages
gimp-dcraw gimp-ufraw
libgfs-1.3-2 (x 3) libgfs-mpi-1.3-2 (x 3)
gcc-mingw32
mingw32
mingw32-binutils
binutils-mingw-w64-x86-64
binutils-mingw-w64-i686
binutils-mingw-w64 (x 5)
#
libstdc++6-4.4-doc
libstdc++6-4.5-doc
libstdc++6-4.6-doc
#
libstdc++6-4.4-dbg
libstdc++6-4.5-dbg
libstdc++6-4.6-dbg
#
lib64stdc++6-4.4-dbg
lib64stdc++6-4.5-dbg
lib64stdc++6-4.6-dbg
libwnn-dev libwnn6-dev
freebsd-sendpr gnats-user (x 2)
freebsd-buildutils (x 2) pmake
foomatic-db foomatic-db-compressed-ppds
fookb-plainx fookb-wmaker
libfltk1.1-dev (x 3) libfltk1.3-dev (x 2)
flex flex-old
bison (x 2) bison++
pretzel (x 3)
firebird2.5-classic-common (x 2)
firebird2.5-super (x 2) firebird2.5-server-common (x 3)
firebird2.5-classic
firebird2.5-superclassic
firebird2.1-server-common (x 2)
firebird2.1-classic
firebird2.1-super
fb-music-high fb-music-low
ettercap-graphical ettercap-text-only
erlang-base erlang-base-hipe
elvis elvis-console
elinks-data (x 2) elinks-lite
libelf-dev (x 2) libelfg0-dev (x 2)libdwarf-dev libdw-dev
nscd unscd
ecm gmp-ecm
dvi2ps-fontdata-ptexfake ptex-base (x 6)
python-dnspython (x 5) linkchecker (x 2)
dicod (x 4) dictd
dico le-dico-de-rene-cougnenc
dhcpcd pump (x 2)
debget debian-goodies
#
dbskkd-cdb
skksearch
yaskkserv
libdb5.1-tcl libdb5.3-tcl
libdb5.1-stl-dev libdb5.3-stl-dev libdb5.1-sql-dev (x 2) libdb5.3-sql-dev
libsasl2-modules-gssapi-heimdal (x 2) libsasl2-modules-gssapi-mit (x 2)
libcunit1 (x 2) libcunit1-ncurses (x 2)
crossfire-maps crossfire-maps-small
crack crack-md5
cpufreqd powernowd
courier-maildrop (x 5) maildrop
conky-cli conky-std
libclutter-gtk-1.0-doc (x 2) libclutter-gtk-0.10-doc
libcloog-isl-dev libcloog-ppl-dev
#
chrony
ntp (x 2)
openntpd
python-cherrypy3 (x 4) python-cherrypy (x 3)
check-mk-config-icinga check-mk-config-nagios3
busybox (x 4) busybox-static
bootchart bootchart2
libboost1.46-doc libboost1.48-doc (x 2)
blends-doc cdd-doc
biff mailutils-comsatd
#
bacula-common-mysql (x 3)
bacula-common-pgsql (x 3)
bacula-common-sqlite3 (x 5)
libavahi-ui-dev libavahi-ui-gtk3-dev
#
aumix
aumix-gtk
oss-preserve
mpg123-el ∨
#
asterisk-core-sounds-fr-gsm
asterisk-prompt-fr-armelle
asterisk-prompt-fr-proformatique
#
apsfilter
magicfilter
printfilters-ppd
#
apcupsd (x 2)
nut-server (x 5)
powstatd
apache2-suexec apache2-suexec-custom
amavisd-new (x 3) phamm-ldap-amavis
#
aide
aide-dynamic
aide-xen
2ping (x 29205)
console-setup-freebsd MISSING DEP
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 34 / 46
Interactive graph viewers onhttp://coinst.irill.org/
Ubuntu main: 7'000 packages, 31'000 dependencies
ub
iqu
ity-
slid
esh
ow
-ku
bu
ntu
ub
iqu
ity-
slid
esh
ow
-ub
un
tu
tk8
.4-d
oc
tk8
.5-d
oc
tcl8
.4-d
oc
tcl8
.5-d
oc
op
en
bsd
-in
etd
xin
etd
netw
ork
-man
ag
er-
kd
ep
lasm
a-w
idg
et-
netw
ork
man
ag
em
en
t (x
2)
lib
std
c++
6-4
.4-d
oc
lib
std
c++
6-4
.5-d
oc
lib
std
c++
6-4
.4-d
bg
lib
std
c++
6-4
.5-d
bg
#li
bsd
l1.2
deb
ian
-all
lib
sdl1
.2d
eb
ian
-als
a
lib
sdl1
.2d
eb
ian
-esd
lib
sdl1
.2d
eb
ian
-oss
lib
sdl1
.2d
eb
ian
-pu
lseau
dio
lib
read
lin
e6
-dev
(x 6
)li
bre
ad
lin
e5
-dev
lib
jpeg
62
-dev
(x 2
3)
lib
jpeg
8-d
ev
lib
gd
2-n
oxp
m
lib
gd
2-x
pm
(x
10
)
lib
db
4.8
-dev
(x 5
)li
bd
b4
.7-d
ev
(x 2
)
lib
curl
4-g
nu
tls-
dev
(x 4
)li
bcu
rl4
-op
en
ssl-
dev
foom
ati
c-d
b-c
om
pre
ssed
-pp
ds
(x 4
)fo
om
ati
c-d
b
ap
ach
e2
-pre
fork
-dev
ap
ach
e2
-th
read
ed
-dev
lib
eco
re-d
ev
lib
ed
je-d
ev
(x 2
)
lib
gd
2-n
oxp
m-d
ev
lib
gd
2-x
pm
-dev
lib
rdf0
-dev
lib
rpm
-dev
ub
un
tu-d
esk
top
ub
un
tu-n
etb
ook
lib
read
lin
e5
-db
gli
bre
ad
lin
e6
-db
g
lib
qt4
-db
g (
x 2
4)
qt-
x11
-fre
e-d
bg
lib
neon
27
-dev
lib
neon
27
-gn
utl
s-d
ev
lib
jack
-jack
d2
-0 (
x 2
)li
bja
ck0
(x
3)
lib
iod
bc2
-dev
un
ixod
bc-
dev
lib
gp
od
4 (
x 9
)li
bg
pod
4-n
og
tk (
x 2
)
lib
gl1
-mesa
-glx
(x
8)
lib
gl1
-mesa
-sw
x11
(x
3)
#
lib
clu
tter-
1.0
-0 (
x 2
)
lib
clu
tter-
eg
lx-e
s11
-1.0
-0 (
x 2
)
lib
clu
tter-
eg
lx-e
s20
-1.0
-0 (
x 2
)
lib
clu
tter-
1.0
-dev
(x 2
)
lib
clu
tter-
eg
lx-e
s11
-1.0
-dev
lib
clu
tter-
eg
lx-e
s20
-1.0
-dev
lib
elf
-dev
(x 3
)li
belf
g0
-dev
lib
db
4.7
-java
(x
3)
lib
db
4.8
-java
(x
3)
lib
64
std
c++
6-4
.4-d
bg
lib
64
std
c++
6-4
.5-d
bg
lib
64
read
lin
e5
-dev
lib
64
read
lin
e6
-dev
hu
nsp
ell
-tools
mys
pell
-tools
hu
nsp
ell
-fr
(x 3
)m
ysp
ell
-fr
hu
nsp
ell
-de-d
e (
x 3
)m
ysp
ell
-de-d
e-o
ldsp
ell
hell
oh
ell
o-d
eb
help
er
gru
bg
rub
-leg
acy
-ec2
#
gru
b-e
fi-a
md
64
gru
b-e
fi-i
a3
2 (
x 2
)
gru
b-p
c
flex
flex-
old
exi
m4
-daem
on
-heavy
(x
2)
exi
m4
-daem
on
-lig
ht
(x 2
)
exi
m4
-con
fig
(x
5)
post
fix
(x 9
)
em
acs
23
em
acs
23
-nox
deb
con
f-en
gli
shd
eb
con
f-i1
8n
#
bacu
la-c
om
mon
-mys
ql
(x 3
)
bacu
la-c
om
mon
-pg
sql
(x 3
)
bacu
la-c
om
mon
-sq
lite
3 (
x 3
) #
ap
ach
e2
-mp
m-e
ven
t
ap
ach
e2
-mp
m-p
refo
rk (
x 2
)
ap
ach
e2
-mp
m-w
ork
er
eu
caly
ptu
s-n
c∨
ab
row
ser
(x 7
04
9)
http://coinst.irill.org
Running time: less than 10 seconds!Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 35 / 46
QA 301: New Co-Installability Issues
Compare two versions of a repository
New issues are more likely to be bugs
Can report precisely what changes caused an issue
Example a b
p q
Many new issues between packages p and q due to a single
new con�ict between packages a and b.
Vouillon, Di CosmoBroken Sets in Software Repository Evolution
ICSE 2013
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 36 / 46
Finding New Co-Installability Issues
Tool coinst-upgrades http://coinst.irill.org/upgrades
graphs illustrating each new issue
context: other packages involved, package popularities (popcon)
The new version of unoconv depends on any version of python3-uno
unoconv python3-uno python-uno
The new version of tdsodbc con�icts with any version of libiodbc2
tdsodbc libiodbc2
Package libiodbc2 had been unmaintained for yearsShould not be a big issue if it gets removed, right?
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 37 / 46
Finding New Co-Installability Issues
Tool coinst-upgrades http://coinst.irill.org/upgrades
graphs illustrating each new issue
context: other packages involved, package popularities (popcon)
The new version of unoconv depends on any version of python3-uno
unoconv python3-uno python-uno
The new version of tdsodbc con�icts with any version of libiodbc2
tdsodbc libiodbc2
Package libiodbc2 had been unmaintained for yearsShould not be a big issue if it gets removed, right?
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 37 / 46
Context is Crucial
tdsodbc libiodbc2
Depend on libiodbc2 (about 380 packages): kcolorchooser, kdesdk-misc,kdevelop-php-docs, blinken, kdevelop, kmousetool, ktorrent, kalgebra,konqueror, klipper, kchmviewer, mplayerthumbs, libsmokekutils3, kjots,ksshaskpass, cantor, network-manager-kde, kbattleship, choqok,kdesdk-dbg, krusader-dbg, libkdegames-dev, kmidimon, klettres,quassel-kde4, libakonadi-ruby, konq-plugins, ktorrent-dbg, kiriki,plasma-widgets-workspace, kvirc-dbg, konversation-dbg, libkiten-dev,kdm-gdmcompat, plasma-netbook, libokular-ruby1.8, eqonomize,kdenetwork-dbg, libsmokeplasma3, kspread, lokalize, korganizer, parley,kfourinline, libsmokekde-dev, k�nd, kdepim-groupware, ksnapshot,libiodbc2-dev, plasma-runners-addons, libsmokekdeui4-3, printer-applet,ark, kdeutils, kover, rocs, kdesvn-dbg, kdevplatform-dev, libkdepim4, ktron,cantor-backend-sage, kinfocenter, . . .
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 38 / 46
QA 501: package migration
Unstable
Testing
Con�icting goals
package should reach testing rapidly
keep testing as stable as possible
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 39 / 46
The comigrate tool
Supplement/Replace BritneyGenerate hints that can be fed to Britney
Interactively investigate migration issuesRun it repeatedly, studying di�erent scenarios
Report of issues preventing package migrationhttp://coinst.irill.org/report/
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 40 / 46
Tool Core: Computing Package Migrations
Boolean solver(Co-)installability
analysis
Tentative migration
New constraints
Start with simple constraints
The Boolean solver generates a tentative migration
Check for (co-)installability issues; analyse these issues to generatenew constraints (�package A cannot migrate�, or �package A cannotmigrate without package B�)
Repeat until no more issue is found
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 41 / 46
Performance
Britney
Comigrate(installability)
Comigrate(co-installability)
Comigrate(installability,with caching)
Comigrate(co-installability,
with caching)
3 5.5 10 18 30 55 100 180 300 550Running time (seconds)
Data collected twice a day from 2013-06-24 to 2013-09-09
Missing datapoints: Britney can take more than 24 hours (Perltransition)....
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 42 / 46
Outline
1 GNU/Linux Distributions: industrialising Free Software
2 User side: improving package managers
3 Back to the server side : Package QAFind uninstallable packages
Learning from the future of repositories
Find non co-installable packagesFind new non co-installable packagesFilter incoming packages
4 In conclusion
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 43 / 46
A recurring pattern
In all examples above
identify a problem whose solution requires a research e�ort (discussionwith the maintainers)
work hard to �nd a solution
implement a tool, validate it on real world cases
publish a research article
foster adoption
In a picture
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 44 / 46
A recurring pattern
In all examples above
identify a problem whose solution requires a research e�ort (discussionwith the maintainers)
work hard to �nd a solution
implement a tool, validate it on real world cases
publish a research article
foster adoption
In a picture
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 44 / 46
Conclusions
Free Software and Computer Science
Free Software is ubiquitous, its growth poses new challenges
many di�cult issues with quality assurance in Free Software ...
are indeed interesting and deep problems in Computer Science,
and can be the basis for very fruitful collaborations
Collaborate with us at Irill, in general
Irill is a unique place: it hosts researchers that share the Free Softwarevalues, love to solve problems, and build valuable tools.We share a dream: make Free Software the best software in town.
Collaborate with us at Irill, on distributions
We have built powerful tools for QA in GNU/Linux distributions...some are already distribution neutral, thanks to CUDF; all can be ported.
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 45 / 46
Conclusions
Free Software and Computer Science
Free Software is ubiquitous, its growth poses new challenges
many di�cult issues with quality assurance in Free Software ...
are indeed interesting and deep problems in Computer Science,
and can be the basis for very fruitful collaborations
Collaborate with us at Irill, in general
Irill is a unique place: it hosts researchers that share the Free Softwarevalues, love to solve problems, and build valuable tools.We share a dream: make Free Software the best software in town.
Collaborate with us at Irill, on distributions
We have built powerful tools for QA in GNU/Linux distributions...some are already distribution neutral, thanks to CUDF; all can be ported.
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 45 / 46
Conclusions
Free Software and Computer Science
Free Software is ubiquitous, its growth poses new challenges
many di�cult issues with quality assurance in Free Software ...
are indeed interesting and deep problems in Computer Science,
and can be the basis for very fruitful collaborations
Collaborate with us at Irill, in general
Irill is a unique place: it hosts researchers that share the Free Softwarevalues, love to solve problems, and build valuable tools.We share a dream: make Free Software the best software in town.
Collaborate with us at Irill, on distributions
We have built powerful tools for QA in GNU/Linux distributions...some are already distribution neutral, thanks to CUDF; all can be ported.
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 45 / 46
Bibliography and tools excerpts
Di Cosmo, Leroy, Treinen, Vouillon et al
Managing the complexity of large free and open sourcepackage-based software distributions.ASE 2006: Automated Software Engineering.
Abate, Di Cosmo, Treinen, Zacchiroli
Learning from the Future of Component RepositoriesCBSE 2012: Component Based Software Engineering.
Abate, Di Cosmo, Treinen, Zacchiroli
A modular package manager architecture.Information and Software Technology, 2012.
Vouillon, Dogguy, Di Cosmo.
Easing software component repository evolution.ICSE 2014.
ToolsCudf library: http://gforge.inria.fr/projects/cudf/
Dose library: http://gforge.inria.fr/projects/dose/
Coinst suite: http://coinst.irill.org
Debian QA: http://qa.debian.org/dose
Learn more atwww.mancoosi.org and
www.irill.org
Questions?
@rdicosmo
Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 46 / 46