projects/guix·blob python-team · refs

932 lines · 34.2 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2022 Maya Tomasek <[email protected]>
3;;; Copyright © 2023 Ekaitz Zarraga <[email protected]>
4;;; Copyright © 2023 Felix Lechner <[email protected]>
5;;; Copyright © 2024 Justin Veilleux <[email protected]>
6;;; Copyright © 2025 Ashvith Shetty <[email protected]>
7;;; Copyright © 2025 Meredith Oleander <[email protected]>
8;;; Copyright © 2025 Raven Hallsby <[email protected]>
9;;;
10;;; This file is part of GNU Guix.
11;;;
12;;; GNU Guix is free software; you can redistribute it and/or modify it
13;;; under the terms of the GNU General Public License as published by
14;;; the Free Software Foundation; either version 3 of the License, or (at
15;;; your option) any later version.
16;;;
17;;; GNU Guix is distributed in the hope that it will be useful, but
18;;; WITHOUT ANY WARRANTY; without even the implied warranty of
19;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20;;; GNU General Public License for more details.
21;;;
22;;; You should have received a copy of the GNU General Public License
23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
24
25(define-module (gnu packages zig-xyz)
26 #:use-module (ice-9 match)
27 #:use-module (guix packages)
28 #:use-module (guix git-download)
29 #:use-module ((guix licenses) #:prefix license:)
30 #:use-module (guix build-system gnu)
31 #:use-module (guix build-system zig)
32 #:use-module (guix gexp)
33 #:use-module (guix utils)
34 #:use-module (gnu packages)
35 #:use-module (gnu packages freedesktop)
36 #:use-module (gnu packages man)
37 #:use-module (gnu packages linux)
38 #:use-module (gnu packages pkg-config)
39 #:use-module (gnu packages python)
40 #:use-module (gnu packages version-control)
41 #:use-module (gnu packages window-management)
42 #:use-module (gnu packages xdisorg)
43 #:use-module (gnu packages xorg)
44 #:use-module (gnu packages zig))
45
46(define-public poop
47 (package
48 (name "poop")
49 (version "0.5.0")
50 (source
51 (origin
52 (method git-fetch)
53 (uri (git-reference
54 (url "https://github.com/andrewrk/poop")
55 (commit version)))
56 (file-name (git-file-name name version))
57 (sha256
58 (base32 "1m296ly3159gkbf33zziqarx2wxh0lmkydky440inbn46kyr3fnf"))))
59 (build-system zig-build-system)
60 (arguments
61 (list #:install-source? #f
62 #:tests? #f ; There are no tests.
63 #:zig-release-type "safe"))
64 (home-page "https://github.com/andrewrk/poop")
65 (synopsis "Performance Optimizer Observation Platform")
66 (description
67 "POOP (Performance Optimizer Observation Platform) is a command line tool
68that uses Linux's @code{perf_event_open} functionality to compare the
69performance of multiple commands with a colorful terminal user interface.")
70 (license license:expat)))
71
72(define-public river
73 (package
74 (name "river")
75 (version "0.4.8")
76 (source
77 (origin
78 (method git-fetch)
79 (uri (git-reference
80 (url "https://codeberg.org/river/river")
81 (commit (string-append "v" version))))
82 (file-name (git-file-name name version))
83 (sha256
84 (base32 "0xj31k5hjdll01rq0z47r61whc3zcv0krwcfczcdhx9cvp4qd8xy"))))
85 (build-system zig-build-system)
86 (arguments
87 (list #:zig zig-0.16
88 #:install-source? #f
89 #:zig-release-type "safe"
90 #:zig-build-flags
91 #~(list "-Dpie" "-Dxwayland"
92 ;; Explicitly provide paths to C libraries for translate-c
93 ;; to be able to discover the header files
94 ;; during the build.
95 "--search-prefix" #$(or (this-package-input "libinput")
96 (this-package-input "libinput-minimal"))
97 "--search-prefix" #$(this-package-input "eudev"))
98 #:phases
99 #~(modify-phases %standard-phases
100 (add-after 'unpack 'fix-path
101 (lambda _
102 (substitute* "build.zig"
103 (("/bin/sh") (which "sh")))))
104 (add-after 'unpack 'prepare-build.zig.zon
105 (lambda _
106 (substitute* "build.zig.zon"
107 (("\\.pixman") ".@\"zig-pixman\"")
108 (("\\.translate_c") ".@\"zig-translate-c\"")
109 (("\\.wayland") ".@\"zig-wayland\"")
110 (("\\.wlroots") ".@\"zig-wlroots\"")
111 (("\\.xkbcommon") ".@\"zig-xkbcommon\""))))
112 (add-before 'build 'revert-build.zig.zon
113 (lambda _
114 (substitute* "build.zig.zon"
115 (("\\.@\"zig-pixman\"") ".pixman")
116 (("\\.@\"zig-translate-c\"") ".translate_c")
117 (("\\.@\"zig-wayland\"") ".wayland")
118 (("\\.@\"zig-wlroots\"") ".wlroots")
119 (("\\.@\"zig-xkbcommon\"") ".xkbcommon"))))
120 (add-after 'install 'install-wayland-session
121 (lambda _
122 (let ((wayland-sessions
123 (string-append #$output "/share/wayland-sessions")))
124 (mkdir-p wayland-sessions)
125 (install-file "contrib/river.desktop"
126 wayland-sessions)))))))
127 (inputs
128 (list libevdev
129 eudev
130 zig-translate-c
131 zig-wayland
132 zig-wlroots
133 zig-xkbcommon
134 libinput-minimal))
135 (native-inputs
136 (list pkg-config
137 scdoc))
138 (home-page "https://isaacfreund.com/software/river/")
139 (synopsis "Dynamic tiling Wayland compositor")
140 (description
141 "River is a dynamic tiling Wayland compositor with flexible
142runtime configuration. It can run nested in an X11/Wayland session or also
143directly from a tty using KMS/DRM.")
144 (license license:gpl3)))
145
146(define-public river-classic
147 (package
148 (inherit river)
149 (name "river-classic")
150 (version "0.3.17")
151 (source
152 (origin
153 (method git-fetch)
154 (uri (git-reference
155 (url "https://codeberg.org/river/river-classic")
156 (commit (string-append "v" version))))
157 (file-name (git-file-name name version))
158 (sha256
159 (base32 "0l3zyjfkjqhdfr29wzdnqwrbr2miczzij30ryg0j38md0zfalrzq"))))
160 (inputs
161 (modify-inputs inputs
162 (replace "zig-xkbcommon" zig-xkbcommon-0.3)))
163 (home-page "https://codeberg.org/river/river-classic")
164 (synopsis "Dynamic tiling Wayland compositor")
165 (description
166 "River is a dynamic tiling Wayland compositor with flexible
167runtime configuration. It can run nested in an X11/Wayland session or also
168directly from a tty using KMS/DRM. This package provides the classic version,
169which continues the work on River 0.3.")
170 (license license:gpl3)))
171
172(define-public tigerbeetle
173 ;; Keep in sync with upstream release note.
174 (let ((commit "af6cebb66578481b507bf351c0ddb19cfa038cc3")
175 (min-release "0.16.4"))
176 (package
177 (name "tigerbeetle")
178 (version "0.16.41")
179 (source
180 (origin
181 (method git-fetch)
182 (uri (git-reference
183 (url "https://github.com/tigerbeetledb/tigerbeetle")
184 (commit version)))
185 (file-name (git-file-name name version))
186 (sha256
187 (base32 "13c2y89ksdmnh8g666s0rlchwby860i5lvsvdrgj685222jdch2l"))))
188 (build-system zig-build-system)
189 (arguments
190 (list
191 #:zig zig-0.13
192 #:test-target "test:unit"
193 #:install-source? #f
194 #:zig-release-type "safe"
195 ;; Exact value required in build.zig.
196 #:zig-build-target
197 (match (or (%current-target-system)
198 (%current-system))
199 ((? target-x86-64?)
200 "x86_64-linux")
201 ((? target-aarch64?)
202 "aarch64-linux")
203 (_ ""))
204 #:zig-build-flags
205 #~(list
206 (string-append "-Dconfig-release=" #$(package-version this-package))
207 (string-append "-Dconfig-release-client-min=" #$min-release)
208 (string-append "-Dgit-commit=" #$commit))
209 #:zig-test-flags
210 #~(list (string-append "-Dgit-commit=" #$commit))
211 #:phases
212 #~(modify-phases %standard-phases
213 (add-before 'check 'prepare-test-suite
214 (lambda _
215 (substitute* "src/unit_tests.zig"
216 ;; Expects git repository.
217 ((".*tidy.zig.*") "")))))))
218 (synopsis "Distributed financial accounting database")
219 (description "TigerBeetle is a financial accounting database designed for
220mission-critical safety and performance for financial services.")
221 (home-page "https://github.com/tigerbeetledb/tigerbeetle")
222 (supported-systems '("aarch64-linux" "x86_64-linux"))
223 (license license:asl2.0))))
224
225(define-public waylock
226 (package
227 (name "waylock")
228 (version "1.6.0")
229 (source
230 (origin
231 (method git-fetch)
232 (uri (git-reference
233 (url "https://codeberg.org/ifreund/waylock")
234 (commit (string-append "v" version))))
235 (file-name (git-file-name name version))
236 (sha256
237 (base32 "1ymdibva88n6j0rzjb6z212sdf59mzm1lm25k2grzm17ia1czx83"))))
238 (build-system zig-build-system)
239 (arguments
240 (list
241 #:zig zig-0.16
242 #:install-source? #f
243 ;; No tests.
244 #:tests? #f
245 #:zig-release-type "safe"
246 #:zig-build-flags
247 #~(list "-Dpie"
248 ;; Needed to build for aarch64 on 1.6.0.
249 ;; TODO: remove with next release.
250 "-Dllvm")))
251 (inputs (list linux-pam zig-wayland zig-xkbcommon-0.3))
252 (native-inputs (list pkg-config scdoc))
253 (home-page "https://codeberg.org/ifreund/waylock")
254 (synopsis "Wayland screen locker")
255 (description
256 "Waylock is a small screen locker for Wayland compositors implementing the
257@code{ext-session-lock-v1} protocol.")
258 (license license:expat)))
259
260(define-public zig-arocc
261 ;; This is on a commit that is required by zig-translate-c.
262 ;; No releases as of yet.
263 (let ((commit "5f5a050569a95ecc40a426f0c3666ae7ef987ede")
264 (revision "0")
265 (gcc-toolchain* (delay (module-ref (resolve-interface
266 '(gnu packages commencement))
267 'gcc-toolchain))))
268 (package
269 (name "zig-arocc")
270 (version (git-version "0.0.1" revision commit))
271 (source
272 (origin
273 (method git-fetch)
274 (uri (git-reference
275 (url "https://github.com/Vexu/arocc")
276 (commit commit)))
277 (file-name (git-file-name name version))
278 (sha256
279 (base32 "073ky6pbs9z9v0vnjs972pxvrhx5jja0g31hv6d4irdifm4p9ikz"))))
280 (build-system zig-build-system)
281 (arguments
282 (list #:zig zig-0.16
283 #:tests? #f ;; XXX: Make tests pass.
284 #:zig-build-flags
285 #~(list (string-append "-Dgcc-install-prefix="
286 #$(this-package-input "gcc-toolchain"))
287 ;; The binary produced with the default backend
288 ;; is not reproducible, due to mismatched symbols.
289 "-Dllvm")))
290 (inputs (list (force gcc-toolchain*)))
291 (home-page "https://github.com/Vexu/arocc")
292 (synopsis "C compiler written in Zig")
293 (description "Aro is a C compiler written in Zig with a complete
294implementation of multiple C standards.")
295 (license license:expat))))
296
297(define-public zig-clap
298 (package
299 (name "zig-clap")
300 (version "0.9.1")
301 (source
302 (origin
303 (method git-fetch)
304 (uri (git-reference
305 (url "https://github.com/Hejsil/zig-clap")
306 (commit version)))
307 (file-name (git-file-name name version))
308 (sha256
309 (base32 "1xjskvyib3kai3nmp574zfm07yvjsbzsxfysj96ss9339nq07ix6"))))
310 (build-system zig-build-system)
311 (home-page "https://github.com/Hejsil/zig-clap")
312 (synopsis "Command line argument parsing library")
313 (description
314 "@code{clap} is a simple and easy to use command line argument parser
315library for Zig.")
316 (license license:expat)))
317
318(define-public zig-lsp-codegen
319 (let ((commit "063a98c13a2293d8654086140813bdd1de6501bc")
320 (revision "0"))
321 (package
322 (name "zig-lsp-codegen")
323 (version (git-version "0.1.0" revision commit))
324 (source
325 (origin
326 (method git-fetch)
327 (uri (git-reference
328 (url "https://github.com/zigtools/zig-lsp-codegen")
329 (commit commit)))
330 (file-name (git-file-name name version))
331 (sha256
332 (base32 "041lk25x050pz7yc781fn8bfpzci4kdrz8mw69sjs2f5mpyn4d1b"))))
333 (build-system zig-build-system)
334 (arguments (list #:zig zig-0.14))
335 (home-page "https://zigtools.github.io/zig-lsp-codegen/")
336 (synopsis "Generate @code{std.json} compatible Zig code")
337 (description
338 "This package provides a Zig library to generate @code{std.json}
339compatible Zig code based on the @acronym{LSP, Language Server Protocol} meta
340model.")
341 (license license:expat))))
342
343(define-public zig-lsp-kit-for-zig-0.15
344 ;; Use the latest commit from the 0.15.x branch.
345 (let ((commit "421ae644f53bd788e3699b5fc22b3e07b161e2b6")
346 (revision "0"))
347 (package
348 (name "zig-lsp-kit")
349 (version (git-version "0.1.0" revision commit))
350 (source
351 (origin
352 (method git-fetch)
353 (uri (git-reference
354 (url "https://github.com/zigtools/lsp-kit")
355 (commit commit)))
356 (file-name (git-file-name name version))
357 (sha256
358 (base32 "0bm011zi7m1vbj3lss8h68v1gzhy45c06ff4r7mdaf34kwqax0ir"))))
359 (build-system zig-build-system)
360 (arguments (list #:skip-build? #t))
361 (home-page "https://zigtools.github.io/lsp-kit/")
362 (synopsis "Develop Language Server Protocol implementations in Zig")
363 (description
364 "Zig @acronym{LSP, Language Server Protocol} Kit provides the necessary
365building blocks to develop LSP implementations in Zig.")
366 (license license:expat))))
367
368;;; TODO: Remove after 2027-01-16.
369(define-deprecated-package zig-lsp-kit-for-zls-0.15
370 zig-lsp-kit-for-zig-0.15)
371
372(define-public zig-lsp-kit-for-zig-0.16
373 (let ((commit "cf0ff08ac00301859656bbd4a5af6fcb889497e4")
374 (revision "0"))
375 (package
376 (inherit zig-lsp-kit-for-zig-0.15)
377 (name "zig-lsp-kit")
378 (version (git-version "0.1.0" revision commit))
379 (source
380 (origin
381 (method git-fetch)
382 (uri (git-reference
383 (url "https://github.com/zigtools/lsp-kit")
384 (commit commit)))
385 (file-name (git-file-name name version))
386 (sha256
387 (base32 "0nf4yb6sndgv18iqrysqw4iba7srwyicqwfpij6bl2h4xsbnxqnk")))))))
388
389(define-public zig-diffz
390 (let ((commit "420fcb22306ffd4c9c3c761863dfbb6bdbb18a73")
391 (revision "0"))
392 (package
393 (name "zig-diffz")
394 (version (git-version "0.0.1" revision commit))
395 (source (origin
396 (method git-fetch)
397 (uri (git-reference
398 (url "https://github.com/ziglibs/diffz")
399 (commit commit)))
400 (file-name (git-file-name name version))
401 (sha256
402 (base32
403 "0rbcprl2c1kbd7xfwdqycz8r5grm069fcy6fafi14cnak77i0xyi"))))
404 (build-system zig-build-system)
405 (arguments (list #:skip-build? #t))
406 (synopsis "Implementation of go-diff's diffmatchpatch in Zig")
407 (description
408 "This package provides a Zig implementation of @code{diffmatchpatch} in
409@code{go-github-com-sergi-go-diff}.")
410 (home-page "https://github.com/ziglibs/diffz")
411 (license license:expat))))
412
413(define-public zig-diffz-for-zig-zls-0.14
414 (let ((commit "ef45c00d655e5e40faf35afbbde81a1fa5ed7ffb")
415 (revision "1"))
416 (package
417 (inherit zig-diffz)
418 (name "zig-diffz")
419 (version (git-version "0.0.1" revision commit))
420 (source (origin
421 (method git-fetch)
422 (uri (git-reference
423 (url "https://github.com/ziglibs/diffz")
424 (commit commit)))
425 (file-name (git-file-name name version))
426 (sha256
427 (base32
428 "0ah1m8mjqjc2szl5lx62zqj69irkbb3y245z14pknikxgg8xdzg7")))))))
429
430(define-public zig-diffz-for-zls-0.15
431 (let ((commit "a20dd1f11b10819a6f570f98b42e1c91e3704357")
432 (revision "0"))
433 (package
434 (inherit zig-diffz)
435 (name "zig-diffz")
436 (version (git-version "0.0.1" revision commit))
437 (source (origin
438 (method git-fetch)
439 (uri (git-reference
440 (url "https://github.com/ziglibs/diffz")
441 (commit commit)))
442 (file-name (git-file-name name version))
443 (sha256
444 (base32
445 "1qz7jqdh4f5dcrzkxipdmsgkfs37k450r9gm7ik7r72dfvjs9c6b")))))))
446
447(define-public zig-diffz-for-zls-0.16
448 (let ((commit "b39fe07e7fdbcf56e43ba2890b9f484f16969f90")
449 (revision "0"))
450 (package
451 (inherit zig-diffz)
452 (name "zig-diffz")
453 (version (git-version "0.0.1" revision commit))
454 (source (origin
455 (method git-fetch)
456 (uri (git-reference
457 (url "https://github.com/ziglibs/diffz")
458 (commit commit)))
459 (file-name (git-file-name name version))
460 (sha256
461 (base32
462 "0ismvmi82m0l9cdp5kgd4n94l0pgba0r4mfpn061d839f4wils4s")))))))
463
464(define-public zig-known-folders
465 (let ((commit "1cceeb70e77dec941a4178160ff6c8d05a74de6f")
466 (revision "0"))
467 (package
468 (name "zig-known-folders")
469 (version (git-version "0.7.0" revision commit))
470 (source (origin
471 (method git-fetch)
472 (uri (git-reference
473 (url "https://github.com/ziglibs/known-folders")
474 (commit commit)))
475 (file-name (git-file-name name version))
476 (sha256
477 (base32
478 "1kr58ragd6nk29ps0fwc4r3zxv2javkiq4vny4zwx6wqqid98nld"))))
479 (build-system zig-build-system)
480 (synopsis "Zig library to access well-known folders")
481 (description
482 "This package provides a Zig library for accessing well-known folders
483across several operating systems.")
484 (home-page "https://github.com/ziglibs/known-folders")
485 (license license:expat))))
486
487(define-public zig-known-folders-for-zig-0.14
488 (let ((commit "aa24df42183ad415d10bc0a33e6238c437fc0f59")
489 (revision "1")
490 (base zig-known-folders))
491 (package
492 (inherit base)
493 (name "zig-known-folders")
494 (version (git-version "0.7.0" revision commit))
495 (source
496 (origin
497 (method git-fetch)
498 (uri (git-reference
499 (url "https://github.com/ziglibs/known-folders")
500 (commit commit)))
501 (file-name (git-file-name name version))
502 (sha256
503 (base32 "1ilq3hqprrwpbz7ckp01g4ksl41jq57rd7zf622w3immy6apc8k2"))))
504 (arguments
505 (substitute-keyword-arguments arguments
506 ((#:zig _ #f) zig-0.14))))))
507
508(define-public zig-known-folders-for-zig-0.15
509 (let ((commit "83d39161eac2ed6f37ad3cb4d9dd518696ce90bb")
510 (revision "0")
511 (base zig-known-folders))
512 (package
513 (inherit base)
514 (name "zig-known-folders")
515 (version (git-version "0.7.0" revision commit))
516 (source
517 (origin
518 (method git-fetch)
519 (uri (git-reference
520 (url "https://github.com/ziglibs/known-folders")
521 (commit commit)))
522 (file-name (git-file-name name version))
523 (sha256
524 (base32 "0czhcdrj2scpg14y75mfgg2xdn79is79ny10ys6fx8dl7xhdm9bx"))))
525 (arguments
526 (substitute-keyword-arguments arguments
527 ((#:zig _ #f) zig-0.15))))))
528
529;;; TODO: Remove after 2027-01-16.
530(define-deprecated-package zig-known-folders-for-zls-0.15
531 zig-known-folders-for-zig-0.15)
532
533(define-public zig-known-folders-for-zig-0.16
534 (let ((commit "7deb7aa3ba631db04faaa343cd30553c34b7d01d")
535 (revision "0"))
536 (package
537 (inherit zig-known-folders)
538 (name "zig-known-folders")
539 (version (git-version "0.16.0" revision commit))
540 (source
541 (origin
542 (method git-fetch)
543 (uri (git-reference
544 (url "https://github.com/ziglibs/known-folders")
545 (commit commit)))
546 (file-name (git-file-name name version))
547 (sha256
548 (base32 "19g6z3cdgyh1c3kj02c9vlkg812hh7f76pdsxk6x2bwn9x6wxd2l"))))
549 (arguments
550 (substitute-keyword-arguments arguments
551 ((#:zig _ #f) zig-0.16))))))
552
553(define-public zig-pixman
554 (package
555 (name "zig-pixman")
556 (version "0.3.0")
557 (source (origin
558 (method git-fetch)
559 (uri (git-reference
560 (url "https://codeberg.org/ifreund/zig-pixman")
561 (commit (string-append "v" version))))
562 (file-name (git-file-name name version))
563 (sha256
564 (base32
565 "1mg0fmcnfl5il8nx9nplxm8hg54jkdg9ks7r40w4451rx9m3il7j"))))
566 (build-system zig-build-system)
567 (arguments (list #:skip-build? #t))
568 (propagated-inputs (list pixman))
569 (synopsis "Zig bindings for Pixman")
570 (description "This package provides Zig bindings for @code{pixman}.")
571 (home-page "https://codeberg.org/ifreund/zig-pixman")
572 (license license:expat)))
573
574(define-public zig-scripty
575 (let ((commit "50dbab8945440089384f26ec165d870c29555247")
576 (revision "0"))
577 (package
578 (name "zig-scripty")
579 (version (git-version "0.1.0" revision commit))
580 (source (origin
581 (method git-fetch)
582 (uri (git-reference
583 (url "https://github.com/kristoff-it/scripty")
584 (commit commit)))
585 (file-name (git-file-name name version))
586 (sha256
587 (base32
588 "1qkmrisac80h2k996a8s60pxr4fyn3gfjisb9dvpyl29pa4ghwmg"))))
589 (build-system zig-build-system)
590 (arguments (list #:zig zig-0.15))
591 (inputs (list zig-tracy))
592 (home-page "https://github.com/kristoff-it/scripty")
593 (synopsis "Tiny scripting language meant to be embedded in strings")
594 (description "Scripty is a tiny scripting language meant to be embedded
595in strings or other similar constructs, usually within a host document.
596Scripty supports only the basic syntax necessary to build expressions that can:
597@itemize
598@item refer to basic literals;
599@item access fields starting from a root evaluation context (eg $foo.bar);
600@item call functions.
601@end itemize")
602 (license license:expat))))
603
604(define-public zig-tracy
605 (let ((commit "67d2d89e351048c76fc6d161e0ac09d8a831dc60")
606 (revision "0"))
607 (package
608 (name "zig-tracy")
609 (version (git-version "0.0.0" revision commit))
610 (source (origin
611 (method git-fetch)
612 (uri (git-reference
613 (url "https://github.com/kristoff-it/tracy")
614 (commit commit)))
615 (file-name (git-file-name name version))
616 (sha256
617 (base32
618 "0hb6qsx589icsa16ip59jlfr55mgdqlnmzwzwngyzzls3dp3bah4"))))
619 (build-system zig-build-system)
620 (arguments (list #:zig zig-0.15))
621 (home-page "https://github.com/kristoff-it/tracy")
622 (synopsis "Zig bindings for Tracy")
623 (description "This package provides bindings for Tracy, the frame
624profiler (@pxref{https://tracy.nereid.pl}).")
625 (license license:expat))))
626
627(define-public zig-translate-c
628 (package
629 (name "zig-translate-c")
630 (version "1.0.0") ;; There's a 2.0.0 release that requires zig-0.17.
631 (source (origin
632 (method git-fetch)
633 (uri (git-reference
634 (url "https://codeberg.org/ziglang/translate-c")
635 (commit version)))
636 (file-name (git-file-name name version))
637 (sha256
638 (base32
639 "0hjzgskrxzqy1c3smg2iqbd7834g9s2nckzswnl4ll5qy6xpgmmm"))))
640 (build-system zig-build-system)
641 (arguments (list #:zig zig-0.16))
642 (propagated-inputs (list zig-arocc))
643 (home-page "https://codeberg.org/ziglang/translate-c")
644 (synopsis "Zig library for translating C code into Zig code")
645 (description "translate-c is a Zig library maintained by Zig Software
646Foundation that allows translation of C code into Zig. It is intended to
647replace built-in implementations of this functionality.")
648 (license license:expat)))
649
650(define-public zig-wayland
651 (package
652 (name "zig-wayland")
653 (version "0.6.0")
654 (source (origin
655 (method git-fetch)
656 (uri (git-reference
657 (url "https://codeberg.org/ifreund/zig-wayland")
658 (commit (string-append "v" version))))
659 (file-name (git-file-name name version))
660 (sha256
661 (base32
662 "10chjkhahkjpl9wn308qdasa955rnipsmlrzp3wryl2rv16chvyy"))))
663 (build-system zig-build-system)
664 (arguments
665 (list #:zig zig-0.16
666 #:zig-release-type "safe"
667 #:zig-build-flags
668 #~(list "-Denable-tests")
669 #:zig-test-flags
670 #~(list "-Denable-tests")
671 #:phases
672 #~(modify-phases %standard-phases
673 (add-after 'configure 'fix-cross-compilation
674 (lambda _
675 (substitute* "build.zig"
676 (("pkg-config") (getenv "PKG_CONFIG"))))))))
677 (propagated-inputs (list wayland wayland-protocols))
678 (native-inputs (list pkg-config wayland))
679 (synopsis "Zig Wayland bindings and protocol scanner")
680 (description
681 "This package provides Zig bindings for @code{wayland} and a @code{Scanner}
682interface.")
683 (home-page "https://codeberg.org/ifreund/zig-wayland")
684 (license license:expat)))
685
686(define-public zig-wlroots
687 (package
688 (name "zig-wlroots")
689 (version "0.20.1")
690 (source (origin
691 (method git-fetch)
692 (uri (git-reference
693 (url "https://codeberg.org/ifreund/zig-wlroots")
694 (commit (string-append "v" version))))
695 (file-name (git-file-name name version))
696 (sha256
697 (base32
698 "16cy0a65jddfhsvgvcmbj5ln7wx37nia6j6rr062k272dhkwgz3i"))))
699 (build-system zig-build-system)
700 (arguments
701 (list #:zig zig-0.16
702 #:zig-release-type "safe"
703 #:zig-build-flags
704 #~(list "-Denable-tests")
705 #:zig-test-flags
706 #~(list "-Denable-tests")))
707 (propagated-inputs
708 (list wlroots-0.20
709 zig-pixman
710 zig-wayland
711 zig-xkbcommon-0.3))
712 (native-inputs (list pkg-config))
713 (synopsis "Zig bindings for wlroots")
714 (description "This package provides Zig bindings for @code{wlroots}.")
715 (home-page "https://codeberg.org/ifreund/zig-wlroots")
716 (license license:expat)))
717
718(define-public zig-xkbcommon
719 (package
720 (name "zig-xkbcommon")
721 (version "0.4.0")
722 (source (origin
723 (method git-fetch)
724 (uri (git-reference
725 (url "https://codeberg.org/ifreund/zig-xkbcommon")
726 (commit (string-append "v" version))))
727 (file-name (git-file-name name version))
728 (sha256
729 (base32
730 "18cjrv4gzyihs6cvr1djkb74lj76yn84p65s71ihp11fywzjc2fd"))))
731 (build-system zig-build-system)
732 (arguments (list #:skip-build? #t))
733 (propagated-inputs (list libxkbcommon))
734 (synopsis "Zig bindings for libxkbcommon")
735 (description "This package provides Zig bindings for @code{libxkbcommon}.")
736 (home-page "https://codeberg.org/ifreund/zig-xkbcommon")
737 (license license:expat)))
738
739;; Older version needed for `river-classic' and `zig-wlroots'.
740(define-public zig-xkbcommon-0.3
741 (package
742 (inherit zig-xkbcommon)
743 (name "zig-xkbcommon")
744 (version "0.3.0")
745 (source (origin
746 (method git-fetch)
747 (uri (git-reference
748 (url "https://codeberg.org/ifreund/zig-xkbcommon")
749 (commit (string-append "v" version))))
750 (file-name (git-file-name name version))
751 (sha256
752 (base32
753 "117nw4b5q14mb6j5yhvydlwllbd7gyxp176as4gj9qb5zh8wz5kv"))))))
754
755(define-public zig-zigimg
756 ;; No tagged release.
757 (let ((commit "52f10dd3e3b1cd4614fe72a8a8f0eddc7700bc0a")
758 (revision "0"))
759 (package
760 (name "zig-zigimg")
761 (version (git-version "0.1.0" revision commit))
762 (source
763 (origin
764 (method git-fetch)
765 (uri (git-reference
766 (url "https://github.com/zigimg/zigimg")
767 (commit commit)))
768 (file-name (git-file-name name version))
769 (sha256
770 (base32 "187nh49rdv37arlvf056jiv58n4y87q2pm6qvznn75zrszjlvp0b"))))
771 (build-system zig-build-system)
772 (home-page "https://github.com/zigimg/zigimg")
773 (synopsis "Zig image library")
774 (description
775 "@code{zigimg} is a Zig library for reading and writing different image
776formats.")
777 (license license:expat))))
778
779(define-public zig-zls-0.12
780 (package
781 (name "zig-zls")
782 (version "0.12.0")
783 (source
784 (origin
785 (method git-fetch)
786 (uri (git-reference
787 (url "https://github.com/zigtools/zls")
788 (commit version)))
789 (file-name (git-file-name name version))
790 (sha256
791 (base32
792 "1ini1ifa9b0v2ika3sqsiiv2p7v9npfslss45280yxwn2pjqmn7n"))
793 (snippet
794 (rename-zig-dependencies
795 '(("diffz" . "zig-diffz")
796 ("known_folders" . "zig-known-folders"))))))
797 (build-system zig-build-system)
798 (arguments
799 (let ((version-data-path
800 #~(string-append
801 "-Dversion_data_path="
802 #+(package-source (this-package-native-input "zig"))
803 "/doc/langref.html.in")))
804 (list #:zig (this-package-native-input "zig")
805 #:install-source? #f
806 #:zig-release-type "safe"
807 #:zig-build-flags
808 #~(list #$version-data-path "-Dpie")
809 #:zig-test-flags
810 #~(list #$version-data-path))))
811 (inputs (list zig-diffz zig-known-folders))
812 (native-inputs (list zig-0.12))
813 (synopsis "Zig language server")
814 (description
815 "Zig Language Server is a language server implementing the @acronym{LSP,
816Language Server Protocol} for the Zig programming language.")
817 (home-page "https://github.com/zigtools/zls")
818 (license license:expat)))
819
820(define-public zig-zls-0.13
821 (let ((base zig-zls-0.12))
822 (package
823 (inherit base)
824 (name "zig-zls")
825 (version "0.13.0")
826 (source (origin
827 (inherit (package-source base))
828 (uri (git-reference
829 (url "https://github.com/zigtools/zls")
830 (commit version)))
831 (file-name (git-file-name name version))
832 (sha256
833 (base32
834 "1dbg06v136yjcs9grc6xwsmv0cm39c0sdkh5vzn7h1qxxka6ixlp"))))
835 (build-system zig-build-system)
836 (native-inputs
837 (modify-inputs native-inputs
838 (replace "zig" zig-0.13))))))
839
840(define-public zig-zls-0.14
841 (let ((base zig-zls-0.13))
842 (package
843 (inherit base)
844 (name "zig-zls")
845 (version "0.14.0")
846 (source (origin
847 (method git-fetch)
848 (uri (git-reference
849 (url "https://github.com/zigtools/zls")
850 (commit version)))
851 (file-name (git-file-name name version))
852 (sha256
853 (base32
854 "1al4ry22y56v1jbph3vb6la2ln8dxc8hb3g7byng6yf8czx2g4q3"))
855 (snippet
856 (rename-zig-dependencies
857 '(("diffz" . "zig-diffz")
858 ("known_folders" . "zig-known-folders")
859 ("lsp-codegen" . "zig-lsp-codegen"))))))
860 (arguments
861 (list #:zig (this-package-native-input "zig")
862 #:install-source? #f
863 #:zig-release-type "safe"
864 #:zig-build-flags ''("-Dpie")))
865 (native-inputs
866 (modify-inputs native-inputs
867 (replace "zig" zig-0.14)))
868 (inputs
869 (modify-inputs inputs
870 (prepend zig-lsp-codegen)
871 (replace "zig-diffz" zig-diffz-for-zig-zls-0.14)
872 (replace "zig-known-folders" zig-known-folders-for-zig-0.14))))))
873
874(define-public zig-zls-0.15
875 (let ((base zig-zls-0.14))
876 (package
877 (inherit base)
878 (name "zig-zls")
879 (version "0.15.0")
880 (source (origin
881 (method git-fetch)
882 (uri (git-reference
883 (url "https://github.com/zigtools/zls")
884 (commit version)))
885 (file-name (git-file-name name version))
886 (sha256
887 (base32
888 "0ydnaxf29mj3gamig9phf991s1civfk6jkydn2xiqwv394fx4p0q"))
889 (snippet
890 (rename-zig-dependencies
891 '(("diffz" . "zig-diffz")
892 ("known_folders" . "zig-known-folders")
893 ("lsp_kit" . "zig-lsp-kit"))))))
894 (native-inputs
895 (modify-inputs native-inputs
896 (replace "zig" zig-0.15)))
897 (inputs
898 (modify-inputs inputs
899 (prepend zig-lsp-kit-for-zig-0.15)
900 (delete "zig-lsp-codegen")
901 (replace "zig-diffz" zig-diffz-for-zls-0.15)
902 (replace "zig-known-folders" zig-known-folders-for-zig-0.15))))))
903
904(define-public zig-zls-0.16
905 (package
906 (inherit zig-zls-0.15)
907 (name "zig-zls")
908 (version "0.16.0")
909 (source (origin
910 (method git-fetch)
911 (uri (git-reference
912 (url "https://github.com/zigtools/zls")
913 (commit version)))
914 (file-name (git-file-name name version))
915 (sha256
916 (base32
917 "0sbxz7nk9xam6whi8z05a469c9sfg50gkjm70ivavx1hpcwmck4k"))
918 (snippet
919 (rename-zig-dependencies
920 '(("diffz" . "zig-diffz")
921 ("known_folders" . "zig-known-folders")
922 ("lsp_kit" . "zig-lsp-kit"))))))
923 (native-inputs
924 (modify-inputs native-inputs
925 (replace "zig" zig-0.16)))
926 (inputs
927 (modify-inputs inputs
928 (replace "zig-diffz" zig-diffz-for-zls-0.16)
929 (replace "zig-known-folders" zig-known-folders-for-zig-0.16)
930 (replace "zig-lsp-kit" zig-lsp-kit-for-zig-0.16)))))
931
932(define-public zig-zls zig-zls-0.13)