jolt 0.9.172__py3-none-any.whl → 0.9.435__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. jolt/__init__.py +80 -7
  2. jolt/__main__.py +9 -1
  3. jolt/bin/fstree-darwin-x86_64 +0 -0
  4. jolt/bin/fstree-linux-x86_64 +0 -0
  5. jolt/cache.py +596 -252
  6. jolt/chroot.py +36 -11
  7. jolt/cli.py +143 -130
  8. jolt/common_pb2.py +45 -45
  9. jolt/config.py +76 -40
  10. jolt/error.py +19 -4
  11. jolt/filesystem.py +2 -6
  12. jolt/graph.py +400 -82
  13. jolt/influence.py +110 -3
  14. jolt/loader.py +338 -174
  15. jolt/log.py +127 -31
  16. jolt/manifest.py +13 -46
  17. jolt/options.py +35 -11
  18. jolt/pkgs/abseil.py +42 -0
  19. jolt/pkgs/asio.py +25 -0
  20. jolt/pkgs/autoconf.py +41 -0
  21. jolt/pkgs/automake.py +41 -0
  22. jolt/pkgs/b2.py +31 -0
  23. jolt/pkgs/boost.py +111 -0
  24. jolt/pkgs/boringssl.py +32 -0
  25. jolt/pkgs/busybox.py +39 -0
  26. jolt/pkgs/bzip2.py +43 -0
  27. jolt/pkgs/cares.py +29 -0
  28. jolt/pkgs/catch2.py +36 -0
  29. jolt/pkgs/cbindgen.py +17 -0
  30. jolt/pkgs/cista.py +19 -0
  31. jolt/pkgs/clang.py +44 -0
  32. jolt/pkgs/cli11.py +24 -0
  33. jolt/pkgs/cmake.py +48 -0
  34. jolt/pkgs/cpython.py +196 -0
  35. jolt/pkgs/crun.py +29 -0
  36. jolt/pkgs/curl.py +38 -0
  37. jolt/pkgs/dbus.py +18 -0
  38. jolt/pkgs/double_conversion.py +24 -0
  39. jolt/pkgs/fastfloat.py +21 -0
  40. jolt/pkgs/ffmpeg.py +28 -0
  41. jolt/pkgs/flatbuffers.py +29 -0
  42. jolt/pkgs/fmt.py +27 -0
  43. jolt/pkgs/fstree.py +20 -0
  44. jolt/pkgs/gflags.py +18 -0
  45. jolt/pkgs/glib.py +18 -0
  46. jolt/pkgs/glog.py +25 -0
  47. jolt/pkgs/glslang.py +21 -0
  48. jolt/pkgs/golang.py +16 -11
  49. jolt/pkgs/googlebenchmark.py +18 -0
  50. jolt/pkgs/googletest.py +46 -0
  51. jolt/pkgs/gperf.py +15 -0
  52. jolt/pkgs/grpc.py +73 -0
  53. jolt/pkgs/hdf5.py +19 -0
  54. jolt/pkgs/help2man.py +14 -0
  55. jolt/pkgs/inja.py +28 -0
  56. jolt/pkgs/jsoncpp.py +31 -0
  57. jolt/pkgs/libarchive.py +43 -0
  58. jolt/pkgs/libcap.py +44 -0
  59. jolt/pkgs/libdrm.py +44 -0
  60. jolt/pkgs/libedit.py +42 -0
  61. jolt/pkgs/libevent.py +31 -0
  62. jolt/pkgs/libexpat.py +27 -0
  63. jolt/pkgs/libfastjson.py +21 -0
  64. jolt/pkgs/libffi.py +16 -0
  65. jolt/pkgs/libglvnd.py +30 -0
  66. jolt/pkgs/libogg.py +28 -0
  67. jolt/pkgs/libpciaccess.py +18 -0
  68. jolt/pkgs/libseccomp.py +21 -0
  69. jolt/pkgs/libtirpc.py +24 -0
  70. jolt/pkgs/libtool.py +42 -0
  71. jolt/pkgs/libunwind.py +35 -0
  72. jolt/pkgs/libva.py +18 -0
  73. jolt/pkgs/libvorbis.py +33 -0
  74. jolt/pkgs/libxml2.py +35 -0
  75. jolt/pkgs/libxslt.py +17 -0
  76. jolt/pkgs/libyajl.py +16 -0
  77. jolt/pkgs/llvm.py +81 -0
  78. jolt/pkgs/lua.py +54 -0
  79. jolt/pkgs/lz4.py +26 -0
  80. jolt/pkgs/m4.py +14 -0
  81. jolt/pkgs/make.py +17 -0
  82. jolt/pkgs/mesa.py +81 -0
  83. jolt/pkgs/meson.py +17 -0
  84. jolt/pkgs/mstch.py +28 -0
  85. jolt/pkgs/mysql.py +60 -0
  86. jolt/pkgs/nasm.py +49 -0
  87. jolt/pkgs/ncurses.py +30 -0
  88. jolt/pkgs/ng_log.py +25 -0
  89. jolt/pkgs/ninja.py +45 -0
  90. jolt/pkgs/nlohmann_json.py +25 -0
  91. jolt/pkgs/nodejs.py +19 -11
  92. jolt/pkgs/opencv.py +24 -0
  93. jolt/pkgs/openjdk.py +26 -0
  94. jolt/pkgs/openssl.py +103 -0
  95. jolt/pkgs/paho.py +76 -0
  96. jolt/pkgs/patchelf.py +16 -0
  97. jolt/pkgs/perl.py +42 -0
  98. jolt/pkgs/pkgconfig.py +64 -0
  99. jolt/pkgs/poco.py +39 -0
  100. jolt/pkgs/protobuf.py +77 -0
  101. jolt/pkgs/pugixml.py +27 -0
  102. jolt/pkgs/python.py +19 -0
  103. jolt/pkgs/qt.py +35 -0
  104. jolt/pkgs/rapidjson.py +26 -0
  105. jolt/pkgs/rapidyaml.py +28 -0
  106. jolt/pkgs/re2.py +30 -0
  107. jolt/pkgs/re2c.py +17 -0
  108. jolt/pkgs/readline.py +15 -0
  109. jolt/pkgs/rust.py +41 -0
  110. jolt/pkgs/sdl.py +28 -0
  111. jolt/pkgs/simdjson.py +27 -0
  112. jolt/pkgs/soci.py +46 -0
  113. jolt/pkgs/spdlog.py +29 -0
  114. jolt/pkgs/spirv_llvm.py +21 -0
  115. jolt/pkgs/spirv_tools.py +24 -0
  116. jolt/pkgs/sqlite.py +83 -0
  117. jolt/pkgs/ssl.py +12 -0
  118. jolt/pkgs/texinfo.py +15 -0
  119. jolt/pkgs/tomlplusplus.py +22 -0
  120. jolt/pkgs/wayland.py +26 -0
  121. jolt/pkgs/x11.py +58 -0
  122. jolt/pkgs/xerces_c.py +20 -0
  123. jolt/pkgs/xorg.py +360 -0
  124. jolt/pkgs/xz.py +29 -0
  125. jolt/pkgs/yamlcpp.py +30 -0
  126. jolt/pkgs/zeromq.py +47 -0
  127. jolt/pkgs/zlib.py +87 -0
  128. jolt/pkgs/zstd.py +33 -0
  129. jolt/plugins/alias.py +3 -0
  130. jolt/plugins/allure.py +2 -2
  131. jolt/plugins/autotools.py +66 -0
  132. jolt/plugins/cache.py +1 -1
  133. jolt/plugins/cmake.py +74 -6
  134. jolt/plugins/conan.py +238 -0
  135. jolt/plugins/cxxinfo.py +7 -0
  136. jolt/plugins/docker.py +76 -19
  137. jolt/plugins/email.xslt +141 -118
  138. jolt/plugins/environ.py +11 -0
  139. jolt/plugins/fetch.py +141 -0
  140. jolt/plugins/gdb.py +33 -14
  141. jolt/plugins/gerrit.py +0 -13
  142. jolt/plugins/git.py +248 -66
  143. jolt/plugins/googletest.py +1 -1
  144. jolt/plugins/http.py +1 -1
  145. jolt/plugins/libtool.py +63 -0
  146. jolt/plugins/linux.py +990 -0
  147. jolt/plugins/logstash.py +4 -4
  148. jolt/plugins/meson.py +61 -0
  149. jolt/plugins/ninja-compdb.py +96 -28
  150. jolt/plugins/ninja.py +424 -150
  151. jolt/plugins/paths.py +11 -1
  152. jolt/plugins/pkgconfig.py +219 -0
  153. jolt/plugins/podman.py +131 -87
  154. jolt/plugins/python.py +137 -0
  155. jolt/plugins/remote_execution/administration_pb2.py +27 -19
  156. jolt/plugins/remote_execution/log_pb2.py +12 -12
  157. jolt/plugins/remote_execution/scheduler_pb2.py +23 -23
  158. jolt/plugins/remote_execution/worker_pb2.py +19 -19
  159. jolt/plugins/report.py +7 -2
  160. jolt/plugins/rust.py +25 -0
  161. jolt/plugins/scheduler.py +135 -86
  162. jolt/plugins/selfdeploy/setup.py +6 -6
  163. jolt/plugins/selfdeploy.py +49 -31
  164. jolt/plugins/strings.py +35 -22
  165. jolt/plugins/symlinks.py +11 -4
  166. jolt/plugins/telemetry.py +1 -2
  167. jolt/plugins/timeline.py +13 -3
  168. jolt/scheduler.py +467 -165
  169. jolt/tasks.py +427 -111
  170. jolt/templates/timeline.html.template +44 -47
  171. jolt/timer.py +22 -0
  172. jolt/tools.py +527 -188
  173. jolt/utils.py +183 -3
  174. jolt/version.py +1 -1
  175. jolt/xmldom.py +12 -2
  176. {jolt-0.9.172.dist-info → jolt-0.9.435.dist-info}/METADATA +97 -41
  177. jolt-0.9.435.dist-info/RECORD +207 -0
  178. {jolt-0.9.172.dist-info → jolt-0.9.435.dist-info}/WHEEL +1 -1
  179. jolt/plugins/amqp.py +0 -855
  180. jolt/plugins/debian.py +0 -338
  181. jolt/plugins/repo.py +0 -253
  182. jolt/plugins/snap.py +0 -122
  183. jolt-0.9.172.dist-info/RECORD +0 -92
  184. {jolt-0.9.172.dist-info → jolt-0.9.435.dist-info}/entry_points.txt +0 -0
  185. {jolt-0.9.172.dist-info → jolt-0.9.435.dist-info}/top_level.txt +0 -0
jolt/pkgs/xorg.py ADDED
@@ -0,0 +1,360 @@
1
+ from jolt import attributes, Parameter, Task
2
+ from jolt.plugins import fetch, autotools, libtool, pkgconfig
3
+ from jolt.tasks import TaskRegistry
4
+
5
+
6
+ @attributes.requires("requires_git")
7
+ @autotools.requires()
8
+ class XorgMacros(autotools.Autotools):
9
+ name = "xorg/macros"
10
+ version = Parameter("1.20.2", help="Xorg Macros version.")
11
+
12
+ requires_git = ["git:url=https://gitlab.freedesktop.org/xorg/util/macros.git,rev=util-macros-{version}"]
13
+ srcdir = "{git[macros]}"
14
+
15
+
16
+ @attributes.requires("requires_macros")
17
+ @attributes.requires("requires_src")
18
+ @autotools.requires()
19
+ class Inputproto(autotools.Autotools):
20
+ name = "xorg/inputproto"
21
+ version = Parameter("2.3.2", help="Inputproto version.")
22
+ requires_macros = ["xorg/macros"]
23
+ requires_src = ["fetch:alias=src,url=https://www.x.org/releases/individual/proto/inputproto-{version}.tar.gz"]
24
+ srcdir = "{fetch[src]}/inputproto-{version}"
25
+
26
+
27
+ @attributes.requires("requires_macros")
28
+ @attributes.requires("requires_src")
29
+ @autotools.requires()
30
+ class Glproto(autotools.Autotools):
31
+ name = "xorg/glproto"
32
+ version = Parameter("1.4.17", help="Glproto version.")
33
+ requires_macros = ["xorg/macros"]
34
+ requires_src = ["fetch:alias=src,url=https://www.x.org/releases/individual/proto/glproto-{version}.tar.gz"]
35
+ srcdir = "{fetch[src]}/glproto-{version}"
36
+
37
+
38
+ @attributes.requires("requires_macros")
39
+ @attributes.requires("requires_src")
40
+ @autotools.requires()
41
+ class Kbproto(autotools.Autotools):
42
+ name = "xorg/kbproto"
43
+ version = Parameter("1.0.7", help="Kbproto version.")
44
+ requires_macros = ["xorg/macros"]
45
+ requires_src = ["fetch:alias=src,url=https://www.x.org/releases/individual/proto/kbproto-{version}.tar.gz"]
46
+ srcdir = "{fetch[src]}/kbproto-{version}"
47
+
48
+
49
+ @attributes.requires("requires_macros")
50
+ @attributes.requires("requires_src")
51
+ @autotools.requires()
52
+ class Randrproto(autotools.Autotools):
53
+ name = "xorg/randrproto"
54
+ version = Parameter("1.5.0", help="Randrproto version.")
55
+ requires_macros = ["xorg/macros"]
56
+ requires_src = ["fetch:alias=src,url=https://www.x.org/releases/individual/proto/randrproto-{version}.tar.gz"]
57
+ srcdir = "{fetch[src]}/randrproto-{version}"
58
+
59
+
60
+ @attributes.requires("requires_macros")
61
+ @attributes.requires("requires_src")
62
+ @autotools.requires()
63
+ class Renderproto(autotools.Autotools):
64
+ name = "xorg/renderproto"
65
+ version = Parameter("0.11.1", help="Renderproto version.")
66
+ requires_macros = ["xorg/macros"]
67
+ requires_src = ["fetch:alias=src,url=https://www.x.org/releases/individual/proto/renderproto-{version}.tar.gz"]
68
+ srcdir = "{fetch[src]}/renderproto-{version}"
69
+
70
+
71
+ @attributes.requires("requires_macros")
72
+ @attributes.requires("requires_src")
73
+ @attributes.requires("requires_xcb")
74
+ @autotools.requires()
75
+ @pkgconfig.requires()
76
+ class XcbKeysyms(autotools.Autotools):
77
+ name = "xorg/xcb-keysyms"
78
+ version = Parameter("0.4.1", help="XCB Keysyms version.")
79
+ requires_macros = ["xorg/macros"]
80
+ requires_src = ["fetch:alias=src,url=https://www.x.org/releases/individual/lib/xcb-util-keysyms-{version}.tar.xz"]
81
+ requires_xcb = ["xorg/libxcb"]
82
+ srcdir = "{fetch[src]}/xcb-util-keysyms-{version}"
83
+
84
+
85
+ @attributes.requires("requires_git")
86
+ @attributes.requires("requires_xorg_macros")
87
+ @autotools.requires()
88
+ @pkgconfig.requires()
89
+ class XcbProto(autotools.Autotools):
90
+ name = "xorg/xcb-proto"
91
+ version = Parameter("1.17.0", help="Libxcb_proto version.")
92
+ requires_git = ["git:url=https://gitlab.freedesktop.org/xorg/proto/xcbproto.git,rev=xcb-proto-{version}"]
93
+ requires_xorg_macros = ["xorg/macros"]
94
+ srcdir = "{git[xcbproto]}"
95
+
96
+
97
+ @attributes.requires("requires_macros")
98
+ @attributes.requires("requires_src")
99
+ @attributes.requires("requires_xproto")
100
+ @autotools.requires()
101
+ @libtool.relocate()
102
+ @pkgconfig.requires()
103
+ class Xau(autotools.Autotools):
104
+ name = "xorg/libxau"
105
+ version = Parameter("1.0.12", help="Xau version.")
106
+ requires_macros = ["xorg/macros"]
107
+ requires_src = ["fetch:alias=src,url=https://www.x.org/releases/individual/lib/libXau-{version}.tar.gz"]
108
+ requires_xproto = ["xorg/xproto"]
109
+ srcdir = "{fetch[src]}/libXau-{version}"
110
+
111
+
112
+ @attributes.requires("requires_macros")
113
+ @attributes.requires("requires_src")
114
+ @attributes.requires("requires_xproto")
115
+ @autotools.requires()
116
+ @libtool.relocate()
117
+ @pkgconfig.requires()
118
+ class LibXdmcp(autotools.Autotools):
119
+ name = "xorg/libxdmcp"
120
+ version = Parameter("1.1.5", help="LibXdmcp version.")
121
+ requires_macros = ["xorg/macros"]
122
+ requires_src = ["fetch:alias=src,url=https://www.x.org/releases/individual/lib/libXdmcp-{version}.tar.gz"]
123
+ requires_xproto = ["xorg/xproto"]
124
+ srcdir = "{fetch[src]}/libXdmcp-{version}"
125
+
126
+
127
+ @attributes.requires("requires_macros")
128
+ @attributes.requires("requires_src")
129
+ @attributes.requires("requires_x11")
130
+ @attributes.requires("requires_xextproto")
131
+ @attributes.requires("requires_xproto")
132
+ @autotools.requires()
133
+ @pkgconfig.requires()
134
+ class Xext(autotools.Autotools):
135
+ name = "xorg/libxext"
136
+ version = Parameter("1.3.6", help="Xext version.")
137
+ requires_macros = ["xorg/macros"]
138
+ requires_src = ["fetch:alias=src,url=https://www.x.org/releases/individual/lib/libXext-{version}.tar.gz"]
139
+ requires_x11 = ["xorg/libx11"]
140
+ requires_xextproto = ["xorg/xextproto"]
141
+ requires_xproto = ["xorg/xproto"]
142
+ srcdir = "{fetch[src]}/libXext-{version}"
143
+
144
+
145
+ @attributes.requires("requires_macros")
146
+ @attributes.requires("requires_src")
147
+ @autotools.requires()
148
+ class Xextproto(autotools.Autotools):
149
+ name = "xorg/xextproto"
150
+ version = Parameter("7.3.0", help="Xextproto version.")
151
+ requires_macros = ["xorg/macros"]
152
+ requires_src = ["fetch:alias=src,url=https://www.x.org/releases/individual/proto/xextproto-{version}.tar.gz"]
153
+ srcdir = "{fetch[src]}/xextproto-{version}"
154
+
155
+
156
+ @attributes.requires("requires_macros")
157
+ @attributes.requires("requires_src")
158
+ @autotools.requires()
159
+ class Xproto(autotools.Autotools):
160
+ name = "xorg/xproto"
161
+ version = Parameter("7.0.31", help="Xproto version.")
162
+ requires_macros = ["xorg/macros"]
163
+ requires_src = ["fetch:alias=src,url=https://www.x.org/releases/individual/proto/xproto-{version}.tar.gz"]
164
+ srcdir = "{fetch[src]}/xproto-{version}"
165
+
166
+
167
+ @attributes.requires("requires_macros")
168
+ @attributes.requires("requires_src")
169
+ @autotools.requires()
170
+ class Xf86vidmodeproto(autotools.Autotools):
171
+ name = "xorg/xf86vidmodeproto"
172
+ version = Parameter("2.3.1", help="Xf86vidmodeproto version.")
173
+ requires_macros = ["xorg/macros"]
174
+ requires_src = ["fetch:alias=src,url=https://www.x.org/releases/individual/proto/xf86vidmodeproto-{version}.tar.gz"]
175
+ srcdir = "{fetch[src]}/xf86vidmodeproto-{version}"
176
+
177
+
178
+ @attributes.requires("requires_macros")
179
+ @attributes.requires("requires_src")
180
+ @autotools.requires()
181
+ class Xtrans(autotools.Autotools):
182
+ name = "xorg/xtrans"
183
+ version = Parameter("1.6.0", help="Xtrans version.")
184
+ requires_macros = ["xorg/macros"]
185
+ requires_src = ["fetch:alias=src,url=https://www.x.org/releases/individual/lib/xtrans-{version}.tar.gz"]
186
+ srcdir = "{fetch[src]}/xtrans-{version}"
187
+
188
+
189
+ @attributes.requires("requires_randrproto")
190
+ @attributes.requires("requires_src")
191
+ @attributes.requires("requires_xext")
192
+ @attributes.requires("requires_xrender")
193
+ @autotools.requires()
194
+ @libtool.relocate()
195
+ class Xrandr(autotools.Autotools):
196
+ name = "xorg/libxrandr"
197
+ version = Parameter("1.5.4", help="Xrandr version.")
198
+ requires_randrproto = ["xorg/randrproto"]
199
+ requires_src = ["fetch:alias=src,url=https://www.x.org/releases/individual/lib/libXrandr-{version}.tar.gz"]
200
+ requires_xext = ["xorg/libxext"]
201
+ requires_xrender = ["xorg/libxrender"]
202
+ srcdir = "{fetch[src]}/libXrandr-{version}"
203
+
204
+
205
+ @attributes.requires("requires_macros")
206
+ @attributes.requires("requires_renderproto")
207
+ @attributes.requires("requires_src")
208
+ @attributes.requires("requires_x11")
209
+ @autotools.requires()
210
+ @libtool.relocate()
211
+ @pkgconfig.requires()
212
+ class Xrender(autotools.Autotools):
213
+ name = "xorg/libxrender"
214
+ version = Parameter("0.9.12", help="Xrender version.")
215
+ requiers_macros = ["xorg/macros"]
216
+ requires_renderproto = ["xorg/renderproto"]
217
+ requires_src = ["fetch:alias=src,url=https://www.x.org/releases/individual/lib/libXrender-{version}.tar.gz"]
218
+ requires_x11 = ["xorg/libx11"]
219
+ srcdir = "{fetch[src]}/libXrender-{version}"
220
+
221
+
222
+ @attributes.requires("requires_git")
223
+ @attributes.requires("requires_xproto")
224
+ @attributes.requires("requires_xorg_macros")
225
+ @pkgconfig.to_cxxinfo(["xshmfence"])
226
+ @pkgconfig.requires()
227
+ @autotools.requires()
228
+ @libtool.relocate()
229
+ @libtool.relocate()
230
+ class Libxshmfence(autotools.Autotools):
231
+ name = "xorg/libxshmfence"
232
+ version = Parameter("1.3.3", help="Libxshmfence version.")
233
+
234
+ requires_git = ["fetch:alias=src,url=https://www.x.org/releases/individual/lib/libxshmfence-{version}.tar.gz"]
235
+ requires_xproto = ["xproto"]
236
+ requires_xorg_macros = ["xorg/macros"]
237
+ srcdir = "{fetch[src]}/libxshmfence-{version}"
238
+
239
+
240
+ @attributes.common_metadata()
241
+ @attributes.requires("requires_libx11")
242
+ @attributes.requires("requires_src")
243
+ @attributes.requires("requires_xext")
244
+ @attributes.requires("requires_xextproto")
245
+ @attributes.requires("requires_xf86vidmodeproto")
246
+ @attributes.requires("requires_xorg_macros")
247
+ @attributes.requires("requires_xproto")
248
+ @autotools.requires()
249
+ @pkgconfig.requires()
250
+ @libtool.relocate()
251
+ class Libxxf86vm(autotools.Autotools):
252
+ name = "xorg/libxxf86vm"
253
+ version = "1.1.6"
254
+ requires_src = ["fetch:alias=src,url=https://www.x.org/releases/individual/lib/libXxf86vm-{version}.tar.gz"]
255
+ srcdir = "{fetch[src]}/libXxf86vm-{version}"
256
+ requires_libx11 = ["xorg/libx11"]
257
+ requires_xext = ["xorg/libxext"]
258
+ requires_xextproto = ["xorg/xextproto"]
259
+ requires_xf86vidmodeproto = ["xorg/xf86vidmodeproto"]
260
+ requires_xorg_macros = ["xorg/macros"]
261
+ requires_xproto = ["xorg/xproto"]
262
+
263
+
264
+ @attributes.requires("requires_git")
265
+ @attributes.requires("requires_xau")
266
+ @attributes.requires("requires_xorg_macros")
267
+ @attributes.requires("requires_xcb_proto")
268
+ @pkgconfig.to_cxxinfo(["xcb"])
269
+ @autotools.requires()
270
+ @libtool.relocate()
271
+ class Libxcb(autotools.Autotools):
272
+ name = "xorg/libxcb"
273
+ version = Parameter("1.17.0", help="Libxcb version.")
274
+
275
+ requires_git = ["fetch:alias=src,url=https://www.x.org/releases/individual/lib/libxcb-{version}.tar.gz"]
276
+ requires_xau = ["xorg/libxau"]
277
+ requires_xorg_macros = ["xorg/macros"]
278
+ requires_xcb_proto = ["xorg/xcb-proto"]
279
+ srcdir = "{fetch[src]}/libxcb-{version}"
280
+
281
+
282
+ @attributes.requires("requires_inputproto")
283
+ @attributes.requires("requires_kbproto")
284
+ @attributes.requires("requires_libxau")
285
+ @attributes.requires("requires_libxcb")
286
+ @attributes.requires("requires_libxdmcp")
287
+ @attributes.requires("requires_src")
288
+ @attributes.requires("requires_xextproto")
289
+ @attributes.requires("requires_xorg_macros")
290
+ @attributes.requires("requires_xproto")
291
+ @attributes.requires("requires_xtrans")
292
+ @autotools.requires()
293
+ @pkgconfig.requires()
294
+ @pkgconfig.to_cxxinfo(["x11", "x11-xcb"])
295
+ @libtool.relocate()
296
+ class Libx11(autotools.Autotools):
297
+ name = "xorg/libx11"
298
+ version = Parameter("1.8.12", help="Libx11 version.")
299
+
300
+ requires_inputproto = ["xorg/inputproto"]
301
+ requires_kbproto = ["xorg/kbproto"]
302
+ requires_libxau = ["xorg/libxau"]
303
+ requires_libxcb = ["xorg/libxcb"]
304
+ requires_libxdmcp = ["xorg/libxdmcp"]
305
+ requires_src = ["fetch:alias=src,url=https://www.x.org/releases/individual/lib/libX11-{version}.tar.gz"]
306
+ requires_xextproto = ["xorg/xextproto"]
307
+ requires_xorg_macros = ["xorg/macros"]
308
+ requires_xproto = ["xorg/xproto"]
309
+ requires_xtrans = ["xorg/xtrans"]
310
+ srcdir = "{fetch[src]}/libX11-{version}"
311
+
312
+
313
+ @attributes.requires("requires_libx11")
314
+ @attributes.requires("requires_libxcb")
315
+ @attributes.common_metadata()
316
+ @libtool.relocate()
317
+ class LibX11Xcb(Task):
318
+ """
319
+ Republishes libx11 and libxcb as libx11-xcb for compatibility.
320
+
321
+ Mainly, prefix must be shared in order to build mesa.
322
+ """
323
+ name = "xorg/libx11-xcb"
324
+ requires_libx11 = ["xorg/libx11"]
325
+ requires_libxcb = ["xorg/libxcb"]
326
+ selfsustained = True
327
+
328
+ def run(self, deps, tools):
329
+ self.x11 = deps["xorg/libx11"]
330
+ self.xcb = deps["xorg/libxcb"]
331
+
332
+ def publish(self, artifact, tools):
333
+ with tools.cwd(self.x11.path):
334
+ artifact.collect("*", symlinks=True)
335
+ with tools.cwd(self.xcb.path):
336
+ artifact.collect("*", symlinks=True)
337
+
338
+
339
+ TaskRegistry.get().add_task_class(Glproto)
340
+ TaskRegistry.get().add_task_class(Inputproto)
341
+ TaskRegistry.get().add_task_class(Kbproto)
342
+ TaskRegistry.get().add_task_class(Libx11)
343
+ TaskRegistry.get().add_task_class(LibX11Xcb)
344
+ TaskRegistry.get().add_task_class(Libxcb)
345
+ TaskRegistry.get().add_task_class(LibXdmcp)
346
+ TaskRegistry.get().add_task_class(Libxxf86vm)
347
+ TaskRegistry.get().add_task_class(Randrproto)
348
+ TaskRegistry.get().add_task_class(Renderproto)
349
+ TaskRegistry.get().add_task_class(Xau)
350
+ TaskRegistry.get().add_task_class(XcbKeysyms)
351
+ TaskRegistry.get().add_task_class(XcbProto)
352
+ TaskRegistry.get().add_task_class(Xext)
353
+ TaskRegistry.get().add_task_class(Xextproto)
354
+ TaskRegistry.get().add_task_class(Xf86vidmodeproto)
355
+ TaskRegistry.get().add_task_class(XorgMacros)
356
+ TaskRegistry.get().add_task_class(Xproto)
357
+ TaskRegistry.get().add_task_class(Xrandr)
358
+ TaskRegistry.get().add_task_class(Xrender)
359
+ TaskRegistry.get().add_task_class(Xtrans)
360
+ TaskRegistry.get().add_task_class(Libxshmfence)
jolt/pkgs/xz.py ADDED
@@ -0,0 +1,29 @@
1
+ from jolt import attributes, BooleanParameter, Parameter
2
+ from jolt.plugins import git, cmake
3
+ from jolt.tasks import TaskRegistry
4
+
5
+
6
+ @attributes.requires("requires_git")
7
+ @cmake.requires()
8
+ @cmake.use_ninja()
9
+ @cmake.options("options_pic_{pic[on,off]}")
10
+ class Xz(cmake.CMake):
11
+ name = "xz"
12
+ version = Parameter("5.8.2", help="xz version.")
13
+ pic = BooleanParameter(True, help="Build with position independent code.")
14
+ shared = BooleanParameter(False, help="Build shared libraries.")
15
+ requires_git = ["git:url=https://github.com/tukaani-project/xz.git,rev=v{version}"]
16
+ srcdir = "{git[xz]}"
17
+ options_pic_on = [
18
+ "BUILD_SHARED_LIBS={shared[ON,OFF]}",
19
+ "CMAKE_POSITION_INDEPENDENT_CODE=ON",
20
+ ]
21
+
22
+ def publish(self, artifact, tools):
23
+ super().publish(artifact, tools)
24
+ artifact.cxxinfo.incpaths.append("include")
25
+ artifact.cxxinfo.libpaths.append("lib")
26
+ artifact.cxxinfo.libraries.append("lzma")
27
+
28
+
29
+ TaskRegistry.get().add_task_class(Xz)
jolt/pkgs/yamlcpp.py ADDED
@@ -0,0 +1,30 @@
1
+ from jolt import attributes, BooleanParameter, Parameter
2
+ from jolt.pkgs import cmake
3
+ from jolt.plugins import git, cmake, pkgconfig
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.system
9
+ @cmake.requires()
10
+ @cmake.use_ninja()
11
+ class YamlCPP(cmake.CMake):
12
+ name = "yaml-cpp"
13
+ version = Parameter("bbf8bdb", help="yaml-cpp version.")
14
+ shared = BooleanParameter(False, help="Build shared libraries.")
15
+ requires_git = ["git:url=https://github.com/jbeder/yaml-cpp.git,rev={version}"]
16
+ srcdir = "{git[yaml-cpp]}"
17
+ options = [
18
+ "CMAKE_POLICY_VERSION_MINIMUM=3.5",
19
+ "YAML_BUILD_SHARED_LIBS={shared[ON,OFF]}",
20
+ "YAML_BUILD_TOOLS=OFF",
21
+ ]
22
+
23
+ def publish(self, artifact, tools):
24
+ super().publish(artifact, tools)
25
+ artifact.cxxinfo.incpaths.append("include")
26
+ artifact.cxxinfo.libpaths.append("lib")
27
+ artifact.cxxinfo.libraries.append("yaml-cpp")
28
+
29
+
30
+ TaskRegistry.get().add_task_class(YamlCPP)
jolt/pkgs/zeromq.py ADDED
@@ -0,0 +1,47 @@
1
+ from jolt import attributes, BooleanParameter, Parameter
2
+ from jolt.pkgs import openssl
3
+ from jolt.plugins import cmake, git
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @cmake.requires()
9
+ @cmake.use_ninja()
10
+ class Libzmq(cmake.CMake):
11
+ name = "libzmq"
12
+ version = Parameter("4.3.5", help="ZeroMQ version.")
13
+ shared = BooleanParameter(False, help="Build shared libraries")
14
+ requires_git = ["git:url=https://github.com/zeromq/libzmq.git,rev=v{version}"]
15
+ srcdir = "{git[libzmq]}"
16
+ options = [
17
+ "BUILD_SHARED={shared[ON,OFF]}",
18
+ "BUILD_TESTS=OFF",
19
+ "CMAKE_POLICY_VERSION_MINIMUM=3.5",
20
+ ]
21
+
22
+ def publish(self, artifact, tools):
23
+ super().publish(artifact, tools)
24
+ artifact.cxxinfo.incpaths.append("include")
25
+ artifact.cxxinfo.libpaths.append("lib")
26
+ artifact.cxxinfo.libraries.append("zmq")
27
+
28
+
29
+ @attributes.requires("requires_git")
30
+ @attributes.requires("requires_libzmq")
31
+ @cmake.requires()
32
+ @cmake.use_ninja()
33
+ class Cppzmq(cmake.CMake):
34
+ name = "cppzmq"
35
+ version = Parameter("4.11.0", help="cppzmq version.")
36
+ requires_git = ["git:url=https://github.com/zeromq/cppzmq.git,rev=v{version}"]
37
+ requires_libzmq = ["libzmq"]
38
+ srcdir = "{git[cppzmq]}"
39
+ options = ["CPPZMQ_BUILD_TESTS=OFF"]
40
+
41
+ def publish(self, artifact, tools):
42
+ super().publish(artifact, tools)
43
+ artifact.cxxinfo.incpaths.append("include")
44
+
45
+
46
+ TaskRegistry.get().add_task_class(Libzmq)
47
+ TaskRegistry.get().add_task_class(Cppzmq)
jolt/pkgs/zlib.py ADDED
@@ -0,0 +1,87 @@
1
+ from jolt import attributes, Alias, BooleanParameter, Parameter
2
+ from jolt.pkgs import cmake
3
+ from jolt.plugins import git, cmake
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.system
9
+ @cmake.requires()
10
+ @cmake.use_ninja()
11
+ class Zlib(cmake.CMake):
12
+ name = "zlib"
13
+ version = Parameter("1.3.1", help="Zlib version.")
14
+ shared = BooleanParameter(False, "Enable shared libraries.")
15
+ requires_git = ["git:clean=true,url=https://github.com/madler/zlib.git,rev=v{version}"]
16
+ srcdir = "{git[zlib]}"
17
+ options = [
18
+ "BUILD_SHARED_LIBS={shared[ON,OFF]}",
19
+ "ZLIB_BUILD_EXAMPLES=OFF",
20
+ ]
21
+
22
+ def publish(self, artifact, tools):
23
+ super().publish(artifact, tools)
24
+ artifact.environ.CMAKE_PREFIX_PATH.append(".")
25
+ artifact.cxxinfo.incpaths.append("include")
26
+ artifact.cxxinfo.libpaths.append("lib")
27
+ if self.system == "windows":
28
+ self.publish_windows(artifact, tools)
29
+ else:
30
+ self.publish_unix(artifact, tools)
31
+
32
+ def publish_unix(self, artifact, tools):
33
+ artifact.cxxinfo.libraries.append("z")
34
+ with tools.cwd(artifact.path, "lib"):
35
+ if self.shared:
36
+ for lib in tools.glob("*.a"):
37
+ tools.unlink(lib)
38
+ else:
39
+ for lib in tools.glob("*.so*") + tools.glob("*.dylib*"):
40
+ tools.unlink(lib)
41
+
42
+ def publish_windows(self, artifact, tools):
43
+ with tools.cwd(artifact.path, "lib"):
44
+ if self.shared:
45
+ artifact.cxxinfo.libraries.append("zlib")
46
+ for lib in tools.glob("zlibstatic.*"):
47
+ tools.unlink(lib)
48
+ else:
49
+ artifact.cxxinfo.libraries.append("zlibstatic")
50
+ for lib in tools.glob("zlib.*"):
51
+ tools.unlink(lib)
52
+
53
+
54
+ @attributes.requires("requires_git")
55
+ @attributes.system
56
+ @cmake.requires()
57
+ @cmake.use_ninja()
58
+ class ZlibNg(cmake.CMake):
59
+ name = "zlib-ng"
60
+ version = Parameter("2.3.2", help="Zlib version.")
61
+ shared = BooleanParameter(False, "Enable shared libraries.")
62
+ requires_git = ["git:url=https://github.com/zlib-ng/zlib-ng.git,rev={version}"]
63
+ srcdir = "{git[zlib-ng]}"
64
+ options = [
65
+ "BUILD_SHARED_LIBS={shared[ON,OFF]}",
66
+ "BUILD_TESTING=OFF",
67
+ ]
68
+
69
+ def publish(self, artifact, tools):
70
+ super().publish(artifact, tools)
71
+ artifact.environ.CMAKE_PREFIX_PATH.append(".")
72
+ artifact.cxxinfo.incpaths.append("include")
73
+ artifact.cxxinfo.libpaths.append("lib")
74
+ if self.system == "windows":
75
+ artifact.cxxinfo.libraries.append("zlibstatic-ng")
76
+ else:
77
+ artifact.cxxinfo.libraries.append("z-ng")
78
+
79
+
80
+ class VirtualZlib(Alias):
81
+ name = "virtual/zlib"
82
+ requires = ["zlib"]
83
+
84
+
85
+ TaskRegistry.get().add_task_class(Zlib)
86
+ TaskRegistry.get().add_task_class(ZlibNg)
87
+ TaskRegistry.get().add_task_class(VirtualZlib)
jolt/pkgs/zstd.py ADDED
@@ -0,0 +1,33 @@
1
+ from jolt import attributes, BooleanParameter, Parameter
2
+ from jolt.pkgs import cmake
3
+ from jolt.plugins import git, cmake
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.system
9
+ @cmake.requires()
10
+ @cmake.use_ninja()
11
+ class Zstd(cmake.CMake):
12
+ name = "zstd"
13
+ version = Parameter("ebc93b0", help="zstd version.")
14
+ shared = BooleanParameter(False, "Enable shared libraries.")
15
+ requires_git = ["git:url=https://github.com/facebook/zstd.git,rev={version}"]
16
+ srcdir = "{git[zstd]}"
17
+ options = [
18
+ "ZSTD_BUILD_SHARED={shared[ON,OFF]}",
19
+ "ZSTD_BUILD_STATIC={shared[OFF,ON]}",
20
+ "ZSTD_BUILD_TESTS=OFF",
21
+ ]
22
+
23
+ def publish(self, artifact, tools):
24
+ super().publish(artifact, tools)
25
+ artifact.cxxinfo.incpaths.append("include")
26
+ artifact.cxxinfo.libpaths.append("lib")
27
+ if self.system == "windows":
28
+ artifact.cxxinfo.libraries.append("zstd_static")
29
+ else:
30
+ artifact.cxxinfo.libraries.append("zstd")
31
+
32
+
33
+ TaskRegistry.get().add_task_class(Zstd)
jolt/plugins/alias.py CHANGED
@@ -8,6 +8,9 @@ log.verbose("[Alias] Loaded")
8
8
 
9
9
  _registry = tasks.TaskRegistry.get()
10
10
 
11
+ # Load task aliases from the configuration file
12
+ # and add them to the task registry.
13
+
11
14
  for key, value in config.options("alias"):
12
15
  class ConfigAlias(tasks.Alias):
13
16
  name = key
jolt/plugins/allure.py CHANGED
@@ -97,7 +97,7 @@ class Reporter(object):
97
97
  result.start = time.time() * 1000
98
98
  result.fullName = self._task.__class__.__name__ + "." + name
99
99
  result.testCaseId = utils.sha1(result.fullName)
100
- result.historyId = utils.sha1(self._task.identity + result.testCaseId)
100
+ result.historyId = utils.sha1(self._task.qualified_name + result.testCaseId)
101
101
  result.description = description
102
102
  result.labels.append(Label(name=LabelType.HOST, value=self._host))
103
103
  result.labels.append(Label(name=LabelType.THREAD, value=self._thread))
@@ -203,7 +203,7 @@ class AllureHooks(TaskHook):
203
203
  result.fullName = task.qualified_name
204
204
  result.description = task.task.__doc__
205
205
  result.testCaseId = utils.sha1(result.fullName)
206
- result.historyId = utils.sha1(task.identity + result.testCaseId)
206
+ result.historyId = utils.sha1(task.qualified_name + result.testCaseId)
207
207
  result.labels.append(Label(name=LabelType.HOST, value=host_tag()))
208
208
  result.labels.append(Label(name=LabelType.THREAD, value=thread_tag()))
209
209
  result.labels.append(Label(name=LabelType.FRAMEWORK, value='jolt'))
@@ -0,0 +1,66 @@
1
+ from jolt import Task, attributes
2
+
3
+
4
+ @attributes.common_metadata()
5
+ class Autotools(Task):
6
+ """ Base class for Autotools-based build tasks. """
7
+
8
+ abstract = True
9
+ """ This is an abstract base class that should be inherited by concrete tasks. """
10
+
11
+ incremental = True
12
+ """
13
+ Whether to use incremental builds.
14
+ If True, the build directories are preserved between runs.
15
+ """
16
+
17
+ options = []
18
+ """
19
+ Additional options to pass to the `./configure` script.
20
+ """
21
+
22
+ srcdir = None
23
+ """
24
+ Source directory for the Autotools project.
25
+
26
+ If None, defaults to the task work directory (joltdir).
27
+ """
28
+
29
+ def clean(self, tools):
30
+ at = tools.autotools(incremental=self.incremental)
31
+ at.clean()
32
+
33
+ def run(self, deps, tools):
34
+ self.deps = deps
35
+ options = tools.expand(self.options)
36
+ at = tools.autotools(deps, incremental=self.incremental)
37
+ at.configure(self.srcdir or self.joltdir, *options)
38
+ at.build()
39
+ at.install()
40
+
41
+ def publish(self, artifact, tools):
42
+ at = tools.autotools(incremental=self.incremental)
43
+ at.publish(artifact)
44
+
45
+
46
+ def requires(autoconf=True, automake=True, libtool=True):
47
+ """ Decorator to add Autotools requirements to a task. """
48
+
49
+ import jolt.pkgs.autoconf
50
+ import jolt.pkgs.automake
51
+ import jolt.pkgs.libtool
52
+
53
+ def decorate(cls):
54
+ if autoconf:
55
+ cls = attributes.requires("requires_autoconf")(cls)
56
+ cls.requires_autoconf = ["autoconf"]
57
+ if automake:
58
+ cls = attributes.requires("requires_automake")(cls)
59
+ cls.requires_automake = ["automake"]
60
+ if libtool:
61
+ cls = attributes.requires("requires_libtool")(cls)
62
+ cls.requires_libtool = ["libtool"]
63
+
64
+ return cls
65
+
66
+ return decorate