mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-07-07 05:44:07 +02:00
Compare commits
52 Commits
hurd-team
...
emacs-team
| Author | SHA1 | Date | |
|---|---|---|---|
| 804c8104a3 | |||
| 9492cfa45b | |||
| ea5bccd423 | |||
| 9abc0a2288 | |||
| 2a210ec364 | |||
| 78c8ab5782 | |||
| 4fca464f91 | |||
| 204baea3ef | |||
| 911271ca56 | |||
| 3d2b6612b3 | |||
| d6cca68094 | |||
| 7b478ce184 | |||
| 4dc59ee36b | |||
| 0efd01162f | |||
| 76b3f5be20 | |||
| 5e2ce939a5 | |||
| f3939bbcd1 | |||
| 61065a5384 | |||
| 698559a3aa | |||
| 5f5d345f53 | |||
| 2cbe77f480 | |||
| 1ddcd976a0 | |||
| 8fc4664f0e | |||
| b56f9d2271 | |||
| 5bb8ff2edd | |||
| 295db2baea | |||
| eb9379c682 | |||
| 54e92a3c05 | |||
| 436aeea0bf | |||
| a310d46cdd | |||
| 25632f9412 | |||
| 97731feda5 | |||
| 0bef017001 | |||
| cf7adf3954 | |||
| 892a857130 | |||
| 3ef72f23e6 | |||
| 432508202f | |||
| ce87998b2c | |||
| 5c20c167b8 | |||
| 3e30ec4255 | |||
| b4ef2bb4ac | |||
| bce3de8c33 | |||
| 5b47e87694 | |||
| 79eb796cc6 | |||
| 0f6b97e1a8 | |||
| c47216bede | |||
| bd98d33841 | |||
| 6094799db8 | |||
| fc27102e8a | |||
| fcd85e7ca8 | |||
| a9b4d9dab2 | |||
| 6f8ebeb67c |
+26
-11
@@ -646,9 +646,11 @@ This field contains a description of the source code origin. The
|
||||
|
||||
@enumerate
|
||||
@item The method, here @code{url-fetch} to download via HTTP/FTP, but other methods
|
||||
exist, such as @code{git-fetch} for Git repositories.
|
||||
exist, such as @code{git-fetch} for Git repositories. @xref{origin
|
||||
Reference,,, guix, GNU Guix Reference Manual}, for more info on the
|
||||
available download methods.
|
||||
@item The URI, which is typically some @code{https://} location for @code{url-fetch}. Here
|
||||
the special `mirror://gnu` refers to a set of well known locations, all of
|
||||
the special @code{mirror://gnu} refers to a set of well known locations, all of
|
||||
which can be used by Guix to fetch the source, should some of them fail.
|
||||
@item The @code{sha256} checksum of the requested file. This is essential to ensure
|
||||
the source is not corrupted. Note that Guix works with base32 strings,
|
||||
@@ -1116,7 +1118,8 @@ Let's discuss those fields in depth.
|
||||
@subsubsection @code{git-fetch} method
|
||||
|
||||
Unlike the @code{url-fetch} method, @code{git-fetch} expects a @code{git-reference} which takes
|
||||
a Git repository and a commit. The commit can be any Git reference such as
|
||||
a Git repository and a commit (@pxref{origin Reference,,, guix, GNU Guix
|
||||
Reference Manual}). The commit can be any Git reference such as
|
||||
tags, so if the @code{version} is tagged, then it can be used directly. Sometimes
|
||||
the tag is prefixed with a @code{v}, in which case you'd use @code{(commit (string-append
|
||||
"v" version))}.
|
||||
@@ -1162,7 +1165,7 @@ Snippets might need additional Guile modules which can be imported from the
|
||||
|
||||
There are 3 different input types. In short:
|
||||
|
||||
@table @asis
|
||||
@table @code
|
||||
@item native-inputs
|
||||
Required for building but not runtime -- installing a package
|
||||
through a substitute won't install these inputs.
|
||||
@@ -1230,9 +1233,14 @@ It's advised to separate outputs only when you've shown it's worth it: if the
|
||||
output size is significant (compare with @code{guix size}) or in case the package is
|
||||
modular.
|
||||
|
||||
@xref{Packages with Multiple Outputs,,, guix, GNU Guix Reference
|
||||
Manual}, for more info.
|
||||
|
||||
@subsubsection Build system arguments
|
||||
|
||||
The @code{arguments} is a keyword-value list used to configure the build process.
|
||||
The @code{arguments} is a keyword-value list used to configure the build
|
||||
process; these arguments are passed to the @dfn{build system}
|
||||
(@pxref{Build Systems,,, guix, GNU Guix Reference Manual}).
|
||||
|
||||
The simplest argument @code{#:tests?} can be used to disable the test suite when
|
||||
building the package. This is mostly useful when the package does not feature
|
||||
@@ -1248,7 +1256,7 @@ following flags
|
||||
"CC=gcc")
|
||||
@end lisp
|
||||
|
||||
translate into
|
||||
translate into:
|
||||
|
||||
@example
|
||||
$ make CC=gcc prefix=/gnu/store/...-<out>
|
||||
@@ -1268,7 +1276,9 @@ Similarly, it's possible to set the configure flags:
|
||||
The @code{%build-inputs} variable is also generated in scope. It's an association
|
||||
table that maps the input names to their store directories.
|
||||
|
||||
The @code{phases} keyword lists the sequential steps of the build system. Typically
|
||||
The @code{phases} keyword lists the sequential steps of the build
|
||||
system. @xref{Build Phases,,, guix, GNU Guix Reference Manual}, for
|
||||
details; in a nutshell,
|
||||
phases include @code{unpack}, @code{configure}, @code{build}, @code{install} and @code{check}. To know
|
||||
more about those phases, you need to work out the appropriate build system
|
||||
definition in @samp{$GUIX_CHECKOUT/guix/build/gnu-build-system.scm}:
|
||||
@@ -1383,10 +1393,12 @@ Its return value is ignored.
|
||||
|
||||
@subsubsection Code staging
|
||||
|
||||
The astute reader may have noticed the quasi-quote and comma syntax in the
|
||||
The astute reader may have noticed the hash-tilde and hash-dollar syntax in the
|
||||
argument field. Indeed, the build code in the package declaration should not be
|
||||
evaluated on the client side, but only when passed to the Guix daemon. This
|
||||
mechanism of passing code around two running processes is called @uref{https://arxiv.org/abs/1709.00833, code staging}.
|
||||
@xref{G-Expressions,,, guix, GNU Guix Reference Manual}, for info on the
|
||||
this mechanism, which is called @dfn{g-expressions}.
|
||||
|
||||
@subsubsection Utility functions
|
||||
|
||||
@@ -1395,7 +1407,7 @@ equivalent system invocations (@code{make}, @code{mkdir}, @code{cp}, etc.)@: com
|
||||
regular ``Unix-style'' installations.
|
||||
|
||||
Some like @code{chmod} are native to Guile.
|
||||
@xref{,,, guile, Guile reference manual} for a complete list.
|
||||
@xref{File System,,, guile, Guile reference manual} for a complete list.
|
||||
|
||||
Guix provides additional helper functions which prove especially handy in the
|
||||
context of package management.
|
||||
@@ -1575,7 +1587,9 @@ noticed that a significant number of them have a @code{inherit} field:
|
||||
|
||||
All unspecified fields are inherited from the parent package. This is very
|
||||
convenient to create alternative packages, for instance with different source,
|
||||
version or compilation options.
|
||||
version or compilation options. @xref{Defining Package Variant,,, guix,
|
||||
GNU Guix Reference Manual}, for a discussion of inheritance and of other
|
||||
ways to create package variants.
|
||||
|
||||
@node Getting help
|
||||
@subsection Getting help
|
||||
@@ -1616,7 +1630,8 @@ hopefully we will see your contributions soon!
|
||||
|
||||
@itemize
|
||||
@item
|
||||
The @uref{https://guix.gnu.org/manual/en/html_node/Defining-Packages.html, package reference in the manual}
|
||||
@xref{Defining Packages,,, guix, GNU Guix Reference Manual}, for the
|
||||
@code{package} reference in the manual.
|
||||
|
||||
@item
|
||||
@uref{https://gitlab.com/pjotrp/guix-notes/blob/master/HACKING.org, Pjotr’s hacking guide to GNU Guix}
|
||||
|
||||
+6
-2
@@ -264,6 +264,7 @@ Setting Up the Daemon
|
||||
* Build Environment Setup:: Preparing the isolated build environment.
|
||||
* Daemon Offload Setup:: Offloading builds to remote machines.
|
||||
* SELinux Support:: Using an SELinux policy for the daemon.
|
||||
* AppArmor Support:: Using an AppArmor profile for the daemon.
|
||||
|
||||
System Installation
|
||||
|
||||
@@ -480,12 +481,14 @@ Home Services
|
||||
* GPG: GNU Privacy Guard. Setting up GPG and related tools.
|
||||
* Desktop: Desktop Home Services. Services for graphical environments.
|
||||
* Guix: Guix Home Services. Services for Guix.
|
||||
* Backup: Backup Home Services. Services for backing up User's files.
|
||||
* Backup: Backup Home Services. Services for backing up User's files.
|
||||
* Fonts: Fonts Home Services. Services for managing User's fonts.
|
||||
* Sound: Sound Home Services. Dealing with audio.
|
||||
* Mail: Mail Home Services. Services for managing mail.
|
||||
* Messaging: Messaging Home Services. Services for managing messaging.
|
||||
* Media: Media Home Services. Services for managing media.
|
||||
* mpv Media Player::
|
||||
* Niri: Niri window manager. Setting up the Niri.
|
||||
* Sway: Sway window manager. Setting up the Sway configuration.
|
||||
* Networking: Networking Home Services. Networking services.
|
||||
* Secrets: Secrets Home Services. Services for storing secrets.
|
||||
@@ -52425,12 +52428,13 @@ services)}.
|
||||
* GPG: GNU Privacy Guard. Setting up GPG and related tools.
|
||||
* Desktop: Desktop Home Services. Services for graphical environments.
|
||||
* Guix: Guix Home Services. Services for Guix.
|
||||
* Backup: Backup Home Services. Services for backing up User's files.
|
||||
* Backup: Backup Home Services. Services for backing up User's files.
|
||||
* Fonts: Fonts Home Services. Services for managing User's fonts.
|
||||
* Sound: Sound Home Services. Dealing with audio.
|
||||
* Mail: Mail Home Services. Services for managing mail.
|
||||
* Messaging: Messaging Home Services. Services for managing messaging.
|
||||
* Media: Media Home Services. Services for managing media.
|
||||
* mpv Media Player::
|
||||
* Niri: Niri window manager. Setting up the Niri.
|
||||
* Sway: Sway window manager. Setting up the Sway configuration.
|
||||
* Networking: Networking Home Services. Networking services.
|
||||
|
||||
+63
-2
@@ -47,8 +47,11 @@
|
||||
(title
|
||||
(en "@command{pull} and @command{time-machine} can download channel
|
||||
files")
|
||||
(de "@command{pull} und @command{time-machine} können Kanaldateien
|
||||
herunterladen")
|
||||
(fr "@command{pull} et @command{time-machine} peuvent télécharger des
|
||||
fichiers canaux"))
|
||||
fichiers canaux")
|
||||
(pt "@command{pull} e @command{time-machine} podem baixar arquivos de canal"))
|
||||
(body
|
||||
(en "The @command{guix pull} and @command{guix time-machine} can now
|
||||
be passed a URL as their @option{-C} (or @option{--channels}) option. For
|
||||
@@ -78,6 +81,35 @@ only @dfn{trusted channels} are allowed---one may specify them in
|
||||
@file{~/.config/guix/trusted-channels.scm}.
|
||||
|
||||
See @samp{info \"(guix)Invoking guix pull\"} for more information.")
|
||||
(de "Den Befehlen @command{guix pull} und @command{guix time-machine}
|
||||
kann jetzt eine URL mit der Option @option{-C} (oder @option{--channels})
|
||||
übergeben werden. Zum Beispiel lädt der folgende Befehl vom neuesten
|
||||
erfolgreich ausgewerteten Commit des @code{master}-Branches herunter:
|
||||
|
||||
@example
|
||||
guix pull \\
|
||||
-C https://ci.guix.gnu.org/eval/latest/channels.scm?spec=master
|
||||
@end example
|
||||
|
||||
Als Alternative kann man auch eine @uref{https://swhid.org, SWHID} angeben, die
|
||||
auf eine Kanaldatei verweist:
|
||||
|
||||
@example
|
||||
guix time-machine \\
|
||||
-C swh:1:cnt:ae02d8ba3538a385ee799e61cdd0dfc5e14a8d1b \\
|
||||
-- ...
|
||||
@end example
|
||||
|
||||
Damit das möglich ist, werden Kanaldateien jetzt in einer isolierten Umgebung
|
||||
ausgewertet (einer @dfn{Sandbox}), wodurch sie keinen beliebigen Code mehr
|
||||
ausführen können. Wenn Sie in bestehenden Dateien solche über den „Standard“
|
||||
hinausgehenden Funktionen benutzt haben, kann dazu jetzt verlangt werden, dass
|
||||
Sie @option{--unsafe-channel-evaluation} übergeben, um sie auszuwerten. Des
|
||||
Weiteren dürfen Kanäle aus heruntergeladenen Dateien nur als
|
||||
@dfn{vertrauenswürdig} markierte Kanäle verwenden, die Sie in
|
||||
@file{~/.config/guix/trusted-channels.scm} angeben.
|
||||
|
||||
Siehe @samp{info \"(guix.de) Aufruf von guix pull\"} für mehr Informationen.")
|
||||
(fr "Les commandes @command{guix pull} et @command{guix time-machine}
|
||||
peuvent dorénavant prendre une URL pour l'option @option{-C} (ou
|
||||
@option{--channels}). Par exemple, la commande ci-dessous tire la dernière
|
||||
@@ -107,7 +139,36 @@ sont admis---on peut les énumérer dans
|
||||
@file{~/.config/guix/trusted-channels.scm}.
|
||||
|
||||
Voir @samp{info \"(guix.fr) Invoquer guix pull\"} pour plus
|
||||
d'informations.")))
|
||||
d'informations.")
|
||||
(pt "Os comandos @command{guix pull} e @command{guix time-machine} já
|
||||
podem receber uma URL como opção para @option{-C} (or @option{--channels}).
|
||||
Por exemplo, o comando abaixo busca do commit mais recente evaluado com
|
||||
sucesso do ramo @code{master}:
|
||||
|
||||
@example
|
||||
guix pull \\
|
||||
-C https://ci.guix.gnu.org/eval/latest/channels.scm?spec=master
|
||||
@end example
|
||||
|
||||
Alternativamente, pode-se também especificar uma @uref{https://swhid.org,
|
||||
SWHID} que aponta para um arquivo de canal:
|
||||
|
||||
@example
|
||||
guix time-machine \\
|
||||
-C swh:1:cnt:ae02d8ba3538a385ee799e61cdd0dfc5e14a8d1b \\
|
||||
-- ...
|
||||
@end example
|
||||
|
||||
Para tornar isso possível, arquivos de canal agora são evaluados em um
|
||||
ambiente isolado (uma caixinha de areia, vulgo @dfn{sandbox}), o que os impede
|
||||
de evaluar código arbitrário; se você tem arquivos de canal que dependem de
|
||||
recursos \"não padrão\", pode ser necessário que você passe a opção
|
||||
@option{--unsafe-channel-evaluation} para evaluá-los. Além disso, quando se
|
||||
buscam canais de um arquivo baixado, somente @dfn{canais confiáveis} são
|
||||
permitidos---é possível especificá-los em
|
||||
@file{~/.config/guix/trusted-channels.scm}.
|
||||
|
||||
Veja @samp{info \"(guix.pt_BR)Invocando guix pull\"} para mais informação.")))
|
||||
|
||||
(entry (commit "a7c8e68dc51144a6d3981b770aca9c4897fc7c0c")
|
||||
(title
|
||||
|
||||
@@ -1364,16 +1364,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/ganeti-disable-version-symlinks.patch \
|
||||
%D%/packages/patches/ganeti-haskell-pythondir.patch \
|
||||
%D%/packages/patches/ganeti-lens-compat.patch \
|
||||
%D%/packages/patches/ganeti-openssh-test-fix.patch \
|
||||
%D%/packages/patches/ganeti-pyyaml-compat.patch \
|
||||
%D%/packages/patches/ganeti-procps-compat.patch \
|
||||
%D%/packages/patches/ganeti-reorder-arbitrary-definitions.patch \
|
||||
%D%/packages/patches/ganeti-relax-dependencies.patch \
|
||||
%D%/packages/patches/ganeti-shepherd-master-failover.patch \
|
||||
%D%/packages/patches/ganeti-shepherd-support.patch \
|
||||
%D%/packages/patches/ganeti-sphinx-import.patch \
|
||||
%D%/packages/patches/ganeti-template-haskell-2.17.patch \
|
||||
%D%/packages/patches/ganeti-template-haskell-2.18.patch \
|
||||
%D%/packages/patches/gawk-shell.patch \
|
||||
%D%/packages/patches/gcc-arm-bug-71399.patch \
|
||||
%D%/packages/patches/gcc-arm-link-spec-fix.patch \
|
||||
|
||||
+3
-11
@@ -585,19 +585,11 @@ chmod 600 /mnt/root/.ssh/authorized_keys
|
||||
|
||||
# Small instance don't have much disk space. Bind mount the store of the
|
||||
# rescue system to the tmp directory of the new Guix system.
|
||||
mkdir -p /mnt/tmp/gnu/store
|
||||
mkdir -p /gnu/store
|
||||
mount --bind /mnt/tmp/gnu/store /gnu/store
|
||||
mkdir -p /mnt/tmp/gnu
|
||||
mkdir -p /gnu
|
||||
mount --bind /mnt/tmp/gnu /gnu
|
||||
|
||||
wget -O /tmp/guix-install.sh https://guix.gnu.org/guix-install.sh
|
||||
|
||||
# Modify the install script to point the systemd unit of the /gnu/store
|
||||
# mountpoint to the same /mnt/tmp/gnu/store which was introduced above.
|
||||
store_fix=\"sed -i 's#Where=/gnu/store#Where=/mnt/tmp/gnu/store#'
|
||||
~~root/.config/guix/current/lib/systemd/system/gnu-store.mount\"
|
||||
sed -i \"s@install_unit gnu-store.mount\"\\
|
||||
\"@$(printf \"%q \" $store_fix)\\ninstall_unit gnu-store.mount@\" /tmp/guix-install.sh
|
||||
|
||||
chmod +x /tmp/guix-install.sh
|
||||
set +o pipefail # avoid hangup on 'yes' killing this script
|
||||
yes '' | /tmp/guix-install.sh
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
;; -*- lexical-binding: t; -*-
|
||||
(require 'ert)
|
||||
|
||||
(eval-when-compile
|
||||
|
||||
@@ -1452,3 +1452,36 @@ It is an alternative to e.g. @command{make(1)} and @command{redo(1)}. Features:
|
||||
@end itemize
|
||||
")
|
||||
(license license:wtfpl2)))
|
||||
|
||||
(define-public xmake
|
||||
(package
|
||||
(name "xmake")
|
||||
(version "3.0.8")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/xmake-io/xmake.git")
|
||||
(commit (string-append "v" version))
|
||||
;; Requires some dependencies from "xmake-core-*" repos
|
||||
(recursive? #t)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1pdjz52w9lzfbcpx9wmzy0bsjg7i19xz43f63czk7jz9v0xba6gi"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
;; No check rule in make
|
||||
;; TODO: find how to run Lua tests in "test" directory
|
||||
#:tests? #f))
|
||||
(home-page "https://xmake.io/")
|
||||
(synopsis "Cross-platform build utility based on Lua")
|
||||
(description "@command{xmake} is a cross-platform build utility based on Lua.
|
||||
Features:
|
||||
@itemize
|
||||
@item Built-in caching and parallel compilation,
|
||||
@item Concise Lua syntax,
|
||||
@item Custom rules, plugins and modules,
|
||||
@item Support for C++20 modules and compile_commands.json,
|
||||
@item Support for languages outside C/C++ (e.g. Go, Rust, Zig).
|
||||
@end itemize")
|
||||
(license license:asl2.0)))
|
||||
|
||||
@@ -81,6 +81,7 @@
|
||||
#:use-module (gnu packages autotools)
|
||||
#:use-module (gnu packages gettext)
|
||||
#:use-module (gnu packages pkg-config)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages tls)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu packages xml))
|
||||
@@ -1500,6 +1501,48 @@ Telemetry Transport (MQTT) publish-subscribe messaging protocol.")
|
||||
(home-page "https://microsoft.github.io/mimalloc/")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public mps
|
||||
(package
|
||||
(name "mps")
|
||||
(version "1.118.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/Ravenbrook/mps")
|
||||
(commit (string-append "release-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "078iv3fsz0dnfwb7g63apkvcksczbqfxrxm73k80jwnwca6pgafy"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'patch-cflags
|
||||
;; The recursive make call in the test suite doesn't pass CFLAGS
|
||||
;; down properly so we need to do it ourselves
|
||||
(lambda _
|
||||
(substitute* "Makefile.in"
|
||||
(("CFLAGS=\"(.*)\"" _ flags)
|
||||
(string-append "CFLAGS=\"" flags " $(CFLAGS)\""))))))
|
||||
#:parallel-build? #f ;Parallel build fails
|
||||
#:test-target "test"
|
||||
#:make-flags
|
||||
#~(list "CFLAGS=-Wno-error=dangling-pointer -Wno-maybe-uninitialized"
|
||||
;; These flags are needed for the recursive make calls in testing
|
||||
(string-append "CC=" #$(cc-for-target)) "-j" "1")))
|
||||
(inputs (list sqlite))
|
||||
(home-page "http://www.ravenbrook.com/project/mps")
|
||||
(synopsis "Memory pool system")
|
||||
(description
|
||||
"This package provides a cross-platform memory management system. It
|
||||
permits the flexible combination of memory management techniques, supporting
|
||||
manual and automatic memory management, in-line allocation, finalization,
|
||||
weakness, and multiple concurrent co-operating incremental generational
|
||||
garbage collections. It also includes a library of memory pool classes
|
||||
implementing specialized memory management policies.")
|
||||
(license license:bsd-2)))
|
||||
;;; The package is named orangeduck-mpc to differentiate it from GNU mpc.
|
||||
(define-public orangeduck-mpc
|
||||
;; The last release lacks an 'install' target.
|
||||
|
||||
+10
-22
@@ -337,7 +337,7 @@ reconstruction capability.")
|
||||
(define-public cdrdao
|
||||
(package
|
||||
(name "cdrdao")
|
||||
(version "1.2.5")
|
||||
(version "1.2.6")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -347,30 +347,18 @@ reconstruction capability.")
|
||||
(string-append "rel_" (string-replace-substring version "." "_")))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1hh1lm4wr1vhsq2brczn94h88h3bppvjidj9cfqkl20jhaj38968"))))
|
||||
(build-system gnu-build-system)
|
||||
(base32 "0hb8dfb88zk01yk5nfl8m5hsg4x2scb2899pxb717zywznr8jijw"))))
|
||||
(build-system glib-or-gtk-build-system)
|
||||
(arguments
|
||||
'(#:configure-flags
|
||||
(list
|
||||
;; GCDMaster depends on obsolete libgnomeuimm, see
|
||||
;; <https://github.com/cdrdao/cdrdao/issues/3>.
|
||||
"--without-gcdmaster"
|
||||
;; Use the native SCSI interface.
|
||||
"--without-scglib")
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-before 'bootstrap 'fix-configure.ac
|
||||
(lambda _
|
||||
;; Remove references to missing macros.
|
||||
(substitute* "configure.ac"
|
||||
(("^AM_GCONF_SOURCE_2.*") "")
|
||||
;; This was introduced in autoconf-2.70, but is described
|
||||
;; as usually not needed in the autoconf documentation.
|
||||
(("^AC_CHECK_INCLUDES_DEFAULT") "")))))))
|
||||
(list
|
||||
#:configure-flags
|
||||
#~(list
|
||||
;; Use the native SCSI interface.
|
||||
"--without-scglib")))
|
||||
(native-inputs
|
||||
(list autoconf automake pkg-config))
|
||||
(list autoconf-2.72 automake `(,glib "bin") pkg-config))
|
||||
(inputs
|
||||
(list ao lame libmad libvorbis))
|
||||
(list ao gtkmm-3 lame libmad libsigc++-2 libvorbis))
|
||||
(home-page "https://cdrdao.sourceforge.net")
|
||||
(synopsis "Read and write CDs in disk-at-once mode")
|
||||
(description "cdrdao records audio or data CDs in disk-at-once (DAO) mode,
|
||||
|
||||
@@ -150,7 +150,7 @@ as created by Podman, CRI-O and containerd.")))
|
||||
(define-public crun
|
||||
(package
|
||||
(name "crun")
|
||||
(version "1.26")
|
||||
(version "1.27.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
@@ -160,7 +160,7 @@ as created by Podman, CRI-O and containerd.")))
|
||||
"/crun-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1hdwk5dpsz9danxiyfli07b7sqid6hr34qmhs5qjl2dcc00is89j"))))
|
||||
"1w782s95f3xvw3fb66l2ciqkqsg4bk7n9ph31jmvn669ap272ymy"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -545,7 +545,7 @@ Layer-4 sockets.")
|
||||
(define-public cni-plugins
|
||||
(package
|
||||
(name "cni-plugins")
|
||||
(version "1.9.0")
|
||||
(version "1.9.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -554,7 +554,7 @@ Layer-4 sockets.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0l3jgbizq0yaxld07hsdbh6ix2w6i789101ddk0ldnsmr93jg6ni"))
|
||||
(base32 "12z6w2jk6xgfiwdxys7skpkxldz1cgaa7scgfcr90lsghay59s6w"))
|
||||
(snippet
|
||||
#~(begin (use-modules (guix build utils))
|
||||
(delete-file-recursively "vendor")))))
|
||||
@@ -885,7 +885,7 @@ being rootless and not requiring any daemon to be running.")
|
||||
(define-public buildah
|
||||
(package
|
||||
(name "buildah")
|
||||
(version "1.43.0")
|
||||
(version "1.43.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -893,7 +893,7 @@ being rootless and not requiring any daemon to be running.")
|
||||
(url "https://github.com/containers/buildah")
|
||||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32 "0pwdd0mxhxy530c2sbsz0rnnb1jyl41rvnqn9ywfgb6lz5f4ja2a"))
|
||||
(base32 "00x4ja5n49jmkmiv54mmkihks9pnjnna7s7py57in6pc9g85xj2y"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
||||
+18
-17
@@ -978,26 +978,27 @@ engineering.")
|
||||
(define-public seer-gdb
|
||||
(package
|
||||
(name "seer-gdb")
|
||||
(version "1.16")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/epasveer/seer.git")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"0jdvyg2jab1pvf36pvkyrfsg2wyy8zp1qx0v2ksclgrnr1hja6k6"))))
|
||||
(version "2.7")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/epasveer/seer")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1szfqybqr5z982vian4f0hpsagiqapzys3axwibyjyg5whjswva1"))))
|
||||
(build-system qt-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; Those are strangely manual
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "src"))))))
|
||||
(list
|
||||
#:tests? #f ;tests are strangely manual
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'chdir
|
||||
(lambda _
|
||||
(chdir "src"))))))
|
||||
(inputs
|
||||
(list qtbase-5 qtcharts-5 qtwayland-5))
|
||||
(list gdb qtbase qtcharts qtsvg qtwayland))
|
||||
(synopsis "GUI frontend for GDB")
|
||||
(description "This package provides a frontend to GDB, the GNU debugger.")
|
||||
(home-page "https://github.com/epasveer/seer")
|
||||
|
||||
@@ -204,48 +204,3 @@ and EFI variable management.")
|
||||
;; Library routines (in lib/) are under LGPL 2.1.
|
||||
;; Compiling/linking/using OpenSSL is permitted.
|
||||
(license (list license:gpl2 license:lgpl2.1))))
|
||||
|
||||
(define-public efilinux
|
||||
(package
|
||||
(name "efilinux")
|
||||
(version "1.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/mfleming/efilinux")
|
||||
(commit (string-append "efilinux-" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0b4nxzr3wl5v4b52r79iw1arfgasz26xb38r2blw9v2qz2s1q9w2"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:make-flags
|
||||
(list "CC=gcc"
|
||||
,@(match (%current-system)
|
||||
("aarch64-linux"
|
||||
'("ARCH=aarch64"))
|
||||
("armhf-linux"
|
||||
'("ARCH=arm"))
|
||||
(_ '()))
|
||||
(string-append "INCDIR=" (assoc-ref %build-inputs "gnu-efi")
|
||||
"/include")
|
||||
(string-append "LIBDIR=" (assoc-ref %build-inputs "gnu-efi")
|
||||
"/lib"))
|
||||
#:tests? #f ; No tests exist.
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(install-file "efilinux.efi"
|
||||
(string-append (assoc-ref outputs "out")
|
||||
"/libexec"))
|
||||
#t)))))
|
||||
(inputs
|
||||
(list gnu-efi))
|
||||
(synopsis "Minimal Linux loader for UEFI")
|
||||
(description "This package provides a minimal Linux loader as an UEFI
|
||||
program.")
|
||||
(home-page "https://github.com/mfleming/efilinux")
|
||||
(license license:bsd-2)))
|
||||
|
||||
+35
-34
@@ -7204,7 +7204,7 @@ that the binary uses instead of the actual binary contents.")
|
||||
(define-public emacs-ellama
|
||||
(package
|
||||
(name "emacs-ellama")
|
||||
(version "1.17.0")
|
||||
(version "1.17.1")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -7214,7 +7214,7 @@ that the binary uses instead of the actual binary contents.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"03y4hyrsmq6m7si191r3ndp06x5w53adpig272ymm0i4v9gnzlr9"))))
|
||||
"1ibqmhp6mszr85lfb6fwfx9npn46kzcb26vqprrla61w8nrplx97"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -9324,14 +9324,16 @@ This mode supports Apache HTTP Server 2.4 and major modules.")
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/raxod502/apheleia")
|
||||
(url "https://github.com/radian-software/apheleia")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1vs532hjkwj19laigqvvk11r0gwhv5vd8v6wh5598dzmfw3yh4bm"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments (list #:include #~(cons "^scripts/formatters/" %default-include)
|
||||
#:exclude #~(cons "\\.js$" %default-exclude)))
|
||||
(native-inputs (list emacs-buttercup))
|
||||
(home-page "https://github.com/raxod502/apheleia")
|
||||
(home-page "https://github.com/radian-software/apheleia")
|
||||
(synopsis "Reformat buffer stably")
|
||||
(description
|
||||
"This package allows for a buffer to be reformatted without moving point,
|
||||
@@ -18144,11 +18146,14 @@ Application Programming Interface}}, a free and open-source quotations
|
||||
(name "emacs-spinner")
|
||||
(version "1.7.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://elpa.gnu.org/packages/spinner-"
|
||||
version ".tar"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/Malabarba/spinner.el")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "140kss25ijbwf8hzflbjz67ry76w2cyrh02axk95n6qcxv7jr7pv"))))
|
||||
(base32
|
||||
"1m872dj1n05mkvgfyiqsbri489vmff5zdmv4xx5qj2s91sp046rl"))))
|
||||
(build-system emacs-build-system)
|
||||
(home-page "https://github.com/Malabarba/spinner.el")
|
||||
(synopsis "Emacs mode-line spinner for operations in progress")
|
||||
@@ -20433,7 +20438,7 @@ implementation.")
|
||||
(define-public emacs-cider
|
||||
(package
|
||||
(name "emacs-cider")
|
||||
(version "1.20.0")
|
||||
(version "1.21.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -20442,26 +20447,30 @@ implementation.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "08hd281ybskkhir170hr3xpga1b1hwpph7rd0fk6fvm0ngdgxazs"))))
|
||||
(base32 "19wx9mc488qipm08s7hc0zrfmiylw577lmf3jpvqcjq7amx14jgc"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:include #~(cons* "^lein\\.sh$" "^clojure\\.sh$" %default-include)
|
||||
#:exclude ;don't exclude 'cider-test.el'
|
||||
#~(list "^\\.dir-locals\\.el$" "^test/")
|
||||
#:lisp-directory "lisp"
|
||||
#:test-command
|
||||
#~(list "eldev" "--use-emacsloadpath" "-dtT" "-p" "test")
|
||||
#:exclude
|
||||
#~(list "^\\.dir-locals\\.el$" "^test/")
|
||||
#:phases
|
||||
;; XXX: file "test/cider-tests.el" contains a bogus "/bin/command"
|
||||
;; string, and `patch-el-files' phase chokes on it (even though the
|
||||
;; file is excluded from installation). Remove the phase altogether
|
||||
;; since there is no "/bin/executable" to replace in the code base
|
||||
;; anyway.
|
||||
#~(modify-phases %standard-phases
|
||||
(delete 'patch-el-files)
|
||||
(add-before 'check 'skip-failing-tests
|
||||
(lambda _ ;; Require network.
|
||||
(delete-file "test/cider-jar-tests.el"))))))
|
||||
(add-after 'unpack 'remove-network-tests
|
||||
(lambda _
|
||||
(delete-file "../test/cider-jar-tests.el")))
|
||||
(replace 'check
|
||||
(lambda* (#:key test-command tests?
|
||||
#:allow-other-keys)
|
||||
(when tests?
|
||||
(with-directory-excursion ".."
|
||||
(setenv "EMACSLOADPATH"
|
||||
(string-append (getcwd) ":"
|
||||
(getenv "EMACSLOADPATH")))
|
||||
(apply invoke test-command))))))))
|
||||
(native-inputs (list emacs-buttercup emacs-eldev))
|
||||
(propagated-inputs
|
||||
(list emacs-clojure-mode
|
||||
@@ -38728,7 +38737,7 @@ as Emacs Lisp.")
|
||||
(define-public emacs-transient
|
||||
(package
|
||||
(name "emacs-transient")
|
||||
(version "0.13.1")
|
||||
(version "0.13.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -38737,7 +38746,7 @@ as Emacs Lisp.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "161drbhzdp9fn0xkc0aza992g9h8prml513y8byyxvi6lqbqn8x4"))))
|
||||
(base32 "0c5kdzs55xzn4ksrxlm94s4w4mbamh7l5ycjnq9pvgqvggzijqng"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ;no test suite
|
||||
@@ -41976,7 +41985,7 @@ Lisp's (relatively new) EIEIO object oriented libraries.")
|
||||
(define-public emacs-fj
|
||||
(package
|
||||
(name "emacs-fj")
|
||||
(version "0.36")
|
||||
(version "0.37")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -41985,17 +41994,9 @@ Lisp's (relatively new) EIEIO object oriented libraries.")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "10v79lxnaya8h8qkdpvr7ns8330nrrl2h5mz4wh15blcp87ha37l"))))
|
||||
(base32 "09ff20am16ysjpbqx7b92qgmvyar9b6blm32flkvzqxccqqinxya"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:test-command #~(list "make" "tests")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'check 'remove-cask
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("cask ") "")))))))
|
||||
(arguments (list #:test-command #~(list "make" "tests" "CASK=")))
|
||||
(native-inputs
|
||||
(list emacs-el-mock emacs-exemplify-ert emacs-exemplify-eval))
|
||||
(propagated-inputs (list emacs-fedi emacs-magit emacs-tp emacs-transient))
|
||||
|
||||
@@ -387,6 +387,7 @@
|
||||
(lambda ()
|
||||
(display
|
||||
(string-append
|
||||
";; -*- lexical-binding: t; -*-\n"
|
||||
"(setq find-function-C-source-directory \"" dest "\")\n\n"
|
||||
"(provide 'guix-emacs-c-source)")))))))
|
||||
(add-after 'install 'install-site-start
|
||||
@@ -413,6 +414,7 @@
|
||||
(lambda ()
|
||||
(display
|
||||
(string-append
|
||||
";; -*- lexical-binding: t; -*-\n"
|
||||
"(when (require 'guix-emacs nil t)\n"
|
||||
" (guix-emacs-autoload-packages 'no-reload)\n"
|
||||
" (advice-add 'package-load-all-descriptors"
|
||||
@@ -630,6 +632,8 @@ editor (console only)")
|
||||
libx11
|
||||
libxft
|
||||
libxpm
|
||||
libxrender
|
||||
libxt
|
||||
libwebp
|
||||
pango
|
||||
poppler)))))
|
||||
|
||||
@@ -2391,6 +2391,47 @@ games.")
|
||||
(home-page "https://openmw.org")
|
||||
(license license:gpl3)))
|
||||
|
||||
(define-public jolt-physics
|
||||
(package
|
||||
(name "jolt-physics")
|
||||
(version "5.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/jrouwe/JoltPhysics")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0dzqi4mxrzg5cyf5k8rdlb078939ib849n7gs6014d3ljymf839r"))
|
||||
(modules '((guix build utils)))
|
||||
;; Unbundle Roboto font.
|
||||
(snippet
|
||||
'(begin
|
||||
(delete-file-recursively "Assets/Fonts")
|
||||
(substitute* "TestFramework/TestFramework.cmake"
|
||||
((".*Roboto-Regular\\.ttf.*") ""))))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:configure-flags
|
||||
#~(list "-DBUILD_SHARED_LIBS=ON")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'configure 'change-directory
|
||||
(lambda _
|
||||
(chdir "Build")))
|
||||
(add-after 'install 'change-directory
|
||||
(lambda _
|
||||
(chdir ".."))))))
|
||||
(home-page "https://github.com/jrouwe/JoltPhysics")
|
||||
(synopsis "Rigid body physics and collision detection library")
|
||||
(description
|
||||
"Jolt Physics is a multi core friendly rigid body physics and collision
|
||||
detection library, written in C++. It is suitable for games and VR
|
||||
applications.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public godot-lts
|
||||
(package
|
||||
(name "godot")
|
||||
|
||||
@@ -11564,6 +11564,71 @@ accessibility infrastructure.")
|
||||
(license license:lgpl2.0)
|
||||
(properties '((upstream-name . "pyatspi")))))
|
||||
|
||||
(define-public accerciser
|
||||
(package
|
||||
(name "accerciser")
|
||||
(version "3.48.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.gnome.org/GNOME/accerciser.git")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1ddh466im0hxqx0ncxglrif72jfwcdl1ayarw874mp1464wkbc4m"))))
|
||||
(build-system meson-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:glib-or-gtk? #t
|
||||
#:imported-modules (append %meson-build-system-modules
|
||||
%pyproject-build-system-modules)
|
||||
#:modules
|
||||
`((guix build meson-build-system)
|
||||
((guix build pyproject-build-system) #:prefix py:)
|
||||
(guix build utils))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'skip-gnome-post-install
|
||||
(lambda _
|
||||
(substitute* "meson.build"
|
||||
(("gtk_update_icon_cache: true")
|
||||
"gtk_update_icon_cache: false")
|
||||
(("update_desktop_database: true")
|
||||
"update_desktop_database: false"))))
|
||||
(add-after 'install 'wrap-python
|
||||
(assoc-ref py:%standard-phases 'wrap))
|
||||
(add-after 'wrap-python 'wrap-program
|
||||
(lambda _
|
||||
(let ((typelib-path (getenv "GI_TYPELIB_PATH")))
|
||||
(wrap-program (string-append #$output "/bin/accerciser")
|
||||
`("GI_TYPELIB_PATH" ":" prefix (,typelib-path)))))))))
|
||||
(native-inputs
|
||||
(list (list glib "bin")
|
||||
gettext-minimal
|
||||
gobject-introspection
|
||||
pkg-config
|
||||
yelp-tools))
|
||||
(inputs
|
||||
(list appstream
|
||||
appstream-glib
|
||||
at-spi2-core
|
||||
bash-minimal
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gtk+
|
||||
python
|
||||
python-dbus
|
||||
python-pyatspi
|
||||
python-pycairo
|
||||
python-pygobject
|
||||
python-pyxdg))
|
||||
(synopsis "Accessibility explorer")
|
||||
(description "This package provides an interactive accessibility explorer
|
||||
for the GNOME desktop.")
|
||||
(home-page "https://gitlab.gnome.org/GNOME/accerciser")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public orca
|
||||
(package
|
||||
(name "orca")
|
||||
|
||||
@@ -2073,7 +2073,7 @@ the Go standard library's TLS 1.3 implementation.")
|
||||
(define-public go-github-com-melbahja-goph
|
||||
(package
|
||||
(name "go-github-com-melbahja-goph")
|
||||
(version "1.4.0")
|
||||
(version "1.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -2082,7 +2082,7 @@ the Go standard library's TLS 1.3 implementation.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1w6sn6m3bsh60flp0fdbv70c2d1ky12mpj09100qf64w0v1d32k0"))))
|
||||
(base32 "1ncvs9pbjg7m8yp3h8wbhxvzvks1g06a5qcjrkw2k515m2yqhg8k"))))
|
||||
(build-system go-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -3900,7 +3900,7 @@ is an extremely fast non-cryptographic hash algorithm.")
|
||||
;; XXX: Source only, to break cycle with
|
||||
;; go-github-com-zmap-zcrypto. Addintional inputs requaired only to
|
||||
;; build CLI:
|
||||
;;
|
||||
;;
|
||||
;; - github.com/sirupsen/logrus
|
||||
;; - github.com/zmap/zcrypto
|
||||
;; - github.com/zmap/zlint/v3
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
;;; Copyright © 2023 Timo Wilken <guix@twilken.net>
|
||||
;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu>
|
||||
;;; Copyright © 2023 conses <contact@conses.eu>
|
||||
;;; Copyright © 2024 Artyom V. Poptsov <poptsov.artyom@gmail.com>
|
||||
;;; Copyright © 2024, 2026 Artyom V. Poptsov <poptsov.artyom@gmail.com>
|
||||
;;; Copyright © 2024 Brian Kubisiak <brian@kubisiak.com>
|
||||
;;; Copyright © 2024 Herman Rimm <herman@rimm.ee>
|
||||
;;; Copyright © 2024 Jean Simard <woshilapin@tuziwo.info>
|
||||
@@ -25544,7 +25544,17 @@ suffix comparison, rather than the string-based or tree-based approaches.")
|
||||
(arguments
|
||||
(list
|
||||
#:parallel-tests? #f
|
||||
#:import-path "github.com/syncthing/notify"))
|
||||
#:import-path "github.com/syncthing/notify"
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'disable-failing-tests
|
||||
(lambda* (#:key import-path #:allow-other-keys)
|
||||
(with-directory-excursion (string-append "src/" import-path)
|
||||
(substitute* "notify_test.go"
|
||||
;; XXX: Sometimes this test fails due to timeout.
|
||||
;; Increasing the timeout from 5s to 10s does not help.
|
||||
;; See <https://github.com/rjeczalik/notify/issues/227>
|
||||
(("TestRecreated") "OffTestRecreated"))))))))
|
||||
(propagated-inputs
|
||||
(list go-golang-org-x-sys))
|
||||
(home-page "https://github.com/syncthing/notify")
|
||||
|
||||
@@ -628,9 +628,17 @@ with the @command{autotrace} utility or as a C library, @code{libautotrace}.")
|
||||
#:configure-flags
|
||||
(list
|
||||
"-DEMBREE_ISPC_SUPPORT=OFF"
|
||||
;; They SAY that that's the default--but it isn't
|
||||
;; (that would be AVX512--and that segfaults GCC (!)).
|
||||
"-DEMBREE_MAX_ISA=AVX2")))
|
||||
,@(cond
|
||||
((target-x86-64?)
|
||||
;; They SAY that that's the default--but it isn't
|
||||
;; (that would be AVX512--and that segfaults GCC (!)).
|
||||
`("-DEMBREE_MAX_ISA=AVX2"))
|
||||
((target-aarch64?)
|
||||
`("-DEMBREE_ARM=ON"
|
||||
"-DEMBREE_IGNORE_CMAKE_CXX_FLAGS=OFF"
|
||||
"-DCMAKE_CXX_FLAGS=-flax-vector-conversions"))
|
||||
(else
|
||||
'())))))
|
||||
(inputs
|
||||
(list glfw onetbb))
|
||||
(home-page "https://www.embree.org/")
|
||||
@@ -639,13 +647,16 @@ with the @command{autotrace} utility or as a C library, @code{libautotrace}.")
|
||||
"Embree is a collection of high-performance ray tracing kernels.
|
||||
Embree is meant to increase performance of photo-realistic rendering
|
||||
applications.")
|
||||
;; From the README: Embree requires at least an x86 CPU with support for
|
||||
;; SSE2 or an Apple M1 CPU.
|
||||
(supported-systems '("x86_64-linux" "aarch64-linux"))
|
||||
(license license:asl2.0)))
|
||||
|
||||
(define-public embree-3
|
||||
(package
|
||||
(inherit embree)
|
||||
(name "embree")
|
||||
(version "3.3.15")
|
||||
(version "3.13.5")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
||||
@@ -49,123 +49,6 @@
|
||||
#:use-module ((guix build utils) #:select (alist-replace))
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
(define-public musl-cross
|
||||
(let ((revision "3")
|
||||
(commit "a8a66490dae7f23a2cf5e256f3a596d1ccfe1a03"))
|
||||
(package
|
||||
(name "musl-cross")
|
||||
(version (git-version "0.1" revision commit))
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/GregorR/musl-cross")
|
||||
(commit commit)))
|
||||
(file-name "musl-cross-checkout")
|
||||
(sha256
|
||||
(base32
|
||||
"1xvl9y017wb2qaphy9zqh3vrhm8hklr8acvzzcjc35d1jjhyl58y"))
|
||||
(patches (search-patches "musl-cross-locale.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; No tests in main project.
|
||||
#:modules
|
||||
((guix build utils)
|
||||
(guix build gnu-build-system)
|
||||
(srfi srfi-1)) ; drop
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda _
|
||||
(setenv "SHELL" "bash")
|
||||
(setenv "CONFIG_SHELL" "bash")
|
||||
#t))
|
||||
(add-after 'unpack 'unpack-dependencies
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(define (install-file* source-key destination-directory
|
||||
destination-suffix)
|
||||
(let* ((source-file (assoc-ref inputs source-key))
|
||||
(source-basename (basename source-file))
|
||||
(source-parts (string-split source-basename #\-))
|
||||
(destination-file
|
||||
(string-join (drop source-parts 1) "-")))
|
||||
(copy-file source-file
|
||||
(string-append destination-directory "/"
|
||||
destination-file destination-suffix))))
|
||||
(for-each (lambda (name)
|
||||
(install-file* name "tarballs" ""))
|
||||
'("binutils" "target-gcc-5" "linux-headers" "musl"))
|
||||
(copy-file (string-append (assoc-ref inputs "config.sub")
|
||||
"/share/automake-1.16/config.sub")
|
||||
"tarballs/config.sub;hb=3d5db9ebe860")
|
||||
(copy-file (string-append (assoc-ref inputs "config.sub")
|
||||
"/share/automake-1.16/config.guess")
|
||||
"tarballs/config.guess;hb=3d5db9ebe860")
|
||||
(substitute* "config.sh"
|
||||
(("^CC_BASE_PREFIX=.*")
|
||||
(string-append "CC_BASE_PREFIX=" (assoc-ref outputs "out")
|
||||
"/crossgcc\n")))
|
||||
;; Note: Important: source/gcc-5.3.0/gcc/exec-tool.in
|
||||
;; Note: Important: source/kernel-headers-3.12.6-5/tools/install.sh
|
||||
;; Note: Important: move-if-change (twice)
|
||||
;; Make sure that shebangs are patched after new extractions.
|
||||
(substitute* "defs.sh"
|
||||
(("touch \"[$]2/extracted\"")
|
||||
(string-append "touch \"$2/extracted\"
|
||||
for s in mkinstalldirs move-if-change compile depcomp callprocs configure \\
|
||||
mkdep compile libtool-ldflags config.guess install-sh missing config.sub \\
|
||||
config.rpath progtest.m4 lib-ld.m4 acx.m4 gen-fixed.sh mkheader.sh ylwrap \\
|
||||
merge.sh godeps.sh lock-and-run.sh print-sysroot-suffix.sh mkconfig.sh \\
|
||||
genmultilib exec-tool.in install.sh
|
||||
do
|
||||
find . -name $s -exec sed -i -e 's;!/bin/sh;!" (assoc-ref inputs "bash")
|
||||
"/bin/sh;' '{}' ';'
|
||||
find . -name $s -exec sed -i -e 's; /bin/sh; " (assoc-ref inputs "bash")
|
||||
"/bin/sh;' '{}' ';'
|
||||
done
|
||||
" )))
|
||||
#t))
|
||||
(replace 'build
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(invoke "./build.sh")))
|
||||
(delete 'install))))
|
||||
(native-inputs
|
||||
`(("config.sub" ,automake)
|
||||
("bash" ,bash)
|
||||
("flex" ,flex)
|
||||
("gmp" ,gmp)
|
||||
("mpfr" ,mpfr)
|
||||
("mpc" ,mpc)
|
||||
("binutils"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
(uri "https://ftpmirror.gnu.org/gnu/binutils/binutils-2.27.tar.bz2")
|
||||
(sha256
|
||||
(base32 "125clslv17xh1sab74343fg6v31msavpmaa1c1394zsqa773g5rn"))))
|
||||
("target-gcc-5"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
(uri "https://ftpmirror.gnu.org/gnu/gcc/gcc-5.3.0/gcc-5.3.0.tar.bz2")
|
||||
(sha256
|
||||
(base32 "1ny4smkp5bzs3cp8ss7pl6lk8yss0d9m4av1mvdp72r1x695akxq"))))
|
||||
("linux-headers"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
(uri "http://ftp.barfooze.de/pub/sabotage/tarballs/linux-headers-4.19.88.tar.xz")
|
||||
(sha256
|
||||
(base32 "1srgi2nqw892jb6yd4kzacf2xzwfvzhsv2957xfh1nvbs7varwyk"))))
|
||||
("musl"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
(uri "http://www.musl-libc.org/releases/musl-1.1.24.tar.gz")
|
||||
(sha256
|
||||
(base32 "18r2a00k82hz0mqdvgm7crzc7305l36109c0j9yjmkxj2alcjw0k"))))))
|
||||
(supported-systems (remove target-hurd? %supported-systems))
|
||||
(home-page "https://github.com/osresearch/heads")
|
||||
(synopsis "Cross gcc 5 toolchain")
|
||||
(description "Musl-cross toolchain: binutils, gcc 5 and musl.")
|
||||
(license license:isc))))
|
||||
|
||||
;; This package provides a "dev.cpio" file usable as a base for booting Heads.
|
||||
(define-public heads-dev-cpio
|
||||
(package
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
;;; Copyright © 2021 Vinicius Monego <monego@posteo.net>
|
||||
;;; Copyright © 2021 jgart <jgart@dismail.de>
|
||||
;;; Copyright © 2023 Sharlatan Hellseher <sharlatanus@gmail.com>
|
||||
;;; Copyright © 2024, 2025 Spencer King <spencer.king@geneoscopy.com>
|
||||
;;; Copyright © 2024-2026 Spencer King <spencer.king@wustl.edu>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -5592,6 +5592,28 @@ arbitrary normed vector spaces (e.g. matrix-valued integrands).")
|
||||
format.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public julia-quantuminterface
|
||||
(package
|
||||
(name "julia-quantuminterface")
|
||||
(version "0.4.2")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/qojulia/QuantumInterface.jl")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "05792hkhjghlpm919ip8hzbhwv8xcngmyyks2nr8bln6qa8f8r9i"))))
|
||||
(build-system julia-build-system)
|
||||
(native-inputs (list julia-safetestsets))
|
||||
(home-page "https://github.com/qojulia/QuantumInterface.jl")
|
||||
(synopsis "Lightweight interface for Quantum Physics related packages")
|
||||
(description
|
||||
"This package provides a lightweight interface for Quantum Physics
|
||||
related packages.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public julia-quaternions
|
||||
(package
|
||||
(name "julia-quaternions")
|
||||
|
||||
@@ -3919,7 +3919,7 @@ on the fly. Both programs are written in C and are very fast.")
|
||||
(define-public stalwart
|
||||
(package
|
||||
(name "stalwart")
|
||||
(version "0.16.3")
|
||||
(version "0.16.4")
|
||||
(source
|
||||
(let ((upstream-source
|
||||
(origin
|
||||
@@ -3930,7 +3930,7 @@ on the fly. Both programs are written in C and are very fast.")
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1wcs9inwv8iv4qrayp9730wzmmpp4bna6jnpdz29ygb5c0lf2b29")))))
|
||||
"0r3p4g09012ranm4x4crhqa3p7i1m3w7xpy182c3ii74a131f5z1")))))
|
||||
(origin
|
||||
(method computed-origin-method)
|
||||
(file-name (git-file-name name version))
|
||||
@@ -3998,7 +3998,7 @@ CalDAV, CardDAV and WebDAV support and a wide range of modern features.")
|
||||
(define-public stalwart-cli
|
||||
(package
|
||||
(name "stalwart-cli")
|
||||
(version "1.0.4")
|
||||
(version "1.0.5")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
@@ -4007,7 +4007,7 @@ CalDAV, CardDAV and WebDAV support and a wide range of modern features.")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "0rbhzd8m48fm5q8vlzkla5zxrypkbvsi8i1bplkm1ndp0bwiqdvz"))))
|
||||
(base32 "1dnmv730bd4p4vhxw5m4jazbzyvwm9bf4rdsr8g84yriv51zbz6a"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list #:install-source? #f))
|
||||
|
||||
@@ -75,6 +75,7 @@
|
||||
;;; Copyright © 2026 Cayetano Santos <csantosb@inventati.org>
|
||||
;;; Copyright © 2026 Peter Polidoro <peter@polidoro.io>
|
||||
;;; Copyright © 2026 Luca Alloatti <luca-guix@f-si.org>
|
||||
;;; Copyright © 2026 Akiyoshi Suda <code@akiyoshisuda.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -4574,6 +4575,45 @@ primes and prime k-tuplets up to 264.")
|
||||
self-contained C-extension for Python.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python-constraint2
|
||||
(package
|
||||
(name "python-constraint2")
|
||||
(version "2.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/python-constraint/python-constraint")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1y62jvgb5dm91abgfs3cy260y1lxiwpvirs378a3lj4mrlmrqdsm"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:test-flags
|
||||
#~(list "--ignore=tests/test_toml_file.py" ;release information tests
|
||||
"--ignore=tests/test_util_benchmark.py")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'fix-pytest-config
|
||||
(lambda _
|
||||
;; Drop test coverage requirements
|
||||
(substitute* "pyproject.toml"
|
||||
(("--cov(-[^ ]*)?([ =][^ \"]*)?") "")))))))
|
||||
(native-inputs
|
||||
(list python-cython
|
||||
python-poetry-core ;actual build backend
|
||||
python-pytest
|
||||
python-setuptools)) ;required for cythonization
|
||||
(home-page "https://python-constraint.github.io/python-constraint")
|
||||
(synopsis "Constraint satisfaction problem resolver for Python")
|
||||
(description
|
||||
"The @code{python-constraint} module offers efficient solvers for
|
||||
@url{https://en.wikipedia.org/wiki/Constraint_satisfaction_problem, constraint
|
||||
satisfaction problems} over finite domains in an accessible Python package.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public python-cvxopt
|
||||
(package
|
||||
(name "python-cvxopt")
|
||||
|
||||
@@ -754,14 +754,14 @@ Daemon (MPD).")
|
||||
(define-public rmpc
|
||||
(package
|
||||
(name "rmpc")
|
||||
(version "0.9.0")
|
||||
(version "0.11.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "rmpc" version))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "00a8z3b4wqf1j6v0ws2fckj452w46vgj1v2n446bv4ngrk7wnf06"))))
|
||||
(base32 "0j2jahbm49jl1116cdl9f47pi0rmi6h4qy5gajwswr9dnld36803"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list
|
||||
@@ -787,7 +787,7 @@ Daemon (MPD).")
|
||||
("target/completions/_rmpc" .
|
||||
"share/zsh/site-functions/_rmpc"))))))))
|
||||
(inputs (cargo-inputs 'rmpc))
|
||||
(home-page "https://mierak.github.io/rmpc/")
|
||||
(home-page "https://rmpc.mierak.dev/")
|
||||
(synopsis "Configurable TUI client for MPD")
|
||||
(description
|
||||
"rmpc is a terminal based Music Player Daemon client heavily inspired by
|
||||
|
||||
@@ -47,6 +47,7 @@
|
||||
;;; Copyright © 2026 John Dawson <dawson.john.andrew@gmail.com>
|
||||
;;; Copyright © 2026 Ivan Vilata i Balaguer <ivan@selidor.net>
|
||||
;;; Copyright © 2026 Giacomo Leidi <therewasa@fishinthecalculator.me>
|
||||
;;; Copyright © 2026 Zheng Junjie <z572@z572.online>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -65,6 +66,7 @@
|
||||
|
||||
(define-module (gnu packages password-utils)
|
||||
#: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)
|
||||
@@ -91,6 +93,7 @@
|
||||
#:use-module (gnu packages crypto)
|
||||
#:use-module (gnu packages cryptsetup)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages digest)
|
||||
#:use-module (gnu packages docbook)
|
||||
#:use-module (gnu packages dotnet)
|
||||
@@ -133,6 +136,7 @@
|
||||
#:use-module (gnu packages ruby)
|
||||
#:use-module (gnu packages ruby-xyz)
|
||||
#:use-module (gnu packages security-token)
|
||||
#:use-module (gnu packages sqlite)
|
||||
#:use-module (gnu packages suckless)
|
||||
#:use-module (gnu packages tcl)
|
||||
#:use-module (gnu packages tls)
|
||||
@@ -776,6 +780,76 @@ age, and PGP.")
|
||||
convert SSH @code{ed25519} keys to @code{age} keys.")
|
||||
(license license:expat)))
|
||||
|
||||
(define-public vaultwarden
|
||||
(package
|
||||
(name "vaultwarden")
|
||||
(version "1.36.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/dani-garcia/vaultwarden")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "1lipk99gqfivg95yqg80b8q0a220vwn9nmq0f4syawxnhvn9zkcd"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:install-source? #f
|
||||
#:features '(list "sqlite_system" "s3" "postgresql")
|
||||
;; The build.rs script mandates the activation of a DB backend.
|
||||
#:cargo-test-flags
|
||||
'(list
|
||||
"--features"
|
||||
"sqlite_system,s3,postgresql"
|
||||
"--")
|
||||
#:cargo-install-paths ''(".")))
|
||||
(inputs
|
||||
(cons* openssl
|
||||
postgresql
|
||||
sqlite
|
||||
`(,zstd "lib")
|
||||
(cargo-inputs 'vaultwarden)))
|
||||
(native-inputs (list pkg-config))
|
||||
(home-page "https://github.com/dani-garcia/vaultwarden")
|
||||
(synopsis
|
||||
"Alternative implementation of the Bitwarden server API")
|
||||
(description
|
||||
"Vaultwarden is an unofficial Bitwarden server implementation written in
|
||||
Rust. It is compatible with the official Bitwarden clients, and is ideal for
|
||||
self-hosted deployments where running the official resource-heavy service is
|
||||
undesirable.
|
||||
|
||||
Supported features are:
|
||||
@itemize
|
||||
@item Personal vault support
|
||||
@item Organization vault support
|
||||
@item Groups
|
||||
@item Event Logs
|
||||
@item Password sharing and access control
|
||||
@item Collections
|
||||
@item File attachments
|
||||
@item Folders
|
||||
@item Favorites
|
||||
@item Website icons
|
||||
@item Bitwarden Authenticator (TOTP)
|
||||
@item Bitwarden Send
|
||||
@item Emergency Access
|
||||
@item Trash (soft delete, you can configure the days for automatic deletion)
|
||||
@item Master password re-prompt
|
||||
@item Personal API key
|
||||
@item Two-step login via email, Duo, YubiKey, and FIDO2 WebAuthn
|
||||
@item Username generator integration
|
||||
@item Directory Connector support
|
||||
@item Account Recovery (this requires mail to be enabled)
|
||||
@item Live sync (WebSocket only) for desktop/browser clients/extensions
|
||||
@item Live sync (push notifications) for mobile clients (Android/iOS)
|
||||
@item Single Sign-On (SSO)
|
||||
@end itemize
|
||||
")
|
||||
(license license:agpl3)))
|
||||
|
||||
(define-public yapet
|
||||
(package
|
||||
(name "yapet")
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
From 8a06656acf8f6e3dfa907bea77bd57a469a8d3fb Mon Sep 17 00:00:00 2001
|
||||
From: codefritzel <pascal-pf@hotmail.de>
|
||||
Date: Thu, 11 Jul 2024 23:10:41 +0200
|
||||
Subject: replace dsa with rsa in TestUpdateSshRoot
|
||||
|
||||
DSA to be deactivated in OpenSSH from 2025. Since version 7.0 dsa is
|
||||
marked as deprecated.
|
||||
|
||||
The TestUpdateSshRoot uses DSA, which will fail in the future with newer
|
||||
OpenSSH versions.
|
||||
|
||||
fixes #1752
|
||||
|
||||
Signed-off-by: codefritzel <pascal-pf@hotmail.de>
|
||||
|
||||
diff --git a/test/py/ganeti.tools.prepare_node_join_unittest.py b/test/py/ganeti.tools.prepare_node_join_unittest.py
|
||||
index fe7efdf8c..fe029b8f2 100755
|
||||
--- a/test/py/ganeti.tools.prepare_node_join_unittest.py
|
||||
+++ b/test/py/ganeti.tools.prepare_node_join_unittest.py
|
||||
@@ -229,20 +229,20 @@ class TestUpdateSshRoot(unittest.TestCase):
|
||||
def testUpdate(self):
|
||||
data = {
|
||||
constants.SSHS_SSH_ROOT_KEY: [
|
||||
- (constants.SSHK_DSA, "privatedsa", "ssh-dss pubdsa"),
|
||||
+ (constants.SSHK_RSA, "privatersa", "ssh-rsa pubrsa"),
|
||||
],
|
||||
- constants.SSHS_SSH_KEY_TYPE: "dsa",
|
||||
- constants.SSHS_SSH_KEY_BITS: 1024,
|
||||
+ constants.SSHS_SSH_KEY_TYPE: "rsa",
|
||||
+ constants.SSHS_SSH_KEY_BITS: 2048,
|
||||
}
|
||||
|
||||
prepare_node_join.UpdateSshRoot(data, False,
|
||||
_homedir_fn=self._GetHomeDir)
|
||||
self.assertEqual(os.listdir(self.tmpdir), [".ssh"])
|
||||
self.assertEqual(sorted(os.listdir(self.sshdir)),
|
||||
- sorted(["authorized_keys", "id_dsa", "id_dsa.pub"]))
|
||||
- self.assertTrue(utils.ReadFile(utils.PathJoin(self.sshdir, "id_dsa"))
|
||||
+ sorted(["authorized_keys", "id_rsa", "id_rsa.pub"]))
|
||||
+ self.assertTrue(utils.ReadFile(utils.PathJoin(self.sshdir, "id_rsa"))
|
||||
is not None)
|
||||
- pub_key = utils.ReadFile(utils.PathJoin(self.sshdir, "id_dsa.pub"))
|
||||
+ pub_key = utils.ReadFile(utils.PathJoin(self.sshdir, "id_rsa.pub"))
|
||||
self.assertTrue(pub_key is not None)
|
||||
self.assertEqual(utils.ReadFile(utils.PathJoin(self.sshdir,
|
||||
"authorized_keys")),
|
||||
@@ -1,45 +0,0 @@
|
||||
Fix compatibility with procps 4.
|
||||
|
||||
Negative UIDs are no longer allowed. Use a very high one instead.
|
||||
|
||||
Taken from upstream:
|
||||
|
||||
https://github.com/ganeti/ganeti/commit/9cd67e6a81c66ed326d68ea8c3241d14eea6550b
|
||||
|
||||
diff --git a/test/py/ganeti.uidpool_unittest.py b/test/py/ganeti.uidpool_unittest.py
|
||||
index b2f5bc5cf2..2d9227cbf5 100755
|
||||
--- a/test/py/ganeti.uidpool_unittest.py
|
||||
+++ b/test/py/ganeti.uidpool_unittest.py
|
||||
@@ -106,23 +106,24 @@ def testRequestUnusedUid(self):
|
||||
|
||||
# Check with a single, known unused user-id
|
||||
#
|
||||
- # We use "-1" here, which is not a valid user-id, so it's
|
||||
- # guaranteed that it's unused.
|
||||
- uid = uidpool.RequestUnusedUid(set([-1]))
|
||||
- self.assertEqualValues(uid.GetUid(), -1)
|
||||
+ # We use 2^30+42 here, which is a valid UID, but unlikely to be used on
|
||||
+ # most systems (even as a subuid).
|
||||
+ free_uid = 2**30 + 42
|
||||
+ uid = uidpool.RequestUnusedUid(set([free_uid]))
|
||||
+ self.assertEqualValues(uid.GetUid(), free_uid)
|
||||
|
||||
# Check uid-pool exhaustion
|
||||
#
|
||||
- # uid "-1" is locked now, so RequestUnusedUid is expected to fail
|
||||
+ # free_uid is locked now, so RequestUnusedUid is expected to fail
|
||||
self.assertRaises(errors.LockError,
|
||||
uidpool.RequestUnusedUid,
|
||||
- set([-1]))
|
||||
+ set([free_uid]))
|
||||
|
||||
# Check unlocking
|
||||
uid.Unlock()
|
||||
# After unlocking, "-1" should be available again
|
||||
- uid = uidpool.RequestUnusedUid(set([-1]))
|
||||
- self.assertEqualValues(uid.GetUid(), -1)
|
||||
+ uid = uidpool.RequestUnusedUid(set([free_uid]))
|
||||
+ self.assertEqualValues(uid.GetUid(), free_uid)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
@@ -1,41 +0,0 @@
|
||||
Add Loader argument to 'yaml.load' invocations as required by PyYAML 6.0.
|
||||
|
||||
Submitted upstream:
|
||||
|
||||
https://github.com/ganeti/ganeti/pull/1668
|
||||
|
||||
diff --git a/qa/qa_utils.py b/qa/qa_utils.py
|
||||
index da485df48..27428e685 100644
|
||||
--- a/qa/qa_utils.py
|
||||
+++ b/qa/qa_utils.py
|
||||
@@ -450,7 +450,7 @@ def GetObjectInfo(infocmd):
|
||||
master = qa_config.GetMasterNode()
|
||||
cmdline = utils.ShellQuoteArgs(infocmd)
|
||||
info_out = GetCommandOutput(master.primary, cmdline)
|
||||
- return yaml.load(info_out)
|
||||
+ return yaml.load(info_out, Loader=yaml.SafeLoader)
|
||||
|
||||
|
||||
def UploadFile(node, src):
|
||||
diff --git a/test/py/ganeti.cli_unittest.py b/test/py/ganeti.cli_unittest.py
|
||||
index 9cc980afa..242aac9fd 100755
|
||||
--- a/test/py/ganeti.cli_unittest.py
|
||||
+++ b/test/py/ganeti.cli_unittest.py
|
||||
@@ -1141,14 +1141,15 @@ class TestFormatPolicyInfo(unittest.TestCase):
|
||||
self._RenameDictItem(minmax, key, keyparts[0])
|
||||
self.assertTrue(constants.IPOLICY_DTS in parsed)
|
||||
parsed[constants.IPOLICY_DTS] = yaml.load("[%s]" %
|
||||
- parsed[constants.IPOLICY_DTS])
|
||||
+ parsed[constants.IPOLICY_DTS],
|
||||
+ Loader=yaml.SafeLoader)
|
||||
|
||||
@staticmethod
|
||||
def _PrintAndParsePolicy(custom, effective, iscluster):
|
||||
formatted = cli.FormatPolicyInfo(custom, effective, iscluster)
|
||||
buf = StringIO()
|
||||
cli._SerializeGenericInfo(buf, formatted, 0)
|
||||
- return yaml.load(buf.getvalue())
|
||||
+ return yaml.load(buf.getvalue(), Loader=yaml.SafeLoader)
|
||||
|
||||
def _PrintAndCheckParsed(self, policy):
|
||||
parsed = self._PrintAndParsePolicy(policy, NotImplemented, True)
|
||||
@@ -1,28 +0,0 @@
|
||||
Relax version constraints to work with Stackage LTS 19.
|
||||
|
||||
Taken from upstream:
|
||||
|
||||
https://github.com/ganeti/ganeti/commit/4f8d61ea0101721eae1c6f43be8430d819e5e611
|
||||
|
||||
diff --git a/cabal/ganeti.template.cabal b/cabal/ganeti.template.cabal
|
||||
index bb4ff8053..98491dd9f 100644
|
||||
--- a/cabal/ganeti.template.cabal
|
||||
+++ b/cabal/ganeti.template.cabal
|
||||
@@ -63,14 +63,14 @@ library
|
||||
, unix >= 2.5.1.0
|
||||
, utf8-string >= 0.3.7
|
||||
|
||||
- , attoparsec >= 0.10.1.1 && < 0.14
|
||||
- , base64-bytestring >= 1.0.0.1 && < 1.2
|
||||
+ , attoparsec >= 0.10.1.1 && < 0.15
|
||||
+ , base64-bytestring >= 1.0.0.1 && < 1.3
|
||||
, case-insensitive >= 0.4.0.1 && < 1.3
|
||||
, curl >= 1.3.7 && < 1.4
|
||||
, hinotify >= 0.3.2 && < 0.5
|
||||
, hslogger >= 1.1.4 && < 1.4
|
||||
, json >= 0.5 && < 1.0
|
||||
- , lens >= 3.10 && < 5.0
|
||||
+ , lens >= 3.10 && < 6.0
|
||||
, lifted-base >= 0.2.0.3 && < 0.3
|
||||
, monad-control >= 0.3.1.3 && < 1.1
|
||||
, parallel >= 3.2.0.2 && < 3.3
|
||||
@@ -1,90 +0,0 @@
|
||||
Fix ordering of Arbitrary definitions for GHC 9 compatibility.
|
||||
|
||||
Taken from upstream:
|
||||
|
||||
https://github.com/ganeti/ganeti/commit/feab8faa8fe055c89205497e4f277ae4c7b8caad
|
||||
|
||||
diff --git a/test/hs/Test/Ganeti/Objects.hs b/test/hs/Test/Ganeti/Objects.hs
|
||||
index 97ceb36dca..8d80be9e80 100644
|
||||
--- a/test/hs/Test/Ganeti/Objects.hs
|
||||
+++ b/test/hs/Test/Ganeti/Objects.hs
|
||||
@@ -93,8 +93,14 @@ instance Arbitrary (Container DataCollectorConfig) where
|
||||
instance Arbitrary BS.ByteString where
|
||||
arbitrary = genPrintableByteString
|
||||
|
||||
+instance Arbitrary a => Arbitrary (Private a) where
|
||||
+ arbitrary = Private <$> arbitrary
|
||||
+
|
||||
$(genArbitrary ''PartialNDParams)
|
||||
|
||||
+instance Arbitrary (Container J.JSValue) where
|
||||
+ arbitrary = return $ GenericContainer Map.empty
|
||||
+
|
||||
instance Arbitrary Node where
|
||||
arbitrary = Node <$> genFQDN <*> genFQDN <*> genFQDN
|
||||
<*> arbitrary <*> arbitrary <*> arbitrary <*> genFQDN
|
||||
@@ -297,10 +303,6 @@ genDisk = genDiskWithChildren 3
|
||||
-- validation rules.
|
||||
$(genArbitrary ''PartialISpecParams)
|
||||
|
||||
--- | FIXME: This generates completely random data, without normal
|
||||
--- validation rules.
|
||||
-$(genArbitrary ''PartialIPolicy)
|
||||
-
|
||||
$(genArbitrary ''FilledISpecParams)
|
||||
$(genArbitrary ''MinMaxISpecs)
|
||||
$(genArbitrary ''FilledIPolicy)
|
||||
@@ -309,6 +311,10 @@ $(genArbitrary ''FilledNDParams)
|
||||
$(genArbitrary ''FilledNicParams)
|
||||
$(genArbitrary ''FilledBeParams)
|
||||
|
||||
+-- | FIXME: This generates completely random data, without normal
|
||||
+-- validation rules.
|
||||
+$(genArbitrary ''PartialIPolicy)
|
||||
+
|
||||
-- | No real arbitrary instance for 'ClusterHvParams' yet.
|
||||
instance Arbitrary ClusterHvParams where
|
||||
arbitrary = return $ GenericContainer Map.empty
|
||||
@@ -331,18 +337,12 @@ instance Arbitrary OsParams where
|
||||
instance Arbitrary Objects.ClusterOsParamsPrivate where
|
||||
arbitrary = (GenericContainer . Map.fromList) <$> arbitrary
|
||||
|
||||
-instance Arbitrary a => Arbitrary (Private a) where
|
||||
- arbitrary = Private <$> arbitrary
|
||||
-
|
||||
instance Arbitrary ClusterOsParams where
|
||||
arbitrary = (GenericContainer . Map.fromList) <$> arbitrary
|
||||
|
||||
instance Arbitrary ClusterBeParams where
|
||||
arbitrary = (GenericContainer . Map.fromList) <$> arbitrary
|
||||
|
||||
-instance Arbitrary IAllocatorParams where
|
||||
- arbitrary = return $ GenericContainer Map.empty
|
||||
-
|
||||
$(genArbitrary ''Cluster)
|
||||
|
||||
instance Arbitrary ConfigData where
|
||||
diff --git a/test/hs/Test/Ganeti/Query/Language.hs b/test/hs/Test/Ganeti/Query/Language.hs
|
||||
index 04fb8c3898..fa50196f00 100644
|
||||
--- a/test/hs/Test/Ganeti/Query/Language.hs
|
||||
+++ b/test/hs/Test/Ganeti/Query/Language.hs
|
||||
@@ -59,6 +59,9 @@ import Ganeti.Query.Language
|
||||
instance Arbitrary (Filter FilterField) where
|
||||
arbitrary = genFilter
|
||||
|
||||
+instance Arbitrary FilterRegex where
|
||||
+ arbitrary = genName >>= mkRegex -- a name should be a good regex
|
||||
+
|
||||
-- | Custom 'Filter' generator (top-level), which enforces a
|
||||
-- (sane) limit on the depth of the generated filters.
|
||||
genFilter :: Gen (Filter FilterField)
|
||||
@@ -97,9 +100,6 @@ $(genArbitrary ''QueryTypeLuxi)
|
||||
|
||||
$(genArbitrary ''ItemType)
|
||||
|
||||
-instance Arbitrary FilterRegex where
|
||||
- arbitrary = genName >>= mkRegex -- a name should be a good regex
|
||||
-
|
||||
$(genArbitrary ''ResultStatus)
|
||||
|
||||
$(genArbitrary ''FieldType)
|
||||
@@ -1,12 +0,0 @@
|
||||
diff --git a/lib/build/sphinx_ext.py b/lib/build/sphinx_ext.py
|
||||
index ca8b8216e..017f52343 100644
|
||||
--- a/lib/build/sphinx_ext.py
|
||||
+++ b/lib/build/sphinx_ext.py
|
||||
@@ -45,7 +45,6 @@ import docutils.parsers.rst
|
||||
from docutils.parsers.rst import Directive
|
||||
|
||||
import sphinx.errors
|
||||
-import sphinx.util.compat
|
||||
import sphinx.roles
|
||||
import sphinx.addnodes
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
Handle GHC 9 changes in a backwards compatible manner.
|
||||
|
||||
Taken from upstream:
|
||||
|
||||
https://github.com/ganeti/ganeti/commit/b279fa738fd5b30320584f79f4d2f0e894315aab
|
||||
|
||||
diff --git a/src/Ganeti/THH.hs b/src/Ganeti/THH.hs
|
||||
index 818c11f84..9ab93d5e3 100644
|
||||
--- a/src/Ganeti/THH.hs
|
||||
+++ b/src/Ganeti/THH.hs
|
||||
@@ -884,7 +884,7 @@ genLoadOpCode opdefs fn = do
|
||||
) $ zip mexps opdefs
|
||||
defmatch = Match WildP (NormalB fails) []
|
||||
cst = NoBindS $ CaseE (VarE opid) $ mpats++[defmatch]
|
||||
- body = DoE [st, cst]
|
||||
+ body = mkDoE [st, cst]
|
||||
-- include "OP_ID" to the list of used keys
|
||||
bodyAndOpId <- [| $(return body)
|
||||
<* tell (mkUsedKeys . S.singleton . T.pack $ opidKey) |]
|
||||
@@ -1541,7 +1541,7 @@ loadExcConstructor inname sname fields = do
|
||||
[x] -> BindS (ListP [VarP x])
|
||||
_ -> BindS (TupP (map VarP f_names))
|
||||
cval = appCons name $ map VarE f_names
|
||||
- return $ DoE [binds read_args, NoBindS (AppE (VarE 'return) cval)]
|
||||
+ return $ mkDoE [binds read_args, NoBindS (AppE (VarE 'return) cval)]
|
||||
|
||||
{-| Generates the loadException function.
|
||||
|
||||
diff --git a/src/Ganeti/THH/Compat.hs b/src/Ganeti/THH/Compat.hs
|
||||
index d29e30d18..1f51e49d7 100644
|
||||
--- a/src/Ganeti/THH/Compat.hs
|
||||
+++ b/src/Ganeti/THH/Compat.hs
|
||||
@@ -40,9 +40,11 @@ module Ganeti.THH.Compat
|
||||
, extractDataDConstructors
|
||||
, myNotStrict
|
||||
, nonUnaryTupE
|
||||
+ , mkDoE
|
||||
) where
|
||||
|
||||
import Language.Haskell.TH
|
||||
+import Language.Haskell.TH.Syntax
|
||||
|
||||
-- | Convert Names to DerivClauses
|
||||
--
|
||||
@@ -61,7 +63,11 @@ derivesFromNames names = map ConT names
|
||||
--
|
||||
-- Handle TH 2.11 and 2.12 changes in a transparent manner using the pre-2.11
|
||||
-- API.
|
||||
+#if MIN_VERSION_template_haskell(2,17,0)
|
||||
+gntDataD :: Cxt -> Name -> [TyVarBndr ()] -> [Con] -> [Name] -> Dec
|
||||
+#else
|
||||
gntDataD :: Cxt -> Name -> [TyVarBndr] -> [Con] -> [Name] -> Dec
|
||||
+#endif
|
||||
gntDataD x y z a b =
|
||||
#if MIN_VERSION_template_haskell(2,12,0)
|
||||
DataD x y z Nothing a $ derivesFromNames b
|
||||
@@ -114,3 +120,12 @@ nonUnaryTupE es = TupE $ map Just es
|
||||
#else
|
||||
nonUnaryTupE es = TupE $ es
|
||||
#endif
|
||||
+
|
||||
+-- | DoE is now qualified with an optional ModName
|
||||
+mkDoE :: [Stmt] -> Exp
|
||||
+mkDoE s =
|
||||
+#if MIN_VERSION_template_haskell(2,17,0)
|
||||
+ DoE Nothing s
|
||||
+#else
|
||||
+ DoE s
|
||||
+#endif
|
||||
@@ -1,179 +0,0 @@
|
||||
Fix compatibility with Template Haskell 2.18 and GHC 9.2.
|
||||
|
||||
|
||||
diff --git a/src/Ganeti/BasicTypes.hs b/src/Ganeti/BasicTypes.hs
|
||||
index 10d0426cd..d68bc7d5b 100644
|
||||
--- a/src/Ganeti/BasicTypes.hs
|
||||
+++ b/src/Ganeti/BasicTypes.hs
|
||||
@@ -206,12 +206,12 @@ instance MonadTrans (ResultT a) where
|
||||
instance (MonadIO m, Error a) => MonadIO (ResultT a m) where
|
||||
liftIO = ResultT . liftIO
|
||||
. liftM (either (failError . show) return)
|
||||
- . (try :: IO a -> IO (Either IOError a))
|
||||
+ . (try :: IO α -> IO (Either IOError α))
|
||||
|
||||
instance (MonadBase IO m, Error a) => MonadBase IO (ResultT a m) where
|
||||
liftBase = ResultT . liftBase
|
||||
. liftM (either (failError . show) return)
|
||||
- . (try :: IO a -> IO (Either IOError a))
|
||||
+ . (try :: IO α -> IO (Either IOError α))
|
||||
|
||||
instance (Error a) => MonadTransControl (ResultT a) where
|
||||
#if MIN_VERSION_monad_control(1,0,0)
|
||||
diff --git a/src/Ganeti/Lens.hs b/src/Ganeti/Lens.hs
|
||||
index faa5900ed..747366e6a 100644
|
||||
--- a/src/Ganeti/Lens.hs
|
||||
+++ b/src/Ganeti/Lens.hs
|
||||
@@ -93,14 +93,14 @@ makeCustomLenses' name lst = makeCustomLensesFiltered f name
|
||||
-- Most often the @g@ functor is @(,) r@ and 'traverseOf2' is used to
|
||||
-- traverse an effectful computation that also returns an additional output
|
||||
-- value.
|
||||
-traverseOf2 :: Over (->) (Compose f g) s t a b
|
||||
- -> (a -> f (g b)) -> s -> f (g t)
|
||||
+-- traverseOf2 :: Over (->) (Compose f g) s t a b
|
||||
+-- -> (a -> f (g b)) -> s -> f (g t)
|
||||
traverseOf2 k f = getCompose . traverseOf k (Compose . f)
|
||||
|
||||
-- | Traverses over a composition of a monad and a functor.
|
||||
-- See 'traverseOf2'.
|
||||
-mapMOf2 :: Over (->) (Compose (WrappedMonad m) g) s t a b
|
||||
- -> (a -> m (g b)) -> s -> m (g t)
|
||||
+-- mapMOf2 :: Over (->) (Compose (WrappedMonad m) g) s t a b
|
||||
+-- -> (a -> m (g b)) -> s -> m (g t)
|
||||
mapMOf2 k f = unwrapMonad . traverseOf2 k (WrapMonad . f)
|
||||
|
||||
-- | A helper lens over sets.
|
||||
diff --git a/src/Ganeti/THH.hs b/src/Ganeti/THH.hs
|
||||
index 9ab93d5e3..9a10a9a07 100644
|
||||
--- a/src/Ganeti/THH.hs
|
||||
+++ b/src/Ganeti/THH.hs
|
||||
@@ -996,8 +996,8 @@ buildAccessor fnm fpfx rnm rpfx nm pfx field = do
|
||||
f_body = AppE (VarE fpfx_name) $ VarE x
|
||||
return $ [ SigD pfx_name $ ArrowT `AppT` ConT nm `AppT` ftype
|
||||
, FunD pfx_name
|
||||
- [ Clause [ConP rnm [VarP x]] (NormalB r_body) []
|
||||
- , Clause [ConP fnm [VarP x]] (NormalB f_body) []
|
||||
+ [ Clause [myConP rnm [VarP x]] (NormalB r_body) []
|
||||
+ , Clause [myConP fnm [VarP x]] (NormalB f_body) []
|
||||
]]
|
||||
|
||||
-- | Build lense declartions for a field.
|
||||
@@ -1037,10 +1037,10 @@ buildLens (fnm, fdnm) (rnm, rdnm) nm pfx ar (field, i) = do
|
||||
(ConE cdn)
|
||||
$ zip [0..] vars
|
||||
let setterE = LamE [VarP context, VarP var] $ CaseE (VarE context)
|
||||
- [ Match (ConP fnm [ConP fdnm . set (element i) WildP
|
||||
+ [ Match (myConP fnm [myConP fdnm . set (element i) WildP
|
||||
$ map VarP vars])
|
||||
(body (not isSimple) fnm fdnm) []
|
||||
- , Match (ConP rnm [ConP rdnm . set (element i) WildP
|
||||
+ , Match (myConP rnm [myConP rdnm . set (element i) WildP
|
||||
$ map VarP vars])
|
||||
(body False rnm rdnm) []
|
||||
]
|
||||
@@ -1098,9 +1098,9 @@ buildObjectWithForthcoming sname field_pfx fields = do
|
||||
$ JSON.showJSON $(varE x) |]
|
||||
let rdjson = FunD 'JSON.readJSON [Clause [] (NormalB read_body) []]
|
||||
shjson = FunD 'JSON.showJSON
|
||||
- [ Clause [ConP (mkName real_nm) [VarP x]]
|
||||
+ [ Clause [myConP (mkName real_nm) [VarP x]]
|
||||
(NormalB show_real_body) []
|
||||
- , Clause [ConP (mkName forth_nm) [VarP x]]
|
||||
+ , Clause [myConP (mkName forth_nm) [VarP x]]
|
||||
(NormalB show_forth_body) []
|
||||
]
|
||||
instJSONdecl = gntInstanceD [] (AppT (ConT ''JSON.JSON) (ConT name))
|
||||
@@ -1121,9 +1121,9 @@ buildObjectWithForthcoming sname field_pfx fields = do
|
||||
(fromDictWKeys $(varE xs)) |]
|
||||
todictx_r <- [| toDict $(varE x) |]
|
||||
todictx_f <- [| ("forthcoming", JSON.JSBool True) : toDict $(varE x) |]
|
||||
- let todict = FunD 'toDict [ Clause [ConP (mkName real_nm) [VarP x]]
|
||||
+ let todict = FunD 'toDict [ Clause [myConP (mkName real_nm) [VarP x]]
|
||||
(NormalB todictx_r) []
|
||||
- , Clause [ConP (mkName forth_nm) [VarP x]]
|
||||
+ , Clause [myConP (mkName forth_nm) [VarP x]]
|
||||
(NormalB todictx_f) []
|
||||
]
|
||||
fromdict = FunD 'fromDictWKeys [ Clause [VarP xs]
|
||||
@@ -1136,9 +1136,9 @@ buildObjectWithForthcoming sname field_pfx fields = do
|
||||
let forthPredDecls = [ SigD forthPredName
|
||||
$ ArrowT `AppT` ConT name `AppT` ConT ''Bool
|
||||
, FunD forthPredName
|
||||
- [ Clause [ConP (mkName real_nm) [WildP]]
|
||||
+ [ Clause [myConP (mkName real_nm) [WildP]]
|
||||
(NormalB $ ConE 'False) []
|
||||
- , Clause [ConP (mkName forth_nm) [WildP]]
|
||||
+ , Clause [myConP (mkName forth_nm) [WildP]]
|
||||
(NormalB $ ConE 'True) []
|
||||
]
|
||||
]
|
||||
@@ -1412,9 +1412,9 @@ savePParamField fvar field = do
|
||||
normalexpr <- saveObjectField actualVal field
|
||||
-- we have to construct the block here manually, because we can't
|
||||
-- splice-in-splice
|
||||
- return $ CaseE (VarE fvar) [ Match (ConP 'Nothing [])
|
||||
+ return $ CaseE (VarE fvar) [ Match (myConP 'Nothing [])
|
||||
(NormalB (ConE '[])) []
|
||||
- , Match (ConP 'Just [VarP actualVal])
|
||||
+ , Match (myConP 'Just [VarP actualVal])
|
||||
(NormalB normalexpr) []
|
||||
]
|
||||
|
||||
@@ -1440,9 +1440,9 @@ fillParam sname field_pfx fields = do
|
||||
-- due to apparent bugs in some older GHC versions, we need to add these
|
||||
-- prefixes to avoid "binding shadows ..." errors
|
||||
fbinds <- mapM (newName . ("f_" ++) . nameBase) fnames
|
||||
- let fConP = ConP name_f (map VarP fbinds)
|
||||
+ let fConP = myConP name_f (map VarP fbinds)
|
||||
pbinds <- mapM (newName . ("p_" ++) . nameBase) pnames
|
||||
- let pConP = ConP name_p (map VarP pbinds)
|
||||
+ let pConP = myConP name_p (map VarP pbinds)
|
||||
-- PartialParams instance --------
|
||||
-- fillParams
|
||||
let fromMaybeExp fn pn = AppE (AppE (VarE 'fromMaybe) (VarE fn)) (VarE pn)
|
||||
@@ -1462,7 +1462,7 @@ fillParam sname field_pfx fields = do
|
||||
memptyClause = Clause [] (NormalB memptyExp) []
|
||||
-- mappend
|
||||
pbinds2 <- mapM (newName . ("p2_" ++) . nameBase) pnames
|
||||
- let pConP2 = ConP name_p (map VarP pbinds2)
|
||||
+ let pConP2 = myConP name_p (map VarP pbinds2)
|
||||
-- note the reversal of 'l' and 'r' in the call to <|>
|
||||
-- as we want the result to be the rightmost value
|
||||
let altExp = zipWith (\l r -> AppE (AppE (VarE '(<|>)) (VarE r)) (VarE l))
|
||||
@@ -1575,9 +1575,9 @@ genLoadExc tname sname opdefs = do
|
||||
opdefs
|
||||
-- the first function clause; we can't use [| |] due to TH
|
||||
-- limitations, so we have to build the AST by hand
|
||||
- let clause1 = Clause [ConP 'JSON.JSArray
|
||||
- [ListP [ConP 'JSON.JSString [VarP exc_name],
|
||||
- VarP exc_args]]]
|
||||
+ let clause1 = Clause [myConP 'JSON.JSArray
|
||||
+ [ListP [myConP 'JSON.JSString [VarP exc_name],
|
||||
+ VarP exc_args]]]
|
||||
(NormalB (CaseE (AppE (VarE 'JSON.fromJSString)
|
||||
(VarE exc_name))
|
||||
(str_matches ++ [defmatch]))) []
|
||||
diff --git a/src/Ganeti/THH/Compat.hs b/src/Ganeti/THH/Compat.hs
|
||||
index 1f51e49d7..9b07c47ef 100644
|
||||
--- a/src/Ganeti/THH/Compat.hs
|
||||
+++ b/src/Ganeti/THH/Compat.hs
|
||||
@@ -41,6 +41,7 @@ module Ganeti.THH.Compat
|
||||
, myNotStrict
|
||||
, nonUnaryTupE
|
||||
, mkDoE
|
||||
+ , myConP
|
||||
) where
|
||||
|
||||
import Language.Haskell.TH
|
||||
@@ -129,3 +130,11 @@ mkDoE s =
|
||||
#else
|
||||
DoE s
|
||||
#endif
|
||||
+
|
||||
+-- | ConP is now qualified with an optional [Type].
|
||||
+myConP :: Name -> [Pat] -> Pat
|
||||
+myConP n patterns = ConP n
|
||||
+#if MIN_VERSION_template_haskell(2,18,0)
|
||||
+ []
|
||||
+#endif
|
||||
+ patterns
|
||||
+58
-43
@@ -2726,59 +2726,51 @@ choice. Supported launchers are: dmenu, fuzzel, rofi, walker and custom.")
|
||||
(define-public py-spy
|
||||
(package
|
||||
(name "py-spy")
|
||||
(version "0.4.0")
|
||||
(version "0.4.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "py-spy" version))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "0fvdmrqp4qand1zb9cwks8hpkysdqajrdh9y7ks15c78985k1x64"))))
|
||||
(base32 "15vccm4q0lqgpq0q9vrzriz58dcrxj2bqf9ac9s4n2bvdxy5f0va"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:install-source? #f
|
||||
#:modules
|
||||
'((guix build cargo-build-system)
|
||||
(guix build utils)
|
||||
(ice-9 match))
|
||||
#:cargo-test-flags
|
||||
;; python-numpy isn't in the build environment
|
||||
''("--" "--skip=test_local_vars")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'install 'install-shell-completions
|
||||
(lambda* (#:key native-inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(share (string-append out "/share"))
|
||||
(bash-completions-dir
|
||||
(string-append out "/share/bash-completion/completions"))
|
||||
(zsh-completions-dir
|
||||
(string-append share "/zsh/site-functions"))
|
||||
(fish-completions-dir
|
||||
(string-append share "/fish/vendor_completions.d"))
|
||||
(elvish-completions-dir
|
||||
(string-append share "/elvish/lib"))
|
||||
(py-spy (if #$(%current-target-system)
|
||||
(search-input-file native-inputs "/bin/py-spy")
|
||||
(string-append out "/bin/py-spy"))))
|
||||
(for-each mkdir-p
|
||||
(list bash-completions-dir
|
||||
zsh-completions-dir
|
||||
fish-completions-dir
|
||||
elvish-completions-dir))
|
||||
(with-output-to-file
|
||||
(string-append bash-completions-dir "/py-spy")
|
||||
(lambda _ (invoke py-spy "completions" "bash")))
|
||||
(with-output-to-file
|
||||
(string-append zsh-completions-dir "/_py-spy")
|
||||
(lambda _ (invoke py-spy "completions" "zsh")))
|
||||
(with-output-to-file
|
||||
(string-append fish-completions-dir "/py-spy.fish")
|
||||
(lambda _ (invoke py-spy "completions" "fish")))
|
||||
(with-output-to-file
|
||||
(string-append elvish-completions-dir "/py-spy")
|
||||
(lambda _ (invoke py-spy "completions" "elvish")))))))))
|
||||
(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/py-spy")
|
||||
(in-vicinity #$output "bin/py-spy"))))
|
||||
(with-output-to-file (in-vicinity #$output path)
|
||||
(lambda _
|
||||
(invoke binary "completions" shell))))))
|
||||
'(("bash" . "share/bash-completion/completions/py-spy")
|
||||
("elvish" . "share/elvish/lib/py-spy")
|
||||
("fish" . "share/fish/vendor_completions.d/py-spy.fish")
|
||||
("zsh" . "share/zsh/site-functions/_py-spy"))))))))
|
||||
(native-inputs
|
||||
(append
|
||||
(if (%current-target-system)
|
||||
(list this-package)
|
||||
'())
|
||||
(list python-minimal-wrapper)))
|
||||
(inputs (cons libunwind (cargo-inputs 'py-spy)))
|
||||
(inputs (cargo-inputs 'py-spy))
|
||||
(home-page "https://github.com/benfred/py-spy")
|
||||
(synopsis "Sampling profiler for Python programs")
|
||||
(description
|
||||
@@ -3047,24 +3039,24 @@ browsers.")
|
||||
(define-public rust-cargo-edit
|
||||
(package
|
||||
(name "rust-cargo-edit")
|
||||
(version "0.13.2")
|
||||
(version "0.13.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "cargo-edit" version))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1y3pa7qdq2r13ya9qfiw0lb8xm0qbs6q64pj548q6c0hdcxw2mdm"))))
|
||||
"0m0bbrkk8lpliwji19cd7jxzgv7i7fcdimbv52icqyr9nl0xlnba"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
`(#:install-source? #f
|
||||
;; Not all files included.
|
||||
#:cargo-test-flags '("--" "--skip=::case")))
|
||||
(list #:install-source? #f
|
||||
;; Not all files included.
|
||||
#:cargo-test-flags ''("--" "--skip=::case")))
|
||||
(native-inputs
|
||||
(list pkg-config))
|
||||
(inputs
|
||||
(cons* curl
|
||||
libgit2-1.8
|
||||
libgit2-1.9
|
||||
libssh2
|
||||
openssl
|
||||
zlib
|
||||
@@ -3115,18 +3107,41 @@ rebase.")
|
||||
(define-public pastel
|
||||
(package
|
||||
(name "pastel")
|
||||
(version "0.10.0")
|
||||
(version "0.12.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "pastel" version))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1mwy4nx3jn74sr1q8ap98faja5wp7hz51yqga8l050xz645kb8wj"))))
|
||||
(base32 "0rcvas6xcjdl9whhjzbvj3pmr7q86masn5vnvc2bmn1c3788mh30"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:install-source? #f))
|
||||
#:install-source? #f
|
||||
#:imported-modules (append %copy-build-system-modules
|
||||
%cargo-build-system-modules)
|
||||
#:modules '((guix build cargo-build-system)
|
||||
((guix build copy-build-system) #:prefix copy:)
|
||||
(guix build utils))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-before 'build 'pre-build
|
||||
(lambda _
|
||||
(setenv "SHELL_COMPLETIONS_DIR" "target")))
|
||||
(add-after 'install 'install-extras
|
||||
(lambda args
|
||||
(apply (assoc-ref copy:%standard-phases 'install)
|
||||
#:install-plan
|
||||
'(("target/pastel.bash"
|
||||
"share/bash-completion/completions/pastel")
|
||||
("target/pastel.fish"
|
||||
"share/fish/vendor_completions.d/")
|
||||
("target/_pastel"
|
||||
"share/zsh/site-functions/")
|
||||
("target/" "share/man/man1/"
|
||||
#:include-regexp ("\\.1$")))
|
||||
args))))))
|
||||
(inputs (cargo-inputs 'pastel))
|
||||
(home-page "https://github.com/sharkdp/pastel")
|
||||
(synopsis
|
||||
|
||||
+2588
-1323
File diff suppressed because it is too large
Load Diff
@@ -674,14 +674,14 @@ document and bibtex retrieval.")
|
||||
(define-public ugrep
|
||||
(package
|
||||
(name "ugrep")
|
||||
(version "7.8.0")
|
||||
(version "7.8.1")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/Genivia/ugrep")
|
||||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32 "0968cws0bvfgip7yh9vkhxfmr70dl1jr681yzgzhpn0xdv6iqg94"))
|
||||
(base32 "04vdvyf81881zqfvsyd4zwbgj9ian6grz55lcj4vbvmqk86anf90"))
|
||||
(file-name (git-file-name name version))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
|
||||
@@ -303,10 +303,11 @@ This Guix package is built to use the nettle cryptographic library.")
|
||||
|
||||
;;
|
||||
|
||||
;; This package follows the version of the sequoia-openpgp crate.
|
||||
(define-public sequoia
|
||||
(package
|
||||
(name "sequoia")
|
||||
(version "2.2.0")
|
||||
(version "2.3.0")
|
||||
(source #f)
|
||||
(build-system trivial-build-system)
|
||||
(arguments
|
||||
|
||||
@@ -71,14 +71,14 @@
|
||||
(define-public tor
|
||||
(package
|
||||
(name "tor")
|
||||
(version "0.4.9.6")
|
||||
(version "0.4.9.8")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://dist.torproject.org/tor-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"05vh1bcsr0gx2xwl7r94drmqlzp0dgag43dlajk6769f0nbvm6m8"))))
|
||||
"1ph5dpwz1dnrkzxxzbx67kz64rp8v788z4kxs9vhiayj5m73j7xc"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
(list #:configure-flags
|
||||
|
||||
+153
-189
@@ -835,36 +835,26 @@ firmware blobs. You can
|
||||
(define-public ganeti
|
||||
(package
|
||||
(name "ganeti")
|
||||
(version "3.0.2")
|
||||
(version "3.1.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/ganeti/ganeti")
|
||||
(commit (string-append "v" version))))
|
||||
(sha256
|
||||
(base32 "1xw7rm0k411aj0a4hrxz9drn7827bihp6bwizbapfx8k4c3125k4"))
|
||||
(base32 "19pqlxcdhqr4nfd94x4grmdppna52wvhkjspry972w0w6glnyf6l"))
|
||||
(file-name (git-file-name name version))
|
||||
(patches (search-patches "ganeti-shepherd-support.patch"
|
||||
"ganeti-shepherd-master-failover.patch"
|
||||
"ganeti-haskell-pythondir.patch"
|
||||
"ganeti-pyyaml-compat.patch"
|
||||
"ganeti-procps-compat.patch"
|
||||
"ganeti-disable-version-symlinks.patch"
|
||||
"ganeti-lens-compat.patch"
|
||||
"ganeti-openssh-test-fix.patch"
|
||||
"ganeti-template-haskell-2.17.patch"
|
||||
"ganeti-template-haskell-2.18.patch"
|
||||
"ganeti-reorder-arbitrary-definitions.patch"
|
||||
"ganeti-relax-dependencies.patch"
|
||||
"ganeti-sphinx-import.patch"))))
|
||||
"ganeti-lens-compat.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:imported-modules (,@%default-gnu-imported-modules
|
||||
(guix build haskell-build-system)
|
||||
(guix build python-build-system))
|
||||
#:modules (,@%default-gnu-modules
|
||||
((guix build haskell-build-system) #:prefix haskell:)
|
||||
((guix build python-build-system) #:select (site-packages))
|
||||
(list
|
||||
#:imported-modules %pyproject-build-system-modules
|
||||
#:modules `(,@%default-gnu-modules
|
||||
((guix build pyproject-build-system) #:select (site-packages))
|
||||
(srfi srfi-1)
|
||||
(srfi srfi-26)
|
||||
(ice-9 match)
|
||||
@@ -877,55 +867,55 @@ firmware blobs. You can
|
||||
#:test-target "check-TESTS"
|
||||
|
||||
#:configure-flags
|
||||
(list "--localstatedir=/var"
|
||||
"--sharedstatedir=/var"
|
||||
"--sysconfdir=/etc"
|
||||
"--enable-haskell-tests"
|
||||
#~(list "--localstatedir=/var"
|
||||
"--sharedstatedir=/var"
|
||||
"--sysconfdir=/etc"
|
||||
"--enable-haskell-tests"
|
||||
|
||||
;; By default, the build system installs everything to versioned
|
||||
;; directories such as $libdir/3.0 and relies on a $libdir/default
|
||||
;; symlink pointed from /etc/ganeti/{lib,share} to actually function.
|
||||
;; This is done to accommodate installing multiple versions in
|
||||
;; parallel, but is of little use to us as Guix users can just
|
||||
;; roll back and forth. Thus, disable it for simplicity.
|
||||
"--disable-version-links"
|
||||
;; By default, the build system installs everything to versioned
|
||||
;; directories such as $libdir/3.0 and relies on a $libdir/default
|
||||
;; symlink pointed from /etc/ganeti/{lib,share} to actually function.
|
||||
;; This is done to accommodate installing multiple versions in
|
||||
;; parallel, but is of little use to us as Guix users can just
|
||||
;; roll back and forth. Thus, disable it for simplicity.
|
||||
"--disable-version-links"
|
||||
|
||||
;; Ganeti can optionally take control over SSH host keys and
|
||||
;; distribute them to nodes as they are added, and also rotate keys
|
||||
;; with 'gnt-cluster renew-crypto --new-ssh-keys'. Thus it needs to
|
||||
;; know how to restart the SSH daemon.
|
||||
"--with-sshd-restart-command='herd restart ssh-daemon'"
|
||||
;; Ganeti can optionally take control over SSH host keys and
|
||||
;; distribute them to nodes as they are added, and also rotate keys
|
||||
;; with 'gnt-cluster renew-crypto --new-ssh-keys'. Thus it needs to
|
||||
;; know how to restart the SSH daemon.
|
||||
"--with-sshd-restart-command='herd restart ssh-daemon'"
|
||||
|
||||
;; Look for OS definitions in this directory by default. It can
|
||||
;; be changed in the cluster configuration.
|
||||
"--with-os-search-path=/run/current-system/profile/share/ganeti/os"
|
||||
;; Look for OS definitions in this directory by default. It can
|
||||
;; be changed in the cluster configuration.
|
||||
"--with-os-search-path=/run/current-system/profile/share/ganeti/os"
|
||||
|
||||
;; The default QEMU executable to use. We don't use the package
|
||||
;; here because this entry is stored in the cluster configuration.
|
||||
(string-append "--with-kvm-path=/run/current-system/profile/bin/"
|
||||
,(system->qemu-target (%current-system))))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'create-vcs-version
|
||||
(lambda _
|
||||
;; If we are building from a git checkout, we need to create a
|
||||
;; 'vcs-version' file manually because the build system does
|
||||
;; not have access to the git repository information.
|
||||
(unless (file-exists? "vcs-version")
|
||||
(call-with-output-file "vcs-version"
|
||||
(lambda (port)
|
||||
(format port "v~a~%" ,version))))))
|
||||
(add-after 'unpack 'patch-absolute-file-names
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* '("lib/utils/process.py"
|
||||
"lib/utils/text.py"
|
||||
"src/Ganeti/Constants.hs"
|
||||
"src/Ganeti/HTools/CLI.hs"
|
||||
"test/py/ganeti.config_unittest.py"
|
||||
"test/py/ganeti.hooks_unittest.py"
|
||||
"test/py/ganeti.utils.process_unittest.py"
|
||||
"test/py/ganeti.utils.text_unittest.py"
|
||||
"test/py/ganeti.utils.wrapper_unittest.py")
|
||||
;; The default QEMU executable to use. We don't use the package
|
||||
;; here because this entry is stored in the cluster configuration.
|
||||
(string-append
|
||||
"--with-kvm-path=/run/current-system/profile/bin/"
|
||||
#$(system->qemu-target (%current-system))))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'unpack 'create-vcs-version
|
||||
(lambda _
|
||||
;; If we are building from a git checkout, we need to create a
|
||||
;; 'vcs-version' file manually because the build system does
|
||||
;; not have access to the git repository information.
|
||||
(unless (file-exists? "vcs-version")
|
||||
(call-with-output-file "vcs-version"
|
||||
(cut format <> "v~a~%" #$version)))))
|
||||
(add-after 'unpack 'patch-absolute-file-names
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(substitute* '("lib/utils/process.py"
|
||||
"lib/utils/text.py"
|
||||
"src/Ganeti/Constants.hs"
|
||||
"src/Ganeti/HTools/CLI.hs"
|
||||
"test/py/legacy/ganeti.config_unittest.py"
|
||||
"test/py/legacy/ganeti.hooks_unittest.py"
|
||||
"test/py/legacy/ganeti.utils.process_unittest.py"
|
||||
"test/py/legacy/ganeti.utils.text_unittest.py"
|
||||
"test/py/legacy/ganeti.utils.wrapper_unittest.py")
|
||||
(("/bin/sh") (search-input-file inputs "/bin/sh"))
|
||||
(("/bin/bash") (search-input-file inputs "/bin/bash"))
|
||||
(("/usr/bin/env") (search-input-file inputs "/bin/env"))
|
||||
@@ -959,76 +949,50 @@ firmware blobs. You can
|
||||
(("\\$SPHINX --version 2>&1")
|
||||
"$SPHINX --version 2>&1 \
|
||||
| sed 's/.sphinx-build-real/sphinx-build/g'"))))
|
||||
|
||||
;; The build system invokes Cabal and GHC, which do not work with
|
||||
;; GHC_PACKAGE_PATH: <https://github.com/haskell/cabal/issues/3728>.
|
||||
;; Tweak the build system to do roughly what haskell-build-system does.
|
||||
(add-before 'configure 'configure-haskell
|
||||
(assoc-ref haskell:%standard-phases 'setup-compiler))
|
||||
(add-after 'configure 'do-not-use-GHC_PACKAGE_PATH
|
||||
(lambda _
|
||||
(unsetenv "GHC_PACKAGE_PATH")
|
||||
(substitute* "Makefile"
|
||||
(("\\$\\(CABAL\\)")
|
||||
"$(CABAL) --package-db=../package.conf.d")
|
||||
(("\\$\\(GHC\\)")
|
||||
"$(GHC) -package-db=../package.conf.d"))))
|
||||
(add-after 'configure 'make-ghc-use-shared-libraries
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(add-after 'configure 'make-ghc-use-shared-libraries
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("HFLAGS =") "HFLAGS = -dynamic -fPIC"))))
|
||||
(add-after 'configure 'fix-installation-directories
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
;; Do not attempt to create /var during install.
|
||||
(("\\$\\(DESTDIR\\)\\$\\{localstatedir\\}")
|
||||
"$(DESTDIR)${prefix}${localstatedir}")
|
||||
;; Similarly, do not attempt to install the sample ifup scripts
|
||||
;; to /etc/ganeti.
|
||||
(("\\$\\(DESTDIR\\)\\$\\(ifupdir\\)")
|
||||
"$(DESTDIR)${prefix}$(ifupdir)"))))
|
||||
(add-before 'build 'adjust-tests
|
||||
(lambda _
|
||||
;; Disable tests that can not run. Do it early to prevent
|
||||
;; touching the Makefile later and triggering a needless rebuild.
|
||||
(substitute* "Makefile"
|
||||
;; These tests expect the presence of a 'root' user (via
|
||||
;; ganeti/runtime.py), which fails in the build environment.
|
||||
(("test/py/ganeti\\.asyncnotifier_unittest\\.py") "")
|
||||
(("test/py/ganeti\\.backend_unittest\\.py") "")
|
||||
(("test/py/ganeti\\.daemon_unittest\\.py") "")
|
||||
(("test/py/ganeti\\.hypervisor\\.hv_kvm_unittest\\.py") "")
|
||||
(("test/py/ganeti\\.tools\\.ensure_dirs_unittest\\.py") "")
|
||||
(("test/py/ganeti\\.utils\\.io_unittest-runasroot\\.py") "")
|
||||
;; Tracked at: https://github.com/ganeti/ganeti/issues/1752
|
||||
(("test/py/ganeti\\.ssh_unittest\\.py") "")
|
||||
;; Disable the bash_completion test, as it requires the full
|
||||
;; bash instead of bash-minimal.
|
||||
(("test/py/bash_completion\\.bash")
|
||||
"")
|
||||
;; This test requires networking.
|
||||
(("test/py/import-export_unittest\\.bash")
|
||||
""))
|
||||
(substitute* "test/hs/Test/Ganeti/OpCodes.hs"
|
||||
;; Some serdes failure, tracked at:
|
||||
;; https://github.com/ganeti/ganeti/issues/1753
|
||||
((", 'case_py_compat_types") ""))))
|
||||
(add-after 'build 'build-bash-completions
|
||||
(lambda _
|
||||
(setenv "PYTHONPATH" ".")
|
||||
(invoke "./autotools/build-bash-completion")
|
||||
(unsetenv "PYTHONPATH")))
|
||||
(add-before 'check 'pre-check
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Set TZDIR so that time zones are found.
|
||||
(add-after 'configure 'fix-installation-directories
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
;; Do not attempt to create /var during install.
|
||||
(("\\$\\(DESTDIR\\)\\$\\{localstatedir\\}")
|
||||
"$(DESTDIR)${prefix}${localstatedir}")
|
||||
;; Similarly, do not attempt to install the sample ifup scripts
|
||||
;; to /etc/ganeti.
|
||||
(("\\$\\(DESTDIR\\)\\$\\(ifupdir\\)")
|
||||
"$(DESTDIR)${prefix}$(ifupdir)"))))
|
||||
(add-before 'build 'adjust-tests
|
||||
(lambda _
|
||||
;; Disable tests that can not run. Do it early to prevent
|
||||
;; touching the Makefile later and triggering a needless rebuild.
|
||||
(substitute* "Makefile"
|
||||
;; Disable the bash_completion test, as it requires the full
|
||||
;; bash instead of bash-minimal.
|
||||
(("test/py/legacy/bash_completion\\.bash")
|
||||
"")
|
||||
;; XXX: Unclear why this test fails.
|
||||
;; Generating hspace simulation data for hinfo and hbal...
|
||||
;; FAIL to build test files
|
||||
(("test/hs/offline-test\\.sh")
|
||||
""))))
|
||||
(add-after 'build 'build-bash-completions
|
||||
(lambda _
|
||||
(setenv "PYTHONPATH" ".")
|
||||
(invoke "./autotools/build-bash-completion")
|
||||
(unsetenv "PYTHONPATH")))
|
||||
(add-before 'check 'pre-check
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
;; Set TZDIR so that time zones are found.
|
||||
(setenv "TZDIR" (search-input-directory inputs "share/zoneinfo"))
|
||||
|
||||
(substitute* "test/py/ganeti.utils.process_unittest.py"
|
||||
;; This test attempts to run an executable with
|
||||
;; RunCmd(..., reset_env=True), which fails because the default
|
||||
;; PATH from Constants.hs does not exist in the build container.
|
||||
((".*def testResetEnv.*" all)
|
||||
(string-append " @unittest.skipIf(True, "
|
||||
(substitute* "test/py/legacy/ganeti.utils.process_unittest.py"
|
||||
;; This test attempts to run an executable with
|
||||
;; RunCmd(..., reset_env=True), which fails because the default
|
||||
;; PATH from Constants.hs does not exist in the build container.
|
||||
((".*def testResetEnv.*" all)
|
||||
(string-append " @unittest.skipIf(True, "
|
||||
"\"cannot reset env in the build container\")\n"
|
||||
all))
|
||||
|
||||
@@ -1039,37 +1003,35 @@ firmware blobs. You can
|
||||
"\"testPidFile fails in the build container\")\n"
|
||||
all)))
|
||||
|
||||
;; XXX: Why are these links not added automatically.
|
||||
(with-directory-excursion "test/hs"
|
||||
(for-each (lambda (file)
|
||||
(symlink "../../src/htools" file))
|
||||
;; XXX: Why are these links not added automatically.
|
||||
(with-directory-excursion "test/hs"
|
||||
(for-each (cut symlink "../../src/htools" <>)
|
||||
'("hspace" "hscan" "hinfo" "hbal" "hroller"
|
||||
"hcheck" "hail" "hsqueeze")))))
|
||||
(add-after 'install 'install-bash-completions
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(compdir (string-append out "/etc/bash_completion.d")))
|
||||
(mkdir-p compdir)
|
||||
(copy-file "doc/examples/bash_completion"
|
||||
(string-append compdir "/ganeti"))
|
||||
;; The one file contains completions for many different
|
||||
;; executables. Create symlinks for found completions.
|
||||
(with-directory-excursion compdir
|
||||
(for-each
|
||||
(lambda (prog) (symlink "ganeti" prog))
|
||||
(call-with-input-file "ganeti"
|
||||
(lambda (port)
|
||||
(let loop ((line (read-line port))
|
||||
(progs '()))
|
||||
(if (eof-object? line)
|
||||
progs
|
||||
(if (string-prefix? "complete" line)
|
||||
(loop (read-line port)
|
||||
;; Extract "prog" from lines of the form:
|
||||
;; "complete -F _prog -o filenames prog".
|
||||
;; Note that 'burnin' is listed with the
|
||||
;; absolute file name, which is why we
|
||||
;; run everything through 'basename'.
|
||||
(add-after 'install 'install-bash-completions
|
||||
(lambda _
|
||||
(let ((compdir (string-append #$output "/etc/bash_completion.d")))
|
||||
(mkdir-p compdir)
|
||||
(copy-file "doc/examples/bash_completion"
|
||||
(string-append compdir "/ganeti"))
|
||||
;; The one file contains completions for many different
|
||||
;; executables. Create symlinks for found completions.
|
||||
(with-directory-excursion compdir
|
||||
(for-each
|
||||
(lambda (prog) (symlink "ganeti" prog))
|
||||
(call-with-input-file "ganeti"
|
||||
(lambda (port)
|
||||
(let loop ((line (read-line port))
|
||||
(progs '()))
|
||||
(if (eof-object? line)
|
||||
progs
|
||||
(if (string-prefix? "complete" line)
|
||||
(loop (read-line port)
|
||||
;; Extract "prog" from lines of the form:
|
||||
;; "complete -F _prog -o filenames prog".
|
||||
;; Note that 'burnin' is listed with the
|
||||
;; absolute file name, which is why we
|
||||
;; run everything through 'basename'.
|
||||
(match (string-split line #\ )
|
||||
((commands ... prog)
|
||||
(cons (basename prog) progs))))
|
||||
@@ -1102,41 +1064,39 @@ firmware blobs. You can
|
||||
(not (symbolic-link? file))
|
||||
(not (shell-script? file))))
|
||||
|
||||
(for-each (lambda (file)
|
||||
(wrap-program file
|
||||
`("GUIX_PYTHONPATH" ":" prefix
|
||||
(,PYTHONPATH))))
|
||||
(append-map (cut find-files <> wrap?)
|
||||
(for-each (cut wrap-program <>
|
||||
`("GUIX_PYTHONPATH" ":" prefix
|
||||
(,PYTHONPATH)))
|
||||
(append-map (cut find-files <> wrap?)
|
||||
(list (string-append lib "/ganeti")
|
||||
sbin)))))))))
|
||||
(native-inputs
|
||||
`(("haskell" ,ghc)
|
||||
("cabal" ,cabal-install)
|
||||
("m4" ,m4)
|
||||
(list ghc
|
||||
cabal-install
|
||||
m4
|
||||
;; These inputs are necessary to bootstrap the package, because we
|
||||
;; have patched the build system.
|
||||
autoconf
|
||||
automake
|
||||
|
||||
;; These inputs are necessary to bootstrap the package, because we
|
||||
;; have patched the build system.
|
||||
("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
;; For the documentation.
|
||||
python-docutils-0.19
|
||||
python-sphinx
|
||||
pandoc
|
||||
graphviz
|
||||
|
||||
;; For the documentation.
|
||||
("python-docutils" ,python-docutils-0.19)
|
||||
("sphinx" ,python-sphinx)
|
||||
("pandoc" ,pandoc)
|
||||
("dot" ,graphviz)
|
||||
|
||||
;; Test dependencies.
|
||||
("fakeroot" ,fakeroot)
|
||||
("ghc-temporary" ,ghc-temporary)
|
||||
("ghc-test-framework" ,ghc-test-framework)
|
||||
("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
|
||||
("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
|
||||
("python-mock" ,python-mock)
|
||||
("python-pyyaml" ,python-pyyaml)
|
||||
("openssh" ,openssh)
|
||||
("procps" ,procps)
|
||||
("shelltestrunner" ,shelltestrunner)
|
||||
("tzdata" ,tzdata-for-tests)))
|
||||
;; Test dependencies.
|
||||
fakeroot
|
||||
ghc-temporary
|
||||
ghc-test-framework
|
||||
ghc-test-framework-hunit
|
||||
ghc-test-framework-quickcheck2
|
||||
python-mock
|
||||
python-pyyaml
|
||||
openssh
|
||||
procps
|
||||
shelltestrunner
|
||||
tzdata-for-tests))
|
||||
(inputs
|
||||
(list bash-minimal
|
||||
iputils ;for 'arping'
|
||||
@@ -1148,6 +1108,7 @@ firmware blobs. You can
|
||||
qemu-minimal ;for qemu-img
|
||||
ghc-attoparsec
|
||||
ghc-base64-bytestring
|
||||
ghc-case-insensitive
|
||||
ghc-cryptonite
|
||||
ghc-curl
|
||||
ghc-hinotify
|
||||
@@ -1155,10 +1116,13 @@ firmware blobs. You can
|
||||
ghc-json
|
||||
ghc-lens
|
||||
ghc-lifted-base
|
||||
ghc-monad-control
|
||||
ghc-network
|
||||
ghc-old-time
|
||||
ghc-psqueue
|
||||
ghc-parallel
|
||||
ghc-regex-pcre
|
||||
ghc-random
|
||||
ghc-transformers-base
|
||||
ghc-utf8-string
|
||||
ghc-zlib
|
||||
;; For the optional metadata daemon.
|
||||
|
||||
@@ -1161,7 +1161,7 @@ ca-certificates.crt file in the system profile."
|
||||
(append
|
||||
(list #:pid-file "/var/run/bffe/pid")
|
||||
#$(bffe-configuration-arguments config)))))
|
||||
#:guile (lookup-package-native-input bffe-package "guile-3.0-latest")))
|
||||
#:guile (lookup-package-native-input bffe-package "guile")))
|
||||
|
||||
(match-record config <bffe-configuration>
|
||||
(package user group arguments extra-environment-variables)
|
||||
|
||||
@@ -182,7 +182,7 @@ locations in the store in '.el' files."
|
||||
;; of generation -pkg.el will fail.
|
||||
(condition-case
|
||||
nil
|
||||
(let ((version (lm-version)))
|
||||
(let ((version (or (lm-header "package-version") (lm-version))))
|
||||
;; raises an error if version is invalid
|
||||
(and (version-to-list version) version))
|
||||
(error "0.0.0"))
|
||||
|
||||
Reference in New Issue
Block a user