Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
deb-version(7)			  dpkg suite			deb-version(7)

NAME
       deb-version - Debian package version number format

SYNOPSIS
       [epoch:]upstream-version[-debian-revision]

DESCRIPTION
       Version	numbers	 as used for Debian binary and source packages consist
       of three	components. These are:

       epoch  This is a	single (generally small) unsigned integer.  It may  be
	      omitted,	in  which case zero is assumed.	 If it is omitted then
	      the upstream-version may not contain any colons.

	      It is provided to	allow mistakes in the version numbers of older
	      versions of a package, and also  a  package's  previous  version
	      numbering	schemes, to be left behind.

       upstream-version
	      This  is the main	part of	the version number.  It	is usually the
	      version number of	the original ("upstream") package  from	 which
	      the  .deb	 file  has  been made, if this is applicable.  Usually
	      this will	be in  the  same  format  as  that  specified  by  the
	      upstream	author(s);  however,  it may need to be	reformatted to
	      fit into the package management system's format  and  comparison
	      scheme.

	      The  comparison  behavior	 of the	package	management system with
	      respect  to  the	upstream-version  is  described	  below.   The
	      upstream-version portion of the version number is	mandatory.

	      The  upstream-version  may  contain  only	 alphanumerics ("A-Za-
	      z0-9") and the characters	. + - :	~ (full	 stop,	plus,  hyphen,
	      colon,  tilde)  and  should  start with a	digit.	If there is no
	      debian-revision then hyphens are not allowed;  if	 there	is  no
	      epoch then colons	are not	allowed.

       debian-revision
	      This  part  of  the  version number specifies the	version	of the
	      Debian package based on the upstream version.   It  may  contain
	      only  alphanumerics  and	the characters + . ~ (plus, full stop,
	      tilde) and is compared in	the same way as	 the  upstream-version
	      is.

	      It  is  optional;	 if it isn't present then the upstream-version
	      may not contain a	hyphen.	 This format represents	the case where
	      a	piece of software was written specifically to be turned	into a
	      Debian package, and so there is only one "debianization"	of  it
	      and therefore no revision	indication is required.

	      It  is  conventional  to restart the debian-revision at `1' each
	      time the upstream-version	is increased.

	      Dpkg will	break the version number apart at the last  hyphen  in
	      the  string  (if there is	one) to	determine the upstream-version
	      and debian-revision. The absence of a  debian-revision  compares
	      earlier  than  the  presence  of	one (but note that the debian-
	      revision is the least significant	part of	the version number).

   Sorting algorithm
       The upstream-version and	debian-revision	 parts	are  compared  by  the
       package management system using the same	algorithm:

       The strings are compared	from left to right.

       First  the initial part of each string consisting entirely of non-digit
       characters is determined.  These	two parts (one of which	may be	empty)
       are  compared lexically.	 If a difference is found it is	returned.  The
       lexical comparison is a comparison of ASCII values modified so that all
       the letters sort	earlier	than all the non-letters and so	that  a	 tilde
       sorts  before  anything,	 even  the  end	 of  a part.  For example, the
       following parts are in sorted order: `~~', `~~a', `~', the empty	 part,
       `a'.

       Then  the  initial  part	of the remainder of each string	which consists
       entirely	of digit characters is determined.  The	 numerical  values  of
       these  two  parts are compared, and any difference found	is returned as
       the result of the comparison.   For  these  purposes  an	 empty	string
       (which  can  only occur at the end of one or both version strings being
       compared) counts	as zero.

       These two steps (comparing and removing initial non-digit  strings  and
       initial digit strings) are repeated until a difference is found or both
       strings are exhausted.

       Note that the purpose of	epochs is to allow us to leave behind mistakes
       in  version  numbering,	and  to	cope with situations where the version
       numbering scheme	changes.  It is	not  intended  to  cope	 with  version
       numbers	containing  strings  of	 letters  which	the package management
       system cannot interpret (such as	`ALPHA'	 or  `pre-'),  or  with	 silly
       orderings.

NOTES
       The  tilde character and	its special sorting properties were introduced
       in dpkg 1.10 and	some parts of  the  dpkg  build	 scripts  only	gained
       support for it later in the 1.10.x series.

SEE ALSO
       deb-control(5), deb(5), dpkg(1)

1.19.8				  2022-05-24			deb-version(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=deb-version&sektion=7&manpath=FreeBSD+Ports+15.0>

home | help