Package platformids ::
Package dist ::
Module debian
1
2 """Debian releases.
3 """
4 from __future__ import absolute_import
5
6 import os
7 import re
8
9 from pythonids import PYV35Plus
10 from platformids import RTE_DEBIAN, rte2num, num2rte, num2pretty, decode_version_str_to_segments, \
11 DSKORG_ID, PlatformIDsFileCheck
12
13
14
15
16 __author__ = 'Arno-Can Uestuensoez'
17 __license__ = "Artistic-License-2.0 + Forced-Fairplay-Constraints"
18 __copyright__ = "Copyright (C) 2010-2018 Arno-Can Uestuensoez" \
19 " @Ingenieurbuero Arno-Can Uestuensoez"
20 __version__ = '0.1.29'
21 __uuid__ = "7add5ded-c39b-4b6e-8c87-1b3a1c150ee9"
22
23
24 RTE_DEBIAN7 = RTE_DEBIAN + 0x00001c00
25
26 RTE_DEBIAN8 = RTE_DEBIAN + 0x00002000
27 RTE_DEBIAN80 = RTE_DEBIAN8 + 0x00002000
28 RTE_DEBIAN81 = RTE_DEBIAN8 + 0x00002020
29 RTE_DEBIAN82 = RTE_DEBIAN8 + 0x00002040
30 RTE_DEBIAN83 = RTE_DEBIAN8 + 0x00002060
31 RTE_DEBIAN84 = RTE_DEBIAN8 + 0x00002080
32 RTE_DEBIAN85 = RTE_DEBIAN8 + 0x000020a0
33 RTE_DEBIAN86 = RTE_DEBIAN8 + 0x000020c0
34 RTE_DEBIAN87 = RTE_DEBIAN8 + 0x000020e0
35 RTE_DEBIAN88 = RTE_DEBIAN8 + 0x00002100
36 RTE_DEBIAN89 = RTE_DEBIAN8 + 0x00002120
37 RTE_DEBIAN810 = RTE_DEBIAN8 + 0x00002140
38
39 RTE_DEBIAN9 = RTE_DEBIAN + 0x00002400
40 RTE_DEBIAN90 = RTE_DEBIAN9 + 0x00002400
41 RTE_DEBIAN91 = RTE_DEBIAN9 + 0x00002420
42 RTE_DEBIAN92 = RTE_DEBIAN9 + 0x00002440
43 RTE_DEBIAN93 = RTE_DEBIAN9 + 0x00002460
44 RTE_DEBIAN94 = RTE_DEBIAN9 + 0x00002480
45 RTE_DEBIAN95 = RTE_DEBIAN9 + 0x000024a0
46 RTE_DEBIAN96 = RTE_DEBIAN9 + 0x000024c0
47 RTE_DEBIAN97 = RTE_DEBIAN9 + 0x000024e0
48 RTE_DEBIAN98 = RTE_DEBIAN9 + 0x00002500
49 RTE_DEBIAN99 = RTE_DEBIAN9 + 0x00002520
50
51 RTE_DEBIAN10 = RTE_DEBIAN + 0x00002800
52 RTE_DEBIAN100 = RTE_DEBIAN + 0x00002800
53 RTE_DEBIAN101 = RTE_DEBIAN + 0x00002820
54 RTE_DEBIAN102 = RTE_DEBIAN + 0x00002840
55
56 RTE_DEBIAN11 = RTE_DEBIAN + 0x00002c80
57 RTE_DEBIAN12 = RTE_DEBIAN + 0x00003000
58 RTE_DEBIAN13 = RTE_DEBIAN + 0x00003400
59
60
61
62 rte2num.update(
63 {
64 'wheezy': RTE_DEBIAN7,
65 'jessy': RTE_DEBIAN8,
66 'stretch': RTE_DEBIAN9,
67 'buster': RTE_DEBIAN10,
68 'bullseye': RTE_DEBIAN11,
69 'bookworm': RTE_DEBIAN12,
70 'debian7': RTE_DEBIAN7,
71 'debian8': RTE_DEBIAN8,
72 'debian9': RTE_DEBIAN9,
73 'debian10': RTE_DEBIAN10,
74 'debian11': RTE_DEBIAN11,
75 'debian12': RTE_DEBIAN12,
76 RTE_DEBIAN7: RTE_DEBIAN7,
77 RTE_DEBIAN8: RTE_DEBIAN8,
78 RTE_DEBIAN9: RTE_DEBIAN9,
79 RTE_DEBIAN10: RTE_DEBIAN10,
80 RTE_DEBIAN11: RTE_DEBIAN11,
81 RTE_DEBIAN12: RTE_DEBIAN12,
82
83
84
85
86
87 }
88 )
89
90
91
92 num2rte.update(
93 {
94 RTE_DEBIAN7: 'debian7',
95 RTE_DEBIAN8: 'debian8',
96 RTE_DEBIAN9: 'debian9',
97 RTE_DEBIAN10: 'debian10',
98 RTE_DEBIAN11: 'debian11',
99 RTE_DEBIAN12: 'debian12',
100
101
102
103
104 }
105 )
106
107 num2pretty.update(
108 {
109 RTE_DEBIAN7: 'wheezy',
110 RTE_DEBIAN8: 'jessy',
111 RTE_DEBIAN9: 'stretch',
112 RTE_DEBIAN10: 'buster',
113 RTE_DEBIAN11: 'bullseye',
114 RTE_DEBIAN12: 'bookworm',
115 }
116 )
117
118
119 dist = ['', '', 'Debian-', 'Debian', '', '']
120
121 try:
122 if os.path.exists("/etc/debian_version"):
123 dist = ['debian', '', '', 'Debian', '']
124 with open("/etc/debian_version", 'r') as f:
125 for l in f:
126 dist[1] = re.split(r'(?s)^([0-9.]*).*$', l)[1]
127 dist[4] = decode_version_str_to_segments(dist[1])
128
129
130 _ver = ''
131 _name = ''
132
133 with open("/etc/os-release", 'r') as f:
134 for l in f:
135 if l.startswith('ID='):
136 dist[0] = dist[5] = DSKORG_ID.sub(r'\1', l)
137
138 if dist[5] == 'debian':
139
140 dist[0] += str(dist[4][0]) + str(dist[4][1])
141 dist[2] += dist[1]
142
143
144 except PlatformIDsFileCheck:
145
146 pass
147
148
149 if dist[5] != 'debian':
150
151 dist = ['debian', '0.0.0', 'Debian-0.0.0', 'Debian', (0, 0, 0,), 'debian']
152