Provided by: dpkg-dev_1.19.7ubuntu2_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)