summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am1
-rw-r--r--gnu/packages/axoloti.scm12
-rw-r--r--gnu/packages/emacs-xyz.scm25
-rw-r--r--gnu/packages/fltk.scm4
-rw-r--r--gnu/packages/geo.scm37
-rw-r--r--gnu/packages/gnuzilla.scm12
-rw-r--r--gnu/packages/hardware.scm64
-rw-r--r--gnu/packages/linux.scm34
-rw-r--r--gnu/packages/lua.scm219
-rw-r--r--gnu/packages/markup.scm117
-rw-r--r--gnu/packages/messaging.scm67
-rw-r--r--gnu/packages/music.scm59
-rw-r--r--gnu/packages/perl.scm20
-rw-r--r--gnu/packages/scheme.scm62
-rw-r--r--gnu/packages/version-control.scm61
-rw-r--r--gnu/packages/wm.scm36
-rw-r--r--guix/channels.scm56
-rw-r--r--guix/derivations.scm6
-rw-r--r--guix/discovery.scm4
-rw-r--r--guix/download.scm4
-rw-r--r--guix/git.scm52
-rw-r--r--guix/import/hackage.scm4
-rw-r--r--guix/import/hexpm.scm7
-rw-r--r--guix/import/opam.scm7
-rw-r--r--guix/import/pypi.scm5
-rw-r--r--guix/nar.scm4
-rw-r--r--guix/packages.scm5
-rw-r--r--guix/scripts.scm7
-rw-r--r--guix/scripts/build.scm4
-rw-r--r--guix/scripts/describe.scm4
-rw-r--r--guix/scripts/system.scm12
-rw-r--r--guix/store.scm18
-rw-r--r--guix/ui.scm22
-rw-r--r--guix/utils.scm17
-rw-r--r--tests/cpio.scm6
-rw-r--r--tests/egg.scm5
-rw-r--r--tests/opam.scm5
-rw-r--r--tests/publish.scm5
-rw-r--r--tests/store-database.scm6
-rw-r--r--tests/utils.scm3
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)