Pourquoi certains packages ont-ils des numéros supplémentaires avant deux points au début de leur chaîne de version?

29

Je viens de remarquer que Wine (et un certain nombre d'autres packages) ont déplacé leur schéma de version vers quelque chose comme:

1:1.6.2-0ubuntu3

Je comprends tout après le 1:... Mais à quoi se 1:réfère le?

Il ne semble pas refléter la version principale. En regardant une liste des mises à niveau en attente, il existe des versions comme: 2:4.1.3...et il y a beaucoup de packages sans le #:préfixe.

Que se passe-t-il?

Oli
la source
il semble être spécifique à Ubuntu, packages.debian.org/sid/wine n'a pas ce préfixe
Sylvain Pineau
C'est nouveau pour Wine dans Ubuntu aussi (à partir du 14.04) mais d'autres paquets comme python3-uno( dans Ubuntu et dans Debian ) ont le préfixe de manière cohérente.
Oli
En effet, j'ai trouvé la réponse sur superutilisateur
Sylvain Pineau
@Oli Ce n'est pas nouveau pour le vin, il a toujours été là, mais parce que sa valeur était 0tout le temps jusqu'au 14.04, il a été omis d'être écrit dans la chaîne de version. Donc, vous pouvez penser à tous ces nombreux packages sans le #:préfixe car ils contiennent en fait 0:. Consultez les réponses que vous avez reçues pour mieux comprendre.
Radu Rădeanu

Réponses:

26

De man deb-version:

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.

Donc, ce nombre supplémentaire (dans votre cas 1) fait référence à la composante d' époque qui peut être omise, auquel cas 0 est supposé . Et donc, si vous voyez une chaîne de version qui ressemble, 1.6.2-0ubuntu3vous pouvez penser qu'en fait, elle ressemble 0:1.6.2-0ubuntu3. En quoi cela est-il utile et comment cela se produit-il: il est fourni pour laisser les erreurs dans les numéros de version des anciennes versions d'un package, ainsi que les schémas de numérotation des versions précédentes d'un package . Pour mieux comprendre, examinez de plus près les paragraphes explicatifs suivants du manuel de politique Debian - Fichiers de contrôle et leurs champs :

Lors de la comparaison de deux numéros de version, l’ époque de chacun est d'abord comparée, puis la version en amont si l’ époque est égale, puis la révision debian si la version en amont est également égale. l'époque est comparée numériquement.

Et:

Notez que le but des époques est de nous permettre de laisser des erreurs dans la numérotation des versions et de faire face aux situations où le schéma de numérotation des versions change. Il n'est pas destiné à gérer les numéros de version contenant des chaînes de lettres que le système de gestion de packages ne peut pas interpréter (comme ALPHAou pre-), ni les ordonnances stupides.

Radu Rădeanu
la source
14

C'est l'époque. Il remplace la version pour déterminer lequel des deux packages est le plus récent:

Depuis la deb-versionpage de manuel:

   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.

La source

Sylvain Pineau
la source