FTP Installation & Package Naming Conventions
- To: debian-user@Pixar.com
- Subject: FTP Installation & Package Naming Conventions
- From: "brian (b.c.) white" <bcwhite@bnr.ca>
- Date: Tue, 31 Oct 1995 11:18:00 -0500
- Message-id: <"16518 Tue Oct 31 11:18:39 1995"@bnr.ca>
(This message isn't nearly as long as it looks :-)
In my work with 'dftp' and in working towards an FTP option to dselect, I've
come across a few problems with how Debian names its packages.
The general idea of "packages-name-version-revision.deb" works really well
until people start making exceptions to this. I used the suggestion that
JimR sent me about generating a list of installed packages using
"dpkg --list", but found the following anomolies:
debian-0.93/binary/base/dpkg-1.0.5.deb (have dpkg-1.0.5-0)
>> Package: dpkg
>> priority: required
>> section: base
>> maintainer: Ian Jackson <iwj10@cus.cam.ac.uk>
>> version: 1.0.5
>> revision: 0
>> description: Package maintenance system for Debian GNU/Linux
>> This package contains the programs which handles the installation and
>> removal of packages on your system.
>> .
>> The primary interface for the dpkg suite is the `dselect' program;
>> a more low-level and less user-friendly interface is available in
>> the form of the `dpkg' command.
>> essential: yes
[ there is no package revision included in the file name ]
debian-0.93/binary/devel/perl-5.001-5.deb (have perl-5.001-4)
>> Package: perl
>> priority: important
>> section: devel
>> maintainer: Carl Streeter <streeter@cae.wisc.edu>
>> version: 5.001
>> revision: 4
>> description: An interpreted scripting language
[ revision is listed as 4 while filename indicates 5 ]
debian-0.93/binary/devel/strace-3.0-1.deb (have strace-3.0-1-A)
>> Package: strace
>> priority: standard
>> section: devel
>> maintainer: Robert Sanders <Robert.Sanders@linux.org>
>> version: 3.0-1
>> description: A system call tracer
[ revision (not shown here, but known by dpkg) is 'A' and not in filename ]
debian-0.93/binary/devel/tclX-7.3b-6.deb (have tclX-7.3b-5)
>> Package: tclX
>> priority: optional
>> section: devel
>> maintainer: David Engel <david@ods.com>
>> version: 7.3b
>> revision: 5
>> depends: tcl, tk
>> description: Extended Tcl (TclX).
>> TclX is a set of extensions to Tcl. Extended Tcl is oriented towards
>> Unix system programming tasks and large application development. Many
>> additional interfaces to the Unix operating system are provided. It
>> is upwardly compatible with Tcl.
[ revision is listed as 5 while filename indicates 6 ]
debian-0.93/binary/net/bind-4.9.3-BETA24-1.deb (have bind-4.9.3-BET-1)
>> Package: bind
>> priority: optional
>> section: net
>> maintainer: Peter Tobias <tobias@et-inf.fho-emden.de>
>> version: 4.9.3-BETA24
>> revision: 1
>> description: Internet domain name server
>> The Berkeley Internet Name Domain (BIND) implements an
>> Internet name server for Unix operating systems. A
>> name server is a network service that enables clients
>> to name resources or objects and share this information
>> with other objects in the network.
[ dpkg thinks version is "4.9.3-BET" while filename indicates "4.9.3-BETA24" ]
These are all version or revision problems and do not include the package-
name discrepencies I have mentioned in the past.
All of these are minor differences, but cause siginificant problems when
trying to get a computer program to correlate packages between an actual
installation and an FTP site.
I propose we standardize the filenames used in the Debian distribution and
suggest what I mentioned above:
package-name-version-revision.deb
with the following restrictions:
1) The package name must not contain any "-<digit>" substrings. This is
important in order to be able to tell where the name ends and the
version number starts.
2) The version number must start with a digit (see #1, above) but may contain
letters and dashes thereafter.
3) The revision number must be of the form "-<digits>".
4) All pieces must exactly match the information given in the control file.
For you regular expression guru's, this should amount to
^(.*)-([0-9].*)-([0-9]*).deb$ \1=name, \2=version, \3=revision
(Note: I don't know how to say in regex, "no -<digit>" for the package name.)
Brian
( bcwhite@bnr.ca )
-------------------------------------------------------------------------------
In theory, theory and practice are the same. In practice, they're not.
Reply to: