On 18/05/2008, Monty Taylor wrote:
> 1. What are the real differences between these two?
> 2. Why, as a packager, would I choose one over the other?
A bit of stats:
# source-wise
$ for i in central support; do grep-dctrl -S -F Build-Depends python-$i -sPackage /var/lib/apt/lists/*Sources | wc -l ; done
325
426
# binary-wise
$ for i in central support; do grep-dctrl -P -F Depends python-$i -sPackage /var/lib/apt/lists/*Packages | wc -l ; done
453
593
I might be missing the Indep thingies, but you see the idea if you want
complete stats.
More seriously, you may want to compare the following:
http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=python-support
http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=python-central
In particular, check the grave and serious keywords (coloured in red),
and the outstanding bugs.
You may also want to have a look at the maintainer scripts. From a quick
look, postinst's are mostly equivalent, from a complexity point of view.
prerm's are a bit more challenging:
(var/lib/dpkg/info/python-networkx.prerm)
| # Automatically added by dh_pysupport
| if which update-python-modules >/dev/null 2>&1; then
| update-python-modules -c python-networkx
| fi
| # End automatically added section
(/var/lib/dpkg/info/python-imaging.prerm)
| # Automatically added by dh_pycentral
| if [ "$1" = remove ]; then
| if which python >/dev/null 2>&1 && which pycentral >/dev/null 2>&1; then
| pycentral pkgremove python-imaging
| else
| flist=$(tempfile)
| slist=$(tempfile)
| dpkg -L python-imaging | tee $flist | \
| while read n; do
| case "$n" in
| /usr/share/pyshared/*)
| n2=${n#/usr/share/pyshared/*}
| case "$n" in
| *.py) echo "p $n";;
| *) [ -d "$n" ] && echo "d $n2" || echo "f $n2"
| esac
| ;;
| *) continue
| esac
| done > $slist
| if [ -s $slist ]; then
| for d in /usr/lib/python[0-9].[0-9]/????-packages; do
| case "$d" in */python2.1/*|*/python2.2/*) continue; esac
| while read t n; do
| case "$t" in
| p) rm -f $d/$n $d/${n}[co];;
| d) rmdir $d/$n 2>/dev/null || true;;
| *) rm -f $d/$n
| esac
| done < $slist
| done
| fi
| awk '/\/usr\/share\/pyshared/ {next} /\.py$/ {print $0"c\n" $0"o"}' $flist \
| | xargs -r rm -f >&2
| rm -f $flist $slist
| fi
| fi
| # End automatically added section
So, if you want your eyes to start bleeding, have a look ath the preinst
scripts. Empty in the -support case. And in the -central one:
| # Automatically added by dh_pycentral
| if which pycentral >/dev/null 2>&1 && pycentral --help 2>/dev/null | grep -q pkgprepare; then
| pycentral pkgprepare python-imaging <<PYEOF
| [python-package]
| format = 1
| python-version = 2.4, 2.5
| [pycentral]
| version = 0.6
| [files]
| /usr/lib/python2.5/site-packages/PIL=d
| /usr/lib/python2.5/site-packages/PIL/_imaging.so=f
| /usr/lib/python2.5/site-packages/PIL/_imagingmath.so=f
| /usr/lib/python2.5/site-packages/PIL/_imagingft.so=f
| /usr/lib/python2.4/site-packages/PIL=d
| /usr/lib/python2.4/site-packages/PIL/_imaging.so=f
| /usr/lib/python2.4/site-packages/PIL/_imagingmath.so=f
| /usr/lib/python2.4/site-packages/PIL/_imagingft.so=f
| /usr/bin/pilconvert.py=f
| /usr/bin/pilprint.py=f
| /usr/bin/pilfont.py=f
| /usr/bin/pilfile.py=f
| /usr/bin/pildriver.py=f
| /usr/share/pyshared/PIL.pth=f
| /usr/share/pyshared/PIL=d
| /usr/share/pyshared/PIL/EpsImagePlugin.py=f
| /usr/share/pyshared/PIL/ImtImagePlugin.py=f
| /usr/share/pyshared/PIL/SpiderImagePlugin.py=f
| /usr/share/pyshared/PIL/GdImageFile.py=f
| /usr/share/pyshared/PIL/McIdasImagePlugin.py=f
| /usr/share/pyshared/PIL/ImageColor.py=f
| /usr/share/pyshared/PIL/BmpImagePlugin.py=f
| /usr/share/pyshared/PIL/PaletteFile.py=f
| /usr/share/pyshared/PIL/GribStubImagePlugin.py=f
| /usr/share/pyshared/PIL/PsdImagePlugin.py=f
| /usr/share/pyshared/PIL/ImageMode.py=f
| /usr/share/pyshared/PIL/PcxImagePlugin.py=f
| /usr/share/pyshared/PIL/XpmImagePlugin.py=f
| /usr/share/pyshared/PIL/ImageMath.py=f
| /usr/share/pyshared/PIL/TarIO.py=f
| /usr/share/pyshared/PIL/BdfFontFile.py=f
| /usr/share/pyshared/PIL/ImageDraw2.py=f
| /usr/share/pyshared/PIL/PalmImagePlugin.py=f
| /usr/share/pyshared/PIL/ImageWin.py=f
| /usr/share/pyshared/PIL/CurImagePlugin.py=f
| /usr/share/pyshared/PIL/ImageFileIO.py=f
| /usr/share/pyshared/PIL/ExifTags.py=f
| /usr/share/pyshared/PIL/XVThumbImagePlugin.py=f
| /usr/share/pyshared/PIL/IcnsImagePlugin.py=f
| /usr/share/pyshared/PIL/FontFile.py=f
| /usr/share/pyshared/PIL/ImageTransform.py=f
| /usr/share/pyshared/PIL/SgiImagePlugin.py=f
| /usr/share/pyshared/PIL/PngImagePlugin.py=f
| /usr/share/pyshared/PIL/JpegImagePlugin.py=f
| /usr/share/pyshared/PIL/DcxImagePlugin.py=f
| /usr/share/pyshared/PIL/PcfFontFile.py=f
| /usr/share/pyshared/PIL/WmfImagePlugin.py=f
| /usr/share/pyshared/PIL/ImageFont.py=f
| /usr/share/pyshared/PIL/ImagePalette.py=f
| /usr/share/pyshared/PIL/MspImagePlugin.py=f
| /usr/share/pyshared/PIL/TiffTags.py=f
| /usr/share/pyshared/PIL/TgaImagePlugin.py=f
| /usr/share/pyshared/PIL/PcdImagePlugin.py=f
| /usr/share/pyshared/PIL/XbmImagePlugin.py=f
| /usr/share/pyshared/PIL/PixarImagePlugin.py=f
| /usr/share/pyshared/PIL/BufrStubImagePlugin.py=f
| /usr/share/pyshared/PIL/OleFileIO.py=f
| /usr/share/pyshared/PIL/Image.py=f
| /usr/share/pyshared/PIL/ImageSequence.py=f
| /usr/share/pyshared/PIL/GifImagePlugin.py=f
| /usr/share/pyshared/PIL/FliImagePlugin.py=f
| /usr/share/pyshared/PIL/PdfImagePlugin.py=f
| /usr/share/pyshared/PIL/PIL-1.1.6.egg-info=f
| /usr/share/pyshared/PIL/IcoImagePlugin.py=f
| /usr/share/pyshared/PIL/ImageStat.py=f
| /usr/share/pyshared/PIL/Hdf5StubImagePlugin.py=f
| /usr/share/pyshared/PIL/ImageQt.py=f
| /usr/share/pyshared/PIL/WalImageFile.py=f
| /usr/share/pyshared/PIL/__init__.py=f
| /usr/share/pyshared/PIL/ImImagePlugin.py=f
| /usr/share/pyshared/PIL/ArgImagePlugin.py=f
| /usr/share/pyshared/PIL/ImagePath.py=f
| /usr/share/pyshared/PIL/ImageFile.py=f
| /usr/share/pyshared/PIL/IptcImagePlugin.py=f
| /usr/share/pyshared/PIL/ImageDraw.py=f
| /usr/share/pyshared/PIL/MicImagePlugin.py=f
| /usr/share/pyshared/PIL/MpegImagePlugin.py=f
| /usr/share/pyshared/PIL/FpxImagePlugin.py=f
| /usr/share/pyshared/PIL/ContainerIO.py=f
| /usr/share/pyshared/PIL/ImageGL.py=f
| /usr/share/pyshared/PIL/TiffImagePlugin.py=f
| /usr/share/pyshared/PIL/SunImagePlugin.py=f
| /usr/share/pyshared/PIL/GimpPaletteFile.py=f
| /usr/share/pyshared/PIL/ImageGrab.py=f
| /usr/share/pyshared/PIL/ImageFilter.py=f
| /usr/share/pyshared/PIL/PSDraw.py=f
| /usr/share/pyshared/PIL/ImageChops.py=f
| /usr/share/pyshared/PIL/ImageOps.py=f
| /usr/share/pyshared/PIL/FitsStubImagePlugin.py=f
| /usr/share/pyshared/PIL/GimpGradientFile.py=f
| /usr/share/pyshared/PIL/GbrImagePlugin.py=f
| /usr/share/pyshared/PIL/ImageEnhance.py=f
| /usr/share/pyshared/PIL/PpmImagePlugin.py=f
| PYEOF
| else
| mkdir -p /var/lib/pycentral
| echo python-imaging >> /var/lib/pycentral/delayed-pkgs
| fi
| # End automatically added section
> 3. Is there a valid reason to have both of them be acceptable if they
> both do the same job?
I'd rather say that one of them is doing an unacceptable job and should
disappear.
Mraw,
KiBi.
Attachment:
pgpa8yX5ngpeu.pgp
Description: PGP signature