Tales from the Mancoosi frontline: moving forward with MPM (the Mancoosi package manager prototype)

I wanted to install libreoffice today, on a freshly installed Squeeze/amd64 ... but it turned out to be more interesting than expected.

To do so, I first tried using apt-get (Version: 0.8.10.3), and it failed to find a solution:

Reading package lists... 
Building dependency tree... 
Reading state information... 
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:
 libreoffice : Depends: libreoffice-core (= 1:3.3.1-1) but it is not going to be installed
               Depends: libreoffice-writer but it is not going to be installed
               Depends: libreoffice-calc but it is not going to be installed
               Depends: libreoffice-impress but it is not going to be installed
               Depends: libreoffice-draw but it is not going to be installed
               Depends: libreoffice-math but it is not going to be installed
               Depends: libreoffice-base but it is not going to be installed
               Depends: libreoffice-report-builder-bin but it is not going to be installed
               Depends: libreoffice-filter-mobiledev but it is not going to be installed
               Depends: libreoffice-java-common (>= 1:3.3.1~) but it is not going to be installed
E : Broken packages

You can find the data to reproduce this upgrade scenario online at the Mancoosi Debian DUDF repository.

I tried aptitude (Version: 0.6.3-3.2), which basically does not help either:

Reading package lists...
Building dependency tree...
Reading state information...
Reading extended state information...
Initializing package states...
Reading task descriptions...
The following NEW packages will be installed:
  libreoffice libreoffice-base{ab} libreoffice-base-core{ab} 
  libreoffice-calc{ab} libreoffice-common{ab} libreoffice-core{ab} 
  libreoffice-draw{ab} libreoffice-filter-mobiledev{a} 
  libreoffice-impress{a} libreoffice-java-common{a} libreoffice-math{ab} 
  libreoffice-report-builder-bin{ab} libreoffice-style-galaxy{a} 
  libreoffice-writer{ab} libwpd-0.9-9{a} libwpg-0.2-2{a} libwps-0.2-2{a} 
0 packages upgraded, 17 newly installed, 0 to remove and 14 not upgraded.
Need to get 95.9 MB of archives. After unpacking 274 MB will be used.
The following packages have unmet dependencies:
  libreoffice-draw: Depends: ure (>= 1.7.0) but 1.6.1+OOo3.2.1-11+squeeze2 is installed.
  libreoffice-report-builder-bin: Depends: ure (>= 1.7.0) but 1.6.1+OOo3.2.1-11+squeeze2 is installed.
  libreoffice-math: Depends: ttf-opensymbol (>= 2:2.4.3~) but 1:3.2.1-11+squeeze2 is installed.
  libreoffice-common: Conflicts: openoffice.org-common (< 1:3.3.0~) but 1:3.2.1-11+squeeze2 is ins talled.
  libreoffice-base-core: Depends: ure (>= 1.7.0) but 1.6.1+OOo3.2.1-11+squeeze2 is installed.
  libreoffice-base: Depends: ure (>= 1.7.0+LibO3.3.0~beta3) but 1.6.1+OOo3.2.1-11+squeeze2 is installed.
  libreoffice-calc: Depends: ure (>= 1.7.0) but 1.6.1+OOo3.2.1-11+squeeze2 is installed.
  libreoffice-core: Depends: libhyphen0 (>= 2.7.1) but 2.5-1 is installed.
                    Depends: ure (>= 1.7.0+LibO3.3.0~beta3) but 1.6.1+OOo3.2.1-11+squeeze2 is installed.
                    Depends: librdf0 (>= 1.0.13) but 1.0.10-3 is installed.
  libreoffice-writer: Depends: ure (>= 1.7.0) but 1.6.1+OOo3.2.1-11+squeeze2 is installed.
The following actions will resolve these dependencies:
      Keep the following packages at their current version:
1)      libreoffice Not Installed                        
2)      libreoffice-base Not Installed                   
3)      libreoffice-base-core Not Installed              
4)      libreoffice-calc Not Installed                   
5)      libreoffice-commo n Not Installed                 
6)      libreoffice-core Not Installed                   
7)      libreoffice-draw Not Installed                   
8)      libreoffice-filter-mobiledev Not Installed       
9)      libreoffice-impress Not Installed                
10)     libreoffice-java-common Not Installed            
11)     libreoffice-math Not Installed                   
12)     libreoffice-report-builder-bin Not Installed     
13)     libreoffice-style-galaxy Not Installed           
14)     libreoffice-writer Not Installed

Here too, you can find the data to reproduce this upgrade scenario online at the Mancoosi Debian DUDF repository.

Finally, I resorted to our current prototype mpm (an evolution of the apt-mancoosi that you can find on the Mancoosi software page) which gave me the following solution, which I finally applied successfully.

ure=1.7.0+LibO3.3.1-1 uno-libs3=1.7.0+LibO3.3.1-1 ttf-opensymbol=2:2.4.3+LibO3.3.1-1 
python-uno=1:3.3.1-1 openoffice.org-writer=1:3.3.0-7 openoffice.org-thesaurus-en-us=1:3.3.0-7 
openoffice.org-style-tango=1:3.3.0-7 openoffice.org-style-galaxy=1:3.3.0-7
openoffice.org-report-builder-bin- openoffice.org-officebean=1:3.3.0-7
openoffice.org-math=1:3.3.0-7 openoffice.org-impress=1:3.3.0-7
openoffice.org-gtk=1:3.3.0-7 openoffice.org-gnome=1:3.3.0-7
openoffice.org-gcj=1:3.3.0-7 openoffice.org-filter-binfilter=1:3.3.0-7
openoffice.org-evolution- openoffice.org-draw=1:3.3.0-7 openoffice.org-core-
openoffice.org-common=1:3.3.0-7 openoffice.org-calc=1:3.3.0-7
openoffice.org-base-core- openoffice.org-base=1:3.3.0-7
openoffice.org=1:3.3.0-7 mythes-en-us=1:3.3.0-3 libwps-0.2-2=0.2.0-3
libwpg-0.2-2=0.2.0-4 libwpd-0.9-9=0.9.1-2 libreoffice-writer=1:3.3.1-1
libreoffice-style-tango=1:3.3.1-1 libreoffice-style-galaxy=1:3.3.1-1
libreoffice-report-builder-bin=1:3.3.1-1 libreoffice-officebean=1:3.3.1-1
libreoffice-math=1:3.3.1-1 libreoffice-java-common=1:3.3.1-1
libreoffice-impress=1:3.3.1-1 libreoffice-gtk=1:3.3.1-1
libreoffice-gnome=1:3.3.1-1 libreoffice-gcj=1:3.3.1-1
libreoffice-filter-mobiledev=1:3.3.1-1 libreoffice-filter-binfilter=1:3.3.1-1
libreoffice-draw=1:3.3.1-1 libreoffice-core=1:3.3.1-1
libreoffice-common=1:3.3.1-1 libreoffice-calc=1:3.3.1-1
libreoffice-base-core=1:3.3.1-1 libreoffice-base=1:3.3.1-1
libreoffice=1:3.3.1-1 librdf0=1.0.13-2 librasqal3=0.9.25-1 libraptor2-0=2.0.0-2
libhyphen0=2.7.1-4

The apt-get line above is generated by mpm to allow the user to pass this solution to apt-get; calling apt-get this way is not guaranteed to give the expected result, as apt-get tries to recompute another solution first, even if what you give it on the command line is complete already, and this is why we are working on mpm, binding directly to libapt, to have the solution applied exactly as computed by the solvers.

P.S.: for the curious people, libreoffice is not in Squeeze, so I had to add testing to the apt sources, and I pinned it down below stable, to avoid breaking stable unvoluntarily with further upgrades. Using -t testing or libreoffice/testing or similar combibations as parameters to apt-get and aptitude did not produce very different effects.