[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Suggestion: package 'components'


Daniel Burrows <Daniel_Burrows@brown.edu> said:
>   The problem that it attempts to solve is this: often packages have 'auxillary'
> data which may or may not be useful to all users: for example, the Gnome panel's
> sound files, or icons.  Currently, there is a mishmash of ways in which this
> is solved; sometimes the offending files are broken off into another package,
> sometimes (especially if they seem relatively small) they're just included
> 'wholesale' in the parent package.  These mechanisms actually work fairly well,
> which is why I'm not sure my suggestion is necessary, but there is one other
> potential glitch.  Consider, as an example, the case of translated files.  Where
> do they go?  The current system, as far as I know, tends to provide them
> in extra packages in 'doc', but I'm not aware of any organization.  In
> particular, there's no way to tell the packaging system 'please install any
> documentation or gettext files for Foo-ese with their respective packages, and
> leave out the English manpages for such packages.'  My suggestion at least
> provides a framework that could be used for this.
>   I would suggest the creation of a new lightweight package, tentatively called
> a 'package component'.

I like the idea of these components. However it would be nice to have them a little bit more general. There are several packages which provide some interface between packages like libapache-mod-perl or php3-pgsql. The package components could be viewed as a special form of such an interface.

These interface packages could be provided with a 'Interfaces:' line like

Package: php3-pgsql
. . .
Interfaces: php3 libpgsql2

This 'Interfaces:' line would be like a 'Depends:' line, with the addition that the package will be selected as soon as all parent packages are selected.

Components could than be implemented as interfaces between real packages and special empty packages. E.g. for each language there should be an empty package with the two letter language code as name. All language dependent components can than reference such a language package in an 'Interfaces:' line.

Package: MyProgram-man-hu
. . .
Interfaces: MyProgram man-db hu

So you could select your preferred languages once; each newly installed packages will automatically select the components for these languages.


Reply to: