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.

Potentially problematic release.


This version of jolt might be problematic. Click here for more details.

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/libcap.py ADDED
@@ -0,0 +1,44 @@
1
+ from jolt import attributes, Parameter, Task
2
+ from jolt.plugins import fetch
3
+ from jolt.tasks import TaskRegistry
4
+
5
+
6
+ @attributes.common_metadata()
7
+ @attributes.requires("requires_src")
8
+ class Libcap(Task):
9
+ name = "libcap"
10
+ version = Parameter("2.77", help="Libcap version.")
11
+ requires_src = ["git:url=https://git.kernel.org/pub/scm/libs/libcap/libcap.git,rev=libcap-{version}"]
12
+ srcdir = "{git[libcap]}"
13
+
14
+ def run(self, deps, tools):
15
+ self.installdir = tools.builddir("install")
16
+ with tools.cwd(self.srcdir):
17
+ tools.run("make -j {}", tools.cpu_count())
18
+ tools.run("make install DESTDIR={}", self.installdir)
19
+
20
+ # Patch pkgconfig files
21
+ with tools.cwd(self.installdir):
22
+ for pc in tools.glob("lib/pkgconfig/*.pc") + tools.glob("lib64/pkgconfig/*.pc"):
23
+ tools.replace_in_file(
24
+ pc,
25
+ "prefix=/usr",
26
+ "prefix=${{pcfiledir}}/../..",
27
+ )
28
+ tools.replace_in_file(
29
+ pc,
30
+ "libdir=/",
31
+ "libdir=${{prefix}}/"
32
+ )
33
+ tools.replace_in_file(
34
+ pc,
35
+ "includedir=/",
36
+ "includedir=${{prefix}}/"
37
+ )
38
+
39
+ def publish(self, artifact, tools):
40
+ with tools.cwd(self.installdir):
41
+ artifact.collect("*", symlinks=True)
42
+
43
+
44
+ TaskRegistry.get().add_task_class(Libcap)
jolt/pkgs/libdrm.py ADDED
@@ -0,0 +1,44 @@
1
+ from jolt import attributes, Parameter, BooleanParameter
2
+ from jolt.pkgs import libpciaccess, meson
3
+ from jolt.plugins import git, meson
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.requires("requires_{intel[intel,no_intel]}")
9
+ @meson.requires()
10
+ class Libdrm(meson.Meson):
11
+ name = "libdrm"
12
+ version = Parameter("2.4.131", help="Libdrm version.")
13
+
14
+ amdgpu = BooleanParameter(True, help="Enable AMD GPU support.")
15
+ etnaviv = BooleanParameter(True, help="Enable Etnaviv support.")
16
+ exynos = BooleanParameter(True, help="Enable Exynos support.")
17
+ freedreno = BooleanParameter(True, help="Enable Freedreno support.")
18
+ intel = BooleanParameter(True, help="Enable Intel support.")
19
+ nouveau = BooleanParameter(True, help="Enable Nouveau support.")
20
+ omap = BooleanParameter(True, help="Enable OMAP support.")
21
+ radeon = BooleanParameter(True, help="Enable Radeon support.")
22
+ tegra = BooleanParameter(True, help="Enable Tegra support.")
23
+ vc4 = BooleanParameter(True, help="Enable VC4 support.")
24
+ vmwgfx = BooleanParameter(True, help="Enable VMware graphics support.")
25
+
26
+ requires_git = ["git:url=https://gitlab.freedesktop.org/mesa/drm.git,rev=libdrm-{version}"]
27
+ requires_intel = ["libpciaccess"]
28
+ srcdir = "{git[drm]}"
29
+ options = [
30
+ "amdgpu={amdgpu[enabled,disabled]}",
31
+ "etnaviv={etnaviv[enabled,disabled]}",
32
+ "exynos={exynos[enabled,disabled]}",
33
+ "freedreno={freedreno[enabled,disabled]}",
34
+ "intel={intel[enabled,disabled]}",
35
+ "nouveau={nouveau[enabled,disabled]}",
36
+ "omap={omap[enabled,disabled]}",
37
+ "radeon={radeon[enabled,disabled]}",
38
+ "tegra={tegra[enabled,disabled]}",
39
+ "vc4={vc4[enabled,disabled]}",
40
+ "vmwgfx={vmwgfx[enabled,disabled]}",
41
+ ]
42
+
43
+
44
+ TaskRegistry.get().add_task_class(Libdrm)
jolt/pkgs/libedit.py ADDED
@@ -0,0 +1,42 @@
1
+ from jolt import attributes, BooleanParameter, Parameter
2
+ from jolt.pkgs import ncurses
3
+ from jolt.plugins import git, autotools, pkgconfig
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.requires("requires_ncurses")
9
+ @autotools.requires()
10
+ @pkgconfig.requires()
11
+ class Libedit(autotools.Autotools):
12
+ name = "libedit"
13
+ version = Parameter("20251016-3.1", help="Libedit version.")
14
+ shared = BooleanParameter(False, help="Build shared libraries.")
15
+ requires_git = ["fetch:alias=src,url=https://thrysoee.dk/editline/libedit-{version}.tar.gz"]
16
+ requires_ncurses = ["ncurses=ncurses:shared=true"] # No pkgconfig module without shared libs
17
+ srcdir = "{fetch[src]}/libedit-{version}"
18
+ options = [
19
+ "--disable-examples",
20
+ "--{shared[with,without]}-shared",
21
+ "--enable-pc-files",
22
+ "--with-pkg-config-libdir=/jolt-prefix/lib/pkgconfig",
23
+ ]
24
+
25
+ def run(self, deps, tools):
26
+ with tools.environ(
27
+ CFLAGS=tools.run("pkg-config --cflags ncurses").strip() + " " + tools.getenv("CFLAGS", ""),
28
+ LDFLAGS=tools.run("pkg-config --libs ncurses").strip() + " " + tools.getenv("LDFLAGS", ""),
29
+ ):
30
+ super().run(deps, tools)
31
+
32
+ def publish(self, artifact, tools):
33
+ super().publish(artifact, tools)
34
+ artifact.cxxinfo.incpaths.append("include")
35
+ artifact.cxxinfo.libpaths.append("lib")
36
+ artifact.cxxinfo.libraries.append("edit")
37
+ artifact.environ.CMAKE_PREFIX_PATH.append(".")
38
+ if self.shared:
39
+ artifact.environ.LD_LIBRARY_PATH.append("lib")
40
+
41
+
42
+ TaskRegistry.get().add_task_class(Libedit)
jolt/pkgs/libevent.py ADDED
@@ -0,0 +1,31 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.pkgs import cmake, openssl
3
+ from jolt.plugins import git, cmake, pkgconfig
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.requires("requires_ssl")
9
+ @cmake.requires()
10
+ @cmake.use_ninja()
11
+ @pkgconfig.requires()
12
+ class LibEvent(cmake.CMake):
13
+ name = "libevent"
14
+ version = Parameter("2.1.12", help="libevent version.")
15
+ options = ["CMAKE_POLICY_VERSION_MINIMUM=3.5"]
16
+ requires_git = ["git:url=https://github.com/libevent/libevent.git,rev=release-{version}-stable"]
17
+ requires_ssl = ["openssl"]
18
+ srcdir = "{git[libevent]}"
19
+
20
+ def publish(self, artifact, tools):
21
+ super().publish(artifact, tools)
22
+ with tools.cwd(artifact.path, "lib/cmake/libevent"):
23
+ for file in tools.glob("*.cmake"):
24
+ tools.replace_in_file(
25
+ file,
26
+ artifact.strings.install_prefix,
27
+ "${{CMAKE_CURRENT_LIST_DIR}}/../../..",
28
+ )
29
+
30
+
31
+ TaskRegistry.get().add_task_class(LibEvent)
jolt/pkgs/libexpat.py ADDED
@@ -0,0 +1,27 @@
1
+ from jolt import attributes, BooleanParameter, Parameter
2
+ from jolt.plugins import cmake, git
3
+ from jolt.tasks import TaskRegistry
4
+
5
+
6
+ @attributes.requires("requires_src")
7
+ @cmake.requires()
8
+ @cmake.use_ninja()
9
+ class Libexpat(cmake.CMake):
10
+ name = "libexpat"
11
+ version = Parameter("2.7.3", help="Expat version.")
12
+ shared = BooleanParameter(False, help="Build shared libraries")
13
+ version_tag = property(lambda self: str(self.version).replace('.', '_'))
14
+ requires_src = ["fetch:alias=src,url=https://github.com/libexpat/libexpat/releases/download/R_{version_tag}/expat-{version}.tar.gz"]
15
+ srcdir = "{fetch[src]}/expat-{version}"
16
+ options = [
17
+ "BUILD_SHARED_LIBS={shared[ON,OFF]}",
18
+ ]
19
+
20
+ def publish(self, artifact, tools):
21
+ super().publish(artifact, tools)
22
+ artifact.cxxinfo.incpaths.append("include")
23
+ artifact.cxxinfo.libpaths.append("lib")
24
+ artifact.cxxinfo.libraries.append("expat")
25
+
26
+
27
+ TaskRegistry.get().add_task_class(Libexpat)
@@ -0,0 +1,21 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.plugins import autotools, git, libtool, pkgconfig
3
+ from jolt.tasks import TaskRegistry
4
+
5
+
6
+ @attributes.requires("requires_git")
7
+ @autotools.requires(libtool=False)
8
+ @libtool.relocate()
9
+ @libtool.requires()
10
+ @pkgconfig.requires()
11
+ @pkgconfig.to_cxxinfo("libfastjson")
12
+ class Libfastjson(autotools.Autotools):
13
+ """ Builds and publishes liblibraries and headers. """
14
+
15
+ name = "libfastjson"
16
+ version = Parameter("1.2304.0", help="Libfastjson version.")
17
+ requires_git = ["git:url=https://github.com/rsyslog/libfastjson.git,rev=v{version}"]
18
+ srcdir = "{git[libfastjson]}"
19
+
20
+
21
+ TaskRegistry.get().add_task_class(Libfastjson)
jolt/pkgs/libffi.py ADDED
@@ -0,0 +1,16 @@
1
+ from jolt import attributes
2
+ from jolt.plugins import autotools, git
3
+ from jolt.tasks import TaskRegistry
4
+
5
+
6
+ @attributes.common_metadata()
7
+ @attributes.requires("requires_src")
8
+ @autotools.requires()
9
+ class Libffi(autotools.Autotools):
10
+ name = "libffi"
11
+ version = "3.5.2"
12
+ requires_src = ["git:clean=true,url=https://github.com/libffi/libffi.git,rev=v{version}"]
13
+ srcdir = "{git[libffi]}"
14
+
15
+
16
+ TaskRegistry.get().add_task_class(Libffi)
jolt/pkgs/libglvnd.py ADDED
@@ -0,0 +1,30 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.pkgs import x11
3
+ from jolt.tasks import TaskRegistry
4
+ from jolt.plugins import meson, git, pkgconfig
5
+
6
+
7
+ @attributes.arch
8
+ @attributes.requires("requires_git")
9
+ @attributes.requires("requires_glproto")
10
+ @attributes.requires("requires_x11")
11
+ @attributes.requires("requires_xext")
12
+ @meson.requires()
13
+ @pkgconfig.requires()
14
+ class Libglvnd(meson.Meson):
15
+ name = "libglvnd"
16
+ version = Parameter("1.7.0", help="libglvnd version.")
17
+
18
+ requires_git = ["git:url=https://github.com/NVIDIA/libglvnd.git,rev=v{version}"]
19
+ requires_glproto = ["glproto"]
20
+ requires_x11 = ["libx11"]
21
+ requires_xext = ["libxext"]
22
+ srcdir = "{git[libglvnd]}"
23
+
24
+ def publish(self, artifact, tools):
25
+ super().publish(artifact, tools)
26
+ artifact.environ.CMAKE_PREFIX_PATH.append(".")
27
+ artifact.environ.LD_LIBRARY_PATH.append("lib/{arch}-linux-gnu")
28
+
29
+
30
+ TaskRegistry.get().add_task_class(Libglvnd)
jolt/pkgs/libogg.py ADDED
@@ -0,0 +1,28 @@
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
+ @cmake.requires()
9
+ @cmake.use_ninja()
10
+ class Libogg(cmake.CMake):
11
+ name = "libogg"
12
+ version = Parameter("1.3.6", help="libogg version.")
13
+ shared = BooleanParameter(False, help="Build shared libraries.")
14
+ requires_git = ["git:url=https://github.com/xiph/ogg.git,rev=v{version}"]
15
+ srcdir = "{git[ogg]}"
16
+ options = [
17
+ "BUILD_SHARED_LIBS={shared[ON,OFF]}",
18
+ "CMAKE_POLICY_VERSION_MINIMUM=3.5",
19
+ ]
20
+
21
+ def publish(self, artifact, tools):
22
+ super().publish(artifact, tools)
23
+ artifact.cxxinfo.incpaths.append("include")
24
+ artifact.cxxinfo.libpaths.append("lib")
25
+ artifact.cxxinfo.libraries.append("ogg")
26
+
27
+
28
+ TaskRegistry.get().add_task_class(Libogg)
@@ -0,0 +1,18 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.pkgs import meson
3
+ from jolt.plugins import git, meson
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.requires("requires_zlib")
9
+ @meson.requires()
10
+ class Libpciaccess(meson.Meson):
11
+ name = "libpciaccess"
12
+ version = Parameter("0.18.1", help="pciaccess version.")
13
+ requires_git = ["git:url=https://gitlab.freedesktop.org/xorg/lib/libpciaccess.git,rev=libpciaccess-{version}"]
14
+ requires_zlib = ["zlib"]
15
+ srcdir = "{git[libpciaccess]}"
16
+
17
+
18
+ TaskRegistry.get().add_task_class(Libpciaccess)
@@ -0,0 +1,21 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.pkgs import gperf, libtool
3
+ from jolt.plugins import git, autotools, pkgconfig
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.requires("requires_gperf")
9
+ @attributes.requires("requires_libtool")
10
+ @pkgconfig.requires()
11
+ @pkgconfig.to_cxxinfo("libseccomp")
12
+ class Libseccomp(autotools.Autotools):
13
+ name = "libseccomp"
14
+ version = Parameter("2.5.6", help="libseccomp version.")
15
+ requires_git = ["git:url=https://github.com/seccomp/libseccomp.git,rev=v{version}"]
16
+ requires_gperf = ["gperf"]
17
+ requires_libtool = ["libtool"]
18
+ srcdir = "{git[libseccomp]}"
19
+
20
+
21
+ TaskRegistry.get().add_task_class(Libseccomp)
jolt/pkgs/libtirpc.py ADDED
@@ -0,0 +1,24 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.plugins import autotools, fetch
3
+ from jolt.tasks import TaskRegistry
4
+
5
+
6
+ @attributes.requires("requires_src")
7
+ @autotools.requires()
8
+ class Libtirpc(autotools.Autotools):
9
+ """Libtirpc package"""
10
+ name = "libtirpc"
11
+
12
+ version = Parameter("1.3.7", help="libtirpc version.")
13
+ requires_src = ["fetch:alias=src,url=https://downloads.sourceforge.net/project/libtirpc/libtirpc/1.3.7/libtirpc-1.3.7.tar.bz2"]
14
+ srcdir = "{fetch[src]}/libtirpc-{version}"
15
+ options = ["--disable-gssapi"]
16
+
17
+ def publish(self, artifact, tools):
18
+ super().publish(artifact, tools)
19
+ artifact.cxxinfo.incpaths.append("include")
20
+ artifact.cxxinfo.libpaths.append("lib")
21
+ artifact.cxxinfo.libraries.append("tirpc")
22
+
23
+
24
+ TaskRegistry.get().add_task_class(Libtirpc)
jolt/pkgs/libtool.py ADDED
@@ -0,0 +1,42 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.pkgs import help2man, texinfo
3
+ from jolt.plugins import autotools, git
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.requires("requires_help2man")
9
+ @attributes.requires("requires_texinfo")
10
+ @autotools.requires(libtool=False)
11
+ class Libtool(autotools.Autotools):
12
+ name = "libtool"
13
+ version = Parameter("2.6.0", help="Libtool version.")
14
+
15
+ requires_git = ["git:url=git://git.git.savannah.gnu.org/libtool.git,rev=v{version}"]
16
+ requires_help2man = ["help2man"]
17
+ requires_texinfo = ["texinfo"]
18
+ srcdir = "{git[libtool]}"
19
+
20
+ def run(self, deps, tools):
21
+ with tools.cwd("{git[libtool]}"):
22
+ tools.run("./bootstrap")
23
+ super().run(deps, tools)
24
+
25
+ def publish(self, artifact, tools):
26
+ super().publish(artifact, tools)
27
+ artifact.environ.LIBTOOL = "libtool"
28
+ artifact.environ.ACLOCAL_PATH.append("share/libtool")
29
+
30
+ def unpack(self, artifact, tools):
31
+ with tools.cwd(artifact.path):
32
+ tools.replace_in_file(
33
+ "bin/libtoolize",
34
+ artifact.strings.install_prefix,
35
+ artifact.path)
36
+ tools.replace_in_file(
37
+ "lib/libltdl.la",
38
+ artifact.strings.install_prefix,
39
+ artifact.path)
40
+
41
+
42
+ TaskRegistry.get().add_task_class(Libtool)
jolt/pkgs/libunwind.py ADDED
@@ -0,0 +1,35 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.plugins import git, autotools, pkgconfig
3
+ from jolt.tasks import TaskRegistry
4
+
5
+
6
+ @attributes.requires("requires_git")
7
+ @attributes.arch
8
+ @attributes.system
9
+ @autotools.requires()
10
+ @pkgconfig.to_cxxinfo(["libunwind", "libunwind-generic", "libunwind-coredump", "libunwind-ptrace", "libunwind-setjmp"])
11
+ class LibUnwind(autotools.Autotools):
12
+ name = "libunwind"
13
+ version = Parameter("1.8.3", help="libunwind version.")
14
+ options = ["--disable-tests"]
15
+ requires_git = ["git:url=https://github.com/libunwind/libunwind.git,rev=v{version}"]
16
+ srcdir = "{git[libunwind]}"
17
+
18
+ def run(self, deps, tools):
19
+ with tools.environ(TARGET="{target}"):
20
+ super().run(deps, tools)
21
+
22
+ @property
23
+ def target(self):
24
+ platform = self.tools.expand("{system}-{arch}")
25
+ if platform == "linux-x86_64":
26
+ return "x86_64-linux-gnu"
27
+ elif platform == "linux-aarch64":
28
+ return "aarch64-linux-gnu"
29
+ elif platform == "linux-arm":
30
+ return "arm-linux-gnueabihf"
31
+ else:
32
+ self.error(f"Unsupported platform: {platform}")
33
+
34
+
35
+ TaskRegistry.get().add_task_class(LibUnwind)
jolt/pkgs/libva.py ADDED
@@ -0,0 +1,18 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.pkgs import libdrm, meson
3
+ from jolt.plugins import git, meson
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.requires("requires_libdrm")
9
+ @meson.requires()
10
+ class Libva(meson.Meson):
11
+ name = "libva"
12
+ version = Parameter("2.16.0", help="Libva version.")
13
+ requires_git = ["git:url=https://github.com/intel/libva.git,rev={version}"]
14
+ requires_libdrm = ["libdrm"]
15
+ srcdir = "{git[libva]}"
16
+
17
+
18
+ TaskRegistry.get().add_task_class(Libva)
jolt/pkgs/libvorbis.py ADDED
@@ -0,0 +1,33 @@
1
+ from jolt import attributes, BooleanParameter, Parameter
2
+ from jolt.pkgs import cmake, libogg
3
+ from jolt.plugins import git, cmake, pkgconfig
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.requires("requires_ogg")
9
+ @cmake.requires()
10
+ @cmake.use_ninja()
11
+ @pkgconfig.requires()
12
+ class Libvorbis(cmake.CMake):
13
+ name = "libvorbis"
14
+ version = Parameter("1.3.7", help="libvorbis version.")
15
+ shared = BooleanParameter(False, help="Build shared libraries.")
16
+ requires_git = ["git:url=https://github.com/xiph/vorbis.git,rev=v{version}"]
17
+ requires_ogg = ["libogg"]
18
+ srcdir = "{git[vorbis]}"
19
+ options = [
20
+ "BUILD_SHARED_LIBS={shared[ON,OFF]}",
21
+ "CMAKE_POLICY_VERSION_MINIMUM=3.5",
22
+ ]
23
+
24
+ def publish(self, artifact, tools):
25
+ super().publish(artifact, tools)
26
+ artifact.cxxinfo.incpaths.append("include")
27
+ artifact.cxxinfo.libpaths.append("lib")
28
+ artifact.cxxinfo.libraries.append("vorbis")
29
+ artifact.cxxinfo.libraries.append("vorbisenc")
30
+ artifact.cxxinfo.libraries.append("vorbisfile")
31
+
32
+
33
+ TaskRegistry.get().add_task_class(Libvorbis)
jolt/pkgs/libxml2.py ADDED
@@ -0,0 +1,35 @@
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 Libxml2(cmake.CMake):
12
+ name = "libxml2"
13
+ version = Parameter("2.15.1", help="Libxml2 version.")
14
+ shared = BooleanParameter(False, "Enable shared libraries.")
15
+ requires_git = ["git:url=https://gitlab.gnome.org/GNOME/libxml2.git,rev=v{version}"]
16
+
17
+ srcdir = "{git[libxml2]}"
18
+ options = [
19
+ "BUILD_SHARED_LIBS={shared[ON,OFF]}",
20
+ "LIBXML2_WITH_ICONV=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("libxml2{shared[,s]}")
29
+ else:
30
+ artifact.cxxinfo.libraries.append("xml2")
31
+ artifact.cxxinfo.libraries.append("m")
32
+ artifact.cxxinfo.libraries.append("dl")
33
+
34
+
35
+ TaskRegistry.get().add_task_class(Libxml2)
jolt/pkgs/libxslt.py ADDED
@@ -0,0 +1,17 @@
1
+ from jolt import attributes, Parameter
2
+ from jolt.pkgs import cmake, libxml2
3
+ from jolt.plugins import cmake, git
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ @attributes.requires("requires_git")
8
+ @attributes.requires("requires_libxml2")
9
+ class Libxslt(cmake.CMake):
10
+ name = "libxslt"
11
+ version = Parameter("1.1.45", help="libxslt version.")
12
+ requires_git = ["git:url=https://gitlab.gnome.org/GNOME/libxslt.git,rev=v{version}"]
13
+ requires_libxml2 = ["libxml2"]
14
+ srcdir = "{git[libxslt]}"
15
+
16
+
17
+ TaskRegistry.get().add_task_class(Libxslt)
jolt/pkgs/libyajl.py ADDED
@@ -0,0 +1,16 @@
1
+ from jolt import attributes, 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
+ @cmake.requires(version="3.31.1")
9
+ class Libyajl(cmake.CMake):
10
+ name = "libyajl"
11
+ version = Parameter("2.1.0", help="libyajl version.")
12
+ requires_git = ["git:url=https://github.com/lloyd/yajl.git,rev={version}"]
13
+ srcdir = "{git[yajl]}"
14
+
15
+
16
+ TaskRegistry.get().add_task_class(Libyajl)
jolt/pkgs/llvm.py ADDED
@@ -0,0 +1,81 @@
1
+ from jolt import Alias, BooleanParameter, Download, ListParameter, Parameter, Task, attributes
2
+ from jolt.pkgs import cmake, ninja
3
+ from jolt.plugins import git, cmake
4
+ from jolt.tasks import TaskRegistry
5
+
6
+
7
+ VERSION = "21.1.8"
8
+
9
+
10
+ @attributes.common_metadata()
11
+ class LLVMFromBin(Download):
12
+ name = "llvm/bin"
13
+ version = Parameter("21.1.0", help="LLVM version.")
14
+ url = [
15
+ "https://github.com/llvm/llvm-project/releases/download/llvmorg-{version}/LLVM-{version}-Linux-X64.tar.xz"
16
+ ]
17
+
18
+ collect = [{"files": "*", "cwd": "LLVM-{version}-Linux-X64"}]
19
+
20
+
21
+ @attributes.requires("requires_git")
22
+ @attributes.requires("requires_ninja")
23
+ @cmake.requires()
24
+ @cmake.use_ninja()
25
+ class LLVMFromSrc(cmake.CMake):
26
+ name = "llvm/src"
27
+
28
+ projects = ListParameter(
29
+ ["clang", "clang-tools-extra", "lld", "libclc"],
30
+ values=[
31
+ "clang",
32
+ "clang-tools-extra",
33
+ "lld",
34
+ "libclc",
35
+ "libcxx",
36
+ "libcxxabi",
37
+ "compiler-rt",
38
+ "openmp",
39
+ "polly",
40
+ ],
41
+ help="LLVM projects to build.",
42
+ )
43
+ release = BooleanParameter(True, help="Build a release version.")
44
+ rtti = BooleanParameter(True, help="Enable RTTI support.")
45
+ targets = ListParameter(
46
+ ["X86", "ARM", "AArch64", "RISCV", "AMDGPU"],
47
+ values=["X86", "AMDGPU", "ARM", "AArch64", "RISCV", "Mips", "PowerPC", "SystemZ"],
48
+ help="LLVM targets to build.",
49
+ )
50
+ version = Parameter(VERSION, help="LLVM version.")
51
+
52
+ requires_ninja = ["ninja"]
53
+ requires_git = ["git:url=https://github.com/llvm/llvm-project.git,rev=llvmorg-{version}"]
54
+
55
+ options = [
56
+ "CMAKE_BUILD_TYPE={release[Release,Debug]}",
57
+ "LLVM_ENABLE_PROJECTS='{_projects_str}'",
58
+ "LLVM_TARGETS_TO_BUILD='{_targets_str}'",
59
+ "LLVM_ENABLE_RTTI={rtti[ON,OFF]}",
60
+ ]
61
+
62
+ srcdir = "{git[llvm-project]}/llvm"
63
+
64
+ @property
65
+ def _projects_str(self):
66
+ return ";".join(self.projects)
67
+
68
+ @property
69
+ def _targets_str(self):
70
+ return ";".join(self.targets)
71
+
72
+
73
+ class LLVM(Alias):
74
+ name = "llvm"
75
+ version = Parameter(VERSION, help="LLVM version.")
76
+ requires = ["llvm/src:version={version},release=true"]
77
+
78
+
79
+ TaskRegistry.get().add_task_class(LLVMFromBin)
80
+ TaskRegistry.get().add_task_class(LLVMFromSrc)
81
+ TaskRegistry.get().add_task_class(LLVM)