HardyReducingDuplication
Size: 4799
Comment: clarify blt situation
|
Size: 5215
Comment: update spec
|
Deletions are marked like this. | Additions are marked like this. |
Line 44: | Line 44: |
* Remaining rdepends of 2: gimp (for gimp-helpbrowser), screem, gnome-python-extras (for python-gtkhtml2); the first two need upstream porting; python-gtkhtml2 only has a few rdepends, the only main one being gnome-app-install | |
Line 46: | Line 45: |
* 3.8 is only needed for gnome-sharp2; can't be ported to 3.14 without breaking libgtkhtml2.0-cil's ABI/API, thus all reverse dependencies of it (f-spot, beagle, tomboy) need to be fixed first. | |
Line 48: | Line 48: |
* 1.0 still used by gobby, python-gnome2-desktop, and screem | * 1.0 still used by gobby, python-gnome2-desktop, and screem; needs upstream work |
Line 51: | Line 51: |
* No unforeseen problems with rebuilding everything against 27. | * No foreseen problems with rebuilding everything against 27. |
Line 75: | Line 75: |
* 3.3: only for libstdc++ which we want to support for commercial apps * 3.4: (unknown, ask doko) * 4.1: kernel needs to build with 4.2 first * libstdc++{2.10,5,6-4.1,6-4.2} |
* 3.3: only for libstdc++5 which we want to support for commercial apps * 3.4: * gcc-3.4: grub, mesa * still default compiler for g77 (until we get gfortran to replace it) * libg2c0 (fortran lib): lapack3, python-numarray, python-numeric * 4.1: * g++-4.1: boost, fftw, icu * gcc-4.1: bzip2, icu, openssl, python2.4, python2.5, ruby1.8 * kernel needs to be confirmed to build with 4.2 * libstdc++{5,6-4.1,6-4.2} * libstdc++5: hysterical raisins (old commercial apps) * libstdc++-4.1-{dev,pic}: not actually used in main (just dep of g++4.1), so this can go along with gcc-4.1. |
Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.
Launchpad Entry: hardy-reducing-duplication
Packages affected: all
Summary
Hardy Heron will be an LTS release again, and thus we should spend some extra efforts to get rid of duplication.
We identify lists of duplicated libraries (such as libdb4.[23456]) and outline the steps to eliminate them.
Release Note
Not appropriate here, we do not want to announce technical background details like library SONAMEs and duplication.
Rationale
Duplicated libraries cause unnecessary maintenance and security support overhead and waste CD space. They are also prone to cause incompabilities between programs using different library versions.
Interesting targets
- db4.{2,3,4,5,6}: Create a list of all packages which use on-disk transactions. These need to keep their libdb version for now, since there is no generic way of transitioning them to a new DB format. File upstream bugs about them to ask for an application specific solution. All the other packages can be rebuilt against 4.6.
- libgksu{1.2,2}: Only user of libgksu1.2 is gnome-python-extras, which exports a python wrapper for 1.2. The only reverse dependencies in main are deskbar-applet and serpentine, neither of which needs either gksu interface. universe has about 25 reverse dependencies; check them all (very few of them will need gksu at all), and transition them to 2 as appropriate. Then, disable 1.2 support in gnome-python-extras and release-note this fact, just in case a third-party script needs it.
- libgtkhtml{2,3.8,3.14}
- 2 and 3.x are totally different libraries, not just a newer API.
- 3.8 is only needed for gnome-sharp2; can't be ported to 3.14 without breaking libgtkhtml2.0-cil's ABI/API, thus all reverse dependencies of it (f-spot, beagle, tomboy) need to be fixed first.
- libgtksourceview{1.0,2.0}
- 1.0 still used by gobby, python-gnome2-desktop, and screem; needs upstream work
- libneon{25,26,27}
- No foreseen problems with rebuilding everything against 27.
- libnet{0,1,6}: 0 and 1 are already in hardy's universe (fixed by dropping support for nessus).
- sqlite{0,3}: Only 0 rdepends in main is python-qt4. KDE4 should not use this old ABI and use 3 right away. Jonathan Riddell says that support for 0 can be disabled in python-qt4.
- libwv{,2}: libwv2 is used by kword, libwv by beagle. Since we install tracker by default now, we will drop support for beagle and drop libwv along with it. However, this also means that we have to drop the nautilus plugin for it (since it build-depends on libbeagle-dev).
- python2.{4,5}: 2.4 is still required for Zope and Plone, which are not yet fixed and certified for 2.5. Since we want to support both, we are stuck with 2.4, unless upstream gets the transition done in time.
- t{cl,k}8.{3,4}
- 8.3 will go away soon, was only necessary for (1) expect-tcl8.3 which was only necessary for gcc testsuites on hppa; gcc will disable tests on hppa, and (2) blt (which can just disable support for tcl 8.3).
- {cpp,gcc}-{3.3,3.4,4.1,4.2}
- 3.3: only for libstdc++5 which we want to support for commercial apps
- 3.4:
- gcc-3.4: grub, mesa
- still default compiler for g77 (until we get gfortran to replace it)
- libg2c0 (fortran lib): lapack3, python-numarray, python-numeric
- 4.1:
- g++-4.1: boost, fftw, icu
- gcc-4.1: bzip2, icu, openssl, python2.4, python2.5, ruby1.8
- kernel needs to be confirmed to build with 4.2
- libstdc++{5,6-4.1,6-4.2}
- libstdc++5: hysterical raisins (old commercial apps)
- libstdc++-4.1-{dev,pic}: not actually used in main (just dep of g++4.1), so this can go along with gcc-4.1.
Targets of opportunity
These targets are worthwhile, but low-priority since they do not cause maintenance overhead after release, and thus we shouldn't waste a lot of effort on them:
- autoconf{,2.13}
- automake{,1.4,1.7,1.8,1.9} (automake is 1.10)
Test/Demo Plan
Ideally this does not change any visible behaviour, so we just need to test that everything still works as before.
Outstanding Issues
We also need discussion results about applications which have a similar purpose (such as f-spot, gthumb, and eog) and thus both create unnecessary maintenance overhead and don't conform with our "ship one default application for one purpose" philosophy. Examples are
- F-Spot/eog/gthumb
- Rhythmbox/sound-juicer/serpentine (? discuss with Gnome desktop team)
- updatedb/tracker
- tomboy/notes applet
- displayconfig-gtk/gnome-display-properties
Comments
This command was used to find out potential candidates:
grep "^Package: " /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_gutsy_main_binary-*_Packages | awk '{print $2}' | grep -v '[^0-9]32[^0-9]' | sed -e "s/c2//; s/c102//; s/[-0-9.]//g" | sort | uniq -d | less
HardyReducingDuplication (last edited 2008-08-06 16:14:28 by localhost)