Merge branch 'master' into staging

This commit is contained in:
Marius Bakke 2022-09-07 18:20:23 +02:00
commit 6cfb2e6270
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
157 changed files with 217158 additions and 201510 deletions

View file

@ -10,11 +10,25 @@
. "\\(<https?://\\bugs\\.gnu\\.org/\\([0-9]+\\)>\\)") . "\\(<https?://\\bugs\\.gnu\\.org/\\([0-9]+\\)>\\)")
(bug-reference-url-format . "https://bugs.gnu.org/%s") (bug-reference-url-format . "https://bugs.gnu.org/%s")
(eval . (add-to-list 'completion-ignored-extensions ".go"))
;; Emacs-Guix ;; Emacs-Guix
(eval . (setq-local guix-directory (eval . (setq-local guix-directory
(locate-dominating-file default-directory (locate-dominating-file default-directory
".dir-locals.el"))) ".dir-locals.el")))
;; YASnippet
(eval . (with-eval-after-load
'yasnippet
(let ((guix-yasnippets
(expand-file-name
"etc/snippets/yas"
(locate-dominating-file default-directory
".dir-locals.el"))))
(unless (member guix-yasnippets yas-snippet-dirs)
(add-to-list 'yas-snippet-dirs guix-yasnippets)
(yas-reload-all)))))
;; Geiser ;; Geiser
;; This allows automatically setting the `geiser-guile-load-path' ;; This allows automatically setting the `geiser-guile-load-path'
;; variable when using various Guix checkouts (e.g., via git worktrees). ;; variable when using various Guix checkouts (e.g., via git worktrees).

View file

@ -401,10 +401,6 @@ AUX_FILES = \
gnu/packages/aux-files/linux-libre/5.19-arm64.conf \ gnu/packages/aux-files/linux-libre/5.19-arm64.conf \
gnu/packages/aux-files/linux-libre/5.19-i686.conf \ gnu/packages/aux-files/linux-libre/5.19-i686.conf \
gnu/packages/aux-files/linux-libre/5.19-x86_64.conf \ gnu/packages/aux-files/linux-libre/5.19-x86_64.conf \
gnu/packages/aux-files/linux-libre/5.18-arm.conf \
gnu/packages/aux-files/linux-libre/5.18-arm64.conf \
gnu/packages/aux-files/linux-libre/5.18-i686.conf \
gnu/packages/aux-files/linux-libre/5.18-x86_64.conf \
gnu/packages/aux-files/linux-libre/5.15-arm.conf \ gnu/packages/aux-files/linux-libre/5.15-arm.conf \
gnu/packages/aux-files/linux-libre/5.15-arm64.conf \ gnu/packages/aux-files/linux-libre/5.15-arm64.conf \
gnu/packages/aux-files/linux-libre/5.15-i686.conf \ gnu/packages/aux-files/linux-libre/5.15-i686.conf \

View file

@ -1627,14 +1627,23 @@ git config commit.gpgsign true
git config user.signingkey CABBA6EA1DC0FF33 git config user.signingkey CABBA6EA1DC0FF33
@end example @end example
You can prevent yourself from accidentally pushing unsigned commits to To check that commits are signed with correct key, use:
Savannah by using the pre-push Git hook located at
@file{etc/git/pre-push}: @example
make authenticate
@end example
You can prevent yourself from accidentally pushing unsigned or signed
with the wrong key commits to Savannah by using the pre-push Git hook
located at @file{etc/git/pre-push}:
@example @example
cp etc/git/pre-push .git/hooks/pre-push cp etc/git/pre-push .git/hooks/pre-push
@end example @end example
It additionally calls @code{make check-channel-news} to be sure
@file{news.scm} file is correct.
@subsection Commit Policy @subsection Commit Policy
If you get commit access, please make sure to follow If you get commit access, please make sure to follow

View file

@ -98,7 +98,7 @@ Copyright @copyright{} 2021 pukkamustard@*
Copyright @copyright{} 2021 Alice Brenon@* Copyright @copyright{} 2021 Alice Brenon@*
Copyright @copyright{} 2021, 2022 Josselin Poiret@* Copyright @copyright{} 2021, 2022 Josselin Poiret@*
Copyright @copyright{} 2021 muradm@* Copyright @copyright{} 2021 muradm@*
Copyright @copyright{} 2021 Andrew Tropin@* Copyright @copyright{} 2021, 2022 Andrew Tropin@*
Copyright @copyright{} 2021 Sarah Morgensen@* Copyright @copyright{} 2021 Sarah Morgensen@*
Copyright @copyright{} 2022 Remco van 't Veer@* Copyright @copyright{} 2022 Remco van 't Veer@*
Copyright @copyright{} 2022 Aleksandr Vityazev@* Copyright @copyright{} 2022 Aleksandr Vityazev@*
@ -7322,6 +7322,14 @@ unavailable to the build process, possibly leading to a build failure.
@xref{package Reference}, for a full description of possible fields. @xref{package Reference}, for a full description of possible fields.
@quotation Going further
@cindex Scheme programming language, getting started
Intimidated by the Scheme language or curious about it? The Cookbook
has a short section to get started that recaps some of the things shown
above and explains the fundamentals. @xref{A Scheme Crash Course,,,
guix-cookbook, GNU Guix Cookbook}, for more information.
@end quotation
Once a package definition is in place, the Once a package definition is in place, the
package may actually be built using the @code{guix build} command-line package may actually be built using the @code{guix build} command-line
tool (@pxref{Invoking guix build}), troubleshooting any build failures tool (@pxref{Invoking guix build}), troubleshooting any build failures
@ -22748,15 +22756,16 @@ Enable polling the kernel for battery level changes.
@item @code{ignore-lid?} (default: @code{#f}) @item @code{ignore-lid?} (default: @code{#f})
Ignore the lid state, this can be useful if it's incorrect on a device. Ignore the lid state, this can be useful if it's incorrect on a device.
@item @code{use-percentage-for-policy?} (default: @code{#f}) @item @code{use-percentage-for-policy?} (default: @code{#t})
Whether battery percentage based policy should be used. The default is to use Whether a to use a policy based on battery percentage rather than on
the time left, change to @code{#t} to use the percentage. estimated time left. A policy based on battery percentage is usually
more reliable.
@item @code{percentage-low} (default: @code{10}) @item @code{percentage-low} (default: @code{20})
When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage
at which the battery is considered low. at which the battery is considered low.
@item @code{percentage-critical} (default: @code{3}) @item @code{percentage-critical} (default: @code{5})
When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage When @code{use-percentage-for-policy?} is @code{#t}, this sets the percentage
at which the battery is considered critical. at which the battery is considered critical.
@ -28832,6 +28841,14 @@ types, or alternatively, a config file can be provided.
@item @code{nginx} (default: @code{nginx}) @item @code{nginx} (default: @code{nginx})
The nginx package to use. The nginx package to use.
@item @code{shepherd-requirement} (default: @code{'()})
This is a list of symbols naming Shepherd services the nginx service
will depend on.
This is useful if you would like @command{nginx} to be started after a
back-end web server or a logging service such as Anonip has been
started.
@item @code{log-directory} (default: @code{"/var/log/nginx"}) @item @code{log-directory} (default: @code{"/var/log/nginx"})
The directory to which NGinx will write log files. The directory to which NGinx will write log files.

View file

@ -26,6 +26,13 @@
(channel-news (channel-news
(version 0) (version 0)
(entry (commit "c188cf57f161c0c26e2d7c8516bd1ddd1492d686")
(title
(en "Linux-libre kernel updated to 5.19"))
(body
(en "The default version of the linux-libre kernel has been
updated to the 5.19 release series.")))
(entry (commit "a15542d26df42dabdb5e2f76d150ae200230c3b0") (entry (commit "a15542d26df42dabdb5e2f76d150ae200230c3b0")
(title (title
(en "New @option{--whole-file} option for @command{guix style}") (en "New @option{--whole-file} option for @command{guix style}")

View file

@ -185,6 +185,14 @@ and the maven-build-system."))
"Taking care about Icecat and Icedove, built from Mozilla Firefox "Taking care about Icecat and Icedove, built from Mozilla Firefox
and Thunderbird.")) and Thunderbird."))
(define-team racket
(team 'racket
#:name "Racket team"
#:description
"The Racket language and Racket-based languages, Racket packages,
Racket's variant of Chez Scheme, and development of a Racket build system and
importer."))
(define-member (person "Thiago Jung Bauermann" (define-member (person "Thiago Jung Bauermann"
"bauermann@kolabnow.com") "bauermann@kolabnow.com")
@ -230,6 +238,10 @@ and Thunderbird."))
"julien@lepiller.eu") "julien@lepiller.eu")
java ocaml translations) java ocaml translations)
(define-member (person "Philip McGrath"
"philip@philipmcgrath.com")
racket)
(define-member (person "Mathieu Othacehe" (define-member (person "Mathieu Othacehe"
"othacehe@gnu.org") "othacehe@gnu.org")
core installer mentors) core installer mentors)

View file

@ -589,15 +589,6 @@ upon error."
(load-linux-modules-from-directory linux-modules (load-linux-modules-from-directory linux-modules
linux-module-directory) linux-module-directory)
(unless (or (member "hibernate=noresume" args)
;; Also handle the equivalent old-style argument.
;; See Documentation/admin-guide/kernel-parameters.txt.
(member "noresume" args))
;; Try to resume immediately after loading (storage) modules
;; but before any on-disk file systems have been mounted.
(false-if-exception ; failure is not fatal
(resume-if-hibernated (find-long-option "resume" args))))
(when keymap-file (when keymap-file
(let ((status (system* "loadkeys" keymap-file))) (let ((status (system* "loadkeys" keymap-file)))
(unless (zero? status) (unless (zero? status)
@ -631,6 +622,15 @@ the root file system...\n" root-delay)
(unless (pre-mount) (unless (pre-mount)
(error "pre-mount actions failed"))) (error "pre-mount actions failed")))
(unless (or (member "hibernate=noresume" args)
;; Also handle the equivalent old-style argument.
;; See Documentation/admin-guide/kernel-parameters.txt.
(member "noresume" args))
;; Try to resume immediately after loading (storage) modules
;; but before any on-disk file systems have been mounted.
(false-if-exception ; failure is not fatal
(resume-if-hibernated (find-long-option "resume" args))))
(setenv "EXT2FS_NO_MTAB_OK" "1") (setenv "EXT2FS_NO_MTAB_OK" "1")
;; Mount the root file system. ;; Mount the root file system.

View file

@ -2,6 +2,7 @@
;;; Copyright © 2017, 2018, 2019, 2020, 2022 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017, 2018, 2019, 2020, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Mathieu Othacehe <othacehe@gnu.org> ;;; Copyright © 2020 Mathieu Othacehe <othacehe@gnu.org>
;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la> ;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
;;; Copyright © 2022 Arun Isaac <arunisaac@systemreboot.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -186,7 +187,7 @@ namespace, in addition to essential bind-mounts such /proc."
(when log-file (when log-file
;; Create LOG-FILE so we can map it in the container. ;; Create LOG-FILE so we can map it in the container.
(unless (file-exists? log-file) (unless (file-exists? log-file)
(call-with-output-file log-file (const #t)) (close (open log-file (logior O_CREAT O_APPEND O_CLOEXEC) #o640))
(when user (when user
(let ((pw (getpwnam user))) (let ((pw (getpwnam user)))
(chown log-file (passwd:uid pw) (passwd:gid pw)))))) (chown log-file (passwd:uid pw) (passwd:gid pw))))))

View file

@ -114,6 +114,7 @@ numeric expression ~%") value 'field))))
(define-record-type* <partition> partition make-partition (define-record-type* <partition> partition make-partition
partition? partition?
(size partition-size ;size in bytes as integer or 'guess (size partition-size ;size in bytes as integer or 'guess
(default 'guess)
(sanitize validate-size)) (sanitize validate-size))
(offset partition-offset (offset partition-offset
(default 0) ;offset in bytes as integer (default 0) ;offset in bytes as integer
@ -124,12 +125,12 @@ numeric expression ~%") value 'field))))
(default '())) ;list of strings (default '())) ;list of strings
(label partition-label) ;string (label partition-label) ;string
(uuid partition-uuid (uuid partition-uuid
(default #f)) ;<uuid> (default #false)) ;<uuid>
(flags partition-flags (flags partition-flags
(default '()) ;list of symbols (default '()) ;list of symbols
(sanitize validate-partition-flags)) (sanitize validate-partition-flags))
(initializer partition-initializer (initializer partition-initializer
(default #f))) ;gexp | #f (default #false))) ;gexp | #false
;;; ;;;
@ -161,11 +162,11 @@ that is not in SET, mentioning FIELD in the error message."
image make-image image make-image
image? image?
(name image-name ;symbol (name image-name ;symbol
(default #f)) (default #false))
(format image-format ;symbol (format image-format ;symbol
(sanitize validate-image-format)) (sanitize validate-image-format))
(platform image-platform ;<platform> (platform image-platform ;<platform>
(default #f)) (default #false))
(size image-size ;size in bytes as integer (size image-size ;size in bytes as integer
(default 'guess) (default 'guess)
(sanitize validate-size)) (sanitize validate-size))
@ -177,15 +178,15 @@ that is not in SET, mentioning FIELD in the error message."
(partitions image-partitions ;list of <partition> (partitions image-partitions ;list of <partition>
(default '())) (default '()))
(compression? image-compression? ;boolean (compression? image-compression? ;boolean
(default #t)) (default #true))
(volatile-root? image-volatile-root? ;boolean (volatile-root? image-volatile-root? ;boolean
(default #t)) (default #true))
(shared-store? image-shared-store? ;boolean (shared-store? image-shared-store? ;boolean
(default #f)) (default #false))
(shared-network? image-shared-network? ;boolean (shared-network? image-shared-network? ;boolean
(default #f)) (default #false))
(substitutable? image-substitutable? ;boolean (substitutable? image-substitutable? ;boolean
(default #t))) (default #true)))
;;; ;;;

View file

@ -417,7 +417,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/moe.scm \ %D%/packages/moe.scm \
%D%/packages/motti.scm \ %D%/packages/motti.scm \
%D%/packages/monitoring.scm \ %D%/packages/monitoring.scm \
%D%/packages/mono.scm \
%D%/packages/moreutils.scm \ %D%/packages/moreutils.scm \
%D%/packages/mpd.scm \ %D%/packages/mpd.scm \
%D%/packages/mp3.scm \ %D%/packages/mp3.scm \
@ -940,6 +939,7 @@ dist_patch_DATA = \
%D%/packages/patches/calibre-remove-test-sqlite.patch \ %D%/packages/patches/calibre-remove-test-sqlite.patch \
%D%/packages/patches/calibre-remove-test-unrar.patch \ %D%/packages/patches/calibre-remove-test-unrar.patch \
%D%/packages/patches/catdoc-CVE-2017-11110.patch \ %D%/packages/patches/catdoc-CVE-2017-11110.patch \
%D%/packages/patches/chez-scheme-bin-sh.patch \
%D%/packages/patches/circos-remove-findbin.patch \ %D%/packages/patches/circos-remove-findbin.patch \
%D%/packages/patches/cdparanoia-fpic.patch \ %D%/packages/patches/cdparanoia-fpic.patch \
%D%/packages/patches/cdrkit-libre-cross-compile.patch \ %D%/packages/patches/cdrkit-libre-cross-compile.patch \
@ -1519,7 +1519,6 @@ dist_patch_DATA = \
%D%/packages/patches/mpg321-gcc-10.patch \ %D%/packages/patches/mpg321-gcc-10.patch \
%D%/packages/patches/module-init-tools-moduledir.patch \ %D%/packages/patches/module-init-tools-moduledir.patch \
%D%/packages/patches/monero-use-system-miniupnpc.patch \ %D%/packages/patches/monero-use-system-miniupnpc.patch \
%D%/packages/patches/mono-mdoc-timestamping.patch \
%D%/packages/patches/mosaicatcher-unbundle-htslib.patch \ %D%/packages/patches/mosaicatcher-unbundle-htslib.patch \
%D%/packages/patches/mrrescue-support-love-11.patch \ %D%/packages/patches/mrrescue-support-love-11.patch \
%D%/packages/patches/mrustc-riscv64-support.patch \ %D%/packages/patches/mrustc-riscv64-support.patch \
@ -1764,7 +1763,10 @@ dist_patch_DATA = \
%D%/packages/patches/ripperx-missing-file.patch \ %D%/packages/patches/ripperx-missing-file.patch \
%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-minimal-sh-via-rktio.patch \ %D%/packages/patches/racket-backport-8.6-zuo.patch \
%D%/packages/patches/racket-chez-scheme-bin-sh.patch \
%D%/packages/patches/racket-rktio-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 \
%D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \ %D%/packages/patches/restic-0.9.6-fix-tests-for-go1.15.patch \
%D%/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch \ %D%/packages/patches/retroarch-LIBRETRO_DIRECTORY.patch \
@ -1819,6 +1821,7 @@ dist_patch_DATA = \
%D%/packages/patches/slim-reset.patch \ %D%/packages/patches/slim-reset.patch \
%D%/packages/patches/slim-login.patch \ %D%/packages/patches/slim-login.patch \
%D%/packages/patches/slim-display.patch \ %D%/packages/patches/slim-display.patch \
%D%/packages/patches/stex-copy-from-immutable-store.patch \
%D%/packages/patches/syslinux-gcc10.patch \ %D%/packages/patches/syslinux-gcc10.patch \
%D%/packages/patches/syslinux-strip-gnu-property.patch \ %D%/packages/patches/syslinux-strip-gnu-property.patch \
%D%/packages/patches/snappy-add-O2-flag-in-CmakeLists.txt.patch \ %D%/packages/patches/snappy-add-O2-flag-in-CmakeLists.txt.patch \
@ -1877,6 +1880,8 @@ dist_patch_DATA = \
%D%/packages/patches/trytond-add-guix_trytond_path.patch \ %D%/packages/patches/trytond-add-guix_trytond_path.patch \
%D%/packages/patches/ttf2eot-cstddef.patch \ %D%/packages/patches/ttf2eot-cstddef.patch \
%D%/packages/patches/tup-unbundle-dependencies.patch \ %D%/packages/patches/tup-unbundle-dependencies.patch \
%D%/packages/patches/turbovnc-custom-paths.patch \
%D%/packages/patches/turbovnc-find-system-packages.patch \
%D%/packages/patches/tuxpaint-stamps-path.patch \ %D%/packages/patches/tuxpaint-stamps-path.patch \
%D%/packages/patches/twinkle-bcg729.patch \ %D%/packages/patches/twinkle-bcg729.patch \
%D%/packages/patches/u-boot-allow-disabling-openssl.patch \ %D%/packages/patches/u-boot-allow-disabling-openssl.patch \

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org> ;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2022 Matthew James Kraai <kraai@ftbfs.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -407,7 +408,7 @@ environment type of 'digital-ocean-environment-type'."
(raise (condition (raise (condition
(&message (&message
(message (G_ "No Digital Ocean access token was provided. This \ (message (G_ "No Digital Ocean access token was provided. This \
may be fixed by setting the environment variable GUIX_DIGITAL_OCAEN_TOKEN to \ may be fixed by setting the environment variable GUIX_DIGITAL_OCEAN_TOKEN to \
one procured from https://cloud.digitalocean.com/account/api/tokens."))))))) one procured from https://cloud.digitalocean.com/account/api/tokens.")))))))
(define (maybe-raise-unsupported-configuration-error machine) (define (maybe-raise-unsupported-configuration-error machine)

View file

@ -1382,14 +1382,16 @@ connection alive.")
;; build system uses the built 'gen' executable. ;; build system uses the built 'gen' executable.
(setenv "BUILD_CC" "gcc")))) (setenv "BUILD_CC" "gcc"))))
'()) '())
(add-before 'build 'update-config-scripts (add-before 'configure 'update-config-scripts
(lambda* (#:key native-inputs inputs #:allow-other-keys) (lambda* (#:key native-inputs inputs #:allow-other-keys)
(for-each (lambda (file) (for-each (lambda (file)
(install-file (install-file
(search-input-file (search-input-file
(or native-inputs inputs) (or native-inputs inputs)
(string-append "/bin/" file)) ".")) (string-append "/bin/" file)) "."))
'("config.guess" "config.sub")) '("config.guess" "config.sub"))))
(add-before 'build 'update-config-scripts-for-bind
(lambda* (#:key native-inputs inputs #:allow-other-keys)
(for-each (lambda (file) (for-each (lambda (file)
(install-file (install-file
(search-input-file (search-input-file

View file

@ -325,7 +325,7 @@ precision.")
(define-public giac (define-public giac
(package (package
(name "giac") (name "giac")
(version "1.9.0-19") (version "1.9.0-21")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -337,7 +337,7 @@ precision.")
"~parisse/debian/dists/stable/main/source/" "~parisse/debian/dists/stable/main/source/"
"giac_" version ".tar.gz")) "giac_" version ".tar.gz"))
(sha256 (sha256
(base32 "1zl3wpw4mwsc2zm2mnxnajxql0df68mlfyivbkk4i300wjfqkdvb")))) (base32 "1zh7bf0ag4vbyyj5n8lbvy2ivp0kshms40ra5lq1ff035rpx230j"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (list

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

@ -275,15 +275,62 @@ file metadata operations that can be performed per second.")
(define-public phoronix-test-suite (define-public phoronix-test-suite
(package (package
(name "phoronix-test-suite") (name "phoronix-test-suite")
(version "10.8.3") (version "10.8.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://phoronix-test-suite.com/releases/" (uri (string-append "https://phoronix-test-suite.com/releases/"
name "-" version ".tar.gz")) name "-" version ".tar.gz"))
(modules '((guix build utils)
(ice-9 ftw)
(ice-9 regex)
(srfi srfi-26)))
(snippet
'(begin
;; Many test profiles have their license identified as "Free",
;; while they are in fact non-free (see:
;; https://github.com/phoronix-test-suite/phoronix-test-suite/issues/667).
(define problems ;see:
'("bioshock-infinite-1" ;mis-licensed as free
"firefox" ;not FSDG-compliant
"dirt-rally" ;mis-licensed as free
"dirt-showdown" ;mis-licensed as free
"dota2" ;mis-licensed as free
"dow3" ;mis-licensed as free
"etqw-demo" ;mis-licensed as free
"f12015" ;mis-licensed as free
"f12017" ;mis-licensed as free
"geexlab" ;mis-licensed as free
"gfxbench" ;mis-licensed as free
"gnupg" ;downloads ubuntu image
"hitman-1" ;mis-licensed as free
"hl2lostcoast" ;mis-licensed as free
"linux" ;contains blobs
"madmax" ;mis-licensed as free
"metro" ;mis-licensed as free
"minion" ;mis-licensed as free
"sam2017" ;mis-licensed as free
"talos-principle" ;mis-licensed as free
"tomb-raider" ;mis-licensed as free
"tf2" ;mis-licensed as free
"ue4" ;mis-licensed as free
"unigine" ;mis-licensed as free
"ut2004")) ;mis-licensed as free
(define rx (format #f "(~a)" (string-join problems "|")))
(define (mark-as-non-free directory)
(format #t "Marking ~s as non-free...~%" directory)
(substitute* (find-files directory "^(test|suite)-definition.xml$")
(("Free")
"Non-free")))
(with-directory-excursion "ob-cache/test-profiles/pts"
(for-each (cut mark-as-non-free <>)
(scandir "." (cut string-match rx <>))))))
(sha256 (sha256
(base32 (base32
"105shk78jy46nwj6vnlmgp3y3lv9klar3dmcgasy4bslm4l2wx2b")) "1x5pyzzn7ipi0ia1xlvq3bpw0rgf7h7sbr2kzhz1k8y06var480z"))
(patches (search-patches "phoronix-test-suite-fsdg.patch")))) (patches (search-patches "phoronix-test-suite-fsdg.patch"))))
(arguments (arguments
(list (list

View file

@ -4113,17 +4113,17 @@ global-scaling and full-quantile normalization.")
(define-public r-edger (define-public r-edger
(package (package
(name "r-edger") (name "r-edger")
(version "3.38.1") (version "3.38.4")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "edgeR" version)) (uri (bioconductor-uri "edgeR" version))
(sha256 (sha256
(base32 (base32
"1q933m76155gy30wgps2gdd8pxzsfhppydjqn0fhjrwj6kqz8mik")))) "1ww69xrg9qrmq7dix2k48j6akgn58ss3340hm7pjvzx508x1j6n6"))))
(properties `((upstream-name . "edgeR"))) (properties `((upstream-name . "edgeR")))
(build-system r-build-system) (build-system r-build-system)
(propagated-inputs (propagated-inputs
(list r-limma r-locfit r-rcpp r-statmod)) ;for estimateDisp (list r-limma r-locfit r-rcpp))
(home-page "http://bioinf.wehi.edu.au/edgeR") (home-page "http://bioinf.wehi.edu.au/edgeR")
(synopsis "EdgeR does empirical analysis of digital gene expression data") (synopsis "EdgeR does empirical analysis of digital gene expression data")
(description "This package can do differential expression analysis of (description "This package can do differential expression analysis of
@ -4355,13 +4355,13 @@ names in their natural, rather than lexicographic, order.")
(define-public r-genomicalignments (define-public r-genomicalignments
(package (package
(name "r-genomicalignments") (name "r-genomicalignments")
(version "1.32.0") (version "1.32.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (bioconductor-uri "GenomicAlignments" version)) (uri (bioconductor-uri "GenomicAlignments" version))
(sha256 (sha256
(base32 (base32
"1ifmlc0488f5yzcf4p92dmdc7psxl5c0aa7qpxjk0a07gf7lldbi")))) "09pg7822camyav5zvlpv360sj5gz8q1bhk528qa2da2qsz74a3cz"))))
(properties (properties
`((upstream-name . "GenomicAlignments"))) `((upstream-name . "GenomicAlignments")))
(build-system r-build-system) (build-system r-build-system)

View file

@ -15518,6 +15518,8 @@ sequence motif analysis.")
(base32 (base32
"1023hadgcsgi53kz53ql45207hfizf9sw57z0qij3ay1bx68zbpm")))) "1023hadgcsgi53kz53ql45207hfizf9sw57z0qij3ay1bx68zbpm"))))
(build-system python-build-system) (build-system python-build-system)
(arguments
'(#:tests? #false)) ;no tests
(native-inputs (native-inputs
(list python-cython python-nose2)) (list python-cython python-nose2))
;; The package mainly consists of a command-line tool, but also has a ;; The package mainly consists of a command-line tool, but also has a

View file

@ -3168,14 +3168,14 @@ directories and files.")
(define-public python-pytest-regressions (define-public python-pytest-regressions
(package (package
(name "python-pytest-regressions") (name "python-pytest-regressions")
(version "2.2.0") (version "2.3.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pytest-regressions" version)) (uri (pypi-uri "pytest-regressions" version))
(sha256 (sha256
(base32 (base32
"05jpsvv8rj8i4x24fphpnar5dl4s6d6bw6ikjk5d8v96rdviz9qm")))) "0792s1rp4hksfarnnciy0yiy2q2yqqsbin3mc9h2gxp86kdlrv5k"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
(list python-pytest-datadir python-pyyaml)) (list python-pytest-datadir python-pyyaml))

View file

@ -37,6 +37,7 @@
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages ghostscript) #:use-module (gnu packages ghostscript)
#:use-module (gnu packages libffi)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages netpbm) #:use-module (gnu packages netpbm)
#:use-module (gnu packages racket) #:use-module (gnu packages racket)
@ -49,6 +50,7 @@
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:export (chez-scheme-for-system #:export (chez-scheme-for-system
racket-cs-native-supported-system? racket-cs-native-supported-system?
nix-system->pbarch-machine-type
unpack-nanopass+stex)) unpack-nanopass+stex))
;; Commentary: ;; Commentary:
@ -115,7 +117,7 @@ in Chez Scheme machine types, or '#f' if none is defined."
((target-linux? system) ((target-linux? system)
"le") "le")
((target-hurd? system) ((target-hurd? system)
#f) "gnu")
((target-mingw? system) ((target-mingw? system)
"nt") "nt")
;; missing (guix utils) predicates ;; missing (guix utils) predicates
@ -131,6 +133,8 @@ in Chez Scheme machine types, or '#f' if none is defined."
;; Nix says "x86_64-solaris", but accommodate "-solaris2" ;; Nix says "x86_64-solaris", but accommodate "-solaris2"
((string-contains system "solaris") ((string-contains system "solaris")
"s2") "s2")
((string-suffix? "-qnx" system)
"qnx")
;; unknown ;; unknown
(else (else
#f))) #f)))
@ -167,6 +171,9 @@ in Chez Scheme machine types, or '#f' if none is defined."
("arm32" bootstrap-bootfiles) ("arm32" bootstrap-bootfiles)
("arm64" . #f) ("arm64" . #f)
("ppc32" threads)) ("ppc32" threads))
;; Hurd
("gnu"
("i3" . #f))
;; FreeBSD ;; FreeBSD
("fb" ("fb"
("i3" threads) ;; commented out ("i3" threads) ;; commented out
@ -192,6 +199,9 @@ in Chez Scheme machine types, or '#f' if none is defined."
("s2" ("s2"
("i3" threads) ;; commented out ("i3" threads) ;; commented out
("a6" threads)) ;; commented out ("a6" threads)) ;; commented out
;; QNX
("qnx"
("i3" . #f))
;; Windows ;; Windows
("nt" ("nt"
("i3" threads bootstrap-bootfiles) ("i3" threads bootstrap-bootfiles)
@ -223,18 +233,41 @@ future."
(and=> (assoc-ref %chez-features-table chez-os) (and=> (assoc-ref %chez-features-table chez-os)
(cut assoc-ref <> chez-arch)))) (cut assoc-ref <> chez-arch))))
(define* (nix-system->pbarch-machine-type #:optional
(system
(or (%current-target-system)
(%current-system)))
#:key (threads? #t))
"Return a string naming the pseudomachine type used by Racket's variant of
Chez Scheme to represent the appropriate ``pbarch'' backend for SYSTEM: that
is, the ``portable bytecode'' backend specialized for SYSTEM's word size and
endianness. The result will name the threaded machine type unless THREADS? is
provided and is #f."
(string-append (if threads?
"t"
"")
"pb"
(if (target-64bit? system)
"64"
"32")
;; missing (guix utils) predicate target-little-endian?
(if (target-ppc32? system)
"b"
"l")))
(define* (racket-cs-native-supported-system? #:optional (define* (racket-cs-native-supported-system? #:optional
(system (system
(or (%current-target-system) (or (%current-target-system)
(%current-system)))) (%current-system))))
"Can Racket's variant of Chez Scheme generate native code for SYSTEM? "Can Racket's variant of Chez Scheme generate native code for SYSTEM? If
Otherwise, SYSTEM can use only the ``portable bytecode'' backends." so, return the applicable machine type as a string. Otherwise, when SYSTEM
can use only the ``portable bytecode'' backends, return #f."
(let ((chez-arch (target-chez-arch system)) (let ((chez-arch (target-chez-arch system))
(chez-os (target-chez-os system))) (chez-os (target-chez-os system)))
(and (and=> (assoc-ref %chez-features-table chez-os) (and (and=> (assoc-ref %chez-features-table chez-os)
;; NOT assoc-ref: supported even if cdr is #f ;; NOT assoc-ref: supported even if cdr is #f
(cut assoc chez-arch <>)) (cut assoc chez-arch <>))
#t))) (string-append "t" chez-arch chez-os))))
;; ;;
;; Chez Scheme: ;; Chez Scheme:
@ -269,6 +302,7 @@ Otherwise, SYSTEM can use only the ``portable bytecode'' backends."
(base32 (base32
"0xchqq8cm0ka5wgpn18sjs0hh15rc3nb7xrjqbbc9al3asq0d7gc")) "0xchqq8cm0ka5wgpn18sjs0hh15rc3nb7xrjqbbc9al3asq0d7gc"))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(patches (search-patches "chez-scheme-bin-sh.patch"))
(snippet #~(begin (snippet #~(begin
(use-modules (guix build utils)) (use-modules (guix build utils))
;; TODO: consider putting this in a (guix ...) or ;; TODO: consider putting this in a (guix ...) or
@ -284,6 +318,7 @@ Otherwise, SYSTEM can use only the ``portable bytecode'' backends."
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
(list (list
chez-scheme-bootstrap-bootfiles
`(,util-linux "lib") ;<-- libuuid `(,util-linux "lib") ;<-- libuuid
zlib zlib
lz4 lz4
@ -291,8 +326,7 @@ Otherwise, SYSTEM can use only the ``portable bytecode'' backends."
;; for X11 clipboard support in expeditor: ;; for X11 clipboard support in expeditor:
;; https://github.com/cisco/ChezScheme/issues/9#issuecomment-222057232 ;; https://github.com/cisco/ChezScheme/issues/9#issuecomment-222057232
libx11)) libx11))
(native-inputs (list chez-scheme-bootstrap-bootfiles (native-inputs (list chez-nanopass-bootstrap
chez-nanopass-bootstrap
stex-bootstrap)) stex-bootstrap))
(native-search-paths (native-search-paths
(list (search-path-specification (list (search-path-specification
@ -329,7 +363,7 @@ Otherwise, SYSTEM can use only the ``portable bytecode'' backends."
(when (directory-exists? "boot") (when (directory-exists? "boot")
(delete-file-recursively "boot")) (delete-file-recursively "boot"))
(copy-recursively (copy-recursively
(search-input-directory (or native-inputs inputs) (search-input-directory inputs
"lib/chez-scheme-bootfiles") "lib/chez-scheme-bootfiles")
"boot"))) "boot")))
;; NOTE: The custom Chez 'configure' script doesn't allow ;; NOTE: The custom Chez 'configure' script doesn't allow
@ -432,40 +466,118 @@ 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.5.7.6") (version "9.5.9.2")
;; The version should match `(scheme-fork-version-number)`. ;; The version should match `(scheme-fork-version-number)`.
;; 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!
;; When updating, remember to also update %racket-version in racket.scm. ;; When updating, remember to also update %racket-version in racket.scm.
(source #f) ; avoid problematic cycle with racket.scm (source #f) ; avoid problematic cycle with racket.scm
(inputs (inputs
(modify-inputs (package-inputs chez-scheme) (let ((inputs (modify-inputs (package-inputs chez-scheme)
(delete "libx11" "util-linux:lib"))) (replace "chez-scheme-bootstrap-bootfiles"
chez-scheme-for-racket-bootstrap-bootfiles)
(delete "libx11" "util-linux:lib"))))
(if (racket-cs-native-supported-system?)
inputs
(modify-inputs inputs
(prepend libffi)))))
(native-inputs (native-inputs
(modify-inputs (package-native-inputs chez-scheme) (let ((native-inputs (modify-inputs (package-native-inputs chez-scheme)
(replace "chez-scheme-bootstrap-bootfiles" (prepend zuo))))
chez-scheme-for-racket-bootstrap-bootfiles))) (if (%current-target-system)
(modify-inputs native-inputs
(prepend this-package))
native-inputs)))
(arguments (arguments
(substitute-keyword-arguments (package-arguments chez-scheme) (substitute-keyword-arguments (package-arguments chez-scheme)
((#:out-of-source? _ #f)
#t)
((#:tests? _ #t)
;; FIXME: There have been some flaky test failures. Some have been
;; fixed upstream post-release but have proven non-trivial to
;; backport; at least one issue remains. Re-enable tests once
;; https://github.com/racket/racket/issues/4359 is fixed.
#f)
((#:configure-flags cfg-flags #~'()) ((#:configure-flags cfg-flags #~'())
#~(cons* "--disable-x11" #~`("--disable-x11"
"--threads" ;; ok to potentially duplicate "--threads" ;; ok to potentially duplicate
#$cfg-flags)) #$(string-append "-m=" (or (racket-cs-native-supported-system?)
(nix-system->pbarch-machine-type)))
;; ^ could skip -m= for non-cross non-pbarch builds
#$@(if (racket-cs-native-supported-system?)
#~()
;; not inferred on non-native platforms: see
;; https://racket.discourse.group/t/950/9
#~("--enable-libffi"
"CFLAGS=-g -O2 -D_REENTRANT -pthread"
"LIBS=-lm -ldl -lrt -lffi -lncurses"))
#$@(if (%current-target-system)
(list (string-append "--toolprefix="
(%current-target-system)
"-"))
'())
,@(let* ((chez+version (strip-store-file-name #$output))
(doc-prefix (assoc-ref %outputs "doc"))
(doc-dir (string-append doc-prefix
"/share/doc/"
chez+version)))
(list (string-append "--installcsug="
doc-dir
"/csug")
(string-append "--installreleasenotes="
doc-dir
"/release_notes")))
,@#$cfg-flags))
((#:make-flags mk-flags #~'())
#~(cons* (string-append "ZUO="
#+(this-package-native-input "zuo")
"/bin/zuo")
(string-append "STEXLIB="
#+(this-package-native-input "stex")
"/lib/stex")
#$mk-flags))
((#:phases those-phases #~%standard-phases) ((#:phases those-phases #~%standard-phases)
#~(let* ((those-phases #$those-phases) #~(let* ((those-phases #$those-phases)
(unpack (assoc-ref those-phases 'unpack))) (gnu:unpack (assoc-ref those-phases 'unpack))
(gnu:build (assoc-ref those-phases 'build)))
(modify-phases those-phases (modify-phases those-phases
(replace 'build
;; need to override target for cross-compilation
;; https://racket.discourse.group/t/950/19
(lambda* (#:key target (make-flags '()) (parallel-build? #t)
#:allow-other-keys)
(gnu:build #:make-flags (if target
(cons "kernel" make-flags)
make-flags)
#:parallel-build? parallel-build?)))
(replace 'install-docs
(lambda* (#:key native-inputs (make-flags '())
#:allow-other-keys)
;; The tests for 'native-inputs' are cross-compilation
;; workarounds that would be better to address upstream:
;; see <https://racket.discourse.group/t/950/20>.
(when native-inputs
(substitute* "Makefile"
(("install-docs: build \\$[(]ZUO[)]")
"install-docs: $(ZUO)")))
(apply invoke
"make"
"install-docs"
(if native-inputs
(cons (string-append
"Scheme="
(search-input-file native-inputs
"/bin/scheme"))
make-flags)
make-flags))))
(replace 'unpack (replace 'unpack
(lambda args (lambda args
(unpack #:source #$(or (package-source this-package) (gnu:unpack #:source #$(or (package-source this-package)
(package-source racket-vm-bc))))) (package-source racket-vm-bc)))))
(add-after 'unpack 'chdir (add-after 'unpack 'chdir
(lambda args (lambda args
(chdir "racket/src/ChezScheme")))))))) (chdir "racket/src/ChezScheme"))))))))
;; TODO: How to build pbarch/pbchunks for other systems? (supported-systems %supported-systems)
;; See https://racket.discourse.group/t/950
(supported-systems (filter racket-cs-native-supported-system?
%supported-systems))
(home-page "https://github.com/racket/ChezScheme") (home-page "https://github.com/racket/ChezScheme")
;; ^ This is downstream of https://github.com/racket/racket, ;; ^ This is downstream of https://github.com/racket/racket,
;; but it's designed to be a friendly landing place for people ;; but it's designed to be a friendly landing place for people
@ -478,13 +590,17 @@ supported by upstream Chez Scheme.
Main additions to Chez Scheme in the Racket variant: Main additions to Chez Scheme in the Racket variant:
@itemize @bullet @itemize @bullet
@item @item
AArch64 support AArch64 code generation
@item @item
Portable bytes (@code{pb}) support, which is mainly useful for bootstrapping Portable bytecode (@code{pb}) mode, which is mainly useful for bootstrapping a
a build on any supported platform build on any platform, but can also be used on platforms without native-code
generation, compiled via Emscripten, linked with @code{libffi}, or used with
bytecode partially compiled to C
@item @item
Unboxed floating-point arithmetic and flvectors Unboxed floating-point arithmetic and flvectors
@item @item
Faster multiplication and division for large exact numbers
@item
Type reconstruction during optimization (especially for safe code) Type reconstruction during optimization (especially for safe code)
@item @item
Continuation attachments Continuation attachments
@ -495,8 +611,6 @@ accounting
@item @item
Ordered finalization, immobile (but collectable) objects, weak/ephemeron Ordered finalization, immobile (but collectable) objects, weak/ephemeron
generic hash tables, and reference bytevectors generic hash tables, and reference bytevectors
@item
Faster multiplication and division for large exact numbers
@end itemize") @end itemize")
(license asl2.0))) (license asl2.0)))
@ -540,8 +654,12 @@ source.")))
(name "chez-scheme-for-racket-bootstrap-bootfiles") (name "chez-scheme-for-racket-bootstrap-bootfiles")
(version (package-version chez-scheme-for-racket)) (version (package-version chez-scheme-for-racket))
(source #f) ; avoid problematic cycle with racket.scm (source #f) ; avoid problematic cycle with racket.scm
(native-inputs (list chez-nanopass-bootstrap racket-vm-bc)) (native-inputs
;; TODO: cross compilation (cons* chez-nanopass-bootstrap
(if (%current-target-system)
(list zuo
chez-scheme-for-racket)
(list racket-vm-bc))))
(arguments (arguments
(substitute-keyword-arguments (substitute-keyword-arguments
(package-arguments chez-scheme-bootstrap-bootfiles) (package-arguments chez-scheme-bootstrap-bootfiles)
@ -561,9 +679,27 @@ source.")))
#$unpack-nanopass+stex)) #$unpack-nanopass+stex))
(add-before 'install 'build (add-before 'install 'build
(lambda* (#:key native-inputs inputs #:allow-other-keys) (lambda* (#:key native-inputs inputs #:allow-other-keys)
(invoke (search-input-file (or native-inputs inputs) #$(cond
"/opt/racket-vm/bin/racket") ((%current-target-system)
"rktboot/main.rkt")))))))) ;; cross-compiling
#~(invoke
(search-input-file (or native-inputs inputs)
"/bin/zuo")
"makefiles/boot.zuo"
(search-input-file (or native-inputs inputs)
"/bin/scheme")
#$(or (racket-cs-native-supported-system?)
(nix-system->pbarch-machine-type))))
(else
;; bootstrapping
#~(invoke
(search-input-file (or native-inputs inputs)
"/opt/racket-vm/bin/racket")
"rktboot/main.rkt"
#$@(if (racket-cs-native-supported-system?)
#~()
(let ((m (nix-system->pbarch-machine-type)))
#~("--machine" #$m)))))))))))))
(supported-systems (supported-systems
(package-supported-systems chez-scheme-for-racket)) (package-supported-systems chez-scheme-for-racket))
(home-page "https://github.com/racket/ChezScheme") (home-page "https://github.com/racket/ChezScheme")
@ -594,8 +730,8 @@ Chez Scheme.")))
(define-public stex-bootstrap (define-public stex-bootstrap
;; This commit includes a fix which we would otherwise want to use as ;; This commit includes a fix which we would otherwise want to use as
;; patch. Let's revert to tagged releases as soon as one becomes available. ;; patch. Let's revert to tagged releases as soon as one becomes available.
(let ((commit "54051494434a197772bf6ca5b4e6cf6be55f39a5") (let ((commit "afa607564a5662ffd748e824801277a6b5a3d11c")
(revision "1")) (revision "2"))
(hidden-package (hidden-package
(package (package
(name "stex") (name "stex")
@ -611,8 +747,11 @@ Chez Scheme.")))
(url "https://github.com/dybvig/stex") (url "https://github.com/dybvig/stex")
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 "01jnvw8qw33gnpzwrakwhsr05h6b609lm180jnspcrb7lds2p23d")) (base32 "0n6dryv5j7cw2qmsj55wqb0ph901h83a2hl4j891ppxp0xx18nkp"))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(patches
;; submitted upstream in https://github.com/dybvig/stex/pull/6
(search-patches "stex-copy-from-immutable-store.patch"))
(snippet (snippet
#~(for-each delete-file #~(for-each delete-file
'("sbin/install" "doc/stex.pdf" "doc/stex.html"))))) '("sbin/install" "doc/stex.pdf" "doc/stex.html")))))

View file

@ -317,7 +317,7 @@
;; run the Blink performance tests, just remove everything to save ~70MiB. ;; run the Blink performance tests, just remove everything to save ~70MiB.
'("third_party/blink/perf_tests")) '("third_party/blink/perf_tests"))
(define %chromium-version "105.0.5195.52") (define %chromium-version "105.0.5195.102")
(define %ungoogled-revision (string-append %chromium-version "-1")) (define %ungoogled-revision (string-append %chromium-version "-1"))
(define %debian-revision "debian/102.0.5005.61-1") (define %debian-revision "debian/102.0.5005.61-1")
@ -329,7 +329,7 @@
(file-name (git-file-name "ungoogled-chromium" %ungoogled-revision)) (file-name (git-file-name "ungoogled-chromium" %ungoogled-revision))
(sha256 (sha256
(base32 (base32
"1smzgnd3zmh57pz7sk9nb7m31wbhx1x9y3ll3m4zaxwrrb41kghn")))) "17n06lqzbz19a3fdqbv5wj7s6v3rc0bfshdz8syw0k2gkw3x6ivc"))))
(define %debian-origin (define %debian-origin
(origin (origin
@ -506,7 +506,7 @@
%chromium-version ".tar.xz")) %chromium-version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0hkwjilzy0x28knm6nrkywnsmldhz4kgpnxka2iaghihkjzb4wfw")) "0qlj6s182d4nv0g76r0pcr1rvvh74pngcv79ml3cbqsir4khbfhw"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (force ungoogled-chromium-snippet)))) (snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system) (build-system gnu-build-system)

File diff suppressed because it is too large Load diff

View file

@ -156,14 +156,14 @@ work, such as sentence length and other readability measures.")
(define-public ding (define-public ding
(package (package
(name "ding") (name "ding")
(version "1.8.1") (version "1.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://ftp.tu-chemnitz.de/pub/Local/urz/" name (uri (string-append "https://ftp.tu-chemnitz.de/pub/Local/urz/" name
"/" name "-" version ".tar.gz")) "/" name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0chjqs3z9zs1w3l7b5lsaj682rgnkf9kibcbzhggqqcn1pbvl5sq")))) "1rcqn04l6hvsf15mqqai533p31nc04r2yd9s0mn2hnkqrwgwi9k9"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (list tk)) (inputs (list tk))
(arguments (arguments

View file

@ -48,7 +48,6 @@
#:use-module (gnu packages llvm) #:use-module (gnu packages llvm)
#:use-module (gnu packages man) #:use-module (gnu packages man)
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
#:use-module (gnu packages mono)
#:use-module (gnu packages ocaml) #:use-module (gnu packages ocaml)
#:use-module (gnu packages package-management) #:use-module (gnu packages package-management)
#:use-module (gnu packages pascal) #:use-module (gnu packages pascal)
@ -196,7 +195,6 @@
libarchive libarchive
llvm-9 llvm-9
lz4 lz4
mono
ocaml ocaml
odt2txt odt2txt
openssh openssh

View file

@ -573,18 +573,18 @@ and can dramatically shorten the lifespan of the drive if left unchecked.")
(define-public gparted (define-public gparted
(package (package
(name "gparted") (name "gparted")
(version "1.3.1") (version "1.4.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/gparted/gparted/gparted-" (uri (string-append "mirror://sourceforge/gparted/gparted/gparted-"
version "/gparted-" version ".tar.gz")) version "/gparted-" version ".tar.gz"))
(sha256 (sha256
(base32 "02g1s6hrhnias7kj241l0f72kllfhq6338mk2dmzjpmifinjxvjy")))) (base32 "1gl7g1lg72s63a9xlc4kcc6ksq6r7h8k9a6456xbxzak5rwklag5"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(arguments (arguments
;; Tests require access to paths outside the build container, such ;; Tests require access to files outside the build container, such
;; as '/dev/disk/by-id' ;; as /dev/disk/by-id/.
`(#:tests? #f)) `(#:tests? #f))
(inputs (inputs
(list `(,util-linux "lib") parted glib gtkmm-3 libxml2)) (list `(,util-linux "lib") parted glib gtkmm-3 libxml2))

View file

@ -36,7 +36,7 @@
(define-public elixir (define-public elixir
(package (package
(name "elixir") (name "elixir")
(version "1.13.4") (version "1.14.0")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -45,7 +45,7 @@
(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 "1z19hwnv7czmg3p56hdk935gqxig3x7z78yxckh8fs1kdkmslqn4")) (base32 "16rc4qaykddda6ax5f8zw70yhapgwraqbgx5gp3f40dvfax3d51l"))
(patches (search-patches "elixir-path-length.patch")))) (patches (search-patches "elixir-path-length.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments

View file

@ -61,7 +61,7 @@
;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com> ;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net> ;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com> ;;; Copyright © 2020 Evan Straw <evan.straw99@gmail.com>
;;; Copyright © 2020, 2021 Masaya Tojo <masaya@tojo.tokyo> ;;; Copyright © 2020, 2021, 2022 Masaya Tojo <masaya@tojo.tokyo>
;;; Copyright © 2020, 2021 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2020, 2021 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
@ -166,6 +166,7 @@
#:use-module (gnu packages fonts) #:use-module (gnu packages fonts)
#:use-module (gnu packages freedesktop) #:use-module (gnu packages freedesktop)
#:use-module (gnu packages games) #:use-module (gnu packages games)
#:use-module (gnu packages gawk)
#:use-module (gnu packages golang) #:use-module (gnu packages golang)
#:use-module (gnu packages guile) #:use-module (gnu packages guile)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
@ -250,7 +251,7 @@
(define-public emacs-geiser (define-public emacs-geiser
(package (package
(name "emacs-geiser") (name "emacs-geiser")
(version "0.26") (version "0.26.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -259,7 +260,7 @@
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1pm33zlcq84h61xhplmrlicckrax1pv39zrmv8ryzhi9mqrb6bdg")))) (base32 "1k5ligm1aba9b6dqg0yi86a2y2fhnxi7jsjgxj9jw7icgfa11djn"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
'(#:phases '(#:phases
@ -297,16 +298,16 @@ e.g. emacs-geiser-guile for Guile.")
(define-public emacs-geiser-guile (define-public emacs-geiser-guile
(package (package
(name "emacs-geiser-guile") (name "emacs-geiser-guile")
(version "0.23.2") (version "0.26.1")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://gitlab.com/emacs-geiser/guile.git") (url "https://gitlab.com/emacs-geiser/guile")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "18m5ldj4r4c2hxgvv5b4azl90r8az1kn5f3s913h971asyv4wx06")))) (base32 "06939mv9i7zzqvq71d0ixk3y9135132f3pk9jgjdwvacl1d31h8k"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
(list (list
@ -3015,7 +3016,7 @@ or XEmacs.")
(define-public emacs-autothemer (define-public emacs-autothemer
(package (package
(name "emacs-autothemer") (name "emacs-autothemer")
(version "0.2.10") (version "0.2.14")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -3025,7 +3026,7 @@ or XEmacs.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1dz09n8qiqvzxckmy6mjnpw4f62jpk35cw16w0lhfpvfa8by4mp8")))) "0jxlfwcfqdjr3da2xzjnigmckarhjbn6b1i1x4pdzb5djjcz00qc"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(propagated-inputs (propagated-inputs
(list emacs-dash)) (list emacs-dash))
@ -3034,7 +3035,7 @@ or XEmacs.")
(description (description
"Autothemer provides a thin layer on top of @code{deftheme} and "Autothemer provides a thin layer on top of @code{deftheme} and
@code{custom-theme-set-faces} that creates a new custom color theme, based on @code{custom-theme-set-faces} that creates a new custom color theme, based on
a set of simplified face specifications and a user-supplied color palette") a set of simplified face specifications and a user-supplied color palette.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-howm (define-public emacs-howm
@ -3386,6 +3387,57 @@ environment set through Direnv.")
that the binary uses instead of the actual binary contents.") that the binary uses instead of the actual binary contents.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-org-fc
(let ((commit "f64b5336485a42be91cfe77850c02a41575f5984")
(revision "0"))
(package
(name "emacs-org-fc")
(version (git-version "0.1.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~l3kn/org-fc")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1d0a3vr09zkplclypcgpfbfd6r0h0i3g3zsqb4pcz6x239d59gd5"))))
(build-system emacs-build-system)
(arguments
(list
#:include #~(cons* "\\.awk$" "\\.org$" %default-include)
#:exclude #~(cons "^tests/" %default-exclude)
#:tests? #t
#:test-command #~(list "emacs" "--batch"
"-L" "."
"-L" "tests/"
"-l" "tests/org-fc-filter-test.el"
"-l" "tests/org-fc-indexer-test.el"
"-l" "tests/org-fc-review-data-test.el"
"-f" "ert-run-tests-batch-and-exit")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'qualify-paths
(lambda* (#:key inputs #:allow-other-keys)
(let ((find (search-input-file inputs "/bin/find"))
(gawk (search-input-file inputs "/bin/gawk"))
(xargs (search-input-file inputs "/bin/xargs")))
(substitute* "org-fc-awk.el"
(("\"find ") (string-append "\"" find " "))
(("\"gawk ") (string-append "\"" gawk " "))
(("\"xargs ") (string-append "\"" xargs " ")))))))))
(inputs (list findutils gawk))
(propagated-inputs (list emacs-hydra))
(home-page "https://www.leonrische.me/fc/index.html")
(synopsis "Spaced repetition system for Emacs Org mode")
(description
"Org-fc is a spaced-repetition system for Emacs' Org mode.
It allows you to mark headlines in a file as flashcards, turning pieces of
knowledge you want to learn into a question-answer test. These cards are
reviewed at regular interval. After each review, the next review interval is
calculated based on how well you remembered the contents of the card.")
(license license:gpl3+))))
(define-public emacs-font-lock-studio (define-public emacs-font-lock-studio
(let ((commit "12c35967b31233e06946c70627aa3152dacfe261") (let ((commit "12c35967b31233e06946c70627aa3152dacfe261")
(revision "1")) (revision "1"))
@ -13233,7 +13285,7 @@ passive voice.")
(define-public emacs-org (define-public emacs-org
(package (package
(name "emacs-org") (name "emacs-org")
(version "9.5.4") (version "9.5.5")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -13242,7 +13294,7 @@ passive voice.")
(commit (string-append "release_" version)))) (commit (string-append "release_" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "1an866kkn5r84933s04agm1c3197kza2pvk8lqp2xzpjd09ba394")))) (base32 "0bswysz5laiya9pm689v4rpxjlfqg21azyh1jal9jq80iwjwi2p8"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
`(#:tests? #t `(#:tests? #t
@ -15954,7 +16006,7 @@ running a customisable handler command (@code{ignore} by default).")
(define-public emacs-json-reformat (define-public emacs-json-reformat
(package (package
(name "emacs-json-reformat") (name "emacs-json-reformat")
(version "0.0.6") (version "0.0.7")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -15963,7 +16015,7 @@ running a customisable handler command (@code{ignore} by default).")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "0qp4n2k6s69jj4gwwimkpadjv245y54wk3bxb1x96f034gkp81vs")) (base32 "1gaifz1brh7yh1wk1c02gddwis4ab6bggv27gy7gcd2s861f8bkx"))
(patches (search-patches "emacs-json-reformat-fix-tests.patch")))) (patches (search-patches "emacs-json-reformat-fix-tests.patch"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
@ -15982,6 +16034,15 @@ running a customisable handler command (@code{ignore} by default).")
"ert-deftest json-reformat-test:json-reformat-region") "ert-deftest json-reformat-test:json-reformat-region")
(beginning-of-line) (beginning-of-line)
(kill-sexp)) (kill-sexp))
(basic-save-buffer)))))
(add-before 'check 'delete-json-reformat-region-occur-error-test
(lambda _
(emacs-batch-edit-file "test/json-reformat-test.el"
`(progn (goto-char (point-min))
(re-search-forward
"ert-deftest json-reformat-test:json-reformat-region-occur-error")
(beginning-of-line)
(kill-sexp)
(basic-save-buffer)))))))) (basic-save-buffer))))))))
(native-inputs (native-inputs
(list emacs-dash emacs-ert-runner emacs-shut-up)) (list emacs-dash emacs-ert-runner emacs-shut-up))
@ -16710,6 +16771,30 @@ query them from the comfort of your editor.")
(home-page "https://github.com/hrs/engine-mode") (home-page "https://github.com/hrs/engine-mode")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-engrave-faces
(package
(name "emacs-engrave-faces")
(version "0.3.1")
(source (origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/engrave-faces-"
version ".tar"))
(sha256
(base32
"1q4sjl2rvcfwcirm32nmi53258ln71yhh1dgszlxwknm38a14v3i"))))
(build-system emacs-build-system)
(home-page "https://github.com/tecosaur/engrave-faces")
(synopsis "Convert font-lock faces to other formats")
(description "There are some great packages for exporting buffers to
particular formats, but each one seems to reinvent the core mechanism of
processing the font-lock in a buffer such that it can be exported to
a particular format.
This package aims to produce a versatile generic core which can process
a fontified buffer and pass the data to any number of backends which can deal
with specific output formats.")
(license license:gpl3+)))
(define-public emacs-inheritenv (define-public emacs-inheritenv
(package (package
(name "emacs-inheritenv") (name "emacs-inheritenv")
@ -27966,6 +28051,30 @@ With org-reveal, you can create beautiful presentations with 3D effects from
simple but powerful Org contents.") simple but powerful Org contents.")
(license license:gpl3+)))) (license license:gpl3+))))
(define-public emacs-ox-rss
;; XXX: Upstream provides no version nor tags whatsoever.
(let ((commit "83dc898fa5493925b01716e5dd495d5e07c3d41a")
(revision "0"))
(package
(name "emacs-ox-rss")
(version (git-version "0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/nsavage/ox-rss")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0513kixv9bgkignmji95m3rskn6px6c0fack4zdl61qq09fg8w6h"))))
(build-system emacs-build-system)
(home-page "https://gitlab.com/nsavage/ox-rss")
(synopsis "RSS 2.0 back-end for Org export engine")
(description
"This library implements an RSS 2.0 back-end for Org exporter, based
on the HTML back-end.")
(license license:gpl3+))))
(define-public emacs-wc-mode (define-public emacs-wc-mode
(package (package
(name "emacs-wc-mode") (name "emacs-wc-mode")
@ -30385,7 +30494,7 @@ support for the Nicola keyboard layout to it.")))
(define-public emacs-tamil99 (define-public emacs-tamil99
(package (package
(name "emacs-tamil99") (name "emacs-tamil99")
(version "0.1.1") (version "0.1.2")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -30394,7 +30503,7 @@ support for the Nicola keyboard layout to it.")))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0f9s3b6fd42j21922qkxfr3j83a7qym73nynph86w87vkis40zqw")))) "12sr59b2ngay66snb2m4a5zy6n11ahnmc5wy42l3ks7fd4cc5rgs"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "https://git.systemreboot.net/tamil99/about/") (home-page "https://git.systemreboot.net/tamil99/about/")
(synopsis "Tamil99 input method for Emacs") (synopsis "Tamil99 input method for Emacs")
@ -30767,29 +30876,26 @@ rather excellent completion provided by both Bash and Zsh.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-shell-command+ (define-public emacs-shell-command+
;; XXX: Upstream did not tag last release. The commit below corresponds to (package
;; the exact version bump. (name "emacs-shell-command+")
(let ((commit "bf744c63bbd1e3bbb93407bd32d6da670b23e67e")) (version "2.4.1")
(package (source (origin
(name "emacs-shell-command+") (method git-fetch)
(version "2.3.2") (uri (git-reference
(source (origin (url "https://git.sr.ht/~pkal/shell-command-plus")
(method git-fetch) (commit version)))
(uri (git-reference (file-name (git-file-name name version))
(url "https://git.sr.ht/~pkal/shell-command-plus") (sha256
(commit commit))) (base32 "14akj7pavfhch6ljwl26mhv7qczgmqn7mld62cf6mh4ghmhy3z4y"))))
(file-name (git-file-name name version)) (build-system emacs-build-system)
(sha256 (home-page "http://elpa.gnu.org/packages/shell-command+.html")
(base32 "0prlvcryq5ngrzn5f45rkw09wbr99v7nnwps2bjrjc3wvr2rp6h0")))) (synopsis "Extended Emacs @code{shell-command}")
(build-system emacs-build-system) (description
(home-page "http://elpa.gnu.org/packages/shell-command+.html") "Shell-command+ is a @code{shell-command} substitute that extends the
(synopsis "Extended Emacs @code{shell-command}")
(description
"Shell-command+ is a @code{shell-command} substitute that extends the
regular Emacs command with several features. You can for example count all regular Emacs command with several features. You can for example count all
the lines in a buffer with @code{> wc -l}, or delete all lower case letters in the lines in a buffer with @code{> wc -l}, or delete all lower case letters in
the selected region with @code{| tr -d a-z}.") the selected region with @code{| tr -d a-z}.")
(license license:gpl3+)))) (license license:gpl3+)))
(define-public emacs-shell-pop (define-public emacs-shell-pop
(let ((commit "4b4394037940a890a313d715d203d9ead2d156a6") (let ((commit "4b4394037940a890a313d715d203d9ead2d156a6")
@ -31699,7 +31805,7 @@ dict.org) from within Emacs.")
(define-public emacs-multitran (define-public emacs-multitran
(package (package
(name "emacs-multitran") (name "emacs-multitran")
(version "0.4.14") (version "0.4.16")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -31708,7 +31814,7 @@ dict.org) from within Emacs.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "13lmhp2vm953s4phqdd119kp7s3p0kb3kqz4z6g3ga6m6py3gq3i")))) (base32 "0zjl7zyydx2pan2ashbwbp70nlmw17hq5w03sfk12wi7j1nihwbz"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "https://github.com/zevlg/multitran.el") (home-page "https://github.com/zevlg/multitran.el")
(synopsis "Emacs interface to the multitran.com online dictionary") (synopsis "Emacs interface to the multitran.com online dictionary")
@ -32389,6 +32495,33 @@ tree to go back to previous buffer states. To use vundo, type @kbd{M-x vundo RE
the buffer you want to undo. An undo tree buffer should pop up.") the buffer you want to undo. An undo tree buffer should pop up.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public emacs-project-x
;; There is no proper release.
;; The base version is extracted from the README.org.
(let ((revision "0")
(commit "0b78f4e33b994612fcb305b3cf6d3b1e3b62cea7"))
(package
(name "emacs-project-x")
(version (git-version "0.1.6" revision commit))
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/karthink/project-x")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1xxzxxm0jila5s9sfay6ywj2j8pyz4wwcrycvnrrzh0vxcsgzf9s"))))
(build-system emacs-build-system)
(home-page "https://github.com/karthink/project-x")
(synopsis "Enhancement to Emacs built-in Project library")
(description
"Project-X provides convenience features for Emacs' Project library.
In particular, it saves and restores project files and window configurations
across sessions.")
(license license:gpl3+))))
(define-public emacs-vertico-posframe (define-public emacs-vertico-posframe
(package (package
(name "emacs-vertico-posframe") (name "emacs-vertico-posframe")

View file

@ -44,7 +44,7 @@
(define-public erlang (define-public erlang
(package (package
(name "erlang") (name "erlang")
(version "25.0.2") (version "25.0.4")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
;; The tarball from http://erlang.org/download contains many ;; The tarball from http://erlang.org/download contains many
@ -56,7 +56,7 @@
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"0xgp035vy0yy5m155rpmf22m6rq7pvw3m65s5mz22bcpj2rw4b0x")) "0n39pd5d8mmyj03d8fdan0zb2pcc383pmqf0v7s356fgirdbsrcm"))
(patches (search-patches "erlang-man-path.patch")))) (patches (search-patches "erlang-man-path.patch"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs

View file

@ -552,3 +552,35 @@ then compiled by a C++ compiler (GCC/Clang/etc.). The resulting executable
performs the design simulation. Verilator also supports linking its generated performs the design simulation. Verilator also supports linking its generated
libraries, optionally encrypted, into other simulators.") libraries, optionally encrypted, into other simulators.")
(license license:lgpl3))) (license license:lgpl3)))
(define-public fftgen
(let ((commit "1d75a992efd0528edea128a903aafdabe133cb08") ;no releases
(revision "0"))
(package
(name "fftgen")
(version (git-version "0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ZipCPU/dblclockfft")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0qq874yalzpjdwnxhc5df8a0ifywv29wcncb09945x56xplvkcmd"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no tests
#:make-flags '("CFLAGS=-g -O2") ;default flags lack -O2
#:phases (modify-phases %standard-phases
(delete 'configure)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append (assoc-ref outputs "out")
"/bin")))
(install-file "sw/fftgen" bin)))))))
(synopsis "Generic pipelined FFT core generator")
(description "fftgen produces @acronym{FFT, fast-Fourier transforms}
hardware designs in Verilog.")
(home-page "https://zipcpu.com/")
(license license:lgpl3+))))

View file

@ -87,7 +87,6 @@
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages lua) #:use-module (gnu packages lua)
#:use-module (gnu packages m4) #:use-module (gnu packages m4)
#:use-module (gnu packages mono)
#:use-module (gnu packages mp3) #:use-module (gnu packages mp3)
#:use-module (gnu packages multiprecision) #:use-module (gnu packages multiprecision)
#:use-module (gnu packages music) #:use-module (gnu packages music)
@ -2306,58 +2305,6 @@ specific knowledge of the hardware they are targeting.")
double-buffering.") double-buffering.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public fna
(package
(name "fna")
(version "19.12.01")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/FNA-XNA/FNA")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1vdyi9hac24fqcs8kpj6yk36bf5rrl4dvlvdd9fc701fawcf6lrr"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; No tests.
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'link-dep-src
(lambda* (#:key inputs #:allow-other-keys)
(let ((sdl2 (assoc-ref inputs "sdl2-cs-src"))
(mojoshader (assoc-ref inputs "mojoshader-src"))
(faudio (assoc-ref inputs "faudio-src"))
(theorafile (assoc-ref inputs "theorafile-src")))
(symlink (string-append sdl2 "/src") "lib/SDL2-CS/src")
(symlink (string-append mojoshader "/csharp") "lib/MojoShader/csharp")
(symlink (string-append faudio "/csharp") "lib/FAudio/csharp")
(symlink (string-append theorafile "/csharp") "lib/Theorafile/csharp"))))
(delete 'configure)
(replace 'build
(lambda _
(invoke "make" "release")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(install-file "bin/Release/FNA.dll" (string-append out "/lib"))
#t))))))
(native-inputs
(list mono))
(inputs `(("sdl2-cs-src" ,(package-source sdl2-cs))
("mojoshader-src" ,(package-source mojoshader-cs))
("faudio-src" ,(package-source faudio))
("theorafile-src" ,(package-source theorafile))))
(home-page "https://fna-xna.github.io/")
(synopsis "Accuracy-focused XNA4 reimplementation")
(description "FNA is a Microsoft XNA Game Studio 4.0 reimplementation that
focuses solely on developing a fully accurate XNA4 runtime for the desktop.")
(license (list license:ms-pl ; FNA
license:lgpl2.1 ; LzxDecoder.cs
;; Mono.Xna:
license:expat))))
(define-public libccd (define-public libccd
(package (package
(name "libccd") (name "libccd")

View file

@ -3961,6 +3961,103 @@ This game is based on the GPL version of the famous game TuxRacer.")
(home-page "https://sourceforge.net/projects/extremetuxracer/") (home-page "https://sourceforge.net/projects/extremetuxracer/")
(license license:gpl2+))) (license license:gpl2+)))
(define-public exult
(package
(name "exult")
(version "1.8")
(source
(origin
;; The release tarball isn't bootstrapped, and Git is more robust (SWH).
(method git-fetch)
(uri (git-reference
(url "https://github.com/exult/exult")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1qfbkz05w8989vafc6dvw1wmdi1mvkr4kkgk3ccixadf4616kcb3"))))
(build-system gnu-build-system)
(outputs (list "out" "gimp" "studio"))
(arguments
(list #:configure-flags
#~(list "--enable-shared"
"--disable-static"
"--enable-lto"
"--enable-exult-studio"
"--enable-exult-studio-support"
"--enable-compiler"
"--enable-mods" ; needs --enable-compiler!
"--enable-gimp-plugin"
;; A few lines on stdout can save a lot of head-scratching:
"CPPFLAGS=-DDEBUG_PATHS=1")
#:phases
#~(modify-phases %standard-phases
(add-before 'bootstrap 'patch-game-home-directory
(lambda _
(substitute* "gamemgr/modmgr.cc"
;; EXULT_DATADIR is in the store where it's rather hard for
;; users to put game assets. Use a more writable home by
;; default, which users can override in their ~/.exult.cfg.
(("<GAMEHOME>")
(string-append "<HOME>/.local/share/exult"))
;; …however, this causes a regression: the mods which we'll
;; install to EXULT_DATADIR are no longer found. So: don't
;; look for mods alongside the assets by default. This too
;; can be overridden in users' ~/.exult.cfg.
(("game_path( \\+ \"/mods\")" _ +suffix)
(string-append "get_system_path(\"<GAMEHOME>/\") + "
"cfgname" +suffix)))))
(add-before 'bootstrap 'move-exult-studio
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "studio")))
(substitute* "mapedit/studio.cc"
(("(esdir, )EXULT_DATADIR" _ prefix)
(string-append prefix "\"" out "/share/exult\"")))
(substitute* "data/Makefile.am"
(("(estudionewdir =.*)\\$\\(datadir\\)(.*)"
_ variable= suffix)
(string-append variable= out "/share" suffix "\n"))))))
(add-before 'bootstrap 'fix-gimp-plug-in-prefix
;; ./configure will propagate this value to myriad Makefiles
;; scattered across the tree, so fix it early.
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "gimp")))
(substitute* "configure.ac"
(("(GIMP_PLUGIN_PREFIX=).*" _ variable=)
(string-append variable= out "/lib/gimp/2.0"))))))
(add-after 'install 'move-exult_studio
(lambda* (#:key outputs #:allow-other-keys)
(let ((source (assoc-ref outputs "out"))
(target (assoc-ref outputs "studio"))
(file "/bin/exult_studio"))
(mkdir-p (string-append target (dirname file)))
(rename-file (string-append source file)
(string-append target file))))))))
(native-inputs
(list autoconf automake libtool pkg-config
;; The following are needed only by the GIMP plug-in.
gimp libjpeg-turbo
gegl gtk+-2 ; needed by gimpui-2.0.pc
;; The following are needed only by the Usecode compiler.
bison flex))
(inputs
(list fluidsynth freetype libvorbis sdl2
;; GTK is needed only by Exult Studio.
gtk+))
(synopsis "Role-playing game engine compatible with Ultima VII")
(description
"Exult is an Ultima 7 game engine that runs on modern operating systems.
Ultima 7 (or Ultima VII) is a two-part @acronym{RPG, role-playing game} from the
early 1990s.
Exult is fully compatible with the original Ultima 7, but doesn't require any
of its data files to be useful. Explore entirely new game worlds---or create
your own with the included game and map editor, Exult Studio.
This package expects the game(s) to be placed in subdirectories of
@file{~/.local/share/exult}.")
(home-page "http://exult.info/")
(license license:gpl2+)))
(define-public supertuxkart (define-public supertuxkart
(package (package
(name "supertuxkart") (name "supertuxkart")

View file

@ -2377,14 +2377,14 @@ growing set of geoscientific methods.")
(define-public qgis (define-public qgis
(package (package
(name "qgis") (name "qgis")
(version "3.16.3") (version "3.26.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://qgis.org/downloads/qgis-" (uri (string-append "https://qgis.org/downloads/qgis-"
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 "012dv8dcg7w4lf6k37i41wialwhi0kpkxw2dnq19yqqk35632mzx")))) (base32 "1hsq3wchsf7db7134fgg9xzzap35q1s4r6649d0krbw80xw5asca"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:modules ((guix build cmake-build-system) `(#:modules ((guix build cmake-build-system)
@ -2405,7 +2405,7 @@ growing set of geoscientific methods.")
(("sip_dir = cfg.default_sip_dir") (("sip_dir = cfg.default_sip_dir")
(string-append "sip_dir = \"" (string-append "sip_dir = \""
(assoc-ref inputs "python-pyqt+qscintilla") (assoc-ref inputs "python-pyqt+qscintilla")
"/share/sip\"")) "/share/sip\"")))
;; Fix building with python-sip@5. ;; Fix building with python-sip@5.
;; ;;
;; The reason for this is that python-sip@5 introduces some ;; The reason for this is that python-sip@5 introduces some
@ -2416,31 +2416,15 @@ growing set of geoscientific methods.")
;; are, messing up the build. The long term solution is to fully ;; are, messing up the build. The long term solution is to fully
;; upgrade SIP, use sip-build and fix all failing packages, but ;; upgrade SIP, use sip-build and fix all failing packages, but
;; for now I just want to get the build working. ;; for now I just want to get the build working.
((".pyqt_sip_dir...os.path.join.*,") (substitute* "cmake/FindPyQt5.cmake"
(string-append "'pyqt_sip_dir': \"" (("SET\\(PYQT5_SIP_DIR \"\\$\\{Python_SITEARCH\\}/PyQt5/bindings\"\\)")
(string-append "SET(PYQT5_SIP_DIR \""
(assoc-ref inputs "python-pyqt+qscintilla") (assoc-ref inputs "python-pyqt+qscintilla")
"/share/sip" "\","))) "/share/sip\")")))
(substitute* (list "scripts/prepare_commit.sh" (substitute* (list "tests/code_layout/test_qt_imports.sh"
"scripts/qstringfixup.sh" "tests/code_layout/test_qgsscrollarea.sh")
"scripts/release.pl"
"scripts/runtests_local_travis_config.sh"
"scripts/sip_include.sh"
"scripts/sipdiff"
"scripts/sipify_all.sh"
"scripts/spell_check/check_spelling.sh"
"scripts/spell_check/spell_test.sh"
"scripts/verify_indentation.sh"
"tests/code_layout/test_banned_keywords.sh"
"tests/code_layout/test_licenses.sh"
"tests/code_layout/test_shellcheck.sh"
"tests/code_layout/test_sip_include.sh"
"tests/code_layout/test_sipfiles.sh"
"tests/code_layout/test_sipify.sh")
(("\\$\\(git rev-parse --show-toplevel\\)") (("\\$\\(git rev-parse --show-toplevel\\)")
(getcwd))) (getcwd)))))
(substitute* "tests/code_layout/test_sip_include.sh"
(("^REV=.*") "REV=currentrev\n"))
#t))
(replace 'check (replace 'check
(lambda* (#:key inputs tests? #:allow-other-keys) (lambda* (#:key inputs tests? #:allow-other-keys)
(when tests? (when tests?
@ -2454,113 +2438,85 @@ growing set of geoscientific methods.")
'(;; Disable tests that require network access '(;; Disable tests that require network access
"qgis_filedownloader" "qgis_filedownloader"
;; TODO: Find why the following tests fail ;; TODO: Find why the following tests fail
"ProcessingGdalAlgorithmsRasterTest"
"ProcessingGdalAlgorithmsVectorTest"
"ProcessingGrass7AlgorithmsImageryTest"
"ProcessingGrass7AlgorithmsRasterTest"
"ProcessingGrass7AlgorithmsVectorTest"
"ProcessingOtbAlgorithmsTest"
"ProcessingQgisAlgorithmsTestPt1" "ProcessingQgisAlgorithmsTestPt1"
"ProcessingQgisAlgorithmsTestPt2" "ProcessingQgisAlgorithmsTestPt2"
"ProcessingQgisAlgorithmsTestPt3" "ProcessingQgisAlgorithmsTestPt3"
"ProcessingQgisAlgorithmsTestPt4" "ProcessingQgisAlgorithmsTestPt4"
"PyCoreAdittions" "ProcessingGdalAlgorithmsVectorTest"
"ProcessingGrass7AlgorithmsImageryTest"
"ProcessingGrass7AlgorithmsRasterTestPt1"
"ProcessingGrass7AlgorithmsRasterTestPt2"
"ProcessingGrass7AlgorithmsVectorTest"
"ProcessingOtbAlgorithmsTest"
"test_core_authmanager"
"test_core_compositionconverter"
"test_core_gdalutils"
"test_core_labelingengine"
"test_core_layout"
"test_core_layouthtml"
"test_core_layoutlabel"
"test_core_layoutmultiframe"
"test_core_layoutpicture"
"test_core_legendrenderer"
"test_core_networkaccessmanager"
"test_core_tiledownloadmanager"
"test_gui_dualview"
"test_gui_htmlwidgetwrapper"
"test_gui_filedownloader"
"test_gui_queryresultwidget"
"test_analysis_processingalgspt2"
"test_analysis_processing"
"test_provider_wcsprovider"
"qgis_grassprovidertest7"
"test_app_gpsinformationwidget"
"PyQgsAnnotation" "PyQgsAnnotation"
"PyQgsAppStartup" "PyQgsAttributeTableModel"
"PyQgsAuthBasicMethod"
"PyQgsAuthenticationSystem" "PyQgsAuthenticationSystem"
"PyQgsAuxiliaryStorage" "PyQgsExternalStorageWebDAV"
"PyQgsDBManagerGpkg" "PyQgsFieldFormattersTest"
"PyQgsDBManagerSpatialite"
"PyQgsDataItem"
"PyQgsFieldValidator"
"PyQgsFileUtils" "PyQgsFileUtils"
"PyQgsGeometryTest" "PyQgsGeometryTest"
"PyQgsImageCache" "PyQgsGoogleMapsGeocoder"
"PyQgsImportIntoPostGIS" "PyQgsHashLineSymbolLayer"
"PyQgsLayerDependencies"
"PyQgsLayerMetadata"
"PyQgsLayout"
"PyQgsLayoutExporter" "PyQgsLayoutExporter"
"PyQgsLayoutHtml" "PyQgsLayoutHtml"
"PyQgsLayoutLegend" "PyQgsLineSymbolLayers"
"PyQgsLayoutMapGrid"
"PyQgsMapClippingUtils"
"PyQgsMapLayer" "PyQgsMapLayer"
"PyQgsMetadataBase" "PyQgsNetworkContentFetcherRegistry"
"PyQgsOGRProvider"
"PyQgsOGRProviderGpkg" "PyQgsOGRProviderGpkg"
"PyQgsOapifProvider" "PyQgsOGRProviderSqlite"
"PyQgsPalLabelingCanvas"
"PyQgsPalLabelingLayout" "PyQgsPalLabelingLayout"
"PyQgsProcessingInPlace" "PyQgsPalLabelingPlacement"
"PyQgsProject" "PyQgsProcessExecutable"
"PyQgsProviderConnectionGpkg" "PyQgsProviderConnectionGpkg"
"PyQgsProviderConnectionPostgres"
"PyQgsProviderConnectionSpatialite" "PyQgsProviderConnectionSpatialite"
"PyQgsPythonProvider" "PyQgsOGRProvider"
"PyQgsRasterLayer"
"PyQgsRasterResampler"
"PyQgsRulebasedRenderer"
"PyQgsSelectiveMasking"
"PyQgsSettings"
"PyQgsShapefileProvider"
"PyQgsSpatialiteProvider" "PyQgsSpatialiteProvider"
"PyQgsSvgCache"
"PyQgsSymbolExpressionVariables"
"PyQgsTextRenderer"
"PyQgsVectorFileWriter" "PyQgsVectorFileWriter"
"PyQgsVectorLayer" "PyQgsVectorLayerEditBuffer"
"PyQgsVectorLayerUtils" "PyQgsVectorLayerEditBufferGroup"
"PyQgsVectorLayerProfileGenerator"
"PyQgsVirtualLayerProvider" "PyQgsVirtualLayerProvider"
"PyQgsWFSProvider" "PyQgsWFSProvider"
"qgis_arcgisrestutilstest" "PyQgsWFSProviderGUI"
"qgis_authmanagertest" "PyQgsOapifProvider"
"qgis_compositionconvertertest" "PyQgsLayerDependencies"
"qgis_coordinatereferencesystemtest" "PyQgsDBManagerGpkg"
"qgis_expressiontest" "PyQgsDBManagerSpatialite"
"qgis_fontmarkertest" "PyQgsAuxiliaryStorage"
"qgis_geometrycheckstest" "PyQgsSelectiveMasking"
"qgis_geometrytest"
"qgis_gpsinformationwidget"
"qgis_grassprovidertest7"
"qgis_imagecachetest"
"qgis_labelingenginetest"
"qgis_layouthtmltest"
"qgis_layoutlabeltest"
"qgis_layoutmanualtabletest"
"qgis_layoutmapgridtest"
"qgis_layoutmapoverviewtest"
"qgis_layoutmaptest"
"qgis_layoutmultiframetest"
"qgis_layoutpicturetest"
"qgis_layouttabletest"
"qgis_layouttest"
"qgis_mapdevicepixelratiotest"
"qgis_maprendererjobtest"
"qgis_meshcontourstest"
"qgis_ogrproviderguitest"
"qgis_painteffecttest"
"qgis_pallabelingtest"
"qgis_processingtest"
"qgis_rasterlayertest"
"qgis_shellcheck" "qgis_shellcheck"
"qgis_sip_include"
"qgis_sip_uptodate"
"qgis_sipify" "qgis_sipify"
"qgis_styletest" "qgis_sip_include"
"qgis_svgmarkertest" "qgis_sip_uptodate")
"qgis_taskmanagertest"
"qgis_wcsprovidertest"
"qgis_ziplayertest"
"TestQgsRandomMarkerSymbolLayer")
"|"))))) "|")))))
(add-after 'install 'wrap-python (add-after 'install 'wrap-python
(assoc-ref python:%standard-phases 'wrap)) (assoc-ref python:%standard-phases 'wrap))
(add-after 'wrap-python 'wrap-qt (add-after 'wrap-python 'wrap-qt
(lambda* (#:key outputs inputs #:allow-other-keys) (lambda* (#:key outputs inputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(wrap-qt-program "qgis" #:output out #:inputs inputs)) (wrap-qt-program "qgis" #:output out #:inputs inputs))))
#t))
(add-after 'wrap-qt 'wrap-gis (add-after 'wrap-qt 'wrap-gis
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
;; TODO: Find if there is a way to get SAGA to work. ;; TODO: Find if there is a way to get SAGA to work.
@ -2578,10 +2534,10 @@ growing set of geoscientific methods.")
(wrap-program (string-append out "/bin/qgis") (wrap-program (string-append out "/bin/qgis")
;;`("PATH" ":" prefix (,saga)) ;;`("PATH" ":" prefix (,saga))
`("QGIS_PREFIX_PATH" = (,out)) `("QGIS_PREFIX_PATH" = (,out))
`("GISBASE" = (,grass)))) `("GISBASE" = (,grass)))))))))
#t)))))
(inputs (inputs
(list exiv2 (list bash-minimal
exiv2
expat expat
gdal gdal
geos geos
@ -2623,8 +2579,9 @@ growing set of geoscientific methods.")
qtserialport qtserialport
qtsvg-5 qtsvg-5
qwt qwt
;;("saga" ,saga) ;; saga
sqlite)) sqlite
(list zstd "lib")))
(native-inputs (native-inputs
(list bison (list bison
flex flex
@ -2633,6 +2590,7 @@ growing set of geoscientific methods.")
pkg-config pkg-config
python-mock python-mock
python-nose2 python-nose2
python-pyqt-builder
qttools-5 qttools-5
shellcheck shellcheck
xorg-server-for-tests)) xorg-server-for-tests))

View file

@ -48,7 +48,6 @@
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages llvm) #:use-module (gnu packages llvm)
#:use-module (gnu packages mono)
#: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 python-xyz) #:use-module (gnu packages python-xyz)
@ -1044,44 +1043,6 @@ the shaders at runtime.")
the glProgramViewportFlip before it was replaced with glProgramViewportInfo.") the glProgramViewportFlip before it was replaced with glProgramViewportInfo.")
(license license:zlib)))) (license license:zlib))))
(define-public mojoshader-cs
(let ((commit "10d0dba21ff1cfe332eb7de328a2adce01286bd7"))
(package
(name "mojoshader-cs")
(version (git-version "20191205" "1" commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/FNA-XNA/MojoShader")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"11mdhf3fmb9rsn2iv753gmb596j4dh5j2iipgw078vg0lj23rml7"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; No tests.
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'build
(lambda _
(invoke "make" "-C" "csharp")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(install-file "csharp/bin/MojoShader-CS.dll" (string-append out "/lib"))
#t))))))
(native-inputs
(list mono))
(home-page "https://github.com/FNA-XNA/MojoShader")
(synopsis "C# wrapper for MojoShader")
(description
"Mojoshader-CS provides C# bindings for the Mojoshader library.
The C# wrapper was written to be used for FNA's platform support. However, this
is written in a way that can be used for any general C# application.")
(license license:zlib))))
(define-public glmark2 (define-public glmark2
(package (package
(name "glmark2") (name "glmark2")

View file

@ -3192,6 +3192,31 @@ the GNOME desktop environment.")
(variable "GLADE_MODULE_SEARCH_PATH") (variable "GLADE_MODULE_SEARCH_PATH")
(files '("lib/glade/modules"))))))) (files '("lib/glade/modules")))))))
(define-public blueprint-compiler
(let ((commit "87cedc2c7e48b01dc1b07aef937e2fe02111b18c"))
(package
(name "blueprint-compiler")
(version "0.2.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url
"https://gitlab.gnome.org/jwestman/blueprint-compiler")
(commit commit)))
(file-name (string-append name "-" commit "-checkout"))
(sha256
(base32
"1mrj5dyjf5d325yc28fpph588qfsz6bm2nx5nnsgcv02bagplxid"))))
(build-system meson-build-system)
(native-inputs (list gobject-introspection gtk))
(inputs (list python))
(synopsis "Template markup language")
(description
"Blueprint is a markup language for GTK user interfaces. Internally, it
compiles to GTKBuilder XML.")
(home-page "https://gitlab.gnome.org/jwestman/blueprint-compiler")
(license license:lgpl3+))))
(define-public cambalache (define-public cambalache
(package (package
(name "cambalache") (name "cambalache")
@ -7126,7 +7151,7 @@ metadata in photo and video files of various formats.")
(define-public shotwell (define-public shotwell
(package (package
(name "shotwell") (name "shotwell")
(version "0.30.12") (version "0.30.16")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/shotwell/" (uri (string-append "mirror://gnome/sources/shotwell/"
@ -7134,7 +7159,7 @@ metadata in photo and video files of various formats.")
"shotwell-" version ".tar.xz")) "shotwell-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1h5crjq59lqi8f8mdkadzi8pc3i9i2ik4lsx2nrhzq486fzdfhw6")))) "1yhqfmz49qkls4i6xaznm5ybwzv19jxsqjdic60wn0ykvbxjr269"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
'(#:glib-or-gtk? #t '(#:glib-or-gtk? #t
@ -10743,7 +10768,7 @@ photo-booth-like software, such as Cheese.")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://gnome/sources/" name "/" (uri (string-append "mirror://gnome/sources/" name "/"
(version-major+minor version) "/" name "-" (version-major version) "/" name "-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32

View file

@ -36,6 +36,7 @@
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages linux)
#:use-module (gnu packages llvm) #:use-module (gnu packages llvm)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
@ -335,3 +336,37 @@ entering the dock a burning spot replaces the cursor, and after two seconds
symbols to represent the current monitor are \"burnt\" onscreen. The flame symbols to represent the current monitor are \"burnt\" onscreen. The flame
colour can also be changed.") colour can also be changed.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public wmamixer
(package
(name "wmamixer")
(version "1.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gryf/wmamixer")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"04vv4kr4mj1nwri6zqgdg4yzbbmmng73qd4h0azliril75m7sldf"))))
(inputs (list libx11 libxpm libxext alsa-lib))
(build-system gnu-build-system)
(arguments
(list #:phases #~(modify-phases %standard-phases
(delete 'configure)
(delete 'check)
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "wmamixer" bin)))))))
(synopsis "Window maker applet to display the current volume")
(description
"wmamixer is an applet for window maker which displays the
current volume level both numerically and visiaully with a volume bar. It
includes the ability to toggle through different outputs to show their
respective volume level.")
(home-page "https://github.com/gryf/wmamixer")
(license license:gpl2+)))

View file

@ -9969,3 +9969,26 @@ implementation.")
(description (description
"Package jsonrpc2 provides a Go implementation of JSON-RPC 2.0.") "Package jsonrpc2 provides a Go implementation of JSON-RPC 2.0.")
(license license:expat))) (license license:expat)))
(define-public go-github-com-disintegration-imaging
(package
(name "go-github-com-disintegration-imaging")
(version "1.6.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/disintegration/imaging")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1sl201nmk601h0aii4234sycn4v2b0rjxf8yhrnik4yjzd68q9x5"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/disintegration/imaging"))
(inputs (list go-golang-org-x-image))
(home-page "https://github.com/disintegration/imaging")
(synopsis "Simple image processing for Go")
(description "This package provides basic image processing functions
(resize, rotate, crop, brightness/contrast adjustments, etc.).")
(license license:expat)))

View file

@ -61,6 +61,7 @@
#:use-module (gnu packages cdrom) #:use-module (gnu packages cdrom)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crypto) #:use-module (gnu packages crypto)
#:use-module (gnu packages datastructures) #:use-module (gnu packages datastructures)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
@ -88,6 +89,7 @@
#:use-module (gnu packages logging) #:use-module (gnu packages logging)
#:use-module (gnu packages llvm) #:use-module (gnu packages llvm)
#:use-module (gnu packages lua) #:use-module (gnu packages lua)
#:use-module (gnu packages man)
#:use-module (gnu packages maths) #:use-module (gnu packages maths)
#:use-module (gnu packages mp3) #:use-module (gnu packages mp3)
#:use-module (gnu packages multiprecision) #:use-module (gnu packages multiprecision)
@ -747,6 +749,12 @@ many more.")
(sha256 (sha256
(base32 "1nyld18mf220ghm1vidnfnn0rdns9z5i4l9s66xgd0kfdgarb31f")))) (base32 "1nyld18mf220ghm1vidnfnn0rdns9z5i4l9s66xgd0kfdgarb31f"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments
;; XXX: On i686-linux, tests fail due to rounding issues (excess
;; precision), as was discussed and patched long ago:
;; <https://issues.guix.gnu.org/22049>. It seems the relevant fixes
;; didn't make it upstream, so skip tests.
(list #:tests? (not (target-x86-32?))))
(home-page "https://github.com/AcademySoftwareFoundation/Imath") (home-page "https://github.com/AcademySoftwareFoundation/Imath")
(synopsis "Library of math operations for computer graphics") (synopsis "Library of math operations for computer graphics")
(description (description
@ -1175,13 +1183,15 @@ with strong support for multi-part, multi-channel use cases.")
#t)) #t))
,@(if (not (target-64bit?)) ,@(if (not (target-64bit?))
`((add-after 'change-directory 'disable-broken-test `((add-after 'change-directory 'disable-broken-test
;; This test fails on i686. Upstream developers suggest that
;; this test is broken on i686 and can be safely disabled:
;; https://github.com/openexr/openexr/issues/67#issuecomment-21169748
(lambda _ (lambda _
(substitute* "IlmImfTest/main.cpp" (substitute* "IlmImfTest/main.cpp"
((".*testOptimizedInterleavePatterns.*") "")) ;; This test fails on i686. Upstream developers suggest
#t))) ;; that this test is broken on i686 and can be safely
;; disabled:
;; https://github.com/openexr/openexr/issues/67#issuecomment-21169748
((".*testOptimizedInterleavePatterns.*") "")
;; This one fails similarly on i686.
((".*testCompression.*") "")))))
'())))) '()))))
(native-inputs (native-inputs
(list pkg-config)) (list pkg-config))
@ -2299,11 +2309,14 @@ a tetrahedral mesh, isovalue discretization and Lagrangian movement;
;; There have been many improvements since the last tagged version (1.2.1, ;; There have been many improvements since the last tagged version (1.2.1,
;; released in December 2021), including support for the Alembic file ;; released in December 2021), including support for the Alembic file
;; format. ;; format.
(let ((commit "9cc79b65ed750b178f58012dbba091aa24722dab") (let ((commit "46df21fe9409349917af5e6f7d1cb931f4c68e59")
(revision "0")) (revision "0"))
(package (package
(name "f3d") (name "f3d")
(version (git-version "1.2.1" revision commit)) ;; F3D has not actually been tagged as 1.3.0-pre, but upstream commit
;; 401d4d27b2094568378c07f400fbad48b7af3168 updated the version string
;; to 1.3.0.
(version (git-version "1.3.0-pre" revision commit))
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -2312,29 +2325,52 @@ a tetrahedral mesh, isovalue discretization and Lagrangian movement;
(commit commit))) (commit commit)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "041gqi2wfny2br4j68vhifg0bd18kbl0qsaallkz7yywk47njxfi")))) (base32 "0x0jw9vqf1b8pxh84xpr47hzcjynk07dp8q7r2xihh9cd00kglp1"))
(modules '((guix build utils)))
(snippet
'(begin
(delete-file "application/cxxopts.hpp")
(delete-file "application/json.hpp")
(substitute* "application/F3DOptionsParser.cxx"
(("^#include \"cxxopts\\.hpp\"")
"#include <cxxopts.hpp>")
(("^#include \"json\\.hpp\"")
"#include <nlohmann/json.hpp>"))))))
(build-system cmake-build-system) (build-system cmake-build-system)
;; The package cannot easily be split into out and lib outputs because
;; VTK's vtkModule.cmake complains, and also the CMake files in
;; /lib/cmake/f3d expect the f3d executable and library to be available,
;; as they set up targets for both of them.
(arguments (arguments
(list (list
;; Many tests require files supplied by git-lfs. ;; Many tests require files supplied by git-lfs.
;; Also, some tests segfault (after an exception?) but the tested ;; Also, some tests segfault (after an exception?) but the tested
;; behavior, i.e., when the program is run manually, does not (for ;; behavior, i.e., when the program is run manually, does not (for
;; example, TestNonExistentConfigFile and TestInvalidConfigFile). ;; example, TestNonExistentConfigFile and TestInvalidConfigFile).
;; Upstream is aware of occasionally flaky tests (see ;; Upstream is aware of occasionally flaky tests [1], but the tests
;; https://github.com/f3d-app/f3d/issues/92) but the tests run in CI ;; run in CI seem to be passing.
;; seem to be passing.
;; Anyway, the program runs and is able to open at least STL files ;; Anyway, the program runs and is able to open at least STL files
;; without issue. ;; without issue.
;;
;; [1]: https://github.com/f3d-app/f3d/issues/92
#:tests? #f #:tests? #f
#:configure-flags #:configure-flags
#~(list "-DBUILD_TESTING=OFF" #~(list (string-append "-DCMAKE_INSTALL_DOCDIR=" #$output
"/share/doc/" #$name "-" #$version)
"-DBUILD_TESTING=OFF"
"-DF3D_GENERATE_MAN=ON"
"-DF3D_INSTALL_DEFAULT_CONFIGURATION_FILE=ON"
"-DF3D_INSTALL_DEFAULT_CONFIGURATION_FILE_IN_PREFIX=ON"
"-DF3D_INSTALL_MIME_TYPES_FILE=ON"
"-DF3D_INSTALL_THUMBNAILER_FILES=ON"
"-DF3D_MODULE_ALEMBIC=ON" "-DF3D_MODULE_ALEMBIC=ON"
"-DF3D_MODULE_ASSIMP=ON" "-DF3D_MODULE_ASSIMP=ON"
"-DF3D_MODULE_OCCT=ON" "-DF3D_MODULE_EXTERNAL_RENDERING=ON"
;; Prefer Guix's versioned documentation directory to F3D's "-DF3D_MODULE_OCCT=ON")))
;; unversioned one. (native-inputs
(string-append "-DCMAKE_INSTALL_DOCDIR=" #$output (list cxxopts
"/share/doc/" #$name "-" #$version)))) help2man
json-modern-cxx))
(inputs (inputs
(list alembic (list alembic
assimp assimp
@ -2357,10 +2393,10 @@ a tetrahedral mesh, isovalue discretization and Lagrangian movement;
vtk vtk
zlib)) zlib))
(home-page "https://f3d-app.github.io/f3d/") (home-page "https://f3d-app.github.io/f3d/")
(synopsis "VTK based 3D viewer") (synopsis "VTK-based 3D viewer")
(description "F3D (pronounced @samp{/fɛd/}) is a VTK-based 3D viewer, it (description "F3D (pronounced @samp{/fɛd/}) is a VTK-based 3D viewer
has simple interaction mechanisms and is fully controllable using arguments on with simple interaction mechanisms and which is fully controllable using
the command line. It supports a range of file formats (including animated arguments on the command line. It supports a range of file formats (including
glTF, STL, STEP, PLY, OBJ, FBX), and provides numerous rendering and texturing animated glTF, STL, STEP, PLY, OBJ, FBX), and provides numerous rendering and
options.") texturing options.")
(license license:bsd-3)))) (license license:bsd-3))))

View file

@ -1733,28 +1733,30 @@ provides tight coupling to Guix.")
(define-public guile-ics (define-public guile-ics
(package (package
(name "guile-ics") (name "guile-ics")
(version "0.2.1") (version "0.3.0")
(source (origin (source
(method git-fetch) (origin
(uri (git-reference (method git-fetch)
(url "https://github.com/artyom-poptsov/guile-ics") (uri (git-reference
(commit (string-append "v" version)))) (url "https://github.com/artyom-poptsov/guile-ics")
(file-name (string-append name "-" version "-checkout")) (commit (string-append "v" version))))
(sha256 (file-name (string-append name "-" version "-checkout"))
(base32 (sha256
"11wv6qk8xd4sd8s97mnw383p098ffivk0na4jii76r5wbmg1wd7q")) (base32
(modules '((guix build utils))))) "1526kdzcn0qvf5hpb4x5q01vb9mph9gfw24p81inqgjvy7a57lf9"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments
(list #:phases #~(modify-phases %standard-phases
(delete 'strip))))
(native-inputs (native-inputs
(list autoconf (list autoconf
automake automake
texinfo texinfo
;; Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'. gettext-minimal ;Gettext brings 'AC_LIB_LINKFLAGS_FROM_LIBS'.
gettext-minimal
help2man help2man
pkg-config)) pkg-config))
(inputs (list guile-3.0 which)) (inputs (list guile-3.0 which))
(propagated-inputs (list guile-lib)) (propagated-inputs (list guile-lib guile-smc))
(home-page "https://github.com/artyom-poptsov/guile-ics") (home-page "https://github.com/artyom-poptsov/guile-ics")
(synopsis "Guile parser library for the iCalendar format") (synopsis "Guile parser library for the iCalendar format")
(description (description
@ -1768,9 +1770,8 @@ The library is shipped with documentation in Info format and usage examples.")
(package (package
(inherit guile-ics) (inherit guile-ics)
(name "guile2.2-ics") (name "guile2.2-ics")
(inputs (modify-inputs (package-inputs guile-ics) (inputs (list guile-2.2 which))
(replace "guile" guile-2.2))) (propagated-inputs (list guile2.2-lib guile2.2-smc))))
(propagated-inputs `(("guile-lib" ,guile2.2-lib)))))
(define-public guile-imanifest (define-public guile-imanifest
(let ((commit "ccd5a2111b008d778106f5595a3a585954d95d0") (let ((commit "ccd5a2111b008d778106f5595a3a585954d95d0")
@ -4864,7 +4865,7 @@ GitLab instance.")
(define-public guile-smc (define-public guile-smc
(package (package
(name "guile-smc") (name "guile-smc")
(version "0.3.0") (version "0.5.2")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -4874,7 +4875,7 @@ GitLab instance.")
(file-name (string-append name "-" version)) (file-name (string-append name "-" version))
(sha256 (sha256
(base32 (base32
"0szkjmasi70m1vppck7nhdxg4lnxzjq6mihi6r1552s8sxm5z008")))) "05q20vi59whjs7jb8bgcxnnfy6c3wx26m5ps2fwlsz52nggarxzb"))))
(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
@ -4886,23 +4887,6 @@ GitLab instance.")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'strip) (delete 'strip)
(add-after 'configure 'patch
(lambda* (#:key inputs outputs #:allow-other-keys)
(substitute* "modules/smc/core/log.scm"
((" #:use-module \\(logging logger\\)")
(string-append
" #:use-module (logging logger)\n"
" #:use-module (logging rotating-log)"))
(("#:init-value \"logger\"")
(format #f
"#:init-value \"~a/bin/logger\""
(assoc-ref inputs "inetutils")))
(("\\(add-handler! %logger %syslog\\)")
(string-append
"(add-handler! %logger\n"
" (make <rotating-log>\n"
" #:file-name \"smc.log\"))\n")))
#t))
(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"))
@ -4919,15 +4903,11 @@ GitLab instance.")
,(string-append guile-lib scm))) ,(string-append guile-lib scm)))
`("GUILE_LOAD_COMPILED_PATH" prefix `("GUILE_LOAD_COMPILED_PATH" prefix
(,(string-append out go) (,(string-append out go)
,(string-append guile-lib go))))) ,(string-append guile-lib go))))))))))
#t)))))
(native-inputs (native-inputs
(list autoconf automake pkg-config texinfo)) (list autoconf automake pkg-config texinfo help2man which))
(inputs (inputs
`(("bash" ,bash-minimal) (list bash-minimal guile-3.0 guile-lib inetutils))
("guile" ,guile-3.0)
("guile-lib" ,guile-lib)
("inetutils" ,inetutils)))
(home-page "https://github.com/artyom-poptsov/guile-smc") (home-page "https://github.com/artyom-poptsov/guile-smc")
(synopsis "GNU Guile state machine compiler") (synopsis "GNU Guile state machine compiler")
(description (description
@ -4945,31 +4925,44 @@ format. This tool is meant to be called on a PlantUML file when a program
with a FSM is being built (for example, from a Makefile.)") with a FSM is being built (for example, from a Makefile.)")
(license license:gpl3))) (license license:gpl3)))
(define-public guile2.2-smc
(package
(inherit guile-smc)
(name "guile2.2-smc")
(inputs (modify-inputs (package-inputs guile-smc)
(replace "guile" guile-2.2)
(replace "guile-lib" guile2.2-lib)))))
(define-public guile-ini (define-public guile-ini
(package (package
(name "guile-ini") (name "guile-ini")
(version "0.3.0") (version "0.5.1")
(source (source (origin
(origin (method git-fetch)
(method git-fetch) (uri (git-reference
(uri (git-reference (url "https://github.com/artyom-poptsov/guile-ini")
(url "https://github.com/artyom-poptsov/guile-ini") (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 "0ky7sffxywc2p84q5kdsphr99q0g5gy45rj0vx7f77hwpfm2093x"))))
"0injn60530valhx3gsmdp72g6z886yf0n08hscky21h3dafm14kc"))))
(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
(native-inputs #:phases (modify-phases %standard-phases
(list autoconf automake pkg-config texinfo)) (delete 'strip)
(inputs (add-before 'build 'generate-fsm-context
`(("bash" ,bash-minimal) ;; Make sure the intermediate FSM context is present
("guile" ,guile-3.0) ;; before the build.
("guile-lib" ,guile-lib))) (lambda _
(propagated-inputs (let ((cwd (getcwd)))
(list guile-smc)) (chdir "modules/ini/")
(invoke "make" "GUILE_AUTO_COMPILE=0"
"fsm-context.scm")
(chdir cwd)))))))
(native-inputs (list autoconf automake pkg-config texinfo))
(inputs (list bash-minimal guile-3.0 guile-lib))
(propagated-inputs (list guile-smc))
(home-page "https://github.com/artyom-poptsov/guile-ini") (home-page "https://github.com/artyom-poptsov/guile-ini")
(synopsis "Guile library for INI format support") (synopsis "Guile library for INI format support")
(description (description

View file

@ -26,6 +26,7 @@
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl> ;;; Copyright © 2022 Tomasz Jeneralczyk <tj@schwi.pl>
;;; Copyright © 2022 Cairn <cairn@pm.me>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -51,6 +52,7 @@
#: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 cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system go)
#:use-module (guix build-system meson) #:use-module (guix build-system meson)
#:use-module (guix build-system python) #:use-module (guix build-system python)
#:use-module (guix build-system qt) #:use-module (guix build-system qt)
@ -73,6 +75,7 @@
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages golang)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages graphics) #:use-module (gnu packages graphics)
#:use-module (gnu packages image) #:use-module (gnu packages image)
@ -510,6 +513,35 @@ your images. Among its features are:
It supports JPEG, PNG and GIF formats.") It supports JPEG, PNG and GIF formats.")
(license license:expat))) (license license:expat)))
(define-public pixterm
(package
(name "pixterm")
(version "1.3.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/eliukblau/pixterm")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0fm6c0mjz6zillqjirnjjf7mkrax1gyfcv6777i07ms3bnv0pcii"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/eliukblau/pixterm/cmd/pixterm"
#:unpack-path "github.com/eliukblau/pixterm"))
(inputs (list go-github-com-disintegration-imaging
go-golang-org-colorful
go-golang-org-x-crypto
go-golang-org-x-image))
(home-page "https://github.com/eliukblau/pixterm")
(synopsis "Draw images in your ANSI terminal with true color")
(description "PIXterm shows images directly in your terminal, recreating
the pixels through a combination of ANSI character background color and the
unicode lower half block element. It supports JPEG, PNG, GIF, BMP, TIFF
and WebP.")
(license license:mpl2.0)))
(define-public luminance-hdr (define-public luminance-hdr
(package (package
(name "luminance-hdr") (name "luminance-hdr")

View file

@ -2,7 +2,7 @@
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 20192021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 20192021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de> ;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -62,7 +62,7 @@ text editors.")
(define-public lesspipe (define-public lesspipe
(package (package
(name "lesspipe") (name "lesspipe")
(version "2.04") (version "2.06")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -71,7 +71,7 @@ text editors.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1mwmwkmiyrpib18mli4wrh9n0i12cnf08ssrj6a0s6bgjcfxcjr2")))) "0f67f45dznhnw99r4zxrzf1xvspzj2rpg2z8b905ixmzpnv86772"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (list
@ -90,10 +90,10 @@ text editors.")
(("\\$\\(DESTDIR\\)/etc") "$(DESTDIR)$(PREFIX)/etc")))) (("\\$\\(DESTDIR\\)/etc") "$(DESTDIR)$(PREFIX)/etc"))))
(add-before 'install 'patch-command-paths (add-before 'install 'patch-command-paths
;; Depending on the content of the file to be displayed and some ;; Depending on the content of the file to be displayed and some
;; settings, lesspipe trees to use a large variety of external ;; settings, lesspipe tries to use a large variety of external
;; commands, e.g. rpm, dpkg, vimcolor. We only link the ;; commands, e.g. rpm, dpkg, vimcolor. We only link the
;; essential ones to avoid this package to pull in all these ;; essential ones to avoid this package to pull in all these
;; dependencies which might never ever we used. ;; dependencies which might never ever be used.
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((file (search-input-file inputs "/bin/file")) (let ((file (search-input-file inputs "/bin/file"))
(tput (search-input-file inputs "/bin/tput"))) (tput (search-input-file inputs "/bin/tput")))

View file

@ -353,7 +353,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-5.19-version "5.19.5") (define-public linux-libre-5.19-version "5.19.7")
(define-public linux-libre-5.19-gnu-revision "gnu") (define-public linux-libre-5.19-gnu-revision "gnu")
(define deblob-scripts-5.19 (define deblob-scripts-5.19
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -363,31 +363,16 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1ph67fvg5qvlkh4cynrrmvkngkb0sw6k90b1mwy9466s24khn05i"))) (base32 "1ph67fvg5qvlkh4cynrrmvkngkb0sw6k90b1mwy9466s24khn05i")))
(define-public linux-libre-5.19-pristine-source (define-public linux-libre-5.19-pristine-source
(let ((version linux-libre-5.19-version) (let ((version linux-libre-5.19-version)
(hash (base32 "1g9p4m9w9y0y1gk6vzqvsxzwqspbm10mmhd8n1mhal1yz721qgwc"))) (hash (base32 "17qr061b617g64s60svw7lf9s5vn5zwd1y96cwckjpr5shcn1fxq")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-5.19))) deblob-scripts-5.19)))
(define-public linux-libre-5.18-version "5.18.19")
(define-public linux-libre-5.18-gnu-revision "gnu")
(define deblob-scripts-5.18
(linux-libre-deblob-scripts
linux-libre-5.18-version
linux-libre-5.18-gnu-revision
(base32 "09aikdhij4d89wqd8mmkdr0nrfwqz6dx3n74qm6wx815rfngd2dz")
(base32 "03w1p49rf7sqsxvwpdndqa0k9hc9748rplyqiiw1q6cbdjficwyw")))
(define-public linux-libre-5.18-pristine-source
(let ((version linux-libre-5.18-version)
(hash (base32 "1mc8zhiw0v7fka64mydpdrxkrvy0jyqggq5lghw3pyqj2wjrpw6z")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.18)))
;; 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-5.15-version "5.15.63") (define-public linux-libre-5.15-version "5.15.65")
(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
@ -397,12 +382,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1r189c704jvizk452zcsm9v3g27ybjcjchjwxazsy3nx0wdwx7si"))) (base32 "1r189c704jvizk452zcsm9v3g27ybjcjchjwxazsy3nx0wdwx7si")))
(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 "0hbkxgadz0vcslni4r46yc202wcnxblcfvkcph1017b2b8gcvlvd"))) (hash (base32 "150w5bahp78s12gq7n8gdmi1zn44pwv31qnb1nmzkz2d5wwgsi7v")))
(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.139") (define-public linux-libre-5.10-version "5.10.141")
(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
@ -412,12 +397,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1981axxswghza3iadp94q54y8w30h9w9vyq4cbjiiv9alvbv0pb8"))) (base32 "1981axxswghza3iadp94q54y8w30h9w9vyq4cbjiiv9alvbv0pb8")))
(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 "1wdyk1w8lr5l4d038bd44rdndxjvfcva2n51h2i38jd4fp12l00w"))) (hash (base32 "1wqf38nasmyzan83r0268bxixr0fddxvkg760zp2x0wnby9zsyi4")))
(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.211") (define-public linux-libre-5.4-version "5.4.212")
(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
@ -427,12 +412,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1vnjbdyssa7dwyjl9kg35alwvf7yh597cl74yr1wy2gk5bc9paw6"))) (base32 "1vnjbdyssa7dwyjl9kg35alwvf7yh597cl74yr1wy2gk5bc9paw6")))
(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 "1v1dgsk66fi6x6v9k6hg9ik3f3b3pv7a3gk8mybmgm9cnx0k5d5z"))) (hash (base32 "1hngr4hsrcd6hmlyvc3msy5racniav2jagp5abmp7xsxv0yjxiq9")))
(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.256") (define-public linux-libre-4.19-version "4.19.257")
(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
@ -442,12 +427,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im"))) (base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im")))
(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 "0jgm7ydha9achbcq3a6q85wq1nz4qg7phx122jzk0mqb1339bpk7"))) (hash (base32 "0izaldl2l2zsshkd07qsnr9x6ikipmj5jp7lxr8dyz7kf2m17pga")))
(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.291") (define-public linux-libre-4.14-version "4.14.292")
(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
@ -457,12 +442,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im"))) (base32 "00i91lx938nqlgy63hiricqd0fnbbf26vgya9c5lb7m1f4x324im")))
(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 "15h76l81zn733g8dc6gsymf52nz325plhminv3m4x3klwhav34zc"))) (hash (base32 "0zc97qy62dhc5xkjnvsfn4lpl4dgrj23hlxvxcr4cr8sj0hxzx3h")))
(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)))
(define-public linux-libre-4.9-version "4.9.326") (define-public linux-libre-4.9-version "4.9.327")
(define-public linux-libre-4.9-gnu-revision "gnu1") (define-public linux-libre-4.9-gnu-revision "gnu1")
(define deblob-scripts-4.9 (define deblob-scripts-4.9
(linux-libre-deblob-scripts (linux-libre-deblob-scripts
@ -472,7 +457,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0bib3641dbcqdkx3anna3caxnsg3nw9cnmhcklq0s93g3m57041h"))) (base32 "0bib3641dbcqdkx3anna3caxnsg3nw9cnmhcklq0s93g3m57041h")))
(define-public linux-libre-4.9-pristine-source (define-public linux-libre-4.9-pristine-source
(let ((version linux-libre-4.9-version) (let ((version linux-libre-4.9-version)
(hash (base32 "0yw83a8nk5abjsvqrz8m2sj699c228j2f2wr5q8m95vgqzfw5wrb"))) (hash (base32 "1lh63viynf9f7vl0a52mnal8jack9lbqfsfammwkxi3kafpw30r2")))
(make-linux-libre-source version (make-linux-libre-source version
(%upstream-linux-source version hash) (%upstream-linux-source version hash)
deblob-scripts-4.9))) deblob-scripts-4.9)))
@ -510,11 +495,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-5.18-source
(source-with-patches linux-libre-5.18-pristine-source
(list %boot-logo-patch
%linux-libre-arm-export-__sync_icache_dcache-patch)))
(define-public linux-libre-5.15-source (define-public linux-libre-5.15-source
(source-with-patches linux-libre-5.15-pristine-source (source-with-patches linux-libre-5.15-pristine-source
(list %boot-logo-patch (list %boot-logo-patch
@ -629,11 +609,6 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
linux-libre-5.19-gnu-revision linux-libre-5.19-gnu-revision
linux-libre-5.19-source)) linux-libre-5.19-source))
(define-public linux-libre-headers-5.18
(make-linux-libre-headers* linux-libre-5.18-version
linux-libre-5.18-gnu-revision
linux-libre-5.18-source))
(define-public linux-libre-headers-5.15 (define-public linux-libre-headers-5.15
(make-linux-libre-headers* linux-libre-5.15-version (make-linux-libre-headers* linux-libre-5.15-version
linux-libre-5.15-gnu-revision linux-libre-5.15-gnu-revision
@ -877,8 +852,7 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
#$(and extra-version #$(and extra-version
(string-append "-" extra-version))) (string-append "-" extra-version)))
(let ((build (assoc-ref %standard-phases 'build)) (let ((config (assoc-ref inputs "kconfig")))
(config (assoc-ref inputs "kconfig")))
;; Use a custom kernel configuration file or a default ;; Use a custom kernel configuration file or a default
;; configuration file. ;; configuration file.
@ -957,18 +931,11 @@ It has been modified to remove all non-free binary blobs.")
'("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "riscv64-linux") '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "riscv64-linux")
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define-public linux-libre-5.18 (define-public linux-libre-version linux-libre-5.19-version)
(make-linux-libre* linux-libre-5.18-version (define-public linux-libre-gnu-revision linux-libre-5.19-gnu-revision)
linux-libre-5.18-gnu-revision (define-public linux-libre-pristine-source linux-libre-5.19-pristine-source)
linux-libre-5.18-source (define-public linux-libre-source linux-libre-5.19-source)
'("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux" "riscv64-linux") (define-public linux-libre linux-libre-5.19)
#:configuration-file kernel-config))
(define-public linux-libre-version linux-libre-5.18-version)
(define-public linux-libre-gnu-revision linux-libre-5.18-gnu-revision)
(define-public linux-libre-pristine-source linux-libre-5.18-pristine-source)
(define-public linux-libre-source linux-libre-5.18-source)
(define-public linux-libre linux-libre-5.18)
(define-public linux-libre-5.15 (define-public linux-libre-5.15
(make-linux-libre* linux-libre-5.15-version (make-linux-libre* linux-libre-5.15-version
@ -1193,9 +1160,9 @@ It has been modified to remove all non-free binary blobs.")
(define-public linux-libre-with-bpf (define-public linux-libre-with-bpf
(let ((base-linux-libre (let ((base-linux-libre
(make-linux-libre* (make-linux-libre*
linux-libre-5.18-version linux-libre-5.19-version
linux-libre-5.18-gnu-revision linux-libre-5.19-gnu-revision
linux-libre-5.18-source linux-libre-5.19-source
'("x86_64-linux" "i686-linux" "armhf-linux" '("x86_64-linux" "i686-linux" "armhf-linux"
"aarch64-linux" "riscv64-linux") "aarch64-linux" "riscv64-linux")
#:extra-version "bpf" #:extra-version "bpf"
@ -3061,7 +3028,7 @@ configuration and monitoring interfaces.")
(define-public iw (define-public iw
(package (package
(name "iw") (name "iw")
(version "4.14") (version "5.19")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -3069,7 +3036,7 @@ configuration and monitoring interfaces.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"12ddd6vh6vs97135bnlyr0szv7hvpbnmfh48584frzab0z0725ph")))) "0kjdrihc7ibnjdpjqkq8sv0kmmvavgsww78cpjgbnlyx8zlvnrzi"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (list pkg-config)) (native-inputs (list pkg-config))
(inputs (list libnl)) (inputs (list libnl))
@ -3581,14 +3548,14 @@ NUMA performance on your system.")
(define-public kbd (define-public kbd
(package (package
(name "kbd") (name "kbd")
(version "2.4.0") (version "2.5.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://kernel.org/linux/utils/kbd/kbd-" (uri (string-append "mirror://kernel.org/linux/utils/kbd/kbd-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"17wvrqz2kk0w87idinhyvd31ih1dp7ldfl2yfx7ailygb0279w2m")) "10s608i4blprgy9nynlid0hglfdrrgln6wwjs9rhjf56hwilbpyc"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(begin '(begin
@ -6355,31 +6322,30 @@ from that to the system kernel's @file{/dev/random} machinery.")
(source (package-source linux-libre)) (source (package-source linux-libre))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases (modify-phases %standard-phases (list #:make-flags
(add-after 'unpack 'enter-subdirectory #~(list (string-append "DESTDIR=" #$output)
(lambda _ (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib")
(chdir "tools/power/cpupower") "libdir=/lib"
#t)) "docdir=/share/doc/cpupower"
(delete 'configure) "confdir=$(docdir)/examples"
(add-before 'build 'fix-makefiles ;; The Makefile recommends the following changes
(lambda _ "DEBUG=false"
(substitute* "Makefile" "PACKAGE_BUGREPORT=bug-guix@gnu.org")
(("/usr/") "/") #:tests? #f ; no tests
(("/bin/(install|pwd)" _ command) command)) #:phases
(substitute* "bench/Makefile" #~(modify-phases %standard-phases
(("\\$\\(CC\\) -o") "$(CC) $(LDFLAGS) -o")) (add-after 'unpack 'enter-subdirectory
#t))) (lambda _
#:make-flags (let ((out (assoc-ref %outputs "out"))) (chdir "tools/power/cpupower")))
(list (string-append "DESTDIR=" out) (delete 'configure) ; no configure script
(string-append "LDFLAGS=-Wl,-rpath=" out "/lib") (add-before 'build 'fix-makefiles
"libdir=/lib" (lambda _
"docdir=/share/doc/cpupower" (substitute* "Makefile"
"confdir=$(docdir)/examples" (("/usr/") "/")
;; The Makefile recommends the following changes (("/bin/(install|pwd)" _ command) command))
"DEBUG=false" (substitute* "bench/Makefile"
"PACKAGE_BUGREPORT=bug-guix@gnu.org")) (("\\$\\(CC\\) -o") "$(CC) $(LDFLAGS) -o")))))))
#:tests? #f)) ;no tests (native-inputs (list gettext-minimal))
(native-inputs `(("gettext" ,gettext-minimal)))
(inputs (list pciutils)) (inputs (list pciutils))
(home-page (package-home-page linux-libre)) (home-page (package-home-page linux-libre))
(synopsis "CPU frequency and voltage scaling tools for Linux") (synopsis "CPU frequency and voltage scaling tools for Linux")
@ -6662,7 +6628,7 @@ the @code{mce-inject} module loaded if it exists.")
(define-public mcelog (define-public mcelog
(package (package
(name "mcelog") (name "mcelog")
(version "187") (version "188")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -6671,7 +6637,7 @@ the @code{mce-inject} module loaded if it exists.")
(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 "0zdlwbdqs4s72yrpz4irhp12c1wqzy8kmf4hxahk13dmafd6dbnj")) (base32 "1pdh0fj12wrm7whi96ak7m1f5b8ivgklabwkhfcfxd8dg134qczf"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
`(begin `(begin
@ -6680,16 +6646,18 @@ the @code{mce-inject} module loaded if it exists.")
(("\"unknown\"") (string-append "\"v" ,version "\""))))))) (("\"unknown\"") (string-append "\"v" ,version "\"")))))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases (list
(delete 'configure)) ; no configure script ;; The tests will only run as root on certain supported CPU models.
#:make-flags (let ((out (assoc-ref %outputs "out"))) #:tests? #f
(list (string-append "CC=" ,(cc-for-target)) #:make-flags
(string-append "prefix=" out) #~(list (string-append "CC=" #$(cc-for-target))
(string-append "DOCDIR=" out "/share/doc/" (string-append "prefix=" #$output)
,name "-" ,version) (string-append "DOCDIR=" #$output "/share/doc/"
"etcprefix=$(DOCDIR)/examples")) #$name "-" #$version)
;; The tests will only run as root on certain supported CPU models. "etcprefix=$(DOCDIR)/examples")
#:tests? #f)) #:phases
#~(modify-phases %standard-phases
(delete 'configure)))) ; no configure script
(native-inputs (native-inputs
(list python-wrapper)) ; to generate example mcelog.conf (list python-wrapper)) ; to generate example mcelog.conf
(supported-systems (list "i686-linux" "x86_64-linux")) (supported-systems (list "i686-linux" "x86_64-linux"))

View file

@ -9,6 +9,7 @@
;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; Copyright © 2021 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com> ;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
;;; Copyright © 2022 jgart <jgart@dismail.de> ;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; Copyright © 2022 André A. Gomes <andremegafone@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -63,6 +64,36 @@
(define-public ecl-1am (define-public ecl-1am
(sbcl-package->ecl-package sbcl-1am)) (sbcl-package->ecl-package sbcl-1am))
(define-public sbcl-2am
(let ((commit "1d2fd21bbd8f26ec91b962705cab098dd7b5f11c")
(revision "0"))
(package
(name "sbcl-2am")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.common-lisp.net/dkochmanski/2am")
(commit commit)))
(file-name (git-file-name "cl-2am" version))
(sha256
(base32 "0zgx4ymyzvfg44z36yr4l87cd9mprajd7sycr2zc67ab6330rynf"))))
(build-system asdf-build-system/sbcl)
(home-page "https://gitlab.common-lisp.net/dkochmanski/2am")
(synopsis "Small testing framework based on 1am")
(description
"This is a small testing framework for Common Lisp. The entire API
consists of: @code{test}, @code{is}, @code{signals}, @code{finishes},
@code{run}, @code{suite} and @code{setf suite}.")
(license license:expat))))
(define-public cl-2am
(sbcl-package->cl-source-package sbcl-2am))
(define-public ecl-2am
(sbcl-package->ecl-package sbcl-2am))
(define-public sbcl-check-it (define-public sbcl-check-it
(let ((commit "b79c9103665be3976915b56b570038f03486e62f")) (let ((commit "b79c9103665be3976915b56b570038f03486e62f"))
(package (package
@ -542,32 +573,29 @@ testing. It is an extension of the library written by Chris Riesbeck.")
(define-public sbcl-lisp-unit2 (define-public sbcl-lisp-unit2
;; There is a cyclical dependency between symbol-munger and lisp-unit2. ;; There is a cyclical dependency between symbol-munger and lisp-unit2.
;; See https://github.com/AccelerationNet/symbol-munger/issues/4 ;; See https://github.com/AccelerationNet/symbol-munger/issues/4
(let ((commit "fb9721524d1e4e73abb223ee036d74ce14a5505c") (package
(revision "1")) (name "sbcl-lisp-unit2")
(package (version "0.9.3")
(name "sbcl-lisp-unit2") (source
(version (git-version "0.2.0" revision commit)) (origin
(source (method git-fetch)
(origin (uri (git-reference
(method git-fetch) (url "https://github.com/AccelerationNet/lisp-unit2")
(uri (git-reference (commit version)))
(url "https://github.com/AccelerationNet/lisp-unit2") (file-name (git-file-name "cl-lisp-unit2" version))
(commit commit))) (sha256
(file-name (git-file-name name version)) (base32 "0y7k6fd4mf7ggc8kdrbg8flkj5j7i7ki1350wnj6hqax7cmh4xv5"))))
(sha256 (build-system asdf-build-system/sbcl)
(base32 (inputs
"1rsqy8y0jqll6xn9a593848f5wvd5ribv4csry1ly0hmdhfnqzlp")))) (list sbcl-alexandria sbcl-cl-interpol sbcl-iterate
(build-system asdf-build-system/sbcl) sbcl-symbol-munger))
(inputs (synopsis "Test Framework for Common Lisp")
(list sbcl-alexandria sbcl-cl-interpol sbcl-iterate (description
sbcl-symbol-munger)) "LISP-UNIT2 is a Common Lisp library that supports unit testing in the
(synopsis "Test Framework for Common Lisp")
(description
"LISP-UNIT2 is a Common Lisp library that supports unit testing in the
style of JUnit for Java. It is a new version of the lisp-unit library written style of JUnit for Java. It is a new version of the lisp-unit library written
by Chris Riesbeck.") by Chris Riesbeck.")
(home-page "https://github.com/AccelerationNet/lisp-unit2") (home-page "https://github.com/AccelerationNet/lisp-unit2")
(license license:expat)))) (license license:expat)))
(define-public cl-lisp-unit2 (define-public cl-lisp-unit2
(sbcl-package->cl-source-package sbcl-lisp-unit2)) (sbcl-package->cl-source-package sbcl-lisp-unit2))

View file

@ -148,6 +148,75 @@ portable between implementations.")
(define-public ecl-alexandria (define-public ecl-alexandria
(sbcl-package->ecl-package sbcl-alexandria)) (sbcl-package->ecl-package sbcl-alexandria))
(define-public sbcl-map-bind
(let ((commit "532d55d93540c632e22b2cd264b5daa5f9d3d900")
(revision "0"))
(package
(name "sbcl-map-bind")
(version (git-version "1.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Hexstream/map-bind")
(commit commit)))
(file-name (git-file-name "cl-map-bind" version))
(sha256
(base32 "0hfy65xyqc4zqfncn11pp3hjjkdz7m91cynnv91s3lgcl3kffva0"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-parachute))
(home-page "https://www.hexstreamsoft.com/libraries/map-bind/")
(synopsis "Macro favouring positional references over naming")
(description
"@code{MAP-BIND} is a macro that allows visual grouping of variables with
their corresponding values in calls to mapping operators when using an
inline @code{LAMBDA}.")
(license license:unlicense))))
(define-public cl-map-bind
(sbcl-package->cl-source-package sbcl-map-bind))
(define-public ecl-cl-map-bind
(sbcl-package->ecl-package sbcl-map-bind))
(define-public sbcl-positional-lambda
(let ((commit "a43a7bb4ef6faa277e6a7440ec9839711c4b9d28")
(revision "0"))
(package
(name "sbcl-positional-lambda")
(version (git-version "2.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Hexstream/positional-lambda")
(commit commit)))
(file-name (git-file-name "cl-positional-lambda" version))
(sha256
(base32 "1l27mw5ciqz7rnjq1lwslgk220i8iqcr39rs8b7hxkp1yqmah5zq"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-parachute))
(inputs
(list sbcl-map-bind))
(home-page "https://www.hexstreamsoft.com/libraries/positional-lambda/")
(synopsis "Macro favouring positional references over naming")
(description
"This package provides a concise, intuitive and flexible macro for
trivial lambdas that eschews explicit naming of parameter variables in favor
of positional references, with support for a used or ignored &rest parameter
and automatic declaration of ignored parameters when logical @code{gaps}
are left in the positional references. Further convenience features
are provided.")
(license license:unlicense))))
(define-public cl-positional-lambda
(sbcl-package->cl-source-package sbcl-positional-lambda))
(define-public ecl-cl-positional-lambda
(sbcl-package->ecl-package sbcl-positional-lambda))
(define-public sbcl-bodge-utilities (define-public sbcl-bodge-utilities
(let ((commit "6304bac4abe06d53579e2c0fc4437d14ff077d9f") (let ((commit "6304bac4abe06d53579e2c0fc4437d14ff077d9f")
(revision "1")) (revision "1"))
@ -217,6 +286,39 @@ implementation with no external dependencies.")
(define-public ecl-bodge-queue (define-public ecl-bodge-queue
(sbcl-package->ecl-package sbcl-bodge-queue)) (sbcl-package->ecl-package sbcl-bodge-queue))
(define-public sbcl-list-named-class
(let ((commit "2955791a7469131bcab42d800883f27993ee1d62")
(revision "0"))
(package
(name "sbcl-list-named-class")
(version (git-version "0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/phoe/list-named-class")
(commit commit)))
(file-name (git-file-name "cl-list-named-class" version))
(sha256
(base32 "1bdi9q9wvfj66jji3n9hpjrj9271ial2awsb0xw80bmy6wqbg8kq"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-1am))
(inputs
(list sbcl-alexandria sbcl-closer-mop))
(home-page "https://github.com/phoe/list-named-class/")
(synopsis "Name classes after lists of symbols")
(description
"This package makes it possible to name classes by lists of symbols
instead of symbols.")
(license license:expat))))
(define-public cl-list-named-class
(sbcl-package->cl-source-package sbcl-list-named-class))
(define-public ecl-list-named-class
(sbcl-package->ecl-package sbcl-list-named-class))
(define-public sbcl-golden-utils (define-public sbcl-golden-utils
(let ((commit "fe1898f9abbd302b0359f017637c063173cf73e1") (let ((commit "fe1898f9abbd302b0359f017637c063173cf73e1")
(revision "3")) (revision "3"))
@ -391,6 +493,45 @@ Features:
(define-public ecl-cl-irc (define-public ecl-cl-irc
(sbcl-package->ecl-package sbcl-cl-irc)) (sbcl-package->ecl-package sbcl-cl-irc))
(define-public sbcl-tripod
(let ((commit "bcea16610b4961a927e417e4413fffe686d71c83")
(revision "0"))
(package
(name "sbcl-tripod")
(version (git-version "0.0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/aartaka/tripod")
(commit commit)))
(file-name (git-file-name "cl-tripod" version))
(sha256
(base32 "07czbwzfqg8n1q4dsfmrdp2zmp90xgsg8q26hkrniyvkylq4nn1z"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-alexandria
sbcl-cl-gopher
sbcl-cl-markdown
sbcl-clss
sbcl-hunchentoot
sbcl-phos
sbcl-plump
sbcl-trivial-mimes))
(home-page "https://aartaka.me/blog/tripod")
(synopsis "Common Lisp web server aiming to ease website hosting")
(description
"Tripod is a Common Lisp web server aiming to ease plain text, HTML,
and Gopher website hosting.")
(license license:bsd-2))))
(define-public cl-tripod
(sbcl-package->cl-source-package sbcl-tripod))
(define-public ecl-tripod
(sbcl-package->ecl-package sbcl-tripod))
(define-public sbcl-trivial-timeout (define-public sbcl-trivial-timeout
(let ((commit "feb869357f40f5e109570fb40abad215fb370c6c") (let ((commit "feb869357f40f5e109570fb40abad215fb370c6c")
(revision "1")) (revision "1"))
@ -3437,7 +3578,7 @@ is a library for creating graphical user interfaces.")
(define-public sbcl-cl-webkit (define-public sbcl-cl-webkit
(package (package
(name "sbcl-cl-webkit") (name "sbcl-cl-webkit")
(version "3.5.3") (version "3.5.4")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -3447,7 +3588,7 @@ is a library for creating graphical user interfaces.")
(file-name (git-file-name "cl-webkit" version)) (file-name (git-file-name "cl-webkit" version))
(sha256 (sha256
(base32 (base32
"076lqj8ns9s7z980g3p2llw3k6hgsqnsvw8vjjslbpas2jzf26nr")))) "072c6m63w9q4nr3lsvavi2i71qyfgygdpyqy659l0n81n7mjy2cr"))))
(build-system asdf-build-system/sbcl) (build-system asdf-build-system/sbcl)
(inputs (inputs
`(("cffi" ,sbcl-cffi) `(("cffi" ,sbcl-cffi)
@ -3860,10 +4001,10 @@ client and server.")
(sbcl-package->cl-source-package sbcl-trivial-arguments)) (sbcl-package->cl-source-package sbcl-trivial-arguments))
(define-public sbcl-trivial-clipboard (define-public sbcl-trivial-clipboard
(let ((commit "8a580cb97196be7cf096548eb1f46794cd22bb39")) (let ((commit "13b53720306c0e6a13eccf4674d28ee5361127ae"))
(package (package
(name "sbcl-trivial-clipboard") (name "sbcl-trivial-clipboard")
(version (git-version "0.0.0.0" "4" commit)) (version (git-version "0.0.0.0" "5" commit))
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -3873,7 +4014,7 @@ client and server.")
(file-name (git-file-name "trivial-clipboard" version)) (file-name (git-file-name "trivial-clipboard" version))
(sha256 (sha256
(base32 (base32
"0apkgqrscylw3hhm5x2vs0z3hz6h7zd7dl5y3wr2zl8qjpvpc80k")))) "0l198m1gg2ixc43lqjq1ffd80s1sjxhqf1w83qqa1cn51rra2jp8"))))
(build-system asdf-build-system/sbcl) (build-system asdf-build-system/sbcl)
(inputs (inputs
;; Pick xsel instead of xclip because its closure size is slightly ;; Pick xsel instead of xclip because its closure size is slightly
@ -7823,17 +7964,16 @@ of function partial application and composition.")
(define-public sbcl-yason (define-public sbcl-yason
(package (package
(name "sbcl-yason") (name "sbcl-yason")
(version "0.7.7") (version "0.8.4")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/phmarek/yason") (url "https://github.com/phmarek/yason")
(commit (string-append "v" version)))) (commit (string-append "v" version))))
(file-name (git-file-name name version)) (file-name (git-file-name "cl-yason" version))
(sha256 (sha256
(base32 (base32 "0d22sw7nf2ygqm56ilybg7bza63cv43pc4184r8rvsjz2in37n51"))))
"0479rbjgbj80jpk5bby18inlv1kfp771a82rlcq5psrz65qqa9bj"))))
(build-system asdf-build-system/sbcl) (build-system asdf-build-system/sbcl)
(inputs (inputs
(list sbcl-alexandria sbcl-trivial-gray-streams)) (list sbcl-alexandria sbcl-trivial-gray-streams))
@ -12194,7 +12334,9 @@ functions.")
sbcl-zpb-ttf)) sbcl-zpb-ttf))
(arguments (arguments
'(#:asd-systems '("mcclim" '(#:asd-systems '("mcclim"
"clim-examples") "clim-examples"
;; clim-debugger is required by cleavir.
"clim-debugger")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'fix-paths (add-after 'unpack 'fix-paths
@ -12226,7 +12368,14 @@ specification}, a toolkit for writing GUIs in Common Lisp.")
(sbcl-package->cl-source-package sbcl-mcclim)) (sbcl-package->cl-source-package sbcl-mcclim))
(define-public ecl-mcclim (define-public ecl-mcclim
(sbcl-package->ecl-package sbcl-mcclim)) (let ((pkg (sbcl-package->ecl-package sbcl-mcclim)))
(package
(inherit pkg)
(arguments
(substitute-keyword-arguments (package-arguments pkg)
;; Tests fail with "FUNCTION: Not a valid argument (R1
;; (GENERATE-REGION))." on ECL.
((#:tests? _ #f) #f))))))
(define-public sbcl-cl-inflector (define-public sbcl-cl-inflector
(let ((commit "f1ab16919ccce3bd82a0042677d9616dde2034fe") (let ((commit "f1ab16919ccce3bd82a0042677d9616dde2034fe")
@ -14651,10 +14800,10 @@ source files.")
(sbcl-package->cl-source-package sbcl-cl-indentify)) (sbcl-package->cl-source-package sbcl-cl-indentify))
(define-public sbcl-concrete-syntax-tree (define-public sbcl-concrete-syntax-tree
(let ((commit "abd242a59dadc5452aa9dbc1d313c83ec2c11f46")) (let ((commit "4f01430c34f163356f3a2cfbf0a8a6963ff0e5ac"))
(package (package
(name "sbcl-concrete-syntax-tree") (name "sbcl-concrete-syntax-tree")
(version (git-version "0.0.0" "1" commit)) (version (git-version "0.0.0" "2" commit))
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -14663,10 +14812,14 @@ source files.")
(commit commit))) (commit commit)))
(file-name (git-file-name name commit)) (file-name (git-file-name name commit))
(sha256 (sha256
(base32 "1lyrglc3h1if44gxd9cwv90wa90nrdjvb7fry39b1xn8ywdfa7di")))) (base32 "169ibaz1vv7pphib28443zzk3hf1mrcarhzfm8hnbdbk529cnxyi"))))
(build-system asdf-build-system/sbcl) (build-system asdf-build-system/sbcl)
(inputs (inputs
(list sbcl-acclimation)) (list sbcl-acclimation))
(arguments
'(#:asd-systems '("concrete-syntax-tree"
"concrete-syntax-tree-destructuring"
"concrete-syntax-tree-source-info")))
(home-page "https://github.com/s-expressionists/Concrete-Syntax-Tree") (home-page "https://github.com/s-expressionists/Concrete-Syntax-Tree")
(synopsis "Parse Common Lisp code into a concrete syntax tree") (synopsis "Parse Common Lisp code into a concrete syntax tree")
(description (description
@ -18463,6 +18616,51 @@ RSS feeds data via HTTP. Currently, it supports RSS versions 0.90,
(define-public cl-rss (define-public cl-rss
(sbcl-package->cl-source-package sbcl-rss)) (sbcl-package->cl-source-package sbcl-rss))
(define-public sbcl-binascii
(let ((commit "0fb0a9e5773148fd04d50efef08c1cc10f6fc487")
(revision "1"))
(package
(name "sbcl-binascii")
(version (git-version "1.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sharplispers/binascii")
(commit commit)))
(file-name (git-file-name "cl-binascii" version))
(sha256
(base32 "000rcdl8qshr7n48zq9bzrc4lkjx4ylb3r3w9x9syhiwfla9j4b7"))
(modules '((guix build utils)))
(snippet
;; Unbundle the RT test framework.
'(begin
(delete-file "tests/rt.lisp")
(substitute* "binascii.asd"
((":depends-on \\(binascii\\)")
":depends-on (binascii rt)")
(("\\(:file \"rt\"\\)")
"")
(("\\(:file \"tests\" :depends-on \\(\"rt\"\\)\\)")
"(:file \"tests\")"))))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-rt))
(home-page "https://github.com/sharplispers/binascii")
(synopsis "Common Lisp library of ASCII encoding schemes for binary data")
(description
"@code{binascii} is a Common Lisp library for converting binary data
to ASCII text of some kind. Such conversions are common in email protocols
(for encoding attachments to support old non-8-bit clean transports) or
encoding binary data in HTTP and XML applications. @code{binascii} supports
the encodings described in RFC 4648: base64, base32, base16, and variants.
It also supports base85, used in Adobe's PostScript and PDF document formats,
and a variant called ascii85, used by git for binary diff files.")
(license license:bsd-3))))
(define-public cl-binascii
(sbcl-package->cl-source-package sbcl-binascii))
(define-public sbcl-trivial-with-current-source-form (define-public sbcl-trivial-with-current-source-form
(let ((commit "9e343e043a77a5478c1f77bb626db22335fbbfb8") (let ((commit "9e343e043a77a5478c1f77bb626db22335fbbfb8")
(revision "1")) (revision "1"))
@ -22244,6 +22442,10 @@ place outside with-notes.
(sha256 (sha256
(base32 "05smc81ml9rbcbzdhqg2mi9drnjsipq62r5q7f7qql8hbx01vl9i")))) (base32 "05smc81ml9rbcbzdhqg2mi9drnjsipq62r5q7f7qql8hbx01vl9i"))))
(build-system asdf-build-system/sbcl) (build-system asdf-build-system/sbcl)
(inputs
(list sbcl-alexandria))
(arguments
'(#:asd-systems '("ctype" "ctype-tfun")))
(home-page "https://github.com/s-expressionists/ctype") (home-page "https://github.com/s-expressionists/ctype")
(synopsis "Common Lisp type system implementation ") (synopsis "Common Lisp type system implementation ")
(description (description
@ -22489,6 +22691,32 @@ can be useful for games, 3D, and GL in general.")
(define-public ecl-mathkit (define-public ecl-mathkit
(sbcl-package->ecl-package sbcl-mathkit)) (sbcl-package->ecl-package sbcl-mathkit))
(define-public sbcl-rucksack
(let ((commit "89278f88513ef328d290aa8b2baa06d63b44a9b1")
(revision "0"))
(package
(name "sbcl-rucksack")
(version (git-version "0.1.20" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/arieltan/rucksack")
(commit commit)))
(file-name (git-file-name "cl-rucksack" version))
(sha256
(base32 "0acpsxaxpp90km7gdbn9sysilycp3yg1g040fg1vqakpj2yb8vad"))))
(build-system asdf-build-system/sbcl)
(synopsis "Flexible, light weight, persistence library")
(description
"@code{cl-rucksack} is a persistence library based on Arthur Lemmens'
Rucksack with some enhancements.")
(home-page "https://github.com/arieltan/rucksack/")
(license license:expat))))
(define-public cl-rucksack
(sbcl-package->cl-source-package sbcl-rucksack))
(define-public sbcl-sdl2kit (define-public sbcl-sdl2kit
(let ((commit "aae663224a10ece2b0c374aa5942a3f0bc1b3c2f")) (let ((commit "aae663224a10ece2b0c374aa5942a3f0bc1b3c2f"))
(package (package
@ -22629,6 +22857,39 @@ objects.")
(define-public ecl-cl-geometry (define-public ecl-cl-geometry
(sbcl-package->ecl-package sbcl-cl-geometry)) (sbcl-package->ecl-package sbcl-cl-geometry))
(define-public sbcl-amb
(let ((commit "884bef69a1ea02f3b9deae0341e1a038ff31b896")
(revision "0"))
(package
(name "sbcl-amb")
(version (git-version "1.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/phoe/amb")
(commit commit)))
(file-name (git-file-name "cl-amb" version))
(sha256
(base32 "1klh1aakklj1famrff0sccnwlv8238b1q446288aqnqgxxw6pf21"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-alexandria))
(native-inputs
(list sbcl-parachute))
(synopsis "Implementation of John McCarthy's ambiguous operator")
(description
"@code{cl-amb} provides an implementation of John McCarthy's ambiguous
operator in portable Common Lisp.")
(home-page "https://github.com/phoe/amb/")
(license license:expat))))
(define-public cl-amb
(sbcl-package->cl-source-package sbcl-amb))
(define-public ecl-amb
(sbcl-package->ecl-package sbcl-amb))
(define-public sbcl-sketch (define-public sbcl-sketch
;; No release in years. ;; No release in years.
(let ((commit "4cc00b08e202c7adda41391463096cf9df1705c3")) (let ((commit "4cc00b08e202c7adda41391463096cf9df1705c3"))
@ -22674,6 +22935,37 @@ the Processing language and shares some of the API.")
(define-public ecl-sketch (define-public ecl-sketch
(sbcl-package->ecl-package sbcl-sketch)) (sbcl-package->ecl-package sbcl-sketch))
(define-public sbcl-cl-cron
(let ((commit "092aef5d5666fb43c04258e4043f609670a20456")
(revision "0"))
(package
(name "sbcl-cl-cron")
(version (git-version "0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ciel-lang/cl-cron")
(commit commit)))
(file-name (git-file-name "cl-cron" version))
(sha256
(base32 "0y4li8j2h1nbpldpqm39ld9kgs4a7biy94h49n27l59l7mn1jd0d"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-bordeaux-threads))
(home-page "https://github.com/ciel-lang/cl-cron/")
(synopsis "Run cron like jobs in Common Lisp")
(description
"@code{cl-cron} is a simple tool that provides cron like facilities
directly inside of Common Lisp.")
(license license:gpl3+))))
(define-public cl-cron
(sbcl-package->cl-source-package sbcl-cl-cron))
(define-public ecl-cl-cron
(sbcl-package->ecl-package sbcl-cl-cron))
(define-public sbcl-string-pokemonize (define-public sbcl-string-pokemonize
(let ((commit "2dc01643defb497e4d1eb833def71dfc1e8d5da6") (let ((commit "2dc01643defb497e4d1eb833def71dfc1e8d5da6")
(revision "0")) (revision "0"))
@ -22802,6 +23094,43 @@ internbombing, excessive input and macro characters.")
(define-public ecl-safe-read (define-public ecl-safe-read
(sbcl-package->ecl-package sbcl-safe-read)) (sbcl-package->ecl-package sbcl-safe-read))
(define-public sbcl-portable-condition-system
(let ((commit "1307ec146d227a9d8ea42312c1ba2a5206a9eb3c")
(revision "0"))
(package
(name "sbcl-portable-condition-system")
(version (git-version "1.1.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/phoe/portable-condition-system")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "099lb9f4bavj95wik99wla5rf6fk1gdw9pvn0cqlaf0wf20csd3h"))))
(build-system asdf-build-system/sbcl)
(arguments
'(#:asd-systems '("portable-condition-system")))
(native-inputs
(list sbcl-1am))
(inputs
(list sbcl-alexandria
sbcl-split-sequence))
(home-page "https://github.com/phoe/portable-condition-system")
(synopsis "Portable condition system for Common Lisp")
(description
"This package provides an example implementation of the Common Lisp
condition system and library, based on the original condition system
implementation by Kent M. Pitman.")
(license license:cc0))))
(define-public cl-portable-condition-system
(sbcl-package->cl-source-package sbcl-portable-condition-system))
(define-public ecl-portable-condition-system
(sbcl-package->ecl-package sbcl-portable-condition-system))
(define-public sbcl-ospm (define-public sbcl-ospm
(package (package
(name "sbcl-ospm") (name "sbcl-ospm")
@ -22852,6 +23181,41 @@ It has extensive support for Guix, among others:
(cons (list "osicat" cl-osicat) (cons (list "osicat" cl-osicat)
(package-inputs pkg)))))) (package-inputs pkg))))))
(define-public sbcl-data-lens
(let ((commit "801bc1e0331f19fdc38be314c86ccac9362fde78")
(revision "0"))
(package
(name "sbcl-data-lens")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/fiddlerwoaroof/data-lens")
(commit commit)))
(file-name (git-file-name "cl-data-lens" version))
(sha256
(base32 "1w4rvhcnss037q0bb1j70kdlhfh9085hy95d9q56sk519alhzhrp"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-fiveam))
(inputs
(list sbcl-cl-ppcre
sbcl-alexandria
sbcl-serapeum))
(synopsis "Functional utilities for Common Lisp")
(description
"The @code{cl-data-lens} library provides a language for expressing data
manipulations as the composition of more primitive operations.")
(home-page "https://fiddlerwoaroof.github.io/data-lens/")
(license license:asl2.0))))
(define-public cl-data-lens
(sbcl-package->cl-source-package sbcl-data-lens))
(define-public ecl-data-lens
(sbcl-package->ecl-package sbcl-data-lens))
(define-public sbcl-ndebug (define-public sbcl-ndebug
(package (package
(name "sbcl-ndebug") (name "sbcl-ndebug")
@ -22889,3 +23253,36 @@ especially in a multi-threaded context.")
(define-public ecl-ndebug (define-public ecl-ndebug
(sbcl-package->ecl-package sbcl-ndebug)) (sbcl-package->ecl-package sbcl-ndebug))
(define-public sbcl-smug
(let ((commit "647a2428df297e1dd183ba7c19574bdb1320ae79")
(revision "0"))
(package
(name "sbcl-smug")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/drewc/smug")
(commit commit)))
(file-name (git-file-name "cl-smug" version))
(sha256
(base32 "13gzkj9skya2ziwclk041v7sif392ydbvhvikhg2raa3qjcxb3rq"))))
(build-system asdf-build-system/sbcl)
(arguments
`(#:tests? #f)) ; There are no tests.
(synopsis "Parser combinators for Common Lisp")
(description
"@code{cl-smug} is a library for parsing text, based on monadic parser
combinators. Using a simple technique from the functional programming
camp, @code{cl-smug} makes it simple to create quick extensible recursive
descent parsers without funky syntax or impenetrable macrology.")
(home-page "http://smug.drewc.ca/")
(license license:expat))))
(define-public cl-smug
(sbcl-package->cl-source-package sbcl-smug))
(define-public ecl-smug
(sbcl-package->ecl-package sbcl-smug))

View file

@ -21,6 +21,7 @@
;;; Copyright © 2021 Paul A. Patience <paul@apatience.com> ;;; Copyright © 2021 Paul A. Patience <paul@apatience.com>
;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com> ;;; Copyright © 2021 Charles Jackson <charles.b.jackson@protonmail.com>
;;; Copyright © 2021 jgart <jgart@dismail.de> ;;; Copyright © 2021 jgart <jgart@dismail.de>
;;; Copyright © 2022 Joeke de Graaf <joeke@posteo.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -59,7 +60,9 @@
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
#:use-module (gnu packages bdw-gc) #:use-module (gnu packages bdw-gc)
#:use-module (gnu packages check)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages dbm)
#:use-module (gnu packages ed) #:use-module (gnu packages ed)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
@ -80,6 +83,7 @@
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages readline) #:use-module (gnu packages readline)
#:use-module (gnu packages sdl) #:use-module (gnu packages sdl)
#:use-module (gnu packages tcl)
#:use-module (gnu packages tex) #:use-module (gnu packages tex)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
@ -1351,3 +1355,58 @@ and make for REPLs that start blazing fast.
"Buildapp is an application for SBCL or CCL that configures and saves an "Buildapp is an application for SBCL or CCL that configures and saves an
executable Common Lisp image. It is similar to cl-launch and hu.dwim.build.") executable Common Lisp image. It is similar to cl-launch and hu.dwim.build.")
(license license:bsd-2))) (license license:bsd-2)))
(define-public eisl
(package
(name "eisl")
(version "2.62")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sasagawa888/eisl")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0yqzj64h9z4dlf2jz5chy6l6lggd4scgsd06crvfi9h1j1cxjvgi"))))
(build-system gnu-build-system)
(inputs
(list bash-minimal freeglut gdbm libiconv ncurses tcl tk))
(native-inputs
(list cppcheck))
(arguments
(list #:make-flags
#~(list (string-append "PREFIX=" #$output)
(string-append "CC=" #$(cc-for-target)))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "library/compiler.lsp"
(("\"cc ")
"\"gcc "))
(substitute* "library/tcltk.lsp"
(("c-include \"<tcl/tcl\\.h>\"")
"c-include \"<tcl.h>\"")
(("c-option \"-ltcl -ltk\" linux")
"c-option \"-ltcl8.6 -ltk8.6\" linux"))))
(delete 'configure)
(add-after 'install 'wrap
(lambda* (#:key inputs #:allow-other-keys)
(wrap-program (string-append #$output "/bin/eisl")
`("PATH" prefix
,(map (lambda (bin)
(string-append (assoc-ref inputs bin) "/bin"))
'("binutils" "coreutils" "gcc" "ld-wrapper")))
`("LIBRARY_PATH" suffix
,(map (lambda (lib)
(string-append (assoc-ref inputs lib) "/lib"))
'("libc")))))))))
(home-page "https://github.com/sasagawa888/eisl")
(synopsis "Implementation of ISLisp")
(description "Easy ISLISP (eisl) is an implementation of ISLisp which
includes a compiler as well as an interpreter.")
(license (list license:bsd-2 ;; documents/license.txt
license:expat ;; cii/LICENSE
license:gpl2+ ;; nana/gdb/test.c and others under nana/
license:bsd-3)))) ;; bench/*

View file

@ -21,7 +21,7 @@
;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2021 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2021 Lars-Dominik Braun <lars@6xq.net> ;;; Copyright © 2021 Lars-Dominik Braun <lars@6xq.net>
;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2021, 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Greg Hogan <code@greghogan.com> ;;; Copyright © 2022 Greg Hogan <code@greghogan.com>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2022 Clément Lassieur <clement@lassieur.org>
@ -2158,65 +2158,64 @@ LLVM."))))
(patches (search-patches "cling-use-shared-library.patch")))) (patches (search-patches "cling-use-shared-library.patch"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:build-type "Release" ;keep the build as lean as possible (list
#:tests? #f ;FIXME: 78 tests fail (out of ~200) #:build-type "Release" ;keep the build as lean as possible
#:test-target "check-cling" #:tests? #f ;FIXME: 78 tests fail (out of ~200)
#:configure-flags #:test-target "check-cling"
(list (string-append "-DCLING_CXX_PATH=" #:configure-flags
(assoc-ref %build-inputs "gcc") "/bin/g++") #~(list (string-append "-DCLING_CXX_PATH="
;; XXX: The AddLLVM.cmake module expects LLVM_EXTERNAL_LIT to (search-input-file %build-inputs "bin/g++"))
;; be a Python script, not a shell executable. ;; XXX: The AddLLVM.cmake module expects LLVM_EXTERNAL_LIT to
(string-append "-DLLVM_EXTERNAL_LIT=" ;; be a Python script, not a shell executable.
(assoc-ref %build-inputs "python-lit") (string-append "-DLLVM_EXTERNAL_LIT="
"/bin/.lit-real")) (search-input-file %build-inputs "bin/.lit-real")))
#:phases #:phases
(modify-phases %standard-phases #~(modify-phases %standard-phases
(add-after 'unpack 'set-version (add-after 'unpack 'set-version
(lambda _ (lambda _
(make-file-writable "VERSION") (make-file-writable "VERSION")
(call-with-output-file "VERSION" (call-with-output-file "VERSION"
(lambda (port) (lambda (port)
(format port "~a~%" ,version))))) (format port "~a~%" #$version)))))
(add-after 'unpack 'patch-paths (add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(substitute* "lib/Interpreter/CIFactory.cpp" (substitute* "lib/Interpreter/CIFactory.cpp"
(("\bsed\b") (("\bsed\b")
(which "sed")) (which "sed"))
;; This ensures that the default C++ library used by Cling is ;; This ensures that the default C++ library used by Cling is
;; that of the compiler that was used to build it, rather ;; that of the compiler that was used to build it, rather
;; than that of whatever g++ happens to be on PATH. ;; than that of whatever g++ happens to be on PATH.
(("ReadCompilerIncludePaths\\(CLING_CXX_RLTV") (("ReadCompilerIncludePaths\\(CLING_CXX_RLTV")
(string-append "ReadCompilerIncludePaths(\"" (format #f "ReadCompilerIncludePaths(~s"
(assoc-ref inputs "gcc") "/bin/g++\"")) (search-input-file inputs "bin/g++")))
;; Cling uses libclang's CompilerInvocation::GetResourcesPath ;; Cling uses libclang's CompilerInvocation::GetResourcesPath
;; to resolve Clang's library prefix, but this fails on Guix ;; to resolve Clang's library prefix, but this fails on Guix
;; because it is relative to the output of cling rather than ;; because it is relative to the output of cling rather than
;; clang (see: ;; clang (see:
;; https://github.com/root-project/cling/issues/434). Fully ;; https://github.com/root-project/cling/issues/434). Fully
;; shortcut the logic in this method to return the correct ;; shortcut the logic in this method to return the correct
;; static location. ;; static location.
(("static std::string getResourceDir.*" all) (("static std::string getResourceDir.*" all)
(string-append all (string-append all
" return std::string(\"" " return std::string(\""
(assoc-ref inputs "clang-cling") #$(this-package-input "clang-cling")
"/lib/clang/" ,(package-version clang-cling) "/lib/clang/" #$(package-version clang-cling)
"\");"))) "\");")))
;; Check for the 'lit' command for the tests, not 'lit.py' ;; Check for the 'lit' command for the tests, not 'lit.py'
;; (see: https://github.com/root-project/cling/issues/432). ;; (see: https://github.com/root-project/cling/issues/432).
(substitute* "CMakeLists.txt" (substitute* "CMakeLists.txt"
(("lit.py") (("lit.py")
"lit")))) "lit"))))
(add-after 'unpack 'adjust-lit.cfg (add-after 'unpack 'adjust-lit.cfg
;; See: https://github.com/root-project/cling/issues/435. ;; See: https://github.com/root-project/cling/issues/435.
(lambda _ (lambda _
(substitute* "test/lit.cfg" (substitute* "test/lit.cfg"
(("config.llvm_tools_dir \\+ '") (("config.llvm_tools_dir \\+ '")
"config.cling_obj_root + '/bin")))) "config.cling_obj_root + '/bin"))))
(add-after 'install 'delete-static-libraries (add-after 'install 'delete-static-libraries
;; This reduces the size from 17 MiB to 5.4 MiB. ;; This reduces the size from 17 MiB to 5.4 MiB.
(lambda* (#:key outputs #:allow-other-keys) (lambda _
(let ((out (assoc-ref outputs "out"))) (for-each delete-file (find-files #$output "\\.a$")))))))
(for-each delete-file (find-files out "\\.a$"))))))))
(native-inputs (native-inputs
(list python python-lit)) (list python python-lit))
(inputs (inputs

View file

@ -49,6 +49,7 @@
;;; Copyright © 2022 Thiago Jung Bauermann <bauermann@kolabnow.com> ;;; Copyright © 2022 Thiago Jung Bauermann <bauermann@kolabnow.com>
;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2022 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2022 muradm <mail@muradm.net> ;;; Copyright © 2022 muradm <mail@muradm.net>
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -125,6 +126,7 @@
#:use-module (gnu packages lua) #:use-module (gnu packages lua)
#:use-module (gnu packages m4) #:use-module (gnu packages m4)
#:use-module (gnu packages man) #:use-module (gnu packages man)
#:use-module (gnu packages mercury)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages nettle) #:use-module (gnu packages nettle)
#:use-module (gnu packages networking) #:use-module (gnu packages networking)
@ -1507,6 +1509,77 @@ and search library.")
(synopsis "Pythonic bindings for the notmuch mail database using CFFI") (synopsis "Pythonic bindings for the notmuch mail database using CFFI")
(license license:gpl3+))) (license license:gpl3+)))
(define-public bower
(package
(name "bower")
(version "1.0")
(home-page "https://github.com/wangp/bower")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0vcsbxlsvr2wv3c7sfr3yj21kbqy259skpxg00vf5bdkbc8qknq4"))))
(build-system gnu-build-system)
(arguments
(list
#:make-flags #~(list "bower" "man"
(string-append "CC=" #+(cc-for-target))
(string-append "prefix=" #$output))
#:parallel-tests? #f ;parallelism breaks test suite
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'patch-executables
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/detect_mime_type.m"
(("\"file\"")
(format #f "~s" (search-input-file inputs "bin/file"))))
(substitute* "src/compose.m"
(("\"base64\"")
(format #f "~s" (search-input-file inputs "bin/base64"))))
(substitute* "src/prog_config.m"
(("shell_quoted\\(\"false\")")
(format #f "shell_quoted(~s)"
(search-input-file inputs "bin/false")))
(("shell_quoted\\(\"notmuch\")")
(format #f "shell_quoted(~s)"
(search-input-file inputs "bin/notmuch")))
(("/usr/bin/sendmail")
(search-input-file inputs "/sbin/sendmail")))))
(replace 'check
(lambda* (#:key parallel-tests? tests? #:allow-other-keys)
(when tests?
(invoke "make" "-C" "tests"
"-j" (if parallel-tests?
(number->string (parallel-job-count))
"1")))))
(replace 'install
(lambda* _
(install-file "bower" (string-append #$output "/bin"))
(install-file "bower.1" (string-append #$output
"/share/man/man1")))))))
(native-inputs
(list diffutils
gawk
mercury
pandoc
util-linux))
(inputs
(list coreutils
gpgme
ncurses
notmuch
sendmail))
(synopsis "Terminal client for the Notmuch email system")
(description "@code{bower} is a curses front-end for the Notmuch email
system, written in the Mercury language.")
(license license:gpl3+)
(properties `((cpe-name . "bower-cpe-refers-to-a-different-bower")))))
(define-public muchsync (define-public muchsync
(package (package
(name "muchsync") (name "muchsync")

View file

@ -104,7 +104,6 @@
#:use-module (gnu packages man) #:use-module (gnu packages man)
#:use-module (gnu packages markup) #:use-module (gnu packages markup)
#:use-module (gnu packages matrix) #:use-module (gnu packages matrix)
#:use-module (gnu packages mono)
#:use-module (gnu packages mpd) #:use-module (gnu packages mpd)
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages networking) #:use-module (gnu packages networking)
@ -999,7 +998,6 @@ authentication.")
("libxslt" ,libxslt) ("libxslt" ,libxslt)
;; ("libzephyr" ,libzephyr) ;; ("libzephyr" ,libzephyr)
("meanwhile" ,meanwhile) ("meanwhile" ,meanwhile)
("mono" ,mono)
("ncurses" ,ncurses) ("ncurses" ,ncurses)
("network-manager" ,network-manager) ("network-manager" ,network-manager)
("nspr" ,nspr) ("nspr" ,nspr)
@ -1024,7 +1022,6 @@ authentication.")
"--disable-gtkspell" "--disable-gtkspell"
"--disable-gevolution" "--disable-gevolution"
"--enable-cap" "--enable-cap"
"--enable-mono"
"--enable-cyrus-sasl" "--enable-cyrus-sasl"
(string-append "--with-ncurses-headers=" (string-append "--with-ncurses-headers="
(assoc-ref %build-inputs "ncurses") (assoc-ref %build-inputs "ncurses")

View file

@ -167,7 +167,7 @@ etc. via a Web interface. Features include:
(define-public zabbix-agentd (define-public zabbix-agentd
(package (package
(name "zabbix-agentd") (name "zabbix-agentd")
(version "6.0.5") (version "6.0.8")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -175,7 +175,7 @@ etc. via a Web interface. Features include:
"https://cdn.zabbix.com/zabbix/sources/stable/" "https://cdn.zabbix.com/zabbix/sources/stable/"
(version-major+minor version) "/zabbix-" version ".tar.gz")) (version-major+minor version) "/zabbix-" version ".tar.gz"))
(sha256 (sha256
(base32 "1hmx6dgsag84dpv867p12bkln141nypgkp6zhipxbnn5xxip1sry")) (base32 "0ijf5d0kl2wb6amlz3bqfh7xg4wy00n1prislhszclj01sn0gy1g"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
'(substitute* '("src/zabbix_proxy/proxy.c" '(substitute* '("src/zabbix_proxy/proxy.c"
@ -187,6 +187,8 @@ etc. via a Web interface. Features include:
(arguments (arguments
'(#:configure-flags '(#:configure-flags
'("--enable-agent" "--enable-ipv6" "--with-libpcre2"))) '("--enable-agent" "--enable-ipv6" "--with-libpcre2")))
(native-inputs
(list pkg-config))
(inputs (inputs
(list pcre2)) (list pcre2))
(home-page "https://www.zabbix.com/") (home-page "https://www.zabbix.com/")

View file

@ -1,175 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
;;;
;;; 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 mono)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages perl)
#:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages xml)
#:use-module (gnu packages)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu))
(define-public mono
(package
(name "mono")
(version "4.4.1.0")
(source (origin
(method url-fetch)
(uri (string-append
"http://download.mono-project.com/sources/mono/"
name "-" version
".tar.bz2"))
(sha256
(base32
"0jibyvyv2jy8dq5ij0j00iq3v74r0y90dcjc3dkspcfbnn37cphn"))
(patches (search-patches "mono-mdoc-timestamping.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
("glib" ,glib)
("libxslt" ,libxslt)
("perl" ,perl)
("python" ,python-2)))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-reproducible
(lambda _
(substitute* "mono/mini/Makefile.in"
(("build_date = [^;]*;")
"build_date = (void*) 0;"))
#t))
(add-after 'unpack 'set-env
(lambda _ ;;* (#:key inputs #:allow-other-keys)
;; all tests under mcs/class fail trying to access $HOME
(setenv "HOME" "/tmp")
;; ZIP files have "DOS time" which starts in Jan 1980.
(setenv "SOURCE_DATE_EPOCH" "315532800")
#t))
(add-after 'unpack 'fix-includes
(lambda _
;; makedev is in <sys/sysmacros.h> now. Include it.
(substitute* "mono/io-layer/processes.c"
(("#ifdef HAVE_SYS_MKDEV_H") "#if 1")
(("sys/mkdev.h") "sys/sysmacros.h"))
#t))
(add-after 'unpack 'patch-tests
(lambda _ ;;* (#:key inputs #:allow-other-keys)
(substitute* "mono/tests/Makefile.in"
;; does not build: no rule to make unhandled-exception-*
(("@test-unhandled-exception-2:" all)
(string-append all "#")))
(substitute* "mcs/tools/mono-symbolicate/Makefile"
;; does not build: Source file `Test/StackTraceDumper.cs'
;; could not be found
(("^check: test-local") "check:\ntest-local:")
(("^test-local: all") "disabled-test-local:"))
(substitute* "mono/unit-tests/Makefile.in"
;; test fails
(("^test-sgen-qsort.log:")
"disabled-test-sgen-qsort.log:\ntest-sgen-qsort.log:"))
;; tests fail, trying to access $HOME
(substitute* "mcs/class/Makefile"
(("^include ../build/rules.make" all)
(string-append
all
"\nrun-test-recursive:\n\t@echo skipping tests\n")))
;; tests fail, trying to access $HOME
(substitute* "mcs/class/Microsoft.Build.Tasks/Makefile"
(("^include ../../build/rules.make" all)
(string-append
all
"\nrun-test-recursive:\n\t@echo skipping tests\n")))
(substitute* '("mcs/tools/mono-shlib-cop/Makefile"
"mcs/tools/mdoc/Makefile")
(("^run-test-local:" all)
(string-append "#" all)))
(substitute* "mcs/tools/sqlmetal/Makefile"
(("^include ../../build/rules.make" all)
(string-append
"NO_TEST:=true\n"
all
"\nrun-test-lib:\n\t@echo skipping test\n"))))))
;; these 4 tests fail
#:make-flags `(,(string-append "PLATFORM_DISABLED_TESTS="
" appdomain-unload.exe"
" delegate2.exe"
" finally_guard.exe"
" remoting4.exe"))
;; running tests in parallel fails
#:parallel-tests? #f))
(synopsis "Compiler and libraries for the C# programming language")
(description "Mono is a compiler, vm, debugger and set of libraries for
C#, a C-style programming language from Microsoft that is very similar to
Java.")
(home-page "https://www.mono-project.com/")
(license license:x11)))
(define-public libgdiplus
(package
(name "libgdiplus")
(version "6.0.5")
(source
(origin
(method url-fetch)
(uri (string-append
"http://download.mono-project.com/sources/libgdiplus/libgdiplus-"
version
".tar.gz"))
(sha256
(base32
"1vr5l09i5i91n9qzky7ab9wwvgdidvrbw26y8llip0z4qdf4w7mq"))))
(build-system gnu-build-system)
(native-inputs
(list pkg-config))
(inputs
`(("glib" ,glib)
("cairo" ,cairo)
("fontconfig" ,fontconfig)
("libtiff" ,libtiff)
("libjpeg" ,libjpeg-turbo)
("libexif" ,libexif)
("libungif" ,libungif)))
(arguments
`(#:phases
(modify-phases %standard-phases
;; TODO: See with upstream why they fail.
;; https://github.com/mono/mono/issues/18934
(add-before 'configure 'remove-buggy-tests
(lambda _
(substitute* "tests/Makefile.in"
(("testicocodec\\$\\(EXEEXT\\) ") " ")
(("testfont\\$\\(EXEEXT\\) ") " "))
#t)))))
(home-page "https://www.mono-project.com/docs/gui/libgdiplus/")
(synopsis "Mono library that provides a GDI+-compatible API")
(description "Libgdiplus is the Mono library that provides a
GDI+-compatible API on non-Windows operating systems. The implementation uses
Cairo to do most of the heavy lifting.")
(license license:gpl3+)))

View file

@ -3621,7 +3621,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
(define-public opendht (define-public opendht
(package (package
(name "opendht") (name "opendht")
(version "2.4.9") (version "2.4.10")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -3630,7 +3630,7 @@ and targeted primarily for asynchronous processing of HTTP-requests.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"150yxlhn8ykhck7gr1i2bppbqpfyhk0cscn5z7vyn94y5fnqkxsb")))) "1kcc9vmi4swvahq2gikflgba9xfmix80dr9wa3v6xcj1ba2fjd6s"))))
(outputs '("out" "tools" "debug")) (outputs '("out" "tools" "debug"))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments

View file

@ -46,14 +46,14 @@
(define-public chrony (define-public chrony
(package (package
(name "chrony") (name "chrony")
(version "4.2") (version "4.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://download.tuxfamily.org/chrony/" (uri (string-append "https://download.tuxfamily.org/chrony/"
"chrony-" version ".tar.gz")) "chrony-" version ".tar.gz"))
(sha256 (sha256
(base32 "16nv90h73c99adh2bdrvlws1lhjsqfp6pfpnlprxd3ijbk8rygr7")))) (base32 "0148bgzymdigkjs66fihrqw98g1yf6vgy40nlajqkw35m24sh3cx"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:modules ((srfi srfi-26) `(#:modules ((srfi srfi-26)

View file

@ -8741,3 +8741,36 @@ SHA384, SHA512, Blake2b, Blake2s and RIPEMD160.")
(description "This package allows you to produce, from a set of (description "This package allows you to produce, from a set of
bibliography files in BibTeX format, a bibliography in HTML format.") bibliography files in BibTeX format, a bibliography in HTML format.")
(license license:gpl2))) (license license:gpl2)))
(define-public ocaml-guile
(package
(name "ocaml-guile")
(version "1.0")
(home-page "https://github.com/gopiandcode/guile-ocaml")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0yxdkrhrrbwvay5sn0p26rh3f11876k6kdharmpi4afxknml74ql"))))
(build-system dune-build-system)
(arguments
`(#:tests? #f)) ; no tests
(propagated-inputs
(list ocaml-sexplib
ocaml-ctypes
ocaml-stdio
ocaml-odoc))
(inputs (list guile-3.0 libffi))
(native-inputs
(list ocaml-odoc
pkg-config))
(synopsis "Bindings to GNU Guile Scheme for OCaml")
(description
"The OCaml guile library provides high-level OCaml bindings to GNU Guile
3.0, supporting easy interop between OCaml and GNU Guile Scheme.")
(license license:gpl3+)))

View file

@ -137,7 +137,7 @@ GUI based workflow. It is primarily used in the Orange framework.")
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(wrap-program (string-append out "/bin/orange-canvas") (wrap-program (string-append out "/bin/orange-canvas")
`("QT_PLUGIN_PATH" prefix `("QT_PLUGIN_PATH" prefix
,(list (string-append (assoc-ref inputs "qtsvg-5") ,(list (string-append (assoc-ref inputs "qtsvg")
"/lib/qt5/plugins/")))))))))) "/lib/qt5/plugins/"))))))))))
(native-inputs (native-inputs
(list python-cython)) (list python-cython))

View file

@ -726,16 +726,7 @@ GTK icon cache for instance.")))
module} command. The @command{guix module create} sub-command creates module} command. The @command{guix module create} sub-command creates
@dfn{environment modules}, allowing you to manipulate software environments @dfn{environment modules}, allowing you to manipulate software environments
with the @command{module} command commonly found on @acronym{HPC, with the @command{module} command commonly found on @acronym{HPC,
high-performance computing} clusters. high-performance computing} clusters.")
To use this extension, set the @env{GUIX_EXTENSIONS_PATH} environment
variable, along these lines:
@example
export GUIX_EXTENSIONS_PATH=\"$HOME/.guix-profile/share/guix/extensions\"
@end example
Replace @code{$HOME/.guix-profile} with the appropriate profile.")
(license license:gpl3+))) (license license:gpl3+)))
@ -1374,8 +1365,8 @@ environments.")
"0k9zkdyyzir3fvlbcfcqy17k28b51i20rpbjwlx2i1mwd2pw9cxc"))))))) "0k9zkdyyzir3fvlbcfcqy17k28b51i20rpbjwlx2i1mwd2pw9cxc")))))))
(define-public guix-build-coordinator (define-public guix-build-coordinator
(let ((commit "cc884efa7ee8a481cd3dae1b93d27454ac8dfcd2") (let ((commit "31b3ab65da2d9a02f0453d12a81816b25c8ad75d")
(revision "59")) (revision "60"))
(package (package
(name "guix-build-coordinator") (name "guix-build-coordinator")
(version (git-version "0" revision commit)) (version (git-version "0" revision commit))
@ -1386,7 +1377,7 @@ environments.")
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 (base32
"03yz8if282mvkgqn0pxlqj0h3nyjfag7a835v9s98nkqfbj1ixcl")) "1hh1qy3xqpani3zfbm3wi4zw7f8cnbfjk4q1z7ynailadlfrkblk"))
(file-name (string-append name "-" version "-checkout")))) (file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
@ -1621,6 +1612,7 @@ This package just includes the agent component.")))
(ice-9 rdelim) (ice-9 rdelim)
(guix build utils) (guix build utils)
(guix build gnu-build-system)) (guix build gnu-build-system))
#:parallel-tests? #f ;kernels.scm frequently breaks in parallel
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'install 'sed-kernel-json (add-after 'install 'sed-kernel-json

View file

@ -35,6 +35,7 @@
;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2021 David Dashyan <mail@davie.li> ;;; Copyright © 2021 David Dashyan <mail@davie.li>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -53,6 +54,7 @@
(define-module (gnu packages password-utils) (define-module (gnu packages password-utils)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system go) #:use-module (guix build-system go)
@ -72,6 +74,7 @@
#:use-module (gnu packages crypto) #:use-module (gnu packages crypto)
#:use-module (gnu packages cryptsetup) #:use-module (gnu packages cryptsetup)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages digest)
#:use-module (gnu packages docbook) #:use-module (gnu packages docbook)
#:use-module (gnu packages file) #:use-module (gnu packages file)
#:use-module (gnu packages freedesktop) #:use-module (gnu packages freedesktop)
@ -1112,27 +1115,41 @@ your online accounts makes it necessary.")
(define-public hashcat (define-public hashcat
(package (package
(name "hashcat") (name "hashcat")
(version "6.1.1") (version "6.2.5")
(source (source (origin
(origin (method url-fetch)
(method url-fetch) (uri (string-append "https://hashcat.net/files/hashcat-" version
(uri (string-append "https://hashcat.net/files/hashcat-" ".tar.gz"))
version ".tar.gz")) (sha256
(sha256 (base32
(base32 "0sc96xcsc20xd4fyby3i45nm9as3hl4nhk9snkvmk5l9mpbrjs3g"))
"104z63m7lqbb0sdrxhf9yi15l4a9zwf9m6zs9dbb3gf0nfxl1h9r")))) (modules '((guix build utils)))
(native-inputs ;; Delete bundled libraries.
(list opencl-headers)) (snippet
;; TODO: Unbundle LZMA-SDK as well
#~(for-each delete-file-recursively
'("deps/zlib" "deps/xxHash" "deps/OpenCL-Headers")))))
(inputs (list minizip opencl-headers xxhash zlib))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:tests? #f ;no tests (list #:tests? #f ;no tests
#:make-flags (list (string-append "PREFIX=" %output)) #:make-flags #~(list (string-append "PREFIX=" #$output)
#:phases (string-append "AR=" #$(ar-for-target))
(modify-phases %standard-phases (string-append "CC=" #$(cc-for-target))
(delete 'configure)))) (string-append "USE_SYSTEM_ZLIB=1")
(string-append "USE_SYSTEM_OPENCL=1")
(string-append "USE_SYSTEM_XXHASH=1"))
#:phases #~(modify-phases %standard-phases
(add-after 'unpack 'fix-reproducibility
(lambda _
(substitute* "src/Makefile"
(("\\$\\(shell date \\+%s\\)")
"0"))))
(delete 'configure))))
(home-page "https://hashcat.net/hashcat/") (home-page "https://hashcat.net/hashcat/")
(synopsis "Advanced password recovery utility") (synopsis "Advanced password recovery utility")
(description "Hashcat is an password recovery utility, supporting five (description
"Hashcat is an password recovery utility, supporting five
unique modes of attack for over 200 highly-optimized hashing algorithms. unique modes of attack for over 200 highly-optimized hashing algorithms.
Hashcat currently supports CPUs, GPUs, and other hardware accelerators on Hashcat currently supports CPUs, GPUs, and other hardware accelerators on
Linux, Windows, and macOS, and has facilities to help enable distributed Linux, Windows, and macOS, and has facilities to help enable distributed

View file

@ -0,0 +1,76 @@
From 3c838e6a0c3214d95bf02048cddccfd1b69a679f Mon Sep 17 00:00:00 2001
From: Philip McGrath <philip@philipmcgrath.com>
Date: Thu, 19 May 2022 13:41:56 -0400
Subject: [PATCH] patch s_process for "/bin/sh" on Guix
If:
1. The nonstandard but ubiquitous macro `_PATH_BSHELL` from
<paths.h> is defined; and
2. The path specified by `_PATH_BSHELL` exists;
then `s_process` will call `execl` with the file specified by
`_PATH_BSHELL` instead of "/bin/sh".
Checking that the path specified by `_PATH_BSHELL` exists safeguards
against obscure errors if attempting to use stand-alone executables
built by the patched Racket in non-Guix envoronments.
This patch does not change the behavior of `s_system`, which relies
on `system` from the C library.
---
c/prim5.c | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/c/prim5.c b/c/prim5.c
index 5a07893..bc2736c 100644
--- a/c/prim5.c
+++ b/c/prim5.c
@@ -23,6 +23,12 @@
#include <ctype.h>
#include <math.h>
+/* BEGIN PATCH for Guix */
+#ifndef WIN32
+# include <paths.h>
+#endif
+/* END PATCH for Guix */
+
/* locally defined functions */
static INT s_errno(void);
static iptr s_addr_in_heap(uptr x);
@@ -746,6 +752,17 @@ static ptr s_process(char *s, IBOOL stderrp) {
INT tofds[2], fromfds[2], errfds[2];
struct sigaction act, oint_act;
+ /* BEGIN PATCH for Guix */
+#if defined(_PATH_BSHELL)
+ struct stat guix_stat_buf;
+ char *guix_sh =
+ (0 == stat(_PATH_BSHELL, &guix_stat_buf))
+ ? _PATH_BSHELL
+ : "/bin/sh";
+#else /* _PATH_BSHELL */
+ char *guix_sh = "/bin/sh";
+#endif
+ /* END PATCH for Guix */
if (pipe(tofds)) S_error("process","cannot open pipes");
if (pipe(fromfds)) {
@@ -771,7 +788,9 @@ static ptr s_process(char *s, IBOOL stderrp) {
CLOSE(1); if (dup(fromfds[1]) != 1) _exit(1);
CLOSE(2); if (dup(stderrp ? errfds[1] : 1) != 2) _exit(1);
{INT i; for (i = 3; i < NOFILE; i++) (void)CLOSE(i);}
- execl("/bin/sh", "/bin/sh", "-c", s, NULL);
+ /* BEGIN PATCH for Guix */
+ execl(guix_sh, guix_sh, "-c", s, NULL);
+ /* END PATCH for Guix */
_exit(1) /* only if execl fails */;
/*NOTREACHED*/
} else {
base-commit: 9df56e7b25bc523663eac3da24be33afc5f76c84
--
2.32.0

View file

@ -1,15 +0,0 @@
--- mono-4.4.1/mcs/class/monodoc/Monodoc/storage/ZipStorage.cs.orig 2018-11-26 22:16:25.008879747 +0100
+++ mono-4.4.1/mcs/class/monodoc/Monodoc/storage/ZipStorage.cs 2018-11-26 22:21:53.969770985 +0100
@@ -74,6 +74,12 @@
id = GetNewCode ();
ZipEntry entry = new ZipEntry (id);
+ var SOURCE_DATE_EPOCH_string = Environment.GetEnvironmentVariable("SOURCE_DATE_EPOCH");
+ if (SOURCE_DATE_EPOCH_string != null)
+ {
+ var SOURCE_DATE_EPOCH = Convert.ToInt64(SOURCE_DATE_EPOCH_string);
+ entry.DateTime = new DateTime(SOURCE_DATE_EPOCH, DateTimeKind.Utc);
+ }
zipOutput.PutNextEntry (entry);
}

View file

@ -0,0 +1,126 @@
From fbe2094f56fb81c888076c781e90fb0abbc0cc07 Mon Sep 17 00:00:00 2001
From: Matthew Flatt <mflatt@racket-lang.org>
Date: Sat, 30 Jul 2022 07:06:55 -0600
Subject: [PATCH 1/2] CS makefiles: fix Unix-style install for cross
compilation
Closes #4377
(cherry picked from commit 053be470e7c5454cdf48e934f3254d2d916bbbc5)
---
racket/src/cs/c/build.zuo | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/racket/src/cs/c/build.zuo b/racket/src/cs/c/build.zuo
index 8d3950bb27..d8b74c509d 100644
--- a/racket/src/cs/c/build.zuo
+++ b/racket/src/cs/c/build.zuo
@@ -1016,10 +1016,9 @@
(define (setup)
(call-with-dest-racket
(lambda (bindir dest-racket)
- (define copytree-racket (and cross? (config-bootstrap-racket)))
+ (define copytree-racket (and cross? (hash-ref (config-bootstrap-racket) 'racket)))
(maybe-copytree config dest-racket copytree-racket at-dir)
- (run-raco-setup config dest-racket
- (and cross? (hash-ref (config-bootstrap-racket) 'racket))
+ (run-raco-setup config dest-racket copytree-racket
;; this can be redundant if it's also supplied via `SETUP_MACHINE_FLAGS`,
;; but redundant should be ok:
(list "-MCR" (~a (at-dir "compiled") ":")
--
2.32.0
From 85802f4d515e310e657928707800ad709a676e2a Mon Sep 17 00:00:00 2001
From: Matthew Flatt <mflatt@racket-lang.org>
Date: Mon, 15 Aug 2022 10:37:01 +0800
Subject: [PATCH 2/2] configure: adjust cross-build assumption for a pb build
Don't assume a cross build for a pb target on a platform that's only
supported via pb.
(cherry picked from commit 70e484e885637c495be5481983dae2207fdd67bb)
(Edited to remove unrelated tweak to comments in
"racket/src/expander/expand/require+provide.rkt".)
---
racket/src/cs/c/configure | 15 +++++++++++----
racket/src/cs/c/configure.ac | 15 +++++++++++----
2 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/racket/src/cs/c/configure b/racket/src/cs/c/configure
index 454d79e11a..7e0fa5600d 100755
--- a/racket/src/cs/c/configure
+++ b/racket/src/cs/c/configure
@@ -4679,6 +4679,11 @@ case "$MACH_HOST_CPU" in
;;
esac
+if test "${MACH}" = "" ; then
+ default_mach_was_empty=yes
+else
+ default_mach_was_empty=no
+fi
if test "${enable_mach}" != "" ; then
MACH="${enable_mach}"
@@ -4701,13 +4706,15 @@ elif test "$MACH" = "" -o "$MACH_OS" = "" ; then
exit 1
fi
-# For a pb build where Racket is supplied, force cross-build
-# mode on the assumption that the host is not a pb build
-# (because it should be created with default configure options)
+# For a pb build where Racket is supplied and MACH was not originally
+# empty, force cross-build mode on the assumption that the host is not
+# a pb build (because it should be created with default configure options)
if test "${enable_pb}" = "yes" ; then
if test "${enable_racket}" != "" ; then
if test "${enable_target}" = "" ; then
- enable_target="${MACH}"
+ if test "${default_mach_was_empty}" = "no" ; then
+ enable_target="${MACH}"
+ fi
fi
fi
fi
diff --git a/racket/src/cs/c/configure.ac b/racket/src/cs/c/configure.ac
index 5bce979c92..734c1e8feb 100644
--- a/racket/src/cs/c/configure.ac
+++ b/racket/src/cs/c/configure.ac
@@ -415,6 +415,11 @@ case "$MACH_HOST_CPU" in
;;
esac
+if test "${MACH}" = "" ; then
+ default_mach_was_empty=yes
+else
+ default_mach_was_empty=no
+fi
if test "${enable_mach}" != "" ; then
MACH="${enable_mach}"
@@ -437,13 +442,15 @@ elif test "$MACH" = "" -o "$MACH_OS" = "" ; then
exit 1
fi
-# For a pb build where Racket is supplied, force cross-build
-# mode on the assumption that the host is not a pb build
-# (because it should be created with default configure options)
+# For a pb build where Racket is supplied and MACH was not originally
+# empty, force cross-build mode on the assumption that the host is not
+# a pb build (because it should be created with default configure options)
if test "${enable_pb}" = "yes" ; then
if test "${enable_racket}" != "" ; then
if test "${enable_target}" = "" ; then
- enable_target="${MACH}"
+ if test "${default_mach_was_empty}" = "no" ; then
+ enable_target="${MACH}"
+ fi
fi
fi
fi
--
2.32.0

View file

@ -0,0 +1,36 @@
From 8b4d686a62fd66dedfc40ecdcf3698316993d614 Mon Sep 17 00:00:00 2001
From: Philip McGrath <philip@philipmcgrath.com>
Date: Sun, 17 Jul 2022 22:51:44 -0400
Subject: [PATCH] racket-index: set write permission when copying
`docindex.sqlite`
Fixes https://github.com/racket/racket/issues/4357
(cherry picked from commit 55b6cbdca1f36a4f37bab1519c1b658717d3cad2)
---
pkgs/racket-index/setup/scribble.rkt | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/pkgs/racket-index/setup/scribble.rkt b/pkgs/racket-index/setup/scribble.rkt
index 6694f0b793..e27a8fa348 100644
--- a/pkgs/racket-index/setup/scribble.rkt
+++ b/pkgs/racket-index/setup/scribble.rkt
@@ -252,7 +252,14 @@
(unless (file-exists? db-file)
(define-values (base name dir?) (split-path db-file))
(make-directory* base)
- (when copy-from (copy-file copy-from db-file))
+ (when copy-from
+ (copy-file copy-from db-file)
+ ;; we might not have write permissions for the previous layer:
+ ;; ensure that we do for the new file
+ (define orig-mode (file-or-directory-permissions db-file 'bits))
+ (define writeable-mode (bitwise-ior user-write-bit orig-mode))
+ (unless (= writeable-mode orig-mode)
+ (file-or-directory-permissions db-file writeable-mode)))
(doc-db-disconnect
(doc-db-file->connection db-file #t))))
(when (or (ormap can-build*? main-docs)
--
2.32.0

View file

@ -0,0 +1,609 @@
From f17b030fa2f902bb3666913d4a3cd6ba9c146d22 Mon Sep 17 00:00:00 2001
From: Philip McGrath <philip@philipmcgrath.com>
Date: Wed, 3 Aug 2022 03:13:03 -0400
Subject: [PATCH 1/3] Chez Scheme: Fix build on GNU/Hurd
Mostly GNU/Hurd should take the same options as GNU/Linux. One
difference is that the Hurd does not define macros such as `PATH_MAX` or
`NOFILE`, because it avoids imposing arbitrary limits on such resources.
This patch provides alternatives for localized uses of those constants,
but it accepts the pervasive use of `PATH_MAX` in finding bootfiles for
now. See https://www.gnu.org/software/hurd/hurd/porting/guidelines.html.
(cherry picked from commit 87eee6e2adb8c6bc11e60619c706fa6295096085)
---
racket/src/ChezScheme/README.md | 1 +
racket/src/ChezScheme/c/number.c | 22 +++++++++----------
racket/src/ChezScheme/c/prim5.c | 35 ++++++++++++++++++++++++++++--
racket/src/ChezScheme/c/scheme.c | 34 +++++++++++++++++------------
racket/src/ChezScheme/c/version.h | 7 ++++--
racket/src/ChezScheme/configure | 17 ++++++++++-----
racket/src/ChezScheme/s/cmacros.ss | 1 +
racket/src/cs/c/configure | 14 ++++++++++--
racket/src/cs/c/configure.ac | 14 ++++++++++--
racket/src/cs/rumble/system.ss | 3 +++
10 files changed, 109 insertions(+), 39 deletions(-)
diff --git a/racket/src/ChezScheme/README.md b/racket/src/ChezScheme/README.md
index a4a11a5eef..25231dd9bb 100644
--- a/racket/src/ChezScheme/README.md
+++ b/racket/src/ChezScheme/README.md
@@ -13,6 +13,7 @@ Supported platforms (bytecode interpreter may work for others):
* OpenBSD: x86, x86_64, ARMv6, AArch64, PowerPC32
* NetBSD: x86, x86_64, ARMv6, AArch64, PowerPC32
* Solaris: x86, x86_64
+ * GNU/Hurd: x86
* Android: ARMv7, AArch64
* iOS: AArch64
* WebAssembly via Emscripten (bytecode interpreter only)
diff --git a/racket/src/ChezScheme/c/number.c b/racket/src/ChezScheme/c/number.c
index ede38cc626..e2bce0d2d3 100644
--- a/racket/src/ChezScheme/c/number.c
+++ b/racket/src/ChezScheme/c/number.c
@@ -1041,15 +1041,15 @@ floating-point operations
#ifdef IEEE_DOUBLE
/* exponent stored + 1024, hidden bit to left of decimal point */
-#define bias 1023
-#define bitstoright 52
-#define m1mask 0xf
-#ifdef WIN32
-#define hidden_bit 0x10000000000000
-#else
-#define hidden_bit 0x10000000000000ULL
-#endif
-#ifdef LITTLE_ENDIAN_IEEE_DOUBLE
+# define bias 1023
+# define bitstoright 52
+# define m1mask 0xf
+# ifdef WIN32
+# define hidden_bit 0x10000000000000
+# else
+# define hidden_bit 0x10000000000000ULL
+# endif
+# ifdef LITTLE_ENDIAN_IEEE_DOUBLE
struct dblflt {
UINT m4: 16;
UINT m3: 16;
@@ -1058,7 +1058,7 @@ struct dblflt {
UINT e: 11;
UINT sign: 1;
};
-#else
+# else
struct dblflt {
UINT sign: 1;
UINT e: 11;
@@ -1067,7 +1067,7 @@ struct dblflt {
UINT m3: 16;
UINT m4: 16;
};
-#endif
+# endif
#endif
double S_random_double(U32 m1, U32 m2, U32 m3, U32 m4, double scale) {
diff --git a/racket/src/ChezScheme/c/prim5.c b/racket/src/ChezScheme/c/prim5.c
index 124d1e049c..82bbf8d687 100644
--- a/racket/src/ChezScheme/c/prim5.c
+++ b/racket/src/ChezScheme/c/prim5.c
@@ -23,6 +23,10 @@
#include <ctype.h>
#include <math.h>
+#if defined(__GNU__) /* Hurd */
+#include <sys/resource.h>
+#endif
+
/* locally defined functions */
static INT s_errno(void);
static IBOOL s_addr_in_heap(uptr x);
@@ -58,7 +62,7 @@ static void s_showalloc(IBOOL show_dump, const char *outfn);
static ptr s_system(const char *s);
static ptr s_process(char *s, IBOOL stderrp);
static I32 s_chdir(const char *inpath);
-#ifdef GETWD
+#if defined(GETWD) || defined(__GNU__) /* Hurd */
static char *s_getwd(void);
#endif
static ptr s_set_code_byte(ptr p, ptr n, ptr x);
@@ -881,7 +885,18 @@ static ptr s_process(char *s, IBOOL stderrp) {
CLOSE(0); if (dup(tofds[0]) != 0) _exit(1);
CLOSE(1); if (dup(fromfds[1]) != 1) _exit(1);
CLOSE(2); if (dup(stderrp ? errfds[1] : 1) != 2) _exit(1);
+#ifndef __GNU__ /* Hurd */
{INT i; for (i = 3; i < NOFILE; i++) (void)CLOSE(i);}
+#else /* __GNU__ Hurd: no NOFILE */
+ {
+ INT i;
+ struct rlimit rlim;
+ getrlimit(RLIMIT_NOFILE, &rlim);
+ for (i = 3; i < rlim.rlim_cur; i++) {
+ (void)CLOSE(i);
+ }
+ }
+#endif /* __GNU__ Hurd */
execl("/bin/sh", "/bin/sh", "-c", s, NULL);
_exit(1) /* only if execl fails */;
/*NOTREACHED*/
@@ -927,6 +942,22 @@ static I32 s_chdir(const char *inpath) {
static char *s_getwd() {
return GETWD(TO_VOIDP(&BVIT(S_bytevector(PATH_MAX), 0)));
}
+#elif defined(__GNU__) /* Hurd: no PATH_MAX */
+static char *s_getwd() {
+ char *path;
+ size_t len;
+ ptr bv;
+ path = getcwd(NULL, 0);
+ if (NULL == path) {
+ return NULL;
+ } else {
+ len = strlen(path);
+ bv = S_bytevector(len);
+ memcpy(TO_VOIDP(&BVIT(bv, 0)), path, len);
+ free(path);
+ return TO_VOIDP(&BVIT(bv, 0));
+ }
+}
#endif /* GETWD */
static ptr s_set_code_byte(ptr p, ptr n, ptr x) {
@@ -1817,7 +1848,7 @@ void S_prim5_init(void) {
Sforeign_symbol("(cs)s_rational", (void *)S_rational);
Sforeign_symbol("(cs)sub", (void *)S_sub);
Sforeign_symbol("(cs)rem", (void *)S_rem);
-#ifdef GETWD
+#if defined(GETWD) || defined(__GNU__) /* Hurd */
Sforeign_symbol("(cs)s_getwd", (void *)s_getwd);
#endif
Sforeign_symbol("(cs)s_chdir", (void *)s_chdir);
diff --git a/racket/src/ChezScheme/c/scheme.c b/racket/src/ChezScheme/c/scheme.c
index ed5564540b..0c40e3eaf0 100644
--- a/racket/src/ChezScheme/c/scheme.c
+++ b/racket/src/ChezScheme/c/scheme.c
@@ -458,6 +458,12 @@ static IBOOL next_path(char *path, const char *name, const char *ext, const char
static const char *path_last(const char *path);
static char *get_defaultheapdirs(void);
+#ifdef PATH_MAX
+# define BOOT_PATH_MAX PATH_MAX
+#else /* hack for Hurd: better to remove the restriction */
+# define BOOT_PATH_MAX 4096
+#endif
+
static const char *path_last(const char *p) {
const char *s;
#ifdef WIN32
@@ -483,7 +489,7 @@ static const char *path_last(const char *p) {
static char *get_defaultheapdirs() {
char *result;
- wchar_t buf[PATH_MAX];
+ wchar_t buf[BOOT_PATH_MAX];
DWORD len = sizeof(buf);
if (ERROR_SUCCESS != RegGetValueW(HKEY_LOCAL_MACHINE, L"Software\\Chez Scheme\\csv" VERSION, L"HeapSearchPath", RRF_RT_REG_SZ, NULL, buf, &len))
return DEFAULT_HEAP_PATH;
@@ -512,14 +518,14 @@ static char *get_defaultheapdirs() {
* leaving the full path with name affixed in path and *sp / *dsp pointing
* past the current entry. it returns 1 on success and 0 if at the end of
* the search path. path should be a pointer to an unoccupied buffer
- * PATH_MAX characters long. either or both of sp/dsp may be empty,
+ * BOOT_PATH_MAX characters long. either or both of sp/dsp may be empty,
* but neither may be null, i.e., (char *)0. */
static IBOOL next_path(char *path, const char *name, const char *ext,
const char **sp, const char **dsp) {
char *p;
const char *s, *t;
-#define setp(c) if (p >= path + PATH_MAX) { fprintf(stderr, "search path entry too long\n"); S_abnormal_exit(); } else *p++ = (c)
+#define setp(c) if (p >= path + BOOT_PATH_MAX) { fprintf(stderr, "search path entry too long\n"); S_abnormal_exit(); } else *p++ = (c)
for (;;) {
s = *sp;
p = path;
@@ -532,10 +538,10 @@ static IBOOL next_path(char *path, const char *name, const char *ext,
switch (*s) {
#ifdef WIN32
case 'x': {
- wchar_t exepath[PATH_MAX]; DWORD n;
+ wchar_t exepath[BOOT_PATH_MAX]; DWORD n;
s += 1;
- n = GetModuleFileNameW(NULL, exepath, PATH_MAX);
- if (n == 0 || (n == PATH_MAX && GetLastError() == ERROR_INSUFFICIENT_BUFFER)) {
+ n = GetModuleFileNameW(NULL, exepath, BOOT_PATH_MAX);
+ if (n == 0 || (n == BOOT_PATH_MAX && GetLastError() == ERROR_INSUFFICIENT_BUFFER)) {
fprintf(stderr, "warning: executable path is too long; ignoring %%x\n");
} else {
char *tstart;
@@ -608,7 +614,7 @@ typedef struct {
iptr len; /* 0 => unknown */
iptr offset;
IBOOL need_check, close_after;
- char path[PATH_MAX];
+ char path[BOOT_PATH_MAX];
} boot_desc;
#define MAX_BOOT_FILES 10
@@ -695,14 +701,14 @@ static void finish_dependencies_header(int fd, const char *path, int c) {
static IBOOL find_boot(const char *name, const char *ext, IBOOL direct_pathp,
int fd,
IBOOL errorp) {
- char pathbuf[PATH_MAX], buf[PATH_MAX];
+ char pathbuf[BOOT_PATH_MAX], buf[BOOT_PATH_MAX];
uptr n = 0;
INT c;
const char *path;
char *expandedpath;
if ((fd != -1) || direct_pathp || S_fixedpathp(name)) {
- if (strlen(name) >= PATH_MAX) {
+ if (strlen(name) >= BOOT_PATH_MAX) {
fprintf(stderr, "boot-file path is too long %s\n", name);
S_abnormal_exit();
}
@@ -776,7 +782,7 @@ static IBOOL find_boot(const char *name, const char *ext, IBOOL direct_pathp,
if (boot_count == 0) {
for (;;) {
/* try to load heap or boot file this boot file requires */
- if (get_string(fd, buf, PATH_MAX, &c) != 0) {
+ if (get_string(fd, buf, BOOT_PATH_MAX, &c) != 0) {
fprintf(stderr, "unexpected end of file on %s\n", path);
CLOSE(fd);
S_abnormal_exit();
@@ -796,7 +802,7 @@ static IBOOL find_boot(const char *name, const char *ext, IBOOL direct_pathp,
c = get_u8(fd);
for (sep = " "; ; sep = "or ") {
if (c == ')') break;
- (void) get_string(fd, buf, PATH_MAX, &c);
+ (void) get_string(fd, buf, BOOT_PATH_MAX, &c);
fprintf(stderr, "%s%s.boot ", sep, buf);
}
fprintf(stderr, "required by %s\n", path);
@@ -1090,7 +1096,7 @@ extern void Sregister_boot_file_fd_region(const char *name,
int close_after) {
check_boot_file_state("Sregister_boot_file_fd");
- if (strlen(name) >= PATH_MAX) {
+ if (strlen(name) >= BOOT_PATH_MAX) {
fprintf(stderr, "boot-file path is too long %s\n", name);
S_abnormal_exit();
}
@@ -1141,14 +1147,14 @@ extern void Sbuild_heap(const char *kernel, void (*custom_init)(void)) {
}
name = path_last(kernel);
- if (strlen(name) >= PATH_MAX) {
+ if (strlen(name) >= BOOT_PATH_MAX) {
fprintf(stderr, "executable name too long: %s\n", name);
S_abnormal_exit();
}
#ifdef WIN32
{ /* strip off trailing .exe, if any */
- static char buf[PATH_MAX];
+ static char buf[BOOT_PATH_MAX];
iptr n;
n = strlen(name) - 4;
diff --git a/racket/src/ChezScheme/c/version.h b/racket/src/ChezScheme/c/version.h
index a79d12621b..61751a9fad 100644
--- a/racket/src/ChezScheme/c/version.h
+++ b/racket/src/ChezScheme/c/version.h
@@ -80,7 +80,7 @@ FORCEINLINE void store_unaligned_uptr(uptr *addr, uptr val) {
/*****************************************/
/* Operating systems */
-#if defined(__linux__)
+#if defined(__linux__) || defined(__GNU__) /* Hurd */
#define NOBLOCK O_NONBLOCK
#define LOAD_SHARED_OBJECT
#define USE_MMAP
@@ -91,7 +91,10 @@ FORCEINLINE void store_unaligned_uptr(uptr *addr, uptr val) {
#define GETPAGESIZE() getpagesize()
typedef char *memcpy_t;
#define MAKE_NAN(x) { x = 0.0; x = x / x; }
-#define GETWD(x) getcwd((x),PATH_MAX)
+#ifndef __GNU__ /* Hurd: no PATH_MAX */
+/* n.b. don't test PATH_MAX directly: we have not yet included <limits.h> */
+# define GETWD(x) getcwd((x),PATH_MAX)
+#endif
typedef int tputsputcchar;
#ifndef __ANDROID__
# define LOCKF
diff --git a/racket/src/ChezScheme/configure b/racket/src/ChezScheme/configure
index f64b639c3a..efdb6029cb 100755
--- a/racket/src/ChezScheme/configure
+++ b/racket/src/ChezScheme/configure
@@ -102,6 +102,11 @@ case "${CONFIG_UNAME}" in
installprefix=/usr
installmansuffix=share/man
;;
+ GNU)
+ unixsuffix=gnu # the Hurd
+ installprefix=/usr
+ installmansuffix=share/man
+ ;;
QNX)
if uname -a | egrep 'x86' > /dev/null 2>&1 ; then
m32=i3qnx
@@ -591,7 +596,7 @@ fi
# Infer flags needed for threads:
case "${flagsm}" in
- *le|*fb|*ob|*nb)
+ *le|*gnu|*fb|*ob|*nb)
threadFlags="-D_REENTRANT -pthread"
threadLibs="-lpthread"
;;
@@ -627,7 +632,7 @@ if [ "$cflagsset" = "no" ] ; then
a6*)
CFLAGS="-m64 ${optFlags}"
;;
- i3le)
+ i3le) # intentionally not including i3gnu, which may not support sse2
CFLAGS="-m32 -msse2 -mfpmath=sse ${optFlags}"
;;
i3nt)
@@ -688,7 +693,7 @@ fi
# Add automatic linking flags, unless suppressed by --disable-auto-flags
if [ "$addflags" = "yes" ] ; then
case "${flagsm}" in
- *le)
+ *le|*gnu)
LDFLAGS="${LDFLAGS} -rdynamic"
;;
*fb|*nb)
@@ -702,7 +707,7 @@ if [ "$addflags" = "yes" ] ; then
esac
case "${flagsm}" in
- *le)
+ *le|*gnu)
LIBS="${LIBS} -lm -ldl ${ncursesLib} -lrt"
;;
*fb|*ob)
@@ -749,7 +754,7 @@ exeSuffix=
# compile flags for c/Mf-unix and mats/Mf-unix
case "${flagsmuni}" in
- *le)
+ *le|*gnu)
mdcflags="-fPIC -shared"
;;
*fb|*ob)
@@ -781,7 +786,7 @@ case "${flagsmuni}" in
i3le)
mdldflags="-melf_i386"
;;
- *le)
+ *le|*gnu)
;;
i3nb)
mdldflags="-m elf_i386"
diff --git a/racket/src/ChezScheme/s/cmacros.ss b/racket/src/ChezScheme/s/cmacros.ss
index ff2b09217b..2e79a4d8de 100644
--- a/racket/src/ChezScheme/s/cmacros.ss
+++ b/racket/src/ChezScheme/s/cmacros.ss
@@ -385,6 +385,7 @@
i3fb ti3fb
i3ob ti3ob
i3osx ti3osx
+ i3gnu ti3gnu
a6le ta6le
a6osx ta6osx
a6ob ta6ob
diff --git a/racket/src/cs/c/configure b/racket/src/cs/c/configure
index 454d79e11a..dab545c0b4 100755
--- a/racket/src/cs/c/configure
+++ b/racket/src/cs/c/configure
@@ -4449,8 +4449,15 @@ case "$host_os" in
;;
irix*)
;;
- linux*)
- MACH_OS=le
+ linux*|gnu*)
+ case "$host_os" in
+ *linux*)
+ MACH_OS=le
+ ;;
+ *)
+ MACH_OS=gnu # Hurd
+ ;;
+ esac
case "$host_os" in
*linux-android*)
;;
@@ -4730,6 +4737,9 @@ if test "${build_os}_${build_cpu}" != "${host_os}_${host_cpu}" ; then
linux*)
BUILD_OS=le
;;
+ gnu*) # Hurd: must come after linux*
+ BUILD_OS=gnu
+ ;;
*mingw*)
BUILD_OS=nt
;;
diff --git a/racket/src/cs/c/configure.ac b/racket/src/cs/c/configure.ac
index 5bce979c92..43e7307b1b 100644
--- a/racket/src/cs/c/configure.ac
+++ b/racket/src/cs/c/configure.ac
@@ -272,8 +272,15 @@ case "$host_os" in
;;
irix*)
;;
- linux*)
- MACH_OS=le
+ linux*|gnu*)
+ case "$host_os" in
+ linux*)
+ MACH_OS=le
+ ;;
+ *)
+ MACH_OS=gnu # Hurd
+ ;;
+ esac
case "$host_os" in
*linux-android*)
;;
@@ -466,6 +473,9 @@ if test "${build_os}_${build_cpu}" != "${host_os}_${host_cpu}" ; then
linux*)
BUILD_OS=le
;;
+ gnu*) # Hurd - must come after linux*
+ BUILD_OS=gnu
+ ;;
*mingw*)
BUILD_OS=nt
;;
diff --git a/racket/src/cs/rumble/system.ss b/racket/src/cs/rumble/system.ss
index 2319cbe7a5..773eb79cf3 100644
--- a/racket/src/cs/rumble/system.ss
+++ b/racket/src/cs/rumble/system.ss
@@ -48,6 +48,8 @@
arm32le tarm32le arm64le tarm64le
ppc32le tppc32le)
'linux]
+ [(i3gnu ti3gnu)
+ 'gnu-hurd]
[(a6fb ta6fb i3fb ti3fb
arm32fb tarm32fb arm64fb tarm64fb
ppc32fb tppc32fb)
@@ -85,6 +87,7 @@
i3nb ti3nb
i3fb ti3fb
i3s2 ti3s2
+ i3gnu ti3gnu
i3qnx)
'i386]
[(arm32le tarm32le
--
2.32.0
From 8653294b771c741d320aba31e692b4f0ed0c702f Mon Sep 17 00:00:00 2001
From: Philip McGrath <philip@philipmcgrath.com>
Date: Thu, 4 Aug 2022 20:18:09 -0400
Subject: [PATCH 2/3] BC: Fix build on GNU/Hurd
(cherry picked from commit 5c05496afd6159c2f9cd52e7f23389fdc6b55f43)
---
racket/src/bc/configure | 2 +-
racket/src/bc/configure.ac | 2 +-
racket/src/bc/sconfig.h | 14 +++++++++-----
3 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/racket/src/bc/configure b/racket/src/bc/configure
index 4ddb607b37..4ee346014d 100755
--- a/racket/src/bc/configure
+++ b/racket/src/bc/configure
@@ -5018,7 +5018,7 @@ case "$host_os" in
X_PRE_LIBS=""
fi
;;
- linux*)
+ linux*,gnu*)
LIBS="$LIBS -ldl -lm -lrt -rdynamic"
DYN_CFLAGS="-fPIC"
curses_portable_link="/usr/lib/${host_cpu}-${host_os}/libncurses.a /usr/lib/${host_cpu}-${host_os}/libtermcap.a"
diff --git a/racket/src/bc/configure.ac b/racket/src/bc/configure.ac
index deef8f3077..866851236e 100644
--- a/racket/src/bc/configure.ac
+++ b/racket/src/bc/configure.ac
@@ -557,7 +557,7 @@ case "$host_os" in
X_PRE_LIBS=""
fi
;;
- linux*)
+ linux*,gnu*)
LIBS="$LIBS -ldl -lm -lrt -rdynamic"
DYN_CFLAGS="-fPIC"
curses_portable_link="/usr/lib/${host_cpu}-${host_os}/libncurses.a /usr/lib/${host_cpu}-${host_os}/libtermcap.a"
diff --git a/racket/src/bc/sconfig.h b/racket/src/bc/sconfig.h
index 01ecb48158..8468942fcd 100644
--- a/racket/src/bc/sconfig.h
+++ b/racket/src/bc/sconfig.h
@@ -79,12 +79,14 @@
#endif
- /************** Linux with gcc ****************/
+ /************** Linux (or Hurd) with gcc ****************/
-#if defined(__linux__)
+#if defined(__linux__) || defined(__GNU__)
# ifdef __ANDROID__
# define SCHEME_OS "android"
+# elif defined(__GNU__)
+# define SCHEME_OS "gnu-hurd"
# else
# define SCHEME_OS "linux"
# endif
@@ -146,13 +148,15 @@
# define USE_IEEE_FP_PREDS
# define USE_EXPLICT_FP_FORM_CHECK
-# define LINUX_FIND_STACK_BASE
+# define LINUX_FIND_STACK_BASE /* also ok for Hurd */
# define FLAGS_ALREADY_SET
#if defined(__i386__)
-# define MZ_USE_JIT_I386
-# define MZ_JIT_USE_MPROTECT
+# ifndef __GNU__ /* Hurd */
+# define MZ_USE_JIT_I386
+# define MZ_JIT_USE_MPROTECT
+# endif
# ifndef MZ_NO_UNWIND_SUPPORT
# define MZ_USE_DWARF_LIBUNWIND
# endif
--
2.32.0
From 1b0cd08557f58506c96f0ddd855bd9051a45a2f1 Mon Sep 17 00:00:00 2001
From: Philip McGrath <philip@philipmcgrath.com>
Date: Sat, 6 Aug 2022 22:48:40 -0400
Subject: [PATCH 3/3] BC: repair configure script
Hopefully this will fix the DrDr failures caused by 5c05496.
Related to https://github.com/racket/racket/pull/4384
(cherry picked from commit c3dd01055ed7589a18136904510fe4db557d6e77)
---
racket/src/bc/configure | 2 +-
racket/src/bc/configure.ac | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/racket/src/bc/configure b/racket/src/bc/configure
index 4ee346014d..b1c5175b84 100755
--- a/racket/src/bc/configure
+++ b/racket/src/bc/configure
@@ -5018,7 +5018,7 @@ case "$host_os" in
X_PRE_LIBS=""
fi
;;
- linux*,gnu*)
+ linux*|gnu*)
LIBS="$LIBS -ldl -lm -lrt -rdynamic"
DYN_CFLAGS="-fPIC"
curses_portable_link="/usr/lib/${host_cpu}-${host_os}/libncurses.a /usr/lib/${host_cpu}-${host_os}/libtermcap.a"
diff --git a/racket/src/bc/configure.ac b/racket/src/bc/configure.ac
index 866851236e..ecc3b0b579 100644
--- a/racket/src/bc/configure.ac
+++ b/racket/src/bc/configure.ac
@@ -557,7 +557,7 @@ case "$host_os" in
X_PRE_LIBS=""
fi
;;
- linux*,gnu*)
+ linux*|gnu*)
LIBS="$LIBS -ldl -lm -lrt -rdynamic"
DYN_CFLAGS="-fPIC"
curses_portable_link="/usr/lib/${host_cpu}-${host_os}/libncurses.a /usr/lib/${host_cpu}-${host_os}/libtermcap.a"
--
2.32.0

View file

@ -0,0 +1,481 @@
From 8761fc06b188b9ca2f4b7f2b7d1235075c44a321 Mon Sep 17 00:00:00 2001
From: Matthew Flatt <mflatt@racket-lang.org>
Date: Sat, 23 Jul 2022 17:10:58 -0600
Subject: [PATCH 1/4] Zuo: support cross compilation via `configure` and
`CC_FOR_BUILD`
(cherry picked from commit 798a989ba6d1a30c491a3120b2c2f1570ecab911)
---
racket/src/zuo/Makefile.in | 7 ++++++-
racket/src/zuo/README.md | 10 ++++++++++
racket/src/zuo/configure | 15 +++++++++++++++
racket/src/zuo/configure.ac | 11 +++++++++++
4 files changed, 42 insertions(+), 1 deletion(-)
diff --git a/racket/src/zuo/Makefile.in b/racket/src/zuo/Makefile.in
index 5d16e145bf..747b584c5c 100644
--- a/racket/src/zuo/Makefile.in
+++ b/racket/src/zuo/Makefile.in
@@ -17,6 +17,11 @@ CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
+CC_FOR_BUILD = @CC_FOR_BUILD@
+CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
+LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
+LIBS_FOR_BUILD = @LIBS_FOR_BUILD@
+
EMBED_LIBS = @EMBED_LIBS@
.PHONY: zuos-to-run-and-install
@@ -24,7 +29,7 @@ zuos-to-run-and-install: zuo
./zuo . zuos-to-run-and-install
zuo: $(srcdir)/zuo.c
- $(CC) $(CPPFLAGS) $(CFLAGS) -DZUO_LIB_PATH='"'"$(srcdir)/lib"'"' -o zuo $(srcdir)/zuo.c $(LDFLAGS) $(LIBS)
+ $(CC_FOR_BUILD) $(FLAGS_FOR_BUILD) -DZUO_LIB_PATH='"'"$(srcdir)/lib"'"' -o zuo $(srcdir)/zuo.c $(LDFLAGS_FOR_BUILD) $(LIBS_FOR_BUILD)
.PHONY: check
check: zuo
diff --git a/racket/src/zuo/README.md b/racket/src/zuo/README.md
index 17c88ee9ec..3aad504b7e 100644
--- a/racket/src/zuo/README.md
+++ b/racket/src/zuo/README.md
@@ -84,6 +84,16 @@ A boot image is machine-independent, whether in a stand-alone file or
embedded in `.c` source.
+Cross Compiling
+---------------
+
+If you use `./configure --host=...` to cross compile, then you will
+also need to add something like `CC_FOR_BUILD=cc` as a `./configure`
+argument to specify the compiler for a `zuo` to use on the build
+machine. If necessary, you can also specify `CFLAGS_FOR_BUILD`,
+`LDFLAGS_FOR_BUILD`, and/or `LIBS_FOR_BUILD`.
+
+
Embedding Zuo in Another Application
------------------------------------
diff --git a/racket/src/zuo/configure b/racket/src/zuo/configure
index 1fa34a3fe8..575ce07d96 100755
--- a/racket/src/zuo/configure
+++ b/racket/src/zuo/configure
@@ -589,6 +589,10 @@ enable_embed="zuo"
ac_subst_vars='LTLIBOBJS
LIBOBJS
EMBED_LIBS
+LIBS_FOR_BUILD
+LDFLAGS_FOR_BUILD
+CFLAGS_FOR_BUILD
+CC_FOR_BUILD
OBJEXT
EXEEXT
ac_ct_CC
@@ -2584,6 +2588,17 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test "${CC_FOR_BUILD}" = ""; then
+ CC_FOR_BUILD='$(CC) -O2'
+ CFLAGS_FOR_BUILD='$(CPPFLAGS) $(CFLAGS)'
+ LDFLAGS_FOR_BUILD='$(LDFLAGS)'
+ LIBS_FOR_BUILD='$(LIBS)'
+fi
+
+
+
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: zuo libraries to embed: \"${EMBED_LIBS}\"" >&5
$as_echo "$as_me: zuo libraries to embed: \"${EMBED_LIBS}\"" >&6;}
diff --git a/racket/src/zuo/configure.ac b/racket/src/zuo/configure.ac
index 89b3c6391d..598ff79629 100644
--- a/racket/src/zuo/configure.ac
+++ b/racket/src/zuo/configure.ac
@@ -25,6 +25,17 @@ AS_IF([test "x$enable_embed" = xno],
AC_PROG_MAKE_SET()
AC_PROG_CC
+if test "${CC_FOR_BUILD}" = ""; then
+ CC_FOR_BUILD='$(CC) -O2'
+ CFLAGS_FOR_BUILD='$(CPPFLAGS) $(CFLAGS)'
+ LDFLAGS_FOR_BUILD='$(LDFLAGS)'
+ LIBS_FOR_BUILD='$(LIBS)'
+fi
+AC_SUBST(CC_FOR_BUILD)
+AC_SUBST(CFLAGS_FOR_BUILD)
+AC_SUBST(LDFLAGS_FOR_BUILD)
+AC_SUBST(LIBS_FOR_BUILD)
+
AC_SUBST(EMBED_LIBS)
AC_MSG_NOTICE([zuo libraries to embed: "${EMBED_LIBS}"])
--
2.32.0
From f65194ea41eb472fbdd45d5f6c13eabe5e681704 Mon Sep 17 00:00:00 2001
From: Matthew Flatt <mflatt@racket-lang.org>
Date: Sat, 23 Jul 2022 17:47:03 -0600
Subject: [PATCH 2/4] Zuo: sort hash keys
Printing in a sorted order is helpful to make things more
deterministic independent of symbol inputs. Making `hash-keys`
produce a sorted list generalizes that determinism.
(cherry picked from commit 4e7ffd3b365d01c5d0993c0b3fd24c9623962edf)
---
racket/src/zuo/build.zuo | 5 ++-
racket/src/zuo/tests/hash.zuo | 8 ++--
racket/src/zuo/zuo-doc/lang-zuo.scrbl | 18 +++++++--
racket/src/zuo/zuo.c | 57 ++++++++++++++++++++++++++-
4 files changed, 78 insertions(+), 10 deletions(-)
diff --git a/racket/src/zuo/build.zuo b/racket/src/zuo/build.zuo
index c1b5e8ce66..129240120a 100644
--- a/racket/src/zuo/build.zuo
+++ b/racket/src/zuo/build.zuo
@@ -47,7 +47,10 @@
(target (at-dir (add-exe name))
(lambda (path token)
(rule (list image_zuo.c
- (input-data-target 'config config)
+ (input-data-target 'config (cons
+ lib-path
+ (map (lambda (key) (hash-ref config key))
+ '(CC CPPFLAGS CFLAGS LDFLAGS LIBS))))
(quote-module-path))
(lambda ()
(define l (split-path path))
diff --git a/racket/src/zuo/tests/hash.zuo b/racket/src/zuo/tests/hash.zuo
index a35741c730..0d3d7f3af6 100644
--- a/racket/src/zuo/tests/hash.zuo
+++ b/racket/src/zuo/tests/hash.zuo
@@ -35,9 +35,7 @@
(check (hash-keys (hash)) '())
(check (hash-keys (hash 'a 1)) '(a))
-(check (let ([keys (hash-keys (hash 'a 1 'b 2))])
- (or (equal? keys '(a b))
- (equal? keys '(b a)))))
+(check (hash-keys (hash 'a 1 'b 2)) '(a b)) ; always in order
(check (length (hash-keys (hash 'a 1 'b 2 'c 3))) 3)
(check (length (hash-keys (hash 'a 1 'b 2 'a 3))) 2)
(check-arg-fail (hash-keys 0) "not a hash table")
@@ -50,3 +48,7 @@
(check (hash-keys-subset? (hash 'a 1 'b 2) (hash 'b 1)) #f)
(check-arg-fail (hash-keys-subset? 0 (hash)) "not a hash table")
(check-arg-fail (hash-keys-subset? (hash) 0) "not a hash table")
+
+;; print sorts keys alphabetically:
+(check (~a (hash 'a 1 'b 2)) "#hash((a . 1) (b . 2))")
+(check (~a (hash 'b 2 'a 1)) "#hash((a . 1) (b . 2))")
diff --git a/racket/src/zuo/zuo-doc/lang-zuo.scrbl b/racket/src/zuo/zuo-doc/lang-zuo.scrbl
index 94641d041e..4605e47471 100644
--- a/racket/src/zuo/zuo-doc/lang-zuo.scrbl
+++ b/racket/src/zuo/zuo-doc/lang-zuo.scrbl
@@ -538,10 +538,20 @@ support to convert the textual form back into a hash table value.
Analogous to @realracket*[hash? hash hash-ref hash-set hash-remove
hash-keys hash-count hash-keys-subset?] from @racketmodname[racket].
-Besides being constrained to symbol keys, there is one additional
-difference: the third argument to @racket[hash-ref], when supplied,
-is always used as a value to return if a key is missing, as
-opposed to a failure thunk.}
+
+Besides being constrained to symbol keys, there are two additional
+differences:
+
+@itemlist[
+
+ @item{the third argument to @racket[hash-ref], when supplied, is
+ always used as a value to return if a key is missing, as
+ opposed to a failure thunk; and}
+
+ @item{the @racket[hash-keys] function returns interned keys sorted
+ alphabetically.}
+
+]}
@section{Procedures}
diff --git a/racket/src/zuo/zuo.c b/racket/src/zuo/zuo.c
index 2957d478af..88d5747326 100644
--- a/racket/src/zuo/zuo.c
+++ b/racket/src/zuo/zuo.c
@@ -1298,6 +1298,59 @@ static zuo_t *zuo_trie_keys(zuo_t *trie_in, zuo_t *accum) {
return accum;
}
+/*======================================================================*/
+/* symbol-list sorting */
+/*======================================================================*/
+
+/* merge sort used to make hash printing deterministic */
+static zuo_t *zuo_symbol_list_sort(zuo_t *l_in) {
+ zuo_t *l, *left, *right, *first, *last;
+ zuo_uint_t len = 0, i;
+
+ for (l = l_in, len = 0; l != z.o_null; l = _zuo_cdr(l))
+ len++;
+
+ if (len < 2)
+ return l_in;
+
+ left = z.o_null;
+ for (l = l_in, i = len >> 1; i > 0; l = _zuo_cdr(l), i--)
+ left = zuo_cons(_zuo_car(l), left);
+ right = l;
+
+ left = zuo_symbol_list_sort(left);
+ right = zuo_symbol_list_sort(right);
+
+ first = last = z.o_null;
+ while ((left != z.o_null) && (right != z.o_null)) {
+ zuo_t *p;
+
+ if (strcmp(ZUO_STRING_PTR(((zuo_symbol_t *)_zuo_car(left))->str),
+ ZUO_STRING_PTR(((zuo_symbol_t *)_zuo_car(right))->str))
+ < 1) {
+ p = zuo_cons(_zuo_car(left), z.o_null);
+ left = _zuo_cdr(left);
+ } else {
+ p = zuo_cons(_zuo_car(right), z.o_null);
+ right = _zuo_cdr(right);
+ }
+
+ if (first == z.o_null)
+ first = p;
+ else
+ ((zuo_pair_t *)last)->cdr = p;
+ last = p;
+ }
+
+ ((zuo_pair_t *)last)->cdr = ((left != z.o_null) ? left : right);
+
+ return first;
+}
+
+static zuo_t *zuo_trie_sorted_keys(zuo_t *trie_in, zuo_t *accum) {
+ return zuo_symbol_list_sort(zuo_trie_keys(trie_in, accum));
+}
+
/*======================================================================*/
/* terminal support */
/*======================================================================*/
@@ -1571,7 +1624,7 @@ static void zuo_out(zuo_out_t *out, zuo_t *obj, zuo_print_mode_t mode) {
out_string(out, "opaque");
out_string(out, ">");
} else if (obj->tag == zuo_trie_node_tag) {
- zuo_t *keys = zuo_trie_keys(obj, z.o_null);
+ zuo_t *keys = zuo_trie_sorted_keys(obj, z.o_null);
if (mode == zuo_print_mode) {
out_string(out, "(hash");
if (keys != z.o_null)
@@ -2587,7 +2640,7 @@ static zuo_t *zuo_hash_remove(zuo_t *ht, zuo_t *sym) {
static zuo_t *zuo_hash_keys(zuo_t *ht) {
check_hash("hash-keys", ht);
- return zuo_trie_keys(ht, z.o_null);
+ return zuo_trie_sorted_keys(ht, z.o_null);
}
static zuo_t *zuo_hash_keys_subset_p(zuo_t *ht, zuo_t *ht2) {
--
2.32.0
From f2eecaa1dd875479d2cf51566223b3d0d7b9f738 Mon Sep 17 00:00:00 2001
From: Matthew Flatt <mflatt@racket-lang.org>
Date: Sat, 23 Jul 2022 18:06:41 -0600
Subject: [PATCH 3/4] Zuo: check for nul characters in `string->symbol`
(cherry picked from commit e20022ccfad40d0ba2e77aa75bc4f775018c781f)
---
racket/src/zuo/tests/symbol.zuo | 3 +++
racket/src/zuo/zuo-doc/lang-zuo.scrbl | 4 ++-
racket/src/zuo/zuo.c | 37 +++++++++++++++++----------
3 files changed, 29 insertions(+), 15 deletions(-)
diff --git a/racket/src/zuo/tests/symbol.zuo b/racket/src/zuo/tests/symbol.zuo
index 7775aeeb04..5600a89755 100644
--- a/racket/src/zuo/tests/symbol.zuo
+++ b/racket/src/zuo/tests/symbol.zuo
@@ -19,3 +19,6 @@
(check (not (equal? 'apple (string->uninterned-symbol "apple"))))
(check-arg-fail (string->symbol 'apple) not-string)
(check-arg-fail (string->uninterned-symbol 'apple) not-string)
+
+(check-arg-fail (string->symbol "apple\0spice") "without a nul character")
+(check (symbol? (string->uninterned-symbol "apple\0spice")))
diff --git a/racket/src/zuo/zuo-doc/lang-zuo.scrbl b/racket/src/zuo/zuo-doc/lang-zuo.scrbl
index 4605e47471..07dd5815b0 100644
--- a/racket/src/zuo/zuo-doc/lang-zuo.scrbl
+++ b/racket/src/zuo/zuo-doc/lang-zuo.scrbl
@@ -500,7 +500,9 @@ back into Zuo.
)]{
Analogous to @realracket*[symbol? symbol->string string->symbol
-string->uninterned-symbol] from @racketmodname[racket].}
+string->uninterned-symbol] from @racketmodname[racket], but
+@racket[string->symbol] accepts only strings that do not contain the
+null character.}
@section{Hash Tables (Persistent Maps)}
diff --git a/racket/src/zuo/zuo.c b/racket/src/zuo/zuo.c
index 88d5747326..17f161826d 100644
--- a/racket/src/zuo/zuo.c
+++ b/racket/src/zuo/zuo.c
@@ -1323,7 +1323,7 @@ static zuo_t *zuo_symbol_list_sort(zuo_t *l_in) {
first = last = z.o_null;
while ((left != z.o_null) && (right != z.o_null)) {
- zuo_t *p;
+ zuo_t *p, *s_left, *s_right;
if (strcmp(ZUO_STRING_PTR(((zuo_symbol_t *)_zuo_car(left))->str),
ZUO_STRING_PTR(((zuo_symbol_t *)_zuo_car(right))->str))
@@ -2573,8 +2573,28 @@ static zuo_t *zuo_substring(zuo_t *obj, zuo_t *start_i, zuo_t *end_i) {
return zuo_sized_string((const char *)&((zuo_string_t *)obj)->s[s_idx], e_idx - s_idx);
}
+static int zuo_is_string_without_nul(zuo_t *obj) {
+ zuo_int_t i;
+
+ if ((obj->tag != zuo_string_tag)
+ || ZUO_STRING_LEN(obj) == 0)
+ return 0;
+
+ for (i = ZUO_STRING_LEN(obj); i--; ) {
+ if (((zuo_string_t *)obj)->s[i] == 0)
+ return 0;
+ }
+
+ return 1;
+}
+
static zuo_t *zuo_string_to_symbol(zuo_t *obj) {
- check_string("string->symbol", obj);
+ if (!zuo_is_string_without_nul(obj)) {
+ const char *who = "string->symbol";
+ check_string(who, obj);
+ zuo_fail_arg(who, "string without a nul character", obj);
+ }
+
return zuo_symbol_from_string(ZUO_STRING_PTR(obj), obj);
}
@@ -3577,18 +3597,7 @@ static void *zuo_envvars_block(const char *who, zuo_t *envvars)
#endif
static int zuo_is_path_string(zuo_t *obj) {
- zuo_int_t i;
-
- if ((obj->tag != zuo_string_tag)
- || ZUO_STRING_LEN(obj) == 0)
- return 0;
-
- for (i = ZUO_STRING_LEN(obj); i--; ) {
- if (((zuo_string_t *)obj)->s[i] == 0)
- return 0;
- }
-
- return 1;
+ return zuo_is_string_without_nul(obj);
}
static zuo_t *zuo_path_string_p(zuo_t *obj) {
--
2.32.0
From de6618cb3819d25580e3cd400ea09c8cf4f673a9 Mon Sep 17 00:00:00 2001
From: Matthew Flatt <mflatt@racket-lang.org>
Date: Sat, 23 Jul 2022 19:50:46 -0600
Subject: [PATCH 4/4] Zuo: CPPFLAGS_FOR_BUILD, too
(cherry picked from commit cf82706c4b298f654a04c4bc8d98dff39b62a2ac)
---
racket/src/zuo/Makefile.in | 3 ++-
racket/src/zuo/configure | 5 ++++-
racket/src/zuo/configure.ac | 4 +++-
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/racket/src/zuo/Makefile.in b/racket/src/zuo/Makefile.in
index 747b584c5c..0376c038a8 100644
--- a/racket/src/zuo/Makefile.in
+++ b/racket/src/zuo/Makefile.in
@@ -19,6 +19,7 @@ LIBS = @LIBS@
CC_FOR_BUILD = @CC_FOR_BUILD@
CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
+CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
LIBS_FOR_BUILD = @LIBS_FOR_BUILD@
@@ -29,7 +30,7 @@ zuos-to-run-and-install: zuo
./zuo . zuos-to-run-and-install
zuo: $(srcdir)/zuo.c
- $(CC_FOR_BUILD) $(FLAGS_FOR_BUILD) -DZUO_LIB_PATH='"'"$(srcdir)/lib"'"' -o zuo $(srcdir)/zuo.c $(LDFLAGS_FOR_BUILD) $(LIBS_FOR_BUILD)
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) -DZUO_LIB_PATH='"'"$(srcdir)/lib"'"' -o zuo $(srcdir)/zuo.c $(LDFLAGS_FOR_BUILD) $(LIBS_FOR_BUILD)
.PHONY: check
check: zuo
diff --git a/racket/src/zuo/configure b/racket/src/zuo/configure
index 575ce07d96..7ac453e3bc 100755
--- a/racket/src/zuo/configure
+++ b/racket/src/zuo/configure
@@ -591,6 +591,7 @@ LIBOBJS
EMBED_LIBS
LIBS_FOR_BUILD
LDFLAGS_FOR_BUILD
+CPPFLAGS_FOR_BUILD
CFLAGS_FOR_BUILD
CC_FOR_BUILD
OBJEXT
@@ -2590,7 +2591,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test "${CC_FOR_BUILD}" = ""; then
CC_FOR_BUILD='$(CC) -O2'
- CFLAGS_FOR_BUILD='$(CPPFLAGS) $(CFLAGS)'
+ CPPFLAGS_FOR_BUILD='$(CPPFLAGS)'
+ CFLAGS_FOR_BUILD='$(CFLAGS)'
LDFLAGS_FOR_BUILD='$(LDFLAGS)'
LIBS_FOR_BUILD='$(LIBS)'
fi
@@ -2600,6 +2602,7 @@ fi
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: zuo libraries to embed: \"${EMBED_LIBS}\"" >&5
$as_echo "$as_me: zuo libraries to embed: \"${EMBED_LIBS}\"" >&6;}
diff --git a/racket/src/zuo/configure.ac b/racket/src/zuo/configure.ac
index 598ff79629..051ea0beb5 100644
--- a/racket/src/zuo/configure.ac
+++ b/racket/src/zuo/configure.ac
@@ -27,12 +27,14 @@ AC_PROG_CC
if test "${CC_FOR_BUILD}" = ""; then
CC_FOR_BUILD='$(CC) -O2'
- CFLAGS_FOR_BUILD='$(CPPFLAGS) $(CFLAGS)'
+ CPPFLAGS_FOR_BUILD='$(CPPFLAGS)'
+ CFLAGS_FOR_BUILD='$(CFLAGS)'
LDFLAGS_FOR_BUILD='$(LDFLAGS)'
LIBS_FOR_BUILD='$(LIBS)'
fi
AC_SUBST(CC_FOR_BUILD)
AC_SUBST(CFLAGS_FOR_BUILD)
+AC_SUBST(CPPFLAGS_FOR_BUILD)
AC_SUBST(LDFLAGS_FOR_BUILD)
AC_SUBST(LIBS_FOR_BUILD)
--
2.32.0

View file

@ -0,0 +1,76 @@
From f86370295c5bb14d4bb93d0ccfa37a2b79f19f25 Mon Sep 17 00:00:00 2001
From: Philip McGrath <philip@philipmcgrath.com>
Date: Wed, 24 Aug 2022 19:55:14 -0400
Subject: [PATCH] Chez Scheme: patch s_process for "/bin/sh" on Guix
If:
1. The nonstandard but ubiquitous macro `_PATH_BSHELL` from
<paths.h> is defined; and
2. The path specified by `_PATH_BSHELL` exists;
then `s_process` will call `execl` with the file specified by
`_PATH_BSHELL` instead of "/bin/sh".
Checking that the path specified by `_PATH_BSHELL` exists safeguards
against obscure errors if attempting to use stand-alone executables
built by the patched Racket in non-Guix envoronments.
This patch does not change the behavior of `s_system`, which relies
on `system` from the C library.
---
racket/src/ChezScheme/c/prim5.c | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/racket/src/ChezScheme/c/prim5.c b/racket/src/ChezScheme/c/prim5.c
index 82bbf8d687..be8f603447 100644
--- a/racket/src/ChezScheme/c/prim5.c
+++ b/racket/src/ChezScheme/c/prim5.c
@@ -27,6 +27,12 @@
#include <sys/resource.h>
#endif
+/* BEGIN PATCH for Guix */
+#ifndef WIN32
+# include <paths.h>
+#endif
+/* END PATCH for Guix */
+
/* locally defined functions */
static INT s_errno(void);
static IBOOL s_addr_in_heap(uptr x);
@@ -861,6 +867,17 @@ static ptr s_process(char *s, IBOOL stderrp) {
INT tofds[2], fromfds[2], errfds[2];
struct sigaction act, oint_act;
+ /* BEGIN PATCH for Guix */
+#if defined(_PATH_BSHELL)
+ struct stat guix_stat_buf;
+ char *guix_sh =
+ (0 == stat(_PATH_BSHELL, &guix_stat_buf))
+ ? _PATH_BSHELL
+ : "/bin/sh";
+#else /* _PATH_BSHELL */
+ char *guix_sh = "/bin/sh";
+#endif
+ /* END PATCH for Guix */
if (pipe(tofds)) S_error("process","cannot open pipes");
if (pipe(fromfds)) {
@@ -897,7 +914,9 @@ static ptr s_process(char *s, IBOOL stderrp) {
}
}
#endif /* __GNU__ Hurd */
- execl("/bin/sh", "/bin/sh", "-c", s, NULL);
+ /* BEGIN PATCH for Guix */
+ execl(guix_sh, guix_sh, "-c", s, NULL);
+ /* END PATCH for Guix */
_exit(1) /* only if execl fails */;
/*NOTREACHED*/
} else {
base-commit: 87eee6e2adb8c6bc11e60619c706fa6295096085
--
2.32.0

View file

@ -1,7 +1,7 @@
From 3574b567c486d264d680a37586436c3b5a8cb978 Mon Sep 17 00:00:00 2001 From 6a553f24439fe64fd3a2f0b5902f00590ca4241f Mon Sep 17 00:00:00 2001
From: Philip McGrath <philip@philipmcgrath.com> From: Philip McGrath <philip@philipmcgrath.com>
Date: Thu, 4 Mar 2021 04:11:50 -0500 Date: Thu, 4 Mar 2021 04:11:50 -0500
Subject: [PATCH] patch rktio_process for "/bin/sh" on Guix Subject: [PATCH] rktio: patch rktio_process for "/bin/sh" on Guix
Racket provides the functions `system` and `process`, Racket provides the functions `system` and `process`,
which execute shell commands using `sh` (or `cmd` on Windows). which execute shell commands using `sh` (or `cmd` on Windows).
@ -12,37 +12,38 @@ This patch adds a special case for "/bin/sh" to `rktio_process`,
the C function that implements the core of `system`, `process`, the C function that implements the core of `system`, `process`,
and related Racket functions. and related Racket functions.
Guix should enable the special case by defining the C preprocessor
macro `GUIX_RKTIO_PATCH_BIN_SH` with the path to `sh` in the store.
If: If:
1. The `GUIX_RKTIO_PATCH_BIN_SH` macro is defined; and 1. The nonstandard but ubiquitous macro `_PATH_BSHELL` from
<paths.h> is defined; and
2. `rktio_process` is called with the exact path "/bin/sh"; and 2. `rktio_process` is called with the exact path "/bin/sh"; and
3. The path specified by `GUIX_RKTIO_PATCH_BIN_SH` does exists; 3. The file specified by `_PATH_BSHELL` exists;
then `rktio_process` will execute the file specified then `rktio_process` will execute the file specified by `_PATH_BSHELL`
by `GUIX_RKTIO_PATCH_BIN_SH` instead of "/bin/sh". instead of "/bin/sh".
Compared to previous attempts to patch the Racket sources, Checking that the path specified by `_PATH_BSHELL` exists safeguards
making this change at the C level is both: against obscure errors if attempting to use stand-alone executables
built by the patched Racket in non-Guix envoronments.
- More comprehensive: it catches all attempts to execute "/bin/sh",
without having to track down the source of every occurance; and
- Less intrusive: by guarding the special case with a C preprocessor
conditional and a runtime check that the file in the store exists,
we make it much less likely that it will "leak" out of Guix.
--- ---
racket/src/rktio/rktio_process.c | 21 ++++++++++++++++++++- racket/src/rktio/rktio_process.c | 17 ++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-) 1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/racket/src/rktio/rktio_process.c b/racket/src/rktio/rktio_process.c diff --git a/racket/src/rktio/rktio_process.c b/racket/src/rktio/rktio_process.c
index 89202436c0..465ebdd5c5 100644 index fafaf728c1..796ebc59ce 100644
--- a/racket/src/rktio/rktio_process.c --- a/racket/src/rktio/rktio_process.c
+++ b/racket/src/rktio/rktio_process.c +++ b/racket/src/rktio/rktio_process.c
@@ -1224,12 +1224,14 @@ int rktio_process_allowed_flags(rktio_t *rktio) @@ -9,6 +9,7 @@
# include <sys/wait.h>
# include <errno.h>
# include <unistd.h>
+# include <paths.h> /* PATCHED for Guix */
# ifdef USE_ULIMIT
# include <ulimit.h>
# endif
@@ -1301,12 +1302,14 @@ int rktio_process_allowed_flags(rktio_t *rktio)
/*========================================================================*/ /*========================================================================*/
rktio_process_result_t *rktio_process(rktio_t *rktio, rktio_process_result_t *rktio_process(rktio_t *rktio,
@ -58,22 +59,17 @@ index 89202436c0..465ebdd5c5 100644
rktio_process_result_t *result; rktio_process_result_t *result;
intptr_t to_subprocess[2], from_subprocess[2], err_subprocess[2]; intptr_t to_subprocess[2], from_subprocess[2], err_subprocess[2];
int pid; int pid;
@@ -1255,6 +1257,23 @@ rktio_process_result_t *rktio_process(rktio_t *rktio, @@ -1333,6 +1336,18 @@ rktio_process_result_t *rktio_process(rktio_t *rktio,
int i; int i;
#endif #endif
+/* BEGIN PATCH for Guix */ +/* BEGIN PATCH for Guix */
+#if defined(GUIX_RKTIO_PATCH_BIN_SH) +#if defined(_PATH_BSHELL)
+# define GUIX_AS_a_STR_HELPER(x) #x
+# define GUIX_AS_a_STR(x) GUIX_AS_a_STR_HELPER(x)
+ /* A level of indirection makes `#` work as needed: */
+ command = + command =
+ ((0 == strcmp(_guix_orig_command, "/bin/sh")) + ((0 == strcmp(_guix_orig_command, "/bin/sh"))
+ && rktio_file_exists(rktio, GUIX_AS_a_STR(GUIX_RKTIO_PATCH_BIN_SH))) + && rktio_file_exists(rktio, _PATH_BSHELL))
+ ? GUIX_AS_a_STR(GUIX_RKTIO_PATCH_BIN_SH) + ? _PATH_BSHELL
+ : _guix_orig_command; + : _guix_orig_command;
+# undef GUIX_AS_a_STR
+# undef GUIX_AS_a_STR_HELPER
+#else +#else
+ command = _guix_orig_command; + command = _guix_orig_command;
+#endif +#endif
@ -82,6 +78,8 @@ index 89202436c0..465ebdd5c5 100644
/* avoid compiler warnings: */ /* avoid compiler warnings: */
to_subprocess[0] = -1; to_subprocess[0] = -1;
to_subprocess[1] = -1; to_subprocess[1] = -1;
--
2.21.1 (Apple Git-122.3) base-commit: 9d228d16fb99c274c964e5bef93e97333888769f
--
2.32.0

View file

@ -0,0 +1,74 @@
From 73d9b77a11b4516905caf579abb559736f715ea6 Mon Sep 17 00:00:00 2001
From: Philip McGrath <philip@philipmcgrath.com>
Date: Mon, 11 Apr 2022 20:43:18 -0400
Subject: [PATCH] Zuo: patch zuo_process for "/bin/sh" on Guix
If:
1. The nonstandard but ubiquitous macro `_PATH_BSHELL` from
<paths.h> is defined; and
2. `zuo_process` is called with the exact path "/bin/sh"; and
3. The path specified by `_PATH_BSHELL` exists;
then `zuo_process` will execute the file specified by `_PATH_BSHELL`
instead of "/bin/sh".
Checking that the path specified by `_PATH_BSHELL` exists safeguards
against obscure errors if attempting to use stand-alone executables
built by the patched Racket in non-Guix envoronments.
---
racket/src/zuo/zuo.c | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/racket/src/zuo/zuo.c b/racket/src/zuo/zuo.c
index 17f161826d..c4fb3929bb 100644
--- a/racket/src/zuo/zuo.c
+++ b/racket/src/zuo/zuo.c
@@ -15,6 +15,7 @@
#include <string.h>
#include <ctype.h>
#ifdef ZUO_UNIX
+# include <paths.h> /* PATCHED for Guix */
# include <fcntl.h>
# include <unistd.h>
# include <errno.h>
@@ -5730,7 +5731,10 @@ static void zuo_pipe(zuo_raw_handle_t *_r, zuo_raw_handle_t *_w)
zuo_t *zuo_process(zuo_t *command_and_args)
{
const char *who = "process";
- zuo_t *command = _zuo_car(command_and_args);
+ /* BEGIN PATCH for Guix */
+ zuo_t *_guix_orig_command = _zuo_car(command_and_args);
+ zuo_t *command;
+ /* END PATCH for Guix */
zuo_t *args = _zuo_cdr(command_and_args), *rev_args = z.o_null;
zuo_t *options = z.o_empty_hash, *opt;
zuo_t *dir, *l, *p_handle, *result;
@@ -5741,7 +5745,19 @@ zuo_t *zuo_process(zuo_t *command_and_args)
void *env;
int as_child, exact_cmdline;
- check_path_string(who, command);
+ /* BEGIN PATCH for Guix */
+ check_path_string(who, _guix_orig_command);
+#if defined(_PATH_BSHELL)
+ command =
+ ((z.o_false == zuo_string_eql(_guix_orig_command, zuo_string("/bin/sh")))
+ || (z.o_false == zuo_stat(zuo_string(_PATH_BSHELL), z.o_false, z.o_true)))
+ ? _guix_orig_command
+ : zuo_string(_PATH_BSHELL);
+#else
+ command = _guix_orig_command;
+#endif
+ /* END PATCH for Guix */
+
for (l = args; l->tag == zuo_pair_tag; l = _zuo_cdr(l)) {
zuo_t *a = _zuo_car(l);
if (a == z.o_null) {
base-commit: 87eee6e2adb8c6bc11e60619c706fa6295096085
--
2.32.0

View file

@ -6,12 +6,12 @@ Starting from rust-openssl-sys@0.9.69 Cargo.toml starts searching for openssl-3.
--- a/Cargo.toml --- a/Cargo.toml
+++ b/Cargo.toml +++ b/Cargo.toml
@@ -31,14 +31,11 @@ @@ -31,15 +31,12 @@
[build-dependencies.cc] [build-dependencies.cc]
version = "1.0" version = "1.0"
-[build-dependencies.openssl-src] -[build-dependencies.openssl-src]
-version = "111.0.1" -version = "111"
-optional = true -optional = true
- -
[build-dependencies.pkg-config] [build-dependencies.pkg-config]
@ -20,6 +20,7 @@ Starting from rust-openssl-sys@0.9.69 Cargo.toml starts searching for openssl-3.
[features] [features]
vendored = ["openssl-src"] vendored = ["openssl-src"]
+openssl-src = [] +openssl-src = []
[target."cfg(target_env = \"msvc\")".build-dependencies.vcpkg] [target."cfg(target_env = \"msvc\")".build-dependencies.vcpkg]
version = "0.2" version = "0.2.8"

View file

@ -0,0 +1,41 @@
From 9434b4a36646c036db8de326158056aa3293fb82 Mon Sep 17 00:00:00 2001
From: Philip McGrath <philip@philipmcgrath.com>
Date: Thu, 28 Apr 2022 22:56:20 -0400
Subject: [PATCH] fix read-only gifs and math directories
An installed copy of stex might have all write permission bits removed,
even for the owner of the installed files: this is the case with Guix
package of stex, for example. If such an installation is used to
initialize the gifs or math directories (e.g. for an out-of-source
build), tar likewise creates them without write permissions, preventing
subdirectories from being created later. Set the user write bit
explicitly to avoid this problem.
Mf-stex
Related to https://github.com/racket/racket/pull/4203
---
Submitted upstream in https://github.com/dybvig/stex/pull/6
Mf-stex | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Mf-stex b/Mf-stex
index 09ec6f3..11fb214 100644
--- a/Mf-stex
+++ b/Mf-stex
@@ -112,9 +112,11 @@ $(x).mathrun: gifs $(mathfiles)
gifs:
(cd $(STEXLIB); tar -cf - gifs) | tar -xpf -
+ chmod u+w gifs
math:
(cd $(STEXLIB); tar -cf - math) | tar -xpf -
+ chmod u+w math
$(mathfiles): $(x).hthirdrun $(figps)
echo -n gifs= > $(mathfiles)
--
2.32.0

View file

@ -0,0 +1,299 @@
From c58cdb2b7fe72685f97dee5872336f32a40fa04a Mon Sep 17 00:00:00 2001
From: DRC <information@virtualgl.org>
Date: Tue, 23 Aug 2022 12:02:12 -0500
Subject: [PATCH] Improve support for distribution-specific builds
- Rename the DRI_DRIVER_PATH and SERVER_MISC_CONFIG_PATH CMake variables
to XORG_DRI_DRIVER_PATH and XORG_REGISTRY_PATH, respectively.
- Introduce a new CMake variable (XORG_FONT_PATH) that allows the X.org
font path to be set statically for a particular build.
- Remove the unused RGB_DB macro definition. (That macro hasn't been
used since TurboVNC 1.2.x.)
- Introduce a new CMake variable (TVNC_STATIC_XORG_PATHS) that forces
Xvnc and vncserver to honor the paths set using the
XKB_BASE_DIRECTORY, XKB_BIN_DIRECTORY, XORG_DRI_DRIVER_PATH,
XORG_FONT_PATH, and XORG_REGISTRY_PATH CMake variables rather than
trying to determine the appropriate values of those paths at run time.
If enabled, this option disables the TurboVNC-specific -dridir,
-registrydir, and -xkbcompdir Xvnc command-line arguments.
---
BUILDING.md | 25 +++++++++++++++++++
unix/CMakeLists.txt | 9 +++++++
unix/Xvnc/programs/Xserver/dix/CMakeLists.txt | 20 +++++++++------
unix/Xvnc/programs/Xserver/dix/registry.c | 2 +-
unix/Xvnc/programs/Xserver/glx/CMakeLists.txt | 12 ++++-----
unix/Xvnc/programs/Xserver/glx/glxdricommon.c | 2 +-
unix/Xvnc/programs/Xserver/hw/vnc/init.c | 10 +++++++-
unix/Xvnc/programs/Xserver/xkb/xkbInit.c | 2 +-
unix/vncserver.in | 13 +++++++---
9 files changed, 73 insertions(+), 22 deletions(-)
diff --git a/BUILDING.md b/BUILDING.md
index 99f190b2c..b11665f95 100644
--- a/BUILDING.md
+++ b/BUILDING.md
@@ -181,6 +181,31 @@ directly with libssl and libcrypto by adding `-DTVNC_DLOPENSSL=0` to the CMake
command line.
+### Distribution-Specific Build
+
+By default, the build system builds TurboVNC binaries that can run on multiple
+O/S distributions. This involves building some of the X.org dependencies,
+which are included in the TurboVNC source tree, and statically linking TurboVNC
+with those and other dependencies. Distribution-specific dynamically-linked
+TurboVNC binaries can instead be built by changing the values of the following
+CMake variables:
+
+- `TJPEG_INCLUDE_DIR`
+- `TJPEG_LIBRARY`
+- `TVNC_DLOPENSSL`
+- `TVNC_STATIC_XORG_PATHS`
+- `TVNC_SYSTEMLIBS`
+- `TVNC_SYSTEMX11`
+- `XKB_BASE_DIRECTORY`
+- `XKB_BIN_DIRECTORY`
+- `XORG_DRI_DRIVER_PATH`
+- `XORG_FONT_PATH`
+- `XORG_REGISTRY_PATH`
+
+Use `ccmake` or `cmake-gui`, as described below, to view documentation for
+those variables.
+
+
Build Recipes
-------------
diff --git a/unix/CMakeLists.txt b/unix/CMakeLists.txt
index 1db927c94..6ef830a8b 100644
--- a/unix/CMakeLists.txt
+++ b/unix/CMakeLists.txt
@@ -74,6 +74,15 @@ option(TVNC_SYSTEMLIBS
boolean_number(TVNC_SYSTEMLIBS)
report_option(TVNC_SYSTEMLIBS "System zlib/bzip2/FreeType")
+option(TVNC_STATIC_XORG_PATHS
+ "Force vncserver and Xvnc to use the XKB base directory, XKB binary directory, X.org DRI driver path, X.org font path, and X.org registry path specified in the XKB_BASE_DIRECTORY, XKB_BIN_DIRECTORY, XORG_DRI_DRIVER_PATH, XORG_FONT_PATH, and XORG_REGISTRY_PATH CMake variables rather than detecting the appropriate paths at run time"
+ OFF)
+boolean_number(TVNC_STATIC_XORG_PATHS)
+report_option(TVNC_STATIC_XORG_PATHS "Static X.org paths")
+if(TVNC_STATIC_XORG_PATHS)
+ add_definitions(-DTURBOVNC_STATIC_XORG_PATHS)
+endif()
+
if(NOT TVNC_SYSTEMLIBS)
add_subdirectory(${CMAKE_SOURCE_DIR}/common ${CMAKE_BINARY_DIR}/common)
endif()
diff --git a/unix/Xvnc/programs/Xserver/dix/CMakeLists.txt b/unix/Xvnc/programs/Xserver/dix/CMakeLists.txt
index 784fc48d2..19a7b28c4 100644
--- a/unix/Xvnc/programs/Xserver/dix/CMakeLists.txt
+++ b/unix/Xvnc/programs/Xserver/dix/CMakeLists.txt
@@ -1,18 +1,22 @@
include_directories(../Xi ../composite ../damageext ../mi ../miext/sync
../randr ../render ../xfixes)
-add_definitions(-DRGB_DB=\"/usr/share/X11/rgb\"
- -DCOMPILEDDEFAULTFONTPATH=\"/usr/share/X11/fonts/misc/,/usr/share/X11/fonts/Type1/,/usr/share/X11/fonts/75dpi/,/usr/share/X11/fonts/100dpi/\")
+set(DEFAULT_XORG_FONT_PATH
+ "/usr/share/X11/fonts/misc/,/usr/share/X11/fonts/Type1/,/usr/share/X11/fonts/75dpi/,/usr/share/X11/fonts/100dpi/")
+set(XORG_FONT_PATH ${DEFAULT_XORG_FONT_PATH} CACHE STRING
+ "X.org font path (default: ${DEFAULT_XORG_FONT_PATH})")
+message(STATUS "XORG_FONT_PATH = ${XORG_FONT_PATH}")
+add_definitions(-DCOMPILEDDEFAULTFONTPATH=\"${XORG_FONT_PATH}\")
if(BITS EQUAL 64)
- set(DEFAULT_SERVER_MISC_CONFIG_PATH "/usr/lib64/xorg")
+ set(DEFAULT_XORG_REGISTRY_PATH "/usr/lib64/xorg")
else()
- set(DEFAULT_SERVER_MISC_CONFIG_PATH "/usr/lib/xorg")
+ set(DEFAULT_XORG_REGISTRY_PATH "/usr/lib/xorg")
endif()
-set(SERVER_MISC_CONFIG_PATH ${DEFAULT_SERVER_MISC_CONFIG_PATH} CACHE PATH
- "Path to miscellaneous server config files (default: ${DEFAULT_SERVER_MISC_CONFIG_PATH})")
-message(STATUS "SERVER_MISC_CONFIG_PATH = ${SERVER_MISC_CONFIG_PATH}")
-add_definitions(-DSERVER_MISC_CONFIG_PATH=\"${SERVER_MISC_CONFIG_PATH}\")
+set(XORG_REGISTRY_PATH ${DEFAULT_XORG_REGISTRY_PATH} CACHE PATH
+ "X.org registry path, which contains protocol.txt (default: ${DEFAULT_XORG_REGISTRY_PATH})")
+message(STATUS "XORG_REGISTRY_PATH = ${XORG_REGISTRY_PATH}")
+add_definitions(-DSERVER_MISC_CONFIG_PATH=\"${XORG_REGISTRY_PATH}\")
disable_compiler_warnings()
diff --git a/unix/Xvnc/programs/Xserver/dix/registry.c b/unix/Xvnc/programs/Xserver/dix/registry.c
index de4bf8eaf..3e8039250 100644
--- a/unix/Xvnc/programs/Xserver/dix/registry.c
+++ b/unix/Xvnc/programs/Xserver/dix/registry.c
@@ -33,7 +33,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ifdef X_REGISTRY_REQUEST
#define CORE "X11"
-#ifdef TURBOVNC
+#if defined(TURBOVNC) && !defined(TURBOVNC_STATIC_XORG_PATHS)
char registry_path[PATH_MAX] = SERVER_MISC_CONFIG_PATH "/protocol.txt";
#define FILENAME registry_path
#else
diff --git a/unix/Xvnc/programs/Xserver/glx/CMakeLists.txt b/unix/Xvnc/programs/Xserver/glx/CMakeLists.txt
index 45f4b9635..ff8b84f6c 100644
--- a/unix/Xvnc/programs/Xserver/glx/CMakeLists.txt
+++ b/unix/Xvnc/programs/Xserver/glx/CMakeLists.txt
@@ -10,14 +10,14 @@ if(HAVE_BACKTRACE)
endif()
if(BITS EQUAL 64)
- set(DEFAULT_DRI_DRIVER_PATH "/usr/lib64/dri")
+ set(DEFAULT_XORG_DRI_DRIVER_PATH "/usr/lib64/dri")
else()
- set(DEFAULT_DRI_DRIVER_PATH "/usr/lib/dri")
+ set(DEFAULT_XORG_DRI_DRIVER_PATH "/usr/lib/dri")
endif()
-set(DRI_DRIVER_PATH ${DEFAULT_DRI_DRIVER_PATH} CACHE PATH
- "Path to DRI drivers (default: ${DEFAULT_DRI_DRIVER_PATH})")
-message(STATUS "DRI_DRIVER_PATH = ${DRI_DRIVER_PATH}")
-add_definitions(-DDRI_DRIVER_PATH=\"${DRI_DRIVER_PATH}\")
+set(XORG_DRI_DRIVER_PATH ${DEFAULT_XORG_DRI_DRIVER_PATH} CACHE PATH
+ "X.org DRI driver path, which contains swrast_dri.so (default: ${DEFAULT_XORG_DRI_DRIVER_PATH})")
+message(STATUS "XORG_DRI_DRIVER_PATH = ${XORG_DRI_DRIVER_PATH}")
+add_definitions(-DDRI_DRIVER_PATH=\"${XORG_DRI_DRIVER_PATH}\")
disable_compiler_warnings()
diff --git a/unix/Xvnc/programs/Xserver/glx/glxdricommon.c b/unix/Xvnc/programs/Xserver/glx/glxdricommon.c
index be9352b5e..a16e1bcf9 100644
--- a/unix/Xvnc/programs/Xserver/glx/glxdricommon.c
+++ b/unix/Xvnc/programs/Xserver/glx/glxdricommon.c
@@ -258,7 +258,7 @@ glxConvertConfigs(const __DRIcoreExtension * core,
return head.next;
}
-#ifdef TURBOVNC
+#if defined(TURBOVNC) && !defined(TURBOVNC_STATIC_XORG_PATH)
char *dri_driver_path = DRI_DRIVER_PATH;
#else
static const char dri_driver_path[] = DRI_DRIVER_PATH;
diff --git a/unix/Xvnc/programs/Xserver/hw/vnc/init.c b/unix/Xvnc/programs/Xserver/hw/vnc/init.c
index 81fbfe8b5..c8ba83772 100644
--- a/unix/Xvnc/programs/Xserver/hw/vnc/init.c
+++ b/unix/Xvnc/programs/Xserver/hw/vnc/init.c
@@ -103,7 +103,7 @@ from the X Consortium.
#ifdef GLXEXT
extern char *dri_driver_path;
#endif
-#ifdef X_REGISTRY_REQUEST
+#if defined(X_REGISTRY_REQUEST) && !defined(TURBOVNC_STATIC_XORG_PATHS)
extern char registry_path[PATH_MAX];
#endif
@@ -437,6 +437,7 @@ int ddxProcessArgument(int argc, char *argv[], int i)
return 2;
}
+#ifndef TURBOVNC_STATIC_XORG_PATHS
if (strcasecmp(argv[i], "-dridir") == 0) {
#ifdef GLXEXT
REQUIRE_ARG();
@@ -444,6 +445,7 @@ int ddxProcessArgument(int argc, char *argv[], int i)
#endif
return 2;
}
+#endif
if (strcasecmp(argv[i], "-geometry") == 0) {
/* -geometry WxH or W0xH0+X0+Y0[,W1xH1+X1+Y1,...] */
@@ -644,6 +646,7 @@ int ddxProcessArgument(int argc, char *argv[], int i)
/***** TurboVNC miscellaneous options *****/
+#ifndef TURBOVNC_STATIC_XORG_PATHS
if (strcasecmp(argv[i], "-registrydir") == 0) {
#ifdef X_REGISTRY_REQUEST
REQUIRE_ARG();
@@ -651,6 +654,7 @@ int ddxProcessArgument(int argc, char *argv[], int i)
#endif
return 2;
}
+#endif
if (strcasecmp(argv[i], "-verbose") == 0) {
LogSetParameter(XLOG_VERBOSITY, X_DEBUG);
@@ -1672,7 +1676,9 @@ void ddxUseMsg(void)
ErrorF("\nTurboVNC display options\n");
ErrorF("========================\n");
ErrorF("-depth D set framebuffer depth\n");
+#ifndef TURBOVNC_STATIC_XORG_PATHS
ErrorF("-dridir dir specify directory containing the swrast Mesa driver\n");
+#endif
ErrorF("-geometry WxH set framebuffer width & height (single-screen)\n");
ErrorF("-geometry W0xH0+X0+Y0[,W1xH1+X1+Y1,...,WnxHn+Xn+Yn]\n");
ErrorF(" set multi-screen geometry (see man page)\n");
@@ -1730,7 +1736,9 @@ void ddxUseMsg(void)
ErrorF("\nTurboVNC miscellaneous options\n");
ErrorF("==============================\n");
+#ifndef TURBOVNC_STATIC_XORG_PATHS
ErrorF("-registrydir dir specify directory containing protocol.txt\n");
+#endif
ErrorF("-verbose print all X.org errors, warnings, and messages\n");
ErrorF("-version report Xvnc version on stderr\n\n");
}
diff --git a/unix/Xvnc/programs/Xserver/xkb/xkbInit.c b/unix/Xvnc/programs/Xserver/xkb/xkbInit.c
index b63549f3d..ddd5ef7f2 100644
--- a/unix/Xvnc/programs/Xserver/xkb/xkbInit.c
+++ b/unix/Xvnc/programs/Xserver/xkb/xkbInit.c
@@ -767,7 +767,7 @@ XkbProcessArguments(int argc, char *argv[], int i)
return -1;
}
}
-#ifdef TURBOVNC
+#if defined(TURBOVNC) && !defined(TURBOVNC_XORG_STATIC_PATHS)
else if (strncmp(argv[i], "-xkbcompdir", 11) == 0) {
if (++i < argc) {
#if !defined(WIN32) && !defined(__CYGWIN__)
diff --git a/unix/vncserver.in b/unix/vncserver.in
index 4ed8ef668..300ccbf88 100644
--- a/unix/vncserver.in
+++ b/unix/vncserver.in
@@ -38,6 +38,7 @@ if ($slashndx >= 0) {
$xauth = "xauth";
$buildWebServer = @TVNC_BUILDWEBSERVER@;
+$staticXorgPaths = @TVNC_STATIC_XORG_PATHS@;
&SanityCheck();
@@ -98,6 +99,8 @@ unless ($xauthorityFile) {
chop($host = `uname -n`);
chop($os = `uname`);
+if (!$staticXorgPaths) {
+
if (-d "/etc/X11/fontpath.d") {
$fontPath = "catalogue:/etc/X11/fontpath.d";
}
@@ -195,6 +198,8 @@ foreach $_registrydir (@registrydirs) {
}
}
+} # !$staticXorgPaths
+
# Check command line options
&ParseOptions("-geometry", 1, "-depth", 1, "-pixelformat", 1, "-name", 1,
@@ -447,11 +452,11 @@ $cmd .= " -rfbport $vncPort";
$cmd .= " -fp $fontPath" if ($fontPath);
$cmd .= " -alr ".$autoLosslessRefresh if ($autoLosslessRefresh > 0.0);
$cmd .= " -deferupdate $deferUpdate";
-$cmd .= " -xkbdir $xkbdir" if ($xkbdir);
-$cmd .= " -xkbcompdir $xkbcompdir" if ($xkbcompdir);
+$cmd .= " -xkbdir $xkbdir" if ($xkbdir && !$staticXorgPaths);
+$cmd .= " -xkbcompdir $xkbcompdir" if ($xkbcompdir && !$staticXorgPaths);
$cmd .= " -pamsession" if ($pamSession);
-$cmd .= " -dridir $dridir" if ($dridir);
-$cmd .= " -registrydir $registrydir" if ($registrydir);
+$cmd .= " -dridir $dridir" if ($dridir && !$staticXorgPaths);
+$cmd .= " -registrydir $registrydir" if ($registrydir && !$staticXorgPaths);
$cmd .= " -nomt" if (!$multiThread);
$cmd .= " -nthreads $numThreads" if ($numThreads);
$cmd .= " $serverArgs" if ($serverArgs);

View file

@ -0,0 +1,51 @@
From b4e1ffcdbfe8dc98036a16022cbcc422385c1834 Mon Sep 17 00:00:00 2001
From: DRC <information@virtualgl.org>
Date: Tue, 23 Aug 2022 10:07:10 -0500
Subject: [PATCH] Build: Find Xfont2/fontenc/Pixman using pkg-config
... when TVNC_SYSTEMX11=1. Referring to #339, we can't assume that
these libraries will share include/library paths with libX11. This
commit reverts e9cb8665dc3822b33dc0ffc5571fce5a759e7cb9.
Rebased on 3.0.1 by Maxim Cournoyer <maxim.cournoyer@gmail.com>
diff --git a/unix/Xvnc/CMakeLists.txt b/unix/Xvnc/CMakeLists.txt
index 064feda..293f794 100644
--- a/unix/Xvnc/CMakeLists.txt
+++ b/unix/Xvnc/CMakeLists.txt
@@ -94,11 +94,13 @@ if(NOT TVNC_SYSTEMX11)
endif()
if(TVNC_SYSTEMX11)
+ include(FindPkgConfig)
+ pkg_check_modules(X11_Xfont2 REQUIRED xfont2)
+ pkg_check_modules(X11_Fontenc REQUIRED fontenc)
+ pkg_check_modules(X11_Pixman REQUIRED pixman-1)
include_directories(${X11_X11_INCLUDE_PATH} ${X11_Xau_INCLUDE_PATH}
- ${X11_Xdmcp_INCLUDE_PATH} ${X11_Xkbfile_INCLUDE_PATH})
- string(REGEX REPLACE "X11" "Xfont2" X11_Xfont2_LIB ${X11_X11_LIB})
- string(REGEX REPLACE "X11" "fontenc" X11_Fontenc_LIB ${X11_X11_LIB})
- string(REGEX REPLACE "X11" "pixman-1" X11_Pixman_LIB ${X11_X11_LIB})
+ ${X11_Xdmcp_INCLUDE_PATH} ${X11_Xkbfile_INCLUDE_PATH}
+ ${X11_Xfont2_INCLUDEDIR} ${X11_Pixman_INCLUDEDIR}/pixman-1)
else()
include_directories(${CMAKE_CURRENT_BINARY_DIR}/X_include)
set(X11_Xau_LIB Xau)
diff --git a/unix/Xvnc/programs/Xserver/CMakeLists.txt b/unix/Xvnc/programs/Xserver/CMakeLists.txt
index 8c05d43..f8d8f76 100644
--- a/unix/Xvnc/programs/Xserver/CMakeLists.txt
+++ b/unix/Xvnc/programs/Xserver/CMakeLists.txt
@@ -182,9 +182,10 @@ if(HAVE_MONOTONIC_CLOCK)
endif()
target_link_libraries(Xvnc dix mi vnc fb Xi composite mi damage damageext randr
record render os present Xext-server sync xfixes xkb ${X11_Xau_LIB}
- ${X11_Xdmcp_LIB} ${X11_Xfont2_LIB} ${X11_Fontenc_LIB} ${FREETYPE_LIBRARIES}
- ${X11_Pixman_LIB} sha1 ${TJPEG_LIBRARY} ${ZLIB_LIBRARIES} ${BZIP2_LIBRARIES}
- vncauth m pthread ${PAM_LIB} ${EXTRA_LIB})
+ ${X11_Xdmcp_LIB} ${X11_Xfont2_LDFLAGS} ${X11_Fontenc_LDFLAGS}
+ ${FREETYPE_LIBRARIES} ${X11_Pixman_LDFLAGS} sha1 ${TJPEG_LIBRARY}
+ ${ZLIB_LIBRARIES} ${BZIP2_LIBRARIES} vncauth m pthread ${PAM_LIB}
+ ${EXTRA_LIB})
if(APPLE OR CMAKE_SYSTEM_NAME MATCHES "(OpenBSD|FreeBSD|NetBSD|DragonFly)")
find_library(ICONV_LIBRARIES NAMES iconv)
target_link_libraries(Xvnc ${ICONV_LIBRARIES})

View file

@ -397,13 +397,13 @@ wrapper. It provides a backport of the @code{Path} object.")
(define-public python-zopfli (define-public python-zopfli
(package (package
(name "python-zopfli") (name "python-zopfli")
(version "0.1.9") (version "0.2.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "zopfli" version ".zip")) (uri (pypi-uri "zopfli" version ".zip"))
(sha256 (sha256
(base32 "0yqdwvlpbvhhri0qmzag076ddi0sv43qjlk17l0siylfib03rpkq")))) (base32 "1ipjkcgdbplsrhr31ypk48px8cax4cm9gcjj7yrcrhg20ql3s9p5"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
(list (list
@ -417,8 +417,8 @@ wrapper. It provides a backport of the @code{Path} object.")
(replace 'check (replace 'check
(lambda* (#:key tests? #:allow-other-keys) (lambda* (#:key tests? #:allow-other-keys)
(when tests? (when tests?
(invoke "python" "tests/tests.py" "-v"))))))) (invoke "pytest" "-vv")))))))
(native-inputs (list unzip python-setuptools-scm)) (native-inputs (list unzip python-pytest python-setuptools-scm))
(inputs (list zopfli)) (inputs (list zopfli))
(home-page "https://github.com/fonttools/py-zopfli") (home-page "https://github.com/fonttools/py-zopfli")
(synopsis "Python bindings for Zopfli") (synopsis "Python bindings for Zopfli")

View file

@ -2574,20 +2574,25 @@ downloaded, or download a strip for a particular date or index, if possible.")
(define-public python-et-xmlfile (define-public python-et-xmlfile
(package (package
(name "python-et-xmlfile") (name "python-et-xmlfile")
(version "1.0.1") (version "1.1")
(source (source
(origin (origin
(method url-fetch) ;; Use a checkout because the PyPI archive does not contain tests.
(uri (pypi-uri "et_xmlfile" version)) (method hg-fetch)
(uri (hg-reference
(url "https://foss.heptapod.net/openpyxl/et_xmlfile")
(changeset version)))
(file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 (base32 "09r8rjc5bhkqrm5c4n9jrlvad8vrvbyswl9g0wrc1qc7nzh9mpw7"))))
"0nrkhcb6jdrlb6pwkvd4rycw34y3s931hjf409ij9xkjsli9fkb1"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases (list #:phases
(replace 'check #~(modify-phases %standard-phases
(lambda _ (replace 'check
(invoke "pytest")))))) (lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest" "-vv")))))))
(native-inputs (native-inputs
(list python-pytest python-lxml)) ;used for the tests (list python-pytest python-lxml)) ;used for the tests
(home-page "https://bitbucket.org/openpyxl/et_xmlfile") (home-page "https://bitbucket.org/openpyxl/et_xmlfile")
@ -3544,20 +3549,22 @@ version numbers.")
(define-public python-jdcal (define-public python-jdcal
(package (package
(name "python-jdcal") (name "python-jdcal")
(version "1.4") (version "1.4.1")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "jdcal" version)) (uri (pypi-uri "jdcal" version))
(sha256 (sha256
(base32 (base32
"1ja6j2xq97bsl6rv09mhdx7n0xnrsfx0mj5xqza0mxghqmkm02pa")))) "1j6g19jf21qprjsr8h0r7nsbss366gy8j9izq8cz53gbjvh74a27"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases (list #:phases
(replace 'check #~(modify-phases %standard-phases
(lambda _ (replace 'check
(invoke "pytest")))))) (lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest" "-vv")))))))
(native-inputs (native-inputs
(list python-pytest)) (list python-pytest))
(home-page "https://github.com/phn/jdcal") (home-page "https://github.com/phn/jdcal")
@ -7494,7 +7501,7 @@ a front-end for C compilers or analysis tools.")
(define-public python-xlsxwriter (define-public python-xlsxwriter
(package (package
(name "python-xlsxwriter") (name "python-xlsxwriter")
(version "1.3.9") (version "3.0.3")
(source (source
(origin (origin
;; There are no tests in the PyPI tarball. ;; There are no tests in the PyPI tarball.
@ -7504,7 +7511,7 @@ a front-end for C compilers or analysis tools.")
(commit (string-append "RELEASE_" version)))) (commit (string-append "RELEASE_" version))))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "04idf331rp0iyhlnh7268jmim8ydw4jjb81hr5rh548sqnq4bhpl")))) (base32 "1lr7mmik6r4zns069i4zfx1cnwhz6snmlh2zsiry0cwx8cv33wpm"))))
(build-system python-build-system) (build-system python-build-system)
(home-page "https://github.com/jmcnamara/XlsxWriter") (home-page "https://github.com/jmcnamara/XlsxWriter")
(synopsis "Python module for creating Excel XLSX files") (synopsis "Python module for creating Excel XLSX files")
@ -7691,7 +7698,7 @@ support for Python 3 and PyPy. It is based on cffi.")
(define-public python-cairocffi (define-public python-cairocffi
(package (package
(name "python-cairocffi") (name "python-cairocffi")
(version "1.2.0") (version "1.3.0")
(source (source
(origin (origin
;; The PyPI archive does not include the documentation, so use Git. ;; The PyPI archive does not include the documentation, so use Git.
@ -7702,7 +7709,7 @@ support for Python 3 and PyPy. It is based on cffi.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1ypw0c2lr43acn57hbmckk183zq4h477j7p4ig2zjvw0mcpvia50")))) "0lylyxyyd8csjhn5kxwzrcr6ick6pvvm1wclpmb5ni28jznxn7lb"))))
(build-system python-build-system) (build-system python-build-system)
(outputs '("out" "doc")) (outputs '("out" "doc"))
(inputs (inputs
@ -11255,13 +11262,13 @@ It has a flexible system of @samp{authorizers} able to manage both
(define-public python-fs (define-public python-fs
(package (package
(name "python-fs") (name "python-fs")
(version "2.4.14") (version "2.4.16")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "fs" version)) (uri (pypi-uri "fs" version))
(sha256 (sha256
(base32 "0v5kqzi0vd8ar4j4qf5440nzwa9dcagpxb3q6k0cln4cqlmxqmcm")))) (base32 "04ykd7q49qgv13hl2n71lzihs2c9099r50lmd85vgx0k2bawg5xf"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
(list (list
@ -22563,7 +22570,7 @@ Let's Encrypt.")
(define-public python-cfgv (define-public python-cfgv
(package (package
(name "python-cfgv") (name "python-cfgv")
(version "3.1.0") (version "3.3.1")
(source (source
(origin (origin
;; There are no tests in the PyPI tarball. ;; There are no tests in the PyPI tarball.
@ -22573,16 +22580,17 @@ Let's Encrypt.")
(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 "1vvkkqw92sak4b28bpscpppq483amy52ch2yqy1i2m23q7xjkabx")))) (base32 "1pci97cmn3v45sfch9s3lshidrl0309ls9byidic0l8drkwnkwcj"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda _ (lambda* (#:key tests? #:allow-other-keys)
(invoke "pytest" "-vv")))))) (when tests?
(invoke "pytest" "-vv")))))))
(native-inputs (native-inputs
(list python-covdefaults python-coverage python-pytest)) (list python-pytest))
(home-page "https://github.com/asottile/cfgv") (home-page "https://github.com/asottile/cfgv")
(synopsis "Configuration validation library") (synopsis "Configuration validation library")
(description (description

View file

@ -36,7 +36,6 @@
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages chez) #:use-module (gnu packages chez)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
@ -54,7 +53,7 @@
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module ((guix licenses) #:prefix license:)) #:use-module ((guix licenses) #:prefix license:))
;; Commentary: ;; COMMENTARY:
;; ;;
;; Anatomy of Racket: ;; Anatomy of Racket:
;; ------------------ ;; ------------------
@ -73,14 +72,16 @@
;; ├── bc/ ;; ├── bc/
;; ├── cs/ ;; ├── cs/
;; ├── ChezScheme/ ;; ├── ChezScheme/
;; ├── zuo/
;; └── ... ;; └── ...
;; ;;
;; The 'racket/src/' directory contains the source of the runtime system, core ;; The 'racket/src/' directory contains the source of the runtime system, core
;; compiler, and primitives for the major Racket implementations: this layer ;; compiler, and primitives for the major Racket implementations: this layer
;; is called the ``Racket VM''. It is basically a normal autotools ;; is called the ``Racket VM''. It is basically a normal Autoconf project,
;; project. (Even when Racket VM implementations use components implemented in ;; except that the makefiles just run Zuo to do the real work. (Even when
;; Racket, they are compiled in special modes to produce VM primitives.) ;; Racket VM implementations use components implemented in Racket, they are
;; (There are or have been experimental Racket VM implementations elsewhere, ;; compiled in special modes to produce VM primitives.) (There are or have
;; been experimental Racket VM implementations elsewhere,
;; e.g. <https://github.com/pycket/pycket>.) ;; e.g. <https://github.com/pycket/pycket>.)
;; ;;
;; The 'racket/collects/' directory contains ``built in'' Racket libraries ;; The 'racket/collects/' directory contains ``built in'' Racket libraries
@ -101,10 +102,10 @@
;; ;;
;; The top-level 'Makefile' is more like a directory of scripts: it has ;; The top-level 'Makefile' is more like a directory of scripts: it has
;; convienience targets for developing Racket, and it cooperates with the ;; convienience targets for developing Racket, and it cooperates with the
;; 'distro-build' package to assemble custom Racket distributions. It is not ;; 'distro-build' package to assemble custom Racket distributions. (Again,
;; part of Racket source distributions: the root of a source distribution is ;; the makefile just delegates to Zuo.) It is not part of Racket source
;; basically 'racket/src' with some extra package sources and configuration ;; distributions: the root of a source distribution is basically 'racket/src'
;; added. ;; with some extra package sources and configuration added.
;; ;;
;; A ''minimal Racket'' installation includes two packages: 'base', which is a ;; A ''minimal Racket'' installation includes two packages: 'base', which is a
;; sort of bridge between the current ``built-in'' collections and the package ;; sort of bridge between the current ``built-in'' collections and the package
@ -127,15 +128,14 @@
;; This file defines the packages 'racket-vm-cgc', 'racket-vm-bc', and ;; This file defines the packages 'racket-vm-cgc', 'racket-vm-bc', and
;; 'racket-vm-cs'. All three are in-place builds of 'racket/src/' and ;; 'racket-vm-cs'. All three are in-place builds of 'racket/src/' and
;; 'racket/collects/' and are installed to 'opt/racket-vm/' in the store ;; 'racket/collects/' and are installed to 'opt/racket-vm/' in the store
;; output. The function 'racket-vm-for-system' returns the recomended Racket ;; output.
;; VM package for a given system.
;; ;;
;; The file 'racket.scm' builds on these packages to define 'racket-minimal' ;; Using 'racket-vm-cs', we then define the packages 'racket-minimal' and
;; and 'racket' packages. These use Racket's support for ``layered ;; 'racket'. These use Racket's support for ``layered installations'', which
;; installations'', which allow an immutable base layer to be extended with ;; allow an immutable base layer to be extended with additional packages.
;; additional packages. They use the layer configuration directly provide ;; They use the layer configuration directly provide ready-to-install FHS-like
;; ready-to-install FHS-like trees, rather than relying on the built in ;; trees, rather than relying on the built in ``Unix-style install''
;; ``Unix-style install'' mechanism. ;; mechanism.
;; ;;
;; Bootstrapping Racket: ;; Bootstrapping Racket:
;; --------------------- ;; ---------------------
@ -178,29 +178,21 @@
;; However, other Racket subsystems implemented in Racket for Racket CS ;; However, other Racket subsystems implemented in Racket for Racket CS
;; use older C implementations for Racket BC, whereas the reader, expander, ;; use older C implementations for Racket BC, whereas the reader, expander,
;; and module system were completely replaced with the Racket implementation ;; and module system were completely replaced with the Racket implementation
;; as of Racket 7.0. ;; as of Racket 7.0. See also <https://racket.discourse.group/t/951/4>.
;; ;;
;; For Racket BC, the compiled "linklet" s-expressions (primitive modules) ;; For Racket BC, the compiled "linklet" s-expressions (primitive modules)
;; are embeded in C as a static string constant. Eventually, they are further ;; are embeded in C as a static string constant. Eventually, they are further
;; compiled by the C-implemented Racket BC bytecode and JIT compilers. ;; compiled by the C-implemented Racket BC bytecode and JIT compilers.
;; (On platforms where Racket BC's JIT is not supported, yet another compiler
;; instead compiles the linklets to C code, but this is not a bootstrapping
;; issue.)
;; ;;
;; Code: ;; Zuo is notably *not* a problem for bootstrapping. The implementation is a
;; single hand-written C file designed to build with just `cc -o zuo zuo.c`,
;; even with very old or limited compilers. (We use the Autoconf support for
;; convienience.)
;;
;; CODE:
(define* (racket-vm-for-system #:optional (define %racket-version "8.6") ; Remember to update chez-scheme-for-racket!
(system (or (%current-target-system) (define %zuo-version "1.0") ; defined in racket/src/zuo/zuo.c
(%current-system))))
"Return 'racket-vm-cs' if we are able to build it for SYSTEM; 'racket-vm-bc'
otherwise."
;; Once we figure out the issues in https://racket.discourse.group/t/950,
;; we can use 'racket-vm-cs' everywhere.
(if (racket-cs-native-supported-system? system)
racket-vm-cs
racket-vm-bc))
(define %racket-version "8.5") ; Remember to update chez-scheme-for-racket!
(define %racket-commit (define %racket-commit
(string-append "v" %racket-version)) (string-append "v" %racket-version))
(define %racket-origin (define %racket-origin
@ -210,9 +202,15 @@ otherwise."
(url "https://github.com/racket/racket") (url "https://github.com/racket/racket")
(commit %racket-commit))) (commit %racket-commit)))
(sha256 (sha256
(base32 "0f9zyhdvbh4xsndrqjzl85j5ziz0rmqi676g9s1lw3h3skq2636h")) (base32 "1lw6h70dk8zqpl96zz0hmhn8vjcc0c7gw4prkfz2wid5bkq4mhg4"))
(file-name (git-file-name "racket" %racket-version)) (file-name (git-file-name "racket" %racket-version))
(patches (search-patches "racket-minimal-sh-via-rktio.patch")) (patches (search-patches "racket-backport-8.6-cross-install.patch"
"racket-backport-8.6-docindex-write.patch"
"racket-backport-8.6-hurd.patch"
"racket-backport-8.6-zuo.patch"
"racket-chez-scheme-bin-sh.patch"
"racket-rktio-bin-sh.patch"
"racket-zuo-bin-sh.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
#~(begin #~(begin
@ -232,8 +230,44 @@ otherwise."
;; Unbundle libffi. ;; Unbundle libffi.
(delete-file-recursively "racket/src/bc/foreign/libffi"))))) (delete-file-recursively "racket/src/bc/foreign/libffi")))))
(define (racket-vm-common-configure-flags)
;; under a lambda abstraction to avoid evaluating bash-minimal too early. (define-public zuo
(let ((revision #f))
(package
(name "zuo")
(version (string-append %zuo-version
"-racket"
%racket-version
(if revision "-guix" "")
(or revision "")))
(source %racket-origin)
(outputs '("out" "debug"))
(build-system gnu-build-system)
(arguments
(list
#:out-of-source? #t
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda args
(chdir "racket/src/zuo"))))))
(home-page "https://github.com/racket/zuo")
;; ^ This is downstream of https://github.com/racket/racket,
;; but it's designed to be a friendly landing place
(synopsis "Tiny Racket for build scripts")
(description "Zuo () is a tiny Racket with primitives for dealing
with files and running processes. It comes with a @command{make}-like
embedded DSL, which is used to build Racket itself.
Zuo is a Racket variant in the sense that program files start with
@code{#lang}, and the module path after @code{#lang} determines the parsing
and expansion of the file content. That's how the @command{make}-like DSL is
defined, and even the base Zuo language is defined by layers of @code{#lang}s.
One of the early layers implements macros.")
(license (list license:asl2.0 license:expat)))))
(define racket-vm-common-configure-flags
#~`(,@(cond #~`(,@(cond
((false-if-exception ((false-if-exception
(search-input-file %build-inputs "/bin/libtool")) (search-input-file %build-inputs "/bin/libtool"))
@ -248,8 +282,6 @@ otherwise."
(list (string-append "--enable-racket=" racket)))) (list (string-append "--enable-racket=" racket))))
(else (else
'())) '()))
,(string-append "CPPFLAGS=-DGUIX_RKTIO_PATCH_BIN_SH="
#$(file-append bash-minimal "/bin/sh"))
"--disable-strip" "--disable-strip"
;; Using --enable-origtree lets us distinguish the VM from subsequent ;; Using --enable-origtree lets us distinguish the VM from subsequent
;; layers and produces a build with the shape expected by tools such as ;; layers and produces a build with the shape expected by tools such as
@ -267,16 +299,23 @@ otherwise."
(version %racket-version) (version %racket-version)
(source %racket-origin) (source %racket-origin)
(inputs (list ncurses ;; <- common to all variants (for #%terminal) (inputs (list ncurses ;; <- common to all variants (for #%terminal)
bash-minimal ;; <- common to all variants (for `system`) libffi)) ;; <- for BC and non-native CS variants
libffi)) ;; <- only for BC variants (native-inputs (cons* zuo ;; <- for all variants
(native-inputs (list libtool)) ;; <- only for BC variants libtool ;; <- only for BC variants
(if (%current-target-system)
(list this-package)
'())))
(outputs '("out" "debug")) (outputs '("out" "debug"))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (list
#:configure-flags #:configure-flags
#~(cons "--enable-cgcdefault" #~(cons "--enable-cgcdefault"
#$(racket-vm-common-configure-flags)) #$racket-vm-common-configure-flags)
#:make-flags
#~(list (string-append "ZUO="
#+(this-package-native-input "zuo")
"/bin/zuo"))
;; Tests are in packages like racket-test-core and ;; Tests are in packages like racket-test-core and
;; main-distribution-test that aren't part of the main ;; main-distribution-test that aren't part of the main
;; distribution. ;; distribution.
@ -353,21 +392,34 @@ code to use the 3M garbage collector.")
(inherit racket-vm-cgc) (inherit racket-vm-cgc)
(name "racket-vm-bc") (name "racket-vm-bc")
(native-inputs (native-inputs
(modify-inputs (package-native-inputs racket-vm-cgc) (if (%current-target-system)
(prepend racket-vm-cgc))) (package-native-inputs racket-vm-cgc)
(modify-inputs (package-native-inputs racket-vm-cgc)
(prepend racket-vm-cgc))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments racket-vm-cgc) (substitute-keyword-arguments (package-arguments racket-vm-cgc)
((#:configure-flags _ '()) ((#:configure-flags _ '())
#~(cons "--enable-bconly" #~(cons "--enable-bconly"
#$(racket-vm-common-configure-flags))))) #$(cond
((target-ppc64le?)
;; Attempt to avoid a problem bootstrapping Chez Scheme:
;; see <https://issues.guix.gnu.org/57050#19>
;; and <https://racket.discourse.group/t/950/30>.
#~(map
(lambda (flag)
(if (string-prefix? "CPPFLAGS=" flag)
(string-append flag
" -DSTACK_SAFETY_MARGIN=2000000")
flag))
#$racket-vm-common-configure-flags))
(else
racket-vm-common-configure-flags))))))
(synopsis "Racket BC [3M] implementation") (synopsis "Racket BC [3M] implementation")
(description "The Racket BC (``before Chez'' or ``bytecode'') (description "The Racket BC (``before Chez'' or ``bytecode'')
implementation was the default before Racket 8.0. It uses a compiler written implementation was the default before Racket 8.0. It uses a compiler written
in C targeting architecture-independent bytecode, plus a JIT compiler on most in C targeting architecture-independent bytecode, plus a JIT compiler on most
platforms. Racket BC has a different C API and supports a slightly different platforms. Racket BC has a different C API than the current default runtime
set of architectures than the current default runtime system, Racket CS (based system, Racket CS (based on ``Chez Scheme'').
on ``Chez Scheme''). It is the recommended implementation for architectures
that Racket CS doesn't support.
This package is the normal implementation of Racket BC with a precise garbage This package is the normal implementation of Racket BC with a precise garbage
collector, 3M (``Moving Memory Manager'').") collector, 3M (``Moving Memory Manager'').")
@ -380,15 +432,24 @@ collector, 3M (``Moving Memory Manager'').")
(inherit racket-vm-bc) (inherit racket-vm-bc)
(name "racket-vm-cs") (name "racket-vm-cs")
(inputs (inputs
(modify-inputs (package-inputs racket-vm-cgc) (let ((inputs (modify-inputs (package-inputs racket-vm-cgc)
(prepend zlib lz4) (prepend zlib lz4))))
(delete "libffi"))) (if (racket-cs-native-supported-system?)
(modify-inputs inputs
(delete "libffi"))
inputs)))
(native-inputs (native-inputs
(modify-inputs (package-native-inputs racket-vm-cgc) (let ((native-inputs (package-native-inputs racket-vm-cgc)))
(delete "libtool") (modify-inputs (if (%current-target-system)
(prepend chez-scheme-for-racket (modify-inputs native-inputs
chez-nanopass-bootstrap (delete "racket-vm-cgc"))
racket-vm-bc))) native-inputs)
(delete "libtool")
(prepend chez-scheme-for-racket
chez-nanopass-bootstrap
(if (%current-target-system)
racket-vm-cs
racket-vm-bc)))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments racket-vm-cgc) (substitute-keyword-arguments (package-arguments racket-vm-cgc)
((#:phases those-phases #~%standard-phases) ((#:phases those-phases #~%standard-phases)
@ -402,15 +463,22 @@ collector, 3M (``Moving Memory Manager'').")
"--enable-libz" "--enable-libz"
"--enable-lz4" "--enable-lz4"
(string-append "--enable-scheme=" (string-append "--enable-scheme="
#$(this-package-native-input #+(this-package-native-input
"chez-scheme-for-racket") "chez-scheme-for-racket")
"/bin/scheme") "/bin/scheme")
#$(racket-vm-common-configure-flags))))) #$@(if (racket-cs-native-supported-system?)
#~()
#~(#$(string-append "--enable-mach="
(nix-system->pbarch-machine-type))
"--enable-pb"))
#$racket-vm-common-configure-flags))))
(synopsis "Racket CS implementation") (synopsis "Racket CS implementation")
(description "The Racket CS implementation, which uses ``Chez Scheme'' as (description "The Racket CS implementation, which uses ``Chez Scheme'' as
its core compiler and runtime system, has been the default Racket VM its core compiler and runtime system, has been the default Racket VM
implementation since Racket 8.0. It performs better than the Racket BC implementation since Racket 8.0. It performs better than the Racket BC
implementation for most programs. implementation for most programs. On systems for which Racket CS cannot
generate machine code, this package uses a variant of its ``portable
bytecode'' backend specialized for word size and endianness.
Using the Racket VM packages directly is not recommended: instead, install the Using the Racket VM packages directly is not recommended: instead, install the
@code{racket-minimal} or @code{racket} packages.") @code{racket-minimal} or @code{racket} packages.")
@ -486,7 +554,7 @@ used to build the name of the resulting store item."
(inputs (inputs
(list openssl (list openssl
sqlite sqlite
(racket-vm-for-system) racket-vm-cs
(racket-packages-origin (racket-packages-origin
"base" %racket-origin "base" %racket-origin
'(("base" "pkgs/base") '(("base" "pkgs/base")
@ -604,7 +672,7 @@ DrRacket IDE, are not included.")
unixodbc unixodbc
libedit ;; TODO reconsider in light of expeditor and readline-gpl libedit ;; TODO reconsider in light of expeditor and readline-gpl
racket-minimal ;; <-- TODO non-tethered layer racket-minimal ;; <-- TODO non-tethered layer
(racket-vm-for-system) racket-vm-cs
(simple-racket-origin (simple-racket-origin
"2d" (base32 "0fb5v6058ls08xw3zbmqyr2ym0psm119gl9ffgmhm9w8rs9i4dq7") "2d" (base32 "0fb5v6058ls08xw3zbmqyr2ym0psm119gl9ffgmhm9w8rs9i4dq7")
'("2d" "2d-doc" "2d-lib")) '("2d" "2d-doc" "2d-lib"))
@ -636,25 +704,25 @@ DrRacket IDE, are not included.")
"contract-profile" (base32 "1xm2z8g0dpv5d9h2sg680vx1a8ix9gbsdpxxb8qv1w7akp73paj3") "contract-profile" (base32 "1xm2z8g0dpv5d9h2sg680vx1a8ix9gbsdpxxb8qv1w7akp73paj3")
'(("contract-profile" "."))) '(("contract-profile" ".")))
(simple-racket-origin (simple-racket-origin
"data" (base32 "10iabgrk9alaggvksnyb0hdq7f1p30pq6pq2bcakvhzpxwiv1f55") "data" (base32 "08sj4m0g0cp7gwb0nq90m770f0c21b7ydif7nljc8rxmcdprfisc")
'("data" "data-doc" "data-enumerate-lib" "data-lib")) '("data" "data-doc" "data-enumerate-lib" "data-lib"))
(simple-racket-origin (simple-racket-origin
"datalog" (base32 "0nf6cy4djpyhfvgpa6yn72apbz9s83gp0qg95pzjd0az4v6qwq1s") "datalog" (base32 "0nf6cy4djpyhfvgpa6yn72apbz9s83gp0qg95pzjd0az4v6qwq1s")
'(("datalog" "."))) '(("datalog" ".")))
(simple-racket-origin (simple-racket-origin
"db" (base32 "1n02ja0yj3mjjhmz0yv04yfhyvrsznbljn8bjviyfxnm4xf9rcc5") "db" (base32 "0jzsbfcdm3xj0g8xxw3ky2swrhiqqsq2aqa3r08m641dc981dmjq")
'("db" "db-doc" "db-lib")) '("db" "db-doc" "db-lib"))
(simple-racket-origin (simple-racket-origin
"deinprogramm" (base32 "0g8flr1qg3bcyhdinqhs4w7dyisaqyailbxrjgd2a7zlqmdyicfr") "deinprogramm" (base32 "16ncs3ms3mmdavbk0mkhm2qi62vyyif9cch3sn1y64pij489x34v")
'("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 "1fpk85rs2crd63bxnmwj2pysisd62pxcqaip01si67dv1ri8ff92") "draw" (base32 "00rq5y4ba6z1d6jh76kl8rwpxrlqqp81a875zyhk3k81i42635sm")
'("draw" "draw-doc" "draw-lib")) '("draw" "draw-doc" "draw-lib"))
(simple-racket-origin (simple-racket-origin
"drracket" (base32 "0dipnz92c63zxys9z1kl5215rm7arc35g9r8bs8ivp96p75mljnz") "drracket" (base32 "05d7wssi0ry13alb5hl3llpsg30dd0jhyfv5nb1nmg189fn42q62")
'("drracket" '("drracket"
"drracket-plugin-lib" "drracket-plugin-lib"
"drracket-tool" "drracket-tool"
@ -671,7 +739,7 @@ DrRacket IDE, are not included.")
"eopl" (base32 "1fmiixj6rxsgzwvgva8lvrvv0gl49v2405mp3s0i7ipis5c4n27s") "eopl" (base32 "1fmiixj6rxsgzwvgva8lvrvv0gl49v2405mp3s0i7ipis5c4n27s")
'(("eopl" "."))) '(("eopl" ".")))
(simple-racket-origin (simple-racket-origin
"errortrace" (base32 "14m7rhaxngj36070iw15am434hm438pfgmwjfsiqhsglz4pcxhip") "errortrace" (base32 "0r5630bb2d6hk0fbi95fmyfja54nnwdfcj2zjba124pp6xkjyavx")
'("errortrace" "errortrace-doc" "errortrace-lib")) '("errortrace" "errortrace-doc" "errortrace-lib"))
(simple-racket-origin (simple-racket-origin
"expeditor" (base32 "0mjfwb4wzwsg5xj3k6cmik0va432n56rp5h7rxx1c2yy3prh1j7q") "expeditor" (base32 "0mjfwb4wzwsg5xj3k6cmik0va432n56rp5h7rxx1c2yy3prh1j7q")
@ -688,13 +756,13 @@ DrRacket IDE, are not included.")
"games" (base32 "0kpn3izlx1ccd0pj0dnvmnrhny51b85xy418a7psj70lz8j8415d") "games" (base32 "0kpn3izlx1ccd0pj0dnvmnrhny51b85xy418a7psj70lz8j8415d")
'(("games" "."))) '(("games" ".")))
(simple-racket-origin (simple-racket-origin
"gui" (base32 "0r3ck4gxdhnzr1a1fi0f1i7gwfip7akq10qgcxza66pp57hnl0wx") "gui" (base32 "18pcnx3wi8f32i2frm8bn9pi08n4y3c5jgqs4gy21w6f84dv401w")
'("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 "19xqixrqbwdxph17w9jga19008j88harb5wgml4hpqj3x0apx9g3") "htdp" (base32 "173xy6ks55npvwn6cykjs41s9qfb70hc2gfjiqvw91hdsbjykwir")
'("htdp" "htdp-doc" "htdp-lib")) '("htdp" "htdp-doc" "htdp-lib"))
(simple-racket-origin (simple-racket-origin
"html" (base32 "18n1jnjgzfknc8nv8dppi85nb8q08gqdwkg6hfjk08x0p00anx2x") "html" (base32 "18n1jnjgzfknc8nv8dppi85nb8q08gqdwkg6hfjk08x0p00anx2x")
@ -718,7 +786,7 @@ DrRacket IDE, are not included.")
"make" (base32 "10852fj30bz5r46c3d99s37fkgy5yh44gb01j29sf3kxnhi0g2sa") "make" (base32 "10852fj30bz5r46c3d99s37fkgy5yh44gb01j29sf3kxnhi0g2sa")
'(("make" "."))) '(("make" ".")))
(simple-racket-origin (simple-racket-origin
"math" (base32 "02sqbnvxvmvslk33b44fx4v93zafcvhva0cx8z21jqbl5wp217ac") "math" (base32 "00ld38in5jfshs1q4zf07w84cyv4yjr40kmw30pyd5wqgs2zq9ai")
'("math" "math-doc" "math-lib")) '("math" "math-doc" "math-lib"))
(simple-racket-origin (simple-racket-origin
"mysterx" (base32 "11p9jzrafw0hizhl0cs4sxx7rv281185q8hryic2rpk0kzjdyr48") "mysterx" (base32 "11p9jzrafw0hizhl0cs4sxx7rv281185q8hryic2rpk0kzjdyr48")
@ -753,16 +821,16 @@ DrRacket IDE, are not included.")
(git-file-name "stamourv-optimization-coach" %racket-version))) (git-file-name "stamourv-optimization-coach" %racket-version)))
'(("optimization-coach" "."))) '(("optimization-coach" ".")))
(simple-racket-origin (simple-racket-origin
"option-contract" (base32 "026b7n5l0c3024nymshz8zp1yhn493rdzgpflzfd52hj7awafqhk") "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 "08pvz4zramirzm3j64hbhjm0mmh5zfy37iv4s3vmq0rj49cr8fl3") "parser-tools" (base32 "04ycihliikh0c47ivp09gayxiql9d9wpl216czic19cj6f7rmcnj")
'("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")
'("pconvert-lib")) '("pconvert-lib"))
(simple-racket-origin (simple-racket-origin
"pict" (base32 "0v7a3l77swsbh80mnb9rakdwgw7s66ji0mall7qcqfwyg1b4zmlv") "pict" (base32 "1n0v7kynkiin1v8igs9m8k8vfwjn5cswanhq2imp1pxzjvdyq6sx")
'("pict" "pict-doc" "pict-lib")) '("pict" "pict-doc" "pict-lib"))
(simple-racket-origin (simple-racket-origin
"pict-snip" (base32 "081nwiy4a0n4f7xws16hqbhf0j3kz5alizndi3nnyr3chm4kng6x") "pict-snip" (base32 "081nwiy4a0n4f7xws16hqbhf0j3kz5alizndi3nnyr3chm4kng6x")
@ -816,7 +884,7 @@ DrRacket IDE, are not included.")
"racklog" (base32 "0fbq0fpfb3l6h7h772dvkmlzlk2dnq5f8296xx1qxhhwypibqzr9") "racklog" (base32 "0fbq0fpfb3l6h7h772dvkmlzlk2dnq5f8296xx1qxhhwypibqzr9")
'(("racklog" "."))) '(("racklog" ".")))
(simple-racket-origin (simple-racket-origin
"rackunit" (base32 "0vfwcddzrgrdv5awjka7m0jzqhqvfc5wlkih83a670y96496a83n") "rackunit" (base32 "1gpz9sgnm8hrc0cb3rii0wzbcwp9mgy5k1amnxidy7gyzl7prn81")
'("rackunit" '("rackunit"
"rackunit-doc" "rackunit-doc"
"rackunit-gui" "rackunit-gui"
@ -829,10 +897,10 @@ DrRacket IDE, are not included.")
"readline" (base32 "13kbcn2wchv82d709mw3r8n37bk8iwq0y4kpvm9dbzx0w2pxkfwn") "readline" (base32 "13kbcn2wchv82d709mw3r8n37bk8iwq0y4kpvm9dbzx0w2pxkfwn")
'("readline" "readline-doc" "readline-lib")) '("readline" "readline-doc" "readline-lib"))
(simple-racket-origin (simple-racket-origin
"realm" (base32 "0hxcgla08iack54j8v40fj51811chpy66ym2zq76zb52c7kzn0hi") "realm" (base32 "0rlvwyd6rpyl0zda4a5p8dp346fvqzc8555dgfnrhliymkxb6x4g")
'(("realm" "."))) '(("realm" ".")))
(simple-racket-origin (simple-racket-origin
"redex" (base32 "18rn8ddsqh1s7hdlb2cb9wxln63bz0wysjssaf9v92r712xnnv8i") "redex" (base32 "06dhyqmin0qdm6b6sdvgzpy3pa4svlw42ld9k2h1dxcr852czil7")
'("redex" '("redex"
"redex-benchmark" "redex-benchmark"
"redex-doc" "redex-doc"
@ -847,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 "0fbb7xgz95y90247hfc1a19v7ry8m6blvv4y8irdgzhjvik70zb3") "scribble" (base32 "0a11kvcnzp04mp4xxq68rkl09jv00hv81k2nmwkmwpfx9b2acvd3")
'("scribble" '("scribble"
"scribble-doc" "scribble-doc"
"scribble-html-lib" "scribble-html-lib"
@ -879,7 +947,7 @@ DrRacket IDE, are not included.")
"snip" (base32 "01r9wc5xr3q3n4yyif6j0a37rgdzmpslxn05k13ksik73b3wj6hj") "snip" (base32 "01r9wc5xr3q3n4yyif6j0a37rgdzmpslxn05k13ksik73b3wj6hj")
'("snip" "snip-lib")) '("snip" "snip-lib"))
(simple-racket-origin (simple-racket-origin
"typed-racket" (base32 "0z6bagp6qiw0i3slhvq035y5hqgq664xw3bdlvdayad0bgbg0mdc") "typed-racket" (base32 "03wsz647fi58brbg33fw1xavp100gzfvngdy8bk7bdc0jfg8a18l")
'("source-syntax" '("source-syntax"
"typed-racket" "typed-racket"
"typed-racket-compatibility" "typed-racket-compatibility"
@ -890,13 +958,13 @@ DrRacket IDE, are not included.")
"srfi" (base32 "0aqbcdv2dfc2xnk0h6zfi56p7bpwqji8s88qds3d03hhh9k28gvn") "srfi" (base32 "0aqbcdv2dfc2xnk0h6zfi56p7bpwqji8s88qds3d03hhh9k28gvn")
'("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 "0b1ji31pv6bjb0a2bh9sqp5abvf91gn2rai8r4c4nkar1fzfwfac") "string-constants" (base32 "1kg3vxq2hcd0vl76brgpzdwbrb65a4nrrkc6hj4az5lfbbdvqz47")
'("string-constants" "string-constants-doc" "string-constants-lib")) '("string-constants" "string-constants-doc" "string-constants-lib"))
(simple-racket-origin (simple-racket-origin
"swindle" (base32 "164gdsphjzdl2vv7zxz7dfk9jwax8njpmim6sidm8qz8a8589y67") "swindle" (base32 "03n9ymjhrw45h7hxkw4nq8nidnvs9mfzb4228s2cjfaqbgqxvsyb")
'(("swindle" "."))) '(("swindle" ".")))
(simple-racket-origin (simple-racket-origin
"syntax-color" (base32 "17lb2403ymz6sflw4vs3gsh2y7kgsf0gn8sncsxjhi16rpj3a9vm") "syntax-color" (base32 "02dcd4yvdnw35m3srvfd43csxffxw3j4rk6zi379b8dsvbbrjyq1")
'("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")
@ -905,7 +973,7 @@ 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 "1g4x79ym3mgxv4f3z3z84j12355pf44pjlzlb7f0h6r0i7p0cbjd") "web-server" (base32 "104lnzjykkd6f3gxpv7p14l94if6zac33nmb4sj5jxmd6r3fwcpf")
'("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")

View file

@ -30,6 +30,7 @@
;;; Copyright © 2021 Giovanni Biscuolo <g@xelera.eu> ;;; Copyright © 2021 Giovanni Biscuolo <g@xelera.eu>
;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com> ;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
;;; Copyright © 2022 Remco van 't Veer <remco@remworks.net> ;;; Copyright © 2022 Remco van 't Veer <remco@remworks.net>
;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -5374,6 +5375,24 @@ The output can be customized with a formatting system.")
(home-page "https://github.com/jfelchner/ruby-progressbar") (home-page "https://github.com/jfelchner/ruby-progressbar")
(license license:expat))) (license license:expat)))
(define-public ruby-latest-ruby
(package
(name "ruby-latest-ruby")
(version "3.1.0")
(source (origin
(method url-fetch)
(uri (rubygems-uri "latest_ruby" version))
(sha256
(base32
"15rqwgxzpnkzdiz8m02jra0zq5sx0fiz61vkfrj1ls6slqfhnzqg"))))
(build-system ruby-build-system)
(arguments
'(#:tests? #f)) ; No Rakefile
(synopsis "Answers the question of what the latest Ruby version is")
(description "Knows about MRI, Rubinius, JRuby, MagLev and MacRuby.")
(home-page "https://github.com/kyrylo/latest_ruby")
(license license:zlib)))
(define-public ruby-pry (define-public ruby-pry
(package (package
(name "ruby-pry") (name "ruby-pry")
@ -5397,6 +5416,29 @@ invocation, and source and documentation browsing.")
(home-page "https://cobaltbluemedia.com/pryrepl/") (home-page "https://cobaltbluemedia.com/pryrepl/")
(license license:expat))) (license license:expat)))
(define-public ruby-pry-doc
(package
(name "ruby-pry-doc")
(version "1.3.0")
(source (origin
(method url-fetch)
(uri (rubygems-uri "pry-doc" version))
(sha256
(base32
"0wyvql6pb6m8jl8bsamabxhxhd86bnqblspaxzz05sl0fm2ynj0r"))))
(build-system ruby-build-system)
(propagated-inputs (list ruby-pry ruby-yard))
(native-inputs (list ruby-latest-ruby ruby-rspec ruby-rake)) ;for tests
(synopsis "Provides YARD and extended documentation support for Pry")
(description
"Pry Doc is a Pry REPL plugin. It provides extended documentation
support for the REPL by means of improving the @code{show-doc} and
@code{show-source} commands. With help of the plugin the commands are
be able to display the source code and the docs of Ruby methods and
classes implemented in C.")
(home-page "https://github.com/pry/pry-doc")
(license license:expat)))
(define-public ruby-single-cov (define-public ruby-single-cov
(package (package
(name "ruby-single-cov") (name "ruby-single-cov")

View file

@ -17,6 +17,7 @@
;;; Copyright © 2021 Nicolas Graves <ngraves@ngraves.fr> ;;; Copyright © 2021 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org> ;;; Copyright © 2022 Aleksandr Vityazev <avityazev@posteo.org>
;;; Copyright © 2022 Gabriel Arazas <foo.dogsquared@gmail.com> ;;; Copyright © 2022 Gabriel Arazas <foo.dogsquared@gmail.com>
;;; Copyright © 2022 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -874,6 +875,36 @@ rebase.")
(native-inputs (native-inputs
(list python-cython)))) (list python-cython))))
(define-public rust-cbindgen-0.17
(package
(inherit rust-cbindgen)
(name "rust-cbindgen")
(version "0.17.0")
(source (origin
(method url-fetch)
(uri (crate-uri "cbindgen" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1f40hxj6h7wqmsj8dzxjm3m421hjqpz2m5zxasbn8kgnr6scykvl"))))
(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 (define-public rust-cbindgen-0.16
(package (package
(inherit rust-cbindgen) (inherit rust-cbindgen)

View file

@ -53,7 +53,6 @@
#:use-module (gnu packages ibus) #:use-module (gnu packages ibus)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages mono)
#:use-module (gnu packages mp3) #:use-module (gnu packages mp3)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio) #:use-module (gnu packages pulseaudio)
@ -654,43 +653,3 @@ interface.")
(define-public guile3.0-sdl2 (define-public guile3.0-sdl2
(deprecated-package "guile3.0-sdl2" guile-sdl2)) (deprecated-package "guile3.0-sdl2" guile-sdl2))
(define-public sdl2-cs
(let ((commit "1a3556441e1394eb0b5d46aeb514b8d1090b93f8"))
(package
(name "sdl2-cs")
(version (git-version "B1" "1" commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/flibitijibibo/SDL2-CS")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"007mzkqr9nmvfrvvhs2r6cm36lzgsww24kwshsz9c4fd97f9qk58"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; No tests.
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'build
(lambda _
(invoke "make" "release")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(install-file "bin/Release/SDL2-CS.dll" (string-append out "/lib"))
#t))))))
(native-inputs
(list mono))
(inputs
(list sdl2 sdl2-image sdl2-mixer sdl2-ttf))
(home-page "https://dthompson.us/projects/guile-sdl2.html")
(synopsis "C# wrapper for SDL2")
(description
"SDL2-CS provides C# bindings for the SDL2 C shared library.
The C# wrapper was written to be used for FNA's platform support. However, this
is written in a way that can be used for any general C# application.")
(license license:zlib))))

View file

@ -7129,3 +7129,48 @@ otting the results.")
"This package provides a collection of (mostly simple) functions for "This package provides a collection of (mostly simple) functions for
generating and manipulating colors in R.") generating and manipulating colors in R.")
(license license:gpl3)))) (license license:gpl3))))
(define-public r-reghelper
(package
(name "r-reghelper")
(version "1.1.1")
(source (origin
(method url-fetch)
(uri (cran-uri "reghelper" version))
(sha256
(base32
"0v1987rs6kcpizfhrp3hxsyx9arn5vsbapjfgj9478j73mm844ji"))))
(properties `((upstream-name . "reghelper")))
(build-system r-build-system)
(propagated-inputs (list r-ggplot2 r-lme4 r-mass r-nlme))
(home-page "https://github.com/jeff-hughes/reghelper")
(synopsis "Helper Functions for Regression Analysis")
(description
"This package provides a set of functions used to automate commonly used methods
in regression analysis. This includes plotting interactions, and calculating
simple slopes, standardized coefficients, regions of significance (Johnson &
Neyman, 1936; cf. Spiller et al., 2012), etc.")
(license license:gpl3)))
(define-public r-mumin
(package
(name "r-mumin")
(version "1.47.1")
(source (origin
(method url-fetch)
(uri (cran-uri "MuMIn" version))
(sha256
(base32
"1xhsc9hmx2b3zqyvpjs64rs90ccrfcsglrq2mhh85mgplsnva8qj"))))
(properties `((upstream-name . "MuMIn")))
(build-system r-build-system)
(propagated-inputs (list r-matrix r-nlme))
(home-page "https://cran.r-project.org/package=MuMIn")
(synopsis "Multi-Model Inference")
(description
"Tools for performing model selection and model averaging. Automated model
selection through subsetting the maximum model, with optional constraints for
model inclusion. Model parameter and prediction averaging based on model
weights derived from information criteria (AICc and alike) or custom model
weighting schemes.")
(license license:gpl2)))

View file

@ -838,7 +838,7 @@ eye-candy, customizable, and reasonably lightweight.")
(define-public foot (define-public foot
(package (package
(name "foot") (name "foot")
(version "1.12.1") (version "1.13.1")
(home-page "https://codeberg.org/dnkl/foot") (home-page "https://codeberg.org/dnkl/foot")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
@ -846,7 +846,7 @@ eye-candy, customizable, and reasonably lightweight.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"14jqs4sarxbrgi5pxz0afqa9jxq90cb5ayqd21qj2n65whqa5bpk")))) "0k0zbh6adwr99y9aazlyvp6s1k8zaq2j6x8kqb8q9a5qjjg56lay"))))
(build-system meson-build-system) (build-system meson-build-system)
(arguments (arguments
`(;; Using a "release" build is recommended both for performance, and `(;; Using a "release" build is recommended both for performance, and

View file

@ -4952,6 +4952,23 @@ that are compatible with @code{natbib}: @code{plainnat}, @code{unsrtnat},
designed from the start to be compatible with @code{natbib}.") designed from the start to be compatible with @code{natbib}.")
(license license:lppl))) (license license:lppl)))
(define-public texlive-latex-newfloat
(package
(inherit (simple-texlive-package
"texlive-latex-newfloat"
(list "doc/latex/newfloat/"
"tex/latex/newfloat/")
(base32 "1047max3li9ni15njgsvc7qglakgrjy2l0s72imgzdmwgb2h8jyf")
#:trivial? #t))
(build-system texlive-build-system)
(home-page "https://ctan.org/pkg/newfloat")
(synopsis "Define new floating environments")
(description
"This package offers the command @code{\\DeclareFloatingEnvironment},
which the user may use to define new floating environments which behave like
the LaTeX standard foating environments @code{figure} and @code{table}.")
(license license:lppl)))
(define-public texlive-latex-newunicodechar (define-public texlive-latex-newunicodechar
(package (package
(inherit (simple-texlive-package (inherit (simple-texlive-package
@ -9785,8 +9802,8 @@ of compatibility notes, for other packages, is provided in the
documentation. The package also provides the \"caption outside documentation. The package also provides the \"caption outside
float\" facility, in the same way that simpler packages like float\" facility, in the same way that simpler packages like
@code{capt-ofcapt-of} do. The package supersedes @code{caption2}. @code{capt-ofcapt-of} do. The package supersedes @code{caption2}.
Packages @code{bicaption}, @code{ltcaption}, @code{newfloat}, Packages @code{bicaption}, @code{ltcaption} and @code{subcaption} are
@code{subcaption} and @code{totalcount} are included in the bundle.") included in the bundle.")
(license license:lppl1.3+)))) (license license:lppl1.3+))))
(define-public texlive-symbol (define-public texlive-symbol
@ -11553,3 +11570,22 @@ use of the fonts in LaTeX (Type 1) and XeLaTeX/LuaLaTeX (OTF).")
Adobe in both Adobe Type 1 and OpenType formats, plus macros supporting the Adobe in both Adobe Type 1 and OpenType formats, plus macros supporting the
use of the fonts in LaTeX (Type 1) and XeLaTeX/LuaLaTeX (OTF).") use of the fonts in LaTeX (Type 1) and XeLaTeX/LuaLaTeX (OTF).")
(license (list license:lppl1.3+ license:silofl1.1)))) (license (list license:lppl1.3+ license:silofl1.1))))
(define-public texlive-latex-hyphenat
(package
(inherit (simple-texlive-package
"texlive-latex-hyphenat"
(list "doc/latex/hyphenat/"
"tex/latex/hyphenat/")
(base32 "0b3jx2yvryx95am0ll9h6yc99niw2lwgsbq7r89j84z2qyp2llsq")
#:trivial? #t))
(build-system texlive-build-system)
(home-page "https://ctan.org/pkg/hyphenat")
(synopsis "Disable/enable hyphenation")
(description
"This package can disable all hyphenation or enable hyphenation of
non-alphabetics or monospaced fonts. The package can also enable hyphenation
within words that contain non-alphabetic characters (e.g., that include
underscores), and hyphenation of text typeset in monospaced (e.g., cmtt)
fonts.")
(license license:lppl1.3c+)))

View file

@ -6,7 +6,7 @@
;;; Copyright © 2017 Nikita <nikita@n0.is> ;;; Copyright © 2017 Nikita <nikita@n0.is>
;;; Copyright © 2014 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.org> ;;; Copyright © 2014 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.org>
;;; Copyright © 20172021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 20172021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2019, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2019, 2020, 2021, 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2019, 2020, 2021, 2022 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020-2022 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020-2022 Marius Bakke <marius@gnu.org>
@ -494,7 +494,7 @@ Wordstar-, EMACS-, Pico, Nedit or vi-like key bindings. e3 can be used on
(define-public mg (define-public mg
(package (package
(name "mg") (name "mg")
(version "20210609") (version "20220614")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -503,7 +503,7 @@ Wordstar-, EMACS-, Pico, Nedit or vi-like key bindings. e3 can be used on
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"04c2vqxg31mk15cfrhzrivykis8fmf0m1d8h1qdjdmlfxd4qwaqf")) "145qk4bzys4igv98645vikswv9hqym46chh6xb9d82ihsvjq1wjk"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet '(begin (snippet '(begin
(substitute* "GNUmakefile" (substitute* "GNUmakefile"
@ -898,14 +898,14 @@ Octave. TeXmacs is completely extensible via Guile.")
(define-public scintilla (define-public scintilla
(package (package
(name "scintilla") (name "scintilla")
(version "5.2.4") (version "5.3.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (let ((v (apply string-append (string-split version #\.)))) (uri (let ((v (apply string-append (string-split version #\.))))
(string-append "https://www.scintilla.org/scintilla" v ".tgz"))) (string-append "https://www.scintilla.org/scintilla" v ".tgz")))
(sha256 (sha256
(base32 "0rncbac9r9ahkxgmv7faj4dms4wy0ik2axmb0lp1ffx4r6419vsa")))) (base32 "0ys0836qjljzqk0wj6y9pnmrcw7ydzn8c06rwbawjk74dpsn0lpx"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
(list (list

View file

@ -664,7 +664,7 @@ kilobytes of RAM.")
"ac_cv_func_getentropy=no" "ac_cv_func_getentropy=no"
;; FIXME It's using it's own bundled certificate, instead it should ;; FIXME It's using it's own bundled certificate, instead it should
;; behave like OpenSSL by using environment variables. ;; behave like OpenSSL by using environment variables.
(string-append "--with-openssldir=" %output (string-append "--with-openssldir=" (assoc-ref %outputs "out")
"/share/libressl-" "/share/libressl-"
,(package-version this-package)) ,(package-version this-package))
;; Provide a TLS-enabled netcat. ;; Provide a TLS-enabled netcat.

View file

@ -221,14 +221,14 @@ Python 3.3 and later, rather than on Python 2.")
(define-public git (define-public git
(package (package
(name "git") (name "git")
(version "2.37.2") (version "2.37.3")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-" (uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"00xhdm086bxm4v2p8m7ra7vf9kwdppw4l2n3vakfff253j19qg8w")))) "0yp8hdj0w18jhmmdflzz74z418cw95i08pc22yycyn8nyvbl2il1"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("native-perl" ,perl) `(("native-perl" ,perl)
@ -248,7 +248,7 @@ Python 3.3 and later, rather than on Python 2.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1zhn91fzyyz890a5hm0bvs0vnhy8c81q1fhsk2gfwbbh73z161nz")))) "053lj9wy8y2yr5jzpb0af4w50gz3ckhgc15wqx7is4z6k9a76lww"))))
;; For subtree documentation. ;; For subtree documentation.
("asciidoc" ,asciidoc) ("asciidoc" ,asciidoc)
("docbook-xsl" ,docbook-xsl) ("docbook-xsl" ,docbook-xsl)
@ -1573,17 +1573,15 @@ also walk each side of a merge and test those changes individually.")
(coreutils (assoc-ref inputs "coreutils")) (coreutils (assoc-ref inputs "coreutils"))
(findutils (assoc-ref inputs "findutils")) (findutils (assoc-ref inputs "findutils"))
(git (assoc-ref inputs "git"))) (git (assoc-ref inputs "git")))
(wrap-program (string-append out "/bin/gitolite") (for-each (lambda (file-name)
`("PATH" ":" prefix (wrap-program (string-append out file-name)
,(map (lambda (dir) `("PATH" ":" prefix
(string-append dir "/bin")) ,(map (lambda (dir)
(list out coreutils findutils git)))))))))) (string-append dir "/bin"))
(list out coreutils findutils git)))))
'("/bin/gitolite" "/bin/gitolite-shell"))))))))
(inputs (inputs
(list bash-minimal perl coreutils findutils inetutils)) (list bash-minimal coreutils findutils git inetutils openssh perl))
;; git and openssh are propagated because trying to patch the source via
;; regexp matching is too brittle and prone to false positives.
(propagated-inputs
(list git openssh))
(home-page "https://gitolite.com") (home-page "https://gitolite.com")
(synopsis "Git access control layer") (synopsis "Git access control layer")
(description (description
@ -2849,14 +2847,14 @@ specific files and directories.")
(define-public src (define-public src
(package (package
(name "src") (name "src")
(version "1.18") (version "1.29")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"http://www.catb.org/~esr/src/src-" version ".tar.gz")) "http://www.catb.org/~esr/src/src-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0n0skhvya8w2az45h2gsafxy8m2mvqas64nrgxifcmrzfv0rf26c")))) "0ha287gc95vz6bdvn42pi3qibc56h1w5dshsvjvdn2zd283amksd"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:make-flags '(#:make-flags
@ -2882,7 +2880,8 @@ specific files and directories.")
;; For testing. ;; For testing.
(list git perl)) (list git perl))
(inputs (inputs
`(("python" ,python-wrapper) `(("cssc" ,cssc)
("python" ,python-wrapper)
("rcs" ,rcs))) ("rcs" ,rcs)))
(synopsis "Simple revision control") (synopsis "Simple revision control")
(home-page "http://www.catb.org/~esr/src/") (home-page "http://www.catb.org/~esr/src/")

View file

@ -1566,14 +1566,14 @@ operate properly.")
(define-public ffmpeg-5 (define-public ffmpeg-5
(package (package
(name "ffmpeg") (name "ffmpeg")
(version "5.1") (version "5.1.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-" (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"00wbd5skv6ba5yqq4ca505ncckhvpzwflcsall7madg2bsmnmssm")))) "0d84pjmlb5ss1yybxic3wlyrr31wcsg29ysqx5qiwlcnqkw3zgwm"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
(append (append
@ -2482,7 +2482,7 @@ YouTube.com and many more sites.")
(define-public yt-dlp (define-public yt-dlp
(package/inherit youtube-dl (package/inherit youtube-dl
(name "yt-dlp") (name "yt-dlp")
(version "2022.08.08") (version "2022.09.01")
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
@ -2491,7 +2491,7 @@ YouTube.com and many more sites.")
(commit version))) (commit version)))
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 "07qz1zdndlpki0asw35zk5hdjcwpl3n1g54nxg4yb1iykbyv7rll")))) (base32 "0h46624zdqhjf79m78303v00m2r013yaccanv0010rls17v7y6pq"))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments youtube-dl) (substitute-keyword-arguments (package-arguments youtube-dl)
((#:tests? _) (not (%current-target-system))) ((#:tests? _) (not (%current-target-system)))
@ -5210,7 +5210,12 @@ result in several formats:
(string-append name "-" version ".tar.gz")) (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"006bfcmjwg0phg8gc25b1sl2ngjrb2bh1b3fd0s5gbf9nlkr8qsn")))) "006bfcmjwg0phg8gc25b1sl2ngjrb2bh1b3fd0s5gbf9nlkr8qsn"))
(modules '((guix build utils)))
(snippet
'(substitute* "Cargo.toml"
(("\\[package\\]" m)
(string-append "cargo-features = [\"rust-version\"]\n" m))))))
(build-system cargo-build-system) (build-system cargo-build-system)
(arguments (arguments
`(;; Strip the '--release' flag to work around the doctest failures with `(;; Strip the '--release' flag to work around the doctest failures with

View file

@ -639,6 +639,34 @@ various text editors which allow this file format to be read and used by those
editors.") editors.")
(license license:bsd-2))) (license license:bsd-2)))
(define-public neovim-packer
(let ((commit "3a9f9801f683946b9f1047d8f4bf9946c29e927d")
(revision "0"))
(package
(name "neovim-packer")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/wbthomason/packer.nvim")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1xn08z3a21mgfvp5i1nv57jnldwxwnl5nkryiff3zc99b1mizigp"))))
(build-system copy-build-system)
(arguments
(list #:install-plan
#~'(("lua" "share/nvim/site/pack/guix/start/packer.nvim/")
("doc" "share/nvim/site/pack/guix/start/packer.nvim/"))))
(home-page "https://github.com/wbthomason/packer.nvim")
(synopsis "Plugin manager for Neovim")
(description
"This package provides a plugin manager for Neovim, inspired by Emacs's
@code{use-package}. It's written in Lua, supports Luarocks dependencies, and
is based on Vim's builtin plugin support.")
(license license:expat))))
(define-public neovim-syntastic (define-public neovim-syntastic
(package (package
(inherit vim-syntastic) (inherit vim-syntastic)

View file

@ -5,6 +5,7 @@
;;; Copyright © 2020 Marius Bakke <marius@gnu.org> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com> ;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2021, 2022 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2021, 2022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -26,6 +27,7 @@
#: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 gexp)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (gnu packages) #:use-module (gnu packages)
@ -37,17 +39,22 @@
#:use-module (gnu packages crypto) #:use-module (gnu packages crypto)
#:use-module (gnu packages cups) #:use-module (gnu packages cups)
#:use-module (gnu packages fltk) #:use-module (gnu packages fltk)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop) #:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib) #:use-module (gnu packages glib)
#:use-module (gnu packages gnome) #:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg) #:use-module (gnu packages gnupg)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages java)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages pcre) #:use-module (gnu packages pcre)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages rdesktop) #:use-module (gnu packages rdesktop)
#:use-module (gnu packages sdl) #:use-module (gnu packages sdl)
#:use-module (gnu packages spice) #:use-module (gnu packages spice)
@ -318,6 +325,192 @@ and TLS encryption. This package installs the VNC server, a program that will
enable users with VNC clients to log into a graphical session on the machine enable users with VNC clients to log into a graphical session on the machine
where the server is installed."))) where the server is installed.")))
(define-public turbovnc
(package
(name "turbovnc")
(version "3.0.1")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/turbovnc/" version
"/turbovnc-" version ".tar.gz"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
;; There are a few bundled Java libraries, such as jsch and jzlib,
;; bundled under java/com/jcraft/ as well as mindrot and spf4j,
;; bundled under java/org. These are used by the 'vncviewer'
;; program. The jsch copy is modified and integrates changes from
;; https://github.com/mwiede/jsch, so cannot easily be un-bundled.
(define (directory? x)
(and=> (stat x #f) (compose (cut eq? 'directory <>) stat:type)))
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <> (append '("." "..")
preserve))))
(items (scandir "." pred)))
(for-each (lambda (item)
(if (directory? item)
(delete-file-recursively item)
(delete-file item)))
items))))
;; d3des, rfb (headers) and turbojpeg-jni are small and not
;; packaged in Guix, so preserve them.
(delete-all-but "common" "d3des" "rfb" "turbojpeg-jni")
;; Delete bundled headers which aren't used.
(delete-all-but "unix/Xvnc/include" "tvnc_version.h.in")
;; This 243 lines of code C library is used by
;; unix/Xvnc/programs/Xserver/os/xsha1.c.
(delete-all-but "unix/Xvnc/lib" "CMakeLists.txt" "libsha1")
(delete-file-recursively "unix/Xvnc/extras")))
(sha256
(base32
"182amp471qvr2cn2rbw97zpbkh9q7mf92w1r25cg4apx5k26m7c3"))
(patches (search-patches "turbovnc-find-system-packages.patch"
"turbovnc-custom-paths.patch"))))
(build-system cmake-build-system)
(arguments
(list
#:tests? #f ;no test suite
#:configure-flags
;; Use system libraries.
#~(list "-DTVNC_SYSTEMLIBS=ON"
"-DTVNC_SYSTEMX11=ON"
"-DTVNC_DLOPENSSL=OFF"
(string-append "-DXORG_DRI_DRIVER_PATH="
(search-input-directory %build-inputs "lib/dri"))
(string-append "-DXORG_FONT_PATH="
"/run/current-system/profile/share/fonts/X11,"
(string-append #$(this-package-input "font-alias")
"share/fonts/X11"))
(string-append "-DXORG_REGISTRY_PATH="
(dirname (search-input-file
%build-inputs "lib/xorg/protocol.txt")))
(string-append "-DXKB_BASE_DIRECTORY="
(search-input-directory %build-inputs
"share/X11/xkb"))
(string-append "-DXKB_BIN_DIRECTORY="
(dirname (search-input-file %build-inputs
"bin/xkbcomp")))
;; The default rule is 'xorg', which doesn't match the 'base'
;; rule file installed by our version of xkeyboard-config.
;; Without this change, running Xvnc would fail with the error
;; "XKB: Failed to compile keymap"
"-DXKB_DFLT_RULES=base"
;; Mimic xorg-server's "--with-xkb-output=/tmp" configuration.
"-DCOMPILEDDEFAULTFONTPATH=/tmp"
"-DTVNC_STATIC_XORG_PATHS=ON")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-vncviewer
(lambda* (#:key inputs #:allow-other-keys)
(define openjdk #$(this-package-input "openjdk"))
(substitute* "unix/vncviewer/vncviewer.in"
(("\\$BINDIR/../java/jre")
openjdk)
;; Avoid resorting to grep and sed to locate libjawt.so.
(("^_TMP=.*")
(string-append "_TMP=" openjdk "/lib\n")))))
(add-after 'unpack 'patch-xstartup.turbovnc
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "unix/xstartup.turbovnc"
(("DBUS_LAUNCH=[[:graph:]]+")
(format #f "DBUS_LAUNCH=~a"
(search-input-file inputs "bin/dbus-launch")))
(("XSESSIONSDIR=[[:graph:]]+")
(format #f "XSESSIONSDIR=~a"
"/run/current-system/profile/share/xsessions"))
(("GREP=[[:graph:]]+")
(format #f "GREP=~a"
(search-input-file inputs "bin/grep")))
(("SED=[[:graph:]]+")
(format #f "SED=~a"
(search-input-file inputs "bin/sed")))
(("TVNC_SSHAGENT=[[:graph:]]+")
(format #f "TVNC_SSHAGENT=~a"
(search-input-file inputs "bin/ssh-agent")))
(("TVNC_VGLRUN=\"vglrun" all)
(string-append "TVNC_VGLRUN="
(search-input-file inputs "bin/vglrun") all)))))
(add-after 'install 'wrap-vncserver
(lambda* (#:key inputs outputs #:allow-other-keys)
(wrap-script (search-input-file outputs "bin/vncserver")
(list "PATH" 'prefix
(map (lambda (p)
(dirname (search-input-file inputs p)))
'("bin/uname" ;coreutils
"bin/xauth"
"bin/xdpyinfo"))))))
(add-after 'install 'wrap-xstartup.turbovnc
(lambda* (#:key inputs outputs #:allow-other-keys)
(wrap-script (search-input-file outputs "bin/xstartup.turbovnc")
(list "PATH" 'prefix
(map (lambda (p)
(dirname (search-input-file inputs p)))
'("bin/uname" ;coreutils
;; These are used as the fallback when no desktop
;; session was found.
"bin/twm"
"bin/xsetroot"
"bin/xterm")))))))))
(native-inputs
(list `(,openjdk "jdk")
pkg-config
python))
(inputs
(list dbus
font-alias
freetype
guile-3.0
libfontenc
libjpeg-turbo
libx11
libxdamage
libxext
libxfont2
libxi
libxkbfile
linux-pam
mesa
openjdk
openssh
openssl
perl
pixman
twm
virtualgl
xauth
xdpyinfo
xkbcomp
xkeyboard-config
xorg-server
xorgproto
xsetroot
xterm
xtrans
zlib))
(home-page "https://turbovnc.org/")
(synopsis "Highly-optimized VNC remote desktop software")
(description "TurboVNC is a high-speed version of VNC derived from
TightVNC, with which it remains compatible. It contains a variant of Tight
encoding that is tuned to maximize performance for image-intensive
applications (such as VirtualGL, video applications, and image editors) while
still providing excellent performance for other types of applications. Some
of its unique features are:
@itemize
@item a user-facing @command{vncserver} command;
@item the ability to capture keyboard keys even when not in full screen mode;
@item a full screen mode that is compatible with ratpoison*
@end itemize
*Although due to a quirk in Java, you'll want to set the
@env{_JAVA_AWT_WM_NONREPARENTING} environment variable when using it with
ratpoison.")
(license license:gpl2+)))
(define-public libvnc (define-public libvnc
(package (package
(name "libvnc") (name "libvnc")

View file

@ -263,6 +263,7 @@ engine that uses Wayland for graphics output.")
woff2 woff2
wpebackend-fdo wpebackend-fdo
xdg-dbus-proxy)) xdg-dbus-proxy))
(properties '((timeout . 144000))) ; 40 hours, most notably for aarch64
(home-page "https://www.webkitgtk.org/") (home-page "https://www.webkitgtk.org/")
(synopsis "Web content engine for GTK+") (synopsis "Web content engine for GTK+")
(description "WebKitGTK+ is a full-featured port of the WebKit rendering engine, (description "WebKitGTK+ is a full-featured port of the WebKit rendering engine,

View file

@ -832,14 +832,14 @@ tiled on several screens.")
(define-public xmobar (define-public xmobar
(package (package
(name "xmobar") (name "xmobar")
(version "0.40") (version "0.44.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/xmobar/" (uri (string-append "https://hackage.haskell.org/package/xmobar/"
"xmobar-" version ".tar.gz")) "xmobar-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1mrdiblm8vilkm1w23pz6xbi16zh1b1lvql26czjzw5k79vd67sf")))) "0gdphjn5ll5lkb2psdsb34563wsz6g0y2gg3z8cj4jy8lvbbv808"))))
(build-system haskell-build-system) (build-system haskell-build-system)
(native-inputs (native-inputs
(list ghc-hspec hspec-discover)) (list ghc-hspec hspec-discover))

View file

@ -1246,7 +1246,7 @@ several different time zones.")
(define-public xfce4-notifyd (define-public xfce4-notifyd
(package (package
(name "xfce4-notifyd") (name "xfce4-notifyd")
(version "0.6.3") (version "0.6.4")
(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/"
@ -1254,7 +1254,7 @@ several different time zones.")
name "-" version ".tar.bz2")) name "-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"17w5j3cwxlza7p3clvm7sp3vfacyi4dbn2dy58ph8q6lmsaziaan")))) "1xi0j4qk8hhcd3xj4wvzs170n2010z0bv8w1mm53g5gqj7q7ikhf"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(native-inputs (native-inputs
(list intltool pkg-config)) (list intltool pkg-config))

View file

@ -203,11 +203,11 @@
(ignore-lid? upower-configuration-ignore-lid? (ignore-lid? upower-configuration-ignore-lid?
(default #f)) (default #f))
(use-percentage-for-policy? upower-configuration-use-percentage-for-policy? (use-percentage-for-policy? upower-configuration-use-percentage-for-policy?
(default #f)) (default #t))
(percentage-low upower-configuration-percentage-low (percentage-low upower-configuration-percentage-low
(default 10)) (default 20))
(percentage-critical upower-configuration-percentage-critical (percentage-critical upower-configuration-percentage-critical
(default 3)) (default 5))
(percentage-action upower-configuration-percentage-action (percentage-action upower-configuration-percentage-action
(default 2)) (default 2))
(time-low upower-configuration-time-low (time-low upower-configuration-time-low

View file

@ -93,6 +93,7 @@
nginx-configuration nginx-configuration
nginx-configuration? nginx-configuration?
nginx-configuration-nginx nginx-configuration-nginx
nginx-configuration-shepherd-requirement
nginx-configuration-log-directory nginx-configuration-log-directory
nginx-configuration-run-directory nginx-configuration-run-directory
nginx-configuration-server-blocks nginx-configuration-server-blocks
@ -556,6 +557,8 @@
nginx-configuration? nginx-configuration?
(nginx nginx-configuration-nginx ;file-like (nginx nginx-configuration-nginx ;file-like
(default nginx)) (default nginx))
(shepherd-requirement nginx-configuration-shepherd-requirement
(default '())) ;list of symbols
(log-directory nginx-configuration-log-directory ;string (log-directory nginx-configuration-log-directory ;string
(default "/var/log/nginx")) (default "/var/log/nginx"))
(run-directory nginx-configuration-run-directory ;string (run-directory nginx-configuration-run-directory ;string
@ -779,7 +782,7 @@ of index files."
(define (nginx-shepherd-service config) (define (nginx-shepherd-service config)
(match-record config (match-record config
<nginx-configuration> <nginx-configuration>
(nginx file run-directory) (nginx file run-directory shepherd-requirement)
(let* ((nginx-binary (file-append nginx "/sbin/nginx")) (let* ((nginx-binary (file-append nginx "/sbin/nginx"))
(pid-file (in-vicinity run-directory "pid")) (pid-file (in-vicinity run-directory "pid"))
(nginx-action (nginx-action
@ -803,7 +806,7 @@ of index files."
(list (shepherd-service (list (shepherd-service
(provision '(nginx)) (provision '(nginx))
(documentation "Run the nginx daemon.") (documentation "Run the nginx daemon.")
(requirement '(user-processes loopback)) (requirement `(user-processes loopback ,@shepherd-requirement))
(modules `((ice-9 match) (modules `((ice-9 match)
,@%default-modules)) ,@%default-modules))
(start (nginx-action "-p" run-directory)) (start (nginx-action "-p" run-directory))

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020, 2021 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020, 2021, 2022 Mathieu Othacehe <othacehe@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org> ;;; Copyright © 2022 Pavel Shlyak <p.shlyak@pantherx.org>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> ;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
@ -784,7 +784,6 @@ it can be used for bootloading."
(define* (system-image image) (define* (system-image image)
"Return the derivation of IMAGE. It can be a raw disk-image or an ISO9660 "Return the derivation of IMAGE. It can be a raw disk-image or an ISO9660
image, depending on IMAGE format." image, depending on IMAGE format."
(define substitutable? (image-substitutable? image))
(define platform (image-platform image)) (define platform (image-platform image))
;; The image platform definition may provide the appropriate "system" ;; The image platform definition may provide the appropriate "system"

View file

@ -53,7 +53,11 @@
(define novena-image-type (define novena-image-type
(image-type (image-type
(name 'novena-raw) (name 'novena-raw)
(constructor (cut image-with-os (raw-with-offset-disk-image) <>)))) (constructor (lambda (os)
(image
(inherit (raw-with-offset-disk-image))
(operating-system os)
(platform armv7-linux))))))
(define novena-barebones-raw-image (define novena-barebones-raw-image
(image (image

View file

@ -58,7 +58,11 @@
(define pine64-image-type (define pine64-image-type
(image-type (image-type
(name 'pine64-raw) (name 'pine64-raw)
(constructor (cut image-with-os (raw-with-offset-disk-image) <>)))) (constructor (lambda (os)
(image
(inherit (raw-with-offset-disk-image))
(operating-system os)
(platform aarch64-linux))))))
(define pine64-barebones-raw-image (define pine64-barebones-raw-image
(image (image

View file

@ -58,9 +58,12 @@
(define pinebook-pro-image-type (define pinebook-pro-image-type
(image-type (image-type
(name 'pinebook-pro-raw) (name 'pinebook-pro-raw)
(constructor (cut image-with-os (constructor (lambda (os)
(raw-with-offset-disk-image (* 9 (expt 2 20))) ;9MiB (image
<>)))) (inherit
(raw-with-offset-disk-image (* 9 (expt 2 20)))) ;9MiB
(operating-system os)
(platform aarch64-linux))))))
(define pinebook-pro-barebones-raw-image (define pinebook-pro-barebones-raw-image
(image (image

View file

@ -54,9 +54,11 @@
(define rock64-image-type (define rock64-image-type
(image-type (image-type
(name 'rock64-raw) (name 'rock64-raw)
(constructor (cut image-with-os (constructor (lambda (os)
(raw-with-offset-disk-image (expt 2 24)) (image
<>)))) (inherit (raw-with-offset-disk-image (expt 2 24)))
(operating-system os)
(platform aarch64-linux))))))
(define rock64-barebones-raw-image (define rock64-barebones-raw-image
(image (image

View file

@ -179,9 +179,10 @@ search path specifications."
(() (()
(values (reverse inputs) (values (reverse inputs)
(delete-duplicates (delete-duplicates
(cons $PATH (cons* $PATH
(map sexp->search-path-specification $GUIX_EXTENSIONS_PATH
(reverse search-paths))))))))))) (map sexp->search-path-specification
(reverse search-paths)))))))))))
(define* (build-profile output manifest (define* (build-profile output manifest
#:key (extra-inputs '()) (symlink symlink)) #:key (extra-inputs '()) (symlink symlink))

View file

@ -62,10 +62,13 @@ not be determined."
(define (even-minor-version? version) (define (even-minor-version? version)
(match (string-tokenize version %not-dot) (match (string-tokenize version %not-dot)
(((= string->number major) (= string->number minor) . rest) (((= string->number major) (= string->number minor) micro)
;; This is for things like GLib, with version strings like "2.72.3".
(and minor (even? minor))) (and minor (even? minor)))
(((= string->number major) . _) (((= string->number major) . _)
;; It should at last start with a digit. ;; GNOME applications have version strings like "42.1" (only two
;; integers) and are not subject to the odd/even policy. MAJOR should
;; be a valid number though.
major))) major)))
(define upstream-name (define upstream-name

View file

@ -67,7 +67,7 @@
(target platform-target) (target platform-target)
(system platform-system) (system platform-system)
(linux-architecture platform-linux-architecture (linux-architecture platform-linux-architecture
(default #f)) (default #false))
(glibc-dynamic-linker platform-glibc-dynamic-linker)) (glibc-dynamic-linker platform-glibc-dynamic-linker))

View file

@ -386,6 +386,21 @@ particular newlines, is left as is."
str) str)
#\"))) #\")))
(define %natural-whitespace-string-forms
;; When a string has one of these forms as its parent, only double quotes
;; and backslashes are escaped; newlines, tabs, etc. are left as-is.
'(synopsis description G_ N_))
(define (printed-string str context)
"Return the read syntax for STR depending on CONTEXT."
(match context
(()
(object->string str))
((head . _)
(if (memq head %natural-whitespace-string-forms)
(escaped-string str)
(object->string str)))))
(define (string-width str) (define (string-width str)
"Return the \"width\" of STR--i.e., the width of the longest line of STR." "Return the \"width\" of STR--i.e., the width of the longest line of STR."
(apply max (map string-length (string-split str #\newline)))) (apply max (map string-length (string-split str #\newline))))
@ -427,26 +442,40 @@ each line except the first one (they're assumed to be already there)."
(display (make-string indent #\space) port) (display (make-string indent #\space) port)
(loop tail))))) (loop tail)))))
(define %symbols-followed-by-octal-integers (define %integer-forms
;; Symbols for which the following integer must be printed as octal. ;; Forms that take an integer as their argument, where said integer should
'(chmod umask mkdir mkstemp)) ;; be printed in base other than decimal base.
(letrec-syntax ((vhashq (syntax-rules ()
(define %symbols-followed-by-hexadecimal-integers ((_) vlist-null)
;; Likewise, for hexadecimal integers. ((_ (key value) rest ...)
'(logand logior logxor lognot)) (vhash-consq key value (vhashq rest ...))))))
(vhashq
('chmod 8)
('umask 8)
('mkdir 8)
('mkstemp 8)
('logand 16)
('logior 16)
('logxor 16)
('lognot 16))))
(define (integer->string integer context) (define (integer->string integer context)
"Render INTEGER as a string using a base suitable based on CONTEXT." "Render INTEGER as a string using a base suitable based on CONTEXT."
(define (form-base form)
(match (vhash-assq form %integer-forms)
(#f 10)
((_ . base) base)))
(define (octal? form)
(= 8 (form-base form)))
(define base (define base
(match context (match context
((head . tail) ((head . tail)
(cond ((memq head %symbols-followed-by-octal-integers) 8) (match (form-base head)
((memq head %symbols-followed-by-hexadecimal-integers) (8 8)
(if (any (cut memq <> %symbols-followed-by-octal-integers) (16 (if (any octal? tail) 8 16))
tail) (10 10)))
8
16))
(else 10)))
(_ 10))) (_ 10)))
(string-append (match base (string-append (match base
@ -691,7 +720,7 @@ FORMAT-VERTICAL-SPACE; a useful value of 'canonicalize-vertical-space'."
(+ column 1))))) (+ column 1)))))
(_ (_
(let* ((str (cond ((string? obj) (let* ((str (cond ((string? obj)
(escaped-string obj)) (printed-string obj context))
((integer? obj) ((integer? obj)
(integer->string obj context)) (integer->string obj context))
(else (else

View file

@ -33,6 +33,7 @@
search-path-specification-file-pattern search-path-specification-file-pattern
$PATH $PATH
$GUIX_EXTENSIONS_PATH
$SSL_CERT_DIR $SSL_CERT_DIR
$SSL_CERT_FILE $SSL_CERT_FILE
@ -73,6 +74,16 @@
(variable "PATH") (variable "PATH")
(files '("bin" "sbin")))) (files '("bin" "sbin"))))
(define-public $GUIX_EXTENSIONS_PATH
;; 'GUIX_EXTENSIONS_PATH' is used by Guix to locate extension commands.
;; Like 'PATH', it's not attached to any package, so that users don't have
;; to install the 'guix' package (which is not supposed to be installed,
;; as it will mess up the 'guix pull' installation) or set the variable
;; manually.
(search-path-specification
(variable "GUIX_EXTENSIONS_PATH")
(files '("share/guix/extensions"))))
;; Two variables for certificates (see (guix)X.509 Certificates), ;; Two variables for certificates (see (guix)X.509 Certificates),
;; respected by 'openssl', possibly GnuTLS in the future ;; respected by 'openssl', possibly GnuTLS in the future
;; (https://gitlab.com/gnutls/gnutls/-/merge_requests/1541) ;; (https://gitlab.com/gnutls/gnutls/-/merge_requests/1541)

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