Package platformids ::
Package dist ::
Module freebsd
1
2 """FreeBSD releases.
3 """
4 from __future__ import absolute_import
5
6 import sys
7 import os
8 import re
9 import platform
10
11 from pythonids import PYV35Plus
12 from platformids import RTE_BSD, rte2num, num2rte, num2pretty, decode_version_str_to_segments, \
13 PlatformIDsFileCheck
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.35'
21 __uuid__ = "7add5ded-c39b-4b6e-8c87-1b3a1c150ee9"
22
23
24
25 RTE_FREEBSD = RTE_BSD + 0x00040000
26
27
28
29
30
31
32 RTE_FREEBSD10 = RTE_FREEBSD + 0x00002800
33 RTE_FREEBSD11 = RTE_FREEBSD + 0x00002c00
34 RTE_FREEBSD111 = RTE_FREEBSD + 0x00002c20
35 RTE_FREEBSD112 = RTE_FREEBSD + 0x00002c40
36 RTE_FREEBSD12 = RTE_FREEBSD + 0x00003000
37 RTE_FREEBSD121 = RTE_FREEBSD + 0x00003020
38 RTE_FREEBSD122 = RTE_FREEBSD + 0x00003040
39 RTE_FREEBSD13 = RTE_FREEBSD + 0x00003400
40 RTE_FREEBSD14 = RTE_FREEBSD + 0x00003800
41
42
43
44 rte2num.update(
45 {
46 RTE_FREEBSD: RTE_FREEBSD,
47 'freebsd': RTE_FREEBSD,
48 'freebsd10': RTE_FREEBSD10,
49 'freebsd11': RTE_FREEBSD11,
50 'freebsd111': RTE_FREEBSD111,
51 'freebsd112': RTE_FREEBSD112,
52 'freebsd12': RTE_FREEBSD12,
53 'freebsd121': RTE_FREEBSD121,
54 'freebsd122': RTE_FREEBSD122,
55 'freebsd13': RTE_FREEBSD13,
56
57
58
59
60
61
62 RTE_FREEBSD10: RTE_FREEBSD10,
63 RTE_FREEBSD111: RTE_FREEBSD111,
64 RTE_FREEBSD112: RTE_FREEBSD112,
65 RTE_FREEBSD11: RTE_FREEBSD11,
66 RTE_FREEBSD12: RTE_FREEBSD12,
67 RTE_FREEBSD121: RTE_FREEBSD121,
68 RTE_FREEBSD122: RTE_FREEBSD122,
69 RTE_FREEBSD13: RTE_FREEBSD13,
70
71
72
73
74
75
76 }
77 )
78
79
80
81 num2rte.update(
82 {
83 RTE_FREEBSD: 'freebsd',
84
85
86
87
88
89
90 RTE_FREEBSD10: 'freebsd10',
91 RTE_FREEBSD11: 'freebsd11',
92 RTE_FREEBSD111: 'freebsd111',
93 RTE_FREEBSD112: 'freebsd112',
94 RTE_FREEBSD12: 'freebsd12',
95 RTE_FREEBSD121: 'freebsd121',
96 RTE_FREEBSD122: 'freebsd122',
97 RTE_FREEBSD13: 'freebsd13',
98 }
99 )
100
101
102 num2pretty.update(
103 {
104 RTE_FREEBSD: 'FreeBSD',
105 RTE_FREEBSD11: 'FreeBSD-11',
106 RTE_FREEBSD12: 'FreeBSD-12',
107 RTE_FREEBSD13: 'FreeBSD-13',
108 }
109 )
110
111
112 dist = ['', '', '', 'FreeBSD', '', '']
113
114 try:
115 if sys.platform.lower().startswith('freebsd'):
116
117 dist[1] = platform.release()
118 dist[5] = 'freebsd'
119
120 elif os.path.exists('/etc/freebsd-update.conf'):
121
122 x = os.popen("sysctl kern.ostype kern.osrelease", mode='r')
123 if x.readline().endswith("FreeBSD\n"):
124 dist[1] = re.sub(r'[^=]*=([0-9.]*).*$', r'\1', x.readline())
125 dist[5] = 'freebsd'
126 x.close()
127
128
129 if dist[5] == 'freebsd':
130 dist[4] = decode_version_str_to_segments(dist[1])
131 dist[0] = 'freebsd%d' % (dist[4][0], dist[4][1], )
132 dist[2] = 'FreeBSD-%d.%d.%d' %(dist[4][0], dist[4][1], dist[4][2], )
133
134
135 except PlatformIDsFileCheck:
136
137 pass
138
139
140 if dist[5] != 'freebsd':
141
142 dist = ['freebsd', '0.0.0', 'FreeBSD-0.0.0', 'FreeBSD', (0, 0, 0,), 'freebsd']
143