Package platformids ::
Package embed ::
Module raspbian
1
2 """Raspbian releases.
3
4 The *Raspbian* distribution represents a *shrinked multi-role PC-Platform* as an
5 embedded system with integrated low-level HW interfaces.
6
7 *Raspbian* is specialized for the *Raspberry Pi* boards.
8 """
9 from __future__ import absolute_import
10
11 import re
12
13 from pythonids import PYV35Plus
14 from platformids import rte2num, num2rte, num2pretty, decode_version_str_to_segments, RTE_RASPBIAN, \
15 DSKORG_ID, PlatformIDsFileCheck
16
17 __author__ = 'Arno-Can Uestuensoez'
18 __license__ = "Artistic-License-2.0 + Forced-Fairplay-Constraints"
19 __copyright__ = "Copyright (C) 2010-2018 Arno-Can Uestuensoez" \
20 " @Ingenieurbuero Arno-Can Uestuensoez"
21 __version__ = '0.1.29'
22 __uuid__ = "7add5ded-c39b-4b6e-8c87-1b3a1c150ee9"
23
24
25
26
27
28
29
30
31
32
33 RTE_RASPBIAN7 = RTE_RASPBIAN + 0x00001c00
34 RTE_RASPBIAN8 = RTE_RASPBIAN + 0x00002000
35
36 RTE_RASPBIAN9 = RTE_RASPBIAN + 0x00002400
37 RTE_RASPBIAN90 = RTE_RASPBIAN + 0x00002400
38 RTE_RASPBIAN91 = RTE_RASPBIAN + 0x00002420
39 RTE_RASPBIAN92 = RTE_RASPBIAN + 0x00002440
40 RTE_RASPBIAN93 = RTE_RASPBIAN + 0x00002460
41 RTE_RASPBIAN94 = RTE_RASPBIAN + 0x00002480
42 RTE_RASPBIAN95 = RTE_RASPBIAN + 0x000024b0
43 RTE_RASPBIAN96 = RTE_RASPBIAN + 0x000024c0
44 RTE_RASPBIAN97 = RTE_RASPBIAN + 0x000024e0
45
46 RTE_RASPBIAN10 = RTE_RASPBIAN + 0x00002800
47 RTE_RASPBIAN100 = RTE_RASPBIAN + 0x00002800
48 RTE_RASPBIAN101 = RTE_RASPBIAN + 0x00002820
49 RTE_RASPBIAN102 = RTE_RASPBIAN + 0x00002840
50
51 RTE_RASPBIAN11 = RTE_RASPBIAN + 0x00002c00
52 RTE_RASPBIAN12 = RTE_RASPBIAN + 0x00003000
53
54
55
56 rte2num.update(
57 {
58 'Raspbian-wheezy': RTE_RASPBIAN7,
59 'Raspbian-jessy': RTE_RASPBIAN8,
60 'Raspbian-stretch': RTE_RASPBIAN9,
61 'Raspbian-buster': RTE_RASPBIAN10,
62 'Raspbian-bullseye': RTE_RASPBIAN11,
63 'Raspbian-bookworm': RTE_RASPBIAN12,
64 'raspbian7': RTE_RASPBIAN7,
65 'raspbian8': RTE_RASPBIAN8,
66 'raspbian9': RTE_RASPBIAN9,
67 'raspbian10': RTE_RASPBIAN10,
68 'raspbian11': RTE_RASPBIAN11,
69 'raspbian12': RTE_RASPBIAN12,
70 RTE_RASPBIAN7: RTE_RASPBIAN7,
71 RTE_RASPBIAN8: RTE_RASPBIAN8,
72 RTE_RASPBIAN9: RTE_RASPBIAN9,
73 RTE_RASPBIAN10: RTE_RASPBIAN10,
74 RTE_RASPBIAN11: RTE_RASPBIAN11,
75 RTE_RASPBIAN12: RTE_RASPBIAN12,
76 }
77 )
78
79
80
81 num2rte.update(
82 {
83 RTE_RASPBIAN7: 'raspbian7',
84 RTE_RASPBIAN8: 'raspbian8',
85 RTE_RASPBIAN9: 'raspbian9',
86 RTE_RASPBIAN10: 'raspbian10',
87 RTE_RASPBIAN11: 'raspbian11',
88 RTE_RASPBIAN12: 'raspbian12',
89 }
90 )
91
92
93
94 num2pretty.update(
95 {
96 RTE_RASPBIAN8: 'Raspbian-jessy',
97 RTE_RASPBIAN9: 'Raspbian-stretch',
98 RTE_RASPBIAN10: 'Raspbian-buster',
99 RTE_RASPBIAN11: 'Raspbian-bullseye',
100 RTE_RASPBIAN12: 'Raspbian-bookworm',
101 RTE_RASPBIAN7: 'Raspbian-wheezy',
102 }
103 )
104
105
106 dist = ['', '', 'Raspbian-', 'Raspbian', '', '']
107
108 try:
109 with open("/etc/os-release", 'r') as f:
110 for l in f:
111 if l.startswith('ID='):
112 dist[0] = dist[5] = DSKORG_ID.sub(r'\1', l)
113
114 if dist[0] == 'raspbian':
115 with open("/etc/debian_version", 'r') as f:
116 for l in f:
117 dist[1] = re.split(r'(?s)^([0-9.]*).*$', l)[1]
118 dist[4] = decode_version_str_to_segments(dist[1])
119 dist[0] += '%d%d' % (dist[4][0], dist[4][1],)
120 dist[2] += dist[1]
121
122 except PlatformIDsFileCheck:
123
124 pass
125
126
127 if dist[0] == 'raspbian':
128 dist = ['raspbian', '0.0.0', 'Raspbian-0.0.0', 'Raspbian', (0, 0, 0,), 'raspbian']
129