Merge branch 'master' into core-updates

This commit is contained in:
Jakub Kądziołka 2020-06-22 02:56:22 +02:00
commit 43bc785511
No known key found for this signature in database
GPG key ID: E315A75846131564
121 changed files with 4847 additions and 1306 deletions

View file

@ -99,6 +99,7 @@
(eval . (put 'eventually 'scheme-indent-function 1))
(eval . (put 'call-with-progress-reporter 'scheme-indent-function 1))
(eval . (put 'with-repository 'scheme-indent-function 2))
(eval . (put 'with-temporary-git-repository 'scheme-indent-function 2))
(eval . (put 'with-environment-variables 'scheme-indent-function 1))
(eval . (put 'with-fresh-gnupg-setup 'scheme-indent-function 1))

View file

@ -2,4 +2,6 @@
(channel
(version 0)
(news-file "etc/news.scm"))
(news-file "etc/news.scm")
(keyring-reference "keyring")
(url "https://git.savannah.gnu.org/git/guix.git")) ;the primary URL

View file

@ -477,6 +477,7 @@ SH_TESTS = \
tests/guix-environment-container.sh \
tests/guix-graph.sh \
tests/guix-describe.sh \
tests/guix-repl.sh \
tests/guix-lint.sh
TESTS = $(SCM_TESTS) $(SH_TESTS)

View file

@ -218,6 +218,17 @@ (define %historical-authorized-signing-keys
(string-downcase (string-filter char-set:graphic fingerprint)))))
%historical-committers))
(define %use-historical-authorizations?
;; Whether to allow authentication of past commits using
;; %HISTORICAL-AUTHORIZED-SIGNING-KEYS for when '.guix-authorizations' was
;; missing.
(getenv "GUIX_USE_HISTORICAL_AUTHORIZATIONS"))
(define %introductory-commit
;; This is the commit that appears in the official 'guix' channel
;; introduction. XXX: Keep in sync with (guix channels)!
"9edb3f66fd807b096b48283debdcddccfea34bad")
(define %commits-with-bad-signature
;; Commits with a known-bad signature.
'("6a34f4ccc8a5d4a48e25ad3c9c512f8634928b91")) ;2016-12-29
@ -242,7 +253,10 @@ (define repository
(match args
((_ start end)
(define start-commit
(commit-lookup repository (string->oid start)))
(commit-lookup repository
(string->oid (if %use-historical-authorizations?
start
%introductory-commit))))
(define end-commit
(commit-lookup repository (string->oid end)))
@ -252,7 +266,7 @@ (define authenticated-commits
(filter-map (lambda (id)
(false-if-exception
(commit-lookup repository (string->oid id))))
(previously-authenticated-commits)))
(previously-authenticated-commits "channels/guix")))
(define commits
;; Commits to authenticate, excluding the closure of
@ -263,6 +277,14 @@ (define commits
(define reporter
(progress-reporter/bar (length commits)))
(define historical-authorizations
;; List of authorizations in effect before '.guix-authorizations' was
;; introduced. By default, assume there were no authorizations; this
;; is what 'guix pull' does.
(if %use-historical-authorizations?
%historical-authorized-signing-keys
'()))
(format #t (G_ "Authenticating ~a to ~a (~a commits)...~%")
(commit-short-id start-commit)
(commit-short-id end-commit)
@ -272,9 +294,10 @@ (define reporter
(lambda (report)
(authenticate-commits repository commits
#:default-authorizations
%historical-authorized-signing-keys
historical-authorizations
#:report-progress report)))))
(cache-authenticated-commit (oid->string (commit-id end-commit)))
(cache-authenticated-commit "channels/guix"
(oid->string (commit-id end-commit)))
(unless (null? stats)
(format #t (G_ "Signing statistics:~%"))

View file

@ -301,6 +301,7 @@ AC_CONFIG_FILES([Makefile
etc/guix-daemon.cil
guix/config.scm])
AC_CONFIG_FILES([etc/committer.scm], [chmod +x etc/committer.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

@ -67,21 +67,6 @@ gpg: using RSA key 3CE464558A84FDC69DB40CFB090B11993D9AEBB5
@code{3CE464558A84FDC69DB40CFB090B11993D9AEBB5} (you may need to fetch
this key from a key server, if you have not done it yet).
From there on, you can authenticate all the commits included in your
checkout by running:
@example
make authenticate
@end example
The first run takes a couple of minutes, but subsequent runs are faster.
@quotation Note
You are advised to run @command{make authenticate} after every
@command{git pull} invocation. This ensures you keep receiving valid
changes to the repository
@end quotation
The easiest way to set up a development environment for Guix is, of
course, by using Guix! The following command starts a new shell where
all the dependencies and appropriate environment variables are set up to
@ -146,6 +131,21 @@ Finally, you have to invoke @code{make check} to run tests
fails, take a look at installation instructions (@pxref{Installation})
or send a message to the @email{guix-devel@@gnu.org, mailing list}.
From there on, you can authenticate all the commits included in your
checkout by running:
@example
make authenticate
@end example
The first run takes a couple of minutes, but subsequent runs are faster.
@quotation Note
You are advised to run @command{make authenticate} after every
@command{git pull} invocation. This ensures you keep receiving valid
changes to the repository.
@end quotation
@node Running Guix Before It Is Installed
@section Running Guix Before It Is Installed
@ -991,16 +991,16 @@ rebuilding induced, commits go to different branches, along these lines:
@item 300 dependent packages or less
@code{master} branch (non-disruptive changes).
@item between 300 and 1,200 dependent packages
@item between 300 and 1,800 dependent packages
@code{staging} branch (non-disruptive changes). This branch is intended
to be merged in @code{master} every 3 weeks or so. Topical changes
to be merged in @code{master} every 6 weeks or so. Topical changes
(e.g., an update of the GNOME stack) can instead go to a specific branch
(say, @code{gnome-updates}).
@item more than 1,200 dependent packages
@item more than 1,800 dependent packages
@code{core-updates} branch (may include major and potentially disruptive
changes). This branch is intended to be merged in @code{master} every
2.5 months or so.
6 months or so.
@end table
All these branches are @uref{@value{SUBSTITUTE-SERVER},
@ -1128,18 +1128,20 @@ browse issues:
@itemize
@item
@url{https://issues.guix.gnu.org} provides a pleasant
interface@footnote{The web interface at
@url{https://issues.guix.gnu.org} is powered by Mumi, a nice piece of
software written in Guile, and you can help! See
@url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.} to browse
bug reports and patches, and to participate in discussions;
@item
@url{https://bugs.gnu.org/guix} lists bug reports;
@item
@url{https://bugs.gnu.org/guix-patches} lists patch submissions.
@end itemize
You can also access both of these @i{via} the (nicer)
@url{https://issues.guix.gnu.org} interface@footnote{The web interface
at @url{https://issues.guix.gnu.org} is powered by Mumi, a nice piece of
software written in Guile, and you can help! See
@url{https://git.elephly.net/gitweb.cgi?p=software/mumi.git}.}. To view
discussions related to issue number @var{n}, go to
@indicateurl{https://issues.guix.gnu.org/issue/@var{n}} or
To view discussions related to issue number @var{n}, go to
@indicateurl{https://issues.guix.gnu.org/@var{n}} or
@indicateurl{https://bugs.gnu.org/@var{n}}.
If you use Emacs, you may find it more convenient to interact with

View file

@ -239,7 +239,7 @@ Programming Interface
* Derivations:: Low-level interface to package derivations.
* The Store Monad:: Purely functional interface to the store.
* G-Expressions:: Manipulating build expressions.
* Invoking guix repl:: Fiddling with Guix interactively.
* Invoking guix repl:: Programming Guix in Guile
Defining Packages
@ -3721,13 +3721,17 @@ this option is primarily useful when the daemon was running with
@cindex updating Guix
@cindex @command{guix pull}
@cindex pull
@cindex security, @command{guix pull}
@cindex authenticity, of code obtained with @command{guix pull}
Packages are installed or upgraded to the latest version available in
the distribution currently available on your local machine. To update
that distribution, along with the Guix tools, you must run @command{guix
pull}: the command downloads the latest Guix source code and package
descriptions, and deploys it. Source code is downloaded from a
@uref{https://git-scm.com, Git} repository, by default the official
GNU@tie{}Guix repository, though this can be customized.
GNU@tie{}Guix repository, though this can be customized. @command{guix
pull} ensures that the code it downloads is @emph{authentic} by
verifying that commits are signed by Guix developers.
Specifically, @command{guix pull} downloads code from the @dfn{channels}
(@pxref{Channels}) specified by one of the followings, in this order:
@ -3925,14 +3929,25 @@ Make sure you understand its security implications before using
@option{--allow-downgrades}.
@end quotation
@item --disable-authentication
Allow pulling channel code without authenticating it.
@cindex authentication, of channel code
By default, @command{guix pull} authenticates code downloaded from
channels by verifying that its commits are signed by authorized
developers, and raises an error if this is not the case. This option
instructs it to not perform any such verification.
@quotation Note
Make sure you understand its security implications before using
@option{--disable-authentication}.
@end quotation
@item --system=@var{system}
@itemx -s @var{system}
Attempt to build for @var{system}---e.g., @code{i686-linux}---instead of
the system type of the build host.
@item --verbose
Produce verbose output, writing build logs to the standard error output.
@item --bootstrap
Use the bootstrap Guile to build the latest Guix. This option is only
useful to Guix developers.
@ -4135,6 +4150,28 @@ add a meta-data file @file{.guix-channel} that contains:
(directory "guix"))
@end lisp
@cindex primary URL, channels
@subsection Primary URL
Channel authors can indicate the primary URL of their channel's Git
repository in the @file{.guix-channel} file, like so:
@lisp
(channel
(version 0)
(url "https://example.org/guix.git"))
@end lisp
This allows @command{guix pull} to determine whether it is pulling code
from a mirror of the channel; when that is the case, it warns the user
that the mirror might be stale and displays the primary URL. That way,
users cannot be tricked into fetching code from a stale mirror that does
not receive security updates.
This feature only makes sense for authenticated repositories, such as
the official @code{guix} channel, for which @command{guix pull} ensures
the code it fetches is authentic.
@cindex news, for channels
@subsection Writing Channel News
@ -5345,7 +5382,8 @@ configuration triplets,, autoconf, Autoconf}).
@item --compression=@var{tool}
@itemx -C @var{tool}
Compress the resulting tarball using @var{tool}---one of @code{gzip},
@code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no compression.
@code{zstd}, @code{bzip2}, @code{xz}, @code{lzip}, or @code{none} for no
compression.
@item --symlink=@var{spec}
@itemx -S @var{spec}
@ -5474,7 +5512,7 @@ package definitions.
* Derivations:: Low-level interface to package derivations.
* The Store Monad:: Purely functional interface to the store.
* G-Expressions:: Manipulating build expressions.
* Invoking guix repl:: Fiddling with Guix interactively.
* Invoking guix repl:: Programming Guix in Guile
@end menu
@node Package Modules
@ -8248,12 +8286,47 @@ has an associated gexp compiler, such as a @code{<package>}.
@node Invoking guix repl
@section Invoking @command{guix repl}
@cindex REPL, read-eval-print loop
The @command{guix repl} command spawns a Guile @dfn{read-eval-print loop}
(REPL) for interactive programming (@pxref{Using Guile Interactively,,, guile,
GNU Guile Reference Manual}). Compared to just launching the @command{guile}
@cindex REPL, read-eval-print loop, script
The @command{guix repl} command makes it easier to program Guix in Guile
by launching a Guile @dfn{read-eval-print loop} (REPL) for interactive
programming (@pxref{Using Guile Interactively,,, guile,
GNU Guile Reference Manual}), or by running Guile scripts
(@pxref{Running Guile Scripts,,, guile,
GNU Guile Reference Manual}).
Compared to just launching the @command{guile}
command, @command{guix repl} guarantees that all the Guix modules and all its
dependencies are available in the search path. You can use it this way:
dependencies are available in the search path.
The general syntax is:
@example
guix repl @var{options} [@var{file} @var{args}]
@end example
When a @var{file} argument is provided, @var{file} is
executed as a Guile scripts:
@example
guix repl my-script.scm
@end example
To pass arguments to the script, use @code{--} to prevent them from
being interpreted as arguments to @command{guix repl} itself:
@example
guix repl -- my-script.scm --input=foo.txt
@end example
To make a script executable directly from the shell, using the guix
executable that is on the user's search path, add the following two
lines at the top of the script:
@example
@code{#!/usr/bin/env -S guix repl --}
@code{!#}
@end example
Without a file name argument, a Guile REPL is started:
@example
$ guix repl
@ -8302,7 +8375,7 @@ Add @var{directory} to the front of the package module search path
(@pxref{Package Modules}).
This allows users to define their own packages and make them visible to
the command-line tool.
the script or REPL.
@item -q
Inhibit loading of the @file{~/.guile} file. By default, that
@ -24594,6 +24667,107 @@ Return true if @var{obj} is a platform object.
Return the name of @var{platform}---a string such as @code{"arm"}.
@end deffn
@subsubheading The Hurd in a Virtual Machine
@cindex @code{hurd}
@cindex the Hurd
Service @code{hurd-vm} provides support for running GNU/Hurd in a
virtual machine (VM), a so-called ``Childhurd''. The virtual machine is
a Shepherd service that can be referred to by the names @code{hurd-vm}
and @code{childhurd} and be controlled with commands such as:
@example
herd start hurd-vm
herd stop childhurd
@end example
The given GNU/Hurd operating system configuration is cross-compiled.
@defvr {Scheme Variable} hurd-vm-service-type
This is the type of the Hurd in a Virtual Machine service. Its value
must be a @code{hurd-vm-configuration} object, which specifies the
operating system (@pxref{operating-system Reference}) and the disk size
for the Hurd Virtual Machine, the QEMU package to use as well as the
options for running it.
For example:
@lisp
(service hurd-vm-service-type
(hurd-vm-configuration
(disk-size (* 5000 (expt 2 20))) ;5G
(memory-size 1024))) ;1024MiB
@end lisp
would create a disk image big enough to build GNU@tie{}Hello, with some
extra memory.
@end defvr
@deftp {Data Type} hurd-vm-configuration
The data type representing the configuration for
@code{hurd-vm-service-type}.
@table @asis
@item @code{os} (default: @var{%hurd-vm-operating-system})
The operating system to instantiate. This default is bare-bones with a
permissive OpenSSH secure shell daemon listening on port 2222
(@pxref{Networking Services, @code{openssh-service-type}}).
@item @code{qemu} (default: @code{qemu-minimal})
The QEMU package to use.
@item @code{image} (default: @var{hurd-vm-disk-image})
The procedure used to build the disk-image built from this
configuration.
@item @code{disk-size} (default: @code{'guess})
The size of the disk image.
@item @code{memory-size} (default: @code{512})
The memory size of the Virtual Machine in mebibytes.
@item @code{options} (default: @code{'("--snapshot")})
The extra options for running QEMU.
@item @code{id} (default: @code{#f})
If set, a non-zero positive integer used to parameterize Childhurd
instances. It is appended to the service's name,
e.g. @code{childhurd1}.
@item @code{net-options} (default: @var{hurd-vm-net-options})
The procedure used to produce the list of QEMU networking options.
By default, it produces
@lisp
'("--device" "rtl8139,netdev=net0"
"--netdev" "user,id=net0\
,hostfwd=tcp:127.0.0.1:<ssh-port>-:2222\
,hostfwd=tcp:127.0.0.1:<vnc-port>-:5900")
@end lisp
with forwarded ports
@example
<ssh-port>: @code{(+ 10022 (* 1000 @var{ID}))}
<vnc-port>: @code{(+ 15900 (* 1000 @var{ID}))}
@end example
@end table
@end deftp
Note that by default the VM image is volatile, i.e., once stopped the
contents are lost. If you want a stateful image instead, override the
configuration's @code{image} and @code{options} without
the @code{--snapshot} flag using something along these lines:
@lisp
(service hurd-vm-service-type
(hurd-vm-configuration
(image (const "/out/of/store/writable/hurd.img"))
(options '("--hda"))))
@end lisp
@node Version Control Services
@subsection Version Control Services

250
etc/committer.scm.in Executable file
View file

@ -0,0 +1,250 @@
#!@GUILE@ \
--no-auto-compile -s
!#
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; 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/>.
;;; Commentary:
;; This script stages and commits changes to package definitions.
;;; Code:
(import (sxml xpath)
(srfi srfi-1)
(srfi srfi-9)
(ice-9 format)
(ice-9 popen)
(ice-9 match)
(ice-9 rdelim)
(ice-9 textual-ports))
(define (read-excursion port)
"Read an expression from PORT and reset the port position before returning
the expression."
(let ((start (ftell port))
(result (read port)))
(seek port start SEEK_SET)
result))
(define (surrounding-sexp port line-no)
"Return the top-level S-expression surrounding the change at line number
LINE-NO in PORT."
(let loop ((i (1- line-no))
(last-top-level-sexp #f))
(if (zero? i)
last-top-level-sexp
(match (peek-char port)
(#\(
(let ((sexp (read-excursion port)))
(read-line port)
(loop (1- i) sexp)))
(_
(read-line port)
(loop (1- i) last-top-level-sexp))))))
(define-record-type <hunk>
(make-hunk file-name
old-line-number
new-line-number
diff)
hunk?
(file-name hunk-file-name)
;; Line number before the change
(old-line-number hunk-old-line-number)
;; Line number after the change
(new-line-number hunk-new-line-number)
;; The full diff to be used with "git apply --cached"
(diff hunk-diff))
(define* (hunk->patch hunk #:optional (port (current-output-port)))
(let ((file-name (hunk-file-name hunk)))
(format port
"diff --git a/~a b/~a~%--- a/~a~%+++ b/~a~%~a"
file-name file-name file-name file-name
(hunk-diff hunk))))
(define (diff-info)
"Read the diff and return a list of <hunk> values."
(let ((port (open-pipe* OPEN_READ
"git" "diff"
"--no-prefix"
;; Do not include any context lines. This makes it
;; easier to find the S-expression surrounding the
;; change.
"--unified=0")))
(define (extract-line-number line-tag)
(abs (string->number
(car (string-split line-tag #\,)))))
(define (read-hunk)
(reverse
(let loop ((lines '()))
(let ((line (read-line port 'concat)))
(cond
((eof-object? line) lines)
((or (string-prefix? "@@ " line)
(string-prefix? "diff --git" line))
(unget-string port line)
lines)
(else (loop (cons line lines))))))))
(define info
(let loop ((acc '())
(file-name #f))
(let ((line (read-line port)))
(cond
((eof-object? line) acc)
((string-prefix? "--- " line)
(match (string-split line #\space)
((_ file-name)
(loop acc file-name))))
((string-prefix? "@@ " line)
(match (string-split line #\space)
((_ old-start new-start . _)
(loop (cons (make-hunk file-name
(extract-line-number old-start)
(extract-line-number new-start)
(string-join (cons* line "\n"
(read-hunk)) ""))
acc)
file-name))))
(else (loop acc file-name))))))
(close-pipe port)
info))
(define (old-sexp hunk)
"Using the diff information in HUNK return the unmodified S-expression
corresponding to the top-level definition containing the staged changes."
;; TODO: We can't seek with a pipe port...
(let* ((port (open-pipe* OPEN_READ
"git" "show" (string-append "HEAD:"
(hunk-file-name hunk))))
(contents (get-string-all port)))
(close-pipe port)
(call-with-input-string contents
(lambda (port)
(surrounding-sexp port (hunk-old-line-number hunk))))))
(define (new-sexp hunk)
"Using the diff information in HUNK return the modified S-expression
corresponding to the top-level definition containing the staged changes."
(call-with-input-file (hunk-file-name hunk)
(lambda (port)
(surrounding-sexp port
(hunk-new-line-number hunk)))))
(define* (commit-message file-name old new #:optional (port (current-output-port)))
"Print ChangeLog commit message for changes between OLD and NEW."
(define (get-values expr field)
(match ((sxpath `(// ,field quasiquote *)) expr)
(() '())
((first . rest)
(map cadadr first))))
(define (listify items)
(match items
((one) one)
((one two)
(string-append one " and " two))
((one two . more)
(string-append (string-join (drop-right items 1) ", ")
", and " (first (take-right items 1))))))
(define variable-name
(second old))
(define version
(and=> ((sxpath '(// version *any*)) new)
first))
(format port
"gnu: ~a: Update to ~a.~%~%* ~a (~a): Update to ~a.~%"
variable-name version file-name variable-name version)
(for-each (lambda (field)
(let ((old-values (get-values old field))
(new-values (get-values new field)))
(or (equal? old-values new-values)
(let ((removed (lset-difference eq? old-values new-values))
(added (lset-difference eq? new-values old-values)))
(format port
"[~a]: ~a~%" field
(match (list (map symbol->string removed)
(map symbol->string added))
((() added)
(format #f "Add ~a."
(listify added)))
((removed ())
(format #f "Remove ~a."
(listify removed)))
((removed added)
(format #f "Remove ~a; add ~a."
(listify removed)
(listify added)))))))))
'(inputs propagated-inputs native-inputs)))
(define (group-hunks-by-sexp hunks)
"Return a list of pairs associating all hunks with the S-expression they are
modifying."
(fold (lambda (sexp hunk acc)
(match acc
(((previous-sexp . hunks) . rest)
(if (equal? sexp previous-sexp)
(cons (cons previous-sexp
(cons hunk hunks))
rest)
(cons (cons sexp (list hunk))
acc)))
(_
(cons (cons sexp (list hunk))
acc))))
'()
(map new-sexp hunks)
hunks))
(define (new+old+hunks hunks)
(map (match-lambda
((new . hunks)
(cons* new (old-sexp (first hunks)) hunks)))
(group-hunks-by-sexp hunks)))
(define (main . args)
(match (diff-info)
(()
(display "Nothing to be done." (current-error-port)))
(hunks
(for-each (match-lambda
((new old . hunks)
(for-each (lambda (hunk)
(let ((port (open-pipe* OPEN_WRITE
"git" "apply"
"--cached"
"--unidiff-zero")))
(hunk->patch hunk port)
(unless (eqv? 0 (status:exit-val (close-pipe port)))
(error "Cannot apply")))
(sleep 1))
hunks)
(commit-message (hunk-file-name (first hunks))
old new
(current-output-port))
(let ((port (open-pipe* OPEN_WRITE "git" "commit" "-F" "-")))
(commit-message (hunk-file-name (first hunks))
old new
port)
(sleep 1)
(unless (eqv? 0 (status:exit-val (close-pipe port)))
(error "Cannot commit")))))
(new+old+hunks hunks)))))
(main)

View file

@ -13,6 +13,80 @@
(channel-news
(version 0)
(entry (commit "43badf261f4688c8a7a7a9004a4bff8acb205835")
(title (en "@command{guix pull} authenticates channels")
(de "@command{guix pull} authentifiziert Kanäle")
(fr "@command{guix pull} authentifie les canaux"))
(body
(en "The @command{guix pull} and @command{guix time-machine} commands
now authenticate the source code that they pull, unless the new
@option{--disable-authentication} option is passed. What this means is that
Guix ensures that each commit received is cryptographically signed by an
authorized developer. This protects you from attempts to tamper with the Guix
repository and from attempts to ship malicious code to users.
This feature is currently limited to the @code{guix} channel but will soon be
available to third-party channel authors.")
(de "Die Befehle @command{guix pull} und @command{guix time-machine}
prüfen nun die Authentizität des heruntergeladenen Quellcodes, außer wenn die
neue Befehlszeilenoption @option{--disable-authentication} angegeben
wurde. Das bedeutet, Guix stellt sicher, dass jeder empfangene Commit durch
einen autorisierten Entwickler kryptografisch signiert wurde. Das schützt Sie
vor Versuchen, das Guix-Repository zu manipulieren oder bösartigen Code an die
Nutzer auszuliefern.
Diese Funktionalität ist auf den @code{guix}-Kanal beschränkt, sie wird jedoch
bald auch Autoren dritter Kanäle zur Verfügung stehen.")
(fr "Les commandes @command{guix pull} et @command{guix time-machine}
authentifient dorénavant le code source qu'elles obtiennent, à moins que la
nouvelle option @option{--disable-authentication} soit utilisée. Cela
signifie que Guix s'assure que chaque soumission (@i{commit}) récupéré dispose
d'une signature cryptographique par un·e développeur·euse autorisé·e. Cela te
protège de tentatives de modifications du dépôt Guix et de tentatives de
livrer du code malintentionné.
Cette fonctionnalité n'est actuellement disponible que pour le canal
@code{guix} mais le sera bientôt pour les canaux tiers.")))
(entry (commit "c924e541390f9595d819edc33c19d979917c15ec")
(title (en "@command{guix repl} adds support for running Guile scripts")
(de "@command{guix repl} kann Guile-Skripte ausführen")
(fr "@command{guix repl} permet d'exécuter des scripts en langage Guile"))
(body
(en "The @command{guix repl} command can now be used to run
Guile scripts. Compared to just launching the @command{guile} command,
@command{guix repl} guarantees that all the Guix modules and all its
dependencies are available in the search path. Scripts are run like this:
@example
guix repl -- my-script,scm --option1 --option2=option-arg arg1 arg2
@end example
Run @command{info \"(guix) Invoking guix repl\"} for more information.")
(de "Der Befehl @command{guix repl} kann jetzt zur Ausführung von
Guile-Skripten verwendet werden. Im Vergleich zum Befehl
@command{guile} garantiert @command{guix repl}, dass alle Guix-Module und
alle seine Abhängigkeiten im Suchpfad verfügbar sind. Skripte werden wie
folgt ausgeführt:
@example
guix repl -- my-script,scm --option1 --option2 --option2=option-arg arg1 arg2
@end example
Weitere Informationen erhalten Sie mit
@command{info \"(guix.de) Aufruf von guix repl\"}.")
(fr "La commande @command{guix repl} peut maintenant être utilisée
pour exécuter des scripts en langage Guile. Par rapport au simple lancement
de la commande @command{guile}, @command{guix repl} garantit que tous les
modules Guix et toutes ses dépendances sont disponibles dans le chemin
de recherche. Les scripts sont exécutés comme ceci :
@example
guix repl -- my-script,scm --option1 --option2=option-arg arg1 arg2
@end example
Exécutez @command{info \"(guix.fr) Invoquer guix repl\"} pour plus d'informations.")))
(entry (commit "b460ba7992a0b4af2ddb5927dcf062784539ef7b")
(title (en "Add support to boot from a Btrfs subvolume")
(de "Unterstützung für Systemstart von einem

View file

@ -80,16 +80,8 @@ (define (scope dir)
(string-append root (if (string-suffix? "/" root) "" "/") dir))
(mkdir (scope "dev"))
(for-each (lambda (file)
(call-with-output-file (scope file)
(lambda (port)
(display file port) ;avoid hard-linking
(chmod port #o666))))
'("dev/null"
"dev/zero"
"dev/full"
"dev/random"
"dev/urandom"))
;; Don't create /dev/null etc just yet; the store
;; messes-up the permission bits.
;; Don't create /dev/console, /dev/vcs, etc.: they are created by
;; console-run on first boot.
@ -115,6 +107,143 @@ (define (scope dir)
;; settings?
)
(define (passive-translator-xattr? file-name)
"Return true if FILE-NAME has an extended @code{gnu.translator} attribute
set."
(catch 'system-error
(lambda _ (not (string-null? (getxattr file-name "gnu.translator"))))
(lambda args
(if (= ENODATA (system-error-errno args))
#f
(apply throw args)))))
(define (passive-translator-installed? file-name)
"Return true if @file{showtrans} finds a translator installed on FILE-NAME."
(with-output-to-port (%make-void-port "w")
(lambda _
(with-error-to-port (%make-void-port "w")
(lambda _
(zero? (system* "showtrans" "--silent" file-name)))))))
(define (translated? file-name)
"Return true if a translator is installed on FILE-NAME."
(if (string-contains %host-type "linux-gnu")
(passive-translator-xattr? file-name)
(passive-translator-installed? file-name)))
(define* (set-translator file-name command #:optional (mode #o600))
"Setup translator COMMAND on FILE-NAME."
(unless (translated? file-name)
(let ((dir (dirname file-name)))
(unless (directory-exists? dir)
(mkdir-p dir))
(unless (file-exists? file-name)
(call-with-output-file file-name
(lambda (port)
(display file-name port) ;avoid hard-linking
(chmod port mode)))))
(catch 'system-error
(lambda _
(setxattr file-name "gnu.translator" (string-join command "\0" 'suffix)))
(lambda (key . args)
(let ((errno (system-error-errno (cons key args))))
(format (current-error-port) "~a: ~a\n"
(strerror errno) file-name)
(format (current-error-port) "Ignoring...Good Luck!\n"))))))
(define-syntax-rule (false-if-EEXIST exp)
"Evaluate EXP but return #f if it raises to 'system-error with EEXIST."
(catch 'system-error
(lambda () exp)
(lambda args
(if (= EEXIST (system-error-errno args))
#f
(apply throw args)))))
(define* (set-hurd-device-translators #:optional (root "/"))
"Make some of the device nodes needed on GNU/Hurd."
(define (scope dir)
(string-append root (if (string-suffix? "/" root) "" "/") dir))
(define scope-set-translator
(match-lambda
((file-name command)
(scope-set-translator (list file-name command #o600)))
((file-name command mode)
(let ((mount-point (scope file-name)))
(set-translator mount-point command mode)))))
(define (mkdir* dir)
(let ((dir (scope dir)))
(unless (file-exists? dir)
(mkdir-p dir))))
(define servers
'(("servers/crash-dump-core" ("/hurd/crash" "--dump-core"))
("servers/crash-kill" ("/hurd/crash" "--kill"))
("servers/crash-suspend" ("/hurd/crash" "--suspend"))
("servers/password" ("/hurd/password"))
("servers/socket/1" ("/hurd/pflocal"))
("servers/socket/2" ("/hurd/pfinet"
"--interface" "eth0"
"--address"
"10.0.2.15" ;the default QEMU guest IP
"--netmask" "255.255.255.0"
"--gateway" "10.0.2.2"
"--ipv6" "/servers/socket/16"))))
(define devices
'(("dev/full" ("/hurd/null" "--full") #o666)
("dev/null" ("/hurd/null") #o666)
("dev/random" ("/hurd/random" "--seed-file" "/var/lib/random-seed")
#o644)
("dev/zero" ("/hurd/storeio" "--store-type=zero") #o666)
("dev/console" ("/hurd/term" "/dev/console" "device" "console"))
("dev/klog" ("/hurd/streamio" "kmsg"))
("dev/mem" ("/hurd/storeio" "--no-cache" "mem") #o660)
("dev/shm" ("/hurd/tmpfs" "--mode=1777" "50%") #o644)
("dev/time" ("/hurd/storeio" "--no-cache" "time") #o644)
("dev/vcs" ("/hurd/console"))
("dev/tty" ("/hurd/magic" "tty") #o666)
("dev/tty1" ("/hurd/term" "/dev/tty1" "hurdio" "/dev/vcs/1/console")
#o666)
("dev/tty2" ("/hurd/term" "/dev/tty2" "hurdio" "/dev/vcs/2/console")
#o666)
("dev/tty3" ("/hurd/term" "/dev/tty3" "hurdio" "/dev/vcs/3/console")
#o666)
("dev/ptyp0" ("/hurd/term" "/dev/ptyp0" "pty-master" "/dev/ttyp0")
#o666)
("dev/ptyp1" ("/hurd/term" "/dev/ptyp1" "pty-master" "/dev/ttyp1")
#o666)
("dev/ptyp2" ("/hurd/term" "/dev/ptyp2" "pty-master" "/dev/ttyp2")
#o666)
("dev/ttyp0" ("/hurd/term" "/dev/ttyp0" "pty-slave" "/dev/ptyp0")
#o666)
("dev/ttyp1" ("/hurd/term" "/dev/ttyp1" "pty-slave" "/dev/ptyp1")
#o666)
("dev/ttyp2" ("/hurd/term" "/dev/ttyp2" "pty-slave" "/dev/ptyp2")
#o666)))
(for-each scope-set-translator servers)
(mkdir* (scope "dev/vcs/1"))
(mkdir* (scope "dev/vcs/2"))
(mkdir* (scope "dev/vcs/2"))
(rename-file (scope "/dev/console") (scope "/dev/console-"))
(for-each scope-set-translator devices)
(false-if-EEXIST (symlink "/dev/random" (scope "dev/urandom")))
(mkdir* (scope "dev/fd"))
(false-if-EEXIST (symlink "/dev/fd/0" (scope "dev/stdin")))
(false-if-EEXIST (symlink "/dev/fd/1" (scope "dev/stdout")))
(false-if-EEXIST (symlink "/dev/fd/2" (scope "dev/stderr"))))
(define* (boot-hurd-system #:key (on-error 'debug))
"This procedure is meant to be called from an early RC script.
@ -126,20 +255,9 @@ (define* (boot-hurd-system #:key (on-error 'debug))
XXX TODO: see linux-boot.scm:boot-system.
XXX TODO: add proper file-system checking, mounting
XXX TODO: move bits to (new?) (hurd?) (activation?) services
XXX TODO: use settrans/setxattr instead of MAKEDEV
XXX TODO: use Linux xattr/setxattr to remove (settrans in) /libexec/RUNSYSTEM
"
(define translators
'(("/servers/crash-dump-core" ("/hurd/crash" "--dump-core"))
("/servers/crash-kill" ("/hurd/crash" "--kill"))
("/servers/crash-suspend" ("/hurd/crash" "--suspend"))
("/servers/password" ("/hurd/password"))
("/servers/socket/1" ("/hurd/pflocal"))
("/servers/socket/2" ("/hurd/pfinet" "--interface" "eth0"
"--address" "10.0.2.15" ;the default QEMU guest IP
"--netmask" "255.255.255.0"
"--gateway" "10.0.2.2"
"--ipv6" "/servers/socket/16"))))
(display "Welcome, this is GNU's early boot Guile.\n")
(display "Use '--repl' for an initrd REPL.\n\n")
@ -147,35 +265,13 @@ (define translators
(call-with-error-handling
(lambda ()
(define (translated? node)
;; Return true if a translator is installed on NODE.
(with-output-to-port (%make-void-port "w")
(lambda ()
(with-error-to-port (%make-void-port "w")
(lambda ()
(zero? (system* "showtrans" "--silent" node)))))))
(let* ((args (command-line))
(system (find-long-option "--system" args))
(to-load (find-long-option "--load" args)))
(format #t "Creating essential servers...\n")
(setenv "PATH" (string-append system "/profile/bin"
":" system "/profile/sbin"))
(for-each (match-lambda
((node command)
(unless (translated? node)
(mkdir-p (dirname node))
(apply invoke "settrans" "--create" node command))))
translators)
(format #t "Creating essential device nodes...\n")
(with-directory-excursion "/dev"
(invoke "MAKEDEV" "--devdir=/dev" "std")
(invoke "MAKEDEV" "--devdir=/dev" "vcs")
(invoke "MAKEDEV" "--devdir=/dev" "tty1""tty2" "tty3" "tty4" "tty5" "tty6")
(invoke "MAKEDEV" "--devdir=/dev" "ptyp0" "ptyp1" "ptyp2")
(invoke "MAKEDEV" "--devdir=/dev" "console"))
(format #t "Setting-up essential translators...\n")
(setenv "PATH" (string-append system "/profile/bin"))
(set-hurd-device-translators)
(false-if-exception (delete-file "/hurd"))
(let ((hurd/hurd (readlink* (string-append system "/profile/hurd"))))

View file

@ -137,12 +137,13 @@ (define* (register-closure prefix closure
true, reset timestamps on store files and, if DEDUPLICATE? is true,
deduplicates files common to CLOSURE and the rest of PREFIX."
(let ((items (call-with-input-file closure read-reference-graph)))
(register-items items
#:prefix prefix
#:deduplicate? deduplicate?
#:reset-timestamps? reset-timestamps?
#:registration-time %epoch
#:schema schema)))
(parameterize ((sql-schema schema))
(with-database (store-database-file #:prefix prefix) db
(register-items db items
#:prefix prefix
#:deduplicate? deduplicate?
#:reset-timestamps? reset-timestamps?
#:registration-time %epoch)))))
(define* (initialize-efi-partition root
#:key

View file

@ -223,12 +223,13 @@ (define* (register-closure prefix closure
true, reset timestamps on store files and, if DEDUPLICATE? is true,
deduplicates files common to CLOSURE and the rest of PREFIX."
(let ((items (call-with-input-file closure read-reference-graph)))
(register-items items
#:prefix prefix
#:deduplicate? deduplicate?
#:reset-timestamps? reset-timestamps?
#:registration-time %epoch
#:schema schema)))
(parameterize ((sql-schema schema))
(with-database (store-database-file #:prefix prefix) db
(register-items db items
#:prefix prefix
#:deduplicate? deduplicate?
#:reset-timestamps? reset-timestamps?
#:registration-time %epoch)))))
;;;

View file

@ -137,12 +137,6 @@ (define (umount-cow-store)
"Remove the store overlay and the bind-mount on /tmp created by the
cow-store service. This procedure is very fragile and a better approach would
be much appreciated."
;; Remove when integrated in (gnu services herd).
(define (restart-service name)
(with-shepherd-action name ('restart) result
result))
(catch #t
(lambda ()
(let ((tmp-dir "/remove"))

View file

@ -25,6 +25,7 @@ (define-module (gnu installer newt final)
#:use-module (gnu installer newt page)
#:use-module (gnu installer newt utils)
#:use-module (guix i18n)
#:use-module (guix colors)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:use-module (ice-9 match)
@ -101,6 +102,13 @@ (define* (run-install-shell locale
#:key (users '()))
(clear-screen)
(newt-suspend)
;; XXX: Force loading 'bold' font files before mouting the
;; cow-store. Otherwise, if the file is loaded by kmscon after the cow-store
;; in mounted, it will be necessary to kill kmscon to umount to cow-store.
(display
(colorize-string
(format #f (G_ "Installing Guix System ...~%"))
(color BOLD)))
(let ((install-ok? (install-system locale #:users users)))
(newt-resume)
install-ok?))

View file

@ -35,6 +35,7 @@
# Copyright © 2020 Ryan Prior <rprior@protonmail.com>
# Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
# Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
# Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
#
# This file is part of GNU Guix.
#
@ -133,6 +134,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/compton.scm \
%D%/packages/conky.scm \
%D%/packages/connman.scm \
%D%/packages/convmv.scm \
%D%/packages/cook.scm \
%D%/packages/coq.scm \
%D%/packages/cpio.scm \
@ -891,6 +893,7 @@ dist_patch_DATA = \
%D%/packages/patches/emacs-fix-scheme-indent-function.patch \
%D%/packages/patches/emacs-json-reformat-fix-tests.patch \
%D%/packages/patches/emacs-highlight-stages-add-gexp.patch \
%D%/packages/patches/emacs-hyperbole-toggle-messaging.patch \
%D%/packages/patches/emacs-libgit-use-system-libgit2.patch \
%D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \
%D%/packages/patches/emacs-source-date-epoch.patch \
@ -917,7 +920,6 @@ dist_patch_DATA = \
%D%/packages/patches/fasthenry-spSolve.patch \
%D%/packages/patches/fasthenry-spFactor.patch \
%D%/packages/patches/fbreader-curl-7.62.patch \
%D%/packages/patches/ffmpeg-prefer-dav1d.patch \
%D%/packages/patches/fifengine-swig-compat.patch \
%D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \
%D%/packages/patches/fifo-map-remove-catch.hpp.patch \
@ -1103,6 +1105,7 @@ dist_patch_DATA = \
%D%/packages/patches/inetutils-hurd.patch \
%D%/packages/patches/inkscape-poppler-0.76.patch \
%D%/packages/patches/intltool-perl-compatibility.patch \
%D%/packages/patches/iputils-libcap-compat.patch \
%D%/packages/patches/irrlicht-use-system-libs.patch \
%D%/packages/patches/isl-0.11.1-aarch64-support.patch \
%D%/packages/patches/jacal-fix-texinfo.patch \
@ -1160,8 +1163,7 @@ dist_patch_DATA = \
%D%/packages/patches/leela-zero-gtest.patch \
%D%/packages/patches/less-hurd-path-max.patch \
%D%/packages/patches/lib2geom-enable-assertions.patch \
%D%/packages/patches/lib2geom-link-tests-against-glib.patch \
%D%/packages/patches/lib2geom-use-system-googletest.patch \
%D%/packages/patches/lib2geom-fix-tests.patch \
%D%/packages/patches/liba52-enable-pic.patch \
%D%/packages/patches/liba52-link-with-libm.patch \
%D%/packages/patches/liba52-set-soname.patch \
@ -1425,6 +1427,7 @@ dist_patch_DATA = \
%D%/packages/patches/python-flint-includes.patch \
%D%/packages/patches/python-jedi-sort-project-test.patch \
%D%/packages/patches/python-libxml2-utf8.patch \
%D%/packages/patches/python-memcached-syntax-warnings.patch \
%D%/packages/patches/python-mox3-python3.6-compat.patch \
%D%/packages/patches/python-testtools.patch \
%D%/packages/patches/python-packaging-test-arch.patch \
@ -1449,6 +1452,7 @@ dist_patch_DATA = \
%D%/packages/patches/qtbase-use-TZDIR.patch \
%D%/packages/patches/qtscript-disable-tests.patch \
%D%/packages/patches/quagga-reproducible-build.patch \
%D%/packages/patches/quassel-qt-514-compat.patch \
%D%/packages/patches/quickswitch-fix-dmenu-check.patch \
%D%/packages/patches/qtwebkit-pbutils-include.patch \
%D%/packages/patches/randomjungle-disable-static-build.patch \
@ -1540,6 +1544,7 @@ dist_patch_DATA = \
%D%/packages/patches/ttf2eot-cstddef.patch \
%D%/packages/patches/ttfautohint-source-date-epoch.patch \
%D%/packages/patches/tomb-fix-errors-on-open.patch \
%D%/packages/patches/tup-unbundle-dependencies.patch \
%D%/packages/patches/tuxpaint-stamps-path.patch \
%D%/packages/patches/twinkle-bcg729.patch \
%D%/packages/patches/u-boot-riscv64-fix-extlinux.patch \
@ -1605,9 +1610,6 @@ dist_patch_DATA = \
%D%/packages/patches/xf86-video-voodoo-pcitag.patch \
%D%/packages/patches/xfce4-panel-plugins.patch \
%D%/packages/patches/xfce4-settings-defaults.patch \
%D%/packages/patches/xmoto-utf8.patch \
%D%/packages/patches/xmoto-remove-glext.patch \
%D%/packages/patches/xmoto-reproducible.patch \
%D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch \
%D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch \
%D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch \

View file

@ -210,10 +210,9 @@ (define remote-exp
(use-modules (gnu build file-systems)
(gnu system uuid))
(define uuid
(string->uuid #$(uuid->string (file-system-device fs))))
(find-partition-by-uuid uuid))))
(let ((uuid (uuid #$(uuid->string (file-system-device fs))
'#$(uuid-type (file-system-device fs)))))
(find-partition-by-uuid uuid)))))
(remote-let ((result remote-exp))
(unless result

View file

@ -1364,7 +1364,7 @@ (define-public rottlog
(define-public sudo
(package
(name "sudo")
(version "1.9.0")
(version "1.9.1")
(source (origin
(method url-fetch)
(uri
@ -1374,7 +1374,7 @@ (define-public sudo
version ".tar.gz")))
(sha256
(base32
"0p7r3cl16pjwbc48ff1gbhjw51lngrghvwblxz5lxpyzqlwi88xb"))
"1zxd6hxwhxqrm876wsn9bfajbfc4hc6l9ivzj5rjg80hzv71ch99"))
(modules '((guix build utils)))
(snippet
'(begin
@ -3472,7 +3472,7 @@ (define-public inxi-minimal
(let ((real-name "inxi"))
(package
(name "inxi-minimal")
(version "3.1.01-1")
(version "3.1.03-1")
(source
(origin
(method git-fetch)
@ -3481,7 +3481,7 @@ (define-public inxi-minimal
(commit version)))
(file-name (git-file-name real-name version))
(sha256
(base32 "0r204w0r06ibdr4dck7yw2nmvj7xq68bjr7xwwiy7liqdml0n0yc"))))
(base32 "0539hvlq021wxhbwzdp7qliiq1jgw60mxlwrwx0z2x8qi1zqdzg6"))))
(build-system trivial-build-system)
(inputs
`(("bash" ,bash-minimal)

View file

@ -2344,7 +2344,29 @@ (define-public supercollider
(file-name (git-file-name name version))
(sha256
(base32
"02v911w2kdbg3kfl593lb2ig4sjbfxzv20a0vbcymhfzpvp1x6xp"))))
"02v911w2kdbg3kfl593lb2ig4sjbfxzv20a0vbcymhfzpvp1x6xp"))
(modules '((guix build utils)
(ice-9 ftw)))
(snippet
;; The build system doesn't allow us to unbundle the following
;; libraries. hidapi is also heavily patched and upstream not
;; actively maintained.
'(let ((keep-dirs '("nova-simd" "nova-tt" "hidapi"
"TLSF-2.4.6" "oscpack_1_1_0" "." "..")))
(with-directory-excursion "./external_libraries"
(for-each
delete-file-recursively
(scandir "."
(lambda (x)
(and (eq? (stat:type (stat x)) 'directory)
(not (member (basename x) keep-dirs)))))))
;; To find the Guix provided ableton-link library.
(substitute* "lang/CMakeLists.txt"
(("include\\(\\.\\./external_libraries/link/\
AbletonLinkConfig\\.cmake\\)")
"find_package(AbletonLink NAMES AbletonLink ableton-link \
link REQUIRED)"))
#t))))
(build-system cmake-build-system)
(outputs
'("out" ;core language
@ -2355,44 +2377,16 @@ (define-public supercollider
"-DFORTIFY=ON" "-DLIBSCSYNTH=ON"
"-DSC_EL=off") ;scel is packaged individually as
;emacs-scel
#:modules ((guix build utils)
(guix build cmake-build-system)
(ice-9 ftw))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'rm-bundled-libs
;; HOME must be defined otherwise supercollider throws a "ERROR:
;; Primitive '_FileMkDir' failed." error when generating the doc.
;; The graphical tests also hang without it.
(add-after 'unpack 'set-home-directory
(lambda _
;; The build system doesn't allow us to unbundle the following
;; libraries. hidapi is also heavily patched.
(let ((keep-dirs '("nova-simd" "nova-tt" "hidapi" "TLSF-2.4.6"
"oscpack_1_1_0" "." "..")))
(with-directory-excursion "./external_libraries"
(for-each
delete-file-recursively
(scandir "."
(lambda (x)
(and (eq? (stat:type (stat x)) 'directory)
(not (member (basename x) keep-dirs))))))))
(substitute* "lang/CMakeLists.txt"
(("include\\(\\.\\./external_libraries/link/AbletonLinkConfig\\.cmake\\)")
"find_package(AbletonLink NAMES AbletonLink ableton-link link REQUIRED)"))
(setenv "HOME" (getcwd))
#t))
;; Some tests are broken (see:
;; https://github.com/supercollider/supercollider/issues/3555 and
;; https://github.com/supercollider/supercollider/issues/1736
(add-after 'rm-bundled-libs 'disable-broken-tests
(lambda _
(substitute* "testsuite/server/supernova/CMakeLists.txt"
(("server_test.cpp")
"")
(("perf_counter_test.cpp")
""))
(substitute* "testsuite/CMakeLists.txt"
(("add_subdirectory\\(sclang\\)")
""))
(delete-file "testsuite/sclang/CMakeLists.txt")
#t))
(add-after 'disable-broken-tests 'patch-scclass-dir
(add-after 'unpack 'patch-scclass-dir
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(scclass-dir
@ -2404,6 +2398,11 @@ (define-public supercollider
"\\(DirName::Resource\\) / CLASS_LIB_DIR_NAME"))
(string-append "Path(\"" scclass-dir "\")")))
#t)))
(add-before 'build 'prepare-x
(lambda _
(system "Xvfb &")
(setenv "DISPLAY" ":0")
#t))
(add-before 'install 'install-ide
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -2416,7 +2415,8 @@ (define-public supercollider
(native-inputs
`(("ableton-link" ,ableton-link)
("pkg-config" ,pkg-config)
("qttools" ,qttools)))
("qttools" ,qttools)
("xorg-server" ,xorg-server-for-tests)))
(inputs
`(("jack" ,jack-1)
("libsndfile" ,libsndfile)

View file

@ -357,10 +357,7 @@ (define-public coreutils
(list (string-append "XFAIL_TESTS=tests/misc/env-S.pl"
" tests/misc/kill.sh"
" tests/misc/nice.sh"
" tests/misc/shred-passes.sh"
" tests/split/fail.sh"
" tests/split/l-chunk.sh"
" tests/dd/stats.sh"
" test-fdutimensat"
" test-futimens"
" test-linkat"
@ -380,7 +377,15 @@ (define-public coreutils
(("/bin/sh") (which "sh")))
(substitute* (find-files "tests" "\\.sh$")
(("#!/bin/sh") (string-append "#!" (which "sh"))))
#t)))))
#t))
,@(if (hurd-target?)
`((add-after 'unpack 'remove-tests
(lambda _
(substitute* "Makefile.in"
;; this test hangs
(("^ *tests/misc/timeout-group.sh.*") ""))
#t)))
'()))))
(synopsis "Core GNU utilities (file, text, shell)")
(description
"GNU Coreutils package includes all of the basic command-line tools that

View file

@ -7813,13 +7813,13 @@ (define-public r-variantannotation
(define-public r-limma
(package
(name "r-limma")
(version "3.44.1")
(version "3.44.3")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "limma" version))
(sha256
(base32
"0l6f6lz1rghj8c5s14ljbnmsrwz27fi6a7g42n15n3d3msvflw36"))))
"09fnqxx4rzq5n447aqg2l6y0idfwgz2jxz99sifxsr2q8afzbcj6"))))
(build-system r-build-system)
(home-page "http://bioinf.wehi.edu.au/limma")
(synopsis "Package for linear models for microarray and RNA-seq data")

View file

@ -2,6 +2,7 @@
;;; Copyright © 2012, 2013, 2015, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -64,6 +65,17 @@ (define-public bison
simple tools through complex programming languages.")
(license gpl3+)))
(define-public bison-3.6
(package
(inherit bison)
(version "3.6.3")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/bison/bison-" version ".tar.xz"))
(sha256
(base32 "0gdpnjh6ra9xa9vj6hzjdf0c04x4pjyy8vssm3qdb7fya4v7knq6"))))))
(define-public bison-3.0
(package
(inherit bison)

View file

@ -42,7 +42,6 @@ (define-module (gnu packages bittorrent)
#:use-module (gnu packages crypto)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages file)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
@ -50,7 +49,6 @@ (define-module (gnu packages bittorrent)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages nettle)
#:use-module (gnu packages ncurses)
@ -104,12 +102,9 @@ (define-public transmission
'("applications" "icons" "pixmaps")))
#t)))))
(inputs
`(("inotify-tools" ,inotify-tools)
("libevent" ,libevent)
`(("libevent" ,libevent)
("curl" ,curl)
("cyrus-sasl" ,cyrus-sasl)
("openssl" ,openssl)
("file" ,file)
("zlib" ,zlib)
("gtk+" ,gtk+)))
(native-inputs
@ -131,7 +126,7 @@ (define-public transmission
;; or any future license endorsed by Mnemosyne LLC.
;;
;; A few files files carry an MIT/X11 license header.
(license l:gpl3+)))
(license (list l:gpl2 l:gpl3))))
(define-public libtorrent
(package

View file

@ -10,6 +10,7 @@
;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
;;; Copyright © 2020 Yuval Kogman <nothingmuch@woobling.org>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -36,12 +37,16 @@ (define-module (gnu packages build-tools)
#:use-module (gnu packages)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages package-management)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages ninja)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python))
@ -276,6 +281,80 @@ (define-public premake5
scripted definition of a software project and outputs @file{Makefile}s or
other lower-level build files.")))
(define-public tup
(package
(name "tup")
(version "0.7.9")
(source (origin
(method url-fetch)
(uri (string-append "http://gittup.org/tup/releases/tup-v"
version ".tar.gz"))
(sha256
(base32
"0gnd2598xqgwihdkfkx7qn0q6p4n7npam1fy83mp7s04zwj99syc"))
(patches (search-patches "tup-unbundle-dependencies.patch"))
(modules '((guix build utils)))
(snippet
'(begin
;; NOTE: Tup uses a slightly modified Lua, so it cannot be
;; unbundled. See: src/lula/tup-lua.patch
(delete-file-recursively "src/pcre")
(delete-file-recursively "src/sqlite3")
#t))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
;; There is a bootstrap script, but it doesn't do what you think - it
;; builds tup.
(delete 'bootstrap)
(replace 'configure
(lambda _
(substitute* "src/tup/link.sh"
(("`git describe`") ,version))
(with-output-to-file "tup.config"
(lambda _
(format #t "CONFIG_TUP_USE_SYSTEM_SQLITE=y~%")))
#t))
(delete 'check)
(replace 'build
(lambda _
;; Based on bootstrap-nofuse.sh, but with a detour to patch-shebang.
(invoke "./build.sh")
(invoke "./build/tup" "init")
(invoke "./build/tup" "generate" "--verbose" "build-nofuse.sh")
(patch-shebang "build-nofuse.sh")
(invoke "./build-nofuse.sh")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((outdir (assoc-ref outputs "out"))
(ftdetect (string-append outdir
"/share/vim/vimfiles/ftdetect")))
(install-file "tup" (string-append outdir "/bin"))
(install-file "tup.1" (string-append outdir "/share/man/man1"))
(install-file "contrib/syntax/tup.vim"
(string-append outdir "/share/vim/vimfiles/syntax"))
(mkdir-p ftdetect)
(with-output-to-file (string-append ftdetect "/tup.vim")
(lambda _
(display "au BufNewFile,BufRead Tupfile,*.tup setf tup")))
#t))))))
(inputs
`(("fuse" ,fuse)
("pcre" ,pcre)
("pcre" ,pcre "bin") ; pcre-config
("sqlite" ,sqlite)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://gittup.org/tup/")
(synopsis "Fast build system that's hard to get wrong")
(description "Tup is a generic build system based on a directed acyclic
graphs of commands to be executed. Tup instruments your build to detect the
exact dependencies of the commands, allowing you to take advantage of ideal
parallelism during incremental builds, and detecting any situations where
a build worked by accident.")
(license license:gpl2)))
(define-public osc
(package
(name "osc")

View file

@ -13,6 +13,7 @@
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;;
;;; This file is part of GNU Guix.
;;;
@ -38,9 +39,11 @@ (define-module (gnu packages cdrom)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages bison)
#:use-module (gnu packages compression)
#:use-module (gnu packages flex)
@ -242,6 +245,54 @@ (define-public cdparanoia
reconstruction capability.")
(license gpl2))) ; libraries under lgpl2.1
(define-public cdrdao
(package
(name "cdrdao")
(version "1.2.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/cdrdao/cdrdao.git")
(commit
(string-append "rel_" (string-replace-substring version "." "_")))))
(file-name (git-file-name name version))
(sha256
(base32 "1gcl8ibyylamy2d1piq3749nw3xrlp12r0spzp2gmni57b8a6b7j"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags
(list
;; GCDMaster depends on obsolete libgnomeuimm, see
;; <https://github.com/cdrdao/cdrdao/issues/3>.
"--without-gcdmaster"
;; Use the native SCSI interface.
"--without-scglib")
#:phases
(modify-phases %standard-phases
(add-before 'bootstrap 'fix-configure.ac
(lambda _
;; Remove reference to missing macro.
(substitute* "configure.ac" (("^AM_GCONF_SOURCE_2.*") ""))
#t)))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("pkg-config" ,pkg-config)))
(inputs
`(("ao" ,ao)
("lame" ,lame)
("libmad" ,libmad)
("libvorbis" ,libvorbis)))
(home-page "http://cdrdao.sourceforge.net")
(synopsis "Read and write CDs in disk-at-once mode")
(description "cdrdao records audio or data CDs in disk-at-once (DAO) mode,
based on a textual description of the contents. This mode writes the complete
disc lead-in, one or more tracks, and lead-out in a single step and is
commonly used with audio CDs. @code{cdrdao} can also handle the bin/cue
format, commonly used for VCDs or disks with subchannel data.")
(license gpl2+)))
(define-public cdrtools
(package
(name "cdrtools")

View file

@ -47,8 +47,8 @@ (define-module (gnu packages ci)
#:use-module (guix build-system gnu))
(define-public cuirass
(let ((commit "2280ae18eb25aa7034636c58bf288c9bd5a8fa3b")
(revision "31"))
(let ((commit "3db603c1913fe14d260a44b05575a2ead3866b47")
(revision "32"))
(package
(name "cuirass")
(version (git-version "0.0.1" revision commit))
@ -60,7 +60,7 @@ (define-public cuirass
(file-name (git-file-name name version))
(sha256
(base32
"1gbmpwgiwy740d936b052gfivzw52pgrny7j7lbl56wi9wnawkc9"))))
"1q69lgngsvpvcy6ww2a75wndjzymay5xaqmbj78znqmn7ck3fv44"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build utils)

60
gnu/packages/convmv.scm Normal file
View file

@ -0,0 +1,60 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
;;;
;;; 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 convmv)
#:use-module (gnu packages)
#:use-module (gnu packages perl)
#:use-module (guix licenses)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu))
(define-public convmv
(package
(name "convmv")
(version "2.05")
(source (origin
(method url-fetch)
(uri (string-append "https://www.j3e.de/linux/convmv/convmv-"
version ".tar.gz"))
(sha256
(base32
"19hwv197p7c23f43vvav5bs19z9b72jzca2npkjsxgprwj5ardjk"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"
#:make-flags `(,(string-append "PREFIX=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'bootstrap)
(delete 'configure)
(add-before 'check 'unpack-testsuite
(lambda _
(invoke "tar" "xf" "testsuite.tar")
(patch-shebang "suite/dotests.sh")
(patch-shebang "suite/parsable_tester.pl")
#t)))))
(inputs
`(("perl" ,perl)))
(synopsis "Convert filenames between character sets")
(description
"convmv is a file renamer, that converts between different encodings,
e.g. from ISO-8859-1 to UTF-8. It is particularly usefuls for files with
names, that display incorrectly.")
(license (list gpl2 gpl3))
(home-page "https://www.j3e.de/")))

View file

@ -2131,14 +2131,14 @@ (define-public r-globaloptions
(define-public r-circlize
(package
(name "r-circlize")
(version "0.4.9")
(version "0.4.10")
(source
(origin
(method url-fetch)
(uri (cran-uri "circlize" version))
(sha256
(base32
"14944vn0n5d095mpjyag4fz8vy04m6wxb6mmyygi8q813akikm3h"))))
"1xb1jq3mg4kw1513zv1i09vhn7rj7f8vp0bnms2qml74s47wxsgk"))))
(build-system r-build-system)
(propagated-inputs
`(("r-colorspace" ,r-colorspace)
@ -3839,18 +3839,20 @@ (define-public r-venndiagram
(define-public r-vioplot
(package
(name "r-vioplot")
(version "0.3.4")
(version "0.3.5")
(source
(origin
(method url-fetch)
(uri (cran-uri "vioplot" version))
(sha256
(base32
"1fsklymilspzz5fzlj7666x09aglaw0v4x0yfjjzy4vr5qpjc529"))))
"0aiy615kn9lpr2cs757g3pklg81n01yhqh0wrwv111fn3cy86r0v"))))
(build-system r-build-system)
(propagated-inputs
`(("r-sm" ,r-sm)
("r-zoo" ,r-zoo)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(home-page "http://wsopuppenkiste.wiso.uni-goettingen.de/~dadler")
(synopsis "Violin plot")
(description
@ -6634,23 +6636,106 @@ (define-public r-officer
to help insert or delete content at a specific location in the document.")
(license license:gpl3)))
(define-public r-profilemodel
(package
(name "r-profilemodel")
(version "0.6.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "profileModel" version))
(sha256
(base32
"0yq8hy43h62hlz8bbf9ila4a3xcwizi1if27b78xc5y857ncwad8"))))
(properties `((upstream-name . "profileModel")))
(build-system r-build-system)
(home-page "https://github.com/ikosmidis/profileModel")
(synopsis "Profiling inference functions for various model classes")
(description
"This package provides tools that can be used to calculate, evaluate,
plot and use for inference the profiles of *arbitrary* inference functions for
arbitrary @code{glm}-like fitted models with linear predictors. More information
on the methods that are implemented can be found in Kosmidis (2008)
@url{https://www.r-project.org/doc/Rnews/Rnews_2008-2.pdf}.")
(license license:gpl2+)))
(define-public r-brglm
(package
(name "r-brglm")
(version "0.6.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "brglm" version))
(sha256
(base32
"0c9ngscc6zlfm90fqyggnj04qfkhp5qgf5q3wnfpxwyc8cm47by2"))))
(properties `((upstream-name . "brglm")))
(build-system r-build-system)
(propagated-inputs
`(("r-profilemodel" ,r-profilemodel)))
(home-page "https://github.com/ikosmidis/brglm")
(synopsis "Bias reduction in binomial-response generalized linear models")
(description
"Fit generalized linear models with binomial responses using either an
adjusted-score approach to bias reduction or maximum penalized likelihood
where penalization is by Jeffreys invariant prior. These procedures return
estimates with improved frequentist properties (bias, mean squared error) that
are always finite even in cases where the maximum likelihood estimates are
infinite (data separation). Fitting takes place by fitting generalized linear
models on iteratively updated pseudo-data. The interface is essentially the
same as @code{glm}. More flexibility is provided by the fact that custom
pseudo-data representations can be specified and used for model fitting.
Functions are provided for the construction of confidence intervals for the
reduced-bias estimates.")
(license license:gpl2+)))
(define-public r-entropy
(package
(name "r-entropy")
(version "1.2.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "entropy" version))
(sha256
(base32
"10vg4818q5g54pv2nn9x5i7pvky5nsv96syy47pz2mgqp1273cpd"))))
(properties `((upstream-name . "entropy")))
(build-system r-build-system)
(home-page "https://www.strimmerlab.org/software/entropy/")
(synopsis "Estimation of entropy, mutual information and related quantities")
(description
"This package implements various estimators of entropy, such as the
shrinkage estimator by Hausser and Strimmer, the maximum likelihood and the
Millow-Madow estimator, various Bayesian estimators, and the Chao-Shen
estimator. It also offers an R interface to the NSB estimator. Furthermore,
it provides functions for estimating Kullback-Leibler divergence, chi-squared,
mutual information, and chi-squared statistic of independence. In addition
there are functions for discretizing continuous random variables.")
(license license:gpl3+)))
(define-public r-abn
(package
(name "r-abn")
(version "2.2")
(version "2.2.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "abn" version))
(sha256
(base32
"19w6bdjyp4zwqs6p0flry4qxqynf9rh8ykdrfrp61wrdf7kysw0d"))))
"11nbg6dwvbj0ac7qvr203vzjnw5zc1a8cibb9l6rzzr7yfg16xzc"))))
(build-system r-build-system)
(inputs
`(("gsl" ,gsl)))
(propagated-inputs
`(("r-lme4" ,r-lme4)
`(("r-boot" ,r-boot)
("r-brglm" ,r-brglm)
("r-entropy" ,r-entropy)
("r-lme4" ,r-lme4)
("r-mass" ,r-mass)
("r-moments" ,r-moments)
("r-nnet" ,r-nnet)
("r-rcpp" ,r-rcpp)
("r-rcpparmadillo" ,r-rcpparmadillo)
@ -8922,14 +9007,14 @@ (define-public r-bayestestr
(define-public r-performance
(package
(name "r-performance")
(version "0.4.6")
(version "0.4.7")
(source
(origin
(method url-fetch)
(uri (cran-uri "performance" version))
(sha256
(base32
"08i9ngvga06abs2k50gvkh6iwl4r77bkmmchsqjibsy09wdvd8xj"))))
"0gw165wm2a0vjsvyll8z9k6qd156z3jf4priy1r745v63x4mnb5k"))))
(build-system r-build-system)
(propagated-inputs
`(("r-bayestestr" ,r-bayestestr)
@ -11769,14 +11854,14 @@ (define-public r-longitudinal
(define-public r-genenet
(package
(name "r-genenet")
(version "1.2.14")
(version "1.2.15")
(source
(origin
(method url-fetch)
(uri (cran-uri "GeneNet" version))
(sha256
(base32
"0cdhrj15rz0w0pyw3r8mikrzsdh95y5i1c0pa3cn0c2bjnjx3x3n"))))
"11ba6ahsk3x9alvcw8bai2bpg84ki1m8nadrjjdhjg65svhw8njm"))))
(properties `((upstream-name . "GeneNet")))
(build-system r-build-system)
(propagated-inputs
@ -15839,14 +15924,14 @@ (define-public r-citr
(define-public r-xgboost
(package
(name "r-xgboost")
(version "1.0.0.2")
(version "1.1.1.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "xgboost" version))
(sha256
(base32
"1ld2w51c5fy3bl0kvjn1iplffc4lmin9s9zz5xx7xsm44d6j6kzd"))))
"13njhcxljhbcs37ni6r5174fk8kx9b5p7rlw1an1ak3w92jn56cq"))))
(build-system r-build-system)
(propagated-inputs
`(("r-data-table" ,r-data-table)

View file

@ -32,6 +32,7 @@ (define-module (gnu packages crates-io)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages glib)
@ -49,6 +50,7 @@ (define-module (gnu packages crates-io)
#:use-module (gnu packages tls)
#:use-module (gnu packages video)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
@ -149,10 +151,10 @@ (define-public rust-addr2line-0.9
("rust-memmap" ,rust-memmap-0.7)
("rust-rustc-test" ,rust-rustc-test-0.3))))))
(define-public rust-adler32-1.0
(define-public rust-adler32-1
(package
(name "rust-adler32")
(version "1.0.4")
(version "1.1.0")
(source
(origin
(method url-fetch)
@ -161,12 +163,15 @@ (define-public rust-adler32-1.0
(string-append name "-" version ".crate"))
(sha256
(base32
"1hnan4fgmnidgn2k84hh2i67c3wp2c5iwd5hs61yi7gwwx1p6bjx"))))
"0bgks405vz823bphgwhj4l9h6vpfh900s0phfk4qqijyh9xhfysn"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
`(#:cargo-inputs
(("rust-compiler-builtins" ,rust-compiler-builtins-0.1)
("rust-rustc-std-workspace-core" ,rust-rustc-std-workspace-core-1.0))
#:cargo-development-inputs
(("rust-rand" ,rust-rand-0.4))))
(("rust-bencher" ,rust-bencher-0.1)
("rust-rand" ,rust-rand-0.4))))
(home-page "https://github.com/remram44/adler32-rs")
(synopsis "Implementation of the Adler32 rolling hash algorithm")
(description
@ -4619,31 +4624,42 @@ (define-public rust-curl-sys-0.4
(origin
(method url-fetch)
(uri (crate-uri "curl-sys" version))
(file-name (string-append name "-" version ".crate"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"02542zmvl3fpdqf7ai4cqnamm4albx9j645dkjx5qr1myq8ax42y"))))
"02542zmvl3fpdqf7ai4cqnamm4albx9j645dkjx5qr1myq8ax42y"))
(modules '((guix build utils)))
(snippet
'(begin (delete-file-recursively "curl") #t))))
(build-system cargo-build-system)
;(arguments
; `(#:phases
; (modify-phases %standard-phases
; (add-after 'unpack 'find-openssl
; (lambda* (#:key inputs #:allow-other-keys)
; (let ((openssl (assoc-ref inputs "openssl")))
; (setenv "OPENSSL_DIR" openssl))
; #t)))))
;(native-inputs
; `(("pkg-config" ,pkg-config)))
;(inputs
; `(("curl" ,curl)
; ("nghttp2" ,nghttp2)
; ("openssl" ,openssl)
; ("zlib" ,zlib)))
(arguments
`(#:cargo-inputs
(("rust-libc" ,rust-libc-0.2)
("rust-libnghttp2-sys" ,rust-libnghttp2-sys-0.1)
("rust-libz-sys" ,rust-libz-sys-1.0)
("rust-openssl-sys" ,rust-openssl-sys-0.9)
("rust-winapi" ,rust-winapi-0.3)
("rust-cc" ,rust-cc-1.0)
("rust-pkg-config" ,rust-pkg-config-0.3)
("rust-vcpkg" ,rust-vcpkg-0.2))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'find-openssl
(lambda* (#:key inputs #:allow-other-keys)
(let ((openssl (assoc-ref inputs "openssl")))
(setenv "OPENSSL_DIR" openssl))
#t)))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("curl" ,curl)
("nghttp2" ,nghttp2)
("openssl" ,openssl)
("zlib" ,zlib)))
(home-page "https://github.com/alexcrichton/curl-rust")
(synopsis "Native bindings to the libcurl library")
(description
"This package provides native bindings to the @code{libcurl} library.")
(properties '((hidden? . #t)))
(license license:expat)))
(define-public rust-custom-derive-0.1
@ -4835,7 +4851,7 @@ (define-public rust-deflate-0.7
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-adler32" ,rust-adler32-1.0)
(("rust-adler32" ,rust-adler32-1)
("rust-byteorder" ,rust-byteorder-1.3)
("rust-gzip-header" ,rust-gzip-header-0.3)
("rust-flate2" ,rust-flate2-1.0))))
@ -10325,7 +10341,7 @@ (define-public rust-inflate-0.4
"1zxjdn8iwa0ssxrnjmywm3r1v284wryvzrf8vkc7nyf5ijbjknqw"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-adler32" ,rust-adler32-1.0))))
`(#:cargo-inputs (("rust-adler32" ,rust-adler32-1))))
(home-page "https://github.com/PistonDevelopers/inflate.git")
(synopsis "DEFLATE decoding")
(description "This package provides DEFLATE decoding.")
@ -11178,8 +11194,43 @@ (define-public rust-lazycell-1.2
"This package provides a library providing a lazily filled Cell struct.")
(license (list license:expat license:asl2.0))))
(define-public rust-lexical-core-0.7
(package
(name "rust-lexical-core")
(version "0.7.4")
(source
(origin
(method url-fetch)
(uri (crate-uri "lexical-core" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"05i6b69ay8xbxw88vx89vglb7xm5n8ky82hax7d5a7z60bdccrfv"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs
(("rust-arrayvec" ,rust-arrayvec-0.5)
("rust-bitflags" ,rust-bitflags-1)
("rust-cfg-if" ,rust-cfg-if-0.1)
("rust-dtoa" ,rust-dtoa-0.4)
("rust-ryu" ,rust-ryu-1.0)
("rust-static-assertions" ,rust-static-assertions-1))
#:cargo-development-inputs
(("rust-approx" ,rust-approx-0.3)
("rust-proptest" ,rust-proptest-0.9)
("rust-quickcheck" ,rust-quickcheck-0.9))))
(home-page
"https://github.com/Alexhuszagh/rust-lexical/tree/master/lexical-core")
(synopsis
"Lexical, to- and from-string conversion routines")
(description
"Lexical, to- and from-string conversion routines.")
(license (list license:expat license:asl2.0))))
(define-public rust-lexical-core-0.4
(package
(inherit rust-lexical-core-0.7)
(name "rust-lexical-core")
(version "0.4.2")
(source
@ -11191,7 +11242,6 @@ (define-public rust-lexical-core-0.4
(sha256
(base32
"1gr5y3ykghd3wjc00l3iizkj1dxylyhwi6fj6yn2qg06nzx771iz"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
@ -11204,14 +11254,7 @@ (define-public rust-lexical-core-0.4
(("rust-approx" ,rust-approx-0.3)
("rust-proptest" ,rust-proptest-0.9)
("rust-quickcheck" ,rust-quickcheck-0.8)
("rust-rustc-version" ,rust-rustc-version-0.2))))
(home-page
"https://github.com/Alexhuszagh/rust-lexical/tree/master/lexical-core")
(synopsis
"Lexical, to- and from-string conversion routines")
(description
"Lexical, to- and from-string conversion routines.")
(license (list license:asl2.0 license:expat))))
("rust-rustc-version" ,rust-rustc-version-0.2))))))
(define-public rust-libc-0.2
(package
@ -11334,12 +11377,22 @@ (define-public rust-libgit2-sys-0.7
(origin
(method url-fetch)
(uri (crate-uri "libgit2-sys" version))
(file-name (string-append name "-" version ".crate"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1wcvg2qqra2aviasvqcscl8gb2rnjnd6h998wy5dlmf2bnriqi28"))))
(arguments '())
(properties '((hidden? . #t)))))
"1wcvg2qqra2aviasvqcscl8gb2rnjnd6h998wy5dlmf2bnriqi28"))
(modules '((guix build utils)))
(snippet
'(begin (delete-file-recursively "libgit2") #t))))
(arguments
`(#:cargo-inputs
(("rust-curl-sys" ,rust-curl-sys-0.4)
("rust-libc" ,rust-libc-0.2)
("rust-libssh2-sys" ,rust-libssh2-sys-0.2)
("rust-libz-sys" ,rust-libz-sys-1.0)
("rust-openssl-sys" ,rust-openssl-sys-0.9)
("rust-cc" ,rust-cc-1.0)
("rust-pkg-config" ,rust-pkg-config-0.3))))))
(define-public rust-libloading-0.5
(package
@ -11438,18 +11491,25 @@ (define-public rust-libnghttp2-sys-0.1
(origin
(method url-fetch)
(uri (crate-uri "libnghttp2-sys" version))
(file-name (string-append name "-" version ".crate"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0qr4lyh7righx9n22c7amlcpk906rn1jnb2zd6gdfpa3yi24s982"))))
"0qr4lyh7righx9n22c7amlcpk906rn1jnb2zd6gdfpa3yi24s982"))
(modules '((guix build utils)))
(snippet
'(begin (delete-file-recursively "nghttp2") #t))))
(build-system cargo-build-system)
;(inputs
; `(("nghttp2" ,nghttp2)))
(arguments
`(#:skip-build? #t ; Uses unstable features
#:cargo-inputs
(("rust-libc" ,rust-libc-0.2)
("rust-cc" ,rust-cc-1.0))))
(inputs
`(("nghttp2" ,nghttp2)))
(home-page "https://github.com/alexcrichton/nghttp2-rs")
(synopsis "FFI bindings for libnghttp2 (nghttp2)")
(description
"This package provides FFI bindings for libnghttp2 (nghttp2).")
(properties '((hidden? . #t)))
(license (list license:asl2.0
license:expat))))
@ -12639,7 +12699,7 @@ (define-public rust-miniz-oxide-0.3
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs (("rust-adler32" ,rust-adler32-1.0))))
#:cargo-inputs (("rust-adler32" ,rust-adler32-1))))
(home-page "https://github.com/Frommi/miniz_oxide/tree/master/miniz_oxide")
(synopsis "Pure rust replacement for the miniz DEFLATE/zlib encoder/decoder")
(description
@ -13421,8 +13481,53 @@ (define-public rust-nodrop-union-0.1
(license (list license:asl2.0
license:expat))))
(define-public rust-nom-5
(package
(name "rust-nom")
(version "5.1.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "nom" version))
(file-name
(string-append name "-" version ".tar.gz"))
(sha256
(base32
"1br74rwdp3c2ddga03bphnf355spn4mzwf1slg0a30zd4qnjdd7z"))))
(build-system cargo-build-system)
(arguments
`(#:tests? #f ; Tests require example directory, not included in tarball.
#:cargo-inputs
(("rust-lazy-static" ,rust-lazy-static-1)
("rust-lexical-core" ,rust-lexical-core-0.7)
("rust-memchr" ,rust-memchr-2.2)
("rust-regex" ,rust-regex-1.1)
("rust-version-check" ,rust-version-check-0.9))
#:cargo-development-inputs
(("rust-criterion" ,rust-criterion-0.2)
("rust-doc-comment" ,rust-doc-comment-0.3)
("rust-jemallocator" ,rust-jemallocator-0.1))
#:phases
(modify-phases %standard-phases
(add-after 'configure 'override-jemalloc
(lambda* (#:key inputs #:allow-other-keys)
(let ((jemalloc (assoc-ref inputs "jemalloc")))
(setenv "JEMALLOC_OVERRIDE"
(string-append jemalloc "/lib/libjemalloc_pic.a")))
#t)))))
(native-inputs
`(("jemalloc" ,jemalloc)))
(home-page "https://github.com/Geal/nom")
(synopsis
"Byte-oriented, zero-copy, parser combinators library")
(description
"This package provides a byte-oriented, zero-copy, parser
combinators library.")
(license license:expat)))
(define-public rust-nom-4.2
(package
(inherit rust-nom-5)
(name "rust-nom")
(version "4.2.3")
(source
@ -13434,7 +13539,6 @@ (define-public rust-nom-4.2
(sha256
(base32
"1mkvby8b4m61p4g1px0pwr58yfkphyp1jcfbp4qfp7l6iqdaklia"))))
(build-system cargo-build-system)
(arguments
`(#:skip-build? #t
#:cargo-inputs
@ -13444,14 +13548,7 @@ (define-public rust-nom-4.2
("rust-version-check" ,rust-version-check-0.1))
#:cargo-development-inputs
(("rust-criterion" ,rust-criterion-0.2)
("rust-jemallocator" ,rust-jemallocator-0.1))))
(home-page "https://github.com/Geal/nom")
(synopsis
"Byte-oriented, zero-copy, parser combinators library")
(description
"This package provides a byte-oriented, zero-copy, parser
combinators library.")
(license license:expat)))
("rust-jemallocator" ,rust-jemallocator-0.1))))))
(define-public rust-nom-3
(package
@ -21861,8 +21958,29 @@ (define-public rust-stackvector-1.0
"StackVec: vector-like facade for stack-allocated arrays.")
(license (list license:asl2.0 license:expat))))
(define-public rust-static-assertions-1
(package
(name "rust-static-assertions")
(version "1.1.0")
(source
(origin
(method url-fetch)
(uri (crate-uri "static-assertions" version))
(file-name (string-append name "-" version ".crate"))
(sha256
(base32
"0gsl6xmw10gvn3zs1rv99laj5ig7ylffnh71f9l34js4nr4r7sx2"))))
(build-system cargo-build-system)
(home-page "https://github.com/nvzqz/static-assertions-rs")
(synopsis "Compile-time assertions for rust")
(description
"This package provides compile-time assertions to ensure that invariants
are met.")
(license (list license:expat license:asl2.0))))
(define-public rust-static-assertions-0.3
(package
(inherit rust-static-assertions-1)
(name "rust-static-assertions")
(version "0.3.4")
(source
@ -21872,14 +21990,7 @@ (define-public rust-static-assertions-0.3
(file-name (string-append name "-" version ".crate"))
(sha256
(base32
"1lw33i89888yb3x29c6dv4mrkg3534n0rlg3r7qzh4p58xmv6gkz"))))
(build-system cargo-build-system)
(home-page "https://github.com/nvzqz/static-assertions-rs")
(synopsis "Compile-time assertions for rust")
(description
"This package provides compile-time assertions to ensure that invariants
are met.")
(license (list license:expat license:asl2.0))))
"1lw33i89888yb3x29c6dv4mrkg3534n0rlg3r7qzh4p58xmv6gkz"))))))
(define-public rust-stb-truetype-0.3
(package

View file

@ -415,14 +415,14 @@ (define-public cups-pk-helper
(define-public hplip
(package
(name "hplip")
(version "3.20.5")
(version "3.20.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/hplip/hplip/" version
"/hplip-" version ".tar.gz"))
(sha256
(base32
"0nj79r61fzddwwzf8kcc0qkp4y9qx46v15iarz6h6y3v91wbsjq0"))
"0rmk7i28mb0q66i5l9d0fq2j23dkhz5gx5g2xvi16ga0dnprcilp"))
(modules '((guix build utils)))
(patches (search-patches "hplip-remove-imageprocessor.patch"))
(snippet
@ -681,14 +681,14 @@ (define-public foomatic-filters
(define-public foo2zjs
(package
(name "foo2zjs")
(version "20200426")
(version "20200610")
(source (origin
(method url-fetch)
;; XXX: This is an unversioned URL!
(uri "http://foo2zjs.rkkda.com/foo2zjs.tar.gz")
(sha256
(base32
"0wwh29ddd59q18r1jpi3166lgnwr8zn9lry82vahc2g96l97isp7"))))
"11ddx6wf8b5ksl4fqw6fnyz9m3y470lryyrskkya2bsch2bvj9lg"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases

View file

@ -1147,7 +1147,7 @@ (define-public emacs-recutils
(define-public rocksdb
(package
(name "rocksdb")
(version "6.10.1")
(version "6.10.2")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1156,7 +1156,7 @@ (define-public rocksdb
(file-name (git-file-name name version))
(sha256
(base32
"0rp8q73dx5f1nkcf2qp6fljm4dpj281y6cqckqgv976kvwvqdgz1"))
"1f2wqb6px812ijcivq3rsknqgkv01wblc6sd8wavhrw8qljgr3s1"))
(modules '((guix build utils)))
(snippet
'(begin

View file

@ -72,7 +72,7 @@ (define-module (gnu packages diffoscope)
(define-public diffoscope
(package
(name "diffoscope")
(version "146")
(version "148")
(source (origin
(method git-fetch)
(uri (git-reference
@ -81,7 +81,7 @@ (define-public diffoscope
(file-name (git-file-name name version))
(sha256
(base32
"07kd3vshf4wlm0mv3mp6ljbxjq80mcg52w5ks6si1gnpzfbfz07p"))))
"0siv5z8iqgkzl51dmv69ifqids6hqmiir00yyl1aaqbginrwyhyv"))))
(build-system python-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@ -92,12 +92,6 @@ (define-public diffoscope
(lambda _
(substitute* "setup.py"
(("'python-magic',") ""))))
;; Patch in support for known tools
(add-after 'unpack 'add-known-tools
(lambda _
(substitute* "diffoscope/external_tools.py"
(("'debian': 'openssl'")
"'debian': 'openssl', 'guix': 'openssl'"))))
;; This test is broken because our `file` package has a
;; bug in berkeley-db file type detection.
(add-after 'unpack 'remove-berkeley-test

View file

@ -119,7 +119,7 @@ (define-public dnsmasq
(define-public isc-bind
(package
(name "bind")
(version "9.16.3")
(version "9.16.4")
(source (origin
(method url-fetch)
(uri (string-append
@ -127,7 +127,7 @@ (define-public isc-bind
"/bind-" version ".tar.xz"))
(sha256
(base32
"0zjgaspnx0p0rp83h4yj595s25da7fjis94z9frhv3azvq9nbb17"))))
"02ip1xvmnqla3p5k2rmfrksrw4q9iqbrhyg3mamvrj5a7n6hh8km"))))
(build-system gnu-build-system)
(outputs `("out" "utils"))
(inputs

View file

@ -3,6 +3,7 @@
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -34,8 +35,50 @@ (define-module (gnu packages docbook)
#:use-module (guix build-system trivial)
#:use-module (guix build-system python))
(define-public docbook-xml-5
(package
(name "docbook-xml")
(version "5.0.1")
(source (origin
(method url-fetch)
(uri (string-append "https://www.docbook.org/xml/" version
"/docbook-" version ".zip"))
(sha256
(base32
"1iz3hq1lqgnshvlz4j9gvh4jy1ml74qf90vqf2ikbq0h4i2xzybs"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((unzip
(string-append (assoc-ref %build-inputs "unzip")
"/bin/unzip"))
(source (assoc-ref %build-inputs "source"))
(out (assoc-ref %outputs "out"))
(dtd (string-append out "/xml/dtd/docbook")))
(invoke unzip source)
(mkdir-p dtd)
(copy-recursively (string-append "docbook-" ,version) dtd)
(with-directory-excursion dtd
(substitute* (string-append out "/xml/dtd/docbook/catalog.xml")
(("uri=\"")
(string-append
"uri=\"file://" dtd "/")))
#t)))))
(native-inputs `(("unzip" ,unzip)))
(home-page "https://docbook.org")
(synopsis "DocBook XML DTDs for document authoring")
(description
"DocBook is general purpose XML and SGML document type particularly well
suited to books and papers about computer hardware and software (though it is
by no means limited to these applications.) This package provides XML DTDs.")
(license (x11-style "" "See file headers."))))
(define-public docbook-xml
(package
(inherit docbook-xml-5)
(name "docbook-xml")
(version "4.5")
(source (origin
@ -45,7 +88,6 @@ (define-public docbook-xml
(sha256
(base32
"1d671lcjckjri28xfbf6dq7y3xnkppa910w1jin8rjc35dx06kjf"))))
(build-system trivial-build-system)
(arguments
'(#:builder (begin
(use-modules (guix build utils))
@ -60,19 +102,11 @@ (define-public docbook-xml
(with-directory-excursion dtd
(invoke unzip source))
(substitute* (string-append out "/xml/dtd/docbook/catalog.xml")
(("uri=\"")
(string-append
(("uri=\"")
(string-append
"uri=\"file://" dtd "/")))
#t))
#:modules ((guix build utils))))
(native-inputs `(("unzip" ,unzip)))
(home-page "https://docbook.org")
(synopsis "DocBook XML DTDs for document authoring")
(description
"DocBook is general purpose XML and SGML document type particularly well
suited to books and papers about computer hardware and software (though it is
by no means limited to these applications.) This package provides XML DTDs.")
(license (x11-style "" "See file headers."))))
#:modules ((guix build utils))))))
(define-public docbook-xml-4.4
(package (inherit docbook-xml)

View file

@ -64,7 +64,7 @@ (define-public gnu-efi
(define-public sbsigntools
(package
(name "sbsigntools")
(version "0.9.3")
(version "0.9.4")
(source
(origin
(method git-fetch)
@ -75,7 +75,7 @@ (define-public sbsigntools
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32 "0gc3xmp73xl7z4nkwz4qy960rdflmx7k4ksgyblcnia9smvsir6y"))))
(base32 "1y76wy65y6k10mjl2dm5hb5ms475alr4s080xzj8y833x01xvf3m"))))
(build-system gnu-build-system)
(arguments
`(#:phases

View file

@ -40,7 +40,7 @@
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
;;; Copyright © 2018 Thorsten Wilms <t_w_@freenet.de>
;;; Copyright © 2018, 2019 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2018, 2019, 2020 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2018, 2019, 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2019, 2020 Dimakakos Dimos <bendersteed@teknik.io>
;;; Copyright © 2019, 2020 Brian Leung <bkleung89@gmail.com>
@ -96,6 +96,7 @@ (define-module (gnu packages emacs-xyz)
#:use-module (guix packages)
#:use-module (guix cvs-download)
#:use-module (guix download)
#:use-module (guix bzr-download)
#:use-module (guix git-download)
#:use-module (guix hg-download)
#:use-module (guix build-system gnu)
@ -249,6 +250,79 @@ (define-public emacs-ac-geiser
(license license:bsd-3)
(home-page "https://github.com/xiaohanyu/ac-geiser"))))
(define-public emacs-hyperbole
(package
(name "emacs-hyperbole")
(version "7.0.6")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"hyperbole-" version ".tar"))
(sha256
(base32 "08gi4v76s53nfmn3s0qcxc3zii0pspjfd6ry7jq1kgm3z34x8hab"))
(patches
(search-patches "emacs-hyperbole-toggle-messaging.patch"))))
(build-system emacs-build-system)
(arguments
`(#:include '("DEMO"
"DEMO-ROLO.otl"
"HY-ABOUT"
"\\.el$"
"\\.info$"
"\\.kotl$")
#:phases
(modify-phases %standard-phases
;; Fix build issues about missing "domainname" and "hpmap:dir-user"
;; parent dir.
(add-after 'unpack 'fix-build
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "hypb.el"
(("/bin/domainname")
(string-append (assoc-ref inputs "inetutils")
"/bin/dnsdomainname")))
(substitute* "hyperbole.el"
(("\\(hyperb:check-dir-user\\)") ""))
#t)))))
(inputs
`(("inetutils" ,inetutils)))
(home-page "https://www.gnu.org/software/hyperbole/")
(synopsis "The Everyday Hypertextual Information Manager")
(description
"GNU Hyperbole, or just Hyperbole, is an easy-to-use, yet powerful and
programmable hypertextual information management system implemented as a GNU
Emacs package. It offers rapid views and interlinking of all kinds of textual
information, utilizing Emacs for editing. It can dramatically increase your
productivity and greatly reduce the number of keyboard/mouse keys you'll need
to work efficiently. Hyperbole lets you:
@itemize
@item Quickly create hyperlink buttons either from the keyboard or by dragging
between a source and destination window with a mouse button depressed. Later,
activate buttons by pressing/clicking on them or by giving the name of the
button.
@item Activate many kinds of \"implicit buttons\" recognized by context within
text buffers, e.g. URLs, grep output lines, and git commits. A single key or
mouse button automatically does the right thing in dozens of contexts; just
press and go.
@item Build outlines with multi-level numbered outline nodes, e.g. 1.4.8.6,
that all renumber automatically as any node or tree is moved in the outline.
Each node also has a permanent hyperlink anchor that you can reference from
any other node.
@item Manage all your contacts quickly with hierarchical categories and embed
hyperlinks within each entry. Or create an archive of documents with
hierarchical entries and use the same search mechanism to quickly find any
matching entry.
@item Use single keys to easily manage your Emacs windows or frames and
quickly retrieve saved window and frame configurations.
@item Search for things in your current buffers, in a directory tree or across
major web search engines with the touch of a few keys.
@end itemize
The common thread in all these features is making retrieval, management and
display of information fast and easy. That is Hyperbole's purpose.")
(license license:gpl3+)))
(define-public emacs-paredit
(package
(name "emacs-paredit")
@ -398,10 +472,10 @@ (define-public emacs-libgit
(define-public emacs-magit
;; There hasn't been an official release since 2018-11-16.
(let ((commit "d05545ec2fd7edf915eaf1b9c15c785bb08975cc"))
(let ((commit "0746bf1bacfe896d3917ccc19c7fb9d95c18b1e9"))
(package
(name "emacs-magit")
(version (git-version "2.90.1" "4" commit))
(version (git-version "2.90.1" "5" commit))
(source (origin
(method git-fetch)
(uri (git-reference
@ -410,7 +484,7 @@ (define-public emacs-magit
(file-name (git-file-name name version))
(sha256
(base32
"11aqyy4r9hrdi9nlypd70hn8384b6q89c7xavgv8c5q7f2g5z9qg"))))
"1sgdygr81s2qxq2ahf998hl89qrb0r2wbgnsiz3hdda1431p0wzg"))))
(build-system emacs-build-system)
(arguments
`(#:emacs ,emacs-no-x ;module support is required
@ -1188,14 +1262,14 @@ (define-public emacs-reformatter
(define-public emacs-relint
(package
(name "emacs-relint")
(version "1.17")
(version "1.18")
(source
(origin
(method url-fetch)
(uri (string-append
"https://elpa.gnu.org/packages/relint-" version ".tar"))
(uri (string-append "https://elpa.gnu.org/packages/"
"relint-" version ".tar"))
(sha256
(base32 "1nv13dqdhf72c1jgk1ml4k6jqb8wsyphcx2vhsyhig5198lg4kd7"))))
(base32 "0zfislsksrkn6qs0w26yaff5xr7xqy2x235dcdpz8s2v35b6dhci"))))
(build-system emacs-build-system)
(propagated-inputs `(("emacs-xr" ,emacs-xr)))
(home-page "https://github.com/mattiase/relint")
@ -1404,44 +1478,21 @@ (define-public emacs-eww-lnum
(define-public emacs-emms
(package
(name "emacs-emms")
(version "5.4")
(version "5.42")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/emms/emms-" version ".tar.gz"))
(uri (string-append "https://elpa.gnu.org/packages/"
"emms-" version ".tar"))
(sha256
(base32 "1nd7sb6pva7qb1ki6w0zhd6zvqzd7742kaqi0f3v4as5jh09l6nr"))
(modules '((guix build utils)))
(snippet
'(begin
(substitute* "Makefile"
(("/usr/bin/install-info")
;; No need to use 'install-info' since it would create a
;; useless 'dir' file.
"true")
(("^INFODIR=.*")
;; Install Info files to $out/share/info, not $out/info.
"INFODIR := $(PREFIX)/share/info\n")
(("/site-lisp/emms")
;; Install directly in share/emacs/site-lisp, not in a
;; sub-directory.
"/site-lisp")
(("^all: (.*)\n" _ rest)
;; Build 'emms-print-metadata'.
(string-append "all: " rest " emms-print-metadata\n")))
#t))))
(build-system gnu-build-system)
(base32 "1khx1fvllrs6w9kxk12mp1hj309c90mc7lkq1vvlqlr7vd6zmnpj"))))
(build-system emacs-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(guix build emacs-utils)
(ice-9 ftw))
#:imported-modules (,@%gnu-build-system-modules
(guix build emacs-utils))
#:phases
`(#:phases
(modify-phases %standard-phases
(replace 'configure
(add-after 'unpack 'set-external-programs
;; Specify the absolute file names of the various programs
;; so that everything works out-of-the-box.
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(flac (assoc-ref inputs "flac"))
@ -1451,94 +1502,56 @@ (define-public emacs-emms
(mp3info (assoc-ref inputs "mp3info"))
(mutagen (assoc-ref inputs "mutagen"))
(opus (assoc-ref inputs "opus-tools")))
;; Specify the installation directory.
(substitute* "Makefile"
(("PREFIX=.*$")
(string-append "PREFIX := " out "\n")))
(setenv "SHELL" (which "sh"))
(setenv "CC" "gcc")
;; Specify the absolute file names of the various
;; programs so that everything works out-of-the-box.
(with-directory-excursion "lisp"
(emacs-substitute-variables
"emms-player-mpg321-remote.el"
("emms-player-mpg321-remote-command"
(string-append mpg321 "/bin/mpg321")))
(substitute* "emms-player-simple.el"
(("\"ogg123\"")
(string-append "\"" vorbis "/bin/ogg123\"")))
(substitute* "emms-player-simple.el"
(("\"mpg321\"")
(string-append "\"" mpg321 "/bin/mpg321\"")))
(emacs-substitute-variables "emms-info-ogginfo.el"
("emms-info-ogginfo-program-name"
(string-append vorbis "/bin/ogginfo")))
(emacs-substitute-variables "emms-info-opusinfo.el"
("emms-info-opusinfo-program-name"
(string-append opus "/bin/opusinfo")))
(emacs-substitute-variables "emms-info-libtag.el"
("emms-info-libtag-program-name"
(string-append out "/bin/emms-print-metadata")))
(emacs-substitute-variables "emms-info-mp3info.el"
("emms-info-mp3info-program-name"
(string-append mp3info "/bin/mp3info")))
(emacs-substitute-variables "emms-info-metaflac.el"
("emms-info-metaflac-program-name"
(string-append flac "/bin/metaflac")))
(emacs-substitute-variables "emms-source-file.el"
("emms-source-file-gnu-find" (which "find")))
(substitute* "emms-volume-amixer.el"
(("\"amixer\"")
(string-append "\"" alsa "/bin/amixer\"")))
(substitute* "emms-tag-editor.el"
(("\"mid3v2\"")
(string-append "\"" mutagen "/bin/mid3v2\"")))
#t))))
(add-before 'install 'pre-install
(lambda* (#:key outputs #:allow-other-keys)
;; The 'install' rule expects the target directories to exist.
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(man1 (string-append out "/share/man/man1")))
(mkdir-p bin)
(mkdir-p man1)
;; Ensure that files are not rejected by gzip
(let ((early-1980 315619200)) ; 1980-01-02 UTC
(ftw "." (lambda (file stat flag)
(unless (<= early-1980 (stat:mtime stat))
(utime file early-1980 early-1980))
#t)))
#t)))
(add-after 'install 'post-install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(symlink "emms-auto.el"
(string-append out "/share/emacs/site-lisp/"
"emms-autoloads.el")))
#t)))
#:tests? #f))
(native-inputs `(("emacs" ,emacs-minimal) ;for (guix build emacs-utils)
("texinfo" ,texinfo)))
(inputs `(("alsa-utils" ,alsa-utils)
("flac" ,flac) ;for metaflac
("vorbis-tools" ,vorbis-tools)
("mpg321" ,mpg321)
("taglib" ,taglib)
("mp3info" ,mp3info)
("mutagen" ,python-mutagen)
("opus-tools" ,opus-tools)))
(properties '((upstream-name . "emms")))
(synopsis "Emacs Multimedia System")
(emacs-substitute-variables "emms-player-mpg321-remote.el"
("emms-player-mpg321-remote-command"
(string-append mpg321 "/bin/mpg321")))
(substitute* "emms-player-simple.el"
(("\"ogg123\"")
(string-append "\"" vorbis "/bin/ogg123\"")))
(substitute* "emms-player-simple.el"
(("\"mpg321\"")
(string-append "\"" mpg321 "/bin/mpg321\"")))
(emacs-substitute-variables "emms-info-ogginfo.el"
("emms-info-ogginfo-program-name"
(string-append vorbis "/bin/ogginfo")))
(emacs-substitute-variables "emms-info-opusinfo.el"
("emms-info-opusinfo-program-name"
(string-append opus "/bin/opusinfo")))
(emacs-substitute-variables "emms-info-libtag.el"
("emms-info-libtag-program-name"
(string-append out "/bin/emms-print-metadata")))
(emacs-substitute-variables "emms-info-mp3info.el"
("emms-info-mp3info-program-name"
(string-append mp3info "/bin/mp3info")))
(emacs-substitute-variables "emms-info-metaflac.el"
("emms-info-metaflac-program-name"
(string-append flac "/bin/metaflac")))
(emacs-substitute-variables "emms-source-file.el"
("emms-source-file-gnu-find" (which "find")))
(substitute* "emms-volume-amixer.el"
(("\"amixer\"")
(string-append "\"" alsa "/bin/amixer\"")))
(substitute* "emms-tag-editor.el"
(("\"mid3v2\"")
(string-append "\"" mutagen "/bin/mid3v2\"")))
#t))))))
(inputs
`(("alsa-utils" ,alsa-utils)
("flac" ,flac) ;for metaflac
("vorbis-tools" ,vorbis-tools)
("mpg321" ,mpg321)
("taglib" ,taglib)
("mp3info" ,mp3info)
("mutagen" ,python-mutagen)
("opus-tools" ,opus-tools)))
(home-page "https://www.gnu.org/software/emms/")
(synopsis "The Emacs Multimedia System")
(description
"EMMS is the Emacs Multimedia System. It is a small front-end which
can control one of the supported external players. Thus, it supports
whatever formats are supported by your music player. It also
supports tagging and playlist management, all behind a clean and
light user interface.")
(home-page "https://www.gnu.org/software/emms/")
(license license:gpl3+)))
(define-public emacs-emms-mode-line-cycle
@ -3289,6 +3302,32 @@ (define-public emacs-znc
IRC bouncer with ERC.")
(license license:expat)))
(define-public emacs-erc-status-sidebar
(let ((commit "ea4189a1dbfe60117359c36e681ad7c389e2968c")
(revision "1"))
(package
(name "emacs-erc-status-sidebar")
(version (git-version "0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/drewbarbs/erc-status-sidebar.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1hwlhzgx03z8891sblz56zdp8zj0izh72kxykgcnz5rrkyc3vfi3"))))
(build-system emacs-build-system)
(propagated-inputs `(("emacs-seq" ,emacs-seq)))
(home-page "https://github.com/drewbarbs/erc-status-sidebar")
(synopsis "Hexchat-like activity overview for ERC channels")
(description
"This package provides a Hexchat-like status bar for joined channels in
ERC, an Emacs client for IRC (Internet Relay Chat). It relies on the
@code{erc-track} module, and displays all the same information
@code{erc-track} does in the mode line, but in an alternative format.")
(license license:expat))))
(define-public emacs-shut-up
(package
(name "emacs-shut-up")
@ -3912,6 +3951,31 @@ (define-public emacs-flycheck-grammalecte
repetitions for example).")
(license license:gpl3+)))
(define-public emacs-flycheck-guile
(package
(name "emacs-flycheck-guile")
(version "0.1.1")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/flatwhatson/flycheck-guile")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "163pnsh6r6bral1jg0vqri54g6hygws21vis0zci4114yb3fhkm1"))))
(propagated-inputs
`(("emacs-flycheck" ,emacs-flycheck)
("emacs-geiser" ,emacs-geiser)))
(build-system emacs-build-system)
(home-page "https://github.com/flatwhatson/flycheck-guile")
(synopsis "GNU Guile support for Flycheck")
(description
"This package provides a Flycheck checker for GNU Guile using @code{guild
compile}.")
(license license:gpl3+)))
(define-public emacs-flycheck-rust
(package
(name "emacs-flycheck-rust")
@ -3989,6 +4053,62 @@ (define-public emacs-docker-compose-mode
completion of relevant keywords.")
(license license:expat)))
(define-public emacs-dvc
(let ((revision "591") ;no tags or official releases
(guix-revision "1"))
(package
(name "emacs-dvc")
(version (string-append "0.0.0-" guix-revision "." revision))
(source
(origin
(method bzr-fetch)
(uri (bzr-reference
(url "lp:dvc")
(revision revision)))
(sha256
(base32
"03pqn493w70wcpgaxvqnfgynxghw114l9pyiv3r414d84vzhan6h"))
(file-name (string-append name "-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list (string-append "--with-lispdir=" (assoc-ref %outputs "out")
"/share/emacs/site-lisp/"))
#:tests? #f ;no test suite
#:phases
(modify-phases %standard-phases
(add-before 'build 'set-home
;; Something in dvc-bookmarks.el attempts to write config files in
;; $HOME during the autoload generation.
(lambda _ (setenv "HOME" (getenv "TMPDIR")) #t))
(add-before 'build 'fix-texinfo
;; See https://bugs.launchpad.net/dvc/+bug/1264383.
(lambda _
(substitute* "texinfo/dvc-intro.texinfo"
(("@itemx update ``to''")
"@item update ``to''")
(("@itemx brief")
"@item brief")
(("@itemx full")
"@item full")
(("@itemx drop")
"@item drop")
(("@itemx left file")
"@item left file"))
#t)))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake) ;for aclocal
("emacs" ,emacs-minimal)
("texinfo" ,texinfo)))
(home-page "http://xsteve.at/prg/emacs_dvc/index.html")
(synopsis "Emacs front-end for various distributed version control systems.")
(description "DVC is a legacy Emacs front-end for a number of
distributed version control systems. It currently supports GNU Arch, GNU
Bazaar, git, Mercurial, and Monotone. It also provides some integration with
Gnus, e.g., for applying patches received by email.")
(license license:gpl2+))))
(define-public emacs-sudo-edit
(let ((commit "cc3d478937b1accd38742bfceba92af02ee9357d")
(revision "6"))
@ -4073,14 +4193,14 @@ (define-public emacs-ob-ipython
(define-public emacs-debbugs
(package
(name "emacs-debbugs")
(version "0.23")
(source (origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/debbugs-"
version ".tar"))
(sha256
(base32
"0mcz97b3sddrc68wi8dz95b2rq7ky88pr2i1ghyhy28as16chmz5"))))
(version "0.24")
(source
(origin
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/debbugs-"
version ".tar"))
(sha256
(base32 "1b8qwdvf3jvw0chrdgbymb2ci9ms45mf90nrljxx7jql2lsr3x63"))))
(build-system emacs-build-system)
(arguments '(#:include '("\\.el$" "\\.wsdl$" "\\.info$")))
(propagated-inputs
@ -5109,31 +5229,28 @@ (define-public emacs-puppet-mode
(license license:gpl3+))))
(define-public emacs-god-mode
(let ((commit "6cf0807b6555eb6fcf8387a4e3b667071ef38964")
(revision "1"))
(package
(name "emacs-god-mode")
(version (string-append "20151005.925."
revision "-" (string-take commit 9)))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/chrisdone/god-mode.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1am415k4xxcva6y3vbvyvknzc6bma49pq3p85zmpjsdmsp18qdix"))))
(build-system emacs-build-system)
(home-page "https://github.com/chrisdone/god-mode")
(synopsis "Minor mode for entering commands without modifier keys")
(description
"This package provides a global minor mode for entering Emacs commands
(package
(name "emacs-god-mode")
(version "2.17.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/chrisdone/god-mode.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"1d2nrj35fzhnycchi0b7m5mbk5fyq7bgpbkkvc5xzqafclrsnapi"))))
(build-system emacs-build-system)
(home-page "https://github.com/chrisdone/god-mode")
(synopsis "Minor mode for entering commands without modifier keys")
(description
"This package provides a global minor mode for entering Emacs commands
without modifier keys. It's similar to Vim's separation of commands and
insertion mode. When enabled all keys are implicitly prefixed with
@samp{C-} (among other helpful shortcuts).")
(license license:gpl3+))))
(license license:gpl3+)))
(define-public emacs-jinja2-mode
(package
@ -7397,7 +7514,7 @@ (define-public emacs-highlight-indentation
(define-public emacs-elpy
(package
(name "emacs-elpy")
(version "1.32.0")
(version "1.34.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -7406,12 +7523,23 @@ (define-public emacs-elpy
(file-name (git-file-name name version))
(sha256
(base32
"0f00mdnzx6xqwni86rgvaa6sfkwyh62xfbwz8qsar15j0j6vc2dj"))))
"1x1z298axbh4xalssnq9nkf2z1sdgmx839vb01xz18kr9lfavx1x"))))
(build-system emacs-build-system)
(arguments
`(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
#:phases
(modify-phases %standard-phases
;; The following tests fail when building with Emacs 27 (see:
;; https://github.com/jorgenschaefer/elpy/issues/1812).
(add-after 'unpack 'disable-problematic-tests
(lambda _
(substitute* "test/elpy-company-backend-test.el"
(("elpy-company-backend-should-add-shell-candidates.*" all)
(string-append all " (skip-unless nil)\n")))
(substitute* "test/elpy-folding-fold-comments-test.el"
(("elpy-fold-at-point-should-fold-and-unfold-comments.*" all)
(string-append all " (skip-unless nil)\n")))
#t))
;; The default environment of the RPC uses Virtualenv to install
;; Python dependencies from PyPI. We don't want/need this in Guix.
(add-before 'check 'do-not-use-virtualenv
@ -9456,48 +9584,26 @@ (define-public emacs-yasnippet
(uri (git-reference
(url "https://github.com/joaotavora/yasnippet.git")
(commit version)))
(file-name (string-append name "-" version ".tar.gz"))
(file-name (git-file-name name version))
(sha256
(base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))
(modules '((guix build utils)))
(snippet
'(begin
;; YASnippet expects a "snippets" subdirectory in the same
;; directory as yasnippet.el, but we don't install it because it's
;; a git submodule pointing to an external repository. Adjust
;; `yas-snippet-dirs' to prevent warnings about a missing
;; directory.
(substitute* "yasnippet.el"
(("^ +'yas-installed-snippets-dir\\)\\)\n")
"))\n"))
#t))))
(base32 "0via9dzw8m5lzymg1h78xkwjssh39zr3g6ccyamlf1rjzjsyxknv"))))
(build-system emacs-build-system)
(arguments
`(#:tests? #t
#:test-command '("emacs" "--batch"
"-l" "yasnippet-tests.el"
"-f" "ert-run-tests-batch-and-exit")
;; FIXME: one failing test.
#:phases
(modify-phases %standard-phases
(add-before 'check 'make-tests-writable
;; Set HOME, otherwise test-rebindings fails.
(add-before 'check 'set-home
(lambda _
(make-file-writable "yasnippet-tests.el")
#t))
(add-before 'check 'delete-rebinding-test
(lambda _
(emacs-batch-edit-file "yasnippet-tests.el"
`(progn (goto-char (point-min))
(re-search-forward "ert-deftest test-rebindings")
(beginning-of-line)
(kill-sexp)
(basic-save-buffer)))
(setenv "HOME" (getcwd))
#t)))))
(home-page "https://github.com/joaotavora/yasnippet")
(synopsis "Yet another snippet extension for Emacs")
(description
"YASnippet is a template system for Emacs. It allows you to type an
abbreviation and automatically expand it into function templates.")
(description "YASnippet is a template system for Emacs. It allows you to
type an abbreviation and automatically expand it into function templates.")
(license license:gpl3+)))
(define-public emacs-yasnippet-snippets
@ -10015,26 +10121,17 @@ (define-public emacs-use-package
(define-public emacs-leaf
(package
(name "emacs-leaf")
(version "3.5.0")
(version "4.2.5")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/conao3/leaf.el.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(method url-fetch)
(uri (string-append "https://elpa.gnu.org/packages/"
"leaf-" version ".tar"))
(sha256
(base32
"1rgd59146wad92yc64las0qgx67k2ifgsw1vwhp40xvkd7kb0r6d"))))
(base32 "0y78mp4c2gcwp7dc87wlx3r4hfmap14vvx8gkjc9nkf99qavpnkw"))))
(build-system emacs-build-system)
(home-page "https://github.com/conao3/leaf.el")
(arguments
`(#:tests? #t
#:test-command '("emacs" "--batch"
"-l" "leaf-tests.el"
"-f" "cort-test-run")))
(synopsis
"Simplify your init.el configuration, extended use-package")
(synopsis "Simplify your init.el configuration, extended use-package")
(description
"This package provides macros that allows you to declaratively configure
settings typical of an Elisp package with various keywords. The syntax is
@ -14524,7 +14621,7 @@ (define-public emacs-helm-mode-manager
(define-public emacs-hy-mode
(package
(name "emacs-hy-mode")
(version "1.0.3")
(version "1.0.4")
(source
(origin
(method git-fetch)
@ -14533,7 +14630,7 @@ (define-public emacs-hy-mode
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1jxximiznz7fw9ys5k6plw85zrbzvxidql7py1fdi425fdp4058z"))))
(base32 "0gihxlmfminadaqdr8d2zccd7wwygl3m0gfzxsk5izi7f8hl4w7f"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)
@ -14672,12 +14769,11 @@ (define-public emacs-org-ref
notes.")
(license license:gpl3+))))
;; This project is unmaintained. Please use emacs-org-re-reveal instead.
(define-public emacs-org-reveal
(let ((commit "9210413202a360a559a51e8275faa42be68cf44b"))
(let ((commit "84039bb499290926511b04749882ecb5eda45a0c"))
(package
(name "emacs-org-reveal")
(version (git-version "0.1" "3" commit))
(version (git-version "20200607" "1" commit))
(source (origin
(method git-fetch)
(uri (git-reference
@ -14686,7 +14782,7 @@ (define-public emacs-org-reveal
(file-name (git-file-name name version))
(sha256
(base32
"1wlfk823d3vrn480m38j7ncaqm193lvh6y22b92fx4b3yhdbndza"))))
"1fx3xmnkpfljrdmy0dsyq79k93ky57gcqm1ad9qbzykk7qjvmmi8"))))
(build-system emacs-build-system)
(home-page "https://github.com/yjwen/org-reveal")
(synopsis "Org and Reveal.js powered HTML presentation tool")
@ -16936,11 +17032,11 @@ (define-public emacs-github-review
(license license:gpl3+))))
(define-public emacs-deadgrep
(let ((commit "3fc7ca1f58e190f0c80da455a0e40187e673020e")
(revision "2"))
(let ((commit "7e50e71c6ff4e17dded43e0836dae4e5ec020fcf")
(revision "1"))
(package
(name "emacs-deadgrep")
(version (git-version "0.8" revision commit))
(version (git-version "0.10" revision commit))
(source
(origin
(method git-fetch)
@ -16950,9 +17046,9 @@ (define-public emacs-deadgrep
(file-name (git-file-name name version))
(sha256
(base32
"016gwqxd9aqzjw3hqv3vdf8cs6la8r65g6azg5rlmjqwfx3vsaha"))))
"1vjhrq02l8gvdn2haygzq7277hnhjchs9xrfpcnh76gqip200gx4"))))
(build-system emacs-build-system)
(inputs
(propagated-inputs
`(("emacs-dash" ,emacs-dash)
("emacs-s" ,emacs-s)
("emacs-spinner" ,emacs-spinner)))

View file

@ -44,7 +44,9 @@ (define-module (gnu packages emulators)
#:use-module (gnu packages boost)
#:use-module (gnu packages backup)
#:use-module (gnu packages cdrom)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cross-base)
#:use-module (gnu packages curl)
#:use-module (gnu packages elf)
#:use-module (gnu packages fonts)
@ -88,7 +90,8 @@ (define-module (gnu packages emulators)
#:use-module (gnu packages web)
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu))
#:use-module (guix build-system gnu)
#:use-module (guix build-system python))
(define-public desmume
(package
@ -414,7 +417,7 @@ (define-public higan
(define-public mgba
(package
(name "mgba")
(version "0.8.1")
(version "0.8.2")
(source
(origin
(method git-fetch)
@ -423,7 +426,7 @@ (define-public mgba
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1if82mfaak3696w5d5yshynpzywrxgvg3ifdfi2rwlpvq1gpd429"))
(base32 "0dlwhn3hrpaqnl5hjs53y8j2i16idxrg3gy688gcwrc9z1a6bkn2"))
(modules '((guix build utils)))
(snippet
;; Make sure we don't use the bundled software.
@ -1622,3 +1625,156 @@ (define-public gens-gs
from various forks of Gens, and improved platform portability.")
(supported-systems '("i686-linux" "x86_64-linux"))
(license license:gpl2+)))
(define-public bsnes
(package
(name "bsnes")
(version "115")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/bsnes-emu/bsnes")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0j054x38fwai61vj36sc04r3zkzay5acq2cgd9zqv5hs51s36g5b"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list "-C" "bsnes"
(string-append "prefix=" (assoc-ref %outputs "out")))
#:tests? #f ; No tests.
#:phases (modify-phases %standard-phases
(delete 'configure))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("alsa-lib" ,alsa-lib)
("ao" ,ao)
("cairo" ,cairo)
("eudev" ,eudev)
("gtksourceview-2" ,gtksourceview-2)
("libxrandr" ,libxrandr)
("libxv" ,libxv)
("openal" ,openal)
("pulseaudio" ,pulseaudio)
("sdl2" ,sdl2)))
(home-page "https://bsnes.dev/")
(synopsis "Emulator for the Super Nintendo / Super Famicom systems")
(description
"bsnes is a Super Nintendo / Super Famicom emulator that focuses on
performance, features, and ease of use.")
(license license:gpl3)))
;; python-pwntools requires a -rc release of unicorn
(define-public unicorn
(let ((unless-x86
(lambda (code)
(if (member (%current-system) '("x86_64-linux" "i686-linux"))
'()
code))))
(package
(name "unicorn")
(version "1.0.2-rc4")
;; NOTE: unicorn ships a bundled QEMU, but with a lot of custom modifications.
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/unicorn-engine/unicorn")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"17nyccgk7hpc4hab24yn57f1xnmr7kq4px98zbp2bkwcrxny8gwy"))))
(outputs '("out" "python"))
;; The main library is not written in Python, but the build process has
;; little in common with any defined build system, so we might as well
;; build on top of python-build-system and make use of all
;; the Python-specific phases that can be reused.
(build-system python-build-system)
(arguments
`(#:modules ((srfi srfi-26)
(guix build python-build-system)
(guix build utils))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'install-bindings-to-python-output
(lambda* (#:key outputs #:allow-other-keys)
;; python-build-system will build the bindings and install them to
;; the "out" output, so change the build-internal names of the
;; outputs.
;;
;; TODO: remove this once #40469 lands, through the core-updates
;; holding zone, on master.
(set-car! (assoc "out" outputs) "lib")
(set-car! (assoc "python" outputs) "out")
#t))
(add-before 'build 'build-library
(lambda* (#:key inputs #:allow-other-keys)
(invoke "make"
"-j" (number->string (parallel-job-count))
"UNICORN_STATIC=no"
"CC=gcc")))
(add-after 'build-library 'install-library
(lambda* (#:key outputs #:allow-other-keys)
(invoke "make" "install"
"UNICORN_STATIC=no"
(string-append
"PREFIX="
(assoc-ref outputs "lib")))))
(add-before 'build 'prepare-bindings
(lambda* (#:key outputs #:allow-other-keys)
(chdir "bindings/python")
;; Set this environment variable so that the Python bindings
;; don't build their own copy of the shared object, but use
;; a dummy value such that the bindings test suite uses the
;; same mechanism for loading the library as any other user.
(setenv "LIBUNICORN_PATH" "1")
(substitute* "unicorn/unicorn.py"
(("_path_list = \\[.*")
(string-append
"_path_list = [\""
(assoc-ref outputs "lib")
;; eat the rest of the list
"/lib\"] + 0*[")))
#t))
(add-before 'check 'check-library
(lambda* (#:key outputs #:allow-other-keys)
(for-each
(lambda (suite)
(with-directory-excursion
(string-append "../../tests/" suite)
(invoke "make" "test" "CC=gcc"
,@(unless-x86
'("AS=i686-unknown-linux-gnu-as"
"OBJCOPY=i686-unknown-linux-gnu-objcopy")))))
'("unit" "regress"))
#t))
(add-after 'install 'install-samples
(lambda* (#:key outputs #:allow-other-keys)
(let* ((python-samples (find-files "." "sample_.*"))
(c-samples (find-files "../../samples" ".*\\.c"))
(python-docdir
(string-append (assoc-ref outputs "out")
"/share/doc/unicorn/samples"))
(c-docdir
(string-append (assoc-ref outputs "lib")
"/share/doc/unicorn/samples")))
(for-each (cut install-file <> c-docdir) c-samples)
(for-each (cut install-file <> python-docdir) python-samples)
#t))))))
(native-inputs
;; NOTE: cross-binutils needs to be wrapped with unless-x86, as otherwise
;; the linker provided by the package will be used, circumventing the ld-wrapper.
`(,@(unless-x86
`(("assembler-for-tests" ,(cross-binutils "i686-unknown-linux-gnu"))))
("cmocka" ,cmocka)
("hexdump-for-tests" ,util-linux)))
(home-page "http://www.unicorn-engine.org")
(synopsis "Unicorn CPU emulator framework")
(description
"Unicorn is a lightweight, multi-platform, multi-architecture CPU emulator
framework based on QEMU.")
(license license:gpl2+))))

View file

@ -18,6 +18,7 @@
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Ekaitz Zarraga <ekaitz@elenq.tech>
;;; Copyright © 2020 B. Wilson <elaexuotee@wilsonb.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -54,6 +55,7 @@ (define-module (gnu packages engineering)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bdw-gc)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
@ -61,6 +63,7 @@ (define-module (gnu packages engineering)
#:use-module (gnu packages commencement)
#:use-module (gnu packages compression)
#:use-module (gnu packages curl)
#:use-module (gnu packages dejagnu)
#:use-module (gnu packages digest)
#:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
@ -85,8 +88,10 @@ (define-module (gnu packages engineering)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux) ;FIXME: for pcb
#:use-module (gnu packages lisp)
#:use-module (gnu packages m4)
#:use-module (gnu packages maths)
#:use-module (gnu packages man)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages mpi)
#:use-module (gnu packages ncurses)
@ -103,6 +108,7 @@ (define-module (gnu packages engineering)
#:use-module (gnu packages tls)
#:use-module (gnu packages tex)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web)
#:use-module (gnu packages wxwidgets)
#:use-module (gnu packages xml)
#:use-module (gnu packages openkinect)
@ -1027,15 +1033,14 @@ (define-public linsmith
(define-public volk
(package
(name "volk")
(version "2.2.1")
(version "2.3.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.libvolk.org/releases/volk-"
version ".tar.gz"))
(sha256
(base32
"1wz5nhmw6np8ka30pgy1qnima3rk2ksln4klfhrj7wah3fian0k9"))))
(base32 "1pjxz3piwy49njj5y2zk437prwkv9lfs5g48577jj3kcsg766vi3"))))
(build-system cmake-build-system)
(arguments
`(#:phases
@ -1058,16 +1063,16 @@ (define-public volk
(,(string-append python "/bin:")))))
#t)))))
(inputs
`(("boost" ,boost)))
(native-inputs
`(("python" ,python-wrapper)
`(("boost" ,boost)
("python" ,python-wrapper)
("python-mako" ,python-mako)))
(home-page "https://www.libvolk.org/")
(synopsis "Vector-Optimized Library of Kernels")
(description
"@code{volk} contains procedures with machine-specific optimizations
for mathematical functions. It also provides an machine-independent
interface to select the best such procedures to use on a given system.")
"@acronym{VOLK, Vector-Optimized Library of Kernels} contains procedures
with machine-specific optimizations for mathematical functions. It also
provides a machine-independent interface to select the best such procedures to
use on a given system.")
(license license:gpl3+)))
(define-public minicom
@ -2624,7 +2629,7 @@ (define-public lib3ds
(define-public meshlab
(package
(name "meshlab")
(version "2020.05")
(version "2020.06")
(source (origin
(method git-fetch)
(uri (git-reference
@ -2633,7 +2638,7 @@ (define-public meshlab
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
(base32 "00sim20ka9vjwljixdj4cqd285j21mpaq05ari7nqq2w8yyglp5m"))))
(base32 "1cgx24wxh2ah5pff51rcrk6x8qcdjpkxcdak7s4cfzmxvjlshydd"))))
(build-system cmake-build-system)
(inputs
`(("qtbase" ,qtbase)
@ -2677,3 +2682,65 @@ (define-public meshlab
a program that can perform mesh processing tasks in batch mode, without a
GUI.")
(license license:gpl3+)))
(define-public poke
;; Upstream has yet to tag any releases.
(let ((commit "d33317a46e3b7c48130a471a48cbfea1abab70d8")
(revision "0"))
(package
(name "poke")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "git://git.savannah.gnu.org/poke.git")
(commit commit)
(recursive? #t)))
(sha256
(base32 "1dd0r1x123bqi78lrsk58rvg9c9wka0kywdyzn7g3i4hkh54xb7d"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
;; The GUI, which we elide, requires tcl and tk.
(native-inputs `(("autoconf" ,autoconf)
("automake" ,automake)
;; Requires bison 3.6+ but we currently only have 3.5.
;; Bison 3.6 will be available in the next core update.
("bison-3.6" ,bison-3.6)
("clisp" ,clisp)
("dejagnu" ,dejagnu)
("flex" ,flex)
("gettext" ,gettext-minimal)
("help2man" ,help2man)
("libtool" ,libtool)
("perl" ,perl)
("pkg-config" ,pkg-config)
("python-2" ,python-2)
("python-3" ,python-3)
("texinfo" ,texinfo)))
;; FIXME: Enable NBD support by adding `libnbd' (currently unpackaged).
;; FIXME: A "hyperlinks-capable" `libtexststyle' needed for the hserver.
(inputs `(("json-c" ,json-c)
("libgc" ,libgc)
("readline" ,readline)))
(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")
#:phases (modify-phases %standard-phases
;; This is a non-trivial bootstrap that needs many of the
;; native-inputs and thus must run after `patch-shebangs'.
(delete 'bootstrap)
(add-after 'patch-source-shebangs 'bootstrap
(lambda _
(invoke "./bootstrap" "--no-git"
"--no-bootstrap-sync"
"--gnulib-srcdir=gnulib")
#t)))))
(home-page "http://jemarch.net/poke.html")
(synopsis "Interactive, extensible editor for binary data")
(description "GNU poke is an interactive, extensible editor for binary
data. Not limited to editing basic entities such as bits and bytes, it
provides a full-fledged procedural, interactive programming language designed
to describe data structures and to operate on them.")
(license license:gpl3+))))

View file

@ -70,7 +70,7 @@ (define-module (gnu packages enlightenment)
(define-public efl
(package
(name "efl")
(version "1.24.2")
(version "1.24.3")
(source (origin
(method url-fetch)
(uri (string-append
@ -78,7 +78,7 @@ (define-public efl
version ".tar.xz"))
(sha256
(base32
"0w3srvigg4kfi7xq76c7y4hnq5yr2gxrrsvlyj1g2wc1igz1vyg1"))))
"0ajwc8lmay5ai7nsrp778g393h0p4h98p4c22gic2w61fgkcd5fy"))))
(build-system meson-build-system)
(native-inputs
`(("check" ,check)
@ -152,11 +152,6 @@ (define-public efl
; (assoc-ref %build-inputs "hyphen")
; "/share/hyphen")
"-Dnetwork-backend=connman"
,@(match (%current-system)
("armhf-linux"
'("-opengl=es-egl"))
(_
'("-Dopengl=full")))
;; for wayland
"-Dwl=true"
"-Ddrm=true")

View file

@ -35,6 +35,7 @@
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
;;; Copyright © 2020 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2020 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2020 Simen Endsjø <simendsjo@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -63,6 +64,7 @@ (define-module (gnu packages fonts)
#:use-module (guix build-system meson)
#:use-module (guix build-system trivial)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gettext)
@ -1170,7 +1172,7 @@ (define-public font-iosevka
(package
(name "font-iosevka")
;; When updating, also update the hash of the Iosevka variant(s) below.
(version "2.3.3")
(version "3.1.1")
(source
(origin
(method url-fetch/zipbomb)
@ -1178,7 +1180,7 @@ (define-public font-iosevka
"/releases/download/v" version
"/ttc-iosevka-" version ".zip"))
(sha256
(base32 "0jkv5rkg5hi0avhwyhcjiqzjslp6zjj77f09vxx2gj9l93byz731"))))
(base32 "1xnkfr11rdjnin2fvgkp9vxxigfbfdncr0wy6n78mlm3p1pqwfrm"))))
(build-system font-build-system)
(home-page "https://be5invis.github.io/Iosevka/")
(synopsis "Coders' typeface, built from code")
@ -1201,7 +1203,7 @@ (define-public font-iosevka-slab
"/releases/download/v" version
"/ttc-iosevka-slab-" version ".zip"))
(sha256
(base32 "1rkmgi08kknc1fg54zpa6w92m3b3v7pc8cpwygz22kgd2h0mdrr8"))))))
(base32 "1n3lh015mvsdbyygpg3p3yqjpqdn1fdvjh1bhi2ggjanhifjsgzh"))))))
(define-public font-iosevka-term
(package
@ -1213,10 +1215,10 @@ (define-public font-iosevka-term
(method url-fetch/zipbomb)
(uri (string-append "https://github.com/be5invis/Iosevka"
"/releases/download/v" version
"/02-iosevka-term-" version ".zip"))
"/ttf-iosevka-term-" version ".zip"))
(sha256
(base32
"1mxlb3qf64nykjd0x4gjfvib3k5kyv9ssv9iyzxxgk2z80bydz00"))))
"1mwzwpdppmcf03fgb5q6ksj0kk93wwaz2isk24wj1cm66r8psxk0"))))
(arguments
`(#:phases
(modify-phases %standard-phases
@ -1235,10 +1237,10 @@ (define-public font-iosevka-term-slab
(method url-fetch/zipbomb)
(uri (string-append "https://github.com/be5invis/Iosevka"
"/releases/download/v" version
"/06-iosevka-term-slab-" version ".zip"))
"/ttf-iosevka-term-slab-" version ".zip"))
(sha256
(base32
"1gc16hih157qy6vpa8f88psq0fnksiigi3msqazc75zsm3z4kzqj"))))
"0fiwxkf2gv38ia695wh8cvnb58sqs3fixjd33q1pp9cps94wzjpg"))))
(arguments
`(#:phases
(modify-phases %standard-phases
@ -1247,10 +1249,52 @@ (define-public font-iosevka-term-slab
(for-each make-file-writable (find-files "." ".*"))
#t)))))))
(define-public font-iosevka-aile
(package
(inherit font-iosevka)
(name "font-iosevka-aile")
(version (package-version font-iosevka))
(source
(origin
(method url-fetch/zipbomb)
(uri (string-append "https://github.com/be5invis/Iosevka"
"/releases/download/v" version
"/ttc-iosevka-aile-" version ".zip"))
(sha256
(base32 "15kz8ahlynnb79s2d367a1fallc4l3j3957yj43qrymayagkh8sv"))))))
(define-public font-iosevka-etoile
(package
(inherit font-iosevka)
(name "font-iosevka-etoile")
(version (package-version font-iosevka))
(source
(origin
(method url-fetch/zipbomb)
(uri (string-append "https://github.com/be5invis/Iosevka"
"/releases/download/v" version
"/ttc-iosevka-etoile-" version ".zip"))
(sha256
(base32 "0q9299mc595m251v9zj9b0zparl2qq8dwx090l0jkfpr2az9xr8q"))))))
(define-public font-iosevka-sparkle
(package
(inherit font-iosevka)
(name "font-iosevka-sparkle")
(version (package-version font-iosevka))
(source
(origin
(method url-fetch/zipbomb)
(uri (string-append "https://github.com/be5invis/Iosevka"
"/releases/download/v" version
"/ttc-iosevka-sparkle-" version ".zip"))
(sha256
(base32 "0nhvcnvl11iqmsxsyrxlbnwy9z1vdhqv6p3g7fig9ra6n5j9k5kn"))))))
(define-public font-sarasa-gothic
(package
(name "font-sarasa-gothic")
(version "0.12.6")
(version "0.12.7")
(source
(origin
(method url-fetch)
@ -1258,7 +1302,7 @@ (define-public font-sarasa-gothic
"/releases/download/v" version
"/sarasa-gothic-ttc-" version ".7z"))
(sha256
(base32 "1g6k9d5lajchbhsh3g12fk5cgilyy6yw09fals9vc1f9wsqvac86"))))
(base32 "09v65k00g8m953s6riz9xjzb2jgr6v5pdhcllalzzl7c1cn2xl3k"))))
(build-system font-build-system)
(arguments
`(#:phases (modify-phases %standard-phases
@ -1795,3 +1839,61 @@ (define-public font-ipa-mj-mincho
to write people's name, or for formal business situations where it is necessary
to have a detailed and proper character style.")
(license license:ipa)))
(define-public font-fontna-yasashisa-antique
(package
(name "font-fontna-yasashisa-antique")
(version "0")
(source (origin
(method url-fetch)
(uri (string-append "http://flop.sakura.ne.jp/font/fontna-op/"
"YasashisaAntiqueFont.zip"))
(sha256
(base32
"1hl2qk3lzmh9h2vv5647vhlslkn3vqbq9rqgp4wzybajafx8c6nj"))))
(build-system font-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
;; encoding issues cause many phases to fail
(add-after 'unpack 'fix-encoding
(lambda _
;; This directory, TrueTypeサポート外, is not properly encoded,
;; which makes rename-file fail. Instead, use shell globbing to
;; select and rename the directory.
(invoke "sh" "-c" "mv TrueType* TrueType")
#t)))))
(native-inputs
`(("bash" ,bash-minimal)
("coreutils" ,coreutils)))
(home-page "http://www.fontna.com/blog/1122/")
(synopsis "Mix font of gothic kanji and minchou kana")
(description "Antique is a font that is popular to write manga bubbles,
dictionary headwords and picture books. This font reduces the thickness
differences in characters compared to other antique fonts.")
(license (list license:ipa
(license:non-copyleft "mplus-TESTFLIGHT-057/LICENSE_E")))))
(define-public font-mplus-testflight
(package
(name "font-mplus-testflight")
(version "063a")
(source (origin
(method url-fetch)
(uri (string-append "https://osdn.net/frs/redir.php?"
"m=gigenet&f=mplus-fonts%2F62344%2Fmplus-TESTFLIGHT-"
version ".tar.xz"))
(file-name (string-append name "-" version ".tar.xz"))
(sha256
(base32
"0yfx9i77638yrgclnwwl4af79ri3vifi1nslwi6mgzva9cxrgss4"))))
(build-system font-build-system)
(home-page "https://mplus-fonts.osdn.jp/index.html")
(synopsis "Japanese font collection")
(description "M+ is a collection of Japanese fonts with all Latin glyph
sets, with Basic Latin, Latin-1 Supplement, Latin Extended-A, and IPA
Extensions. In addition to European letters used in many Western European
languages, it contains Japanese characters, including Kana glyphs and more
than 5,300 Kanji glyphs, as well major international phonetic symbols,
operators and special symbols.")
(license (license:non-copyleft "file:///LICENSE_E"))))

View file

@ -4,7 +4,7 @@
;;; Copyright © 2015, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2018 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015, 2016, 2017 David Thompson <davet@gnu.org>
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018 Julian Graham <joolean@gmail.com>
@ -1495,7 +1495,7 @@ (define-public mygui-gl
(define-public openmw
(package
(name "openmw")
(version "0.45.0")
(version "0.46.0")
(source
(origin
(method url-fetch)
@ -1504,7 +1504,7 @@ (define-public openmw
"openmw-" version ".tar.gz"))
(sha256
(base32
"0r0wgvv1faan8z8lbply8lks4hcnppifjrcz04l5zvq6yiqzjg5n"))))
"0n7x39kwhwmi6ly9hd7yc6dhlrmmdmx30ahc46kmlzzn2n7mm8q7"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; No test target
@ -1743,20 +1743,25 @@ (define-public eureka
(define-public guile-chickadee
(package
(name "guile-chickadee")
(version "0.4.0")
(version "0.5.0")
(source (origin
(method url-fetch)
(uri (string-append "https://files.dthompson.us/chickadee/"
"chickadee-" version ".tar.gz"))
(sha256
(base32
"1fdicsgls5cp0yffcm5vjmav67gv9bxhz1s3jvdvinspxb485x7l"))))
"0y3s0p4zyghys48sayfhcbmxmflh8hwawnx5an2jlb3x84yr0dsx"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags '("GUILE_AUTO_COMPILE=0")))
(propagated-inputs
`(("guile-opengl" ,guile-opengl)
("guile-sdl2" ,guile-sdl2)))
(inputs
`(("guile" ,guile-2.2)))
`(("guile" ,guile-2.2)
("libvorbis" ,libvorbis)
("mpg123" ,mpg123)
("openal" ,openal)))
(native-inputs
`(("pkg-config" ,pkg-config)
("texinfo" ,texinfo)))
@ -1779,20 +1784,23 @@ (define-public guile3.0-chickadee
(package
(inherit guile-chickadee)
(name "guile3.0-chickadee")
(version "0.4.0")
(version "0.5.0")
(source (origin
(method url-fetch)
(uri (string-append "https://files.dthompson.us/chickadee/"
"chickadee-" version ".tar.gz"))
(sha256
(base32
"1fdicsgls5cp0yffcm5vjmav67gv9bxhz1s3jvdvinspxb485x7l"))))
"0y3s0p4zyghys48sayfhcbmxmflh8hwawnx5an2jlb3x84yr0dsx"))))
(build-system gnu-build-system)
(propagated-inputs
`(("guile-opengl" ,guile3.0-opengl)
("guile-sdl2" ,guile3.0-sdl2)))
(inputs
`(("guile" ,guile-3.0)))
`(("guile" ,guile-3.0)
("libvorbis" ,libvorbis)
("mpg123" ,mpg123)
("openal" ,openal)))
(native-inputs
`(("pkg-config" ,pkg-config)
("texinfo" ,texinfo)))

View file

@ -146,6 +146,7 @@ (define-module (gnu packages games)
#:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages perl-compression)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio)
#:use-module (gnu packages python)
@ -176,14 +177,15 @@ (define-module (gnu packages games)
#:use-module (gnu packages messaging)
#:use-module (gnu packages networking)
#:use-module (guix build-system copy)
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
#:use-module (guix build-system scons)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (guix build-system cmake)
#:use-module (guix build-system qt)
#:use-module (guix build-system scons)
#:use-module (guix build-system trivial)
#:use-module ((srfi srfi-1) #:hide (zip))
#:use-module (srfi srfi-26))
@ -515,7 +517,7 @@ (define-public cataclysm-dda
(define-public corsix-th
(package
(name "corsix-th")
(version "0.63")
(version "0.64")
(source
(origin
(method git-fetch)
@ -524,7 +526,7 @@ (define-public corsix-th
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1rkyk8g55xny276s0hr5k8mq6f4nzz56d3k2mp09dzfymrqb8hgi"))))
(base32 "0chh9cv2kdc39sr0x8hclcyzd8dz2y6grgagqzkvr7j570wa5cqh"))))
(build-system cmake-build-system)
(arguments
`(#:phases
@ -1011,6 +1013,45 @@ (define-public julius
(license (list license:agpl3
license:zlib)))) ; ext/tinyfiledialogs
(define-public augustus
(package
(inherit julius)
(name "augustus")
(version (package-version julius))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Keriew/augustus")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0ii0w0iwa9zv5bbqfcps5mxifd796m6fw4gvjf09pkm3yjgqc0ag"))
;; Remove unused bundled libraries.
(modules '((guix build utils)))
(snippet
'(begin
(with-directory-excursion "ext"
(for-each delete-file-recursively '("dirent" "png" "SDL2" "zlib")))
#t))))
(arguments
;; No tests. See https://github.com/Keriew/augustus/issues/82.
`(#:tests? #f))
(home-page "https://github.com/Keriew/augustus")
(synopsis "Re-implementation of Caesar III game engine with gameplay changes")
(description
"Fork of Julius, an engine for the a city-building real-time strategy
game Caesar III. Gameplay enhancements include:
@itemize
@item roadblocks;
@item market special orders;
@item global labour pool;
@item partial warehouse storage;
@item increased game limits;
@item zoom controls.
@end itemize\n")))
(define-public meandmyshadow
(package
(name "meandmyshadow")
@ -1733,6 +1774,118 @@ (define-public roguebox-adventures
license:gpl3+
license:silofl1.1))))
(define-public seahorse-adventures
(package
(name "seahorse-adventures")
(version "1.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dulsi/seahorse-adventures.git")
(commit (string-append "release-" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1rnvk06npaqcpjz5z6xcmssz61i32s422lydp49vrnf3j2g4yimd"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-1)))
;; Remove non-free (non-commercial) font.
(snippet
`(begin
(for-each delete-file (find-files "data/fonts" "."))
#t))))
(build-system python-build-system)
(arguments
`(#:tests? #f ;no test
#:phases
(modify-phases %standard-phases
(delete 'build) ;pure Python
(replace 'install ;no install script
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(share (string-append out "/share"))
(applications (string-append share "/applications"))
(data (string-append share "/seahorse-adventures")))
;; Install data.
(for-each (lambda (f)
(chmod f #o555)
(install-file f data))
'("leveledit.py" "run_game.py" "tileedit.py"))
(for-each (lambda (dir)
(let ((target (string-append data "/" dir)))
(mkdir-p target)
(copy-recursively dir target)))
'("data" "lib"))
;; Create executable.
(mkdir-p bin)
(let ((executable (string-append bin "/seahorse-adventures")))
(call-with-output-file executable
(lambda (p)
(format p
"#!~a~@
export PYTHONPATH=~a:~a~@
exec -a \"~a\" ~a \"$@\"~%"
(which "bash") data (getenv "PYTHONPATH")
(which "python3")
(string-append data "/run_game.py"))))
(chmod executable #o555))
;; Add desktop file.
(mkdir-p applications)
(make-desktop-entry-file
(string-append applications "/seahorse-adventures.desktop")
#:name "Seahorse Adventures"
#:comment
'((#f "Help Barbie the seahorse float on bubbles to the moon"))
#:exec ,name
#:icon ,name
#:categories '("Game" "ActionGame")
#:keywords '("game" "retro" "platform"))
;; Add icons.
(for-each
(lambda (size)
(let ((dir (string-append share "/icons/hicolor/"
size "x" size "/apps")))
(mkdir-p dir)
(copy-file
(string-append "icon" size ".png")
(string-append dir "/searhorse-adventures.png"))))
'("32" "64" "128")))
#t))
(add-after 'install 'unbundle-fonts
;; Unbundle Bitstream Vera font and replace deleted one.
(lambda* (#:key outputs inputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(data (string-append out "/share/seahorse-adventures"))
(vera (string-append (assoc-ref inputs "font-bitstream-vera")
"/share/fonts/truetype/Vera.ttf")))
(let ((themes-dir (string-append data "/data/themes/")))
(for-each
(lambda (theme)
(let ((target (string-append themes-dir theme "/Vera.ttf")))
(delete-file target)
(symlink vera target)))
'("default" "gray")))
(symlink vera (string-append data "/data/fonts/04B_20__.TTF"))
(substitute* (string-append data "/lib/main.py")
(("f_scale = 0.35") "f_scale = 0.47")))
#t)))))
(inputs
`(("font-bitstream-vera" ,font-bitstream-vera)
("python-pygame" ,python-pygame)))
(home-page "http://www.imitationpickles.org/barbie/")
(synopsis "Help Barbie the seahorse float on bubbles to the moon")
(description
"Barbie Seahorse Adventures is a retro style platform arcade game.
You are Barbie the seahorse who travels through the jungle, up to the
volcano until you float on bubbles to the moon. On the way to your
final destination you will encounter various enemies, servants of the
evil overlord who has stolen the galaxy crystal. Avoid getting hit
and defeat them with your bubbles!")
;; GPL2+ is for code, CC0 is for art.
(license (list license:gpl2+ license:cc0))))
(define-public superstarfighter
(package
(name "superstarfighter")
@ -2970,7 +3123,7 @@ (define-public gnujump
(define-public wesnoth
(package
(name "wesnoth")
(version "1.14.12")
(version "1.14.13")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/wesnoth/wesnoth-"
@ -2979,7 +3132,7 @@ (define-public wesnoth
"wesnoth-" version ".tar.bz2"))
(sha256
(base32
"027bc1363hdgahw7dvd22fvvqd132byxnljfbq6lvlr5ci01q8mk"))))
"1pmqj4rah0256qi9w394ksb9apid723i5f5agkg6x1lahb1ac91q"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ;no check target
@ -5225,7 +5378,7 @@ (define-public fillets-ng
(define-public crawl
(package
(name "crawl")
(version "0.24.0")
(version "0.25.0")
(source
(origin
(method url-fetch)
@ -5238,8 +5391,18 @@ (define-public crawl
(string-append "http://crawl.develz.org/release/stone_soup-"
version "-nodeps.tar.xz")))
(sha256
(base32 "0kdq6s12myxfdg75ma9x3ys2nd0xwb3xm2ynlmhg4628va0pnixr"))
(patches (search-patches "crawl-upgrade-saves.patch"))))
(base32 "0rn1wjxdqw33caiwisfypm1j8cid3c9pz01ahicl17144zs29z3d"))
(patches (search-patches "crawl-upgrade-saves.patch"))
;; The 0.25.0 -nodeps.tar.xz was built from an OSX machine; normally
;; apparently it's built from a Debian machine before the Debian
;; packages are made. These ._* files are binary and have the string
;; "Mac OS X" in them... removing these seems to result in compilation
;; again.
(modules '((guix build utils)))
(snippet
'(begin
(for-each delete-file (find-files "." "^\\._"))
#t))))
(build-system gnu-build-system)
(inputs
`(("lua51" ,lua-5.1)
@ -6842,6 +7005,104 @@ (define-public frotz-sdl
(home-page "http://frotz.sourceforge.net")
(license license:gpl2+))))
(define-public frozen-bubble
;; Last official release is very outdated (2010). Use latest commit (2017).
(let ((commit "d6a029110ad6ab9e4960052e175addc98807fb7e")
(revision "1"))
(package
(name "frozen-bubble")
(version (git-version "2.2.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/kthakore/frozen-bubble.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1rfrcym5lf4qac2qdklikb1ywijyxypq298azzxahy461dadl6cx"))))
(build-system perl-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
;; Build process needs to create files in the "server"
;; directory.
(add-after 'unpack 'fix-permissions
(lambda _
(for-each make-file-writable
(find-files "server" "." #:directories? #t))))
;; By default, build stops at warnings.
(add-after 'unpack 'prevent-build-error
(lambda _
(substitute* "inc/My/Builder.pm"
(("-Werror") ""))
#t))
(add-after 'install 'install-desktop-file-and-icons
(lambda* (#:key outputs #:allow-other-keys)
(let* ((share (string-append (assoc-ref outputs "out") "/share"))
(hicolor (string-append share "/icons/hicolor")))
;; Create desktop entry.
(make-desktop-entry-file
(string-append share "/applications/" ,name ".desktop")
#:name "Frozen Bubble"
#:comment "Frozen Bubble arcade game"
#:exec ,name
#:icon ,name
#:categories '("Game" "ArcadeGame"))
;; Add icons.
(with-directory-excursion "share/icons"
(for-each
(lambda (size)
(let* ((dim (string-append size "x" size))
(dir (string-append hicolor "/" dim "/apps")))
(mkdir-p dir)
(copy-file
(string-append "frozen-bubble-icon-" dim ".png")
(string-append dir "/frozen-bubble.png"))))
'("16" "32" "48" "64"))))
#t))
(add-after 'install 'wrap-perl-libs
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(perl5lib (getenv "PERL5LIB")))
(for-each (lambda (prog)
(wrap-program (string-append out "/" prog)
`("PERL5LIB" ":" prefix
(,(string-append perl5lib ":" out
"/lib/perl5/site_perl")))))
(find-files "bin" ".")))
#t)))))
(native-inputs
`(("perl-alien-sdl" ,perl-alien-sdl)
("perl-capture-tiny" ,perl-capture-tiny)
("perl-locale-maketext-lexicon" ,perl-locale-maketext-lexicon)
("perl-module-build" ,perl-module-build)
("pkg-config" ,pkg-config)))
(inputs
`(("glib" ,glib)
("perl-compress-bzip2" ,perl-compress-bzip2)
("perl-file-sharedir" ,perl-file-sharedir)
("perl-file-slurp" ,perl-file-slurp)
("perl-file-which" ,perl-file-which)
("perl-ipc-system-simple" ,perl-ipc-system-simple)
("perl-sdl" ,perl-sdl)
("sdl" ,(sdl-union (list sdl sdl-image sdl-mixer sdl-pango sdl-ttf)))))
(home-page "http://frozen-bubble.org/")
(synopsis "Puzzle with bubbles")
(description
"Frozen-Bubble is a clone of the popular Puzzle Bobble game, in which
you attempt to shoot bubbles into groups of the same color to cause them to
pop.
Players compete as penguins and must use the arrow keys to aim a colored
bubble at groups of bubbles. The objective is to clear all the bubbles off
the screen before a bubble passes below a line at the bottom.
It features 100 single-player levels, a two-player mode, music and striking
graphics. A level editor is also included to allow players to create and play
their own levels.")
(license license:gpl2))))
(define-public libmanette
(package
(name "libmanette")
@ -10273,43 +10534,54 @@ (define-public kjumpingcube
(define-public xmoto
(package
(name "xmoto")
(version "0.5.11")
(version "0.6.1")
(source
(origin
(method url-fetch)
(uri (string-append
"http://download.tuxfamily.org/xmoto/xmoto/" version "/"
"xmoto-" version "-src.tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/xmoto/xmoto.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1ci6r8zd0l7z28cy92ddf9dmqbdqwinz2y1cny34c61b57wsd155"))
(patches
(search-patches
"xmoto-remove-glext.patch" ;fixes licensing issue
"xmoto-reproducible.patch"
"xmoto-utf8.patch"))
;; Unbundle ODE.
(modules '((guix build utils)))
(base32 "00f5ha79lfa2iiaz66wl0hl5dapa1l15qdr7m7knzi0ll7j6z66n"))
(modules '((guix build utils)
(ice-9 ftw)
(srfi srfi-1)))
;; XXX: Remove some bundled libraries. Guix provides Chipmunk, but
;; it appears to be incompatible with the (older) one bundled.
(snippet
`(begin
(delete-file-recursively "src/ode")
(let ((keep '("chipmunk" "glad" "md5sum")))
(with-directory-excursion "vendor"
(for-each delete-file-recursively
(lset-difference string=?
(scandir ".")
(cons* "." ".." keep))))
(substitute* "src/CMakeLists.txt"
(("add_subdirectory\\(.*?/vendor/(.+?)\".*" line library)
(if (member library keep) line ""))))
#t))))
(build-system gnu-build-system)
(build-system cmake-build-system)
(arguments
;; XXX: First flag prevents a build error with GCC7+. The second
;; flag works around missing text in game. Both are fixed
;; upstream. Remove once xmoto 0.5.12+ is released.
`(#:make-flags '("CXXFLAGS=-fpermissive -D_GLIBCXX_USE_CXX11_ABI=0")
`(#:tests? #f ;no test
#:phases
(modify-phases %standard-phases
(add-after 'install 'install-desktop-file
(add-after 'unpack 'fix-hard-coded-directory
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(apps (string-append out "/share/applications"))
(pixmaps (string-append out "/share/pixmaps")))
(install-file "extra/xmoto.desktop" apps)
(install-file "extra/xmoto.xpm" pixmaps)
#t)))
(add-after 'install-desktop-file 'install-fonts
(substitute* "src/common/VFileIO.cpp"
(("/usr/share")
(string-append (assoc-ref outputs "out") "/share")))
#t))
(add-before 'build 'set-SDL
;; Set correct environment for SDL.
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CPATH"
(string-append
(assoc-ref inputs "sdl") "/include/SDL:"
(or (getenv "CPATH") "")))
#t))
(add-after 'install 'unbundle-fonts
;; Unbundle DejaVuSans TTF files.
(lambda* (#:key outputs inputs #:allow-other-keys)
(let ((font-dir (string-append (assoc-ref inputs "font-dejavu")
"/share/fonts/truetype/"))
@ -10321,38 +10593,34 @@ (define-public xmoto
(delete-file target)
(symlink font target)))
'("DejaVuSans.ttf" "DejaVuSansMono.ttf"))
#t)))
(add-after 'install-fonts 'install-man-page
(lambda* (#:key outputs #:allow-other-keys)
(install-file "xmoto.6"
(string-append (assoc-ref outputs "out")
"/share/man/man6"))
#t)))))
#t))))))
(native-inputs
`(("gettext" ,gettext-minimal)))
`(("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config)))
(inputs
`(("curl" ,curl)
`(("bzip2" ,bzip2)
("curl" ,curl)
("font-dejavu" ,font-dejavu)
("glu" ,glu)
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libxdg-basedir" ,libxdg-basedir)
("libxml2" ,libxml2)
("lua" ,lua-5.2)
("lua" ,lua-5.1)
("ode" ,ode)
("sdl" ,(sdl-union (list sdl sdl-mixer sdl-net sdl-ttf)))
("sqlite" ,sqlite)
("zlib" ,zlib)))
(home-page "https://xmoto.tuxfamily.org/")
(synopsis "2D motocross platform game")
(description "X-Moto is a challenging 2D motocross platform game, where
physics play an all important role in the gameplay. You need to control your
bike to its limit, if you want to have a chance finishing the more difficult
challenges.")
(description
"X-Moto is a challenging 2D motocross platform game, where
physics play an all important role in the gameplay. You need to
control your bike to its limit, if you want to have a chance finishing
the more difficult challenges.")
(license (list license:gpl2+ ;whole project
license:bsd-4 ;src/bzip
license:bsd-3 ;src/md5sum
license:lgpl2.1+ ;src/iqsort.h
license:bsd-3 ;vendor/md5sum
license:lgpl2.1+
license:expat))))
(define-public eboard

View file

@ -419,7 +419,7 @@ (define-public gnome-shell-extension-hide-app-icon
(define-public gnome-shell-extension-dash-to-panel
(package
(name "gnome-shell-extension-dash-to-panel")
(version "26")
(version "37")
(source (origin
(method git-fetch)
(uri (git-reference
@ -427,7 +427,7 @@ (define-public gnome-shell-extension-dash-to-panel
(commit (string-append "v" version))))
(sha256
(base32
"1phfx2pblygpcvsppsqqqflm7qnz46mqkw29hj0nv2dn69hf4xbc"))
"0c8p8cmwjh6rpj7jwj1lccpdv5l0bazwywg8hpwgnqy9f4rxmrz3"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
@ -555,8 +555,8 @@ (define-public numix-theme
(define-public papirus-icon-theme
(let ((version "0.0.0") ;; The package does not use semver
(revision "1")
(tag "20200430"))
(revision "2")
(tag "20200602"))
(package
(name "papirus-icon-theme")
(version (git-version version revision tag))
@ -568,7 +568,7 @@ (define-public papirus-icon-theme
(commit tag)))
(sha256
(base32
"19dfiifc7cjwy0nb1hgzryzaijszsyix303xsgk5xbmhpwrv92hq"))
"0yv19kl8jr2jmh9018b1qmnq68alw84vrmb35jm462qd3qzzdgah"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments

View file

@ -43,7 +43,7 @@
;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
;;; Copyright © 2019 David Wilson <david@daviwil.com>
;;; Copyright © 2019, 2020 Raghav Gururajan <raghavgururajan@disroot.org>
;;; Copyright © 2019 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2019, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2019, 2020 Leo Prikler <leo.prikler@student.tugraz.at>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Pierre Neidhardt <mail@ambrevar.xyz>
@ -2174,8 +2174,7 @@ (define-public glade3
"023gx8rj51njn8fsb6ma5kz1irjpxi4js0n8rwy22inc4ysldd8r"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:tests? #f ; needs X, GL, and software rendering
#:phases
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'fix-docbook
(lambda* (#:key inputs #:allow-other-keys)
@ -2185,18 +2184,27 @@ (define-public glade3
"/xml/xsl/docbook-xsl-"
,(package-version docbook-xsl)
"/manpages/docbook.xsl")))
#t))
(add-before 'check 'pre-check
(lambda _
(setenv "HOME" "/tmp")
;; Tests require a running X server.
(system "Xvfb :1 &")
(setenv "DISPLAY" ":1")
#t)))))
(inputs
`(("gtk+" ,gtk+)
("libxml2" ,libxml2)))
(native-inputs
`(("intltool" ,intltool)
`(("hicolor-icon-theme" ,hicolor-icon-theme)
("intltool" ,intltool)
("itstool" ,itstool)
("libxslt" ,libxslt) ;for xsltproc
("docbook-xml" ,docbook-xml-4.2)
("docbook-xsl" ,docbook-xsl)
("python" ,python-2)
("pkg-config" ,pkg-config)))
("pkg-config" ,pkg-config)
("xorg-server" ,xorg-server-for-tests)))
(home-page "https://glade.gnome.org")
(synopsis "GTK+ rapid application development tool")
(description "Glade is a rapid application development (RAD) tool to
@ -10424,3 +10432,37 @@ (define-public jsonrpc-glib
both peers support it. You might want that when communicating on a single
host to avoid parser overhead and memory-allocator fragmentation.")
(license license:lgpl2.1+)))
(define-public feedbackd
(package
(name "feedbackd")
(version "0.0.0+git20200527")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://source.puri.sm/Librem5/feedbackd.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1wbkzxnqjydfgjvp7vz4ghczcz740zcb1yn90cb6gb5md4n6qx2y"))))
(build-system meson-build-system)
(native-inputs
`(("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("pkg-config" ,pkg-config)
("vala" ,vala)))
(inputs
`(("dbus" ,dbus)
("gsound" ,gsound)
("json-glib" ,json-glib)
("libgudev" ,libgudev)))
(propagated-inputs
`(("glib" ,glib))) ; in Requires of libfeedback-0.0.pc
(synopsis "Haptic/visual/audio feedback via DBus")
(description "Feedbackd provides a DBus daemon to act on events to provide
haptic, visual and audio feedback. It offers the libfeedbackd library and
GObject introspection bindings.")
(home-page "https://source.puri.sm/Librem5/feedbackd")
(license (list license:lgpl2.1+ ; libfeedbackd
license:lgpl3+)))) ; the rest

View file

@ -1,11 +1,11 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
;;; Copyright © 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2017, 2018, 2019 Nikita <nikita@n0.is>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nikita <nikita@n0.is>
;;; Copyright © 2016, 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
@ -180,13 +180,13 @@ (define-public libmicrohttpd
(define-public gnurl
(package
(name "gnurl")
(version "7.69.1")
(version "7.70.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gnunet/gnurl-" version ".tar.gz"))
(sha256
(base32
"0x8m26y3klndis6a28j8i0b7ab04d38q3rmlvgaqa65bjhlfdrp0"))))
"0px9la8v4bj1dzxb95fx3yxk0rcjqjrxpj733ga27cza45wwzkqa"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ; 1.8 MiB of man3 pages
@ -245,7 +245,7 @@ (define-public gnurl
"See COPYING in the distribution."))
(properties '((ftp-server . "ftp.gnu.org")
(ftp-directory . "/gnunet")))
(home-page "https://gnunet.org/gnurl")))
(home-page "https://gnunet.org/en/gnurl.html")))
(define-public gnunet
(package

View file

@ -648,6 +648,12 @@ (define icecat-source
"-p1" "--input" #+makeicecat-patch)
(invoke "patch" "--force" "--no-backup-if-mismatch"
"-p1" "--input" #+gnuzilla-fixes-patch)
;; Remove the bundled tortm-browser-button extension,
;; which doesn't seem to be working properly.
(delete-file-recursively
"data/extensions/tortm-browser-button@jeremybenthum")
(patch-shebang "makeicecat")
(substitute* "makeicecat"
(("^FFMAJOR=(.*)" all ffmajor)

View file

@ -811,6 +811,33 @@ (define-public go-golang-org-x-time
(home-page "https://godoc.org/golang.org/x/time/rate")
(license license:bsd-3))))
(define-public go-golang-org-x-oauth2
(let ((commit "0f29369cfe4552d0e4bcddc57cc75f4d7e672a33")
(revision "1"))
(package
(name "go-golang-org-x-oauth2")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://go.googlesource.com/oauth2")
(commit commit)))
(file-name (string-append "go.googlesource.com-oauth2-"
version "-checkout"))
(sha256
(base32
"06jwpvx0x2gjn2y959drbcir5kd7vg87k0r1216abk6rrdzzrzi2"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/oauth2"))
(propagated-inputs
`(("go-golang-org-x-net" ,go-golang-org-x-net)))
(home-page "https://go.googlesource.com/oauth2")
(synopsis "Client implementation of the OAuth 2.0 spec")
(description "This package contains a client implementation for OAuth 2.0
spec in Go.")
(license license:bsd-3))))
(define-public go-github-com-burntsushi-toml
(package
(name "go-github-com-burntsushi-toml")
@ -1813,6 +1840,31 @@ (define-public go-github-com-mattn-go-colorable
makes it possible to handle ANSI color escapes on Windows.")
(license license:expat))))
(define-public go-github-com-mattn-go-pointer
(let ((commit "a0a44394634f41e4992b173b24f14fecd3318a67")
(revision "1"))
(package
(name "go-github-com-mattn-go-pointer")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/mattn/go-pointer")
(commit commit)))
(sha256
(base32
"09w7hcyc0zz2g23vld6jbcmq4ar27xakp1ldjvh549i5izf2anhz"))
(file-name (git-file-name name version))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/mattn/go-pointer"))
(home-page "https://github.com/mattn/go-pointer")
(synopsis "Utility for cgo")
(description
"This package allows for a cgo argument to be passed a Go pointer.")
(license license:expat))))
(define-public go-github-com-mgutz-ansi
(let ((commit "9520e82c474b0a04dd04f8a40959027271bab992")
(revision "0"))

View file

@ -405,9 +405,11 @@ (define-public lib2geom
(base32
"195rs0kdbs8w62irha1nwy83bccz04wglmk578qrj1mky7fc4rjv"))
(patches
;; Patch submitted to upstream (see:
;; https://gitlab.com/inkscape/lib2geom/merge_requests/17).
(search-patches "lib2geom-enable-assertions.patch"))
;; Patches submitted to upstream (see:
;; https://gitlab.com/inkscape/lib2geom/merge_requests/17,
;; https://gitlab.com/inkscape/lib2geom/-/merge_requests/32).
(search-patches "lib2geom-enable-assertions.patch"
"lib2geom-fix-tests.patch"))
(modules '((guix build utils)))
(snippet
'(begin

View file

@ -1396,7 +1396,7 @@ (define-public guile-dbd-postgresql
(define-public guile-config
(package
(name "guile-config")
(version "0.4.1")
(version "0.4.2")
(source
(origin
(method git-fetch)
@ -1405,7 +1405,7 @@ (define-public guile-config
(commit version)))
(file-name (git-file-name name version))
(sha256 (base32
"1c59ch96d5p4c7si8qp55fdc15375klf2hyh29y3ap8ahqx9pxqj"))))
"09028ylbddjdp3d67zdjz3pnsjqz6zs2bfck5rr3dfaa0qjap40n"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)

View file

@ -308,6 +308,19 @@ (define-public guile-3.0
(files '("lib/guile/3.0/site-ccache"
"share/guile/site/3.0")))))))
(define-public guile-3.0.3
;; TODO: Make this 'guile-3.0' on the next rebuild cycle.
(package
(inherit guile-3.0)
(version "3.0.3")
(source (origin
(inherit (package-source guile-3.0))
(uri (string-append "mirror://gnu/guile/guile-"
version ".tar.xz"))
(sha256
(base32
"0fz6fgx7ran6nn0l978jmpckjc9knk4g3bddr75n0daqqmhjs95k"))))))
(define-public guile-next
(deprecated-package "guile-next" guile-3.0))

View file

@ -341,14 +341,14 @@ (define-public ghcid
(define-public git-annex
(package
(name "git-annex")
(version "8.20200522")
(version "8.20200617")
(source
(origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"git-annex/git-annex-" version ".tar.gz"))
(sha256
(base32 "1v71k5k9mcj1nq4pb8apx99rgw2rmckr6yshhvjl1dr6j70d67x8"))))
(base32 "1vgpqbscvxm03ibxy6cjnp9vd1wpsr3gkajp4z3m9nnkmjz5r4q4"))))
(build-system haskell-build-system)
(arguments
`(#:configure-flags
@ -762,6 +762,58 @@ (define-public shellcheck
@end enumerate")
(license license:gpl3+)))
(define-public shelltestrunner
(package
(name "shelltestrunner")
(version "1.9")
(source (origin
(method url-fetch)
(uri (string-append "mirror://hackage/package/shelltestrunner-"
version "/shelltestrunner-" version ".tar.gz"))
(sha256
(base32
"1a5kzqbwg6990249ypw0cx6cqj6663as1kbj8nzblcky8j6kbi6b"))))
(build-system haskell-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(delete 'check)
(add-after 'install 'check
(lambda* (#:key outputs tests? parallel-tests? #:allow-other-keys)
;; This test is inspired by the Makefile in the upstream
;; repository, which is missing in the Hackage release tarball
;; along with some of the tests. The Makefile would not work
;; anyway as it ties into the 'stack' build tool.
(let* ((out (assoc-ref outputs "out"))
(shelltest (string-append out "/bin/shelltest"))
(numjobs (if parallel-tests?
(number->string (parallel-job-count))
"1")))
(if tests?
(invoke shelltest (string-append "-j" numjobs)
"tests/examples")
(format #t "test suite not run~%"))
#t))))))
(inputs
`(("ghc-diff" ,ghc-diff)
("ghc-cmdargs" ,ghc-cmdargs)
("ghc-filemanip" ,ghc-filemanip)
("ghc-hunit" ,ghc-hunit)
("ghc-pretty-show" ,ghc-pretty-show)
("ghc-regex-tdfa" ,ghc-regex-tdfa)
("ghc-safe" ,ghc-safe)
("ghc-utf8-string" ,ghc-utf8-string)
("ghc-test-framework" ,ghc-test-framework)
("ghc-test-framework-hunit" ,ghc-test-framework-hunit)))
(home-page "https://github.com/simonmichael/shelltestrunner")
(synopsis "Test CLI programs")
(description
"shelltestrunner (executable: @command{shelltest}) is a command-line tool
for testing command-line programs, or general shell commands. It reads simple
test specifications defining a command to run, some input, and the expected
output, stderr, and exit status.")
(license license:gpl3+)))
(define-public stylish-haskell
(package
(name "stylish-haskell")

View file

@ -8,6 +8,7 @@
;;; Copyright © 2019 Robert Vollmert <rob@vllmrt.net>
;;; Copyright © 2019 John Soo <jsoo1@asu.edu>
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@gmail.com>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -93,6 +94,27 @@ (define-public ghc-cookie
(description "HTTP cookie parsing and rendering library for Haskell.")
(license license:bsd-3)))
(define-public ghc-curl
(package
(name "ghc-curl")
(version "1.3.8")
(source (origin
(method url-fetch)
(uri (string-append "mirror://hackage/package/curl/curl-"
version ".tar.gz"))
(sha256
(base32
"0vj4hpaa30jz7c702xpsfvqaqdxz28zslsqnsfx6bf6dpwvck1wh"))))
(build-system haskell-build-system)
(inputs
`(("curl" ,curl)))
(home-page "https://hackage.haskell.org/package/curl")
(synopsis "Haskell bindings for libcurl")
(description
"@code{libcurl} is a versatile client-side URL transfer library.
This package provides a Haskell binding to libcurl.")
(license license:bsd-3)))
(define-public ghc-httpd-shed
(package
(name "ghc-httpd-shed")

View file

@ -9812,6 +9812,29 @@ (define-public ghc-protolude
replace the standard one provided by GHC.")
(license license:expat)))
(define-public ghc-psqueue
(package
(name "ghc-psqueue")
(version "1.1.0.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://hackage/package/PSQueue-"
version "/PSQueue-" version ".tar.gz"))
(sha256
(base32
"1cik7sw10sacsijmfhghzy54gm1qcyxw14shlp86lx8z89kcnkza"))))
(build-system haskell-build-system)
(home-page "https://hackage.haskell.org/package/PSQueue")
(synopsis "Priority search queue")
(description
"A @dfn{priority search queue} efficiently supports the operations of
both a search tree and a priority queue. A @code{Binding} is a product of
a key and a priority. Bindings can be inserted, deleted, modified and queried
in logarithmic time, and the binding with the least priority can be retrieved
in constant time. A queue can be built from a list of bindings, sorted by
keys, in linear time.")
(license license:bsd-3)))
(define-public ghc-psqueues
(package
(name "ghc-psqueues")
@ -10249,6 +10272,29 @@ (define-public ghc-regex-compat-tdfa
this problem.")
(license license:bsd-3)))
(define-public ghc-regex-pcre
(package
(name "ghc-regex-pcre")
(version "0.94.4")
(source (origin
(method url-fetch)
(uri (string-append "https://hackage.haskell.org/package/"
"regex-pcre/regex-pcre-" version ".tar.gz"))
(sha256
(base32
"1h16w994g9s62iwkdqa7bar2n9cfixmkzz2rm8svm960qr57valf"))))
(build-system haskell-build-system)
(inputs
`(("ghc-regex-base" ,ghc-regex-base)
("pcre" ,pcre)))
(home-page "https://hackage.haskell.org/package/regex-pcre")
(synopsis "Enhancement of the builtin Text.Regex library")
(description
"This package is an enhancement of the @code{Text.Regex} library.
It wraps the @code{PCRE} C library providing Perl-compatible regular
expressions.")
(license license:bsd-3)))
(define-public ghc-regex-pcre-builtin
(package
(name "ghc-regex-pcre-builtin")

View file

@ -213,6 +213,11 @@ (define-public inkscape-1.0
(arguments
`(#:tests? #t
#:test-target "check" ;otherwise some test binaries are missing
#:imported-modules (,@%cmake-build-system-modules
(guix build glib-or-gtk-build-system))
#:modules ((guix build cmake-build-system)
((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
(guix build utils))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-icon-cache-generator
@ -240,7 +245,11 @@ (define-public inkscape-1.0
;; as the "share/inkscape/ui/units.xml" file.
(delete 'check)
(add-after 'install 'check
(assoc-ref %standard-phases 'check)))))
(assoc-ref %standard-phases 'check))
(add-after 'install 'glib-or-gtk-compile-schemas
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
(add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
(inputs
`(("aspell" ,aspell)
("autotrace" ,autotrace)

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019, 2020 Martin Becze <mjbecze@riseup.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -212,7 +213,7 @@ (define-public gx-go
(define-public go-ipfs
(package
(name "go-ipfs")
(version "0.4.23")
(version "0.5.1")
(source
(origin
(method url-fetch/tarbomb)
@ -220,7 +221,7 @@ (define-public go-ipfs
"https://dist.ipfs.io/go-ipfs/v" version
"/go-ipfs-source.tar.gz"))
(sha256
(base32 "191ir4h6c76xcnbwx9fj8j2lzzqyp10inmqd8sa393b5y0jmhi5a"))
(base32 "0lpilycjbc1g9adp4d5kryfprixj18hg3235fnivakmv7fy2akkm"))
(file-name (string-append name "-" version "-source"))))
(build-system go-build-system)
(arguments

View file

@ -48,6 +48,7 @@ (define-module (gnu packages irc)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages guile)
#:use-module (gnu packages lua)
#:use-module (gnu packages lxqt)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages kde)
#:use-module (gnu packages kde-frameworks)
@ -77,6 +78,7 @@ (define-public quassel
(sha256
(base32
"0mg8jydc70vlylppzich26q4s40kr78r3ysfyjwisfvlg2byxvs8"))
(patches (search-patches "quassel-qt-514-compat.patch"))
(modules '((guix build utils)))
;; We don't want to install the bundled scripts.
(snippet
@ -111,6 +113,7 @@ (define-public quassel
("qttools" ,qttools)))
(inputs
`(("inxi" ,inxi-minimal)
("libdbusmenu-qt" ,libdbusmenu-qt)
("qca" ,qca)
("qtbase" ,qtbase)
("qtmultimedia" ,qtmultimedia)

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;;
;;; This file is part of GNU Guix.
;;;
@ -287,21 +288,48 @@ (define-public juk
(define-public k3b
(package
(name "k3b")
(version "20.04.1")
(version "20.04.2")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://kde/stable/release-service/" version
"/src/k3b-" version ".tar.xz"))
(sha256
(base32 "0r01ninrrmqk7pl5jg0g51fcky1ammw0yyq572wyhibw7q8y7ly7"))))
(base32 "15wm987hz6rfs9ds9l1gbs6gdsardj1ywvk6zmpvj2i2190y4b3q"))))
(build-system qt-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-absolute-library-paths
(lambda _
;; Set absolute paths for dlopened libraries. We cant use k3bs
;; runpath as they are loaded by the Qt library.
(let ((libcdio-paranoia (assoc-ref %build-inputs "libcdio-paranoia"))
(libdvdcss (assoc-ref %build-inputs "libdvdcss")))
(substitute* "libk3b/tools/k3bcdparanoialib.cpp"
(("\"(cdio_cdda|cdio_paranoia)\"" _ library)
(string-append "\"" libcdio-paranoia "/lib/" library "\"")))
(substitute* "libk3b/tools/k3blibdvdcss.cpp"
(("\"(dvdcss)\"" _ library)
(string-append "\"" libdvdcss "/lib/" library "\""))))
#t))
(add-after 'qt-wrap 'wrap-path
(lambda _
;; Set paths to backend programs.
(wrap-program (string-append (assoc-ref %outputs "out") "/bin/k3b")
`("PATH" ":" prefix
,(map (lambda (input)
(string-append (assoc-ref %build-inputs input) "/bin"))
'("cdrdao" "dvd+rw-tools" "libburn" "sox"))))
#t)))))
(native-inputs
`(("extra-cmake-modules" ,extra-cmake-modules)
("pkg-config" ,pkg-config)
("kdoctools" ,kdoctools)))
(inputs
`(("ffmpeg" ,ffmpeg)
`(("cdrdao" ,cdrdao)
("dvd+rw-tools" ,dvd+rw-tools)
("ffmpeg" ,ffmpeg)
("flac" ,flac)
("karchive" ,karchive)
("kcmutils" ,kcmutils)
@ -319,6 +347,9 @@ (define-public k3b
("kwidgetsaddons" ,kwidgetsaddons)
("kxmlgui" ,kxmlgui)
("lame" ,lame)
("libburn" ,libburn)
("libcdio-paranoia" ,libcdio-paranoia)
("libdvdcss" ,libdvdcss)
("libdvdread" ,libdvdread)
;; TODO: LibFuzzer
("libiconv" ,libiconv)
@ -334,13 +365,17 @@ (define-public k3b
("qtwebkit" ,qtwebkit)
("shared-mime-info" ,shared-mime-info)
("solid" ,solid)
("sox" ,sox)
("taglib" ,taglib)))
(home-page "https://kde.org/applications/multimedia/org.kde.k3b")
(synopsis "Sophisticated CD/DVD burning application")
(description "K3b is CD-writing software which intends to be feature-rich
and provide an easily usable interface. Features include burning audio CDs
from .WAV and .MP3 audio files, configuring external programs and configuring
devices.")
devices.
The @code{udisks-service} should be enabled for @command{k3b} to discover the
available CD drives.")
(license ;; GPL for programs, FDL for documentation
(list license:gpl2+ license:fdl1.2+))))

View file

@ -269,7 +269,7 @@ (define-public fstrcmp
(define-public kodi
(package
(name "kodi")
(version "18.7")
(version "18.7.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -278,7 +278,7 @@ (define-public kodi
(file-name (git-file-name name version))
(sha256
(base32
"082cpih84j7v29w55qhj0rdia7hdjpwi81qywiwawd4vlyimpv2h"))
"1ypn29yhy49mz9x4xqh2zfdrsbfwm1b4canvh9zvy9c1irjwf419"))
(patches (search-patches "kodi-skip-test-449.patch"
"kodi-increase-test-timeout.patch"
"kodi-set-libcurl-ssl-parameters.patch"))

View file

@ -512,14 +512,6 @@ (define-public linphoneqt
`(#:tests? #f ; No test target
#:phases
(modify-phases %standard-phases
(add-after 'set-paths 'set-qt-rcc-source-date-override
(lambda _
;; This fixes a reproducibility problem where the Qt Resource
;; Compiler (RCC) includes timestamp of its source files
;; (see: https://reproducible-builds.org/docs/
;; deterministic-build-systems/#cmake-notes).
(setenv "QT_RCC_SOURCE_DATE_OVERRIDE" "1")
#t))
(add-after 'unpack 'fix-cmake-error
(lambda _
;; This is fixed in commit efed2fd8 of the master branch.

View file

@ -371,18 +371,18 @@ (define (%upstream-linux-source version hash)
(sha256 hash)))
(define-public linux-libre-5.7-version "5.7.2")
(define-public linux-libre-5.7-version "5.7.4")
(define-public linux-libre-5.7-pristine-source
(let ((version linux-libre-5.7-version)
(hash (base32 "02brxm78n0kg4mh48acvjsr7mpvaqd279ycyaixaflid1s1awrb0")))
(hash (base32 "06mm0bmjw54aypfhhbm9aaz5bmgymvygfak587iwv901635gb95w")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.7)))
(define-public linux-libre-5.4-version "5.4.46")
(define-public linux-libre-5.4-version "5.4.47")
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
(hash (base32 "13hvnfdcbcb9a21zizq8d90mc8maxz03zmzsj6iqsjd2y7r4y1rh")))
(hash (base32 "0v4d86yci4lq82nb1fgf0g3j0348v6q6m77czpm4b3cs7lwrs2wp")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
@ -395,26 +395,26 @@ (define-public linux-libre-4.19-pristine-source
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
(define-public linux-libre-4.14-version "4.14.184")
(define-public linux-libre-4.14-version "4.14.185")
(define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version)
(hash (base32 "0h6r06c1d7amkfglsr66ic89p0zxpmk7jkq1ylcbknmkiwkixx9g")))
(hash (base32 "1iixxwidp53s2i2br58wbx5s69f2jcllb116z73pv7fmd06b2czk")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
(define-public linux-libre-4.9-version "4.9.227")
(define-public linux-libre-4.9-version "4.9.228")
(define-public linux-libre-4.9-pristine-source
(let ((version linux-libre-4.9-version)
(hash (base32 "0pqc0wld4s4zjas95xm54mrkk00l9zkc59b6i9gq4km126s8bi1q")))
(hash (base32 "0d7w2zzs79ywxzfrh4bmk5lw318qbkcb8mcsyyh3cc25qqlz9gwg")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.9)))
(define-public linux-libre-4.4-version "4.4.227")
(define-public linux-libre-4.4-version "4.4.228")
(define-public linux-libre-4.4-pristine-source
(let ((version linux-libre-4.4-version)
(hash (base32 "196x57w740firg8zchypq4vq6a83ymmwn9amqrscym9zr0pcgm40")))
(hash (base32 "0y1xc5lk8j3p5maarksmh18wy921rgcngzsih7q1a82rah1fsjxr")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.4)))

View file

@ -5719,22 +5719,7 @@ (define-public sbcl-cxml
(install-file "catalog.dtd"
(string-append
(assoc-ref outputs "out")
"/lib/" (%lisp-type)))))
(add-after 'create-asd 'remove-component
;; XXX: The original .asd has no components, but our build system
;; creates an entry nonetheless. We need to remove it for the
;; generated .asd to load properly. See trivia.trivial for a
;; similar problem.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(asd (string-append out "/lib/sbcl/cxml.asd")))
(substitute* asd
((" :components
")
""))
(substitute* asd
((" *\\(\\(:compiled-file \"cxml--system\"\\)\\)")
""))))))))))
"/lib/" (%lisp-type))))))))))
(define-public cl-cxml
(sbcl-package->cl-source-package sbcl-cxml))
@ -6136,7 +6121,6 @@ (define-public sbcl-fare-quasiquote-readtable
(define-public cl-fare-quasiquote-readtable
(sbcl-package->cl-source-package sbcl-fare-quasiquote-readtable))
;; TODO: Add support for component-less system in asdf-build-system/sbcl.
(define-public sbcl-fare-quasiquote-extras
(package
(inherit sbcl-fare-quasiquote)
@ -6156,22 +6140,7 @@ (define-public sbcl-fare-quasiquote-extras
(install-file "fare-quasiquote-extras.asd" lib)
(make-file-writable
(string-append lib "/fare-quasiquote-extras.asd"))
#t)))
(add-after 'create-asd-file 'fix-asd-file
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib/" (%lisp-type)))
(asd (string-append lib "/fare-quasiquote-extras.asd")))
(substitute* asd
((":class")
"")
(("asdf/bundle:prebuilt-system")
"")
((":components")
"")
(("\\(\\(:compiled-file \"fare-quasiquote-extras--system\"\\)\\)")
"")))
#t)))))
#t))))))
(description "This library combines @code{fare-quasiquote-readtable} and
@code{fare-quasiquote-optima}.")))
@ -6247,32 +6216,6 @@ (define-public sbcl-trivia.trivial
(name "sbcl-trivia.trivial")
(inputs
`(("trivia.level2" ,sbcl-trivia.level2)))
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'create-asd-file
(lambda* (#:key outputs inputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(lib (string-append out "/lib/" (%lisp-type)))
(level2 (assoc-ref inputs "trivia.level2")))
(mkdir-p lib)
(install-file "trivia.trivial.asd" lib)
;; XXX: This .asd does not have any component and the build
;; system fails to work in this case. We should update the
;; build system to handle component-less .asd.
;; TODO: How do we append to file in Guile? It seems that
;; (open-file ... "a") gets a "Permission denied".
(substitute* (string-append lib "/trivia.trivial.asd")
(("\"\\)")
(string-append "\")
(progn (asdf/source-registry:ensure-source-registry)
(setf (gethash
\"trivia.level2\"
asdf/source-registry:*source-registry*)
#p\""
level2
"/share/common-lisp/sbcl-bundle-systems/trivia.level2.asd\"))")))))))))
(description "Trivia is a pattern matching compiler that is compatible
with Optima, another pattern matching library for Common Lisp. It is meant to
be faster and more extensible than Optima.
@ -6350,24 +6293,7 @@ (define-public sbcl-trivia
("trivia.cffi" ,sbcl-trivia.cffi)
("optima" ,sbcl-optima)))
(arguments
`(#:test-asd-file "trivia.test.asd"
#:phases
(modify-phases %standard-phases
(add-after 'create-asd 'remove-component
;; XXX: The original .asd has no components, but our build system
;; creates an entry nonetheless. We need to remove it for the
;; generated .asd to load properly. See trivia.trivial for a
;; similar problem.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(asd (string-append out "/lib/" (%lisp-type) "/trivia.asd")))
(substitute* asd
((" :components
")
""))
(substitute* asd
((" *\\(\\(:compiled-file \"trivia--system\"\\)\\)")
""))))))))
`(#:test-asd-file "trivia.test.asd"))
(description "Trivia is a pattern matching compiler that is compatible
with Optima, another pattern matching library for Common Lisp. It is meant to
be faster and more extensible than Optima.")))
@ -12018,3 +11944,180 @@ (define-public sbcl-cl-rdkafka
(define-public cl-rdkafka
(sbcl-package->cl-source-package sbcl-cl-rdkafka))
(define-public sbcl-acclimation
(let ((commit "4d51150902568fcd59335f4cc4cfa022df6116a5"))
(package
(name "sbcl-acclimation")
(version (git-version "0.0.0" "1" commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/robert-strandh/Acclimation")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1aw7rarjl8ai57h0jxnp9hr3dka7qrs55mmbl1p6rhd6xj8mp9wq"))))
(build-system asdf-build-system/sbcl)
(home-page "https://github.com/robert-strandh/Acclimation")
(synopsis "Internationalization library for Common Lisp")
(description "This project is meant to provide tools for
internationalizing Common Lisp programs.
One important aspect of internationalization is of course the language used in
error messages, documentation strings, etc. But with this project we provide
tools for all other aspects of internationalization as well, including dates,
weight, temperature, names of physical quantitites, etc.")
(license license:bsd-2))))
(define-public cl-acclimation
(sbcl-package->cl-source-package sbcl-acclimation))
(define-public sbcl-clump-2-3-tree
(let ((commit "1ea4dbac1cb86713acff9ae58727dd187d21048a"))
(package
(name "sbcl-clump-2-3-tree")
(version (git-version "0.0.0" "1" commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/robert-strandh/Clump")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1639msyagsswj85gc0wd90jgh8588j3qg5q70by9s2brf2q6w4lh"))))
(arguments
'(#:asd-file "2-3-tree/clump-2-3-tree.asd"
#:asd-system-name "clump-2-3-tree"))
(inputs
`(("acclimation" ,sbcl-acclimation)))
(build-system asdf-build-system/sbcl)
(home-page "https://github.com/robert-strandh/Clump")
(synopsis "Implementation of 2-3 trees for Common Lisp")
(description "The purpose of this library is to provide a collection of
implementations of trees.
In contrast to existing libraries such as cl-containers, it does not impose a
particular use for the trees. Instead, it aims for a stratified design,
allowing client code to choose between different levels of abstraction.
As a consequence of this policy, low-level interfaces are provided where
the concrete representation is exposed, but also high level interfaces
where the trees can be used as search trees or as trees that represent
sequences of objects.")
(license license:bsd-2))))
(define-public sbcl-clump-binary-tree
(package
(inherit sbcl-clump-2-3-tree)
(name "sbcl-clump-binary-tree")
(arguments
'(#:asd-file "Binary-tree/clump-binary-tree.asd"
#:asd-system-name "clump-binary-tree"))
(synopsis "Implementation of binary trees for Common Lisp")))
(define-public sbcl-clump
(package
(inherit sbcl-clump-2-3-tree)
(name "sbcl-clump")
(arguments
'(#:asd-file "clump.asd"
#:asd-system-name "clump"))
(inputs
`(("clump-2-3-tree" ,sbcl-clump-2-3-tree)
("clump-binary-tree" ,sbcl-clump-binary-tree)))
(synopsis "Collection of tree implementations for Common Lisp")))
(define-public cl-clump
(sbcl-package->cl-source-package sbcl-clump))
(define-public sbcl-cluffer-base
(let ((commit "4aad29c276a58a593064e79972ee4d77cae0af4a"))
(package
(name "sbcl-cluffer-base")
(version (git-version "0.0.0" "1" commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/robert-strandh/cluffer")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1bcg13g7qb3dr8z50aihdjqa6miz5ivlc9wsj2csgv1km1mak2kj"))))
(arguments
'(#:asd-file "Base/cluffer-base.asd"
#:asd-system-name "cluffer-base"))
(inputs
`(("acclimation" ,sbcl-acclimation)))
(build-system asdf-build-system/sbcl)
(home-page "https://github.com/robert-strandh/cluffer")
(synopsis "Common Lisp library providing a protocol for text-editor buffers")
(description "Cluffer is a library for representing the buffer of a text
editor. As such, it defines a set of CLOS protocols for client code to
interact with the buffer contents in various ways, and it supplies different
implementations of those protocols for different purposes.")
(license license:bsd-2))))
(define-public sbcl-cluffer-standard-line
(package
(inherit sbcl-cluffer-base)
(name "sbcl-cluffer-standard-line")
(arguments
'(#:asd-file "Standard-line/cluffer-standard-line.asd"
#:asd-system-name "cluffer-standard-line"))
(inputs
`(("cluffer-base" ,sbcl-cluffer-base)))))
(define-public sbcl-cluffer-standard-buffer
(package
(inherit sbcl-cluffer-base)
(name "sbcl-cluffer-standard-buffer")
(arguments
'(#:asd-file "Standard-buffer/cluffer-standard-buffer.asd"
#:asd-system-name "cluffer-standard-buffer"))
(inputs
`(("cluffer-base" ,sbcl-cluffer-base)
("clump" ,sbcl-clump)))))
(define-public sbcl-cluffer-simple-line
(package
(inherit sbcl-cluffer-base)
(name "sbcl-cluffer-simple-line")
(arguments
'(#:asd-file "Simple-line/cluffer-simple-line.asd"
#:asd-system-name "cluffer-simple-line"))
(inputs
`(("cluffer-base" ,sbcl-cluffer-base)))))
(define-public sbcl-cluffer-simple-buffer
(package
(inherit sbcl-cluffer-base)
(name "sbcl-cluffer-simple-buffer")
(arguments
'(#:asd-file "Simple-buffer/cluffer-simple-buffer.asd"
#:asd-system-name "cluffer-simple-buffer"))
(inputs
`(("cluffer-base" ,sbcl-cluffer-base)))))
(define-public sbcl-cluffer
(package
(inherit sbcl-cluffer-base)
(name "sbcl-cluffer")
(arguments
'(#:asd-file "cluffer.asd"
#:asd-system-name "cluffer"))
(inputs
`(("cluffer-base" ,sbcl-cluffer-base)
("cluffer-standard-line" ,sbcl-cluffer-standard-line)
("cluffer-standard-buffer" ,sbcl-cluffer-standard-buffer)
("cluffer-simple-line" ,sbcl-cluffer-simple-line)
("cluffer-simple-buffer" ,sbcl-cluffer-simple-buffer)))))
(define-public cl-cluffer
(sbcl-package->cl-source-package sbcl-cluffer))

View file

@ -1817,8 +1817,7 @@ (define-public python-iml
"1k8szlpm19rcwcxdny9qdm3gmaqq8akb4xlvrzyz8c2d679aak6l"))))
(build-system python-build-system)
(propagated-inputs
`(("ipython" ,(prompt-toolkit-2-instead-of-prompt-toolkit
python-ipython))
`(("ipython" ,python-ipython)
("numpy" ,python-numpy)
("pandas" ,python-pandas)
("scipy" ,python-scipy)))

View file

@ -32,6 +32,7 @@
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Justus Winter <justus@sequoia-pgp.org>
;;; Copyright © 2020 Eric Brown <ecbrown@ericcbrown.com>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -146,6 +147,44 @@ (define-module (gnu packages mail)
#:use-module (srfi srfi-1)
#:use-module (ice-9 match))
(define-public anubis
(package
(name "anubis")
;; This 4.2.90 alpha release adds support for Guile 3 and has fixes for
;; other issues.
(version "4.2.90")
(source
(origin
(method url-fetch)
(uri (string-append "https://alpha.gnu.org/gnu/anubis/anubis-"
version ".tar.gz"))
(sha256
(base32
"0dvm6acl32dv8bixx9z50gzwfp6kj4kxnn1j3dcwjlp7sasjp41s"))))
(build-system gnu-build-system)
(native-inputs
`(("automake" ,automake)
("autoconf" ,autoconf)
("gettext" ,gettext-minimal)
("m4" ,m4))) ;for the test suite
(inputs
`(("gdbm" ,gdbm)
("gnutls" ,gnutls)
("gpgme" ,gpgme)
("gsasl" ,gsasl)
("guile" ,guile-3.0)
("libgcrypt" ,libgcrypt) ;gnutls support depends on libgcrypt
("libgpg-error" ,libgpg-error)))
(outputs '("out" "debug"))
(synopsis "SMTP message submission daemon")
(description "Anubis is a daemon that sits between the Mail User
Agent (MUA) and the Mail Transfer Agent (MTA). When a mail is sent by a user
in the MUA, it is first passed to Anubis, which performs additional processing
to the message before passing it on for delivery by the MTA. Anubis may, for
example, modify the message headers or body, or encrypt or sign the message.")
(home-page "https://www.gnu.org/software/anubis/manual/")
(license gpl3+)))
(define-public mailutils
(package
(name "mailutils")
@ -382,7 +421,7 @@ (define-public fetchmail
(define-public mutt
(package
(name "mutt")
(version "1.14.2")
(version "1.14.4")
(source (origin
(method url-fetch)
(uri (list
@ -392,7 +431,7 @@ (define-public mutt
version ".tar.gz")))
(sha256
(base32
"0cdcls0x6f2w99hkjz48hxhnx86w3bnyxzibchdc9yspih770bz2"))
"1hykkq3m7kqic5r7vzg45xaww7415fv5i2d03slzykqb47w5d3na"))
(patches (search-patches "mutt-store-references.patch"))))
(build-system gnu-build-system)
(inputs

View file

@ -6,6 +6,7 @@
;;; Copyright © 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Guy Fleury Iteriteka <hoonandon@gmail.com>
;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -264,7 +265,16 @@ (define-public libmateweather
name "-" version ".tar.xz"))
(sha256
(base32
"094mnlczxq9crjj8z7dzs1zmwscdkbp54l3qjaf4a4bhd8lihv8d"))))
"094mnlczxq9crjj8z7dzs1zmwscdkbp54l3qjaf4a4bhd8lihv8d"))
(modules '((guix build utils)))
;; This is fixed by commit ea13e065 upstream. Remove this once 1.25.0
;; is out.
(snippet
'(begin
(substitute* "data/Locations.xml.in"
(("Godthab")
"Nuuk"))
#t))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags

View file

@ -22,6 +22,7 @@
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2020 Reza Alizadeh Majd <r.majd@pantherx.org>
;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -60,6 +61,7 @@ (define-module (gnu packages messaging)
#:use-module (gnu packages documentation)
#:use-module (gnu packages enchant)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
@ -569,7 +571,7 @@ (define-public znc
(version "1.8.1")
(source (origin
(method url-fetch)
(uri (string-append "http://znc.in/releases/archive/znc-"
(uri (string-append "https://znc.in/releases/archive/znc-"
version ".tar.gz"))
(sha256
(base32
@ -603,7 +605,7 @@ (define-public znc
("perl" ,perl)
("python" ,python)
("zlib" ,zlib)))
(home-page "https://znc.in")
(home-page "https://wiki.znc.in/ZNC")
(synopsis "IRC network bouncer")
(description "ZNC is an @dfn{IRC network bouncer} or @dfn{BNC}. It can
detach the client from the actual IRC server, and also from selected channels.
@ -2186,4 +2188,84 @@ (define-public tdlib
(home-page "https://core.telegram.org/tdlib")
(license license:boost1.0))))
(define-public purple-mm-sms
(package
(name "purple-mm-sms")
(version "0.1.4")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://source.puri.sm/Librem5/purple-mm-sms.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1daf7zl8bhhm1szkgxflpqql69f2w9i9nlgf1n4p1nynxifz1bim"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
(let ((out (assoc-ref %outputs "out")))
;; Fix hardcoded paths
(list (string-append "PREFIX=" out)
(string-append "PLUGIN_DIR_PURPLE=" out "/lib/purple-2")
(string-append "DATA_ROOT_DIR_PURPLE=" out "/share")))
#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(delete 'configure))))
(native-inputs
`(("glib:bin" ,glib "bin")
("pkg-config" ,pkg-config)))
(inputs
`(("modem-manager" ,modem-manager)
("pidgin" ,pidgin)))
(synopsis "Libpurple plugin for SMS via ModemManager")
(description "Plugin for libpurple to allow sending SMS using ModemManager.")
(home-page "https://source.puri.sm/Librem5/purple-mm-sms")
(license license:gpl2+)))
(define-public chatty
(package
(name "chatty")
(version "0.1.10")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://source.puri.sm/Librem5/chatty.git")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0czvqwjzsb0rvmgrmbh97m1b35rnwl41j7q32z4fcqb7bschibql"))))
(build-system meson-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'skip-updating-desktop-database
(lambda _
(substitute* "meson.build"
(("meson.add_install_script.*") ""))
#t)))))
(native-inputs
`(("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("pkg-config" ,pkg-config)))
(inputs
`(("feedbackd" ,feedbackd)
("folks" ,folks)
("libgcrypt" ,libgcrypt)
("libgee" ,libgee)
("libhandy" ,libhandy)
("pidgin" ,pidgin)
("purple-mm-sms" ,purple-mm-sms)
("sqlite" ,sqlite)))
(propagated-inputs
`(("adwaita-icon-theme" ,adwaita-icon-theme)
("evolution-data-server" ,evolution-data-server)))
(synopsis "Mobile client for XMPP and SMS messaging")
(description "Chatty is a chat program for XMPP and SMS. It works on mobile
as well as on desktop platforms. It's based on libpurple and ModemManager.")
(home-page "https://source.puri.sm/Librem5/chatty")
(license license:gpl3+)))
;;; messaging.scm ends here

View file

@ -503,7 +503,7 @@ (define-public dumb-allegro4
(define-public hydrogen
(package
(name "hydrogen")
(version "1.0.0-beta2")
(version "1.0.0-rc1")
(source
(origin
(method git-fetch)
@ -512,7 +512,7 @@ (define-public hydrogen
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1s3jrdyjpm92flw9mkkxchnj0wz8nn1y1kifii8ws252iiqjya4a"))))
(base32 "1ibbdzyk30nj83jrq7py78hwpjgy0lq7ji6gi2pdp1pqzz1mqp0v"))))
(build-system cmake-build-system)
(arguments
`(#:test-target "tests"

View file

@ -38,6 +38,7 @@
;;; Copyright © 2019 Diego N. Barbato <dnbarbato@posteo.de>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -63,6 +64,7 @@ (define-module (gnu packages networking)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
@ -85,6 +87,7 @@ (define-module (gnu packages networking)
#:use-module (gnu packages curl)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages dejagnu)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
@ -297,6 +300,34 @@ (define-public miredo
residing in IPv4-only networks, even when they are behind a NAT device.")
(license license:gpl2+)))
(define-public ndisc6
(package
(name "ndisc6")
(version "1.0.4")
(source (origin
(method url-fetch)
(uri (string-append "https://www.remlab.net/files/ndisc6/ndisc6-"
version ".tar.bz2"))
(sha256
(base32
"07swyar1hl83zxmd7fqwb2q0c0slvrswkcfp3nz5lknrk15dmcdb"))))
(build-system gnu-build-system)
(home-page "https://www.remlab.net/ndisc6/")
(synopsis "IPv6 diagnostic tools")
(description
"NDisc6 is a collection of tools for IPv6 networking diagnostics.
It includes the following programs:
@itemize
@item @command{ndisc6}: ICMPv6 Neighbor Discovery tool.
@item @command{rdisc6}: ICMPv6 Router Discovery tool.
@item @command{tcptraceroute6}: IPv6 traceroute over TCP.
@item @command{traceroute6}: IPv6 traceroute over UDP.
@item @command{rdnssd}: Recursive DNS Servers discovery daemon.
@end itemize")
;; The user can choose version 2 or 3 of the GPL, not later versions.
(license (list license:gpl2 license:gpl3))))
(define-public socat
(package
(name "socat")
@ -653,6 +684,76 @@ (define-public ifstatus
intended as a substitute for the PPPStatus and EthStatus projects.")
(license license:gpl2+)))
(define-public iputils
(package
(name "iputils")
(version "20190709")
(home-page "https://github.com/iputils/iputils")
(source (origin
(method git-fetch)
(uri (git-reference (url home-page)
(commit (string-append "s" version))))
(file-name (git-file-name name version))
(patches (search-patches "iputils-libcap-compat.patch"))
(sha256
(base32
"04bp4af15adp79ipxmiakfp0ij6hx5qam266flzbr94pr8z8l693"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-DBUILD_RARPD=true")
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-docbook-url
(lambda* (#:key inputs #:allow-other-keys)
(let* ((docbook-xsl (assoc-ref inputs "docbook-xsl"))
(uri (string-append docbook-xsl "/xml/xsl/docbook-xsl-"
,(package-version docbook-xsl))))
(for-each
(lambda (file)
(substitute* file
(("http://docbook\\.sourceforge\\.net/release/xsl-ns/current")
uri)))
(cons "doc/meson.build"
(find-files "doc" "\\.xsl$")))
#t))))))
(native-inputs
`(("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config)
("docbook-xsl" ,docbook-xsl)
("docbook-xml" ,docbook-xml-5)
("libxml2" ,libxml2) ;for XML_CATALOG_FILES
("xsltproc" ,libxslt)))
(inputs
`(("libcap" ,libcap)
("libidn2" ,libidn2)
("openssl" ,openssl)))
(synopsis "Collection of network utilities")
(description
"This package contains a variety of tools for dealing with network
configuration, troubleshooting, or servers. Utilities included are:
@itemize @bullet
@item @command{arping}: Ping hosts using the @dfn{Adress Resolution Protocol}.
@item @command{clockdiff}: Compute time difference between network hosts
using ICMP TSTAMP messages.
@item @command{ninfod}: Daemon that responds to IPv6 Node Information Queries.
@item @command{ping}: Use ICMP ECHO messages to measure round-trip delays
and packet loss across network paths.
@item @command{rarpd}: Answer RARP requests from clients.
@item @command{rdisc}: Populate network routing tables with information from
the ICMP router discovery protocol.
@item @command{tftpd}: Trivial file transfer protocol server.
@item @command{tracepath}: Trace network path to an IPv4 or IPv6 address and
discover MTU along the way.
@end itemize")
;; The various utilities are covered by different licenses, see LICENSE
;; for details.
(license (list license:gpl2+ ;arping, rarpd, tracepath
license:bsd-3 ;clockdiff, ninfod, ping, tftpd
(license:non-copyleft
"https://spdx.org/licenses/Rdisc.html"
"Sun Microsystems license, see rdisc.c for details")))))
(define-public nload
(package
(name "nload")
@ -3187,3 +3288,49 @@ (define-public lldpd
deliver Link-Layer notifications to adjacent network devices. @code{lldpd} is
an implementation of LLDP. It also supports some proprietary protocols.")
(license license:isc)))
(define-public hashcash
(package
(name "hashcash")
(version "1.22")
(source
(origin
(method url-fetch)
(uri (string-append "http://www.hashcash.org/source/hashcash-"
version ".tgz"))
(sha256
(base32
"15kqaimwb2y8wvzpn73021bvay9mz1gqqfc40gk4hj6f84nz34h1"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list (string-append "CC=" ,(cc-for-target)))
#:phases
(modify-phases %standard-phases
(delete 'configure)
;; No tests available.
(delete 'check)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((outdir (assoc-ref outputs "out"))
(bindir (string-append outdir "/bin"))
(mandir (string-append outdir "/share/man/man1"))
(docdir (string-append outdir "/share/doc/hashcash-" ,version)))
;; Install manually, as we don't need the `sha1' binary
(install-file "hashcash" bindir)
(install-file "hashcash.1" mandir)
(install-file "README" docdir)
(install-file "LICENSE" docdir)
(install-file "CHANGELOG" docdir)
#t))))))
(home-page "https://www.hashcash.org/")
(synopsis "Denial-of-service countermeasure")
(description "Hashcash is a proof-of-work algorithm, which has been used
as a denial-of-service countermeasure technique in a number of systems.
A hashcash stamp constitutes a proof-of-work which takes a parametrizable
amount of work to compute for the sender. The recipient can verify received
hashcash stamps efficiently.
This package contains a command-line tool for computing and verifying hashcash
stamps.")
(license license:public-domain)))

View file

@ -118,8 +118,8 @@ (define-public guix
;; Note: the 'update-guix-package.scm' script expects this definition to
;; start precisely like this.
(let ((version "1.1.0")
(commit "141b5c162048f5cb52e8c90ff7c16a2e98babcfb")
(revision 10))
(commit "c00564192a9924ab2218c243342963aba89d67d1")
(revision 12))
(package
(name "guix")
@ -135,7 +135,7 @@ (define-public guix
(commit commit)))
(sha256
(base32
"1j3vag994kj05b09a7w4lyas991a19hbbslcm9xvn5k2ilf4qskz"))
"008ywpdkc5f2jh25x6rr9glzvq4a6qih7v73w5dbxscpddx5c5g2"))
(file-name (string-append "guix-" version "-checkout"))))
(build-system gnu-build-system)
(arguments
@ -542,15 +542,30 @@ (define-public current-guix
(define-public nix
(package
(name "nix")
(version "2.3.5")
(version "2.3.6")
(source (origin
(method url-fetch)
(uri (string-append "http://nixos.org/releases/nix/nix-"
version "/nix-" version ".tar.xz"))
(sha256
(base32
"1hbqsrp1ii2sfq8x2mahjrl2182qck76n8blrl1jfz3xq99m6i15"))))
"128xf2as0y7hr28x575pbf9lkjpxr9hsxknbavv4p7ywr4lhbs85"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list "--sysconfdir=/etc")
#:phases
(modify-phases %standard-phases
(replace 'install
;; Don't try & fail to create subdirectories in /etc, but keep them
;; in the output as examples.
(lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(etc (string-append out "/etc")))
(apply invoke "make" "install"
(string-append "sysconfdir=" etc)
(string-append "profiledir=" etc "/profile.d")
make-flags)))))))
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("boost" ,boost)
("brotli" ,brotli)

View file

@ -0,0 +1,86 @@
From 6d5c587ec719e3309077c7d637b03b13db65c047 Mon Sep 17 00:00:00 2001
From: Joseph LaFreniere <joseph@lafreniere.xyz>
Date: Fri, 12 Jul 2019 12:43:46 -0500
Subject: [PATCH] Move definition of hyperbole-toggle-messaging to hsettings
---
hsettings.el | 25 +++++++++++++++++++++++++
hyperbole.el | 26 --------------------------
2 files changed, 25 insertions(+), 26 deletions(-)
diff --git a/hsettings.el b/hsettings.el
index 6cdd1b8..9632067 100644
--- a/hsettings.el
+++ b/hsettings.el
@@ -163,6 +163,31 @@ package to display search results."
search-term)))
(user-error "(Hyperbole): Invalid web search service `%s'" service-name))))
+;;;###autoload
+(defun hyperbole-toggle-messaging (&optional arg)
+ "Toggle Hyperbole support for explicit buttons in mail and news buffers.
+Toggles the boolean variable `inhibit-hyperbole-messaging and either
+adds hooks (nil value) or removes them (t value).
+
+With optional prefix ARG > 0, enables support. If ARG <= 0,
+disables/inhibits support."
+ (interactive "P")
+ (setq inhibit-hyperbole-messaging (if (null arg)
+ (not inhibit-hyperbole-messaging)
+ (<= (prefix-numeric-value arg) 0)))
+ (if inhibit-hyperbole-messaging
+ (var:remove-all)
+ (var:append-all)
+ ;; Add any hooks that were skipped when inhibit-hyperbole-messaging
+ ;; was nil.
+ (cond ((boundp 'hyperbole-loading))
+ ((not after-init-time)
+ (add-hook 'after-init-hook (lambda () (load "hyperbole"))))
+ (t (load "hyperbole"))))
+ (if (called-interactively-p 'interactive)
+ (message "Hyperbole messaging button support is %s"
+ (if inhibit-hyperbole-messaging "disabled" "enabled"))))
+
(defcustom inhibit-hyperbole-messaging t
"*Determines whether Hyperbole supports explicit buttons in mail and news buffers.
The default of t means disable such support (work remains to
diff --git a/hyperbole.el b/hyperbole.el
index 4aa427d..872dbaf 100644
--- a/hyperbole.el
+++ b/hyperbole.el
@@ -121,32 +121,6 @@
t)))
(error "(Hyperbole): Startup failure: `hyperb:dir' must be manually added to `load-path' to fix.")))
-;; This must be defined before the defcustom `inhbit-hyperbole-messaging'.
-;;;###autoload
-(defun hyperbole-toggle-messaging (&optional arg)
- "Toggle Hyperbole support for explicit buttons in mail and news buffers.
-Toggles the boolean variable `inhibit-hyperbole-messaging and either
-adds hooks (nil value) or removes them (t value).
-
-With optional prefix ARG > 0, enables support. If ARG <= 0,
-disables/inhibits support."
- (interactive "P")
- (setq inhibit-hyperbole-messaging (if (null arg)
- (not inhibit-hyperbole-messaging)
- (<= (prefix-numeric-value arg) 0)))
- (if inhibit-hyperbole-messaging
- (var:remove-all)
- (var:append-all)
- ;; Add any hooks that were skipped when inhibit-hyperbole-messaging
- ;; was nil.
- (cond ((boundp 'hyperbole-loading))
- ((not after-init-time)
- (add-hook 'after-init-hook (lambda () (load "hyperbole"))))
- (t (load "hyperbole"))))
- (if (called-interactively-p 'interactive)
- (message "Hyperbole messaging button support is %s"
- (if inhibit-hyperbole-messaging "disabled" "enabled"))))
-
(defgroup hyperbole-koutliner nil
"Hyperbole multi-level autonumbered outliner customizations."
:group 'hyperbole)
--
2.22.0

View file

@ -1,43 +0,0 @@
When decoding AV1 files, prefer dav1d over libaom for performance
reasons.
Patch copied from upstream source repository:
<https://git.videolan.org/gitweb.cgi/ffmpeg.git/?p=ffmpeg.git;a=commitdiff;h=dc0806dd25882f41f6085c8356712f95fded56c7>
From dc0806dd25882f41f6085c8356712f95fded56c7 Mon Sep 17 00:00:00 2001
From: James Almer <jamrial@gmail.com>
Date: Sun, 15 Sep 2019 11:29:56 -0300
Subject: [PATCH] avcodec/allcodecs: make libdav1d the preferred AV1 decoder
It's considerably faster than libaom in most systems.
Reviewed-by: BBB
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavcodec/allcodecs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index 5130fca026..d5dfba1877 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -680,7 +680,6 @@ extern AVCodec ff_pcm_mulaw_at_encoder;
extern AVCodec ff_pcm_mulaw_at_decoder;
extern AVCodec ff_qdmc_at_decoder;
extern AVCodec ff_qdm2_at_decoder;
-extern AVCodec ff_libaom_av1_decoder;
extern AVCodec ff_libaom_av1_encoder;
extern AVCodec ff_libaribb24_decoder;
extern AVCodec ff_libcelt_decoder;
@@ -738,6 +737,7 @@ extern AVCodec ff_idf_decoder;
/* external libraries, that shouldn't be used by default if one of the
* above is available */
extern AVCodec ff_h263_v4l2m2m_encoder;
+extern AVCodec ff_libaom_av1_decoder;
extern AVCodec ff_libopenh264_encoder;
extern AVCodec ff_libopenh264_decoder;
extern AVCodec ff_h264_amf_encoder;
--
2.20.1

View file

@ -0,0 +1,37 @@
Fix name clash with libcap 2.29.
Taken from upstream:
https://github.com/iputils/iputils/commit/18f9a84e0e702841d6cc4d5f593de4fbd1348e83
diff --git a/ninfod/ninfod.c b/ninfod/ninfod.c
--- a/ninfod/ninfod.c
+++ b/ninfod/ninfod.c
@@ -455,7 +455,7 @@ static void do_daemonize(void)
/* --------- */
#ifdef HAVE_LIBCAP
static const cap_value_t cap_net_raw = CAP_NET_RAW;
-static const cap_value_t cap_setuid = CAP_SETUID;
+static const cap_value_t cap_setuserid = CAP_SETUID;
static cap_flag_value_t cap_ok;
#else
static uid_t euid;
@@ -487,7 +487,7 @@ static void limit_capabilities(void)
cap_get_flag(cap_cur_p, CAP_SETUID, CAP_PERMITTED, &cap_ok);
if (cap_ok != CAP_CLEAR)
- cap_set_flag(cap_p, CAP_PERMITTED, 1, &cap_setuid, CAP_SET);
+ cap_set_flag(cap_p, CAP_PERMITTED, 1, &cap_setuserid, CAP_SET);
if (cap_set_proc(cap_p) < 0) {
DEBUG(LOG_ERR, "cap_set_proc: %s\n", strerror(errno));
@@ -520,8 +520,8 @@ static void drop_capabilities(void)
/* setuid / setuid */
if (cap_ok != CAP_CLEAR) {
- cap_set_flag(cap_p, CAP_PERMITTED, 1, &cap_setuid, CAP_SET);
- cap_set_flag(cap_p, CAP_EFFECTIVE, 1, &cap_setuid, CAP_SET);
+ cap_set_flag(cap_p, CAP_PERMITTED, 1, &cap_setuserid, CAP_SET);
+ cap_set_flag(cap_p, CAP_EFFECTIVE, 1, &cap_setuserid, CAP_SET);
if (cap_set_proc(cap_p) < 0) {
DEBUG(LOG_ERR, "cap_set_proc: %s\n", strerror(errno));

View file

@ -0,0 +1,172 @@
From 488edbf84e918e0353e7a8f438abbf6eeca3767e Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Wed, 17 Jun 2020 23:20:53 -0400
Subject: [PATCH] tests: Fix tests on non-x86_64 platforms.
On platform other than x86_64 such as aarch64-linux or i686-linux,
some double comparison would fail.
See <http://issues.guix.gnu.org/41827>.
* tests/bezier-test.cpp: (Casteljau): Replace EXPECT_EQ by
EXPECT_near.
(Subdivide): Replace EXPECT_EQ by EXPECT_DOUBLE_EQ.
(Portion): Replace EXPECT_EQ by EXPECT_near.
* tests/ellipse-test.cpp (BezierIntersection): Lower error tolerance
from 6e-13 to 6e-12.
* tests/line-test.cpp (Reflection): Replace EXPECT_FLOAT_EQ BY
EXPECT_near.
(Coefficients): Skip test.
* tests/parallelogram-test.cpp (area): Replace EXPECT_EQ by
EXPECT_DOUBLE_EQ.
---
tests/bezier-test.cpp | 31 +++++++++++++++++--------------
tests/ellipse-test.cpp | 2 +-
tests/line-test.cpp | 11 +++++++----
tests/parallelogram-test.cpp | 8 ++++----
4 files changed, 29 insertions(+), 23 deletions(-)
diff --git a/tests/bezier-test.cpp b/tests/bezier-test.cpp
index 4054a65..46209f4 100644
--- a/tests/bezier-test.cpp
+++ b/tests/bezier-test.cpp
@@ -152,11 +152,13 @@ TEST_F(BezierTest, Casteljau) {
EXPECT_vector_equal(right2, right);
double vnone = casteljau_subdivision<double>(t, &wiggle[0], NULL, NULL, wiggle.order());
- EXPECT_EQ(vnone, vok);
+ EXPECT_near(vnone, vok, 1e-12);
}
}
TEST_F(BezierTest, Portion) {
+ constexpr Coord eps{1e-12};
+
for (unsigned i = 0; i < 10000; ++i) {
double from = g_random_double_range(0, 1);
double to = g_random_double_range(0, 1);
@@ -165,8 +167,8 @@ TEST_F(BezierTest, Portion) {
Bezier result = portion(input, from, to);
// the endpoints must correspond exactly
- EXPECT_EQ(result.at0(), input.valueAt(from));
- EXPECT_EQ(result.at1(), input.valueAt(to));
+ EXPECT_near(result.at0(), input.valueAt(from), eps);
+ EXPECT_near(result.at1(), input.valueAt(to), eps);
}
}
}
@@ -181,16 +183,16 @@ TEST_F(BezierTest, Subdivide) {
// the endpoints must correspond exactly
// moreover, the subdivision point must be exactly equal to valueAt(t)
- EXPECT_EQ(result.first.at0(), input.at0());
- EXPECT_EQ(result.first.at1(), result.second.at0());
- EXPECT_EQ(result.second.at0(), input.valueAt(t));
- EXPECT_EQ(result.second.at1(), input.at1());
+ EXPECT_DOUBLE_EQ(result.first.at0(), input.at0());
+ EXPECT_DOUBLE_EQ(result.first.at1(), result.second.at0());
+ EXPECT_DOUBLE_EQ(result.second.at0(), input.valueAt(t));
+ EXPECT_DOUBLE_EQ(result.second.at1(), input.at1());
// ditto for valueAt
- EXPECT_EQ(result.first.valueAt(0), input.valueAt(0));
- EXPECT_EQ(result.first.valueAt(1), result.second.valueAt(0));
- EXPECT_EQ(result.second.valueAt(0), input.valueAt(t));
- EXPECT_EQ(result.second.valueAt(1), input.valueAt(1));
+ EXPECT_DOUBLE_EQ(result.first.valueAt(0), input.valueAt(0));
+ EXPECT_DOUBLE_EQ(result.first.valueAt(1), result.second.valueAt(0));
+ EXPECT_DOUBLE_EQ(result.second.valueAt(0), input.valueAt(t));
+ EXPECT_DOUBLE_EQ(result.second.valueAt(1), input.valueAt(1));
if (result.first.at1() != result.second.at0()) {
errors.push_back(std::pair<Bezier,double>(input, t));
@@ -271,9 +273,10 @@ TEST_F(BezierTest, Deflate) {
EXPECT_FLOAT_EQ(0, b.at0());
b = b.deflate();
const double rootposition = (0.5-0.25) / (1-0.25);
- EXPECT_FLOAT_EQ(0, b.valueAt(rootposition));
+ constexpr Coord eps{1e-12};
+ EXPECT_near(0.0, b.valueAt(rootposition), eps);
b = b.subdivide(rootposition).second;
- EXPECT_FLOAT_EQ(0, b.at0());
+ EXPECT_near(0.0, b.at0(), eps);
}
TEST_F(BezierTest, Roots) {
@@ -364,7 +367,7 @@ TEST_F(BezierTest, Operators) {
for(int i = 0; i <= 16; i++) {
double t = i/16.0;
double b = B.valueAt(t);
- EXPECT_FLOAT_EQ(b*b, product.valueAt(t));
+ EXPECT_near(b*b, product.valueAt(t), 1e-12);
}
}
}
diff --git a/tests/ellipse-test.cpp b/tests/ellipse-test.cpp
index 561c285..d6e65d8 100644
--- a/tests/ellipse-test.cpp
+++ b/tests/ellipse-test.cpp
@@ -199,7 +199,7 @@ TEST(EllipseTest, BezierIntersection) {
std::vector<ShapeIntersection> xs = e.intersect(b);
EXPECT_EQ(xs.size(), 2ul);
- EXPECT_intersections_valid(e, b, xs, 6e-13);
+ EXPECT_intersections_valid(e, b, xs, 6e-12);
}
TEST(EllipseTest, Coefficients) {
diff --git a/tests/line-test.cpp b/tests/line-test.cpp
index 99546dd..2399130 100644
--- a/tests/line-test.cpp
+++ b/tests/line-test.cpp
@@ -91,10 +91,12 @@ TEST(LineTest, Reflection) {
Point testra = pa * reflecta;
Point testrb = pb * reflectb;
- EXPECT_FLOAT_EQ(testra[X], ra[X]);
- EXPECT_FLOAT_EQ(testra[Y], ra[Y]);
- EXPECT_FLOAT_EQ(testrb[X], rb[X]);
- EXPECT_FLOAT_EQ(testrb[Y], rb[Y]);
+
+ constexpr Coord eps{1e-12};
+ EXPECT_near(testra[X], ra[X], eps);
+ EXPECT_near(testra[Y], ra[Y], eps);
+ EXPECT_near(testrb[X], rb[X], eps);
+ EXPECT_near(testrb[Y], rb[Y], eps);
}
TEST(LineTest, RotationToZero) {
@@ -115,6 +117,7 @@ TEST(LineTest, RotationToZero) {
}
TEST(LineTest, Coefficients) {
+ GTEST_SKIP() << "This test fails on i686-linux and aarch64-linux";
std::vector<Line> lines;
lines.push_back(Line(Point(1e9,1e9), Point(1,1)));
//the case below will never work without normalizing the line
diff --git a/tests/parallelogram-test.cpp b/tests/parallelogram-test.cpp
index 8109ead..70ccea1 100644
--- a/tests/parallelogram-test.cpp
+++ b/tests/parallelogram-test.cpp
@@ -106,13 +106,13 @@ TEST(ParallelogramTest, area)
{
Rect r(2, 4, 7, 8);
Parallelogram p(r);
- EXPECT_EQ(p.area(), r.area());
+ EXPECT_DOUBLE_EQ(p.area(), r.area());
p *= Rotate(M_PI / 4.0); // 45°
- EXPECT_EQ(p.area(), r.area());
+ EXPECT_DOUBLE_EQ(p.area(), r.area());
p *= HShear(2);
- EXPECT_EQ(p.area(), r.area());
+ EXPECT_DOUBLE_EQ(p.area(), r.area());
p *= Scale(2);
- EXPECT_EQ(p.area(), r.area() * 4);
+ EXPECT_DOUBLE_EQ(p.area(), r.area() * 4);
}
class ParallelogramTest
--
2.26.2

View file

@ -1,34 +0,0 @@
From f95925afef451755fc1449e57fbfdc2e7277f4b4 Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Sat, 11 Jan 2020 00:44:55 -0500
Subject: [PATCH 1/3] tests: Link against GLib.
This resolves an error about not finding <glib.h> when linking the
tests that make use of GLib.
* src/tests/CMakeLists.txt[2GEOM_GTESTS_SRC]: Add the glib library to
the link target libraries.
---
src/tests/CMakeLists.txt | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index 5ddf7f9c..626cfd87 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -32,8 +32,10 @@ sbasis-test
foreach(source ${2GEOM_GTESTS_SRC})
add_executable(${source} ${source}.cpp)
- target_include_directories(${source} PRIVATE ${GSL_INCLUDE_DIRS} ${GTK3_INCLUDE_DIRS})
- target_link_libraries(${source} 2geom gtest_main gtest ${GSL_LIBRARIES} ${GTK3_LIBRARIES})
+ target_include_directories(${source} PRIVATE ${GSL_INCLUDE_DIRS}
+ ${GTK3_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS})
+ target_link_libraries(${source} 2geom gtest_main gtest ${GSL_LIBRARIES}
+ ${GTK3_LIBRARIES} ${GLIB_LIBRARIES})
add_test(NAME ${source} COMMAND ${source})
endforeach()
--
2.24.1

View file

@ -1,94 +0,0 @@
From 6693b9c8ff1ae1ec02c9002c0a8f5f416f0c88f0 Mon Sep 17 00:00:00 2001
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Date: Sun, 12 Jan 2020 23:23:33 -0500
Subject: [PATCH 3/3] build: Prefer googletest from the system.
Fixes issue #4.
The build system now look for a system installed googletest or falls
back to the bundled copy of googletest otherwise.
* CMakeLists.txt: Add call to find_package(GTest).
(include_directories): Remove "src/googletest/googletest/include" from
arg.
* src/CMakeLists.txt[NOT GTEST_FOUND]: Define the gtest and gtest_main
libraries when GTEST_FOUND is false. Globally include the googletest
headers here. Define aliases for the gtest and gtest_main libraries
that match those defined by the FindGTest module.
* src/tests/CMakeLists.txt: Replace references to gtest_main and gtest
by GTest::Main and GTest::GTest, respectively.
---
CMakeLists.txt | 3 ++-
src/CMakeLists.txt | 15 +++++++++++----
src/tests/CMakeLists.txt | 6 +++---
3 files changed, 16 insertions(+), 8 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bfeb8f03..96fbd58c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,13 +25,14 @@ find_package(DoubleConversion REQUIRED)
find_package(PkgConfig REQUIRED)
find_package(Cython)
find_package(Threads)
+find_package(GTest)
pkg_check_modules(GTK3 gtk+-3.0)
pkg_check_modules(GLIB glib-2.0)
pkg_check_modules(CAIRO cairo)
pkg_check_modules(GSL gsl)
# Add global include and link directories
-include_directories(src src/googletest/googletest/include ${CMAKE_CURRENT_BINARY_DIR})
+include_directories(src ${CMAKE_CURRENT_BINARY_DIR})
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/2geom)
check_cxx_source_compiles("#include <math.h>\nint main() { double a=0.5,b=0.5,c=0.5; sincos(a, &b, &c); return 0; }" HAVE_SINCOS)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index eefb3ac5..941dc4c7 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,7 +1,14 @@
-add_library(gtest SHARED googletest/googletest/src/gtest-all.cc)
-target_include_directories(gtest PRIVATE googletest/googletest)
-target_link_libraries(gtest Threads::Threads)
-add_library(gtest_main STATIC googletest/googletest/src/gtest_main.cc)
+if(NOT GTEST_FOUND)
+ message("No system googletest library: using bundled copy.")
+ add_library(gtest SHARED googletest/googletest/src/gtest-all.cc)
+ add_library(gtest_main STATIC googletest/googletest/src/gtest_main.cc)
+ target_include_directories(gtest PRIVATE googletest/googletest)
+ target_link_libraries(gtest Threads::Threads)
+ include_directories(SYSTEM googletest/googletest/include)
+ # Aliases to share the same nomenclature with FindGTest.
+ add_library(GTest::GTest ALIAS gtest)
+ add_library(GTest::Main ALIAS gtest_main)
+endif()
add_subdirectory(2geom)
add_subdirectory(tests)
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index 626cfd87..3538f8cf 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -34,15 +34,15 @@ foreach(source ${2GEOM_GTESTS_SRC})
add_executable(${source} ${source}.cpp)
target_include_directories(${source} PRIVATE ${GSL_INCLUDE_DIRS}
${GTK3_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS})
- target_link_libraries(${source} 2geom gtest_main gtest ${GSL_LIBRARIES}
- ${GTK3_LIBRARIES} ${GLIB_LIBRARIES})
+ target_link_libraries(${source} 2geom GTest::Main GTest::GTest
+ ${GSL_LIBRARIES} ${GTK3_LIBRARIES} ${GLIB_LIBRARIES})
add_test(NAME ${source} COMMAND ${source})
endforeach()
foreach(source ${2GEOM_TESTS_SRC})
add_executable(${source} ${source}.cpp)
target_include_directories(${source} PRIVATE ${GSL_INCLUDE_DIRS} ${GTK3_INCLUDE_DIRS})
- target_link_libraries(${source} 2geom gtest ${GSL_LIBRARIES} ${GTK3_LIBRARIES})
+ target_link_libraries(${source} 2geom GTest::GTest ${GSL_LIBRARIES} ${GTK3_LIBRARIES})
add_test(NAME ${source} COMMAND ${source})
endforeach(source)
--
2.24.1

View file

@ -0,0 +1,24 @@
Problem reported upstream:
https://github.com/linsomniac/python-memcached/issues/176
---
memcache.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/memcache.py b/memcache.py
index 05b6657..b935681 100644
--- a/memcache.py
+++ b/memcache.py
@@ -1300,8 +1300,8 @@ class Client(threading.local):
key = key[1]
if key is None:
raise Client.MemcachedKeyNoneError("Key is None")
- if key is '':
- if key_extra_len is 0:
+ if key == '':
+ if key_extra_len == 0:
raise Client.MemcachedKeyNoneError("Key is empty")
# key is empty but there is some other component to key
--
2.26.2

View file

@ -0,0 +1,130 @@
https://github.com/quassel/quassel/commit/579e559a6322209df7cd51c34801fecff5fe734b.patch
Based on the above patch, with some changes due to how the code has changed
in the time since 0.13.1 was released.
https://git.archlinux.org/svntogit/community.git/plain/trunk/quassel-0.13.1-qt5.14.patch?h=packages/quassel
From 579e559a6322209df7cd51c34801fecff5fe734b Mon Sep 17 00:00:00 2001
From: Manuel Nickschas <sputnick@quassel-irc.org>
Date: Tue, 7 Jan 2020 18:34:54 +0100
Subject: [PATCH] common: Disable enum type stream operators for Qt >= 5.14
Starting from version 5.14, Qt provides stream operators for enum
types, which collide with the ones we ship in types.h. Disable
Quassel's stream operators when compiling against Qt 5.14 or later.
Add a unit test that ensures that enum serialization honors the width
of the underlying type.
---
src/common/types.h | 2 +
tests/common/CMakeLists.txt | 2 +
tests/common/typestest.cpp | 79 +++++++++++++++++++++++++++++++++++++
3 files changed, 83 insertions(+)
create mode 100644 tests/common/typestest.cpp
diff --git a/src/common/types.h b/src/common/types.h
index d3742b788..e2a9aab5e 100644
--- a/src/common/types.h
+++ b/src/common/types.h
@@ -140,6 +140,7 @@ Q_DECLARE_METATYPE(QHostAddress)
typedef QList<MsgId> MsgIdList;
typedef QList<BufferId> BufferIdList;
+#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
/**
* Catch-all stream serialization operator for enum types.
*
@@ -169,6 +170,7 @@ QDataStream &operator>>(QDataStream &in, T &value) {
value = static_cast<T>(v);
return in;
}
+#endif
// Exceptions
diff --git a/tests/common/typestest.cpp b/tests/common/typestest.cpp
new file mode 100644
index 000000000..04031c299
--- /dev/null
+++ b/tests/common/typestest.cpp
@@ -0,0 +1,79 @@
+/***************************************************************************
+ * Copyright (C) 2005-2020 by the Quassel Project *
+ * devel@quassel-irc.org *
+ * *
+ * This program 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 2 of the License, or *
+ * (at your option) version 3. *
+ * *
+ * This program 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 this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+
+#include <cstdint>
+
+#include <QByteArray>
+#include <QDataStream>
+#include <QObject>
+
+#include "testglobal.h"
+#include "types.h"
+
+using namespace ::testing;
+
+class EnumHolder
+{
+ Q_GADGET
+
+public:
+ enum class Enum16 : uint16_t {};
+ enum class Enum32 : uint32_t {};
+
+ enum class EnumQt16 : uint16_t {};
+ Q_ENUM(EnumQt16)
+ enum class EnumQt32 : uint32_t {};
+ Q_ENUM(EnumQt32)
+};
+
+// Verify that enums are (de)serialized as their underlying type
+TEST(TypesTest, enumSerialization)
+{
+ QByteArray data;
+ QDataStream out(&data, QIODevice::WriteOnly);
+
+ // Serialize
+ out << EnumHolder::Enum16(0xabcd);
+ ASSERT_THAT(data.size(), Eq(2));
+ out << EnumHolder::Enum32(0x123456);
+ ASSERT_THAT(data.size(), Eq(6));
+ out << EnumHolder::EnumQt16(0x4321);
+ ASSERT_THAT(data.size(), Eq(8));
+ out << EnumHolder::Enum32(0xfedcba);
+ ASSERT_THAT(data.size(), Eq(12));
+ ASSERT_THAT(out.status(), Eq(QDataStream::Status::Ok));
+
+ // Deserialize
+ QDataStream in(data);
+ EnumHolder::Enum16 enum16;
+ EnumHolder::Enum32 enum32;
+ EnumHolder::EnumQt16 enumQt16;
+ EnumHolder::EnumQt32 enumQt32;
+ in >> enum16 >> enum32 >> enumQt16 >> enumQt32;
+ ASSERT_THAT(in.status(), Eq(QDataStream::Status::Ok));
+ EXPECT_TRUE(in.atEnd());
+
+ EXPECT_THAT((int)enum16, Eq(0xabcd));
+ EXPECT_THAT((int)enum32, Eq(0x123456));
+ EXPECT_THAT((int)enumQt16, Eq(0x4321));
+ EXPECT_THAT((int)enumQt32, Eq(0xfedcba));
+}
+
+#include "typestest.moc"

View file

@ -0,0 +1,66 @@
Allow building tup after removing some bundled sources from the source
tree.
diff --git a/build.sh b/build.sh
index 2937116d..eab650f7 100755
--- a/build.sh
+++ b/build.sh
@@ -16,7 +16,7 @@ else
echo "Error: invalid TUP_SERVER \"$server\"" 1>&2
exit 1
fi
-LDFLAGS="$LDFLAGS -lm"
+LDFLAGS="$LDFLAGS -lm -lsqlite3 `pcre-config --libs`"
: ${CC:=gcc}
case "$os" in
Linux)
@@ -65,17 +65,15 @@ mkdir luabuiltin
CFLAGS="$CFLAGS -DTUP_SERVER=\"$server\""
CFLAGS="$CFLAGS -DHAVE_CONFIG_H"
+CFLAGS="$CFLAGS `pcre-config --cflags`"
-for i in ../src/tup/*.c ../src/tup/tup/main.c ../src/tup/monitor/null.c ../src/tup/flock/fcntl.c ../src/inih/ini.c ../src/pcre/*.c $plat_files; do
+for i in ../src/tup/*.c ../src/tup/tup/main.c ../src/tup/monitor/null.c ../src/tup/flock/fcntl.c ../src/inih/ini.c $plat_files; do
echo " bootstrap CC $CFLAGS $i"
# Put -I. first so we find our new luabuiltin.h file, not one built
# by a previous 'tup upd'.
- $CC $CFLAGS -c $i -I. -I../src -I../src/pcre $plat_cflags
+ $CC $CFLAGS -c $i -I. -I../src $plat_cflags
done
-echo " bootstrap CC $CFLAGS ../src/sqlite3/sqlite3.c"
-$CC $CFLAGS -c ../src/sqlite3/sqlite3.c -DSQLITE_TEMP_STORE=2 -DSQLITE_THREADSAFE=0 -DSQLITE_OMIT_LOAD_EXTENSION $plat_cflags
-
echo " bootstrap LD tup $LDFLAGS"
echo "const char *tup_version(void) {return \"$label\";}" | $CC -x c -c - -o tup_version.o
$CC *.o -o tup -lpthread $plat_ldflags $LDFLAGS
diff --git a/src/tup/db.c b/src/tup/db.c
index 55ee3edd..9bdf7a80 100644
--- a/src/tup/db.c
+++ b/src/tup/db.c
@@ -46,7 +46,7 @@
#include <errno.h>
#include <ctype.h>
#include <sys/stat.h>
-#include "sqlite3/sqlite3.h"
+#include <sqlite3.h>
#define DB_VERSION 17
#define PARSER_VERSION 12
diff --git a/src/tup/tupid.h b/src/tup/tupid.h
index 7b36ae46..19aed438 100644
--- a/src/tup/tupid.h
+++ b/src/tup/tupid.h
@@ -21,7 +21,7 @@
#ifndef tup_tupid_h
#define tup_tupid_h
-#include "sqlite3/sqlite3.h"
+#include <sqlite3.h>
typedef sqlite3_int64 tupid_t;
--
2.26.2

View file

@ -1,23 +0,0 @@
Description: Allow building without upstream-supplied glext.h
Author: Stephen Kitt <steve@sk2.org>
Bug: http://todo.xmoto.tuxfamily.org/index.php?do=details&task_id=803
--- xmoto-0.5.9+dfsg.orig/src/include/xm_OpenGL.h
+++ xmoto-0.5.9+dfsg/src/include/xm_OpenGL.h
@@ -1,7 +1,6 @@
#ifdef ENABLE_OPENGL
/* Pull in OpenGL headers */
/* following scissored from SDL_opengl.h */
-#define __glext_h_ /* Don't let gl.h include glext.h */
#ifdef HAVE_APPLE_OPENGL_FRAMEWORK
#include <OpenGL/gl.h> /* Header File For The OpenGL Library */
#include <OpenGL/glu.h> /* Header File For The GLU Library */
@@ -12,8 +11,5 @@
#include <GL/gl.h> /* Header File For The OpenGL Library */
#include <GL/glu.h> /* Header File For The GLU Library */
#endif
-#undef __glext_h_
-
-#include "../glext.h"
#endif

View file

@ -1,24 +0,0 @@
Description: Avoid __DATE__ and __TIME__ to build reproducibly
Author: Stephen Kitt <skitt@debian.org>
--- a/src/GameInit.cpp
+++ b/src/GameInit.cpp
@@ -248,7 +248,6 @@
Logger::setActiv(XMSession::instance()->noLog() == false); /* apply log activ mode */
LogInfo(std::string("X-Moto " + XMBuild::getVersionString(true)).c_str());
- LogInfo("compiled at "__DATE__" "__TIME__);
if(SwapEndian::bigendien) {
LogInfo("Systeme is bigendien");
} else {
--- a/src/states/StateOptions.cpp
+++ b/src/states/StateOptions.cpp
@@ -1233,8 +1233,6 @@
int p=25;
makeWindowOptions_infos_line(v_window, "Version", "X-Moto " + XMBuild::getVersionString(true), p);
p+=20;
- makeWindowOptions_infos_line(v_window, "Compilation date", __DATE__ " " __TIME__, p);
- p+=20;
makeWindowOptions_infos_line(v_window, "User data directory", XMFS::getUserDir(FDT_DATA), p);
p+=20;
makeWindowOptions_infos_line(v_window, "User config directory", XMFS::getUserDir(FDT_CONFIG), p);

View file

@ -1,16 +0,0 @@
Description: Build with g++'s new utf8.h
Author: Stephen Kitt <skitt@debian.org>
--- a/src/helpers/utf8.h
+++ b/src/helpers/utf8.h
@@ -18,8 +18,8 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
=============================================================================*/
-#ifndef __UTF8_H__
-#define __UTF8_H__
+#ifndef __XMOTO_UTF8_H__
+#define __XMOTO_UTF8_H__
#include <vector>
#include <string>

View file

@ -57,9 +57,13 @@ (define-module (gnu packages perl)
#:use-module (gnu packages bash)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gd)
#:use-module (gnu packages gl)
#:use-module (gnu packages gtk)
#:use-module (gnu packages hurd)
#:use-module (gnu packages image)
#:use-module (gnu packages less)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl-check)
@ -67,7 +71,9 @@ (define-module (gnu packages perl)
#:use-module (gnu packages perl-web)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages readline)
#:use-module (gnu packages sdl)
#:use-module (gnu packages textutils)
#:use-module (gnu packages video)
#:use-module (gnu packages web))
;;;
@ -321,6 +327,63 @@ (define-public perl-aliased
implicitly.")
(license (package-license perl))))
(define-public perl-alien-sdl
(package
(name "perl-alien-sdl")
(version "1.446")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/F/FR/FROGGS/"
"Alien-SDL-" version ".tar.gz"))
(sha256
(base32 "0ajipk43syhlmw0zinbj1i6r46vdlkr06wkx7ivqjgf6qffjran9"))))
(build-system perl-build-system)
(arguments
`(#:module-build-flags
;; XXX: For some reason, `sdl-config' reports stand-alone SDL
;; directory, not SDL-union provided as an input to the
;; package. We force the latter with "--prefix=" option.
(list (let ((sdl (assoc-ref %build-inputs "sdl")))
(string-append "--with-sdl-config=" sdl "/bin/sdl-config"
" --prefix=" sdl)))
#:phases
(modify-phases %standard-phases
;; Fix "unrecognized option: --with-sdl-config" during build.
;; Reported upstream as
;; <https://github.com/PerlGameDev/SDL/issues/261>. See also
;; <https://github.com/PerlGameDev/SDL/issues/272>.
(add-after 'unpack 'fix-build.pl
(lambda _
(substitute* "Build.PL"
(("use Getopt::Long;") "")
(("GetOptions\\( \"travis\" => \\\\\\$travis \\);") ""))
#t)))))
(native-inputs
`(("perl-archive-extract" ,perl-archive-extract)
("perl-archive-zip" ,perl-archive-zip)
("perl-capture-tiny" ,perl-capture-tiny)
("perl-file-sharedir" ,perl-file-sharedir)
("perl-file-which" ,perl-file-which)
("perl-module-build" ,perl-module-build)
("perl-text-patch" ,perl-text-patch)))
(inputs
`(("freetype" ,freetype)
("fontconfig" ,fontconfig)
("pango" ,pango)
("sdl" ,(sdl-union
(list sdl sdl-gfx sdl-image sdl-mixer sdl-net sdl-ttf
sdl-pango)))
("zlib" ,zlib)))
(home-page "https://metacpan.org/release/Alien-SDL")
(synopsis "Get, build and use SDL libraries")
(description
"Alien::SDL can be used to detect and get configuration settings from an
installed SDL and related libraries. Based on your platform it offers the
possibility to download and install prebuilt binaries or to build SDL & co.@:
from source codes.")
(license license:perl-license)))
(define-public perl-any-moose
(package
(name "perl-any-moose")
@ -2850,14 +2913,14 @@ (define-public perl-date-calc-xs
(define-public perl-date-manip
(package
(name "perl-date-manip")
(version "6.78")
(version "6.82")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/S/SB/SBECK/"
"Date-Manip-" version ".tar.gz"))
(sha256
(base32 "1faxj6gafrqir9hvy9r8q57s93n57b412s04qycrks7r0520hdnb"))))
(base32 "0ak72kpydwhq2z03mhdfwm3ganddzb8gawzh6crpsjvb9kwvr5ps"))))
(build-system perl-build-system)
(arguments
;; Tests would require tzdata for timezone information, but tzdata is in
@ -4808,15 +4871,14 @@ (define-public perl-filesys-notify-simple
(define-public perl-getopt-long
(package
(name "perl-getopt-long")
(version "2.49.1")
(version "2.51")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/J/JV/JV/"
"Getopt-Long-v" (substring version 1) ".tar.gz"))
"Getopt-Long-" version ".tar.gz"))
(sha256
(base32
"0bw8gbhj8s5gmkqvs3m7pk9arqhgqssrby4yimh29ah9alix9ylq"))))
(base32 "0r659i6rkz8zkfgdccbn29zmd4bk9lcdc4y20ng6w2glqaa3pd10"))))
(build-system perl-build-system)
(home-page "https://metacpan.org/release/Getopt-Long")
(synopsis "Module to handle parsing command line options")
@ -9676,14 +9738,14 @@ (define-public perl-text-csv
(define-public perl-text-csv-xs
(package
(name "perl-text-csv-xs")
(version "1.39")
(version "1.43")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/H/HM/HMBRAND/"
"Text-CSV_XS-" version ".tgz"))
(sha256
(base32 "1gcy1bxym6f7qsxivkl3c5p94r1bjhf9csy1x38a1gk8mx744kma"))))
(base32 "1frh8awr5ipry21x4403wdkbglpl707n69smksg8sf79ia75756d"))))
(build-system perl-build-system)
(home-page "https://metacpan.org/release/Text-CSV_XS")
(synopsis "Routines for manipulating CSV files")
@ -10704,14 +10766,14 @@ (define-public perl-xs-object-magic
(define-public perl-yaml
(package
(name "perl-yaml")
(version "1.29")
(version "1.30")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/T/TI/TINITA/"
"YAML-" version ".tar.gz"))
(sha256
(base32 "0gl5ssvrdajlbc85cy6z873n9cwlssk5q8z97a31vyiikhw5fp4w"))))
(base32 "1kbrfksjg4k4vmx1i337m5n69m00m0m5bgsh61c15bzzrgbacc2h"))))
(build-system perl-build-system)
(native-inputs
`(("perl-test-yaml" ,perl-test-yaml)))
@ -10956,6 +11018,46 @@ (define-public perl-scalar-list-utils
such that being individual extensions would be wasteful.")
(license (package-license perl))))
(define-public perl-sdl
(package
(name "perl-sdl")
(version "2.548")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/F/FR/FROGGS/"
"SDL-" version ".tar.gz"))
(sha256
(base32 "1dagpmcpjnwvd4g6mmnc312rqpd4qcwx21rpi2j7084wz8mijai5"))))
(build-system perl-build-system)
(native-inputs
`(("perl-alien-sdl" ,perl-alien-sdl)
("perl-capture-tiny" ,perl-capture-tiny)
("perl-file-sharedir" ,perl-file-sharedir)
("perl-module-build" ,perl-module-build)
("perl-test-most" ,perl-test-most)
("perl-tie-simple" ,perl-tie-simple)))
(inputs
`(("freeglut" ,freeglut)
("libjpeg" ,libjpeg-turbo)
("libpng" ,libpng)
("libsmpeg" ,libsmpeg)
("libtiff" ,libtiff)
("mesa" ,mesa)
("sdl" ,(sdl-union
(list sdl sdl-gfx sdl-image sdl-mixer sdl-pango sdl-ttf)))))
(propagated-inputs
`(("perl-file-sharedir" ,perl-file-sharedir)
("perl-tie-simple" ,perl-tie-simple)))
(home-page "https://metacpan.org/release/SDL")
(synopsis "SDL bindings to Perl")
(description
"SDL Perl is a package of Perl modules that provide both functional and
object oriented interfaces to the Simple DirectMedia Layer for Perl5. This
package takes some liberties with the SDL API, and attempts to adhere to the
spirit of both the SDL and Perl.")
(license license:lgpl2.1)))
(define-public perl-shell-command
(package
(name "perl-shell-command")

View file

@ -6450,7 +6450,7 @@ (define-public python-ipython
(propagated-inputs
`(("python-backcall" ,python-backcall)
("python-pyzmq" ,python-pyzmq)
("python-prompt-toolkit" ,python-prompt-toolkit)
("python-prompt-toolkit" ,python-prompt-toolkit-2)
("python-terminado" ,python-terminado)
("python-matplotlib" ,python-matplotlib)
("python-numpy" ,python-numpy)
@ -9004,8 +9004,7 @@ (define-public python-widgetsnbextension
"1ismyaxbv9d56yqqqb8xl58hg0iq0bbyy014a53y1g3hfbc8g7q7"))))
(build-system python-build-system)
(propagated-inputs
`(("python-ipykernel"
,(prompt-toolkit-2-instead-of-prompt-toolkit python-ipykernel))
`(("python-ipykernel" ,python-ipykernel)
("python-notebook" ,python-notebook)))
(native-inputs
`(("python-certifi" ,python-certifi)
@ -9032,8 +9031,7 @@ (define-public python-ipywidgets
"15sww2mvnkqlvx55gwa82v05062a8j1xpncnqna4k9sl53hgcig9"))))
(build-system python-build-system)
(propagated-inputs
`(("python-ipython" ,(prompt-toolkit-2-instead-of-prompt-toolkit
python-ipython))
`(("python-ipython" ,python-ipython)
("python-traitlets" ,python-traitlets)
("python-widgetsnbextension" ,python-widgetsnbextension)))
(native-inputs
@ -9063,8 +9061,7 @@ (define-public python-jupyter-console
"06s3kr5vx0l1y1b7fxb04dmrppscl7q69sl9yyfr0d057d1ssvkg"))))
(build-system python-build-system)
(propagated-inputs
`(("python-ipykernel" ,(prompt-toolkit-2-instead-of-prompt-toolkit
python-ipykernel))
`(("python-ipykernel" ,python-ipykernel)
("python-jupyter-client" ,python-jupyter-client)
("python-prompt-toolkit" ,python-prompt-toolkit-2)
("python-pygments" ,python-pygments)))
@ -11782,7 +11779,8 @@ (define-public python-memcached
(uri (pypi-uri "python-memcached" version))
(sha256
(base32
"0kvyapavbirk2x3n1jx4yb9nyigrj1s3x15nm3qhpvhkpqvqdqm2"))))
"0kvyapavbirk2x3n1jx4yb9nyigrj1s3x15nm3qhpvhkpqvqdqm2"))
(patches (search-patches "python-memcached-syntax-warnings.patch"))))
(build-system python-build-system)
(propagated-inputs `(("python-six" ,python-six)))
(home-page
@ -11886,7 +11884,7 @@ (define-public python-cachy
(define-public poetry
(package
(name "poetry")
(version "1.0.5")
(version "1.0.9")
;; Poetry can only be built from source with Poetry.
(source
(origin
@ -11894,7 +11892,7 @@ (define-public poetry
(uri (pypi-uri "poetry" version))
(sha256
(base32
"02h387k0xssvv78yy82pcpknpq4w5ym2in1zl8cg9r5wljl5w6cf"))))
"1avp0db1a4hf6lz3wrzhpdvj4rpmzr4in3myrd3lp5j66nc5ck0a"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ;; Pypi does not have tests.
@ -11905,8 +11903,7 @@ (define-public poetry
(substitute* "setup.py"
;; poetry won't update version as 21.0.0 relies on python > 3.6
(("keyring>=20.0.1,<21.0.0") "keyring>=21.0.0,<22.0.0")
(("pyrsistent>=0.14.2,<0.15.0") "pyrsistent>=0.14.2,<0.16.0")
(("importlib-metadata>=1.1.3,<1.2.0") "importlib-metadata>=1.1.3,<1.5.0"))
(("pyrsistent>=0.14.2,<0.15.0") "pyrsistent>=0.14.2,<0.17.0"))
#t)))))
(propagated-inputs
`(("python-cachecontrol" ,python-cachecontrol)
@ -11914,9 +11911,9 @@ (define-public poetry
("python-cleo" ,python-cleo)
("python-clikit" ,python-clikit)
("python-html5lib" ,python-html5lib)
("python-importlib-metadata" ,python-importlib-metadata) ;; python < 3.8
("python-jsonschema" ,python-jsonschema)
("python-keyring" ,python-keyring)
("python-msgpack-transitional" ,python-msgpack-transitional)
("python-pexpect" ,python-pexpect)
("python-pkginfo" ,python-pkginfo)
("python-pyparsing" ,python-pyparsing)
@ -12192,10 +12189,6 @@ (define-public python-prompt-toolkit-2
("python-six" ,python-six)
("python-pygments" ,python-pygments)))))
(define-public prompt-toolkit-2-instead-of-prompt-toolkit
(package-input-rewriting/spec
`(("python-prompt-toolkit" . ,(const python-prompt-toolkit-2)))))
(define-public python2-prompt-toolkit
(package-with-python2 python-prompt-toolkit-2))

View file

@ -1070,3 +1070,41 @@ (define-public rtl-433
from devices on the 433 MHz, 868 MHz, 315 MHz, 345 MHz and 915 MHz ISM bands.")
(home-page "https://github.com/merbanan/rtl_433")
(license license:gpl2+)))
(define-public multimon-ng
(package
(name "multimon-ng")
(version "1.1.8")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/EliasOenal/multimon-ng.git")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1973xfyvzl1viz19zr83cgqlx5laxbjrca35rqabn6dlb6xb5xk8"))))
(build-system cmake-build-system)
(inputs
`(("libx11" ,libx11)
("pulseaudio" ,pulseaudio)))
(arguments
'(#:tests? #f)) ; No test suite
(home-page "https://github.com/EliasOenal/multimon-ng")
(synopsis "Decoder for digital radio transmission modes")
(description "Multimon-ng can decode several digital radio transmission
modes:
@itemize
@item POCSAG512, POCSAG1200, POCSAG2400
@item FLEX
@item EAS
@item UFSK1200, CLIPFSK, AFSK1200, AFSK2400, AFSK2400_2, AFSK2400_3
@item HAPN4800
@item FSK9600
@item DTMF
@item ZVEI1, ZVEI2, ZVEI3, DZVEI, PZVEI
@item EEA, EIA, CCIR
@item MORSE CW
@item X10
@end itemize")
(license license:gpl2+)))

View file

@ -620,26 +620,17 @@ (define-public guile-sdl
(define-public guile-sdl2
(package
(name "guile-sdl2")
(version "0.4.0")
(version "0.5.0")
(source (origin
(method url-fetch)
(uri (string-append "https://files.dthompson.us/guile-sdl2/"
"guile-sdl2-" version ".tar.gz"))
(sha256
(base32
"0zcxwgyadwpbhq6h5mv2569c3kalgra26zc186y9fqiyyzmh1v9s"))))
"118x0cg7fzbsyrfhy5f9ab7dqp9czgia0ycgzp6sn3nlsdrcnr4m"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags '("GUILE_AUTO_COMPILE=0")
#:configure-flags
(list (string-append "--with-libsdl2-prefix="
(assoc-ref %build-inputs "sdl2"))
(string-append "--with-libsdl2-image-prefix="
(assoc-ref %build-inputs "sdl2-image"))
(string-append "--with-libsdl2-ttf-prefix="
(assoc-ref %build-inputs "sdl2-ttf"))
(string-append "--with-libsdl2-mixer-prefix="
(assoc-ref %build-inputs "sdl2-mixer")))))
'(#:make-flags '("GUILE_AUTO_COMPILE=0")))
(native-inputs
`(("guile" ,guile-2.2)
("pkg-config" ,pkg-config)))

View file

@ -803,14 +803,14 @@ (define-public oil
(package
(name "oil")
;; https://www.oilshell.org/blog/2020/04/release-0.8.pre4.html#comment-on-version-numbering
(version "0.8.pre5")
(version "0.8.pre6")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.oilshell.org/download/oil-"
version ".tar.gz"))
(sha256
(base32 "02llxx10izxpv1y32qn8k6r0y7al01rzxjirc8h6x8nd9kiaqknl"))))
(base32 "11nfwn5b1w74hv78065jg2zm45mqzi59381b0f649j7n3g7yp3iq"))))
(build-system gnu-build-system)
(arguments
`(#:strip-binaries? #f ; strip breaks the binary
@ -827,7 +827,7 @@ (define-public oil
(replace 'check
;; The tests are not distributed in the tarballs but upstream
;; recommends running this smoke test.
;; https://github.com/oilshell/oil/blob/release/0.8.pre5/INSTALL.txt#L38-L48
;; https://github.com/oilshell/oil/blob/release/0.8.pre6/INSTALL.txt#L38-L48
(lambda _
(let* ((oil "_bin/oil.ovm"))
(invoke/quiet oil "osh" "-c" "echo hi")

View file

@ -5902,3 +5902,24 @@ (define-public emacs-ess
Emacs. It is designed to support editing of scripts and interaction with
various statistical analysis programs such as R, Julia, and JAGS.")
(license license:gpl2+)))
(define-public r-boruta
(package
(name "r-boruta")
(version "7.0.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "Boruta" version))
(sha256
(base32
"0y2w4wb45kfnzrxcrdsiwgal9fsnlr3wad1sqdc70qv8gp921xbg"))))
(properties `((upstream-name . "Boruta")))
(build-system r-build-system)
(propagated-inputs `(("r-ranger" ,r-ranger)))
(home-page "https://gitlab.com/mbq/Boruta/")
(synopsis
"Wrapper Algorithm for All Relevant Feature Selection")
(description
"An all relevant feature selection wrapper algorithm. It finds relevant features by comparing original attributes' importance with importance achievable at random, estimated using their permuted copies (shadows).")
(license license:gpl2+)))

View file

@ -182,9 +182,9 @@ (define-public gnutls
"0jvca1qahn9lrwv6f5kfs95icirc15b2a8x9fzczyj996ipg3b5z"))))
(build-system gnu-build-system)
(arguments
`(,@(if (hurd-target?) '(#:tests? #f) '())
; Ensure we don't keep a reference to this buggy software.
#:disallowed-references (,net-tools)
`(#:tests? ,(not (hurd-target?))
;; Ensure we don't keep a reference to net-tools.
#:disallowed-references ,(if (hurd-target?) '() (list net-tools))
#:configure-flags
(list
;; GnuTLS doesn't consult any environment variables to specify

View file

@ -8,6 +8,7 @@
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;;
;;; This file is part of GNU Guix.
;;;
@ -141,8 +142,28 @@ (define-public privoxy
;; $out/etc/privoxy.
#:configure-flags (list (string-append "--sysconfdir="
(assoc-ref %outputs "out")
"/etc/privoxy"))
#:tests? #f))
"/etc/privoxy")
"--localstatedir=/var")
#:tests? #f ; no test suite
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-default-logging
(lambda _
(with-fluids ((%default-port-encoding "ISO-8859-1"))
;; Do not create /var/run nor /var/log/privoxy/logfile.
(substitute* "GNUmakefile.in"
(("(logfile \\|\\| exit )1" _ match)
(string-append match "0"))
(("(\\$\\(DESTDIR\\)\\$\\(SHARE_DEST\\)) \\\\" _ match)
match)
((".*\\$\\(LOG_DEST\\) \\$\\(DESTDIR\\)\\$\\(PID_DEST\\).*")
""))
;; Disable logging in the default configuration to allow for
;; non-root users using it as is.
(substitute* "config"
(("^logdir") "#logdir")
(("^logfile") "#logfile")))
#t)))))
(inputs
`(("w3m" ,w3m)
("pcre" ,pcre)

View file

@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
;;; Copyright © 2019 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
@ -167,7 +167,7 @@ (define-public filters
(define-public xsnow
(package
(name "xsnow")
(version "2.0.15")
(version "2.0.22")
(source
(origin
(method url-fetch)
@ -175,7 +175,7 @@ (define-public xsnow
"https://www.ratrabbit.nl/ratrabbit/system/files/xsnow/xsnow-"
version ".tar.gz"))
(sha256
(base32 "086s42frbz9bk550414v908yrax4iwwlvlxv4zwp39cyp7wgws03"))))
(base32 "1880643fal6l7bskqbm4zfbr2s719698mkx4pchrxkjpb240sj0z"))))
(build-system gnu-build-system)
(arguments
'(#:phases

View file

@ -121,11 +121,13 @@ (define-module (gnu packages video)
#:use-module (gnu packages iso-codes)
#:use-module (gnu packages libidn)
#:use-module (gnu packages libreoffice)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages m4)
#:use-module (gnu packages man)
#:use-module (gnu packages markup)
#:use-module (gnu packages maths)
#:use-module (gnu packages mp3)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages networking)
@ -935,16 +937,14 @@ (define-public libva-utils
(define-public ffmpeg
(package
(name "ffmpeg")
(version "4.2.3")
(version "4.3")
(source (origin
(method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz"))
;; See <https://issues.guix.gnu.org/issue/39719>
(patches (search-patches "ffmpeg-prefer-dav1d.patch"))
(sha256
(base32
"0cddkb5sma9dzy8i59sfls19rhjlq40zn9mh3x666dqkxl5ckxlx"))))
"0pbrsv5v96yd8qzb9bk4kw7qk4xqpi03rsd5xfbwnjzlhijd02hx"))))
(build-system gnu-build-system)
(inputs
`(("dav1d" ,dav1d)
@ -971,6 +971,7 @@ (define-public ffmpeg
("mesa" ,mesa)
("openal" ,openal)
("pulseaudio" ,pulseaudio)
("rav1e" ,rav1e)
("sdl" ,sdl2)
("soxr" ,soxr)
("speex" ,speex)
@ -1052,6 +1053,7 @@ (define-public ffmpeg
"--enable-libmp3lame"
"--enable-libopus"
"--enable-libpulse"
"--enable-librav1e"
"--enable-libsoxr"
"--enable-libspeex"
"--enable-libtheora"
@ -1130,10 +1132,10 @@ (define-public ffmpeg-3.4
(arguments
(substitute-keyword-arguments (package-arguments ffmpeg)
((#:configure-flags flags)
`(delete "--enable-libdav1d" (delete "--enable-libaom"
,flags)))))
(inputs (alist-delete "dav1d" (alist-delete "libaom"
(package-inputs ffmpeg))))))
`(delete "--enable-libdav1d" (delete "--enable-libaom" (delete "--enable-librav1e"
,flags))))))
(inputs (alist-delete "dav1d" (alist-delete "libaom" (alist-delete "rav1e"
(package-inputs ffmpeg)))))))
(define-public ffmpeg-for-stepmania
(hidden-package
@ -1197,7 +1199,7 @@ (define-public ffmpegthumbnailer
(define-public vlc
(package
(name "vlc")
(version "3.0.10")
(version "3.0.11")
(source (origin
(method url-fetch)
(uri (string-append
@ -1206,7 +1208,7 @@ (define-public vlc
"/vlc-" version ".tar.xz"))
(sha256
(base32
"0cackl1084hcmg4myf3kvjvd6sjxmzn0c0qkmanz6brvgzyanrm9"))))
"06a9hfl60f6l0fs5c9ma5s8np8kscm4ala6m2pdfji9lyfna351y"))))
(build-system gnu-build-system)
(native-inputs
`(("flex" ,flex)
@ -1218,10 +1220,6 @@ (define-public vlc
(inputs
`(("alsa-lib" ,alsa-lib)
("avahi" ,avahi)
;; XXX Try removing dav1d here and testing AV1 playback when FFmpeg 4.3
;; is released.
;; <https://issues.guix.gnu.org/issue/39719>
("dav1d" ,dav1d)
("dbus" ,dbus)
("eudev" ,eudev)
("flac" ,flac)
@ -2771,7 +2769,7 @@ (define-public mps-youtube
(define-public handbrake
(package
(name "handbrake")
(version "1.3.2")
(version "1.3.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/HandBrake/HandBrake/"
@ -2779,7 +2777,7 @@ (define-public handbrake
"HandBrake-" version "-source.tar.bz2"))
(sha256
(base32
"0w7jxjrccvxp7g15dv0spildg5apmqp4gwbcqmg58va2gylynvzc"))
"11bzhyp052bmng5119x74xvdj5632smx6qsk537ygda8bzckg2i1"))
(modules '((guix build utils)))
(snippet
;; Remove "contrib" and source not necessary for
@ -4097,3 +4095,42 @@ (define-public wf-recorder
wlroots-based compositors. More specifically, those that support
@code{wlr-screencopy-v1} and @code{xdg-output}.")
(license license:expat)))
(define-public guvcview
(package
(name "guvcview")
(version "2.0.6")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/guvcview/source/guvcview-"
"src-" version ".tar.gz"))
(sha256
(base32
"11byyfpkcik7wvf2qic77zjamfr2rhji97dpj1gy2fg1bvpiqf4m"))))
(build-system gnu-build-system)
(arguments
;; There are no tests and "make check" would fail on an intltool error.
'(#:tests? #f))
(native-inputs
`(("pkg-config" ,pkg-config)
("intltool" ,intltool)))
(inputs
`(("gtk+" ,gtk+)
("eudev" ,eudev)
("libusb" ,libusb)
("v4l-utils" ,v4l-utils) ;libv4l2
("ffmpeg" ,ffmpeg) ;libavcodec, libavutil
("sdl2" ,sdl2)
("gsl" ,gsl)
("portaudio" ,portaudio)
("alsa-lib" ,alsa-lib)))
(home-page "http://guvcview.sourceforge.net/")
(synopsis "Control your webcam and capture videos and images")
(description
"GTK+ UVC Viewer (guvcview) is a graphical application to control a
webcam accessible with Video4Linux (V4L2) and to capture videos and images.
It provides control over precise settings of the webcam such as exposure,
brightness, contrast, and frame rate.")
;; 'COPYING' is GPLv3 but source headers say GPLv2+.
(license license:gpl2+)))

View file

@ -694,14 +694,14 @@ (define-public xmonad
(define-public xmobar
(package
(name "xmobar")
(version "0.33")
(version "0.34")
(source (origin
(method url-fetch)
(uri (string-append "mirror://hackage/package/xmobar/"
"xmobar-" version ".tar.gz"))
(sha256
(base32
"1hr3qqykc5givcpcwrr9f2y920jmiinmxm5mcy6qgpgymgwqb618"))))
"0x09xbz7y9ay0046j1xpr9jjk5jqivqi06vm3q6mhcrgc4y922rx"))))
(build-system haskell-build-system)
(native-inputs
`(("ghc-hspec" ,ghc-hspec)

View file

@ -266,8 +266,7 @@ (define (shepherd-service-file service)
(define (scm->go file)
"Compile FILE, which contains code to be loaded by shepherd's config file,
and return the resulting '.go' file."
;; FIXME: %current-target-system may not be bound <https://bugs.gnu.org/29296>
(let ((target (%current-target-system)))
(let-system (system target)
(with-extensions (list shepherd)
(computed-file (string-append (basename (scheme-file-name file) ".scm")
".go")

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Ryan Moe <ryan.moe@gmail.com>
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -18,24 +19,45 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu services virtualization)
#:use-module (gnu services)
#:use-module (gnu services configuration)
#:use-module (gnu bootloader)
#:use-module (gnu bootloader grub)
#:use-module (gnu image)
#:use-module (gnu packages admin)
#:use-module (gnu packages ssh)
#:use-module (gnu packages virtualization)
#:use-module (gnu services base)
#:use-module (gnu services configuration)
#:use-module (gnu services dbus)
#:use-module (gnu services shepherd)
#:use-module (gnu system shadow)
#:use-module (gnu services ssh)
#:use-module (gnu services)
#:use-module (gnu system file-systems)
#:use-module (gnu packages admin)
#:use-module (gnu packages virtualization)
#:use-module (guix records)
#:use-module (gnu system hurd)
#:use-module (gnu system image)
#:use-module (gnu system shadow)
#:use-module (gnu system)
#:use-module (guix derivations)
#:use-module (guix gexp)
#:use-module (guix monads)
#:use-module (guix packages)
#:use-module (guix records)
#:use-module (guix store)
#:use-module (guix utils)
#:use-module (srfi srfi-9)
#:use-module (srfi srfi-26)
#:use-module (rnrs bytevectors)
#:use-module (ice-9 match)
#:export (libvirt-configuration
#:export (%hurd-vm-operating-system
hurd-vm-configuration
hurd-vm-disk-image
hurd-vm-id
hurd-vm-net-options
hurd-vm-options
hurd-vm-service-type
libvirt-configuration
libvirt-service-type
virtlog-configuration
virtlog-service-type
@ -773,3 +795,112 @@ (define qemu-binfmt-service-type
"This service supports transparent emulation of binaries
compiled for other architectures using QEMU and the @code{binfmt_misc}
functionality of the kernel Linux.")))
;;;
;;; The Hurd in VM service: a Childhurd.
;;;
(define %hurd-vm-operating-system
(operating-system
(inherit %hurd-default-operating-system)
(host-name "childhurd")
(timezone "Europe/Amsterdam")
(bootloader (bootloader-configuration
(bootloader grub-minimal-bootloader)
(target "/dev/vda")
(timeout 0)))
(services (cons*
(service openssh-service-type
(openssh-configuration
(openssh openssh-sans-x)
(use-pam? #f)
(port-number 2222)
(permit-root-login #t)
(allow-empty-passwords? #t)
(password-authentication? #t)))
%base-services/hurd))))
(define-record-type* <hurd-vm-configuration>
hurd-vm-configuration make-hurd-vm-configuration
hurd-vm-configuration?
(os hurd-vm-configuration-os ;<operating-system>
(default %hurd-vm-operating-system))
(qemu hurd-vm-configuration-qemu ;<package>
(default qemu-minimal))
(image hurd-vm-configuration-image ;string
(thunked)
(default (hurd-vm-disk-image this-record)))
(disk-size hurd-vm-configuration-disk-size ;number or 'guess
(default 'guess))
(memory-size hurd-vm-configuration-memory-size ;number
(default 512))
(options hurd-vm-configuration-options ;list of string
(default `("--snapshot")))
(id hurd-vm-configuration-id ;#f or integer [1..]
(default #f))
(net-options hurd-vm-configuration-net-options ;list of string
(thunked)
(default (hurd-vm-net-options this-record))))
(define (hurd-vm-disk-image config)
"Return a disk-image for the Hurd according to CONFIG."
(let ((os (hurd-vm-configuration-os config))
(disk-size (hurd-vm-configuration-disk-size config)))
(system-image
(image
(inherit hurd-disk-image)
(size disk-size)
(operating-system os)))))
(define (hurd-vm-net-options config)
(let ((id (or (hurd-vm-configuration-id config) 0)))
(define (qemu-vm-port base)
(number->string (+ base (* 1000 id))))
`("--device" "rtl8139,netdev=net0"
"--netdev" ,(string-append
"user,id=net0"
",hostfwd=tcp:127.0.0.1:" (qemu-vm-port 10022) "-:2222"
",hostfwd=tcp:127.0.0.1:" (qemu-vm-port 15900) "-:5900"))))
(define (hurd-vm-shepherd-service config)
"Return a <shepherd-service> for a Hurd in a Virtual Machine with CONFIG."
(let ((image (hurd-vm-configuration-image config))
(qemu (hurd-vm-configuration-qemu config))
(memory-size (hurd-vm-configuration-memory-size config))
(options (hurd-vm-configuration-options config))
(id (hurd-vm-configuration-id config))
(net-options (hurd-vm-configuration-net-options config))
(provisions '(hurd-vm childhurd)))
(define vm-command
#~(list
(string-append #$qemu "/bin/qemu-system-i386")
#$@(if (file-exists? "/dev/kvm") '("--enable-kvm") '())
"-m" (number->string #$memory-size)
#$@net-options
#$@options
"--hda" #+image))
(list
(shepherd-service
(documentation "Run the Hurd in a Virtual Machine: a Childhurd.")
(provision (if id
(map
(cute symbol-append <>
(string->symbol (number->string id)))
provisions)
provisions))
(requirement '(networking))
(start #~(make-forkexec-constructor #$vm-command))
(stop #~(make-kill-destructor))))))
(define hurd-vm-service-type
(service-type
(name 'hurd-vm)
(extensions (list (service-extension shepherd-root-service-type
hurd-vm-shepherd-service)))
(default-value (hurd-vm-configuration))
(description
"Provide a Virtual Machine running the GNU/Hurd.")))

View file

@ -941,7 +941,9 @@ (define %setuid-programs
;; Default set of setuid-root programs.
(let ((shadow (@ (gnu packages admin) shadow)))
(list (file-append shadow "/bin/passwd")
(file-append shadow "/bin/sg")
(file-append shadow "/bin/su")
(file-append shadow "/bin/newgrp")
(file-append shadow "/bin/newuidmap")
(file-append shadow "/bin/newgidmap")
(file-append inetutils "/bin/ping")
@ -1191,6 +1193,7 @@ (define (hurd-multiboot-modules os)
"--device-master-port='${device-port}'"
"--exec-server-task='${exec-task}'"
"--store-type=typed"
"--x-xattr-translator-records"
"'${root}'" "'$(task-create)'" "'$(task-resume)'"))
(target (%current-target-system))
(libc (if target

View file

@ -81,7 +81,10 @@ (define %base-services/hurd
(service guix-service-type
(guix-configuration
(extra-options '("--disable-chroot"
"--disable-deduplication"))))))
"--disable-deduplication"))))
(service special-files-service-type
`(("/bin/sh" ,(file-append bash "/bin/sh"))
("/usr/bin/env" ,(file-append coreutils "/bin/env"))))))
(define %hurd-default-operating-system
(operating-system

View file

@ -524,15 +524,15 @@ (define* (system-image image)
"Return the derivation of IMAGE. It can be a raw disk-image or an ISO9660
image, depending on IMAGE format."
(define substitutable? (image-substitutable? image))
(define target (image-target image))
(let* ((os (operating-system-for-image image))
(image* (image-with-os image os))
(target (image-target image))
(register-closures? (has-guix-service-type? os))
(bootcfg (operating-system-bootcfg os))
(bootloader (bootloader-configuration-bootloader
(operating-system-bootloader os))))
(with-parameters ((%current-target-system target))
(with-parameters ((%current-target-system target))
(let* ((os (operating-system-for-image image))
(image* (image-with-os image os))
(register-closures? (has-guix-service-type? os))
(bootcfg (operating-system-bootcfg os))
(bootloader (bootloader-configuration-bootloader
(operating-system-bootloader os))))
(case (image-format image)
((disk-image)
(system-disk-image image*
@ -573,8 +573,4 @@ (define (find-image file-system-type target)
(else
efi-disk-image)))))
;;; Local Variables:
;;; eval: (put 'maybe-with-target 'scheme-indent-function 1)
;;; End:
;;; image.scm ends here

View file

@ -298,5 +298,5 @@ (define uuid=?
(bytevector=? (uuid-bytevector a) b))
(((? uuid? a) (? uuid? b))
(bytevector=? (uuid-bytevector a) (uuid-bytevector b)))
((a b)
(((or (? uuid? a) (? bytevector? a)) (or (? uuid? b) (? bytevector? b)))
(uuid=? b a))))

View file

@ -2,6 +2,7 @@
;;; Copyright © 2013, 2014, 2015, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
;;;
@ -113,6 +114,7 @@ (define* (cmake-build store name inputs
(phases '(@ (guix build cmake-build-system)
%standard-phases))
(system (%current-system))
(substitutable? #t)
(imported-modules %cmake-build-system-modules)
(modules '((guix build cmake-build-system)
(guix build utils))))
@ -162,6 +164,7 @@ (define guile-for-build
#:inputs inputs
#:modules imported-modules
#:outputs outputs
#:substitutable? substitutable?
#:guile-for-build guile-for-build))
@ -192,6 +195,7 @@ (define* (cmake-cross-build store name
"bin" "sbin"))
(phases '(@ (guix build cmake-build-system)
%standard-phases))
(substitutable? #t)
(system (%current-system))
(build (nix-system->gnu-triplet system))
(imported-modules %cmake-build-system-modules)
@ -271,6 +275,7 @@ (define guile-for-build
#:inputs (append native-drvs target-drvs)
#:outputs outputs
#:modules imported-modules
#:substitutable? substitutable?
#:guile-for-build guile-for-build))
(define cmake-build-system

View file

@ -235,25 +235,21 @@ (define* (dist-package p source #:key (phases '%dist-phases))
(source s)
(arguments
;; Use the right phases and modules.
(let* ((args (default-keyword-arguments (package-arguments p)
`(#:phases #f
#:modules ,%default-modules
#:imported-modules ,%gnu-build-system-modules))))
(substitute-keyword-arguments args
((#:modules modules)
`((guix build gnu-dist)
,@modules))
((#:imported-modules modules)
`((guix build gnu-dist)
,@modules))
((#:phases _)
phases))))
(substitute-keyword-arguments (package-arguments p)
((#:modules modules %default-modules)
`((guix build gnu-dist)
,@modules))
((#:imported-modules modules %gnu-build-system-modules)
`((guix build gnu-dist)
,@modules))
((#:phases _ #f)
phases)))
(native-inputs
;; Add autotools & co. as inputs.
(let ((ref (lambda (module var)
(module-ref (resolve-interface module) var))))
`(,@(package-native-inputs p)
("autoconf" ,((ref '(gnu packages autotools) 'autoconf-wrapper)))
("autoconf" ,(ref '(gnu packages autotools) 'autoconf-wrapper))
("automake" ,(ref '(gnu packages autotools) 'automake))
("libtool" ,(ref '(gnu packages autotools) 'libtool))
("gettext" ,(ref '(gnu packages gettext) 'gnu-gettext))
@ -517,9 +513,11 @@ (define* (gnu-cross-build store name
(define canonicalize-reference
(match-lambda
((? package? p)
(derivation->output-path (package-cross-derivation store p system)))
(derivation->output-path (package-cross-derivation store p
target system)))
(((? package? p) output)
(derivation->output-path (package-cross-derivation store p system)
(derivation->output-path (package-cross-derivation store p
target system)
output))
((? string? output)
output)))

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2015, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
@ -30,26 +30,6 @@ (define-module (guix build gnu-dist)
;;;
;;; Code:
(define* (copy-source #:key source #:allow-other-keys)
(copy-recursively source "."))
(define* (autoreconf #:rest args)
(letrec-syntax ((try-files (syntax-rules (else)
((_ (else fallback ...))
(begin fallback ...))
((_ file files ... (else fallback ...))
(if (file-exists? file)
(begin
(format #t "bootstrapping with `~a'...~%"
file)
(invoke (string-append "./" file)))
(try-files files ...
(else fallback ...)))))))
(try-files "bootstrap" "bootstrap.sh" "autogen" "autogen.sh"
(else
(format #t "bootstrapping with `autoreconf'...~%")
(invoke "autoreconf" "-vfi")))))
(define* (build #:key build-before-dist? make-flags (dist-target "distcheck")
#:allow-other-keys
#:rest args)
@ -60,23 +40,10 @@ (define* (build #:key build-before-dist? make-flags (dist-target "distcheck")
(apply invoke "make" dist-target make-flags))
(define* (install-dist #:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(meta (string-append out "/nix-support")) ; Hydra meta-data
(tarballs (find-files "." "\\.tar\\.")))
(mkdir out)
(let ((out (assoc-ref outputs "out")))
(for-each (lambda (tarball)
(copy-file tarball (string-append out "/" tarball)))
out)
(mkdir meta)
(call-with-output-file (string-append out "/hydra-build-products")
(lambda (port)
(for-each (lambda (tarball)
;; This tells Hydra's what kind of build products we have,
;; so it can represent them nicely. See `product-list.tt'
;; in Hydra for details.
(format port "file source-dist ~a/~a~%" out tarball))
tarballs)))
(install-file tarball out))
(find-files "." "\\.tar\\."))
#t))
(define %dist-phases
@ -84,8 +51,7 @@ (define %dist-phases
(modify-phases %standard-phases
(delete 'strip)
(replace 'install install-dist)
(replace 'build build)
(add-before 'configure 'autoreconf autoreconf)
(replace 'unpack copy-source)))
(add-after 'build 'build-dist build)
(delete 'build)))
;;; gnu-dist.scm ends here

View file

@ -186,13 +186,17 @@ (define (compiled-system system)
(_ system))))
(define* (generate-system-definition system
#:key version dependencies)
#:key version dependencies component?)
`(asdf:defsystem
,(normalize-string system)
:class asdf/bundle:prebuilt-system
,@(if component?
'(:class asdf/bundle:prebuilt-system)
'())
:version ,version
:depends-on ,dependencies
:components ((:compiled-file ,(compiled-system system)))
,@(if component?
`(:components ((:compiled-file ,(compiled-system system))))
'())
,@(if (string=? "ecl" (%lisp-type))
`(:lib ,(string-append system ".a"))
'())))
@ -311,14 +315,20 @@ (define registry
lisp-input-map)
(map dependency-name dependencies)))
;; Ensure directory exists, which might not be the case for an .asd without components.
(mkdir-p (dirname asd-file))
(call-with-output-file asd-file
(lambda (port)
(display
(replace-escaped-macros
(format #f "~y~%~y~%"
(generate-system-definition system
#:version version
#:dependencies dependencies)
(generate-system-definition
system
#:version version
#:dependencies dependencies
;; Some .asd don't have components, and thus they don't generate any .fasl.
#:component? (pair?
(find-files (dirname asd-file) "--system\\.fasl$")))
(generate-dependency-links registry system)))
port))))

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