diff options
author | Liliana Marie Prikler <liliana.prikler@gmail.com> | 2023-09-30 11:54:32 +0200 |
---|---|---|
committer | Liliana Marie Prikler <liliana.prikler@gmail.com> | 2023-09-30 11:54:32 +0200 |
commit | 7d134b57b79188f8c878625d4e09f9bd6181e8c0 (patch) | |
tree | fae437f88c666ccf877518b53ea3707f4bc04ec3 | |
parent | b18b2d13488f2a92331ccad2dc8cbb54ee15582f (diff) | |
parent | ee5de9cdf2e9d914638fcac8b5f25bdddfb73dfc (diff) |
Merge branch 'master' into gnome-team
111 files changed, 4420 insertions, 2214 deletions
diff --git a/configure.ac b/configure.ac index 92dede8014..d817f620cf 100644 --- a/configure.ac +++ b/configure.ac @@ -201,6 +201,13 @@ AC_SUBST([GZIP]) AC_SUBST([BZIP2]) AC_SUBST([XZ]) +dnl Git is now required for the "builtin:git-download" derivation builder. +AC_PATH_PROG([GIT], [git]) +if test "x$GIT" = "x"; then + AC_MSG_ERROR([Git is missing; please install it.]) +fi +AC_SUBST([GIT]) + LIBGCRYPT_LIBDIR="no" LIBGCRYPT_PREFIX="no" diff --git a/doc/contributing.texi b/doc/contributing.texi index ce4b9db366..0de47a403b 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -397,13 +397,12 @@ configuration file: @lisp ;;; Bug references. +(require 'bug-reference) (add-hook 'prog-mode-hook #'bug-reference-prog-mode) (add-hook 'gnus-mode-hook #'bug-reference-mode) (add-hook 'erc-mode-hook #'bug-reference-mode) -(add-hook 'bug-reference-mode-hook 'debbugs-browse-mode) -(add-hook 'bug-reference-prog-mode-hook 'debbugs-browse-mode) -(add-hook 'gnus-summary-mode-hook 'bug-reference-mode) -(add-hook 'gnus-article-mode-hook 'bug-reference-mode) +(add-hook 'gnus-summary-mode-hook #'bug-reference-mode) +(add-hook 'gnus-article-mode-hook #'bug-reference-mode) ;;; This extends the default expression (the top-most, first expression ;;; provided to 'or') to also match URLs such as @@ -431,6 +430,12 @@ configuration file: (seq "<https://bugs.gnu.org/" (group-n 2 (one-or-more (char "0-9"))) ">"))))) +(setq bug-reference-url-format "https://issues.guix.gnu.org/%s") + +(require 'debbugs) +(require 'debbugs-browse) +(add-hook 'bug-reference-mode-hook #'debbugs-browse-mode) +(add-hook 'bug-reference-prog-mode-hook #'debbugs-browse-mode) ;; The following allows Emacs Debbugs user to open the issue directly within ;; Emacs. @@ -518,6 +523,7 @@ needed is to review and apply the patch. * Version Numbers:: When the name is not enough. * Synopses and Descriptions:: Helping users find the right package. * Snippets versus Phases:: Whether to use a snippet, or a build phase. +* Cyclic Module Dependencies:: Going full circle. * Emacs Packages:: Your Elisp fix. * Python Modules:: A touch of British comedy. * Perl Modules:: Little pearls. @@ -789,6 +795,61 @@ embed store items in the sources; such patching should rather be done using build phases. Refer to the @code{origin} record documentation for more information (@pxref{origin Reference}). +@node Cyclic Module Dependencies +@subsection Cyclic Module Dependencies + +While there cannot be circular dependencies between packages, Guile's +lax module loading mechanism allows circular dependencies between Guile +modules, which doesn't cause problems as long as the following +conditions are followed for two modules part of a dependency cycle: + +@cindex rules to cope with circular module dependencies +@enumerate +@item +Macros are not shared between the co-dependent modules +@item +Top-level variables are only referenced in delayed (@i{thunked}) package +fields: @code{arguments}, @code{native-inputs}, @code{inputs}, +@code{propagated-inputs} or @code{replacement} +@item +Procedures referencing top-level variables from another module are not +called at the top level of a module themselves. +@end enumerate + +Straying away from the above rules may work while there are no +dependency cycles between modules, but given such cycles are confusing +and difficult to troubleshoot, it is best to follow the rules to avoid +introducing problems down the line. + +@noindent +Here is a common trap to avoid: + +@lisp +(define-public avr-binutils + (package + (inherit (cross-binutils "avr")) + (name "avr-binutils"))) +@end lisp + +In the above example, the @code{avr-binutils} package was defined in the +module @code{(gnu packages avr)}, and the @code{cross-binutils} +procedure in @code{(gnu packages cross-base)}. Because the +@code{inherit} field is not delayed (thunked), it is evaluated at the +top level at load time, which is problematic in the presence of module +dependency cycles. This could be resolved by turning the package into a +procedure instead, like: + +@lisp +(define (make-avr-binutils) + (package + (inherit (cross-binutils "avr")) + (name "avr-binutils"))) +@end lisp + +Care would need to be taken to ensure the above procedure is only ever +used in a package delayed fields or within another procedure also not +called at the top level. + @node Emacs Packages @subsection Emacs Packages diff --git a/doc/guix.texi b/doc/guix.texi index 46591b2f64..f49ed894a7 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -1011,6 +1011,7 @@ version 0.1.0 or later; @item @uref{https://gitlab.com/guile-git/guile-git, Guile-Git}, version 0.5.0 or later; +@item @uref{https://git-scm.com, Git} (yes, both!); @item @uref{https://savannah.nongnu.org/projects/guile-json/, Guile-JSON} 4.3.0 or later; @item @url{https://www.gnu.org/software/make/, GNU Make}. diff --git a/etc/committer.scm.in b/etc/committer.scm.in index e7f1ca8c45..0705b29fd9 100755 --- a/etc/committer.scm.in +++ b/etc/committer.scm.in @@ -85,21 +85,39 @@ the expression." (seek port start SEEK_SET) result)) -(define (surrounding-sexp port line-no) +(define (lines+offsets-with-opening-parens port) + "Record all line numbers (and their offsets) where an opening parenthesis is +found in column 0. The resulting list is in reverse order." + (let loop ((acc '()) + (number 0)) + (let ((line (read-line port))) + (cond + ((eof-object? line) acc) + ((string-prefix? "(" line) + (loop (cons (cons number ;line number + (- (ftell port) + (string-length line) 1)) ;offset + acc) + (1+ number))) + (else (loop acc (1+ number))))))) + +(define (surrounding-sexp port target-line-no) "Return the top-level S-expression surrounding the change at line number -LINE-NO in PORT." - (let loop ((i (1- line-no)) - (last-top-level-sexp #f)) - (if (zero? i) - last-top-level-sexp - (match (peek-char port) - (#\( - (let ((sexp (read-excursion port))) - (read-line port) - (loop (1- i) sexp))) - (_ - (read-line port) - (loop (1- i) last-top-level-sexp)))))) +TARGET-LINE-NO in PORT." + (let* ((line-numbers+offsets + (lines+offsets-with-opening-parens port)) + (closest-offset + (or (and=> (list-index (match-lambda + ((line-number . offset) + (< line-number target-line-no))) + line-numbers+offsets) + (lambda (index) + (match (list-ref line-numbers+offsets index) + ((line-number . offset) offset)))) + (error "Could not find surrounding S-expression for line" + target-line-no)))) + (seek port closest-offset SEEK_SET) + (read port))) ;;; Whether the hunk contains a newly added package (definition), a removed ;;; package (removal) or something else (#false). @@ -196,21 +214,34 @@ LINE-NO in PORT." (string-ref line 0))) (hunk-diff-lines hunk)))) -(define (old-sexp hunk) - "Using the diff information in HUNK return the unmodified S-expression -corresponding to the top-level definition containing the staged changes." - ;; TODO: We can't seek with a pipe port... +(define %original-file-cache + (make-hash-table)) + +(define (read-original-file file-name) + "Return the contents of FILE-NAME prior to any changes." (let* ((port (open-pipe* OPEN_READ "git" "cat-file" "-p" (string-append - "HEAD:" - (hunk-file-name hunk)))) + "HEAD:" file-name))) (contents (get-string-all port))) (close-pipe port) - (call-with-input-string contents - (lambda (port) - (surrounding-sexp port - (+ (lines-to-first-change hunk) - (hunk-old-line-number hunk))))))) + contents)) + +(define (read-original-file* file-name) + "Caching variant of READ-ORIGINAL-FILE." + (or (hashv-ref %original-file-cache file-name) + (let ((value (read-original-file file-name))) + (hashv-set! %original-file-cache file-name value) + value))) + +(define (old-sexp hunk) + "Using the diff information in HUNK return the unmodified S-expression +corresponding to the top-level definition containing the staged changes." + ;; TODO: We can't seek with a pipe port... + (call-with-input-string (read-original-file* (hunk-file-name hunk)) + (lambda (port) + (surrounding-sexp port + (+ (lines-to-first-change hunk) + (hunk-old-line-number hunk)))))) (define (new-sexp hunk) "Using the diff information in HUNK return the modified S-expression @@ -358,6 +389,7 @@ modifying." (_ (apply change-commit-message file-name old new rest))))) + (read-disable 'positions) (match (diff-info) (() (display "Nothing to be done.\n" (current-error-port))) @@ -388,41 +420,46 @@ modifying." (unless (eqv? 0 (status:exit-val (close-pipe port))) (error "Cannot commit")))) (usleep %delay)) - definitions)) - - ;; Changes. - (for-each - (match-lambda - ((new old . hunks) - (for-each (lambda (hunk) - (let ((port (open-pipe* OPEN_WRITE - "git" "apply" - "--cached" - "--unidiff-zero"))) - (hunk->patch hunk port) - (unless (eqv? 0 (status:exit-val (close-pipe port))) - (error "Cannot apply"))) - (usleep %delay)) - hunks) - (define copyright-line - (any (lambda (line) (and=> (string-prefix? "+;;; Copyright ©" line) - (const line))) - (hunk-diff-lines (first hunks)))) - (cond - (copyright-line - (add-copyright-line copyright-line)) - (else - (let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-"))) - (change-commit-message* (hunk-file-name (first hunks)) - old new) - (change-commit-message* (hunk-file-name (first hunks)) - old new - port) - (usleep %delay) - (unless (eqv? 0 (status:exit-val (close-pipe port))) - (error "Cannot commit"))))))) - ;; XXX: we recompute the hunks here because previous - ;; insertions lead to offsets. - (new+old+hunks (diff-info)))))) + definitions) + + ;; Changes. + (for-each + (match-lambda + ((new old . hunks) + (for-each (lambda (hunk) + (let ((port (open-pipe* OPEN_WRITE + "git" "apply" + "--cached" + "--unidiff-zero"))) + (hunk->patch hunk port) + (unless (eqv? 0 (status:exit-val (close-pipe port))) + (error "Cannot apply"))) + (usleep %delay)) + hunks) + (define copyright-line + (any (lambda (line) (and=> (string-prefix? "+;;; Copyright ©" line) + (const line))) + (hunk-diff-lines (first hunks)))) + (cond + (copyright-line + (add-copyright-line copyright-line)) + (else + (let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-"))) + (change-commit-message* (hunk-file-name (first hunks)) + old new) + (change-commit-message* (hunk-file-name (first hunks)) + old new + port) + (usleep %delay) + (unless (eqv? 0 (status:exit-val (close-pipe port))) + (error "Cannot commit"))))))) + (new+old+hunks (match definitions + ('() changes) ;reuse + (_ + ;; XXX: we recompute the hunks here because previous + ;; insertions lead to offsets. + (let-values (((definitions changes) + (partition hunk-type (diff-info)))) + changes))))))))) (apply main (cdr (command-line))) diff --git a/etc/teams.scm.in b/etc/teams.scm.in index 876050da9c..55242caad1 100644 --- a/etc/teams.scm.in +++ b/etc/teams.scm.in @@ -643,6 +643,10 @@ GLib/GIO, GTK, GStreamer and Webkit." "marius@gnu.org") python) +(define-member (person "Munyoki Kilyungi" + "me@bonfacemunyoki.com") + python lisp) + (define (find-team name) (or (hash-ref %teams (string->symbol name)) diff --git a/gnu/local.mk b/gnu/local.mk index 72c9954492..904fcf406c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -355,6 +355,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/java-compression.scm \ %D%/packages/java-graphics.scm \ %D%/packages/java-maths.scm \ + %D%/packages/java-rdf.scm \ %D%/packages/java-xml.scm \ %D%/packages/javascript.scm \ %D%/packages/jemalloc.scm \ @@ -1176,6 +1177,7 @@ dist_patch_DATA = \ %D%/packages/patches/freedink-engine-fix-sdl-hints.patch \ %D%/packages/patches/freeimage-libtiff-compat.patch \ %D%/packages/patches/freeimage-unbundle.patch \ + %D%/packages/patches/fulcrum-1.9.1-unbundled-libraries.patch \ %D%/packages/patches/fuse-glibc-2.34.patch \ %D%/packages/patches/fuse-overlapping-headers.patch \ %D%/packages/patches/fuzzylite-relative-path-in-tests.patch \ @@ -1408,6 +1410,7 @@ dist_patch_DATA = \ %D%/packages/patches/hwloc-1-test-btrfs.patch \ %D%/packages/patches/i7z-gcc-10.patch \ %D%/packages/patches/icecat-makeicecat.patch \ + %D%/packages/patches/icecat-102-makeicecat.patch \ %D%/packages/patches/icecat-avoid-bundled-libraries.patch \ %D%/packages/patches/icecat-use-system-graphite2+harfbuzz.patch \ %D%/packages/patches/icecat-use-system-media-libs.patch \ @@ -1481,6 +1484,7 @@ dist_patch_DATA = \ %D%/packages/patches/kio-search-smbd-on-PATH.patch \ %D%/packages/patches/kismet-unbundle-boost.patch \ %D%/packages/patches/kitty-fix-wayland-protocols.patch \ + %D%/packages/patches/kiwix-desktop-newer-libkiwix.patch \ %D%/packages/patches/kmod-module-directory.patch \ %D%/packages/patches/kmscon-runtime-keymap-switch.patch \ %D%/packages/patches/kobodeluxe-paths.patch \ @@ -1562,6 +1566,7 @@ dist_patch_DATA = \ %D%/packages/patches/libutils-remove-damaging-includes.patch \ %D%/packages/patches/libvdpau-va-gl-unbundle.patch \ %D%/packages/patches/libvpx-CVE-2016-2818.patch \ + %D%/packages/patches/libvpx-CVE-2023-5217.patch \ %D%/packages/patches/libxml2-xpath0-Add-option-xpath0.patch \ %D%/packages/patches/libwpd-gcc-compat.patch \ %D%/packages/patches/libxslt-generated-ids.patch \ @@ -2122,6 +2127,8 @@ dist_patch_DATA = \ %D%/packages/patches/wpa-supplicant-dbus-group-policy.patch \ %D%/packages/patches/x265-arm-flags.patch \ %D%/packages/patches/xdg-desktop-portal-wlr-harcoded-length.patch\ + %D%/packages/patches/xen-docs-use-predictable-ordering.patch \ + %D%/packages/patches/xen-remove-config.gz-timestamp.patch \ %D%/packages/patches/xf86-video-ark-remove-mibstore.patch \ %D%/packages/patches/xf86-video-nouveau-fixup-ABI.patch \ %D%/packages/patches/xf86-video-savage-xorg-compat.patch \ @@ -2135,8 +2142,8 @@ dist_patch_DATA = \ %D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch \ %D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch \ %D%/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch \ - %D%/packages/patches/xpra-4.2-systemd-run.patch \ - %D%/packages/patches/xpra-4.2-install_libs.patch \ + %D%/packages/patches/xpra-5.0-systemd-run.patch \ + %D%/packages/patches/xpra-5.0-install_libs.patch \ %D%/packages/patches/xsane-fix-memory-leak.patch \ %D%/packages/patches/xsane-fix-pdf-floats.patch \ %D%/packages/patches/xsane-fix-snprintf-buffer-length.patch \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 4ddd03fecf..9eb5f1ce9c 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -389,7 +389,7 @@ interface and is based on GNU Guile.") ;; single-board computers. (if (target-arm?) guile-fibers-1.1 - guile-fibers-1.3)))) + guile-fibers)))) (inputs (modify-inputs (package-inputs shepherd-0.9) (replace "guile-fibers" (this-package-native-input "guile-fibers")))))) @@ -4490,7 +4490,7 @@ Python loading in HPC environments.") (let ((real-name "inxi")) (package (name "inxi-minimal") - (version "3.3.29-1") + (version "3.3.30-1") (source (origin (method git-fetch) @@ -4499,7 +4499,7 @@ Python loading in HPC environments.") (commit version))) (file-name (git-file-name real-name version)) (sha256 - (base32 "05z0vydfmkva61kj14p6jxy7dr8qwd024a7nn8pib57q4qnjm4r8")))) + (base32 "0k27m4a19p32c00w4jpmqy17v0ca4g5zixyw97yy12932c73d0dy")))) (build-system trivial-build-system) (inputs (list bash-minimal @@ -5042,7 +5042,7 @@ entries, providing commands to add, remove, comment, and search.") (define-public nmrpflash (package (name "nmrpflash") - (version "0.9.19") + (version "0.9.21") (source (origin (method git-fetch) @@ -5051,24 +5051,25 @@ entries, providing commands to add, remove, comment, and search.") (url "https://github.com/jclehner/nmrpflash") (commit (string-append "v" version)))) (sha256 - (base32 "02r2z3mnbj8dfka7adw1l76zq1jh1l13mmkns93c54ychs44jz3d")) + (base32 "183nvxqdn8klin5f14f4cv9vjymj0izy0qmj1l76igmlcq7ravwx")) (file-name (git-file-name name version)))) (build-system gnu-build-system) + (arguments + (list + #:tests? #f ; none exist + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "PREFIX=" #$output)) + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (add-before 'install 'prepare-install + (lambda _ + (mkdir-p (string-append #$output "/bin"))))))) (native-inputs (list pkg-config)) (inputs (list libnl libpcap)) - (arguments - `(#:tests? #f ; None exist - #:make-flags - (list (string-append "CC=" ,(cc-for-target)) - (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:phases - (modify-phases %standard-phases - (delete 'configure) - (add-before 'install 'prepare-install - (lambda* (#:key outputs #:allow-other-keys) - (mkdir-p (string-append (assoc-ref outputs "out") "/bin"))))))) (home-page "https://github.com/jclehner/nmrpflash") (synopsis "Reflash (``unbrick'') Netgear devices with corrupted firmware") (description "This package provides a utility to flash a new firmware diff --git a/gnu/packages/assembly.scm b/gnu/packages/assembly.scm index 37b5712d81..3bfe0bd3e0 100644 --- a/gnu/packages/assembly.scm +++ b/gnu/packages/assembly.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2022 Felix Gruber <felgru@posteo.net> ;;; Copyright © 2022 Andy Tai <atai@atai.org> ;;; Copyright © 2023 Simon South <simon@simonsouth.net> +;;; Copyright © 2023 B. Wilson <elaexuotee@wilsonb.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -644,3 +645,37 @@ intrinsics as defined in the @file{arm_neon.h} header and x86 SSE (up to SSE4.2) intrinsic functions as defined in corresponding x86 compilers headers files.") (license license:bsd-2)))) + +(define-public blinkenlights + (package + (name "blinkenlights") + (version "1.0.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jart/blink") + (commit version))) + (sha256 + (base32 + "0dgfqy5z1vbpgbf39f14ngkqmw4gi3hsyihi4sh1qcbp9gnqpg2v")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + (list #:tests? #f ;Tests require network access + #:phases + #~(modify-phases %standard-phases + ;; Call ./configure without --enable-fast-install argument, which + ;; causes the script to fail with an "unsupported option" error. + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (invoke "./configure" + (string-append "CC=" #$(cc-for-target)) + (string-append "--prefix=" + (assoc-ref outputs "out")))))))) + (home-page "https://justine.lol/blinkenlights/") + (synopsis "Emulator for x86_64-linux programs with a text user interface") + (description + "Blinkenlights is a command-line debugger that focuses on visualizing how +software changes memory. It can emulate statically-linked i8086 and +x86_64-pc-linux-gnu programs.") + (license license:isc))) diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm index e8499bb4b4..4afde96a8c 100644 --- a/gnu/packages/astronomy.scm +++ b/gnu/packages/astronomy.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> ;;; Copyright © 2023 Iliya Tikhonenko <tikhonenko@mpe.mpg.de> ;;; Copyright © 2023 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2023 Simon Tournier <zimon.toutoune@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -534,45 +535,42 @@ mining in astronomy.") (define-public python-fitsio (package (name "python-fitsio") - (version "1.1.10") + (version "1.2.0") (source (origin (method url-fetch) (uri (pypi-uri "fitsio" version)) (sha256 - (base32 "0dv2vjj8qn3rq5sr99x5yjjch5h867c8q7zh73i67dzdsk7ix0jf")) + (base32 "04fbg1ffj7qrlzw50xzzkfnlk6qjjqq96j0im7phprmwb1rbvzzh")) (modules '((guix build utils))) (snippet - ;; Remove the bundled cfitsio + ;; Remove the bundled cfitsio. When update the package check the + ;; current bundled version. #~(begin - (delete-file-recursively "cfitsio3490") + (delete-file-recursively "cfitsio-4.2.0") (substitute* "MANIFEST.in" - (("recursive-include cfitsio3490.*$\n") "")))))) + (("recursive-include cfitsio-4.2.0.*$\n") "")))))) (build-system pyproject-build-system) (arguments (list #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'unbundle-cfitsio + (add-before 'build 'set-env (lambda _ - (let* ((cfitsio #$(this-package-input "cfitsio")) - (includedir (string-append "\"" cfitsio "/include\"")) - (libdir (string-append "\"" cfitsio "/lib\""))) - ;; Use Guix' cfitsio instead of the bundled one - (substitute* "setup.py" - (("self.use_system_fitsio = False") "pass") - (("self.system_fitsio_includedir = None") "pass") - (("self.system_fitsio_libdir = None") "pass") - (("self.use_system_fitsio") "True") - (("self.system_fitsio_includedir") includedir) - (("self.system_fitsio_libdir") libdir))))) + (setenv "FITSIO_USE_SYSTEM_FITSIO" "True") + (setenv "FITSIO_SYSTEM_FITSIO_INCLUDEDIR" + (string-append + #$(this-package-input "cfitsio") "/include")) + (setenv "FITSIO_SYSTEM_FITSIO_LIBDIR" + (string-append + #$(this-package-input "cfitsio") "/lib")))) (add-before 'check 'build-extensions (lambda _ (invoke "python" "setup.py" "build_ext" "--inplace")))))) (native-inputs (list python-pytest)) (inputs - (list curl cfitsio)) + (list curl cfitsio zlib)) (propagated-inputs (list python-numpy)) (home-page "https://github.com/esheldon/fitsio") @@ -741,6 +739,21 @@ coordinate systems in a @dfn{FITS} (Flexible Image Transport System) image header.") (license license:lgpl3+))) +;;; The version is required for julia-wcs-jll and julia-wcs. They do not +;;; support version higher than 7.x. +(define-public wcslib-7.12 + (package + (inherit wcslib) + (version "7.12") + (source + (origin + (method url-fetch) + (uri (string-append "https://www.atnf.csiro.au/people/mcalabre/WCS/" + "wcslib-" version ".tar.bz2")) + (sha256 + (base32 "1m3bx6gh5w3c7vvsqcki0x20mg8lilg13m0i8nh7za89w58dxy4w")))) + (properties '((hidden? . #t))))) + (define-public weightwatcher (package (name "weightwatcher") @@ -1011,7 +1024,7 @@ image formats.") (define-public splash (package (name "splash") - (version "3.8.2") + (version "3.8.4") (source (origin (method git-fetch) (uri (git-reference @@ -1019,7 +1032,7 @@ image formats.") (commit (string-append "v" version)))) (sha256 (base32 - "0y6l135g0a3hvvh8w8sfdh1kfq2g0gbp0dgjhnmwid8bwwcjvw8v")) + "1l18sqz5mpab9wb5hlbfy18wfwq6fpijc3p9wa5bv6lrcymvpirp")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -1356,13 +1369,13 @@ accurately in real time at any rate desired.") (define-public python-astropy (package (name "python-astropy") - (version "5.3.1") + (version "5.3.3") (source (origin (method url-fetch) (uri (pypi-uri "astropy" version)) (sha256 - (base32 "0x4dh7wx9sn1gy6sl2d54zsd24cgfjwrlk6kfrwpzzrmbsv22lwv")) + (base32 "1fwk7x4q1hgdf9m8q613c6q7045sam1g934vgqv588ksbngxyc03")) (modules '((guix build utils))) (snippet '(begin @@ -1460,13 +1473,13 @@ astronomy and astrophysics.") (define-public python-astropy-healpix (package (name "python-astropy-healpix") - (version "0.7") + (version "1.0.0") (source (origin (method url-fetch) (uri (pypi-uri "astropy_healpix" version)) (sha256 - (base32 "1n1svmd41iv944zf4anbnsigd47zr4dfjf49vrc7m6928gmq9hw8")))) + (base32 "18zfmdv0vs0yawirq8c2mpjxx7bvy66z0rlcyc1n6s0fl5ifz0pl")))) (build-system pyproject-build-system) (arguments (list @@ -1582,7 +1595,7 @@ specifically in the C code.") (define-public python-bayesicfitting (package (name "python-bayesicfitting") - (version "3.1.1") + (version "3.2.0") (source (origin (method git-fetch) (uri (git-reference @@ -1591,7 +1604,7 @@ specifically in the C code.") (file-name (git-file-name name version)) (sha256 (base32 - "07y9dr9wxhxrvhk0jjakhbyrgal60i92m7z7q14fp12k8x0gl69l")))) + "0q6v7w9b1xzam0qn5vsl5wrdp1fkfpsn411pzd8wyy9giznpajxi")))) (build-system python-build-system) (arguments (list #:phases #~(modify-phases %standard-phases @@ -1643,7 +1656,7 @@ bad pixel tracking throughout the reduction process.") (define-public python-cdflib (package (name "python-cdflib") - (version "1.0.5") + (version "1.1.0") (source (origin (method git-fetch) ; no tests in pypi archive @@ -1652,11 +1665,15 @@ bad pixel tracking throughout the reduction process.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1pkda9gmpjhbqxl2jj5q9rjx77lv5c908mgf20lw3rz4nvfaa2wn")))) + (base32 "0qxf13vmfiblcazxdk2b765b02ys57amawvrwlkj9d5x9f5s6061")))) (build-system pyproject-build-system) (arguments (list #:phases #~(modify-phases %standard-phases + (add-before 'build 'set-env-version + (lambda _ + (setenv "SETUPTOOLS_SCM_PRETEND_VERSION" + #$version))) (add-before 'check 'set-home-env (lambda _ (setenv "HOME" (getcwd))))))) @@ -1668,6 +1685,7 @@ bad pixel tracking throughout the reduction process.") python-pytest python-pytest-cov python-pytest-remotedata + python-setuptools-scm python-xarray)) (home-page "https://github.com/MAVENSDC/cdflib") (synopsis "Python library to deal with NASA's CDF astronmical data format") @@ -1687,13 +1705,13 @@ attempting to maintain ISTP compliance (define-public python-crds (package (name "python-crds") - (version "11.17.0") + (version "11.17.4") (source (origin (method url-fetch) (uri (pypi-uri "crds" version)) (sha256 (base32 - "0sdz1k4hrgrc2jwihp9ns7lx23kcz7f90c222q7aaqf9g3vvpqlr")))) + "0bk6cyd2il7ibqwky6m5kkgs9shrlzyfpnp2rh9jx0xa9habf7zm")))) (build-system pyproject-build-system) (arguments (list @@ -1705,7 +1723,6 @@ attempting to maintain ISTP compliance python-astropy python-boto3 python-filelock - python-lxml python-numpy python-parsley python-pysynphot @@ -1924,13 +1941,13 @@ the easy construction of interactive matplotlib widget based animations.") (define-public python-photutils (package (name "python-photutils") - (version "1.7.0") + (version "1.9.0") (source (origin (method url-fetch) (uri (pypi-uri "photutils" version)) (sha256 - (base32 "1bq4ma402lpa5d6l85awlc23kasxf40nq8hgi3iyrilnfikan0jz")))) + (base32 "0gjvrmcb10lyqx3h9521zqskqngd5xcp3l9h2b02mk1p7q54mzdy")))) (build-system pyproject-build-system) (arguments (list @@ -2083,13 +2100,13 @@ interest, and which require portability between platforms or ease of scripting." (define-public python-pyvo (package (name "python-pyvo") - (version "1.4.1") + (version "1.4.2") (source (origin (method url-fetch) (uri (pypi-uri "pyvo" version)) (sha256 - (base32 "17acv1yhz1jrsx9f35nr1vg276ibaivh4i243qkmp6abzvfyg907")))) + (base32 "1jwmgpavw80mf9sigfz5p2cqh6vz5mvm11ziqmdp5zdccn42kzk6")))) (build-system pyproject-build-system) (native-inputs (list python-pytest-astropy python-requests-mock python-setuptools-scm)) @@ -2247,11 +2264,10 @@ orbits described in TLE files.") #:test-flags #~(list "-k" (string-append ;; XXX: Failed: DID NOT RAISE <class 'ModuleNotFoundError'> + ;; It struggles to find python-opencsv package info with + ;; 'importlib.metadata' "not test_main_nonexisting_module" - " and not test_main_stdlib_module" - ;; XXX: packaging.version.InvalidVersion: Invalid version: 'unknown' - " and not test_read_cdf" - " and not test_read_empty_cdf")) + " and not test_main_stdlib_module")) #:phases #~(modify-phases %standard-phases (add-before 'install 'writable-compiler @@ -2526,13 +2542,13 @@ image processing functions: @code{xyxymatch}, @code{geomap}.") (define-public python-stdatamodels (package (name "python-stdatamodels") - (version "1.7.1") + (version "1.8.0") (source (origin (method url-fetch) (uri (pypi-uri "stdatamodels" version)) (sha256 (base32 - "0d7a27myl3xgri3z7yx26mr4dpqnlfhdh5i2ql2miwymi0mx3ij5")))) + "003h3f07aqf6s24ivwnps81n2h51k545b236s75l8ppvjrm45xfq")))) (build-system pyproject-build-system) (arguments (list @@ -2546,13 +2562,11 @@ image processing functions: @code{xyxymatch}, @code{geomap}.") (propagated-inputs (list python-asdf python-asdf-astropy python-astropy - python-jsonschema python-numpy python-psutil)) (native-inputs (list python-crds python-pytest python-pytest-doctestplus - python-pytest-openfiles python-scipy python-semantic-version python-setuptools-scm)) @@ -2790,7 +2804,7 @@ standard astronomy libraries: (define-public libxisf (package (name "libxisf") - (version "0.2.8") + (version "0.2.9") (source (origin (method git-fetch) @@ -2799,7 +2813,7 @@ standard astronomy libraries: (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1j2bg53hrr2yc55qa6549vcpj7qjnwmxjcdgc98w3ygnrjy7n7v0")))) + (base32 "02cxv86h0ng4kmvyjkf7cr2ak2i3vpf0q0ik7jg4nmqjsidcs796")))) (build-system cmake-build-system) (arguments (list #:configure-flags #~(list "-DUSE_BUNDLED_LIBS=OFF"))) @@ -2810,8 +2824,11 @@ standard astronomy libraries: (home-page "https://nouspiro.space/?page_id=306") (synopsis "Astronomical library to load and write XISF file format") (description - "LibXISF is C++ library that can read and write XISF files produced by -PixInsight. It implements XISF 1.0 specification.") + "LibXISF is C++ library that can read and write @acronym{XISF,Extensible +Image Serialization Format} files produced by @url{https://pixinsight.com/, +PixInsight}. It implements +@url{https://pixinsight.com/doc/docs/XISF-1.0-spec/XISF-1.0-spec.html, XISF +1.0 specification}.") (license license:gpl3+))) (define-public missfits @@ -3178,13 +3195,13 @@ JPL ephemerides use to predict raw (x,y,z) planetary positions.") (define-public python-jwst (package (name "python-jwst") - (version "1.10.2") + (version "1.11.4") (source (origin (method url-fetch) (uri (pypi-uri "jwst" version)) (sha256 (base32 - "1lmfyw2y7c84rs9xqavah9aidj478ijiiijlz6fag11xqn1vs98y")))) + "1q3kpdjr8j1y8hkpidy80aqxsp3k13sz4j5aagq3wnzvpnds3x73")))) (build-system pyproject-build-system) (arguments (list @@ -3201,11 +3218,13 @@ JPL ephemerides use to predict raw (x,y,z) planetary positions.") (propagated-inputs (list opencv python-asdf python-asdf-astropy + python-asdf-transform-schemas python-astropy python-bayesicfitting python-crds python-drizzle python-gwcs + python-jplephem python-jsonschema python-numpy python-photutils @@ -3223,9 +3242,7 @@ JPL ephemerides use to predict raw (x,y,z) planetary positions.") python-stsci-imagestats python-tweakwcs python-wiimatch)) - (native-inputs (list python-codecov - python-colorama - python-flake8 + (native-inputs (list python-colorama python-pytest python-pytest-cov python-pytest-doctestplus @@ -3804,22 +3821,20 @@ default) to world coordinates.") (define-public python-rad (package (name "python-rad") - (version "0.15.0") + (version "0.17.1") (source (origin (method url-fetch) (uri (pypi-uri "rad" version)) (sha256 (base32 - "0j51pkywxdaqrfz162rdsywlvx1mbb2h0gi5framvhf25i1im7mb")))) + "11jhh3qmd00g8sn6hcfshbpb2qy1rfj0xkxn30pd63lqazg4ra3p")))) (build-system pyproject-build-system) (arguments - (list #:test-flags #~(list "-k" "not remote_data"))) - (native-inputs (list python-astropy - python-pytest - python-pytest-doctestplus - python-pytest-openfiles - python-semantic-version - python-setuptools-scm)) + (list + ;; XXX: Tests introduce dependencies cycle, breaking it by disable them. + ;; python-rad -> python-roman-datamodels -> python-crds -> python-rad + #:tests? #f)) + (native-inputs (list python-semantic-version python-setuptools-scm)) (propagated-inputs (list python-asdf python-asdf-astropy)) (home-page "https://github.com/spacetelescope/rad") (synopsis "Roman Attribute Dictionary") @@ -3834,22 +3849,21 @@ Grace Roman Space Telescope.") (define-public python-roman-datamodels (package (name "python-roman-datamodels") - (version "0.15.0") + (version "0.17.1") (source (origin (method url-fetch) (uri (pypi-uri "roman_datamodels" version)) (sha256 (base32 - "0frhm1cqqd8934yizhm4fy78y38q2w9ncm4rv1n74hfypkyis4ap")))) + "1y12cp8172i4a314gmhpi86jw6pfylz1adh0rzr5zqmvd3mrjqlj")))) (build-system pyproject-build-system) (arguments - ;; XXX: Check how to make all tests enabled, probably some more inner - ;; input chain needs to be upgraded, keep them disabled to make the build - ;; green. - (list #:test-flags #~(list "-k" - (string-append "not test_will_validate" - " and not test_will_strict_validate" - " and not test_nuke_validation")))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-env + (lambda _ + (setenv "HOME" "/tmp")))))) (propagated-inputs (list python-asdf python-asdf-astropy python-asdf-standard @@ -3858,8 +3872,10 @@ Grace Roman Space Telescope.") python-numpy python-psutil python-rad)) - (native-inputs (list python-pytest python-pytest-doctestplus - python-pytest-openfiles python-semantic-version + (native-inputs (list python-pytest + python-pytest-doctestplus + python-pytest-env + python-semantic-version python-setuptools-scm)) (home-page "https://github.com/spacetelescope/roman_datamodels") (synopsis "Roman Datamodels Support") diff --git a/gnu/packages/avr-xyz.scm b/gnu/packages/avr-xyz.scm index a05157ede7..e8844b8d43 100644 --- a/gnu/packages/avr-xyz.scm +++ b/gnu/packages/avr-xyz.scm @@ -71,7 +71,7 @@ (string-append "PREFIX=" #$output) (string-append "DESTDIR=" #$output)))) (propagated-inputs - (list avr-toolchain)) + (list (make-avr-toolchain))) (native-inputs (list autoconf which diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm index b9bee5e624..bc583ddff3 100644 --- a/gnu/packages/avr.scm +++ b/gnu/packages/avr.scm @@ -25,6 +25,7 @@ (define-module (gnu packages avr) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix gexp) + #:use-module (guix memoization) #:use-module (guix utils) #:use-module (guix download) #:use-module (guix git-download) @@ -37,113 +38,135 @@ #:use-module (gnu packages flashing-tools) #:use-module (gnu packages gcc) #:use-module (gnu packages llvm) - #:use-module (gnu packages vim)) + #:use-module (gnu packages vim) + #:export (make-avr-toolchain)) -(define-public avr-binutils - (package - (inherit (cross-binutils "avr")) - (name "avr-binutils"))) +;;; Commentary: +;;; +;;; This module defines a procedure that can be used to create a complete +;;; avr-toolchain package. The procedure must not be used at the top level, +;;; to avoid cyclic module dependencies caused by the (gnu packages +;;; cross-base) module referring to top level bindings from (gnu packages +;;; gcc). +;;; +;;; It also contains packages for working with or targeting the AVR system. +;;; -(define avr-gcc - (let ((xgcc (cross-gcc "avr" #:xbinutils avr-binutils))) +(define make-avr-binutils + (mlambda () (package - (inherit xgcc) - (name "avr-gcc") - (arguments - (substitute-keyword-arguments (package-arguments xgcc) - ((#:phases phases) - #~(modify-phases #$phases - (add-after 'set-paths 'augment-CPLUS_INCLUDE_PATH - (lambda* (#:key inputs #:allow-other-keys) - (let ((gcc (assoc-ref inputs "gcc"))) - ;; Remove the default compiler from CPLUS_INCLUDE_PATH to - ;; prevent header conflict with the GCC from native-inputs. - (setenv "CPLUS_INCLUDE_PATH" - (string-join - (delete (string-append gcc "/include/c++") - (string-split (getenv "CPLUS_INCLUDE_PATH") - #\:)) - ":")) - (format #t - "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%" - (getenv "CPLUS_INCLUDE_PATH"))))) - ;; Without a working multilib build, the resulting GCC lacks - ;; support for nearly every AVR chip. - (add-after 'unpack 'fix-genmultilib - (lambda _ - ;; patch-shebang doesn't work here because there are actually - ;; several scripts inside this script, each with a #!/bin/sh - ;; that needs patching. - (substitute* "gcc/genmultilib" - (("#!/bin/sh") (string-append "#!" (which "sh")))))))) - ((#:configure-flags flags) - #~(delete "--disable-multilib" #$flags)))) - (native-search-paths - (list (search-path-specification - (variable "CROSS_C_INCLUDE_PATH") - (files '("avr/include"))) - (search-path-specification - (variable "CROSS_CPLUS_INCLUDE_PATH") - (files '("avr/include"))) - (search-path-specification - (variable "CROSS_OBJC_INCLUDE_PATH") - (files '("avr/include"))) - (search-path-specification - (variable "CROSS_OBJCPLUS_INCLUDE_PATH") - (files '("avr/include"))) - (search-path-specification - (variable "CROSS_LIBRARY_PATH") - (files '("avr/lib"))))) - (native-inputs - `(("gcc" ,gcc) - ,@(package-native-inputs xgcc)))))) + (inherit (cross-binutils "avr")) + (name "avr-binutils")))) -(define avr-libc - (package - (name "avr-libc") - (version "2.0.0") - (source (origin - (method url-fetch) - (uri (string-append "mirror://savannah//avr-libc/avr-libc-" - version ".tar.bz2")) - (sha256 - (base32 - "15svr2fx8j6prql2il2fc0ppwlv50rpmyckaxx38d3gxxv97zpdj")))) - (build-system gnu-build-system) - (arguments - '(#:out-of-source? #t - #:configure-flags '("--host=avr"))) - (native-inputs `(("avr-binutils" ,avr-binutils) - ("avr-gcc" ,avr-gcc))) - (home-page "https://www.nongnu.org/avr-libc/") - (synopsis "The AVR C Library") - (description - "AVR Libc is a project whose goal is to provide a high quality C library -for use with GCC on Atmel AVR microcontrollers.") - (license - (license:non-copyleft "http://www.nongnu.org/avr-libc/LICENSE.txt")))) +(define make-avr-gcc + (mlambda () + (let ((xgcc (cross-gcc "avr" #:xbinutils (make-avr-binutils)))) + (package + (inherit xgcc) + (name "avr-gcc") + (arguments + (substitute-keyword-arguments (package-arguments xgcc) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'set-paths 'augment-CPLUS_INCLUDE_PATH + (lambda* (#:key inputs #:allow-other-keys) + (let ((gcc (assoc-ref inputs "gcc"))) + ;; Remove the default compiler from CPLUS_INCLUDE_PATH + ;; to prevent header conflict with the GCC from + ;; native-inputs. + (setenv "CPLUS_INCLUDE_PATH" + (string-join + (delete (string-append gcc "/include/c++") + (string-split (getenv "CPLUS_INCLUDE_PATH") + #\:)) + ":")) + (format #t + "environment variable `CPLUS_INCLUDE_PATH' \ +changed to ~a~%" + (getenv "CPLUS_INCLUDE_PATH"))))) + ;; Without a working multilib build, the resulting GCC lacks + ;; support for nearly every AVR chip. + (add-after 'unpack 'fix-genmultilib + (lambda _ + ;; patch-shebang doesn't work here because there are + ;; actually several scripts inside this script, each with + ;; a #!/bin/sh that needs patching. + (substitute* "gcc/genmultilib" + (("#!/bin/sh") (string-append "#!" (which "sh")))))))) + ((#:configure-flags flags) + #~(delete "--disable-multilib" #$flags)))) + (native-search-paths + (list (search-path-specification + (variable "CROSS_C_INCLUDE_PATH") + (files '("avr/include"))) + (search-path-specification + (variable "CROSS_CPLUS_INCLUDE_PATH") + (files '("avr/include"))) + (search-path-specification + (variable "CROSS_OBJC_INCLUDE_PATH") + (files '("avr/include"))) + (search-path-specification + (variable "CROSS_OBJCPLUS_INCLUDE_PATH") + (files '("avr/include"))) + (search-path-specification + (variable "CROSS_LIBRARY_PATH") + (files '("avr/lib"))))) + (native-inputs + `(("gcc" ,gcc) + ,@(package-native-inputs xgcc))))))) -(define-public avr-toolchain - ;; avr-libc checks the compiler version and passes "--enable-device-lib" for avr-gcc > 5.1.0. - ;; It wouldn't install the library for atmega32u4 etc if we didn't use the corret avr-gcc. - (package - (name "avr-toolchain") - (version (package-version avr-gcc)) - (source #f) - (build-system trivial-build-system) - (arguments '(#:builder (begin (mkdir %output) #t))) - (propagated-inputs - `(("avrdude" ,avrdude) - ("binutils" ,avr-binutils) - ("gcc" ,avr-gcc) - ("libc" ,avr-libc))) - (synopsis "Complete GCC tool chain for AVR microcontroller development") - (description "This package provides a complete GCC tool chain for AVR +(define make-avr-libc + (mlambda () + (package + (name "avr-libc") + (version "2.0.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://savannah//avr-libc/avr-libc-" + version ".tar.bz2")) + (sha256 + (base32 + "15svr2fx8j6prql2il2fc0ppwlv50rpmyckaxx38d3gxxv97zpdj")))) + (build-system gnu-build-system) + (arguments + '(#:out-of-source? #t + #:configure-flags '("--host=avr"))) + (native-inputs `(("avr-binutils" ,(make-avr-binutils)) + ("avr-gcc" ,(make-avr-gcc)))) + (home-page "https://www.nongnu.org/avr-libc/") + (synopsis "The AVR C Library") + (description + "AVR Libc is a project whose goal is to provide a high quality C +library for use with GCC on Atmel AVR microcontrollers.") + (license + (license:non-copyleft "http://www.nongnu.org/avr-libc/LICENSE.txt"))))) + +(define make-avr-toolchain + (mlambda () + (let ((avr-binutils (make-avr-binutils)) + (avr-libc (make-avr-libc)) + (avr-gcc (make-avr-gcc))) + ;; avr-libc checks the compiler version and passes "--enable-device-lib" + ;; for avr-gcc > 5.1.0. It wouldn't install the library for atmega32u4 + ;; etc if we didn't use the corret avr-gcc. + (package + (name "avr-toolchain") + (version (package-version avr-gcc)) + (source #f) + (build-system trivial-build-system) + (arguments '(#:builder (begin (mkdir %output) #t))) + (propagated-inputs + `(("avrdude" ,avrdude) + ("binutils" ,avr-binutils) + ("gcc" ,avr-gcc) + ("libc" ,avr-libc))) + (synopsis "Complete GCC tool chain for AVR microcontroller development") + (description "This package provides a complete GCC tool chain for AVR microcontroller development. This includes the GCC AVR cross compiler and avrdude for firmware flashing. The supported programming languages are C and C++.") - (home-page (package-home-page avr-libc)) - (license (package-license avr-gcc)))) + (home-page (package-home-page avr-libc)) + (license (package-license avr-gcc)))))) (define-public microscheme (package diff --git a/gnu/packages/axoloti.scm b/gnu/packages/axoloti.scm index e0dd22c627..7b36922860 100644 --- a/gnu/packages/axoloti.scm +++ b/gnu/packages/axoloti.scm @@ -199,7 +199,7 @@ ;; for compiling patches ("make" ,gnu-make) ;; for compiling firmware - ("cross-toolchain" ,arm-none-eabi-nano-toolchain-4.9) + ("cross-toolchain" ,(make-arm-none-eabi-nano-toolchain-4.9)) ;; for uploading compiled patches and firmware ("dfu-util" ,dfu-util-for-axoloti))) (native-inputs @@ -339,7 +339,7 @@ runtime.") (assoc-ref ant:%standard-phases 'strip-jar-timestamps))))) (inputs `(("icedtea" ,icedtea "jdk") - ("cross-toolchain" ,arm-none-eabi-nano-toolchain-4.9) + ("cross-toolchain" ,(make-arm-none-eabi-nano-toolchain-4.9)) ("java-simple-xml" ,java-simple-xml) ("java-rsyntaxtextarea" ,java-rsyntaxtextarea) ("java-usb4java" ,java-usb4java) @@ -572,7 +572,7 @@ patcher application."))) (assoc-ref ant:%standard-phases 'strip-jar-timestamps))))) (inputs `(("jdk" ,icedtea "jdk") - ("cross-toolchain" ,arm-none-eabi-nano-toolchain-7-2018-q2-update) + ("cross-toolchain" ,(make-arm-none-eabi-nano-toolchain-7-2018-q2-update)) ;; for compiling patches ("make" ,gnu-make) ;; for uploading compiled patches and firmware diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index ccee9d1f60..cb0bdf766e 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -6687,7 +6687,7 @@ performance.") (define-public htscodecs (package (name "htscodecs") - (version "1.5.0") + (version "1.5.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/samtools/htscodecs/" @@ -6695,7 +6695,7 @@ performance.") version "/htscodecs-" version ".tar.gz")) (sha256 (base32 - "1cys6hp438m1rfmgq6xig3q0md7nh0m03jb17mc798q13lsggpil")))) + "0nykdf08wil6iiihgf5qlb04n70yv4zqqj7c27vpnpwpr2r2ns62")))) (build-system gnu-build-system) (inputs (list bzip2 zlib)) (home-page "https://github.com/samtools/htscodecs") @@ -6721,7 +6721,11 @@ name/ID compression and quality score compression derived from fqzcomp.") version "/htslib-" version ".tar.bz2")) (sha256 (base32 - "093r1n4s134k50m9a925yn95gyi90ps5dlgc6gq4qwvkzxx7qsv0")))) + "093r1n4s134k50m9a925yn95gyi90ps5dlgc6gq4qwvkzxx7qsv0")) + (snippet + #~(begin + (use-modules (guix build utils)) + (delete-file-recursively "htscodecs"))))) (build-system gnu-build-system) ;; Let htslib translate "gs://" and "s3://" to regular https links with ;; "--enable-gcs" and "--enable-s3". For these options to work, we also @@ -6729,12 +6733,13 @@ name/ID compression and quality score compression derived from fqzcomp.") (arguments `(#:configure-flags '("--enable-gcs" "--enable-libcurl" - "--enable-s3"))) + "--enable-s3" + "--with-external-htscodecs"))) (inputs (list bzip2 curl openssl xz)) ;; This is referred to in the pkg-config file as a required library. (propagated-inputs - (list zlib)) + (list htscodecs zlib)) (native-inputs (list perl)) (home-page "https://www.htslib.org") @@ -6757,7 +6762,14 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and version "/htslib-" version ".tar.bz2")) (sha256 (base32 - "0pwk8yhhvb85mi1d2qhwsb4samc3rmbcrq7b1s0jz0glaa7in8pd")))))) + "0pwk8yhhvb85mi1d2qhwsb4samc3rmbcrq7b1s0jz0glaa7in8pd")))) + (arguments + (substitute-keyword-arguments (package-arguments htslib) + ((#:configure-flags cf #~'()) + #~(delete "--with-external-htscodecs" #$cf)))) + (propagated-inputs + (modify-inputs (package-propagated-inputs htslib) + (delete "htscodecs"))))) (define-public htslib-1.12 (package/inherit htslib @@ -6769,7 +6781,14 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and version "/htslib-" version ".tar.bz2")) (sha256 (base32 - "1jplnvizgr0fyyvvmkfmnsywrrpqhid3760vw15bllz98qdi9012")))))) + "1jplnvizgr0fyyvvmkfmnsywrrpqhid3760vw15bllz98qdi9012")))) + (arguments + (substitute-keyword-arguments (package-arguments htslib) + ((#:configure-flags cf #~'()) + #~(delete "--with-external-htscodecs" #$cf)))) + (propagated-inputs + (modify-inputs (package-propagated-inputs htslib) + (delete "htscodecs"))))) (define-public htslib-1.10 (package/inherit htslib @@ -11732,7 +11751,7 @@ replacement for strverscmp.") (copy-recursively (assoc-ref inputs "tests") "/tmp/tests") (with-directory-excursion "/tmp/tests" (invoke "multiqc" "data" "--ignore" "data/modules"))))))))) - (propagated-inputs + (inputs (list python-click python-coloredlogs python-future @@ -16412,7 +16431,11 @@ genomic scores), long range contacts and the visualization of viewpoints.") (lambda _ (substitute* "setup.py" (("matplotlib ==3.1.1") - "matplotlib >=3.1.1"))))))) + "matplotlib >=3.1.1")))) + (add-after 'unpack 'remove-invalid-syntax + (lambda _ + (substitute* "setup.py" + ((".\\*,") ","))))))) (propagated-inputs (list python-future python-gffutils diff --git a/gnu/packages/bittorrent.scm b/gnu/packages/bittorrent.scm index fde1bd06d8..b357d96fbc 100644 --- a/gnu/packages/bittorrent.scm +++ b/gnu/packages/bittorrent.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2022 Brice Waegeneire <brice@waegenei.re> ;;; Copyright © 2022 Jacob Hart <hartja1@yahoo.com> ;;; Copyright © 2022 Simon Streit <simon@netpanic.org> +;;; Copyright © 2023 Clément Lassieur <clement@lassieur.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -127,7 +128,7 @@ (lambda (dir) (rename-file (string-append #$output "/share/" dir) (string-append #$output:gui "/share/" dir))) - '("applications" "icons" "metainfo" "transmission")) + '("applications" "icons" "metainfo")) (rename-file (string-append #$output "/share/man/man1/transmission-gtk.1") (string-append #$output:gui "/share/man/man1/transmission-gtk.1")))) @@ -135,7 +136,14 @@ (lambda* (#:key outputs #:allow-other-keys #:rest args) (apply (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap) #:glib-or-gtk-wrap-excluded-outputs (list "out") - args)))))) + args))) + (add-after 'glib-or-gtk-wrap 'wrap-program + (lambda* (#:key outputs #:allow-other-keys) + (wrap-program (string-append #$output:gui "/bin/transmission-gtk") + ;; Wrapping GDK_PIXBUF_MODULE_FILE allows Transmission to load + ;; its own icons in pure environments. + `("GDK_PIXBUF_MODULE_FILE" = + (,(getenv "GDK_PIXBUF_MODULE_FILE"))))))))) (inputs (list curl (list glib "bin") gtkmm @@ -452,7 +460,7 @@ desktops.") (define-public qbittorrent (package (name "qbittorrent") - (version "4.5.4") + (version "4.5.5") (source (origin (method git-fetch) @@ -461,7 +469,7 @@ desktops.") (commit (string-append "release-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1r4vqlwmvg7b0ibq53m7ascyykv3v66qxlwfi0zmmi1ig7rlkxkk")))) + (base32 "1ngvvwhafi9mi05r2l9dk9x05za8x35y12p230wpzprydhlgwsxd")))) (build-system qt-build-system) (arguments (list #:configure-flags #~(list "-DTESTING=ON") @@ -486,11 +494,11 @@ qBittorrent is fast, stable and provides unicode support as well as many features.") (license l:gpl2+))) -(define-public qbittorrent-nox +(define-public qbittorrent-no-x (let ((base qbittorrent)) (package (inherit base) - (name "qbittorrent-nox") + (name "qbittorrent-no-x") (arguments (substitute-keyword-arguments (package-arguments base) ((#:configure-flags configure-flags) @@ -499,11 +507,14 @@ features.") (modify-inputs (package-inputs base) (delete "qtsvg-5")))))) +(define-public qbittorrent-nox + (deprecated-package "qbittorrent-nox" qbittorrent-no-x)) + (define-public qbittorrent-enhanced (package (inherit qbittorrent) (name "qbittorrent-enhanced") - (version "4.5.4.10") + (version "4.5.5.10") (source (origin (method git-fetch) @@ -513,7 +524,7 @@ features.") (file-name (git-file-name name version)) (sha256 (base32 - "0qwk69mgcyh7fij4nsi4ndd17aa61p2c6cxn9l402w4cf1dy6hfs")))) + "029crx8yd8apssg2k4alnc0py5i2sp3bhjkwki5fvvnpgkrhfqf0")))) (home-page "https://github.com/c0re100/qBittorrent-Enhanced-Edition") (description "qBittorrent Enhanced is a bittorrent client based on qBittorrent with diff --git a/gnu/packages/browser-extensions.scm b/gnu/packages/browser-extensions.scm index 10af5b9543..3f6da8d77a 100644 --- a/gnu/packages/browser-extensions.scm +++ b/gnu/packages/browser-extensions.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org> +;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,6 +18,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages browser-extensions) + #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix build-system copy) @@ -48,57 +50,88 @@ supported content to the Kodi media center.") (define-public play-to-kodi/chromium (make-chromium-extension play-to-kodi)) +(define ublock-main-assets + ;; Arbitrary commit of branch master, + ;; Update when updating uBlockOrigin. + (let* ((name "ublock-main-assets") + (commit "c8783488f377723165e3661062bd124ae6d57165") + (revision "0") + (version (git-version "0" revision commit))) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/uBlockOrigin/uAssets") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1b6a1m6s060r49vg563f32rsy057af6i4jcyprym4sdci3z90nls"))))) + +(define ublock-prod-assets + ;; Arbitrary commit of branch gh-pages, + ;; Update when updating uBlockOrigin. + (let* ((name "ublock-prod-assets") + (commit "fbcfe9229ab6b865ef349c01a4eac73943be8418") + (revision "0") + (version (git-version "0" revision commit))) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/uBlockOrigin/uAssets") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0s5rvaz8lc9lk44yfc8463vah8yppy1ybmag0dpd4m1hyj6165h0"))))) + (define ublock-origin (package (name "ublock-origin") - (version "1.45.2") + (version "1.51.0") (home-page "https://github.com/gorhill/uBlock") (source (origin (method git-fetch) - (uri (git-reference (url home-page) (commit version) - ;; Also fetch the tightly coupled - ;; "uAssets" submodule. - (recursive? #t))) + (uri (git-reference + (url home-page) + (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "0dz1rcphm8cbc2qdd41ahbsqskmqcf2ja6zx0vq0dswnakpc3lyd")))) + "1i8rnij3sbwg6vj6znprrsca0n5xjzhmhppaa8v6jyxg6wrrfch1")))) (build-system gnu-build-system) (outputs '("xpi" "firefox" "chromium")) (arguments - '(#:tests? #f ;no tests - #:allowed-references () - #:phases - (modify-phases (map (lambda (phase) - (assq phase %standard-phases)) - '(set-paths unpack patch-source-shebangs)) - (add-after 'unpack 'do-not-depend-on-git - (lambda _ - ;; The script attempts to checkout the uAssets submodule, - ;; but we already did so with git-fetch. - (substitute* "tools/make-assets.sh" - (("^git submodule update.*") - "")))) - (add-after 'unpack 'make-files-writable - (lambda _ - ;; The build system copies some files and later tries - ;; modifying them. - (for-each make-file-writable (find-files ".")))) - (add-after 'patch-source-shebangs 'build-xpi - (lambda _ - (invoke "./tools/make-firefox.sh" "all"))) - (add-after 'build-xpi 'build-chromium - (lambda _ - (invoke "./tools/make-chromium.sh"))) - (add-after 'build-chromium 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((firefox (assoc-ref outputs "firefox")) - (xpi (assoc-ref outputs "xpi")) - (chromium (assoc-ref outputs "chromium"))) - (install-file "dist/build/uBlock0.firefox.xpi" - (string-append xpi "/lib/mozilla/extensions")) - (copy-recursively "dist/build/uBlock0.firefox" firefox) - (copy-recursively "dist/build/uBlock0.chromium" chromium))))))) + (list + #:tests? #f ;no tests + #:allowed-references '() + #:phases + #~(modify-phases (map (lambda (phase) + (assq phase %standard-phases)) + '(set-paths unpack patch-source-shebangs)) + (add-after 'unpack 'do-not-depend-on-git + (lambda _ + (mkdir-p "dist/build/uAssets/main") + (copy-recursively #$ublock-main-assets "dist/build/uAssets/main") + (mkdir-p "dist/build/uAssets/prod") + (copy-recursively #$ublock-prod-assets "dist/build/uAssets/prod"))) + (add-after 'unpack 'make-files-writable + (lambda _ + ;; The build system copies some files and later tries + ;; modifying them. + (for-each make-file-writable (find-files ".")))) + (add-after 'patch-source-shebangs 'build-xpi + (lambda _ + (invoke "./tools/make-firefox.sh" "all"))) + (add-after 'build-xpi 'build-chromium + (lambda _ + (invoke "./tools/make-chromium.sh"))) + (add-after 'build-chromium 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((firefox (assoc-ref outputs "firefox")) + (xpi (assoc-ref outputs "xpi")) + (chromium (assoc-ref outputs "chromium"))) + (install-file "dist/build/uBlock0.firefox.xpi" + (string-append xpi "/lib/mozilla/extensions")) + (copy-recursively "dist/build/uBlock0.firefox" firefox) + (copy-recursively "dist/build/uBlock0.chromium" chromium))))))) (native-inputs (list python-wrapper zip)) (synopsis "Block unwanted content from web sites") diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index f38dd4383d..848e008b3b 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -142,7 +142,7 @@ (inputs (list guile-3.0-latest guile-avahi - guile-fibers-1.3 + guile-fibers guile-gcrypt guile-json-4 guile-simple-zmq diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index a982e111e9..071f1b9e38 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -623,7 +623,7 @@ results and determine build stability.") (define-public kcov (package (name "kcov") - (version "40") + (version "42") (source (origin (method git-fetch) (uri (git-reference @@ -632,7 +632,7 @@ results and determine build stability.") (file-name (git-file-name name version)) (sha256 (base32 - "0zayhmx6s377bxmkmvl9d9vjzfbpvh1k9ba6np4zdjvjjq327xag")))) + "14pyahpgadh845q2p1gjw2yrlqcan4n870icrn2yqdpf33cprzgk")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; no test target @@ -640,10 +640,9 @@ results and determine build stability.") (modify-phases %standard-phases (add-after 'unpack 'fix-/bin/bash-references (lambda* (#:key inputs #:allow-other-keys) - (let ((bash (assoc-ref inputs "bash"))) (substitute* (find-files "src" ".*\\.cc?$") (("/bin/(bash|sh)" shell) - (string-append (assoc-ref inputs "bash") shell))))))))) + (search-input-file inputs shell)))))))) (inputs (list curl elfutils libelf openssl zlib)) (native-inputs @@ -835,54 +834,54 @@ Objective@tie{}C, D, Java, Pawn, and Vala). Features: (define-public astyle (package (name "astyle") - (version "3.1") + (version "3.4.8") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/astyle/astyle/astyle%20" version "/astyle_" version "_linux.tar.gz")) (sha256 - (base32 - "1ms54wcs7hg1bsywqwf2lhdfizgbk7qxc9ghasxk8i99jvwlrk6b")))) + (base32 "1ms54wcs7hg1bsywqwf2lhdfizgbk7qxc9ghasxk8i99jvwlrk6b")))) (build-system gnu-build-system) (arguments - `(#:tests? #f ;no tests - #:make-flags (list (string-append "prefix=" %output) - "INSTALL=install" - "all") - #:modules ((guix build gnu-build-system) ;; FIXME use %default-modules + (list + #:tests? #f ;no tests + #:make-flags + #~(list (string-append "prefix=" #$output) + "INSTALL=install" + "release" "shared") + #:modules '((guix build gnu-build-system) ;FIXME use %default-modules (guix build utils) (ice-9 regex)) - #:phases - (modify-phases %standard-phases - (replace 'configure - (lambda _ (chdir "build/gcc") #t)) - (add-after 'install 'install-libs - (lambda* (#:key outputs #:allow-other-keys) - ;; Libraries and includes are not installed by default - (let* ((output (assoc-ref outputs "out")) - (incdir (string-append output "/include")) - (libdir (string-append output "/lib"))) - (define (make-so-link sofile strip-pattern) - (symlink - (basename sofile) - (regexp-substitute #f - (string-match strip-pattern sofile) - 'pre))) - (mkdir-p incdir) - (copy-file "../../src/astyle.h" - (string-append incdir "/astyle.h")) - (mkdir-p libdir) - (for-each (lambda (l) - (copy-file - l (string-append libdir "/" (basename l)))) - (find-files "bin" "lib*")) - (for-each - (lambda (sofile) - (make-so-link sofile "(\\.[0-9]){3}$") ;; link .so - (make-so-link sofile "(\\.[0-9]){2}$")) ;; link .so.3 - (find-files libdir "lib.*\\.so\\..*"))) - #t))))) + #:phases + #~(modify-phases %standard-phases + (replace 'configure + (lambda _ + (chdir "build/gcc"))) + (add-after 'install 'install-more + (lambda* (#:key outputs #:allow-other-keys) + ;; Libraries and headers aren't installed by default. + (let ((include (string-append #$output "/include")) + (lib (string-append #$output "/lib"))) + (define (link.so file strip-pattern) + (symlink + (basename file) + (regexp-substitute #f + (string-match strip-pattern file) + 'pre))) + (mkdir-p include) + (copy-file "../../src/astyle.h" + (string-append include "/astyle.h")) + (mkdir-p lib) + (for-each (lambda (l) + (copy-file + l (string-append lib "/" (basename l)))) + (find-files "bin" "^lib.*\\.so")) + (for-each + (lambda (file) + (link.so file "(\\.[0-9]+){3}$") ;.so + (link.so file "(\\.[0-9]+){2}$")) ;.so.3 + (find-files lib "lib.*\\.so\\..*")))))))) (home-page "https://astyle.sourceforge.net/") (synopsis "Source code indenter, formatter, and beautifier") (description diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 9604f06a47..80fdb5aed7 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -3635,6 +3635,9 @@ is the GNU Compiler Collection.") (define-public gcc-toolchain-12 (make-gcc-toolchain gcc-12)) +(define-public gcc-toolchain-13 + (make-gcc-toolchain gcc-13)) + (define-public gcc-toolchain-aka-gcc ;; It's natural for users to try "guix install gcc". This package ;; automatically "redirects" them to 'gcc-toolchain'. diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index beaac3fccb..75cf8ae1a6 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -542,7 +542,7 @@ than gzip and 15 % smaller output than bzip2.") (define-public lhasa (package (name "lhasa") - (version "0.3.1") + (version "0.4.0") (source (origin (method url-fetch) (uri (string-append @@ -550,26 +550,25 @@ than gzip and 15 % smaller output than bzip2.") version "/lhasa-" version ".tar.gz")) (sha256 (base32 - "092zi9av18ma20c6h9448k0bapvx2plnp292741dvfd9hmgqxc1z")))) + "1cy5429c7h1dp4l5y9ncdy40qarl9ix31ylkzdi8al2c60y8iz57")))) (build-system gnu-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (add-before 'check 'set-up-test-environment - (lambda* (#:key inputs #:allow-other-keys) - (setenv "TZDIR" - (search-input-directory inputs - "share/zoneinfo"))))))) - (native-inputs - (list tzdata-for-tests)) - (home-page "https://fragglet.github.com/lhasa/") + (list #:phases #~(modify-phases %standard-phases + (add-before 'check 'set-up-test-environment + (lambda* (#:key inputs #:allow-other-keys) + (setenv "TZDIR" + (search-input-directory inputs + "share/zoneinfo"))))))) + (native-inputs (list tzdata-for-tests)) + (home-page "https://fragglet.github.io/lhasa/") (synopsis "LHA archive decompressor") - (description "Lhasa is a replacement for the Unix LHA tool, for -decompressing .lzh (LHA / LHarc) and .lzs (LArc) archives. The backend for the -tool is a library, so that it can be reused for other purposes. Lhasa aims to -be compatible with as many types of lzh/lzs archives as possible. It also aims -to generate the same output as the (non-free) Unix LHA tool, so that it will -act as a free drop-in replacement.") + (description + "Lhasa is a replacement for the Unix LHa tool, for decompressing +@file{.lzh} (LHA / LHarc) and .lzs (LArc) archives. The backend for the tool is +a library, so that it can be reused for other purposes. Lhasa aims to be +compatible with as many types of @file{.lzh}/@file{lzs} archives as possible. +It also aims to generate the same output as the (non-free) Unix @command{lha} +tool, so that it will act as a free drop-in replacement.") (license license:isc))) (define-public lzo @@ -1106,7 +1105,7 @@ tarballs.") (define-public libjcat (package (name "libjcat") - (version "0.1.12") + (version "0.1.14") (source (origin (method git-fetch) @@ -1116,7 +1115,7 @@ tarballs.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0fbcmnpc0y7s2ls3q829dv3ardhv0m5gxqqmbn0dnkzgkh42vv7p")))) + (base32 "0dhyqhs2lg9ka47n8d1lalvic2m3rn5k6mya9bjyw242smkgzpjw")))) (build-system meson-build-system) (native-inputs (list gobject-introspection help2man pkg-config)) @@ -2670,7 +2669,7 @@ to their original, binary CD format.") (define-public libdeflate (package (name "libdeflate") - (version "1.15") + (version "1.19") (source (origin (method git-fetch) (uri (git-reference @@ -2679,7 +2678,7 @@ to their original, binary CD format.") (file-name (git-file-name name version)) (sha256 (base32 - "001l1xdc3k1dfjvl3ng480ydz0rnyvlhv54l5mshg2p9v4iz3v09")))) + "033d8jcaissiy3mk07wx6dap17c1xl768xy75righ22ggmm7c1hy")))) (build-system cmake-build-system) (arguments (list #:configure-flags diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm index 4ee7f375d7..7d9eb2a264 100644 --- a/gnu/packages/cpp.scm +++ b/gnu/packages/cpp.scm @@ -37,6 +37,7 @@ ;;; Copyright © 2023 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; Copyright © 2023 Liliana Marie Prikler <liliana.prikler@gmail.com> ;;; Copyright © 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -223,6 +224,34 @@ range-v3 ranges are an abstraction layer on top of iterators.") ;; Others license:boost1.0)))) +(define-public robin-hood-hashing + (package + (name "robin-hood-hashing") + (version "3.11.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/martinus/robin-hood-hashing") + (commit version))) + (modules '((guix build utils))) + (snippet #~(delete-file-recursively "src/test/thirdparty")) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qx6i09sp8c3l89mhyaql144nzh2h26ky9ms3n5l85qplx1vv2r7")))) + (build-system cmake-build-system) + (arguments + (list #:tests? #f ;; Needs bundled libraries for tests. + ;; By default this option is set to ON and removes the ability to + ;; install the library. + #:configure-flags + #~(list "-DRH_STANDALONE_PROJECT=OFF"))) + (home-page "https://github.com/martinus/robin-hood-hashing") + (synopsis "Unordered set and map data structures library") + (description "This library provides a header-only unordered set and map +data structures for C++.") + (license license:expat))) + (define-public c++-gsl (package (name "c++-gsl") @@ -2019,6 +2048,20 @@ validation.") (home-page "https://github.com/simdjson/simdjson") (license license:asl2.0))) +(define-public simdjson-0.6 + (package + (inherit simdjson) + (version "0.6.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/simdjson/simdjson") + (commit (string-append "v" version)))) + (file-name (git-file-name (package-name simdjson) version)) + (sha256 + (base32 + "038i9nmk85vpxvs546w6cyci0ppdrrp5wnlv1kffxw29x71a3g5l")))))) + (define-public bloomberg-bde-tools (let ((commit "f63dfe9114cd7df29623bd01f644b9f654253972")) (package diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 3c83563c45..7dba764950 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -31,6 +31,7 @@ ;;; Copyright © 2022 Greg Hogan <code@greghogan.com> ;;; Copyright © 2022 Paul A. Patience <paul@apatience.com> ;;; Copyright © 2022 Paul Alesius <paul@unnservice.com> +;;; Copyright © 2023 Arnav Andrew Jose <arnav.jose@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -15421,6 +15422,41 @@ conversion factors for even more numerous measurement units (meter, kilometer, f mile, ...).") (license (list license:expat license:asl2.0)))) +(define-public rust-cradle-0.2 + (package + (name "rust-cradle") + (version "0.2.2") + (source (origin + (method url-fetch) + (uri (crate-uri "cradle" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "16n04y60jps91dsw5fs6p8zash052y82aclg57kkvm9320n155kh")) + (modules '((guix build utils))) + (snippet + '(begin (substitute* "Cargo.toml" + (("version = \"=") "version = \"^")))))) + (build-system cargo-build-system) + (arguments + `(#:tests? #f ; Not all files included. + #:cargo-inputs + (("rust-executable-path" ,rust-executable-path-1) + ("rust-gag" ,rust-gag-0.1) + ("rust-nix" ,rust-nix-0.22) + ("rust-rustversion" ,rust-rustversion-1)) + #:cargo-development-inputs + (("rust-bitflags" ,rust-bitflags-1) + ("rust-executable-path" ,rust-executable-path-1) + ("rust-lazy-static" ,rust-lazy-static-1) + ("rust-pretty-assertions" ,rust-pretty-assertions-1) + ("rust-tempfile" ,rust-tempfile-3) + ("rust-unindent" ,rust-unindent-0.1)))) + (home-page "https://github.com/soenkehahn/cradle") + (synopsis "Execute child processes with ease") + (description "Execute child processes with ease.") + (license license:cc0))) + (define-public rust-crates-index-0.18 (package (name "rust-crates-index") @@ -20966,6 +21002,37 @@ Rust.") ("rust-regex" ,rust-regex-0.2) ("rust-syn" ,rust-syn-0.11)))))) +(define-public rust-dotenvy-0.15 + (package + (name "rust-dotenvy") + (version "0.15.7") + (source (origin + (method url-fetch) + (uri (crate-uri "dotenvy" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "16s3n973n5aqym02692i1npb079n5mb0fwql42ikmwn8wnrrbbqs")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-test-flags + ;; Not all files included. + '("--release" "--" + "--skip=dotenv" + "--skip=dotenv_iter" + "--skip=dotenv_override" + "--skip=from_filename" + "--skip=from_filename_override") + #:cargo-inputs + (("rust-clap" ,rust-clap-3)) + #:cargo-development-inputs + (("rust-once-cell" ,rust-once-cell-1) + ("rust-tempfile" ,rust-tempfile-3)))) + (home-page "https://github.com/allan2/dotenvy") + (synopsis "Fork of the dotenv crate") + (description "This package provides a fork of the dotenv crate.") + (license license:expat))) + (define-public rust-draw-state-0.8 (package (name "rust-draw-state") @@ -23179,6 +23246,23 @@ You can use this crate to turn non-blocking data structures into async or blocking data structures.") (license (list license:asl2.0 license:expat)))) +(define-public rust-executable-path-1 + (package + (name "rust-executable-path") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (crate-uri "executable-path" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0y0lhhrx9f9q1f81am3b20f8znixjcvqfg7kx220pjg3i5nmmg1y")))) + (build-system cargo-build-system) + (home-page "https://github.com/casey/rust-executable-path") + (synopsis "Get the path of a binary target's executable") + (description "Get the path of a binary target's executable.") + (license license:cc0))) + (define-public rust-executors-0.9 (package (name "rust-executors") @@ -34534,6 +34618,23 @@ a no_std environment. This does not depend on any standard library features, nor a system allocator.") (license (list license:expat license:asl2.0)))) +(define-public rust-lexiclean-0.0.1 + (package + (name "rust-lexiclean") + (version "0.0.1") + (source (origin + (method url-fetch) + (uri (crate-uri "lexiclean" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1rb8sky7gi75a7xxn6xrfkrbqkp465npm54p5s89ysqhgc0ja4j4")))) + (build-system cargo-build-system) + (home-page "https://github.com/casey/lexiclean") + (synopsis "Lexically clean paths") + (description "Lexically clean paths") + (license license:cc0))) + (define-public rust-lexopt-0.3 (package (name "rust-lexopt") @@ -62802,21 +62903,22 @@ monotone matrix.") clone.") (license (list license:expat license:asl2.0)))) -(define-public rust-snafu-derive-0.6 +(define-public rust-snafu-derive-0.7 (package (name "rust-snafu-derive") - (version "0.6.10") - (source - (origin - (method url-fetch) - (uri (crate-uri "snafu-derive" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 "0nri7ma06g5kimpcdcm8359a55nmps5f3kcngy0j6bin7jhfy20m")))) + (version "0.7.5") + (source (origin + (method url-fetch) + (uri (crate-uri "snafu-derive" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1gzy9rzggs090zf7hfvgp4lm1glrmg9qzh796686jnq7bxk7j04r")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs - (("rust-proc-macro2" ,rust-proc-macro2-1) + (("rust-heck" ,rust-heck-0.4) + ("rust-proc-macro2" ,rust-proc-macro2-1) ("rust-quote" ,rust-quote-1) ("rust-syn" ,rust-syn-1)))) (home-page "https://github.com/shepmaster/snafu") @@ -62825,32 +62927,70 @@ clone.") package provides derive macros.") (license (list license:expat license:asl2.0)))) -(define-public rust-snafu-0.6 +(define-public rust-snafu-derive-0.6 (package - (name "rust-snafu") + (inherit rust-snafu-derive-0.7) + (name "rust-snafu-derive") (version "0.6.10") (source (origin (method url-fetch) - (uri (crate-uri "snafu" version)) + (uri (crate-uri "snafu-derive" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "19wwqxwb85pl040qk5xylj0vlznib3xzy9hcv2q0h8qv4qy2vcga")))) + (base32 "0nri7ma06g5kimpcdcm8359a55nmps5f3kcngy0j6bin7jhfy20m")))) + (arguments + `(#:cargo-inputs + (("rust-proc-macro2" ,rust-proc-macro2-1) + ("rust-quote" ,rust-quote-1) + ("rust-syn" ,rust-syn-1)))))) + +(define-public rust-snafu-0.7 + (package + (name "rust-snafu") + (version "0.7.5") + (source (origin + (method url-fetch) + (uri (crate-uri "snafu" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1mj2j2gfbf8mm1hr02zrbrqrh2zp01f61xgkx0lpln2w0ankgpp4")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs (("rust-backtrace" ,rust-backtrace-0.3) ("rust-doc-comment" ,rust-doc-comment-0.3) ("rust-futures" ,rust-futures-0.3) - ("rust-futures" ,rust-futures-0.1) ("rust-futures-core" ,rust-futures-core-0.3) - ("rust-pin-project" ,rust-pin-project-0.4) - ("rust-snafu-derive" ,rust-snafu-derive-0.6)))) + ("rust-pin-project" ,rust-pin-project-1) + ("rust-snafu-derive" ,rust-snafu-derive-0.7)))) (home-page "https://github.com/shepmaster/snafu") (synopsis "Ergonomic error handling library") (description "Snafu aims to be an ergonomic error handling library.") (license (list license:expat license:asl2.0)))) +(define-public rust-snafu-0.6 + (package + (inherit rust-snafu-0.7) + (name "rust-snafu") + (version "0.6.10") + (source (origin + (method url-fetch) + (uri (crate-uri "snafu" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "19wwqxwb85pl040qk5xylj0vlznib3xzy9hcv2q0h8qv4qy2vcga")))) + (arguments + `(#:cargo-inputs + (("rust-backtrace" ,rust-backtrace-0.3) + ("rust-doc-comment" ,rust-doc-comment-0.3) + ("rust-futures" ,rust-futures-0.3) + ("rust-futures" ,rust-futures-0.1) + ("rust-futures-core" ,rust-futures-core-0.3) + ("rust-pin-project" ,rust-pin-project-0.4) + ("rust-snafu-derive" ,rust-snafu-derive-0.6)))))) + (define-public rust-snap-1 (package (name "rust-snap") @@ -65028,22 +65168,25 @@ struct.") "Parse command line argument by defining a struct, derive crate.") (license (list license:asl2.0 license:expat)))) -(define-public rust-strum-0.21 +(define-public rust-strum-0.24 (package (name "rust-strum") - (version "0.21.0") + (version "0.24.1") (source (origin (method url-fetch) (uri (crate-uri "strum" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "1qnd2by1zrwgx7li0hmwy7jbzjwz1ky697qjg85nga8zzny6py5a")))) + (base32 "0gz6cjhlps5idwasznklxdh2zsas6mxf99vr0n27j876q12n0gh6")))) (build-system cargo-build-system) (arguments - `(#:skip-build? #t + `(#:tests? #f ; Doc tests fail. #:cargo-inputs - (("rust-strum-macros" ,rust-strum-macros-0.21)))) + (("rust-phf" ,rust-phf-0.10) + ("rust-strum-macros" ,rust-strum-macros-0.24)) + #:cargo-development-inputs + (("rust-strum-macros" ,rust-strum-macros-0.24)))) (home-page "https://github.com/Peternator7/strum") (synopsis "Set of traits for working with enums and strings") (description @@ -65051,6 +65194,23 @@ struct.") easier in Rust.") (license license:expat))) +(define-public rust-strum-0.21 + (package + (inherit rust-strum-0.24) + (name "rust-strum") + (version "0.21.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "strum" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1qnd2by1zrwgx7li0hmwy7jbzjwz1ky697qjg85nga8zzny6py5a")))) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-strum-macros" ,rust-strum-macros-0.21)))))) + (define-public rust-strum-0.20 (package (inherit rust-strum-0.21) @@ -65102,31 +65262,53 @@ easier in Rust.") `(#:cargo-inputs (("rust-strum-macros" ,rust-strum-macros-0.18)))))) -(define-public rust-strum-macros-0.21 +(define-public rust-strum-macros-0.24 (package (name "rust-strum-macros") - (version "0.21.1") + (version "0.24.3") (source (origin (method url-fetch) (uri (crate-uri "strum_macros" version)) (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "1v55b1in7dn07s6vxr8dajqpvxkxjbfq6qamnjgcbnq9x3pawsnh")))) + (base32 "0naxz2y38kwq5wgirmia64vvf6qhwy8j367rw966n62gsbh5nf0y")))) (build-system cargo-build-system) (arguments - `(#:skip-build? #t - #:cargo-inputs - (("rust-heck" ,rust-heck-0.3) + `(#:cargo-inputs + (("rust-heck" ,rust-heck-0.4) ("rust-proc-macro2" ,rust-proc-macro2-1) ("rust-quote" ,rust-quote-1) - ("rust-syn" ,rust-syn-1)))) + ("rust-rustversion" ,rust-rustversion-1) + ("rust-syn" ,rust-syn-1)) + #:cargo-development-inputs + (("rust-strum" ,rust-strum-0.24)))) (home-page "https://github.com/Peternator7/strum") (synopsis "Set of macros for working with enums and strings") (description "This crate provides helpful macros for working with enums and strings.") (license license:expat))) +(define-public rust-strum-macros-0.21 + (package + (inherit rust-strum-macros-0.24) + (name "rust-strum-macros") + (version "0.21.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "strum_macros" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1v55b1in7dn07s6vxr8dajqpvxkxjbfq6qamnjgcbnq9x3pawsnh")))) + (arguments + `(#:skip-build? #t + #:cargo-inputs + (("rust-heck" ,rust-heck-0.3) + ("rust-proc-macro2" ,rust-proc-macro2-1) + ("rust-quote" ,rust-quote-1) + ("rust-syn" ,rust-syn-1)))))) + (define-public rust-strum-macros-0.20 (package (inherit rust-strum-macros-0.21) @@ -66682,6 +66864,27 @@ memory all at once.") (license (list license:asl2.0 license:expat)))) +(define-public rust-target-2 + (package + (name "rust-target") + (version "2.0.0") + (source (origin + (method url-fetch) + (uri (crate-uri "target" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0p5hi5vxcs8w95qmg9hsv985g8kaxjrzjlgsybmf4h13a1qjx1ds")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-development-inputs + (("rust-executable-path" ,rust-executable-path-1) + ("rust-pretty-assertions" ,rust-pretty-assertions-0.7)))) + (home-page "https://github.com/casey/target") + (synopsis "Get information on compilation target") + (description "Get information on compilation target.") + (license license:cc0))) + (define-public rust-target-build-utils-0.3 (package (name "rust-target-build-utils") @@ -67524,6 +67727,26 @@ directories.") "This package provides support for Linux-specific tempfile extensions.") (license license:expat))) +(define-public rust-temptree-0.2 + (package + (name "rust-temptree") + (version "0.2.0") + (source (origin + (method url-fetch) + (uri (crate-uri "temptree" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0c461j4xrjp1mz89fb3rmv8w36m1dm1nymv9ny60hh0v4pc99nlg")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-tempfile" ,rust-tempfile-3)))) + (home-page "https://github.com/casey/temptree") + (synopsis "Temporary trees of files") + (description "Temporary trees of files.") + (license license:cc0))) + (define-public rust-tendril-0.4 (package (name "rust-tendril") diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index 9d81a0aa07..647b89dc03 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -514,14 +514,14 @@ should only be used as part of the Guix cups-pk-helper service.") (define-public hplip (package (name "hplip") - (version "3.23.5") + (version "3.23.8") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/hplip/hplip/" version "/hplip-" version ".tar.gz")) (sha256 (base32 - "1j6bjn4zplxl7w15xrc1v5l3p9a0x0345756ahvgq8mi97bmx3pn")) + "0ihv9ddjrjx5bdf8pwc2fvljkpfzq4qi9r2awm8dgky053v0bk7p")) (modules '((guix build utils))) (snippet '(begin diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 210b838b4a..b5077583c3 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -3323,14 +3323,14 @@ Memory-Mapped Database} (LMDB), a high-performance key-value store.") (define-public virtuoso-ose (package (name "virtuoso-ose") - (version "7.2.10") + (version "7.2.11") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/virtuoso/virtuoso/" version "/" "virtuoso-opensource-" version ".tar.gz")) (sha256 - (base32 "03vznas39valis02zk0hnli7x5asiam4rxzqhr58agzkdyb0lay0")) + (base32 "0mk25gr1pafmps4nsydjprwswbzwch8b583nlwh7x2031sz7ald1")) (patches (search-patches "virtuoso-ose-remove-pre-built-jar-files.patch")) (modules '((guix build utils))) ;; This snippet removes pre-built Java archives. diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm index 6e6071e6e6..7d0e58aeae 100644 --- a/gnu/packages/electronics.scm +++ b/gnu/packages/electronics.scm @@ -34,7 +34,6 @@ #:use-module (gnu packages algebra) #:use-module (gnu packages autotools) #:use-module (gnu packages base) - #:use-module (gnu packages bash) #:use-module (gnu packages boost) #:use-module (gnu packages c) #:use-module (gnu packages check) @@ -42,7 +41,6 @@ #:use-module (gnu packages documentation) #:use-module (gnu packages embedded) #:use-module (gnu packages fontutils) - #:use-module (gnu packages gawk) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages graphviz) @@ -123,35 +121,34 @@ to take care of the OS-specific details when writing software that uses serial p (license license:gpl3+)))) (define-public sigrok-firmware-fx2lafw - (package - (name "sigrok-firmware-fx2lafw") - (version "0.1.7") - (source (origin - (method url-fetch) - (uri (string-append - "http://sigrok.org/download/source/sigrok-firmware-fx2lafw/" - "sigrok-firmware-fx2lafw-" version ".tar.gz")) - (sha256 - (base32 - "0fyfd82mvrcf55v5a3afq1mh1kfswk4c37qrbln6x92jm3b41x53")))) - (arguments - `(#:implicit-inputs? #f)) - (native-inputs - `(("awk" ,gawk) - ("bash" ,bash) - ("coreutils" ,coreutils) - ("grep" ,grep) - ("gzip" ,gzip) - ("make" ,gnu-make) - ("sdcc" ,sdcc) - ("sed" ,sed) - ("tar" ,tar))) - (build-system gnu-build-system) - (home-page "https://www.sigrok.org/wiki/Fx2lafw") - (synopsis "Firmware for Cypress FX2 chips") - (description "Fx2lafw is free firmware for Cypress FX2 chips which makes them usable -as simple logic analyzer and/or oscilloscope hardware.") - (license license:gpl2+))) + ;; The project's last formal release was in 2019. + ;; + ;; The changes since then allow it to build with the latest version of SDCC, + ;; 4.3.0. + (let ((commit "96b0b476522c3f93a47ff8f479ec08105ba6a2a5") + (revision "1")) + (package + (name "sigrok-firmware-fx2lafw") + (version (git-version "0.1.7" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://sigrok.org/sigrok-firmware-fx2lafw") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1n5nj2g2m5ih59591ny2drrv25zviqcwyx1cfdhy8ijl82yxjkmb")))) + (build-system gnu-build-system) + (arguments + (list #:tests? #f)) ; no test suite + (native-inputs + (list autoconf automake sdcc)) + (home-page "https://www.sigrok.org/wiki/Fx2lafw") + (synopsis "Firmware for Cypress FX2 chips") + (description "Fx2lafw is free firmware for Cypress FX2 chips which makes +them usable as simple logic analyzer and/or oscilloscope hardware.") + (license license:gpl2+)))) (define-public libsigrok (let ((commit "a7e919a3a6b7fd511acbe1a280536b76c70c28d2") diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 2575a833ab..2e0b094d85 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -13856,7 +13856,16 @@ and tooling.") (build-system emacs-build-system) (arguments `(#:tests? #t - #:test-command '("make" "test"))) + #:test-command '("make" "test") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-program-calls + (lambda* (#:key inputs #:allow-other-keys) + (emacs-substitute-variables "elfeed-curl.el" + ("elfeed-curl-program-name" + (search-input-file inputs "/bin/curl")))))))) + (inputs + (list curl)) (home-page "https://github.com/skeeto/elfeed") (synopsis "Atom/RSS feed reader for Emacs") (description @@ -15207,9 +15216,9 @@ e.g., the expression you've just evaluated would briefly flash and so on.") (license license:gpl3+)))) (define-public emacs-sly - ;; Update together with sbcl-slynk. - (let ((commit "82b20a9a83209b4dbfbfb62a1536896aed5f85f7") - (revision "7")) + ;; Update together with sbcl-slynk . + (let ((commit "df62abae73bd511885c9c7ec0ea7ea1469a00923") + (revision "8")) ;; Versions are not always tagged. Besides, latest master contains ;; important fixes. (package @@ -15224,7 +15233,7 @@ e.g., the expression you've just evaluated would briefly flash and so on.") (file-name (git-file-name name version)) (sha256 (base32 - "0dvr36qvb490gml0znay0slw63czp7azvajnv7srh8s0j8pqpcaj")))) + "1nxijv52bja6la2i3asq7kklpj5li25454n52sgsc6xnnfvakbsv")))) (build-system emacs-build-system) (native-inputs (list texinfo)) @@ -15523,7 +15532,7 @@ using package inferred style.") `(#:tests? #t #:test-command '("buttercup" "-l" "lua-mode.el"))) (native-inputs - (list emacs-buttercup-1.25 lua)) + (list emacs-buttercup lua)) (synopsis "Major mode for lua") (description "This Emacs package provides a mode for @uref{https://www.lua.org/, @@ -28520,16 +28529,6 @@ targets the Emacs based IDEs (CIDER, ESS, Geiser, Robe, SLIME etc.)") #:test-command #~(list "make" "test") #:phases #~(modify-phases %standard-phases - (add-after 'unpack 'fix-spy-on-test - (lambda _ - (substitute* "buttercup.el" - ;; The spy-on test fails with native compilation, which was - ;; fixed in v1.30 but with a variable name for Emacs newer - ;; than 28.2. Add in the same fix with the current variable - ;; name. Upstream bug and fix: - ;; <https://github.com/jorgenschaefer/emacs-buttercup/issues/236> - (("\\(native-comp-enable-subr-trampolines nil\\)" all) - (string-append all " (comp-enable-subr-trampolines nil)"))))) (add-after 'install 'install-bin (lambda _ (install-file "bin/buttercup" @@ -28542,23 +28541,6 @@ common set-up and tear-down code, and allows the programmer to \"spy\" on functions to ensure they are called with the right arguments during testing.") (license license:gpl3+))) -;;; Required by emacs-lua-mode -(define emacs-buttercup-1.25 - (package - (inherit emacs-buttercup) - (name "emacs-buttercup") - (version "1.25") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jorgenschaefer/emacs-buttercup") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0fsysvsypda6b7azc15bpaprq3bwx4gb6rlq2mj6f8rgwdqc8153")))))) - (define-public emacs-cort (package (name "emacs-cort") diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index 325013a627..e991f52a66 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2020, 2021, 2022 Simon South <simon@simonsouth.net> ;;; Copyright © 2021 Morgan Smith <Morgan.J.Smith@outlook.com> ;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org> -;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -34,6 +34,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix gexp) + #:use-module (guix memoization) #:use-module (guix svn-download) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) @@ -73,442 +74,519 @@ #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (gnu packages xorg) - #:use-module (srfi srfi-1)) + #:use-module (srfi srfi-1) + #:export (make-gcc-arm-none-eabi-4.9 + make-gcc-arm-none-eabi-6 + make-gcc-arm-none-eabi-7-2018-q2-update + + make-gcc-vc4 + + make-newlib-arm-none-eabi + make-newlib-arm-none-eabi-7-2018-q2-update + + make-newlib-nano-arm-none-eabi + make-newlib-nano-arm-none-eabi-7-2018-q2-update + + make-arm-none-eabi-toolchain-4.9 + make-arm-none-eabi-toolchain-6 + make-arm-none-eabi-toolchain-7-2018-q2-update + + make-arm-none-eabi-nano-toolchain-4.9 + make-arm-none-eabi-nano-toolchain-6 + make-arm-none-eabi-nano-toolchain-7-2018-q2-update + + make-gdb-arm-none-eabi + + make-propeller-gcc + make-propeller-gcc-4 + make-propeller-gcc-6 + make-propeller-toolchain + make-propeller-development-suite)) + +;;; Commentary: +;;; +;;; This modules contains toolchain generators as well as packages for use in +;;; embedded contexts. Note: the toolchain and specialized packages are +;;; procedures, so as to delay their references to top level bindings such as +;;; 'gcc' or 'cross-gcc', etc. +;;; ;; We must not use the released GCC sources here, because the cross-compiler ;; does not produce working binaries. Instead we take the very same SVN ;; revision from the branch that is used for a release of the "GCC ARM ;; embedded" project on launchpad. ;; See https://launchpadlibrarian.net/218827644/release.txt -(define-public gcc-arm-none-eabi-4.9 - (let ((xgcc (cross-gcc "arm-none-eabi" - #:xgcc gcc-4.9 - #:xbinutils (cross-binutils "arm-none-eabi"))) - (revision "1") - (svn-revision 227977)) - (package (inherit xgcc) - (version (string-append (package-version xgcc) "-" - revision "." (number->string svn-revision))) - (source - (origin - (method svn-fetch) - (uri (svn-reference - (url "svn://gcc.gnu.org/svn/gcc/branches/ARM/embedded-4_9-branch/") - (revision svn-revision))) - (file-name (string-append "gcc-arm-embedded-" version "-checkout")) - (sha256 - (base32 - "113r98kygy8rrjfv2pd3z6zlfzbj543pq7xyq8bgh72c608mmsbr")) +(define make-gcc-arm-none-eabi-4.9 + (mlambda () + (let ((xgcc (cross-gcc "arm-none-eabi" + #:xgcc gcc-4.9 + #:xbinutils (cross-binutils "arm-none-eabi"))) + (revision "1") + (svn-revision 227977)) + (package + (inherit xgcc) + (version (string-append (package-version xgcc) "-" + revision "." (number->string svn-revision))) + (source + (origin + (method svn-fetch) + (uri (svn-reference + (url "svn://gcc.gnu.org/svn/gcc/branches/ARM/\ +embedded-4_9-branch/") + (revision svn-revision))) + (file-name (string-append "gcc-arm-embedded-" version "-checkout")) + (sha256 + (base32 + "113r98kygy8rrjfv2pd3z6zlfzbj543pq7xyq8bgh72c608mmsbr")) - (patches (cons (search-patch "gcc-4.9-inline.patch") - ;; Remove the one patch that doesn't apply to this 4.9 - ;; snapshot (the patch is for 4.9.4 and later but this - ;; svn snapshot is older). - (remove (lambda (patch) - (string=? (basename patch) - "gcc-arm-bug-71399.patch")) - (origin-patches (package-source xgcc))))))) - (native-inputs - `(("flex" ,flex) - ("gcc@5" ,gcc-5) - ,@(package-native-inputs xgcc))) - (arguments - (substitute-keyword-arguments (package-arguments xgcc) - ((#:phases phases) - #~(modify-phases #$phases - (add-after 'set-paths 'augment-CPLUS_INCLUDE_PATH - (lambda* (#:key inputs #:allow-other-keys) - (let ((gcc (assoc-ref inputs "gcc"))) - ;; Remove the default compiler from CPLUS_INCLUDE_PATH to - ;; prevent header conflict with the GCC from native-inputs. - (setenv "CPLUS_INCLUDE_PATH" - (string-join - (delete (string-append gcc "/include/c++") - (string-split (getenv "CPLUS_INCLUDE_PATH") - #\:)) - ":")) - (format #t - "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%" - (getenv "CPLUS_INCLUDE_PATH"))))) - (add-after 'unpack 'fix-genmultilib - (lambda _ - (substitute* "gcc/genmultilib" - (("#!/bin/sh") (string-append "#!" (which "sh")))))))) - ((#:configure-flags flags) - ;; The configure flags are largely identical to the flags used by the - ;; "GCC ARM embedded" project. - #~(append (list "--enable-multilib" - "--with-newlib" - "--with-multilib-list=armv6-m,armv7-m,armv7e-m" - "--with-host-libstdcxx=-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm" - "--enable-plugins" - "--disable-decimal-float" - "--disable-libffi" - "--disable-libgomp" - "--disable-libmudflap" - "--disable-libquadmath" - "--disable-libssp" - "--disable-libstdcxx-pch" - "--disable-nls" - "--disable-shared" - "--disable-threads" - "--disable-tls") - (delete "--disable-multilib" #$flags))))) - (native-search-paths - (list (search-path-specification - (variable "CROSS_C_INCLUDE_PATH") - (files '("arm-none-eabi/include"))) - (search-path-specification - (variable "CROSS_CPLUS_INCLUDE_PATH") - (files '("arm-none-eabi/include" - "arm-none-eabi/include/c++" - "arm-none-eabi/include/c++/arm-none-eabi"))) - (search-path-specification - (variable "CROSS_LIBRARY_PATH") - (files '("arm-none-eabi/lib")))))))) + (patches (cons (search-patch "gcc-4.9-inline.patch") + ;; Remove the one patch that doesn't apply to this + ;; 4.9 snapshot (the patch is for 4.9.4 and later + ;; but this svn snapshot is older). + (remove (lambda (patch) + (string=? (basename patch) + "gcc-arm-bug-71399.patch")) + (origin-patches (package-source xgcc))))))) + (native-inputs + `(("flex" ,flex) + ("gcc@5" ,gcc-5) + ,@(package-native-inputs xgcc))) + (arguments + (substitute-keyword-arguments (package-arguments xgcc) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'set-paths 'augment-CPLUS_INCLUDE_PATH + (lambda* (#:key inputs #:allow-other-keys) + (let ((gcc (assoc-ref inputs "gcc"))) + ;; Remove the default compiler from CPLUS_INCLUDE_PATH + ;; to prevent header conflict with the GCC from + ;; native-inputs. + (setenv "CPLUS_INCLUDE_PATH" + (string-join + (delete (string-append gcc "/include/c++") + (string-split (getenv "CPLUS_INCLUDE_PATH") + #\:)) + ":")) + (format #t + "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%" + (getenv "CPLUS_INCLUDE_PATH"))))) + (add-after 'unpack 'fix-genmultilib + (lambda _ + (substitute* "gcc/genmultilib" + (("#!/bin/sh") (string-append "#!" (which "sh")))))))) + ((#:configure-flags flags) + ;; The configure flags are largely identical to the flags used by the + ;; "GCC ARM embedded" project. + #~(append (list "--enable-multilib" + "--with-newlib" + "--with-multilib-list=armv6-m,armv7-m,armv7e-m" + "--with-host-libstdcxx=-static-libgcc \ +-Wl,-Bstatic,-lstdc++,-Bdynamic -lm" + "--enable-plugins" + "--disable-decimal-float" + "--disable-libffi" + "--disable-libgomp" + "--disable-libmudflap" + "--disable-libquadmath" + "--disable-libssp" + "--disable-libstdcxx-pch" + "--disable-nls" + "--disable-shared" + "--disable-threads" + "--disable-tls") + (delete "--disable-multilib" #$flags))))) + (native-search-paths + (list (search-path-specification + (variable "CROSS_C_INCLUDE_PATH") + (files '("arm-none-eabi/include"))) + (search-path-specification + (variable "CROSS_CPLUS_INCLUDE_PATH") + (files '("arm-none-eabi/include" + "arm-none-eabi/include/c++" + "arm-none-eabi/include/c++/arm-none-eabi"))) + (search-path-specification + (variable "CROSS_LIBRARY_PATH") + (files '("arm-none-eabi/lib"))))))))) -(define-public gcc-arm-none-eabi-6 - (package - (inherit gcc-arm-none-eabi-4.9) - (version (package-version gcc-6)) - (source (origin (inherit (package-source gcc-6)) - (patches - (append - (origin-patches (package-source gcc-6)) - (search-patches "gcc-6-cross-environment-variables.patch" - "gcc-6-arm-none-eabi-multilib.patch"))))))) +(define make-gcc-arm-none-eabi-6 + (mlambda () + (package + (inherit (make-gcc-arm-none-eabi-4.9)) + (version (package-version gcc-6)) + (source (origin + (inherit (package-source gcc-6)) + (patches + (append + (origin-patches (package-source gcc-6)) + (search-patches "gcc-6-cross-environment-variables.patch" + "gcc-6-arm-none-eabi-multilib.patch")))))))) -(define-public newlib-arm-none-eabi - (package - (name "newlib") - (version "2.4.0") - (source (origin - (method url-fetch) - (uri (string-append "ftp://sourceware.org/pub/newlib/newlib-" - version ".tar.gz")) - (sha256 - (base32 - "01i7qllwicf05vsvh39qj7qp5fdifpvvky0x95hjq39mbqiksnsl")))) - (build-system gnu-build-system) - (arguments - `(#:out-of-source? #t - ;; The configure flags are identical to the flags used by the "GCC ARM - ;; embedded" project. - #:configure-flags '("--target=arm-none-eabi" - "--enable-newlib-io-long-long" - "--enable-newlib-register-fini" - "--disable-newlib-supplied-syscalls" - "--disable-nls") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-references-to-/bin/sh - (lambda _ - (substitute* '("libgloss/arm/cpu-init/Makefile.in" - "libgloss/arm/Makefile.in" - "libgloss/libnosys/Makefile.in" - "libgloss/Makefile.in") - (("/bin/sh") (which "sh"))) - #t))))) - (native-inputs - `(("xbinutils" ,(cross-binutils "arm-none-eabi")) - ("xgcc" ,gcc-arm-none-eabi-4.9) - ("texinfo" ,texinfo))) - (home-page "https://www.sourceware.org/newlib/") - (synopsis "C library for use on embedded systems") - (description "Newlib is a C library intended for use on embedded +(define make-newlib-arm-none-eabi + (mlambda () + (package + (name "newlib") + (version "2.4.0") + (source (origin + (method url-fetch) + (uri (string-append "ftp://sourceware.org/pub/newlib/newlib-" + version ".tar.gz")) + (sha256 + (base32 + "01i7qllwicf05vsvh39qj7qp5fdifpvvky0x95hjq39mbqiksnsl")))) + (build-system gnu-build-system) + (arguments + `(#:out-of-source? #t + ;; The configure flags are identical to the flags used by the "GCC ARM + ;; embedded" project. + #:configure-flags '("--target=arm-none-eabi" + "--enable-newlib-io-long-long" + "--enable-newlib-register-fini" + "--disable-newlib-supplied-syscalls" + "--disable-nls") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-references-to-/bin/sh + (lambda _ + (substitute* '("libgloss/arm/cpu-init/Makefile.in" + "libgloss/arm/Makefile.in" + "libgloss/libnosys/Makefile.in" + "libgloss/Makefile.in") + (("/bin/sh") (which "sh"))) + #t))))) + (native-inputs + `(("xbinutils" ,(cross-binutils "arm-none-eabi")) + ("xgcc" ,(make-gcc-arm-none-eabi-4.9)) + ("texinfo" ,texinfo))) + (home-page "https://www.sourceware.org/newlib/") + (synopsis "C library for use on embedded systems") + (description "Newlib is a C library intended for use on embedded systems. It is a conglomeration of several library parts that are easily usable on embedded products.") - (license (license:non-copyleft - "https://www.sourceware.org/newlib/COPYING.NEWLIB")))) + (license (license:non-copyleft + "https://www.sourceware.org/newlib/COPYING.NEWLIB"))))) -(define-public newlib-nano-arm-none-eabi - (package (inherit newlib-arm-none-eabi) - (name "newlib-nano") - (arguments - (substitute-keyword-arguments (package-arguments newlib-arm-none-eabi) - ;; The configure flags are identical to the flags used by the "GCC ARM - ;; embedded" project. They optimize newlib for use on small embedded - ;; systems with limited memory. - ((#:configure-flags flags) - ''("--target=arm-none-eabi" - "--enable-multilib" - "--disable-newlib-supplied-syscalls" - "--enable-newlib-reent-small" - "--disable-newlib-fvwrite-in-streamio" - "--disable-newlib-fseek-optimization" - "--disable-newlib-wide-orient" - "--enable-newlib-nano-malloc" - "--disable-newlib-unbuf-stream-opt" - "--enable-lite-exit" - "--enable-newlib-global-atexit" - "--enable-newlib-nano-formatted-io" - "--disable-nls")) - ((#:phases phases) - `(modify-phases ,phases - ;; XXX: Most arm toolchains offer both *.a and *_nano.a as newlib - ;; and newlib-nano respectively. The headers are usually - ;; arm-none-eabi/include/newlib.h for newlib and - ;; arm-none-eabi/include/newlib-nano/newlib.h for newlib-nano. We - ;; have two different toolchain packages for each which works but - ;; is a little strange. - (add-after 'install 'hardlink-newlib - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - ;; The nano.specs file says that newlib-nano files should end - ;; in "_nano.a" instead of just ".a". Note that this applies - ;; to all the multilib folders too. - (for-each - (lambda (file) - (link file - (string-append - ;; Strip ".a" off the end - (substring file 0 (- (string-length file) 2)) - ;; Add "_nano.a" onto the end - "_nano.a"))) - (find-files - out - "^(libc.a|libg.a|librdimon.a|libstdc\\+\\+.a|libsupc\\+\\+.a)$")) +(define make-newlib-nano-arm-none-eabi + (mlambda () + (let ((base (make-newlib-arm-none-eabi))) + (package + (inherit base) + (name "newlib-nano") + (arguments + (substitute-keyword-arguments (package-arguments base) + ;; The configure flags are identical to the flags used by the "GCC + ;; ARM embedded" project. They optimize newlib for use on small + ;; embedded systems with limited memory. + ((#:configure-flags _) + ''("--target=arm-none-eabi" + "--enable-multilib" + "--disable-newlib-supplied-syscalls" + "--enable-newlib-reent-small" + "--disable-newlib-fvwrite-in-streamio" + "--disable-newlib-fseek-optimization" + "--disable-newlib-wide-orient" + "--enable-newlib-nano-malloc" + "--disable-newlib-unbuf-stream-opt" + "--enable-lite-exit" + "--enable-newlib-global-atexit" + "--enable-newlib-nano-formatted-io" + "--disable-nls")) + ((#:phases phases) + `(modify-phases ,phases + ;; XXX: Most arm toolchains offer both *.a and *_nano.a as + ;; newlib and newlib-nano respectively. The headers are + ;; usually arm-none-eabi/include/newlib.h for newlib and + ;; arm-none-eabi/include/newlib-nano/newlib.h for newlib-nano. + ;; We have two different toolchain packages for each which + ;; works but is a little strange. + (add-after 'install 'hardlink-newlib + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; The nano.specs file says that newlib-nano files should + ;; end in "_nano.a" instead of just ".a". Note that this + ;; applies to all the multilib folders too. + (for-each + (lambda (file) + (link file + (string-append + ;; Strip ".a" off the end + (substring file 0 (- (string-length file) 2)) + ;; Add "_nano.a" onto the end + "_nano.a"))) + (find-files + out + "^(libc.a|libg.a|librdimon.a|libstdc\\+\\+.a|\ +libsupc\\+\\+.a)$")) - ;; newlib.h is usually in this location instead so both - ;; newlib and newlib-nano can be in the toolchain at the same - ;; time - (mkdir (string-append out "/arm-none-eabi/include/newlib-nano")) - (symlink - "../newlib.h" - (string-append out "/arm-none-eabi/include/newlib-nano/newlib.h")) - #t))))))) - (synopsis "Newlib variant for small systems with limited memory"))) + ;; newlib.h is usually in this location instead so both + ;; newlib and newlib-nano can be in the toolchain at the + ;; same time + (mkdir (string-append + out "/arm-none-eabi/include/newlib-nano")) + (symlink + "../newlib.h" + (string-append + out + "/arm-none-eabi/include/newlib-nano/newlib.h"))))))))) + (synopsis "Newlib variant for small systems with limited memory"))))) ;;; The following definitions are for the "7-2018-q2-update" variant of the ;;; ARM cross toolchain as offered on https://developer.arm.com -(define-public gcc-arm-none-eabi-7-2018-q2-update - (let ((xgcc (cross-gcc "arm-none-eabi" - #:xgcc gcc-7 - #:xbinutils (cross-binutils "arm-none-eabi"))) - (revision "1") - (svn-revision 261907)) - (package (inherit xgcc) - (version (string-append "7-2018-q2-update-" - revision "." (number->string svn-revision))) - (source - (origin - (method svn-fetch) - (uri (svn-reference - (url "svn://gcc.gnu.org/svn/gcc/branches/ARM/embedded-7-branch/") - (revision svn-revision))) - (file-name (string-append "gcc-arm-embedded-" version "-checkout")) - (sha256 - (base32 - "192ggs63bixf3irpijgfkjks73yx1r3a4i6grk1y0i0iny76pmx5")) - (patches - (append - (origin-patches (package-source gcc-7)) - (search-patches "gcc-7-cross-environment-variables.patch"))))) - (native-inputs - (modify-inputs (package-native-inputs xgcc) - (delete "isl") - (prepend flex isl-0.18))) - (arguments - (substitute-keyword-arguments (package-arguments xgcc) - ((#:phases phases) - #~(modify-phases #$phases - (add-after 'unpack 'expand-version-string - (lambda _ - (make-file-writable "gcc/DEV-PHASE") - (with-output-to-file "gcc/DEV-PHASE" - (lambda () - (display "7-2018-q2-update"))))) - (add-after 'unpack 'fix-genmultilib - (lambda _ - (substitute* "gcc/genmultilib" - (("#!/bin/sh") (string-append "#!" (which "sh")))))) - (add-after 'set-paths 'augment-CPLUS_INCLUDE_PATH - (lambda* (#:key inputs #:allow-other-keys) - (let ((gcc (assoc-ref inputs "gcc"))) - ;; Remove the default compiler from CPLUS_INCLUDE_PATH to - ;; prevent header conflict with the GCC from native-inputs. - (setenv "CPLUS_INCLUDE_PATH" - (string-join - (delete (string-append gcc "/include/c++") - (string-split (getenv "CPLUS_INCLUDE_PATH") - #\:)) - ":")) - (format #t - "environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%" - (getenv "CPLUS_INCLUDE_PATH"))))))) - ((#:configure-flags flags) - ;; The configure flags are largely identical to the flags used by the - ;; "GCC ARM embedded" project. - #~(append (list "--enable-multilib" - "--with-newlib" - "--with-multilib-list=rmprofile" - "--with-host-libstdcxx=-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm" - "--enable-plugins" - "--disable-decimal-float" - "--disable-libffi" - "--disable-libgomp" - "--disable-libmudflap" - "--disable-libquadmath" - "--disable-libssp" - "--disable-libstdcxx-pch" - "--disable-nls" - "--disable-shared" - "--disable-threads" - "--disable-tls") - (delete "--disable-multilib" #$flags))))) - (native-search-paths - (list (search-path-specification - (variable "CROSS_C_INCLUDE_PATH") - (files '("arm-none-eabi/include"))) - (search-path-specification - (variable "CROSS_CPLUS_INCLUDE_PATH") - (files '("arm-none-eabi/include" - "arm-none-eabi/include/c++" - "arm-none-eabi/include/c++/arm-none-eabi"))) - (search-path-specification - (variable "CROSS_LIBRARY_PATH") - (files '("arm-none-eabi/lib")))))))) +(define make-gcc-arm-none-eabi-7-2018-q2-update + (mlambda () + (let ((xgcc (cross-gcc "arm-none-eabi" + #:xgcc gcc-7 + #:xbinutils (cross-binutils "arm-none-eabi"))) + (revision "1") + (svn-revision 261907)) + (package (inherit xgcc) + (version (string-append "7-2018-q2-update-" + revision "." + (number->string svn-revision))) + (source + (origin + (method svn-fetch) + (uri (svn-reference + (url "svn://gcc.gnu.org/svn/gcc/branches/ARM/\ +embedded-7-branch/") + (revision svn-revision))) + (file-name (string-append "gcc-arm-embedded-" version + "-checkout")) + (sha256 + (base32 + "192ggs63bixf3irpijgfkjks73yx1r3a4i6grk1y0i0iny76pmx5")) + (patches + (append + (origin-patches (package-source gcc-7)) + (search-patches + "gcc-7-cross-environment-variables.patch"))))) + (native-inputs + (modify-inputs (package-native-inputs xgcc) + (delete "isl") + (prepend flex isl-0.18))) + (arguments + (substitute-keyword-arguments (package-arguments xgcc) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'expand-version-string + (lambda _ + (make-file-writable "gcc/DEV-PHASE") + (with-output-to-file "gcc/DEV-PHASE" + (lambda () + (display "7-2018-q2-update"))))) + (add-after 'unpack 'fix-genmultilib + (lambda _ + (substitute* "gcc/genmultilib" + (("#!/bin/sh") + (string-append "#!" (which "sh")))))) + (add-after 'set-paths 'augment-CPLUS_INCLUDE_PATH + (lambda* (#:key inputs #:allow-other-keys) + (let ((gcc (assoc-ref inputs "gcc"))) + ;; Remove the default compiler from + ;; CPLUS_INCLUDE_PATH to prevent header conflict + ;; with the GCC from native-inputs. + (setenv "CPLUS_INCLUDE_PATH" + (string-join + (delete (string-append gcc "/include/c++") + (string-split + (getenv "CPLUS_INCLUDE_PATH") + #\:)) + ":")) + (format #t + "environment variable `CPLUS_INCLUDE_PATH'\ + changed to ~a~%" + (getenv "CPLUS_INCLUDE_PATH"))))))) + ((#:configure-flags flags) + ;; The configure flags are largely identical to the flags + ;; used by the "GCC ARM embedded" project. + #~(append (list "--enable-multilib" + "--with-newlib" + "--with-multilib-list=rmprofile" + "--with-host-libstdcxx=-static-libgcc \ +-Wl,-Bstatic,-lstdc++,-Bdynamic -lm" + "--enable-plugins" + "--disable-decimal-float" + "--disable-libffi" + "--disable-libgomp" + "--disable-libmudflap" + "--disable-libquadmath" + "--disable-libssp" + "--disable-libstdcxx-pch" + "--disable-nls" + "--disable-shared" + "--disable-threads" + "--disable-tls") + (delete "--disable-multilib" #$flags))))) + (native-search-paths + (list (search-path-specification + (variable "CROSS_C_INCLUDE_PATH") + (files '("arm-none-eabi/include"))) + (search-path-specification + (variable "CROSS_CPLUS_INCLUDE_PATH") + (files '("arm-none-eabi/include" + "arm-none-eabi/include/c++" + "arm-none-eabi/include/c++/arm-none-eabi"))) + (search-path-specification + (variable "CROSS_LIBRARY_PATH") + (files '("arm-none-eabi/lib"))))))))) -(define-public newlib-arm-none-eabi-7-2018-q2-update +(define make-newlib-arm-none-eabi-7-2018-q2-update ;; This is the same commit as used for the 7-2018-q2-update release ;; according to the release.txt. - (let ((commit "3ccfb407af410ba7e54ea0da11ae1e40b554a6f4") - (revision "0")) - (package - (inherit newlib-arm-none-eabi) - (version (git-version "3.0.0" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "http://sourceware.org/git/newlib-cygwin.git") - (commit commit))) - (file-name (git-file-name "newlib" commit)) - (sha256 - (base32 - "1dq23fqrk75g1a4v7569fvnnw5q440zawbxi3w0g05n8jlqsmvcy")))) - (arguments - (substitute-keyword-arguments (package-arguments newlib-arm-none-eabi) - ;; The configure flags are identical to the flags used by the "GCC ARM - ;; embedded" project. - ((#:configure-flags flags) - `(cons* "--enable-newlib-io-c99-formats" - "--enable-newlib-retargetable-locking" - "--with-headers=yes" - ,flags)))) - (native-inputs - `(("xbinutils" ,(cross-binutils "arm-none-eabi")) - ("xgcc" ,gcc-arm-none-eabi-7-2018-q2-update) - ("texinfo" ,texinfo)))))) + (mlambda () + (let ((base (make-newlib-arm-none-eabi)) + (commit "3ccfb407af410ba7e54ea0da11ae1e40b554a6f4") + (revision "0")) + (package + (inherit base) + (version (git-version "3.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "http://sourceware.org/git/newlib-cygwin.git") + (commit commit))) + (file-name (git-file-name "newlib" commit)) + (sha256 + (base32 + "1dq23fqrk75g1a4v7569fvnnw5q440zawbxi3w0g05n8jlqsmvcy")))) + (arguments + (substitute-keyword-arguments (package-arguments base) + ;; The configure flags are identical to the flags used by the "GCC + ;; ARM embedded" project. + ((#:configure-flags flags) + `(cons* "--enable-newlib-io-c99-formats" + "--enable-newlib-retargetable-locking" + "--with-headers=yes" + ,flags)))) + (native-inputs + `(("xbinutils" ,(cross-binutils "arm-none-eabi")) + ("xgcc" ,(make-gcc-arm-none-eabi-7-2018-q2-update)) + ("texinfo" ,texinfo))))))) -(define-public newlib-nano-arm-none-eabi-7-2018-q2-update - (package (inherit newlib-arm-none-eabi-7-2018-q2-update) - (name "newlib-nano") - (arguments - (package-arguments newlib-nano-arm-none-eabi)) - (synopsis "Newlib variant for small systems with limited memory"))) +(define-public make-newlib-nano-arm-none-eabi-7-2018-q2-update + (mlambda () + (let ((base (make-newlib-arm-none-eabi-7-2018-q2-update))) + (package + (inherit base) + (name "newlib-nano") + (arguments + (package-arguments base)) + (synopsis "Newlib variant for small systems with limited memory"))))) -(define (make-libstdc++-arm-none-eabi xgcc newlib) - (let ((libstdc++ (make-libstdc++ xgcc))) - (package (inherit libstdc++) - (name "libstdc++-arm-none-eabi") - (arguments - (substitute-keyword-arguments (package-arguments libstdc++) - ((#:configure-flags flags) - ``("--target=arm-none-eabi" - "--host=arm-none-eabi" - "--disable-libstdcxx-pch" - "--enable-multilib" - "--with-multilib-list=armv6-m,armv7-m,armv7e-m" - "--disable-shared" - "--disable-tls" - "--disable-plugin" - "--with-newlib" - ,(string-append "--with-gxx-include-dir=" - (assoc-ref %outputs "out") - "/arm-none-eabi/include/c++"))))) - (native-inputs - `(("newlib" ,newlib) - ("xgcc" ,xgcc) - ,@(package-native-inputs libstdc++)))))) +(define make-libstdc++-arm-none-eabi + (mlambda (xgcc newlib) + (let ((libstdc++ (make-libstdc++ xgcc))) + (package + (inherit libstdc++) + (name "libstdc++-arm-none-eabi") + (arguments + (substitute-keyword-arguments (package-arguments libstdc++) + ((#:configure-flags _) + ``("--target=arm-none-eabi" + "--host=arm-none-eabi" + "--disable-libstdcxx-pch" + "--enable-multilib" + "--with-multilib-list=armv6-m,armv7-m,armv7e-m" + "--disable-shared" + "--disable-tls" + "--disable-plugin" + "--with-newlib" + ,(string-append "--with-gxx-include-dir=" + (assoc-ref %outputs "out") + "/arm-none-eabi/include/c++"))))) + (native-inputs + `(("newlib" ,newlib) + ("xgcc" ,xgcc) + ,@(package-native-inputs libstdc++))))))) -(define (arm-none-eabi-toolchain xgcc newlib) - "Produce a cross-compiler toolchain package with the compiler XGCC and the C -library variant NEWLIB." - (let ((newlib-with-xgcc (package (inherit newlib) - (native-inputs - (alist-replace "xgcc" (list xgcc) - (package-native-inputs newlib)))))) - (package - (name (string-append "arm-none-eabi" - (if (string=? (package-name newlib-with-xgcc) - "newlib-nano") - "-nano" "") - "-toolchain")) - (version (package-version xgcc)) - (source #f) - (build-system trivial-build-system) - (arguments - '(#:modules ((guix build union)) - #:builder - (begin - (use-modules (ice-9 match) - (guix build union)) - (match %build-inputs - (((names . directories) ...) - (union-build (assoc-ref %outputs "out") - directories) - #t))))) - (propagated-inputs - `(("binutils" ,(cross-binutils "arm-none-eabi")) - ("libstdc++" ,(make-libstdc++-arm-none-eabi xgcc newlib-with-xgcc)) - ("gcc" ,xgcc) - ("newlib" ,newlib-with-xgcc))) - (synopsis "Complete GCC tool chain for ARM bare metal development") - (description "This package provides a complete GCC tool chain for ARM +(define make-arm-none-eabi-toolchain + (mlambda (xgcc newlib) + "Produce a cross-compiler toolchain package with the compiler XGCC and the +C library variant NEWLIB." + (let ((newlib-with-xgcc + (package + (inherit newlib) + (native-inputs + (alist-replace "xgcc" (list xgcc) + (package-native-inputs newlib)))))) + (package + (name (string-append "arm-none-eabi" + (if (string=? (package-name newlib-with-xgcc) + "newlib-nano") + "-nano" "") + "-toolchain")) + (version (package-version xgcc)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder + (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories)))))) + (propagated-inputs + `(("binutils" ,(cross-binutils "arm-none-eabi")) + ("libstdc++" ,(make-libstdc++-arm-none-eabi xgcc newlib-with-xgcc)) + ("gcc" ,xgcc) + ("newlib" ,newlib-with-xgcc))) + (synopsis "Complete GCC tool chain for ARM bare metal development") + (description "This package provides a complete GCC tool chain for ARM bare metal development. This includes the GCC arm-none-eabi cross compiler and newlib (or newlib-nano) as the C library. The supported programming languages are C and C++.") - (home-page (package-home-page xgcc)) - (license (package-license xgcc))))) + (home-page (package-home-page xgcc)) + (license (package-license xgcc)))))) -(define-public arm-none-eabi-toolchain-4.9 - (arm-none-eabi-toolchain gcc-arm-none-eabi-4.9 - newlib-arm-none-eabi)) +(define make-arm-none-eabi-toolchain-4.9 + (mlambda () + (make-arm-none-eabi-toolchain (make-gcc-arm-none-eabi-4.9) + (make-newlib-arm-none-eabi)))) -(define-public arm-none-eabi-nano-toolchain-4.9 - (arm-none-eabi-toolchain gcc-arm-none-eabi-4.9 - newlib-nano-arm-none-eabi)) +(define make-arm-none-eabi-nano-toolchain-4.9 + (mlambda () + (make-arm-none-eabi-toolchain (make-gcc-arm-none-eabi-4.9) + (make-newlib-nano-arm-none-eabi)))) -(define-public arm-none-eabi-toolchain-6 - (arm-none-eabi-toolchain gcc-arm-none-eabi-6 - newlib-arm-none-eabi)) +(define make-arm-none-eabi-toolchain-6 + (mlambda () + (make-arm-none-eabi-toolchain (make-gcc-arm-none-eabi-6) + (make-newlib-arm-none-eabi)))) -(define-public arm-none-eabi-nano-toolchain-6 - (arm-none-eabi-toolchain gcc-arm-none-eabi-6 - newlib-nano-arm-none-eabi)) +(define make-arm-none-eabi-nano-toolchain-6 + (mlambda () + (make-arm-none-eabi-toolchain (make-gcc-arm-none-eabi-6) + (make-newlib-nano-arm-none-eabi)))) -(define-public arm-none-eabi-toolchain-7-2018-q2-update - (arm-none-eabi-toolchain gcc-arm-none-eabi-7-2018-q2-update - newlib-arm-none-eabi-7-2018-q2-update)) +(define make-arm-none-eabi-toolchain-7-2018-q2-update + (mlambda () + (make-arm-none-eabi-toolchain + (make-gcc-arm-none-eabi-7-2018-q2-update) + (make-newlib-arm-none-eabi-7-2018-q2-update)))) -(define-public arm-none-eabi-nano-toolchain-7-2018-q2-update - (arm-none-eabi-toolchain gcc-arm-none-eabi-7-2018-q2-update - newlib-nano-arm-none-eabi-7-2018-q2-update)) +(define make-arm-none-eabi-nano-toolchain-7-2018-q2-update + (mlambda () + (make-arm-none-eabi-toolchain + (make-gcc-arm-none-eabi-7-2018-q2-update) + (make-newlib-nano-arm-none-eabi-7-2018-q2-update)))) -(define-public gdb-arm-none-eabi - (package - (inherit gdb) - (name "gdb-arm-none-eabi") - (arguments - `(#:configure-flags '("--target=arm-none-eabi" - "--enable-multilib" - "--enable-interwork" - "--enable-languages=c,c++" - "--disable-nls") - ,@(package-arguments gdb))))) +(define make-gdb-arm-none-eabi + (mlambda () + (package + (inherit gdb) + (name "gdb-arm-none-eabi") + (arguments + `(#:configure-flags '("--target=arm-none-eabi" + "--enable-multilib" + "--enable-interwork" + "--enable-languages=c,c++" + "--disable-nls") + ,@(package-arguments gdb)))))) (define-public libjaylink (package @@ -647,116 +725,123 @@ with a layered architecture of JTAG interface and TAP support.") ;; personal correspondence with the developers in July 2017, more recent ;; versions are currently incompatible with the "Simple Libraries". -(define propeller-binutils - (let ((xbinutils (cross-binutils "propeller-elf")) - (commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3") - (revision "2")) - (package - (inherit xbinutils) - (name "propeller-binutils") - (version (string-append "0.0.0-" revision "." (string-take commit 9))) - (source (origin (inherit (package-source xbinutils)) - (method git-fetch) - (uri (git-reference - (url "https://github.com/parallaxinc/propgcc") - (commit commit))) - (file-name (string-append name "-" commit "-checkout")) - (sha256 - (base32 - "0w0dff3s7wv2d9m78a4jhckiik58q38wx6wpbba5hzbs4yxz35ck")) - (patches '()))) - (arguments - `(;; FIXME: For some reason there are many test failures. It's not - ;; obvious how to fix the failures. - #:tests? #f - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'chdir - (lambda _ (chdir "binutils") #t))) - ,@(substitute-keyword-arguments (package-arguments xbinutils) - ((#:configure-flags flags) - `(cons "--disable-werror" ,flags))))) - (native-inputs - `(("bison" ,bison) - ("flex" ,flex) - ("texinfo" ,texinfo) - ("dejagnu" ,dejagnu) - ,@(package-native-inputs xbinutils)))))) +(define make-propeller-binutils + (mlambda () + (let ((xbinutils (cross-binutils "propeller-elf")) + (commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3") + (revision "2")) + (package + (inherit xbinutils) + (name "propeller-binutils") + (version (string-append "0.0.0-" revision "." (string-take commit 9))) + (source (origin + (inherit (package-source xbinutils)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/parallaxinc/propgcc") + (commit commit))) + (file-name (string-append name "-" commit "-checkout")) + (sha256 + (base32 + "0w0dff3s7wv2d9m78a4jhckiik58q38wx6wpbba5hzbs4yxz35ck")) + (patches '()))) + (arguments + `(;; FIXME: For some reason there are many test failures. It's not + ;; obvious how to fix the failures. + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "binutils") #t))) + ,@(substitute-keyword-arguments (package-arguments xbinutils) + ((#:configure-flags flags) + `(cons "--disable-werror" ,flags))))) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex) + ("texinfo" ,texinfo) + ("dejagnu" ,dejagnu) + ,@(package-native-inputs xbinutils))))))) -(define-public propeller-gcc-6 - (let ((xgcc (cross-gcc "propeller-elf" - #:xbinutils propeller-binutils)) - (commit "b4f45a4725e0b6d0af59e594c4e3e35ca4105867") - (revision "1")) - (package (inherit xgcc) - (name "propeller-gcc") - (version (string-append "6.0.0-" revision "." (string-take commit 9))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/totalspectrum/gcc-propeller") - (commit commit))) - (file-name (string-append name "-" commit "-checkout")) - (sha256 - (base32 - "0d9kdxm2fzanjqa7q5850kzbsfl0fqyaahxn74h6nkxxacwa11zb")) - (patches - (append - (origin-patches (package-source gcc-6)) - (search-patches "gcc-cross-environment-variables.patch"))))) - (native-inputs - (modify-inputs (package-native-inputs xgcc) - (prepend flex))) - ;; All headers and cross libraries of the propeller toolchain are - ;; installed under the "propeller-elf" prefix. - (native-search-paths - (list (search-path-specification - (variable "CROSS_C_INCLUDE_PATH") - (files '("propeller-elf/include"))) - (search-path-specification - (variable "CROSS_LIBRARY_PATH") - (files '("propeller-elf/lib"))))) - (home-page "https://github.com/totalspectrum/gcc-propeller") - (synopsis "GCC for the Parallax Propeller")))) +(define make-propeller-gcc-6 + (mlambda () + (let ((xgcc (cross-gcc "propeller-elf" + #:xbinutils (make-propeller-binutils))) + (commit "b4f45a4725e0b6d0af59e594c4e3e35ca4105867") + (revision "1")) + (package + (inherit xgcc) + (name "propeller-gcc") + (version (string-append "6.0.0-" revision "." (string-take commit 9))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/totalspectrum/gcc-propeller") + (commit commit))) + (file-name (string-append name "-" commit "-checkout")) + (sha256 + (base32 + "0d9kdxm2fzanjqa7q5850kzbsfl0fqyaahxn74h6nkxxacwa11zb")) + (patches + (append + (origin-patches (package-source gcc-6)) + (search-patches "gcc-cross-environment-variables.patch"))))) + (native-inputs + (modify-inputs (package-native-inputs xgcc) + (prepend flex))) + ;; All headers and cross libraries of the propeller toolchain are + ;; installed under the "propeller-elf" prefix. + (native-search-paths + (list (search-path-specification + (variable "CROSS_C_INCLUDE_PATH") + (files '("propeller-elf/include"))) + (search-path-specification + (variable "CROSS_LIBRARY_PATH") + (files '("propeller-elf/lib"))))) + (home-page "https://github.com/totalspectrum/gcc-propeller") + (synopsis "GCC for the Parallax Propeller"))))) -(define-public propeller-gcc-4 - (let ((xgcc propeller-gcc-6) - (commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3") - (revision "2")) - (package (inherit xgcc) - (name "propeller-gcc") - (version (string-append "4.6.1-" revision "." (string-take commit 9))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/parallaxinc/propgcc") - (commit commit))) - (file-name (string-append name "-" commit "-checkout")) - (sha256 - (base32 - "0w0dff3s7wv2d9m78a4jhckiik58q38wx6wpbba5hzbs4yxz35ck")) - (patch-flags (list "-p1" "--directory=gcc")) - (patches - (append - (origin-patches (package-source gcc-4.7)) - (search-patches "gcc-4.6-gnu-inline.patch" - "gcc-cross-environment-variables.patch"))))) - (arguments - (substitute-keyword-arguments (package-arguments propeller-gcc-6) - ((#:phases phases) - #~(modify-phases #$phases - (add-after 'unpack 'chdir - (lambda _ (chdir "gcc"))))))) - (native-inputs - (modify-inputs (package-native-inputs propeller-gcc-6) - (prepend gcc-4.9))) - (home-page "https://github.com/parallaxinc/propgcc") - (supported-systems (delete "aarch64-linux" %supported-systems))))) +(define make-propeller-gcc-4 + (mlambda () + (let ((xgcc (make-propeller-gcc-6)) + (commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3") + (revision "2")) + (package + (inherit xgcc) + (name "propeller-gcc") + (version (string-append "4.6.1-" revision "." (string-take commit 9))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/parallaxinc/propgcc") + (commit commit))) + (file-name (string-append name "-" commit "-checkout")) + (sha256 + (base32 + "0w0dff3s7wv2d9m78a4jhckiik58q38wx6wpbba5hzbs4yxz35ck")) + (patch-flags (list "-p1" "--directory=gcc")) + (patches + (append + (origin-patches (package-source gcc-4.7)) + (search-patches + "gcc-4.6-gnu-inline.patch" + "gcc-cross-environment-variables.patch"))))) + (arguments + (substitute-keyword-arguments (package-arguments xgcc) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'unpack 'chdir + (lambda _ (chdir "gcc"))))))) + (native-inputs + (modify-inputs (package-native-inputs xgcc) + (prepend gcc-4.9))) + (home-page "https://github.com/parallaxinc/propgcc") + (supported-systems (delete "aarch64-linux" %supported-systems)))))) ;; Version 6 is experimental and may not work correctly. This is why we ;; default to version 4, which is also used in the binary toolchain bundle ;; provided by Parallax Inc. -(define-public propeller-gcc propeller-gcc-4) +(define make-propeller-gcc make-propeller-gcc-4) ;; FIXME: We do not build the tiny library because that would require C++ @@ -814,7 +899,7 @@ with a layered architecture of JTAG interface and TAP support.") (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "install-includes" make-flags)))))) (native-inputs - (list propeller-gcc propeller-binutils perl)) + (list (make-propeller-gcc) (make-propeller-binutils) perl)) (home-page "https://github.com/parallaxinc/propgcc") (synopsis "C library for the Parallax Propeller") (description "This is a C library for the Parallax Propeller @@ -823,22 +908,24 @@ micro-controller.") ;; included code is public domain and some changes are BSD licensed. (license license:expat)))) -(define-public propeller-toolchain - (package - (name "propeller-toolchain") - (version (package-version propeller-gcc)) - (source #f) - (build-system trivial-build-system) - (arguments '(#:builder (begin (mkdir %output) #t))) - (propagated-inputs - `(("binutils" ,propeller-binutils) - ("libc" ,proplib) - ("gcc" ,propeller-gcc))) - (synopsis "Complete GCC tool chain for Propeller micro-controllers") - (description "This package provides a complete GCC tool chain for +(define make-propeller-toolchain + (mlambda () + (let ((propeller-gcc (make-propeller-gcc))) + (package + (name "propeller-toolchain") + (version (package-version propeller-gcc)) + (source #f) + (build-system trivial-build-system) + (arguments '(#:builder (begin (mkdir %output) #t))) + (propagated-inputs + `(("binutils" ,(make-propeller-binutils)) + ("libc" ,proplib) + ("gcc" ,propeller-gcc))) + (synopsis "Complete GCC tool chain for Propeller micro-controllers") + (description "This package provides a complete GCC tool chain for Propeller micro-controller development.") - (home-page (package-home-page propeller-gcc)) - (license (package-license propeller-gcc)))) + (home-page (package-home-page propeller-gcc)) + (license (package-license propeller-gcc)))))) (define-public openspin (package @@ -906,7 +993,7 @@ code.") (lambda _ (chdir "loader") #t)) (delete 'configure)))) (native-inputs - (list openspin propeller-toolchain)) + (list openspin (make-propeller-toolchain))) (home-page "https://github.com/parallaxinc/propgcc") (synopsis "Loader for Parallax Propeller micro-controllers") (description "This package provides the tool @code{propeller-load} to @@ -951,7 +1038,7 @@ upload binaries to a Parallax Propeller micro-controller.") '("testlex" "spin2cpp" "fastspin"))) #t))))) (native-inputs - (list bison propeller-load propeller-toolchain)) + (list bison propeller-load (make-propeller-toolchain))) (home-page "https://github.com/totalspectrum/spin2cpp") (synopsis "Convert Spin code to C, C++, or PASM code") (description "This is a set of tools for converting the Spin language for @@ -997,26 +1084,28 @@ execution, but it does not support multi-tasking. It supports about two-thirds of the opcodes in the P2 instruction set.") (license license:expat)))) -(define-public propeller-development-suite - (package - (name "propeller-development-suite") - (version (package-version propeller-gcc)) - (source #f) - (build-system trivial-build-system) - (arguments '(#:builder (begin (mkdir %output) #t))) - (propagated-inputs - `(("toolchain" ,propeller-toolchain) - ("openspin" ,openspin) - ("propeller-load" ,propeller-load) - ("spin2cpp" ,spin2cpp) - ("spinsim" ,spinsim))) - (synopsis "Complete development suite for Propeller micro-controllers") - (description "This meta-package provides a complete environment for the +(define make-propeller-development-suite + (mlambda () + (let ((propeller-gcc (make-propeller-gcc))) + (package + (name "propeller-development-suite") + (version (package-version propeller-gcc)) + (source #f) + (build-system trivial-build-system) + (arguments '(#:builder (begin (mkdir %output) #t))) + (propagated-inputs + `(("toolchain" ,(make-propeller-toolchain)) + ("openspin" ,openspin) + ("propeller-load" ,propeller-load) + ("spin2cpp" ,spin2cpp) + ("spinsim" ,spinsim))) + (synopsis "Complete development suite for Propeller micro-controllers") + (description "This meta-package provides a complete environment for the development with Parallax Propeller micro-controllers. It includes the GCC toolchain, the loader, the Openspin compiler, the Spin2cpp tool, and the Spin simulator.") - (home-page (package-home-page propeller-gcc)) - (license (package-license propeller-gcc)))) + (home-page (package-home-page propeller-gcc)) + (license (package-license propeller-gcc)))))) (define-public binutils-vc4 (let ((commit "708acc851880dbeda1dd18aca4fd0a95b2573b36")) @@ -1070,32 +1159,34 @@ the Raspberry Pi chip.") (license license:gpl3+) (home-page "https://github.com/puppeh/vc4-toolchain/")))) -(define-public gcc-vc4 - (let ((commit "0fe4b83897341742f9df65797474cb0feab4b377") - (xgcc (cross-gcc "vc4-elf" #:xgcc gcc-6 #:xbinutils binutils-vc4))) - (package (inherit xgcc) - (name "gcc-vc4") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/puppeh/gcc-vc4") - (commit commit))) - (file-name (string-append name - "-" - (package-version xgcc) - "-checkout")) - (sha256 - (base32 - "0kvaq4s0assvinmmicwqp07d0wwldcw0fv6f4k13whp3q5909jnr")) - (patches - (search-patches "gcc-6-fix-buffer-size.patch" - "gcc-6-fix-isl-includes.patch")))) - (native-inputs - (modify-inputs (package-native-inputs xgcc) - (prepend flex))) - (synopsis "GCC for VC4") - (description "This package provides @code{gcc} for VideoCore IV, -the Raspberry Pi chip.")))) +(define make-gcc-vc4 + (mlambda () + (let ((commit "0fe4b83897341742f9df65797474cb0feab4b377") + (xgcc (cross-gcc "vc4-elf" #:xgcc gcc-6 #:xbinutils binutils-vc4))) + (package + (inherit xgcc) + (name "gcc-vc4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/puppeh/gcc-vc4") + (commit commit))) + (file-name (string-append name + "-" + (package-version xgcc) + "-checkout")) + (sha256 + (base32 + "0kvaq4s0assvinmmicwqp07d0wwldcw0fv6f4k13whp3q5909jnr")) + (patches + (search-patches "gcc-6-fix-buffer-size.patch" + "gcc-6-fix-isl-includes.patch")))) + (native-inputs + (modify-inputs (package-native-inputs xgcc) + (prepend flex))) + (synopsis "GCC for VC4") + (description "This package provides @code{gcc} for VideoCore IV, +the Raspberry Pi chip."))))) (define-public imx-usb-loader ;; There are no proper releases. @@ -1357,12 +1448,11 @@ these identified regions. (define-public stcgal (package (name "stcgal") - (version "1.6") + (version "1.10") (source (origin - ;; Neither the unit tests nor the "doc" subdirectory referred to - ;; by stcgal's setup.py is present in the source distribution on - ;; PyPI, so we fetch directly from the project's git repository - ;; instead. + ;; The "doc" subdirectory referred to by stcgal's setup.py is + ;; missing from the source distribution on PyPI so we fetch + ;; directly from the project's git repository instead. (method git-fetch) (uri (git-reference (url "https://github.com/grigorig/stcgal") @@ -1370,14 +1460,7 @@ these identified regions. (file-name (git-file-name name version)) (sha256 (base32 - "1d10qxyghz66zp7iqpm8q8rfv9jz9n609gxmfcav1lssmf1dlyk3")) - (modules '((guix build utils))) - (snippet - ;; Make tests compatible with PyYAML 6 and later. - '(substitute* '("tests/test_program.py" - "tests/test_fuzzing.py") - (("yaml\\.load\\(test_file\\.read\\(\\)\\)") - "yaml.load(test_file.read(), Loader=yaml.SafeLoader)"))))) + "04hsj49sw5mb6swhd3sdsm7dzwp1frnzpmq70wgsn5vmjavb1ka8")))) (build-system python-build-system) (propagated-inputs (list python-pyserial python-pyusb python-tqdm)) @@ -1388,7 +1471,7 @@ these identified regions. (synopsis "Programmer for STC 8051-compatible microcontrollers") (description "stcgal is a command-line flash-programming tool for STC MCU's line of Intel 8051-compatible microcontrollers, including those in the -STC89, STC90, STC10, STC11, STC12, STC15 and STC8 series.") +STC89, STC90, STC10, STC11, STC12, STC15, STC8 and STC32 series.") (license license:expat))) (define-public stlink @@ -1509,45 +1592,52 @@ handling communication with eBUS devices connected to a 2-wire bus system (define-public ucsim (package (name "ucsim") - (version "0.7.1") + (version "0.8.0") (source (origin (method url-fetch) (uri (string-append - "http://mazsola.iit.uni-miskolc.hu/ucsim/download/unix/" - "source/v" (version-major+minor version) ".x/" - "ucsim-" version ".tar.gz")) + "http://mazsola.iit.uni-miskolc.hu/ucsim/download/" + "v" (version-major+minor version) ".x/" + "ucsim_" version "_orig.tar.gz")) (sha256 (base32 - "080471wvkjdzxz5j3zdaq1apjcj84ql50kn26b7p4ansixnimml4")))) + "0qyrrna2ssvwla15al183r9zqnqdxxlqawyhx9c86a10m8q8qqlz")))) (build-system gnu-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-makefiles - (lambda _ - (substitute* (find-files "." "(\\.mk$|\\.in$)") - (("/bin/sh") (which "sh")))))))) + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-makefiles + (lambda _ + (substitute* (find-files "." "(\\.mk$|\\.in$)") + (("/bin/sh") (which "sh"))) + + ;; Ensure the documentation is installed to the correct path, + ;; without a duplicate "ucsim" segment (necessary as we are + ;; building μCsim outside of SDCC). + (substitute* "doc/Makefile.in" + (("@docdir@/ucsim") "@docdir@"))))) + ;; μCsim's regression-test suite is of little use in this context since + ;; it doesn't stop or return an error code when it encounters a problem. + #:tests? #f)) (inputs (list ncurses)) (native-inputs - (append (list bison flex) - ;; Certain tests use assemblers provided by SDCC. - (if (not (%current-target-system)) - (list sdcc) - '()))) + (list bison flex)) + (outputs '("out" "doc")) (home-page "http://mazsola.iit.uni-miskolc.hu/ucsim/") (synopsis "Simulators for various microcontroller families") (description "μCsim is a collection of software simulators for -microcontrollers in the Atmel AVR; Intel MCS-51 (8051); MOS Technology 6502; -Motorola 6800, 68HC08 and 6809; P1516; Padauk PDK13, PDK14 and PDK15; -STMicroelectronics ST7 and STM8; Xilinx PicoBlaze; and Zilog Z80 families, -plus many of their variants.") +microcontrollers in the Atmel AVR; Fairchild F8; Intel MCS-51 (8051) and 8085; +MOS Technology 6502; Motorola 6800, 6809, 68HC08, 68HC11 and 68HC12; P1516; +Padauk PDK13, PDK14 and PDK15; STMicroelectronics ST7 and STM8; Xilinx +PicoBlaze; and Zilog Z80 families, plus many of their variants.") (license license:gpl2+))) (define-public sdcc (package (name "sdcc") - (version "4.2.0") + (version "4.3.0") (source (origin (method url-fetch) (uri (string-append @@ -1555,42 +1645,56 @@ plus many of their variants.") "/" version "/sdcc-src-" version ".tar.bz2")) (sha256 (base32 - "0ly0m3q9vzjb9kcfjh79s77wpl4w7xhybzy4h9x0bmmw4cfsx6xl")) + "1kckr20jqa4rp4qcw38lwagmw3yfm3z0xb4kygd0608847qc0vra")) (modules '((guix build utils))) (snippet - '(begin - ;; Remove non-free source files - (delete-file-recursively "device/non-free") - ;; Remove bundled μCsim source - (delete-file-recursively "sim") - #t)) + #~(begin + ;; Remove non-free source files. + (delete-file-recursively "device/non-free") + ;; Remove bundled μCsim source. + (delete-file-recursively "sim"))) (patches (search-patches "sdcc-disable-non-free-code.patch")))) (build-system gnu-build-system) + (arguments + (list + #:configure-flags + #~(list + ;; GPUTILS is required for the PIC ports, but the licensing status of + ;; some of the files contained in its distribution is unclear (see + ;; https://issues.guix.gnu.org/44557). For this reason it is not yet + ;; available as a package in Guix. + "--disable-pic14-port" + "--disable-pic16-port" + + ;; Do not build or install the bundled copy of μCsim, for which Guix + ;; has its own package. + "--disable-ucsim") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-makefiles + (lambda _ + (substitute* (find-files "." "(\\.mk$|\\.in$)") + (("/bin/sh") (which "sh"))) + ;; --disable-ucsim disables sdcc-misc, patch it back in. + (substitute* "Makefile.in" + (("debugger/mcs51" line) + (string-append line "\n" + "TARGETS += sdcc-misc\n" + "PKGS += $(SDCC_MISC)"))))) + (add-after 'patch-makefiles 'embed-absolute-ucsim-reference + (lambda _ + ;; Embed in the debugger an absolute reference to the MCS-51 + ;; simulator from Guix's μCsim package to ensure it is always + ;; available. + (substitute* "debugger/mcs51/sdcdb.c" + (("s51") + (string-append #$(this-package-input "ucsim") + "/bin/s51")))))))) (inputs - (list readline)) + (list readline ucsim)) (native-inputs (list bison boost flex python-2 texinfo zlib)) - (arguments - `(;; GPUTILS is required for the PIC ports, but the licensing status of - ;; some of the files contained in its distribution is unclear (see - ;; https://issues.guix.gnu.org/44557). For this reason it is not yet - ;; available as a package in Guix. - #:configure-flags - '("--disable-pic14-port" "--disable-pic16-port" "--disable-ucsim") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-makefiles - (lambda _ - (substitute* (find-files "." "(\\.mk$|\\.in$)") - (("/bin/sh") (which "sh"))) - ;; --disable-ucsim disables sdcc-misc, patch it back in. - (substitute* "Makefile.in" - (("debugger/mcs51" line) - (string-append line "\n" - "TARGETS += sdcc-misc\n" - "PKGS += $(SDCC_MISC)"))) - #t))))) - (home-page "https://sdcc.sourceforge.net") + (home-page "https://sdcc.sourceforge.net/") (synopsis "C compiler suite for 8-bit microcontrollers") (description "SDCC is a retargetable, optimizing Standard C compiler suite that targets 8-bit microcontrollers in the Intel MCS-51 (8051); MOS Technology diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index ab9a15c752..dff60dac48 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -1487,7 +1487,7 @@ replacement for the OpenDWG libraries.") (define-public minicom (package (name "minicom") - (version "2.8") + (version "2.9") (source (origin (method git-fetch) @@ -1495,31 +1495,28 @@ replacement for the OpenDWG libraries.") (url "https://salsa.debian.org/minicom-team/minicom.git") (commit (string-append "v" version)))) (sha256 - (base32 "0kfihxbh9qkjk9m1932ajyqx384c2aj3d9yaphh3i9i7y1shxlpx")) + (base32 "18k0hiljsiq80x93c3qrd1cmcjjvsk1ymin03vncjp1v35xn8248")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments - `(#:configure-flags '("--enable-lock-dir=/var/lock") - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'make-git-checkout-writable - (lambda _ - (for-each make-file-writable (find-files ".")))) - (replace 'bootstrap - ;; autogen.sh needlessly hard-codes aclocal-1.14. - (lambda _ - (invoke "autoreconf" "-vif") - #t)) - (add-before 'configure 'patch-lock-check - (lambda _ - (substitute* "configure" - (("test -d [$]UUCPLOCK") "true")) - #t))))) + (list + #:configure-flags + #~(list "--enable-lock-dir=/var/lock") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'make-git-checkout-writable + (lambda _ + (for-each make-file-writable (find-files ".")))) + (replace 'bootstrap + ;; autogen.sh needlessly hard-codes aclocal-1.14. + (lambda _ + (invoke "autoreconf" "-vif"))) + (add-before 'configure 'patch-lock-check + (lambda _ + (substitute* "configure" + (("test -d [$]UUCPLOCK") "true"))))))) (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("gettext" ,gettext-minimal) - ("pkg-config" ,pkg-config))) + (list autoconf-2.71 automake gettext-minimal pkg-config)) (inputs (list ncurses)) (home-page "https://salsa.debian.org/minicom-team/minicom") @@ -1801,7 +1798,7 @@ analyzer (FFT) and frequency sweep plot.") (define-public capstone (package (name "capstone") - (version "4.0.2") + (version "5.0.1") (source (origin (method git-fetch) (uri (git-reference @@ -1810,7 +1807,7 @@ analyzer (FFT) and frequency sweep plot.") (file-name (git-file-name name version)) (sha256 (base32 - "0y5g74yjyliciawpn16zhdwya7bd3d7b1cccpcccc2wg8vni1k2w")))) + "1j4a6w8p3z5qrkzf0h5aklrnlpvscv6nlq7d3abbpxlyqvk8pach")))) (build-system gnu-build-system) (arguments `(#:tests? #f @@ -4235,7 +4232,7 @@ form, numpad. (define-public rizin (package (name "rizin") - (version "0.6.1") + (version "0.6.2") (source (origin (method url-fetch) (uri (string-append @@ -4243,7 +4240,7 @@ form, numpad. version "/rizin-src-v" version ".tar.xz")) (sha256 (base32 - "14bcmjx64pgi9zj4zb7yppx69l1ykjwgf2q41s5672m7z354f1kn")))) + "0szq3wr7i7gwm8llgbhssjb63q70rjqqdlj6078vs110waih16p2")))) (build-system meson-build-system) (arguments (list @@ -4279,9 +4276,18 @@ form, numpad. (("'hash',\n") ""))))))) (native-inputs (list pkg-config)) (inputs - (list capstone file libuv libzip lz4 openssl tree-sitter xxhash zlib libmspack)) + (list capstone + file + libuv + libzip + lz4 + openssl + tree-sitter + xxhash + zlib + libmspack)) (home-page "https://rizin.re") - (synopsis "Disasm, debug, analyze and manipulate binary files") + (synopsis "Disassemble, debug, analyze, and manipulate binary files") (description "Rizin is a reverse engineering framework and a set of small command-line utilities, providing a complete binary analysis experience with features like diff --git a/gnu/packages/file-systems.scm b/gnu/packages/file-systems.scm index e97013dce3..63de393851 100644 --- a/gnu/packages/file-systems.scm +++ b/gnu/packages/file-systems.scm @@ -575,11 +575,11 @@ from a mounted file system.") (license license:gpl2+))) (define-public bcachefs-tools - (let ((commit "c8bec83e307f28751c433ba1d3f648429fb5a34c") - (revision "17")) + (let ((commit "1e358401ecdf1963e5799de19ab69111e82e5ebc") + (revision "0")) (package (name "bcachefs-tools") - (version (git-version "0.1" revision commit)) + (version (git-version "1.2" revision commit)) (source (origin (method git-fetch) @@ -588,7 +588,7 @@ from a mounted file system.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "0b1avy5mw3r3ppfs3n9cq4zb74yl45nd5l69r6hi27z9q5bc3nv8")))) + (base32 "0bflgqb3q9jikyyrv6hywv6m1fapzzn874hlhf86pn6abxrlf5fa")))) (build-system gnu-build-system) (arguments (list #:make-flags @@ -620,16 +620,23 @@ from a mounted file system.") "not test_list and " "not test_list_inodes and " "not test_list_dirent"))))) - (add-after 'install 'patch-shell-wrappers - ;; These are overcomplicated wrappers that invoke readlink(1) - ;; to exec the appropriate bcachefs(8) subcommand. We can - ;; simply patch in the latter file name directly, and do. - (lambda _ - (let ((sbin/ (string-append #$output "/sbin/"))) - (substitute* (find-files sbin/ (lambda (file stat) - (not (elf-file? file)))) - (("SDIR=.*") "") - (("\\$\\{SDIR.*}/") sbin/)))))))) + (add-after 'install 'promote-mount.bcachefs.sh + ;; The (optional) ‘mount.bcachefs’ requires rust:cargo. + ;; This shell alternative does the job well enough for now. + (lambda* (#:key inputs #:allow-other-keys) + (define (whence file) + (dirname (search-input-file inputs file))) + (let ((mount (string-append #$output + "/sbin/mount.bcachefs"))) + (delete-file mount) ; symlink to ‘bcachefs’ + (copy-file "mount.bcachefs.sh" mount) + ;; WRAP-SCRIPT causes bogus ‘Insufficient arguments’ errors. + (wrap-program mount + `("PATH" ":" prefix + ,(list (getcwd) + (whence "bin/tail") + (whence "bin/awk") + (whence "bin/mount")))))))))) (native-inputs (cons* pkg-config ;; For generating documentation with rst2man. @@ -650,7 +657,12 @@ from a mounted file system.") `(,util-linux "lib") lz4 zlib - `(,zstd "lib"))) + `(,zstd "lib") + + ;; Only for mount.bcachefs.sh. + coreutils-minimal + gawk + util-linux)) (home-page "https://bcachefs.org/") (synopsis "Tools to create and manage bcachefs file systems") (description diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 78bd55fc15..1711649a08 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -34,6 +34,7 @@ ;;; Copyright © 2022 Justin Veilleux <terramorpha@cock.li> ;;; Copyright © 2023 Frank Pursel <frank.pursel@gmail.com> ;;; Copyright © 2023 Skylar Hill <stellarskylark@posteo.net> +;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -76,6 +77,7 @@ #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages cpp) #:use-module (gnu packages crypto) #:use-module (gnu packages curl) #:use-module (gnu packages databases) @@ -1810,36 +1812,70 @@ a Qt GUI.") (define-public fulcrum (package (name "fulcrum") - (version "1.1.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://gitlab.com/FloweeTheHub/fulcrum/-/archive/v" - version "/fulcrum-v" version ".tar.gz")) - (sha256 - (base32 "04w5gw02d39caa8a0l6wkn87kc43zzad2prqsyrcq97vlbkdx6x6")))) + (version "1.9.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cculianu/Fulcrum") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (modules '((guix build utils))) + (snippet + #~(for-each delete-file-recursively + '("src/Json/simdjson" + "src/bitcoin/secp256k1" + "src/robin_hood" + "src/zmq" + "staticlibs"))) + (sha256 + (base32 + "1110vanl6aczlq25i4ck9j4vr81in5icw4z383wyhjpcy6rwxsw2")) + (patches + (search-patches "fulcrum-1.9.1-unbundled-libraries.patch")))) (build-system gnu-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - ;; Call qmake instead of configure to create a Makefile. - (replace 'configure - (lambda _ - (invoke - "qmake" - (string-append "PREFIX=" %output) - "features=")))))) - (native-inputs - (list qttools-5)) + (list #:configure-flags + #~(list "CONFIG+=config_without_bundled_cppzmq" + "CONFIG+=config_without_bundled_robin_hood" + "CONFIG+=config_without_bundled_secp256k1" + "LIBS+=-lrocksdb" + #$@(if (target-64bit?) '("LIBS+=-lsimdjson") '()) + (format #f "DEFINES+=GIT_COMMIT=\"\\\\\\~s\\\\\\\"" + #$version) + (string-append "PREFIX=" #$output)) + #:phases + #~(modify-phases %standard-phases + (replace 'configure + (lambda* (#:key configure-flags #:allow-other-keys) + (apply invoke "qmake" configure-flags)))))) + (native-inputs (list pkg-config qttools-5)) (inputs - (list python qtbase-5 rocksdb zlib)) - (home-page "https://gitlab.com/FloweeTheHub/fulcrum/") - (synopsis "Fast and nimble SPV server for Bitcoin Cash") + (append (list cppzmq + jemalloc + python + qtbase-5 + robin-hood-hashing + rocksdb + zeromq + zlib) + (if (target-64bit?) + (list simdjson-0.6) + '()))) + (home-page "https://github.com/cculianu/Fulcrum") + (synopsis "Payment verification server for Bitcoin-like crypto-currencies") (description - "Flowee Fulcrum is a server that is the back-end for @acronym{SPV, -Simplified Payment Verification} wallets, it provides the full API for those -walets in a fast and small server. The full data is stored in a full node, -like Flowee the Hub, which Fulcrum connects to over RPC.") + "Fulcrum is a @acronym{SPV, Simplified Payment Verification} server for +Bitcoin-like crypto-currencies. The server indexes the blockchain of the +crypto-currency used, and the resulting index can be used by wallets to +perform queries to keep real-time track of balances. + +Supported crypto-currencies: + +@itemize +@item Bitcoin Core. +@item Bitcoin Cash-like. +@item Litecoin. +@end itemize") (license license:gpl3+))) (define-public flowee diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index cbb24230de..08fe8311dc 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -796,7 +796,7 @@ after an operating system boots.") (define-public edk2-tools (package (name "edk2-tools") - (version "202211") + (version "202308") (source (origin (method git-fetch) (uri (git-reference @@ -805,11 +805,12 @@ after an operating system boots.") (file-name (git-file-name name version)) (sha256 (base32 - "1264542mm0mffjcmw5sw34h94n405swz5z56rw1ragp3j62144iy")))) + "19g3g94hayvcwmn6sjs6mghq0qf5nsd785k5j8szcrj2p0vjh54f")))) (build-system gnu-build-system) (arguments (list #:make-flags - #~(list (string-append "BUILD_CC=" #$(cc-for-target))) + #~(list (string-append "BUILD_CC=" #$(cc-for-target)) + (string-append "CC=" #$(cc-for-target))) #:test-target "Tests" #:phases #~(modify-phases %standard-phases diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm index d9f59cd0b7..82e709cf26 100644 --- a/gnu/packages/flashing-tools.scm +++ b/gnu/packages/flashing-tools.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2021 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org> ;;; Copyright © 2022 Peter Polidoro <peter@polidoro.io> +;;; Copyright © 2023 B. Wilson <x@wilsonb.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -59,9 +60,11 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages libusb) #:use-module (gnu packages libftdi) + #:use-module (gnu packages linux) #:use-module (gnu packages pciutils) #:use-module (gnu packages qt) - #:use-module (gnu packages tls)) + #:use-module (gnu packages tls) + #:use-module (gnu packages xml)) (define-public flashrom (package @@ -581,3 +584,32 @@ formats, and can perform many different manipulations.") (description "@code{uuu} is a command line tool, evolved out of MFGTools. It can be used to upload images to I.MX SoC's using at least their boot ROM.") (license license:bsd-3))) + +(define-public qdl + (let ((commit "13681fcb359c9f9c32a17a91d3dd20df2e413b6d") + (revision "1")) + (package + (name "qdl") + (version (git-version "1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.linaro.org/landing-teams/working/qualcomm/qdl.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0m6wdhfwbf7gzlckxx21bvbv33qjahpzqbg1pdqdd1lifx5f51mj")))) + (build-system gnu-build-system) + (native-inputs (list libxml2)) + (inputs (list eudev)) + (arguments + `(#:tests? #f ; No tests implemented + #:make-flags (list (string-append "CC=" ,(cc-for-target)) + (string-append "prefix=" %output)) + #:phases (modify-phases %standard-phases (delete 'configure)))) + (home-page "https://git.linaro.org/landing-teams/working/qualcomm/qdl") + (synopsis "Qualcomm EDL mode flashing tool") + (description "This tool communicates with USB devices of id 05c6:9008 to +upload a flash loader and use this to flash images.") + (license license:bsd-3)))) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 404495f6e3..5c364ec802 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -1937,7 +1937,7 @@ weights and five widths in both Roman and Italic, plus variable fonts.") (define-public font-sarasa-gothic (package (name "font-sarasa-gothic") - (version "0.41.8") + (version "0.42.0") (source (origin (method url-fetch) @@ -1945,7 +1945,7 @@ weights and five widths in both Roman and Italic, plus variable fonts.") "/releases/download/v" version "/sarasa-gothic-ttc-" version ".7z")) (sha256 - (base32 "0m2c3g8c6wxgyyvmraln4bx0qn949j9rin593s1c01hzah435cac")))) + (base32 "06yvymkkmp8g7innmwg9xc6wdsfngj118k1fhp8fcav4110qx585")))) (build-system font-build-system) (arguments `(#:phases (modify-phases %standard-phases diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 18697cd821..c781ae2baf 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -789,9 +789,18 @@ suite of the @code{psautohint} package.") (build-system pyproject-build-system) (arguments (list - ;; The CJKSparseVar.subset.hinted.otf test fails with slightly different - ;; output caused by the newer fonttools version used in Guix. - #:test-flags #~(list "-k" "not CJKSparseVar.subset.hinted.otf") + #:test-flags + #~(list "-k" + (string-join + '(;; The CJKSparseVar.subset.hinted.otf test fails with slightly + ;; different output caused by the newer fonttools version used + ;; in Guix. + "not CJKSparseVar.subset.hinted.otf" + ;; These tests fails underministically, See also: + ;; https://github.com/adobe-type-tools/afdko/issues/1678 + "not test_hashmap_no_version" + "not test_hashmap_old_version") + " and ")) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'copy-font-data diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 0b7518c2c2..e4065c88b2 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -128,6 +128,7 @@ #:use-module (gnu packages cyrus-sasl) #:use-module (gnu packages documentation) #:use-module (gnu packages docbook) + #:use-module (gnu packages emacs) #:use-module (gnu packages emulators) #:use-module (gnu packages flex) #:use-module (gnu packages fltk) @@ -412,48 +413,6 @@ enemy, ally, weapon and mission types. Features include simulated 4D texturing, mouse and joystick control, and original music.") (license license:gpl2)))) -(define-public alex4 - (package - (name "alex4") - (version "1.2.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/carstene1ns/alex4") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "098wy72mh4lsvq3gm0rhamjssf9l1hp6hhkpzrv7klpb97cwwc3h")))) - (build-system gnu-build-system) - (arguments - `(#:tests? #f ; no check target - #:make-flags - (list "CC=gcc" - "CFLAGS=-D_FILE_OFFSET_BITS=64 -fcommon" - (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:phases - (modify-phases %standard-phases - (delete 'configure) ; no configure script - (add-after 'install 'install-data - (lambda* (#:key outputs #:allow-other-keys) - (let ((share (string-append (assoc-ref outputs "out") - "/share/" ,name))) - (install-file "alex4.ini" share) - #t)))))) - (inputs - `(("allegro" ,allegro-4) - ("dumb" ,dumb-allegro4))) - (home-page "https://allegator.sourceforge.net/") - (synopsis "Retro platform game") - (description - "Guide Alex the Allegator through the jungle in order to save his -girlfriend Lola from evil humans who want to make a pair of shoes out of her. -Plenty of classic platforming in four nice colors guaranteed! - -The game includes a built-in editor so you can design and share your own maps.") - (license license:gpl2+))) - (define-public anarch (let ((commit "2d78d0c69a3aac14dbd8f8aca62d0cbd9d27c860") (revision "1")) @@ -3778,9 +3737,9 @@ Portable Game Notation.") (substitute* file (("ncursesw/ncurses.h") "ncurses.h"))) - (find-files "." "configure$|\\.c$")) - #t)))) + (find-files "." "configure$|\\.c$")))))) (build-system gnu-build-system) + (native-inputs (list emacs-minimal)) (inputs (list ncurses perl)) (home-page "https://www.gnu.org/software/gtypist/") (synopsis "Typing tutor") @@ -10460,15 +10419,14 @@ protect you.") (define-public 7kaa (package (name "7kaa") - (version "2.15.5") + (version "2.15.6") (source (origin (method url-fetch) - (uri (string-append "https://github.com/the3dfxdude/7kaa/" - "releases/download/v" version "/" - "7kaa-" version ".tar.xz")) + (uri (string-append "mirror://sourceforge/skfans/" + "7KAA%20" version "/7kaa-" version ".tar.gz")) (sha256 - (base32 "0axbv14fh87hwjabrb3zv7ivj88rs6kd2xq6s9qlpsszk20jc2im")))) + (base32 "15a0cl55bg479gw880yz48myg336q5lwp2zpyxyyhyadq26vjy9c")))) (build-system gnu-build-system) (native-inputs (list gettext-minimal pkg-config)) @@ -11050,7 +11008,7 @@ play; it will look for them at @file{~/.local/share/fheroes2} folder.") (define-public vcmi (package (name "vcmi") - (version "1.3.1") + (version "1.3.2") (source (origin (method git-fetch) (uri (git-reference @@ -11059,7 +11017,7 @@ play; it will look for them at @file{~/.local/share/fheroes2} folder.") (file-name (git-file-name name version)) (sha256 (base32 - "0jq84i6lxp96xkzq9mq8n2bbmincjzi39vijj9ws8i59c7xvjw5f")) + "1x1bzd89h0j4xci91d2v5aj5vgkx6vm12iml805wkia4hy1jp4ff")) (patches (search-patches "vcmi-disable-privacy-breach.patch")))) (build-system cmake-build-system) (arguments diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index c3a2d6256c..04926e6385 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -783,6 +783,28 @@ It also includes runtime support libraries for these languages.") ("x86_64" ,@%gcc-12-x86_64-micro-architectures)) ,@(package-properties gcc-11))))) +(define-public gcc-13 + (package + (inherit gcc-11) + (version "13.2.0") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/gcc/gcc-" + version "/gcc-" version ".tar.xz")) + (sha256 + (base32 + "1nj3qyswcgc650sl3h0480a171ixp33ca13zl90p61m689jffxg2")) + (patches (search-patches "gcc-12-strmov-store-file-names.patch" + "gcc-5.0-libvtv-runpath.patch")) + (modules '((guix build utils))) + (snippet gcc-canadian-cross-objdump-snippet))) + (properties + `((compiler-cpu-architectures + ("aarch64" ,@%gcc-13-aarch64-micro-architectures) + ("armhf" ,@%gcc-13-armhf-micro-architectures) + ("x86_64" ,@%gcc-13-x86_64-micro-architectures)) + ,@(package-properties gcc-11))))) + ;; Note: When changing the default gcc version, update ;; the gcc-toolchain-* definitions. diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index b53b42a9ba..fd59ad9605 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2019 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org> -;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2020, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru> ;;; Copyright © 2021, 2022, 2023 John Kehayias <john.kehayias@protonmail.com> @@ -760,7 +760,7 @@ OpenGL graphics API.") (define-public libglvnd (package (name "libglvnd") - (version "1.5.0") + (version "1.7.0") (home-page "https://gitlab.freedesktop.org/glvnd/libglvnd") (source (origin (method git-fetch) @@ -770,7 +770,7 @@ OpenGL graphics API.") (file-name (git-file-name name version)) (sha256 (base32 - "1nvlcwzivrdchp70i2l7ic7qdlsdmlsb0ckydscr43rhqldswx69")))) + "07v3bmwzmg0d4g2zp835v1g7j22j8vz7hjfmqrdqjgxjj6v4jkyr")))) (build-system meson-build-system) (arguments '(#:configure-flags '("-Dx11=enabled") @@ -883,12 +883,50 @@ OpenGL.") "1kcrpl4d6b6h23ib5j9q670d9w3knd07whgbanbmwwhbcqnc9lmv")))) (build-system cmake-build-system) (arguments - '(#:tests? #f ; no test target - #:configure-flags '("-DBUILD_SHARED_LIBS=ON"))) - (native-inputs - (list doxygen unzip)) + (list + #:modules '((guix build cmake-build-system) + (guix build utils) + (ice-9 format)) + #:tests? #f ;no test target + #:configure-flags #~(list "-DBUILD_SHARED_LIBS=ON") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-sonames + (lambda* (#:key inputs #:allow-other-keys) + (let-syntax ((patch-sonames + (syntax-rules () + ((_ (file ...) soname ...) + (substitute* (list file ...) + (((format #f "(~@{~a~^|~})" soname ...) lib) + (search-input-file + inputs (string-append + "lib/" lib)))))))) + ;; Avoid looking in LD_LIBRARY_PATH for dlopen calls. + (patch-sonames ("src/egl_context.c" + "src/glx_context.c" + "src/vulkan.c" + "src/wl_init.c" + "src/x11_init.c") + "libEGL.so.1" + "libGL.so" + "libGL.so.1" + "libGLESv1_CM.so.1" + "libGLESv2.so.2" + "libvulkan.so.1" + "libwayland-cursor.so.0" + "libwayland-egl.so.1" + "libxkbcommon.so.0" + "libXxf86vm.so.1" + "libXi.so.6" + "libXrandr.so.2" + "libXcursor.so.1" + "libXinerama.so.1" + "libX11-xcb.so.1" + "libXrender.so.1"))))))) + (native-inputs (list doxygen unzip)) + (inputs (list libxkbcommon wayland vulkan-loader)) (propagated-inputs - (list mesa ;included in public headers + (list mesa ;included in public headers ;; These are in 'Requires.private' of 'glfw3.pc'. libx11 libxrandr diff --git a/gnu/packages/gnunet.scm b/gnu/packages/gnunet.scm index f16a223d10..d1ac228639 100644 --- a/gnu/packages/gnunet.scm +++ b/gnu/packages/gnunet.scm @@ -409,14 +409,14 @@ services.") "faketime -m -f '1970-01-01 00:00:00' $(TEXMACS_CONVERT)"))))))) (inputs (list guile-3.0)) ;for pkg-config (propagated-inputs (list guile-bytestructures guile-gcrypt guile-pfds - guile-fibers-1.3)) + guile-fibers)) (native-inputs (list guile-3.0 ;as a compiler ;; for cross-compilation, the guile inputs need to be ;; native-inputs as well. guile-bytestructures guile-gcrypt guile-pfds - guile-fibers-1.3 + guile-fibers libfaketime automake autoconf diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index aa268da561..81c8fde536 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -375,6 +375,26 @@ from collections.abc import MutableSequence")))) (list icu4c-69 readline zlib)))) +;; +;; Needed for IceCat 115. +;; +(define icu4c-73-promise + (delay + (package + (inherit icu4c) + (version "73.1") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/unicode-org/icu/releases/download/release-" + (string-map (lambda (x) (if (char=? x #\.) #\- x)) version) + "/icu4c-" + (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version) + "-src.tgz")) + (sha256 + (base32 + "0iccpdvc0kvpww5a31k9gjkqigyz016i7v80r9zamd34w4fl6mx4"))))))) + ;;; ;;; Localization helper procedures. ;;; @@ -417,111 +437,114 @@ variable defined below. It requires guile-json to be installed." (mozilla-locales ;; sha256 changeset locale ;;--------------------------------------------------------------------------- - ("1s59ihmj8x6z0ssq4xav689jb5azrpdnay8csgjm1b9pw7wmvcli" "a6940ae1a02f" "ach") - ("1cqixlk9f8p63jz20wzsvnfb7xa82ba725gzdydlwz2axgp09c26" "4e2c7d1ddbed" "af") - ("19r1yhmfxqasyslc8gr9as5w1scscz1xr8iqy9zi4b90fdjzs0ac" "06897e40a7ea" "an") - ("0nfknb1p03j9fgmkwlm1mzdyh10g0l33x34ab39kc072apziyv0n" "9272819b09e2" "ar") - ("11qqblqfffbmkdr5b6mxzq02i8rj1hjq3iy6xv5i5xxy311b3vpb" "f706d22e6910" "ast") - ("0q2p1a437qr2nshdd4934qkv2sblmykiwzir149c8p9m5sjk0dyw" "f5c2a9800add" "az") - ("0gxxm3lv18kj0922bw0g897azc4nkrszm5irgwdkgmkbyr97li83" "98ba7d51484f" "be") - ("10vrbbaabjns824ndya6c09znm815pak2xpvqgjydl3r5qvacx65" "5c79c77311cd" "bg") - ("1il7yyifx5xzj0v2lna315mppl5pk1vi4m9r66hdz1lzc485m1wp" "c80c87ef7193" "bn") - ("1p1ig4v9pczzrnnxzr20r61g7xk85k5lgnxhzgn1rx518p85xrkm" "6a1bcb9851b2" "br") - ("08q33bk9kdvbyc4ib58bsn2b67ki3d2yzskkf5r2n5zlglblksa2" "939779cb58d6" "bs") - ("1bdkywrqah85fh8kfnz163qnc02ffx0a4vlnx5pq1wg9j4f1gznf" "9a45ccf144f1" "ca") - ("0hhmp5dzc0rssykl0b2n9h0vfy4svwhxmhpsr3rcfpbg2s0r5h6l" "4f60e18fc248" "ca-valencia") - ("18phbl9raqsbys9wa8z0gq0h0pw3b55v6ngn67r4373lfc0s9cxv" "b4ef404c7de8" "cak") - ("0147qyw1y97mgqhkb46wblxv61lq2mvvm5n5ihwf49l5cyizi0jg" "f56ef18f05df" "cs") - ("08sbhnsxndlsaijnxndc367qcbrzb29m7bpkcawinz9fg6mz3573" "4f9d92f04f5e" "cy") - ("09cm5kk1sh2a6ws1fj185jrknhfa6n4bhj7nfnr4lsk339n0kvv9" "902503567e30" "da") - ("0r630bki5d4ylicq6lzh6s2mvsq225933szswmm0sap507rj75cm" "6000baf7a412" "de") - ("0749qjsfv3rn94rnci3ydgndw27qlr3w3w97kfwma2gmsf3m3r0p" "4a948952d1f4" "dsb") - ("0yc64i7mpxhs4qlyyh59i2aiz0vpap0bn8slcsk8b71wd1d7cy5m" "153a16a13733" "el") - ("0d4m5ji6ii10yap8y24cxx3fr60ba1jqi10hy3j1cq6ni7hzavga" "7ce17ae529ac" "en-CA") - ("12jzqcfbgdhfm8f2gqp15bdnin62li07jwicjc8ynn4cl9a19xiz" "a25d9eea7c23" "en-GB") - ("0gbb8hfc5yvjah63mapjxm53wxrf98srbrbg43b9g734zfi4n8y5" "4ed3471dad5d" "eo") - ("19lw7zmqx2irjmv5y6r7nncp6nysn06abf10n3dzj5nzgays6sln" "853fe7acb415" "es-AR") - ("0rq4pa380b77rkv6dq7sqx8a8i33jk3vs5rgcl8fv7slqvsw23kd" "921b67bf27a5" "es-CL") - ("1dyxzab9hln5spch66wmfagfzmfdiaxgpq7qlzvdfg98wkqdj25n" "c9a210ea496c" "es-ES") - ("1gwpmfl37wxl7rynqswgj41liljflgxydvljd4zdhk3jzqn605fb" "ddd35183d81c" "es-MX") - ("0c3blniddklapifnjbz03f2frw24jjgwgwn6swl5mwm2z0y6wa9f" "82d23ffaa7d3" "et") - ("05mq2df6n6fr8m5m2xwl0f6n1q3zgjrnk465ldx1nfr9agrhd36c" "13975626d549" "eu") - ("1l1jyqqiy551903j6yzh9ayg1pf26q2hr9h3jj4l51xzp7x4ms2q" "039e1fdb7c71" "fa") - ("091l05y9sggxznv0y11b9zy5qf146p0hb5faw4ix7yn5p5kca2f5" "7bd3722d82de" "ff") - ("1lllwjvmbl5dx44fcvsqg08fbflkc8dx5as9n6nf4xlkzydx6izm" "39808e88c9d1" "fi") - ("10ha955vvyf5vbciricm72kplj9j0s00g2333lmg46jiwi7aviiv" "426d373db6a7" "fr") - ("11zdfk8jvdy1k9z1q162cwapplcbz35l3dq4mv45brdin3v0x8kr" "96cd93d18389" "fy-NL") - ("1l5xr25gmssyachwmfprlnp2v2xj4b0hp8gxrf7fi5bvv9c2fynb" "de3daf7d3f9d" "ga-IE") - ("06h9ijfsn1cgz5fvxxbisk7fvqhgsw99id92575hgyg1p8xb1n69" "f04aea656d9e" "gd") - ("19913i5n8yyfhz9j21krlk7wqsyy89vggxc1m1swv94y2ix8rpaj" "1b8cdb87bf69" "gl") - ("0k5x31bfl2l0r9b5dkn03frm1gd8n6igai7ch2f1kj0skflynwww" "82df570c4241" "gn") - ("03rygnj9xhfvykark7dls117kwhid13ghvrsqiial0vp8m7ymx79" "e2e41d7beaa5" "gu-IN") - ("0vyraplj1x7b5im15anhzdaq03k2gqfyybgklrd4f9ry6msh5jhx" "de724e943805" "he") - ("1zqps586jrgxpf7xx2l3qw3ch3fr31r9a25y861fpxrpvh7ygw7g" "898598e1a5c6" "hi-IN") - ("0czq68l3qdhdc0mgazlrh8x83a6d5qrjwgjv8xvsmmzi7h68ww0l" "2711d1515af0" "hr") - ("1wwvrnm38gk2rnw4vmcranh8hk61gjcj9292pck3ckiv6mq7kd4s" "03e02f3d0676" "hsb") - ("0yvgdxlbyhhg3lk43hxx9gx66rcm7gaj02zzzx5zni8dhvlk2v6m" "d423ada9dc00" "hu") - ("1kjm7bg4990jhfbxwc38r4lqm2fbcxc82nc2d4qkqwikr4aah4b9" "06836af0bd6e" "hy-AM") - ("1dla7r3snvagb7m985xxqyi7gl498cr5xsz8msw0zpg6xmi05rlx" "299bd950d538" "ia") - ("0w8w9xn93akir7nqcp5iwr3kqvba5gbirg7gmzlzg7mgrhw8pcsa" "dee087477b99" "id") - ("10iakv1c1d20ihxg1s7c3zc1zfw18vr2kspcw7bk5k02rmrffgcn" "320095d063ed" "is") - ("1xn5pa3rc7l6k2migm3c0dx71q1hk7mjls045xpv9cy8gvirnj94" "4722680fb5bf" "it") - ("0va9zfj3wqh1yvbgh3x808yvdyxkg780vazjg887wbxpfk1n6hxa" "cb3cfe294621" "ja") - ("0qvjc3fhk6jg2c3g6mymmnslg1rkkxmv9gi3whf2bc5mzfgyc5zw" "7efe92bd7780" "ja-JP-mac") - ("0zfiwwz0axbd219ar32c7a6b8h816sf04ajx6jl74s5kyij79y82" "4c1fe3a18da9" "ka") - ("1aiik4758r5df76q2a132y5fjdjrsxshjylk7irwsr7yy0c7f63g" "acdf76048aa0" "kab") - ("0icxh4sgv6m1yykycb9d9c43k3r6w02f9c6jr04wm8hvqq5icfl5" "9b418ff7936b" "kk") - ("1cqlhggf46lr7w399k7qb7a1hc56f32w1dy26i2racpppzza5plc" "9771ada0b5f8" "km") - ("0p04irnb7x7y37m6lz388x9dynn8rnk000avpp296barajnhs5i8" "645aa37a2112" "kn") - ("1lbc1fxr5i0ccymlsd8axz3633cqggg5k8ak5yqwi704g7kvv9g2" "1cd68952d119" "ko") - ("11b55bxg73zqfdn5gy9nn5imab2mv0hxr603whggp7vymllgb7kb" "26bb83959bfe" "lij") - ("15jsijm6d26i0105gz0f7sh2yh2v4pmw4j95cwkdrb1d8m935jlz" "b9829891f153" "lt") - ("0liwwv13fgyw97nizhsyy53xrbf8jks5ics7qkkxfccawjrg5rlb" "e5f09d03d959" "lv") - ("0w420yf3hdnl7dp9mn9ghc20cq79k24fn9adn3syk723ppl6mkb0" "7884845e94f3" "mk") - ("13wkr7rgqsv9w3d9w7k8lnxdzgfixsq4bmc27zsyc770l6062ml6" "030db7412202" "mr") - ("06nsadcnxx0ssdp67x47dj9crihn1ycgd5mwvn5m7lkb97r4ch9f" "40a7703e875c" "ms") - ("0mlnjdzck6dp9p59ajj3sr63r36fn0qi8r9scrqrqcisgfclw9sg" "daca40056531" "my") - ("0z1hgx9d5i9w20f9k9azzng1y3lmm5d6hdjkj7rf6r5710bhhzh5" "664bd049e105" "nb-NO") - ("1466qvrs13g2iix1k35cknb2pia9b66li2ncvdyqf0jsd92z9k8x" "eaa6ae781ba0" "ne-NP") - ("0jgmz2lkzj0aspd9mabygzic6li5s2b25y0r6vjg8mv3jm5pi86j" "5ef8f1c9739e" "nl") - ("1m46x0h20vdfbzjxlz0ac43dbaq40xnyldr2yzbf7pk5di9pzxa6" "f08e15466d5d" "nn-NO") - ("0r3zvihqh6iya3z1qm7if0m3zfgf81s9qp7x7qc701h2q357wkgf" "6712c0e12ec2" "oc") - ("102j89jm28c223yhhkrj76xxj4kmy58hcs2r0jn15xa1qkqv1fdk" "8f36cc819e00" "pa-IN") - ("1j9za6s0i46abn8dsrlkpck3qxxw35rhfcg1xs1vp8sc4ckg8qwi" "c3b0c1c02b94" "pl") - ("1k9lbsvckpwl4xax8kxp5yxsfkspq2mhqm77jh5nl9aw88dsn55b" "cc32bf9630fe" "pt-BR") - ("0f0jyvbn2sa5m66wqdzh4607g4gd0270xq37ipd9ls52b4764bd8" "5478d7242086" "pt-PT") - ("19znkkialh1d4np7qcp80xkagrf1j2xah2s1xxzsh854p3d30zs7" "dd934a76fb01" "rm") - ("1xn26r8g8zzkb5myfgmnjbk8k4i0brkvbrvnhp7k5nkrnsin25di" "d57ab3dee73d" "ro") - ("04rhkxlmpp5pyzw85ldbfkmiigqr2p9y5cbns5dqs6sz1633ccxp" "7aea98f33a20" "ru") - ("1zzkkxl7ayxh5gx9snyvp5czflsvi77hp48li613h3c2fii4n9qk" "7c986f4b5044" "sco") - ("1219i0ghhqj3s1i0rm68jjkvivh6y40938wav7z4ifck527sq6r1" "bc9e55d4e3ea" "si") - ("05i5p3n3a6hgl6rf10yjs4vag7y3rn2jwgxsddcdcqiv6405zn81" "8814afd7f67e" "sk") - ("1wcqdbm1py1ldq6cj2g201m715nql79r6szr71jvrxacb711c62a" "20013dc06e96" "sl") - ("0g2izkaa4ipwgwyhy77ciyrxxpf4pxzj9mjqvxriy5prmkhm3zjs" "d86d5d2b6eef" "son") - ("1cc99m6srjg8698dkc3il70crby0mdv43v3ijwy069k4w50hyjjg" "49bb5fae5d9b" "sq") - ("13kfssq4fhq9mb36as6sxiaffl17qyg1wdw8kpz3ilqm86bsjrgl" "d6a0ab79b06f" "sr") - ("1wx9snbm0431q97i0q0nv4wbsqcv9nhllwfr88crlp7bfj5w8czw" "4bab04993da3" "sv-SE") - ("0laglkfl8ml0ip5vmm3z2q790hgwax9gfqwq3wm68a2nnsyck8fw" "4b3316c4aa48" "szl") - ("15pnlic4q7m48y0mc5yh8w5yscjwzx0mmfrbj3f2b9jxxa44nx4h" "48c7aab86db8" "ta") - ("16qar5y0wns75ryi8bfv7yln3mjsyn7qi4345zcniz3ydgkczh46" "7bbb3dac8f47" "te") - ("112g7x8h0qz16r5faam386x4a0rgwd4zy02d5agmg9m0kbficdfx" "009fd0852454" "th") - ("1l80kh9byqxnz5vkz357rb39g4y9sgn9pr0v29ywp6d009img1qg" "dad9caecd7a9" "tl") - ("1nalvjlxxsa9wldhhdb93bgfc7dl084xayh7i7mgg93yjgrym93x" "0c48082d37cd" "tr") - ("0wkxqcfgsra2ljws28kiwajv73w9aa8drsc4fqlg9krbicnjl2n8" "f6d105faedcc" "trs") - ("18jf4ysrfv3635fyxc1vwr970dr2r05bl3h8v599pwp2g7jzyjpm" "e1011388a55e" "uk") - ("1ihmksjsz54yii23qda5iv8cxrj9144afy75hzhvfi6m182kj4h8" "c4e927eab511" "ur") - ("0d42dhfa2vcw24wsvwf95pw20np0pz8c0is6p4307n981n8s207y" "7063df917cb3" "uz") - ("04khnkrg8css55hyna01jqay9c2ppxk5znbx2zj9i25knhvvx1lq" "1753054e6ab8" "vi") - ("0fi5kxn78xp7s15svkqlf4748j4pzxh941nm52n6kbbrhyi3qcqn" "93bc595dc32e" "xh") - ("0jg676vd37wqgzjnm0yynj7xrvm6fsgdwg296h78wnyc33zc4ads" "edd4e468bc31" "zh-CN") - ("1y4wldm3z95mfjlficp994jyqg0lj07wi35b79dy1s8ljy3jilil" "0bad1f7d2b2d" "zh-TW"))) + ("152dc3nxbsjhawq8wm040hbnhq96l039j3k8ll4q93qm93msj507" "de9eb6a1e3e0" "ach") + ("0rfbzyv87x5d4qspjaiwsvqcf57g0d93daibj4rc4xsq3g2gw45v" "45b72420bf17" "af") + ("13lfl3nq0nr3zvh1zddpnyk8x054784yz08nkprmqhzyvfv3i5wq" "babed417b5e8" "an") + ("07fjh9wvl9jgvyqbvsd7l4pq895y4sv725fd8fr274s6l4x7pzz0" "7df35a519b47" "ar") + ("04zmfr15a3zhalj66ydpcrh3nxk1q7wb2gckfqsq55q72i3hvkcy" "fd0068a8989f" "ast") + ("1x2hnsa1nfmysd7w53ly14bp8hk1vbgfj1016wapcshvf1kap3mr" "4df6d5edc74d" "az") + ("1synmbnng6ai8gmz8srxdgf3qgadjvymb66inp3g2lww0c98c4qn" "97829729f043" "be") + ("1zank8f4145v4fv28y47ssknn55zrpyll3kxhha2h54za4zkn4p1" "4f568ae49cf3" "bg") + ("00wdllmdmzg11x6dcj3f2i047y3bgab1qw2zjaa92i36d5nd2hdr" "a634f8559ffd" "bn") + ("0b5f50ar7zj2z1jjvhv8841rabx5a2ylcl0rma3qiz5i6r41lgli" "4ca046b16e37" "br") + ("1g1qh8b496psq9yknjzi7drzqzhd5g50xl5qiwd6pr61xyqfvnkx" "690960700526" "bs") + ("1wd463lfhdybx0nz0dqvhrsi7f9xl5qd7mvshpgqxlj5x1nhamzy" "58714a456fd6" "ca") + ("1s9ls2fh9xfgb8q9vay5lkszfhh0k99lrp28m3fi83b5vv8qj8fq" "12760eef74bc" "cak") + ("0abwslv88hda2wfsnkyi7si9v16923gf4xfbq3h0a6mpxf1mylhs" "703352c2a9b4" "ca-valencia") + ("05pfacr2kk0sxrpw3s15c8rvchkzxgvsy1njp5q72b270sw98i7h" "6a7eef3982fb" "cs") + ("0cidwylb4s7n1hdw4yjqj89bl2qsscf3b1vnfl7hsxf68lj2lzaj" "9c30e4ec1dde" "cy") + ("10d7mn2qq0nvw3073ga4garwnvpk5xqkgn3dgw1az2g5pncclhfk" "668cf42570ef" "da") + ("0nfb3nf47gavafb35mm4ghl82kpylyj0r1vqc47nz151mjj2mnli" "c968a5118cda" "de") + ("1qjf12aymz1x281chv7sqyarbz6f8w7nxsli3b4srsar12l5f0lb" "27dd7f4a3f3f" "dsb") + ("040165lwplyj0cv9ccagdjwigy527rli3qda6b633bqrpx6310sw" "920e28aa6758" "el") + ("1h5zk58rmrqnbfhxyiwcn0385v6r5ayfkblpwqkji80p135n74sa" "b0e55a5a6413" "en-CA") + ("1w5q4b1a9ysgc76dg45cr2q55y4djdcrj2qzs0imq61sjrvih2fv" "9aae743f32df" "en-GB") + ("0mxsp5ipg36jdpphwrdra877z9vz1ifbhas988awhc3i9byx7zbh" "3c825be76f39" "eo") + ("1nxscjmk80wh359lv4cxgh1y85f8qw522dppy292pkqnqnsrfnq1" "ffac56bd3aef" "es-AR") + ("02353n524fy5icp2myjn198n511lzb03hcd4a61bgd7f26cpkhy5" "77e209bb2114" "es-CL") + ("1863d4zy2745hfw2kgw5z0625znvzkqwlwbvcj8cw6nv3r6dxgdv" "215ced58e499" "es-ES") + ("0asrcxvig4i75r4kpkmcfsc1kzjl8cbaz11an5kny2slcy63av7i" "d748a2a91643" "es-MX") + ("1p40zmf29mq81blssjh6gs8fih925mia3l1gya9vzgyp5i4dvln6" "66edf9863a04" "et") + ("1hr4q01856j8jmjia39586mxfbv5ijkq7i6cyxz1r422gqivv13v" "752b6aa2225e" "eu") + ("0d6vgd6anz237ckgc3a30nzdxa98fw33rc1r2wkr4y3yfvd2bidc" "4a57be1cf783" "fa") + ("1kjb8k55vkgn7fpzgvayahzx7cbx7vryyv89kynp2lv052smhh01" "e42c0149059c" "ff") + ("0d392s3fh1cl491b72cxlj7la6in84mfxbcn862f0sr63iz0q7wn" "0a2a3e96367c" "fi") + ("10rvxinl9as9wdd9yrhsskjwsklzxd35j4b1ygr4jlvslcrmdhpn" "119b009eba98" "fr") + ("1x0bfp7gaplnwcmfvv8c87znxp9fxsa99nl88j87qxn45h9kz8q6" "475065215d5c" "fur") + ("0p20jlm8vxlzixm446wcqjs5sz7m9x7v4zgqczvriwyspad7d8xp" "6909c0c42a2e" "fy-NL") + ("1rh8mvlamawzdfis0ah8rgnjk30mzpxhgh1yx8rxppps7l5n2hpj" "2f350c9ba505" "ga-IE") + ("1n2dxvv0q77azg2cz4nasq47pbsh1l6fngphy3lzz1wj4x3s8z7g" "3fe4a6bcac31" "gd") + ("15x51q3lsr67lklci13cqlxmgjyk8px12qc3qfrfdv2dk68znwmq" "0482da4a3d5b" "gl") + ("1zx7a0l781hyi9k6bi0m9ghgzcb116cqy88q7bf9sm0gar85yxwi" "bb255fc733c3" "gn") + ("1p6ycyjp7qsv1fk19yca5bwvyg72y3v87fr3wmhq7xzmdz6994fm" "dd3707daa411" "gu-IN") + ("02r68v2yhxxdfms9l2yq8pk7rarg1ysv67mbny04gaws6k5fv3an" "c247293030ae" "he") + ("116s9qgcwb0j1mzwy5napq5ww9cs5hcj41xiq2k6kz4gjxw4jazl" "e9c1a1fe1b79" "hi-IN") + ("1kg7xiw75ks490kiay2gndlc2akkg4bxdx4q7ysaxf6kpgisakxg" "068c00ca7cae" "hr") + ("1xjqvqn65nyb0dlchy3bikpf0g3qjba7i5g68jcicz0hcyrfagvd" "5fd424d1061b" "hsb") + ("1j81cv599h3iv26yzzdf8m5vkdw9kdhrlls8c6zd3fslpd91yn5q" "0ef89daff942" "hu") + ("0wwjyjpqcxvjsw7md6sz2zxncay3wk066qiv4p2vpqv5sw9z1sdh" "771fd65bc781" "hy-AM") + ("0pxjvzkkhls3d28c1656y3fc78snhc90f0mj5jx9rhh7l6hg0801" "6cfa8fc01f2a" "ia") + ("1xh93qkj7y4ad10sqyldr9hymsbffnq7kya0smvci1nwmnndd8bk" "ae863f3cd230" "id") + ("1npyaz5zyk6yr8z8sj2gbd0ahynglxmalw27rcdb57h81n0520y7" "d465499a6600" "is") + ("14hhl050vzbrwwppvpyicqfcqazpvyaygnr8hgrz0jgyb30lfvhw" "a8ac50410815" "it") + ("1jz9i0x22qig74gwrrrvnwc7s50h1x18sl797lr678xiw4f6p0ar" "13abbdd8abdf" "ja") + ("04k53mnskapqv968gphpmzhxbg1m0jxbzf24z9g0lgspnhcgwpx9" "1f388ad7f0e9" "ja-JP-mac") + ("1n9ayc6l72fy08zdqpwag54rh6j5aagj7y7976gyvjl1ssz745fs" "ed774dd2eff3" "ka") + ("09bw4sk8g7bmx9xxxiy8y9p8zhf3h3gvaddlx86zdk12k44iqmnc" "c9cfab9734b4" "kab") + ("0lmwsq72vk424nlrgnq46apdbgivzrmx303rvng8h03wrp9qjz1m" "4797db4a0fcb" "kk") + ("0al453bmiq85kkkfaba11iwnx0dy9f3dl9hlz0j38ysgcipwap5l" "f312da458d8b" "km") + ("1rjf875nwcqnlbfgk92vpa8msy3vp2xcgfasj7kksr37rxcbwa8m" "a30ac878de56" "kn") + ("0v5a1v0a6xziwhspfqpdccl00h0b4j4k4vwmmijld44cdmj208v9" "6f5e9c8eb029" "ko") + ("0kx0hz0dp9bdgf0r0m9qsip2ybrc4dwmry3kp488z2pig0asai7x" "dcdf4bf4482b" "lij") + ("1iawv3hbl0wab1xzhhihxiqsz2i6icf64ipmjrpm9srlg6kaxgg5" "913770b70ead" "lt") + ("15ppml5b0f78ycdswff0yqr27d649fr2rggv5dnxqxxm2bx5hzw6" "6351f7efe4d7" "lv") + ("0crbysr0raqh90ayb5rq73d3cddfryfaj4bdbzijk2j2rpdlwv1m" "6acffb2c66ee" "mk") + ("0b5dw5a904w5ibd7yz1839a0cv2hmnlv2bz0kpsr6xf52jv20g6a" "942eca4c76b6" "mr") + ("0fr83kiq7xmw1kyrjrmm3iirlfcp94dyacdkkj9df6gr5qp6wn7i" "de00ab4bb6fe" "ms") + ("011y1yyl97avjawja3gmwwa74kxcvm2g2wn47yv01xqy74wbbss7" "2ce7138cd126" "my") + ("0f6ffh76g31df9kfj6azip2qy0b14s287isgm7sxnclch4jwq83s" "5cc51d238790" "nb-NO") + ("193nw6l0z7vlcd7flb72bc8h7vd9vjj8xlz5lhf7irmfr2bldj0r" "db205a4fd15a" "ne-NP") + ("14qizkrcs1avd78ci4i4hr7v3bz3m51if1jc5wxydkx9n0yb8cgn" "1abc02acab91" "nl") + ("1cjglsaf8ynm4wgzpbcf68gj8jhvnzldrnjlni4c4vvl0bfxnxa2" "b4ff1a7885c2" "nn-NO") + ("0jpdq7zpqs3gnyzz1xvccvjqbzwga35sj85z52vprm6zcxd8gm0m" "1c7d5471dba9" "oc") + ("14apl3vhxkqcy8l5a0ny71f9dkmbb5fakvkpngqv5xgbbl0byfk3" "cf3fd8eb605b" "pa-IN") + ("1aglsx0w3xgbn1dhdbzwcqn8sdkp4bncl5bj7nlick56rbkicj9j" "3c9c3c67830a" "pl") + ("10hqfd0fjbcbgdsj0jxdfvm9abiya05lw2bpy0cz6h61mgjywqiz" "68bf2b7c6f25" "pt-BR") + ("1vvs0kkvnnnsxn1d5fnma55fizzs1bbx5sv5k2w4164k6h7fhxfv" "fae18b48519f" "pt-PT") + ("0c8dl12n5fjdd3bjaf8idyaxsf8ppbma132vdw8bk2wqnh4cv69a" "92110fd6e211" "rm") + ("0mxxy56kj0k5jhjxjv8v4zz57pha819mz7j803lcilax7w52wgca" "5eeba1f64743" "ro") + ("0jrd95n108r4sxdwgy39zjynm5nlzzmiijsfpxxfwj7886wl4faz" "47131134e349" "ru") + ("1q6pn3iixzcas9blf61bhvwgppbsh0am0wdz6a6p9f9978894d73" "880b7986692a" "sc") + ("0xndsph4v725q3xcpmxxjb9vxv19sssqnng82m9215cdsv9klgpb" "bf5f6e362f6f" "sco") + ("0l70n8817mbmbc09fsnn2aqjj9k9dhad2gmzgphmiilf9mqm2dpf" "1f705c926a99" "si") + ("19bqjazazww08chd1qc08dsnr2521088jq5jd4j3185yb1ypm3nr" "c1bd10d70325" "sk") + ("11nmjmy2j249588ahg4mh9lxdqr476jbh28a07qxxibfa76j9vk3" "44be3cbf69b6" "sl") + ("1ww35141nixg2s03kfmmq9fk6m3qiz2vg7p5a85shjp7i89pyj1d" "800576ff8ef9" "son") + ("1q7nfybwc8mxdwi9fpvfhayq18mykzygkpakr5ngfz2316k8lf5r" "4de8638ac27f" "sq") + ("06wr7zx6kvaxsly5f3ci7kb2zaqlwjjbg1vrimp0jcqs4l5x6wpl" "ec560d96370c" "sr") + ("01n1ly9lihnznrab3kcby2i93k0qwg99c9fh55xpi90vkyq77gmq" "c5754f9325a1" "sv-SE") + ("09kk9bj2139j34md26zysaaf8cqyh5nmf861vxnc2vdsd37nr4x4" "c3fa195a8edf" "szl") + ("1vpr88vj9n7pm87dynyqyyiv1v2igd3w0f3a65g8rirknh3wfw44" "755763981e95" "ta") + ("19qwvi642fpg7zyhlcj9fgnm0bbkvqby6apr7iijayammg2vnyx3" "3a34078388af" "te") + ("1lh3m1d8rblas50g990qwcr2qv2nk5m6isjvi0gr57zhc4l9a4lw" "24c3a61f463c" "tg") + ("0sr0wa886a5gwrgn7rmn08sn6qz4p58037wx9gskacclhrzs53aw" "6dad5f8774df" "th") + ("19cvf42lmi9996mxlmplpk1b65p1fh4ja36xprs115z2n1iky9y5" "befaa7917b35" "tl") + ("04p50pd380hdalizz09qix7camipazkjyyi97f3sl04h6i67vz17" "66c8bc5e9da6" "tr") + ("0lqbaxkdvi8hjns8myssmv6bxymh53glf0w2nfpj72zh40rr1n09" "9e86caeded11" "trs") + ("13qmsji7gyad0d23ac7lx4181zhm3kb9xym82z786f7k271jq7kl" "bd5e0aad5f0b" "uk") + ("0m52xl2vy0paj5kcfk8jy70hhck5bgdg8lb6cvjqm2mhl5sli0ka" "040d506ed663" "ur") + ("1n0gdgjwwwd5yd69ylr05hskjxasydnkqw33rncpx7491x3nf4kf" "7e4e5290c700" "uz") + ("140lnl9dq82azlw1qic386h4z0xbilcf3jvjy93qid67mvnmwqqm" "b8196f646583" "vi") + ("07yc91645aiks3fxzx16kw4kzvksyrj36n9iz59wn9wppzlampx6" "ef98e07b4b9e" "xh") + ("1c1sfaincridbdp66bzgwgxgp5gqpvzkf10m9yafm9bgkif18vwy" "f614d8a31562" "zh-CN") + ("0s9chi76476gznrxjcn6slhgsznjnaps0h29kck6ijb0x3yx98xi" "ab22459ceb2f" "zh-TW"))) ;; XXXX: Workaround 'snippet' limitations. (define computed-origin-method (@@ (guix packages) computed-origin-method)) -(define %icecat-base-version "102.15.1") +(define %icecat-base-version "115.3.0") (define %icecat-version (string-append %icecat-base-version "-guix0-preview1")) -(define %icecat-build-id "20230829000000") ;must be of the form YYYYMMDDhhmmss +(define %icecat-build-id "20230926000000") ;must be of the form YYYYMMDDhhmmss ;; 'icecat-source' is a "computed" origin that generates an IceCat tarball ;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat' @@ -541,12 +564,12 @@ variable defined below. It requires guile-json to be installed." "firefox-" upstream-firefox-version ".source.tar.xz")) (sha256 (base32 - "04q1fjninm9lw721xgv0c2fknicc24s8iaimkabwcfwmcnvly689")))) + "1jkhfrnjyjr3c7xs724ny0wv3jamld8ia6ggx273ppw17l5wa7ca")))) ;; The upstream-icecat-base-version may be older than the ;; %icecat-base-version. - (upstream-icecat-base-version "102.15.0") - (gnuzilla-commit "400fbfdbc0c1ac9c68c9f52fd2ab6899bc8e8bd0") + (upstream-icecat-base-version "115.3.0") + (gnuzilla-commit "3486a3e29280093102e11411d4f05987133ba789") (gnuzilla-source (origin (method git-fetch) @@ -558,7 +581,7 @@ variable defined below. It requires guile-json to be installed." (string-take gnuzilla-commit 8))) (sha256 (base32 - "1fqrf94a5vnjq56zyyxlc1zsvbblgmzcks760nj1szpws4y91m8r")))) + "0x3dlrvf59w8sgg5n6ryaj39yxr2573zmshimfh4mzbidv3j4aw5")))) ;; 'search-patch' returns either a valid file name or #f, so wrap it ;; in 'assume-valid-file-name' to avoid 'local-file' warnings. @@ -729,7 +752,7 @@ variable defined below. It requires guile-json to be installed." ;; https://bugzilla.mozilla.org/show_bug.cgi?id=1819374). ffmpeg-5 libvpx - icu4c + (force icu4c-73-promise) pixman pulseaudio mesa @@ -738,7 +761,7 @@ variable defined below. It requires guile-json to be installed." hunspell libnotify nspr - nss + ;; UNBUNDLE-ME! nss (pending upgrade of 'nss' to 3.90 or later) shared-mime-info sqlite eudev @@ -760,11 +783,11 @@ variable defined below. It requires guile-json to be installed." ;; ,(search-patch "icecat-use-system-media-libs.patch")) rust `(,rust "cargo") - rust-cbindgen-0.23 - llvm - clang + rust-cbindgen-0.24 + llvm-15 + clang-15 perl - node + node-lts python-wrapper yasm nasm ; XXX FIXME: only needed on x86_64 and i686 @@ -835,7 +858,7 @@ variable defined below. It requires guile-json to be installed." ;; UNBUNDLE-ME! "--with-system-libvpx" "--with-system-icu" "--with-system-nspr" - "--with-system-nss" + ;; UNBUNDLE-ME! "--with-system-nss" ; pending upgrade of 'nss' to 3.90 ;; UNBUNDLE-ME! "--with-system-harfbuzz" ;; UNBUNDLE-ME! "--with-system-graphite2" @@ -1120,7 +1143,7 @@ features built-in privacy-protecting features. This package also includes the @command{geckodriver} command, which can be useful for automated web testing. -WARNING: IceCat 102 has not yet been released by the upstream IceCat project. +WARNING: IceCat 115 has not yet been released by the upstream IceCat project. This is a preview release, and does not currently meet the privacy-respecting standards of the IceCat project.") (license license:mpl2.0) ;and others, see toolkit/content/license.html @@ -1132,12 +1155,286 @@ standards of the IceCat project.") (define %icecat-locales '("ach" "af" "an" "ar" "ast" "az" "be" "bg" "bn" "br" "bs" "ca" "cak" "ca-valencia" "cs" "cy" "da" "de" "dsb" "el" "en-CA" "en-GB" "eo" "es-AR" - "es-CL" "es-ES" "es-MX" "et" "eu" "fa" "ff" "fi" "fr" "fy-NL" "ga-IE" "gd" + "es-CL" "es-ES" "es-MX" "et" "eu" "fa" "ff" "fi" "fr" "fur" "fy-NL" "ga-IE" "gd" "gl" "gn" "gu-IN" "he" "hi-IN" "hr" "hsb" "hu" "hy-AM" "ia" "id" "is" "it" "ja" "ja-JP-mac" "ka" "kab" "kk" "km" "kn" "ko" "lij" "lt" "lv" "mk" "mr" "ms" "my" "nb-NO" "ne-NP" "nl" "nn-NO" "oc" "pa-IN" "pl" "pt-BR" "pt-PT" "rm" "ro" - "ru" "sco" "si" "sk" "sl" "son" "sq" "sr" "sv-SE" "szl" "ta" "te" "th" "tl" - "tr" "trs" "uk" "ur" "uz" "vi" "xh" "zh-CN" "zh-TW")) + "ru" "sc" "sco" "si" "sk" "sl" "son" "sq" "sr" "sv-SE" "szl" "ta" "te" "tg" + "th" "tl" "tr" "trs" "uk" "ur" "uz" "vi" "xh" "zh-CN" "zh-TW")) + +(define all-mozilla-102-locales + (mozilla-locales + ;; sha256 changeset locale + ;;--------------------------------------------------------------------------- + ("1s59ihmj8x6z0ssq4xav689jb5azrpdnay8csgjm1b9pw7wmvcli" "a6940ae1a02f" "ach") + ("1cqixlk9f8p63jz20wzsvnfb7xa82ba725gzdydlwz2axgp09c26" "4e2c7d1ddbed" "af") + ("19r1yhmfxqasyslc8gr9as5w1scscz1xr8iqy9zi4b90fdjzs0ac" "06897e40a7ea" "an") + ("0nfknb1p03j9fgmkwlm1mzdyh10g0l33x34ab39kc072apziyv0n" "9272819b09e2" "ar") + ("11qqblqfffbmkdr5b6mxzq02i8rj1hjq3iy6xv5i5xxy311b3vpb" "f706d22e6910" "ast") + ("0q2p1a437qr2nshdd4934qkv2sblmykiwzir149c8p9m5sjk0dyw" "f5c2a9800add" "az") + ("0gxxm3lv18kj0922bw0g897azc4nkrszm5irgwdkgmkbyr97li83" "98ba7d51484f" "be") + ("10vrbbaabjns824ndya6c09znm815pak2xpvqgjydl3r5qvacx65" "5c79c77311cd" "bg") + ("1il7yyifx5xzj0v2lna315mppl5pk1vi4m9r66hdz1lzc485m1wp" "c80c87ef7193" "bn") + ("1p1ig4v9pczzrnnxzr20r61g7xk85k5lgnxhzgn1rx518p85xrkm" "6a1bcb9851b2" "br") + ("08q33bk9kdvbyc4ib58bsn2b67ki3d2yzskkf5r2n5zlglblksa2" "939779cb58d6" "bs") + ("1bdkywrqah85fh8kfnz163qnc02ffx0a4vlnx5pq1wg9j4f1gznf" "9a45ccf144f1" "ca") + ("0hhmp5dzc0rssykl0b2n9h0vfy4svwhxmhpsr3rcfpbg2s0r5h6l" "4f60e18fc248" "ca-valencia") + ("18phbl9raqsbys9wa8z0gq0h0pw3b55v6ngn67r4373lfc0s9cxv" "b4ef404c7de8" "cak") + ("0147qyw1y97mgqhkb46wblxv61lq2mvvm5n5ihwf49l5cyizi0jg" "f56ef18f05df" "cs") + ("08sbhnsxndlsaijnxndc367qcbrzb29m7bpkcawinz9fg6mz3573" "4f9d92f04f5e" "cy") + ("09cm5kk1sh2a6ws1fj185jrknhfa6n4bhj7nfnr4lsk339n0kvv9" "902503567e30" "da") + ("0r630bki5d4ylicq6lzh6s2mvsq225933szswmm0sap507rj75cm" "6000baf7a412" "de") + ("0749qjsfv3rn94rnci3ydgndw27qlr3w3w97kfwma2gmsf3m3r0p" "4a948952d1f4" "dsb") + ("0yc64i7mpxhs4qlyyh59i2aiz0vpap0bn8slcsk8b71wd1d7cy5m" "153a16a13733" "el") + ("0d4m5ji6ii10yap8y24cxx3fr60ba1jqi10hy3j1cq6ni7hzavga" "7ce17ae529ac" "en-CA") + ("12jzqcfbgdhfm8f2gqp15bdnin62li07jwicjc8ynn4cl9a19xiz" "a25d9eea7c23" "en-GB") + ("0gbb8hfc5yvjah63mapjxm53wxrf98srbrbg43b9g734zfi4n8y5" "4ed3471dad5d" "eo") + ("19lw7zmqx2irjmv5y6r7nncp6nysn06abf10n3dzj5nzgays6sln" "853fe7acb415" "es-AR") + ("0rq4pa380b77rkv6dq7sqx8a8i33jk3vs5rgcl8fv7slqvsw23kd" "921b67bf27a5" "es-CL") + ("1dyxzab9hln5spch66wmfagfzmfdiaxgpq7qlzvdfg98wkqdj25n" "c9a210ea496c" "es-ES") + ("1gwpmfl37wxl7rynqswgj41liljflgxydvljd4zdhk3jzqn605fb" "ddd35183d81c" "es-MX") + ("0c3blniddklapifnjbz03f2frw24jjgwgwn6swl5mwm2z0y6wa9f" "82d23ffaa7d3" "et") + ("05mq2df6n6fr8m5m2xwl0f6n1q3zgjrnk465ldx1nfr9agrhd36c" "13975626d549" "eu") + ("1l1jyqqiy551903j6yzh9ayg1pf26q2hr9h3jj4l51xzp7x4ms2q" "039e1fdb7c71" "fa") + ("091l05y9sggxznv0y11b9zy5qf146p0hb5faw4ix7yn5p5kca2f5" "7bd3722d82de" "ff") + ("1lllwjvmbl5dx44fcvsqg08fbflkc8dx5as9n6nf4xlkzydx6izm" "39808e88c9d1" "fi") + ("10ha955vvyf5vbciricm72kplj9j0s00g2333lmg46jiwi7aviiv" "426d373db6a7" "fr") + ("11zdfk8jvdy1k9z1q162cwapplcbz35l3dq4mv45brdin3v0x8kr" "96cd93d18389" "fy-NL") + ("1l5xr25gmssyachwmfprlnp2v2xj4b0hp8gxrf7fi5bvv9c2fynb" "de3daf7d3f9d" "ga-IE") + ("06h9ijfsn1cgz5fvxxbisk7fvqhgsw99id92575hgyg1p8xb1n69" "f04aea656d9e" "gd") + ("19913i5n8yyfhz9j21krlk7wqsyy89vggxc1m1swv94y2ix8rpaj" "1b8cdb87bf69" "gl") + ("0k5x31bfl2l0r9b5dkn03frm1gd8n6igai7ch2f1kj0skflynwww" "82df570c4241" "gn") + ("03rygnj9xhfvykark7dls117kwhid13ghvrsqiial0vp8m7ymx79" "e2e41d7beaa5" "gu-IN") + ("0vyraplj1x7b5im15anhzdaq03k2gqfyybgklrd4f9ry6msh5jhx" "de724e943805" "he") + ("1zqps586jrgxpf7xx2l3qw3ch3fr31r9a25y861fpxrpvh7ygw7g" "898598e1a5c6" "hi-IN") + ("0czq68l3qdhdc0mgazlrh8x83a6d5qrjwgjv8xvsmmzi7h68ww0l" "2711d1515af0" "hr") + ("1wwvrnm38gk2rnw4vmcranh8hk61gjcj9292pck3ckiv6mq7kd4s" "03e02f3d0676" "hsb") + ("0yvgdxlbyhhg3lk43hxx9gx66rcm7gaj02zzzx5zni8dhvlk2v6m" "d423ada9dc00" "hu") + ("1kjm7bg4990jhfbxwc38r4lqm2fbcxc82nc2d4qkqwikr4aah4b9" "06836af0bd6e" "hy-AM") + ("1dla7r3snvagb7m985xxqyi7gl498cr5xsz8msw0zpg6xmi05rlx" "299bd950d538" "ia") + ("0w8w9xn93akir7nqcp5iwr3kqvba5gbirg7gmzlzg7mgrhw8pcsa" "dee087477b99" "id") + ("10iakv1c1d20ihxg1s7c3zc1zfw18vr2kspcw7bk5k02rmrffgcn" "320095d063ed" "is") + ("1xn5pa3rc7l6k2migm3c0dx71q1hk7mjls045xpv9cy8gvirnj94" "4722680fb5bf" "it") + ("0va9zfj3wqh1yvbgh3x808yvdyxkg780vazjg887wbxpfk1n6hxa" "cb3cfe294621" "ja") + ("0qvjc3fhk6jg2c3g6mymmnslg1rkkxmv9gi3whf2bc5mzfgyc5zw" "7efe92bd7780" "ja-JP-mac") + ("0zfiwwz0axbd219ar32c7a6b8h816sf04ajx6jl74s5kyij79y82" "4c1fe3a18da9" "ka") + ("1aiik4758r5df76q2a132y5fjdjrsxshjylk7irwsr7yy0c7f63g" "acdf76048aa0" "kab") + ("0icxh4sgv6m1yykycb9d9c43k3r6w02f9c6jr04wm8hvqq5icfl5" "9b418ff7936b" "kk") + ("1cqlhggf46lr7w399k7qb7a1hc56f32w1dy26i2racpppzza5plc" "9771ada0b5f8" "km") + ("0p04irnb7x7y37m6lz388x9dynn8rnk000avpp296barajnhs5i8" "645aa37a2112" "kn") + ("1lbc1fxr5i0ccymlsd8axz3633cqggg5k8ak5yqwi704g7kvv9g2" "1cd68952d119" "ko") + ("11b55bxg73zqfdn5gy9nn5imab2mv0hxr603whggp7vymllgb7kb" "26bb83959bfe" "lij") + ("15jsijm6d26i0105gz0f7sh2yh2v4pmw4j95cwkdrb1d8m935jlz" "b9829891f153" "lt") + ("0liwwv13fgyw97nizhsyy53xrbf8jks5ics7qkkxfccawjrg5rlb" "e5f09d03d959" "lv") + ("0w420yf3hdnl7dp9mn9ghc20cq79k24fn9adn3syk723ppl6mkb0" "7884845e94f3" "mk") + ("13wkr7rgqsv9w3d9w7k8lnxdzgfixsq4bmc27zsyc770l6062ml6" "030db7412202" "mr") + ("06nsadcnxx0ssdp67x47dj9crihn1ycgd5mwvn5m7lkb97r4ch9f" "40a7703e875c" "ms") + ("0mlnjdzck6dp9p59ajj3sr63r36fn0qi8r9scrqrqcisgfclw9sg" "daca40056531" "my") + ("0z1hgx9d5i9w20f9k9azzng1y3lmm5d6hdjkj7rf6r5710bhhzh5" "664bd049e105" "nb-NO") + ("1466qvrs13g2iix1k35cknb2pia9b66li2ncvdyqf0jsd92z9k8x" "eaa6ae781ba0" "ne-NP") + ("0jgmz2lkzj0aspd9mabygzic6li5s2b25y0r6vjg8mv3jm5pi86j" "5ef8f1c9739e" "nl") + ("1m46x0h20vdfbzjxlz0ac43dbaq40xnyldr2yzbf7pk5di9pzxa6" "f08e15466d5d" "nn-NO") + ("0r3zvihqh6iya3z1qm7if0m3zfgf81s9qp7x7qc701h2q357wkgf" "6712c0e12ec2" "oc") + ("102j89jm28c223yhhkrj76xxj4kmy58hcs2r0jn15xa1qkqv1fdk" "8f36cc819e00" "pa-IN") + ("1j9za6s0i46abn8dsrlkpck3qxxw35rhfcg1xs1vp8sc4ckg8qwi" "c3b0c1c02b94" "pl") + ("1k9lbsvckpwl4xax8kxp5yxsfkspq2mhqm77jh5nl9aw88dsn55b" "cc32bf9630fe" "pt-BR") + ("0f0jyvbn2sa5m66wqdzh4607g4gd0270xq37ipd9ls52b4764bd8" "5478d7242086" "pt-PT") + ("19znkkialh1d4np7qcp80xkagrf1j2xah2s1xxzsh854p3d30zs7" "dd934a76fb01" "rm") + ("1xn26r8g8zzkb5myfgmnjbk8k4i0brkvbrvnhp7k5nkrnsin25di" "d57ab3dee73d" "ro") + ("04rhkxlmpp5pyzw85ldbfkmiigqr2p9y5cbns5dqs6sz1633ccxp" "7aea98f33a20" "ru") + ("1zzkkxl7ayxh5gx9snyvp5czflsvi77hp48li613h3c2fii4n9qk" "7c986f4b5044" "sco") + ("1219i0ghhqj3s1i0rm68jjkvivh6y40938wav7z4ifck527sq6r1" "bc9e55d4e3ea" "si") + ("05i5p3n3a6hgl6rf10yjs4vag7y3rn2jwgxsddcdcqiv6405zn81" "8814afd7f67e" "sk") + ("1wcqdbm1py1ldq6cj2g201m715nql79r6szr71jvrxacb711c62a" "20013dc06e96" "sl") + ("0g2izkaa4ipwgwyhy77ciyrxxpf4pxzj9mjqvxriy5prmkhm3zjs" "d86d5d2b6eef" "son") + ("1cc99m6srjg8698dkc3il70crby0mdv43v3ijwy069k4w50hyjjg" "49bb5fae5d9b" "sq") + ("13kfssq4fhq9mb36as6sxiaffl17qyg1wdw8kpz3ilqm86bsjrgl" "d6a0ab79b06f" "sr") + ("1wx9snbm0431q97i0q0nv4wbsqcv9nhllwfr88crlp7bfj5w8czw" "4bab04993da3" "sv-SE") + ("0laglkfl8ml0ip5vmm3z2q790hgwax9gfqwq3wm68a2nnsyck8fw" "4b3316c4aa48" "szl") + ("15pnlic4q7m48y0mc5yh8w5yscjwzx0mmfrbj3f2b9jxxa44nx4h" "48c7aab86db8" "ta") + ("16qar5y0wns75ryi8bfv7yln3mjsyn7qi4345zcniz3ydgkczh46" "7bbb3dac8f47" "te") + ("112g7x8h0qz16r5faam386x4a0rgwd4zy02d5agmg9m0kbficdfx" "009fd0852454" "th") + ("1l80kh9byqxnz5vkz357rb39g4y9sgn9pr0v29ywp6d009img1qg" "dad9caecd7a9" "tl") + ("1nalvjlxxsa9wldhhdb93bgfc7dl084xayh7i7mgg93yjgrym93x" "0c48082d37cd" "tr") + ("0wkxqcfgsra2ljws28kiwajv73w9aa8drsc4fqlg9krbicnjl2n8" "f6d105faedcc" "trs") + ("18jf4ysrfv3635fyxc1vwr970dr2r05bl3h8v599pwp2g7jzyjpm" "e1011388a55e" "uk") + ("1ihmksjsz54yii23qda5iv8cxrj9144afy75hzhvfi6m182kj4h8" "c4e927eab511" "ur") + ("0d42dhfa2vcw24wsvwf95pw20np0pz8c0is6p4307n981n8s207y" "7063df917cb3" "uz") + ("04khnkrg8css55hyna01jqay9c2ppxk5znbx2zj9i25knhvvx1lq" "1753054e6ab8" "vi") + ("0fi5kxn78xp7s15svkqlf4748j4pzxh941nm52n6kbbrhyi3qcqn" "93bc595dc32e" "xh") + ("0jg676vd37wqgzjnm0yynj7xrvm6fsgdwg296h78wnyc33zc4ads" "edd4e468bc31" "zh-CN") + ("1y4wldm3z95mfjlficp994jyqg0lj07wi35b79dy1s8ljy3jilil" "0bad1f7d2b2d" "zh-TW"))) + +(define %icecat-102-base-version "102.15.1") +(define %icecat-102-version (string-append %icecat-102-base-version "-guix0-preview1")) + +;; 'icecat-source' is a "computed" origin that generates an IceCat tarball +;; from the corresponding upstream Firefox ESR tarball, using the 'makeicecat' +;; script from the upstream IceCat project. +(define icecat-102-source + (let* ((major-version (first (string-split %icecat-102-base-version #\.))) + (minor-version (second (string-split %icecat-102-base-version #\.))) + (sub-version (third (string-split %icecat-102-base-version #\.))) + + (upstream-firefox-version (string-append %icecat-102-base-version "esr")) + (upstream-firefox-source + (origin + (method url-fetch) + (uri (string-append + "https://ftp.mozilla.org/pub/firefox/releases/" + upstream-firefox-version "/source/" + "firefox-" upstream-firefox-version ".source.tar.xz")) + (sha256 + (base32 + "04q1fjninm9lw721xgv0c2fknicc24s8iaimkabwcfwmcnvly689")))) + + ;; The upstream-icecat-base-version may be older than the + ;; %icecat-base-version. + (upstream-icecat-base-version "102.15.0") + (gnuzilla-commit "400fbfdbc0c1ac9c68c9f52fd2ab6899bc8e8bd0") + (gnuzilla-source + (origin + (method git-fetch) + (uri (git-reference + (url "git://git.savannah.gnu.org/gnuzilla.git") + (commit gnuzilla-commit))) + (file-name (git-file-name "gnuzilla" + ;;upstream-icecat-base-version + (string-take gnuzilla-commit 8))) + (sha256 + (base32 + "1fqrf94a5vnjq56zyyxlc1zsvbblgmzcks760nj1szpws4y91m8r")))) + + ;; 'search-patch' returns either a valid file name or #f, so wrap it + ;; in 'assume-valid-file-name' to avoid 'local-file' warnings. + (makeicecat-patch + (local-file (assume-valid-file-name + (search-patch "icecat-102-makeicecat.patch"))))) + + (origin + (method computed-origin-method) + (file-name (string-append "icecat-" %icecat-102-version ".tar.xz")) + (sha256 #f) + (uri + (delay + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (let ((firefox-dir + (string-append "firefox-" #$%icecat-102-base-version)) + (icecat-dir + (string-append "icecat-" #$%icecat-102-version))) + + (set-path-environment-variable + "PATH" '("bin") + (list #+python + #+(canonical-package bash) + #+(canonical-package coreutils) + #+(canonical-package findutils) + #+(canonical-package patch) + #+(canonical-package xz) + #+(canonical-package sed) + #+(canonical-package grep) + #+(canonical-package bzip2) + #+(canonical-package gzip) + #+(canonical-package tar))) + + (set-path-environment-variable + "PYTHONPATH" + (list #+(format #f "lib/python~a/site-packages" + (version-major+minor + (package-version python)))) + '#+(cons python-jsonschema + (map second + (package-transitive-propagated-inputs + python-jsonschema)))) + + ;; We copy the gnuzilla source directory because it is + ;; read-only in 'gnuzilla-source', and the makeicecat script + ;; uses "cp -a" to copy parts of it and assumes that the + ;; copies will be writable. + (copy-recursively #+gnuzilla-source "/tmp/gnuzilla" + #:log (%make-void-port "w")) + + (with-directory-excursion "/tmp/gnuzilla" + (make-file-writable "makeicecat") + (invoke "patch" "--force" "--no-backup-if-mismatch" + "-p1" "--input" #+makeicecat-patch) + (patch-shebang "makeicecat") + (substitute* "makeicecat" + (("^readonly FFMAJOR=(.*)" all ffmajor) + (unless (string=? #$major-version + (string-trim-both ffmajor)) + ;; The makeicecat script cannot be expected to work + ;; properly on a different version of Firefox, even if + ;; no errors occur during execution. + (error "makeicecat major version mismatch")) + (string-append "readonly FFMAJOR=" #$major-version "\n")) + (("^readonly FFMINOR=.*") + (string-append "readonly FFMINOR=" #$minor-version "\n")) + (("^readonly FFSUB=.*") + (string-append "readonly FFSUB=" #$sub-version "\n")) + (("^readonly DATADIR=.*") + "readonly DATADIR=/tmp/gnuzilla/data\n") + (("^readonly SOURCEDIR=.*") + (string-append "readonly SOURCEDIR=" icecat-dir "\n")) + (("/bin/sed") + #+(file-append (canonical-package sed) "/bin/sed")))) + + (format #t "Unpacking upstream firefox tarball...~%") + (force-output) + (invoke "tar" "xf" #+upstream-firefox-source) + (rename-file firefox-dir icecat-dir) + + (with-directory-excursion icecat-dir + (format #t "Populating l10n directory...~%") + (force-output) + (mkdir "l10n") + (with-directory-excursion "l10n" + (for-each + (lambda (locale-dir) + (let ((locale + (string-drop (basename locale-dir) + (+ 32 ; length of hash + (string-length "-mozilla-locale-"))))) + (format #t " ~a~%" locale) + (force-output) + (copy-recursively locale-dir locale + #:log (%make-void-port "w")) + (for-each make-file-writable (find-files locale)) + (with-directory-excursion locale + (when (file-exists? ".hgtags") + (delete-file ".hgtags")) + (mkdir-p "browser/chrome/browser/preferences") + (call-with-output-file + "browser/chrome/browser/preferences/advanced-scripts.dtd" + (lambda (port) #f))))) + '#+all-mozilla-102-locales) + (copy-recursively #+mozilla-compare-locales + "compare-locales" + #:log (%make-void-port "w")) + (delete-file "compare-locales/.gitignore") + (delete-file "compare-locales/.hgignore") + (delete-file "compare-locales/.hgtags"))) + + (format #t "Running makeicecat script...~%") + (force-output) + (invoke "bash" "/tmp/gnuzilla/makeicecat") + + (format #t "Packing IceCat source tarball...~%") + (force-output) + (setenv "XZ_DEFAULTS" (string-join (%xz-parallel-args))) + (invoke "tar" "cfa" #$output + ;; Avoid non-determinism in the archive. We set the + ;; mtime of files in the archive to early 1980 because + ;; the build process fails if the mtime of source + ;; files is pre-1980, due to the creation of zip + ;; archives. + "--mtime=@315619200" ; 1980-01-02 UTC + "--owner=root:0" + "--group=root:0" + "--sort=name" + icecat-dir))))))))) (define %icedove-build-id "20230830000000") ;must be of the form YYYYMMDDhhmmss (define %icedove-version "102.15.0") @@ -1214,7 +1511,7 @@ list of languages supported as well as the currently used changeset." ;; Extract the base Icecat tarball, renaming its top-level ;; directory. (invoke "tar" "--transform" (string-append "s,[^/]*," #$name ",") - "-xf" #$icecat-source) + "-xf" #$icecat-102-source) (chdir #$name) ;; Merge the Thunderdbird localization data. @@ -1671,14 +1968,12 @@ their corresponding VERSION, SOURCE and LOCALES variables." (mkdir-p all-ext) (symlink (string-append ext-dir "/" name) (string-append all-ext "/" name))))) - (if (eq? 'icedove '#$project) - '#$%icedove-locales - '#$%icecat-locales))))))) + '#$locales)))))) (native-inputs (list m4 perl python-wrapper - node + node-lts unzip)) (home-page "https://www.mozilla.org/") (synopsis (string-append "Language localization data for " name)) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 87a056752f..7fe10a64a8 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -799,7 +799,7 @@ tables.") (replace "guile-lib" guile2.2-lib) (replace "guile-smc" guile2.2-smc))))) -(define-public guile-fibers-1.3 +(define-public guile-fibers (package (name "guile-fibers") (version "1.3.1") @@ -856,9 +856,11 @@ is not available for Guile 2.0.") (properties '((upstream-name . "fibers"))) (license license:lgpl3+))) +(define-public guile-fibers-1.3 guile-fibers) + (define-public guile-fibers-1.1 (package - (inherit guile-fibers-1.3) + (inherit guile-fibers) (version "1.1.1") (source (origin (method git-fetch) @@ -886,7 +888,7 @@ is not available for Guile 2.0.") ;; <https://github.com/wingo/fibers/pull/53>. (filter (cut string-suffix? "-linux" <>) %supported-systems)))) -(define-public guile-fibers +(define-public guile-fibers-1.0 (package (inherit guile-fibers-1.1) (version "1.0.0") diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm index 5188bb2910..3d8fa833a2 100644 --- a/gnu/packages/hardware.scm +++ b/gnu/packages/hardware.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2023 Spencer Skylar Chan <schan12@umd.edu> +;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -80,6 +81,7 @@ #:use-module (gnu packages protobuf) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) + #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) @@ -99,6 +101,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system meson) #:use-module (guix build-system perl) + #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (guix download) #:use-module (guix gexp) @@ -798,6 +801,42 @@ specific SMBIOS tables.") (license (list license:osl2.1 license:gpl2+ license:bsd-3 license:boost1.0)))) +(define-public liquidctl + (package + (name "liquidctl") + (version "1.13.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/liquidctl/liquidctl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0hpxkrfxm9c4v5ld7bh6qs9fmq9imz8s5i9l0l78l47bcm12nkrd")))) + (build-system pyproject-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (add-before 'check 'set-runtime-dir + (lambda _ + (setenv "XDG_RUNTIME_DIR" "/tmp")))))) + (native-inputs (list python-pytest)) + (propagated-inputs + (list python-colorlog + python-crcmod + python-docopt + python-hidapi + python-pillow + python-pyusb + python-smbus)) + (home-page "https://github.com/liquidctl/liquidctl") + (synopsis "Drivers and tools for liquid cooling equipment") + (description "Liquidctl is a package with tools, drivers and a Python +library to work with liquid cooling equipment such as @acronym{AIO, All-In-One} +coolers, fan controllers and other devices.") + (license license:gpl3+))) + ;; Distinct from memtest86, which is obsolete. (define-public memtest86+ (package diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 8fc93a8842..9b633d5d63 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -592,12 +592,8 @@ integrates with various databases on GUI toolkits such as Qt and Tk.") ;; would get a compile error later: "-DPROTOBUF_UPDATE_FILES=ON" - ;; xfeatures2d disabled, because it downloads extra binaries from - ;; https://github.com/opencv/opencv_3rdparty - ;; defined in xfeatures2d/cmake/download_{vgg|bootdesc}.cmake - ;; Cmp this bug entry: - ;; https://github.com/opencv/opencv_contrib/issues/1131 - "-DBUILD_opencv_xfeatures2d=OFF") + ;; For xfeatures2d. + "-DOPENCV_SKIP_FEATURES2D_DOWNLOADING=ON") #:phases (modify-phases %standard-phases (add-after 'unpack 'disable-broken-tests @@ -655,7 +651,18 @@ integrates with various databases on GUI toolkits such as Qt and Tk.") (copy-recursively (assoc-ref inputs "opencv-extra") "../opencv-extra") (copy-recursively (assoc-ref inputs "opencv-contrib") - "../opencv-contrib"))) + "../opencv-contrib") + + ;; Disable downloads of Boost and VGG descriptors as we include + ;; them in native inputs. + (substitute* "../opencv-contrib/modules/xfeatures2d/CMakeLists.txt" + (("download_(boost|vgg)_descriptors") "#")) + (copy-recursively (assoc-ref inputs "opencv-3rdparty-boost") + "../downloads/xfeatures2d") + (for-each make-file-writable + (find-files "../downloads/xfeatures2d" ".")) + (copy-recursively (assoc-ref inputs "opencv-3rdparty-vgg") + "../downloads/xfeatures2d"))) (add-after 'build 'do-not-install-3rdparty-file (lambda _ (substitute* "cmake_install.cmake" @@ -673,6 +680,34 @@ integrates with various databases on GUI toolkits such as Qt and Tk.") (native-inputs `(("pkg-config" ,pkg-config) ("xorg-server" ,xorg-server-for-tests) ;For running the tests + ;; These are files that are derived from the binary descriptors that + ;; are part of the BinBoost package. The BinBoost package is released + ;; under GPLv2+. See + ;; https://www.epfl.ch/labs/cvlab/research/descriptors-and-keypoints/research-detect-binboost/ + ;; See xfeatures2d/cmake/download_boostdesc.cmake for commit hash. + ("opencv-3rdparty-boost" + ,(let ((commit "34e4206aef44d50e6bbcd0ab06354b52e7466d26")) + (origin + (method git-fetch) + (uri (git-reference (url "https://github.com/opencv/opencv_3rdparty") + (commit commit))) + (file-name (git-file-name "opencv_3rdparty" commit)) + (sha256 + (base32 + "13yig1xhvgghvxspxmdidss5lqiikpjr0ddm83jsi0k85j92sn62"))))) + ;; These are the Visual Geometry Group descriptors, released under + ;; BSD-3. They are generated files produced by the DLCO framework. + ;; See xfeatures2d/cmake/download_vgg.cmake for commit hash. + ("opencv-3rdparty-vgg" + ,(let ((commit "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d")) + (origin + (method git-fetch) + (uri (git-reference (url "https://github.com/opencv/opencv_3rdparty") + (commit commit))) + (file-name (git-file-name "opencv_3rdparty" commit)) + (sha256 + (base32 + "0r9fam8dplyqqsd3qgpnnfgf9l7lj44di19rxwbm8mxiw0rlcdvy"))))) ("opencv-extra" ,(origin (method git-fetch) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index a632a02139..bd3bcf964d 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -1765,23 +1765,22 @@ PNG, and performs PNG integrity checks and corrections.") (define-public imgp (package (name "imgp") - (version "2.8") + (version "2.9") (source (origin (method url-fetch) (uri (pypi-uri "imgp" version)) (sha256 - (base32 "0q99h9wv9rynig0s0flnr9mxi541zzl0gw8vh4y6m5x132diilri")))) + (base32 "0avdgr4fx643jg9wzwm65y14s56bnrn3hmkw7v0mcyvxn88vxwiq")))) (build-system python-build-system) (arguments - `(#:tests? #f ;there are no tests + `(#:tests? #f ;there are no tests #:phases (modify-phases %standard-phases ;; setup.py expects the file to be named 'imgp'. (add-after 'unpack 'rename-imgp (lambda _ - (rename-file "imgp.py" "imgp") - #t))))) + (rename-file "imgp.py" "imgp")))))) (inputs (list python-pillow)) (home-page "https://github.com/jarun/imgp") diff --git a/gnu/packages/julia-jll.scm b/gnu/packages/julia-jll.scm index 753651cb9e..1c03b7e589 100644 --- a/gnu/packages/julia-jll.scm +++ b/gnu/packages/julia-jll.scm @@ -1792,7 +1792,7 @@ build tree Yggdrasil.") ;; There's a Julia file for each platform, override them all (find-files "src/wrappers/" "\\.jl$"))))))) (inputs - (list wcslib)) + (list wcslib-7.12)) (propagated-inputs (list julia-jllwrappers)) (home-page "https://github.com/JuliaBinaryWrappers/WCS_jll.jl") diff --git a/gnu/packages/julia-xyz.scm b/gnu/packages/julia-xyz.scm index 144574857e..82df28d9b5 100644 --- a/gnu/packages/julia-xyz.scm +++ b/gnu/packages/julia-xyz.scm @@ -231,7 +231,7 @@ no issues with the upgrade.") (define-public julia-arraylayouts (package (name "julia-arraylayouts") - (version "0.8.16") + (version "0.8.18") (source (origin (method git-fetch) @@ -240,16 +240,19 @@ no issues with the upgrade.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1j11jid4scw9icrbr8g6myp17nabjzmf4f40cichb20lzf1agz8l")))) + (base32 "11h0w1bqw2md5gh4dfmm1aazifcs2ydrc47hqzvav1xrx25b57z5")))) (build-system julia-build-system) (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'adjust-tests - (lambda _ - (substitute* "test/test_layoutarray.jl" - (("@test all\\(B") "@test_broken all(B"))))))) + (if (not (target-x86-64?)) + ;; This test is only broken when using openblas, not openblas-ilp64. + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-tests + (lambda _ + (substitute* "test/test_layoutarray.jl" + (("test all\\(B") "test_broken all(B")))))) + '())) (propagated-inputs (list julia-fillarrays)) (native-inputs @@ -387,7 +390,17 @@ axes, allowing column names or interval selections.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0nrcasjdpwf15z7l2lzyhxjqxlnqk5if78s15sh4gdgxf9kzj3a6")))) + (base32 "0nrcasjdpwf15z7l2lzyhxjqxlnqk5if78s15sh4gdgxf9kzj3a6")) + (snippet + #~(begin + (use-modules (guix build utils)) + ;; From upstream commit 8bbf901bb7fb417fe90be26e0cd9a141cfdfe19c, + ;; included in 0.17.34. + (substitute* "src/BandedMatrices.jl" + (("const libblas = Base\\.libblas_name") + "const libblas = LinearAlgebra.BLAS.libblas") + (("const liblapack = Base\\.liblapack_name") + "const liblapack = LinearAlgebra.BLAS.liblapack")))))) (build-system julia-build-system) (propagated-inputs (list julia-aqua @@ -2483,7 +2496,7 @@ update step.") (define-public julia-genericlinearalgebra (package (name "julia-genericlinearalgebra") - (version "0.2.5") + (version "0.3.0") (source (origin (method git-fetch) @@ -2492,16 +2505,8 @@ update step.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0ndwypa397z3pwzdgc3s9plaqlqf63g3d4px5pvym5psgr6lnm3l")))) + (base32 "16k1r02w5qivvr99n5a9impbnnzygpj705irf5ypy208np91xyyd")))) (build-system julia-build-system) - (arguments - (list - #:phases - #~(modify-phases %standard-phases - (add-after 'link-depot 'adjust-test-suite - (lambda _ - (substitute* "test/runtests.jl" - ((".*lapack.*") ""))))))) (native-inputs (list julia-quaternions)) (home-page "https://github.com/JuliaLinearAlgebra/GenericLinearAlgebra.jl") @@ -5538,7 +5543,7 @@ a loadable module.") (define-public julia-scanbyte (package (name "julia-scanbyte") - (version "0.3.2") + (version "0.4.0") (source (origin (method git-fetch) @@ -5547,7 +5552,7 @@ a loadable module.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1c18hkcb0h6l437v2s02kijjkyly91mqark84czvh8yzxm19hr7k")))) + (base32 "1ww7bbh02s4l917dwkzg9pq71xk0db2rba247vz1xfm24msi8lwj")))) (build-system julia-build-system) (propagated-inputs (list julia-simd)) diff --git a/gnu/packages/julia.scm b/gnu/packages/julia.scm index ba54175822..8ba2b480ce 100644 --- a/gnu/packages/julia.scm +++ b/gnu/packages/julia.scm @@ -269,7 +269,10 @@ libraries. It is also a bit like @code{ldd} and @code{otool -L}.") (substitute* (jlpath "nghttp2") (((from "libnghttp2")) (to "libnghttp2" "libnghttp2"))) (substitute* (jlpath "OpenBLAS") - (((from "libopenblas")) (to "openblas" "libopenblas"))) + (((from "libopenblas")) + ,@(if (target-x86-64?) + `((to "openblas" "libopenblas64_" "libopenblas")) + `((to "openblas" "libopenblas"))))) (substitute* (jlpath "OpenLibm") (((from "libopenlibm")) (to "openlibm" "libopenlibm"))) (substitute* (jlpath "PCRE2") @@ -479,12 +482,13 @@ using Dates: @dateformat_str, Date, DateTime, DateFormat, Time")) "NO_GIT=1" ; build from release tarball. "USE_GPL_LIBS=1" ; proudly - ,@(if (target-aarch64?) - `("USE_BLAS64=0") - '()) - - "LIBBLAS=-lopenblas" - "LIBBLASNAME=libopenblas" + ,@(if (target-x86-64?) + `("USE_BLAS64=1" + "LIBBLAS=-lopenblas64_" + "LIBBLASNAME=libopenblas64_") + `("USE_BLAS64=0" + "LIBBLAS=-lopenblas" + "LIBBLASNAME=libopenblas")) (string-append "UTF8PROC_INC=" (assoc-ref %build-inputs "utf8proc") @@ -513,7 +517,9 @@ using Dates: @dateformat_str, Date, DateTime, DateFormat, Time")) ("llvm" ,llvm-julia) ("mbedtls-apache" ,mbedtls-apache) ("mpfr" ,mpfr) - ("openblas" ,openblas) + ,@(if (target-x86-64?) + `(("openblas" ,openblas-ilp64)) + `(("openblas" ,openblas))) ("openlibm" ,openlibm) ("p7zip" ,p7zip) ("pcre2" ,pcre2) diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index e615b81ea3..d15e561668 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -288,29 +288,56 @@ wrapper for accessing libusb-1.0.") "1fg7knfzybzija2b01pzrzhzsj989scl12sb2ra4f503l8279k54")))) (build-system python-build-system) (arguments - `(#:tests? #f ; no tests - #:modules ((srfi srfi-1) - (srfi srfi-26) - (guix build utils) - (guix build python-build-system)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-libusb-reference - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "usb/libloader.py" - (("lib = locate_library\\(candidates, find_library\\)") - (string-append - "lib = \"" - (find (negate symbolic-link?) - (find-files (assoc-ref inputs "libusb") - "^libusb-.*\\.so\\..*")) - "\""))) - #t))))) - + (list #:modules '((srfi srfi-1) + (srfi srfi-26) + (guix build utils) + (guix build python-build-system)) + #:phases + #~(modify-phases %standard-phases + ;; Repurpose the candidates parameter to be the path to the + ;; library, then on each backend we substitute the candidates + ;; with the full path to the .so library or with None if not + ;; supported. + ;; + ;; While most applications could use a single back-end this + ;; library allows to manually select the back-end so it is + ;; appropriate to provide as much back-ends as possible. + (add-after 'unpack 'fix-libusb-reference + (lambda* (#:key inputs #:allow-other-keys) + (let ((libusb0 (find + (negate symbolic-link?) + (find-files (assoc-ref inputs "libusb-compat") + "^libusb-.*\\.so\\..*"))) + (libusb1 (find + (negate symbolic-link?) + (find-files (assoc-ref inputs "libusb") + "^libusb-.*\\.so\\..*")))) + (substitute* "usb/libloader.py" + (("lib = locate_library\\(candidates, find_library\\)") + "lib = candidates")) + (substitute* "usb/backend/libusb0.py" + (("\\('usb-0\\.1', 'usb', 'libusb0'\\)") + (format #f "~s" libusb0))) + (substitute* "usb/backend/libusb1.py" + (("\\('usb-1\\.0', 'libusb-1\\.0', 'usb'\\)") + (format #f "~s" libusb1))) + ;; FIXME: OpenUSB is not packaged for GNU Guix. + (substitute* "usb/backend/openusb.py" + (("\\('openusb',\\)") "None"))))) + ;; Note: tests seems to succeed with libusb-compat as libusb + ;; fails because it doesn't have a usbfs present in the build + ;; environment. + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (with-directory-excursion "tests" + (setenv "PYUSB_DEBUG" "debug") + (setenv "LIBUSB_DEBUG" "4") + (invoke "python" "testall.py")))))))) (native-inputs (list python-setuptools-scm)) (inputs - (list libusb)) + (list libusb libusb-compat)) (home-page "https://pyusb.github.io/pyusb/") (synopsis "Python bindings to the libusb library") (description diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 85e3d9845d..c6fceaf81c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -75,6 +75,7 @@ ;;; Copyright © 2023 Yovan Naumovski <yovan@gorski.stream> ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> ;;; Copyright © 2023 dan <i@dan.games> +;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -188,6 +189,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system meson) + #:use-module (guix build-system pyproject) #:use-module (guix build-system python) #:use-module (guix build-system trivial) #:use-module (guix build-system linux-module) @@ -4963,6 +4965,29 @@ SMBus access.") #~(list (string-append "prefix=" #$output) (string-append "CC=" #$(cc-for-target)))))))) +(define-public python-smbus + (package + (inherit i2c-tools) + (name "python-smbus") + (build-system pyproject-build-system) + (arguments + (list #:tests? #f ;; No test suite. + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'change-directory + (lambda _ (chdir "py-smbus"))) + (add-after 'change-directory 'set-library-path + (lambda _ + (substitute* "setup.py" + (("-L\\.\\./lib") + (string-append "-L" #$(this-package-input "i2c-tools") + "/lib")))))))) + (inputs (list i2c-tools)) + (synopsis "I2C/SMBus access for Python") + (description "This package provides a Python library to access +@acronym{I2C, Inter-Integrated Circuit} and @acronym{SMBus, System +Management Bus} devices on Linux."))) + (define-public xsensors (package (name "xsensors") @@ -9751,7 +9776,7 @@ kernel side implementation.") (define-public erofs-utils (package (name "erofs-utils") - (version "1.5") + (version "1.7") (source (origin (method git-fetch) @@ -9760,11 +9785,12 @@ kernel side implementation.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0rgkw3b924xdg49v3qi8a10w41zfk276wb6fp71lb9q9cfc81idw")))) + (base32 "0bi8n1kb263v1gvis21pa9dxsf3p96d1nasm21icmv3rd9g2xh6p")))) (build-system gnu-build-system) (inputs (list lz4 - `(,util-linux "lib"))) + `(,util-linux "lib") + zlib)) (native-inputs (list autoconf automake libtool pkg-config)) (home-page "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/") diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 2751af4a85..c8a9cc47b1 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -2215,8 +2215,8 @@ antialiased TrueType font rendering using CLX and XRender extension.") (sbcl-package->ecl-package sbcl-clx-truetype)) (define-public sbcl-slynk - (let ((commit "82b20a9a83209b4dbfbfb62a1536896aed5f85f7") - (revision "7")) + (let ((commit "df62abae73bd511885c9c7ec0ea7ea1469a00923") + (revision "8")) (package (name "sbcl-slynk") (version (git-version "1.0.43" revision commit)) @@ -2228,7 +2228,7 @@ antialiased TrueType font rendering using CLX and XRender extension.") (url "https://github.com/joaotavora/sly") (commit commit))) (sha256 - (base32 "0dvr36qvb490gml0znay0slw63czp7azvajnv7srh8s0j8pqpcaj")) + (base32 "1nxijv52bja6la2i3asq7kklpj5li25454n52sgsc6xnnfvakbsv")) (file-name (git-file-name "cl-slynk" version)))) (build-system asdf-build-system/sbcl) (outputs '("out" "image")) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index abba41626d..16781b7aa1 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -1524,7 +1524,7 @@ for scientific computing and data science (e.g. BLAS and OpenMP).") (define-public python-tslearn (package (name "python-tslearn") - (version "0.6.1") + (version "0.6.2") (source (origin (method git-fetch) (uri (git-reference @@ -1533,7 +1533,7 @@ for scientific computing and data science (e.g. BLAS and OpenMP).") (file-name (git-file-name name version)) (sha256 (base32 - "1fhs8c28hdqsyj8kdhzrmrxrh4w92x6nf3gm026xapp9divvljd6")))) + "0l9l21jy78mhajdfwyx8rskw08597vg55ff22bjkv6xrjjr9g4ac")))) (build-system pyproject-build-system) (arguments (list diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 93cd801a95..73026012a9 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1625,14 +1625,14 @@ system, written in the Mercury language.") (define-public muchsync (package (name "muchsync") - (version "6") + (version "7") (source (origin (method url-fetch) - (uri (string-append "http://www.muchsync.org/src/" - "muchsync-" version ".tar.gz")) + (uri (string-append "https://www.muchsync.org/src/" "muchsync-" + version ".tar.gz")) (sha256 - (base32 "1s799kx16nm5ry1fcqcc0grgxrwnnp4cnzd0hzwbkvc5v2sf6g8b")))) + (base32 "1b5ylf0xgb59x6hna5gllm6nb1jn50wqvp7xfls83x0frmpjygpq")))) (build-system gnu-build-system) (native-inputs (list pandoc pkg-config)) @@ -3171,14 +3171,14 @@ from the Cyrus IMAP project.") (define-public opensmtpd (package (name "opensmtpd") - (version "7.3.0p1") + (version "7.3.0p2") (source (origin (method url-fetch) (uri (string-append "https://www.opensmtpd.org/archives/" "opensmtpd-" version ".tar.gz")) (sha256 - (base32 "01ss6j1jadnd3ckgf9zpvrbdpipkf7m4l3isribqfwy2l50wsihv")))) + (base32 "0kjs5cxbh9lq51b8p20hxmiah61cfm8yzkcwpw9005cdp72zpkgw")))) (build-system gnu-build-system) (inputs (list bdb diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm index 6cb54d0d8f..ad2d74f742 100644 --- a/gnu/packages/markup.scm +++ b/gnu/packages/markup.scm @@ -332,28 +332,28 @@ convert HTML to Markdown.") (define-public cmark (package (name "cmark") - (version "0.30.2") + (version "0.30.3") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/jgm/cmark") + (method git-fetch) + (uri (git-reference + (url "https://github.com/commonmark/cmark") (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1426snw3mq8qmpdxznkhsyy75xd9v9nwlc7sph08qpdz8xnp4hr2")))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "07d30s5v893nb1m7qbam5c3x9b3d84m80kzlj7fmkwhgjrlz7d7z")))) (build-system cmake-build-system) (arguments '(#:test-target "test")) (native-inputs (list python)) (synopsis "CommonMark Markdown reference implementation") - (description "CommonMark is a strongly defined, highly compatible -specification of Markdown. cmark is the C reference implementation of -CommonMark. It provides @code{libcmark} shared library for parsing -CommonMark to an abstract syntax tree (@dfn{AST}) and rendering the document -as HTML, groff man, LaTeX, CommonMark, or an XML representation of the -AST. The package also provides the command-line program @command{cmark} -for parsing and rendering CommonMark.") + (description + "CommonMark is a strongly defined, highly compatible specification of +Markdown. @code{cmark} is the C reference implementation of CommonMark. It +provides the @code{libcmark} shared library for parsing CommonMark to an +abstract syntax tree (@dfn{AST}) and rendering the document as HTML, groff man, +LaTeX, CommonMark, or an XML representation of the AST. It also provides the +command-line program @command{cmark} for parsing and rendering CommonMark.") (home-page "https://commonmark.org") ;; cmark is distributed with a BSD-2 license, but some components are Expat ;; licensed. The CommonMark specification is Creative Commons CC-BY-SA 4.0 diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 45ca49e04f..e060183a74 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1742,27 +1742,52 @@ System (Grid, Point and Swath).") (define-public hdf-eos5 (package (name "hdf-eos5") - (version "1.15") - (source (origin - (method url-fetch) - (uri (string-append "ftp://edhs1.gsfc.nasa.gov\ -/edhs/hdfeos5/latest_release/HDF-EOS5." version ".tar.Z")) - (sha256 - (base32 - "1p83333nzzy8rn5chxlm0hrkjjnhh2w1ji8ac0f9q4xzg838i58i")) - (patches (search-patches "hdf-eos5-build-shared.patch" - "hdf-eos5-remove-gctp.patch" - "hdf-eos5-fix-szip.patch" - "hdf-eos5-fortrantests.patch")))) + (version "2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://git.earthdata.nasa.gov/projects/DAS/repos/hdfeos5/raw/" + "hdf-eos5-" version "-src.tar.gz?at=refs/heads/HDFEOS5_" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0by82zznms00b0d5v4iv8a7jff6xm9hzswsx4mfzw2gyy1q4ghyp")) + (modules '((guix build utils))) + (snippet + #~(begin + (for-each delete-file (find-files "." "Makefile\\.in$")) + (for-each delete-file (find-files "m4" "^l.*\\.m4$")) + (delete-file "configure") + (delete-file "aclocal.m4"))))) (native-inputs - (list gfortran)) + (list autoconf automake gfortran libtool)) (build-system gnu-build-system) (inputs - (list hdf5-1.8 zlib gctp)) + (list hdf5-1.14 zlib gctp)) (arguments - `(#:configure-flags '("--enable-install-include" "--enable-shared" + (list + #:configure-flags ''("--enable-install-include" "--enable-shared" "CC=h5cc -Df2cFortran" "LIBS=-lgctp") - #:parallel-tests? #f)) + #:parallel-tests? #f + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'remove-single_module-flag + (lambda _ + (substitute* "src/Makefile.am" + ((",-single_module") "")))) + (add-after 'unpack 'fix-parallel-tests + (lambda _ + (substitute* (find-files "testdrivers" "\\.c$") + (("#include <HE5_HdfEosDef.h>" orig) + (string-append "#include <HE5_config.h>\n" orig))) + ;; pthread is already linked. + (substitute* "testdrivers/threads/Makefile.am" + (("(LDADD=\\$\\(LIBHDFEOS5\\) \\$\\(LIBGCTP\\)) pthread" _ rest) + rest)) + ;; This file is missing in the testdrivers/threads directory. + (copy-file "testdrivers/point/simple.txt" + "testdrivers/threads/simple.txt")))))) (synopsis "HDF5-based data format for NASA's Earth Observing System") (description "HDF-EOS5 is a software library built on HDF5 to support the construction @@ -4636,7 +4661,10 @@ parts of it.") (arguments (substitute-keyword-arguments (package-arguments openblas) ((#:make-flags flags #~'()) - #~(append (list "INTERFACE64=1" "LIBNAMESUFFIX=ilp64") + ;; These should be '64' but julia hardcodes '64_'. + #~(append (list "INTERFACE64=1" + "SYMBOLSUFFIX=64_" + "LIBPREFIX=libopenblas64_") #$flags)))) (synopsis "Optimized BLAS library based on GotoBLAS (ILP64 version)") (license license:bsd-3))) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 14c4fc2b15..7bea3fac91 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -148,6 +148,7 @@ #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) + #:use-module (guix build-system pyproject) #:use-module (guix build-system qt) #:use-module (guix build-system trivial) #:use-module (guix download) @@ -1089,21 +1090,27 @@ simultaneously and therefore appear under the same nickname on IRC.") (define-public python-nbxmpp (package (name "python-nbxmpp") - (version "3.1.0") + (version "4.2.2") (source (origin (method url-fetch) - (uri - (pypi-uri "nbxmpp" version)) + (uri (pypi-uri "nbxmpp" version)) (sha256 - (base32 "0c32090gr1fiy7hkn73dcj4ad9gfdpks8hivl1dl8bql01jsfdnj")))) - (build-system python-build-system) - (native-inputs - (list `(,glib "bin"))) + (base32 "095nyy6vjildhrqigxk6vsh49in6mx17bvb3z5zpjmzhv9b8ix46")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + ;; XXX: This probably should be an option for pyproject-build-system + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? (invoke "python" "-m" "unittest" "-v"))))))) + (native-inputs (list `(,glib "bin"))) (inputs (list glib glib-networking - libsoup-minimal-2 + libsoup-minimal python-gssapi python-idna python-precis-i18n @@ -1118,71 +1125,85 @@ of xmpppy.") (define-public gajim (package (name "gajim") - (version "1.4.7") + (version "1.7.3") (source (origin (method url-fetch) - (uri - (string-append "https://gajim.org/downloads/" - (version-major+minor version) - "/gajim-" version ".tar.gz")) + (uri (string-append "https://gajim.org/downloads/" + (version-major+minor version) + "/gajim-" version ".tar.gz")) (sha256 - (base32 "1ww46qlxr14nq0ka8wsf8qpn5qfi5dvgyksfh9411crl7azhfj0s")) - (patches (search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch")))) + (base32 "066kvkjw3qcdanr3nczy0wgcwihk9jc9zhzfr5bwlqvcyxcv7k5p")) + (patches + (search-patches "gajim-honour-GAJIM_PLUGIN_PATH.patch")))) (build-system python-build-system) (arguments - `(#:imported-modules - (,@%python-build-system-modules + (list + #:imported-modules + `(,@%python-build-system-modules (guix build glib-or-gtk-build-system)) - #:modules - ((guix build python-build-system) - ((guix build glib-or-gtk-build-system) - #:prefix glib-or-gtk:) + #:modules + '((guix build python-build-system) + ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) (guix build utils)) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'disable-failing-tests - (lambda _ - ;; XXX Gajim builds fine on some (my) machines but fails elsewhere: - ;; ModuleNotFoundError: No module named 'gajim.gui.emoji_data' - ;; https://dev.gajim.org/gajim/gajim/-/issues/11041 - (delete-file "test/no_gui/test_styling.py"))) - (replace 'check - (lambda _ - ;; Tests require a running X server. - (system "Xvfb :1 +extension GLX &") - (setenv "DISPLAY" ":1") - ;; For missing '/etc/machine-id'. - (setenv "DBUS_FATAL_WARNINGS" "0") - (invoke "dbus-launch" "python" "./setup.py" "test"))) - ;; Loading gajim_remote require running session bus, - ;; which in-turn requires running elogind for XDG_RUNTIME_DIR; - ;; neither of which are possible inside build environment. - (delete 'sanity-check) - (add-after 'install 'glib-or-gtk-compile-schemas - (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas)) - (add-after 'install 'glib-or-gtk-wrap - (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)) - (add-after 'install 'wrap-env - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (for-each - (lambda (name) - (let ((file (string-append out "/bin/" name)) - (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")) - (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) - (wrap-program file - `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)) - `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))) - '("gajim" "gajim-remote")))))))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file + (assoc-ref glib-or-gtk:%standard-phases + 'generate-gdk-pixbuf-loaders-cache-file)) + (add-before 'build 'build-metadata + (lambda _ + (invoke "./pep517build/build_metadata.py" + "-o" "dist/metadata"))) + ;; TODO: Change to pyproject-build-system once it supports + ;; in-tree build backends. + (replace 'build + (lambda _ + (invoke "python" "-m" "build" "--wheel" "--no-isolation" + "."))) + (replace 'install + (lambda _ + (apply invoke "pip" "--no-cache-dir" "--no-input" + "install" "--no-deps" "--prefix" #$output + (find-files "dist" "\\.whl$")))) + (add-after 'install 'install-metadata + (lambda _ + (invoke "./pep517build/install_metadata.py" "dist/metadata" + (string-append "--prefix=" #$output)))) + (replace 'check + (lambda _ + ;; Tests require a running X server. + (system "Xvfb :1 +extension GLX &") + (setenv "DISPLAY" ":1") + ;; For missing '/etc/machine-id'. + (setenv "DBUS_FATAL_WARNINGS" "0") + (invoke "dbus-launch" "python" "-m" "unittest" + "discover" "-s" "test"))) + (add-after 'install 'glib-or-gtk-compile-schemas + (assoc-ref glib-or-gtk:%standard-phases + 'glib-or-gtk-compile-schemas)) + (add-after 'install 'glib-or-gtk-wrap + (assoc-ref glib-or-gtk:%standard-phases + 'glib-or-gtk-wrap)) + (add-after 'install 'wrap-env + (lambda _ + (for-each + (lambda (name) + (let ((file (string-append #$output "/bin/" name)) + (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")) + (gi-typelib-path (getenv "GI_TYPELIB_PATH")) + (pixbuf-module-file (getenv "GDK_PIXBUF_MODULE_FILE"))) + (wrap-program file + `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)) + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)) + `("GDK_PIXBUF_MODULE_FILE" = (,pixbuf-module-file))))) + '("gajim" "gajim-remote"))))))) (native-search-paths (list (search-path-specification (variable "GAJIM_PLUGIN_PATH") - (separator #f) ;single entry - (files - (list - "share/gajim/plugins"))) + (separator #f) ; single entry + (files (list "share/gajim/plugins"))) ;; Gajim needs to use the propagated inputs of its plugins. (search-path-specification (variable "GUIX_PYTHONPATH") @@ -1193,7 +1214,7 @@ of xmpppy.") ;; FIXME: Cannot use this expression as it would ;; introduce a circular dependency at the top level. ;; (version-major+minor (package-version python)) - "3.9" + "3.10" "/site-packages")))))) (native-inputs (list gettext-minimal @@ -1201,6 +1222,7 @@ of xmpppy.") gobject-introspection `(,gtk+ "bin") python-distutils-extra + python-pypa-build python-setuptools xorg-server-for-tests)) (inputs @@ -1248,7 +1270,7 @@ and OpenPGP) and available in 29 languages.") (define-public gajim-omemo (package (name "gajim-omemo") - (version "2.8.15") + (version "2.9.0") (source (origin (method url-fetch/zipbomb) @@ -1257,7 +1279,7 @@ and OpenPGP) and available in 29 languages.") "https://ftp.gajim.org/plugins/master/omemo/omemo_" version ".zip")) (sha256 - (base32 "1hf148ywr8knk5y3y5xvvwgw74ld1pcfjkp78g514ikcnzfycfcn")))) + (base32 "0yy9r9fsrlgdywiln8bskhi8faj9hnz7b19jcap5nkhv8jn9cqq7")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) @@ -1284,7 +1306,7 @@ multi-client end-to-end encryption.") (define-public gajim-openpgp (package (name "gajim-openpgp") - (version "1.4.9") + (version "1.5.0") (source (origin (method url-fetch/zipbomb) @@ -1293,7 +1315,7 @@ multi-client end-to-end encryption.") "https://ftp.gajim.org/plugins/master/openpgp/openpgp_" version ".zip")) (sha256 - (base32 "1xwmf6ai1z7z9x6p1ysglxji73r7d27c0gzc8ykab29cjhjyv0dq")))) + (base32 "193pbh9iri7bkamvjwp236i8g5zxxiqgsv64kll5sy76vx4q73c4")))) (build-system trivial-build-system) (arguments `(#:modules ((guix build utils)) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index d617dc014b..86f18e8d77 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -613,7 +613,7 @@ mpdevil loads all tags and covers on demand.") (define-public mympd (package (name "mympd") - (version "11.0.5") + (version "12.0.2") (source (origin (method git-fetch) (uri (git-reference @@ -622,7 +622,7 @@ mpdevil loads all tags and covers on demand.") (file-name (git-file-name name version)) (sha256 (base32 - "0b3skvam3kb14w2afzxl1pfvj4cfanr45nyv93zpxafmxgghxqcv")))) + "19139ina79jdfmc2vh6xcp5n0z8c41fi2fz2fmvg623bpix3fcgf")))) (build-system cmake-build-system) (arguments (list diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index a26719aec2..14894d8999 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -3780,7 +3780,7 @@ event-based scripts for scrobbling, notifications, etc.") (define-public picard (package (name "picard") - (version "2.9.1") + (version "2.9.2") (source (origin (method url-fetch) (uri (string-append @@ -3788,7 +3788,7 @@ event-based scripts for scrobbling, notifications, etc.") "picard/picard-" version ".tar.gz")) (sha256 (base32 - "1f1nf53xm94jam8w86a8hx69ilzddjibf29c7f1i353fr6k6bqvs")))) + "1gd4mypqcmpf8xnil1kqfv56znqg9pllvsj7fx8nq8jqaaw9cy6g")))) (build-system python-build-system) (arguments (list diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index c1cab1fe0d..0a9472ee86 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -798,7 +798,7 @@ at the link-layer level.") (define-public nng (package (name "nng") - (version "1.3.2") + (version "1.5.2") (source (origin (method git-fetch) @@ -807,7 +807,7 @@ at the link-layer level.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0a4jg8alh2h0rw6fb4dqpvk4hgl2a7h76mq7g34fy89qh9sgg1a4")))) + (base32 "1sap0iny3z9lhmaiassv8jc399md1307y32xxx3mrr74jcpcrf59")))) (build-system cmake-build-system) (arguments `(#:configure-flags @@ -821,13 +821,18 @@ at the link-layer level.") ;; These tests require network access. (substitute* "tests/CMakeLists.txt" (("add_nng_test1\\(httpclient 60 NNG_SUPP_HTTP\\)") "") - (("add_nng_test1\\(resolv 10 NNG_STATIC_LIB\\)") "") (("add_nng_test\\(tls 60\\)") "")) - #t))))) - (native-inputs - `(("ksh" ,oksh))) - (inputs - `(("mbedtls" ,mbedtls-apache))) + (substitute* "src/platform/CMakeLists.txt" + (("nng_test\\(platform_test\\)") "") + (("nng_test\\(resolver_test\\)") "")) + (substitute* "src/sp/transport/tcp/CMakeLists.txt" + (("nng_test\\(tcp_test\\)") "")) + (substitute* "src/sp/transport/ws/CMakeLists.txt" + (("nng_test_if\\(WS_ON ws_test\\)") "")) + (substitute* "src/supplemental/websocket/CMakeLists.txt" + (("nng_test\\(wssfile_test\\)") ""))))))) + (native-inputs (list oksh)) + (inputs (list mbedtls-apache)) (synopsis "Lightweight messaging library") (description "NNG project is a rewrite of the scalability protocols library known as libnanomsg, and adds significant new capabilities, while retaining @@ -4525,7 +4530,7 @@ on hub/switched networks. It is based on @acronym{ARP} packets, it will send (define-public phantomsocks (package (name "phantomsocks") - (version "0.0.0-20230811053544-53b995bdab83") + (version "0.0.0-20230829023258-013a0002abe2") (source (origin (method git-fetch) (uri (git-reference @@ -4534,7 +4539,7 @@ on hub/switched networks. It is based on @acronym{ARP} packets, it will send (file-name (git-file-name name version)) (sha256 (base32 - "1jc9qldi4f9s6n4ggaphyilxjymrz95hwd060jhj260x2hkdywl9")))) + "0pqq4mh6dr7fb7i001wggwkxpvavxq0ps9h2cmm4gv8ygh4v6f10")))) (build-system go-build-system) (arguments (list #:install-source? #f diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index cbda40f78b..de987b1b7f 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -174,8 +174,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "1.4.0") - (commit "4dfdd822102690b5687acf28365ab707b68d9476") - (revision 10)) + (commit "d0438fcf658cb8c95b32381fac44b0a6278459ed") + (revision 11)) (package (name "guix") @@ -191,7 +191,7 @@ (commit commit))) (sha256 (base32 - "1p21gz2lr7iqvma1m83k2r04w201rzvk31d5kfn2qkr9l0gds4cx")) + "05i32m7cxs7vhl54hvs0f9g84jhnn2dbc9qcgaqvqnqc4i8yhhxr")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments @@ -215,6 +215,13 @@ ;; system installation image.) "ac_cv_path_DOT_USER_PROGRAM=dot" + ;; When cross-compiling, 'git' is not in $PATH + ;; (because it's not a native input). Thus, + ;; always explicitly pass its file name. + (string-append "ac_cv_path_GIT=" + (search-input-file %build-inputs + "/bin/git")) + ;; To avoid problems with the length of shebangs, ;; choose a fixed-width and short directory name ;; for tests. @@ -515,6 +522,8 @@ $(prefix)/etc/openrc\n"))) ("disarchive" ,disarchive) ;for 'guix perform-download' ("guile-lzma" ,guile-lzma) ;for Disarchive + ("git-minimal" ,git-minimal) ;for 'guix perform-download' + ("glibc-utf8-locales" ,glibc-utf8-locales))) (propagated-inputs `(("guile-gnutls" ,guile-gnutls) @@ -1592,7 +1601,7 @@ environments.") guile-gcrypt guix guile-prometheus - guile-fibers-1.3 + guile-fibers guile-lib (first (assoc-ref (package-native-inputs guix) "guile")))) (inputs @@ -1610,7 +1619,7 @@ environments.") guile-sqlite3 guix guile-gnutls - guile-fibers-1.3)) + guile-fibers)) (home-page "https://git.cbaines.net/guix/build-coordinator/") (synopsis "Tool to help build derivations") (description @@ -1826,7 +1835,7 @@ in an isolated environment, in separate namespaces.") guile-json-4 guile-gcrypt guix - guile-fibers-1.3 + guile-fibers guile-prometheus guile-lib guile-lzlib @@ -1839,7 +1848,7 @@ in an isolated environment, in separate namespaces.") (list guile-json-4 guile-gcrypt guix - guile-fibers-1.3 + guile-fibers guile-prometheus guile-lib guile-lzlib diff --git a/gnu/packages/pantheon.scm b/gnu/packages/pantheon.scm index 12892db137..5b83b96801 100644 --- a/gnu/packages/pantheon.scm +++ b/gnu/packages/pantheon.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> ;;; Copyright © 2023 Wamm K. D. <jaft.r@outlook.com> +;;; Copyright © 2023 altadil <Altadil@protonmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,11 +27,13 @@ #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) #:use-module (gnu packages package-management) + #:use-module (gnu packages pcre) #:use-module (gnu packages photo) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages xml) #:use-module (gnu packages web) + #:use-module (gnu packages xorg) #:use-module (gnu packages) #:use-module (guix build-system meson) #:use-module (guix git-download) @@ -72,6 +75,22 @@ things, it provides complex widgets and convenience functions designed for use in apps built for the Pantheon desktop.") (license license:lgpl3+))) +;; This is required for pantheon apps that have not been ported to GTK4 yet. +(define-public granite-6 + (package + (inherit granite) + (version "6.2.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/elementary/granite") + (commit version))) + (file-name (git-file-name "granite" version)) + (sha256 + (base32 + "0ilslmg63hh2x7h5rvs3mhzw1y9ixhhkqnn1j1lzwm12v2iidkaq")))) + (propagated-inputs (list glib libgee gtk+)))) + (define-public pantheon-calculator (package (name "pantheon-calculator") @@ -113,6 +132,57 @@ arithmetic. It is the default calculator application in the Pantheon desktop.") (license license:gpl3))) +(define-public pantheon-terminal + (package + (name "pantheon-terminal") + (version "6.1.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/elementary/terminal") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0x3gzghnfx4a1q2zhra4dysc0pm1zvlfdxj96qhfb627pz16iv4k")))) + (build-system meson-build-system) + (arguments + `(#:tests? #f ; Tests invole launching the terminal. + #:glib-or-gtk? #t + #:phases (modify-phases %standard-phases + (add-before 'install 'set-environment-variables + (lambda _ + ;; Disable compiling schemas and updating desktop databases + (setenv "DESTDIR" "/"))) + (add-after 'install 'install-symlinks + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out + "/bin/io.elementary.terminal")) + (link (string-append out "/bin/pantheon-terminal"))) + (symlink bin link))))))) + (native-inputs (list appstream + desktop-file-utils ;required for tests + gettext-minimal ;for msgfmt + `(,glib "bin") ;for glib-compile-resources + gobject-introspection + pkg-config + vala + xvfb-run)) + (inputs (list granite-6 + gtk+ + libgee + libhandy + pcre2 + vte)) + (synopsis "Terminal emulator from elementaryOS") + (description "pantheon-terminal is a lightweight, beautiful and simple +terminal. It comes with sane defaults, browser-class tabs, sudo paste +protection, smart copy/paste, and little to no configuration. It is the default +terminal in the Pantheon desktop.") + (home-page "https://elementary.io/open-source") + (license license:lgpl3))) + (define-public sideload (package (name "sideload") diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index be85898c41..9558da1dee 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -63,6 +63,7 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system go) #:use-module (guix build-system python) + #:use-module (guix build-system qt) #:use-module (guix build-system trivial) #:use-module (guix download) #:use-module (guix gexp) @@ -154,14 +155,9 @@ human.") version "-src.tar.xz")) (sha256 (base32 "0w6nh2lnzfqcxasfsppmh4q309p1flzgfiv25hahzsd8kx879055")))) - (build-system cmake-build-system) + (build-system qt-build-system) (arguments (list - #:modules '((guix build cmake-build-system) - (guix build qt-utils) - (guix build utils)) - #:imported-modules `(,@%cmake-build-system-modules - (guix build qt-utils)) #:configure-flags #~(append (list "-DWITH_XC_ALL=YES" @@ -175,13 +171,10 @@ human.") (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? - ;; Fails with "TestCli::testClip() Compared values are not the - ;; same". That test also requires a phase with (setenv - ;; "QT_QPA_PLATFORM" "offscreen") in order to work. - (invoke "ctest" "--exclude-regex" "testcli")))) - (add-after 'install 'wrap-qt - (lambda* (#:key inputs #:allow-other-keys) - (wrap-qt-program "keepassxc" #:output #$output #:inputs inputs)))))) + ;; "TestCli::testClip() Compared values are not the same". + ;; Actual (((clipboard->text()))): "" + ;; Expected (QString("Password")) : "Password" + (invoke "ctest" "--exclude-regex" "testcli"))))))) (native-inputs (append (list qttools-5) @@ -201,7 +194,6 @@ human.") minizip pcsc-lite qrencode - qtbase-5 qtsvg-5 qtwayland-5 qtx11extras diff --git a/gnu/packages/patches/fulcrum-1.9.1-unbundled-libraries.patch b/gnu/packages/patches/fulcrum-1.9.1-unbundled-libraries.patch new file mode 100644 index 0000000000..327846b7aa --- /dev/null +++ b/gnu/packages/patches/fulcrum-1.9.1-unbundled-libraries.patch @@ -0,0 +1,210 @@ +SPDX-FileCopyrightText: © 2023 Foundation Devices, Inc. <hello@foundationdevices.com> +SPDX-License-Identifier: GPL-3.0-or-later + +These patch series allow to compile Fulcrum without using any bundled +libraries. + +From 141d590b4189908a88ca07ad8e3880e4933e6427 Mon Sep 17 00:00:00 2001 +From: Jean-Pierre De Jesus DIAZ <me@jeandudey.tech> +Date: Thu, 6 Jul 2023 14:56:53 +0200 +Subject: [PATCH 1/4] Add config to build without secp256k1 + +Signed-off-by: Jean-Pierre De Jesus DIAZ <me@jeandudey.tech> +--- + Fulcrum.pro | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Fulcrum.pro b/Fulcrum.pro +index e7fdfde..2dad355 100644 +--- a/Fulcrum.pro ++++ b/Fulcrum.pro +@@ -480,7 +480,7 @@ HEADERS += \ + # Enable secp256k1 compilation on x86_64 only -- we don't actually use this lib + # yet in Fulcrum, so on platforms that aren't x86_64 it's ok to exclude it; it + # was included in case we wish to someday verify signatures in Fulcrum, etc. +-contains(QT_ARCH, x86_64):!win32-msvc { ++contains(QT_ARCH, x86_64):!contains(CONFIG, config_without_bundled_secp256k1):!win32-msvc { + message("Including embedded secp256k1") + + SOURCES += bitcoin/secp256k1/secp256k1.c +-- +2.34.1 + + +From 093a43d02dd14039ae8aed992223e5167f3fb866 Mon Sep 17 00:00:00 2001 +From: Jean-Pierre De Jesus DIAZ <me@jeandudey.tech> +Date: Thu, 6 Jul 2023 15:49:01 +0200 +Subject: [PATCH 2/4] Allow using system simdjson + +Signed-off-by: Jean-Pierre De Jesus DIAZ <me@jeandudey.tech> +--- + Fulcrum.pro | 7 +++++++ + src/Json/Json_Parser.cpp | 5 ++++- + 2 files changed, 11 insertions(+), 1 deletion(-) + +diff --git a/Fulcrum.pro b/Fulcrum.pro +index 2dad355..c478af6 100644 +--- a/Fulcrum.pro ++++ b/Fulcrum.pro +@@ -149,6 +149,13 @@ contains(CONFIG, config_endian_big) { + } + # /GIT_COMMIT= + ++# simdjson ++contains(LIBS, -lsimdjson) { ++ message("simdjson: Using CLI override") ++ DEFINES += SYSTEM_SIMDJSON ++} ++# /simdjson ++ + # ZMQ + !contains(LIBS, -lzmq) { + # Test for ZMQ, and if found, add pkg-config which we will rely upon to find libs +diff --git a/src/Json/Json_Parser.cpp b/src/Json/Json_Parser.cpp +index c24fe94..eb42eec 100644 +--- a/src/Json/Json_Parser.cpp ++++ b/src/Json/Json_Parser.cpp +@@ -56,7 +56,10 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + // embed simdjson here, if we are on a known 64-bit platform and the header & sources are available + #if defined(__x86_64__) || defined(_M_AMD64) || defined(__aarch64__) || defined(_M_ARM64) +-#if __has_include("simdjson/simdjson.h") && __has_include("simdjson/simdjson.cpp") ++#if defined(SYSTEM_SIMDJSON) ++#include <simdjson.h> ++#define HAVE_SIMDJSON 1 ++#elif __has_include("simdjson/simdjson.h") && __has_include("simdjson/simdjson.cpp") + #include "simdjson/simdjson.h" + #include "simdjson/simdjson.cpp" + #define HAVE_SIMDJSON 1 +-- +2.34.1 + + +From 4c609cb1467478cb669b5ca2290606128543a48c Mon Sep 17 00:00:00 2001 +From: Jean-Pierre De Jesus DIAZ <me@jeandudey.tech> +Date: Thu, 6 Jul 2023 15:56:01 +0200 +Subject: [PATCH 3/4] Allow using system robin-hood-hashing + +Signed-off-by: Jean-Pierre De Jesus DIAZ <me@jeandudey.tech> +--- + Fulcrum.pro | 13 ++++++++++--- + src/Controller.cpp | 2 +- + src/Storage.cpp | 4 ++-- + 3 files changed, 13 insertions(+), 6 deletions(-) + +diff --git a/Fulcrum.pro b/Fulcrum.pro +index c478af6..99c7659 100644 +--- a/Fulcrum.pro ++++ b/Fulcrum.pro +@@ -149,6 +149,16 @@ contains(CONFIG, config_endian_big) { + } + # /GIT_COMMIT= + ++# robin-hood-hashing ++!contains(CONFIG, config_without_bundled_robin_hood) { ++ # Robin Hood unordered_flat_map implememntation (single header and MUCH more efficient than unordered_map!) ++ HEADERS += robin_hood/robin_hood.h ++ INCLUDEPATH += src/robin_hood/ ++} else { ++ message("robin-hood-hashing: Using CLI override") ++} ++# /robin-hood-hashing ++ + # simdjson + contains(LIBS, -lsimdjson) { + message("simdjson: Using CLI override") +@@ -402,9 +412,6 @@ HEADERS += \ + WebSocket.h \ + ZmqSubNotifier.h + +-# Robin Hood unordered_flat_map implememntation (single header and MUCH more efficient than unordered_map!) +-HEADERS += robin_hood/robin_hood.h +- + RESOURCES += \ + resources.qrc + +diff --git a/src/Controller.cpp b/src/Controller.cpp +index 918c1f2..d0cab56 100644 +--- a/src/Controller.cpp ++++ b/src/Controller.cpp +@@ -33,7 +33,7 @@ + #include "bitcoin/crypto/common.h" // ReadLE32 + #include "bitcoin/rpc/protocol.h" // for RPC_INVALID_ADDRESS_OR_KEY + #include "bitcoin/transaction.h" +-#include "robin_hood/robin_hood.h" ++#include <robin_hood.h> + + #include <algorithm> + #include <cassert> +diff --git a/src/Storage.cpp b/src/Storage.cpp +index e74278c..0f0b91e 100644 +--- a/src/Storage.cpp ++++ b/src/Storage.cpp +@@ -31,7 +31,7 @@ + + #include "bitcoin/hash.h" + +-#include "robin_hood/robin_hood.h" ++#include <robin_hood.h> + + #if __has_include(<rocksdb/advanced_cache.h>) + // Newer rocksdb 8.1 defines the `Cache` class in this header. :/ +@@ -4537,7 +4537,7 @@ namespace { + } // end anon namespace + + #ifdef ENABLE_TESTS +-#include "robin_hood/robin_hood.h" ++#include <robin_hood.h> + namespace { + + template<size_t NB> +-- +2.34.1 + + +From 0e3888b12f62553b032a56b71d2c1545add080b6 Mon Sep 17 00:00:00 2001 +From: Jean-Pierre De Jesus DIAZ <me@jeandudey.tech> +Date: Thu, 6 Jul 2023 16:04:57 +0200 +Subject: [PATCH 4/4] Allow using system cppzmq + +Signed-off-by: Jean-Pierre De Jesus DIAZ <me@jeandudey.tech> +--- + Fulcrum.pro | 8 ++++++++ + src/ZmqSubNotifier.cpp | 2 +- + 2 files changed, 9 insertions(+), 1 deletion(-) + +diff --git a/Fulcrum.pro b/Fulcrum.pro +index 99c7659..0948834 100644 +--- a/Fulcrum.pro ++++ b/Fulcrum.pro +@@ -186,6 +186,14 @@ contains(LIBS, -lsimdjson) { + } + # /ZMQ + ++# cppzmq ++!contains(CONFIG, config_without_bundled_cppzmq) { ++ INCLUDEPATH += src/zmq ++} else { ++ message("cppzmq: Using CLI override") ++} ++# /cppzmq ++ + # - Try and detect rocksdb and if not, fall back to the staticlib. + # - User can suppress this behavior by specifying a "LIBS+=-lrocksdb..." on the + # CLI when they invoked qmake. In that case, they must set-up the LIBS+= and +diff --git a/src/ZmqSubNotifier.cpp b/src/ZmqSubNotifier.cpp +index 6b03784..48a41be 100644 +--- a/src/ZmqSubNotifier.cpp ++++ b/src/ZmqSubNotifier.cpp +@@ -23,7 +23,7 @@ + #if defined(ENABLE_ZMQ) + // real implementation + #define ZMQ_CPP11 +-#include "zmq/zmq.hpp" ++#include <zmq.hpp> + + #include <QRandomGenerator> + +-- +2.34.1 + diff --git a/gnu/packages/patches/icecat-102-makeicecat.patch b/gnu/packages/patches/icecat-102-makeicecat.patch new file mode 100644 index 0000000000..940ca36b6c --- /dev/null +++ b/gnu/packages/patches/icecat-102-makeicecat.patch @@ -0,0 +1,51 @@ +Make some of the changes needed to the 'makeicecat' script, to allow it to run +in a snippet without network access. After this patch is applied, some +additional changes will be made using 'substitute*'. + +diff --git a/makeicecat b/makeicecat +index bf2b7a6..bc3b19b 100755 +--- a/makeicecat ++++ b/makeicecat +@@ -56,7 +56,7 @@ readonly SOURCEDIR=icecat-${FFVERSION} + # debug/shell options + readonly DEVEL=0 + set -euo pipefail +-(( DEVEL )) && set -x ++set -x + + + ############################################################################### +@@ -455,7 +455,7 @@ configure_search() + + + # Process various JSON pre-configuration dumps. +- python3 ../../tools/process-json-files.py . browser/components/extensions/schemas/ ++ python3 "${DATADIR}"/../tools/process-json-files.py . browser/components/extensions/schemas/ + } + + configure_mobile() +@@ -837,12 +837,12 @@ finalize_sourceball() + # entry point + ############################################################################### + +-validate_env || exit 1 +-prepare_env +-fetch_source +-verify_sources +-extract_sources +-fetch_l10n ++# validate_env || exit 1 ++# prepare_env ++# fetch_source ++# verify_sources ++# extract_sources ++# fetch_l10n + apply_patches + configure + configure_search +@@ -854,4 +854,4 @@ prepare_macos_packaging + configure_extensions + configure_onboarding + apply_bugfixes +-finalize_sourceball ++# finalize_sourceball diff --git a/gnu/packages/patches/icecat-makeicecat.patch b/gnu/packages/patches/icecat-makeicecat.patch index 940ca36b6c..1529f181d7 100644 --- a/gnu/packages/patches/icecat-makeicecat.patch +++ b/gnu/packages/patches/icecat-makeicecat.patch @@ -15,16 +15,7 @@ index bf2b7a6..bc3b19b 100755 ############################################################################### -@@ -455,7 +455,7 @@ configure_search() - - - # Process various JSON pre-configuration dumps. -- python3 ../../tools/process-json-files.py . browser/components/extensions/schemas/ -+ python3 "${DATADIR}"/../tools/process-json-files.py . browser/components/extensions/schemas/ - } - - configure_mobile() -@@ -837,12 +837,12 @@ finalize_sourceball() +@@ -928,12 +928,12 @@ finalize_sourceball() # entry point ############################################################################### @@ -43,7 +34,7 @@ index bf2b7a6..bc3b19b 100755 apply_patches configure configure_search -@@ -854,4 +854,4 @@ prepare_macos_packaging +@@ -945,4 +945,4 @@ prepare_macos_packaging configure_extensions configure_onboarding apply_bugfixes diff --git a/gnu/packages/patches/kiwix-desktop-newer-libkiwix.patch b/gnu/packages/patches/kiwix-desktop-newer-libkiwix.patch new file mode 100644 index 0000000000..a5bee60ac2 --- /dev/null +++ b/gnu/packages/patches/kiwix-desktop-newer-libkiwix.patch @@ -0,0 +1,40 @@ +Description: Fix building kiwix-desktop with libkiwix-12.1.0 +Bug: https://github.com/kiwix/kiwix-desktop/issues/964 +Origin: https://github.com/kiwix/kiwix-desktop/commit/1b322d8f01c787846546a6473f153cf1daa41e65 +Applied-Upstream: https://github.com/kiwix/kiwix-desktop/commit/1b322d8f01c787846546a6473f153cf1daa41e65 +--- +From 1b322d8f01c787846546a6473f153cf1daa41e65 Mon Sep 17 00:00:00 2001 +From: Matthieu Gautier <mgautier@kymeria.fr> +Date: Thu, 9 Feb 2023 09:47:47 +0100 +Subject: [PATCH] With last version of libkiwix, Downloader now return + shared_ptr<Download>. + +--- + src/contentmanager.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/contentmanager.cpp b/src/contentmanager.cpp +index c2f4ff9..d4db50a 100644 +--- a/src/contentmanager.cpp ++++ b/src/contentmanager.cpp +@@ -173,7 +173,7 @@ QStringList ContentManager::updateDownloadInfos(QString id, const QStringList &k + return values; + } + auto& b = mp_library->getBookById(id); +- kiwix::Download* d; ++ std::shared_ptr<kiwix::Download> d; + try { + d = mp_downloader->getDownload(b.getDownloadId()); + } catch(...) { +@@ -270,7 +270,7 @@ QString ContentManager::downloadBook(const QString &id) + for (auto b : booksList) + if (b.toStdString() == book.getId()) + return ""; +- kiwix::Download *download; ++ std::shared_ptr<kiwix::Download> download; + try { + std::pair<std::string, std::string> downloadDir("dir", downloadPath.toStdString()); + const std::vector<std::pair<std::string, std::string>> options = { downloadDir }; +-- +2.41.0 + diff --git a/gnu/packages/patches/libvpx-CVE-2023-5217.patch b/gnu/packages/patches/libvpx-CVE-2023-5217.patch new file mode 100644 index 0000000000..2bcb0bcd55 --- /dev/null +++ b/gnu/packages/patches/libvpx-CVE-2023-5217.patch @@ -0,0 +1,99 @@ +From: Tobias Geerinckx-Rice <me@tobias.gr> +Date: Sun Sep 24 02:00:00 2023 +0200 +Subject: libvpx: Fix CVE-2023-5217. + +These are the changes made to libvpx between Firefox ESR 115.3.0 and +115.3.1, which claims to fix CVE-2023-5217 and so do we. The report +itself is not public. + +It consists of the following 2 upstream libvpx commits: + af6dedd715f4307669366944cca6e0417b290282 + 3fbd1dca6a4d2dad332a2110d646e4ffef36d590 +which are not yet part of an upstream commit. + +--- +diff -Naur libvpx.orig/test/encode_api_test.cc libvpx/test/encode_api_test.cc +--- libvpx.orig/test/encode_api_test.cc 1970-01-01 01:00:01.000000000 +0100 ++++ libvpx/test/encode_api_test.cc 2023-09-29 21:00:03.189620452 +0200 +@@ -304,7 +304,6 @@ + + void InitCodec(const vpx_codec_iface_t &iface, int width, int height, + vpx_codec_ctx_t *enc, vpx_codec_enc_cfg_t *cfg) { +- ASSERT_EQ(vpx_codec_enc_config_default(&iface, cfg, 0), VPX_CODEC_OK); + cfg->g_w = width; + cfg->g_h = height; + cfg->g_lag_in_frames = 0; +@@ -342,6 +341,7 @@ + vpx_codec_ctx_t ctx = {}; + } enc; + ++ ASSERT_EQ(vpx_codec_enc_config_default(iface, &cfg, 0), VPX_CODEC_OK); + EXPECT_NO_FATAL_FAILURE( + InitCodec(*iface, kWidth, kHeight, &enc.ctx, &cfg)); + if (IsVP9(iface)) { +@@ -353,6 +353,50 @@ + + for (const auto threads : { 1, 4, 8, 6, 2, 1 }) { + cfg.g_threads = threads; ++ EXPECT_NO_FATAL_FAILURE(EncodeWithConfig(cfg, &enc.ctx)) ++ << "iteration: " << i << " threads: " << threads; ++ } ++ } ++ } ++} ++ ++TEST(EncodeAPI, ConfigResizeChangeThreadCount) { ++ constexpr int kInitWidth = 1024; ++ constexpr int kInitHeight = 1024; ++ ++ for (const auto *iface : kCodecIfaces) { ++ SCOPED_TRACE(vpx_codec_iface_name(iface)); ++ for (int i = 0; i < (IsVP9(iface) ? 2 : 1); ++i) { ++ vpx_codec_enc_cfg_t cfg = {}; ++ struct Encoder { ++ ~Encoder() { EXPECT_EQ(vpx_codec_destroy(&ctx), VPX_CODEC_OK); } ++ vpx_codec_ctx_t ctx = {}; ++ } enc; ++ ++ ASSERT_EQ(vpx_codec_enc_config_default(iface, &cfg, 0), VPX_CODEC_OK); ++ // Start in threaded mode to ensure resolution and thread related ++ // allocations are updated correctly across changes in resolution and ++ // thread counts. See https://crbug.com/1486441. ++ cfg.g_threads = 4; ++ EXPECT_NO_FATAL_FAILURE( ++ InitCodec(*iface, kInitWidth, kInitHeight, &enc.ctx, &cfg)); ++ if (IsVP9(iface)) { ++ EXPECT_EQ(vpx_codec_control_(&enc.ctx, VP9E_SET_TILE_COLUMNS, 6), ++ VPX_CODEC_OK); ++ EXPECT_EQ(vpx_codec_control_(&enc.ctx, VP9E_SET_ROW_MT, i), ++ VPX_CODEC_OK); ++ } ++ ++ cfg.g_w = 1000; ++ cfg.g_h = 608; ++ EXPECT_EQ(vpx_codec_enc_config_set(&enc.ctx, &cfg), VPX_CODEC_OK) ++ << vpx_codec_error_detail(&enc.ctx); ++ ++ cfg.g_w = 16; ++ cfg.g_h = 720; ++ ++ for (const auto threads : { 1, 4, 8, 6, 2, 1 }) { ++ cfg.g_threads = threads; + EXPECT_NO_FATAL_FAILURE(EncodeWithConfig(cfg, &enc.ctx)) + << "iteration: " << i << " threads: " << threads; + } +diff -Naur libvpx.orig/vp8/encoder/onyx_if.c libvpx/vp8/encoder/onyx_if.c +--- libvpx.orig/vp8/encoder/onyx_if.c 1970-01-01 01:00:01.000000000 +0100 ++++ libvpx/vp8/encoder/onyx_if.c 2023-09-29 21:01:44.155476128 +0200 +@@ -1443,6 +1443,11 @@ + last_h = cpi->oxcf.Height; + prev_number_of_layers = cpi->oxcf.number_of_layers; + ++ if (cpi->initial_width) { ++ // TODO(https://crbug.com/1486441): Allow changing thread counts; the ++ // allocation is done once in vp8_create_compressor(). ++ oxcf->multi_threaded = cpi->oxcf.multi_threaded; ++ } + cpi->oxcf = *oxcf; + + switch (cpi->oxcf.Mode) { diff --git a/gnu/packages/patches/sdcc-disable-non-free-code.patch b/gnu/packages/patches/sdcc-disable-non-free-code.patch index 39046ae280..7602ead9af 100644 --- a/gnu/packages/patches/sdcc-disable-non-free-code.patch +++ b/gnu/packages/patches/sdcc-disable-non-free-code.patch @@ -15,10 +15,10 @@ remove instructions that encourage the use of SDCC with non-free software. diff --git a/Makefile.common.in b/Makefile.common.in -index 1a11f67..69d5efe 100644 +index 9cd116c..6bbe9fb 100644 --- a/Makefile.common.in +++ b/Makefile.common.in -@@ -73,7 +73,6 @@ OPT_DISABLE_PACKIHX = @OPT_DISABLE_PACKIHX@ +@@ -77,7 +77,6 @@ OPT_DISABLE_PACKIHX = @OPT_DISABLE_PACKIHX@ OPT_DISABLE_SDBINUTILS = @OPT_DISABLE_SDBINUTILS@ OPT_DISABLE_SDCPP = @OPT_DISABLE_SDCPP@ OPT_DISABLE_UCSIM = @OPT_DISABLE_UCSIM@ @@ -27,7 +27,7 @@ index 1a11f67..69d5efe 100644 SLIB = $(top_builddir)/support/util diff --git a/Makefile.in b/Makefile.in -index d899b62..554a1c3 100644 +index 6d035ec..12f1fad 100644 --- a/Makefile.in +++ b/Makefile.in @@ -105,9 +105,6 @@ endif @@ -50,7 +50,7 @@ index d899b62..554a1c3 100644 PKGS += $(SDCC_AS) sdas/linksrc $(SDCC_SCRIPTS) PORTS = $(shell cat ports.build) -@@ -176,21 +170,12 @@ sdcc-sdbinutils: +@@ -168,21 +162,12 @@ sdcc-sdbinutils: sdcc-device-inc: $(MAKE) -C device/include @@ -73,7 +73,7 @@ index d899b62..554a1c3 100644 # doc depends on latex and latex2html diff --git a/configure b/configure -index 232d98e..3eeb17c 100755 +index 9de81c6..2620e3c 100755 --- a/configure +++ b/configure @@ -659,7 +659,6 @@ LATEX @@ -84,10 +84,10 @@ index 232d98e..3eeb17c 100755 OPT_DISABLE_SDBINUTILS OPT_DISABLE_SDCDB OPT_DISABLE_SDCPP -@@ -690,10 +689,7 @@ OPT_DISABLE_R2K - OPT_DISABLE_Z180 - OPT_DISABLE_Z80 +@@ -692,10 +691,7 @@ OPT_DISABLE_Z80 OPT_DISABLE_MCS51 + SVN_REVISION + GIT_REVISION -non_free_lib_dir_suffix lib_dir_suffix -non_free_include_dir_suffix @@ -95,7 +95,7 @@ index 232d98e..3eeb17c 100755 include_dir_suffix inclib_dir_suffix LIB_TYPE -@@ -821,7 +817,6 @@ enable_packihx +@@ -824,7 +820,6 @@ enable_packihx enable_sdcpp enable_sdcdb enable_sdbinutils @@ -103,7 +103,7 @@ index 232d98e..3eeb17c 100755 enable_doc enable_libgc ' -@@ -842,10 +837,7 @@ sdccconf_h_dir_separator +@@ -845,10 +840,7 @@ sdccconf_h_dir_separator LIB_TYPE inclib_dir_suffix include_dir_suffix @@ -114,7 +114,7 @@ index 232d98e..3eeb17c 100755 docdir' ac_subdirs_all='support/cpp support/packihx -@@ -853,9 +845,7 @@ sim/ucsim +@@ -856,9 +848,7 @@ sim/ucsim debugger/mcs51 support/sdbinutils device/lib/pic14 @@ -125,7 +125,7 @@ index 232d98e..3eeb17c 100755 # Initialize some variables set by options. ac_init_help= -@@ -1509,7 +1499,6 @@ Optional Features: +@@ -1512,7 +1502,6 @@ Optional Features: --disable-sdcpp Disables building sdcpp --disable-sdcdb Disables building sdcdb --disable-sdbinutils Disables configuring and building of sdbinutils @@ -133,7 +133,7 @@ index 232d98e..3eeb17c 100755 --enable-doc Enables building the documentation --enable-libgc Use the Bohem memory allocator. Lower runtime footprint. -@@ -1538,16 +1527,8 @@ Some influential environment variables: +@@ -1541,16 +1530,8 @@ Some influential environment variables: appended to datadir to define SDCC's include/lib directory include_dir_suffix appended to datadir to define SDCC's include directory @@ -150,7 +150,7 @@ index 232d98e..3eeb17c 100755 docdir documentation installation directory Use these variables to override the choices made by `configure' or to help -@@ -7421,19 +7402,6 @@ if test "${include_dir_suffix}" = ""; then +@@ -7426,19 +7407,6 @@ if test "${include_dir_suffix}" = ""; then include_dir_suffix="${inclib_dir_suffix}/include" fi @@ -170,7 +170,7 @@ index 232d98e..3eeb17c 100755 # lib_dir_suffix: # *nix default: "sdcc/lib" -@@ -7441,13 +7409,6 @@ if test "${lib_dir_suffix}" = ""; then +@@ -7446,13 +7414,6 @@ if test "${lib_dir_suffix}" = ""; then lib_dir_suffix="${inclib_dir_suffix}/lib" fi @@ -184,7 +184,7 @@ index 232d98e..3eeb17c 100755 # docdir: # *nix default: "${datadir}/sdcc/doc" -@@ -7600,22 +7561,6 @@ esac +@@ -7605,22 +7566,6 @@ esac printf "%s\n" "#define INCLUDE_DIR_SUFFIX DIR_SEPARATOR_STRING \"${norm_inc_dir_suffix}\"" >>confdefs.h @@ -207,7 +207,7 @@ index 232d98e..3eeb17c 100755 norm_lib_dir_suffix=${lib_dir_suffix} case ":$norm_lib_dir_suffix:" in -@@ -7633,22 +7578,6 @@ esac +@@ -7638,22 +7583,6 @@ esac printf "%s\n" "#define LIB_DIR_SUFFIX DIR_SEPARATOR_STRING \"${norm_lib_dir_suffix}\"" >>confdefs.h @@ -230,7 +230,7 @@ index 232d98e..3eeb17c 100755 # relative paths for _lcl_i in expanded_bindir:expanded_datadir:bin2data_dir; do -@@ -8751,27 +8680,6 @@ printf "%s\n" "#define OPT_DISABLE_SDBINUTILS $OPT_DISABLE_SDBINUTILS" >>confdef +@@ -8769,27 +8698,6 @@ printf "%s\n" "#define OPT_DISABLE_SDBINUTILS $OPT_DISABLE_SDBINUTILS" >>confdef @@ -258,7 +258,7 @@ index 232d98e..3eeb17c 100755 # Check whether --enable-doc was given. if test ${enable_doc+y} -@@ -9199,20 +9107,12 @@ if test $OPT_DISABLE_PIC14 = 0; then +@@ -9217,20 +9125,12 @@ if test $OPT_DISABLE_PIC14 = 0; then test $OPT_DISABLE_DEVICE_LIB = 0 && subdirs="$subdirs device/lib/pic14" @@ -279,14 +279,18 @@ index 232d98e..3eeb17c 100755 fi if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R2KA = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_SM83 = 0 || test $OPT_DISABLE_TLCS90 = 0 || test $OPT_DISABLE_EZ80_Z80 = 0 || test $OPT_DISABLE_Z80N = 0; then -@@ -9289,15 +9189,9 @@ fi +@@ -9307,8 +9207,6 @@ fi test $OPT_DISABLE_DEVICE_LIB = 0 && ac_config_files="$ac_config_files device/lib/Makefile" -test $OPT_DISABLE_DEVICE_LIB = 0 && test $OPT_DISABLE_NON_FREE = 0 && ac_config_files="$ac_config_files device/non-free/lib/Makefile" - - ac_config_files="$ac_config_files main.mk:main_in.mk src/Makefile device/include/Makefile sdas/linksrc/Makefile support/makebin/Makefile support/regression/Makefile support/valdiag/Makefile support/scripts/Makefile support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in Makefile Makefile.common:Makefile.common.in" + ac_config_files="$ac_config_files main.mk:main_in.mk bin/Makefile src/Makefile device/include/Makefile sdas/linksrc/Makefile support/makebin/Makefile support/regression/Makefile support/regression/cases/Makefile support/valdiag/Makefile support/scripts/Makefile support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in Makefile Makefile.common:Makefile.common.in" + +@@ -9324,10 +9222,6 @@ ac_config_files="$ac_config_files bin/sdranlib" + + ac_config_files="$ac_config_files bin/sdobjcopy" -if test $OPT_DISABLE_NON_FREE = 0; then - ac_config_files="$ac_config_files device/non-free/include/Makefile" @@ -295,23 +299,23 @@ index 232d98e..3eeb17c 100755 cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure -@@ -10037,7 +9931,6 @@ do +@@ -10068,7 +9962,6 @@ do "device/lib/pdk15-stack-auto/Makefile") CONFIG_FILES="$CONFIG_FILES device/lib/pdk15-stack-auto/Makefile" ;; "sdas/aspdk16/Makefile") CONFIG_FILES="$CONFIG_FILES sdas/aspdk16/Makefile" ;; "device/lib/Makefile") CONFIG_FILES="$CONFIG_FILES device/lib/Makefile" ;; - "device/non-free/lib/Makefile") CONFIG_FILES="$CONFIG_FILES device/non-free/lib/Makefile" ;; "main.mk") CONFIG_FILES="$CONFIG_FILES main.mk:main_in.mk" ;; + "bin/Makefile") CONFIG_FILES="$CONFIG_FILES bin/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; - "device/include/Makefile") CONFIG_FILES="$CONFIG_FILES device/include/Makefile" ;; -@@ -10049,7 +9942,6 @@ do - "support/regression/ports/host/spec.mk") CONFIG_FILES="$CONFIG_FILES support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "Makefile.common") CONFIG_FILES="$CONFIG_FILES Makefile.common:Makefile.common.in" ;; +@@ -10088,7 +9981,6 @@ do + "bin/sdnm") CONFIG_FILES="$CONFIG_FILES bin/sdnm" ;; + "bin/sdranlib") CONFIG_FILES="$CONFIG_FILES bin/sdranlib" ;; + "bin/sdobjcopy") CONFIG_FILES="$CONFIG_FILES bin/sdobjcopy" ;; - "device/non-free/include/Makefile") CONFIG_FILES="$CONFIG_FILES device/non-free/include/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac -@@ -10856,54 +10748,6 @@ esac +@@ -10905,54 +10797,6 @@ esac incPath3=`echo "$incPath3" | sed 's,\\\\\\\\,\\\\,g'` @@ -366,7 +370,7 @@ index 232d98e..3eeb17c 100755 libPath1=`echo "/${prefix2data_dir}/${norm_lib_dir_suffix}" | sed 's,/\./,/,g'` case ":$libPath1:" in -@@ -10953,54 +10797,6 @@ esac +@@ -11002,54 +10846,6 @@ esac libPath3=`echo "$libPath3" | sed 's,\\\\\\\\,\\\\,g'` @@ -421,7 +425,7 @@ index 232d98e..3eeb17c 100755 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: sdcc ${VERSION} is now configured for -@@ -11041,7 +10837,6 @@ sdcc ${VERSION} is now configured for +@@ -11091,7 +10887,6 @@ sdcc ${VERSION} is now configured for mos6502 ${enable_mos6502_port} mos65c02 ${enable_mos65c02_port} @@ -429,7 +433,7 @@ index 232d98e..3eeb17c 100755 Disable packihx: ${OPT_DISABLE_PACKIHX} Disable ucsim: ${OPT_DISABLE_UCSIM} Disable device lib: ${OPT_DISABLE_DEVICE_LIB} -@@ -11056,9 +10851,6 @@ sdcc ${VERSION} is now configured for +@@ -11106,9 +10901,6 @@ sdcc ${VERSION} is now configured for include/library files: ${datadir}/${inclib_dir_suffix} include files: ${datadir}/${include_dir_suffix} library files: ${datadir}/${lib_dir_suffix} @@ -439,7 +443,7 @@ index 232d98e..3eeb17c 100755 documentation: ${docdir} prefix: ${prefix} -@@ -11070,15 +10862,9 @@ sdcc ${VERSION} is now configured for +@@ -11120,15 +10912,9 @@ sdcc ${VERSION} is now configured for include files: ${incPath1} path(argv[0])${incPath2} ${incPath3} @@ -455,7 +459,7 @@ index 232d98e..3eeb17c 100755 " >&5 printf "%s\n" " sdcc ${VERSION} is now configured for -@@ -11120,7 +10906,6 @@ sdcc ${VERSION} is now configured for +@@ -11171,7 +10957,6 @@ sdcc ${VERSION} is now configured for mos6502 ${enable_mos6502_port} mos65c02 ${enable_mos65c02_port} @@ -463,7 +467,7 @@ index 232d98e..3eeb17c 100755 Disable packihx: ${OPT_DISABLE_PACKIHX} Disable ucsim: ${OPT_DISABLE_UCSIM} Disable device lib: ${OPT_DISABLE_DEVICE_LIB} -@@ -11135,9 +10920,6 @@ sdcc ${VERSION} is now configured for +@@ -11186,9 +10971,6 @@ sdcc ${VERSION} is now configured for include/library files: ${datadir}/${inclib_dir_suffix} include files: ${datadir}/${include_dir_suffix} library files: ${datadir}/${lib_dir_suffix} @@ -473,7 +477,7 @@ index 232d98e..3eeb17c 100755 documentation: ${docdir} prefix: ${prefix} -@@ -11149,15 +10931,9 @@ sdcc ${VERSION} is now configured for +@@ -11200,15 +10982,9 @@ sdcc ${VERSION} is now configured for include files: ${incPath1} path(argv[0])${incPath2} ${incPath3} @@ -490,10 +494,10 @@ index 232d98e..3eeb17c 100755 # End of configure/configure.in diff --git a/configure.ac b/configure.ac -index cc5309e..5eb4326 100644 +index ead779c..a3578fe 100644 --- a/configure.ac +++ b/configure.ac -@@ -562,19 +562,6 @@ if test "${include_dir_suffix}" = ""; then +@@ -564,19 +564,6 @@ if test "${include_dir_suffix}" = ""; then include_dir_suffix="${inclib_dir_suffix}/include" fi @@ -513,7 +517,7 @@ index cc5309e..5eb4326 100644 # lib_dir_suffix: # *nix default: "sdcc/lib" AC_ARG_VAR([lib_dir_suffix], [appended to datadir to define SDCC's library root directory]) -@@ -582,13 +569,6 @@ if test "${lib_dir_suffix}" = ""; then +@@ -584,13 +571,6 @@ if test "${lib_dir_suffix}" = ""; then lib_dir_suffix="${inclib_dir_suffix}/lib" fi @@ -527,7 +531,7 @@ index cc5309e..5eb4326 100644 # docdir: # *nix default: "${datadir}/sdcc/doc" AC_ARG_VAR([docdir], [documentation installation directory]) -@@ -629,19 +609,11 @@ norm_inc_dir_suffix=${include_dir_suffix} +@@ -631,19 +611,11 @@ norm_inc_dir_suffix=${include_dir_suffix} adl_NORMALIZE_PATH([norm_inc_dir_suffix], [$sdccconf_h_dir_separator]) AC_DEFINE_UNQUOTED(INCLUDE_DIR_SUFFIX, DIR_SEPARATOR_STRING "${norm_inc_dir_suffix}", [XXX]) @@ -547,7 +551,7 @@ index cc5309e..5eb4326 100644 # relative paths adl_COMPUTE_RELATIVE_PATHS([expanded_bindir:expanded_datadir:bin2data_dir]) -@@ -819,7 +791,6 @@ AC_DO_DISABLER(packihx, PACKIHX, [Disables building packihx]) +@@ -836,7 +808,6 @@ AC_DO_DISABLER(packihx, PACKIHX, [Disables building packihx]) AC_DO_DISABLER(sdcpp, SDCPP, [Disables building sdcpp]) AC_DO_DISABLER(sdcdb, SDCDB, [Disables building sdcdb]) AC_DO_DISABLER(sdbinutils, SDBINUTILS, [Disables configuring and building of sdbinutils]) @@ -555,7 +559,7 @@ index cc5309e..5eb4326 100644 AC_DO_ENABLER(doc, DOC, [Enables building the documentation]) AC_CHECK_PROG([LYX], [lyx], [lyx], [:]) -@@ -897,16 +868,10 @@ if test $OPT_DISABLE_PIC14 = 0; then +@@ -915,16 +886,10 @@ if test $OPT_DISABLE_PIC14 = 0; then AC_CONFIG_FILES(src/pic14/Makefile) test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_SUBDIRS(device/lib/pic14) fi @@ -572,25 +576,25 @@ index cc5309e..5eb4326 100644 if test $OPT_DISABLE_Z80 = 0 || test $OPT_DISABLE_Z180 = 0 || test $OPT_DISABLE_R2K = 0 || test $OPT_DISABLE_R2KA = 0 || test $OPT_DISABLE_R3KA = 0 || test $OPT_DISABLE_SM83 = 0 || test $OPT_DISABLE_TLCS90 = 0 || test $OPT_DISABLE_EZ80_Z80 = 0 || test $OPT_DISABLE_Z80N = 0; then AC_CONFIG_FILES([src/z80/Makefile]) -@@ -970,7 +935,6 @@ fi +@@ -988,7 +953,6 @@ fi test $OPT_DISABLE_DEVICE_LIB = 0 && AC_CONFIG_FILES([device/lib/Makefile]) -test $OPT_DISABLE_DEVICE_LIB = 0 && test $OPT_DISABLE_NON_FREE = 0 && AC_CONFIG_FILES([device/non-free/lib/Makefile]) AC_CONFIG_FILES([main.mk:main_in.mk - src/Makefile -@@ -984,9 +948,6 @@ support/regression/ports/host/spec.mk:support/regression/ports/host/spec.mk.in - Makefile - Makefile.common:Makefile.common.in - ]) + bin/Makefile +@@ -1010,9 +974,6 @@ AC_CONFIG_FILES([bin/sdar], [chmod +x bin/sdar]) + AC_CONFIG_FILES([bin/sdnm], [chmod +x bin/sdnm]) + AC_CONFIG_FILES([bin/sdranlib], [chmod +x bin/sdranlib]) + AC_CONFIG_FILES([bin/sdobjcopy], [chmod +x bin/sdobjcopy]) -if test $OPT_DISABLE_NON_FREE = 0; then - AC_CONFIG_FILES([device/non-free/include/Makefile]) -fi AC_OUTPUT # I found no better place -@@ -1004,16 +965,10 @@ adl_NORMALIZE_PATH_MSG(/${prefix2bin_dir}, [binPath], [ +@@ -1030,16 +991,10 @@ adl_NORMALIZE_PATH_MSG(/${prefix2bin_dir}, [binPath], [ adl_NORMALIZE_PATH_MSG(/${prefix2data_dir}/${norm_inc_dir_suffix}, [incPath1], [$dirch]) adl_NORMALIZE_PATH_MSG(/${bin2data_dir}/${norm_inc_dir_suffix}, [incPath2], [$dirch]) adl_NORMALIZE_PATH_MSG(${expanded_datadir}/${norm_inc_dir_suffix}, [incPath3], [$dirch]) @@ -607,7 +611,7 @@ index cc5309e..5eb4326 100644 AC_MSG_RESULT([ sdcc ${VERSION} is now configured for -@@ -1055,7 +1010,6 @@ sdcc ${VERSION} is now configured for +@@ -1082,7 +1037,6 @@ sdcc ${VERSION} is now configured for mos6502 ${enable_mos6502_port} mos65c02 ${enable_mos65c02_port} @@ -615,7 +619,7 @@ index cc5309e..5eb4326 100644 Disable packihx: ${OPT_DISABLE_PACKIHX} Disable ucsim: ${OPT_DISABLE_UCSIM} Disable device lib: ${OPT_DISABLE_DEVICE_LIB} -@@ -1070,9 +1024,6 @@ sdcc ${VERSION} is now configured for +@@ -1097,9 +1051,6 @@ sdcc ${VERSION} is now configured for include/library files: ${datadir}/${inclib_dir_suffix} include files: ${datadir}/${include_dir_suffix} library files: ${datadir}/${lib_dir_suffix} @@ -625,7 +629,7 @@ index cc5309e..5eb4326 100644 documentation: ${docdir} prefix: ${prefix} -@@ -1084,14 +1035,8 @@ sdcc ${VERSION} is now configured for +@@ -1111,14 +1062,8 @@ sdcc ${VERSION} is now configured for include files: ${incPath1} path(argv[[0]])${incPath2} ${incPath3} @@ -671,10 +675,10 @@ index 019fe0f..da3389d 100644 ############################################################ # Common actions diff --git a/device/lib/pic14/Makefile.in b/device/lib/pic14/Makefile.in -index 039c0cb..90510fd 100644 +index 2c1a5d1..5a2082c 100644 --- a/device/lib/pic14/Makefile.in +++ b/device/lib/pic14/Makefile.in -@@ -335,13 +335,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR)) +@@ -338,13 +338,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR)) # C preprocessor flags ############################################################ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \ @@ -689,7 +693,7 @@ index 039c0cb..90510fd 100644 --i-code-in-asm --fverbose-asm --std-c11 $(am__append_4) # extra flags for enhanced cores -@@ -366,8 +365,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO +@@ -369,8 +368,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO ############################################################ # Assembler flags ############################################################ @@ -700,10 +704,10 @@ index 039c0cb..90510fd 100644 # extensions generated by the build process CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb diff --git a/device/lib/pic14/libc/Makefile.in b/device/lib/pic14/libc/Makefile.in -index 1283cbb..70e82d0 100644 +index ccf2032..8b2ba48 100644 --- a/device/lib/pic14/libc/Makefile.in +++ b/device/lib/pic14/libc/Makefile.in -@@ -878,13 +878,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR)) +@@ -880,13 +880,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR)) # C preprocessor flags ############################################################ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \ @@ -718,7 +722,7 @@ index 1283cbb..70e82d0 100644 --i-code-in-asm --fverbose-asm --std-c11 $(am__append_9) # extra flags for enhanced cores -@@ -909,8 +908,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO +@@ -911,8 +910,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO ############################################################ # Assembler flags ############################################################ @@ -729,10 +733,10 @@ index 1283cbb..70e82d0 100644 # extensions generated by the build process CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb diff --git a/device/lib/pic14/libm/Makefile.in b/device/lib/pic14/libm/Makefile.in -index 409835d..e9fdef8 100644 +index 47f83e9..599023a 100644 --- a/device/lib/pic14/libm/Makefile.in +++ b/device/lib/pic14/libm/Makefile.in -@@ -511,13 +511,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR)) +@@ -513,13 +513,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR)) # C preprocessor flags ############################################################ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \ @@ -747,7 +751,7 @@ index 409835d..e9fdef8 100644 --i-code-in-asm --fverbose-asm --std-c11 $(am__append_9) # extra flags for enhanced cores -@@ -542,8 +541,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO +@@ -544,8 +543,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO ############################################################ # Assembler flags ############################################################ @@ -758,10 +762,10 @@ index 409835d..e9fdef8 100644 # extensions generated by the build process CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb diff --git a/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in b/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in -index c82f7ba..780fa77 100644 +index b74e455..0991bfa 100644 --- a/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in +++ b/device/lib/pic14/libsdcc/enhanced-no-xinst/Makefile.in -@@ -518,13 +518,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR)) +@@ -520,13 +520,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR)) # C preprocessor flags ############################################################ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \ @@ -776,7 +780,7 @@ index c82f7ba..780fa77 100644 --i-code-in-asm --fverbose-asm --std-c11 $(am__append_5) # extra flags for enhanced cores -@@ -549,8 +548,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO +@@ -551,8 +550,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO ############################################################ # Assembler flags ############################################################ @@ -787,10 +791,10 @@ index c82f7ba..780fa77 100644 # extensions generated by the build process CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb diff --git a/device/lib/pic14/libsdcc/enhanced/Makefile.in b/device/lib/pic14/libsdcc/enhanced/Makefile.in -index 33b8299..f4e0398 100644 +index 0647cca..0e98e11 100644 --- a/device/lib/pic14/libsdcc/enhanced/Makefile.in +++ b/device/lib/pic14/libsdcc/enhanced/Makefile.in -@@ -518,13 +518,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR)) +@@ -520,13 +520,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR)) # C preprocessor flags ############################################################ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \ @@ -805,7 +809,7 @@ index 33b8299..f4e0398 100644 --i-code-in-asm --fverbose-asm --std-c11 $(am__append_5) # extra flags for enhanced cores -@@ -549,8 +548,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO +@@ -551,8 +550,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO ############################################################ # Assembler flags ############################################################ @@ -816,10 +820,10 @@ index 33b8299..f4e0398 100644 # extensions generated by the build process CLEAN_EXTENSIONS = .asm .lst .sym .d .p .g .v .adb diff --git a/device/lib/pic14/libsdcc/regular/Makefile.in b/device/lib/pic14/libsdcc/regular/Makefile.in -index 6586b7d..7010287 100644 +index 5936858..16786b4 100644 --- a/device/lib/pic14/libsdcc/regular/Makefile.in +++ b/device/lib/pic14/libsdcc/regular/Makefile.in -@@ -511,13 +511,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR)) +@@ -513,13 +513,12 @@ GENERIC_SRC_DIR_ABS = $(abspath $(GENERIC_SRC_DIR)) # C preprocessor flags ############################################################ AM_CPPFLAGS = -I. -I$(top_srcdir) -I$(DEVICE_TOP_DIR)/include/pic14 \ @@ -834,7 +838,7 @@ index 6586b7d..7010287 100644 --i-code-in-asm --fverbose-asm --std-c11 $(am__append_5) # extra flags for enhanced cores -@@ -542,8 +541,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO +@@ -544,8 +543,7 @@ AM_CFLAGS_EOX = -p$(EARCH) $(SDCC_FLAGS) $(SDCC_FLAGS_ENHANCED) $(SDCC_FLAGS_NOO ############################################################ # Assembler flags ############################################################ @@ -871,7 +875,7 @@ index 01ad950..62839b9 100644 clean-local: diff --git a/device/lib/pic16/Makefile.in b/device/lib/pic16/Makefile.in -index 6a4c9cf..4b07384 100644 +index b0b5dfd..cfa190d 100644 --- a/device/lib/pic16/Makefile.in +++ b/device/lib/pic16/Makefile.in @@ -87,10 +87,7 @@ PRE_UNINSTALL = : @@ -886,7 +890,7 @@ index 6a4c9cf..4b07384 100644 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ -@@ -297,8 +294,7 @@ top_build_prefix = @top_build_prefix@ +@@ -298,8 +295,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = debug libc libio libm libsdcc startup @@ -896,7 +900,7 @@ index 6a4c9cf..4b07384 100644 #AM_CFLAGS += --no-optimize-goto #AM_CFLAGS += --debug-ralloc -@@ -312,11 +308,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ +@@ -313,11 +309,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ #AM_CFLAGS += --noinduction #AM_CFLAGS += --nojtbound #AM_CFLAGS += --noloopreverse @@ -911,10 +915,10 @@ index 6a4c9cf..4b07384 100644 all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive diff --git a/device/lib/pic16/configure b/device/lib/pic16/configure -index add51b9..c451a74 100755 +index 88da323..abfd874 100755 --- a/device/lib/pic16/configure +++ b/device/lib/pic16/configure -@@ -3828,7 +3828,6 @@ fi +@@ -3859,7 +3859,6 @@ fi @@ -922,7 +926,7 @@ index add51b9..c451a74 100755 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking devices supported by gputils" >&5 printf %s "checking devices supported by gputils... " >&6; } GOOD_PICS=""; -@@ -3839,20 +3838,6 @@ N_GOOD=0 +@@ -3870,20 +3869,6 @@ N_GOOD=0 N_BAD=0 mkdir -p ".checkdevices"; rm -f "$RESULT"; @@ -944,10 +948,10 @@ index add51b9..c451a74 100755 printf "%s\n" "$N_GOOD devices ($GOOD_PICS)" >&6; } diff --git a/device/lib/pic16/configure.ac b/device/lib/pic16/configure.ac -index 75bea9d..65e98be 100644 +index df811a5..4a49c25 100644 --- a/device/lib/pic16/configure.ac +++ b/device/lib/pic16/configure.ac -@@ -68,10 +68,6 @@ AC_SUBST(OBJEXT, [o]) +@@ -69,10 +69,6 @@ AC_SUBST(OBJEXT, [o]) _AM_DEPENDENCIES(CC) _AM_DEPENDENCIES(CCAS) @@ -959,7 +963,7 @@ index 75bea9d..65e98be 100644 # Checks for header files. diff --git a/device/lib/pic16/debug/Makefile.in b/device/lib/pic16/debug/Makefile.in -index 05108a8..a6a94bb 100644 +index db0d421..9e90d7a 100644 --- a/device/lib/pic16/debug/Makefile.in +++ b/device/lib/pic16/debug/Makefile.in @@ -88,10 +88,7 @@ PRE_UNINSTALL = : @@ -974,7 +978,7 @@ index 05108a8..a6a94bb 100644 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -@@ -292,8 +289,7 @@ top_builddir = @top_builddir@ +@@ -293,8 +290,7 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ lib_LIBRARIES = libdebug.a libdebug_a_SOURCES = gstack/gstack.c @@ -984,7 +988,7 @@ index 05108a8..a6a94bb 100644 #AM_CFLAGS += --no-optimize-goto #AM_CFLAGS += --debug-ralloc -@@ -307,11 +303,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ +@@ -308,11 +304,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ #AM_CFLAGS += --noinduction #AM_CFLAGS += --nojtbound #AM_CFLAGS += --noloopreverse @@ -999,7 +1003,7 @@ index 05108a8..a6a94bb 100644 .SUFFIXES: diff --git a/device/lib/pic16/libc/Makefile.in b/device/lib/pic16/libc/Makefile.in -index 49a437d..5579b71 100644 +index ae76fdd..75fc04a 100644 --- a/device/lib/pic16/libc/Makefile.in +++ b/device/lib/pic16/libc/Makefile.in @@ -88,10 +88,7 @@ PRE_UNINSTALL = : @@ -1014,7 +1018,7 @@ index 49a437d..5579b71 100644 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -@@ -382,8 +379,7 @@ libc18f_a_SOURCES = ctype/iscntrl.c ctype/isdigit.c ctype/isgraph.c \ +@@ -383,8 +380,7 @@ libc18f_a_SOURCES = ctype/iscntrl.c ctype/isdigit.c ctype/isgraph.c \ string/strpbrk.c string/strrchr.c string/strspn.c \ string/strstr.c string/strtok.c string/strupr.c \ utils/cnvfrac.S utils/cnvint.S utils/cvtdec.S @@ -1024,7 +1028,7 @@ index 49a437d..5579b71 100644 #AM_CFLAGS += --no-optimize-goto #AM_CFLAGS += --debug-ralloc -@@ -397,11 +393,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ +@@ -398,11 +394,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ #AM_CFLAGS += --noinduction #AM_CFLAGS += --nojtbound #AM_CFLAGS += --noloopreverse @@ -1039,7 +1043,7 @@ index 49a437d..5579b71 100644 .SUFFIXES: diff --git a/device/lib/pic16/libio/Makefile.in b/device/lib/pic16/libio/Makefile.in -index 5b1a9b0..664958f 100644 +index f2b4ecc..13537a8 100644 --- a/device/lib/pic16/libio/Makefile.in +++ b/device/lib/pic16/libio/Makefile.in @@ -481,10 +481,7 @@ POST_UNINSTALL = : @@ -1054,7 +1058,7 @@ index 5b1a9b0..664958f 100644 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -@@ -15601,8 +15598,7 @@ libio18lf8722_a_SOURCES = dummy.c i2c/i2cack.c i2c/i2cclose.c \ +@@ -15602,8 +15599,7 @@ libio18lf8722_a_SOURCES = dummy.c i2c/i2cack.c i2c/i2cclose.c \ libio18lf8722_a_CFLAGS = -p18lf8722 $(AM_CFLAGS) libio18lf8723_a_SOURCES = dummy.c libio18lf8723_a_CFLAGS = -p18lf8723 $(AM_CFLAGS) @@ -1064,7 +1068,7 @@ index 5b1a9b0..664958f 100644 #AM_CFLAGS += --no-optimize-goto #AM_CFLAGS += --debug-ralloc -@@ -15616,11 +15612,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ +@@ -15617,11 +15613,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ #AM_CFLAGS += --noinduction #AM_CFLAGS += --nojtbound #AM_CFLAGS += --noloopreverse @@ -1124,7 +1128,7 @@ index 211604e..e8896bf 100755 include \$(top_srcdir)/Makefile.common diff --git a/device/lib/pic16/libm/Makefile.in b/device/lib/pic16/libm/Makefile.in -index 285c5b8..ad6c293 100644 +index d08a59c..e01d8e2 100644 --- a/device/lib/pic16/libm/Makefile.in +++ b/device/lib/pic16/libm/Makefile.in @@ -88,10 +88,7 @@ PRE_UNINSTALL = : @@ -1139,7 +1143,7 @@ index 285c5b8..ad6c293 100644 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -@@ -313,8 +310,7 @@ libm18f_a_SOURCES = acosf.c asincosf.c asinf.c atan2f.c atanf.c \ +@@ -314,8 +311,7 @@ libm18f_a_SOURCES = acosf.c asincosf.c asinf.c atan2f.c atanf.c \ frexpf.c isinf.c isnan.c ldexpf.c log10f.c logf.c modff.c \ powf.c sincosf.c sincoshf.c sinf.c sinhf.c sqrtf.c tancotf.c \ tanf.c tanhf.c @@ -1149,7 +1153,7 @@ index 285c5b8..ad6c293 100644 #AM_CFLAGS += --no-optimize-goto #AM_CFLAGS += --debug-ralloc -@@ -328,11 +324,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ +@@ -329,11 +325,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ #AM_CFLAGS += --noinduction #AM_CFLAGS += --nojtbound #AM_CFLAGS += --noloopreverse @@ -1164,7 +1168,7 @@ index 285c5b8..ad6c293 100644 .SUFFIXES: diff --git a/device/lib/pic16/libsdcc/Makefile.in b/device/lib/pic16/libsdcc/Makefile.in -index 808b8a5..412dc80 100644 +index afbf492..4f4a5e5 100644 --- a/device/lib/pic16/libsdcc/Makefile.in +++ b/device/lib/pic16/libsdcc/Makefile.in @@ -88,10 +88,7 @@ PRE_UNINSTALL = : @@ -1179,7 +1183,7 @@ index 808b8a5..412dc80 100644 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -@@ -414,8 +411,7 @@ libsdcc_a_SOURCES = char/divschar.c char/divuchar.c char/modschar.c \ +@@ -415,8 +412,7 @@ libsdcc_a_SOURCES = char/divschar.c char/divuchar.c char/modschar.c \ int/modsint.c int/moduint.c int/mulint.c long/divslong.c \ long/divulong.c long/modslong.c long/modulong.c long/mullong.c \ lregs/lrrest.c lregs/lrst.c stack/stack.S @@ -1189,7 +1193,7 @@ index 808b8a5..412dc80 100644 #AM_CFLAGS += --no-optimize-goto #AM_CFLAGS += --debug-ralloc -@@ -429,11 +425,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ +@@ -430,11 +426,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ #AM_CFLAGS += --noinduction #AM_CFLAGS += --nojtbound #AM_CFLAGS += --noloopreverse @@ -1204,7 +1208,7 @@ index 808b8a5..412dc80 100644 .SUFFIXES: diff --git a/device/lib/pic16/startup/Makefile.in b/device/lib/pic16/startup/Makefile.in -index d57c254..7394a4c 100644 +index 5c2fce7..8d70807 100644 --- a/device/lib/pic16/startup/Makefile.in +++ b/device/lib/pic16/startup/Makefile.in @@ -89,10 +89,7 @@ PRE_UNINSTALL = : @@ -1219,7 +1223,7 @@ index d57c254..7394a4c 100644 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) -@@ -309,8 +306,7 @@ libcrt0iz_a_SOURCES = crt0iz.c +@@ -310,8 +307,7 @@ libcrt0iz_a_SOURCES = crt0iz.c # Force installation of .o files into $libdir crtdir = $(libdir) crt_DATA = crt0.o crt0i.o crt0iz.o @@ -1229,7 +1233,7 @@ index d57c254..7394a4c 100644 #AM_CFLAGS += --no-optimize-goto #AM_CFLAGS += --debug-ralloc -@@ -324,11 +320,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ +@@ -325,11 +321,10 @@ AM_CPPFLAGS = -I. -I$(top_srcdir)/../../include/pic16 \ #AM_CFLAGS += --noinduction #AM_CFLAGS += --nojtbound #AM_CFLAGS += --noloopreverse @@ -1244,7 +1248,7 @@ index d57c254..7394a4c 100644 .SUFFIXES: diff --git a/doc/INSTALL.txt b/doc/INSTALL.txt -index 3c4bc1f..0a6fdd5 100644 +index 3711c71..9e500a2 100644 --- a/doc/INSTALL.txt +++ b/doc/INSTALL.txt @@ -18,9 +18,7 @@ To install: @@ -1278,7 +1282,7 @@ index 3c4bc1f..0a6fdd5 100644 You can test the install by entering: diff --git a/doc/README.txt b/doc/README.txt -index 3720fd6..5a0d0a8 100644 +index cd1ef3f..5a0d0a8 100644 --- a/doc/README.txt +++ b/doc/README.txt @@ -37,10 +37,9 @@ Exception are pic device libraries and header files which are derived @@ -1288,7 +1292,7 @@ index 3720fd6..5a0d0a8 100644 -with the GPL. Pic device libraries and header files are located at -non-free/lib and non-free/include directories respectively. Sdcc should -be run with the --use-non-free command line option in order to include --non-free header files and libraries. +-the potentially non-free header files and libraries. +with the GPL. These non-free libraries and header files (and the build +and run-time options that enable their use) are omitted in the SDCC +package distributed with GNU Guix. @@ -1296,10 +1300,10 @@ index 3720fd6..5a0d0a8 100644 However: Many think that the Microchip requirement is not legally enforceable, arguing that the header files only contain noncopyrightable facts. diff --git a/doc/sdccman.lyx b/doc/sdccman.lyx -index 9ba31eb..3d69b5a 100644 +index a57bf15..d6f30c7 100644 --- a/doc/sdccman.lyx +++ b/doc/sdccman.lyx -@@ -1093,54 +1093,9 @@ A possible exception are pic device libraries and header files which are +@@ -1150,54 +1150,9 @@ A possible exception are pic device libraries and header files which are to be used with authentic Microchip devices" which makes them incompatible with the GPL, if Microchip has any copyright in them (which might depend on local copyright laws). @@ -1357,7 +1361,31 @@ index 9ba31eb..3d69b5a 100644 \end_layout \begin_layout Itemize -@@ -2943,18 +2898,6 @@ include_dir_suffix environment variable, see table below +@@ -1260,23 +1215,6 @@ makebin: + zlib/libpng License + \end_layout + +-\begin_layout Itemize +-pic libraries in device/non-free: +-\begin_inset Newline newline +-\end_inset +- +-Microchip Technology Inc. +-\begin_inset space \space{} +-\end_inset +- +-claims to have copyrights on this, and their term are non-free. +- However, a more common opinion is that Microchip Technology Inc. +-\begin_inset space \space{} +-\end_inset +- +-is just claiming a copyright on uncopyrightable facts. +-\end_layout +- + \end_deeper + \begin_layout Itemize + libraries: +@@ -3062,18 +3000,6 @@ include_dir_suffix environment variable, see table below \end_inset @@ -1376,7 +1404,7 @@ index 9ba31eb..3d69b5a 100644 \begin_inset space ~ \end_inset -@@ -2967,22 +2910,6 @@ lib_dir_suffix environment variable, see table below +@@ -3086,22 +3012,6 @@ lib_dir_suffix environment variable, see table below \end_inset @@ -1399,7 +1427,7 @@ index 9ba31eb..3d69b5a 100644 \begin_inset space ~ \end_inset -@@ -3481,7 +3408,7 @@ These defaults are: +@@ -3600,7 +3510,7 @@ These defaults are: \begin_layout Standard \align center \begin_inset Tabular @@ -1408,7 +1436,7 @@ index 9ba31eb..3d69b5a 100644 <features tabularvalignment="middle"> <column alignment="block" valignment="top" width="0in"> <column alignment="block" valignment="top" width="0in"> -@@ -3765,68 +3692,6 @@ sdcc/include +@@ -3884,68 +3794,6 @@ sdcc/include include \end_layout @@ -1477,7 +1505,7 @@ index 9ba31eb..3d69b5a 100644 \end_inset </cell> </row> -@@ -3837,7 +3702,7 @@ lib +@@ -3956,7 +3804,7 @@ lib \begin_layout Plain Layout \emph on @@ -1486,7 +1514,7 @@ index 9ba31eb..3d69b5a 100644 \end_layout \end_inset -@@ -3846,7 +3711,7 @@ NON_FREE_LIB_DIR_SUFFIX +@@ -3965,7 +3813,7 @@ NON_FREE_LIB_DIR_SUFFIX \begin_inset Text \begin_layout Plain Layout @@ -1495,7 +1523,7 @@ index 9ba31eb..3d69b5a 100644 \end_layout \end_inset -@@ -3855,7 +3720,7 @@ sdcc/non-free/lib +@@ -3974,7 +3822,7 @@ sdcc/non-free/lib \begin_inset Text \begin_layout Plain Layout @@ -1504,7 +1532,7 @@ index 9ba31eb..3d69b5a 100644 \end_layout \end_inset -@@ -4254,20 +4119,6 @@ include +@@ -4373,20 +4221,6 @@ include \end_inset @@ -1525,7 +1553,7 @@ index 9ba31eb..3d69b5a 100644 \backslash \begin_inset Newline newline -@@ -4282,20 +4133,6 @@ lib +@@ -4401,20 +4235,6 @@ lib \end_inset @@ -1546,7 +1574,7 @@ index 9ba31eb..3d69b5a 100644 \backslash \begin_inset Newline newline -@@ -4476,20 +4313,6 @@ include +@@ -4595,20 +4415,6 @@ include \end_inset @@ -1567,7 +1595,7 @@ index 9ba31eb..3d69b5a 100644 \backslash \begin_inset Newline newline -@@ -4504,20 +4327,6 @@ lib +@@ -4623,20 +4429,6 @@ lib \end_inset @@ -1588,7 +1616,7 @@ index 9ba31eb..3d69b5a 100644 \backslash \begin_inset Newline newline -@@ -4614,7 +4423,7 @@ Install paths +@@ -4733,7 +4525,7 @@ Install paths \begin_layout Standard \align center \begin_inset Tabular @@ -1597,7 +1625,7 @@ index 9ba31eb..3d69b5a 100644 <features tabularvalignment="middle"> <column alignment="left" valignment="top"> <column alignment="left" valignment="top" width="4.5cm"> -@@ -4770,64 +4579,6 @@ include +@@ -4889,64 +4681,6 @@ include <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none"> \begin_inset Text @@ -1662,7 +1690,7 @@ index 9ba31eb..3d69b5a 100644 \begin_layout Plain Layout Library file** \end_layout -@@ -4877,64 +4628,6 @@ sdcc +@@ -4996,64 +4730,6 @@ sdcc lib \end_layout @@ -1727,7 +1755,7 @@ index 9ba31eb..3d69b5a 100644 \end_inset </cell> </row> -@@ -5257,7 +4950,7 @@ $PATH +@@ -5376,7 +5052,7 @@ $PATH \begin_layout Standard \align center \begin_inset Tabular @@ -1736,7 +1764,7 @@ index 9ba31eb..3d69b5a 100644 <features tabularvalignment="middle"> <column alignment="block" valignment="top" width="0.5cm"> <column alignment="block" valignment="top" width="4.8cm"> -@@ -5535,203 +5228,13 @@ include +@@ -5654,203 +5330,13 @@ include </cell> </row> <row> @@ -1941,7 +1969,7 @@ index 9ba31eb..3d69b5a 100644 \end_inset </cell> <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none"> -@@ -5747,21 +5250,13 @@ $DATADIR/ +@@ -5866,21 +5352,13 @@ $DATADIR/ \end_inset @@ -1964,7 +1992,7 @@ index 9ba31eb..3d69b5a 100644 \begin_inset Text \begin_layout Plain Layout -@@ -5769,7 +5264,7 @@ $INCLUDE_DIR_SUFFIX +@@ -5888,7 +5366,7 @@ $INCLUDE_DIR_SUFFIX \begin_inset Newline newline \end_inset @@ -1973,7 +2001,7 @@ index 9ba31eb..3d69b5a 100644 \end_layout \end_inset -@@ -5867,7 +5362,7 @@ model +@@ -5986,7 +5464,7 @@ model \begin_layout Standard \align center \begin_inset Tabular @@ -1982,7 +2010,7 @@ index 9ba31eb..3d69b5a 100644 <features tabularvalignment="middle"> <column alignment="block" valignment="top" width="0.5cm"> <column alignment="block" valignment="top" width="4.5cm"> -@@ -6147,7 +5642,7 @@ lib +@@ -6266,7 +5744,7 @@ lib </cell> </row> <row> @@ -1991,7 +2019,7 @@ index 9ba31eb..3d69b5a 100644 \begin_inset Text \begin_layout Plain Layout -@@ -6156,7 +5651,7 @@ lib +@@ -6275,7 +5753,7 @@ lib \end_inset </cell> @@ -2000,7 +2028,7 @@ index 9ba31eb..3d69b5a 100644 \begin_inset Text \begin_layout Plain Layout -@@ -6187,7 +5682,7 @@ $LIB_DIR_SUFFIX/ +@@ -6306,7 +5784,7 @@ $LIB_DIR_SUFFIX/ \end_inset </cell> @@ -2009,7 +2037,7 @@ index 9ba31eb..3d69b5a 100644 \begin_inset Text \begin_layout Plain Layout -@@ -6202,7 +5697,7 @@ lib/ +@@ -6321,7 +5799,7 @@ lib/ \end_inset </cell> @@ -2018,7 +2046,7 @@ index 9ba31eb..3d69b5a 100644 \begin_inset Text \begin_layout Plain Layout -@@ -6225,308 +5720,6 @@ lib +@@ -6344,308 +5822,6 @@ lib <model> \end_layout @@ -2327,7 +2355,7 @@ index 9ba31eb..3d69b5a 100644 \end_inset </cell> </row> -@@ -8801,14 +7994,6 @@ In <installdir>/share/sdcc/include +@@ -8923,14 +8099,6 @@ In <installdir>/share/sdcc/include the include files \end_layout @@ -2342,7 +2370,7 @@ index 9ba31eb..3d69b5a 100644 \begin_layout Standard In <installdir>/share/sdcc/lib \end_layout -@@ -8817,14 +8002,6 @@ In <installdir>/share/sdcc/lib +@@ -8939,14 +8107,6 @@ In <installdir>/share/sdcc/lib the src and target subdirectories with the precompiled relocatables. \end_layout @@ -2357,7 +2385,7 @@ index 9ba31eb..3d69b5a 100644 \begin_layout Standard In <installdir>/share/sdcc/doc \end_layout -@@ -15590,66 +14767,6 @@ splint +@@ -16096,66 +15256,6 @@ splint myprogram.c \end_layout @@ -2424,7 +2452,7 @@ index 9ba31eb..3d69b5a 100644 \begin_layout Subsection Linker Options \begin_inset Index idx -@@ -45248,66 +44365,9 @@ http://sourceforge.net/projects/gputils +@@ -45880,66 +44980,9 @@ http://sourceforge.net/projects/gputils Pic device specific header and c source files are automatically generated from MPLAB include files, which are published by Microchip with a special requirement that they are only to be used with authentic Microchip devices. @@ -2494,7 +2522,7 @@ index 9ba31eb..3d69b5a 100644 \begin_inset Newline newline \end_inset -@@ -45361,7 +44421,7 @@ Makefile +@@ -45993,7 +45036,7 @@ Makefile \begin_inset space ~ \end_inset @@ -2503,7 +2531,7 @@ index 9ba31eb..3d69b5a 100644 \begin_inset Newline newline \end_inset -@@ -45455,7 +44515,7 @@ Makefile +@@ -46087,7 +45130,7 @@ Makefile \begin_inset space ~ \end_inset @@ -2512,7 +2540,7 @@ index 9ba31eb..3d69b5a 100644 \begin_inset Newline newline \end_inset -@@ -45737,47 +44797,6 @@ status collapsed +@@ -46369,47 +45412,6 @@ status collapsed \begin_layout Plain Layout @@ -2560,7 +2588,7 @@ index 9ba31eb..3d69b5a 100644 \backslash / \end_layout -@@ -46650,47 +45669,6 @@ status collapsed +@@ -47282,47 +46284,6 @@ status collapsed -all-callee-saves \end_layout @@ -2608,7 +2636,7 @@ index 9ba31eb..3d69b5a 100644 \begin_layout Subsection Port Specific Options \begin_inset Index idx -@@ -47967,188 +46945,6 @@ Linker +@@ -48599,188 +47560,6 @@ Linker \end_inset @@ -2797,7 +2825,7 @@ index 9ba31eb..3d69b5a 100644 \end_layout \begin_layout Subsection -@@ -48844,66 +47640,9 @@ name "subsec:PIC16_Header-Files-and-Libraries" +@@ -49476,66 +48255,9 @@ name "subsec:PIC16_Header-Files-and-Libraries" Pic device specific header and c source files are automatically generated from MPLAB include files, which are published by Microchip with a special requirement that they are only to be used with authentic Microchip devices. @@ -2867,7 +2895,7 @@ index 9ba31eb..3d69b5a 100644 \end_layout \begin_layout Subsection -@@ -49149,195 +47888,6 @@ vfprintf.c +@@ -49781,195 +48503,6 @@ vfprintf.c should also work, but is untested. \end_layout @@ -3063,7 +3091,7 @@ index 9ba31eb..3d69b5a 100644 \begin_layout Subsection Memory Models \end_layout -@@ -74082,6 +72632,12 @@ This document was initially written by Sandeep Dutta and updated by SDCC +@@ -74714,6 +73247,12 @@ This document was initially written by Sandeep Dutta and updated by SDCC developers. \end_layout @@ -3077,7 +3105,7 @@ index 9ba31eb..3d69b5a 100644 All product names mentioned herein may be trademarks \begin_inset Index idx diff --git a/sdcc.spec b/sdcc.spec -index 85ae200..8e0ef4b 100644 +index b784cbc..f180b51 100644 --- a/sdcc.spec +++ b/sdcc.spec @@ -89,9 +89,7 @@ rm -rf $RPM_BUILD_ROOT @@ -3140,7 +3168,7 @@ index ca8d69f..980af8d 100644 #undef OPT_DISABLE_PACKIHX diff --git a/src/SDCCglobl.h b/src/SDCCglobl.h -index b49fa1b..d357169 100644 +index 87981f4..e2701f2 100644 --- a/src/SDCCglobl.h +++ b/src/SDCCglobl.h @@ -287,7 +287,6 @@ struct options @@ -3152,10 +3180,10 @@ index b49fa1b..d357169 100644 int xstack_loc; /* initial location of external stack */ int stack_loc; /* initial value of internal stack pointer */ diff --git a/src/SDCCmain.c b/src/SDCCmain.c -index bc1493d..e775988 100644 +index 6b50572..089c42f 100644 --- a/src/SDCCmain.c +++ b/src/SDCCmain.c -@@ -151,7 +151,6 @@ char buffer[PATH_MAX * 2]; +@@ -143,7 +143,6 @@ char buffer[PATH_MAX * 2]; #define OPTION_DATA_SEG "--dataseg" #define OPTION_DOLLARS_IN_IDENT "--fdollars-in-identifiers" #define OPTION_SIGNED_CHAR "--fsigned-char" @@ -3163,15 +3191,15 @@ index bc1493d..e775988 100644 #define OPTION_PEEP_RETURN "--peep-return" #define OPTION_NO_PEEP_RETURN "--no-peep-return" #define OPTION_NO_OPTSDCC_IN_ASM "--no-optsdcc-in-asm" -@@ -209,7 +208,6 @@ static const OPTION optionsTable[] = { - {0, OPTION_STD_SDCC2X, NULL, "Use ISO C2X standard with SDCC extensions"}, +@@ -193,7 +192,6 @@ static const OPTION optionsTable[] = { + {0, OPTION_STD, NULL, "Determine the language standard (c89, c99, c11, c2x, sdcc89 etc.)"}, {0, OPTION_DOLLARS_IN_IDENT, &options.dollars_in_ident, "Permit '$' as an identifier character"}, {0, OPTION_SIGNED_CHAR, &options.signed_char, "Make \"char\" signed by default"}, - {0, OPTION_USE_NON_FREE, &options.use_non_free, "Search / include non-free licensed libraries and header files"}, {0, NULL, NULL, "Code generation options"}, {'m', NULL, NULL, "Set the port to use e.g. -mz80."}, -@@ -2132,10 +2130,6 @@ preProcess (char **envp) +@@ -2207,10 +2205,6 @@ preProcess (char **envp) else addSet (&preArgvSet, Safe_strdup ("-D__SDCC_CHAR_UNSIGNED")); @@ -3182,7 +3210,7 @@ index bc1493d..e775988 100644 /* set the macro for large model */ switch (options.model) { -@@ -2365,12 +2359,6 @@ setIncludePath (void) +@@ -2454,12 +2448,6 @@ setIncludePath (void) * 6. - $SDCC_HOME/PREFIX2DATA_DIR/INCLUDE_DIR_SUFFIX * 7. - path(argv[0])/BIN2DATA_DIR/INCLUDE_DIR_SUFFIX * 8. - DATADIR/INCLUDE_DIR_SUFFIX (only on *nix) @@ -3195,7 +3223,7 @@ index bc1493d..e775988 100644 */ if (!options.nostdinc) -@@ -2386,17 +2374,6 @@ setIncludePath (void) +@@ -2475,17 +2463,6 @@ setIncludePath (void) includeDirsSet = processStrSet (includeDirsSet, NULL, port->target, NULL); mergeSets (&includeDirsSet, tempSet); @@ -3213,7 +3241,7 @@ index bc1493d..e775988 100644 if ((p = getenv (SDCC_INCLUDE_NAME)) != NULL) { struct dbuf_s dbuf; -@@ -2421,9 +2398,6 @@ setLibPath (void) +@@ -2510,9 +2487,6 @@ setLibPath (void) * 3. - $SDCC_HOME/PREFIX2DATA_DIR/LIB_DIR_SUFFIX/<model> * 4. - path(argv[0])/BIN2DATA_DIR/LIB_DIR_SUFFIX/<model> * 5. - DATADIR/LIB_DIR_SUFFIX/<model> (only on *nix) @@ -3223,7 +3251,7 @@ index bc1493d..e775988 100644 */ if (!options.nostdlib) -@@ -2440,13 +2414,6 @@ setLibPath (void) +@@ -2529,13 +2503,6 @@ setLibPath (void) dbuf_makePath (&dbuf, LIB_DIR_SUFFIX, port->general.get_model ? port->general.get_model () : targetname); libDirsSet = processStrSet (dataDirsSet, NULL, dbuf_c_str (&dbuf), NULL); @@ -3238,7 +3266,7 @@ index bc1493d..e775988 100644 { addSetHead (&libDirsSet, Safe_strdup (p)); diff --git a/src/pic14/main.c b/src/pic14/main.c -index 38d8730..a0eecdb 100644 +index ab4bcdf..1747fd6 100644 --- a/src/pic14/main.c +++ b/src/pic14/main.c @@ -42,7 +42,6 @@ static OPTION _pic14_poptions[] = @@ -3279,7 +3307,7 @@ index 4275b65..0dc8c86 100644 extern pic14_options_t pic14_options; diff --git a/src/pic16/device.h b/src/pic16/device.h -index cdfbba0..5877f09 100644 +index 41a1b79..9c642e3 100644 --- a/src/pic16/device.h +++ b/src/pic16/device.h @@ -99,7 +99,6 @@ typedef struct { @@ -3291,7 +3319,7 @@ index cdfbba0..5877f09 100644 extern pic16_options_t pic16_options; diff --git a/src/pic16/main.c b/src/pic16/main.c -index b0e717a..d7616f5 100644 +index 8809e2c..53c700e 100644 --- a/src/pic16/main.c +++ b/src/pic16/main.c @@ -660,7 +660,6 @@ OPTION pic16_optionsTable[]= { @@ -3328,7 +3356,7 @@ index b0e717a..d7616f5 100644 static const char * diff --git a/src/regression/Makefile b/src/regression/Makefile -index d8dae7c..1a32355 100644 +index 634e970..9a7a78a 100644 --- a/src/regression/Makefile +++ b/src/regression/Makefile @@ -107,12 +107,12 @@ endif @@ -3348,10 +3376,10 @@ index d8dae7c..1a32355 100644 # linker libraries LIB_SUFFIX = $(LIB_E)$(LIB_O)$(LIB_X) diff --git a/support/regression/ports/pic14/spec.mk b/support/regression/ports/pic14/spec.mk -index a3dcc05..bef1c45 100644 +index b0b0867..2d5cdd3 100644 --- a/support/regression/ports/pic14/spec.mk +++ b/support/regression/ports/pic14/spec.mk -@@ -12,13 +12,9 @@ endif +@@ -16,13 +16,9 @@ EMU = ${WINE} ${GPSIM} ifndef SDCC_BIN_PATH ifndef CROSSCOMPILING @@ -3367,16 +3395,16 @@ index a3dcc05..bef1c45 100644 endif ifdef CROSSCOMPILING -@@ -26,7 +22,6 @@ ifdef CROSSCOMPILING +@@ -30,7 +26,6 @@ ifdef CROSSCOMPILING endif - SDCCFLAGS += -mpic14 -pp16f877 --less-pedantic -Wl,-q + SDCCFLAGS += -mpic14 -pp16f877 --less-pedantic -SDCCFLAGS += --no-warn-non-free LINKFLAGS += libsdcc.lib libm.lib OBJEXT = .o diff --git a/support/regression/ports/pic16/spec.mk b/support/regression/ports/pic16/spec.mk -index 1f94cde..f1ac726 100644 +index 541608a..6e7238f 100644 --- a/support/regression/ports/pic16/spec.mk +++ b/support/regression/ports/pic16/spec.mk @@ -12,13 +12,9 @@ endif @@ -3513,10 +3541,10 @@ index 6db417a..4b35225 100755 ); diff --git a/support/scripts/sdcc.nsi b/support/scripts/sdcc.nsi -index cebb8a6..778472a 100644 +index 8309df1..c0cc223 100644 --- a/support/scripts/sdcc.nsi +++ b/support/scripts/sdcc.nsi -@@ -480,11 +480,6 @@ ${Section} "SDCC include files" SEC05 +@@ -491,11 +491,6 @@ ${Section} "SDCC include files" SEC05 SetOutPath "$INSTDIR\include" File "${DEV_ROOT}\include\*.h" @@ -3528,7 +3556,7 @@ index cebb8a6..778472a 100644 ${SectionEnd} ${Section} "SDCC DS390 library" SEC06 -@@ -582,18 +577,12 @@ ${Section} "SDCC PIC16 library" SEC21 +@@ -593,18 +588,12 @@ ${Section} "SDCC PIC16 library" SEC21 SetOutPath "$INSTDIR\lib\pic16" File "${DEV_ROOT}\lib\pic16\*.o" File "${DEV_ROOT}\lib\pic16\*.lib" @@ -3546,8 +3574,8 @@ index cebb8a6..778472a 100644 - File "${DEV_ROOT}\non-free\lib\pic14\*.lib" ${SectionEnd} - ${Section} "SDCC STM8 small model library" SEC23 -@@ -702,10 +691,6 @@ ${Section} "SDCC library sources" SEC25 + ${Section} "SDCC STM8 medium model library" SEC23 +@@ -713,10 +702,6 @@ ${Section} "SDCC library sources" SEC25 File "${DEV_ROOT}\lib\src\pic14\libsdcc\enhanced\*.inc" # File "${DEV_ROOT}\lib\src\pic14\libsdcc\Makefile" @@ -3558,7 +3586,7 @@ index cebb8a6..778472a 100644 SetOutPath "$INSTDIR\lib\src\pic14\libm" # File "${DEV_ROOT}\lib\src\pic14\libm\*.c" -@@ -757,10 +742,6 @@ ${Section} "SDCC library sources" SEC25 +@@ -768,10 +753,6 @@ ${Section} "SDCC library sources" SEC25 File "${DEV_ROOT}\lib\src\pic16\libc\utils\*.S" # File "${DEV_ROOT}\lib\src\pic16\libc\utils\Makefile" @@ -3569,7 +3597,7 @@ index cebb8a6..778472a 100644 SetOutPath "$INSTDIR\lib\src\pic16\libio" File "${DEV_ROOT}\lib\src\pic16\libio\*.ignore" # File "${DEV_ROOT}\lib\src\pic16\libio\Makefile" -@@ -1126,13 +1107,9 @@ ${Section} Uninstall SECUNINSTALL +@@ -1137,13 +1118,9 @@ ${Section} Uninstall SECUNINSTALL Delete "$INSTDIR\lib\pic14\*.lib" @@ -3583,7 +3611,7 @@ index cebb8a6..778472a 100644 Delete "$INSTDIR\lib\hc08\*.lib" Delete "$INSTDIR\lib\s08\*.lib" -@@ -1208,9 +1185,7 @@ ${Section} Uninstall SECUNINSTALL +@@ -1219,9 +1196,7 @@ ${Section} Uninstall SECUNINSTALL Delete "$INSTDIR\include\pic14\*.h" Delete "$INSTDIR\include\pic14\*.txt" Delete "$INSTDIR\include\pic14\*.inc" @@ -3593,7 +3621,7 @@ index cebb8a6..778472a 100644 Delete "$INSTDIR\include\pic16\*.txt" Delete "$INSTDIR\include\mcs51\*.h" Delete "$INSTDIR\include\hc08\*.h" -@@ -1273,9 +1248,7 @@ ${Section} Uninstall SECUNINSTALL +@@ -1298,9 +1273,7 @@ ${Section} Uninstall SECUNINSTALL Delete "$INSTDIR\uninstall.exe" RMDir /r "$INSTDIR\lib\src\pic14" @@ -3603,7 +3631,7 @@ index cebb8a6..778472a 100644 RMDir "$INSTDIR\lib\src\small" RMDir "$INSTDIR\lib\src\medium" RMDir "$INSTDIR\lib\src\large" -@@ -1303,12 +1276,9 @@ ${Section} Uninstall SECUNINSTALL +@@ -1328,12 +1301,9 @@ ${Section} Uninstall SECUNINSTALL RMDir "$INSTDIR\lib\src\mos6502" RMDir "$INSTDIR\lib\src\z80n" RMDir "$INSTDIR\lib\src" @@ -3616,7 +3644,7 @@ index cebb8a6..778472a 100644 RMDir "$INSTDIR\lib\z80" RMDir "$INSTDIR\lib\z180" RMDir "$INSTDIR\lib\r2k" -@@ -1336,15 +1306,12 @@ ${Section} Uninstall SECUNINSTALL +@@ -1361,15 +1331,12 @@ ${Section} Uninstall SECUNINSTALL RMDir "$INSTDIR\lib\mos6502" RMDir "$INSTDIR\lib\z80n" RMDir "$INSTDIR\lib" @@ -3632,7 +3660,7 @@ index cebb8a6..778472a 100644 RMDir "$INSTDIR\include\asm\mcs51" RMDir "$INSTDIR\include\asm\sm83" RMDir "$INSTDIR\include\asm\ds390" -@@ -1353,17 +1320,12 @@ ${Section} Uninstall SECUNINSTALL +@@ -1378,17 +1345,12 @@ ${Section} Uninstall SECUNINSTALL RMDir "$INSTDIR\include\asm" RMDir "$INSTDIR\include\z180" RMDir "$INSTDIR\include\pic14" diff --git a/gnu/packages/patches/xen-docs-use-predictable-ordering.patch b/gnu/packages/patches/xen-docs-use-predictable-ordering.patch new file mode 100644 index 0000000000..557da5775a --- /dev/null +++ b/gnu/packages/patches/xen-docs-use-predictable-ordering.patch @@ -0,0 +1,34 @@ +From: Tobias Geerinckx-Rice <me@tobias.gr> +Date: Sun Sep 24 02:00:00 2023 +0200 +Subject: xen: docs: Use predictable ordering. + +What follows was taken verbatim from Debian. See: +https://sources.debian.org/patches/xen/4.14.5%2B94-ge49571868d-1/ + +From: Maximilian Engelhardt <maxi@daemonizer.de> +Date: Fri, 18 Dec 2020 21:42:34 +0100 +Subject: docs: use predictable ordering in generated documentation + +When the seq number is equal, sort by the title to get predictable +output ordering. This is useful for reproducible builds. + +Signed-off-by: Maximilian Engelhardt <maxi@daemonizer.de> +Acked-by: Andrew Cooper <andrew.cooper3@citrix.com> +(cherry picked from commit e18dadc5b709290b8038a1cacb52bc3b3b69cf21) +--- + docs/xen-headers | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/docs/xen-headers b/docs/xen-headers +index 5415563..8c434d7 100755 +--- a/docs/xen-headers ++++ b/docs/xen-headers +@@ -331,7 +331,7 @@ sub output_index () { + <h2>Starting points</h2> + <ul> + END +- foreach my $ic (sort { $a->{Seq} <=> $b->{Seq} } @incontents) { ++ foreach my $ic (sort { $a->{Seq} <=> $b->{Seq} or $a->{Title} cmp $b->{Title} } @incontents) { + $o .= "<li><a href=\"$ic->{Href}\">$ic->{Title}</a></li>\n"; + } + $o .= "</ul>\n"; diff --git a/gnu/packages/patches/xen-remove-config.gz-timestamp.patch b/gnu/packages/patches/xen-remove-config.gz-timestamp.patch new file mode 100644 index 0000000000..a7396c564d --- /dev/null +++ b/gnu/packages/patches/xen-remove-config.gz-timestamp.patch @@ -0,0 +1,37 @@ +From: Tobias Geerinckx-Rice <me@tobias.gr> +Date: Sun Sep 24 02:00:00 2023 +0200 +Subject: xen: docs: Use predictable ordering. + +What follows was taken verbatim from Debian. See: +https://sources.debian.org/patches/xen/4.14.5%2B94-ge49571868d-1/ + +From: =?utf-8?b?IkZyw6lkw6lyaWMgUGllcnJldCAoZmVwaXRyZSki?= + <frederic.pierret@qubes-os.org> +Date: Wed, 4 Nov 2020 09:24:40 +0100 +Subject: xen: don't have timestamp inserted in config.gz +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 8bit + +This is for improving reproducible builds. + +Signed-off-by: Frédéric Pierret (fepitre) <frederic.pierret@qubes-os.org> +Acked-by: Jan Beulich <jbeulich@suse.com> +(cherry picked from commit 5816d327e44ab37ae08730f4c54a80835998f31f) +--- + xen/common/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/xen/common/Makefile b/xen/common/Makefile +index 06881d0..32cd650 100644 +--- a/xen/common/Makefile ++++ b/xen/common/Makefile +@@ -77,7 +77,7 @@ obj-$(CONFIG_HAS_DEVICE_TREE) += libfdt/ + + CONF_FILE := $(if $(patsubst /%,,$(KCONFIG_CONFIG)),$(XEN_ROOT)/xen/)$(KCONFIG_CONFIG) + config.gz: $(CONF_FILE) +- gzip -c $< >$@ ++ gzip -n -c $< >$@ + + config_data.o: config.gz + diff --git a/gnu/packages/patches/xpra-4.2-install_libs.patch b/gnu/packages/patches/xpra-5.0-install_libs.patch index 65d489a3b8..4d40bf1f79 100644 --- a/gnu/packages/patches/xpra-4.2-install_libs.patch +++ b/gnu/packages/patches/xpra-5.0-install_libs.patch @@ -1,18 +1,32 @@ +Distribution specific patch, not going upstream + This workaround for Gentoo interferes with our use of --no-compile during the 'install stage. ---- a/setup.py 2022-01-04 10:10:05.039825000 +0100 -+++ b/setup.py 2022-01-06 15:10:31.952656039 +0100 -@@ -589,8 +589,6 @@ - }) +diff --git a/setup.py b/setup.py +index e254bf99c..90db55c3f 100755 +--- a/setup.py ++++ b/setup.py +@@ -663,8 +663,6 @@ if modules_ENABLED: + # Utility methods for building with Cython def add_cython_ext(*args, **kwargs): - if "--no-compile" in sys.argv and not ("build" in sys.argv and "install" in sys.argv): - return - assert cython_ENABLED, "cython compilation is disabled" + if not cython_ENABLED: + raise ValueError(f"cannot build {args}: cython compilation is disabled") if cython_tracing_ENABLED: - kwargs["define_macros"] = [ -@@ -1703,14 +1701,6 @@ +@@ -1809,9 +1807,6 @@ else: + if root_prefix.endswith("/usr"): + #ie: "/" or "/usr/src/rpmbuild/BUILDROOT/xpra-0.18.0-0.20160513r12573.fc23.x86_64/" + root_prefix = root_prefix[:-4] +- for x in sys.argv: +- if x.startswith("--root="): +- root_prefix = x[len("--root="):] + print(f"install_data_override.run() root_prefix={root_prefix}") + build_xpra_conf(root_prefix) + +@@ -1955,13 +1950,6 @@ else: if uinput_ENABLED: add_data_files("lib/udev/rules.d/", ["fs/lib/udev/rules.d/71-xpra-virtual-pointer.rules"]) @@ -23,7 +37,6 @@ the 'install stage. - #otherwise we use the flags to skip pkgconfig - if ("--no-compile" in sys.argv or "--skip-build" in sys.argv) and not ("build" in sys.argv and "install" in sys.argv): - pkgconfig = no_pkgconfig -- + if OSX and "py2app" in sys.argv: import py2app #@UnresolvedImport - assert py2app is not None diff --git a/gnu/packages/patches/xpra-4.2-systemd-run.patch b/gnu/packages/patches/xpra-5.0-systemd-run.patch index 8dfd9c82f0..437a8cc37f 100644 --- a/gnu/packages/patches/xpra-4.2-systemd-run.patch +++ b/gnu/packages/patches/xpra-5.0-systemd-run.patch @@ -1,13 +1,16 @@ +Distriction specific patch, not going upstream + Disable systemd-run if the command is not found. -diff -ru xpra-4.2~/xpra/scripts/main.py xpra-4.2/xpra/scripts/main.py ---- xpra-4.2~/xpra/scripts/main.py 2021-06-06 08:51:13.756815842 -0700 -+++ xpra-4.2/xpra/scripts/main.py 2021-06-06 16:07:13.371024486 -0700 -@@ -331,23 +331,26 @@ - if not is_systemd_pid1(): - return False # pragma: no cover - #test it: -- cmd = ["systemd-run", "--quiet", "--user", "--scope", "--", "true"] +diff --git a/xpra/scripts/main.py b/xpra/scripts/main.py +index 3813331a5..46e2c83a6 100755 +--- a/xpra/scripts/main.py ++++ b/xpra/scripts/main.py +@@ -337,23 +337,26 @@ def use_systemd_run(s) -> bool: + cmd = ["systemd-run", "--quiet"] + if getuid()!=0: + cmd += ["--user"] +- cmd += ["--scope", "--", "true"] - proc = Popen(cmd, stdout=PIPE, stderr=PIPE, shell=False) try: - proc.communicate(timeout=2) @@ -15,13 +18,13 @@ diff -ru xpra-4.2~/xpra/scripts/main.py xpra-4.2/xpra/scripts/main.py - except TimeoutExpired: # pragma: no cover - r = None - if r is None: -+ cmd = ["systemd-run", "--quiet", "--user", "--scope", "--", "true"] -+ proc = Popen(cmd, stdout=PIPE, stderr=PIPE, shell=False) - try: +- try: - proc.terminate() - except Exception: - pass -- try: ++ cmd = ["systemd-run", "--quiet", "--user", "--scope", "--", "true"] ++ proc = Popen(cmd, stdout=PIPE, stderr=PIPE, shell=False) + try: - proc.communicate(timeout=1) + proc.communicate(timeout=2) + r = proc.returncode @@ -41,5 +44,5 @@ diff -ru xpra-4.2~/xpra/scripts/main.py xpra-4.2/xpra/scripts/main.py + except FileNotFoundError: + return False - - def run_mode(script_file, error_cb, options, args, mode, defaults): + def verify_gir(): + try: diff --git a/gnu/packages/profiling.scm b/gnu/packages/profiling.scm index 8a1c609669..3615eb417c 100644 --- a/gnu/packages/profiling.scm +++ b/gnu/packages/profiling.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2017 Dave Love <fx@gnu.org> ;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2023 dan <i@dan.games> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +22,7 @@ (define-module (gnu packages profiling) #:use-module (guix packages) #:use-module (guix gexp) + #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) ; avoid zlib, expat clashes #:use-module (guix download) #:use-module (guix utils) @@ -28,22 +30,28 @@ #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages base) ;for "which" + #:use-module (gnu packages bash) ;for "which" #:use-module (gnu packages bison) #:use-module (gnu packages compression) #:use-module (gnu packages documentation) + #:use-module (gnu packages engineering) #:use-module (gnu packages fabric-management) #:use-module (gnu packages flex) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gawk) #:use-module (gnu packages gcc) + #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages libunwind) #:use-module (gnu packages linux) #:use-module (gnu packages mpi) #:use-module (gnu packages ncurses) #:use-module (gnu packages perl) - #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) - #:use-module (gnu packages qt)) + #:use-module (gnu packages qt) + #:use-module (gnu packages xdisorg)) ;; Fixme: Separate out lib and fix resulting cycle errors; separate libpfm ;; output(?); build libmsr and add that component. @@ -389,3 +397,85 @@ high-performance computing (HPC) applications.") (license license:cpl1.0))) (define-public scorep-openmpi (make-scorep openmpi)) + +(define-public tracy-wayland + (package + (name "tracy-wayland") + (version "0.9.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wolfpld/tracy") + (commit (string-append "v" version)))) + (sha256 + (base32 + "1znw1r1c4vrb9vrsr08gcwynpjda8xxmb3923yykpymw2hsm0n9b")) + (file-name (git-file-name "tracy" version)) + (modules '((guix build utils))) + (snippet + '(begin + ;; XXX: Sadly, the ImGui loaders appear to have been customized by + ;; the project and the build fails when using the 'imgui' Guix + ;; package due to a missing GL_TEXTURE_WRAP_S definition, so keep + ;; the bundled copy. + + ;; Unbundle Zstd. + (delete-file-recursively "zstd") + ;; Adjust the include directives. + (substitute* (find-files "server" "\\.(c|h)pp$") + (("#include \".*zstd/(zstd|zdict).h\"" _ header) + (format #f "#include \"~a.h\"" header))) + ;; De-register source files from Visual Code project. + (substitute* "profiler/build/win32/Tracy.vcxproj" + ((".*Include=\"..\\\\..\\\\..\\\\zstd\\\\.*") "")))))) + ;; Note: There is also CMake and Meson support, but only to build the + ;; tracy library, not the profiler command. + (build-system gnu-build-system) + (arguments + (list + #:tests? #f ;no test for the profiler + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "CFLAGS=-lzstd")) + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'chdir + (lambda _ + (chdir "profiler/build/unix"))) + (delete 'configure) ;the profiler has no configure script + (replace 'install + (lambda _ + (let ((bin (string-append #$output "/bin")) + (tracy (string-append #$output "/bin/tracy"))) + (mkdir-p bin) + (copy-file "Tracy-release" tracy))))))) + (inputs (list capstone + dbus + freetype + libxkbcommon + mesa + wayland + `(,zstd "lib"))) + (native-inputs (list pkg-config)) + (home-page "https://github.com/wolfpld/tracy") + (synopsis "Frame profiler") + (description + "A real time, nanosecond resolution, remote telemetry, hybrid frame and +sampling profiler for games and other applications.") + (license license:bsd-3))) + +(define-public tracy + (package;xb + (inherit tracy-wayland) + (name "tracy") + (arguments + (substitute-keyword-arguments (package-arguments tracy-wayland) + ((#:make-flags flags #~'()) + #~(append #$flags + ;; The LEGACY flag indicate we want to build tracy with glfw. + (list "LEGACY=1"))))) + (inputs (modify-inputs (package-inputs tracy-wayland) + (delete "libxkbcommon" "wayland") + (prepend glfw))) + (synopsis "Frame profiler (X11 version)"))) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index e5ca69429d..0dbbb15448 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -1188,13 +1188,13 @@ been constructed to maintain extensive documentation on how to use (define-public python-pyotp (package (name "python-pyotp") - (version "2.7.0") + (version "2.9.0") (source (origin (method url-fetch) (uri (pypi-uri "pyotp" version)) (sha256 - (base32 "1dbcgpf576kmrpkx3ly8jq4g5g22r9n1rra55c1xqxyzl2mrz66f")))) + (base32 "0qvgsf86az9cqj6d8vim2shvyam89ik0p4sszysf7pfvw116csrl")))) (build-system python-build-system) (home-page "https://github.com/pyauth/pyotp") (synopsis "Python One Time Password Library") diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index bebcfb50e9..d3d91480ac 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -813,7 +813,7 @@ names for 256 color terminal setups.") (define-public python-colorful (package (name "python-colorful") - (version "0.5.4") + (version "0.5.5") (source (origin (method git-fetch) ; no tests data in PyPi package @@ -822,7 +822,7 @@ names for 256 color terminal setups.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1fcz5v8b318a3dsdha4c874jsf3wmcw3f25bv2csixclyzacli98")))) + (base32 "0kyy9qhvrb5m9h8xmri7c88i0k1g5qc7017anw39gx44an7mn33y")))) (build-system pyproject-build-system) (native-inputs (list python-coverage python-flake8 python-pytest)) @@ -32599,13 +32599,13 @@ than trying to just split strings.") (define-public python-srsly (package (name "python-srsly") - (version "2.4.7") + (version "2.4.8") (source (origin (method url-fetch) (uri (pypi-uri "srsly" version)) (sha256 (base32 - "022x0djlkl6pgh9yrd4avlai1n6y4hxm9l1xnb6630kpi12wrhlk")))) + "14ca3gwmhr24axxdhn73157wzzjkmi1s1ka91dz49hh9a2k9akdj")))) (build-system pyproject-build-system) (arguments (list diff --git a/gnu/packages/radio.scm b/gnu/packages/radio.scm index 66f89508fb..2e4e9db4cc 100644 --- a/gnu/packages/radio.scm +++ b/gnu/packages/radio.scm @@ -2499,7 +2499,7 @@ voice formats.") (define-public sdrangel (package (name "sdrangel") - (version "7.10.0") + (version "7.16.0") (source (origin (method git-fetch) @@ -2508,7 +2508,7 @@ voice formats.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0rl2qnc9s8cjwv77vfwgj66rz5zbxmixqh0gg6b29s4667pjvil6")))) + (base32 "1c2pdxw2a3pysqlmr42gghg0ga33afwdp6wc97h7s6gwc5km6zlk")))) (build-system qt-build-system) (native-inputs (list doxygen graphviz pkg-config)) @@ -2535,6 +2535,7 @@ voice formats.") qtbase-5 qtcharts qtdeclarative-5 + qtgamepad qtlocation qtmultimedia-5 qtquickcontrols2-5 @@ -2567,6 +2568,11 @@ voice formats.") #$(this-package-input "soapysdr"))) #:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-unrecognized-compiler-option + (lambda _ + (substitute* "cmake/Modules/CompilerOptions.cmake" + (("-Wno-inconsistent-missing-override") + "-fpermissive")))) (add-after 'unpack 'fix-CPU-extension-detection ;; ‘Fix’ in the static sense. TODO: Make this -tune'able. (lambda _ @@ -2968,6 +2974,47 @@ position fixes) the signals of the BeiDou, Galileo, GLONASS and GPS Global Navigation Satellite System.") (license license:gpl3+))) +(define-public satdump + (package + (name "satdump") + (version "1.1.0") + (source + ;; TODO: The sources embed some libraries (in src-core/libs). + ;; Using regular packaged shared libraries instead will require big + ;; changes in CMakeList files. + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/SatDump/SatDump") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mz665h02v4hg0v6kb1b3lj7vd2kp7wgasasm10q6qwqr7c133p4")))) + (build-system cmake-build-system) + (native-inputs (list pkg-config)) + (inputs + (list airspy + airspyhf + fftwf + glew + glfw + hackrf + libpng + luajit + nng + portaudio + rtl-sdr + volk + (list zstd "lib"))) + (arguments + (list #:tests? #f)) ; No test suite + (home-page "https://www.satdump.org/") + (synopsis "Satellite data processing software") + (description "SatDump is a generic satellite data processing software. +For example, it can decode the telemetry and images sent by some meteorological +satellites.") + (license license:gpl3))) + (define-public qdmr (package (name "qdmr") diff --git a/gnu/packages/raspberry-pi.scm b/gnu/packages/raspberry-pi.scm index a866a7e4f2..80bfaf0896 100644 --- a/gnu/packages/raspberry-pi.scm +++ b/gnu/packages/raspberry-pi.scm @@ -177,7 +177,7 @@ used in the Raspberry Pi") #t)))))) (native-inputs `(("binutils" ,(cross-binutils "arm-none-eabi")) - ("gcc" ,gcc-arm-none-eabi-6))) + ("gcc" ,(make-gcc-arm-none-eabi-6)))) (inputs `()) (synopsis "Raspberry Pi ARM bootloader") diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm index 6a13de6148..b40ac09854 100644 --- a/gnu/packages/rdesktop.scm +++ b/gnu/packages/rdesktop.scm @@ -55,6 +55,7 @@ #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages security-token) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (gnu packages video) @@ -95,7 +96,7 @@ to remotely control a user's Windows desktop.") (define-public freerdp (package (name "freerdp") - (version "2.10.0") + (version "2.11.1") (source (origin (method git-fetch) @@ -104,7 +105,7 @@ to remotely control a user's Windows desktop.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0j5waq4h7l5f0vrh7wmrv6r27p537qwbg7ab8j0n0ia5p4nvgjp2")))) + (base32 "1mxx711phzsaa6l022xnn41dq1315y81cgxka3rxy0fg638wipn7")))) (build-system cmake-build-system) (native-inputs (list docbook-xml @@ -139,6 +140,7 @@ to remotely control a user's Windows desktop.") openh264 opensles openssl + pcsc-lite ; for smartcard support pulseaudio zlib)) (propagated-inputs (list libxkbcommon openssl wayland)) diff --git a/gnu/packages/rust-apps.scm b/gnu/packages/rust-apps.scm index 76d48e55f1..894173b7dd 100644 --- a/gnu/packages/rust-apps.scm +++ b/gnu/packages/rust-apps.scm @@ -23,6 +23,7 @@ ;;; Copyright © 2022 ( <paren@disroot.org> ;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2022 Greg Hogan <code@greghogan.com> +;;; Copyright © 2023 Arnav Andrew Jose <arnav.jose@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -737,6 +738,102 @@ replacement for i3status, written in pure Rust. It provides a way to display bar. It is also compatible with sway.") (license license:gpl3))) +(define-public just + (package + (name "just") + (version "1.14.0") + (source (origin + (method url-fetch) + (uri (crate-uri "just" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0kafd87zmjf7wswyiqakqd2r5b8q3a761ipsihmrg9wr57k5zlis")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-test-flags + '("--release" "--" + "--skip=functions::env_var_functions" + "--skip=string::shebang_backtick") + #:install-source? #f + #:cargo-inputs + (("rust-ansi-term" ,rust-ansi-term-0.12) + ("rust-atty" ,rust-atty-0.2) + ("rust-camino" ,rust-camino-1) + ("rust-clap" ,rust-clap-2) + ("rust-ctrlc" ,rust-ctrlc-3) + ("rust-derivative" ,rust-derivative-2) + ("rust-dotenvy" ,rust-dotenvy-0.15) + ("rust-edit-distance" ,rust-edit-distance-2) + ("rust-env-logger" ,rust-env-logger-0.10) + ("rust-heck" ,rust-heck-0.4) + ("rust-lexiclean" ,rust-lexiclean-0.0.1) + ("rust-libc" ,rust-libc-0.2) + ("rust-log" ,rust-log-0.4) + ("rust-regex" ,rust-regex-1) + ("rust-serde" ,rust-serde-1) + ("rust-serde-json" ,rust-serde-json-1) + ("rust-sha2" ,rust-sha2-0.10) + ("rust-similar" ,rust-similar-2) + ("rust-snafu" ,rust-snafu-0.7) + ("rust-strum" ,rust-strum-0.24) + ("rust-target" ,rust-target-2) + ("rust-tempfile" ,rust-tempfile-3) + ("rust-typed-arena" ,rust-typed-arena-2) + ("rust-unicode-width" ,rust-unicode-width-0.1) + ("rust-uuid" ,rust-uuid-1)) + #:cargo-development-inputs + (("rust-cradle" ,rust-cradle-0.2) + ("rust-executable-path" ,rust-executable-path-1) + ("rust-pretty-assertions" ,rust-pretty-assertions-1) + ("rust-temptree" ,rust-temptree-0.2) + ("rust-which" ,rust-which-4) + ("rust-yaml-rust" ,rust-yaml-rust-0.4)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'replace-hardcoded-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* (cons "src/justfile.rs" + (find-files "tests/" "\\.rs$")) + (("/bin/sh") + (search-input-file inputs "/bin/sh")) + (("/usr/bin/env sh") + (search-input-file inputs "/bin/sh")) + (("/usr/bin/env") + (search-input-file inputs "/bin/env")) + (("/bin/echo") + (search-input-file inputs "/bin/echo"))))) + (add-after 'install 'install-manpage + (lambda* (#:key outputs #:allow-other-keys) + (install-file "man/just.1" + (string-append (assoc-ref outputs "out") + "/share/man/man1")))) + (add-after 'install 'install-completions + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (share (string-append out "/share")) + (just (string-append out "/bin/just"))) + (mkdir-p (string-append share "/bash-completion/completions")) + (with-output-to-file + (string-append share "/bash-completion/completions/just") + (lambda _ (invoke just "--completions" "bash"))) + (mkdir-p (string-append share "/fish/vendor_completions.d")) + (with-output-to-file + (string-append share "/fish/vendor_completions.d/just.fish") + (lambda _ (invoke just "--completions" "fish"))) + (mkdir-p (string-append share "/zsh/site-functions")) + (with-output-to-file + (string-append share "/zsh/site-functions/_just") + (lambda _ (invoke just "--completions" "zsh"))) + (mkdir-p (string-append share "/elvish/lib")) + (with-output-to-file + (string-append share "/elvish/lib/just") + (lambda _ (invoke just "--completions" "elvish"))))))))) + (home-page "https://github.com/casey/just") + (synopsis "Just a command runner") + (description "This package provides @code{just}, a command runner. +@code{just} is a handy way to save and run project-specific commands.") + (license license:cc0))) + (define-public maturin (package (name "maturin") diff --git a/gnu/packages/sssd.scm b/gnu/packages/sssd.scm index 251275312f..c633ef970a 100644 --- a/gnu/packages/sssd.scm +++ b/gnu/packages/sssd.scm @@ -139,7 +139,7 @@ fundamental object types for C.") (define-public sssd (package (name "sssd") - (version "2.9.1") + (version "2.9.2") (source (origin (method git-fetch) @@ -148,7 +148,7 @@ fundamental object types for C.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "159hpd49nq3256j46lanbycx8hrj517s1pvxrflxsdqcdyix59rr")) + (base32 "17nhivmg5z9j3mxqmn21l8y56c6ibpglhlnvqxy8rmsp3z5h868b")) (patches (search-patches "sssd-system-directories.patch")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index c4410c67fd..e2d67b0600 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -374,7 +374,7 @@ silently and reliably flow across to every other.") (define-public onedrive (package (name "onedrive") - (version "2.4.23") + (version "2.4.25") (source (origin (method git-fetch) @@ -383,7 +383,7 @@ silently and reliably flow across to every other.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1nj4g1rbbg6g9kw1k89dmjg4mnyh5q1b3wbjhrayvnjmssx66yn8")))) + (base32 "1i93mq4r9w8cqrdfsfv8wparfd3dbrppc5z04ab056545hk0x89k")))) (build-system gnu-build-system) (arguments (list diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 5570aa9361..1709840211 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -44,7 +44,7 @@ (define-public syncthing (package (name "syncthing") - (version "1.23.7") + (version "1.24.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/syncthing/syncthing" @@ -52,7 +52,7 @@ "/syncthing-source-v" version ".tar.gz")) (sha256 (base32 - "1891dqcsg5r034bw19qjm6qg0zi1g0djcllp2c550zq7v1sdvn0q")))) + "13v04slf231hd3rywyan0n7yyc94s34wfwnmwz8sfw4vgxk5k52a")))) (build-system go-build-system) ;; The primary Syncthing executable goes to "out", while the auxiliary ;; server programs and utility tools go to "utils". This reduces the size diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index add4cedc26..1e0a92318a 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -414,14 +414,14 @@ combining, and so on, with a simple interface.") (define-public mlterm (package (name "mlterm") - (version "3.9.2") + (version "3.9.3") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/mlterm/01release/mlterm-" version "/mlterm-" version ".tar.gz")) (sha256 - (base32 "0br1sdpxw3r7qv814b3qjb8mpigljr9wd5c5422ah76f09zh0h5r")))) + (base32 "1nah3fn055njwpr2nfl8zkr5r02n89mxxdxgcjyk9q8x74hngdxm")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests @@ -1487,7 +1487,7 @@ terminal are replicated to the others. (define-public tio (package (name "tio") - (version "2.5") + (version "2.7") (source (origin (method url-fetch) @@ -1495,7 +1495,7 @@ terminal are replicated to the others. "https://github.com/tio/tio/releases/download/v" version "/tio-" version ".tar.xz")) (sha256 - (base32 "19s41i8f3kxchlaibp7wkq8gqgbpfdn0srkf1wcfx357j3p54f86")))) + (base32 "19fswmyiwlify269h6nwdlbnhq4q7i8442xg81jinb4chhsf93xz")))) (build-system meson-build-system) (native-inputs (list pkg-config)) (inputs (list libinih)) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 56554373be..2ed0368ca7 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -1472,14 +1472,14 @@ highlighting for dozens of languages. Jed is very small and fast.") (define-public xnedit (package (name "xnedit") - (version "1.5.0") + (version "1.5.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/xnedit/" name "-" version ".tar.gz")) (sha256 (base32 - "09wvhg7rywfj7njl2fkzdhgwlgxw358423yiv2ay3k5zhbysxfik")))) + "14irfn9izkbd72yynfy634vc9pk2kmhkdmzb2w9al44wfzixlal3")))) (build-system gnu-build-system) (arguments diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index 65672cb0cc..ddeb979334 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -83,14 +83,14 @@ (define-public dos2unix (package (name "dos2unix") - (version "7.5.0") + (version "7.5.1") (source (origin (method url-fetch) (uri (string-append "https://waterlan.home.xs4all.nl/dos2unix/" "dos2unix-" version ".tar.gz")) (sha256 - (base32 "1bwmxgb6z9pgaq1lqvjnhnijiiyxw293lk70ng164k913v802fvs")))) + (base32 "05gwq7asks48l4iliw9cvbcaqa45yrkd2wb47zbb0ag0na5ph1ys")))) (build-system gnu-build-system) (arguments (list #:make-flags @@ -692,7 +692,7 @@ spreadsheets and outputs it in comma-separated-value format, and (define-public utfcpp (package (name "utfcpp") - (version "3.2.4") + (version "3.2.5") (source (origin (method git-fetch) (uri (git-reference @@ -709,7 +709,7 @@ spreadsheets and outputs it in comma-separated-value format, and "<ftest/ftest.h>")))) (sha256 (base32 - "0p18cbdk57ilbgcgprgqp7fgysb5i0nidczbhc5rnxkiiw4jvxgn")))) + "195n47dblx765xas54vkgyin3xsvfnvcdc614njzqmcxybfpvix2")))) (build-system cmake-build-system) (native-inputs (list ftest)) (home-page "https://github.com/nemtrif/utfcpp") diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index b669ac2e8d..61484bfd86 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -426,6 +426,7 @@ OpenSSL for TARGET." (package (name "openssl") (version "1.1.1q") + (replacement openssl/fixed) (source (origin (method url-fetch) (uri (list (string-append "https://www.openssl.org/source/openssl-" @@ -552,7 +553,7 @@ OpenSSL for TARGET." (package (inherit openssl-1.1) (name "openssl") - (version "1.1.1t") + (version "1.1.1u") (source (origin (method url-fetch) (uri (list (string-append "https://www.openssl.org/source/openssl-" @@ -565,7 +566,7 @@ OpenSSL for TARGET." (patches (search-patches "openssl-1.1-c-rehash-in.patch")) (sha256 (base32 - "0fwxhlv7ary9nzg5mx07x1jj3wkbizxh56qy7l6bzp5iplj9pvld")))))) + "1ipbcdlqyxbj5lagasrq2p6gn0036wq6hqp7gdnd1v1ya95xiy72")))))) (define-public openssl-3.0 (package diff --git a/gnu/packages/toolkits.scm b/gnu/packages/toolkits.scm index 46b7fd2cd6..15918467aa 100644 --- a/gnu/packages/toolkits.scm +++ b/gnu/packages/toolkits.scm @@ -32,7 +32,7 @@ (define-public imgui (package (name "imgui") - (version "1.89.4") + (version "1.89.9") (source (origin (method git-fetch) (uri (git-reference @@ -41,7 +41,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "1j79gsg9i969slygrwm0dp5mkzagglawxxagjpi3009wyp6lj6l8")) + "0db11pin6kdzyd07dnwch8sf0z3386h42ibki1lnzb2ln8m66kyj")) (modules '((guix build utils))) (snippet ;; Remove bundled fonts. @@ -62,6 +62,7 @@ ;; it would fail with the "Too many vertices in ImDrawList using 16-bit ;; indices". #~(list "-DImDrawIdx=unsigned int" + "-DIMGUI_ENABLE_FREETYPE" "-I" (string-append (getcwd) "/source") "-I" (search-input-directory %build-inputs "include/freetype2") "-g" "-O2" "-fPIC" "-shared" @@ -122,7 +123,7 @@ (copy-recursively "examples" (string-append #$output:doc "/share/imgui/examples")))))))) - (inputs (list fontconfig glfw mesa sdl2)) + (inputs (list fontconfig freetype glfw mesa sdl2)) (home-page "https://github.com/ocornut/imgui") (synopsis "Immediate-mode C++ GUI library with minimal dependencies") (description "@code{dear imgui} (also know as ImGui) is a graphical user diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index c2f5b52042..bb6cf75821 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -50,7 +50,7 @@ ;;; Copyright © 2021 Alexey Abramov <levenson@mmer.org> ;;; Copyright © 2021, 2022, 2023 Andrew Tropin <andrew@trop.in> ;;; Copyright © 2021 David Wilson <david@daviwil.com> -;;; Copyright © 2021,2022 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com> ;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name> ;;; Copyright © 2021 Thiago Jung Bauermann <bauermann@kolabnow.com> @@ -741,36 +741,19 @@ stream decoding") (base32 "1vkh19gb76agvh4h87ysbrgy82hrw88lnsvhynjf4vng629dmpgv")))) (build-system gnu-build-system) - (native-inputs - `(("config" ,config) - ("makeinfo" ,texinfo))) - (inputs - (list ncurses)) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'update-config-scripts - (lambda* (#:key inputs native-inputs #:allow-other-keys) - ;; Replace outdated config.guess and config.sub. - (for-each (lambda (file) - (install-file - (search-input-file - (or native-inputs inputs) - (string-append "/bin/" file)) ".")) - '("config.guess" "config.sub")))) - (replace 'configure - (lambda* (#:key build inputs outputs #:allow-other-keys) - ;; This old `configure' script doesn't support - ;; variables passed as arguments. - (let ((out (assoc-ref outputs "out")) - (ncurses (assoc-ref inputs "ncurses"))) - (setenv "CONFIG_SHELL" (which "bash")) - (invoke "./configure" - "--disable-static" - (string-append "--prefix=" out) - (string-append "--build=" build) - (string-append "--with-ncurses=" - ncurses)))))))) + (list + #:configure-flags + #~(list "--disable-static" + (string-append "--with-ncurses=" + #$(this-package-input "ncurses"))) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'force-autoreconf + (lambda _ + (delete-file "configure")))))) + (native-inputs (list autoconf automake libtool texinfo)) + (inputs (list ncurses)) (home-page "https://aa-project.sourceforge.net/aalib/") (synopsis "ASCII-art library") (description @@ -2412,6 +2395,7 @@ To load this plugin, specify the following option when starting mpv: (package (name "libvpx") (version "1.12.0") + (replacement libvpx/fixed) (source (origin (method git-fetch) (uri (git-reference @@ -2450,6 +2434,15 @@ To load this plugin, specify the following option when starting mpv: (license license:bsd-3) (home-page "https://www.webmproject.org/"))) +(define libvpx/fixed + (package + (inherit libvpx) + (source + (origin + (inherit (package-source libvpx)) + (patches (search-patches "libvpx-CVE-2016-2818.patch" + "libvpx-CVE-2023-5217.patch")))))) + (define-public orf-dl (let ((commit "2dbbe7ef4e0efe0f3c1d59c503108e22d9065999") (revision "1")) @@ -2614,7 +2607,7 @@ YouTube.com and many more sites.") (define-public yt-dlp (package/inherit youtube-dl (name "yt-dlp") - (version "2023.07.06") + (version "2023.09.24") (source (origin (method git-fetch) @@ -2623,7 +2616,7 @@ YouTube.com and many more sites.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "14g3qc3j4px5jiv292yj5hh8vxlnnd5bzvsq7h37jvhmrn5r4bsw")))) + (base32 "15ngsg3cadf2bv700fa1k5az5xpsm0wqr0cixbz8fcbhwdflfq6f")))) (arguments (substitute-keyword-arguments (package-arguments youtube-dl) ((#:tests? _) (not (%current-target-system))) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 49817fdbcd..892096fbd8 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -164,14 +164,14 @@ (define-public qemu (package (name "qemu") - (version "8.1.0") + (version "8.1.1") (source (origin (method url-fetch) (uri (string-append "https://download.qemu.org/qemu-" version ".tar.xz")) (sha256 - (base32 "0m8fbyr3xv6gi95ma0sksxfqmyj3pi4zcrgg5rvd8d73k08i033i")) + (base32 "1vvxmd7xbkl083anpqm797m070qi8n5wc5qid0ppbyq0wpsjxkip")) (patches (search-patches "qemu-disable-some-qtests-tests.patch" "qemu-fix-agent-paths.patch")) (modules '((guix build utils))) @@ -2279,7 +2279,7 @@ DOS or Microsoft Windows.") (define-public xen (package (name "xen") - (version "4.14.1") ; please update the mini-os input as well + (version "4.14.6") ; please update the mini-os input as well (source (origin (method git-fetch) (uri (git-reference @@ -2288,196 +2288,185 @@ DOS or Microsoft Windows.") (file-name (git-file-name name version)) (sha256 (base32 - "1r90rvypw76ya9clqw5p02gm1k8hxz73f7gr95ca778nnzvb7xjw")))) + "1cdzpxbihkdn4za8ly0lgkbxrafjzbxjflhfn83kyg4bam1vv7mn")) + (patches + (search-patches "xen-docs-use-predictable-ordering.patch" + "xen-remove-config.gz-timestamp.patch")))) (build-system gnu-build-system) (arguments - `(#:configure-flags - (list "--enable-rpath" - "--disable-qemu-traditional" ; It tries to do "git clone" - "--disable-rombios" ; would try to "git clone" via etherboot. - ;; TODO: Re-enable stubdom (it's "more secure" to use it). - "--disable-stubdom" ; tries to "git clone" old patched newlib. - (string-append "--with-initddir=" - (assoc-ref %outputs "out") - "/etc/init.d") - (string-append "--with-system-qemu=" - (assoc-ref %build-inputs "qemu") - "/bin/qemu-system-i386") - (string-append "--with-system-seabios=" - (assoc-ref %build-inputs "seabios") - "/share/firmware/bios.bin") - (string-append "--with-system-ovmf=" - (assoc-ref %build-inputs "ovmf") - "/share/firmware/ovmf_ia32.bin")) - #:make-flags (list "-j" "1" - "XEN_BUILD_DATE=Thu Jan 1 01:00:01 CET 1970" - "XEN_BUILD_TIME=01:00:01" - "XEN_BUILD_HOST=" - "ETHERBOOT_NICS=" - "SMBIOS_REL_DATE=01/01/1970" - "VGABIOS_REL_DATE=01 Jan 1970" - ; QEMU_TRADITIONAL_LOC - ; QEMU_UPSTREAM_LOC - "SYSCONFIG_DIR=/tmp/etc/default" - (string-append "BASH_COMPLETION_DIR=" - (assoc-ref %outputs "out") - "/etc/bash_completion.d") - (string-append "BOOT_DIR=" - (assoc-ref %outputs "out") - "/boot") - (string-append "DEBUG_DIR=" - (assoc-ref %outputs "out") - "/lib/debug") - (string-append "EFI_DIR=" - (assoc-ref %outputs "out") - "/lib/efi") ; TODO lib64 ? - "MINIOS_UPSTREAM_URL=" - ;(string-append "DISTDIR=" - ; (assoc-ref %outputs "out")) -) - #:test-target "test" - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'unpack-mini-os - (lambda* (#:key inputs #:allow-other-keys) - (copy-recursively (assoc-ref inputs "mini-os") "extras/mini-os") - #t)) - (add-after 'unpack-mini-os 'patch - (lambda* (#:key inputs outputs #:allow-other-keys) - (substitute* "tools/firmware/Rules.mk" - (("override XEN_TARGET_ARCH = x86_32") - (string-append "override XEN_TARGET_ARCH = x86_32 -override CC = " (assoc-ref inputs "cross-gcc") "/bin/i686-linux-gnu-gcc")) - (("^CFLAGS =$") - (string-append "CFLAGS=-I" (assoc-ref inputs "cross-libc") - "/include\n"))) - (substitute* "config/x86_32.mk" - (("CFLAGS += -m32 -march=i686") - (string-append "CFLAGS += -march=i686 -I" - (assoc-ref inputs "cross-libc") - "/include"))) - ;; /var is not in /gnu/store , so don't try to create it. - (substitute* '("tools/Makefile" - "tools/xenstore/Makefile" - "tools/xenpaging/Makefile") - (("\\$\\(INSTALL_DIR\\) .*XEN_(DUMP|LOG|RUN|LIB|PAGING)_DIR.*") - "\n") - (("\\$\\(INSTALL_DIR\\) .*XEN_(RUN|LIB)_STORED.*") - "\n")) - ;; Prevent xen from creating /etc . - (substitute* "tools/examples/Makefile" - ((" install-readmes") "") - ((" install-configs") "")) - ;; Set rpath. - (substitute* "tools/pygrub/setup.py" - (("library_dirs =") - ; TODO: extra_link_args = ['-Wl,-rpath=/opt/foo'], - (string-append "runtime_library_dirs = ['" - (assoc-ref outputs "out") - "/lib'],\nlibrary_dirs ="))) - - ;; This needs to be quoted: - ;; <https://lists.gnu.org/archive/html/guix-devel/2022-03/msg00113.html>. - (substitute* "xen/arch/x86/xen.lds.S" - ((".note.gnu.build-id") - "\".note.gnu.build-id\"")))) - (add-before 'configure 'patch-xen-script-directory - (lambda* (#:key outputs #:allow-other-keys) - (substitute* '("configure" - "tools/configure" - "docs/configure") - (("XEN_SCRIPT_DIR=.*") - (string-append "XEN_SCRIPT_DIR=" - (assoc-ref outputs "out") - "/etc/xen/scripts"))) - #t)) - (add-before 'configure 'set-environment-up - (lambda* (#:key make-flags #:allow-other-keys) - (define (cross? x) - (string-contains x "cross-i686-linux")) - (define (filter-environment! filter-predicate - environment-variable-names) - (for-each - (lambda (env-name) - (let* ((env-value (getenv env-name)) - (search-path (search-path-as-string->list env-value)) - (new-search-path (filter filter-predicate - search-path)) - (new-env-value (list->search-path-as-string - new-search-path ":"))) - (setenv env-name new-env-value))) - environment-variable-names)) - (setenv "CROSS_C_INCLUDE_PATH" (getenv "C_INCLUDE_PATH")) - (setenv "CROSS_CPLUS_INCLUDE_PATH" (getenv "CPLUS_INCLUDE_PATH")) - (setenv "CROSS_LIBRARY_PATH" (getenv "LIBRARY_PATH")) - (filter-environment! cross? - '("CROSS_C_INCLUDE_PATH" "CROSS_CPLUS_INCLUDE_PATH" - "CROSS_LIBRARY_PATH")) - (filter-environment! (lambda (e) (not (cross? e))) - '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH" - "LIBRARY_PATH")) - ;; Guix tries to be helpful and automatically adds - ;; mini-os-git-checkout/include to the include path, - ;; but actually we don't want it to be there (yet). - (filter-environment! (lambda (e) - (not - (string-contains e - "mini-os-git-checkout"))) - '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH" - "LIBRARY_PATH")) - (setenv "EFI_VENDOR" "guix") - #t)) - (replace 'build - (lambda* (#:key make-flags #:allow-other-keys) - (apply invoke "make" "world" make-flags)))))) + (list + #:configure-flags + #~(list "--enable-rpath" + "--disable-qemu-traditional" ; tries to "git clone" + "--disable-rombios" ; tries to "git clone" via etherboot + ;; TODO: Re-enable stubdom (it's "more secure" to use it). + "--disable-stubdom" ; tries to "git clone" old patched newlib + (string-append "--with-initddir=" #$output "/etc/init.d") + (string-append "--with-system-qemu=" + (search-input-file %build-inputs + "bin/qemu-system-i386")) + (string-append "--with-system-seabios=" + (search-input-file %build-inputs + "share/firmware/bios.bin")) + (string-append "--with-system-ovmf=" + (search-input-file %build-inputs + "share/firmware/ovmf_ia32.bin"))) + #:make-flags + #~(list "XEN_BUILD_DATE=Thu Jan 1 01:00:01 CET 1970" + "XEN_BUILD_TIME=01:00:01" + "XEN_BUILD_HOST=" + "ETHERBOOT_NICS=" + "SMBIOS_REL_DATE=01/01/1970" + "VGABIOS_REL_DATE=01 Jan 1970" + ;; QEMU_TRADITIONAL_LOC + ;; QEMU_UPSTREAM_LOC + "SYSCONFIG_DIR=/tmp/etc/default" + (string-append "BASH_COMPLETION_DIR=" #$output + "/etc/bash_completion.d") + (string-append "BOOT_DIR=" #$output "/boot") + (string-append "DEBUG_DIR=" #$output "/lib/debug") + (string-append "EFI_DIR=" #$output "/lib/efi") + "MINIOS_UPSTREAM_URL=") + #:test-target "test" + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'unpack-mini-os + (lambda* (#:key inputs #:allow-other-keys) + (let ((mini-os (dirname (search-input-file inputs "minios.mk")))) + (copy-recursively mini-os "extras/mini-os")))) + (add-after 'unpack-mini-os 'patch + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "tools/firmware/Rules.mk" + (("override XEN_TARGET_ARCH = x86_32" match) + (string-append match "\noverride CC = " + (search-input-file inputs + "bin/i686-linux-gnu-gcc"))) + (("^CFLAGS =$" match) + (string-append match " -I" (assoc-ref inputs "cross-libc") + "/include\n"))) + (substitute* "config/x86_32.mk" + (("(CFLAGS += )-m32 -march=i686" _ match) + (string-append match "-march=i686 -I" + (assoc-ref inputs "cross-libc") "/include"))) + ;; /var is not in /gnu/store, so don't try to create it. + (substitute* '("tools/Makefile" + "tools/xenstore/Makefile" + "tools/xenpaging/Makefile") + (("\\$\\(INSTALL_DIR\\) .*XEN_(DUMP|LOG|RUN|LIB|PAGING)_DIR.*") + "\n") + (("\\$\\(INSTALL_DIR\\) .*XEN_(RUN|LIB)_STORED.*") "\n")) + ;; Prevent xen from creating /etc. + (substitute* "tools/examples/Makefile" + ((" install-(configs|readmes)") "")) + ;; Set rpath. + (substitute* "tools/pygrub/setup.py" + (("library_dirs =" match) + ;; TODO: extra_link_args = ['-Wl,-rpath=/opt/foo'], + (string-append "runtime_library_dirs = ['" #$output "/lib']," + "\n" match))))) + (add-before 'configure 'patch-xen-script-directory + (lambda _ + (substitute* '("configure" + "tools/configure" + "docs/configure") + (("(XEN_SCRIPT_DIR=).*" _ match) + (string-append match #$output "/etc/xen/scripts"))))) + (add-before 'configure 'set-environment-up + (lambda* (#:key make-flags #:allow-other-keys) + (define (cross? x) + (string-contains x "cross-i686-linux")) + (define (filter-environment! filter-predicate + environment-variable-names) + (for-each + (lambda (env-name) + (let* ((env-value (getenv env-name)) + (search-path (search-path-as-string->list env-value)) + (new-search-path (filter filter-predicate + search-path)) + (new-env-value (list->search-path-as-string + new-search-path ":"))) + (setenv env-name new-env-value))) + environment-variable-names)) + (setenv "CROSS_C_INCLUDE_PATH" (getenv "C_INCLUDE_PATH")) + (setenv "CROSS_CPLUS_INCLUDE_PATH" (getenv "CPLUS_INCLUDE_PATH")) + (setenv "CROSS_LIBRARY_PATH" (getenv "LIBRARY_PATH")) + (filter-environment! cross? + '("CROSS_C_INCLUDE_PATH" + "CROSS_CPLUS_INCLUDE_PATH" + "CROSS_LIBRARY_PATH")) + (filter-environment! (lambda (e) (not (cross? e))) + '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH" + "LIBRARY_PATH")) + ;; Guix tries to be helpful and automatically adds + ;; mini-os-git-checkout/include to the include path, + ;; but actually we don't want it to be there (yet). + (filter-environment! (lambda (e) + (not + (string-contains e + "mini-os-git-checkout"))) + '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH" + "LIBRARY_PATH")) + (setenv "EFI_VENDOR" "guix"))) + (replace 'build + (lambda* (#:key make-flags parallel-build? #:allow-other-keys) + (apply invoke "make" "world" + "-j" (number->string + (if parallel-build? (parallel-job-count) 1)) + make-flags))) + (add-after 'install 'remove-cruft + (lambda _ + (with-directory-excursion #$output + ;; Delete useless (and irreproducible) build-time left-overs. + (for-each delete-file + (find-files "share/doc" "^\\.deps$")))))))) (inputs - `(("acpica" ,acpica) ; TODO: patch iasl invocation. - ("bridge-utils" ,bridge-utils) ; TODO: patch invocations. - ("glib" ,glib) - ("iproute" ,iproute) ; TODO: patch invocations. - ("libaio" ,libaio) - ("libx11" ,libx11) - ("yajl" ,yajl) - ("ncurses" ,ncurses) - ("openssl" ,openssl) - ("ovmf" ,ovmf) - ("pixman" ,pixman) - ("qemu" ,qemu-minimal) - ("seabios" ,seabios) - ("util-linux" ,util-linux "lib") ; uuid - ; TODO: ocaml-findlib, ocaml-nox. - ("xz" ,xz) ; for liblzma - ("zlib" ,zlib))) + (list acpica ; TODO: patch iasl invocation + bridge-utils ; TODO: patch invocations + glib + iproute ; TODO: patch invocations + libaio + libx11 + yajl + ncurses + openssl + ovmf + pixman + qemu-minimal + seabios + `(,util-linux "lib") ; uuid + ;; TODO: ocaml-findlib, ocaml-nox. + xz ; for liblzma + zlib)) (native-inputs - `(("dev86" ,dev86) - ("bison" ,bison) - ("cmake" ,cmake-minimal) - ("figlet" ,figlet) - ("flex" ,flex) - ("gettext" ,gettext-minimal) - ("libnl" ,libnl) - ("mini-os" - ,(origin + (list dev86 + bison + cmake-minimal + figlet + flex + gettext-minimal + libnl + (origin (method git-fetch) (uri (git-reference (url "https://xenbits.xen.org/git-http/mini-os.git") ;; This corresponds to (string-append "xen-RELEASE-" version)) ;; at time of packaging, but upstream has unfortunately modified - ;; existing tags in the past. - (commit "0b4b7897e08b967a09bed2028a79fabff82342dd"))) + ;; existing tags in the past. Also, not all Xen releases get a + ;; new tag. See <https://xenbits.xen.org/gitweb/?p=mini-os.git>. + (commit "f57858b7e8ef8dd48394dd08cec2bef3c9fb92f5"))) (sha256 - (base32 "1i8pcl19n60i2m9vlg79q3nknpj209c9ic5x10wxaicx45kc107f")) - (file-name "mini-os-git-checkout"))) - ("perl" ,perl) - ; TODO: markdown - ("pkg-config" ,pkg-config) - ("python" ,python-2) - ("wget" ,wget) - ("cross-gcc" ,(cross-gcc "i686-linux-gnu" - #:xbinutils (cross-binutils "i686-linux-gnu") - #:libc (cross-libc "i686-linux-gnu"))) - ("cross-libc" ,(cross-libc "i686-linux-gnu")) ; header files - ("cross-libc-static" ,(cross-libc "i686-linux-gnu") "static"))) + (base32 "04y7grxs47amvjcq1rq4jgk174rhid5m2z9w8wrv7rfd2xhazxy1")) + (file-name (string-append name "-" version "-mini-os-git-checkout"))) + perl + ;; TODO: markdown. + pkg-config + python-2 + wget + (cross-gcc "i686-linux-gnu" + #:xbinutils (cross-binutils "i686-linux-gnu") + #:libc (cross-libc "i686-linux-gnu")) + (cross-libc "i686-linux-gnu") ; header files + `(,(cross-libc "i686-linux-gnu") "static"))) (home-page "https://xenproject.org/") (synopsis "Xen Virtual Machine Monitor") (description "This package provides the Xen Virtual Machine Monitor diff --git a/gnu/packages/vnc.scm b/gnu/packages/vnc.scm index 72b6682385..8ba1292e28 100644 --- a/gnu/packages/vnc.scm +++ b/gnu/packages/vnc.scm @@ -72,17 +72,17 @@ (define-public remmina (package (name "remmina") - (version "1.4.29") + (version "1.4.32") (source (origin (method git-fetch) (uri (git-reference - (url "https://gitlab.com/Remmina/Remmina") + (url "https://gitlab.com/Remmina/Remmina.git") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "098f33v5qq6p7zjynj1pdllpmbxvqhfvwgvl9fjqyqfflsp7s7gh")))) + (base32 "1gfmbcgvwakhy539hh2fpws3j7ljrfkckar5fx8sifig9n7wsm49")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; No target diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 38982d9c39..5d873e0884 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -53,7 +53,7 @@ ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2021 Jack Hill <jackhill@jackhill.us> ;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> -;;; Copyright © 2021 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> +;;; Copyright © 2021, 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> ;;; Copyright © 2021 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2022 cage <cage-dev@twistfold.it> ;;; Copyright © 2022 Pradana Aumars <paumars@courrier.dev> @@ -5010,7 +5010,7 @@ Cloud.") bash-minimal)) (propagated-inputs (list guix - guile-fibers-1.3 + guile-fibers guile-json-4 guile-email guile-prometheus @@ -5134,21 +5134,19 @@ It uses the uwsgi protocol for all the networking/interprocess communications.") (define-public jq (package (name "jq") - (version "1.6") + (version "1.7") (source (origin (method url-fetch) - (uri (string-append "https://github.com/stedolan/jq" + (uri (string-append "https://github.com/jqlang/jq" "/releases/download/jq-" version "/jq-" version ".tar.gz")) (sha256 - (base32 "0wmapfskhzfwranf6515nzmm84r7kwljgfs7dg6bjgxakbicis2x")) + (base32 "0qnv8k9x8i6i24n9vx3cxgw0yjj1411silc4wksfcinrfmlhsaj0")) (modules '((guix build utils))) (snippet - '(begin - ;; Remove bundled onigurama. - (delete-file-recursively "modules") - #t)))) + ;; Remove bundled onigurama. + '(delete-file-recursively "modules")))) (inputs (list oniguruma)) (native-inputs @@ -5161,7 +5159,7 @@ It uses the uwsgi protocol for all the networking/interprocess communications.") (list valgrind) '()))) (build-system gnu-build-system) - (home-page "https://stedolan.github.io/jq/") + (home-page "https://jqlang.github.io/jq/") (synopsis "Command-line JSON processor") (description "jq is like sed for JSON data – you can use it to slice and filter and map and transform structured data with the same ease that sed, awk, @@ -8707,7 +8705,7 @@ of Geminispace, but it defaults to a specific domain.") (define-public libzim (package (name "libzim") - (version "8.0.0") + (version "8.2.1") (source (origin (method git-fetch) (uri (git-reference @@ -8715,7 +8713,7 @@ of Geminispace, but it defaults to a specific domain.") (commit version))) (sha256 (base32 - "1a7wj8kmpx5aqx0wsfcnaqlfsf1gr66iqxyn24cgjnk4d1rjsahm")) + "1g735aqw0vlxqgyjv02lvq24dr5shydp4y8mqianf8720s5fs73f")) (file-name (git-file-name name version)))) (build-system meson-build-system) (arguments @@ -8741,7 +8739,7 @@ for ZIM files.") (define-public kiwix-lib (package (name "kiwix-lib") - (version "11.0.0") + (version "13.0.0") (home-page "https://github.com/kiwix/kiwix-lib/") (source (origin (method git-fetch) @@ -8750,7 +8748,7 @@ for ZIM files.") (commit version))) (sha256 (base32 - "1w5dabzvd3cnhw064qf9166476fszkkxjcml21x35av0dcd1vlk6")) + "0mvlppbj0mqn4ka3cfaaj1pvn062cxbgz01c0nq04x0mzq1xwh5w")) (file-name (git-file-name name version)))) (build-system meson-build-system) (arguments @@ -8786,7 +8784,7 @@ It contains the code shared by all Kiwix ports.") (define-public kiwix-desktop (package (name "kiwix-desktop") - (version "2.2.2") + (version "2.3.1") (source (origin (method url-fetch) (uri (string-append @@ -8795,7 +8793,8 @@ It contains the code shared by all Kiwix ports.") ".tar.gz")) (sha256 (base32 - "0ani12d91azcwwys499848ws7rx0m7c23nalcm5fanjak76bg6n6")))) + "0hlk05gcb3fmnxhwj6gan51v98rdq3iv2lklwbpmm1bazmz8i7br")) + (patches (search-patches "kiwix-desktop-newer-libkiwix.patch")))) (build-system gnu-build-system) (arguments `(#:phases @@ -8840,14 +8839,14 @@ offline (such as Wikipedia), without any access to Internet.") (define-public kiwix-tools (package (name "kiwix-tools") - (version "3.3.0") + (version "3.5.0") (source (origin (method url-fetch) (uri (string-append "https://download.kiwix.org/release/" "kiwix-tools/kiwix-tools-" version ".tar.xz")) (sha256 (base32 - "07mj0lrznydhdbirybdyxswypr7hy290mjdv7lkjr6gxgdp29d37")))) + "0q6b7viy1jr212q0glqid2hqxnsd2mxsx5gzcalkc4gb0bzgj32d")))) (build-system meson-build-system) (inputs (list curl diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 88f146b46b..3822165f7f 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -79,7 +79,7 @@ (define-public wine-minimal (package (name "wine-minimal") - (version "8.0") + (version "8.16") (source (origin (method url-fetch) @@ -91,7 +91,7 @@ (string-append "https://dl.winehq.org/wine/source/" dir "wine-" version ".tar.xz"))) (sha256 - (base32 "0bkr3klvjy8h4djddr31fvapsi9pc2rsiyhaa7j1lwpq704w4wh2")))) + (base32 "1zgkqflqgl2y3a90f2nvcc1vhzr9ni0lps276553j8zgbqvnd0hn")))) (build-system gnu-build-system) (native-inputs (list bison flex)) (inputs `()) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index e26a032267..a3ed3293e3 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -786,7 +786,7 @@ desktop environment.") (define-public icewm (package (name "icewm") - (version "3.4.1") + (version "3.4.2") (source (origin (method url-fetch) (uri (string-append @@ -794,7 +794,7 @@ desktop environment.") version "/icewm-" version ".tar.lz")) (sha256 (base32 - "0fr79i6r2sjr27lv4wik8lvcnrrapd28lzhy4gnqffzds0sqx64r")))) + "1qki2r0x9d3yhxypa4i875qzr4dsjig6prs8pvj1w83yb0z4nk5n")))) (build-system gnu-build-system) (native-inputs (list pkg-config)) (inputs (list fontconfig diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index f86608497d..db948a9318 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -326,7 +326,7 @@ used to further tweak the behaviour of the different profiles.") (define-public bemenu (package (name "bemenu") - (version "0.6.15") + (version "0.6.16") (source (origin (method git-fetch) @@ -335,11 +335,11 @@ used to further tweak the behaviour of the different profiles.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1g4z1ml5ldk0hxpxs2pa091cpw0kry6cdr6n3dni1avimdm8vmw1")))) + (base32 "0q3i9blcw5i793m1rxf5dqp773hssdpifrz820psr90x982vvmib")))) (build-system gnu-build-system) (arguments (list - #:tests? #f + #:tests? #f ; there are no tests #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) "CFLAGS=-O2 -fPIC" @@ -1842,14 +1842,14 @@ Saver extension) library.") (inputs (list libxt)) (home-page "https://www.vergenet.net/~conrad/software/xsel/") - (synopsis "Manipulate X selection") + (synopsis "Manipulate X selection and/or clipboard from the command line") (description "XSel is a command-line program for getting and setting the contents of -the X selection. Normally this is only accessible by manually highlighting -information and pasting it with the middle mouse button. +the X selection and/or clipboard. Normally this is only accessible by manually +highlighting information and pasting it with the middle mouse button. -XSel reads from standard input and writes to standard output by default, -but can also follow a growing file, display contents, delete entries and more.") +XSel reads from standard input and writes to standard output by default, but can +also follow a growing file, display contents, delete entries and more.") (license (license:x11-style "file://COPYING" "See COPYING in the distribution."))))) @@ -3575,7 +3575,7 @@ keyboard input, mouse actions, etc. programmatically or manually.") (define-public wvkbd (package (name "wvkbd") - (version "0.13") + (version "0.14.1") (source (origin (method git-fetch) (uri (git-reference @@ -3584,7 +3584,7 @@ keyboard input, mouse actions, etc. programmatically or manually.") (file-name (git-file-name name version)) (sha256 (base32 - "15jzmgydhbkdn1r885p9wm5sqnj4h7znkqk71f7d3x359l051sh7")))) + "1aha9ylzbkhbf45172l3wyp65kqj6zs5gxqyj62ahj3gp944wmbb")))) (build-system gnu-build-system) (arguments (list #:tests? #f ;no tests diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index cd1335661b..ec846093e2 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -72,6 +72,7 @@ #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages check) + #:use-module (gnu packages cups) #:use-module (gnu packages compression) #:use-module (gnu packages emacs) #:use-module (gnu packages flex) @@ -6110,16 +6111,16 @@ basic eye-candy effects.") (define-public xpra (package (name "xpra") - (version "4.4.6") + (version "5.0.2") (source (origin (method url-fetch) (uri (string-append "https://www.xpra.org/src/xpra-" version ".tar.xz")) (sha256 - (base32 "0d3s13wqbn9jwqp4i55mn4chgjkrckq3jx4jrq1bcjjz5agzfrq5")) - (patches (search-patches "xpra-4.2-systemd-run.patch" - "xpra-4.2-install_libs.patch")))) + (base32 "0gxv0h1spg2jl3g9cc6qxxkq6a7prmb92dqqwk0s6pvrj8w3izlk")) + (patches (search-patches "xpra-5.0-systemd-run.patch" + "xpra-5.0-install_libs.patch")))) (build-system python-build-system) (inputs (list bash-minimal ; for wrap-program @@ -6158,7 +6159,8 @@ basic eye-candy effects.") python-dbus ; For desktop notifications. dbus ; For dbus-launch command. python-lz4 ; Faster compression than zlib. - python-netifaces)) + python-netifaces + python-pycups)) (native-inputs (list pkg-config pandoc python-cython)) (arguments (list @@ -6193,7 +6195,7 @@ basic eye-candy effects.") (format #f "~s" (search-input-file inputs "bin/xauth")))) ;; Fix directory of config files. (substitute* '("xpra/scripts/config.py" - "xpra/platform/xposix/paths.py") + "xpra/platform/posix/paths.py") (("\"/etc/xpra/?\"") (string-append "\"" #$output "/etc/xpra/\""))) ;; XXX: Stolen from (gnu packages linux) diff --git a/guix/build/git.scm b/guix/build/git.scm index deda10fee8..0ff263c81b 100644 --- a/guix/build/git.scm +++ b/guix/build/git.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2016, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2016, 2019, 2023 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -18,9 +18,12 @@ (define-module (guix build git) #:use-module (guix build utils) + #:autoload (guix build download-nar) (download-nar) + #:autoload (guix swh) (%verify-swh-certificate? swh-download) #:use-module (srfi srfi-34) #:use-module (ice-9 format) - #:export (git-fetch)) + #:export (git-fetch + git-fetch-with-fallback)) ;;; Commentary: ;;; @@ -76,4 +79,41 @@ recursively. Return #t on success, #f otherwise." (delete-file-recursively ".git") #t))) + +(define* (git-fetch-with-fallback url commit directory + #:key (git-command "git") recursive?) + "Like 'git-fetch', fetch COMMIT from URL into DIRECTORY, but fall back to +alternative methods when fetching from URL fails: attempt to download a nar, +and if that also fails, download from the Software Heritage archive." + (or (git-fetch url commit directory + #:recursive? recursive? + #:git-command git-command) + (download-nar directory) + + ;; As a last resort, attempt to download from Software Heritage. + ;; Disable X.509 certificate verification to avoid depending + ;; on nss-certs--we're authenticating the checkout anyway. + ;; XXX: Currently recursive checkouts are not supported. + (and (not recursive?) + (parameterize ((%verify-swh-certificate? #f)) + (format (current-error-port) + "Trying to download from Software Heritage...~%") + + (swh-download url commit directory) + (when (file-exists? + (string-append directory "/.gitattributes")) + ;; Perform CR/LF conversion and other changes + ;; specificied by '.gitattributes'. + (invoke git-command "-C" directory "init") + (invoke git-command "-C" directory "config" "--local" + "user.email" "you@example.org") + (invoke git-command "-C" directory "config" "--local" + "user.name" "Your Name") + (invoke git-command "-C" directory "add" ".") + (invoke git-command "-C" directory "commit" "-am" "init") + (invoke git-command "-C" directory "read-tree" "--empty") + (invoke git-command "-C" directory "reset" "--hard") + (delete-file-recursively + (string-append directory "/.git"))))))) + ;;; git.scm ends here diff --git a/guix/config.scm.in b/guix/config.scm.in index d582d91d74..62e15dd713 100644 --- a/guix/config.scm.in +++ b/guix/config.scm.in @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012-2016, 2018-2019, 2021, 2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Caleb Ristvedt <caleb.ristvedt@cune.org> ;;; ;;; This file is part of GNU Guix. @@ -35,6 +35,7 @@ %config-directory %system + %git %gzip %bzip2 %xz)) @@ -109,6 +110,9 @@ (define %system "@guix_system@") +(define %git + "@GIT@") + (define %gzip "@GZIP@") diff --git a/guix/git-download.scm b/guix/git-download.scm index d88f4c40ee..5d5d73dc6b 100644 --- a/guix/git-download.scm +++ b/guix/git-download.scm @@ -27,7 +27,9 @@ #:use-module (guix records) #:use-module (guix packages) #:use-module (guix modules) + #:use-module ((guix derivations) #:select (raw-derivation)) #:autoload (guix build-system gnu) (standard-packages) + #:autoload (guix download) (%download-fallback-test) #:autoload (git bindings) (libgit2-init!) #:autoload (git repository) (repository-open repository-close! @@ -77,15 +79,19 @@ (let ((distro (resolve-interface '(gnu packages version-control)))) (module-ref distro 'git-minimal))) -(define* (git-fetch ref hash-algo hash - #:optional name - #:key (system (%current-system)) (guile (default-guile)) - (git (git-package))) - "Return a fixed-output derivation that fetches REF, a <git-reference> -object. The output is expected to have recursive hash HASH of type -HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f." +(define* (git-fetch/in-band ref hash-algo hash + #:optional name + #:key (system (%current-system)) + (guile (default-guile)) + (git (git-package))) + "Return a fixed-output derivation that performs a Git checkout of REF, using +GIT and GUILE (thus, said derivation depends on GIT and GUILE). + +This method is deprecated in favor of the \"builtin:git-download\" builder. +It will be removed when versions of guix-daemon implementing +\"builtin:git-download\" will be sufficiently widespread." (define inputs - `(("git" ,git) + `(("git" ,(or git (git-package))) ;; When doing 'git clone --recursive', we need sed, grep, etc. to be ;; available so that 'git submodule' works. @@ -116,19 +122,16 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f." (define modules (delete '(guix config) (source-module-closure '((guix build git) - (guix build utils) - (guix build download-nar) - (guix swh))))) + (guix build utils))))) (define build (with-imported-modules modules - (with-extensions (list guile-json gnutls ;for (guix swh) + (with-extensions (list guile-json gnutls ;for (guix swh) guile-lzlib) #~(begin (use-modules (guix build git) - (guix build utils) - (guix build download-nar) - (guix swh) + ((guix build utils) + #:select (set-path-environment-variable)) (ice-9 match)) (define recursive? @@ -151,40 +154,13 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f." (setvbuf (current-output-port) 'line) (setvbuf (current-error-port) 'line) - (or (git-fetch (getenv "git url") (getenv "git commit") - #$output - #:recursive? recursive? - #:git-command "git") - (download-nar #$output) - - ;; As a last resort, attempt to download from Software Heritage. - ;; Disable X.509 certificate verification to avoid depending - ;; on nss-certs--we're authenticating the checkout anyway. - ;; XXX: Currently recursive checkouts are not supported. - (and (not recursive?) - (parameterize ((%verify-swh-certificate? #f)) - (format (current-error-port) - "Trying to download from Software Heritage...~%") - - (swh-download (getenv "git url") (getenv "git commit") - #$output) - (when (file-exists? - (string-append #$output "/.gitattributes")) - ;; Perform CR/LF conversion and other changes - ;; specificied by '.gitattributes'. - (invoke "git" "-C" #$output "init") - (invoke "git" "-C" #$output "config" "--local" - "user.email" "you@example.org") - (invoke "git" "-C" #$output "config" "--local" - "user.name" "Your Name") - (invoke "git" "-C" #$output "add" ".") - (invoke "git" "-C" #$output "commit" "-am" "init") - (invoke "git" "-C" #$output "read-tree" "--empty") - (invoke "git" "-C" #$output "reset" "--hard") - (delete-file-recursively - (string-append #$output "/.git")))))))))) - - (mlet %store-monad ((guile (package->derivation guile system))) + (git-fetch-with-fallback (getenv "git url") (getenv "git commit") + #$output + #:recursive? recursive? + #:git-command "git"))))) + + (mlet %store-monad ((guile (package->derivation (or guile (default-guile)) + system))) (gexp->derivation (or name "git-checkout") build ;; Use environment variables and a fixed script name so @@ -192,7 +168,11 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f." ;; downloads. #:script-name "git-download" #:env-vars - `(("git url" . ,(git-reference-url ref)) + `(("git url" . ,(match (%download-fallback-test) + ('content-addressed-mirrors + "https://example.org/does-not-exist") + (_ + (git-reference-url ref)))) ("git commit" . ,(git-reference-commit ref)) ("git recursive?" . ,(object->string (git-reference-recursive? ref)))) @@ -207,6 +187,54 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f." #:recursive? #t #:guile-for-build guile))) +(define* (git-fetch/built-in ref hash-algo hash + #:optional name + #:key (system (%current-system))) + "Return a fixed-output derivation that performs a Git checkout of REF, using +the \"builtin:git-download\" derivation builder. + +This is an \"out-of-band\" download in that the returned derivation does not +explicitly depend on Git, Guile, etc. Instead, the daemon performs the +download by itself using its own dependencies." + (raw-derivation (or name "git-checkout") "builtin:git-download" '() + #:system system + #:hash-algo hash-algo + #:hash hash + #:recursive? #t + #:env-vars + `(("url" . ,(object->string + (match (%download-fallback-test) + ('content-addressed-mirrors + "https://example.org/does-not-exist") + (_ + (git-reference-url ref))))) + ("commit" . ,(git-reference-commit ref)) + ("recursive?" . ,(object->string + (git-reference-recursive? ref)))) + #:leaked-env-vars '("http_proxy" "https_proxy" + "LC_ALL" "LC_MESSAGES" "LANG" + "COLUMNS") + #:local-build? #t)) + +(define built-in-builders* + (store-lift built-in-builders)) + +(define* (git-fetch ref hash-algo hash + #:optional name + #:key (system (%current-system)) + guile git) + "Return a fixed-output derivation that fetches REF, a <git-reference> +object. The output is expected to have recursive hash HASH of type +HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f." + (mlet %store-monad ((builtins (built-in-builders*))) + (if (member "git-download" builtins) + (git-fetch/built-in ref hash-algo hash name + #:system system) + (git-fetch/in-band ref hash-algo hash name + #:system system + #:guile guile + #:git git)))) + (define (git-version version revision commit) "Return the version string for packages using git-download." ;; git-version is almost exclusively executed while modules are being loaded. diff --git a/guix/git.scm b/guix/git.scm index 1b3355109e..b7182305cf 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -364,7 +364,8 @@ definitely available in REPOSITORY, false otherwise." (match ref (('commit . (? commit-id? commit)) (let ((oid (string->oid commit))) - (->bool (commit-lookup repository oid)))) + (false-if-git-not-found + (->bool (commit-lookup repository oid))))) ((or ('tag . str) ('tag-or-commit . str)) (false-if-git-not-found diff --git a/guix/read-print.scm b/guix/read-print.scm index 25be289d60..7faad82c94 100644 --- a/guix/read-print.scm +++ b/guix/read-print.scm @@ -359,10 +359,11 @@ expressions and blanks that were read." ;; the context in which they must appear. This is similar to a special form ;; of 1, except that indent is 1 instead of 2 columns. (vhashq - ('arguments '(package)) - ('sha256 '(origin source package)) - ('base32 '(sha256 origin)) + ('source '(package)) ('git-reference '(uri origin source)) + ('sha256 '(origin source package)) + ('arguments '(package)) + ('list '(arguments package)) ('search-paths '(package)) ('native-search-paths '(package)) ('search-path-specification '()) diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm index a7ff1593a6..e32f22ec99 100644 --- a/guix/scripts/archive.scm +++ b/guix/scripts/archive.scm @@ -123,8 +123,7 @@ Export/import one or more packages from/to the store.\n")) (exit 0))) (option '(#\V "version") #f #f (lambda args - (show-version-and-exit "guix build"))) - + (show-version-and-exit "guix archive"))) (option '("export") #f #f (lambda (opt name arg result) (alist-cons 'export #t result))) diff --git a/guix/scripts/perform-download.scm b/guix/scripts/perform-download.scm index 6889bcef79..045dd84ad6 100644 --- a/guix/scripts/perform-download.scm +++ b/guix/scripts/perform-download.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2016, 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016-2018, 2020, 2023 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,7 +21,9 @@ #:use-module (guix scripts) #:use-module (guix derivations) #:use-module ((guix store) #:select (derivation-path? store-path?)) - #:use-module (guix build download) + #:autoload (guix build download) (url-fetch) + #:autoload (guix build git) (git-fetch-with-fallback) + #:autoload (guix config) (%git) #:use-module (ice-9 match) #:export (guix-perform-download)) @@ -42,16 +44,14 @@ (module-use! module (resolve-interface '(guix base32))) module)) -(define* (perform-download drv #:optional output +(define* (perform-download drv output #:key print-build-trace?) "Perform the download described by DRV, a fixed-output derivation, to OUTPUT. -Note: Unless OUTPUT is #f, we don't read the value of 'out' in DRV since the -actual output is different from that when we're doing a 'bmCheck' or -'bmRepair' build." +Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or +'bmRepair' builds." (derivation-let drv ((url "url") - (output* "out") (executable "executable") (mirrors "mirrors") (content-addressed-mirrors "content-addressed-mirrors") @@ -59,15 +59,10 @@ actual output is different from that when we're doing a 'bmCheck' or (unless url (leave (G_ "~a: missing URL~%") (derivation-file-name drv))) - (let* ((output (or output output*)) - (url (call-with-input-string url read)) + (let* ((url (call-with-input-string url read)) (drv-output (assoc-ref (derivation-outputs drv) "out")) (algo (derivation-output-hash-algo drv-output)) (hash (derivation-output-hash drv-output))) - (unless (and algo hash) - (leave (G_ "~a is not a fixed-output derivation~%") - (derivation-file-name drv))) - ;; We're invoked by the daemon, which gives us write access to OUTPUT. (when (url-fetch url output #:print-build-trace? print-build-trace? @@ -92,6 +87,31 @@ actual output is different from that when we're doing a 'bmCheck' or (when (and executable (string=? executable "1")) (chmod output #o755)))))) +(define* (perform-git-download drv output + #:key print-build-trace?) + "Perform the download described by DRV, a fixed-output derivation, to +OUTPUT. + +Note: OUTPUT may differ from the 'out' value of DRV, notably for 'bmCheck' or +'bmRepair' builds." + (derivation-let drv ((url "url") + (commit "commit") + (recursive? "recursive?")) + (unless url + (leave (G_ "~a: missing Git URL~%") (derivation-file-name drv))) + (unless commit + (leave (G_ "~a: missing Git commit~%") (derivation-file-name drv))) + + (let* ((url (call-with-input-string url read)) + (recursive? (and recursive? + (call-with-input-string recursive? read))) + (drv-output (assoc-ref (derivation-outputs drv) "out")) + (algo (derivation-output-hash-algo drv-output)) + (hash (derivation-output-hash drv-output))) + (git-fetch-with-fallback url commit output + #:recursive? recursive? + #:git-command %git)))) + (define (assert-low-privileges) (when (zero? (getuid)) (leave (G_ "refusing to run with elevated privileges (UID ~a)~%") @@ -120,13 +140,20 @@ actual output is different from that when we're doing a 'bmCheck' or (match args (((? derivation-path? drv) (? store-path? output)) (assert-low-privileges) - (perform-download (read-derivation-from-file drv) - output - #:print-build-trace? print-build-trace?)) - (((? derivation-path? drv)) ;backward compatibility - (assert-low-privileges) - (perform-download (read-derivation-from-file drv) - #:print-build-trace? print-build-trace?)) + (let* ((drv (read-derivation-from-file drv)) + (download (match (derivation-builder drv) + ("builtin:download" perform-download) + ("builtin:git-download" perform-git-download) + (unknown (leave (G_ "~a: unknown builtin builder") + unknown)))) + (drv-output (assoc-ref (derivation-outputs drv) "out")) + (algo (derivation-output-hash-algo drv-output)) + (hash (derivation-output-hash drv-output))) + (unless (and hash algo) + (leave (G_ "~a is not a fixed-output derivation~%") + (derivation-file-name drv))) + + (download drv output #:print-build-trace? print-build-trace?))) (("--version") (show-version-and-exit)) (x diff --git a/guix/self.scm b/guix/self.scm index b8b9b9fe37..a1f235659d 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -69,6 +69,7 @@ ("gzip" . ,(ref 'compression 'gzip)) ("bzip2" . ,(ref 'compression 'bzip2)) ("xz" . ,(ref 'compression 'xz)) + ("git-minimal" . ,(ref 'version-control 'git-minimal)) ("po4a" . ,(ref 'gettext 'po4a)) ("gettext-minimal" . ,(ref 'gettext 'gettext-minimal)) ("gcc-toolchain" . ,(ref 'commencement 'gcc-toolchain)) @@ -826,6 +827,9 @@ itself." (define guile-lzma (specification->package "guile-lzma")) + (define git + (specification->package "git-minimal")) + (define dependencies (append-map transitive-package-dependencies (list guile-gcrypt guile-gnutls guile-git guile-avahi @@ -999,6 +1003,7 @@ itself." => ,(make-config.scm #:gzip gzip #:bzip2 bzip2 #:xz xz + #:git git #:package-name %guix-package-name #:package-version @@ -1104,7 +1109,7 @@ itself." (%storedir . "/gnu/store") (%sysconfdir . "/etc"))) -(define* (make-config.scm #:key gzip xz bzip2 +(define* (make-config.scm #:key gzip xz bzip2 git (package-name "GNU Guix") (package-version "0") (channel-metadata #f) @@ -1134,6 +1139,7 @@ itself." %state-directory %store-database-directory %config-directory + %git %gzip %bzip2 %xz)) @@ -1176,6 +1182,8 @@ itself." ;; information is used by (guix describe). '#$channel-metadata) + (define %git + #+(and git (file-append git "/bin/git"))) (define %gzip #+(and gzip (file-append gzip "/bin/gzip"))) (define %bzip2 diff --git a/nix/libstore/builtins.cc b/nix/libstore/builtins.cc index 4111ac4760..6bf467354a 100644 --- a/nix/libstore/builtins.cc +++ b/nix/libstore/builtins.cc @@ -1,5 +1,5 @@ /* GNU Guix --- Functional package management for GNU - Copyright (C) 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> + Copyright (C) 2016-2019, 2023 Ludovic Courtès <ludo@gnu.org> This file is part of GNU Guix. @@ -58,7 +58,8 @@ static void builtinDownload(const Derivation &drv, static const std::map<std::string, derivationBuilder> builtins = { - { "download", builtinDownload } + { "download", builtinDownload }, + { "git-download", builtinDownload } }; derivationBuilder lookupBuiltinBuilder(const std::string & name) diff --git a/nix/local.mk b/nix/local.mk index 61d59937e8..44a26dd2c8 100644 --- a/nix/local.mk +++ b/nix/local.mk @@ -153,9 +153,8 @@ systemdservicedir = $(libdir)/systemd/system nodist_systemdservice_DATA = \ etc/gnu-store.mount \ etc/guix-daemon.service \ - etc/guix-gc.service \ - etc/guix-gc.timer \ - etc/guix-publish.service + etc/guix-publish.service \ + etc/guix-gc.service etc/%.mount: etc/%.mount.in \ $(top_builddir)/config.status diff --git a/tests/builders.scm b/tests/builders.scm index 0b5577c7a3..619caa5f31 100644 --- a/tests/builders.scm +++ b/tests/builders.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2018, 2019, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012-2015, 2018-2019, 2021, 2023 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2021 Lars-Dominik Braun <lars@6xq.net> ;;; ;;; This file is part of GNU Guix. @@ -20,6 +20,7 @@ (define-module (tests builders) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system) #:use-module (guix build-system gnu) #:use-module (guix build gnu-build-system) @@ -31,9 +32,12 @@ #:use-module (guix base32) #:use-module (guix derivations) #:use-module (gcrypt hash) + #:use-module ((guix hash) #:select (file-hash*)) #:use-module (guix tests) + #:use-module (guix tests git) #:use-module (guix packages) #:use-module (gnu packages bootstrap) + #:use-module ((ice-9 ftw) #:select (scandir)) #:use-module (ice-9 match) #:use-module (ice-9 textual-ports) #:use-module (srfi srfi-1) @@ -84,6 +88,29 @@ (and (file-exists? out) (valid-path? %store out)))) +(test-equal "git-fetch, file URI" + '("." ".." "a.txt" "b.scm") + (let ((nonce (random-text))) + (with-temporary-git-repository directory + `((add "a.txt" ,nonce) + (add "b.scm" "#t") + (commit "Commit.") + (tag "v1.0.0" "The tag.")) + (run-with-store %store + (mlet* %store-monad ((hash + -> (file-hash* directory + #:algorithm (hash-algorithm sha256) + #:recursive? #t)) + (drv (git-fetch + (git-reference + (url (string-append "file://" directory)) + (commit "v1.0.0")) + 'sha256 hash + "git-fetch-test"))) + (mbegin %store-monad + (built-derivations (list drv)) + (return (scandir (derivation->output-path drv))))))))) + (test-assert "gnu-build-system" (build-system? gnu-build-system)) diff --git a/tests/channels.scm b/tests/channels.scm index 62312e240c..6c4276deb4 100644 --- a/tests/channels.scm +++ b/tests/channels.scm @@ -50,7 +50,7 @@ #:use-module (ice-9 match)) (define (gpg+git-available?) - (and (which (git-command)) + (and #t ;'git' is always available (which (gpg-command)) (which (gpgconf-command)))) (define commit-id-string @@ -196,7 +196,6 @@ "abc1234"))) instances))))))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-channel-instances #:validate-pull" 'descendant @@ -306,7 +305,6 @@ (depends? drv3 (list drv2 drv0) (list)))))))) -(unless (which (git-command)) (test-skip 1)) (test-equal "channel-news, no news" '() (with-temporary-git-repository directory @@ -318,7 +316,6 @@ (latest (reference-name->oid repository "HEAD"))) (channel-news-for-commit channel (oid->string latest)))))) -(unless (which (git-command)) (test-skip 1)) (test-assert "channel-news, one entry" (with-temporary-git-repository directory `((add ".guix-channel" @@ -406,7 +403,6 @@ (channel-news-for-commit channel commit5 commit1)) '(#f "tag-for-first-news-entry"))))))) -(unless (which (git-command)) (test-skip 1)) (test-assert "channel-news, annotated tag" (with-temporary-git-repository directory `((add ".guix-channel" @@ -453,7 +449,6 @@ (channel-news-for-commit channel commit2)) (list commit1))))))) -(unless (which (git-command)) (test-skip 1)) (test-assert "latest-channel-instances, missing introduction for 'guix'" (with-temporary-git-repository directory '((add "a.txt" "A") diff --git a/tests/derivations.scm b/tests/derivations.scm index 66c777cfe7..0e87778981 100644 --- a/tests/derivations.scm +++ b/tests/derivations.scm @@ -24,10 +24,15 @@ #:use-module (guix utils) #:use-module ((gcrypt hash) #:prefix gcrypt:) #:use-module (guix base32) + #:use-module ((guix git) #:select (with-repository)) #:use-module (guix tests) + #:use-module (guix tests git) #:use-module (guix tests http) #:use-module ((guix packages) #:select (package-derivation base32)) #:use-module ((guix build utils) #:select (executable-file?)) + #:use-module ((guix hash) #:select (file-hash*)) + #:use-module ((git oid) #:select (oid->string)) + #:use-module ((git reference) #:select (reference-name->oid)) #:use-module (gnu packages bootstrap) #:use-module ((gnu packages guile) #:select (guile-1.8)) #:use-module (srfi srfi-1) @@ -195,7 +200,7 @@ (stat:ino (lstat file2)))))))) (test-equal "built-in-builders" - '("download") + '("download" "git-download") (built-in-builders %store)) (test-assert "unknown built-in builder" @@ -290,6 +295,93 @@ get-string-all) text)))))) +(test-equal "'git-download' built-in builder" + `(("/a.txt" . "AAA") + ("/b.scm" . "#t")) + (let ((nonce (random-text))) + (with-temporary-git-repository directory + `((add "a.txt" "AAA") + (add "b.scm" "#t") + (commit ,nonce)) + (let* ((commit (with-repository directory repository + (oid->string + (reference-name->oid repository "HEAD")))) + (drv (derivation %store "git-download" + "builtin:git-download" '() + #:env-vars + `(("url" + . ,(object->string + (string-append "file://" directory))) + ("commit" . ,commit)) + #:hash-algo 'sha256 + #:hash (file-hash* directory + #:algorithm + (gcrypt:hash-algorithm + gcrypt:sha256) + #:recursive? #t) + #:recursive? #t))) + (build-derivations %store (list drv)) + (directory-contents (derivation->output-path drv) get-string-all))))) + +(test-assert "'git-download' built-in builder, invalid hash" + (with-temporary-git-repository directory + `((add "a.txt" "AAA") + (add "b.scm" "#t") + (commit "Commit!")) + (let* ((commit (with-repository directory repository + (oid->string + (reference-name->oid repository "HEAD")))) + (drv (derivation %store "git-download" + "builtin:git-download" '() + #:env-vars + `(("url" + . ,(object->string + (string-append "file://" directory))) + ("commit" . ,commit)) + #:hash-algo 'sha256 + #:hash (gcrypt:sha256 #vu8()) + #:recursive? #t))) + (guard (c ((store-protocol-error? c) + (string-contains (store-protocol-error-message c) "failed"))) + (build-derivations %store (list drv)) + #f)))) + +(test-assert "'git-download' built-in builder, invalid commit" + (with-temporary-git-repository directory + `((add "a.txt" "AAA") + (add "b.scm" "#t") + (commit "Commit!")) + (let* ((drv (derivation %store "git-download" + "builtin:git-download" '() + #:env-vars + `(("url" + . ,(object->string + (string-append "file://" directory))) + ("commit" + . "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")) + #:hash-algo 'sha256 + #:hash (gcrypt:sha256 #vu8()) + #:recursive? #t))) + (guard (c ((store-protocol-error? c) + (string-contains (store-protocol-error-message c) "failed"))) + (build-derivations %store (list drv)) + #f)))) + +(test-assert "'git-download' built-in builder, not found" + (let* ((drv (derivation %store "git-download" + "builtin:git-download" '() + #:env-vars + `(("url" . "file:///does-not-exist.git") + ("commit" + . "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")) + #:hash-algo 'sha256 + #:hash (gcrypt:sha256 #vu8()) + #:recursive? #t))) + (guard (c ((store-protocol-error? c) + (string-contains (store-protocol-error-message c) "failed"))) + (build-derivations %store (list drv)) + #f))) + (test-equal "derivation-name" "foo-0.0" (let ((drv (derivation %store "foo-0.0" %bash '()))) diff --git a/tests/git-authenticate.scm b/tests/git-authenticate.scm index c063920c12..4de223d422 100644 --- a/tests/git-authenticate.scm +++ b/tests/git-authenticate.scm @@ -44,7 +44,6 @@ (test-begin "git-authenticate") -(unless (which (git-command)) (test-skip 1)) (test-assert "unsigned commits" (with-temporary-git-repository directory '((add "a.txt" "A") diff --git a/tests/git.scm b/tests/git.scm index 9c944d65b1..ad43435b67 100644 --- a/tests/git.scm +++ b/tests/git.scm @@ -21,7 +21,6 @@ #:use-module (git) #:use-module (guix git) #:use-module (guix tests git) - #:use-module (guix build utils) #:use-module ((guix utils) #:select (call-with-temporary-directory)) #:use-module (srfi srfi-1) #:use-module (srfi srfi-64) @@ -33,8 +32,6 @@ (test-begin "git") -;; 'with-temporary-git-repository' relies on the 'git' command. -(unless (which (git-command)) (test-skip 1)) (test-assert "commit-difference, linear history" (with-temporary-git-repository directory '((add "a.txt" "A") @@ -61,7 +58,6 @@ ;; empty list. (null? (commit-difference commit1 commit4))))))) -(unless (which (git-command)) (test-skip 1)) (test-assert "commit-difference, fork" (with-temporary-git-repository directory '((add "a.txt" "A") @@ -101,7 +97,6 @@ (lset= eq? (commit-difference master4 master2) (list master4 merge master3 devel1 devel2))))))) -(unless (which (git-command)) (test-skip 1)) (test-assert "commit-difference, excluded commits" (with-temporary-git-repository directory '((add "a.txt" "A") @@ -126,7 +121,6 @@ (list commit4)) (null? (commit-difference commit4 commit1 (list commit5)))))))) -(unless (which (git-command)) (test-skip 1)) (test-equal "commit-relation" '(self ;master3 master3 ancestor ;master1 master3 @@ -166,7 +160,6 @@ (commit-relation master1 merge) (commit-relation merge master1)))))) -(unless (which (git-command)) (test-skip 1)) (test-equal "commit-descendant?" '((master3 master3 => #t) (master1 master3 => #f) @@ -216,7 +209,6 @@ (master1 merge) (merge master1))))))) -(unless (which (git-command)) (test-skip 1)) (test-equal "remote-refs" '("refs/heads/develop" "refs/heads/master" "refs/tags/v1.0" "refs/tags/v1.1") @@ -231,7 +223,6 @@ (tag "v1.1" "release-1.1")) (remote-refs directory))) -(unless (which (git-command)) (test-skip 1)) (test-equal "remote-refs: only tags" '("refs/tags/v1.0" "refs/tags/v1.1") (with-temporary-git-repository directory @@ -243,7 +234,6 @@ (tag "v1.1" "Release 1.1")) (remote-refs directory #:tags? #t))) -(unless (which (git-command)) (test-skip 1)) (test-assert "update-cached-checkout, tag" (call-with-temporary-directory (lambda (cache) diff --git a/tests/gnu-maintenance.scm b/tests/gnu-maintenance.scm index 61ae295b96..6fde1eb8b1 100644 --- a/tests/gnu-maintenance.scm +++ b/tests/gnu-maintenance.scm @@ -25,6 +25,7 @@ #:use-module (guix utils) #:use-module (srfi srfi-1) #:use-module (srfi srfi-64) + #:use-module ((web client) #:select (current-http-proxy)) #:use-module (ice-9 match)) (test-begin "gnu-maintenance") @@ -157,9 +158,9 @@ submodules/qtbase-everywhere-src-6.5.2.tar.xz" submodules/qtbase-everywhere-src-6.3.2.tar.xz" "6.3.2" #:to-version "6.5.2")) (test-equal "rewrite-url, without to-version" - "https://dist.libuv.org/dist/v1.46.0/libuv-v1.46.0.tar.gz" + "http://dist.libuv.example.org/dist/v1.46.0/libuv-v1.46.0.tar.gz" (with-http-server - ;; First reply, crawling https://dist.libuv.org/dist/. + ;; First reply, crawling http://dist.libuv.example.org/dist/. `((200 "\ <!DOCTYPE html> <html> @@ -173,7 +174,7 @@ submodules/qtbase-everywhere-src-6.3.2.tar.xz" "6.3.2" #:to-version "6.5.2")) <a href=\"v1.46.0/\" title=\"v1.46.0/\">v1.46.0/</a> </body> </html>") - ;; Second reply, crawling https://dist.libuv.org/dist/v1.46.0/. + ;; Second reply, crawling http://dist.libuv.example.org/dist/v1.46.0/. (200 "\ <!DOCTYPE html> <html> @@ -190,7 +191,8 @@ submodules/qtbase-everywhere-src-6.3.2.tar.xz" "6.3.2" #:to-version "6.5.2")) libuv-v1.46.0.tar.gz.sign</a> </body> </html>")) - (rewrite-url "https://dist.libuv.org/dist/v1.45.0/libuv-v1.45.0.tar.gz" - "1.45.0"))) + (parameterize ((current-http-proxy (%local-url))) + (rewrite-url "http://dist.libuv.example.org/dist/v1.45.0/libuv-v1.45.0.tar.gz" + "1.45.0")))) (test-end) diff --git a/tests/guix-graph.sh b/tests/guix-graph.sh index 37ea0a7b8c..b9e20dac81 100644 --- a/tests/guix-graph.sh +++ b/tests/guix-graph.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2015-2016, 2019-2020, 2022 Ludovic Courtès <ludo@gnu.org> +# Copyright © 2015-2016, 2019-2020, 2022-2023 Ludovic Courtès <ludo@gnu.org> # Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com> # # This file is part of GNU Guix. @@ -86,8 +86,8 @@ guix graph --path emacs vim && false path="\ emacs -gnutls -p11-kit +cairo +gobject-introspection libffi" test "`guix graph --path emacs libffi | cut -d '@' -f1`" = "$path" diff --git a/tests/import-git.scm b/tests/import-git.scm index f1bce154bb..20255dedb3 100644 --- a/tests/import-git.scm +++ b/tests/import-git.scm @@ -24,7 +24,6 @@ #:use-module (guix import git) #:use-module (guix git-download) #:use-module (guix tests git) - #:use-module (guix build utils) #:use-module (srfi srfi-1) #:use-module (srfi srfi-64)) @@ -46,7 +45,6 @@ (base32 "0000000000000000000000000000000000000000000000000000")))))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-git-tag-version: no custom prefix, suffix, and delimiter" "1.0.1" (with-temporary-git-repository directory @@ -56,7 +54,6 @@ (let ((package (make-package directory "1.0.0"))) (latest-git-tag-version package)))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-git-tag-version: custom prefix, no suffix and delimiter" "1.0.1" (with-temporary-git-repository directory @@ -67,7 +64,6 @@ '((release-tag-prefix . "prefix-"))))) (latest-git-tag-version package)))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-git-tag-version: custom suffix, no prefix and delimiter" "1.0.1" (with-temporary-git-repository directory @@ -78,7 +74,6 @@ '((release-tag-suffix . "-suffix-[0-9]*"))))) (latest-git-tag-version package)))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-git-tag-version: custom delimiter, no prefix and suffix" "2021.09.07" (with-temporary-git-repository directory @@ -89,7 +84,6 @@ '((release-tag-version-delimiter . "-"))))) (latest-git-tag-version package)))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-git-tag-version: empty delimiter, no prefix and suffix" "20210907" (with-temporary-git-repository directory @@ -100,7 +94,6 @@ '((release-tag-version-delimiter . ""))))) (latest-git-tag-version package)))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-git-tag-version: custom prefix and suffix, no delimiter" "2.0.0" (with-temporary-git-repository directory @@ -112,7 +105,6 @@ (release-tag-suffix . "suffix-[0-9]"))))) (latest-git-tag-version package)))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-git-tag-version: custom prefix, suffix, and delimiter" "2.0.0" (with-temporary-git-repository directory @@ -125,7 +117,6 @@ (release-tag-version-delimiter . "_"))))) (latest-git-tag-version package)))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-git-tag-version: only pre-releases available" #f (with-temporary-git-repository directory @@ -135,7 +126,6 @@ (let ((package (make-package directory "1.0.0"))) (latest-git-tag-version package)))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-git-tag-version: accept pre-releases" "2.0.0-rc1" (with-temporary-git-repository directory @@ -146,7 +136,6 @@ '((accept-pre-releases? . #t))))) (latest-git-tag-version package)))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-git-tag-version: accept pre-releases, and custom prefix" "2.0.0-rc1" (with-temporary-git-repository directory @@ -158,7 +147,6 @@ (release-tag-prefix . "version-"))))) (latest-git-tag-version package)))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-git-tag-version: accept pre-releases, and custom suffix" "2.0.0-rc1" (with-temporary-git-repository directory @@ -170,7 +158,6 @@ (release-tag-suffix . "-suffix"))))) (latest-git-tag-version package)))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-git-tag-version: accept pre-releases, delimiter conflicts with pre-release part" "2.0.0_alpha" (with-temporary-git-repository directory @@ -182,7 +169,6 @@ (release-tag-version-delimiter . "_"))))) (latest-git-tag-version package)))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-git-tag-version: accept pre-releases, and custom suffix and prefix" "2.0.0-alpha" (with-temporary-git-repository directory @@ -195,7 +181,6 @@ (release-tag-suffix . "-suffix"))))) (latest-git-tag-version package)))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-git-tag-version: accept pre-releases, and custom suffix, prefix, and delimiter" "2.0.0-alpha" (with-temporary-git-repository directory @@ -209,7 +194,6 @@ (release-tag-version-delimiter . "-"))))) (latest-git-tag-version package)))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-git-tag-version: accept pre-releases, no delimiter, and custom suffix, prefix" "2alpha" (with-temporary-git-repository directory @@ -223,7 +207,6 @@ (release-tag-version-delimiter . ""))))) (latest-git-tag-version package)))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-git-tag-version: no tags found" #f (with-temporary-git-repository directory @@ -232,7 +215,6 @@ (let ((package (make-package directory "1.0.0"))) (latest-git-tag-version package)))) -(unless (which (git-command)) (test-skip 1)) (test-equal "latest-git-tag-version: no valid tags found" #f (with-temporary-git-repository directory diff --git a/tests/read-print.scm b/tests/read-print.scm index 9e1d8038f1..c8b8eb73fe 100644 --- a/tests/read-print.scm +++ b/tests/read-print.scm @@ -258,13 +258,13 @@ mnopqrstuvwxyz.\")" (test-pretty-print "\ (package - ;; Here 'sha256', 'base32', and 'arguments' must be + ;; Here 'source', 'sha256', and 'arguments' must be ;; immediately followed by a newline. - (source (origin - (method url-fetch) - (sha256 - (base32 - \"not a real base32 string\")))) + (source + (origin + (method url-fetch) + (sha256 + (base32 \"not a real base32 string\")))) (arguments '(#:phases %standard-phases #:tests? #f)))") @@ -274,12 +274,13 @@ mnopqrstuvwxyz.\")" (package (name \"keyword-value-same-line\") (arguments - (list #:phases #~(modify-phases %standard-phases - (add-before 'x 'y - (lambda* (#:key inputs #:allow-other-keys) - (foo bar baz)))) - #:make-flags #~'(\"ANSWER=42\") - #:tests? #f)))") + (list + #:phases #~(modify-phases %standard-phases + (add-before 'x 'y + (lambda* (#:key inputs #:allow-other-keys) + (foo bar baz)))) + #:make-flags #~'(\"ANSWER=42\") + #:tests? #f)))") (test-pretty-print "\ (let ((x 1) |