[Pkgutil-users] RFC - New catalogue format (version 10)
Status: Beta
Brought to you by:
bonivart
|
From: <ma...@pr...> - 2010-07-29 09:52:28
|
Having tried to identify other ways of improving pkgutil to address its shortcomings around the management of multiple versions of non-CSW software, I have come to the conclusion that the only proper way to do this is to define a new catalogue format (which I guess will be version 10). I appreciate that opencsw.org will not be able to use this format, and will have to stick with version 9, because unfortunately it will not be backwards compatible. However, the version 10 format will bring with it a number of key benefits for users who want to set-up their own internal software repositories. pkgutil and bldcat will need to be modified to support a version 10 format, but will continue to be able to handle earlier formats too, so one toolset is used for downloading content from opencsw.org as well as from newer repositories as they wish. Here are my proposed changes for the version 10 catalogue format: * A line 'version:10' to appear before the first catalogue entry to identify this, non-ambiguously, as a version 10 catalogue. Note that this cannot be guaranteed to be the first line of the file, as a PGP signature may come before it. * The 1st field (catalogue name, or 'common' name) will no longer be a unique identifier for a package and its version. An individual package can now only be uniquely addressed by combining the 3rd field (package name) and the 2nd field (version string). The catalogue name now only uniquely identifies a software package, but which may encompass multiple versions of that package. This will allow pkgutil to operate as documented, i.e. from the man page "You may specify an explicit version (e.g. amarok-1.4.8,REV=2008.02.26) if desired, otherwise the latest version found is chosen" which is misleading because at present, there can never be more than one catalogue entry for "amarok". * The 7th field (dependency list) and 9th field (incompatible list) will support the following formats: <pkgname>|<pkgname>|... ---> legacy format <type>:<name>|<type>:<name>|.. ---> where <type> can be the letter 'p' for a package called <name> or 'c' for the catalogue (common) entry <name> Note that bldcat and pkgutil will use type 'c' in a dependency list for packages that appear in the catalogue and type 'p' for packages that do not appear in the catalogue. The tools will disallow the use of type 'p' if the package is in the catalogue. This binds dependencies to particular versions of software in the catalogue, without requiring the package name to be amended (as is currently the case). Identifying which version to bind to will be automatic where possible, referring to a mapping file where there is a choice to be made, otherwise the user will be prompted by bldcat when the information is lacking. Comments? Any other pain points that need fixing in the catalogue format? Best regards, Mark. |