1
0
forked from tribes/guix

Compare commits

..

1 Commits

Author SHA1 Message Date
Ian Eure baed3ca1b6 gnu: librewolf: Update to 148.0.2-1 [security-fixes].
Contains fixes for:

CVE-2026-3845: Heap buffer overflow in the Audio/Video: Playback
               component in Firefox for Android
CVE-2026-3846: Same-origin policy bypass in the CSS Parsing and
               Computation component
CVE-2026-3847: Memory safety bugs fixed in Firefox 148.0.2

* gnu/packages/librewolf.scm (librewolf): Update to 148.0.2-1.

Change-Id: Id3868e10d38f5f111bd00bc140a9dc64f132caa9
2026-03-10 15:35:09 -07:00
94 changed files with 2113 additions and 12619 deletions
-1
View File
@@ -316,7 +316,6 @@ gnu/packages/librewolf\.scm @guix/mozilla
gnu/packages/tor-browsers\.scm @guix/mozilla
gnu/packages/ocaml\.scm @guix/ocaml
gnu/packages/ocaml5\.scm @guix/ocaml
gnu/packages/coq\.scm @guix/ocaml
guix/build/ocaml-build-system\.scm @guix/ocaml
guix/build/dune-build-system\.scm @guix/ocaml
-4
View File
@@ -14,10 +14,6 @@ Copyright © 2026 Noé Lopez <noelopez@free.fr>
Please send Guix bug reports to bug-guix@gnu.org.
* Changes in 1.6.0 (since 1.5.0)
** Distribution
*** GNOME updated to version 48
* Changes in 1.5.0 (since 1.4.0)
** Package management
*** New rpm format for the guix pack command
-13
View File
@@ -111,9 +111,6 @@ build daemon, from within the generated build program."
#~(begin
(use-modules (ice-9 match))
;; To avoid lots of readlink calls
(fluid-set! %file-port-name-canonicalization #f)
(eval-when (expand load eval)
;; (gnu packages …) modules are going to be looked up
;; under SOURCE. (guix config) is looked up in FRONT.
@@ -172,13 +169,6 @@ build daemon, from within the generated build program."
;; build output.
(connect sock AF_UNIX build-output)
(when (integer? proto)
;; port->connection doesn't setup buffering, so
;; do this here
(setvbuf (store-connection-socket store)
'block
%default-store-connection-buffer-size))
(display
(and=>
;; Silence autoload warnings and the likes.
@@ -249,9 +239,6 @@ Display a spinner when nothing happens."
#:rest rest)
"Return a derivation that unpacks SOURCE into STORE and compiles Scheme
files."
;; Avoid lots of readlink calls
(fluid-set! %file-port-name-canonicalization #f)
;; Build the build program and then use it as a trampoline to build from
;; SOURCE.
(mlet %store-monad ((build (build-program source version guile-version
-7
View File
@@ -20,9 +20,6 @@
(use-modules (srfi srfi-26))
;; Avoid lots of readlink calls
(fluid-set! %file-port-name-canonicalization #f)
;; Add ~/.config/guix/current to the search path.
(eval-when (expand load eval)
(and=> (or (getenv "XDG_CONFIG_HOME")
@@ -44,10 +41,6 @@
(match (command-line)
((program source)
;; The build procedure outputs to this port, so setup buffering to avoid
;; one char per syscall.
(setvbuf (current-error-port) 'line)
(with-error-handling
(with-store store
(let* ((script (string-append source "/build-aux/build-self.scm"))
+10 -211
View File
@@ -149,7 +149,6 @@ Copyright @copyright{} 2025 Rodion Goritskov@*
Copyright @copyright{} 2025 dan@*
Copyright @copyright{} 2025 Noé Lopez@*
Copyright @copyright{} 2026 David Elsing@*
Copyright @copyright{} 2026 Nguyễn Gia Phong@*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -441,7 +440,7 @@ Services
* Power Management Services:: Extending battery life, etc.
* Audio Services:: The MPD.
* Virtualization Services:: Virtualization services.
* Version Control Services:: Software version control servers.
* Version Control Services:: Providing remote access to Git repositories.
* Game Services:: Game servers.
* PAM Mount Service:: Service to mount volumes when logging in.
* Guix Services:: Services relating specifically to Guix.
@@ -19918,7 +19917,7 @@ declaration.
* Power Management Services:: Extending battery life, etc.
* Audio Services:: The MPD.
* Virtualization Services:: Virtualization services.
* Version Control Services:: Software version control servers.
* Version Control Services:: Providing remote access to Git repositories.
* Game Services:: Game servers.
* PAM Mount Service:: Service to mount volumes when logging in.
* Guix Services:: Services relating specifically to Guix.
@@ -42369,30 +42368,13 @@ How often to run the node cleaning job. The default is once per day, at
@node Version Control Services
@subsection Version Control Services
The @code{(gnu services version-control)} module provides services to
allow remote access to local Git and Fossil repositories.
For Git, the following services are available.
@itemize
@item The @ref{git-daemon-service-type, Git daemon service}
provides access via the unsecured TCP-based @code{git://} protocol.
@item The @code{nginx} web server can proxy some requests
to @ref{git-http-backend, Git Smart HTTP backend}.
@item The @ref{cgit-service-type, cgit service} also implements
Git Smart HTTP protocol, in addition to a web interface.
@item The @ref{gitolite-service-type, Gitolite service} offers access
through SSH. The @ref{gitile-service-type, Gitile service}
can be used along side it to provide a web interface.
@end itemize
Fossil repositories are served along with a web interface
by the @ref{fossil-service-type, Fossil service}.
@anchor{git-daemon-service-type}
@subsubheading Git Daemon Service
@cindex Git daemon service
@cindex Git, hosting
The @code{(gnu services version-control)} module provides a service to
allow remote access to local Git repositories. There are three options:
the @code{git-daemon-service-type}, which provides access to repositories via
the @code{git://} unsecured TCP-based protocol, extending the
@code{nginx} web server to proxy some requests to
@code{git-http-backend}, or providing a web interface with
@code{cgit-service-type}.
@defvar git-daemon-service-type
Type for a service that runs @command{git daemon}, a simple TCP server to
@@ -42451,15 +42433,7 @@ Extra options that will be passed to @command{git daemon}.@footnote{Run
The @code{git://} protocol lacks authentication. When you pull from a
repository fetched via @code{git://}, you don't know whether the data you
receive was modified or is even coming from the specified host, and your
connection is subject to eavesdropping.
@anchor{git-http-backend}
@subsubheading Git HTTP Backend
@cindex Git HTTP backend
@cindex Git, hosting
It's better to use an authenticated
connection is subject to eavesdropping. It's better to use an authenticated
and encrypted transport, such as @code{https}. Although Git allows you
to serve repositories using unsophisticated file-based web servers,
there is a faster protocol implemented by the @code{git-http-backend}
@@ -42534,7 +42508,6 @@ HTTPS@. You will also need to add an @code{fcgiwrap} proxy to your
system services. @xref{Web Services}.
@end deffn
@anchor{cgit-service-type}
@subsubheading Cgit Service
@cindex Cgit service
@@ -43487,7 +43460,6 @@ could instantiate a cgit service like this:
(cgitrc "")))
@end lisp
@anchor{gitolite-service-type}
@subsubheading Gitolite Service
@cindex Gitolite service
@@ -43667,7 +43639,6 @@ Extra content to add verbatim into the git configuration file.
@end table
@end deftp
@anchor{gitile-service-type}
@subsubheading Gitile Service
@cindex Gitile service
@@ -43802,155 +43773,6 @@ like to serve.
@end table
@end deftp
@anchor{fossil-service-type}
@subsubheading Fossil Service
@cindex Fossil service
@cindex Fossil, forge
@uref{https://fossil-scm.org, Fossil} is a distributed
software configuration management system. In addition to version control
like Git, Fossil also supports bug tracking, wiki, forum, chat, etc.,
all accessible via its built-in web interface.
Fossil is highly reliable thanks to its robust file format based on SQLite
with atomic transactions. Its server is CPU, memory and bandwidth efficient
enough run comfortably on a cheap VPS or single board computer,
and be accessed over suboptimal connections.
The following example will configure Fossil to listen on a unix socket
behind a reverse proxy and serve repositories from a custom location.
@lisp
(service fossil-service-type
(fossil-configuration
(repository "/srv/museum")
(repo-list? #t)
(base-url "https://museum.example")
(socket-file "/var/run/fossil.sock")
(compress? #f)))
@end lisp
@deftp {Data Type} fossil-configuration
Available @code{fossil-configuration} fields are:
@table @asis
@item @code{package} (default: @code{fossil}) (type: package)
The Fossil package to use.
@item @code{user} (default: @code{"fossil"}) (type: string)
The user running the Fossil server.
@item @code{group} (default: @code{"fossil"}) (type: string)
The user group running the Fossil server.
@item @code{log-file} (default: @code{"/var/log/fossil.log"}) (type: string)
The path to the server's log.
@item @code{repository} (default: @code{"/var/lib/fossil"}) (type: string)
The name of the Fossil repository to be served, or a directory
containing one or more repositories with names ending in @code{.fossil}.
In the latter case, a prefix of the URL pathname is used to search the
directory for an appropriate repository. Files not matching the pattern
@code{*.fossil*} will be served as static content. Invoke
@command{fossil server --help} for more information.
@item @code{acme?} (default: @code{#f}) (type: boolean)
Deliver files from the @code{.well-known} subdirectory.
@item @code{base-url} (type: maybe-string)
The URL used as the base (useful for reverse proxies)
@item @code{chroot} (type: maybe-string)
The directory to use for chroot instead of @code{repository}.
@item @code{ckout-alias} (type: maybe-string)
The @var{name} for @code{/doc/@var{name}/...} to be treated as
@code{/doc/ckout/...}.
@item @code{compress?} (default: @code{#t}) (type: boolean)
Compress HTTP response.
@item @code{create?} (default: @code{#f}) (type: boolean)
Create a new @code{repository} if it does not already exist.
@item @code{error-log-file} (type: maybe-string)
The path for HTTP error log.
@item @code{ext-root} (type: maybe-string)
The document root for the /ext extension mechanism.
@item @code{files} (type: maybe-list-of-strings)
The glob patterns for static files.
@item @code{from} (type: maybe-string)
The path to be used as the diff baseline for the /ckout page.
@item @code{jail?} (default: @code{#t}) (type: boolean)
Whether to enter the chroot jail after dropping root privileges.
@item @code{js-mode} (type: maybe-fossil-js-mode)
How JavaScript is delivered with pages, either @code{'inline} at the end
of the HTML file, as @code{'separate} HTTP requests, or one single HTTP
request for all JavaScript @code{'bundled} together. Depending on the
needs of any given page, @code{'inline} and @code{'bundled} modes might
result in a single amalgamated script or several, but both approaches
result in fewer HTTP requests than the @code{'separate} mode.
@item @code{https?} (default: @code{#f}) (type: boolean)
Indicate that the requests are coming through a reverse proxy that has
already translated HTTPS into HTTP.
@item @code{ip} (type: maybe-string)
The IP for the server to listen on.
@item @code{local-authentication?} (default: @code{#f}) (type: boolean)
Enable automatic login for requests from localhost.
@item @code{localhost?} (default: @code{#f}) (type: boolean)
Listen on @code{127.0.0.1} only.
@item @code{main-menu} (type: maybe-string)
The file whose contents is to override the repository's @code{mainmenu}
setting.
@item @code{max-latency} (type: maybe-number)
The maximum latency in seconds for a single HTTP request.
@item @code{port} (default: @code{8080}) (type: port-number)
The port number for the server to listen on.
@item @code{list-repositories?} (default: @code{#f}) (type: boolean)
If @code{repository} is dir, URL @code{/} lists repos.
@item @code{redirect-to-https?} (default: @code{#t}) (type: boolean)
If set to @code{#f}, do not force redirects to HTTPS regardless of the
repository setting @code{redirect-to-https}.
@item @code{scgi?} (default: @code{#f}) (type: boolean)
Accept SCGI rather than HTTP.
@item @code{skin} (type: maybe-string)
The skin label to use, overriding repository settings.
@item @code{socket-file} (type: maybe-string)
The unix-domain socket to use instead of TCP/IP.
@item @code{socket-mode} (default: @code{0o640}) (type: mode-number)
The file permissions to set for the unix socket.
@item @code{th-trace?} (default: @code{#f}) (type: boolean)
Trace TH1 execution (for debugging purposes).
@item @code{tls-certificate} (type: maybe-string)
The certicate file (@file{fullchain.pem}) with which to enable TLS
(HTTPS) encryption.
@item @code{tls-private-key} (type: maybe-string)
The file storing the TLS private key.
@end table
@end deftp
@node Game Services
@subsection Game Services
@@ -50666,29 +50488,6 @@ cat $(herd configuration tor)
This can come in as a handy debugging tool!
@end deffn
@deffn {Procedure} shepherd-signal-action name signal @
[#:documentation `Send signal @var{signal} to the running service`] @
[#:message `Service has been asked to perform @var{name}`]
Return a shepherd action with @var{name} to send @var{signal} to the
running process. The optional @var{documentation} and @var{message} can be used
to customize the documentation and output message.
Many daemons perform special actions after receiving a specific signal.
For example the @command{syslogd} logger will reread its configuration file
after receiving @code{SIGHUP}.
After adding
@lisp
(shepherd-signal-action 'reload SIGHUP))
@end lisp
the @code{reload} action will be available and can be used with
@example
herd reload syslogd
@end example
@end deffn
@defvar shepherd-root-service-type
The service type for the Shepherd ``root service''---i.e., PID@tie{}1.
-35
View File
@@ -33,7 +33,6 @@
;; Copyright © 2025 Rivulet Cedar <rivulet_cedar@yeah.net>
;; Copyright © 2025 jgart <jgart@dismail.de>
;; Copyright © 2025 Steve George <steve@futurile.net>
;; Copyright © 2026 Noé Lopez <noelopez@free.fr>
;;
;; Copying and distribution of this file, with or without modification, are
@@ -43,40 +42,6 @@
(channel-news
(version 0)
(entry (commit "b52ce9041ad58aeababd2d50d3e72bc23dffff60")
(title
(en "GNOME 48 is now available")
(fr "GNOME 48 maintenant disponible")
(de "GNOME 48 jetzt verfügbar"))
(body
(en "The GNOME desktop was updated from version 46 to 48, bringing
accent colors, an improved Files (Nautilus) application, a new image
viewer (Loupe), and more:
@itemize
@item @url{https://release.gnome.org/47/, GNOME 47 release notes}
@item @url{https://release.gnome.org/48/, GNOME 48 release notes}
@end itemize")
(fr "La version 48 de lenvironnement de bureau GNOME est maintenant
disponible. Les nouvelles fonctionnalitées incluent: les couleurs daccent,
lapplication Fichiers (Nautilus) améliorée, un nouveau visionneur
dimages (Loupe), et plus:
@itemize
@item @url{https://release.gnome.org/47/, GNOME 47 release notes}
@item @url{https://release.gnome.org/48/, GNOME 48 release notes}
@end itemize")
(de "Die GNOME-Desktopumgebung wurde von Version 46 auf 48
aktualisiert. Neue Funktionen in dieser Version sind die Möglichkeit, eine
Akzentfarbe zu wählen, Verbesserungen in der Dateien-Anwendung (Nautilus), ein
neuer Bildbetrachter (Loupe), und mehr. Für eine ausführlichere Liste an
Änderungen, siehe:
@itemize
@item @url{https://release.gnome.org/47/, GNOME 47 release notes}
@item @url{https://release.gnome.org/48/, GNOME 48 release notes}
@end itemize")))
(entry (commit "d659fe8666c4bc38fcbdbe7b7a35101f2d7cc41b")
(title
(en "Potential security vulnerability in glibc")
-1
View File
@@ -933,7 +933,6 @@ and Firefox."
importer, and the ocaml-build-system."
#:scope
(list "gnu/packages/ocaml.scm"
"gnu/packages/ocaml5.scm"
"gnu/packages/coq.scm"
"guix/build/ocaml-build-system.scm"
"guix/build/dune-build-system.scm"
+3 -9
View File
@@ -55,7 +55,7 @@
# Copyright © 2022 Hilton Chain <hako@ultrarare.space>
# Copyright © 2022 Alex Griffin <a@ajgrf.com>
# Copyright © 2022 ( <paren@disroot.org>
# Copyright © 2022, 2026 jgart <jgart@dismail.de>
# Copyright © 2022 jgart <jgart@dismail.de>
# Copyright © 2023-2025 Zheng Junjie <z572@z572.online>
# Copyright © 2023 Ivana Drazovic <iv.dra@hotmail.com>
# Copyright © 2023 Andy Tai <atai@atai.org>
@@ -75,7 +75,6 @@
# Copyright © 2025 Nigko Yerden <nigko.yerden@gmail.com>
# Copyright © 2025 Cayetano Santos <csantosb@inventati.org>
# Copyright © 2025 bdunahu <bdunahu@operationnull.com>
# Copyright © 2025 Jason Conroy <jconroy@tscripta.net>
#
# This file is part of GNU Guix.
#
@@ -519,7 +518,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/nvi.scm \
%D%/packages/nx.scm \
%D%/packages/ocaml.scm \
%D%/packages/ocaml5.scm \
%D%/packages/ocr.scm \
%D%/packages/openkinect.scm \
%D%/packages/onc-rpc.scm \
@@ -1094,7 +1092,6 @@ dist_patch_DATA = \
%D%/packages/patches/ceph-fix-cmake.patch \
%D%/packages/patches/cf-tool-add-languages.patch \
%D%/packages/patches/chmlib-inttypes.patch \
%D%/packages/patches/cl-ana-pr-49.patch \
%D%/packages/patches/cl-asdf-config-directories.patch \
%D%/packages/patches/clamav-config-llvm-libs.patch \
%D%/packages/patches/clamav-system-tomsfastmath.patch \
@@ -1127,7 +1124,6 @@ dist_patch_DATA = \
%D%/packages/patches/coda-use-system-libs.patch \
%D%/packages/patches/codex-acp-0.9.2-remove-patch-sections.patch \
%D%/packages/patches/codex-acp-0.9.2-replace-result-flatten.patch \
%D%/packages/patches/codex-0.98.0-remove-patch-sections.patch \
%D%/packages/patches/cogl-fix-double-free.patch \
%D%/packages/patches/collada-dom-boost.patch \
%D%/packages/patches/collectd-5.11.0-noinstallvar.patch \
@@ -1543,6 +1539,7 @@ dist_patch_DATA = \
%D%/packages/patches/grfcodec-gcc-compat.patch \
%D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \
%D%/packages/patches/grub-efi-fat-serial-number.patch \
%D%/packages/patches/grub-hurd64.patch \
%D%/packages/patches/grub-setup-root.patch \
%D%/packages/patches/guile-1.8-cpp-4.5.patch \
%D%/packages/patches/guile-2.2-skip-oom-test.patch \
@@ -1582,7 +1579,6 @@ dist_patch_DATA = \
%D%/packages/patches/gtk4-respect-GUIX_GTK4_PATH.patch \
%D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
%D%/packages/patches/gtksourceview-2-add-default-directory.patch \
%D%/packages/patches/gst-plugins-base-null-pointer.patch \
%D%/packages/patches/gzdoom-search-in-installed-share.patch \
%D%/packages/patches/gzdoom-find-system-libgme.patch \
%D%/packages/patches/hare-fallback-cache.patch \
@@ -1971,6 +1967,7 @@ dist_patch_DATA = \
%D%/packages/patches/netsurf-system-utf8proc.patch \
%D%/packages/patches/netsurf-y2038-tests.patch \
%D%/packages/patches/netsurf-longer-test-timeout.patch \
%D%/packages/patches/nextpnr-imgui.patch \
%D%/packages/patches/nhc98-c-update.patch \
%D%/packages/patches/nix-dont-build-html-doc.diff \
%D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch \
@@ -2384,9 +2381,6 @@ dist_patch_DATA = \
%D%/packages/patches/rust-codex-0.98.0-core-file-lock.patch \
%D%/packages/patches/rust-codex-0.98.0-core-remove-self-dep.patch \
%D%/packages/patches/rust-codex-0.98.0-execpolicy-file-lock.patch \
%D%/packages/patches/rust-codex-0.98.0-test-shebangs.patch \
%D%/packages/patches/rust-codex-0.98.0-test-timeout.patch \
%D%/packages/patches/rust-codex-0.98.0-windows-sandbox-protocol-version.patch \
%D%/packages/patches/rust-ring-0.17-ring-core.patch \
%D%/packages/patches/rw-igraph-0.10.patch \
%D%/packages/patches/rxvt-unicode-fix-cursor-position.patch \
+77 -73
View File
@@ -186,83 +186,85 @@ engine with a Lua scripting interface.")
(synopsis "Combined display server, multimedia framework and game engine (SDL)")))
(define-public durden
(let ((commit "43211acd7994836d5c4ba039d7ecc939dcf8a5aa")
(revision "2"))
(package
(name "durden")
(version (git-version "0.6.1" revision commit))
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(uri (git-reference
(url "https://github.com/letoram/durden")
(commit commit)))
(sha256
(base32 "1jns4lq959s8ydykm0yg9sddzh74k7fdvjrnbz3z91idb7abl92d"))
(patches (search-patches "durden-shadow-arcan.patch"))))
(build-system copy-build-system)
(arguments
(list
#:install-plan #~'(("durden/" "share/arcan/appl/durden/")
("util/" "share/arcan/appl/durden/util/")
("distr/durden" "bin/durden"))
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* "distr/durden"
(("/usr/share/\\$applname")
(string-append (assoc-ref outputs "out")
"/share/arcan/appl"))
(("@ARCAN_STORE_PATH@")
(string-append (assoc-ref inputs "arcan")
"/bin/arcan"))
(("([\\([:blank:]]+)basename " _ separator)
(string-append separator
(assoc-ref inputs "coreutils")
"/bin/basename "))
(("([\\([:blank:]]+)date " _ separator)
(string-append separator
(assoc-ref inputs "coreutils")
"/bin/date "))
(("([\\([:blank:]]+)ln " _ separator)
(string-append separator
(assoc-ref inputs "coreutils")
"/bin/ln "))
(("([\\([:blank:]]+)mkdir " _ separator)
(string-append separator
(assoc-ref inputs "coreutils")
"/bin/mkdir "))
(("([\\([:blank:]]+)true; " _ separator)
(string-append separator
(assoc-ref inputs "coreutils")
"/bin/true; "))
(("([\\([:blank:]]+)\\[ " _ separator)
(string-append separator
(assoc-ref inputs "coreutils")
"/bin/[ "))))))))
(inputs (list arcan coreutils))
(home-page "https://durden.arcan-fe.com/")
(synopsis "Desktop Environment for Arcan")
(description
"Durden is a desktop environment for the Arcan Display Server.
It serves both as a reference showcase on how to take advantage of some of the
features in Arcan, and as an entry to the advanced-user side of the desktop
environment spectrum.")
(license (list license:bsd-3 license:expat license:cc-by3.0
license:cc-by4.0 license:asl2.0)))))
(define-public xarcan
(package
(name "durden")
(name "xarcan")
(version "0.6.3")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(uri (git-reference
(url "https://codeberg.org/letoram/durden")
(url "https://github.com/letoram/xarcan")
(commit version)))
(sha256
(base32 "1w12mdjdbhw13134fj4kv43n1z6vrh1jhg1wc7m5hw82w8ncwqkm"))
(patches (search-patches "durden-shadow-arcan.patch"))))
(build-system copy-build-system)
(arguments
(list
#:install-plan #~'(("durden/" "share/arcan/appl/durden/")
("util/" "share/arcan/appl/durden/util/")
("distr/durden" "bin/durden"))
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* "distr/durden"
(("/usr/share/\\$applname")
(string-append (assoc-ref outputs "out")
"/share/arcan/appl"))
(("@ARCAN_STORE_PATH@")
(string-append (assoc-ref inputs "arcan")
"/bin/arcan"))
(("([\\([:blank:]]+)basename " _ separator)
(string-append separator
(assoc-ref inputs "coreutils")
"/bin/basename "))
(("([\\([:blank:]]+)date " _ separator)
(string-append separator
(assoc-ref inputs "coreutils")
"/bin/date "))
(("([\\([:blank:]]+)ln " _ separator)
(string-append separator
(assoc-ref inputs "coreutils")
"/bin/ln "))
(("([\\([:blank:]]+)mkdir " _ separator)
(string-append separator
(assoc-ref inputs "coreutils")
"/bin/mkdir "))
(("([\\([:blank:]]+)true; " _ separator)
(string-append separator
(assoc-ref inputs "coreutils")
"/bin/true; "))
(("([\\([:blank:]]+)\\[ " _ separator)
(string-append separator
(assoc-ref inputs "coreutils")
"/bin/[ "))))))))
(inputs (list arcan coreutils))
(home-page "https://durden.arcan-fe.com/")
(synopsis "Desktop Environment for Arcan")
(description
"Durden is a desktop environment for the Arcan Display Server.
It serves both as a reference showcase on how to take advantage of some of the
features in Arcan, and as an entry to the advanced-user side of the desktop
environment spectrum.")
(license (list license:bsd-3 license:expat license:cc-by3.0
license:cc-by4.0 license:asl2.0))))
(define-public xarcan
(package
(name "xarcan")
(version "0.7.1")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(uri (git-reference
(url "https://codeberg.org/letoram/xarcan")
(commit version)))
(sha256
(base32 "1jpk272y58h94ss6j87i0cl1zlfp4g5803y0kpi09q8yy37icvcg"))))
(base32 "1g24mmwnc45ig0x8jk0v91488k8933w07vxi4305sla56q4n82p4"))))
(build-system meson-build-system)
(arguments
(list
@@ -300,7 +302,6 @@ environment spectrum.")
openssl
pixman
xcb-util
xcb-util-image
xcb-util-wm
xkbcomp
xkeyboard-config
@@ -308,8 +309,11 @@ environment spectrum.")
xtrans))
(home-page "https://arcan-fe.com")
(synopsis "Patched Xserver that bridges connections to Arcan")
(description
"Patched Xserver with a KDrive backend that uses the arcan-shmif
to map Xlib/Xcb/X clients to a running arcan instance. It allows
running an X session as a window under Arcan.")
(description "Patched Xserver with a KDrive backend that uses the arcan-shmif
to map Xlib/Xcb/X clients to a running arcan instance. It allows running an X session
as a window under Arcan.")
(license (list license:bsd-3 license:expat))))
;; Package was merged into arcan in upstream.
(define-deprecated-package arcan-wayland
arcan)
-27
View File
@@ -11791,33 +11791,6 @@ can be used to control telescopes over a serial port for tracking celestial
objects.")
(license license:gpl2+)))
(define-public stiff
(package
(name "stiff")
(version "2.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/astromatic/stiff")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1iffrncag1w6nd9c6v3dlx9m79nfg6ph42i0gsvlq8pvjph7s6pa"))))
(build-system gnu-build-system)
(arguments
(list #:configure-flags
#~(list "CFLAGS=-fcommon")))
(inputs
(list libtiff zlib libjpeg-turbo))
(home-page "https://www.astromatic.net/software/stiff/")
(synopsis "Convert scientific FITS images to TIFF format")
(description
"STIFF is a program that converts scientific @acronym{FITS, Flexible Image
Transport System} images to the more popular TIFF format for illustration
purposes.")
(license license:gpl3+)))
(define-public stuff
;; XXX: No version tag available in GitHub.
;; See: https://github.com/astromatic/stuff/issues/6
+7 -43
View File
@@ -2366,7 +2366,7 @@ to explore and analyze bulk RNA-seq data.")
(define-public python-cell2cell
(package
(name "python-cell2cell")
(version "0.8.4")
(version "0.7.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2375,7 +2375,7 @@ to explore and analyze bulk RNA-seq data.")
(file-name (git-file-name name version))
(sha256
(base32
"0z5dcm9i74c5iaqq92y25khg7i2smrfj8jb1g26iwzwf1cqxghmn"))
"02cqc5rm0qkm0np1k7bim1w7f5qjnwf1jcm5albd9cpvfs4bwgdr"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -2685,7 +2685,7 @@ parsing of Variant Call Format (VCF) files.")
(define-public python-decoupler
(package
(name "python-decoupler")
(version "2.1.4")
(version "2.1.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2694,7 +2694,7 @@ parsing of Variant Call Format (VCF) files.")
(file-name (git-file-name name version))
(sha256
(base32
"07kpcjbnp5c00p3iw2my6k3bxfivswyxs2dljj0yhgjhxw2900av"))))
"05d70zrgv8l9ihkgmr7hqcgn66yx1v1lm0hcfbc370asp97k2f74"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -7294,42 +7294,6 @@ trees (phylogenies) and characters.")
with Python.")
(license license:expat)))
(define-public deacon
(package
(name "deacon")
(version "0.14.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "deacon" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1p7q48ql67mxqi7fv0jaxbfn0js85sb2ai0h3vfvizwd1lfyldxl"))))
(build-system cargo-build-system)
(arguments
(list
#:install-source? #f
#:features ''("ensure_simd/scalar"))) ; Avoid AVX2 dependency.
(native-inputs (list pkg-config))
(inputs (cons* bzip2
xz
`(,zstd "lib")
(cargo-inputs 'deacon)))
(home-page "https://github.com/bede/deacon")
(synopsis
"Accelerated DNA sequence search and [host] depletion using minimizers")
(description
"Deacon filters DNA sequences in FASTA/Q files and streams using
SIMD-accelerated minimizer comparison with query sequence(s), emitting either
matching sequences (search mode), or sequences without matches (deplete mode).
Sequences match when they share enough distinct minimizers with the indexed
query to exceed chosen absolute and relative thresholds. Query size has little
impact on filtering speed, enabling ultrafast search and depletion with gene-,
genome- and pangenome-scale queries using a laptop.")
;; Upstream suggests compiling with '-C target-cpu=native'
(properties '((tunable? . #t)))
(license license:expat)))
(define-public delly
(package
(name "delly")
@@ -20363,7 +20327,7 @@ bgzipped text file that contains a pair of genomic coordinates per line.")
(build-system pyproject-build-system)
(arguments
(list
;; tests: 107 failed, 54 passed, 8 skipped, 7 xfailed, 14 errors
;; tests: 107 failed, 54 passed, 8 skipped, 7 xfailed, 14 errors
#:tests? #f)) ;most of them need remote data
(native-inputs
(list python-biopython
@@ -25279,7 +25243,7 @@ CSIv1, CSIv2 and FAI files.")
(define-public python-gseapy
(package
(name "python-gseapy")
(version "1.1.12")
(version "1.0.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -25288,7 +25252,7 @@ CSIv1, CSIv2 and FAI files.")
(file-name (git-file-name name version))
(sha256
(base32
"0xdh2v0s2jwj5n541z9zlcq5f6ka0r8jk03jdv8z3j27hc6azf3s"))))
"06gh09dwwj2xr5zx8i41smy8arx2pw7rll7sk50np28z419bnyz9"))))
(build-system cargo-build-system)
(arguments
(list
+43 -54
View File
@@ -44,7 +44,6 @@
(define-module (gnu packages bootloaders)
#:use-module (gnu packages)
#:use-module (gnu packages assembly)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages disk)
#:use-module (gnu packages bison)
@@ -115,13 +114,13 @@
(define*-public (make-grub platform)
(package
(name (string-append "grub-" platform))
(version "2.14")
(version "2.12")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/grub/grub-" version ".tar.xz"))
(sha256
(base32
"0hvd8i3ib6nwymfmvd6dia6axrn4xmrlsrg2r3c3i22vadrkr3dw"))
"1ahgzvvvwdxx7rl08pv5dyqlgp76jxz0q2cflxvsdsn4yy8p7jgk"))
(patches (search-patches
"grub-efi-fat-serial-number.patch"
"grub-setup-root.patch"))
@@ -149,21 +148,13 @@
;; This needs to be compiled with clang for powerpc64le.
(if #$(and=> (%current-target-system)
target-ppc64le?)
(list "TARGET_CC=powerpc64le-linux-gnu-clang"
"CFLAGS=-Wno-error")
(list "TARGET_CC=powerpc64le-linux-gnu-clang")
'())
(if #$(and (target-ppc64le? (%current-system))
(not (%current-target-system)))
(list "CC=clang" "CFLAGS=-Wno-error")
(list "CC=clang")
'()))
;; The 'configure' script detects --image-base support and uses it,
;; but that shifts the i386-pc kernel.img start address from 0x9000
;; to 0x9074, breaking grub-install. Override with -Ttext.
;; See <https://lists.gnu.org/archive/html/grub-devel/2026-01/msg00041.html>.
#:make-flags
#~(list "TARGET_IMG_BASE_LDOPT=-Wl,-Ttext")
;; GRUB fails to load modules stripped with --strip-unneeded.
#:strip-flags
#~(list "--strip-debug" "--enable-deterministic-archives")
@@ -208,6 +199,14 @@
(setenv "BUILD_FREETYPE_CFLAGS"
(string-append "-I" freetype
"/include/freetype2"))))))
#$@(if (target-hurd64?)
#~((add-after 'unpack 'apply-hurd64-patch
(lambda _
(let ((patch
#$(local-file
(search-patch "grub-hurd64.patch"))))
(invoke "patch" "--force" "-p1" "-i" patch)))))
#~())
(add-before 'check 'disable-flaky-test
(lambda _
;; This test is unreliable. For more information, see:
@@ -230,7 +229,7 @@
(("test_unset grub_func_test")
"test_unset")))))))
(inputs
(append (list gettext-minimal freetype ncurses libtasn1
(append (list gettext-minimal freetype ncurses
;; Console-setup's ckbcomp is invoked by grub-kbdcomp. It
;; is required for generating alternative keyboard layouts.
@@ -286,6 +285,22 @@
;; targets are used.
(if (member (%current-system) (package-supported-systems qemu-minimal))
(list qemu-minimal)
'())
;; XXX: When building GRUB 2.02 on 32-bit x86, we need a binutils
;; capable of assembling 64-bit instructions. However, our default
;; binutils on 32-bit x86 is not 64-bit capable.
(if (string-match "^i[3456]86-" (%current-system))
(let ((binutils (package/inherit
binutils
(name "binutils-i386")
(arguments
(substitute-keyword-arguments (package-arguments binutils)
((#:configure-flags flags ''())
#~(cons* "--enable-64-bit-bfd" #$flags)))))))
(list (make-ld-wrapper "ld-wrapper-i386"
#:binutils binutils)
binutils))
'())))
(home-page "https://www.gnu.org/software/grub/")
(synopsis "GRand Unified Boot loader")
@@ -390,8 +405,7 @@ menu to select one of the installed operating systems.")
"test_sha512sum"
"grub_cmd_tr"
"test_unset"
"file_filter_test"
"asn1_test")
"file_filter_test")
" "))))))))
(supported-systems '("i686-linux" "x86_64-linux")))))
@@ -443,27 +457,22 @@ menu to select one of the installed operating systems.")
((target-arm32?) "arm")
(else ""))))
(substitute* "tests/util/grub-shell.in"
(("\\$\\{srcdir\\}/OVMF(32)?\\.fd")
(("OVMF-ia32\\.fd")
(search-input-file
(or native-inputs inputs)
(string-append
"/share/firmware/ovmf_" arch ".bin")))
(("/usr/share/qemu/OVMF(32)?\\.fd")
(("OVMF\\.fd")
(search-input-file
(or native-inputs inputs)
(string-append
"/share/firmware/ovmf_" arch ".bin")))
(("\\$\\{srcdir\\}/AAVMF(32)?\\.fd")
(("/usr/share/qemu-efi/QEMU_EFI\\.fd")
(search-input-file
(or native-inputs inputs)
(string-append
"/share/firmware/ovmf_" arch ".bin")))
(("/usr/share/qemu-efi-aarch64/QEMU_EFI\\.fd")
(search-input-file
(or native-inputs inputs)
(string-append
"/share/firmware/ovmf_" arch ".bin")))
(("/usr/share/AAVMF/AAVMF(32)?\\.fd")
(("/usr/share/ovmf-arm/QEMU_EFI\\.fd")
(search-input-file
(or native-inputs inputs)
(string-append
@@ -515,41 +524,19 @@ menu to select one of the installed operating systems.")
#$@(if (or (target-x86?)
(target-arm?))
#~((replace 'patch-ovmf-path
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(lambda* (#:key inputs #:allow-other-keys)
(let ((arch #$(cond ((target-x86?) "ia32")
((target-arm?) "arm")
(else ""))))
(substitute* "tests/util/grub-shell.in"
(("\\$\\{srcdir\\}/OVMF(32)?\\.fd")
(("OVMF-ia32\\.fd")
(search-input-file
(or native-inputs inputs)
(string-append
"/share/firmware/ovmf_" arch ".bin")))
(("/usr/share/qemu/OVMF(32)?\\.fd")
(search-input-file
(or native-inputs inputs)
(string-append
"/share/firmware/ovmf_" arch ".bin")))
(("\\$\\{srcdir\\}/AAVMF(32)?\\.fd")
(search-input-file
(or native-inputs inputs)
(string-append
"/share/firmware/ovmf_" arch ".bin")))
(("/usr/share/qemu-efi-aarch64/QEMU_EFI\\.fd")
(search-input-file
(or native-inputs inputs)
(string-append
"/share/firmware/ovmf_" arch ".bin")))
(("/usr/share/AAVMF/AAVMF(32)?\\.fd")
(search-input-file
(or native-inputs inputs)
(string-append
"/share/firmware/ovmf_" arch ".bin")))
inputs (string-append
"/share/firmware/ovmf_" arch ".bin")))
(("/usr/share/ovmf-arm/QEMU_EFI\\.fd")
(search-input-file
(or native-inputs inputs)
(string-append
"/share/firmware/ovmf_" arch ".bin"))))))))
inputs (string-append
"/share/firmware/ovmf_" arch ".bin"))))))))
#~())))))
(native-inputs
(cond
@@ -573,7 +560,9 @@ menu to select one of the installed operating systems.")
(package
(inherit (make-grub "ieee1275"))
(synopsis "GRand Unified Boot loader (ieee1275 version)")
(supported-systems '("powerpc-linux" "powerpc64le-linux"))))
(supported-systems '("i686-linux" "x86_64-linux"
"i586-gnu" "x86_64-gnu"
"powerpc-linux" "powerpc64le-linux"))))
(define-public grub-qemu
(package
+20 -13
View File
@@ -532,7 +532,7 @@ Layer-4 sockets.")
(define-public cni-plugins
(package
(name "cni-plugins")
(version "1.9.0")
(version "1.8.0")
(source
(origin
(method git-fetch)
@@ -541,7 +541,7 @@ Layer-4 sockets.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0l3jgbizq0yaxld07hsdbh6ix2w6i789101ddk0ldnsmr93jg6ni"))
(base32 "0bwczkf4kbrx47sa6mnp5kyn65dbg52qnlfyjyydrwshal8rz3gw"))
(snippet
#~(begin (use-modules (guix build utils))
(delete-file-recursively "vendor")))))
@@ -549,10 +549,19 @@ Layer-4 sockets.")
(arguments
(list
#:install-source? #f
;; XXX: Tests require root access, see test_linux.sh.
#:tests? #f
#:import-path "github.com/containernetworking/plugins/plugins/..."
#:unpack-path "github.com/containernetworking/plugins"))
#:tests? #f ; TODO: Figure out how to run tests.
#:import-path "github.com/containernetworking/plugins"
#:phases
#~(modify-phases %standard-phases
(replace 'build
(lambda* (#:key import-path #:allow-other-keys)
(with-directory-excursion (string-append "src/" import-path)
;; XXX: Migrate to go-build-system logic.
(invoke "./build_linux.sh"))))
(replace 'install
(lambda* (#:key import-path #:allow-other-keys)
(copy-recursively (string-append "src/"import-path "/bin")
(string-append #$output "/bin")))))))
(native-inputs
(list go-github-com-alexflint-go-filemutex
go-github-com-buger-jsonparser
@@ -584,7 +593,7 @@ configure network interfaces in Linux containers.")
(define-public gvisor-tap-vsock
(package
(name "gvisor-tap-vsock")
(version "0.8.8")
(version "0.8.7")
(source
(origin
(method git-fetch)
@@ -593,7 +602,7 @@ configure network interfaces in Linux containers.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1xz710dmy58gngd0qizjw8g9nkraksqald8vzhwc5h36dqkc8nrf"))
(base32 "1p9vypphssvqfcm3y2nc7b9v0wcc2smkrqq8k60vskaiza89974k"))
(modules '((guix build utils)))
(snippet
#~(begin
@@ -636,9 +645,7 @@ configure network interfaces in Linux containers.")
go-github-com-containers-winquit
go-github-com-coreos-stream-metadata-go
go-github-com-dustin-go-humanize
go-github-com-foxcpp-go-mockdns
go-github-com-google-gopacket
go-github-com-inetaf-tcpproxy
go-github-com-insomniacslk-dhcp
;; go-github-com-linuxkit-virtsock ;Windows only
go-github-com-mdlayher-vsock
@@ -647,6 +654,7 @@ configure network interfaces in Linux containers.")
go-github-com-onsi-ginkgo
go-github-com-onsi-gomega
go-github-com-opencontainers-go-digest
go-github-com-pkg-errors
go-github-com-sirupsen-logrus
go-github-com-songgao-packets
go-github-com-songgao-water
@@ -656,7 +664,6 @@ configure network interfaces in Linux containers.")
go-golang-org-x-mod
go-golang-org-x-sync
go-golang-org-x-sys
go-gopkg-in-yaml-v3
go-gvisor-dev-gvisor))
(home-page "https://github.com/containers/gvisor-tap-vsock")
(synopsis "Network stack for virtualization based on gVisor")
@@ -701,7 +708,7 @@ Its main purpose is to support the key usage by @code{docker-init}:
(define-public podman
(package
(name "podman")
(version "5.8.1")
(version "5.8.0")
(outputs '("out" "docker"))
(properties
`((output-synopsis "docker" "docker alias for podman")
@@ -714,7 +721,7 @@ Its main purpose is to support the key usage by @code{docker-init}:
(url "https://github.com/containers/podman")
(commit (string-append "v" version))))
(sha256
(base32 "1wdsdc0nj4m1v8mn95dhavi87ad0adqmld70da59gvp2abff5f0f"))
(base32 "0vyl6d198iqrxx3c5vgbdx95fxkmn9fcb0napq44h8bzvjcl9fnj"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
+37 -31
View File
@@ -2763,39 +2763,45 @@ comma separated value (CSV) files.")
(license license:bsd-3))))
(define-public immer
(package
(name "immer")
(version "0.9.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/arximboldi/immer")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "04ckvmi391pspqiglzgi8h57gwr8822xhlrg5qdxf5yg6scgkfj2"))))
(build-system cmake-build-system)
(arguments
(list
#:modules `((guix build cmake-build-system)
((guix build gnu-build-system) #:prefix gnu:)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
(replace 'check (assoc-ref gnu:%standard-phases 'check)))))
(inputs (list boost libgc c-rrb))
(native-inputs (list catch2-3 doctest fmt pkg-config))
(home-page "https://sinusoid.es/immer")
(synopsis "Immutable data structures")
(description "Immer is a library of persistent and immutable data structures
;; Use latest commit to fix build with gcc 14.
(let ((commit "df6ef46d97e1fe81f397015b9aeb32505cef653b")
(revision "0"))
(package
(name "immer")
(version (git-version "0.8.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/arximboldi/immer")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "032rb84ahvdnc1m6sj4lflrwnk4p1f2jsq1pv03xbgizp2lr2pkx"))))
(build-system cmake-build-system)
(arguments
(list
;; -Werror appears to report false positives.
;; See <https://github.com/arximboldi/immer/issues/223>.
#:configure-flags #~'("-DDISABLE_WERROR=ON")
#:modules `((guix build cmake-build-system)
((guix build gnu-build-system) #:prefix gnu:)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
(replace 'check (assoc-ref gnu:%standard-phases 'check)))))
(inputs (list boost libgc c-rrb))
(native-inputs (list catch2-3 doctest fmt pkg-config))
(home-page "https://sinusoid.es/immer")
(synopsis "Immutable data structures")
(description "Immer is a library of persistent and immutable data structures
written in C++.")
(properties '((lint-hidden-cpe-vendors . ("immer_project"))))
(license license:boost1.0)))
(properties '((lint-hidden-cpe-vendors . ("immer_project"))))
(license license:boost1.0))))
(define-public zug
(package
(name "zug")
(version "0.1.2")
(version "0.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2803,7 +2809,7 @@ written in C++.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1fy6wvvlp1253lzh66zcq5sp656jxvanxf7iq8pi37ymjq5fyynh"))
(base32 "06vsbzx4ripidpb6ia7y1y8pmjk6gxzr93ilby90ahj6p2x08baf"))
(modules '((guix build utils)))
(snippet #~(delete-file-recursively "tools"))))
(build-system cmake-build-system)
@@ -2825,7 +2831,7 @@ composable sequential transformations.")
(define-public lager
(package
(name "lager")
(version "0.1.3")
(version "0.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2833,7 +2839,7 @@ composable sequential transformations.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "123a75qklhiyic3yaj74h4p8jav2m92x9ssjnfsdiilhycp4p764"))))
(base32 "1by9d49qnkncifyjcq16zy605d7v4ps6hvc01q5nsp1nbswm94m4"))))
(build-system cmake-build-system)
(arguments (list #:configure-flags #~(list "-Dlager_BUILD_EXAMPLES=no")
#:modules `((guix build cmake-build-system)
+5 -9
View File
@@ -77,10 +77,13 @@ command-line environment with support for file manipulation on remote WebDAV
servers.")
(license license:gpl2+)))
;; This package isn't reproducible due to non-deterministic behaviour in a
;; procedural macros that's provided by a crate used by pimsync.
;; See https://github.com/stalwartlabs/hashify/issues/4
(define-public pimsync
(package
(name "pimsync")
(version "0.5.7")
(version "0.5.6")
(source
(origin
(method git-fetch)
@@ -89,20 +92,13 @@ servers.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0x90l9k3sfnszrvmzqclykpv2py33v9jh92ps68wdd7xkrjp42ga"))))
(base32 "01qxg0mk7if96rmb0q88wgjpnv1fb8iw2dbzwlm0ars1mi3xpmr3"))))
(build-system cargo-build-system)
(arguments
(list
#:install-source? #f
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'use-guix-vendored-dependencies
(lambda _
(substitute* "Cargo.toml"
(("^\\[patch.crates-io\\]")
"")
(("^hashify.*$")
"hashify = { version = \"*\" }\n"))))
(add-after 'unpack 'setup-environment
(lambda _
(setenv "PIMSYNC_VERSION"
+2 -1
View File
@@ -237,7 +237,8 @@ blurred background.")
(base32 "09vb9b0pmyhj6fh0b6by59bykszbkdayhz678pnb4pyrdmlvv1am"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
`(#:modules ((guix build utils)
(srfi srfi-26))
#:builder (begin
(use-modules (guix build utils)
(srfi srfi-26))
+94
View File
@@ -357,3 +357,97 @@ and white.")
and background layers of images, which can then be encoded into a DjVu file.")
(home-page "https://jwilk.net/software/didjvu")
(license license:gpl2)))
(define-public ocrodjvu
(let ((revision "0")
(commit "0dd3364462fc77d5674b4457fcc8230835323c30"))
(package
(name "ocrodjvu")
(version (git-version "0.12" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
;; Use the following fork repository, as upstream
;; doesn't seem too concerned with Python 3
;; compatibility.
(url "https://github.com/rmast/ocrodjvu")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0x64hg9ysrk8sismxb4jgk0sq7r9j90v2i9765xhmxpiy6f0lpni"))))
(build-system gnu-build-system)
(arguments
(list
#:modules '((guix build gnu-build-system)
((guix build pyproject-build-system) #:prefix python:)
(guix build utils))
#:imported-modules `(,@%default-gnu-imported-modules
,@%pyproject-build-system-modules)
#:test-target "test"
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'fix-for-python-3.11
(lambda _
(substitute* "lib/cli/ocrodjvu.py"
;; The getargspec function has been removed in python 3.11.
(("init_args, _, _, _ = inspect.getargspec\\(cls.__init__\\)")
"init_args = inspect.getfullargspec(cls.__init__).args"))))
(add-before 'check 'disable-failing-test
(lambda _
(substitute* "tests/test_ipc.py"
;; test_wait_signal gets stuck forever
(("yield self\\._test_signal, name")
"return True")
;; test_path fails to find a file it should have created
(("path = os\\.getenv\\('PATH'\\)\\.split\\(':'\\)")
"return True"))
;; Disable tests with tesseract. They can't work without
;; the language files that must downloaded by the final user
;; as they are not packaged in Guix.
(substitute* "tests/ocrodjvu/test.py"
(("engines = stdout\\.getvalue\\(\\)\\.splitlines\\(\\)")
"engines = ['ocrad']"))
(substitute* "tests/ocrodjvu/test_integration.py"
(("engines = 'tesseract', 'cuneiform', 'gocr', 'ocrad'")
"engines = 'ocrad'"))))
(replace 'install
(lambda _
(invoke "make" "install"
"DESTDIR=" (string-append "PREFIX=" #$output))))
(add-after 'install 'wrap-python
(assoc-ref python:%standard-phases 'wrap))
(add-after 'wrap-python 'wrap-path
(lambda* (#:key outputs #:allow-other-keys)
(for-each (lambda (file)
(wrap-program (search-input-file outputs file)
`("PATH" ":" prefix
(,(string-append
#$(this-package-input "djvulibre") "/bin:"
#$(this-package-input "ocrad") "/bin:"
#$(this-package-input "tesseract-ocr")
"/bin")))))
'("bin/djvu2hocr"
"bin/hocr2djvused"
"bin/ocrodjvu")))))))
(native-inputs
(list (libc-utf8-locales-for-target) libxml2 python-pynose python-pillow))
(inputs
(list bash-minimal
djvulibre
ocrad
python-djvulibre
python-future
python-html5lib
python-lxml
python-pyicu
python-regex
python-wrapper
tesseract-ocr))
(synopsis "Program to perform OCR on DjVu files")
(description
"@code{ocrodjvu} is a wrapper for OCR systems, that allows you to perform
OCR on DjVu files.")
(home-page "https://jwilk.net/software/ocrodjvu")
(license license:gpl2))))
+213 -273
View File
@@ -9,7 +9,6 @@
;;; Copyright © 2021, 2024 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2022 ( <paren@disroot.org>
;;; Copyright © 2022 Esther Flashner <esther@flashner.co.il>
;;; Copyright © 2025-2026 Jonas Meeuws <jonas.meeuws@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -39,7 +38,6 @@
#:use-module (guix build-system copy)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
@@ -56,12 +54,94 @@
#:use-module (gnu packages xorg)
#:use-module (srfi srfi-1))
;; Compilers and tooling for the D programming language.
;; Note: The GNU D compiler is defined in (gnu packages gcc) instead.
(define-public d-tools
(package
(name "d-tools")
(version "2.105.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dlang/tools")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0hvz786k0pi8697x1vk9x5bx52jiy7pvi13wmfkx15ddvv0x5j33"))))
(build-system gnu-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(delete 'configure)
(replace 'build
(lambda _
(mkdir-p "bin")
(setenv "CC" #$(cc-for-target))
(setenv "LD" #$(ld-for-target))
(invoke "ldc2" "rdmd.d" "--of" "bin/rdmd")
(apply invoke "ldc2" "--of=bin/dustmite"
(find-files "DustMite" ".*\\.d"))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "bin/rdmd" "rdmd_test.d" "bin/rdmd"
"--rdmd-default-compiler" "ldmd2"))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(man (string-append out "/man")))
(for-each delete-file (find-files "bin" "\\.o$"))
(copy-recursively "bin" bin)
(copy-recursively "man" man)))))))
(native-inputs
(list ldc
(module-ref (resolve-interface
'(gnu packages commencement))
'ld-gold-wrapper)))
(home-page "https://github.com/dlang/tools")
(synopsis "Useful D-related tools")
(description
"@code{d-tools} provides two useful tools for the D language: @code{rdmd},
which runs D source files as scripts, and @code{dustmite}, which reduces D code
to a minimal test case.")
(license license:boost1.0)))
;; LLVM-based D compiler
(define-public gdmd
(let ((commit "ff2c97a47408fb71c18a2d453294d18808a97cc5")
(revision "1"))
(package
(name "gdmd")
(version (git-version "0.1.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/D-Programming-GDC/gdmd")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0pd70clk70069xcjysaas7zszzmigrcw1zl2xxv8kzdg7y7xrzvm"))))
(build-system copy-build-system)
(arguments
(list
#:install-plan
#~'(("dmd-script" "bin/gdmd")
("dmd-script.1" "share/man/man1/gdmd.1"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'adjust-gdc-location
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "dmd-script"
(("my \\$gdc_dir.*")
(string-append "my $gdc_dir = \""
(dirname (search-input-file inputs "/bin/gdc"))
"\";\n"))))))))
(inputs (list gdc perl))
(home-page "https://github.com/D-Programming-GDC/gdmd")
(synopsis "DMD-like wrapper for GDC")
(description "This package provides a DMD-like wrapper for the
@acronym{GNU D Compiler,GDC}.")
(license license:gpl3+))))
;; We use GDC, the D frontend for GCC, to bootstrap ldc. We then use
;; ldc to bootstrap itself so that no reference remains to GDC.
@@ -329,12 +409,8 @@ integration tests...\n")
(properties
(alist-delete 'hidden? (package-properties ldc-bootstrap)))))
;; Reference D compiler
;; Note: Has limited supported-systems.
;; DMD built with GDC as the bootstrap D compiler (via the gdmd wrapper).
;; Shared libraries are not built, tests are disabled.
;;; Bootstrap version of phobos that is built with GDC, using GDC's standard
;;; library.
(define-public dmd-bootstrap
(package
;; This package is purposefully named just "dmd" and not "dmd-bootstrap",
@@ -342,16 +418,16 @@ integration tests...\n")
;; and their names must have the same length to avoid corrupting the
;; binary.
(name "dmd")
(version "2.111.0")
(version "2.106.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dlang/dmd")
(commit (string-append "v" version))))
(url "https://github.com/dlang/dmd")
(commit (string-append "v" version))))
(file-name (git-file-name "dmd" version))
(sha256
(base32
"0cz5qdd1j89w2s7nzw9ahzwsqiraidg4ajy7syy7qkk7mwcyrf6r"))))
"1bq4jws1vns2jjzfz7biyngrx9y5pvvgklymhrvb5kvbzky1ldmy"))))
(build-system gnu-build-system)
(arguments
(list
@@ -360,191 +436,111 @@ integration tests...\n")
;; Disable tests, as gdmd cannot cope with some arguments used such as
;; '-conf'.
#:tests? #f
#:out-of-source? #t
#:test-target "test"
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
;; XXX: Proceed despite conflicts from symbols provided by both
;; the source built and GDC.
"DFLAGS=-L--allow-multiple-definition"
"ENABLE_RELEASE=1"
(string-append "HOST_CXX=" #$(cxx-for-target))
"HOST_DMD=gdmd"
(string-append "INSTALL_DIR=" #$output)
(string-append "SYSCONFDIR=" #$output "/etc")
"ENABLE_RELEASE=1"
;; Do not build the shared libphobos2.so library, to avoid
;; retaining a reference to gcc:lib.
"SHARED=0"
"VERBOSE=1")
#:modules
`(,@%default-gnu-modules
(srfi srfi-1)
(srfi srfi-26))
(string-append "SYSCONFDIR=" #$output "/etc")
"VERBOSE=1"
"-f" "posix.mak")
#:phases
#~(let* ((phase-in-sub-dir (lambda (phase sub-dir)
(lambda args
(with-directory-excursion sub-dir
(apply
(assoc-ref %standard-phases phase)
args)))))
(target-bin-sh (string-append
#$(this-package-input "bash-minimal")
"/bin/sh")))
(modify-phases %standard-phases
(replace 'unpack
(lambda* (#:key source #:allow-other-keys)
(let ((dmd-source source)
(phobos-source #$(this-package-native-input
(git-file-name "phobos" version))))
(mkdir "source")
(chdir "source")
(copy-recursively dmd-source "dmd" #:keep-mtime? #t)
(copy-recursively phobos-source "phobos" #:keep-mtime? #t)
(for-each (lambda (f)
(false-if-exception (make-file-writable f)))
(find-files ".")))))
(add-after 'unpack 'patch-git-ls-tree
;; The druntime Makefile tries to use git ls-tree to get all
;; source files in dmd/druntime/. We replace the command with a
;; listing of those files.
(lambda _
(with-directory-excursion "dmd/druntime"
(substitute* "Makefile"
(("^MANIFEST *:*=.*$")
(string-append "MANIFEST := "
(string-join (map (cut string-drop <> 2)
(find-files "./")))
"\n"))))))
(add-after 'unpack 'patch-paths-in-phobos
(lambda _
(with-directory-excursion "phobos"
;; (substitute* "std/datetime/timezone.d"
;; (("\"/usr/share/zoneinfo/\"")
;; (format #f "~s" target-zoneinfo)))
;; (substitute* "std/net/curl.d"
;; (("\"libcurl\\.so\"")
;; (format #f "~s" target-lib-curl)))
(substitute* "std/process.d"
(("return \"/bin/sh\";")
(format #f "return ~s;" target-bin-sh))
(("#!/bin/sh")
(string-append "#!" target-bin-sh))))))
(add-after 'unpack 'patch-tests
(lambda _
;; Since the implementation of SOURCE_DATE_EPOCH support in
;; Ddoc, this test fails, as it expects Ddoc timestamps to
;; match the output of the `date` command.
;; XXX: Report upstream.
(substitute* (string-append
"dmd/compiler/test/compilable"
"/extra-files/ddocYear-postscript.sh")
(("^YEAR=.*$") "YEAR=1970\n"))
;; This test creates a shell script and runs it.
(substitute* "dmd/compiler/test/dshell/test6952.d"
(("/usr/bin/env bash") target-bin-sh))
;; In the sarif json output, the compiler version string ends
;; with a raw newline for some reason, causing these tests to
;; fail.
(for-each
delete-file
'("dmd/compiler/test/compilable/sarif_success_test.d"
"dmd/compiler/test/fail_compilation/sarif_test.d"
"dmd/compiler/test/fail_compilation/sarifmultiple_test.d"))
;; Locations in stack traces are broken for some reason,
;; causing these tests to fail.
;; XXX: Report upstream.
(for-each
delete-file
'("dmd/compiler/test/runnable/test17559.d"
"dmd/compiler/test/runnable/test19086.d"))
(substitute* "dmd/druntime/test/exceptions/Makefile"
(((string-append "line_trace line_trace_21656 "
"long_backtrace_trunc rt_trap_exceptions "))
""))
(substitute* "dmd/druntime/test/gc/Makefile"
((" invariant ") " "))))
(delete 'bootstrap)
(delete 'configure)
(replace 'build
(phase-in-sub-dir 'build "dmd"))
(add-after 'build 'build-phobos
(phase-in-sub-dir 'build "phobos"))
(replace 'check
(phase-in-sub-dir 'check "dmd"))
(add-after 'check 'check-phobos
(phase-in-sub-dir 'check "phobos"))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((platform (cond (#$(target-linux?) "linux")))
(bits (if #$(target-64bit?) 64 32))
(build-sub-dir (format #f "generated/~a/release/~a"
platform bits))
(out (assoc-ref outputs "out"))
(lib (assoc-ref outputs "lib"))
(out-bin (string-append out "/bin"))
(out-etc (string-append out "/etc"))
(out-include (string-append out "/include/d/dmd"))
(out-lib (string-append out "/lib"))
(lib-lib (string-append lib "/lib"))
(out-man (string-append out "/share/man")))
(with-directory-excursion "dmd"
(with-directory-excursion build-sub-dir
(install-file "dmd" out-bin)
(install-file "libdruntime.a" out-lib)
(for-each (cut install-file <> lib-lib)
(find-files "." "^libdruntime\\.so[.0-9]*$")))
(copy-recursively "druntime/import" out-include)
(copy-recursively "compiler/docs/man" out-man))
(with-directory-excursion "phobos"
(with-directory-excursion build-sub-dir
(install-file "libphobos2.a" out-lib)
(for-each (cut install-file <> lib-lib)
(find-files "." "^libphobos2\\.so[.0-9]*$")))
(copy-recursively "etc" (string-append out-include "/etc"))
(copy-recursively "std" (string-append out-include "/std")))
(mkdir-p out-etc)
(with-output-to-file (string-append out-etc "/dmd.conf")
(lambda _
(format #t "[Environment]\n")
(format #t "DFLAGS=")
(format #t " -I~a" out-include)
(format #t " -L-L~a" out-lib)
(format #t " -L-L~a" lib-lib)
(format #t " -L--export-dynamic")
(format #t " -fPIC")
(format #t "\n"))))))
(replace 'install-license-files
;; Phobos license is identical.
(phase-in-sub-dir 'install-license-files "dmd"))))))
(inputs
(list bash-minimal))
(native-inputs
(list gdmd which
gdb/pinned ; for tests
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dlang/phobos")
(commit (string-append "v" version))))
(file-name (git-file-name "phobos" version))
(sha256
(base32
"1ydls3ar6d3f7ffqvidr46x3zrz3wlzjln5qa0nbz843ndjr4g7n")))))
(outputs '("out" "lib" "debug"))
#~(modify-phases %standard-phases
(add-after 'unpack 'copy-phobos-source-and-chdir
;; Start with building phobos, which in turns will automatically
;; build druntime and dmd. A minimal dmd command is still
;; required to do so, which is why we need dmd-bootstrap-0.
(lambda _
(symlink "." "dmd") ;to please the build system expected layout
(copy-recursively
#$(this-package-native-input (git-file-name "phobos" version))
"phobos")
(chdir "phobos")))
(add-after 'copy-phobos-source-and-chdir 'adjust-phobos-install-dirs
(lambda _
(substitute* "posix.mak"
;; Install to lib directory, not to e.g. 'linux/lib64'.
(("\\$\\(INSTALL_DIR)/\\$\\(OS)/\\$\\(lib_dir)")
(string-append #$output "/lib"))
;; Do not install license file, already done by the gnu build
;; system.
((".*\\$\\(INSTALL_DIR)/phobos-LICENSE.txt.*") ""))))
(delete 'configure)
(add-after 'install 'install-druntime
(lambda args
(chdir "../druntime")
(apply (assoc-ref %standard-phases 'install) args)
(chdir "..")))
(add-after 'install-druntime 'install-includes
(lambda _
;; Normalize the include files prefix to include/dmd.
(let ((include-dir (string-append #$output "/include/dmd")))
(mkdir-p include-dir)
(rename-file (string-append #$output "/src/phobos")
(string-append include-dir))
(copy-recursively "druntime/import" include-dir))
(delete-file-recursively (string-append #$output "/src"))))
(add-after 'install-druntime 'install-dmd
(assoc-ref %standard-phases 'install))
(add-after 'install-license-files 'refine-install-layout
(lambda _
(let* ((docdir (string-append #$output "/share/doc/"
(strip-store-file-name #$output)))
;; The dmd binary gets installed to
;; e.g. /linux/bin64/dmd.
(dmd (car (find-files #$output "^dmd$")))
(dmd.conf (car (find-files #$output "^dmd.conf$")))
(os-dir (dirname (dirname dmd))))
;; Move samples from root to the doc directory.
(rename-file (string-append #$output "/samples")
(string-append docdir "/samples"))
;; Remove duplicate license file.
(delete-file (string-append #$output
"/dmd-boostlicense.txt"))
;; Move dmd binary and dmd.conf.
(install-file dmd (string-append #$output "/bin"))
(install-file dmd.conf (string-append #$output "/etc"))
(delete-file-recursively os-dir))))
(add-after 'refine-install-layout 'patch-dmd.conf
(lambda* (#:key outputs #:allow-other-keys)
(substitute* (search-input-file outputs "etc/dmd.conf")
(("lib(32|64)")
"lib")
(("\\.\\./src/(phobos|druntime/import)")
"include/dmd")))))))
(native-inputs (list gdmd which
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dlang/phobos")
(commit (string-append "v" version))))
(file-name (git-file-name "phobos" version))
(sha256
(base32
"1yw7nb5d78cx9m7sfibv7rfc7wj3w0dw9mfk3d269qpfpnwzs4n9")))))
(home-page "https://github.com/dlang/dmd")
(synopsis "Reference D Programming Language compiler")
(description "@acronym{DMD, Digital Mars D compiler} is the reference
compiler for the D programming language.")
(license license:boost1.0)
(home-page "https://github.com/dlang/dmd")
;; As reported by upstream:
;; https://wiki.dlang.org/Compilers#Comparison
(supported-systems '("i686-linux" "x86_64-linux" "aarch64-linux"))
(supported-systems '("i686-linux" "x86_64-linux"))
;; This variant exists only for bootstrapping purposes.
(properties '((hidden? . #t)))))
(properties '((hidden? . #t)))
;; DMD built with dmd-bootstrap as the bootstrap D compiler.
;; Shared libraries are built now, tests are no longer disabled.
(license license:boost1.0)))
;;; Second bootstrap of DMD, built using dmd-bootstrap, with its shared
;;; libraries preserved.
(define-public dmd
(package
(inherit dmd-bootstrap)
@@ -553,37 +549,41 @@ compiler for the D programming language.")
(strip-keyword-arguments
'(#:tests?) ;reinstate tests
(package-arguments dmd-bootstrap))
((#:disallowed-references _ ''())
((#:disallowed-references _ ''())
(list dmd-bootstrap))
((#:modules _ ''())
'((guix build gnu-build-system)
(guix build utils)
(srfi srfi-1))) ;for fold
((#:make-flags flags ''())
#~(fold delete #$flags '("HOST_DMD=gdmd"
#~(fold delete #$flags '("DFLAGS=-L--allow-multiple-definition"
"HOST_DMD=gdmd"
"SHARED=0")))
((#:phases phases '%standard-phases)
#~(modify-phases #$phases
(add-after 'install 'rewrite-references-to-bootstrap
;; D compilers can keep references to the include files used to
;; build a binary in exception messages. For dmd, rewrite the
;; references to dmd-bootstrap to itself, to reduce its closure
;; size.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((in-dmd-bootstrap #$(this-package-native-input "dmd"))
(out (assoc-ref outputs "out"))
(out-bin-dmd (string-append out "/bin/dmd")))
;; XXX: Use sed, as replace-store-references wouldn't replace
;; the references, while substitute* throws an error.
(add-after 'patch-dmd.conf 'rewrite-references-to-bootstrap
;; DMD keeps references to include files used to build a
;; binary. Rewrite those of dmd-bootstrap to itself, to reduce
;; its closure size.
(lambda* (#:key native-inputs inputs outputs
#:allow-other-keys)
(let ((dmd (search-input-file outputs "bin/dmd"))
(dmd-bootstrap (dirname
(dirname
(search-input-file
(or native-inputs inputs)
"bin/dmd")))))
;; XXX: Use sed, as replace-store-references wouldn't
;; replace the references, while substitute* throws an
;; error.
(invoke "sed" "-i"
(format #f "s,~a,~a,g" in-dmd-bootstrap out)
out-bin-dmd))))))))
(native-inputs
(modify-inputs (package-native-inputs dmd-bootstrap)
(delete "gdmd")
(append dmd-bootstrap)))
(format #f "s,~a,~a,g" dmd-bootstrap #$output)
dmd))))))))
(native-inputs (modify-inputs (package-native-inputs dmd-bootstrap)
(replace "gdmd" dmd-bootstrap)))
(properties
(alist-delete 'hidden? (package-properties dmd-bootstrap)))))
;; D related tools
(define-public dub
(package
(name "dub")
@@ -634,66 +634,6 @@ while providing the opportunity to customize things when
needed.")
(license license:expat)))
(define-public d-tools
(package
(name "d-tools")
(version "2.105.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dlang/tools")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0hvz786k0pi8697x1vk9x5bx52jiy7pvi13wmfkx15ddvv0x5j33"))))
(build-system gnu-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-tests
(lambda _
;; Skip broken make ONESHELL shell test.
(substitute* "rdmd_test.d"
(("makeVersion = .*$") "makeVersion = \"skip\";"))))
(delete 'configure)
(replace 'build
(lambda _
(mkdir-p "bin")
(setenv "CC" #$(cc-for-target))
(setenv "LD" #$(ld-for-target))
(invoke "ldc2" "rdmd.d" "--of" "bin/rdmd")
(apply invoke "ldc2" "--of=bin/dustmite"
(find-files "DustMite" ".*\\.d"))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "bin/rdmd" "rdmd_test.d" "bin/rdmd"
"--rdmd-default-compiler" "ldmd2"))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(man (string-append out "/man")))
(for-each delete-file (find-files "bin" "\\.o$"))
(copy-recursively "bin" bin)
(copy-recursively "man" man)))))))
(native-inputs
(list ldc
(module-ref (resolve-interface
'(gnu packages commencement))
'ld-gold-wrapper)))
(home-page "https://github.com/dlang/tools")
(synopsis "Useful D-related tools")
(description
"@code{d-tools} provides two useful tools for the D language: @code{rdmd},
which runs D source files as scripts, and @code{dustmite}, which reduces D code
to a minimal test case.")
(license license:boost1.0)))
;; D libraries
(define-public gtkd
(package
(name "gtkd")
@@ -746,8 +686,8 @@ to a minimal test case.")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/lievenhey/d_demangler")
(commit (string-append "version-" version))))
(url "https://github.com/lievenhey/d_demangler")
(commit (string-append "version-" version))))
(file-name (git-file-name name version))
(sha256
(base32
@@ -765,8 +705,8 @@ to a minimal test case.")
(install-file "libd_demangle.so"
(string-append #$output "/lib")))))))
(native-inputs (list dmd))
(synopsis "D symbol demangling library")
(description "@code{libd_demangle.so} is a small shared library that can be used to
demangle D symbols. It exposes a C interface that wraps D's @code{std.demangle}.")
(license license:gpl3+)
(home-page "https://github.com/lievenhey/d_demangler")))
(home-page "https://github.com/lievenhey/d_demangler")
(synopsis "Utility to demangle D symbols")
(description "@command{d_demangle} is a small utility that can be used to
demangle D symbols. A shared library is also provided.")
(license license:gpl3+)))
+253 -191
View File
@@ -76,11 +76,11 @@
#:use-module (gnu packages curl)
#:use-module (gnu packages documentation)
#:use-module (gnu packages elf)
#:use-module (gnu packages embedded)
#:use-module (gnu packages engineering)
#:use-module (gnu packages embedded)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gd)
@@ -99,31 +99,31 @@
#:use-module (gnu packages libedit)
#:use-module (gnu packages libffi)
#:use-module (gnu packages libftdi)
#:use-module (gnu packages logging)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm)
#:use-module (gnu packages logging)
#:use-module (gnu packages m4)
#:use-module (gnu packages man)
#:use-module (gnu packages markup)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages maths)
#:use-module (gnu packages m4)
#:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages regex)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-compression)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-science)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages regex)
#:use-module (gnu packages ruby)
#:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
@@ -132,16 +132,16 @@
#:use-module (gnu packages sqlite)
#:use-module (gnu packages stb)
#:use-module (gnu packages swig)
#:use-module (gnu packages tcl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tcl)
#:use-module (gnu packages tls)
#:use-module (gnu packages toolkits)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
#:use-module (gnu packages xorg)
#:use-module (gnu packages xml))
(define delkw (@@ (guix utils) delkw))
@@ -281,7 +281,7 @@ formal verification. This is the Yosyshq fork of ABC.")
(define-public apycula
(package
(name "apycula")
(version "0.31")
(version "0.28")
;; The pypi tar.gz file includes the necessary .pickle files, not available
;; in the home-page repository.
(source
@@ -289,24 +289,11 @@ formal verification. This is the Yosyshq fork of ABC.")
(method url-fetch)
(uri (pypi-uri "apycula" version))
(sha256
(base32 "0pf43cd071kv5ann78hl5qrcj9vhndr46ds2g12sgnfjfvh6pfpg"))))
(base32 "0llwcz4fji4sbdajlr43spf3mgdaw42rm15va1l9zb8314fn7wq1"))))
(build-system pyproject-build-system)
(arguments
(list #:tests? #f ;requires Gowin EDA tools
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-setup
(lambda _
;; Acceptable, but degraded performance.
(substitute* "setup.py"
((".*fastcrc.*") ""))))))) ;TODO: Package python-fastcrc
(propagated-inputs
(list python-cattrs
python-crcmod
python-numpy
python-msgpack
python-msgspec))
(native-inputs (list python-setuptools python-setuptools-scm))
(arguments (list #:tests? #f)) ;requires Gowin EDA tools
(inputs (list python-crc))
(native-inputs (list python-setuptools))
(home-page "https://github.com/YosysHQ/apicula/")
(synopsis "Gowin FPGA bitstream format")
(description
@@ -810,10 +797,71 @@ iCE40 FPGAs and providing simple tools for analyzing and creating bitstream
files.")
(license license:isc)))
(define-public json-for-vhdl
;; No tagged releases.
(let ((commit "0dc9e317440263cd4941f157f5e5668baa858ec2")
(revision "0"))
(package
(name "json-for-vhdl")
(version (git-version "20220905" revision commit)) ;last revision
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Paebbels/JSON-for-VHDL/")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1062g2c3dpsb67zhqrn1j04p7jl28g4mcxd6nhrqqfffjsvxkpw9"))))
(build-system copy-build-system)
(arguments
(list
#:install-plan
#~'(("src" "share/json-for-vhdl/work/src"
#:include ("vhdl")))
#:phases
#~(modify-phases %standard-phases
;; The examples/Encodings_VUnit test requires vhdl builtins.
(add-after 'unpack 'fix-check
(lambda _
(substitute* "tests/VUnit/run.py"
(("from_argv\\(\\)")
"from_argv()\nvu.add_vhdl_builtins()")))))))
(native-search-paths
(list (search-path-specification
(variable "FW_JSON_VHDL")
(separator #f)
(files (list "share/json-for-vhdl")))))
(home-page "https://github.com/Paebbels/JSON-for-VHDL/")
(synopsis "Parse and query JSON data structures in VHDL")
(description
"The JSON-for-VHDL library provides a parser to query JSON data
structures from external files on disk. It provides a context to be
used in the declarative section of design units.")
(license license:asl2.0))))
;;; Required by python-vunit.
(define json-for-vhdl-for-vunit
(let ((commit "95e848b8902c6b4275d715462e1a2cc60706917c") ;sync with vunit
(revision "0"))
(package
(inherit json-for-vhdl)
(name "json-for-vhdl-for-vunit")
(version (git-version "20220106" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Paebbels/JSON-for-VHDL/")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1c106hm0sfnzdi5j9vaacjlz7i5m1dm75j7lrgcdsa4siw5ac7k3")))))))
(define-public klayout
(package
(name "klayout")
(version "0.30.7")
(version "0.30.6") ;keep in sync with python-klayout
(source
(origin (method git-fetch)
(uri (git-reference
@@ -822,7 +870,7 @@ files.")
(file-name (git-file-name name version))
(sha256
(base32
"0xyrn9vhx871vm141hgsb9qrdim51vfk2mw8hcqyam1ixkbz5jjv"))))
"0p4achjlynhg5wc0zmxkzljx115l7vcg3mp3f8i8pjydv8visnh4"))))
(build-system copy-build-system)
(arguments
(list
@@ -1014,7 +1062,7 @@ an embedded event driven algorithm.")
(define-public librelane
(package
(name "librelane")
(version "3.0.0rc1")
(version "3.0.0rc0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1023,7 +1071,7 @@ an embedded event driven algorithm.")
(file-name (git-file-name name version))
(sha256
(base32
"1593qrpsczdlml5cqqrx51fvlpxr9k85l2aba2dj0fv7gink4hx0"))))
"1hi4ppdwl1zh7yw1ncy1jrqc6za4mz243mqvfjr7mcdm349pyvb0"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -1078,7 +1126,7 @@ an embedded event driven algorithm.")
python-rapidfuzz
python-rich
python-semver
python-yamlcore
python-yamlcore-0.0.2
ruby
verilator
yosys))
@@ -1308,6 +1356,7 @@ management with library, schematic and board editors.")
libparse, enabling dotlib file parsing.")
(license license:asl2.0)))
(define-public libpsf
;; There are no release nor tags.
(let ((commit "001dc734e01725e739847c8cde6480a0cf35a082")
@@ -1666,145 +1715,143 @@ circuits. This is commonly used as a part of toolchains in a process called
@acronym{LVS, layout versus schematic} with the intent to verify that the
layout of a circuit corresponds to the desired netlists.")
(license license:gpl1)))
(define-public nextpnr
(package
(name "nextpnr")
(version "0.10")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/YosysHQ/nextpnr/")
(commit (string-append "nextpnr-" version))
;; XXX: Fetch some bundled libraries such as QtPropertyBrowser,
;; json11 and python-console, which have custom modifications or
;; no longer have their original upstream.
(recursive? #t)))
(file-name (git-file-name name version))
(snippet
#~(begin
(use-modules (guix build utils)
(ice-9 ftw)
(srfi srfi-26))
;; XXX: 'delete-all-but' is copied from the turbovnc package.
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "3rdparty"
;; The following sources have all been patched, so
;; cannot easily be unbundled.
"QtPropertyBrowser"
"json11"
"python-console"
"oourafft"
"imgui"
"qtimgui")))
(sha256
(base32 "01iwavnnz9pik49mw8z83529grvaa45pvihivmnfzhq1z49cg0c2"))))
(outputs '("out" "bba"))
(build-system qt-build-system)
(arguments
(list
#:qtbase qtbase ;for Qt 6
#:configure-flags
#~(list "-DARCH=generic;ice40;ecp5;himbaechel"
"-DBUILD_GUI=ON"
"-DUSE_OPENMP=ON"
"-DBUILD_TESTS=ON"
"-DHIMBAECHEL_UARCH=ng-ultra;gowin;gatemate"
"-DHIMBAECHEL_NGULTRA_DEVICES=ng-ultra"
"-DHIMBAECHEL_SPLIT=ON"
(string-append "-DHIMBAECHEL_PRJBEYOND_DB="
(search-input-directory
%build-inputs "share/prjbeyond-db"))
(string-append "-DHIMBAECHEL_PEPPERCORN_PATH="
(search-input-directory
%build-inputs "share/prjpeppercorn"))
(string-append
"-DEXPORT_BBA_FILES=" #$output:bba "/share/nextpnr/bba-files")
(string-append "-DCURRENT_GIT_VERSION=nextpnr-" #$version)
(string-append "-DICESTORM_INSTALL_PREFIX="
#$(this-package-native-input "icestorm"))
(string-append "-DTRELLIS_INSTALL_PREFIX="
#$(this-package-native-input "prjtrellis")))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-test
(lambda _
(substitute* "himbaechel/uarch/gatemate/tests/lut.cc"
(("9LU") "8LU"))))
(add-after 'unpack 'unbundle-googletest
(lambda _
(substitute* "CMakeLists.txt"
(("add_subdirectory\\(3rdparty\\/googletest.*")
(string-append "find_package(GTest)\n"
"add_library(gtest_main ALIAS "
"GTest::gtest_main)\n"))
(("\\$\\{CMAKE_SOURCE_DIR}/3rdparty/googletest.*")
(string-append
#$(this-package-native-input "googletest") "/include)")))))
(add-after 'unpack 'unbundle-sanitizers-cmake
(lambda _
(substitute* "CMakeLists.txt"
;; Use the system sanitizers-cmake module. This is made
;; necessary 'sanitizers-cmake' installing a FindPackage
;; module but no CMake config file.
(("\\$\\{CMAKE_SOURCE_DIR}/3rdparty/sanitizers-cmake/cmake")
(string-append
#$(this-package-native-input "sanitizers-cmake")
"/share/sanitizers-cmake/cmake")))))
(add-after 'install 'run-tests
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(setenv "PATH"
(string-append #$output "/bin:" (getenv "PATH")))
;; ice40
(invoke "./nextpnr-ice40-test")
(chdir "../source")
(setenv "NEXTPNR" "nextpnr-ice40")
(with-directory-excursion "ice40/smoketest/attosoc"
(invoke "./smoketest.sh"))
(with-directory-excursion "tests/ice40/regressions"
(invoke "make" (string-append
"NPNR=" #$output "/bin/nextpnr-ice40")))
;; generic
(setenv "NPNR" "nextpnr-generic")
(invoke "nextpnr-generic" "--uarch" "example" "--test")
(with-directory-excursion "tests/generic/flow/bel-pin"
(invoke "./run.sh"))
;; ecp5
(invoke "nextpnr-ecp5"
"--um5g-25k" "--package" "CABGA381" "--test")
(with-directory-excursion "tests/ecp5/regressions"
(invoke "make"
(string-append
"NPNR=" #$output "/bin/nextpnr-ecp5")))))))))
(native-inputs
(list apycula
googletest
icestorm
iverilog
gzip
prjbeyond-db
`(,prjpeppercorn "db")
prjtrellis
python-minimal-wrapper
sanitizers-cmake
yosys))
(inputs
(list boost
eigen
pybind11))
(synopsis
"Place-and-Route tool for @acronym{FPGA, Field Programmable Gate Array}")
(description "@code{nextpnr} is an @acronym{EDA, Electronic Design
(let ((commit "d8117e3cadaa4f4db606b64a465b7638b05dac68")
(revision "1"))
(package
(name "nextpnr")
(version (git-version "0.9" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/YosysHQ/nextpnr/")
(commit commit)
;; XXX: Fetch some bundled libraries such as QtPropertyBrowser,
;; json11 and python-console, which have custom modifications or
;; no longer have their original upstream.
(recursive? #t)))
(file-name (git-file-name name version))
(snippet
#~(begin
(use-modules (guix build utils)
(ice-9 ftw)
(srfi srfi-26))
;; XXX: 'delete-all-but' is copied from the turbovnc package.
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "3rdparty"
;; The following sources have all been patched, so
;; cannot easily be unbundled.
"QtPropertyBrowser"
"json11"
"python-console"
"oourafft")))
(patches (search-patches "nextpnr-imgui.patch"))
(sha256
(base32 "0668adviwh8n9c5xy7k3qiyfn77rrzd79b403i3m19hhy8vq907p"))))
(outputs '("out" "bba"))
(build-system qt-build-system)
(arguments
(list
#:qtbase qtbase ;for Qt 6
#:configure-flags
#~(list "-DARCH=generic;ice40;ecp5;himbaechel"
"-DBUILD_GUI=ON"
"-DUSE_OPENMP=ON"
"-DBUILD_TESTS=ON"
"-DHIMBAECHEL_UARCH=ng-ultra;gowin;gatemate"
"-DHIMBAECHEL_NGULTRA_DEVICES=ng-ultra"
"-DHIMBAECHEL_SPLIT=ON"
(string-append "-DHIMBAECHEL_PRJBEYOND_DB="
(search-input-directory
%build-inputs "share/prjbeyond-db"))
(string-append "-DHIMBAECHEL_PEPPERCORN_PATH="
(search-input-directory
%build-inputs "share/prjpeppercorn"))
(string-append
"-DEXPORT_BBA_FILES=" #$output:bba "/share/nextpnr/bba-files")
(string-append "-DCURRENT_GIT_VERSION=nextpnr-" #$version)
(string-append "-DICESTORM_INSTALL_PREFIX="
#$(this-package-native-input "icestorm"))
(string-append "-DTRELLIS_INSTALL_PREFIX="
#$(this-package-native-input "prjtrellis")))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'unbundle-googletest
(lambda _
(substitute* "CMakeLists.txt"
(("add_subdirectory\\(3rdparty\\/googletest.*")
(string-append "find_package(GTest)\n"
"add_library(gtest_main ALIAS "
"GTest::gtest_main)\n"))
(("\\$\\{CMAKE_SOURCE_DIR}/3rdparty/googletest.*")
(string-append
#$(this-package-native-input "googletest") "/include)")))))
(add-after 'unpack 'unbundle-sanitizers-cmake
(lambda _
(substitute* "CMakeLists.txt"
;; Use the system sanitizers-cmake module. This is made
;; necessary 'sanitizers-cmake' installing a FindPackage
;; module but no CMake config file.
(("\\$\\{CMAKE_SOURCE_DIR}/3rdparty/sanitizers-cmake/cmake")
(string-append
#$(this-package-native-input "sanitizers-cmake")
"/share/sanitizers-cmake/cmake")))))
(add-after 'install 'run-tests
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(setenv "PATH"
(string-append #$output "/bin:" (getenv "PATH")))
;; ice40
(invoke "./nextpnr-ice40-test")
(chdir "../source")
(setenv "NEXTPNR" "nextpnr-ice40")
(with-directory-excursion "ice40/smoketest/attosoc"
(invoke "./smoketest.sh"))
(with-directory-excursion "tests/ice40/regressions"
(invoke "make" (string-append
"NPNR=" #$output "/bin/nextpnr-ice40")))
;; generic
(setenv "NPNR" "nextpnr-generic")
(invoke "nextpnr-generic" "--uarch" "example" "--test")
(with-directory-excursion "tests/generic/flow/bel-pin"
(invoke "./run.sh"))
;; ecp5
(invoke "nextpnr-ecp5"
"--um5g-25k" "--package" "CABGA381" "--test")
(with-directory-excursion "tests/ecp5/regressions"
(invoke "make"
(string-append
"NPNR=" #$output "/bin/nextpnr-ecp5")))))))))
(native-inputs
(list apycula
googletest
icestorm
iverilog
gzip
prjbeyond-db
`(,prjpeppercorn "db")
prjtrellis
python-minimal-wrapper
sanitizers-cmake
yosys))
(inputs
(list boost
eigen
pybind11-2
qtimgui))
(synopsis
"Place-and-Route tool for @acronym{FPGA, Field Programmable Gate Array}")
(description "@code{nextpnr} is an @acronym{EDA, Electronic Design
Automation}, portable and vendor neutral FPGA place and route tool.")
(home-page "https://github.com/YosysHQ/nextpnr/")
(license license:isc)))
(home-page "https://github.com/YosysHQ/nextpnr/")
(license license:isc))))
(define-public nextpnr-cli
(package
@@ -1817,6 +1864,9 @@ Automation}, portable and vendor neutral FPGA place and route tool.")
(substitute-keyword-arguments (package-arguments nextpnr)
((#:configure-flags flags '())
#~(delete! "-DBUILD_GUI=ON" #$flags)))))
(inputs
(modify-inputs (package-inputs nextpnr)
(delete "qtimgui")))
(synopsis
(string-append (package-synopsis nextpnr) " Cli only version."))))
@@ -1845,7 +1895,7 @@ Automation}, portable and vendor neutral FPGA place and route tool.")
(define-public nvc
(package
(name "nvc")
(version "1.19.3")
(version "1.19.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -1854,7 +1904,7 @@ Automation}, portable and vendor neutral FPGA place and route tool.")
(file-name (git-file-name name version))
(sha256
(base32
"1zizz2dafm53lzpjayy6vig5pz5ri9cszdivg0jzzh8s3ggkpy1i"))))
"1wcniiphnzk81y9p093v6zqq9vd7qhw08639svacwmhd8a67yr6b"))))
(build-system gnu-build-system)
(arguments
(list #:out-of-source? #t
@@ -2055,7 +2105,7 @@ chip database for NG-Ultra architecture from NanoXplore.")
(define-public prjpeppercorn
(package
(name "prjpeppercorn")
(version "1.12")
(version "1.9")
(source
(origin
(method git-fetch)
@@ -2064,7 +2114,7 @@ chip database for NG-Ultra architecture from NanoXplore.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "15qv7a0lpl671jlpafs9is0x0vms6i7jbkhp4l723lnr9kafqgm7"))))
(base32 "1z0kzkdham3pwh4fj03yyv9bla5v08mbv0ysbyq1snxr8cdabm8y"))))
(outputs (list "out"
"db")) ;FPGA database files
(build-system cmake-build-system)
@@ -2090,7 +2140,7 @@ chip database for NG-Ultra architecture from NanoXplore.")
(copy-recursively "tools"
(string-append datadir "/tools"))))))))
(inputs
(list boost))
(list boost-1.88))
(synopsis "GateMate FPGAs bitstream tools")
(description
"@code{Prjpeppercorn} includes programming tools for GateMate
@@ -2138,7 +2188,7 @@ architecture from Cologne Chip. It also provides data needed to produce a
(lambda _
(chdir "libtrellis"))))))
(native-inputs (list python-minimal-wrapper))
(inputs (list openocd boost pybind11))
(inputs (list openocd boost-1.88 pybind11-2))
(synopsis "Placement and routing for ECP5 FPGAs")
(description
"Project Trellis is a Nextpnr backend compatible with ECP5 FPGAs.
@@ -2551,8 +2601,16 @@ for @acronym{EDA, elecronic design automation} and chip design.")))
(define-public python-klayout
(package
(name "python-klayout")
(version (package-version klayout))
(source (package-source klayout))
(version "0.30.6") ;keep in sync with klayout
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/klayout/klayout")
(commit (string-append "v" version))))
(sha256
(base32 "0p4achjlynhg5wc0zmxkzljx115l7vcg3mp3f8i8pjydv8visnh4"))
(file-name (git-file-name name version))))
(build-system pyproject-build-system)
(arguments
(list
@@ -3300,7 +3358,7 @@ to enforce it.")
(define-public python-vunit
(package
(name "python-vunit")
(version "5.0.0-dev.9") ;v4.7.0 dates back from 2 years ago.
(version "5.0.0-dev.8") ;v4.7.0 dates back from 2 years ago.
(source
(origin
(method git-fetch)
@@ -3309,7 +3367,7 @@ to enforce it.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1j9rvlshzi4mdy7wah1j8ri63drkjb47xly22q40wvl2xp2ghqgs"))))
(base32 "0a1bz5jh28i59x63fkgqf333jb68bm2hjicg2zlahzyydr4y1wji"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -3319,31 +3377,35 @@ to enforce it.")
(srfi srfi-26))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-ghdl-version
(add-after 'unpack 'fix-ghdl-jit
(lambda _
;; Guix uses ghdl 6.0.0.
(substitute* "tests/unit/test_ghdl_interface.py"
(("GHDL 5\\.0\\.1") "GHDL 6.0.0")
(("GNAT Version: 14\\.2\\.0") "GNAT Version: 15.2.0"))))
;; TODO: Remove when fixed upstream (see:
;; https://github.com/VUnit/vunit/pull/1121).
(substitute* "vunit/sim_if/ghdl.py"
((": \"llvm\",")
(string-append
": \"llvm\",\n\tr\"static elaboration, LLVM JIT code "
"generator\": \"llvm-jit\",")))))
(add-after 'install 'unbundle
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((site-packages
(string-append (site-packages inputs outputs)
"/vunit/vhdl/")))
(mkdir-p (string-append site-packages "JSON-for-VHDL"))
(symlink
(search-input-directory inputs "share/json-for-vhdl/work/src")
(string-append site-packages "JSON-for-VHDL/src"))
(symlink
(search-input-directory inputs "share/osvvm/work/osvvm")
(string-append site-packages "osvvm")))))
(add-after 'check 'run-examples
;; Run examples as an extra check.
(lambda* (#:key tests? parallel-build? #:allow-other-keys)
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(with-directory-excursion "examples/vhdl"
(for-each
(lambda (dir)
(invoke "python3" (string-append dir "/run.py")
"-p" (if parallel-build?
(number->string (parallel-job-count))
"1"))
(invoke "python3" (string-append dir "/run.py"))
(delete-file-recursively "vunit_out"))
(scandir "."
(negate
@@ -3373,7 +3435,7 @@ to enforce it.")
python-setuptools
python-setuptools-scm))
(inputs
(list osvvm-2023.04))
(list json-for-vhdl-for-vunit osvvm-2023.04))
(propagated-inputs
(list python-colorama))
(home-page "https://vunit.github.io")
+31 -62
View File
@@ -204,14 +204,12 @@
#:use-module (gnu packages aspell)
#:use-module (gnu packages audio)
#:use-module (gnu packages bash)
#:use-module (gnu packages calendar)
#:use-module (gnu packages chez)
#:use-module (gnu packages cmake)
#:use-module (gnu packages code)
#:use-module (gnu packages cpp)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages dav)
#:use-module (gnu packages dictionaries)
#:use-module (gnu packages djvu)
#:use-module (gnu packages ebook)
@@ -8046,7 +8044,7 @@ next matching page.")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/alezost-emacs/bui.el")
(url "https://notabug.org/alezost/emacs-bui.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -8055,7 +8053,7 @@ next matching page.")
(build-system emacs-build-system)
(propagated-inputs
(list emacs-dash))
(home-page "https://gitlab.com/alezost-emacs/bui.el")
(home-page "https://notabug.org/alezost/emacs-bui")
(synopsis "Buffer interface library for Emacs")
(description
"BUI (Buffer User Interface) is a library for making @code{list} and
@@ -8124,7 +8122,7 @@ management tasks from Emacs. To begin with, run @code{M-x guix-about} or
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/alezost-emacs/build-farm")
(url "https://notabug.org/alezost/emacs-build-farm.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
@@ -8133,7 +8131,7 @@ management tasks from Emacs. To begin with, run @code{M-x guix-about} or
(build-system emacs-build-system)
(propagated-inputs
(list emacs-bui emacs-magit-popup))
(home-page "https://gitlab.com/alezost-emacs/build-farm")
(home-page "https://notabug.org/alezost/emacs-build-farm")
(synopsis "Emacs interface for Hydra and Cuirass build farms")
(description
"This Emacs package provides an interface for Hydra and
@@ -8409,41 +8407,6 @@ them whenever another command is invoked.")
a command.")
(license license:gpl3+)))
(define-public emacs-khalel
(package
(name "emacs-khalel")
(version "0.1.15")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/hperrey/khalel")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "06h5272kmg0ykf0zqdy2qwhlzszqsw176l1brk04bg8xyc3a4384"))))
(build-system emacs-build-system)
(arguments
(list
#:tests? #f ;no tests
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'locate-input-binaries
(lambda* (#:key inputs #:allow-other-keys)
(emacs-substitute-variables "khalel.el"
("khalel-khal-command"
(search-input-file inputs "/bin/khal"))
("khalel-vdirsyncer-command"
(search-input-file inputs "/bin/vdirsyncer"))))))))
(inputs (list khal vdirsyncer))
(home-page "https://gitlab.com/hperrey/khalel")
(synopsis "Interact with local or remote CalDAV calendars")
(description
"Khalel accesses calendars stored in ICS files and provides means of
listing existing events, edit them as well as to create new ones largely
through an Org mode interface.")
(license license:gpl3+)))
(define-public emacs-khardel
(package
(name "emacs-khardel")
@@ -21261,25 +21224,29 @@ required by the LaTeX output produced by Org mode.")
(license (license:fsf-free "https://www.tug.org/texlive/copying.html"))))
(define-public emacs-org-contacts
(package
(name "emacs-org-contacts")
(version "1.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://repo.or.cz/org-contacts")
(commit (string-append "release_" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1djnyswjbsb1k3ciyd2f9xfjfkhbkkfw3dzfmzzr8dx5v71gm47b"))))
(build-system emacs-build-system)
(home-page "https://repo.or.cz/org-contacts")
(synopsis "Contacts management system for Org mode")
(description "Manage your contacts from Org mode. You can auto
;; XXX: Upstream does not tag version bumps. Commit below matches latest
;; version bump.
(let ((commit "217ba04c9d638067a6ccb0829cf1885f54c1d568"))
(package
(name "emacs-org-contacts")
(version "1.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://repo.or.cz/org-contacts")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0f0vjdvx0hffj2xvyrya8yfl77djmzmpxdxsx58ym4lmdvwyb6x3"))))
(build-system emacs-build-system)
(propagated-inputs (list emacs-org))
(home-page "https://repo.or.cz/org-contacts")
(synopsis "Contacts management system for Org mode")
(description "Manage your contacts from Org mode. You can auto
complete email addresses, export contacts to a vCard file, put birthdays
in your Org Agenda, and more.")
(license license:gpl3+)))
(license license:gpl3+))))
(define-public emacs-org-vcard
(package
@@ -41956,10 +41923,10 @@ service, and connect it with Emacs via inter-process communication.")
(license license:gpl3+))))
(define-public emacs-telega
(let ((commit "805819bf81dffe2922e9e06ae02d58429d03aa1a"))
(let ((commit "70945291fff62ad0c8c2d2c28cbad319138ae811"))
(package
(name "emacs-telega")
(version "0.8.601") ; see telega-version in telega.el
(version "0.8.600") ; see telega-version in telega.el
(source
(origin
(method git-fetch)
@@ -41967,7 +41934,7 @@ service, and connect it with Emacs via inter-process communication.")
(url "https://github.com/zevlg/telega.el")
(commit commit)))
(sha256
(base32 "0d02ymr5fw6fknzf9ikaky48swd9yfp5zn846zlwb5083p6bpmis"))
(base32 "08z81m3aa7lf895iy5fkdp52qkvl2nw1r1k1k67dipnyrj4y2bfk"))
(file-name (git-file-name "emacs-telega" version))
(patches
(search-patches "emacs-telega-test-env.patch"))))
@@ -42024,8 +41991,10 @@ service, and connect it with Emacs via inter-process communication.")
(string-append ";; " all))))))))
(inputs
(list emacs-telega-server ffmpeg tgs2png))
(native-inputs '())
(propagated-inputs
(list emacs-transient ; requires 0.9.0
(list emacs-company
emacs-transient ; requires 0.9.0
emacs-visual-fill-column))
(home-page "https://zevlg.github.io/telega.el/")
(synopsis "GNU Emacs client for the Telegram messenger")
+6 -6
View File
@@ -255,7 +255,7 @@ wallet and graphical user interface.")
(define-public bitcoin-cash-node
(package
(name "bitcoin-cash-node")
(version "29.0.0")
(version "28.0.1")
(source
(origin
(method git-fetch)
@@ -264,7 +264,7 @@ wallet and graphical user interface.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0fk0zfnl99552yfhzzvzj46lg16fr4dbgh0agp5pqll30wbk78d9"))))
(base32 "19v38clhxg6yd4xb8wh8bm3sf1ipv3ifg68nwgq0p8l5zqx41wgw"))))
(build-system cmake-build-system)
(native-inputs
(list help2man
@@ -1014,7 +1014,7 @@ the Monero command line client and daemon.")
(define-public monero-gui
(package
(name "monero-gui")
(version "0.18.4.7")
(version "0.18.4.6")
(source
(origin
(method git-fetch)
@@ -1030,7 +1030,7 @@ the Monero command line client and daemon.")
;; See the 'extract-monero-sources' phase.
(delete-file-recursively "monero")))
(sha256
(base32 "1nbv07jjwznz2x0ch1467vhnd0b4j3y01gv78dzbm7pilbb9wh72"))))
(base32 "0l2ris97ibl2smyd4dyav5d81ky22nyv21qhzmmxsbgz3ds7d1mx"))))
(build-system qt-build-system)
(native-inputs
`(,@(package-native-inputs monero)
@@ -2603,7 +2603,7 @@ mining.")
(define-public p2pool
(package
(name "p2pool")
(version "4.14")
(version "4.13")
(source
(origin
(method git-fetch)
@@ -2612,7 +2612,7 @@ mining.")
(commit (string-append "v" version))
(recursive? #t)))
(file-name (git-file-name name version))
(sha256 (base32 "10dp6kxmvdx5lz4n144s9av32nzfxgfw28kf92dnmrv13q5p7id2"))
(sha256 (base32 "1flpr0kzyl72hm5vjs9jixiv8fdhvwchlz3p2banb8naxlpads0x"))
(modules '((guix build utils)))
(snippet
#~(for-each delete-file-recursively
+5 -88
View File
@@ -447,87 +447,6 @@ referred to as the \"Odin 3 protocol\".")
dump Intel Firmware Descriptor data of an image file.")
(license license:gpl2)))
(define-public bincfg
(package
(name "bincfg")
(version "25.09")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://review.coreboot.org/coreboot")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1a1n64dwr5fzdnaj45bjci85ap5yra5gwz4x056zn6481xwvbsmv"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; no test suite
#:make-flags
#~(list
(string-append "CC=" #$(cc-for-target)))
#:phases
#~(modify-phases %standard-phases
(delete 'configure) ; no configure script
(add-after 'unpack 'chdir
(lambda _
(chdir "util/bincfg")))
(add-after 'build 'build-binaries
(lambda* (#:key make-flags #:allow-other-keys)
(for-each
(lambda (target result)
(apply invoke "make" (string-append "gen-" target) make-flags)
(rename-file result
(string-append target ".bin")))
(list
;; generate GbE for X200
"gbe-ich9m"
;; generate GbE for X220/x230
"gbe-82579LM"
;; generate IFD for X200
"ifd-x200")
(list
"flashregion_3_gbe.bin"
"flashregion_3_gbe.bin"
"flashregion_0_fd.bin"))))
;; The Makefile has no install target.
(replace 'install
(lambda _
(let ((bin (string-append #$output "/bin"))
(lib (string-append #$output "/lib/bincfg"))
(data (string-append #$output "/share/bincfg")))
;; Install the program
(install-file "bincfg" bin)
;; And its data
(for-each
(lambda (path)
(install-file path data))
(append (find-files "." ".*\\.set")
(find-files "." ".*\\.spec")))
;; And the files generated with the data
(for-each
(lambda (path)
(install-file path lib))
(find-files "." ".*\\.bin"))))))))
(native-inputs (list bison flex))
(home-page "https://coreboot.org")
(synopsis "Encoder/decoder for binary formats described in text files")
(description "
The bincfg program comes with specifications files for the following binary
formats:
@itemize
@item Various DDR3 and DDR4 SPD
@item Configuration data for the Intel 82579LM Gigabit Ethernet PHY
@item Configuration data for the Intel Gigabit Ethernet controller present in
the Intel ICH9-M chipset.
@item Intel Firmware Descriptor data for the Lenovo ThinkPad X200
@item Configuration data for the ITE IT8718F SuperIO
@end itemize
It also comes with example files generated by bincfg.")
(license license:gpl3+)))
(define-public intelmetool
(package
(name "intelmetool")
@@ -694,7 +613,7 @@ Unifinished Extensible Firmware Interface (UEFI) images.")
(define-public openfpgaloader
(package
(name "openfpgaloader")
(version "1.1.1")
(version "1.1.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -703,7 +622,7 @@ Unifinished Extensible Firmware Interface (UEFI) images.")
(file-name (git-file-name name version))
(sha256
(base32
"00wbf7z5f55422fmqczxc6f7a2lmr52m1qx8m3ky5gl006rkf0sm"))))
"1jr9vx0r53h2wkmcyjkc5l90wvk4glinlkf42m00j7rp41bckfvp"))))
(build-system cmake-build-system)
(native-inputs
(list pkg-config))
@@ -719,11 +638,9 @@ Unifinished Extensible Firmware Interface (UEFI) images.")
#~(modify-phases %standard-phases
(add-after 'install 'install-rules
(lambda _
(for-each
(lambda (f)
(install-file
f (string-append #$output "/lib/udev/rules.d/")))
(find-files "../source" "\\.rules$")))))))
(install-file
"../source/99-openfpgaloader.rules"
(string-append #$output "/lib/udev/rules.d/")))))))
(synopsis "Utility for programming FPGA")
(description "This package provides a program to transfer a bitstream
to an FPGA. To use @code{openfpgaloader} without root privileges it is
+2 -1
View File
@@ -4206,7 +4206,8 @@ characteristic so that they sit smoothly with the Tamil glyphs.")
(base32 "1594lxdk6788bb3i3c2fh74z4pwpzcp2r1xl3cz8cz77nrcjkl8m"))))
(build-system trivial-build-system)
(arguments
(list #:modules '((guix build utils))
(list #:modules '((guix build utils)
(ice-9 ftw))
#:builder
#~(let* ((orig #$(package-source this-package))
(dist (string-append orig "/dist/v" #$version))
+19 -191
View File
@@ -19,7 +19,6 @@
;;; Copyright © 2024 Nguyễn Gia Phong <cnx@loang.net>
;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2025 Leo Nikkilä <hello@lnikki.la>
;;; Copyright © 2025-2026 Jonas Meeuws <jonas.meeuws@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -56,10 +55,8 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix memoization)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module (guix search-paths)
#:use-module (guix utils)
@@ -1427,195 +1424,26 @@ as the 'native-search-paths' field."
"gfortran" '("fortran")
%generic-search-paths)))
(define* (make-gdc gcc #:optional bootstrap-gdc #:key frontend-version)
(define gdc (custom-gcc gcc "gdc" '("d") (list $LIBRARY_PATH)))
(define version (package-version gdc))
(define (since-version? since) (version>=? version since))
(define (until-version? until) (version>? until version))
(package
(inherit gdc)
(arguments
(substitute-keyword-arguments (package-arguments gdc)
((#:modules modules)
`(,@modules
(ice-9 ftw)))
((#:configure-flags flags)
#~(append
#$flags
(list "--disable-c++tools"
#$@(if (since-version? "11") #~("--disable-libatomic") #~())
"--disable-libcc1"
"--disable-libgomp"
"--disable-libitm"
"--disable-libquadmath"
"--disable-libsanitizer"
"--disable-libssp"
#$@(if (until-version? "15") #~("--disable-libstdcxx") #~())
"--disable-plugin")))
((#:phases phases)
#~(modify-phases #$phases
(add-after 'strip 'gdc-cleanup-install
(lambda* (#:key outputs #:allow-other-keys)
(define (delete-except-matches prefix patterns)
;; Remove all files except for those matching any of the
;; patterns.
(define (should-delete? path statbuf)
(define suffix (substring path (string-length prefix)))
(not (or (zero? (string-length suffix))
(any (cut string-match <> suffix)
patterns))))
(for-each (lambda (path)
(format #t "Deleting ~a\n" path)
(delete-file path))
(find-files prefix should-delete?))
;; Clean up empty directories.
(define (dir-empty? path statbuf)
(and (eq? (stat:type statbuf) 'directory)
(zero? (length (filter
(lambda (name)
(not (or (string=? name ".")
(string=? name ".."))))
(scandir path))))))
(while #t
(let* ((empty-dirs (find-files prefix dir-empty?
#:stat lstat
#:directories? #t)))
(if (zero? (length empty-dirs))
(break)
(for-each rmdir empty-dirs)))))
;; Leave out non-GDC binaries, man pages, locale files, and
;; c++ headers.
(delete-except-matches
(assoc-ref outputs "out")
(list "^/bin/.*gdc$"
"^/libexec/"
"^/share/info/gdc"
"^/share/man/man1/gdc"
"^/share/man/man7/"))
;; Leave out C/C++ libraries, headers and empty directories.
(delete-except-matches
(assoc-ref outputs "lib")
(list "^/lib/gcc/.*/include/d/"
"^/lib/gcc/.*/.*\\.[ao]$"
"^/lib/libgcc_s.*"
"^/lib/libgdruntime.*"
"^/lib/libgphobos.*"))
;; Repeat for the debug files.
(delete-except-matches
(assoc-ref outputs "debug")
(list "^/lib/debug/.*/bin/.*gdc\\.debug$"
"^/lib/debug/.*/lib/libgcc_s"
"^/lib/debug/.*/lib/libgdruntime"
"^/lib/debug/.*/lib/libgphobos"))))))))
(inputs
(modify-inputs (package-inputs gdc)
;; This makes flags like -static-libstdc++ work. Required for using this
;; compiler as a bootstrap compiler for GDC 12+.
;; Additionally, this allows us to support linking with GCC libraries,
;; without building or storing them ourselves.
(append (list gcc "lib"))))
(native-inputs
(let ((orig (package-native-inputs gdc)))
(if bootstrap-gdc
(modify-inputs orig
;; Since GCC 12, GDC is self-hosted, requiring a version of itself
;; to build.
(append bootstrap-gdc))
orig)))
(synopsis "GNU D Compiler")
(description
(string-append
"GDC is the D frontend for the @acronym{GNU Compiler Collection,GCC}. It
also includes the druntime and phobos libraries."
(if frontend-version
(format #f "~%~%This compiler is based on the DMD frontend version ~a."
frontend-version)
"")))
(home-page "https://www.gdcproject.org/")))
(define-public gdc-11 ;kept for bootstrapping
(hidden-package
(custom-gcc gcc-11 "gdc" '("d")
%generic-search-paths)))
(define-public gdc-9
(make-gdc gcc-9 #:frontend-version "2.076.2"))
(define-public gdc-10
(make-gdc gcc-10 #:frontend-version "2.076.2"))
(define-public gdc-11
(make-gdc gcc-11 #:frontend-version "2.076.2"))
(define-public gdc-12
(make-gdc gcc-12 gdc-11 #:frontend-version "2.100.2"))
(define-public gdc-13
(make-gdc gcc-13 gdc-11 #:frontend-version "2.103.1"))
(define-public gdc-14
(make-gdc gcc-14 gdc-11 #:frontend-version "2.108.1"))
(define-public gdc-15
(make-gdc gcc-15 gdc-11 #:frontend-version "2.111.0"))
(define-public gdc gdc-14)
(define* (make-gdmd gdc)
(let ((gdc-version (package-version gdc))
(gdmd-version "0.26.0"))
(package
(name "gdmd")
(version (string-append gdc-version "-" gdmd-version))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/D-Programming-GDC/gdmd")
(commit (string-append "script-" gdmd-version))))
(file-name (git-file-name name gdmd-version))
(sha256
(base32
"0i9warhlwyspjs3rpvs2989820909lgzjnsflpd9mp2flq7isjh0"))))
(build-system copy-build-system)
(arguments
(list
#:install-plan
#~'(("dmd-script" "bin/gdmd")
("dmd-script.1" "share/man/man1/gdmd.1"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'adjust-gdc-location
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "dmd-script"
(("my \\$gdc_dir.*")
(string-append "my $gdc_dir = \""
(dirname
(search-input-file inputs "/bin/gdc"))
"\";\n"))))))))
(inputs (list gdc perl))
(synopsis "DMD-like wrapper for GDC")
(description "This package provides a DMD-like wrapper for the
@acronym{GNU D Compiler,GDC}.")
(license gpl3+)
(home-page "https://github.com/D-Programming-GDC/gdmd"))))
(define-public gdmd-9
(make-gdmd gdc-9))
(define-public gdmd-10
(make-gdmd gdc-10))
(define-public gdmd-11
(make-gdmd gdc-11))
(define-public gdmd-12
(make-gdmd gdc-12))
(define-public gdmd-13
(make-gdmd gdc-13))
(define-public gdmd-14
(make-gdmd gdc-14))
(define-public gdmd-15
(make-gdmd gdc-15))
(define-public gdmd gdmd-14)
;;; Alias tracking the latest GDC version.
(define-public gdc
(hidden-package
(let ((base (custom-gcc gcc
"gdc" '("d")
%generic-search-paths)))
(package
(inherit base)
(native-inputs
(modify-inputs (package-native-inputs base)
;; Since GCC 12, GDC is self-hosted, requiring a version of itself
;; to build.
;; XXX: GCC must be prepended as well to avoid an issue with the C++
;; headers ordering.
(prepend gcc gdc-11)))))))
(define-public gm2
(hidden-package
+13 -9
View File
@@ -20,7 +20,7 @@
;;; Copyright © 2021, 2022 Nikolay Korotkiy <sikmir@disroot.org>
;;; Copyright © 2022 Patrick Noll <patrick@patricknoll.com>
;;; Copyright © 2022 Roman Scherer <roman.scherer@burningswell.com>
;;; Copyright © 2022-2023, 2026 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2024 Wilko Meyer <w@wmeyer.eu>
;;; Copyright © 2024 Jonathan Brielmaier <jonathan.brielmaier@web.de>
@@ -500,7 +500,7 @@ topology functions.")
(define-public gnome-maps
(package
(name "gnome-maps")
(version "49.4")
(version "49.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/"
@@ -508,7 +508,7 @@ topology functions.")
name "-" version ".tar.xz"))
(sha256
(base32
"1c04z2ly9vri98gmn4p5lhmfxhqjsc6rqz7kyprf0shdsicazyl6"))))
"1pxx50cig25dz0ab5xkbppnibb4zcv3r3vy31dkn6ncf24vykj5z"))))
(build-system meson-build-system)
(arguments
(list
@@ -532,9 +532,14 @@ topology functions.")
"share/zoneinfo"))))
(add-after 'install 'wrap
(lambda _
(wrap-program (string-append #$output "/bin/gnome-maps")
`("GI_TYPELIB_PATH" ":" prefix
(,(getenv "GI_TYPELIB_PATH")))))))))
(let ((gi-typelib-path (getenv "GI_TYPELIB_PATH")))
(substitute* (string-append #$output "/share/gnome-maps/"
"org.gnome.Maps")
(("imports\\.package\\.init" all)
(string-append "'" gi-typelib-path "'.split(':').forEach("
"path => imports.gi.GIRepository.Repository."
"prepend_search_path(path));\n"
all)))))))))
(native-inputs
(list gettext-minimal
`(,glib "bin")
@@ -543,8 +548,7 @@ topology functions.")
pkg-config
tzdata-for-tests))
(inputs
(list bash-minimal
folks
(list folks
evolution-data-server
geoclue
geocode-glib
@@ -563,7 +567,7 @@ topology functions.")
libshumate
libsoup
libxml2
webkitgtk))
webkitgtk-for-gtk3))
(synopsis "Graphical map viewer and wayfinding program")
(description "GNOME Maps is a graphical map viewer. It uses map data from
the OpenStreetMap project. It can provide directions for walking, bicycling,
+11 -76
View File
@@ -39,7 +39,7 @@
;;; Copyright © 2019, 2024, 2025 Giacomo Leidi <therewasa@fishinthecalculator.me>
;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
;;; Copyright © 2019-2026 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2019-2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2019 David Wilson <david@daviwil.com>
;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
@@ -188,7 +188,6 @@
#:use-module (gnu packages ncurses)
#:use-module (gnu packages nettle)
#:use-module (gnu packages networking)
#:use-module (gnu packages node-xyz)
#:use-module (gnu packages nss)
#:use-module (gnu packages ocr)
#:use-module (gnu packages openldap)
@@ -653,73 +652,6 @@ of writing test cases for asynchronous interactions.")
(home-page "https://launchpad.net/gtx")
(license license:lgpl2.1+)))
(define-public decibels
(package
(name "decibels")
(version "49.0")
(source
(origin
(method url-fetch)
(uri
(string-append "mirror://gnome/sources/" name "/"
(version-major version) "/"
name "-" version ".tar.xz"))
(sha256
(base32
"1jkkyv9r87skqyjhzflzzczzwf3ycwnavw1r3qa6jzlnwai9pdr9"))))
(build-system meson-build-system)
(arguments
(list
#:glib-or-gtk? #t
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-gst-init
(lambda _
;; `null' is no longer accepted as of gstreamer 2.28.1 (see:
;; <https://gitlab.gnome.org/GNOME/decibels/-/merge_requests/178>).
(substitute* "src/stream.ts"
(("Gst.init\\(null)")
"Gst.init([])"))))
(add-after 'unpack 'skip-gnome-post-install
(lambda _
(substitute* "meson.build"
(("gtk_update_icon_cache: true")
"gtk_update_icon_cache: false")
(("update_desktop_database: true")
"update_desktop_database: false"))))
(add-after 'install 'wrap-program
(lambda _
(let ((typelib-path (getenv "GI_TYPELIB_PATH")))
(wrap-program (string-append #$output "/bin/org.gnome.Decibels")
`("GI_TYPELIB_PATH" ":" prefix (,typelib-path))))))
(add-after 'glib-or-gtk-wrap 'install-alias
(lambda _
(symlink (string-append #$output "/bin/org.gnome.Decibels")
(string-append #$output "/bin/decibels")))))))
(native-inputs
(list blueprint-compiler
gettext-minimal
`(,glib "bin")
pkg-config
node-typescript))
(inputs
(list bash-minimal
gjs
gst-plugins-bad ;for GstPlay
gstreamer
libadwaita))
(home-page "https://gitlab.gnome.org/GNOME/decibels")
(synopsis "GNOME audio file player")
(description "Decibels, also known as Audio Player, is an audio player
focused on simplicity. It offers few advanced features such as:
@itemize
@item{An elegant waveform of the track.}
@item{Adjustable playback speed.}
@item{Easy seek controls.}
@item{Playing multiple files at the same time.}
@end itemize")
(license license:gpl3+)))
(define-public dee
(package
(name "dee")
@@ -983,7 +915,6 @@ tomorrow, the rest of the week and for special occasions.")
gtk
gvfs
json-glib
localsearch
libadwaita
libdazzle
libmediaart
@@ -991,7 +922,8 @@ tomorrow, the rest of the week and for special occasions.")
python-pycairo
python-pygobject
python
tinysparql))
tracker
tracker-miners))
(synopsis "Simple music player for GNOME desktop")
(description "GNOME Music is the new GNOME music playing application that
aims to combine an elegant and immersive browsing experience with simple
@@ -10480,7 +10412,6 @@ playing media, scanning, and much more.")
(propagated-inputs
(list baobab
cheese
decibels
epiphany
evince
file-roller
@@ -10514,7 +10445,7 @@ playing media, scanning, and much more.")
dbus
dconf
desktop-file-utils
font-adwaita
font-abattis-cantarell
font-dejavu
gnome-default-applications
gnome-online-accounts
@@ -12541,7 +12472,7 @@ desktop environment.")
(define-public gnome-boxes
(package
(name "gnome-boxes")
(version "49.1")
(version "48.1")
(source
(origin
(method url-fetch)
@@ -12549,7 +12480,7 @@ desktop environment.")
(version-major version) "/"
"gnome-boxes-" version ".tar.xz"))
(sha256
(base32 "1jj41r9ras2ys0r2cw8f5bs3nkz0fj1jl693sc5q50yhvl0qhism"))))
(base32 "1q2zzq6hizz5dillhqqddddlyjz7wy1sffyj06mh9axdrpa5aaj1"))))
(outputs '("out" "debug"))
(build-system meson-build-system)
(arguments
@@ -12565,7 +12496,11 @@ desktop environment.")
(substitute* "src/installed-media.vala"
(("qemu-img")
(search-input-file inputs
"/bin/qemu-img"))))))))
"/bin/qemu-img")))))
(add-before 'configure 'relax-gcc-14-strictness
(lambda _
(setenv "CFLAGS"
"-g -O2 -Wno-error=int-conversion"))))))
(native-inputs
(list desktop-file-utils ;for update-desktop-database
gettext-minimal
+1 -26
View File
@@ -21,7 +21,7 @@
;;; Copyright © 2023 Jack Hill <jackhill@jackhill.us>
;;; Copyright © 2023 Miguel Ángel Moreno <mail@migalmoreno.com>
;;; Copyright © 2023 conses <contact@conses.eu>
;;; Copyright © 2023, 2024, 2026 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2023, 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2024 Jean Simard <woshilapin@tuziwo.info>
;;; Copyright © 2024 Jesse Eisses <jesse@eisses.email>
;;; Copyright © 2024 Superfly Johnson <superfly.johnson@yahoo.com>
@@ -182,31 +182,6 @@ can be ignored.")
keys, no configuration options, and Unix-style composability.")
(license license:bsd-3)))
(define-public go-filippo-io-bigmod
(package
(name "go-filippo-io-bigmod")
(version "0.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/FiloSottile/bigmod")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "029h8qh9ym384q56aprm1if9arq7kmqdsv6l2wbjhkq8w307vd7r"))))
(build-system go-build-system)
(propagated-inputs
(list go-golang-org-x-sys))
(arguments
'(#:import-path "filippo.io/bigmod"))
(home-page "https://github.com/FiloSottile/bigmod")
(synopsis "Constant-time library for big integers modulo a prime")
(description "Bigmod is a constant-time library for big integers modulo a
prime, usable for cryptographic applications. Exported from
crypto/internal/bigmod, the backend of crypto/rsa and crypto/ecdsa.")
(license license:bsd-3)))
(define-public go-filippo-io-edwards25519
(package
(name "go-filippo-io-edwards25519")
+4 -4
View File
@@ -1125,7 +1125,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(package
(inherit go-1.24)
(name "go")
(version "1.25.8")
(version "1.25.7")
(source
(origin
(method git-fetch)
@@ -1134,7 +1134,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(commit (string-append "go" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0vgz80mrxlkljr8ynficwvshinirqxbiv2ikscf941ladbv0g604"))))
(base32 "0mjygpbswf91af07bbc1xpbw1adbcd210401rp5wpqv6d5rqn3jc"))))
(arguments
(substitute-keyword-arguments (package-arguments go-1.24)
((#:phases phases)
@@ -1170,7 +1170,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(package
(inherit go-1.24)
(name "go")
(version "1.26.1")
(version "1.26.0")
(source
(origin
(method git-fetch)
@@ -1179,7 +1179,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(commit (string-append "go" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1blfc89jxlr7n35j77i523k8rsxvz16f44qzd0h65c940zrrmf77"))))
(base32 "1n37n62bg2kb39s4a5273lpmqk1n5f5yi6jgfm8m7489j11ay8rl"))))
(arguments
(substitute-keyword-arguments (package-arguments go-1.24)
((#:phases phases)
+27 -43
View File
@@ -338,14 +338,14 @@ another.")
(define-public orc
(package
(name "orc")
(version "0.4.42")
(version "0.4.41")
(source (origin
(method url-fetch)
(uri (string-append "https://gstreamer.freedesktop.org/data/src/"
"orc/orc-" version ".tar.xz"))
(sha256
(base32
"03694b8jnaqhi9z49v45qchcbvp1i9maamn4fiwcjg5gb6mi5jby"))))
"18kz8sc8vh0rzk0n221zc8km9pp9gdcjsr04phwwv2ajcm7zs6yb"))))
(build-system meson-build-system)
(arguments
`(#:phases
@@ -375,7 +375,7 @@ arrays of data.")
(define-public gstreamer-docs
(package
(name "gstreamer-docs")
(version "1.28.1")
(version "1.26.3")
(source (origin
(method url-fetch)
(uri (string-append
@@ -383,7 +383,7 @@ arrays of data.")
"/gstreamer-docs-" version ".tar.xz"))
(sha256
(base32
"0bp2rffj82a8c5l119dv4kxjkl1l35d9b0lynfc0vk2krcrb5xyv"))))
"11q0yydchisd4c0jnqa6kmnf66kf25fim3l456krlwcy1qpsvd4j"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
@@ -435,7 +435,7 @@ the GStreamer multimedia framework.")
(define-public gstreamer
(package
(name "gstreamer")
(version "1.28.1")
(version "1.26.3")
(source
(origin
(method url-fetch)
@@ -444,7 +444,7 @@ the GStreamer multimedia framework.")
version ".tar.xz"))
(sha256
(base32
"0125cqbm5a2bhi37bzs6hgj89r057py3zhkmrfc8ggxx6px2ypmn"))))
"1016z0znl2j43n08rl19zdhfvfsgnmg44qh8fk6dr4qj481icrnw"))))
(build-system meson-build-system)
(arguments
(list #:disallowed-references (list (this-package-native-input "python"))
@@ -516,7 +516,7 @@ This package provides the core library and elements.")
(define-public gst-plugins-base
(package
(name "gst-plugins-base")
(version "1.28.1")
(version "1.26.3")
(source
(origin
(method url-fetch)
@@ -524,13 +524,11 @@ This package provides the core library and elements.")
name "-" version ".tar.xz"))
(sha256
(base32
"15r42ff1mwkj5p3z0dij6d9isi1q02gmjnp8i26xgx9gm71a8ihl"))
(patches (search-patches "gst-plugins-base-null-pointer.patch"))))
"0cvrq9767w0aqzinifbirbc95jg4i4md4b8f4b70hlq217pzkyaf"))))
(build-system meson-build-system)
(propagated-inputs
(list glib ;required by gstreamer-sdp-1.0.pc
gstreamer ;required by gstreamer-plugins-base-1.0.pc
libdrm ;required by gstreamer-allocators-1.0.pc
libgudev ;required by gstreamer-gl-1.0.pc
;; wayland-client.h is referred to in
;; include/gstreamer-1.0/gst/gl/wayland/gstgldisplay_wayland.h
@@ -572,8 +570,9 @@ This package provides the core library and elements.")
(lambda _
(substitute* "tests/check/meson.build"
;; This test causes nondeterministic failures (see:
;; <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/895>).
((".*'elements/appsrc.c'.*") ""))
;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/950).
((".*'elements/appsrc.c'.*")
""))
;; Some other tests fail on other architectures.
#$@(cond
((target-x86-32?)
@@ -625,7 +624,7 @@ for the GStreamer multimedia library.")
(define-public gst-plugins-good
(package
(name "gst-plugins-good")
(version "1.28.1")
(version "1.26.3")
(source
(origin
(method url-fetch)
@@ -634,7 +633,7 @@ for the GStreamer multimedia library.")
"https://gstreamer.freedesktop.org/src/" name "/"
name "-" version ".tar.xz"))
(sha256
(base32 "139n8in88003dbx4kv6i69zhl4bs07f1mf201q2n4yhvwjp2d3kk"))))
(base32 "0lrwscda9yy8a61bv65c3392vb5m8phrl5i7bwgbprnz1rkwjkpy"))))
(build-system meson-build-system)
(arguments
(list
@@ -745,14 +744,14 @@ model to base your own plug-in on, here it is.")
(define-public gst-plugins-bad
(package
(name "gst-plugins-bad")
(version "1.28.1")
(version "1.26.3")
(source (origin
(method url-fetch)
(uri (string-append "https://gstreamer.freedesktop.org/src/"
name "/" name "-" version ".tar.xz"))
(sha256
(base32
"18hk8gh97r2cwdazl5ikjwsczk3bkvr4z7nmjc45bdgqhwvmkhan"))
"0qbmblksgl2nmbi6brw54b1bzziw9flvqk2zb576y9qlmyn8vi4m"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -958,7 +957,7 @@ par compared to the rest.")
(define-public gst-plugins-ugly
(package
(name "gst-plugins-ugly")
(version "1.28.1")
(version "1.26.3")
(source
(origin
(method url-fetch)
@@ -966,7 +965,7 @@ par compared to the rest.")
(string-append "https://gstreamer.freedesktop.org/src/"
name "/" name "-" version ".tar.xz"))
(sha256
(base32 "0y2sz79ms498mag3rsvkng8q5pmg9f2v0njfq3zw7k1z0v5z70j0"))))
(base32 "19fvv6rvrcvhw4lnx078xb4b85pzbwbrqwdk841sqd7pjpl5wzs1"))))
(build-system meson-build-system)
(arguments
(list #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
@@ -1015,7 +1014,7 @@ think twice about shipping them.")
(define-public gst-libav
(package
(name "gst-libav")
(version "1.28.1")
(version "1.26.3")
(source
(origin
(method url-fetch)
@@ -1024,7 +1023,7 @@ think twice about shipping them.")
"https://gstreamer.freedesktop.org/src/" name "/"
name "-" version ".tar.xz"))
(sha256
(base32 "16zfxw6h865sqi71j47lllr3y7jlnwsrwmfxvjnxh3wdlfn1madz"))))
(base32 "0kbjs8z545maj3j2qzgpg41v3yr53q1c852v80zbmf5rld87xnis"))))
(build-system meson-build-system)
(native-inputs (list perl pkg-config python-wrapper ruby))
(inputs (list ffmpeg))
@@ -1038,7 +1037,7 @@ decoders, muxers, and demuxers provided by FFmpeg.")
(define-public gst-editing-services
(package
(name "gst-editing-services")
(version "1.28.1")
(version "1.26.3")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1046,7 +1045,7 @@ decoders, muxers, and demuxers provided by FFmpeg.")
"gst-editing-services-" version ".tar.xz"))
(sha256
(base32
"1p0ml4yyqs840l9zlgw41k1lh8z9jvaangap5azfwsrmw75h0q1x"))))
"1lkgs5h76qzqfpqvi31vs5xr68bbi0kwkw2g0ahvcs1l5hysj86x"))))
(build-system meson-build-system)
(arguments
(list
@@ -1094,7 +1093,7 @@ given, also pass them to the build system instead of the ones used by PKG."
#~(modify-phases #$phases
(add-after 'unpack 'disable-auto-plugins
(lambda _
(substitute* "meson.options"
(substitute* "meson_options.txt"
(("'auto'") "'disabled'")))))))))))
(define-public gst-plugins-bad-minimal
@@ -1108,14 +1107,14 @@ binary, but none of the actual plugins.")))
(define-public gst-rtsp-server
(package
(name "gst-rtsp-server")
(version "1.28.1")
(version "1.26.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://gstreamer.freedesktop.org/src/" name "/"
name "-" version ".tar.xz"))
(sha256
(base32 "0cpqvdxr7falww14xblqs7la6q2f1z1zbli4vjdp9yqcy9mfil3c"))))
(base32 "1ibg83sa0nswqan5fg378bg36jis5sn1dwfl1mvqjiw4m59qlpj1"))))
(build-system meson-build-system)
(arguments
(list #:phases
@@ -1143,7 +1142,7 @@ RTSP connections and messages.")
(define-public python-gst
(package
(name "python-gst")
(version "1.28.1")
(version "1.26.3")
(source (origin
(method url-fetch)
(uri (string-append
@@ -1151,7 +1150,7 @@ RTSP connections and messages.")
"gst-python-" version ".tar.xz"))
(sha256
(base32
"11bhdylgkfcgdlfcv61vyjp0f27sqp3i4y7d8c2a2nxrmnaylz6l"))))
"04hv5pj8br56knvw1nsx74j1lpxskbm6znsdqac28iszqjkvjhwk"))))
(build-system meson-build-system)
(arguments
(list
@@ -1163,22 +1162,7 @@ RTSP connections and messages.")
#:configure-flags
#~(list (string-append
"-Dpygi-overrides-dir="
(py:site-packages %build-inputs %outputs) "/gi/overrides"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'disable-problematic-tests
(lambda _
;; The 'fundamentals' test fails with a segmentation fault since
;; 1.28.1 (see:
;; <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4937>).
(substitute* "testsuite/meson.build"
((".*'fundamentals',.*") ""))))
(delete 'check) ;moved after install
(add-after 'install 'check
(assoc-ref %standard-phases 'check))
(add-before 'check 'add-install-to-pythonpath
;; Required for the 'plugins' test.
(assoc-ref py:%standard-phases 'add-install-to-pythonpath)))))
(py:site-packages %build-inputs %outputs) "/gi/overrides"))))
(native-inputs
(list pkg-config python))
;; XXX: Move back to propagated-inputs once we no longer need to use
+56
View File
@@ -1672,6 +1672,62 @@ documents.")
("guile-cairo" ,guile2.2-cairo)
("guile-rsvg" ,guile2.2-rsvg)))))
(define-public guile-gnome
(package
(name "guile-gnome")
(version "2.16.5")
(source (origin
(method url-fetch)
(uri
(string-append "mirror://gnu/" name
"/guile-gnome-platform/guile-gnome-platform-"
version ".tar.gz"))
(sha256
(base32
"1gnf3j96nip5kl99a268i0dy1hj7s1cfs66sps3zwysnkd7qr399"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config
at-spi2-core
;;("corba" ,corba) ; not packaged yet
gconf
gobject-introspection
;;("gthread" ,gthread) ; not packaged yet
gnome-vfs
gdk-pixbuf
gtk+-2
libglade
libgnome
libgnomecanvas
libgnomeui
pango
libffi
glib))
(inputs (list guile-2.2))
(propagated-inputs
`(("guile-cairo" ,guile2.2-cairo)
("g-wrap" ,g-wrap)
("guile-lib" ,guile2.2-lib)))
(arguments
`(#:tests? #f ;FIXME
#:phases (modify-phases %standard-phases
(add-before 'configure 'pre-configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* (find-files "." "^Makefile.in$")
(("guilesite :=.*guile/site" all)
(string-append all "/@GUILE_EFFECTIVE_VERSION@")))
#t))))))
(outputs '("out" "debug"))
(synopsis "Guile interface for GTK+ programming for GNOME")
(description
"Includes guile-clutter, guile-gnome-gstreamer,
guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.")
(home-page "https://www.gnu.org/software/guile-gnome/")
(license license:gpl2+)
(properties '((upstream-name . "guile-gnome-platform")
(ftp-directory . "/gnu/guile-gnome/guile-gnome-platform")))))
;;;
;;; C++ bindings.
;;;
+116 -150
View File
@@ -44,7 +44,7 @@
;;; Copyright © 2022 Antero Mejr <antero@mailbox.org>
;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info>
;;; Copyright © 2022, 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2022, 2025-2026 Evgeny Pisemsky <mail@pisemsky.site>
;;; Copyright © 2022, 2025 Evgeny Pisemsky <mail@pisemsky.site>
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2023 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2024 Ilya Chernyshov <ichernyshovvv@gmail.com>
@@ -169,13 +169,12 @@
(name "artanis")
(version "1.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://https.git.savannah.gnu.org/git/artanis.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (base32
"0qpksi681z10jsip8ka0phq5kmkpxfcy5nvm861dsbjb335klbb6"))
(method url-fetch)
(uri (string-append "mirror://gnu/artanis/artanis-"
version ".tar.gz"))
(sha256
(base32
"16cwjyl0ykz6r7vvczrwaik6y4pc0fwc0hvwskfbgv9z71j2alzi"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -214,10 +213,7 @@
(propagated-inputs
(list guile-json-4 guile-curl guile-readline guile-redis))
(native-inputs
(list autoconf
automake
gnu-gettext ;for 'AC_LIB_LINKFLAGS_FROM_LIBS' macro
bash-minimal ;for the `source' builtin
(list bash-minimal ;for the `source' builtin
pkg-config
util-linux)) ;for the `script' command
(arguments
@@ -820,16 +816,16 @@ library for GNU Guile based on the actor model.")
(name "guile-daemon")
(version "0.1.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/alezost/guile-daemon")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (base32
"0mdxdiwb52zgpz144vii8f4jdia8a7w1i1mpffw8zh3ghglfrjzl"))))
(method url-fetch)
(uri (string-append "https://github.com/alezost/" name
"/releases/download/v" version
"/" name "-" version ".tar.gz"))
(sha256
(base32
"08gaqrgjlly9k5si72vvpbr4xhq5v52l5ma5y6a7spid5dd057cy"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake texinfo pkg-config))
(list pkg-config))
(inputs
(list guile-3.0))
(home-page "https://github.com/alezost/guile-daemon")
@@ -1436,19 +1432,20 @@ HTML (via SXML) or any other format for rendering.")
(name "guile-sjson")
(version "0.2.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/dustyweb/guile-sjson")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (base32
"1npbla3vy1m0dqvr8gfzx1ncd2mp2cm59mnb7g490vak29kc8s9j"))
(method url-fetch)
(uri (string-append "https://dustycloud.org/misc/sjson-" version
".tar.gz"))
(sha256
(base32
"08sr16fg5cqvik3wblav6k4b6djc5ydhgfvxa49bc5bh1irqvrcn"))
(modules '((guix build utils)))
(snippet
;; Allow builds with Guile 3.0.
#~(substitute* "configure.ac"
(("2\\.2 2\\.0")
"3.0 2.2 2.0")))))
'(begin
;; Allow builds with Guile 3.0.
(substitute* "configure"
(("2\\.2 2\\.0")
"3.0 2.2 2.0"))
#t))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake pkg-config))
@@ -1872,14 +1869,12 @@ types are supported.")
(name "guile-aa-tree")
(version "3.1.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url
"https://https.git.savannah.gnu.org/git/guile-aa-tree.git")
(commit version)))
(file-name (git-file-name name version))
(sha256 (base32
"0ghbrszjhv2abgpf11js6grqrri53frysf4360a5yvwhy9bb42pc"))))
(method url-fetch)
(uri (string-append "mirror://savannah/guile-aa-tree/guile-aa-tree-"
version ".tar.gz"))
(sha256
(base32
"0044c105r3q9vpl17pv3phl1b79kjm1llhkakqgiasixyav01blh"))))
(build-system guile-build-system)
(inputs (list guile-3.0))
(arguments
@@ -2170,16 +2165,15 @@ allows users to interact with the Guile REPL through Jupyter.")
(name "guile-sparql")
(version "0.0.8")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/roelj/guile-sparql")
(commit version)))
(file-name (git-file-name name version))
(sha256 (base32
"0iy390dsa0rs6d4gapw1s03gz4zba26w5sdiyvnzlygwv0d1inww"))))
(method url-fetch)
(uri (string-append
"https://github.com/roelj/guile-sparql/releases/download/"
version "/guile-sparql-" version ".tar.gz"))
(sha256
(base32 "1jf4972f9fpm0rd865xpnc9mzl3xv6vhfnp0iygadydy905z9nln"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake texinfo pkg-config))
(list pkg-config))
(inputs
(list guile-3.0))
(home-page "https://github.com/roelj/guile-sparql")
@@ -2194,19 +2188,17 @@ using S-expressions.")
(name "guile-debbugs")
(version "0.0.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url
"https://https.git.savannah.gnu.org/git/guile-debbugs.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (base32
"0ipv3vywx02yhyssq5rp1bifg1qkydgh6kr16vfspxs601q8bbm2"))))
(method url-fetch)
(uri (string-append "mirror://gnu/guile-debbugs/guile-debbugs-"
version ".tar.gz"))
(sha256
(base32
"1cc63nw3xdfjrfk8c58r6d5lidmfq5cpqcy32yd5xp81yccprvn9"))))
(build-system gnu-build-system)
(propagated-inputs
(list guile-email))
(native-inputs
(list autoconf automake texinfo guile-3.0 pkg-config))
(list guile-3.0 pkg-config))
(home-page "https://savannah.gnu.org/projects/guile-debbugs/")
(synopsis "Guile interface to the Debbugs bug tracking service")
(description
@@ -2457,14 +2449,13 @@ written in pure Scheme by using Guile's foreign function interface.")
(name "guile-xosd")
(version "0.2.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/alezost/guile-xosd")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(method url-fetch)
(uri (string-append "https://github.com/alezost/" name
"/releases/download/v" version
"/" name "-" version ".tar.gz"))
(sha256
(base32
"0jc88zg6icdg70mxbg732hx5by5bahqjm68yhx2ypqdqi7kqq1fk"))))
"10r29bpyrsvjalnzkam2falj9k34lvxmch05zs606zp1nk93whp3"))))
(build-system gnu-build-system)
(arguments
`(#:phases
@@ -2477,7 +2468,7 @@ written in pure Scheme by using Guile's foreign function interface.")
(or (getenv "CPATH") "")))
#t)))))
(native-inputs
(list autoconf automake libtool texinfo pkg-config))
(list pkg-config))
(inputs
(list guile-3.0 libx11 libxext libxinerama xosd))
(home-page "https://github.com/alezost/guile-xosd")
@@ -2521,6 +2512,10 @@ library}.")
(assoc-ref %standard-phases 'check)))))
(native-inputs (list autoconf automake libtool pkg-config))
(inputs (list guile-3.0 yaml-cpp))
(native-search-paths
(list (search-path-specification
(variable "GUILE_EXTENSIONS_PATH")
(files (list "lib/guile/3.0")))))
(home-page "https://gitlab.com/yorgath/guile-yamlpp")
(synopsis "Guile YAML reader/writer based on @code{yaml-cpp}")
(description
@@ -3534,6 +3529,10 @@ wrap G-Golf applications when writing a Guix package.")))
(install-file "socket.scm" share-dir))))
(delete 'check)
(delete 'install))))
(native-search-paths
(list (search-path-specification
(variable "GUILE_EXTENSIONS_PATH")
(files (list "lib/guile/3.0")))))
(inputs (list gcc guile-3.0))
(synopsis "C bindings for UNIX sockets in multi-scheme (Guile, Gauche,
Chicken) Wayland library")
@@ -3607,6 +3606,10 @@ Probably can be replaced with guile's built-ins: @code{fdes->ports},
(install-file "shm.scm" share-dir))))
(delete 'check)
(delete 'install))))
(native-search-paths
(list (search-path-specification
(variable "GUILE_EXTENSIONS_PATH")
(files (list "lib/guile/3.0")))))
(inputs (list gcc guile-3.0))
(synopsis "C bindings for wayland shared memory (SHM) in multi-scheme
(Guile, Gauche, Chicken) wayland library")
@@ -3674,6 +3677,10 @@ Probably can be replaced with guile's built-in file-descriptor procedures.")
(substitute* (list client-file)
(("WAYLAND_BASE_PROTOCOL_PATH")
core-protocol-file))))))))
(native-search-paths
(list (search-path-specification
(variable "GUILE_EXTENSIONS_PATH")
(files (list "lib/guile/3.0")))))
(native-inputs (list guile-3.0 pkg-config texinfo autoconf automake))
(inputs (list wayland wayland-protocols))
(propagated-inputs (list guile-wayland-scm-socket guile-wayland-scm-shm))
@@ -3688,22 +3695,15 @@ client bindings for Wayland.")
(name "g-wrap")
(version "1.9.15")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://https.git.savannah.gnu.org/git/g-wrap.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(method url-fetch)
(uri (string-append "mirror://savannah/g-wrap/g-wrap-"
version ".tar.gz"))
(sha256
(base32
"19bwqfk33djd51ijylvcmz3zz9pqvv1k7bk8k912b1bwbpfr3j0y"))))
"0ak0bha37dfpj9kmyw1r8fj8nva639aw5xr66wr5gd3l1rqf5xhg"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
automake
libtool
gnu-gettext ;for 'AC_LIB_LINKFLAGS_FROM_LIBS' macro
texinfo
pkg-config))
(list pkg-config))
(propagated-inputs
(list guile-2.2 guile-lib))
(inputs
@@ -3795,34 +3795,14 @@ quotes.")
(name "guile-reader")
(version "0.6.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url
"https://https.git.savannah.gnu.org/git/guile-reader.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(method url-fetch)
(uri (string-append "mirror://savannah/guile-reader/guile-reader-"
version ".tar.gz"))
(sha256
(base32
"0y3dq509hwm30ixb3cs3wci2lpni78438q7zz8f7way8vqp5164a"))))
"0nqkk4x18i7p3k9jxld4fnk8d69bq9ag6hqsyjzbfw9fmhrh08kb"))))
(build-system gnu-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-before 'bootstrap 'copy-config.rpath
(lambda* (#:key inputs #:allow-other-keys)
;; This file is not automatically copied by 'autoreconf'.
(let ((config-rpath (search-input-file
inputs
"/share/gettext/config.rpath")))
(install-file config-rpath "build-aux")))))))
(native-inputs
(list autoconf
automake
libtool
gnu-gettext ;for 'AC_LIB_LINKFLAGS_FROM_LIBS' macro
texinfo
pkg-config
gperf))
(native-inputs (list pkg-config gperf))
(inputs (list guile-3.0))
(synopsis "Framework for building readers for GNU Guile")
(description
@@ -3851,18 +3831,15 @@ many readers as needed).")
(name "guile-ncurses")
(version "3.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url
"https://https.git.savannah.gnu.org/git/guile-ncurses.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"00xhlca5s278i4g74qgks35ymisa98rhcj63bflja289gpb7j8wf"))))
(method url-fetch)
(uri (string-append "mirror://gnu/guile-ncurses/guile-ncurses-"
version ".tar.gz"))
(sha256
(base32
"0cypz1ikw66n8bc2klsnnaj1plpl22dwq6pwyc7dvffamz7fi2gf"))))
(build-system gnu-build-system)
(inputs (list ncurses guile-3.0))
(native-inputs (list autoconf automake libtool texinfo pkg-config))
(native-inputs (list pkg-config))
(arguments
`(#:modules ((guix build gnu-build-system)
((guix build guile-build-system)
@@ -3911,16 +3888,13 @@ library.")
(name "guile-lib")
(version "0.2.8.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url
"https://https.git.savannah.gnu.org/git/guile-lib.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (base32
"1f5a1mi1w487ia677nl8b6gixbgcavnbykzmgqs0yiyrc3w6vdcz"))
(patches (search-patches
"guile-lib-fix-tests-for-guile2.2.patch"))))
(method url-fetch)
(uri (string-append "mirror://savannah/guile-lib/guile-lib-"
version ".tar.gz"))
(sha256
(base32
"1ca95g15a88l7rpqcnzmhj1kyxc7gyfbvnni1hckv8z677cc4x0k"))
(patches (search-patches "guile-lib-fix-tests-for-guile2.2.patch"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags '("GUILE_AUTO_COMPILE=0") ;placate guild warnings
@@ -3938,7 +3912,6 @@ $(libdir)/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")))))))
(native-inputs
(list autoconf
automake
texinfo
gettext-minimal
guile-3.0
pkg-config))
@@ -4709,27 +4682,27 @@ a standalone WebAssembly toolchain.")
(name "guile-file-names")
(version "0.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/brandoninvergo/guile-file-names")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(method url-fetch)
(uri (string-append "http://brandon.invergo.net/software/download/"
"guile-file-names/guile-file-names-"
version ".tar.gz"))
(sha256
(base32
"0hmsbvbcl9a7366afcqi0pdhjhlq7l137nkmv1a5z9b8pcgzx90s"))))
"01chizdxkhw6aqv629vxka9f5x3534ij7r0jqndawsg2vxm1r9sz"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-target-directory
(lambda _
(substitute* "src/Makefile.am"
(substitute* "src/Makefile.in"
(("guilemoddir = \\$\\(GUILE_SITE\\)")
"guilemoddir = $(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n")))))))
"guilemoddir = $(datadir)/guile/site/$(GUILE_EFFECTIVE_VERSION)\n"))
#t)))))
(inputs
(list guile-2.2))
(native-inputs
(list autoconf automake texinfo pkg-config))
(list pkg-config))
(home-page "https://gitlab.com/brandoninvergo/guile-file-names")
(synopsis "Manipulate file names")
(description
@@ -5792,14 +5765,12 @@ processing filters.")
(name "guile-cv")
(version "0.4.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://https.git.savannah.gnu.org/git/guile-cv.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(method url-fetch)
(uri (string-append "mirror://gnu/guile-cv/guile-cv-"
version ".tar.gz"))
(sha256
(base32
"15qmhfiijca2468s8s9xhb0wskiy4wgym9p5jqi4xy30ddnpvyk2"))))
"00620zxm1rxlws7vn1zp2zzcb6y6r3szzj6b4b9fyjb86k972izb"))))
(build-system gnu-build-system)
(arguments
(list
@@ -5813,7 +5784,8 @@ processing filters.")
(("SITEDIR=\"\\$datadir/guile-cv\"")
"SITEDIR=\"$datadir/guile/site/$GUILE_EFFECTIVE_VERSION\"")
(("SITECCACHEDIR=\"\\$libdir/guile-cv/")
"SITECCACHEDIR=\"$libdir/"))))
"SITECCACHEDIR=\"$libdir/"))
(delete-file "configure"))) ;trigger 'bootstrap' phase
(add-after 'unpack 'substitute-libs
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* "cv/init.scm"
@@ -6060,20 +6032,13 @@ implementation in itself.")
(sha256
(base32 "0g508aajkyi513wbhm1rhs03ilnb701lwlrvppkmc0vynydlk9ws"))))
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'check
(lambda _
(invoke "guile" "--no-auto-compile" "run-tests.scm")
(delete-file "run-tests.scm")
(delete-file-recursively "tests")))
(add-after 'build 'install-info-documentation
(lambda _
(invoke "makeinfo" "doc/guile-uuid.texi" "-o"
(string-append #$output "/share/info/")))))))
(list #:phases #~(modify-phases %standard-phases
(add-before 'build 'remove-unnecessary-file
(lambda _
(delete-file "run-tests.scm")
(delete-file-recursively "tests"))))))
(build-system guile-build-system)
(native-inputs (list guile-3.0 texinfo))
(native-inputs (list guile-3.0))
(propagated-inputs (list guile-gcrypt))
(home-page "https://codeberg.org/elb/guile-uuid")
(synopsis "UUID generation and manipulation library for Guile Scheme")
@@ -6084,6 +6049,7 @@ standard hex-and-dash format of any variant and version.
Conversion between binary and hex-and-dash string UUIDs is also included.")
(license license:gpl3+)))
(define-public guile-semver
(package
(name "guile-semver")
+8 -18
View File
@@ -638,7 +638,7 @@ RGB animations.")
(define-public ddcutil
(package
(name "ddcutil")
(version "2.2.5")
(version "2.1.4")
(source
(origin
(method git-fetch)
@@ -647,7 +647,7 @@ RGB animations.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0mmzfa0g726dmqrmyyysnzxrhdkd93ay4dzzv0kqkvgdcqizh5z8"))))
(base32 "0wk82cdg7vddk6pbnn6qq3p71j4bppq13is2ck40glig08ax1bg5"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf automake libtool pkg-config))
@@ -689,7 +689,7 @@ read/write access to i2c devices to users in the @samp{i2c} group.")
(define-public ddcui
(package
(name "ddcui")
(version "0.6.0")
(version "0.5.4")
(source
(origin
(method git-fetch)
@@ -698,7 +698,7 @@ read/write access to i2c devices to users in the @samp{i2c} group.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "13gqgswkkqbn1x97ayiwj4ds2rbdnw564c2rhpi89zymhc1azj19"))))
(base32 "1hq19gdy9ybraclkqvv1nlf46irql5b6wrc1y6wi0ihkqly20vgz"))))
(build-system qt-build-system)
(arguments
(list #:tests? #f)) ; No test suite
@@ -1813,7 +1813,7 @@ package also includes @code{usbrelayd}.")))
(define-public guile-usbrelay
(package
(name "guile-usbrelay")
(version "0.1.1")
(version "0.1.0")
(home-page "https://codeberg.org/pisemsky/guile-usbrelay")
(source
(origin
@@ -1823,7 +1823,7 @@ package also includes @code{usbrelayd}.")))
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1nghzsash3z398p2bp2vw0a1rzaclq9a6iqxbm7ffyzbldcca81l"))))
(base32 "0ndgkazv9bnyj45pccym11245c65hlvsvzmx0acpzlywz7xxyy72"))))
(build-system guile-build-system)
(arguments
(list
@@ -1831,19 +1831,9 @@ package also includes @code{usbrelayd}.")))
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'compile-ffi
(lambda _
(lambda* (#:key inputs #:allow-other-keys)
(setenv "GUILE_AUTO_COMPILE" "0")
(invoke "guild" "compile-ffi" "--no-exec"
"modules/usbrelay/ffi/hidapi.ffi")))
(add-after 'build 'install-udev-rules
(lambda _
(let ((rules (string-append #$output "/lib/udev/rules.d")))
(mkdir-p rules)
(call-with-output-file (string-append rules "/50-usbrelay.rules")
(lambda (port)
(display (string-append
"ATTRS{idVendor}==\"16c0\", ATTRS{idProduct}==\"05df\", "
"MODE=\"0660\", GROUP=\"usbrelay\"\n") port)))))))))
(invoke "guile" "make.scm"))))))
(native-inputs (list gcc guile-3.0 nyacc pkg-config))
(inputs (list hidapi))
(propagated-inputs (list nyacc))
+3 -48
View File
@@ -63,49 +63,6 @@ as approved and published by the @acronym{VHDL, Very High Speed Hardware
Description Language} Analysis and Standardization Group.")
(license license:asl2.0)))
(define-public json-for-vhdl
;; No tagged releases.
(let ((commit "0dc9e317440263cd4941f157f5e5668baa858ec2")
(revision "0"))
(package
(name "json-for-vhdl")
(version (git-version "20220905" revision commit)) ;last revision
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Paebbels/JSON-for-VHDL/")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1062g2c3dpsb67zhqrn1j04p7jl28g4mcxd6nhrqqfffjsvxkpw9"))))
(build-system copy-build-system)
(arguments
(list
#:install-plan
#~'(("src" "share/json-for-vhdl/work/src"
#:include ("vhdl")))
#:phases
#~(modify-phases %standard-phases
;; The examples/Encodings_VUnit test requires vhdl builtins.
(add-after 'unpack 'fix-check
(lambda _
(substitute* "tests/VUnit/run.py"
(("from_argv\\(\\)")
"from_argv()\nvu.add_vhdl_builtins()")))))))
(native-search-paths
(list (search-path-specification
(variable "FW_JSON_VHDL")
(separator #f)
(files (list "share/json-for-vhdl")))))
(home-page "https://github.com/Paebbels/JSON-for-VHDL/")
(synopsis "Parse and query JSON data structures in VHDL")
(description
"The JSON-for-VHDL library provides a parser to query JSON data
structures from external files on disk. It provides a context to be
used in the declarative section of design units.")
(license license:asl2.0))))
(define-public neorv32
(package
(name "neorv32")
@@ -173,7 +130,7 @@ chip written in platform-independent VHDL.")
(define-public open-logic
(package
(name "open-logic")
(version "4.4.1")
(version "4.4.0")
(source
(origin
(method git-fetch)
@@ -185,7 +142,7 @@ chip written in platform-independent VHDL.")
(file-name (git-file-name name version))
(sha256
(base32
"1zydrmx35s3mi35im4s4lfd9mmzdwdrnxfh9fg4d12v4ai7ijfrk"))))
"01kxrglbq50v73796iq9a1vi68i8k2wykk7gga9847smfznqwjwr"))))
(outputs
'("out" "olo"))
(properties
@@ -202,7 +159,6 @@ chip written in platform-independent VHDL.")
(setenv "HOME" "/tmp")
(with-directory-excursion "3rdParty/en_cl_fix/sim"
(invoke "python3" "run.py" "--simulator" "nvc"
"-p" (number->string (parallel-job-count))
"--simulator-path"
(dirname (search-input-file inputs "bin/nvc"))))
(with-directory-excursion "sim"
@@ -211,8 +167,7 @@ chip written in platform-independent VHDL.")
;; https://github.com/VUnit/vunit/issues/777
(("compile_builtins=False, ")
""))
(invoke "python3" "run.py" "--nvc" "-v"
"-p" (number->string (parallel-job-count))))))))
(invoke "python3" "run.py" "--nvc" "-v"))))))
#:install-plan
#~'(;; Library work.
("src" "share/open-logic/work/src"
+5 -11
View File
@@ -58,7 +58,6 @@
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages python)
#:use-module (gnu packages ruby)
#:use-module (gnu packages ssh)
#:use-module (gnu packages tls))
(define-public hexedit
@@ -255,11 +254,11 @@ for specifying patterns in the ImHex Hex Editor.")
(sha256 sha256-hash)))
(define-public imhex
(let* ((version "1.38.1")
(let* ((version "1.37.4")
(imhex-patterns
(make-imhex-patterns
version
(base32 "14c0w3pj3bcrwd6c5b0lbwdxbw003dcmyj5a4d86hab53v6hg91j"))))
(base32 "0m9g93fzmj2rsgaq25y4mmfigjh1xxyh41zjs6lp5ydsl5hhrn6q"))))
(package
(name "imhex")
(version version)
@@ -272,7 +271,7 @@ for specifying patterns in the ImHex Hex Editor.")
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32 "17aj8k2zbj78347rvfdy9gassw7kz9xj5vj30skvs5w4gf4lajln"))
(base32 "0l3fpizkz2ykdirbn9alddnnsg75w6kwpp92nvmird13l80z1sdr"))
(modules '((guix build utils) (ice-9 ftw) (ice-9 match)))
(snippet
#~(begin
@@ -301,7 +300,6 @@ for specifying patterns in the ImHex Hex Editor.")
"imgui"
;; Needs source to include miniaudio.h
"miniaudio"
"md4c"
"microtar")) ; XXX: unbundle
(delete-file-recursively dir)))
(scandir "."))
@@ -358,7 +356,7 @@ for specifying patterns in the ImHex Hex Editor.")
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
(lambda _
(substitute* "main/gui/source/window/platform/linux.cpp"
(substitute* "main/gui/source/window/linux_window.cpp"
(("dbus-send")
#$(file-append dbus "/bin/dbus-send")))
(substitute* "cmake/build_helpers.cmake"
@@ -382,12 +380,9 @@ for specifying patterns in the ImHex Hex Editor.")
curl
edlib
fmt
;; ImHex supports Wayland on GLFW >= 3.4. More info in:
;; https://github.com/WerWolv/ImHex/issues/1941#issuecomment-2446252019
glfw-3.4
glfw
libarchive
libffi
libssh2
llvm-17
lunasvg
plutovg
@@ -395,7 +390,6 @@ for specifying patterns in the ImHex Hex Editor.")
mesa
miniaudio
nativefiledialog-extended
openssl
xz
fontconfig
lz4
+22
View File
@@ -2003,6 +2003,28 @@ bindings for interpreted languages. This package includes the C++,
Python and R interfaces.")
(license license:asl2.0)))
(define-public stiff
(package
(name "stiff")
(version "2.4.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.astromatic.net/download/stiff/stiff-"
version ".tar.gz"))
(sha256
(base32 "14m92dskzw7bwsr64ha4p0mj3ndv13gwcbfic3qxrs3zq5353s7l"))))
(build-system gnu-build-system)
(inputs
(list libtiff zlib libjpeg-turbo))
(home-page "https://www.astromatic.net/software/stiff")
(synopsis "Convert scientific FITS images to TIFF format")
(description
"STIFF is a program that converts scientific @acronym{FITS, Flexible Image
Transport System} images to the more popular TIFF format for illustration
purposes.")
(license license:gpl3+)))
(define-public python-imgviz
(package
(name "python-imgviz")
+4 -4
View File
@@ -244,17 +244,17 @@
;; It's used for cache validation and therefore can lead to strange bugs.
;; ex: date '+%Y%m%d%H%M%S'
;; or: (format-time-string "%Y%m%d%H%M%S")
(define %librewolf-build-id "20260228165433")
(define %librewolf-build-id "20260310145002")
(define-public librewolf
(package
(name "librewolf")
(version "148.0-1")
(version "148.0.2-1")
(source
(make-librewolf-source
#:version version
#:firefox-hash "0vybaiiknrzk2zvg46w5sxb0i0m9rmy4msvpxklxpdr3182fb4zc"
#:librewolf-hash "02sraza4xy4cp559nlc51m1vwhi52l58i3zz2h95lwymyvc5hv17"
#:firefox-hash "142f4k4ykcm65kbvj60p472103r4k79v9fdsfljdav2rbr6qxjx6"
#:librewolf-hash "0c664ci4j5xpqjf07bs8vcrl2scscc35sdcasd1aqn4fdssmghmq"
#:l10n firefox-l10n))
(build-system gnu-build-system)
(arguments
+17 -402
View File
@@ -530,32 +530,32 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream.
(define-public linux-libre-6.19-version "6.19.6")
(define-public linux-libre-6.19-version "6.19.5")
(define-public linux-libre-6.19-gnu-revision "gnu")
(define deblob-scripts-6.19
(linux-libre-deblob-scripts
linux-libre-6.19-version
linux-libre-6.19-gnu-revision
(base32 "0zl5352xsv12xkqrfygp5kd8nvjq718pg5iaz64y675abymacp8v")
(base32 "0y9rb4mm1n83h9wa68ivbpqj13va3vv5954j2ywqm7apwpx9ini2")))
(base32 "1awsjh9qs5inrwj34kzkrfvvysdaka6dnbilpn1ai66r6dqc2810")))
(define-public linux-libre-6.19-pristine-source
(let ((version linux-libre-6.19-version)
(hash (base32 "051fq8mkb7sf3m24a45cacr73fmpljfdn0pgjh0qrxhl6bvkz7sd")))
(hash (base32 "1yig0i2q7vn7p8g4lmkviddxi62mzhp0fv2hx3057qq9qz40bblm")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.19)))
(define-public linux-libre-6.18-version "6.18.16")
(define-public linux-libre-6.18-version "6.18.15")
(define-public linux-libre-6.18-gnu-revision "gnu")
(define deblob-scripts-6.18
(linux-libre-deblob-scripts
linux-libre-6.18-version
linux-libre-6.18-gnu-revision
(base32 "1piyq7183bdf169w66k62yr1vbs0ls7pqx3cyyk7hisw8vhy643j")
(base32 "1wnlnds2hgap36a0licjyjzyhhggbgp83dc9xbbw07y8jwmc17ai")))
(base32 "1xdz33lshw1xs6a5qiwhvxzdh2a0acll1zdyk2mnn9d4579a4gn1")))
(define-public linux-libre-6.18-pristine-source
(let ((version linux-libre-6.18-version)
(hash (base32 "1qwfsbr315c6qh3hnqmyjwjcj0h8j3w56hbrxnrx3h849lgw08ag")))
(hash (base32 "0w7iy9mx1b42q4qz6y9rvny7nmvpwq0mf6b9vv84w4y4qcb64wbw")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.18)))
@@ -564,22 +564,22 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html>
(define-public linux-libre-6.12-version "6.12.76")
(define-public linux-libre-6.12-version "6.12.74")
(define-public linux-libre-6.12-gnu-revision "gnu")
(define deblob-scripts-6.12
(linux-libre-deblob-scripts
linux-libre-6.12-version
linux-libre-6.12-gnu-revision
(base32 "168aykyvyyp34549hqhlprl0n052q8wdb2y3vyxqw40wpf2vw3ln")
(base32 "1v6glxf94p9z0yq5m102jwcpyh6anpbp3h8wwff9hxlfy2wdlzzk")))
(base32 "1wyfggr9q0f10yr3nxsvx3nd3wscp5145fgxw0ps0b09ckcyr2mi")))
(define-public linux-libre-6.12-pristine-source
(let ((version linux-libre-6.12-version)
(hash (base32 "15nq7agr492b9lh57xp10hs48dx9g7k253y2lm4vvrj69j1kxd5v")))
(hash (base32 "0gm1mjn203gc11dqk82fkbsr96bnwcxq4sx5khc7yhwsvjqywmiv")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.12)))
(define-public linux-libre-6.6-version "6.6.129")
(define-public linux-libre-6.6-version "6.6.127")
(define-public linux-libre-6.6-gnu-revision "gnu")
(define deblob-scripts-6.6
(linux-libre-deblob-scripts
@@ -589,12 +589,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0z47f6mkllk1fgpq04x73djl5gh3mj50bxj2rpg4jlzm0rcirrag")))
(define-public linux-libre-6.6-pristine-source
(let ((version linux-libre-6.6-version)
(hash (base32 "12j42awg44w97zq8fzifpm300jm9q9ya7qkpn7xbnkr2480qz86a")))
(hash (base32 "1zn9z3ghjyff71s3yabfanrgyks3wnmn1p5w6301rczhnjbrrkd7")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.6)))
(define-public linux-libre-6.1-version "6.1.166")
(define-public linux-libre-6.1-version "6.1.164")
(define-public linux-libre-6.1-gnu-revision "gnu")
(define deblob-scripts-6.1
(linux-libre-deblob-scripts
@@ -604,12 +604,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1jiwwl5sgpc16x0v6phbknv94mc46gvwgc2z8s4pdgn4j54yrd8v")))
(define-public linux-libre-6.1-pristine-source
(let ((version linux-libre-6.1-version)
(hash (base32 "0jcl12gjlfdf9pwqg1m84rzwnrj3grxxgk5blrq8zlaq45sgr3c1")))
(hash (base32 "074xlcrx5lvbkbwgahfvjlvak0j1nig9azfxfdl64zxzgdzhigrk")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.1)))
(define-public linux-libre-5.15-version "5.15.202")
(define-public linux-libre-5.15-version "5.15.201")
(define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15
(linux-libre-deblob-scripts
@@ -619,12 +619,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1s6km2r2mad0wpf7nqn4rqsykw1lm386l1yskmil24239fbva1f1")))
(define-public linux-libre-5.15-pristine-source
(let ((version linux-libre-5.15-version)
(hash (base32 "1m6d53qx1ah4jwpa8hwjdmq0jn2hf7xmz1li6rwpdqjp97vvvh8b")))
(hash (base32 "15hv8rqgr6ca9rnbpb6hvzskqvb4h8x3w6nl4y2npbfsxpxzyajg")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.15)))
(define-public linux-libre-5.10-version "5.10.252")
(define-public linux-libre-5.10-version "5.10.251")
(define-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10
(linux-libre-deblob-scripts
@@ -634,7 +634,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1hgza8fsps7bkjf4i0f2xgvrh1r183z3i6lxrr2nr8qbi5d13qs7")))
(define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version)
(hash (base32 "1yqa4zmvi5ihf50kxcff06abfi6xw0b9ajzagvy6gdzfr7igpcrl")))
(hash (base32 "00ac9gzidby7b82s2prq4c3w99a077f5li4v4yq8gdg3zqjpd1g6")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.10)))
@@ -931,16 +931,6 @@ ARCH and optionally VARIANT, or #f if there is no such configuration."
("CONFIG_FUSE_FS" . m)
("CONFIG_CIFS" . m)
("CONFIG_9P_FS" . m)
;; Enable DMABUF used by wayland, pipewire and libcamera
;; https://codeberg.org/guix/guix/issues/5995
("CONFIG_UDMABUF" . #t)
("CONFIG_DMABUF_MOVE_NOTIFY" . #t)
("CONFIG_DMABUF_HEAPS" . #t)
("CONFIG_DMABUF_HEAPS_SYSTEM" . #t)
("CONFIG_DMABUF_HEAPS_CMA" . #t)
,@(if (version>=? version "6.17")
'(("CONFIG_DMABUF_HEAPS_CMA_LEGACY" . #t))
'())
;; Disable the EFI pstore storage backend to avoid causing
;; unrecoverable failures on some EFI systems:
;; https://lists.gnu.org/archive/html/help-guix/2025-01/msg00173.html
@@ -1483,48 +1473,6 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
("CONFIG_VHOST_VDPA" . m))
(default-extra-linux-options linux-libre-lts-version))))
(define-public reform-debian-packages-for-6.19
(package
(name "reform-debian-packages")
(version "2023-07-10-537-g032a28b") ;from git describe
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://source.mnt.re/reform/reform-debian-packages.git")
(commit "032a28b6c8b48077523ea1631cde65b763ab3c43")))
(file-name (git-file-name name version))
(sha256
(base32 "084xnykhnhpbb0kd5wr4nml08g4gjy7jqzrdb9i0chbfx12fnnyr"))))
(build-system copy-build-system)
(arguments
(list
#:install-plan
#~'(("linux/patches6.19/" "/patches6.19")
("linux/" "/dts/amlogic"
#:include-regexp ("meson.*\\.dts$"))
("linux/" "/dts/freescale"
#:include-regexp ("imx8.*\\.dts$"))
("linux/" "/dts/freescale"
#:include-regexp ("fsl.*\\.dts$"))
("linux/" "/dts/rockchip"
#:include-regexp ("rk3588.*\\.dts$"))
("linux/config" "config"))))
(home-page "https://source.mnt.re/reform/reform-debian-packages")
(synopsis
"Linux kernel patches and device-trees used for MNT Reform systems")
(description
"Linux kernel patches and device-trees used for the MNT Reform systems")
(license (list
(license:fsf-free "file://filter-output"
"https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html")
license:bsd-2
license:expat
license:gpl2
license:gpl2+
license:gpl3
license:x11))))
(define-public reform-debian-packages-for-6.18
(package
(name "reform-debian-packages")
@@ -1609,321 +1557,6 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
license:gpl3
license:x11))))
(define-public linux-libre-arm64-mnt-reform-6.19
;; Kernel for use on the MNT/Reform systems
;; https://mntre.com/reform.html
(let ((base (make-linux-libre* linux-libre-6.19-version
linux-libre-6.19-gnu-revision
linux-libre-6.19-source
'("aarch64-linux")
#:extra-version "arm64-mnt-reform"
#:extra-options
;; https://source.mnt.re/reform/reform-debian-packages/-/blob/main/linux/config
(append `(("CONFIG_DRM_LVDS_CODEC" . m)
("CONFIG_DRM_CDNS_MHDP8546" . m)
("CONFIG_DRM_CDNS_HDMI_CEC" . m)
("CONFIG_DRM_IMX_CDNS_MHDP" . m)
("CONFIG_DRM_IMX_DCSS" . m)
("CONFIG_PHY_FSL_IMX8MQ_HDPTX" . m)
("CONFIG_DRM_PANEL_LVDS" . m)
("CONFIG_I2C_IMX_LPI2C" . m)
("CONFIG_I2C_MUX_REG" . m)
("CONFIG_INTERCONNECT_IMX" . #true)
("CONFIG_INTERCONNECT_IMX8MQ" . #true)
("CONFIG_MFD_WM8994" . m)
("CONFIG_MUX_GPIO" . m)
("CONFIG_MUX_MMIO" . m)
("CONFIG_RTC_DRV_PCF8523" . m)
("CONFIG_USB_EHCI_FSL" . m)
("CONFIG_NO_HZ_IDLE" . #true)
("CONFIG_SND_SOC_FSL_MICFIL" . m)
("CONFIG_SND_IMX_SOC" . m)
("CONFIG_SND_SOC_FSL_ASOC_CARD" . m)
("CONFIG_SND_SOC_IMX_AUDMIX" . m)
("CONFIG_SND_SOC_IMX_HDMI" . m)
("CONFIG_INPUT_JOYSTICK" . #true)
("CONFIG_JOYSTICK_XPAD" . m)
("CONFIG_JOYSTICK_XPAD_FF" . #true)
("CONFIG_JOYSTICK_XPAD_LEDS" . #true)
("CONFIG_INTERCONNECT_IMX8MP" . #true)
("CONFIG_SND_SOC_FSL_ASRC" . #true)
("CONFIG_DRM_IMX_LCDIF" . #true)
("CONFIG_DRM_IMX8MP_DW_HDMI_BRIDGE" . #true)
("CONFIG_DRM_IMX8MP_HDMI_PVI" . #true)
("CONFIG_IMX8MM_THERMAL" . #true)
("CONFIG_IMX2_WDT" . #true)
("CONFIG_DRM_SAMSUNG_DSIM" . #true)
("CONFIG_PHY_FSL_SAMSUNG_HDMI_PHY" . #true)
("CONFIG_DRM" . #true)
("CONFIG_DRM_PANEL_MNT_POCKET_REFORM" . #true)
("CONFIG_IMX8M_BLK_CTRL" . #true)
("CONFIG_IMX_GPCV2_PM_DOMAINS" . #true)
("CONFIG_DRM_DISPLAY_CONNECTOR" . #true)
("CONFIG_DRM_FSL_LDB" . #true)
("CONFIG_BACKLIGHT_CLASS_DEVICE" . #true)
("CONFIG_BACKLIGHT_PWM" . #true)
("CONFIG_BACKLIGHT_GPIO" . #true)
("CONFIG_BACKLIGHT_LED" . #true)
("CONFIG_CPU_FREQ_GOV_PERFORMANCE" . #true)
("CONFIG_CPU_FREQ_GOV_POWERSAVE" . #true)
("CONFIG_CPU_FREQ_GOV_USERSPACE" . #true)
("CONFIG_CPU_FREQ_GOV_ONDEMAND" . #true)
("CONFIG_CPU_FREQ_GOV_CONSERVATIVE" . #true)
("CONFIG_CPU_FREQ_GOV_SCHEDUTIL" . #true)
("CONFIG_ARM_IMX_CPUFREQ_DT" . #true)
("CONFIG_ARM_IMX_BUS_DEVFREQ" . #true)
("CONFIG_IMX_IRQSTEER" . #true)
("CONFIG_PCI_MESON" . #true)
("CONFIG_DWMAC_MESON" . #true)
("CONFIG_MDIO_BUS_MUX_MESON_G12A" . #true)
("CONFIG_GPIO_ROCKCHIP" . #true)
("CONFIG_PL330_DMA" . #true)
("CONFIG_I2C_MESON" . #true)
("CONFIG_PWM_MESON" . #true)
("CONFIG_USB_DWC3_MESON_G12A" . #true)
("CONFIG_MMC_MESON_GX" . #true)
("CONFIG_MMC_MESON_MX_SDIO" . #true)
("CONFIG_MESON_DDR_PMU" . #true)
("CONFIG_RTW88_8822CS" . m)
("CONFIG_PWM_FSL_FTM" . #true)
("CONFIG_FSL_RCPM" . #true)
("CONFIG_ARM_ROCKCHIP_CPUFREQ" . m)
("CONFIG_DRM_PANTHOR" . m)
("CONFIG_NVMEM_ROCKCHIP_OTP" . #true)
("CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX" . m)
("CONFIG_PHY_ROCKCHIP_USBDP" . m)
("CONFIG_ROCKCHIP_REGULATOR_COUPLER" . #true)
("CONFIG_SPI_ROCKCHIP" . #true)
("CONFIG_SPI_ROCKCHIP_SFC" . m)
("CONFIG_ARM_SCMI_CPUFREQ" . m)
("CONFIG_PHY_ROCKCHIP_SAMSUNG_DCPHY" . #true)
("CONFIG_VIDEO_ROCKCHIP_VDEC2" . m)
("CONFIG_ROCKCHIP_DW_HDMI_QP" . #true)
("CONFIG_ROCKCHIP_DW_MIPI_DSI2" . #true)
;; Fixes https://codeberg.org/guix/guix/issues/101
("CONFIG_CRYPTO_USER_API_HASH" . #true)
("CONFIG_CRYPTO_USER_API_SKCIPHER" . #true)
("CONFIG_CRYPTO_USER_API_RNG" . #true)
("CONFIG_CRYPTO_USER_API_AEAD" . #true)
("CONFIG_KEY_DH_OPERATIONS" . #true)
;; nftables support
("CONFIG_NF_TABLES" . m)
("CONFIG_NF_TABLES_INET" . #true)
("CONFIG_NF_TABLES_NETDEV" . #true)
("CONFIG_NF_TABLES_IPV4" . #true)
("CONFIG_NF_TABLES_ARP" . #true)
("CONFIG_NF_TABLES_IPV6" . #true)
("CONFIG_NF_TABLES_BRIDGE" . m)
("CONFIG_NFT_NUMGEN" . m)
("CONFIG_NFT_CT" . m)
("CONFIG_NFT_FLOW_OFFLOAD" . m)
("CONFIG_NFT_CONNLIMIT" . m)
("CONFIG_NFT_LOG" . m)
("CONFIG_NFT_LIMIT" . m)
("CONFIG_NFT_MASQ" . m)
("CONFIG_NFT_REDIR" . m)
("CONFIG_NFT_NAT" . m)
("CONFIG_NFT_TUNNEL" . m)
("CONFIG_NFT_QUEUE" . m)
("CONFIG_NFT_QUOTA" . m)
("CONFIG_NFT_REJECT" . m)
("CONFIG_NFT_REJECT_INET" . m)
("CONFIG_NFT_COMPAT" . m)
("CONFIG_NFT_HASH" . m)
("CONFIG_NFT_FIB" . m)
("CONFIG_NFT_FIB_INET" . m)
("CONFIG_NFT_XFRM" . m)
("CONFIG_NFT_SOCKET" . m)
("CONFIG_NFT_OSF" . m)
("CONFIG_NFT_TPROXY" . m)
("CONFIG_NFT_SYNPROXY" . m)
("CONFIG_NFT_DUP_NETDEV" . m)
("CONFIG_NFT_FWD_NETDEV" . m)
("CONFIG_NFT_FIB_NETDEV" . m)
("CONFIG_NFT_REJECT_NETDEV" . m)
("CONFIG_NFT_REJECT_IPV4" . m)
("CONFIG_NFT_DUP_IPV4" . m)
("CONFIG_NFT_FIB_IPV4" . m)
("CONFIG_NFT_COMPAT_ARP" . m)
("CONFIG_NFT_REJECT_IPV6" . m)
("CONFIG_NFT_DUP_IPV6" . m)
("CONFIG_NFT_FIB_IPV6" . m)
("CONFIG_NFT_BRIDGE_META" . m)
("CONFIG_NFT_BRIDGE_REJECT" . m)
;; Provides support for FBCON options
("CONFIG_FRAMEBUFFER_CONSOLE_ROTATION" . #true)
("CONFIG_HIDRAW" . #true)
("CONFIG_FONT_SUPPORT" . #true)
("CONFIG_FONTS" . #true)
("CONFIG_FONT_8x8" . #true)
("CONFIG_FONT_8x16" . #true)
("CONFIG_FONT_TER10x18" . #true)
("CONFIG_FONT_TER16x32" . #true)
;; Provide support for USB tethering
("CONFIG_USB_NET_CDC_EEM" . m)
("CONFIG_USB_NET_RNDIS_HOST" . m)
("CONFIG_USB_WDM" . m)
("CONFIG_USB_GADGET" . m)
("CONFIG_USB_ETH" . m)
("CONFIG_USB_ETH_RNDIS" . m)
("CONFIG_USB_ETH_EEM" . m)
("CONFIG_USB_G_NCM" . m)
;; Provide support for wireguard
("CONFIG_WIREGUARD" . m)
;; Provide support for ath9k wireless
("CONFIG_ATH9K" . m)
("CONFIG_ATH9K_HTC" . m))
(default-extra-linux-options
linux-libre-6.19-version)))))
(package
(inherit base)
(inputs (list reform-debian-packages-for-6.19))
(synopsis (string-append (package-synopsis base)
" for MNT/Reform systems"))
(description (string-append (package-description base)
" Configuration options and patches have been applied for use with MNT/Reform systems."))
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases)
#~(modify-phases #$phases
(add-after 'unpack 'apply-reform-patches
(lambda* (#:key inputs #:allow-other-keys)
(for-each (lambda (patch)
(invoke "patch" "-p1" "-i"
(search-input-file inputs
(string-append
"patches6.19/" patch))))
(list
"imx8mp-mnt-pocket-reform/2ghz/0001-imx8mp-2ghz-clk.patch"
"imx8mp-mnt-pocket-reform/2ghz/0002-imx8mp-2ghz-opp.patch"
"imx8mp-mnt-pocket-reform/audio/0000-revert-crashy-audiomix-pm-support.patch"
"imx8mp-mnt-pocket-reform/mmc-sdio/0001-sdhci-add-no-sd-uhs-sdr104-devicetree-property.patch"
"imx8mp-mnt-pocket-reform/mmc-sdio/0002-During-the-card-init-the-host-side-sometimes-may-nee.patch"
"imx8mp-mnt-pocket-reform/mmc-sdio/0003-USDHC-IP-has-one-limitation-the-tuning-circuit-can-t.patch"
"imx8mp-mnt-pocket-reform/pocket-panel/0001-v5-add-multi-display-panel-driver.patch"
"imx8mp-mnt-pocket-reform/pocket-panel/0002-pocket-panel-fix-sleep-add-orientation.patch"
"imx8mp-mnt-reform2/0001-sn65dsi86-use-hs-clock-of-samsung-dsim-host-directly.patch"
"imx8mp-mnt-reform2/0002-lcdif-dont-exceed-desired-pixel-clock.patch"
"imx8mq-mnt-reform2/0001-imx8mq-mnt-reform2.dts-multiple-fixes-for-display-wi.patch"
"imx8mq-mnt-reform2/0001-nwl-dsi-fixup-mode-only-for-LCDIF-input-not-DCSS.patch"
"imx8mq-mnt-reform2/0002-Revert-drm-bridge-nwl-dsi-Use-vsync-hsync-polarity-f.patch"
"imx8mq-mnt-reform2/0003-lcdif-fix-pcie-interference.patch"
"imx8mq-mnt-reform2/0004-mnt4002-imx-gpcv2-wake-smccc.patch.patch"
"imx8mq-mnt-reform2/0005-pci-imx6-add-support-for-internal-refclk-imx8mq.patch"
"imx8mq-mnt-reform2/0006-imx8mq-import-HDMI-driver-and-make-DCSS-compatible-w.patch"
"ls1028a-mnt-reform2/0000-dtsi-add-hdptx.patch"
"meson-g12b-bananapi-cm4-mnt-pocket-reform/0001-a311d-viu-fifo-lines-config.patch"
"meson-g12b-bananapi-cm4-mnt-pocket-reform/0002-a311d-viu-fifo-lines-config-header.patch"
"meson-g12b-bananapi-cm4-mnt-pocket-reform/0003-tlv320aic31xx-add-1228800hz-support.patch"
"meson-g12b-bananapi-cm4-mnt-reform2/0001-Revert-drm-bridge-synopsys-dw-mipi-dsi-enable-EoTp-b.patch"
"meson-g12b-bananapi-cm4-mnt-reform2/0001-meson-g12b-bananapi-cm4-mnt-reform2.dts-fix-audio-an.patch"
"meson-g12b-bananapi-cm4-mnt-reform2/0011-dw-mipi-dsi-phy-stop-wait-time.patch"
"meson-g12b-bananapi-cm4-mnt-reform2/0012-innolux-n125hce-gn1-timing-tweaks.patch"
"meson-g12b-bananapi-cm4-mnt-reform2/0013-meson-viu-hold-fifo-lines.patch"
"meson-g12b-bananapi-cm4-mnt-reform2/0014-meson-venc-sync.patch.patch"
"meson-g12b-bananapi-cm4-mnt-reform2/0015-meson-dw-mipi-dsi-sync-invert.patch"
"meson-g12b-bananapi-cm4-mnt-reform2/0016-sn65dsi86-burst-mode-support.patch"
"meson-g12b-bananapi-cm4-mnt-reform2/0018-sn65dsi86-never-turn-off.patch"
"meson-g12b-bananapi-cm4-mnt-reform2/0020-LOCAL-ALSA-Assign-internal-PCM-chmap-ELD-IEC958-kctl.patch"
"meson-g12b-bananapi-cm4-mnt-reform2/0021-HACK-of-partial-revert-of-fdt.c-changes.patch"
"meson-g12b-bananapi-cm4-mnt-reform2/0022-add-bt-and-eth-resets.patch"
"meson-g12b-bananapi-cm4-mnt-reform2/0023-sdio-pullups.patch"
"meson-g12b-bananapi-cm4-mnt-reform2/0024-sdio-improve-wifi-speed.patch"
"meson-g12b-bananapi-cm4-mnt-reform2/0030-WORKAROUND-meson-plane-disable-afbc-32x8.patch"
"rk3588-mnt-reform2/0001-FROM-UPSTREAM-drm-bridge-dw-hdmi-qp-Add-support-for-.patch"
"rk3588-mnt-reform2/0024-math.h-add-DIV_ROUND_UP_NO_OVERFLOW.patch"
"rk3588-mnt-reform2/0025-clk-divider-Fix-divisor-masking-on-64-bit-platforms.patch"
"rk3588-mnt-reform2/0026-clk-composite-replace-open-coded-abs_diff.patch"
"rk3588-mnt-reform2/0029-Revert-PCI-dw-rockchip-Simplify-regulator-setup-with.patch"
"rk3588-mnt-reform2/0030-mfd-rk8xx-Fix-shutdown-handler.patch"
"rk3588-mnt-reform2/0031-dt-bindings-display-vop2-Add-VP-clock-resets.patch"
"rk3588-mnt-reform2/0032-drm-rockchip-vop2-Add-clock-resets-support.patch"
"rk3588-mnt-reform2/0033-arm64-dts-rockchip-Add-VOP-clock-resets-for-rk3588s.patch"
"rk3588-mnt-reform2/0035-drm-rockchip-vop2-Add-core-reset-support.patch"
"rk3588-mnt-reform2/0062-PCI-dw-rockchip-Move-devm_phy_get-out-of-phy_init.patch"
"rk3588-mnt-reform2/0063-PCI-dw-rockchip-Add-helper-function-for-enhanced-LTS.patch"
"rk3588-mnt-reform2/0064-PCI-dw-rockchip-Add-helper-function-for-controller-m.patch"
"rk3588-mnt-reform2/0065-PCI-dw-rockchip-Add-helper-function-for-DDL-indicato.patch"
"rk3588-mnt-reform2/0066-PCI-dw-rockchip-Add-pme_turn_off-support.patch"
"rk3588-mnt-reform2/0067-PCI-dw-rockchip-Add-system-PM-support.patch"
"rk3588-mnt-reform2/0074-MERGED-phy-hdmi-Add-HDMI-2.1-FRL-configuration-optio.patch"
"rk3588-mnt-reform2/0075-PCI-host-common-Add-an-API-to-check-for-any-device-u.patch"
"rk3588-mnt-reform2/0076-PCI-qcom-Check-for-the-presence-of-a-device-instead-.patch"
"rk3588-mnt-reform2/0077-PCI-dwc-Check-for-the-device-presence-during-suspend.patch"
"rk3588-mnt-reform2/0078-PCI-dw-rockchip-Fix-LTSSM-set-functions.patch"
"rk3588-mnt-reform2/0079-MERGED-phy-rockchip-samsung-hdptx-Use-usleep_range-i.patch"
"rk3588-mnt-reform2/0079-WIP-PCI-dw-rockchip-port-some-suspend-code-from-vend.patch"
"rk3588-mnt-reform2/0080-MERGED-phy-rockchip-samsung-hdptx-Fix-coding-style-a.patch"
"rk3588-mnt-reform2/0081-MERGED-phy-rockchip-samsung-hdptx-Consistently-use-r.patch"
"rk3588-mnt-reform2/0082-MERGED-phy-rockchip-samsung-hdptx-Enable-lane-output.patch"
"rk3588-mnt-reform2/0083-MERGED-phy-rockchip-samsung-hdptx-Cleanup-_cmn_init_.patch"
"rk3588-mnt-reform2/0084-MERGED-phy-rockchip-samsung-hdptx-Compute-clk-rate-f.patch"
"rk3588-mnt-reform2/0085-MERGED-phy-rockchip-samsung-hdptx-Drop-hw_rate-drive.patch"
"rk3588-mnt-reform2/0086-MERGED-phy-rockchip-samsung-hdptx-Switch-to-driver-s.patch"
"rk3588-mnt-reform2/0087-MERGED-phy-rockchip-samsung-hdptx-Extend-rk_hdptx_ph.patch"
"rk3588-mnt-reform2/0088-MERGED-phy-rockchip-samsung-hdptx-Add-HDMI-2.1-FRL-s.patch"
"rk3588-mnt-reform2/0089-DEBUG-phy-rockchip-samsung-hdptx-Add-verbose-logging.patch"
"rk3588-mnt-reform2/0092-drm-rockchip-dw_hdmi_qp-Do-not-send-HPD-events-for-a.patch"
"rk3588-mnt-reform2/0093-drm-Add-CRTC-background-color-property.patch"
"rk3588-mnt-reform2/0094-drm-rockchip-vop2-Support-setting-custom-background-.patch"
"rk3588-mnt-reform2/0095-drm-bridge-Add-detect_ctx-hook-and-drm_bridge_detect.patch"
"rk3588-mnt-reform2/0096-drm-bridge-connector-Switch-to-using-detect_ctx-hook.patch"
"rk3588-mnt-reform2/0097-drm-bridge-dw-hdmi-qp-Add-high-TMDS-clock-ratio-and-.patch"
"rk3588-mnt-reform2/0098-WIP-YUV420-drm-rockchip-vop2-Add-YUV420-output-forma.patch"
"rk3588-mnt-reform2/0099-WIP-YUV420-drm-rockchip-dw_hdmi_qp-Add-YUV420-output.patch"
"rk3588-mnt-reform2/0103-WIP-FRL-arm64-dts-rockchip-Assign-ACLK_VOP-to-750-MH.patch"
"rk3588-mnt-reform2/0104-WIP-FRL-drm-connector-hdmi-Handle-FRL-in-hdmi_clock_.patch"
"rk3588-mnt-reform2/0105-WIP-FRL-drm-bridge-dw-hdmi-qp-Add-HDMI-2.1-FRL-suppo.patch"
"rk3588-mnt-reform2/0106-WIP-FRL-drm-rockchip-dw_hdmi_qp-Add-HDMI-2.1-FRL-sup.patch"
"rk3588-mnt-reform2/0107-WIP-FRL-drm-rockchip-vop2-Add-HDMI-2.1-FRL-support.patch"
"rk3588-mnt-reform2/0108-dt-bindings-phy-rockchip-usbdp-add-improved-ports-sc.patch"
"rk3588-mnt-reform2/2001-drm-bridge-dw-hdmi-qp-Return-0-in-audio-prepare-when.patch"
"rk3588-mnt-reform2/2003-drm-bridge-synopsys-Do-not-warn-about-audio-params-c.patch"
"rk3588-mnt-reform2/5200-drm-rockchip-Set-dma-mask-to-64-bit.patch"))))
(add-after 'apply-reform-patches 'copy-reform-dts-files
(lambda* (#:key inputs #:allow-other-keys)
(for-each (lambda (dts)
(copy-file (search-input-file inputs
(string-append
"/dts/" dts))
(string-append "arch/arm64/boot/dts/"
dts)))
(list
"amlogic/meson-g12b-bananapi-cm4-mnt-pocket-reform.dts"
"freescale/fsl-ls1028a-mnt-reform2.dts"
"freescale/imx8mp-mnt-pocket-reform.dts"
"freescale/imx8mp-mnt-reform2.dts"
"freescale/imx8mq-mnt-reform2-hdmi.dts"
"rockchip/rk3588-mnt-desktop-reform.dts"
"rockchip/rk3588-mnt-pocket-reform.dts"
"rockchip/rk3588-mnt-reform-next.dts"
"rockchip/rk3588-mnt-reform2.dts"
"rockchip/rk3588-mnt-reform2-dsi.dts"
))))
(add-after 'apply-reform-patches 'adjust-makefiles-with-new-dtb
(lambda _
(substitute* "arch/arm64/boot/dts/amlogic/Makefile"
(("meson-g12b-bananapi-cm4-mnt-reform2.dtb")
"meson-g12b-bananapi-cm4-mnt-reform2.dtb
dtb-$(CONFIG_ARCH_MESON) += meson-g12b-bananapi-cm4-mnt-pocket-reform.dtb"))
(substitute* "arch/arm64/boot/dts/freescale/Makefile"
(("fsl-ls1028a-rdb.dtb")
"fsl-ls1028a-rdb.dtb
dtb-$(CONFIG_ARCH_LAYERSCAPE) += fsl-ls1028a-mnt-reform2.dtb"))
(substitute* "arch/arm64/boot/dts/freescale/Makefile"
(("imx8mq-mnt-reform2.dtb")
"imx8mq-mnt-reform2.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-mnt-reform2.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mp-mnt-pocket-reform.dtb
dtb-$(CONFIG_ARCH_MXC) += imx8mq-mnt-reform2-hdmi.dtb"))
(substitute* "arch/arm64/boot/dts/rockchip/Makefile"
(("rk3588-mnt-reform2.dtb")
"rk3588-mnt-reform2.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-desktop-reform.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-reform2-dsi.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-reform-next.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-pocket-reform.dtb")))))))))))
(define-public linux-libre-arm64-mnt-reform-6.18
;; Kernel for use on the MNT/Reform systems
;; https://mntre.com/reform.html
@@ -2065,15 +1698,6 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-pocket-reform.dtb")))))))))))
("CONFIG_NFT_FIB_IPV6" . m)
("CONFIG_NFT_BRIDGE_META" . m)
("CONFIG_NFT_BRIDGE_REJECT" . m)
;; Provides support for FBCON options
("CONFIG_FRAMEBUFFER_CONSOLE_ROTATION" . #true)
("CONFIG_HIDRAW" . #true)
("CONFIG_FONT_SUPPORT" . #true)
("CONFIG_FONTS" . #true)
("CONFIG_FONT_8x8" . #true)
("CONFIG_FONT_8x16" . #true)
("CONFIG_FONT_TER10x18" . #true)
("CONFIG_FONT_TER16x32" . #true)
;; Provide support for USB tethering
("CONFIG_USB_NET_CDC_EEM" . m)
("CONFIG_USB_NET_RNDIS_HOST" . m)
@@ -2400,15 +2024,6 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-pocket-reform.dtb")))))))))))
("CONFIG_NFT_FIB_IPV6" . m)
("CONFIG_NFT_BRIDGE_META" . m)
("CONFIG_NFT_BRIDGE_REJECT" . m)
;; Provides support for FBCON options
("CONFIG_FRAMEBUFFER_CONSOLE_ROTATION" . #true)
("CONFIG_HIDRAW" . #true)
("CONFIG_FONT_SUPPORT" . #true)
("CONFIG_FONTS" . #true)
("CONFIG_FONT_8x8" . #true)
("CONFIG_FONT_8x16" . #true)
("CONFIG_FONT_TER10x18" . #true)
("CONFIG_FONT_TER16x32" . #true)
;; Provide support for USB tethering
("CONFIG_USB_NET_CDC_EEM" . m)
("CONFIG_USB_NET_RNDIS_HOST" . m)
+46 -33
View File
@@ -328,6 +328,9 @@ compatible, and adds new functionality.")
(define-public cl-3d-math
(sbcl-package->cl-source-package sbcl-3d-math))
(define-public ecl-3d-math
(sbcl-package->ecl-package sbcl-3d-math))
(define-public sbcl-3d-matrices
(let ((commit "bc1ffa08dcf4732523e09adcf9deba4ddeb559ff")
(revision "3"))
@@ -4391,8 +4394,8 @@ Lisp expressions in multiple implementations.")
(sbcl-package->cl-source-package sbcl-cl-all))
(define-public sbcl-cl-ana
(let ((commit "88abde5ad3fa327958720426b89a8457e6943b94")
(revision "3"))
(let ((commit "848185eed1ed65bab3a124870c122f761ce0d87e")
(revision "2"))
(package
(name "sbcl-cl-ana")
(version (git-version "0.0.0" revision commit))
@@ -4403,9 +4406,8 @@ Lisp expressions in multiple implementations.")
(url "https://github.com/ghollisjr/cl-ana")
(commit commit)))
(file-name (git-file-name "cl-ana" version))
(patches (search-patches "cl-ana-pr-49.patch"))
(sha256
(base32 "1dg8wkc2bv66lykr2fjgn91jw7aa9xnpk20h0g8pp2xr6981gfl9"))))
(base32 "026agqsxq3pg2k9jmy2wysil2z0yn5rykzzhr8rqxsspdwz51z1y"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list openmpi ;; for hdf-cffi
@@ -9451,6 +9453,9 @@ classes and cyclic data structures are supported.")
(define-public cl-prevalence
(sbcl-package->cl-source-package sbcl-cl-prevalence))
(define-public ecl-cl-prevalence
(sbcl-package->ecl-package sbcl-cl-prevalence))
(define-public sbcl-cl-progress-bar
(let ((commit "9374170858663c8fe829e9fb5a29bd2cb48d95ae"))
(package
@@ -14729,8 +14734,8 @@ replacement, which is called @code{*let}).")
(sbcl-package->clasp-package sbcl-defstar))
(define-public sbcl-deploy
(let ((commit "c9b869d943d39fcddd8c4aa380995645bd2e3c0b")
(revision "4"))
(let ((commit "5d57fcce38b6156be951f3fed9fbbdacf4ba2912")
(revision "3"))
(package
(name "sbcl-deploy")
(version (git-version "3.0.0" revision commit))
@@ -14742,17 +14747,13 @@ replacement, which is called @code{*let}).")
(commit commit)))
(file-name (git-file-name "deploy" version))
(sha256
(base32 "05xvv6f1nh7p1dmdyqbpddisf2f9v5kvq2ixa38i263p35rg82sr"))))
(base32 "1f2sahr2k4d291hn7x7bcy4nxav4va3rrw2gcw122zsg97siqy8h"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-cl-mpg123
sbcl-cl-out123))
(list sbcl-cl-mpg123 sbcl-cl-out123))
(inputs
(list sbcl-cffi
sbcl-documentation-utils
sbcl-pathname-utils
sbcl-trivial-features
sbcl-sha3))
(list sbcl-cffi sbcl-documentation-utils sbcl-pathname-utils
sbcl-trivial-features sbcl-sha3))
(home-page "https://codeberg.org/shinmera/deploy")
(synopsis "Deployment tools for standalone Common Lisp application")
(description
@@ -21454,6 +21455,9 @@ in Common Lisp.")
(define-public cl-lispbuilder-sdl
(sbcl-package->cl-source-package sbcl-lispbuilder-sdl))
(define-public ecl-lispbuilder-sdl
(sbcl-package->ecl-package sbcl-lispbuilder-sdl))
(define-public sbcl-list-named-class
(let ((commit "2955791a7469131bcab42d800883f27993ee1d62")
(revision "0"))
@@ -25855,8 +25859,8 @@ variable portably in Common Lisp.")
(sbcl-package->ecl-package sbcl-path-parse))
(define-public sbcl-pathname-utils
(let ((commit "c0aa51ab78cb21581700d44deeed88a4743b6f13")
(revision "5"))
(let ((commit "3309d65a568acc392ade6a4096c940eb15e1149e")
(revision "4"))
(package
(name "sbcl-pathname-utils")
(version (git-version "1.1.0" revision commit))
@@ -25864,17 +25868,17 @@ variable portably in Common Lisp.")
(origin
(method git-fetch)
(uri (git-reference
(url "https://codeberg.org/shinmera/pathname-utils")
(url "https://github.com/Shinmera/pathname-utils")
(commit commit)))
(file-name (git-file-name "cl-pathname-utils" version))
(sha256
(base32 "11hic5gspnkjfggdh4zzx9i1ha4vf7rjr2cyqmz1144sprl2nva6"))))
(base32 "0w7h0qhi53myakfbwvwgr9srbz5mmgsdcbynzkh5vjiibwjg1c3i"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-parachute))
(inputs
(list sbcl-trivial-features))
(home-page "https://codeberg.org/shinmera/pathname-utils")
(home-page "https://shinmera.github.io/pathname-utils/")
(synopsis "Collection of utilities to help with pathname operations")
(description
"This package provides a Common Lisp system with a collection of common
@@ -25885,12 +25889,6 @@ handling the accessing of files on the underlying system however.")
(define-public cl-pathname-utils
(sbcl-package->cl-source-package sbcl-pathname-utils))
(define-public clasp-pathname-utils
(package
(inherit (sbcl-package->clasp-package sbcl-pathname-utils))
(arguments
(list #:tests? #f)))) ;see ECL variant
(define-public ecl-pathname-utils
(package
(inherit (sbcl-package->ecl-package sbcl-pathname-utils))
@@ -27050,6 +27048,9 @@ pattern-matching-like, but a char-by-char procedural parser.")
(define-public cl-prometheus
(sbcl-package->cl-source-package sbcl-prometheus))
(define-public ecl-prometheus
(sbcl-package->ecl-package sbcl-prometheus))
(define-public sbcl-promise
(let ((commit "801db8f853da7935ae2e487fd7f8763acbc5ad2a")
(revision "0"))
@@ -27646,8 +27647,8 @@ Lisp. It is intended to be a replacement of PURI.")
(sbcl-package->ecl-package sbcl-quri))
(define-public sbcl-radiance
(let ((commit "8249b00388ffe1c7e516a148c8ea8e7d9bc4243c")
(revision "4"))
(let ((commit "8d826c7fe1935338565580931db43f46181e0e85")
(revision "3"))
(package
(name "sbcl-radiance")
(version (git-version "2.1.2" revision commit))
@@ -27655,14 +27656,26 @@ Lisp. It is intended to be a replacement of PURI.")
(origin
(method git-fetch)
(uri (git-reference
(url "https://codeberg.org/shirakumo/radiance")
(commit commit)))
(url "https://github.com/Shirakumo/radiance")
(commit commit)))
(file-name (git-file-name "radiance" version))
(sha256
(base32 "1kl1936kzv1j2fmnm6n3nq503bxz38zzymwbwq3vhqa0jsqjwynm"))))
(base32 "1j823dgp87www0sjbcbv9j025bfxlkwhjd7kz6635mrqwmmlki4l"))))
(build-system asdf-build-system/sbcl)
(arguments
(list #:tests? #f)) ; TODO: The tests require some configuration.
`(#:tests? #f ; TODO: The tests require some configuration.
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-quicklisp
(lambda _
;; Disable the automatic installation of systems by Quicklisp.
;; (Maybe there would be a way to package Quicklisp and make it
;; install things in the user's directory instead of
;; /gnu/store/...).
(substitute* "interfaces.lisp"
(("\\(unless \\(asdf:find-system configured-implementation NIL\\)"
all)
(string-append "#+quicklisp " all))))))))
(native-inputs
(list sbcl-alexandria
sbcl-dexador
@@ -27673,8 +27686,8 @@ Lisp. It is intended to be a replacement of PURI.")
sbcl-bordeaux-threads
sbcl-cl-ppcre
sbcl-closer-mop
sbcl-deploy
sbcl-documentation-utils
sbcl-deploy
sbcl-form-fiddle
sbcl-lambda-fiddle
sbcl-local-time
@@ -27684,7 +27697,7 @@ Lisp. It is intended to be a replacement of PURI.")
sbcl-trivial-indent
sbcl-trivial-mimes
sbcl-ubiquitous))
(home-page "https://codeberg.org/shirakumo/radiance")
(home-page "https://shirakumo.github.io/radiance/")
(synopsis "Common Lisp web application environment")
(description
"Radiance is a web application environment, which is sort of like a web
+5 -4
View File
@@ -329,7 +329,7 @@ family of functions.")
(define-public python-burr
(package
(name "python-burr")
(version "0.42.0")
(version "0.40.2")
(source
(origin
(method git-fetch)
@@ -338,7 +338,7 @@ family of functions.")
(commit (string-append "burr-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0a2sf72qy9jkamg6r7d37mv7ayp698h031md7arfyq7v8q9q121n"))))
(base32 "0scdfdn2dkan5rkrh5ngai8j4i01rj6d6ncrhvab62r43c0h042q"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -4751,6 +4751,7 @@ different backends")
,(python:site-packages inputs outputs)))))))))
(inputs
(list bash-minimal
openblas
python
python-customtkinter
spirv-headers
@@ -6176,7 +6177,7 @@ Jax, PyTorch and TensorFlow — with a seamless integration between them.")
(define-public ctranslate2
(package
(name "ctranslate2")
(version "4.7.1")
(version "4.6.3")
(source
(origin
(method git-fetch)
@@ -6184,7 +6185,7 @@ Jax, PyTorch and TensorFlow — with a seamless integration between them.")
(url "https://github.com/OpenNMT/CTranslate2")
(commit (string-append "v" version))))
(file-name (git-file-name "CTranslate2" version))
(sha256 (base32 "09gr7pvc2b4xacjg8jbb20rini51071q2x998h88jr85wp5a8824"))
(sha256 (base32 "1msmf1imgvmhji48mjj8cq5y8d8fk8rywqh624vmilfawq75f497"))
(patches (search-patches "ctranslate2-local-build.patch"))))
(build-system cmake-build-system)
(arguments
+2 -36
View File
@@ -507,13 +507,13 @@ triangulations.")
(define-public units
(package
(name "units")
(version "2.26")
(version "2.25")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/units/units-" version
".tar.gz"))
(sha256 (base32
"0m1whwcggib8kyzmcjkw94sxnd8r19d7bh6k6gj2w8g2kyjgfhsc"))))
"02zclvjji25hsdriz4jwys5i21dbcmz3i4gap8266k8bq0xg9v9n"))))
(build-system gnu-build-system)
(inputs
(list bash-minimal ;for wrap-program
@@ -4859,40 +4859,6 @@ wedges, pyramids, n-spheres, n-balls, n-cubes, n-simplices, and the
integration of real-, complex-, and vector-valued functions.")
(license license:gpl3+)))
(define-public python-simplesat
(package
(name "python-simplesat")
(version "0.9.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/enthought/sat-solver")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0z44pi8yb6pvc9bisl3qnn3glj7ir0ad2j4gd4jfg2kxvwvi0w0b"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags #~(list "--ignore=old")))
(native-inputs
(list python-mock
python-pytest
python-pyyaml
python-setuptools))
(propagated-inputs
(list python-attrs
python-okonomiyaki
python-six))
(home-page "https://github.com/enthought/sat-solver")
(synopsis
"@acronym{SAT, Boolean Satisfiability Problem} dependency handling")
(description
"This package provides a prototype Python implementation for SAT-based
problems.")
(license license:bsd-3)))
(define-public slepc
(package
(name "slepc")
+8 -8
View File
@@ -115,15 +115,15 @@ Health Federation.")
(define-public orthanc
(package
(name "orthanc")
(version "1.12.10")
(version "1.12.7")
(source
(origin
(method hg-fetch)
(uri (hg-reference (url "https://orthanc.uclouvain.be/hg/orthanc")
(changeset "8628c32729cf")))
(changeset "a30cc2fa7250")))
(file-name (hg-file-name name version))
(sha256
(base32 "16xkbs6amhx81yvn7avkg8nwha6sj55l6vipa5290yf0rgygyadr"))))
(base32 "1n8v0dh17g9ihny8cpq63qd6ai5l95i5h3sz9vwzfnd7q3qh0rb9"))))
(build-system cmake-build-system)
(arguments
(list
@@ -147,7 +147,7 @@ Health Federation.")
;; /etc/localtime is not present in the build container;
;; don't let that stop the build.
(substitute* "OrthancFramework/Sources/Toolbox.cpp"
(("if \\(!boost::filesystem::exists\\(LOCALTIME\\)\\)")
(("if \\(!SystemToolbox::IsExistingFile\\(LOCALTIME\\)\\)")
"if (false)"))))
;; There is no test target; simply run the binary.
(replace 'check
@@ -158,7 +158,7 @@ Health Federation.")
glibc-utf8-locales ;for one test
googletest
python))
(inputs (list boost
(inputs (list boost-1.83
civetweb
curl
dcmtk
@@ -184,11 +184,11 @@ mechanism for extending its functionality.")
(define-public orthanc-postgresql
;; No tags provided.
(let ((changeset "81d837d7d20d")
(let ((changeset "ddc98844d931")
(revision "0"))
(package
(name "orthanc-postgresql")
(version (git-version "10.0" revision changeset))
(version (git-version "7.2" revision changeset))
(source
(origin
(method hg-fetch)
@@ -197,7 +197,7 @@ mechanism for extending its functionality.")
(changeset changeset)))
(file-name (hg-file-name name version))
(sha256
(base32 "1ijxa8hlpxjcrcp0b54fzmxf01lqb9741bff4ak1nw24sn9z96ai"))))
(base32 "1zv2lrj0f3fahmdyiwyj70ayv5ysa3cj33i58fbk7hy2zclrkjzf"))))
(build-system cmake-build-system)
(arguments
(list
-9
View File
@@ -695,15 +695,6 @@ is to provide an accurate identifier for record tracks.")
(sha256
(base32 "0v866n5rwdz45ks8dlhl8hzx3p54hcjl0rz7x3rbsj4c96jn0m5c"))))
(build-system pyproject-build-system)
(arguments
(list #:phases #~(modify-phases %standard-phases
(add-after 'unpack 'fix-gst-init
(lambda _
;; `None' is no longer accepted as of gstreamer
;; 2.28.1.
(substitute* "audioread/gstdec.py"
(("Gst.init\\(None\\)")
"Gst.init([])")))))))
(propagated-inputs (list ffmpeg python-pygobject))
(native-inputs
(list gstreamer
+2 -3
View File
@@ -1450,11 +1450,10 @@ and auto-mapping slices to MIDI note numbers.")
(home-page "https://github.com/clearly-broken-software/ninjas2")
(license license:gpl3+)))
;; This package tracks the stable release of LilyPond.
(define-public lilypond
(package
(name "lilypond")
(version "2.24.4")
(version "2.25.30")
(source
(origin
(method url-fetch)
@@ -1462,7 +1461,7 @@ and auto-mapping slices to MIDI note numbers.")
"v" (version-major+minor version) "/"
"lilypond-" version ".tar.gz"))
(sha256
(base32 "073qa7m9xkghad4x37rxb9v45vp4vfmsylwnjzhj17y7f4ss0vz9"))))
(base32 "0q5id9v211i9zgjmwzmvi2qfvr3flh55kh476653r04a2br53962"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f ;out-test/collated-files.html fails
+4 -5
View File
@@ -4040,7 +4040,7 @@ Ethernet and TAP interfaces is supported. Packet capture is also supported.")
(define-public hcxtools
(package
(name "hcxtools")
(version "7.1.2")
(version "7.0.1")
(source
(origin
(method git-fetch)
@@ -4048,7 +4048,7 @@ Ethernet and TAP interfaces is supported. Packet capture is also supported.")
(url "https://github.com/ZerBea/hcxtools")
(commit version)))
(sha256
(base32 "0da9ad3v53x080b75q34zi16mnd58xl5s5w6afafgq406ajd2zdz"))
(base32 "07j8fcy9fq1i4jns6v1gx85pm34q56022aw391mdzxq5yka7wpjr"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(native-inputs (list pkg-config))
@@ -5158,7 +5158,7 @@ daemon.")
(define-public nebula
(package
(name "nebula")
(version "1.10.3")
(version "1.10.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -5167,7 +5167,7 @@ daemon.")
(file-name (git-file-name name version))
(sha256
(base32
"0y0c9l6dzhdrhfzss1hv2sm18y2qzgmkcyiw9s3rav3ij1kcspxh"))
"1x4r8b3ny0vxipf404l8z00m5cs7cfy810670gmznl61jkaq1zd7"))
;; Remove windows-related binary blobs and files
(snippet
#~(begin
@@ -5196,7 +5196,6 @@ daemon.")
"nebula-cert")))))))
(inputs
(list go-dario-cat-mergo
go-filippo-io-bigmod
go-github-com-anmitsu-go-shlex
go-github-com-armon-go-radix
go-github-com-cyberdelia-go-metrics-graphite
+107 -20
View File
@@ -32,7 +32,6 @@
;;; Copyright © 2023 Arnaud DABY-SEESARAM <ds-ac@nanein.fr>
;;; Copyright © 2024 Sören Tempel <soeren@soeren-tempel.net>
;;; Copyright © 2025 Jussi Timperi <jussi.timperi@iki.fi>
;;; Copyright © 2025 Jason Conroy <jconroy@tscripta.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -76,7 +75,6 @@
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages node)
#:use-module ((gnu packages ocaml5) #:prefix ocaml5:)
#:use-module (gnu packages parallel)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
@@ -224,6 +222,89 @@ OCaml and can effectively bootstrap OCaml 4.07.
This package produces a native @command{ocamlc} and a bytecode @command{ocamllex}.")
(license license:expat))))
(define-public ocaml-5.0
(package
(name "ocaml")
(version "5.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ocaml/ocaml")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1p0p8wldrnbr61wfy3x4122017g4k5gjvfwlg3mvlqn8r2fxn2m5"))))
(build-system gnu-build-system)
(native-search-paths
(list (search-path-specification
(variable "OCAMLPATH")
(files (list "lib/ocaml" "lib/ocaml/site-lib")))
(search-path-specification
(variable "CAML_LD_LIBRARY_PATH")
(files (list "lib/ocaml/site-lib/stubslibs"
"lib/ocaml/site-lib/stublibs")))))
(native-inputs
(list parallel perl pkg-config))
(inputs
(list libx11 libiberty ;needed for objdump support
zlib)) ;also needed for objdump support
(arguments
`(#:configure-flags '("--enable-ocamltest")
#:test-target "tests"
;; This doesn't have the desired effect and makes test runs less
;; stable. See https://codeberg.org/guix/guix/pulls/2933.
#:parallel-tests? #f
#:make-flags '("defaultentry")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enable-parallel-tests
(lambda _
;; Patch the `tests` build target to enable a special parallel
;; execution mode based on GNU Parallel.
(substitute* "Makefile"
(("-C testsuite all") "-C testsuite parallel"))))
(add-after 'unpack 'patch-/bin/sh-references
(lambda* (#:key inputs #:allow-other-keys)
(let* ((sh (search-input-file inputs "/bin/sh"))
(quoted-sh (string-append "\"" sh "\"")))
(with-fluids ((%default-port-encoding #f))
(for-each
(lambda (file)
(substitute* file
(("\"/bin/sh\"")
(begin
(format (current-error-port) "\
patch-/bin/sh-references: ~a: changing `\"/bin/sh\"' to `~a'~%"
file quoted-sh)
quoted-sh))))
(find-files "." "\\.ml$")))))))))
(home-page "https://ocaml.org/")
(synopsis "The OCaml programming language")
(description
"OCaml is a general purpose industrial-strength programming language with
an emphasis on expressiveness and safety. Developed for more than 20 years at
Inria it benefits from one of the most advanced type systems and supports
functional, imperative and object-oriented styles of programming.")
;; The compiler is distributed under qpl1.0 with a change to choice of
;; law: the license is governed by the laws of France. The library is
;; distributed under lgpl2.0.
(license (list license:qpl license:lgpl2.0))))
(define-public ocaml-5.3
(package
(inherit ocaml-5.0)
(version "5.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ocaml/ocaml")
(commit version)))
(file-name (git-file-name "ocaml" version))
(sha256
(base32
"05jhy9zn53v12rn3sg3vllqf5blv1gp7f06803npimc58crxy6rv"))))))
(define-public ocaml-4.14
(package
(name "ocaml")
@@ -1598,6 +1679,13 @@ compilers that can directly deal with packages.")
(native-inputs
(list m4 ocaml-4.09))))
(define-public ocaml5.0-findlib
(package
(inherit ocaml-findlib)
(name "ocaml5.0-findlib")
(native-inputs
(list m4 ocaml-5.0))))
(define-public ocaml-ounit2
(package
(name "ocaml-ounit2")
@@ -1929,6 +2017,9 @@ Descriptions of projects, libraries and executables are provided in
(define-public ocaml4.09-dune-bootstrap
(package-with-ocaml4.09 dune-bootstrap))
(define-public ocaml5.0-dune-bootstrap
(package-with-ocaml5.0 dune-bootstrap))
(define-public dune-configurator
(package
(inherit dune-bootstrap)
@@ -1950,8 +2041,7 @@ Descriptions of projects, libraries and executables are provided in
(propagated-inputs
(list ocaml-csexp))
(properties `((ocaml4.09-variant . ,(delay ocaml4.09-dune-configurator))
(ocaml5.0-variant . ,(delay ocaml5.0-dune-configurator))
(ocaml5.3-variant . ,(delay ocaml5:ocaml5.3-dune-configurator))))
(ocaml5.0-variant . ,(delay ocaml5.0-dune-configurator))))
(synopsis "Dune helper library for gathering system configuration")
(description "Dune-configurator is a small library that helps writing
OCaml scripts that test features available on the system, in order to generate
@@ -1982,9 +2072,9 @@ config.h files for instance. Among other things, dune-configurator allows one t
(name "ocaml5.0-dune-configurator")
(arguments
`(,@(package-arguments dune-configurator)
#:dune ,ocaml5:ocaml5.0-dune-bootstrap
#:ocaml ,ocaml5:ocaml-5.0
#:findlib ,ocaml5:ocaml5.0-findlib))
#:dune ,ocaml5.0-dune-bootstrap
#:ocaml ,ocaml-5.0
#:findlib ,ocaml5.0-findlib))
(propagated-inputs (list ocaml5.0-csexp))))
(define-public dune
@@ -1994,8 +2084,7 @@ config.h files for instance. Among other things, dune-configurator allows one t
(list dune-configurator))
(properties `((ocaml4.07-variant . ,(delay ocaml4.07-dune))
(ocaml4.09-variant . ,(delay ocaml4.09-dune))
(ocaml5.0-variant . ,(delay ocaml5.0-dune))
(ocaml5.3-variant . ,(delay ocaml5:ocaml5.3-dune))))))
(ocaml5.0-variant . ,(delay ocaml5.0-dune))))))
(define-public ocaml4.09-dune
(package
@@ -2019,7 +2108,7 @@ config.h files for instance. Among other things, dune-configurator allows one t
(define-public ocaml5.0-dune
(package
(inherit ocaml5:ocaml5.0-dune-bootstrap)
(inherit ocaml5.0-dune-bootstrap)
(propagated-inputs
(list ocaml5.0-dune-configurator))))
@@ -2148,8 +2237,7 @@ executables and libraries")))
(propagated-inputs
(list ocaml-result))
(properties `((ocaml4.09-variant . ,(delay ocaml4.09-csexp))
(ocaml5.0-variant . ,(delay ocaml5.0-csexp))
(ocaml5.3-variant . ,(delay ocaml5:ocaml5.3-csexp))))
(ocaml5.0-variant . ,(delay ocaml5.0-csexp))))
(home-page "https://github.com/ocaml-dune/csexp")
(synopsis "Parsing and printing of S-expressions in Canonical form")
(description "This library provides minimal support for Canonical
@@ -2183,10 +2271,10 @@ module of this library is parameterised by the type of S-expressions.")
(inherit ocaml-csexp)
(name "ocaml5.0-csexp")
(arguments
`(#:ocaml ,ocaml5:ocaml-5.0
#:findlib ,ocaml5:ocaml5.0-findlib
`(#:ocaml ,ocaml-5.0
#:findlib ,ocaml5.0-findlib
,@(substitute-keyword-arguments (package-arguments ocaml-csexp)
((#:dune _) ocaml5:ocaml5.0-dune-bootstrap))))
((#:dune _) ocaml5.0-dune-bootstrap))))
(propagated-inputs
`(("ocaml-result" ,ocaml5.0-result)))))
@@ -2309,8 +2397,7 @@ bitsrings in Erlang style as primitives to the language.")))
(arguments
`(#:dune ,dune-bootstrap))
(properties `((ocaml4.09-variant . ,(delay ocaml4.09-result))
(ocaml5.0-variant . ,(delay ocaml5.0-result))
(ocaml5.3-variant . ,(delay ocaml5:ocaml5.3-result))))
(ocaml5.0-variant . ,(delay ocaml5.0-result))))
(home-page "https://github.com/janestreet/result")
(synopsis "Compatibility Result module")
(description "Uses the new result type defined in OCaml >= 4.03 while
@@ -2332,9 +2419,9 @@ defined in this library.")
(inherit ocaml-result)
(name "ocaml5.0-result")
(arguments
`(#:dune ,ocaml5:ocaml5.0-dune-bootstrap
#:ocaml ,ocaml5:ocaml-5.0
#:findlib ,ocaml5:ocaml5.0-findlib))))
`(#:dune ,ocaml5.0-dune-bootstrap
#:ocaml ,ocaml-5.0
#:findlib ,ocaml5.0-findlib))))
(define-public ocaml-iso8601
(package
File diff suppressed because it is too large Load Diff
-33
View File
@@ -1,33 +0,0 @@
Upstream status: https://github.com/ghollisjr/cl-ana/pull/49
From 491ba1127126ca6209b7c4dc1485377c7f772f7e Mon Sep 17 00:00:00 2001
From: Philip Taron <philip.taron@gmail.com>
Date: Mon, 16 Feb 2026 12:32:04 -0800
Subject: [PATCH] Fix type error in fixed-mem-cache for SBCL 2.6.0
In cl-ana.makeres, the fixed-mem-cache function uses
(setf (cdr (last cache)) (list id)) where cache can be nil (initial
state or after popping all elements). (last nil) returns nil, making
(setf (cdr nil) ...) undefined. SBCL 2.6.0's stricter type inference
catches this as a type conflict, causing COMPILE-FILE-ERROR.
Replace with nconc which handles the nil case correctly.
---
makeres/makeres.lisp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/makeres/makeres.lisp b/makeres/makeres.lisp
index 1999ac4..373bb57 100644
--- a/makeres/makeres.lisp
+++ b/makeres/makeres.lisp
@@ -936,8 +936,8 @@ compressed storage, but alas."
(> total maxmem))
do (unload-target (pop cache))))
(load-target id)
- (setf (cdr (last cache))
- (list id)))))))))
+ (setf cache
+ (nconc cache (list id))))))))))
;; Caching utility functions:
@@ -1,42 +0,0 @@
Author: Danny Milosavljevic <dannym@friendly-machines.com>
Date: 2026-02-08
License: ASL2.0
Remove [patch.crates-io] and [patch.'ssh://...'] sections and
exclude network-proxy from workspace members.
The [patch] sections point to git repositories which are unavailable
in an offline build. The vendored crossterm, ratatui,
tokio-tungstenite and tungstenite forks are provided as cargo-inputs
instead.
The network-proxy workspace member depends on rama which requires
Rust 1.91+.
--- a/codex-rs/Cargo.toml
+++ b/codex-rs/Cargo.toml
@@ -28,7 +28,6 @@
"lmstudio",
"login",
"mcp-server",
- "network-proxy",
"ollama",
"process-hardening",
"protocol",
@@ -311,16 +310,3 @@
debug = 1 # Reduce debug symbol size
inherits = "test"
opt-level = 0
-
-[patch.crates-io]
-# Uncomment to debug local changes.
-# ratatui = { path = "../../ratatui" }
-crossterm = { git = "https://github.com/nornagon/crossterm", branch = "nornagon/color-query" }
-ratatui = { git = "https://github.com/nornagon/ratatui", branch = "nornagon-v0.29.0-patch" }
-tokio-tungstenite = { git = "https://github.com/JakkuSakura/tokio-tungstenite", rev = "2ae536b0de793f3ddf31fc2f22d445bf1ef2023d" }
-
-# Uncomment to debug local changes.
-# rmcp = { path = "../../rust-sdk/crates/rmcp" }
-
-[patch."ssh://git@github.com/JakkuSakura/tungstenite-rs.git"]
-tungstenite = { git = "https://github.com/JakkuSakura/tungstenite-rs", rev = "f514de8644821113e5d18a027d6d28a5c8cc0a6e" }
+32
View File
@@ -0,0 +1,32 @@
Upstream-status: Not presented upstream.
From a4eb7d1f2cbd02132a9f5512f1294182576d4653 Mon Sep 17 00:00:00 2001
From: Janneke Nieuwenhuizen <janneke@gnu.org>
Date: Fri, 8 Nov 2024 11:47:49 +0100
Subject: [PATCH] osdep/hurd: Support the 64bit Hurd.
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=UTF-8
* grub-core/osdep/hurd/getroot.c (grub_util_find_hurd_root_device):
Use mach_msg_type_number_t instead of size_t.
---
grub-core/osdep/hurd/getroot.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/grub-core/osdep/hurd/getroot.c b/grub-core/osdep/hurd/getroot.c
index 0efefdab4..b849700e6 100644
--- a/grub-core/osdep/hurd/getroot.c
+++ b/grub-core/osdep/hurd/getroot.c
@@ -58,7 +58,7 @@ grub_util_find_hurd_root_device (const char *path)
file_t file;
error_t err;
char *argz = NULL, *name = NULL, *ret;
- size_t argz_len = 0;
+ mach_msg_type_number_t argz_len = 0;
int i;
file = file_name_lookup (path, 0, 0);
--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com | Avatar® https://AvatarAcademy.com
@@ -1,46 +0,0 @@
From 7d7c9ce06837f20d5585f1bc28a47701d12cf8ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com>
Date: Sun, 1 Mar 2026 10:53:21 +0200
Subject: [PATCH] glcolorconvert: Fix NULL pointer dereference on buffers
without video meta
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4935
---
.../gst-libs/gst/gl/gstglcolorconvert.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/gst-libs/gst/gl/gstglcolorconvert.c b/gst-libs/gst/gl/gstglcolorconvert.c
index f2dc2dc7bbb..c13b4df69de 100644
--- a/gst-libs/gst/gl/gstglcolorconvert.c
+++ b/gst-libs/gst/gl/gstglcolorconvert.c
@@ -3428,10 +3428,12 @@ _init_convert (GstGLColorConvert * convert)
}
GstVideoMeta *v_meta = gst_buffer_get_video_meta (convert->inbuf);
- if (v_meta->width != convert->priv->padded_width
- || v_meta->height != convert->priv->padded_height) {
- gdouble padded_width = v_meta->width;
- gdouble padded_height = v_meta->height;
+ if ((v_meta && (v_meta->width != convert->priv->padded_width
+ || v_meta->height != convert->priv->padded_height)) ||
+ (!v_meta && (convert->in_info.width != convert->priv->padded_width ||
+ convert->in_info.height != convert->priv->padded_height))) {
+ gdouble padded_width = v_meta ? v_meta->width : convert->in_info.width;
+ gdouble padded_height = v_meta ? v_meta->height : convert->in_info.height;
gdouble display_width = GST_VIDEO_INFO_WIDTH (&convert->in_info);
gdouble display_height = GST_VIDEO_INFO_HEIGHT (&convert->in_info);
@@ -3449,8 +3451,8 @@ _init_convert (GstGLColorConvert * convert)
crop_vertices, GL_STATIC_DRAW);
gl->BindBuffer (GL_ARRAY_BUFFER, 0);
- convert->priv->padded_width = v_meta->width;
- convert->priv->padded_height = v_meta->height;
+ convert->priv->padded_width = padded_width;
+ convert->priv->padded_height = padded_height;
}
gl->BindTexture (GL_TEXTURE_2D, 0);
--
GitLab
+75
View File
@@ -0,0 +1,75 @@
Uptream-status: https://github.com/YosysHQ/nextpnr/pull/1480
diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt
index ff5d9208..c554cc96 100644
--- a/gui/CMakeLists.txt
+++ b/gui/CMakeLists.txt
@@ -46,12 +46,42 @@ target_include_directories(nextpnr-${target}-gui PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
)
+# Detect whether imgui/qtimgui packages are available from the system.
+find_path(IMGUI_INCLUDE_DIR NAMES imgui.h PATH_SUFFIXES imgui)
+find_path(QTIMGUI_INCLUDE_DIR NAMES QtImGui.h PATH_SUFFIXES qtimgui)
+find_library(IMGUI_LIB NAMES imgui)
+find_library(QTIMGUI_LIB NAMES qt_imgui_widgets)
+if (IMGUI_INCLUDE_DIR AND IMGUI_LIB)
+ message("Using system imgui library:
+ IMGUI_INCLUDE_DIR=${IMGUI_INCLUDE_DIR}
+ IMGUI_LIB=${IMGUI_LIB}")
+else()
+ message("Using bundled imgui library")
+ set(IMGUI_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/3rdparty/imgui)
+ set(IMGUI_SOURCES
+ ../3rdparty/imgui/imgui_widgets.cpp
+ ../3rdparty/imgui/imgui_draw.cpp
+ ../3rdparty/imgui/imgui.cpp
+ ../3rdparty/imgui/imgui_demo.cpp)
+endif()
+if (QTIMGUI_INCLUDE_DIR AND QTIMGUI_LIB)
+ message("Using system qtimgui library:
+ QTIMGUI_INCLUDE_DIR=${QTIMGUI_INCLUDE_DIR}
+ QTIMGUI_LIB=${QTIMGUI_LIB}")
+else()
+ message("Using bundled qtimgui library")
+ set(QTIMGUI_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/3rdparty/qtimgui)
+ set(QTIMGUI_SOURCES
+ ../3rdparty/qtimgui/ImGuiRenderer.cpp
+ ../3rdparty/qtimgui/QtImGui.cpp)
+endif()
+
target_include_directories(nextpnr-${target}-gui PRIVATE
${CMAKE_SOURCE_DIR}/frontend
${CMAKE_SOURCE_DIR}/json
${CMAKE_SOURCE_DIR}/3rdparty/QtPropertyBrowser/src
- ${CMAKE_SOURCE_DIR}/3rdparty/imgui
- ${CMAKE_SOURCE_DIR}/3rdparty/qtimgui
+ ${IMGUI_INCLUDE_DIR}
+ ${QTIMGUI_INCLUDE_DIR}
)
target_link_libraries(nextpnr-${target}-gui PUBLIC
@@ -77,14 +107,17 @@ if (BUILD_PYTHON)
../3rdparty/python-console/ParseMessage.cpp
../3rdparty/python-console/modified/pyredirector.cc
../3rdparty/python-console/modified/pyinterpreter.cc
- ../3rdparty/imgui/imgui_widgets.cpp
- ../3rdparty/imgui/imgui_draw.cpp
- ../3rdparty/imgui/imgui.cpp
- ../3rdparty/imgui/imgui_demo.cpp
- ../3rdparty/qtimgui/ImGuiRenderer.cpp
- ../3rdparty/qtimgui/QtImGui.cpp
+ ${IMGUI_SOURCES}
+ ${QTIMGUI_SOURCES}
)
+ if (IMGUI_LIB)
+ target_link_libraries(nextpnr-${target}-gui PRIVATE ${IMGUI_LIB})
+ endif()
+ if (QTIMGUI_LIB)
+ target_link_libraries(nextpnr-${target}-gui PRIVATE ${QTIMGUI_LIB})
+ endif()
+
target_include_directories(nextpnr-${target}-gui PRIVATE
../3rdparty/python-console
../3rdparty/python-console/modified
@@ -1,56 +0,0 @@
Author: Danny Milosavljevic <dannym@friendly-machines.com>
Date: 2026-02-27
License: ASL2.0
Subject: Use @SHELL@ placeholder for shebangs in embedded test scripts.
Tests that create and execute temporary shell scripts at runtime use
a hardcoded "#!/bin/sh" shebang. Replace with @SHELL@ so the build
phase can substitute the actual store path.
Also change assertions to print the actual error on failure.
diff -ruN a/codex-rs/rmcp-client/src/program_resolver.rs b/codex-rs/rmcp-client/src/program_resolver.rs
--- a/codex-rs/rmcp-client/src/program_resolver.rs
+++ b/codex-rs/rmcp-client/src/program_resolver.rs
@@ -82,7 +82,7 @@
cmd.envs(&env.mcp_env);
let output = cmd.output().await;
- assert!(output.is_ok(), "Unix should execute scripts directly");
+ output.expect("Unix should execute scripts directly");
Ok(())
}
@@ -134,10 +134,7 @@
cmd.envs(&env.mcp_env);
let output = cmd.output().await;
- assert!(
- output.is_ok(),
- "Resolved program should execute successfully"
- );
+ output.expect("Resolved program should execute successfully");
Ok(())
}
@@ -185,7 +182,7 @@
#[cfg(unix)]
{
let file = dir.join(Self::TEST_PROGRAM);
- fs::write(&file, "#!/bin/sh\nexit 0")?;
+ fs::write(&file, "#!@SHELL@\nexit 0")?;
Self::set_executable(&file)?;
}
diff -ruN a/codex-rs/tui/src/external_editor.rs b/codex-rs/tui/src/external_editor.rs
--- a/codex-rs/tui/src/external_editor.rs
+++ b/codex-rs/tui/src/external_editor.rs
@@ -159,7 +159,7 @@
let dir = tempdir().unwrap();
let script_path = dir.path().join("edit.sh");
- fs::write(&script_path, "#!/bin/sh\nprintf \"edited\" > \"$1\"\n").unwrap();
+ fs::write(&script_path, "#!@SHELL@\nprintf \"edited\" > \"$1\"\n").unwrap();
let mut perms = fs::metadata(&script_path).unwrap().permissions();
perms.set_mode(0o755);
fs::set_permissions(&script_path, perms).unwrap();
@@ -1,20 +0,0 @@
Author: Danny Milosavljevic <dannym@friendly-machines.com>
Date: 2026-03-05
License: ASL2.0
Subject: Increase per-event test timeout from 10 to 30 seconds.
In resource-constrained build environments, image processing (resize,
base64-encode, JSON serialization) can exceed 10 seconds under CPU
contention, causing intermittent test failures.
diff -ruN a/codex-rs/core/tests/common/lib.rs b/codex-rs/core/tests/common/lib.rs
--- a/codex-rs/core/tests/common/lib.rs
+++ b/codex-rs/core/tests/common/lib.rs
@@ -174,7 +174,7 @@
loop {
// Allow a bit more time to accommodate async startup work (e.g. config IO, tool discovery)
- let ev = timeout(wait_time.max(Duration::from_secs(10)), codex.next_event())
+ let ev = timeout(wait_time.max(Duration::from_secs(30)), codex.next_event())
.await
.expect("timeout waiting for event")
.expect("stream ended unexpectedly");
@@ -1,23 +0,0 @@
Author: Danny Milosavljevic <dannym@friendly-machines.com>
Date: 2026-02-25
License: ASL2.0
Subject: Add version to codex-protocol dependency in windows-sandbox-rs.
The codex-protocol dependency in windows-sandbox-rs uses the TOML table
format with an explicit path, rather than workspace inheritance
(workspace = true). Because it is not an intra-workspace dependency,
cargo cannot resolve its version from the workspace root Cargo.toml
and cargo package fails with "dependency `codex-protocol` does not
specify a version".
diff -u a/codex-rs/windows-sandbox-rs/Cargo.toml b/codex-rs/windows-sandbox-rs/Cargo.toml
--- a/codex-rs/windows-sandbox-rs/Cargo.toml
+++ b/codex-rs/windows-sandbox-rs/Cargo.toml
@@ -38,6 +38,7 @@
[dependencies.codex-protocol]
package = "codex-protocol"
path = "../protocol"
+version = "0.0.0"
[dependencies.rand]
default-features = false
+2 -2
View File
@@ -236,7 +236,7 @@ it.")
(define-public trealla
(package
(name "trealla")
(version "2.91.5")
(version "2.91.3")
(source
(origin
(method git-fetch)
@@ -245,7 +245,7 @@ it.")
(url "https://github.com/trealla-prolog/trealla")
(commit (string-append "v" version))))
(sha256
(base32 "1ih4jx652nnw1cyvsjmz8dmmcylrwl6lmczav9r8m4z7n6flgkql"))
(base32 "1ypwpxgcjz4gxb77pzjj1b202yr083cwj4dwp9m0vw0ynqgsl6va"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs
-24
View File
@@ -938,30 +938,6 @@ files (.Z), such as the ones created by Unix's shell tool compress.")
Python.")
(license license:bsd-3)))
(define-public python-zipfile2
(package
(name "python-zipfile2")
(version "0.0.12")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/itziakos/zipfile2/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1hmq33r3ffrrvm5nggsp69cjdbgjbwn6zbcrs2rhmb8pds0h81q7"))))
(build-system pyproject-build-system)
(native-inputs
(list python-pytest
python-setuptools))
(home-page "https://github.com/itziakos/zipfile2/")
(synopsis "Improved @code{ZipFile} Python class")
(description
"Zipfile2 is a backward compatible replacement to @code{ZipFile}. It
provides handling of symlinks, and exception management.")
(license license:psfl)))
(define-public python-zipp
(package
(name "python-zipp")
+84 -60
View File
@@ -4014,16 +4014,14 @@ commits.")
(define-public python-mkdocs-material
(package
(name "python-mkdocs-material")
(version "7.3.6")
(version "7.1.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/squidfunk/mkdocs-material")
(commit version)))
(file-name (git-file-name name version))
(method url-fetch)
(uri
(pypi-uri "mkdocs-material" version))
(sha256
(base32 "06ghwidcdqimx6jc6yz1zdbyc8rqklkwj5h5cxsihazh0f52fivk"))
(base32 "0ci9xiasq9nfn09v11m7p49vzazdbgslw7rpzjd6y3hsmn9vljz3"))
(modules '((guix build utils)))
(snippet
;; TODO There are still bundled assets and minified JS.
@@ -4054,8 +4052,8 @@ commits.")
""))))
(add-after 'ensure-no-mtimes-pre-1980 'inject-javascript-assets
(lambda* (#:key inputs #:allow-other-keys)
(mkdir-p "material/assets/javascripts/lunr/min")
(with-directory-excursion "material/assets/javascripts/lunr/min"
(mkdir-p "material/assets/javascripts/min/")
(with-directory-excursion "material/assets/javascripts/min/"
(symlink-js inputs))))
(add-after 'wrap 'replace-javascript-assets
(lambda* (#:key inputs outputs #:allow-other-keys)
@@ -4063,9 +4061,9 @@ commits.")
(js-assets (string-append site "/material/"
"assets/javascripts")))
(with-directory-excursion js-assets
(delete-file-recursively "lunr/min")
(mkdir-p "lunr/min")
(with-directory-excursion "lunr/min"
(delete-file-recursively "min")
(mkdir-p "min")
(with-directory-excursion "min"
(symlink-js inputs))))))))))
(native-inputs (list python-setuptools))
(inputs (list js-lunr-ar
@@ -17921,49 +17919,24 @@ JSON Reference and JSON Pointer.")
(define-public python-fastbencode
(package
(name "python-fastbencode")
(version "0.3.9")
(version "0.3.2") ;the last non Rust version
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/breezy-team/fastbencode")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(method url-fetch)
(uri (pypi-uri "fastbencode" version))
(modules '((guix build utils)))
;; Delete pre-generated Cython C files.
(snippet '(for-each delete-file (find-files "." "\\.c$")))
(sha256
(base32 "0d4sd1c2yv85spxx2gvi2fm0avlgpnb7nfkvw7hpxlx6qlaqi4ad"))))
(base32 "1daal7xgsl2sjxq8pcilcas9wd9j9796wd4rlkhrvv5h0k2k4k53"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-backend #~'unittest
#:test-flags #~(list "tests.test_suite")
#:imported-modules (append %cargo-build-system-modules
%pyproject-build-system-modules)
#:modules '(((guix build cargo-build-system) #:prefix cargo:)
(guix build pyproject-build-system)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'prepare-cargo-build-system
(lambda args
(for-each
(lambda (phase)
(format #t "Running cargo phase: ~a~%" phase)
(apply (assoc-ref cargo:%standard-phases phase)
#:cargo-target #$(cargo-triplet)
args))
'(unpack-rust-crates
configure
check-for-pregenerated-files
patch-cargo-checksums)))))))
(inputs (cargo-inputs 'fastbencode))
#:test-flags #~(list "fastbencode.tests.test_suite")))
(native-inputs
(append
(list python-setuptools-rust
rust
`(,rust "cargo"))
(or (and=> (%current-target-system)
(compose list make-rust-sysroot))
'())))
(list python-cython
python-setuptools))
(home-page "https://github.com/breezy-team/fastbencode")
(synopsis "Python Bencode (de)serializer with optional fast C extensions")
(description
@@ -18219,6 +18192,40 @@ how many previous alarms had gone off, and if there is music playing at the
time.")
(license license:expat)))
(define-public python-simplesat
(package
(name "python-simplesat")
(version "0.9.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/enthought/sat-solver")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0z44pi8yb6pvc9bisl3qnn3glj7ir0ad2j4gd4jfg2kxvwvi0w0b"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags #~(list "--ignore=old")))
(propagated-inputs
(list python-attrs
python-okonomiyaki
python-six))
(native-inputs
(list python-mock
python-pytest
python-pyyaml
python-setuptools))
(home-page "https://github.com/enthought/sat-solver")
(synopsis
"@acronym{SAT, Boolean Satisfiability Problem} dependency handling")
(description
"This package provides a prototype Python implementation for SAT-based
problems.")
(license license:bsd-3)))
(define-public python-haas
;; A recent revision is required to avoid obsoleted dependencies.
(let ((commit "e9c45e88b682c9129ea0971ba31671429495de2c")
@@ -18250,6 +18257,27 @@ with Python's built-in unittest test-cases, but supports more advanced
features, such as project-specific plugins.")
(license license:bsd-3))))
(define-public python-zipfile2
(package
(name "python-zipfile2")
(version "0.0.12")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/itziakos/zipfile2/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1hmq33r3ffrrvm5nggsp69cjdbgjbwn6zbcrs2rhmb8pds0h81q7"))))
(build-system pyproject-build-system)
(native-inputs (list python-setuptools python-pytest))
(home-page "https://github.com/itziakos/zipfile2/")
(synopsis "Improved @code{ZipFile} Python class")
(description "Zipfile2 is a backward compatible replacement to
@code{ZipFile}. It provides handling of symlinks, and exception management.")
(license license:psfl)))
(define-public python-okonomiyaki
(package
(name "python-okonomiyaki")
@@ -41235,19 +41263,17 @@ you do not want to store entirely on disk or on memory.")
(arguments
`(#:configure-flags '("PYTHON_VERSION=2")))))
(define-public python-yamlcore
(define-public python-yamlcore-0.0.2
;; This is a pinned version dependency for librelane
(package
(name "python-yamlcore")
(version "0.0.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/perlpunk/pyyaml-core")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "03y7fabyky67cw4g71xcbwfdal79wxcnmr303qyllz21x2d4s5ac"))))
(version "0.0.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "yamlcore" version))
(sha256
(base32
"0vwjiryrx58ycmlbv668izswda4jmdpw7g9cn6bsy5my3iabjblb"))))
(build-system pyproject-build-system)
(native-inputs (list python-setuptools))
(inputs (list python-pyyaml))
@@ -41257,8 +41283,6 @@ you do not want to store entirely on disk or on memory.")
files.")
(license license:expat)))
(define-deprecated-package python-yamlcore-0.0.2 python-yamlcore)
(define-public shrinkwrap
(package
(name "shrinkwrap")
-53
View File
@@ -20,7 +20,6 @@
;;; Copyright © 2025 Jordan Moore <lockbox@struct.foo>
;;; Copyright © 2025 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2025 Laura Kirsch <laurakirsch240406@gmail.com>
;;; Copyright © 2026 bdunahu <bdunahu@operationnull.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -832,58 +831,6 @@ library.")
devices that are supported by the SoapySDR library.")
(license license:expat)))
(define-public python-meshtastic
(package
(name "python-meshtastic")
(version "2.7.8")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/meshtastic/python")
(commit version)
(recursive? #t))) ;TODO: package meshtastic/protobufs subproject
(file-name (git-file-name name version))
(sha256
(base32 "0fdxlwdf1ga00wa7vbfvhhd0dpwcxakdlmrjs24zhd6pq5k7jicf"))))
(build-system pyproject-build-system)
(arguments
(list
;; tests: 220 passed, 3 skipped, 77 deselected
#:test-flags
;; requires pytap2 input, which is not in Guix
#~(list "-k not test_tunnel_tunnel_arg")))
(native-inputs
(list python-poetry-core
python-pytest))
;; unpackaged (optional) inputs: python-print-color, python-dash
;; python-pytap2, python-dash-bootstrap-components
(propagated-inputs
(list python-argcomplete
python-bleak
python-dotmap
python-packaging
python-pandas
python-pandas-stubs
python-protobuf
python-pypubsub
python-pyqrcode
python-pyserial
python-pyyaml
python-requests
python-tabulate
python-wcwidth))
(home-page "https://github.com/meshtastic/python")
(synopsis "Python library and CLI for talking to Meshtastic devices")
(description
"@url{https://meshtastic.org/,Meshtastic} Python is a small library which
provides an easy API for sending and receiving messages over mesh radios. It
provides access to any of the operations/data available in the device user
interface or the Android applications. Events are delivered using a
publish-subscribe model, and you can subscribe to only the message types you
are interested in.")
(license license:gpl3))) ;XXX: both python API and protobufs
(define-public qspectrumanalyzer
(package
(name "qspectrumanalyzer")
+2 -414
View File
@@ -97,7 +97,6 @@
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gtk)
#:use-module (gnu packages ibus)
#:use-module (gnu packages icu4c)
@@ -125,7 +124,6 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages ruby-xyz)
#:use-module (gnu packages rust)
#:use-module (gnu packages rust-sources)
#:use-module (gnu packages security-token)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages terminals)
@@ -699,90 +697,6 @@ Rust source code.")
through tools like `gdb`.")
(license license:gpl3)))
(define-public cocogitto
(package
(name "cocogitto")
(version "6.5.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "cocogitto" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0wpsvrws2lwy1kix0xfs5dqs8b7j5ixnaz2x25apfbnh6gf99vda"))
(snippet
#~(begin (use-modules (guix build utils))
(delete-file-recursively "website")))))
(build-system cargo-build-system)
(arguments
(list
#:install-source? #f
#:cargo-test-flags
'(list "--"
;; Disable tests that depend on being run inside of the source repository
"--skip=conventional::changelog::release::test::should_get_a_release"
"--skip=git::hook::tests::add_all"
"--skip=git::hook::tests::add_pre_commit_hook"
"--skip=git::hook::tests::overwrite_pre_commit_hook"
"--skip=git::rev::cache::test::init_cache_ok"
"--skip=git::rev::revwalk::test::all_commits"
"--skip=git::rev::revwalk::test::from_previous_to_tag"
"--skip=git::rev::revwalk::test::from_tag_to_head"
"--skip=git::rev::revwalk::test::from_tag_to_tag_ok"
"--skip=git::rev::revwalk::test::get_release_range_integration_test"
"--skip=git::rev::revwalk::test::recursive_from_origin_to_head"
"--skip=cog_tests::changelog::get_changelog_range"
"--skip=cog_tests::commit::should_run_git_hooks")
#:modules '((guix build cargo-build-system)
(guix build utils)
(ice-9 match))
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'prepare-for-tests
(lambda _
;; The tests try to run git as if it were already set up.
(setenv "HOME" (getcwd))
(invoke "git" "config" "--global" "user.email" "git@example.com")
(invoke "git" "config" "--global" "user.name" "Guix")))
(add-after 'install 'install-completions
(lambda* (#:key native-inputs #:allow-other-keys)
(for-each
(match-lambda
((shell . path)
(mkdir-p (in-vicinity #$output (dirname path)))
(let ((binary
(if #$(%current-target-system)
(search-input-file native-inputs "bin/cog")
(in-vicinity #$output "bin/cog"))))
(with-output-to-file (in-vicinity #$output path)
(lambda _
(invoke binary "generate-completions" shell))))))
'(("bash" . "share/bash-completion/completions/cog")
("elvish" . "share/elvish/lib/cog")
("fish" . "share/fish/vendor_completions.d/cog.fish")
("nu" . "share/nushell/vendor/autoload/cog")
("zsh" . "share/zsh/site-functions/_cog"))))))))
(native-inputs
(append (if (%current-target-system)
(list this-package)
'())
(list git-minimal
gnupg
openssh
pkg-config)))
(inputs (cons* libgit2-1.9
libssh2
openssl
zlib
(cargo-inputs 'cocogitto)))
(home-page "https://github.com/cocogitto/cocogitto")
(synopsis
"Set of CLI tools for the Conventional Commit and SemVer specifications")
(description
"This package provides Cocogitto, a set of CLI tools for the Conventional
Commit and SemVer specifications.")
(license license:expat)))
(define-public codeberg-cli
(package
(name "codeberg-cli")
@@ -837,331 +751,6 @@ Commit and SemVer specifications.")
"This package provides CLI Tool for codeberg similar to gh and glab.")
(license license:agpl3+)))
(define-public codex
(package
(name "codex")
(version (package-version rust-codex-0.98.0))
(source
(origin
(inherit (package-source rust-codex-0.98.0))
(patches (search-patches
"rust-codex-0.98.0-execpolicy-file-lock.patch"
"rust-codex-0.98.0-core-file-lock.patch"
"rust-codex-0.98.0-arg0-file-lock.patch"
"codex-0.98.0-remove-patch-sections.patch"
"rust-codex-0.98.0-test-shebangs.patch"
"rust-codex-0.98.0-test-timeout.patch"))))
(build-system cargo-build-system)
(arguments
(list
#:install-source? #f
#:cargo-install-paths '(list "cli" "exec" "exec-server"
"linux-sandbox" "mcp-server"
"app-server" "tui")
;; schema_fixtures_match_generated (upstream fixture is stale:
;; FileChange::Update in codex-protocol gained old_content,
;; new_content, move_path fields but the committed JSON schema
;; fixture was not regenerated).
#:cargo-test-flags '(list "--workspace"
"--exclude" "codex-app-server-protocol"
"--"
;; These tests exercise sandbox denial and
;; escalation, which requires Landlock to
;; cleanly deny filesystem access. Inside the
;; build container Landlock returns NotEnforced
;; and the sandbox binary panics instead.
;; Disabling Landlock would not help either,
;; since these tests need a working sandbox to
;; have anything to deny and escalate.
"--skip" "sandbox_denied_shell_returns_original_output"
"--skip" "shell_escalated_permissions_rejected_then_ok"
"--skip" "unified_exec_runs_under_sandbox"
;; These tests (in codex-exec) directly call
;; spawn_command_under_linux_sandbox to verify
;; that python and bash work correctly inside
;; the Landlock sandbox. The sandbox binary
;; (codex-exec) panics with LandlockRestrict
;; (exit code 101) before the inner command
;; even starts.
"--skip" "python_getpwuid_works_under_sandbox"
"--skip" "python_multiprocessing_lock_works_under_sandbox"
"--skip" "sandbox_distinguishes_command_and_policy_cwds"
;; These linux-sandbox tests directly invoke
;; the Landlock sandbox via
;; process_exec_tool_call; same root cause.
"--skip" "test_writable_root"
"--skip" "test_timeout"
"--skip" "test_root_read"
"--skip" "test_dev_null_write"
"--skip" "test_no_new_privs_is_enabled"
;; This test iterates many approval scenarios;
;; one of them
;; (danger_full_access_on_request_allows_network)
;; runs a command through the Landlock sandbox
;; binary, which panics with LandlockRestrict
;; inside the build container. Cargo --skip
;; cannot target individual scenarios, so we
;; skip the entire matrix.
"--skip" "approval_matrix_covers_all_modes"
;; This test verifies session-level patch
;; approval caching: approve once, skip
;; future prompts for the same file. When
;; Landlock is unavailable (as in the Guix
;; build container) the sandbox binary panics,
;; triggering the escalation-retry path, which
;; interferes with the approval cache and
;; causes a spurious re-prompt on the second
;; patch.
"--skip" "approving_apply_patch_for_session_skips_future_prompts_for_same_file"
;; These tests expect to interrupt a
;; long-running 'sleep 60' and receive
;; TurnAborted. Default test config is
;; OnRequest + ReadOnly. What happens:
;;
;; 1. ReadOnly wraps the command with
;; codex-linux-sandbox (Landlock-based).
;; 2. Landlock is unavailable in the Guix
;; build container, so the sandbox
;; binary exits instantly (~1 ms).
;; 3. Orchestrator gets SandboxErr::Denied.
;; wants_no_sandbox_approval(OnRequest)
;; returns false (sandboxing.rs:222),
;; so no escalation -- denial returned
;; directly.
;; 4. ToolEmitter::finish sends the error
;; to the mock model as
;; function_call_output.
;; 5. Second mock SSE response fires,
;; turn finishes with TurnComplete.
;; 6. Op::Interrupt arrives 100 ms later,
;; but the turn is already done --
;; TurnAborted is never emitted,
;; test times out.
;;
;; The similar interrupt_long_running_tool_
;; emits_turn_aborted passes because it
;; sends the interrupt with no delay and
;; has only one mock response (so the turn
;; cannot complete first).
"--skip" "interrupt_persists_turn_aborted_marker_in_next_request"
"--skip" "interrupt_tool_records_history_entries"
;; Upstream bug: test hardcodes "0.0.0" in the
;; expected user-agent string but the workspace
;; version is "0.98.0".
"--skip" "get_user_agent_returns_current_codex_user_agent"
;; Same upstream bug: mcp-server tests
;; check the initialize response which
;; includes "version": "0.0.0" but the
;; server returns "0.98.0".
"--skip" "test_codex_tool_passes_base_instructions"
"--skip" "test_shell_command_approval_triggers_elicitation"
"--skip" "test_patch_approval_triggers_elicitation"
;; These codex-exec-server tests need
;; "dotslash", a Meta tool that lazily
;; downloads pre-built binaries from a
;; JSON manifest. The test helper
;; create_transport runs
;; `dotslash -- fetch <path>` to obtain a
;; custom bash binary described in
;; exec-server/tests/suite/bash.
;; dotslash is not available in the build
;; container.
"--skip" "list_tools"
"--skip" "accept_elicitation_for_prompt_rule"
;;; Test isolation bug: each test in
;;; state/src/runtime.rs calls
;;; unique_temp_dir() to get its own
;;; temporary directory (and thus its
;;; own SQLite database). That function
;;; names directories using the current
;;; nanosecond timestamp, so when tests
;;; run in parallel several can receive
;;; the same name and open the same
;;; database. The initial SQLite
;;; migration runs CREATE TABLE threads
;;; (without IF NOT EXISTS), so any init
;;; after the first panics with "table
;;; threads already exists". Any of
;;; these tests
;;; can be the victim.
"--skip" "init_removes_legacy_state_db_files"
"--skip" "upsert_and_get_thread_memory"
"--skip" "get_last_n_thread_memories_for_cwd_matches_exactly"
"--skip" "upsert_thread_memory_errors_for_unknown_thread"
"--skip" "get_last_n_thread_memories_for_cwd_zero_returns_empty"
"--skip" "get_last_n_thread_memories_for_cwd_does_not_prefix_match"
"--skip" "deleting_thread_cascades_thread_memory")
#:cargo-package-crates
''(;;; Tier 0: No internal deps.
"codex-async-utils"
"codex-client"
"codex-execpolicy"
"codex-file-search"
"codex-git"
"codex-keyring-store"
"codex-utils-absolute-path"
"codex-utils-cache"
"codex-utils-cargo-bin"
"codex-utils-home-dir"
"codex-utils-json-to-toml"
"codex-utils-pty"
"codex-utils-readiness"
"codex-utils-string"
"codex-backend-openapi-models"
"codex-process-hardening"
"codex-ansi-escape"
;;; Tier 1: Depends on tier 0.
"codex-utils-image"
"codex-apply-patch"
"codex-protocol"
"codex-windows-sandbox"
"codex-api"
"codex-experimental-api-macros"
"codex-secrets"
"codex-execpolicy-legacy"
"codex-debug-client"
;;; Tier 2.
"codex-app-server-protocol"
"codex-rmcp-client"
"codex-otel"
"codex-state"
"codex-core"
"codex-linux-sandbox"
"codex-feedback"
;;; Tier 3.
"codex-arg0"
"codex-lmstudio"
"codex-login"
"codex-ollama"
"codex-common"
"codex-mcp-server"
"codex-backend-client"
"codex-responses-api-proxy"
;;; Tier 4.
"codex-cloud-requirements"
"codex-exec"
"codex-exec-server"
"codex-stdio-to-uds"
;; codex-network-proxy requires rama which needs Rust 1.91+.
"codex-chatgpt"
"codex-cloud-tasks-client"
;;; Tier 5.
"codex-app-server"
"codex-app-server-test-client"
"codex-tui"
;;; Tier 6.
"codex-cloud-tasks"
;; The main executable.
"codex-cli")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir-to-workspace
(lambda _
(chdir "codex-rs")))
(add-after 'chdir-to-workspace 'update-version-in-snapshots
(lambda _
;; Snapshot test files contain hardcoded v0.0.0 version strings.
;; Update them to match the actual package version.
(let ((snap-files (find-files "." "\\.snap$")))
(substitute* snap-files
(("\\(v0\\.0\\.0\\) ") "(v0.98.0)")))))
(add-after 'chdir-to-workspace 'patch-git-deps-to-vendor
(lambda _
;; Replace git dependencies with version references so cargo
;; resolves them from the vendored sources.
(substitute* "Cargo.toml"
(("nucleo = \\{ git = [^}]+\\}")
"nucleo = \"0.5.0\"")
(("runfiles = \\{ git = [^}]+\\}")
"runfiles = \"0.1.0\""))))
(add-after 'chdir-to-workspace 'add-version-to-workspace-deps
(lambda _
;; cargo package requires all dependencies to have versions.
;; cargo package requires all dependencies to have versions.
;; Add version = "0.98.0" to internal path dependencies.
(let ((cargo-files (find-files "." "^Cargo\\.toml$")))
(substitute* cargo-files
;; Handle inline deps: name = { path = "..." }
(("(codex-[a-z0-9-]+) = \\{ path = " all name)
(string-append name " = { version = \"0.98.0\", path = "))
;; Handle inline deps with package: name = { package = "...", path = "..." }
(("(codex-[a-z0-9-]+) = \\{ package = " all name)
(string-append name " = { version = \"0.98.0\", package = "))
;; Handle section deps: [dependencies.X] with path = "..."
(("^(path = \"\\.\\./[^\"]*\")" all path-line)
(string-append path-line "\nversion = \"0.98.0\""))))))
(add-after 'chdir-to-workspace 'patch-hardcoded-paths
(lambda* (#:key inputs #:allow-other-keys)
(let ((bash-bin (string-append
(assoc-ref inputs "bash-minimal") "/bin"))
(coreutils-bin (string-append
(assoc-ref inputs "coreutils") "/bin"))
(git-bin (string-append
(assoc-ref inputs "git-minimal") "/bin"))
(sed-bin (string-append
(assoc-ref inputs "sed") "/bin"))
;; Include .policy files: the execpolicy-legacy
;; crate embeds default.policy via include_str!
;; at compile time, so its paths must also be
;; patched.
(rs-files (find-files "." "\\.(rs|policy)$")))
(substitute* rs-files
(("\"/bin/bash\"")
(string-append "\"" bash-bin "/bash\""))
(("\"/bin/sh\"")
(string-append "\"" bash-bin "/sh\""))
(("\"/usr/bin/bash\"")
(string-append "\"" bash-bin "/bash\""))
(("\"/usr/bin/sh\"")
(string-append "\"" bash-bin "/sh\""))
;;; bash/sh with inline arguments, e.g. "/bin/bash -i".
(("\"/bin/bash ")
(string-append "\"" bash-bin "/bash "))
(("\"/bin/sh ")
(string-append "\"" bash-bin "/sh "))
;; coreutils.
(("\"/bin/(cat|cp|date|echo|head|ls|rm|sleep|true|touch)\"" all cmd)
(string-append "\"" coreutils-bin "/" cmd "\""))
;; coreutils.
(("\"/usr/bin/(cat|cp|head|ls|touch|true)\"" all cmd)
(string-append "\"" coreutils-bin "/" cmd "\""))
;; coreutils with inline arguments
;; like "/bin/echo END-EVENT".
(("\"/bin/(cat|cp|date|echo|head|ls|rm|sleep|true|touch) " all cmd)
(string-append "\"" coreutils-bin "/" cmd " "))
(("\"/usr/bin/git\"")
(string-append "\"" git-bin "/git\""))
(("\"/usr/bin/sed\"")
(string-append "\"" sed-bin "/sed\"")))
;; @SHELL@ placeholder from test-shebangs patch
(substitute*
(list "rmcp-client/src/program_resolver.rs"
"tui/src/external_editor.rs")
(("@SHELL@")
(string-append bash-bin "/sh")))
;; shebang in test-only file
(substitute*
"core/tests/suite/user_notification.rs"
(("#!/bin/bash")
(string-append "#!" bash-bin "/bash"))))))
(add-before 'check 'set-home
(lambda _
(setenv "HOME" "/tmp")
(setenv "USER" "nixbld"))))))
(native-inputs (list perl python-minimal ;for tests
pkg-config))
(inputs (cons* bash-minimal coreutils git-minimal sed
openssl sqlite `(,zstd "lib")
(cargo-inputs 'codex)))
(home-page "https://github.com/openai/codex")
(synopsis "AI-assisted coding CLI and TUI")
(description
"Codex is an AI-powered coding assistant that runs in the terminal.
It provides an interactive TUI for conversations with AI models, with
support for shell command execution, file editing, and code generation.
Configure providers via @file{~/.codex/config.toml}.")
(license license:asl2.0)))
(define-public codex-acp
(package
(name "codex-acp")
@@ -2194,7 +1783,7 @@ JSON viewer and jq filter editor.")
(define-public jujutsu
(package
(name "jujutsu")
(version "0.39.0")
(version "0.38.0")
(source
(origin
(method git-fetch)
@@ -2203,7 +1792,7 @@ JSON viewer and jq filter editor.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0c0n56b5y6wmyvcc18nhrfsmcavjlh2zwv9224lrcs6h602a5jdd"))))
(base32 "0c3fgxvvf7lj5p8s7fzx1mnxbiigplmgfqn49szj3z51m74d0xhm"))))
(build-system cargo-build-system)
(arguments
(list
@@ -2213,7 +1802,6 @@ JSON viewer and jq filter editor.")
''("--"
"--skip=test_gerrit_upload::test_gerrit_upload_rejected_by_remote"
"--skip=test_git_push::test_git_push_rejected_by_remote"
"--skip=test_git::test_push_updates_with_options"
"--skip=test_util_command::test_util_exec_sets_env")
#:modules
'((guix build cargo-build-system)
+250 -3470
View File
File diff suppressed because it is too large Load Diff
-109
View File
@@ -818,115 +818,6 @@ intelligence.")
and runtime for AI-assisted coding.")
(license license:asl2.0)))))
(define-public rust-codex-0.98.0
(hidden-package
(package
(name "rust-codex")
(version "0.98.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/openai/codex")
(commit "82464689ce0ba8a3b2065e73a8aa0cfdf2ad0625")))
(file-name (git-file-name name version))
(sha256
(base32 "1mn322gbir4gn4y5jihdqg0wprjlnx771chyfmmm7ri7pnim1zmc"))
;; TODO: Remove patches when Rust provides stable file locking API.
;; The file_lock feature is tracked at
;; <https://github.com/rust-lang/rust/issues/130994>.
(modules '((guix build utils)))
(snippet '(begin
;;; These are JSON manifests with a dotslash
;;; shebang that download and run pre-built
;;; binaries (ripgrep, bash) at runtime.
(delete-file "codex-cli/bin/rg")
(delete-file "codex-rs/exec-server/tests/suite/bash")
;; Bundled bubblewrap source tree; includes a
;; compiled BPF blob (demos/flatpak.bpf).
(delete-file-recursively "codex-rs/vendor/bubblewrap")))
(patches (search-patches "rust-codex-0.98.0-execpolicy-file-lock.patch"
"rust-codex-0.98.0-core-file-lock.patch"
"rust-codex-0.98.0-arg0-file-lock.patch"
"rust-codex-0.98.0-core-remove-self-dep.patch"
"rust-codex-0.98.0-windows-sandbox-protocol-version.patch"
"rust-codex-0.98.0-test-shebangs.patch"))))
(build-system cargo-build-system)
(arguments
(list
#:skip-build? #t
#:cargo-package-crates
;; Order matters: dependencies must come before packages that need them
''("codex-async-utils" ; No internal deps
"codex-client" ; No internal deps
"codex-execpolicy" ; No internal deps
"codex-file-search" ; No internal deps
"codex-git" ; No internal deps
"codex-keyring-store" ; No internal deps
"codex-utils-absolute-path" ; No internal deps
"codex-utils-cache" ; No internal deps
"codex-utils-cargo-bin" ; No internal deps
"codex-utils-home-dir" ; No internal deps
"codex-utils-json-to-toml" ; No internal deps
"codex-utils-pty" ; No internal deps
"codex-utils-readiness" ; No internal deps
"codex-utils-string" ; No internal deps
"codex-utils-image" ; Depends on codex-utils-cache
"codex-apply-patch" ; Depends on codex-utils-cargo-bin
"codex-protocol" ; Depends on codex-git, codex-utils-*
"codex-windows-sandbox" ; Depends on codex-utils-absolute-path, codex-protocol
"codex-api" ; Depends on codex-client, codex-protocol
"codex-experimental-api-macros" ; Macro crate (must come before app-server-protocol)
"codex-app-server-protocol" ; Depends on codex-protocol, codex-experimental-api-macros
"codex-rmcp-client" ; Depends on codex-keyring-store, codex-protocol
"codex-otel" ; Depends on codex-app-server-protocol, codex-api
"codex-state" ; Depends on codex-protocol, codex-otel
"codex-core" ; Depends on many packages above
"codex-linux-sandbox" ; Depends on codex-core, codex-utils-absolute-path
"codex-arg0" ; Depends on codex-apply-patch, codex-core, codex-linux-sandbox
"codex-lmstudio" ; Depends on codex-core
"codex-login" ; Depends on codex-core
"codex-ollama" ; Depends on codex-core
"codex-common" ; Depends on codex-core, codex-lmstudio, codex-ollama
"codex-mcp-server") ; Depends on codex-core, codex-common
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir-to-workspace
(lambda _
(chdir "codex-rs")))
(add-after 'chdir-to-workspace 'patch-git-deps-to-vendor
(lambda _
(substitute* "Cargo.toml"
(("crossterm = \\{ git = [^}]+\\}")
"crossterm = { version = \"0.28.1\" }")
(("ratatui = \\{ git = [^}]+\\}")
"ratatui = { version = \"0.29.0\" }")
(("tokio-tungstenite = \\{ git = [^}]+\\}")
"tokio-tungstenite = { version = \"0.28.0\" }")
(("nucleo = \\{ git = [^}]+\\}")
"nucleo = { version = \"0.5.0\" }")
(("runfiles = \\{ git = [^}]+\\}")
"runfiles = { version = \"0.1.0\" }"))))
(add-after 'chdir-to-workspace 'add-version-to-workspace-deps
(lambda _
;; cargo package requires all dependencies to have versions.
;; Add version = "0.98.0" to internal path dependencies.
(let ((cargo-files (find-files "." "^Cargo\\.toml$")))
(substitute* cargo-files
(("(codex-[a-z0-9-]+) = \\{ path = " all name)
(string-append name " = { version = \"0.98.0\", path = "))
(("(codex-[a-z0-9-]+) = \\{ package = " all name)
(string-append name " = { version = \"0.98.0\", package = "))
(("(mcp-types) = \\{ path = " all name)
(string-append name " = { version = \"0.98.0\", path = ")))))))))
(inputs (cargo-inputs 'rust-codex-0.0.0.785c0c43))
(home-page "https://github.com/openai/codex")
(synopsis "OpenAI Codex workspace crates")
(description
"This package provides the workspace crates for the OpenAI Codex CLI
and runtime for AI-assisted coding.")
(license license:asl2.0))))
;; Also update (@ (gnu packages gnome) glycin-loaders) when updating this.
(define-public rust-glycin-3
(package
+2 -2
View File
@@ -119,7 +119,7 @@
expat
ffmpeg
findutils
fmt
fmt-11
freetype
gdal
gl2ps
@@ -161,7 +161,7 @@
readline
trilinos-zoltan
utfcpp
vtk-9.5
vtk
xz
zlib))
(outputs '("debug" ;~60MB
-46
View File
@@ -953,49 +953,3 @@ using a Python-based domain-specific language.")
ONNX Runtime. It supports models including Whisper and NeMo Parakeet.
Includes bundled Parakeet TDT V3 model weights (int8, CC-BY-4.0, NVIDIA).")
(license license:expat)))
(define-public python-pocket-tts
(package
(name "python-pocket-tts")
(version "1.1.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/kyutai-labs/pocket-tts")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0b9xxyrwa8vsz6r6fi7p47z8rd7q2gjjnwq47br89zp2lkzym3zm"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
#~(list ;;; These tests try to download models from HuggingFace Hub.
"--ignore=tests/test_cli_generate.py"
"--ignore=tests/test_documentation_examples.py")))
(propagated-inputs
(list python-beartype
python-einops
python-fastapi
python-huggingface-hub
python-numpy
python-pydantic
python-pytorch
python-safetensors
python-scipy
python-sentencepiece
python-soundfile
python-typer
python-typing-extensions
python-uvicorn))
(native-inputs
(list nss-certs-for-test
python-hatchling
python-pytest))
(home-page "https://github.com/kyutai-labs/pocket-tts")
(synopsis "Fast neural text-to-speech")
(description
"Pocket TTS is a fast neural text-to-speech engine with ~100M parameters,
running at approximately 6x realtime on CPU. English only.")
(license license:expat)))
+2 -1
View File
@@ -381,6 +381,8 @@ Additionally, various channel-specific options can be negotiated.")
#$flags))
((#:modules mods %default-gnu-modules)
(cons '(ice-9 string-fun) mods))
((#:imported-modules mods %default-gnu-imported-modules)
(cons '(ice-9 string-fun) mods))
((#:phases phases #~(list))
#~(modify-phases #$phases
(add-after 'unpack 'patch-ssh-stuff
@@ -437,7 +439,6 @@ of the ssh protocol. It was originally developed to address performance issues
(define-public hpn-ssh-sans-x
(package
(inherit hpn-ssh)
(name "hpn-ssh-sans-x")
(inputs
(modify-inputs (package-inputs hpn-ssh)
(delete "xauth")))
-80
View File
@@ -7,7 +7,6 @@
;;; Copyright © 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2025 Zheng Junjie <z572@z572.online>
;;; Copyright © 2026 Foster Hangdaan <foster@hangdaan.email>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -65,7 +64,6 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-xyz)
@@ -78,7 +76,6 @@
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system pyproject)
@@ -532,80 +529,3 @@ applications.")
(synopsis "Dynamic swap manager for Linux")
(description "This package provides a dynamic swap manager for Linux.")
(license license:gpl2+)))
(define-public garage
(package
(name "garage")
(version "2.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.deuxfleurs.fr/Deuxfleurs/garage.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0nqda782by02ybqv44lpjagn3aqsgpaszvqbicg9iz3lymj8g9ai"))
(snippet
#~(begin (use-modules (guix build utils))
(delete-file-recursively "doc")))))
(build-system cargo-build-system)
(arguments
(list
;; Disable default features and explicitly set them instead.
#:cargo-build-flags `(list "--no-default-features")
;; The tests fail to compile without the '--release' flag.
#:cargo-test-flags `(list "--release" "--no-default-features")
#:cargo-install-paths ''("src/garage")
#:features '(list "system-libs"
"k2v"
"kubernetes-discovery"
"lmdb"
"metrics"
"sqlite"
"syslog"
"telemetry-otlp")
#:install-source? #f
#:phases
#~(modify-phases %standard-phases
;; The 'check phase doesn't honor #:features
(replace 'check
(lambda* (#:key features cargo-test-flags #:allow-other-keys
#:rest args)
(apply (assoc-ref %standard-phases 'check)
(append
args
(list #:cargo-test-flags
(append cargo-test-flags
(list "--features"
(string-join features))))))))
;; The 'install phase can't pass '--no-default-features'
(replace 'install
(lambda* (#:key cargo-install-paths features #:allow-other-keys)
(mkdir-p #$output)
(setenv "CARGO_TARGET_DIR" "./target")
(for-each
(lambda (path)
(invoke "cargo" "install" "--offline" "--no-track"
"--path" path "--root" #$output
"--no-default-features"
"--features" (string-join features)))
(if (null? cargo-install-paths)
'(".")
cargo-install-paths)))))))
(native-inputs (list nss-certs-for-test
pkg-config
protobuf))
(inputs
(cons* libsodium
lmdb
openssl
sqlite
`(,zstd "lib")
(cargo-inputs 'garage)))
(home-page "https://garagehq.deuxfleurs.fr/")
(synopsis "S3-compatible, distributed object storage designed for self-hosting")
(description "Garage is a lightweight, geo-distributed data store that
implements the @url{https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html,
Amazon S3} object storage protocol, with a focus on simplicity and resiliency.")
(license license:agpl3)))
+1 -1
View File
@@ -205,7 +205,7 @@ Protocol.")
python-bcrypt
python-dateutil
python-pycairo
python-pygobject-3.50
python-pygobject
psmisc
syncthing))
(home-page "https://github.com/kozec/syncthing-gtk")
+42 -103
View File
@@ -7,7 +7,7 @@
;;; Copyright © 2019 Pierre-Moana Levesque <pierre.moana.levesque@gmail.com>
;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020, 2023, 2024, 2026 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020, 2023, 2024 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2022 ( <paren@disroot.org>
;;;
@@ -38,13 +38,9 @@
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gperf)
#:use-module (gnu packages man)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-compression)
@@ -117,38 +113,18 @@ is on expressing the content semantically, avoiding physical markup commands.")
(inherit texinfo)
(version "7.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.savannah.gnu.org/git/texinfo.git")
(commit (string-append "texinfo-" version))))
(file-name (git-file-name "texinfo" version))
(method url-fetch)
(uri (string-append "mirror://gnu/texinfo/texinfo-"
version ".tar.xz"))
(sha256
(base32
"1ln3rr34b9k9m8mhg01ygifj945610cn5qk11mfvgzpavyy5rghg"))))
(native-inputs (list autoconf
automake
bash-minimal
coreutils-minimal
gawk
gettext-minimal
gperf
help2man
(libc-utf8-locales-for-target)
libtool
ncurses
perl
perl-text-unidecode
perl-unicode-eastasianwidth))
"0bn7ckhxjqrgfvxz122vr5z9bs26bpfxyr2jp1rriyhwynq4xxsi"))))
(inputs (modify-inputs (package-inputs texinfo)
(append perl-archive-zip ;needed for 'tex2any --epub3'
(append perl-archive-zip ;needed for 'tex2any --epub3'
perl-unicode-eastasianwidth perl-text-unidecode
perl-libintl-perl)))
(arguments
(substitute-keyword-arguments (package-arguments texinfo)
((#:modules modules `((guix build utils)
(guix build gnu-build-system)))
`((srfi srfi-26)
,@modules))
((#:configure-flags flags
''())
#~(cons* "--with-external-Unicode-EastAsianWidth"
@@ -157,38 +133,6 @@ is on expressing the content semantically, avoiding physical markup commands.")
#$flags))
((#:phases phases #~%standard-phases)
#~(modify-phases #$phases
(add-after 'unpack 'patch-bootstrap-shebangs
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(let ((sh (search-input-file (or native-inputs inputs)
"/bin/sh"))
(perl (search-input-file (or native-inputs inputs)
"/bin/perl")))
(for-each
(cute patch-shebang <> (list (dirname sh)))
(find-files "." ".*[.]sh"))
(for-each
(cute patch-shebang <> (list (dirname perl)))
(find-files "." ".*[.]pl")))))
#$@(if (%current-target-system)
;; Texinfo uses a C binary during the build process, but
;; lacks the concept of `CC_FOR_BUILD'
;; Hack around that by building it manually.
#~((add-after 'configure 'build-native-tools
(lambda _
(with-directory-excursion "info"
(lambda _
(invoke "make" "CC=gcc" "makedoc")))))
(add-after 'configure 'fixup-texindex-building-from-git
(lambda _
(symlink "../../texindex/texindex"
"tools/texindex/texindex"))))
#~())
(add-after 'configure 'patch-jrtangle
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(let ((mv (search-input-file (or native-inputs inputs)
"/bin/mv")))
(substitute* "texindex/jrtangle"
(("mv") mv)))))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@@ -277,49 +221,44 @@ is on expressing the content semantically, avoiding physical markup commands.")
(package/inherit texinfo-7
(name "info-reader")
(arguments
(append
(substitute-keyword-arguments (package-arguments texinfo-7)
((#:modules modules `((guix build utils)
(guix build gnu-build-system)))
`((srfi srfi-1)
(ice-9 ftw)
,@modules))
((#:phases phases)
#~(modify-phases #$phases
;; Make sure 'info-reader' can read compressed info files
;; in a pure environment. There are also a few other
;; uncompressors listed in this file (lzip, unxz, bunzip2, ...)
;; but let's not include them because info manuals in Guix
;; are always compressed with 'gzip'.
;; TODO(core-updates): maybe move to the 'texinfo' package.
(add-after 'unpack 'absolute-binary-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "info/filesys.c"
(("gunzip") (search-input-file inputs "/bin/gunzip"))
(("gzip") (search-input-file inputs "/bin/gzip")))))
(add-after 'install 'keep-only-info-reader
(lambda* (#:key outputs #:allow-other-keys)
;; Remove everything but 'bin/info' and associated
;; files.
(define (files)
(scandir "." (lambda (file)
(not (member file '("." ".."))))))
`(,@(substitute-keyword-arguments (package-arguments texinfo)
((#:phases phases)
`(modify-phases ,phases
;; Make sure 'info-reader' can read compressed info files
;; in a pure environment. There are also a few other
;; uncompressors listed in this file (lzip, unxz, bunzip2, ...)
;; but let's not include them because info manuals in Guix
;; are always compressed with 'gzip'.
;; TODO(core-updates): maybe move to the 'texinfo' package.
(add-after 'unpack 'absolute-binary-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "info/filesys.c"
(("gunzip") (search-input-file inputs "/bin/gunzip"))
(("gzip") (search-input-file inputs "/bin/gzip")))))
(add-after 'install 'keep-only-info-reader
(lambda* (#:key outputs #:allow-other-keys)
;; Remove everything but 'bin/info' and associated
;; files.
(define (files)
(scandir "." (lambda (file)
(not (member file '("." ".."))))))
(let ((out (assoc-ref outputs "out")))
(with-directory-excursion out
(for-each delete-file-recursively
(fold delete (files) '("bin" "share"))))
(with-directory-excursion (string-append out "/bin")
(for-each delete-file (delete "info" (files))))
(with-directory-excursion (string-append out "/share")
(for-each delete-file-recursively
(fold delete (files)
'("info" "locale")))))))
(delete 'wrap-program))))
(list
#:disallowed-references (list (this-package-input "perl")))))
(let ((out (assoc-ref outputs "out")))
(with-directory-excursion out
(for-each delete-file-recursively
(fold delete (files) '("bin" "share"))))
(with-directory-excursion (string-append out "/bin")
(for-each delete-file (delete "info" (files))))
(with-directory-excursion (string-append out "/share")
(for-each delete-file-recursively
(fold delete (files)
'("info" "locale"))))
#t))))))
#:disallowed-references ,(list (this-package-input "perl"))
#:modules ((ice-9 ftw) (srfi srfi-1)
,@%default-gnu-modules)))
(synopsis "Standalone Info documentation reader")
(inputs (modify-inputs (package-inputs texinfo-7)
(inputs (modify-inputs (package-inputs texinfo)
(prepend gzip)))))
(define-public texi2html
+2 -1
View File
@@ -1037,7 +1037,8 @@ coding footprint.")
(build-system trivial-build-system)
(arguments
(list
#:modules '((guix build utils))
#:modules '((guix build utils)
(srfi srfi-26))
#:builder
#~(begin
(use-modules (guix build utils)
-75
View File
@@ -909,81 +909,6 @@ logs to GNU ChangeLog format.")
to GitHub contributions calendar.")
(license license:expat)))
(define-public git-cliff
(package
(name "git-cliff")
(version "2.12.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "git-cliff" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1vz1qix1yi6j5lb95q39pdxn4b6nrq8m235kjjh605m2mf0r8wyd"))))
(build-system cargo-build-system)
(arguments
(list
#:install-source? #f
#:imported-modules (append %copy-build-system-modules
%cargo-build-system-modules)
#:modules '((guix build cargo-build-system)
((guix build copy-build-system) #:prefix copy:)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-extras
(lambda args
(mkdir "assets")
(setenv "OUT_DIR" "assets")
(let ((git-cliff-mangen
(if #$(%current-target-system)
(search-input-file native-inputs
"bin/git-cliff-mangen")
(in-vicinity #$output "bin/git-cliff-mangen")))
(git-cliff-completions
(if #$(%current-target-system)
(search-input-file native-inputs
"bin/git-cliff-completions")
(in-vicinity #$output "bin/git-cliff-completions"))))
(invoke git-cliff-mangen)
(invoke git-cliff-completions))
;; Then delete the extra binaries.
(delete-file (string-append #$output "/bin/git-cliff-mangen"))
(delete-file (string-append #$output "/bin/git-cliff-completions"))
(apply (assoc-ref copy:%standard-phases 'install)
#:install-plan
'(("assets/git-cliff.bash"
"share/bash-completion/completions/git-cliff")
("assets/git-cliff.elv"
"share//elvish/lib/git-cliff")
("assets/git-cliff.fish"
"share/fish/vendor_completions.d/")
("assets/_git-cliff" "share/zsh/site-functions/")
("assets/git-cliff.1" "share/man/man1/"))
args))))))
(native-inputs
(append (if (%current-target-system)
(list this-package)
'())
(list pkg-config)))
(inputs (cons* libgit2-1.9
zlib
`(,zstd "lib")
(cargo-inputs 'git-cliff)))
(home-page "https://github.com/orhun/git-cliff")
(synopsis "Highly customizable changelog generator")
(description "@command{git-cliff} can generate
@url{https://en.wikipedia.org/wiki/Changelog, changelog} files from the
@url{https://git-scm.com/, Git} history by utilizing
@url{https://git-cliff.org/docs/configuration/git#conventional_commits,
conventional commits} as well as regex-powered
@url{https://git-cliff.org/docs/configuration/git#commit_parsers,
custom parsers}. The @url{https://git-cliff.org/docs/category/templating,
changelog template} can be customized with a
@url{https://git-cliff.org/docs/configuration, configuration file} to match the
desired format.")
(license (list license:expat license:asl2.0))))
(define-public git-tools
(package
(name "git-tools")
+6 -7
View File
@@ -1008,8 +1008,8 @@ shared library and encoder and decoder command-line executables.")
(define-public libx264
;; There are no tags in the repository, so we take the version number from
;; the X264_BUILD variable defined in x264.h.
(let ((version "165")
(commit "0480cb05fa188d37ae87e8f4fd8f1aea3711f7ee")
(let ((version "164")
(commit "b093bbe7d9bc642c8f24067cbdcc73bb43562eab")
(revision "0"))
(package
(name "libx264")
@@ -1022,7 +1022,7 @@ shared library and encoder and decoder command-line executables.")
(file-name (git-file-name name version))
(sha256
(base32
"136vma04rfzn8kcass8psnxygmn3ykrsyrv0q2dy3iv080vywpy9"))))
"095pv8y6fqjg8mdvsfk12d0jqgyhip536a6vxhzm7qz8hfp96qhq"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config nasm))
@@ -1865,8 +1865,7 @@ operate properly.")
#$@(if (target-powerpc?)
;; These tests fail on powerpc64-le (see:
;; https://trac.ffmpeg.org/ticket/9604).
'("--ignore-tests=checkasm-sw_scale,\
filter-scale2ref_keep_aspect,sws-floatimg-cmp")
'("--ignore-tests=checkasm-sw_scale,filter-scale2ref_keep_aspect")
'())
"--enable-gpl" ;enable optional gpl licensed parts
"--enable-shared"
@@ -7268,7 +7267,7 @@ included for convenience.")
(define-public showmethekey
(package
(name "showmethekey")
(version "1.21.0")
(version "1.20.0")
(source
(origin
(method git-fetch)
@@ -7277,7 +7276,7 @@ included for convenience.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1zncwnv0w3khd3vc73r2zmhg3j96km021nlszgrmsj0xz5qnbi31"))))
(base32 "1hfr2qhlgpp4fiy8885lv2b0cqa5kpyix32d9lg5xhg1hhxnsmc4"))))
(build-system meson-build-system)
(arguments
(list
+39 -39
View File
@@ -44,7 +44,6 @@
;;; Copyright © 2025 Douglas Deslauriers <Douglas.Deslauriers@vector.com>
;;; Copyright © 2025 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2026 Nguyễn Gia Phong <cnx@loang.net>
;;; Copyright © 2026 Cayetano Santos <csantosb@inventati.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -203,14 +202,14 @@
;; Do not forget to update the various firmware used by QEMU, and sync the
;; configuration options used by the seabios-qemu package with those
;; provided by QEMU.
(version "10.2.1")
(version "10.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.qemu.org/qemu-"
version ".tar.xz"))
(sha256
(base32 "1qf9j6cnh9ycs33dmrm1bas3wafkdh7w5yzz1dilvj72v1vp8wd3"))
(base32 "0fl8hlkngmm61h65822xxb6cyfbz56mx30hm01il8ywzicdssc4y"))
(patches (search-patches "qemu-build-info-manual.patch"
"qemu-fix-agent-paths.patch"
"qemu-fix-test-virtio-version.patch"))
@@ -338,8 +337,8 @@
(substitute* "tests/meson.build"
(("subdir.*qtest.*") ""))
;; efi-ne2k_pci.rom is from ipxe-qemu.
(substitute* "tests/functional/ppc/meson.build"
((".*'74xx',.*") "")))))
(substitute* "tests/functional/meson.build"
((".*ppc_74xx.*") "")))))
#~())
(add-after 'unpack 'extend-test-time-outs
(lambda _
@@ -1328,41 +1327,42 @@ it emulates a variety of hardware and peripherals.")
(license (list license:gpl3+ license:mpl2.0))))
(define-public spike
(let ((commit "591cff16109ced6a21bb2a612a3853b4e9cbd86d")
(revision "0"))
(package
(name "spike")
(version (git-version "1.1.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/riscv-software-src/riscv-isa-sim")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "07lhf524y0kkrap5lvfqddrq6hhc0g2ypfcq341w2nrjw95izasc"))))
(build-system gnu-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'configure-dtc-path
(lambda* (#:key inputs #:allow-other-keys)
;; Reference dtc by its absolute store path.
(substitute* "riscv/dts.cc"
(("DTC")
(string-append "\"" (search-input-file inputs "/bin/dtc")
"\""))))))))
(inputs
(list dtc))
(native-inputs
(list python-minimal-wrapper))
(home-page "https://github.com/riscv-software-src/riscv-isa-sim")
(synopsis "RISC-V ISA Simulator")
(description "Spike, the RISC-V ISA Simulator, implements a functional model
(package
(name "spike")
(version "1.1.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/riscv-software-src/riscv-isa-sim")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0cik2m0byfp9ppq0hpg3xyrlp5ag1i4dww7a7872mlm36xxqagg0"))))
(build-system gnu-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'gcc14
(lambda _
(substitute* "fesvr/device.h"
(("#include <string>" all)
(string-append all "\n#include <cstdint>")))))
(add-before 'configure 'configure-dtc-path
(lambda* (#:key inputs #:allow-other-keys)
;; Reference dtc by its absolute store path.
(substitute* "riscv/dts.cc"
(("DTC")
(string-append "\"" (search-input-file inputs "/bin/dtc") "\""))))))))
(inputs
(list bash-minimal dtc))
(native-inputs
(list python-wrapper))
(home-page "https://github.com/riscv-software-src/riscv-isa-sim")
(synopsis "RISC-V ISA Simulator")
(description "Spike, the RISC-V ISA Simulator, implements a functional model
of one or more RISC-V harts.")
(license license:bsd-3))))
(license license:bsd-3)))
(define-public incus
(package
+2 -3
View File
@@ -1191,14 +1191,13 @@ to events.")
(define-public qtile
(package
(name "qtile")
;; TODO: Update when Python is upgraded to >=3.12.
(version "0.33.0")
(version "0.34.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "qtile" version))
(sha256
(base32 "1kqpf6kc98c7ck5w8xvzlzawnmsckpnwdd3xkv08k81zmai71d44"))))
(base32 "061bghddw47k86qf7xp7c3rmwp7f71grk1q969nwq22rsafs4040"))))
(build-system pyproject-build-system)
(arguments
(list
+2 -3
View File
@@ -73,8 +73,7 @@
(define-public wxwidgets
(package
(name "wxwidgets")
;; There is a newer versions 3.3, but this is tagged "development".
(version "3.2.9")
(version "3.2.8.1")
(source
(origin
(method url-fetch)
@@ -82,7 +81,7 @@
"releases/download/v" version
"/wxWidgets-" version ".tar.bz2"))
(sha256
(base32 "0aqi3wrf99djdbvwislza2gsyascq6h3f07qvcpa1mpzid9zk47v"))
(base32 "0mnpnwndkw9f6xvjyq4sv6sxfv1h3b9c7lwsm2kg3p0mi30zc35d"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
+1 -1
View File
@@ -2000,7 +2000,7 @@ to an arbitrary balanced color.")
libxxf86vm
libxcb
python
python-pygobject-3.50
python-pygobject
python-pyxdg
wayland))
(home-page "https://gitlab.com/chinstrap/gammastep")
+12 -4
View File
@@ -636,10 +636,18 @@ appended to the configuration.")
(stop #~(make-kill-destructor))
(actions
(list (shepherd-configuration-action config-file)
(shepherd-signal-action
'reopen SIGHUP
#:documentation "Re-open log files and flush caches."
#:message "Issued SIGHUP to Service MPD.")))))))
(shepherd-action
(name 'reopen)
(documentation "Re-open log files and flush caches.")
(procedure
#~(lambda (pid)
(if pid
(begin
(kill pid SIGHUP)
(format #t
"Issued SIGHUP to Service MPD (PID ~a)."
pid))
(format #t "Service MPD is not running.")))))))))))
(define (mpd-accounts config)
(match-record config <mpd-configuration> (user group)
+10 -4
View File
@@ -1708,11 +1708,17 @@ mail.* -/var/log/maillog
(requirement '(user-processes))
(actions
(list (shepherd-configuration-action syslog.conf)
(shepherd-signal-action
'reload SIGHUP
#:documentation "Reload the configuration file from disk."
#:message "Service syslog has been asked to \
(shepherd-action
(name 'reload)
(documentation "Reload the configuration file from disk.")
(procedure
#~(lambda (pid)
(if pid
(begin
(kill pid SIGHUP)
(display #$(G_ "Service syslog has been asked to \
reload its settings file.")))
(display #$(G_ "Service syslog is not running."))))))))
;; Note: a static file name is used for syslog.conf so that the reload
;; action work as intended.
(start #~(make-forkexec-constructor
+16 -8
View File
@@ -969,16 +969,24 @@ cache.size = 100 * MB
(mkdir-p "/var/lib/misc")))
(define (dnsmasq-service-reload-action config)
(shepherd-signal-action
'reload SIGHUP
#:documentation "Send a @code{SIGHUP} signal to @command{dnsmasq} to clear
cache and reload hosts files."))
(match-record config <dnsmasq-configuration> ()
(shepherd-action
(name 'reload)
(documentation "Send a @code{SIGHUP} signal to @command{dnsmasq} to clear
cache and reload hosts files.")
(procedure #~(lambda (running)
(let ((pid (process-id running)))
(kill pid SIGHUP)))))))
(define (dnsmasq-service-stats-action config)
(shepherd-signal-action
'stats SIGUSR1
#:documentation "Send a @code{SIGUSR1} to write statistics to the system
log."))
(match-record config <dnsmasq-configuration> ()
(shepherd-action
(name 'stats)
(documentation "Send a @code{SIGUSR1} to write statistics to the system
log.")
(procedure #~(lambda (running)
(let ((pid (process-id running)))
(kill pid SIGUSR1)))))))
(define dnsmasq-service-type
(service-type
+11 -5
View File
@@ -656,11 +656,17 @@ satisfy requests from peers."))
(actions
(list
(shepherd-signal-action
'reload SIGHUP
#:documentation "Reload the settings file from disk."
#:message "Service transmission-daemon has \
been asked to reload its settings file.")))))))
(shepherd-action
(name 'reload)
(documentation "Reload the settings file from disk.")
(procedure #~(lambda (pid)
(if pid
(begin
(kill pid SIGHUP)
(display #$(G_ "Service transmission-daemon has \
been asked to reload its settings file.")))
(display #$(G_ "Service transmission-daemon is not \
running."))))))))))))
(define %transmission-daemon-accounts
(list (user-group
+20 -8
View File
@@ -2483,14 +2483,26 @@ worker \"fuzzy\" {
(actions
(list
(shepherd-configuration-action config-file)
(shepherd-signal-action
'reload SIGHUP
#:documentation "Reload rspamd."
#:message "Service rspamd has been reloaded")
(shepherd-signal-action
'reopen SIGUSR1
#:documentation "Reopen log files."
#:message "Reopening the logs for rspamd.")))))))
(shepherd-action
(name 'reload)
(documentation "Reload rspamd.")
(procedure
#~(lambda (pid)
(if pid
(begin
(kill pid SIGHUP)
(display "Service rspamd has been reloaded"))
(format #t "Service rspamd is not running.")))))
(shepherd-action
(name 'reopen)
(documentation "Reopen log files.")
(procedure
#~(lambda (pid)
(if pid
(begin
(kill pid SIGUSR1)
(display "Reopening the logs for rspamd"))
(format #t "Service rspamd is not running.")))))))))))
(define rspamd-service-type
(service-type
+12 -4
View File
@@ -640,10 +640,18 @@ resolution.")
(stop #~(make-kill-destructor))
(actions
(list (shepherd-configuration-action config-file)
(shepherd-signal-action
'reload SIGHUP
#:documentation "Reload vnstatd."
#:message "Issued SIGHUP to vnstatd.")))))))
(shepherd-action
(name 'reload)
(documentation "Reload vnstatd.")
(procedure
#~(lambda (pid)
(if pid
(begin
(kill pid SIGHUP)
(format #t
"Issued SIGHUP to vnstatd (PID ~a)."
pid))
(format #t "vnstatd is not running.")))))))))))
(define (vnstat-account-service config)
(match-record config <vnstat-configuration> (daemon-group daemon-user)
-21
View File
@@ -71,7 +71,6 @@
shepherd-action-documentation
shepherd-action-procedure
shepherd-signal-action
shepherd-configuration-action
shepherd-timer
shepherd-trigger-action
@@ -422,26 +421,6 @@ and return the resulting '.go' file. SHEPHERD is used as shepherd package."
#:options '(#:local-build? #t
#:substitutable? #f)))))
(define* (shepherd-signal-action
name signal
#:key
(documentation (format #f "Send signal ~a to the running service."
signal))
(message (format #f "Service has been asked to perform '~a'."
name)))
"Return a shepherd action with NAME to send SIGNAL to the running process.
The documentation string of the action will be set to DOC.
The action will print MESSAGE after sending the signal."
(shepherd-action
(name name)
(documentation documentation)
(procedure #~(lambda (running . args)
(if running
(let ((pid (process-id running)))
(kill pid #$signal)
(display #$message))
(display "Service is not running."))))))
(define (shepherd-configuration-action file)
"Return a 'configuration' action to display FILE, which should be the name
of the service's configuration file."
+1 -256
View File
@@ -7,7 +7,6 @@
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2025 Tomas Volf <~@wolfsden.cz>
;;; Copyright © 2025 Evgeny Pisemsky <mail@pisemsky.site>
;;; Copyright © 2026 Nguyễn Gia Phong <cnx@loang.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -27,14 +26,12 @@
(define-module (gnu services version-control)
#:use-module (gnu services)
#:use-module (gnu services base)
#:use-module (gnu services configuration)
#:use-module (gnu services shepherd)
#:use-module (gnu services web)
#:use-module (gnu system shadow)
#:use-module (gnu packages version-control)
#:use-module (gnu packages admin)
#:use-module (guix deprecation)
#:use-module (guix packages)
#:use-module (guix records)
#:use-module (guix gexp)
#:use-module (guix store)
@@ -96,44 +93,7 @@
gitile-configuration-footer
gitile-configuration-nginx
gitile-service-type
fossil-configuration
fossil-configuration-fields
fossil-configuration?
fossil-configuration-package
fossil-configuration-user
fossil-configuration-group
fossil-configuration-log-file
fossil-configuration-repository
fossil-configuration-acme?
fossil-configuration-base-url
fossil-configuration-chroot
fossil-configuration-ckout-alias
fossil-configuration-compress?
fossil-configuration-create?
fossil-configuration-error-log-file
fossil-configuration-ext-root
fossil-configuration-files
fossil-configuration-from
fossil-configuration-jail?
fossil-configuration-js-mode
fossil-configuration-https?
fossil-configuration-ip
fossil-configuration-local-authentication?
fossil-configuration-main-menu
fossil-configuration-max-latency
fossil-configuration-port
fossil-configuration-list-repositories?
fossil-configuration-redirect-to-https?
fossil-configuration-skin
fossil-configuration-socket-file
fossil-configuration-socket-mode
fossil-configuration-th-trace?
fossil-configuration-tls-certificate
fossil-configuration-tls-private-key
fossil-service-type))
gitile-service-type))
;;; Commentary:
;;;
@@ -643,218 +603,3 @@ on the web.")
gitile-shepherd-service)
(service-extension nginx-service-type
gitile-nginx-server-block)))))
;;;
;;; Fossil HTTP server.
;;;
(define (port-number? n)
(and (integer? n)
(> n 0)
(< n (expt 2 16))))
(define (mode-number? n)
(and (integer? n)
(>= n 0)
(<= n #o777)))
(define (fossil-js-mode? x)
(and (memq x '(inline separate bundled))
#t))
(define-maybe/no-serialization number)
(define-maybe/no-serialization string)
(define-maybe/no-serialization list-of-strings)
(define-maybe/no-serialization fossil-js-mode)
(define-configuration/no-serialization fossil-configuration
(package (package fossil)
"The Fossil package to use.")
(user (string "fossil")
"The user running the Fossil server.")
(group (string "fossil")
"The user group running the Fossil server.")
(log-file (string "/var/log/fossil.log")
"The path to the server's log.")
(repository (string "/var/lib/fossil")
"The name of the Fossil repository to be served, or a directory
containing one or more repositories with names ending in @code{.fossil}.
In the latter case, a prefix of the URL pathname is used
to search the directory for an appropriate repository.
Files not matching the pattern @code{*.fossil*}
will be served as static content. Invoke @command{fossil server --help}
for more information.")
(acme? (boolean #f)
"Deliver files from the @code{.well-known} subdirectory.")
(base-url maybe-string
"The URL used as the base (useful for reverse proxies)")
(chroot maybe-string
"The directory to use for chroot instead of @code{repository}.")
(ckout-alias maybe-string
"The @var{name} for @code{/doc/@var{name}/...}
to be treated as @code{/doc/ckout/...}.")
(compress? (boolean #t) "Compress HTTP response.")
(create? (boolean #f)
"Create a new @code{repository} if it does not already exist.")
(error-log-file maybe-string "The path for HTTP error log.")
(ext-root maybe-string "The document root for the /ext extension mechanism.")
(files maybe-list-of-strings "The glob patterns for static files.")
(from maybe-string
"The path to be used as the diff baseline for the /ckout page.")
(jail? (boolean #t)
"Whether to enter the chroot jail after dropping root privileges.")
(js-mode maybe-fossil-js-mode
"How JavaScript is delivered with pages, either @code{'inline}
at the end of the HTML file, as @code{'separate} HTTP requests,
or one single HTTP request for all JavaScript @code{'bundled} together.
Depending on the needs of any given page, @code{'inline}
and @code{'bundled} modes might result in a single amalgamated script
or several, but both approaches result in fewer HTTP requests
than the @code{'separate} mode.")
(https? (boolean #f)
"Indicate that the requests are coming through a reverse proxy
that has already translated HTTPS into HTTP.")
(ip maybe-string "The IP for the server to listen on.")
(local-authentication? (boolean #f)
"Enable automatic login for requests from localhost.")
(localhost? (boolean #f) "Listen on @code{127.0.0.1} only.")
(main-menu maybe-string ;TODO: structure
"The file whose contents is to override
the repository's @code{mainmenu} setting.")
(max-latency maybe-number
"The maximum latency in seconds for a single HTTP request.")
(port (port-number 8080) "The port number for the server to listen on.")
(list-repositories? (boolean #f)
"If @code{repository} is dir, URL @code{/} lists repos.")
(redirect-to-https? (boolean #t)
"If set to @code{#f}, do not force redirects to HTTPS
regardless of the repository setting @code{redirect-to-https}.")
(scgi? (boolean #f) "Accept SCGI rather than HTTP.")
(skin maybe-string "The skin label to use, overriding repository settings.")
(socket-file maybe-string
"The unix-domain socket to use instead of TCP/IP.")
(socket-mode (mode-number #o640)
"The file permissions to set for the unix socket.")
(th-trace? (boolean #f)
"Trace TH1 execution (for debugging purposes).")
(tls-certificate maybe-string
"The certicate file (@file{fullchain.pem})
with which to enable TLS (HTTPS) encryption.")
(tls-private-key maybe-string "The file storing the TLS private key."))
(define (fossil-accounts config)
(match-record config <fossil-configuration> (user group)
(list (user-group (name group)
(system? #t))
(user-account (name user)
(group group)
(system? #t)
(comment "Fossil server user")
(home-directory "/var/empty")
(shell (file-append shadow "/sbin/nologin"))))))
(define (fossil-activation config)
(match-record config <fossil-configuration> (user create? repository)
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils))
(let* ((pw (getpwnam #$user))
(uid (passwd:uid pw))
(gid (passwd:gid pw)))
(unless #$create? (chown #$repository uid gid)))))))
(define (fossil-shepherd-service config)
(match-record config <fossil-configuration>
(package user group log-file repository acme? base-url
chroot ckout-alias compress? create? error-log-file ext-root
files from https? ip jail? js-mode list-repositories?
local-authentication? localhost? main-menu max-latency port
redirect-to-https? scgi? skin socket-file socket-mode
th-trace? tls-certificate tls-private-key)
(shepherd-service
(provision '(fossil))
(requirement '(user-processes networking))
(start #~(make-forkexec-constructor
(list #$(file-append package "/bin/fossil")
"server"
#$@(if acme? '("--acme") '())
#$@(if (maybe-value-set? base-url)
(list "--baseurl" base-url)
'())
#$@(if (maybe-value-set? chroot)
(list "--chroot" chroot)
'())
#$@(if (maybe-value-set? ckout-alias)
(list "--ckout-alias" ckout-alias)
'())
#$@(if compress? '() '("--nocompress"))
#$@(if create? '("--create") '())
#$@(if (maybe-value-set? error-log-file)
(list "--errorlog" error-log-file)
'())
#$@(if (maybe-value-set? ext-root)
(list "--extroot" ext-root)
'())
#$@(if (maybe-value-set? files)
(list "--files" (string-join files ","))
'())
#$@(if (maybe-value-set? from) (list "--from" from) '())
#$@(if https? '("--https") '())
#$@(if jail? '() '("--nojail"))
#$@(if (maybe-value-set? js-mode)
(list "--jsmode" (symbol->string js-mode))
'())
#$@(if local-authentication? '("--localauth") '())
#$@(if localhost? '("--localhost") '())
#$@(if (maybe-value-set? main-menu)
(list "--mainmenu" main-menu)
'())
#$@(if (maybe-value-set? max-latency)
(list "--max-latency"
(number->string max-latency))
'())
#$@(if redirect-to-https? '() '("--nossl"))
#$@(if scgi? '("--scgi") '())
#$@(if list-repositories? '("--repolist") '())
#$@(if (maybe-value-set? skin) (list "--skin" skin) '())
#$@(if (maybe-value-set? socket-file)
(list "--socket-name" socket-file
"--socket-mode" socket-mode
"--socket-owner"
(simple-format #f "~a:~a" user group))
(list "--port"
(if (maybe-value-set? ip)
(simple-format #f "~a:~a" ip port)
(number->string port))))
#$@(if th-trace? '("--th-trace") '())
#$@(if (maybe-value-set? tls-certificate)
(list "--cert" tls-certificate)
'())
#$@(if (maybe-value-set? tls-private-key)
(list "--pkey" tls-private-key)
'())
"--user" #$user
#$repository)
#:user #$user
#:group #$group
#:log-file #$log-file))
(stop #~(make-kill-destructor))
(documentation
"Run the HTTP server
for the Fossil software configuration management system."))))
(define fossil-service-type
(service-type
(name 'fossil)
(extensions
(list (service-extension account-service-type fossil-accounts)
(service-extension activation-service-type fossil-activation)
(service-extension shepherd-root-service-type
(compose list fossil-shepherd-service))))
(description
"Run the HTTP server for the Fossil software configuration management
system. In addition to distributed version control, Fossil also supports
bug tracking, wiki, forum, email alerts, chat, and technotes.")))
+1 -74
View File
@@ -3,7 +3,6 @@
;;; Copyright © 2017-2018, 2020-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2018 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2026 Nguyễn Gia Phong <cnx@loang.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -40,8 +39,7 @@
#:export (%test-cgit
%test-git-http
%test-gitolite
%test-gitile
%test-fossil))
%test-gitile))
(define README-contents
"Hello! This is what goes inside the 'README' file.")
@@ -521,74 +519,3 @@ HTTP-PORT."
(name "gitile")
(description "Connect to a running Gitile server.")
(value (run-gitile-test))))
;;;
;;; Fossil server.
;;;
(define %test-fossil
(system-test
(name "fossil")
(description "Connect to a running Fossil server.")
(value
(gexp->derivation
(string-append name "-test")
(let* ((port 8080)
(base-url (simple-format #f "http://localhost:~a" port))
(index-url (string-append base-url "/index"))
(os (marionette-operating-system
(simple-operating-system
(service dhcpcd-service-type)
(service fossil-service-type
(fossil-configuration
(repository "/tmp/test.fossil")
(base-url base-url)
(create? #t)
(port port))))))
(vm (virtual-machine (operating-system os)
(port-forwardings (list (cons port port))))))
(with-imported-modules '((gnu build marionette)
(guix build utils))
#~(begin
(use-modules (gnu build marionette)
(guix build utils)
(srfi srfi-64)
(srfi srfi-71)
(web client)
(web response))
(define marionette (make-marionette (list #$vm)))
(test-runner-current (system-test-runner #$output))
(test-begin #$name)
(test-assert "server running"
(wait-for-tcp-port #$port marionette))
(test-assert "server log file"
(wait-for-file "/var/log/fossil.log" marionette))
(test-assert "cloning"
(begin
(setenv "HOME" #$output) ; fossil writes to $HOME
(invoke/quiet #$(file-append fossil "/bin/fossil") "clone"
"--admin-user" "alice"
"--httptrace"
"--verbose"
#$base-url
(string-append #$output "/test.fossil"))))
(test-assert "index redirect"
(let ((response text
(http-get #$base-url #:decode-body? #t)))
(and (= 302 (response-code response))
(string-contains text #$index-url))))
(test-equal "index page"
200 (response-code (http-get #$index-url)))
(test-equal "tarball download"
200 (response-code
(http-get (string-append #$base-url
"/tarball/test.tar.gz"))))
(test-end))))))))
+50 -72
View File
@@ -3,7 +3,6 @@
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2021, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021 pukkamustard <pukkamustard@posteo.net>
;;; Copyright © 2025 Jason Conroy <jconroy@tscripta.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -32,22 +31,12 @@
#:use-module (srfi srfi-1)
#:export (%dune-build-system-modules
dune-build
dune-build-system
ocaml5-dune-build-system))
dune-build-system))
;; Commentary:
;;
;; Standard build procedures for packages using dune. These are implemented as
;; extensions of `ocaml-build-system'.
;;
;; Multiple instances of the build system exist to support different versions
;; of the OCaml compiler and its associated tools. Choose `dune-build-system`
;; for a build system that works with Guix's default version of the compiler,
;; or choose `ocamlX-dune-build-system` for some other compiler version X.
;;
;; Adaptor functions of the form `package-with-ocamlX.Y` defined in the OCaml
;; build system will also work on packages with the Dune build system, subject
;; to the same caveats.
;; Standard build procedure for packages using dune. This is implemented as an
;; extension of `ocaml-build-system'.
;;
;; Code:
@@ -56,49 +45,54 @@
`((guix build dune-build-system)
,@ocaml:%ocaml-build-system-modules))
(define (make-lower default-ocaml default-findlib default-dune)
(lambda* (name
#:key source inputs native-inputs outputs system target
(dune (default-dune))
(ocaml (default-ocaml))
(findlib (default-findlib))
#:allow-other-keys
#:rest arguments)
"Return a bag for NAME."
(define (default-dune)
"Return the default OCaml package."
;; Flags that put dune into reproducible build mode.
(define dune-release-flags
(if (version>=? (package-version dune) "2.5.0")
;; For dune >= 2.5.0 this is just --release.
''("--release")
;; --release does not exist before 2.5.0. Replace with flags compatible
;; with our old ocaml4.07-dune (1.11.3)
''("--root" "." "--ignore-promoted-rules" "--no-config"
"--profile" "release")))
;; Do not use `@' to avoid introducing circular dependencies.
(let ((module (resolve-interface '(gnu packages ocaml))))
(module-ref module 'dune)))
(define private-keywords
'(#:target #:dune #:findlib #:ocaml #:inputs #:native-inputs))
(define* (lower name
#:key source inputs native-inputs outputs system target
(dune (default-dune))
(ocaml (ocaml:default-ocaml))
(findlib (ocaml:default-findlib))
#:allow-other-keys
#:rest arguments)
"Return a bag for NAME."
(and (not target) ;XXX: no cross-compilation
(let ((base ((ocaml:make-lower default-ocaml default-findlib)
name
#:source source
#:inputs inputs
#:native-inputs native-inputs
#:outputs outputs
#:system system
#:target target
#:ocaml ocaml
#:findlib findlib
arguments)))
(bag
(inherit base)
(build-inputs `(("dune" ,dune)
,@(bag-build-inputs base)))
(build dune-build)
(arguments (append
`(#:dune-release-flags ,dune-release-flags)
(strip-keyword-arguments private-keywords arguments))))))))
;; Flags that put dune into reproducible build mode.
(define dune-release-flags
(if (version>=? (package-version dune) "2.5.0")
;; For dune >= 2.5.0 this is just --release.
''("--release")
;; --release does not exist before 2.5.0. Replace with flags compatible
;; with our old ocaml4.07-dune (1.11.3)
''("--root" "." "--ignore-promoted-rules" "--no-config"
"--profile" "release")))
(define private-keywords
'(#:target #:dune #:findlib #:ocaml #:inputs #:native-inputs))
(and (not target) ;XXX: no cross-compilation
(let ((base (ocaml:lower name
#:source source
#:inputs inputs
#:native-inputs native-inputs
#:outputs outputs
#:system system
#:target target
#:ocaml ocaml
#:findlib findlib
arguments)))
(bag
(inherit base)
(build-inputs `(("dune" ,dune)
,@(bag-build-inputs base)))
(build dune-build)
(arguments (append
`(#:dune-release-flags ,dune-release-flags)
(strip-keyword-arguments private-keywords arguments)))))))
(define* (dune-build name inputs
#:key
@@ -164,26 +158,10 @@ provides a 'setup.ml' file as its build system."
#:graft? #f
#:guile-for-build guile))
(define (make-dune-build-system default-ocaml
default-findlib
default-dune)
(define dune-build-system
(build-system
(name 'dune)
(description "The standard Dune build system")
(lower (make-lower default-ocaml
default-findlib
default-dune))))
(define dune-build-system
;; The default instance of the build system, using Guix's default OCaml
;; compiler version.
(make-dune-build-system ocaml:default-ocaml
ocaml:default-findlib
ocaml:default-dune))
(define ocaml5-dune-build-system
(make-dune-build-system ocaml:default-ocaml5
ocaml:default-ocaml5-findlib
ocaml:default-ocaml5-dune))
(lower lower)))
;;; dune.scm ends here
+52 -119
View File
@@ -2,7 +2,6 @@
;;; Copyright © 2016, 2017, 2018 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2021-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2025 Jason Conroy <jconroy@tscripta.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -34,51 +33,32 @@
strip-ocaml4.09-variant
package-with-ocaml5.0
strip-ocaml5.0-variant
package-with-ocaml5.3
strip-ocaml5.3-variant
default-findlib
default-ocaml
default-dune
default-ocaml5-findlib
default-ocaml5
default-ocaml5-dune
make-lower
lower
ocaml-build
ocaml-build-system
ocaml5-build-system))
ocaml-build-system))
;; Commentary:
;;
;; Standard build procedures for packages using ocaml. These are implemented
;; as extensions of `gnu-build-system'.
;; Standard build procedure for packages using ocaml. This is implemented as an
;; extension of `gnu-build-system'.
;;
;; OCaml packages don't use a single standard for their build
;; system. Historically, some use autotools, other use custom configure
;; scripts with Makefiles, others use oasis to generate the configure script
;; and Makefile, and some use custom ocaml scripts. The majority of new
;; packages instead use Dune, which has a separate `dune-build-system`.
;; OCaml packages don't use a single standard for their build system. Some use
;; autotools, other use custom configure scripts with Makefiles, others use
;; oasis to generate the configure script and Makefile and lastly, some use
;; custom ocaml scripts.
;;
;; Each phase in this build system will try to figure out which of the
;; approaches above is used for the package. Most packages come with a custom
;; configure script and a Makefile that in turn call custom build
;; tools. Packages built with oasis will have a `setup.ml' file in the top
;; directory, that can be used for all phases. In that case the Makefile is
;; here only to call that script. In case the setup.ml do not work as
;; expected, the @var{use-make} argument can be used to ignore the setup.ml
;; file and run make instead. Some packages use their own custom scripts
;; (e.g., `pkg/pkg.ml' or `pkg/build.ml') which can be used here too.
;; Each phase in the build system will try to figure out what the build system
;; is for that package. Most packages come with a custom configure script and
;; a Makefile that in turn call custom build tools. Packages built with oasis
;; will have a `setup.ml' file in the top directory, that can be used for all
;; phases. In that case the Makefile is here only to call that script. In case
;; the setup.ml do not work as expected, the @var{use-make} argument can be
;; used to ignore the setup.ml file and run make instead.
;;
;; Multiple instances of the build system exist to support different versions
;; of the OCaml compiler and its associated tools. Choose `ocaml-build-system`
;; for a build system that works with Guix's default version of the compiler,
;; or choose `ocamlX-build-system` for some other compiler version X.
;;
;; Adaptor functions of the form `package-with-ocamlX.Y` transform a package
;; to use a different compiler version for its own build and for those of all
;; transitive dependencies. These adaptors exist for user convenience, but a
;; package shipped with the distribution should generally use the
;; `build-system` field instead to identify the version of the OCaml stack
;; that it supports.
;; Some packages use their own custom scripts, `pkg/pkg.ml' or
;; `pkg/build.ml'. They can be used here too.
;;
;; Code:
@@ -95,10 +75,6 @@
"Return the default OCaml-findlib package, resolved lazily."
(@* (gnu packages ocaml) ocaml-findlib))
(define (default-dune)
"Return the default Dune package, resolved lazily."
(@* (gnu packages ocaml) dune))
(define (default-dune-build-system)
"Return the dune-build-system, resolved lazily."
(@* (guix build-system dune) dune-build-system))
@@ -122,31 +98,14 @@
(@* (gnu packages ocaml) ocaml4.09-dune))
(define (default-ocaml5.0)
(@* (gnu packages ocaml5) ocaml-5.0))
(@* (gnu packages ocaml) ocaml-5.0))
(define (default-ocaml5.0-findlib)
(@* (gnu packages ocaml5) ocaml5.0-findlib))
(@* (gnu packages ocaml) ocaml5.0-findlib))
(define (default-ocaml5.0-dune)
(@* (gnu packages ocaml) ocaml5.0-dune))
(define (default-ocaml5.3)
(@* (gnu packages ocaml5) ocaml-5.3))
(define (default-ocaml5.3-findlib)
(@* (gnu packages ocaml5) ocaml5.3-findlib))
(define (default-ocaml5.3-dune)
(@* (gnu packages ocaml5) ocaml5.3-dune))
;; The default versions of core packages within the 5.x series.
(define default-ocaml5 default-ocaml5.3)
(define default-ocaml5-findlib default-ocaml5.3-findlib)
(define default-ocaml5-dune default-ocaml5.3-dune)
(define* (package-with-explicit-ocaml ocaml findlib dune old-prefix new-prefix
#:key variant-property)
"Return a procedure of one argument, P. The procedure creates a package
@@ -171,12 +130,6 @@ pre-defined variants."
variant-property))
(const #f)))
(define (has-ocaml-build-system? p)
(eq? 'ocaml (build-system-name (package-build-system p))))
(define (has-dune-build-system? p)
(eq? 'dune (build-system-name (package-build-system p))))
(define (transform p)
(cond
;; If VARIANT-PROPERTY is present, use that.
@@ -184,7 +137,8 @@ pre-defined variants."
=> force)
;; Otherwise build the new package object graph.
((or (has-ocaml-build-system? p) (has-dune-build-system? p))
((or (eq? (package-build-system p) ocaml-build-system)
(eq? (package-build-system p) (default-dune-build-system)))
(package
(inherit p)
(location (package-location p))
@@ -201,13 +155,15 @@ pre-defined variants."
(ensure-keyword-arguments (package-arguments p)
`(#:ocaml ,ocaml
#:findlib ,findlib
,@(if (has-dune-build-system? p)
,@(if (eq? (package-build-system p)
(default-dune-build-system))
`(#:dune ,dune)
'())))))))
(else p)))
(define (cut? p)
(or (not (or (has-ocaml-build-system? p) (has-dune-build-system? p)))
(or (not (or (eq? (package-build-system p) ocaml-build-system)
(eq? (package-build-system p) (default-dune-build-system))))
(package-variant p)))
(package-mapping transform cut?))
@@ -251,47 +207,33 @@ pre-defined variants."
(inherit p)
(properties (alist-delete 'ocaml5.0-variant (package-properties p)))))
(define package-with-ocaml5.3
(package-with-explicit-ocaml (delay (default-ocaml5.3))
(delay (default-ocaml5.3-findlib))
(delay (default-ocaml5.3-dune))
"ocaml-" "ocaml5.3-"
#:variant-property 'ocaml5.3-variant))
(define* (lower name
#:key source inputs native-inputs outputs system target
(ocaml (default-ocaml))
(findlib (default-findlib))
#:allow-other-keys
#:rest arguments)
"Return a bag for NAME."
(define private-keywords
'(#:target #:ocaml #:findlib #:inputs #:native-inputs))
(define (strip-ocaml5.3-variant p)
"Remove the 'ocaml5.3-variant' property from P."
(package
(inherit p)
(properties (alist-delete 'ocaml5.3-variant (package-properties p)))))
(and (not target) ;XXX: no cross-compilation
(bag
(name name)
(system system)
(host-inputs `(,@(if source
`(("source" ,source))
'())
,@inputs))
(build-inputs `(("ocaml" ,ocaml)
("findlib" ,findlib)
,@native-inputs
(define (make-lower default-ocaml default-findlib)
(lambda* (name
#:key source inputs native-inputs outputs system target
(ocaml (default-ocaml))
(findlib (default-findlib))
#:allow-other-keys
#:rest arguments)
"Return a bag for NAME."
(define private-keywords
'(#:target #:ocaml #:findlib #:inputs #:native-inputs))
(and (not target) ;XXX: no cross-compilation
(bag
(name name)
(system system)
(host-inputs `(,@(if source
`(("source" ,source))
'())
,@inputs))
(build-inputs `(("ocaml" ,ocaml)
("findlib" ,findlib)
,@native-inputs
;; Keep the standard inputs of 'gnu-build-system'.
,@(standard-packages)))
(outputs outputs)
(build ocaml-build)
(arguments (strip-keyword-arguments private-keywords arguments))))))
;; Keep the standard inputs of 'gnu-build-system'.
,@(standard-packages)))
(outputs outputs)
(build ocaml-build)
(arguments (strip-keyword-arguments private-keywords arguments)))))
(define* (ocaml-build name inputs
#:key
@@ -351,19 +293,10 @@ provides a 'setup.ml' file as its build system."
#:graft? #f
#:guile-for-build guile))
(define (make-ocaml-build-system default-ocaml default-findlib)
(define ocaml-build-system
(build-system
(name 'ocaml)
(description "The standard OCaml build system")
(lower (make-lower default-ocaml default-findlib))))
(define ocaml-build-system
;; The default instance of the build system, using Guix's default OCaml
;; compiler version.
(make-ocaml-build-system default-ocaml default-findlib))
(define ocaml5-build-system
(make-ocaml-build-system default-ocaml5 default-ocaml5-findlib))
(lower lower)))
;;; ocaml.scm ends here
+6 -18
View File
@@ -89,25 +89,13 @@
#:allow-other-keys)
"Install the given package."
(let ((out (assoc-ref outputs "out")))
(cond
((and (file-exists? "setup.ml") (not use-make?))
(if (and (file-exists? "setup.ml") (not use-make?))
(apply invoke "ocaml" "setup.ml"
(string-append "-" install-target) build-flags))
((file-exists? "Makefile")
(apply invoke "make" install-target make-flags))
;; Use either opam-installer or opaline, which both understand
;; opam's `.install` file format. opam-installer is the standard
;; platform tool, while opaline is a fallback for packages with
;; circular dependencies involving opam.
;; (https://codeberg.org/guix/guix/issues/3588)
((which "opam-installer")
(invoke "opam-installer" "-i" (string-append "--prefix=" out)
(string-append "--libdir=" out "/lib/ocaml/site-lib")))
((which "opaline")
(invoke "opaline" "-prefix" out
"-libdir" (string-append out "/lib/ocaml/site-lib")))
(else (error (string-append "Either 'opam-installer' or 'opaline' "
"must exist in $PATH at build time.")))))
(string-append "-" install-target) build-flags)
(if (file-exists? "Makefile")
(apply invoke "make" install-target make-flags)
(invoke "opam-installer" "-i" (string-append "--prefix=" out)
(string-append "--libdir=" out "/lib/ocaml/site-lib")))))
#t)
(define* (prepare-install #:key outputs #:allow-other-keys)
+2 -2
View File
@@ -224,7 +224,7 @@ returned by 'gexp->sexp'."
(let ((extra (length inputs)))
(lambda args
(apply (gexp-proc gexp) (drop args extra))))
(and=> (gexp-location gexp) location->source-properties)))
(gexp-location gexp)))
;;;
@@ -1250,7 +1250,7 @@ The other arguments are as for 'derivation'."
(append modules (gexp-self-modules exp))
(gexp-self-extensions exp)
(gexp-proc exp)
(and=> (gexp-location exp) location->source-properties))))
(gexp-location exp))))
(mlet* %store-monad ( ;; The following binding forces '%current-system' and
;; '%current-target-system' to be looked up at >>=
+1 -37
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012-2013, 2018-2020, 2023, 2025-2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2012-2013, 2018-2020, 2023, 2025 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2017, 2019, 2020, 2022, 2023, 2024, 2025 Ricardo Wurmus <rekado@elephly.net>
@@ -58,11 +58,6 @@
#:use-module (ice-9 rdelim)
#:use-module (ice-9 receive)
#:use-module (ice-9 regex)
#:autoload (web uri) (string->uri
uri-scheme
uri-host
uri-path
split-and-decode-uri-path)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-11)
@@ -81,7 +76,6 @@
peek-body
git-repository-url?
tarball-url->git-repository-url
download-git-repository
git-origin
git->origin
@@ -208,36 +202,6 @@ thrown."
;; Fallback.
(string-suffix? ".git" url)))
(define (tarball-url->git-repository-url url)
"Given URL, the URL of a source code tarball, return the URL of the
corresponding Git repository or #f if it could not be guessed."
(let ((uri (string->uri url)))
(match (uri-scheme uri)
('mirror
(match (uri-host uri)
((or "gnu" "savannah")
(string-append "https://https.git.savannah.gnu.org/git/"
(match (split-and-decode-uri-path (uri-path uri))
((name _ ...)
(string-append name ".git")))))
("gnome"
(string-append "https://gitlab.gnome.org/GNOME/"
(match (split-and-decode-uri-path (uri-path uri))
(("sources" name _ ...)
(string-append name ".git")))))
;; TODO: Add "kernel" and other mirrors.
(_ #f)))
((or 'https 'http)
(match (uri-host uri)
((or "github.com" "gitlab.com")
(match (split-and-decode-uri-path (uri-path uri))
((owner repository _ ...)
(string-append "https://" (uri-host uri)
"/" owner "/" repository))))
(_
#f)))
(_ #f))))
(define* (download-git-repository url ref #:key recursive?)
"Fetch the given REF from the Git repository at URL. Return three values :
the commit hash, the downloaded directory and its content hash."
+53 -54
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013-2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013-2025 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
@@ -1676,62 +1676,61 @@ files for the fonts of the @var{manifest} entries."
(module-ref (resolve-interface '(gnu packages xorg)) 'mkfontdir))
(define build
(with-imported-modules '((guix build utils)
(guix build union))
#~(begin
(use-modules (srfi srfi-26)
(guix build utils)
(guix build union))
(let ((fonts-dirs (filter file-exists?
(map (cut string-append <>
"/share/fonts")
'#$(manifest-inputs manifest)))))
(mkdir #$output)
(if (null? fonts-dirs)
(exit #t)
(let* ((share-dir (string-append #$output "/share"))
(fonts-dir (string-append share-dir "/fonts"))
(mkfontscale (string-append #+mkfontscale
"/bin/mkfontscale"))
(mkfontdir (string-append #+mkfontdir
"/bin/mkfontdir"))
(empty-file? (lambda (filename)
(call-with-ascii-input-file filename
(lambda (p)
(eqv? #\0 (read-char p))))))
(fonts-dir-file "fonts.dir")
(fonts-scale-file "fonts.scale"))
(mkdir-p share-dir)
;; Create all sub-directories, because we may create fonts.dir
;; and fonts.scale files in the sub-directories.
(union-build fonts-dir fonts-dirs
#:log-port (%make-void-port "w")
#:create-all-directories? #t)
(let ((directories
(find-files fonts-dir
(lambda (file stat)
(eq? 'directory (stat:type stat)))
#:directories? #t)))
(for-each (lambda (dir)
(with-directory-excursion dir
(when (file-exists? fonts-scale-file)
(delete-file fonts-scale-file))
(when (file-exists? fonts-dir-file)
(delete-file fonts-dir-file))
(unless (and (zero? (system* mkfontscale))
(zero? (system* mkfontdir)))
(exit #f))
(when (and (file-exists? fonts-scale-file)
(empty-file? fonts-scale-file))
(delete-file fonts-scale-file))
(when (and (file-exists? fonts-dir-file)
(empty-file? fonts-dir-file))
(delete-file fonts-dir-file))))
directories))))))))
#~(begin
(use-modules (srfi srfi-26)
(guix build utils)
(guix build union))
(let ((fonts-dirs (filter file-exists?
(map (cut string-append <>
"/share/fonts")
'#$(manifest-inputs manifest)))))
(mkdir #$output)
(if (null? fonts-dirs)
(exit #t)
(let* ((share-dir (string-append #$output "/share"))
(fonts-dir (string-append share-dir "/fonts"))
(mkfontscale (string-append #+mkfontscale
"/bin/mkfontscale"))
(mkfontdir (string-append #+mkfontdir
"/bin/mkfontdir"))
(empty-file? (lambda (filename)
(call-with-ascii-input-file filename
(lambda (p)
(eqv? #\0 (read-char p))))))
(fonts-dir-file "fonts.dir")
(fonts-scale-file "fonts.scale"))
(mkdir-p share-dir)
;; Create all sub-directories, because we may create fonts.dir
;; and fonts.scale files in the sub-directories.
(union-build fonts-dir fonts-dirs
#:log-port (%make-void-port "w")
#:create-all-directories? #t)
(let ((directories (find-files fonts-dir
(lambda (file stat)
(eq? 'directory (stat:type stat)))
#:directories? #t)))
(for-each (lambda (dir)
(with-directory-excursion dir
(when (file-exists? fonts-scale-file)
(delete-file fonts-scale-file))
(when (file-exists? fonts-dir-file)
(delete-file fonts-dir-file))
(unless (and (zero? (system* mkfontscale))
(zero? (system* mkfontdir)))
(exit #f))
(when (and (file-exists? fonts-scale-file)
(empty-file? fonts-scale-file))
(delete-file fonts-scale-file))
(when (and (file-exists? fonts-dir-file)
(empty-file? fonts-dir-file))
(delete-file fonts-dir-file))))
directories)))))))
(gexp->derivation "fonts-dir" build
#:system system
#:modules '((guix build utils)
(guix build union)
(srfi srfi-26))
#:local-build? #t
#:substitutable? #f
#:properties
+1 -2
View File
@@ -362,8 +362,7 @@ expressions and blanks that were read."
;; of 1, except that indent is 1 instead of 2 columns.
(vhashq
('source '(package))
('git-reference '(uri origin))
('snippet '(origin))
('git-reference '(uri origin source))
('sha256 '(origin source package))
('arguments '(package))
('list '(arguments package))
+29 -44
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021-2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021-2025 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
;;; Copyright © 2025 Nicolas Graves <ngraves@ngraves.fr>
;;;
@@ -33,8 +33,7 @@
#:autoload (gnu packages) (specification->package fold-packages)
#:autoload (guix import utils) (default-git-error
generate-git-source
git-repository-url?
tarball-url->git-repository-url)
git-repository-url?)
#:use-module (guix combinators)
#:use-module (guix scripts)
#:use-module ((guix scripts build) #:select (%standard-build-options))
@@ -48,6 +47,7 @@
#:use-module (ice-9 control)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-2)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-26)
@@ -569,7 +569,7 @@ are put in alphabetical order."
;;; url-fetch->git-fetch
;;;
(define (transform-to-git-fetch location origin repository-url version)
(define (transform-to-git-fetch location origin home-page version)
"Transform an origin using url-fetch to use git-fetch if appropriate.
Return the new origin S-expression or #f if transformation isn't applicable."
(match origin
@@ -578,22 +578,15 @@ Return the new origin S-expression or #f if transformation isn't applicable."
('uri uri-expr)
('sha256 ('base32 _))
rest ...)
(catch 'git-error
(lambda ()
(let ((rest (filter (match-lambda
(('patches . _) #t)
(('modules . _) #t)
(('snippet . _) #t)
(_ #f))
rest)))
`(,@(generate-git-source repository-url version
(lambda args
(apply throw args)))
,@rest)))
(let ((report-error (default-git-error repository-url location)))
(lambda args
(apply report-error args)
#f))))
(let ((rest (filter (match-lambda
(('patches . _) #t)
(('modules . _) #t)
(('snippet . _) #t)
(_ #f))
rest)))
`(,@(generate-git-source home-page version
(default-git-error home-page location))
,@rest)))
(_ #f)))
(define* (url-fetch->git-fetch package
@@ -601,39 +594,31 @@ Return the new origin S-expression or #f if transformation isn't applicable."
(policy 'safe)
(edit-expression edit-expression))
"Transform PACKAGE's source from url-fetch to git-fetch when appropriate."
(define (transform-source location repository-url str)
(define (transform-source location str)
(let* ((origin-exp (call-with-input-string str read-with-comments))
(home-page (package-home-page package))
(new-origin (transform-to-git-fetch location
origin-exp
repository-url
home-page
(package-version package))))
(if new-origin
(begin
(info location (G_ "~a: changing source to 'git-fetch'~%")
(package-full-name package))
(info location (G_ "transforming source from url-fetch to git-fetch~%"))
(object->string* new-origin (location-column location)))
str)))
;; Check if this package uses 'url-fetch' and has a known corresponding Git
;; repository.
(let* ((source (package-source package))
(home-page (package-home-page package))
(repository-url (and (origin? source)
(eq? url-fetch (origin-method source))
(or (and (git-repository-url? home-page)
home-page)
(and=> (match (origin-uri source)
(((? string? head) . _) head)
((? string? url) url)
(_ #f))
tarball-url->git-repository-url))))
(location ;source might be inherited
(and=> (package-field-location package 'source)
absolute-location)))
(when (and repository-url location)
(edit-expression
(location->source-properties location)
(cut transform-source location repository-url <>)))))
;; Check if this package uses url-fetch and has a git repository home-page
(and-let* ((source (package-source package))
(home-page (package-home-page package))
(location ; source might be inherited
(and=> (and (origin? source)
(eq? url-fetch (origin-method source))
(git-repository-url? home-page)
(package-field-location package 'source))
absolute-location)))
(edit-expression
(location->source-properties location)
(cut transform-source location <>))))
;;;
+3 -7
View File
@@ -118,8 +118,6 @@
set-store-connection-cache
set-store-connection-cache!
%default-store-connection-buffer-size
connect-to-daemon
open-connection
port->connection
@@ -358,11 +356,10 @@ non-blocking."
(errno (system-error-errno args)))))
(loop rest)))))))))
(define %default-store-connection-buffer-size 8192)
(define %default-buffer-size 8192)
(define* (connect-to-daemon uri-or-filename #:key non-blocking?
(buffer-size
%default-store-connection-buffer-size))
(buffer-size %default-buffer-size))
"Connect to the daemon at URI-OR-FILENAME and return an input/output port.
If NON-BLOCKING?, use a non-blocking socket when using the file, unix or guix
URI schemes. Use BUFFER-SIZE defaulting to 8192.
@@ -409,8 +406,7 @@ the daemon. Use 'open-connection' for that."
(define* (open-connection #:optional (uri (%daemon-socket-uri))
#:key port (reserve-space? #t) cpu-affinity
non-blocking? built-in-builders
(buffer-size
%default-store-connection-buffer-size))
(buffer-size %default-buffer-size))
"Connect to the daemon at URI (a string), or, if PORT is not #f, use it as
the I/O port over which to communicate to a build daemon.
-9
View File
@@ -344,13 +344,4 @@ error procedure has been called."
(let ((sexp error-called? (test-generate-git-source "1.0.0" "2.0.0")))
error-called?))
(test-equal "tarball-url->git-repository-url, guile"
'("https://https.git.savannah.gnu.org/git/guile.git"
"https://gitlab.gnome.org/GNOME/brasero.git"
"https://github.com/aide/aide")
(map tarball-url->git-repository-url
'("mirror://gnu/guile/guile-3.0.11.tar.gz"
"mirror://gnome/sources/brasero/3.12/brasero-3.12.3.tar.xz"
"https://github.com/aide/aide/releases/download/v0.19.3/aide-0.19.3.tar.gz")))
(test-end "import-utils")
+1 -36
View File
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021-2024, 2026 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021-2024 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -669,41 +669,6 @@
(cut string-contains <> "patches")))))))
"1"))
(unless (false-if-exception
(getaddrinfo "https.git.savannah.gnu.org" "https"))
(test-skip 1))
(test-equal "url-fetch->git-fetch, mirror:// URL"
'(origin
(method git-fetch)
(uri (git-reference
(url "https://https.git.savannah.gnu.org/git/sed.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"00p6v3aa22jz365scmifr06fspkylzrvbqda0waz4x06q5qv0263")))
(call-with-test-package
'((version "4.9")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/sed/sed-"
version ".tar.gz"))
(sha256
(base32 "0000000000000000000000000000000000000000000000000000")))))
(lambda (directory)
(define file
(string-append directory "/my-packages-1.scm"))
;; Note: This ends up cloning the 'sed' repository on Savannah.
(system* "guix" "style" "-L" directory "-S" "git-source" "my-coreutils-1")
(load file)
(call-with-input-string (read-package-field
(@ (my-packages-1) my-coreutils-1) 'source 8)
read))
"1"))
(test-assert "url-fetch->git-fetch, non-git home-page unchanged"
(call-with-test-package
'((home-page "https://www.example.com")