1
0
forked from tribes/guix

Compare commits

..

5 Commits

Author SHA1 Message Date
Igorj Gorjaĉev 7b5f2d456b gnu: Add elixir-mix-audit.
* gnu/packages/elixir-xyz.scm (elixir-mix-audit): New variable.

Closes: https://codeberg.org/guix/guix/pulls/3524
Change-Id: I1d4565135a6d4b67046c17660573849493809e1c
Signed-off-by: Giacomo Leidi <therewasa@fishinthecalculator.me>
2026-04-11 17:47:14 +02:00
Igorj Gorjaĉev e1e28adb79 gnu: Add elixir-yaml-elixir.
* gnu/packages/elixir-xyz.scm (elixir-yaml-elixir): New variable.

Change-Id: I47e3bd31eac50699a5bccd1d515a4117ffb37563
Signed-off-by: Giacomo Leidi <therewasa@fishinthecalculator.me>
2026-04-11 17:47:14 +02:00
Igorj Gorjaĉev ea66f97ff3 gnu: Add elixir-depscheck.
* gnu/packages/elixir-xyz.scm (elixir-depscheck): New variable.

Change-Id: I7bb81fc7ed8fc068eedb1052b1d7891abfa9bbea
Signed-off-by: Giacomo Leidi <therewasa@fishinthecalculator.me>
2026-04-11 17:47:14 +02:00
Igorj Gorjaĉev 76ac03cb0b build-system: mix: Add support for importing deps from 'mix.lock'.
* guix/import/mix.scm: New file.
* guix/import/mix/mix-lock.scm: New file.
* guix/scripts/import/mix.scm: New file.
* tests/import/mix.scm: New file.
* Makefile.am (MODULES, SCM_TESTS): Register them.
* etc/teams.scm (beam): Likewise.
* gnu/packages/beam-apps.scm: New file.
* gnu/packages/beam-packages.scm: New file.
* gnu/packages/beam-sources.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Register them.
* etc/teams.scm (beam): Likewise.
* guix/build-system/mix.scm (define-mix-inputs): New macro.
(beam-name->package-name, hexpm-source, mix-inputs): New procedures.
(mix-build): Add new variables.
* guix/build/mix-build-system.scm (unpack-vendorize,
symlink-vendorize, beam-package?): New procedures.
(%standard-phases): Add new phases.
(build, check, install): Add vendoring support.
(%elixir-prefix, %beam-prefix, %vendorize-env-var): Add new symbols.
(strip-prefix, package-name->elixir-name): Add support for beam-prefixed
packages.
* guix/scripts/import.scm (process-args): Add 'mix' importer.
* etc/teams.scm (beam)<#:description>: Add Mix importer mention.
* etc/teams.scm (beam)<#:scope>: Add "tests/import/hexpm.scm".
* CODEOWNERS: Regenerate file.
* guix/import/hexpm.scm (dependencies->package-names,
hexpm->guix-package): Add optional mix-inputs support.
* guix/scripts/import/hexpm.scm (show-help, %options,
parse-options): Likewise.
* tests/import/hexpm.scm: Likewise.
* guix/import/hexpm.scm (hexpm->guix-package): Fix typo.
* doc/guix.texi: Add initial documentation for mix importer and
new option for hexpm importer.
* doc/guix-cookbook.texi: Add example of packaging Elixir app.

Change-Id: I5d11f8be111963fbac2fd6ab5fd0bd644f9488b0
Signed-off-by: Giacomo Leidi <therewasa@fishinthecalculator.me>
2026-04-11 17:47:09 +02:00
Igorj Gorjaĉev f88a63b636 gnu: elixir: Add vendoring support.
* gnu/packages/elixir.scm (elixir): Add vendoring support.
* gnu/packages/patches/elixir-vendoring-support.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.

Change-Id: Id295ac66684c724ac799878ec58d84617bf9a5be
Signed-off-by: Giacomo Leidi <therewasa@fishinthecalculator.me>
2026-04-11 17:46:40 +02:00
98 changed files with 14075 additions and 20110 deletions
+6
View File
@@ -13,6 +13,7 @@ gnu/packages/fluidplug\.scm @guix/audio
gnu/packages/music\.scm @guix/audio
gnu/packages/xiph\.scm @guix/audio
gnu/packages/beam-.+\.scm$ @guix/beam
gnu/packages/elixir(-.+|)\.scm$ @guix/beam
guix/build/mix-build-system\.scm @guix/beam
guix/build-system/mix\.scm @guix/beam
@@ -20,7 +21,12 @@ gnu/packages/erlang(-.+|)\.scm$ @guix/beam
guix/build/rebar-build-system\.scm @guix/beam
guix/build-system/rebar\.scm @guix/beam
guix/import/hexpm\.scm @guix/beam
guix/import/mix\.scm @guix/beam
guix/import/mix/mix-lock\.scm @guix/beam
guix/scripts/import/hexpm\.scm @guix/beam
guix/scripts/import/mix\.scm @guix/beam
tests/import/hexpm\.scm @guix/beam
tests/import/mix\.scm @guix/beam
gnu/packages/bioinformatics\.scm @guix/bioinformatics
+5
View File
@@ -22,6 +22,7 @@
# Copyright © 2024 gemmaro <gemmaro.dev@gmail.com>
# Copyright © 2025 Brice Waegeneire <brice@waegenei.re>
# Copyright © 2025 Florian Pelz <pelzflorian@pelzflorian.de>
# Copyright © 2025 Igorj Gorjaĉev <igor@goryachev.org>
#
# This file is part of GNU Guix.
#
@@ -320,6 +321,8 @@ MODULES = \
guix/import/launchpad.scm \
guix/import/luanti.scm \
guix/import/minetest.scm \
guix/import/mix.scm \
guix/import/mix/mix-lock.scm \
guix/import/nuget.scm \
guix/import/npm-binary.scm \
guix/import/opam.scm \
@@ -377,6 +380,7 @@ MODULES = \
guix/scripts/import/json.scm \
guix/scripts/import/luanti.scm \
guix/scripts/import/minetest.scm \
guix/scripts/import/mix.scm \
guix/scripts/import/npm-binary.scm \
guix/scripts/import/nuget.scm \
guix/scripts/import/opam.scm \
@@ -577,6 +581,7 @@ SCM_TESTS = \
tests/import/hackage.scm \
tests/import/hexpm.scm \
tests/import/luanti.scm \
tests/import/mix.scm \
tests/import/npm-binary.scm \
tests/import/nuget.scm \
tests/import/opam.scm \
-1
View File
@@ -18,7 +18,6 @@ Please send Guix bug reports to bug-guix@gnu.org.
** Distribution
*** GNOME updated to version 48
*** New service for Fossil SCM
*** TeX Live updated to 2026.1
* Changes in 1.5.0 (since 1.4.0)
** Package management
+105
View File
@@ -29,6 +29,7 @@ Copyright @copyright{} 2025 45mg@*
Copyright @copyright{} 2023 Marek Felšöci@*
Copyright @copyright{} 2023 Konrad Hinsen@*
Copyright @copyright{} 2023 Philippe Swartvagher@*
Copyright @copyright{} 2026 Igorj Gorjaĉev@*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -140,6 +141,7 @@ Programmable and automated package definition
Packaging Workflows
* Packaging Rust Crates::
* Packaging Elixir Applications::
Packaging Rust Crates
@@ -1632,6 +1634,7 @@ systems, serving as extensions to the concise packaging guidelines
@menu
* Packaging Rust Crates::
* Packaging Elixir Applications::
@end menu
@node Packaging Rust Crates
@@ -1987,6 +1990,108 @@ method, one of the most popular choices for Traditional Chinese users.")
(license license:lgpl2.1+)))
@end lisp
@node Packaging Elixir Applications
@subsection Packaging Elixir Applications
In preparation, add the following packages to your environment:
@example
$ guix shell elixir elixir-depscheck elixir-mix-audit
@end example
In this example, we package @uref{https://livebook.dev, livebook},
which is an interactive, web-based notebook environment for writing,
running, and sharing Elixir code with rich documentation and
visualizations.
@enumerate
@item
We retrieve the @code{livebook} source code with the latest version
from the corresponding @code{git} repository:
@example
$ git clone --branch v0.18.2 --depth 1 \
https://github.com/livebook-dev/livebook
@end example
We should prepare the following definiton for this package (the suggested
location for this definition should be @code{gnu/packages/beam-packages.scm}
or up to your mind):
@lisp
(define-public livebook
(package
(name "livebook")
(version "0.18.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/livebook-dev/livebook")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1pq227nabslr7gh4qvg24wj4320djc0vrh6x6l23g3468x6znxjm"))))
(build-system mix-build-system)
(arguments
(list
#:tests? #f ; TODO: make them work a little bit later
#:vendorize? #t
#:phases
#~(modify-phases %standard-phases
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(copy-recursively "_build/prod/rel/livebook/"
out)))))))
(inputs (mix-inputs 'livebook))
(synopsis "Web application for writing code notebooks")
(description "This package provides @code{Livebook}, a web application
for writing interactive and collaborative code notebooks.")
(home-page "https://livebook.dev/")
(license license:asl2.0)))
@end lisp
The identifier used to invoke @code{mix-inputs}, in this case the scheme
symbol @code{'livebook}, must be unique, usually matching the variable name
of the package.
@item
Navigate to the unpacked directory, then run the following commands:
@example
$ mix deps.get
$ mix deps.audit
$ mix depscheck --verbose
@end example
@command{mix deps.audit} checks known vulnerabilities and @command{mix
depscheck --verbose} checks licenses, for all the dependencies. We must
have an acceptable output (i.e. message ``No vulnerabilities found.'') of
@command{mix deps.audit} and ensure all dependencies are licensed with our
supported licenses (@pxref{Defining Packages,,, guix, GNU Guix Reference Manual}).
@item
Import dependencies from the lockfile:
@example
$ guix import --insert=gnu/packages/beam-packages.scm \
mix --lockfile=/path/to/mix.lock livebook
# or:
$ guix import -i gnu/packages/beam-packages.scm \
mix -f /path/to/mix.lock livebook
@end example
After that the package could be build by using the following command:
@example
$ guix build livebook
@end example
@end enumerate
@c *********************************************************************
@node System Configuration
+26 -57
View File
@@ -151,6 +151,7 @@ Copyright @copyright{} 2025 Noé Lopez@*
Copyright @copyright{} 2026 David Elsing@*
Copyright @copyright{} 2026 Nguyễn Gia Phong@*
Copyright @copyright{} 2026 Yarl Baudig@*
Copyright @copyright{} 2026 Igorj Gorjaĉev@*
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -15388,6 +15389,31 @@ Additional options include:
Traverse the dependency graph of the given upstream package recursively
and generate package expressions for all those packages that are not yet
in Guix.
@item --mix-inputs
@itemx -m
Use vendored @code{mix-inputs} for @code{input} field instead of common
dependencies.
@end table
@item mix
@cindex mix
Import metadata from the @file{mix.lock}, Elixir's
@uref{https://hexdocs.pm/elixir/introduction-to-mix.html, mix} lock file,
as in this example:
@example
guix import mix -f mix.lock yourapp
@end example
Mandatory options are:
@table @code
@item --lockfile=@var{file}
@itemx -f @var{file}
@option{--lockfile} must be a @file{mix.lock} file.
@xref{Packaging Elixir Applications,,, guix-cookbook, GNU Guix Cookbook}, for
packaging workflow utilizing it.
@end table
@end table
@@ -51663,63 +51689,6 @@ phone-number = 0
is-married = true
@end example
@subsubsection Serializing to environment variables
@cindex environment variables, serialization of configuration records
There are services which expect their configuration as environment variables.
The @code{(gnu services configuration environment-variables)} module provides
facilities to serialize configuration records from
@code{(gnu services configuration)} to list of pairs representing environment
variables.
For example this configuration record:
@lisp
(define-configuration/no-serialization server
(ssh-port
(number 22)
"The public SSH port of the server.")
(fqdn
(maybe-string)
"The fully qualified domain name of the server.")
(active?
(boolean #f)
"Whether or not the server should be activated."))
(define my-server
(server
(ssh-port 20022)
(active? #t)))
@end lisp
with this call:
@lisp
(serialize-environment-variables my-server server-fields
#:true-value "1"
#:false-value "0")
@end lisp
would yield:
@lisp
'(("SSH_PORT" . "20022")
("ACTIVE" . "1"))
@end lisp
@anchor{serialize-environment-variables-procedure}
@deffn {Procedure} serialize-environment-variables @var{config} @var{fields} @
[@var{selection} #f] [@var{negate?} #f] [#:prefix #f] @
[#:true-value "true"] [#:false-value "false"]
Serializes the fields whose name is included in SELECTION from CONFIG, a
configuration from @code{(gnu services configuration)}, and FIELDS, the
list of its field records, to a list of pairs. When NEGATE? is #t all services
not included in SELECTION will be serialized. Each pair represents an
environment variable. The first element of each pair is the variable name, the
second is the value. When PREFIX is a string it is prepended to the variable
name. TRUE-VALUE and FALSE-VALUE will be used as a representation for
respectfully @code{#t} and @code{#f}.
@end deffn
@c *********************************************************************
@cindex troubleshooting, Guix System
+9 -3
View File
@@ -482,15 +482,21 @@ already exists. Lookup team IDs among CURRENT-TEAMS."
#:name "Erlang/Elixir/BEAM team"
#:description "The virtual machine at the core of the Erlang Open
Telecom Platform (OTP), Erlang and Elxir languages and packages, development
of Rebar and Mix build systems and Hex.pm importer."
#:scope (list (make-regexp* "^gnu/packages/elixir(-.+|)\\.scm$")
of Rebar and Mix build systems, Hex.pm and Mix importers."
#:scope (list (make-regexp* "^gnu/packages/beam-.+\\.scm$")
(make-regexp* "^gnu/packages/elixir(-.+|)\\.scm$")
"guix/build/mix-build-system.scm"
"guix/build-system/mix.scm"
(make-regexp* "^gnu/packages/erlang(-.+|)\\.scm$")
"guix/build/rebar-build-system.scm"
"guix/build-system/rebar.scm"
"guix/import/hexpm.scm"
"guix/scripts/import/hexpm.scm")))
"guix/import/mix.scm"
"guix/import/mix/mix-lock.scm"
"guix/scripts/import/hexpm.scm"
"guix/scripts/import/mix.scm"
"tests/import/hexpm.scm"
"tests/import/mix.scm")))
(define-team bioinformatics
(team 'bioinformatics
+5 -6
View File
@@ -56,7 +56,6 @@
# Copyright © 2022 Alex Griffin <a@ajgrf.com>
# Copyright © 2022 ( <paren@disroot.org>
# Copyright © 2022, 2026 jgart <jgart@dismail.de>
# Copyright © 2022-2023, 2025-2026 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
# Copyright © 2023-2025 Zheng Junjie <z572@z572.online>
# Copyright © 2023 Ivana Drazovic <iv.dra@hotmail.com>
# Copyright © 2023 Andy Tai <atai@atai.org>
@@ -76,6 +75,7 @@
# Copyright © 2025 Nigko Yerden <nigko.yerden@gmail.com>
# Copyright © 2025 Cayetano Santos <csantosb@inventati.org>
# Copyright © 2025 bdunahu <bdunahu@operationnull.com>
# Copyright © 2025 Igorj Gorjaĉev <igor@goryachev.org>
#
# This file is part of GNU Guix.
#
@@ -176,6 +176,9 @@ GNU_SYSTEM_MODULES = \
%D%/packages/bash.scm \
%D%/packages/batik.scm \
%D%/packages/bdw-gc.scm \
%D%/packages/beam-apps.scm \
%D%/packages/beam-packages.scm \
%D%/packages/beam-sources.scm \
%D%/packages/benchmark.scm \
%D%/packages/bioconductor.scm \
%D%/packages/bioinformatics.scm \
@@ -217,7 +220,6 @@ GNU_SYSTEM_MODULES = \
%D%/packages/convmv.scm \
%D%/packages/codex.scm \
%D%/packages/coq.scm \
%D%/packages/coreboot.scm \
%D%/packages/cpio.scm \
%D%/packages/cpp.scm \
%D%/packages/cppi.scm \
@@ -740,8 +742,6 @@ GNU_SYSTEM_MODULES = \
%D%/services/cgit.scm \
%D%/services/ci.scm \
%D%/services/configuration.scm \
%D%/services/configuration/environment-variables.scm \
%D%/services/configuration/utils.scm \
%D%/services/containers.scm \
%D%/services/cuirass.scm \
%D%/services/cups.scm \
@@ -1039,7 +1039,6 @@ dist_patch_DATA = \
%D%/packages/patches/azr3.patch \
%D%/packages/patches/azr3-remove-lash.patch \
%D%/packages/patches/barony-fix-textures.patch \
%D%/packages/patches/bam-python3-compat.patch \
%D%/packages/patches/bash-completion-directories.patch \
%D%/packages/patches/bash-linux-pgrp-pipe.patch \
%D%/packages/patches/basis-universal-unbundle-libs.patch \
@@ -1233,6 +1232,7 @@ dist_patch_DATA = \
%D%/packages/patches/elfutils-tests-ptrace.patch \
%D%/packages/patches/elixir-httpoison-tag-network-dependent-test-cases.patch \
%D%/packages/patches/elixir-path-length.patch \
%D%/packages/patches/elixir-vendoring-support.patch \
%D%/packages/patches/elm-ghc9.2.patch \
%D%/packages/patches/exaile-gstreamer-1.28.patch \
%D%/packages/patches/python-treelib-remove-python2-compat.patch \
@@ -1983,7 +1983,6 @@ dist_patch_DATA = \
%D%/packages/patches/nheko-0-12-1-fix-rendering-replies.patch \
%D%/packages/patches/nix-dont-build-html-doc.diff \
%D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch \
%D%/packages/patches/neovim-tree-sitter-grammar-path.patch \
%D%/packages/patches/network-manager-plugin-ownership.patch \
%D%/packages/patches/network-manager-plugin-path.patch \
%D%/packages/patches/newlib-getentropy.patch \
+160 -12
View File
@@ -1,4 +1,9 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2016, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2026 Anderson Torres <anderson.torres.8519@gmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -17,20 +22,163 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages adns)
#:use-module (gnu packages dns)
#:use-module (guix deprecation))
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages m4)
#:use-module (gnu packages pkg-config)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix utils))
(define-deprecated/public-alias adns
(@ (gnu packages dns) adns))
(define-public adns
(package
(name "adns")
(version "1.6.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "git://git.chiark.greenend.org.uk/~ianmdlvl/adns.git")
(commit (string-append "adns-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0ln3l5j7wb1xazrzl76p9xar52p6l2k1cwy7jazxw1acl71k9h5n"))))
(build-system gnu-build-system)
(arguments
(list
;; INFO: Tests expect real name resolution to work.
#:tests? #f
#:configure-flags
#~(list
;; Make sure the programs under bin/ find libadns.so.
(string-append "LDFLAGS=-Wl,-rpath -Wl,"
#$output:out
"/lib"))))
(native-inputs
(list m4))
(home-page "https://www.gnu.org/software/adns/")
(synopsis "Asynchronous DNS client library and utilities")
(description
"GNU adns is a C library that provides easy-to-use @acronym{DNS, Domain
Name System} resolution functionality. The library is asynchronous, allowing
several concurrent calls. The package also includes several command-line
utilities for use in scripts.")
(license license:gpl3+)))
(define-deprecated/public-alias c-ares
(@ (gnu packages dns) c-ares))
(define-public c-ares
(package
(name "c-ares")
(version "1.34.4")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/c-ares/c-ares/releases/download/v"
version "/" name "-" version ".tar.gz"))
(sha256
(base32
"0br2msk3bpl5myhjp9vr5j2scpspvbg2fpnz69dcrr4ycpnxnf7s"))))
(build-system gnu-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'filter-live-tests
(lambda _
;; Filter tests that require internet access.
(setenv "GTEST_FILTER" "-*.Live*:*.FamilyV4*")))
#$@(if (system-hurd?)
#~((add-after 'unpack 'skip-tests
(lambda _
(substitute* "test/ares-test-main.cc"
(("(^| )main *\\(.*" all)
(string-append all " exit (77);\n")))))
(add-after 'filter-live-tests 'filter-hurd-tests
(lambda _
(setenv "GTEST_FILTER"
(string-append
(getenv "GTEST_FILTER")
":.*Basic/2"
":.*CancelImmediate/2"
":.*CancelImmediateGetHostByAddr/2"
":.*CancelLater/1"
":.*FamilyUnspecified/2"
":.*FamilyV6/2"
":.*GetAddrInfoParallelLookups/1"
":.*GetHostByAddrDestroy/2"
":.*GetHostByNameCNAMENoData/2"
":.*GetHostByNameDestroyAbsolute/2"
":.*GetHostByNameDestroyRelative/2"
":.*GetHostByNameParallelLookups/1"
":.*HostAlias/2"
":.*HostAliasMissing/2"
":.*HostAliasMissingFile/2"
":.*NotImplResponse/2"
":.*RefusedResponse/2"
":.*Resend/1"
":.*RetryWithoutEDNS/2"
":.*SearchDomains/2"
":.*SearchDomainsBare/2"
":.*SearchDomainsServFailOnAAAA/2"
":.*SearchDomainsWithResentReply/1"
":.*SearchHighNdots/2"
":.*SearchNoDataThenFail/2"
":.*SearchNoDataThenNoDataBare/2"
":.*SearchNoDataThenSuccess/2"
":.*ServFailResponse/2"
":.*SimpleQuery/2"
":.*SockCallback/2"
":.*SockConfigureCallback/2"
":.*SortListV4/2"
":.*SortListV6/2"
":.*ThirdServer/2"
":.*TruncationRetry/1"
":.*UnspecifiedFamilyCname6A4/2"
":.*UnspecifiedFamilyV4/2"
":.*UnspecifiedFamilyV6/2")))))
#~()))))
(native-inputs
(list pkg-config))
(home-page "https://c-ares.haxx.se/")
(synopsis "C library for asynchronous DNS requests")
(description
"C-ares is a C library that performs DNS requests and name resolution
asynchronously. It is intended for applications which need to perform DNS
queries without blocking, or need to perform multiple DNS queries in parallel.
The primary examples of such applications are servers which communicate with
multiple clients and programs with graphical user interfaces.")
(license (license:x11-style "https://c-ares.haxx.se/license.html"))))
(define-deprecated/public-alias c-ares-for-node-lts
(@ (gnu packages dns) c-ares-for-node-lts))
(define-public c-ares-for-node-lts
(hidden-package c-ares))
(define-deprecated/public-alias c-ares-for-node-bootstrap
(@ (gnu packages dns) c-ares-for-node-bootstrap))
(define-public c-ares-for-node-bootstrap
(hidden-package
(package
(inherit c-ares)
(version "1.18.1")
(source (origin
(method url-fetch)
(uri (string-append
"https://c-ares.haxx.se/download/c-ares-" version
".tar.gz"))
(sha256
(base32
"1kxviskwsaa7dcgscvssxa8ps88pdq7kq4z93gxvz7sam2l54z8s")))))))
(define-deprecated/public-alias c-ares/cmake
(@ (gnu packages dns) c-ares/cmake))
;; gRPC requires a c-ares built with CMake in order to get the .cmake modules.
;; We can not build c-ares itself with CMake because that would introduce a
;; circular dependency through nghttp2.
;; XXX: It would be nice if we could extract the modules somehow and make them
;; work with the "normal" c-ares package instead of building a whole new library.
(define-public c-ares/cmake
(hidden-package
(package
(inherit c-ares)
(build-system cmake-build-system)
(arguments
`(;; XXX: Tests require name resolution (the normal variant runs no tests).
#:tests? #f)))))
+1 -1
View File
@@ -370,7 +370,7 @@ This package includes the following programs:
libjpeg-turbo
perl
python
v4l-utils))
v4l-utils-minimal))
(propagated-inputs
;; These are in 'requires' field of .pc files.
(list glib gtk+))
+3 -2
View File
@@ -33,8 +33,9 @@
;; The URI does not appear to be easily guessable. For
;; example, you cannot download version "9100g" simply
;; by replacing "9100h" in the URI.
(uri (string-append "https://ftp.jaist.ac.jp/pub/Linux/Gentoo/"
"distfiles/31/anthy-9100h.tar.gz"))
(uri (list (string-append "https://ftp.jaist.ac.jp/pub/Linux/Gentoo/"
"distfiles/31/anthy-9100h.tar.gz")
"https://osdn.dl.osdn.net/anthy/37536/anthy-9100h.tar.gz"))
(sha256
(base32 "0ism4zibcsa5nl77wwi12vdsfjys3waxcphn1p5s7d0qy1sz0mnj"))))
(build-system gnu-build-system)
+9 -19
View File
@@ -19,11 +19,9 @@
(define-module (gnu packages appimage)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages base)
#:use-module (gnu packages c)
#:use-module (gnu packages compression)
#:use-module (gnu packages file-systems)
#:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages)
#:use-module (guix build-system gnu)
#:use-module (guix gexp)
@@ -32,9 +30,9 @@
#:use-module (guix utils))
(define-public appimage-type2-runtime
(let ((revision "1")
(let ((revision "0")
;; No releases, just the latest commit.
(commit "caf24f9f712084686bfc24a70b75e50df0aefb9c"))
(commit "47b665594856b4e8928f8932adcf6d13061d8c30"))
(package
(name "appimage-type2-runtime")
(version (git-version "continuous" revision commit))
@@ -46,16 +44,16 @@
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "17z0byws3dp375wcyq5xwy5npqy7hslqw21n677dp38z4f940nzv"))))
(base32 "0954crhlbapxis96g1s0vfpf78ybr64zvjalak387ksxj560g44x"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; No tests
#:make-flags
#~(list "-Csrc/runtime" "runtime"
#~(list "-Csrc/runtime" "runtime-fuse3"
(string-append "CC=" #$(cc-for-target))
(string-append
"CFLAGS=" "-I" #$(this-package-input "fuse") "/include/fuse3/"
"CFLAGS=" "-I" #$(this-package-input "fuse") "/include/fuse/"
" -DGIT_COMMIT='\"" "guix-" #$version "\"'"
" -D_FILE_OFFSET_BITS=64"
" -static"
@@ -66,22 +64,17 @@
(ice-9 binary-ports))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'use-pkgconfig-flags
(lambda _
(substitute* "src/runtime/Makefile"
(("-lmimalloc")
"$(pkg-config --cflags mimalloc)"))))
(delete 'configure)
(replace 'install
(lambda _
(install-file "src/runtime/runtime"
(install-file "src/runtime/runtime-fuse3"
(string-append #$output "/bin"))))
;; Must be after all elf reliant phases. Used to identify the
;; executable as an AppImage as per the specification.
(add-after 'make-dynamic-linker-cache 'set-magic-bytes
(lambda _
(let ((port (open (string-append #$output
"/bin/runtime")
"/bin/runtime-fuse3")
(logior O_WRONLY))))
(seek port 8 SEEK_SET)
(put-bytevector port #vu8(#x41 #x49 #x02))
@@ -91,12 +84,9 @@
(this-package-input "fuse")
(gexp-input (this-package-input "zstd") "static")
(gexp-input (this-package-input "zlib") "static"))))
(native-inputs (list pkg-config))
;; Only needed at build time.
(inputs (list `(,fuse "out")
`(,fuse "static")
mimalloc
squashfuse-for-appimage
(inputs (list squashfuse-for-appimage
fuse-for-appimage
`(,zstd "static")
`(,zlib "static")))
(synopsis "Runtime for executing AppImages")
+1 -1
View File
@@ -3438,7 +3438,7 @@ from being able to mix multiple JACK audio streams.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0fvnvr74q5khxlj5sylfnkblydmwgdbvj04mhdqw0zzmfqwignhd"))))
(base32 "08ji4lg24flzi6g3yaavfq8hz3kr98q2ripk5m4qk9z172qxbbc9"))))
(build-system meson-build-system)
(arguments
(list
+25
View File
@@ -0,0 +1,25 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2025 Igorj Gorjaĉev <igor@goryachev.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages beam-apps)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system mix))
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2026 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2025 Igorj Gorjaĉev <igor@goryachev.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -16,20 +16,28 @@
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu services configuration utils)
#:use-module (ice-9 string-fun)
#:export (uglify-snake-case))
(define-module (gnu packages beam-packages)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system mix)
#:use-module (gnu packages beam-sources)
#:export (lookup-mix-inputs))
(define (uglify-snake-case field-name)
"Serializes FIELD-NAME, a field name from @code{(gnu services configuration)},
to a downcased, snake case string representation of the field name. Trailing
@code{?} in the name are dropped and dashes are replaced with underscores.
;;;
;;; This file is managed by guix import. Do NOT add definitions manually.
;;;
;;; BEAM libraries fetched from hex.pm.
;;;
For example the procedure would convert @code{'A-Field?} to @code{\"a_field\"}."
(define str (symbol->string field-name))
(string-downcase
(string-replace-substring
(if (string-suffix? "?" str)
(string-drop-right str 1)
str)
"-" "_")))
(define aaaa-separator 'begin-of-beam-packages)
(define cccc-separator 'end-of-beam-packages)
;;;
;;; Mix inputs.
;;;
(define-mix-inputs lookup-mix-inputs)
+29
View File
@@ -0,0 +1,29 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2025 Igorj Gorjaĉev <igor@goryachev.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages beam-sources)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system mix))
;;;
;;; BEAM libraries requiring modification.
;;; These packages are hidden, as they are not interesting to users.
;;;
+1 -14
View File
@@ -944,20 +944,7 @@ configurable through a set of options.")
#~(list (string-append
"CC=" #$(this-package-input "openmpi") "/bin/mpicc")
(string-append
"CXX=" #$(this-package-input "openmpi") "/bin/mpicxx"))
#:phases
#~(modify-phases %standard-phases
;; OSU installs its binaries to /libexec. Have a symlink in /bin to
;; improve user experience.
(add-after 'install 'symlink-binaries-in-bin
(lambda _
(mkdir-p (string-append #$output "/bin"))
(for-each (lambda (file)
(symlink file
(string-append #$output "/bin/"
(basename file))))
(find-files (string-append #$output
"/libexec"))))))))
"CXX=" #$(this-package-input "openmpi") "/bin/mpicxx"))))
(home-page "https://mvapich.cse.ohio-state.edu/benchmarks/")
(synopsis "Benchmarking suite from the MVAPICH project")
(description
+38
View File
@@ -18335,6 +18335,44 @@ following the assay and produces a file detailing peaks of significant
enrichment.")
(license license:expat)))
(define-public mantis
;; This is an arbitrary commit as a year has passed since 0.1 was tagged.
(let ((commit "b6979a269172a45201c8366680d8b889f889432b")
(revision "2"))
(package
(name "mantis")
(version (git-version "0.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/splatlab/mantis")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0dq8a785hnaxx5kq757m5czs8xpcjpcph1inq2nm8h6zfvqyj8xs"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; there are none
#:configure-flags (list "-DNH=ON"))) ; do not use SSE4.2 instructions
(inputs
(list sdsl-lite openssl zlib))
(native-inputs
(list gcc-7))
(home-page "https://github.com/splatlab/mantis")
(synopsis "Large-scale sequence-search index data structure")
(description "Mantis is a space-efficient data structure that can be
used to index thousands of raw-read genomics experiments and facilitate
large-scale sequence searches on those experiments. Mantis uses counting
quotient filters instead of Bloom filters, enabling rapid index builds and
queries, small indexes, and exact results, i.e., no false positives or
negatives. Furthermore, Mantis is also a colored de Bruijn graph
representation, so it supports fast graph traversal and other topological
analyses in addition to large-scale sequence-level searches.")
;; uses __uint128_t and inline assembly
(supported-systems '("x86_64-linux"))
(license license:bsd-3))))
(define-public sjcount
;; There is no tag for version 3.2, nor is there a release archive.
(let ((commit "292d3917cadb3f6834c81e509c30e61cd7ead6e5")
+33 -33
View File
@@ -41,16 +41,32 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages bittorrent)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix build-system glib-or-gtk)
#:use-module ((guix licenses) #:prefix l:)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE))
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages boost)
#:use-module (gnu packages nss)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages dns)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
@@ -60,9 +76,8 @@
#:use-module (gnu packages gtk)
#:use-module (gnu packages libevent)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages nettle)
#:use-module (gnu packages nss)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
@@ -71,30 +86,15 @@
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages serialization)
#:use-module (gnu packages qt)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages ssh)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages)
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE))
#:use-module (guix utils))
#:use-module (gnu packages xorg))
(define-public transmission
(package
@@ -194,7 +194,7 @@ DHT, µTP, PEX and Magnet Links.")
;; or any future license endorsed by Mnemosyne LLC.
;;
;; A few files files carry an MIT/X11 license header.
(license (list license:gpl2 license:gpl3))))
(license (list l:gpl2 l:gpl3))))
(define-public transmission-remote-gtk
(package
@@ -224,7 +224,7 @@ DHT, µTP, PEX and Magnet Links.")
(description "transmission-remote-gtk is a GTK client for remote management
of the Transmission BitTorrent client, using its HTTP RPC protocol.")
(home-page "https://github.com/transmission-remote-gtk/transmission-remote-gtk")
(license license:gpl2+)))
(license l:gpl2+)))
(define-public stig
(package
@@ -267,7 +267,7 @@ of the Transmission BitTorrent client, using its HTTP RPC protocol.")
"Stig is a @acronym{TUI, Text User Interface} and @acronym{CLI, Command
Line Interface} client for the BitTorrent client Transmission.")
(home-page "https://github.com/rndusr/stig")
(license license:gpl3)))
(license l:gpl3)))
(define-public libtorrent
(package
@@ -291,7 +291,7 @@ Line Interface} client for the BitTorrent client Transmission.")
with the BitTorrent client rtorrent. It is written in C++ with emphasis on
speed and efficiency.")
(home-page "https://github.com/rakshasa/libtorrent")
(license license:gpl2+)))
(license l:gpl2+)))
(define-public rtorrent
(package
@@ -320,7 +320,7 @@ speed and efficiency.")
full encryption, DHT, PEX, and Magnet Links. It can also be controlled via
XML-RPC over SCGI.")
(home-page "https://github.com/rakshasa/rtorrent")
(license license:gpl2+)))
(license l:gpl2+)))
(define-public tremc
(let ((commit "d8deaa5ac25bb45a2ca3a930309d6ecc74836a54")
@@ -354,7 +354,7 @@ XML-RPC over SCGI.")
(description "Tremc is a console client, with a curses interface, for the
Transmission BitTorrent daemon.")
(home-page "https://github.com/tremc/tremc")
(license license:gpl3+))))
(license l:gpl3+))))
(define-public aria2
(package
@@ -419,7 +419,7 @@ download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.
Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
(properties
'((release-monitoring-url . "https://github.com/aria2/aria2/releases")))
(license license:gpl2+)))
(license l:gpl2+)))
(define-public uget
(package
@@ -453,7 +453,7 @@ Aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces.")
"uGet is portable download manager with GTK+ interface supporting
HTTP, HTTPS, BitTorrent and Metalink, supporting multi-connection
downloads, download scheduling, download rate limiting.")
(license license:lgpl2.1+)))
(license l:lgpl2.1+)))
(define-public mktorrent
(package
@@ -488,8 +488,8 @@ files and whole directories. It can add multiple trackers and web seed URLs,
and set the @code{private} flag to disallow advertisement through the
distributed hash table (@dfn{DHT}) and Peer Exchange. Hashing is multi-threaded
and will take advantage of multiple processor cores where possible.")
(license (list license:public-domain ; sha1.*, used to build without OpenSSL
license:gpl2+)))) ; with permission to link with OpenSSL
(license (list l:public-domain ; sha1.*, used to build without OpenSSL
l:gpl2+)))) ; with permission to link with OpenSSL
(define-public libtorrent-rasterbar
(package
@@ -541,7 +541,7 @@ and will take advantage of multiple processor cores where possible.")
"libtorrent-rasterbar is a feature-complete C++ BitTorrent implementation
focusing on efficiency and scalability. It runs on embedded devices as well as
desktops.")
(license license:bsd-2)))
(license l:bsd-2)))
(define-public qbittorrent
(package
@@ -585,7 +585,7 @@ libtorrent (sometimes called libtorrent-rasterbar) by Arvid Norberg.
It aims to be a good alternative to all other BitTorrent clients out there.
qBittorrent is fast, stable and provides unicode support as well as many
features.")
(license license:gpl2+)))
(license l:gpl2+)))
(define-public qbittorrent-no-x
(let ((base qbittorrent))
@@ -727,4 +727,4 @@ Protocol Encryption, DHT, Local Peer Discovery (LSD), Peer Exchange
speed limits. Deluge heavily utilises the libtorrent library. It is
designed to run as both a normal standalone desktop application and as a
client-server.")
(license license:gpl3+)))
(license l:gpl3+)))
+25 -26
View File
@@ -44,17 +44,37 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages build-tools)
#:use-module (ice-9 optargs)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages c)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system guile)
#:use-module (guix build-system hare)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix modules)
#:use-module (guix packages)
#:use-module (guix search-paths)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages c)
#:use-module (gnu packages check)
#:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages cppi)
#:use-module (gnu packages dns)
#:use-module (gnu packages elf)
#:use-module (gnu packages gcc)
#:use-module (gnu packages guile)
@@ -85,27 +105,7 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages unicode)
#:use-module (gnu packages version-control)
#:use-module (gnu packages xml)
#:use-module (gnu packages)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system guile)
#:use-module (guix build-system hare)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix modules)
#:use-module (guix packages)
#:use-module (guix search-paths)
#:use-module (guix utils)
#:use-module (ice-9 optargs))
#:use-module (gnu packages xml))
(define-public acr
(package
@@ -196,8 +196,7 @@ according to the system capabilities and the user-selected options.")
(file-name (git-file-name name version))
(sha256
(base32
"13br735ig7lygvzyfd15fc2rdygrqm503j6xj5xkrl1r7w2wipq6"))
(patches (search-patches "bam-python3-compat.patch"))))
"13br735ig7lygvzyfd15fc2rdygrqm503j6xj5xkrl1r7w2wipq6"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags `(,(string-append "CC=" ,(cc-for-target))
@@ -208,7 +207,7 @@ according to the system capabilities and the user-selected options.")
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
(list python-minimal-wrapper))
`(("python" ,python-2)))
(inputs
(list lua))
(home-page "https://matricks.github.io/bam/")
+21 -26
View File
@@ -595,11 +595,7 @@ capacity is user-selectable.")
version "/DVDStyler-" version ".tar.bz2"))
(sha256
(base32
"0n3mfjsazvlzk9hl23q3iz7bmxjq7b5lx0ab8nbk1jgl763k9cqb"))
(snippet
#~(begin (delete-file "src/dvdvml.c")
(delete-file "src/dvdvmy.c")
(delete-file "src/dvdvmy.h")))))
"0n3mfjsazvlzk9hl23q3iz7bmxjq7b5lx0ab8nbk1jgl763k9cqb"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -629,28 +625,27 @@ capacity is user-selectable.")
#t)))
#:tests? #f)) ; No tests.
(inputs ; TODO package bundled wxvillalib
(list bash-minimal ; for wrap-program
cdrtools
dbus
dvd+rw-tools
dvdauthor
eudev
ffmpeg-4
fontconfig
libexif
libjpeg-turbo
wxsvg
wxwidgets))
`(("wxwidgets" ,wxwidgets)
("wssvg" ,wxsvg)
("bash" ,bash-minimal) ; for wrap-program
("dbus" ,dbus)
("cdrtools" ,cdrtools)
("dvd+rw-tools" ,dvd+rw-tools)
("dvdauthor" ,dvdauthor)
("eudev" ,eudev)
("fontconfig" ,fontconfig)
("libexif" ,libexif)
("libjpeg" ,libjpeg-turbo)
("ffmpeg" ,ffmpeg-4)))
(native-inputs
(list bison
docbook-xml
docbook-xsl
flex
gettext-minimal
pkg-config
python-minimal-wrapper
xmlto
zip))
`(("pkg-config" ,pkg-config)
("flex" ,flex)
("python" ,python-2)
("xmlto" ,xmlto)
("gettext" ,gettext-minimal)
("docbook-xml" ,docbook-xml)
("docbook-xsl" ,docbook-xsl)
("zip" ,zip)))
(synopsis "DVD authoring application")
(description "DVDStyler is a DVD authoring application which allows users
to burn video files in many formats to DVD discs, complete with individually
-248
View File
@@ -1,248 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2025 Cayetano Santos <csantosb@inventati.org>
;;; Copyright © 2026 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages coreboot)
#:use-module (gnu packages bison)
#:use-module (gnu packages compression)
#:use-module (gnu packages flex)
#:use-module (gnu packages pciutils)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (srfi srfi-26))
(define-public bincfg
(package
(name "bincfg")
(version "25.09")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://review.coreboot.org/coreboot")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1a1n64dwr5fzdnaj45bjci85ap5yra5gwz4x056zn6481xwvbsmv"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; no test suite
#:make-flags
#~(list
(string-append "CC=" #$(cc-for-target)))
#:phases
#~(modify-phases %standard-phases
(delete 'configure) ; no configure script
(add-after 'unpack 'chdir
(lambda _
(chdir "util/bincfg")))
(add-after 'build 'build-binaries
(lambda* (#:key make-flags #:allow-other-keys)
(for-each
(lambda (target result)
(apply invoke "make" (string-append "gen-" target) make-flags)
(rename-file result
(string-append target ".bin")))
(list
;; generate GbE for X200
"gbe-ich9m"
;; generate GbE for X220/x230
"gbe-82579LM"
;; generate IFD for X200
"ifd-x200")
(list
"flashregion_3_gbe.bin"
"flashregion_3_gbe.bin"
"flashregion_0_fd.bin"))))
;; The Makefile has no install target.
(replace 'install
(lambda _
(let ((bin (string-append #$output "/bin"))
(lib (string-append #$output "/lib/bincfg"))
(data (string-append #$output "/share/bincfg")))
;; Install the program
(install-file "bincfg" bin)
;; And its data
(for-each
(lambda (path)
(install-file path data))
(append (find-files "." ".*\\.set")
(find-files "." ".*\\.spec")))
;; And the files generated with the data
(for-each
(lambda (path)
(install-file path lib))
(find-files "." ".*\\.bin"))))))))
(native-inputs (list bison flex))
(home-page "https://coreboot.org")
(synopsis "Encoder/decoder for binary formats described in text files")
(description "
The bincfg program comes with specifications files for the following binary
formats:
@itemize
@item Various DDR3 and DDR4 SPD
@item Configuration data for the Intel 82579LM Gigabit Ethernet PHY
@item Configuration data for the Intel Gigabit Ethernet controller present in
the Intel ICH9-M chipset.
@item Intel Firmware Descriptor data for the Lenovo ThinkPad X200
@item Configuration data for the ITE IT8718F SuperIO
@end itemize
It also comes with example files generated by bincfg.")
(license license:gpl3+)))
(define-public ifdtool
(package
(name "ifdtool")
(version "25.09")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://review.coreboot.org/coreboot")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1a1n64dwr5fzdnaj45bjci85ap5yra5gwz4x056zn6481xwvbsmv"))))
(build-system gnu-build-system)
(arguments
(list
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
"INSTALL=install"
(string-append "PREFIX=" #$output))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "util/ifdtool")))
(delete 'configure)) ; no configure script
#:tests? #f)) ; no test suite
(home-page "https://doc.coreboot.org/util/ifdtool/")
(synopsis "Intel Firmware Descriptor dumper")
(description "This package provides @command{ifdtool}, a program to
dump Intel Firmware Descriptor data of an image file.")
(license license:gpl2)))
(define-public intelmetool
(package
(name "intelmetool")
(version "25.09")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://review.coreboot.org/coreboot")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1a1n64dwr5fzdnaj45bjci85ap5yra5gwz4x056zn6481xwvbsmv"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ;no test suite
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
"INSTALL=install"
(string-append "PREFIX=" #$output))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "util/intelmetool")))
(delete 'configure) ;no configure script
(delete 'check))))
(inputs (list pciutils zlib))
(home-page
"https://github.com/coreboot/coreboot/tree/main/util/intelmetool/")
(synopsis "Intel Management Engine tools")
(description "This package provides tools for working with Intel
Management Engine (ME). You need to @code{sudo rmmod mei_me} and
@code{sudo rmmod mei} before using this tool. Also pass
@code{iomem=relaxed} to the Linux kernel command line.")
(license license:gpl2)
;; This is obviously an Intel thing, plus it requires <cpuid.h>.
(supported-systems '("x86_64-linux" "i686-linux"))))
(define-public nvramtool
(package
(name "nvramtool")
(version "25.09")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://review.coreboot.org/coreboot")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1a1n64dwr5fzdnaj45bjci85ap5yra5gwz4x056zn6481xwvbsmv"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; no test suite
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
"INSTALL=install"
(string-append "PREFIX=" #$output))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "util/nvramtool")))
(delete 'configure)))) ; no configure script
(home-page "https://coreboot.org")
(synopsis "Command line tool that can edit Coreboot settings")
(description "@command{nvramtool} can see and/or modify Coreboot settings
like the serial port speed, log level, etc. It requires Coreboot to be compiled
with CONFIG_USE_OPTION_TABLE and some options require the iomem=relaxed kernel
command line to work. Features:
@itemize
@item If Coreboot was compiled without CONFIG_STATIC_OPTION_TABLE, it can change
its settings, which are applied after a reboot.
@item It can modify Coreboot images default settings with
@command{nvramtool -C coreboot.rom [...]}.
@item It has various options related to the file format used to store these
settings.
@item It can also read/write the CMOS memory where the Coreboot settings can be
located.
@end itemize")
;; Some files are "GPL-2.0-only or BSD-3-Clause", other are GPL-2.0-only
;; and anyway there is. There is also a license declaration in
;; cli/nvramtool.8 that applies to "This program" which uses the GPLv2.
(license license:gpl2)))
+12 -12
View File
@@ -20,6 +20,18 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages debian)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
#:use-module (guix build-system trivial)
#:use-module (gnu packages adns)
#:use-module (gnu packages autotools)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
@@ -28,7 +40,6 @@
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
#:use-module (gnu packages dbm)
#:use-module (gnu packages dns)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages guile)
@@ -42,17 +53,6 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
#:use-module (gnu packages wget)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
#:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26))
+3 -1
View File
@@ -108,7 +108,9 @@
(lambda _
(invoke "cmake" "--install" "."))))))
(inputs
`(("zlib" ,zlib)))
`(("libconfig" ,libconfig)
("libedit" ,libedit)
("zlib" ,zlib)))
(native-inputs
`(("lld-wrapper" ,(make-lld-wrapper lld-17 #:lld-as-ld? #t))
("llvm" ,llvm-17)
+13 -173
View File
@@ -1,13 +1,12 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015-2018, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016 Nikita <nikita@n0.is>
;;; Copyright © 20162022 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016, 2019-2021 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
;;; Copyright © 2022 Oleg Pykhalov <go.wigust@gmail.com>
@@ -22,11 +21,9 @@
;;; Copyright © 2021, 2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2024 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2024, 2025 Ashish SHUKLA <ashish.is@lostca.se>
;;; Copyright © 2025 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2026 Anderson Torres <anderson.torres.8519@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -49,12 +46,12 @@
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages datastructures)
#:use-module (gnu packages documentation)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages datastructures)
#:use-module (gnu packages elf)
#:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
@@ -68,7 +65,6 @@
#:use-module (gnu packages libidn)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages m4)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages nettle)
#:use-module (gnu packages networking)
@@ -88,173 +84,17 @@
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR $SSL_CERT_FILE))
#:use-module (guix utils))
(define-public adns
(package
(name "adns")
(version "1.6.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "git://git.chiark.greenend.org.uk/~ianmdlvl/adns.git")
(commit (string-append "adns-" version))))
(sha256
(base32
"0ln3l5j7wb1xazrzl76p9xar52p6l2k1cwy7jazxw1acl71k9h5n"))))
(build-system gnu-build-system)
(arguments
(list
;; INFO: Tests expect real name resolution to work.
#:tests? #f
#:configure-flags
#~(list
;; Make sure the programs under bin/ find libadns.so.
(string-append "LDFLAGS=-Wl,-rpath -Wl,"
#$output:out
"/lib"))))
(native-inputs
(list m4))
(home-page "https://www.gnu.org/software/adns/")
(synopsis "Asynchronous DNS client library and utilities")
(description
"GNU adns is a C library that provides easy-to-use @acronym{DNS, Domain
Name System} resolution functionality. The library is asynchronous, allowing
several concurrent calls. The package also includes several command-line
utilities for use in scripts.")
(license license:gpl3+)))
(define-public c-ares
(package
(name "c-ares")
(version "1.34.4")
(source
(origin
(method url-fetch)
(uri (string-append
"https://github.com/c-ares/c-ares/releases/download/v"
version "/" name "-" version ".tar.gz"))
(sha256
(base32
"0br2msk3bpl5myhjp9vr5j2scpspvbg2fpnz69dcrr4ycpnxnf7s"))))
(build-system gnu-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'filter-live-tests
(lambda _
;; Filter tests that require internet access.
(setenv "GTEST_FILTER" "-*.Live*:*.FamilyV4*")))
#$@(if (system-hurd?)
#~((add-after 'unpack 'skip-tests
(lambda _
(substitute* "test/ares-test-main.cc"
(("(^| )main *\\(.*" all)
(string-append all " exit (77);\n")))))
(add-after 'filter-live-tests 'filter-hurd-tests
(lambda _
(setenv "GTEST_FILTER"
(string-append
(getenv "GTEST_FILTER")
":.*Basic/2"
":.*CancelImmediate/2"
":.*CancelImmediateGetHostByAddr/2"
":.*CancelLater/1"
":.*FamilyUnspecified/2"
":.*FamilyV6/2"
":.*GetAddrInfoParallelLookups/1"
":.*GetHostByAddrDestroy/2"
":.*GetHostByNameCNAMENoData/2"
":.*GetHostByNameDestroyAbsolute/2"
":.*GetHostByNameDestroyRelative/2"
":.*GetHostByNameParallelLookups/1"
":.*HostAlias/2"
":.*HostAliasMissing/2"
":.*HostAliasMissingFile/2"
":.*NotImplResponse/2"
":.*RefusedResponse/2"
":.*Resend/1"
":.*RetryWithoutEDNS/2"
":.*SearchDomains/2"
":.*SearchDomainsBare/2"
":.*SearchDomainsServFailOnAAAA/2"
":.*SearchDomainsWithResentReply/1"
":.*SearchHighNdots/2"
":.*SearchNoDataThenFail/2"
":.*SearchNoDataThenNoDataBare/2"
":.*SearchNoDataThenSuccess/2"
":.*ServFailResponse/2"
":.*SimpleQuery/2"
":.*SockCallback/2"
":.*SockConfigureCallback/2"
":.*SortListV4/2"
":.*SortListV6/2"
":.*ThirdServer/2"
":.*TruncationRetry/1"
":.*UnspecifiedFamilyCname6A4/2"
":.*UnspecifiedFamilyV4/2"
":.*UnspecifiedFamilyV6/2")))))
#~()))))
(native-inputs
(list pkg-config))
(home-page "https://c-ares.haxx.se/")
(synopsis "C library for asynchronous DNS requests")
(description
"C-ares is a C library that performs DNS requests and name resolution
asynchronously. It is intended for applications which need to perform DNS
queries without blocking, or need to perform multiple DNS queries in parallel.
The primary examples of such applications are servers which communicate with
multiple clients and programs with graphical user interfaces.")
(license (license:x11-style "https://c-ares.haxx.se/license.html"))))
(define-public c-ares-for-node-lts
(hidden-package c-ares))
(define-public c-ares-for-node-bootstrap
(hidden-package
(package
(inherit c-ares)
(version "1.18.1")
(source
(origin
(method url-fetch)
(uri (string-append
"https://c-ares.haxx.se/download/c-ares-" version
".tar.gz"))
(sha256
(base32
"1kxviskwsaa7dcgscvssxa8ps88pdq7kq4z93gxvz7sam2l54z8s")))))))
;; INFO: gRPC requires a c-ares built with CMake in order to get the .cmake
;; modules. We can not build c-ares itself with CMake because that would
;; introduce a circular dependency through nghttp2.
;;
;; TODO: It would be nice if we could extract the modules somehow and make
;; them work with the "normal" c-ares package instead of building a whole new
;; library.
(define-public c-ares/cmake
(hidden-package
(package
(inherit c-ares)
(build-system cmake-build-system)
(arguments
(list
;; INFO: Tests require name resolution (the normal variant runs no
;; tests).
#:tests? #f)))))
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system copy)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson))
(define-public cloudflare-cli
(let ((commit "2d986d3ec1b0e3158c4bd40e8918947cb74aa392")
+2 -2
View File
@@ -3792,7 +3792,7 @@ to enforce it.")
(define-public python-vunit
(package
(name "python-vunit")
(version "5.0.0-dev.10") ;v4.7.0 dates back from 2 years ago.
(version "5.0.0-dev.9") ;v4.7.0 dates back from 2 years ago.
(source
(origin
(method git-fetch)
@@ -3801,7 +3801,7 @@ to enforce it.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1gr9ghwgqly9zf0sf15ai20sac520rs84b9i5qjxdqpj26ayyl1q"))))
(base32 "1j9rvlshzi4mdy7wah1j8ri63drkjb47xly22q40wvl2xp2ghqgs"))))
(build-system pyproject-build-system)
(arguments
(list
+71 -1
View File
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Pierre-Henry Fröhring <phfrohring@deeplinks.com>
;;; Copyright © 2024 Igor Goryachev <igor@goryachev.org>
;;; Copyright © 2024, 2026 Igorj Gorjaĉev <igor@goryachev.org>
;;; Copyright © 2025 Giacomo Leidi <therewasa@fishinthecalculator.me>
;;;
;;; This file is part of GNU Guix.
@@ -24,6 +24,7 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages compression)
#:use-module (gnu packages base)
#:use-module (gnu packages erlang)
#:use-module (gnu packages erlang-xyz)
#:use-module (gnu packages gettext)
#:use-module (gnu packages)
@@ -423,6 +424,25 @@ implementing function decorators for Elixir.")
(home-page "https://hexdocs.pm/decorator/")
(license license:expat)))
(define-public elixir-depscheck
(package
(name "elixir-depscheck")
(version "1.0.11")
(source
(origin
(method url-fetch)
(uri (hexpm-uri "depscheck" version))
(sha256
(base32 "1v33ml2i19s59518j9031bsvipbf4xxr4xk49qx6xs3qby0018aw"))))
(build-system mix-build-system)
(synopsis "Checking dependency license compatibility in Elixir projects")
(description "This package provides @code{elixir-depscheck}, a @code{CI/CD}
tool for checking dependency license compatibility in Elixir projects. Reads
license information from local hex metadata files and validates compatibility
with your project's license using industry-standard rules.")
(home-page "https://hexdocs.pm/depscheck/")
(license license:expat)))
(define-public elixir-erlex
(package
(name "elixir-erlex")
@@ -731,6 +751,28 @@ Elixir.")
(home-page "https://hexdocs.pm/mimic/")
(license license:asl2.0)))
(define-public elixir-mix-audit
(package
(name "elixir-mix-audit")
(version "2.1.5")
(source
(origin
(method url-fetch)
(uri (hexpm-uri "mix_audit" version))
(sha256
(base32 "0s9dnk42n5665s6l22qf05x63ly11n37am2kmybzccns4672kyc7"))))
(build-system mix-build-system)
(propagated-inputs
(list elixir-jason
elixir-yaml-elixir))
(synopsis "Scanning Mix dependencies for security vulnerabilities")
(description "This package provides @code{elixir-mix-audit}, a
@code{mix deps.audit} task to scan @code{Mix} dependencies for security
vulnerabilities. It draw its inspiration from tools like npm audit and
bundler-audit.")
(home-page "https://hexdocs.pm/mix_audit/")
(license license:bsd-3)))
(define-public elixir-mox
(package
(name "elixir-mox")
@@ -1227,6 +1269,34 @@ provides a polyfill for @code{dbg} which was introduced in Elixir 1.14.")
(home-page "https://hexdocs.pm/verbs/")
(license license:expat)))
(define-public elixir-yaml-elixir
(package
(name "elixir-yaml-elixir")
(version "2.12.0")
(source
(origin
(method url-fetch)
(uri (hexpm-uri "yaml_elixir" version))
(sha256
(base32 "1ihknd9qy8y533zd150ch2yag2h895hsp86wamqpm4dcgfpaqsya"))))
(build-system mix-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-yamerl-hrl-path
(lambda _
(substitute* "lib/yaml_elixir/records.ex"
(("internal\\/yamerl_constr\\.hrl")
"yamerl_constr.hrl")))))))
(propagated-inputs
(list erlang-yamerl))
(synopsis "YAML parser for Elixir based on native Erlang implementation")
(description "This package provides @code{elixir-yaml-elixir}, a @code{YAML}
parser for @code{Elixir} based on native @code{Erlang} implementation.")
(home-page "https://hexdocs.pm/yaml_elixir/")
(license license:expat)))
(define-public elixir-zest
(package
(name "elixir-zest")
+2 -1
View File
@@ -51,7 +51,8 @@
(file-name (git-file-name name version))
(sha256
(base32 "1i10a5d7mlcrav47k7qirqvrqn2kbl5265fbcp8fzavr86xz67m6"))
(patches (search-patches "elixir-path-length.patch"))))
(patches (search-patches "elixir-path-length.patch"
"elixir-vendoring-support.patch"))))
(build-system gnu-build-system)
(arguments
(list
+12 -69
View File
@@ -2809,56 +2809,6 @@ versions of a topic branch.")
diffs.")
(license license:expat))))
(define-public emacs-majutsu
(package
(name "emacs-majutsu")
(version "0.6.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/0WD0/majutsu")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1b840z3p10jyh8d6kmj7syad7308qr9p09gsci4gmha0iw3adnx5"))))
(build-system emacs-build-system)
(arguments
(list
;; XXX: Test fails with `void-function transient--set-layout' when using
;; wrapped ert-runner.
#:test-command
#~'(".ert-runner-real")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-references
(lambda* (#:key inputs #:allow-other-keys)
(emacs-substitute-variables "majutsu-jj.el"
("majutsu-jj-executable"
(search-input-file inputs "bin/jj")))))
(add-after 'install 'install-docs
(lambda _
(with-directory-excursion "docs"
(invoke "make" "majutsu.info")
(install-file "majutsu.info"
(in-vicinity #$output "share/info"))))))))
(native-inputs
;; Use unwrapped ert-runner in test, adding its inputs here.
(modify-inputs (package-inputs emacs-ert-runner)
(delete "bash-minimal")
(prepend emacs-ert-runner texinfo)))
(inputs (list jujutsu))
(propagated-inputs (list emacs-magit))
(home-page "https://github.com/0WD0/majutsu")
(synopsis "Emacs interface for Jujutsu version control system")
(description
"Majutsu provides a @code{emacs-magit}-style interface for
@code{jujutsu}, offering an efficient way to interact with Jujutsu repositories
from within Emacs.")
(license
(list license:gpl3+
license:expat))))
(define-public emacs-conflict-buttons
;; No releases
(let ((commit "22af851d6a0cdd226ef7ba0db54fa096c8ddf235")
@@ -22429,7 +22379,7 @@ are common in Chromium-derived projects.")
(define-public emacs-gnosis
(package
(name "emacs-gnosis")
(version "0.10.3")
(version "0.8.0")
(source
(origin
(method git-fetch)
@@ -22438,7 +22388,7 @@ are common in Chromium-derived projects.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0kpzc2jw51sklz15v0d0vzm5ck05n3d90l02la4nxn8r85jb1f53"))))
(base32 "003pmd0ahpcss5ydk3wbx5j45225ypa85zrgljz5qajijiybvxpi"))))
(build-system emacs-build-system)
(arguments
(list
@@ -22451,21 +22401,20 @@ are common in Chromium-derived projects.")
(lambda _
(setenv "HOME"
(getenv "TMPDIR"))
(mkdir-p (string-append
(getenv "HOME")
"/.emacs.d"))))
(mkdir-p (string-append (getenv "HOME") "/.emacs.d"))))
(add-before 'install 'make-info
(lambda _
(invoke "make" "doc" "GUIX_SHELL="))))))
(native-inputs (list texinfo))
(propagated-inputs (list emacs-transient))
(propagated-inputs (list emacs-compat emacs-emacsql emacs-org-gnosis
emacs-transient))
(home-page "https://thanosapollo.org/projects/gnosis/")
(synopsis "Personal knowledge system for GNU Emacs")
(synopsis "Spaced repetition system for GNU Emacs")
(description
"Gnosis is a personal knowledge system for GNU Emacs that
integrates note-taking with spaced repetition. It combines
Zettelkasten-style linked notes with self-testing review,
all stored in a single SQLite database.")
"Gnosis is a spaced repetition system for note-taking and self-testing
where notes are formatted as Question/Answer/Explanation. Notes are reviewed
at spaced intervals based on the success or failure in recalling the answer to
each question.")
(license license:gpl3+)))
(define-public emacs-drag-stuff
@@ -39491,16 +39440,10 @@ user interfaces for various built-in modes.")
(make-file-writable "calibredb-core.el")
(let ((calibredb (search-input-file inputs "/bin/calibredb"))
(fetch-ebook-metadata
(search-input-file inputs "/bin/fetch-ebook-metadata"))
(ebook-convert
(search-input-file inputs "/bin/ebook-convert"))
(calibre-debug
(search-input-file inputs "/bin/calibre-debug")))
(search-input-file inputs "/bin/fetch-ebook-metadata")))
(emacs-substitute-variables "calibredb-core.el"
("calibredb-fetch-metadata-program" fetch-ebook-metadata)
("calibredb-program" calibredb)
("calibredb-convert-program" ebook-convert)
("calibredb-debug-program" calibre-debug))))))))
("calibredb-program" calibredb))))))))
(inputs
(list calibre))
(propagated-inputs
+1 -1
View File
@@ -1902,7 +1902,7 @@ PicoBlaze; and Zilog Z80 families, plus many of their variants.")
(inputs
(list readline ucsim))
(native-inputs
(list bison boost flex python-minimal-wrapper texinfo zlib))
(list bison boost flex python-2 texinfo zlib))
(home-page "https://sdcc.sourceforge.net/")
(synopsis "C compiler suite for 8-bit microcontrollers")
(description "SDCC is a retargetable, optimizing Standard C compiler suite
+4 -13
View File
@@ -50,7 +50,6 @@
;;; Copyright © 2026 Cayetano Santos <csantosb@inventati.org>
;;; Copyright © 2026 Daniel Khodabakhsh <d@niel.khodabakh.sh>
;;; Copyright © 2026 Spencer King <spencer.king@wustl.edu>
;;; Copyright © 2026 Brent Wedderburn <mb@bean.za.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -254,21 +253,13 @@ their devices.")
(replace 'build (assoc-ref gnu:%standard-phases 'build))
(replace 'check (assoc-ref gnu:%standard-phases 'check))
(replace 'install
(lambda _
(let* ((bin (string-append #$output "/bin"))
(share (string-append #$output "/share"))
(apps (string-append share "/applications"))
(icons (string-append share "/icons/hicolor/128x128/apps")))
(lambda* (#:key outputs #:allow-other-keys)
(let ((bin (string-append #$output "/bin"))
(share (string-append #$output "/share/librecad")))
(mkdir-p bin)
(install-file "unix/librecad" bin)
(mkdir-p share)
(copy-recursively "unix/resources"
(string-append share "/librecad"))
(mkdir-p apps)
(install-file "desktop/librecad.desktop" apps)
(mkdir-p icons)
(copy-file "librecad/res/main/librecad.png"
(string-append icons "/librecad.png"))))))))
(copy-recursively "unix/resources" share)))))))
(inputs
(list bash-minimal boost muparser freetype qtbase-5 qtsvg-5))
(native-inputs
+3 -4
View File
@@ -2202,7 +2202,7 @@ while working with large number of files.")
(define-public squashfuse
(package
(name "squashfuse")
(version "0.6.1")
(version "0.1.105")
(source
(origin
(method git-fetch)
@@ -2211,7 +2211,7 @@ while working with large number of files.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "16ds2xlk6hb5cggi6di8s0aalir3mrx7rk24rw5daad1xw4dbq0y"))))
(base32 "03aw8pw8694jyrzpnbry05rk9718sqw66kiyq878bbb679gl7224"))))
(build-system gnu-build-system)
(arguments
(list
@@ -2249,8 +2249,7 @@ memory-efficient.")
(install-file "fuseprivate.h"
(string-append #$output
"/include/squashfuse/")))))))))
(inputs (list `(,fuse "out")
`(,fuse "static")
(inputs (list fuse-for-appimage
`(,zstd "lib")
`(,zstd "static")
`(,zlib "out")
+158 -1
View File
@@ -2,7 +2,7 @@
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2016, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
@@ -84,6 +84,7 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages mtools)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
@@ -523,6 +524,162 @@ Loke and Heimdall communicate via the custom Samsung-developed protocol typicall
referred to as the \"Odin 3 protocol\".")
(license license:expat)))
(define-public ifdtool
(package
(name "ifdtool")
(version "25.09")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://review.coreboot.org/coreboot")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1a1n64dwr5fzdnaj45bjci85ap5yra5gwz4x056zn6481xwvbsmv"))))
(build-system gnu-build-system)
(arguments
(list
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
"INSTALL=install"
(string-append "PREFIX=" #$output))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "util/ifdtool")))
(delete 'configure)) ; no configure script
#:tests? #f)) ; no test suite
(home-page "https://doc.coreboot.org/util/ifdtool/")
(synopsis "Intel Firmware Descriptor dumper")
(description "This package provides @command{ifdtool}, a program to
dump Intel Firmware Descriptor data of an image file.")
(license license:gpl2)))
(define-public bincfg
(package
(name "bincfg")
(version "25.09")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://review.coreboot.org/coreboot")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1a1n64dwr5fzdnaj45bjci85ap5yra5gwz4x056zn6481xwvbsmv"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ; no test suite
#:make-flags
#~(list
(string-append "CC=" #$(cc-for-target)))
#:phases
#~(modify-phases %standard-phases
(delete 'configure) ; no configure script
(add-after 'unpack 'chdir
(lambda _
(chdir "util/bincfg")))
(add-after 'build 'build-binaries
(lambda* (#:key make-flags #:allow-other-keys)
(for-each
(lambda (target result)
(apply invoke "make" (string-append "gen-" target) make-flags)
(rename-file result
(string-append target ".bin")))
(list
;; generate GbE for X200
"gbe-ich9m"
;; generate GbE for X220/x230
"gbe-82579LM"
;; generate IFD for X200
"ifd-x200")
(list
"flashregion_3_gbe.bin"
"flashregion_3_gbe.bin"
"flashregion_0_fd.bin"))))
;; The Makefile has no install target.
(replace 'install
(lambda _
(let ((bin (string-append #$output "/bin"))
(lib (string-append #$output "/lib/bincfg"))
(data (string-append #$output "/share/bincfg")))
;; Install the program
(install-file "bincfg" bin)
;; And its data
(for-each
(lambda (path)
(install-file path data))
(append (find-files "." ".*\\.set")
(find-files "." ".*\\.spec")))
;; And the files generated with the data
(for-each
(lambda (path)
(install-file path lib))
(find-files "." ".*\\.bin"))))))))
(native-inputs (list bison flex))
(home-page "https://coreboot.org")
(synopsis "Encoder/decoder for binary formats described in text files")
(description "
The bincfg program comes with specifications files for the following binary
formats:
@itemize
@item Various DDR3 and DDR4 SPD
@item Configuration data for the Intel 82579LM Gigabit Ethernet PHY
@item Configuration data for the Intel Gigabit Ethernet controller present in
the Intel ICH9-M chipset.
@item Intel Firmware Descriptor data for the Lenovo ThinkPad X200
@item Configuration data for the ITE IT8718F SuperIO
@end itemize
It also comes with example files generated by bincfg.")
(license license:gpl3+)))
(define-public intelmetool
(package
(name "intelmetool")
(version "25.09")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://review.coreboot.org/coreboot")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1a1n64dwr5fzdnaj45bjci85ap5yra5gwz4x056zn6481xwvbsmv"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ;no test suite
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
"INSTALL=install"
(string-append "PREFIX=" #$output))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'chdir
(lambda _
(chdir "util/intelmetool")))
(delete 'configure) ;no configure script
(delete 'check))))
(inputs (list pciutils zlib))
(home-page
"https://github.com/coreboot/coreboot/tree/main/util/intelmetool/")
(synopsis "Intel Management Engine tools")
(description "This package provides tools for working with Intel
Management Engine (ME). You need to @code{sudo rmmod mei_me} and
@code{sudo rmmod mei} before using this tool. Also pass
@code{iomem=relaxed} to the Linux kernel command line.")
(license license:gpl2)
;; This is obviously an Intel thing, plus it requires <cpuid.h>.
(supported-systems '("x86_64-linux" "i686-linux"))))
(define-public me-cleaner
(package
(name "me-cleaner")
+42 -142
View File
@@ -97,7 +97,6 @@
;;; Copyright © 2025 Aiden Isik <aidenisik+git@member.fsf.org>
;;; Copyright © 2026 Cayetano Santos <csantosb@inventati.org>
;;; Copyright © 2026 Carlos Durán Domínguez <wurt@wurt.eu>
;;; Copyright © 2026 Nikita Alkhovik <forgoty13@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -115,32 +114,40 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages games)
#:autoload (gnu packages pascal) (fpc)
#:use-module (ice-9 match)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix utils)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix svn-download)
#:use-module (guix gexp)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages admin)
#:use-module (gnu packages adns)
#:use-module (gnu packages algebra)
#:use-module (gnu packages assembly)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages admin)
#:use-module (gnu packages audio)
#:use-module (gnu packages avahi)
#:use-module (gnu packages assembly)
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages c)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages code)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages crypto)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages dns)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages docbook)
#:use-module (gnu packages emacs)
#:use-module (gnu packages emulators)
#:use-module (gnu packages flex)
@@ -195,8 +202,8 @@
#:use-module (gnu packages maths)
#:use-module (gnu packages messaging)
#:use-module (gnu packages mp3)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages music)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages netpbm)
#:use-module (gnu packages networking)
@@ -205,6 +212,7 @@
#:use-module (gnu packages oneapi)
#:use-module (gnu packages opencl)
#:use-module (gnu packages pcre)
#:autoload (gnu packages pascal) (fpc)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages perl-compression)
@@ -222,9 +230,9 @@
#:use-module (gnu packages readline)
#:use-module (gnu packages regex)
#:use-module (gnu packages ruby-xyz)
#:use-module (gnu packages shells)
#:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
#:use-module (gnu packages shells)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages squirrel)
#:use-module (gnu packages swig)
@@ -241,31 +249,22 @@
#:use-module (gnu packages wget)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system haskell)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system qt)
#:use-module (guix build-system scons)
#:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix svn-download)
#:use-module (guix utils)
#:use-module (ice-9 match)
#:use-module ((srfi srfi-1) #:hide (zip))
#:use-module (srfi srfi-26))
@@ -484,7 +483,7 @@ mouse and joystick control, and original music.")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/drummyfish/anarch")
(url "https://git.sr.ht/~drummyfish/Anarch")
(commit commit)))
(file-name (git-file-name name version))
(sha256
@@ -4277,11 +4276,11 @@ interface or via an external visual interface such as GNU XBoard.")
(("TestIOTouchDragAnywhere (test_integration)" all _) _))))
(add-before 'bootstrap 'autoreconf
(lambda _
;; automake is out of date in the source
;; autoreconf updates the automake scripts
(invoke "autoreconf")
;; Build fails when autom4te.cache exists.
(delete-file-recursively "autom4te.cache")
;; automake is out of date in the source
;; autoreconf updates the automake scripts
(invoke "autoreconf")
;; Build fails when autom4te.cache exists.
(delete-file-recursively "autom4te.cache")
#t))
(add-after 'install 'delete-freedinkedit-desktop
(lambda* (#:key outputs #:allow-other-keys)
@@ -4611,105 +4610,6 @@ for common mesh file formats, and collision detection.")
(home-page "https://irrlicht.sourceforge.io/")
(license license:zlib)))
(define-public pegasus-frontend
(let ((commit "c3462e68bf3a178420b44f356998255f8d82a113")
(revision "weekly_2024w38"))
(package
(name "pegasus-frontend")
(version (git-version "0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mmatyas/pegasus-frontend")
(commit commit)))
(sha256
(base32 "1p350nlbif33mw5cbqxwli5yf47dxpransxlj2wp8xvh4w1rb3jx"))
(file-name (git-file-name name version))))
(build-system qt-build-system)
(arguments
(list
#:qtbase qtbase-5
#:make-flags
#~(list (string-append "INSTALL_DESKTOPDIR="
#$output "/share/applications")
(string-append "INSTALL_ICONDIR="
#$output "/share/icons/hicolor"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'copy-modules
(lambda* (#:key inputs #:allow-other-keys)
(copy-recursively #$(this-package-native-input
"SortFilterProxyModel")
"./thirdparty/SortFilterProxyModel")
(copy-recursively #$(this-package-native-input
"pegasus-theme-grid")
"./src/themes/pegasus-theme-grid")
(copy-recursively #$(this-package-native-input
"pegasus-frontend-translations") "./lang")))
(add-before 'check 'prepare-test-env
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(setenv "QT_QPA_PLATFORM" "offscreen")
(setenv "QT_QUICK_BACKEND" "software"))))
(add-after 'qt-wrap 'gst-wrap
(lambda* (#:key inputs #:allow-other-keys)
(wrap-program (string-append #$output "/bin/pegasus-fe")
`("GST_PLUGIN_PATH" suffix
,(search-path-as-list '("lib/gstreamer-1.0")
(map cdr inputs)))))))))
(inputs (list sdl2
bash-minimal
qtbase-5
qtsvg-5
qtdeclarative-5
qtgraphicaleffects
qtmultimedia-5
qtgamepad-5
gst-plugins-base
gst-plugins-bad
gst-plugins-good))
(native-inputs (list qttools-5
(origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/mmatyas/pegasus-frontend-translations")
(commit
"46c7cecec745bdd4c61bfc7ecb967156ad208642")))
(file-name "pegasus-frontend-translations")
(sha256 (base32
"0rvlx199wdrjxr8pgibga556zf4njq4w2n31fdirqgb631rgyqxd")))
(origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/mmatyas/pegasus-theme-grid")
(commit
"5951db6f2a4fe0db6a4fd6f00da1f280cadfa536")))
(file-name "pegasus-theme-grid")
(sha256 (base32
"1nfnq6lppdm9ni6jk48l1i7hk90m8w2p13swl5nr4zwczln8dbz1")))
(origin
(method git-fetch)
(uri (git-reference
(url
"https://github.com/mmatyas/SortFilterProxyModel")
(commit
"2061f8136ba372fd06c1928a610258b7d88cb144")))
(file-name "SortFilterProxyModel")
(sha256 (base32
"16va8fcf7v6kfm8r9zym0516qrk4vlsy5wmpd3r3002wpz8q39h2")))))
(synopsis
"Graphical frontend for launching and managing game collection")
(description
"Pegasus is a graphical frontend for browsing your game library and
launching all kinds of games from the same place. It's focusing on
customizability, cross platform support (including embedded)
and high performance.")
(home-page "https://pegasus-frontend.org")
(license license:gpl3+))))
(define-public mars
;; No official release since 2013: use the latest commit.
(let ((commit "84664cda094efe6e49d9b1550e4f4f98c33eefa2")
@@ -6749,7 +6649,7 @@ in-window at 640x480 resolution or fullscreen.")
(define-public warzone2100
(package
(name "warzone2100")
(version "4.6.3")
(version "4.6.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/warzone2100/releases/"
@@ -6765,7 +6665,7 @@ in-window at 640x480 resolution or fullscreen.")
"inih" "re2" "utf8proc" "utfcpp")))))
(sha256
(base32
"0fmiy0pm56yy69c0nhynjdiaslwlfg8cdvfl5s78g5pzdi1y47s3"))))
"02x5ihkpfkpjxwvh00d8yqzd796af7d684nk96hzhhq28qw5bb16"))))
(build-system cmake-build-system)
(arguments (list #:configure-flags #~'("-GNinja"
"-DWZ_DISTRIBUTOR=Guix"
@@ -6802,7 +6702,7 @@ in-window at 640x480 resolution or fullscreen.")
opusfile
physfs
re2
sdl3
sdl2
sqlite
utf8proc
utfcpp
@@ -9243,7 +9143,7 @@ elements to achieve a simple goal in the most complex way possible.")
(define-public the-powder-toy
(package
(name "the-powder-toy")
(version "99.5.394")
(version "99.3.384")
(source
(origin
(method git-fetch)
@@ -9252,7 +9152,7 @@ elements to achieve a simple goal in the most complex way possible.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0wd0sg3lpl9xafyj76syvpdjh574cxjmxaf9kssfjjxs20y3hjn8"))
(base32 "0l067j0bbzvr0i2prxrgb0af4xdpl648x741jgnyp4bjzdbm61x7"))
(snippet
#~(begin (use-modules (guix build utils))
(substitute* "meson.build"
@@ -10243,7 +10143,7 @@ your score gets higher, you level up and the blocks fall faster.")
"-DES_USE_SYSTEM_LIBRARIES=1")
#:make-flags #~(list (string-append "PREFIX=" #$output))
#:build-type "Release"
#:tests? (not (target-x86-32?))
#:tests? (not (target-x86-32?))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
@@ -11227,7 +11127,7 @@ levels to unlock.")
(define-public simgear
(package
(name "simgear")
(version "2024.1.5")
(version "2024.1.4")
(source
(origin
(method git-fetch)
@@ -11239,7 +11139,7 @@ levels to unlock.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1ygdc8xkrj7qzm9zklibb1v5w3jp718707zmiwl8fn63sxanbqsq"))
(base32 "1k855yxq06gv42f83c3k9hrsz05xxj6vi1c60227zm0dx3jkb4jq"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -11291,7 +11191,7 @@ and also provides the base for the FlightGear Flight Simulator.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0hpfvacnba2kcyjwm01lkrqkz0gccvljjil8b0ai42l38hxn5r5h"))
(base32 "0xlpry1g5xci4qmj37rjk4sdhg9zada0vw6a047gsm7cq5p7pkxk"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -11375,12 +11275,12 @@ and also provides the base for the FlightGear Flight Simulator.")
("flightgear-data"
,(origin
(method url-fetch)
(uri (string-append "https://mirrors.ibiblio.org/flightgear/ftp/release-"
(uri (string-append "mirror://sourceforge/flightgear/release-"
(version-major+minor version) "/"
"FlightGear-" version "-data.txz"))
(sha256
(base32
"0d81yz9jqmg2jzw5rm769pl1j18pvh2mjkx61l13kw76ja8p6159"))))))
"0pgwxpm5cdm0y6klrmpqspmhmqsfxshz4jljw2kd4wy18fqzd1s6"))))))
(home-page "https://www.flightgear.org/")
(synopsis "Flight simulator")
(description "The goal of the FlightGear project is to create a
@@ -12284,7 +12184,7 @@ for using any UCI engine and also to connect UCI engines to Lichess and IRC.")
(base32 "1kkcnpkzgybm7rqg7nafd7sqd5m4alns6l4j5zcf3p41jdc9s3iv"))))
(build-system glib-or-gtk-build-system)
(inputs (list automake autoconf pkg-config intltool
gettext-minimal libtool glib gtk+-2 boost))
gettext-minimal libtool glib gtk+-2 boost))
(arguments (list #:tests? #f)) ; No tests in source.
(home-page "http://nine-mens-morris.net/downloads.html")
(synopsis "Implementation of the board game Nine Men's Morris")
+2 -2
View File
@@ -2936,7 +2936,7 @@ to the OSM opening hours specification.")
(define-public josm
(package
(name "josm")
(version "19555")
(version "19539")
(source (origin
(method svn-fetch)
(uri (svn-reference
@@ -2945,7 +2945,7 @@ to the OSM opening hours specification.")
(recursive? #f)))
(sha256
(base32
"0kpshdj8kf9ag7h1qqrh9jqc6c9iv8v369mk60a8g7cbzf0xpblw"))
"05kslpvdwl4fldjzl6m2kmqvbmjv5yvipfavg01l30ywhw2c7v7v"))
(file-name (string-append name "-" version "-checkout"))
(modules '((guix build utils)))
(snippet
+4 -7
View File
@@ -39,7 +39,6 @@
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages ebook)
#:use-module (gnu packages enchant)
#:use-module (gnu packages fonts)
#:use-module (gnu packages freedesktop)
@@ -682,7 +681,7 @@ and a high score table.")
(define-public komikku
(package
(name "komikku")
(version "50.1.0")
(version "1.99.0")
(source
(origin
(method git-fetch)
@@ -692,7 +691,7 @@ and a high score table.")
(file-name (git-file-name name version))
(sha256
(base32
"0q858zvpqy32nb2lxdfy1k6fgal46kp634534fg983192fyk1pqp"))))
"1did8rh3aw6d3g1myavsma986rwashw09g3m442lv8fzmdiw18r4"))))
(build-system meson-build-system)
(arguments
(list
@@ -741,10 +740,8 @@ and a high score table.")
python-cloudscraper
python-colorthief
python-dateparser
python-ebooklib
python-emoji
python-keyring
python-jxlpy
python-lxml
python-magic
python-natsort
@@ -780,7 +777,7 @@ developed with the aim of being used with the Librem 5 phone.")
(define-public komikku-servers
(package
(name "komikku-servers")
(version "50.1.0")
(version "1.99.0")
(source
(origin
(method git-fetch)
@@ -790,7 +787,7 @@ developed with the aim of being used with the Librem 5 phone.")
(file-name (git-file-name name version))
(sha256
(base32
"0q858zvpqy32nb2lxdfy1k6fgal46kp634534fg983192fyk1pqp"))))
"1did8rh3aw6d3g1myavsma986rwashw09g3m442lv8fzmdiw18r4"))))
(build-system copy-build-system)
(arguments
(list
+31 -34
View File
@@ -11258,20 +11258,20 @@ basically a text box in which notes can be written.")
(define-public gucharmap
(let ((unicode-files
'(("Blocks.txt"
"05fbpc7miqpv7yic5xkm74ybzxkaf5r58ww21a1iwxqr3apyzvf0")
"041sk54v6rjzb23b9x7yjdwzdp2wc7gvfz7ybavgg4gbh51wm8x1")
("DerivedAge.txt"
"160r7wwidj3c2jl4cw3am0c5d0l7qndis9xx38h0y8fwidvdzv7q")
"04j92xp07v273z3pxkbfmi1svmw9kmnjl9nvz9fv0g5ybk9zk7r6")
("NamesList.txt"
"1x1smmn2kmy8clf6ny2njln75i888lidckc6ssyp2gdhgasdrkhd")
"0vsq8gx7hws8mvxy3nlglpwxw7ky57q0fs09d7w9xgb2ylk7fz61")
("Scripts.txt"
"1grmn3bd4m0rcmz544h94kimlj3gf1f343s8177ddrxfmg9m0plz")
"18c63hx4y5yg408a8d0wx72d2hfnlz4l560y1fsf9lpzifxpqcmx")
("UnicodeData.txt"
"0327jqfw2hyq8x986cfhwrp717r2jl7ydjjwvzp7biarrcfzq7if")
"07d1kq190kgl92ispfx6zmdkvwvhjga0ishxsngzlw8j3kdkz4ap")
("Unihan.zip"
"0pjbyf77lbaxdhwidvpgp81cw13lfhlaw1ynn9vsmkssahmqp97p"))))
"1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf"))))
(package
(name "gucharmap")
(version "17.0.1")
(version "12.0.1")
(source
(origin
(method url-fetch)
@@ -11280,19 +11280,16 @@ basically a text box in which notes can be written.")
name "-" version ".tar.xz"))
(sha256
(base32
"0sfixlmk7qajcvls6kv2hfczmjafjcr54aczwcdfmp5jjll4m17r"))))
(build-system meson-build-system)
"0m915hm2b2d6r3vs1l80rqpssvg78pv8j6nv54yg62kzknnqmpir"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:modules ((ice-9 match)
(guix build meson-build-system)
(guix build glib-or-gtk-build-system)
(guix build utils))
#:glib-or-gtk? #t
#:configure-flags
(list
"-Ducd_path=../unicode-data"
"-Dvapi=false"
;; gtk-doc fails because it didn't generate a devhelp2 file
"-Ddocs=false")
"CFLAGS=-g -O2 -Wno-error=incompatible-pointer-types"
"--with-unicode-data=../unicode-data")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'prepare-unicode-data
@@ -11305,26 +11302,26 @@ basically a text box in which notes can be written.")
',unicode-files))
#t)))))
(native-inputs
(cons* desktop-file-utils
(list glib "bin")
gobject-introspection
intltool
itstool
pkg-config
python
unzip
(map (match-lambda
((file hash)
(origin
(method url-fetch)
(uri (string-append
"https://www.unicode.org/Public/17.0.0/ucd/"
file))
(sha256 (base32 hash)))))
unicode-files)))
`(("desktop-file-utils" ,desktop-file-utils)
("glib:bin" ,glib "bin") ; for glib-compile-resources.
("gobject-introspection" ,gobject-introspection)
("intltool" ,intltool)
("itstool" ,itstool)
("pkg-config" ,pkg-config)
,@(map (match-lambda
((file hash)
`(,file
,(origin
(method url-fetch)
(uri (string-append
"http://www.unicode.org/Public/12.0.0/ucd/"
file))
(sha256 (base32 hash))))))
unicode-files)
("unzip" ,unzip)))
(inputs
(list gtk+
libxml2))
`(("gtk+" ,gtk+)
("xmllint" ,libxml2)))
(home-page "https://wiki.gnome.org/Apps/Gucharmap")
(synopsis "Unicode character picker and font browser")
(description
+21 -21
View File
@@ -43,33 +43,34 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages gnupg)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages base)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages dns)
#:use-module (gnu packages crypto)
#:use-module (gnu packages emacs)
#:use-module (gnu packages enlightenment)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages openldap)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt)
#:use-module (gnu packages pth)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages compression)
#:use-module (gnu packages gtk)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages security-token)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages swig)
@@ -77,24 +78,23 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages tor)
#:use-module (gnu packages web)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages)
#:use-module (gnu packages xml)
#:use-module (gnu packages popt)
#:use-module (gnu packages xdisorg)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix git-download)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system qt)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (ice-9 match)
#:use-module (guix build-system meson)
#:use-module (srfi srfi-1))
(define-public libgpg-error
+5 -5
View File
@@ -605,9 +605,9 @@ in the case of Firefox, it is browser/locales/all-locales."
"zh-TW"))
;;; Please keep these versions in sync with icedove.
(define %icecat-base-version "140.9.1")
(define %icecat-base-version "140.9.0")
(define %icecat-version (string-append %icecat-base-version "-gnu1"))
(define %icecat-build-id "20260414000000") ;must be of the form YYYYMMDDhhmmss
(define %icecat-build-id "20260324000000") ;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'
@@ -627,9 +627,9 @@ in the case of Firefox, it is browser/locales/all-locales."
"firefox-" upstream-firefox-version ".source.tar.xz"))
(sha256
(base32
"1hld2kbzvrmr7pqq0r5hw639xl8kw29lm2hsbn0m4kxang1fdlj5"))))
"0b79x61w51fjf12p5sr9pipg4b3fjdnbsg0j20fdai3jq6jb4wmr"))))
(gnuzilla-commit "f3595923458a5255f61a3853bd83bb5f004dc3bc")
(gnuzilla-commit "10a8be3fcf725ed01ffb7279ec27c2fba55dd2d2")
(gnuzilla-source
(origin
(method git-fetch)
@@ -640,7 +640,7 @@ in the case of Firefox, it is browser/locales/all-locales."
(string-take gnuzilla-commit 8)))
(sha256
(base32
"03kc08cvmdv3sxihf5hfhw2k91mg1y6f46b3x47p7q98phgk03cv"))))
"076s3zpq0cj24a2pjarb57k1xv9z45xazps8rgypzw8yc4pxi9rj"))))
;; 'search-patch' returns either a valid file name or #f, so wrap it
;; in 'assume-valid-file-name' to avoid 'local-file' warnings.
-714
View File
@@ -49,7 +49,6 @@
;;; Copyright © 2025 Jared Klingenberger <jkling@noreply.codeberg.org>
;;; Copyright © 2026 Carlos Durán Domínguez <wurt@wurt.eu>
;;; Copyright © 2026 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2026 Evgeny Pisemsky <mail@pisemsky.site>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -387,7 +386,6 @@ devices.")
;; - cloud.google.com/go/kms
;; - cloud.google.com/go/longrunning
;; - cloud.google.com/go/monitoring
;; - cloud.google.com/go/security
;; - cloud.google.com/go/storage
(for-each delete-file-recursively
(list "auth"
@@ -396,7 +394,6 @@ devices.")
"kms"
"longrunning"
"monitoring"
"security"
"storage"))))))
(build-system go-build-system)
(arguments
@@ -786,51 +783,6 @@ its service definition.")
"This package provides a Go Client Library for Cloud Monitoring API.")
(license license:asl2.0)))
(define-public go-cloud-google-com-go-security
(package
(name "go-cloud-google-com-go-security")
(version "1.21.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/googleapis/google-cloud-go")
(commit (go-version->git-ref version #:subdir "security"))))
(file-name (git-file-name name version))
(sha256
(base32 "1pn77lf1d22sqpkia9zccdhdihlqc48lls6y9npc2wrp4lman2kv"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet #~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "security")))))
(build-system go-build-system)
(arguments
(list
#:skip-build? #t
#:import-path "cloud.google.com/go/security"
#:unpack-path "cloud.google.com/go"))
(propagated-inputs
(list go-cloud-google-com-go-iam
go-cloud-google-com-go-longrunning
go-github-com-googleapis-gax-go-v2
go-google-golang-org-api
go-google-golang-org-genproto
go-google-golang-org-genproto-googleapis-api
go-google-golang-org-grpc
go-google-golang-org-protobuf))
(home-page "https://cloud.google.com/go")
(synopsis "Google Cloud Certificate Authority API")
(description
"This package provides a Go Client Library for Certificate Authority API.")
(license license:asl2.0)))
(define-public go-cloud-google-com-go-storage
(package
(name "go-cloud-google-com-go-storage")
@@ -10262,54 +10214,6 @@ Call}.")
(propagated-inputs
(list go-golang-org-x-net))))
(define-public go-github-com-jellydator-ttlcache-v3
(package
(name "go-github-com-jellydator-ttlcache-v3")
(version "3.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jellydator/ttlcache")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0c7k99d0km5vplfikb58j2wbriy3mzzrrfrc0d85x50km0y4g4ln"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/jellydator/ttlcache/v3"
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'remove-examples-and-benchmarks
(lambda* (#:key tests? import-path #:allow-other-keys)
(with-directory-excursion (string-append "src/" import-path)
(delete-file-recursively "bench")
(delete-file-recursively "examples")))))))
(native-inputs
(list go-github-com-stretchr-testify
go-go-uber-org-goleak))
(propagated-inputs
(list go-golang-org-x-sync))
(home-page "https://github.com/jellydator/ttlcache")
(synopsis "In-memory cache with item expiration and generics")
(description
"TTLCache is an in-memory cache with item expiration and generics which
provides the following features:
@itemize
@item simple API
@item type parameters
@item item expiration and automatic deletion
@item automatic expiration time extension on each Get call
@item loader interface that may be used to load/lazily initialize missing
citem items
@item thread safety
@item event handlers (insertion, update, and eviction)
@item metrics
@end itemize")
(license license:expat)))
(define-public go-github-com-jeremija-gosubmit
(package
(name "go-github-com-jeremija-gosubmit")
@@ -10611,33 +10515,6 @@ jsoniter and variable type declarations (if any). jsoniter interfaces gives
https://github.com/flynn/noise crypto protocols.")
(license license:expat)))
(define-public go-github-com-juju-ratelimit
(package
(name "go-github-com-juju-ratelimit")
(version "1.0.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/juju/ratelimit")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1qbjcm4y53awkqmpxb1nm9c1xdylc44vph4mn30qjb5wrcqy7c1r"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/juju/ratelimit"))
(native-inputs
(list go-gopkg-in-check-v1))
(home-page "https://github.com/juju/ratelimit")
(synopsis "Efficient token bucket implementation")
(description
"The ratelimit package provides an efficient
@url{http://en.wikipedia.org/wiki/Token_bucket, token bucket} implementation
that can be used to limit the rate of arbitrary things.")
(license license:lgpl3)))
(define-public go-github-com-julienschmidt-httprouter
(package
(name "go-github-com-julienschmidt-httprouter")
@@ -16098,512 +15975,6 @@ support.")
kinds of referrer URLs (search, social, ...).")
(license license:expat)))
(define-public go-github-com-sigstore-rekor
(package
(name "go-github-com-sigstore-rekor")
(version "1.4.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sigstore/rekor")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1g2xma0fzy7a4nv7bj04pj9vqg4hbbz3j3jxkir0sxql5ragj36d"))))
(build-system go-build-system)
(arguments
(list
#:skip-build? #t
#:import-path "github.com/sigstore/rekor"
;; XXX: Remove when all inputs are packaged.
#:test-subdirs
#~(list "pkg/events/newentry"
"pkg/indexstorage/mysql"
"pkg/pki/minisign"
"pkg/pki/pgp"
"pkg/pki/ssh"
"pkg/pki/tuf"
"pkg/pki/x509"
"pkg/pubsub/gcp"
"pkg/util")))
(native-inputs
(list go-github-com-asaskevich-govalidator
go-github-com-data-dog-go-sqlmock
go-github-com-golang-mock
go-github-com-google-go-cmp
go-github-com-spf13-cobra
go-github-com-spf13-pflag
go-github-com-spf13-viper
go-github-com-stretchr-testify
go-go-uber-org-goleak
go-sigs-k8s-io-release-utils))
(propagated-inputs
(list go-cloud-google-com-go-iam
go-github-com-asaskevich-govalidator
go-github-com-blang-semver
go-github-com-cyberphone-json-canonicalization
go-github-com-go-chi-chi-v5
go-github-com-go-openapi-errors
go-github-com-go-openapi-loads
go-github-com-go-openapi-runtime
go-github-com-go-openapi-spec
go-github-com-go-openapi-strfmt
go-github-com-go-openapi-swag
go-github-com-go-openapi-swag-conv
go-github-com-go-openapi-validate
go-github-com-go-sql-driver-mysql
go-github-com-go-viper-mapstructure-v2
go-github-com-google-trillian
go-github-com-grpc-ecosystem-go-grpc-middleware
go-github-com-hashicorp-go-cleanhttp
go-github-com-hashicorp-go-retryablehttp
go-github-com-in-toto-in-toto-golang
go-github-com-jedisct1-go-minisign
go-github-com-jmoiron-sqlx
go-github-com-prometheus-client-golang
go-github-com-redis-go-redis-v9
go-github-com-rs-cors
go-github-com-secure-systems-lab-go-securesystemslib
go-github-com-sigstore-protobuf-specs
go-github-com-sigstore-sigstore
go-github-com-sigstore-sigstore-pkg-signature-kms-aws
go-github-com-sigstore-sigstore-pkg-signature-kms-azure
go-github-com-sigstore-sigstore-pkg-signature-kms-gcp
go-github-com-sigstore-sigstore-pkg-signature-kms-hashivault
go-github-com-theupdateframework-go-tuf
go-github-com-tink-crypto-tink-go-awskms-v2
go-github-com-tink-crypto-tink-go-gcpkms-v2
go-github-com-tink-crypto-tink-go-v2
go-github-com-transparency-dev-merkle
go-github-com-veraison-go-cose
go-go-uber-org-zap
go-golang-org-x-crypto
go-golang-org-x-mod
go-golang-org-x-net
go-golang-org-x-sync
go-google-golang-org-api
go-google-golang-org-genproto-googleapis-rpc
go-google-golang-org-grpc
go-google-golang-org-protobuf
go-gopkg-in-ini-v1
go-gopkg-in-yaml-v2
go-sigs-k8s-io-yaml
;; TODO: Complete packaging.
;; go-cloud-google-com-go-profiler
;; go-cloud-google-com-go-pubsub
;; go-cloud-google-com-go-pubsub-v2
;; go-github-com-adamkorcz-go-fuzz-headers-1
;; go-github-com-cavaliercoder-go-rpm
;; go-github-com-go-redis-redismock-v9
;; go-github-com-google-rpmpack
;; go-github-com-sassoftware-relic
;; go-github-com-sassoftware-relic-v7
;; go-go-step-sm-crypto
#;go-gocloud-dev))
(home-page "https://github.com/sigstore/rekor")
(synopsis "Sigstore transparency log")
(description
"Rekor provides an immutable tamper-resistant ledger of metadata generated
within a software project's supply chain. It enables software maintainers
and consumers to transparently record signed metadata to a ledger.")
(license license:asl2.0)))
(define-public go-github-com-sigstore-rekor-tiles-v2
(package
(name "go-github-com-sigstore-rekor-tiles-v2")
(version "2.0.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sigstore/rekor-tiles")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0z9is3mf31abzwappwp05z1pzci6f25z1ax27qgghmdisxmd3c6k"))))
(build-system go-build-system)
(arguments
(list
#:skip-build? #t
#:import-path "github.com/sigstore/rekor-tiles/v2"
;; XXX: Remove when all inputs are packaged.
#:test-subdirs
#~(list "internal/algorithmregistry"
"internal/safeint"
"pkg/client/write"
"pkg/types/dsse"
"pkg/types/hashedrekord"
"pkg/types/verifier"
"pkg/verifier/certificate"
"pkg/verifier/publickey"
"pkg/verify")))
(native-inputs
(list go-github-com-go-test-deep
go-github-com-spf13-cobra
go-github-com-spf13-viper
go-github-com-stretchr-testify
go-sigs-k8s-io-release-utils))
(propagated-inputs
(list go-cloud-google-com-go-storage
go-github-com-aws-aws-sdk-go-v2
go-github-com-aws-aws-sdk-go-v2-config
go-github-com-aws-aws-sdk-go-v2-credentials
go-github-com-aws-aws-sdk-go-v2-service-s3
go-github-com-aws-smithy-go
go-github-com-cyberphone-json-canonicalization
go-github-com-grpc-ecosystem-go-grpc-middleware
go-github-com-grpc-ecosystem-go-grpc-middleware-providers-prometheus
go-github-com-grpc-ecosystem-go-grpc-middleware-v2
go-github-com-grpc-ecosystem-grpc-gateway-v2
go-github-com-prometheus-client-golang
go-github-com-secure-systems-lab-go-securesystemslib
go-github-com-sigstore-protobuf-specs
go-github-com-sigstore-sigstore
;; go-github-com-sigstore-sigstore-go ;cycles
go-github-com-sigstore-sigstore-pkg-signature-kms-aws
go-github-com-sigstore-sigstore-pkg-signature-kms-gcp
go-github-com-tink-crypto-tink-go-awskms-v2
go-github-com-tink-crypto-tink-go-gcpkms-v2
go-github-com-tink-crypto-tink-go-v2
go-github-com-transparency-dev-formats
go-github-com-transparency-dev-merkle
go-go-opentelemetry-io-otel
go-go-opentelemetry-io-otel-exporters-prometheus
go-go-opentelemetry-io-otel-sdk-metric
go-golang-org-x-exp
go-golang-org-x-mod
go-golang-org-x-sync
go-google-golang-org-api
go-google-golang-org-genproto-googleapis-api
go-google-golang-org-grpc
go-google-golang-org-protobuf
go-k8s-io-klog-v2
;; TODO: Complete packaging.
;; go-cloud-google-com-go-spanner
;; go-github-com-chainguard-dev-clog
;; go-github-com-transparency-dev-tessera
#;go-go-step-sm-crypto))
(home-page "https://github.com/sigstore/rekor-tiles")
(synopsis "Tile-based transparency log for Sigstore")
(description
"This package provides a tile-based implementation of a transparency log
for the Sigstore ecosystem, supporting efficient verification of log entries.")
(license license:asl2.0)))
(define-public go-github-com-sigstore-sigstore-go
(package
(name "go-github-com-sigstore-sigstore-go")
(version "1.1.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sigstore/sigstore-go")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0jr8jj4wibzxawn3dzv1j4cxmbh2b5g356mh2bqq9d0p78idf7k3"))))
(build-system go-build-system)
(arguments
(list
#:skip-build? #t
#:import-path "github.com/sigstore/sigstore-go"
#:embed-files #~(list ".*\\.json")
#:test-subdirs
#~(list "pkg/bundle"
"pkg/fulcio/certificate"
"pkg/tlog"
"pkg/tuf")))
(native-inputs
(list go-github-com-stretchr-testify))
(propagated-inputs
(list go-github-com-cyberphone-json-canonicalization
go-github-com-digitorus-timestamp
go-github-com-go-openapi-runtime
go-github-com-go-openapi-strfmt
go-github-com-go-openapi-swag-conv
go-github-com-google-certificate-transparency-go
go-github-com-in-toto-attestation
go-github-com-in-toto-in-toto-golang
go-github-com-secure-systems-lab-go-securesystemslib
go-github-com-sigstore-protobuf-specs
go-github-com-sigstore-rekor
go-github-com-sigstore-rekor-tiles-v2
go-github-com-sigstore-sigstore
go-github-com-sigstore-timestamp-authority-v2
go-github-com-theupdateframework-go-tuf-v2
go-golang-org-x-crypto
go-golang-org-x-mod
go-google-golang-org-protobuf))
(home-page "https://github.com/sigstore/sigstore-go")
(synopsis "Go client library for Sigstore")
(description
"This package provides a Go client library for Sigstore, enabling
verification of signatures and attestations produced by Sigstore tools.")
(license license:asl2.0)))
(define-public go-github-com-sigstore-sigstore-pkg-signature-kms-aws
(package
(name "go-github-com-sigstore-sigstore-pkg-signature-kms-aws")
(version "1.10.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sigstore/sigstore")
(commit (go-version->git-ref version
#:subdir
"pkg/signature/kms/aws"))))
(file-name (git-file-name name version))
(sha256
(base32 "0shnvcgz4g7v65biwraahjrbsmr13qmb903al50giak2694qhyyk"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "pkg")
(delete-all-but "pkg" "signature")
(delete-all-but "pkg/signature" "kms")
(delete-all-but "pkg/signature/kms" "aws")))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/sigstore/sigstore/pkg/signature/kms/aws"
#:unpack-path "github.com/sigstore/sigstore"))
(native-inputs
(list go-github-com-stretchr-testify))
(propagated-inputs
(list go-github-com-aws-aws-sdk-go-v2
go-github-com-aws-aws-sdk-go-v2-config
go-github-com-aws-aws-sdk-go-v2-service-kms
go-github-com-jellydator-ttlcache-v3
go-github-com-sigstore-sigstore))
(home-page "https://github.com/sigstore/sigstore")
(synopsis "Utilities related to AWS KMS")
(description
"Package aws implement the interface with Amazon AWS KMS service.")
(license license:asl2.0)))
(define-public go-github-com-sigstore-sigstore-pkg-signature-kms-azure
(package
(name "go-github-com-sigstore-sigstore-pkg-signature-kms-azure")
(version "1.10.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sigstore/sigstore")
(commit (go-version->git-ref version
#:subdir
"pkg/signature/kms/azure"))))
(file-name (git-file-name name version))
(sha256
(base32 "0shnvcgz4g7v65biwraahjrbsmr13qmb903al50giak2694qhyyk"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "pkg")
(delete-all-but "pkg" "signature")
(delete-all-but "pkg/signature" "kms")
(delete-all-but "pkg/signature/kms" "azure")))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/sigstore/sigstore/pkg/signature/kms/azure"
#:unpack-path "github.com/sigstore/sigstore"))
(propagated-inputs
(list go-github-com-azure-azure-sdk-for-go-sdk-azcore
go-github-com-azure-azure-sdk-for-go-sdk-azidentity
go-github-com-azure-azure-sdk-for-go-sdk-security-keyvault-azkeys
go-github-com-go-jose-go-jose-v4
go-github-com-google-go-cmp
go-github-com-jellydator-ttlcache-v3
go-github-com-sigstore-sigstore
go-golang-org-x-crypto))
(home-page "https://github.com/sigstore/sigstore")
(synopsis "Utilities related to Microsoft Azure KMS")
(description
"Package azure implement the interface with Microsoft Azure KMS
service.")
(license license:asl2.0)))
(define-public go-github-com-sigstore-sigstore-pkg-signature-kms-gcp
(package
(name "go-github-com-sigstore-sigstore-pkg-signature-kms-gcp")
(version "1.10.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sigstore/sigstore")
(commit (go-version->git-ref version
#:subdir
"pkg/signature/kms/gcp"))))
(file-name (git-file-name name version))
(sha256
(base32 "0shnvcgz4g7v65biwraahjrbsmr13qmb903al50giak2694qhyyk"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "pkg")
(delete-all-but "pkg" "signature")
(delete-all-but "pkg/signature" "kms")
(delete-all-but "pkg/signature/kms" "gcp")))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/sigstore/sigstore/pkg/signature/kms/gcp"
#:unpack-path "github.com/sigstore/sigstore"))
(propagated-inputs
(list go-cloud-google-com-go-kms
go-github-com-jellydator-ttlcache-v3
go-github-com-sigstore-sigstore
go-golang-org-x-oauth2
go-google-golang-org-api
go-google-golang-org-protobuf))
(home-page "https://github.com/sigstore/sigstore")
(synopsis "Utilities related to Google Cloud Platform KMS")
(description
"Package gcp implement the interface with Google Cloud KMS service.")
(license license:asl2.0)))
(define-public go-github-com-sigstore-sigstore-pkg-signature-kms-hashivault
(package
(name "go-github-com-sigstore-sigstore-pkg-signature-kms-hashivault")
(version "1.10.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sigstore/sigstore")
(commit (go-version->git-ref version
#:subdir
"pkg/signature/kms/hashivault"))))
(file-name (git-file-name name version))
(sha256
(base32 "0shnvcgz4g7v65biwraahjrbsmr13qmb903al50giak2694qhyyk"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-26)))
(snippet
#~(begin
(define (delete-all-but directory . preserve)
(with-directory-excursion directory
(let* ((pred (negate (cut member <>
(cons* "." ".." preserve))))
(items (scandir "." pred)))
(for-each (cut delete-file-recursively <>) items))))
(delete-all-but "." "pkg")
(delete-all-but "pkg" "signature")
(delete-all-but "pkg/signature" "kms")
(delete-all-but "pkg/signature/kms" "hashivault")))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/sigstore/sigstore/pkg/signature/kms/hashivault"
#:unpack-path "github.com/sigstore/sigstore"))
(native-inputs
(list go-github-com-stretchr-testify))
(propagated-inputs
(list go-github-com-hashicorp-vault-api
go-github-com-jellydator-ttlcache-v3
go-github-com-mitchellh-go-homedir
go-github-com-sigstore-sigstore))
(home-page "https://github.com/sigstore/sigstore")
(synopsis "Utilities related to Hashivault KMS")
(description
"Package hashivault implement the interface with
@url{https://www.hashicorp.com/en/products/vault HashiCorp Vault} KMS
service.")
(license license:asl2.0)))
(define-public go-github-com-sigstore-timestamp-authority-v2
(package
(name "go-github-com-sigstore-timestamp-authority-v2")
(version "2.0.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sigstore/timestamp-authority")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1pgdxwkyrl10ayhw02n72r02q362gxg7110l9h9isiyqwbrmw2lp"))))
(build-system go-build-system)
(arguments
(list
#:skip-build? #t
#:import-path "github.com/sigstore/timestamp-authority/v2"
#:embed-files #~(list ".*\\.json")
#:test-subdirs #~(list "pkg/client" "pkg/x509")))
(native-inputs
(list go-github-com-go-playground-validator-v10
go-github-com-google-go-cmp
go-github-com-prometheus-client-golang
go-github-com-sigstore-sigstore
go-github-com-spf13-cobra
go-github-com-spf13-pflag
go-github-com-spf13-viper
go-github-com-tink-crypto-tink-go-v2
go-sigs-k8s-io-release-utils))
(propagated-inputs
(list go-cloud-google-com-go-security
go-github-com-beevik-ntp
go-github-com-digitorus-pkcs7
go-github-com-digitorus-timestamp
go-github-com-go-chi-chi
go-github-com-go-openapi-errors
go-github-com-go-openapi-loads
go-github-com-go-openapi-runtime
go-github-com-go-openapi-spec
go-github-com-go-openapi-strfmt
go-github-com-go-openapi-swag
go-github-com-pkg-errors
go-github-com-rs-cors
go-github-com-sigstore-sigstore-pkg-signature-kms-aws
go-github-com-sigstore-sigstore-pkg-signature-kms-azure
go-github-com-sigstore-sigstore-pkg-signature-kms-gcp
go-github-com-sigstore-sigstore-pkg-signature-kms-hashivault
go-github-com-tink-crypto-tink-go-awskms-v2
go-github-com-tink-crypto-tink-go-gcpkms-v2
go-github-com-tink-crypto-tink-go-hcvault-v2
go-github-com-urfave-negroni
;; go-go-step-sm-crypto ;not packaged yet in Guix
go-sigs-k8s-io-yaml))
(home-page "https://github.com/sigstore/timestamp-authority")
(synopsis "RFC 3161 timestamp verification for Sigstore")
(description
"This package provides timestamp verification functionality for the
Sigstore ecosystem, implementing RFC 3161 timestamp response validation.")
(license license:asl2.0)))
(define-public go-github-com-shurcool-githubv4
(package
(name "go-github-com-shurcool-githubv4")
@@ -17636,90 +17007,6 @@ Features:
@end itemize")
(license license:expat)))
(define-public go-github-com-tink-crypto-tink-go-awskms-v2
(package
(name "go-github-com-tink-crypto-tink-go-awskms-v2")
(version "2.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tink-crypto/tink-go-awskms")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0crsky461yyvl04g0gbsz9gh2zmlmgd5li5qk4k7zvmj103gmwlr"))))
(build-system go-build-system)
(arguments
(list
#:skip-build? #t
#:import-path "github.com/tink-crypto/tink-go-awskms/v2"))
(propagated-inputs
(list go-github-com-aws-aws-sdk-go
go-github-com-tink-crypto-tink-go-v2))
(home-page "https://github.com/tink-crypto/tink-go-awskms")
(synopsis "Tink Go AWS KMS extension")
(description
"This is an extension to the @url{https://github.com/tink-crypto/tink-go,
Tink Go} library that provides support for AWS KMS.")
(license license:asl2.0)))
(define-public go-github-com-tink-crypto-tink-go-gcpkms-v2
(package
(name "go-github-com-tink-crypto-tink-go-gcpkms-v2")
(version "2.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tink-crypto/tink-go-gcpkms")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0hf31f26lmpg81k64flsvcx83ngkhazkkf792i5qkq14q4ndsdhw"))))
(build-system go-build-system)
(arguments
(list
#:skip-build? #t
#:import-path "github.com/tink-crypto/tink-go-gcpkms/v2"))
(propagated-inputs
(list go-github-com-tink-crypto-tink-go-v2
go-google-golang-org-api))
(home-page "https://github.com/tink-crypto/tink-go-gcpkms")
(synopsis "Tink Go Google Cloud KMS extension")
(description
"This is an extension to the @url{https://github.com/tink-crypto/tink-go,
Tink Go} library that provides support for Google Cloud KMS.")
(license license:asl2.0)))
(define-public go-github-com-tink-crypto-tink-go-hcvault-v2
(package
(name "go-github-com-tink-crypto-tink-go-hcvault-v2")
(version "2.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tink-crypto/tink-go-hcvault")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1ifwxrsyynkss652wnn2ivhfj8n84m8rz7fjpi8gcx2cppmx9zrv"))))
(build-system go-build-system)
(arguments
(list
#:skip-build? #t
#:import-path "github.com/tink-crypto/tink-go-hcvault/v2"))
(propagated-inputs
(list go-github-com-hashicorp-vault-api
go-github-com-tink-crypto-tink-go-v2))
(home-page "https://github.com/tink-crypto/tink-go-hcvault")
(synopsis "Tink Go HashiCorp Vault extension")
(description
"This is an extension to the @url{https://github.com/tink-crypto/tink-go,
Tink Go} library that provides support for HashiCorp Vault.")
(license license:asl2.0)))
(define-public go-github-com-tj-go-elastic
(package
(name "go-github-com-tj-go-elastic")
@@ -22482,7 +21769,6 @@ feature set and features are added on as the need arises.")
(build-system go-build-system)
(arguments
(list
#:go go-1.25
#:build-flags #~(list (string-append "-ldflags="
"-X main.lyrebirdVersion="
#$version " -s -w"))
-1
View File
@@ -74,7 +74,6 @@
;;; Copyright © 2025 Aleksandr Lebedev <alex.lebedev2003@icloud.com>
;;; Copyright © 2026 Carlos Durán Domínguez <wurt@wurt.eu>
;;; Copyright © 2026 Giacomo Leidi <therewasa@fishinthecalculator.me>
;;; Copyright © 2026 Evgeny Pisemsky <mail@pisemsky.site>
;;;
;;; This file is part of GNU Guix.
;;;
+51
View File
@@ -1022,6 +1022,56 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(map (lambda (suffix) (string-append "armv9" suffix "-a"))
'("" ".1" ".2" ".3" ".4" ".5"))))
(define-public go-1.23
(package
(inherit go-1.22)
(name "go")
(version "1.23.12")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/golang/go")
(commit (string-append "go" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0nxcp8wikn93zxipm829dyyagwys13yhf452ai357wzbdzqihm7x"))))
(arguments
(substitute-keyword-arguments (package-arguments go-1.22)
((#:phases phases)
#~(modify-phases #$phases
(replace 'disable-more-tests
(lambda _
#$@(cond
((target-aarch64?)
;; https://go-review.googlesource.com/c/go/+/151303
;; This test is known buggy on aarch64 and is enabled and
;; disabled upstream with some regularity.
#~((substitute* "src/plugin/plugin_test.go"
(("package plugin_test")
(string-append "// +build !linux linux,!arm64\n\n"
"package plugin_test")))))
((target-arm32?)
;; This test fails when run on aarch64-linux.
#~((substitute* "src/cmd/link/internal/ld/elf_test.go"
(("TestElfBindNow.*" all)
(string-append
all
" if runtime.GOARCH == \"arm\" {\n"
" t.Skipf(\"skipping; flaky on armhf\")\n"
" }\n")))))
(else (list #t)))))))))
(properties
`((compiler-cpu-architectures
("aarch64" ,@%go-1.23-arm64-micro-architectures)
("armhf" ,@%go-1.17-arm-micro-architectures)
("powerpc64le" ,@%go-1.17-powerpc64le-micro-architectures)
("x86_64" ,@%go-1.18-x86_64-micro-architectures))))
(native-inputs
;; setarch was added to the tsan test suite in 1.23.12
`(("go" ,util-linux)
,@(package-native-inputs go-1.22)))))
(define-public go-1.24
(package
(inherit go-1.22)
@@ -1189,6 +1239,7 @@ in the style of communicating sequential processes (@dfn{CSP}).")
(define-public go-std-1.20 (make-go-std go-1.20))
(define-public go-std-1.21 (make-go-std go-1.21))
(define-public go-std-1.22 (make-go-std go-1.22))
(define-public go-std-1.23 (make-go-std go-1.23))
(define-public go-std-1.24 (make-go-std go-1.24))
(define-public go-std-1.25 (make-go-std go-1.25))
(define-public go-std-1.26 (make-go-std go-1.26))
+3 -3
View File
@@ -129,7 +129,7 @@
libxv
mesa
sdl
v4l-utils))
v4l-utils-minimal))
(synopsis "1394-Based Digital Camera Control Library")
(description "LibDC1394 is a library that provides functionality to control
any camera that conforms to the 1394-Based Digital Camera Specification written
@@ -721,7 +721,7 @@ for the GStreamer multimedia library.")
speex
taglib
twolame
v4l-utils
v4l-utils-minimal
wavpack
zlib))
(propagated-inputs
@@ -942,7 +942,7 @@ model to base your own plug-in on, here it is.")
tinyalsa
transcode
usrsctp
v4l-utils
v4l-utils-minimal
vo-aacenc
vo-amrwbenc
vulkan-headers
+3 -3
View File
@@ -7654,8 +7654,8 @@ is an attempt to combine both into something useful.")
(license license:asl2.0))))
(define-public guile-knots
(let ((commit "d79284b4715efc347b22d510c3e3134a0c584b17")
(revision "32"))
(let ((commit "cb5ec50b341f603e9d129152b45e47cf008ea126")
(revision "31"))
(package
(name "guile-knots")
(version (git-version "0" revision commit))
@@ -7666,7 +7666,7 @@ is an attempt to combine both into something useful.")
(commit commit)))
(sha256
(base32
"0i87jc3dznw6pdib0yy49d8066c1jvwp2m01xi92amx45dkl8ixc"))
"08gcbyw7kvhk568a30kimhn37m9mygpxhswb294n1141ddmhjchh"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
+4 -10
View File
@@ -669,7 +669,7 @@ and WebP.")
(define-public mcomix
(package
(name "mcomix")
(version "3.1.1")
(version "3.1.0")
(source
(origin
(method url-fetch)
@@ -677,7 +677,7 @@ and WebP.")
"mcomix-" version ".tar.gz"))
(sha256
(base32
"1y6fps1fbzjc4sdm381432zvrq97iadbz4yyxxsfnzf0ggnsl2m1"))))
"09y4nhlcqvvhz0wscx4zpqxmyhiwh8wrjnhk52awxhzvgyx6wa7r"))))
(build-system pyproject-build-system)
(arguments
(list
@@ -720,14 +720,8 @@ and WebP.")
(wrap-program prog
`("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
(native-inputs (list python-setuptools))
(inputs (list bash-minimal
gobject-introspection
gtk+
p7zip
python
python-pillow
python-pycairo
python-pygobject))
(inputs
(list bash-minimal p7zip python python-pillow python-pygobject python-pycairo gtk+))
(home-page "https://sourceforge.net/p/mcomix/wiki/Home/")
(synopsis "Image viewer for comics")
(description "MComix is a customizable image viewer that specializes as
+6 -6
View File
@@ -125,14 +125,14 @@
;; ex:
;; tar xf /gnu/store/...-firefox-123.4.source.tar.xz -O \
;; firefox-123.4/browser/locales/l10n-changesets.json | grep revision
(let ((commit "0245ffb160688061f0e0c67ea488bcdfdacbeca4"))
(let ((commit "d1394212aed0ce0063c0f818aa236e7d4f955ac9"))
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mozilla-l10n/firefox-l10n.git")
(commit commit)))
(file-name (git-file-name "firefox-l10n" commit))
(sha256 (base32 "0y8xdxql04yys0wj685v4yp3kmx1ivnndg6z11vam8vszh0j7ak6")))))
(sha256 (base32 "16s515xf0i7a7acv0m1bbgflbdx9a87b1dcg7q3yswym8x1bhvaj")))))
(define* (make-librewolf-source #:key version firefox-hash librewolf-hash l10n)
(let* ((ff-src (firefox-source-origin
@@ -244,17 +244,17 @@
;; It's used for cache validation and therefore can lead to strange bugs.
;; ex: date '+%Y%m%d%H%M%S'
;; or: (format-time-string "%Y%m%d%H%M%S")
(define %librewolf-build-id "20260409162101")
(define %librewolf-build-id "20260326135749")
(define-public librewolf
(package
(name "librewolf")
(version "149.0.2-2")
(version "149.0-1")
(source
(make-librewolf-source
#:version version
#:firefox-hash "1kkhg3lgyakinn5ankxrlxbf39wi61mqbhwrj1l4q5l7y0n1m4va"
#:librewolf-hash "1bai8g2kc9snck2f724al29q6r57vkj3d7v58rf0mgzpqzvwnw5f"
#:firefox-hash "12jb930qhqhpzjpn5smms7g4n6y40zvxcrg8w42696wxk7pgsqdq"
#:librewolf-hash "0igv0fr0vl2nf5rlgnidfz2a3gh55bsqwcray0jg7x2kl6qnkzwm"
#:l10n firefox-l10n))
(build-system gnu-build-system)
(arguments
+113 -82
View File
@@ -104,7 +104,9 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages linux)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages adns)
#:use-module (gnu packages admin)
#:use-module (gnu packages algebra)
#:use-module (gnu packages apparmor)
@@ -118,20 +120,19 @@
#:use-module (gnu packages boost)
#:use-module (gnu packages calendar)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpio)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crypto)
#:use-module (gnu packages cryptsetup)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages datastructures)
#:use-module (gnu packages dbm)
#:use-module (gnu packages disk)
#:use-module (gnu packages dlang)
#:use-module (gnu packages dns)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages dlang)
#:use-module (gnu packages elf)
#:use-module (gnu packages file)
#:use-module (gnu packages flex)
@@ -146,7 +147,6 @@
#:use-module (gnu packages golang)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages groff)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
@@ -154,8 +154,8 @@
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages image)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages kde-graphics)
#:use-module (gnu packages libedit)
#:use-module (gnu packages kde-graphics)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages libusb)
@@ -172,8 +172,8 @@
#:use-module (gnu packages nss)
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages oneapi)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages perl)
#:use-module (gnu packages pciutils)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages polkit)
#:use-module (gnu packages popt)
@@ -192,12 +192,9 @@
#:use-module (gnu packages rust-sources)
#:use-module (gnu packages samba)
#:use-module (gnu packages sdl)
#:use-module (gnu packages selinux)
#:use-module (gnu packages serialization)
#:use-module (gnu packages slang)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages swig)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
@@ -206,36 +203,39 @@
#:use-module (gnu packages vim)
#:use-module (gnu packages vulkan)
#:use-module (gnu packages web)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (gnu packages)
#:use-module (gnu packages groff)
#:use-module (gnu packages selinux)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages swig)
#:use-module (guix platform)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system linux-module)
#:use-module (guix build-system meson)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix build-system trivial)
#:use-module (guix deprecation) ;for libcap/next
#:use-module (guix build-system linux-module)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix monads)
#:use-module (guix packages)
#:use-module (guix platform)
#:use-module (guix gexp)
#:use-module (guix store)
#:use-module (guix monads)
#:use-module (guix utils)
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
#:use-module (guix deprecation) ;for libcap/next
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-2)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
#:use-module (ice-9 regex)
#:export (customize-linux
make-defconfig))
@@ -531,7 +531,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream.
(define-public linux-libre-6.19-version "6.19.12")
(define-public linux-libre-6.19-version "6.19.11")
(define-public linux-libre-6.19-gnu-revision "gnu")
(define deblob-scripts-6.19
(linux-libre-deblob-scripts
@@ -541,12 +541,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "05jpciyypvmy6byaxjl49b1fvzxcnlhknf0xabrdj5152iznrzkh")))
(define-public linux-libre-6.19-pristine-source
(let ((version linux-libre-6.19-version)
(hash (base32 "1md8b270pdyk9d8cq0qyr8qmymcijmj3gc39nn394wpr0l94yp6f")))
(hash (base32 "16ymkc5r3hw05z7l7ih3qw406qlszz1l7b4g5yz0hv15ddxrs0r0")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.19)))
(define-public linux-libre-6.18-version "6.18.22")
(define-public linux-libre-6.18-version "6.18.21")
(define-public linux-libre-6.18-gnu-revision "gnu")
(define deblob-scripts-6.18
(linux-libre-deblob-scripts
@@ -556,7 +556,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0qlih8w8wg4v5cwbmd34rbhb6mjgbx69i9rx3s2vxw7h42q9l0ai")))
(define-public linux-libre-6.18-pristine-source
(let ((version linux-libre-6.18-version)
(hash (base32 "0nazlm6j5blyd4qgl0z6xc3qk00vz3cfvx5mqv18awv5ygx94g52")))
(hash (base32 "0ks735y6jq4yy3jaicjsj4dn4n3kk2skf9dqh9dyifipn57j2f0w")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.18)))
@@ -565,7 +565,7 @@ 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.12-version "6.12.81")
(define-public linux-libre-6.12-version "6.12.80")
(define-public linux-libre-6.12-gnu-revision "gnu")
(define deblob-scripts-6.12
(linux-libre-deblob-scripts
@@ -575,12 +575,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1x48hpmvajz7v5wn1vdd7l5r14mq4ngzh5npz3pj81z4f1g61i0a")))
(define-public linux-libre-6.12-pristine-source
(let ((version linux-libre-6.12-version)
(hash (base32 "0iw84bqdbh9dlaqd1bqgldg50riw2b5is7ipqnbp0sll8cv9rc62")))
(hash (base32 "0lrylj87bb8ky29pbplpncrfhmgqqbq3d49iqgdwv7p7jvc929f9")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.12)))
(define-public linux-libre-6.6-version "6.6.134")
(define-public linux-libre-6.6-version "6.6.130")
(define-public linux-libre-6.6-gnu-revision "gnu")
(define deblob-scripts-6.6
(linux-libre-deblob-scripts
@@ -590,12 +590,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0xp9b2vkrb0g0rn4i33b59rhp4sgh1dbwzk28vwz7kwac6l5rcpi")))
(define-public linux-libre-6.6-pristine-source
(let ((version linux-libre-6.6-version)
(hash (base32 "1grp1wqgzjsk6xyl0nvd2hxlxjj0wgz04x544zkz8srp6rxnjy33")))
(hash (base32 "139480lyi3if8pd2j3yld5a01lk7113kbcn2kxpzyk29p5kslq14")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.6)))
(define-public linux-libre-6.1-version "6.1.168")
(define-public linux-libre-6.1-version "6.1.167")
(define-public linux-libre-6.1-gnu-revision "gnu")
(define deblob-scripts-6.1
(linux-libre-deblob-scripts
@@ -605,7 +605,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1w5pfws6l39dpc3lzazs1n6r4m96f6rdf6vb2scy5fhmrd933ldc")))
(define-public linux-libre-6.1-pristine-source
(let ((version linux-libre-6.1-version)
(hash (base32 "0vkp75sfnjvfqxjh6gqcx24h2m6qj6xkwlw6b118cja43vjnz1g0")))
(hash (base32 "1jwqwp2fg3wdsh9w663rbnbv1rvsvksv1pj4bzns8swp0wy0a618")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.1)))
@@ -945,11 +945,7 @@ ARCH and optionally VARIANT, or #f if there is no such configuration."
;; Disable the EFI pstore storage backend to avoid causing
;; unrecoverable failures on some EFI systems:
;; https://lists.gnu.org/archive/html/help-guix/2025-01/msg00173.html
("CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE" . #t)
;; Provide modules for wireguard and netfilter support
("CONFIG_WIREGUARD" . m)
("CONFIG_IP_NF_FILTER" . m)
("CONFIG_NETFILTER_XT_MATCH_ADDRTYPE" . m)))
("CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE" . #t)))
(define (config->string options)
(string-join (map (match-lambda
@@ -1294,6 +1290,8 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
#:extra-version "arm-generic"
#:extra-options
(append
`(;; needed to fix the RTC on rockchip platforms
("CONFIG_RTC_DRV_RK808" . #t))
(default-extra-linux-options linux-libre-5.10-version))))
(define-public linux-libre-arm-omap2plus
@@ -1304,31 +1302,6 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
#:defconfig "omap2plus_defconfig"
#:extra-version "arm-omap2plus"))
(define pinebook-extra-modules
`(;; Pinebook display, battery, charger and usb
("CONFIG_DRM_ANALOGIX_ANX6345" . m)
("CONFIG_CHARGER_AXP20X" . m)
("CONFIG_INPUT_AXP20X_PEK" . m)
("CONFIG_CHARGER_AXP20X" . m)
("CONFIG_BATTERY_AXP20X" . m)
("CONFIG_PINCTRL_AXP209" . m)
("CONFIG_AXP20X_POWER" . m)
("CONFIG_AXP20X_ADC" . m)
;; Pinebook PRO battery and sound support
("CONFIG_BATTERY_CW2015" . m)
("CONFIG_CHARGER_GPIO" . m)
("CONFIG_SND_SOC_ES8316" . m)))
(define arm64-generic-extra-modules
(append
pinebook-extra-modules
`(;; Provide support for ath9k wireless
("CONFIG_ATH9K_HTC" . m)
;; Support Orange Pi R1 Plus LTS ethernet PHY.
("CONFIG_MOTORCOMM_PHY" . m)
;; needed to fix the RTC on rockchip platforms
("CONFIG_RTC_DRV_RK808" . #t))))
(define-public linux-libre-arm64-generic
(make-linux-libre* linux-libre-version
linux-libre-gnu-revision
@@ -1338,7 +1311,25 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
#:extra-version "arm64-generic"
#:extra-options
(append
arm64-generic-extra-modules
`(;; Provide support for ath9k wireless
("CONFIG_ATH9K_HTC" . m)
;; Support Orange Pi R1 Plus LTS ethernet PHY.
("CONFIG_MOTORCOMM_PHY" . m)
;; needed to fix the RTC on rockchip platforms
("CONFIG_RTC_DRV_RK808" . #t)
;; Pinebook display, battery, charger and usb
("CONFIG_DRM_ANALOGIX_ANX6345" . m)
("CONFIG_CHARGER_AXP20X" . m)
("CONFIG_INPUT_AXP20X_PEK" . m)
("CONFIG_CHARGER_AXP20X" . m)
("CONFIG_BATTERY_AXP20X" . m)
("CONFIG_PINCTRL_AXP209" . m)
("CONFIG_AXP20X_POWER" . m)
("CONFIG_AXP20X_ADC" . m)
;; Pinebook PRO battery and sound support
("CONFIG_BATTERY_CW2015" . m)
("CONFIG_CHARGER_GPIO" . m)
("CONFIG_SND_SOC_ES8316" . m))
(default-extra-linux-options linux-libre-version))))
(define-public linux-libre-lts-arm64-generic
@@ -1356,7 +1347,25 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
#:extra-version "arm64-generic"
#:extra-options
(append
arm64-generic-extra-modules
`( ;; Provide support for ath9k wireless
("CONFIG_ATH9K_HTC" . m)
;; Support Orange Pi R1 Plus LTS ethernet PHY.
("CONFIG_MOTORCOMM_PHY" . m)
;; needed to fix the RTC on rockchip platforms
("CONFIG_RTC_DRV_RK808" . #t)
;; Pinebook display, battery, charger and usb
("CONFIG_DRM_ANALOGIX_ANX6345" . m)
("CONFIG_CHARGER_AXP20X" . m)
("CONFIG_INPUT_AXP20X_PEK" . m)
("CONFIG_CHARGER_AXP20X" . m)
("CONFIG_BATTERY_AXP20X" . m)
("CONFIG_PINCTRL_AXP209" . m)
("CONFIG_AXP20X_POWER" . m)
("CONFIG_AXP20X_ADC" . m)
;; Pinebook PRO battery and sound support
("CONFIG_BATTERY_CW2015" . m)
("CONFIG_CHARGER_GPIO" . m)
("CONFIG_SND_SOC_ES8316" . m))
(default-extra-linux-options linux-libre-lts-version)))))
(define-public linux-libre-arm64-generic-5.10
@@ -1368,7 +1377,21 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
#:extra-version "arm64-generic"
#:extra-options
(append
arm64-generic-extra-modules
`(;; needed to fix the RTC on rockchip platforms
("CONFIG_RTC_DRV_RK808" . #t)
;; Pinebook display, battery, charger and usb
("CONFIG_DRM_ANALOGIX_ANX6345" . m)
("CONFIG_CHARGER_AXP20X" . m)
("CONFIG_INPUT_AXP20X_PEK" . m)
("CONFIG_CHARGER_AXP20X" . m)
("CONFIG_BATTERY_AXP20X" . m)
("CONFIG_PINCTRL_AXP209" . m)
("CONFIG_AXP20X_POWER" . m)
("CONFIG_AXP20X_ADC" . m)
;; Pinebook PRO battery and sound support
("CONFIG_BATTERY_CW2015" . m)
("CONFIG_CHARGER_GPIO" . m)
("CONFIG_SND_SOC_ES8316" . m))
(default-extra-linux-options linux-libre-5.10-version))))
(define-public linux-libre-arm64-honeycomb
@@ -1430,6 +1453,9 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
;; Fixes https://codeberg.org/guix/guix/issues/101
("CONFIG_KEY_DH_OPERATIONS" . #true)
;; For connecting to ci.guix.gnu.org over VPN.
("CONFIG_WIREGUARD" . m)
;; restool support
("CONFIG_FSL_MC_UAPI_SUPPORT" . #t)
("CONFIG_FSL_MC_BUS" . #t)
@@ -1748,6 +1774,8 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
("CONFIG_USB_ETH_RNDIS" . m)
("CONFIG_USB_ETH_EEM" . m)
("CONFIG_USB_G_NCM" . m)
;; Provide support for wireguard
("CONFIG_WIREGUARD" . m)
;; Provide support for ath9k wireless
("CONFIG_ATH9K" . m)
("CONFIG_ATH9K_HTC" . m))
@@ -2060,6 +2088,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-pocket-reform.dtb")))))))))))
("CONFIG_USB_ETH_RNDIS" . m)
("CONFIG_USB_ETH_EEM" . m)
("CONFIG_USB_G_NCM" . m)
;; Provide support for wireguard
("CONFIG_WIREGUARD" . m)
;; Provide support for ath9k wireless
("CONFIG_ATH9K" . m)
("CONFIG_ATH9K_HTC" . m))
@@ -2393,6 +2423,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-pocket-reform.dtb")))))))))))
("CONFIG_USB_ETH_RNDIS" . m)
("CONFIG_USB_ETH_EEM" . m)
("CONFIG_USB_G_NCM" . m)
;; Provide support for wireguard
("CONFIG_WIREGUARD" . m)
;; Provide support for ath9k wireless
("CONFIG_ATH9K" . m)
("CONFIG_ATH9K_HTC" . m))
@@ -5000,6 +5032,7 @@ configuration and monitoring interfaces.")
(with-directory-excursion "./python" (python-inst ,python))
#t))))))))
(define-public libnl-python2 (libnl-python-package "python2"))
(define-public libnl-python3 (libnl-python-package "python3"))
(define-public iw
@@ -5208,20 +5241,14 @@ or kill them altogether.")
(base32
"0b1jp5gp2gv40gv6cvmv86rcr4l0mdh050qbvnxl0xcwya45qffx"))))
(build-system meson-build-system)
(outputs (list "out" "debug" "static"))
(inputs
(list bash-minimal util-linux))
(arguments
`(#:configure-flags
,#~(list
(string-append "-Dudevrulesdir=" #$output "/udev/rules.d")
"-Duseroot=false"
;; Build static libraries.
"--default-library=both")
"-Duseroot=false")
#:tests? #f
#:modules ((guix build meson-build-system)
(guix build utils)
(ice-9 ftw))
#:phases
,#~(modify-phases %standard-phases
(add-after 'unpack 'set-file-names
@@ -5259,20 +5286,7 @@ or kill them altogether.")
(string-append #$output "/sbin"))
(setenv "UDEV_RULES_PATH"
(string-append #$output
"/lib/udev/rules.d")))))
(add-after 'install 'install-static-libraries
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(static (assoc-ref outputs "static")))
(mkdir-p (string-append static "/lib"))
(for-each
(lambda (static-library)
(rename-file
(string-append out "/lib/" static-library)
(string-append static "/lib/" static-library)))
(scandir (string-append out "/lib")
(lambda (file-name)
(string-suffix? ".a" file-name))))))))))
"/lib/udev/rules.d"))))))))
(supported-systems (remove target-hurd? %supported-systems))
(home-page "https://github.com/libfuse/libfuse")
(synopsis "Support file systems implemented in user space")
@@ -5343,6 +5357,23 @@ user-space processes.")
(("-DFUSERMOUNT_DIR=[[:graph:]]+")
"-DFUSERMOUNT_DIR=\\\"/var/empty\\\"")))))))))
(define-public fuse-for-appimage
(package
(inherit fuse)
(name "fuse")
(version "3.16.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/libfuse/libfuse/releases/"
"download/fuse-" version "/fuse-" version ".tar.gz"))
(sha256
(base32 "11yfl2w2a445hllyzlakq97n32g06972vxpmh7lpbclnj9fhb5zp"))))
(arguments
(substitute-keyword-arguments arguments
((#:configure-flags original-flags #~(list))
#~(append #$original-flags '("--default-library=static")))))))
(define-public unionfs-fuse
(package
(name "unionfs-fuse")
+43
View File
@@ -27700,6 +27700,49 @@ adaptations.")
(define-public ecl-radiance
(sbcl-package->ecl-package sbcl-radiance))
(define-public sbcl-radiance-contribs
(let ((commit "710b3e1f9971e48368d52eea0b407f2e8f510981")
(revision "1"))
(package
(name "sbcl-radiance-contribs")
(version (git-version "1.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://codeberg.org/shirakumo/radiance-contribs")
(commit commit)))
(file-name (git-file-name "radiance-contribs" version))
(sha256
(base32 "08ivnd7a6vfciqna680qpx6zj6vw9xcbrzq29iz3x7x9sp1pqgq3"))))
(build-system asdf-build-system/sbcl)
(arguments
;; TODO: Include more contribs.
`(#:asd-systems '("r-clip"
"i-log4cl"
"i-sqlite"
"r-data-model"
"r-simple-rate"
"r-welcome")))
(inputs
(list sbcl-radiance
sbcl-cffi
sbcl-clip
sbcl-cl-sqlite
sbcl-log4cl))
(home-page "https://shirakumo.github.io/radiance/")
(synopsis "Standard implementations and drivers for the radiance interfaces")
(description
"This is a collection of useful helper modules and standard
implementations for Radiance interfaces.")
(license license:zlib))))
(define-public cl-radiance-contribs
(sbcl-package->cl-source-package sbcl-radiance-contribs))
(define-public ecl-radiance-contribs
(sbcl-package->ecl-package sbcl-radiance-contribs))
(define-public sbcl-random-sample
(let ((commit "46b70374ed796b84ea003e83c1db97b0caf97e22")
(revision "0"))
+20 -20
View File
@@ -51,6 +51,24 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages machine-learning)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix svn-download)
#:use-module (guix utils)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system ocaml)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system r)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages algebra)
#:use-module (gnu packages assembly)
#:use-module (gnu packages audio)
@@ -71,7 +89,6 @@
#:use-module (gnu packages databases)
#:use-module (gnu packages dejagnu)
#:use-module (gnu packages digest)
#:use-module (gnu packages dns)
#:use-module (gnu packages documentation)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gcc)
@@ -137,23 +154,6 @@
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system ocaml)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system r)
#:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix svn-download)
#:use-module (guix utils)
#:use-module (ice-9 match))
(define-public dlpack
@@ -4666,7 +4666,7 @@ different backends")
(define-public koboldcpp
(package
(name "koboldcpp")
(version "1.111.2")
(version "1.110")
(source
(origin
(method git-fetch)
@@ -4682,7 +4682,7 @@ different backends")
(delete-file-recursively "lib")
(for-each delete-file (find-files "." "\\.(dll|exe|bat)$"))))
(sha256
(base32 "0mlq0p14p5vhc0pknkjidcw885mr0c92881lp629n44qxdf7dx8i"))))
(base32 "1lfdfsk227qgk44sq10qa93cl5s221djnpj82wg6b38dg7yy0b62"))))
(build-system gnu-build-system)
(arguments
(list
+7 -8
View File
@@ -68,7 +68,6 @@
;;; Copyright © 2026 Carlos Durán Domínguez <wurt@wurt.eu>
;;; Copyright © 2026 Sergey Trofimov <sarg@sarg.org.ru>
;;; Copyright © 2026 Nguyễn Gia Phong <cnx@loang.net>
;;; Copyright © 2026 Herman Rimm <herman@rimm.ee>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -4745,7 +4744,7 @@ on RFC 3501 and original @code{imaplib} module.")
(define-public rspamd
(package
(name "rspamd")
(version "3.14.3")
(version "3.12.1")
(source
(origin
(method git-fetch)
@@ -4753,7 +4752,7 @@ on RFC 3501 and original @code{imaplib} module.")
(url "https://github.com/rspamd/rspamd")
(commit version)))
(sha256
(base32 "1yh3933ak7qzzys6yzixrs8pmmsh16ny23im958h8rqg0xrq3mcy"))
(base32 "0li75dqqy0irrvv2jddmll2adf15cywif982ijj034hldg9162bc"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments
@@ -4784,11 +4783,11 @@ on RFC 3501 and original @code{imaplib} module.")
(native-inputs
(list pkg-config))
(synopsis "Spam filtering system")
(description
"Rspamd is a spam filter that evaluates email messages by a number
of rules including: regular expressions, statistical analysis, and URL
blacklists. Rspamd gives each message a spam score, e.g., for further
processing by an MTA.")
(description "Rspamd is an advanced spam filtering system that
allows evaluation of messages by a number of rules including regular
expressions, statistical analysis and custom services such as URL
black lists. Each message is analysed by Rspamd and given a spam
score.")
(home-page "https://www.rspamd.com/")
(license license:asl2.0)))
+1 -1
View File
@@ -134,7 +134,7 @@ specific format when needed.")
(delete 'configure)) ; no configure script
#:test-target "test"))
(native-inputs
`(("python" ,python-minimal-wrapper)
`(("python" ,python-2)
("tidy" ,tidy-html)))
(synopsis "Markdown processing library")
(description "Hoedown is a standards compliant, fast, secure markdown
+3 -4
View File
@@ -487,9 +487,8 @@ programming languages.")
""))))
;; The 'check phase requires test programs build using 'build-tests'.
(add-before 'check 'build-tests
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "cmake" "--build" "." "--target" "build-tests")))))))
(lambda _
(invoke "cmake" "--build" "." "--target" "build-tests"))))))
(inputs (list cadical-2.1
cln
cryptominisat
@@ -8806,7 +8805,7 @@ and comparisons are supported.")
"1fwlgbcdxz30dzsqw3y1b6ic1rhzfadghj7cq7yxsj14npgnwzga"))))
(build-system cmake-build-system)
(native-inputs
(list pkg-config python-minimal-wrapper))
(list pkg-config python-2)) ;for tests; syntax incompatible with Python 3
(inputs
(list openblas suitesparse))
(arguments
+17
View File
@@ -2690,6 +2690,23 @@ validating international phone numbers.")
(home-page "https://github.com/google/libphonenumber")
(license license:asl2.0)))
(define-public libphonenumber-8.11
(package/inherit libphonenumber
(name (package-name libphonenumber))
(version "8.11.5")
(source (origin
(inherit (package-source libphonenumber))
(uri (git-reference
(url "https://github.com/google/libphonenumber")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1y4ivhy3kwgggrr3g521zaf97334aan0yqpzzryss80k326q5rhf"))))
(inputs
(modify-inputs inputs
(delete "abseil-cpp" "icedtea")))))
(define-public chatty
(package
(name "chatty")
-41
View File
@@ -531,47 +531,6 @@ MPRIS 2 support.")
(home-page "https://github.com/eonpatapon/mpDris2")
(license license:gpl3+)))
(define-public mpdris2-rs
(package
(name "mpdris2-rs")
(version "1.1.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/szclsya/mpdris2-rs")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "023m4g1kgr2q2vllaij7nlxd5gp3vklvbhf5drymgqz3pcmslb52"))))
(build-system cargo-build-system)
(arguments
(list
#:install-source? #f
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-systemd-unit
(lambda _
(let ((unit-dir (in-vicinity #$output "lib/systemd/user/")))
(substitute* "misc/mpdris2-rs.service"
(("/usr/local/bin/mpdris2-rs")
(in-vicinity #$output "bin/mpdris2-rs")))
(install-file "misc/mpdris2-rs.service" unit-dir)))))))
(inputs (cargo-inputs 'mpdris2-rs))
(home-page "https://github.com/szclsya/mpdris2-rs")
(synopsis "Exposing MPRIS V2.2 D-Bus interface for mpd")
(description
"A lightweight implementation of MPD to D-Bus bridge, which exposes MPD
player and playlist information onto MPRIS2 interface so other programs can use
this generic interface to retrieve MPD's playback state.
Distinctively, mpdris2-rs uses MPD protocol's native
@command{readpicture}/@command{albumart} methods to fetch album arts. This
means mpdris2-rs won't need any access to your local filesystem (apart from
your @env{XDG_RUNTIME_DIR} for temporarily storing fetched albumarts) and can
provide album arts even with remote MPD servers and Internet radios.")
(license license:gpl3)))
(define-public cantata
(package
(name "cantata")
+24 -24
View File
@@ -89,13 +89,33 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages networking)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system qt)
#:use-module (guix build-system trivial)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages adns)
#:use-module (gnu packages aidc)
#:use-module (gnu packages algebra)
#:use-module (gnu packages assembly)
#:use-module (gnu packages audio)
#:use-module (gnu packages autogen)
#:use-module (gnu packages autotools)
#:use-module (gnu packages assembly)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
@@ -111,7 +131,6 @@
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages dejagnu)
#:use-module (gnu packages dns)
#:use-module (gnu packages dns)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages elf)
@@ -135,21 +154,21 @@
#:use-module (gnu packages gtk)
#:use-module (gnu packages image)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages libbsd)
#:use-module (gnu packages libevent)
#:use-module (gnu packages libidn)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages logging)
#:use-module (gnu packages lua)
#:use-module (gnu packages lxqt)
#:use-module (gnu packages lua)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages man)
#:use-module (gnu packages mpi)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages nettle)
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages openldap)
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages password-utils)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
@@ -185,25 +204,6 @@
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
#:use-module (gnu packages)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (ice-9 match))
(define-public usrsctp
+11 -11
View File
@@ -31,10 +31,20 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages node)
#:use-module ((guix licenses) #:prefix license:)
#:use-module ((guix build utils) #:select (alist-replace))
#:use-module (guix packages)
#:use-module (guix derivations)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system node)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages dns)
#:use-module (gnu packages gcc)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages libevent)
@@ -45,16 +55,6 @@
#:use-module (gnu packages python)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
#:use-module (gnu packages)
#:use-module ((guix build utils) #:select (alist-replace))
#:use-module (guix build-system gnu)
#:use-module (guix build-system node)
#:use-module (guix derivations)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26))
+2 -2
View File
@@ -2620,14 +2620,14 @@ the boot loader configuration.")
(define-public flatpak
(package
(name "flatpak")
(version "1.16.6")
(version "1.16.5")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/flatpak/flatpak/releases/download/"
version "/flatpak-" version ".tar.xz"))
(sha256
(base32 "1hzfb337cyg5h4k3rh30jjzccfwazm3gx9lj9prh5dj4zvryfqqy"))
(base32 "0mn1rf1q0r8bhqkm84f1vj3lvl63ccalnc4p98k6qxj92rcfj853"))
(patches
(search-patches "flatpak-fix-fonts-icons.patch"
"flatpak-fix-icon-validation.patch"
@@ -1,291 +0,0 @@
This patch is taken from the upstream repository
From b937572d157e660af98e224523ffb3fe5810ed2c Mon Sep 17 00:00:00 2001
Message-ID: <b937572d157e660af98e224523ffb3fe5810ed2c.1776087342.git.efraim@flashner.co.il>
From: Felix Geyer <debfx@fobos.de>
Date: Fri, 30 Aug 2019 19:08:35 +0200
Subject: [PATCH] Port scripts to Python 3
Compatibility with Python 2 is preserved.
---
scripts/gendocs.py | 2 +-
scripts/test.py | 67 +++++++++++++++++++++++-----------------------
scripts/tinydoc.py | 23 ++++++++--------
3 files changed, 47 insertions(+), 45 deletions(-)
diff --git a/scripts/gendocs.py b/scripts/gendocs.py
index c9f206e..ba872c4 100644
--- a/scripts/gendocs.py
+++ b/scripts/gendocs.py
@@ -29,6 +29,6 @@ root.nodes += [ParseTextFile(Node("License"), "license.txt", True)]
# render files
for o in outputs:
- o.file = file(o.output_name(), "w")
+ o.file = open(o.output_name(), "w")
o.render(root)
o.file.close()
diff --git a/scripts/test.py b/scripts/test.py
index accc26c..bbc9c7d 100755
--- a/scripts/test.py
+++ b/scripts/test.py
@@ -1,5 +1,6 @@
#!/usr/bin/env python
+from __future__ import print_function
import os, sys, shutil, subprocess
extra_bam_flags = ""
@@ -36,8 +37,8 @@ def copytree(src, dst):
copytree(srcname, dstname)
else:
shutil.copy2(srcname, dstname)
- except (IOError, os.error), why:
- print "Can't copy %s to %s: %s" % (`srcname`, `dstname`, str(why))
+ except (IOError, os.error) as why:
+ print("Can't copy '%s' to '%s': %s" % (srcname, dstname, str(why)))
def run_bam(testname, flags):
@@ -45,7 +46,7 @@ def run_bam(testname, flags):
olddir = os.getcwd()
os.chdir(output_path+"/"+testname)
- p = subprocess.Popen(bam+" "+flags, stdout=subprocess.PIPE, shell=True, stderr=subprocess.STDOUT)
+ p = subprocess.Popen(bam+" "+flags, stdout=subprocess.PIPE, shell=True, stderr=subprocess.STDOUT, universal_newlines=True)
report = p.stdout.readlines()
p.wait()
ret = p.returncode
@@ -64,8 +65,8 @@ def test(name, moreflags="", should_fail=0):
os.chdir(output_path+"/"+name)
cmdline = bam+" -t -v "+extra_bam_flags+" " + moreflags
- print name + ":",
- p = subprocess.Popen(cmdline, stdout=subprocess.PIPE, shell=True, stderr=subprocess.STDOUT)
+ print(name + ":", end=" ")
+ p = subprocess.Popen(cmdline, stdout=subprocess.PIPE, shell=True, stderr=subprocess.STDOUT, universal_newlines=True)
report = p.stdout.readlines()
p.wait()
ret = p.returncode
@@ -73,50 +74,50 @@ def test(name, moreflags="", should_fail=0):
os.chdir(olddir)
if (should_fail and not ret) or (not should_fail and ret):
- print " FAILED!"
+ print(" FAILED!")
for l in report:
- print "\t", l,
+ print("\t", l, end=" ")
failed_tests += [name + "(returned %d)" % ret]
else:
- print " ok"
+ print(" ok")
def difftest(name, flags1, flags2):
global failed_tests
if len(tests) and not name in tests:
return
testname = "difftest: %s '%s' vs '%s': "%(name, flags1, flags2)
- print testname,
+ print(testname, end=" ")
ret1, report1 = run_bam(name, flags1)
ret2, report2 = run_bam(name, flags2)
if ret1:
- print "FAILED! '%s' returned %d" %(flags1, ret1)
+ print("FAILED! '%s' returned %d" %(flags1, ret1))
failed_tests += [testname]
return
if ret2:
- print "FAILED! '%s' returned %d" %(flags2, ret2)
+ print("FAILED! '%s' returned %d" %(flags2, ret2))
failed_tests += [testname]
return
if len(report1) != len(report2):
- print "FAILED! %d lines vs %d lines" % (len(report1), len(report2))
+ print("FAILED! %d lines vs %d lines" % (len(report1), len(report2)))
failed_tests += [testname]
return
failed = 0
- for i in xrange(0, len(report1)):
+ for i in range(0, len(report1)):
if report1[i] != report2[i]:
if not failed:
- print "FAILED!"
- print "1:", report1[i].strip()
- print "2:", report2[i].strip()
+ print("FAILED!")
+ print("1:", report1[i].strip())
+ print("2:", report2[i].strip())
failed += 1
if failed:
failed_tests += [testname]
else:
- print "ok"
+ print("ok")
def unittests():
global failed_tests
@@ -129,7 +130,7 @@ def unittests():
tests = []
state = 0
- for line in file('src/base.lua'):
+ for line in open('src/base.lua'):
if state == 0:
if "@UNITTESTS" in line:
state = 1
@@ -157,16 +158,16 @@ def unittests():
os.chdir(output_path+"/unit")
for test in tests:
- f = file("bam.lua", "w")
+ f = open("bam.lua", "w")
if test.catch != None:
- print >>f, "print(\"CATCH:\", %s)"%(test.line)
+ print("print(\"CATCH:\", %s)"%(test.line), file=f)
else:
- print >>f, test.line
- print >>f, 'DefaultTarget(PseudoTarget("Test"))'
+ print(test.line, file=f)
+ print('DefaultTarget(PseudoTarget("Test"))', file=f)
f.close()
- print "%s:"%(test.line),
- p = subprocess.Popen(bam + " --dry", stdout=subprocess.PIPE, shell=True, stderr=subprocess.STDOUT)
+ print("%s:"%(test.line), end=" ")
+ p = subprocess.Popen(bam + " --dry", stdout=subprocess.PIPE, shell=True, stderr=subprocess.STDOUT, universal_newlines=True)
report = p.stdout.readlines()
p.wait()
ret = p.returncode
@@ -174,7 +175,7 @@ def unittests():
failed = False
if ret != test.err:
failed = True
- print "FAILED! error %d != %d" % (test.err, ret)
+ print("FAILED! error %d != %d" % (test.err, ret))
if test.catch != None:
found = False
@@ -185,7 +186,7 @@ def unittests():
if catched == test.catch:
found = True
else:
- print "FAILED! catch '%s' != '%s'" % (test.catch, catched)
+ print("FAILED! catch '%s' != '%s'" % (test.catch, catched))
if not found:
failed = True
@@ -198,16 +199,16 @@ def unittests():
if not found:
failed = True
- print "FAILED! could not find '%s' in output" % (test.find)
+ print("FAILED! could not find '%s' in output" % (test.find))
if failed or verbose:
if failed:
failed_tests += [test.line]
else:
- print "",
+ print("", end=" ")
for l in report:
- print "\t", l.rstrip()
+ print("\t", l.rstrip())
else:
- print "ok"
+ print("ok")
os.chdir(olddir)
@@ -246,11 +247,11 @@ test("multipleoutput")
test("missingoutput", "", 1)
if len(failed_tests):
- print "FAILED TESTS:"
+ print("FAILED TESTS:")
for t in failed_tests:
- print "\t"+t
+ print("\t"+t)
sys.exit(1)
else:
- print "ALL TESTS PASSED!"
+ print("ALL TESTS PASSED!")
sys.exit(0)
diff --git a/scripts/tinydoc.py b/scripts/tinydoc.py
index 536a74f..6557cf8 100644
--- a/scripts/tinydoc.py
+++ b/scripts/tinydoc.py
@@ -1,4 +1,5 @@
+from __future__ import print_function
import re, time
class Node:
@@ -47,20 +48,20 @@ class Output:
def render_node_index(self, cur):
if len(cur.index):
- print >>self.file, self.index_node_begin(cur)
+ print(self.index_node_begin(cur), file=self.file)
for node in cur.nodes:
self.render_node_index(node)
if len(cur.index):
- print >>self.file, self.index_node_end(cur)
+ print(self.index_node_end(cur), file=self.file)
def render_node(self, cur):
if len(cur.index):
- print >>self.file, self.format_header(cur)
- print >>self.file, self.format_body(cur)
+ print(self.format_header(cur), file=self.file)
+ print(self.format_body(cur), file=self.file)
for node in cur.nodes:
self.render_node(node)
def index_nodes(self, cur, index=""):
- for i in xrange(0, len(cur.nodes)):
+ for i in range(0, len(cur.nodes)):
if len(index):
cur.nodes[i].index = index + "." + str(i+1)
else:
@@ -73,14 +74,14 @@ class Output:
def render(self, rootnode):
self.index_nodes(rootnode)
- print >>self.file, self.render_begin()
+ print(self.render_begin(), file=self.file)
- print >>self.file, self.index_begin()
+ print(self.index_begin(), file=self.file)
self.render_node_index(rootnode)
- print >>self.file, self.index_end()
+ print(self.index_end(), file=self.file)
self.render_node(rootnode)
- print >>self.file, self.render_end()
+ print(self.render_end(), file=self.file)
class HTMLOutput(Output):
def render_begin(self):
@@ -225,7 +226,7 @@ class HTMLOutput(Output):
def ParseTextFile(rootnode, filename, addbr=False):
group = rootnode
- for line in file(filename):
+ for line in open(filename):
if group_tag in line:
group_name = line.split(group_tag)[-1].split(end_tag)[0].strip()
group = Node(group_name)
@@ -244,7 +245,7 @@ def ParseFile(rootnode, filename):
# 2 = outputting function decl
state = 0
group = rootnode
- for line in file(filename):
+ for line in open(filename):
if state == 0:
if group_tag in line:
group_name = line.split(group_tag)[-1].split(end_tag)[0].strip()
@@ -0,0 +1,56 @@
Author: Igorj Gorjaĉev <igor@goryachev.org>
Date: Wed Oct 22 10:10:13 2025 +0300
vendoring support for guix
diff --git a/lib/mix/lib/mix/dep/loader.ex b/lib/mix/lib/mix/dep/loader.ex
index e47bfc556..0ddd49fe5 100644
--- a/lib/mix/lib/mix/dep/loader.ex
+++ b/lib/mix/lib/mix/dep/loader.ex
@@ -198,6 +198,10 @@ defp with_scm_and_app(app, req, opts, original, locked?) do
)
end
+ scm = Mix.Guix.scm(scm)
+ req = Mix.Guix.req(req)
+ opts = Mix.Guix.opts(opts, app)
+
%Mix.Dep{
scm: scm,
app: app,
diff --git a/lib/mix/lib/mix/guix.ex b/lib/mix/lib/mix/guix.ex
new file mode 100644
index 000000000..9c821704c
--- /dev/null
+++ b/lib/mix/lib/mix/guix.ex
@@ -0,0 +1,30 @@
+defmodule Mix.Guix do
+ @moduledoc false
+
+ @guix_vendorize "GUIX_MIX_VENDOR_DIR"
+
+ def scm(scm), do: (vendorize?() && Mix.SCM.Path) || scm
+
+ def req(req), do: (vendorize?() && nil) || req
+
+ def opts(opts, app) do
+ if vendorize?() do
+ if Keyword.has_key?(opts, :path) do
+ opts
+ else
+ dep_dir = vendor_dep_dir(app)
+
+ [path: dep_dir, dest: dep_dir] ++
+ Keyword.drop(opts, [:hex, :override, :repo, :lock, :dest])
+ end
+ else
+ opts
+ end
+ end
+
+ defp vendorize?, do: not is_nil(vendor_dir())
+
+ defp vendor_dir, do: System.get_env(@guix_vendorize)
+
+ defp vendor_dep_dir(name), do: "#{vendor_dir()}/#{name}"
+end
@@ -1,33 +0,0 @@
This patch makes neovim look for tree-sitter parsers in the directories
specified by TREE_SITTER_GRAMMAR_PATH. Thereby, making it compatible
with the tree-sitter setup used by other Guix packages. e.g. emacs.
diff --git a/runtime/lua/vim/treesitter/language.lua b/runtime/lua/vim/treesitter/language.lua
index f70f99421c..480e7bb77a 100644
--- a/runtime/lua/vim/treesitter/language.lua
+++ b/runtime/lua/vim/treesitter/language.lua
@@ -126,12 +126,19 @@ function M.add(lang, opts)
return nil, string.format('Invalid language name "%s"', lang)
end
- local fname = 'parser/' .. lang .. '.*'
- local paths = api.nvim_get_runtime_file(fname, false)
- if #paths == 0 then
- return nil, string.format('No parser for language "%s"', lang)
+ local paths = vim.split(os.getenv('TREE_SITTER_GRAMMAR_PATH') or '', ':')
+ for _, elem in ipairs(paths) do
+ local fname = elem .. '/' .. 'libtree-sitter-' .. lang .. '*'
+ local paths = vim.fn.glob(fname, false, true)
+ if #paths > 0 then
+ path = paths[1]
+ break
+ end
end
- path = paths[1]
+ end
+
+ if path == nil then
+ return nil, string.format('No parser for language "%s"', lang)
end
local res = loadparser(path, lang, symbol_name)
@@ -37,7 +37,7 @@ diff -ru a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt
-add_subdirectory(fmt EXCLUDE_FROM_ALL)
-set_property(TARGET fmt PROPERTY FOLDER "3rdparty")
-# Define a custom inline namespace for the fmt used by WZ, to prevent ODR violations if static linking to any libraries that themselves embed (a different version of) fmt
-target_compile_definitions(fmt PUBLIC "FMT_BEGIN_NAMESPACE=namespace fmt { inline namespace v12_wz2100 {")
-target_compile_definitions(fmt PUBLIC "FMT_BEGIN_NAMESPACE=namespace fmt { inline namespace v11_wz2100 {")
-target_compile_definitions(fmt PUBLIC "FMT_END_NAMESPACE=}}")
-
+pkg_check_modules(FMT REQUIRED fmt)
@@ -238,12 +238,12 @@ diff -ru a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt
include(FetchContent)
FetchContent_Declare(
diff -ru a/lib/framework/wzstring.cpp b/lib/framework/wzstring.cpp
--- a/lib/framework/wzstring.cpp
+++ b/lib/framework/wzstring.cpp
@@ -29,8 +29,8 @@
// "By default, Visual Studio always returns the value 199711L for the __cplusplus preprocessor macro."
#define UTF_CPP_CPLUSPLUS 201703L
#endif
--- a/lib/framework/wzstring.cpp 2025-09-16 11:41:32.000000000 -0500
+++ b/lib/framework/wzstring.cpp 2025-09-18 13:37:23.686668245 -0500
@@ -24,8 +24,8 @@
#include <sstream>
#include <iomanip>
#include <limits>
-#include <utfcpp/source/utf8.h>
-#include <utf8proc/utf8proc.h>
+#include <utf8cpp/utf8.h>
+2 -2
View File
@@ -236,7 +236,7 @@ it.")
(define-public trealla
(package
(name "trealla")
(version "2.92.29")
(version "2.92.21")
(source
(origin
(method git-fetch)
@@ -245,7 +245,7 @@ it.")
(url "https://github.com/trealla-prolog/trealla")
(commit (string-append "v" version))))
(sha256
(base32 "1032pza07dzyrsjrbh355h3cyrkwsg2vbzwwaaxcvfirjhn8zdam"))
(base32 "1i6jn214098181izf74mq2mzmbq3lkbynhvpp6pfc2svf5z489pp"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs
+13 -13
View File
@@ -106,16 +106,28 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages python-web)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system cargo)
#:use-module (guix build-system copy)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (gnu packages admin)
#:use-module (gnu packages adns)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages nss)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages django)
#:use-module (gnu packages dns)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
@@ -128,7 +140,6 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages lsof)
#:use-module (gnu packages node)
#:use-module (gnu packages nss)
#:use-module (gnu packages openstack)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
@@ -154,17 +165,6 @@
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages)
#:use-module (guix build-system cargo)
#:use-module (guix build-system copy)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (srfi srfi-1))
(define-public python-aiocoap
+70 -33
View File
@@ -197,6 +197,9 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages python-xyz)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages algebra)
#:use-module (gnu packages attr)
#:use-module (gnu packages autotools)
@@ -207,10 +210,11 @@
#:use-module (gnu packages bioinformatics)
#:use-module (gnu packages boost)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages c)
#:use-module (gnu packages nss)
#:use-module (gnu packages check)
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages c)
#:use-module (gnu packages cpp)
#:use-module (gnu packages crypto)
#:use-module (gnu packages databases)
@@ -219,7 +223,6 @@
#:use-module (gnu packages digest)
#:use-module (gnu packages django)
#:use-module (gnu packages djvu)
#:use-module (gnu packages dns)
#:use-module (gnu packages documentation)
#:use-module (gnu packages duckdb)
#:use-module (gnu packages elf)
@@ -268,7 +271,6 @@
#:use-module (gnu packages networking)
#:use-module (gnu packages ninja)
#:use-module (gnu packages node)
#:use-module (gnu packages nss)
#:use-module (gnu packages openstack)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pdf)
@@ -307,10 +309,10 @@
#:use-module (gnu packages video)
#:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xorg)
#:use-module (gnu packages)
#:use-module (guix packages)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
@@ -320,11 +322,9 @@
#:use-module (guix build-system python)
#:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix hg-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
@@ -13218,30 +13218,6 @@ and a plugin for Pillow.")
(sha256
(base32 "16mkap63d14f69105b3bm8pi64fvpdznncgn48vhgls0jf977m31"))))))
(define-public python-jxlpy
(package
(name "python-jxlpy")
(version "0.9.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/olokelo/jxlpy")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1d1jrvpyvp8rix8kfmi962hl73mj0f7mib0xzk04va4kzc9p726s"))))
(build-system pyproject-build-system)
(arguments (list #:tests? #f)) ; no tests, just examples
(inputs (list libjxl))
(propagated-inputs (list python-cython))
(native-inputs (list python-cython python-setuptools))
(home-page "https://github.com/olokelo/jxlpy")
(synopsis "JPEG XL integration in Python")
(description "This package provides Cython-based Python bindings for
libjxl, as well as a pillow plugin.")
(license license:expat)))
(define-public python-pixelmatch
(package
(name "python-pixelmatch")
@@ -21675,6 +21651,26 @@ programming errors.")
into aligned columns.")
(license license:expat)))
(define-public python-chai
(package
(name "python-chai")
(version "1.1.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "chai" version))
(sha256
(base32 "1k6n6zbgrrs83crp6mr3yqj9zlv40b8rpisyrliwsq7naml2p3gz"))
(patches (search-patches "python-chai-drop-python2.patch"))))
(build-system pyproject-build-system)
(native-inputs (list python-pytest python-setuptools))
(home-page "https://github.com/agoragames/chai")
(synopsis "Mocking framework for Python")
(description
"Chai provides an api for mocking, stubbing and spying your python
objects, patterned after the Mocha library for Ruby.")
(license license:bsd-3)))
(define-public python-pysol-cards
(package
(name "python-pysol-cards")
@@ -40302,6 +40298,47 @@ e.g. filters, callbacks and errbacks can all be promises.")
(sha256
(base32 "1gj57xqgrg53yfn9ypikgky01hvazxdyl556kwsc7b7avyxm9dbv")))))))
;; XXX: No new release since 2021, no updates on default branch since 2023, no
;; users in Guix; consider to remove if it keeps failing to build.
(define-public python-virtualenv-clone
(package
(name "python-virtualenv-clone")
(version "0.5.7")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/edwardgeorge/virtualenv-clone")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0p0d1y3axvjfnxlgwjx2374gikc8bmc82g0m7yashihbikh7pcxa"))))
(build-system pyproject-build-system)
(arguments
(list
#:test-flags
#~(list "-k" (string-join
;; UnicodeDecodeError: 'utf-8' codec can't decode byte
;; 0xba in position 10: invalid start byte
(list "not test_clone_contents"
;; AssertionError: All versions were skipped.
"test_clone_syspath"
"test_clone_version"
"test_virtualenv_syspath"
"test_virtualenv_versions")
" and not "))))
(native-inputs
(list python-pytest
python-setuptools
python-tomli
python-virtualenv
python-wheel))
(home-page "https://github.com/edwardgeorge/virtualenv-clone")
(synopsis "Clone a non-relocatable virtualenv cleanly")
(description
"Clone non-relocatable virtualenvs without breaking site-packages.")
(license license:expat)))
(define-public python-vncdotool
(package
(name "python-vncdotool")
+11 -11
View File
@@ -24,13 +24,23 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages rpc)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix download)
#:use-module (guix utils)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (gnu packages adns)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages dns)
#:use-module (gnu packages flex)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages protobuf)
@@ -40,16 +50,6 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages regex)
#:use-module (gnu packages tls)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (srfi srfi-1))
;; XXX: Starting from version 1.47.5, opencensus-proto is required.
+2 -73
View File
@@ -263,77 +263,6 @@ capable of sustaining any number of domain names in a bunch of original
alternative zones.")
(license license:agpl3+)))
(define-public ast-grep
(package
(name "ast-grep")
(version "0.42.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ast-grep/ast-grep")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1h6335dq768vn7gfyhi90j1ljawpsf7wzgqzysgbwrwnk6h67mad"))
(snippet
#~(begin (use-modules (guix build utils))
(delete-file-recursively "fixtures")))))
(build-system cargo-build-system)
(arguments
(list
#:install-source? #f
#:cargo-install-paths ''("crates/cli")
#:cargo-test-flags
''("--"
;; These tests require the bundled shared libraries.
"--skip=test::test_load_parser"
"--skip=test::test_register_lang")
#:modules '((guix build cargo-build-system)
(guix build utils)
(ice-9 match))
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-completions
(lambda* (#:key native-inputs #:allow-other-keys)
(for-each
(match-lambda
((shell . path)
(mkdir-p (in-vicinity #$output (dirname path)))
(let ((binary
(if #$(%current-target-system)
(search-input-file native-inputs "bin/ast-grep")
(in-vicinity #$output "bin/ast-grep"))))
(with-output-to-file (in-vicinity #$output path)
(lambda _
(invoke binary "completions" shell))))))
'(("bash" . "share/bash-completion/completions/ast-grep")
("elvish" . "share/elvish/lib/ast-grep")
("fish" . "share/fish/vendor_completions.d/ast-grep.fish")
("zsh" . "share/zsh/site-functions/_ast-grep")))))
(add-after 'install 'wrap-sg
(lambda _
;; sg needs ast-grep to be in its PATH.
(wrap-program (in-vicinity #$output "bin/sg")
`("PATH" ":" prefix
(,(dirname (in-vicinity #$output "bin/ast-grep"))))))))))
(native-inputs
(if (%current-target-system)
(list this-package)
'()))
(inputs (cons* bash-minimal (cargo-inputs 'ast-grep)))
(home-page "https://github.com/ast-grep/ast-grep")
(synopsis "CLI tool for code structural search, lint, and rewriting")
(description
"@code{ast-grep} is an abstract syntax tree based tool to search code by
pattern code. Think of it as your old-friend grep, but matching AST nodes
instead of text. Write patterns as if you are writing ordinary code. It will
match all code that has the same syntactical structure. You can use @code{$}
and upper case letters as a wildcard, e.g. @code{$MATCH}, to match any single
AST node. Think of it as regular expression dot @code{.}, except it is not
textual.")
(license license:expat)))
(define-public bat
(package
(name "bat")
@@ -1964,7 +1893,7 @@ JSON viewer and jq filter editor.")
(define-public jujutsu
(package
(name "jujutsu")
(version "0.40.0")
(version "0.39.0")
(source
(origin
(method git-fetch)
@@ -1973,7 +1902,7 @@ JSON viewer and jq filter editor.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0wdl6jqvv3bhdij65gsn0lpycw2qg2i5p1rc2wi42fdhghsfq6iw"))))
(base32 "0c0n56b5y6wmyvcc18nhrfsmcavjlh2zwv9224lrcs6h602a5jdd"))))
(build-system cargo-build-system)
(arguments
(list
+1405 -2427
View File
File diff suppressed because it is too large Load Diff
+4 -7
View File
@@ -153,7 +153,7 @@ hardware.")
(package
(inherit sdl2)
(name "sdl3")
(version "3.4.4")
(version "3.2.10")
(source
(origin
(method url-fetch)
@@ -162,7 +162,7 @@ hardware.")
version "/SDL3-" version ".tar.gz"))
(sha256
(base32
"0r1q1frjs0am93aspgha4k15rvmmiwsp5kn2pw5i9fw9daz2swgf"))))
"1q0ksmg1h0xfjpgbshslxc5a2b2flcm7n5lwiq4v8vf6vssffyzq"))))
(build-system cmake-build-system)
(arguments
(list
@@ -188,11 +188,8 @@ hardware.")
(propagated-inputs
(list alsa-lib
libxcursor ;enables X11 cursor support
libxi
libxkbcommon
libxrandr
libxscrnsaver
libxtst
mesa ;required by wayland
pipewire-minimal
pulseaudio
@@ -209,7 +206,7 @@ hardware.")
(define-public sdl2-compat
(package
(name "sdl2-compat")
(version "2.32.66")
(version "2.32.54")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -218,7 +215,7 @@ hardware.")
(file-name (git-file-name name version))
(sha256
(base32
"1las3lq2sn7hiwpcdzf1rpcjz2g3dfrnl83b8n78v8y665fmbbk4"))))
"0ijpx62b9syypxxnwvggz4l5fmrgln95ka180am9g2hgyqkqlj5n"))))
(build-system cmake-build-system)
(arguments
(list #:phases
+16 -16
View File
@@ -34,18 +34,29 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages search)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system perl)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system meson)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages aspell)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages check)
#:use-module (gnu packages databases)
#:use-module (gnu packages dns)
#:use-module (gnu packages ebook)
#:use-module (gnu packages elf)
#:use-module (gnu packages file)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages file)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
@@ -56,10 +67,9 @@
#:use-module (gnu packages less)
#:use-module (gnu packages linux)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pdf)
#:use-module (gnu packages perl)
#:use-module (gnu packages pdf)
#:use-module (gnu packages photo)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-crypto)
@@ -72,17 +82,7 @@
#:use-module (gnu packages web)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system pyproject)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils))
#:use-module (gnu packages pkg-config))
(define-public xapian
(package
+17 -16
View File
@@ -22,6 +22,20 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages sssd)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix modules)
#:use-module (guix utils)
#:use-module (guix build utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages)
#:use-module (gnu packages adns)
#:use-module (gnu packages algebra)
#:use-module (gnu packages augeas)
#:use-module (gnu packages autotools)
@@ -33,7 +47,6 @@
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases)
#:use-module (gnu packages dns)
#:use-module (gnu packages dns)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages gettext)
@@ -44,29 +57,17 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages nss)
#:use-module (gnu packages openldap)
#:use-module (gnu packages tls)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages samba)
#:use-module (gnu packages security-token)
#:use-module (gnu packages selinux)
#:use-module (gnu packages ssh)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages)
#:use-module (guix build utils)
#:use-module (guix build-system gnu)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix modules)
#:use-module (guix packages)
#:use-module (guix utils))
#:use-module (gnu packages xml))
(define-public adcli
(package
+15 -15
View File
@@ -26,7 +26,21 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages sync)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
#:use-module (guix build-system qt)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix packages)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages adns)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
@@ -34,7 +48,6 @@
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages dlang)
#:use-module (gnu packages dns)
#:use-module (gnu packages documentation)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages glib)
@@ -66,20 +79,7 @@
#:use-module (gnu packages shells)
#:use-module (gnu packages sphinx)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
#:use-module (gnu packages)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
#:use-module (guix build-system qt)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils))
#:use-module (gnu packages tls))
(define-public nextcloud-client
(package
+10098 -14564
View File
File diff suppressed because it is too large Load Diff
+31 -32
View File
@@ -37,7 +37,7 @@
;;; Copyright © 2024 Murilo <murilo@disroot.org>
;;; Copyright © 2025 Ashvith Shetty <ashvithshetty0010@zohomail.in>
;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com>
;;; Copyright © 2025, 2026 Ashish SHUKLA <ashish.is@lostca.se>
;;; Copyright © 2025 Ashish SHUKLA <ashish.is@lostca.se>
;;; Copyright © 2025 Marc Coquand <marc@coquand.email>
;;; Copyright © 2025 Andrew Wong <wongandj@icloud.com>
;;; Copyright © 2025 Junker <dk@junkeria.club>
@@ -414,40 +414,39 @@ based command language.")
(define-public kakoune
(package
(name "kakoune")
(version "2026.04.12")
(version "2025.06.03")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mawww/kakoune/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(method url-fetch)
(uri (string-append "https://github.com/mawww/kakoune/"
"releases/download/v" version "/"
"kakoune-" version ".tar.bz2"))
(sha256
(base32 "11c4sgb9k1iahi06i5p6m0qz1qf5hz4g2f1z80di23987bwvbjlv"))))
(base32 "16b466anx7gf1jci3gxj87xr5qw9fgyhpc3509myzf6z3cgr9mff"))))
(build-system gnu-build-system)
(arguments
(list
#:make-flags
#~(list (string-append "PREFIX=" #$output)
(string-append "CXX=" #$(cxx-for-target)))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-source
(lambda _
;; kakoune uses confstr with _CS_PATH to find out where to find
;; a posix shell, but this doesn't work in the build
;; environment. This substitution just replaces that result
;; with the "sh" path.
(substitute* "src/shell_manager.cc"
(("if \\(m_shell.empty\\(\\)\\)" line)
(string-append "m_shell = \"" (which "sh")
"\";\n " line)))))
(add-after 'install 'wrap-executable
(lambda* (#:key inputs #:allow-other-keys)
(wrap-program (string-append #$output "/bin/kak")
`("PATH" ":" prefix
(,(dirname (search-input-file inputs "bin/perl")))))))
(delete 'configure)))) ; no configure script
`(#:make-flags
(list (string-append "PREFIX=" (assoc-ref %outputs "out"))
(string-append "CXX=" ,(cxx-for-target)))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-source
(lambda _
;; kakoune uses confstr with _CS_PATH to find out where to find
;; a posix shell, but this doesn't work in the build
;; environment. This substitution just replaces that result
;; with the "sh" path.
(substitute* "src/shell_manager.cc"
(("if \\(m_shell.empty\\(\\)\\)" line)
(string-append "m_shell = \"" (which "sh")
"\";\n " line)))))
(add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
(wrap-program (string-append (assoc-ref outputs "out") "/bin/kak")
`("PATH" ":" prefix
(,(dirname (search-input-file inputs "bin/perl")))))))
(delete 'configure)))) ; no configure script
(native-inputs (list pkg-config))
(inputs (list perl))
(native-search-paths
(list (search-path-specification
@@ -957,13 +956,13 @@ OpenBSD team.")
(define-public nano
(package
(name "nano")
(version "9.0")
(version "8.7.1")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/nano/nano-" version ".tar.xz"))
(sha256
(base32 "1piz044cjyk77w33g2qqwg386irqpgzabm9snwjhl4cnnis46f4z"))))
(base32 "1pyy3hnjr9g0831wcdrs18v0lh7v63yj1kaf3ljz3qpj92rdrw3n"))))
(build-system gnu-build-system)
(arguments
(if (%current-target-system)
+2 -2
View File
@@ -71,14 +71,14 @@
(define-public tor
(package
(name "tor")
(version "0.4.9.6")
(version "0.4.9.5")
(source (origin
(method url-fetch)
(uri (string-append "https://dist.torproject.org/tor-"
version ".tar.gz"))
(sha256
(base32
"05vh1bcsr0gx2xwl7r94drmqlzp0dgag43dlajk6769f0nbvm6m8"))))
"0yg1k4qcvf7ikc296wgr7nr5axhpkkjb3xkn364n93ildgwc4jf9"))))
(build-system gnu-build-system)
(arguments
(list #:configure-flags
+30 -108
View File
@@ -66,7 +66,6 @@
;;; Copyright © 2025 Dariqq <dariqq@posteo.net>
;;; Copyright © 2025 Tomas Volf <~@wolfsden.cz>
;;; Copyright © 2025 Matthew Elwin <elwin@northwestern.edu>
;;; Copyright © 2025 Roman Scherer <roman@burningswell.com>
;;; Copyright © 2026 Ingar <ingar@onionmail.info>
;;;
;;; This file is part of GNU Guix.
@@ -1763,78 +1762,6 @@ fetch @acronym{PR, pull requests}, and more. It is based on the
supports AGit-Flow and lifts the requirement to use a manifest file.")
(license license:asl2.0)))
(define-public github-cli
(package
(name "github-cli")
(version "2.83.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/cli/cli")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "04kpcy15r7px92mf13jf4w0v07sjnfqc09m1vfvr5pmw7xsg35k2"))))
(build-system go-build-system)
(arguments
(list
#:install-source? #f
#:import-path "github.com/cli/cli/v2/cmd/gh"
#:unpack-path "github.com/cli/cli/v2"
#:embed-files
#~(list ".*\\.xml" ".*\\.tmpl"
;; sigstore-go TUF repository files (root.json, staging_root.json)
".*_?root\\.json" "trusted_root\\.json"
;; go-openapi/spec schema files
"jsonschema-draft-04\\.json" "schema\\.json")))
(native-inputs
(list go-github-com-atotto-clipboard
go-github-com-briandowns-spinner
go-github-com-cenkalti-backoff-v4
go-github-com-cenkalti-backoff-v5
go-github-com-charmbracelet-glamour
go-github-com-charmbracelet-huh
go-github-com-charmbracelet-lipgloss
go-github-com-cli-go-gh-v2
go-github-com-cli-oauth
go-github-com-cli-safeexec
go-github-com-digitorus-timestamp
go-github-com-distribution-reference
go-github-com-gabriel-vasile-mimetype
go-github-com-gdamore-tcell-v2
go-github-com-gorilla-websocket
go-github-com-hashicorp-go-multierror
go-github-com-hashicorp-go-version
go-github-com-itchyny-timefmt-go
go-github-com-joho-godotenv
go-github-com-makenowjust-heredoc
go-github-com-masterminds-sprig-v3
go-github-com-microsoft-dev-tunnels
go-github-com-muhammadmuzzammil1998-jsonc
go-github-com-opentracing-opentracing-go
go-github-com-rivo-tview
go-github-com-shurcool-githubv4
go-github-com-sigstore-sigstore-go
go-github-com-spf13-cobra
go-github-com-spf13-pflag
go-github-com-stretchr-testify
go-github-com-vmihailenco-msgpack-v5
go-github-com-zalando-go-keyring
go-golang-org-x-sys
go-golang-org-x-term
go-golang-org-x-text
go-google-golang-org-grpc
go-gopkg-in-yaml-v3))
(home-page "https://cli.github.com/")
(synopsis "GitHub's official command-line tool")
(description
"@command{gh} is GitHub on the command line. It brings pull requests,
issues, and other GitHub concepts to the terminal next to where you are
already working with git and your code. It works with GitHub.com, GitHub
Enterprise Cloud, and GitHub Enterprise Server 2.20+.")
(license license:expat)))
(define-public cgit
(package
(name "cgit")
@@ -3312,46 +3239,40 @@ RCS, PRCS, and Aegis packages.")
(define-public cvs-fast-export
(package
(name "cvs-fast-export")
(version "1.68")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/esr/cvs-fast-export")
(commit version)))
(sha256
(base32
"17225lamdw8rf2yk76rhx8zxhzqjhv88ig3ng21qgvxbhl52wnzm"))))
(version "1.56")
(source (origin
(method url-fetch)
(uri (string-append "http://www.catb.org/~esr/cvs-fast-export/"
"cvs-fast-export-" version ".tar.gz"))
(sha256
(base32
"058bzp3npng48ascls943m16kgvrl0h197a10brf7mvx8zpfc7sc"))))
(build-system gnu-build-system)
(arguments
(list
;; Tests require a lot of dependencies and are glacially slow.
#:tests? #f
#:phases
#~(modify-phases %standard-phases
(delete 'configure))
#:make-flags
#~(list (string-append "CC=" #$(cc-for-target))
(string-append "CFLAGS+=-Wno-error=calloc-transposed-args")
(string-append "prefix?=" #$output))))
'(#:phases
(modify-phases %standard-phases
(delete 'configure)) ; no configure script
#:parallel-build? #f ; parallel a2x commands fail spectacularly
#:make-flags
(list "CC=gcc" (string-append "prefix?=" (assoc-ref %outputs "out")))))
(inputs
(list git python-wrapper))
`(("git" ,git)
("python" ,python-wrapper)))
(native-inputs
(list ruby-asciidoctor/minimal
bison
flex))
(list asciidoc
;; These are needed for the tests.
cvs rcs))
(home-page "http://www.catb.org/esr/cvs-fast-export/")
(synopsis "Export an RCS or CVS history as a fast-import stream")
(description
"This program analyzes a collection of RCS files in a CVS repository (or
outside of one) and, when possible, emits an equivalent history in the form of
a fast-import stream. Not all possible histories can be rendered this way;
the program tries to emit useful warnings when it can't.
(description "This program analyzes a collection of RCS files in a CVS
repository (or outside of one) and, when possible, emits an equivalent history
in the form of a fast-import stream. Not all possible histories can be
rendered this way; the program tries to emit useful warnings when it can't.
The program can also produce a visualization of the resulting commit
@acronym{DAG, directed acyclic graph} in the input format of
@uref{http://www.graphviz.org, Graphviz}. The package also includes
@command{cvssync}, a tool for mirroring masters from remote CVS hosts.")
The program can also produce a visualization of the resulting commit directed
acyclic graph (DAG) in the input format of @uref{http://www.graphviz.org,
Graphviz}. The package also includes @command{cvssync}, a tool for mirroring
masters from remote CVS hosts.")
(license license:gpl2+)))
(define-public vc-dwim
@@ -4910,8 +4831,9 @@ comes as a command line app and also an Emacs interface.")
go-gopkg-in-yaml-v3))
(home-page "https://github.com/github/git-sizer")
(synopsis "Analyze size of a Git repo")
(description "Compute various size metrics for a Git repository, flagging
those that might cause problems or inconvenience.")
(description
"Compute various size metrics for a Git repository, flagging those that
might cause problems or inconvenience.")
(license license:expat)))
;;;
+10 -3
View File
@@ -4174,7 +4174,11 @@ tools, XML authoring components, and an extensible plug-in based API.")
(native-inputs
(list perl pkg-config))
(inputs
(list libjpeg-turbo
(list alsa-lib
glu
libjpeg-turbo
libx11
qtbase-5
eudev))
(synopsis "Realtime video capture utilities for Linux")
(description "The v4l-utils provide a series of libraries and utilities to
@@ -4183,8 +4187,11 @@ be used for realtime video capture via Linux-specific APIs.")
;; libv4l2 is LGPL2.1+, while utilities are GPL2 only.
(license (list license:lgpl2.1+ license:gpl2))))
;; 2026-03-20
(define-deprecated-package v4l-utils-minimal v4l-utils)
(define-public v4l-utils-minimal
(package/inherit v4l-utils
(name "v4l-utils-minimal")
(inputs (modify-inputs (package-inputs v4l-utils)
(delete "qtbase" "glu" "libx11")))))
(define-public obs
(package
+1 -15
View File
@@ -801,8 +801,7 @@ is based on Vim's builtin plugin support.")
(file-name (git-file-name name version))
(sha256
(base32
"1b524vi44gkcsyy8w4jggvprwdsgy0gjprgxpyhh0dmqm47c0c48"))
(patches (search-patches "neovim-tree-sitter-grammar-path.patch"))))
"1b524vi44gkcsyy8w4jggvprwdsgy0gjprgxpyhh0dmqm47c0c48"))))
(build-system cmake-build-system)
(arguments
(list #:tests? #f
@@ -853,19 +852,6 @@ is based on Vim's builtin plugin support.")
lua5.1-libmpack
tree-sitter))
(native-inputs (list pkg-config gettext-minimal gperf))
(propagated-inputs
;; bundled tree-sitters, neovim assumes that these are available.
;; See https://neovim.io/doc/user/treesitter.html#treesitter-parsers
(list tree-sitter-c
tree-sitter-lua
tree-sitter-markdown
tree-sitter-vim
tree-sitter-vimdoc
tree-sitter-query))
(native-search-paths
(list (search-path-specification
(variable "TREE_SITTER_GRAMMAR_PATH")
(files '("lib/tree-sitter")))))
(home-page "https://neovim.io")
(synopsis "Fork of vim focused on extensibility and agility")
(description
+120 -34
View File
@@ -100,7 +100,34 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages web)
#:use-module (ice-9 match)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix cvs-download)
#:use-module (guix hg-download)
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system ant)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system guile)
#:use-module (guix build-system meson)
#:use-module (guix build-system node)
#:use-module (guix build-system perl)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix build-system scons)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages adns)
#:use-module (gnu packages apr)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
@@ -109,6 +136,7 @@
#:use-module (gnu packages bittorrent)
#:use-module (gnu packages boost)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages nss)
#:use-module (gnu packages check)
#:use-module (gnu packages code)
#:use-module (gnu packages compression)
@@ -117,11 +145,10 @@
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages databases)
#:use-module (gnu packages datastructures)
#:use-module (gnu packages digest)
#:use-module (gnu packages django)
#:use-module (gnu packages dns)
#:use-module (gnu packages docbook)
#:use-module (gnu packages datastructures)
#:use-module (gnu packages documentation)
#:use-module (gnu packages emacs)
#:use-module (gnu packages emacs-xyz)
@@ -152,9 +179,9 @@
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
#:use-module (gnu packages image-viewers)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages java)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages less)
@@ -163,9 +190,9 @@
#:use-module (gnu packages libidn)
#:use-module (gnu packages libunistring)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages llvm)
#:use-module (gnu packages linux)
#:use-module (gnu packages lisp-xyz)
#:use-module (gnu packages llvm)
#:use-module (gnu packages logging)
#:use-module (gnu packages lsof)
#:use-module (gnu packages lua)
@@ -177,7 +204,6 @@
#:use-module (gnu packages networking)
#:use-module (gnu packages node)
#:use-module (gnu packages nss)
#:use-module (gnu packages nss)
#:use-module (gnu packages openldap)
#:use-module (gnu packages openstack)
#:use-module (gnu packages package-management)
@@ -185,7 +211,6 @@
#: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 prometheus)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
@@ -194,6 +219,7 @@
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages qt)
#:use-module (gnu packages re2c)
#:use-module (gnu packages readline)
@@ -216,32 +242,6 @@
#:use-module (gnu packages wget)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages)
#:use-module (guix build-system ant)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system guile)
#:use-module (guix build-system meson)
#:use-module (guix build-system node)
#:use-module (guix build-system perl)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system qt)
#:use-module (guix build-system scons)
#:use-module (guix build-system trivial)
#:use-module (guix cvs-download)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix hg-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (ice-9 match)
#:use-module ((srfi srfi-1) #:select (delete-duplicates)))
(define-public qhttp
@@ -503,7 +503,7 @@ Interface} specification.")
(define-public ablorb
(package
(name "ablorb")
(version "0.1.1")
(version "0.1.0")
(source
(origin
(method git-fetch)
@@ -512,7 +512,7 @@ Interface} specification.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1yyc52863bbqvq9si7bhwwraafa3kir6qr5xqavqbvi140d9c373"))))
(base32 "1i705p2gw5aryj0myfj3rmsrmj3ilqdn5w7xd5dwjkyi80rc20kj"))))
(build-system meson-build-system)
(inputs (list glib gconf gnome-vfs libxml2))
(native-inputs (list pkg-config))
@@ -7988,6 +7988,92 @@ Interface} and @acronym{SSL, Secure Sockets Layer} support. It can be
embedded into C/C++ applications or used as a standalone web server.")
(license license:expat)))
(define-public clearsilver
(package
(name "clearsilver")
(version "0.11.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/blong42/clearsilver/")
(commit "fbe4926ba9a756163fd1539ff6eee3522cf1f5d8")))
(file-name (git-file-name name version))
(sha256
(base32 "02ad43gmqwy7wmh71mh5pk6gl1lax76sjnf42sknj0ijdga170kl"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #false ;there is not test target and tests are run during build
#:configure-flags
'(list "--disable-java" "--disable-python")
#:phases
'(modify-phases %standard-phases
(add-after 'unpack 'prepare-streamhtmlparser
(lambda* (#:key inputs #:allow-other-keys)
(copy-recursively (assoc-ref inputs "streamhtmlparser")
(string-append (getcwd) "/streamhtmlparser"))
(for-each make-file-writable
(find-files "streamhtmlparser" "."
#:directories? #t))))
(add-after 'unpack 'pre-bootstrap
(lambda _
;; We don't need the Java stuff
(substitute* "configure.in"
(("AC_JNI_INCLUDE_DIR") ""))
;; This script will call /bin/sh, so it's easier to just
;; bootstrap manually.
(delete-file "autogen.sh")
(substitute* "rules.mk.in"
(("@PTHREAD_LIBS@") "-lpthread")
(("@PTHREAD_CFLAGS@") "")
(("@PTHREAD_CC@") "gcc"))
;; The GNU variadic macros actually work, whereas the C99
;; implementation fails to build.
(substitute* "util/neo_misc.h"
(("#define USE_C99_VARARG_MACROS") "#define USE_GNUC_VARARG_MACROS"))
(setenv "CFLAGS" "-fPIC")
;; This directory is created some time during the build, but the
;; early libtool processes assume the directory exists. When
;; they are run first they copy the libraries themselves to the
;; file "libs" instead of moving them into the directory.
(mkdir-p "libs")))
(add-after 'build 'build-documentation
(lambda _ (invoke "make" "man")))
(add-after 'install 'install-streamhtmlparser
(lambda* (#:key make-flags parallel-build? #:allow-other-keys)
(with-directory-excursion "streamhtmlparser"
(apply invoke "make" "-j" (if parallel-build?
(number->string (parallel-job-count))
"1")
"install" make-flags)))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("libtool" ,libtool)
("python" ,python-2)
("streamhtmlparser"
,(let ((commit "551109ac02a31957a0e776416774c7b515b4b7c7"))
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/streamhtmlparser/")
(commit commit)))
(file-name (git-file-name "streamhtmlparser" commit))
(sha256
(base32
"0bmrdakk930q3m8fmq0xcy7n7cdvlk1xma4z9204919hvb1gk9md")))))))
(home-page "https://github.com/blong42/clearsilver")
(synopsis "CGI kit and HTML templating system")
(description
"This package includes Clearsilver, the CGI kit and HTML templating
system.")
(license license:bsd-3)))
(define-public python-py-ubjson
(package
(name "python-py-ubjson")
+19 -40
View File
@@ -1251,7 +1251,7 @@ to events.")
pulseaudio
wayland
wayland-protocols
wlroots-0.19))
wlroots))
(propagated-inputs
(list python-aiohttp
python-cairocffi
@@ -2450,19 +2450,19 @@ limited size and a few external dependencies. It is configurable via
;; LICENSE LICENSE.dwm LICENSE.tinywl
(license (list license:gpl3+ license:expat license:cc0))))
(define-public mangowm
(define-public mangowc
(package
(name "mangowm")
(version "0.12.8")
(name "mangowc")
(version "0.12.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mangowm/mango")
(url "https://github.com/DreamMaoMao/mangowc")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1jfm3kd2iscwfxhflmq8mdph64rd26jc6ps0sqmf0y9ysagqbnlk"))))
(base32 "024vq3l8pwv4nxq0rnvpgdhy58fdq2k0zlca83s6nv4zzf0qxqvj"))))
(build-system meson-build-system)
(arguments
(list
@@ -2493,20 +2493,17 @@ limited size and a few external dependencies. It is configurable via
pcre2
libxcb
xcb-util-wm
wlroots-0.19
wlroots
scenefx))
(home-page "https://github.com/mangowm/mango")
(home-page "https://github.com/DreamMaoMao/mangowc")
(synopsis "Wayland compositor based on wlroots and scenefx")
(description
"MangoWM is a modern, lightweight, high-performance Wayland compositor
"MangoWC is a modern, lightweight, high-performance Wayland compositor
built on dwl crafted for speed, flexibility, and a customizable desktop experience.")
(license (list license:gpl3 ;mangowm itself, dwl
(license (list license:gpl3 ;mangowc itself, dwl
license:expat ;dwm, sway, wlroots
license:cc0)))) ;tinywl
(define-deprecated-package mangowc
mangowm)
(define-public niri
(package
(name "niri")
@@ -2539,11 +2536,6 @@ built on dwl — crafted for speed, flexibility, and a customizable desktop expe
"version = \"*\", optional")
(("^git = .*")
""))))
(add-after 'unpack 'patch-references
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/main.rs"
(("dbus-update-activation-environment" cmd)
(search-input-file inputs (in-vicinity "bin" cmd))))))
(add-after 'unpack 'set-environment
(lambda _
(setenv "RUSTFLAGS"
@@ -2557,10 +2549,13 @@ built on dwl — crafted for speed, flexibility, and a customizable desktop expe
(setenv "RAYON_NUM_THREADS" "1")
(setenv "XDG_RUNTIME_DIR" "/tmp")))
(add-after 'install 'install-extras
(lambda _
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "resources/niri.desktop"
(("niri-session")
(string-append #$output "/bin/niri --session")))
(format #f "~a --dbus-daemon=~a ~a/bin/niri --session"
(search-input-file inputs "bin/dbus-run-session")
(search-input-file inputs "bin/dbus-daemon")
#$output)))
(install-file
"resources/niri.desktop"
(in-vicinity #$output "share/wayland-sessions"))
@@ -2719,7 +2714,7 @@ XDG-Output for wlclock to work.")
(define-public wlroots
(package
(name "wlroots")
(version "0.20.0")
(version "0.19.2")
(source
(origin
(method git-fetch)
@@ -2728,7 +2723,7 @@ XDG-Output for wlclock to work.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1gdmy4mpi7x23g81cdmcr9aakk3g6csl69h9j98yzssa48k6all5"))))
(base32 "0w1mq72r92zk9z650gdik17h6rxqnxjy63r2mfj423zxl54s2lzi"))))
(build-system meson-build-system)
(arguments
(list #:phases
@@ -2780,23 +2775,7 @@ modules for building a Wayland compositor.")
;; Allow packages referring to stable wlroots version, because
;; wlroots updates are backward incompatible.
(define-public wlroots-0.20
wlroots)
(define-public wlroots-0.19
(package
(inherit wlroots)
(name "wlroots")
(version "0.19.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.freedesktop.org/wlroots/wlroots")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1k8qzss7iycbbnwjp3ygsrb3rc8m45vxpy99r213d2vf9dai5v17"))))))
(define-public wlroots-0.19 wlroots)
(define-public wlroots-0.18
(package
@@ -2967,7 +2946,7 @@ narrow the items to those matching the tokens in the input.")
pcre2
swaybg
wayland
wlroots-0.19))
wlroots))
(native-inputs
(cons* linux-pam mesa pkg-config scdoc wayland-protocols
(if (%current-target-system)
@@ -1,143 +0,0 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2026 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu services configuration environment-variables)
#:use-module (gnu services configuration)
#:use-module (gnu services configuration utils)
#:use-module (guix diagnostics)
#:use-module (guix i18n)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:export (serialize-string-environment-variable
serialize-boolean-environment-variable
serialize-number-environment-variable
serialize-maybe-string-environment-variable
serialize-maybe-boolean-environment-variable
serialize-maybe-number-environment-variable
serialize-environment-variables))
(define* (field-name->environment-variable field-name
#:key prefix
(uglify uglify-snake-case))
"Serializes FIELD-NAME, a field name from @code{(gnu services configuration)},
to an environment variable name through UGLIFY, by default a procedure that is
passed FIELD-NAME, and returns a snake case string representation of
the field name. Trailing @code{?} in the name are dropped and @code{-} get
replaced by @code{_}. When PREFIX is a string, it is prepended to the result.
The result of UGLIFY is then upcased and returned.
For example the procedure would convert @code{'a-field} to @code{\"A_FIELD\"}."
(let ((variable (string-upcase
(uglify field-name))))
(if (string? prefix)
(string-append prefix variable)
variable)))
(define* (serialize-string-environment-variable field-name value
#:key prefix
#:allow-other-keys)
(cons (field-name->environment-variable field-name #:prefix prefix)
value))
(define* (serialize-maybe-string-environment-variable field-name value
#:key prefix
#:allow-other-keys)
(if (maybe-value-set? value)
(serialize-string-environment-variable field-name value #:prefix prefix)
#f))
(define* (serialize-boolean-environment-variable field-name value
#:key prefix
(true-value "true")
(false-value "false")
#:allow-other-keys)
(serialize-string-environment-variable
field-name (if value true-value false-value)
#:prefix prefix))
(define* (serialize-maybe-boolean-environment-variable field-name value
#:key prefix
#:allow-other-keys)
(if (maybe-value-set? value)
(serialize-boolean-environment-variable field-name value #:prefix prefix)
#f))
(define* (serialize-number-environment-variable field-name value
#:key prefix
#:allow-other-keys)
(cons (field-name->environment-variable field-name #:prefix prefix)
(number->string value)))
(define* (serialize-maybe-number-environment-variable field-name value
#:key prefix
#:allow-other-keys)
(if (maybe-value-set? value)
(serialize-number-environment-variable field-name value #:prefix prefix)
#f))
(define (environment-variable-serializer field)
(define type (configuration-field-type field))
(match type
('string serialize-string-environment-variable)
('maybe-string serialize-maybe-string-environment-variable)
('number serialize-number-environment-variable)
('integer serialize-number-environment-variable)
('positive serialize-number-environment-variable)
('maybe-number serialize-maybe-number-environment-variable)
('maybe-integer serialize-maybe-number-environment-variable)
('maybe-positive serialize-maybe-number-environment-variable)
('boolean serialize-boolean-environment-variable)
('maybe-boolean serialize-boolean-environment-variable)
(_
(raise
(formatted-message
(G_ "Unknown environment-variable field type: ~a")
type)))))
(define* (serialize-environment-variables config fields
#:optional selection negate?
#:key prefix
(true-value "true")
(false-value "false"))
"Serializes the fields whose name is included in SELECTION from CONFIG, a
configuration from @code{(gnu services configuration)}, and FIELDS, the
list of its field records, to a list of pairs. When NEGATE? is #t all services
not included in SELECTION will be serialized. Each pair represents an
environment variable. The first element of each pair is the variable name, the
second is the value. When PREFIX is a string it is prepended to the variable
name. TRUE-VALUE and FALSE-VALUE will be used as a representation for
respectfully @code{#t} and @code{#f}."
(define selected-names
(or selection
(map configuration-field-name fields)))
(define filtered
(filter-configuration-fields fields selected-names negate?))
(define getters
(map configuration-field-getter filtered))
(define names
(map configuration-field-name filtered))
(define serializers
(map environment-variable-serializer filtered))
(filter-map (match-lambda ((serializer name getter)
(serializer name (getter config)
#:prefix prefix
#:true-value true-value
#:false-value false-value)))
(zip serializers names getters)))
+58 -1
View File
@@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Pierre-Henry Fröhring <contact@phfrohring.com>
;;; Copyright © 2025 Giacomo Leidi <therewasa@fishinthecalculator.me>
;;; Copyright © 2025 Igorj Gorjaĉev <igor@goryachev.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,7 +29,10 @@
#:use-module (guix build mix-build-system)
#:use-module (guix build-system gnu)
#:use-module (guix build-system)
#:use-module (guix diagnostics)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix i18n)
#:use-module (guix monads)
#:use-module (guix packages)
#:use-module (guix search-paths)
@@ -37,7 +41,12 @@
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:export (mix-build-system hexpm-uri))
#:export (mix-build-system
hexpm-uri
beam-name->package-name
hexpm-source
define-mix-inputs
mix-inputs))
(define (default-elixir-hex)
(@* (gnu packages elixir) elixir-hex))
@@ -64,6 +73,48 @@ See: https://github.com/hexpm/specifications/blob/main/endpoints.md"
strip-prefix)
name))
(define (beam-name->package-name name)
(downstream-package-name "beam-" name))
;; NOTE: Only use this procedure in (gnu packages beam-packages).
(define* (hexpm-source package-name hexpm-name hexpm-version hexpm-hash
#:key (patches '()) (snippet #f))
(origin
(method url-fetch)
(uri (hexpm-uri hexpm-name hexpm-version))
(file-name
(string-append "beam-" package-name "-" hexpm-version ".tar"))
(sha256 (base32 hexpm-hash))
(modules '((guix build utils)))
(patches patches)
(snippet snippet)))
(define-syntax define-mix-inputs
(syntax-rules (=>)
((_ lookup inputs ...)
(define lookup
(let ((table (make-hash-table)))
(letrec-syntax ((record
(syntax-rules (=>)
((_) #t)
((_ (name => lst) rest (... ...))
(begin
(hashq-set! table 'name (filter identity lst))
(record rest (... ...)))))))
(record inputs ...)
(lambda (name)
"Return the inputs for NAME."
(hashq-ref table name))))))))
(define* (mix-inputs name #:key (module '(gnu packages beam-packages)))
"Lookup Mix inputs for NAME defined in MODULE, return an empty list if
unavailable."
(let ((lookup (module-ref (resolve-interface module) 'lookup-mix-inputs)))
(or (lookup name)
(begin
(warning (G_ "no Mix inputs available for '~a'~%") name)
'()))))
;; A number of environment variables specific to the Mix build system are
;; reflected here. They are documented at
;; https://hexdocs.pm/mix/Mix.html#module-environment-variables. Other
@@ -75,6 +126,9 @@ See: https://github.com/hexpm/specifications/blob/main/endpoints.md"
source
(tests? #t)
(test-flags ''())
(vendorize? #f)
(vendor-symlinks? #t)
(vendor-dir "guix-vendor")
(mix-path #f) ;See MIX_PATH.
(mix-exs "mix.exs") ;See MIX_EXS.
(build-per-environment #t) ;See :build_per_environment.
@@ -110,6 +164,9 @@ See: https://github.com/hexpm/specifications/blob/main/endpoints.md"
#:system #$system
#:tests? #$tests?
#:test-flags #$test-flags
#:vendorize? #$vendorize?
#:vendor-symlinks? #$vendor-symlinks?
#:vendor-dir #$vendor-dir
#:mix-path #$mix-path
#:mix-exs #$mix-exs
#:mix-environments '#$mix-environments
+115 -22
View File
@@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2023 Pierre-Henry Fröhring <contact@phfrohring.com>
;;; Copyright © 2024, 2026 Igorj Gorjaĉev <igor@goryachev.org>
;;; Copyright © 2024-2026 Igorj Gorjaĉev <igor@goryachev.org>
;;; Copyright © 2024, 2025 Giacomo Leidi <therewasa@fishinthecalculator.me>
;;;
;;; This file is part of GNU Guix.
@@ -48,7 +48,13 @@
VERSION are installed."
(string-append path "/lib/elixir/" version))
(define* (strip-prefix name #:optional (prefix "elixir-"))
(define %elixir-prefix "elixir-")
(define %beam-prefix "beam-")
(define %vendorize-env-var "GUIX_MIX_VENDOR_DIR")
(define* (strip-prefix name #:optional (prefix %elixir-prefix))
"Return NAME without the prefix PREFIX."
(if (string-prefix? prefix name)
(string-drop name (string-length prefix))
@@ -83,9 +89,73 @@ working directory."
(define (list-directories dir)
"List absolute paths of directories directly under the directory DIR."
(map (cute string-append dir "/" <>)
(scandir dir (lambda (filename)
(and (not (member filename '("." "..")))
(directory-exists? (string-append dir "/" filename)))))))
(scandir
dir (lambda (filename)
(and (not (member filename '("." "..")))
(directory-exists? (string-append dir "/" filename)))))))
(define* (unpack-vendorize #:key vendorize? vendor-dir inputs
#:allow-other-keys)
"Unpack vendored packages."
(define (inputs->beam-inputs inputs)
"Filter using the label part from INPUTS."
(filter-map (lambda (input)
(match input
((name . file)
(and (beam-package? name) file))))
inputs))
(define (beam-input->upstream-name beam-input)
"Convert BEAM-INPUT into upstream package name."
((compose
(cute package-name->elixir-name <> %beam-prefix)
(cute substring <> 33)
basename)
beam-input))
(define (copy-or-unpack-beam-package beam-input dep-dir)
"Copy contents, if BEAM-INPUT is a checkout package, otherwise unpack it."
(or (directory-exists? dep-dir)
(if (file-is-directory? beam-input)
(copy-recursively beam-input dep-dir)
(begin
(mkdir-p dep-dir)
(invoke "sh" "-c"
(string-append "tar -xOf " beam-input
" contents.tar.gz"
" | tar -xz -C " dep-dir))))))
(and
vendorize?
(begin
(mkdir-p vendor-dir)
(setenv %vendorize-env-var (canonicalize-path vendor-dir))
(let ((beam-inputs (delete-duplicates (inputs->beam-inputs inputs))))
(unless (null? beam-inputs)
(for-each
(lambda (beam-input)
(let* ((upstream-name (beam-input->upstream-name beam-input))
(dep-dir (string-append vendor-dir "/" upstream-name)))
(copy-or-unpack-beam-package beam-input dep-dir)))
beam-inputs))))))
(define* (symlink-vendorize #:key vendorize? vendor-symlinks?
#:allow-other-keys)
(and
vendorize?
vendor-symlinks?
(let* ((vendor-dir (getenv %vendorize-env-var))
(deps-dir (list-directories vendor-dir)))
(for-each
(lambda (dep-dir)
(let ((snapshot (string-contains dep-dir "_snapshot")))
(and
snapshot
(let ((canonical
(string-drop-right
dep-dir (- (string-length dep-dir) snapshot))))
(symlink dep-dir canonical)))))
deps-dir))))
(define (beam-package? name)
(string-prefix? %beam-prefix name))
(define* (set-mix-env #:key inputs mix-path mix-exs #:allow-other-keys)
"Set environment variables.
@@ -113,22 +183,32 @@ See: https://hexdocs.pm/mix/1.15.7/Mix.html#module-environment-variables"
(%elixir-version (elixir-version inputs))
(format #t "Elixir version: ~a~%" (%elixir-version)))
(define* (build #:key mix-environments #:allow-other-keys)
(define* (build #:key mix-environments vendorize?
#:allow-other-keys)
"Builds the Mix project."
(for-each (lambda (mix-env)
(setenv "MIX_ENV" mix-env)
(invoke "mix" "compile" "--no-deps-check"
"--no-prune-code-paths"))
(if vendorize?
(invoke "mix" "release")
(invoke "mix" "compile" "--no-prune-code-paths"
"--no-deps-check")))
mix-environments))
(define* (check #:key (tests? #t) (test-flags '()) #:allow-other-keys)
(define* (check #:key (tests? #t) (test-flags '())
vendorize?
#:allow-other-keys)
"Test the Mix project."
(if tests?
(begin
(let ((maybe-no-deps-check-flag
(if vendorize? '() '("--no-deps-check"))))
(setenv "MIX_ENV" "test")
(apply invoke "mix" "do" "compile" "--no-deps-check"
"--no-prune-code-paths" "+" "test"
"--no-deps-check" test-flags))
(apply invoke
(append '("mix" "do" "compile")
maybe-no-deps-check-flag
'("--no-prune-code-paths" "+" "test")
maybe-no-deps-check-flag
test-flags)))
(format #t "tests? = ~a~%" tests?)))
(define* (remove-mix-dirs . _)
@@ -137,7 +217,7 @@ We do not want to copy them to the installation directory."
(for-each delete-file-recursively
(find-files "." (file-name-predicate "\\.mix$") #:directories? #t)))
(define (package-name->elixir-name name+ver)
(define* (package-name->elixir-name name+ver #:optional (prefix %elixir-prefix))
"Convert the Guix package NAME-VER to the corresponding Elixir name-version
format. Example: elixir-a-pkg-1.2.3 -> a_pkg or elixir-a-pkg-0.0.0-0.e51e36e
-> a_pkg"
@@ -146,7 +226,7 @@ format. Example: elixir-a-pkg-1.2.3 -> a_pkg or elixir-a-pkg-0.0.0-0.e51e36e
(cute string-join <> "_")
(cute drop-right <> (if git-version? 2 1))
(cute string-split <> #\-))
(strip-prefix name+ver)))
(strip-prefix name+ver prefix)))
(define* (install #:key
inputs
@@ -155,13 +235,24 @@ format. Example: elixir-a-pkg-1.2.3 -> a_pkg or elixir-a-pkg-0.0.0-0.e51e36e
build-per-environment
#:allow-other-keys)
"Install build artifacts in the store."
(let* ((lib-name (package-name->elixir-name name))
(lib-dir (string-append (elixir-libdir (assoc-ref outputs "out")) "/" lib-name))
(root (getenv "MIX_BUILD_ROOT"))
(env (if build-per-environment "prod" "shared")))
(mkdir-p lib-dir)
(copy-recursively (string-append (mix-build-dir root env) "/" lib-name) lib-dir
#:follow-symlinks? #t)))
(if (beam-package? name)
(let* ((out (assoc-ref outputs "out"))
(excluded '("CHECKSUM" "contents.tar.gz" "environment-variables"
"metadata.config" "VERSION"))
(files
(filter
(lambda (f)
(not (member f (cons* "." ".." excluded))))
(scandir "."))))
(mkdir-p out)
(apply invoke "cp" "-r" (append files (list out))))
(let* ((lib-name (package-name->elixir-name name))
(lib-dir (string-append (elixir-libdir (assoc-ref outputs "out")) "/" lib-name))
(root (getenv "MIX_BUILD_ROOT"))
(env (if build-per-environment "prod" "shared")))
(mkdir-p lib-dir)
(copy-recursively (string-append (mix-build-dir root env) "/" lib-name) lib-dir
#:follow-symlinks? #t))))
(define %standard-phases
(modify-phases gnu:%standard-phases
@@ -170,6 +261,8 @@ format. Example: elixir-a-pkg-1.2.3 -> a_pkg or elixir-a-pkg-0.0.0-0.e51e36e
(add-after 'install-locale 'set-mix-env set-mix-env)
(add-after 'set-mix-env 'set-elixir-version set-elixir-version)
(replace 'unpack unpack)
(add-after 'unpack 'unpack-vendorize unpack-vendorize)
(add-after 'unpack-vendorize 'symlink-vendorize symlink-vendorize)
(replace 'build build)
(replace 'check check)
(add-before 'install 'remove-mix-dirs remove-mix-dirs)
+9 -9
View File
@@ -139,11 +139,11 @@ generation also needs to be wrapped within a `faketime' call in the
(local-sources (font-sources "fonts/source" local-metrics))
((not (null? local-sources))) ;nothing to generate: bail out
(root (getcwd))
;; "texlive-metafont" may be a native input, or included in
;; `texlive-local-tree'. Handle both cases.
(metafont
(search-input-directory (or native-inputs inputs)
"share/texmf-dist/metafont"))
(cond ((assoc-ref (or native-inputs inputs) "texlive-metafont") =>
(cut string-append <> "/share/texmf-dist"))
(else
(error "Missing 'texlive-metafont' native input"))))
;; Collect all font source files from texlive (native-)inputs so
;; "mf" can know where to look for them.
(font-inputs
@@ -151,21 +151,21 @@ generation also needs to be wrapped within a `faketime' call in the
(append-map (match-lambda
((? (negate texlive-input?)) '())
(("texlive-bin" . _) '())
(("texlive-metafont" . _) '())
(("texlive-metafont" . _)
(list (string-append metafont "/metafont/base")))
((_ . input)
(font-sources input #f)))
(or native-inputs inputs)))))
;; Tell mf where to find "mf.base".
(setenv "MFBASES" (in-vicinity metafont "../web2c"))
(setenv "MFBASES" (string-append metafont "/web2c/"))
(mkdir-p "build")
(for-each
(lambda (source)
;; Tell "mf" where are the font source files. In case current package
;; provides multiple sources, treat them separately.
(setenv "MFINPUTS"
(string-join (cons* (string-append root "/" source)
(in-vicinity metafont "base")
font-inputs)
(string-join (cons (string-append root "/" source)
font-inputs)
":"))
;; Build font metrics (tfm).
(with-directory-excursion source
+1 -12
View File
@@ -8,7 +8,6 @@
;;; Copyright © 2022 Taiju HIGASHI <higashi@taiju.info>
;;; Copyright © 2022 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2024 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2026 jgart <jgart@dismail.de>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -34,8 +33,6 @@
#:use-module (guix import json)
#:use-module (guix packages)
#:use-module (guix upstream)
#:use-module (guix diagnostics)
#:use-module (guix i18n)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix base16)
#:use-module (guix base32)
@@ -161,15 +158,7 @@ Optionally include a VERSION string to fetch a specific version gem."
dependencies
licenses)
dependencies-names))
(begin
(if version
(warning
(G_ "version ~a of gem '~a' was not found at '~a'~%")
version package-name repo)
(warning
(G_ "gem '~a' not found at '~a'~%")
package-name repo))
(values #f '())))))
(values #f '()))))
(define (guix-package->gem-name package)
"Given a PACKAGE built from rubygems.org, return the name of the
+33 -26
View File
@@ -177,33 +177,37 @@ as symbols."
(define* (make-hexpm-sexp #:key name version tarball-url
home-page synopsis description license
language build-system dependencies
mix-inputs?
#:allow-other-keys)
"Return the `package' s-expression for a hexpm package with the given NAME,
VERSION, TARBALL-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE. The
created package's name will stem from LANGUAGE. BUILD-SYSTEM defined the
build-system, and DEPENDENCIES the inputs for the package."
(call-with-temporary-output-file
(lambda (temp port)
(and (url-fetch tarball-url temp)
(values
`(package
(name ,(hexpm-name->package-name name language))
(version ,version)
(source (origin
(method url-fetch)
(uri (hexpm-uri ,name version))
(sha256 (base32 ,(guix-hash-url temp)))))
(build-system ,build-system)
,@(maybe-inputs (dependencies->package-names dependencies) 'inputs)
(synopsis ,synopsis)
(description ,(beautify-description description))
(home-page ,(match home-page
(() "")
(_ home-page)))
(license ,(match license
(() #f)
((license) license)
(_ `(list ,@license))))))))))
build-system, and DEPENDENCIES or MIX-INPUTS? the inputs for the package."
(let ((package-name (hexpm-name->package-name name language)))
(call-with-temporary-output-file
(lambda (temp port)
(and (url-fetch tarball-url temp)
(values
`(package
(name ,package-name)
(version ,version)
(source (origin
(method url-fetch)
(uri (hexpm-uri ,name version))
(sha256 (base32 ,(guix-hash-url temp)))))
(build-system ,build-system)
,@(if mix-inputs?
`((inputs (mix-inputs ',(string->symbol package-name))))
(maybe-inputs (dependencies->package-names dependencies) 'inputs))
(synopsis ,synopsis)
(description ,(beautify-description description))
(home-page ,(match home-page
(() "")
(_ home-page)))
(license ,(match license
(() #f)
((license) license)
(_ `(list ,@license)))))))))))
(define (strings->licenses strings)
"Convert the list of STRINGS into a list of license objects."
@@ -221,11 +225,13 @@ object, ordered from newest to oldest."
(sort (map hexpm-version-number (hexpm-versions package))
version>?))
(define* (hexpm->guix-package package-name #:key version #:allow-other-keys)
"Fetch the metadata for PACKAGE-NAME from hexpms.io, and return the
(define* (hexpm->guix-package package-name #:key version
mix-inputs? #:allow-other-keys)
"Fetch the metadata for PACKAGE-NAME from hex.pm, and return the
`package' s-expression corresponding to that package, or #f on failure.
When VERSION is specified, attempt to fetch that version; otherwise fetch the
latest version of PACKAGE-NAME."
latest version of PACKAGE-NAME. It can use `inputs` with `mix-inputs` when
MIX-INPUTS? is specified."
(define package
(lookup-hexpm package-name))
@@ -277,6 +283,7 @@ latest version of PACKAGE-NAME."
#:name package-name
#:version version-number
#:dependencies dependencies
#:mix-inputs? mix-inputs?
#:home-page (or (and (not (eq? docs-html-url 'null))
docs-html-url)
;; TODO: Homepage?
+143
View File
@@ -0,0 +1,143 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2025 Igorj Gorjaĉev <igor@goryachev.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix import mix)
#:use-module (guix import mix mix-lock)
#:use-module (guix base16)
#:use-module (guix base32)
#:use-module (guix read-print)
#:use-module (guix scripts download)
#:autoload (guix utils) (find-definition-location)
#:use-module (ice-9 match)
#:use-module (ice-9 textual-ports)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-71)
#:use-module (guix build-system mix)
#:export (mix-lock->expressions
mix-inputs-from-lockfile
find-mix-inputs-location
extract-mix-inputs))
;;;
;;; Convert mix.lock to Guix sources.
;;;
(define (mix-lock->expressions lockfile package-name)
"Given LOCKFILE, a 'mix.lock' file, import its content as source
expressions. Return a source list and a mix inputs entry for PACKAGE-NAME
referencing all imported sources."
(define (mix-lock-entry->guix-source mix-lock-entry)
(match mix-lock-entry
(('mix-lock-entry
('entry-name entry-name)
('entry-hexpm
('hexpm-name hexpm-name)
('hexpm-version hexpm-version)
_
('hexpm-checksum hexpm-checksum)))
`(define
,(string->symbol
(string-append
(beam-name->package-name entry-name) "-" hexpm-version))
(hexpm-source ,entry-name ,hexpm-name ,hexpm-version
,(bytevector->nix-base32-string
(base16-string->bytevector hexpm-checksum)))))
;; Git snapshot.
(('mix-lock-entry
('entry-name entry-name)
('entry-git
('git-url git-url)
('git-commit git-commit)))
(begin
(let* ((version (string-append "snapshot." (string-take git-commit 7)))
(checksum
(second
(string-split
(with-output-to-string
(lambda _
(guix-download "-g" git-url
(string-append "--commit=" git-commit))))
#\newline))))
`(define
,(string->symbol
(string-append
(beam-name->package-name entry-name) "-" version))
(origin
(method git-fetch)
(uri (git-reference
(url ,git-url)
(commit ,git-commit)))
(file-name
(git-file-name
,(beam-name->package-name entry-name) ,version))
(sha256 (base32 ,checksum)))))))
(else #f)))
(let* ((source-expressions
(filter-map mix-lock-entry->guix-source
(mix-lock-string->scm
(call-with-input-file lockfile get-string-all))))
(beam-inputs-entry
`(,(string->symbol package-name) =>
(list ,@(map second source-expressions)))))
(values source-expressions beam-inputs-entry)))
(define* (mix-inputs-from-lockfile #:optional (lockfile "mix.lock"))
"Given LOCKFILE (default to \"mix.lock\" in current directory), return a
source list imported from it, to be used as package inputs. This procedure
can be used for adding a manifest file within the source tree of a BEAM
application."
(let ((source-expressions
mix-inputs-entry
(mix-lock->expressions lockfile "mix-inputs-temporary")))
(eval-string
(call-with-output-string
(lambda (port)
(for-each
(cut pretty-print-with-comments port <>)
`((use-modules (guix build-system mix))
,@source-expressions
(define-mix-inputs lookup-mix-inputs ,mix-inputs-entry)
(lookup-mix-inputs 'mix-inputs-temporary))))))))
(define (find-mix-inputs-location file)
"Search in FILE for a top-level definition of mix inputs. Return the
location if found, or #f otherwise."
(find-definition-location file 'lookup-mix-inputs
#:define-prefix 'define-mix-inputs))
(define* (extract-mix-inputs file #:key exclude)
"Search in FILE for a top-level definition of mix inputs. If found,
return its entries excluding EXCLUDE, or an empty list otherwise."
(call-with-input-file file
(lambda (port)
(do ((syntax (read-syntax port)
(read-syntax port)))
((match (syntax->datum syntax)
(('define-mix-inputs 'lookup-mix-inputs _ ...) #t)
((? eof-object?) #t)
(_ #f))
(or (and (not (eof-object? syntax))
(match (syntax->datum syntax)
(('define-mix-inputs 'lookup-mix-inputs inputs ...)
(remove (lambda (mix-input-entry)
(eq? exclude (first mix-input-entry)))
inputs))))
'()))))))
+201
View File
@@ -0,0 +1,201 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2025 Igorj Gorjaĉev <igor@goryachev.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix import mix mix-lock)
#:use-module (ice-9 peg)
#:export (mix-lock-string->scm
entry-git
entry-hexpm
entry-name
git-commit
git-url
hexpm-build-system
hexpm-build-systems
hexpm-name
hexpm-version
mix-lock
mix-lock-entry))
;;;
;;; PEG parser for mix.lock.
;;;
(define (mix-lock-string->scm str)
(peg:tree (search-for-pattern mix-lock str)))
;; Auxiliar peg patterns
(define-peg-pattern numeric-char body
(range #\0 #\9))
(define-peg-pattern lowercase-char body
(range #\a #\z))
(define-peg-pattern uppercase-char body
(range #\A #\Z))
(define-peg-pattern alphabetic-char body
(or lowercase-char uppercase-char))
(define-peg-pattern alphanumeric-char body
(or alphabetic-char numeric-char))
(define-peg-pattern space-char body
(+ (or " " "\t" "\n" "\r")))
(define-peg-pattern opt-space-char body
(* space-char))
;; string: "string"
(define-peg-pattern string-char body
(or alphanumeric-char
space-char
"_" "." "~" "=" "<" ">" "/" ":" "-"))
(define-peg-pattern string body
(and (ignore "\"")
(* string-char)
(ignore "\"")))
;; atom: :hex or true | false | nil
(define-peg-pattern atom-char body
(or alphanumeric-char "_" "@" "?" "!"))
(define-peg-pattern atom body
(or
(and (ignore ":")
(+ atom-char))
"true" "false" "nil"))
;; list: [ ... ]
(define-peg-pattern list body
(and (ignore "[")
(* (and
(ignore (? ", "))
(or value key-value)))
(ignore "]")))
;; tuple: { ... }
(define-peg-pattern tuple body
(and (ignore "{")
(* (and
(ignore (? ", "))
value))
(ignore "}")
(ignore (? "\n"))))
;; syntactic sugar for [{key, value} ...]
(define-peg-pattern key-value body
(ignore
(and (+ atom-char) ": " value)))
;; value may be string, atom, tuple, list
(define-peg-pattern value body
(and (ignore opt-space-char)
(or string atom tuple list)
(ignore opt-space-char)))
;; ignore several constructions
(define-peg-pattern ignore-string body
(ignore
(and "\""
(* (or string-char
space-char))
"\"")))
(define-peg-pattern ignore-comma-space body
(ignore ", "))
(define-peg-pattern ignore-list body
(ignore (and "["
(* (and
(? ", ")
(or value key-value)))
"]")))
;; exported symbols
(define-peg-pattern entry-name all
string)
(define-peg-pattern hexpm-name all
atom)
(define-peg-pattern hexpm-version all
string)
(define-peg-pattern hexpm-checksum all
string)
(define-peg-pattern hexpm-build-system all
(capture (+ (or alphanumeric-char "_" "-"))))
(define-peg-pattern hexpm-build-systems all
(and (ignore "[")
(capture
(* (and (ignore ":")
(capture hexpm-build-system)
(ignore (? ", ")))))
(ignore "]")))
(define-peg-pattern git-url all
string)
(define-peg-pattern git-commit all
string)
(define-peg-pattern entry-hexpm all
(and
(ignore ": {:hex, ")
hexpm-name
ignore-comma-space
(capture hexpm-version)
ignore-comma-space
ignore-string
ignore-comma-space
(capture hexpm-build-systems)
ignore-comma-space
ignore-list
ignore-comma-space
ignore-string
ignore-comma-space
(capture hexpm-checksum)
(ignore "}")))
(define-peg-pattern entry-git all
(and
(ignore ": {:git, ")
git-url
ignore-comma-space
git-commit
ignore-comma-space
ignore-list
(ignore "}")))
(define-peg-pattern mix-lock-entry all
(and (ignore (? " "))
(capture entry-name)
(or
entry-hexpm
entry-git)
(ignore (? ",\n"))))
;; mix.lock
(define-peg-pattern mix-lock all
(and (ignore "%{\n")
(* mix-lock-entry)
(ignore "}")))
+60 -78
View File
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021, 2024 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2024, 2026 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -283,7 +283,6 @@ calls."
(match-lambda
("artistic2" 'artistic2.0)
("apache2" 'asl2.0)
("agpl3" 'agpl3+) ;usually means "or later"
("gpl" 'gpl3+)
("gpl1" 'gpl1)
("gpl1+" 'gpl1+)
@@ -295,7 +294,6 @@ calls."
("lgpl3" 'lgpl3)
("knuth" 'knuth)
("pd" 'public-domain)
("0bsd" 'bsd-0)
("bsd2" 'bsd-2)
("bsd3" 'bsd-3)
("bsd4" 'bsd-4)
@@ -620,68 +618,54 @@ of package with UPSTREAM-NAME in VERSION."
(delete-duplicates (sort (map trim-filename specific) string<)
string-prefix?))))
(define (texlive->svn-reference upstream-name version database)
"Return a <svn-reference> or <svn-multi-reference> object for TeX Live
package with UPSTREAM-NAME at VERSION."
(let ((revision (assoc-ref database 'database-revision)))
;; TEXLIVE-SOURCE is the only package using a regular SVN reference.
(if (string= upstream-name "source")
(svn-reference
(url (string-append %texlive-repository
"tags/texlive-" version "/Build/source"))
(revision revision))
(let* ((data (assoc-ref database upstream-name))
(files (append (or (assoc-ref data 'docfiles) (list))
(or (assoc-ref data 'runfiles) (list))
(or (assoc-ref data 'srcfiles) (list))))
(locations
;; Drop "texmf-dist/" prefix from files. Special case
;; TEXLIVE-SCRIPTS, where files are not all coming from
;; "texmf-dist/".
(if (string= upstream-name "scripts")
files
(files->locations
;; Ignore any file not starting with the expected prefix,
;; such as tlpkg/tlpostcode/... Nothing good can come
;; from this.
(filter-map
(lambda (file)
(and (string-prefix? "texmf-dist/" file)
(string-drop file (string-length "texmf-dist/"))))
files)))))
(svn-multi-reference
(url (match upstream-name
("scripts"
(string-append
%texlive-repository "tags/texlive-" version "/Master"))
("source"
(string-append %texlive-repository
"tags/texlive-" version "/Build/source"))
(_
(texlive-packages-repository version))))
(locations (sort locations string<))
(revision revision))))))
(define (texlive->svn-multi-reference upstream-name version database)
"Return <svn-multi-reference> object for TeX Live package with UPSTREAM-NAME
at VERSION."
(let* ((data (assoc-ref database upstream-name))
(files (append (or (assoc-ref data 'docfiles) (list))
(or (assoc-ref data 'runfiles) (list))
(or (assoc-ref data 'srcfiles) (list))))
(locations
;; Drop "texmf-dist/" prefix from files. Special case
;; TEXLIVE-SCRIPTS and TEXLIVE-SOURCE, where files are not always
;; exported from "texmf-dist/".
(if (member upstream-name '("scripts" "source"))
files
(files->locations
;; Ignore any file not starting with the expected prefix, such
;; as tlpkg/tlpostcode/... Nothing good can come from this.
(filter-map
(lambda (file)
(and (string-prefix? "texmf-dist/" file)
(string-drop file (string-length "texmf-dist/"))))
files)))))
(svn-multi-reference
(url (match upstream-name
("scripts"
(string-append
%texlive-repository "tags/texlive-" version "/Master"))
("source"
(string-append %texlive-repository
"tags/texlive-" version "/Build/source"))
(_
(texlive-packages-repository version))))
(locations (sort locations string<))
(revision (assoc-ref database 'database-revision)))))
(define (tlpdb->package upstream-name version database)
(and-let* ((data (assoc-ref database upstream-name))
(name (downstream-package-name "texlive-" upstream-name))
(reference
(texlive->svn-reference upstream-name version database))
(texlive->svn-multi-reference upstream-name version database))
(source (with-store store
((if (string= upstream-name "source")
download-svn-to-store
download-multi-svn-to-store)
(download-multi-svn-to-store
store reference
(format #f "~a-~a-svn-checkout" name version)))))
(let* ((revision (assoc-ref database 'database-revision))
(scripts (list-linked-scripts upstream-name database))
(format #f "~a-~a-svn-multi-checkout" name version)))))
(let* ((scripts (list-linked-scripts upstream-name database))
(upstream-inputs
(list-upstream-inputs upstream-name version database))
(tex-formats (list-formats data))
(texlive-source? (string= upstream-name "source"))
(meta-package?
(and (not texlive-source?)
(null? (svn-multi-reference-locations reference))))
(meta-package? (null? (svn-multi-reference-locations reference)))
(empty-package? (and meta-package? (not (pair? tex-formats)))))
(values
`(package
@@ -693,25 +677,22 @@ package with UPSTREAM-NAME at VERSION."
,(and (not meta-package?)
`(origin
(method svn-multi-fetch)
(uri ,(if texlive-source?
`(svn-reference
(url (string-append
%texlive-repository
"tags/texlive-" version "/Build/source"))
(revision ,revision))
`(svn-multi-reference
(url
,(match upstream-name
("scripts"
'(string-append
%texlive-repository
"tags/texlive-" version "/Master"))
(_
'(texlive-packages-repository version))))
(revision ,revision)
(locations
(list ,@(svn-multi-reference-locations
reference))))))
(uri (svn-multi-reference
(url
,(match upstream-name
("scripts"
'(string-append
%texlive-repository "tags/texlive-" version
"/Master"))
("source"
'(string-append
%texlive-repository "tags/texlive-" version
"/Build/source"))
(_
'(texlive-packages-repository version))))
(revision ,(svn-multi-reference-revision reference))
(locations
(list ,@(svn-multi-reference-locations reference)))))
(file-name (git-file-name name version))
(sha256
(base32
@@ -731,7 +712,7 @@ package with UPSTREAM-NAME at VERSION."
;;
;; Use trivial build system only when the package contains no files,
;; and no TeX format file is expected to be built.
(build-system ,(if (or empty-package? texlive-source?)
(build-system ,(if empty-package?
'trivial-build-system
'texlive-build-system))
;; Arguments.
@@ -774,7 +755,7 @@ package with UPSTREAM-NAME at VERSION."
(description ,(and=> (assoc-ref data 'longdesc) beautify-description))
(license
,(cond
((or meta-package? texlive-source?)
(meta-package?
'(fsf-free "https://www.tug.org/texlive/copying.html"))
((assoc-ref data 'catalogue-license) => string->license)
(else #f))))
@@ -806,7 +787,8 @@ VERSION."
(define (package-from-texlive-repository? package)
(let ((name (package-name package)))
;; TEXLIVE-SCRIPTS and TEXLIVE-SOURCE do not use TEXLIVE-BUILD-SYSTEM, but
;; their structure is sufficiently regular to benefit from this updater.
;; package's structure is sufficiently regular to benefit from
;; auto-updates.
(or (member name '("texlive-scripts" "texlive-source"))
(and (string-prefix? "texlive-" (package-name package))
(eq? 'texlive
@@ -823,7 +805,7 @@ prefix when PARTIAL-VERSION? is #t."
(upstream-source
(package upstream-name)
(version version)
(urls (texlive->svn-reference upstream-name version database))
(urls (texlive->svn-multi-reference upstream-name version database))
(inputs (list-upstream-inputs upstream-name version database))))))
(define %texlive-updater
+5 -12
View File
@@ -1944,20 +1944,13 @@ MANIFEST."
;; but we have two: the one in /tmp containing all packages and
;; the one in #$output containing the generated font maps. To
;; avoid having to merge ls-R files, we copy the generated stuff
;; to /tmp.
;;
;; The ls-R database is generated with a low level call to "ls"
;; command because "mktexlsr" doesnt preserve alphabetic order,
;; probably due to symlinks. See also "texlive-local-tree"
;; function from "tex.scm".
;; to /tmp and run mktexlsr only once.
(let ((a (string-append #$output "/share/texmf-dist"))
(b "/tmp/texlive/share/texmf-dist"))
(b "/tmp/texlive/share/texmf-dist")
(mktexlsr #$(file-append texlive-scripts "/bin/mktexlsr")))
(copy-recursively a b)
(with-directory-excursion b
(with-output-to-file "ls-R"
(lambda ()
(invoke "ls" "-1LAR" "./")))
(install-file "ls-R" a)))))))
(invoke mktexlsr b)
(install-file (string-append b "/ls-R") a))))))
(with-monad %store-monad
;; `texlive-scripts' brings essential files to generate font maps.
;; Therefore, it must be present in the profile. This check prevents
+11 -9
View File
@@ -7,6 +7,7 @@
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2022 Philip McGrath <philip@philipmcgrath.com>
;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
;;; Copyright © 2025 Igorj Gorjaĉev <igor@goryachev.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -63,6 +64,7 @@
(define importers '("composer" "cpan" "cran" "crate" "egg" "elm" "elpa"
"gem" "gnu" "go" "hackage" "hexpm" "json" "luanti"
"minetest" ; deprecated
"mix"
"npm-binary" "nuget" "opam" "pypi" "stackage" "texlive"))
(define (resolve-importer name)
@@ -143,10 +145,10 @@ PROC callback."
((or ("-i" file importer args ...)
("--insert" file importer args ...))
(let* ((define-prefixes
`(,@(if (member importer '("crate"))
'(define)
'())
define-public))
`(,@(if (member importer '("crate" "mix"))
'(define)
'())
define-public))
(define-prefix? (cut member <> define-prefixes))
(find-and-insert
(lambda (expr)
@@ -172,9 +174,9 @@ PROC callback."
((importer args ...)
(let ((print (lambda (expr)
(leave-on-EPIPE
(pretty-print-with-comments
(current-output-port) expr)
;; Two newlines: one after the closing paren, and
;; one to leave a blank line.
(newline) (newline)))))
(pretty-print-with-comments
(current-output-port) expr)
;; Two newlines: one after the closing paren, and
;; one to leave a blank line.
(newline) (newline)))))
(import-as-definitions importer args print)))))
+8 -1
View File
@@ -47,6 +47,8 @@ Import and convert the hex.pm package for PACKAGE-NAME.\n"))
(newline)
(display (G_ "
-r, --recursive import packages recursively"))
(display (G_ "
-m, --mix-inputs use mix-inputs for input field"))
(newline)
(show-bug-report-information))
@@ -62,6 +64,9 @@ Import and convert the hex.pm package for PACKAGE-NAME.\n"))
(option '(#\r "recursive") #f #f
(lambda (opt name arg result)
(alist-cons 'recursive #t result)))
(option '("mix-inputs") #f #f
(lambda (opt name arg result)
(alist-cons 'mix-inputs #t result)))
%standard-import-options))
@@ -94,7 +99,9 @@ Import and convert the hex.pm package for PACKAGE-NAME.\n"))
(_ #f))
(hexpm-recursive-import name version))
;; Single import
(let ((sexp (hexpm->guix-package name #:version version)))
(let* ((mix-inputs (assoc-ref opts 'mix-inputs))
(sexp (hexpm->guix-package name #:version version
#:mix-inputs? mix-inputs)))
(unless sexp
(leave (G_ "failed to download meta-data for package '~a'~%")
spec))
+122
View File
@@ -0,0 +1,122 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2025 Igorj Gorjaĉev <igor@goryachev.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (guix scripts import mix)
#:use-module (guix ui)
#:use-module (guix utils)
#:use-module (guix read-print)
#:use-module (guix scripts)
#:use-module (guix import mix)
#:use-module (guix scripts import)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-37)
#:use-module (srfi srfi-71)
#:use-module (ice-9 match)
#:export (guix-import-mix))
;;;
;;; Command-line options.
;;;
(define %default-options
'())
(define (show-help)
(display (G_ "Usage: guix import mix PACKAGE-NAME
Import package dependencies from its 'mix.lock'.\n"))
(display (G_ "
-h, --help display this help and exit"))
(display (G_ "
-V, --version display version information and exit"))
(newline)
(display (G_ "
-f, --lockfile=FILE import dependencies from FILE, a 'mix.lock' file"))
(newline)
(show-bug-report-information))
(define %options
;; Specification of the command-line options.
(cons* (option '(#\h "help") #f #f
(lambda args
(show-help)
(exit 0)))
(option '(#\V "version") #f #f
(lambda args
(show-version-and-exit "guix import mix")))
(option '(#\f "lockfile") #f #t
(lambda (opt name arg result)
(if (file-exists? arg)
(alist-cons 'lockfile arg result)
(leave (G_ "file '~a' does not exist~%") arg))))
%standard-import-options))
;;;
;;; Entry point.
;;;
(define (guix-import-mix . args)
(define (parse-options)
;; Return the alist of option values.
(parse-command-line args %options (list %default-options)
#:build-options? #f))
(let* ((opts (parse-options))
(lockfile (assoc-ref opts 'lockfile))
(file-to-insert (assoc-ref opts 'file-to-insert))
(args (filter-map (match-lambda
(('argument . value)
value)
(_ #f))
(reverse opts))))
(match args
((spec)
(define-values (name version)
(package-name->name+version spec))
(if lockfile
(let ((source-expressions
_
(mix-lock->expressions lockfile name)))
(when file-to-insert
(let* ((source-expressions
mix-inputs-entry
(mix-lock->expressions lockfile name))
(term (first mix-inputs-entry))
(mix-inputs
`(define-mix-inputs lookup-mix-inputs
,@(sort
(cons mix-inputs-entry
(extract-mix-inputs
file-to-insert #:exclude term))
(lambda (a b)
(string< (symbol->string (first a))
(symbol->string (first b)))))))
(_
(and=> (find-mix-inputs-location file-to-insert)
delete-expression))
(port (open-file file-to-insert "a")))
(pretty-print-with-comments port mix-inputs)
(newline port)
(close-port port)))
source-expressions)))
(()
(leave (G_ "too few arguments~%")))
((many ...)
(leave (G_ "too many arguments~%"))))))
+6 -13
View File
@@ -11,7 +11,7 @@
;;; Copyright © 2023 Graham James Addis <graham@addis.org.uk>
;;; Copyright © 2023 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2024 Sebastian Dümcke <code@sam-d.com>
;;; Copyright © 2024-2025 Noé Lopez <noelopez@free.fr>
;;; Copyright © 2024 Noé Lopez <noelopez@free.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -81,9 +81,7 @@
self-contained-appimage
%formats
guix-pack
wrapped-manifest))
guix-pack))
;;; Commentary:
@@ -1001,7 +999,7 @@ added to the pack."
(warning (G_ "AppImages should be built with the --relocatable flag~%"))))
(define runtime-package appimage-type2-runtime)
(define runtime-path "bin/runtime")
(define runtime-path "bin/runtime-fuse3")
(define %valid-compressors '("gzip" "zstd"))
(let ((compressor-name (compressor-name compressor)))
@@ -1399,13 +1397,6 @@ libfakechroot.so and related ld.so machinery as a fallback."
(apply wrapped-manifest-entry entry args))
(manifest-entry-dependencies entry)))))
(define* (wrapped-manifest manifest #:rest args)
"Return the MANIFEST with its entries wrapped such that they are
relocatable. Extra arguments are passed to wrapped-package."
(map-manifest-entries
(lambda (entry) (apply wrapped-manifest-entry entry args))
manifest))
;;;
;;; Command-line options.
@@ -1804,7 +1795,9 @@ Create a bundle of PACKAGE.\n"))
;; Note: We cannot honor '--bootstrap' here because
;; 'glibc-bootstrap' lacks 'libc.a'.
(if relocatable?
(wrapped-manifest manifest #:proot? proot?)
(map-manifest-entries
(cut wrapped-manifest-entry <> #:proot? proot?)
manifest)
manifest)))
(pack-format (assoc-ref opts 'format))
(extra-options (match pack-format
-15
View File
@@ -495,14 +495,6 @@ SOURCE, an <upstream-source>."
#:recursive? (git-reference-recursive? ref))
source))
(define* (package-update/svn-fetch store package source
#:key key-download key-server)
"Return the version, checkout, and SOURCE, to update PACKAGE to
SOURCE, an <upstream-source>."
(values (upstream-source-version source)
(download-svn-to-store store (upstream-source-urls source))
source))
(define* (package-update/svn-multi-fetch store package source
#:key key-download key-server)
"Return the version, checkout, and SOURCE, to update PACKAGE to
@@ -515,7 +507,6 @@ SOURCE, an <upstream-source>."
;; Mapping of origin methods to source update procedures.
`((,url-fetch . ,package-update/url-fetch)
(,git-fetch . ,package-update/git-fetch)
(,svn-fetch . ,package-update/svn-fetch)
(,svn-multi-fetch . ,package-update/svn-multi-fetch)))
(define* (package-update store package
@@ -731,8 +722,6 @@ new version string if an update was made, and #f otherwise."
(old-commit (match (origin-uri (package-source package))
((? git-reference? ref)
(git-reference-commit ref))
((? svn-reference? ref)
(svn-reference-revision ref))
((? svn-multi-reference? ref)
(svn-multi-reference-revision ref))
(_ #f)))
@@ -744,16 +733,12 @@ new version string if an update was made, and #f otherwise."
((first _ ...) first)
((? git-reference? ref)
(git-reference-url ref))
((? svn-reference? ref)
(svn-reference-url ref))
((? svn-multi-reference? ref)
(svn-multi-reference-url ref))
(_ #f)))
(new-commit (match (upstream-source-urls source)
((? git-reference? ref)
(git-reference-commit ref))
((? svn-reference? ref)
(svn-reference-revision ref))
((? svn-multi-reference? ref)
(svn-multi-reference-revision ref))
(_ #f)))
-1
View File
@@ -78,7 +78,6 @@ gnu/packages/connman.scm
gnu/packages/containers.scm
gnu/packages/convmv.scm
gnu/packages/coq.scm
gnu/packages/coreboot.scm
gnu/packages/cpio.scm
gnu/packages/cpp.scm
gnu/packages/cppi.scm
+44
View File
@@ -250,4 +250,48 @@
(x
(pk 'fail x #f))))))
(test-assert "hexpm-with-mix-inputs"
;; Replace network resources with sample data.
(mock ((guix http-client) http-fetch
(lambda (url . rest)
(match url
("https://hex.pm/api/packages/bla"
(values (open-input-string test-bla-package)
(string-length test-bla-package)))
("https://hex.pm/api/packages/bla/releases/1.5.0"
(values (open-input-string test-bla-release)
(string-length test-bla-release)))
(_ (error "http-fetch got unexpected URL: " url)))))
(mock ((guix build download) url-fetch
(lambda* (url file-name
#:key
(mirrors '()) verify-certificate?)
(with-output-to-file file-name
(lambda ()
(display
(match url
("https://repo.hex.pm/tarballs/bla-1.5.0.tar"
"source")
(_ (error "url-fetch got unexpected URL: " url))))))))
(match (hexpm->guix-package "bla" #:mix-inputs? #t)
(`(package
(name "erlang-bla")
(version "1.5.0")
(source
(origin
(method url-fetch)
(uri (hexpm-uri "bla" version))
(sha256
(base32
"0zcl4dgcmqwl1g5xb901pd6dz61r1xgmac9mqlwvh022paa6gks1"))))
(build-system rebar-build-system)
(inputs (mix-inputs 'erlang-bla))
(synopsis "A cool package")
(description "This package provides a cool package.")
(home-page "https://hex.pm/packages/bla")
(license (list license:expat license:asl2.0)))
#t)
(x
(pk 'fail x #f))))))
(test-end "hexpm")
+97
View File
@@ -0,0 +1,97 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2025 Igorj Gorjaĉev <igor@goryachev.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (test-mix)
#:use-module (guix import mix)
#:use-module (guix base32)
#:use-module (guix build-system mix)
#:use-module (gcrypt hash)
#:use-module (guix tests)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-64)
#:use-module (ice-9 binary-ports)
#:use-module (ice-9 match))
(define test-mix-lock-file
"\
%{
\"gen_stage\": {:hex, :gen_stage, \"1.3.2\", \
\"7c77e5d1e97de2c6c2f78f306f463bca64bf2f4c3cdd606affc0100b89743b7b\", \
[:mix], [], \"hexpm\", \
\"0ffae547fa777b3ed889a6b9e1e64566217413d018cabd825f786e843ffe63e7\"},
\"eini\": {:hex, :eini_beam, \"2.2.4\", \
\"02143b1dce4dda4243248e7d9b3d8274b8d9f5a666445e3d868e2cce79e4ff22\", \
[:rebar3], [], \"hexpm\", \
\"12de479d144b19e09bb92ba202a7ea716739929afdf9dff01ad802e2b1508471\"},
\"erlydtl\": {:git, \"https://github.com/manuel-rubio/erlydtl.git\", \
\"dffa1a73ee2bfba14195b8b3964c39f007ff1284\", []},
}")
(define temp-file
(string-append "t-mix-" (number->string (getpid))))
(test-begin "mix")
(test-assert "mix-lock-file-import"
(begin
(call-with-output-file temp-file
(lambda (port)
(display test-mix-lock-file port)))
(mock
((guix scripts download) guix-download
(lambda _
(format #t "~a~%~a~%"
"/gnu/store/m43vixiijc26ni5p9zvbvjrs311h4fsm-erlydtl-dffa1a7"
"1jhcfh0idadlh9999kjzx1riqjw0k05wm6ii08xkjvirhjg0vawh")))
(let-values
(((source-expressions beam-inputs-entry)
(mix-lock->expressions temp-file "test")))
(and
(match source-expressions
('((define beam-gen-stage-1.3.2
(hexpm-source
"gen_stage" "gen_stage" "1.3.2"
"1rv3zqzq8vkqby1bvjhqs09p88b68pkf3fd6i7c3wyvpz93ybyhg"))
(define beam-eini-2.2.4
(hexpm-source
"eini" "eini_beam" "2.2.4"
"0wc4a2qy40nq3bqdzygxka93jrvixakh58ibp6dy06ab2jflgphj"))
(define beam-erlydtl-snapshot.dffa1a7
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/manuel-rubio/erlydtl.git")
(commit "dffa1a73ee2bfba14195b8b3964c39f007ff1284")))
(file-name (git-file-name "beam-erlydtl" "snapshot.dffa1a7"))
(sha256
(base32
"1jhcfh0idadlh9999kjzx1riqjw0k05wm6ii08xkjvirhjg0vawh")))))
#t)
(x
(pk 'fail (pretty-print-with-comments (current-output-port) x) #f)))
(match beam-inputs-entry
(`(test => (list beam-gen-stage-1.3.2
beam-eini-2.2.4
beam-erlydtl-snapshot.dffa1a7))
#t)
(x
(pk 'fail x #f))))))))
(test-end "mix")
(false-if-exception (delete-file temp-file))
+11 -15
View File
@@ -3,7 +3,7 @@
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2021, 2023, 2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2023 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2024-2025 Noé Lopez <noelopez@free.fr>
;;; Copyright © 2024 Noé Lopez <noelopez@free.fr>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -337,13 +337,11 @@
(mlet* %store-monad
((guile (set-guile-for-build (default-guile)))
(profile -> (profile
;; When using '--appimage-extract-and-run', the dynamic
;; linker is necessary, hence glibc below.
(content (wrapped-manifest
(packages->manifest (list hello glibc))))
(relative-symlinks? #t)
(hooks '())
(locales? #f)))
;; When using '--appimage-extract-and-run', the dynamic
;; linker is necessary, hence glibc below.
(content (packages->manifest (list hello glibc)))
(hooks '())
(locales? #f)))
(image (self-contained-appimage "hello-appimage" profile
#:entry-point "bin/hello"
#:extra-options
@@ -371,13 +369,11 @@
(mlet* %store-monad
((guile (set-guile-for-build (default-guile)))
(profile -> (profile
;; When using '--appimage-extract-and-run', the dynamic
;; linker is necessary, hence glibc below.
(content (wrapped-manifest
(packages->manifest (list guile-3.0 glibc))))
(relative-symlinks? #t)
(hooks '())
(locales? #f)))
;; When using '--appimage-extract-and-run', the dynamic
;; linker is necessary, hence glibc below.
(content (packages->manifest (list guile-3.0 glibc)))
(hooks '())
(locales? #f)))
(image (self-contained-appimage "guile-appimage" profile
#:entry-point "bin/guile"
#:localstatedir? #t
+2 -127
View File
@@ -3,7 +3,6 @@
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
;;; Copyright © 2026 Giacomo Leidi <therewasa@fishinthecalculator.me>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -22,7 +21,6 @@
(define-module (tests services configuration)
#:use-module (gnu services configuration)
#:use-module (gnu services configuration environment-variables)
#:use-module (guix diagnostics)
#:use-module (guix gexp)
#:autoload (guix i18n) (G_)
@@ -50,14 +48,14 @@
(port-configuration-port (port-configuration)))
(test-equal "wrong type for a field"
'("configuration.scm" 61 11) ;error location
'("configuration.scm" 59 11) ;error location
(guard (c ((configuration-error? c)
(let ((loc (error-location c)))
(list (basename (location-file loc))
(location-line loc)
(location-column loc)))))
(port-configuration
;; This is line 60; the test relies on line/column numbers!
;; This is line 58; the test relies on line/column numbers!
(port "This is not a number!"))))
(define-configuration port-configuration-cs
@@ -365,126 +363,3 @@
(config-with-maybe-string/no-serialization-name
(config-with-maybe-string/no-serialization
(name "foo")))))
;;;
;;; environment-variables serializer
;;;
(define-configuration/no-serialization env-config
(port (number 80) "")
(count maybe-number "")
(name string "")
(url maybe-string "")
(active? (boolean #f) ""))
(test-group "environment variables serializer"
(test-equal "basic serialization"
'(("PORT" . "70")
("COUNT" . "80")
("NAME" . "Hello World")
("URL" . "https://example.org")
("ACTIVE" . "true"))
(serialize-environment-variables
(env-config
(port 70)
(name "Hello World")
(url "https://example.org")
(active? #t)
(count 80))
env-config-fields))
(test-equal "field selection"
'(("PORT" . "80"))
(serialize-environment-variables
(env-config
(name "Hello World"))
env-config-fields
'(port)))
(test-equal "field negative selection"
'(("NAME" . "Hello World")
("ACTIVE" . "false"))
(serialize-environment-variables
(env-config
(name "Hello World"))
env-config-fields
'(port)
#t))
(test-equal "variable prefixes"
'(("TEST_PORT" . "80")
("TEST_NAME" . "Hello World")
("TEST_ACTIVE" . "false"))
(serialize-environment-variables
(env-config
(name "Hello World"))
env-config-fields
#:prefix "TEST_"))
(test-equal "boolean serialization"
'(("PORT" . "80")
("NAME" . "Hello World")
("ACTIVE" . "1"))
(serialize-environment-variables
(env-config
(name "Hello World")
(active? #t))
env-config-fields
#:true-value "1"
#:false-value "0"))
(test-equal "full record serialization"
'(("TEST_COUNT" . "800")
("TEST_NAME" . "Hello World")
("TEST_URL" . "https://example.org")
("TEST_ACTIVE" . "1"))
(serialize-environment-variables
(env-config
(port 90)
(name "Hello World")
(count 800)
(url "https://example.org")
(active? #t))
env-config-fields
'(port)
#t
#:prefix "TEST_"
#:true-value "1"
#:false-value "0")))
(define-configuration another-env-config
(port
(number 80)
""
(serializer serialize-number-environment-variable))
(count
(maybe-number)
""
(serializer serialize-maybe-number-environment-variable))
(name
(string)
""
(serializer serialize-string-environment-variable))
(url
(maybe-string)
""
(serializer serialize-maybe-string-environment-variable))
(active?
(boolean #f)
""
(serializer serialize-boolean-environment-variable)))
(test-group "environment variables serializer, with field serializers"
(test-assert "full record serialization"
(gexp?
(serialize-configuration
(another-env-config
(port 90)
(name "Hello World")
(count 800)
(url "https://example.org")
(active? #t))
another-env-config-fields))))