summaryrefslogtreecommitdiff
path: root/gnu/packages
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages')
-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
15 files changed, 681 insertions, 148 deletions
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")