Provided by: dpkg-dev_1.22.18ubuntu3_all bug

NAAM

       deb-version - Indeling van het pakketversienummer in Debian

OVERZICHT

       [epoche:]toeleveraarsversie[-debian-revisie]

BESCHRIJVING

       De versienummers die gebruikt worden voor de binaire en broncodepakketten van Debian bestaan uit drie
       componenten. Die zijn:

       epoche
           Dit  is  een  enkel  (meestal klein) positief geheel getal. Het mag weggelaten worden en in dat geval
           wordt aangenomen dat het nul is. Indien het weggelaten wordt, mag de toeleveraarsversie geen  dubbele
           punt bevatten.

           Het  wordt gebruikt om te kunnen breken met een vergissing die bij de versienummering van een eerdere
           versie van het pakket gemaakt werd of met een vroeger versienummeringsschema.

       toeleveraarsversie
           Dit is het belangrijkste deel van het versienummer.  Het  is  gewoonlijk  het  versienummer  van  het
           originele  (“upstream”)  pakket  waarvan het .deb-bestand gemaakt werd, voor zover dit van toepassing
           is. Gewoonlijk wordt dezelfde indeling gebruikt als  die  welke  door  de  auteurs  van  de  software
           opgegeven wordt. Een herindeling kan nochtans nodig zijn om ze te laten passen binnen de indeling van
           het systeem voor pakketbeheer en -vergelijking.

           Het  vergelijkingsgedrag  van het pakketbeheerssysteem met betrekking tot de toeleveraarsversie wordt
           hierna beschreven. Het onderdeel toeleveraarsversie is een verplicht onderdeel van het versienummer.

           De toeleveraarsversie mag enkel alfanumerieke (“A-Za-z0-9”) tekens bevatten en de tekens . +  -  :  ~
           (punt,  plus,  verbindingsteken,  dubbele  punt,  tilde) en moet met een cijfer beginnen. Als er geen
           debian-revisie is,  mogen  geen  verbindingstekens  gebruikt  worden  en  als  het  onderdeel  epoche
           ontbreekt, mogen geen dubbele punten gebruikt worden.

       debian-revisie
           Dit  deel  van  het versienummer specificeert de versie van het Debian pakket, gebaseerd op de versie
           van de toeleveraar. Het mag enkel alfanumerieke tekens bevatten en de  tekens  +  .  ~  (plus,  punt,
           tilde) en wordt op dezelfde manier vergeleken als de toeleveraarsversie.

           Het is facultatief. Als het ontbreekt, mag de toeleveraarsversie geen verbindingsteken bevatten. Deze
           indeling  komt voor in het geval een stuk software geschreven werd met de specifieke bedoeling er een
           Debian pakket van te maken, zodat er slechts één enkele “debianisering” van bestaat en er daarom geen
           revisieaanduiding nodig is.

           Het is gebruikelijk om  de  debian-revisie  terug  op  ‘1’  te  laten  beginnen  telkens  wanneer  de
           toeleveraarsversie verhoogd wordt.

           Dpkg  splitst het versienummer op bij het laatste verbindingstekenteken uit de tekenreeks (als er een
           in voorkomt) om te bepalen wat de toeleveraarsversie is en wat de debian-revisie. In een vergelijking
           is een versienummer zonder een debian-revisie een lagere versie dan één met een dergelijke  component
           (maar merk op dat de debian-revisie het minst significante deel van een versienummer is).

   Sorteeralgoritme
       De  onderdelen  toeleveraarsversie  en  debian-revisie worden door het pakketbeheersysteem met behulp van
       hetzelfde algoritme vergeleken:

       De tekenreeksen worden vergeleken van links naar rechts.

       Eerst wordt van elke tekenreeks het eerste deel, dat volledig uit niet-numerieke tekens bestaat, bepaald.
       Deze twee delen (waarvan er een leeg mag zijn) worden lexicaal met elkaar vergeleken.  Als  een  verschil
       aangetroffen  wordt,  wordt  ze  teruggegeven.  Een  lexicale vergelijking is een vergelijking van ASCII-
       waarden die aangepast wordt, zodat alle lettertekens in de ordening voor alle niet-lettertekens komen  en
       zodat  een  tilde  voor  alles  komt,  zelfs  het  einde  van  een onderdeel. De volgende onderdelen zijn
       bijvoorbeeld in volgorde weergegeven: ‘~~’, ‘~~a’, ‘~’, het lege deel, ‘a’.

       Vervolgens wordt het eerste deel van de rest van elke tekenreeks dat volledig uit  cijfertekens  bestaat,
       bepaald.  De  numerieke  waarden van deze twee delen worden vergeleken en een eventueel gevonden verschil
       wordt als resultaat van de vergelijking teruggegeven. In deze context  geldt  een  lege  tekenreeks  (die
       enkel kan voorkomen op het einde van een of beide vergeleken versietekenreeksen) als een nul.

       Deze  beide  stappen  (vergelijken  en  verwijderen  van  initiële  niet-numerieke  en initiële numerieke
       tekenreeksen) worden herhaald tot er een verschil gevonden  wordt  of  tot  beide  tekenreeksen  volledig
       afgelopen werden.

       Merk op dat een epoche bedoeld is om ons toe te laten fouten in versienummering achter ons te laten en te
       kunnen  omgaan met situaties waarbij het versienummeringssysteem gewijzigd werd. Het is niet de bedoeling
       ervan te kunnen omgaan met versienummers die lettertekenreeksen bevatten die niet geïnterpreteerd  kunnen
       worden door het pakketbeheersysteem (zoals ‘ALPHA’ of ‘pre-’), of met ondoordachte ordeningen.

OPMERKINGEN

       De  bijzondere betekenis van het tilde-teken bij het sorteren werd geïntroduceerd in dpkg 1.10 en sommige
       onderdelen van de bouwscripts van dpkg werden pas later in de  1.10.x-cyclus  in  staat  gesteld  het  te
       ondersteunen.

ZIE OOK

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

1.22.18                                            2025-04-28                                     deb-version(7)