diff options
40 files changed, 826 insertions, 272 deletions
diff --git a/Makefile.am b/Makefile.am index 5f0809ee00..147767ece4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1033,6 +1033,7 @@ dist-with-updated-version: override GZIP_ENV = --best --no-name # Be friendly to Debian; avoid using EPOCH override am__tar = $${TAR-tar} \ + --format=ustar \ --sort=name \ --mode=go=rX,u+rw,a-s \ --mtime=@$$(cat "$$tardir"/.tarball-timestamp) \ diff --git a/gnu/packages/axoloti.scm b/gnu/packages/axoloti.scm index 72802bcf15..ebd2e37d5c 100644 --- a/gnu/packages/axoloti.scm +++ b/gnu/packages/axoloti.scm @@ -618,7 +618,7 @@ powerful microcontroller board: Axoloti Core.") (define-public ksoloti-runtime (package (name "ksoloti-runtime") - (version "1.0.12-7") + (version "1.0.12-8") (source (origin (method git-fetch) @@ -627,7 +627,7 @@ powerful microcontroller board: Axoloti Core.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "046jddrzlx1pdn53z0l8wf3rz7jsx7qn6l08ccw104gk996gr3gn")) + (base32 "00ghkz3fhmmza24qrmhhz8n90n5q465fk9bld3hrfijf8sf4532i")) (modules '((guix build utils))) ;; Remove pre-built Java binaries. (snippet @@ -685,12 +685,6 @@ powerful microcontroller board: Axoloti Core.") (string-append "TRGT = " (assoc-ref inputs "cross-toolchain") "/bin/arm-none-eabi-\n"))) - ;; XXX: Add missing entry for -size tool. This should be - ;; upstreamed. - (substitute* '("firmware_axoloti_legacy/flasher/Makefile" - "firmware_axoloti_legacy/mounter/Makefile") - (("^OD.*= \\$\\(TRGT\\)objdump" m) - (string-append m "\nSZ = $(TRGT)size"))) ;; Hardcode path to "make" (substitute* '("firmware/compile_firmware_linux.sh" @@ -759,7 +753,7 @@ powerful microcontroller board: Axoloti Core.") ;; for compiling firmware ("cross-toolchain" ,(make-arm-none-eabi-nano-toolchain-4.9)) ;; for uploading compiled patches and firmware - ("dfu-util" ,dfu-util-for-axoloti))) + ("dfu-util" ,dfu-util))) (native-inputs (list unzip)) (home-page "https://ksoloti.github.io/") (synopsis "Audio development environment for the Ksoloti board") diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index bf2b622f92..5da3f28545 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -5445,6 +5445,27 @@ a single buffer.") Lisp developers who want to write macros with convenience.") (license license:gpl3+))) +(define-public emacs-noman + (package + (name "emacs-noman") + (version "0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/andykuszyk/noman.el") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "04hvh816a0dvakgn22lxzw8qjmvc8grb5nhg1b5w99j5606ljqcl")))) + (build-system emacs-build-system) + (synopsis "Emacs package for browsing CLI command docs without man pages") + (description + "Noman is an Emacs package that parses command line help from flags like +@code{--help}, and presents it in an easy-to-navigate Emacs buffer.") + (home-page "https://github.com/andykuszyk/noman.el") + (license license:gpl3+))) + (define-public emacs-tablist (package (name "emacs-tablist") @@ -17415,7 +17436,7 @@ encryption.") (define-public emacs-nginx-mode (package (name "emacs-nginx-mode") - (version "1.1.9") + (version "1.1.10") (source (origin (method git-fetch) @@ -17424,7 +17445,7 @@ encryption.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "17dh5pr3gh6adrbqx588gimxbb2fr7iv2qrxv6r48w2727l344xs")))) + (base32 "1zal05l3lnb41pvfxwkzrcf39g7amqbaaffxn3wz7qa45gvvc6fw")))) (build-system emacs-build-system) (home-page "https://github.com/ajc/nginx-mode") (synopsis "Emacs major mode for editing nginx config files") diff --git a/gnu/packages/fltk.scm b/gnu/packages/fltk.scm index 4518a1e30a..05d418022f 100644 --- a/gnu/packages/fltk.scm +++ b/gnu/packages/fltk.scm @@ -43,7 +43,7 @@ (define-public fltk (package (name "fltk") - (version "1.3.8") + (version "1.3.9") (source (origin (method url-fetch) @@ -51,7 +51,7 @@ (first (string-split version #\-)) "/fltk-" version "-source.tar.gz")) (sha256 - (base32 "1gyisjwjbdsax4kbdm3hpijp2f0qgh1wk7wgad87l3pb0wmi1hgk")))) + (base32 "06siv517l1wfvcc1dg0h1dka5yzkh9gbmm835i1hgmjhbi2b0dnp")))) (build-system gnu-build-system) (native-inputs (list pkg-config)) diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index c30f28d96f..985fa77231 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -105,6 +105,7 @@ #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages lua) + #:use-module (gnu packages machine-learning) #:use-module (gnu packages maths) #:use-module (gnu packages multiprecision) #:use-module (gnu packages pcre) @@ -1388,6 +1389,42 @@ utilities for data translation and processing.") "The Python Shapefile Library (PyShp) reads and writes ESRI Shapefiles.") (license license:expat))) +(define-public python-verde + (package + (name "python-verde") + (version "1.8.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "verde" version)) + (sha256 + (base32 "1hnh91dsk2dxfbk7p2hv3hajaa396139pd6apabgdrp5b7s54k97")))) + (build-system pyproject-build-system) + (arguments + ;; Tests below fetch data remotely. + (list #:test-flags #~(list "-k" (string-append + "not test_minimal_integration_2d_gps" + " and not test_datasets_locate" + " and not test_fetch_texas_wind" + " and not test_fetch_baja_bathymetry" + " and not test_fetch_rio_magnetic" + " and not test_fetch_california_gps")))) + (native-inputs (list python-cartopy python-distributed)) + (propagated-inputs (list python-dask + python-numpy + python-pandas + python-pooch + python-scikit-learn + python-scipy + python-xarray)) + (home-page "https://github.com/fatiando/verde") + (synopsis "Processing and gridding spatial data, machine-learning style") + (description + "Verde is a Python library for processing spatial data (topography, point +clouds, bathymetry, geophysics surveys, etc) and interpolating them on a 2D +surface (i.e., gridding) with a hint of machine learning.") + (license license:bsd-3))) + (define-public python-cartopy (package (name "python-cartopy") diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 4a9bf3ba04..1ffec770fa 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -523,9 +523,9 @@ variable defined below. It requires guile-json to be installed." ;; XXXX: Workaround 'snippet' limitations. (define computed-origin-method (@@ (guix packages) computed-origin-method)) -(define %icecat-base-version "115.9.1") +(define %icecat-base-version "115.10.0") (define %icecat-version (string-append %icecat-base-version "-guix0-preview1")) -(define %icecat-build-id "20240323000000") ;must be of the form YYYYMMDDhhmmss +(define %icecat-build-id "20240416000000") ;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' @@ -545,12 +545,12 @@ variable defined below. It requires guile-json to be installed." "firefox-" upstream-firefox-version ".source.tar.xz")) (sha256 (base32 - "0agr8s42lpbq5gixsgj5kpcvimbnyx6msr4il4rvmf7gpw47hr93")))) + "1wpf4vcrvnvhnfzqavbkzqbn51bds1l9f6ld4mzh9xwm7mrkrz8a")))) ;; The upstream-icecat-base-version may be older than the ;; %icecat-base-version. - (upstream-icecat-base-version "115.9.1") - (gnuzilla-commit "a59b8a2c2e4c8b8de47b3ae4d10032154a47a01e") + (upstream-icecat-base-version "115.10.0") + (gnuzilla-commit "40e114e5e8fd0b4d3621d6c8aebf0c78100578f2") (gnuzilla-source (origin (method git-fetch) @@ -562,7 +562,7 @@ variable defined below. It requires guile-json to be installed." (string-take gnuzilla-commit 8))) (sha256 (base32 - "0l07x59c0bmj72n0pdhb4mlphw9nmd88i9jg39xvxcw0cv7bw6qm")))) + "1x6miiafhv9ncddm7xxjz88amq9bpv6sqnw5k0yz6fy1ghw9ckw0")))) ;; 'search-patch' returns either a valid file name or #f, so wrap it ;; in 'assume-valid-file-name' to avoid 'local-file' warnings. diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm index 72b6decd81..42722a79d0 100644 --- a/gnu/packages/hardware.scm +++ b/gnu/packages/hardware.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2023 Spencer Skylar Chan <schan12@umd.edu> ;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com> +;;; Copyright © 2024 Giacomo Leidi <goodoldpaul@autistici.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -60,6 +61,7 @@ #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) + #:use-module (gnu packages golang) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages haskell-xyz) @@ -141,6 +143,68 @@ drivers, including an assembler and a disassembler for several GPU instruction sets, and tools to deal with register databases.") (license license:expat)))) +(define-public brillo + (package + (name "brillo") + (version "1.4.12") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/cameronnemo/brillo") + (commit (string-append "v" version)))) + (sha256 + (base32 + "16n4j45mfhd1zxwbpl8342vyqf8rj3plhcl90xp02m46hn58v8bl")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (arguments + (list + #:make-flags #~(list (string-append "CC=" + #$(cc-for-target)) + (string-append "AADIR=" #$output "/etc/apparmor.d") + (string-append "PREFIX=" #$output)) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-udev-rules + (lambda _ + (substitute* "contrib/udev.in" + (("/bin/chgrp") + (string-append #$coreutils + "/bin/chgrp")) + (("/bin/chmod") + (string-append #$coreutils + "/bin/chmod"))))) + (delete 'configure) + ;; Tests must be run on real hardware. + (delete 'check) + (add-after 'install 'install-udev-polkit + (lambda* (#:key make-flags #:allow-other-keys) + (map (lambda (target) + (apply invoke "make" target make-flags)) + '("install.udev" "install.polkit"))))))) + (native-inputs (list go-github-com-go-md2man)) + (supported-systems + (lset-difference string=? %supported-systems %hurd-systems)) + (home-page "https://gitlab.com/cameronnemo/brillo") + (synopsis "Controls the brightness of backlight and LED devices on Linux") + (description + "Brillo is a command line tool to control the brightness of backlight and +LED devices on Linux. + +Notable features include: + +@itemize + +@item Automatic best controller detection +@item Smooth transitions and natural brightness adjustments +@item Ability to save and restore brightness across boots +@item Directly using sysfs to set brightness without relying on X +@item Unprivileged access with no new setuid binaries +@item Containment with AppArmor + +@end itemize") + (license (list license:bsd-0 license:gpl3+)))) + (define-public hw-probe (package (name "hw-probe") diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 7a34baba88..9c819838bd 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -502,17 +502,17 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; The current "mainline" kernel. -(define-public linux-libre-6.8-version "6.8.5") +(define-public linux-libre-6.8-version "6.8.6") (define-public linux-libre-6.8-gnu-revision "gnu") (define deblob-scripts-6.8 (linux-libre-deblob-scripts linux-libre-6.8-version linux-libre-6.8-gnu-revision (base32 "1kqwcm8baq3zx1z8jrgnvm9yps3y9jbf4pv1pbqqprpdscgl9089") - (base32 "0j9pj370zismhzw18iyx3lwcby3l3160xgpmh5xa8i8cr38r2z5h"))) + (base32 "1x7lmy8lff4g4hm67c97797ws594xv5c6l2v5mahj4xh4pb3b8d6"))) (define-public linux-libre-6.8-pristine-source (let ((version linux-libre-6.8-version) - (hash (base32 "12gsxxiwkildj8i94fkm2v69zb6z6s7hnnlvpsyv8j1pszjj728k"))) + (hash (base32 "158rb8x4qaig8ywbr6n2jnqpl9wgqha4ghs3y3mlbaq3sqr34wly"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-6.8))) @@ -541,37 +541,37 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." ;; Here are the support timelines: ;; <https://www.kernel.org/category/releases.html> -(define-public linux-libre-6.6-version "6.6.26") +(define-public linux-libre-6.6-version "6.6.27") (define-public linux-libre-6.6-gnu-revision "gnu") (define deblob-scripts-6.6 (linux-libre-deblob-scripts linux-libre-6.6-version linux-libre-6.6-gnu-revision (base32 "1qm8f3fq4yx59f7b6yky5ryyf229ypxnry922sr8cy0s7mp62cmv") - (base32 "17hq5pirvxaq1yscb204950xlakrd4r4mknjqayh1rzj4rzngzyq"))) + (base32 "0s8ys7nz4p50c766f3z9h68vxnrsrgps1i5zskk3cjwik3q60an8"))) (define-public linux-libre-6.6-pristine-source (let ((version linux-libre-6.6-version) - (hash (base32 "1nan0h95dkqpb55jr5mxfi8yks09fd518im3vblbi4zvyi4v8m5g"))) + (hash (base32 "14c229mcrd2rd2vjp0c3apzqifn6mkz0rcbw07nj73rw1q3517k3"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-6.6))) -(define-public linux-libre-6.1-version "6.1.85") +(define-public linux-libre-6.1-version "6.1.86") (define-public linux-libre-6.1-gnu-revision "gnu") (define deblob-scripts-6.1 (linux-libre-deblob-scripts linux-libre-6.1-version linux-libre-6.1-gnu-revision (base32 "1sf80f2i4vf888xjcn84ymn4w5ynn30ib9033zwmv7f09yvfhapy") - (base32 "1kp8zl97x1hsmvmdwaq8s8gndfmf8chvlhsw216f86ishi2prws3"))) + (base32 "0104m61mqhlmsjjprj51njwbffjcqgjln5bf1wknb6y3iiazl6ng"))) (define-public linux-libre-6.1-pristine-source (let ((version linux-libre-6.1-version) - (hash (base32 "0x32p1c04q5d0yd4qncrmc064m3g1x7cvfia5cd04q3wb769pzik"))) + (hash (base32 "0nqiwcaln36drkcaav96dymd2y8rv7wj6a5xjl58f2hg9z2cilyk"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-6.1))) -(define-public linux-libre-5.15-version "5.15.154") +(define-public linux-libre-5.15-version "5.15.155") (define-public linux-libre-5.15-gnu-revision "gnu") (define deblob-scripts-5.15 (linux-libre-deblob-scripts @@ -581,12 +581,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "121shkzgixmywa19xx5f2yxg1primarpg4bxin3jyw0214xbfh2n"))) (define-public linux-libre-5.15-pristine-source (let ((version linux-libre-5.15-version) - (hash (base32 "16067mhf173kgs4mvlzix9qscwq5wy8817dyfyjx5g7jkykmxy0p"))) + (hash (base32 "1r16j5asd8v5hr5b0sb8z2wmp6say928pgm13k4iyv9fdnw5jn68"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.15))) -(define-public linux-libre-5.10-version "5.10.214") +(define-public linux-libre-5.10-version "5.10.215") (define-public linux-libre-5.10-gnu-revision "gnu1") (define deblob-scripts-5.10 (linux-libre-deblob-scripts @@ -596,12 +596,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "12csh2zyjrqzgqcv799gv8h4xaw1irxh2zqddn4jqp5p7psx4j5k"))) (define-public linux-libre-5.10-pristine-source (let ((version linux-libre-5.10-version) - (hash (base32 "0n7m82hw2rkw5mhdqw0vvmq7kq0s43jalr53sbv09wl17vai9w20"))) + (hash (base32 "1af6h86flx96pszg006agpak2f9dkk2jqaazfykd7aafqdcs3747"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.10))) -(define-public linux-libre-5.4-version "5.4.273") +(define-public linux-libre-5.4-version "5.4.274") (define-public linux-libre-5.4-gnu-revision "gnu1") (define deblob-scripts-5.4 (linux-libre-deblob-scripts @@ -611,12 +611,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0x0xg0fcykpd117x3q0gim8jilhx922ashhckjvafxv2gk2zzjhj"))) (define-public linux-libre-5.4-pristine-source (let ((version linux-libre-5.4-version) - (hash (base32 "0hs7af3mcnk5mmp3c5vjl187nva2kzsdx487nd12a8m7zb9wz84b"))) + (hash (base32 "1m4yyyv48mfkzhqms88dv1jf39zsfp88az5zpqynmm1wlhhv9iza"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.4))) -(define-public linux-libre-4.19-version "4.19.311") +(define-public linux-libre-4.19-version "4.19.312") (define-public linux-libre-4.19-gnu-revision "gnu1") (define deblob-scripts-4.19 (linux-libre-deblob-scripts @@ -626,7 +626,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." (base32 "0fgkp3v7qgqpn7l1987xcwwlrmwsbscqnxfv06p8nkavrhymrv3c"))) (define-public linux-libre-4.19-pristine-source (let ((version linux-libre-4.19-version) - (hash (base32 "10dww3cyazcf3wjzh8igpa0frb8gvl6amnksh42zfkji4mskh2r6"))) + (hash (base32 "0jppa4p73pssd7m3jpc7i6rgnj9gawjcgk4wmqyy87ijzrgzm553"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-4.19))) diff --git a/gnu/packages/lua.scm b/gnu/packages/lua.scm index c35bbe8bcd..7b17c0756b 100644 --- a/gnu/packages/lua.scm +++ b/gnu/packages/lua.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016, 2017, 2020-2022 Efraim Flashner <efraim@flashner.co.il> -;;; Copyright © 2016, 2019 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2016, 2019, 2024 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 doncatnip <gnopap@gmail.com> ;;; Copyright © 2016, 2017, 2019 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org> @@ -375,49 +375,55 @@ directory structure and file attributes.") (define (make-lua-ossl name lua) (package (name name) - (version "20170903") + (version "20220711") (source (origin - (method url-fetch) - (uri (string-append "https://25thandclement.com/~william/" - "projects/releases/luaossl-" version ".tgz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/wahern/luaossl") + (commit (string-append "rel-" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "10392bvd0lzyibipblgiss09zlqh3a5zgqg1b9lgbybpqb9cv2k3")))) + "1a9pgmc6fbhgh1m9ksz9fq057yzz46npqgakcsy9vngg47xacfdb")))) (build-system gnu-build-system) (arguments - `(#:make-flags - (let ((out (assoc-ref %outputs "out")) - (lua-api-version ,(version-major+minor (package-version lua)))) - (list ,(string-append "CC=" (cc-for-target)) - "CFLAGS='-D HAVE_SYS_SYSCTL_H=0'" ; sys/sysctl.h is deprecated - (string-append "prefix=" out) - (string-append "LUA_APIS=" lua-api-version))) + (list + #:make-flags + #~(let ((lua-api-version #$(version-major+minor (package-version lua)))) + (list (string-append "CC=" #$(cc-for-target)) + "CFLAGS='-D HAVE_SYS_SYSCTL_H=0'" ; sys/sysctl.h is deprecated + (string-append "prefix=" #$output) + (string-append "LUA_APIS=" lua-api-version))) #:phases - (modify-phases %standard-phases - (delete 'configure) - (delete 'check) - (add-after 'install 'check - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (lua-version ,(version-major+minor (package-version lua)))) - (setenv "LUA_CPATH" - (string-append out "/lib/lua/" lua-version "/?.so;;")) - (setenv "LUA_PATH" - (string-append out "/share/lua/" lua-version "/?.lua;;")) - (with-directory-excursion "regress" - (for-each (lambda (f) - (invoke "lua" f)) - (find-files "." "^[0-9].*\\.lua$")))) - #t))))) + #~(modify-phases %standard-phases + (delete 'configure) + (delete 'check) + (add-after 'install 'check + (lambda _ + (let ((lua-version #$(version-major+minor (package-version lua)))) + (setenv "LUA_CPATH" + (string-append #$output "/lib/lua/" lua-version "/?.so;;")) + (setenv "LUA_PATH" + (string-append #$output "/share/lua/" lua-version "/?.lua;;")) + (with-directory-excursion "regress" + (for-each (lambda (f) + (unless (member f (list + ;; This test is for luajit only + "./104-interposition-discarded.lua" + ;; needs cqueues, which needs ossl + "./148-custom-extensions.lua")) + (invoke "lua" f))) + (find-files "." "^[0-9].*\\.lua$"))))))))) (inputs (list lua openssl)) (home-page "https://25thandclement.com/~william/projects/luaossl.html") (synopsis "OpenSSL bindings for Lua") (description "The luaossl extension module for Lua provides comprehensive, -low-level bindings to the OpenSSL library, including support for certificate and -key management, key generation, signature verification, and deep bindings to the -distinguished name, alternative name, and X.509v3 extension interfaces. It also -binds OpenSSL's bignum, message digest, HMAC, cipher, and CSPRNG interfaces.") +low-level bindings to the OpenSSL library, including support for certificate +and key management, key generation, signature verification, and deep bindings +to the distinguished name, alternative name, and X.509v3 extension interfaces. +It also binds OpenSSL's bignum, message digest, HMAC, cipher, and CSPRNG +interfaces.") (license license:expat))) (define-public lua-ossl @@ -479,86 +485,87 @@ secure session between the peers.") (define (make-lua-cqueues name lua lua-ossl) (package (name name) - (version "20171014") + (version "20200726") (source (origin - (method url-fetch) - (uri (string-append "https://25thandclement.com/~william/" - "projects/releases/cqueues-" version ".tgz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/wahern/cqueues") + (commit (string-append "rel-" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1dabhpn6r0hlln8vx9hxm34pfcm46qzgpb2apmziwg5z51fi4ksb")))) + "17gwqndlga6gnishgs6wk8cvgwzanddr42yikkg2xd4nanhcg8z9")))) (build-system gnu-build-system) (arguments - `(#:modules ((guix build gnu-build-system) + (list + #:modules '((guix build gnu-build-system) (guix build utils) (ice-9 string-fun)) - #:make-flags - (let ((out (assoc-ref %outputs "out")) - (lua-api-version ,(version-major+minor (package-version lua)))) - (list ,(string-append "CC=" (cc-for-target)) - (string-append "LUA_APIS=" lua-api-version))) - #:phases - (modify-phases %standard-phases - (delete 'configure) - (delete 'check) - (replace 'install - (lambda* (#:key make-flags outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (apply invoke "make" "install" - (append make-flags - (list (string-append "DESTDIR=" out) - "prefix=")))))) - (add-after 'install 'check - (lambda* (#:key inputs outputs make-flags #:allow-other-keys) - (let* - ((lua-version ,(version-major+minor (package-version lua))) - (env-suffix (if (equal? lua-version "5.1") - "" - (string-append - "_" - (string-replace-substring lua-version "." "_")))) - - (lua-ossl (assoc-ref inputs "lua-ossl")) - (out (assoc-ref outputs "out")) - - (lua-cpath (lambda (p) - (string-append p "/lib/lua/" lua-version "/?.so"))) - (lua-path (lambda (p) - (string-append p "/share/lua/" lua-version "/?.lua")))) - ;; The test suite sets Lua-version-specific search-path variables - ;; when available so we must do the same, as these take - ;; precedence over the generic "LUA_CPATH" and "LUA_PATH" - (setenv (string-append "LUA_CPATH" env-suffix) - (string-append - (string-join (map lua-cpath (list out lua-ossl)) ";") - ";;")) - (setenv (string-append "LUA_PATH" env-suffix) - (string-append - (string-join (map lua-path (list out lua-ossl)) ";") - ";;")) - - ;; Skip regression tests we expect to fail - (with-directory-excursion "regress" - (for-each (lambda (f) - (rename-file f (string-append f ".skip"))) - (append - ;; Regression tests that require network - ;; connectivity - '("22-client-dtls.lua" - "30-starttls-completion.lua" - "62-noname.lua" - "153-dns-resolvers.lua") - - ;; Regression tests that require LuaJIT - '("44-resolvers-gc.lua" - "51-join-defunct-thread.lua") - - ;; Regression tests that require Lua 5.3 - (if (not (equal? lua-version "5.3")) - '("152-thread-integer-passing.lua") - '())))) - - (apply invoke "make" "check" make-flags))))))) + #:make-flags + #~(let ((lua-api-version #$(version-major+minor (package-version lua)))) + (list (string-append "CC=" #$(cc-for-target)) + (string-append "LUA_APIS=" lua-api-version))) + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (delete 'check) + (replace 'install + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "install" + (append make-flags + (list (string-append "DESTDIR=" #$output) + "prefix="))))) + (add-after 'install 'check + (lambda* (#:key make-flags #:allow-other-keys) + (let* + ((lua-version #$(version-major+minor (package-version lua))) + (env-suffix (if (equal? lua-version "5.1") + "" + (string-append + "_" + (string-replace-substring lua-version "." "_")))) + + (lua-cpath (lambda (p) + (string-append p "/lib/lua/" lua-version "/?.so"))) + (lua-path (lambda (p) + (string-append p "/share/lua/" lua-version "/?.lua")))) + ;; The test suite sets Lua-version-specific search-path variables + ;; when available so we must do the same, as these take + ;; precedence over the generic "LUA_CPATH" and "LUA_PATH" + (setenv (string-append "LUA_CPATH" env-suffix) + (string-append + (string-join (map lua-cpath (list #$output #$lua-ossl)) ";") + ";;")) + (setenv (string-append "LUA_PATH" env-suffix) + (string-append + (string-join (map lua-path (list #$output #$lua-ossl)) ";") + ";;")) + + ;; Skip regression tests we expect to fail + (with-directory-excursion "regress" + (for-each (lambda (f) + (rename-file f (string-append f ".skip"))) + (append + ;; Regression tests that require network + ;; connectivity + '("22-client-dtls.lua" + "30-starttls-completion.lua" + "62-noname.lua" + "153-dns-resolvers.lua") + + ;; Regression tests that require LuaJIT + '("44-resolvers-gc.lua" + "51-join-defunct-thread.lua" + ;; These both need the ffi module. + "73-starttls-buffering.lua" + "87-alpn-disappears.lua") + + ;; Regression tests that require Lua 5.3 + (if (not (equal? lua-version "5.3")) + '("152-thread-integer-passing.lua") + '())))) + + (apply invoke "make" "check" make-flags))))))) (native-inputs (list m4)) (inputs diff --git a/gnu/packages/markup.scm b/gnu/packages/markup.scm index 6d891ee313..2cc3d0415d 100644 --- a/gnu/packages/markup.scm +++ b/gnu/packages/markup.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2022 jgart <jgart@dismail.de> ;;; Copyright © 2022, 2024 Vinicius Monego <monego@posteo.net> ;;; Copyright © 2023 Zheng Junjie <873216071@qq.com> +;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,15 +45,21 @@ #:use-module (guix gexp) #:use-module (gnu packages) #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages databases) #:use-module (gnu packages libffi) + #:use-module (gnu packages imagemagick) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) + #:use-module (gnu packages perl-compression) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) - #:use-module (gnu packages web)) + #:use-module (gnu packages tex) + #:use-module (gnu packages web) + #:use-module (gnu packages xml)) (define-public hoedown (package @@ -126,6 +133,114 @@ convert it to structurally valid XHTML (or HTML).") (license (license:non-copyleft "file://License.text" "See License.text in the distribution.")))) +(define-public latexml + (package + (name "latexml") + (version "0.8.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/brucemiller/LaTeXML") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0lppm66fxadsbn73xh0nfqdi4y6d9j6xph1slvlp6ynrfbnn5p6s")))) + (build-system perl-build-system) + (arguments + (let ((wraplibs + (list "perl-archive-zip" + "perl-common-sense" + "perl-db-file" + "perl-encode-locale" + "perl-file-which" + "perl-getopt-long" + "perl-http-date" + "perl-http-message" + "perl-image-magick" + "perl-image-size" + "perl-io-string" + "perl-json-xs" + "perl-libwww" + "perl-mime-base64" + "perl-parse-recdescent" + "perl-pod-parser" + "perl-text-unidecode" + "perl-time-hires" + "perl-try-tiny" + "perl-types-serialiser" + "perl-uri" + "perl-xml-libxml" + "perl-xml-libxslt" + "perl-xml-sax-base"))) + (list + ;; some tests skip due to missing dependencies + #:phases + #~(modify-phases %standard-phases + (add-after 'install 'find-itself + ;; Fix run-time 'Can't locate [].pm in @INC' failure and remove + ;; need for extensive set of propagated inputs + (lambda* (#:key inputs outputs #:allow-other-keys) + (with-directory-excursion (string-append #$output "/bin") + (for-each + (lambda* (program) + (wrap-program program + `("PERL5LIB" ":" prefix + (,(string-append #$output "/lib/perl5/site_perl") + ,#$@(map (lambda (in) + (file-append + (this-package-input in) "/lib/perl5/site_perl")) + wraplibs))))) + (find-files "." ".*"))))))))) + (inputs + (list bash-minimal + libxml2 + libxslt + perl + perl-archive-zip + perl-common-sense + perl-db-file + perl-encode-locale + perl-file-which + perl-getopt-long + perl-http-date + perl-http-message + perl-image-magick + perl-image-size + perl-io-string + perl-json-xs + perl-libwww + perl-mime-base64 + perl-parse-recdescent + perl-pod-parser + perl-text-unidecode + perl-time-hires + perl-try-tiny + perl-types-serialiser + perl-uri + perl-xml-libxml + perl-xml-libxslt + perl-xml-sax-base)) + (native-inputs + (list texlive-bin + perl-test-more-utf8 + perl-extutils-manifest + perl-data-dumper + perl-ipc-run3 + perl-file-temp)) + (home-page "https://math.nist.gov/~BMiller/LaTeXML/") + (synopsis "LaTeX to XML, HTML, MathML, epub and Jats converter") + (description "This package provides a LaTeX converter, with the following goals: +@itemize +@item Faithful emulation of TEX’s behaviour; +@item Easily extensible; +@item Lossless, preserving both semantic and presentation cues; +@item Use an abstract LATEX-like, extensible, document type; +@item Infer the semantics of mathematical content +@end itemize") + (license license:cc0))) + (define-public lowdown (package (name "lowdown") diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 24a9810c43..20bdb713b5 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2017 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2021 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2021, 2024 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2018-2021, 2023 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Nikita <nikita@n0.is> ;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca> @@ -1581,8 +1581,8 @@ protocols.") (license license:x11))) (define (prosody-module module-name) - (let ((changeset "fba64b043c52") - (revision "2") + (let ((changeset "66e7d46b1d4b") + (revision "3") (package-name (string-append "prosody-" (string-replace-substring @@ -1601,7 +1601,7 @@ protocols.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "1nvka8s3zqs97jqsknhp2q956rrdga1qaxa1y3i0h8zx3g9vgdch")))) + "0wyxvbf335jaaz850m2q6jj6ix4hjlhlh28kzk7462qa9fcw5p7s")))) (build-system copy-build-system) (arguments `(#:install-plan '((,(string-append module-name "/") ".")))) @@ -1611,6 +1611,56 @@ protocols.") (description #f) (license (package-license prosody))))) +(define-public prosody-cloud-notify + (package + (inherit (prosody-module "mod_cloud_notify")) + (synopsis "XEP-0357: Push Notifications") + (description "This module implements XEP-0357: Push Notifications. + +Some platforms, notably Apple’s iOS and many versions of Android, impose +limits that prevent applications from running or accessing the network in the +background. This makes it difficult or impossible for an XMPP application to +remain reliably connected to a server to receive messages. + +In order for messaging and other apps to receive notifications, the OS vendors +run proprietary servers that their OS maintains a permanent connection to in +the background. Then they provide APIs to application developers that allow +sending notifications to specific devices via those servers. + +When you connect to your server with a client that requires push +notifications, it will use this module to set up a “push registration”. When +you receive a message but your device is not connected to the server, this +module will generate a notification and send it to the push gateway operated +by your application’s developers). Their gateway will then connect to your +device’s OS vendor and ask them to forward the notification to your device. +When your device receives the notification, it will display it or wake up the +app so it can connect to XMPP and receive any pending messages."))) + +(define-public prosody-cloud-notify-encrypted + (package + (inherit (prosody-module "mod_cloud_notify_encrypted")) + (propagated-inputs (list lua5.2-ossl)) + (synopsis "Custom extension to XEP-0357: Push Notifications") + (description "This module implements support for a Encrypted Push +Notifications, a custom extension to XEP-0357: Push Notifications."))) + +(define-public prosody-cloud-notify-filters + (package + (inherit (prosody-module "mod_cloud_notify_filters")) + (synopsis "Filters for XEP-0357: Push Notifications") + (description "This module implements support for a group of push +notification extensions by the Tigase team that allow a client to specify +filters to be applied to push notifications. It is a custom extension to +XEP-0357: Push Notifications."))) + +(define-public prosody-cloud-notify-priority-tag + (package + (inherit (prosody-module "mod_cloud_notify_priority_tag")) + (synopsis "Tigase priorities for XEP-0357: Push Notifications") + (description "This module implements support for a Tigase XMPP extension, +Priority of notifications. It is a custom extension to XEP-0357: Push +Notifications."))) + (define-public prosody-http-upload (package (inherit (prosody-module "mod_http_upload")) @@ -1618,6 +1668,15 @@ protocols.") (description "This module implements XEP-0363: it allows clients to upload files over HTTP."))) +(define-public prosody-muc-offline-delivery + (package + (inherit (prosody-module "mod_muc_offline_delivery")) + (synopsis "Deliver MUC messages to users who are not in the room") + (description "This module implements support for sending messages in a MUC +to affiliated users who are not in the room. This is a custom extension by +Tigase to allow push notifications from MUCs to users who are not currently +connected."))) + (define-public prosody-smacks (package (inherit (prosody-module "mod_smacks")) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index a4feada47d..ceac94a592 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -191,6 +191,7 @@ #:use-module (gnu packages terminals) #:use-module (gnu packages tex) #:use-module (gnu packages texinfo) + #:use-module (gnu packages textutils) #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) @@ -599,6 +600,64 @@ you create custom user interfaces for your MIDI hardware.") license:gpl3 ;JUCE license:bsd-3))))) +(define-public qmmp + (package + (name "qmmp") + (version "2.1.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://qmmp.ylsoftware.com/files/" + (version-major+minor version) "/" + "qmmp-" version ".tar.bz2")) + (sha256 + (base32 "1jpflf17198ascaqmxla6ajb69bnj8zzngk32vdyyw5443kshylj")))) + (build-system qt-build-system) + (arguments + (list #:qtbase qtbase + #:tests? #f)) ; there are no tests + (inputs + ;; Missing optional inputs: + ;; libsidplay2 ; input plugin + ;; projectm ; visualization plugin + (list alsa-lib + curl + enca + faad2 + ffmpeg + flac + jack-2 + libarchive + libbs2b + libcddb + libcdio-paranoia + libgme + libmad + libshout + libsndfile + libvorbis + libxmp + opusfile + opus + pipewire + pulseaudio + qtmultimedia + qttools + soxr + taglib + wavpack + wildmidi)) + (native-inputs + (list pkg-config)) + (home-page "https://qmmp.ylsoftware.com") + (synopsis "Qt-based music player") + (description "Music player with support for most common audio formats, and +plugins for various additional features such as visualization, effects and +online service integration. In addition to a Qt-based interface it supports +Winamp/XMMS skins.") + (license (list license:gpl2+ ; code + license:cc-by-sa4.0)))) ; src/plugins/Ui/skinned/glare + (define-public strawberry (package (name "strawberry") diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 80b17098c7..57a06f836b 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -37,6 +37,7 @@ ;;; Copyright © 2023 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de> ;;; Copyright © 2023 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2023 Jake Leporte <jakeleporte@outlook.com> +;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -5554,6 +5555,25 @@ Hook::LexWrap implements wrappers in such a way that the standard caller function works correctly within the wrapped subroutine.") (license license:perl-license))) +(define-public perl-image-size + (package + (name "perl-image-size") + (version "3.300") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://cpan/authors/id/R/RJ/RJRAY/Image-Size-" + version ".tar.gz")) + (sha256 + (base32 "0sq2kwdph55h4adx50fmy86brjkkv8grsw33xrhf1k9icpwb3jak")))) + (build-system perl-build-system) + (native-inputs (list perl-module-build)) + (home-page "https://metacpan.org/release/Image-Size") + (synopsis "Extract height/width from images") + (description "This package provides a simple Perl library to extract +height/width from images.") + (license license:perl-license))) + (define-public perl-importer (package (name "perl-importer") diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 070696d6ba..a91a2d693d 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2023 Juliana Sims <juli@incana.org> ;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2024 Skylar Hill <stellarskylark@posteo.net> +;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,7 +45,8 @@ #:use-module (gnu packages) #:use-module ((guix licenses) #:select (gpl2 gpl2+ lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3+ asl2.0 - bsd-3 cc-by-sa4.0 non-copyleft expat public-domain)) + bsd-0 bsd-3 cc-by-sa4.0 non-copyleft expat + public-domain)) #:use-module (guix gexp) #:use-module (guix packages) #:use-module (guix download) @@ -855,6 +857,64 @@ can be added and values can be defined in the Scheme environment. Being quite a small program, it is easy to comprehend, get to grips with, and use.") (license bsd-3))) ; there are no licence headers +(define-public tr7 + (package + (name "tr7") + (version "1.0.10") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/jobol/tr7") + (commit (string-append "v" version)))) + (sha256 + (base32 "0n77fkm5kcv2pmwbw5fl8r00aarw8da8gkd9d1ki5fn9kbl4fyk2")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (outputs '("out" "doc")) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (replace 'configure + (lambda _ + (substitute* "Makefile" + (("PREFIX = /usr/local") + (string-append "PREFIX=" #$output)) + (("ALL = \\$\\(LIBSTA\\) \\$\\(TR7I\\) tags") + "ALL = $(LIBSTA) $(TR7I)")))) + (replace 'build + (lambda _ + (setenv "CC" #$(cc-for-target)) + (invoke "make"))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "make" "test")))) + (replace 'install + (lambda _ + (let* ((share (string-append #$output "/share")) + (doc (string-append #$output:doc "/share/doc/")) + (bin (string-append #$output "/bin")) + (lib (string-append #$output "/lib/")) + (tr7 (string-append share "/tr7")) + (libs (string-append tr7 "/libs"))) + (for-each mkdir-p (list tr7 libs bin lib doc)) + (copy-file "tr7i" (string-append bin "/tr7i")) + (copy-file "libtr7.a" (string-append lib "/libtr7.a")) + (copy-file "r7rs.pdf" (string-append doc "/r7rs.pdf")) + (copy-recursively "tr7libs" libs))))))) + (home-page "https://gitlab.com/jobol/tr7") + (synopsis "Embedded R7RS small Scheme interpreter") + (description + "TR7 is a lightweight Scheme interpreter that implements the revision +R7RS small of scheme programming language. + +It is meant to be used as an embedded scripting interpreter for other +programs. A lot of functionality in TR7 is included conditionally, to allow +developers freedom in balancing features and footprint.") + (license bsd-0))) + (define-public stalin (let ((commit "ed1c9e339c352b7a6fee40bb2a47607c3466f0be")) ;; FIXME: The Stalin "source" contains C code generated by itself: diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 19f128d45f..0c7c496c82 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -1538,6 +1538,33 @@ shell and OS versions so the script writer can be confident that the script will work.") (license license:lgpl2.1))) +(define-public trac + (package + (name "trac") + (version "1.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Trac" version)) + (sha256 + (base32 "013kqa93kd1giswir9qsasm5080x5x5x4ab86ky8zmkhyrhkrmv1")))) + (build-system pyproject-build-system) + (arguments + (list #:test-flags #~(list "-k" + ;; XXX: these two tests fail, check why. + (string-append + "not test_remove_composite_keys" + " and not test_remove_simple_keys")))) + (native-inputs (list python-psycopg2 python-pymysql python-pytest)) + (propagated-inputs (list python-jinja2 python-multipart)) + (home-page "https://trac.edgewall.org") + (synopsis "Integrated SCM, wiki, issue tracker and project environment") + (description "Trac is a minimalistic web-based software project management +and bug/issue tracking system. It provides an interface to the Git and +Subversion revision control systems, an integrated wiki, flexible issue +tracking and convenient report facilities.") + (license license:bsd-3))) + (define-public git-flow (package (name "git-flow") @@ -2812,6 +2839,34 @@ output of the @code{git} command.") modification time.") (license license:bsd-2))) +(define-public fnc + (package + (name "fnc") + (version "0.16") + (source (origin + (method url-fetch) + (uri + (string-append "https://fnc.bsdbox.org/uv/dl/fnc-" + version ".tar.gz")) + (sha256 + (base32 + "1npnbdz5i4p61ri76vx6awggbc0q19y8b26l3sy4wxmaxkly7gwy")))) + (build-system gnu-build-system) + (arguments + (list + #:phases #~(modify-phases %standard-phases + (delete 'configure)) + #:tests? #f ; no tests + #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "PREFIX=" #$output)))) + (inputs (list ncurses zlib sqlite-next)) + (home-page "https://fnc.bsdbox.org") + (synopsis "Interactive text-based user interface for Fossil") + (description "fnc uses ncurses and libfossil to create a fossil user +interface in the terminal. It can view local changes at the hunk level to +prepare atomic commits.") + (license license:isc))) + (define-public myrepos (package (name "myrepos") @@ -4118,3 +4173,9 @@ comes as a command line app and also an Emacs interface.") (description "Compute various size metrics for a Git repository, flagging those that might cause problems or inconvenience.") (license license:expat))) + +;;; +;;; Avoid adding new packages to the end of this file. To reduce the chances +;;; of a merge conflict, place them above by existing packages with similar +;;; functionality or similar names. +;;; diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 4e76e705e1..b5e9dca524 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -69,6 +69,7 @@ ;;; Copyright © 2024 Timotej Lazar <timotej.lazar@araneo.si> ;;; Copyright © 2024 Ahmad Draidi <a.r.draidi@redscript.org> ;;; Copyright © 2024 chris <chris@bumblehead.com> +;;; Copyright © 2024 Erik Eduardo Alonso Hernández <erik@erikeduardo.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1384,6 +1385,41 @@ Keybinder works with GTK-based applications using the X Window System.") (define-public keybinder-3.0 (deprecated-package "keybinder-3.0" keybinder)) +(define-public sandbar + (package + (name "sandbar") + (version "0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kolunmi/sandbar") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0912cr2q2kg4nqdwy978kpmdcj2cjz3gnlcb28ny9z3cprxvyvxq")))) + (build-system gnu-build-system) + (arguments + (list #:phases + #~(modify-phases %standard-phases + (delete 'configure)) ;no configure script + #:tests? #f ;no check target + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + (string-append "PREFIX=" #$output)))) + (inputs (list fcft wayland)) + (native-inputs (list pkg-config wayland-protocols)) + (synopsis "DWM-like bar for the River Wayland compositor") + (description "Sandbar is a minimalist DWM-like bar designed for River, +a Wayland compositor. It is triggered through commands sent via standard +input, providing extensive customization options. This behavior allows users +to dynamically adjust status text, visibility, and bar location, making +Sandbar an ideal choice for those seeking a lightweight and hackable bar +solution in their Wayland environment.") + ;; LICENSE LICENSE.dtao + (license (list license:gpl3 license:expat)) + (home-page "https://github.com/kolunmi/sandbar"))) + (define-public spectrwm (package (name "spectrwm") diff --git a/guix/channels.scm b/guix/channels.scm index 66f3122f79..51024dcad4 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -20,10 +20,19 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix channels) - #:use-module (git) ;TODO: autoload + #:autoload (git commit) (commit-lookup + commit-id) + #:autoload (git oid) (oid->string + string->oid) + #:autoload (git object) (object-id) + #:autoload (git errors) (GIT_ENOTFOUND) + #:autoload (git structs) (git-error-code) #:autoload (guix git) (update-cached-checkout url+commit->name commit-difference + repository-info + commit-short-id + tag->commit with-repository) #:autoload (guix git-authenticate) (authenticate-repository) #:autoload (guix openpgp) (openpgp-public-key-fingerprint @@ -43,10 +52,10 @@ #:use-module (srfi srfi-1) #:use-module (srfi srfi-2) #:use-module (srfi srfi-9) - #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) + #:use-module (srfi srfi-71) #:autoload (guix describe) (current-channels) ;XXX: circular dep #:autoload (guix self) (whole-package make-config.scm) #:autoload (guix inferior) (gexp->derivation-in-inferior) ;FIXME: circular dep @@ -207,18 +216,13 @@ introduction, add it." channel that uses that repository and the commit HEAD currently points to; use INTRODUCTION as the channel's introduction. Return #f if no Git repository could be found at DIRECTORY or one of its ancestors." - (catch 'git-error - (lambda () - (with-repository (repository-discover directory) repository - (let* ((head (repository-head repository)) - (commit (oid->string (reference-target head)))) - (channel - (inherit %default-guix-channel) - (url (repository-working-directory repository)) - (commit commit) - (branch (reference-shorthand head)) - (introduction introduction))))) - (const #f))) + (let ((directory commit branch (repository-info directory))) + (channel + (inherit %default-guix-channel) + (url directory) + (commit commit) + (branch branch) + (introduction introduction)))) (define-record-type <channel-instance> (channel-instance channel commit checkout) @@ -343,9 +347,6 @@ result is unspecified." (apply-patch patch checkout)) (loop rest))))) -(define commit-short-id - (compose (cut string-take <> 7) oid->string commit-id)) - (define* (authenticate-channel channel checkout commit #:key (keyring-reference-prefix "origin/")) "Authenticate the given COMMIT of CHANNEL, available at CHECKOUT, a @@ -411,12 +412,11 @@ their relation. When AUTHENTICATE? is false, CHANNEL is not authenticated." (and (string=? (basename file) ".git") (eq? 'directory (stat:type stat)))) - (let-values (((channel) - (ensure-default-introduction channel)) - ((checkout commit relation) - (update-cached-checkout (channel-url channel) - #:ref (channel-reference channel) - #:starting-commit starting-commit))) + (let ((channel (ensure-default-introduction channel)) + (checkout commit relation + (update-cached-checkout (channel-url channel) + #:ref (channel-reference channel) + #:starting-commit starting-commit))) (when relation (validate-pull channel starting-commit commit relation)) @@ -1155,14 +1155,8 @@ the field its 'tag' refers to. A 'git-error' exception is raised if the tag cannot be found." (if (channel-news-entry-commit entry) entry - (let* ((tag (channel-news-entry-tag entry)) - (reference (reference-lookup repository - (string-append "refs/tags/" tag))) - (target (reference-target reference)) - (oid (let ((obj (object-lookup repository target))) - (if (= OBJ-TAG (object-type obj)) ;annotated tag? - (tag-target-id (tag-lookup repository target)) - target)))) + (let* ((tag (channel-news-entry-tag entry)) + (oid (object-id (tag->commit repository tag)))) (channel-news-entry (oid->string oid) tag (channel-news-entry-title entry) (channel-news-entry-body entry))))) diff --git a/guix/derivations.scm b/guix/derivations.scm index 9fec7f4f0b..a91c1ae984 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012-2021, 2023 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012-2021, 2023-2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017 Mathieu Lirzin <mthl@gnu.org> ;;; ;;; This file is part of GNU Guix. @@ -32,7 +32,7 @@ #:use-module (ice-9 rdelim) #:use-module (ice-9 vlist) #:use-module (guix store) - #:use-module (guix utils) + #:autoload (guix utils) (%current-system string-replace-substring) #:use-module (guix base16) #:use-module (guix memoization) #:use-module (guix combinators) @@ -40,7 +40,7 @@ #:use-module (guix diagnostics) #:use-module (guix i18n) #:use-module (guix monads) - #:use-module (gcrypt hash) + #:autoload (gcrypt hash) (sha256) #:use-module (guix sets) #:export (<derivation> derivation? diff --git a/guix/discovery.scm b/guix/discovery.scm index 0edc7fd1ae..2febfcdcb7 100644 --- a/guix/discovery.scm +++ b/guix/discovery.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012-2019, 2024 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,7 +20,7 @@ #:use-module (guix i18n) #:use-module (guix modules) #:use-module (guix combinators) - #:use-module (guix build syscalls) + #:autoload (guix build syscalls) (scandir*) #:use-module (srfi srfi-1) #:use-module (ice-9 match) #:use-module (ice-9 vlist) diff --git a/guix/download.scm b/guix/download.scm index 3dfe143e9f..b251e1f6c0 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -31,8 +31,8 @@ #:autoload (guix build download) (url-fetch) #:use-module (guix monads) #:use-module (guix gexp) - #:use-module (guix utils) - #:use-module (web uri) + #:autoload (guix build utils) (call-with-temporary-output-file) + #:autoload (web uri) (string->uri uri-scheme uri-path) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:export (%download-methods diff --git a/guix/git.scm b/guix/git.scm index cbcdb1904b..d75a301f98 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com> -;;; Copyright © 2018-2023 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018-2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2021 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2021 Marius Bakke <marius@gnu.org> ;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be> @@ -27,14 +27,13 @@ #:use-module (guix i18n) #:use-module (guix base32) #:use-module (guix cache) - #:use-module (gcrypt hash) + #:autoload (gcrypt hash) (sha256) #:use-module ((guix build utils) #:select (mkdir-p delete-file-recursively invoke/quiet)) #:use-module (guix store) #:use-module (guix utils) #:use-module (guix records) - #:use-module ((guix build syscalls) - #:select (terminal-string-width)) + #:autoload (guix build syscalls) (terminal-string-width) #:use-module (guix gexp) #:autoload (guix git-download) (git-reference-url git-reference-commit git-reference-recursive?) @@ -59,6 +58,7 @@ with-repository with-git-error-handling false-if-git-not-found + repository-info update-cached-checkout url+commit->name latest-repository-commit @@ -66,6 +66,8 @@ commit-relation commit-descendant? commit-id? + commit-short-id + tag->commit remote-refs @@ -232,6 +234,22 @@ is a tag name. This is based on a simple heuristic so use with care!" (and (= (string-length str) 40) (string-every char-set:hex-digit str))) +(define commit-short-id + (compose (cut string-take <> 7) oid->string commit-id)) + +(define (tag->commit repository tag) + "Resolve TAG in REPOSITORY and return the corresponding object, usually a +commit." + (let* ((oid (reference-name->oid repository + (string-append "refs/tags/" tag))) + (obj (object-lookup repository oid))) + ;; OID may designate an "annotated tag" object or a "commit" object. + ;; Return the commit object in both cases. + (if (= OBJ-TAG (object-type obj)) + (object-lookup repository + (tag-target-id (tag-lookup repository oid))) + obj))) + (define (resolve-reference repository ref) "Resolve the branch, commit or tag specified by REF, and return the corresponding Git object." @@ -278,15 +296,7 @@ corresponding Git object." ;; There's no such tag, so it must be a commit ID. (resolve `(commit . ,str))))))) (('tag . tag) - (let* ((oid (reference-name->oid repository - (string-append "refs/tags/" tag))) - (obj (object-lookup repository oid))) - ;; OID may designate an "annotated tag" object or a "commit" object. - ;; Return the commit object in both cases. - (if (= OBJ-TAG (object-type obj)) - (object-lookup repository - (tag-target-id (tag-lookup repository oid))) - obj)))))) + (tag->commit repository tag))))) (define (switch-to-ref repository ref) "Switch to REPOSITORY's branch, commit or tag specified by REF. Return the @@ -330,6 +340,22 @@ dynamic extent of EXP." (lambda (key err) (report-git-error err)))) +(define (repository-info directory) + "Open the Git repository in DIRECTORY or one of its parent and return three +values: the working directory of that repository, its checked out commit ID, +and its checked out reference (such as a branch name). Return #f (three +values) if DIRECTORY does not hold a readable Git repository." + (catch 'git-error + (lambda () + (with-repository (repository-discover directory) repository + (let* ((head (repository-head repository)) + (commit (oid->string (reference-target head)))) + (values (repository-working-directory repository) + commit + (reference-shorthand head))))) + (lambda _ + (values #f #f #f)))) + (define* (update-submodules repository #:key (log-port (current-error-port)) (fetch-options #f)) diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm index bbaee73a06..79a51d3300 100644 --- a/guix/import/hackage.scm +++ b/guix/import/hackage.scm @@ -8,7 +8,7 @@ ;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev> ;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com> ;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com> -;;; Copyright © 2023 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2023-2024 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -47,7 +47,7 @@ #:use-module (guix upstream) #:use-module (guix packages) #:autoload (guix build-system haskell) (hackage-uri) - #:use-module ((guix utils) #:select (call-with-temporary-output-file)) + #:autoload (guix build utils) (call-with-temporary-output-file) #:export (%hackage-url hackage->guix-package hackage-recursive-import diff --git a/guix/import/hexpm.scm b/guix/import/hexpm.scm index 628a44ff24..71a54ba973 100644 --- a/guix/import/hexpm.scm +++ b/guix/import/hexpm.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2016 David Craven <david@craven.ch> -;;; Copyright © 2017, 2019-2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2017, 2019-2021, 2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2019 Martin Becze <mjbecze@riseup.net> ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020-2022 Hartmut Goebel <h.goebel@crazy-compilers.com> @@ -28,10 +28,11 @@ #:use-module ((guix build utils) #:select ((package-name->name+version . hyphen-package-name->name+version) - dump-port)) + dump-port + call-with-temporary-output-file)) #:use-module (guix packages) #:use-module (guix upstream) - #:use-module (guix utils) + #:autoload (guix utils) (version>? file-sans-extension) #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) diff --git a/guix/import/opam.scm b/guix/import/opam.scm index 86e82cde59..a7f8092507 100644 --- a/guix/import/opam.scm +++ b/guix/import/opam.scm @@ -31,7 +31,9 @@ #:use-module ((srfi srfi-26) #:select (cut)) #:use-module (srfi srfi-34) #:use-module ((web uri) #:select (string->uri uri->string)) - #:use-module ((guix build utils) #:select (dump-port find-files mkdir-p)) + #:use-module ((guix build utils) + #:select (dump-port find-files mkdir-p + call-with-temporary-output-file)) #:use-module (guix build-system) #:use-module (guix i18n) #:use-module (guix diagnostics) @@ -39,8 +41,7 @@ #:use-module (guix packages) #:use-module (guix upstream) #:use-module ((guix utils) #:select (cache-directory - version>? - call-with-temporary-output-file)) + version>?)) #:use-module ((guix import utils) #:select (beautify-description guix-hash-url recursive-import diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index 1a3070fb36..6719fde330 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 David Thompson <davet@gnu.org> ;;; Copyright © 2015 Cyril Roelandt <tipecaml@gmail.com> -;;; Copyright © 2015-2017, 2019-2023 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015-2017, 2019-2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2018, 2023 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com> @@ -52,7 +52,8 @@ #:select ((package-name->name+version . hyphen-package-name->name+version) find-files - invoke)) + invoke + call-with-temporary-output-file)) #:use-module (guix import utils) #:use-module (guix import json) #:use-module (json) diff --git a/guix/nar.scm b/guix/nar.scm index cabcc4bbbf..c7842399dc 100644 --- a/guix/nar.scm +++ b/guix/nar.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012-2016, 2018-2020, 2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. @@ -19,7 +19,7 @@ (define-module (guix nar) #:use-module (guix serialization) - #:use-module (guix build syscalls) + #:autoload (guix build syscalls) (lock-file unlock-file) #:use-module ((guix build utils) #:select (delete-file-recursively with-directory-excursion)) diff --git a/guix/packages.scm b/guix/packages.scm index 930b1a3b0e..bd72b284b1 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012-2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2017, 2018, 2019 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Alex Kost <alezost@gmail.com> @@ -27,8 +27,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix packages) - #:use-module ((guix build utils) #:select (compressor tarball? - strip-store-file-name)) + #:autoload (guix build utils) (compressor tarball? strip-store-file-name) #:use-module (guix utils) #:use-module (guix records) #:use-module (guix store) diff --git a/guix/scripts.scm b/guix/scripts.scm index 5d11ce7fe9..c4849816ea 100644 --- a/guix/scripts.scm +++ b/guix/scripts.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2017, 2018, 2019, 2020, 2021, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013-2015, 2017-2021, 2021, 2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Deck Pickard <deck.r.pickard@gmail.com> ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org> @@ -29,7 +29,10 @@ #:use-module (guix packages) #:use-module (guix derivations) #:autoload (guix describe) (current-profile-date) - #:use-module (guix build syscalls) + #:autoload (guix build syscalls) (statfs + file-system-block-size + file-system-blocks-available + file-system-block-count) #:use-module (srfi srfi-1) #:use-module (srfi srfi-19) #:use-module (srfi srfi-37) diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 05f022a92e..da4859eeaa 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012-2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net> @@ -45,7 +45,7 @@ #:use-module (guix platform) #:use-module ((guix status) #:select (with-status-verbosity)) #:use-module ((guix progress) #:select (current-terminal-columns)) - #:use-module ((guix build syscalls) #:select (terminal-columns)) + #:autoload (guix build syscalls) (terminal-columns) #:use-module (guix transformations) #:export (log-url diff --git a/guix/scripts/describe.scm b/guix/scripts/describe.scm index 449ab4b252..70ae84e9f6 100644 --- a/guix/scripts/describe.scm +++ b/guix/scripts/describe.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018, 2019, 2020, 2021, 2023 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2018, 2019, 2020, 2021, 2023, 2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech> ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> @@ -37,7 +37,7 @@ #:use-module (ice-9 match) #:use-module (ice-9 format) #:autoload (ice-9 pretty-print) (pretty-print) - #:use-module (web uri) + #:autoload (web uri) (string->uri uri-host) #:export (display-profile-content channel-commit-hyperlink diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm index 67020a2aab..2260bcf985 100644 --- a/guix/scripts/system.scm +++ b/guix/scripts/system.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014-2023 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014-2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016, 2017, 2018 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2017, 2019 Mathieu Othacehe <m.othacehe@gmail.com> @@ -37,7 +37,7 @@ #:autoload (guix store database) (register-valid-path store-database-file call-with-database) #:autoload (guix build store-copy) (copy-store-item) - #:use-module (guix describe) + #:autoload (guix describe) (current-profile) #:use-module (guix gexp) #:use-module (guix derivations) #:use-module (guix diagnostics) @@ -47,7 +47,10 @@ #:use-module (guix records) #:use-module (guix profiles) #:use-module (guix scripts) - #:use-module (guix channels) + #:autoload (guix channels) (channel-name + channel-url + channel-branch + channel-commit) #:use-module (guix scripts build) #:autoload (guix scripts package) (delete-generations delete-matching-generations @@ -57,7 +60,8 @@ graph-backend-name lookup-backend) #:use-module (guix scripts system reconfigure) #:use-module (guix build utils) - #:use-module (guix progress) + #:autoload (guix progress) (progress-reporter/bar + call-with-progress-reporter) #:use-module ((guix docker) #:select (%docker-image-max-layers)) #:use-module (gnu build image) #:use-module (gnu build install) diff --git a/guix/store.scm b/guix/store.scm index 1229198b09..a238cb627a 100644 --- a/guix/store.scm +++ b/guix/store.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012-2023 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012-2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2019, 2020 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de> @@ -29,7 +29,7 @@ #:use-module (guix records) #:use-module (guix base16) #:use-module (guix base32) - #:use-module (gcrypt hash) + #:autoload (gcrypt hash) (sha256) #:use-module (guix profiling) #:autoload (guix build syscalls) (terminal-columns) #:autoload (guix build utils) (dump-port) @@ -49,7 +49,12 @@ #:use-module (ice-9 popen) #:autoload (ice-9 threads) (current-processor-count) #:use-module (ice-9 format) - #:use-module (web uri) + #:autoload (web uri) (uri? + string->uri + uri-scheme + uri-host + uri-port + uri-path) #:export (%daemon-socket-uri %gc-roots-directory %default-substitute-urls @@ -764,11 +769,8 @@ encoding conversion errors." ;; Default list of substituters. This is *not* the list baked in ;; 'guix-daemon', but it is used by 'guix-service-type' and and a couple of ;; clients ('guix build --log-file' uses it.) - (map (if (false-if-exception (resolve-interface '(gnutls))) - (cut string-append "https://" <>) - (cut string-append "http://" <>)) - '("bordeaux.guix.gnu.org" - "ci.guix.gnu.org"))) + '("https://bordeaux.guix.gnu.org" + "https://ci.guix.gnu.org")) (define (current-user-name) "Return the name of the calling user." diff --git a/guix/ui.scm b/guix/ui.scm index 34ff210930..d82fa533cc 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -1473,23 +1473,9 @@ converted to a space; sequences of more than one line break are preserved." ;;; (define %text-width - ;; '*line-width*' was introduced in Guile 2.2.7/3.0.1. On older versions of - ;; Guile, monkey-patch 'wrap*' below. - (if (defined? '*line-width*) - (let ((parameter (fluid->parameter *line-width*))) - (parameter (terminal-columns)) - parameter) - (make-parameter (terminal-columns)))) - -(unless (defined? '*line-width*) ;Guile < 2.2.7 - (set! (@@ (texinfo plain-text) wrap*) - ;; XXX: Monkey patch this private procedure to let 'package->recutils' - ;; parameterize the fill of description field correctly. - (lambda strings - (let ((indent (fluid-ref (@@ (texinfo plain-text) *indent*)))) - (fill-string (string-concatenate strings) - #:line-width (%text-width) #:initial-indent indent - #:subsequent-indent indent))))) + ;; '*line-width*' was introduced in Guile 2.2.7/3.0.1. Keep this alias for + ;; backward-compatibility and for convenience. + (fluid->parameter *line-width*)) (define (texi->plain-text str) "Return a plain-text representation of texinfo fragment STR." @@ -1535,7 +1521,7 @@ followed by \"+ \", which makes for a valid multi-line field value in the '() str))) -(define* (package->recutils p port #:optional (width (%text-width)) +(define* (package->recutils p port #:optional (width (terminal-columns)) #:key (hyperlinks? (supports-hyperlinks? port)) (extra-fields '()) diff --git a/guix/utils.scm b/guix/utils.scm index 29ad09d9f7..d8ce6ed886 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012-2022 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012-2022, 2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net> @@ -47,11 +47,12 @@ #:use-module (rnrs io ports) ;need 'port-position' etc. #:use-module ((rnrs bytevectors) #:select (bytevector-u8-set!)) #:use-module (guix memoization) - #:use-module ((guix build utils) - #:select (dump-port mkdir-p delete-file-recursively - call-with-temporary-output-file %xz-parallel-args)) - #:use-module ((guix build syscalls) #:select (mkdtemp! fdatasync)) - #:use-module ((guix combinators) #:select (fold2)) + #:autoload (guix build utils) (dump-port + mkdir-p + delete-file-recursively + %xz-parallel-args) + #:autoload (guix build syscalls) (mkdtemp! fdatasync) + #:autoload (guix combinators) (fold2) #:use-module (guix diagnostics) ;<location>, &error-location, etc. #:use-module (ice-9 format) #:use-module ((ice-9 iconv) #:prefix iconv:) @@ -76,9 +77,7 @@ &fix-hint fix-hint? - condition-fix-hint - - call-with-temporary-output-file) + condition-fix-hint) #:export (strip-keyword-arguments default-keyword-arguments substitute-keyword-arguments diff --git a/tests/cpio.scm b/tests/cpio.scm index 832101d1bb..35a704822b 100644 --- a/tests/cpio.scm +++ b/tests/cpio.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2022 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2022, 2024 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,8 +19,8 @@ (define-module (test-cpio) #:use-module (guix cpio) #:use-module (guix tests) - #:use-module ((guix build utils) #:select (which)) - #:use-module ((guix utils) #:select (call-with-temporary-output-file)) + #:use-module ((guix build utils) + #:select (which call-with-temporary-output-file)) #:use-module (ice-9 match) #:use-module (ice-9 popen) #:use-module (rnrs io ports) diff --git a/tests/egg.scm b/tests/egg.scm index a7d3378dd7..c74f954683 100644 --- a/tests/egg.scm +++ b/tests/egg.scm @@ -24,8 +24,9 @@ #:use-module (gcrypt hash) #:use-module (guix tests) #:use-module ((guix build syscalls) #:select (mkdtemp!)) - #:use-module ((guix build utils) #:select (delete-file-recursively mkdir-p which)) - #:use-module ((guix utils) #:select (call-with-temporary-output-file)) + #:use-module ((guix build utils) + #:select (delete-file-recursively mkdir-p which + call-with-temporary-output-file)) #:use-module (srfi srfi-1) #:use-module (srfi srfi-64) #:use-module (web uri) diff --git a/tests/opam.scm b/tests/opam.scm index 832fea1d9b..f444ef302e 100644 --- a/tests/opam.scm +++ b/tests/opam.scm @@ -24,8 +24,9 @@ #:use-module (gcrypt hash) #:use-module (guix tests) #:use-module ((guix build syscalls) #:select (mkdtemp!)) - #:use-module ((guix build utils) #:select (delete-file-recursively mkdir-p which)) - #:use-module ((guix utils) #:select (call-with-temporary-output-file)) + #:use-module ((guix build utils) + #:select (delete-file-recursively mkdir-p which + call-with-temporary-output-file)) #:use-module (srfi srfi-1) #:use-module (srfi srfi-64) #:use-module (web uri) diff --git a/tests/publish.scm b/tests/publish.scm index efb5698bed..d5ec3c954f 100644 --- a/tests/publish.scm +++ b/tests/publish.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson <davet@gnu.org> ;;; Copyright © 2020 by Amar M. Singh <nly@disroot.org> -;;; Copyright © 2016-2022 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016-2022, 2024 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,7 +25,8 @@ #:use-module (guix scripts publish) #:use-module (guix tests) #:use-module (guix config) - #:use-module (guix utils) + #:use-module ((guix utils) #:select (call-with-temporary-directory)) + #:use-module ((guix build utils) #:select (call-with-temporary-output-file)) #:use-module (gcrypt hash) #:use-module (guix store) #:use-module (guix derivations) diff --git a/tests/store-database.scm b/tests/store-database.scm index 67d464386d..177c776b6c 100644 --- a/tests/store-database.scm +++ b/tests/store-database.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2017-2018, 2020-2021, 2024 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,9 +21,9 @@ #:use-module (guix store) #:use-module (guix store database) #:use-module (guix build store-copy) - #:use-module ((guix utils) #:select (call-with-temporary-output-file)) #:use-module ((guix build utils) - #:select (mkdir-p delete-file-recursively)) + #:select (mkdir-p delete-file-recursively + call-with-temporary-output-file)) #:use-module (srfi srfi-26) #:use-module (srfi srfi-64)) diff --git a/tests/utils.scm b/tests/utils.scm index 52f3b58ede..462e43e2b1 100644 --- a/tests/utils.scm +++ b/tests/utils.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012-2021, 2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> @@ -25,6 +25,7 @@ (define-module (test-utils) #:use-module ((guix config) #:select (%gzip)) #:use-module (guix utils) + #:use-module ((guix build utils) #:select (call-with-temporary-output-file)) #:use-module ((guix store) #:select (%store-prefix store-path-package-name)) #:use-module ((guix search-paths) #:select (string-tokenize*)) #:use-module (srfi srfi-1) |