Archived
1
0
Fork 0

Merge branch 'master' into staging

This commit is contained in:
Marius Bakke 2022-11-20 07:49:11 +01:00
commit 7d5e045a69
No known key found for this signature in database
GPG key ID: A2A06DF2A33A54FA
63 changed files with 1202 additions and 1968 deletions

View file

@ -17654,6 +17654,17 @@ Service xorg-server has been stopped.
Service xorg-server has been started.
@end example
@cindex configuration, action for shepherd services
@cindex configuration file, of a shepherd service
For some services, @command{herd configuration} returns the name of the
service's configuration file, which can be handy to inspect its
configuration:
@example
# herd configuration sshd
/gnu/store/@dots{}-sshd_config
@end example
The following sections document the available services, starting with
the core services, that may be used in an @code{operating-system}
declaration.
@ -37869,15 +37880,17 @@ here is how to use it and customize it further.
@cindex initrd
@cindex initial RAM disk
@deffn {Scheme Procedure} raw-initrd @var{file-systems} @
[#:linux-modules '()] [#:mapped-devices '()] @
[#:keyboard-layout #f] @
[#:helper-packages '()] [#:qemu-networking? #f] [#:volatile-root? #f]
[#:linux-modules '()] [#:pre-mount #t] [#:mapped-devices '()] @
[#:keyboard-layout #f] [#:helper-packages '()] @
[#:qemu-networking? #f] [#:volatile-root? #f]
Return a derivation that builds a raw initrd. @var{file-systems} is
a list of file systems to be mounted by the initrd, possibly in addition to
the root file system specified on the kernel command line via @option{root}.
@var{linux-modules} is a list of kernel modules to be loaded at boot time.
@var{mapped-devices} is a list of device mappings to realize before
@var{file-systems} are mounted (@pxref{Mapped Devices}).
@var{pre-mount} is a G-expression to evaluate before realizing
@var{mapped-devices}.
@var{helper-packages} is a list of packages to be copied in the initrd.
It may
include @code{e2fsck/static} or other packages needed by the initrd to check
@ -39997,6 +40010,39 @@ This, as you can see, is a fairly sophisticated way to say hello.
info on actions.
@end deftp
@cindex configuration file, of Shepherd services
@deffn {Scheme Procedure} shepherd-configuration-action
Return a @code{configuration} action to display @var{file}, which should
be the name of the service's configuration file.
It can be useful to equip services with that action. For example, the
service for the Tor anonymous router (@pxref{Networking Services,
@code{tor-service-type}}) is defined roughly like this:
@lisp
(let ((torrc (plain-file "torrc" @dots{})))
(shepherd-service
(provision '(tor))
(requirement '(user-processes loopback syslogd))
(start #~(make-forkexec-constructor
(list #$(file-append tor "/bin/tor") "-f" #$torrc)
#:user "tor" #:group "tor"))
(stop #~(make-kill-destructor))
(actions (list (shepherd-configuration-action torrc)))
(documentation "Run the Tor anonymous network overlay.")))
@end lisp
Thanks to this action, administrators can inspect the configuration file
passed to @command{tor} with this shell command:
@example
cat $(herd configuration tor)
@end example
This can come in as a handy debugging tool!
@end deffn
@defvr {Scheme Variable} shepherd-root-service-type
The service type for the Shepherd ``root service''---i.e., PID@tie{}1.

View file

@ -179,19 +179,31 @@ sub_commands_mans = \
$(srcdir)/%D%/guix-archive.1 \
$(srcdir)/%D%/guix-build.1 \
$(srcdir)/%D%/guix-challenge.1 \
$(srcdir)/%D%/guix-container.1 \
$(srcdir)/%D%/guix-copy.1 \
$(srcdir)/%D%/guix-deploy.1 \
$(srcdir)/%D%/guix-describe.1 \
$(srcdir)/%D%/guix-download.1 \
$(srcdir)/%D%/guix-edit.1 \
$(srcdir)/%D%/guix-environment.1 \
$(srcdir)/%D%/guix-gc.1 \
$(srcdir)/%D%/guix-git.1 \
$(srcdir)/%D%/guix-graph.1 \
$(srcdir)/%D%/guix-hash.1 \
$(srcdir)/%D%/guix-home.1 \
$(srcdir)/%D%/guix-import.1 \
$(srcdir)/%D%/guix-lint.1 \
$(srcdir)/%D%/guix-offload.1 \
$(srcdir)/%D%/guix-pack.1 \
$(srcdir)/%D%/guix-package.1 \
$(srcdir)/%D%/guix-processes.1 \
$(srcdir)/%D%/guix-publish.1 \
$(srcdir)/%D%/guix-pull.1 \
$(srcdir)/%D%/guix-refresh.1 \
$(srcdir)/%D%/guix-repl.1 \
$(srcdir)/%D%/guix-shell.1 \
$(srcdir)/%D%/guix-size.1 \
$(srcdir)/%D%/guix-style.1 \
$(srcdir)/%D%/guix-system.1 \
$(srcdir)/%D%/guix-time-machine.1 \
$(srcdir)/%D%/guix-weather.1

View file

@ -165,7 +165,8 @@ format."))
(start #~(make-forkexec-constructor
(list #$(file-append redshift "/bin/redshift")
"-c" #$config-file)))
(stop #~(make-kill-destructor)))))
(stop #~(make-kill-destructor))
(actions (list (shepherd-configuration-action config-file))))))
(define home-redshift-service-type
(service-type

View file

@ -45,7 +45,8 @@
shepherd-service-auto-start?
shepherd-service-modules
shepherd-action))
shepherd-action
shepherd-configuration-action))
(define-record-type* <home-shepherd-configuration>
home-shepherd-configuration make-home-shepherd-configuration

View file

@ -55,6 +55,7 @@
# Copyright © 2022 Hilton Chain <hako@ultrarare.space>
# Copyright © 2022 Alex Griffin <a@ajgrf.com>
# Copyright © 2022 ( <paren@disroot.org>
# Copyright © 2022 jgart <jgart@dismail.de>
#
# This file is part of GNU Guix.
#
@ -1537,6 +1538,8 @@ dist_patch_DATA = \
%D%/packages/patches/mhash-keygen-test-segfault.patch \
%D%/packages/patches/mia-fix-boost-headers.patch \
%D%/packages/patches/mia-vtk9.patch \
%D%/packages/patches/mia-vtk92.patch \
%D%/packages/patches/mia-vtk-version.patch \
%D%/packages/patches/mingw-w64-6.0.0-gcc.patch \
%D%/packages/patches/mingw-w64-dlltool-temp-prefix.patch \
%D%/packages/patches/mingw-w64-reproducible-gendef.patch \
@ -1795,7 +1798,7 @@ dist_patch_DATA = \
%D%/packages/patches/ripperx-missing-file.patch \
%D%/packages/patches/rpcbind-CVE-2017-8779.patch \
%D%/packages/patches/rtags-separate-rct.patch \
%D%/packages/patches/racket-backport-8.6-zuo.patch \
%D%/packages/patches/racket-backport-8.7-pkg-strip.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 \
@ -1831,6 +1834,7 @@ dist_patch_DATA = \
%D%/packages/patches/sbcl-aserve-fix-rfe12668.patch \
%D%/packages/patches/sbcl-burgled-batteries3-fix-signals.patch \
%D%/packages/patches/sbcl-clml-fix-types.patch \
%D%/packages/patches/sbcl-fix-build-on-arm64-with-clisp-as-host.patch \
%D%/packages/patches/sbcl-png-fix-sbcl-compatibility.patch \
%D%/packages/patches/scalapack-gcc-10-compilation.patch \
%D%/packages/patches/scheme48-tests.patch \
@ -1882,7 +1886,6 @@ dist_patch_DATA = \
%D%/packages/patches/tao-fix-parser-types.patch \
%D%/packages/patches/tar-remove-wholesparse-check.patch \
%D%/packages/patches/tar-skip-unreliable-tests.patch \
%D%/packages/patches/tbb-fix-test-on-aarch64.patch \
%D%/packages/patches/tbb-other-arches.patch \
%D%/packages/patches/tclxml-3.2-install.patch \
%D%/packages/patches/tcsh-fix-autotest.patch \
@ -1896,7 +1899,6 @@ dist_patch_DATA = \
%D%/packages/patches/texlive-hyph-utf8-no-byebug.patch \
%D%/packages/patches/thefuck-test-environ.patch \
%D%/packages/patches/tidy-CVE-2015-5522+5523.patch \
%D%/packages/patches/timescaledb-flaky-test.patch \
%D%/packages/patches/tinyxml-use-stl.patch \
%D%/packages/patches/tipp10-disable-downloader.patch \
%D%/packages/patches/tipp10-fix-compiling.patch \
@ -1983,7 +1985,6 @@ dist_patch_DATA = \
%D%/packages/patches/vsearch-unbundle-cityhash.patch \
%D%/packages/patches/vte-CVE-2012-2738-pt1.patch \
%D%/packages/patches/vte-CVE-2012-2738-pt2.patch \
%D%/packages/patches/vtk-fix-freetypetools-build-failure.patch \
%D%/packages/patches/vtk-7-gcc-10-compat.patch \
%D%/packages/patches/vtk-7-hdf5-compat.patch \
%D%/packages/patches/vtk-7-python-compat.patch \

View file

@ -42,6 +42,7 @@
#:use-module ((guix inferior)
#:select (inferior-exception?
inferior-exception-arguments))
#:use-module ((guix platform) #:select (systems))
#:use-module (gcrypt pk-crypto)
#:use-module (ice-9 format)
#:use-module (ice-9 match)
@ -86,7 +87,8 @@
machine-ssh-configuration?
this-machine-ssh-configuration
(host-name machine-ssh-configuration-host-name) ; string
(system machine-ssh-configuration-system) ; string
(system machine-ssh-configuration-system ; string
(sanitize validate-system-type))
(build-locally? machine-ssh-configuration-build-locally? ; boolean
(default #t))
(authorize? machine-ssh-configuration-authorize? ; boolean
@ -109,6 +111,32 @@
(host-key machine-ssh-configuration-host-key ; #f | string
(default #f)))
(define-with-syntax-properties (validate-system-type (value properties))
;; Raise an error if VALUE is not a valid system type.
(unless (string? value)
(raise (make-compound-condition
(condition
(&error-location
(location (source-properties->location properties))))
(formatted-message
(G_ "~a: invalid system type; must be a string")
value))))
(unless (member value (systems))
(raise (apply make-compound-condition
(condition
(&error-location
(location (source-properties->location properties))))
(formatted-message (G_ "~a: unknown system type") value)
(let ((closest (string-closest value (systems)
#:threshold 5)))
(if closest
(list (condition
(&fix-hint
(hint (format #f (G_ "Did you mean @code{~a}?")
closest)))))
'())))))
value)
(define (open-machine-ssh-session config)
"Open an SSH session for CONFIG, a <machine-ssh-configuration> record."
(let ((host-name (machine-ssh-configuration-host-name config))

View file

@ -54,6 +54,7 @@
;;; Copyright © 2022 Andreas Rammhold <andreas@rammhold.de>
;;; Copyright © 2022 ( <paren@disroot.org>
;;; Copyright © 2022 Matthew James Kraai <kraai@ftbfs.org>
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -719,6 +720,51 @@ console.")
and processes.")
(license license:asl2.0)))
(define-public smem
(package
(name "smem")
(version "1.5")
(source (origin
(method url-fetch)
(uri (string-append "https://selenic.com/repo/smem/archive/"
version ".tar.bz2"))
(file-name
(string-append name "-" version ".tar.bz2"))
(sha256
(base32
"19ibv1byxf2b68186ysrgrhy5shkc5mc69abark1h18yigp3j34m"))))
(build-system gnu-build-system)
(arguments
(list #:tests? #f ; There is no test suite.
#:make-flags #~(list "smemcap")
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(replace 'build
(lambda _
(let* ((system #$(cond ((target-x86?) "X86")
((target-arm?) "ARM")
((target-powerpc?) "POWER")
(else "CROSS_FINGERS"))))
(format #t "Building for ~a~%" system)
(invoke #$(cc-for-target) "-o" "smemcap" "smemcap.c"
"-g" "-Wall" "-D" system))))
(replace 'install
(lambda _
(let ((bin (string-append #$output "/bin"))
(man1 (string-append #$output "/share/man/man8")))
(install-file "smemcap" bin)
(install-file "smem" bin)
(mkdir-p man1)
(copy-file "smem.8" (string-append man1 "/smem.8"))))))))
(native-inputs (list python-minimal-wrapper))
(home-page "https://www.selenic.com/smem/")
(synopsis "Memory reporting tool")
(description
"This package provides a command line tool that can give numerous reports
on memory usage on GNU/Linux systems.")
(license license:gpl2+)))
(define-public htop
(package
(name "htop")

View file

@ -104,7 +104,7 @@ Scheme machine types, or '#f' if none is defined."
((target-ppc32? system)
"ppc32")
((target-riscv64? system)
#f)
"rv64")
(else
#f)))
@ -170,6 +170,7 @@ in Chez Scheme machine types, or '#f' if none is defined."
("a6" threads bootstrap-bootfiles)
("arm32" bootstrap-bootfiles)
("arm64" . #f)
("rv64" . #f)
("ppc32" threads))
;; Hurd
("gnu"
@ -466,8 +467,8 @@ and 32-bit PowerPC architectures.")
(package
(inherit chez-scheme)
(name "chez-scheme-for-racket")
(version "9.5.9.2")
;; The version should match `(scheme-fork-version-number)`.
(version "9.5.9.8")
;; The version should match `scheme-version`.
;; See racket/src/ChezScheme/s/cmacros.ss c. line 360.
;; It will always be different than the upstream version!
;; When updating, remember to also update %racket-version in racket.scm.
@ -492,12 +493,6 @@ and 32-bit PowerPC architectures.")
(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 #~'())
#~`("--disable-x11"
"--threads" ;; ok to potentially duplicate
@ -590,7 +585,7 @@ supported by upstream Chez Scheme.
Main additions to Chez Scheme in the Racket variant:
@itemize @bullet
@item
AArch64 code generation
AArch64 and RV64G (RISC-V) code generation
@item
Portable bytecode (@code{pb}) mode, which is mainly useful for bootstrapping a
build on any platform, but can also be used on platforms without native-code
@ -603,7 +598,7 @@ Faster multiplication and division for large exact numbers
@item
Type reconstruction during optimization (especially for safe code)
@item
Continuation attachments
Continuation marks
@item
Parallel garbage collection, in-place garbage collection for old-generation
objects (instead of always copying), and reachability-based memory
@ -611,6 +606,8 @@ accounting
@item
Ordered finalization, immobile (but collectable) objects, weak/ephemeron
generic hash tables, and reference bytevectors
@item
Easier bootstrapping via old versions of Chez Scheme
@end itemize")
(license asl2.0)))
@ -695,7 +692,7 @@ source.")))
#~(invoke
(search-input-file (or native-inputs inputs)
"/opt/racket-vm/bin/racket")
"rktboot/main.rkt"
"../rktboot/main.rkt"
#$@(if (racket-cs-native-supported-system?)
#~()
(let ((m (nix-system->pbarch-machine-type)))

View file

@ -698,7 +698,7 @@ can read and write both the metadata and the cell data in a Sheet.")
"07fil52jswbg2h807cd82m2wlm5j2fb891ifri9ms037099qdwf5"))))
(properties `((upstream-name . "proj4")))
(build-system r-build-system)
(inputs (list proj.4 zlib))
(inputs (list proj-7 zlib))
(native-inputs (list pkg-config))
(home-page "http://www.rforge.net/proj4/")
(synopsis "Simple interface to the PROJ.4 cartographic projections library")

View file

@ -53,12 +53,12 @@
;;; Copyright © 2021 Simon Streit <simon@netpanic.org>
;;; Copyright © 2021 Alexandre Hannud Abdo <abdo@member.fsf.org>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2021 jgart <jgart@dismail.de>
;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com>
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2022 muradm <mail@muradm.net>
;;; Copyright © 2022 Thomas Albers Raviola <thomas@thomaslabs.org>
;;; Copyright © 2021, 2022 jgart <jgart@dismail.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1333,7 +1333,7 @@ pictures, sounds, or video.")
(define-public timescaledb
(package
(name "timescaledb")
(version "2.7.0")
(version "2.8.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1342,8 +1342,7 @@ pictures, sounds, or video.")
(file-name (git-file-name name version))
(sha256
(base32
"18wszj8ia5rs4y4zkyfb0f5z4y1g7ac3jym748nbkbszhxmq7nc7"))
(patches (search-patches "timescaledb-flaky-test.patch"))
"1gbadna0ilmqad7sbrixm12wd71h43njhsbp1kh5lispb6drdb6r"))
(modules '((guix build utils)))
(snippet
;; Remove files carrying the proprietary TIMESCALE license.

View file

@ -3148,14 +3148,14 @@ as a library for other Emacs packages.")
(define-public emacs-auctex
(package
(name "emacs-auctex")
(version "13.1.5")
(version "13.1.6")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"auctex-" version ".tar"))
(sha256
(base32 "00g6js6089637w8alch4dvk140chjkyirsa8inh9ai6a6kkfvc3p"))))
(base32 "0pdinnhkv7vqib01a6vxq1iixs7sw72r0sxzryv78c9hxn2k4552"))))
(build-system emacs-build-system)
;; We use 'emacs' because AUCTeX requires dbus at compile time
;; ('emacs-minimal' does not provide dbus).
@ -6923,39 +6923,38 @@ files which are intended to be packages.")
(license license:gpl3+)))
(define-public emacs-flymake-proselint
(let ((commit "6a99865c7ac6474b8c5d1f9a1ae2384667f06d36")
(revision "0"))
(package
(name "emacs-flymake-proselint")
(version (git-version "0.2.3" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~manuel-uberti/flycheck-proselint")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"028ilp9h22rlawlh5ydiykvi8pryyknwi019sjyxkk2h0fza9jan"))))
(build-system emacs-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-exec-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "flymake-proselint.el"
(("\"proselint\"")
(string-append
"\"" (search-input-file inputs "/bin/proselint") "\""))))))))
(propagated-inputs
(list emacs-flycheck))
(inputs
(list python-proselint))
(home-page "https://git.sr.ht/~manuel-uberti/flycheck-proselint")
(synopsis "Flymake backend for @code{proselint}")
(description "This package adds support for @code{proselint} in Flymake.")
(license license:gpl3+))))
(let ((commit "9c68ee881f18f554f0ab5bbf5bee1a4b753d792b"))
(package
(name "emacs-flymake-proselint")
(version "0.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~manuel-uberti/flycheck-proselint")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1n8i17il2nfazw3d9kza2r7py61dgdr7kqmg0s1vhrk86qq39669"))))
(build-system emacs-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-exec-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "flymake-proselint.el"
(("\"proselint\"")
(string-append
"\"" (search-input-file inputs "/bin/proselint") "\""))))))))
(propagated-inputs
(list emacs-flycheck))
(inputs
(list python-proselint))
(home-page "https://git.sr.ht/~manuel-uberti/flycheck-proselint")
(synopsis "Flymake backend for @code{proselint}")
(description "This package adds support for @code{proselint} in Flymake.")
(license license:gpl3+))))
(define-public emacs-elisp-demos
(package
@ -7097,14 +7096,14 @@ user.")
(define-public emacs-subed
(package
(name "emacs-subed")
(version "1.0.21")
(version "1.0.24")
(source (origin
(method url-fetch)
(uri (string-append "https://elpa.nongnu.org/nongnu/subed-"
version ".tar"))
(sha256
(base32
"0l4xv56ab31li9l77x68jnpcn47xgj0gqjfs5diklr665vjmfqim"))))
"1x9w858pgyhd7hlvn85h379f8sfvf8ly3a9596q4jkqbcp9riymq"))))
(arguments
(list
#:tests? #t
@ -14516,40 +14515,43 @@ such files while providing facilities to link between them.")
(license license:gpl3+)))
(define-public emacs-logos
(package
(name "emacs-logos")
(version "1.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~protesilaos/logos")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1s1bm8hipipxkcz558h7i21z19g5jsbpqaza8nr4mx03jdp4nsxf"))))
(native-inputs (list texinfo))
(build-system emacs-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'makeinfo
(lambda* (#:key outputs #:allow-other-keys)
(invoke "emacs"
"--batch"
"--eval=(require 'ox-texinfo)"
"--eval=(find-file \"README.org\")"
"--eval=(org-texinfo-export-to-info)")
(install-file "logos.info" (string-append #$output "/share/info")))))))
(home-page "https://protesilaos.com/emacs/logos")
(synopsis "Simple focus mode for Emacs")
(description "This package provides a simple focus mode which can be
;; XXX: Upstream did not tag latest release. Use the commit matching
;; version bump.
(let ((commit "d8f18f74591ffcac6466409ac7cd29f90838b2fe"))
(package
(name "emacs-logos")
(version "1.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.sr.ht/~protesilaos/logos")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0g3jxzwv99wkxlb36j2nyjibayvwjpy7qc2mz9lfd2945q6apj3z"))))
(native-inputs (list texinfo))
(build-system emacs-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'makeinfo
(lambda* (#:key outputs #:allow-other-keys)
(invoke "emacs"
"--batch"
"--eval=(require 'ox-texinfo)"
"--eval=(find-file \"README.org\")"
"--eval=(org-texinfo-export-to-info)")
(install-file "logos.info" (string-append #$output "/share/info")))))))
(home-page "https://protesilaos.com/emacs/logos")
(synopsis "Simple focus mode for Emacs")
(description "This package provides a simple focus mode which can be
applied to any buffer for reading, writing, or even doing a presentation. The
buffer can be divided in pages using the @code{page-delimiter}, outline
structure, or any other pattern.")
(license (list license:gpl3+
license:fdl1.3+)))) ; GFDLv1.3+ for the manual
(license (list license:gpl3+
license:fdl1.3+))))) ; GFDLv1.3+ for the manual
(define-public emacs-tmr
(package
@ -16032,14 +16034,14 @@ the center of the screen and not at the bottom.")
(define-public emacs-posframe
(package
(name "emacs-posframe")
(version "1.1.8")
(version "1.2.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"posframe-" version ".tar"))
(sha256
(base32 "0560f05c2rh6jkdba4yq9qbazfz6qbdrymqm5zcihvz7cy019dzm"))))
(base32 "06xk6z3b5mqgcskjiwkl9viccvzriflr8y51aclyfdamh5qb6kqb"))))
(build-system emacs-build-system)
;; emacs-minimal does not include the function font-info.
(arguments
@ -18644,11 +18646,11 @@ from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
(license license:gpl3+))))
(define-public emacs-org-tree-slide
(let ((commit "036a36eec1cf712d3db155572aed325daa372eb5")
(revision "2"))
(let ((commit "d6529bc2df727d09014e0e56abf4f15a8e8fc20f")
(revision "0"))
(package
(name "emacs-org-tree-slide")
(version (git-version "2.8.4" revision commit))
(version (git-version "2.8.18" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
@ -18656,15 +18658,15 @@ from @code{groovy-mode} for editing Jenkins declarative pipeline files.")
(commit commit)))
(sha256
(base32
"1r8ncx25xmxicgciyv5przp68y8qgy40fm10ba55awvql4xcm0yk"))
"1br32mpwarmrn158y2pkkmfl2ssv8q8spzknkg2avr16fil0j1pz"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(home-page "https://github.com/takaxp/org-tree-slide")
(synopsis "Presentation tool for org-mode")
(synopsis "Presentation tool for Org mode")
(description
"Org-tree-slide provides a slideshow mode to view org-mode files. Use
@code{org-tree-slide-mode} to enter the slideshow mode, and then @kbd{C->} and
@kbd{C-<} to jump to the next and previous slide.")
"Org Tree Slide is a minor mode for using an Org document in
presentations by progressively revealing individual subtrees of the
document.")
(license license:gpl3+))))
(define-public emacs-scratch-el
@ -33049,12 +33051,12 @@ to the @url{https://multitran.com} online dictionary.")
(license license:gpl3)))
(define-public emacs-code-cells
;; No tagged release upstream
(let ((commit "8660bdeedee360e5eb632f1eb1356eb09d7dfbee")
(revision "0"))
;; XXX: Upstream does not tag releases. The commit below matches version
;; bump.
(let ((commit "fd68a33eb43b3cbd44fed767f48e230382903592"))
(package
(name "emacs-code-cells")
(version (git-version "0.2" revision commit))
(version "0.3")
(source
(origin
(method git-fetch)
@ -33063,7 +33065,7 @@ to the @url{https://multitran.com} online dictionary.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0mvfsdlhc3znc0d2p8vm7apkbpvbs688wmwvd0sms33qly53f546"))))
(base32 "072d5vldjfg9mj4a86bw8xmxl3hmywsnx4f2k6nayqy4whry5fmq"))))
(build-system emacs-build-system)
(home-page "https://github.com/astoff/code-cells.el")
(synopsis "Emacs utilities for code split into cells, including Jupyter

View file

@ -3431,6 +3431,11 @@ BOM creation and has a lot of extra features.")
#:configure-flags '("-DBUILD_EXAMPLES=OFF")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-protobuf-compatibility
(lambda _
(substitute* "src/Socket_p.h"
(("stream\\.SetTotalBytesLimit\\(message_size_maximum,.*\\);")
"stream.SetTotalBytesLimit(message_size_maximum);"))))
(add-before 'configure 'fix-python-sitearch
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "cmake/FindSIP.cmake"

View file

@ -2552,7 +2552,7 @@ and heavily inspired by Creep.")
(define-public font-montserrat
(package
(name "font-montserrat")
(version "7.210")
(version "7.222")
(source (origin
(method git-fetch)
(uri (git-reference
@ -2561,14 +2561,15 @@ and heavily inspired by Creep.")
(file-name (git-file-name name version))
(sha256
(base32
"0jn1yvfamq5xazw85sfnxgriji60g7mkss9mkf8d0117vdk838bn"))))
"03cfk45r5g694dqp2gjgg0qwra8w78nl6hc6p56qwd5dcfgr2l3r"))))
(build-system font-build-system)
(home-page "https://github.com/JulietaUla/Montserrat")
(synopsis "The Montserrat font")
(description "The old posters and signs in the traditional Montserrat
neighborhood of Buenos Aires inspired Julieta Ulanovsky to design this
typeface and rescue the beauty of urban typography that emerged in the first
half of the twentieth century.")
(description
"The old posters and signs in the traditional Montserrat neighborhood of
Buenos Aires inspired Julieta Ulanovsky to design this typeface and rescue the
beauty of urban typography that emerged in the first half of the twentieth
century.")
(license license:silofl1.1)))
(define-public font-overpass

View file

@ -10532,6 +10532,30 @@ email library.")
of the current user.")
(license license:expat)))
(define-public go-github-com-kyoh86-xdg
(package
(name "go-github-com-kyoh86-xdg")
(version "1.2.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/kyoh86/xdg")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0a5nz53fdz1c2qvwlf2dpjdd72nxri95i6q4b07c37kiipgaxncn"))))
(build-system go-build-system)
(arguments
(list #:import-path "github.com/kyoh86/xdg"))
(home-page "https://github.com/kyoh86/xdg")
(synopsis "XDG base directories for Go")
(description
"The xdg package provides lightweight helper functions in Go to get
config, data and cache directories according to the XDG Base Directory
Specification.")
(license license:expat)))
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar

View file

@ -32,6 +32,7 @@
;;; Copyright © 2022 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2022 Tobias Kortkamp <tobias.kortkamp@gmail.com>
;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
;;; Copyright © 2022 dan <i@dan.games>
;;;
;;; This file is part of GNU Guix.
;;;
@ -133,6 +134,7 @@
#:use-module (guix hg-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix deprecation)
#:use-module (guix utils))
(define-public mmm
@ -429,14 +431,14 @@ typically encountered in feature film production.")
(define-public blender
(package
(name "blender")
(version "3.0.1")
(version "3.3.1")
(source (origin
(method url-fetch)
(uri (string-append "https://download.blender.org/source/"
"blender-" version ".tar.xz"))
(sha256
(base32
"0hblgls5pclqamsxk0vb14f4fm30hdiq7fb2bm5mq2ly4sb0mfqr"))))
"1jlc26axbhh97d2j6kfg9brgiq8j412mgmw7p41ah34apzq4inia"))))
(build-system cmake-build-system)
(arguments
(let ((python-version (version-major+minor (package-version python))))
@ -1798,102 +1800,57 @@ or by subtracting one shape from the other.")
(license license:gpl2))))
(define-public coin3D
;; The 4.0.0 zip archive isn't stable, nor in fact a release. See:
;; https://bitbucket.org/Coin3D/coin/issues/179/coin-400-srczip-has-been-modified
(let ((revision 1)
(changeset "ab8d0e47a4de3230a8137feb39c142d6ba45f97d"))
(package
(name "coin3D")
(version
(simple-format #f "3.1.3-~A-~A" revision (string-take changeset 7)))
(source
(origin
(method hg-fetch)
(uri (hg-reference
(url "https://bitbucket.org/Coin3D/coin")
(changeset changeset)))
(file-name (git-file-name name version))
(sha256
(base32 "1ff44jz6lg4rylljvy69n1hcjh9y6achbv9jpn1cv2sf8cxn3r2j"))
(modules '((guix build utils)))
(snippet
'(begin
(for-each delete-file
'("cfg/csubst.exe"
"cfg/wrapmsvc.exe"))
#t))))
(build-system cmake-build-system)
(native-inputs
(list doxygen graphviz))
(inputs
(list boost freeglut glew))
(arguments
`(#:configure-flags
(list
"-DCOIN_BUILD_DOCUMENTATION_MAN=ON"
(string-append "-DBOOST_ROOT="
(assoc-ref %build-inputs "boost")))))
(home-page "https://bitbucket.org/Coin3D/coin/wiki/Home")
(synopsis
"High-level 3D visualization library with Open Inventor 2.1 API")
(description
"Coin is a 3D graphics library with an Application Programming Interface
based on the Open Inventor 2.1 API. For those who are not familiar with
Open Inventor, it is a scene-graph based retain-mode rendering and model
interaction library, written in C++, which has become the de facto
standard graphics library for 3D visualization and visual simulation
software in the scientific and engineering community.")
(license license:bsd-3))))
(define-public coin3D-4
(package
(package
(name "coin3D")
(version "4.0.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/coin3d/coin")
(commit (string-append "Coin-" version))
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32 "1ayg0hl8wanhadahm5xbghghxw1qjwqbrs3dl3ngnff027hsyf8p"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete binaries
(for-each delete-file
'("cfg/csubst.exe"
"cfg/wrapmsvc.exe"))
;; Delete references to packaging tool cpack. Otherwise the build
;; fails with "add_subdirectory given source "cpack.d" which is not
;; an existing directory."
(substitute* "CMakeLists.txt"
((".*cpack.d.*") ""))
#t))))
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/coin3d/coin")
(commit (string-append "Coin-" version))
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32 "1ayg0hl8wanhadahm5xbghghxw1qjwqbrs3dl3ngnff027hsyf8p"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete binaries
(for-each delete-file
'("cfg/csubst.exe"
"cfg/wrapmsvc.exe"))
;; Delete references to packaging tool cpack. Otherwise the build
;; fails with "add_subdirectory given source "cpack.d" which is not
;; an existing directory."
(substitute* "CMakeLists.txt"
((".*cpack.d.*") ""))
#t))))
(build-system cmake-build-system)
(native-inputs
(list doxygen graphviz))
(list doxygen graphviz))
(inputs
(list boost freeglut glew))
(list boost freeglut glew))
(arguments
`(#:configure-flags
(list
"-DCOIN_BUILD_DOCUMENTATION_MAN=ON"
(string-append "-DBOOST_ROOT="
(assoc-ref %build-inputs "boost")))))
`(#:configure-flags
(list
"-DCOIN_BUILD_DOCUMENTATION_MAN=ON"
(string-append "-DBOOST_ROOT="
(assoc-ref %build-inputs "boost")))))
(home-page "https://github.com/coin3d/coin")
(synopsis
"High-level 3D visualization library with Open Inventor 2.1 API")
"High-level 3D visualization library with Open Inventor 2.1 API")
(description
"Coin is a 3D graphics library with an Application Programming Interface
"Coin is a 3D graphics library with an Application Programming Interface
based on the Open Inventor 2.1 API. For those who are not familiar with Open
Inventor, it is a scene-graph based retain-mode rendering and model interaction
library, written in C++, which has become the de facto standard graphics
library for 3D visualization and visual simulation software in the scientific
and engineering community.")
(license license:bsd-3)))
(license license:bsd-3)))
(define-deprecated coin3D-4 coin3D)
(export coin3D-4)
(define-public skia
;; Releases follow those of Chromium, about every 6 weeks. The release

View file

@ -3549,7 +3549,7 @@ perform geometrical transforms on JPEG images.")
(define-public guile-png
(package
(name "guile-png")
(version "0.1.0")
(version "0.2.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -3558,7 +3558,7 @@ perform geometrical transforms on JPEG images.")
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"0ig58zjw60jg4bb4fzm22dqr5zksqpzimpfa8wcarv8gjp861cw5"))))
"1nk81z2cf9fsyppq5ly0yjw7yvdk5qraf71in7ayzdkngphhfgfx"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ;to prevent guild warnings

View file

@ -201,7 +201,9 @@ licences similar to the Modified BSD licence."))))
(base32
"0qpcd3n26q52dpyibm11f5l6cgscdr54p2jish39gc3p1f5h3ws1"))
(patches (search-patches "mia-fix-boost-headers.patch"
"mia-vtk9.patch"))))
"mia-vtk9.patch"
"mia-vtk92.patch"
"mia-vtk-version.patch"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
@ -314,7 +316,7 @@ many popular formats.")
(define-public vtk
(package
(name "vtk")
(version "9.0.1")
(version "9.2.2")
(source (origin
(method url-fetch)
(uri (string-append "https://vtk.org/files/release/"
@ -322,9 +324,7 @@ many popular formats.")
"/VTK-" version ".tar.gz"))
(sha256
(base32
"1ir2lq9i45ls374lcmjzw0nrm5l5hnm1w47lg8g8d0n2j7hsaf8v"))
(patches
(search-patches "vtk-fix-freetypetools-build-failure.patch"))
"0x8h2bwxq2870067j7wqd0qym87pa3inkbri93zrdb0zwwmhlnqw"))
(modules '((guix build utils)))
(snippet
'(begin
@ -373,14 +373,6 @@ many popular formats.")
"-DVTK_WRAP_PYTHON=ON"
"-DVTK_PYTHON_VERSION:STRING=3"
)
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-sources
(lambda _
(substitute* "Common/Core/vtkFloatingPointExceptions.cxx"
(("<fenv.h>") "<cfenv>"))
(substitute* "Common/Core/CMakeLists.txt"
(("fenv.h") "cfenv")))))
#:tests? #f)) ;XXX: test data not included
(inputs
(list double-conversion

View file

@ -12,6 +12,7 @@
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2021 WinterHound <winterhound@yandex.com>
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -151,7 +152,7 @@ irssi, but graphical.")
(define-public irssi
(package
(name "irssi")
(version "1.4.1")
(version "1.4.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/irssi/irssi/"
@ -159,7 +160,7 @@ irssi, but graphical.")
version ".tar.xz"))
(sha256
(base32
"00bmwkpzhqqnsajakk7dviap1i8s89375kwpdyxg65ms3ds94xka"))))
"0d04bam0lrk66wi7ygd5si5y6adf2ajhh6mn89zyc8m34d972gxr"))))
(build-system gnu-build-system)
(arguments
`(#:phases

View file

@ -355,17 +355,17 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream.
(define-public linux-libre-6.0-version "6.0.8")
(define-public linux-libre-6.0-version "6.0.9")
(define-public linux-libre-6.0-gnu-revision "gnu")
(define deblob-scripts-6.0
(linux-libre-deblob-scripts
linux-libre-6.0-version
linux-libre-6.0-gnu-revision
(base32 "0iwbjrgiwch5v1xpnm9wk9zqw2v6lxja0k8yj2x0amxc9ma68176")
(base32 "19phj22zsl2jz6j8byaaxs7a8n55mkaz7lfa5nfiv7ia2jrkvlj0")))
(base32 "06iqxkg5hakzvmz6gcz878k1sr553zbng2j1b2whgfg7zmhxkb34")))
(define-public linux-libre-6.0-pristine-source
(let ((version linux-libre-6.0-version)
(hash (base32 "0mx2bxgnxm3vz688268939xw90jqci7xn992kfpny74mjqwzir0d")))
(hash (base32 "1irip1yk62carcisxlacwcxsiqib4qswx6h5mfhv8f97x04a4531")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.0)))
@ -373,32 +373,32 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The "longterm" kernels — the older releases with long-term upstream support.
;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html>
(define-public linux-libre-5.15-version "5.15.78")
(define-public linux-libre-5.15-version "5.15.79")
(define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15
(linux-libre-deblob-scripts
linux-libre-5.15-version
linux-libre-5.15-gnu-revision
(base32 "0vj60bra81fmbx3lz924czbhxs4dmvd4d584g9mcs80b7c4q52kg")
(base32 "048r4synfax2ajyzlmp672b68yshxwlfccdah2vz1kh88rqfmgsc")))
(base32 "0h8a48dvgxyj3v08lp99kh5pfa93r4rks78cj0j1rwz1516xk8h3")))
(define-public linux-libre-5.15-pristine-source
(let ((version linux-libre-5.15-version)
(hash (base32 "16d4d4g5n2g6jpp8bvad1bm1l0b0nb4ckwsmq6w2g3538xrrzf8d")))
(hash (base32 "0m61k7k6lj24z9a266q08wzghggjik2wizcabdwd1vn0vcqr18yb")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.15)))
(define-public linux-libre-5.10-version "5.10.154")
(define-public linux-libre-5.10-version "5.10.155")
(define-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10
(linux-libre-deblob-scripts
linux-libre-5.10-version
linux-libre-5.10-gnu-revision
(base32 "0mw7qn77y9c6wrnw4rjvf75cpm1w6n1aqqhf8cnghcb97p2yxxrf")
(base32 "1981axxswghza3iadp94q54y8w30h9w9vyq4cbjiiv9alvbv0pb8")))
(base32 "1m9l554w6a72mq0kf7ggm44z247m2yz6zhafwqxh96qpjpcaabpj")))
(define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version)
(hash (base32 "12763vlnrgmgj03khj9ls2g7zlhclj9g1l3008b36j9jli6kvbn6")))
(hash (base32 "1wyla96qsdf50n7qjj4hdf36bj56whv7gc9mgw9bvrsqdi92gc7i")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.10)))

View file

@ -616,6 +616,35 @@ It produces two systems: asdf-finalizers and list-of.")
(define-public cl-asdf-finalizers
(sbcl-package->cl-source-package sbcl-asdf-finalizers))
(define-public sbcl-asdf-system-connections
(let ((commit "9f085240febccccff99d9d3bb687fcaafffd3f5e")
(revision "1"))
(package
(name "sbcl-asdf-system-connections")
(version (git-version "0.8.4" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gwkkwg/asdf-system-connections")
(commit commit)))
(file-name (git-file-name "cl-asdf-system-connections" version))
(sha256
(base32 "06kg0m8bv383qq3r34x0f8hz6p6zxcw02qn7kj960vcnrp5a5b3y"))))
(build-system asdf-build-system/sbcl)
(home-page "https://github.com/gwkkwg/asdf-system-connections")
(synopsis "Common Lisp ASDF system auto-loading extension")
(description
"This package provides a Common Lisp ASDF system auto-loading
extension.")
(license license:expat))))
(define-public ecl-asdf-system-connections
(sbcl-package->ecl-package sbcl-asdf-system-connections))
(define-public cl-asdf-system-connections
(sbcl-package->cl-source-package sbcl-asdf-system-connections))
(define-public sbcl-net.didierverna.asdf-flv
(package
(name "sbcl-net.didierverna.asdf-flv")
@ -1947,6 +1976,82 @@ Lisp.")
(define-public ecl-hu.dwim.graphviz
(sbcl-package->ecl-package sbcl-hu.dwim.graphviz))
(define-public sbcl-cl-dot
(let ((commit "73dfbb6e015a28ebed873266e4e8190e509b43de")
(revision "0"))
(package
(name "sbcl-cl-dot")
(version (git-version "0.9.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/michaelw/cl-dot")
(commit commit)))
(file-name (git-file-name "cl-dot" version))
(sha256
(base32 "0mcvzqfcg5rzr8rz8aa2yr2jl3ifflaksvps08zj71hbhiacqpxa"))))
(build-system asdf-build-system/sbcl)
(home-page "https://github.com/michaelw/cl-dot")
(synopsis "Generate Graphviz dot output from arbitrary Lisp data")
(description
"CL-DOT is a Common Lisp library for generating Graphviz dot output from
arbitrary Lisp data.")
(license license:expat))))
(define-public cl-dot
(sbcl-package->cl-source-package sbcl-cl-dot))
(define-public ecl-cl-dot
(sbcl-package->ecl-package sbcl-cl-dot))
(define-public sbcl-cl-graph
(let ((commit "3cb786797b24883d784b7350e7372e8b1e743508")
(revision "1"))
(package
(name "sbcl-cl-graph")
(version (git-version "0.10.2" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gwkkwg/cl-graph")
(commit commit)))
(file-name (git-file-name "cl-graph" version))
(sha256
(base32 "1748rj52f2jmd5jvsy9jwhn0zf73sjzjhwhnljvq6yi2kdqr30kl"))))
(build-system asdf-build-system/sbcl)
(arguments
;; TODO: (Sharlatan-20221118T215839+0000): Tests failed
;;
;; https://github.com/gwkkwg/cl-graph/issues/17
;;
`(#:tests? #f
#:asd-systems '("cl-graph" "cl-graph+hu.dwim.graphviz")))
(native-inputs
(list sbcl-lift sbcl-moptilities))
(inputs
(list sbcl-cl-containers
sbcl-cl-mathstats
sbcl-dynamic-classes
sbcl-hu.dwim.graphviz
sbcl-metabang-bind
sbcl-metacopy
sbcl-metatilities-base))
(home-page "https://github.com/gwkkwg/cl-graph")
(synopsis "Graph manipulation utilities for Common Lisp")
(description
"This package provides a Common Lisp library for manipulating graphs
and running graph algorithms.")
(license license:expat))))
;; NOTE: (Sharlatan-20221118T214734+0000): No ECL supoort
;;
;; ecl-cl-graph
(define-public cl-cl-graph
(sbcl-package->cl-source-package sbcl-cl-graph))
(define-public sbcl-babel
;; No release since 2014.
(let ((commit "f892d0587c7f3a1e6c0899425921b48008c29ee3")
@ -3782,6 +3887,44 @@ the Common Lisp programming language.")
(define-public ecl-trivial-garbage
(sbcl-package->ecl-package sbcl-trivial-garbage))
(define-public sbcl-ucons
(let ((commit "d976810ef2b12a2caaf55bd0f258272e9b79f3be")
(revision "0"))
(package
(name "sbcl-ucons")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/marcoheisig/ucons")
(commit commit)))
(file-name (git-file-name "cl-ucons" version))
(sha256
(base32 "17aj47pdjiywnf33hl46p27za2q0pq5ar3fpqxaqskggxrfxmijl"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-alexandria
sbcl-atomics
sbcl-bordeaux-threads
sbcl-named-readtables
sbcl-trivia))
(home-page "https://github.com/marcoheisig/ucons")
(synopsis "Unique conses for Common Lisp")
(description "UCONS is a Common Lisp library providing unique conses.
Unique conses are different from regular conses in that, in addition to their
@code{car} and @code{cdr}, they maintain a table of past users. Also, the
@code{cdr} of each ucons is restricted to other uconses or @code{nil}.
Uconses are meant for those situations where even reusing regular conses (to
avoid consing) is too computationally expensive.")
(license license:expat))))
(define-public cl-ucons
(sbcl-package->cl-source-package sbcl-ucons))
(define-public ecl-ucons
(sbcl-package->ecl-package sbcl-ucons))
(define-public sbcl-closer-mop
(let ((commit "19c9d33f576e10715fd79cc1d4f688dab0f241d6"))
(package
@ -6952,6 +7095,42 @@ the return type of a function.")
;; The tests get stuck indefinitly
'(#:tests? #f))))
(define-public sbcl-typo
(let ((commit "0e883490f81edf2a1be4e5b101d1caec78d7853b")
(revision "0"))
(package
(name "sbcl-typo")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/marcoheisig/Typo")
(commit commit)))
(file-name (git-file-name "cl-typo" version))
(sha256
(base32 "08cmkjl3f77rfhxbjyd6f3kinhzak30mdfphnpf73sh1vw4v0vym"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-alexandria
sbcl-closer-mop
sbcl-introspect-environment
sbcl-trivia
sbcl-trivial-arguments
sbcl-trivial-garbage))
(home-page "https://github.com/marcoheisig/Typo")
(synopsis "Portable type inference library for Common Lisp")
(description
"Typo is a portable library for Common Lisp that does approximate
reasoning about types, but without consing.")
(license license:expat))))
(define-public cl-typo
(sbcl-package->cl-source-package sbcl-typo))
(define-public ecl-typo
(sbcl-package->ecl-package sbcl-typo))
(define-public sbcl-optima
(let ((commit "373b245b928c1a5cce91a6cb5bfe5dd77eb36195")
(revision "1"))
@ -7575,7 +7754,7 @@ which implements a set of utilities.")
(uri (git-reference
(url "https://github.com/gwkkwg/cl-containers")
(commit commit)))
(file-name (git-file-name name version))
(file-name (git-file-name "cl-containers" version))
(sha256
(base32
"18s6jfq11n8nv9k4biz32pm1s7y9zl054ry1gmdbcf39nisy377y"))))
@ -7583,9 +7762,14 @@ which implements a set of utilities.")
(native-inputs
(list sbcl-lift))
(inputs
`(("metatilities-base" ,sbcl-metatilities-base)))
(list sbcl-asdf-system-connections
sbcl-metatilities-base
sbcl-moptilities))
(arguments
'(#:phases
'(#:asd-systems '("cl-containers"
"cl-containers/with-moptilities"
"cl-containers/with-utilities")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'relax-version-checks
(lambda _
@ -11485,6 +11669,15 @@ MOP easier to use.")
(define-public cl-moptilities
(sbcl-package->cl-source-package sbcl-moptilities))
(define-public ecl-moptilities
(let ((pkg (sbcl-package->ecl-package sbcl-moptilities)))
(package
(inherit pkg)
(arguments
;; Tests fail with "The function LIFT::GET-BACKTRACE-AS-STRING is
;; undefined" on ECL.
'(#:tests? #f)))))
(define-public sbcl-osicat
(let ((commit "a45eb3b5826e9175f7c94ba97a00d6b4932f3163")
(revision "3"))
@ -16480,6 +16673,38 @@ immediately loaded.")
(define-public cl-bodge-math
(sbcl-package->cl-source-package sbcl-bodge-math))
(define-public sbcl-cl-mathstats
(let ((commit "4df38ea1b9de069cf939919253565a9ca9538eca")
(revision "1"))
(package
(name "sbcl-cl-mathstats")
(version (git-version "0.8.2" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gwkkwg/cl-mathstats")
(commit commit)))
(file-name (git-file-name "cl-mathstats" version))
(sha256
(base32 "0gsjvmkmnxc4hp5z9mkm5vsllywqyg7kx8jgz88vnx47yj3va1s8"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-lift))
(inputs
(list sbcl-cl-containers sbcl-metatilities-base))
(home-page "https://github.com/gwkkwg/cl-mathstats")
(synopsis "Common Lisp collection of mathematical routines")
(description
"This package provides Common Lisp math and statistics routines.")
(license license:expat))))
(define-public ecl-cl-mathstats
(sbcl-package->ecl-package sbcl-cl-mathstats))
(define-public cl-mathstats
(sbcl-package->cl-source-package sbcl-cl-mathstats))
(define-public sbcl-bodge-blobs-support
(let ((commit "c5034ca5f4fc3a44dbadeba215a09afd59a404b0")
(revision "1"))
@ -17968,6 +18193,41 @@ running into parallelism problems when having to change directory.")
(define-public cl-simple-inferiors
(sbcl-package->cl-source-package sbcl-simple-inferiors))
(define-public sbcl-metacopy
(let ((commit "1b5bf443206cc1dea7801ae23d1167bd02122d30")
(revision "1"))
(package
(name "sbcl-metacopy")
(version (git-version "0.2.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gwkkwg/metacopy")
(commit commit)))
(file-name (git-file-name "cl-metacopy" version))
(sha256
(base32 "1rzp112djgw5n76s6hy2aq92bc43p0zd5bgzvqwvgvws4pls42s9"))))
(build-system asdf-build-system/sbcl)
(native-inputs
(list sbcl-asdf-system-connections sbcl-lift))
(inputs
(list sbcl-contextl sbcl-moptilities))
(home-page "https://github.com/gwkkwg/metacopy")
(synopsis "Flexible Common Lisp shallow/deep copy mechanism")
(description
"This package provides a flexible shallow/deep copy mechanism for
Common Lisp.")
(license license:expat))))
;; NOTE: (Sharlatan-20221112T214131+0000): There is no ecl-moptilities variable
;; required for tests.
;;
;; ecl-metacopy
(define-public cl-metacopy
(sbcl-package->cl-source-package sbcl-metacopy))
(define-public sbcl-legit
(let ((commit "5f8a2d4c4f5fb8e53340eeef600433ee20e03fbe")
(revision "2"))
@ -22791,7 +23051,7 @@ instead of #'FOO.
(define-public sbcl-njson
(package
(name "sbcl-njson")
(version "0.1.0")
(version "0.2.3")
(source (origin
(method git-fetch)
(uri (git-reference
@ -22800,10 +23060,12 @@ instead of #'FOO.
(file-name (git-file-name "cl-njson" version))
(sha256
(base32
"0lv3q1841s4avii1jp89r91jq21sids2ycpy2id0kzhrljzhmy6j"))))
"11s6qq719zlrpy0kb1id9qnrm73yrc3xi560k4s8cj79fy4nj0ib"))))
(build-system asdf-build-system/sbcl)
(inputs (list sbcl-cl-json))
(native-inputs (list sbcl-lisp-unit2))
(arguments
'(#:asd-systems '("njson" "njson/aliases" "njson/cl-json")))
(home-page "https://github.com/atlas-engineer/njson")
(synopsis "JSON handling framework for Common Lisp")
(description
@ -22827,6 +23089,10 @@ decoded.
@item @code{jif}, @code{jwhen}, @code{jor}, @code{jand}, and other macros
mimicking Lisp ones, while using truth values of JSON-decoded data.
@item @code{njson/aliases} package to nickname to @code{j} for all the
forms conveniently accessible as @code{j:rem}, @code{j:get},
@code{j:if} etc.
@end itemize\n")
(license license:bsd-3)))
@ -22839,7 +23105,7 @@ mimicking Lisp ones, while using truth values of JSON-decoded data.
(define-public sbcl-nactivitypub
(package
(name "sbcl-nactivitypub")
(version "0.0.1")
(version "0.0.4")
(source (origin
(method git-fetch)
(uri (git-reference
@ -22848,7 +23114,7 @@ mimicking Lisp ones, while using truth values of JSON-decoded data.
(file-name (git-file-name "cl-nactivitypub" version))
(sha256
(base32
"07n8a9cfzc96kwsb6z4v5ns09ad2qyq45bjb779azcs7ds144a6r"))))
"06vzaqwwc9j8r89ld3fd6bbbfd5bl0jh132rlf9wxmr0xcaqwkrl"))))
(build-system asdf-build-system/sbcl)
(inputs (list sbcl-cl-str
sbcl-dexador

View file

@ -429,6 +429,9 @@ an interpreter, a compiler, a debugger, and much more.")
(method url-fetch)
(uri (string-append "mirror://sourceforge/sbcl/sbcl/" version "/sbcl-"
version "-source.tar.bz2"))
(patches
;; TODO: remove this patch when updating to sbcl > 2.2.10.
(search-patches "sbcl-fix-build-on-arm64-with-clisp-as-host.patch"))
(sha256
(base32 "0cq8x4svkawirxq5s5gs4qxkl23m4q5p722a2kpss8qjfslc7hwc"))
(modules '((guix build utils)))

View file

@ -1592,14 +1592,16 @@ components which highly leverage existing libraries in the larger LLVM Project."
"Return a LLD wrapper. When LLD-AS-LD? is true, create a 'ld' symlink that
points to 'lld'."
(package
(inherit lld)
(name (if lld-as-ld? "lld-as-ld-wrapper" "lld-wrapper"))
(version "0")
(source #f)
(build-system trivial-build-system)
(native-inputs '())
(inputs (list (make-ld-wrapper "ld.lld-wrapper" #:binutils lld
#:linker "ld.lld")
(make-ld-wrapper "lld-wrapper" #:binutils lld #:linker
"lld")))
(propagated-inputs '())
(build-system trivial-build-system)
(arguments
(list #:builder
#~(let ((ld.lld (string-append #$(this-package-input
@ -1616,9 +1618,7 @@ points to 'lld'."
(synopsis "LLD linker wrapper")
(description "This is a linker wrapper for LLD; like @code{ld-wrapper}, it
wraps the linker to add any missing @code{-rpath} flags, and to detect any
misuse of libraries outside of the store.")
(home-page "https://www.gnu.org/software/guix/")
(license license:gpl3+)))
misuse of libraries outside of the store.")))
;;; A LLD wrapper suitable to use with -fuse-ld and GCC or with Clang.
(define-public lld-wrapper

View file

@ -2,6 +2,7 @@
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2016, 2017, 2019, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 20162018, 20202022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2022 ( <paren@disroot.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -19,34 +20,30 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages moreutils)
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix l:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
#:use-module (guix utils)
#:use-module (gnu packages docbook)
#:use-module (gnu packages perl)
#:use-module (gnu packages xml)
#:use-module (gnu packages docbook))
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils))
(define-public moreutils
(package
(name "moreutils")
(version "0.67")
(source
(origin
(method url-fetch)
(uri (string-append
"https://git.joeyh.name/index.cgi/moreutils.git/snapshot/"
name "-" version ".tar.gz"))
(sha256
(base32 "045d2dfvsd4sxxr2i2qvkpgvi912qj9vc4gpc8fb4hr9q912z1q3"))))
(source (origin
(method url-fetch)
(uri (string-append
"https://git.joeyh.name/index.cgi/moreutils.git/snapshot/"
name "-" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"045d2dfvsd4sxxr2i2qvkpgvi912qj9vc4gpc8fb4hr9q912z1q3"))))
(build-system gnu-build-system)
;; For building the manual pages.
(native-inputs
(list docbook-xml-4.4 docbook-xsl libxml2 libxslt))
(inputs
(list perl perl-timedate perl-time-duration))
(arguments
(list #:phases
#~(modify-phases %standard-phases
@ -64,6 +61,16 @@
#$(package-version (this-package-native-input
"docbook-xsl")))
(string-append "CC=" #$(cc-for-target)))))
(inputs
(list perl
perl-timedate
perl-time-duration))
;; For building the manual pages.
(native-inputs
(list docbook-xml-4.4
docbook-xsl-next ;without -next, man pages are corrupted
libxml2
libxslt))
(home-page "https://joeyh.name/code/moreutils/")
(synopsis "Miscellaneous general-purpose command-line tools")
(description
@ -71,4 +78,4 @@
augment the traditional Unix toolbox.")
(properties
'((release-monitoring-url . "https://git.joeyh.name/index.cgi/moreutils.git/")))
(license l:gpl2+)))
(license license:gpl2+)))

View file

@ -769,7 +769,7 @@ for debugging, and better support for mocking results.")
python-netaddr
python-netifaces
python-pbr
python-packaging-next
python-packaging
python-pyparsing
python-pytz))
(native-inputs

View file

@ -0,0 +1,15 @@
The VTK_MAJOR_VERSION macro is not available by default in newer versions.
This is a hack to expose it without changing all imports.
diff --git a/addons/vtk/CMakeLists.txt b/addons/vtk/CMakeLists.txt
--- a/addons/vtk/CMakeLists.txt
+++ b/addons/vtk/CMakeLists.txt
@@ -36,6 +36,8 @@ IF(WITH_VTKIO)
ELSE()
SET(SELECTED_VTK_LIBS ${VTK_MODULES_REQUESTED})
ENDIF()
+
+ add_compile_definitions(VTK_MAJOR_VERSION=${VTK_VERSION_MAJOR})
SET(VTK_LINK_LIBS_MESH ${SELECTED_VTK_LIBS} miamesh)
SET(VTK_LINK_LIBS_3D ${SELECTED_VTK_LIBS} mia3d)

View file

@ -0,0 +1,14 @@
Boolean pixel values are no longer supported in VTK 9.2.
diff --git a/addons/vtk/test_vtkimage.cc b/addons/vtk/test_vtkimage.cc
--- a/addons/vtk/test_vtkimage.cc
+++ b/addons/vtk/test_vtkimage.cc
@@ -206,7 +206,7 @@ BOOST_AUTO_TEST_CASE_TEMPLATE( test_mhd_write_read, T, type_mhd )
unlink(zrawfilename.str().c_str());
}
-#if VTK_MAJOR_VERSION >= 7
+#if VTK_MAJOR_VERSION >= 7 && VTK_MAJOR_VERSION < 9
BOOST_AUTO_TEST_CASE( test_simple_write_read_bool )
{
C3DBounds size(2, 3, 4);

View file

@ -1,126 +0,0 @@
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

@ -1,36 +0,0 @@
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

@ -1,609 +0,0 @@
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

@ -1,481 +0,0 @@
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,90 @@
From 1b7e15c23baf1fda44b1d0752902ddea11419fc5 Mon Sep 17 00:00:00 2001
From: Philip McGrath <philip@philipmcgrath.com>
Date: Fri, 7 Oct 2022 02:15:13 -0400
Subject: [PATCH] pkg/strip: handle read-only input
A package directory supplied to the functions from `pkg/strip` might
have had all of its write permission bits unset. Since `copy-file`
preserves the permissions of the source file, we may end up with a
read-only file that we want to overwrite (e.g. an `info.rkt` file).
Explicitly setting `user-write-bit` before writing avoids this problem.
Conservatively, we only set the permissions when actually needed,
and we restore the original permissions when we are done.
(cherry picked from commit 8c647c8cc9b66112198fcf9bea27fc0e3737162f)
---
racket/collects/pkg/strip.rkt | 35 +++++++++++++++++++++++++++++------
1 file changed, 29 insertions(+), 6 deletions(-)
diff --git a/racket/collects/pkg/strip.rkt b/racket/collects/pkg/strip.rkt
index 0ff58cea02..5899dbc6e6 100644
--- a/racket/collects/pkg/strip.rkt
+++ b/racket/collects/pkg/strip.rkt
@@ -306,9 +306,8 @@
#t
new-mod*-subs))))
(unless (eq? mod new-mod)
- (call-with-output-file*
+ (call-with-output-file/writable
new-p
- #:exists 'truncate/replace
(lambda (out) (write new-mod out)))))
(define (fixup-local-redirect-reference p js-path #:user [user-js-path js-path])
@@ -340,9 +339,8 @@
(string->bytes/utf-8 user-js-path)
(subbytes s (+ delta end2)))]
[else s]))))
- (call-with-output-file*
+ (call-with-output-file/writable
p
- #:exists 'truncate/replace
(lambda (out) (write-bytes new-bstr out)))))
;; Used in binary[-lib] mode:
@@ -383,9 +381,8 @@
(convert-mod info-lib defns)]))
(unless (equal? new-content content)
;; write updated:
- (call-with-output-file*
+ (call-with-output-file/writable
new-p
- #:exists 'truncate
(lambda (out)
(write new-content out)
(newline out)))
@@ -503,3 +500,29 @@
which
dir)
(current-continuation-marks)))))
+
+(define (call-with-output-file/writable pth proc)
+ ;; In case `pth` was copied from a file without the user-write-bit set,
+ ;; explicitly make it writable while we overwrite it.
+ (define (run)
+ (call-with-output-file* pth
+ #:exists 'truncate/replace
+ proc))
+ (cond
+ [(file-exists? pth)
+ (define old-mode
+ (file-or-directory-permissions pth 'bits))
+ (define new-mode
+ (if (eq? (system-type) 'windows)
+ (bitwise-ior old-mode user-write-bit group-write-bit other-write-bit)
+ (bitwise-ior old-mode user-write-bit)))
+ (if (= old-mode new-mode)
+ (run)
+ (dynamic-wind
+ (λ ()
+ (file-or-directory-permissions pth new-mode))
+ run
+ (λ ()
+ (file-or-directory-permissions pth old-mode))))]
+ [else
+ (run)]))
base-commit: 7e4f6e2362d4a08affbbae3c7ee4b98e325274c6
--
2.38.0

View file

@ -0,0 +1,27 @@
From 944f53fb00794f4bc96700dd14df1e88b6cd5623 Mon Sep 17 00:00:00 2001
From: Christophe Rhodes <csr21@cantab.net>
Date: Thu, 17 Nov 2022 22:29:26 +0000
Subject: [PATCH] Fix build on arm64 with clisp as host
Make sure the offset constants are defined while compiling vm.lisp.
---
src/compiler/arm64/vm.lisp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/compiler/arm64/vm.lisp b/src/compiler/arm64/vm.lisp
index ae6d7c7fa..2a151be58 100644
--- a/src/compiler/arm64/vm.lisp
+++ b/src/compiler/arm64/vm.lisp
@@ -23,7 +23,8 @@
(macrolet ((defreg (name offset)
(let ((offset-sym (symbolicate name "-OFFSET")))
`(progn
- (defconstant ,offset-sym ,offset)
+ (eval-when (:compile-toplevel :load-toplevel :execute)
+ (defconstant ,offset-sym ,offset))
(setf (svref *register-names* ,offset-sym) ,(symbol-name name)))))
(defregset (name &rest regs)
--
2.30.2

View file

@ -1,35 +0,0 @@
From 013035b4e9af39f506e87ae6b755c3363e768d4d Mon Sep 17 00:00:00 2001
From: Vladislav Shchapov <phprus@gmail.com>
Date: Thu, 23 Dec 2021 19:17:24 +0500
Subject: [PATCH] Fix issue #687 (test_eh_thread) (#697)
Signed-off-by: Vladislav Shchapov <phprus@gmail.com>
---
test/tbb/test_eh_thread.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/test/tbb/test_eh_thread.cpp b/test/tbb/test_eh_thread.cpp
index aa6d764d..af291f48 100644
--- a/test/tbb/test_eh_thread.cpp
+++ b/test/tbb/test_eh_thread.cpp
@@ -36,6 +36,7 @@
// TODO: enable limitThreads with sanitizer under docker
#if TBB_USE_EXCEPTIONS && !_WIN32 && !__ANDROID__
+#include <limits.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
@@ -73,7 +74,8 @@ public:
mValid = false;
pthread_attr_t attr;
// Limit the stack size not to consume all virtual memory on 32 bit platforms.
- if (pthread_attr_init(&attr) == 0 && pthread_attr_setstacksize(&attr, 100*1024) == 0) {
+ std::size_t stacksize = utils::max(128*1024, PTHREAD_STACK_MIN);
+ if (pthread_attr_init(&attr) == 0 && pthread_attr_setstacksize(&attr, stacksize) == 0) {
mValid = pthread_create(&mHandle, &attr, thread_routine, /* arg = */ nullptr) == 0;
}
}
--
2.34.0

View file

@ -1,8 +1,8 @@
diff --git a/src/tbb/tools_api/ittnotify_config.h b/src/tbb/tools_api/ittnotify_config.h
index 8ecc2378..0cf26f85 100644
index f904a8e9..405f92e6 100644
--- a/src/tbb/tools_api/ittnotify_config.h
+++ b/src/tbb/tools_api/ittnotify_config.h
@@ -159,6 +159,11 @@
@@ -163,6 +163,11 @@
# define ITT_ARCH_ARM64 6
#endif /* ITT_ARCH_ARM64 */
@ -14,7 +14,7 @@ index 8ecc2378..0cf26f85 100644
#ifndef ITT_ARCH
# if defined _M_IX86 || defined __i386__
# define ITT_ARCH ITT_ARCH_IA32
@@ -172,6 +177,8 @@
@@ -176,6 +181,8 @@
# define ITT_ARCH ITT_ARCH_ARM64
# elif defined __powerpc64__
# define ITT_ARCH ITT_ARCH_PPC64
@ -24,7 +24,7 @@ index 8ecc2378..0cf26f85 100644
#endif
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 9534dce8..51a79331 100644
index 2aa669c9..f915e252 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -387,7 +387,10 @@ if (TARGET TBB::tbb)

View file

@ -1,107 +0,0 @@
Use fixed dates in test for consistent results.
Taken from upstream:
https://github.com/timescale/timescaledb/commit/1d0670e703862b284c241ab797404f851b25b5df
diff --git a/test/expected/copy-12.out b/test/expected/copy-12.out
index 5cb28a45a2..37abf6f6ff 100644
--- a/test/expected/copy-12.out
+++ b/test/expected/copy-12.out
@@ -324,13 +324,12 @@ INSERT INTO hyper_copy_large
SELECT time,
random() AS value
FROM
-generate_series(now() - INTERVAL '1 months', now() - INTERVAL '1 day',
- INTERVAL '1 hour') AS g1(time)
+generate_series('2022-01-01', '2022-01-31', INTERVAL '1 hour') AS g1(time)
ORDER BY time;
SELECT COUNT(*) FROM hyper_copy_large;
count
-------
- 697
+ 721
(1 row)
-- Migrate data to chunks by using copy
@@ -345,7 +344,7 @@ NOTICE: migrating data to chunks
SELECT COUNT(*) FROM hyper_copy_large;
count
-------
- 697
+ 721
(1 row)
----------------------------------------------------------------
diff --git a/test/expected/copy-13.out b/test/expected/copy-13.out
index 02bf913eff..89e16fe8e2 100644
--- a/test/expected/copy-13.out
+++ b/test/expected/copy-13.out
@@ -324,13 +324,12 @@ INSERT INTO hyper_copy_large
SELECT time,
random() AS value
FROM
-generate_series(now() - INTERVAL '1 months', now() - INTERVAL '1 day',
- INTERVAL '1 hour') AS g1(time)
+generate_series('2022-01-01', '2022-01-31', INTERVAL '1 hour') AS g1(time)
ORDER BY time;
SELECT COUNT(*) FROM hyper_copy_large;
count
-------
- 697
+ 721
(1 row)
-- Migrate data to chunks by using copy
@@ -345,7 +344,7 @@ NOTICE: migrating data to chunks
SELECT COUNT(*) FROM hyper_copy_large;
count
-------
- 697
+ 721
(1 row)
----------------------------------------------------------------
diff --git a/test/expected/copy-14.out b/test/expected/copy-14.out
index 02bf913eff..89e16fe8e2 100644
--- a/test/expected/copy-14.out
+++ b/test/expected/copy-14.out
@@ -324,13 +324,12 @@ INSERT INTO hyper_copy_large
SELECT time,
random() AS value
FROM
-generate_series(now() - INTERVAL '1 months', now() - INTERVAL '1 day',
- INTERVAL '1 hour') AS g1(time)
+generate_series('2022-01-01', '2022-01-31', INTERVAL '1 hour') AS g1(time)
ORDER BY time;
SELECT COUNT(*) FROM hyper_copy_large;
count
-------
- 697
+ 721
(1 row)
-- Migrate data to chunks by using copy
@@ -345,7 +344,7 @@ NOTICE: migrating data to chunks
SELECT COUNT(*) FROM hyper_copy_large;
count
-------
- 697
+ 721
(1 row)
----------------------------------------------------------------
diff --git a/test/sql/copy.sql.in b/test/sql/copy.sql.in
index 91402c2ab8..bba4265064 100644
--- a/test/sql/copy.sql.in
+++ b/test/sql/copy.sql.in
@@ -276,8 +276,7 @@ INSERT INTO hyper_copy_large
SELECT time,
random() AS value
FROM
-generate_series(now() - INTERVAL '1 months', now() - INTERVAL '1 day',
- INTERVAL '1 hour') AS g1(time)
+generate_series('2022-01-01', '2022-01-31', INTERVAL '1 hour') AS g1(time)
ORDER BY time;
SELECT COUNT(*) FROM hyper_copy_large;

View file

@ -1,32 +0,0 @@
This fixes a build failure in VTK when building against recent versions
of freetype.
https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7432
Patch by Ben Boeckel <ben.boeckel@kitware.com>
Subject: [PATCH] vtkFreeTypeTools: avoid using an internal macro
This macro has been removed upstream as it was always intended to be
private.
---
Rendering/FreeType/vtkFreeTypeTools.cxx | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/Rendering/FreeType/vtkFreeTypeTools.cxx b/Rendering/FreeType/vtkFreeTypeTools.cxx
index c54289dc60..03b899c4da 100644
--- a/Rendering/FreeType/vtkFreeTypeTools.cxx
+++ b/Rendering/FreeType/vtkFreeTypeTools.cxx
@@ -378,8 +378,7 @@ FTC_CMapCache* vtkFreeTypeTools::GetCMapCache()
}
//----------------------------------------------------------------------------
-FT_CALLBACK_DEF(FT_Error)
-vtkFreeTypeToolsFaceRequester(
+static FT_Error vtkFreeTypeToolsFaceRequester(
FTC_FaceID face_id, FT_Library lib, FT_Pointer request_data, FT_Face* face)
{
#if VTK_FTFC_DEBUG_CD
--
2.30.1

View file

@ -16395,6 +16395,15 @@ the same purpose: to provide Python bindings for libmagic.")
(sha256
(base32 "0rdgwwmmp8mdxc84bxq6k9a7v7z2qgc3df47djzs2b84gw81dglx"))))
(build-system python-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'hide-wrapping
(lambda _
(substitute* "S3/MultiPart.py"
(("sys\\.argv\\[0\\]") "\"s3cmd\""))
(substitute* "s3cmd"
(("optparser\\.get_prog_name\\(\\)") "\"s3cmd\"")))))))
(inputs
(list python-dateutil
python-magic))
@ -20243,19 +20252,6 @@ while only declaring the test-specific fields.")
;; licenses.
(license (list license:asl2.0 license:bsd-2))))
;; TODO(staging): merge with python-packaging-bootstrap.
(define-public python-packaging-next
(package
(inherit python-packaging)
(version "21.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "packaging" version))
(sha256
(base32
"1sygirdrqgv4f1ckh9nhpcw1yfidrh3qjl86wq8vk6nq4wlw8iyx"))))))
(define-public python-relatorio
(package
(name "python-relatorio")
@ -25564,17 +25560,33 @@ also be usable with other GSSAPI mechanisms.")
(define-public python-check-manifest
(package
(name "python-check-manifest")
(version "0.37")
(version "0.48")
(source
(origin
(method url-fetch)
(uri (pypi-uri "check-manifest" version))
(sha256
(base32
"0lk45ifdv2cpkl6ayfyix7jwmnxa1rha7xvb0ih5999k115wzqs4"))))
(build-system python-build-system)
"0my6ammldi8mddrbq798qxbl90qr8nlk7gzliq3v7gp7mlfmymrv"))))
(build-system pyproject-build-system)
(arguments
'(;; This test requires setting up a venv which does not work
;; properly in the build environment.
#:test-flags '("-k" "not test_build_sdist_pep517_isolated")
#:phases
(modify-phases %standard-phases
;; Tests use git submodule commands over the file transport, which
;; has been disabled in git, see CVE-2022-39253. Enable these
;; commands to allow checks to succeed.
(add-before 'check 'allow-git-submodule-add
(lambda _
(setenv "HOME" "/tmp")
(invoke "git" "config" "--global"
"protocol.file.allow" "always"))))))
(native-inputs
(list python-mock git))
(list git-minimal/fixed python-pytest))
(propagated-inputs
(list python-pypa-build python-setuptools python-tomli))
(home-page "https://github.com/mgedmin/check-manifest")
(synopsis "Check MANIFEST.in in a Python source package for completeness")
(description "Python package can include a MANIFEST.in file to help with
@ -28106,7 +28118,7 @@ used to retry a function a given number of times.")
libice
soqt
glew
coin3D-4))
coin3D))
(home-page "https://github.com/coin3d/pivy")
(synopsis "Python bindings to Coin3D")
(description

View file

@ -4234,7 +4234,7 @@ data.")
(native-inputs
(list pkg-config cmake))
(inputs
(list qtbase-5 coin3D-4))
(list qtbase-5 coin3D))
(home-page "https://github.com/coin3d/soqt")
(synopsis "Qt GUI component toolkit library for Coin")
(description "SoQt is a Qt GUI component toolkit library for Coin. It is

View file

@ -191,7 +191,7 @@
;;
;; CODE:
(define %racket-version "8.6") ; Remember to update chez-scheme-for-racket!
(define %racket-version "8.7") ; Remember to update chez-scheme-for-racket!
(define %zuo-version "1.0") ; defined in racket/src/zuo/zuo.c
(define %racket-commit
(string-append "v" %racket-version))
@ -202,12 +202,9 @@
(url "https://github.com/racket/racket")
(commit %racket-commit)))
(sha256
(base32 "1lw6h70dk8zqpl96zz0hmhn8vjcc0c7gw4prkfz2wid5bkq4mhg4"))
(base32 "0agwa1nrv8mizkqg9nffjli00djyx1r9n6y6b6ry7k13pb6i7xnj"))
(file-name (git-file-name "racket" %racket-version))
(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"
(patches (search-patches "racket-backport-8.7-pkg-strip.patch"
"racket-chez-scheme-bin-sh.patch"
"racket-rktio-bin-sh.patch"
"racket-zuo-bin-sh.patch"))
@ -442,14 +439,12 @@ collector, 3M (``Moving Memory Manager'').")
(let ((native-inputs (package-native-inputs racket-vm-cgc)))
(modify-inputs (if (%current-target-system)
(modify-inputs native-inputs
(prepend this-package)
(delete "racket-vm-cgc"))
native-inputs)
(delete "libtool")
(prepend chez-scheme-for-racket
chez-nanopass-bootstrap
(if (%current-target-system)
racket-vm-cs
racket-vm-bc)))))
chez-nanopass-bootstrap))))
(arguments
(substitute-keyword-arguments (package-arguments racket-vm-cgc)
((#:phases those-phases #~%standard-phases)
@ -689,6 +684,7 @@ DrRacket IDE, are not included.")
("net-lib" "pkgs/net-lib")
("racket-doc" "pkgs/racket-doc")
("racket-index" "pkgs/racket-index")
("scheme-doc" "pkgs/scheme-doc")
("sandbox-lib" "pkgs/sandbox-lib")
("zo-lib" "pkgs/zo-lib")))
(simple-racket-origin
@ -698,7 +694,7 @@ DrRacket IDE, are not included.")
"class-iop" (base32 "08z57q83cr7wnh6g8ah3hdhmsmf9zp1jfs7yvxv188l3hzvygy5l")
'("class-iop-lib"))
(simple-racket-origin
"compatibility" (base32 "0bfqwscjpyi325br5pa6g62g9c8lq18a80zp5g3d2qzn3n3mi6x0")
"compatibility" (base32 "0ydx9alrpqg03xcl7zm5qcpx017i554q9ramz69vpwlfy3zdqmdm")
'("compatibility" "compatibility-doc" "compatibility-lib"))
(simple-racket-origin
"contract-profile" (base32 "1xm2z8g0dpv5d9h2sg680vx1a8ix9gbsdpxxb8qv1w7akp73paj3")
@ -710,19 +706,19 @@ DrRacket IDE, are not included.")
"datalog" (base32 "0nf6cy4djpyhfvgpa6yn72apbz9s83gp0qg95pzjd0az4v6qwq1s")
'(("datalog" ".")))
(simple-racket-origin
"db" (base32 "0jzsbfcdm3xj0g8xxw3ky2swrhiqqsq2aqa3r08m641dc981dmjq")
"db" (base32 "0xx0k8yw2vb9b4vk2dwjfbpixnmriqsv7kpv3fvfxbwyg42y0db5")
'("db" "db-doc" "db-lib"))
(simple-racket-origin
"deinprogramm" (base32 "16ncs3ms3mmdavbk0mkhm2qi62vyyif9cch3sn1y64pij489x34v")
"deinprogramm" (base32 "1ngdjky4n1vy2b9jz1z4pnzl0vgvaqr3p0ff5sx82hs38qvvi5di")
'("deinprogramm" "deinprogramm-signature"))
(simple-racket-origin
"distributed-places" (base32 "1dajpkj9balqcpv6cdk9hwjz592h1vq8rrx5vncariiac4vbdpa0")
'("distributed-places" "distributed-places-doc" "distributed-places-lib"))
(simple-racket-origin
"draw" (base32 "00rq5y4ba6z1d6jh76kl8rwpxrlqqp81a875zyhk3k81i42635sm")
"draw" (base32 "0pxpay04rylq3hqfpdrha2pw78hhwsjzq8w4f156gipin74lb7a2")
'("draw" "draw-doc" "draw-lib"))
(simple-racket-origin
"drracket" (base32 "05d7wssi0ry13alb5hl3llpsg30dd0jhyfv5nb1nmg189fn42q62")
"drracket" (base32 "12khv954v7xpi3wv50pp5l28ww1382apbvzvs67d6ik10nn3d0y4")
'("drracket"
"drracket-plugin-lib"
"drracket-tool"
@ -736,10 +732,10 @@ DrRacket IDE, are not included.")
"eli-tester" (base32 "0icx6wn14gjm8kdmq1jppqgq87sxkras4qb5xmdr6wigxafhjqyk")
'(("eli-tester" ".")))
(simple-racket-origin
"eopl" (base32 "1fmiixj6rxsgzwvgva8lvrvv0gl49v2405mp3s0i7ipis5c4n27s")
"eopl" (base32 "1n8lzvhggp6bp2hg4n51zg8f4ya10isb92pfzngss2ch7299zfj2")
'(("eopl" ".")))
(simple-racket-origin
"errortrace" (base32 "0r5630bb2d6hk0fbi95fmyfja54nnwdfcj2zjba124pp6xkjyavx")
"errortrace" (base32 "0l9k2rx6z4jkid7kxhbs763s66pxbzvfrgxajykbrmqkv77lhb3w")
'("errortrace" "errortrace-doc" "errortrace-lib"))
(simple-racket-origin
"expeditor" (base32 "0mjfwb4wzwsg5xj3k6cmik0va432n56rp5h7rxx1c2yy3prh1j7q")
@ -756,13 +752,13 @@ DrRacket IDE, are not included.")
"games" (base32 "0kpn3izlx1ccd0pj0dnvmnrhny51b85xy418a7psj70lz8j8415d")
'(("games" ".")))
(simple-racket-origin
"gui" (base32 "18pcnx3wi8f32i2frm8bn9pi08n4y3c5jgqs4gy21w6f84dv401w")
"gui" (base32 "027imnxwm0663yn9mbkq8sjm1qr1pw7zf4ra168k746hp446ah58")
'("gui" "gui-doc" "gui-lib" "tex-table"))
(simple-racket-origin
"gui-pkg-manager" (base32 "1ji9448d723nklqvycwdswj0ni28sabrncag14f9mx47did5myb5")
'("gui-pkg-manager-lib"))
(simple-racket-origin
"htdp" (base32 "173xy6ks55npvwn6cykjs41s9qfb70hc2gfjiqvw91hdsbjykwir")
"htdp" (base32 "0pf2kf63xj9s0n44vaxlmnd1bdb1a44gcp807a3b3cmlc1lkb36z")
'("htdp" "htdp-doc" "htdp-lib"))
(simple-racket-origin
"html" (base32 "18n1jnjgzfknc8nv8dppi85nb8q08gqdwkg6hfjk08x0p00anx2x")
@ -795,7 +791,7 @@ DrRacket IDE, are not included.")
"mzcom" (base32 "0rc9pfj7gwm5azghqvcibz6si1x5s2v8mr2yngk7ssq9gzfbi6a4")
'(("mzcom" ".")))
(simple-racket-origin
"mzscheme" (base32 "192c52zi726h5wjamxrhivjw2waq1im0zpyxhbrkrxknm8x84bs9")
"mzscheme" (base32 "04kyrhznq46mklacf7pms4fv47zsimqqk3948r3w2ym9n04fhjsx")
'("mzscheme" "mzscheme-doc" "mzscheme-lib"))
(racket-packages-origin
"net-cookies" (origin
@ -824,13 +820,13 @@ DrRacket IDE, are not included.")
"option-contract" (base32 "07cncg9pi15cm19k7rzv54vx83wq7y42i2m6bgzaqja1h8vnj2ww")
'("option-contract" "option-contract-doc" "option-contract-lib"))
(simple-racket-origin
"parser-tools" (base32 "04ycihliikh0c47ivp09gayxiql9d9wpl216czic19cj6f7rmcnj")
"parser-tools" (base32 "11m1x8q0cqb4b082423iv19s86xgkshv29cb4hp8yx84lb0vpwx3")
'("parser-tools" "parser-tools-doc" "parser-tools-lib"))
(simple-racket-origin
"pconvert" (base32 "00czi0p399mmyrvxyrs5kniizpkqfxyz2ncxqi2jy79a7wk79pb1")
'("pconvert-lib"))
(simple-racket-origin
"pict" (base32 "1n0v7kynkiin1v8igs9m8k8vfwjn5cswanhq2imp1pxzjvdyq6sx")
"pict" (base32 "063a1lc6v1i8ywxcskkvvfxdvlx0qhr0l4l3dkibmnli47mdhv7g")
'("pict" "pict-doc" "pict-lib"))
(simple-racket-origin
"pict-snip" (base32 "081nwiy4a0n4f7xws16hqbhf0j3kz5alizndi3nnyr3chm4kng6x")
@ -839,13 +835,13 @@ DrRacket IDE, are not included.")
"picturing-programs" (base32 "1g6xr39hx1j03gb3d4dljm3v91xcj2gfpq3dgy5xvplzr6cmmxgr")
'(("picturing-programs" ".")))
(simple-racket-origin
"plai" (base32 "0i983sh0r0zm2ng4j44m5aw9669kh5fhp91bzpc9jm280rfcqvyl")
"plai" (base32 "18kz31pj4lanlf9mn2yc0q9sxis264wb4f9v85ga23wd7g1hrzbq")
'("plai" "plai-doc" "plai-lib"))
(simple-racket-origin
"planet" (base32 "0r2yqrzrmdjjyr14k6hhlzc5kzrcx3583m1s02mhrcmpfw0s85w9")
'("planet" "planet-doc" "planet-lib"))
(simple-racket-origin
"plot" (base32 "04871pspbm0q3bz5896sa3jw2rp9i6jf0b5aivrxfp56vxxd2ybb")
"plot" (base32 "1129k78vyqg2cbc87r9ak95zpa1ghh26fmz3wr8gm556j5j0k6y5")
'("plot" "plot-compat" "plot-doc" "plot-gui-lib" "plot-lib"))
(simple-racket-origin
"preprocessor" (base32 "1p5aid58ifnjy4xl0ysh85cq39k25661v975jrpk182z3k5621mg")
@ -867,7 +863,7 @@ DrRacket IDE, are not included.")
"r5rs" (base32 "1g3cysj7z88r38vkzvi8g2fb2hn4yg1fdhy5smxw303jxgl3inp6")
'("r5rs" "r5rs-doc" "r5rs-lib"))
(simple-racket-origin
"r6rs" (base32 "0b1ymzdp10r0flw2acbidjsh5ma1pm5hy54jss37sxf89z3xbvm4")
"r6rs" (base32 "1mgcxd88s67w47a2z1i6snz8qhbngjbmr6rs4pchpnrfap96ssgl")
'("r6rs" "r6rs-doc" "r6rs-lib"))
(racket-packages-origin
"racket-cheat" (origin
@ -900,7 +896,7 @@ DrRacket IDE, are not included.")
"realm" (base32 "0rlvwyd6rpyl0zda4a5p8dp346fvqzc8555dgfnrhliymkxb6x4g")
'(("realm" ".")))
(simple-racket-origin
"redex" (base32 "06dhyqmin0qdm6b6sdvgzpy3pa4svlw42ld9k2h1dxcr852czil7")
"redex" (base32 "1v5p65y3hnp1mfvy0jl4lhmaw9s3qzzfcfh3fhihhqxsybbqp3q3")
'("redex"
"redex-benchmark"
"redex-doc"
@ -915,7 +911,7 @@ DrRacket IDE, are not included.")
"scheme-lib" (base32 "0pcf0y8rp4qyjhaz5ww5sr5diq0wpcdfrrnask7zapyklzx1jx8x")
'(("scheme-lib" ".")))
(simple-racket-origin
"scribble" (base32 "0a11kvcnzp04mp4xxq68rkl09jv00hv81k2nmwkmwpfx9b2acvd3")
"scribble" (base32 "1n0ywdham53h2ibkhc0cnrhhaxfkl7ax0bx5sdfpnyh2yrabxwqf")
'("scribble"
"scribble-doc"
"scribble-html-lib"
@ -941,13 +937,13 @@ DrRacket IDE, are not included.")
"slatex" (base32 "0pkm2isbbdk63slrbsxcql7rr0wdrw5kapw1xq4ps5k8dhlzv8x0")
'(("slatex" ".")))
(simple-racket-origin
"slideshow" (base32 "1znv1i2d0610hhy71q932xy7wka00q3q50in1xfnk8ibg7nzkagm")
"slideshow" (base32 "0s6w4iq7m263jwx01c5czkk1a2950hdpxn5yirxvnr26qpjpfyzr")
'("slideshow" "slideshow-doc" "slideshow-exe" "slideshow-lib" "slideshow-plugin"))
(simple-racket-origin
"snip" (base32 "01r9wc5xr3q3n4yyif6j0a37rgdzmpslxn05k13ksik73b3wj6hj")
"snip" (base32 "19n2i1m2nysrbv38jxk32abymdbhcxdcrrjsg4ppfbng8niygc8x")
'("snip" "snip-lib"))
(simple-racket-origin
"typed-racket" (base32 "03wsz647fi58brbg33fw1xavp100gzfvngdy8bk7bdc0jfg8a18l")
"typed-racket" (base32 "0yh9vcg1bjamf6nq3hqxwjg07kjkxyqhvymv3r64j1n4hiiwz6iv")
'("source-syntax"
"typed-racket"
"typed-racket-compatibility"
@ -955,10 +951,10 @@ DrRacket IDE, are not included.")
"typed-racket-lib"
"typed-racket-more"))
(simple-racket-origin
"srfi" (base32 "0aqbcdv2dfc2xnk0h6zfi56p7bpwqji8s88qds3d03hhh9k28gvn")
"srfi" (base32 "13xvfzr5546m3a4kksyawzcl93nrklasr1slfa5ar3p77h962la4")
'("srfi" "srfi-doc" "srfi-lib" "srfi-lite-lib"))
(simple-racket-origin
"string-constants" (base32 "1kg3vxq2hcd0vl76brgpzdwbrb65a4nrrkc6hj4az5lfbbdvqz47")
"string-constants" (base32 "174q3ihcp8s52mmlk7z0sipjksiac432pfkm0inlwi92s6p7dlb3")
'("string-constants" "string-constants-doc" "string-constants-lib"))
(simple-racket-origin
"swindle" (base32 "03n9ymjhrw45h7hxkw4nq8nidnvs9mfzb4228s2cjfaqbgqxvsyb")

View file

@ -52,8 +52,9 @@
;; Specify the absolute location of xterm, as the user experience sucks
;; when no terminal is available (can't consult help with 'C-t ?', for
;; example).
#:configure-flags #~(list (string-append "--with-xterm="
#$(this-package-input "xterm")))
#:configure-flags
#~(list (string-append "--with-xterm="
(search-input-file %build-inputs "bin/xterm")))
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-xsession

View file

@ -234,7 +234,7 @@ efficiency through the use of a compact vector representation of n-grams.")
(define-public speech-dispatcher
(package
(name "speech-dispatcher")
(version "0.11.1")
(version "0.11.4")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/brailcom/speechd/releases"
@ -242,7 +242,7 @@ efficiency through the use of a compact vector representation of n-grams.")
version ".tar.gz"))
(sha256
(base32
"1inxqabbml2vhp0lvx4khhda4g1dp8wyr8mnk4vz315c7pni5nni"))))
"1fb6ypnr8r3905b68bbplg1qcaw3f6br2yzxkk4bb79dnwdj42cc"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--disable-static"

View file

@ -461,13 +461,13 @@ with optional @acronym{TLS, Transport-Level Security} to protect credentials.")
(define-public mosh
(package
(name "mosh")
(version "1.3.2")
(version "1.4.0")
(source (origin
(method url-fetch)
(uri (string-append "https://mosh.org/mosh-" version ".tar.gz"))
(sha256
(base32
"05hjhlp6lk8yjcy59zywpf0r6s0h0b9zxq0lw66dh9x8vxrhaq6s"))))
"1pax8sqlvcc7ammsxd9r53yx4m2hg1827wfz6f4rrwjx9q9lnbl7"))))
(build-system gnu-build-system)
(arguments
'(#:phases

View file

@ -32,7 +32,7 @@
(define-public tbb
(package
(name "tbb")
(version "2021.5.0")
(version "2021.6.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -41,12 +41,8 @@
(file-name (git-file-name name version))
(sha256
(base32
"1z0pqzfx63zrmyqdvvkk8vl5dc0i0n5cimdkrypd50ig4d4yi7sc"))
(patches
;; Backport an upstream commit that prevents the
;; "test_eh_thread" test failing on AArch64.
(search-patches "tbb-fix-test-on-aarch64.patch"
"tbb-other-arches.patch"))))
"039v4jmnkkxs7haxrfmk9j57vfbrwlhjynlm5byfaqddv4cbsy0p"))
(patches (search-patches "tbb-other-arches.patch"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DTBB_STRICT=OFF"))) ;; Don't fail on warnings

View file

@ -59,6 +59,7 @@
;;; Copyright © 2022 Trevor Richards <trev@trevdev.ca>
;;; Copyright © 2022 Fredrik Salomonsson <plattfot@posteo.net>
;;; Copyright © 2022 ( <paren@disroot.org>
;;; Copyright © 2022 zamfofex <zamfofex@twdb.moe>
;;;
;;; This file is part of GNU Guix.
;;;
@ -2953,3 +2954,36 @@ used for multimedia keys.")
an interface over @code{grim}, @code{slurp} and @code{jq}, and supports storing
the screenshot either directly to the clipboard using @code{wl-copy} or to a
file.")))
(define-public wld
(let ((commit "6586736176ef50a88025abae835e29a7ca980126")
(revision "1"))
(package
(name "wld")
(version (git-version "0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/michaelforney/wld")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0qkd3q8p1s72x688g83fkcarrz2h20904rpd8z44ql6ksgrj9bp3"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
#:make-flags (list (string-append "CC=" ,(cc-for-target))
(string-append "PREFIX=" %output))
#:phases (modify-phases %standard-phases
(delete 'configure))))
(inputs (list fontconfig
libdrm
pixman
wayland))
(propagated-inputs (list fontconfig pixman))
(native-inputs (list pkg-config))
(home-page "https://github.com/michaelforney/wld")
(synopsis "Primitive drawing library for Wayland")
(description "wld is a drawing library that targets Wayland.")
(license license:expat))))

View file

@ -1822,7 +1822,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
(define-public rofi
(package
(name "rofi")
(version "1.7.3")
(version "1.7.5")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/davatorium/rofi/"
@ -1830,7 +1830,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
version "/rofi-" version ".tar.xz"))
(sha256
(base32
"0yxn9pmn9zp0k5ygnjqbj1pmp73g53wa47r145a8qcwqzxl8p1i5"))))
"138c4bl60p7namsb2pk8q5cdlxbdkli7zny192vk5jv5s5kczzya"))))
(build-system gnu-build-system)
(native-inputs
(list bison
@ -1865,7 +1865,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
(substitute* '("test/helper-expand.c")
(("~root") "/root")
(("~") "")
(("g_get_home_dir \\(\\)") "\"/\"")))))))
(("g_get_home_dir\\(\\)") "\"/\"")))))))
(home-page "https://github.com/davatorium/rofi")
(synopsis "Application launcher")
(description "Rofi is a minimalist application launcher. It memorizes which
@ -1873,6 +1873,30 @@ applications you regularly use and also allows you to search for an application
by name.")
(license license:expat)))
(define-public rofi-wayland
(let ((base rofi))
(package
(inherit rofi)
(name "rofi-wayland")
(version "1.7.5+wayland1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/lbonn/rofi"
"/releases/download/" version
"/rofi-" version ".tar.xz"))
(sha256
(base32
"09n71wv3nxpzpjmvqmxlxk0zfln3x2l8admfq571781p9hw0w6wp"))))
(build-system meson-build-system)
(inputs
(modify-inputs (package-inputs base)
(append wayland wayland-protocols)))
(description
(string-append
(package-description base)
" This package, @code{rofi-wayland}, provides additional wayland
support.")))))
(define-public rofi-calc
(package
(name "rofi-calc")

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014-2020, 2022 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -137,7 +137,8 @@
#$@(if debug? #~("--debug") #~())
"-f" #$config)
#:pid-file "/run/avahi-daemon/pid"))
(stop #~(make-kill-destructor))))))
(stop #~(make-kill-destructor))
(actions (list (shepherd-configuration-action config)))))))
(define avahi-service-type
(let ((avahi-package (compose list avahi-configuration-avahi)))

View file

@ -1327,10 +1327,11 @@ the tty to run, among other things."
(loop)))))))
(define (nscd-actions nscd config)
"Return Shepherd actions for NSCD."
"Return Shepherd actions for NSCD using CONFIG its config file."
;; Make this functionality available as actions because that's a simple way
;; to run the right 'nscd' binary with the right config file.
(list (shepherd-action
(list (shepherd-configuration-action config)
(shepherd-action
(name 'statistics)
(documentation "Display statistics about nscd usage.")
(procedure (nscd-action-procedure nscd config "--statistics")))

View file

@ -273,7 +273,8 @@
#:environment-variables
(list (string-append "UPOWER_CONF_FILE_NAME="
#$config))))
(stop #~(make-kill-destructor))))))
(stop #~(make-kill-destructor))
(actions (list (shepherd-configuration-action config)))))))
(define upower-service-type
(let ((upower-package (compose list upower-configuration-upower)))
@ -1168,6 +1169,9 @@ seats.)"
(define (elogind-shepherd-service config)
"Return a Shepherd service to start elogind according to @var{config}."
(define config-file
(elogind-configuration-file config))
(list (shepherd-service
(requirement '(dbus-system))
(provision '(elogind))
@ -1176,9 +1180,9 @@ seats.)"
"/libexec/elogind/elogind"))
#:environment-variables
(list (string-append "ELOGIND_CONF_FILE="
#$(elogind-configuration-file
config)))))
(stop #~(make-kill-destructor)))))
#$config-file))))
(stop #~(make-kill-destructor))
(actions (list (shepherd-configuration-action config-file))))))
(define elogind-service-type
(service-type (name 'elogind)

View file

@ -182,7 +182,8 @@ database {
(stop #~(if (and (defined? 'make-inetd-destructor)
#$(= 1 (length interfaces))) ;XXX
(make-inetd-destructor)
(make-kill-destructor)))))))
(make-kill-destructor)))
(actions (list (shepherd-configuration-action dicod.conf)))))))
(define dicod-service-type
(service-type

View file

@ -216,16 +216,15 @@ lines.")
"Extra options to include."))
(define (serialize-getmail-configuration-file field-name val)
(match val
(($ <getmail-configuration-file> location
retriever destination options)
#~(string-append
"[retriever]\n"
#$(serialize-getmail-retriever-configuration #f retriever)
"\n[destination]\n"
#$(serialize-getmail-destination-configuration #f destination)
"\n[options]\n"
#$(serialize-getmail-options-configuration #f options)))))
(match-record val <getmail-configuration-file>
(retriever destination options)
#~(string-append
"[retriever]\n"
#$(serialize-getmail-retriever-configuration #f retriever)
"\n[destination]\n"
#$(serialize-getmail-destination-configuration #f destination)
"\n[options]\n"
#$(serialize-getmail-options-configuration #f options))))
(define-configuration getmail-configuration-file
(retriever
@ -339,29 +338,28 @@ notifications. This depends on the server supporting the IDLE extension.")
(define (getmail-shepherd-services configs)
"Return a list of <shepherd-service> for CONFIGS."
(map (match-lambda
(($ <getmail-configuration> location name package
user group directory rcfile idle
environment-variables)
(shepherd-service
(documentation "Run getmail.")
(provision (list (symbol-append 'getmail- name)))
(requirement '(networking))
(start #~(make-forkexec-constructor
`(#$(file-append package "/bin/getmail")
,(string-append "--getmaildir=" #$directory)
#$@(map (lambda (idle)
(string-append "--idle=" idle))
idle)
,(string-append "--rcfile=" #$rcfile))
#:user #$user
#:group #$group
#:environment-variables
(list #$@environment-variables)
#:log-file
#$(string-append "/var/log/getmail-"
(symbol->string name))))
(stop #~(make-kill-destructor)))))
(map (lambda (config)
(match-record config <getmail-configuration>
(name package user group directory rcfile idle environment-variables)
(shepherd-service
(documentation "Run getmail.")
(provision (list (symbol-append 'getmail- name)))
(requirement '(networking))
(start #~(make-forkexec-constructor
`(#$(file-append package "/bin/getmail")
,(string-append "--getmaildir=" #$directory)
#$@(map (lambda (idle)
(string-append "--idle=" idle))
idle)
,(string-append "--rcfile=" #$rcfile))
#:user #$user
#:group #$group
#:environment-variables
(list #$@environment-variables)
#:log-file
#$(string-append "/var/log/getmail-"
(symbol->string name))))
(stop #~(make-kill-destructor)))))
configs))
(define getmail-service-type

View file

@ -40,7 +40,6 @@
#:use-module (guix records)
#:use-module (ice-9 format)
#:use-module (ice-9 match)
#:use-module (oop goops)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:export (lightdm-seat-configuration
@ -177,17 +176,18 @@ Provider Interface (AT-SPI).")
"Extra configuration values to append to the LightDM GTK Greeter
configuration file."))
(define (strip-class-name-brackets name)
"Remove the '<<' and '>>' brackets from NAME, a symbol."
(let ((name* (symbol->string name)))
(if (and (string-prefix? "<<" name*)
(string-suffix? ">>" name*))
(string->symbol (string-drop (string-drop-right name* 2) 2))
(error "unexpected class name" name*))))
(define (strip-record-type-name-brackets name)
"Remove the '<' and '>' brackets from NAME, a symbol."
(let ((name (symbol->string name)))
(if (and (string-prefix? "<" name)
(string-suffix? ">" name))
(string->symbol (string-drop (string-drop-right name 1) 1))
(error "unexpected record type name" name))))
(define (config->name config)
"Return the constructor name (a symbol) from CONFIG."
(strip-class-name-brackets (class-name (class-of config))))
(strip-record-type-name-brackets
(record-type-name (struct-vtable config))))
(define (greeter-configuration->greeter-fields config)
"Return the fields of CONFIG, a greeter configuration."
@ -323,7 +323,7 @@ a symbol."
(define (list-of-greeter-configurations? greeter-configs)
(and ((list-of greeter-configuration?) greeter-configs)
;; Greeter configurations must also not be provided more than once.
(let* ((types (map (cut (compose class-name class-of) <>)
(let* ((types (map (compose record-type-name struct-vtable)
greeter-configs))
(dupes (filter (lambda (type)
(< 1 (count (cut eq? type <>) types)))

View file

@ -652,7 +652,8 @@ will keep the system clock synchronized with that of the given servers.")
;; while running, leading shepherd to disable it. To
;; prevent spamming stderr, redirect output to logfile.
#:log-file "/var/log/ntpd.log"))
(stop #~(make-kill-destructor))))))
(stop #~(make-kill-destructor))
(actions (list (shepherd-configuration-action ntpd.conf)))))))
(define (openntpd-service-activation config)
"Return the activation gexp for CONFIG."
@ -1010,29 +1011,24 @@ HiddenServicePort ~a ~a~%"
(source torrc)
(target source)))
#:namespaces (delq 'net %namespaces))))
(with-imported-modules (source-module-closure
'((gnu build shepherd)
(gnu system file-systems)))
(list (shepherd-service
(provision '(tor))
(list (shepherd-service
(provision '(tor))
;; Tor needs at least one network interface to be up, hence the
;; dependency on 'loopback'.
(requirement '(user-processes loopback syslogd))
;; Tor needs at least one network interface to be up, hence the
;; dependency on 'loopback'.
(requirement '(user-processes loopback syslogd))
(modules '((gnu build shepherd)
(gnu system file-systems)))
;; XXX: #:pid-file won't work because the wrapped 'tor'
;; program would print its PID within the user namespace
;; instead of its actual PID outside. There's no inetd or
;; systemd socket activation support either (there's
;; 'sd_notify' though), so we're stuck with that.
(start #~(make-forkexec-constructor
(list #$tor "-f" #$torrc)
#:user "tor" #:group "tor"))
(stop #~(make-kill-destructor))
(documentation "Run the Tor anonymous network overlay."))))))))
;; XXX: #:pid-file won't work because the wrapped 'tor'
;; program would print its PID within the user namespace
;; instead of its actual PID outside. There's no inetd or
;; systemd socket activation support either (there's
;; 'sd_notify' though), so we're stuck with that.
(start #~(make-forkexec-constructor
(list #$tor "-f" #$torrc)
#:user "tor" #:group "tor"))
(stop #~(make-kill-destructor))
(actions (list (shepherd-configuration-action torrc)))
(documentation "Run the Tor anonymous network overlay.")))))))
(define (tor-activation config)
"Set up directories for Tor and its hidden services, if any."

View file

@ -66,6 +66,8 @@
shepherd-action-documentation
shepherd-action-procedure
shepherd-configuration-action
%default-modules
shepherd-service-file
@ -333,6 +335,16 @@ and return the resulting '.go' file. SHEPHERD is used as shepherd package."
#:options '(#:local-build? #t
#:substitutable? #f)))))
(define (shepherd-configuration-action file)
"Return a 'configuration' action to display FILE, which should be the name
of the service's configuration file."
(shepherd-action
(name 'configuration)
(documentation "Display the name of this service's configuration file.")
(procedure #~(lambda (_)
(format #t "~a~%" #$file)
#$file))))
(define (shepherd-configuration-file services shepherd)
"Return the shepherd configuration file for SERVICES. SHEPHERD is used
as shepherd package."

View file

@ -524,9 +524,12 @@ of user-name/file-like tuples."
(define max-connections
(openssh-configuration-max-connections config))
(define config-file
(openssh-config-file config))
(define openssh-command
#~(list (string-append #$(openssh-configuration-openssh config) "/sbin/sshd")
"-D" "-f" #$(openssh-config-file config)))
"-D" "-f" #$config-file))
(define inetd-style?
;; Whether to use 'make-inetd-constructor'. That procedure appeared in
@ -568,6 +571,7 @@ of user-name/file-like tuples."
(stop #~(if #$inetd-style?
(make-inetd-destructor)
(make-kill-destructor)))
(actions (list (shepherd-configuration-action config-file)))
(auto-start? (openssh-auto-start? config)))))
(define (openssh-pam-services config)

View file

@ -790,13 +790,11 @@ of index files."
(nginx file run-directory shepherd-requirement)
(let* ((nginx-binary (file-append nginx "/sbin/nginx"))
(pid-file (in-vicinity run-directory "pid"))
(config-file (or file (default-nginx-config config)))
(nginx-action
(lambda args
#~(lambda _
(invoke #$nginx-binary "-c"
#$(or file
(default-nginx-config config))
#$@args)
(invoke #$nginx-binary "-c" #$config-file #$@args)
(match '#$args
(("-s" . _) #f)
(_
@ -817,6 +815,7 @@ of index files."
(stop (nginx-action "-s" "stop"))
(actions
(list
(shepherd-configuration-action config-file)
(shepherd-action
(name 'reload)
(documentation "Reload nginx configuration file and restart worker processes.

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013-2017, 2019-2020, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2018, 2019 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@ -1083,6 +1083,9 @@ argument.")))
(gdm-configuration-allow-empty-passwords? config))))
(define (gdm-shepherd-service config)
(define config-file
(gdm-configuration-file config))
(list (shepherd-service
(documentation "Xorg display server (GDM)")
(provision '(xorg-server))
@ -1095,9 +1098,7 @@ argument.")))
(list #$@(if (gdm-configuration-auto-suspend? config)
#~()
#~("DCONF_PROFILE=/etc/dconf/profile/gdm"))
(string-append
"GDM_CUSTOM_CONF="
#$(gdm-configuration-file config))
(string-append "GDM_CUSTOM_CONF=" #$config-file)
(string-append
"GDM_DBUS_DAEMON="
#$(gdm-configuration-dbus-daemon config))
@ -1129,6 +1130,7 @@ argument.")))
"GDM_WAYLAND_SESSION="
#$(gdm-configuration-wayland-session config))))))
(stop #~(make-kill-destructor))
(actions (list (shepherd-configuration-action config-file)))
(respawn? #t))))
(define gdm-polkit-rules

View file

@ -172,6 +172,7 @@ MODULES and taken from LINUX."
#:key
(linux linux-libre)
(linux-modules '())
(pre-mount #t)
(mapped-devices '())
(keyboard-layout #f)
(helper-packages '())
@ -183,7 +184,8 @@ modules taken from LINUX. FILE-SYSTEMS is a list of file-systems to be
mounted by the initrd, possibly in addition to the root file system specified
on the kernel command line via 'root'. LINUX-MODULES is a list of kernel
modules to be loaded at boot time. MAPPED-DEVICES is a list of device
mappings to realize before FILE-SYSTEMS are mounted.
mappings to realize before FILE-SYSTEMS are mounted. PRE-MOUNT is a
G-expression to evaluate before realizing MAPPED-DEVICES.
HELPER-PACKAGES is a list of packages to be copied in the initrd. It may include
e2fsck/static or other packages needed by the initrd to check root partition.
@ -255,7 +257,8 @@ upon error."
(map spec->file-system
'#$(map file-system->spec file-systems))
#:pre-mount (lambda ()
(and #$@device-mapping-commands
(and #$pre-mount
#$@device-mapping-commands
#$@file-system-scan-commands))
#:linux-modules '#$linux-modules
#:linux-module-directory '#$kodir

View file

@ -424,6 +424,12 @@ info --version")
(x
(pk 'failure x #f))))
(test-assert "nscd configuration action"
(marionette-eval '(with-shepherd-action 'nscd ('configuration)
results
(file-exists? (car results)))
marionette))
(test-equal "nscd invalidate action"
'(#t) ;one value, #t
(marionette-eval '(with-shepherd-action 'nscd ('invalidate "hosts")

View file

@ -34,6 +34,7 @@
#:use-module (gnu services xorg)
#:use-module (gnu system)
#:use-module (gnu system file-systems)
#:use-module (gnu system keyboard)
#:use-module (gnu system shadow)
#:use-module (gnu system vm)
#:use-module (gnu tests)
@ -56,7 +57,11 @@
(inherit %simple-os)
(packages (cons* ocrad ratpoison xterm %base-packages))
(services
(cons* (service lightdm-service-type
(cons* (set-xorg-configuration (xorg-configuration
(keyboard-layout (keyboard-layout "us")))
lightdm-service-type)
(service lightdm-service-type
(lightdm-configuration
(allow-empty-passwords? #t)
(debug? #t)

View file

@ -12,6 +12,7 @@
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2022 Alice Brenon <alice.brenon@ens-lyon.fr>
;;; Copyright © 2022 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -130,135 +131,152 @@ of the string VERSION is replaced by the symbol 'version."
"Return the hash of FILENAME in nix-base32 format."
(bytevector->nix-base32-string (file-sha256 filename)))
(define (spdx-string->license str)
"Convert STR, a SPDX formatted license identifier, to a license object.
Return #f if STR does not match any known identifiers."
(define %spdx-license-identifiers
;; https://spdx.org/licenses/
;; The gfl1.0, nmap, repoze
;; licenses doesn't have SPDX identifiers
;;
;; Please update guix/licenses.scm when modifying
;; this list to avoid mismatches.
(match str
;; "GPL-N+" has been deprecated in favour of "GPL-N-or-later".
;; "GPL-N" has been deprecated in favour of "GPL-N-only"
;; or "GPL-N-or-later" as appropriate. Likewise for LGPL
;; and AGPL
("AGPL-1.0" 'license:agpl1)
("AGPL-1.0-only" 'license:agpl1)
("AGPL-3.0" 'license:agpl3)
("AGPL-3.0-only" 'license:agpl3)
("AGPL-3.0-or-later" 'license:agpl3+)
("Apache-1.1" 'license:asl1.1)
("Apache-2.0" 'license:asl2.0)
("APSL-2.0" 'license:apsl2)
("BSL-1.0" 'license:boost1.0)
("0BSD" 'license:bsd-0)
("BSD-2-Clause" 'license:bsd-2)
("BSD-2-Clause-FreeBSD" 'license:bsd-2) ;flagged as deprecated on spdx
("BSD-3-Clause" 'license:bsd-3)
("BSD-4-Clause" 'license:bsd-4)
("CC0-1.0" 'license:cc0)
("CC-BY-2.0" 'license:cc-by2.0)
("CC-BY-3.0" 'license:cc-by3.0)
("CC-BY-4.0" 'license:cc-by4.0)
("CC-BY-SA-2.0" 'license:cc-by-sa2.0)
("CC-BY-SA-3.0" 'license:cc-by-sa3.0)
("CC-BY-SA-4.0" 'license:cc-by-sa4.0)
("CDDL-1.0" 'license:cddl1.0)
("CDDL-1.1" 'license:cddl1.1)
("CECILL-2.1" 'license:cecill)
("CECILL-B" 'license:cecill-b)
("CECILL-C" 'license:cecill-c)
("Artistic-2.0" 'license:artistic2.0)
("ClArtistic" 'license:clarified-artistic)
("copyleft-next-0.3.0" 'license:copyleft-next)
("CPL-1.0" 'license:cpl1.0)
("EPL-1.0" 'license:epl1.0)
("EPL-2.0" 'license:epl2.0)
("EUPL-1.2" 'license:eupl1.2)
("MIT" 'license:expat)
("MIT-0" 'license:expat-0)
("FTL" 'license:freetype)
("FreeBSD-DOC" 'license:freebsd-doc)
("Freetype" 'license:freetype)
("FSFAP" 'license:fsf-free)
("FSFUL" 'license:fsf-free)
("GFDL-1.1" 'license:fdl1.1+)
("GFDL-1.1-or-later" 'license:fdl1.1+)
("GFDL-1.2" 'license:fdl1.2+)
("GFDL-1.2-or-later" 'license:fdl1.2+)
("GFDL-1.3" 'license:fdl1.3+)
("GFDL-1.3-or-later" 'license:fdl1.3+)
("Giftware" 'license:giftware)
("GPL-1.0" 'license:gpl1)
("GPL-1.0-only" 'license:gpl1)
("GPL-1.0+" 'license:gpl1+)
("GPL-1.0-or-later" 'license:gpl1+)
("GPL-2.0" 'license:gpl2)
("GPL-2.0-only" 'license:gpl2)
("GPL-2.0+" 'license:gpl2+)
("GPL-2.0-or-later" 'license:gpl2+)
("GPL-3.0" 'license:gpl3)
("GPL-3.0-only" 'license:gpl3)
("GPL-3.0+" 'license:gpl3+)
("GPL-3.0-or-later" 'license:gpl3+)
("HPND" 'license:hpnd)
("ISC" 'license:isc)
("IJG" 'license:ijg)
("Imlib2" 'license:imlib2)
("IPA" 'license:ipa)
("IPL-1.0" 'license:ibmpl1.0)
("LAL-1.3" 'license:lal1.3)
("LGPL-2.0" 'license:lgpl2.0)
("LGPL-2.0-only" 'license:lgpl2.0)
("LGPL-2.0+" 'license:lgpl2.0+)
("LGPL-2.0-or-later" 'license:lgpl2.0+)
("LGPL-2.1" 'license:lgpl2.1)
("LGPL-2.1-only" 'license:lgpl2.1)
("LGPL-2.1+" 'license:lgpl2.1+)
("LGPL-2.1-or-later" 'license:lgpl2.1+)
("LGPL-3.0" 'license:lgpl3)
("LGPL-3.0-only" 'license:lgpl3)
("LGPL-3.0+" 'license:lgpl3+)
("LGPL-3.0-or-later" 'license:lgpl3+)
("LPPL-1.0" 'license:lppl)
("LPPL-1.1" 'license:lppl)
("LPPL-1.2" 'license:lppl1.2)
("LPPL-1.3a" 'license:lppl1.3a)
("LPPL-1.3c" 'license:lppl1.3c)
("MirOS" 'license:miros)
("MPL-1.0" 'license:mpl1.0)
("MPL-1.1" 'license:mpl1.1)
("MPL-2.0" 'license:mpl2.0)
("MS-PL" 'license:ms-pl)
("NCSA" 'license:ncsa)
("OGL-UK-1.0" 'license:ogl-psi1.0)
("OpenSSL" 'license:openssl)
("OLDAP-2.8" 'license:openldap2.8)
("OPL-1.0" 'license:opl1.0+)
("CUA-OPL-1.0" 'license:cua-opl1.0)
("PSF-2.0" 'license:psfl)
("OSL-2.1" 'license:osl2.1)
("QPL-1.0" 'license:qpl)
("Ruby" 'license:ruby)
("SGI-B-2.0" 'license:sgifreeb2.0)
("OFL-1.1" 'license:silofl1.1)
("Sleepycat" 'license:sleepycat)
("TCL" 'license:tcl/tk)
("Unlicense" 'license:unlicense)
("Vim" 'license:vim)
("W3C" 'license:w3c)
("WTFPL" 'license:wtfpl2)
("wxWindow" 'license:wxwindows3.1+) ;flagged as deprecated on spdx
("X11" 'license:x11)
("ZPL-2.1" 'license:zpl2.1)
("Zlib" 'license:zlib)
(_ #f)))
;;
;; "GPL-N+" has been deprecated in favour of "GPL-N-or-later". "GPL-N" has
;; been deprecated in favour of "GPL-N-only" or "GPL-N-or-later" as
;; appropriate. Likewise for LGPL and AGPL. However, we list the
;; deprecated forms here (with and without the "+" operator) to get better
;; results from old license expressions.
'(("AGPL-1.0" . license:agpl1)
("AGPL-1.0-only" . license:agpl1)
("AGPL-3.0" . license:agpl3)
("AGPL-3.0-only" . license:agpl3)
("AGPL-3.0-or-later" . license:agpl3+)
("Apache-1.1" . license:asl1.1)
("Apache-2.0" . license:asl2.0)
("APSL-2.0" . license:apsl2)
("BSL-1.0" . license:boost1.0)
("0BSD" . license:bsd-0)
("BSD-2-Clause" . license:bsd-2)
("BSD-2-Clause-FreeBSD" . license:bsd-2) ;flagged as deprecated on spdx
("BSD-3-Clause" . license:bsd-3)
("BSD-4-Clause" . license:bsd-4)
("CC0-1.0" . license:cc0)
("CC-BY-2.0" . license:cc-by2.0)
("CC-BY-3.0" . license:cc-by3.0)
("CC-BY-4.0" . license:cc-by4.0)
("CC-BY-SA-2.0" . license:cc-by-sa2.0)
("CC-BY-SA-3.0" . license:cc-by-sa3.0)
("CC-BY-SA-4.0" . license:cc-by-sa4.0)
("CDDL-1.0" . license:cddl1.0)
("CDDL-1.1" . license:cddl1.1)
("CECILL-2.1" . license:cecill)
("CECILL-B" . license:cecill-b)
("CECILL-C" . license:cecill-c)
("Artistic-2.0" . license:artistic2.0)
("ClArtistic" . license:clarified-artistic)
("copyleft-next-0.3.0" . license:copyleft-next)
("CPL-1.0" . license:cpl1.0)
("EPL-1.0" . license:epl1.0)
("EPL-2.0" . license:epl2.0)
("EUPL-1.2" . license:eupl1.2)
("MIT" . license:expat)
("MIT-0" . license:expat-0)
("FTL" . license:freetype)
("FreeBSD-DOC" . license:freebsd-doc)
("Freetype" . license:freetype)
("FSFAP" . license:fsf-free)
("FSFUL" . license:fsf-free)
("GFDL-1.1" . license:fdl1.1+)
("GFDL-1.1-or-later" . license:fdl1.1+)
("GFDL-1.2" . license:fdl1.2+)
("GFDL-1.2-or-later" . license:fdl1.2+)
("GFDL-1.3" . license:fdl1.3+)
("GFDL-1.3-or-later" . license:fdl1.3+)
("Giftware" . license:giftware)
("GPL-1.0" . license:gpl1)
("GPL-1.0-only" . license:gpl1)
("GPL-1.0+" . license:gpl1+)
("GPL-1.0-or-later" . license:gpl1+)
("GPL-2.0" . license:gpl2)
("GPL-2.0-only" . license:gpl2)
("GPL-2.0+" . license:gpl2+)
("GPL-2.0-or-later" . license:gpl2+)
("GPL-3.0" . license:gpl3)
("GPL-3.0-only" . license:gpl3)
("GPL-3.0+" . license:gpl3+)
("GPL-3.0-or-later" . license:gpl3+)
("HPND" . license:hpnd)
("ISC" . license:isc)
("IJG" . license:ijg)
("Imlib2" . license:imlib2)
("IPA" . license:ipa)
("IPL-1.0" . license:ibmpl1.0)
("LAL-1.3" . license:lal1.3)
("LGPL-2.0" . license:lgpl2.0)
("LGPL-2.0-only" . license:lgpl2.0)
("LGPL-2.0+" . license:lgpl2.0+)
("LGPL-2.0-or-later" . license:lgpl2.0+)
("LGPL-2.1" . license:lgpl2.1)
("LGPL-2.1-only" . license:lgpl2.1)
("LGPL-2.1+" . license:lgpl2.1+)
("LGPL-2.1-or-later" . license:lgpl2.1+)
("LGPL-3.0" . license:lgpl3)
("LGPL-3.0-only" . license:lgpl3)
("LGPL-3.0+" . license:lgpl3+)
("LGPL-3.0-or-later" . license:lgpl3+)
("LPPL-1.0" . license:lppl)
("LPPL-1.1" . license:lppl)
("LPPL-1.2" . license:lppl1.2)
("LPPL-1.3a" . license:lppl1.3a)
("LPPL-1.3c" . license:lppl1.3c)
("MirOS" . license:miros)
("MPL-1.0" . license:mpl1.0)
("MPL-1.1" . license:mpl1.1)
("MPL-2.0" . license:mpl2.0)
("MS-PL" . license:ms-pl)
("NCSA" . license:ncsa)
("OGL-UK-1.0" . license:ogl-psi1.0)
("OpenSSL" . license:openssl)
("OLDAP-2.8" . license:openldap2.8)
("OPL-1.0" . license:opl1.0+)
("CUA-OPL-1.0" . license:cua-opl1.0)
("PSF-2.0" . license:psfl)
("OSL-2.1" . license:osl2.1)
("QPL-1.0" . license:qpl)
("Ruby" . license:ruby)
("SGI-B-2.0" . license:sgifreeb2.0)
("OFL-1.1" . license:silofl1.1)
("Sleepycat" . license:sleepycat)
("TCL" . license:tcl/tk)
("Unlicense" . license:unlicense)
("Vim" . license:vim)
("W3C" . license:w3c)
("WTFPL" . license:wtfpl2)
("wxWindow" . license:wxwindows3.1+) ;flagged as deprecated on spdx
("X11" . license:x11)
("ZPL-2.1" . license:zpl2.1)
("Zlib" . license:zlib)))
(define (spdx-string->license str)
"Convert STR, an SPDX license identifier (possibly with a postfix +
operator), to a symbol like 'license:gpl3+ giving the prefixed name of a
license object exported from (guix licenses). Return #f if STR does not match
any known SPDX license identifiers. Per the SPDX specification, license
identifiers are compared case-insensitively."
;; https://spdx.github.io/spdx-spec/v2.3/SPDX-license-expressions/#d2-case-sensitivity
;; Operators AND, OR, and WITH are case-sensitive, but identifiers are
;; case-insensitive for matching, though the canonical case is used in URIs.
(match (assoc str %spdx-license-identifiers string-ci=?)
((_ . license)
license)
(#f
(and (string-suffix? "+" str)
;; We try the form with the + to support deprecated identifiers for
;; GNU licenses (see above). Here, we handle other uses of +.
(spdx-string->license (string-drop-right str 1))))))
(define (license->symbol license)
"Convert license to a symbol representing the variable the object is bound
to in the (guix licenses) module, or #f if there is no such known license."
"Convert LICENSE object to a prefixed symbol representing the variable the
object is bound to in the (guix licenses) module, such as 'license:gpl3+, or
#f if there is no such known license."
(define licenses
(module-map (lambda (sym var) `(,(variable-ref var) . ,sym))
(resolve-interface '(guix licenses) #:prefix 'license:)))

View file

@ -3,6 +3,7 @@
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2022 jgart <jgart@dismail.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -119,6 +120,7 @@ Display information about the channels currently in use.\n"))
(let ((intro (channel-introduction channel)))
`((name . ,(channel-name channel))
(url . ,(channel-url channel))
(branch . ,(channel-branch channel))
(commit . ,(channel-commit channel))
,@(if intro
`((introduction
@ -135,6 +137,7 @@ Display information about the channels currently in use.\n"))
(format port "name: ~a~%" (channel-name channel))
(format port "url: ~a~%" (channel-url channel))
(format port "branch: ~a~%" (channel-branch channel))
(format port "commit: ~a~%" (channel-commit channel))
(when intro
(format port "introductioncommit: ~a~%"

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2017-2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
@ -702,7 +702,6 @@ Valid compressors are: ~a~%") compressor-name %valid-compressors)))
(guix build utils)
(guix profiles)
(ice-9 match)
((oop goops) #:select (get-keyword))
(srfi srfi-1))
(define machine-type
@ -763,15 +762,20 @@ Valid compressors are: ~a~%") compressor-name %valid-compressors)))
(copy-file #+data-tarball data-tarball-file-name)
(define (keyword-ref lst keyword)
(match (memq keyword lst)
((_ value . _) value)
(#f #f)))
;; Generate the control archive.
(define control-file
(get-keyword #:control-file '#$extra-options))
(keyword-ref '#$extra-options #:control-file))
(define postinst-file
(get-keyword #:postinst-file '#$extra-options))
(keyword-ref '#$extra-options #:postinst-file))
(define triggers-file
(get-keyword #:triggers-file '#$extra-options))
(keyword-ref '#$extra-options #:triggers-file))
(define control-tarball-file-name
(string-append "control.tar"

View file

@ -235,4 +235,9 @@ Differences are hard to spot, e.g. in CLOS vs. GOOPS."))
(equal? (package-upstream-name pkg) "hello-upstream")
(hidden-package? pkg))))
(test-equal "spdx-string->license"
'(license:gpl3+ license:agpl3 license:gpl2+)
(map spdx-string->license
'("GPL-3.0-oR-LaTeR" "AGPL-3.0" "GPL-2.0+")))
(test-end "import-utils")