me
/
guix
Archived
1
0
Fork 0

Merge branch 'master' into wip-webkit

master
Liliana Marie Prikler 2023-12-18 03:58:23 +01:00
commit 256d5b3598
No known key found for this signature in database
GPG Key ID: 442A84B8C70E2F87
115 changed files with 11714 additions and 49768 deletions

View File

@ -62,8 +62,7 @@
(name "lbraun")) (name "lbraun"))
("ACC2 3BA0 59F7 CCF4 08F0 43AD 442A 84B8 C70E 2F87" ("ACC2 3BA0 59F7 CCF4 08F0 43AD 442A 84B8 C70E 2F87"
(name "lilyp")) (name "lilyp"))
(;; primary: "4F71 6F9A 8FA2 C80E F1B5 E1BA 5E35 F231 DE1A C5E0" ("6840 722E EEE4 D3A6 4EE5 3EAC 6AAC 1963 757F 47FF"
"B051 5948 F1E7 D3C1 B980 38A0 2646 FA30 BACA 7F08"
(name "lfam")) (name "lfam"))
("BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA" ("BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"
(name "mbakke")) (name "mbakke"))

View File

@ -138,6 +138,7 @@ MODULES = \
guix/ipfs.scm \ guix/ipfs.scm \
guix/platform.scm \ guix/platform.scm \
guix/platforms/arm.scm \ guix/platforms/arm.scm \
guix/platforms/avr.scm \
guix/platforms/mips.scm \ guix/platforms/mips.scm \
guix/platforms/powerpc.scm \ guix/platforms/powerpc.scm \
guix/platforms/riscv.scm \ guix/platforms/riscv.scm \
@ -420,10 +421,6 @@ AUX_FILES = \
gnu/packages/aux-files/linux-libre/6.6-arm64.conf \ gnu/packages/aux-files/linux-libre/6.6-arm64.conf \
gnu/packages/aux-files/linux-libre/6.6-i686.conf \ gnu/packages/aux-files/linux-libre/6.6-i686.conf \
gnu/packages/aux-files/linux-libre/6.6-x86_64.conf \ gnu/packages/aux-files/linux-libre/6.6-x86_64.conf \
gnu/packages/aux-files/linux-libre/6.5-arm.conf \
gnu/packages/aux-files/linux-libre/6.5-arm64.conf \
gnu/packages/aux-files/linux-libre/6.5-i686.conf \
gnu/packages/aux-files/linux-libre/6.5-x86_64.conf \
gnu/packages/aux-files/linux-libre/6.1-arm.conf \ gnu/packages/aux-files/linux-libre/6.1-arm.conf \
gnu/packages/aux-files/linux-libre/6.1-arm64.conf \ gnu/packages/aux-files/linux-libre/6.1-arm64.conf \
gnu/packages/aux-files/linux-libre/6.1-i686.conf \ gnu/packages/aux-files/linux-libre/6.1-i686.conf \

View File

@ -1684,6 +1684,11 @@ command to submit patches. To list the available actions of the script,
you can invoke it via the @command{etc/teams.scm help} command. For you can invoke it via the @command{etc/teams.scm help} command. For
more information regarding teams, @pxref{Teams}. more information regarding teams, @pxref{Teams}.
@quotation Note
On foreign distros, you might have to use @command{./pre-inst-env git
send-email} for @file{etc/teams.scm} to work.
@end quotation
@unnumberedsubsubsec Multiple Patches @unnumberedsubsubsec Multiple Patches
@anchor{Multiple Patches} @anchor{Multiple Patches}
@cindex cover letter @cindex cover letter

View File

@ -119,6 +119,9 @@ Copyright @copyright{} 2023 Tanguy Le Carrour@*
Copyright @copyright{} 2023 Zheng Junjie@* Copyright @copyright{} 2023 Zheng Junjie@*
Copyright @copyright{} 2023 Brian Cully@* Copyright @copyright{} 2023 Brian Cully@*
Copyright @copyright{} 2023 Felix Lechner@* Copyright @copyright{} 2023 Felix Lechner@*
Copyright @copyright{} 2023 Foundation Devices, Inc.@*
Copyright @copyright{} 2023 Thomas Ieong@*
Copyright @copyright{} 2023 Saku Laesvuori@*
Permission is granted to copy, distribute and/or modify this document Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or under the terms of the GNU Free Documentation License, Version 1.3 or
@ -4058,6 +4061,7 @@ guix-daemon}). It can also be disabled temporarily by passing the
@node Getting Substitutes from Other Servers @node Getting Substitutes from Other Servers
@subsection Getting Substitutes from Other Servers @subsection Getting Substitutes from Other Servers
@c Note: This section name appears in a hint printed by 'guix weather'.
@cindex substitute servers, adding more @cindex substitute servers, adding more
Guix can look up and fetch substitutes from several servers. This is Guix can look up and fetch substitutes from several servers. This is
@ -4157,6 +4161,21 @@ can list as many substitute servers as you like, with the caveat that
substitute lookup can be slowed down if too many servers need to be substitute lookup can be slowed down if too many servers need to be
contacted. contacted.
@quotation Troubleshooting
To diagnose problems, you can run @command{guix weather}. For example,
running:
@example
guix weather coreutils
@end example
@noindent
not only tells you which of the currently-configured servers has
substitutes for the @code{coreutils} package, it also reports whether
one of these servers is unauthorized. @xref{Invoking guix weather}, for
more information.
@end quotation
Note that there are also situations where one may want to add the URL of Note that there are also situations where one may want to add the URL of
a substitute server @emph{without} authorizing its key. a substitute server @emph{without} authorizing its key.
@xref{Substitute Authentication}, to understand this fine point. @xref{Substitute Authentication}, to understand this fine point.
@ -16498,7 +16517,10 @@ up building packages by yourself (@pxref{Substitutes}). The
specified servers so you can have an idea of whether you'll be grumpy specified servers so you can have an idea of whether you'll be grumpy
today. It can sometimes be useful info as a user, but it is primarily today. It can sometimes be useful info as a user, but it is primarily
useful to people running @command{guix publish} (@pxref{Invoking guix useful to people running @command{guix publish} (@pxref{Invoking guix
publish}). publish}). Sometimes substitutes @emph{are} available but they are not
authorized on your system; @command{guix weather} reports it so you can
authorize them if you want (@pxref{Getting Substitutes from Other
Servers}).
@cindex statistics, for substitutes @cindex statistics, for substitutes
@cindex availability of substitutes @cindex availability of substitutes
@ -16565,8 +16587,9 @@ The available options are listed below.
@table @code @table @code
@item --substitute-urls=@var{urls} @item --substitute-urls=@var{urls}
@var{urls} is the space-separated list of substitute server URLs to @var{urls} is the space-separated list of substitute server URLs to
query. When this option is omitted, the default set of substitute query. When this option is omitted, the URLs specified with the
servers is queried. @option{--substitute-urls} option of @command{guix-daemon} are used or,
as a last resort, the default set of substitute URLs.
@item --system=@var{system} @item --system=@var{system}
@itemx -s @var{system} @itemx -s @var{system}
@ -16760,6 +16783,7 @@ The available targets are:
- aarch64-linux-gnu - aarch64-linux-gnu
- arm-linux-gnueabihf - arm-linux-gnueabihf
- avr
- i586-pc-gnu - i586-pc-gnu
- i686-linux-gnu - i686-linux-gnu
- i686-w64-mingw32 - i686-w64-mingw32
@ -19377,7 +19401,8 @@ and DNS-SD.
@anchor{guix-configuration-build-machines} @anchor{guix-configuration-build-machines}
@item @code{build-machines} (default: @code{#f}) @item @code{build-machines} (default: @code{#f})
This field must be either @code{#f} or a list of gexps evaluating to a This field must be either @code{#f} or a list of gexps evaluating to a
@code{build-machine} record (@pxref{Daemon Offload Setup}). @code{build-machine} record or to a list of @code{build-machine} records
(@pxref{Daemon Offload Setup}).
When it is @code{#f}, the @file{/etc/guix/machines.scm} file is left When it is @code{#f}, the @file{/etc/guix/machines.scm} file is left
untouched. Otherwise, the list of of gexps is written to untouched. Otherwise, the list of of gexps is written to
@ -19446,7 +19471,8 @@ A list of file-like objects where each element contains a public key.
A list of strings where each element is a substitute URL. A list of strings where each element is a substitute URL.
@item @code{build-machines} (default: @code{'()}) @item @code{build-machines} (default: @code{'()})
A list of gexps that evaluate to @code{build-machine} records A list of gexps that evaluate to @code{build-machine} records or to a list of
@code{build-machine} records.
(@pxref{Daemon Offload Setup}). (@pxref{Daemon Offload Setup}).
Using this field, a service may add new build machines to receive builds Using this field, a service may add new build machines to receive builds
@ -27615,6 +27641,66 @@ on TCP port 5232 of @code{localhost} and use the @code{htpasswd} file at
@end table @end table
@end deftp @end deftp
@subsubheading Rspamd Service
@cindex email
@cindex spam
@defvar rspamd-service-type
This is the type of the @uref{https://rspamd.com/, Rspamd} filtering
system whose value should be a @code{rspamd-configuration}.
@end defvar
@c %start of fragment
@deftp {Data Type} rspamd-configuration
Available @code{rspamd-configuration} fields are:
@table @asis
@item @code{package} (default: @code{rspamd}) (type: file-like)
The package that provides rspamd.
@item @code{config-file} (default: @code{%default-rspamd-config-file}) (type: file-like)
File-like object of the configuration file to use. By default all
workers are enabled except fuzzy and they are binded to their usual
ports, e.g localhost:11334, localhost:11333 and so on
@item @code{local.d-files} (default: @code{()}) (type: directory-tree)
Configuration files in local.d, provided as a list of two element lists
where the first element is the filename and the second one is a
file-like object. Settings in these files will be merged with the
defaults.
@item @code{override.d-files} (default: @code{()}) (type: directory-tree)
Configuration files in override.d, provided as a list of two element
lists where the first element is the filename and the second one is a
file-like object. Settings in these files will override the defaults.
@item @code{user} (default: @code{%default-rspamd-account}) (type: user-account)
The user to run rspamd as.
@item @code{group} (default: @code{%default-rspamd-group}) (type: user-group)
The group to run rspamd as.
@item @code{debug?} (default: @code{#f}) (type: boolean)
Force debug output.
@item @code{insecure?} (default: @code{#f}) (type: boolean)
Ignore running workers as privileged users.
@item @code{skip-template?} (default: @code{#f}) (type: boolean)
Do not apply Jinja templates.
@item @code{shepherd-requirements} (default: @code{(loopback)}) (type: list-of-symbols)
This is a list of symbols naming Shepherd services that this service
will depend on.
@end table
@end deftp
@c %end of fragment
@node Messaging Services @node Messaging Services
@subsection Messaging Services @subsection Messaging Services
@ -45850,6 +45936,11 @@ Platform targeting x86 CPU running GNU/Hurd (also referred to as
``GNU''). ``GNU'').
@end defvar @end defvar
@defvar avr
Platform targeting AVR CPUs without an operating system, with run-time support
from AVR Libc.
@end defvar
@node System Images @node System Images
@chapter Creating System Images @chapter Creating System Images

View File

@ -139,7 +139,8 @@ _guix_is_dash_f ()
{ {
_guix_is_short_option f || _guix_is_short_option f ||
_guix_is_long_option file || _guix_is_long_option file ||
_guix_is_long_option install-from-file _guix_is_long_option install-from-file ||
_guix_is_long_option whole-file
} }
_guix_is_dash_l () _guix_is_dash_l ()
@ -333,6 +334,14 @@ _guix_complete ()
else else
_guix_complete_available_package "$word_at_point" _guix_complete_available_package "$word_at_point"
fi fi
elif [[ "$command" = "style" ]]
then
if _guix_is_dash_f
then
_guix_complete_file
else
_guix_complete_available_package "$word_at_point"
fi
else else
_guix_complete_available_package "$word_at_point" _guix_complete_available_package "$word_at_point"
fi fi

View File

@ -48,6 +48,12 @@
;; Search path for target headers when cross-compiling. ;; Search path for target headers when cross-compiling.
(map (cut string-append "CROSS_" <>) %gcc-include-paths)) (map (cut string-append "CROSS_" <>) %gcc-include-paths))
(define* (patch-genmultilib-shebang #:key inputs native-inputs #:allow-other-keys)
"Patch-shebang in the gcc/genmultilib file doesn't work as it contains several
scripts inside, each with a #!/bin/sh that needs patching."
(substitute* "gcc/genmultilib"
(("#!/bin/sh") (string-append "#!" (which "sh")))))
(define* (make-cross-binutils-visible #:key outputs inputs target (define* (make-cross-binutils-visible #:key outputs inputs target
#:allow-other-keys) #:allow-other-keys)
"Create symlinks for 'as', 'nm', and 'ld' in the \"out\" output, under "Create symlinks for 'as', 'nm', and 'ld' in the \"out\" output, under
@ -162,6 +168,31 @@ C_*INCLUDE_PATH."
(cons "LIBRARY_PATH" %gcc-include-paths)) (cons "LIBRARY_PATH" %gcc-include-paths))
#t)) #t))
(define* (set-cross-path/avr #:key inputs #:allow-other-keys)
(match (assoc-ref inputs "libc")
((? string? libc)
(define (cross? x)
;; Return #t if X is a cross-libc.
(string-prefix? libc x))
(let ((cpath (string-append libc "/avr/include")))
(for-each (cut setenv <> cpath)
%gcc-cross-include-paths))
(setenv "CROSS_LIBRARY_PATH"
(string-append libc "/avr/lib"))
(for-each (lambda (var)
(and=> (getenv var)
(lambda (value)
(let* ((path (search-path-as-string->list value))
(native-path (list->search-path-as-string
(remove cross? path) ":")))
(setenv var native-path)))))
(cons "LIBRARY_PATH" %gcc-include-paths)))
;; AVR sans-libc cross-compiler.
(else #t)))
(define (install-strip . _) (define (install-strip . _)
"Install a stripped GCC." "Install a stripped GCC."
;; Unlike our 'strip' phase, this will do the right thing for ;; Unlike our 'strip' phase, this will do the right thing for
@ -173,14 +204,18 @@ C_*INCLUDE_PATH."
"Modify PHASES to include everything needed to build a cross-GCC for TARGET, "Modify PHASES to include everything needed to build a cross-GCC for TARGET,
a target triplet." a target triplet."
(modify-phases phases (modify-phases phases
(add-after 'unpack 'patch-genmultilib-shebang
patch-genmultilib-shebang)
(add-before 'configure 'set-cross-path (add-before 'configure 'set-cross-path
;; This mingw32 target checking logic should match that of target-mingw? ;; This mingw32 target checking logic should match that of target-mingw?
;; in (guix utils), but (guix utils) is too large too copy over to the ;; in (guix utils), but (guix utils) is too large too copy over to the
;; build side entirely and for now we have no way to select variables to ;; build side entirely and for now we have no way to select variables to
;; copy over. See (gnu packages cross-base) for more details. ;; copy over. See (gnu packages cross-base) for more details.
(if (string-suffix? "-mingw32" target) (cond
(cut set-cross-path/mingw #:target target <...>) ((string-suffix? "-mingw32" target)
set-cross-path)) (cut set-cross-path/mingw #:target target <...>))
((string-prefix? "avr" target) set-cross-path/avr)
(#t set-cross-path)))
(add-after 'install 'make-cross-binutils-visible (add-after 'install 'make-cross-binutils-visible
(cut make-cross-binutils-visible #:target target <...>)) (cut make-cross-binutils-visible #:target target <...>))
(replace 'install install-strip))) (replace 'install install-strip)))

View File

@ -29,6 +29,7 @@ when installed, will make the extension contained in PKG available as an
Icecat browser extension. PKG-OUTPUT specifies which output of PKG to use." Icecat browser extension. PKG-OUTPUT specifies which output of PKG to use."
(package (package
(inherit pkg) (inherit pkg)
(location (package-location pkg))
(name (string-append (package-name pkg) "-icecat")) (name (string-append (package-name pkg) "-icecat"))
(native-inputs '()) (native-inputs '())
(inputs '()) (inputs '())

View File

@ -190,15 +190,16 @@ SYSTEM."
(define (pointless? target) (define (pointless? target)
;; Return #t if it makes no sense to cross-build to TARGET from SYSTEM. ;; Return #t if it makes no sense to cross-build to TARGET from SYSTEM.
(match system (or (string=? target "avr") ; Nothing for AVR at this time.
((or "x86_64-linux" "i686-linux") (match system
(if (string-contains target "mingw") ((or "x86_64-linux" "i686-linux")
(not (string=? "x86_64-linux" system)) (if (string-contains target "mingw")
#f)) (not (string=? "x86_64-linux" system))
(_ #f))
;; Don't try to cross-compile from non-Intel platforms: this isn't (_
;; very useful and these are often brittle configurations. ;; Don't try to cross-compile from non-Intel platforms: this isn't
#t))) ;; very useful and these are often brittle configurations.
#t))))
(define (either proc1 proc2 proc3) (define (either proc1 proc2 proc3)
(lambda (x) (lambda (x)

View File

@ -201,6 +201,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/crates-graphics.scm \ %D%/packages/crates-graphics.scm \
%D%/packages/crates-gtk.scm \ %D%/packages/crates-gtk.scm \
%D%/packages/cross-base.scm \ %D%/packages/cross-base.scm \
%D%/packages/cross-toolchain.scm \
%D%/packages/crypto.scm \ %D%/packages/crypto.scm \
%D%/packages/cryptsetup.scm \ %D%/packages/cryptsetup.scm \
%D%/packages/cups.scm \ %D%/packages/cups.scm \
@ -1182,6 +1183,7 @@ dist_patch_DATA = \
%D%/packages/patches/fp16-implicit-double.patch \ %D%/packages/patches/fp16-implicit-double.patch \
%D%/packages/patches/fp16-system-libraries.patch \ %D%/packages/patches/fp16-system-libraries.patch \
%D%/packages/patches/fpc-reproducibility.patch \ %D%/packages/patches/fpc-reproducibility.patch \
%D%/packages/patches/fpc-glibc-2.34-compat.patch \
%D%/packages/patches/fpm-newer-clamp-fix.patch \ %D%/packages/patches/fpm-newer-clamp-fix.patch \
%D%/packages/patches/freedink-engine-fix-sdl-hints.patch \ %D%/packages/patches/freedink-engine-fix-sdl-hints.patch \
%D%/packages/patches/freeimage-libtiff-compat.patch \ %D%/packages/patches/freeimage-libtiff-compat.patch \
@ -1728,7 +1730,6 @@ dist_patch_DATA = \
%D%/packages/patches/openjdk-15-xcursor-no-dynamic.patch \ %D%/packages/patches/openjdk-15-xcursor-no-dynamic.patch \
%D%/packages/patches/openjdk-21-fix-rpath.patch \ %D%/packages/patches/openjdk-21-fix-rpath.patch \
%D%/packages/patches/openmpi-mtl-priorities.patch \ %D%/packages/patches/openmpi-mtl-priorities.patch \
%D%/packages/patches/openmw-assume-nonconst-SIGSTKSZ.patch \
%D%/packages/patches/openssh-trust-guix-store-directory.patch \ %D%/packages/patches/openssh-trust-guix-store-directory.patch \
%D%/packages/patches/openresolv-restartcmd-guix.patch \ %D%/packages/patches/openresolv-restartcmd-guix.patch \
%D%/packages/patches/openrgb-unbundle-hueplusplus.patch \ %D%/packages/patches/openrgb-unbundle-hueplusplus.patch \
@ -1942,7 +1943,7 @@ dist_patch_DATA = \
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \ %D%/packages/patches/rpcbind-CVE-2017-8779.patch \
%D%/packages/patches/rtags-separate-rct.patch \ %D%/packages/patches/rtags-separate-rct.patch \
%D%/packages/patches/racket-chez-scheme-bin-sh.patch \ %D%/packages/patches/racket-chez-scheme-bin-sh.patch \
%D%/packages/patches/racket-backport-8.10-rktboot.patch \ %D%/packages/patches/racket-backport-8.11-layered-docs.patch \
%D%/packages/patches/racket-rktio-bin-sh.patch \ %D%/packages/patches/racket-rktio-bin-sh.patch \
%D%/packages/patches/racket-zuo-bin-sh.patch \ %D%/packages/patches/racket-zuo-bin-sh.patch \
%D%/packages/patches/remake-impure-dirs.patch \ %D%/packages/patches/remake-impure-dirs.patch \

View File

@ -4486,7 +4486,7 @@ Python loading in HPC environments.")
(let ((real-name "inxi")) (let ((real-name "inxi"))
(package (package
(name "inxi-minimal") (name "inxi-minimal")
(version "3.3.30-1") (version "3.3.31-2")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -4495,7 +4495,7 @@ Python loading in HPC environments.")
(commit version))) (commit version)))
(file-name (git-file-name real-name version)) (file-name (git-file-name real-name version))
(sha256 (sha256
(base32 "0k27m4a19p32c00w4jpmqy17v0ca4g5zixyw97yy12932c73d0dy")))) (base32 "1fca5minalpmizbxh5kmjiv8xrl7k6g91zn8d84fxmbhsk8vn3kk"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(inputs (inputs
(list bash-minimal (list bash-minimal

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; ;;;
@ -29,13 +32,17 @@
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages avr) #:use-module (gnu packages avr)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
#:use-module (gnu packages elf) #:use-module (gnu packages elf)
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages llvm)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages version-control) #:use-module (gnu packages version-control)
#:use-module (gnu packages vim)
#:use-module (gnu packages ruby)) #:use-module (gnu packages ruby))
(define-public simavr (define-public simavr
@ -118,6 +125,7 @@ multipart HEX files.")
;; only built). ;; only built).
(list (list
#:tests? #f #:tests? #f
#:target "avr"
#:modules '((guix build gnu-build-system) #:modules '((guix build gnu-build-system)
(guix build utils) (guix build utils)
(ice-9 match) (ice-9 match)
@ -168,7 +176,7 @@ multipart HEX files.")
(mkdir-p dest) (mkdir-p dest)
(copy-recursively html dest))) (copy-recursively html dest)))
html-dirs))))))) html-dirs)))))))
(native-inputs (list doxygen (make-avr-toolchain))) (native-inputs (list doxygen))
(home-page "https://www.lufa-lib.org/") (home-page "https://www.lufa-lib.org/")
(synopsis "Lightweight USB Framework for AVRs") (synopsis "Lightweight USB Framework for AVRs")
(description "UFA is a simple to use, lightweight framework which sits (description "UFA is a simple to use, lightweight framework which sits
@ -178,3 +186,40 @@ package contains the user-submitted projects and bootloaders for use with
compatible microcontroller models, as well as the demos and the compatible microcontroller models, as well as the demos and the
documentation.") documentation.")
(license license:expat))) ;see LUFA/License.txt (license license:expat))) ;see LUFA/License.txt
(define-public microscheme
(package
(name "microscheme")
(version "0.9.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ryansuchocki/microscheme")
(commit (string-append "v" version))))
(sha256
(base32 "1bflwirpcd58bngbs6hgjfwxl894ni2gpdd4pj10pm2mjhyj5dgw"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
`(#:parallel-build? #f ; fails to build otherwise
#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(delete 'configure))
#:make-flags
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))))
(native-inputs
(list clang cppcheck unzip xxd))
(home-page "https://github.com/ryansuchocki/microscheme/")
(synopsis "Scheme subset for Atmel microcontrollers")
(description
"Microscheme, or @code{(ms)} for short, is a functional programming
language for the Arduino, and for Atmel 8-bit AVR microcontrollers in general.
Microscheme is a subset of Scheme, in the sense that every valid @code{(ms)}
program is also a valid Scheme program (with the exception of Arduino
hardware-specific primitives). The @code{(ms)} compiler performs function
inlining, and features an aggressive tree-shaker, eliminating unused top-level
definitions. Microscheme has a robust @dfn{Foreign Function Interface} (FFI)
meaning that C code may be invoked directly from (ms) programs.")
(license license:expat)))

View File

@ -1,9 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2014, 2016 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2015, 2017, 2023 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@ -29,18 +27,14 @@
#:use-module (guix memoization) #:use-module (guix memoization)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system trivial) #:use-module (guix build-system trivial)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cross-base) #:use-module (gnu packages cross-base)
#:use-module (gnu packages flashing-tools) #:use-module (gnu packages flashing-tools)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages llvm) #:export (make-avr-libc
#:use-module (gnu packages vim) make-avr-toolchain))
#:export (make-avr-toolchain))
;;; Commentary: ;;; Commentary:
;;; ;;;
@ -84,18 +78,7 @@
(format #t (format #t
"environment variable `CPLUS_INCLUDE_PATH' \ "environment variable `CPLUS_INCLUDE_PATH' \
changed to ~a~%" changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH"))))) (getenv "CPLUS_INCLUDE_PATH")))))))))
;; Without a working multilib build, the resulting GCC lacks
;; support for nearly every AVR chip.
(add-after 'unpack 'fix-genmultilib
(lambda _
;; patch-shebang doesn't work here because there are
;; actually several scripts inside this script, each with
;; a #!/bin/sh that needs patching.
(substitute* "gcc/genmultilib"
(("#!/bin/sh") (string-append "#!" (which "sh"))))))))
((#:configure-flags flags)
#~(delete "--disable-multilib" #$flags))))
(native-search-paths (native-search-paths
(list (search-path-specification (list (search-path-specification
(variable "CROSS_C_INCLUDE_PATH") (variable "CROSS_C_INCLUDE_PATH")
@ -119,7 +102,10 @@ changed to ~a~%"
(define make-avr-gcc (define make-avr-gcc
(memoize make-avr-gcc/implementation)) (memoize make-avr-gcc/implementation))
(define* (make-avr-libc/implementation #:key (xgcc gcc)) (define* (make-avr-libc/implementation #:key
(xbinutils (cross-binutils "avr"))
(xgcc (cross-gcc "avr"
#:xbinutils xbinutils)))
(package (package
(name "avr-libc") (name "avr-libc")
(version "2.0.0") (version "2.0.0")
@ -132,12 +118,15 @@ changed to ~a~%"
"15svr2fx8j6prql2il2fc0ppwlv50rpmyckaxx38d3gxxv97zpdj")))) "15svr2fx8j6prql2il2fc0ppwlv50rpmyckaxx38d3gxxv97zpdj"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:out-of-source? #t '(#:target "avr"
#:configure-flags '("--host=avr"))) #:out-of-source? #t
(native-inputs `(("avr-binutils" ,(make-avr-binutils)) ;; Avoid including itself as this package is a target input and cannot
("avr-gcc" ,(make-avr-gcc #:xgcc xgcc)))) ;; use the normal cross compilation inputs.
#:implicit-cross-inputs? #f))
(native-inputs `(("cross-binutils" ,xbinutils)
("cross-gcc" ,xgcc)))
(home-page "https://www.nongnu.org/avr-libc/") (home-page "https://www.nongnu.org/avr-libc/")
(synopsis "The AVR C Library") (synopsis "AVR C Library")
(description (description
"AVR Libc is a project whose goal is to provide a high quality C library "AVR Libc is a project whose goal is to provide a high quality C library
for use with GCC on Atmel AVR microcontrollers.") for use with GCC on Atmel AVR microcontrollers.")
@ -149,7 +138,7 @@ for use with GCC on Atmel AVR microcontrollers.")
(define* (make-avr-toolchain/implementation #:key (xgcc gcc)) (define* (make-avr-toolchain/implementation #:key (xgcc gcc))
(let ((avr-binutils (make-avr-binutils)) (let ((avr-binutils (make-avr-binutils))
(avr-libc (make-avr-libc #:xgcc xgcc)) (avr-libc (make-avr-libc #:xgcc (cross-gcc "avr" #:xgcc xgcc)))
(avr-gcc (make-avr-gcc #:xgcc xgcc))) (avr-gcc (make-avr-gcc #:xgcc xgcc)))
;; avr-libc checks the compiler version and passes "--enable-device-lib" ;; avr-libc checks the compiler version and passes "--enable-device-lib"
;; for avr-gcc > 5.1.0. It wouldn't install the library for atmega32u4 ;; for avr-gcc > 5.1.0. It wouldn't install the library for atmega32u4
@ -175,40 +164,3 @@ C++.")
(define make-avr-toolchain (define make-avr-toolchain
(memoize make-avr-toolchain/implementation)) (memoize make-avr-toolchain/implementation))
(define-public microscheme
(package
(name "microscheme")
(version "0.9.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ryansuchocki/microscheme")
(commit (string-append "v" version))))
(sha256
(base32 "1bflwirpcd58bngbs6hgjfwxl894ni2gpdd4pj10pm2mjhyj5dgw"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
`(#:parallel-build? #f ; fails to build otherwise
#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(delete 'configure))
#:make-flags
(list (string-append "PREFIX=" (assoc-ref %outputs "out")))))
(native-inputs
(list clang cppcheck unzip xxd))
(home-page "https://github.com/ryansuchocki/microscheme/")
(synopsis "Scheme subset for Atmel microcontrollers")
(description
"Microscheme, or @code{(ms)} for short, is a functional programming
language for the Arduino, and for Atmel 8-bit AVR microcontrollers in general.
Microscheme is a subset of Scheme, in the sense that every valid @code{(ms)}
program is also a valid Scheme program (with the exception of Arduino
hardware-specific primitives). The @code{(ms)} compiler performs function
inlining, and features an aggressive tree-shaker, eliminating unused top-level
definitions. Microscheme has a robust @dfn{Foreign Function Interface} (FFI)
meaning that C code may be invoked directly from (ms) programs.")
(license license:expat)))

View File

@ -644,13 +644,13 @@ detection, and lossless compression.")
(define-public borg (define-public borg
(package (package
(name "borg") (name "borg")
(version "1.2.6") (version "1.2.7")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "borgbackup" version)) (uri (pypi-uri "borgbackup" version))
(sha256 (sha256
(base32 "178klb3pglhhz553frf928v7zvaiqvri9fbhj33yx7h3hvqgi9mp")) (base32 "06j1v4bw9jkjh6m29ns5sigmp0cslcf0cyy8rrqij11w72ijhgzn"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
#~(begin #~(begin
@ -759,7 +759,7 @@ detection, and lossless compression.")
lz4 lz4
openssl openssl
;; This is the latest version of msgpack accepted by 'setup.py'. ;; This is the latest version of msgpack accepted by 'setup.py'.
python-msgpack-1.0.2 python-msgpack
;; FUSE 3 isn't working well, so we stick with FUSE 2 for now: ;; FUSE 3 isn't working well, so we stick with FUSE 2 for now:
;; <https://issues.guix.gnu.org/53407> ;; <https://issues.guix.gnu.org/53407>
python-llfuse python-llfuse

View File

@ -2887,13 +2887,13 @@ mass spectrometry} (MS1) data.")
(define-public r-agimicrorna (define-public r-agimicrorna
(package (package
(name "r-agimicrorna") (name "r-agimicrorna")
(version "2.50.0") (version "2.52.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "AgiMicroRna" version)) (uri (bioconductor-uri "AgiMicroRna" version))
(sha256 (sha256
(base32 (base32
"1gydc2sy0lf2h83dzr60w9k3ipqd8h62q6764xpn31girwx70rdz")))) "0cimi60asz5mmrq2qmnyqq9x5yg14cc67j8135x9zlklblsfyf35"))))
(properties `((upstream-name . "AgiMicroRna"))) (properties `((upstream-name . "AgiMicroRna")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -3300,13 +3300,13 @@ for use in Bioconductors AnnotationHub.")
(define-public r-anvil (define-public r-anvil
(package (package
(name "r-anvil") (name "r-anvil")
(version "1.14.0") (version "1.14.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "AnVIL" version)) (uri (bioconductor-uri "AnVIL" version))
(sha256 (sha256
(base32 (base32
"0syd1m992i2xqw2djw6s07zwwvrzvd0aksix1cbhx9plpswd2245")))) "06n0as71m3dfbnzjfq8f1s0r40w4flc8am7zb0293c1037clmcig"))))
(properties `((upstream-name . "AnVIL"))) (properties `((upstream-name . "AnVIL")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -3862,13 +3862,13 @@ pairs.")
(define-public r-aseb (define-public r-aseb
(package (package
(name "r-aseb") (name "r-aseb")
(version "1.46.0") (version "1.46.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "ASEB" version)) (uri (bioconductor-uri "ASEB" version))
(sha256 (sha256
(base32 (base32
"1hiapxdbp1fg6wk62s31nkv9mkxzvd23hn3zhmf9n0nvqfhi7bdf")))) "1da6ld3ij55l3saj05ink8i1f6gqwyrv896qh8g94dmh6vzn2xbr"))))
(properties `((upstream-name . "ASEB"))) (properties `((upstream-name . "ASEB")))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://bioconductor.org/packages/ASEB") (home-page "https://bioconductor.org/packages/ASEB")
@ -4408,13 +4408,13 @@ usage.")
(define-public r-bandits (define-public r-bandits
(package (package
(name "r-bandits") (name "r-bandits")
(version "1.18.0") (version "1.18.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "BANDITS" version)) (uri (bioconductor-uri "BANDITS" version))
(sha256 (sha256
(base32 (base32
"1xdyi61scfay5l5v7c40wjjl83kcvagvypxnfvsws4avh08x3ni3")))) "0y81m37c5irpaw9pfm5b672wk804n4x1g9g5pfh1dp7pggfwbf1z"))))
(properties `((upstream-name . "BANDITS"))) (properties `((upstream-name . "BANDITS")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -4516,14 +4516,14 @@ retrieval analyses, or similar technologies.")
(define-public r-biocversion (define-public r-biocversion
(package (package
(name "r-biocversion") (name "r-biocversion")
(version "3.18.0") (version "3.18.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "BiocVersion" version)) (uri (bioconductor-uri "BiocVersion" version))
(sha256 (sha256
(base32 (base32
"07zcf19gcbki2d18xgyrdzp3vn90cz2ww45p8ra4lc1mif5gy0c3")))) "15wr651ylbx3am213dsy5kdr1xc8r5c9rfq5ydxzqlmxzjgymj55"))))
(properties `((upstream-name . "BiocVersion"))) (properties `((upstream-name . "BiocVersion")))
(build-system r-build-system) (build-system r-build-system)
(home-page "https://bioconductor.org/packages/BiocVersion/") (home-page "https://bioconductor.org/packages/BiocVersion/")
@ -4628,13 +4628,13 @@ stochastic dropout events as well as systematic allelic imbalance is used.")
(define-public r-cellid (define-public r-cellid
(package (package
(name "r-cellid") (name "r-cellid")
(version "1.10.0") (version "1.10.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "CelliD" version)) (uri (bioconductor-uri "CelliD" version))
(sha256 (sha256
(base32 (base32
"1x4kp8i204rqas2bgg4qanwdncafilymlpvxvfyv39zpdji91yv5")))) "13hwxhdp268h3n8d8wgr75i60apa9mama9bg049yz7c6mj5ixd1v"))))
(properties `((upstream-name . "CelliD"))) (properties `((upstream-name . "CelliD")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -5269,13 +5269,13 @@ bases such as COSMIC.")
(define-public r-degreport (define-public r-degreport
(package (package
(name "r-degreport") (name "r-degreport")
(version "1.38.0") (version "1.38.5")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "DEGreport" version)) (uri (bioconductor-uri "DEGreport" version))
(sha256 (sha256
(base32 (base32
"1ska9fh1bzdqd9pi67vqgx0vz4wz2r5kzmh73fb9zh9m0gnjjr23")) "0s0d40ac1da73w7j96lb20wchgs4c2svfrafsgi9mx5hiswfz25z"))
(snippet (snippet
'(delete-file "docs/jquery.sticky-kit.min.js")))) '(delete-file "docs/jquery.sticky-kit.min.js"))))
(properties `((upstream-name . "DEGreport"))) (properties `((upstream-name . "DEGreport")))
@ -5298,6 +5298,7 @@ bases such as COSMIC.")
r-complexheatmap r-complexheatmap
r-consensusclusterplus r-consensusclusterplus
r-cowplot r-cowplot
r-dendextend
r-deseq2 r-deseq2
r-dplyr r-dplyr
r-edger r-edger
@ -5313,6 +5314,7 @@ bases such as COSMIC.")
r-rlang r-rlang
r-s4vectors r-s4vectors
r-scales r-scales
r-stringi
r-stringr r-stringr
r-summarizedexperiment r-summarizedexperiment
r-tibble r-tibble
@ -5481,19 +5483,18 @@ calculation in parallel.")
(define-public r-dmrcate (define-public r-dmrcate
(package (package
(name "r-dmrcate") (name "r-dmrcate")
(version "2.14.1") (version "2.16.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "DMRcate" version)) (uri (bioconductor-uri "DMRcate" version))
(sha256 (sha256
(base32 (base32
"1va60r297cl6xw5mc4nf9igfizqqzz7i5436x26iw4q35jcwlfjl")))) "19dxpmjjg8v2l71yjjlfj0ycvmhi9rk04q59nwjcp0aw8nvk6l3w"))))
(properties `((upstream-name . "DMRcate"))) (properties `((upstream-name . "DMRcate")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
(list r-biomart (list r-biomart
r-bsseq r-bsseq
r-dss
r-edger r-edger
r-experimenthub r-experimenthub
r-genomeinfodb r-genomeinfodb
@ -5700,14 +5701,14 @@ arbitrary genomic intervals along chromosomal ideogram.")
(define-public r-infercnv (define-public r-infercnv
(package (package
(name "r-infercnv") (name "r-infercnv")
(version "1.18.0") (version "1.18.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "infercnv" version)) (uri (bioconductor-uri "infercnv" version))
(sha256 (sha256
(base32 (base32
"1yxg04644yqy3wbqbsf4hcvvimkk8z60xizpy4rc48i3hxjm7nbf")))) "1d9in3hs2n91pv498715d3qi82c7xsnm42vnzgfyz096zjghgp7a"))))
(properties `((upstream-name . "infercnv"))) (properties `((upstream-name . "infercnv")))
(build-system r-build-system) (build-system r-build-system)
(inputs (list python)) (inputs (list python))
@ -6197,14 +6198,14 @@ problems in CEL-level data to help evaluate performance of quality metrics.")
(define-public r-affycoretools (define-public r-affycoretools
(package (package
(name "r-affycoretools") (name "r-affycoretools")
(version "1.72.0") (version "1.74.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "affycoretools" version)) (uri (bioconductor-uri "affycoretools" version))
(sha256 (sha256
(base32 (base32
"1h065fhw0n2ga74csyhqbj4qfhkg058pqa684ixcski4rhsd7hcf")))) "0bgv8a7hf8ns472zfryf255zqdikjv08np6k6hkpvyivad25vpwy"))))
(properties `((upstream-name . "affycoretools"))) (properties `((upstream-name . "affycoretools")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -6215,8 +6216,8 @@ problems in CEL-level data to help evaluate performance of quality metrics.")
r-dbi r-dbi
r-edger r-edger
r-gcrma r-gcrma
r-glimma
r-ggplot2 r-ggplot2
r-glimma
r-gostats r-gostats
r-gplots r-gplots
r-hwriter r-hwriter
@ -6318,13 +6319,13 @@ microarrays.")
(define-public r-annotationdbi (define-public r-annotationdbi
(package (package
(name "r-annotationdbi") (name "r-annotationdbi")
(version "1.64.0") (version "1.64.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "AnnotationDbi" version)) (uri (bioconductor-uri "AnnotationDbi" version))
(sha256 (sha256
(base32 (base32
"0nyw3x5ivq969p2w788zi4pp0pwjv5hhpjpl5lyfzhak9ydylgh6")))) "1bdr303a2z03c8vc8q95a4a4a8i956vimia5yik78yddd1ig9gq3"))))
(properties (properties
`((upstream-name . "AnnotationDbi"))) `((upstream-name . "AnnotationDbi")))
(build-system r-build-system) (build-system r-build-system)
@ -6563,13 +6564,13 @@ powerful online queries from gene annotation to database mining.")
(define-public r-biomartr (define-public r-biomartr
(package (package
(name "r-biomartr") (name "r-biomartr")
(version "1.0.6") (version "1.0.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "biomartr" version)) (uri (cran-uri "biomartr" version))
(sha256 (sha256
(base32 (base32
"06wd8s2cssw58xp9d078fc7iycpxryccnclrk3gnh757j1h0vzim")))) "0ic6qbk2xmgrcc0xhxyhjafp1xbf2c5dpbqqrbkprrhynr8mq7cx"))))
(properties `((upstream-name . "biomartr"))) (properties `((upstream-name . "biomartr")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -6793,13 +6794,13 @@ analysis.")
(define-public r-champ (define-public r-champ
(package (package
(name "r-champ") (name "r-champ")
(version "2.30.0") (version "2.32.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "ChAMP" version)) (uri (bioconductor-uri "ChAMP" version))
(sha256 (sha256
(base32 (base32
"1px2pm90lxwh0yn7h1kmmf94flhjs5p4i0iav7ya1xfybyg4w2zc")))) "1gdcdx34bxffd6ch354qx7yjngx3lj9chv5frwjyk56jq12vjjk7"))))
(properties `((upstream-name . "ChAMP"))) (properties `((upstream-name . "ChAMP")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -7323,13 +7324,13 @@ global-scaling and full-quantile normalization.")
(define-public r-edger (define-public r-edger
(package (package
(name "r-edger") (name "r-edger")
(version "4.0.1") (version "4.0.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "edgeR" version)) (uri (bioconductor-uri "edgeR" version))
(sha256 (sha256
(base32 (base32
"0vjydwjazl7br0hvshy7jip3z6w73bif9vaky20im5rv40pqnchh")))) "0sz46pwa1bsqrff2igswfhhj1fcwzn34zrlawy4fnb58z48kccb0"))))
(properties `((upstream-name . "edgeR"))) (properties `((upstream-name . "edgeR")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -7610,13 +7611,13 @@ genomic intervals. In addition, it can use BAM or BigWig files as input.")
(define-public r-genomeinfodb (define-public r-genomeinfodb
(package (package
(name "r-genomeinfodb") (name "r-genomeinfodb")
(version "1.38.0") (version "1.38.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "GenomeInfoDb" version)) (uri (bioconductor-uri "GenomeInfoDb" version))
(sha256 (sha256
(base32 (base32
"1a82xx1ijmfxk6d4pjqy45cdrnf75yrs7l7l64brl5d5dif45s42")))) "07xncxak8yjy04m7zh779jfjbsdmdbk8a5xs4rbajx4zp3hm4wb7"))))
(properties (properties
`((upstream-name . "GenomeInfoDb"))) `((upstream-name . "GenomeInfoDb")))
(build-system r-build-system) (build-system r-build-system)
@ -8288,7 +8289,6 @@ methylation data at the genome scale.")
microarray data, using nearest neighbor averaging.") microarray data, using nearest neighbor averaging.")
(license license:gpl2+))) (license license:gpl2+)))
;; TODO: check javascript
(define-public r-interactivedisplay (define-public r-interactivedisplay
(package (package
(name "r-interactivedisplay") (name "r-interactivedisplay")
@ -8301,40 +8301,50 @@ microarray data, using nearest neighbor averaging.")
"0w81c5kc48gjavln50ysgr3vaf8s4fb6632ckzb1q225j9ik2gia")) "0w81c5kc48gjavln50ysgr3vaf8s4fb6632ckzb1q225j9ik2gia"))
(snippet (snippet
'(for-each delete-file '(for-each delete-file
'("inst/www/js/jquery.js" '("inst/www/js/d3.v2.js"
"inst/www/js/jquery.js"
"inst/www/js/jquery.min.js" "inst/www/js/jquery.min.js"
"inst/www/js/jquery.dataTables.min.js"))))) "inst/www/js/jquery.dataTables.min.js"
"inst/www/js/jquery.dataTables.nightly.js")))))
(properties `((upstream-name . "interactiveDisplay"))) (properties `((upstream-name . "interactiveDisplay")))
(build-system r-build-system) (build-system r-build-system)
(arguments (arguments
(list (list
#:modules '((guix build utils) #:modules
(guix build r-build-system) '((guix build r-build-system)
(srfi srfi-1)) (guix build minify-build-system)
(guix build utils)
(ice-9 match))
#:imported-modules
`(,@%r-build-system-modules
(guix build minify-build-system))
#:phases #:phases
'(modify-phases %standard-phases #~(modify-phases (@ (guix build r-build-system) %standard-phases)
(add-after 'unpack 'process-javascript (add-after 'unpack 'process-javascript
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(call-with-values (with-directory-excursion "inst/"
(lambda () (for-each (match-lambda
(unzip2 ((source . target)
`((,(assoc-ref inputs "js-jquery-1.8.2") (minify source #:target target)))
"inst/www/js/jquery.js") `((,(assoc-ref inputs "js-jquery-1.8.2")
(,(assoc-ref inputs "js-jquery-1.9.1") . "www/js/jquery.js")
"inst/www/js/jquery.min.js") (,(assoc-ref inputs "js-jquery-1.9.1")
(,(search-input-file inputs . "www/js/jquery.min.js")
"/share/javascript/jquery.dataTables.min.js") (,(search-input-file inputs
"inst/www/js/jquery.dataTables.min.js")))) "/share/javascript/jquery.dataTables.min.js")
(lambda (sources targets) . "www/js/jquery.dataTables.min.js")
(for-each (lambda (source target) (,(string-append (assoc-ref inputs "js-datatables-1.9")
(format #true "Processing ~a --> ~a~%" "/share/javascript/jquery.dataTables.min.js")
source target) . "www/js/jquery.dataTables.min.js")
(invoke "esbuild" source "--minify" (,(string-append (assoc-ref inputs "js-datatables-1.10")
(string-append "--outfile=" target))) "/share/javascript/jquery.dataTables.min.js")
sources targets)))))))) . "www/js/jquery.dataTables.nightly.js")
(,(assoc-ref inputs "js-d3-v2")
. "www/js/d3.v2.js")))))))))
(propagated-inputs (propagated-inputs
(list r-annotationdbi (list r-annotationdbi
r-biocgenerics r-biocgenerics
r-biocmanager ;this is not listed in DESCRIPTION
r-category r-category
r-ggplot2 r-ggplot2
r-gridsvg r-gridsvg
@ -8347,7 +8357,15 @@ microarray data, using nearest neighbor averaging.")
(native-inputs (native-inputs
`(("esbuild" ,esbuild) `(("esbuild" ,esbuild)
("r-knitr" ,r-knitr) ("r-knitr" ,r-knitr)
("js-datatables" ,js-datatables) ("js-d3-v2"
,(origin
(method url-fetch)
(uri "https://web.archive.org/web/20230428092426id_/https://d3js.org/d3.v2.js")
(sha256
(base32
"1m57mxhcynfaz6gz3v0aph5i6hx5jf455jdygyl8yzs9r2dpp5vr"))))
("js-datatables-1.9" ,js-datatables-1.9)
("js-datatables-1.10" ,js-datatables)
("js-jquery-1.8.2" ("js-jquery-1.8.2"
,(origin ,(origin
(method url-fetch) (method url-fetch)
@ -9102,14 +9120,14 @@ package TeXshade.")
(define-public r-msnbase (define-public r-msnbase
(package (package
(name "r-msnbase") (name "r-msnbase")
(version "2.28.0") (version "2.28.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "MSnbase" version)) (uri (bioconductor-uri "MSnbase" version))
(sha256 (sha256
(base32 (base32
"0dway94j3k2dq5p8lqzj49ql85xrxxxgmlgppqg0h8k56xqrmf5i")))) "1622mmm5n8yl4qjq8bda7689qdfz1rhyxyh8s3q5475al1d0mpsl"))))
(properties `((upstream-name . "MSnbase"))) (properties `((upstream-name . "MSnbase")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -9592,6 +9610,34 @@ package contains functions for combining the results of multiple runs of gene
set analyses.") set analyses.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public r-polyester
(package
(name "r-polyester")
(version "1.38.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "polyester" version))
(sha256
(base32 "1iycdxj0jhh2faclfzflp2cjc2zmxmhy03avv75h0qg3j5kf35l4"))))
(properties `((upstream-name . "polyester")))
(build-system r-build-system)
(propagated-inputs
(list r-biostrings
r-iranges
r-limma
r-logspline
r-s4vectors
r-zlibbioc))
(native-inputs (list r-knitr))
(home-page "https://bioconductor.org/packages/polyester")
(synopsis "Simulate RNA-seq reads")
(description
"The polyester package simulates RNA-seq reads from differential expression
experiments with replicates. The reads can then be aligned and used to perform
comparisons of methods for differential expression.")
(license license:artistic2.0)))
(define-public r-powertcr (define-public r-powertcr
(package (package
(name "r-powertcr") (name "r-powertcr")
@ -9792,18 +9838,16 @@ region sets and other genomic features.")
(define-public r-reportingtools (define-public r-reportingtools
(package (package
(name "r-reportingtools") (name "r-reportingtools")
(version "2.39.0") (version "2.42.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "ReportingTools" version)) (uri (bioconductor-uri "ReportingTools" version))
(sha256 (sha256
(base32 (base32
"15h7vqdxfv7y0f82ff7a8brqnscs324x22izlkgjk2wqahnmr2l1")) "109vmrdsjdjnfrlcdyadzbwz9a50hqaahf7dawwxkbbh4mmdih78"))
(snippet (snippet
'(for-each delete-file '(delete-file "inst/extdata/jslib/jquery-1.8.0.min.js"))))
(list "inst/doc/jslib/jquery-1.8.0.min.js"
"inst/extdata/jslib/jquery-1.8.0.min.js")))))
(properties (properties
`((upstream-name . "ReportingTools"))) `((upstream-name . "ReportingTools")))
(build-system r-build-system) (build-system r-build-system)
@ -9811,25 +9855,20 @@ region sets and other genomic features.")
(list (list
#:modules '((guix build utils) #:modules '((guix build utils)
(guix build r-build-system) (guix build r-build-system)
(srfi srfi-1)) (guix build minify-build-system)
(ice-9 match))
#:imported-modules
`(,@%r-build-system-modules
(guix build minify-build-system))
#:phases #:phases
'(modify-phases %standard-phases '(modify-phases (@ (guix build r-build-system) %standard-phases)
(add-after 'unpack 'process-javascript (add-after 'unpack 'process-javascript
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(call-with-values (for-each (match-lambda
(lambda () ((source . target)
(unzip2 (minify source #:target target)))
`((,(assoc-ref inputs "_") `((,(assoc-ref inputs "_")
"inst/doc/jslib/jquery-1.8.0.min.js")))) . "inst/extdata/jslib/jquery-1.8.0.min.js"))))))))
(lambda (sources targets)
(for-each (lambda (source target)
(format #true "Processing ~a --> ~a~%"
source target)
(invoke "esbuild" source "--minify"
(string-append "--outfile=" target)))
sources targets)))
(copy-file "inst/doc/jslib/jquery-1.8.0.min.js"
"inst/extdata/jslib/jquery-1.8.0.min.js"))))))
(propagated-inputs (propagated-inputs
(list r-annotate (list r-annotate
r-annotationdbi r-annotationdbi
@ -9851,7 +9890,7 @@ region sets and other genomic features.")
r-r-utils r-r-utils
r-xml)) r-xml))
(native-inputs (native-inputs
(list esbuild r-knitr (list esbuild r-rmarkdown
(origin (origin
(method url-fetch) (method url-fetch)
(uri "https://code.jquery.com/jquery-1.8.0.js") (uri "https://code.jquery.com/jquery-1.8.0.js")
@ -9875,13 +9914,13 @@ browser.")
(define-public r-rhdf5 (define-public r-rhdf5
(package (package
(name "r-rhdf5") (name "r-rhdf5")
(version "2.46.0") (version "2.46.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "rhdf5" version)) (uri (bioconductor-uri "rhdf5" version))
(sha256 (sha256
(base32 (base32
"1csf5nrg2nkdwh8cz26idz6wrhj7bgnfh559mzlpdj4licnf1ymc")))) "0yfy0y9ywzbbdmvvraxmizv3w2x1iznhfys6hhwyi644pxh4k3xn"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
(list r-rhdf5filters r-rhdf5lib r-s4vectors)) (list r-rhdf5filters r-rhdf5lib r-s4vectors))
@ -9902,14 +9941,14 @@ the available RAM.")
(define-public r-rhdf5filters (define-public r-rhdf5filters
(package (package
(name "r-rhdf5filters") (name "r-rhdf5filters")
(version "1.14.0") (version "1.14.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "rhdf5filters" version)) (uri (bioconductor-uri "rhdf5filters" version))
(sha256 (sha256
(base32 (base32
"1appjnggyljrn77nvv9adkwxplbrrlgkrrd1bf2b5r0nsa505hdc")))) "0cqf7k19k4m4swd2c1wd9cyzw9k90s3d3jq0hijjwvza50nn2dk6"))))
(properties `((upstream-name . "rhdf5filters"))) (properties `((upstream-name . "rhdf5filters")))
(build-system r-build-system) (build-system r-build-system)
(arguments (arguments
@ -10699,13 +10738,13 @@ level.")
(define-public r-tcgautils (define-public r-tcgautils
(package (package
(name "r-tcgautils") (name "r-tcgautils")
(version "1.22.0") (version "1.22.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "TCGAutils" version)) (uri (bioconductor-uri "TCGAutils" version))
(sha256 (sha256
(base32 (base32
"0r79iiqv7q83wz5w3lm271dn3jdrkggmvjdyj1wnjsih1n2viy7d")))) "16pcz52ynx0syb5bcnkywllqxcfp7jipqgzgjr7q70k1z13ah7a3"))))
(properties `((upstream-name . "TCGAutils"))) (properties `((upstream-name . "TCGAutils")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (list r-annotationdbi (propagated-inputs (list r-annotationdbi
@ -10758,13 +10797,13 @@ identifier translation via the GDC API.")
(define-public r-trackviewer (define-public r-trackviewer
(package (package
(name "r-trackviewer") (name "r-trackviewer")
(version "1.38.0") (version "1.38.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "trackViewer" version)) (uri (bioconductor-uri "trackViewer" version))
(sha256 (sha256
(base32 (base32
"15agkyqx6gl5zzdxra5nl0czd4j7mw456r587w039l9hzwznwbr8")) "008d1wg8882iq7jfmwijpchxrfva5ysl45ama62iy8s9dm0fpwsj"))
(snippet (snippet
'(delete-file "inst/htmlwidgets/lib/d3/d3.v4.min.js")))) '(delete-file "inst/htmlwidgets/lib/d3/d3.v4.min.js"))))
(properties `((upstream-name . "trackViewer"))) (properties `((upstream-name . "trackViewer")))
@ -11354,13 +11393,13 @@ R, enabling interactive analysis and visualization of genome-scale data.")
(define-public r-variantannotation (define-public r-variantannotation
(package (package
(name "r-variantannotation") (name "r-variantannotation")
(version "1.48.0") (version "1.48.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "VariantAnnotation" version)) (uri (bioconductor-uri "VariantAnnotation" version))
(sha256 (sha256
(base32 (base32
"1r1cyimr5l5jzgxvmrm3vq8mvz3f1klfdwy9mz31xvnvgjacr58p")))) "0l9xkrvsrc3m65kdjcyir6jkpa718g7idziwr0pp5yaj84bd3xia"))))
(properties (properties
`((upstream-name . "VariantAnnotation"))) `((upstream-name . "VariantAnnotation")))
(build-system r-build-system) (build-system r-build-system)
@ -11578,13 +11617,13 @@ libraries for systems that do not have these available via other means.")
(define-public r-zellkonverter (define-public r-zellkonverter
(package (package
(name "r-zellkonverter") (name "r-zellkonverter")
(version "1.12.0") (version "1.12.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "zellkonverter" version)) (uri (bioconductor-uri "zellkonverter" version))
(sha256 (sha256
(base32 "02q9icblcnh0l7vah29mnhcczw8w0gpgd57v19gy7222nrqpcd9m")))) (base32 "029bqn25c90algvgacxbv0fdznpg879xjwfj5hiydfwq30y0kr8r"))))
(properties `((upstream-name . "zellkonverter"))) (properties `((upstream-name . "zellkonverter")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -14561,13 +14600,13 @@ and Infinium HD arrays are also included.")
(define-public r-lefser (define-public r-lefser
(package (package
(name "r-lefser") (name "r-lefser")
(version "1.11.5") (version "1.12.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "lefser" version)) (uri (bioconductor-uri "lefser" version))
(sha256 (sha256
(base32 (base32
"1fnccnjllgxf51dlmcvv0r66xs0wvfxrj66qrqisqd99hrpxhws2")))) "0aywwinp4wwwa12rq60gpfk5gn28zyimayxakgj4lhfwjk0byz8m"))))
(properties `((upstream-name . "lefser"))) (properties `((upstream-name . "lefser")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -15074,14 +15113,14 @@ to multiple hypothesis correction.")
(define-public r-dose (define-public r-dose
(package (package
(name "r-dose") (name "r-dose")
(version "3.28.0") (version "3.28.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "DOSE" version)) (uri (bioconductor-uri "DOSE" version))
(sha256 (sha256
(base32 (base32
"1xirazskw2d0fllyf27jvsm69amcil1znx81m9d613vl03dpwswy")))) "0kk4l8cxyvcq4cjjnb59zajf4ci0igml13582qqn8123cqkbf8pf"))))
(properties `((upstream-name . "DOSE"))) (properties `((upstream-name . "DOSE")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -15091,10 +15130,9 @@ to multiple hypothesis correction.")
r-ggplot2 r-ggplot2
r-gosemsim r-gosemsim
r-hdo-db r-hdo-db
r-hpo-db
r-mpo-db
r-qvalue r-qvalue
r-reshape2)) r-reshape2
r-yulab-utils))
(native-inputs (native-inputs
(list r-knitr)) (list r-knitr))
(home-page "https://guangchuangyu.github.io/software/DOSE/") (home-page "https://guangchuangyu.github.io/software/DOSE/")
@ -15783,14 +15821,14 @@ type and symbol colors.")
(define-public r-genomicscores (define-public r-genomicscores
(package (package
(name "r-genomicscores") (name "r-genomicscores")
(version "2.14.1") (version "2.14.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "GenomicScores" version)) (uri (bioconductor-uri "GenomicScores" version))
(sha256 (sha256
(base32 (base32
"1plpmi1sb9vv03480njf3awnc7i19f9iaxi3j6bvjzpi6zmw40dq")))) "1wjq6lb2x7vazlr838hlh1ar5pis2bgzya9lm8ki30d1m0hpk66k"))))
(properties `((upstream-name . "GenomicScores"))) (properties `((upstream-name . "GenomicScores")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -16512,14 +16550,14 @@ based on @dfn{Continuous Wavelet Transform} (CWT).")
(define-public r-xcms (define-public r-xcms
(package (package
(name "r-xcms") (name "r-xcms")
(version "4.0.0") (version "4.0.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "xcms" version)) (uri (bioconductor-uri "xcms" version))
(sha256 (sha256
(base32 (base32
"10bvxww489mb4bl5v9ma6klyg359zb9ady5rl95q1mkp54hahdw8")))) "061ihzj8pn2g393q1gdq2jssanxm9gh5qm37fz4gna2hbd6bf79p"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
(list r-biobase (list r-biobase
@ -17719,14 +17757,14 @@ for other R packages to compile and link against.")
(define-public r-flowworkspace (define-public r-flowworkspace
(package (package
(name "r-flowworkspace") (name "r-flowworkspace")
(version "4.14.0") (version "4.14.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "flowWorkspace" version)) (uri (bioconductor-uri "flowWorkspace" version))
(sha256 (sha256
(base32 (base32
"09cpbf33b3x9b06yf41qy2fy8zviwrznrpkb9fq3an8vg8gf51lp")))) "0sbixbq99kmhh0ppdid1hqhb75yxb6gsm5pdz75y67i3pgwrv1sj"))))
(properties `((upstream-name . "flowWorkspace"))) (properties `((upstream-name . "flowWorkspace")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -18700,14 +18738,14 @@ populations, splice site strength, conservation, etc.")
(define-public r-variancepartition (define-public r-variancepartition
(package (package
(name "r-variancepartition") (name "r-variancepartition")
(version "1.32.1") (version "1.32.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "variancePartition" version)) (uri (bioconductor-uri "variancePartition" version))
(sha256 (sha256
(base32 (base32
"1pr321hv5q2sl8lc998hkwdl2mfyzcgf2l70ny2m3hfmlclq5lnn")))) "0cmcg39a5939y517vhvwanqh1fwzyx6pbq47nc5cpswf7pn9cv5x"))))
(properties (properties
`((upstream-name . "variancePartition"))) `((upstream-name . "variancePartition")))
(build-system r-build-system) (build-system r-build-system)
@ -18725,6 +18763,7 @@ populations, splice site strength, conservation, etc.")
r-lmertest r-lmertest
r-mass r-mass
r-matrix r-matrix
r-matrixstats
r-pbkrtest r-pbkrtest
r-rdpack r-rdpack
r-remacor r-remacor
@ -18778,13 +18817,13 @@ features (e.g. genes, microRNAs).")
(define-public r-ucell (define-public r-ucell
(package (package
(name "r-ucell") (name "r-ucell")
(version "2.6.1") (version "2.6.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "UCell" version)) (uri (bioconductor-uri "UCell" version))
(sha256 (sha256
(base32 (base32
"1ds11f1q6v89sfcj1sinrkv7aw3s0prf5nxf7pz4hdsvqn4zp467")))) "00v4b91f7y3zyndbl4wlfay8wljnqypfc05vrw15yr62d9smd35d"))))
(properties `((upstream-name . "UCell"))) (properties `((upstream-name . "UCell")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (list r-biocneighbors (propagated-inputs (list r-biocneighbors
@ -20367,14 +20406,14 @@ plot them, and perform logrank or Wilcoxon type tests.")
(define-public r-fhtest (define-public r-fhtest
(package (package
(name "r-fhtest") (name "r-fhtest")
(version "1.5") (version "1.5.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "FHtest" version)) (uri (cran-uri "FHtest" version))
(sha256 (sha256
(base32 (base32
"00mql2r4f5hxhdqf27q3x9s5rz2zzakx2myym97b1w1s7c5znl4q")))) "0x7lr88w0b09ng7nps490kgj8aqdjzmp9skv9iwqgn871pnpydms"))))
(properties `((upstream-name . "FHtest"))) (properties `((upstream-name . "FHtest")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -20499,13 +20538,13 @@ array-like semantic. It also provides:
(define-public r-s4vectors (define-public r-s4vectors
(package (package
(name "r-s4vectors") (name "r-s4vectors")
(version "0.40.1") (version "0.40.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "S4Vectors" version)) (uri (bioconductor-uri "S4Vectors" version))
(sha256 (sha256
(base32 (base32
"0pja00ssl1pd16v3bls3aybml2cwanylx8igf596zha5srcf5l5h")))) "10lryil0psfyal0006rbhj0dbxyn8f7mpp11h758zc217cxsdnac"))))
(properties (properties
`((upstream-name . "S4Vectors"))) `((upstream-name . "S4Vectors")))
(build-system r-build-system) (build-system r-build-system)
@ -20529,14 +20568,14 @@ S4Vectors package itself.")
(define-public r-wgcna (define-public r-wgcna
(package (package
(name "r-wgcna") (name "r-wgcna")
(version "1.72-1") (version "1.72-5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "WGCNA" version)) (uri (cran-uri "WGCNA" version))
(sha256 (sha256
(base32 (base32
"1p3zsl5r6l5r6ylnrxmbxjpim5qgmncgdjcgn5j69rzk3rv85gqx")))) "17g7lan1rpy6y4nmqksrf9ddp3gs58vdczfavgq1fp13zx1r2hq3"))))
(properties `((upstream-name . "WGCNA"))) (properties `((upstream-name . "WGCNA")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -20548,10 +20587,10 @@ S4Vectors package itself.")
r-go-db r-go-db
r-hmisc r-hmisc
r-impute r-impute
r-rcpp
r-survival
r-matrixstats r-matrixstats
r-preprocesscore)) r-preprocesscore
r-rcpp
r-survival))
(home-page (home-page
"http://www.genetics.ucla.edu/labs/horvath/CoexpressionNetwork/Rpackages/WGCNA/") "http://www.genetics.ucla.edu/labs/horvath/CoexpressionNetwork/Rpackages/WGCNA/")
(synopsis "Weighted correlation network analysis") (synopsis "Weighted correlation network analysis")
@ -20726,14 +20765,14 @@ block processing.")
(define-public r-rhdf5lib (define-public r-rhdf5lib
(package (package
(name "r-rhdf5lib") (name "r-rhdf5lib")
(version "1.24.0") (version "1.24.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "Rhdf5lib" version)) (uri (bioconductor-uri "Rhdf5lib" version))
(sha256 (sha256
(base32 (base32
"10n2grfdnri686sx52shz7y0csmcz4cky23k07803dz6qm1ljvmf")) "0lb5dkzfnfvxwrk8s9vzfjp8ab1sbr7b22jnzg41hgmpysi7dswh"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -20794,10 +20833,11 @@ block processing.")
(("cp \"\\$\\{SZIP_LIB\\}.*") "") (("cp \"\\$\\{SZIP_LIB\\}.*") "")
(("PKG_LIBS =.*") "PKG_LIBS = -lz -lhdf5\n")))))))) (("PKG_LIBS =.*") "PKG_LIBS = -lz -lhdf5\n"))))))))
(propagated-inputs (propagated-inputs
(list hdf5-1.10 zlib)) (list hdf5-1.10 r-biocstyle r-stringr zlib))
(native-inputs (native-inputs
`(("hdf5-source" ,(package-source hdf5-1.10)) `(("hdf5-source" ,(package-source hdf5-1.10))
("r-knitr" ,r-knitr))) ("r-knitr" ,r-knitr)
("r-rmarkdown" ,r-rmarkdown)))
(home-page "https://bioconductor.org/packages/Rhdf5lib") (home-page "https://bioconductor.org/packages/Rhdf5lib")
(synopsis "HDF5 library as an R package") (synopsis "HDF5 library as an R package")
(description "This package provides C and C++ HDF5 libraries for use in R (description "This package provides C and C++ HDF5 libraries for use in R
@ -21205,13 +21245,13 @@ of other packages.")
(define-public r-scater (define-public r-scater
(package (package
(name "r-scater") (name "r-scater")
(version "1.30.0") (version "1.30.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "scater" version)) (uri (bioconductor-uri "scater" version))
(sha256 (sha256
(base32 (base32
"0a8wfrcp09z0aflalqhhwvz675aa32wgprqphk1axvdppknsg7vf")))) "06a4nxxsgmi435m06ir401w4fbrh0xdgh6mkv3i7vw001yrbrfcx"))))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
(list r-beachmat (list r-beachmat
@ -21292,13 +21332,13 @@ variable and significantly correlated genes.")
(define-public r-sparsearray (define-public r-sparsearray
(package (package
(name "r-sparsearray") (name "r-sparsearray")
(version "1.2.0") (version "1.2.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "SparseArray" version)) (uri (bioconductor-uri "SparseArray" version))
(sha256 (sha256
(base32 "0a1xg8vkjybgdr09bk2z4i82m06qnw2nhbzviyijadxiwvz6pgsz")))) (base32 "1kjs3v2ycpcc0plr88af1661ngmclmalkiy6am7i4m75cpa3889p"))))
(properties `((upstream-name . "SparseArray"))) (properties `((upstream-name . "SparseArray")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (list r-biocgenerics (propagated-inputs (list r-biocgenerics
@ -21420,14 +21460,14 @@ memory usage and processing time is minimized.")
(define-public r-mscoreutils (define-public r-mscoreutils
(package (package
(name "r-mscoreutils") (name "r-mscoreutils")
(version "1.14.0") (version "1.14.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "MsCoreUtils" version)) (uri (bioconductor-uri "MsCoreUtils" version))
(sha256 (sha256
(base32 (base32
"0faj4fxfsv7ir935sn9zainhk55vdfi6abgr0s321kwmvs6prc0p")))) "0l6rdkpg89pds3n5y4khvaifgbvm38n0vlpi15h97rnk8x461rsz"))))
(properties `((upstream-name . "MsCoreUtils"))) (properties `((upstream-name . "MsCoreUtils")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -21834,14 +21874,14 @@ family of feature/genome hypotheses.")
(define-public r-gviz (define-public r-gviz
(package (package
(name "r-gviz") (name "r-gviz")
(version "1.46.0") (version "1.46.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "Gviz" version)) (uri (bioconductor-uri "Gviz" version))
(sha256 (sha256
(base32 (base32
"0b707xxi0ch4kfxid5id16gkh9pnqwrgqpsvgbm0rc89kg73g4jz")))) "0an8hd2g2hp3p1vfsmxq77fm71xlf5g73j4w5mcy28x1aj073zxf"))))
(properties `((upstream-name . "Gviz"))) (properties `((upstream-name . "Gviz")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -22029,14 +22069,14 @@ on the plot.")
(define-public r-abn (define-public r-abn
(package (package
(name "r-abn") (name "r-abn")
(version "3.0.3") (version "3.0.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (cran-uri "abn" version)) (uri (cran-uri "abn" version))
(sha256 (sha256
(base32 (base32
"1yh9nhfphalxh77132r0fkpp71mqsfhb8jk11is4d5nvlvr5316z")))) "1qqsm6ldbf6rnzvspcnv87l4mkxccg4divzf6nj7j92jnhyadqia"))))
(build-system r-build-system) (build-system r-build-system)
(inputs (inputs
(list gsl)) (list gsl))
@ -22710,14 +22750,14 @@ input.")
(define-public r-basilisk-utils (define-public r-basilisk-utils
(package (package
(name "r-basilisk-utils") (name "r-basilisk-utils")
(version "1.14.0") (version "1.14.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "basilisk.utils" version)) (uri (bioconductor-uri "basilisk.utils" version))
(sha256 (sha256
(base32 (base32
"08wsn2znw56svyv5vpxxzcynz93h5hzw1n2r6hb9h3rvc7afyvxl")))) "19m4h90rkk6mizllkih2xmxag8nb45qss3vydkkyj62s5zjhfh27"))))
(properties (properties
`((upstream-name . "basilisk.utils"))) `((upstream-name . "basilisk.utils")))
(build-system r-build-system) (build-system r-build-system)
@ -22734,14 +22774,14 @@ package, primarily for creation of the underlying Conda instance.")
(define-public r-basilisk (define-public r-basilisk
(package (package
(name "r-basilisk") (name "r-basilisk")
(version "1.14.0") (version "1.14.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "basilisk" version)) (uri (bioconductor-uri "basilisk" version))
(sha256 (sha256
(base32 (base32
"1z482gw04psvkgspclmxlkd9qi7srgbnr56ajngcng28sc6zqdhs")))) "1v67z53y2nnss6l6nk7f557kn0d5syg9n0zdgddpsz26rwdmp8ai"))))
(properties `((upstream-name . "basilisk"))) (properties `((upstream-name . "basilisk")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
@ -23101,14 +23141,14 @@ design.")
(define-public r-biomvrcns (define-public r-biomvrcns
(package (package
(name "r-biomvrcns") (name "r-biomvrcns")
(version "1.38.0") (version "1.42.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "biomvRCNS" version)) (uri (bioconductor-uri "biomvRCNS" version))
(sha256 (sha256
(base32 (base32
"0n026b744ah5kcnipsyiqqs7vlz5n5im1kgv35i2pgxyzvf7a8sn")))) "1imni8lpjzf53w2q34ql0j9rwq6drbzxvs0nhzf6s172iqym2hq3"))))
(properties `((upstream-name . "biomvRCNS"))) (properties `((upstream-name . "biomvRCNS")))
(build-system r-build-system) (build-system r-build-system)
(arguments (arguments
@ -23724,14 +23764,14 @@ embeddings and functions to build new reference.")
(define-public r-tximeta (define-public r-tximeta
(package (package
(name "r-tximeta") (name "r-tximeta")
(version "1.20.0") (version "1.20.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "tximeta" version)) (uri (bioconductor-uri "tximeta" version))
(sha256 (sha256
(base32 (base32
"0wn7r1dzckiq3zacvcv2w780fj9bvz1vbyzcazv2qvsicbwc4vd8")))) "00wygiv6k75bx5qs27qlq9l6ajv9gl2bbyqi2gv6jaaaj167q4sd"))))
(properties `((upstream-name . "tximeta"))) (properties `((upstream-name . "tximeta")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs

View File

@ -1070,11 +1070,11 @@ similar.")
(license license:gpl2+)))) (license license:gpl2+))))
(define-public r-stringendo (define-public r-stringendo
(let ((commit "83b8f2d82a09b33b9e895438bb523a021138be01") (let ((commit "15594b1bba11048a812874bafec0eea1dcc8618a")
(revision "1")) (revision "1"))
(package (package
(name "r-stringendo") (name "r-stringendo")
(version (git-version "0.3.4" revision commit)) (version (git-version "0.6.0" revision commit))
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -1083,10 +1083,10 @@ similar.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1ap0nhbyd6xx0yl2vgmwk38p22yrkv4k9hw13r35z4wf343rry6v")))) "15ij4zf2j9c8m9n4bqhmxkchjh2bhddwjfxngfpwv7c5wjqyi6ir"))))
(properties `((upstream-name . "Stringendo"))) (properties `((upstream-name . "Stringendo")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (list r-devtools r-usethis)) (propagated-inputs (list r-clipr))
(home-page "https://github.com/vertesy/Stringendo") (home-page "https://github.com/vertesy/Stringendo")
(synopsis "Stringendo is a string parsing library") (synopsis "Stringendo is a string parsing library")
(description (description
@ -1095,11 +1095,11 @@ plotnames, filenames and paths.")
(license license:gpl3)))) (license license:gpl3))))
(define-public r-readwriter (define-public r-readwriter
(let ((commit "12d32cb6533ef4b9eab4d707d1502525c2034aee") (let ((commit "91373c44641014a1ce8e1c3e928747608aae8f54")
(revision "1")) (revision "1"))
(package (package
(name "r-readwriter") (name "r-readwriter")
(version (git-version "0.3.2" revision commit)) (version (git-version "1.5.3" revision commit))
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -1108,11 +1108,11 @@ plotnames, filenames and paths.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1hy47g8d7zppr2i9zlkwl2yb0ii8x710hqk07h089ldx9171qxab")))) "156kvmplrip0w1zhs9yl5r0ayjipa0blhy614l65hbsjn1lwbskr"))))
(properties `((upstream-name . "ReadWriter"))) (properties `((upstream-name . "ReadWriter")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
(list r-gdata r-gtools r-openxlsx r-readr r-stringendo)) (list r-gtools r-openxlsx r-readr r-stringendo))
(home-page "https://github.com/vertesy/ReadWriter") (home-page "https://github.com/vertesy/ReadWriter")
(synopsis "Functions to read and write files conveniently") (synopsis "Functions to read and write files conveniently")
(description (description
@ -15349,7 +15349,9 @@ activity prediction from transcriptomics data, and its R implementation
(add-after 'unpack 'set-HOME (add-after 'unpack 'set-HOME
(lambda _ (setenv "HOME" "/tmp")))))) (lambda _ (setenv "HOME" "/tmp"))))))
(propagated-inputs (propagated-inputs
(list r-complexheatmap (list r-basilisk
r-basilisk-utils
r-complexheatmap
r-dplyr r-dplyr
r-ggplot2 r-ggplot2
r-magrittr r-magrittr
@ -17988,7 +17990,7 @@ updated much more frequently.")
(define-public python-ctxcore (define-public python-ctxcore
(package (package
(name "python-ctxcore") (name "python-ctxcore")
(version "0.1.1") (version "0.2.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -17998,8 +18000,8 @@ updated much more frequently.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"16nlj7z8pirgjad7vlgm7226b3hpw4a7n967vyfg26dsf5n8k70d")))) "0nv4lc46cnzpg5gcdxrsv7b4srmkq55zl3rcadw5pn3yyz5fzd2k"))))
(build-system python-build-system) (build-system pyproject-build-system)
(arguments (arguments
(list (list
#:phases #:phases
@ -18011,12 +18013,12 @@ updated much more frequently.")
(setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)))))) (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version))))))
(propagated-inputs (propagated-inputs
(list python-cytoolz (list python-cytoolz
python-numba
python-frozendict python-frozendict
python-numba
python-numpy python-numpy
python-pandas python-pandas
python-pyarrow
python-pyyaml python-pyyaml
python-pyarrow-0.16
python-tqdm)) python-tqdm))
(native-inputs (native-inputs
(list python-pytest (list python-pytest
@ -18064,67 +18066,77 @@ tree-based ensemble regressors.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public pyscenic (define-public pyscenic
(package ;; Latest commit from the update-pyarrow branch
(name "pyscenic") (let ((commit "5f170fdf474548c37ab381d1849c662820d658ee")
(version "0.11.2") (revision "1"))
(source (package
(origin (name "pyscenic")
(method git-fetch) (version (git-version "0.11.2" revision commit))
(uri (git-reference (source
(url "https://github.com/aertslab/pySCENIC") (origin
(commit version))) (method git-fetch)
(file-name (git-file-name name version)) (uri (git-reference
(sha256 (url "https://github.com/aertslab/pySCENIC")
(base32 (commit commit)))
"0pbmmr1zdb1vbbs6wx357s59d13pna6x03wq8blj6ckjws8bbq73")))) (file-name (git-file-name name version))
(build-system python-build-system) (sha256
(arguments (base32
`(#:phases "03qkvy400rjndg2ds6bhcaprir71mqr2v3yv9vd77lcnzxgw3s0z"))))
(modify-phases %standard-phases (build-system pyproject-build-system)
;; Numba needs a writable dir to cache functions. (arguments
(add-before 'check 'set-numba-cache-dir (list
(lambda _ #:phases
(setenv "NUMBA_CACHE_DIR" "/tmp"))) '(modify-phases %standard-phases
(replace 'check ;; The cli modules referenced here have been removed, so this
(lambda _ ;; breaks the sanity check.
(invoke "pytest" "-v")))))) (add-after 'unpack 'do-not-reference-deleted-modules
(propagated-inputs (lambda _
(list python-ctxcore (substitute* "setup.py"
python-cytoolz (("'db2feather = .*',") "")
python-multiprocessing-on-dill (("'invertdb = .*',") "")
python-llvmlite (("'gmt2regions = pyscenic.cli.gmt2regions:main'") ""))))
python-numba ;; Numba needs a writable dir to cache functions.
python-attrs (add-before 'check 'set-numba-cache-dir
python-frozendict (lambda _
python-numpy (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
python-pandas (propagated-inputs
python-cloudpickle (list python-ctxcore
python-dask python-cytoolz
python-distributed python-multiprocessing-on-dill
python-arboreto python-llvmlite
python-boltons python-numba
python-setuptools python-attrs
python-pyyaml python-frozendict
python-tqdm python-numpy
python-interlap python-pandas
python-umap-learn python-cloudpickle
python-loompy python-dask
python-networkx python-pyarrow ;XXX for dask
python-scipy python-distributed
python-fsspec python-arboreto
python-requests python-boltons
python-aiohttp python-setuptools
python-scikit-learn)) python-pyyaml
(native-inputs python-tqdm
(list python-pytest)) python-interlap
(home-page "https://scenic.aertslab.org/") python-umap-learn
(synopsis "Single-Cell regulatory network inference and clustering") python-loompy
(description python-networkx
"pySCENIC is a Python implementation of the SCENIC pipeline (Single-Cell python-scipy
python-fsspec
python-requests
python-aiohttp
python-scikit-learn))
(native-inputs
(list python-pytest))
(home-page "https://scenic.aertslab.org/")
(synopsis "Single-Cell regulatory network inference and clustering")
(description
"pySCENIC is a Python implementation of the SCENIC pipeline (Single-Cell
rEgulatory Network Inference and Clustering) which enables biologists to infer rEgulatory Network Inference and Clustering) which enables biologists to infer
transcription factors, gene regulatory networks and cell types from transcription factors, gene regulatory networks and cell types from
single-cell RNA-seq data.") single-cell RNA-seq data.")
(license license:gpl3+))) (license license:gpl3+))))
(define-public python-ikarus (define-public python-ikarus
(package (package

View File

@ -488,12 +488,16 @@ and will take advantage of multiple processor cores where possible.")
;; test_fast_extension, test_privacy and test_resolve_links ;; test_fast_extension, test_privacy and test_resolve_links
;; to hang, even with FAKETIME_ONLY_CMDS. Not sure why. So ;; to hang, even with FAKETIME_ONLY_CMDS. Not sure why. So
;; execute only test_ssl under faketime. ;; execute only test_ssl under faketime.
(invoke "faketime" "2022-10-24" ;;
"ctest" ;; Note: The test_ssl test times out in the ci.
"-R" "^test_ssl$" ;; Temporarily disable it until that is resolved.
"-j" jobs ;; (invoke "faketime" "2022-10-24"
"--timeout" timeout ;; "ctest"
"--output-on-failure")))))))) ;; "-R" "^test_ssl$"
;; "-j" jobs
;; "--timeout" timeout
;; "--output-on-failure")
)))))))
(inputs (list boost openssl)) (inputs (list boost openssl))
(native-inputs `(("libfaketime" ,libfaketime) (native-inputs `(("libfaketime" ,libfaketime)
("python-wrapper" ,python-wrapper) ("python-wrapper" ,python-wrapper)

View File

@ -221,3 +221,33 @@ fill and submit login forms if a matching password entry is found.")
(define-public passff/icecat (define-public passff/icecat
(make-icecat-extension passff)) (make-icecat-extension passff))
(define keepassxc-browser
(package
(name "keepassxc-browser")
(version "1.8.10")
(source (origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/keepassxreboot/keepassxc-browser")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1059kcb95ig18izbchwlb7pz41l4l3vjwzlmhz3w8zw2qxm6hrvx"))))
(build-system copy-build-system)
(properties
'((addon-id . "keepassxc-browser@keepassxc.org")))
(arguments
`(#:install-plan
'(("keepassxc-browser" ,(assq-ref properties 'addon-id)))))
(synopsis "Browser extension for the KeePassXC password manager")
(description
"This package provides an extension allow the browser to work together
with the @uref{https://keepassxc.org, KeePassXC} password manager.")
(home-page "https://keepassxc.org")
(license license:gpl3+)))
(define-public keepassxc-browser/icecat
(make-icecat-extension keepassxc-browser))

View File

@ -952,7 +952,7 @@ CD data, and more. It's mostly compatible with @code{cdrtools}.")
(define-public libmirage (define-public libmirage
(package (package
(name "libmirage") (name "libmirage")
(version "3.2.6") (version "3.2.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -960,7 +960,7 @@ CD data, and more. It's mostly compatible with @code{cdrtools}.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"19pjdmxhzl8y3brhg8fsv99b6jg4lfnl8jvcjgm4jmqrr684czr5")))) "1lxkpmad8l2wl0afp26jahzf5cxp10p0zl1a56lcqjwmsy0292gs"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs (native-inputs
(list pkg-config intltool)) (list pkg-config intltool))

View File

@ -466,7 +466,7 @@ and 32-bit PowerPC architectures.")
(package (package
(inherit chez-scheme) (inherit chez-scheme)
(name "chez-scheme-for-racket") (name "chez-scheme-for-racket")
(version "9.9.9-pre-release.17") (version "9.9.9-pre-release.18")
;; The version should match `scheme-version`. ;; The version should match `scheme-version`.
;; See racket/src/ChezScheme/s/cmacros.ss c. line 360. ;; See racket/src/ChezScheme/s/cmacros.ss c. line 360.
;; It will always be different than the upstream version! ;; It will always be different than the upstream version!

View File

@ -33,14 +33,14 @@
(define-public chicken (define-public chicken
(package (package
(name "chicken") (name "chicken")
(version "5.2.0") (version "5.3.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://code.call-cc.org/releases/" (uri (string-append "https://code.call-cc.org/releases/"
version "/chicken-" version ".tar.gz")) version "/chicken-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1yl0hxm9cirgcp8jgxp6vv29lpswfvaw3zfkh6rsj0vkrv44k4c1")))) "0xhdvcdwlv9vbhxh7k0fzd32ybhc7fn83y9fj48dhzp1z7c9kbf3"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:modules ((guix build gnu-build-system) `(#:modules ((guix build gnu-build-system)

File diff suppressed because it is too large Load Diff

View File

@ -13,6 +13,7 @@
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2021 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2021 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -198,6 +199,32 @@ text or blue underlined text, on ANSI terminals.")
"1xif1bh938qpfc3d0f9xgidibpm65xix11w9gszwqnia00q7rb13")))) "1xif1bh938qpfc3d0f9xgidibpm65xix11w9gszwqnia00q7rb13"))))
(arguments `()))) (arguments `())))
(define-public rust-ansiterm-0.12
(package
(name "rust-ansiterm")
(version "0.12.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "ansiterm" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1k14pywvgd829swxzji0nchk4n6yvr9xz6lkwv96v8ax77sqgdaa"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-ansi-colours" ,rust-ansi-colours-1)
("rust-serde" ,rust-serde-1)
("rust-winapi" ,rust-winapi-0.3))
#:cargo-development-inputs (("rust-doc-comment" ,rust-doc-comment-0.3)
("rust-regex" ,rust-regex-1)
("rust-serde-json" ,rust-serde-json-1))))
(home-page "https://github.com/rustadopt/ansiterm-rs")
(synopsis "Library for ANSI terminal colours and styles (bold, underline)")
(description
"This package provides a library for ANSI terminal colours and
styles (bold, underline).")
(license license:expat)))
(define-public rust-aom-sys-0.3 (define-public rust-aom-sys-0.3
(package (package
(name "rust-aom-sys") (name "rust-aom-sys")
@ -1134,7 +1161,9 @@ EUI-64, also known as MAC-48 media access control addresses.")
(base32 (base32
"0lilr4f335m1fq1acmshd51zblfaglw1hha6lhalnc1fw3cg0aag")))) "0lilr4f335m1fq1acmshd51zblfaglw1hha6lhalnc1fw3cg0aag"))))
(arguments (arguments
`(#:cargo-inputs `(#:cargo-test-flags
'("--release" "--lib" "--bins" "--tests")
#:cargo-inputs
(("rust-android-glue" ,rust-android-glue-0.2) (("rust-android-glue" ,rust-android-glue-0.2)
("rust-cgl" ,rust-cgl-0.3) ("rust-cgl" ,rust-cgl-0.3)
("rust-cocoa" ,rust-cocoa-0.19) ("rust-cocoa" ,rust-cocoa-0.19)
@ -1170,7 +1199,9 @@ EUI-64, also known as MAC-48 media access control addresses.")
(base32 (base32
"1ggyyqn7dvz4yx5ygqfvnxwfb78wvdm5y6xqw5my1b4x61dv6wak")))) "1ggyyqn7dvz4yx5ygqfvnxwfb78wvdm5y6xqw5my1b4x61dv6wak"))))
(arguments (arguments
`(#:cargo-inputs `(#:cargo-test-flags
'("--release" "--lib" "--bins" "--tests")
#:cargo-inputs
(("rust-android-glue" ,rust-android-glue-0.2) (("rust-android-glue" ,rust-android-glue-0.2)
("rust-cgl" ,rust-cgl-0.2) ("rust-cgl" ,rust-cgl-0.2)
("rust-cocoa" ,rust-cocoa-0.18) ("rust-cocoa" ,rust-cocoa-0.18)
@ -4025,8 +4056,7 @@ the platform-specific getters provided by winit, or another library.")
(uri (crate-uri "y4m" version)) (uri (crate-uri "y4m" version))
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 "1bhdgb7hgx7j92nm6ij5n8wisp50j8ff66ks14jzwdw2mwhrjam7")))) (base32 "1bhdgb7hgx7j92nm6ij5n8wisp50j8ff66ks14jzwdw2mwhrjam7"))))))
(arguments `(#:skip-build? #t))))
;;; ;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; Avoid adding new packages to the end of this file. To reduce the chances

File diff suppressed because it is too large Load Diff

View File

@ -9,6 +9,7 @@
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz> ;;; Copyright © 2023 Josselin Poiret <dev@jpoiret.xyz>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -27,11 +28,13 @@
(define-module (gnu packages cross-base) (define-module (gnu packages cross-base)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages avr)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages hurd) #:use-module (gnu packages hurd)
#:use-module (gnu packages mingw) #:use-module (gnu packages mingw)
#:use-module (guix memoization)
#:use-module (guix platform) #:use-module (guix platform)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix diagnostics) #:use-module (guix diagnostics)
@ -39,6 +42,7 @@
#:use-module (guix i18n) #:use-module (guix i18n)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
@ -48,7 +52,8 @@
cross-libc cross-libc
cross-gcc cross-gcc
cross-mig cross-mig
cross-kernel-headers)) cross-kernel-headers
cross-gcc-toolchain))
(define-syntax %xgcc (define-syntax %xgcc
;; GCC package used as the basis for cross-compilation. It doesn't have to ;; GCC package used as the basis for cross-compilation. It doesn't have to
@ -196,18 +201,44 @@ base compiler and using LIBC (which may be either a libc package or #f.)"
#~((string-append "--with-toolexeclibdir=" #~((string-append "--with-toolexeclibdir="
(assoc-ref %outputs "lib") (assoc-ref %outputs "lib")
"/" #$target "/lib")) "/" #$target "/lib"))
#~())
#$@(if (target-avr? target)
#~("--enable-multilib")
#~())
#$@(if (and libc (target-avr? target))
#~(;; By default GCC will attemp to compile
;; some libraries for other languages (objc,
;; fortran) but compilation fails for AVR.
"--enable-languages=c,c++"
(string-append "--with-native-system-header-dir="
#$libc "/" #$target "/include"))
#~())) #~()))
#$(if libc (remove
flags (lambda (flag)
#~(remove (cut string-match "--enable-languages.*" <>) (or (and #$libc
#$flags)))) (string-prefix? "--enable-languages" flag))
(and #$libc
#$(target-avr? target)
(string-prefix? "--with-native-system-header-dir"
flag))
(and #$(target-avr? target)
(string=? flag "--disable-multilib"))))
#$flags)))
((#:make-flags flags) ((#:make-flags flags)
(if libc (if libc
#~(let ((libc (assoc-ref %build-inputs "libc"))) #~(let ((libc (assoc-ref %build-inputs "libc"))
(lib-prefix (if #$(target-avr? target)
(string-append "/" #$target)
"")))
;; FLAGS_FOR_TARGET are needed for the target libraries to receive ;; FLAGS_FOR_TARGET are needed for the target libraries to receive
;; the -Bxxx for the startfiles. ;; the -Bxxx for the startfiles.
(cons (string-append "FLAGS_FOR_TARGET=-B" libc "/lib") (cons (string-append "FLAGS_FOR_TARGET=-B"
libc lib-prefix "/lib")
#$flags)) #$flags))
flags)) flags))
((#:phases phases) ((#:phases phases)
@ -241,6 +272,31 @@ base compiler and using LIBC (which may be either a libc package or #f.)"
"-DTOOLDIR_BASE_PREFIX=\\\"../../../../\\\"")) "-DTOOLDIR_BASE_PREFIX=\\\"../../../../\\\""))
#t)) #t))
(define (cross-gcc-search-paths target)
"Return list of GCC search path specifications needed for TARGET."
(cons (search-path-specification
(variable "CROSS_LIBRARY_PATH")
(files `("lib" "lib64"
,@(list (string-append target "/lib")
(string-append target "/lib64")))))
(map (lambda (variable)
(search-path-specification
(variable variable)
;; Add 'include/c++' here so that <cstdlib>'s
;; "#include_next <stdlib.h>" finds GCC's
;; <stdlib.h>, not libc's.
(files (match variable
("CROSS_CPLUS_INCLUDE_PATH"
`("include/c++" "include"
,@(list (string-append target "/include/c++")
(string-append target "/include"))))
(_
`("include"
,(string-append target "/include")))))))
%gcc-cross-include-paths)))
(define* (cross-gcc target (define* (cross-gcc target
#:key #:key
(xgcc %xgcc) (xgcc %xgcc)
@ -321,6 +377,9 @@ target that libc."
("libc" ,libc)) ("libc" ,libc))
`(,@inputs `(,@inputs
("mingw-source" ,(package-source mingw-w64))))) ("mingw-source" ,(package-source mingw-w64)))))
((and libc (target-avr? target))
`(,@inputs
("libc" ,libc)))
(libc (libc
`(,@inputs `(,@inputs
("libc" ,libc) ("libc" ,libc)
@ -333,22 +392,7 @@ target that libc."
(inputs '()) (inputs '())
;; Only search target inputs, not host inputs. ;; Only search target inputs, not host inputs.
(search-paths (cons (search-path-specification (search-paths (cross-gcc-search-paths target))
(variable "CROSS_LIBRARY_PATH")
(files '("lib" "lib64")))
(map (lambda (variable)
(search-path-specification
(variable variable)
;; Add 'include/c++' here so that <cstdlib>'s
;; "#include_next <stdlib.h>" finds GCC's
;; <stdlib.h>, not libc's.
(files (match variable
("CROSS_CPLUS_INCLUDE_PATH"
'("include/c++" "include"))
(_
'("include"))))))
%gcc-cross-include-paths)))
(native-search-paths '()))) (native-search-paths '())))
(define* (cross-kernel-headers . args) (define* (cross-kernel-headers . args)
@ -610,74 +654,127 @@ the base compiler. Use XBINUTILS as the associated cross-Binutils."
(xbinutils (cross-binutils target)) (xbinutils (cross-binutils target))
(xheaders (cross-kernel-headers target))) (xheaders (cross-kernel-headers target)))
"Return LIBC cross-built for TARGET, a GNU triplet. Use XGCC and XBINUTILS "Return LIBC cross-built for TARGET, a GNU triplet. Use XGCC and XBINUTILS
and the cross tool chain." and the cross tool chain. If TARGET doesn't have a standard C library #f is
(if (target-mingw? target) returned."
(let ((machine (substring target 0 (string-index target #\-)))) (match target
(make-mingw-w64 machine ((? target-mingw?)
#:xgcc xgcc (let ((machine (substring target 0 (string-index target #\-))))
#:xbinutils xbinutils)) (make-mingw-w64 machine
(package #:xgcc xgcc
(inherit libc) #:xbinutils xbinutils)))
(name (string-append "glibc-cross-" target)) ((or (? target-linux?) (? target-hurd?))
(arguments (package
(substitute-keyword-arguments (inherit libc)
`( ;; Disable stripping (see above.) (name (string-append "glibc-cross-" target))
#:strip-binaries? #f (arguments
(substitute-keyword-arguments
`(;; Disable stripping (see above.)
#:strip-binaries? #f
;; This package is used as a target input, but it should not have ;; This package is used as a target input, but it should not have
;; the usual cross-compilation inputs since that would include ;; the usual cross-compilation inputs since that would include
;; itself. ;; itself.
#:implicit-cross-inputs? #f #:implicit-cross-inputs? #f
;; We need SRFI 26. ;; We need SRFI 26.
#:modules ((guix build gnu-build-system) #:modules ((guix build gnu-build-system)
(guix build utils) (guix build utils)
(srfi srfi-26)) (srfi srfi-26))
,@(package-arguments libc)) ,@(package-arguments libc))
((#:configure-flags flags) ((#:configure-flags flags)
`(cons ,(string-append "--host=" target) `(cons ,(string-append "--host=" target)
,(if (target-hurd? target) ,(if (target-hurd? target)
`(append (list "--disable-werror" `(append (list "--disable-werror"
,@%glibc/hurd-configure-flags) ,@%glibc/hurd-configure-flags)
,flags) ,flags)
flags))) flags)))
((#:phases phases) ((#:phases phases)
`(modify-phases ,phases `(modify-phases ,phases
(add-before 'configure 'set-cross-kernel-headers-path (add-before 'configure 'set-cross-kernel-headers-path
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let* ((kernel (assoc-ref inputs "kernel-headers")) (let* ((kernel (assoc-ref inputs "kernel-headers"))
(cpath (string-append kernel "/include"))) (cpath (string-append kernel "/include")))
(for-each (cut setenv <> cpath) (for-each (cut setenv <> cpath)
',%gcc-cross-include-paths) ',%gcc-cross-include-paths)
(setenv "CROSS_LIBRARY_PATH" (setenv "CROSS_LIBRARY_PATH"
(string-append kernel "/lib")) ; for Hurd's libihash (string-append kernel "/lib")) ; for Hurd's libihash
#t))) #t)))
,@(if (target-hurd? target) ,@(if (target-hurd? target)
'((add-after 'install 'augment-libc.so '((add-after 'install 'augment-libc.so
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))) (let* ((out (assoc-ref outputs "out")))
(substitute* (string-append out "/lib/libc.so") (substitute* (string-append out "/lib/libc.so")
(("/[^ ]+/lib/libc.so.0.3") (("/[^ ]+/lib/libc.so.0.3")
(string-append out "/lib/libc.so.0.3" (string-append out "/lib/libc.so.0.3"
" libmachuser.so libhurduser.so")))) " libmachuser.so libhurduser.so"))))
#t))) #t)))
'()))))) '())))))
;; Shadow the native "kernel-headers" because glibc's recipe expects the ;; Shadow the native "kernel-headers" because glibc's recipe expects the
;; "kernel-headers" input to point to the right thing. ;; "kernel-headers" input to point to the right thing.
(propagated-inputs `(("kernel-headers" ,xheaders))) (propagated-inputs `(("kernel-headers" ,xheaders)))
(native-inputs `(("cross-gcc" ,xgcc) (native-inputs `(("cross-gcc" ,xgcc)
("cross-binutils" ,xbinutils) ("cross-binutils" ,xbinutils)
,@(if (target-hurd? target) ,@(if (target-hurd? target)
`(("cross-mig" `(("cross-mig"
,(cross-mig target ,(cross-mig target
#:xgcc xgcc #:xgcc xgcc
#:xbinutils xbinutils))) #:xbinutils xbinutils)))
'()) '())
,@(package-inputs libc) ;FIXME: static-bash ,@(package-inputs libc) ;FIXME: static-bash
,@(package-native-inputs libc)))))) ,@(package-native-inputs libc)))))
((? target-avr?)
(make-avr-libc #:xbinutils xbinutils
#:xgcc xgcc))
(else #f)))
(define* (cross-gcc-toolchain/implementation target
#:key
(base-gcc %xgcc)
(xbinutils (cross-binutils target))
(libc (cross-libc
target
#:xgcc (cross-gcc target #:xgcc base-gcc)
#:xbinutils xbinutils))
(xgcc (cross-gcc target
#:xgcc base-gcc
#:libc libc
#:xbinutils xbinutils)))
"Returns PACKAGE that contains a cross-compilation tool chain for TARGET
with XBINUTILS, XGCC and LIBC (if exists for TARGET)."
(package
(name (string-append (package-name xgcc) "-toolchain"))
(version (package-version xgcc))
(source #f)
(build-system trivial-build-system)
(arguments
(list #:modules '((guix build union))
#:builder
#~(begin
(use-modules (ice-9 match)
(guix build union))
(match %build-inputs
(((names . directory) ...)
(union-build #$output directory))))))
(inputs `(,xbinutils ,xgcc ,@(if libc (list libc) '())))
(home-page (package-home-page xgcc))
(synopsis
(format #f "Complete GCC tool chain for C/C++ development (~a)" target))
(description "This package provides a complete GCC cross toolchain for
C/C++ development to be installed in user profiles. This includes GCC, as
well as libc (headers and binariesl), and Binutils. GCC is the GNU Compiler
Collection.")
(license (delete-duplicates `(,(package-license xgcc)
,(package-license xbinutils)
,@(if libc
(list (package-license libc))
'()))))))
(define cross-gcc-toolchain
(memoize cross-gcc-toolchain/implementation))
;;; Concrete cross tool chains are instantiated like this: ;;; Concrete cross tool chains are instantiated like this:

View File

@ -0,0 +1,42 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages cross-toolchain)
#:use-module (gnu packages cross-base)
#:use-module (guix packages))
;;; Commentary:
;;;
;;; This module provides packages for cross compilation toolchains. These
;;; packages must not be used at the top level to avoid cyclic module
;;; dependencies caused by the (gnu packages cross-base) module referring to
;;; to top level bindings from (gnu packages gcc).
;;;
;;; The real purpose of these packages is for installation on profiles by users
;;; and other packages should make use of the toolchain through the usual cross
;;; compilation methods. For example, by using the `#:target' argument on
;;; packages or `--target' on the command line.
(define-public gcc-cross-avr-toolchain
(cross-gcc-toolchain "avr"))
(define-public gcc-cross-i686-w64-mingw32-toolchain
(cross-gcc-toolchain "i686-w64-mingw32"))
(define-public gcc-cross-x86_64-w64-mingw32-toolchain
(cross-gcc-toolchain "x86_64-w64-mingw32"))

View File

@ -343,7 +343,7 @@ applications''. These must be installed separately.")
(define cups-minimal/fixed (define cups-minimal/fixed
(package (package
(inherit cups-minimal) (inherit cups-minimal)
(version "2.4.6") (version "2.4.7")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -352,7 +352,7 @@ applications''. These must be installed separately.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name "cups" version)) (file-name (git-file-name "cups" version))
(sha256 (sha256
(base32 "0z70rhfd96qmdx82gdhh2nqjiia0lnvfdwpngjkag2sidw4cm3c1")))))) (base32 "0cj3gs7ki9v0drj19l326s8f1kxrpq7jkzrdfdk7ykrlk7sj645f"))))))
(define-public cups (define-public cups
(package/inherit cups-minimal (package/inherit cups-minimal
@ -521,14 +521,14 @@ should only be used as part of the Guix cups-pk-helper service.")
(define-public hplip (define-public hplip
(package (package
(name "hplip") (name "hplip")
(version "3.23.8") (version "3.23.12")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/hplip/hplip/" version (uri (string-append "mirror://sourceforge/hplip/hplip/" version
"/hplip-" version ".tar.gz")) "/hplip-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0ihv9ddjrjx5bdf8pwc2fvljkpfzq4qi9r2awm8dgky053v0bk7p")) "1vb9irqsm3d4c2qdr4h6ia940x65bb99h4x31mgxn7dkvv42lv57"))
(patches (search-patches "hplip-usb-timeout.patch")) (patches (search-patches "hplip-usb-timeout.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet

View File

@ -4393,7 +4393,7 @@ the SQL language using a syntax that reflects the resulting query.")
(define-public apache-arrow (define-public apache-arrow
(package (package
(name "apache-arrow") (name "apache-arrow")
(version "13.0.0") (version "14.0.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -4403,7 +4403,7 @@ the SQL language using a syntax that reflects the resulting query.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"03ykynzz01ar2y4blhcxjh6xsi0gqv380h5m669dddfz2isplsf8")))) "08x01jcibmx03g9p0sjikp3dyynw6is6gyn0m3cy1gwkpkwk2ad2"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
(list (list

View File

@ -149,15 +149,15 @@ contains the archive keys used for that.")
(define-public ubuntu-keyring (define-public ubuntu-keyring
(package (package
(name "ubuntu-keyring") (name "ubuntu-keyring")
(version "2021.03.26") (version "2023.11.28.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://launchpad.net/ubuntu/+archive/primary/" (uri (string-append "https://launchpad.net/ubuntu/+archive/primary/"
"+files/" name "_" version ".tar.gz")) "+files/" name "_" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1ccvwh4s51viyhcg8gh189jmvbrhc5wv1bbp4minz3200rffsbj9")))) "0bmafky67hrb79baaydmw7al21lz0wgi4ks5dqfkfqamw5d4bkdf"))))
(build-system trivial-build-system) (build-system trivial-build-system)
(arguments (arguments
`(#:modules ((guix build utils)) `(#:modules ((guix build utils))
@ -167,7 +167,7 @@ contains the archive keys used for that.")
(apt (string-append out "/etc/apt/trusted.gpg.d/")) (apt (string-append out "/etc/apt/trusted.gpg.d/"))
(key (string-append out "/share/keyrings/"))) (key (string-append out "/share/keyrings/")))
(setenv "PATH" (string-append (setenv "PATH" (string-append
(assoc-ref %build-inputs "gzip") "/bin:" (assoc-ref %build-inputs "xz") "/bin:"
(assoc-ref %build-inputs "tar") "/bin")) (assoc-ref %build-inputs "tar") "/bin"))
(invoke "tar" "xvf" (assoc-ref %build-inputs "source")) (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
(for-each (lambda (file) (for-each (lambda (file)
@ -175,10 +175,9 @@ contains the archive keys used for that.")
(find-files "." "ubuntu-[^am].*\\.gpg$")) (find-files "." "ubuntu-[^am].*\\.gpg$"))
(for-each (lambda (file) (for-each (lambda (file)
(install-file file key)) (install-file file key))
(find-files "." "ubuntu-[am].*\\.gpg$"))) (find-files "." "ubuntu-[am].*\\.gpg$"))))))
#t)))
(native-inputs (native-inputs
(list tar gzip)) (list tar xz))
(home-page "https://launchpad.net/ubuntu/+source/ubuntu-keyring") (home-page "https://launchpad.net/ubuntu/+source/ubuntu-keyring")
(synopsis "GnuPG keys of the Ubuntu archive") (synopsis "GnuPG keys of the Ubuntu archive")
(description (description

View File

@ -25,28 +25,33 @@
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
#:use-module (gnu packages pkg-config)) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages pth))
(define-public dezyne (define-public dezyne
(package (package
(name "dezyne") (name "dezyne")
(version "2.17.8") (version "2.18.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://dezyne.org/download/dezyne/" (uri (string-append "https://dezyne.org/download/dezyne/"
name "-" version ".tar.gz")) name "-" version ".tar.gz"))
(sha256 (sha256
(base32 "0m5cnymcyg7k1jhp4xjpvpay7ia72xdzyjnjg0spsr4p7fy7yql4")))) (base32 "1lbrxycpvwmvif3gpjnz8iskvlxp7f8bl71k44j7acwqrp8j2szi"))))
(propagated-inputs (list boost
guile-json-4
guile-readline
scmackerel))
(inputs (list bash-minimal (inputs (list bash-minimal
guile-3.0-latest guile-3.0
guile-json-4
guile-readline
mcrl2-minimal mcrl2-minimal
pth
sed)) sed))
(native-inputs (list guile-3.0-latest pkg-config)) (native-inputs (list guile-3.0 pkg-config))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (list
@ -58,21 +63,20 @@
(lambda _ (lambda _
(setenv "GUILE_AUTO_COMPILE" "0"))) (setenv "GUILE_AUTO_COMPILE" "0")))
(add-after 'install 'install-readmes (add-after 'install 'install-readmes
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(let* ((out (assoc-ref outputs "out")) (let* ((base (string-append #$name "-" #$version))
(base (string-append #$name "-" #$version)) (doc (string-append #$output "/share/doc/" base)))
(doc (string-append out "/share/doc/" base)))
(mkdir-p doc) (mkdir-p doc)
(copy-file "NEWS" (string-append doc "/NEWS"))))) (copy-file "NEWS" (string-append doc "/NEWS")))))
(add-after 'install 'wrap-binaries (add-after 'install 'wrap-binaries
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda _
(let* ((out (assoc-ref outputs "out")) (let* ((bash #$(this-package-input "bash-minimal"))
(bash (assoc-ref %build-inputs "bash-minimal")) (guile #$(this-package-input "guile"))
(guile (assoc-ref %build-inputs "guile")) (json #$(this-package-input "guile-json"))
(json (assoc-ref %build-inputs "guile-json")) (mcrl2 #$(this-package-input "mcrl2-minimal"))
(mcrl2 (assoc-ref %build-inputs "mcrl2-minimal")) (readline #$(this-package-input "guile-readline"))
(readline (assoc-ref %build-inputs "guile-readline")) (scmackerel #$(this-package-input "scmackerel"))
(sed (assoc-ref %build-inputs "sed")) (sed #$(this-package-input "sed"))
(effective (read (effective (read
(open-pipe* OPEN_READ (open-pipe* OPEN_READ
"guile" "-c" "guile" "-c"
@ -83,15 +87,17 @@
(string-append sed "/bin"))) (string-append sed "/bin")))
(scm-dir (string-append "/share/guile/site/" effective)) (scm-dir (string-append "/share/guile/site/" effective))
(scm-path (scm-path
(list (string-append out scm-dir) (list (string-append #$output scm-dir)
(string-append json scm-dir) (string-append json scm-dir)
(string-append readline scm-dir))) (string-append readline scm-dir)
(string-append scmackerel scm-dir)))
(go-dir (string-append "/lib/guile/" effective (go-dir (string-append "/lib/guile/" effective
"/site-ccache/")) "/site-ccache/"))
(go-path (list (string-append out go-dir) (go-path (list (string-append #$output go-dir)
(string-append json go-dir) (string-append json go-dir)
(string-append readline go-dir)))) (string-append readline go-dir)
(wrap-program (string-append out "/bin/dzn") (string-append scmackerel go-dir))))
(wrap-program (string-append #$output "/bin/dzn")
`("PATH" ":" prefix ,path) `("PATH" ":" prefix ,path)
`("GUILE_AUTO_COMPILE" ":" = ("0")) `("GUILE_AUTO_COMPILE" ":" = ("0"))
`("GUILE_LOAD_PATH" ":" prefix ,scm-path) `("GUILE_LOAD_PATH" ":" prefix ,scm-path)
@ -105,3 +111,43 @@ has formal semantics expressed in @url{https://mcrl2.org,mCRL2}.")
(license (list license:agpl3+ ;Dezyne itself (license (list license:agpl3+ ;Dezyne itself
license:lgpl3+ ;Dezyne runtime library license:lgpl3+ ;Dezyne runtime library
license:cc0)))) ;Code snippets, images, test data license:cc0)))) ;Code snippets, images, test data
(define-public scmackerel
(package
(name "scmackerel")
(version "0.5.3")
(source
(origin
(method url-fetch)
(uri (string-append "https://dezyne.org/download/scmackerel/"
name "-" version ".tar.gz"))
(sha256
(base32 "1sgrkw3idsni1ylf0slwgzzwq31b1yx6s0j17yq99c88agk9cvd6"))))
(inputs (list bash-minimal
guile-3.0
guile-readline
mcrl2-minimal))
(native-inputs (list guile-3.0 pkg-config))
(build-system gnu-build-system)
(arguments
(list
#:modules `((ice-9 popen)
,@%gnu-build-system-modules)
#:phases
#~(modify-phases %standard-phases
(add-before 'configure 'setenv
(lambda _
(setenv "GUILE_AUTO_COMPILE" "0")))
(add-after 'install 'install-readmes
(lambda _
(let* ((base (string-append #$name "-" #$version))
(doc (string-append #$output "/share/doc/" base)))
(mkdir-p doc)
(copy-file "NEWS" (string-append doc "/NEWS"))))))))
(synopsis "AST library in GNU Guile")
(description "SCMackerel is a library in GNU Guile to create abstract
syntax trees (ASTs). Initially written for @url{https://mcrl2.org,mCRL2} and
now also supporting other languages, such as C, C++, and C#. Based on GNU
Guix records.")
(home-page "https://gitlab.com/janneke/scmackerel")
(license (list license:gpl3+))))

View File

@ -0,0 +1,294 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Pierre-Henry Fröhring <phfrohring@deeplinks.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages elixir-xyz)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages elixir)
#:use-module (gnu packages linux)
#:use-module (gnu packages compression)
#:use-module (gnu packages base)
#:use-module (gnu packages)
#:use-module (guix build-system gnu)
#:use-module (guix build-system mix)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26))
(define-public elixir-nimble-parsec
(package
(name "elixir-nimble-parsec")
(version "1.3.1")
(source
(origin
(method url-fetch)
(uri (hexpm-uri name version))
(sha256
(base32 "0rxiw6jzz77v0j460wmzcprhdgn71g1hrz3mcc6djn7bnb0f70i6"))))
(build-system mix-build-system)
(arguments (list #:tests? #f)) ; no tests
(synopsis "Text-based parser combinators")
(description
"This library provides primitives for efficient parser combinators, allowing
for higher-level combinators through composition.")
(home-page "https://hexdocs.pm/nimble_parsec/")
(license license:asl2.0)))
(define-public elixir-makeup
(package
(name "elixir-makeup")
(version "1.1.0")
(source
(origin
(method url-fetch)
(uri (hexpm-uri name version))
(sha256
(base32 "19jpprryixi452jwhws3bbks6ki3wni9kgzah3srg22a3x8fsi8a"))))
(build-system mix-build-system)
(propagated-inputs (list elixir-nimble-parsec))
(arguments (list #:tests? #f)) ; no tests
(synopsis "Syntax highlighter for source code")
(description
"Makeup is a generic syntax highlighter in the style of Pygments suitable for use in code hosting,
forums, wikis or other applications that need to prettify source code.")
(home-page "https://hexdocs.pm/makeup/")
(license license:bsd-2)))
(define-public elixir-jason
(package
(name "elixir-jason")
(version "1.4.1")
(source
(origin
(method url-fetch)
(uri (hexpm-uri name version))
(sha256
(base32 "18d70i31bz11nr6vgsjn5prvhkvwqbyf3xq22ck5cnsnzp6ixc7v"))))
(build-system mix-build-system)
(arguments (list #:tests? #f)) ; no tests
(synopsis "JSON parser and generator")
(description
"Parser and generator are written in pure Elixir and optimized for speed. They
are at least twice as fast as other Elixir/Erlang libraries (e.g.
Poison). The performance is comparable to jiffy, which is implemented in C as
a NIF.")
(home-page "https://hexdocs.pm/jason/")
(license license:asl2.0)))
(define-public elixir-file-system
(package
(name "elixir-file-system")
(version "0.2.10")
(source
(origin
(method url-fetch)
(uri (hexpm-uri name version))
(sha256
(base32 "1p0myxmnjjds8bbg69dd6fvhk8q3n7lb78zd4qvmjajnzgdmw6a1"))
(snippet #~(begin
(use-modules (guix build utils) (ice-9 ftw))
(mkdir "source")
(for-each (lambda (file)
(when (not (member file '("." ".." "source")))
(rename-file file (string-append "source/" file))))
(scandir "."))
(with-directory-excursion "source"
(invoke (string-append #+gzip "/bin/gunzip") "-v" "contents.tar.gz")
(invoke (string-append #+tar "/bin/tar") "-xvf" "contents.tar")
(delete-file "contents.tar")
(delete-file "priv/inotifywait.exe"))))))
(build-system mix-build-system)
(propagated-inputs (list inotify-tools))
(arguments (list #:tests? #f)) ; no tests
(synopsis "File system change watcher")
(description "Provides a file system change watcher wrapper based on
https://github.com/synrc/fs.")
(home-page "https://hexdocs.pm/file_system/")
(license license:wtfpl2)))
(define-public elixir-bunt
(package
(name "elixir-bunt")
(version "0.2.1")
(source
(origin
(method url-fetch)
(uri (hexpm-uri name version))
(sha256
(base32 "19bp6xh052ql3ha0v3r8999cvja5d2p6cph02mxphfaj4jsbyc53"))))
(build-system mix-build-system)
(arguments (list #:tests? #f)) ; no tests
(synopsis "256 color ANSI coloring in the terminal")
(description "Bunt is an Elixir package that enables 256 color ANSI
coloring in the terminal and allows users to alias colors to more semantic and
application-specific names1.")
(home-page "https://hexdocs.pm/bunt/")
(license license:expat)))
(define-public elixir-inch-ex
(package
(name "elixir-inch-ex")
(version "2.0.0")
(source
(origin
(method url-fetch)
(uri (hexpm-uri name version))
(sha256
(base32 "1a4rjcy3hn5pc40si1d1y7qg0b0mnxx6pw825la67ky8r9gfrl4n"))))
(build-system mix-build-system)
(arguments (list #:tests? #f)) ; no tests
(propagated-inputs (list elixir-bunt elixir-jason))
(synopsis
"Suggest enhancements for inline documentation")
(description
"This package provides a Mix task that gives you hints where to improve your
inline docs.")
(home-page "https://hex.pm/packages/inch_ex")
(license license:expat)))
(define-public elixir-castore
(package
(name "elixir-castore")
(version "1.0.4")
(source
(origin
(method url-fetch)
(uri (hexpm-uri name version))
(sha256
(base32 "1y44amb8falsmrfzpkmf7qp6215g9kdl76g91dpna4af2jwc264l"))))
(build-system mix-build-system)
(arguments (list #:tests? #f)) ; no tests
(synopsis "Up-to-date CA certificate store")
(description "The Elixir castore package is a micro-library that provides
an up-to-date CA certificate store file for Elixir applications.")
(home-page "https://hexdocs.pm/castore/")
(license license:asl2.0)))
(define-public elixir-excoveralls
(package
(name "elixir-excoveralls")
(version "0.18.0")
(source
(origin
(method url-fetch)
(uri (hexpm-uri name version))
(sha256
(base32 "02x69ll5scvraky0k5gacvnnmldv5k04kgk02x087d9w3y8vn28i"))))
(build-system mix-build-system)
(propagated-inputs (list elixir-castore elixir-jason))
(arguments (list #:tests? #f)) ; no tests
(synopsis "Coverage report tool with coveralls.io integration")
(description
"Library that reports test coverage statistics, with the option to
post to coveralls.io service. It uses Erlang's cover to generate coverage
information, and posts the test coverage results to coveralls.io through the
JSON API.")
(home-page "https://hexdocs.pm/excoveralls/")
(license license:expat)))
(define-public elixir-credo
(package
(name "elixir-credo")
(version "1.7.1")
(source
(origin
(method url-fetch)
(uri (hexpm-uri name version))
(sha256
(base32 "18jqi9s9r1587njzdxycvmmbma30cay9iamni4f3ih54jmh1r1z9"))))
(build-system mix-build-system)
(arguments (list #:tests? #f)) ; no tests
(propagated-inputs (list elixir-bunt elixir-file-system elixir-jason))
(native-inputs (list elixir-excoveralls elixir-inch-ex))
(synopsis "Static code analysis tool")
(description
"Credo is a static code analysis tool for the Elixir language with a focus on
teaching and code consistency. Credo can show you refactoring opportunities in
your code, complex code fragments, warn you about common mistakes, show
inconsistencies in your naming scheme and - if needed - help you enforce a
desired coding style.")
(home-page "https://hexdocs.pm/credo/")
(license license:expat)))
(define-public elixir-erlex
(package
(name "elixir-erlex")
(version "0.2.6")
(source
(origin
(method url-fetch)
(uri (hexpm-uri name version))
(sha256
(base32 "0x8c1j62y748ldvlh46sxzv5514rpzm809vxn594vd7y25by5lif"))))
(build-system mix-build-system)
(arguments (list #:tests? #f)) ; no tests
(synopsis
"Convert Erlang style structs and error messages to equivalent Elixir")
(description
"Converted structs and error messages are useful for pretty printing
things like Dialyzer errors and Observer.")
(home-page "https://hexdocs.pm/erlex/")
(license license:asl2.0)))
(define-public elixir-dialyxir
(package
(name "elixir-dialyxir")
(version "1.4.1")
(source
(origin
(method url-fetch)
(uri (hexpm-uri name version))
(sha256
(base32 "00cqwhd1wabwds44jz94rvvr8z8cp12884d3lp69fqkrszb9bdw4"))))
(build-system mix-build-system)
(arguments (list #:tests? #f)) ; no tests
(propagated-inputs (list elixir-erlex))
(synopsis "Mix tasks to simplify use of Dialyzer")
(description
"Mix Tasks are usable from the directory of the mix project you want to analyze.")
(home-page "https://hexdocs.pm/dialyxir/")
(license license:asl2.0)))
(define-public elixir-machete
(package
(name "elixir-machete")
(version "0.2.8")
(source
(origin
(method url-fetch)
(uri (hexpm-uri name version))
(sha256
(base32 "0952603bmqsf6v3ja99zpbnbx5d52i4xksjkfj3irl45ccq5pgq9"))))
(build-system mix-build-system)
(native-inputs (list elixir-credo elixir-dialyxir))
(synopsis "Literate test matchers for ExUnit")
(description
"Machete provides ergonomic match operators that act as building blocks to let
you define test expectations that can match data against any combination of
literals, variables, or parametrically defined matchers.")
(home-page "https://hexdocs.pm/machete/")
(license license:expat)))
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar
;;; functionality or similar names.
;;;

View File

@ -27,6 +27,7 @@
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (gnu packages) #:use-module (gnu packages)
@ -96,9 +97,20 @@
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; Some tests require access to a home directory. ;; Some tests require access to a home directory.
(setenv "HOME" "/tmp"))) (setenv "HOME" "/tmp")))
(delete 'configure)))) (delete 'configure)
(inputs (add-after 'install 'wrap-programs
(list erlang git)) (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(programs '("elixir" "elixirc" "iex" "mix")))
(for-each (lambda (program)
(wrap-program (string-append out "/bin/" program)
'("ERL_LIBS" prefix ("${GUIX_ELIXIR_LIBS}"))))
programs)))))))
(inputs (list erlang git))
(native-search-paths
(list (search-path-specification
(variable "GUIX_ELIXIR_LIBS")
(files (list (string-append "lib/elixir/" (version-major+minor version)))))))
(home-page "https://elixir-lang.org/") (home-page "https://elixir-lang.org/")
(synopsis "Elixir programming language") (synopsis "Elixir programming language")
(description "Elixir is a dynamic, functional language used to build (description "Elixir is a dynamic, functional language used to build
@ -106,3 +118,48 @@ scalable and maintainable applications. Elixir leverages the Erlang VM, known
for running low-latency, distributed and fault-tolerant systems, while also for running low-latency, distributed and fault-tolerant systems, while also
being successfully used in web development and the embedded software domain.") being successfully used in web development and the embedded software domain.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public elixir-hex
(package
(name "elixir-hex")
(version "2.0.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/hexpm/hex.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1kvczwvij58kgkhak68004ap81pl26600bczg21mymy2sypkgxmj"))))
;; The mix-build-system assumes that Hex exists.
;; We build Hex using the gnu-build-system.
;; Other Elixir packages use the mix-build-system.
(build-system gnu-build-system)
(inputs (list elixir))
(arguments
(list
;; Hex is needed to build packages used to test Hex.
;; To avoid this circularity, we disable tests.
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(delete 'bootstrap)
(delete 'configure)
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(setenv "MIX_ENV" "prod")
(invoke "mix" "compile")))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(define X.Y #$(version-major+minor (package-version elixir)))
(define out (string-append (assoc-ref outputs "out") "/lib/elixir/" X.Y "/hex"))
(mkdir-p out)
(copy-recursively "_build/prod/lib/hex" out))))))
(synopsis "Package manager for the Erlang VM")
(description
"This project provides tasks that integrate with Mix, Elixir's build
tool.")
(home-page "https://hexdocs.pm/makeup_elixir/")
(license license:bsd-2)))

View File

@ -11691,7 +11691,7 @@ them easier to distinguish from other, less important buffers.")
(define-public emacs-embark (define-public emacs-embark
(package (package
(name "emacs-embark") (name "emacs-embark")
(version "0.23") (version "1.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -11699,7 +11699,7 @@ them easier to distinguish from other, less important buffers.")
(url "https://github.com/oantolin/embark") (url "https://github.com/oantolin/embark")
(commit version))) (commit version)))
(sha256 (sha256
(base32 "1dmsaw1m819kzmai45c4cqh5lyyha451f7dxzwwfz9crmzg2w5sf")) (base32 "14alpanynww6z7yxxyiiy24c0p4pq1argsb0pmqavq25mdxgn4v2"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments

View File

@ -2447,16 +2447,16 @@ system.")
(define-public exomizer (define-public exomizer
(package (package
(name "exomizer") (name "exomizer")
(version "3.1.1") (version "3.1.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://bitbucket.org/magli143/exomizer.git") (url "https://bitbucket.org/magli143/exomizer.git")
(commit "6a152b5605648f7a41eadd4b011a93ec92f74dd8"))) (commit version)))
(file-name (string-append name "-" version "-checkout")) (file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"1ynhkb5p2dypkikipc3krzif264l9rmx1wnjzzgw8n88i4zkymzg")))) "04795l75nlbz0g5gp1xx8kiwbrm5pv5pj24ja02cnan6mglj7j0w"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; No target exists `(#:tests? #f ; No target exists

View File

@ -866,6 +866,7 @@ and others.")
(uri (git-reference (uri (git-reference
(url "https://github.com/gerbv/gerbv") (url "https://github.com/gerbv/gerbv")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"06bcm5zw7whsnnmfld3gl2j907lxc68gnsbzr2pc4w6qc923rgmj")))) "06bcm5zw7whsnnmfld3gl2j907lxc68gnsbzr2pc4w6qc923rgmj"))))

View File

@ -1158,6 +1158,8 @@ such as:
#:make-flags #:make-flags
(let ((triplet-without-vendor (let ((triplet-without-vendor
(and (%current-target-system) (and (%current-target-system)
;; TODO: Is there a use case for allowing this?
(not (target-avr?))
(match (string-split (nix-system->gnu-triplet (match (string-split (nix-system->gnu-triplet
(%current-target-system)) #\-) (%current-target-system)) #\-)
((arch vendor os ..1) ((arch vendor os ..1)
@ -1256,6 +1258,7 @@ OVERRIDE.H, to also override the corresponding layout include file."
(arguments (arguments
(list (list
#:tests? #f ;no test suite #:tests? #f ;no test suite
#:target "avr"
#:make-flags #:make-flags
#~(list (string-append "LAYOUT=" #$layout) #~(list (string-append "LAYOUT=" #$layout)
;; Simplify the output directory name. ;; Simplify the output directory name.
@ -1281,7 +1284,7 @@ OVERRIDE.H, to also override the corresponding layout include file."
(install-file "firmware.hex" #$output) (install-file "firmware.hex" #$output)
(install-file "firmware.eep" #$output) (install-file "firmware.eep" #$output)
(install-file "firmware--layout.html" #$output))))))) (install-file "firmware--layout.html" #$output)))))))
(native-inputs (list (make-avr-toolchain) python)) (native-inputs (list python))
(home-page "https://www.ergodox.io") (home-page "https://www.ergodox.io")
(synopsis "Firmware for the ErgoDox keyboard") (synopsis "Firmware for the ErgoDox keyboard")
(description (format #f "This package contains the original firmware for (description (format #f "This package contains the original firmware for
@ -1343,9 +1346,7 @@ corresponding layout." layout))
`("PATH" prefix `("PATH" prefix
,(map (compose dirname ,(map (compose dirname
(cut search-input-file inputs <>)) (cut search-input-file inputs <>))
'("bin/avr-ar" '("bin/avrdude"
"bin/avr-gcc"
"bin/avrdude"
"bin/awk" "bin/awk"
"bin/cmp" "bin/cmp"
"bin/dfu-programmer" "bin/dfu-programmer"
@ -1358,16 +1359,13 @@ corresponding layout." layout))
;; TODO: Remove after git is wrapped with these. ;; TODO: Remove after git is wrapped with these.
"bin/basename" "bin/basename"
"bin/sed" "bin/sed"
"bin/uname"))) "bin/uname")))))))))
`("CROSS_C_INCLUDE_PATH" = (,(getenv "CROSS_C_INCLUDE_PATH")))
`("CROSS_LIBRARY_PATH" = (,(getenv "CROSS_LIBRARY_PATH")))))))))
;; The inputs are not propagated since qmk is to be used strictly as a ;; The inputs are not propagated since qmk is to be used strictly as a
;; command. ;; command.
(inputs (inputs
;; The 'qmk setup' command advises to use GCC at version 8, and there are ;; The 'qmk setup' command advises to use GCC at version 8, and there are
;; compilation errors in some firmware otherwise. ;; compilation errors in some firmware otherwise.
(list (make-avr-toolchain #:xgcc gcc-8) (list avrdude
avrdude
bash-minimal bash-minimal
dfu-programmer dfu-programmer
dfu-util dfu-util
@ -1440,6 +1438,7 @@ provided."
(ice-9 ftw) (ice-9 ftw)
(ice-9 match) (ice-9 match)
(srfi srfi-26)) (srfi srfi-26))
#:target "avr"
;; XXX: Running a test target like "test:$keyboard" doesn't seem to run ;; XXX: Running a test target like "test:$keyboard" doesn't seem to run
;; anything and causes the .hex file to be regenerated; leave the tests ;; anything and causes the .hex file to be regenerated; leave the tests
;; out for now. ;; out for now.

View File

@ -109,8 +109,10 @@
#:use-module (gnu packages readline) #:use-module (gnu packages readline)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
#:use-module (gnu packages sdl) #:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages speech) #:use-module (gnu packages speech)
#:use-module (gnu packages sphinx) #:use-module (gnu packages sphinx)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages stb) #:use-module (gnu packages stb)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils) #:use-module (gnu packages textutils)
@ -1339,17 +1341,17 @@ and multimedia programs in the Python language.")
(define-public python-pygame-sdl2 (define-public python-pygame-sdl2
(let ((real-version "2.1.0") (let ((real-version "2.1.0")
(renpy-version "8.1.0")) (renpy-version "8.1.3"))
(package (package
(inherit python-pygame) (inherit python-pygame)
(name "python-pygame-sdl2") (name "python-pygame-sdl2")
(version (string-append real-version "-for-renpy-" renpy-version)) (version (string-append real-version "+renpy" renpy-version))
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://www.renpy.org/dl/" renpy-version (uri (string-append "https://www.renpy.org/dl/" renpy-version
"/pygame_sdl2-" version ".tar.gz")) "/pygame_sdl2-" version ".tar.gz"))
(sha256 (base32 "1qj39jqnv334p4wnxc2v5qxyahp7nkqf9hpdd2sgqcmgaqwnqqmj")) (sha256 (base32 "0qlprs9n3w254ilizqzvr6s01zx72gh7an0bgwxsq4hm22qypdws"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -1390,7 +1392,7 @@ developed mainly for Ren'py.")
(define-public python-renpy (define-public python-renpy
(package (package
(name "python-renpy") (name "python-renpy")
(version "8.1.0") (version "8.1.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1398,7 +1400,7 @@ developed mainly for Ren'py.")
"/renpy-" version "-source.tar.bz2")) "/renpy-" version "-source.tar.bz2"))
(sha256 (sha256
(base32 (base32
"08l7z2vwqxkskj3rs2a0w9ahah28ixq8hy48h30k2dm9g19h450h")) "1g6fz5dxp7yxhgv6q4brzf5hpfqq3l1g3dfv3fsiwwn6mj0b01z2"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
#~(begin #~(begin
@ -1841,38 +1843,37 @@ of use.")
(define-public openmw (define-public openmw
(package (package
(name "openmw") (name "openmw")
(version "0.47.0") (version "0.48.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/OpenMW/openmw") (url "https://github.com/OpenMW/openmw")
(commit (string-append "openmw-" version)))) (commit (string-append "openmw-" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32 "0amkxfylk1l67d2igihnhhql62xr89wvg1sxbq2rnhczf6vxaj6f"))))
"19mcbnjl4279qalb97msf965bjax48mx1r1qczyvwhn28h6n3bsy"))
(patches (search-patches "openmw-assume-nonconst-SIGSTKSZ.patch"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f ; No test target `(#:tests? #f ;No test target
#:configure-flags #:configure-flags (list "-DDESIRED_QT_VERSION=5"
(list "-DDESIRED_QT_VERSION=5" "-DOPENMW_USE_SYSTEM_RECASTNAVIGATION=ON")))
"-DOPENMW_USE_SYSTEM_RECASTNAVIGATION=ON"))) (native-inputs (list boost doxygen pkg-config))
(native-inputs (inputs (list bullet
(list boost doxygen pkg-config)) ffmpeg
(inputs libxt
(list bullet lz4
ffmpeg-4 ; https://gitlab.com/OpenMW/openmw/-/issues/6631 mygui-gl ;OpenMW does not need Ogre.
libxt openal
lz4 openmw-openscenegraph
mygui-gl ; OpenMW does not need Ogre. qtbase-5
openal recastnavigation
openmw-openscenegraph sdl2
qtbase-5 unshield
recastnavigation icu4c
sdl2 yaml-cpp
unshield)) luajit
sqlite))
(synopsis "Re-implementation of the RPG Morrowind engine") (synopsis "Re-implementation of the RPG Morrowind engine")
(description (description
"OpenMW is a game engine which reimplements and extends the one that runs "OpenMW is a game engine which reimplements and extends the one that runs

View File

@ -3586,11 +3586,19 @@ for dealing with different structured file formats.")
;; https://gitlab.gnome.org/GNOME/librsvg/-/issues/955). ;; https://gitlab.gnome.org/GNOME/librsvg/-/issues/955).
(substitute* "gdk-pixbuf-loader/librsvg.thumbnailer.in" (substitute* "gdk-pixbuf-loader/librsvg.thumbnailer.in"
(("@bindir@/gdk-pixbuf-thumbnailer") (("@bindir@/gdk-pixbuf-thumbnailer")
(search-input-file inputs "bin/gdk-pixbuf-thumbnailer"))))) (string-append #$(this-package-input "gdk-pixbuf")
"/bin/gdk-pixbuf-thumbnailer")))))
(add-after 'unpack 'prepare-for-build (add-after 'unpack 'prepare-for-build
(lambda _ (lambda _
;; In lieu of #:make-flags ;; In lieu of #:make-flags
(setenv "CC" #$(cc-for-target)) (setenv "CC" #$(cc-for-target))
(setenv "PKG_CONFIG" #$(pkg-config-for-target))
(when #$(%current-target-system)
(setenv "RUST_TARGET"
(string-replace
#$(%current-target-system)
"-unknown-linux-gnu"
(string-index #$(%current-target-system) #\-))))
;; Something about the build environment resists building ;; Something about the build environment resists building
;; successfully with the '--locked' flag. ;; successfully with the '--locked' flag.
(substitute* '("Makefile.am" "Makefile.in") (substitute* '("Makefile.am" "Makefile.in")
@ -3623,9 +3631,18 @@ for dealing with different structured file formats.")
(apply (assoc-ref gnu:%standard-phases 'configure) (apply (assoc-ref gnu:%standard-phases 'configure)
#:configure-flags #:configure-flags
(list "--disable-static" (list "--disable-static"
"--enable-vala" #$@(if (%current-target-system)
(string-append "--with-html-dir=" #$output #~(;; g-ir-scanner can't import its modules
"/share/gtk-doc/html")) ;; and vala currently can't be cross-compiled.
"--enable-introspection=no"
"--enable-vala=no"
;; These two are necessary for cross-compiling.
(string-append
"--build=" #$(nix-system->gnu-triplet
(%current-system)))
(string-append
"--host=" #$(%current-target-system)))
#~("--enable-vala")))
args))) args)))
(add-after 'configure 'dont-vendor-self (add-after 'configure 'dont-vendor-self
(lambda* (#:key vendor-dir #:allow-other-keys) (lambda* (#:key vendor-dir #:allow-other-keys)
@ -3635,13 +3652,14 @@ for dealing with different structured file formats.")
(replace 'build (replace 'build
(assoc-ref gnu:%standard-phases 'build)) (assoc-ref gnu:%standard-phases 'build))
(replace 'check (replace 'check
(lambda* args (lambda* (#:key tests? #:allow-other-keys #:rest args)
((assoc-ref gnu:%standard-phases 'check) (when tests?
#:test-target "check"))) ((assoc-ref gnu:%standard-phases 'check)
#:test-target "check"))))
(replace 'install (replace 'install
(assoc-ref gnu:%standard-phases 'install))))) (assoc-ref gnu:%standard-phases 'install)))))
(native-inputs (list `(,glib "bin") gobject-introspection pkg-config vala)) (native-inputs (list gdk-pixbuf `(,glib "bin") gobject-introspection pkg-config vala))
(inputs (list freetype harfbuzz libxml2 pango)) (inputs (list freetype gobject-introspection harfbuzz libxml2 pango))
(propagated-inputs (list cairo gdk-pixbuf glib)) (propagated-inputs (list cairo gdk-pixbuf glib))
(synopsis "SVG rendering library") (synopsis "SVG rendering library")
(description "Librsvg is a library to render SVG images to Cairo surfaces. (description "Librsvg is a library to render SVG images to Cairo surfaces.
@ -8750,8 +8768,25 @@ the available networks and allows users to easily switch between them.")
library.") library.")
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
;; This is the last release providing the 2.6 API, hence the name.
;; This is needed by tascam-gtk ;; This is needed by tascam-gtk
(define-public libxml++-3
(package
(inherit libxml++)
(name "libxml++")
(version "3.2.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/libxmlplusplus/libxmlplusplus")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "07f6l9ka63dnc85npxq5g7bn1ja7lad0w2wixqdlyabdvc4l2hp5"))))
(propagated-inputs (modify-inputs (package-propagated-inputs libxml++)
(append glibmm-2.64)))))
;; This is the last release providing the 2.6 API, hence the name.
(define-public libxml++-2 (define-public libxml++-2
(package (package
(inherit libxml++) (inherit libxml++)

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012-2021, 2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2015, 2018 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2015, 2018 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014, 2018 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014, 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014, 2015, 2016, 2020 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016, 2020 Mark H Weaver <mhw@netris.org>
@ -130,11 +130,10 @@
(symlink (string-append "lock-obj-pub." triplet ".h") (symlink (string-append "lock-obj-pub." triplet ".h")
(string-append "src/syscfg/lock-obj-pub." (string-append "src/syscfg/lock-obj-pub."
source ".h"))) source ".h")))
#$(let* ((target (%current-target-system)) #$(let ((target (%current-target-system)))
(architecture
(string-take target (string-index target #\-))))
(cond ((target-linux? target) (cond ((target-linux? target)
(match architecture (match (string-take target
(string-index target #\-))
("armhf" ("armhf"
`(link "arm-unknown-linux-gnueabi" "linux-gnu")) `(link "arm-unknown-linux-gnueabi" "linux-gnu"))
("mips64el" ("mips64el"

View File

@ -1490,11 +1490,11 @@ in Julia).")
(define-public openmw-openscenegraph (define-public openmw-openscenegraph
;; OpenMW prefers its own fork of openscenegraph: ;; OpenMW prefers its own fork of openscenegraph:
;; https://wiki.openmw.org/index.php?title=Development_Environment_Setup#OpenSceneGraph. ;; https://wiki.openmw.org/index.php?title=Development_Environment_Setup#OpenSceneGraph.
(let ((commit "69cfecebfb6dc703b42e8de39eed750a84a87489")) (let ((commit "68c5c573d47766507bfb191e0c8d213b1997ad20"))
(hidden-package (hidden-package
(package (package
(inherit openscenegraph) (inherit openscenegraph)
(version (git-version "3.6" "2" commit)) (version (git-version "3.6" "3" commit))
(outputs (list "out")) (outputs (list "out"))
(source (source
(origin (origin
@ -1505,7 +1505,7 @@ in Julia).")
(file-name (git-file-name (package-name openscenegraph) version)) (file-name (git-file-name (package-name openscenegraph) version))
(sha256 (sha256
(base32 (base32
"1qayk2gklm8zvss90dcjfxv6717rvcmwmgmgyy1qzkli67a0zbw2")))) "12xgdmymjh4rb7djzniy15lvi45y0x4i0l5swf031r8g4zn72v2n"))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments openscenegraph) (substitute-keyword-arguments (package-arguments openscenegraph)
((#:configure-flags flags) ((#:configure-flags flags)

View File

@ -806,7 +806,8 @@ ever use this library.")
;; The CI test suite fails completely on powerpc-linux. ;; The CI test suite fails completely on powerpc-linux.
;; The name org.gnome.SessionManager was not provided by any .service ;; The name org.gnome.SessionManager was not provided by any .service
;; TODO: Wrap 'check phase with 'tests?'. ;; TODO: Wrap 'check phase with 'tests?'.
#$@(if (not (target-ppc32?)) #$@(if (not (or (target-ppc32?)
(%current-target-system)))
#~((add-after 'install 'check #~((add-after 'install 'check
(lambda _ (lambda _
;; xfconfd requires a writable HOME ;; xfconfd requires a writable HOME

View File

@ -1106,7 +1106,7 @@ for calling methods on remote servers by exchanging JSON objects.")
(define-public guile-ares-rs (define-public guile-ares-rs
(package (package
(name "guile-ares-rs") (name "guile-ares-rs")
(version "0.9.0") (version "0.9.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -1116,7 +1116,7 @@ for calling methods on remote servers by exchanging JSON objects.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0jl4k54ydi1qxdvif4di0ri5jznlfc2gg1qhs94bhk4y22k0gp8c")))) "173jg8z0cwq5r67lzxsmyir5f6cxd9i5gzb3qryq71cqq4h1c77n"))))
(build-system guile-build-system) (build-system guile-build-system)
(arguments (arguments
(list (list
@ -5437,49 +5437,41 @@ high-level API for network management that uses rtnetlink.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (string-append name "-" version)) (file-name (string-append name "-" version))
(sha256 (sha256
(base32 (base32 "0srkmchd4kmfa7q65r6fdzwklhgdlck1ll0s7smzs8ddjdgz2lwm"))))
"0srkmchd4kmfa7q65r6fdzwklhgdlck1ll0s7smzs8ddjdgz2lwm"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings `(#:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings
#:modules (((guix build guile-build-system) #:modules (((guix build guile-build-system)
#:select (target-guile-effective-version)) #:select (target-guile-effective-version))
,@%gnu-build-system-modules) ,@%gnu-build-system-modules)
#:imported-modules ((guix build guile-build-system) #:imported-modules ((guix build guile-build-system)
,@%gnu-build-system-modules) ,@%gnu-build-system-modules)
#:phases #:phases (modify-phases %standard-phases
(modify-phases %standard-phases (add-after 'install 'wrap-program
(add-after 'install 'wrap-program (lambda* (#:key inputs outputs #:allow-other-keys)
(lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out"))
(let* ((out (assoc-ref outputs "out")) (bin (string-append out "/bin"))
(bin (string-append out "/bin")) (guile-lib (assoc-ref inputs "guile2.2-lib"))
(guile-lib (assoc-ref inputs "guile-lib")) (json (assoc-ref inputs "guile2.2-json"))
(json (assoc-ref inputs "guile-json")) (tls (assoc-ref inputs "guile2.2-gnutls"))
(tls (assoc-ref inputs "guile-gnutls")) (version (target-guile-effective-version))
(version (target-guile-effective-version)) (scm (string-append "/share/guile/site/" version))
(scm (string-append "/share/guile/site/" (go (string-append "/lib/guile/" version
version)) "/site-ccache")))
(go (string-append "/lib/guile/" (wrap-program (string-append bin "/gitlab-cli")
version "/site-ccache"))) `("GUILE_LOAD_PATH" prefix
(wrap-program (string-append bin "/gitlab-cli") (,(string-append out scm) ,(string-append
`("GUILE_LOAD_PATH" prefix guile-lib scm)
(,(string-append out scm) ,(string-append json scm)
,(string-append guile-lib scm) ,(string-append tls scm)))
,(string-append json scm) `("GUILE_LOAD_COMPILED_PATH" prefix
,(string-append tls scm))) (,(string-append out go) ,(string-append guile-lib
`("GUILE_LOAD_COMPILED_PATH" prefix go)
(,(string-append out go) ,(string-append json go)
,(string-append guile-lib go) ,(string-append tls go))))))))))
,(string-append json go) (native-inputs (list autoconf automake pkg-config texinfo))
,(string-append tls go)))))))))) (inputs (list bash-minimal guile-2.2 guile2.2-json guile2.2-lib
(native-inputs guile2.2-gnutls))
(list autoconf automake pkg-config texinfo))
(inputs
`(("bash" ,bash-minimal)
("guile" ,guile-2.2)
("guile-json" ,guile2.2-json)
("guile-lib" ,guile2.2-lib)
("guile-gnutls" ,guile2.2-gnutls)))
(home-page "https://github.com/artyom-poptsov/guile-gitlab") (home-page "https://github.com/artyom-poptsov/guile-gitlab")
(synopsis "Guile interface to GitLab") (synopsis "Guile interface to GitLab")
(description (description
@ -5491,7 +5483,7 @@ GitLab instance.")
(define-public guile-smc (define-public guile-smc
(package (package
(name "guile-smc") (name "guile-smc")
(version "0.6.2") (version "0.6.3")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -5501,7 +5493,7 @@ GitLab instance.")
(file-name (string-append name "-" version)) (file-name (string-append name "-" version))
(sha256 (sha256
(base32 (base32
"11083lj048ab5zsdgwpkshxi8v5nfdr7kvmmslszbi7lq2pwfqig")))) "1gjwz1l2ls4xkkgg4d2vw3a1klc4var03ab4k6lq1jifdvc8n51f"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings `(#:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017, 2019, 2020, 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017, 2019, 2020, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018, 2020, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017-2020, 2022, 2023 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017-2020, 2022, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
@ -618,6 +618,21 @@ Javascript library, adding sorting, paging and filtering abilities to plain
HTML tables with minimal effort.") HTML tables with minimal effort.")
(license license:expat))) (license license:expat)))
(define-public js-datatables-1.9
(package
(inherit js-datatables)
(name "js-datatables")
(version "1.9.4")
(source (origin
(method url-fetch)
(uri (string-append "https://datatables.net/releases/DataTables-"
version ".zip"))
(sha256
(base32
"0yd6548cbpb4hlpwybjp93b9m084n5rba6v1x5n83y0dvlxcd06g"))))
(arguments
(list #:javascript-files '(list "media/js/jquery.dataTables.js")))))
(define-public js-requirejs (define-public js-requirejs
(package (package
(name "js-requirejs") (name "js-requirejs")

View File

@ -3,6 +3,7 @@
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2022 Pradana Aumars <paumars@courrier.dev> ;;; Copyright © 2022 Pradana Aumars <paumars@courrier.dev>
;;; Copyright © 2023 Zhu Zihao <all_but_last@163.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -25,6 +26,7 @@
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix download) #:use-module (guix download)
@ -38,43 +40,34 @@
(define-public lean (define-public lean
(package (package
(name "lean") (name "lean")
(version "3.41.0") (version "3.51.1")
(home-page "https://github.com/leanprover-community/lean") (home-page "https://lean-lang.org" )
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (url home-page) (uri (git-reference
(commit (string-append "v" version)))) (url "https://github.com/leanprover-community/lean")
(commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0mpxlfjq460x1vi3v6qzgjv74asg0qlhykd51pj347795x5b1hf1")))) "17g4d3lqnbl1yfy2pjannf73v8qhc5003d2jkmrqiy05zkqs8d9n"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs (inputs
(list bash-minimal gmp)) (list gmp))
(arguments (arguments
`(#:build-type "Release" ; default upstream build type (list
;; XXX: Test phases currently fail on 32-bit sytems. #:build-type "Release" ; default upstream build type
;; Tests for those architectures have been temporarily ;; XXX: Test phases currently fail on 32-bit sytems.
;; disabled, pending further investigation. ;; Tests for those architectures have been temporarily
#:tests? ,(and (not (%current-target-system)) ;; disabled, pending further investigation.
(let ((arch (%current-system))) #:tests? (and (not (%current-target-system))
(not (or (string-prefix? "i686" arch) (let ((arch (%current-system)))
(string-prefix? "armhf" arch))))) (not (or (string-prefix? "i686" arch)
#:phases (string-prefix? "armhf" arch)))))
(modify-phases %standard-phases #:phases
(add-after 'patch-source-shebangs 'patch-tests-shebangs #~(modify-phases %standard-phases
(lambda _ (add-before 'configure 'chdir-to-src
(let ((sh (which "sh")) (lambda _ (chdir "src"))))))
(bash (which "bash")))
(substitute* (find-files "tests/lean" "\\.sh$")
(("#![[:blank:]]?/bin/sh")
(string-append "#!" sh))
(("#![[:blank:]]?/bin/bash")
(string-append "#!" bash))
(("#![[:blank:]]?usr/bin/env bash")
(string-append "#!" bash))))))
(add-before 'configure 'chdir-to-src
(lambda _ (chdir "src"))))))
(synopsis "Theorem prover and programming language") (synopsis "Theorem prover and programming language")
(description (description
"Lean is a theorem prover and programming language with a small trusted "Lean is a theorem prover and programming language with a small trusted

View File

@ -493,7 +493,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernels. That is, the most recently released major ;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream. ;; versions that are still supported upstream.
(define-public linux-libre-6.6-version "6.6.3") (define-public linux-libre-6.6-version "6.6.7")
(define-public linux-libre-6.6-gnu-revision "gnu") (define-public linux-libre-6.6-gnu-revision "gnu")
(define deblob-scripts-6.6 (define deblob-scripts-6.6
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -503,30 +503,15 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1hg3ck1j8288fhlhcvhgs1zzwh3i62nfvphw7x3vsaqr75kiwbjp"))) (base32 "1hg3ck1j8288fhlhcvhgs1zzwh3i62nfvphw7x3vsaqr75kiwbjp")))
(define-public linux-libre-6.6-pristine-source (define-public linux-libre-6.6-pristine-source
(let ((version linux-libre-6.6-version) (let ((version linux-libre-6.6-version)
(hash (base32 "19wmjkyyv5glv1w647qisrv829hhhpba5x905a7p7kch9wyzrv98"))) (hash (base32 "0hfqdyxl4nqmm4pspfm1ang8616dbsaj0d968c0186ch0738xrhc")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-6.6))) deblob-scripts-6.6)))
(define-public linux-libre-6.5-version "6.5.13")
(define-public linux-libre-6.5-gnu-revision "gnu")
(define deblob-scripts-6.5
(linux-libre-deblob-scripts
linux-libre-6.5-version
linux-libre-6.5-gnu-revision
(base32 "01mm6v67bcrhgm97axsw46x0iix9im7hmlb765f3bkjhwklpxdy7")
(base32 "066z5lw5vrfayhv23hpfcm6fh6b7zmn2v13kfv1g3z3jl1wblhfh")))
(define-public linux-libre-6.5-pristine-source
(let ((version linux-libre-6.5-version)
(hash (base32 "1dfbbydmayfj9npx3z0g38p574pmcx3qgs49dv0npigl48wd9yvq")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.5)))
;; The "longterm" kernels — the older releases with long-term upstream support. ;; The "longterm" kernels — the older releases with long-term upstream support.
;; Here are the support timelines: ;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html> ;; <https://www.kernel.org/category/releases.html>
(define-public linux-libre-6.1-version "6.1.64") (define-public linux-libre-6.1-version "6.1.68")
(define-public linux-libre-6.1-gnu-revision "gnu") (define-public linux-libre-6.1-gnu-revision "gnu")
(define deblob-scripts-6.1 (define deblob-scripts-6.1
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -536,12 +521,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1hdibv43xbn1lv83i6qjgfmf1bvqxvq17fryfsq4r4sjgs9212js"))) (base32 "1hdibv43xbn1lv83i6qjgfmf1bvqxvq17fryfsq4r4sjgs9212js")))
(define-public linux-libre-6.1-pristine-source (define-public linux-libre-6.1-pristine-source
(let ((version linux-libre-6.1-version) (let ((version linux-libre-6.1-version)
(hash (base32 "1ry7dp39010hfja1wial6r6q6ilgygwm7gdz22bg4rzaycwam7b2"))) (hash (base32 "1qc4cwqlfni9i6mzh6arghdsd842hp9lb7s832dxw1p261mg4prn")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-6.1))) deblob-scripts-6.1)))
(define-public linux-libre-5.15-version "5.15.140") (define-public linux-libre-5.15-version "5.15.143")
(define-public linux-libre-5.15-gnu-revision "gnu") (define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15 (define deblob-scripts-5.15
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -551,12 +536,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1idjrn2w8jrixj8ifkk1awxyyq5042nc4p2mld4rda96azlnp948"))) (base32 "1idjrn2w8jrixj8ifkk1awxyyq5042nc4p2mld4rda96azlnp948")))
(define-public linux-libre-5.15-pristine-source (define-public linux-libre-5.15-pristine-source
(let ((version linux-libre-5.15-version) (let ((version linux-libre-5.15-version)
(hash (base32 "0isa9si9wjn10lw41431wdqsbp9y685ch5lzhwswng3g6j5ywaxy"))) (hash (base32 "00lyv7zsj97mkg9i7dkb1a6km22mnr0qr687d9zz4ckjq1pb2sq9")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-5.15))) deblob-scripts-5.15)))
(define-public linux-libre-5.10-version "5.10.202") (define-public linux-libre-5.10-version "5.10.204")
(define-public linux-libre-5.10-gnu-revision "gnu1") (define-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10 (define deblob-scripts-5.10
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -566,12 +551,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0xrrnmb5kcc5r21bdm24aq0fnkk1imn367c1cxlj78b6l6gigx4b"))) (base32 "0xrrnmb5kcc5r21bdm24aq0fnkk1imn367c1cxlj78b6l6gigx4b")))
(define-public linux-libre-5.10-pristine-source (define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version) (let ((version linux-libre-5.10-version)
(hash (base32 "12zs2bz2plps6xp80sdg36zkyr00rf5l5c85jl4dd7b9klly04ij"))) (hash (base32 "1vnamiyr378q52xgkg7kvpx80zck729dim77vp06a3q6n580g5gz")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-5.10))) deblob-scripts-5.10)))
(define-public linux-libre-5.4-version "5.4.262") (define-public linux-libre-5.4-version "5.4.264")
(define-public linux-libre-5.4-gnu-revision "gnu1") (define-public linux-libre-5.4-gnu-revision "gnu1")
(define deblob-scripts-5.4 (define deblob-scripts-5.4
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -581,12 +566,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0sw67b2pk3lng4y67diqqnhxaggnp3nbkx8dxc5fs27rinfxr4m1"))) (base32 "0sw67b2pk3lng4y67diqqnhxaggnp3nbkx8dxc5fs27rinfxr4m1")))
(define-public linux-libre-5.4-pristine-source (define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version) (let ((version linux-libre-5.4-version)
(hash (base32 "1p34x33gkvpv26zcrpx1i6dr7dknyxj8gnp6caqb8sj58h3slgkx"))) (hash (base32 "1c5n47dq9khb15hz24a000k3hj913vv1dda6famnm8wpjbfr176k")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-5.4))) deblob-scripts-5.4)))
(define-public linux-libre-4.19-version "4.19.300") (define-public linux-libre-4.19-version "4.19.302")
(define-public linux-libre-4.19-gnu-revision "gnu1") (define-public linux-libre-4.19-gnu-revision "gnu1")
(define deblob-scripts-4.19 (define deblob-scripts-4.19
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -596,12 +581,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1425mhkfxn18vxn05bb4h3li7x1jl7l1hf1zi8xhnqv3wa31h9wl"))) (base32 "1425mhkfxn18vxn05bb4h3li7x1jl7l1hf1zi8xhnqv3wa31h9wl")))
(define-public linux-libre-4.19-pristine-source (define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version) (let ((version linux-libre-4.19-version)
(hash (base32 "0ilksl94gjpc4pzc90swfawsl8lvibpq14nkaxzl0831i219ahd8"))) (hash (base32 "1kkkpm34p5rq0iijzrzwaq0cb62w543argargw5p1wzg8803rlsk")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.19))) deblob-scripts-4.19)))
(define-public linux-libre-4.14-version "4.14.331") (define-public linux-libre-4.14-version "4.14.333")
(define-public linux-libre-4.14-gnu-revision "gnu1") (define-public linux-libre-4.14-gnu-revision "gnu1")
(define deblob-scripts-4.14 (define deblob-scripts-4.14
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -611,7 +596,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1faagsj4i31z2bp83hflx3q9vrddjnn37a3ah2b47iaplva7z1nd"))) (base32 "1faagsj4i31z2bp83hflx3q9vrddjnn37a3ah2b47iaplva7z1nd")))
(define-public linux-libre-4.14-pristine-source (define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version) (let ((version linux-libre-4.14-version)
(hash (base32 "03sk82dgvccv70i3hy8gf2hw0n4m305f7rxjw93p7jnjrbpdrp1r"))) (hash (base32 "0j5nrankrhi56qzmyjg1pznqx1zgk5f7cfa154smjbn3zlm7lcv6")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.14))) deblob-scripts-4.14)))
@ -649,11 +634,6 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(list %boot-logo-patch (list %boot-logo-patch
%linux-libre-arm-export-__sync_icache_dcache-patch))) %linux-libre-arm-export-__sync_icache_dcache-patch)))
(define-public linux-libre-6.5-source
(source-with-patches linux-libre-6.5-pristine-source
(list %boot-logo-patch
%linux-libre-arm-export-__sync_icache_dcache-patch)))
(define-public linux-libre-6.1-source (define-public linux-libre-6.1-source
(source-with-patches linux-libre-6.1-pristine-source (source-with-patches linux-libre-6.1-pristine-source
(append (append
@ -773,11 +753,6 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
linux-libre-6.6-gnu-revision linux-libre-6.6-gnu-revision
linux-libre-6.6-source)) linux-libre-6.6-source))
(define-public linux-libre-headers-6.5
(make-linux-libre-headers* linux-libre-6.5-version
linux-libre-6.5-gnu-revision
linux-libre-6.5-source))
(define-public linux-libre-headers-6.1 (define-public linux-libre-headers-6.1
(make-linux-libre-headers* linux-libre-6.1-version (make-linux-libre-headers* linux-libre-6.1-version
linux-libre-6.1-gnu-revision linux-libre-6.1-gnu-revision
@ -1131,14 +1106,6 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
(define-public linux-libre-source linux-libre-6.6-source) (define-public linux-libre-source linux-libre-6.6-source)
(define-public linux-libre linux-libre-6.6) (define-public linux-libre linux-libre-6.6)
(define-public linux-libre-6.5
(make-linux-libre* linux-libre-6.5-version
linux-libre-6.5-gnu-revision
linux-libre-6.5-source
'("x86_64-linux" "i686-linux" "armhf-linux"
"aarch64-linux" "powerpc64le-linux" "riscv64-linux")
#:configuration-file kernel-config))
(define-public linux-libre-6.1 (define-public linux-libre-6.1
(make-linux-libre* linux-libre-6.1-version (make-linux-libre* linux-libre-6.1-version
linux-libre-6.1-gnu-revision linux-libre-6.1-gnu-revision
@ -6618,17 +6585,17 @@ by hand is no trivial task: @command{tmon} aims to make it understandable.")
(source (package-source linux-libre)) (source (package-source linux-libre))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; no test suite (list
#:make-flags #:tests? #f ;no test suite
(list (string-append "CC=" ,(cc-for-target)) #:make-flags
(string-append "PREFIX=" (assoc-ref %outputs "out"))) #~(list (string-append "CC=" #$(cc-for-target))
#:phases (string-append "PREFIX=" #$output))
(modify-phases %standard-phases #:phases
(add-after 'unpack 'enter-subdirectory #~(modify-phases %standard-phases
(lambda _ (add-after 'unpack 'enter-subdirectory
(chdir "tools/power/x86/turbostat") (lambda _
#t)) (chdir "tools/power/x86/turbostat")))
(delete 'configure)))) ; no configure script (delete 'configure)))) ;no configure script
(inputs (inputs
(list libcap)) (list libcap))
(supported-systems '("i686-linux" "x86_64-linux")) (supported-systems '("i686-linux" "x86_64-linux"))
@ -9357,7 +9324,7 @@ types and interfaces and translates so that the X server can use them.")
(define-public pipewire (define-public pipewire
(package (package
(name "pipewire") (name "pipewire")
(version "0.3.77") (version "1.0.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -9366,7 +9333,7 @@ types and interfaces and translates so that the X server can use them.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"11jdd9ljm6967cdp97qqf5fa02ad69kdgk3212ap5gfndky2h43m")))) "0a8wvsnbgqanp2vjdpkaxpny0k17hz720rd20zdi00s9xjbcrycr"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
(list (list
@ -9380,6 +9347,8 @@ types and interfaces and translates so that the X server can use them.")
(native-inputs (native-inputs
(list `(,glib "bin") (list `(,glib "bin")
pkg-config pkg-config
doxygen
python
python-docutils)) python-docutils))
(inputs (list alsa-lib (inputs (list alsa-lib
avahi avahi

View File

@ -9995,8 +9995,8 @@ implementation specific equivalent.")
(sbcl-package->ecl-package sbcl-trivial-macroexpand-all)) (sbcl-package->ecl-package sbcl-trivial-macroexpand-all))
(define-public sbcl-serapeum (define-public sbcl-serapeum
(let ((commit "47217ab69f76673db7e1fa65665ab804fb46d974") (let ((commit "c08442a9757b7fa30ac345cb040e1642f97f6b78")
(revision "11")) (revision "12"))
(package (package
(name "sbcl-serapeum") (name "sbcl-serapeum")
(version (git-version "0.0.0" revision commit)) (version (git-version "0.0.0" revision commit))
@ -10009,7 +10009,7 @@ implementation specific equivalent.")
(commit commit))) (commit commit)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1mr868z1za6vfhb7gq3j7c1rb606gqfzschxdy7wcqx5xv3ndgpa")))) (base32 "1sabd048agvgv7bhbw126rci9hf45fk08zhghcv6an2h6xwmc3qv"))))
(build-system asdf-build-system/sbcl) (build-system asdf-build-system/sbcl)
(inputs (inputs
(list sbcl-alexandria (list sbcl-alexandria
@ -19190,6 +19190,43 @@ Lisp.")
(define-public cl-percent-encoding (define-public cl-percent-encoding
(sbcl-package->cl-source-package sbcl-percent-encoding)) (sbcl-package->cl-source-package sbcl-percent-encoding))
(define-public sbcl-machine-state
(let ((commit "afa7392bc5dcb689cd170bcca765fb6ce6e4efc5")
(revision "1"))
(package
(name "sbcl-machine-state")
(version (git-version "1.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Shinmera/machine-state")
(commit commit)))
(file-name (git-file-name "machine-state" version))
(sha256
(base32 "1b897wj06cnalzf5nl6rif1skpa79rzc9a562x1bdhvanhsp7hwa"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-bordeaux-threads
sbcl-cffi
sbcl-cl-opengl
sbcl-documentation-utils))
(arguments
'(#:tests? #f ; No tests.
#:asd-systems '("machine-state" "machine-state/opengl")))
(home-page "https://notabug.org/cage/cl-mount-info.git")
(synopsis "Retrieve machine state information about CPU time, memory usage and more")
(description
"This library implements various functions to access status information
about the machine, process, etc.")
(license license:zlib))))
(define-public ecl-machine-state
(sbcl-package->ecl-package sbcl-machine-state))
(define-public cl-machine-state
(sbcl-package->cl-source-package sbcl-machine-state))
(define-public sbcl-cl-mount-info (define-public sbcl-cl-mount-info
(let ((commit "2024f5037a7f63db3e3587dc9972cd7b9318f06b") (let ((commit "2024f5037a7f63db3e3587dc9972cd7b9318f06b")
(revision "1")) (revision "1"))

View File

@ -1024,15 +1024,6 @@ the HTML documentation of TXR.")
(string-append "INSTALL" match #$output (string-append "INSTALL" match #$output
"/share/doc/" #$name "-" #$version))))) "/share/doc/" #$name "-" #$version)))))
(delete 'install-license-files) (delete 'install-license-files)
(add-after 'unpack 'inhibit-doc-syms-generation
(lambda _
(substitute* "genman.txr"
;; Exit from genman.txr before it tries to write to
;; stdlib/doc-syms.tl, which is anyway kept up to date
;; with each release (and is already compiled to
;; stdlib/doc-syms.tlo when genman.txr is run).
(("^@\\(output \"stdlib/doc-syms\\.tl\"\\).*" line)
(string-append "@(do (exit))\n" line)))))
(add-after 'unpack 'fix-paths (add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(substitute* "stream.c" (substitute* "stream.c"

View File

@ -115,7 +115,8 @@ as \"x86_64-linux\"."
("riscv64" => "RISCV64") ("riscv64" => "RISCV64")
("x86_64" => "X86_64") ("x86_64" => "X86_64")
("i686" => "X86") ("i686" => "X86")
("i586" => "X86")))) ("i586" => "X86")
("avr" => "AVR"))))
(define (llvm-uri component version) (define (llvm-uri component version)
;; LLVM release candidate file names are formatted 'tool-A.B.C-rcN/tool-A.B.CrcN.src.tar.xz' ;; LLVM release candidate file names are formatted 'tool-A.B.C-rcN/tool-A.B.CrcN.src.tar.xz'
@ -603,13 +604,13 @@ output), and Binutils.")
'(("14.0.6" . "14f8nlvnmdkp9a9a79wv67jbmafvabczhah8rwnqrgd5g3hfxxxx") '(("14.0.6" . "14f8nlvnmdkp9a9a79wv67jbmafvabczhah8rwnqrgd5g3hfxxxx")
("15.0.7" . "12sggw15sxq1krh1mfk3c1f07h895jlxbcifpwk3pznh4m1rjfy2") ("15.0.7" . "12sggw15sxq1krh1mfk3c1f07h895jlxbcifpwk3pznh4m1rjfy2")
("16.0.6" . "0jxmapg7shwkl88m4mqgfjv4ziqdmnppxhjz6vz51ycp2x4nmjky") ("16.0.6" . "0jxmapg7shwkl88m4mqgfjv4ziqdmnppxhjz6vz51ycp2x4nmjky")
("17.0.5" . "149flpr96vcn7a1ckya6mm93m9yp85l47w156fjd0r99ydxrw5kv"))) ("17.0.6" . "1a7rq3rgw5vxm8y39fyzr4kv7w97lli4a0c1qrkchwk8p0n07hgh")))
(define %llvm-patches (define %llvm-patches
'(("14.0.6" . ("clang-14.0-libc-search-path.patch")) '(("14.0.6" . ("clang-14.0-libc-search-path.patch"))
("15.0.7" . ("clang-15.0-libc-search-path.patch")) ("15.0.7" . ("clang-15.0-libc-search-path.patch"))
("16.0.6" . ("clang-16.0-libc-search-path.patch")) ("16.0.6" . ("clang-16.0-libc-search-path.patch"))
("17.0.5" . ("clang-17.0-libc-search-path.patch")))) ("17.0.6" . ("clang-17.0-libc-search-path.patch"))))
(define (llvm-monorepo version) (define (llvm-monorepo version)
(origin (origin
@ -706,6 +707,10 @@ of programming tools as well as libraries with equivalent functionality.")
#$(string-append "-DLLVM_TARGETS_TO_BUILD=" #$(string-append "-DLLVM_TARGETS_TO_BUILD="
(system->llvm-target))) (system->llvm-target)))
'()) '())
;; undefined reference to `__atomic_fetch_add_8' in lib/libLLVMOrcJIT.so.14
#$@(if (target-ppc32?)
(list "-DCMAKE_SHARED_LINKER_FLAGS=-latomic")
`())
"-DCMAKE_SKIP_BUILD_RPATH=FALSE" "-DCMAKE_SKIP_BUILD_RPATH=FALSE"
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE" "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
"-DBUILD_SHARED_LIBS:BOOL=TRUE" "-DBUILD_SHARED_LIBS:BOOL=TRUE"
@ -1502,7 +1507,7 @@ Library.")
(define-public llvm-17 (define-public llvm-17
(package (package
(inherit llvm-15) (inherit llvm-15)
(version "17.0.5") (version "17.0.6")
(source (llvm-monorepo version)))) (source (llvm-monorepo version))))
(define-public clang-runtime-17 (define-public clang-runtime-17
@ -1518,7 +1523,7 @@ Library.")
(package-version llvm-17))) (package-version llvm-17)))
(sha256 (sha256
(base32 (base32
"12dbp10bhq25a44qnvz978mf9y6pdycwpp7sgq8a93by0fpgb72r"))))) "1f8szx762c325916gjxb5lw7zxyidynwnvx6fxxqscsx8514cxxa")))))
(define-public libomp-17 (define-public libomp-17
(package (package

View File

@ -33,7 +33,7 @@
(define-public moreutils (define-public moreutils
(package (package
(name "moreutils") (name "moreutils")
(version "0.67") (version "0.68")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -42,7 +42,7 @@
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"045d2dfvsd4sxxr2i2qvkpgvi912qj9vc4gpc8fb4hr9q912z1q3")))) "1rxn01hgm5nypcpnl4s9v5zr4fxzf8vxinzbg0s781qlpk3lpcay"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list #:phases (list #:phases

View File

@ -204,6 +204,46 @@
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module ((srfi srfi-1) #:select (last))) #:use-module ((srfi srfi-1) #:select (last)))
(define-public alsa-scarlett-gui
(package
(name "alsa-scarlett-gui")
(version "0.3.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/geoffreybennett/alsa-scarlett-gui")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1nd764vd7qfy2x8dqapiyh5yrxjimm8b4himhm1qkgpf5hvh734l"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #false ;there is no check target
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
(string-append "PREFIX=" #$output))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(substitute* "src/Makefile"
((" cc -o")
(string-append " "
#$(cc-for-target) " -o")))
(chdir "src")))
(delete 'configure))))
(inputs
(list alsa-lib glib gtk))
(native-inputs
(list `(,glib "bin") pkg-config))
(home-page "https://github.com/geoffreybennett/alsa-scarlett-gui")
(synopsis "ALSA Scarlett2 control panel")
(description "This package provides a Gtk4 GUI for the ALSA controls
presented by the Linux kernel Focusrite Scarlett2 USB Protocol Mixer Driver.")
(license license:gpl3+)))
(define-public audacious (define-public audacious
(package (package
(name "audacious") (name "audacious")
@ -1895,7 +1935,7 @@ complete studio.")
(define-public tascam-gtk (define-public tascam-gtk
;; This commit represents the latest version at the time of this writing. ;; This commit represents the latest version at the time of this writing.
(let ((commit "17b8575ff88dfd2ede0f7ef9c5c5597ab8a00702") (let ((commit "69fb86f31efcdb27c7854d2a190457aab42b337a")
(revision "0")) (revision "0"))
(package (package
(name "tascam-gtk") (name "tascam-gtk")
@ -1908,10 +1948,10 @@ complete studio.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"07k7rccqqg7lnygkh97a200l1i6s1rl92n01v0q6n4257sinir6f")))) "05fbs5s24nwr6b10jgjhsfi7aj6y65kcickmygl7g84xvsnykdb0"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
(list liblo gtkmm-3 alsa-lib libxml++-2)) (list liblo gtkmm-3 alsa-lib libxml++-3))
(native-inputs (native-inputs
(list `(,glib "bin") pkg-config)) (list `(,glib "bin") pkg-config))
(home-page "https://github.com/onkelDead/tascam-gtk") (home-page "https://github.com/onkelDead/tascam-gtk")

View File

@ -21,14 +21,14 @@
(define-module (gnu packages ncdu) (define-module (gnu packages ncdu)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
#:use-module (guix licenses) #:use-module (guix licenses)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (gnu packages perl) #:use-module (guix build-system zig))
#:use-module (gnu packages zig))
(define-public ncdu-1 (define-public ncdu-1
;; This old version is LTS. Version 2 works fine and has more features, ;; This old version is LTS. Version 2 works fine and has more features,
@ -73,28 +73,16 @@ ncurses installed.")
#~(begin #~(begin
;; Delete a pregenerated man page. We'll build it ourselves. ;; Delete a pregenerated man page. We'll build it ourselves.
(delete-file "ncdu.1"))))) (delete-file "ncdu.1")))))
(build-system zig-build-system)
(arguments (arguments
(list (list
#:make-flags
#~(list (string-append "PREFIX=" #$output)
(string-append "CC=" #$(cc-for-target))
(string-append "ZIG_FLAGS=-Drelease-fast"))
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(delete 'configure) ; No configure script. (delete 'validate-runpath)
(add-before 'build 'pre-build
(lambda _
(setenv "ZIG_GLOBAL_CACHE_DIR"
(mkdtemp "/tmp/zig-cache-XXXXXX"))))
(add-after 'build 'build-manpage (add-after 'build 'build-manpage
(lambda _ (lambda _
(invoke "make" "doc"))) (invoke "make" "doc"))))))
(replace 'check (native-inputs (list perl))
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "zig" "test" "build.zig")))))))
(native-inputs
(list perl zig-0.10))
(properties `((tunable? . #t))))) (properties `((tunable? . #t)))))
(define-public ncdu-2 (define-public ncdu-2

View File

@ -330,8 +330,9 @@ of your system.")
"1460d5lc780p3q38l3wc9jfr2a7zlyrcra0li65aynj738cam9yl")))) "1460d5lc780p3q38l3wc9jfr2a7zlyrcra0li65aynj738cam9yl"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f ; no test target `(#:tests? #f ; no test target
#:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))) #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))
(string-append "CC=" ,(cc-for-target)))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure) ; there is no configure script (delete 'configure) ; there is no configure script
@ -339,8 +340,7 @@ of your system.")
(add-before 'build 'patch-ncursesw (add-before 'build 'patch-ncursesw
(lambda _ (lambda _
(substitute* "stfl_internals.h" (substitute* "stfl_internals.h"
(("ncursesw/") "")) (("ncursesw/") ""))))
#t))
(add-after 'install 'install-missing-symlink (add-after 'install 'install-missing-symlink
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))

View File

@ -2677,7 +2677,7 @@ that block port 22.")
(define-public iperf (define-public iperf
(package (package
(name "iperf") (name "iperf")
(version "3.15") (version "3.16")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -2686,7 +2686,7 @@ that block port 22.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "10fzz3j2kx36yhqd0mvwlawvhdbcm0qc41i3f6jf6a5whm70177q")))) (base32 "0m8zhr050qgmkkaf0jgn2isrr7yyk8majx9c18pf1xsqpr00sxs6"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags

View File

@ -4,6 +4,7 @@
;;; Copyright © 2020 Eric Bavier <bavier@posteo.net> ;;; Copyright © 2020 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -46,6 +47,15 @@
(define %fpc-release-date "2021/05/19") (define %fpc-release-date "2021/05/19")
;;; FIXME: Bootstrap properly; these are prebuilt binaries. ;;; FIXME: Bootstrap properly; these are prebuilt binaries.
(define fpc-bootstrap-aarch64
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/freepascal/Linux/"
%fpc-version "/fpc-" %fpc-version ".aarch64-linux.tar"))
(sha256
(base32
"0lalar6qk04acb2j8p6654hlz0yj6zdab046zi82zf5mnvwp155k"))))
(define fpc-bootstrap-i386 (define fpc-bootstrap-i386
(origin (origin
(method url-fetch) (method url-fetch)
@ -55,6 +65,24 @@
(base32 (base32
"0n4r85dsr86zlk7r4hbd4nj14sda6rwgdgzxg4gj4q981fn80agn")))) "0n4r85dsr86zlk7r4hbd4nj14sda6rwgdgzxg4gj4q981fn80agn"))))
(define fpc-bootstrap-powerpc
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/freepascal/Linux/"
%fpc-version "/fpc-" %fpc-version ".powerpc-linux.tar"))
(sha256
(base32
"1zhdypm99bzs5706g4nxwajiadv82jwd87cr300lrivy1rzj5h4a"))))
(define fpc-bootstrap-powerpc64le
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/freepascal/Linux/"
%fpc-version "/fpc-" %fpc-version ".powerpc64le-linux.tar"))
(sha256
(base32
"12p3lmi1vn7agpw4pipp6ra8r85319sjcvbzh7z6kangmry7vic3"))))
(define fpc-bootstrap-x86_64 (define fpc-bootstrap-x86_64
(origin (origin
(method url-fetch) (method url-fetch)
@ -76,7 +104,8 @@
(sha256 (sha256
(base32 (base32
"07qna2pvlpa7j0i2wdixjxpizdvffv51nbr1waczk0xv8cq9kvw5")) "07qna2pvlpa7j0i2wdixjxpizdvffv51nbr1waczk0xv8cq9kvw5"))
(patches (search-patches "fpc-reproducibility.patch")) (patches (search-patches "fpc-reproducibility.patch"
"fpc-glibc-2.34-compat.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -90,16 +119,19 @@
(rename-file "install-man" "install/man") (rename-file "install-man" "install/man")
(delete-file "fpcsrc/tests/utils/dosbox/exitcode.exe"))))) (delete-file "fpcsrc/tests/utils/dosbox/exitcode.exe")))))
(build-system gnu-build-system) (build-system gnu-build-system)
(supported-systems '("i686-linux" "x86_64-linux")) (supported-systems '("i686-linux" "x86_64-linux"
"powerpc-linux" "powerpc64le-linux"
"aarch64-linux"))
(inputs (inputs
(list expat glibc ncurses zlib)) (list expat glibc ncurses zlib))
(native-inputs (native-inputs
;; FPC is built with FPC, so we need bootstrap binaries. ;; FPC is built with FPC, so we need bootstrap binaries.
`(("fpc-binary" ,(match (or (%current-target-system) `(("fpc-binary" ,(match (or (%current-target-system)
(%current-system)) (%current-system))
("aarch64-linux" fpc-bootstrap-aarch64)
("i686-linux" fpc-bootstrap-i386) ("i686-linux" fpc-bootstrap-i386)
;;("powerpc64le-linux" fpc-bootstrap-ppc64le) ("powerpc-linux" fpc-bootstrap-powerpc)
;;("powerpc-linux" fpc-bootstrap-ppc) ("powerpc64le-linux" fpc-bootstrap-powerpc64le)
("x86_64-linux" fpc-bootstrap-x86_64) ("x86_64-linux" fpc-bootstrap-x86_64)
;; XXX: Wrong, but innocuous so long ;; XXX: Wrong, but innocuous so long
;; `supported-systems' is kept in sync. ;; `supported-systems' is kept in sync.
@ -109,11 +141,13 @@
#:phases #:phases
(let ((fpc-bootstrap-path (let ((fpc-bootstrap-path
(string-append (getcwd) "/" ,name "-" ,version "/fpc-bin")) (string-append (getcwd) "/" ,name "-" ,version "/fpc-bin"))
(arch ,(match (or (%current-target-system) (arch ,(cond
(%current-system)) ((target-aarch64?) "aarch64")
("i686-linux" "i386") ((target-x86-32?) "i386")
("x86_64-linux" "x86_64") ((target-ppc32?) "powerpc")
(_ "unknown")))) ((target-ppc64le?) "powerpc64")
((target-x86-64?) "x86_64")
(else "unknown"))))
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'unpack-bin (add-after 'unpack 'unpack-bin
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
@ -160,9 +194,14 @@
(search-input-file inputs ,(glibc-dynamic-linker))) (search-input-file inputs ,(glibc-dynamic-linker)))
(("/lib64/ld-linux-x86-64.so.2") (("/lib64/ld-linux-x86-64.so.2")
(search-input-file inputs ,(glibc-dynamic-linker))) (search-input-file inputs ,(glibc-dynamic-linker)))
; TODO: /lib/ld-linux-armhf.so.3 (("/lib/ld.so.1")
; TODO: /lib/ld-linux-aarch64.so.1 (search-input-file inputs ,(glibc-dynamic-linker)))
; TODO: /lib64/ld64.so.2 (("/lib64/ld64.so.[12]")
(search-input-file inputs ,(glibc-dynamic-linker)))
(("/lib/ld-linux(-armhf)?.so.3")
(search-input-file inputs ,(glibc-dynamic-linker)))
(("/lib/ld-linux-aarch64.so.1")
(search-input-file inputs ,(glibc-dynamic-linker)))
;; Add glibc to ld's search path. ;; Add glibc to ld's search path.
(("if \\(isdll\\) then") (("if \\(isdll\\) then")
(string-append (string-append
@ -192,9 +231,13 @@
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
;; This is the suffix of the ppc[arch] binary. ;; This is the suffix of the ppc[arch] binary.
(suffix (if (string= arch "x86_64") (suffix ,(cond
"x64" ((target-aarch64?) "a64")
"386")) ((target-x86-32?) "386")
((target-ppc32?) "ppc")
((target-ppc64le?) "ppc64")
((target-x86-64?) "x64")
(else "")))
(ppc (string-append "ppc" suffix))) (ppc (string-append "ppc" suffix)))
(invoke "make" "install" "NOGDB=1" (invoke "make" "install" "NOGDB=1"
(string-append "INSTALL_PREFIX=" out)) (string-append "INSTALL_PREFIX=" out))

View File

@ -168,6 +168,25 @@ human.")
#~(list "-DWITH_XC_DOCS=NO"))) #~(list "-DWITH_XC_DOCS=NO")))
#:phases #:phases
#~(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'record-clipboard-programs
(lambda* (#:key inputs #:allow-other-keys)
;; Record the file names of clipboard programs invoked by
;; 'keepassxc-cli clip' and similar.
;;
;; Note: Use 'QString::fromUtf8' rather than 'QStringLiteral' so
;; that the store reference is stored as ASCII instead of
;; UTF-16, which would be invisible to the GC's scanner.
(substitute* "src/cli/Utils.cpp"
(("QStringLiteral\\(\"xclip\"\\)")
(string-append
"QString::fromUtf8(\""
(search-input-file inputs "bin/xclip")
"\")"))
(("QStringLiteral\\(\"wl-copy\"\\)")
(string-append
"QString::fromUtf8(\""
(search-input-file inputs "bin/wl-copy")
"\")")))))
(replace 'check (replace 'check
(lambda* (#:key tests? #:allow-other-keys) (lambda* (#:key tests? #:allow-other-keys)
(when tests? (when tests?
@ -199,6 +218,8 @@ human.")
qtx11extras qtx11extras
quazip-0 ; XC_KEESHARE quazip-0 ; XC_KEESHARE
readline readline
wl-clipboard ;for 'wl-copy'
xclip ;for 'xclip'
yubikey-personalization ; XC_YUBIKEY yubikey-personalization ; XC_YUBIKEY
zlib)) zlib))
(home-page "https://keepassxc.org") (home-page "https://keepassxc.org")

View File

@ -0,0 +1,190 @@
https://sources.debian.org/data/main/f/fpc/3.2.2%2Bdfsg-22/debian/patches/glibc2.34.patch
Description: Adjust startup code for glibc 2.34
Based on the corresponding changes made in glibc:
https://sourceware.org/git/?p=glibc.git;a=commit;h=035c012e32c11e84d64905efaf55e74f704d3668
Bug: https://gitlab.com/freepascal.org/fpc/source/-/issues/39295
Author: Graham Inggs <ginggs@debian.org>
Last-Update: 2022-08-12
--- a/fpcsrc/rtl/linux/powerpc64/cprt0.as
+++ b/fpcsrc/rtl/linux/powerpc64/cprt0.as
@@ -351,8 +351,8 @@
start_addresses:
.quad 0 /* was _SDA_BASE_ but not in 64-bit ABI*/
.quad main_stub
- .quad __libc_csu_init
- .quad __libc_csu_fini
+ .quad 0
+ .quad 0
.size start_adresses, .-start_addresses
/*
--- a/fpcsrc/rtl/linux/powerpc64/gprt0.as
+++ b/fpcsrc/rtl/linux/powerpc64/gprt0.as
@@ -351,8 +351,8 @@
start_addresses:
.quad 0 /* was _SDA_BASE_ but not in 64-bit ABI*/
.quad main_stub
- .quad __libc_csu_init
- .quad __libc_csu_fini
+ .quad 0
+ .quad 0
.size start_adresses, .-start_addresses
/*
--- a/fpcsrc/rtl/linux/aarch64/cprt0.as
+++ b/fpcsrc/rtl/linux/aarch64/cprt0.as
@@ -41,10 +41,8 @@
init, fini, rtld_fini, stack_end) */
adrp x0,:got:PASCALMAIN
ldr x0,[x0,#:got_lo12:PASCALMAIN]
- adrp x3,:got:__libc_csu_init
- ldr x3,[x3,#:got_lo12:__libc_csu_init]
- adrp x4,:got:__libc_csu_fini
- ldr x4,[x4,#:got_lo12:__libc_csu_fini]
+ mov x3, #0
+ mov x4, #0
bl __libc_start_main
/* This should never happen */
--- a/fpcsrc/rtl/linux/i386/si_c21.inc
+++ b/fpcsrc/rtl/linux/i386/si_c21.inc
@@ -35,8 +35,6 @@
{$asmmode att}
-procedure __libc_csu_init; cdecl; external;
-procedure __libc_csu_fini; cdecl; external;
procedure libc_start_main; external name '__libc_start_main';
procedure libc_exit(code: longint); cdecl; external name 'exit';
@@ -93,8 +91,8 @@
pushl %esp { stack_end }
pushl %edx { function to be registered with
atexit(), passed by loader }
- pushl $__libc_csu_fini
- pushl $__libc_csu_init
+ pushl $0
+ pushl $0
pushl %esi { Push second argument: argv. }
pushl %ecx { Push first argument: argc. }
--- a/fpcsrc/rtl/linux/x86_64/cprt0.as
+++ b/fpcsrc/rtl/linux/x86_64/cprt0.as
@@ -61,9 +61,8 @@
which grow downwards). */
pushq %rsp
- /* Pass address of our own entry points to .fini and .init. */
- movq __libc_csu_init@GOTPCREL(%rip), %rcx
- movq __libc_csu_fini@GOTPCREL(%rip), %r8
+ xorl %r8d, %r8d
+ xorl %ecx, %ecx
movq main_stub@GOTPCREL(%rip), %rdi
--- a/fpcsrc/rtl/linux/arm/cprt0.as
+++ b/fpcsrc/rtl/linux/arm/cprt0.as
@@ -82,10 +82,10 @@
/* Set up the other arguments in registers */
ldr a1, =PASCALMAIN
- ldr a4, =_init
+ ldr a4, = #0
/* Push fini */
- str ip, [sp, #-4]!
+ str a4, [sp, #-4]!
/* __libc_start_main (main, argc, argv, init, fini, rtld_fini, stack_end) */
--- a/fpcsrc/rtl/linux/powerpc64/si_g.inc
+++ b/fpcsrc/rtl/linux/powerpc64/si_g.inc
@@ -657,9 +657,6 @@
Process start/halt
******************************************************************************}
-procedure __libc_csu_init; cdecl; external;
-procedure __libc_csu_fini; cdecl; external;
-
procedure __libc_start_main(r3,r4,r5,r6,r7,r8,r9: pointer); cdecl; external;
type
@@ -745,8 +742,8 @@
end
= (sda_base: nil; {* was _SDA_BASE_ but not in 64-bit ABI }
main: @main_stub;
- libc_csu_init: @__libc_csu_init;
- libc_csu_fini: @__libc_csu_fini
+ libc_csu_init: pointer(0);
+ libc_csu_fini: pointer(0)
);
procedure call_libc_start_main(r3,r4,r5,r6,r7,r8,r9: pointer); cdecl;
--- a/fpcsrc/rtl/linux/powerpc64/si_c.inc
+++ b/fpcsrc/rtl/linux/powerpc64/si_c.inc
@@ -657,9 +657,6 @@
Process start/halt
******************************************************************************}
-procedure __libc_csu_init; cdecl; external;
-procedure __libc_csu_fini; cdecl; external;
-
procedure __libc_start_main(r3,r4,r5,r6,r7,r8,r9: pointer); cdecl; external;
var
@@ -724,8 +721,8 @@
end
= (sda_base: nil; {* was _SDA_BASE_ but not in 64-bit ABI }
main: @main_stub;
- libc_csu_init: @__libc_csu_init;
- libc_csu_fini: @__libc_csu_fini
+ libc_csu_init: pointer(0);
+ libc_csu_fini: pointer(0)
);
--- a/fpcsrc/rtl/linux/powerpc/cprt0.as
+++ b/fpcsrc/rtl/linux/powerpc/cprt0.as
@@ -35,8 +35,8 @@
start_addresses:
.long _SDA_BASE_
.long main_stub
- .long __libc_csu_init
- .long __libc_csu_fini
+ .long 0
+ .long 0
.size start_adresses, .-start_addresses
.section ".text"
--- a/fpcsrc/rtl/linux/mips/cprt0.as
+++ b/fpcsrc/rtl/linux/mips/cprt0.as
@@ -113,10 +113,9 @@
and $29, -2 * 4
subu $29, 32
- lw $7,%got(__libc_csu_init)($gp) /* init */
- lw $8,%got(__libc_csu_fini)($gp) /* fini */
+ move $7, $0
- sw $8, 16($29) /* fini */
+ sw $0, 16($29)
sw $2, 20($29) /* rtld_fini */
sw $29, 24($29) /* stack_end */
--- a/fpcsrc/rtl/linux/m68k/cprt0.as
+++ b/fpcsrc/rtl/linux/m68k/cprt0.as
@@ -41,8 +41,10 @@
pea (%sp) /* highest available stack address */
pea (%a1) /* termination function provided by kernel */
- pea __libc_csu_fini
- pea __libc_csu_init
+
+ clr.l -(%sp)
+ clr.l -(%sp)
+
pea (%a0) /* argv */
move.l %d0,-(%sp) /* argc */
pea PASCALMAIN

View File

@ -1,39 +0,0 @@
From 98a7d90ee258ceef9c70b0b2955d0458ec46f048 Mon Sep 17 00:00:00 2001
From: elsid <elsid.mail@gmail.com>
Date: Fri, 24 Sep 2021 19:40:29 +0200
Subject: [PATCH] Assume SIGSTKSZ is not a constant
SIGSTKSZ is not defined as constant since glibc 2.34:
https://sourceware.org/git/?p=glibc.git;a=commit;h=6c57d320484988e87e446e2e60ce42816bf51d53
---
components/crashcatcher/crashcatcher.cpp | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/components/crashcatcher/crashcatcher.cpp b/components/crashcatcher/crashcatcher.cpp
index 86571e1e3a..c828e1ca81 100644
--- a/components/crashcatcher/crashcatcher.cpp
+++ b/components/crashcatcher/crashcatcher.cpp
@@ -56,8 +56,6 @@ static const char exec_err[] = "!!! Failed to exec debug process\n";
static char argv0[PATH_MAX];
-static char altstack[SIGSTKSZ];
-
static struct {
int signum;
@@ -475,9 +473,10 @@ int crashCatcherInstallHandlers(int argc, char **argv, int num_signals, int *sig
/* Set an alternate signal stack so SIGSEGVs caused by stack overflows
* still run */
+ static char* altstack = new char [SIGSTKSZ];
altss.ss_sp = altstack;
altss.ss_flags = 0;
- altss.ss_size = sizeof(altstack);
+ altss.ss_size = SIGSTKSZ;
sigaltstack(&altss, nullptr);
memset(&sa, 0, sizeof(sa));
--
GitLab

View File

@ -1,130 +0,0 @@
From 5446e36e0685ec5c7b4f812dec5bf7959db4f906 Mon Sep 17 00:00:00 2001
From: Efraim Flashner <efraim@flashner.co.il>
Date: Thu, 20 Jul 2023 15:56:21 +0300
Subject: [PATCH 1/2] rktboot: Add support for riscv64.
(cherry picked from commit f80c5d001d5235556ae9cde617b1e3a1322d0505)
---
racket/src/rktboot/machine-def.rkt | 1 +
1 file changed, 1 insertion(+)
diff --git a/racket/src/rktboot/machine-def.rkt b/racket/src/rktboot/machine-def.rkt
index 8ff0688652..59ebfc88d8 100644
--- a/racket/src/rktboot/machine-def.rkt
+++ b/racket/src/rktboot/machine-def.rkt
@@ -25,6 +25,7 @@
[(regexp-match? #rx"^t?arm32" target-machine) "arm32"]
[(regexp-match? #rx"^t?arm64" target-machine) "arm64"]
[(regexp-match? #rx"^t?ppc32" target-machine) "ppc32"]
+ [(regexp-match? #rx"^t?rv64" target-machine) "rv64"]
[(regexp-match? #rx"^t?pb" target-machine) "pb"]
[else (error "machine.def: cannot infer architecture")]))]
[s (regexp-replace* #rx"[$][(]Mend[)]" s
base-commit: b10ecfb8311fca2d42636eea2ca12aff0b76b208
--
2.41.0
From 6261c3582c386e770d654ca6a36f112834f35aef Mon Sep 17 00:00:00 2001
From: Philip McGrath <philip@philipmcgrath.com>
Date: Sun, 16 Jul 2023 15:47:14 -0400
Subject: [PATCH 2/2] rktboot: improve machene type inference
Related to https://issues.guix.gnu.org/62231
Related to https://github.com/racket/racket/issues/3948
(cherry picked from commit 005488491cee89e7db38109de4c9dcf2d8d5aef0)
---
racket/src/rktboot/config.rkt | 73 +++++++++++++++++++++++++++++------
1 file changed, 61 insertions(+), 12 deletions(-)
diff --git a/racket/src/rktboot/config.rkt b/racket/src/rktboot/config.rkt
index 7a969017ed..2b411e002c 100644
--- a/racket/src/rktboot/config.rkt
+++ b/racket/src/rktboot/config.rkt
@@ -15,20 +15,69 @@
(path->complete-path scheme-dir))))))
(hash-set! ht 'make-boot-scheme-dir scheme-dir)
+(define (infer-target-machine)
+ ;; Compute a native or pbarch machine string for the current platform.
+ ;; Some caveats:
+ ;; 1. A pbarch Racket will always infer a pbarch machine,
+ ;; even if a native machine exists. Hopefully this is an
+ ;; unlikely scenario: if you're running Racket CS, you've
+ ;; bootstrapped Chez somehow, so you could use `re.boot`.
+ ;; 2. A `tpb` or `pb` Racket on a 32-bit platform would still return
+ ;; 64 from `(system-type 'word)`, but, in addition to the above,
+ ;; it is not currently possible or desired to build Racket as
+ ;; `tpb` or `pb` (as opposed to pbarch variants):
+ ;; see <https://github.com/racket/racket/issues/4692>.
+ ;; 3. On a hypothetical platform where Chez supported both the
+ ;; architecture and the OS, but not the combination of the two,
+ ;; (e.g. riscv64 Windows) this code would currently return a
+ ;; non-existent native machine (e.g. trv64nt) instead of a
+ ;; working pbarch machine. Presumably this could be fixed if
+ ;; such a platform came into existence.
+ (define s (path->string (system-library-subpath #f)))
+ (define arch+os
+ (cond
+ [(regexp-match #rx"^([^\\]+)\\\\([^\\]+)$" s)
+ => (λ (m)
+ (reverse (cdr m)))]
+ [(regexp-match #rx"^([^-]+)-(.+)$" s)
+ => cdr]
+ [else
+ (error 'infer-target-machine "unknown format for system library subpath"
+ "produced" (system-library-subpath #f))]))
+ (define arch
+ (case (car arch+os)
+ [("x86_64" "amd64") "a6"] ; https://github.com/racket/racket/issues/4691
+ [("i386") "i3"]
+ [("aarch64") "arm64"]
+ [("arm") "arm32"]
+ [("ppc") "ppc32"]
+ [("riscv64") "rv64"]
+ [("unknown") #f] ; pb machine types
+ [else #f]))
+ (define os
+ (case (cadr arch+os)
+ [("macosx" "darwin" "ios") "osx"]
+ [("win32" "cygwin") "nt"]
+ [("linux" "android") "le"]
+ [("gnu-hurd") "gnu"]
+ [("freebsd") "fb"]
+ [("openbsd") "ob"]
+ [("netbsd") "nb"]
+ [("solaris") "s2"] ; NOT "sunos4" (I think)
+ [("qnx") "qnx"]
+ [("unknown") #f] ; pb machine types
+ [else #f]))
+ (if (and arch os)
+ (string-append "t" arch os)
+ (format "tpb~a~a"
+ (system-type 'word)
+ (if (system-big-endian?)
+ "b"
+ "l"))))
+
(define target-machine (or (hash-ref ht 'make-boot-targate-machine #f)
(getenv "MACH")
- (case (system-type)
- [(macosx) (if (eqv? 64 (system-type 'word))
- "ta6osx"
- "ti3osx")]
- [(windows) (if (eqv? 64 (system-type 'word))
- "ta6nt"
- "ti3nt")]
- [else
- (case (path->string (system-library-subpath #f))
- [("x86_64-linux") "ta6le"]
- [("i386-linux") "ti3le"]
- [else #f])])))
+ (infer-target-machine)))
(hash-set! ht 'make-boot-targate-machine target-machine)
(define optimize-level-init 3)
--
2.41.0

View File

@ -0,0 +1,36 @@
From 1d8dbdf408db9e99f1382323477561d5148cd451 Mon Sep 17 00:00:00 2001
From: Philip McGrath <philip@philipmcgrath.com>
Date: Fri, 20 Oct 2023 17:19:50 -0400
Subject: [PATCH] racket-index: fix release.scrbl for layered installations
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Configure the release notes page to be rendered separately at every
installation layer. Otherwise, rendering documentation for packages
installed in a new layer might try to write to `release/in.sxref`
in the parent layers docs directory.
Related to https://github.com/videolang/video/issues/67
Related to https://issues.guix.gnu.org/56534
(cherry picked from commit 85f21854c0a41564b755fbe180fe6b85de6c4730)
---
pkgs/racket-index/scribblings/main/info.rkt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pkgs/racket-index/scribblings/main/info.rkt b/pkgs/racket-index/scribblings/main/info.rkt
index 75c507848a..a6a3798f7c 100644
--- a/pkgs/racket-index/scribblings/main/info.rkt
+++ b/pkgs/racket-index/scribblings/main/info.rkt
@@ -6,4 +6,4 @@
("local-redirect.scrbl" (depends-all-main no-depend-on every-main-layer) (omit) "local-redirect" 1 10)
("license.scrbl" () (omit))
("acks.scrbl" () (omit))
- ("release.scrbl" (depends-all-main no-depend-on) (omit))))
+ ("release.scrbl" (depends-all-main no-depend-on every-main-layer) (omit))))
base-commit: c3a502c0ae9f4d615bfd85fc7d88b781826bbb09
--
2.41.0

View File

@ -824,14 +824,14 @@ and based on PDF specification 1.7.")
(define-public mupdf (define-public mupdf
(package (package
(name "mupdf") (name "mupdf")
(version "1.23.4") (version "1.23.7")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://mupdf.com/downloads/archive/" (uri (string-append "https://mupdf.com/downloads/archive/"
"mupdf-" version "-source.tar.lz")) "mupdf-" version "-source.tar.lz"))
(sha256 (sha256
(base32 "0068swdrlq9q7pkg3dxn4rschxm5j37pd4vz0cb2pcry75rdmxpc")) (base32 "0d0ig1amxyy50jvfbn6rz49zd0980p6syqzcx5v7wg0c3pl2iwwm"))
(modules '((guix build utils) (modules '((guix build utils)
(ice-9 ftw) (ice-9 ftw)
(srfi srfi-1))) (srfi srfi-1)))
@ -1388,7 +1388,7 @@ manage or manipulate PDFs.")
(define-public pdfarranger (define-public pdfarranger
(package (package
(name "pdfarranger") (name "pdfarranger")
(version "1.9.2") (version "1.10.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -1397,7 +1397,7 @@ manage or manipulate PDFs.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1zj1fdaqih9d878yxy96ivgqyg4j31slvh2gqsyz2l2vj3s8z54x")))) (base32 "0bi3yyns05yamml5jcnqvdaf7i19jg636wb1fj2mwlial9ww7zwp"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
(list (list
@ -1409,7 +1409,10 @@ manage or manipulate PDFs.")
(let ((program (string-append #$output "/bin/pdfarranger"))) (let ((program (string-append #$output "/bin/pdfarranger")))
(wrap-program program (wrap-program program
`("GI_TYPELIB_PATH" ":" prefix `("GI_TYPELIB_PATH" ":" prefix
(,(getenv "GI_TYPELIB_PATH")))))))))) (,(getenv "GI_TYPELIB_PATH")))))))
(add-before 'sanity-check 'set-home
(lambda _
(setenv "HOME" "/tmp"))))))
(native-inputs (native-inputs
(list intltool python-distutils-extra)) (list intltool python-distutils-extra))
(inputs (inputs

View File

@ -42,18 +42,23 @@
(define-public pypy (define-public pypy
(package (package
(name "pypy") (name "pypy")
(version "7.3.5") (version "7.3.13")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://downloads.python.org/pypy/" (uri (string-append "https://downloads.python.org/pypy/"
"pypy3.7-v" version "-src.tar.bz2")) "pypy3.10-v" version "-src.tar.bz2"))
(sha256 (sha256
(base32 (base32
"18lrdmpcczlbk3cfarkgwqdmilrybz56i1dafk8dkjlyk90gw86r")))) "0v9s6pwrnaxqi5h1pvmaphj6kgyczx07ykl07hcx656h34y77haa"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (list
#:tests? #f ;FIXME: 43 out of 364 tests are failing #:tests? #f ;FIXME: 43 out of 364 tests are failing
;; XXX: ELF file 'pypy.debug' makes 'validate-needed-in-runpath' throw:
;; <https://issues.guix.gnu.org/57653>.
#:validate-runpath? #f
#:modules '((ice-9 ftw) (ice-9 match) #:modules '((ice-9 ftw) (ice-9 match)
(guix build utils) (guix build gnu-build-system)) (guix build utils) (guix build gnu-build-system))
#:disallowed-references (list nss-certs) #:disallowed-references (list nss-certs)
@ -151,7 +156,7 @@
(for-each (for-each
(lambda (x) (lambda (x)
(delete-file-recursively (string-append (delete-file-recursively (string-append
"lib-python/3/" x))) "lib/pypy3.10/" x)))
'("tkinter/test" '("tkinter/test"
"test" "test"
"sqlite3/test" "sqlite3/test"
@ -161,12 +166,12 @@
"ctypes/test" "ctypes/test"
"unittest/test")) "unittest/test"))
;; Patch shebang referencing python. ;; Patch shebang referencing python.
(substitute* '("lib-python/3/cgi.py" (substitute* '("lib/pypy3.10/cgi.py"
"lib-python/3/encodings/rot_13.py") "lib/pypy3.10/encodings/rot_13.py")
((shebang-match-python) shebang-pypy3)) ((shebang-match-python) shebang-pypy3))
(with-fluids ((%default-port-encoding "ISO-8859-1")) (with-fluids ((%default-port-encoding "ISO-8859-1"))
(substitute* '("lib_pypy/_md5.py" (substitute* '("lib/pypy3.10/_md5.py"
"lib_pypy/_sha1.py") "lib/pypy3.10/_sha1.py")
((shebang-match-python) shebang-pypy3)))) ((shebang-match-python) shebang-pypy3))))
(copy-recursively dist-dir #$output))))))) (copy-recursively dist-dir #$output)))))))
(native-inputs (native-inputs

View File

@ -2092,6 +2092,7 @@ documentation for more information.")
(propagated-inputs (propagated-inputs
(list python-aplus (list python-aplus
python-blake3 python-blake3
python-click ;XXX for dask
python-cloudpickle python-cloudpickle
python-dask python-dask
python-filelock python-filelock

View File

@ -13743,19 +13743,8 @@ reading and writing MessagePack data.")
(home-page "https://pypi.org/project/msgpack/") (home-page "https://pypi.org/project/msgpack/")
(license license:asl2.0))) (license license:asl2.0)))
(define-public python-msgpack-1.0.2
(package
(inherit python-msgpack)
(version "1.0.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "msgpack" version))
(sha256
(base32
"1109s2yynrahwi64ikax68hx0mbclz8p35afmpphw5dwynb49q7s"))))))
;; This msgpack library's name changed from "python-msgpack" to "msgpack" with ;; This msgpack library's name changed from "python-msgpack" to "msgpack" with
;; release 0.5. Some packages like borg still call it by the old name for now. ;; release 0.5. Some packages like poetry still call it by the old name for now.
;; <https://bugs.gnu.org/30662> ;; <https://bugs.gnu.org/30662>
(define-public python-msgpack-transitional (define-public python-msgpack-transitional
(package (package

View File

@ -191,8 +191,8 @@
;; ;;
;; CODE: ;; CODE:
(define %racket-version "8.10") ; Remember to update chez-scheme-for-racket! (define %racket-version "8.11.1") ; Remember to update chez-scheme-for-racket!
(define %zuo-version "1.6") ; defined in racket/src/zuo/zuo.c (define %zuo-version "1.7") ; defined in racket/src/zuo/zuo.c
(define %racket-commit (define %racket-commit
(string-append "v" %racket-version)) (string-append "v" %racket-version))
(define %racket-origin (define %racket-origin
@ -202,10 +202,10 @@
(url "https://github.com/racket/racket") (url "https://github.com/racket/racket")
(commit %racket-commit))) (commit %racket-commit)))
(sha256 (sha256
(base32 "0xhra47lnz5aq2shvsil4vcravai4n86r4v1lza7r07n6s1pb9s5")) (base32 "1iny1mn1lw07lj6h704ch5g2q1nsf0h88dgwqrlxhf8pwj4i76gl"))
(file-name (git-file-name "racket" %racket-version)) (file-name (git-file-name "racket" %racket-version))
(patches (search-patches "racket-chez-scheme-bin-sh.patch" (patches (search-patches "racket-chez-scheme-bin-sh.patch"
"racket-backport-8.10-rktboot.patch" "racket-backport-8.11-layered-docs.patch"
"racket-rktio-bin-sh.patch" "racket-rktio-bin-sh.patch"
"racket-zuo-bin-sh.patch")) "racket-zuo-bin-sh.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
@ -710,16 +710,16 @@ DrRacket IDE, are not included.")
"db" (base32 "0xx0k8yw2vb9b4vk2dwjfbpixnmriqsv7kpv3fvfxbwyg42y0db5") "db" (base32 "0xx0k8yw2vb9b4vk2dwjfbpixnmriqsv7kpv3fvfxbwyg42y0db5")
'("db" "db-doc" "db-lib")) '("db" "db-doc" "db-lib"))
(simple-racket-origin (simple-racket-origin
"deinprogramm" (base32 "0889154ssw56aq6iqxnzgjram9x6c64sscjzrhr4077vnv4h1c93") "deinprogramm" (base32 "0ijngjyg2i528a4xv20db4adirvx5rj4m86fd70l33lgwv53w3s0")
'("deinprogramm" "deinprogramm-signature")) '("deinprogramm" "deinprogramm-signature"))
(simple-racket-origin (simple-racket-origin
"distributed-places" (base32 "1dajpkj9balqcpv6cdk9hwjz592h1vq8rrx5vncariiac4vbdpa0") "distributed-places" (base32 "1dajpkj9balqcpv6cdk9hwjz592h1vq8rrx5vncariiac4vbdpa0")
'("distributed-places" "distributed-places-doc" "distributed-places-lib")) '("distributed-places" "distributed-places-doc" "distributed-places-lib"))
(simple-racket-origin (simple-racket-origin
"draw" (base32 "0vf40hp6h14zgs0gx40jzdzxm4ai1vxwpmg65y00lwmdxc97b2ji") "draw" (base32 "1h7mckay8yjcgmj3r0jkf1csn430gn43n8jl1l956q9gcprlmncl")
'("draw" "draw-doc" "draw-lib")) '("draw" "draw-doc" "draw-lib"))
(simple-racket-origin (simple-racket-origin
"drracket" (base32 "0haban4fysr8i2w071nra9s97zkrrx5f5c874r9pr2k9bhqcp4jq") "drracket" (base32 "00ay3pwl648wq8nnaap665c38clr39k0g1wslh2wclar32wjpgdc")
'("drracket" '("drracket"
"drracket-plugin-lib" "drracket-plugin-lib"
"drracket-tool" "drracket-tool"
@ -750,16 +750,16 @@ DrRacket IDE, are not included.")
"future-visualizer-pict" "future-visualizer-pict"
"future-visualizer-typed")) "future-visualizer-typed"))
(simple-racket-origin (simple-racket-origin
"games" (base32 "0kpn3izlx1ccd0pj0dnvmnrhny51b85xy418a7psj70lz8j8415d") "games" (base32 "13z7fnbr48s98lmfxc0nbfhbqkd4hphymy2r63hqm783xzn6ylzi")
'(("games" "."))) '(("games" ".")))
(simple-racket-origin (simple-racket-origin
"gui" (base32 "1s2a8qgm7dqpxyi9plshdbaxzd8klc80i8ppjpc5i5xyhcfmzyvf") "gui" (base32 "10mlajn5xqgdwi7gf9lgszfv609pjp8m24lm97b8xh6fmjlkqi4b")
'("gui" "gui-doc" "gui-lib" "tex-table")) '("gui" "gui-doc" "gui-lib" "tex-table"))
(simple-racket-origin (simple-racket-origin
"gui-pkg-manager" (base32 "1ji9448d723nklqvycwdswj0ni28sabrncag14f9mx47did5myb5") "gui-pkg-manager" (base32 "1ji9448d723nklqvycwdswj0ni28sabrncag14f9mx47did5myb5")
'("gui-pkg-manager-lib")) '("gui-pkg-manager-lib"))
(simple-racket-origin (simple-racket-origin
"htdp" (base32 "0kd92rg8m8my11pq1dxvv6dyban77j6kvs368xsl6fr52jd7zbkl") "htdp" (base32 "04p2xp4hnnsnmrmvw05fg4fv18k3g2rz5gmgs89sc6g8y886m6zz")
'("htdp" "htdp-doc" "htdp-lib")) '("htdp" "htdp-doc" "htdp-lib"))
(simple-racket-origin (simple-racket-origin
"html" (base32 "18n1jnjgzfknc8nv8dppi85nb8q08gqdwkg6hfjk08x0p00anx2x") "html" (base32 "18n1jnjgzfknc8nv8dppi85nb8q08gqdwkg6hfjk08x0p00anx2x")
@ -821,7 +821,7 @@ DrRacket IDE, are not included.")
"option-contract" (base32 "07cncg9pi15cm19k7rzv54vx83wq7y42i2m6bgzaqja1h8vnj2ww") "option-contract" (base32 "07cncg9pi15cm19k7rzv54vx83wq7y42i2m6bgzaqja1h8vnj2ww")
'("option-contract" "option-contract-doc" "option-contract-lib")) '("option-contract" "option-contract-doc" "option-contract-lib"))
(simple-racket-origin (simple-racket-origin
"parser-tools" (base32 "11m1x8q0cqb4b082423iv19s86xgkshv29cb4hp8yx84lb0vpwx3") "parser-tools" (base32 "1lp7wixmxcnha7cz834xfqqr48c2nldjbn9lng69bihpw01h9zms")
'("parser-tools" "parser-tools-doc" "parser-tools-lib")) '("parser-tools" "parser-tools-doc" "parser-tools-lib"))
(simple-racket-origin (simple-racket-origin
"pconvert" (base32 "00czi0p399mmyrvxyrs5kniizpkqfxyz2ncxqi2jy79a7wk79pb1") "pconvert" (base32 "00czi0p399mmyrvxyrs5kniizpkqfxyz2ncxqi2jy79a7wk79pb1")
@ -842,7 +842,7 @@ DrRacket IDE, are not included.")
"planet" (base32 "0r2yqrzrmdjjyr14k6hhlzc5kzrcx3583m1s02mhrcmpfw0s85w9") "planet" (base32 "0r2yqrzrmdjjyr14k6hhlzc5kzrcx3583m1s02mhrcmpfw0s85w9")
'("planet" "planet-doc" "planet-lib")) '("planet" "planet-doc" "planet-lib"))
(simple-racket-origin (simple-racket-origin
"plot" (base32 "1p0jxrwdwkb7z6ppp2ccpdzmizjimfpkdgilvbgv8x6mmqf0bf6q") "plot" (base32 "17fhsymy884xr4jqk585rm5kwdgkgz0635916gh5y0fsnp5pir70")
'("plot" "plot-compat" "plot-doc" "plot-gui-lib" "plot-lib")) '("plot" "plot-compat" "plot-doc" "plot-gui-lib" "plot-lib"))
(simple-racket-origin (simple-racket-origin
"preprocessor" (base32 "1p5aid58ifnjy4xl0ysh85cq39k25661v975jrpk182z3k5621mg") "preprocessor" (base32 "1p5aid58ifnjy4xl0ysh85cq39k25661v975jrpk182z3k5621mg")
@ -856,8 +856,11 @@ DrRacket IDE, are not included.")
(uri (git-reference (uri (git-reference
(url "https://github.com/Metaxal/quickscript") (url "https://github.com/Metaxal/quickscript")
(commit %racket-commit))) (commit %racket-commit)))
(snippet
;; See https://github.com/Metaxal/quickscript/issues/73
#~(delete-file "register.rkt"))
(sha256 (base32 (sha256 (base32
"00sf5nw09aacd0l4a4cknnffvcs95p596im3blsdvfz5ck6jdwl8")) "0v27qknghfi0058vk8xwwlwqgqwdsxxmprrmag64cyygdz95sxym"))
(file-name (git-file-name "Metaxal-quickscript" %racket-version))) (file-name (git-file-name "Metaxal-quickscript" %racket-version)))
'(("quickscript" "."))) '(("quickscript" ".")))
(simple-racket-origin (simple-racket-origin
@ -881,7 +884,7 @@ DrRacket IDE, are not included.")
"racklog" (base32 "0fr8xij0sssfnmwn6dfdi4jj3l62f2yj3jrjljv13kaycrfls032") "racklog" (base32 "0fr8xij0sssfnmwn6dfdi4jj3l62f2yj3jrjljv13kaycrfls032")
'(("racklog" "."))) '(("racklog" ".")))
(simple-racket-origin (simple-racket-origin
"rackunit" (base32 "03v1yvqgk3f65caqiwnadq00sjbg813ic949hys29f4c8mxz6gic") "rackunit" (base32 "0axcy8283qqmcrhwwn0q0sfjznc8gkwbx06j41anayi5v9xp4698")
'("rackunit" '("rackunit"
"rackunit-doc" "rackunit-doc"
"rackunit-gui" "rackunit-gui"
@ -897,7 +900,7 @@ DrRacket IDE, are not included.")
"realm" (base32 "0rlvwyd6rpyl0zda4a5p8dp346fvqzc8555dgfnrhliymkxb6x4g") "realm" (base32 "0rlvwyd6rpyl0zda4a5p8dp346fvqzc8555dgfnrhliymkxb6x4g")
'(("realm" "."))) '(("realm" ".")))
(simple-racket-origin (simple-racket-origin
"redex" (base32 "00pm0pj3h19a9dar4pzdn8q5l7bvl92q9gkh04k1ddlcx4af1m10") "redex" (base32 "016m2fvfxjnx7l0ai6jlcmz4s8xipbq9k58fq7109akj9mvczgp9")
'("redex" '("redex"
"redex-benchmark" "redex-benchmark"
"redex-doc" "redex-doc"
@ -912,7 +915,7 @@ DrRacket IDE, are not included.")
"scheme-lib" (base32 "0pcf0y8rp4qyjhaz5ww5sr5diq0wpcdfrrnask7zapyklzx1jx8x") "scheme-lib" (base32 "0pcf0y8rp4qyjhaz5ww5sr5diq0wpcdfrrnask7zapyklzx1jx8x")
'(("scheme-lib" "."))) '(("scheme-lib" ".")))
(simple-racket-origin (simple-racket-origin
"scribble" (base32 "1jnbvl98yn8dhblcx411jybd879g4aj6d136xi23i4zwwrbsiy6m") "scribble" (base32 "0igcjgmpzbzzn1jfpa4jq18lqyhr6dsdwnbv6zv87x8cib9rwqrh")
'("scribble" '("scribble"
"scribble-doc" "scribble-doc"
"scribble-html-lib" "scribble-html-lib"
@ -938,13 +941,13 @@ DrRacket IDE, are not included.")
"slatex" (base32 "0pkm2isbbdk63slrbsxcql7rr0wdrw5kapw1xq4ps5k8dhlzv8x0") "slatex" (base32 "0pkm2isbbdk63slrbsxcql7rr0wdrw5kapw1xq4ps5k8dhlzv8x0")
'(("slatex" "."))) '(("slatex" ".")))
(simple-racket-origin (simple-racket-origin
"slideshow" (base32 "0hmg5184cpxjb0ni6v2zkf4l29j8yyzm9pzv1gvmw2fm1rlrry4f") "slideshow" (base32 "147s7si6lxx6hm84wk2rfplk6wprladl9zni9pdvaxfa25chrabf")
'("slideshow" "slideshow-doc" "slideshow-exe" "slideshow-lib" "slideshow-plugin")) '("slideshow" "slideshow-doc" "slideshow-exe" "slideshow-lib" "slideshow-plugin"))
(simple-racket-origin (simple-racket-origin
"snip" (base32 "1b90ccqilnyszbphms3svm3c7dbk7870ifybjjipss5srb32mj2d") "snip" (base32 "1b90ccqilnyszbphms3svm3c7dbk7870ifybjjipss5srb32mj2d")
'("snip" "snip-lib")) '("snip" "snip-lib"))
(simple-racket-origin (simple-racket-origin
"typed-racket" (base32 "1721qgk1fplzwcgidg342anvykr88prvl1jag4vg8qxz8m28wi08") "typed-racket" (base32 "17mz7zqrialxfzkynj7h3kfhawdd6cgs24ns437gz087g2pmwi1x")
'("source-syntax" '("source-syntax"
"typed-racket" "typed-racket"
"typed-racket-compatibility" "typed-racket-compatibility"
@ -952,16 +955,16 @@ DrRacket IDE, are not included.")
"typed-racket-lib" "typed-racket-lib"
"typed-racket-more")) "typed-racket-more"))
(simple-racket-origin (simple-racket-origin
"srfi" (base32 "0rvx49ni1v8ikbx1a6qg97pprpkxmy7cgl918f52hq7jlx91b71x") "srfi" (base32 "1l3nr3a8mlp505aaxlyp4i8jfijmpyl9h1wwv8hzm4kzzjv4sl8p")
'("srfi" "srfi-doc" "srfi-lib" "srfi-lite-lib")) '("srfi" "srfi-doc" "srfi-lib" "srfi-lite-lib"))
(simple-racket-origin (simple-racket-origin
"string-constants" (base32 "1jxbh91x1r65lahjlix61rmkjikcam2k5w97xj8r7p7z05240dih") "string-constants" (base32 "1djbjhsimikk18dkrajrlgjhlqfyvna4nz64ha4wjcaj5cfgcvdx")
'("string-constants" "string-constants-doc" "string-constants-lib")) '("string-constants" "string-constants-doc" "string-constants-lib"))
(simple-racket-origin (simple-racket-origin
"swindle" (base32 "1q8vdxpzczzwdw2mys2caab45yvadmqkixsr29k8pl03n8dsg8j9") "swindle" (base32 "1q8vdxpzczzwdw2mys2caab45yvadmqkixsr29k8pl03n8dsg8j9")
'(("swindle" "."))) '(("swindle" ".")))
(simple-racket-origin (simple-racket-origin
"syntax-color" (base32 "0lcv6glhsx27lkz7wwalzgfr0nb0hdqjic54z3rcfxhag4p6sg8i") "syntax-color" (base32 "1cs0wry7qwv6j690lsjiw86xw0vl10v4i98sk6j8ggrk7irkw48r")
'("syntax-color" "syntax-color-doc" "syntax-color-lib")) '("syntax-color" "syntax-color-doc" "syntax-color-lib"))
(simple-racket-origin (simple-racket-origin
"trace" (base32 "070ihla5j796hdarn5wxdwn4xj0xnkm50shgh49jy994mribvhia") "trace" (base32 "070ihla5j796hdarn5wxdwn4xj0xnkm50shgh49jy994mribvhia")
@ -970,13 +973,13 @@ DrRacket IDE, are not included.")
"unix-socket" (base32 "02dfwas5ynbpyz74w9kwb4wgb37y5wys7svrlmir8k0n9ph9vq0y") "unix-socket" (base32 "02dfwas5ynbpyz74w9kwb4wgb37y5wys7svrlmir8k0n9ph9vq0y")
'("unix-socket" "unix-socket-doc" "unix-socket-lib")) '("unix-socket" "unix-socket-doc" "unix-socket-lib"))
(simple-racket-origin (simple-racket-origin
"web-server" (base32 "0sizb50rbnqmdx8igpqshj0hzsqyg30faf7wb9fs08sjs0lqkgsf") "web-server" (base32 "0vhw1hwdcv1ham086dy0nkl4r0a5qvsimw8048zjakvax7q4shsg")
'("web-server" "web-server-doc" "web-server-lib")) '("web-server" "web-server-doc" "web-server-lib"))
(simple-racket-origin (simple-racket-origin
"wxme" (base32 "1qp5gr9gqsakiq3alw6m4yyv5vw4i3hp4y4nhq8vl2nkjmirvn0b") "wxme" (base32 "1qp5gr9gqsakiq3alw6m4yyv5vw4i3hp4y4nhq8vl2nkjmirvn0b")
'("wxme" "wxme-lib")) '("wxme" "wxme-lib"))
(simple-racket-origin (simple-racket-origin
"xrepl" (base32 "19svg0jfs656bld5ikqipz3a5szk5k02zq5fh43209qw527dnfbk") "xrepl" (base32 "0sw531zvd8xqckmrh5da4fiq0sfjyg1nj5d508l7bl3azn35khil")
'("xrepl" "xrepl-doc" "xrepl-lib")))) '("xrepl" "xrepl-doc" "xrepl-lib"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments

View File

@ -2724,7 +2724,7 @@ various hardware.")
(define-public inspectrum (define-public inspectrum
(package (package
(name "inspectrum") (name "inspectrum")
(version "0.2.3") (version "0.3.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -2733,7 +2733,7 @@ various hardware.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1x6nyn429pk0f7lqzskrgsbq09mq5787xd4piic95add6n1cc355")))) (base32 "11v5idwvfi9w60qg4fgqgvm7ahmb0ys4j094qv4c93r92kd9d3f9"))))
(build-system qt-build-system) (build-system qt-build-system)
(native-inputs (native-inputs
(list pkg-config)) (list pkg-config))

View File

@ -25,6 +25,8 @@
;;; Copyright © 2022 Greg Hogan <code@greghogan.com> ;;; Copyright © 2022 Greg Hogan <code@greghogan.com>
;;; Copyright © 2023 Arnav Andrew Jose <arnav.jose@gmail.com> ;;; Copyright © 2023 Arnav Andrew Jose <arnav.jose@gmail.com>
;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu> ;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu>
;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
;;; Copyright © 2023 Steve George <steve@futurile.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -80,7 +82,7 @@
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-build) #:use-module (gnu packages python-build)
#:use-module (gnu packages python-xyz) #:use-module (gnu packages python-xyz)
#:use-module (gnu packages rust) #:use-module (gnu packages sqlite)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages version-control) #:use-module (gnu packages version-control)
#:use-module (gnu packages webkit) #:use-module (gnu packages webkit)
@ -126,7 +128,7 @@ low-end hardware and serving many concurrent requests.")
(define-public alfis (define-public alfis
(package (package
(name "alfis") (name "alfis")
(version "0.6.10") (version "0.8.4")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -135,7 +137,12 @@ low-end hardware and serving many concurrent requests.")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1kgzz92mkyzn7mbsdpik1q21kl38i4almn01k99nww3p0vgx9514")))) (base32 "1zqszjyiab0b76m2b8zfzpndg393hn311whq1fs9syfn53hp7nh4"))
(snippet
#~(begin (use-modules (guix build utils))
;; Use a packaged version of web-view.
(substitute* "Cargo.toml"
(("git = .*,") "version = \"0.7.3\","))))))
(build-system cargo-build-system) (build-system cargo-build-system)
(arguments (arguments
`(#:cargo-test-flags `(#:cargo-test-flags
@ -145,15 +152,15 @@ low-end hardware and serving many concurrent requests.")
#:cargo-inputs #:cargo-inputs
(("rust-getopts" ,rust-getopts-0.2) (("rust-getopts" ,rust-getopts-0.2)
("rust-log" ,rust-log-0.4) ("rust-log" ,rust-log-0.4)
("rust-simplelog" ,rust-simplelog-0.11) ("rust-simplelog" ,rust-simplelog-0.12)
("rust-toml" ,rust-toml-0.5) ("rust-toml" ,rust-toml-0.7)
("rust-digest" ,rust-digest-0.10) ("rust-digest" ,rust-digest-0.10)
("rust-sha2" ,rust-sha2-0.10) ("rust-sha2" ,rust-sha2-0.10)
("rust-ed25519-dalek" ,rust-ed25519-dalek-1) ("rust-ed25519-dalek" ,rust-ed25519-dalek-1)
("rust-x25519-dalek" ,rust-x25519-dalek-1) ("rust-x25519-dalek" ,rust-x25519-dalek-1)
("rust-ecies-ed25519" ,rust-ecies-ed25519-0.5) ("rust-ecies-ed25519" ,rust-ecies-ed25519-0.5)
("rust-chacha20poly1305" ,rust-chacha20poly1305-0.9) ("rust-chacha20poly1305" ,rust-chacha20poly1305-0.9)
("rust-signature" ,rust-signature-1) ("rust-signature" ,rust-signature-2)
("rust-blakeout" ,rust-blakeout-0.3) ("rust-blakeout" ,rust-blakeout-0.3)
("rust-num-cpus" ,rust-num-cpus-1) ("rust-num-cpus" ,rust-num-cpus-1)
("rust-byteorder" ,rust-byteorder-1) ("rust-byteorder" ,rust-byteorder-1)
@ -161,23 +168,25 @@ low-end hardware and serving many concurrent requests.")
("rust-serde-json" ,rust-serde-json-1) ("rust-serde-json" ,rust-serde-json-1)
("rust-bincode" ,rust-bincode-1) ("rust-bincode" ,rust-bincode-1)
("rust-serde-cbor" ,rust-serde-cbor-0.11) ("rust-serde-cbor" ,rust-serde-cbor-0.11)
("rust-base64" ,rust-base64-0.13) ("rust-base64" ,rust-base64-0.21)
("rust-num-bigint" ,rust-num-bigint-0.4) ("rust-num-bigint" ,rust-num-bigint-0.4)
("rust-num-traits" ,rust-num-traits-0.2) ("rust-num-traits" ,rust-num-traits-0.2)
("rust-chrono" ,rust-chrono-0.4) ("rust-chrono" ,rust-chrono-0.4)
("rust-rand" ,rust-rand-0.8) ("rust-rand" ,rust-rand-0.8)
("rust-rand-0.7" ,rust-rand-0.7) ;For ed25519-dalek ("rust-rand-0.7" ,rust-rand-0.7) ;For ed25519-dalek
("rust-sqlite" ,rust-sqlite-0.26) ("rust-sqlite" ,rust-sqlite-0.30)
("rust-uuid" ,rust-uuid-0.8) ("rust-uuid" ,rust-uuid-1)
("rust-mio" ,rust-mio-0.8) ("rust-mio" ,rust-mio-0.8)
("rust-ureq" ,rust-ureq-2) ("rust-ureq" ,rust-ureq-2)
("rust-lru" ,rust-lru-0.7) ("rust-lru" ,rust-lru-0.9)
("rust-derive-more" ,rust-derive-more-0.99) ("rust-derive-more" ,rust-derive-more-0.99)
("rust-lazy-static" ,rust-lazy-static-1) ("rust-lazy-static" ,rust-lazy-static-1)
("rust-spmc" ,rust-spmc-0.3)
("rust-tinyfiledialogs" ,rust-tinyfiledialogs-3) ("rust-tinyfiledialogs" ,rust-tinyfiledialogs-3)
("rust-web-view" ,rust-web-view-0.7) ("rust-web-view" ,rust-web-view-0.7)
("rust-open" ,rust-open-2) ("rust-open" ,rust-open-3)
("rust-thread-priority" ,rust-thread-priority-0.4) ("rust-winapi" ,rust-winapi-0.3)
("rust-thread-priority" ,rust-thread-priority-0.10)
("rust-winres" ,rust-winres-0.1)) ("rust-winres" ,rust-winres-0.1))
#:cargo-development-inputs #:cargo-development-inputs
(("rust-serde-bytes" ,rust-serde-bytes-0.11) (("rust-serde-bytes" ,rust-serde-bytes-0.11)
@ -189,6 +198,7 @@ low-end hardware and serving many concurrent requests.")
gtk gtk
glib glib
pango pango
sqlite
webkitgtk-with-libsoup2)) webkitgtk-with-libsoup2))
(home-page "https://github.com/Revertron/Alfis") (home-page "https://github.com/Revertron/Alfis")
(synopsis "Alternative Free Identity System") (synopsis "Alternative Free Identity System")
@ -463,6 +473,96 @@ program @code{ls}. It uses colours to distinguish file types and metadata. It
also knows about symlinks, extended attributes, and Git.") also knows about symlinks, extended attributes, and Git.")
(license license:expat))) (license license:expat)))
(define-public eza
(package
(name "eza")
(version "0.15.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "eza" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "14qapnxc1rwqsq6c13b35wgaiypn23niajk39c44i1w3if91rd85"))))
(build-system cargo-build-system)
(arguments
(list
#:install-source? #f
#:cargo-inputs `(("rust-ansiterm" ,rust-ansiterm-0.12)
("rust-chrono" ,rust-chrono-0.4)
("rust-git2" ,rust-git2-0.18)
("rust-glob" ,rust-glob-0.3)
("rust-libc" ,rust-libc-0.2)
("rust-locale" ,rust-locale-0.2)
("rust-log" ,rust-log-0.4)
("rust-natord" ,rust-natord-1)
("rust-num-cpus" ,rust-num-cpus-1)
("rust-number-prefix" ,rust-number-prefix-0.4)
("rust-once-cell" ,rust-once-cell-1)
("rust-percent-encoding" ,rust-percent-encoding-2)
("rust-phf" ,rust-phf-0.11)
("rust-proc-mounts" ,rust-proc-mounts-0.3)
("rust-scoped-threadpool" ,rust-scoped-threadpool-0.1)
("rust-terminal-size" ,rust-terminal-size-0.3)
("rust-timeago" ,rust-timeago-0.4)
("rust-unicode-width" ,rust-unicode-width-0.1)
("rust-uutils-term-grid" ,rust-uutils-term-grid-0.3)
("rust-uzers" ,rust-uzers-0.11)
("rust-windows-sys" ,rust-windows-sys-0.48)
("rust-zoneinfo-compiled" ,rust-zoneinfo-compiled-0.5))
#:cargo-development-inputs `(("rust-criterion" ,rust-criterion-0.5)
("rust-trycmd" ,rust-trycmd-0.14))
#:phases #~(modify-phases %standard-phases
(add-after 'build 'build-manual
(lambda* (#:key inputs #:allow-other-keys)
(when (assoc-ref inputs "pandoc")
(map (lambda (page)
(with-output-to-file page
(lambda _
(invoke "pandoc" "--standalone"
"-f" "markdown"
"-t" "man"
(string-append "man/" page ".md")))))
(list "eza.1" "eza_colors.5")))))
(add-after 'install 'install-extras
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share"))
(man1 (string-append share "/man/man1"))
(man5 (string-append share "/man/man5")))
(when (file-exists? "eza.1")
(install-file "eza.1" man1))
(when (file-exists? "eza_colors.5")
(install-file "eza_colors.5" man5))
(mkdir-p (string-append out "/etc/bash_completion.d"))
(mkdir-p (string-append
share "/fish/vendor_completions.d"))
(mkdir-p (string-append share "/zsh/site-functions"))
(copy-file "completions/bash/eza"
(string-append
out "/etc/bash_completion.d/eza"))
(copy-file "completions/fish/eza.fish"
(string-append
share "/fish/vendor_completions.d/eza.fish"))
(copy-file "completions/zsh/_eza"
(string-append
share "/zsh/site-functions/_eza"))))))))
(native-inputs
(append
(list pkg-config)
(if (supported-package? pandoc)
(list pandoc)
'())))
(inputs (list libgit2-1.7 zlib))
(home-page "https://github.com/eza-community/eza")
(synopsis "Modern replacement for ls")
(description
"@code{eza} is a modern replacement for the command-line
program @code{ls}. It uses colours to distinguish file types and
metadata. It also knows about symlinks, extended attributes, and Git.
This package is the community maintained fork of @code{exa}.")
(license license:expat)))
(define-public fd (define-public fd
(package (package
(name "fd") (name "fd")
@ -533,18 +633,19 @@ also knows about symlinks, extended attributes, and Git.")
(add-after 'install 'install-extra (add-after 'install 'install-extra
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(invoke "make" "completions")
;; Manpages ;; Manpages
(install-file "doc/fd.1" (string-append out "/share/man/man1")) (install-file "doc/fd.1" (string-append out "/share/man/man1"))
;; Completions ;; Completions require running the built binary.
(install-file "autocomplete/fd.bash" (unless ,(%current-target-system)
(string-append out "/etc/bash_completion.d")) (invoke "make" "completions")
(install-file "autocomplete/fd.fish" (install-file "autocomplete/fd.bash"
(string-append out "/share/fish/vendor_completions.d")) (string-append out "/etc/bash_completion.d"))
(install-file "autocomplete/_fd" (install-file "autocomplete/fd.fish"
(string-append out "/share/zsh/site-functions")) (string-append out "/share/fish/vendor_completions.d"))
(rename-file (string-append out "/etc/bash_completion.d/fd.bash") (install-file "autocomplete/_fd"
(string-append out "/etc/bash_completion.d/fd")))))))) (string-append out "/share/zsh/site-functions"))
(rename-file (string-append out "/etc/bash_completion.d/fd.bash")
(string-append out "/etc/bash_completion.d/fd")))))))))
(inputs (list jemalloc)) (inputs (list jemalloc))
(home-page "https://github.com/sharkdp/fd") (home-page "https://github.com/sharkdp/fd")
(synopsis "Simple, fast and user-friendly alternative to find") (synopsis "Simple, fast and user-friendly alternative to find")
@ -600,6 +701,7 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
`(#:modules ((guix build cargo-build-system) `(#:modules ((guix build cargo-build-system)
(guix build utils) (guix build utils)
(srfi srfi-26)) (srfi srfi-26))
#:install-source? #f
#:cargo-inputs #:cargo-inputs
(("rust-atty" ,rust-atty-0.2) (("rust-atty" ,rust-atty-0.2)
("rust-cfg-if" ,rust-cfg-if-0.1) ("rust-cfg-if" ,rust-cfg-if-0.1)
@ -629,13 +731,13 @@ characters, ASCII whitespace characters, other ASCII characters and non-ASCII.")
(zsh (string-append share "zsh/site-functions"))) (zsh (string-append share "zsh/site-functions")))
(install-file "doc/hyperfine.1" man) (install-file "doc/hyperfine.1" man)
(for-each (cut install-file <> bash) (for-each (cut install-file <> bash)
(find-files "target/release/build" "^hyperfine.bash$")) (find-files "target" "^hyperfine.bash$"))
(rename-file (string-append bash "/hyperfine.bash") (rename-file (string-append bash "/hyperfine.bash")
(string-append bash "/hyperfine")) (string-append bash "/hyperfine"))
(for-each (cut install-file <> fish) (for-each (cut install-file <> fish)
(find-files "target/release/build" "^hyperfine.fish$")) (find-files "target" "^hyperfine.fish$"))
(for-each (cut install-file <> zsh) (for-each (cut install-file <> zsh)
(find-files "target/release/build" "^_hyperfine$")))))))) (find-files "target" "^_hyperfine$"))))))))
(home-page "https://github.com/sharkdp/hyperfine") (home-page "https://github.com/sharkdp/hyperfine")
(synopsis "Command-line benchmarking tool") (synopsis "Command-line benchmarking tool")
(description (description
@ -829,12 +931,58 @@ bar. It is also compatible with sway.")
(with-output-to-file (with-output-to-file
(string-append share "/elvish/lib/just") (string-append share "/elvish/lib/just")
(lambda _ (invoke just "--completions" "elvish"))))))))) (lambda _ (invoke just "--completions" "elvish")))))))))
(inputs (list bash-minimal coreutils-minimal))
(home-page "https://github.com/casey/just") (home-page "https://github.com/casey/just")
(synopsis "Just a command runner") (synopsis "Just a command runner")
(description "This package provides @code{just}, a command runner. (description "This package provides @code{just}, a command runner.
@code{just} is a handy way to save and run project-specific commands.") @code{just} is a handy way to save and run project-specific commands.")
(license license:cc0))) (license license:cc0)))
(define-public kibi
(package
(name "kibi")
(version "0.2.2")
(source
(origin
;; crates.io doesn't have the config files
(method git-fetch)
(uri (git-reference
(url "https://github.com/ilai-deutel/kibi")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1s9ka3pfhpssms2y5707f33n59ljnqqwp7jarh2l55a9dhlnl7d3"))))
(build-system cargo-build-system)
(arguments
(list
#:install-source? #f
#:cargo-test-flags `(list "--release" "--"
"--skip=syntax::tests::syntax_d_files")
#:cargo-inputs `(("rust-libc" ,rust-libc-0.2)
("rust-unicode-width" ,rust-unicode-width-0.1)
("rust-winapi" ,rust-winapi-0.3)
("rust-winapi-util" ,rust-winapi-util-0.1))
#:cargo-development-inputs `(("rust-serial-test" ,rust-serial-test-0.5)
("rust-tempfile" ,rust-tempfile-3))
#:phases #~(modify-phases %standard-phases
(add-after 'install 'install-extras
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share"))
(syntax.d (string-append share "/syntax.d"))
(etc (string-append out "/etc")))
(mkdir-p syntax.d)
(copy-recursively "syntax.d" syntax.d)
(rename-file "config_example.ini" "config.ini")
(install-file "config.ini" etc)))))))
(home-page "https://github.com/ilai-deutel/kibi")
(synopsis "Featureful text editor in less than 1024 lines of code")
(description
"Inspired by the kilo text editor in C, this package provides a text
editor in less than 1024 lines of code with syntax higlighting, search and
more.")
(license (list license:expat license:asl2.0))))
(define-public maturin (define-public maturin
(package (package
(name "maturin") (name "maturin")
@ -985,6 +1133,7 @@ bar. It is also compatible with sway.")
(lambda _ (invoke maturin "completions" "elvish"))))))))) (lambda _ (invoke maturin "completions" "elvish")))))))))
(propagated-inputs (propagated-inputs
(list python-tomli)) (list python-tomli))
(inputs (list bzip2))
(native-inputs (native-inputs
(list perl (list perl
python-wheel python-wheel
@ -1031,6 +1180,7 @@ bar. It is also compatible with sway.")
#:modules ((ice-9 match) #:modules ((ice-9 match)
(guix build cargo-build-system) (guix build cargo-build-system)
(guix build utils)) (guix build utils))
#:install-source? #f
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'build 'install-manpage (add-after 'build 'install-manpage
@ -1211,8 +1361,9 @@ touchscreen devices.")
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))) (bin (string-append out "/bin"))
(install-file "target/release/swc" bin))))))) (swc (car (find-files "target" "^swc$"))))
(install-file swc bin)))))))
(home-page "https://swc.rs/") (home-page "https://swc.rs/")
(synopsis "Typescript/javascript compiler") (synopsis "Typescript/javascript compiler")
(description "@code{rust-swc} is a typescript/javascript compiler. It (description "@code{rust-swc} is a typescript/javascript compiler. It
@ -1423,67 +1574,6 @@ rebase.")
(base32 (base32
"006rn3fn4njayjxr2vd24g1awssr9i3894nbmfzkybx07j728vav")))))) "006rn3fn4njayjxr2vd24g1awssr9i3894nbmfzkybx07j728vav"))))))
(define-public rust-cbindgen-0.19
(package
(inherit rust-cbindgen)
(name "rust-cbindgen")
(version "0.19.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "cbindgen" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1yld9fni9g9mzg4r42zfk79aq9mzm2sfzzjrrx4vir4lp4qqqwiq"))))
(arguments
`(#:cargo-inputs
(("rust-clap" ,rust-clap-2)
("rust-heck" ,rust-heck-0.3)
("rust-indexmap" ,rust-indexmap-1)
("rust-log" ,rust-log-0.4)
("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
("rust-serde" ,rust-serde-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-syn" ,rust-syn-1)
("rust-tempfile" ,rust-tempfile-3)
("rust-toml" ,rust-toml-0.5))
#:cargo-development-inputs
(("rust-serial-test" ,rust-serial-test-0.5))))
(native-inputs
(list python-cython))))
(define-public rust-cbindgen-0.16
(package
(inherit rust-cbindgen)
(name "rust-cbindgen")
(version "0.16.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "cbindgen" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "049cai626nzw0km03parx4sxwaxgbr7i5ifjbjwnfxkqkj5k2i4k"))))
(arguments
`(#:tests? #false ;missing files
#:cargo-inputs
(("rust-clap" ,rust-clap-2)
("rust-heck" ,rust-heck-0.3)
("rust-indexmap" ,rust-indexmap-1)
("rust-log" ,rust-log-0.4)
("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
("rust-serde" ,rust-serde-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-syn" ,rust-syn-1)
("rust-tempfile" ,rust-tempfile-3)
("rust-toml" ,rust-toml-0.5))
#:cargo-development-inputs
(("rust-serial-test" ,rust-serial-test-0.5))))))
(define-public sniffglue (define-public sniffglue
(package (package
(name "sniffglue") (name "sniffglue")
@ -1553,7 +1643,7 @@ of the project is to be runnable on untrusted networks without crashing.")
(base32 "1q4mz2c32gfypx33zlzgd1q9h4322jrk13fzvsf8h676ylclqzpc")))) (base32 "1q4mz2c32gfypx33zlzgd1q9h4322jrk13fzvsf8h676ylclqzpc"))))
(build-system cargo-build-system) (build-system cargo-build-system)
(arguments (arguments
`(#:cargo-build-flags '("--release" "--features" "external-harfbuzz") `(#:install-source? #f
#:cargo-inputs #:cargo-inputs
(("rust-atty" ,rust-atty-0.2) (("rust-atty" ,rust-atty-0.2)
("rust-byte-unit" ,rust-byte-unit-4) ("rust-byte-unit" ,rust-byte-unit-4)
@ -1917,220 +2007,41 @@ work. This allows the client to be used in a much simpler way, with the
background agent taking care of maintaining the necessary state.") background agent taking care of maintaining the necessary state.")
(license license:expat))) (license license:expat)))
(define-public rust-analyzer
(package
(name "rust-analyzer")
(version "2022-01-10")
(source
(origin
;; The crate at "crates.io" is empty.
(method git-fetch)
(uri (git-reference
(url "https://github.com/rust-analyzer/rust-analyzer")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1ci85bp8xwqrk8nqr8sh6yj8njgd98nhgnhaks2g00c77wwyra41"))))
(build-system cargo-build-system)
(arguments
`(#:rust ,rust-1.64
#:install-source? #f ; virtual manifest
#:cargo-test-flags
'("--release" "--lib" "--tests" "--"
"--skip=tests::test_version_check" ;it need rustc's version
;; FIXME: Guix's rust does not install source in
;; %out/lib/rustlib/src/rust so "can't load standard library from
;; sysroot"
"--skip=tests::test_loading_rust_analyzer"
;; Failed to run rustfmt from toolchain 'stable'. Please run `rustup
;; component add rustfmt --toolchain stable` to install it
"--skip=tests::sourcegen::sourcegen_assists_docs" ;need rustfmt
"--skip=tests::sourcegen_ast::sourcegen_ast" ;same
"--skip=tidy::check_licenses" ;it runs cargo metadata
"--skip=tidy::check_merge_commits" ;it runs git rev-list
"--skip=tidy::check_code_formatting" ;need rustfmt as cargo fmt
;; These tests require rust <= 1.60 and too many packages
;; has as dependency rust-serde-json-1 that use indexmap2
;; and it need rust >= 1.64
"--skip=tests::list_test_macros"
"--skip=tests::test_derive_empty"
"--skip=tests::test_attr_macro"
"--skip=tests::test_fn_like_macro"
"--skip=tests::test_fn_like_macro2"
"--skip=tests::test_derive_error")
#:cargo-development-inputs
(("rust-arbitrary" ,rust-arbitrary-1)
("rust-derive-arbitrary" ,rust-derive-arbitrary-1)
("rust-expect-test" ,rust-expect-test-1)
("rust-oorandom" ,rust-oorandom-11)
("rust-quote" ,rust-quote-1.0.10)
("rust-rayon" ,rust-rayon-1)
("rust-tracing" ,rust-tracing-0.1)
("rust-tracing-subscriber" ,rust-tracing-subscriber-0.3)
("rust-tracing-tree" ,rust-tracing-tree-0.2)
("rust-ungrammar" ,rust-ungrammar-1))
#:cargo-inputs
(("rust-always-assert" ,rust-always-assert-0.1)
("rust-anyhow" ,rust-anyhow-1)
("rust-anymap" ,rust-anymap-0.12)
("rust-arrayvec" ,rust-arrayvec-0.7)
("rust-cargo-metadata" ,rust-cargo-metadata-0.14)
("rust-cfg-if" ,rust-cfg-if-1)
("rust-chalk-ir" ,rust-chalk-ir-0.75)
("rust-chalk-recursive" ,rust-chalk-recursive-0.75)
("rust-chalk-solve" ,rust-chalk-solve-0.75)
("rust-countme" ,rust-countme-3)
("rust-cov-mark" ,rust-cov-mark-2)
("rust-crossbeam-channel" ,rust-crossbeam-channel-0.5)
("rust-dissimilar" ,rust-dissimilar-1)
("rust-dot" ,rust-dot-0.1)
("rust-drop-bomb" ,rust-drop-bomb-0.1)
("rust-either" ,rust-either-1.6.0)
("rust-ena" ,rust-ena-0.14)
("rust-env-logger" ,rust-env-logger-0.8)
("rust-flate2" ,rust-flate2-1)
("rust-fst" ,rust-fst-0.4)
("rust-home" ,rust-home-0.5)
("rust-indexmap" ,rust-indexmap-1.7)
("rust-itertools" ,rust-itertools-0.10)
("rust-jod-thread" ,rust-jod-thread-0.1)
("rust-libc" ,rust-libc-0.2)
("rust-libloading" ,rust-libloading-0.7)
("rust-log" ,rust-log-0.4)
("rust-lsp-server" ,rust-lsp-server-0.5)
("rust-lsp-types" ,rust-lsp-types-0.91)
("rust-memmap2" ,rust-memmap2-0.5)
("rust-mimalloc" ,rust-mimalloc-0.1)
("rust-miow" ,rust-miow-0.4)
("rust-notify" ,rust-notify-5-pre.13)
("rust-object" ,rust-object-0.28)
("rust-once-cell" ,rust-once-cell-1)
("rust-parking-lot" ,rust-parking-lot-0.11)
("rust-perf-event" ,rust-perf-event-0.4)
("rust-proc-macro2" ,rust-proc-macro2-1.0.34)
("rust-pulldown-cmark" ,rust-pulldown-cmark-0.8)
("rust-pulldown-cmark-to-cmark" ,rust-pulldown-cmark-to-cmark-7)
("rust-rowan" ,rust-rowan-0.15)
("rust-rustc-ap-rustc-lexer" ,rust-rustc-ap-rustc-lexer-725)
("rust-rustc-hash" ,rust-rustc-hash-1)
("rust-salsa" ,rust-salsa-0.17)
("rust-scoped-tls" ,rust-scoped-tls-1)
("rust-serde" ,rust-serde-1)
("rust-serde-json" ,rust-serde-json-1.0.73)
("rust-serde-path-to-error" ,rust-serde-path-to-error-0.1)
("rust-typed-arena" ,rust-typed-arena-2)
("rust-smallvec" ,rust-smallvec-1)
("rust-smol-str" ,rust-smol-str-0.1)
("rust-snap" ,rust-snap-1)
("rust-text-size" ,rust-text-size-1)
("rust-threadpool" ,rust-threadpool-1)
("rust-tikv-jemalloc-ctl" ,rust-tikv-jemalloc-ctl-0.4)
("rust-tikv-jemallocator" ,rust-tikv-jemallocator-0.4)
("rust-url" ,rust-url-2)
("rust-walkdir" ,rust-walkdir-2)
("rust-winapi" ,rust-winapi-0.3)
("rust-write-json" ,rust-write-json-0.1)
("rust-xflags" ,rust-xflags-0.2)
("rust-xshell" ,rust-xshell-0.1))
#:phases
(modify-phases %standard-phases
(add-before 'check 'fix-tests
(lambda _
(let ((bash (string-append "#!" (which "bash"))))
(with-directory-excursion "crates/parser/test_data/lexer/ok"
(substitute* "single_line_comments.txt"
(("SHEBANG 19")
(string-append "SHEBANG "
(number->string (string-length bash))))
(("#!/usr/bin/env bash") bash))))))
(add-before 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/rust-analyzer-"
,version)))
(copy-recursively "docs" doc))))
(add-before 'install 'chdir
(lambda _
(chdir "crates/rust-analyzer")))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(rust-src-path (search-input-directory
inputs "/lib/rustlib/src/rust/library")))
;; if environment variable RUST_SRC_PATH is not set, set it,
;; make rust-analyzer work out of box.
(with-directory-excursion bin
(let* ((prog "rust-analyzer")
(wrapped-file (string-append (dirname prog)
"/." (basename prog) "-real"))
(prog-tmp (string-append wrapped-file "-tmp")))
(link prog wrapped-file)
(call-with-output-file prog-tmp
(lambda (port)
(format port "#!~a
if test -z \"${RUST_SRC_PATH}\";then export RUST_SRC_PATH=~S;fi;
exec -a \"$0\" \"~a\" \"$@\""
(which "bash")
rust-src-path
(canonicalize-path wrapped-file))))
(chmod prog-tmp #o755)
(rename-file prog-tmp prog))))))
(replace 'install-license-files
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(doc (string-append out "/share/doc/rust-analyzer-"
,version)))
(chdir "../..")
(install-file "LICENSE-MIT" doc)
(install-file "LICENSE-APACHE" doc)))))))
(native-inputs (list rust-src-1.64))
(home-page "https://rust-analyzer.github.io/")
(synopsis "Experimental Rust compiler front-end for IDEs")
(description "Rust-analyzer is a modular compiler frontend for the Rust
language. It is a part of a larger rls-2.0 effort to create excellent IDE
support for Rust.")
(license (list license:expat license:asl2.0))))
;;; Note: keep in sync with our current Rust/Cargo version. ;;; Note: keep in sync with our current Rust/Cargo version.
(define-public rust-cargo-c (define-public rust-cargo-c
(package (package
(name "rust-cargo-c") (name "rust-cargo-c")
(version "0.9.18+cargo-0.69") (version "0.9.27+cargo-0.74.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (crate-uri "cargo-c" version)) (uri (crate-uri "cargo-c" version))
(file-name (file-name (string-append name "-" version ".tar.gz"))
(string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32 "1xsw17zcxzlg7d7pg40anm9w8g95kvnxfp7ln9sbgv3zhsc9wggq"))))
"191d0813g4m2g1c1h8ykgrfp00blkbds6pg3zl044iyxaclng29h"))))
(build-system cargo-build-system) (build-system cargo-build-system)
(arguments (arguments
`(#:cargo-inputs `(#:cargo-inputs
(("rust-anyhow" ,rust-anyhow-1) (("rust-anyhow" ,rust-anyhow-1)
("rust-cargo" ,rust-cargo-0.69) ("rust-cargo" ,rust-cargo-0.74)
("rust-cargo-util" ,rust-cargo-util-0.2) ("rust-cargo-util" ,rust-cargo-util-0.2)
("rust-cbindgen" ,rust-cbindgen-0.24) ("rust-cbindgen" ,rust-cbindgen-0.26)
("rust-cc" ,rust-cc-1) ("rust-cc" ,rust-cc-1)
("rust-clap" ,rust-clap-4) ("rust-clap" ,rust-clap-4)
("rust-glob" ,rust-glob-0.3) ("rust-glob" ,rust-glob-0.3)
("rust-itertools" ,rust-itertools-0.10) ("rust-itertools" ,rust-itertools-0.11)
("rust-log" ,rust-log-0.4) ("rust-log" ,rust-log-0.4)
("rust-regex" ,rust-regex-1) ("rust-regex" ,rust-regex-1)
("rust-semver" ,rust-semver-1) ("rust-semver" ,rust-semver-1)
("rust-serde" ,rust-serde-1) ("rust-serde" ,rust-serde-1)
("rust-serde-derive" ,rust-serde-derive-1) ("rust-serde-derive" ,rust-serde-derive-1)
("rust-serde-json" ,rust-serde-json-1) ("rust-serde-json" ,rust-serde-json-1)
("rust-toml" ,rust-toml-0.7)))) ("rust-toml" ,rust-toml-0.7)
("rust-windows-sys" ,rust-windows-sys-0.48))))
(native-inputs (native-inputs
(list pkg-config)) (list pkg-config))
(inputs (inputs
(list curl libgit2 libssh2 openssl zlib)) (list curl libgit2-1.6 libssh2 openssl zlib))
(home-page "https://github.com/lu-zero/cargo-c") (home-page "https://github.com/lu-zero/cargo-c")
(synopsis "Build and install C-compatible libraries") (synopsis "Build and install C-compatible libraries")
(description (description
@ -2284,6 +2195,66 @@ consecutive lines and since program start.")
(define-public rust-skim-0.7 (define-public rust-skim-0.7
(deprecated-package "rust-skim-0.7" skim-0.7)) (deprecated-package "rust-skim-0.7" skim-0.7))
(define-public spotifyd
(package
(name "spotifyd")
(version "0.3.5")
(source
(origin
(method url-fetch)
(uri (crate-uri "spotifyd" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1g6k8xmx8xvc2dpak14y8cc2221djhdflzsjczygvqa9gk5jiadd"))))
(build-system cargo-build-system)
(arguments
`(#:install-source? #f
#:cargo-inputs (("rust-alsa" ,rust-alsa-0.7)
("rust-chrono" ,rust-chrono-0.4)
("rust-color-eyre" ,rust-color-eyre-0.6)
("rust-daemonize" ,rust-daemonize-0.5)
("rust-dbus" ,rust-dbus-0.9)
("rust-dbus-crossroads" ,rust-dbus-crossroads-0.5)
("rust-dbus-tokio" ,rust-dbus-tokio-0.7)
("rust-fern" ,rust-fern-0.6)
("rust-futures" ,rust-futures-0.3)
("rust-gethostname" ,rust-gethostname-0.4)
("rust-hex" ,rust-hex-0.4)
("rust-keyring" ,rust-keyring-2)
("rust-libc" ,rust-libc-0.2)
("rust-librespot-audio" ,rust-librespot-audio-0.4)
("rust-librespot-connect" ,rust-librespot-connect-0.4)
("rust-librespot-core" ,rust-librespot-core-0.4)
("rust-librespot-discovery" ,rust-librespot-discovery-0.4)
("rust-librespot-playback" ,rust-librespot-playback-0.4)
("rust-log" ,rust-log-0.4)
("rust-rspotify" ,rust-rspotify-0.11)
("rust-serde" ,rust-serde-1)
("rust-sha-1" ,rust-sha-1-0.10)
("rust-structopt" ,rust-structopt-0.3)
("rust-syslog" ,rust-syslog-6)
("rust-tokio" ,rust-tokio-1)
("rust-tokio-stream" ,rust-tokio-stream-0.1)
("rust-toml" ,rust-toml-0.7)
("rust-url" ,rust-url-2)
("rust-whoami" ,rust-whoami-1)
("rust-xdg" ,rust-xdg-2))
#:cargo-development-inputs (("rust-env-logger" ,rust-env-logger-0.10))
#:features (list "alsa_backend"
"dbus_keyring"
;"dbus_mpris" ; Conflicts with rust-chrono-0.4 version.
"pulseaudio_backend"
"rodio_backend")))
(native-inputs (list perl pkg-config))
(inputs (list alsa-lib dbus pulseaudio))
(home-page "https://github.com/Spotifyd/spotifyd")
(synopsis "Spotify streaming daemon with Spotify Connect support")
(description
"This package provides a light-weight daemon that connects to the Spotify
music service. A Spotifyd instance can be controlled by clients that use the
Spotify Connect protocol, which includes the official Spotify mobile apps.")
(license license:gpl3)))
(define-public svd2rust (define-public svd2rust
(package (package
(name "svd2rust") (name "svd2rust")
@ -2522,14 +2493,7 @@ It will then write @code{fixup!} commits for each of those changes.")
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1815hz1a93brj6v9102xypds1qslf6gxgk9vcvxhxlhy1c2pfxvj")) "1815hz1a93brj6v9102xypds1qslf6gxgk9vcvxhxlhy1c2pfxvj"))))
(snippet
#~(begin (use-modules (guix build utils))
(substitute* "Cargo.toml"
(("1\\.0\\.75") "1.0.68") ; rust-anyhow
(("0\\.4\\.19") "0.4.17") ; rust-log
(("1\\.9\\.4") "1.9.1") ; regex
(("3\\.3") "3.0")))))) ; serde-with
(build-system cargo-build-system) (build-system cargo-build-system)
(arguments (arguments
`(#:features '() `(#:features '()
@ -2667,7 +2631,8 @@ It will then write @code{fixup!} commits for each of those changes.")
(base32 "0y5v2vgl9f3n0n0w4b3iddbfyxv0hls0vw5406ry0hcvnnjyy2l3")))) (base32 "0y5v2vgl9f3n0n0w4b3iddbfyxv0hls0vw5406ry0hcvnnjyy2l3"))))
(build-system cargo-build-system) (build-system cargo-build-system)
(arguments (arguments
(list #:cargo-inputs (list #:install-source? #f
#:cargo-inputs
`(("rust-anyhow" ,rust-anyhow-1) `(("rust-anyhow" ,rust-anyhow-1)
("rust-askama" ,rust-askama-0.11) ("rust-askama" ,rust-askama-0.11)
("rust-bincode" ,rust-bincode-1) ("rust-bincode" ,rust-bincode-1)
@ -2685,26 +2650,7 @@ It will then write @code{fixup!} commits for each of those changes.")
`(("rust-assert-cmd" ,rust-assert-cmd-2) `(("rust-assert-cmd" ,rust-assert-cmd-2)
("rust-rstest" ,rust-rstest-0.15) ("rust-rstest" ,rust-rstest-0.15)
("rust-rstest-reuse" ,rust-rstest-reuse-0.4) ("rust-rstest-reuse" ,rust-rstest-reuse-0.4)
("rust-tempfile" ,rust-tempfile-3)) ("rust-tempfile" ,rust-tempfile-3))))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'use-older-rust
(lambda _
(setenv "RUSTC_BOOTSTRAP" "1")
(substitute* "Cargo.toml"
(("^rust-version = .*$")
(string-append
"rust-version = \""
#$(package-version rust)
"\"\n")))
(substitute* "src/main.rs"
(("#!\\[allow\\(clippy::single_component_path_imports)]")
"#![feature(total_cmp)]"))
(substitute* "src/cmd/query.rs"
(("let handle = &mut io::stdout\\()\\.lock\\();")
"\
let _stdout = io::stdout();
let handle = &mut _stdout.lock();")))))))
(home-page "https://github.com/ajeetdsouza/zoxide/") (home-page "https://github.com/ajeetdsouza/zoxide/")
(synopsis "Fast way to navigate your file system") (synopsis "Fast way to navigate your file system")
(description (description

View File

@ -40,29 +40,34 @@
#:use-module (gnu packages bootstrap) #:use-module (gnu packages bootstrap)
#:use-module (gnu packages cmake) #:use-module (gnu packages cmake)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages cross-base)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages elf) #:use-module (gnu packages elf)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages gdb) #:use-module (gnu packages gdb)
#:use-module (gnu packages jemalloc) #:use-module (gnu packages jemalloc)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages llvm) #:use-module (gnu packages llvm)
#:use-module (gnu packages mingw)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages ssh) #:use-module (gnu packages ssh)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (guix build-system cargo) #:use-module (guix build-system cargo)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module ((guix build utils) #:select (alist-replace)) #:use-module ((guix build utils) #:select (alist-replace))
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix gexp)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 optargs)
#:use-module (srfi srfi-26)) #:use-module (srfi srfi-26))
;; This is the hash for the empty file, and the reason it's relevant is not ;; This is the hash for the empty file, and the reason it's relevant is not
@ -103,6 +108,10 @@
("aarch64-linux" "aarch64-unknown-linux-gnu") ("aarch64-linux" "aarch64-unknown-linux-gnu")
("mips64el-linux" "mips64el-unknown-linux-gnuabi64") ("mips64el-linux" "mips64el-unknown-linux-gnuabi64")
("riscv64-linux" "riscv64gc-unknown-linux-gnu") ("riscv64-linux" "riscv64gc-unknown-linux-gnu")
("i586-gnu" "i686-unknown-hurd-gnu")
("i686-gnu" "i686-unknown-hurd-gnu")
("i686-mingw" "i686-pc-windows-gnu")
("x86_64-mingw" "x86_64-pc-windows-gnu")
(_ (nix-system->gnu-triplet system)))) (_ (nix-system->gnu-triplet system))))
(define* (rust-uri version #:key (dist "static")) (define* (rust-uri version #:key (dist "static"))
@ -655,7 +664,7 @@ safety and thread safety guarantees.")
(rust-bootstrapped-package (rust-bootstrapped-package
rust-1.62 "1.63.0" "1l4rrbzhxv88pnfq94nbyb9m6lfnjwixma3mwjkmvvs2aqlq158z")) rust-1.62 "1.63.0" "1l4rrbzhxv88pnfq94nbyb9m6lfnjwixma3mwjkmvvs2aqlq158z"))
(define-public rust-1.64 (define rust-1.64
(let ((base-rust (let ((base-rust
(rust-bootstrapped-package (rust-bootstrapped-package
rust-1.63 "1.64.0" "018j720b2n12slp4xk64jc6shkncd46d621qdyzh2a8s3r49zkdk"))) rust-1.63 "1.64.0" "018j720b2n12slp4xk64jc6shkncd46d621qdyzh2a8s3r49zkdk")))
@ -825,7 +834,7 @@ safety and thread safety guarantees.")
;;; Here we take the latest included Rust, make it public, and re-enable tests ;;; Here we take the latest included Rust, make it public, and re-enable tests
;;; and extra components such as rustfmt. ;;; and extra components such as rustfmt.
(define-public rust (define-public rust
(let ((base-rust rust-1.70)) (let ((base-rust rust-1.73))
(package (package
(inherit base-rust) (inherit base-rust)
(outputs (cons* "rust-src" "tools" (package-outputs base-rust))) (outputs (cons* "rust-src" "tools" (package-outputs base-rust)))
@ -856,11 +865,42 @@ safety and thread safety guarantees.")
'("fn fetch_downloads_with_git2_first_"))))) '("fn fetch_downloads_with_git2_first_")))))
(add-after 'unpack 'disable-tests-requiring-mercurial (add-after 'unpack 'disable-tests-requiring-mercurial
(lambda _ (lambda _
(with-directory-excursion "src/tools/cargo/tests/testsuite/init" (with-directory-excursion "src/tools/cargo/tests/testsuite/cargo_init"
(substitute* '("mercurial_autodetect/mod.rs" (substitute* '("mercurial_autodetect/mod.rs"
"simple_hg_ignore_exists/mod.rs") "simple_hg_ignore_exists/mod.rs")
,@(make-ignore-test-list ,@(make-ignore-test-list
'("fn case")))))) '("fn case"))))))
(add-after 'unpack 'disable-tests-using-cargo-publish
(lambda _
(with-directory-excursion "src/tools/cargo/tests/testsuite"
(substitute* "alt_registry.rs"
,@(make-ignore-test-list
'("fn warn_for_unused_fields")))
(substitute* '("cargo_add/locked_unchanged/mod.rs"
"cargo_add/lockfile_updated/mod.rs"
"cargo_remove/update_lock_file/mod.rs")
,@(make-ignore-test-list
'("fn case")))
(substitute* "git_shallow.rs"
,@(make-ignore-test-list
'("fn gitoxide_clones_git_dependency_with_shallow_protocol_and_git2_is_used_for_followup_fetches"
"fn gitoxide_clones_registry_with_shallow_protocol_and_aborts_and_updates_again"
"fn gitoxide_clones_registry_with_shallow_protocol_and_follow_up_fetch_maintains_shallowness"
"fn gitoxide_clones_registry_with_shallow_protocol_and_follow_up_with_git2_fetch"
"fn gitoxide_clones_registry_without_shallow_protocol_and_follow_up_fetch_uses_shallowness"
"fn gitoxide_shallow_clone_followed_by_non_shallow_update"
"fn gitoxide_clones_shallow_two_revs_same_deps"
"fn gitoxide_git_dependencies_switch_from_branch_to_rev"
"fn shallow_deps_work_with_revisions_and_branches_mixed_on_same_dependency")))
(substitute* "install.rs"
,@(make-ignore-test-list
'("fn failed_install_retains_temp_directory")))
(substitute* "offline.rs"
,@(make-ignore-test-list
'("fn gitoxide_cargo_compile_offline_with_cached_git_dep_shallow_dep")))
(substitute* "patch.rs"
,@(make-ignore-test-list
'("fn gitoxide_clones_shallow_old_git_patch"))))))
(add-after 'unpack 'disable-tests-broken-on-aarch64 (add-after 'unpack 'disable-tests-broken-on-aarch64
(lambda _ (lambda _
(with-directory-excursion "src/tools/cargo/tests/testsuite/" (with-directory-excursion "src/tools/cargo/tests/testsuite/"
@ -998,30 +1038,216 @@ safety and thread safety guarantees.")
(copy-recursively "src" (string-append out dest "/src"))))) (copy-recursively "src" (string-append out dest "/src")))))
(add-after 'install-rust-src 'wrap-rust-analyzer (add-after 'install-rust-src 'wrap-rust-analyzer
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(wrap-program (string-append (assoc-ref outputs "tools") (let ((bin (string-append (assoc-ref outputs "tools") "/bin")))
"/bin/rust-analyzer") (rename-file (string-append bin "/rust-analyzer")
`("RUST_SRC_PATH" ":" = (string-append bin "/.rust-analyzer-real"))
(,(string-append (assoc-ref outputs "rust-src") (call-with-output-file (string-append bin "/rust-analyzer")
"/lib/rustlib/src/rust/library")))))))))) (lambda (port)
(format port "#!~a
if test -z \"${RUST_SRC_PATH}\";then export RUST_SRC_PATH=~S;fi;
exec -a \"$0\" \"~a\" \"$@\""
(which "bash")
(string-append (assoc-ref outputs "rust-src")
"/lib/rustlib/src/rust/library")
(string-append bin "/.rust-analyzer-real"))))
(chmod (string-append bin "/rust-analyzer") #o755))))))))
;; Add test inputs. ;; Add test inputs.
(native-inputs (cons* `("gdb" ,gdb/pinned) (native-inputs (cons* `("gdb" ,gdb/pinned)
`("procps" ,procps) `("procps" ,procps)
(package-native-inputs base-rust)))))) (package-native-inputs base-rust))))))
(define-public rust-src-1.64 (define*-public (make-rust-sysroot target)
(hidden-package (let ((base-rust rust))
(package (package
(inherit rust-1.64) (inherit base-rust)
(name "rust-src") (name (string-append "rust-sysroot-for-" target))
(build-system copy-build-system) (outputs '("out"))
(native-inputs '()) (arguments
(inputs '()) (substitute-keyword-arguments (package-arguments base-rust)
(native-search-paths '()) ((#:tests? _ #f) #f) ; This package for cross-building.
(outputs '("out")) ((#:phases phases)
(arguments `(modify-phases ,phases
`(#:install-plan (add-after 'unpack 'unbundle-xz
'(("library" "lib/rustlib/src/rust/library") (lambda _
("src" "lib/rustlib/src/rust/src")))) (delete-file-recursively "vendor/lzma-sys/xz-5.2")
(synopsis "Source code for the Rust standard library") ;; Remove the option of using the static library.
(description "This package provide source code for the Rust standard ;; This is necessary for building the sysroot.
library, only use by rust-analyzer, make rust-analyzer out of the box.")))) (substitute* "vendor/lzma-sys/build.rs"
(("!want_static && ") ""))))
,@(if (target-mingw? target)
`((add-after 'set-env 'patch-for-mingw
(lambda* (#:key inputs #:allow-other-keys)
(setenv "LIBRARY_PATH"
(string-join
(delete
(string-append
(or (assoc-ref inputs "mingw-w64-i686-winpthreads")
(assoc-ref inputs "mingw-w64-x86_64-winpthreads"))
"/lib")
(string-split (getenv "LIBRARY_PATH") #\:))
":"))
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(delete
(string-append
(or (assoc-ref inputs "mingw-w64-i686-winpthreads")
(assoc-ref inputs "mingw-w64-x86_64-winpthreads"))
"/include")
(string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
":"))
;; When building a rust-sysroot this crate is only used for
;; the rust-installer.
(substitute* "vendor/num_cpus/src/linux.rs"
(("\\.ceil\\(\\)") ""))
;; gcc doesn't recognize this flag.
(substitute*
"compiler/rustc_target/src/spec/windows_gnullvm_base.rs"
((", \"--unwindlib=none\"") "")))))
`())
(replace 'set-env
(lambda* (#:key inputs #:allow-other-keys)
(setenv "SHELL" (which "sh"))
(setenv "CONFIG_SHELL" (which "sh"))
(setenv "CC" (which "gcc"))
;; The Guix LLVM package installs only shared libraries.
(setenv "LLVM_LINK_SHARED" "1")
(setenv "CROSS_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
(setenv "CROSS_CPLUS_INCLUDE_PATH" (getenv "CPLUS_INCLUDE_PATH"))
(when (assoc-ref inputs (string-append "glibc-cross-" ,target))
(setenv "LIBRARY_PATH"
(string-join
(delete
(string-append
(assoc-ref inputs
(string-append "glibc-cross-" ,target))
"/lib")
(string-split (getenv "LIBRARY_PATH") #\:))
":"))
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(delete
(string-append
(assoc-ref inputs
(string-append "glibc-cross-" ,target))
"/include")
(string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
":")))))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(target-cc
(search-input-file
inputs (string-append "/bin/" ,(cc-for-target target)))))
(call-with-output-file "config.toml"
(lambda (port)
(display (string-append "
[llvm]
[build]
cargo = \"" (search-input-file inputs "/bin/cargo") "\"
rustc = \"" (search-input-file inputs "/bin/rustc") "\"
docs = false
python = \"" (which "python") "\"
vendor = true
submodules = false
target = [\"" ,(nix-system->gnu-triplet-for-rust (gnu-triplet->nix-system target)) "\"]
[install]
prefix = \"" out "\"
sysconfdir = \"etc\"
[rust]
debug = false
jemalloc = false
default-linker = \"" target-cc "\"
channel = \"stable\"
[target." ,(nix-system->gnu-triplet-for-rust) "]
# These are all native tools
llvm-config = \"" (search-input-file inputs "/bin/llvm-config") "\"
linker = \"" (which "gcc") "\"
cc = \"" (which "gcc") "\"
cxx = \"" (which "g++") "\"
ar = \"" (which "ar") "\"
[target." ,(nix-system->gnu-triplet-for-rust (gnu-triplet->nix-system target)) "]
llvm-config = \"" (search-input-file inputs "/bin/llvm-config") "\"
linker = \"" target-cc "\"
cc = \"" target-cc "\"
cxx = \"" (search-input-file inputs (string-append "/bin/" ,(cxx-for-target target))) "\"
ar = \"" (search-input-file inputs (string-append "/bin/" ,(ar-for-target target))) "\"
[dist]
") port))))))
(replace 'build
;; Phase overridden to build the necessary directories.
(lambda* (#:key parallel-build? #:allow-other-keys)
(let ((job-spec (string-append
"-j" (if parallel-build?
(number->string (parallel-job-count))
"1"))))
;; This works for us with the --sysroot flag
;; and then we can build ONLY library/std
(invoke "./x.py" job-spec "build" "library/std"))))
(replace 'install
(lambda _
(invoke "./x.py" "install" "library/std")))
(add-after 'install 'remove-uninstall-script
(lambda* (#:key outputs #:allow-other-keys)
;; This script has no use on Guix
;; and it retains a reference to the host's bash.
(delete-file (string-append (assoc-ref outputs "out")
"/lib/rustlib/uninstall.sh"))))
(delete 'install-rust-src)
(delete 'wrap-rust-analyzer)
(delete 'wrap-rustc)))))
(inputs
(modify-inputs (package-inputs base-rust)
(prepend xz))) ; for lzma-sys
(propagated-inputs
(if (target-mingw? target)
(modify-inputs (package-propagated-inputs base-rust)
(prepend
(if (string=? "i686-w64-mingw32" target)
mingw-w64-i686-winpthreads
mingw-w64-x86_64-winpthreads)))
(package-propagated-inputs base-rust)))
(native-inputs
(if (target-mingw? target)
(modify-inputs (package-native-inputs base-rust)
(prepend (cross-gcc target
#:libc (cross-libc target))
(cross-binutils target)
(if (string=? "i686-w64-mingw32" target)
mingw-w64-i686-winpthreads
mingw-w64-x86_64-winpthreads)
libunwind))
(modify-inputs (package-native-inputs base-rust)
(prepend (cross-gcc target
#:libc (cross-libc target))
(cross-libc target)
(cross-binutils target)))))
(properties
`((hidden? . #t)
,(package-properties base-rust))))))
(define-public rust-analyzer
(package
(name "rust-analyzer")
(version (package-version rust))
(source #f)
(build-system trivial-build-system)
(arguments
(list
#:modules '((guix build utils))
#:builder
#~(begin
(use-modules (guix build utils))
(let ((rust (assoc-ref %build-inputs "rust")))
(install-file (string-append rust "/bin/rust-analyzer")
(string-append #$output "/bin"))
(copy-recursively (string-append rust "/share")
(string-append #$output "/share"))))))
(inputs
(list (list rust "tools")))
(home-page "https://rust-analyzer.github.io/")
(synopsis "Experimental Rust compiler front-end for IDEs")
(description "Rust-analyzer is a modular compiler frontend for the Rust
language. It is a part of a larger rls-2.0 effort to create excellent IDE
support for Rust.")
(license (list license:expat license:asl2.0))))

File diff suppressed because it is too large Load Diff

View File

@ -287,6 +287,14 @@ cards.")
(("^doc:.*") "doc:\n") (("^doc:.*") "doc:\n")
(("install-podboat install-docs") "install-podboat"))))) (("install-podboat install-docs") "install-podboat")))))
'()) '())
(add-after 'unpack 'pre-build
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CXX" ,(cxx-for-target))
(setenv "CXX_FOR_BUILD" (which "g++"))
(substitute* "config.sh"
(("if curl-config")
(string-append
"if " (search-input-file inputs "/bin/curl-config"))))))
(add-after 'configure 'dont-vendor-self (add-after 'configure 'dont-vendor-self
(lambda* (#:key vendor-dir #:allow-other-keys) (lambda* (#:key vendor-dir #:allow-other-keys)
;; Don't keep the whole tarball in the vendor directory ;; Don't keep the whole tarball in the vendor directory
@ -301,9 +309,10 @@ cards.")
(replace 'build (replace 'build
(assoc-ref gnu:%standard-phases 'build)) (assoc-ref gnu:%standard-phases 'build))
(replace 'check (replace 'check
(lambda args (lambda* (#:key tests? #:allow-other-keys #:rest args)
((assoc-ref gnu:%standard-phases 'check) (when tests?
#:test-target "test"))) ((assoc-ref gnu:%standard-phases 'check)
#:test-target "test"))))
(replace 'install (replace 'install
(assoc-ref gnu:%standard-phases 'install))))) (assoc-ref gnu:%standard-phases 'install)))))
(native-search-paths (native-search-paths

View File

@ -1610,14 +1610,14 @@ basic input/output.")
(search-input-file inputs "lib/libxkbcommon.so"))))) (search-input-file inputs "lib/libxkbcommon.so")))))
(replace 'install (replace 'install
;; Upstream install script only takes care of executable. ;; Upstream install script only takes care of executable.
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key native-inputs inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")) (bin (string-append out "/bin"))
(share (string-append out "/share")) (share (string-append out "/share"))
(icons (string-append share "/icons/hicolor/scalable/apps")) (icons (string-append share "/icons/hicolor/scalable/apps"))
(tic (search-input-file inputs "/bin/tic")) (tic (search-input-file (or native-inputs inputs) "/bin/tic"))
(man (string-append share "/man/man1")) (man (string-append share "/man/man1"))
(alacritty-bin "target/release/alacritty")) (alacritty-bin (car (find-files "target" "^alacritty$"))))
;; Install the executable. ;; Install the executable.
(install-file alacritty-bin bin) (install-file alacritty-bin bin)
;; Install man pages. ;; Install man pages.

View File

@ -63,14 +63,14 @@
(define-public tor (define-public tor
(package (package
(name "tor") (name "tor")
(version "0.4.8.9") (version "0.4.8.10")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://dist.torproject.org/tor-" (uri (string-append "https://dist.torproject.org/tor-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0rfgn88izn74nh6gy42ggwmiicnylp73skrlwm61n4znj247vfsr")))) "11is8rwa3654kv2z425chmv9ynip64lwy8svf4klgnqfnzxb8a76"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list #:configure-flags (list #:configure-flags

View File

@ -2,7 +2,7 @@
;;; Copyright © 2013, 2014, 2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2020, 2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2020, 2022, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2022 Denis Carikli <GNUtoo@cyberdimension.org> ;;; Copyright © 2022 Denis Carikli <GNUtoo@cyberdimension.org>
@ -85,7 +85,7 @@ management and threading bugs, and profile your programs in detail. You can
also use Valgrind to build new tools.") also use Valgrind to build new tools.")
;; https://valgrind.org/info/platforms.html ;; https://valgrind.org/info/platforms.html
(supported-systems (fold delete %supported-systems (supported-systems (fold delete %supported-systems
'("armhf-linux" "riscv64-linux"))) '("i586-gnu" "armhf-linux" "riscv64-linux")))
(license gpl2+) (license gpl2+)
;; Hide this variant so end users get the "interactive" Valgrind below. ;; Hide this variant so end users get the "interactive" Valgrind below.
@ -96,5 +96,5 @@ also use Valgrind to build new tools.")
valgrind valgrind
(inputs (inputs
;; GDB is needed to provide a sane default for `--db-command'. ;; GDB is needed to provide a sane default for `--db-command'.
(list gdb `(,(canonical-package glibc) "debug"))) (list gdb `(,(canonical-package (libc-for-target)) "debug")))
(properties '()))) (properties '())))

View File

@ -49,6 +49,7 @@
;;; Copyright © 2015, 2022 David Thompson <davet@gnu.org> ;;; Copyright © 2015, 2022 David Thompson <davet@gnu.org>
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr> ;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2023 Kjartan Oli Agustsson <kjartanoli@disroot.org> ;;; Copyright © 2023 Kjartan Oli Agustsson <kjartanoli@disroot.org>
;;; Copyright © 2023 Steve George <steve@futurile.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -74,6 +75,7 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix hg-download) #:use-module (guix hg-download)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system copy) #:use-module (guix build-system copy)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
@ -91,6 +93,7 @@
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages cook) #:use-module (gnu packages cook)
#:use-module (gnu packages crates-io)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages docbook) #:use-module (gnu packages docbook)
@ -886,6 +889,48 @@ write native speed custom Git applications in any language with bindings.")
;; GPLv2 with linking exception ;; GPLv2 with linking exception
(license license:gpl2))) (license license:gpl2)))
(define-public libgit2-1.7
(package
(inherit libgit2)
(version "1.7.1")
(source (origin
(inherit (package-source libgit2))
(method git-fetch)
(uri (git-reference
(url "https://github.com/libgit2/libgit2")
(commit (string-append "v" version))))
(file-name (git-file-name "libgit2" version))
(sha256
(base32
"1wq6a91k97gbsyafla39yvn1lnr559hqc41ksz1qxv7flf5kyvfx"))
;; We need to use the bundled xdiff until an option is given
;; to use the one from git.
(modules '((guix build utils)))
(snippet
'(begin
(for-each delete-file-recursively
'("deps/chromium-zlib"
"deps/http-parser"
"deps/ntlmclient"
"deps/pcre"
"deps/winhttp"
"deps/zlib"))))))))
(define-public libgit2-1.6
(package
(inherit libgit2)
(version "1.6.4")
(source (origin
(inherit (package-source libgit2))
(method git-fetch)
(uri (git-reference
(url "https://github.com/libgit2/libgit2")
(commit (string-append "v" version))))
(file-name (git-file-name "libgit2" version))
(sha256
(base32
"078jnis7lwzb38ha5lcrs8hzi4br3c8v7c9xaqkvkcaa8nifcvcm"))))))
(define-public libgit2-1.4 (define-public libgit2-1.4
(package (package
(inherit libgit2) (inherit libgit2)
@ -1475,6 +1520,91 @@ subcommands helps automate some parts of the flow to make working with it a
lot easier.") lot easier.")
(license license:bsd-2))) (license license:bsd-2)))
(define-public stgit-2
(package
(name "stgit")
(version "2.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/stacked-git/stgit")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0cgv7chxqkjaqmzi4691in26j2fm8r0vanw8xzb9cqnz6350wvvj"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-anstyle" ,rust-anstyle-1)
("rust-anyhow" ,rust-anyhow-1)
("rust-bstr" ,rust-bstr-1)
("rust-bzip2-rs" ,rust-bzip2-rs-0.1)
("rust-clap" ,rust-clap-4)
("rust-ctrlc" ,rust-ctrlc-3)
("rust-curl" ,rust-curl-0.4)
("rust-encoding_rs" ,rust-encoding-rs-0.8)
("rust-flate2" ,rust-flate2-1)
("rust-gix" ,rust-gix-0.54)
("rust-indexmap" ,rust-indexmap-2)
("rust-is-terminal" ,rust-is-terminal-0.4)
("rust-nom" ,rust-nom-7)
("rust-serde" ,rust-serde-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-strsim" ,rust-strsim-0.10)
("rust-tar" ,rust-tar-0.4)
("rust-tempfile" ,rust-tempfile-3)
("rust-termcolor" ,rust-termcolor-1)
("rust-thiserror" ,rust-thiserror-1)
("rust-time" ,rust-time-0.3))
#:install-source? #f
#:phases
(modify-phases %standard-phases
(add-after 'build 'build-extras
(lambda _
(substitute* "Documentation/Makefile"
(("docbook2x-texi") "docbook2texi"))
(setenv "PERL_PATH" "perl")
(invoke "make" "-C" "Documentation" "info")
(invoke "make" "-C" "completion" "stgit.bash")
(invoke "make" "-C" "completion" "stg.fish")))
(add-after 'install 'install-extras
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(invoke "make" "-C" "Documentation" "install-info"
(string-append "prefix=" out))
(invoke "make" "-C" "completion" "install"
(string-append "prefix=" out)
(string-append "bashdir=" out "/etc/bash_completion.d/"))))))))
(native-inputs
(list pkg-config
;; For the documentation
asciidoc
docbook2x
libxslt
perl
texinfo
xmlto))
(inputs (list openssl zlib curl))
(home-page "https://stacked-git.github.io/")
(synopsis "Stacked Git (StGit) manages Git commits as a stack of patches")
(description "StGit uses a patch stack workflow. Each individual patch
focuses on a single concern, while a stack of patches forms a series of commits.
Patches are stored as normal git commits, allowing easy merging of StGit
patches into other repositories using standard Git.
Features include:
@itemize
@item Import and export patches from Git with @command{stg commit} and
@command{stg uncommit}
@item Create new patches and add them to the stack with @command{stg new}
@item Update a patch from the working tree with @command{stg refresh} and
@command{stg edit}
@item See information about the stack or patch with @command{stg series} and
@command{stg show}
@item Export and send a series of patches by email using @command{stg email}
@end itemize")
(license license:gpl2)))
(define-public stgit (define-public stgit
(package (package
(name "stgit") (name "stgit")

View File

@ -4387,7 +4387,7 @@ practically any type of media.")
(define-public libmediainfo (define-public libmediainfo
(package (package
(name "libmediainfo") (name "libmediainfo")
(version "23.03") (version "23.11")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://mediaarea.net/download/source/" (uri (string-append "https://mediaarea.net/download/source/"
@ -4395,7 +4395,7 @@ practically any type of media.")
name "_" version ".tar.xz")) name "_" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1660lsilm02324c65sxxi41fn225hg78yxqyxff5dyf6fvyzyypm")))) "0gc5brnwagdgaknkpyhkbpwc52q19vf5i3sayifhsg4yqzy58zhr"))))
;; TODO add a Big Buck Bunny webm for tests. ;; TODO add a Big Buck Bunny webm for tests.
(native-inputs (native-inputs
(list autoconf automake libtool pkg-config)) (list autoconf automake libtool pkg-config))
@ -4450,7 +4450,7 @@ MPEG-2, MPEG-4, DVD (VOB)...
(define-public mediainfo (define-public mediainfo
(package (package
(name "mediainfo") (name "mediainfo")
(version "23.03") (version "23.11")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
;; Warning: This source has proved unreliable 1 time at least. ;; Warning: This source has proved unreliable 1 time at least.
@ -4461,7 +4461,7 @@ MPEG-2, MPEG-4, DVD (VOB)...
name "_" version ".tar.xz")) name "_" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1654pal4x753pcha8h939a70q5z3jzaddgb39cinlrv5fljs8qgh")))) "1hy9m2l94ymhpcrhlqqjpgl24lz33qm239pcdlic3z5zs6qb2740"))))
(native-inputs (native-inputs
(list autoconf automake libtool pkg-config)) (list autoconf automake libtool pkg-config))
(inputs (inputs
@ -5588,12 +5588,9 @@ result in several formats:
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(invoke "cargo" "cinstall" "--release" (invoke "cargo" "cinstall" "--release"
(string-append "--prefix=" out))))) ;; Only build the dynamic library.
(add-after 'install 'delete-static-library "--library-type" "cdylib"
(lambda* (#:key outputs #:allow-other-keys) (string-append "--prefix=" out))))))))
;; Delete 93 MiB (!) static library.
(delete-file (string-append (assoc-ref outputs "out")
"/lib/librav1e.a")))))))
(native-inputs (native-inputs
(list nasm pkg-config rust-cargo-c)) (list nasm pkg-config rust-cargo-c))
(inputs (inputs

View File

@ -838,7 +838,7 @@ this process. It is compatible with Fortinet VPNs.")
(define-public openvpn (define-public openvpn
(package (package
(name "openvpn") (name "openvpn")
(version "2.5.8") (version "2.6.7")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -846,14 +846,13 @@ this process. It is compatible with Fortinet VPNs.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1cixqm4gn2d1v8qkbww75j30fzvxz13gc7whcmz54i0x4fvibwx6")))) "04wr0g97nmv81javym8r99mglmb86v1i49xmnmzf938x1cs7g67f"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '("--enable-iproute2=yes"))) '(#:configure-flags '("--enable-iproute2=yes")))
(native-inputs (native-inputs (list iproute pkg-config))
(list iproute)) (inputs (append (list lz4 lzo openssl linux-pam)
(inputs (if (target-linux?) (list libcap-ng) '())))
(list lz4 lzo openssl linux-pam))
(home-page "https://openvpn.net/") (home-page "https://openvpn.net/")
(synopsis "Virtual private network daemon") (synopsis "Virtual private network daemon")
(description (description

View File

@ -587,7 +587,7 @@ driven and does not detract you from your daily work.")
(define-public nyxt (define-public nyxt
(package (package
(name "nyxt") (name "nyxt")
(version "3.9.2") (version "3.10.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -596,13 +596,8 @@ driven and does not detract you from your daily work.")
(commit version))) (commit version)))
(sha256 (sha256
(base32 (base32
"1v85jn46d9vacjig6n9z797fch88fw6vzwbfdzlqdkm86vvm8dwn")) "1rz2082kk3fdvszqmi3fgndrq205vbxl3i0x4qyli0jy3lpvjin8"))
(file-name (git-file-name "nyxt" version)) (file-name (git-file-name name version))))
(modules '((guix build utils)))
(snippet
`(begin
(delete-file-recursively "libraries/nasdf")
#t))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:make-flags (list "nyxt" "NYXT_SUBMODULES=false" `(#:make-flags (list "nyxt" "NYXT_SUBMODULES=false"
@ -679,7 +674,6 @@ driven and does not detract you from your daily work.")
sbcl-montezuma sbcl-montezuma
sbcl-moptilities sbcl-moptilities
sbcl-named-readtables sbcl-named-readtables
sbcl-nasdf
sbcl-nclasses sbcl-nclasses
sbcl-ndebug sbcl-ndebug
sbcl-nfiles sbcl-nfiles

View File

@ -8139,7 +8139,7 @@ compressed JSON header blocks.
(define-public hpcguix-web (define-public hpcguix-web
(package (package
(name "hpcguix-web") (name "hpcguix-web")
(version "0.3.0") (version "0.4.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -8148,7 +8148,7 @@ compressed JSON header blocks.
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1g1sd5d6fhrblqk3rc8hzkk1sxyiilbb45kdgbrfg7ccd1sbic30")))) "19l9gvp2ngn7lc3jynrc16f3il2bgkhq1m8zfaqwxk9vwxiivwrn"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:modules ((guix build gnu-build-system) `(#:modules ((guix build gnu-build-system)

View File

@ -1035,7 +1035,7 @@ local and remote file systems and manage bookmarks of such.")
(define-public parole (define-public parole
(package (package
(name "parole") (name "parole")
(version "4.18.0") (version "4.18.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://archive.xfce.org/src/apps/" (uri (string-append "https://archive.xfce.org/src/apps/"
@ -1043,7 +1043,7 @@ local and remote file systems and manage bookmarks of such.")
name "-" version ".tar.bz2")) name "-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0w9p9zf87pnpl44bay8srrsczscxpmbsriwzqzv31gis9ny2zrdv")))) "0rjsqm582c8i3lyi1n2ghp638cr0chw358i05g7njbw1hjj68wqc"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (list

View File

@ -1498,7 +1498,11 @@ treat it as part of their software base when porting.")
"1zi0r6mqa1g0hhsp02cdsjcxmsbipiv0v65c1h4pl84fydcjikbm")))) "1zi0r6mqa1g0hhsp02cdsjcxmsbipiv0v65c1h4pl84fydcjikbm"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:configure-flags '("--disable-static"))) `(#:configure-flags '("--disable-static"
;; This fixes cross compiling.
,@(if (%current-target-system)
'("--enable-malloc0returnsnull=yes")
'()))))
(propagated-inputs (propagated-inputs
(list libx11 libxext xorgproto)) (list libx11 libxext xorgproto))
(native-inputs (native-inputs
@ -5013,7 +5017,7 @@ by the Xorg server.")
(define-public xorg-server (define-public xorg-server
(package (package
(name "xorg-server") (name "xorg-server")
(version "21.1.9") (version "21.1.10")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -5021,7 +5025,7 @@ by the Xorg server.")
"/xserver/xorg-server-" version ".tar.xz")) "/xserver/xorg-server-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0fjk9ggcrn96blq0bm80739yj23s3gjjjsc0nxk4jk0v07i7nsgz")) "1l0iaq83vbl9jr34sa7v7630c5bnp64drlw8yg6c6yn5xyib7c6f"))
(patches (patches
(list (list
;; See: ;; See:

View File

@ -1767,7 +1767,13 @@ archive' public keys, with GUIX."
(mkdir-p (dirname machines-file))) (mkdir-p (dirname machines-file)))
;; Installed the declared machines file. ;; Installed the declared machines file.
(symlink #+(scheme-file "machines.scm" machines) (symlink #+(scheme-file "machines.scm"
#~((@ (srfi srfi-1) append-map)
(lambda (entry)
(if (build-machine? entry)
(list entry)
entry))
#$machines))
machines-file)))) machines-file))))
(define-record-type* <guix-configuration> (define-record-type* <guix-configuration>

View File

@ -374,7 +374,7 @@ documentation for semantics."))
(network (network
(oci-container-configuration-network config)) (oci-container-configuration-network config))
(user (user
(oci-container-configuration-user config)) (oci-container-configuration-container-user config))
(workdir (workdir
(oci-container-configuration-workdir config))) (oci-container-configuration-workdir config)))
(apply append (apply append

View File

@ -5,6 +5,8 @@
;;; Copyright © 2017, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Kristofer Buffington <kristoferbuffington@gmail.com> ;;; Copyright © 2019 Kristofer Buffington <kristoferbuffington@gmail.com>
;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de> ;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2023 Thomas Ieong <th.ieong@free.fr>
;;; Copyright © 2023 Saku Laesvuori <saku@laesvuori.fi>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -80,7 +82,13 @@
radicale-configuration radicale-configuration
radicale-configuration? radicale-configuration?
radicale-service-type radicale-service-type
%default-radicale-config-file)) %default-radicale-config-file
rspamd-configuration
rspamd-service-type
%default-rspamd-account
%default-rspamd-config-file
%default-rspamd-group))
;;; Commentary: ;;; Commentary:
;;; ;;;
@ -1987,3 +1995,193 @@ hosts = localhost:5232"))
(service-extension account-service-type (const %radicale-accounts)) (service-extension account-service-type (const %radicale-accounts))
(service-extension activation-service-type radicale-activation))) (service-extension activation-service-type radicale-activation)))
(default-value (radicale-configuration)))) (default-value (radicale-configuration))))
;;;
;;; Rspamd.
;;;
(define (directory-tree? xs)
(match xs
((((? string?) (? file-like?)) ...) #t)
(_ #f)))
(define-configuration/no-serialization rspamd-configuration
(package
(file-like rspamd)
"The package that provides rspamd.")
(config-file
(file-like %default-rspamd-config-file)
"File-like object of the configuration file to use. By default
all workers are enabled except fuzzy and they are binded
to their usual ports, e.g localhost:11334, localhost:11333 and so on")
(local.d-files
(directory-tree '())
"Configuration files in local.d, provided as a list of two element lists where
the first element is the filename and the second one is a file-like object. Settings
in these files will be merged with the defaults.")
(override.d-files
(directory-tree '())
"Configuration files in override.d, provided as a list of two element lists where
the first element is the filename and the second one is a file-like object. Settings
in these files will override the defaults.")
(user
(user-account %default-rspamd-account)
"The user to run rspamd as.")
(group
(user-group %default-rspamd-group)
"The group to run rspamd as.")
(debug?
(boolean #f)
"Force debug output.")
(insecure?
(boolean #f)
"Ignore running workers as privileged users.")
(skip-template?
(boolean #f)
"Do not apply Jinja templates.")
(shepherd-requirements
(list-of-symbols '(loopback))
"This is a list of symbols naming Shepherd services that this service
will depend on."))
(define %default-rspamd-account
(user-account
(name "rspamd")
(group "rspamd")
(system? #t)
(comment "Rspamd daemon")
(home-directory "/var/empty")
(shell (file-append shadow "/sbin/nologin"))))
(define %default-rspamd-group
(user-group
(name "rspamd")
(system? #t)))
(define %default-rspamd-config-file
(plain-file "rspamd.conf" "
.include \"$CONFDIR/common.conf\"
options {
pidfile = \"$RUNDIR/rspamd.pid\";
.include \"$CONFDIR/options.inc\"
.include(try=true; priority=1,duplicate=merge) \"$LOCAL_CONFDIR/local.d/options.inc\"
.include(try=true; priority=10) \"$LOCAL_CONFDIR/override.d/options.inc\"
}
logging {
type = \"file\";
filename = \"$LOGDIR/rspamd.log\";
.include \"$CONFDIR/logging.inc\"
.include(try=true; priority=1,duplicate=merge) \"$LOCAL_CONFDIR/local.d/logging.inc\"
.include(try=true; priority=10) \"$LOCAL_CONFDIR/override.d/logging.inc\"
}
worker \"normal\" {
bind_socket = \"localhost:11333\";
.include \"$CONFDIR/worker-normal.inc\"
.include(try=true; priority=1,duplicate=merge) \"$LOCAL_CONFDIR/local.d/worker-normal.inc\"
.include(try=true; priority=10) \"$LOCAL_CONFDIR/override.d/worker-normal.inc\"
}
worker \"controller\" {
bind_socket = \"localhost:11334\";
.include \"$CONFDIR/worker-controller.inc\"
.include(try=true; priority=1,duplicate=merge) \"$LOCAL_CONFDIR/local.d/worker-controller.inc\"
.include(try=true; priority=10) \"$LOCAL_CONFDIR/override.d/worker-controller.inc\"
}
worker \"rspamd_proxy\" {
bind_socket = \"localhost:11332\";
.include \"$CONFDIR/worker-proxy.inc\"
.include(try=true; priority=1,duplicate=merge) \"$LOCAL_CONFDIR/local.d/worker-proxy.inc\"
.include(try=true; priority=10) \"$LOCAL_CONFDIR/override.d/worker-proxy.inc\"
}
# Local fuzzy storage is disabled by default
worker \"fuzzy\" {
bind_socket = \"localhost:11335\";
count = -1; # Disable by default
.include \"$CONFDIR/worker-fuzzy.inc\"
.include(try=true; priority=1,duplicate=merge) \"$LOCAL_CONFDIR/local.d/worker-fuzzy.inc\"
.include(try=true; priority=10) \"$LOCAL_CONFDIR/override.d/worker-fuzzy.inc\"
}
"))
(define (rspamd-accounts config)
(match-record config <rspamd-configuration>
(user group)
(list group user)))
(define (rspamd-shepherd-service config)
(match-record config <rspamd-configuration>
(package config-file user group debug? insecure? skip-template?
local.d-files override.d-files shepherd-requirements)
(list
(shepherd-service
(provision '(rspamd))
(documentation "Run the rspamd daemon.")
(requirement shepherd-requirements)
(start (let ((rspamd (file-append package "/bin/rspamd"))
(local-confdir
(file-union
"rspamd-local-confdir"
`(("local.d" ,(file-union "local.d" local.d-files))
("override.d" ,(file-union "override.d" override.d-files))))))
(with-imported-modules (source-module-closure '((gnu build activation)))
#~(begin
(use-modules (gnu build activation)) ; for mkdir-p/perms
(let ((user (getpwnam #$(user-account-name user))))
(mkdir-p/perms "/var/run/rspamd" user #o755)
(mkdir-p/perms "/var/log/rspamd" user #o755)
(mkdir-p/perms "/var/lib/rspamd" user #o755))
(make-forkexec-constructor
(list #$rspamd "--config" #$config-file
"--var" (string-append "LOCAL_CONFDIR=" #$local-confdir)
"--no-fork"
#$@(if debug?
'("--debug")
'())
#$@(if insecure?
'("--insecure")
'())
#$@(if skip-template?
'("--skip-template")
'()))
#:user #$(user-account-name user)
#:group #$(user-group-name group))))))
(stop #~(make-kill-destructor))
(actions
(list
(shepherd-configuration-action config-file)
(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
(name 'rspamd)
(description "Run the rapid spam filtering system.")
(extensions
(list
(service-extension shepherd-root-service-type rspamd-shepherd-service)
(service-extension account-service-type rspamd-accounts)))
(default-value (rspamd-configuration))))

View File

@ -1229,8 +1229,9 @@ a webserver.")
(frequency 'weekly)))) (frequency 'weekly))))
(define (hpcguix-web-shepherd-service config) (define (hpcguix-web-shepherd-service config)
(let ((specs (hpcguix-web-configuration-specs config)) (let* ((specs (hpcguix-web-configuration-specs config))
(hpcguix-web (hpcguix-web-package config))) (config-file (and specs (scheme-file "hpcguix-web.scm" specs)))
(hpcguix-web (hpcguix-web-package config)))
(with-imported-modules (source-module-closure (with-imported-modules (source-module-closure
'((gnu build shepherd))) '((gnu build shepherd)))
(shepherd-service (shepherd-service
@ -1246,9 +1247,7 @@ a webserver.")
#$(number->string #$(number->string
(hpcguix-web-configuration-port config)) (hpcguix-web-configuration-port config))
#$@(if specs #$@(if specs
#~((string-append "--config=" #~((string-append "--config=" #$config-file))
#$(scheme-file
"hpcguix-web.scm" specs)))
#~())) #~()))
#:user "hpcguix-web" #:user "hpcguix-web"
#:group "hpcguix-web" #:group "hpcguix-web"
@ -1256,7 +1255,8 @@ a webserver.")
(list "XDG_CACHE_HOME=/var/cache/guix/web" (list "XDG_CACHE_HOME=/var/cache/guix/web"
"SSL_CERT_DIR=/etc/ssl/certs") "SSL_CERT_DIR=/etc/ssl/certs")
#:log-file #$%hpcguix-web-log-file)) #:log-file #$%hpcguix-web-log-file))
(stop #~(make-kill-destructor)))))) (stop #~(make-kill-destructor))
(actions (list (shepherd-configuration-action config-file)))))))
(define hpcguix-web-service-type (define hpcguix-web-service-type
(service-type (service-type

View File

@ -369,7 +369,7 @@ TARGET in the other system."
;; List of know pseudo file system types. This is used when validating file ;; List of know pseudo file system types. This is used when validating file
;; system definitions. ;; system definitions.
'("binfmt_misc" "cgroup" "cgroup2" "debugfs" "devpts" "devtmpfs" "efivarfs" "fusectl" '("binfmt_misc" "cgroup" "cgroup2" "debugfs" "devpts" "devtmpfs" "efivarfs" "fusectl"
"hugetlbfs" "overlay" "proc" "securityfs" "sysfs" "tmpfs" "xenfs")) "hugetlbfs" "overlay" "proc" "securityfs" "sysfs" "tmpfs" "tracefs" "xenfs"))
(define %fuse-control-file-system (define %fuse-control-file-system
;; Control file system for Linux' file systems in user-space (FUSE). ;; Control file system for Linux' file systems in user-space (FUSE).

View File

@ -6,6 +6,7 @@
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2019 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2019 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2023 Thomas Ieong <th.ieong@free.fr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -40,7 +41,8 @@
#:export (%test-opensmtpd #:export (%test-opensmtpd
%test-exim %test-exim
%test-dovecot %test-dovecot
%test-getmail)) %test-getmail
%test-rspamd))
(define %opensmtpd-os (define %opensmtpd-os
(simple-operating-system (simple-operating-system
@ -579,3 +581,66 @@ Subject: Hello Nice to meet you!")
(name "getmail") (name "getmail")
(description "Connect to a running Getmail server.") (description "Connect to a running Getmail server.")
(value (run-getmail-test)))) (value (run-getmail-test))))
(define %rspamd-os
(simple-operating-system
(service rspamd-service-type)))
(define (run-rspamd-test)
"Return a test of an OS running Rspamd service."
(define vm
(virtual-machine
(marionette-operating-system
%rspamd-os
#:imported-modules '((gnu services herd)))))
(define test
(with-imported-modules '((gnu build marionette))
#~(begin
(use-modules (srfi srfi-64)
(gnu build marionette))
(define marionette
(make-marionette '(#$vm)))
(test-runner-current (system-test-runner #$output))
(test-begin "rspamd")
(test-assert "service is running"
(marionette-eval
'(begin
(use-modules (gnu services herd))
(start-service 'rspamd))
marionette))
(test-assert "rspamd socket ready"
(wait-for-unix-socket
"/var/lib/rspamd/rspamd.sock"
marionette))
(test-assert "rspamd log file"
(wait-for-file "/var/log/rspamd/rspamd.log" marionette))
;; Check that we can access the web ui
(test-equal "http-get"
200
(marionette-eval
'(begin
(use-modules (web client)
(web response))
;; HEAD returns 500 internal server error, so use GET even though
;; only the headers are relevant
(response-code (http-get "http://localhost:11334")))
marionette))
(test-end))))
(gexp->derivation "rspamd-test" test))
(define %test-rspamd
(system-test
(name "rspamd")
(description "Basic rspamd service test.")
(value (run-rspamd-test))))

View File

@ -298,10 +298,10 @@
(ice-9 match)) (ice-9 match))
(define marionette (define marionette
;; Emulate the host CPU so that KVM is available inside as well ;; Emulate as much as the host CPU supports so that, possibly, KVM
;; ("nested KVM"), provided ;; is available inside as well ("nested KVM"), provided
;; /sys/module/kvm_intel/parameters/nested (or similar) allows it. ;; /sys/module/kvm_intel/parameters/nested (or similar) allows it.
(make-marionette (list #$vm "-cpu" "host"))) (make-marionette (list #$vm "-cpu" "max")))
(test-runner-current (system-test-runner #$output)) (test-runner-current (system-test-runner #$output))
(test-begin "childhurd") (test-begin "childhurd")

View File

@ -55,12 +55,18 @@
to NAME and VERSION." to NAME and VERSION."
(string-append crate-url name "/" version "/download")) (string-append crate-url name "/" version "/download"))
(define (default-rust) (define (default-rust target)
"Return the default Rust package." "Return the default Rust package."
;; Lazily resolve the binding to avoid a circular dependency. ;; Lazily resolve the binding to avoid a circular dependency.
(let ((rust (resolve-interface '(gnu packages rust)))) (let ((rust (resolve-interface '(gnu packages rust))))
(module-ref rust 'rust))) (module-ref rust 'rust)))
(define (default-rust-sysroot target)
"Return the default Rust sysroot for <target>."
;; Lazily resolve the binding to avoid a circular dependency.
(let ((module (resolve-interface '(gnu packages rust))))
(module-ref module 'make-rust-sysroot)))
(define %cargo-utils-modules (define %cargo-utils-modules
;; Build-side modules imported by default. ;; Build-side modules imported by default.
`((guix build cargo-utils) `((guix build cargo-utils)
@ -126,6 +132,69 @@ to NAME and VERSION."
#:graft? #f #:graft? #f
#:guile-for-build guile)) #:guile-for-build guile))
(define* (cargo-cross-build name
#:key
source target
build-inputs target-inputs host-inputs
(tests? #f)
(test-target #f)
(vendor-dir "guix-vendor")
(cargo-build-flags ''("--release"))
(cargo-test-flags ''("--release"))
(cargo-package-flags ''("--no-metadata" "--no-verify"))
(features ''())
(skip-build? #f)
(install-source? (not (target-mingw? target)))
(phases '%standard-phases)
(outputs '("out"))
(search-paths '())
(native-search-paths '())
(system (%current-system))
(guile #f)
(imported-modules %cargo-build-system-modules)
(modules '((guix build cargo-build-system)
(guix build utils))))
"Cross-build SOURCE using CARGO, and with INPUTS."
(define builder
(with-imported-modules imported-modules
#~(begin
(use-modules #$@(sexp->gexp modules))
(cargo-build #:name #$name
#:source #+source
#:target #+target
#:system #$system
#:test-target #$test-target
#:vendor-dir #$vendor-dir
#:cargo-build-flags #$(sexp->gexp cargo-build-flags)
#:cargo-test-flags #$(sexp->gexp cargo-test-flags)
#:cargo-package-flags #$(sexp->gexp cargo-package-flags)
#:features #$(sexp->gexp features)
#:skip-build? #$skip-build?
#:install-source? #$install-source?
#:tests? #$(and tests? (not skip-build?))
#:phases #$(if (pair? phases)
(sexp->gexp phases)
phases)
#:outputs #$(outputs->gexp outputs)
#:inputs (append #$(input-tuples->gexp host-inputs)
#+(input-tuples->gexp target-inputs))
#:native-inputs #+(input-tuples->gexp build-inputs)
#:make-dynamic-linker-cache? #f ;cross-compiling
#:search-paths '#$(sexp->gexp
(map search-path-specification->sexp
search-paths))
#:native-search-paths '#$(sexp->gexp
(map search-path-specification->sexp
native-search-paths))))))
(gexp->derivation name builder
#:system system
#:target target
#:graft? #f
#:guile-for-build guile))
(define (package-cargo-inputs p) (define (package-cargo-inputs p)
(apply (apply
(lambda* (#:key (cargo-inputs '()) #:allow-other-keys) (lambda* (#:key (cargo-inputs '()) #:allow-other-keys)
@ -235,7 +304,8 @@ any dependent crates. This can be a benefits:
(define* (lower name (define* (lower name
#:key source inputs native-inputs outputs system target #:key source inputs native-inputs outputs system target
(rust (default-rust)) (rust (default-rust target))
(rust-sysroot (default-rust-sysroot target))
(cargo-inputs '()) (cargo-inputs '())
(cargo-development-inputs '()) (cargo-development-inputs '())
#:allow-other-keys #:allow-other-keys
@ -243,28 +313,49 @@ any dependent crates. This can be a benefits:
"Return a bag for NAME." "Return a bag for NAME."
(define private-keywords (define private-keywords
'(#:target #:rust #:inputs #:native-inputs #:outputs `(#:rust #:inputs #:native-inputs #:outputs
#:cargo-inputs #:cargo-development-inputs)) #:cargo-inputs #:cargo-development-inputs
#:rust-sysroot
,@(if target '() '(#:target))))
(and (not target) ;; TODO: support cross-compilation (bag
(bag (name name)
(name name) (system system)
(system system) (target target)
(target target) (host-inputs `(,@(if source
(host-inputs `(,@(if source `(("source" ,source))
`(("source" ,source)) '())
'())
,@inputs
;; Keep the standard inputs of 'gnu-build-system' ;,@(if target '() inputs)
,@(standard-packages))) ,@(if target inputs '())
(build-inputs `(("cargo" ,rust "cargo")
("rustc" ,rust) ,@(expand-crate-sources cargo-inputs cargo-development-inputs)))
,@(expand-crate-sources cargo-inputs cargo-development-inputs) (build-inputs `(("cargo" ,rust "cargo")
,@native-inputs)) ("rustc" ,rust)
(outputs outputs)
(build cargo-build) ,@native-inputs
(arguments (strip-keyword-arguments private-keywords arguments))))) ;,@(if target inputs '())
,@(if target '() inputs)
;,@inputs
,@(if target
;; Use the standard cross inputs of
;; 'gnu-build-system'.
(standard-cross-packages target 'host)
'())
;; Keep the standard inputs of 'gnu-build-system'
,@(standard-packages)))
(target-inputs `(,@(if target
(standard-cross-packages target 'target)
'())
;; This provides a separate sysroot for the regular rustc
,@(if target
`(("rust-sysroot" ,(rust-sysroot target)))
'())))
(outputs outputs)
(build (if target cargo-cross-build cargo-build))
(arguments (strip-keyword-arguments private-keywords arguments))))
(define cargo-build-system (define cargo-build-system
(build-system (build-system

View File

@ -460,10 +460,13 @@ is one of `host' or `target'."
`(("cross-gcc" ,(gcc target `(("cross-gcc" ,(gcc target
#:xbinutils (binutils target) #:xbinutils (binutils target)
#:libc libc)) #:libc libc))
("cross-libc" ,libc) ;; Some targets don't have a libc. (e.g. *-elf targets).
,@(if libc
`(("cross-libc" ,libc))
'())
;; MinGW's libc doesn't have a "static" output. ;; MinGW's libc doesn't have a "static" output.
,@(if (member "static" (package-outputs libc)) ,@(if (and libc (member "static" (package-outputs libc)))
`(("cross-libc:static" ,libc "static")) `(("cross-libc:static" ,libc "static"))
'())))))))) '()))))))))

View File

@ -49,11 +49,13 @@ for TRIPLET."
`((system . ,(cond ((target-hurd? triplet) "gnu") `((system . ,(cond ((target-hurd? triplet) "gnu")
((target-linux? triplet) "linux") ((target-linux? triplet) "linux")
((target-mingw? triplet) "windows") ((target-mingw? triplet) "windows")
((target-avr? triplet) "none")
(#t (error "meson: unknown operating system")))) (#t (error "meson: unknown operating system"))))
(cpu_family . ,(cond ((target-x86-32? triplet) "x86") (cpu_family . ,(cond ((target-x86-32? triplet) "x86")
((target-x86-64? triplet) "x86_64") ((target-x86-64? triplet) "x86_64")
((target-arm32? triplet) "arm") ((target-arm32? triplet) "arm")
((target-aarch64? triplet) "aarch64") ((target-aarch64? triplet) "aarch64")
((target-avr? triplet) "avr")
((target-mips64el? triplet) "mips64") ((target-mips64el? triplet) "mips64")
((target-powerpc? triplet) ((target-powerpc? triplet)
(if (target-64bit? triplet) (if (target-64bit? triplet)
@ -66,6 +68,7 @@ for TRIPLET."
((target-x86-64? triplet) "x86_64") ((target-x86-64? triplet) "x86_64")
((target-aarch64? triplet) "armv8-a") ((target-aarch64? triplet) "armv8-a")
((target-arm32? triplet) "armv7") ((target-arm32? triplet) "armv7")
((target-avr? triplet) "avr")
;; According to #mesonbuild on OFTC, there does not appear ;; According to #mesonbuild on OFTC, there does not appear
;; to be an official-ish list of CPU types recognised by ;; to be an official-ish list of CPU types recognised by
;; Meson, the "cpu" field is not used by Meson itself and ;; Meson, the "cpu" field is not used by Meson itself and
@ -89,6 +92,13 @@ TRIPLET."
(ld . ,(string-append triplet "-ld")) (ld . ,(string-append triplet "-ld"))
(strip . ,(string-append triplet "-strip")))) (strip . ,(string-append triplet "-strip"))))
(define (make-built-in-options-alist triplet)
(if (target-avr? triplet)
`((b_pie . #f)
(b_staticpic . #f)
(default_library . "static"))
'()))
(define (make-cross-file triplet) (define (make-cross-file triplet)
(computed-file "cross-file" (computed-file "cross-file"
(with-imported-modules '((guix build meson-configuration)) (with-imported-modules '((guix build meson-configuration))
@ -99,7 +109,9 @@ TRIPLET."
(write-section-header port "host_machine") (write-section-header port "host_machine")
(write-assignments port '#$(make-machine-alist triplet)) (write-assignments port '#$(make-machine-alist triplet))
(write-section-header port "binaries") (write-section-header port "binaries")
(write-assignments port '#$(make-binaries-alist triplet)))))))) (write-assignments port '#$(make-binaries-alist triplet))
(write-section-header port "built-in options")
(write-assignments port '#$(make-built-in-options-alist triplet))))))))
(define %meson-build-system-modules (define %meson-build-system-modules
;; Build-side modules imported by default. ;; Build-side modules imported by default.

View File

@ -0,0 +1,186 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Pierre-Henry Fröhring <contact@phfrohring.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
;; Commentary:
;;
;; Standard build procedure for Elixir packages using 'mix'. This is
;; implemented as an extension of 'gnu-build-system'.
;;
;; Code:
(define-module (guix build-system mix)
#:use-module (guix build mix-build-system)
#:use-module (guix build-system gnu)
#:use-module (guix build-system)
#:use-module (guix gexp)
#:use-module (guix monads)
#:use-module (guix packages)
#:use-module (guix search-paths)
#:use-module (guix store)
#:use-module (guix utils)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:export (mix-build-system hexpm-uri))
;; Lazily resolve bindings to avoid circular dependencies.
(define (default-glibc-utf8-locales)
(let* ((base (resolve-interface '(gnu packages base))))
(module-ref base 'glibc-utf8-locales)))
(define (default-elixir-hex)
(let ((elixir (resolve-interface '(gnu packages elixir))))
(module-ref elixir 'elixir-hex)))
(define (default-rebar3)
(let ((erlang (resolve-interface '(gnu packages erlang))))
(module-ref erlang 'rebar3)))
(define (default-elixir)
(let ((elixir (resolve-interface '(gnu packages elixir))))
(module-ref elixir 'elixir)))
(define* (strip-prefix name #:optional (prefix "elixir-"))
"Return NAME without the prefix PREFIX."
(if (string-prefix? prefix name)
(string-drop name (string-length prefix))
name))
(define (hexpm-uri name version)
"Return the URI where to fetch the sources of a Hex package NAME at VERSION.
NAME is the name of the package which should look like: elixir-pkg-name-X.Y.Z
See: https://github.com/hexpm/specifications/blob/main/endpoints.md"
((compose
(cute string-append "https://repo.hex.pm/tarballs/" <> "-" version ".tar")
(cute string-replace-substring <> "-" "_")
strip-prefix)
name))
;; A number of environment variables specific to the Mix build system are
;; reflected here. They are documented at
;; https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables. Other
;; parameters located in mix.exs are defined at
;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration
(define* (mix-build name
inputs
#:key
source
(tests? #t)
(mix-path #f) ;See MIX_PATH.
(mix-exs "mix.exs") ;See MIX_EXS.
(build-per-environment #t) ;See :build_per_environment.
(phases '%standard-phases)
(outputs '("out"))
(search-paths '())
(system (%current-system))
(guile #f)
(imported-modules `((guix build mix-build-system)
,@%gnu-build-system-modules))
(modules '((guix build mix-build-system)
(guix build utils))))
"Build SOURCE using Elixir, and with INPUTS."
;; Check the documentation of :build_per_environment here:
;; https://hexdocs.pm/mix/1.15.7/Mix.Project.html#module-configuration And
;; "Environments" here:
;; https://hexdocs.pm/mix/1.15.7/Mix.html#module-environments
(define mix-environments
(if build-per-environment
`("prod" ,@(if tests? '("test") '()))
'("shared")))
(define builder
(with-imported-modules imported-modules
#~(begin
(use-modules #$@(sexp->gexp modules))
#$(with-build-variables inputs outputs
#~(mix-build #:name #$name
#:source #+source
#:system #$system
#:tests? #$tests?
#:mix-path #$mix-path
#:mix-exs #$mix-exs
#:mix-environments '#$mix-environments
#:build-per-environment #$build-per-environment
#:phases #$(if (pair? phases)
(sexp->gexp phases)
phases)
#:outputs %outputs
#:search-paths '#$(sexp->gexp
(map
search-path-specification->sexp
search-paths))
#:inputs
%build-inputs)))))
(mlet %store-monad ((guile (package->derivation (or guile (default-guile))
system
#:graft? #f)))
(gexp->derivation name
builder
#:system system
#:graft? #f ;consistent with 'gnu-build'
#:target #f
#:guile-for-build guile)))
(define* (lower name
#:key
(elixir (default-elixir))
(elixir-hex (default-elixir-hex))
(glibc-utf8-locales (default-glibc-utf8-locales))
(inputs '())
(native-inputs '())
(propagated-inputs '())
(rebar3 (default-rebar3))
(tests? #t)
outputs
source
system
target
#:allow-other-keys #:rest arguments)
"Return a bag for NAME."
(let ((private-keywords
'(#:inputs #:native-inputs
#:outputs #:system #:target
#:elixir #:elixir-hex #:glibc-utf8-locales
#:rebar3 #:erlang))
(build-inputs
`(,@(standard-packages)
("glibc-utf8-locales" ,glibc-utf8-locales)
("erlang" ,(lookup-package-input elixir "erlang"))
("rebar3" ,rebar3)
("elixir" ,elixir)
("elixir-hex" ,elixir-hex)
,@inputs
,@native-inputs)))
(bag (name name)
(system system)
(build-inputs build-inputs)
(host-inputs (if target inputs '()))
(outputs outputs)
(build mix-build)
(arguments (strip-keyword-arguments private-keywords arguments)))))
(define mix-build-system
(build-system (name 'mix)
(description "The standard Mix build system")
(lower lower)))
;;; mix.scm ends here

View File

@ -39,7 +39,6 @@
(define %zig-build-system-modules (define %zig-build-system-modules
;; Build-side modules imported by default. ;; Build-side modules imported by default.
`((guix build zig-build-system) `((guix build zig-build-system)
(guix build syscalls)
,@%gnu-build-system-modules)) ,@%gnu-build-system-modules))
(define* (zig-build name inputs (define* (zig-build name inputs

View File

@ -119,6 +119,7 @@ libraries or executables."
(error "Possible pre-generated files found:" pregenerated-files)))) (error "Possible pre-generated files found:" pregenerated-files))))
(define* (configure #:key inputs (define* (configure #:key inputs
target
(vendor-dir "guix-vendor") (vendor-dir "guix-vendor")
#:allow-other-keys) #:allow-other-keys)
"Vendor Cargo.toml dependencies as guix inputs." "Vendor Cargo.toml dependencies as guix inputs."
@ -146,27 +147,75 @@ libraries or executables."
(invoke "tar" "xf" path "-C" crate-dir "--strip-components" "1"))))) (invoke "tar" "xf" path "-C" crate-dir "--strip-components" "1")))))
inputs) inputs)
;; Configure cargo to actually use this new directory. ;; For cross-building
(when target
(setenv "CARGO_BUILD_TARGET"
;; Can this be replaced with platform-rust-architecture?
;; Keep this synchronized with (guix platforms *)
(match target
("aarch64-linux-gnu" "aarch64-unknown-linux-gnu")
("arm-linux-gnueabihf" "armv7-unknown-linux-gnueabihf")
("i686-linux-gnu" "i686-unknown-linux-gnu")
("mips64el-linux-gnu" "mips64el-unknown-linux-gnuabi64")
("powerpc-linux-gnu" "powerpc-unknown-linux-gnu")
("powerpc64-linux-gnu" "powerpc64-unknown-linux-gnu")
("powerpc64le-linux-gnu" "powerpc64le-unknown-linux-gnu")
("riscv64-linux-gnu" "riscv64gc-unknown-linux-gnu")
("x86_64-linux-gnu" "x86_64-unknown-linux-gnu")
("i586-pc-gnu" "i686-unknown-hurd-gnu")
("i686-w64-mingw32" "i686-pc-windows-gnu")
("x86_64-w64-mingw32" "x86_64-pc-windows-gnu")
(else #f)))
(setenv "RUSTFLAGS" (string-append
(or (getenv "RUSTFLAGS") "")
" --sysroot " (assoc-ref inputs "rust-sysroot")))
(setenv "PKG_CONFIG" (string-append target "-pkg-config"))
;; We've removed all the bundled libraries, don't look for them.
(setenv "WINAPI_NO_BUNDLED_LIBRARIES" "1")
;; Prevent targeting the build machine.
(setenv "CRATE_CC_NO_DEFAULTS" "1"))
;; Configure cargo to actually use this new directory with all the crates.
(setenv "CARGO_HOME" (string-append (getcwd) "/.cargo")) (setenv "CARGO_HOME" (string-append (getcwd) "/.cargo"))
(mkdir-p ".cargo") (mkdir-p ".cargo")
;; Not .cargo/config.toml, rustc/cargo will generate .cargo/config otherwise.
(let ((port (open-file ".cargo/config" "w" #:encoding "utf-8"))) (let ((port (open-file ".cargo/config" "w" #:encoding "utf-8")))
(display " ;; Placed here so it doesn't cause random rebuilds. Neither of these work.
;; sysroot = '" (assoc-ref inputs "rust-sysroot") "'
;; rustflags = ['--sysroot', '" (assoc-ref inputs "rust-sysroot") "']
(when target
(display (string-append "
[target." (getenv "CARGO_BUILD_TARGET") "]
linker = '" target "-gcc'
[build]
target = ['" (getenv "CARGO_BUILD_TARGET") "']") port))
(display (string-append "
[source.crates-io] [source.crates-io]
replace-with = 'vendored-sources' replace-with = 'vendored-sources'
[source.vendored-sources] [source.vendored-sources]
directory = '" port) directory = '" vendor-dir "'") port)
(display (string-append (getcwd) "/" vendor-dir) port)
(display "'
" port)
(close-port port)) (close-port port))
;; Lift restriction on any lints: a crate author may have decided to opt ;; Lift restriction on any lints: a crate author may have decided to opt
;; into stricter lints (e.g. #![deny(warnings)]) during their own builds ;; into stricter lints (e.g. #![deny(warnings)]) during their own builds
;; but we don't want any build failures that could be caused later by ;; but we don't want any build failures that could be caused later by
;; upgrading the compiler for example. ;; upgrading the compiler for example.
(setenv "RUSTFLAGS" "--cap-lints allow") (setenv "RUSTFLAGS" (string-append (or (getenv "RUSTFLAGS") "")
(setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc")) " --cap-lints allow"))
(if (assoc-ref inputs "cross-gcc")
(begin
(setenv "HOST_CC" "gcc")
(setenv "TARGET_CC" (string-append target "-gcc"))
(setenv "TARGET_AR" (string-append target "-ar"))
(setenv "TARGET_PKG_CONFIG" (string-append target "-pkg-config")))
(setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc")))
(setenv "LIBGIT2_SYS_USE_PKG_CONFIG" "1") (setenv "LIBGIT2_SYS_USE_PKG_CONFIG" "1")
(setenv "LIBSSH2_SYS_USE_PKG_CONFIG" "1") (setenv "LIBSSH2_SYS_USE_PKG_CONFIG" "1")
(when (assoc-ref inputs "openssl") (when (assoc-ref inputs "openssl")
@ -264,7 +313,11 @@ directory = '" port)
(unless (eq? (stat:type s) 'symlink) (unless (eq? (stat:type s) 'symlink)
(utime file 0 0 0 0)))) (utime file 0 0 0 0))))
(find-files dir #:directories? #t)) (find-files dir #:directories? #t))
(apply invoke "tar" "czf" (string-append dir ".crate") (apply invoke "tar" "czf" (string-append dir ".crate")
;; avoid non-determinism in the archive
"--sort=name" "--mtime=@0"
"--owner=root:0" "--group=root:0"
(find-files dir #:directories? #t)) (find-files dir #:directories? #t))
(delete-file-recursively dir))) (delete-file-recursively dir)))
(find-files "." "\\.crate$"))))) (find-files "." "\\.crate$")))))

View File

@ -0,0 +1,161 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Pierre-Henry Fröhring <contact@phfrohring.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
;; Commentary:
;;
;; Code:
(define-module (guix build mix-build-system)
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
#:use-module (guix build utils)
#:use-module (ice-9 ftw)
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
#:use-module (ice-9 string-fun)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-71)
#:export (mix-build
%standard-phases))
;; The Elixir version is constant as soon as it is computable from the current
;; execution. It is a X.Y string where X and Y are respectively the major and
;; minor version number of the Elixir used in the build.
(define %elixir-version (make-parameter "X.Y"))
(define* (elixir-libdir path #:optional (version (%elixir-version)))
"Return the path where all libraries under PATH for a specified Elixir
VERSION are installed."
(string-append path "/lib/elixir/" version))
(define* (strip-prefix name #:optional (prefix "elixir-"))
"Return NAME without the prefix PREFIX."
(if (string-prefix? prefix name)
(string-drop name (string-length prefix))
name))
(define (mix-build-dir mix-build-root mix-env)
"Return the directory where build artifacts are to be installed according to
en environment MIX-ENV in the current directory. MIX-BUILD-ROOT depends on the
package arguments. See: https://hexdocs.pm/mix/1.15/Mix.html#module-environment-variables"
(string-append mix-build-root "/" mix-env "/lib"))
(define (elixir-version inputs)
"Return an X.Y string where X and Y are respectively the major and minor version number of PACKAGE.
Example: /gnu/store/-elixir-1.14.0 1.14"
((compose
(cute string-join <> ".")
(cute take <> 2)
(cute string-split <> #\.)
strip-prefix
strip-store-file-name)
(assoc-ref inputs "elixir")))
(define* (unpack #:key source mix-path #:allow-other-keys)
"Unpack SOURCE in the working directory, and change directory within the
source. When SOURCE is a directory, copy it in a sub-directory of the current
working directory."
(let ((gnu-unpack (assoc-ref gnu:%standard-phases 'unpack)))
(gnu-unpack #:source source)
(when (file-exists? "contents.tar.gz")
(invoke "tar" "xvf" "contents.tar.gz"))))
(define (list-directories dir)
"List absolute paths of directories directly under the directory DIR."
(map (cute string-append dir "/" <>)
(scandir dir (lambda (filename)
(and (not (member filename '("." "..")))
(directory-exists? (string-append dir "/" filename)))))))
(define* (set-mix-env #:key inputs mix-path mix-exs #:allow-other-keys)
"Set environment variables.
See: https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables"
(setenv "MIX_ARCHIVES" "archives")
(setenv "MIX_BUILD_ROOT" "_build")
(setenv "MIX_DEPS_PATH" "deps")
(setenv "MIX_EXS" mix-exs)
(setenv "MIX_HOME" (getcwd))
(setenv "MIX_PATH" (or mix-path ""))
(setenv "MIX_REBAR3" (string-append (assoc-ref inputs "rebar3") "/bin/rebar3")))
(define* (set-elixir-version #:key inputs #:allow-other-keys)
"Store the version number of the Elixir input in a parameter."
(%elixir-version (elixir-version inputs))
(format #t "Elixir version: ~a~%" (%elixir-version)))
(define* (build #:key mix-environments #:allow-other-keys)
"Builds the Mix project."
(for-each (lambda (mix-env)
(setenv "MIX_ENV" mix-env)
(invoke "mix" "compile" "--no-deps-check"))
mix-environments))
(define* (check #:key (tests? #t) #:allow-other-keys)
"Test the Mix project."
(if tests?
(invoke "mix" "test" "--no-deps-check")
(format #t "tests? = ~a~%" tests?)))
(define* (remove-mix-dirs . _)
"Remove all .mix/ directories.
We do not want to copy them to the installation directory."
(for-each delete-file-recursively
(find-files "." (file-name-predicate "\\.mix$") #:directories? #t)))
(define (package-name->elixir-name name+ver)
"Convert the Guix package NAME-VER to the corresponding Elixir name-version
format. Example: elixir-a-pkg-1.2.3 -> a_pkg"
((compose
(cute string-join <> "_")
(cute drop-right <> 1)
(cute string-split <> #\-))
(strip-prefix name+ver)))
(define* (install #:key
inputs
outputs
name
build-per-environment
#:allow-other-keys)
"Install build artifacts in the store."
(let* ((lib-name (package-name->elixir-name name))
(lib-dir (string-append (elixir-libdir (assoc-ref outputs "out")) "/" lib-name))
(root (getenv "MIX_BUILD_ROOT"))
(env (if build-per-environment "prod" "shared")))
(mkdir-p lib-dir)
(copy-recursively (string-append (mix-build-dir root env) "/" lib-name) lib-dir
#:follow-symlinks? #t)))
(define %standard-phases
(modify-phases gnu:%standard-phases
(delete 'bootstrap)
(delete 'configure)
(add-after 'install-locale 'set-mix-env set-mix-env)
(add-after 'set-mix-env 'set-elixir-version set-elixir-version)
(replace 'unpack unpack)
(replace 'build build)
(replace 'check check)
(add-before 'install 'remove-mix-dirs remove-mix-dirs)
(replace 'install install)))
(define* (mix-build #:key inputs (phases %standard-phases)
#:allow-other-keys #:rest args)
"Build the given Mix package, applying all of PHASES in order."
(apply gnu:gnu-build #:inputs inputs #:phases phases args))
;;; mix-build-system.scm ends here

View File

@ -1098,6 +1098,7 @@ Turning finalization off shuts down the finalization thread as a side effect."
("armv7l" 120) ("armv7l" 120)
("aarch64" 220) ("aarch64" 220)
("ppc64le" 120) ("ppc64le" 120)
("riscv64" 220)
(_ #f)))) (_ #f))))
(lambda (flags) (lambda (flags)
"Create a new child process by duplicating the current parent process. "Create a new child process by duplicating the current parent process.

View File

@ -7,6 +7,7 @@
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2023 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -28,6 +29,7 @@
#:use-module (guix git) #:use-module (guix git)
#:use-module (guix hash) #:use-module (guix hash)
#:use-module (guix i18n) #:use-module (guix i18n)
#:use-module ((guix utils) #:select (version>?))
#:use-module (guix diagnostics) #:use-module (guix diagnostics)
#:use-module (guix import utils) #:use-module (guix import utils)
#:use-module (guix import json) #:use-module (guix import json)
@ -92,6 +94,11 @@
;;; Code: ;;; Code:
(define (go-package)
"Return the 'go' package. This is a lazy reference so that we don't
depend on (gnu packages golang)."
(module-ref (resolve-interface '(gnu packages golang)) 'go))
(define http-fetch* (define http-fetch*
;; Like http-fetch, but memoized and returning the body as a string. ;; Like http-fetch, but memoized and returning the body as a string.
(memoize (lambda args (memoize (lambda args
@ -293,7 +300,10 @@ comment, or unknown) and is followed by the indicated data."
;; The following directives may all be used solo or in a block ;; The following directives may all be used solo or in a block
;; RequireSpec = ModulePath Version newline . ;; RequireSpec = ModulePath Version newline .
(define-peg-pattern require all (and module-path version EOL)) (define-peg-pattern require all
(and module-path version
;; We don't want the transitive dependencies.
(not-followed-by (and (* WS) "//" (* WS) "indirect")) EOL))
(define-peg-pattern require-top body (define-peg-pattern require-top body
(and (ignore "require") (and (ignore "require")
(or (and block-start (* (or require block-line)) block-end) require))) (or (and block-start (* (or require block-line)) block-end) require)))
@ -310,7 +320,7 @@ comment, or unknown) and is followed by the indicated data."
(define-peg-pattern with all (or (and module-path version) file-path)) (define-peg-pattern with all (or (and module-path version) file-path))
(define-peg-pattern replace all (and original => with EOL)) (define-peg-pattern replace all (and original => with EOL))
(define-peg-pattern replace-top body (define-peg-pattern replace-top body
(and (ignore "replace") (and (ignore "replace")
(or (and block-start (* (or replace block-line)) block-end) replace))) (or (and block-start (* (or replace block-line)) block-end) replace)))
;; RetractSpec = ( Version | "[" Version "," Version "]" ) newline . ;; RetractSpec = ( Version | "[" Version "," Version "]" ) newline .
@ -374,6 +384,17 @@ DIRECTIVE."
;; Prevent inlining of this procedure, which is accessed by unit tests. ;; Prevent inlining of this procedure, which is accessed by unit tests.
(set! go.mod-requirements go.mod-requirements) (set! go.mod-requirements go.mod-requirements)
(define (go.mod-go-version go.mod)
"Return the minimum version of go required to specified by GO.MOD."
(let ((go-version (go.mod-directives go.mod 'go)))
(if (null? go-version)
;; If the go directive is missing, go 1.16 is assumed.
'(version "1.16")
(flatten go-version))))
;; Prevent inlining of this procedure, which is accessed by unit tests.
(set! go.mod-go-version go.mod-go-version)
(define-record-type <vcs> (define-record-type <vcs>
(%make-vcs url-prefix root-regex type) (%make-vcs url-prefix root-regex type)
vcs? vcs?
@ -606,6 +627,7 @@ When VERSION is unspecified, the latest version available is used."
available-versions available-versions
module-path)) module-path))
(content (fetch-go.mod goproxy module-path version*)) (content (fetch-go.mod goproxy module-path version*))
(min-go-version (second (go.mod-go-version (parse-go.mod content))))
(dependencies+versions (go.mod-requirements (parse-go.mod content))) (dependencies+versions (go.mod-requirements (parse-go.mod content)))
(dependencies (if pin-versions? (dependencies (if pin-versions?
dependencies+versions dependencies+versions
@ -630,10 +652,13 @@ When VERSION is unspecified, the latest version available is used."
,(vcs->origin vcs-type vcs-repo-url version*)) ,(vcs->origin vcs-type vcs-repo-url version*))
(build-system go-build-system) (build-system go-build-system)
(arguments (arguments
'(#:import-path ,module-path (list ,@(if (version>? min-go-version (package-version (go-package)))
,@(if (string=? module-path-sans-suffix root-module-path) `(#:go ,(string->number min-go-version))
'() '())
`(#:unpack-path ,root-module-path)))) #:import-path ,module-path
,@(if (string=? module-path-sans-suffix root-module-path)
'()
`(#:unpack-path ,root-module-path))))
,@(maybe-propagated-inputs ,@(maybe-propagated-inputs
(map (match-lambda (map (match-lambda
((name version) ((name version)

View File

@ -29,6 +29,7 @@
platform-target platform-target
platform-system platform-system
platform-linux-architecture platform-linux-architecture
platform-rust-target
platform-glibc-dynamic-linker platform-glibc-dynamic-linker
&platform-not-found-error &platform-not-found-error
@ -74,6 +75,8 @@
(system platform-system) (system platform-system)
(linux-architecture platform-linux-architecture (linux-architecture platform-linux-architecture
(default #false)) (default #false))
(rust-target platform-rust-target
(default #false))
(glibc-dynamic-linker platform-glibc-dynamic-linker)) (glibc-dynamic-linker platform-glibc-dynamic-linker))

View File

@ -27,6 +27,7 @@
(target "arm-linux-gnueabihf") (target "arm-linux-gnueabihf")
(system "armhf-linux") (system "armhf-linux")
(linux-architecture "arm") (linux-architecture "arm")
(rust-target "armv7-unknown-linux-gnueabihf")
(glibc-dynamic-linker "/lib/ld-linux-armhf.so.3"))) (glibc-dynamic-linker "/lib/ld-linux-armhf.so.3")))
(define aarch64-linux (define aarch64-linux
@ -34,4 +35,5 @@
(target "aarch64-linux-gnu") (target "aarch64-linux-gnu")
(system "aarch64-linux") (system "aarch64-linux")
(linux-architecture "arm64") (linux-architecture "arm64")
(rust-target "aarch64-unknown-linux-gnu")
(glibc-dynamic-linker "/lib/ld-linux-aarch64.so.1"))) (glibc-dynamic-linker "/lib/ld-linux-aarch64.so.1")))

Some files were not shown because too many files have changed in this diff Show More