Hello,

<service annoucement>

Some of us are using 'metapackage' and 'dummy package' in the wrong way,
and this is bad, not only because they're different concept, but also
because it leads people to categorize them wrongly with debtags.

This could have implications:

 - future debtags-aware package managers might choose not to display
   dummy packages but to indeed display metapackages, and a mistagging
   here could cause a substantial annoyance.

 - future debtags-aware package managers might also offer to
   automatically remove all installed dummy packages, and a mistagging
   here could cause an even more substantial annoyance.

So, let's see how to get it right:

 * Dummy packages

A dummy package is one of those packages used to smooth upgrades.  One
can safely remove it, and everything is fine.

Examples of dummy packages are:
 - xpdf
 - fileutils
 - gs


 * Metapackages

A metapackage is one of those packages used to pull in other packages.
If they are removed, it's likely that something goes wrong.  They are
used for various reasons, such as ensuring that one out of many versions
of a package is installed (like the python modules do) or ensuring that
a specific set of functionality is present (like the med-* packages).

Examples of such packages are:
 - python-*, lib*-ruby (the ones without a python version in the name)
 - med-*
 - kernel-image-2.6-k7
 - gnome and kde


 * Mislabeled packages

Examples of packages that get it wrong in the description are:
 - libalgorithm-diff-ruby
 - pylint
 - xmldiff
 - gap

And in fact, they're currently categorised role::aux:dummy.


 * The solution

Luckily, it's easy to get it right.  When writing the description, a
quick rule of thumb is this:

 - if you can write "this package can be safely removed", you should
   call it a 'dummy package'
 - else, it's probably a metapackage.  Or of course a normal package :)


 * Mass filing bugs?

Maybe, as minor bugs.  It's easy to look for packages that have 'dummy'
in the description but are tagged with 'role::aux:metapackage'[1].
However, this would only catch those ones that have been already caught
by someone, and needs manual inspection before filing anyway.  So, I'm
trying with this message first.


Thank you all for the kind attention :)


Ciao,

Enrico


[1]
Remember that this command gives only what's been hand-checked already,
so the list is not exaustive:

$ grep-aptavail -FTag metapackage -and -FDescription dummy -sPackage,Maintainer
python-4suite
Raphael Bossek <[EMAIL PROTECTED]>
An open-source platform for XML and RDF processing

python-adns
Peter Hawkins <[EMAIL PROTECTED]>
Python bindings to the asynchronous DNS resolver library

python-albatross
Fabian Fagerholm <[EMAIL PROTECTED]>
Toolkit for Stateful Web Applications (default)

python-apsw
Joel Rosdahl <[EMAIL PROTECTED]>
another Python SQLite 3 wrapper

python-biggles
Peter Hawkins <[EMAIL PROTECTED]>
Scientific plotting package for Python [dummy package]

python-celementtree
Torsten Marek <[EMAIL PROTECTED]>
Light-weight toolkit for XML processing

python-cheetah
Chad Walstrom <[EMAIL PROTECTED]>
text-based template engine and Python code generator

python-clearsilver
Jesus Climent <[EMAIL PROTECTED]>
python bindings for clearsilver

python-clientcookie
Ganesan Rajagopal <[EMAIL PROTECTED]>
Python module for automating HTTP Cookie management (dummy)

python-configlet
Progeny Debian Packaging Team <[EMAIL PROTECTED]>
alternative debconf configuration interface: core API

python-crypto
Andreas Rottmann <[EMAIL PROTECTED]>
cryptographic algorithms and protocols for Python

python-dhm
Michelle Ribeiro <[EMAIL PROTECTED]>
Collection of Python utilities

python-egenix-mxdatetime
Joel Rosdahl <[EMAIL PROTECTED]>
date and time handling routines for Python [dummy package]

python-egenix-mxproxy
Joel Rosdahl <[EMAIL PROTECTED]>
generic proxy wrapper type for Python [dummy package]

python-egenix-mxqueue
Joel Rosdahl <[EMAIL PROTECTED]>
fast and memory-efficient queue for Python [dummy package]

python-egenix-mxstack
Joel Rosdahl <[EMAIL PROTECTED]>
fast and memory-efficient stack for Python [dummy package]

python-egenix-mxtexttools
Joel Rosdahl <[EMAIL PROTECTED]>
fast text manipulation tools for Python [dummy package]

python-egenix-mxtools
Joel Rosdahl <[EMAIL PROTECTED]>
collection of new builtins for Python [dummy package]

python-elementtree
Torsten Marek <[EMAIL PROTECTED]>
Light-weight toolkit for XML processing

python-eunuchs
Tommi Virtanen <[EMAIL PROTECTED]>
Missing manly parts of UNIX API for Python

python-fam
Martin v. Loewis <[EMAIL PROTECTED]>
Python interface to FAM

python-fixedpoint
Ganesan Rajagopal <[EMAIL PROTECTED]>
A fixed point math object for python [dummy package]

python-forgethtml
Morten Werner Olsen <[EMAIL PROTECTED]>
Python module for easy HTML-writing

python-forgetsql
Morten Werner Olsen <[EMAIL PROTECTED]>
Python module for easy SQL-database access

python-gadfly
Matthias Klose <[EMAIL PROTECTED]>
SQL database and parser generator for Python [dummy package]

python-gdchart2
Jonas Smedegaard <[EMAIL PROTECTED]>
Python OO interface to GDChart

python-gpib
Robert Jordens <[EMAIL PROTECTED]>
libgpib python bindings (default package)

python-id3lib
Jonas Smedegaard <[EMAIL PROTECTED]>
id3lib wrapper for Python - dummy package

python-japanese-codecs
Takuo KITAME <[EMAIL PROTECTED]>
Japanese Codecs for Python

python-kjbuckets
Matthias Klose <[EMAIL PROTECTED]>
Set and graph data types for Python [dummy package]

python-ldap
Peter Hawkins <[EMAIL PROTECTED]>
A LDAP interface module for Python. [dummy package]

python-ldaptor
Tommi Virtanen <[EMAIL PROTECTED]>
Pure-Python library for LDAP

python-libxml2
Debian XML/SGML Group <[EMAIL PROTECTED]>
Python bindings for the GNOME XML library

python-libxslt1
Debian XML/SGML Group <[EMAIL PROTECTED]>
Python bindings for libxslt1

python-logilab-common
Sylvain Thénault <[EMAIL PROTECTED]>
useful miscellaneous modules used by Logilab projects [dummy package]

python-moinmoin
Jonas Smedegaard <[EMAIL PROTECTED]>
Python clone of WikiWiki - dummy library package

python-musicbrainz
Andreas Rottmann <[EMAIL PROTECTED]>
Second generation incarnation of the CD Index - library

python-nevow
Tommi Virtanen <[EMAIL PROTECTED]>
Web application templating system for Python and Twisted

python-optcomplete
Bastian Kleineidam <[EMAIL PROTECTED]>
provide bash-completion for Python programs (dummy package)

python-osd
Tommi Virtanen <[EMAIL PROTECTED]>
Python bindings for X On-Screen Display library

python-oss
Tommi Virtanen <[EMAIL PROTECTED]>
Open Sound System (OSS) interface for Python

python-pam
Dima Barsky <[EMAIL PROTECTED]>
A Python interface to the PAM library

python-pexpect
Ganesan Rajagopal <[EMAIL PROTECTED]>
Python module for automating interactive applications (dummy)

python-pgsql
Ben Burton <[EMAIL PROTECTED]>
A Python DB-API 2.0 interface to PostgreSQL v7.x

python-psyco
Alexandre Fayolle <[EMAIL PROTECTED]>
python specializing compiler (for the default python version)

python-psycopg
Federico Di Gregorio <[EMAIL PROTECTED]>
Python module for PostgreSQL [dummy package]

python-pychart
Santiago Ruano Rincon <[EMAIL PROTECTED]>
Python library for creating high quality charts

python-pylibacl
Iustin Pop <[EMAIL PROTECTED]>
module for manipulating POSIX.1e ACLs

python-pyopenssl
Martin Sjogren <[EMAIL PROTECTED]>
Python wrapper around the OpenSSL library (dummy package)

python-pyparsing
Tommi Virtanen <[EMAIL PROTECTED]>
Python parsing module

python-pyrex
Paul Brossier <[EMAIL PROTECTED]>
compile native-code modules for python from python-like syntax

python-pyxattr
Iustin Pop <[EMAIL PROTECTED]>
module for manipulating filesystem extended attributes

python-rpy
Dirk Eddelbuettel <[EMAIL PROTECTED]>
Python interface to the GNU R language and environment

python-simpy
Antal A. Buss <[EMAIL PROTECTED]>
python-based simulation package [dummy package]

python-slides
Matthias Klose <[EMAIL PROTECTED]>
Python-based Slide Maker

python-sqlite
Joel Rosdahl <[EMAIL PROTECTED]>
python interface to SQLite 2

python-sqlobject
Carlos Perelló Marín <[EMAIL PROTECTED]>
Python module for SQLObject [dummy package]

python-sqlrelay
Matthias Klose <[EMAIL PROTECTED]>
SQL Relay Python (default version) API

python-syck
Robert Jordens <[EMAIL PROTECTED]>
YAML parser kit -- python bindings (default package)

python-tclink
Dan Helfman <[EMAIL PROTECTED]>
TrustCommerce credit card processing for Python [dummy package]

python-tcpwrap
Brian Sutherland <[EMAIL PROTECTED]>
python interface for libwrap (TCP wrappers)

python-tunepimp
Robert Jordens <[EMAIL PROTECTED]>
libtunepimp python bindings (default package)

python-twisted
Matthias Klose <[EMAIL PROTECTED]>
Event-based framework for internet applications (dummy package)

python-tz
Brian Sutherland <[EMAIL PROTECTED]>
Python version of the Olson timezone database

python-unit
Alexandre Fayolle <[EMAIL PROTECTED]>
unit test framework for Python (default version)

python-weblib
Jonas Smedegaard <[EMAIL PROTECTED]>
Yet another web programming framework for Python - library

python-xlib
Martin v. Löwis <[EMAIL PROTECTED]>
Interface for Python to the X11 Protocol (dummy package)

python-xml
Alexandre Fayolle <[EMAIL PROTECTED]>
XML tools for Python [dummy package]

python-zopeinterface
Tommi Virtanen <[EMAIL PROTECTED]>
Python library for API definitions through interfaces (dummy)


--
GPG key: 1024D/797EBFAB 2000-12-05 Enrico Zini <[EMAIL PROTECTED]>

Attachment: signature.asc
Description: Digital signature

Reply via email to