summaryrefslogtreecommitdiffstats
path: root/man/nl/deb-version.pod
blob: acbe927cc971993027a4fc166515ff4819eb1901 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
        *****************************************************
        *           GENERATED FILE, DO NOT EDIT             *
        * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION *
        *****************************************************

This file was generated by po4a(7). Do not store it (in VCS, for example),
but store the PO file used as source file by po4a-translate.

In fact, consider this as a binary, and the PO file as a regular .c file:
If the PO get lost, keeping this translation up-to-date will be harder.

=encoding UTF-8

=head1 NAAM

deb-version - Indeling van het pakketversienummer in Debian

=head1 OVERZICHT

[I<epoche>B<:>]I<toeleveraarsversie>[B<->I<debian-revisie>]

=head1 BESCHRIJVING

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

=over 

=item I<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 I<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.

=item I<toeleveraarsversie>

Dit is het belangrijkste deel van het versienummer. Het is gewoonlijk het
versienummer van het originele (“upstream”) pakket waarvan het
I<.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
I<toeleveraarsversie> wordt hierna beschreven. Het onderdeel
I<toeleveraarsversie> is een verplicht onderdeel van het versienummer.

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

=item I<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 B<+> B<.> B<~> (plus, punt, tilde) en wordt op
dezelfde manier vergeleken als de I<toeleveraarsversie>.

Het is facultatief. Als het ontbreekt, mag de I<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 I<debian-revisie> terug op ‘1’ te laten beginnen
telkens wanneer de I<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
I<toeleveraarsversie> is en wat de I<debian-revisie>. In een vergelijking is
een versienummer zonder een I<debian-revisie> een lagere versie dan één met
een dergelijke component (maar merk op dat de I<debian-revisie> het minst
significante deel van een versienummer is).

=back

=head2 Sorteeralgoritme

De onderdelen I<toeleveraarsversie> en I<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 B<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.

=head1 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.

=head1 ZIE OOK

B<deb-control>(5), B<deb>(5), B<dpkg>(1)