.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "deb-version 7" .TH deb-version 7 2024-01-19 1.22.3 "dpkg suite" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAAM .IX Header "NAAM" deb-version \- Indeling van het pakketversienummer in Debian .SH OVERZICHT .IX Header "OVERZICHT" [\fIepoche\fR\fB:\fR]\fItoeleveraarsversie\fR[\fB\-\fR\fIdebian-revisie\fR] .SH BESCHRIJVING .IX Header "BESCHRIJVING" De versienummers die gebruikt worden voor de binaire en broncodepakketten van Debian bestaan uit drie componenten. Die zijn: .IP \fIepoche\fR 4 .IX Item "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 \fItoeleveraarsversie\fR geen dubbele punt bevatten. .Sp 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. .IP \fItoeleveraarsversie\fR 4 .IX Item "toeleveraarsversie" Dit is het belangrijkste deel van het versienummer. Het is gewoonlijk het versienummer van het originele (\(lqupstream\(rq) pakket waarvan het \fI.deb\fR\-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. .Sp Het vergelijkingsgedrag van het pakketbeheerssysteem met betrekking tot de \fItoeleveraarsversie\fR wordt hierna beschreven. Het onderdeel \fItoeleveraarsversie\fR is een verplicht onderdeel van het versienummer. .Sp De \fItoeleveraarsversie\fR mag enkel alfanumerieke (\(lqA\-Za\-z0\-9\(rq) tekens bevatten en de tekens \fB.\fR \fB+\fR \fB\-\fR \fB:\fR \fB~\fR (punt, plus, verbindingsteken, dubbele punt, tilde) en moet met een cijfer beginnen. Als er geen \fIdebian-revisie\fR is, mogen geen verbindingstekens gebruikt worden en als het onderdeel \fIepoche\fR ontbreekt, mogen geen dubbele punten gebruikt worden. .IP \fIdebian-revisie\fR 4 .IX Item "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 \fB+\fR \fB.\fR \fB~\fR (plus, punt, tilde) en wordt op dezelfde manier vergeleken als de \fItoeleveraarsversie\fR. .Sp Het is facultatief. Als het ontbreekt, mag de \fItoeleveraarsversie\fR 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 \('e\('en enkele \(lqdebianisering\(rq van bestaat en er daarom geen revisieaanduiding nodig is. .Sp Het is gebruikelijk om de \fIdebian-revisie\fR terug op \(oq1\(cq te laten beginnen telkens wanneer de \fItoeleveraarsversie\fR verhoogd wordt. .Sp Dpkg splitst het versienummer op bij het laatste verbindingstekenteken uit de tekenreeks (als er een in voorkomt) om te bepalen wat de \fItoeleveraarsversie\fR is en wat de \fIdebian-revisie\fR. In een vergelijking is een versienummer zonder een \fIdebian-revisie\fR een lagere versie dan \('e\('en met een dergelijke component (maar merk op dat de \fIdebian-revisie\fR het minst significante deel van een versienummer is). .SS Sorteeralgoritme .IX Subsection "Sorteeralgoritme" De onderdelen \fItoeleveraarsversie\fR en \fIdebian-revisie\fR worden door het pakketbeheersysteem met behulp van hetzelfde algoritme vergeleken: .PP De tekenreeksen worden vergeleken van links naar rechts. .PP 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: \(oq~~\(cq, \(oq~~a\(cq, \(oq~\(cq, het lege deel, \(oqa\(cq. .PP 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. .PP Deze beide stappen (vergelijken en verwijderen van initi\(:ele niet-numerieke en initi\(:ele numerieke tekenreeksen) worden herhaald tot er een verschil gevonden wordt of tot beide tekenreeksen volledig afgelopen werden. .PP 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 \fBniet\fR de bedoeling ervan te kunnen omgaan met versienummers die lettertekenreeksen bevatten die niet ge\(:interpreteerd kunnen worden door het pakketbeheersysteem (zoals \(oqALPHA\(cq of \(oqpre\-\(cq), of met ondoordachte ordeningen. .SH OPMERKINGEN .IX Header "OPMERKINGEN" De bijzondere betekenis van het tilde-teken bij het sorteren werd ge\(:introduceerd 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. .SH "ZIE OOK" .IX Header "ZIE OOK" \&\fBdeb\-control\fR\|(5), \fBdeb\fR\|(5), \fBdpkg\fR\|(1)