me
/
guix
Archived
1
0
Fork 0

Merge branch 'master' into gnome-team

Change-Id: Ib6f55bebef2fb235fa59fd5442102a3e0ace3191
master
Liliana Marie Prikler 2023-10-23 21:09:49 +02:00
commit e38d6a9c2f
No known key found for this signature in database
GPG Key ID: 442A84B8C70E2F87
195 changed files with 14271 additions and 50096 deletions

View File

@ -43,7 +43,7 @@
(eval . (put 'eval-when 'scheme-indent-function 1))
(eval . (put 'call-with-prompt 'scheme-indent-function 1))
(eval . (put 'test-assert 'scheme-indent-function 1))
(eval . (put 'test-assertm 'scheme-indent-function 2))
(eval . (put 'test-assertm 'scheme-indent-function 1))
(eval . (put 'test-equalm 'scheme-indent-function 1))
(eval . (put 'test-equal 'scheme-indent-function 1))
(eval . (put 'test-eq 'scheme-indent-function 1))

1
.gitignore vendored
View File

@ -68,7 +68,6 @@
/doc/version.texi
/doc/version-*.texi
/etc/committer.scm
/etc/teams.scm
/etc/gnu-store.mount
/etc/guix-daemon.cil
/etc/guix-daemon.conf

View File

@ -8,3 +8,4 @@ add_signoff: False
# TODO: enable check_patch
check_patch: False
ignore_bad_tags: True
keep_change_id: True

View File

@ -17,6 +17,7 @@
# Copyright © 2020, 2021, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
# Copyright © 2021 Chris Marusich <cmmarusich@gmail.com>
# Copyright © 2021 Andrew Tropin <andrew@trop.in>
# Copyright © 2023 Clément Lassieur <clement@lassieur.org>
#
# This file is part of GNU Guix.
#
@ -184,6 +185,7 @@ MODULES = \
guix/build-system/texlive.scm \
guix/build-system/tree-sitter.scm \
guix/build-system/trivial.scm \
guix/build-system/zig.scm \
guix/ftp-client.scm \
guix/http-client.scm \
guix/gnupg.scm \
@ -270,6 +272,7 @@ MODULES = \
guix/build/graft.scm \
guix/build/bournish.scm \
guix/build/qt-utils.scm \
guix/build/zig-build-system.scm \
guix/build/make-bootstrap.scm \
guix/search-paths.scm \
guix/packages.scm \
@ -414,10 +417,6 @@ AUX_FILES = \
gnu/packages/aux-files/linux-libre/6.5-arm64.conf \
gnu/packages/aux-files/linux-libre/6.5-i686.conf \
gnu/packages/aux-files/linux-libre/6.5-x86_64.conf \
gnu/packages/aux-files/linux-libre/6.4-arm.conf \
gnu/packages/aux-files/linux-libre/6.4-arm64.conf \
gnu/packages/aux-files/linux-libre/6.4-i686.conf \
gnu/packages/aux-files/linux-libre/6.4-x86_64.conf \
gnu/packages/aux-files/linux-libre/6.1-arm.conf \
gnu/packages/aux-files/linux-libre/6.1-arm64.conf \
gnu/packages/aux-files/linux-libre/6.1-i686.conf \
@ -1169,10 +1168,21 @@ cuirass-jobs: $(GOBJECTS)
.git/config: etc/git/gitconfig
$(AM_V_at)if command -v git >/dev/null && test -d .git; then \
git config --add include.path ../etc/git/gitconfig; \
git config --fixed-value --replace-all include.path \
../etc/git/gitconfig ../etc/git/gitconfig; \
fi
nodist_noinst_DATA = .git/hooks/pre-push .git/config
COMMIT_MSG_MAGIC = VGhpcyBpcyB0aGUgY29tbWl0LW1zZyBob29rIG9mIEd1aXg=
.git/hooks/commit-msg: etc/git/commit-msg
$(AM_V_at)if test -d .git; then \
if test -f $@ && ! grep -qF $(COMMIT_MSG_MAGIC) $@; then \
mkdir -p $@.d && mv $@ $@.d && \
@ echo user commit-msg hook moved to $@.d/commit-msg; \
fi; \
cp etc/git/commit-msg $@; \
fi
nodist_noinst_DATA = .git/hooks/pre-push .git/config .git/hooks/commit-msg
# Downloading up-to-date PO files.

View File

@ -281,7 +281,6 @@ AC_CONFIG_FILES([Makefile
guix/config.scm])
AC_CONFIG_FILES([etc/committer.scm], [chmod +x etc/committer.scm])
AC_CONFIG_FILES([etc/teams.scm], [chmod +x etc/teams.scm])
AC_CONFIG_FILES([test-env:build-aux/test-env.in], [chmod +x test-env])
AC_CONFIG_FILES([pre-inst-env:build-aux/pre-inst-env.in],
[chmod +x pre-inst-env])

View File

@ -605,7 +605,7 @@ needed is to review and apply the patch.
* Version Numbers:: When the name is not enough.
* Synopses and Descriptions:: Helping users find the right package.
* Snippets versus Phases:: Whether to use a snippet, or a build phase.
* Cyclic Module Dependencies:: Going full circle.
* Cyclic Module Dependencies:: Going full circle.
* Emacs Packages:: Your Elisp fix.
* Python Modules:: A touch of British comedy.
* Perl Modules:: Little pearls.
@ -1575,8 +1575,16 @@ different name or email just for commits in this repository, you can
use @command{git config --local}, or edit @file{.git/config} in the
repository instead of @file{~/.gitconfig}.
@cindex commit-msg hook
Other important Git configuration will automatically be configured when
building the project (@pxref{Building from Git}).
building the project (@pxref{Building from Git}). A
@file{.git/hooks/commit-msg} hook will be installed that embeds
@samp{Change-Id} Git @emph{trailers} in your commit messages for
traceability purposes. It is important to preserve these when editing
your commit messages, particularly if a first version of your proposed
changes was already submitted for review. If you have a
@file{commit-msg} hook of your own you would like to use with Guix, you
can place it under the @file{.git/hooks/commit-msg.d/} directory.
@node Sending a Patch Series
@subsection Sending a Patch Series
@ -1763,6 +1771,7 @@ patch submissions and topic branches.
* Managing Patches and Branches:: How changes to Guix are managed.
* Debbugs User Interfaces:: Ways to interact with Debbugs.
* Debbugs Usertags:: Tag reports with custom labels.
* Cuirass Build Notifications:: Be alerted of any breakage via RSS feeds.
@end menu
@node The Issue Tracker
@ -2012,6 +2021,43 @@ with the @code{guix} user. If the usertag proves useful to you,
consider updating this section of the manual so that others will know
what your usertag means.
@node Cuirass Build Notifications
@subsection Cuirass Build Notifications
@cindex build event notifications, RSS feed
@cindex notifications, build events
Cuirass includes @acronym{RSS, Really Simple Syndication} feeds as one
of its features (@pxref{Notifications,,,cuirass}). Since
@url{https://ci.guix.gnu.org/, Berlin} runs an instance of Cuirass, this
feature can be used to keep track of recently broken or fixed packages
caused by changes pushed to the Guix git repository. Any RSS client can
be used. A good one, included with Emacs, is @xref{Gnus,,,gnus}. To
register the feed, copy its URL, then from the main Gnus buffer,
@samp{*Group*}, do the following:
@cindex Gnus, configuration to read CI RSS feeds
@cindex RSS feeds, Gnus configuration
@example
@kbd{G R} https://ci.guix.gnu.org/events/rss/?specification=master RET
Guix CI - master RET Build events for specification master. RET
@end example
@noindent
Then, back at the @samp{*Group*} buffer, press @kbd{s} to save the newly
added RSS group. As for any other Gnus group, you can update its
content by pressing the @kbd{g} key. You should now receive
notifications that read like:
@example
. [ ?: Cuirass ] Build tree-sitter-meson.aarch64-linux on master is fixed.
. [ ?: Cuirass ] Build rust-pbkdf2.aarch64-linux on master is fixed.
. [ ?: Cuirass ] Build rust-pbkdf2.x86_64-linux on master is fixed.
@end example
@noindent
where each RSS entry contains a link to the Cuirass build details page
of the associated build.
@node Commit Access
@section Commit Access

View File

@ -22,7 +22,7 @@ Copyright @copyright{} 2020 André Batista@*
Copyright @copyright{} 2020 Christine Lemmer-Webber@*
Copyright @copyright{} 2021 Joshua Branson@*
Copyright @copyright{} 2022, 2023 Maxim Cournoyer@*
Copyright @copyright{} 2023 Ludovic Courtès
Copyright @copyright{} 2023 Ludovic Courtès@*
Copyright @copyright{} 2023 Thomas Ieong
Permission is granted to copy, distribute and/or modify this document
@ -78,6 +78,7 @@ manual}).
* System Configuration:: Customizing the GNU System
* Containers:: Isolated environments and nested systems
* Advanced package management:: Power to the users!
* Software Development:: Environments, continuous integration, etc.
* Environment management:: Control environment
* Installing Guix on a Cluster:: High-performance computing.
@ -4099,6 +4100,654 @@ mkdir -p "$GUIX_EXTRA_PROFILES/my-project"
It's safe to delete the Guix channel profile you've just installed with the
channel specification, the project profile does not depend on it.
@node Software Development
@chapter Software Development
@cindex development, with Guix
@cindex software development, with Guix
Guix is a handy tool for developers; @command{guix shell}, in
particular, gives a standalone development environment for your package,
no matter what language(s) it's written in (@pxref{Invoking guix
shell,,, guix, GNU Guix Reference Manual}). To benefit from it, you
have to initially write a package definition and have it either in Guix
proper, or in a channel, or directly in your project's source tree as a
@file{guix.scm} file. This last option is appealing: all developers
have to do to get set up is clone the project's repository and run
@command{guix shell}, with no arguments.
Development needs go beyond development environments though. How can
developers perform continuous integration of their code in Guix build
environments? How can they deliver their code straight to adventurous
users? This chapter describes a set of files developers can add to their
repository to set up Guix-based development environments, continuous
integration, and continuous delivery---all at once@footnote{This chapter
is adapted from a
@uref{https://guix.gnu.org/en/blog/2023/from-development-environments-to-continuous-integrationthe-ultimate-guide-to-software-development-with-guix/,
blog post} published in June 2023 on the Guix web site.}.
@menu
* Getting Started:: Step 0: using `guix shell'.
* Building with Guix:: Step 1: building your code.
* The Repository as a Channel:: Step 2: turning the repo in a channel.
* Package Variants:: Bonus: Defining variants.
* Setting Up Continuous Integration:: Step 3: continuous integration.
* Build Manifest:: Bonus: Manifest.
* Wrapping Up:: Recap.
@end menu
@node Getting Started
@section Getting Started
How do we go about ``Guixifying'' a repository? The first step, as we've
seen, will be to add a @file{guix.scm} at the root of the repository in
question. We'll take @uref{https://www.gnu.org/software/guile,Guile} as
an example in this chapter: it's written in Scheme (mostly) and C, and
has a number of dependencies---a C compilation tool chain, C libraries,
Autoconf and its friends, LaTeX, and so on. The resulting
@file{guix.scm} looks like the usual package definition (@pxref{Defining
Packages,,, guix, GNU Guix Reference Manual}), just without the
@code{define-public} bit:
@lisp
;; The guix.scm file for Guile, for use by guix shell.
(use-modules (guix)
(guix build-system gnu)
((guix licenses) #:prefix license:)
(gnu packages autotools)
(gnu packages base)
(gnu packages bash)
(gnu packages bdw-gc)
(gnu packages compression)
(gnu packages flex)
(gnu packages gdb)
(gnu packages gettext)
(gnu packages gperf)
(gnu packages libffi)
(gnu packages libunistring)
(gnu packages linux)
(gnu packages pkg-config)
(gnu packages readline)
(gnu packages tex)
(gnu packages texinfo)
(gnu packages version-control))
(package
(name "guile")
(version "3.0.99-git") ;funky version number
(source #f) ;no source
(build-system gnu-build-system)
(native-inputs
(append (list autoconf
automake
libtool
gnu-gettext
flex
texinfo
texlive-base ;for "make pdf"
texlive-epsf
gperf
git
gdb
strace
readline
lzip
pkg-config)
;; When cross-compiling, a native version of Guile itself is
;; needed.
(if (%current-target-system)
(list this-package)
'())))
(inputs
(list libffi bash-minimal))
(propagated-inputs
(list libunistring libgc))
(native-search-paths
(list (search-path-specification
(variable "GUILE_LOAD_PATH")
(files '("share/guile/site/3.0")))
(search-path-specification
(variable "GUILE_LOAD_COMPILED_PATH")
(files '("lib/guile/3.0/site-ccache")))))
(synopsis "Scheme implementation intended especially for extensions")
(description
"Guile is the GNU Ubiquitous Intelligent Language for Extensions,
and it's actually a full-blown Scheme implementation!")
(home-page "https://www.gnu.org/software/guile/")
(license license:lgpl3+))
@end lisp
Quite a bit of boilerplate, but now someone who'd like to hack on Guile
now only needs to run:
@lisp
guix shell
@end lisp
That gives them a shell containing all the dependencies of Guile: those
listed above, but also @emph{implicit dependencies} such as the GCC tool
chain, GNU@ Make, sed, grep, and so on. @xref{Invoking guix shell,,,
guix, GNU Guix Reference Manual}, for more info on @command{guix shell}.
@quotation The chef's recommendation
Our suggestion is to create development environments like this:
@example
guix shell --container --link-profile
@end example
@noindent
... or, for short:
@example
guix shell -CP
@end example
That gives a shell in an isolated container, and all the dependencies
show up in @code{$HOME/.guix-profile}, which plays well with caches such
as @file{config.cache} (@pxref{Cache Files,,, autoconf, Autoconf}) and
absolute file names recorded in generated @code{Makefile}s and the
likes. The fact that the shell runs in a container brings peace of mind:
nothing but the current directory and Guile's dependencies is visible
inside the container; nothing from the system can possibly interfere
with your development.
@end quotation
@node Building with Guix
@section Level 1: Building with Guix
Now that we have a package definition (@pxref{Getting Started}), why not
also take advantage of it so we can build Guile with Guix? We had left
the @code{source} field empty, because @command{guix shell} above only
cares about the @emph{inputs} of our package---so it can set up the
development environment---not about the package itself.
To build the package with Guix, we'll need to fill out the @code{source}
field, along these lines:
@lisp
(use-modules (guix)
(guix git-download) ;for git-predicate
@dots{})
(define vcs-file?
;; Return true if the given file is under version control.
(or (git-predicate (current-source-directory))
(const #t))) ;not in a Git checkout
(package
(name "guile")
(version "3.0.99-git") ;funky version number
(source (local-file "." "guile-checkout"
#:recursive? #t
#:select? vcs-file?))
@dots{})
@end lisp
Here's what we changed compared to the previous section:
@enumerate
@item
We added @code{(guix git-download)} to our set of imported modules, so
we can use its @code{git-predicate} procedure.
@item
We defined @code{vcs-file?} as a procedure that returns true when passed
a file that is under version control. For good measure, we add a
fallback case for when we're not in a Git checkout: always return true.
@item
We set @code{source} to a
@uref{https://guix.gnu.org/manual/devel/en/html_node/G_002dExpressions.html#index-local_002dfile,@code{local-file}}---a
recursive copy of the current directory (@code{"."}), limited to files
under version control (the @code{#:select?} bit).
@end enumerate
From there on, our @file{guix.scm} file serves a second purpose: it lets
us build the software with Guix. The whole point of building with Guix
is that it's a ``clean'' build---you can be sure nothing from your
working tree or system interferes with the build result---and it lets
you test a variety of things. First, you can do a plain native build:
@example
guix build -f guix.scm
@end example
But you can also build for another system (possibly after setting up
@pxref{Daemon Offload Setup, offloading,, guix, GNU Guix Reference Manual}
or
@pxref{Virtualization Services, transparent emulation,, guix, GNU Guix
Reference Manual}):
@lisp
guix build -f guix.scm -s aarch64-linux -s riscv64-linux
@end lisp
@noindent
@dots{} or cross-compile:
@lisp
guix build -f guix.scm --target=x86_64-w64-mingw32
@end lisp
You can also use @dfn{package transformations} to test package variants
(@pxref{Package Transformations,,, guix, GNU Guix Reference Manual}):
@example
# What if we built with Clang instead of GCC?
guix build -f guix.scm \
--with-c-toolchain=guile@@3.0.99-git=clang-toolchain
# What about that under-tested configure flag?
guix build -f guix.scm \
--with-configure-flag=guile@@3.0.99-git=--disable-networking
@end example
Handy!
@node The Repository as a Channel
@section Level 2: The Repository as a Channel
We now have a Git repository containing (among other things) a package
definition (@pxref{Building with Guix}). Can't we turn it into a
@dfn{channel} (@pxref{Channels,,, guix, GNU Guix Reference Manual})?
After all, channels are designed to ship package definitions to users,
and that's exactly what we're doing with our @file{guix.scm}.
Turns out we can indeed turn it into a channel, but with one caveat: we
must create a separate directory for the @code{.scm} file(s) of our
channel so that @command{guix pull} doesn't load unrelated @code{.scm}
files when someone pulls the channel---and in Guile, there are lots of
them! So we'll start like this, keeping a top-level @file{guix.scm}
symlink for the sake of @command{guix shell}:
@lisp
mkdir -p .guix/modules
mv guix.scm .guix/modules/guile-package.scm
ln -s .guix/modules/guile-package.scm guix.scm
@end lisp
To make it usable as part of a channel, we need to turn our
@file{guix.scm} file into a @dfn{package module} (@pxref{Package
Modules,,, guix, GNU Guix Reference Manual}):
we do that by changing the @code{use-modules} form at the top to a
@code{define-module} form. We also need to actually @emph{export} a
package variable, with @code{define-public}, while still returning the
package value at the end of the file so we can still use
@command{guix shell} and @command{guix build -f guix.scm}. The end result
looks like this (not repeating things that haven't changed):
@lisp
(define-module (guile-package)
#:use-module (guix)
#:use-module (guix git-download) ;for git-predicate
@dots{})
(define vcs-file?
;; Return true if the given file is under version control.
(or (git-predicate (dirname (dirname (current-source-directory))))
(const #t))) ;not in a Git checkout
(define-public guile
(package
(name "guile")
(version "3.0.99-git") ;funky version number
(source (local-file "../.." "guile-checkout"
#:recursive? #t
#:select? vcs-file?))
@dots{}))
;; Return the package object define above at the end of the module.
guile
@end lisp
We need one last thing: a
@uref{https://guix.gnu.org/manual/devel/en/html_node/Package-Modules-in-a-Sub_002ddirectory.html,@code{.guix-channel}
file} so Guix knows where to look for package modules in our repository:
@lisp
;; This file lets us present this repo as a Guix channel.
(channel
(version 0)
(directory ".guix/modules")) ;look for package modules under .guix/modules/
@end lisp
To recap, we now have these files:
@lisp
.
├── .guix-channel
├── guix.scm → .guix/modules/guile-package.scm
└── .guix
    └── modules
       └── guile-package.scm
@end lisp
And that's it: we have a channel! (We could do better and support
@uref{https://guix.gnu.org/manual/devel/en/html_node/Specifying-Channel-Authorizations.html,@emph{channel
authentication}} so users know they're pulling genuine code. We'll spare
you the details here but it's worth considering!) Users can pull from
this channel by
@uref{https://guix.gnu.org/manual/devel/en/html_node/Specifying-Additional-Channels.html,adding
it to @code{~/.config/guix/channels.scm}}, along these lines:
@lisp
(append (list (channel
(name 'guile)
(url "https://git.savannah.gnu.org/git/guile.git")
(branch "main")))
%default-channels)
@end lisp
After running @command{guix pull}, we can see the new package:
@example
$ guix describe
Generation 264 May 26 2023 16:00:35 (current)
guile 36fd2b4
repository URL: https://git.savannah.gnu.org/git/guile.git
branch: main
commit: 36fd2b4920ae926c79b936c29e739e71a6dff2bc
guix c5bc698
repository URL: https://git.savannah.gnu.org/git/guix.git
commit: c5bc698e8922d78ed85989985cc2ceb034de2f23
$ guix package -A ^guile$
guile 3.0.99-git out,debug guile-package.scm:51:4
guile 3.0.9 out,debug gnu/packages/guile.scm:317:2
guile 2.2.7 out,debug gnu/packages/guile.scm:258:2
guile 2.2.4 out,debug gnu/packages/guile.scm:304:2
guile 2.0.14 out,debug gnu/packages/guile.scm:148:2
guile 1.8.8 out gnu/packages/guile.scm:77:2
$ guix build guile@@3.0.99-git
[@dots{}]
/gnu/store/axnzbl89yz7ld78bmx72vpqp802dwsar-guile-3.0.99-git-debug
/gnu/store/r34gsij7f0glg2fbakcmmk0zn4v62s5w-guile-3.0.99-git
@end example
That's how, as a developer, you get your software delivered directly
into the hands of users! No intermediaries, yet no loss of transparency
and provenance tracking.
With that in place, it also becomes trivial for anyone to create Docker
images, Deb/RPM packages, or a plain tarball with @command{guix pack}
(@pxref{Invoking guix pack,,, guix, GNU Guix Reference Manual}):
@example
# How about a Docker image of our Guile snapshot?
guix pack -f docker -S /bin=bin guile@@3.0.99-git
# And a relocatable RPM?
guix pack -f rpm -R -S /bin=bin guile@@3.0.99-git
@end example
@node Package Variants
@section Bonus: Package Variants
We now have an actual channel, but it contains only one package
(@pxref{The Repository as a Channel}). While we're at it, we can define
@dfn{package variants} (@pxref{Defining Package Variants,,, guix, GNU
Guix Reference Manual}) in our @file{guile-package.scm} file, variants
that we want to be able to test as Guile developers---similar to what we
did above with transformation options. We can add them like so:
@lisp
;; This is the .guix/modules/guile-package.scm file.
(define-module (guile-package)
@dots{})
(define-public guile
@dots{})
(define (package-with-configure-flags p flags)
"Return P with FLAGS as additional 'configure' flags."
(package/inherit p
(arguments
(substitute-keyword-arguments (package-arguments p)
((#:configure-flags original-flags #~(list))
#~(append #$original-flags #$flags))))))
(define-public guile-without-threads
(package
(inherit (package-with-configure-flags guile
#~(list "--without-threads")))
(name "guile-without-threads")))
(define-public guile-without-networking
(package
(inherit (package-with-configure-flags guile
#~(list "--disable-networking")))
(name "guile-without-networking")))
;; Return the package object defined above at the end of the module.
guile
@end lisp
We can build these variants as regular packages once we've pulled the
channel. Alternatively, from a checkout of Guile, we can run a command
like this one from the top level:
@lisp
guix build -L $PWD/.guix/modules guile-without-threads
@end lisp
@node Setting Up Continuous Integration
@section Level 3: Setting Up Continuous Integration
@cindex continuous integration (CI)
The channel we defined above (@pxref{The Repository as a Channel})
becomes even more interesting once we set up
@uref{https://en.wikipedia.org/wiki/Continuous_integration,
@dfn{continuous integration}} (CI). There are several ways to do that.
You can use one of the mainstream continuous integration tools, such as
GitLab-CI. To do that, you need to make sure you run jobs in a Docker
image or virtual machine that has Guix installed. If we were to do that
in the case of Guile, we'd have a job that runs a shell command like
this one:
@lisp
guix build -L $PWD/.guix/modules guile@@3.0.99-git
@end lisp
Doing this works great and has the advantage of being easy to achieve on
your favorite CI platform.
That said, you'll really get the most of it by using
@uref{https://guix.gnu.org/en/cuirass,Cuirass}, a CI tool designed for
and tightly integrated with Guix. Using it is more work than using a
hosted CI tool because you first need to set it up, but that setup phase
is greatly simplified if you use its Guix System service
(@pxref{Continuous Integration,,, guix, GNU Guix Reference Manual}).
Going back to our example, we give Cuirass a spec file that goes like
this:
@lisp
;; Cuirass spec file to build all the packages of the guile channel.
(list (specification
(name "guile")
(build '(channels guile))
(channels
(append (list (channel
(name 'guile)
(url "https://git.savannah.gnu.org/git/guile.git")
(branch "main")))
%default-channels))))
@end lisp
It differs from what you'd do with other CI tools in two important ways:
@itemize
@item
Cuirass knows it's tracking @emph{two} channels, @code{guile} and
@code{guix}. Indeed, our own @code{guile} package depends on many
packages provided by the @code{guix} channel---GCC, the GNU libc,
libffi, and so on. Changes to packages from the @code{guix} channel can
potentially influence our @code{guile} build and this is something we'd
like to see as soon as possible as Guile developers.
@item
Build results are not thrown away: they can be distributed as
@dfn{substitutes} so that users of our @code{guile} channel
transparently get pre-built binaries! (@pxref{Substitutes,,, guix, GNU
Guix Reference Manual}, for background info on substitutes.)
@end itemize
From a developer's viewpoint, the end result is this
@uref{https://ci.guix.gnu.org/jobset/guile,status page} listing
@emph{evaluations}: each evaluation is a combination of commits of the
@code{guix} and @code{guile} channels providing a number of
@emph{jobs}---one job per package defined in @file{guile-package.scm}
times the number of target architectures.
As for substitutes, they come for free! As an example, since our
@code{guile} jobset is built on ci.guix.gnu.org, which runs
@command{guix publish} (@pxref{Invoking guix publish,,, guix, GNU Guix
Reference Manual}) in addition to Cuirass, one automatically gets
substitutes for @code{guile} builds from ci.guix.gnu.org; no additional
work is needed for that.
@node Build Manifest
@section Bonus: Build manifest
The Cuirass spec above is convenient: it builds every package in our
channel, which includes a few variants (@pxref{Setting Up Continuous
Integration}). However, this might be insufficiently expressive in some
cases: one might want specific cross-compilation jobs, transformations,
Docker images, RPM/Deb packages, or even system tests.
To achieve that, you can write a @dfn{manifest} (@pxref{Writing
Manifests,,, guix, GNU Guix Reference Manual}). The one we have for
Guile has entries for the package variants we defined above, as well as
additional variants and cross builds:
@lisp
;; This is .guix/manifest.scm.
(use-modules (guix)
(guix profiles)
(guile-package)) ;import our own package module
(define* (package->manifest-entry* package system
#:key target)
"Return a manifest entry for PACKAGE on SYSTEM, optionally cross-compiled to
TARGET."
(manifest-entry
(inherit (package->manifest-entry package))
(name (string-append (package-name package) "." system
(if target
(string-append "." target)
"")))
(item (with-parameters ((%current-system system)
(%current-target-system target))
package))))
(define native-builds
(manifest
(append (map (lambda (system)
(package->manifest-entry* guile system))
'("x86_64-linux" "i686-linux"
"aarch64-linux" "armhf-linux"
"powerpc64le-linux"))
(map (lambda (guile)
(package->manifest-entry* guile "x86_64-linux"))
(cons (package
(inherit (package-with-c-toolchain
guile
`(("clang-toolchain"
,(specification->package
"clang-toolchain")))))
(name "guile-clang"))
(list guile-without-threads
guile-without-networking
guile-debug
guile-strict-typing))))))
(define cross-builds
(manifest
(map (lambda (target)
(package->manifest-entry* guile "x86_64-linux"
#:target target))
'("i586-pc-gnu"
"aarch64-linux-gnu"
"riscv64-linux-gnu"
"i686-w64-mingw32"
"x86_64-linux-gnu"))))
(concatenate-manifests (list native-builds cross-builds))
@end lisp
We won't go into the details of this manifest; suffice to say that it
provides additional flexibility. We now need to tell Cuirass to build
this manifest, which is done with a spec slightly different from the
previous one:
@lisp
;; Cuirass spec file to build all the packages of the guile channel.
(list (specification
(name "guile")
(build '(manifest ".guix/manifest.scm"))
(channels
(append (list (channel
(name 'guile)
(url "https://git.savannah.gnu.org/git/guile.git")
(branch "main")))
%default-channels))))
@end lisp
We changed the @code{(build @dots{})} part of the spec to
@code{'(manifest ".guix/manifest.scm")} so that it would pick our
manifest, and that's it!
@node Wrapping Up
@section Wrapping Up
We picked Guile as the running example in this chapter and you can see
the result here:
@itemize
@item
@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix-channel?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix-channel}};
@item
@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/modules/guile-package.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/modules/guile-package.scm}}
with the top-level @file{guix.scm} symlink;
@item
@uref{https://git.savannah.gnu.org/cgit/guile.git/tree/.guix/manifest.scm?id=cd57379b3df636198d8cd8e76c1bfbc523762e79,@code{.guix/manifest.scm}}.
@end itemize
These days, repositories are commonly peppered with dot files for
various tools: @code{.envrc}, @code{.gitlab-ci.yml},
@code{.github/workflows}, @code{Dockerfile}, @code{.buildpacks},
@code{Aptfile}, @code{requirements.txt}, and whatnot. It may sound like
we're proposing a bunch of @emph{additional} files, but in fact those
files are expressive enough to @emph{supersede} most or all of those
listed above.
With a couple of files, we get support for:
@itemize
@item
development environments (@command{guix shell});
@item
pristine test builds, including for package variants and for
cross-compilation (@command{guix build});
@item
continuous integration (with Cuirass or with some other tool);
@item
continuous delivery to users (@emph{via} the channel and with pre-built
binaries);
@item
generation of derivative build artifacts such as Docker images or
Deb/RPM packages (@command{guix pack}).
@end itemize
This a nice (in our view!) unified tool set for reproducible software
deployment, and an illustration of how you as a developer can benefit
from it!
@c *********************************************************************
@node Environment management
@chapter Environment management

View File

@ -7314,9 +7314,12 @@ specified binaries and symlinks.
@item docker
This produces a tarball that follows the
@uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md,
Docker Image Specification}. The ``repository name'' as it appears in
the output of the @command{docker images} command is computed from
package names passed on the command line or in the manifest file.
Docker Image Specification}. By default, the ``repository name'' as it
appears in the output of the @command{docker images} command is computed
from package names passed on the command line or in the manifest file.
Alternatively, the ``repository name'' can also be configured via the
@option{--image-tag} option. Refer to @option{--help-docker-format} for
more information on such advanced options.
@item squashfs
This produces a SquashFS image containing all the specified binaries and
@ -8530,9 +8533,81 @@ support of the Mercurial version control system.
Return a fixed-output derivation that fetches @var{ref}, a
@code{<hg-reference>} object. The output is expected to have recursive
hash @var{hash} of type @var{hash-algo} (a symbol). Use @var{name} as
the file name, or a generic name if @code{#false}.
the file name, or a generic name if @code{#f}.
@end deffn
@deftp {Data Type} hg-reference
This data type represents a Mercurial reference for @code{hg-fetch} to
retrieve.
@table @asis
@item @code{url}
The URL of the Mercurial repository to clone.
@item @code{revision}
This string denotes revision to fetch specified as a number.
@end table
@end deftp
For Subversion repositories, the module @code{(guix svn-download)}
defines the @code{svn-fetch} origin method and @code{svn-reference} data
type for support of the Subversion version control system.
@deffn {Procedure} svn-fetch ref hash-algo hash [name]
Return a fixed-output derivation that fetches @var{ref}, a
@code{<svn-reference>} object. The output is expected to have recursive
hash @var{hash} of type @var{hash-algo} (a symbol). Use @var{name} as
the file name, or a generic name if @code{#f}.
@end deffn
@deftp {Data Type} svn-reference
This data type represents a Subversion reference for @code{svn-fetch} to
retrieve.
@table @asis
@item @code{url}
The URL of the Subversion repository to clone.
@item @code{revision}
This string denotes revision to fetch specified as a number.
@item @code{recursive?} (default: @code{#f})
This Boolean indicates whether to recursively fetch Subversion
``externals''.
@item @code{user-name} (default: @code{#f})
The name of an account that has read-access to the repository, if the
repository isn't public.
@item @code{password} (default: @code{#f})
Password to access the Subversion repository, if required.
@end table
@end deftp
For Bazaar repositories, the module @code{(guix bzr-download)}
defines the @code{bzr-fetch} origin method and @code{bzr-reference} data
type for support of the Bazaar version control system.
@deffn {Procedure} bzr-fetch ref hash-algo hash [name]
Return a fixed-output derivation that fetches @var{ref}, a
@code{<bzr-reference>} object. The output is expected to have recursive
hash @var{hash} of type @var{hash-algo} (a symbol). Use @var{name} as
the file name, or a generic name if @code{#f}.
@end deffn
@deftp {Data Type} bzr-reference
This data type represents a Bazaar reference for @code{bzr-fetch} to
retrieve.
@table @asis
@item @code{url}
The URL of the Bazaar repository to clone.
@item @code{revision}
This string denotes revision to fetch specified as a number.
@end table
@end deftp
@node Defining Package Variants
@section Defining Package Variants
@ -10144,6 +10219,27 @@ Python package is used to run the script can be specified with the
@code{#:python} parameter.
@end defvar
@defvar zig-build-system
This variable is exported by @code{(guix build-system zig)}. It implements
the build procedures for the @uref{https://ziglang.org/, Zig}
build system (@command{zig build} command).
Selecting this build system adds @code{zig} to the package inputs, in
addition to the packages of @code{gnu-build-system}.
There is no @code{configure} phase because Zig packages typically do not
need to be configured. The @code{#:zig-build-flags} parameter is a list of
flags that are passed to the @code{zig} command during the build. The
@code{#:zig-test-flags} parameter is a list of flags that are passed to the
@code{zig test} command during the @code{check} phase. The default compiler
package can be overridden with the @code{#:zig} argument.
The optional @code{zig-release-type} parameter declares the type of release.
Possible values are: @code{safe}, @code{fast}, or @code{small}. The default
value is @code{#f}, which causes the release flag to be omitted from the
@code{zig} command. That results in a @code{debug} build.
@end defvar
@defvar scons-build-system
This variable is exported by @code{(guix build-system scons)}. It
implements the build procedure used by the SCons software construction
@ -11403,7 +11499,7 @@ directory in the store, but may produce more.
@item
@cindex build-time dependencies
@cindex dependencies, build-time
The inputs of the derivations---i.e., its build-time dependencies---which may
The inputs of the derivation---i.e., its build-time dependencies---which may
be other derivations or plain files in the store (patches, build scripts,
etc.).
@ -16944,6 +17040,23 @@ version:
%base-packages)))
@end lisp
@findex specification->package+output
When a package has more than one output it can be a challenge to refer to a
specific output instead of just to the standard @code{out} output. For these
situations one can use the @code{specification->package+output} procedure from
the @code{(gnu packages)} module. For example:
@lisp
(use-modules (gnu packages))
(operating-system
;; ...
(packages (append (map specification->package+output
'("nss-certs" "git" "git:send-email"))
%base-packages)))
@end lisp
@unnumberedsubsec System Services
@cindex services
@ -20488,20 +20601,75 @@ IP address (a string) through which traffic is routed.
@deftp {Data Type} network-link
Data type for a network link (@pxref{Link,,, guile-netlink,
Guile-Netlink Manual}).
Guile-Netlink Manual}). During startup, network links are employed to
construct or modify existing or virtual ethernet links. These ethernet
links can be identified by their @var{name} or @var{mac-address}. If
there is a need to create virtual interface, @var{name} and @var{type}
fields are required.
@table @code
@item name
The name of the link---e.g., @code{"v0p0"}.
The name of the link---e.g., @code{"v0p0"} (default: @code{#f}).
@item type
A symbol denoting the type of the link---e.g., @code{'veth}.
A symbol denoting the type of the link---e.g., @code{'veth} (default: @code{#f}).
@item mac-address
The mac-address of the link---e.g., @code{"98:11:22:33:44:55"} (default: @code{#f}).
@item arguments
List of arguments for this type of link.
@end table
@end deftp
Consider a scenario where a server equipped with a network interface
which has multiple ports. These ports are connected to a switch, which
supports @uref{https://en.wikipedia.org/wiki/Link_aggregation, link
aggregation} (also known as bonding or NIC teaming). The switch uses
port channels to consolidate multiple physical interfaces into one
logical interface to provide higher bandwidth, load balancing, and link
redundancy. When a port is added to a LAG (or link aggregation group),
it inherits the properties of the port-channel. Some of these
properties are VLAN membership, trunk status, and so on.
@uref{https://en.wikipedia.org/wiki/Virtual_LAN, VLAN} (or virtual local
area network) is a logical network that is isolated from other VLANs on
the same physical network. This can be used to segregate traffic,
improve security, and simplify network management.
With all that in mind let's configure our static network for the server.
We will bond two existing interfaces together using 802.3ad schema and on
top of it, build a VLAN interface with id 1055. We assign a static ip
to our new VLAN interface.
@lisp
(static-networking
(links (list (network-link
(name "bond0")
(type 'bond)
(arguments '((mode . "802.3ad")
(miimon . 100)
(lacp-active . "on")
(lacp-rate . "fast"))))
(network-link
(mac-address "98:11:22:33:44:55")
(arguments '((master . "bond0"))))
(network-link
(mac-address "98:11:22:33:44:56")
(arguments '((master . "bond0"))))
(network-link
(name "bond0.1055")
(type 'vlan)
(arguments '((id . 1055)
(link . "bond0"))))))
(addresses (list (network-address
(value "192.168.1.4/24")
(device "bond0.1055")))))
@end lisp
@cindex loopback device
@defvar %loopback-static-networking
This is the @code{static-networking} record representing the ``loopback
@ -31970,11 +32138,12 @@ A service type for the @code{certbot} Let's Encrypt client. Its value
must be a @code{certbot-configuration} record as in this example:
@lisp
(define %nginx-deploy-hook
(program-file
"nginx-deploy-hook"
#~(let ((pid (call-with-input-file "/var/run/nginx/pid" read)))
(kill pid SIGHUP))))
(define %certbot-deploy-hook
(program-file "certbot-deploy-hook.scm"
(with-imported-modules '((gnu services herd))
#~(begin
(use-modules (gnu services herd))
(with-shepherd-action 'nginx ('reload) result result)))))
(service certbot-service-type
(certbot-configuration
@ -31983,7 +32152,7 @@ must be a @code{certbot-configuration} record as in this example:
(list
(certificate-configuration
(domains '("example.net" "www.example.net"))
(deploy-hook %nginx-deploy-hook))
(deploy-hook %certbot-deploy-hook))
(certificate-configuration
(domains '("bar.example.net")))))))
@end lisp
@ -33802,6 +33971,10 @@ Location of the log file.
@item @code{cache} (default: @code{"/var/cache/cuirass/remote"})
Use @var{cache} directory to cache build log files.
@item @code{log-expiry} (default: 6 months)
The duration in seconds after which build logs collected by
@command{cuirass remote-worker} may be deleted.
@item @code{trigger-url} (default: @code{#f})
Once a substitute is successfully fetched, trigger substitute baking at
@var{trigger-url}.
@ -45604,7 +45777,8 @@ there is no offset applied.
@item @code{file-system} (default: @code{"ext4"})
The partition file system as a string, defaulting to @code{"ext4"}. The
supported values are @code{"vfat"}, @code{"fat16"}, @code{"fat32"} and
@code{"ext4"}.
@code{"ext4"}. @code{"vfat"}, @code{"fat16"} and @code{"fat32"}
partitions without the @code{'esp} flag are by default LBA compatible.
@item @code{file-system-options} (default: @code{'()})
The partition file system creation options that should be passed to the

94
etc/git/commit-msg 100755
View File

@ -0,0 +1,94 @@
#!/bin/sh
# From Gerrit Code Review 3.6.1
#
# Part of Gerrit Code Review (https://www.gerritcodereview.com/)
#
# Copyright (C) 2009 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
### Guix modifications start
COMMIT_MSG_MAGIC=VGhpcyBpcyB0aGUgY29tbWl0LW1zZyBob29rIG9mIEd1aXg=
top=$(git rev-parse --show-toplevel)
if test -d "$top/.git/hooks/commit-msg.d/"; then
for msg_hook in "$top/.git/hooks/commit-msg.d/"*; do
if ! sh "$msg_hook"; then
echo "error while running $msg_hook"
exit 1
fi
done
fi
### Guix modifications end
set -u
# avoid [[ which is not POSIX sh.
if test "$#" != 1 ; then
echo "$0 requires an argument."
exit 1
fi
if test ! -f "$1" ; then
echo "file does not exist: $1"
exit 1
fi
# Do not create a change id if requested
if test "false" = "$(git config --bool --get gerrit.createChangeId)" ; then
exit 0
fi
if git rev-parse --verify HEAD >/dev/null 2>&1; then
refhash="$(git rev-parse HEAD)"
else
refhash="$(git hash-object -t tree /dev/null)"
fi
random=$({ git var GIT_COMMITTER_IDENT ; echo "$refhash" ; cat "$1"; } | git hash-object --stdin)
dest="$1.tmp.${random}"
trap 'rm -f "${dest}"' EXIT
if ! git stripspace --strip-comments < "$1" > "${dest}" ; then
echo "cannot strip comments from $1"
exit 1
fi
if test ! -s "${dest}" ; then
echo "file is empty: $1"
exit 1
fi
reviewurl="$(git config --get gerrit.reviewUrl)"
if test -n "${reviewurl}" ; then
if ! git interpret-trailers --parse < "$1" | grep -q '^Link:.*/id/I[0-9a-f]\{40\}$' ; then
if ! git interpret-trailers \
--trailer "Link: ${reviewurl%/}/id/I${random}" < "$1" > "${dest}" ; then
echo "cannot insert link footer in $1"
exit 1
fi
fi
else
# Avoid the --in-place option which only appeared in Git 2.8
# Avoid the --if-exists option which only appeared in Git 2.15
if ! git -c trailer.ifexists=doNothing interpret-trailers \
--trailer "Change-Id: I${random}" < "$1" > "${dest}" ; then
echo "cannot insert change-id line in $1"
exit 1
fi
fi
if ! mv "${dest}" "$1" ; then
echo "cannot mv ${dest} to $1"
exit 1
fi

View File

@ -18,32 +18,32 @@ scheme-mode
"(origin"
n> "(method " (p "url-fetch" method) ")"
n> "(uri " (cl-case (and method (intern method))
('git-fetch "git-reference...")
('svn-fetch "svn-reference...")
('hg-fetch "hg-reference...")
('cvs-fetch "cvs-reference...")
('bzr-fetch "bzr-reference...")
(t "\"https://...\""))
(git-fetch "git-reference...")
(svn-fetch "svn-reference...")
(hg-fetch "hg-reference...")
(cvs-fetch "cvs-reference...")
(bzr-fetch "bzr-reference...")
(otherwise "\"https://...\""))
")"
n>
(cl-case (and method (intern method))
('git-fetch
(git-fetch
(insert "(file-name (git-file-name name version))")
(newline)
(indent-according-to-mode))
('hg-fetch
(hg-fetch
(insert "(file-name (hg-file-name name version))")
(newline)
(indent-according-to-mode))
('svn-fetch
(svn-fetch
(insert "(file-name (string-append name \"-\" version \"-checkout\"))")
(newline)
(indent-according-to-mode))
('cvs-fetch
(cvs-fetch
(insert "(file-name (string-append name \"-\" version \"-checkout\"))")
(newline)
(indent-according-to-mode))
('bzr-fetch
(bzr-fetch
(insert "(file-name (string-append name \"-\" version \"-checkout\"))")
(newline)
(indent-according-to-mode))

View File

@ -43,8 +43,9 @@
"scons-build-system"
"texlive-build-system"
"trivial-build-system"
"waf-build-system")})
"waf-build-system"
"zig-build-system")})
(home-page "$4")
(synopsis "$5")
(description "$6")
(license $7)))
(license $7)))

21
etc/teams.scm.in → etc/teams.scm 100644 → 100755
View File

@ -1,5 +1,9 @@
#!@GUILE@ \
--no-auto-compile -s
#!/bin/sh
# Extra care is taken here to ensure this script can run in most environments,
# since it is invoked by 'git send-email'.
pre_inst_env_maybe=
command -v guix > /dev/null || pre_inst_env_maybe=./pre-inst-env
exec $pre_inst_env_maybe guix repl -- "$0" "$@"
!#
;;; GNU Guix --- Functional package management for GNU
@ -770,13 +774,16 @@ and REV-END, two git revision strings."
files))
(define (git-patch->commit-id file)
"Parse the commit ID from the first line of FILE, a patch produced with git."
"Parse the commit ID from FILE, a patch produced with git."
(call-with-input-file file
(lambda (port)
(let ((m (string-match "^From ([0-9a-f]{40})" (read-line port))))
(unless m
(error "invalid patch file:" file))
(match:substring m 1)))))
(let loop ((line (read-line port)))
(when (eof-object? line)
(error "could not find 'from' commit in patch" file))
(let ((m (string-match "^From ([0-9a-f]{40})" line)))
(if m
(match:substring m 1)
(loop (read-line port))))))))
(define (git-patch->revisions file)
"Return the start and end revisions of FILE, a patch file produced with git."

View File

@ -526,7 +526,7 @@ password from USERS."
(define now
;; On machines without a real-time clock (typically Arm SBCs), the system
;; clock may be at 1970-01-01 while booting, while would lead us to define
;; clock may be at 1970-01-01 while booting, which would lead us to define
;; NOW as zero.
;;
;; However, the 'isexpired' function in Shadow interprets the combination

View File

@ -0,0 +1,70 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2023 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu build icecat-extension)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix build-system trivial)
#:export (make-icecat-extension))
(define* (make-icecat-extension pkg #:optional (pkg-output "out"))
"Create an Icecat extension from package PKG and return a package that,
when installed, will make the extension contained in PKG available as an
Icecat browser extension. PKG-OUTPUT specifies which output of PKG to use."
(package
(inherit pkg)
(name (string-append (package-name pkg) "-icecat"))
(native-inputs '())
(inputs '())
(propagated-inputs (package-propagated-inputs pkg))
(outputs '("out"))
(build-system trivial-build-system)
(arguments
(list
#:modules '((guix build utils))
#:builder
#~(begin
(use-modules (guix build utils))
(let* ((addon-id #$(assq-ref (package-properties pkg) 'addon-id))
(moz-app-id "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}")
(search-dir (string-append #$output "/lib/icecat/extensions/"
moz-app-id)))
;; Icecat's iterates over `search-dir` for directories. If a
;; directory's name is not a valid add-on ID, it is ignored. See
;; `DirectoryLocation::readAddons()` in XPIProvider.jsm.
;; This directory has to be a symlink, because Icecat's
;; `_readLinkFile(aFile)` calls `normalize()` only if `aFile` is a
;; symlink.
;; Normalizing is required because Icecat compares the add-on path
;; against its local database to know if there is an extension
;; update. We want the add-on path to be the package store path,
;; so that a path change is detected every time the package is
;; updated. See `updateExistingAddon()` in XPIDatabase.jsm, with
;; our patch `icecat-compare-paths.patch`.
;; We don't want the add-on path to be the profile store path,
;; which would change too often. We don't want the add-on path to
;; be hard-coded either because it would never change (but it
;; wouldn't make sense anyway).
(mkdir-p search-dir)
(symlink (in-vicinity (ungexp pkg pkg-output) addon-id)
(in-vicinity search-dir addon-id))))))))

View File

@ -2,6 +2,7 @@
;;; Copyright © 2014, 2016, 2018, 2019, 2022 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2018 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2023 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;
@ -208,7 +209,7 @@ modules that can be postloaded, of the soft dependencies of module FILE."
(string-take filename extension)
filename)))
(define (dot-ko name compression)
(define* (dot-ko name #:optional compression)
(let ((suffix (match compression
('xz ".ko.xz")
('gzip ".ko.gz")

View File

@ -2,6 +2,7 @@
;;; Copyright © 2021-2023 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2022-2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2023 Carlo Zancanaro <carlo@zancanaro.id.au>
;;;
;;; This file is part of GNU Guix.
;;;
@ -412,20 +413,29 @@ activation.")))
#~(begin
(use-modules (guix i18n)
(guix diagnostics))
(define (claim-first-run file)
(catch #t
(lambda ()
;; This incantation raises an error if FILE already exists, and
;; creates it otherwise.
(close-fdes
(open-fdes file (logior O_CREAT O_EXCL O_CLOEXEC)))
#t)
(const #f)))
#$%initialize-gettext
(let* ((xdg-runtime-dir (or (getenv "XDG_RUNTIME_DIR")
(format #f "/run/user/~a" (getuid))))
(flag-file-path (string-append
xdg-runtime-dir "/on-first-login-executed"))
(touch (lambda (file-name)
(call-with-output-file file-name (const #t)))))
xdg-runtime-dir "/on-first-login-executed")))
;; XDG_RUNTIME_DIR dissapears on logout, that means such trick
;; allows to launch on-first-login script on first login only
;; after complete logout/reboot.
(if (file-exists? xdg-runtime-dir)
(unless (file-exists? flag-file-path)
(begin #$@gexps (touch flag-file-path)))
(when (claim-first-run flag-file-path)
(begin #$@gexps)) ;GEXPS can be empty, hence 'begin'
;; TRANSLATORS: 'on-first-login' is the name of a service and
;; shouldn't be translated
(warning (G_ "XDG_RUNTIME_DIR doesn't exists, on-first-login script

View File

@ -303,6 +303,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/gnu-pw-mgr.scm \
%D%/packages/gobby.scm \
%D%/packages/golang.scm \
%D%/packages/golang-check.scm \
%D%/packages/gperf.scm \
%D%/packages/gpodder.scm \
%D%/packages/gps.scm \
@ -762,6 +763,7 @@ GNU_SYSTEM_MODULES = \
%D%/build/chromium-extension.scm \
%D%/build/cross-toolchain.scm \
%D%/build/dbus-service.scm \
%D%/build/icecat-extension.scm \
%D%/build/image.scm \
%D%/build/jami-service.scm \
%D%/build/file-systems.scm \
@ -1034,9 +1036,7 @@ dist_patch_DATA = \
%D%/packages/patches/collectd-5.11.0-noinstallvar.patch \
%D%/packages/patches/combinatorial-blas-awpm.patch \
%D%/packages/patches/combinatorial-blas-io-fix.patch \
%D%/packages/patches/connman-CVE-2022-32292.patch \
%D%/packages/patches/connman-CVE-2022-32293-pt1.patch \
%D%/packages/patches/connman-CVE-2022-32293-pt2.patch \
%D%/packages/patches/connman-add-missing-libppp-compat.h.patch \
%D%/packages/patches/containerd-create-pid-file.patch \
%D%/packages/patches/converseen-hide-updates-checks.patch \
%D%/packages/patches/converseen-hide-non-free-pointers.patch \
@ -1127,6 +1127,8 @@ dist_patch_DATA = \
%D%/packages/patches/enblend-enfuse-reproducible.patch \
%D%/packages/patches/enjarify-setup-py.patch \
%D%/packages/patches/enlightenment-fix-setuid-path.patch \
%D%/packages/patches/ergodox-firmware-fix-json-target.patch \
%D%/packages/patches/ergodox-firmware-fix-numpad.patch \
%D%/packages/patches/erlang-man-path.patch \
%D%/packages/patches/esmini-no-clutter-log.patch \
%D%/packages/patches/esmini-use-pkgconfig.patch \
@ -1284,6 +1286,7 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-CVE-2019-7309.patch \
%D%/packages/patches/glibc-CVE-2019-9169.patch \
%D%/packages/patches/glibc-CVE-2019-19126.patch \
%D%/packages/patches/glibc-2.35-CVE-2023-4911.patch \
%D%/packages/patches/glibc-allow-kernel-2.6.32.patch \
%D%/packages/patches/glibc-boot-2.16.0.patch \
%D%/packages/patches/glibc-boot-2.2.5.patch \
@ -1417,8 +1420,10 @@ dist_patch_DATA = \
%D%/packages/patches/icecat-makeicecat.patch \
%D%/packages/patches/icecat-102-makeicecat.patch \
%D%/packages/patches/icecat-avoid-bundled-libraries.patch \
%D%/packages/patches/icecat-compare-paths.patch \
%D%/packages/patches/icecat-use-system-graphite2+harfbuzz.patch \
%D%/packages/patches/icecat-use-system-media-libs.patch \
%D%/packages/patches/icecat-use-system-wide-dir.patch \
%D%/packages/patches/icedtea-7-hotspot-aarch64-use-c++98.patch \
%D%/packages/patches/icedtea-7-hotspot-pointer-comparison.patch \
%D%/packages/patches/icu4c-fix-TestHebrewCalendarInTemporalLeapYear.patch \
@ -1902,11 +1907,13 @@ dist_patch_DATA = \
%D%/packages/patches/qtbase-absolute-runpath.patch \
%D%/packages/patches/qtbase-moc-ignore-gcc-macro.patch \
%D%/packages/patches/qtbase-qmake-use-libname.patch \
%D%/packages/patches/qtbase-5-use-TZDIR.patch \
%D%/packages/patches/qtbase-use-TZDIR.patch \
%D%/packages/patches/qtscript-disable-tests.patch \
%D%/packages/patches/quagga-reproducible-build.patch \
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \
%D%/packages/patches/quilt-grep-compat.patch \
%D%/packages/patches/qmk-firmware-fix-hacker-dvorak.patch \
%D%/packages/patches/qtwayland-dont-recreate-callbacks.patch \
%D%/packages/patches/qtwayland-cleanup-callbacks.patch \
%D%/packages/patches/ragel-char-signedness.patch \
@ -1946,6 +1953,7 @@ dist_patch_DATA = \
%D%/packages/patches/ruby-nokogiri.patch \
%D%/packages/patches/rustc-1.54.0-src.patch \
%D%/packages/patches/rust-1.64-fix-riscv64-bootstrap.patch \
%D%/packages/patches/rust-1.70-fix-rustix-build.patch \
%D%/packages/patches/rust-ring-0.16-missing-files.patch \
%D%/packages/patches/rust-ring-0.16-test-files.patch \
%D%/packages/patches/i3status-rust-enable-unstable-features.patch \
@ -1953,7 +1961,6 @@ dist_patch_DATA = \
%D%/packages/patches/rust-ndarray-0.13-remove-blas-src.patch \
%D%/packages/patches/rust-ndarray-0.14-remove-blas-src.patch \
%D%/packages/patches/rust-nettle-disable-vendor.patch \
%D%/packages/patches/rust-openssl-sys-no-vendor.patch \
%D%/packages/patches/rust-webbrowser-remove-unsupported-os.patch \
%D%/packages/patches/rust-wl-clipboard-rs-newer-wl.patch \
%D%/packages/patches/rw-igraph-0.10.patch \
@ -2028,6 +2035,7 @@ dist_patch_DATA = \
%D%/packages/patches/texinfo-5-perl-compat.patch \
%D%/packages/patches/telegram-desktop-allow-disable-libtgvoip.patch \
%D%/packages/patches/telegram-purple-adjust-test.patch \
%D%/packages/patches/teuchos-remove-duplicate-using.patch \
%D%/packages/patches/texi2html-document-encoding.patch \
%D%/packages/patches/texi2html-i18n.patch \
%D%/packages/patches/thefuck-test-environ.patch \
@ -2038,8 +2046,7 @@ dist_patch_DATA = \
%D%/packages/patches/tla2tools-build-xml.patch \
%D%/packages/patches/tlf-support-hamlib-4.2+.patch \
%D%/packages/patches/tofi-32bit-compat.patch \
%D%/packages/patches/tootle-glib-object-naming.patch \
%D%/packages/patches/tootle-reason-phrase.patch \
%D%/packages/patches/tpetra-remove-duplicate-using.patch \
%D%/packages/patches/transcode-ffmpeg.patch \
%D%/packages/patches/trytond-add-egg-modules-to-path.patch \
%D%/packages/patches/trytond-add-guix_trytond_path.patch \
@ -2053,6 +2060,7 @@ dist_patch_DATA = \
%D%/packages/patches/u-boot-fix-build-python-3.10.patch \
%D%/packages/patches/u-boot-fix-u-boot-lib-build.patch \
%D%/packages/patches/u-boot-nintendo-nes-serial.patch \
%D%/packages/patches/u-boot-patman-change-id.patch \
%D%/packages/patches/u-boot-rockchip-inno-usb.patch \
%D%/packages/patches/u-boot-sifive-prevent-reloc-initrd-fdt.patch \
%D%/packages/patches/u-boot-rk3399-enable-emmc-phy.patch \
@ -2063,7 +2071,6 @@ dist_patch_DATA = \
%D%/packages/patches/ungoogled-chromium-RUNPATH.patch \
%D%/packages/patches/ungoogled-chromium-system-ffmpeg.patch \
%D%/packages/patches/ungoogled-chromium-system-nspr.patch \
%D%/packages/patches/unison-fix-ocaml-4.08.patch \
%D%/packages/patches/unknown-horizons-python-3.8-distro.patch \
%D%/packages/patches/unzip-CVE-2014-8139.patch \
%D%/packages/patches/unzip-CVE-2014-8140.patch \

View File

@ -1479,14 +1479,18 @@ connection alive.")
(("^RELEASEVER=.*")
(format #f "RELEASEVER=~a\n" ,bind-release-version)))))
,@(if (%current-target-system)
'((add-before 'configure 'fix-bind-cross-compilation
`((add-before 'configure 'fix-bind-cross-compilation
(lambda _
(substitute* "configure"
(("--host=\\$host")
"--host=$host_alias"))
;; BIND needs a native compiler because the DHCP
;; build system uses the built 'gen' executable.
(setenv "BUILD_CC" "gcc"))))
(setenv "BUILD_CC" "gcc")
;; powerpc-linux needs to be told to use -latomic.
,@(if (target-ppc32?)
`((setenv "LIBS" "-latomic"))
'()))))
'())
(add-before 'configure 'update-config-scripts
(lambda* (#:key native-inputs inputs #:allow-other-keys)
@ -1549,7 +1553,6 @@ connection alive.")
(coreutils (assoc-ref inputs "coreutils*"))
(inetutils (assoc-ref inputs "inetutils"))
(grep (assoc-ref inputs "grep*"))
(net-tools (assoc-ref inputs "net-tools"))
(sed (assoc-ref inputs "sed*")))
(substitute* "client/scripts/linux"
(("/sbin/ip")
@ -1565,16 +1568,16 @@ connection alive.")
,(map (lambda (dir)
(string-append dir "/bin:"
dir "/sbin"))
(list inetutils net-tools coreutils grep sed))))))))))
(list inetutils coreutils grep sed))))))))))
(native-inputs
(list config perl file))
(inputs `(("inetutils" ,inetutils)
("bash" ,bash-minimal)
,@(if (target-hurd?) '()
`(("net-tools" ,net-tools)
("iproute" ,iproute)))
,@(if (target-hurd?)
'()
`(("iproute" ,iproute)))
;; isc-dhcp bundles a copy of BIND, which has proved vulnerable
;; in the past. Use a BIND-VERSION of our choosing instead.
@ -3506,7 +3509,7 @@ throughput (in the same interval).")
(define-public dool
(package
(name "dool")
(version "1.1.0")
(version "1.3.0")
(source
(origin
(method git-fetch)
@ -3515,7 +3518,7 @@ throughput (in the same interval).")
(commit (string-append "v" version))))
(file-name (git-file-name "dool" version))
(sha256
(base32 "13qq52lq7z3pl2mgrhwqh8c69p9x5rkyjqjswszd6vdbzm7zk7yq"))))
(base32 "1728wxy338gf2l06b0b4j9j8vihadw5whzzj7mi9p3by633h5s8m"))))
(build-system python-build-system)
(arguments
(list
@ -5488,7 +5491,7 @@ interfering with any pam-mount configuration.")))
(define-public wlgreet
(package
(name "wlgreet")
(version "0.4")
(version "0.4.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -5497,25 +5500,24 @@ interfering with any pam-mount configuration.")))
(file-name (git-file-name name version))
(sha256
(base32
"00grp63n9nrgqls3knxfv9wjbc7p0jwr7i2vzxy750dz85gi2kzn"))))
"1k0jmgh0rjbnb49gkvs0a4d7z9xb6pad8v5w5f7my4s0rfpk7wd9"))))
(build-system cargo-build-system)
(arguments
(list #:cargo-inputs
`(("rust-chrono" ,rust-chrono-0.4)
("rust-getopts" ,rust-getopts-0.2)
("rust-greetd-ipc" ,rust-greetd-ipc-0.8)
("rust-greetd-ipc" ,rust-greetd-ipc-0.9)
("rust-lazy-static" ,rust-lazy-static-1)
("rust-memmap2" ,rust-memmap2-0.3)
("rust-nix" ,rust-nix-0.15)
("rust-os-pipe" ,rust-os-pipe-0.8)
("rust-rusttype" ,rust-rusttype-0.7)
("rust-nix" ,rust-nix-0.25)
("rust-os-pipe" ,rust-os-pipe-1)
("rust-rusttype" ,rust-rusttype-0.9)
("rust-serde" ,rust-serde-1)
("rust-smithay-client-toolkit"
,rust-smithay-client-toolkit-0.15)
("rust-toml" ,rust-toml-0.5)
("rust-wayland-client" ,rust-wayland-client-0.29)
("rust-wayland-protocols" ,rust-wayland-protocols-0.29)
("rust-xml-rs" ,rust-xml-rs-0.8))
("rust-wayland-protocols" ,rust-wayland-protocols-0.29))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'remove-bundled-fonts
@ -5907,34 +5909,54 @@ file or files to several hosts.")
(define-public du-dust
(package
(name "du-dust")
(version "0.8.3")
(version "0.8.6")
(source (origin
(method url-fetch)
(uri (crate-uri "du-dust" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1daif13rdd7wb8m5fbp6zif5b8znqcvmkxrjpp2w2famsp36sahx"))))
"1w52xdz1vi6awsvf4lph791zv13phjvz4ypmxr7f6pgxd3crr77c"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-ansi-term" ,rust-ansi-term-0.12)
("rust-clap" ,rust-clap-3)
`(#:cargo-test-flags
(list "--release" "--"
"--skip=test_apparent_size")
#:install-source? #f
#:cargo-inputs (("rust-ansi-term" ,rust-ansi-term-0.12)
("rust-atty" ,rust-atty-0.2)
("rust-clap" ,rust-clap-3)
("rust-clap-complete" ,rust-clap-complete-3)
("rust-clap-mangen" ,rust-clap-mangen-0.1)
("rust-config-file" ,rust-config-file-0.2)
("rust-directories" ,rust-directories-4)
("rust-lscolors" ,rust-lscolors-0.7)
("rust-lscolors" ,rust-lscolors-0.13)
("rust-rayon" ,rust-rayon-1)
("rust-regex" ,rust-regex-1)
("rust-serde" ,rust-serde-1)
("rust-stfu8" ,rust-stfu8-0.2)
("rust-sysinfo" ,rust-sysinfo-0.15)
("rust-terminal-size" ,rust-terminal-size-0.1)
("rust-sysinfo" ,rust-sysinfo-0.27)
("rust-terminal-size" ,rust-terminal-size-0.2)
("rust-thousands" ,rust-thousands-0.2)
("rust-unicode-width" ,rust-unicode-width-0.1)
("rust-winapi-util" ,rust-winapi-util-0.1))
#:cargo-development-inputs (("rust-assert-cmd" ,rust-assert-cmd-1)
("rust-tempfile" ,rust-tempfile-3))))
#:cargo-development-inputs (("rust-assert-cmd" ,rust-assert-cmd-2)
("rust-tempfile" ,rust-tempfile-3))
#:phases
(modify-phases %standard-phases
(add-after 'install 'install-extras
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share")))
(install-file "man-page/dust.1"
(string-append share "/man/man1"))
(mkdir-p (string-append out "/etc/bash_completion.d"))
(copy-file "completions/dust.bash"
(string-append out "/etc/bash_completion.d/dust"))
(install-file "completions/dust.fish"
(string-append share "/fish/vendor_completions.d"))
(install-file "completions/_dust"
(string-append share "/zsh/site-fuctions"))))))))
(home-page "https://github.com/bootandy/dust")
(synopsis "Graphical disk usage analyzer")
(description "This package provides a graphical disk usage analyzer in

View File

@ -270,6 +270,7 @@ try agda-prelude instead.")
(uri (git-reference
(url "https://github.com/agda/cubical.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0yfg7gr55n08ly1qgzpcp16s15k1abycppbcdi9lzg1hjryqxcg3"))))

View File

@ -28,8 +28,11 @@
#:use-module (guix packages)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gettext)
#:use-module (gnu packages java)
#:use-module (gnu packages maths)
#:use-module (gnu packages pcre)
#:use-module (gnu packages readline)
@ -120,3 +123,86 @@ single line drawing characters, as well as the full Unicode APL range,
including both uppercase and lowercase underscored alphabets, as-of-yet unused
symbols, and almost all Latin-1 accented letters.")
(license license:unlicense))))
(define-public dzaima-apl
(package
(name "dzaima-apl")
(version "0.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dzaima/APL.git")
(commit (string-append "v" version))))
(sha256
(base32 "1hnrq0mlff6b9c9129afphcnmzd05wdyyfs905n421diyd5xa0il"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(inputs (list bash-minimal openjdk18))
(native-inputs (list `(,openjdk18 "jdk") zip))
(arguments
(list
#:imported-modules `(,@%gnu-build-system-modules
(guix build ant-build-system))
#:modules `((guix build gnu-build-system)
((guix build ant-build-system) #:prefix ant:)
(guix build utils)
(ice-9 ftw)
(ice-9 regex)
(srfi srfi-26))
#:phases
`(modify-phases %standard-phases
(delete 'configure)
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(let* ((javac (search-input-file inputs "/bin/javac"))
(jar (search-input-file inputs "/bin/jar")))
(mkdir-p "src/build")
(apply invoke javac "-encoding" "UTF-8" "-d" "src/build"
(let ((files '()))
(ftw "src/APL/"
(lambda (filename statinfo flags)
(if (string-match ".*\\.java" filename)
(set! files (cons filename files)))
#t))
files))
(with-directory-excursion "src/build"
(invoke jar "--create" "--verbose"
"--file=dzaima-apl.jar"
"--main-class=APL.Main"
"APL")))))
(delete 'check) ;; Upstream implements no tests
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(share (string-append out "/share/java"))
(wrapper (string-append bin "/dzaima-apl")))
(mkdir-p share)
(mkdir-p bin)
(install-file "src/build/dzaima-apl.jar" share)
(with-output-to-file wrapper
(lambda _
(display (string-append
"#!" (search-input-file inputs "/bin/sh") "\n"
(search-input-file inputs "/bin/java")
" -jar " share "/dzaima-apl.jar \"$@\""))))
(chmod wrapper #o555))))
(add-after 'install 'reorder-jar-content
(lambda* (#:key outputs #:allow-other-keys)
(apply (assoc-ref ant:%standard-phases 'reorder-jar-content)
#:outputs (list outputs))))
(add-after 'reorder-jar-content 'generate-jar-indices
(lambda* (#:key outputs #:allow-other-keys)
(apply (assoc-ref ant:%standard-phases 'generate-jar-indices)
#:outputs (list outputs))))
(add-after 'generate-jar-indices 'reorder-jar-content
(lambda* (#:key outputs #:allow-other-keys)
(apply (assoc-ref ant:%standard-phases 'reorder-jar-content)
#:outputs (list outputs)))))))
(home-page "https://github.com/dzaima/APL")
(synopsis "Implementation of the APL programming language in Java")
(description
"This package provides an implementation of APL in Java, extended from
Dyalog APL.")
(license license:expat)))

View File

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 20182023 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018-2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2019 by Amar Singh <nly@disroot.org>
;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
@ -186,7 +186,7 @@ reused in several astronomical applications, such as @code{wsclean},
(define-public calceph
(package
(name "calceph")
(version "3.5.2")
(version "3.5.3")
(source
(origin
(method url-fetch)
@ -194,7 +194,7 @@ reused in several astronomical applications, such as @code{wsclean},
"https://www.imcce.fr/content/medias/recherche/equipes/asd/calceph/calceph-"
version ".tar.gz"))
(sha256
(base32 "1rnjlaiii4j0agbj4k242p212bqqmqdqa0lni6c3bnhgfnrbjfp4"))))
(base32 "12apl806h8qx1kq74malq3828jqapwfi27cn05pvvxfiq7gfpllx"))))
(build-system gnu-build-system)
(native-inputs
(list gfortran))
@ -711,9 +711,10 @@ corrections.")
(uri (string-append "https://www.atnf.csiro.au/people/mcalabre/WCS/"
"wcslib-" version ".tar.bz2"))
(sha256
(base32 "17hjnkwn2rd5d9krw2n637q4y8ma4nzk2i55zzn8l2yimdpkxwib"))))
(inputs
(list cfitsio))
(base32 "17hjnkwn2rd5d9krw2n637q4y8ma4nzk2i55zzn8l2yimdpkxwib"))
(snippet
#~(begin (use-modules (guix build utils))
(delete-file-recursively "C/flexed")))))
(build-system gnu-build-system)
(arguments
(list
@ -731,6 +732,10 @@ corrections.")
(("/bin/sh") "sh")))))))
;; TODO: Fix build with gfortran and pack missing optional pgplot.
;; (inputs (list gfortran pgplot))
(inputs
(list cfitsio))
(native-inputs
(list flex))
(home-page "https://www.atnf.csiro.au/people/mcalabre/WCS")
(synopsis "Library which implements the FITS WCS standard")
(description "The FITS \"World Coordinate System\" (@dfn{WCS}) standard
@ -751,7 +756,10 @@ header.")
(uri (string-append "https://www.atnf.csiro.au/people/mcalabre/WCS/"
"wcslib-" version ".tar.bz2"))
(sha256
(base32 "1m3bx6gh5w3c7vvsqcki0x20mg8lilg13m0i8nh7za89w58dxy4w"))))
(base32 "1m3bx6gh5w3c7vvsqcki0x20mg8lilg13m0i8nh7za89w58dxy4w"))
(snippet
#~(begin (use-modules (guix build utils))
(delete-file-recursively "C/flexed")))))
(properties '((hidden? . #t)))))
(define-public wcstools
@ -876,7 +884,7 @@ different kinds of input files.")
(define-public gnuastro
(package
(name "gnuastro")
(version "0.20")
(version "0.21")
(source
(origin
(method url-fetch)
@ -884,7 +892,7 @@ different kinds of input files.")
version ".tar.lz"))
(sha256
(base32
"05bkad0xbax9k0m2g2507mdmjg2109sfg72dsx16f44yj55llh2n"))))
"1zyk764pmfrsfj45gnc3qp4z1zfmgrv7kcsji2bxfzvs9inzzq4c"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--disable-static")))
@ -1020,7 +1028,7 @@ crowded star fields.")
(define-public siril
(package
(name "siril")
(version "1.0.6")
(version "1.2.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1028,16 +1036,18 @@ crowded star fields.")
(commit version)))
(sha256
(base32
"0iqxb5zmjyygg4b6lwlq8z82mngxg7kjjpahhzk52m0cypfq0l18"))
"0ss1m9w4cz1752vp5738057nzmqc6k7fc9pi6kr9cwgspi1haall"))
(file-name (git-file-name name version))))
(build-system meson-build-system)
(native-inputs (list cmake git glib libconfig pkg-config))
(inputs (list cfitsio
exiv2
ffms2
fftwf
gsl
gtk+
json-glib
libheif
libraw
librtprocess
opencv))
@ -1202,7 +1212,7 @@ deconvolution). Such post-processing is not performed by Stackistry.")
(define-public stellarium
(package
(name "stellarium")
(version "23.2")
(version "23.3")
(source
(origin
(method git-fetch)
@ -1211,7 +1221,7 @@ deconvolution). Such post-processing is not performed by Stackistry.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0fkiibc6m8kfmyf5my7ynfrpdlrcri14cl26swpgv3bhzxpmx27h"))))
(base32 "15kl8kn5fmmppbm93w5ki7lpjn09lhyhn245v3jc335xifcwd2vd"))))
(build-system cmake-build-system)
;; TODO: Complete documentation build and split into dedicated outputs.
(arguments
@ -1720,7 +1730,7 @@ bad pixel tracking throughout the reduction process.")
(define-public python-cdflib
(package
(name "python-cdflib")
(version "1.1.0")
(version "1.2.1")
(source
(origin
(method git-fetch) ; no tests in pypi archive
@ -1729,7 +1739,7 @@ bad pixel tracking throughout the reduction process.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0qxf13vmfiblcazxdk2b765b02ys57amawvrwlkj9d5x9f5s6061"))))
(base32 "0v73fl69pxbk52ilhj2593zmn3qhqy4hrrwby8m9z2sq3fd5xk0v"))))
(build-system pyproject-build-system)
(arguments
(list #:phases
@ -1769,13 +1779,13 @@ attempting to maintain ISTP compliance
(define-public python-crds
(package
(name "python-crds")
(version "11.17.4")
(version "11.17.6")
(source (origin
(method url-fetch)
(uri (pypi-uri "crds" version))
(sha256
(base32
"0bk6cyd2il7ibqwky6m5kkgs9shrlzyfpnp2rh9jx0xa9habf7zm"))))
"1sbfl45rx21g622vm8baqv0ydcdixf1jdjgydn07sxl7kn15fa4g"))))
(build-system pyproject-build-system)
(arguments
(list
@ -1888,48 +1898,43 @@ used with local NetDRMS sites.")
(define-public python-drizzle
(package
(name "python-drizzle")
(version "1.13.7")
(source (origin
(method git-fetch) ;PyPi doesn't have the test data sets
(uri (git-reference
(url "https://github.com/spacetelescope/drizzle")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0x591d9gjasds91fvwcf37bhxp5nra28g0vq5zkykczpc70ywiy8"))))
(version "1.14.3")
(source
(origin
(method git-fetch) ;PyPi doesn't have the test data sets
(uri (git-reference
(url "https://github.com/spacetelescope/drizzle")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "04gncwg76yivcaq7rwgsw5k8w4h3c4wcrjcamb53h0d5s820z7dl"))))
(build-system pyproject-build-system)
(arguments
(list
;; XXX: 2 of 26 tests failed with AssertionError, disable them for now.
;; Consider mention it in upstream.
#:test-flags #~(list "-k"
(string-append "not test_square_with_point"
" and not test_square_with_grid"))
#:phases #~(modify-phases %standard-phases
(add-before 'build 'set-env-version
(lambda _
(setenv "SETUPTOOLS_SCM_PRETEND_VERSION"
#$version)))
(add-before 'check 'build-extensions
(lambda _
;; Cython extensions have to be built before running
;; the tests.
(invoke "python" "setup.py" "build_ext" "--inplace"))))))
(propagated-inputs (list python-astropy python-numpy))
(native-inputs (list python-coverage python-flake8 python-pytest
python-pytest-cov python-setuptools-scm))
#:phases
#~(modify-phases %standard-phases
(add-before 'build 'set-env-version
(lambda _
(setenv "SETUPTOOLS_SCM_PRETEND_VERSION" #$version)))
(add-before 'check 'build-extensions
(lambda _
;; Cython extensions have to be built before running the tests.
(invoke "python" "setup.py" "build_ext" "--inplace"))))))
(propagated-inputs
(list python-astropy python-numpy))
(native-inputs
(list python-flake8 python-pytest python-setuptools-scm))
(home-page "https://github.com/spacetelescope/drizzle")
(synopsis
"Astronomical tool for combining dithered images into a single image")
(description
"The drizzle library is a Python package for combining dithered images into
a single image. This library is derived from code used in DrizzlePac. Like
DrizzlePac, most of the code is implemented in the C language. The biggest
change from DrizzlePac is that this code passes an array that maps the input to
output image into the C code, while the DrizzlePac code computes the mapping by
using a Python callback. Switching to using an array allowed the code to be
greatly simplified.")
"The drizzle library is a Python package for combining dithered images
into a single image. This library is derived from code used in DrizzlePac.
Like DrizzlePac, most of the code is implemented in the C language. The
biggest change from DrizzlePac is that this code passes an array that maps the
input to output image into the C code, while the DrizzlePac code computes the
mapping by using a Python callback. Switching to using an array allowed the
code to be greatly simplified.")
(license license:bsd-3)))
(define-public python-ephem
@ -2225,13 +2230,13 @@ Virtual observatory (VO) using Python.")
(define-public python-reproject
(package
(name "python-reproject")
(version "0.11.0")
(version "0.12.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "reproject" version))
(sha256
(base32 "0p07qlqinb826m4n5b5invyfyv4z750sai2caqaf598mgj04l61p"))))
(base32 "1cjdfv7wd4c0ia63vqakxf9w8hd5dfz6jzi520scd37rliy1xgld"))))
(build-system pyproject-build-system)
(arguments
(list
@ -2241,6 +2246,9 @@ Virtual observatory (VO) using Python.")
;; from .deforest import map_coordinates
;; E ModuleNotFoundError: No module named 'reproject.adaptive.deforest'
;;
;; Project removed setup.py and there is no alternative to `python
;; setup.py build_ext'
;; See: https://github.com/pypa/setuptools/discussions/3388
#:tests? #f
#:phases
#~(modify-phases %standard-phases
@ -2315,13 +2323,13 @@ orbits described in TLE files.")
(define-public python-sunpy
(package
(name "python-sunpy")
(version "5.0.0")
(version "5.0.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "sunpy" version))
(sha256
(base32 "1w75yc8az86pwbf79h083j4kc2ycfk76ky5kzlmcwgp0ih23mhym"))))
(base32 "1r4phc91k527kvpa2jd1d417x97wqyrm3ydayr9hshwz1k5v5ngf"))))
(build-system pyproject-build-system)
(arguments
(list
@ -2577,27 +2585,38 @@ image processing functions: @code{xyxymatch}, @code{geomap}.")
(define-public python-stcal
(package
(name "python-stcal")
(version "1.4.2")
(source (origin
(method url-fetch)
(uri (pypi-uri "stcal" version))
(sha256
(base32
"163vyqcd9qv2knf8jik8y449z7ljl2lvbd7im82bq61prgi3z2hj"))))
(version "1.4.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "stcal" version))
(sha256
(base32 "031ldihdmsdrwz4wl49bfk2bxmzbp1i3kidrw46xz936765zmnc0"))))
(build-system pyproject-build-system)
(arguments
(list #:phases #~(modify-phases %standard-phases
;; XXX: Can't detect opencv-python version. The input
;; opencv might not set the version correctly.
(delete 'sanity-check))))
(propagated-inputs (list opencv ;Provides OpenCV-Python
python-astropy python-numpy python-scipy))
(native-inputs (list python-psutil
python-pytest
python-pytest-cov
python-pytest-doctestplus
python-pytest-openfiles
python-setuptools-scm))
(list
#:phases
#~(modify-phases %standard-phases
;; XXX: Can't detect opencv-python version. The input opencv might
;; not set the version correctly.
(delete 'sanity-check)
(add-before 'check 'build-extensions
(lambda _
;; Cython extensions have to be built before running the tests.
(invoke "python" "setup.py" "build_ext" "--inplace"))))))
(propagated-inputs
(list opencv ;Provides OpenCV-Python
python-astropy
python-numpy
python-scipy))
(native-inputs
(list python-cython
python-psutil
python-pytest
python-pytest-cov
python-pytest-doctestplus
python-pytest-openfiles
python-setuptools-scm))
(home-page "https://github.com/spacetelescope/stcal")
(synopsis "STScI tools and algorithms used in calibration pipelines")
(description "STScI tools and algorithms used in calibration pipelines.")
@ -2606,53 +2625,60 @@ image processing functions: @code{xyxymatch}, @code{geomap}.")
(define-public python-stdatamodels
(package
(name "python-stdatamodels")
(version "1.8.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "stdatamodels" version))
(sha256
(base32
"003h3f07aqf6s24ivwnps81n2h51k545b236s75l8ppvjrm45xfq"))))
(version "1.8.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "stdatamodels" version))
(sha256
(base32 "0265xa9nrp6qp1z7v9kmnd3c8jc0dad2vzin657clk3rrsj2qll5"))))
(build-system pyproject-build-system)
(arguments
(list
;; Disable tests requiring access to CRDS servers to download ~500MiB
;; of data.
;; Disable tests requiring access to CRDS servers to download ~500MiB of
;; data.
#:test-flags #~(list "-k" "not test_crds_selectors_vs_datamodel")
#:phases #~(modify-phases %standard-phases
(add-before 'check 'set-home
(lambda _
(setenv "HOME" "/tmp"))))))
(propagated-inputs (list python-asdf
python-asdf-astropy
python-astropy
python-numpy
python-psutil))
(native-inputs (list python-crds
python-pytest
python-pytest-doctestplus
python-scipy
python-semantic-version
python-setuptools-scm))
#:phases
#~(modify-phases %standard-phases
(add-before 'check 'set-home
(lambda _
(setenv "HOME" "/tmp"))))))
(propagated-inputs
(list python-asdf
python-asdf-astropy
python-astropy
python-numpy
python-psutil))
(native-inputs
(list python-crds
python-pytest
python-pytest-doctestplus
python-scipy
python-semantic-version
python-setuptools-scm))
(home-page "https://github.com/spacetelescope/stdatamodels")
(synopsis
"Core support for DataModel classes used in calibration pipelines")
(description
"Provides DataModel, which is the base class for data models implemented in
the @acronym{JWST, James Webb Space Telescope} and @acronym{Roman, Nancy Grace
Roman Space Telescope} calibration software.")
"Provides @code{DataModel}, which is the base class for data models
implemented in the @acronym{JWST, James Webb Space Telescope} and
@acronym{Roman, Nancy Grace Roman Space Telescope} calibration software.")
(license license:bsd-3)))
(define-public python-stpipe
(package
(name "python-stpipe")
(version "0.5.0")
(version "0.5.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "stpipe" version))
(sha256
(base32
"17gnwzhl10vbg059lfprdyci19dlh3whkmb9rl7z25wr593rnvcp"))))
"11ccb3v2s20lf851061s4nanljwm9s9xzkcfgb3qhv0hjwziq0vr"))))
(arguments
(list
;; See https://github.com/spacetelescope/stpipe/issues/114
#:test-flags #~(list "-k" "not test_roman_datamodel")))
(build-system pyproject-build-system)
(propagated-inputs (list python-asdf python-astropy python-crds
python-semantic-version python-stdatamodels))
@ -3106,10 +3132,10 @@ floating-point (no compression, LZW- or ZIP-compressed), FITS 8-bit, 16-bit,
32-bit floating-point.")
(license license:gpl3+)))
(define-public indi
(define-public indi-2.0
(package
(name "indi")
(version "1.9.9")
(version "2.0.4")
(source
(origin
(method git-fetch)
@ -3118,7 +3144,7 @@ floating-point (no compression, LZW- or ZIP-compressed), FITS 8-bit, 16-bit,
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1vfcas59nlw8v7n6qhxhcm4isf5wk0crip5rmsallq3bsv3zznfr"))))
(base32 "1pp72bqxrvdij47fqfrnyxwqw1w8prxvs1igjsazcw8ncbrdbbjc"))))
(build-system cmake-build-system)
(arguments
;; TODO: fix failing tests on aarch64-system.
@ -3167,6 +3193,24 @@ more.")
license:lgpl2.0+
license:lgpl2.1+))))
(define-public indi-1.9
(package
(inherit indi-2.0)
(version "1.9.9")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/indilib/indi")
(commit (string-append "v" version))))
(file-name (git-file-name "indi" version))
(sha256
(base32 "1vfcas59nlw8v7n6qhxhcm4isf5wk0crip5rmsallq3bsv3zznfr"))))))
(define-public indi
;; Default version of INDI..
indi-1.9)
(define-public sunclock
(let ((commit "f4106eb0a81f7594726d6b2859efd8fc64cc1225")
(revision "1"))
@ -3229,43 +3273,44 @@ Moon position, etc.")
(define-public python-jplephem
(package
(name "python-jplephem")
(version "2.18")
(version "2.19")
(source
(origin
(method url-fetch)
(uri (pypi-uri "jplephem" version))
(sha256
(base32 "1rgswy52ismij0bkmfqwbml5zikzvzzs1f833dwk0y64lkl12aa9"))))
(build-system python-build-system)
(base32 "1kvdzwyh0invinvcnwfr14r9zbqzcwkdh0cpzw1m4vkdcm64aqn1"))))
(build-system pyproject-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? inputs outputs #:allow-other-keys)
(when tests?
(let ((out (assoc-ref outputs "out")))
(add-installed-pythonpath inputs outputs)
(setenv "PATH" (string-append out "/bin:" (getenv "PATH")))
(invoke "python" "-m" "unittest" "discover" "-s" "test"))))))))
(list
#:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "python" "-m" "unittest" "discover" "-s" "test")))))))
(inputs
(list python-numpy))
(home-page "https://github.com/brandon-rhodes/python-jplephem")
(synopsis "Python version of NASA DE4xx ephemerides")
(description
"The package is a Python implementation of the mathematics that standard
JPL ephemerides use to predict raw (x,y,z) planetary positions.")
"@code{skyfield} computes positions for the stars, planets, and
satellites in orbit around the Earth. Its results should agree with the
positions generated by the United States Naval Observatory and their
Astronomical Almanac to within 0.0005 arcseconds (half a @emph{mas} or
milliarcsecond).")
(license license:expat)))
(define-public python-jwst
(package
(name "python-jwst")
(version "1.11.4")
(version "1.12.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "jwst" version))
(sha256
(base32
"1q3kpdjr8j1y8hkpidy80aqxsp3k13sz4j5aagq3wnzvpnds3x73"))))
"0bw7i0pmpdgk2zf47d57g45hm3yb4wbrf1p19z9vg555qv4f4kr5"))))
(build-system pyproject-build-system)
(arguments
(list
@ -3524,13 +3569,13 @@ of the old packages.")
(define-public python-tweakwcs
(package
(name "python-tweakwcs")
(version "0.8.2")
(version "0.8.3")
(source (origin
(method url-fetch)
(uri (pypi-uri "tweakwcs" version))
(sha256
(base32
"1500w737n9vf5hv16xkybk4shl7g4wfzb2ji9mc4vgzj41gkrwl4"))))
"09bd8b77rpn641cwmkhcyzx43xkx3va83wdcb47wcqqa7qgx9f1m"))))
(build-system pyproject-build-system)
(propagated-inputs (list python-astropy
python-gwcs
@ -3847,13 +3892,13 @@ install an implementation package such as gwcs.")
(define-public python-gwcs
(package
(name "python-gwcs")
(version "0.18.3")
(version "0.19.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "gwcs" version))
(sha256
(base32 "0mgyk5mgmj242g8nl7glcj689vry3ncwf04b8q3hasjcc9bs0rm4"))))
(base32 "1f3h41aq4nwcl6k80jb9s8shn2mhvz32mx9qhcm1xmcqrflqyf52"))))
(build-system pyproject-build-system)
(native-inputs
(list python-jsonschema

View File

@ -735,7 +735,7 @@ purposes developed at Queen Mary, University of London.")
(define-public ardour
(package
(name "ardour")
(version "7.5")
(version "8.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -752,68 +752,69 @@ purposes developed at Queen Mary, University of London.")
namespace ARDOUR { const char* revision = \"" version "\" ; const char* date = \"\"; }")))))
(sha256
(base32
"18pgxnxfp0pqsy24cmf3hanr6vh0pnimsh48x5nfbflqy7ljsrkj"))
"1a2dbysd64njiw087ypkwlvr31qz3dvfaca55nq2bc4fmm71mgv4"))
(file-name (string-append name "-" version))))
(build-system waf-build-system)
(arguments
`(#:configure-flags '("--cxx11" ; required by gtkmm
"--optimize"
"--no-phone-home" ; don't contact ardour.org
"--freedesktop" ; build .desktop file
"--test" ; build unit tests
"--use-external-libs") ; use system libraries
(list
#:configure-flags
'(list "--cxx11" ;required by gtkmm
"--optimize"
"--no-phone-home" ;don't contact ardour.org
"--freedesktop" ;build .desktop file
"--test" ;build unit tests
"--use-external-libs") ;use system libraries
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-rpath-in-LDFLAGS
(lambda* (#:key outputs #:allow-other-keys)
(let ((libdir (string-append (assoc-ref outputs "out")
"/lib/ardour"
,(version-major version))))
(substitute* "wscript"
(("linker_flags = \\[\\]")
(string-append "linker_flags = [\""
"-Wl,-rpath="
libdir ":"
libdir "/backends" ":"
libdir "/engines" ":"
libdir "/panners" ":"
libdir "/surfaces" ":"
libdir "/vamp" "\"]"))))))
(add-after 'build 'build-i18n
(lambda _
(invoke "python" "waf" "i18n")))
(add-after 'install 'install-freedesktop-files
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share"))
(ver ,(version-major version)))
(for-each
(lambda (size)
(let ((dir (string-append share "/icons/hicolor/"
size "x" size "/apps")))
(mkdir-p dir)
(copy-file
#~(modify-phases %standard-phases
(add-after 'unpack 'set-rpath-in-LDFLAGS
(lambda _
(let ((libdir (string-append #$output
"/lib/ardour"
#$(version-major version))))
(substitute* "wscript"
(("linker_flags = \\[\\]")
(string-append "linker_flags = [\""
"-Wl,-rpath="
libdir ":"
libdir "/backends" ":"
libdir "/engines" ":"
libdir "/panners" ":"
libdir "/surfaces" ":"
libdir "/vamp" "\"]"))))))
(add-after 'build 'build-i18n
(lambda _
(invoke "python" "waf" "i18n")))
(add-after 'install 'install-freedesktop-files
(lambda _
(let ((share (string-append #$output "/share"))
(ver #$(version-major version)))
(for-each
(lambda (size)
(let ((dir (string-append share "/icons/hicolor/"
size "x" size "/apps")))
(mkdir-p dir)
(copy-file
(string-append "gtk2_ardour/resources/Ardour-icon_"
size "px.png")
(string-append dir "/ardour" ver ".png"))))
'("16" "22" "32" "48" "256"))
(install-file (string-append "build/gtk2_ardour/ardour"
ver ".desktop")
(string-append share "/applications/"))
(install-file (string-append "build/gtk2_ardour/ardour"
ver ".appdata.xml")
(string-append share "/appdata/")))))
(add-after 'install 'install-man-page
(lambda* (#:key outputs #:allow-other-keys)
(install-file "ardour.1" (string-append (assoc-ref outputs "out")
"/share/man/man1"))))
(add-after 'install 'install-bundled-media
(lambda* (#:key outputs #:allow-other-keys)
(invoke "unzip" "-d" (string-append (assoc-ref outputs "out")
"/share/ardour"
,(version-major version)
"/media/")
,ardour-bundled-media))))
'("16" "22" "32" "48" "256"))
(install-file (string-append "build/gtk2_ardour/ardour"
ver ".desktop")
(string-append share "/applications/"))
(install-file (string-append "build/gtk2_ardour/ardour"
ver ".appdata.xml")
(string-append share "/appdata/")))))
(add-after 'install 'install-man-page
(lambda _
(install-file "ardour.1" (string-append #$output
"/share/man/man1"))))
(add-after 'install 'install-bundled-media
(lambda _
(invoke "unzip" "-d" (string-append #$output
"/share/ardour"
#$(version-major version)
"/media/")
#$ardour-bundled-media))))
#:test-target "test"))
(inputs
(list alsa-lib

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -29,6 +30,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages avr)
#:use-module (gnu packages documentation)
#:use-module (gnu packages elf)
#:use-module (gnu packages gl)
#:use-module (gnu packages pkg-config)
@ -95,3 +97,84 @@ directly, and there is even a way to specify simulation parameterps directly
in the emulated code using an @code{.elf} section. You can also load
multipart HEX files.")
(license license:gpl3)))
(define-public lufa
(package
(name "lufa")
(version "210130")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/abcminiuser/lufa")
(commit (string-append "LUFA-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0ylr7qsiikcy827k18zj1vdzf0kb8hb0gjmifd75y8krkhhar49g"))))
(outputs '("bootloaders" "demos" "projects" "doc"))
(build-system gnu-build-system)
(arguments
;; There are tests, but even LUFA's own CI doesn't run them (they are
;; only built).
(list
#:tests? #f
#:modules '((guix build gnu-build-system)
(guix build utils)
(ice-9 match)
(srfi srfi-26))
#:make-flags
#~(list (string-append "SHELL="(search-input-file %build-inputs
"bin/sh")))
#:phases #~(modify-phases %standard-phases
(delete 'configure)
(add-before 'build 'build-documentation
(lambda* (#:key make-flags #:allow-other-keys)
(apply invoke "make" "-j" (number->string
(or (parallel-job-count)
1))
"doxygen"
;; Ignore errors (see:
;; https://github.com/abcminiuser/lufa/issues/90).
"-i"
make-flags)))
(replace 'install
;; There is no default install target as the library is
;; intended to be integrated in source form in a
;; project. Install the example projects and demos
;; binaries as well as the documentation.
(lambda _
(let ((doc (string-append #$output:doc
"/share/doc/lufa/"))
(html-dirs (find-files "." "^html$"
#:directories? #t)))
(for-each (cut install-file <> #$output:bootloaders)
(find-files "Bootloaders" "\\.hex$"))
(for-each (cut install-file <> #$output:demos)
(find-files "Demos" "\\.hex$"))
(for-each (cut install-file <> #$output:projects)
(find-files "Projects" "\\.hex$"))
;; Install Doxygen generated HTML documentation.
(for-each
(lambda (html)
(let* ((suffix "Documentation/html")
(l (string-length suffix))
(dest (string-append
doc
(string-drop
(if (string-suffix? suffix html)
(string-drop-right html l)
(error "unexpected path" html))
1)))) ;drop leading "."
(mkdir-p dest)
(copy-recursively html dest)))
html-dirs)))))))
(native-inputs (list doxygen (make-avr-toolchain)))
(home-page "https://www.lufa-lib.org/")
(synopsis "Lightweight USB Framework for AVRs")
(description "UFA is a simple to use, lightweight framework which sits
atop the hardware USB controller in specific AVR microcontroller models, and
allows for the quick and easy creation of complex USB devices and hosts. This
package contains the user-submitted projects and bootloaders for use with
compatible microcontroller models, as well as the demos and the
documentation.")
(license license:expat))) ;see LUFA/License.txt

View File

@ -6,6 +6,7 @@
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -58,115 +59,122 @@
(inherit (cross-binutils "avr"))
(name "avr-binutils"))))
(define make-avr-gcc
(mlambda ()
(let ((xgcc (cross-gcc "avr" #:xbinutils (make-avr-binutils))))
(package
(inherit xgcc)
(name "avr-gcc")
(arguments
(substitute-keyword-arguments (package-arguments xgcc)
((#:phases phases)
#~(modify-phases #$phases
(add-after 'set-paths 'augment-CPLUS_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys)
(let ((gcc (assoc-ref inputs "gcc")))
;; Remove the default compiler from CPLUS_INCLUDE_PATH
;; to prevent header conflict with the GCC from
;; native-inputs.
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(delete (string-append gcc "/include/c++")
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:))
":"))
(format #t
"environment variable `CPLUS_INCLUDE_PATH' \
(define* (make-avr-gcc/implementation #:key (xgcc gcc))
"Return a XGCC-base cross-compiler for the AVR target."
(let ((xgcc (cross-gcc "avr" #:xgcc xgcc #:xbinutils (make-avr-binutils))))
(package
(inherit xgcc)
(name "avr-gcc")
(arguments
(substitute-keyword-arguments (package-arguments xgcc)
((#:phases phases)
#~(modify-phases #$phases
(add-after 'set-paths 'augment-CPLUS_INCLUDE_PATH
(lambda* (#:key inputs #:allow-other-keys)
(let ((gcc (assoc-ref inputs "gcc")))
;; Remove the default compiler from CPLUS_INCLUDE_PATH
;; to prevent header conflict with the GCC from
;; native-inputs.
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(delete (string-append gcc "/include/c++")
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:))
":"))
(format #t
"environment variable `CPLUS_INCLUDE_PATH' \
changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH")))))
;; Without a working multilib build, the resulting GCC lacks
;; support for nearly every AVR chip.
(add-after 'unpack 'fix-genmultilib
(lambda _
;; patch-shebang doesn't work here because there are
;; actually several scripts inside this script, each with
;; a #!/bin/sh that needs patching.
(substitute* "gcc/genmultilib"
(("#!/bin/sh") (string-append "#!" (which "sh"))))))))
((#:configure-flags flags)
#~(delete "--disable-multilib" #$flags))))
(native-search-paths
(list (search-path-specification
(variable "CROSS_C_INCLUDE_PATH")
(files '("avr/include")))
(search-path-specification
(variable "CROSS_CPLUS_INCLUDE_PATH")
(files '("avr/include")))
(search-path-specification
(variable "CROSS_OBJC_INCLUDE_PATH")
(files '("avr/include")))
(search-path-specification
(variable "CROSS_OBJCPLUS_INCLUDE_PATH")
(files '("avr/include")))
(search-path-specification
(variable "CROSS_LIBRARY_PATH")
(files '("avr/lib")))))
(native-inputs
`(("gcc" ,gcc)
,@(package-native-inputs xgcc)))))))
(getenv "CPLUS_INCLUDE_PATH")))))
;; Without a working multilib build, the resulting GCC lacks
;; support for nearly every AVR chip.
(add-after 'unpack 'fix-genmultilib
(lambda _
;; patch-shebang doesn't work here because there are
;; actually several scripts inside this script, each with
;; a #!/bin/sh that needs patching.
(substitute* "gcc/genmultilib"
(("#!/bin/sh") (string-append "#!" (which "sh"))))))))
((#:configure-flags flags)
#~(delete "--disable-multilib" #$flags))))
(native-search-paths
(list (search-path-specification
(variable "CROSS_C_INCLUDE_PATH")
(files '("avr/include")))
(search-path-specification
(variable "CROSS_CPLUS_INCLUDE_PATH")
(files '("avr/include")))
(search-path-specification
(variable "CROSS_OBJC_INCLUDE_PATH")
(files '("avr/include")))
(search-path-specification
(variable "CROSS_OBJCPLUS_INCLUDE_PATH")
(files '("avr/include")))
(search-path-specification
(variable "CROSS_LIBRARY_PATH")
(files '("avr/lib")))))
(native-inputs
`(("gcc" ,gcc)
,@(package-native-inputs xgcc))))))
(define make-avr-gcc
(memoize make-avr-gcc/implementation))
(define* (make-avr-libc/implementation #:key (xgcc gcc))
(package
(name "avr-libc")
(version "2.0.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah//avr-libc/avr-libc-"
version ".tar.bz2"))
(sha256
(base32
"15svr2fx8j6prql2il2fc0ppwlv50rpmyckaxx38d3gxxv97zpdj"))))
(build-system gnu-build-system)
(arguments
'(#:out-of-source? #t
#:configure-flags '("--host=avr")))
(native-inputs `(("avr-binutils" ,(make-avr-binutils))
("avr-gcc" ,(make-avr-gcc #:xgcc xgcc))))
(home-page "https://www.nongnu.org/avr-libc/")
(synopsis "The AVR C Library")
(description
"AVR Libc is a project whose goal is to provide a high quality C library
for use with GCC on Atmel AVR microcontrollers.")
(license
(license:non-copyleft "http://www.nongnu.org/avr-libc/LICENSE.txt"))))
(define make-avr-libc
(mlambda ()
(package
(name "avr-libc")
(version "2.0.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://savannah//avr-libc/avr-libc-"
version ".tar.bz2"))
(sha256
(base32
"15svr2fx8j6prql2il2fc0ppwlv50rpmyckaxx38d3gxxv97zpdj"))))
(build-system gnu-build-system)
(arguments
'(#:out-of-source? #t
#:configure-flags '("--host=avr")))
(native-inputs `(("avr-binutils" ,(make-avr-binutils))
("avr-gcc" ,(make-avr-gcc))))
(home-page "https://www.nongnu.org/avr-libc/")
(synopsis "The AVR C Library")
(description
"AVR Libc is a project whose goal is to provide a high quality C
library for use with GCC on Atmel AVR microcontrollers.")
(license
(license:non-copyleft "http://www.nongnu.org/avr-libc/LICENSE.txt")))))
(memoize make-avr-libc/implementation))
(define make-avr-toolchain
(mlambda ()
(let ((avr-binutils (make-avr-binutils))
(avr-libc (make-avr-libc))
(avr-gcc (make-avr-gcc)))
;; avr-libc checks the compiler version and passes "--enable-device-lib"
;; for avr-gcc > 5.1.0. It wouldn't install the library for atmega32u4
;; etc if we didn't use the corret avr-gcc.
(package
(name "avr-toolchain")
(version (package-version avr-gcc))
(source #f)
(build-system trivial-build-system)
(arguments '(#:builder (begin (mkdir %output) #t)))
(propagated-inputs
`(("avrdude" ,avrdude)
("binutils" ,avr-binutils)
("gcc" ,avr-gcc)
("libc" ,avr-libc)))
(synopsis "Complete GCC tool chain for AVR microcontroller development")
(description "This package provides a complete GCC tool chain for AVR
(define* (make-avr-toolchain/implementation #:key (xgcc gcc))
(let ((avr-binutils (make-avr-binutils))
(avr-libc (make-avr-libc #:xgcc xgcc))
(avr-gcc (make-avr-gcc #:xgcc xgcc)))
;; avr-libc checks the compiler version and passes "--enable-device-lib"
;; for avr-gcc > 5.1.0. It wouldn't install the library for atmega32u4
;; etc if we didn't use the corret avr-gcc.
(package
(name "avr-toolchain")
(version (package-version avr-gcc))
(source #f)
(build-system trivial-build-system)
(arguments '(#:builder (begin (mkdir %output) #t)))
(propagated-inputs
`(("avrdude" ,avrdude)
("binutils" ,avr-binutils)
("gcc" ,avr-gcc)
("libc" ,avr-libc)))
(synopsis "Complete GCC tool chain for AVR microcontroller development")
(description "This package provides a complete GCC tool chain for AVR
microcontroller development. This includes the GCC AVR cross compiler and
avrdude for firmware flashing. The supported programming languages are C and
C++.")
(home-page (package-home-page avr-libc))
(license (package-license avr-gcc))))))
(home-page (package-home-page avr-libc))
(license (package-license avr-gcc)))))
(define make-avr-toolchain
(memoize make-avr-toolchain/implementation))
(define-public microscheme
(package

View File

@ -793,6 +793,7 @@ the store.")
(package
(name "glibc")
(version "2.35")
(replacement glibc/fixed)
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz"))
@ -1062,6 +1063,15 @@ with the Linux kernel.")
(license lgpl2.0+)
(home-page "https://www.gnu.org/software/libc/")))
(define glibc/fixed
(package
(inherit glibc)
(source
(origin (inherit (package-source glibc))
(patches
(append (search-patches "glibc-2.35-CVE-2023-4911.patch")
(origin-patches (package-source glibc))))))))
;; Define a variation of glibc which uses the default /etc/ld.so.cache, useful
;; in FHS containers.
(define-public glibc-for-fhs

View File

@ -37,10 +37,12 @@
#:use-module (guix git-download)
#:use-module (guix build-system r)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bioinformatics)
#:use-module (gnu packages boost)
#:use-module (gnu packages chemistry)
#:use-module (gnu packages cran)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
@ -66,6 +68,36 @@
;;; Annotations
(define-public r-mafh5-gnomad-v3-1-2-grch38
(package
(name "r-mafh5-gnomad-v3-1-2-grch38")
(version "3.15.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "MafH5.gnomAD.v3.1.2.GRCh38" version
'annotation))
(sha256
(base32 "18hzw7f41ii16qpm3ch516b773900l1m1id5z6a763m01fg0mhiq"))))
(properties `((upstream-name . "MafH5.gnomAD.v3.1.2.GRCh38")))
(build-system r-build-system)
(propagated-inputs (list r-bsgenome
r-genomeinfodb
r-genomicranges
r-genomicscores
r-hdf5array
r-iranges
r-rhdf5
r-s4vectors))
(home-page "https://bioconductor.org/packages/MafH5.gnomAD.v3.1.2.GRCh38")
(synopsis
"Minor allele frequency data from gnomAD version 3.1.2 for GRCh38")
(description
"This package is designed to store minor allele frequency data.
It retrieves this data from the Genome Aggregation Database
(@code{gnomAD} version 3.1.2) for the human genome version GRCh38.")
(license license:artistic2.0)))
(define-public r-org-eck12-eg-db
(package
(name "r-org-eck12-eg-db")
@ -18852,6 +18884,47 @@ coordinate plots, volcano plots, and litre plots. It includes examples for
visualizing RNA-sequencing datasets and differentially expressed genes.")
(license license:gpl3)))
(define-public r-chemmineob
(package
(name "r-chemmineob")
(version "1.38.0")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "ChemmineOB" version))
(sha256
(base32 "0l44d6l078k1w5nf7i4sarah1zn30zqjmcj9qpy4hhg97dfy45ci"))))
(properties `((upstream-name . "ChemmineOB")))
(build-system r-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-makefile
(lambda _
(substitute* "src/Makevars.in"
(("/usr/include/openbabel3")
(string-append #$(this-package-input "openbabel")
"/include/openbabel3"))
(("/usr/include/eigen3")
(string-append #$(this-package-input "eigen")
"/include/eigen3"))))))))
(inputs (list eigen openbabel))
(propagated-inputs (list r-bh r-biocgenerics r-rcpp r-zlibbioc))
(native-inputs (list pkg-config r-knitr))
(home-page "https://github.com/girke-lab/ChemmineOB")
(synopsis "R interface to a subset of OpenBabel functionalities")
(description
"@code{ChemmineOB} provides an R interface to a subset of cheminformatics
functionalities implemented by the @code{OpelBabel} C++ project.
@code{OpenBabel} is an open source cheminformatics toolbox that includes
utilities for structure format interconversions, descriptor calculations,
compound similarity searching and more. @code{ChemineOB} aims to make a subset
of these utilities available from within R. For non-developers,
@code{ChemineOB} is primarily intended to be used from @code{ChemmineR} as an
add-on package rather than used directly.")
(license license:asl2.0)))
(define-public r-chemminer
(package
(name "r-chemminer")
@ -21397,14 +21470,14 @@ on the plot.")
(define-public r-abn
(package
(name "r-abn")
(version "3.0.0")
(version "3.0.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "abn" version))
(sha256
(base32
"100nafmyddz0c1h01fbqw5q6pji7zhg2196rkyak88za6s5ms0s4"))))
"03g02450l3mckjzwd0w717dbmxhrngkwlfhm5c9q5zv4g10df7nj"))))
(build-system r-build-system)
(inputs
(list gsl))

View File

@ -93,6 +93,7 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages gd)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages glib)
#:use-module (gnu packages graph)
#:use-module (gnu packages graphics)
@ -4695,26 +4696,16 @@ accurately delineate genomic rearrangements throughout the genome.")
(arguments
(list
#:install-source? #false ;fails
#:tests? #false ;"cargo test" ignores build.rs
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'prepare-test-files
(lambda _
(delete-file "Cargo.lock")
(substitute* "liftover-rs/Cargo.toml"
(("anyhow = \"1\"") "anyhow = \"1.0.65\""))
(substitute* "liftover-rs/prepare-test.sh"
(("/bin/bash")
(string-append #$(this-package-native-input "bash")
"/bin/bash")))
(invoke "bash" "prepare-test-files.sh")))
(add-before 'patch-cargo-checksums 'do-not-build-xz
(lambda _
;; Detection of liblzma (in rust-lzma-sys, pulled in by
;; rust-hts-sys) doesn't seem to work, or perhaps it really does
;; request a static build somewhere.
(substitute* "guix-vendor/rust-lzma-sys-0.1.17.tar.xz/build.rs"
(("if .want_static && .msvc && pkg_config::probe_library\\(\"liblzma\"\\).is_ok\\(\\)") ""))))
(add-before 'install 'chdir
(lambda _ (chdir "transanno"))))
#:cargo-inputs
@ -4736,7 +4727,8 @@ accurately delineate genomic rearrangements throughout the genome.")
#:cargo-development-inputs
`(("rust-clap" ,rust-clap-2)
("rust-lazy-static" ,rust-lazy-static-1))))
(native-inputs (list bash))
(native-inputs (list bash pkg-config))
(inputs (list xz))
(home-page "https://github.com/informationsea/transanno")
(synopsis "LiftOver tool for new genome assemblies")
(description "This package provides an accurate VCF/GFF3/GTF LiftOver tool
@ -10285,6 +10277,66 @@ figures. This tool will create clean markdown reports about what you just
discovered.")
(license license:gpl3))))
(define-public r-metacell
(let ((commit "d6a6926d103ee0cb34a611c753572429c94a53d9")
(revision "1"))
(package
(name "r-metacell")
(version (git-version "0.3.41" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tanaylab/metacell/")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0zrsckr3y35x37mj3ibm6scyqx925s84wzrz1i42fnm9n3msc265"))))
(properties `((upstream-name . "metacell")))
(build-system r-build-system)
(propagated-inputs (list r-cluster
r-cowplot
r-data-table
r-dbscan
r-domc
r-dplyr
r-entropy
r-ggplot2
r-graph
r-igraph
r-kernsmooth
r-magrittr
r-matrix
r-matrixstats
r-pdist
r-pheatmap
r-plyr
r-rcolorbrewer
r-rcurl
r-rgraphviz
r-slam
r-singlecellexperiment
r-svglite
r-tgconfig
r-tgstat
r-tgutil
r-tidyr
r-umap
r-umap
r-zoo))
(native-inputs (list r-knitr))
(home-page "https://github.com/tanaylab/metacell/")
(synopsis "Meta cell analysis for single cell RNA-seq data")
(description
"This package facilitates the analysis of single-cell RNA-seq UMI matrices.
It does this by computing partitions of a cell similarity graph into
small homogeneous groups of cells, which are defined as metacells (MCs).
The derived MCs are then used for building different representations of
the data, allowing matrix or 2D graph visualization forming a basis for
analysis of cell types, subtypes, transcriptional gradients,cell-cycle
variation, gene modules and their regulatory models and more.")
(license license:expat))))
(define-public r-snapatac
(package
(name "r-snapatac")

View File

@ -654,7 +654,8 @@ tree binary files. These are board description files used by Linux and BSD.")
%u-boot-sifive-prevent-relocating-initrd-fdt
%u-boot-rk3399-enable-emmc-phy-patch
(search-patch "u-boot-fix-build-python-3.10.patch")
(search-patch "u-boot-fix-u-boot-lib-build.patch")))
(search-patch "u-boot-fix-u-boot-lib-build.patch")
(search-patch "u-boot-patman-change-id.patch")))
(method url-fetch)
(uri (string-append
"https://ftp.denx.de/pub/u-boot/"

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020, 2021 Marius Bakke <marius@gnu.org>
;;; Copyright © 2023 Nicolas Graves <ngraves@ngraves.fr>
;;; Copyright © 2023 Clément Lassieur <clement@lassieur.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -25,6 +26,7 @@
#:use-module (guix build-system gnu)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (gnu build chromium-extension)
#:use-module (gnu build icecat-extension)
#:use-module (gnu packages compression)
#:use-module (gnu packages python))
@ -98,6 +100,7 @@ supported content to the Kodi media center.")
"1i8rnij3sbwg6vj6znprrsca0n5xjzhmhppaa8v6jyxg6wrrfch1"))))
(build-system gnu-build-system)
(outputs '("xpi" "firefox" "chromium"))
(properties '((addon-id . "uBlock0@raymondhill.net")))
(arguments
(list
#:tests? #f ;no tests
@ -125,9 +128,11 @@ supported content to the Kodi media center.")
(invoke "./tools/make-chromium.sh")))
(add-after 'build-chromium 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((firefox (assoc-ref outputs "firefox"))
(xpi (assoc-ref outputs "xpi"))
(chromium (assoc-ref outputs "chromium")))
(let* ((addon-id #$(assq-ref properties 'addon-id))
(firefox (in-vicinity
(assoc-ref outputs "firefox") addon-id))
(xpi (assoc-ref outputs "xpi"))
(chromium (assoc-ref outputs "chromium")))
(install-file "dist/build/uBlock0.firefox.xpi"
(string-append xpi "/lib/mozilla/extensions"))
(copy-recursively "dist/build/uBlock0.firefox" firefox)
@ -142,3 +147,6 @@ ungoogled-chromium.")
(define-public ublock-origin/chromium
(make-chromium-extension ublock-origin "chromium"))
(define-public ublock-origin/icecat
(make-icecat-extension ublock-origin "firefox"))

View File

@ -551,7 +551,7 @@ graphical interface.")
(define-public libcue
(package
(name "libcue")
(version "2.2.1")
(version "2.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -560,7 +560,7 @@ graphical interface.")
(file-name (git-file-name name version))
(sha256
(base32
"1iqw4n01rv2jyk9lksagyxj8ml0kcfwk67n79zy1r6zv1xfp5ywm"))))
"1lkcj31fc0wjqr9lgr1ws6invx6ayvrk7v5kd9lm7956q1mi9ib4"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))

View File

@ -3548,7 +3548,7 @@ that can be used to verify that future runs produce the same data.")
(define-public guile-proba
(package
(name "guile-proba")
(version "0.3.0")
(version "0.3.1")
(source
(origin
(method git-fetch)
@ -3557,7 +3557,7 @@ that can be used to verify that future runs produce the same data.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1mjnrbb6gv5f95i1ihn75yh7ya445pcnj13cy34x2v58h9n2r80s"))))
(base32 "17ab304ylylm9z980ij5lv188inx6331r1mn1s7qrlxly9fzx888"))))
(build-system guile-build-system)
(inputs (list bash-minimal guile-3.0))
(native-inputs (list texinfo))
@ -3599,8 +3599,8 @@ that can be used to verify that future runs produce the same data.")
(copy-file "proba.scm" script)
(chmod script #o555)
(wrap-program script
`("GUILE_LOAD_PATH" = (,(getenv "GUILE_LOAD_PATH")))
`("GUILE_LOAD_COMPILED_PATH" =
`("GUILE_LOAD_PATH" prefix (,(getenv "GUILE_LOAD_PATH")))
`("GUILE_LOAD_COMPILED_PATH" prefix
(,(getenv "GUILE_LOAD_COMPILED_PATH")))))))
(add-after 'install 'install-manual
(lambda* (#:key outputs #:allow-other-keys)

View File

@ -29,6 +29,7 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR))
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
@ -58,8 +59,8 @@
#:use-module ((guix search-paths) #:select ($SSL_CERT_DIR)))
(define-public cuirass
(let ((commit "797b26a4ef80dce278481b1cc3391791ef2cbbaf")
(revision "19"))
(let ((commit "db6b63371159a735de74eee97c313740c998439a")
(revision "20"))
(package
(name "cuirass")
(version (git-version "1.1.0" revision commit))
@ -72,73 +73,66 @@
(file-name (git-file-name name version))
(sha256
(base32
"10hs9nxl9xlnswm7qv8mw5s3rf65q4ip8ikqvgq5rprcv1lf26ad"))))
"16d9ylzk8mwsgppfdxyl0k2mkwll7fq17d6v09406rqkgddxg3m2"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build utils)
(guix build gnu-build-system)
(ice-9 rdelim)
(ice-9 popen))
#:configure-flags '("--localstatedir=/var") ;for /var/log/cuirass
;; XXX: HTTP tests fail on aarch64 due to Fibers errors, disable them
;; on that architecture for now.
#:tests? ,(let ((s (or (%current-target-system)
(%current-system))))
(not (string-prefix? "aarch64" s)))
#:parallel-tests? #f
#:phases
(modify-phases %standard-phases
(add-before 'bootstrap 'fix-version-gen
(lambda _
(patch-shebang "build-aux/git-version-gen")
(list #:modules `((guix build utils)
(guix build gnu-build-system)
(ice-9 match)
(ice-9 rdelim)
(ice-9 popen)
(srfi srfi-1))
#:configure-flags #~'("--localstatedir=/var") ;for /var/log/cuirass
;; XXX: HTTP tests fail on aarch64 due to Fibers errors, disable them
;; on that architecture for now.
#:tests? (let ((s (or (%current-target-system)
(%current-system))))
(not (string-prefix? "aarch64" s)))
#:parallel-tests? #f
#:phases
#~(modify-phases %standard-phases
(add-before 'bootstrap 'fix-version-gen
(lambda _
(patch-shebang "build-aux/git-version-gen")
(call-with-output-file ".tarball-version"
(lambda (port)
(display ,version port)))))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Wrap the 'cuirass' command to refer to the right modules.
(let* ((out (assoc-ref outputs "out"))
(avahi (assoc-ref inputs "guile-avahi"))
(gcrypt (assoc-ref inputs "guile-gcrypt"))
(json (assoc-ref inputs "guile-json"))
(zmq (assoc-ref inputs "guile-simple-zmq"))
(squee (assoc-ref inputs "guile-squee"))
(git (assoc-ref inputs "guile-git"))
(bytes (assoc-ref inputs "guile-bytestructures"))
(fibers (assoc-ref inputs "guile-fibers"))
(zlib (assoc-ref inputs "guile-zlib"))
(matd (assoc-ref inputs "guile-mastodon"))
(tls (assoc-ref inputs "guile-gnutls"))
(mail (assoc-ref inputs "mailutils"))
(guix (assoc-ref inputs "guix"))
(deps (list avahi gcrypt json zmq squee git bytes
fibers zlib matd tls mail guix))
(guile (assoc-ref inputs "guile"))
(effective
(read-line
(open-pipe* OPEN_READ
(string-append guile "/bin/guile")
"-c" "(display (effective-version))")))
(mods
(string-drop-right ;drop trailing colon
(string-join deps
(string-append "/share/guile/site/"
effective ":")
'suffix)
1))
(objs
(string-drop-right
(string-join deps
(string-append "/lib/guile/" effective
"/site-ccache:")
'suffix)
1)))
;; Make sure 'cuirass' can find the relevant Guile modules.
(wrap-program (string-append out "/bin/cuirass")
`("PATH" ":" prefix (,(string-append out "/bin")))
`("GUILE_LOAD_PATH" ":" prefix (,mods))
`("GUILE_LOAD_COMPILED_PATH" ":" prefix (,objs)))))))))
(call-with-output-file ".tarball-version"
(lambda (port)
(display #$(package-version this-package) port)))))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Wrap the 'cuirass' command to refer to the right modules.
;; Do so by collecting the subset of INPUTS that provides Guile
;; modules. This includes direct inputs as well as their
;; propagated inputs--e.g., 'guix' propagates 'guile-zstd'.
(define (sub-directory suffix)
(match-lambda
((label . directory)
(let ((directory (string-append directory suffix)))
(and (directory-exists? directory)
directory)))))
(let* ((out (assoc-ref outputs "out"))
(effective
(read-line
(open-pipe* OPEN_READ (which "guile") "-c"
"(display (effective-version))")))
(mods (filter-map (sub-directory
(string-append
"/share/guile/site/"
effective))
inputs))
(objs (filter-map (sub-directory
(string-append
"/lib/guile/" effective
"/site-ccache"))
inputs)))
(wrap-program (string-append out "/bin/cuirass")
`("PATH" ":" prefix
(,(string-append out "/bin")))
`("GUILE_LOAD_PATH" ":" prefix
,mods)
`("GUILE_LOAD_COMPILED_PATH" ":" prefix
,objs))))))))
(inputs
(list guile-3.0-latest
guile-avahi

View File

@ -46,17 +46,16 @@
(define-public connman
(package
(name "connman")
(version "1.41")
(version "1.42")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/linux/network/connman/"
"connman-" version ".tar.xz"))
(sha256
(base32 "12g5ilcnymx6i45z3359yds3cgd2dfqjyncfm92hqlymzps41yvr"))
(patches (search-patches "connman-CVE-2022-32292.patch"
"connman-CVE-2022-32293-pt1.patch"
"connman-CVE-2022-32293-pt2.patch"))))
(base32 "1an24caah35chc1c48p67ln8kpj9fr7slg5fklpfz0f0dzjbmrm3"))
(patches
(search-patches "connman-add-missing-libppp-compat.h.patch"))))
(build-system gnu-build-system)
(arguments
(list #:configure-flags

View File

@ -4,6 +4,7 @@
;;; Copyright © 2022 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2023 Zongyuan Li <zongyuan.li@c0x0o.me>
;;; Copyright © 2023 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -159,7 +160,7 @@ runtime (like runc or crun) for a single container.")
(define-public distrobox
(package
(name "distrobox")
(version "1.4.2.1")
(version "1.5.0.2")
(source
(origin
(method git-fetch)
@ -167,7 +168,7 @@ runtime (like runc or crun) for a single container.")
(url "https://github.com/89luca89/distrobox")
(commit version)))
(sha256
(base32 "0gs81m1bvlyq6ad22zsdsw1q6s3agy79vx94kdf6zjzngbanlydk"))
(base32 "0h6rpgbcmg33vriyzh9nkdxj8yhfn0y35i1wh1zmb7zss3ik9kxj"))
(file-name (git-file-name name version))))
(build-system copy-build-system)
(inputs
@ -177,7 +178,7 @@ runtime (like runc or crun) for a single container.")
#~(modify-phases %standard-phases
(add-before 'install 'refer-to-inputs
(lambda* (#:key inputs #:allow-other-keys)
(substitute* (find-files "." "^distrobox.*[^1]$")
(substitute* (find-files "." "^distrobox[^.]*[^1]$")
(("podman") (search-input-file inputs "/bin/podman"))
(("wget") (search-input-file inputs "/bin/wget"))
(("command -v") "test -x"))))

View File

@ -38,6 +38,7 @@
;;; Copyright © 2023 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; Copyright © 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
;;; Copyright © 2023 Paul A. Patience <paul@apatience.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -82,6 +83,7 @@
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages datastructures)
#:use-module (gnu packages disk)
#:use-module (gnu packages documentation)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc)
@ -94,6 +96,7 @@
#:use-module (gnu packages llvm)
#:use-module (gnu packages logging)
#:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages perl)
#:use-module (gnu packages python)
@ -1039,6 +1042,78 @@ Model and CSP-like channels. The goal of SObjectizer is to simplify
development of concurrent and multithreaded applications in C++.")
(license license:bsd-3)))
(define-public taskflow
(package
(name "taskflow")
(version "3.6.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/taskflow/taskflow")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1cv74l181137lchc1rxygcg401cnq216ymq5qz2njsw99j342br3"))))
(build-system cmake-build-system)
(home-page "https://taskflow.github.io/")
(synopsis
"General-purpose parallel and heterogeneous task programming system")
(description
"Taskflow is a C++ library for writing parallel and heterogeneous task
programs.")
(license license:expat)))
(define-public kokkos
(package
(name "kokkos")
(version "4.1.00")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/kokkos/kokkos")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "15kjpa54ssrrbid9h2nr94nh85qna5c4vq2152i4iy7gaagigy3c"))
(modules '((guix build utils)))
(snippet
;; Remove bundled googletest.
#~(delete-file-recursively "tpls/gtest"))))
(build-system cmake-build-system)
(arguments
(list #:configure-flags
;; deal.II uses only the serial backend, so do not enable the
;; others yet.
#~(list "-DBUILD_SHARED_LIBS=ON"
"-DKokkos_ENABLE_SERIAL=ON"
"-DKokkos_ENABLE_TESTS=ON"
"-DKokkos_ENABLE_EXAMPLES=ON"
"-DKokkos_ENABLE_HWLOC=ON"
"-DKokkos_ENABLE_MEMKIND=ON")
#:phases
#~(modify-phases %standard-phases
(add-after 'install-license-files 'remove-cruft
(lambda _
(delete-file
(string-append #$output "/share/doc/"
#$name "-" #$version
"/LICENSE_FILE_HEADER")))))))
(native-inputs
(list googletest python))
(inputs
(list `(,hwloc "lib") memkind))
(home-page "https://github.com/kokkos/kokkos")
(synopsis "C++ abstractions for parallel execution and data management")
(description
"Kokkos Core implements a programming model in C++ for writing performance
portable applications targeting all major HPC platforms. For that purpose it
provides abstractions for both parallel execution of code and data management.
Kokkos is designed to target complex node architectures with N-level memory
hierarchies and multiple types of execution resources.")
(license license:asl2.0))) ; With LLVM exception
(define-public tweeny
(package
(name "tweeny")

View File

@ -3257,6 +3257,29 @@ design tools, including ALM, ALC, and expected improvement for optimizing
noisy black-box functions.")
(license license:lgpl2.0+)))
(define-public r-tgstat
(package
(name "r-tgstat")
(version "2.3.24")
(source
(origin
(method url-fetch)
(uri (cran-uri "tgstat" version))
(sha256
(base32 "0czd3j7z30jgb03813s0jc0701ypnwpkkq7var6n6f6cj7sdvc0l"))))
(properties `((upstream-name . "tgstat")))
(build-system r-build-system)
(native-inputs (list r-knitr))
(home-page "https://cran.r-project.org/package=tgstat")
(synopsis "Amos Tanay's Group High Performance Statistical Utilities")
(description
"This package provides a collection of high-performance utilities.
It can be used to compute distances, correlations, autocorrelations,
clustering, and other tasks. It also contains a graph clustering
algorithm described in MetaCell analysis of single-cell RNA-seq
data using K-nn graph partitions.")
(license license:gpl2)))
(define-public r-tidyft
(package
(name "r-tidyft")
@ -3948,13 +3971,13 @@ a list of p-values.")
(define-public r-htmltools
(package
(name "r-htmltools")
(version "0.5.6")
(version "0.5.6.1")
(source (origin
(method url-fetch)
(uri (cran-uri "htmltools" version))
(sha256
(base32
"0rx0nmal1dca5xqj1pd17a85whsislhkyxxa4scmxgn38lkqxsqm"))))
"0km08kvg0j2h1d0v6wpxf09yjadhp2srjjnmqwcahfyh37w4xf09"))))
(build-system r-build-system)
(propagated-inputs
(list r-base64enc r-digest r-ellipsis r-fastmap r-rlang))
@ -7400,14 +7423,14 @@ median test.")
(define-public r-ksamples
(package
(name "r-ksamples")
(version "1.2-9")
(version "1.2-10")
(source
(origin
(method url-fetch)
(uri (cran-uri "kSamples" version))
(sha256
(base32
"1zs22p68d6320kcylisnk0b5wmpapxkyz15py09czxzw7npw8gms"))))
"13ap5ggid3w3s3k5mzz1ir31j96hjg6msa2s1hcy66zv242wqrid"))))
(properties `((upstream-name . "kSamples")))
(build-system r-build-system)
(propagated-inputs
@ -10382,13 +10405,13 @@ multivariate distributions.")
(define-public r-fbasics
(package
(name "r-fbasics")
(version "4022.94")
(version "4031.95")
(source (origin
(method url-fetch)
(uri (cran-uri "fBasics" version))
(sha256
(base32
"1mka9avcdkq4sj40xa15hrjm1f8ppzbvw3yzxbhkbaw9c130qfy8"))))
"1d1pbyidng68fcc6vrm98ybklz6yzrinqc2dhg8q6f1pg3kkx6bj"))))
(properties `((upstream-name . "fBasics")))
(build-system r-build-system)
(propagated-inputs
@ -10602,6 +10625,29 @@ the Singular Value Decomposition in R (Beaton et al 2014)
the matrix exponential and logarithm, and the determinant.")
(license license:gpl2)))
(define-public r-complexupset
(package
(name "r-complexupset")
(version "1.3.3")
(source
(origin
(method url-fetch)
(uri (cran-uri "ComplexUpset" version))
(sha256
(base32 "1sk4v5kc2wkgfaws0hjlp30mngm907r5gz1iglf68j46lfs9jbsv"))))
(properties `((upstream-name . "ComplexUpset")))
(build-system r-build-system)
(propagated-inputs (list r-colorspace r-ggplot2 r-patchwork r-scales))
(native-inputs (list r-knitr))
(home-page "https://github.com/krassowski/complex-upset")
(synopsis "Create complex UpSet plots using ggplot2 components")
(description
"@code{UpSet} plots are an improvement over Venn Diagram for set overlap
visualizations. Striving to bring the best of the @code{UpSetR} and ggplot2,
this package offers a way to create complex overlap visualisations, using
simple and familiar tools.")
(license license:expat)))
(define-public r-phontools
(package
(name "r-phontools")
@ -10719,14 +10765,14 @@ powerful and convenient features.")
(define-public r-heatmaply
(package
(name "r-heatmaply")
(version "1.4.2")
(version "1.5.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "heatmaply" version))
(sha256
(base32
"0zgaqmbc1nha38c8kx5xdjdjbwmykrf2acq8ydki8dqixv6b34la"))))
"1crdm7avxv3zx59byz2fqbcw95728crwf9cckjb9gal1065xv95c"))))
(build-system r-build-system)
(propagated-inputs
(list r-assertthat
@ -12820,14 +12866,14 @@ steps and provides ggplot2-based elegant data visualization.")
(define-public r-fansi
(package
(name "r-fansi")
(version "1.0.4")
(version "1.0.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "fansi" version))
(sha256
(base32
"17y4m4yy8d6j6rlql2bpigcyn6yfv2g2aaaj96xjp4j0di722qri"))))
"1xi35schbz42kjwjzhjqj12nd053962mgnk6qd9k5m5zgwsww5n6"))))
(build-system r-build-system)
(native-inputs
(list r-knitr)) ; for vignettes
@ -16126,19 +16172,20 @@ models.")
(define-public r-glmmtmb
(package
(name "r-glmmtmb")
(version "1.1.7")
(version "1.1.8")
(source
(origin
(method url-fetch)
(uri (cran-uri "glmmTMB" version))
(sha256
(base32
"1wf1fn2gf500y2r4d84p5gj3b1fj2cmyw2lp366r4nm6p3iyd2x3"))))
"055xi424cd1glhbv8a8v9cm79zq9skb7230nq0xm90iggb1zcj22"))))
(properties `((upstream-name . "glmmTMB")))
(build-system r-build-system)
(propagated-inputs
(list r-lme4
r-matrix
r-mgcv
r-nlme
r-numderiv
r-rcppeigen
@ -18065,13 +18112,13 @@ pairs (Selesnick 2001, 2002).")
(define-public r-word2vec
(package
(name "r-word2vec")
(version "0.3.4")
(version "0.4.0")
(source (origin
(method url-fetch)
(uri (cran-uri "word2vec" version))
(sha256
(base32
"0qj39vms6zgwb8lpmfkppayizdmhakic3pkacglary3ain61vnsk"))))
"14ba0cj430d02bd6fay3nl4ldwqyj77iwjm4gzgdc0f6sx597iiq"))))
(properties `((upstream-name . "word2vec")))
(build-system r-build-system)
(propagated-inputs (list r-rcpp r-rcppprogress))
@ -18907,14 +18954,14 @@ PostScript pictures in R plots.")
(define-public r-grimport2
(package
(name "r-grimport2")
(version "0.2-0")
(version "0.3-0")
(source
(origin
(method url-fetch)
(uri (cran-uri "grImport2" version))
(sha256
(base32
"19q0dd8fpp1g4xf6sg5f8dxybwxjfw553ra6wgjd8b74fzca40m1"))))
"04k71x2wm1wsgv5fnk8xip2q5brl9cnjp3fv2rs0kdq9jkhs6yhz"))))
(properties `((upstream-name . "grImport2")))
(build-system r-build-system)
(propagated-inputs
@ -25197,13 +25244,13 @@ includes data sets from oceanography.")
(define-public r-plotroc
(package
(name "r-plotroc")
(version "2.3.0")
(version "2.3.1")
(source (origin
(method url-fetch)
(uri (cran-uri "plotROC" version))
(sha256
(base32
"0kaz9hrimi9gi7cf7flag9kc9yrg5fdyylqa5hn53x4dy8vhj37g"))
"15jvn1dlx8qh5ghnkhqyc49frw6rp58ikpjs3ga8mjxrqyz7wb1g"))
(snippet
'(delete-file "inst/d3.v3.min.js"))))
(properties `((upstream-name . "plotROC")))
@ -29810,14 +29857,14 @@ automatically show a loader when the output is (re)calculating.")
(define-public r-rsvg
(package
(name "r-rsvg")
(version "2.5.0")
(version "2.6.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "rsvg" version))
(sha256
(base32
"1gi31hhs488a90lcql9c1hhsbymskj5brp05ag5z9f0azspazpdm"))))
"0w29isj7n33vwacvk5h6ghgm9j3phghnz7a98b1xi60cyk08qi2b"))))
(properties `((upstream-name . "rsvg")))
(build-system r-build-system)
(inputs

View File

@ -1217,20 +1217,18 @@ EUI-64, also known as MAC-48 media access control addresses.")
(package
(inherit rust-glutin-egl-sys-0.4)
(name "rust-glutin-egl-sys")
(version "0.1.5")
(version "0.1.6")
(source
(origin
(method url-fetch)
(uri (crate-uri "glutin-egl-sys" version))
(file-name
(string-append name "-" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"04f2ci9kb8q4dv4kviigvgfy54lr4jmbnmjsvi50qj13anjnmfra"))))
(base32 "0g81bz7ppvaksvwcw1jg553g8b2shvmnfm9ms6hixwvinj20z438"))))
(arguments
`(#:cargo-inputs
(("rust-winapi" ,rust-winapi-0.3)
("rust-gl-generator" ,rust-gl-generator-0.13))))))
("rust-gl-generator" ,rust-gl-generator-0.14))))))
(define-public rust-glutin-emscripten-sys-0.1
(package
@ -1742,13 +1740,13 @@ graphics and video games.")
(define-public rust-mp4parse-0.12
(package
(name "rust-mp4parse")
(version "0.12.0")
(version "0.12.1")
(source (origin
(method url-fetch)
(uri (crate-uri "mp4parse" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1ppqv60qiyrnbb996gb1sik08c0j2i317llv3rrcwb1cjg3bdlk7"))))
(base32 "1scynvlmiy6xv2rrzzpijd812amh6a863na8i0xrcw5d9d08kl8h"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; Not all files included.
@ -2186,21 +2184,22 @@ AVIF format (powers the `cavif` tool).")
(package
(inherit rust-ravif-0.8)
(name "rust-ravif")
(version "0.6.4")
(version "0.6.6")
(source
(origin
(method url-fetch)
(uri (crate-uri "ravif" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1gyc7w1fz3qdk95cdpkj185dm6lskxfp329xm69waxc565fcz9rx"))))
(base32 "0rfm63bv0q2rjyivmzlk4wma8xff6jralh7dr1bjz2aw4knm7cw1"))))
(arguments
`(#:cargo-inputs
`(#:skip-build? #t ; Not packaging older versions of rav1e.
#:cargo-inputs
(("rust-avif-serialize" ,rust-avif-serialize-0.6)
("rust-imgref" ,rust-imgref-1)
("rust-loop9" ,rust-loop9-0.1)
("rust-num-cpus" ,rust-num-cpus-1)
("rav1e" ,rav1e)
("rav1e" ,rav1e) ; 0.5
("rust-rayon" ,rust-rayon-1)
("rust-rgb" ,rust-rgb-0.8))
#:cargo-development-inputs
@ -2262,6 +2261,25 @@ AVIF format (powers the `cavif` tool).")
(arguments
`(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))))
(define-public rust-resize-0.4
(package
(name "rust-resize")
(version "0.4.3")
(source
(origin
(method url-fetch)
(uri (crate-uri "resize" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0bamrw2m37l8q46mcy6snp6106d93dq7x67hbbj32w88pjdhxn84"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-development-inputs (("rust-png" ,rust-png-0.16))))
(home-page "https://github.com/PistonDevelopers/resize")
(synopsis "Image resampling library in pure Rust")
(description "This package provides an image resampling library in pure Rust.")
(license license:expat)))
(define-public rust-rgb-0.8
(package
(name "rust-rgb")
@ -2628,8 +2646,76 @@ applications.")
("rust-num-derive" ,rust-num-derive-0.2)
("rust-num-traits" ,rust-num-traits-0.2))))))
(define-public rust-wayland-backend-0.1
(package
(name "rust-wayland-backend")
(version "0.1.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "wayland-backend" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1n1yi6vna23wfkrpk1j46sx5qbsijh50viha4sra73by8lkqxd21"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; Use of undeclared dependencies
#:cargo-inputs
(("rust-cc" ,rust-cc-1)
("rust-downcast-rs" ,rust-downcast-rs-1)
("rust-io-lifetimes" ,rust-io-lifetimes-1)
("rust-log" ,rust-log-0.4)
("rust-nix" ,rust-nix-0.26)
("rust-raw-window-handle" ,rust-raw-window-handle-0.5)
("rust-scoped-tls" ,rust-scoped-tls-1)
("rust-smallvec" ,rust-smallvec-1)
("rust-wayland-sys" ,rust-wayland-sys-0.30))
#:cargo-development-inputs
(("rust-concat-idents" ,rust-concat-idents-1)
("rust-env-logger" ,rust-env-logger-0.10))))
(home-page "https://github.com/smithay/wayland-rs")
(synopsis "Backend API for wayland crates")
(description "This package provides low-level bindings to the Wayland
protocol.")
(license license:expat)))
(define-public rust-wayland-client-0.30
(package
(name "rust-wayland-client")
(version "0.30.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "wayland-client" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1j3as2g1znrs2lpkksqcvx8pag85yiwwbcv6wb3lyrqgfxa9d728"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; use of undeclared crate or module `wayland_protocols`
#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-calloop" ,rust-calloop-0.10)
("rust-log" ,rust-log-0.4)
("rust-nix" ,rust-nix-0.26)
("rust-wayland-backend" ,rust-wayland-backend-0.1)
("rust-wayland-scanner" ,rust-wayland-scanner-0.30))
#:cargo-development-inputs
(("rust-futures-channel" ,rust-futures-channel-0.3)
("rust-futures-util" ,rust-futures-util-0.3)
("rust-tempfile" ,rust-tempfile-3))))
(home-page "https://github.com/smithay/wayland-rs")
(synopsis
"Rust bindings to the standard C implementation of the wayland protocol")
(description
"This package provides Rust bindings to the standard C implementation of
the wayland protocol, client side.")
(license license:expat)))
(define-public rust-wayland-client-0.29
(package
(inherit rust-wayland-client-0.30)
(name "rust-wayland-client")
(version "0.29.5")
(source
@ -2639,7 +2725,6 @@ applications.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "05b7qikqj22rjy17kqw5ar7j2chpy18dr0gqapvwjfd00n60cfrz"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #false ;circular dependency on wayland-protocols
#:cargo-inputs
@ -2661,14 +2746,7 @@ applications.")
rust-scoped-tls-1
rust-wayland-commons-0.29
rust-wayland-scanner-0.29
rust-wayland-sys-0.29))
(home-page "https://github.com/smithay/wayland-rs")
(synopsis
"Rust bindings to the standard C implementation of the wayland protocol")
(description
"This package provides Rust bindings to the standard C implementation of
the wayland protocol, client side.")
(license license:expat)))
rust-wayland-sys-0.29))))
(define-public rust-wayland-client-0.28
(package
@ -2947,8 +3025,36 @@ initializing an OpenGL or Vulkan context.")
(native-inputs
(list pkg-config))))
(define-public rust-wayland-protocols-0.30
(package
(name "rust-wayland-protocols")
(version "0.30.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "wayland-protocols" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0kcvvli38gdjb9c7dpa2s0ix4nnqfq7n2bbc39370kx9bhg10a1v"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-wayland-backend" ,rust-wayland-backend-0.1)
("rust-wayland-client" ,rust-wayland-client-0.30)
("rust-wayland-scanner" ,rust-wayland-scanner-0.30)
("rust-wayland-server" ,rust-wayland-server-0.30))))
(home-page "https://github.com/smithay/wayland-rs")
(synopsis "Generated API for the officials Wayland protocol extensions")
(description
"This package provides a generated API for the officials Wayland protocol
extensions.")
(license license:expat)))
(define-public rust-wayland-protocols-0.29
(package
(inherit rust-wayland-protocols-0.30)
(name "rust-wayland-protocols")
(version "0.29.5")
(source
@ -2958,7 +3064,6 @@ initializing an OpenGL or Vulkan context.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1ihbjyd0w460gd7w22g9qabbwd4v8x74f8vsh7p25csljcgn4l5r"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
@ -2969,13 +3074,7 @@ initializing an OpenGL or Vulkan context.")
(inputs
(list rust-bitflags-1 rust-wayland-client-0.29
rust-wayland-commons-0.29 rust-wayland-scanner-0.29
rust-wayland-server-0.29))
(home-page "https://github.com/smithay/wayland-rs")
(synopsis "Generated API for the officials Wayland protocol extensions")
(description
"This package provides a generated API for the officials Wayland protocol
extensions.")
(license license:expat)))
rust-wayland-server-0.29))))
(define-public rust-wayland-protocols-0.28
(package
@ -3045,8 +3144,66 @@ extensions.")
("rust-wayland-sys" ,rust-wayland-sys-0.21)
("rust-wayland-scanner" ,rust-wayland-scanner-0.21))))))
(define-public rust-wayland-protocols-wlr-0.1
(package
(name "rust-wayland-protocols-wlr")
(version "0.1.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "wayland-protocols-wlr" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"12jqi7n77l8a13hc5w5fkdgs4kdjk9i6nvl74njsdr106c4r3sgw"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-wayland-backend" ,rust-wayland-backend-0.1)
("rust-wayland-client" ,rust-wayland-client-0.30)
("rust-wayland-protocols" ,rust-wayland-protocols-0.30)
("rust-wayland-scanner" ,rust-wayland-scanner-0.30)
("rust-wayland-server" ,rust-wayland-server-0.30))))
(home-page "https://github.com/smithay/wayland-rs")
(synopsis "Generated API for the WLR wayland protocol extensions")
(description "This package provides generated API for the WLR wayland
protocol extensions")
(license license:expat)))
(define-public rust-wayland-scanner-0.30
(package
(name "rust-wayland-scanner")
(version "0.30.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "wayland-scanner" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"03ikmfwacsgbym2y4raf05knl1qjlgg81sy0174jxhzvayr77f5r"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; Tests expect running wayland instance.
#:cargo-inputs
(("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quick-xml" ,rust-quick-xml-0.28)
("rust-quote" ,rust-quote-1))
#:cargo-development-inputs
(("rust-similar" ,rust-similar-2))))
(home-page "https://github.com/smithay/wayland-rs")
(synopsis "Generate Rust APIs from XML Wayland protocol files")
(description
"Wayland Scanner generates Rust APIs from XML Wayland protocol files.
It is intended for use with wayland-sys. You should only need this crate if
you are working on custom Wayland protocol extensions. Look at the
wayland-client crate for usable bindings.")
(license license:expat)))
(define-public rust-wayland-scanner-0.29
(package
(inherit rust-wayland-scanner-0.30)
(name "rust-wayland-scanner")
(version "0.29.5")
(source
@ -3056,22 +3213,13 @@ extensions.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0lxx3i2kxnmsk421qx87lqqc9kd2y1ksjxcyg0pqbar2zbc06hwg"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
("rust-xml-rs" ,rust-xml-rs-0.8))))
(inputs
(list rust-proc-macro2-1 rust-quote-1 rust-xml-rs-0.8))
(home-page "https://github.com/smithay/wayland-rs")
(synopsis "Generate Rust APIs from XML Wayland protocol files")
(description
"Wayland Scanner generates Rust APIs from XML Wayland protocol files.
It is intended for use with wayland-sys. You should only need this crate if
you are working on custom Wayland protocol extensions. Look at the
wayland-client crate for usable bindings.")
(license license:expat)))
(list rust-proc-macro2-1 rust-quote-1 rust-xml-rs-0.8))))
(define-public rust-wayland-scanner-0.28
(package
@ -3124,8 +3272,39 @@ wayland-client crate for usable bindings.")
(base32
"17mp49v7w0p0x5ry628lj2llljnwkr9aj9g4bqqhfibid32jhf5z"))))))
(define-public rust-wayland-server-0.30
(package
(name "rust-wayland-server")
(version "0.30.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "wayland-server" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0fnjhhcbnwgyplawc02v3b6nkxnhzl2981yiyzzlj7gyjs0c4hww"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-downcast-rs" ,rust-downcast-rs-1)
("rust-io-lifetimes" ,rust-io-lifetimes-1)
("rust-log" ,rust-log-0.4)
("rust-nix" ,rust-nix-0.26)
("rust-wayland-backend" ,rust-wayland-backend-0.1)
("rust-wayland-scanner" ,rust-wayland-scanner-0.30))))
(home-page "https://github.com/smithay/wayland-rs")
(synopsis
"Bindings to the standard C implementation of the wayland protocol")
(description
"This package provides Rust bindings to the standard C implementation of
the wayland protocol, server side.")
(license license:expat)))
(define-public rust-wayland-server-0.29
(package
(inherit rust-wayland-server-0.30)
(name "rust-wayland-server")
(version "0.29.5")
(source
@ -3135,7 +3314,6 @@ wayland-client crate for usable bindings.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "11ickjbqpfs19wakf56l3j9asjcfw00d7wj48s3i99yvv1nq8q2k"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
@ -3158,14 +3336,7 @@ wayland-client crate for usable bindings.")
rust-scoped-tls-1
rust-wayland-commons-0.29
rust-wayland-scanner-0.29
rust-wayland-sys-0.29))
(home-page "https://github.com/smithay/wayland-rs")
(synopsis
"Bindings to the standard C implementation of the wayland protocol")
(description
"This package provides Rust bindings to the standard C implementation of
the wayland protocol, server side.")
(license license:expat)))
rust-wayland-sys-0.29))))
(define-public rust-wayland-server-0.28
(package
@ -3823,8 +3994,29 @@ the platform-specific getters provided by winit, or another library.")
(description "This package provides X11 library bindings for Rust.")
(license license:expat)))
(define-public rust-y4m-0.8
(package
(name "rust-y4m")
(version "0.8.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "y4m" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0j24y2zf60lpxwd7kyg737hqfyqx16y32s0fjyi6fax6w4hlnnks"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-development-inputs (("rust-resize" ,rust-resize-0.4))))
(home-page "https://github.com/image-rs/y4m")
(synopsis "YUV4MPEG2 (@file{.y4m}) encoder and decoder")
(description
"This package provides a YUV4MPEG2 (@file{.y4m}) encoder and decoder.")
(license license:expat)))
(define-public rust-y4m-0.7
(package
(inherit rust-y4m-0.8)
(name "rust-y4m")
(version "0.7.0")
(source
@ -3834,13 +4026,7 @@ the platform-specific getters provided by winit, or another library.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1bhdgb7hgx7j92nm6ij5n8wisp50j8ff66ks14jzwdw2mwhrjam7"))))
(build-system cargo-build-system)
(arguments `(#:skip-build? #t))
(home-page "https://github.com/image-rs/y4m")
(synopsis "YUV4MPEG2 (@file{.y4m}) encoder and decoder")
(description
"This package provides a YUV4MPEG2 (@file{.y4m}) encoder and decoder.")
(license license:expat)))
(arguments `(#:skip-build? #t))))
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances

View File

@ -168,8 +168,42 @@
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
(define-public rust-cairo-rs-0.17
(package
(name "rust-cairo-rs")
(version "0.17.10")
(source
(origin
(method url-fetch)
(uri (crate-uri "cairo-rs" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "02lz7kvml4m6fx02hy1pgk6ysils9di8n75m166kcpla0b206dmb"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.17)
("rust-freetype-rs" ,rust-freetype-rs-0.32)
("rust-glib" ,rust-glib-0.17)
("rust-libc" ,rust-libc-0.2)
("rust-once-cell" ,rust-once-cell-1)
("rust-thiserror" ,rust-thiserror-1))
#:cargo-development-inputs
(("rust-float-eq" ,rust-float-eq-1)
("rust-tempfile" ,rust-tempfile-3))))
(native-inputs
(list pkg-config))
(inputs
(list cairo))
(home-page "https://gtk-rs.org/")
(synopsis "Rust bindings for the Cairo library")
(description "Rust bindings for the Cairo library")
(license license:expat)))
(define-public rust-cairo-rs-0.15
(package
(inherit rust-cairo-rs-0.17)
(name "rust-cairo-rs")
(version "0.15.12")
(source
@ -179,7 +213,6 @@
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1g396fdz8crf74dmmjarcsdbsm8qgxy3a5x9kw6m2d9xn28y6vn7"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
@ -189,15 +222,7 @@
("rust-libc" ,rust-libc-0.2)
("rust-thiserror" ,rust-thiserror-1))
#:cargo-development-inputs
(("rust-tempfile" ,rust-tempfile-3))))
(native-inputs
(list pkg-config))
(inputs
(list cairo))
(home-page "https://gtk-rs.org/")
(synopsis "Rust bindings for the Cairo library")
(description "Rust bindings for the Cairo library")
(license license:expat)))
(("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-cairo-rs-0.14
(package
@ -277,21 +302,21 @@
(("rust-gtk-rs-lgpl-docs" ,rust-gtk-rs-lgpl-docs-0.1)
("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-cairo-sys-rs-0.15
(define-public rust-cairo-sys-rs-0.17
(package
(name "rust-cairo-sys-rs")
(version "0.15.1")
(version "0.17.10")
(source
(origin
(method url-fetch)
(uri (crate-uri "cairo-sys-rs" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1j6k4pps3dv6g0vlpmxc2xyk0s40vj2wpzi55lbwjspmpqlx8m9w"))))
(base32 "1ccw4z59dx60khngx79g64c75abfwy7wnq57h2z82j7vn5k0q7b9"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-glib-sys" ,rust-glib-sys-0.15)
(("rust-glib-sys" ,rust-glib-sys-0.17)
("rust-libc" ,rust-libc-0.2)
("rust-system-deps" ,rust-system-deps-6)
("rust-winapi" ,rust-winapi-0.3)
@ -305,6 +330,26 @@
(description "This package provides FFI bindings to libcairo.")
(license license:expat)))
(define-public rust-cairo-sys-rs-0.15
(package
(inherit rust-cairo-sys-rs-0.17)
(name "rust-cairo-sys-rs")
(version "0.15.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "cairo-sys-rs" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1j6k4pps3dv6g0vlpmxc2xyk0s40vj2wpzi55lbwjspmpqlx8m9w"))))
(arguments
`(#:cargo-inputs
(("rust-glib-sys" ,rust-glib-sys-0.15)
("rust-libc" ,rust-libc-0.2)
("rust-system-deps" ,rust-system-deps-6)
("rust-winapi" ,rust-winapi-0.3)
("rust-x11" ,rust-x11-2))))))
(define-public rust-cairo-sys-rs-0.14
(package
(inherit rust-cairo-sys-rs-0.15)
@ -463,8 +508,41 @@
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
(define-public rust-gdk-pixbuf-0.17
(package
(name "rust-gdk-pixbuf")
(version "0.17.10")
(source
(origin
(method url-fetch)
(uri (crate-uri "gdk-pixbuf" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "05q7ajsp2z8xi355h26k7lvq7n3lj9xm61vhn045g3238v46npb9"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; `Errors` doesn't implement `std::fmt::Display`
#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-gdk-pixbuf-sys" ,rust-gdk-pixbuf-sys-0.17)
("rust-gio" ,rust-gio-0.17)
("rust-glib" ,rust-glib-0.17)
("rust-libc" ,rust-libc-0.2)
("rust-once-cell" ,rust-once-cell-1))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))
(native-inputs
(list pkg-config))
(inputs
(list gdk-pixbuf))
(home-page "https://gtk-rs.org/")
(synopsis "Rust bindings for the GdkPixbuf library")
(description "Rust bindings for the @code{GdkPixbuf} library")
(license license:expat)))
(define-public rust-gdk-pixbuf-0.15
(package
(inherit rust-gdk-pixbuf-0.17)
(name "rust-gdk-pixbuf")
(version "0.15.11")
(source
@ -474,7 +552,6 @@
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "16k1z21r76m620z61kfmgid1n6s8dnxpa4zlrppcr6dhr2fdsf5d"))))
(build-system cargo-build-system)
(arguments
`(;; FIXME: error[E0277]: `Errors` doesn't implement `std::fmt::Display`
#:tests? #f
@ -485,15 +562,7 @@
("rust-glib" ,rust-glib-0.15)
("rust-libc" ,rust-libc-0.2))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))
(native-inputs
(list pkg-config))
(inputs
(list gdk-pixbuf))
(home-page "https://gtk-rs.org/")
(synopsis "Rust bindings for the GdkPixbuf library")
(description "Rust bindings for the GdkPixbuf library")
(license license:expat)))
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
(define-public rust-gdk-pixbuf-0.14
(package
@ -570,25 +639,23 @@
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
(define-public rust-gdk-pixbuf-sys-0.15
(define-public rust-gdk-pixbuf-sys-0.17
(package
(name "rust-gdk-pixbuf-sys")
(version "0.15.10")
(version "0.17.10")
(source
(origin
(method url-fetch)
(uri (crate-uri "gdk-pixbuf-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "19q2qjrzmmgc7bbs59sk6k0sv3xhpmnk9a2h0cajfr95g19jy2ql"))))
(base32 "1jvh91lzanr1a8c5h6ya8i4jzx7ifs8mjxjnmg8dfriw24yfr1cj"))))
(build-system cargo-build-system)
(arguments
`(;#:skip-build?
;#t
#:cargo-inputs
(("rust-gio-sys" ,rust-gio-sys-0.15)
("rust-glib-sys" ,rust-glib-sys-0.15)
("rust-gobject-sys" ,rust-gobject-sys-0.15)
`(#:cargo-inputs
(("rust-gio-sys" ,rust-gio-sys-0.17)
("rust-glib-sys" ,rust-glib-sys-0.17)
("rust-gobject-sys" ,rust-gobject-sys-0.17)
("rust-libc" ,rust-libc-0.2)
("rust-system-deps" ,rust-system-deps-6))
#:cargo-development-inputs
@ -603,6 +670,29 @@
(description "This package provides FFI bindings to @code{libgdk_pixbuf-2.0}.")
(license license:expat)))
(define-public rust-gdk-pixbuf-sys-0.15
(package
(inherit rust-gdk-pixbuf-sys-0.17)
(name "rust-gdk-pixbuf-sys")
(version "0.15.10")
(source
(origin
(method url-fetch)
(uri (crate-uri "gdk-pixbuf-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "19q2qjrzmmgc7bbs59sk6k0sv3xhpmnk9a2h0cajfr95g19jy2ql"))))
(arguments
`(#:cargo-inputs
(("rust-gio-sys" ,rust-gio-sys-0.15)
("rust-glib-sys" ,rust-glib-sys-0.15)
("rust-gobject-sys" ,rust-gobject-sys-0.15)
("rust-libc" ,rust-libc-0.2)
("rust-system-deps" ,rust-system-deps-6))
#:cargo-development-inputs
(("rust-shell-words" ,rust-shell-words-1)
("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-gdk-pixbuf-sys-0.14
(package
(inherit rust-gdk-pixbuf-sys-0.15)
@ -768,8 +858,50 @@
(("rust-shell-words" ,rust-shell-words-0.1)
("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-gio-0.17
(package
(name "rust-gio")
(version "0.17.10")
(source
(origin
(method url-fetch)
(uri (crate-uri "gio" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "02nkqpq1a6ikzhv5x4nyfvzx8zk5dkjsjm50ns4qdybwjf93x5x6"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; `Errors` doesn't implement `std::fmt::Display`
#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-futures-channel" ,rust-futures-channel-0.3)
("rust-futures-core" ,rust-futures-core-0.3)
("rust-futures-io" ,rust-futures-io-0.3)
("rust-futures-util" ,rust-futures-util-0.3)
("rust-gio-sys" ,rust-gio-sys-0.17)
("rust-glib" ,rust-glib-0.17)
("rust-libc" ,rust-libc-0.2)
("rust-once-cell" ,rust-once-cell-1)
("rust-pin-project-lite" ,rust-pin-project-lite-0.2)
("rust-smallvec" ,rust-smallvec-1)
("rust-thiserror" ,rust-thiserror-1))
#:cargo-development-inputs
(("rust-futures" ,rust-futures-0.3)
("rust-futures-util" ,rust-futures-util-0.3)
("rust-gir-format-check" ,rust-gir-format-check-0.1)
("rust-serial-test" ,rust-serial-test-1))))
(native-inputs
(list pkg-config))
(inputs
(list glib))
(home-page "https://gtk-rs.org/")
(synopsis "Rust bindings for the Gio library")
(description "Rust bindings for the Gio library")
(license license:expat)))
(define-public rust-gio-0.15
(package
(inherit rust-gio-0.17)
(name "rust-gio")
(version "0.15.12")
(source
@ -779,7 +911,6 @@
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0fr8qiqjf9yzl8867kgqdsxpkcx2jrns3xwmlf0jfiid668brzb8"))))
(build-system cargo-build-system)
(arguments
`(;; FIXME: error[E0277]: `Errors` doesn't implement `std::fmt::Display`
#:tests? #f
@ -797,15 +928,7 @@
#:cargo-development-inputs
(("rust-futures-util" ,rust-futures-util-0.3)
("rust-gir-format-check" ,rust-gir-format-check-0.1)
("rust-serial-test" ,rust-serial-test-0.6))))
(native-inputs
(list pkg-config))
(inputs
(list glib))
(home-page "https://gtk-rs.org/")
(synopsis "Rust bindings for the Gio library")
(description "Rust bindings for the Gio library")
(license license:expat)))
("rust-serial-test" ,rust-serial-test-0.6))))))
(define-public rust-gio-0.14
(package
@ -1272,14 +1395,14 @@
(package
(inherit rust-glib-macros-0.17)
(name "rust-glib-macros")
(version "0.15.11")
(version "0.15.13")
(source
(origin
(method url-fetch)
(uri (crate-uri "glib-macros" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0r3cr0c79rs91z0sps089nsf8ppnm8agp48qwwqlkc32lqqq39i5"))))
(base32 "0jiwvywmkqhih6glipj1c7aylwfr738jid8nmjr4yvx2dygsxihh"))))
(arguments
`(;; XXX: Circular dependency on rust-glib??
#:tests? #f
@ -1813,8 +1936,42 @@
library.")
(license license:expat)))
(define-public rust-pango-0.17
(package
(name "rust-pango")
(version "0.17.10")
(source
(origin
(method url-fetch)
(uri (crate-uri "pango" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0j0xj9yw81qivqb0y34j9c5azjsdspxp1zzpvxi1zri0qrplbgim"))))
(build-system cargo-build-system)
(arguments
`(;; FIXME: error[E0277]: `Errors` doesn't implement `std::fmt::Display`
#:tests? #f
#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-gio" ,rust-gio-0.17)
("rust-glib" ,rust-glib-0.17)
("rust-libc" ,rust-libc-0.2)
("rust-once-cell" ,rust-once-cell-1)
("rust-pango-sys" ,rust-pango-sys-0.17))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))
(native-inputs
(list pkg-config))
(inputs
(list pango))
(home-page "https://gtk-rs.org/")
(synopsis "Rust bindings for the Pango library")
(description "This package provides Rust bindings for the Pango library.")
(license license:expat)))
(define-public rust-pango-0.15
(package
(inherit rust-pango-0.17)
(name "rust-pango")
(version "0.15.10")
(source
@ -1824,7 +1981,6 @@ library.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0ksf85fqkw4y5pf21p84g5xn4fnqn21cbrmx2d9yx6k591ah9r12"))))
(build-system cargo-build-system)
(arguments
`(;; FIXME: error[E0277]: `Errors` doesn't implement `std::fmt::Display`
#:tests? #f
@ -1835,15 +1991,7 @@ library.")
("rust-once-cell" ,rust-once-cell-1)
("rust-pango-sys" ,rust-pango-sys-0.15))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))
(native-inputs
(list pkg-config))
(inputs
(list pango))
(home-page "https://gtk-rs.org/")
(synopsis "Rust bindings for the Pango library")
(description "Rust bindings for the Pango library")
(license license:expat)))
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
(define-public rust-pango-0.14
(package
@ -1923,22 +2071,22 @@ library.")
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
(define-public rust-pango-sys-0.15
(define-public rust-pango-sys-0.17
(package
(name "rust-pango-sys")
(version "0.15.10")
(version "0.17.10")
(source
(origin
(method url-fetch)
(uri (crate-uri "pango-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1an3c931kbkr08n9d9d1dapsq3n26zs0xn4ixn11jrp4rn0h186j"))))
(base32 "15aindwdxsydzvqcvhc9ysamx5v1jmq8qbs61ncxic2h72grz9ix"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-glib-sys" ,rust-glib-sys-0.15)
("rust-gobject-sys" ,rust-gobject-sys-0.15)
(("rust-glib-sys" ,rust-glib-sys-0.17)
("rust-gobject-sys" ,rust-gobject-sys-0.17)
("rust-libc" ,rust-libc-0.2)
("rust-system-deps" ,rust-system-deps-6))
#:cargo-development-inputs
@ -1953,6 +2101,28 @@ library.")
(description "This package provides FFI bindings to @code{libpango-1.0}.")
(license license:expat)))
(define-public rust-pango-sys-0.15
(package
(inherit rust-pango-sys-0.17)
(name "rust-pango-sys")
(version "0.15.10")
(source
(origin
(method url-fetch)
(uri (crate-uri "pango-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1an3c931kbkr08n9d9d1dapsq3n26zs0xn4ixn11jrp4rn0h186j"))))
(arguments
`(#:cargo-inputs
(("rust-glib-sys" ,rust-glib-sys-0.15)
("rust-gobject-sys" ,rust-gobject-sys-0.15)
("rust-libc" ,rust-libc-0.2)
("rust-system-deps" ,rust-system-deps-6))
#:cargo-development-inputs
(("rust-shell-words" ,rust-shell-words-1)
("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-pango-sys-0.14
(package
(inherit rust-pango-sys-0.15)
@ -2017,8 +2187,43 @@ library.")
(("rust-shell-words" ,rust-shell-words-0.1)
("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-pangocairo-0.17
(package
(name "rust-pangocairo")
(version "0.17.10")
(source
(origin
(method url-fetch)
(uri (crate-uri "pangocairo" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "1kr2b31034b8zif4r3lf4rniqphk2bxi2q7n8iwq2wrf3k5jkgw6"))))
(build-system cargo-build-system)
(arguments
`(;; FIXME: error[E0277]: `Errors` doesn't implement `std::fmt::Display`
#:tests? #f
#:cargo-inputs
(("rust-bitflags" ,rust-bitflags-1)
("rust-cairo-rs" ,rust-cairo-rs-0.17)
("rust-glib" ,rust-glib-0.17)
("rust-libc" ,rust-libc-0.2)
("rust-pango" ,rust-pango-0.17)
("rust-pangocairo-sys" ,rust-pangocairo-sys-0.17))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))
(native-inputs
(list pkg-config))
(inputs
(list pango))
(home-page "https://gtk-rs.org/")
(synopsis "Rust bindings for the PangoCairo library")
(description
"This package provides Rust bindings for the @code{PangoCairo} library.")
(license license:expat)))
(define-public rust-pangocairo-0.15
(package
(inherit rust-pangocairo-0.17)
(name "rust-pangocairo")
(version "0.15.1")
(source
@ -2029,7 +2234,6 @@ library.")
(sha256
(base32
"0rjk0clrjxah4kc0kybn7l7bxa5m5kpxkihxc2i7a6hx3xfa8xkq"))))
(build-system cargo-build-system)
(arguments
`(;; FIXME: error[E0277]: `Errors` doesn't implement `std::fmt::Display`
#:tests? #f
@ -2041,37 +2245,26 @@ library.")
("rust-pango" ,rust-pango-0.15)
("rust-pangocairo-sys" ,rust-pangocairo-sys-0.15))
#:cargo-development-inputs
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))
(native-inputs
(list pkg-config))
(inputs
(list pango))
(home-page "https://gtk-rs.org/")
(synopsis "Rust bindings for the PangoCairo library")
(description
"Rust bindings for the PangoCairo library.")
(license license:expat)))
(("rust-gir-format-check" ,rust-gir-format-check-0.1))))))
(define-public rust-pangocairo-sys-0.15
(define-public rust-pangocairo-sys-0.17
(package
(name "rust-pangocairo-sys")
(version "0.15.1")
(version "0.17.10")
(source
(origin
(method url-fetch)
(uri (crate-uri "pangocairo-sys" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"154llaawy60zh8fkw2yq0r31ynpmqlsr7brryzaq2v4ijijp9kvq"))))
(origin
(method url-fetch)
(uri (crate-uri "pangocairo-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0ymr4aqrdpysz0rh383s4h6hj8nbkyj7n4723f45zzzqkf6x7pwl"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.15)
("rust-glib-sys" ,rust-glib-sys-0.15)
(("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.17)
("rust-glib-sys" ,rust-glib-sys-0.17)
("rust-libc" ,rust-libc-0.2)
("rust-pango-sys" ,rust-pango-sys-0.15)
("rust-pango-sys" ,rust-pango-sys-0.17)
("rust-system-deps" ,rust-system-deps-6))
#:cargo-development-inputs
(("rust-shell-words" ,rust-shell-words-1)
@ -2083,9 +2276,34 @@ library.")
(list cairo glib pango))
(home-page "https://gtk-rs.org/")
(synopsis "FFI bindings to libgtk-3")
(description "This package provides FFI bindings to libgtk-3.")
(description "This package provides FFI bindings to @code{PangoCairo}.")
(license license:expat)))
(define-public rust-pangocairo-sys-0.15
(package
(inherit rust-pangocairo-sys-0.17)
(name "rust-pangocairo-sys")
(version "0.15.1")
(source
(origin
(method url-fetch)
(uri (crate-uri "pangocairo-sys" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"154llaawy60zh8fkw2yq0r31ynpmqlsr7brryzaq2v4ijijp9kvq"))))
(arguments
`(#:cargo-inputs
(("rust-cairo-sys-rs" ,rust-cairo-sys-rs-0.15)
("rust-glib-sys" ,rust-glib-sys-0.15)
("rust-libc" ,rust-libc-0.2)
("rust-pango-sys" ,rust-pango-sys-0.15)
("rust-system-deps" ,rust-system-deps-6))
#:cargo-development-inputs
(("rust-shell-words" ,rust-shell-words-1)
("rust-tempfile" ,rust-tempfile-3))))))
(define-public rust-soup-sys-0.10
(package
(name "rust-soup-sys")

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,7 @@
;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; Copyright © 2016, 2017, 2019, 2020 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2017 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2018, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2020, 2021, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2018, 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
@ -26,6 +26,7 @@
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
;;; Copyright © 2023 Ivan Vilata-i-Balaguer <ivan@selidor.net>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -257,22 +258,20 @@ OpenBSD tool of the same name.")
(define-public rust-minisign
(package
(name "rust-minisign")
(version "0.5.20")
(version "0.7.5")
(source
(origin
(method url-fetch)
(uri (crate-uri "minisign" version))
(file-name
(string-append name "-" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0xmcvh2snravghaar8igc6b9r3s1snnmf9qam9l3zyhm4987767y"))))
(base32 "1lmp83bxdg53c4n35fbwr3rkh6178y75fwsn25hf1kn62f2gbdnj"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-getrandom" ,rust-getrandom-0.1)
("rust-rpassword" ,rust-rpassword-4)
("rust-scrypt" ,rust-scrypt-0.3))))
(("rust-getrandom" ,rust-getrandom-0.2)
("rust-rpassword" ,rust-rpassword-7)
("rust-scrypt" ,rust-scrypt-0.11))))
(home-page "https://github.com/jedisct1/rust-minisign")
(synopsis "Crate to sign files and verify signatures")
(description
@ -742,7 +741,7 @@ data on your platform, so the seed itself will be as random as possible.
(define-public crypto++
(package
(name "crypto++")
(version "8.6.0")
(version "8.8.0")
(source (origin
(method git-fetch)
(uri
@ -754,62 +753,35 @@ data on your platform, so the seed itself will be as random as possible.
(file-name (git-file-name name version))
(sha256
(base32
"1vm821wpx59ccz6gr4xplqpxj3f1qq3jijyybj2g4npqmmldhx3b"))))
"11gfnsqbb531zwgzpm0x9hsgshzcj1j049vg0zqsaqf8lvky03l6"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
(list (string-append "PREFIX=" (assoc-ref %outputs "out"))
;; Override "/sbin/ldconfig" with simply "echo" since
;; we don't need ldconfig(8).
"LDCONF=echo")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-native-optimisation
;; This package installs more than just headers. Ensure that the
;; cryptest.exe binary & static library aren't CPU model specific.
(lambda _
(substitute* "GNUmakefile"
((" -march=native") ""))
#t))
(delete 'configure)
(replace 'build
;; By default, only the static library is built.
(lambda* (#:key (make-flags '()) #:allow-other-keys)
(apply invoke "make" "shared"
"-j" (number->string (parallel-job-count))
make-flags)))
(add-after 'install 'install-shared-library-links
;; By default, only .so and .so.x.y.z are installed.
;; Create all the intermediates expected by dependent packages.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib"))
(prefix "libcryptopp.so.")
(target (string-append prefix ,version)))
(with-directory-excursion lib
(symlink target
(string-append prefix ,(version-major+minor version)))
(symlink target
(string-append prefix ,(version-major version)))
#t))))
(add-after 'install 'install-pkg-config
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(pkg-dir (string-append out "/lib/pkgconfig")))
(mkdir-p pkg-dir)
(with-output-to-file (string-append pkg-dir "/libcrypto++.pc")
(lambda _
(display
(string-append
"prefix=" out "\n"
"libdir=" out "/lib\n"
"includedir=" out "/include\n\n"
"Name: libcrypto++-" ,version "\n"
"Description: Class library of cryptographic schemes\n"
"Version: " ,version "\n"
"Libs: -L${libdir} -lcryptopp\n"
"Cflags: -I${includedir}\n"))
#t))))))))
(list #:make-flags
#~(list (string-append "PREFIX=" #$output)
(string-append "CC=" #$(cc-for-target))
(string-append "CXX=" #$(cxx-for-target))
(string-append "AR=" #$(ar-for-target))
;; Override "/sbin/ldconfig" with simply "echo" since
;; we don't need ldconfig(8).
"LDCONF=echo")
#:phases
#~(modify-phases %standard-phases
(delete 'configure)
(replace 'build
;; By default, only the static library is built.
(lambda* (#:key make-flags parallel-build?
#:allow-other-keys)
(let* ((job-count (if parallel-build?
(number->string (parallel-job-count))
1))
(jobs (string-append "-j" job-count))
(target #$(if (target-mingw?)
"static"
"shared")))
(apply invoke "make" target jobs make-flags)
(apply invoke "make" "libcryptopp.pc" jobs
make-flags)))))))
(properties '((tunable? . #t)))
(native-inputs
(list unzip))
(home-page "https://cryptopp.com/")
@ -1580,36 +1552,37 @@ SHA-3, and BLAKE2.")
(define-public rust-blake3-1
(package
(name "rust-blake3")
(version "1.0.0")
;; The crate does not include the reference_impl directory.
(version "1.5.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/BLAKE3-team/BLAKE3")
(commit version)))
(file-name (git-file-name name version))
(method url-fetch)
(uri (crate-uri "blake3" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"09xi7rjyi5hgxyfpias485x5argwqygvfl9sggiw221qjdfxpbdn"))))
(base32 "11ysh12zcqq6xkjxh5cbrmnwzalprm3z552i5ff7wm5za9hz0c82"))))
(build-system cargo-build-system)
(arguments
(list
#:tests? #f ; use of undeclared crate or module `reference_impl`
#:cargo-inputs
`(("rust-arrayref" ,rust-arrayref-0.3)
("rust-arrayvec" ,rust-arrayvec-0.7)
("rust-cc" ,rust-cc-1)
("rust-cfg-if" ,rust-cfg-if-1)
("rust-constant-time-eq" ,rust-constant-time-eq-0.1)
("rust-crypto-mac" ,rust-crypto-mac-0.11)
("rust-digest" ,rust-digest-0.9)
("rust-rayon" ,rust-rayon-1))
("rust-constant-time-eq" ,rust-constant-time-eq-0.3)
("rust-digest" ,rust-digest-0.10)
("rust-memmap2" ,rust-memmap2-0.7)
("rust-rayon" ,rust-rayon-1)
("rust-serde" ,rust-serde-1)
("rust-zeroize" ,rust-zeroize-1))
#:cargo-development-inputs
`(("rust-cc" ,rust-cc-1)
("rust-hex" ,rust-hex-0.4)
("rust-page-size" ,rust-page-size-0.4)
`(("rust-hex" ,rust-hex-0.4)
("rust-hmac" ,rust-hmac-0.12)
("rust-page-size" ,rust-page-size-0.6)
("rust-rand" ,rust-rand-0.8)
("rust-rand-chacha" ,rust-rand-chacha-0.3))))
("rust-rand-chacha" ,rust-rand-chacha-0.3)
("rust-serde-json" ,rust-serde-json-1)
("rust-tempfile" ,rust-tempfile-3))))
(home-page "https://github.com/BLAKE3-team/BLAKE3")
(synopsis "BLAKE3 hash function Rust implementation")
(description "This crate provides the official Rust implementation of the
@ -1622,16 +1595,14 @@ SHA-3, and BLAKE2.")
(define-public b3sum
(package
(name "b3sum")
;; Version 1 requires Rust >= 1.51.
;; <https://github.com/BLAKE3-team/BLAKE3/releases/tag/1.0.0>
(version "0.3.8")
(version "1.5.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "b3sum" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32 "0h3fz16q5lk6mg7r8kjkjrq5hd4injngn5m7pswjbf2pyzjmg4b4"))))
(base32 "05k0vn7gpbvjr925vjc5yzvhiyrmkw9pqmch5fr4ir7s8wiaq2fm"))))
(build-system cargo-build-system)
(arguments
`(;; Install the source so that Cargo.toml is installed, because that is
@ -1651,10 +1622,10 @@ SHA-3, and BLAKE2.")
(install-file "README.md" doc)))))
#:cargo-inputs
(("rust-anyhow" ,rust-anyhow-1)
("rust-blake3" ,rust-blake3-0.3)
("rust-clap" ,rust-clap-2)
("rust-blake3" ,rust-blake3-1)
("rust-clap" ,rust-clap-4)
("rust-hex" ,rust-hex-0.4)
("rust-memmap" ,rust-memmap-0.7)
("rust-memmap2" ,rust-memmap2-0.7)
("rust-rayon" ,rust-rayon-1)
("rust-wild" ,rust-wild-2))
#:cargo-development-inputs

View File

@ -156,18 +156,37 @@ tunneling, and so on.")
(home-page "https://curl.haxx.se/")))
(define curl/fixed
(let ((%version "8.3.0"))
(let ((%version "8.4.0"))
(package
(inherit curl)
(version "8.3.0a") ; add lowercase 'a' for grafting
(version "8.4.0a") ; add lowercase 'a' for grafting
(source (origin
(method url-fetch)
(uri (string-append "https://curl.se/download/curl-"
%version ".tar.xz"))
(sha256
(base32
"0qza6yf20y2l4aaxkn8dfw8p3fls1mxljvdb0m8z1i6ncxvn4v9p"))
(patches (search-patches "curl-use-ssl-cert-env.patch")))))))
"0bd8y8v66biyqvg70ka1sdd0aixs6yzpnvfsig907xzh9af2mihn"))
(patches (search-patches "curl-use-ssl-cert-env.patch"))))
(arguments
(if (system-hurd?)
(substitute-keyword-arguments (package-arguments curl)
((#:phases phases '%standard-phases)
#~(modify-phases #$phases
;; We cannot simply set #:make-flags because they are
;; ignored by curl's custom check phase.
(replace 'check
(lambda* (#:key tests? make-flags #:allow-other-keys)
(substitute* "tests/runtests.pl"
(("/bin/sh") (which "sh")))
;; See comment in curl about check/test.
(let ((arguments `("-C" "tests" "test"
,@make-flags
;; protocol FAIL
"TFLAGS=~1474")))
(when tests?
(apply invoke "make" arguments))))))))
(package-arguments curl))))))
(define-public curl-ssh
(package/inherit curl

View File

@ -106,6 +106,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages gperf)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)

View File

@ -35,6 +35,7 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system qt)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
@ -142,6 +143,57 @@ create smooth, animated user interfaces.")
;; QML files are MIT licensed and images are CC BY 3.0.
(license (list license:gpl2+ license:expat license:cc-by3.0))))
(define-public abstractdark-sddm-theme
(let ((commit "e817d4b27981080cd3b398fe928619ffa16c52e7")
(revision "0"))
(package
(name "abstractdark-sddm-theme")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/3ximus/abstractdark-sddm-theme")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1si141hnp4lr43q36mbl3anlx0a81r8nqlahz3n3l7zmrxb56s2y"))))
(build-system copy-build-system)
(arguments
`(#:install-plan '(("." "/share/sddm/themes/abstractdark"))))
(home-page "https://github.com/3ximus/abstractdark-sddm-theme")
(synopsis "Abstract Dark theme for SDDM")
(description
"This package provides a minimalistic dark theme for SDDM, black
background with abstract shapes. Inspired by solarized-sddm-theme.")
(license license:gpl3+))))
(define-public dexy-color-sddm-theme
(let ((commit "7929384dbb9305e6da53a8942bca3d75593fd99f")
(revision "0"))
(package
(name "dexy-color-sddm-theme")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/L4ki/Dexy-Plasma-Themes")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1dcp3pvs6x63740sz852yr19fjrdnh81dbrq7rssgm6ssi1rqjig"))))
(build-system copy-build-system)
(arguments
`(#:install-plan '(("Dexy-Color-SDDM"
"/share/sddm/themes/dexy-color-sddm"))))
(home-page "https://github.com/L4ki/Dexy-Plasma-Themes")
(synopsis "Dexy Color theme for SDDM")
(description
"This package provides a minimalistic and modern SDDM theme with blured
background.")
(license license:gpl3+))))
(define-public guix-simplyblack-sddm-theme
(package
(name "guix-simplyblack-sddm-theme")

View File

@ -47,6 +47,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages gtk)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages image)

View File

@ -70,7 +70,7 @@
;;; Copyright © 2020 Jérémy Korwin-Zmijowski <jeremy@korwin-zmijowski.fr>
;;; Copyright © 2020 Alberto Eleuterio Flores Guerrero <barbanegra+guix@posteo.mx>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020, 2022 pinoaffe <pinoaffe@gmail.com>
;;; Copyright © 2020, 2022, 2023 pinoaffe <pinoaffe@gmail.com>
;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Ryan Desfosses <rdes@protonmail.com>
;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
@ -212,6 +212,7 @@
#:use-module (gnu packages lesstif)
#:use-module (gnu packages llvm)
#:use-module (gnu packages image)
#:use-module (gnu packages image-viewers)
#:use-module (gnu packages linux)
#:use-module (gnu packages libevent)
#:use-module (gnu packages lisp)
@ -504,6 +505,7 @@ API key.")
(uri (git-reference
(url "https://github.com/xenodium/chatgpt-shell")
(commit "1de7bfa6a34f20cca813006282d9a8f2ef291f95")))
(file-name (git-file-name name version))
(sha256
(base32
"1rabpp70qlmc47lmp2v7ckvfjhy6wkk881fxpbv2dchzhn77qk5r"))))
@ -4945,6 +4947,54 @@ written in the Go programming language.")
directly inside Emacs. It requires a Google Map Static API key to function.")
(license license:gpl3+))))
(define-public emacs-nominatim
(let ((revision "0")
(commit "f814e16f8f4e2cfd633f52b29699a009ab704fbf"))
(package
(name "emacs-nominatim")
(version (git-version "0.9.3" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://codeberg.org/emacs-weirdware/nominatim")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"19nw2iy8fxy6mfd4nwrdfa23a74a1b644400xx0900fwn6ihjhpl"))))
(build-system emacs-build-system)
(home-page "https://codeberg.org/emacs-weirdware/nominatim")
(synopsis "Forward and reverse geocode using Nominatim inside Emacs")
(description "This is an Emacs library which lets you forward and
reverse geocode using Nominatim, a component of OpenStreetMap.")
(license license:gpl3+))))
(define-public emacs-org-street
(let ((revision "0")
(commit "17913afe01504ee0cbcf83abaca18c5c618f9b33"))
(package
(name "emacs-org-street")
(version (git-version "0.7.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://codeberg.org/emacs-weirdware/org-street")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1a5mnnvs4yxrw4s71z9ap65xi0fc1ki1qprif5jxn8apswjlmiw1"))))
(build-system emacs-build-system)
(propagated-inputs (list emacs-nominatim))
(home-page "https://codeberg.org/emacs-weirdware/org-street")
(synopsis "(Reverse) Geocoding for Emacs Org files")
(description "Org Street is an extension for Org Mode for turning the
names of places into a LOCATION property containing their address. Given some
freeform text approximately describing a location, it geocodes it with
OpenStreetMaps Nominatim API to determine a canonical location. If Nominatim
returns multiple locations, a list is displayed to choose from.")
(license license:gpl3+))))
(define-public emacs-graphviz-dot-mode
(package
(name "emacs-graphviz-dot-mode")
@ -26781,6 +26831,39 @@ feeding them to package.el library.")
@end itemize")
(license license:gpl3+))))
(define-public emacs-sxiv
(package
(name "emacs-sxiv")
(version "0.4.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://tildegit.org/contrapunctus/sxiv")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0gimq172pp143jckfhhyw319n3vpjvlkadm0vhypycas9i89mcg0"))))
(inputs (list sxiv))
(propagated-inputs (list emacs-dash))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-sxiv-path
(lambda* (#:key inputs #:allow-other-keys)
(emacs-substitute-sexps "sxiv.el"
(":command
(append"
`(list ,(string-append (assoc-ref inputs "sxiv")
"/bin/sxiv")))))))))
(build-system emacs-build-system)
(home-page "https://tildegit.org/contrapunctus/sxiv")
(synopsis "Launch sxiv from Emacs with Dired integration")
(description "This package integrates sxiv into Dired. It adds a command
to start sxiv from a Dired buffer, allowing you to mark or unmark image files
in said buffer using sxiv.")
(license license:unlicense)))
(define-public emacs-mu4e-conversation
(let ((commit "98110bb9c300fc9866dee8e0023355f9f79c9b96")
(revision "5"))
@ -29192,7 +29275,7 @@ tabulated-lists).")
(define-public emacs-eat
(package
(name "emacs-eat")
(version "0.8")
(version "0.9.2")
(source
(origin
(method git-fetch)
@ -29202,7 +29285,7 @@ tabulated-lists).")
(file-name (git-file-name name version))
(sha256
(base32
"1fb66g7jjc7dhw61323d94mx7gqfp6ylf9a7v5qym1n92mv48bdr"))
"1mw3iwid2iky0kwpn90bbswx8m4kkni5zdjc75clzhzzygh340sd"))
(modules '((guix build utils)))
(snippet
#~(begin
@ -29235,12 +29318,14 @@ tabulated-lists).")
(list texinfo))
(inputs
(list ncurses))
(propagated-inputs
(list emacs-compat))
(home-page "https://codeberg.org/akib/emacs-eat")
(synopsis "Terminal emulator in Emacs")
(description
"Eat (Emulate A Terminal) is a terminal emulator in Emacs, written in
pure Elisp. It has features like complete mouse support and shell
integration.")
pure Elisp. It has features like Sixel support, complete mouse support and
shell integration.")
(license license:gpl3+)))
(define-public emacs-vterm
@ -29604,26 +29689,30 @@ opposed to character-based).")
(license license:gpl1+))))
(define-public emacs-disk-usage
(package
(name "emacs-disk-usage")
(version "1.3.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/Ambrevar/emacs-disk-usage")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0hv2gsd8k5fbjgckgiyisq4rn1i7y4rchbjy8kmixjv6mx563bll"))))
(build-system emacs-build-system)
(home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
(synopsis "Sort and browse disk usage listings with Emacs")
(description "Disk Usage is a file system analyzer: it offers a tabulated
;; Use a recent commit as the last release is missing changes from 2020
;; onwards
(let ((commit "b0d803f2cec3afc2937840f9ba66e3f903d6c415")
(revision "0"))
(package
(name "emacs-disk-usage")
(version (git-version "1.3.3" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/Ambrevar/emacs-disk-usage")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0vl79knb2snp2gzmcdasncgcc44rq99kmfnvwhfpm0wk21nxhc1m"))))
(build-system emacs-build-system)
(home-page "https://gitlab.com/Ambrevar/emacs-disk-usage")
(synopsis "Sort and browse disk usage listings with Emacs")
(description "Disk Usage is a file system analyzer: it offers a tabulated
view of file listings sorted by size. Directory sizes are computed
recursively. The results are cached for speed.")
(license license:gpl3+)))
(license license:gpl3+))))
(define-public emacs-orgit
(package
@ -32827,40 +32916,37 @@ time.")
(license license:gpl3+)))
(define-public emacs-mastodon
;; No release in ~1 year, hence this snapshot.
(let ((commit "20dec8871c9bb5f5e418bfc197e7533b5e3065e3")
(revision "1"))
(package
(name "emacs-mastodon")
(version (git-version "1.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://codeberg.org/martianh/mastodon.el")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"15cfjny99yw5frdp8nlyazlwgscvfvbinsj0fbdfprxf50k2zjs6"))))
(build-system emacs-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
;; Move the source files to the top level, which is included in
;; the EMACSLOADPATH.
(add-after 'unpack 'move-source-files
(lambda _
(let ((el-files (find-files "./lisp" ".*\\.el$")))
(for-each (lambda (f)
(rename-file f (basename f)))
el-files)))))))
(propagated-inputs
(list emacs-request emacs-ts emacs-persist))
(home-page "https://codeberg.org/martianh/mastodon.el")
(synopsis "Emacs client for Mastodon")
(description "@code{mastodon.el} is an Emacs client for Mastodon, the
(package
(name "emacs-mastodon")
(version "1.0.6")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://codeberg.org/martianh/mastodon.el")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1z5lmzxhindxa0f6qi6z361k9smqcz68alr6w6jbmwg279qmk8jj"))))
(build-system emacs-build-system)
(arguments
(list
#:phases #~(modify-phases %standard-phases
;; Move the source files to the top level, which is
;; included in the EMACSLOADPATH.
(add-after 'unpack 'move-source-files
(lambda _
(let ((el-files (find-files "./lisp" ".*\\.el$")))
(for-each (lambda (f)
(rename-file f
(basename f)))
el-files)))))))
(propagated-inputs (list emacs-request emacs-ts emacs-persist))
(home-page "https://codeberg.org/martianh/mastodon.el")
(synopsis "Emacs client for Mastodon")
(description "@code{mastodon.el} is an Emacs client for Mastodon, the
federated microblogging social network.")
(license license:gpl3+))))
(license license:gpl3+)))
(define-public emacs-ebdb
(package
@ -35546,10 +35632,11 @@ conventions.")
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-snippets
(lambda _
(lambda* (#:key outputs #:allow-other-keys)
(let ((snippets
(string-append
#$output "/share/emacs/site-lisp/snippets/haskell-mode")))
(elpa-directory (assoc-ref outputs "out"))
"/snippets/haskell-mode")))
(mkdir-p snippets)
(copy-recursively "snippets/haskell-mode" snippets)))))))
(propagated-inputs
@ -37000,6 +37087,40 @@ dict.org) from within Emacs.")
to the @url{https://multitran.com} online dictionary.")
(license license:gpl3+)))
(define-public emacs-lexic
(let ((commit "f9b3de4d9c2dd1ce5022383e1a504b87bf7d1b09")
(revision "0"))
(package
(name "emacs-lexic")
(version (git-version "0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.tecosaur.net/tec/lexic")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"02iz8dh18gb1q97v8ghcd3lavkf28sqbrk0bx6jzzryp69ickk4h"))))
(build-system emacs-build-system)
(inputs (list sdcv))
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-sdcv-path
(lambda* (#:key inputs outputs #:allow-other-keys)
(emacs-substitute-variables "lexic.el"
("lexic-program-path"
(string-append (assoc-ref inputs "sdcv")
"/bin/sdcv"))))))))
(home-page "https://git.tecosaur.net/tec/lexic")
(synopsis "Find out more about words using Stardict dictionaries")
(description "This provides a major mode to view the output of
dictionary tools, and utilities that perform searches and nicely format the
results. Currently tied to sdcv, but this is intended to be changed in the
future.")
(license license:gpl3+))))
(define-public emacs-blacken
(package
(name "emacs-blacken")
@ -38262,6 +38383,24 @@ In particular, it saves and restores project files and window configurations
across sessions.")
(license license:gpl3+))))
(define-public emacs-poke-mode
(package
(name "emacs-poke-mode")
(version "3.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/poke-mode-" version
".tar"))
(sha256
(base32 "1lirhws5d8l16qs5ddrvvz0f9xfl004q9yp333pdgsmcpk3ww7sr"))))
(build-system emacs-build-system)
(home-page "https://elpa.gnu.org/packages/poke-mode.html")
(synopsis "Major mode for editing GNU poke programs")
(description
"This package provides a major mode for editing GNU poke programs.")
(license license:gpl3+)))
(define-public emacs-vcard-mode
;; Use the latest commit, as there are no tagged releases.
(let ((commit "ab1a2885a5720d7fb02d9b6583ee908ba2260b78")

View File

@ -46,7 +46,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
#:use-module ((gnu packages base) #:prefix base:)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
@ -672,7 +672,7 @@ language.")
(list autoconf
automake
libtool
base:which
which
pkg-config
texinfo))
(inputs
@ -1152,7 +1152,7 @@ simulator.")
("flex" ,flex)
("bison" ,bison)
("guile-1.8" ,guile-1.8)
("which" ,base:which)))
("which" ,which)))
(synopsis "Binutils for VC4")
(description "This package provides @code{binutils} for VideoCore IV,
the Raspberry Pi chip.")
@ -1241,7 +1241,7 @@ hardware. The utility support USB and UART as serial link.")
(inputs
(list libftdi python))
(native-inputs
(list pkg-config swig base:which))
(list pkg-config swig which))
(arguments
`(#:tests? #f ; No tests exist.
#:parallel-build? #f ; Would be buggy.

View File

@ -1357,42 +1357,47 @@ the 'showing the effect of'-style of operation.")
(license license:gpl2+)))
(define-public valeronoi
(package
(name "valeronoi")
(version "0.1.6")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/ccoors/Valeronoi")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1hpyh4mmjnxgkij7a6rynk2ril5413nkdvf8syn0lqvrmibdg7wv"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "./valeronoi-tests")))))))
(inputs
(list boost
cgal
gmp
libxkbcommon
mpfr
openssl
qtbase-5
qtsvg-5))
(home-page "https://github.com/ccoors/Valeronoi")
(synopsis "WiFi mapping companion application for Valetudo")
(description
"Valeronoi (Valetudo + Voronoi) is a companion for Valetudo for generating
(package
(name "valeronoi")
(version "0.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ccoors/Valeronoi")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1qkhrqkjsmm0h1bxf2ihkqfhdr18xx5x1i2ds1mla13zm0bw2570"))
(snippet #~(begin
(use-modules (guix build utils))
(delete-file-recursively "3rdparty")
(substitute* '("tests/test_colormap.cpp"
"tests/test_main.cpp")
(("catch\\.hpp")
"catch2/catch.hpp"))))))
(build-system cmake-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "./valeronoi-tests")))))))
(inputs (list boost
cgal
gmp
libxkbcommon
mpfr
openssl
qtbase
qtsvg))
(native-inputs (list catch2))
(home-page "https://github.com/ccoors/Valeronoi")
(synopsis "WiFi mapping companion application for Valetudo")
(description
"Valeronoi (Valetudo + Voronoi) is a companion for Valetudo for generating
WiFi signal strength maps. It visualizes them using a Voronoi diagram.")
(license license:gpl3+)))
(license license:gpl3+)))
(define-public volk
(package
@ -3248,18 +3253,21 @@ program that can perform mesh processing tasks in batch mode, without a GUI.")
(delete-file "libpoke/pvm-vm1.c")
(delete-file "libpoke/pvm-vm2.c")))))
(build-system gnu-build-system)
;; The GUI, which we elide, requires tcl and tk.
(native-inputs (list bison dejagnu flex libtool pkg-config))
;; FIXME: Enable NBD support by adding `libnbd' (currently unpackaged).
(inputs (list json-c libgc readline libtextstyle))
(inputs (list libgc readline libtextstyle))
(arguments
;; To build the GUI, add the `--enable-gui' configure flag.
;; To enable the "hyperlink server", add the `--enable-hserver' flag.
`(#:configure-flags
'("--enable-mi"
"--disable-static"
;; The emacs files are provided in emacs-poke.
"--with-lispdir=/tmp/share/emacs")))
(list
#:imported-modules `((guix build emacs-build-system)
(guix build emacs-utils)
,@%gnu-build-system-modules)
#:modules '((guix build gnu-build-system)
((guix build emacs-build-system) #:prefix emacs:)
(guix build utils))
#:configure-flags
#~(list "--disable-static"
(string-append "--with-lispdir="
(emacs:elpa-directory #$output)))))
(home-page "https://www.gnu.org/software/poke/#documentation")
(synopsis "Editing of arbitrary binary data")
(description "GNU poke is an interactive, extensible editor for binary data.
@ -3269,22 +3277,9 @@ data structures and to operate on them.")
(license license:gpl3+)))
(define-public emacs-poke
(package
(inherit poke)
(name "emacs-poke")
(build-system emacs-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-before 'expand-load-path 'change-working-directory
(lambda _ (chdir "etc"))))))
(inputs '())
(native-inputs '())
(synopsis "GNU Poke major modes for Emacs")
(description
"This package provides two Emacs major modes for working with GNU Poke:
@code{Poke Ras mode} and @code{Poke Map mode}.")))
;; The 'emacs-poke' name may eventually refer to 'poke' from ELPA, which is
;; a different beast.
(deprecated-package "emacs-poke" poke))
(define-public pcb2gcode
(package

View File

@ -68,6 +68,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages guile)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages kerberos)

View File

@ -142,7 +142,7 @@
;; <https://bitcoincore.org/en/lifecycle/#schedule>.
(package
(name "bitcoin-core")
(version "25.0")
(version "25.1")
(source (origin
(method url-fetch)
(uri
@ -150,7 +150,7 @@
version "/bitcoin-" version ".tar.gz"))
(sha256
(base32
"1hpbw6diyla75a6jrwsis9c5pnhpnnxwbznsik1s1fd35ks7rxjx"))))
"1jcq2686x6f1g8xk91h3qfw89v1klw931wbpbcvc5a6zv2cabhmy"))))
(build-system gnu-build-system)
(native-inputs
(list autoconf
@ -682,7 +682,7 @@ blockchain.")
;; the system's dynamically linked library.
(package
(name "monero")
(version "0.18.2.2")
(version "0.18.3.1")
(source
(origin
(method git-fetch)
@ -700,7 +700,7 @@ blockchain.")
delete-file-recursively
'("external/miniupnp" "external/rapidjson"))))
(sha256
(base32 "0hi6grf2xnnra60g3dzspahi0rwyiad6hc07n3pq3aknmz5xx8d4"))))
(base32 "1k6mrgsvmqsfk95w8kjmp9v2fghjmmpj40667zndrw9jx1h85mwx"))))
(build-system cmake-build-system)
(native-inputs
(list doxygen
@ -787,7 +787,7 @@ the Monero command line client and daemon.")
(define-public monero-gui
(package
(name "monero-gui")
(version "0.18.2.2")
(version "0.18.3.1")
(source
(origin
(method git-fetch)
@ -803,7 +803,7 @@ the Monero command line client and daemon.")
;; See the 'extract-monero-sources' phase.
(delete-file-recursively "monero")))
(sha256
(base32 "07gfvrxm3n0844ximm4rd3f3n0m125shpawdzg8blfjjbfr1k1ij"))))
(base32 "1fjx8gdzc1pmfsi14r09gfmkglvh560pnxk70p0k82a4gbs1vyz2"))))
(build-system qt-build-system)
(native-inputs
`(,@(package-native-inputs monero)
@ -2299,7 +2299,7 @@ mining.")
(define-public p2pool
(package
(name "p2pool")
(version "3.6.2")
(version "3.7")
(source
(origin
(method git-fetch)
@ -2308,7 +2308,7 @@ mining.")
(commit (string-append "v" version))
(recursive? #t)))
(file-name (git-file-name name version))
(sha256 (base32 "0lki6yrzmmpd5hj55m6s71y1cr81lbk1f3h9h70gmm4p4qjrv5f2"))
(sha256 (base32 "1sghdk8yq8si0bq0z83fji48q8yrq0ymvsxbbh5mscw6223syrjq"))
(modules '((guix build utils)))
(snippet
#~(for-each delete-file-recursively

View File

@ -28,11 +28,13 @@
(define-module (gnu packages firmware)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix memoization)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (guix git-download)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
@ -40,6 +42,9 @@
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avr)
#:use-module (gnu packages avr-xyz)
#:use-module (gnu packages assembly)
#:use-module (gnu packages backup)
#:use-module (gnu packages base)
@ -52,7 +57,9 @@
#:use-module (gnu packages curl)
#:use-module (gnu packages efi)
#:use-module (gnu packages elf)
#:use-module (gnu packages flashing-tools)
#:use-module (gnu packages flex)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
@ -75,7 +82,11 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages xml)
#:use-module (ice-9 match))
#:use-module (ice-9 format)
#:use-module (ice-9 match)
#:export (make-ergodox-firmware
make-qmk-firmware))
(define-public ath9k-htc-firmware
(package
@ -94,7 +105,8 @@
"ath9k-htc-firmware-gcc-compat.patch"))))
(build-system gnu-build-system)
(arguments
'(#:phases
'(#:target #f ; Package produces firmware.
#:phases
(modify-phases %standard-phases
(add-before 'configure 'pre-configure
(lambda* (#:key inputs native-inputs #:allow-other-keys)
@ -322,6 +334,7 @@ automatic, safe and reliable. It is used by tools such as GNOME Software.")
`(#:make-flags (list (string-append "PREFIX="
(assoc-ref %outputs "out")
"/lib/firmware/b43-open"))
#:target #f ; Package produces firmware.
#:tests? #f ;no tests
#:phases (modify-phases %standard-phases
(delete 'configure))))
@ -510,6 +523,7 @@ provide OpenFirmware functionality on top of an already running system.")
(list python)))
(arguments
`(#:tests? #f ; no check target
#:target #f ; Package produces firmware.
#:make-flags (list (string-append "PLATFORM=" ,platform)
,@(if (and (not (string-prefix? "riscv64"
(%current-system)))
@ -1212,6 +1226,97 @@ AR100.")
(define-public crust-pine64-plus
(make-crust-package "pine64_plus"))
;;;
;;; ErgoDox firmware.
;;;
(define* (make-ergodox-firmware/implementation layout #:key override.c
override.h)
"Return an ergodox-firmware package for LAYOUT, optionally using OVERRIDE.C,
a C source file-like object to override LAYOUT which may be accompanied by
OVERRIDE.H, to also override the corresponding layout include file."
(let ((revision "0")
(commit "89b7e2bfdafb2a87e0248846d5c95cc5e9a27858"))
(package
(name (string-append "ergodox-firmware-" layout))
(version (git-version "1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/benblazak/ergodox-firmware")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1z28frxyb21nz90frycrpsbxjp09374wawayvjphnwc8njlvkkpy"))
(patches
(search-patches "ergodox-firmware-fix-json-target.patch"
"ergodox-firmware-fix-numpad.patch"))))
(build-system gnu-build-system)
(arguments
(list
#:tests? #f ;no test suite
#:make-flags
#~(list (string-append "LAYOUT=" #$layout)
;; Simplify the output directory name.
"ROOT=output")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'copy-override-files
(lambda _
(when #$override.c
(copy-file #$override.c
(format #f "src/keyboard/ergodox/layout/~a.c"
#$layout)))
(when #$override.h
(copy-file #$override.h
(format #f "src/keyboard/ergodox/layout/~a.h"
#$layout)))))
;; The Makefile-based build system lacks configure
;; and install targets.
(delete 'configure)
(replace 'install
(lambda _
(with-directory-excursion "output"
(install-file "firmware.hex" #$output)
(install-file "firmware.eep" #$output)
(install-file "firmware--layout.html" #$output)))))))
(native-inputs (list (make-avr-toolchain) python))
(home-page "https://www.ergodox.io")
(synopsis "Firmware for the ErgoDox keyboard")
(description (format #f "This package contains the original firmware for
the ErgoDox keyboard, built using the ~a layout (as defined in the
@file{src/keyboard/ergodox/layout/~@*~a.c} source file). It contains the
@file{firmware.hex} and the @file{firmware.eep} files, which can be loaded to
a target using the @code{teensy-loader-cli} package as well as a
@file{firmware--layout.html} file, useful to easily visualize the
corresponding layout." layout))
(license license:expat))))
(define make-ergodox-firmware
(memoize make-ergodox-firmware/implementation))
(define-public ergodox-firmware-colemak-jc-mod
(make-ergodox-firmware "colemak-jc-mod"))
(define-public ergodox-firmware-colemak-symbol-mod
(make-ergodox-firmware "colemak-symbol-mod"))
(define-public ergodox-firmware-dvorak-kinesis-mod
(make-ergodox-firmware "dvorak-kinesis-mod"))
(define-public ergodox-firmware-qwerty-kinesis-mod
(make-ergodox-firmware "qwerty-kinesis-mod"))
(define-public ergodox-firmware-workman-p-kinesis-mod
(make-ergodox-firmware "workman-p-kinesis-mod"))
;;;
;;; QMK Firmware.
;;;
(define-public qmk
(package
(name "qmk")
@ -1223,12 +1328,278 @@ AR100.")
(base32
"1619q9v90740dbg8xpzqlhwcasz42xj737803aiip8qc3a7zhwgq"))))
(build-system pyproject-build-system)
(arguments (list #:tests? #f)) ;; No tests.
(propagated-inputs (list python-dotty-dict python-hid python-hjson
python-jsonschema python-milc python-pillow
python-pygments python-pyserial python-pyusb))
(arguments
(list
#:tests? #f ;no tests
#:modules '((guix build pyproject-build-system)
(guix build utils)
(srfi srfi-26))
#:phases
#~(modify-phases %standard-phases
(add-after 'wrap 'wrap-path
;; Wrap all the tools needed for the 'setup' and 'compile' actions
;; (tested with the 'ergodox_ez' keyboard).
(lambda* (#:key inputs outputs #:allow-other-keys)
(wrap-program (search-input-file outputs "bin/qmk")
`("PATH" prefix
,(map (compose dirname
(cut search-input-file inputs <>))
'("bin/avr-ar"
"bin/avr-gcc"
"bin/avrdude"
"bin/awk"
"bin/cmp"
"bin/dfu-programmer"
"bin/dfu-util"
"bin/git"
"bin/grep"
"bin/make"
"bin/python3"
"bin/sh"
;; TODO: Remove after git is wrapped with these.
"bin/basename"
"bin/sed"
"bin/uname")))
`("CROSS_C_INCLUDE_PATH" = (,(getenv "CROSS_C_INCLUDE_PATH")))
`("CROSS_LIBRARY_PATH" = (,(getenv "CROSS_LIBRARY_PATH")))))))))
;; The inputs are not propagated since qmk is to be used strictly as a
;; command.
(inputs
;; The 'qmk setup' command advises to use GCC at version 8, and there are
;; compilation errors in some firmware otherwise.
(list (make-avr-toolchain #:xgcc gcc-8)
avrdude
bash-minimal
dfu-programmer
dfu-util
diffutils
git-minimal ;for the clone action
gawk
gnu-make
grep
python
python-dotty-dict
python-hid
python-hjson
python-jsonschema
python-milc
python-pillow
python-pygments
python-pyserial
python-pyusb
;; These are added to workaround faults in our git package (see
;; bug#65924).
coreutils-minimal
sed
util-linux))
(home-page "https://qmk.fm")
(synopsis "Command line utility to manage QMK keyboard firmwares")
(description "This package provides a program to help users work with
@acronym{QMK, Quantum Mechanical Keyboard} firmwares.")
(description "The QMK CLI provides a @acronym{CLI, command line interface}
based program to help users work with the QMK firmware, which can be used for
multiple custom keyboards such as Planck, ErgoDox, Corne and others.
This @acronym{CLI} program is mainly used for building the QMK firmware, but
also has some other convenience utilities. It is highly recommended to
install the udev rules provided by the @code{qmk-udev-rules} package to avoid
having to run @command{qmk} as root when flashing the firmware.")
(license license:expat)))
(define* (make-qmk-firmware/implementation keyboard keymap
#:key (description "")
keymap-json
keymap-source-directory)
"Return a package to build the QMK firmware for KEYBOARD with KEYMAP.
Keyboard should be the name of a sub-directory under the @file{keyboards}
directory. For custom keymaps, KEYMAP-JSON, a file-like object of a JSON
representation of KEYMAP as generated by the @url{https://config.qmk.fm/, QMK
Configurator} tool or KEYMAP-SOURCE-DIRECTORY, a file-like object directory
containing the keymap source files files such as @file{keymap.c}, can be
provided."
(package
(name (string-append "qmk-firmware-"
(string-replace-substring keyboard "_" "-") "-"
(string-replace-substring keymap "_" "-")))
;; Note: When updating this package, make sure to also update the commit
;; used for the LUFA submodule in the 'copy-lufa-source' phase below.
(version "0.22.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/qmk/qmk_firmware")
(commit version)))
(file-name (git-file-name "qmk-firmware" version))
(sha256
(base32
"0s1lcnv7cddpn768p7mrc5bkxhx0ba5p77ya007dnkbk36c33d0w"))
(patches
(search-patches "qmk-firmware-fix-hacker-dvorak.patch"))))
(build-system gnu-build-system)
(arguments
(list
#:modules '((guix build gnu-build-system)
(guix build utils)
(ice-9 ftw)
(ice-9 match)
(srfi srfi-26))
;; XXX: Running a test target like "test:$keyboard" doesn't seem to run
;; anything and causes the .hex file to be regenerated; leave the tests
;; out for now.
#:tests? #f
#:make-flags
#~(list #$(format #f "~a:~a" keyboard keymap)
(string-append "SHELL=" (search-input-file
%build-inputs "bin/sh")))
#:phases
#~(modify-phases %standard-phases
(replace 'configure
(lambda _
;; Do not attempt to retrieve information from git during the
;; build.
(setenv "SKIP_GIT" "1")))
(add-after 'unpack 'copy-lufa-source
;; QMK carries a custom fork of LUFA as a git submodule; make sure
;; the same commit is used (see:
;; https://github.com/qmk/qmk_firmware/tree/master/lib).
(lambda _
(copy-recursively
#$(let ((commit "549b97320d515bfca2f95c145a67bd13be968faa"))
(origin
(inherit (package-source lufa))
(uri (git-reference
(url "https://github.com/qmk/lufa")
(commit commit)))
(file-name (git-file-name "lufa" commit))
(sha256
(base32
"1rmhm4rxvq8skxqn6vc4n4ly1ak6whj7c386zbsci4pxx548n9h4"))))
"lib/lufa")))
#$@(if keymap-source-directory
#~((add-after 'unpack 'copy-keymap-source-directory
(lambda _
(let ((keymap-dir #$(string-append "keyboards/" keyboard
"/keymaps/" keymap)))
(false-if-exception (delete-file-recursively
keymap-dir))
(copy-recursively #$keymap-source-directory
keymap-dir)))))
#~())
#$@(if keymap-json
#~((replace 'build
(lambda _
(invoke "qmk" "compile" #$keymap-json))))
#~())
(replace 'install
(lambda _
(match (scandir "." (lambda (f)
(false-if-exception
(member (string-take-right f 4)
'(".bin" ".hex" ".uf2")))))
(()
(error "no built binary file found"))
((hex ..1)
(for-each (cut install-file <> #$output) hex))))))))
;; Some of the build tools are required to be on the PATH, as the make
;; files do not always operate through 'qmk'; all of qmk's inputs must
;; thus be made available.
(native-inputs (modify-inputs (package-inputs qmk)
(append qmk)))
(home-page "https://qmk.fm/")
(synopsis "Keyboard firmware for Atmel AVR and Arm USB families")
(description
(format #f "QMK (Quantum Mechanical Keyboard Firmware) is a keyboard
firmware based on the @url{https://github.com/tmk/tmk_keyboard, tmk_keyboard
firmware} with some useful features for Atmel AVR and ARM controllers, and
more specifically, the @url{https://olkb.com/, OLKB product line}, the
@url{https://ergodox-ez.com/, ErgoDox EZ keyboard}, and the
@url{https://clueboard.co/, Clueboard product line}.~@[~%~%~a~]" description))
(license license:gpl2+)))
(define make-qmk-firmware (memoize make-qmk-firmware/implementation))
(define-public qmk-firmware-ergodox-ez-default
(make-qmk-firmware
"ergodox_ez" "default" #:description
"This is the default keymap used on the ErgoDox EZ keyboard. It includes
the novel MEH and Hyper keys pioneered by the ErgoDox EZ, easy to reach
Control/Shift modifiers keys, and two-functions hold keys to access layer 1.
Layer 1 contains function keys, symbols, a numpad as well as brightness keys.
Layer 2 contains multimedia and mouse keys. See the
@file{keyboards/ergodox_ez/keymaps/default/keymap.c} source file for the
keymap definition, or the
@url{https://configure.ergodox-ez.com/ergodox-ez/layouts/JwwW/latest/0,
ErgoDox EZ Configurator} page."))
(define-public qmk-firmware-ergodox-ez-dvorak-42-key
(make-qmk-firmware "ergodox_ez" "dvorak_42_key" #:description "\
This is a Dvorak-based layout for the ErgoDox EZ. Its basic key layout is
similar to the Atreus @samp{dvorak_42_key} layout; in fact this layout was
created for seamless switching between the ErgoDox EZ and Atreus keyboards.
On the base layer, the keys that don't exist on the Atreus are mapped to MEH
shortcuts and can be interpreted by your window managher. This layout only
makes use of the 42 keys that the Atreus also has for the main functionality.
See the @file{keyboards/atreus/keymaps/dvorak_42_key/keymap.c} source file for
the keymap definition."))
(define-public qmk-firmware-ergodox-ez-hacker-dvorak
(make-qmk-firmware "ergodox_ez" "hacker_dvorak" #:description "\
This is a Dvorak layout for the ErgoDox EZ. It is inspired by the
@url{https://www.kaufmann.no/roland/dvorak, Programmer Dvorak}. The operating
system keyboard layout should be set to US for this keymap to function
normally. It defines 10 layers:
@enumerate
@item Dvorak
@item Querty
@item Gaming
@item Arrows
@item Mouse
@item Numpad
@item Hyper Fn
@item Media Fn
@item Meh Fn
@item Meh Fn +
@end enumerate
The complete keymap can be inspected at the ErgoDox EZ Configurator web site:
@url{https://configure.ergodox-ez.com/ergodox-ez/layouts/Wadz/latest/0}."))
(define-public qmk-firmware-ergodox-ez-dvorak
(make-qmk-firmware
"ergodox_ez" "dvorak" #:description
"This is a rather plain Dvorak layout for the ErgoDox EZ, containing
function and symbols on layer 1 and media and and mouse keys on layer 2. See
the @file{layouts/community/ergodox/dvorak/keymap.c} source file for the
keymap definition."))
(define-public qmk-firmware-ergodox-ez-dvorak-emacs
(make-qmk-firmware
"ergodox_ez" "dvorak_emacs" #:description
"This is a Dvorak-based keymap optimized for Emacs usage, with the
frequently used Control and Meta (Alt) keys mapped to the thumb buttons. It
contains a single extra layer that includes function and multimedia keys. A
graphical representation of the keymap is available in the
@file{layouts/community/ergodox/dvorak_emacs/readme.md} source file."))
(define-public qmk-firmware-ergodox-ez-dvorak-emacs-software
(make-qmk-firmware
"ergodox_ez" "dvorak_emacs_software" #:description
"This is the same layout as that of the
@code{qmk-firmware-ergodox-ez-dvorak-emacs}, but designed to be used with a
Dvorak-configured operating system (instead of a US QWERTY one, which is the
default assumption for QMK firmware keymaps)."))
(define-public qmk-udev-rules
(package
(inherit qmk-firmware-ergodox-ez-default)
(name "qmk-udev-rules")
(build-system copy-build-system)
(arguments
'(#:install-plan '(("./util/udev" "lib/udev/rules.d"
#:include-regexp ("rules$")))))
(native-inputs '())
(inputs '())
(propagated-inputs '())
(synopsis "Udev rules for QMK Firmware")
(description
"This package provides a set of udev rules to specify the proper
privileges for flashing QMK compatible devices without needing root. The
rules require the group @code{plugdev} to be added to each user that needs
this.")))

View File

@ -11,6 +11,7 @@
;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
;;; Copyright © 2022 Peter Polidoro <peter@polidoro.io>
;;; Copyright © 2023 B. Wilson <x@wilsonb.com>
;;; Copyright © 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -36,6 +37,7 @@
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (guix build-system cmake)
#:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
@ -64,7 +66,8 @@
#:use-module (gnu packages pciutils)
#:use-module (gnu packages qt)
#:use-module (gnu packages tls)
#:use-module (gnu packages xml))
#:use-module (gnu packages xml)
#:use-module (srfi srfi-26))
(define-public flashrom
(package
@ -237,16 +240,15 @@ firmware from it.")
(patches (search-patches "teensy-loader-cli-help.patch"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ;; Makefile has no test target
#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output))
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "teensy_loader_cli" bin)))))))
(list
#:tests? #f ;; Makefile has no test target
#:make-flags #~(list "CC=gcc" (string-append "PREFIX=" #$output))
#:phases #~(modify-phases %standard-phases
(delete 'configure)
(replace 'install
(lambda _
(install-file "teensy_loader_cli"
(string-append #$output "/bin")))))))
(inputs (list libusb-compat)) ;only compatible with libusb 0.1
(synopsis "Command line firmware uploader for Teensy development boards")
(description
@ -256,7 +258,45 @@ HalfKay bootloader is running, so you can upload new programs and run them.
You need to add the udev rules to make the Teensy update available for
non-root users.")
(home-page "https://www.pjrc.com/teensy/loader_cli.html")
(license license:gpl3)))
(license license:gpl3+)))
(define-public teensy-udev-rules
(package
(name "teensy-udev-rules")
(version "20230913") ;no version whatsoever -- use the current date
(source (origin
(method url-fetch)
(uri "https://www.pjrc.com/teensy/00-teensy.rules")
(sha256
(base32
"1yxczxvwi0s31g7lfa4v13yvvpv6gcsfs7r9mv6y4w9jc1inpx8p"))))
(build-system copy-build-system)
(arguments
(let ((rules-file "lib/udev/rules.d/70-teensy.rules"))
(list
#:install-plan
#~(list `(,#$source #$rules-file))
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* (string-append #$output "/" #$rules-file)
(("/bin/stty")
(search-input-file inputs "bin/stty")))))))))
(inputs (list coreutils-minimal))
(home-page "https://www.pjrc.com/teensy/loader_cli.html")
(synopsis "udev rules for the Teensy family of micro-controllers")
(description "This package provides a udev rules file that allows
unprivileged users communication with the Teensy family of micro-controllers.
ModemManager (part of NetworkManager) can interfere with USB Serial devices,
which includes the Teensy. In case of problems, see the @file{.rules} file
for possible workarounds.")
;; FIXME: The file lacks an explicit license, so the license of
;; teensy-cli-loader is *assumed* to hold (see:
;; https://github.com/PaulStoffregen/teensy_loader_cli/issues/84).
(license license:gpl3+)
(supported-systems (filter (cut string-suffix? "-linux" <>)
%supported-systems))))
(define-public rkflashtool
(let ((commit "8966c4e277de8148290554aaaa4146a3a84a3c53")

View File

@ -580,6 +580,10 @@ The unified Libertinus family consists of:
(outputs (list "out" "pcf-8bit" "otb"))
(arguments
`(#:tests? #f ; no test target in tarball
#:modules
((guix build gnu-build-system)
(guix build utils)
(ice-9 match))
#:phases
(modify-phases %standard-phases
(add-after 'build 'build-more-bits
@ -601,7 +605,16 @@ The unified Libertinus family consists of:
(lambda* (#:key make-flags outputs #:allow-other-keys)
(let ((otb (assoc-ref outputs "otb")))
(apply invoke "make" "install-otb" (string-append "prefix=" otb)
make-flags)))))))
make-flags))))
(add-after 'install 'install-documentation
;; There's no way to decypher the cryptic file names without this.
(lambda* (#:key outputs #:allow-other-keys)
(for-each (match-lambda
((name . directory)
(install-file "README"
(string-append directory "/share/doc/"
,name "-" ,version))))
outputs))))))
(native-inputs
(list bdftopcf font-util mkfontdir pkg-config python))
(home-page "https://terminus-font.sourceforge.net/")

View File

@ -1499,6 +1499,37 @@ resolution.")
(license license:gpl2+)
(home-page "https://potrace.sourceforge.net/")))
(define-public psftools
(package
(name "psftools")
(version "1.1.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.seasip.info/Unix/PSF/"
"psftools-" version ".tar.gz"))
(sha256
(base32 "1lv6kvrcbspyh7a0hlji84wbmw6xh87r3iaafq3khp88kgh1irri"))))
(build-system gnu-build-system)
(arguments
(list
#:configure-flags #~(list "--disable-static")))
(home-page "https://www.seasip.info/Unix/PSF/")
(synopsis
"Convert PSF fixed-width bitmap (console) fonts from/to other formats")
(description
"@acronym{PSF, PC Screen Font} is the simple monospaced bitmap font format
used by the Linux kernel for console fonts. The PSF Tools convert between PSF
and many other font formats, similar to what the NetPBM package does for images.
It includes converters for a good number of common bitmap font formats such as
@file{.BDF}, @file{.FNT}, and @file{.FON} files, Berkeley vfonts, classic
Amstrad/Sinclair/Hercules/BBC Micro soft fonts, and raw (DOS-style) fonts.
It also supports less traditional formats such as PBM/XBM images, plain text
(for rudimentary editing), and C header files.")
(license license:gpl2+)))
(define-public libotf
(package
(name "libotf")

View File

@ -407,6 +407,20 @@ inappropriate content.")
(base32
"1dkjxvfxg56hfy70j6ibfklfyv57jiha4vgc3ggl60r5kjx65s5b"))))
(build-system cmake-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
;; The Ft_MIMPluginManager::testPluginDescriptions test fails
;; with a QFATAL error: received signal 11, while
;; ut_mimpluginmanager fails at least on powerpc64le with a
;; subprocess aborted error (see:
;; https://github.com/maliit/framework/issues/120).
(invoke "ctest" "-E"
"(ft_mimpluginmanager|ut_mimpluginmanager)")))))))
(native-inputs (list extra-cmake-modules
wayland-protocols
pkg-config
@ -687,14 +701,20 @@ freedesktop.org project.")
;; Meson target anyway.
#:build-type "release"))
(native-inputs
(list check pkg-config))
(append (list check pkg-config)
(if (%current-target-system)
(list pkg-config-for-build)
'())))
(inputs
(list cairo
glib
gtk+
libevdev
libwacom
mtdev))
(append (list cairo
glib
gtk+
libevdev
libwacom
mtdev)
(if (%current-target-system)
(list check)
'())))
(propagated-inputs
`(;; libinput.h requires <libudev.h>, so propagate it.
("udev" ,eudev)))

View File

@ -7755,7 +7755,7 @@ Github or Gitlab.")
(define-public colobot
(package
(name "colobot")
(version "0.2.0-alpha")
(version "0.2.1-alpha")
(source
(origin
(method git-fetch)
@ -7765,59 +7765,66 @@ Github or Gitlab.")
(recursive? #t))) ;for "data/" subdir
(file-name (git-file-name name version))
(sha256
(base32 "02z21pw47j2afjsikn5b162gacwgiahdrlhmfxhq4xqlzsvz58z6"))))
(base32 "0bpy5nzkvq5nfr0w8jf7bl7zs8yz2cpzp87pnkdlgwl3adcn9nsw"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no test
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
(lambda _
(for-each make-file-writable (find-files "."))
#t))
(add-after 'unpack 'fix-directories
(lambda _
(substitute* "CMakeLists.txt"
(("(\\$\\{CMAKE_INSTALL_PREFIX\\})/games" _ prefix)
(string-append prefix "/bin"))
(("(\\$\\{CMAKE_INSTALL_PREFIX\\}/share)/games/colobot" _ prefix)
(string-append prefix "/colobot")))
#t))
(add-after 'fix-directories 'install-music
;; Retrieve and install music files.
(lambda* (#:key inputs #:allow-other-keys)
;; Installation process tries to download music files using
;; "wget" if not already present. Since we are going another
;; route, skip "wget" command check.
(substitute* "data/music/CMakeLists.txt"
(("find_program\\(WGET wget\\)") ""))
;; Populate "music/" directory.
(let ((data (assoc-ref inputs "colobot-music")))
(invoke "tar" "-xvf" data "-Cdata/music"))
#t)))))
(list
#:tests? #f ;no test
#:modules '((guix build cmake-build-system)
(guix build utils)
(srfi srfi-1)
(ice-9 match)
(ice-9 regex))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'make-git-checkout-writable
(lambda _
(for-each make-file-writable (find-files "."))))
(add-after 'unpack 'fix-directories
(lambda _
(substitute* "CMakeLists.txt"
(("(\\$\\{CMAKE_INSTALL_PREFIX\\})/games" _ prefix)
(string-append prefix "/bin"))
(("(\\$\\{CMAKE_INSTALL_PREFIX\\}/share)/games/colobot" _ prefix)
(string-append prefix "/colobot")))))
(add-after 'fix-directories 'install-music
;; Retrieve and install music files.
(lambda* (#:key inputs #:allow-other-keys)
;; Installation process tries to download music files using
;; "wget" if not already present. Since we are going another
;; route, skip "wget" command check.
(substitute* "data/music/CMakeLists.txt"
(("find_program\\(WGET wget\\)") ""))
;; Populate "music/" directory.
(let ((data
(any
(match-lambda ((_ . input)
(and (string-match "colobot-music" input)
input)))
inputs)))
(invoke "tar" "-xvf" data "-Cdata/music")))))))
(native-inputs
`(("colobot-music"
,(origin
(method url-fetch)
(uri (string-append "https://colobot.info/files/music/"
"colobot-music_ogg_" version ".tar.gz"))
(sha256
(base32
"1s86cd36rwkff329mb1ay1wi5qqyi35564ppgr3f4qqz9wj9vs2m"))))
("gettext" ,gettext-minimal)
("librsvg" ,(librsvg-for-system))
("po4a" ,po4a)
("python" ,python-wrapper)))
(list (origin
(method url-fetch)
(uri (string-append "https://colobot.info/files/music/"
"colobot-music_ogg_" version ".tar.gz"))
(sha256
(base32
"1s86cd36rwkff329mb1ay1wi5qqyi35564ppgr3f4qqz9wj9vs2m")))
gettext-minimal
(librsvg-for-system)
po4a
python-wrapper))
(inputs
`(("boost" ,boost)
("glew" ,glew)
("libogg" ,libogg)
("libpng" ,libpng)
("libsndfile" ,libsndfile)
("libvorbis" ,libvorbis)
("openal" ,openal)
("physfs" ,physfs)
("sdl" ,(sdl-union (list sdl2 sdl2-image sdl2-ttf)))))
(list boost
glew
libogg
libpng
libsndfile
libvorbis
openal
physfs
(sdl-union (list sdl2 sdl2-image sdl2-ttf))))
(synopsis "Educational programming strategy game")
(description "Colobot: Gold Edition is a real-time strategy game, where
you can program your units (bots) in a language called CBOT, which is similar

View File

@ -1485,13 +1485,13 @@ to create databases that are optimized for rendering/tile/map-services.")
(define-public python-metpy
(package
(name "python-metpy")
(version "1.5.0")
(version "1.5.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "MetPy" version))
(sha256
(base32
"0g9m8qb920mvi0kqw7vbagj08xvv96zj6gjyc7dawlvh15vb55qq"))))
"1is6rradl97k04hf27dhzla4y4j98hibran3rbz6xh226q1r9vmb"))))
(build-system pyproject-build-system)
(arguments
;; Too many of the tests in the files below require online data.

View File

@ -301,32 +301,37 @@ also known as DXTn or DXTC) for Mesa.")
wayland-protocols
`(,zstd "lib")))
(native-inputs
(list bison
flex
gettext-minimal
glslang
pkg-config
python-libxml2 ;for OpenGL ES 1.1 and 2.0 support
python-mako
python-wrapper
(@ (gnu packages base) which)))
(cons* bison
flex
gettext-minimal
glslang
pkg-config
python-libxml2 ;for OpenGL ES 1.1 and 2.0 support
python-mako
python-wrapper
(@ (gnu packages base) which)
(if (%current-target-system)
(list pkg-config-for-build
wayland
wayland-protocols)
'())))
(outputs '("out" "bin"))
(arguments
(list
#:configure-flags
#~(list
#$@(match (%current-system)
("aarch64-linux"
#$@(cond
((target-aarch64?)
;; TODO: Fix svga driver for non-Intel architectures.
'("-Dgallium-drivers=etnaviv,freedreno,kmsro,lima,nouveau,\
panfrost,r300,r600,swrast,tegra,v3d,vc4,virgl"))
("armhf-linux"
((target-arm32?)
;; Freedreno FTBFS when built on a 64-bit machine.
'("-Dgallium-drivers=etnaviv,kmsro,lima,nouveau,panfrost,\
r300,r600,swrast,tegra,v3d,vc4,virgl"))
((or "powerpc64le-linux" "powerpc-linux" "riscv64-linux")
((or (target-ppc64le?) (target-ppc32?) (target-riscv64?))
'("-Dgallium-drivers=nouveau,r300,r600,radeonsi,swrast,virgl"))
(_
(else
'("-Dgallium-drivers=crocus,iris,nouveau,r300,r600,radeonsi,\
svga,swrast,virgl")))
;; Enable various optional features. TODO: opencl requires libclc,
@ -344,16 +349,16 @@ svga,swrast,virgl")))
"-Dshared-glapi=enabled"
;; Explicitly enable Vulkan on some architectures.
#$@(match (%current-system)
((or "i686-linux" "x86_64-linux")
#$@(cond
((or (target-x86-32?) (target-x86-64?))
'("-Dvulkan-drivers=intel,intel_hasvk,amd,swrast"))
((or "powerpc64le-linux" "powerpc-linux")
((or (target-ppc64le?) (target-ppc32?))
'("-Dvulkan-drivers=amd,swrast"))
("aarch64-linux"
((target-aarch64?)
'("-Dvulkan-drivers=freedreno,amd,broadcom,swrast"))
("riscv64-linux"
((target-riscv64?)
'("-Dvulkan-drivers=amd,swrast"))
(_
(else
'("-Dvulkan-drivers=auto")))
;; Enable the Vulkan overlay layer on all architectures.
@ -381,6 +386,13 @@ svga,swrast,virgl")))
(guix build meson-build-system))
#:phases
#~(modify-phases %standard-phases
#$@(if (%current-target-system)
#~((add-after 'unpack 'fix-cross-compiling
(lambda* (#:key inputs #:allow-other-keys)
;; It isn't a problem to use the host's llvm-config.
(setenv "LLVM_CONFIG"
(search-input-file inputs "/bin/llvm-config")))))
#~())
(add-after 'unpack 'disable-failing-test
(lambda _
;; Disable the intel vulkan (anv_state_pool) tests, as they may

View File

@ -3474,7 +3474,7 @@ for dealing with different structured file formats.")
(define-public librsvg
(package
(name "librsvg")
(version "2.54.5")
(version "2.56.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/librsvg/"
@ -3482,10 +3482,7 @@ for dealing with different structured file formats.")
"librsvg-" version ".tar.xz"))
(sha256
(base32
"0vmfgihhf35bxn7giqiskgsflr0zxp6xyy9aynhiyk9j8l7ij0sg"))
(modules '((guix build utils)))
(snippet
'(begin (delete-file-recursively "vendor")))))
"1xa0cxdvc6vis5ssh1i0vi2rwgcx3bll6k5i135qyd2ra77zv1za"))))
(build-system cargo-build-system)
(outputs '("out" "doc" "debug"))
(arguments
@ -3496,55 +3493,61 @@ for dealing with different structured file formats.")
(guix build utils)
((guix build gnu-build-system) #:prefix gnu:))
#:cargo-inputs
`(("rust-byteorder" ,rust-byteorder-1)
("rust-cairo-rs" ,rust-cairo-rs-0.15)
`(("rust-anyhow" ,rust-anyhow-1)
("rust-byteorder" ,rust-byteorder-1)
("rust-cairo-rs" ,rust-cairo-rs-0.17)
("rust-cast" ,rust-cast-0.3)
("rust-chrono" ,rust-chrono-0.4)
("rust-clap" ,rust-clap-2)
("rust-cssparser" ,rust-cssparser-0.28)
("rust-data-url" ,rust-data-url-0.1)
("rust-encoding" ,rust-encoding-0.2)
("rust-clap" ,rust-clap-4)
("rust-clap-complete" ,rust-clap-complete-4)
("rust-cssparser" ,rust-cssparser-0.29)
("rust-data-url" ,rust-data-url-0.2)
("rust-encoding-rs" ,rust-encoding-rs-0.8)
("rust-float-cmp" ,rust-float-cmp-0.9)
("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.15)
("rust-gio" ,rust-gio-0.15)
("rust-glib" ,rust-glib-0.15)
("rust-gdk-pixbuf" ,rust-gdk-pixbuf-0.17)
("rust-gio" ,rust-gio-0.17)
("rust-glib" ,rust-glib-0.17)
("rust-itertools" ,rust-itertools-0.10)
("rust-language-tags" ,rust-language-tags-0.3)
("rust-libc" ,rust-libc-0.2)
("rust-locale-config" ,rust-locale-config-0.3)
("rust-markup5ever" ,rust-markup5ever-0.10)
("rust-nalgebra" ,rust-nalgebra-0.29)
("rust-markup5ever" ,rust-markup5ever-0.11)
("rust-nalgebra" ,rust-nalgebra-0.32)
("rust-num-traits" ,rust-num-traits-0.2)
("rust-once-cell" ,rust-once-cell-1)
("rust-pango" ,rust-pango-0.15)
("rust-pangocairo" ,rust-pangocairo-0.15)
("rust-pango" ,rust-pango-0.17)
("rust-pangocairo" ,rust-pangocairo-0.17)
("rust-rayon" ,rust-rayon-1)
("rust-rctree" ,rust-rctree-0.4)
("rust-rgb" ,rust-rgb-0.8)
("rust-rctree" ,rust-rctree-0.5)
("rust-regex" ,rust-regex-1)
("rust-selectors" ,rust-selectors-0.23)
("rust-rgb" ,rust-rgb-0.8)
("rust-selectors" ,rust-selectors-0.24)
("rust-string-cache" ,rust-string-cache-0.8)
("rust-system-deps" ,rust-system-deps-6)
("rust-thiserror" ,rust-thiserror-1)
("rust-tinyvec" ,rust-tinyvec-1)
("rust-url" ,rust-url-2)
("rust-xml5ever" ,rust-xml5ever-0.16))
("rust-xml5ever" ,rust-xml5ever-0.17))
#:cargo-development-inputs
`(("rust-anyhow" ,rust-anyhow-1)
("rust-assert-cmd" ,rust-assert-cmd-2)
("rust-cairo-rs" ,rust-cairo-rs-0.15)
("rust-cairo-rs" ,rust-cairo-rs-0.17)
("rust-cast" ,rust-cast-0.3)
("rust-chrono" ,rust-chrono-0.4)
("rust-criterion" ,rust-criterion-0.3)
("rust-glib" ,rust-glib-0.15)
("rust-criterion" ,rust-criterion-0.4)
("rust-glib" ,rust-glib-0.17)
("rust-libc" ,rust-libc-0.2)
("rust-lopdf" ,rust-lopdf-0.26)
("rust-lopdf" ,rust-lopdf-0.29)
("rust-matches" ,rust-matches-0.1)
("rust-pango" ,rust-pango-0.17)
("rust-pangocairo" ,rust-pangocairo-0.17)
("rust-png" ,rust-png-0.17)
("rust-predicates" ,rust-predicates-2)
("rust-proptest" ,rust-proptest-1)
("rust-serde" ,rust-serde-1)
("rust-serde-json" ,rust-serde-json-1)
("rust-tempfile" ,rust-tempfile-3)
("rust-test-generator" ,rust-test-generator-0.3)
("rust-yeslogic-fontconfig-sys" ,rust-yeslogic-fontconfig-sys-2))
("rust-yeslogic-fontconfig-sys" ,rust-yeslogic-fontconfig-sys-4))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-gdk-pixbuf-thumbnailer
@ -3568,12 +3571,9 @@ for dealing with different structured file formats.")
;; Increase reftest tolerance a bit to account for different
;; harfbuzz, pango, etc.
(setenv "RSVG_TEST_TOLERANCE" "20")
;; These two tests even fail after loosening the tolerance.
(for-each delete-file
'("tests/fixtures/reftests/bugs/730-font-scaling.svg"
"tests/fixtures/reftests/bugs/730-font-scaling-ref.png"
"tests/fixtures/reftests/svg1.1/text-text-03-b.svg"
"tests/fixtures/reftests/svg1.1/text-text-03-b-ref.png"))))
;; This test fails even after loosening the tolerance.
(substitute* "tests/src/reference.rs"
((".*svg1_1_text_align_03_b_svg.*") ""))))
(add-before 'configure 'pre-configure
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "gdk-pixbuf-loader/Makefile.in"
@ -7807,10 +7807,7 @@ to display dialog boxes from the commandline and shell scripts.")
(build-system meson-build-system)
(arguments
(list
#:imported-modules `(,@%meson-build-system-modules
(guix build syscalls))
#:modules '((guix build meson-build-system)
(guix build syscalls)
(guix build utils)
(ice-9 match))
#:glib-or-gtk? #t
@ -7904,22 +7901,22 @@ to display dialog boxes from the commandline and shell scripts.")
"1"))
(match (primitive-fork)
(0 ;child process
(set-child-subreaper!)
;; Use tini so that signals are properly handled and
;; doubly-forked processes get reaped; otherwise,
;; python-dbusmock would waste time polling for the dbus
;; processes it spawns to be reaped, in vain.
(apply execlp "tini" "--"
"dbus-run-session" "--"
(apply execlp "dbus-run-session" "dbus-run-session"
"xvfb-run" "-a" "-s" (getenv "XVFB_SERVER_ARGS")
"meson" "test" "-t" "0" "--print-errorlogs"
test-options))
(pid
(match (waitpid pid)
((_ . status)
(unless (zero? status)
(error "`meson test' exited with status"
status))))))))))))
(dbus-pid
(let loop ()
;; Reap child processes; otherwise, python-dbusmock would
;; waste time polling for the dbus processes it spawns to
;; be reaped, in vain.
(match (waitpid WAIT_ANY)
((pid . status)
(if (= pid dbus-pid)
(unless (zero? status)
(error "`meson test' exited with status"
status))
(loop)))))))))))))
(native-inputs
(list desktop-file-utils ;for update-desktop-database
`(,glib "bin") ;for glib-compile-schemas, etc.
@ -7940,8 +7937,7 @@ to display dialog boxes from the commandline and shell scripts.")
pipewire
python
python-dbus
python-dbusmock
tini)) ;acting as init (zombie reaper)
python-dbusmock))
(propagated-inputs
(list gsettings-desktop-schemas ;required by libmutter.pc
gtk+ ;required by libmutter.pc
@ -8287,6 +8283,7 @@ users.")
"-Ddhcpcanon=no"
"-Dcrypto=gnutls"
"-Diwd=true"
"-Dnm_cloud_setup=false"
"-Dlibaudit=yes"
"-Dqt=false"
"-Ddocs=true"
@ -8296,19 +8293,12 @@ users.")
#$output "/lib/udev")
(string-append "-Ddbus_conf_dir="
#$output "/etc/dbus-1/system.d")
(string-append "-Dmodprobe=" (search-input-file %build-inputs
"bin/modprobe"))
(string-append "-Ddhclient=" (search-input-file %build-inputs
"/sbin/dhclient")))
"sbin/dhclient")))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-modprobe-path
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/libnm-platform/nm-platform-utils.c"
;; The modprobe command location is not configurable (see:
;; https://gitlab.freedesktop.org/NetworkManager/
;; NetworkManager/-/issues/1257).
(("/sbin/modprobe")
(search-input-file inputs "bin/modprobe")))))
(add-after 'unpack 'patch-dlopen-call-to-libjansson.so
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/libnm-glib-aux/nm-json-aux.c"

View File

@ -886,16 +886,13 @@ variable defined below. It requires guile-json to be installed."
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'apply-guix-specific-patches
(lambda* (#:key inputs native-inputs #:allow-other-keys)
(let ((patch (search-input-file inputs "bin/patch")))
(for-each (match-lambda
((label . file)
(when (and (string-prefix? "icecat-" label)
(string-suffix? ".patch" label))
(format #t "applying '~a'...~%" file)
(invoke patch "--force" "--no-backup-if-mismatch"
"-p1" "--input" file))))
(or native-inputs inputs)))))
(lambda _
(for-each
(lambda (file) (invoke "patch" "--force" "-p1" "-i" file))
'(#$(local-file
(search-patch "icecat-compare-paths.patch"))
#$(local-file
(search-patch "icecat-use-system-wide-dir.patch"))))))
(add-after 'apply-guix-specific-patches 'remove-bundled-libraries
(lambda _
;; Remove bundled libraries that we don't use, since they may
@ -1139,6 +1136,11 @@ variable defined below. It requires guile-json to be installed."
'("default16.png" "default22.png" "default24.png"
"default32.png" "default48.png" "content/icon64.png"
"mozicon128.png" "default256.png"))))))))
(native-search-paths
(list (search-path-specification
(variable "ICECAT_SYSTEM_DIR")
(separator #f) ;single entry
(files '("lib/icecat")))))
(home-page "https://www.gnu.org/software/gnuzilla/")
(synopsis "Entirely free browser derived from Mozilla Firefox")
(description

View File

@ -0,0 +1,555 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2021 Sarah Morgensen <iskarian@mgsn.dev>
;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2022 ( <paren@disroot.org>
;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2023 Felix Lechner <felix.lechner@lease-up.com>
;;; Copyright © 2023 Hilton Chain <hako@ultrarare.space>
;;; Copyright © 2023 Katherine Cox-Buday <cox.katherine.e@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages golang-check)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix build-system go)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (gnu packages)
#:use-module (gnu packages golang))
;;; Commentary:
;;;
;;; Golang packages to unit-test, mock, assert, lint processes for Golang itself.
;;;
;;; Please: Try to add new module packages in alphabetic order.
;;;
;;; Code:
(define-public go-honnef-co-go-tools
(package
(name "go-honnef-co-go-tools")
(version "0.3.3")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dominikh/go-tools")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"099z04v7vvwwglnps315s9fmal68xvzlc1g8m26iqi980grbwn32"))))
(build-system go-build-system)
(arguments
`(#:import-path "honnef.co/go/tools"
#:tests? #f
;; Source-only package
#:phases (modify-phases %standard-phases
(delete 'build))))
(propagated-inputs
(list go-github-com-burntsushi-toml
go-github-com-kisielk-gotool
go-golang-org-x-exp
go-golang-org-x-mod
go-golang-org-x-tools))
(home-page "https://honnef.co/go/tools")
(synopsis "Staticcheck advanced Go linter")
(description
"Staticcheck is a state of the art linter for the Go programming language.
Using static analysis, it finds bugs and performance issues, offers
simplifications, and enforces style rules.")
(license license:expat)))
(define-public go-github-com-alecthomas-assert
(let ((commit "405dbfeb8e38effee6e723317226e93fff912d06")
(revision "1"))
(package
(name "go-github-com-alecthomas-assert")
(version (git-version "0.0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/alecthomas/assert")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1l567pi17k593nrd1qlbmiq8z9jy3qs60px2a16fdpzjsizwqx8l"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/alecthomas/assert"))
(native-inputs
(list go-github-com-alecthomas-colour
go-github-com-mattn-go-isatty
go-github-com-alecthomas-repr
go-github-com-sergi-go-diff))
(home-page "https://github.com/alecthomas/assert/")
(synopsis "Go assertion library")
(description "Assertion library that:
@itemize
@item makes spotting differences in equality much easier
@item uses repr and diffmatchpatch to display structural differences in colour
@item aborts tests on first assertion failure
@end itemize\n")
(license license:expat))))
(define-public go-github-com-cheekybits-is
(let ((commit "68e9c0620927fb5427fda3708222d0edee89eae9")
(revision "0"))
(package
(name "go-github-com-cheekybits-is")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/cheekybits/is")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1mkbyzhwq3rby832ikq00nxv3jnckxsm3949wkxd8ya9js2jmg4d"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/cheekybits/is"))
(home-page "https://github.com/cheekybits/is")
(synopsis "Mini testing helper for Go")
(description "A mini testing helper for Go.
@itemize
@item It has a simple interface (@command{is.OK} and @command{is.Equal}).
@item It plugs into existing Go toolchain (uses @command{testing.T}).
@item It's obvious for newcomers.
@item It also gives you @command{is.Panic} and @command{is.PanicWith} helpers
- because testing panics is ugly.
@end itemize\n")
(license license:expat))))
(define-public go-github-com-frankban-quicktest
(package
(name "go-github-com-frankban-quicktest")
(version "1.11.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/frankban/quicktest")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0b1b44b2hli2p969gqz30z8v9z6ahlklpqzi17nwk1lsjz9yv938"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/frankban/quicktest"))
(propagated-inputs
(list go-github-com-google-go-cmp-cmp go-github-com-kr-pretty))
(home-page "https://github.com/frankban/quicktest")
(synopsis "Quick helpers for testing Go applications")
(description
"Package quicktest provides a collection of Go helpers for writing
tests.")
(license license:expat)))
(define-public go-github-com-google-go-cmdtest
(let ((commit "55ab3332a786118933ddf71544aae14951ba9bc5")
(revision "0"))
(package
(name "go-github-com-google-go-cmdtest")
(version (git-version "0.4.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/go-cmdtest")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"10kswvbdwissjb5mr0ys4b3ppxkxlpklqg7cr2z7rv21g2vwczbl"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/google/go-cmdtest"))
(propagated-inputs
(list go-github-com-google-renameio go-github-com-google-go-cmp-cmp))
(home-page "https://github.com/google/go-cmdtest")
(synopsis "Testing for your CLI")
(description
"The cmdtest package simplifies testing of command-line interfaces. It
provides a simple, cross-platform, shell-like language to express command
execution. It can compare actual output with the expected output, and can
also update a file with new \"golden\" output that is deemed correct.")
(license license:asl2.0))))
(define-public go-github-com-google-gofuzz
(let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382")
(revision "0"))
(package
(name "go-github-com-google-gofuzz")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/gofuzz")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/google/gofuzz"))
(home-page "https://github.com/google/gofuzz")
(synopsis "Fuzz testing library for Go")
(description "Gofuzz is a library for populationg Go objects with random
values for the purpose of fuzz testing.")
(license license:asl2.0))))
(define-public go-github-com-golangplus-testing
(package
(name "go-github-com-golangplus-testing")
(version "1.0.0")
(home-page "https://github.com/golangplus/testing")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1a29m4zplf9m14k74lrb55dids2l17vx28sv0g3y3qcv1xygksiv"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/golangplus/testing"))
(propagated-inputs
(list go-github-com-golangplus-fmt))
(synopsis "Additions to Go's standard testing package")
(description "This package provides additions to Go's stdlib testing.")
(license license:bsd-3)))
(define-public go-github-com-jacobsa-oglematchers
(let ((commit "141901ea67cd4769c6800aa7bfdfc558fa22bda5")
(revision "0"))
(package
(name "go-github-com-jacobsa-oglematchers")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jacobsa/oglematchers")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"09ff5x6vbhd9zl1z4yzyk573ifh16rry38q1rx986kbz4hqkmniq"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/jacobsa/oglematchers"
;; break loop with with go-github-com-jacobsa-ogletest
#:tests? #f))
(home-page "https://github.com/jacobsa/oglematchers")
(synopsis "Matchers for Go testing framework")
(description
"Package oglematchers provides a set of matchers useful in a testing or mocking
framework. These matchers are inspired by and mostly compatible with Google
Test for C++ and Google JS Test.")
(license license:asl2.0))))
(define-public go-github-com-jacobsa-oglemock
(let ((commit "e94d794d06ffc6de42cb19d0dab3c219efdd6dcf")
(revision "0"))
(package
(name "go-github-com-jacobsa-oglemock")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jacobsa/oglemock")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"14yxf8ykwdwkcccksl6741xgzcf8qykyi58kp4maxpgscqhdl8rq"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/jacobsa/oglemock"
;; break loop with with go-github-com-jacobsa-ogletest
#:tests? #f))
(native-inputs
(list go-github-com-jacobsa-oglematchers))
(home-page "https://github.com/jacobsa/oglemock")
(synopsis "Mocking framework for unit tests")
(description
"Package oglemock provides a mocking framework for unit tests.")
(license license:asl2.0))))
(define-public go-github-com-jacobsa-ogletest
(let ((commit "80d50a735a1108a2aeb7abc4a988d183f20c5292")
(revision "0"))
(package
(name "go-github-com-jacobsa-ogletest")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jacobsa/ogletest")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1lbwbxzr75g65q07ry5k4kglxqs3ym7xkvqznzm55rm3qk76v83r"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/jacobsa/ogletest"
;; These tests should be made working
#:tests? #f))
(native-inputs
(list go-github-com-jacobsa-oglematchers
go-github-com-jacobsa-oglemock
go-github-com-jacobsa-reqtrace
go-golang-org-x-net))
(home-page "https://github.com/jacobsa/ogletest")
(synopsis "Expressive unit tests")
(description
"Package ogletest provides a framework for writing expressive unit tests. It
integrates with the builtin testing package, so it works with the gotest
command. Unlike the testing package which offers only basic capabilities for
signalling failures, it offers ways to express expectations and get nice failure
messages automatically.")
(license license:asl2.0))))
(define-public go-github-com-onsi-ginkgo
(package
(name "go-github-com-onsi-ginkgo")
(version "1.16.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/onsi/ginkgo")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1hh6n7q92y0ai8k6rj2yzw6wwxikhyiyk4j92zgvf1zad0gmqqmz"))))
(build-system go-build-system)
(arguments
(list #:import-path "github.com/onsi/ginkgo"))
(propagated-inputs
(list go-golang-org-x-sys
go-golang-org-x-tools
go-github-com-go-task-slim-sprig
go-github-com-nxadm-tail
go-github-com-onsi-gomega))
(home-page "https://github.com/onsi/ginkgo")
(synopsis "BDD-style testing framework for Go")
(description
"Ginkgo is a Behaviour-Driven Development testing framework for Go. It
builds on top of Go's builtin @code{testing} library and is complemented by the
Gomega matcher library.")
(license license:expat)))
(define-public go-github-com-stretchr-testify
(package
(name "go-github-com-stretchr-testify")
(version "1.7.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/stretchr/testify")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0ixgjsvafr3513pz3r6pmgk074s2dxkll0dadvl25gkf30rkmh10"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/stretchr/testify"))
(propagated-inputs
(list go-github-com-davecgh-go-spew
go-github-com-pmezard-go-difflib
go-github-com-stretchr-objx
go-gopkg-in-yaml-v3))
(home-page "https://github.com/stretchr/testify")
(synopsis "Go helper library for tests and invariant checking")
(description "This package provide many tools for testifying that your
code will behave as you intend.
Features include:
@itemize
@item Easy assertions
@item Mocking
@item HTTP response trapping
@item Testing suite interfaces and functions.
@end itemize")
(license license:expat)))
(define-public go-github-com-tdewolff-test
(package
(name "go-github-com-tdewolff-test")
(version "1.0.9")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tdewolff/test")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"10myz3zdkqmx37cvj507h7l2ncb0rq9shqvz9ggq1swijbsvazff"))))
(build-system go-build-system)
(arguments
(list #:import-path "github.com/tdewolff/test"))
(home-page "https://github.com/tdewolff/test")
(synopsis "Go test helper functions")
(description
"This package implements a few functions that are useful for io testing,
such as readers and writers that fail after N consecutive reads/writes.")
(license license:expat)))
(define-public go-gopkg-in-check-v1
(package
(name "go-gopkg-in-check-v1")
(version "1.0.0-20201130134442-10cb98267c6c")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/go-check/check")
(commit (go-version->git-ref version))))
(file-name (git-file-name name version))
(sha256
(base32
"1jwxndf8rsyx0fgrp47d99rp55yzssmryb92jfj3yf7zd8rjjljn"))))
(build-system go-build-system)
(arguments
(list
#:import-path "gopkg.in/check.v1"
#:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs #:allow-other-keys #:rest args)
(unless
;; The tests fail when run with gccgo.
(false-if-exception (search-input-file inputs "/bin/gccgo"))
(apply (assoc-ref %standard-phases 'check) args)))))))
(propagated-inputs
(list go-github-com-kr-pretty))
(home-page "https://gopkg.in/check.v1")
(synopsis "Test framework for the Go language")
(description "This package provides a test library for the Go language.")
(license license:bsd-2)))
(define-public go-gopkg-in-go-playground-assert-v1
(package
(name "go-gopkg-in-go-playground-assert-v1")
(version "1.2.1")
(home-page "https://github.com/go-playground/assert")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1h4amgykpa0djwi619llr3g55p75ia0mi184h9s5zdl8l4rhn9pm"))))
(build-system go-build-system)
(arguments
'(#:import-path "gopkg.in/go-playground/assert.v1"))
(synopsis "Basic assertion library used alongside native Go testing")
(description
"This package provides basic assertions along with building blocks for
custom assertions to be used alongside native Go testing.")
(license license:expat)))
(define-public go-golang-org-sql-mock
(let ((commit "e98392b8111b45f8126e00af035a0dd95dc12e8b")
(version "1.3.3")
(revision "1"))
(package
(name "go-golang-org-sql-mock")
(version (git-version version revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/DATA-DOG/go-sqlmock")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"033vv29g2wf6fd757ajfmha30bqin3b07377037zkl051mk6mghs"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/DATA-DOG/go-sqlmock"))
(synopsis "Mock library implementing @code{sql/driver}")
(description "This library simulates SQL-driver behavior in tests
without requiring a real database connection.")
(home-page "https://github.com/DATA-DOG/go-sqlmock")
(license license:expat))))
(define-public go-golang-org-x-lint
(let ((commit "83fdc39ff7b56453e3793356bcff3070b9b96445")
(revision "0"))
(package
(name "go-golang-org-x-lint")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/lint")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0ms3rs5hvpnm9bxbr5f9743i7hn2bbmqdmvzxq6nmi0f24ypv1l3"))))
(build-system go-build-system)
(arguments
'(#:import-path "golang.org/x/lint"
#:tests? #f)) ;; TODO: Fix tests
(propagated-inputs
(list go-golang-org-x-tools))
(home-page "https://golang.org/x/lint")
(synopsis "Linter for Go source code")
(description
"This is a linter for Go source code. Unlike gofmt, it doesn't
reformat the source code, it only prints out style mistakes.")
(license license:bsd-3))))
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar
;;; functionality or similar names.
;;;

View File

@ -78,6 +78,7 @@
#:use-module (gnu packages gcc)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages lua)
#:use-module (gnu packages mail)
#:use-module (gnu packages mp3)
@ -1310,98 +1311,6 @@ networks where it would otherwise be blocked or heavily throttled.")
not included in the Go standard library.")
(license license:asl2.0))))
(define-public go-github-com-jacobsa-oglematchers
(let ((commit "141901ea67cd4769c6800aa7bfdfc558fa22bda5")
(revision "0"))
(package
(name "go-github-com-jacobsa-oglematchers")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jacobsa/oglematchers")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"09ff5x6vbhd9zl1z4yzyk573ifh16rry38q1rx986kbz4hqkmniq"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/jacobsa/oglematchers"
;; break loop with with go-github-com-jacobsa-ogletest
#:tests? #f))
(home-page "https://github.com/jacobsa/oglematchers")
(synopsis "Matchers for Go testing framework")
(description
"Package oglematchers provides a set of matchers useful in a testing or mocking
framework. These matchers are inspired by and mostly compatible with Google
Test for C++ and Google JS Test.")
(license license:asl2.0))))
(define-public go-github-com-jacobsa-oglemock
(let ((commit "e94d794d06ffc6de42cb19d0dab3c219efdd6dcf")
(revision "0"))
(package
(name "go-github-com-jacobsa-oglemock")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jacobsa/oglemock")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"14yxf8ykwdwkcccksl6741xgzcf8qykyi58kp4maxpgscqhdl8rq"))))
(build-system go-build-system)
(arguments
(list
#:import-path "github.com/jacobsa/oglemock"
;; break loop with with go-github-com-jacobsa-ogletest
#:tests? #f))
(native-inputs (list
go-github-com-jacobsa-oglematchers))
(home-page "https://github.com/jacobsa/oglemock")
(synopsis "Mocking framework for unit tests")
(description
"Package oglemock provides a mocking framework for unit tests.")
(license license:asl2.0))))
(define-public go-github-com-jacobsa-ogletest
(let ((commit "80d50a735a1108a2aeb7abc4a988d183f20c5292")
(revision "0"))
(package
(name "go-github-com-jacobsa-ogletest")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jacobsa/ogletest")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1lbwbxzr75g65q07ry5k4kglxqs3ym7xkvqznzm55rm3qk76v83r"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/jacobsa/ogletest"
;; These tests should be made working
#:tests? #f))
(native-inputs (list
go-github-com-jacobsa-oglematchers
go-github-com-jacobsa-oglemock
go-github-com-jacobsa-reqtrace
go-golang-org-x-net))
(home-page "https://github.com/jacobsa/ogletest")
(synopsis "Expressive unit tests")
(description
"Package ogletest provides a framework for writing expressive unit tests. It
integrates with the builtin testing package, so it works with the gotest
command. Unlike the testing package which offers only basic capabilities for
signalling failures, it offers ways to express expectations and get nice failure
messages automatically.")
(license license:asl2.0))))
(define-public go-github-com-jacobsa-reqtrace
(let ((commit "245c9e0234cb2ad542483a336324e982f1a22934")
(revision "0"))
@ -3062,28 +2971,6 @@ Under Windows, the console APIs are used. Otherwise, ANSI texts are output.")
;; dual-licensed
(license (list license:bsd-3 license:expat))))
(define-public go-github-com-golangplus-testing
(package
(name "go-github-com-golangplus-testing")
(version "1.0.0")
(home-page "https://github.com/golangplus/testing")
(source (origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1a29m4zplf9m14k74lrb55dids2l17vx28sv0g3y3qcv1xygksiv"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/golangplus/testing"))
(propagated-inputs
(list go-github-com-golangplus-fmt))
(synopsis "Additions to Go's standard testing package")
(description "This package provides additions to Go's stdlib testing.")
(license license:bsd-3)))
(define-public go-github-com-leodido-go-urn
(package
(name "go-github-com-leodido-go-urn")
@ -3142,29 +3029,6 @@ way of specifying command line options.")
(home-page "https://github.com/jessevdk/go-flags")
(license license:bsd-3)))
(define-public go-gopkg-in-go-playground-assert-v1
(package
(name "go-gopkg-in-go-playground-assert-v1")
(version "1.2.1")
(home-page "https://github.com/go-playground/assert")
(source
(origin
(method git-fetch)
(uri (git-reference
(url home-page)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1h4amgykpa0djwi619llr3g55p75ia0mi184h9s5zdl8l4rhn9pm"))))
(build-system go-build-system)
(arguments
'(#:import-path "gopkg.in/go-playground/assert.v1"))
(synopsis "Basic assertion library used alongside native Go testing")
(description
"This package provides basic assertions along with building blocks for
custom assertions to be used alongside native Go testing.")
(license license:expat)))
(define-public go-github-com-go-playground-locales
(package
(name "go-github-com-go-playground-locales")
@ -3747,29 +3611,6 @@ an interface to implement any other minifier.")
"This package contains several lexers and parsers written in Go.")
(license license:expat)))
(define-public go-github-com-tdewolff-test
(package
(name "go-github-com-tdewolff-test")
(version "1.0.9")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tdewolff/test")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"10myz3zdkqmx37cvj507h7l2ncb0rq9shqvz9ggq1swijbsvazff"))))
(build-system go-build-system)
(arguments
(list #:import-path "github.com/tdewolff/test"))
(home-page "https://github.com/tdewolff/test")
(synopsis "Go test helper functions")
(description
"This package implements a few functions that are useful for io testing,
such as readers and writers that fail after N consecutive reads/writes.")
(license license:expat)))
(define-public go-github-com-tj-docopt
(package
(name "go-github-com-tj-docopt")
@ -4588,42 +4429,6 @@ Go.")
slices, JSON and other data.")
(license license:expat)))
(define-public go-github-com-stretchr-testify
(package
(name "go-github-com-stretchr-testify")
(version "1.7.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/stretchr/testify")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0ixgjsvafr3513pz3r6pmgk074s2dxkll0dadvl25gkf30rkmh10"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/stretchr/testify"))
(propagated-inputs
`(("github.com/davecgh/go-spew" ,go-github-com-davecgh-go-spew)
("github.com/pmezard/go-difflib" ,go-github-com-pmezard-go-difflib)
("github.com/stretchr/objx" ,go-github-com-stretchr-objx)
("gopkg.in/yaml.v3" ,go-gopkg-in-yaml-v3)))
(home-page "https://github.com/stretchr/testify")
(synopsis "Go helper library for tests and invariant checking")
(description "This package provide many tools for testifying that your
code will behave as you intend.
Features include:
@itemize
@item Easy assertions
@item Mocking
@item HTTP response trapping
@item Testing suite interfaces and functions.
@end itemize")
(license license:expat)))
(define go-github-com-stretchr-testify-bootstrap
(package
(inherit go-github-com-stretchr-testify)
@ -4850,31 +4655,6 @@ information about the resource usage and performance characteristics of running
containers.")
(license license:asl2.0))))
(define-public go-github-com-google-gofuzz
(let ((commit "fd52762d25a41827db7ef64c43756fd4b9f7e382")
(revision "0"))
(package
(name "go-github-com-google-gofuzz")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/gofuzz")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1yxmmr73h0lq7ryf3q9a7pcm2x5xrg4d5bxkq8n5pxwxwyq26kw8"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/google/gofuzz"))
(home-page "https://github.com/google/gofuzz")
(synopsis "Fuzz testing library for Go")
(description "Gofuzz is a library for populationg Go objects with random
values for the purpose of fuzz testing.")
(license license:asl2.0))))
(define-public go-github-com-gorilla-css
(package
(name "go-github-com-gorilla-css")
@ -5724,39 +5504,6 @@ which satisfies the cron expression.")
(license (list license:gpl3+
license:asl2.0)))))
(define-public go-gopkg-in-check-v1
(package
(name "go-gopkg-in-check-v1")
(version "1.0.0-20201130134442-10cb98267c6c")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/go-check/check")
(commit (go-version->git-ref version))))
(file-name (git-file-name name version))
(sha256
(base32
"1jwxndf8rsyx0fgrp47d99rp55yzssmryb92jfj3yf7zd8rjjljn"))))
(build-system go-build-system)
(arguments
(list
#:import-path "gopkg.in/check.v1"
#:phases
#~(modify-phases %standard-phases
(replace 'check
(lambda* (#:key inputs #:allow-other-keys #:rest args)
(unless
;; The tests fail when run with gccgo.
(false-if-exception (search-input-file inputs "/bin/gccgo"))
(apply (assoc-ref %standard-phases 'check) args)))))))
(propagated-inputs
(list go-github-com-kr-pretty))
(home-page "https://gopkg.in/check.v1")
(synopsis "Test framework for the Go language")
(description "This package provides a test library for the Go language.")
(license license:bsd-2)))
(define-public go-gopkg-in-ini-v1
(package
(name "go-gopkg-in-ini-v1")
@ -7059,38 +6806,6 @@ as conversion to and from @command{net.Addr}.")
(description "Tar utilities extracted from @command{go-ipfs} codebase.")
(license license:expat))))
(define-public go-github-com-cheekybits-is
(let ((commit "68e9c0620927fb5427fda3708222d0edee89eae9")
(revision "0"))
(package
(name "go-github-com-cheekybits-is")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/cheekybits/is")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1mkbyzhwq3rby832ikq00nxv3jnckxsm3949wkxd8ya9js2jmg4d"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/cheekybits/is"))
(home-page "https://github.com/cheekybits/is")
(synopsis "Mini testing helper for Go")
(description "A mini testing helper for Go.
@itemize
@item It has a simple interface (@command{is.OK} and @command{is.Equal}).
@item It plugs into existing Go toolchain (uses @command{testing.T}).
@item It's obvious for newcomers.
@item It also gives you @command{is.Panic} and @command{is.PanicWith} helpers
- because testing panics is ugly.
@end itemize\n")
(license license:expat))))
(define-public go-github-com-sabhiram-go-gitignore
(let ((commit "525f6e181f062064d83887ed2530e3b1ba0bc95a")
(revision "1"))
@ -7513,31 +7228,6 @@ representation suitable for computing diffs.")
(home-page "https://github.com/kr/text")
(license license:expat)))
(define-public go-golang-org-sql-mock
(let ((commit "e98392b8111b45f8126e00af035a0dd95dc12e8b")
(version "1.3.3")
(revision "1"))
(package
(name "go-golang-org-sql-mock")
(version (git-version version revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/DATA-DOG/go-sqlmock")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"033vv29g2wf6fd757ajfmha30bqin3b07377037zkl051mk6mghs"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/DATA-DOG/go-sqlmock"))
(synopsis "Mock library implementing @code{sql/driver}")
(description "This library simulates SQL-driver behavior in tests
without requiring a real database connection.")
(home-page "https://github.com/DATA-DOG/go-sqlmock")
(license license:expat))))
(define-public go-github-com-go-sql-driver-mysql
(package
(name "go-github-com-go-sql-driver-mysql")
@ -9529,37 +9219,6 @@ synchronizing plain text:
@end itemize\n")
(license license:expat)))
(define-public go-github-com-alecthomas-assert
(let ((commit "405dbfeb8e38effee6e723317226e93fff912d06")
(revision "1"))
(package
(name "go-github-com-alecthomas-assert")
(version (git-version "0.0.1" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/alecthomas/assert")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1l567pi17k593nrd1qlbmiq8z9jy3qs60px2a16fdpzjsizwqx8l"))))
(build-system go-build-system)
(arguments
`(#:import-path "github.com/alecthomas/assert"))
(native-inputs
(list go-github-com-mattn-go-isatty go-github-com-alecthomas-colour
go-github-com-alecthomas-repr go-github-com-sergi-go-diff))
(home-page "https://github.com/alecthomas/assert/")
(synopsis "Go assertion library")
(description "Assertion library that:
@itemize
@item makes spotting differences in equality much easier
@item uses repr and diffmatchpatch to display structural differences in colour
@item aborts tests on first assertion failure
@end itemize\n")
(license license:expat))))
(define-public go-github-com-alecthomas-chroma
(package
(name "go-github-com-alecthomas-chroma")
@ -10612,7 +10271,7 @@ RFC-5802 and RFC-7677.")
(define-public go-github-com-godbus-dbus
(package
(name "go-github-com-godbus-dbus")
(version "5.0.3")
(version "5.1.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -10621,7 +10280,7 @@ RFC-5802 and RFC-7677.")
(file-name (git-file-name name version))
(sha256
(base32
"1bkc904073k807yxg6mvqaxrr6ammmhginr9p54jfb55mz3hfw3s"))))
"1kayd4x7idrhi06ahh5kqkgwzgh9icvv71mjar2d0jl486dfs8r5"))))
(build-system go-build-system)
(arguments
`(#:tests? #f ;no /var/run/dbus/system_bus_socket
@ -10634,6 +10293,53 @@ RFC-5802 and RFC-7677.")
bindings for the D-Bus message bus system.")
(license license:bsd-2)))
(define-public go-github-com-delthas-go-libnp
(let ((commit "0e45ece1f878f202fee2c74801e287804668f677"))
(package
(name "go-github-com-delthas-go-libnp")
(version (git-version "0.0.0" "0" commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/delthas/go-libnp")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1hylpvwz3kb8wr00knba6mggjacak2vmqafwysansj0ns038lp8w"))))
(build-system go-build-system)
(arguments `(#:import-path "github.com/delthas/go-libnp"))
(propagated-inputs (list go-github-com-godbus-dbus))
(home-page "https://github.com/delthas/go-libnp")
(synopsis "Tiny library providing information about now-playing media")
(description "@code{go-libnp} is a tiny cross-platform library for
extracting information about the music/image/video that is Now Playing on the
system.")
(license license:expat))))
(define-public go-github-com-delthas-go-localeinfo
(let ((commit "686a1e18511819b2f1625f00437f6e1246c04a5d"))
(package
(name "go-github-com-delthas-go-localeinfo")
(version (git-version "0.0.0" "0" commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/delthas/go-localeinfo")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0r0v42ggvyss8327nggwinxl42pj4l0dwz96g9wk1w8h8vmfrh0z"))))
(build-system go-build-system)
(arguments `(#:tests? #f ; FIXME: tests assume certain locale
#:import-path "github.com/delthas/go-localeinfo"))
(home-page "https://github.com/delthas/go-localeinfo")
(synopsis "Library for extracting locale information")
(description "@code{go-localeinfo} extracts monetary/numeric/time
formatting information, rather than the current locale name.")
(license license:expat))))
(define-public go-github-com-prometheus-common
(package
(name "go-github-com-prometheus-common")
@ -11037,32 +10743,6 @@ is unchanged. This package contains a series of small enhancements and
additions.")
(license license:bsd-3))))
(define-public go-github-com-frankban-quicktest
(package
(name "go-github-com-frankban-quicktest")
(version "1.11.1")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/frankban/quicktest")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0b1b44b2hli2p969gqz30z8v9z6ahlklpqzi17nwk1lsjz9yv938"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/frankban/quicktest"))
(propagated-inputs
(list go-github-com-google-go-cmp-cmp go-github-com-kr-pretty))
(home-page "https://github.com/frankban/quicktest")
(synopsis "Quick helpers for testing Go applications")
(description
"Package quicktest provides a collection of Go helpers for writing
tests.")
(license license:expat)))
(define-public go-github-com-bep-golibsass
(package
(name "go-github-com-bep-golibsass")
@ -11741,34 +11421,6 @@ be used as both a binary and a library.")
(native-inputs '())
(inputs '())))
(define-public go-golang-org-x-lint
(let ((commit "83fdc39ff7b56453e3793356bcff3070b9b96445")
(revision "0"))
(package
(name "go-golang-org-x-lint")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/lint")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "0ms3rs5hvpnm9bxbr5f9743i7hn2bbmqdmvzxq6nmi0f24ypv1l3"))))
(build-system go-build-system)
(arguments
'(#:import-path "golang.org/x/lint"
#:tests? #f)) ;; TODO: Fix tests
(propagated-inputs
(list go-golang-org-x-tools))
(home-page "https://golang.org/x/lint")
(synopsis "Linter for Go source code")
(description
"This is a linter for Go source code. Unlike gofmt, it doesn't
reformat the source code, it only prints out style mistakes.")
(license license:bsd-3))))
(define-public go-github-com-kisielk-gotool
(package
(name "go-github-com-kisielk-gotool")
@ -11793,37 +11445,6 @@ reformat the source code, it only prints out style mistakes.")
tools with similar semantics.")
(license license:expat)))
(define-public go-honnef-co-go-tools
(package
(name "go-honnef-co-go-tools")
(version "0.3.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dominikh/go-tools")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"099z04v7vvwwglnps315s9fmal68xvzlc1g8m26iqi980grbwn32"))))
(build-system go-build-system)
(arguments
`(#:import-path "honnef.co/go/tools"
#:tests? #f
;; Source-only package
#:phases (modify-phases %standard-phases
(delete 'build))))
(propagated-inputs (list go-golang-org-x-exp go-golang-org-x-tools
go-golang-org-x-mod go-github-com-kisielk-gotool
go-github-com-burntsushi-toml))
(home-page "https://honnef.co/go/tools")
(synopsis "Staticcheck advanced Go linter")
(description
"Staticcheck is a state of the art linter for the Go programming language.
Using static analysis, it finds bugs and performance issues, offers
simplifications, and enforces style rules.")
(license license:expat)))
(define-public go-go-uber-org-zap
(package
(name "go-go-uber-org-zap")
@ -13124,35 +12745,6 @@ production-ready implementation, compatible with the original Jsonnet C++
implementation.")
(license license:asl2.0)))
(define-public go-github-com-google-go-cmdtest
(let ((commit "55ab3332a786118933ddf71544aae14951ba9bc5")
(revision "0"))
(package
(name "go-github-com-google-go-cmdtest")
(version (git-version "0.4.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/google/go-cmdtest")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"10kswvbdwissjb5mr0ys4b3ppxkxlpklqg7cr2z7rv21g2vwczbl"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/google/go-cmdtest"))
(propagated-inputs (list go-github-com-google-renameio
go-github-com-google-go-cmp-cmp))
(home-page "https://github.com/google/go-cmdtest")
(synopsis "Testing for your CLI")
(description
"The cmdtest package simplifies testing of command-line interfaces. It
provides a simple, cross-platform, shell-like language to express command
execution. It can compare actual output with the expected output, and can
also update a file with new \"golden\" output that is deemed correct.")
(license license:asl2.0))))
(define-public go-github-com-google-safehtml
(package
(name "go-github-com-google-safehtml")
@ -13908,34 +13500,6 @@ library bevacqua/fuzzysearch.")
"Gomega is the preferred matcher library for the Ginkgo test framework.")
(license license:expat)))
(define-public go-github-com-onsi-ginkgo
(package
(name "go-github-com-onsi-ginkgo")
(version "1.16.5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/onsi/ginkgo")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1hh6n7q92y0ai8k6rj2yzw6wwxikhyiyk4j92zgvf1zad0gmqqmz"))))
(build-system go-build-system)
(arguments (list #:import-path "github.com/onsi/ginkgo"))
(propagated-inputs (list go-golang-org-x-sys
go-golang-org-x-tools
go-github-com-go-task-slim-sprig
go-github-com-nxadm-tail
go-github-com-onsi-gomega))
(home-page "https://github.com/onsi/ginkgo")
(synopsis "BDD-style testing framework for Go")
(description
"Ginkgo is a Behaviour-Driven Development testing framework for Go. It
builds on top of Go's builtin @code{testing} library and is complemented by the
Gomega matcher library.")
(license license:expat)))
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar

View File

@ -28,7 +28,7 @@
;;; Copyright © 2021 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2021, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2022 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022, 2023 John Kehayias <john.kehayias@protonmail.com>
;;; Copyright © 2022 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2022 Tobias Kortkamp <tobias.kortkamp@gmail.com>
;;; Copyright © 2022 Paul A. Patience <paul@apatience.com>
@ -121,6 +121,7 @@
#:use-module (gnu packages tbb)
#:use-module (gnu packages toolkits)
#:use-module (gnu packages upnp)
#:use-module (gnu packages version-control)
#:use-module (gnu packages video)
#:use-module (gnu packages vulkan)
#:use-module (gnu packages xiph)
@ -1038,7 +1039,7 @@ distills complex, animated scenes into a set of baked geometric results.")
(define-public mangohud
(package
(name "mangohud")
(version "0.6.8")
(version "0.7.0")
(source
(origin
(method git-fetch)
@ -1047,21 +1048,18 @@ distills complex, animated scenes into a set of baked geometric results.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "19dp8l5njzl9xah0bhwlkl39vc8w2rnpvpdrhgaz3hnhz8b0r5df"))))
(base32 "1m4a2dqzqdhk9w1gvzppid7k0fxvplh5hmivvj9sda529s1g24rc"))))
(build-system meson-build-system)
(arguments
(list
#:build-type "release"
#:configure-flags
#~(list "-Duse_system_vulkan=enabled"
"-Duse_system_spdlog=enabled"
#~(list "-Duse_system_spdlog=enabled"
"-Dwith_xnvctrl=disabled"
"-Dappend_libdir_mangohud=false"
(string-append "-Dvulkan_datadir="
#$(this-package-input "vulkan-headers") "/share"))
"-Dappend_libdir_mangohud=false")
#:phases
#~(modify-phases %standard-phases
;; Mangohud tries to build the imgui library as a meson submodule,
;; MangoHud tries to build the imgui library as a meson submodule,
;; so we change the dependency to the imgui input instead.
(add-after 'unpack 'unbundle-imgui
(lambda _
@ -1073,6 +1071,23 @@ distills complex, animated scenes into a set of baked geometric results.")
"declare_dependency(dependencies: "
"cpp.find_library('imgui'), include_directories: '"
#$(this-package-input "imgui") "/include/imgui')")))))
;; Likewise, MangoHud bundles a Vulkan headers submodule to use a
;; specific version, which we provide as an input and adjust the
;; build accordingly.
(add-after 'unbundle-imgui 'unbundle-vulkan-headers
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "meson.build"
(("vkh_sp = .*")
"")
(("vkh_sp.get_variable\\('vulkan_api_xml'\\)")
(string-append "files('"
(search-input-file inputs "registry/vk.xml")
"')"))
(("dep_vulkan = .*")
""))
(substitute* "src/meson.build"
(("dep_vulkan,")
""))))
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/meson.build"
@ -1098,11 +1113,20 @@ distills complex, animated scenes into a set of baked geometric results.")
libx11
mesa
mesa-utils
nlohmann-json
python-mako
spdlog
vulkan-headers
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/KhronosGroup/Vulkan-Headers")
(commit "v1.2.158")))
(file-name (git-file-name "vulkan" "v1.2.158"))
(sha256
(base32
"0jvaqj87792yccpr290djb18pqaisspq9dw6bqim6mrhfgda9v76")))
vulkan-loader))
(native-inputs (list pkg-config python))
(native-inputs (list git-minimal/pinned pkg-config python))
(home-page "https://github.com/flightlessmango/MangoHud/")
(synopsis "Vulkan and OpenGL overlay for monitoring performance and hardware")
(description "MangoHud is a Vulkan and OpenGL overlay for monitoring
@ -2526,7 +2550,7 @@ generated discrete signed distance field using the cubic spline kernel.
(define-public mmg
(package
(name "mmg")
(version "5.7.1")
(version "5.7.2")
(source
(origin
(method git-fetch)
@ -2535,7 +2559,7 @@ generated discrete signed distance field using the cubic spline kernel.
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0skb7yzsw6y44zp9gb729i5xks7qd97nvn3z6jhz4jksqksx7lz0"))))
(base32 "007d0mvqhnxxj6dbcip9s615asrbpgrbkpm5xn6m8k3n9sljr153"))))
(build-system cmake-build-system)
(outputs '("out" "lib" "doc"))
(arguments
@ -2736,7 +2760,7 @@ desired local properties.")
(define-public f3d
(package
(name "f3d")
(version "2.0.0")
(version "2.2.1")
(source
(origin
(method git-fetch)
@ -2745,22 +2769,12 @@ desired local properties.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1gcwpdkz3ylaxi133zri1cxkvj6za5s1hbgqqc8fn10q2dkkdd44"))
(base32 "0f076754zsxb4gwk6bxj94iyjj0dfxmmc8w88f55xd6hbm3qdnwd"))
(modules '((guix build utils)))
(snippet
#~(begin
(delete-file "external/cxxopts.hpp")
(delete-file "external/json.hpp")
(substitute* "application/F3DOptionsParser.cxx"
(("^#include \"cxxopts\\.hpp\"")
"#include <cxxopts.hpp>")
(("^#include \"json\\.hpp\"")
"#include <nlohmann/json.hpp>")
(("cxxopts::OptionException")
"cxxopts::exceptions::parsing"))
(substitute* "library/src/engine.cxx"
(("^#include <json\\.hpp>")
"#include <nlohmann/json.hpp>"))))))
(delete-file-recursively "external/cxxopts")
(delete-file-recursively "external/nlohmann_json")))))
(build-system cmake-build-system)
;; The package cannot easily be split into out and lib outputs because
;; VTK's vtkModule.cmake complains, and also the CMake files in
@ -2783,15 +2797,29 @@ desired local properties.")
#~(list (string-append "-DCMAKE_INSTALL_DOCDIR=" #$output
"/share/doc/" #$name "-" #$version)
"-DBUILD_TESTING=OFF"
"-DF3D_GENERATE_MAN=ON"
"-DF3D_INSTALL_DEFAULT_CONFIGURATION_FILE=ON"
"-DF3D_INSTALL_DEFAULT_CONFIGURATION_FILE_IN_PREFIX=ON"
"-DF3D_INSTALL_MIME_TYPES_FILES=ON"
"-DF3D_INSTALL_THUMBNAILER_FILES=ON"
"-DF3D_MODULE_ALEMBIC=ON"
"-DF3D_MODULE_ASSIMP=ON"
"-DF3D_LINUX_GENERATE_MAN=ON"
"-DF3D_USE_EXTERNAL_CXXOPTS=ON"
"-DF3D_USE_EXTERNAL_NLOHMANN_JSON=ON"
"-DF3D_MODULE_EXTERNAL_RENDERING=ON"
"-DF3D_MODULE_OCCT=ON")))
"-DF3D_MODULE_EXR=ON"
"-DF3D_PLUGIN_BUILD_ALEMBIC=ON"
"-DF3D_PLUGIN_BUILD_ASSIMP=ON"
"-DF3D_PLUGIN_BUILD_OCCT=ON")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-cmake-rpath
(lambda _
;; Expand $ORIGIN, and add VTK to library RPATH, because it is
;; not added automatically.
(substitute* "application/CMakeLists.txt"
(("(set_target_properties.*PROPERTIES.*INSTALL_RPATH ).*"
_ prefix)
(string-append prefix "\"" #$output "/lib\")\n")))
(substitute* "library/CMakeLists.txt"
(("(set_target_properties.*PROPERTIES.*INSTALL_RPATH ).*"
_ prefix)
(string-append prefix "\"" #$output "/lib:"
#$(this-package-input "vtk") "/lib\")\n"))))))))
(native-inputs
(list cxxopts
help2man
@ -2815,6 +2843,7 @@ desired local properties.")
lz4
netcdf
opencascade-occt
openexr
vtk
zlib))
(home-page "https://f3d-app.github.io/f3d/")

View File

@ -808,22 +808,29 @@ ever use this library.")
#:phases
#~(modify-phases %standard-phases
(delete 'check)
(add-after 'install 'check
(lambda _
(setenv "HOME" (getenv "TMPDIR")) ;xfconfd requires a writable HOME
;; Run test-suite under a dbus session.
(setenv "XDG_DATA_DIRS" ;for finding org.xfce.Xfconf.service
(string-append #$output "/share:" (getenv "XDG_DATA_DIRS")))
;; Don't fail on missing '/etc/machine-id'.
(setenv "DBUS_FATAL_WARNINGS" "0")
(with-directory-excursion (string-append "../at-spi2-core-"
#$version "")
(invoke "dbus-run-session" "--" "ci/run-registryd-tests.sh")
(substitute* "ci/run-tests.sh"
(("ps auxwww") "") ;avoid a dependency on procps
(("meson test -C _build")
"meson test -C ../build")) ;adjust build directory
(invoke "dbus-run-session" "--" "ci/run-tests.sh")))))))
;; The CI test suite fails completely on powerpc-linux.
;; The name org.gnome.SessionManager was not provided by any .service
;; TODO: Wrap 'check phase with 'tests?'.
#$@(if (not (target-ppc32?))
#~((add-after 'install 'check
(lambda _
;; xfconfd requires a writable HOME
(setenv "HOME" (getenv "TMPDIR"))
;; Run test-suite under a dbus session.
(setenv "XDG_DATA_DIRS" ;for finding org.xfce.Xfconf.service
(string-append #$output "/share:"
(getenv "XDG_DATA_DIRS")))
;; Don't fail on missing '/etc/machine-id'.
(setenv "DBUS_FATAL_WARNINGS" "0")
(with-directory-excursion (string-append "../at-spi2-core-"
#$version "")
(invoke "dbus-run-session" "--" "ci/run-registryd-tests.sh")
(substitute* "ci/run-tests.sh"
(("ps auxwww") "") ;avoid a dependency on procps
(("meson test -C _build")
"meson test -C ../build")) ;adjust build directory
(invoke "dbus-run-session" "--" "ci/run-tests.sh")))))
#~()))))
(inputs
(list bash-minimal libxml2))
(propagated-inputs

View File

@ -3295,6 +3295,32 @@ serializing continuations or delimited continuations.")
from @code{tree-il}.")
(license license:lgpl2.0+)))
(define-public guile-hoot
(package
(name "guile-hoot")
(version "0.1.0")
(source (origin
(method url-fetch)
(uri (string-append "https://spritely.institute/files/releases"
"/guile-hoot/guile-hoot-"
version ".tar.gz"))
(sha256
(base32
"1087rcj22hk6fcbqajm268f1q2c3kbizah8wy1z0aqkfliwc309g"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags '("GUILE_AUTO_COMPILE=0"
"WASM_HOST=hoot")))
(native-inputs
(list autoconf automake pkg-config texinfo))
(inputs
(list guile-next))
(synopsis "WebAssembly compiler backend for Guile")
(description "Guile Hoot is a WebAssembly compiler backend for GNU Guile
and standalone WASM toolchain.")
(home-page "https://spritely.institute/hoot")
(license (list license:asl2.0 license:lgpl3+))))
(define-public guile-file-names
(package
(name "guile-file-names")
@ -5444,7 +5470,7 @@ with a FSM is being built (for example, from a Makefile.)")
(define-public guile-ini
(package
(name "guile-ini")
(version "0.5.3")
(version "0.5.4")
(source (origin
(method git-fetch)
(uri (git-reference
@ -5453,7 +5479,7 @@ with a FSM is being built (for example, from a Makefile.)")
(file-name (string-append name "-" version))
(sha256
(base32
"03pdbas7f6r2q3jbcn68xpm57hika3byb4rhsf0544kw6yk3bm8q"))))
"10glfdhyv8h58cmf0xl1g7jk05pd5hzdncc2c709b8pyncrdiakh"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags '("GUILE_AUTO_COMPILE=0") ;to prevent guild warnings

View File

@ -457,7 +457,7 @@ without requiring the source code to be rewritten.")
(define-public guile-next
(let ((version "3.0.9")
(revision "0")
(commit "c2cba86785a34351788f52ea4fccf9f10f3a1dee"))
(commit "79e836b8cc601a1259c934000a953a8d739ddd6f"))
(package
(inherit guile-3.0)
(name "guile-next")
@ -471,7 +471,7 @@ without requiring the source code to be rewritten.")
(file-name (git-file-name name version))
(sha256
(base32
"1k0dkmyf9s4iynjj2qm0szqfpfd3b07cpj0fay14iwbidkrqndzf"))))
"0s90khsdbvrkykp58izkvyxf8jciggdapm29dc3lzk3s1shajlgm"))))
(arguments
(substitute-keyword-arguments (package-arguments guile-3.0)
((#:phases phases '%standard-phases)

View File

@ -122,7 +122,7 @@
(define-public converseen
(package
(name "converseen")
(version "0.9.11.1")
(version "0.11.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -131,7 +131,7 @@
(file-name (git-file-name name version))
(sha256
(base32
"0nxvac8df47gxg1klqlz0s3rxl0ykrikmciniwkb938bgilmaijm"))
"1imc0dbbrs96yv3mp6bs7whd14zvgdw7hmv87bz8lp7d739s74z4"))
(patches
(search-patches "converseen-hide-updates-checks.patch"
;; Remove links to sites relying on non-free
@ -1528,6 +1528,12 @@ channels.")
"-DEXIV2_ENABLE_BMFF=ON")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-gcc-reference
(lambda _
;; _GLIBCXX_ASSERTIONS brings reference to GCC.
(substitute* "cmake/compilerFlags.cmake"
(("add_compile_options[(]-Wp,-D_GLIBCXX_ASSERTIONS[)]")
""))))
(add-after 'install 'delete-static-libraries
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))

View File

@ -29,6 +29,7 @@
#:use-module (guix download)
#:use-module (guix build-system go)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages python)
#:use-module (gnu packages shells)
#:use-module (gnu packages syncthing))

View File

@ -67,6 +67,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
#:use-module (gnu packages guile-xyz)
@ -313,7 +314,7 @@ irssi, but graphical.")
(define-public irssi
(package
(name "irssi")
(version "1.4.4")
(version "1.4.5")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/irssi/irssi/"
@ -321,7 +322,7 @@ irssi, but graphical.")
version ".tar.xz"))
(sha256
(base32
"1bby23mn7318dmxf8aw9ahs6j4mbc0ilm4swji4m8ixiqz49xzpy"))))
"0qp05z2qfqhp5wawxqz7qwv2fh9sb801z032i5d7h8nn1b5m3abj"))))
(build-system gnu-build-system)
(arguments
`(#:phases

View File

@ -12,7 +12,7 @@
;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016, 2018-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016, 2018, 2019, 2020, 2021, 2022 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2018, 2019, 2020, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016-2023 Marius Bakke <marius@gnu.org>
@ -76,6 +76,7 @@
;;; Copyright © 2023 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2023 dan <i@dan.games>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
;;; Copyright © 2023 Wilko Meyer <w@wmeyer.eu>
;;;
;;; This file is part of GNU Guix.
;;;
@ -492,7 +493,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernels. That is, the most recently released major
;; versions that are still supported upstream.
(define-public linux-libre-6.5-version "6.5.5")
(define-public linux-libre-6.5-version "6.5.7")
(define-public linux-libre-6.5-gnu-revision "gnu")
(define deblob-scripts-6.5
(linux-libre-deblob-scripts
@ -502,30 +503,15 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "132ps1jprxw6kqyscsar38fn7s12kg416mfhz7w702f4ajgq1ndi")))
(define-public linux-libre-6.5-pristine-source
(let ((version linux-libre-6.5-version)
(hash (base32 "15gg8sb6cfgk1afwj7fl7mj4nkj14w43vzwvw0qsg3nzyxwh7wcc")))
(hash (base32 "135v3y2vgc83dca4xi7q52wqi4dkfal74k1y73jwzj85h12fl28d")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.5)))
(define-public linux-libre-6.4-version "6.4.16")
(define-public linux-libre-6.4-gnu-revision "gnu")
(define deblob-scripts-6.4
(linux-libre-deblob-scripts
linux-libre-6.4-version
linux-libre-6.4-gnu-revision
(base32 "012d16rjprxdv9frf7kcakpikvw7l0s3kvj4kkp9flzdg3j8wxpz")
(base32 "02zizxf0dp4291hbvjrif04m19h8rrc55c11qinlrm0p19s9srcx")))
(define-public linux-libre-6.4-pristine-source
(let ((version linux-libre-6.4-version)
(hash (base32 "0zgj1z97jyx7wf12zrnlcp0mj4cl43ais9qsy6dh1jwylf2fq9ln")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.4)))
;; The "longterm" kernels — the older releases with long-term upstream support.
;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html>
(define-public linux-libre-6.1-version "6.1.53")
(define-public linux-libre-6.1-version "6.1.58")
(define-public linux-libre-6.1-gnu-revision "gnu")
(define deblob-scripts-6.1
(linux-libre-deblob-scripts
@ -535,12 +521,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1c73516nbhnz0cxjz38b5794dxygb8sznv9idiibw7ablmjbhd11")))
(define-public linux-libre-6.1-pristine-source
(let ((version linux-libre-6.1-version)
(hash (base32 "0zpdg3fcc12iyjhfs5w7cw75700z4i8m9jcg38mlzlhh92hf0msz")))
(hash (base32 "1b913ina3rcw4dx2s7n37kynv8rqsmrqa2ialsib6h7nsb9px66f")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-6.1)))
(define-public linux-libre-5.15-version "5.15.131")
(define-public linux-libre-5.15-version "5.15.135")
(define-public linux-libre-5.15-gnu-revision "gnu")
(define deblob-scripts-5.15
(linux-libre-deblob-scripts
@ -550,12 +536,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1c3lm0j401lv2lk39dmr4mlf5ic173snm7cc0cckl6czyvxr5ysy")))
(define-public linux-libre-5.15-pristine-source
(let ((version linux-libre-5.15-version)
(hash (base32 "0sacnbw48lblnqaj56nybh588sq4k84gwf0r5zinzyrryj8k6z4r")))
(hash (base32 "0w3i8jvzqvfnlarcvg89k1144ln96fszv16lzrn16zr3kri5x0ql")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.15)))
(define-public linux-libre-5.10-version "5.10.194")
(define-public linux-libre-5.10-version "5.10.198")
(define-public linux-libre-5.10-gnu-revision "gnu1")
(define deblob-scripts-5.10
(linux-libre-deblob-scripts
@ -565,12 +551,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0nnp46mn32yk436swd2qh34igmzinfgkwvbzp3lqyy45f06hbc2j")))
(define-public linux-libre-5.10-pristine-source
(let ((version linux-libre-5.10-version)
(hash (base32 "15fr7krhpmqz0xqjg78m2xvfllbni3xh8xyhxh9ni31ppd3mw394")))
(hash (base32 "01gsw96anw44nh8ii3zipp6vh61m1n8yf0bv2fzznr23k771y51b")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.10)))
(define-public linux-libre-5.4-version "5.4.256")
(define-public linux-libre-5.4-version "5.4.258")
(define-public linux-libre-5.4-gnu-revision "gnu1")
(define deblob-scripts-5.4
(linux-libre-deblob-scripts
@ -580,12 +566,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0sw67b2pk3lng4y67diqqnhxaggnp3nbkx8dxc5fs27rinfxr4m1")))
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
(hash (base32 "0fim5q9xakwnjfg48bpsic9r2r8dvrjlalqqkm9vh1rml9mhi967")))
(hash (base32 "0gk2xav1ng565l1qsqlr8ja6m4j5g8rfj66vad1fmdd1lwaihw1r")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
(define-public linux-libre-4.19-version "4.19.294")
(define-public linux-libre-4.19-version "4.19.296")
(define-public linux-libre-4.19-gnu-revision "gnu1")
(define deblob-scripts-4.19
(linux-libre-deblob-scripts
@ -595,12 +581,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1425mhkfxn18vxn05bb4h3li7x1jl7l1hf1zi8xhnqv3wa31h9wl")))
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
(hash (base32 "03x0xsb8a369zdr81hg6xdl5n5v48k6iwnhj6r29725777lvvbfc")))
(hash (base32 "1bk051canr4fb00j6x9ff2wam2f20whw4h4z767x2cn2kmv6cqb3")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
(define-public linux-libre-4.14-version "4.14.325")
(define-public linux-libre-4.14-version "4.14.327")
(define-public linux-libre-4.14-gnu-revision "gnu1")
(define deblob-scripts-4.14
(linux-libre-deblob-scripts
@ -610,7 +596,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1faagsj4i31z2bp83hflx3q9vrddjnn37a3ah2b47iaplva7z1nd")))
(define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version)
(hash (base32 "117p1mdha57f6d3kdwac9jrbmib7g77q4xhir8ghl6fmrs1f2sav")))
(hash (base32 "0nharfyxlr17yan86zrhlbq7idm0g3zvvvmy2zbw7m9dhgc8bw5z")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
@ -648,11 +634,6 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(list %boot-logo-patch
%linux-libre-arm-export-__sync_icache_dcache-patch)))
(define-public linux-libre-6.4-source
(source-with-patches linux-libre-6.4-pristine-source
(list %boot-logo-patch
%linux-libre-arm-export-__sync_icache_dcache-patch)))
(define-public linux-libre-6.1-source
(source-with-patches linux-libre-6.1-pristine-source
(append
@ -772,11 +753,6 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
linux-libre-6.5-gnu-revision
linux-libre-6.5-source))
(define-public linux-libre-headers-6.4
(make-linux-libre-headers* linux-libre-6.4-version
linux-libre-6.4-gnu-revision
linux-libre-6.4-source))
(define-public linux-libre-headers-6.1
(make-linux-libre-headers* linux-libre-6.1-version
linux-libre-6.1-gnu-revision
@ -1124,19 +1100,11 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
"aarch64-linux" "powerpc64le-linux" "riscv64-linux")
#:configuration-file kernel-config))
(define-public linux-libre-6.4
(make-linux-libre* linux-libre-6.4-version
linux-libre-6.4-gnu-revision
linux-libre-6.4-source
'("x86_64-linux" "i686-linux" "armhf-linux"
"aarch64-linux" "powerpc64le-linux" "riscv64-linux")
#:configuration-file kernel-config))
(define-public linux-libre-version linux-libre-6.4-version)
(define-public linux-libre-gnu-revision linux-libre-6.4-gnu-revision)
(define-public linux-libre-pristine-source linux-libre-6.4-pristine-source)
(define-public linux-libre-source linux-libre-6.4-source)
(define-public linux-libre linux-libre-6.4)
(define-public linux-libre-version linux-libre-6.5-version)
(define-public linux-libre-gnu-revision linux-libre-6.5-gnu-revision)
(define-public linux-libre-pristine-source linux-libre-6.5-pristine-source)
(define-public linux-libre-source linux-libre-6.5-source)
(define-public linux-libre linux-libre-6.5)
(define-public linux-libre-6.1
(make-linux-libre* linux-libre-6.1-version
@ -1369,9 +1337,9 @@ Linux kernel. It has been modified to remove all non-free binary blobs.")
(define-public linux-libre-with-bpf
(let ((base-linux-libre
(make-linux-libre*
linux-libre-6.4-version
linux-libre-6.4-gnu-revision
linux-libre-6.4-source
linux-libre-6.5-version
linux-libre-6.5-gnu-revision
linux-libre-6.5-source
'("x86_64-linux" "i686-linux" "armhf-linux"
"aarch64-linux" "powerpc64le-linux" "riscv64-linux")
#:extra-version "bpf"
@ -5237,45 +5205,45 @@ thanks to the use of namespaces.")
;; supported since Linux-libre 5.4.5.
(substitute* "src/lib/image/squashfs/mount.c"
(("\"errors=remount-ro\"")
"NULL"))
#t))))
"NULL"))))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags '("--localstatedir=/var")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-references
(lambda _
(substitute* "libexec/cli/build.exec.in"
(("-mksquashfs") (string-append "-" (which "mksquashfs"))))
(substitute* (append
(list
#:configure-flags #~(list "--localstatedir=/var")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-references
(lambda _
(substitute* "libexec/cli/build.exec.in"
(("-mksquashfs") (string-append "-" (which "mksquashfs"))))
(substitute* (append
(find-files "libexec" "functions")
(find-files "libexec/bootstrap-scripts" ".*sh$")
(find-files "libexec/cli" ".*exec$"))
(("\\| grep ")
(string-append "| " (which "grep") " "))
(("egrep ")
(string-append (which "egrep") " "))
((" sed ")
(string-append " " (which "sed") " ")))
#t))
(add-after 'install 'set-PATH
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Have the 'singularity' and 'run-singularity' self-sufficient.
(let ((out (assoc-ref outputs "out"))
(coreutils (assoc-ref inputs "coreutils")))
(wrap-program (string-append out "/bin/singularity")
`("PATH" ":" = (,(string-append coreutils "/bin"))))
(substitute* (string-append out "/bin/run-singularity")
(("/usr/bin/env singularity")
(string-append (which "env") " "
out "/bin/singularity")))
#t))))))
(("\\| grep ")
(string-append "| " (which "grep") " "))
(("egrep ")
(string-append (which "egrep") " "))
((" sed ")
(string-append " " (which "sed") " ")))))
(add-after 'install 'set-PATH
(lambda _
;; Have the 'singularity' and 'run-singularity' self-sufficient.
;; But don't override PATH, so that other tools like zcat and
;; tar can still be found if they are available.
(let ((coreutils #$(this-package-input "coreutils")))
(wrap-program (string-append #$output "/bin/singularity")
`("PATH" prefix (,(string-append coreutils "/bin"))))
(substitute* (string-append #$output "/bin/run-singularity")
(("/usr/bin/env singularity")
(string-append (which "env") " "
#$output "/bin/singularity")))))))))
(inputs
`(("libarchive" ,libarchive)
("python" ,python-wrapper)
("zlib" ,zlib)
("squashfs-tools" ,squashfs-tools)))
(list coreutils
libarchive
python-wrapper
squashfs-tools
zlib))
(home-page "https://singularity.lbl.gov/")
(synopsis "Container platform")
(description "Singularity is a container platform supporting a number of
@ -9470,7 +9438,7 @@ tools for managing PipeWire.")
(define-public ell
(package
(name "ell")
(version "0.57")
(version "0.59")
(source (origin
(method git-fetch)
(uri (git-reference
@ -9479,7 +9447,7 @@ tools for managing PipeWire.")
(file-name (git-file-name name version))
(sha256
(base32
"1vpzz0z6q0d3h41aqajaw0dlpkdnmjcppmlwbb558hvj40q5dpzm"))))
"11xlkdvw7pyd9idq1zsnl946dry9aksnz29wbpzxqjc97xhhd5xq"))))
(build-system gnu-build-system)
(arguments
;; Tests launch dbus-daemon instances that all try to bind to
@ -9488,7 +9456,7 @@ tools for managing PipeWire.")
(inputs
(list dbus))
(native-inputs
(list autoconf automake libtool pkg-config))
(list autoconf automake libtool pkg-config procps))
(home-page "https://01.org/ell")
(synopsis "Embedded Linux Library")
(description "The Embedded Linux* Library (ELL) provides core, low-level
@ -10503,6 +10471,7 @@ against the several transient execution CVEs that were published since early
(uri (git-reference
(url "https://github.com/csmith-project/csmith")
(commit (string-append "csmith-" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0nhrsnv6cny14xz68qb1h30fbwc05adkisk51p3x63mydm60ddl3"))))
@ -10529,3 +10498,66 @@ against the several transient execution CVEs that were published since early
(description "The primary purpose of Csmith is to find compiler bugs with
random programs using differential testing.")
(license license:bsd-4)))
(define-public ipvsadm
(package
(name "ipvsadm")
(version "1.31")
(source
(origin
(method url-fetch)
(uri (string-append "https://kernel.org/pub/linux/utils/kernel"
"/ipvsadm/ipvsadm-" version ".tar.xz"))
(sha256
(base32 "1nyzpv1hx75k9lh0vfxfhc0p2fpqaqb38xpvs8sn88m1nljmw2hs"))))
(build-system gnu-build-system)
(native-inputs (list linux-libre-headers pkg-config which))
(inputs (list libnl popt))
(arguments
(list #:tests? #f
#:parallel-build? #f ;build fails randomly with '-j'
#:make-flags
#~(list (string-join
(list "CFLAGS="
(string-append "-I"
#$(this-package-input "libnl")
"/include/libnl3")
(string-append "-L" #$(this-package-input "libnl")
"/lib")
"-fPIC")
" ")
(string-append "CC=" #$(cc-for-target))
(string-append "SBIN=" #$output "/sbin")
(string-append "INIT=" #$output "/etc/init.d")
(string-append "MANDIR=" #$output "/share/man"))
#:phases #~(modify-phases %standard-phases
(delete 'configure))))
(home-page "http://www.linuxvirtualserver.org/software/ipvs.html")
(synopsis "IP virtual server administration utility")
(description "@code{ipvsadm(8)} is used to set up, maintain or inspect the
virtual server table in the Linux kernel. The Linux Virtual Server can be used
to build scalable network services based on a cluster of two or more nodes.")
(license license:gpl2+)))
(define-public ryzen-smu
(package
(name "ryzen-smu")
(version "0.1.5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/leogx9r/ryzen_smu.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"010la2a8zp7rljlg5ssc9ragzva4ca05gvzlicjagl508659d2wz"))))
(build-system linux-module-build-system)
(arguments
`(#:tests? #f)) ; no tests
(synopsis "System Management Unit driver for AMD Ryzen processors")
(description "This package provides a way to access the
System Management Unit for certain AMD Ryzen processors.
This includes access to the System Management Network.")
(home-page "https://gitlab.com/leogx9r/ryzen_smu")
(license license:gpl2)))

View File

@ -39,6 +39,8 @@
;;; Copyright © 2022, 2023 Artyom Bologov <mail@aartaka.me>
;;; Copyright © 2023 Roman Scherer <roman@burningswell.com>
;;; Copyright © 2023 ykonai <mail@ykonai.net>
;;; Copyright © 2023 Gabriel Hondet <gabriel.hondet@cominety.net>
;;; Copyright © 2023 Raven Hallsby <karl@hallsby.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -72,6 +74,7 @@
#:use-module (guix build-system asdf)
#:use-module (guix build-system gnu)
#:use-module (guix build-system trivial)
#:use-module (guix build-system emacs)
#:use-module (gnu packages audio)
#:use-module (gnu packages base)
#:use-module (gnu packages c)
@ -2172,6 +2175,48 @@ from other CLXes around the net.")
(define-public ecl-clx
(sbcl-package->ecl-package sbcl-clx))
(define-public sbcl-cl-wayland
(let ((commit "a92a5084b64102f538ab90212e99c7863e5338ae")
(revision "0"))
(package
(name "sbcl-cl-wayland")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sdilts/cl-wayland")
(commit commit)))
(file-name (git-file-name "cl-wayland" version))
(sha256
(base32 "1r4fn9dc0dz2b30k8z243yacx1y5z21qk4zh2ildj7ak51qx53zf"))))
(build-system asdf-build-system/sbcl)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "wayland-server-core.lisp"
(("libwayland-server.so")
(search-input-file inputs
"/lib/libwayland-server.so"))))))))
(inputs
(list sbcl-cffi
sbcl-closer-mop
wayland))
(home-page "https://github.com/sdilts/cl-wayland")
(synopsis "Common Lisp FFI bindings for libwayland")
(description
"This package provides Common Lisp FFI bindings for libwayland,
primarily for the mahogany window manager.")
(license license:bsd-3))))
(define-public cl-wayland
(sbcl-package->cl-source-package sbcl-cl-wayland))
(define-public ecl-cl-wayland
(sbcl-package->ecl-package sbcl-cl-wayland))
(define-public sbcl-clx-truetype
(let ((commit "c6e10a918d46632324d5863a8ed067a83fc26de8")
(revision "1"))
@ -5531,8 +5576,8 @@ client and server.")
(sbcl-package->cl-source-package sbcl-trivial-arguments))
(define-public sbcl-trivial-clipboard
(let ((commit "6ddf8d5dff8f5c2102af7cd1a1751cbe6408377b")
(revision "6"))
(let ((commit "aee67d6132a46237f61d508ae4bd9ff44032566d")
(revision "7"))
(package
(name "sbcl-trivial-clipboard")
(version (git-version "0.0.0" revision commit))
@ -5544,7 +5589,7 @@ client and server.")
(commit commit)))
(file-name (git-file-name "cl-trivial-clipboard" version))
(sha256
(base32 "04qmm69zyx8rs23pfhgzgxn0j108byv3b7skfdv0h01a76wlhplz"))))
(base32 "029qmx523xfk54p99ndgbmdd20s5i32mzpf77xymngrn4c33v9jk"))))
(build-system asdf-build-system/sbcl)
(inputs
;; Pick xsel instead of xclip because its closure size is slightly
@ -10493,6 +10538,36 @@ as readmes, documentation files, and docstrings.")
(define-public ecl-staple
(sbcl-package->ecl-package sbcl-staple))
(define-public sbcl-helambdap
(let ((commit "5bf65f57a36ee094cadb096caca6e90eb3ba46c4")
(revision "0"))
(package
(name "sbcl-helambdap")
(version (git-version "20220103" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.code.sf.net/p/helambdap/code")
(commit commit)))
(file-name (git-file-name "cl-helambdap" version))
(sha256
(base32 "1kzapbf9l2bw8i9m9sxv0dfnkksrxq81d5hbn34pm25abk0i937j"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-cl-fad
sbcl-clad
sbcl-split-sequence
sbcl-xhtmlambda))
(synopsis "Common Lisp documentation system")
(description "HELambdap is a Common Lisp documentation system which
strives to be simple to use, yet easily customizable.")
(home-page "https://helambdap.sourceforge.net")
(license license:expat))))
(define-public cl-helambdap
(sbcl-package->cl-source-package sbcl-helambdap))
(define-public sbcl-form-fiddle
(let ((commit "e0c23599dbb8cff3e83e012f3d86d0764188ad18")
(revision "0"))
@ -10594,6 +10669,74 @@ LASS files.")
(define-public ecl-lass
(sbcl-package->ecl-package sbcl-lass))
(define-public sbcl-xhtmlambda
(let ((commit "c86376bccebf77ca428e8033df2ba7d8450ea1e8")
(revision "0"))
(package
(name "sbcl-xhtmlambda")
(version
;; The source repository doesn't provide any version nor revision, but
;; a timestamp
(git-version "2022-01-21" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.common-lisp.net/xhtmlambda/XHTMLambda")
(commit commit)))
(file-name (git-file-name "cl-xhtmlambda" version))
(sha256
(base32 "0narbzz06ry1wn048avm1fwihvnjvvc4wfcv5hmdazkilpvnqz2y"))))
(build-system asdf-build-system/sbcl)
(inputs (list sbcl-cl-unicode))
(synopsis "(X)HTML library for Common Lisp")
(description
"(X)HTMLambda is yet another (X)HTML library which
emphasizes programmability and user-friendliness. Each (X)HTML element is a
structured object and pretty-printing of (X)HTML trees is well defined to
provide properly indented human-readable output even for complex recursive
arrangements.")
(home-page "https://xhtmlambda.common-lisp.dev/")
(license license:expat))))
(define-public cl-xhtmlambda
(sbcl-package->cl-source-package sbcl-xhtmlambda))
(define-public sbcl-clad
(let ((commit "1ff6f417d4ee3836d1edd96923d4b03f3cafa849")
(revision "0"))
(package
(name "sbcl-clad")
(version
;; There's no version, but there's a timestamp
(git-version "2023-01-21" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.common-lisp.net/mantoniotti/CLAD")
(commit commit)))
(file-name (git-file-name "cl-clad" version))
(sha256
(base32 "184mhdq7pxd6hd4rzv8z4lfbwnkyhgm5bdn3xsqaav2j0d1dqm6i"))
(modules '((guix build utils)))
(snippet
;; Delete compiled ABCL files.
'(begin
(delete-file "clad-package.abcl")
(delete-file "clad.abcl")))))
(build-system asdf-build-system/sbcl)
(synopsis "Library providing standard locations on the file system")
(description
"The Common Lisp Application Directories (CLAD) library is
a simple API collection that provides access to a set of @emph{standard}
Common Lisp folders on a per-application or per-library basis.")
(home-page "https://gitlab.common-lisp.net/mantoniotti/CLAD")
(license license:expat)))) ;the mit-modern-variant is used
(define-public cl-clad
(sbcl-package->cl-source-package sbcl-clad))
(define-public sbcl-plump
(let ((commit "0c3e0b57b43b6e0c5794b6a902f1cf5bee2a2927")
(revision "3"))
@ -25964,65 +26107,51 @@ extra features like type inference.")
(sbcl-package->cl-source-package sbcl-nclasses))
(define-public sbcl-prompter
(package
(name "sbcl-prompter")
(version "0.1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/atlas-engineer/prompter")
(commit version)))
(file-name (git-file-name "prompter" version))
(sha256
(base32
"1489qg99n5bpl9b88pq3smnw5l9hrq08sbnabvavv3jcd4pzpsqf"))
(modules '((guix build utils)))
(snippet
`(begin
(delete-file-recursively "nasdf")
#t))))
(build-system asdf-build-system/sbcl)
(inputs
(list
sbcl-alexandria
sbcl-calispel
sbcl-cl-containers
sbcl-cl-str
sbcl-closer-mop
sbcl-lparallel
sbcl-moptilities
sbcl-nclasses
sbcl-serapeum
sbcl-trivial-package-local-nicknames))
(native-inputs
(list sbcl-lisp-unit2
sbcl-nasdf))
(home-page "https://github.com/atlas-engineer/prompter")
(synopsis "Live-narrowing, fuzzy-matching, extensible prompt framework")
(description
"This prompter library is heavily inspired by Emacs' minibuffer and
(let ((commit "b40a13af6ba4bd5c73c17e94dd2cbc2901bbd02f")
(revision "0"))
(package
(name "sbcl-prompter")
(version (git-version "0.1.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/atlas-engineer/prompter")
(commit commit)))
(file-name (git-file-name "cl-prompter" version))
(sha256
(base32
"1gg69rq2v9wcr7kj9fvd2i38r28fsgqqw6zs71m46krmr1gmfh4q"))
(modules '((guix build utils)))
(snippet
`(begin
(delete-file-recursively "nasdf")
#t))))
(build-system asdf-build-system/sbcl)
(inputs
(list
sbcl-alexandria
sbcl-calispel
sbcl-cl-containers
sbcl-cl-str
sbcl-closer-mop
sbcl-lparallel
sbcl-moptilities
sbcl-nclasses
sbcl-serapeum
sbcl-trivial-package-local-nicknames))
(native-inputs
(list sbcl-lisp-unit2
sbcl-nasdf))
(home-page "https://github.com/atlas-engineer/prompter")
(synopsis "Live-narrowing, fuzzy-matching, extensible prompt framework")
(description
"This prompter library is heavily inspired by Emacs' minibuffer and
Helm (@url{https://emacs-helm.github.io/helm/}). It only deals with the
backend side of things, it does not handle any display.
Non-exhaustive list of features:
@itemize
@item Asynchronous suggestion computation.
@item Multiple sources.
@item Multiple return actions.
@item Customizable matching and sorting.
@item Multiple attributes to match and display (also known as 'multiple column
display').
@item Customizable initialization and cleanup functions.
@item Notifications sent when suggestion list is updated.
@item Per-source history.
@item Resumable prompters.
@item Marks actions (event-driven on marks change).
@item Current suggestion actions (event-driven on current suggestion change).
@item Automatically return the prompt when narrowed down to a single suggestion.
@end itemize\n")
(license license:bsd-3)))
backend side of things, it does not handle any display. Features include
asynchronous suggestion computation, multiple sources, actions and resumable
prompters.")
(license license:bsd-3))))
(define-public cl-prompter
(sbcl-package->cl-source-package sbcl-prompter))
@ -26653,6 +26782,48 @@ instead of #'FOO.
(define-public ecl-nkeymaps
(sbcl-package->ecl-package sbcl-nkeymaps))
(define-public sbcl-xkbcommon
(let ((commit "aa9513d93f42d7816f88dd1bd8bd21375e7d7512")
(revision "0"))
(package
(name "sbcl-xkbcommon")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sdilts/cl-xkbcommon")
(commit commit)))
(file-name (git-file-name "cl-xkbcommon" version))
(sha256
(base32 "02zdbkh7yliw9vg8i8wx2xgcpfni0fr4z0w19kkxvaib8xm9rx1q"))))
(build-system asdf-build-system/sbcl)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "xkbcommon.lisp"
(("libxkbcommon.so.0")
(search-input-file inputs "/lib/libxkbcommon.so"))))))))
(native-inputs
(list pkg-config))
(inputs
(list libxkbcommon
sbcl-cffi))
(home-page "https://github.com/sdilts/cl-xkbcommon")
(synopsis "Common Lisp FFI bindings for xkbcommon")
(description
"This package provides Common Lisp FFI bindings for xkbcommon
(libxkbcommon) using cffi-grovel.")
(license license:expat))))
(define-public cl-xkbcommon
(sbcl-package->cl-source-package sbcl-xkbcommon))
(define-public ecl-xkbcommon
(sbcl-package->ecl-package sbcl-xkbcommon))
(define-public sbcl-njson
(package
(name "sbcl-njson")
@ -27386,6 +27557,54 @@ definition.")
(define-public ecl-slot-extra-options
(sbcl-package->ecl-package sbcl-slot-extra-options))
(define-public sbcl-slite
(let ((commit "942a95330592d30be5ac02fb1b697fb14ccbf1af")
(revision "0"))
(package
(name "sbcl-slite")
(version (git-version "1.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tdrhq/slite/")
(commit commit)))
(file-name (git-file-name "slite" version))
(sha256
(base32 "0b4c4vs1zlhcvr9flv8bx76v9hrwc9qmazmp60407q7cghn0k8zk"))))
(build-system asdf-build-system/sbcl)
(inputs
(list sbcl-cl-str
sbcl-fiveam
sbcl-parachute
sbcl-lisp-unit2))
(home-page "https://github.com/tdrhq/slite")
(synopsis "Common Lisp system for Slite ")
(description
"This package provides the Common Lisp part of the emacs-slite test runner.")
(license license:asl2.0))))
(define-public cl-slite
(sbcl-package->cl-source-package sbcl-slite))
(define-public ecl-slite
(sbcl-package->ecl-package sbcl-slite))
(define-public emacs-slite
(package
(inherit sbcl-slite)
(name "emacs-slite")
(build-system emacs-build-system)
(synopsis "SLIme-based TEst runner for FiveAM and Parachute Tests")
(description
"Slite interactively runs your Common Lisp tests (currently only FiveAM
and Parachute are supported). It allows you to see the summary of test
failures, jump to test definitions, rerun tests with debugger all from inside
Emacs.
In order to work, this also requires the slite Common Lisp system to be
present. See the code@{*cl-slite packages}.")))
(define-public sbcl-parseq
(package
(name "sbcl-parseq")

View File

@ -85,19 +85,32 @@
"Return the LLVM target name that corresponds to SYSTEM, a system type such
as \"x86_64-linux\"."
;; See the 'lib/Target' directory of LLVM for a list of supported targets.
(match (system->llvm-target-arch system)
("RISCV64" "RISCV")
("X86_64" "X86")
(x x)))
(define* (system->llvm-target-arch #:optional
(system (or (and=> (%current-target-system)
gnu-triplet->nix-system)
(%current-system))))
"Return the LLVM target arch name that corresponds to SYSTEM, a system type such
as \"x86_64-linux\"."
;; See the 'cmake/config-ix.cmake' file of LLVM for a list of supported targets arch.
;; start with # Determine the native architecture.
(letrec-syntax ((matches (syntax-rules (=>)
((_ (system-prefix => target) rest ...)
(if (string-prefix? system-prefix system)
target
(matches rest ...)))
((_)
(error "LLVM target for system is unknown" system)))))
(error "LLVM target arch for system is unknown" system)))))
(matches ("aarch64" => "AArch64")
("armhf" => "ARM")
("mips64el" => "Mips")
("powerpc" => "PowerPC")
("riscv" => "RISCV")
("x86_64" => "X86")
("riscv64" => "RISCV64")
("x86_64" => "X86_64")
("i686" => "X86")
("i586" => "X86"))))
@ -598,7 +611,7 @@ output), and Binutils.")
#$(string-append "-DLLVM_DEFAULT_TARGET_TRIPLE="
(%current-target-system))
#$(string-append "-DLLVM_TARGET_ARCH="
(system->llvm-target))
(system->llvm-target-arch))
#$(string-append "-DLLVM_TARGETS_TO_BUILD="
(system->llvm-target)))
'())
@ -658,7 +671,7 @@ of programming tools as well as libraries with equivalent functionality.")
#$(string-append "-DLLVM_DEFAULT_TARGET_TRIPLE="
(%current-target-system))
#$(string-append "-DLLVM_TARGET_ARCH="
(system->llvm-target))
(system->llvm-target-arch))
#$(string-append "-DLLVM_TARGETS_TO_BUILD="
(system->llvm-target)))
'())
@ -901,7 +914,7 @@ Library.")
#$(string-append "-DLLVM_DEFAULT_TARGET_TRIPLE="
(%current-target-system))
#$(string-append "-DLLVM_TARGET_ARCH="
(system->llvm-target))
(system->llvm-target-arch))
#$(string-append "-DLLVM_TARGETS_TO_BUILD="
(system->llvm-target)))
#~())

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013-2021, 2023 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2017, 2020 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Ian Denhardt <ian@zenhack.net>
;;; Copyright © 2014 Sou Bunnbu <iyzsong@gmail.com>
@ -108,6 +108,7 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages golang)
#:use-module (gnu packages golang-check)
#:use-module (gnu packages groff)
#:use-module (gnu packages gsasl)
#:use-module (gnu packages gtk)
@ -4242,10 +4243,7 @@ Git and exports them in maildir format or to an MDA through a pipe.")
(file-name (git-file-name name version))))
(build-system perl-build-system)
(arguments
`(#:imported-modules (,@%perl-build-system-modules
(guix build syscalls))
#:modules ((guix build perl-build-system)
(guix build syscalls)
`(#:modules ((guix build perl-build-system)
(guix build utils)
(ice-9 match))
#:phases
@ -4282,18 +4280,20 @@ Git and exports them in maildir format or to an MDA through a pipe.")
(setenv "TMP" "/tmp")
(setenv "TMPDIR" "/tmp")
;; Use tini so that signals are properly handled and
;; doubly-forked processes get reaped; otherwise,
;; lei-daemon is kept as a zombie and the testsuite
;; fails thinking that it didn't quit as it should.
(set-child-subreaper!)
(apply execlp "tini" "--"
(apply execlp "make"
"make" "check" test-flags))
(pid
(match (waitpid pid)
((_ . status)
(unless (zero? status)
(error "`make check' exited with status" status))))))
(make-pid
;; Reap child processes; otherwise, lei-daemon is kept as
;; a zombie and the testsuite fails thinking that it
;; didn't quit as it should.
(let loop ()
(match (waitpid WAIT_ANY)
((pid . status)
(if (= pid make-pid)
(unless (zero? status)
(error "`make check' exited with status"
status))
(loop)))))))
(format #t "test suite not run~%"))))
(add-after 'install 'wrap-programs
(lambda* (#:key inputs outputs #:allow-other-keys)
@ -4313,7 +4313,7 @@ Git and exports them in maildir format or to an MDA through a pipe.")
(find-files (string-append out "/bin")))))))))
(native-inputs
(list ;; For testing.
lsof openssl tini))
lsof openssl))
(inputs
(append
(if (not (target-64bit?))

View File

@ -144,68 +144,7 @@ seamlessly with your desktop environment.")
(license license:gpl3)))
(define-public tootle
(package
(name "tootle")
(version "1.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bleakgrey/tootle")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1nm57239mhdq462an6bnhdlijpijxmjs9mqbyirwxwa048d3n4rm"))
(patches
(search-patches
;; https://github.com/bleakgrey/tootle/pull/339
"tootle-glib-object-naming.patch"
;; https://github.com/bleakgrey/tootle/pull/322
"tootle-reason-phrase.patch"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'skip-gtk-update-icon-cache
;; Don't create 'icon-theme.cache'.
(lambda _
(substitute* "meson/post_install.py"
(("gtk-update-icon-cache") "true"))))
(add-after 'unpack 'patch-source
(lambda _
(substitute* "src/Dialogs/NewAccount.vala"
(("xdg-mime") (which "xdg-mime")))
;; Patch for building on glib < 2.64
(substitute* "src/Build.vala"
(("(os_name = ).*" _ first) (string-append first "\"GNU\";\n"))
(("(os_ver = ).*" _ first) (string-append first "\"Guix\";\n"))
(("GLib.Environment.get_os_info.*") "\"unknown\";\n"))))
(add-after 'install 'symlink-package
(lambda* (#:key outputs #:allow-other-keys)
(symlink "com.github.bleakgrey.tootle"
(string-append (assoc-ref outputs "out")
"/bin/tootle")))))))
(native-inputs
(list gettext-minimal
`(,glib "bin") ; for glib-compile-resources
gsettings-desktop-schemas pkg-config))
(inputs
(list glib-networking
gtk+
json-glib
libgee
libhandy
libsoup-minimal-2
vala
xdg-utils))
(home-page "https://github.com/bleakgrey/tootle")
(synopsis "GTK3 client for Mastodon")
(description "Tootle is a GTK client for Mastodon. It provides a clean,
native interface that allows you to integrate Mastodon's social experience
seamlessly with your desktop environment.")
(license license:gpl3+)))
(deprecated-package "tootle" tuba))
(define-public python-mastodon-py
(package

View File

@ -114,6 +114,7 @@
#:use-module (gnu packages coq)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages cpp)
#:use-module (gnu packages datamash)
#:use-module (gnu packages dbm)
#:use-module (gnu packages documentation)
@ -2421,7 +2422,7 @@ interfaces.")
(define-public nomad-optimizer
(package
(name "nomad-optimizer")
(version "4.2.0")
(version "4.3.1")
(source
(origin
(method git-fetch)
@ -2430,164 +2431,109 @@ interfaces.")
(commit (string-append "v." version))))
(file-name (git-file-name name version))
(sha256
(base32
"1r4ygy3xn83dnppsw1451ynklsxpb238g5gk57inn84ghmdk08mj"))))
(base32 "08bxdvx8p5qzdw331xa5irc1896as4q5hajsid7f3qcxjm4nq4v3"))))
(build-system cmake-build-system)
(native-inputs
(list python-wrapper python-cython))
(list openmpi))
(arguments
`(#:imported-modules ((guix build python-build-system)
,@%cmake-build-system-modules)
#:modules (((guix build python-build-system)
#:select (python-version site-packages))
(guix build cmake-build-system)
(guix build utils))
#:configure-flags
'("-DBUILD_INTERFACE_C=ON"
"-DBUILD_INTERFACE_PYTHON=ON"
"-DBUILD_TESTS=ON")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-sources-for-build
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "CMakeLists.txt"
;; CMAKE_INSTALL_PREFIX is accidentally hardcoded.
(("set\\(CMAKE_INSTALL_PREFIX .* FORCE\\)") "")
;; Requiring GCC version 8 or later is unwarranted.
(("message\\(FATAL_ERROR \"GCC version < 8")
"message(STATUS \"GCC version < 8"))
(let ((out (assoc-ref outputs "out")))
(substitute* "interfaces/PyNomad/CMakeLists.txt"
;; We don't want to build in-place, and anyway the install
;; command further below runs build_ext as a prerequisite.
(("COMMAND python setup_PyNomad\\.py .* build_ext --inplace\n")
"")
;; Don't install locally.
(("COMMAND python (setup_PyNomad\\.py .* install) --user\n"
_ args)
(string-append "COMMAND ${CMAKE_COMMAND} -E env"
" CC=" ,(cc-for-target)
" CXX=" ,(cxx-for-target)
" " (which "python")
" " args
" --prefix=" out
"\n")))
;; Fix erroneous assumptions about the paths of the include and
;; library directories.
(substitute* "interfaces/PyNomad/setup_PyNomad.py"
(("^( +os_include_dirs = ).*" _ prefix)
(string-append prefix "[\"../../src\"]\n"))
(("^(installed_lib_dir1 = ).*" _ prefix)
(string-append prefix "\"" out "/lib\"\n"))
(("^installed_lib_dir2 = .*") "")
(("^ +link_args\\.append\\(\"-Wl,-rpath,\" \\+ installed_lib_dir2\\)\n")
"")))))
;; Fix the tests so they run in out-of-source builds.
;;
;; TODO: Add support for examples/basic/batch/single_obj_MPIparallel,
;; by adding openmpi to native-inputs and adjusting the example's
;; BB_EXE parameter.
(add-after 'fix-sources-for-build 'fix-sources-for-tests
(lambda _
(substitute* "examples/CMakeLists.txt"
;; This test passes only sometimes.
;; See https://github.com/bbopt/nomad/issues/72.
(("^ +add_subdirectory\\(\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/advanced/library/PSDMads\\)\n")
"")
;; examples/basic/batch/example3 is accidentally omitted.
(("^(add_subdirectory\\(\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/basic/batch/example)2(\\)\n)"
_ prefix suffix)
(string-append prefix "2" suffix
prefix "3" suffix))
;; The generated runExampleTest.sh script runs the test as part
;; of a pipeline and incorrectly (because pipefail is unset)
;; relies on the value of the exit status immediately after the
;; pipeline.
;; (The patch-shebangs phase runs later than this one, so no
;; need to update the path to bash here.)
(("#!/bin/bash") "#!/bin/bash\nset -o pipefail"))
(substitute*
(map (lambda (d) (string-append "examples/" d "/CMakeLists.txt"))
(append
(map (lambda (d) (string-append "basic/library/" d))
'("example1" "example2" "example3"
"single_obj_parallel"))
(map (lambda (d) (string-append "advanced/library/" d))
'("FixedVariable" "NMonly" "PSDMads" "Restart"
"c_api/example1" "c_api/example2"
"exampleSuggestAndObserve"))))
;; The runExampleTest.sh script is run with WORKING_DIRECTORY
;; set to CMAKE_CURRENT_SOURCE_DIR.
;; Other scripts invoked by that script (for example
;; examples/advanced/batch/SuggestAndObserve/loopSuggestAndObserve.sh)
;; are in that same directory, but compiled examples are
;; located in CMAKE_CURRENT_BINARY_DIR.
(("(COMMAND \\$\\{CMAKE_BINARY_DIR\\}/examples/runExampleTest\\.sh )\\.(/.*)"
_ command test)
(string-append command "${CMAKE_CURRENT_BINARY_DIR}" test)))
;; The examples/basic/batch/example3 executable is already named
;; bb3.exe.
(substitute* "examples/basic/batch/single_obj_parallel/CMakeLists.txt"
(("bb3.exe") "bb_parallel.exe"))
;; (Unrelated to support for out-of-source testing.)
(make-file-writable
"examples/advanced/library/exampleSuggestAndObserve/cache0.txt")
(let ((builddir (string-append (getcwd) "/../build")))
(let ((dir "examples/advanced/library/FixedVariable"))
(substitute* (string-append dir "/fixedVariable.cpp")
(("^( +std::string sExe = ).*" _ prefix)
(string-append prefix "\"" builddir "/" dir "/ufl.exe" "\";\n"))))
;; The BB_EXE and SURROGATE_EXE paths are interpreted relative
;; to the configuration file provided to NOMAD.
;; However, the configuration files are all in the source tree
;; rather than in the build tree (unlike the compiled
;; executables).
(let ((fix-exe-path (lambda* (dir #:optional
(file "param.txt")
(exe-opt "BB_EXE"))
(substitute* (string-append dir "/" file)
(((string-append "^" exe-opt " +"))
;; The $ prevents NOMAD from prefixing
;; the executable with the path of the
;; parent directory of the configuration
;; file NOMAD was provided with as
;; argument (param.txt or some such).
(string-append exe-opt " $"
builddir "/" dir "/"))))))
(for-each
(lambda (dir)
(let ((dir (string-append "examples/" dir)))
(substitute* (string-append dir "/CMakeLists.txt")
;; The install phase has not yet run.
(("COMMAND \\$\\{CMAKE_INSTALL_PREFIX\\}/bin/nomad ")
"COMMAND ${CMAKE_BINARY_DIR}/src/nomad "))
(fix-exe-path dir)
(when (equal? dir "examples/basic/batch/surrogate_sort")
(fix-exe-path dir "param.txt" "SURROGATE_EXE"))))
(append (map (lambda (d) (string-append "basic/batch/" d))
'("example1" "example2" "example3"
"single_obj"
"single_obj_parallel"
;; "single_obj_MPIparallel"
"surrogate_sort"))
'("advanced/batch/LHonly")))
(let ((dir "examples/advanced/batch/FixedVariable"))
(substitute* (string-append dir "/runFixed.sh")
;; Hardcoded path to NOMAD executable.
(("^\\.\\./\\.\\./\\.\\./\\.\\./bin/nomad ")
(string-append builddir "/src/nomad ")))
(for-each
(lambda (f) (fix-exe-path dir f))
'("param1.txt" "param2.txt" "param3.txt" "param10.txt"))))))))))
(list
;; Cannot build Python interface because it is incompatible with OpenMP
;; support, which is enabled by default.
#:configure-flags
#~(list "-DBUILD_TESTS=ON"
"-DBUILD_INTERFACE_C=ON")
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-tests
(lambda _
(substitute* "examples/CMakeLists.txt"
;; This test passes only sometimes.
;; See https://github.com/bbopt/nomad/issues/72.
(("^ +add_subdirectory\\(\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/advanced/library/PSDMads\\)\n")
""))
(make-file-writable
"examples/advanced/library/exampleSuggestAndObserve/cache0.txt")
;; Fix the tests so they run in out-of-source builds.
(substitute*
'("examples/basic/library/COCO/CMakeLists.txt"
"examples/basic/library/example1/CMakeLists.txt"
"examples/basic/library/example2/CMakeLists.txt"
"examples/basic/library/example3/CMakeLists.txt"
"examples/basic/library/example4/CMakeLists.txt"
"examples/basic/library/single_obj_parallel/CMakeLists.txt"
"examples/advanced/library/FixedVariable/CMakeLists.txt"
"examples/advanced/library/NMonly/CMakeLists.txt"
"examples/advanced/library/PSDMads/CMakeLists.txt"
"examples/advanced/library/Restart/CMakeLists.txt"
"examples/advanced/library/Restart_VNS/CMakeLists.txt"
"examples/advanced/library/c_api/example1/CMakeLists.txt"
"examples/advanced/library/c_api/example2/CMakeLists.txt"
"examples/advanced/library/exampleSuggestAndObserve/CMakeLists.txt")
;; The runExampleTest.sh script is run with WORKING_DIRECTORY
;; set to CMAKE_CURRENT_SOURCE_DIR.
;; Other scripts invoked by that script (for example
;; examples/advanced/batch/SuggestAndObserve/loopSuggestAndObserve.sh)
;; are in that same directory, but compiled examples are
;; located in CMAKE_CURRENT_BINARY_DIR.
(("(COMMAND \\$\\{CMAKE_BINARY_DIR\\}/examples/runExampleTest\\.sh )\\.(/.*)"
_ command test)
(string-append command "${CMAKE_CURRENT_BINARY_DIR}" test)))
(let ((builddir (string-append (getcwd) "/../build")))
(let ((dir "examples/advanced/library/FixedVariable"))
(substitute* (string-append dir "/fixedVariable.cpp")
(("^( +std::string sExe = ).*" _ prefix)
(string-append prefix "\"" builddir "/" dir "/ufl.exe" "\";\n"))))
;; The BB_EXE and SURROGATE_EXE paths are interpreted relative
;; to the configuration file provided to NOMAD.
;; However, the configuration files are all in the source tree
;; rather than in the build tree (unlike the compiled
;; executables).
(let ((fix-exe-path (lambda* (dir #:optional
(file "param.txt")
(exe-opt "BB_EXE"))
(substitute* (string-append dir "/" file)
(((string-append "^" exe-opt " +"))
;; The $ prevents NOMAD from prefixing
;; the executable with the path of the
;; parent directory of the configuration
;; file NOMAD was provided with as
;; argument (param.txt or some such).
(string-append exe-opt " $"
builddir "/" dir "/"))))))
(for-each
(lambda (dir)
(substitute* (string-append dir "/CMakeLists.txt")
;; The install phase has not yet run.
(("(COMMAND.*)\\$\\{CMAKE_INSTALL_PREFIX\\}/bin/nomad\\b"
_ prefix)
(string-append prefix "${CMAKE_BINARY_DIR}/src/nomad")))
(if (equal? dir "examples/basic/batch/single_obj_MPIparallel")
(substitute* (string-append dir "/param.txt")
(("^BB_EXE +'\\$.*mpirun \\$-np \\$4 ")
(string-append "BB_EXE '$" (which "mpirun") " $"
builddir "/" dir "/")))
(fix-exe-path dir))
(when (equal? dir "examples/basic/batch/surrogate_sort")
(fix-exe-path dir "param.txt" "SURROGATE_EXE"))
(when (equal? dir "examples/advanced/batch/FixedVariable")
(fix-exe-path dir "param1.txt")
(fix-exe-path dir "param2.txt")
(fix-exe-path dir "param3.txt")
(fix-exe-path dir "param10.txt")))
'("examples/basic/batch/coco_bbob-constrained"
"examples/basic/batch/example1"
"examples/basic/batch/example2"
"examples/basic/batch/example3"
"examples/basic/batch/multi_obj"
"examples/basic/batch/multi_obj2"
"examples/basic/batch/single_obj"
"examples/basic/batch/single_obj_MPIparallel"
"examples/basic/batch/single_obj_parallel"
"examples/basic/batch/surrogate_sort"
"examples/advanced/batch/FixedVariable"
"examples/advanced/batch/LHonly"))))))
(add-before 'configure 'mpi-setup
#$%openmpi-setup))))
(home-page "https://www.gerad.ca/nomad/")
(synopsis "Nonlinear optimization by mesh-adaptive direct search")
(description
@ -3179,6 +3125,61 @@ This is the certified version of the Open Cascade Technology (OCCT) library.")
;; File src/NCollection/NCollection_StdAllocator.hxx:
license:public-domain))))
(define-public fast-downward
(package
(name "fast-downward")
(version "23.06.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/aibasel/downward")
(commit (string-append "release-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1xrgnvbkzkdf6srbrlsnf4qrgp0f1lkk7yxf34ynna0w49l468d4"))))
(build-system cmake-build-system)
(arguments
(list
#:tests? #f ; no tests
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'fix-driver
(lambda* (#:key outputs #:allow-other-keys)
(substitute* "driver/run_components.py"
;; strip gratuitous "bin"
(("os\\.path\\.join\\((.*), \"bin\"\\)" all keep)
(string-append "os.path.join(" keep ")")))))
(add-before 'configure 'chdir
(lambda _ (chdir "src")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(dest (string-append out "/libexec/fast-downward"
"/builds/release")))
(mkdir-p dest)
(with-directory-excursion "bin"
(install-file "downward" dest)
(copy-recursively "translate"
(string-append dest "/translate"))))))
(add-after 'install 'install-driver
(lambda* (#:key outputs #:allow-other-keys)
(with-directory-excursion ".."
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin/fast-downward"))
(dest (string-append out "/libexec/fast-downward")))
(copy-recursively "driver"
(string-append dest "/driver"))
(mkdir-p (dirname bin))
(copy-file "fast-downward.py" bin)
(wrap-program bin
`("PYTHONPATH" prefix (,dest))))))))))
(inputs (list bash-minimal python))
(home-page "https://www.fast-downward.org/")
(synopsis "Domain-independant classical planning system")
(description "Fast Downward is a portfolio-based planning system that
supports the propositional fragment of PDDL2.2.")
(license license:gpl3+)))
(define-public gmsh
(package
(name "gmsh")
@ -5283,7 +5284,7 @@ package contains a library with common configuration options.")
(install-file "../AMD/Doc/License.txt"
(string-append #$output "/share/doc/"
#$name "-" #$version)))))))
(inputs (list suitesparse-config))
(propagated-inputs (list suitesparse-config))
(native-inputs (list gfortran (texlive-updmap.cfg '())))
(home-page "https://people.engr.tamu.edu/davis/suitesparse.html")
(synopsis "Sparse matrix ordering for Cholesky factorization")
@ -5317,7 +5318,7 @@ to Cholesky factorization (or for LU factorization with diagonal pivoting).")
(install-file "../BTF/Doc/License.txt"
(string-append #$output "/share/doc/"
#$name "-" #$version)))))))
(inputs (list suitesparse-config))
(propagated-inputs (list suitesparse-config))
(home-page "https://people.engr.tamu.edu/davis/suitesparse.html")
(synopsis "Library for permuting matrices into block upper triangular form")
(description "BTF (Block Triangular Form) is a C library for permuting a
@ -5359,7 +5360,7 @@ matrix into block upper triangular form.")
(install-file "../CAMD/Doc/License.txt"
(string-append #$output "/share/doc/"
#$name "-" #$version)))))))
(inputs (list suitesparse-config))
(propagated-inputs (list suitesparse-config))
(native-inputs (list (texlive-updmap.cfg '())))
(home-page "https://people.engr.tamu.edu/davis/suitesparse.html")
(synopsis "Sparse matrix ordering for Cholesky factorization with constraints")
@ -5395,7 +5396,7 @@ ordering.")
(install-file "../COLAMD/Doc/License.txt"
(string-append #$output "/share/doc/"
#$name "-" #$version)))))))
(inputs (list suitesparse-config))
(propagated-inputs (list suitesparse-config))
(home-page "https://people.engr.tamu.edu/davis/suitesparse.html")
(synopsis "Column Approximate Minimum Degree Ordering")
(description "COLAMD is library for computing a permutation vector for a
@ -5428,7 +5429,7 @@ matrix with which the LU factorization becomes sparser.")
(install-file "../CCOLAMD/Doc/License.txt"
(string-append #$output "/share/doc/"
#$name "-" #$version)))))))
(inputs (list suitesparse-config))
(propagated-inputs (list suitesparse-config))
(home-page "https://people.engr.tamu.edu/davis/suitesparse.html")
(synopsis "Column Approximate Minimum Degree Ordering with constraints")
(description "CCOLAMD is library for computing a permutation vector for a
@ -5457,9 +5458,7 @@ COLAMD which has the the option to apply constraints to the ordering.")
all
"target_link_libraries(GKlib PUBLIC"
" ${SUITESPARSE_CONFIG_LIBRARIES} m)\n")))))))))
(inputs
(modify-inputs (package-inputs gklib)
(prepend suitesparse-config)))))
(propagated-inputs (list suitesparse-config))))
(define-public metis-suitesparse
(package/inherit metis-5.2
@ -5561,8 +5560,8 @@ target_link_libraries(CHOLMOD_static PRIVATE ${METIS_LIBRARY} ${GKLIB_LIBRARY})"
suitesparse-amd
suitesparse-camd
suitesparse-ccolamd
suitesparse-colamd
suitesparse-config))
suitesparse-colamd))
(propagated-inputs (list suitesparse-config))
(native-inputs (list (texlive-updmap.cfg '())))
(home-page "https://people.engr.tamu.edu/davis/suitesparse.html")
(synopsis "Library for solving sparse symmetric positive definite linear
@ -5599,7 +5598,7 @@ and other related operations.")
"/share/doc/" #$name "-" #$version)))
(install-file "../CXSparse/Doc/License.txt" out)
(install-file "../CXSparse/Doc/lesser.txt" out)))))))
(inputs (list suitesparse-config))
(propagated-inputs (list suitesparse-config))
(home-page "https://people.engr.tamu.edu/davis/suitesparse.html")
(synopsis "Concise eXtended Sparse Matrix Package")
(description "CXSparse is a collection of sparse matrix algorithms for
@ -5655,13 +5654,14 @@ direct methods on both real and complex matrices.")
(string-append #$output "/share/doc/"
#$name "-" #$version)))))))
(inputs
(list suitesparse-amd
suitesparse-btf
suitesparse-camd
(list suitesparse-camd
suitesparse-ccolamd
suitesparse-cholmod
suitesparse-colamd
suitesparse-config))
(propagated-inputs
(list suitesparse-amd
suitesparse-btf
suitesparse-cholmod))
(native-inputs (list (texlive-updmap.cfg '())))
(home-page "https://people.engr.tamu.edu/davis/suitesparse.html")
(synopsis "Routines for solving sparse linear problems with a LU factorization")
@ -5712,9 +5712,8 @@ for real and complex matrices.")
(install-file "../LDL/Doc/License.txt"
(string-append #$output "/share/doc/"
#$name "-" #$version)))))))
(inputs
(list suitesparse-amd
suitesparse-config))
(inputs (list suitesparse-amd))
(propagated-inputs (list suitesparse-config))
(native-inputs (list (texlive-updmap.cfg '())))
(home-page "https://people.engr.tamu.edu/davis/suitesparse.html")
(synopsis "LDL' factorization method for sparse, symmetric matrices")
@ -5754,7 +5753,7 @@ code.")
"/share/doc/" #$name "-" #$version)))
(install-file "../RBio/Doc/License.txt" out)
(install-file "../RBio/Doc/gpl.txt" out)))))))
(inputs (list suitesparse-config))
(propagated-inputs (list suitesparse-config))
(home-page "https://people.engr.tamu.edu/davis/suitesparse.html")
(synopsis "Library for the Rutherford/Boeing sparse matrix format")
(description "This package provides the C library of RBio. It can be used
@ -5803,7 +5802,7 @@ for reading and writing sparse matrices in the Rutherford/Boeing format.")
(install-file "../Mongoose/Doc/License.txt"
(string-append #$output "/share/doc/"
#$name "-" #$version)))))))
(inputs (list suitesparse-config))
(propagated-inputs (list suitesparse-config))
(native-inputs
(list texlive-epstopdf
(texlive-updmap.cfg
@ -5872,12 +5871,8 @@ edge cuts using a coarsening and refinement framework.")
(install-file "../SPEX/Doc/SPEX_UserGuide.pdf"
(string-append #$output "/share/doc/"
#$name "-" #$version)))))))
(inputs
(list gmp
mpfr
suitesparse-amd
suitesparse-colamd
suitesparse-config))
(inputs (list suitesparse-amd suitesparse-colamd))
(propagated-inputs (list gmp mpfr suitesparse-config))
(native-inputs
(list (texlive-updmap.cfg
(list texlive-paralist
@ -5950,14 +5945,13 @@ LU factorization for solving unsymmetric sparse linear systems.")
(install-file "../SPQR/Doc/License.txt"
(string-append #$output "/share/doc/"
#$name "-" #$version)))))))
(inputs
(list openblas
suitesparse-amd
suitesparse-camd
suitesparse-ccolamd
suitesparse-cholmod
suitesparse-colamd
suitesparse-config))
(inputs (list openblas
suitesparse-amd
suitesparse-camd
suitesparse-ccolamd
suitesparse-colamd
suitesparse-config))
(propagated-inputs (list suitesparse-cholmod))
(native-inputs
(list (texlive-updmap.cfg
(list texlive-epsf))))
@ -6016,13 +6010,13 @@ matrices.")
#$name "-" #$version)))
(install-file "../UMFPACK/Doc/License.txt" outdir)
(install-file "../UMFPACK/Doc/gpl.txt" outdir)))))))
(inputs
(list openblas
suitesparse-amd
suitesparse-camd
suitesparse-ccolamd
suitesparse-cholmod
suitesparse-colamd
(inputs (list openblas
suitesparse-camd
suitesparse-ccolamd
suitesparse-cholmod
suitesparse-colamd))
(propagated-inputs
(list suitesparse-amd
suitesparse-config))
(native-inputs
(list (texlive-updmap.cfg
@ -6432,13 +6426,13 @@ revised simplex and the branch-and-bound methods.")
(string-replace-substring version "." "-")))))
(file-name (git-file-name "trilinos" version))
(sha256
(base32 "0fnwlhzsh85qj38cq3igbs8nm1b2jdgr2z734sapmyyzsy21mkgp"))))
(base32 "0fnwlhzsh85qj38cq3igbs8nm1b2jdgr2z734sapmyyzsy21mkgp"))
(patches
(search-patches "teuchos-remove-duplicate-using.patch"
"tpetra-remove-duplicate-using.patch"))))
(build-system cmake-build-system)
(native-inputs
(list
;; The build fails with the current gcc.
;; Use the version from when Trilinos was added.
gcc-7
gfortran
;; Trilinos's repository contains several C-shell scripts, but adding
;; tcsh to the native inputs does not result in the check phase running
@ -6563,17 +6557,17 @@ A unique design feature of Trilinos is its focus on packages.")
(define-public dealii
(package
(name "dealii")
(version "9.4.0")
(version "9.5.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/dealii/dealii/releases/"
"download/v" version "/dealii-" version ".tar.gz"))
(sha256
(base32 "0v73q6f35f2yrjihaq6vh9lma07qc4cdv75nwmc3c5yrdh07g1i3"))
(base32 "0phgcfnil4rb41xipsdbm4lxrymlqxbiccakg3pkm3a8wqsva658"))
(modules '((guix build utils)))
(snippet
;; Remove bundled boost, muparser, TBB and UMFPACK.
;; Remove bundled boost, Kokkos, muparser, TBB and UMFPACK.
#~(delete-file-recursively "bundled"))))
(build-system cmake-build-system)
(outputs '("out" "doc"))
@ -6597,6 +6591,7 @@ A unique design feature of Trilinos is its focus on packages.")
;; the requisite interpreter to its native inputs.
(list boost
hdf5
kokkos
suitesparse ; For UMFPACK.
sundials
tbb))
@ -6621,6 +6616,18 @@ A unique design feature of Trilinos is its focus on packages.")
"/examples")))
#:phases
#~(modify-phases %standard-phases
;; Without unsetting CPATH, the build fails with the following
;; error (similar to <https://bugs.gnu.org/30756>):
;;
;; /gnu/store/…-gcc-11.3.0/include/c++/math.h:30:16: fatal error: math.h: No such file or directory
;; 30 | # include_next <math.h>
;; | ^~~~~~~~
;;
;; Why does unsetting CPATH magically fix the error?
;; TODO: Properly fix this issue.
(add-after 'set-paths 'unset-cpath
(lambda _
(unsetenv "CPATH")))
(add-after 'install 'remove-build-logs
;; These build logs leak the name of the build directory by
;; storing the values of CMAKE_SOURCE_DIR and
@ -6652,7 +6659,7 @@ in finite element programs.")
scalapack)))
(propagated-inputs
(modify-inputs (package-propagated-inputs dealii)
(delete "hdf5" "sundials")
(delete "hdf5" "kokkos" "sundials")
(prepend hdf5-parallel-openmpi
openmpi
p4est-openmpi
@ -6663,7 +6670,12 @@ in finite element programs.")
(arguments
(substitute-keyword-arguments (package-arguments dealii)
((#:configure-flags flags)
#~(cons "-DDEAL_II_WITH_MPI=ON" #$flags))))
#~(cons "-DDEAL_II_WITH_MPI=ON" #$flags))
((#:phases phases #~%standard-phases)
#~(modify-phases #$phases
;; The build failure fixed by this phase does not manifest when
;; Kokkos is included via Trilinos.
(delete 'unset-cpath)))))
(synopsis "Finite element library (with MPI support)")))
(define-public flann
@ -9706,3 +9718,88 @@ user has been TensorFlow Lite, where it is used by default on the ARM CPU
architecture.")
(license license:asl2.0))))
(define-public bliss
(package
(name "bliss")
(version "0.77")
(source (origin
(method url-fetch)
(uri (string-append
"https://users.aalto.fi/~tjunttil/bliss/downloads/bliss-"
version ".zip"))
(sha256
(base32
"193jb63kdwfas2cf61xj3fgkvhb6v2mnbwwpr0jas3zk6j0bkj5c"))))
(build-system cmake-build-system)
(arguments
(list
;; There are no tests
#:tests? #f
#:configure-flags #~(list "-DUSE_GMP=ON") ; Used by igraph
#:phases
#~(modify-phases %standard-phases
;; Ensure that GMP is used, otherwise the BigNum type changes.
(add-after 'unpack 'define-use-gmp
(lambda _
(substitute* "src/bignum.hh"
(("#pragma once.*" all)
(string-append all "#define BLISS_USE_GMP")))))
;; Move headers under the bliss/ prefix. This is a Guix choice,
;; since there are no upstream installation instructions and the
;; header names are sufficiently generic to cause confusions with
;; other packages (e.g. "heap.hh").
(add-after 'define-use-gmp 'move-headers
(lambda _
(substitute* (find-files "src")
(("#include \"(.*)\"" _ path)
(string-append "#include <bliss/" path ">")))
(mkdir-p "include/bliss")
(for-each
(lambda (file)
(rename-file file
(string-append "include/bliss/" (basename file))))
(find-files "src" "\\.(h|hh)$"))
(substitute* "Doxyfile"
(("INPUT *=.*") "INPUT = bliss"))))
(add-after 'move-headers 'patch-cmake
(lambda _
(let ((port (open-file "CMakeLists.txt" "a")))
(display
(apply
string-append
;; Install the executable and the shared library.
"install(TARGETS bliss)\n"
"install(TARGETS bliss-executable)\n"
"install(DIRECTORY include/bliss DESTINATION include)\n"
"target_link_libraries(bliss PUBLIC ${GMP_LIBRARIES})\n"
;; Missing include directories.
(map
(lambda (name)
(string-append
"target_include_directories(" name " PUBLIC\n"
"${CMAKE_CURRENT_SOURCE_DIR}/include"
" ${GMP_INCLUDE_DIR})\n"))
'("bliss" "bliss_static" "bliss-executable")))
port)
(close-port port))))
(add-after 'build 'build-doc
(lambda _
(mkdir "doc")
(with-directory-excursion "doc"
(let ((srcdir (string-append "../../bliss-" #$version)))
(copy-recursively (string-append srcdir "/include/bliss")
"bliss")
(invoke "doxygen" (string-append srcdir "/Doxyfile"))))))
(add-after 'install 'install-doc
(lambda _
(copy-recursively
"doc/html" (string-append #$output "/share/doc/"
#$name "-" #$version "/html")))))))
(native-inputs (list doxygen graphviz unzip))
(propagated-inputs (list gmp))
(home-page "https://users.aalto.fi/~tjunttil/bliss/index.html")
(synopsis "Tool for computing automorphism groups and canonical labelings of graphs")
(description "@code{bliss} is a library for computing automorphism groups
+and canonical forms of graphs. It has both a command line user interface as
+well as C++ and C programming language APIs.")
(license license:lgpl3)))

View File

@ -3381,7 +3381,7 @@ Weechat communicate over the Matrix protocol.")
(define-public weechat-wee-slack
(package
(name "weechat-wee-slack")
(version "2.9.1")
(version "2.10.1")
(source
(origin
(method git-fetch)
@ -3391,7 +3391,7 @@ Weechat communicate over the Matrix protocol.")
(file-name (git-file-name name version))
(sha256
(base32
"1zhiwbljh4rgbj8i9rrcimi9v3a7g1nm7v2m2f754rnddck9343z"))))
"0ykzmn4q592ih9d6m5ks2dzbxkz3mj81sxwsn9g2vzsxj7w3p2r7"))))
(build-system python-build-system)
(arguments
`(#:phases
@ -3416,9 +3416,9 @@ Weechat communicate over the Matrix protocol.")
(when tests?
(invoke "pytest")))))))
(inputs
(list python-mock python-websocket-client))
(list python-websocket-client))
(native-inputs
(list python-pytest))
(list python-mock python-pytest))
(home-page "https://github.com/wee-slack/wee-slack")
(synopsis "Weechat Slack script")
(description "@code{weechat-wee-slack} is a WeeChat native client for
@ -3521,4 +3521,57 @@ phone numbers (get validity information, reformat them, or extract numbers from
a text snippet), using @code{libphonenumber}.")
(license license:asl2.0)))
(define-public senpai
(package
(name "senpai")
(version "0.2.0")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://git.sr.ht/~taiite/senpai")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1qw955i5f3jr42h4afr23v7wq616bcsyq68if75qdw8j1yibnpmb"))))
(build-system go-build-system)
(arguments
(list #:import-path "git.sr.ht/~taiite/senpai/cmd/senpai"
#:unpack-path "git.sr.ht/~taiite/senpai"
#:install-source? #f
#:phases
#~(modify-phases %standard-phases
(add-after 'build 'build-doc
(lambda* (#:key unpack-path #:allow-other-keys)
(invoke "make" "doc/senpai.1" "doc/senpai.5"
"-C" (string-append "src/" unpack-path))))
(add-after 'install 'install-doc
(lambda* (#:key unpack-path #:allow-other-keys)
(let ((man1 (string-append #$output "/share/man/man1"))
(man5 (string-append #$output "/share/man/man5")))
(mkdir-p man1)
(mkdir-p man5)
(install-file
(string-append "src/" unpack-path "/doc/senpai.1")
man1)
(install-file
(string-append "src/" unpack-path "/doc/senpai.5")
man5)))))))
(native-inputs (list go-git-sr-ht-emersion-go-scfg
go-github-com-delthas-go-libnp
go-github-com-delthas-go-localeinfo
go-github-com-gdamore-tcell-v2
go-github-com-mattn-go-runewidth
go-golang-org-x-net
go-golang-org-x-term
go-golang-org-x-time
go-mvdan-cc-xurls
scdoc))
(home-page "https://sr.ht/~taiite/senpai")
(synopsis "Modern terminal IRC client")
(description
"@code{senpai} is an IRC client that works best with bouncers.")
(license license:isc)))
;;; messaging.scm ends here

View File

@ -252,7 +252,7 @@ protocol.")
(let* ((out (assoc-ref outputs "out"))
(contrib (string-append out "/share/doc/mpc/contrib"))
(completion
(string-append out "/etc/bash-completion.d/")))
(string-append out "/etc/bash_completion.d/")))
(mkdir-p completion)
(rename-file (string-append contrib "/mpc-completion.bash")
(string-append completion "/mpc"))))))))
@ -622,7 +622,7 @@ mpdevil loads all tags and covers on demand.")
(define-public mympd
(package
(name "mympd")
(version "12.0.4")
(version "12.1.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -631,7 +631,7 @@ mpdevil loads all tags and covers on demand.")
(file-name (git-file-name name version))
(sha256
(base32
"06g0b7j12lrrz8mrg6wp2fxy0qm4x9z2fri05by40399z1akgsx4"))))
"0vmnfwkajgm1dmm34z0zk74j5wzlwcwk45aalfzc5pqlkcy6c4z5"))))
(build-system cmake-build-system)
(arguments
(list

View File

@ -5126,7 +5126,7 @@ studio.")
(define-public gsequencer
(package
(name "gsequencer")
(version "5.5.0")
(version "6.1.3")
(source
(origin
(method git-fetch)
@ -5135,7 +5135,7 @@ studio.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0dl3gsmpc7b4hi97qri5d5rc3ikx639r3l1dy204p6dx8pwpv2ry"))))
(base32 "1h5zw9047qmhhc6n4ny11id1h1p8322wadl7p8j65bwrz8kbfx99"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:phases
@ -5221,15 +5221,15 @@ specification and header.")
(define-public rosegarden
(package
(name "rosegarden")
(version "22.12.1")
(version "23.06")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/rosegarden/rosegarden/"
(version-major+minor version) "/"
"rosegarden-" version ".tar.bz2"))
"rosegarden-" version ".tar.xz"))
(sha256
(base32 "01ljv4rkglicvx7fd6d5chi8k6wia5d6374gf20rgi75grzs59vy"))))
(base32 "1k3j5p6lx3w6pbsh95xiyfj8g8ysmvd18v0wmx7kdb3vyj5mfd0z"))))
(build-system cmake-build-system)
(arguments
(list

View File

@ -36,14 +36,14 @@
;; yet, so we'll keep both for just a little longer.
(package
(name "ncdu")
(version "1.18.1")
(version "1.19")
(source (origin
(method url-fetch)
(uri (string-append "https://dev.yorhel.nl/download/ncdu-"
version ".tar.gz"))
(sha256
(base32
"01946cqp5z38srbpq08d75f1n0cgpfyn8h8ppbaawnnq57ms23vw"))))
"0zdidd4rhik5j0qdrdg1yh9094jlw496q07vqx90gphc30ck0dih"))))
(build-system gnu-build-system)
(inputs (list ncurses))
(synopsis "Ncurses-based disk usage analyzer")
@ -53,9 +53,7 @@ run on a remote server where you don't have an entire graphical setup, but have
to do with a simple SSH connection. ncdu aims to be fast, simple and easy to
use, and should be able to run in any minimal POSIX-like environment with
ncurses installed.")
(license (x11-style
(string-append "https://g.blicky.net/ncdu.git/plain/COPYING?id=v"
version)))
(license (x11-style "file://COPYING"))
(home-page "https://dev.yorhel.nl/ncdu")))
(define-public ncdu

View File

@ -348,7 +348,7 @@ of your system.")
;; Some programs look for libstfl.so.0.
(symlink "libstfl.so" (string-append lib "/libstfl.so.0"))))))))
(inputs (list ncurses))
(native-inputs (list swig))
(native-inputs (list ncurses swig))
(home-page "https://www.clifford.at/stfl/")
(synopsis "Structured terminal forms library")
(description "Stfl is a library which implements a curses-based widget

View File

@ -391,7 +391,7 @@ them in order to efficiently transfer a minimal amount of data.")
(build-system meson-build-system)
(outputs '("out" "doc" "gst" "tools"))
(arguments
(list #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
(list #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
#:configure-flags
#~(list (string-append "-Dbindir="
(assoc-ref %outputs "tools") "/bin")
@ -400,6 +400,16 @@ them in order to efficiently transfer a minimal amount of data.")
"-Dpycamera=disabled")
#:phases
#~(modify-phases %standard-phases
#$@(if (target-aarch64?)
;; The 'log_process' test fails on aarch64-linux with a
;; SIGinvalid error (see:
;; https://bugs.libcamera.org/show_bug.cgi?id=173).
#~((add-after 'unpack 'disable-problematic-tests
(lambda _
(substitute* "test/log/meson.build"
((".*'name': 'log_process'.*")
"")))))
#~())
(add-after 'install 'move-doc-and-gst
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -3960,7 +3970,7 @@ powerful route filtering syntax and an easy-to-use configuration interface.")
(define-public iwd
(package
(name "iwd")
(version "2.7")
(version "2.8")
(source (origin
(method git-fetch)
(uri (git-reference
@ -3969,7 +3979,7 @@ powerful route filtering syntax and an easy-to-use configuration interface.")
(file-name (git-file-name name version))
(sha256
(base32
"0xn0db37x0nrvwlw0r4w6q3yk57ijqh9zxd15wf3qqvs01hqkk2j"))))
"0bpksqyaqr624bj7zm9hi22rnp6wnjbngx4q08l7lbd0r7r93vcb"))))
(build-system gnu-build-system)
(inputs
(list dbus ell (package-source ell) readline))
@ -4014,7 +4024,7 @@ powerful route filtering syntax and an easy-to-use configuration interface.")
;; Don't try to 'mkdir /var'.
(("\\$\\(MKDIR_P\\) -m 700") "true")))))))
(home-page "https://git.kernel.org/pub/scm/network/wireless/iwd.git/")
(synopsis "Internet Wireless Daemon")
(synopsis "iNet Wireless Daemon")
(description "iwd is a wireless daemon for Linux that aims to replace WPA
Supplicant. It optimizes resource utilization by not depending on any external
libraries and instead utilizing features provided by the Linux kernel to the

View File

@ -143,6 +143,17 @@ in the Mozilla clients.")
#$@(if (target-riscv64?)
#~("NSS_DISABLE_GTESTS=1")
#~())
;; Ensure we are building for the (%current-target-system).
#$@(if (%current-target-system)
#~((string-append
"OS_TEST="
(string-take #$(%current-target-system)
(string-index #$(%current-target-system) #\-)))
(string-append
"KERNEL=" (cond (#$(target-hurd?) "gnu")
(#$(target-linux?) "linux")
(else ""))))
#~())
(string-append "NSPR_INCLUDE_DIR="
(search-input-directory %build-inputs
"include/nspr"))
@ -163,6 +174,10 @@ in the Mozilla clients.")
(replace 'configure
(lambda _
(setenv "CC" #$(cc-for-target))
;; TODO: Set this unconditionally
#$@(if (%current-target-system)
#~((setenv "CCC" #$(cxx-for-target)))
#~())
;; No VSX on powerpc-linux.
#$@(if (target-ppc32?)
#~((setenv "NSS_DISABLE_CRYPTO_VSX" "1"))

View File

@ -1359,7 +1359,7 @@ libpanel, librsvg and quartz.")
(define-public unison
(package
(name "unison")
(version "2.51.2")
(version "2.53.3")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1368,52 +1368,18 @@ libpanel, librsvg and quartz.")
(file-name (git-file-name name version))
(sha256
(base32
"1bykiyc0dc5pkw8x370qkg2kygq9pq7yqzsgczd3y13b6ivm4sdq"))
(patches (search-patches "unison-fix-ocaml-4.08.patch"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ; 1.9 MiB of documentation
(native-inputs
`(("ocaml" ,ocaml-4.09)
;; For documentation
("ghostscript" ,ghostscript)
("texlive" ,(texlive-updmap.cfg))
("hevea" ,hevea)
("lynx" ,lynx)
("which" ,which)))
"05ihxk1yynw08586i06w19xab9r24h9hr6v9bknqm98qrlshm92w"))))
(build-system dune-build-system)
(propagated-inputs (list lablgtk3 zlib))
(native-inputs (list ghostscript (texlive-updmap.cfg '()) hevea lynx which))
(arguments
`(#:parallel-build? #f
#:parallel-tests? #f
#:test-target "selftest"
#:tests? #f ; Tests require writing to $HOME.
; If some $HOME is provided, they fail with the message
; "Fatal error: Skipping some tests -- remove me!"
#:phases
`(#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-before 'install 'prepare-install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(mkdir-p bin)
(setenv "HOME" out) ; forces correct INSTALLDIR in Makefile
#t)))
(add-after 'install 'install-fsmonitor
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
;; 'unison-fsmonitor' is used in "unison -repeat watch" mode.
(install-file "src/unison-fsmonitor" bin)
#t)))
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(let ((doc (string-append (assoc-ref outputs "doc")
(let ((doc (string-append (assoc-ref outputs "out")
"/share/doc/unison")))
(mkdir-p doc)
;; Remove an '\n' that prevents the doc to be generated
;; correctly with newer hevea.
(substitute* "doc/local.tex"
(("----SNIP----.*") "----SNIP----"))
;; This file needs write-permissions, because it's
;; overwritten by 'docs' during documentation generation.
(chmod "src/strings.ml" #o600)

View File

@ -5,7 +5,7 @@
;;; Copyright © 2018, 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2022, 2023 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2022 Zheng Junjie <873216071@qq.com>
;;;
;;; This file is part of GNU Guix.
@ -64,7 +64,17 @@
"src/getnetconfig.c"
"tirpc/netconfig.h")
(("/etc/netconfig") (string-append (assoc-ref outputs "out")
"/etc/netconfig"))))))))
"/etc/netconfig")))))
,@(if (%current-target-system)
`((add-after 'unpack 'adjust-pkg-config
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "libtirpc.pc.in"
(("-ltirpc")
(string-append "-ltirpc"
" -L" (dirname (search-input-file
inputs "/lib/libkrb5.so"))
" -lkrb5"))))))
`()))))
(native-inputs (list mit-krb5)) ;; for cross-compilation
(inputs (list mit-krb5))
(home-page "https://sourceforge.net/projects/libtirpc/")

View File

@ -1510,8 +1510,8 @@ environments.")
"0k9zkdyyzir3fvlbcfcqy17k28b51i20rpbjwlx2i1mwd2pw9cxc")))))))
(define-public guix-build-coordinator
(let ((commit "9c42dcb726fc925606b12695e195ae1dc7e28cc3")
(revision "89"))
(let ((commit "34463558e589aa260b15e53422652a37848aec95")
(revision "90"))
(package
(name "guix-build-coordinator")
(version (git-version "0" revision commit))
@ -1522,7 +1522,7 @@ environments.")
(commit commit)))
(sha256
(base32
"18m368rgmaiscmr1jlz77qkfw5fp4m8szgh90l6wbi9w68yfmr4n"))
"0fhy0l9js38byxwwb72qnjm358ai3k654jdnhwdcgk25pdsdzcpr"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments

View File

@ -1,34 +0,0 @@
https://git.kernel.org/pub/scm/network/connman/connman.git/patch/?id=d1a5ede5d255bde8ef707f8441b997563b9312bd
From d1a5ede5d255bde8ef707f8441b997563b9312bd Mon Sep 17 00:00:00 2001
From: Nathan Crandall <ncrandall@tesla.com>
Date: Tue, 12 Jul 2022 08:56:34 +0200
Subject: gweb: Fix OOB write in received_data()
There is a mismatch of handling binary vs. C-string data with memchr
and strlen, resulting in pos, count, and bytes_read to become out of
sync and result in a heap overflow. Instead, do not treat the buffer
as an ASCII C-string. We calculate the count based on the return value
of memchr, instead of strlen.
Fixes: CVE-2022-32292
---
gweb/gweb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gweb/gweb.c b/gweb/gweb.c
index 12fcb1d8..13c6c5f2 100644
--- a/gweb/gweb.c
+++ b/gweb/gweb.c
@@ -918,7 +918,7 @@ static gboolean received_data(GIOChannel *channel, GIOCondition cond,
}
*pos = '\0';
- count = strlen((char *) ptr);
+ count = pos - ptr;
if (count > 0 && ptr[count - 1] == '\r') {
ptr[--count] = '\0';
bytes_read--;
--
cgit

View File

@ -1,140 +0,0 @@
https://git.kernel.org/pub/scm/network/connman/connman.git/patch/?id=72343929836de80727a27d6744c869dff045757c
From 72343929836de80727a27d6744c869dff045757c Mon Sep 17 00:00:00 2001
From: Daniel Wagner <wagi@monom.org>
Date: Tue, 5 Jul 2022 08:32:12 +0200
Subject: wispr: Add reference counter to portal context
Track the connman_wispr_portal_context live time via a
refcounter. This only adds the infrastructure to do proper reference
counting.
Fixes: CVE-2022-32293
---
src/wispr.c | 52 ++++++++++++++++++++++++++++++++++++++++++----------
1 file changed, 42 insertions(+), 10 deletions(-)
diff --git a/src/wispr.c b/src/wispr.c
index a07896ca..bde7e63b 100644
--- a/src/wispr.c
+++ b/src/wispr.c
@@ -56,6 +56,7 @@ struct wispr_route {
};
struct connman_wispr_portal_context {
+ int refcount;
struct connman_service *service;
enum connman_ipconfig_type type;
struct connman_wispr_portal *wispr_portal;
@@ -97,6 +98,11 @@ static char *online_check_ipv4_url = NULL;
static char *online_check_ipv6_url = NULL;
static bool enable_online_to_ready_transition = false;
+#define wispr_portal_context_ref(wp_context) \
+ wispr_portal_context_ref_debug(wp_context, __FILE__, __LINE__, __func__)
+#define wispr_portal_context_unref(wp_context) \
+ wispr_portal_context_unref_debug(wp_context, __FILE__, __LINE__, __func__)
+
static void connman_wispr_message_init(struct connman_wispr_message *msg)
{
DBG("");
@@ -162,9 +168,6 @@ static void free_connman_wispr_portal_context(
{
DBG("context %p", wp_context);
- if (!wp_context)
- return;
-
if (wp_context->wispr_portal) {
if (wp_context->wispr_portal->ipv4_context == wp_context)
wp_context->wispr_portal->ipv4_context = NULL;
@@ -201,9 +204,38 @@ static void free_connman_wispr_portal_context(
g_free(wp_context);
}
+static struct connman_wispr_portal_context *
+wispr_portal_context_ref_debug(struct connman_wispr_portal_context *wp_context,
+ const char *file, int line, const char *caller)
+{
+ DBG("%p ref %d by %s:%d:%s()", wp_context,
+ wp_context->refcount + 1, file, line, caller);
+
+ __sync_fetch_and_add(&wp_context->refcount, 1);
+
+ return wp_context;
+}
+
+static void wispr_portal_context_unref_debug(
+ struct connman_wispr_portal_context *wp_context,
+ const char *file, int line, const char *caller)
+{
+ if (!wp_context)
+ return;
+
+ DBG("%p ref %d by %s:%d:%s()", wp_context,
+ wp_context->refcount - 1, file, line, caller);
+
+ if (__sync_fetch_and_sub(&wp_context->refcount, 1) != 1)
+ return;
+
+ free_connman_wispr_portal_context(wp_context);
+}
+
static struct connman_wispr_portal_context *create_wispr_portal_context(void)
{
- return g_try_new0(struct connman_wispr_portal_context, 1);
+ return wispr_portal_context_ref(
+ g_new0(struct connman_wispr_portal_context, 1));
}
static void free_connman_wispr_portal(gpointer data)
@@ -215,8 +247,8 @@ static void free_connman_wispr_portal(gpointer data)
if (!wispr_portal)
return;
- free_connman_wispr_portal_context(wispr_portal->ipv4_context);
- free_connman_wispr_portal_context(wispr_portal->ipv6_context);
+ wispr_portal_context_unref(wispr_portal->ipv4_context);
+ wispr_portal_context_unref(wispr_portal->ipv6_context);
g_free(wispr_portal);
}
@@ -452,7 +484,7 @@ static void portal_manage_status(GWebResult *result,
connman_info("Client-Timezone: %s", str);
if (!enable_online_to_ready_transition)
- free_connman_wispr_portal_context(wp_context);
+ wispr_portal_context_unref(wp_context);
__connman_service_ipconfig_indicate_state(service,
CONNMAN_SERVICE_STATE_ONLINE, type);
@@ -616,7 +648,7 @@ static void wispr_portal_request_wispr_login(struct connman_service *service,
return;
}
- free_connman_wispr_portal_context(wp_context);
+ wispr_portal_context_unref(wp_context);
return;
}
@@ -952,7 +984,7 @@ static int wispr_portal_detect(struct connman_wispr_portal_context *wp_context)
if (wp_context->token == 0) {
err = -EINVAL;
- free_connman_wispr_portal_context(wp_context);
+ wispr_portal_context_unref(wp_context);
}
} else if (wp_context->timeout == 0) {
wp_context->timeout = g_idle_add(no_proxy_callback, wp_context);
@@ -1001,7 +1033,7 @@ int __connman_wispr_start(struct connman_service *service,
/* If there is already an existing context, we wipe it */
if (wp_context)
- free_connman_wispr_portal_context(wp_context);
+ wispr_portal_context_unref(wp_context);
wp_context = create_wispr_portal_context();
if (!wp_context)
--
cgit

View File

@ -1,173 +0,0 @@
https://git.kernel.org/pub/scm/network/connman/connman.git/patch/?id=416bfaff988882c553c672e5bfc2d4f648d29e8a
From 416bfaff988882c553c672e5bfc2d4f648d29e8a Mon Sep 17 00:00:00 2001
From: Daniel Wagner <wagi@monom.org>
Date: Tue, 5 Jul 2022 09:11:09 +0200
Subject: wispr: Update portal context references
Maintain proper portal context references to avoid UAF.
Fixes: CVE-2022-32293
---
src/wispr.c | 34 ++++++++++++++++++++++------------
1 file changed, 22 insertions(+), 12 deletions(-)
diff --git a/src/wispr.c b/src/wispr.c
index bde7e63b..84bed33f 100644
--- a/src/wispr.c
+++ b/src/wispr.c
@@ -105,8 +105,6 @@ static bool enable_online_to_ready_transition = false;
static void connman_wispr_message_init(struct connman_wispr_message *msg)
{
- DBG("");
-
msg->has_error = false;
msg->current_element = NULL;
@@ -166,8 +164,6 @@ static void free_wispr_routes(struct connman_wispr_portal_context *wp_context)
static void free_connman_wispr_portal_context(
struct connman_wispr_portal_context *wp_context)
{
- DBG("context %p", wp_context);
-
if (wp_context->wispr_portal) {
if (wp_context->wispr_portal->ipv4_context == wp_context)
wp_context->wispr_portal->ipv4_context = NULL;
@@ -483,9 +479,6 @@ static void portal_manage_status(GWebResult *result,
&str))
connman_info("Client-Timezone: %s", str);
- if (!enable_online_to_ready_transition)
- wispr_portal_context_unref(wp_context);
-
__connman_service_ipconfig_indicate_state(service,
CONNMAN_SERVICE_STATE_ONLINE, type);
@@ -546,14 +539,17 @@ static void wispr_portal_request_portal(
{
DBG("");
+ wispr_portal_context_ref(wp_context);
wp_context->request_id = g_web_request_get(wp_context->web,
wp_context->status_url,
wispr_portal_web_result,
wispr_route_request,
wp_context);
- if (wp_context->request_id == 0)
+ if (wp_context->request_id == 0) {
wispr_portal_error(wp_context);
+ wispr_portal_context_unref(wp_context);
+ }
}
static bool wispr_input(const guint8 **data, gsize *length,
@@ -618,13 +614,15 @@ static void wispr_portal_browser_reply_cb(struct connman_service *service,
return;
if (!authentication_done) {
- wispr_portal_error(wp_context);
free_wispr_routes(wp_context);
+ wispr_portal_error(wp_context);
+ wispr_portal_context_unref(wp_context);
return;
}
/* Restarting the test */
__connman_service_wispr_start(service, wp_context->type);
+ wispr_portal_context_unref(wp_context);
}
static void wispr_portal_request_wispr_login(struct connman_service *service,
@@ -700,11 +698,13 @@ static bool wispr_manage_message(GWebResult *result,
wp_context->wispr_result = CONNMAN_WISPR_RESULT_LOGIN;
+ wispr_portal_context_ref(wp_context);
if (__connman_agent_request_login_input(wp_context->service,
wispr_portal_request_wispr_login,
- wp_context) != -EINPROGRESS)
+ wp_context) != -EINPROGRESS) {
wispr_portal_error(wp_context);
- else
+ wispr_portal_context_unref(wp_context);
+ } else
return true;
break;
@@ -753,6 +753,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data)
if (length > 0) {
g_web_parser_feed_data(wp_context->wispr_parser,
chunk, length);
+ wispr_portal_context_unref(wp_context);
return true;
}
@@ -770,6 +771,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data)
switch (status) {
case 000:
+ wispr_portal_context_ref(wp_context);
__connman_agent_request_browser(wp_context->service,
wispr_portal_browser_reply_cb,
wp_context->status_url, wp_context);
@@ -781,11 +783,14 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data)
if (g_web_result_get_header(result, "X-ConnMan-Status",
&str)) {
portal_manage_status(result, wp_context);
+ wispr_portal_context_unref(wp_context);
return false;
- } else
+ } else {
+ wispr_portal_context_ref(wp_context);
__connman_agent_request_browser(wp_context->service,
wispr_portal_browser_reply_cb,
wp_context->redirect_url, wp_context);
+ }
break;
case 300:
@@ -798,6 +803,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data)
!g_web_result_get_header(result, "Location",
&redirect)) {
+ wispr_portal_context_ref(wp_context);
__connman_agent_request_browser(wp_context->service,
wispr_portal_browser_reply_cb,
wp_context->status_url, wp_context);
@@ -808,6 +814,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data)
wp_context->redirect_url = g_strdup(redirect);
+ wispr_portal_context_ref(wp_context);
wp_context->request_id = g_web_request_get(wp_context->web,
redirect, wispr_portal_web_result,
wispr_route_request, wp_context);
@@ -820,6 +827,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data)
break;
case 505:
+ wispr_portal_context_ref(wp_context);
__connman_agent_request_browser(wp_context->service,
wispr_portal_browser_reply_cb,
wp_context->status_url, wp_context);
@@ -832,6 +840,7 @@ static bool wispr_portal_web_result(GWebResult *result, gpointer user_data)
wp_context->request_id = 0;
done:
wp_context->wispr_msg.message_type = -1;
+ wispr_portal_context_unref(wp_context);
return false;
}
@@ -890,6 +899,7 @@ static void proxy_callback(const char *proxy, void *user_data)
xml_wispr_parser_callback, wp_context);
wispr_portal_request_portal(wp_context);
+ wispr_portal_context_unref(wp_context);
}
static gboolean no_proxy_callback(gpointer user_data)
--
cgit

View File

@ -0,0 +1,140 @@
From: Tobias Geerinckx-Rice <me@tobias.gr>
Date: Sun Sep 24 02:00:00 2023 +0200
Subject: connman: Add missing libppp-compat.h.
This file was taken verbatim from upstream commit
a48864a2e5d2a725dfc6eef567108bc13b43857f. Its absence was since
fixed in upstream commit 09c1bbfd55647b18b5bbbb99ef2b6d902465ca16.
---
diff -Naur a/scripts/libppp-compat.h b/scripts/libppp-compat.h
--- a/scripts/libppp-compat.h 1970-01-01 01:00:00.000000000 +0100
+++ b/scripts/libppp-compat.h 2023-09-29 00:45:18.726709659 +0200
@@ -0,0 +1,127 @@
+/* Copyright (C) Eivind Naess, eivnaes@yahoo.com */
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+#ifndef __LIBPPP_COMPAT_H__
+#define __LIBPPP_COMPAT_H__
+
+/* Define USE_EAPTLS compile with EAP TLS support against older pppd headers,
+ * pppd >= 2.5.0 use PPP_WITH_EAPTLS and is defined in pppdconf.h */
+#define USE_EAPTLS 1
+
+/* Define INET6 to compile with IPv6 support against older pppd headers,
+ * pppd >= 2.5.0 use PPP_WITH_IPV6CP and is defined in pppdconf.h */
+#define INET6 1
+
+/* PPP < 2.5.0 defines and exports VERSION which overlaps with current package VERSION define.
+ * this silly macro magic is to work around that. */
+#undef VERSION
+#include <pppd/pppd.h>
+
+#ifndef PPPD_VERSION
+#define PPPD_VERSION VERSION
+#endif
+
+#include <pppd/fsm.h>
+#include <pppd/ccp.h>
+#include <pppd/eui64.h>
+#include <pppd/ipcp.h>
+#include <pppd/ipv6cp.h>
+#include <pppd/eap.h>
+#include <pppd/upap.h>
+
+#ifdef HAVE_PPPD_CHAP_H
+#include <pppd/chap.h>
+#endif
+
+#ifdef HAVE_PPPD_CHAP_NEW_H
+#include <pppd/chap-new.h>
+#endif
+
+#ifdef HAVE_PPPD_CHAP_MS_H
+#include <pppd/chap_ms.h>
+#endif
+
+#ifndef PPP_PROTO_CHAP
+#define PPP_PROTO_CHAP 0xc223
+#endif
+
+#ifndef PPP_PROTO_EAP
+#define PPP_PROTO_EAP 0xc227
+#endif
+
+
+#if WITH_PPP_VERSION < PPP_VERSION(2,5,0)
+
+static inline bool
+debug_on (void)
+{
+ return debug;
+}
+
+static inline const char
+*ppp_ipparam (void)
+{
+ return ipparam;
+}
+
+static inline int
+ppp_ifunit (void)
+{
+ return ifunit;
+}
+
+static inline const char *
+ppp_ifname (void)
+{
+ return ifname;
+}
+
+static inline int
+ppp_get_mtu (int idx)
+{
+ return netif_get_mtu(idx);
+}
+
+typedef enum ppp_notify
+{
+ NF_PID_CHANGE,
+ NF_PHASE_CHANGE,
+ NF_EXIT,
+ NF_SIGNALED,
+ NF_IP_UP,
+ NF_IP_DOWN,
+ NF_IPV6_UP,
+ NF_IPV6_DOWN,
+ NF_AUTH_UP,
+ NF_LINK_DOWN,
+ NF_FORK,
+ NF_MAX_NOTIFY
+} ppp_notify_t;
+
+typedef void (ppp_notify_fn) (void *ctx, int arg);
+
+static inline void
+ppp_add_notify (ppp_notify_t type, ppp_notify_fn *func, void *ctx)
+{
+ struct notifier **list[NF_MAX_NOTIFY] = {
+ [NF_PID_CHANGE ] = &pidchange,
+ [NF_PHASE_CHANGE] = &phasechange,
+ [NF_EXIT ] = &exitnotify,
+ [NF_SIGNALED ] = &sigreceived,
+ [NF_IP_UP ] = &ip_up_notifier,
+ [NF_IP_DOWN ] = &ip_down_notifier,
+ [NF_IPV6_UP ] = &ipv6_up_notifier,
+ [NF_IPV6_DOWN ] = &ipv6_down_notifier,
+ [NF_AUTH_UP ] = &auth_up_notifier,
+ [NF_LINK_DOWN ] = &link_down_notifier,
+ [NF_FORK ] = &fork_notifier,
+ };
+
+ struct notifier **notify = list[type];
+ if (notify) {
+ add_notifier(notify, func, ctx);
+ }
+}
+
+#endif /* #if WITH_PPP_VERSION < PPP_VERSION(2,5,0) */
+#endif /* #if__LIBPPP_COMPAT_H__ */

View File

@ -43,17 +43,17 @@ index 704e75c..bb3f9b0 100755
int idx = comboLangs->findText(t.currentLanguage(), Qt::MatchExactly);
diff --git a/src/mainwindowimpl.cpp b/src/mainwindowimpl.cpp
index 2b6d68d..83a365f 100755
index 6562e35..d19bc28 100755
--- a/src/mainwindowimpl.cpp
+++ b/src/mainwindowimpl.cpp
@@ -164,7 +164,6 @@ void MainWindowImpl::createActions()
@@ -163,7 +163,6 @@ void MainWindowImpl::createActions()
connect(actionInfo, SIGNAL(triggered()), this, SLOT(about()));
connect(actionDonatePaypal, SIGNAL(triggered()), this, SLOT(openPaypalLink()));
connect(actionReportBug, SIGNAL(triggered()), this, SLOT(bugReport()));
- connect(actionCheckForUpdates, SIGNAL(triggered()), this, SLOT(checkForUpdates()));
}
connect(actionHelp, SIGNAL(triggered()), this, SLOT(onlineHelp()));
void MainWindowImpl::setupMenu()
// Create first toolbar button
diff --git a/ui/dialogoptions.ui b/ui/dialogoptions.ui
index e59148d..6cb23f5 100755
--- a/ui/dialogoptions.ui
@ -82,18 +82,18 @@ index e59148d..6cb23f5 100755
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
diff --git a/ui/mainwindow.ui b/ui/mainwindow.ui
index a5f55f0..28df8cc 100755
index 569565f..b86fc2e 100755
--- a/ui/mainwindow.ui
+++ b/ui/mainwindow.ui
@@ -190,7 +190,6 @@
</property>
@@ -356,7 +356,6 @@
<addaction name="separator"/>
<addaction name="actionDonatePaypal"/>
<addaction name="separator"/>
- <addaction name="actionCheckForUpdates"/>
<addaction name="actionReportBug"/>
<addaction name="separator"/>
</widget>
@@ -1365,14 +1364,6 @@ p, li { white-space: pre-wrap; }
<addaction name="actionInfo"/>
@@ -1412,14 +1411,6 @@ p, li { white-space: pre-wrap; }
<string>Import windows icon (*.ico *.icon)</string>
</property>
</action>
@ -105,6 +105,6 @@ index a5f55f0..28df8cc 100755
- <string>Check if a new version of Converseen is available</string>
- </property>
- </action>
</widget>
<customwidgets>
<customwidget>
<action name="actionAddDirectory">
<property name="icon">
<iconset resource="../resources.qrc">

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,18 @@
Submitted upstream: https://github.com/benblazak/ergodox-firmware/pull/100
diff --git a/src/lib/key-functions/public/special.c b/src/lib/key-functions/public/special.c
index 42aba45..6488137 100644
--- a/src/lib/key-functions/public/special.c
+++ b/src/lib/key-functions/public/special.c
@@ -102,9 +102,9 @@ void kbfun_2_keys_capslock_press_release(void) {
static uint8_t numpad_layer_id;
static inline void numpad_toggle_numlock(void) {
- _kbfun_press_release(true, KEY_LockingNumLock);
+ _kbfun_press_release(true, KEYPAD_NumLock_Clear);
usb_keyboard_send();
- _kbfun_press_release(false, KEY_LockingNumLock);
+ _kbfun_press_release(false, KEYPAD_NumLock_Clear);
usb_keyboard_send();
}

View File

@ -0,0 +1,160 @@
From 1056e5b4c3f2d90ed2b4a55f96add28da2f4c8fa Mon Sep 17 00:00:00 2001
From: Siddhesh Poyarekar <siddhesh@sourceware.org>
Date: Tue, 19 Sep 2023 18:39:32 -0400
Subject: [PATCH 1/1] tunables: Terminate if end of input is reached
(CVE-2023-4911)
The string parsing routine may end up writing beyond bounds of tunestr
if the input tunable string is malformed, of the form name=name=val.
This gets processed twice, first as name=name=val and next as name=val,
resulting in tunestr being name=name=val:name=val, thus overflowing
tunestr.
Terminate the parsing loop at the first instance itself so that tunestr
does not overflow.
This also fixes up tst-env-setuid-tunables to actually handle failures
correct and add new tests to validate the fix for this CVE.
Signed-off-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
---
Backported to 2.35 by Liliana Marie Prikler <liliana.prikler@gmail.com>
NEWS | 5 +++++
elf/dl-tunables.c | 17 +++++++++-------
elf/tst-env-setuid-tunables.c | 37 +++++++++++++++++++++++++++--------
3 files changed, 44 insertions(+), 15 deletions(-)
Index: glibc-2.35/NEWS
===================================================================
--- glibc-2.35.orig/NEWS
+++ glibc-2.35/NEWS
@@ -199,6 +199,11 @@ Security related changes:
corresponds to the / directory through an unprivileged mount
namespace. Reported by Qualys.
+ CVE-2023-4911: If a tunable of the form NAME=NAME=VAL is passed in the
+ environment of a setuid program and NAME is valid, it may result in a
+ buffer overflow, which could be exploited to achieve escalated
+ privileges. This flaw was introduced in glibc 2.34.
+
The following bugs are resolved with this release:
[12889] nptl: Race condition in pthread_kill
Index: glibc-2.35/elf/dl-tunables.c
===================================================================
--- glibc-2.35.orig/elf/dl-tunables.c
+++ glibc-2.35/elf/dl-tunables.c
@@ -187,11 +187,7 @@ parse_tunables (char *tunestr, char *val
/* If we reach the end of the string before getting a valid name-value
pair, bail out. */
if (p[len] == '\0')
- {
- if (__libc_enable_secure)
- tunestr[off] = '\0';
- return;
- }
+ break;
/* We did not find a valid name-value pair before encountering the
colon. */
@@ -251,9 +247,16 @@ parse_tunables (char *tunestr, char *val
}
}
- if (p[len] != '\0')
- p += len + 1;
+ /* We reached the end while processing the tunable string. */
+ if (p[len] == '\0')
+ break;
+
+ p += len + 1;
}
+
+ /* Terminate tunestr before we leave. */
+ if (__libc_enable_secure)
+ tunestr[off] = '\0';
}
#endif
Index: glibc-2.35/elf/tst-env-setuid-tunables.c
===================================================================
--- glibc-2.35.orig/elf/tst-env-setuid-tunables.c
+++ glibc-2.35/elf/tst-env-setuid-tunables.c
@@ -52,6 +52,8 @@ const char *teststrings[] =
"glibc.malloc.perturb=0x800:not_valid.malloc.check=2:glibc.malloc.mmap_threshold=4096",
"glibc.not_valid.check=2:glibc.malloc.mmap_threshold=4096",
"not_valid.malloc.check=2:glibc.malloc.mmap_threshold=4096",
+ "glibc.malloc.mmap_threshold=glibc.malloc.mmap_threshold=4096",
+ "glibc.malloc.check=2",
"glibc.malloc.garbage=2:glibc.maoc.mmap_threshold=4096:glibc.malloc.check=2",
"glibc.malloc.check=4:glibc.malloc.garbage=2:glibc.maoc.mmap_threshold=4096",
":glibc.malloc.garbage=2:glibc.malloc.check=1",
@@ -70,6 +72,8 @@ const char *resultstrings[] =
"glibc.malloc.perturb=0x800:glibc.malloc.mmap_threshold=4096",
"glibc.malloc.mmap_threshold=4096",
"glibc.malloc.mmap_threshold=4096",
+ "glibc.malloc.mmap_threshold=glibc.malloc.mmap_threshold=4096",
+ "",
"",
"",
"",
@@ -89,6 +93,8 @@ test_child (int off)
if (val != NULL)
printf ("[%d] Unexpected GLIBC_TUNABLES VALUE %s\n", off, val);
+ else
+ printf ("[%d] GLIBC_TUNABLES environment variable absent\n", off);
return 1;
#else
@@ -117,21 +123,26 @@ do_test (int argc, char **argv)
if (ret != 0)
exit (1);
- exit (EXIT_SUCCESS);
+ /* Special return code to make sure that the child executed all the way
+ through. */
+ exit (42);
}
else
{
- int ret = 0;
-
/* Spawn tests. */
for (int i = 0; i < array_length (teststrings); i++)
{
char buf[INT_BUFSIZE_BOUND (int)];
- printf ("Spawned test for %s (%d)\n", teststrings[i], i);
+ printf ("[%d] Spawned test for %s\n", i, teststrings[i]);
snprintf (buf, sizeof (buf), "%d\n", i);
+ fflush (stdout);
if (setenv ("GLIBC_TUNABLES", teststrings[i], 1) != 0)
- exit (1);
+ {
+ printf (" [%d] Failed to set GLIBC_TUNABLES: %m", i);
+ support_record_failure ();
+ continue;
+ }
int status = support_capture_subprogram_self_sgid (buf);
@@ -139,9 +150,14 @@ do_test (int argc, char **argv)
if (WEXITSTATUS (status) == EXIT_UNSUPPORTED)
return EXIT_UNSUPPORTED;
- ret |= status;
+ if (WEXITSTATUS (status) != 42)
+ {
+ printf (" [%d] child failed with status %d\n", i,
+ WEXITSTATUS (status));
+ support_record_failure ();
+ }
}
- return ret;
+ return 0;
}
}

View File

@ -0,0 +1,21 @@
See comment in gnu/build/icecat-extension.scm.
--- a/toolkit/mozapps/extensions/internal/XPIDatabase.jsm
+++ b/toolkit/mozapps/extensions/internal/XPIDatabase.jsm
@@ -3452,6 +3452,7 @@ const XPIDatabaseReconcile = {
if (
newAddon ||
oldAddon.updateDate != xpiState.mtime ||
+ oldAddon.path != xpiState.path ||
(aUpdateCompatibility && this.isAppBundledLocation(installLocation))
) {
newAddon = this.updateMetadata(
@@ -3460,8 +3461,6 @@ const XPIDatabaseReconcile = {
xpiState,
newAddon
);
- } else if (oldAddon.path != xpiState.path) {
- newAddon = this.updatePath(installLocation, oldAddon, xpiState);
} else if (aUpdateCompatibility || aSchemaChange) {
newAddon = this.updateCompatibility(
installLocation,

View File

@ -0,0 +1,36 @@
Replace "/usr/lib/mozilla" (the system-wide directory for extensions and
native manifests) with "$ICECAT_SYSTEM_DIR".
--- a/toolkit/xre/nsXREDirProvider.cpp
+++ b/toolkit/xre/nsXREDirProvider.cpp
@@ -293,24 +293,12 @@ nsresult nsXREDirProvider::GetBackgroundTasksProfilesRootDir(
static nsresult GetSystemParentDirectory(nsIFile** aFile) {
nsresult rv;
nsCOMPtr<nsIFile> localDir;
-# if defined(XP_MACOSX)
- rv = GetOSXFolderType(kOnSystemDisk, kApplicationSupportFolderType,
- getter_AddRefs(localDir));
- if (NS_SUCCEEDED(rv)) {
- rv = localDir->AppendNative("Mozilla"_ns);
- }
-# else
- constexpr auto dirname =
-# ifdef HAVE_USR_LIB64_DIR
- "/usr/lib64/mozilla"_ns
-# elif defined(__OpenBSD__) || defined(__FreeBSD__)
- "/usr/local/lib/mozilla"_ns
-# else
- "/usr/lib/mozilla"_ns
-# endif
- ;
- rv = NS_NewNativeLocalFile(dirname, false, getter_AddRefs(localDir));
-# endif
+
+ const char* systemParentDir = getenv("ICECAT_SYSTEM_DIR");
+ if (!systemParentDir || !*systemParentDir) return NS_ERROR_FAILURE;
+
+ rv = NS_NewNativeLocalFile(nsDependentCString(systemParentDir), false,
+ getter_AddRefs(localDir));
if (NS_SUCCEEDED(rv)) {
localDir.forget(aFile);

View File

@ -0,0 +1,15 @@
Submitted upstream: https://github.com/qmk/qmk_firmware/pull/22102
diff --git a/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c
index bd4fd10ad1..5ce5f5298f 100644
--- a/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c
+++ b/keyboards/ergodox_ez/keymaps/hacker_dvorak/user/layer_set_state_user.c
@@ -4,7 +4,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
switch (layer) {
case DVORAK:
- rgblight_sethsv_noeeprom(GREEN);
+ rgblight_sethsv_noeeprom(HSV_GREEN);
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
if (PLOVER_MODE) {

View File

@ -0,0 +1,39 @@
Use $TZDIR to search for time-zone data. Thus avoid depending on package
"tzdata", which often introduces changes with near-immediate effects, so it's
important to be able to update it fast.
Based on a patch fron NixOS.
===================================================================
--- qtbase-opensource-src-5.14.2.orig/src/corelib/time/qtimezoneprivate_tz.cpp
+++ qtbase-opensource-src-5.15.2/src/corelib/time/qtimezoneprivate_tz.cpp
@@ -70,7 +70,11 @@
// Parse zone.tab table, assume lists all installed zones, if not will need to read directories
static QTzTimeZoneHash loadTzTimeZones()
{
- QString path = QStringLiteral("/usr/share/zoneinfo/zone.tab");
+ // Try TZDIR first, in case we're running on GuixSD.
+ QString path = QFile::decodeName(qgetenv("TZDIR")) + QStringLiteral("/zone.tab");
+ // Fallback to traditional paths in case we are not on GuixSD.
+ if (!QFile::exists(path))
+ path = QStringLiteral("/usr/share/zoneinfo/zone.tab");
if (!QFile::exists(path))
path = QStringLiteral("/usr/lib/zoneinfo/zone.tab");
@@ -645,6 +649,9 @@
if (!tzif.open(QIODevice::ReadOnly))
return;
} else {
+ // Try TZDIR first, in case we're running on GuixSD.
+ tzif.setFileName(QFile::decodeName(qgetenv("TZDIR")) + QStringLiteral("/") + QString::fromLocal8Bit(ianaId));
+ if (!tzif.open(QIODevice::ReadOnly)) {
// Open named tz, try modern path first, if fails try legacy path
tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId));
if (!tzif.open(QIODevice::ReadOnly)) {
@@ -652,6 +659,7 @@
if (!tzif.open(QIODevice::ReadOnly))
return;
}
+ }
}
QDataStream ds(&tzif);

Some files were not shown because too many files have changed in this diff Show More