Provided by: dpkg-dev_1.22.6ubuntu6.1_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)