jolt 0.9.76__py3-none-any.whl → 0.9.429__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 (201) hide show
  1. jolt/__init__.py +88 -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 +839 -367
  6. jolt/chroot.py +156 -0
  7. jolt/cli.py +362 -143
  8. jolt/common_pb2.py +63 -0
  9. jolt/common_pb2_grpc.py +4 -0
  10. jolt/config.py +99 -42
  11. jolt/error.py +19 -4
  12. jolt/expires.py +2 -2
  13. jolt/filesystem.py +8 -6
  14. jolt/graph.py +705 -117
  15. jolt/hooks.py +63 -1
  16. jolt/influence.py +129 -6
  17. jolt/loader.py +369 -121
  18. jolt/log.py +225 -63
  19. jolt/manifest.py +28 -38
  20. jolt/options.py +35 -10
  21. jolt/pkgs/abseil.py +42 -0
  22. jolt/pkgs/asio.py +25 -0
  23. jolt/pkgs/autoconf.py +41 -0
  24. jolt/pkgs/automake.py +41 -0
  25. jolt/pkgs/b2.py +31 -0
  26. jolt/pkgs/boost.py +111 -0
  27. jolt/pkgs/boringssl.py +32 -0
  28. jolt/pkgs/busybox.py +39 -0
  29. jolt/pkgs/bzip2.py +43 -0
  30. jolt/pkgs/cares.py +29 -0
  31. jolt/pkgs/catch2.py +36 -0
  32. jolt/pkgs/cbindgen.py +17 -0
  33. jolt/pkgs/cista.py +19 -0
  34. jolt/pkgs/clang.py +44 -0
  35. jolt/pkgs/cli11.py +23 -0
  36. jolt/pkgs/cmake.py +48 -0
  37. jolt/pkgs/cpython.py +196 -0
  38. jolt/pkgs/crun.py +29 -0
  39. jolt/pkgs/curl.py +38 -0
  40. jolt/pkgs/dbus.py +18 -0
  41. jolt/pkgs/double_conversion.py +24 -0
  42. jolt/pkgs/fastfloat.py +21 -0
  43. jolt/pkgs/ffmpeg.py +28 -0
  44. jolt/pkgs/flatbuffers.py +29 -0
  45. jolt/pkgs/fmt.py +27 -0
  46. jolt/pkgs/fstree.py +20 -0
  47. jolt/pkgs/gflags.py +18 -0
  48. jolt/pkgs/glib.py +18 -0
  49. jolt/pkgs/glog.py +25 -0
  50. jolt/pkgs/glslang.py +21 -0
  51. jolt/pkgs/golang.py +16 -11
  52. jolt/pkgs/googlebenchmark.py +18 -0
  53. jolt/pkgs/googletest.py +46 -0
  54. jolt/pkgs/gperf.py +15 -0
  55. jolt/pkgs/grpc.py +73 -0
  56. jolt/pkgs/hdf5.py +19 -0
  57. jolt/pkgs/help2man.py +14 -0
  58. jolt/pkgs/inja.py +28 -0
  59. jolt/pkgs/jsoncpp.py +31 -0
  60. jolt/pkgs/libarchive.py +43 -0
  61. jolt/pkgs/libcap.py +44 -0
  62. jolt/pkgs/libdrm.py +44 -0
  63. jolt/pkgs/libedit.py +42 -0
  64. jolt/pkgs/libevent.py +31 -0
  65. jolt/pkgs/libexpat.py +27 -0
  66. jolt/pkgs/libfastjson.py +21 -0
  67. jolt/pkgs/libffi.py +16 -0
  68. jolt/pkgs/libglvnd.py +30 -0
  69. jolt/pkgs/libogg.py +28 -0
  70. jolt/pkgs/libpciaccess.py +18 -0
  71. jolt/pkgs/libseccomp.py +21 -0
  72. jolt/pkgs/libtirpc.py +24 -0
  73. jolt/pkgs/libtool.py +42 -0
  74. jolt/pkgs/libunwind.py +35 -0
  75. jolt/pkgs/libva.py +18 -0
  76. jolt/pkgs/libvorbis.py +33 -0
  77. jolt/pkgs/libxml2.py +35 -0
  78. jolt/pkgs/libxslt.py +17 -0
  79. jolt/pkgs/libyajl.py +16 -0
  80. jolt/pkgs/llvm.py +81 -0
  81. jolt/pkgs/lua.py +54 -0
  82. jolt/pkgs/lz4.py +26 -0
  83. jolt/pkgs/m4.py +14 -0
  84. jolt/pkgs/make.py +17 -0
  85. jolt/pkgs/mesa.py +81 -0
  86. jolt/pkgs/meson.py +17 -0
  87. jolt/pkgs/mstch.py +28 -0
  88. jolt/pkgs/mysql.py +60 -0
  89. jolt/pkgs/nasm.py +49 -0
  90. jolt/pkgs/ncurses.py +30 -0
  91. jolt/pkgs/ng_log.py +25 -0
  92. jolt/pkgs/ninja.py +45 -0
  93. jolt/pkgs/nlohmann_json.py +25 -0
  94. jolt/pkgs/nodejs.py +19 -11
  95. jolt/pkgs/opencv.py +24 -0
  96. jolt/pkgs/openjdk.py +26 -0
  97. jolt/pkgs/openssl.py +103 -0
  98. jolt/pkgs/paho.py +76 -0
  99. jolt/pkgs/patchelf.py +16 -0
  100. jolt/pkgs/perl.py +42 -0
  101. jolt/pkgs/pkgconfig.py +64 -0
  102. jolt/pkgs/poco.py +39 -0
  103. jolt/pkgs/protobuf.py +77 -0
  104. jolt/pkgs/pugixml.py +27 -0
  105. jolt/pkgs/python.py +19 -0
  106. jolt/pkgs/qt.py +35 -0
  107. jolt/pkgs/rapidjson.py +26 -0
  108. jolt/pkgs/rapidyaml.py +28 -0
  109. jolt/pkgs/re2.py +30 -0
  110. jolt/pkgs/re2c.py +17 -0
  111. jolt/pkgs/readline.py +15 -0
  112. jolt/pkgs/rust.py +41 -0
  113. jolt/pkgs/sdl.py +28 -0
  114. jolt/pkgs/simdjson.py +27 -0
  115. jolt/pkgs/soci.py +46 -0
  116. jolt/pkgs/spdlog.py +29 -0
  117. jolt/pkgs/spirv_llvm.py +21 -0
  118. jolt/pkgs/spirv_tools.py +24 -0
  119. jolt/pkgs/sqlite.py +83 -0
  120. jolt/pkgs/ssl.py +12 -0
  121. jolt/pkgs/texinfo.py +15 -0
  122. jolt/pkgs/tomlplusplus.py +22 -0
  123. jolt/pkgs/wayland.py +26 -0
  124. jolt/pkgs/x11.py +58 -0
  125. jolt/pkgs/xerces_c.py +20 -0
  126. jolt/pkgs/xorg.py +360 -0
  127. jolt/pkgs/xz.py +29 -0
  128. jolt/pkgs/yamlcpp.py +30 -0
  129. jolt/pkgs/zeromq.py +47 -0
  130. jolt/pkgs/zlib.py +69 -0
  131. jolt/pkgs/zstd.py +33 -0
  132. jolt/plugins/alias.py +3 -0
  133. jolt/plugins/allure.py +5 -2
  134. jolt/plugins/autotools.py +66 -0
  135. jolt/plugins/cache.py +133 -0
  136. jolt/plugins/cmake.py +74 -6
  137. jolt/plugins/conan.py +238 -0
  138. jolt/plugins/cxx.py +698 -0
  139. jolt/plugins/cxxinfo.py +7 -0
  140. jolt/plugins/dashboard.py +1 -1
  141. jolt/plugins/docker.py +91 -23
  142. jolt/plugins/email.py +5 -2
  143. jolt/plugins/email.xslt +144 -101
  144. jolt/plugins/environ.py +11 -0
  145. jolt/plugins/fetch.py +141 -0
  146. jolt/plugins/gdb.py +44 -21
  147. jolt/plugins/gerrit.py +1 -14
  148. jolt/plugins/git.py +316 -101
  149. jolt/plugins/googletest.py +522 -1
  150. jolt/plugins/http.py +36 -38
  151. jolt/plugins/libtool.py +63 -0
  152. jolt/plugins/linux.py +990 -0
  153. jolt/plugins/logstash.py +4 -4
  154. jolt/plugins/meson.py +61 -0
  155. jolt/plugins/ninja-compdb.py +107 -31
  156. jolt/plugins/ninja.py +929 -134
  157. jolt/plugins/paths.py +11 -1
  158. jolt/plugins/pkgconfig.py +219 -0
  159. jolt/plugins/podman.py +148 -91
  160. jolt/plugins/python.py +137 -0
  161. jolt/plugins/remote_execution/__init__.py +0 -0
  162. jolt/plugins/remote_execution/administration_pb2.py +46 -0
  163. jolt/plugins/remote_execution/administration_pb2_grpc.py +170 -0
  164. jolt/plugins/remote_execution/log_pb2.py +32 -0
  165. jolt/plugins/remote_execution/log_pb2_grpc.py +68 -0
  166. jolt/plugins/remote_execution/scheduler_pb2.py +41 -0
  167. jolt/plugins/remote_execution/scheduler_pb2_grpc.py +141 -0
  168. jolt/plugins/remote_execution/worker_pb2.py +38 -0
  169. jolt/plugins/remote_execution/worker_pb2_grpc.py +112 -0
  170. jolt/plugins/report.py +12 -2
  171. jolt/plugins/rust.py +25 -0
  172. jolt/plugins/scheduler.py +710 -0
  173. jolt/plugins/selfdeploy/setup.py +9 -4
  174. jolt/plugins/selfdeploy.py +138 -88
  175. jolt/plugins/strings.py +35 -22
  176. jolt/plugins/symlinks.py +26 -11
  177. jolt/plugins/telemetry.py +5 -2
  178. jolt/plugins/timeline.py +13 -3
  179. jolt/plugins/volume.py +46 -48
  180. jolt/scheduler.py +591 -191
  181. jolt/tasks.py +1783 -245
  182. jolt/templates/export.sh.template +12 -6
  183. jolt/templates/timeline.html.template +44 -47
  184. jolt/timer.py +22 -0
  185. jolt/tools.py +749 -302
  186. jolt/utils.py +245 -18
  187. jolt/version.py +1 -1
  188. jolt/version_utils.py +2 -2
  189. jolt/xmldom.py +12 -2
  190. {jolt-0.9.76.dist-info → jolt-0.9.429.dist-info}/METADATA +98 -38
  191. jolt-0.9.429.dist-info/RECORD +207 -0
  192. {jolt-0.9.76.dist-info → jolt-0.9.429.dist-info}/WHEEL +1 -1
  193. jolt/plugins/amqp.py +0 -834
  194. jolt/plugins/debian.py +0 -338
  195. jolt/plugins/ftp.py +0 -181
  196. jolt/plugins/ninja-cache.py +0 -64
  197. jolt/plugins/ninjacli.py +0 -271
  198. jolt/plugins/repo.py +0 -253
  199. jolt-0.9.76.dist-info/RECORD +0 -79
  200. {jolt-0.9.76.dist-info → jolt-0.9.429.dist-info}/entry_points.txt +0 -0
  201. {jolt-0.9.76.dist-info → jolt-0.9.429.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,69 @@
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
+ if self.shared:
29
+ artifact.cxxinfo.libraries.append("zlib")
30
+ else:
31
+ artifact.cxxinfo.libraries.append("zlibstatic")
32
+ else:
33
+ artifact.cxxinfo.libraries.append("z")
34
+
35
+
36
+ @attributes.requires("requires_git")
37
+ @attributes.system
38
+ @cmake.requires()
39
+ @cmake.use_ninja()
40
+ class ZlibNg(cmake.CMake):
41
+ name = "zlib-ng"
42
+ version = Parameter("2.3.2", help="Zlib version.")
43
+ shared = BooleanParameter(False, "Enable shared libraries.")
44
+ requires_git = ["git:url=https://github.com/zlib-ng/zlib-ng.git,rev={version}"]
45
+ srcdir = "{git[zlib-ng]}"
46
+ options = [
47
+ "BUILD_SHARED_LIBS={shared[ON,OFF]}",
48
+ "BUILD_TESTING=OFF",
49
+ ]
50
+
51
+ def publish(self, artifact, tools):
52
+ super().publish(artifact, tools)
53
+ artifact.environ.CMAKE_PREFIX_PATH.append(".")
54
+ artifact.cxxinfo.incpaths.append("include")
55
+ artifact.cxxinfo.libpaths.append("lib")
56
+ if self.system == "windows":
57
+ artifact.cxxinfo.libraries.append("zlibstatic-ng")
58
+ else:
59
+ artifact.cxxinfo.libraries.append("z-ng")
60
+
61
+
62
+ class VirtualZlib(Alias):
63
+ name = "virtual/zlib"
64
+ requires = ["zlib"]
65
+
66
+
67
+ TaskRegistry.get().add_task_class(Zlib)
68
+ TaskRegistry.get().add_task_class(ZlibNg)
69
+ 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'))
@@ -236,6 +236,9 @@ class AllureHooks(TaskHook):
236
236
  def task_failed(self, task):
237
237
  self._task_ended(task, Status.FAILED)
238
238
 
239
+ def task_unstable(self, task):
240
+ self.task_failed(task)
241
+
239
242
  def task_finished(self, task):
240
243
  self._task_ended(task, Status.PASSED)
241
244
 
@@ -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