free sorftware research at irill (highlights)

79

Upload: roberto-di-cosmo

Post on 18-Dec-2014

695 views

Category:

Technology


2 download

DESCRIPTION

A short overview of Free Software Reseaerch performed at Irill, presented at the Suse Labs Conference, September 2014

TRANSCRIPT

Page 1: Free Sorftware Research at Irill (highlights)

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

Page 2: Free Sorftware Research at Irill (highlights)

IRILL, a special place for FOSS

Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 2 / 46

Page 3: Free Sorftware Research at Irill (highlights)

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

Page 4: Free Sorftware Research at Irill (highlights)

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

Page 5: Free Sorftware Research at Irill (highlights)

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

Page 6: Free Sorftware Research at Irill (highlights)

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

Page 7: Free Sorftware Research at Irill (highlights)

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

Page 8: Free Sorftware Research at Irill (highlights)

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

Page 9: Free Sorftware Research at Irill (highlights)

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

Page 10: Free Sorftware Research at Irill (highlights)

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

Page 11: Free Sorftware Research at Irill (highlights)

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

Page 12: Free Sorftware Research at Irill (highlights)

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

Page 13: Free Sorftware Research at Irill (highlights)

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

Page 14: Free Sorftware Research at Irill (highlights)

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

Page 15: Free Sorftware Research at Irill (highlights)

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

Page 16: Free Sorftware Research at Irill (highlights)

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

Page 17: Free Sorftware Research at Irill (highlights)

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

Page 18: Free Sorftware Research at Irill (highlights)

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

Page 19: Free Sorftware Research at Irill (highlights)

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

Page 20: Free Sorftware Research at Irill (highlights)

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

Page 21: Free Sorftware Research at Irill (highlights)

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

Page 22: Free Sorftware Research at Irill (highlights)

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

Page 23: Free Sorftware Research at Irill (highlights)

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

Page 24: Free Sorftware Research at Irill (highlights)

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

Page 25: Free Sorftware Research at Irill (highlights)

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

Page 26: Free Sorftware Research at Irill (highlights)

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

Page 27: Free Sorftware Research at Irill (highlights)

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

Page 28: Free Sorftware Research at Irill (highlights)

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

Page 29: Free Sorftware Research at Irill (highlights)

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

Page 30: Free Sorftware Research at Irill (highlights)

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

Page 31: Free Sorftware Research at Irill (highlights)

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

Page 32: Free Sorftware Research at Irill (highlights)

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

Page 33: Free Sorftware Research at Irill (highlights)

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

Page 34: Free Sorftware Research at Irill (highlights)

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

Page 35: Free Sorftware Research at Irill (highlights)

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

Page 36: Free Sorftware Research at Irill (highlights)

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

Page 37: Free Sorftware Research at Irill (highlights)

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

Page 38: Free Sorftware Research at Irill (highlights)

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

Page 39: Free Sorftware Research at Irill (highlights)

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

Page 40: Free Sorftware Research at Irill (highlights)

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

Page 41: Free Sorftware Research at Irill (highlights)

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

Page 42: Free Sorftware Research at Irill (highlights)

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

Page 43: Free Sorftware Research at Irill (highlights)

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

Page 44: Free Sorftware Research at Irill (highlights)

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

Page 45: Free Sorftware Research at Irill (highlights)

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

Page 46: Free Sorftware Research at Irill (highlights)

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

Page 47: Free Sorftware Research at Irill (highlights)

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

Page 48: Free Sorftware Research at Irill (highlights)

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

Page 49: Free Sorftware Research at Irill (highlights)

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

Page 50: Free Sorftware Research at Irill (highlights)

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

Page 51: Free Sorftware Research at Irill (highlights)

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

Page 52: Free Sorftware Research at Irill (highlights)

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

Page 53: Free Sorftware Research at Irill (highlights)

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

Page 54: Free Sorftware Research at Irill (highlights)

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

Page 55: Free Sorftware Research at Irill (highlights)

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

Page 56: Free Sorftware Research at Irill (highlights)

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

Page 57: Free Sorftware Research at Irill (highlights)

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

Page 58: Free Sorftware Research at Irill (highlights)

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

Page 59: Free Sorftware Research at Irill (highlights)

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

Page 60: Free Sorftware Research at Irill (highlights)

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

Page 61: Free Sorftware Research at Irill (highlights)

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

Page 62: Free Sorftware Research at Irill (highlights)

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

Page 63: Free Sorftware Research at Irill (highlights)

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/

Page 64: Free Sorftware Research at Irill (highlights)

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

Page 65: Free Sorftware Research at Irill (highlights)

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

Page 66: Free Sorftware Research at Irill (highlights)

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

Page 67: Free Sorftware Research at Irill (highlights)

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

Page 68: Free Sorftware Research at Irill (highlights)

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

Page 69: Free Sorftware Research at Irill (highlights)

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

Page 70: Free Sorftware Research at Irill (highlights)

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

Page 71: Free Sorftware Research at Irill (highlights)

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

Page 72: Free Sorftware Research at Irill (highlights)

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

Page 73: Free Sorftware Research at Irill (highlights)

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

Page 74: Free Sorftware Research at Irill (highlights)

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

Page 75: Free Sorftware Research at Irill (highlights)

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

Page 76: Free Sorftware Research at Irill (highlights)

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

Page 77: Free Sorftware Research at Irill (highlights)

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

Page 78: Free Sorftware Research at Irill (highlights)

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

Page 79: Free Sorftware Research at Irill (highlights)

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?

[email protected]

@rdicosmo

Roberto Di Cosmo (Paris Diderot) FOSS Research at Irill Suse Labs 2014 46 / 46