Merge branch 'master' into core-updates
This commit is contained in:
commit
0aeb134850
|
@ -63,9 +63,6 @@ MODULES = \
|
|||
guix/base64.scm \
|
||||
guix/cpio.scm \
|
||||
guix/records.scm \
|
||||
guix/gcrypt.scm \
|
||||
guix/hash.scm \
|
||||
guix/pk-crypto.scm \
|
||||
guix/pki.scm \
|
||||
guix/progress.scm \
|
||||
guix/combinators.scm \
|
||||
|
@ -207,6 +204,7 @@ MODULES = \
|
|||
guix/scripts/authenticate.scm \
|
||||
guix/scripts/refresh.scm \
|
||||
guix/scripts/repl.scm \
|
||||
guix/scripts/describe.scm \
|
||||
guix/scripts/system.scm \
|
||||
guix/scripts/system/search.scm \
|
||||
guix/scripts/lint.scm \
|
||||
|
@ -331,8 +329,6 @@ SCM_TESTS = \
|
|||
tests/base32.scm \
|
||||
tests/base64.scm \
|
||||
tests/cpio.scm \
|
||||
tests/hash.scm \
|
||||
tests/pk-crypto.scm \
|
||||
tests/pki.scm \
|
||||
tests/print.scm \
|
||||
tests/sets.scm \
|
||||
|
@ -414,6 +410,7 @@ SH_TESTS = \
|
|||
tests/guix-environment.sh \
|
||||
tests/guix-environment-container.sh \
|
||||
tests/guix-graph.sh \
|
||||
tests/guix-describe.sh \
|
||||
tests/guix-lint.sh
|
||||
|
||||
TESTS = $(SCM_TESTS) $(SH_TESTS)
|
||||
|
|
3
README
3
README
|
@ -21,7 +21,7 @@ Guix is based on the [[https://nixos.org/nix/][Nix]] package manager.
|
|||
GNU Guix currently depends on the following packages:
|
||||
|
||||
- [[https://gnu.org/software/guile/][GNU Guile 2.2.x or 2.0.x]], version 2.0.13 or later
|
||||
- [[https://gnupg.org/][GNU libgcrypt]]
|
||||
- [[https://notabug.org/cwebber/guile-gcrypt][Guile-Gcrypt]] 0.1.0 or later
|
||||
- [[https://www.gnu.org/software/make/][GNU Make]]
|
||||
- [[https://www.gnutls.org][GnuTLS]] compiled with guile support enabled
|
||||
- [[https://notabug.org/civodul/guile-sqlite3][Guile-SQLite3]], version 0.1.0 or later
|
||||
|
@ -31,6 +31,7 @@ GNU Guix currently depends on the following packages:
|
|||
|
||||
Unless `--disable-daemon' was passed, the following packages are needed:
|
||||
|
||||
- [[https://gnupg.org/][GNU libgcrypt]]
|
||||
- [[https://sqlite.org/][SQLite 3]]
|
||||
- [[https://gcc.gnu.org][GCC's g++]]
|
||||
- optionally [[http://www.bzip.org][libbz2]]
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#:use-module (guix ui)
|
||||
#:use-module (guix config)
|
||||
#:use-module (guix modules)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-19)
|
||||
#:use-module (rnrs io ports)
|
||||
|
@ -72,7 +73,7 @@
|
|||
(variables rest ...))))))
|
||||
(variables %localstatedir %storedir %sysconfdir %system)))
|
||||
|
||||
(define* (make-config.scm #:key libgcrypt zlib gzip xz bzip2
|
||||
(define* (make-config.scm #:key zlib gzip xz bzip2
|
||||
(package-name "GNU Guix")
|
||||
(package-version "0")
|
||||
(bug-report-address "bug-guix@gnu.org")
|
||||
|
@ -92,7 +93,6 @@
|
|||
%state-directory
|
||||
%store-database-directory
|
||||
%config-directory
|
||||
%libgcrypt
|
||||
%libz
|
||||
%gzip
|
||||
%bzip2
|
||||
|
@ -137,9 +137,6 @@
|
|||
(define %xz
|
||||
#+(and xz (file-append xz "/bin/xz")))
|
||||
|
||||
(define %libgcrypt
|
||||
#+(and libgcrypt
|
||||
(file-append libgcrypt "/lib/libgcrypt")))
|
||||
(define %libz
|
||||
#+(and zlib
|
||||
(file-append zlib "/lib/libz")))))))
|
||||
|
@ -200,6 +197,54 @@ person's version identifier."
|
|||
;; XXX: Replace with a Git commit id.
|
||||
(date->string (current-date 0) "~Y~m~d.~H"))
|
||||
|
||||
(define guile-gcrypt
|
||||
;; The host Guix may or may not have 'guile-gcrypt', which was introduced in
|
||||
;; August 2018. If it has it, it's at least version 0.1.0, which is good
|
||||
;; enough. If it doesn't, specify our own package because the target Guix
|
||||
;; requires it.
|
||||
(match (find-best-packages-by-name "guile-gcrypt" #f)
|
||||
(()
|
||||
(package
|
||||
(name "guile-gcrypt")
|
||||
(version "0.1.0")
|
||||
(home-page "https://notabug.org/cwebber/guile-gcrypt")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append home-page "/archive/v" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1gir7ifknbmbvjlql5j6wzk7bkb5lnmq80q59ngz43hhpclrk5k3"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
;; The 'bootstrap' phase appeared in 'core-updates', which was merged
|
||||
;; into 'master' ca. June 2018.
|
||||
'(#:phases (modify-phases %standard-phases
|
||||
(delete 'bootstrap)
|
||||
(add-before 'configure 'bootstrap
|
||||
(lambda _
|
||||
(unless (zero? (system* "autoreconf" "-vfi"))
|
||||
(error "autoreconf failed"))
|
||||
#t)))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,(specification->package "pkg-config"))
|
||||
("autoconf" ,(specification->package "autoconf"))
|
||||
("automake" ,(specification->package "automake"))
|
||||
("texinfo" ,(specification->package "texinfo"))))
|
||||
(inputs
|
||||
`(("guile" ,(specification->package "guile"))
|
||||
("libgcrypt" ,(specification->package "libgcrypt"))))
|
||||
(synopsis "Cryptography library for Guile using Libgcrypt")
|
||||
(description
|
||||
"Guile-Gcrypt provides a Guile 2.x interface to a subset of the
|
||||
GNU Libgcrypt crytographic library. It provides modules for cryptographic
|
||||
hash functions, message authentication codes (MAC), public-key cryptography,
|
||||
strong randomness, and more. It is implemented using the foreign function
|
||||
interface (FFI) of Guile.")
|
||||
(license #f))) ;license:gpl3+
|
||||
((package . _)
|
||||
package)))
|
||||
|
||||
(define* (build-program source version
|
||||
#:optional (guile-version (effective-version))
|
||||
#:key (pull-version 0))
|
||||
|
@ -212,10 +257,21 @@ person's version identifier."
|
|||
(('gnu _ ...) #t)
|
||||
(_ #f)))
|
||||
|
||||
(define fake-gcrypt-hash
|
||||
;; Fake (gcrypt hash) module; see below.
|
||||
(scheme-file "hash.scm"
|
||||
#~(define-module (gcrypt hash)
|
||||
#:export (sha1 sha256))))
|
||||
|
||||
(with-imported-modules `(((guix config)
|
||||
=> ,(make-config.scm
|
||||
#:libgcrypt
|
||||
(specification->package "libgcrypt")))
|
||||
=> ,(make-config.scm))
|
||||
|
||||
;; To avoid relying on 'with-extensions', which was
|
||||
;; introduced in 0.15.0, provide a fake (gcrypt
|
||||
;; hash) just so that we can build modules, and
|
||||
;; adjust %LOAD-PATH later on.
|
||||
((gcrypt hash) => ,fake-gcrypt-hash)
|
||||
|
||||
,@(source-module-closure `((guix store)
|
||||
(guix self)
|
||||
(guix derivations)
|
||||
|
@ -237,13 +293,24 @@ person's version identifier."
|
|||
(match %load-path
|
||||
((front _ ...)
|
||||
(unless (string=? front source) ;already done?
|
||||
(set! %load-path (list source front)))))))
|
||||
(set! %load-path
|
||||
(list source
|
||||
(string-append #$guile-gcrypt
|
||||
"/share/guile/site/"
|
||||
(effective-version))
|
||||
front)))))))
|
||||
|
||||
;; Only load our own modules or those of Guile.
|
||||
;; Only load Guile-Gcrypt, our own modules, or those
|
||||
;; of Guile.
|
||||
(match %load-compiled-path
|
||||
((front _ ... sys1 sys2)
|
||||
(set! %load-compiled-path
|
||||
(list front sys1 sys2)))))
|
||||
(unless (string-prefix? #$guile-gcrypt front)
|
||||
(set! %load-compiled-path
|
||||
(list (string-append #$guile-gcrypt
|
||||
"/lib/guile/"
|
||||
(effective-version)
|
||||
"/site-ccache")
|
||||
front sys1 sys2))))))
|
||||
|
||||
(use-modules (guix store)
|
||||
(guix self)
|
||||
|
|
|
@ -48,7 +48,7 @@ if test "x$guix_build_daemon" = "xyes"; then
|
|||
esac
|
||||
|
||||
case "$LIBGCRYPT_LIBDIR" in
|
||||
no)
|
||||
no | "")
|
||||
LIBGCRYPT_LIBS="-lgcrypt"
|
||||
;;
|
||||
*)
|
||||
|
|
13
configure.ac
13
configure.ac
|
@ -130,6 +130,11 @@ if test "x$guix_cv_have_recent_guile_sqlite3" != "xyes"; then
|
|||
AC_MSG_ERROR([A recent Guile-SQLite3 could not be found; please install it.])
|
||||
fi
|
||||
|
||||
GUILE_MODULE_AVAILABLE([have_guile_gcrypt], [(gcrypt hash)])
|
||||
if test "x$have_guile_gcrypt" != "xyes"; then
|
||||
AC_MSG_ERROR([Guile-Gcrypt could not be found; please install it.])
|
||||
fi
|
||||
|
||||
dnl Make sure we have a full-fledged Guile.
|
||||
GUIX_ASSERT_GUILE_FEATURES([regex posix socket net-db threads])
|
||||
|
||||
|
@ -213,16 +218,10 @@ AC_ARG_WITH([libgcrypt-libdir],
|
|||
esac])
|
||||
|
||||
dnl If none of the --with-libgcrypt-* options was used, try to determine the
|
||||
dnl absolute file name of libgcrypt.so.
|
||||
dnl the library directory.
|
||||
case "x$LIBGCRYPT_PREFIX$LIBGCRYPT_LIBDIR" in
|
||||
xnono)
|
||||
GUIX_LIBGCRYPT_LIBDIR([LIBGCRYPT_LIBDIR])
|
||||
if test "x$LIBGCRYPT_LIBDIR" != x; then
|
||||
LIBGCRYPT="$LIBGCRYPT_LIBDIR/libgcrypt"
|
||||
else
|
||||
dnl 'config-daemon.ac' expects "no" in this case.
|
||||
LIBGCRYPT_LIBDIR="no"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
|
|
120
doc/guix.texi
120
doc/guix.texi
|
@ -147,6 +147,7 @@ Package Management
|
|||
* Invoking guix gc:: Running the garbage collector.
|
||||
* Invoking guix pull:: Fetching the latest Guix and distribution.
|
||||
* Channels:: Customizing the package collection.
|
||||
* Invoking guix describe:: Display information about your Guix revision.
|
||||
* Invoking guix pack:: Creating software bundles.
|
||||
* Invoking guix archive:: Exporting and importing store files.
|
||||
|
||||
|
@ -620,7 +621,8 @@ GNU Guix depends on the following packages:
|
|||
@itemize
|
||||
@item @url{http://gnu.org/software/guile/, GNU Guile}, version 2.0.13 or
|
||||
later, including 2.2.x;
|
||||
@item @url{http://gnupg.org/, GNU libgcrypt};
|
||||
@item @url{https://notabug.org/cwebber/guile-gcrypt, Guile-Gcrypt}, version
|
||||
0.1.0 or later;
|
||||
@item
|
||||
@uref{http://gnutls.org/, GnuTLS}, specifically its Guile bindings
|
||||
(@pxref{Guile Preparations, how to install the GnuTLS bindings for
|
||||
|
@ -662,6 +664,7 @@ Unless @code{--disable-daemon} was passed to @command{configure}, the
|
|||
following packages are also needed:
|
||||
|
||||
@itemize
|
||||
@item @url{http://gnupg.org/, GNU libgcrypt};
|
||||
@item @url{http://sqlite.org, SQLite 3};
|
||||
@item @url{http://gcc.gnu.org, GCC's g++}, with support for the
|
||||
C++11 standard.
|
||||
|
@ -1696,6 +1699,7 @@ guix package -i emacs-guix
|
|||
* Invoking guix gc:: Running the garbage collector.
|
||||
* Invoking guix pull:: Fetching the latest Guix and distribution.
|
||||
* Channels:: Customizing the package collection.
|
||||
* Invoking guix describe:: Display information about your Guix revision.
|
||||
* Invoking guix pack:: Creating software bundles.
|
||||
* Invoking guix archive:: Exporting and importing store files.
|
||||
@end menu
|
||||
|
@ -1749,7 +1753,7 @@ collected.
|
|||
|
||||
@cindex reproducibility
|
||||
@cindex reproducible builds
|
||||
Finally, Guix takes a @dfn{purely functional} approach to package
|
||||
Guix takes a @dfn{purely functional} approach to package
|
||||
management, as described in the introduction (@pxref{Introduction}).
|
||||
Each @file{/gnu/store} package directory name contains a hash of all the
|
||||
inputs that were used to build that package---compiler, libraries, build
|
||||
|
@ -1777,6 +1781,15 @@ a package to quickly set up the right development environment for their
|
|||
package, without having to manually install the dependencies of the
|
||||
package into their profile (@pxref{Invoking guix environment}).
|
||||
|
||||
@cindex replication, of software environments
|
||||
@cindex provenance tracking, of software artifacts
|
||||
All of Guix and its package definitions is version-controlled, and
|
||||
@command{guix pull} allows you to ``travel in time'' on the history of Guix
|
||||
itself (@pxref{Invoking guix pull}). This makes it possible to replicate a
|
||||
Guix instance on a different machine or at a later point in time, which in
|
||||
turn allows you to @emph{replicate complete software environments}, while
|
||||
retaining precise @dfn{provenance tracking} of the software.
|
||||
|
||||
@node Invoking guix package
|
||||
@section Invoking @command{guix package}
|
||||
|
||||
|
@ -2804,6 +2817,9 @@ Generation 3 Jun 13 2018 23:31:07 (current)
|
|||
69 packages upgraded: borg@@1.1.6, cheese@@3.28.0, @dots{}
|
||||
@end example
|
||||
|
||||
@ref{Invoking guix describe, @command{guix describe}}, for other ways to
|
||||
describe the current status of Guix.
|
||||
|
||||
This @code{~/.config/guix/current} profile works like any other profile
|
||||
created by @command{guix package} (@pxref{Invoking guix package}). That
|
||||
is, you can list generations, roll back to the previous
|
||||
|
@ -2849,6 +2865,13 @@ is provided, the subset of generations that match @var{pattern}.
|
|||
The syntax of @var{pattern} is the same as with @code{guix package
|
||||
--list-generations} (@pxref{Invoking guix package}).
|
||||
|
||||
@ref{Invoking guix describe}, for a way to display information about the
|
||||
current generation only.
|
||||
|
||||
@item --profile=@var{profile}
|
||||
@itemx -p @var{profile}
|
||||
Use @var{profile} instead of @file{~/.config/guix/current}.
|
||||
|
||||
@item --bootstrap
|
||||
Use the bootstrap Guile to build the latest Guix. This option is only
|
||||
useful to Guix developers.
|
||||
|
@ -3017,6 +3040,9 @@ say, on another machine, by providing a channel specification in
|
|||
(branch "dd3df5e2c8818760a8fc0bd699e55d3b69fef2bb")))
|
||||
@end lisp
|
||||
|
||||
The @command{guix describe --format=channels} command can even generate this
|
||||
list of channels directly (@pxref{Invoking guix describe}).
|
||||
|
||||
At this point the two machines run the @emph{exact same Guix}, with access to
|
||||
the @emph{exact same packages}. The output of @command{guix build gimp} on
|
||||
one machine will be exactly the same, bit for bit, as the output of the same
|
||||
|
@ -3028,6 +3054,78 @@ This gives you super powers, allowing you to track the provenance of binary
|
|||
artifacts with very fine grain, and to reproduce software environments at
|
||||
will---some sort of ``meta reproducibility'' capabilities, if you will.
|
||||
|
||||
@node Invoking guix describe
|
||||
@section Invoking @command{guix describe}
|
||||
|
||||
@cindex reproducibility
|
||||
@cindex replicating Guix
|
||||
Often you may want to answer questions like: ``Which revision of Guix am I
|
||||
using?'' or ``Which channels am I using?'' This is useful information in many
|
||||
situations: if you want to @emph{replicate} an environment on a different
|
||||
machine or user account, if you want to report a bug or to determine what
|
||||
change in the channels you are using caused it, or if you want to record your
|
||||
system state for reproducibility purposes. The @command{guix describe}
|
||||
command answers these questions.
|
||||
|
||||
When run from a @command{guix pull}ed @command{guix}, @command{guix describe}
|
||||
displays the channel(s) that it was built from, including their repository URL
|
||||
and commit IDs (@pxref{Channels}):
|
||||
|
||||
@example
|
||||
$ guix describe
|
||||
Generation 10 Sep 03 2018 17:32:44 (current)
|
||||
guix e0fa68c
|
||||
repository URL: https://git.savannah.gnu.org/git/guix.git
|
||||
branch: master
|
||||
commit: e0fa68c7718fffd33d81af415279d6ddb518f727
|
||||
@end example
|
||||
|
||||
If you're familiar with the Git version control system, this is similar in
|
||||
spirit to @command{git describe}; the output is also similar to that of
|
||||
@command{guix pull --list-generations}, but limited to the current generation
|
||||
(@pxref{Invoking guix pull, the @option{--list-generations} option}). Because
|
||||
the Git commit ID shown above unambiguously refers to a snapshot of Guix, this
|
||||
information is all it takes to describe the revision of Guix you're using, and
|
||||
also to replicate it.
|
||||
|
||||
To make it easier to replicate Guix, @command{guix describe} can also be asked
|
||||
to return a list of channels instead of the human-readable description above:
|
||||
|
||||
@example
|
||||
$ guix describe -f channels
|
||||
(list (channel
|
||||
(name 'guix)
|
||||
(url "https://git.savannah.gnu.org/git/guix.git")
|
||||
(commit
|
||||
"e0fa68c7718fffd33d81af415279d6ddb518f727")))
|
||||
@end example
|
||||
|
||||
@noindent
|
||||
You can save this to a file and feed it to @command{guix pull -C} on some
|
||||
other machine or at a later point in time, which will instantiate @emph{this
|
||||
exact Guix revision} (@pxref{Invoking guix pull, the @option{-C} option}).
|
||||
From there on, since you're able to deploy the same revision of Guix, you can
|
||||
just as well @emph{replicate a complete software environment}. We humbly
|
||||
think that this is @emph{awesome}, and we hope you'll like it too!
|
||||
|
||||
The details of the options supported by @command{guix describe} are as
|
||||
follows:
|
||||
|
||||
@table @code
|
||||
@item --format=@var{format}
|
||||
@itemx -f @var{format}
|
||||
Produce output in the specified @var{format}, one of:
|
||||
|
||||
@table @code
|
||||
@item human
|
||||
produce human-readable output;
|
||||
@item channels
|
||||
produce a list of channel specifications that can be passed to @command{guix
|
||||
pull -C} or installed as @file{~/.config/guix/channels.scm} (@pxref{Invoking
|
||||
guix pull}).
|
||||
@end table
|
||||
@end table
|
||||
|
||||
@node Invoking guix pack
|
||||
@section Invoking @command{guix pack}
|
||||
|
||||
|
@ -16823,6 +16921,13 @@ Extension package for @code{hpcguix-web}.
|
|||
|
||||
@item @code{menu} (default: @code{'()})
|
||||
Additional entry in page @code{menu}.
|
||||
|
||||
@item @code{channels} (default: @code{%default-channels})
|
||||
List of channels from which the package list is built (@pxref{Channels}).
|
||||
|
||||
@item @code{package-list-expiration} (default: @code{(* 12 3600)})
|
||||
The expiration time, in seconds, after which the package list is rebuilt from
|
||||
the latest instances of the given channels.
|
||||
@end table
|
||||
|
||||
See the hpcguix-web repository for a
|
||||
|
@ -16846,6 +16951,17 @@ A typical hpcguix-web service declaration looks like this:
|
|||
(menu '(("/about" "ABOUT"))))))))
|
||||
@end example
|
||||
|
||||
@quotation Note
|
||||
The hpcguix-web service periodically updates the package list it publishes by
|
||||
pulling channels from Git. To that end, it needs to access X.509 certificates
|
||||
so that it can authenticate Git servers when communicating over HTTPS, and it
|
||||
assumes that @file{/etc/ssl/certs} contains those certificates.
|
||||
|
||||
Thus, make sure to add @code{nss-certs} or another certificate package to the
|
||||
@code{packages} field of your configuration. @ref{X.509 Certificates}, for
|
||||
more information on X.509 certificates.
|
||||
@end quotation
|
||||
|
||||
@node Certificate Services
|
||||
@subsubsection Certificate Services
|
||||
|
||||
|
|
|
@ -729,6 +729,8 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \
|
||||
%D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch \
|
||||
%D%/packages/patches/ghostscript-CVE-2018-10194.patch \
|
||||
%D%/packages/patches/ghostscript-CVE-2018-16509.patch \
|
||||
%D%/packages/patches/ghostscript-bug-699708.patch \
|
||||
%D%/packages/patches/ghostscript-no-header-id.patch \
|
||||
%D%/packages/patches/ghostscript-no-header-uuid.patch \
|
||||
%D%/packages/patches/ghostscript-no-header-creationdate.patch \
|
||||
|
@ -955,6 +957,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/mcrypt-CVE-2012-4409.patch \
|
||||
%D%/packages/patches/mcrypt-CVE-2012-4426.patch \
|
||||
%D%/packages/patches/mcrypt-CVE-2012-4527.patch \
|
||||
%D%/packages/patches/mes-nyacc-0.86.0.patch \
|
||||
%D%/packages/patches/mesa-skip-disk-cache-test.patch \
|
||||
%D%/packages/patches/meson-for-build-rpath.patch \
|
||||
%D%/packages/patches/metabat-fix-compilation.patch \
|
||||
|
@ -991,6 +994,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/nvi-assume-preserve-path.patch \
|
||||
%D%/packages/patches/nvi-dbpagesize-binpower.patch \
|
||||
%D%/packages/patches/nvi-db4.patch \
|
||||
%D%/packages/patches/nyacc-binary-literals.patch \
|
||||
%D%/packages/patches/nyx-show-header-stats-with-python3.patch \
|
||||
%D%/packages/patches/ocaml-bisect-fix-camlp4-in-another-directory.patch \
|
||||
%D%/packages/patches/ocaml-bitstring-fix-configure.patch \
|
||||
|
|
|
@ -1908,7 +1908,7 @@ lv2-c++-tools.")
|
|||
(define-public openal
|
||||
(package
|
||||
(name "openal")
|
||||
(version "1.18.2")
|
||||
(version "1.19.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
|
@ -1916,7 +1916,7 @@ lv2-c++-tools.")
|
|||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"10kydm8701a2kppiss9sdidn1820cmzhqgx1b2bsa5dsgzic32lz"))))
|
||||
"1mhf5bsb58s1xk6hvxl7ly7rd4rpl9z8h07xl1q94brywykg7bgi"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; no check target
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
#:use-module (guix store)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:autoload (guix gnupg) (gnupg-verify*)
|
||||
#:autoload (guix hash) (port-sha256)
|
||||
#:autoload (gcrypt hash) (port-sha256)
|
||||
#:autoload (guix base32) (bytevector->nix-base32-string)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
|
|
|
@ -360,17 +360,64 @@ cutoffs. The procedures are directly applicable to identifying differentially
|
|||
expressed genes in DNA microarray experiments.")
|
||||
(license license:lgpl3)))
|
||||
|
||||
(define-public r-graph
|
||||
(package
|
||||
(name "r-graph")
|
||||
(version "1.58.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "graph" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1zx445lk36g1s6i5dbhhf00nzzazyklfjxxjfax6q8hnhvgm9759"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-biocgenerics" ,r-biocgenerics)))
|
||||
(home-page "https://bioconductor.org/packages/graph")
|
||||
(synopsis "Handle graph data structures in R")
|
||||
(description
|
||||
"This package implements some simple graph handling capabilities for R.")
|
||||
(license license:artistic2.0)))
|
||||
|
||||
(define-public r-codedepends
|
||||
(package
|
||||
(name "r-codedepends")
|
||||
(version "0.6.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "CodeDepends" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0l7kiv3awx50glf5cs841b4zzsff1ml90f0zr868ygvwsr4ps1hq"))))
|
||||
(properties `((upstream-name . "CodeDepends")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-codetools" ,r-codetools)
|
||||
("r-graph" ,r-graph)
|
||||
("r-xml" ,r-xml)))
|
||||
(home-page "http://cran.r-project.org/web/packages/CodeDepends")
|
||||
(synopsis "Analysis of R code for reproducible research and code comprehension")
|
||||
(description
|
||||
"This package provides tools for analyzing R expressions or blocks of
|
||||
code and determining the dependencies between them. It focuses on R scripts,
|
||||
but can be used on the bodies of functions. There are many facilities
|
||||
including the ability to summarize or get a high-level view of code,
|
||||
determining dependencies between variables, code improvement suggestions.")
|
||||
;; Any version of the GPL
|
||||
(license (list license:gpl2+ license:gpl3+))))
|
||||
|
||||
(define-public r-chippeakanno
|
||||
(package
|
||||
(name "r-chippeakanno")
|
||||
(version "3.14.0")
|
||||
(version "3.14.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "ChIPpeakAnno" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1kcnc3cnmrhdk1x7q3y6zsz09pgd3xn9xy1hfbxz48cajlb18ad0"))))
|
||||
"1cn1hfc3nvsf2n3563lkmvwjxfbiygx7f84zk683p89gy7zi1gyj"))))
|
||||
(properties `((upstream-name . "ChIPpeakAnno")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
|
|
@ -51,6 +51,7 @@
|
|||
#:use-module (gnu packages base)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages bison)
|
||||
#:use-module (gnu packages bioconductor)
|
||||
#:use-module (gnu packages boost)
|
||||
#:use-module (gnu packages check)
|
||||
#:use-module (gnu packages compression)
|
||||
|
@ -1887,42 +1888,33 @@ other types of unwanted sequence from high-throughput sequencing reads.")
|
|||
(define-public libbigwig
|
||||
(package
|
||||
(name "libbigwig")
|
||||
(version "0.1.4")
|
||||
(version "0.4.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/dpryan79/libBigWig/"
|
||||
"archive/" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/dpryan79/libBigWig.git")
|
||||
(commit version)))
|
||||
(file-name (string-append name "-" version "-checkout"))
|
||||
(sha256
|
||||
(base32
|
||||
"098rjh35pi4a9q83n8wiwvyzykjqj6l8q189p1xgfw4ghywdlvw1"))))
|
||||
"0h2smg24v5srdcqzrmz2g23cmlp4va465mgx8r2z571sfz8pv454"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:test-target "test"
|
||||
#:tests? #f ; tests require access to the web
|
||||
#:make-flags
|
||||
(list "CC=gcc"
|
||||
(string-append "prefix=" (assoc-ref %outputs "out")))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-before 'check 'disable-curl-test
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("./test/testRemote.*") ""))
|
||||
#t))
|
||||
;; This has been fixed with the upstream commit 4ff6959cd8a0, but
|
||||
;; there has not yet been a release containing this change.
|
||||
(add-before 'install 'create-target-dirs
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(mkdir-p (string-append out "/lib"))
|
||||
(mkdir-p (string-append out "/include"))
|
||||
#t))))))
|
||||
(delete 'configure))))
|
||||
(inputs
|
||||
`(("zlib" ,zlib)
|
||||
("curl" ,curl)))
|
||||
(native-inputs
|
||||
`(("doxygen" ,doxygen)))
|
||||
`(("doxygen" ,doxygen)
|
||||
;; Need for tests
|
||||
("python" ,python-2)))
|
||||
(home-page "https://github.com/dpryan79/libBigWig")
|
||||
(synopsis "C library for handling bigWig files")
|
||||
(description
|
||||
|
@ -1933,13 +1925,13 @@ files.")
|
|||
(define-public python-pybigwig
|
||||
(package
|
||||
(name "python-pybigwig")
|
||||
(version "0.2.5")
|
||||
(version "0.3.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "pyBigWig" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0yrpdxg3y0sny25x4w22lv1k47jzccqjmg7j4bp0hywklvp0hg7d"))
|
||||
"00w4kfnm2c5l7wdwr2nj1z5djv8kzgf7h1zhsgv6njff1rwr26g0"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
@ -1955,6 +1947,8 @@ files.")
|
|||
(substitute* "setup.py"
|
||||
(("libs=\\[") "libs=[\"BigWig\", "))
|
||||
#t)))))
|
||||
(propagated-inputs
|
||||
`(("python-numpy" ,python-numpy)))
|
||||
(inputs
|
||||
`(("libbigwig" ,libbigwig)
|
||||
("zlib" ,zlib)
|
||||
|
@ -6378,14 +6372,14 @@ exploration of the results.")
|
|||
(define-public r-annotationforge
|
||||
(package
|
||||
(name "r-annotationforge")
|
||||
(version "1.22.0")
|
||||
(version "1.22.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "AnnotationForge" version))
|
||||
(sha256
|
||||
(base32
|
||||
"12ffj7h95adiya5mzyjxazqn1qgr434ajpabfcyhrj5v83s4vk65"))))
|
||||
"17kmy7nvpyyj6w5jyrjciw87rydmmmc8q6cnwqjv1j7li9bp09gr"))))
|
||||
(properties
|
||||
`((upstream-name . "AnnotationForge")))
|
||||
(build-system r-build-system)
|
||||
|
@ -6964,13 +6958,13 @@ Bioconductor, CRAN, and Github.")
|
|||
(define-public r-biocviews
|
||||
(package
|
||||
(name "r-biocviews")
|
||||
(version "1.48.2")
|
||||
(version "1.48.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "biocViews" version))
|
||||
(sha256
|
||||
(base32
|
||||
"01yiafayl1m5704xdd2cn3zjc78rs10dqyz66lr3qkf6d8w66938"))))
|
||||
"1rxvwikqivsgxjjcazlszy8xgz346lfh5rw4llxw6fz38fjgb0k5"))))
|
||||
(properties
|
||||
`((upstream-name . "biocViews")))
|
||||
(build-system r-build-system)
|
||||
|
@ -7183,13 +7177,13 @@ utilities for sequence data management under the ACNUC system.")
|
|||
(define-public r-iranges
|
||||
(package
|
||||
(name "r-iranges")
|
||||
(version "2.14.10")
|
||||
(version "2.14.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "IRanges" version))
|
||||
(sha256
|
||||
(base32
|
||||
"10ccw930vfmkskkrzbps14xglqlkxf588623dr7f1a9ckx7yr2p6"))))
|
||||
"0wz63hysspyjihqadg91dbvllc5a61zzjrsz0b9498lihqc6m1la"))))
|
||||
(properties
|
||||
`((upstream-name . "IRanges")))
|
||||
(build-system r-build-system)
|
||||
|
@ -7263,13 +7257,13 @@ names in their natural, rather than lexicographic, order.")
|
|||
(define-public r-edger
|
||||
(package
|
||||
(name "r-edger")
|
||||
(version "3.22.2")
|
||||
(version "3.22.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "edgeR" version))
|
||||
(sha256
|
||||
(base32
|
||||
"07py2g6vg9jbflwhc1hnzr2silbinrjwxq3mkq30nzjgf0n0hrf3"))))
|
||||
"0w3jv29n0kkaiig8dbbdqy2dkng8xfaihch82mj9ci5hphrx3nng"))))
|
||||
(properties `((upstream-name . "edgeR")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -7291,13 +7285,13 @@ CAGE.")
|
|||
(define-public r-variantannotation
|
||||
(package
|
||||
(name "r-variantannotation")
|
||||
(version "1.26.0")
|
||||
(version "1.26.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "VariantAnnotation" version))
|
||||
(sha256
|
||||
(base32
|
||||
"06bccdf57vja7m63chmgc4539lwng3q3b8zxn285fj8524l6mcn7"))))
|
||||
"1r55ki951dj81qvy73knfcy69ik5vzkd56wnk3f6vvf9vngqb8jr"))))
|
||||
(properties
|
||||
`((upstream-name . "VariantAnnotation")))
|
||||
(inputs
|
||||
|
@ -7329,13 +7323,13 @@ coding changes and predict coding outcomes.")
|
|||
(define-public r-limma
|
||||
(package
|
||||
(name "r-limma")
|
||||
(version "3.36.1")
|
||||
(version "3.36.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "limma" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1982g5v35ilfgxm2vkq1p3j1bbir795pjvfzx4nzam2rlqqymbqm"))))
|
||||
"0iiifszr6hcqih6kszdsbkx3gacfg3d7v8hdx0lbjqnjqgqz7pwk"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "http://bioinf.wehi.edu.au/limma")
|
||||
(synopsis "Package for linear models for microarray and RNA-seq data")
|
||||
|
@ -7384,13 +7378,13 @@ different technologies, including microarrays, RNA-seq, and quantitative PCR.")
|
|||
(define-public r-genomicranges
|
||||
(package
|
||||
(name "r-genomicranges")
|
||||
(version "1.32.3")
|
||||
(version "1.32.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "GenomicRanges" version))
|
||||
(sha256
|
||||
(base32
|
||||
"03gmka6rlz18vd4229796l5l3l6446v5cb90sn2nb5knjbp84hni"))))
|
||||
"0p58yk2i5gqvjlkx548mnrr49wvs0xfcl06l9rqj2hi6hkkbvnp3"))))
|
||||
(properties
|
||||
`((upstream-name . "GenomicRanges")))
|
||||
(build-system r-build-system)
|
||||
|
@ -7495,13 +7489,13 @@ powerful online queries from gene annotation to database mining.")
|
|||
(define-public r-biocparallel
|
||||
(package
|
||||
(name "r-biocparallel")
|
||||
(version "1.14.1")
|
||||
(version "1.14.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "BiocParallel" version))
|
||||
(sha256
|
||||
(base32
|
||||
"00qg1kg2l9qqpyjaw5q910cmf84vwfiw1fhsx3ig784gwinwgj6n"))))
|
||||
"1llb5a62hn4yxpdgqdh2l7i5zd06mjkk8hagsna69cq65wv6iifm"))))
|
||||
(properties
|
||||
`((upstream-name . "BiocParallel")))
|
||||
(build-system r-build-system)
|
||||
|
@ -7546,13 +7540,13 @@ biological sequences or sets of sequences.")
|
|||
(define-public r-rsamtools
|
||||
(package
|
||||
(name "r-rsamtools")
|
||||
(version "1.32.0")
|
||||
(version "1.32.3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "Rsamtools" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1s65y5wn4d0x8zsljg2kmhcl6r9884h95kr041j7hp49bmxg3an6"))))
|
||||
"1hpjr22h33pf4fgv0sj83rqzv6l5l7s6fpmmqvchh45ikks1mnhq"))))
|
||||
(properties
|
||||
`((upstream-name . "Rsamtools")))
|
||||
(build-system r-build-system)
|
||||
|
@ -7590,13 +7584,13 @@ files.")
|
|||
(define-public r-delayedarray
|
||||
(package
|
||||
(name "r-delayedarray")
|
||||
(version "0.6.1")
|
||||
(version "0.6.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "DelayedArray" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0sjwszxdi0vkj2i2di5i46gh9chc660yr3gs5nk9qnqp77713zds"))))
|
||||
"10b03zrnvz5isfh4z55hasya2m71lrfx10l5lm2sdmqs0gwkanrd"))))
|
||||
(properties
|
||||
`((upstream-name . "DelayedArray")))
|
||||
(build-system r-build-system)
|
||||
|
@ -7685,13 +7679,13 @@ alignments.")
|
|||
(define-public r-rtracklayer
|
||||
(package
|
||||
(name "r-rtracklayer")
|
||||
(version "1.40.3")
|
||||
(version "1.40.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "rtracklayer" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0kvsjdaypn1jnxbnsxpycildwdyxwnjkigfq8qm8mlyfc4ahdgy3"))))
|
||||
"1wxxxlyps19dw3i0pw4mlm3kinnswsc35rgvlnbwvpnpjbca6w4l"))))
|
||||
(build-system r-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -7732,13 +7726,13 @@ as well as query and modify the browser state, such as the current viewport.")
|
|||
(define-public r-genomicfeatures
|
||||
(package
|
||||
(name "r-genomicfeatures")
|
||||
(version "1.32.0")
|
||||
(version "1.32.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "GenomicFeatures" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1cqcl72q0k5wylw1brn4g4h7xzys1v06piry19cvp0gjcvm5sp7a"))))
|
||||
"0kfyyg1ib8fkq2hxraal10z4bx3rg8figdskw4yhn1mbh6l42q5f"))))
|
||||
(properties
|
||||
`((upstream-name . "GenomicFeatures")))
|
||||
(build-system r-build-system)
|
||||
|
@ -7794,25 +7788,6 @@ extracting the desired features in a convenient format.")
|
|||
information about the latest version of the Gene Ontologies.")
|
||||
(license license:artistic2.0)))
|
||||
|
||||
(define-public r-graph
|
||||
(package
|
||||
(name "r-graph")
|
||||
(version "1.58.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "graph" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1zx445lk36g1s6i5dbhhf00nzzazyklfjxxjfax6q8hnhvgm9759"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-biocgenerics" ,r-biocgenerics)))
|
||||
(home-page "https://bioconductor.org/packages/graph")
|
||||
(synopsis "Handle graph data structures in R")
|
||||
(description
|
||||
"This package implements some simple graph handling capabilities for R.")
|
||||
(license license:artistic2.0)))
|
||||
|
||||
(define-public r-topgo
|
||||
(package
|
||||
(name "r-topgo")
|
||||
|
@ -8544,7 +8519,7 @@ paired-end data.")
|
|||
`(("r-testthat" ,r-testthat)
|
||||
;; During vignette building knitr checks that "pandoc-citeproc"
|
||||
;; is in the PATH.
|
||||
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc-with-pandoc-1)))
|
||||
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)))
|
||||
(propagated-inputs
|
||||
`(("r-biocgenerics" ,r-biocgenerics)
|
||||
("r-biomart" ,r-biomart)
|
||||
|
@ -9328,14 +9303,14 @@ unmodeled, or latent sources of noise.")
|
|||
(define-public r-seqminer
|
||||
(package
|
||||
(name "r-seqminer")
|
||||
(version "6.0")
|
||||
(version "6.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "seqminer" version))
|
||||
(sha256
|
||||
(base32
|
||||
"057j1l6dip35l1aivilapl2zv9db677b3di2pb3sfgq2sxg0ps3l"))))
|
||||
"15yhg4vfc7jg1jnqb3371j00pgbmbyc9l1xx63hq1l3p34lazq2l"))))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
`(("zlib" ,zlib)))
|
||||
|
@ -9382,14 +9357,14 @@ trait.")
|
|||
(define-public r-maldiquant
|
||||
(package
|
||||
(name "r-maldiquant")
|
||||
(version "1.17")
|
||||
(version "1.18")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "MALDIquant" version))
|
||||
(sha256
|
||||
(base32
|
||||
"047s6007ydc38x8wm027mlb4mngz15n0d4238fr8h43wyll5zy0z"))))
|
||||
"18nl214xjsxkcpbg79jkmw0yznwm5szyh2qb84n7ip46mm779ha6"))))
|
||||
(properties `((upstream-name . "MALDIquant")))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://cran.r-project.org/web/packages/MALDIquant")
|
||||
|
@ -9626,14 +9601,14 @@ structure (pcaRes) to provide a common interface to the PCA results.")
|
|||
(define-public r-msnbase
|
||||
(package
|
||||
(name "r-msnbase")
|
||||
(version "2.6.1")
|
||||
(version "2.6.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "MSnbase" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0zrpx9r93q5ca2zdak5rs2m9sjm0wjdra1xfj3d3sx6p5gzfyg6n"))))
|
||||
"15jhqg02ypmznc0wxksw56yij02csy678vqy531fdv86fsmypwa0"))))
|
||||
(properties `((upstream-name . "MSnbase")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -9708,58 +9683,31 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
|
|||
(define-public r-seurat
|
||||
(package
|
||||
(name "r-seurat")
|
||||
(version "2.3.2")
|
||||
(version "2.3.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "Seurat" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1sjpy5rrpvlpm6hs7qy7qpglgbp7zrgfybcsalpmjb51rhxhgcg1"))
|
||||
;; Delete pre-built jar.
|
||||
(snippet
|
||||
'(begin (delete-file "inst/java/ModularityOptimizer.jar")
|
||||
#t))))
|
||||
"0l8bv4i9nzz26mirnva10mq6pimibj24vk7vpvfypgn7xk4942hd"))))
|
||||
(properties `((upstream-name . "Seurat")))
|
||||
(build-system r-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'build-jar
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((classesdir "tmp-classes"))
|
||||
(setenv "JAVA_HOME" (assoc-ref inputs "jdk"))
|
||||
(mkdir classesdir)
|
||||
(with-output-to-file "manifest"
|
||||
(lambda _
|
||||
(display "Manifest-Version: 1.0
|
||||
Main-Class: ModularityOptimizer\n")))
|
||||
(and (zero? (apply system* `("javac" "-d" ,classesdir
|
||||
,@(find-files "java" "\\.java$"))))
|
||||
(zero? (system* "jar"
|
||||
"-cmf" "manifest"
|
||||
"inst/java/ModularityOptimizer.jar"
|
||||
"-C" classesdir ".")))))))))
|
||||
(native-inputs
|
||||
`(("jdk" ,icedtea "jdk")))
|
||||
(propagated-inputs
|
||||
`(("r-ape" ,r-ape)
|
||||
("r-caret" ,r-caret)
|
||||
("r-cluster" ,r-cluster)
|
||||
("r-cowplot" ,r-cowplot)
|
||||
("r-diffusionmap" ,r-diffusionmap)
|
||||
("r-dosnow" ,r-dosnow)
|
||||
("r-dplyr" ,r-dplyr)
|
||||
("r-dtw" ,r-dtw)
|
||||
("r-fitdistrplus" ,r-fitdistrplus)
|
||||
("r-fnn" ,r-fnn)
|
||||
("r-foreach" ,r-foreach)
|
||||
("r-fpc" ,r-fpc)
|
||||
("r-gdata" ,r-gdata)
|
||||
("r-ggplot2" ,r-ggplot2)
|
||||
("r-ggridges" ,r-ggridges)
|
||||
("r-gplots" ,r-gplots)
|
||||
("r-hdf5r" ,r-hdf5r)
|
||||
("r-hmisc" ,r-hmisc)
|
||||
("r-httr" ,r-httr)
|
||||
("r-ica" ,r-ica)
|
||||
("r-igraph" ,r-igraph)
|
||||
("r-irlba" ,r-irlba)
|
||||
|
@ -9772,7 +9720,6 @@ Main-Class: ModularityOptimizer\n")))
|
|||
("r-pbapply" ,r-pbapply)
|
||||
("r-plotly" ,r-plotly)
|
||||
("r-png" ,r-png)
|
||||
("r-ranger" ,r-ranger)
|
||||
("r-rann" ,r-rann)
|
||||
("r-rcolorbrewer" ,r-rcolorbrewer)
|
||||
("r-rcpp" ,r-rcpp)
|
||||
|
@ -9783,11 +9730,8 @@ Main-Class: ModularityOptimizer\n")))
|
|||
("r-rocr" ,r-rocr)
|
||||
("r-rtsne" ,r-rtsne)
|
||||
("r-sdmtools" ,r-sdmtools)
|
||||
("r-stringr" ,r-stringr)
|
||||
("r-tclust" ,r-tclust)
|
||||
("r-tidyr" ,r-tidyr)
|
||||
("r-tsne" ,r-tsne)
|
||||
("r-vgam" ,r-vgam)))
|
||||
("r-tsne" ,r-tsne)))
|
||||
(home-page "http://www.satijalab.org/seurat")
|
||||
(synopsis "Seurat is an R toolkit for single cell genomics")
|
||||
(description
|
||||
|
@ -9860,14 +9804,14 @@ distribution.")
|
|||
(define-public r-edaseq
|
||||
(package
|
||||
(name "r-edaseq")
|
||||
(version "2.14.0")
|
||||
(version "2.14.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "EDASeq" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1832pb3jkim4vrqzb8lajwx9r482bhww5n9nz3s6crvyamlp2dj0"))))
|
||||
"0970w9d5ddqw1qxqqafdidkxh6hmcv9j5djwgnpz3fgl05kmysg8"))))
|
||||
(properties `((upstream-name . "EDASeq")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -9987,14 +9931,14 @@ microarrays or GRanges for sequencing data.")
|
|||
(define-public r-keggrest
|
||||
(package
|
||||
(name "r-keggrest")
|
||||
(version "1.20.0")
|
||||
(version "1.20.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "KEGGREST" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1349vidgl9m10l1rbrp3pkwwgi2xcbsw9h9z2xqbvg97lmqc4r8j"))))
|
||||
"1ss0xd5570x570v01r6lp64rr1apjrzp0j62520pvm3g8knjhfvs"))))
|
||||
(properties `((upstream-name . "KEGGREST")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -10207,14 +10151,14 @@ the fact that each of these packages implements a select methods.")
|
|||
(define-public r-biovizbase
|
||||
(package
|
||||
(name "r-biovizbase")
|
||||
(version "1.28.0")
|
||||
(version "1.28.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "biovizBase" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0lkiqdr3ics6hgv47lwkykcy761823bbkhffbn4ykyfzyqwl4p67"))))
|
||||
"0wc45j3hfn01i44bkkxjj3n8b8xzbkkcdv35mrkzb1f9yprkf8gq"))))
|
||||
(properties `((upstream-name . "biovizBase")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -10231,6 +10175,7 @@ the fact that each of these packages implements a select methods.")
|
|||
("r-hmisc" ,r-hmisc)
|
||||
("r-iranges" ,r-iranges)
|
||||
("r-rcolorbrewer" ,r-rcolorbrewer)
|
||||
("r-rlang" ,r-rlang)
|
||||
("r-rsamtools" ,r-rsamtools)
|
||||
("r-s4vectors" ,r-s4vectors)
|
||||
("r-scales" ,r-scales)
|
||||
|
@ -10248,14 +10193,14 @@ effort and encourages consistency.")
|
|||
(define-public r-ggbio
|
||||
(package
|
||||
(name "r-ggbio")
|
||||
(version "1.28.0")
|
||||
(version "1.28.5")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "ggbio" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0wszh3w8yia5zw758h837i1q35k99sn444y2hahcxqbdmmlbf7in"))))
|
||||
"19s2v40fycwf44fl3lm791y635xzw67b30sq2g0qq4a6phjik42d"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-annotationdbi" ,r-annotationdbi)
|
||||
|
@ -10278,6 +10223,7 @@ effort and encourages consistency.")
|
|||
("r-iranges" ,r-iranges)
|
||||
("r-organismdbi" ,r-organismdbi)
|
||||
("r-reshape2" ,r-reshape2)
|
||||
("r-rlang" ,r-rlang)
|
||||
("r-rsamtools" ,r-rsamtools)
|
||||
("r-rtracklayer" ,r-rtracklayer)
|
||||
("r-s4vectors" ,r-s4vectors)
|
||||
|
@ -10732,14 +10678,14 @@ problems in genomics, brain imaging, astrophysics, and data mining.")
|
|||
(define-public r-hdf5array
|
||||
(package
|
||||
(name "r-hdf5array")
|
||||
(version "1.8.0")
|
||||
(version "1.8.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "HDF5Array" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1l0276qxkhgdxsfck3jmi8jvnsr20g10gjki53g0mqa45wnhm3ck"))))
|
||||
"1s44zgm9jg82bk4b8k3dh7xw7mxychlfm3grs8516mxnw91zpvy5"))))
|
||||
(properties `((upstream-name . "HDF5Array")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -10878,13 +10824,13 @@ libraries.")
|
|||
(define-public r-scater
|
||||
(package
|
||||
(name "r-scater")
|
||||
(version "1.8.0")
|
||||
(version "1.8.4")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "scater" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0bhpikgz3b9f510dawsay4zry9rlp8vjx5n6zvwbcpwrd94p3903"))))
|
||||
"173lfpas2fqsp4xxsw01wkxd4496c5p8himw9b4r9z4npxkfyv16"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-beachmat" ,r-beachmat)
|
||||
|
@ -10922,14 +10868,14 @@ quality control.")
|
|||
(define-public r-scran
|
||||
(package
|
||||
(name "r-scran")
|
||||
(version "1.8.2")
|
||||
(version "1.8.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (bioconductor-uri "scran" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0nbn5x75gf9d0p18w7vpkbv30cpdqvp5bz8xvila0h7jla7xdyih"))))
|
||||
"17vq9vb9ak7n4mcqpwnm9x3z91vmr7xnsgj8f45b8dbj7m0v126j"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-beachmat" ,r-beachmat)
|
||||
|
@ -12885,8 +12831,8 @@ once. This package provides tools to perform Drop-seq analyses.")
|
|||
("r-rtracklayer" ,r-rtracklayer)
|
||||
("r-rjson" ,r-rjson)
|
||||
("salmon" ,salmon)
|
||||
("ghc-pandoc" ,ghc-pandoc-1)
|
||||
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc-with-pandoc-1)
|
||||
("ghc-pandoc" ,ghc-pandoc)
|
||||
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
|
||||
("python-wrapper" ,python-wrapper)
|
||||
("python-pyyaml" ,python-pyyaml)))
|
||||
(home-page "http://bioinformatics.mdc-berlin.de/pigx/")
|
||||
|
@ -12947,8 +12893,8 @@ expression report comparing samples in an easily configurable manner.")
|
|||
("macs" ,macs)
|
||||
("multiqc" ,multiqc)
|
||||
("perl" ,perl)
|
||||
("ghc-pandoc" ,ghc-pandoc-1)
|
||||
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc-with-pandoc-1)
|
||||
("ghc-pandoc" ,ghc-pandoc)
|
||||
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
|
||||
("fastqc" ,fastqc)
|
||||
("bowtie" ,bowtie)
|
||||
("idr" ,idr)
|
||||
|
@ -13009,8 +12955,8 @@ in an easily configurable manner.")
|
|||
("r-bookdown" ,r-bookdown)
|
||||
("r-ggplot2" ,r-ggplot2)
|
||||
("r-ggbio" ,r-ggbio)
|
||||
("ghc-pandoc" ,ghc-pandoc-1)
|
||||
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc-with-pandoc-1)
|
||||
("ghc-pandoc" ,ghc-pandoc)
|
||||
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
|
||||
("python-wrapper" ,python-wrapper)
|
||||
("python-pyyaml" ,python-pyyaml)
|
||||
("snakemake" ,snakemake-4)
|
||||
|
@ -13060,8 +13006,8 @@ methylation and segmentation.")
|
|||
("python-magic" ,python-magic)
|
||||
("python-numpy" ,python-numpy)
|
||||
("python-loompy" ,python-loompy)
|
||||
("ghc-pandoc" ,ghc-pandoc-1)
|
||||
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc-with-pandoc-1)
|
||||
("ghc-pandoc" ,ghc-pandoc)
|
||||
("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
|
||||
("samtools" ,samtools)
|
||||
("snakemake" ,snakemake-4)
|
||||
("star" ,star)
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
(define-public ccache
|
||||
(package
|
||||
(name "ccache")
|
||||
(version "3.4.2")
|
||||
(version "3.4.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -38,7 +38,7 @@
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1qpy6k9f06kpr6bxy26ncdxcszqv1skcncvczcvksgfncx1v3a0q"))))
|
||||
"0jjzq5340qw3jm5gkajjkkb5wd0yqqy1dyjw3mf3jy15cakmazi9"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("perl" ,perl) ; for test.sh
|
||||
("which" ,(@ (gnu packages base) which))))
|
||||
|
@ -49,13 +49,6 @@
|
|||
(lambda _
|
||||
(substitute* '("unittest/test_hashutil.c" "test/suites/base.bash")
|
||||
(("#!/bin/sh") (string-append "#!" (which "sh"))))
|
||||
#t))
|
||||
(add-before 'check 'munge-failing-test
|
||||
(lambda _
|
||||
;; XXX The new ‘Multiple -fdebug-prefix-map’ test added in
|
||||
;; 3.3.5 fails (why?). Force it to report success instead.
|
||||
(substitute* "test/suites/debug_prefix_map.bash"
|
||||
(("grep \"name\"") "true"))
|
||||
#t)))))
|
||||
(home-page "https://ccache.samba.org/")
|
||||
(synopsis "Compiler cache")
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages databases)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages mail)
|
||||
#:use-module (gnu packages package-management)
|
||||
#:use-module (gnu packages perl)
|
||||
|
@ -223,39 +224,42 @@ their dependencies.")
|
|||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
;; Wrap the 'cuirass' command to refer to the right modules.
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(gcrypt (assoc-ref inputs "guile-gcrypt"))
|
||||
(json (assoc-ref inputs "guile-json"))
|
||||
(sqlite (assoc-ref inputs "guile-sqlite3"))
|
||||
(git (assoc-ref inputs "guile-git"))
|
||||
(bytes (assoc-ref inputs "guile-bytestructures"))
|
||||
(fibers (assoc-ref inputs "guile-fibers"))
|
||||
(guix (assoc-ref inputs "guix"))
|
||||
(deps (list gcrypt json sqlite git bytes fibers guix))
|
||||
(guile (assoc-ref %build-inputs "guile"))
|
||||
(effective (read-line
|
||||
(open-pipe* OPEN_READ
|
||||
(string-append guile "/bin/guile")
|
||||
"-c" "(display (effective-version))")))
|
||||
(mods (string-append json "/share/guile/site/"
|
||||
effective ":"
|
||||
git "/share/guile/site/"
|
||||
effective ":"
|
||||
bytes "/share/guile/site/"
|
||||
effective ":"
|
||||
sqlite "/share/guile/site/"
|
||||
effective ":"
|
||||
fibers "/share/guile/site/"
|
||||
effective ":"
|
||||
guix "/share/guile/site/"
|
||||
effective)))
|
||||
(mods (string-drop-right ;drop trailing colon
|
||||
(string-join deps
|
||||
(string-append "/share/guile/site/"
|
||||
effective ":")
|
||||
'suffix)
|
||||
1))
|
||||
(objs (string-drop-right
|
||||
(string-join deps
|
||||
(string-append "/lib/guile/" effective
|
||||
"/site-ccache:")
|
||||
'suffix)
|
||||
1)))
|
||||
;; Make sure 'cuirass' can find the 'evaluate' command, as
|
||||
;; well as the relevant Guile modules.
|
||||
(wrap-program (string-append out "/bin/cuirass")
|
||||
`("PATH" ":" prefix (,(string-append out "/bin")))
|
||||
`("GUILE_LOAD_PATH" ":" prefix (,mods))
|
||||
`("GUILE_LOAD_COMPILED_PATH" ":" prefix (,mods)))
|
||||
`("GUILE_LOAD_COMPILED_PATH" ":" prefix (,objs)))
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("guile" ,guile-2.2)
|
||||
("guile-fibers" ,guile-fibers)
|
||||
("guile-gcrypt" ,guile-gcrypt)
|
||||
("guile-json" ,guile-json)
|
||||
("guile-sqlite3" ,guile-sqlite3)
|
||||
("guile-git" ,guile-git)
|
||||
|
|
|
@ -211,16 +211,16 @@ COCOMO model or user-provided parameters.")
|
|||
(define-public cloc
|
||||
(package
|
||||
(name "cloc")
|
||||
(version "1.76")
|
||||
(version "1.78")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/AlDanial/cloc/releases/download/v" version
|
||||
"https://github.com/AlDanial/cloc/releases/download/" version
|
||||
"/cloc-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"05srlvzwisr7y7ymvzb5yfdsrspja27ysqdmkwhiiivy84mq2gnl"))))
|
||||
"176xklr2qsgxh9zdb565gib6pp4gsm585rz5fvyphgjy4i679wkv"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("coreutils" ,coreutils)
|
||||
|
@ -651,6 +651,19 @@ extensions over the standard utility.")
|
|||
(license license:gpl3+)
|
||||
(home-page "https://www.gnu.org/software/indent/")))
|
||||
|
||||
(define-public indent-2.2.12
|
||||
(package
|
||||
(inherit indent)
|
||||
(version "2.2.12")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/indent/indent-" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"12xvcd16cwilzglv9h7sgh4h1qqjd1h8s48ji2dla58m4706hzg7"))))
|
||||
(native-inputs `(("texinfo" ,texinfo)))))
|
||||
|
||||
(define-public amalgamate
|
||||
(let* ((commit "c91f07eea1133aa184f652b8f1398eaf03586208")
|
||||
(revision "0")
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -126,7 +126,7 @@ communication, encryption, decryption, signatures, etc.")
|
|||
(define-public signify
|
||||
(package
|
||||
(name "signify")
|
||||
(version "23")
|
||||
(version "24")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/aperezdc/signify/"
|
||||
|
@ -134,7 +134,7 @@ communication, encryption, decryption, signatures, etc.")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0c70mzawgahsvmsv4xdrass4pgyynd67ipd9lij0fgi8wkq0ns8w"))))
|
||||
"0594vyvkq176xxzaz9xbq8qs0xdnr8s9gkd1prblwpdvnzmw0xvc"))))
|
||||
(build-system gnu-build-system)
|
||||
;; TODO Build with libwaive (described in README.md), to implement something
|
||||
;; like OpenBSD's pledge().
|
||||
|
|
|
@ -51,6 +51,7 @@
|
|||
(package
|
||||
(name "curl")
|
||||
(version "7.61.0")
|
||||
(replacement curl-7.61.1)
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://curl.haxx.se/download/curl-"
|
||||
|
@ -141,6 +142,19 @@ tunneling, and so on.")
|
|||
"See COPYING in the distribution."))
|
||||
(home-page "https://curl.haxx.se/")))
|
||||
|
||||
(define-public curl-7.61.1
|
||||
(package
|
||||
(inherit curl)
|
||||
(version "7.61.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://curl.haxx.se/download/curl-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"148qv1f32290r9pwg07mccawihz4srznkzsdwdl2xllvlgb16n9x"))))))
|
||||
|
||||
(define-public kurly
|
||||
(package
|
||||
(name "kurly")
|
||||
|
|
|
@ -498,14 +498,14 @@ Extensions} (DNSSEC).")
|
|||
(define-public knot
|
||||
(package
|
||||
(name "knot")
|
||||
(version "2.7.1")
|
||||
(version "2.7.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://secure.nic.cz/files/knot-dns/"
|
||||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"108k6x3hjsnyf06pv5rlxqhynjbbz13pzwax1mqff3hgv85f4skx"))
|
||||
"0cc4wgb02ch09x99a1fnr7vsdik8k920q7jafzcamjvy3kpb4w6b"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
|
||||
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
|
||||
;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2016, 2017 Alex Vong <alexvong1995@gmail.com>
|
||||
;;; Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
|
||||
;;; Copyright © 2016, 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
|
||||
;;; Copyright © 2017 Christopher Baines <mail@cbaines.net>
|
||||
;;; Copyright © 2017, 2018 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
|
@ -38,6 +38,7 @@
|
|||
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
|
||||
;;; Copyright © 2018 Jack Hill <jackhill@jackhill.us>
|
||||
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
|
||||
;;; Copyright © 2018 Alex Branham <alex.branham@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -4123,22 +4124,34 @@ programming language.")
|
|||
(define-public emacs-ess
|
||||
(package
|
||||
(name "emacs-ess")
|
||||
(version "16.10")
|
||||
(version "17.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://ess.r-project.org/downloads/ess/ess-"
|
||||
version ".tgz"))
|
||||
(uri (string-append "https://github.com/emacs-ess/ESS/archive/v"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04m8lwp3ylh2vl7k2bjjs7mxbm64j4sdckqpvnm9k0qhaqf02pjk"))
|
||||
"0cbilbsiwvcyf6d5y24mymp57m3ana5dkzab3knfs83w4a3a4c5c"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Stop ESS from trying to bundle an external julia-mode.el.
|
||||
(substitute* "lisp/Makefile"
|
||||
(("^\tjulia-mode.elc\\\\\n") "")
|
||||
(("^all: \\$\\(ELC\\) ess-custom.el julia-mode.el")
|
||||
"all: $(ELC) ess-custom.el"))
|
||||
(("^dist: all julia-mode.el")
|
||||
"dist: all"))
|
||||
;; No need to build docs in so many formats. Also, skipping
|
||||
;; pdf lets us not pull in texlive.
|
||||
(substitute* "doc/Makefile"
|
||||
(("all : info text html pdf")
|
||||
"all : info")
|
||||
(("install: install-info install-other-docs")
|
||||
"install: install-info"))
|
||||
;; Test fails upstream
|
||||
(substitute* "test/ess-r-tests.el"
|
||||
(("ert-deftest ess-r-namespaced-eval-no-srcref-in-errors ()")
|
||||
"ert-deftest ess-r-namespaced-eval-no-srcref-in-errors () :expected-result :failed"))
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
@ -4157,10 +4170,6 @@ programming language.")
|
|||
(("SHELL = /bin/sh")
|
||||
(string-append "SHELL = " (which "sh"))))
|
||||
#t))
|
||||
;; FIXME: the texlive-union insists on regenerating fonts. It stores
|
||||
;; them in HOME, so it needs to be writeable.
|
||||
(add-before 'build 'set-HOME
|
||||
(lambda _ (setenv "HOME" "/tmp") #t))
|
||||
(replace 'check
|
||||
(lambda _
|
||||
(invoke "make" "test")))))))
|
||||
|
@ -4169,16 +4178,14 @@ programming language.")
|
|||
("r-minimal" ,r-minimal)))
|
||||
(native-inputs
|
||||
`(("perl" ,perl)
|
||||
("texinfo" ,texinfo)
|
||||
("texlive" ,(texlive-union (list texlive-latex-natbib
|
||||
texlive-latex-seminar
|
||||
texlive-latex-hyperref
|
||||
texlive-tex-texinfo)))))
|
||||
("texinfo" ,texinfo)))
|
||||
(propagated-inputs
|
||||
`(("emacs-julia-mode" ,emacs-julia-mode)))
|
||||
(home-page "https://ess.r-project.org/")
|
||||
(synopsis "Emacs mode for statistical analysis programs")
|
||||
(description "Emacs Speaks Statistics (ESS) is an add-on package for GNU
|
||||
Emacs. It is designed to support editing of scripts and interaction with
|
||||
various statistical analysis programs such as R and OpenBUGS.")
|
||||
various statistical analysis programs such as R, Julia, and JAGS.")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public emacs-smex
|
||||
|
@ -11315,6 +11322,43 @@ e.g. the package dependencies it requires. See function
|
|||
file.")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-picpocket
|
||||
(let ((version "20180610.1059") ; taken from melpa
|
||||
(commit "ce4b6ed088384f2414af82e8e4eae5b92c2874bf"))
|
||||
(package
|
||||
(name "emacs-picpocket")
|
||||
(version version)
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/johanclaesson/picpocket")
|
||||
(commit commit)))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32 "15vpbcv83mc4j1pvrk7xic0klh2bl9gzg2xxs7c2lmnix52hy8mv"))))
|
||||
(build-system emacs-build-system)
|
||||
(arguments ; needed for running tests
|
||||
`(#:tests? #t
|
||||
#:emacs ,emacs
|
||||
#:test-command '("emacs" "--batch"
|
||||
"-l" "picpocket-test.el"
|
||||
"-f" "ert-run-tests-batch-and-exit")))
|
||||
(home-page "https://github.com/johanclaesson/picpocket")
|
||||
(synopsis "Image viewer for Emacs")
|
||||
(description
|
||||
"Picpocket is an image viewer for GNU Emacs. It has commands for:
|
||||
|
||||
@itemize
|
||||
@item File operations on the picture files (delete, move, copy, hardlink).
|
||||
@item Scale and rotate the picture.
|
||||
@item Associate pictures with tags which are saved to disk.
|
||||
@item Filter pictures according to tags.
|
||||
@item Customizing keystrokes for quick tagging and file operations.
|
||||
@item Undo and browse history of undoable commands.
|
||||
@end itemize")
|
||||
(license license:gpl3+))))
|
||||
|
||||
(define-public emacs-wgrep-helm
|
||||
;; `emacs-wgrep-helm' was mistakenly added.
|
||||
(deprecated-package "emacs-wgrep-helm" emacs-wgrep))
|
||||
|
|
|
@ -117,8 +117,8 @@
|
|||
|
||||
;; Building from recent Git because the official 5.0 release no longer builds.
|
||||
(define-public dolphin-emu
|
||||
(let ((commit "806c1ee8f0ed824008185212bfab2658d400b576")
|
||||
(revision "2"))
|
||||
(let ((commit "5f0d825f40b8aabe13eaef32d44ab667ff8e8c28")
|
||||
(revision "3"))
|
||||
(package
|
||||
(name "dolphin-emu")
|
||||
(version (git-version "5.0" revision commit))
|
||||
|
@ -144,7 +144,7 @@
|
|||
#t))
|
||||
(sha256
|
||||
(base32
|
||||
"1sdc7rh6z7gjx4kxg18jrv7srfpx1vgf936zg5y43radnlscrh1j"))))
|
||||
"0dh7mih16aif9ynbgcsn7n10f89g8d232i86xqfp2rijsdggcmzl"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
|
||||
;;; Copyright © 2018 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -680,24 +681,19 @@ language.")
|
|||
(define-public ao
|
||||
(deprecated-package "ao-cad" libfive))
|
||||
|
||||
;; We use kicad from a git commit, because support for boost 1.61.0 has been
|
||||
;; recently added.
|
||||
(define-public kicad
|
||||
(let ((commit "5f4599fb56da4dd748845ab10abec02961d477f3")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "kicad")
|
||||
(version (string-append "4.0-" revision "."
|
||||
(string-take commit 7)))
|
||||
(version "5.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://git.launchpad.net/kicad")
|
||||
(commit commit)))
|
||||
(method url-fetch)
|
||||
(file-name (string-append name "-" version ".tar.xz"))
|
||||
(uri (string-append
|
||||
"https://launchpad.net/kicad/5.0/" version "/+download/" name
|
||||
"-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32 "1833pln2975gmc5s18xf7s8m9vg834lmxxdjk0wlk3lq7bvjjnff"))
|
||||
(file-name (string-append name "-" version "-checkout"))))
|
||||
(base32 "17nqjszyvd25wi6550j981whlnb1wxzmlanljdjihiki53j84x9p"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
`(#:out-of-source? #t
|
||||
|
@ -706,8 +702,6 @@ language.")
|
|||
#:configure-flags
|
||||
(list "-DKICAD_STABLE_VERSION=ON"
|
||||
"-DKICAD_REPO_NAME=stable"
|
||||
,(string-append "-DKICAD_BUILD_VERSION=4.0-"
|
||||
(string-take commit 7))
|
||||
"-DKICAD_SKIP_BOOST=ON"; Use our system's boost library.
|
||||
"-DKICAD_SCRIPTING=ON"
|
||||
"-DKICAD_SCRIPTING_MODULES=ON"
|
||||
|
@ -754,6 +748,7 @@ language.")
|
|||
("libngspice" ,libngspice)
|
||||
("libsm" ,libsm)
|
||||
("mesa" ,mesa)
|
||||
("opencascade-oce" ,opencascade-oce)
|
||||
("openssl" ,openssl)
|
||||
("python" ,python-2)
|
||||
("wxwidgets" ,wxwidgets-gtk2)
|
||||
|
@ -764,7 +759,7 @@ language.")
|
|||
boards and electrical circuits. The software has a number of programs that
|
||||
perform specific functions, for example, pcbnew (Editing PCB), eeschema (editing
|
||||
electrical diagrams), gerbview (viewing Gerber files) and others.")
|
||||
(license license:gpl3+))))
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public kicad-library
|
||||
(let ((version "4.0.7"))
|
||||
|
|
|
@ -887,7 +887,7 @@ designed to work well in user interface environments.")
|
|||
(define-public font-fira-code
|
||||
(package
|
||||
(name "font-fira-code")
|
||||
(version "1.204")
|
||||
(version "1.205")
|
||||
(source (origin
|
||||
(method url-fetch/zipbomb)
|
||||
(uri (string-append "https://github.com/tonsky/FiraCode/releases/"
|
||||
|
@ -895,7 +895,7 @@ designed to work well in user interface environments.")
|
|||
"/FiraCode_" version ".zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"17wky221b3igrqhmxgmqiyv1xdfn0nw471vzhpkrvv1w2w1w1k18"))))
|
||||
"13bxgf59g6fw5191xclcjzn22hj8jk9k5jjwf7vz07mpjbgadcl5"))))
|
||||
(build-system font-build-system)
|
||||
(home-page "https://mozilla.github.io/Fira/")
|
||||
(synopsis "Monospaced font with programming ligatures")
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
;;; Copyright © 2018 okapi <okapi@firemail.cc>
|
||||
;;; Copyright © 2018 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
|
||||
;;; Copyright © 2018 Madalin Ionel-Patrascu <madalinionel.patrascu@mdc-berlin.de>
|
||||
;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -5553,3 +5554,159 @@ open-source FPS of its kind.")
|
|||
(license (list license:gpl2+
|
||||
license:bsd-3 ; /source/d0_blind_id folder and others
|
||||
(license:x11-style "" "See file rcon.pl.")))))
|
||||
|
||||
(define-public frotz
|
||||
(package
|
||||
(name "frotz")
|
||||
(version "2.44")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append
|
||||
"http://www.ifarchive.org/if-archive/infocom/interpreters/"
|
||||
name "/" name "-" version ".tar.gz")
|
||||
(string-append
|
||||
"ftp://ftp.ifarchive.org/if-archive/infocom/interpreters/"
|
||||
name "/" name "-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"1v735xr3blznac8fnwa27s1vhllx4jpz7kw7qdw1bsfj6kq21v3k"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; there are no tests
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-before 'build 'curses
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("lcurses") "lncurses"))
|
||||
#t))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(man (string-append out "/share/man/man6")))
|
||||
(install-file "frotz" bin)
|
||||
(mkdir-p man)
|
||||
(install-file "doc/frotz.6" man)
|
||||
#t))))))
|
||||
(inputs `(("libmodplug" ,libmodplug)
|
||||
("libsamplerate" ,libsamplerate)
|
||||
("libsndfile" ,libsndfile)
|
||||
("libvorbis" ,libvorbis)
|
||||
("ncurses" ,ncurses)))
|
||||
(synopsis "Portable Z-machine interpreter (ncurses version) for text adventure games")
|
||||
(description "Frotz is an interpreter for Infocom games and other Z-machine
|
||||
games in the text adventure/interactive fiction genre. This version of Frotz
|
||||
complies with standard 1.0 of Graham Nelson's specification. It plays all
|
||||
Z-code games V1-V8, including V6, with sound support through libao, and uses
|
||||
ncurses for text display.")
|
||||
(home-page "http://frotz.sourceforge.net")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public frotz-dumb-terminal
|
||||
(package
|
||||
(name "frotz-dumb-terminal")
|
||||
(version "2.44")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append
|
||||
"http://www.ifarchive.org/if-archive/infocom/interpreters/"
|
||||
"frotz" "/" "frotz" "-" version ".tar.gz")
|
||||
(string-append
|
||||
"ftp://ftp.ifarchive.org/if-archive/infocom/interpreters/"
|
||||
"frotz" "/" "frotz" "-" version ".tar.gz")))
|
||||
(sha256
|
||||
(base32
|
||||
"1v735xr3blznac8fnwa27s1vhllx4jpz7kw7qdw1bsfj6kq21v3k"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; there are no tests
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(replace 'build
|
||||
(lambda _
|
||||
(invoke "make" "dumb")))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(man (string-append out "/share/man/man6")))
|
||||
(install-file "dfrotz" bin)
|
||||
(mkdir-p man)
|
||||
(install-file "doc/dfrotz.6" man)
|
||||
#t))))))
|
||||
(synopsis "Portable Z-machine dumb interpreter for text adventure games")
|
||||
(description "Frotz is an interpreter for Infocom games and
|
||||
other Z-machine games in the text adventure/interactive fiction genre.
|
||||
dfrotz is the dumb interface version. You get no screen control; everything
|
||||
is just printed to the terminal line by line. The terminal handles all the
|
||||
scrolling. Maybe you'd like to experience what it's like to play Adventure on
|
||||
a teletype. A much cooler use for compiling Frotz with the dumb interface is
|
||||
that it can be wrapped in CGI scripting, PHP, and the like to allow people
|
||||
to play games on webpages. It can also be made into a chat bot.")
|
||||
(home-page "http://frotz.sourceforge.net")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public frotz-sdl
|
||||
(let* ((commit "4de8c34f2116fff554af6216c30ec9d41bf50b24"))
|
||||
(package
|
||||
(name "frotz-sdl")
|
||||
(version "2.45pre")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://gitlab.com/DavidGriffith/frotz")
|
||||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"18ms21pcrl7ipcnyqnf8janamkryzx78frsgd9kfk67jvbj0z2k8"))
|
||||
(file-name (git-file-name name version))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; there are no tests
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(delete 'configure)
|
||||
(add-before 'build 'patch-makefile
|
||||
(lambda _
|
||||
(substitute* "Makefile"
|
||||
(("lcurses") "lncurses")
|
||||
(("^BUILD_DATE_TIME =.*$")
|
||||
"BUILD_DATE_TIME = \"2.45pre-20180907.00000\"\n"))
|
||||
#t))
|
||||
(replace 'build
|
||||
(lambda _
|
||||
(invoke "make" "sdl")))
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin"))
|
||||
(man (string-append out "/share/man/man6")))
|
||||
(install-file "sfrotz" bin)
|
||||
(mkdir-p man)
|
||||
(install-file "doc/sfrotz.6" man)
|
||||
#t))))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
("which" ,which)
|
||||
("perl" ,perl)))
|
||||
(inputs `(("sdl2" ,sdl2)
|
||||
("sdl2-mixer" ,sdl2-mixer)
|
||||
("libmodplug" ,libmodplug)
|
||||
("libsamplerate" ,libsamplerate)
|
||||
("libsndfile" ,libsndfile)
|
||||
("libvorbis" ,libvorbis)
|
||||
("ncurses" ,ncurses)
|
||||
("freetype" ,freetype)
|
||||
("libjpeg-turbo" ,libjpeg-turbo)))
|
||||
(synopsis "Portable Z-machine interpreter (SDL port) for text adventure games")
|
||||
(description "Frotz is an interpreter for Infocom games and other Z-machine
|
||||
games in the text adventure/interactive fiction genre. This version of Frotz
|
||||
using SDL fully supports all these versions of the Z-Machine including the
|
||||
graphical version 6. Graphics and sound are created through the use of the SDL
|
||||
libraries. AIFF sound effects and music in MOD and OGG formats are supported
|
||||
when packaged in Blorb container files or optionally from individual files.")
|
||||
(home-page "http://frotz.sourceforge.net")
|
||||
(license license:gpl2+))))
|
||||
|
|
|
@ -668,6 +668,10 @@ as the 'native-search-paths' field."
|
|||
(custom-gcc gcc-7 "gfortran" '("fortran")
|
||||
%generic-search-paths))
|
||||
|
||||
(define-public gfortran-8
|
||||
(custom-gcc gcc-8 "gfortran" '("fortran")
|
||||
%generic-search-paths))
|
||||
|
||||
(define-public gfortran
|
||||
;; Note: Update this when GCC changes! We cannot use
|
||||
;; (custom-gcc gcc "fortran" …) because that would lead to a package object
|
||||
|
@ -728,6 +732,15 @@ as the 'native-search-paths' field."
|
|||
(variable "LIBRARY_PATH")
|
||||
(files '("lib" "lib64"))))))
|
||||
|
||||
(define-public gcc-objc-8
|
||||
(custom-gcc gcc-8 "gcc-objc" '("objc")
|
||||
(list (search-path-specification
|
||||
(variable "OBJC_INCLUDE_PATH")
|
||||
(files '("include")))
|
||||
(search-path-specification
|
||||
(variable "LIBRARY_PATH")
|
||||
(files '("lib" "lib64"))))))
|
||||
|
||||
(define-public gcc-objc gcc-objc-5)
|
||||
|
||||
(define-public gcc-objc++-4.8
|
||||
|
@ -775,6 +788,15 @@ as the 'native-search-paths' field."
|
|||
(variable "LIBRARY_PATH")
|
||||
(files '("lib" "lib64"))))))
|
||||
|
||||
(define-public gcc-objc++-8
|
||||
(custom-gcc gcc-8 "gcc-objc++" '("obj-c++")
|
||||
(list (search-path-specification
|
||||
(variable "OBJCPLUS_INCLUDE_PATH")
|
||||
(files '("include")))
|
||||
(search-path-specification
|
||||
(variable "LIBRARY_PATH")
|
||||
(files '("lib" "lib64"))))))
|
||||
|
||||
(define-public gcc-objc++ gcc-objc++-5)
|
||||
|
||||
(define (make-libstdc++-doc gcc)
|
||||
|
|
|
@ -37,14 +37,14 @@
|
|||
(define-public gdb
|
||||
(package
|
||||
(name "gdb")
|
||||
(version "8.1.1")
|
||||
(version "8.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnu/gdb/gdb-"
|
||||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0g6hv9xk12aa58w77fydaldqr9a6b0a6bnwsq87jfc6lkcbc7p4p"))))
|
||||
"0fbw6j4z7kmvywwgavn7w3knp860i5i9qnjffc5p52bwkji43963"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; FIXME "make check" fails on single-processor systems.
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -38,8 +39,10 @@
|
|||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (guix build-system trivial))
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (srfi srfi-1))
|
||||
|
||||
(define-public lcms
|
||||
(package
|
||||
|
@ -132,6 +135,7 @@ printing, and psresize, for adjusting page sizes.")
|
|||
(define-public ghostscript
|
||||
(package
|
||||
(name "ghostscript")
|
||||
(replacement ghostscript/fixed)
|
||||
(version "9.23")
|
||||
(source
|
||||
(origin
|
||||
|
@ -251,6 +255,44 @@ output file formats and printers.")
|
|||
(home-page "https://www.ghostscript.com/")
|
||||
(license license:agpl3+)))
|
||||
|
||||
(define-public ghostscript/fixed
|
||||
(hidden-package
|
||||
(package
|
||||
(inherit ghostscript)
|
||||
(version "9.24")
|
||||
(source
|
||||
(origin
|
||||
(inherit (package-source ghostscript))
|
||||
(uri (string-append "https://github.com/ArtifexSoftware/"
|
||||
"ghostpdl-downloads/releases/download/gs"
|
||||
(string-delete #\. version)
|
||||
"/ghostscript-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1mk922rnml93w2g42yxiyn8xqanc50cm65irrgh0b6lp4kgifjfl"))
|
||||
(patches (search-patches "ghostscript-CVE-2018-16509.patch"
|
||||
"ghostscript-bug-699708.patch"
|
||||
"ghostscript-no-header-creationdate.patch"
|
||||
"ghostscript-no-header-id.patch"
|
||||
"ghostscript-no-header-uuid.patch"))))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments ghostscript)
|
||||
((#:configure-flags flags)
|
||||
;; Notice that we removed the 'ghostscript-runpath' patch above.
|
||||
;; The reason is that it conflicts with an upstream change that
|
||||
;; takes LDFLAGS into account.
|
||||
`(cons (string-append "LDFLAGS=-Wl,-rpath="
|
||||
(assoc-ref %outputs "out") "/lib")
|
||||
,flags))
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'configure 'create-output-directory
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; Unfortunately the configure script refuses to function if
|
||||
;; the directory specified as -rpath does not already exist.
|
||||
(mkdir-p (string-append (assoc-ref outputs "out") "/lib"))
|
||||
#t)))))))))
|
||||
|
||||
(define-public ghostscript/x
|
||||
(package/inherit ghostscript
|
||||
(name (string-append (package-name ghostscript) "-with-x"))
|
||||
|
|
|
@ -2461,7 +2461,7 @@ libxml to ease remote use of the RESTful API.")
|
|||
(define-public libsoup
|
||||
(package
|
||||
(name "libsoup")
|
||||
(version "2.62.3")
|
||||
(version "2.64.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://gnome/sources/libsoup/"
|
||||
|
@ -2469,7 +2469,7 @@ libxml to ease remote use of the RESTful API.")
|
|||
name "-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0whi8p03kpbp68kg6fg3vb7rhykjp7wn3nlbzy9j0p298zjss4nk"))))
|
||||
"09z7g3spww3f84y8jmicdd6lqp360mbggpg5h1fq1v4p5ihcjnyr"))))
|
||||
(build-system gnu-build-system)
|
||||
(outputs '("out" "doc"))
|
||||
(arguments
|
||||
|
@ -2573,6 +2573,7 @@ libxml to ease remote use of the RESTful API.")
|
|||
("libxml2" ,libxml2)))
|
||||
(inputs
|
||||
`(("glib-networking" ,glib-networking)
|
||||
("libpsl" ,libpsl)
|
||||
("sqlite" ,sqlite)))
|
||||
(home-page "https://live.gnome.org/LibSoup/")
|
||||
(synopsis "GLib-based HTTP Library")
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages bioconductor)
|
||||
#:use-module (gnu packages bioinformatics)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cran)
|
||||
|
@ -98,14 +99,14 @@ more.")
|
|||
(define-public r-igraph
|
||||
(package
|
||||
(name "r-igraph")
|
||||
(version "1.2.1")
|
||||
(version "1.2.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "igraph" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1hcr6b1lz030lgay1bz8y8sxaf2j93ds8n8gsqr6qhssz141hd2m"))))
|
||||
"1bggm7b8v3bh7q2589w26qvd7sgs69m4qiij7d0rbm0ykkgxm8lx"))))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
`(("gfortran" ,gfortran)))
|
||||
|
@ -130,14 +131,14 @@ more.")
|
|||
(define-public r-diffusionmap
|
||||
(package
|
||||
(name "r-diffusionmap")
|
||||
(version "1.1-0")
|
||||
(version "1.1-0.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "diffusionMap" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1l985q2hfc8ss5afajik4p25dx628yikvhdimz5s0pql800q2yv3"))))
|
||||
"11l4kbciawvli5nlsi4qaf8afmgk5xgqiqpdyhvaqri5mx0zhk5j"))))
|
||||
(properties `((upstream-name . "diffusionMap")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
|
|
@ -890,14 +890,7 @@ images onto Cairo surfaces.")
|
|||
(sha256
|
||||
(base32
|
||||
"1qam447m05sxxv6x8dlzg7qnyfc4dh8apjw1idpfhpns671gfr6m"))
|
||||
(patches (search-patches "guile-present-coding.patch"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
(substitute* "Makefile.in"
|
||||
(("godir = .*$")
|
||||
"godir = $(moddir)\n"))
|
||||
#t))))
|
||||
(patches (search-patches "guile-present-coding.patch"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
|
|
|
@ -866,7 +866,7 @@ for Guile\".")
|
|||
(define-public guile-json
|
||||
(package
|
||||
(name "guile-json")
|
||||
(version "1.1.1")
|
||||
(version "1.2.0")
|
||||
(home-page "https://github.com/aconchillo/guile-json")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
|
@ -875,7 +875,7 @@ for Guile\".")
|
|||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"12jqkn9qgwdlxbasy2n25a2a7apf30dww1nnxqfam5735k3jdngv"))))
|
||||
"02kqv0q98fmchn7i4y7ycmrjlh4b2c93ij0z7k036qwpp204w4gh"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
|
@ -893,7 +893,9 @@ specification. These are the main features:
|
|||
@item Unicode support for strings.
|
||||
@item Allows JSON pretty printing.
|
||||
@end itemize\n")
|
||||
(license license:lgpl3+)))
|
||||
|
||||
;; Version 1.2.0 switched to GPLv3+ (from LGPLv3+).
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public guile2.2-json
|
||||
(deprecated-package "guile2.2-json" guile-json))
|
||||
|
@ -1581,8 +1583,10 @@ you send to a FIFO file.")
|
|||
(("ac_subst_vars='")
|
||||
"ac_subst_vars='GUILE_EFFECTIVE_VERSION\n"))
|
||||
(substitute* "Makefile.in"
|
||||
(("/site/2.0")
|
||||
"/site/@GUILE_EFFECTIVE_VERSION@"))
|
||||
(("moddir =.*")
|
||||
"moddir = $(datadir)/guile/site/@GUILE_EFFECTIVE_VERSION@\n")
|
||||
(("godir =.*")
|
||||
"godir = $(libdir)/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n"))
|
||||
#t))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
|
@ -1786,6 +1790,20 @@ Note that 8sync is only available for Guile 2.2.")
|
|||
(base32
|
||||
"0vjkg72ghgdgphzbjz9ig8al8271rq8974viknb2r1rg4lz92ld0"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases (modify-phases %standard-phases
|
||||
(add-after 'install 'mode-guile-objects
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
;; .go files are installed to "lib/guile/X.Y/cache".
|
||||
;; This phase moves them to "…/site-ccache".
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(lib (string-append out "/lib/guile"))
|
||||
(old (car (find-files lib "^ccache$"
|
||||
#:directories? #t)))
|
||||
(new (string-append (dirname old)
|
||||
"/site-ccache")))
|
||||
(rename-file old new)
|
||||
#t))))))
|
||||
(native-inputs
|
||||
`(("texinfo" ,texinfo)
|
||||
("pkg-config" ,pkg-config)))
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
(define-public ghc-tasty-ant-xml
|
||||
(package
|
||||
(name "ghc-tasty-ant-xml")
|
||||
(version "1.0.2")
|
||||
(version "1.1.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -49,7 +49,7 @@
|
|||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0pgz2lclg2hp72ykljcbxd88pjanfdfk8m5vb2qzcyjr85kwrhxv"))))
|
||||
"0v0gsb90kh6hwlgxbclzawsskywc6yf7n8xhiifia97l4y0yx2m8"))))
|
||||
(build-system haskell-build-system)
|
||||
(inputs
|
||||
`(("ghc-generic-deriving" ,ghc-generic-deriving)
|
||||
|
|
|
@ -2078,9 +2078,13 @@ literals.")
|
|||
(base32
|
||||
"1vbzf0awb6zb456xf48za1kl22018646cfzq4frvxgb9ay97vk0d"))))
|
||||
(build-system haskell-build-system)
|
||||
;; Tests require older versions of testy.
|
||||
(arguments `(#:tests? #f))
|
||||
(arguments `(#:configure-flags (list "--allow-newer=tasty")))
|
||||
(inputs `(("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
`(("ghc-quickcheck" ,ghc-quickcheck)
|
||||
("ghc-tasty" ,ghc-tasty)
|
||||
("ghc-tasty-hunit" ,ghc-tasty-hunit)
|
||||
("ghc-tasty-quickcheck" ,ghc-tasty-quickcheck)))
|
||||
(home-page "https://hackage.haskell.org/package/zlib")
|
||||
(synopsis
|
||||
"Compression and decompression in the gzip and zlib formats")
|
||||
|
@ -4220,7 +4224,7 @@ system.")
|
|||
(define-public ghc-base-compat
|
||||
(package
|
||||
(name "ghc-base-compat")
|
||||
(version "0.10.4")
|
||||
(version "0.9.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -4230,7 +4234,7 @@ system.")
|
|||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ksp990gxs731mq19rzbxrbs43nazfljjc8krlx5bjqblw3kfs8d"))))
|
||||
"0452l6zf6fjhy4kxqwv6i6hhg6yfx4wcg450k3axpyj30l7jnq3x"))))
|
||||
(build-system haskell-build-system)
|
||||
(native-inputs
|
||||
`(("ghc-quickcheck" ,ghc-quickcheck)
|
||||
|
@ -5190,6 +5194,8 @@ occurrences of a substring (the first in case of overlaps) with another.")
|
|||
(base32
|
||||
"1wj8kgjg5bn2yrs4zh9qfjv85cx6w998j9pi39yrbv305944mb9j"))))
|
||||
(build-system haskell-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags (list "--allow-newer=tasty")))
|
||||
(native-inputs
|
||||
`(("ghc-quickcheck" ,ghc-quickcheck)
|
||||
("ghc-smallcheck" ,ghc-smallcheck)
|
||||
|
@ -10152,4 +10158,29 @@ tools are not needed to actually run Gtk2Hs programs.")
|
|||
backends provided by the @code{Cairo} and @code{Diagrams} libraries.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public ghc-wcwidth
|
||||
(package
|
||||
(name "ghc-wcwidth")
|
||||
(version "0.0.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://hackage.haskell.org/package/wcwidth/wcwidth-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1n1fq7v64b59ajf5g50iqj9sa34wm7s2j3viay0kxpmvlcv8gipz"))))
|
||||
(build-system haskell-build-system)
|
||||
(inputs
|
||||
`(("ghc-setlocale" ,ghc-setlocale)
|
||||
("ghc-utf8-string" ,ghc-utf8-string)
|
||||
("ghc-attoparsec" ,ghc-attoparsec)))
|
||||
(home-page "https://github.com/solidsnack/wcwidth/")
|
||||
(synopsis "Haskell bindings to wcwidth")
|
||||
(description "This package provides Haskell bindings to your system's
|
||||
native wcwidth and a command line tool to examine the widths assigned by it.
|
||||
The command line tool can compile a width table to Haskell code that assigns
|
||||
widths to the Char type.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
;;; haskell.scm ends here
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
|
||||
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
|
||||
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
|
||||
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -485,6 +486,7 @@ arithmetic ops.")
|
|||
(package
|
||||
(name "jbig2dec")
|
||||
(version "0.14")
|
||||
(replacement jbig2dec-0.15)
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -509,6 +511,21 @@ work.")
|
|||
(home-page "https://jbig2dec.com")
|
||||
(license license:gpl2+)))
|
||||
|
||||
;; This is a bugfix release from an ongoing Ghostscript security audit.
|
||||
;; It was released alongside Ghostscript 9.24.
|
||||
(define-public jbig2dec-0.15
|
||||
(package
|
||||
(inherit jbig2dec)
|
||||
(version "0.15")
|
||||
(source (origin
|
||||
(inherit (package-source jbig2dec))
|
||||
(uri (string-append "https://github.com/ArtifexSoftware"
|
||||
"/ghostpdl-downloads/releases/download/gs924/"
|
||||
"jbig2dec-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0m1qwpbjbirgw2fqznbajdhdhh35d6xa2csr64lpjz735pvimykb"))))))
|
||||
|
||||
(define-public openjpeg
|
||||
(package
|
||||
(name "openjpeg")
|
||||
|
|
|
@ -355,10 +355,12 @@
|
|||
("objconv"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
(uri "http://www.agner.org/optimize/objconv.zip")
|
||||
;; No versioned URL, see <https://www.agner.org/optimize/> for updates.
|
||||
(uri "https://www.agner.org/optimize/objconv.zip")
|
||||
(file-name "objconv-2018-08-15.zip")
|
||||
(sha256
|
||||
(base32
|
||||
"1fi7qa2sd9vb35dvkgripjf0fayzg2qmff215f8agfqfiwd1g8qs"))))
|
||||
"09y4pwxfs6fl47cyingbf95i2rxx74wmycl9fd4ldcgvpx9bzdrx"))))
|
||||
("dsfmt"
|
||||
,(origin
|
||||
(method url-fetch)
|
||||
|
|
|
@ -399,8 +399,8 @@ It has been modified to remove all non-free binary blobs.")
|
|||
;; supports qemu "virt" machine and possibly a large number of ARM boards.
|
||||
;; See : https://wiki.debian.org/DebianKernel/ARMMP.
|
||||
|
||||
(define %linux-libre-version "4.18.5")
|
||||
(define %linux-libre-hash "1y52ns34vh9p4pfj08xsycv8p0xywm6dbpdi0wwpkll1xgpqikvf")
|
||||
(define %linux-libre-version "4.18.6")
|
||||
(define %linux-libre-hash "1l5caid77vbfb54zrfxkk7qj7lrf9ck9kpn96kr45spkwl51wm8m")
|
||||
|
||||
(define %linux-libre-4.18-patches
|
||||
(list %boot-logo-patch
|
||||
|
@ -430,8 +430,8 @@ It has been modified to remove all non-free binary blobs.")
|
|||
#:patches %linux-libre-4.18-patches
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
(define %linux-libre-4.14-version "4.14.67")
|
||||
(define %linux-libre-4.14-hash "050zvdxjy6sc64q75pr1gxsmh49chwav2pwxz8xlif39bvahnrpg")
|
||||
(define %linux-libre-4.14-version "4.14.68")
|
||||
(define %linux-libre-4.14-hash "05l5y0vbbl60jxdbqglqr9c99a8g8lfsp4mcqfpcx1pkh5br7i3l")
|
||||
|
||||
(define-public linux-libre-4.14
|
||||
(make-linux-libre %linux-libre-4.14-version
|
||||
|
@ -440,14 +440,14 @@ It has been modified to remove all non-free binary blobs.")
|
|||
#:configuration-file kernel-config))
|
||||
|
||||
(define-public linux-libre-4.9
|
||||
(make-linux-libre "4.9.124"
|
||||
"0p78gx5jiqvaf2cadf5jp40lzgarrg0m0ybf9w2499v28vjsp30q"
|
||||
(make-linux-libre "4.9.125"
|
||||
"1saihk61l1kk42jf8yfsfkm77zalq31f0bdlam3c1g7yw702wj9g"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
(define-public linux-libre-4.4
|
||||
(make-linux-libre "4.4.153"
|
||||
"195vzkkmjiicqfzd38hgf381rlz665rl06abzf8cww0gbnzvrf72"
|
||||
(make-linux-libre "4.4.154"
|
||||
"08i9fvrmswkydj538wg6c7ggxmhll0ff0bjkw8rnyslqwilfwr1i"
|
||||
%intel-compatible-systems
|
||||
#:configuration-file kernel-config))
|
||||
|
||||
|
|
|
@ -560,13 +560,13 @@ I/O.")
|
|||
(define-public r-adaptivesparsity
|
||||
(package
|
||||
(name "r-adaptivesparsity")
|
||||
(version "1.4")
|
||||
(version "1.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "AdaptiveSparsity" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1az7isvalf3kmdiycrfl6s9k9xqk22k1mc6rh8v0jmcz402qyq8z"))))
|
||||
"0imr5m8mll9j6n4icsv6z9rl5kbnwsp9wvzrg7n90nnmcxq2cz91"))))
|
||||
(properties
|
||||
`((upstream-name . "AdaptiveSparsity")))
|
||||
(build-system r-build-system)
|
||||
|
@ -579,7 +579,9 @@ I/O.")
|
|||
(("PKG_LIBS=" prefix)
|
||||
(string-append prefix "-larmadillo"))))))))
|
||||
(propagated-inputs
|
||||
`(("r-rcpp" ,r-rcpp)
|
||||
`(("r-mass" ,r-mass)
|
||||
("r-matrix" ,r-matrix)
|
||||
("r-rcpp" ,r-rcpp)
|
||||
("r-rcpparmadillo" ,r-rcpparmadillo)))
|
||||
(inputs
|
||||
`(("armadillo" ,armadillo)))
|
||||
|
@ -594,14 +596,14 @@ geometric models.")
|
|||
(define-public r-kernlab
|
||||
(package
|
||||
(name "r-kernlab")
|
||||
(version "0.9-26")
|
||||
(version "0.9-27")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "kernlab" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0xv0slf3ggw3sswsi34416lb1g3h1pqkrr2h7r1n1kvgii3l0jcm"))))
|
||||
"1m0xqf6gyvwayz7w3c83y32ayvnlz0jicj8ijk808zq9sh7dbbgn"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://cran.r-project.org/web/packages/kernlab")
|
||||
(synopsis "Kernel-based machine learning tools")
|
||||
|
|
|
@ -1071,7 +1071,7 @@ which can add many functionalities to the base client.")
|
|||
(define-public msmtp
|
||||
(package
|
||||
(name "msmtp")
|
||||
(version "1.6.8")
|
||||
(version "1.8.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -1079,11 +1079,10 @@ which can add many functionalities to the base client.")
|
|||
"/msmtp-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ysrnshvwhzwmvb2walw5i9jdzlvmckj7inr0xnvb26q0jirbzsm"))))
|
||||
"1k9wwlapkxk9ql3xq05y6vwn6ziqk9b1v8lyhj1866qd02zhqwxx"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs
|
||||
`(("libidn" ,libidn)
|
||||
("libsecret" ,libsecret)
|
||||
`(("libsecret" ,libsecret)
|
||||
("gnutls" ,gnutls)
|
||||
("zlib" ,zlib)
|
||||
("gsasl" ,gsasl)))
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||
;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||
;;; Copyright © 2017 Paul Garlick <pgarlick@tourbillion-technology.com>
|
||||
;;; Copyright © 2017, 2018 Paul Garlick <pgarlick@tourbillion-technology.com>
|
||||
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
|
||||
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
|
||||
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
|
||||
|
@ -1580,7 +1580,7 @@ September 2004}")
|
|||
(define-public petsc
|
||||
(package
|
||||
(name "petsc")
|
||||
(version "3.8.0")
|
||||
(version "3.9.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -1588,7 +1588,9 @@ September 2004}")
|
|||
(uri (string-append "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/"
|
||||
"petsc-lite-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1lajbk3c29hnh83v6cbmm3a8wv6bdykh0p70kwrr4vrnizalk88s"))))
|
||||
(base32 "1fwkbwv4g7zf2lc8fw865xd0bl9anb6jaczfis5dff7h449gwa48"))))
|
||||
(outputs '("out" ;libraries and headers
|
||||
"examples")) ;~30MiB of examples
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("python" ,python-2)))
|
||||
|
@ -1605,11 +1607,7 @@ September 2004}")
|
|||
#:configure-flags
|
||||
`("--with-mpi=0"
|
||||
"--with-openmp=1"
|
||||
"--with-superlu=1"
|
||||
,(string-append "--with-superlu-include="
|
||||
(assoc-ref %build-inputs "superlu") "/include")
|
||||
,(string-append "--with-superlu-lib="
|
||||
(assoc-ref %build-inputs "superlu") "/lib/libsuperlu.a"))
|
||||
"--with-superlu=1")
|
||||
#:make-flags
|
||||
;; Honor (parallel-job-count) for build. Do not use --with-make-np,
|
||||
;; whose value is dumped to $out/lib/petsc/conf/petscvariables.
|
||||
|
@ -1662,6 +1660,15 @@ September 2004}")
|
|||
"PETScBuildInternal.cmake"
|
||||
;; Once installed, should uninstall with Guix
|
||||
"uninstall.py"))
|
||||
#t)))
|
||||
(add-after 'install 'move-examples
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(examples (assoc-ref outputs "examples"))
|
||||
(exdir (string-append out "/share/petsc/examples"))
|
||||
(exdir' (string-append examples "/share/petsc/examples")))
|
||||
(copy-recursively exdir exdir')
|
||||
(delete-file-recursively exdir)
|
||||
#t))))))
|
||||
(home-page "http://www.mcs.anl.gov/petsc")
|
||||
(synopsis "Library to solve PDEs")
|
||||
|
@ -1685,6 +1692,7 @@ scientific applications modeled by partial differential equations.")
|
|||
(name "petsc-openmpi")
|
||||
(inputs
|
||||
`(("openmpi" ,openmpi)
|
||||
("hdf5" ,hdf5-parallel-openmpi)
|
||||
,@(package-inputs petsc)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments petsc)
|
||||
|
@ -1692,7 +1700,21 @@ scientific applications modeled by partial differential equations.")
|
|||
``("--with-mpiexec=mpirun"
|
||||
,(string-append "--with-mpi-dir="
|
||||
(assoc-ref %build-inputs "openmpi"))
|
||||
,@(delete "--with-mpi=0" ,cf)))))
|
||||
,(string-append "--with-hdf5-include="
|
||||
(assoc-ref %build-inputs "hdf5") "/include")
|
||||
,(string-append "--with-hdf5-lib="
|
||||
(assoc-ref %build-inputs "hdf5") "/lib/libhdf5.a")
|
||||
,@(delete "--with-mpi=0" ,cf)))
|
||||
((#:phases phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'check 'set-test-environment
|
||||
(lambda _
|
||||
;; By default, running the test suite would fail because 'ssh'
|
||||
;; could not be found in $PATH. Define this variable to
|
||||
;; placate Open MPI without adding a dependency on OpenSSH (the
|
||||
;; agent isn't used anyway.)
|
||||
(setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
|
||||
#t))))))
|
||||
(synopsis "Library to solve PDEs (with MPI support)")))
|
||||
|
||||
(define-public petsc-complex-openmpi
|
||||
|
@ -1738,7 +1760,7 @@ savings are consistently > 5x.")
|
|||
(define-public slepc
|
||||
(package
|
||||
(name "slepc")
|
||||
(version "3.8.2")
|
||||
(version "3.9.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -1746,7 +1768,7 @@ savings are consistently > 5x.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"04zd48p43rnvg68p6cp28zll0px5whglc5v0sc3s6vdj1v920z8y"))))
|
||||
"0gmhdqac8zm3jx43h935z7bflazjnpvqxjv4jh5za2y1z2rqax94"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("python" ,python-2)))
|
||||
|
@ -2824,8 +2846,8 @@ parts of it.")
|
|||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://github.com/xianyi/OpenBLAS/tarball/v"
|
||||
version))
|
||||
(uri (string-append "mirror://sourceforge/openblas/v" version "/OpenBLAS%20"
|
||||
version "%20version.tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
|
@ -3231,7 +3253,7 @@ Failure to do so will result in a library with poor performance.")
|
|||
(define-public glm
|
||||
(package
|
||||
(name "glm")
|
||||
(version "0.9.9.0")
|
||||
(version "0.9.9.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -3239,7 +3261,7 @@ Failure to do so will result in a library with poor performance.")
|
|||
version "/glm-" version ".zip"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ihjadp2sb8w312a276skfjsljm3y41bjscbxf79wn23gi00giz1"))))
|
||||
"042a23hmxfs429czkmlg5ixf28aikzfbw18780prj2gcd4flgw8h"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("unzip" ,unzip)))
|
||||
|
@ -4027,3 +4049,80 @@ terminal do calculations simply and quickly. The formula to be calculated can
|
|||
be fed to @command{tcalc} through the command line.")
|
||||
(home-page "https://sites.google.com/site/mohammedisam2000/tcalc")
|
||||
(license license:gpl3+)))
|
||||
|
||||
(define-public sundials
|
||||
(package
|
||||
(name "sundials")
|
||||
(version "3.1.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://computation.llnl.gov/projects/sundials/download/"
|
||||
"sundials-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"090s8ymhd0g1s1d44fa73r5yi32hb4biwahhbfi327zd64yn8kd2"))))
|
||||
(build-system cmake-build-system)
|
||||
(native-inputs
|
||||
`(("python" ,python-2))) ;for tests; syntax incompatible with python 3
|
||||
(inputs
|
||||
`(("fortran" ,gfortran) ;for fcmix
|
||||
("blas" ,openblas)
|
||||
("suitesparse" ,suitesparse))) ;TODO: Add hypre
|
||||
(arguments
|
||||
`(#:configure-flags `("-DEXAMPLES_ENABLE_C:BOOL=ON"
|
||||
"-DEXAMPLES_ENABLE_CXX:BOOL=ON"
|
||||
"-DEXAMPLES_ENABLE_F77:BOOL=ON"
|
||||
"-DEXAMPLES_ENABLE_F90:BOOL=ON"
|
||||
"-DEXAMPLES_INSTALL:BOOL=OFF"
|
||||
|
||||
"-DFCMIX_ENABLE:BOOL=ON"
|
||||
|
||||
"-DKLU_ENABLE:BOOL=ON"
|
||||
,(string-append "-DKLU_INCLUDE_DIR="
|
||||
(assoc-ref %build-inputs "suitesparse")
|
||||
"/include")
|
||||
,(string-append "-DKLU_LIBRARY_DIR="
|
||||
(assoc-ref %build-inputs "suitesparse")
|
||||
"/lib"))))
|
||||
(home-page "https://computation.llnl.gov/projects/sundials")
|
||||
(synopsis "Suite of nonlinear and differential/algebraic equation solvers")
|
||||
(description "SUNDIALS is a family of software packages implemented with
|
||||
the goal of providing robust time integrators and nonlinear solvers that can
|
||||
easily be incorporated into existing simulation codes.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public sundials-openmpi
|
||||
(package (inherit sundials)
|
||||
(name "sundials-openmpi")
|
||||
(inputs
|
||||
`(("mpi" ,openmpi)
|
||||
("petsc" ,petsc-openmpi) ;support in SUNDIALS requires MPI
|
||||
,@(package-inputs sundials)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments sundials)
|
||||
((#:configure-flags flags '())
|
||||
`(cons* "-DMPI_ENABLE:BOOL=ON"
|
||||
"-DPETSC_ENABLE:BOOL=ON"
|
||||
(string-append "-DPETSC_INCLUDE_DIR="
|
||||
(assoc-ref %build-inputs "petsc")
|
||||
"/include")
|
||||
(string-append "-DPETSC_LIBRARY_DIR="
|
||||
(assoc-ref %build-inputs "petsc")
|
||||
"/lib")
|
||||
,flags))
|
||||
((#:phases phases '%standard-phases)
|
||||
`(modify-phases ,phases
|
||||
(add-before 'check 'set-test-environment
|
||||
(lambda _
|
||||
;; By default, running the test suite would fail because 'ssh'
|
||||
;; could not be found in $PATH. Define this variable to
|
||||
;; placate Open MPI without adding a dependency on OpenSSH (the
|
||||
;; agent isn't used anyway.)
|
||||
(setenv "OMPI_MCA_plm_rsh_agent" (which "cat"))
|
||||
;; Allow oversubscription in case there are less
|
||||
;; physical cores available in the build environment
|
||||
;; than SUNDIALS wants while testing.
|
||||
(setenv "OMPI_MCA_rmaps_base_oversubscribe" "yes")
|
||||
#t))))))
|
||||
(synopsis "SUNDIALS with OpenMPI support")))
|
||||
|
|
|
@ -39,15 +39,15 @@
|
|||
(define-public nyacc
|
||||
(package
|
||||
(name "nyacc")
|
||||
(version "0.83.3")
|
||||
(version "0.86.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://savannah/nyacc/"
|
||||
name "-" version ".tar.gz"))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(patches (search-patches "nyacc-binary-literals.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"0120n0mdb6r58c4jc024dhwqy5s8a20waknijfhqjc59a884lrd6"))))
|
||||
"0lkd9lyspvhxlfs0496gsllwinh62jk9wij6gpadvx9gwz6yavd9"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("guile" ,guile-2.2)))
|
||||
|
@ -59,36 +59,24 @@ extensive examples, including parsers for the Javascript and C99 languages.")
|
|||
(home-page "https://savannah.nongnu.org/projects/nyacc")
|
||||
(license (list gpl3+ lgpl3+))))
|
||||
|
||||
(define-public nyacc-for-mes
|
||||
(package
|
||||
(inherit nyacc)
|
||||
(version "0.80.42")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://gitlab.com/janneke/nyacc"
|
||||
"/-/archive/v" version
|
||||
"/nyacc-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0c8c8kxir0h2d4nxr131xbkfs7c80haipmkp2g6677sh14wn0b3y"))))))
|
||||
|
||||
(define-public mes
|
||||
(let ((triplet "i686-unknown-linux-gnu"))
|
||||
(package
|
||||
(name "mes")
|
||||
(version "0.17")
|
||||
(version "0.17.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://alpha.gnu.org/gnu/mes/"
|
||||
"mes-" version ".tar.gz"))
|
||||
(patches (search-patches "mes-nyacc-0.86.0.patch"))
|
||||
(sha256
|
||||
(base32
|
||||
"1j32x4zqy2cqjlg9m35f2411mwac2b0p5ch4hm99gddmfbxzgyhg"))))
|
||||
"02g8zig53ffd0ai8kqhv2zj7bj2366a8hr6ydkwakmi2d1amyrna"))))
|
||||
(build-system gnu-build-system)
|
||||
(supported-systems '("i686-linux" "x86_64-linux"))
|
||||
(propagated-inputs
|
||||
`(("mescc-tools" ,mescc-tools)
|
||||
("nyacc" ,nyacc-for-mes)))
|
||||
("nyacc" ,nyacc)))
|
||||
(native-inputs
|
||||
`(("guile" ,guile-2.2)
|
||||
,@(if (not (string-prefix? "i686-linux" (or (%current-target-system)
|
||||
|
|
|
@ -84,7 +84,7 @@ fully implemented.
|
|||
|
||||
This package contains the library.")
|
||||
(license license:gpl2+)
|
||||
(home-page "http://www.underbit.com/products/mad/")))
|
||||
(home-page "https://www.underbit.com/products/mad/")))
|
||||
|
||||
(define-public libid3tag
|
||||
(package
|
||||
|
@ -105,7 +105,7 @@ This package contains the library.")
|
|||
"Libid3tag is a library for reading ID3 tags, both ID3v1 and the various
|
||||
versions of ID3v2.")
|
||||
(license license:gpl2+)
|
||||
(home-page "http://www.underbit.com/products/mad/")))
|
||||
(home-page "https://www.underbit.com/products/mad/")))
|
||||
|
||||
(define-public id3lib
|
||||
(package
|
||||
|
@ -184,7 +184,7 @@ Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.")
|
|||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://ibiblio.org"
|
||||
"https://ibiblio.org"
|
||||
"/pub/linux/apps/sound/mp3-utils/mp3info/mp3info-"
|
||||
version ".tgz"))
|
||||
(sha256
|
||||
|
@ -231,7 +231,7 @@ Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.")
|
|||
(inputs
|
||||
`(("gtk+" ,gtk+-2)
|
||||
("ncurses" ,ncurses)))
|
||||
(home-page "http://www.ibiblio.org/mp3info/")
|
||||
(home-page "https://www.ibiblio.org/mp3info/")
|
||||
(synopsis "MP3 technical info viewer and ID3 1.x tag editor")
|
||||
(description
|
||||
"MP3Info is a little utility used to read and modify the ID3 tags of MP3
|
||||
|
@ -309,7 +309,7 @@ This package contains the binary.")
|
|||
(uri (list (string-append "mirror://sourceforge/mpg123/mpg123/"
|
||||
version "/mpg123-" version ".tar.bz2")
|
||||
(string-append
|
||||
"http://www.mpg123.org/download/mpg123-"
|
||||
"https://www.mpg123.org/download/mpg123-"
|
||||
version ".tar.bz2")))
|
||||
(sha256
|
||||
(base32
|
||||
|
@ -413,7 +413,7 @@ for album and track information.")
|
|||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"http://files.musepack.net/source/libmpcdec-"
|
||||
"https://files.musepack.net/source/libmpcdec-"
|
||||
version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
|
@ -424,7 +424,7 @@ for album and track information.")
|
|||
"This library supports decoding of the Musepack (MPC) audio compression
|
||||
format.")
|
||||
(license license:bsd-3)
|
||||
(home-page "http://musepack.net")))
|
||||
(home-page "https://musepack.net")))
|
||||
|
||||
(define-public mpc123
|
||||
(package
|
||||
|
@ -491,7 +491,7 @@ specifically mp3 files containing ID3 metadata (i.e. song info). It provides a
|
|||
command-line tool (eyeD3) and a Python library (import eyed3) that can be used
|
||||
to write your own applications or plugins that are callable from the
|
||||
command-line tool.")
|
||||
(home-page "http://eyed3.nicfit.net/")
|
||||
(home-page "https://eyed3.readthedocs.io/en/latest/")
|
||||
(license license:gpl2+)))
|
||||
|
||||
(define-public chromaprint
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
(define-public libmpdclient
|
||||
(package
|
||||
(name "libmpdclient")
|
||||
(version "2.14")
|
||||
(version "2.15")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri
|
||||
|
@ -65,7 +65,7 @@
|
|||
"/libmpdclient-" version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0whk0qw0lsd3kaimdznz0c45bfym0p4885zf4b7pfc7y3dwy510a"))))
|
||||
"1la60ar6i4ghpscrlgm45kci9b74bvkpsfybhg0ygs4rzpwzdnxl"))))
|
||||
(build-system meson-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)
|
||||
|
|
|
@ -108,7 +108,7 @@ algebra.")
|
|||
library for performing multiple-precision, floating-point computations with
|
||||
correct rounding.")
|
||||
(license lgpl3+)
|
||||
(home-page "http://www.mpfr.org/")))
|
||||
(home-page "https://www.mpfr.org/")))
|
||||
|
||||
(define-public mpc
|
||||
(package
|
||||
|
|
|
@ -786,18 +786,23 @@ interface. It is implemented as a frontend to @code{klick}.")
|
|||
(define-public libgme
|
||||
(package
|
||||
(name "libgme")
|
||||
(version "0.6.1")
|
||||
(version "0.6.2")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://bitbucket.org/mpyne/game-music-emu/"
|
||||
"downloads/game-music-emu-" version
|
||||
".tar.bz2"))
|
||||
".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"08fk7zddpn7v93d0fa7fcypx7hvgwx9b5psj9l6m8b87k2hbw4fw"))))
|
||||
"0hkkmxbaas2sirlb5i4r10mgbbiaapjx8pazifabwba23m3wnijh"))))
|
||||
(build-system cmake-build-system)
|
||||
(arguments
|
||||
'(#:tests? #f)) ; no check target
|
||||
(native-inputs
|
||||
`(;; Use gcc-4.9 to work around an internal compiler error that happens
|
||||
;; when using gcc-5.5.0. FIXME: Try removing this when the default
|
||||
;; compiler is no longer gcc-5.5.0.
|
||||
("gcc" ,gcc-4.9)))
|
||||
(home-page "https://bitbucket.org/mpyne/game-music-emu")
|
||||
(synopsis "Video game music file playback library")
|
||||
(description
|
||||
|
|
|
@ -28,17 +28,17 @@
|
|||
(define-public musl
|
||||
(package
|
||||
(name "musl")
|
||||
(version "1.1.19")
|
||||
(version "1.1.20")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://www.musl-libc.org/releases/"
|
||||
name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1nf1wh44bhm8gdcfr75ayib29b99vpq62zmjymrq7f96h9bshnfv"))))
|
||||
"0q8dsjxl41dccscv9a0r78bs7jap57mn4mni5pwbbip6s1qqggj4"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:tests? #f ; Musl has no tests
|
||||
`(#:tests? #f ; Musl has no tests
|
||||
#:configure-flags
|
||||
(list "--disable-gcc-wrapper")))
|
||||
(synopsis "Small C standard library")
|
||||
|
|
|
@ -580,7 +580,7 @@ of the same name.")
|
|||
(define-public wireshark
|
||||
(package
|
||||
(name "wireshark")
|
||||
(version "2.6.2")
|
||||
(version "2.6.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -588,7 +588,7 @@ of the same name.")
|
|||
version ".tar.xz"))
|
||||
(sha256
|
||||
(base32
|
||||
"153h6prxamv5a62f3pfadkry0y57696xrgxfy2gfy5xswdg8kcj9"))))
|
||||
"1v538h02y8avwy3cr11xz6wkyf9xd8qva4ng4sl9f2fw4skahn6i"))))
|
||||
(build-system gnu-build-system)
|
||||
(inputs `(("c-ares" ,c-ares)
|
||||
("glib" ,glib)
|
||||
|
@ -762,52 +762,58 @@ live network and disk I/O bandwidth monitor.")
|
|||
(define-public aircrack-ng
|
||||
(package
|
||||
(name "aircrack-ng")
|
||||
(version "1.2-rc4")
|
||||
(version "1.3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://download.aircrack-ng.org/aircrack-ng-"
|
||||
(uri (string-append "https://download.aircrack-ng.org/aircrack-ng-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0dpzx9kddxpgzmgvdpl3rxn0jdaqhm5wxxndp1xd7d75mmmc2fnr"))))
|
||||
"1jl30d0kibc82447fr3lgw75arik0l9729k94z76l7vl51y8mq4a"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
`(("autoconf" ,autoconf)
|
||||
("automake" ,automake)
|
||||
("libtool" ,libtool)
|
||||
("pkg-config" ,pkg-config)
|
||||
("which" ,which)))
|
||||
(inputs
|
||||
`(("libgcrypt" ,libgcrypt)
|
||||
("libnl" ,libnl)
|
||||
("libpcap" ,libpcap)
|
||||
("ethtool" ,ethtool)
|
||||
("pcre" ,pcre)
|
||||
("sqlite" ,sqlite)
|
||||
("zlib" ,zlib)))
|
||||
(arguments
|
||||
`(#:make-flags `("sqlite=true"
|
||||
"gcrypt=true"
|
||||
"libnl=true"
|
||||
"pcre=true"
|
||||
"experimental=true" ;build wesside-ng, etc.
|
||||
"AVX2FLAG=N" "AVX1FLAG=N"
|
||||
,,@(match (%current-system)
|
||||
((or "x86_64-linux" "i686-linux")
|
||||
`("SSEFLAG=Y"))
|
||||
(_
|
||||
`("NEWSSE=false")))
|
||||
,(string-append "prefix=" %output))
|
||||
`(#:configure-flags
|
||||
(list "--with-experimental=yes" ; build wesside-ng, etc.
|
||||
"--with-gcrypt") ; openssl's the default
|
||||
#:phases (modify-phases %standard-phases
|
||||
(delete 'configure) ;no configure phase
|
||||
(add-before 'bootstrap 'patch-evalrev
|
||||
(lambda _
|
||||
;; Called by ./autogen.sh below, before the default
|
||||
;; ‘patch-shebangs’ phase has had a chance to run.
|
||||
(substitute* "evalrev"
|
||||
(("/bin/sh")
|
||||
(which "sh")))
|
||||
#t))
|
||||
(replace 'bootstrap
|
||||
(lambda _
|
||||
;; Patch shebangs in generated files before running
|
||||
;; ./configure.
|
||||
(setenv "NOCONFIGURE" "please")
|
||||
(invoke "bash" "./autogen.sh")))
|
||||
(add-after 'build 'absolutize-tools
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((ethtool (string-append (assoc-ref inputs "ethtool")
|
||||
"/sbin/ethtool")))
|
||||
(substitute* "scripts/airmon-ng"
|
||||
(("\\[ ! -x \"\\$\\(command -v ethtool 2>&1)\" \\]")
|
||||
(string-append "! " ethtool " --version "
|
||||
">/dev/null 2>&1"))
|
||||
(("\\$\\(ethtool")
|
||||
(string-append "$(" ethtool)))
|
||||
(("ethtool ")
|
||||
(string-append ethtool " ")))
|
||||
#t))))))
|
||||
(home-page "http://www.aircrack-ng.org")
|
||||
(home-page "https://www.aircrack-ng.org")
|
||||
(synopsis "Assess WiFi network security")
|
||||
(description
|
||||
"Aircrack-ng is a complete suite of tools to assess WiFi network
|
||||
|
|
|
@ -106,14 +106,14 @@
|
|||
(define-public nss-pam-ldapd
|
||||
(package
|
||||
(name "nss-pam-ldapd")
|
||||
(version "0.9.9")
|
||||
(version "0.9.10")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://arthurdejong.org/nss-pam-ldapd/"
|
||||
"nss-pam-ldapd-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1lj7qkjlg3bshwdc5x5r1ny37rly4wgm1c8b6w6b5f4wa11nmji0"))))
|
||||
"1cqamcr6qpgwxijlr6kg7jspjamjra8w0haan0qssn0yxn95d7c0"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:configure-flags
|
||||
|
|
|
@ -101,8 +101,8 @@
|
|||
;; Note: the 'update-guix-package.scm' script expects this definition to
|
||||
;; start precisely like this.
|
||||
(let ((version "0.15.0")
|
||||
(commit "8bbb79cf95a07a40950448a8a09d888254404ed4")
|
||||
(revision 2))
|
||||
(commit "3d43017026f9995ad128915db8ca5eafe061bf75")
|
||||
(revision 3))
|
||||
(package
|
||||
(name "guix")
|
||||
|
||||
|
@ -118,7 +118,7 @@
|
|||
(commit commit)))
|
||||
(sha256
|
||||
(base32
|
||||
"0h83l91v2cg9bb78c7vqx9wj71ckz22jbjmm2fy4vqs9216jnvc0"))
|
||||
"167rzz2h33xmmchkplwzfq94s5jwdn5nabsq2lb84s54ps0sm89m"))
|
||||
(file-name (string-append "guix-" version "-checkout"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
|
@ -213,6 +213,7 @@
|
|||
;; Guile-JSON, and Guile-Git automatically.
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(guile (assoc-ref inputs "guile"))
|
||||
(gcrypt (assoc-ref inputs "guile-gcrypt"))
|
||||
(json (assoc-ref inputs "guile-json"))
|
||||
(sqlite (assoc-ref inputs "guile-sqlite3"))
|
||||
(git (assoc-ref inputs "guile-git"))
|
||||
|
@ -220,7 +221,8 @@
|
|||
"guile-bytestructures"))
|
||||
(ssh (assoc-ref inputs "guile-ssh"))
|
||||
(gnutls (assoc-ref inputs "gnutls"))
|
||||
(deps (list json sqlite gnutls git bs ssh))
|
||||
(deps (list gcrypt json sqlite gnutls
|
||||
git bs ssh))
|
||||
(effective
|
||||
(read-line
|
||||
(open-pipe* OPEN_READ
|
||||
|
@ -277,6 +279,7 @@
|
|||
'())))
|
||||
(propagated-inputs
|
||||
`(("gnutls" ,gnutls)
|
||||
("guile-gcrypt" ,guile-gcrypt)
|
||||
("guile-json" ,guile-json)
|
||||
("guile-sqlite3" ,guile-sqlite3)
|
||||
("guile-ssh" ,guile-ssh)
|
||||
|
@ -312,6 +315,7 @@ the Nix package manager.")
|
|||
(inputs
|
||||
`(("gnutls" ,gnutls)
|
||||
("guile-git" ,guile-git)
|
||||
("guile-gcrypt" ,guile-gcrypt)
|
||||
,@(fold alist-delete (package-inputs guix)
|
||||
'("boot-guile" "boot-guile/i686" "util-linux"))))
|
||||
|
||||
|
@ -562,13 +566,13 @@ transactions from C or Python.")
|
|||
(define-public diffoscope
|
||||
(package
|
||||
(name "diffoscope")
|
||||
(version "96")
|
||||
(version "100")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1x66f2x8miy3giff14higpcs70c0zb5d3gj6yn8ac6p183sngl72"))))
|
||||
"0sh7g26i5ndpa8l7xq6rnijbi3jz5izjn0b98zcnm6wpgghszw48"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
`(#:phases (modify-phases %standard-phases
|
||||
|
|
|
@ -0,0 +1,193 @@
|
|||
Ghostscript 9.24 was released with an incomplete fix for CVE-2018-16509:
|
||||
https://nvd.nist.gov/vuln/detail/CVE-2018-16509
|
||||
https://bugs.chromium.org/p/project-zero/issues/detail?id=1640#c19
|
||||
https://bugs.ghostscript.com/show_bug.cgi?id=699718
|
||||
|
||||
The reproducers no longer work after applying these commits:
|
||||
|
||||
https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5812b1b78fc4d36fdc293b7859de69241140d590
|
||||
https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e914f1da46e33decc534486598dc3eadf69e6efb
|
||||
https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3e5d316b72e3965b7968bb1d96baa137cd063ac6
|
||||
https://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=643b24dbd002fb9c131313253c307cf3951b3d47
|
||||
|
||||
This patch is a "squashed" version of those.
|
||||
|
||||
diff --git a/Resource/Init/gs_setpd.ps b/Resource/Init/gs_setpd.ps
|
||||
index bba3c8c0e..8fa7c51df 100644
|
||||
--- a/Resource/Init/gs_setpd.ps
|
||||
+++ b/Resource/Init/gs_setpd.ps
|
||||
@@ -95,27 +95,41 @@ level2dict begin
|
||||
{ % Since setpagedevice doesn't create new device objects,
|
||||
% we must (carefully) reinstall the old parameters in
|
||||
% the same device.
|
||||
- .currentpagedevice pop //null currentdevice //null .trysetparams
|
||||
+ .currentpagedevice pop //null currentdevice //null
|
||||
+ { .trysetparams } .internalstopped
|
||||
+ {
|
||||
+ //null
|
||||
+ } if
|
||||
dup type /booleantype eq
|
||||
{ pop pop }
|
||||
- { % This should never happen!
|
||||
+ {
|
||||
SETPDDEBUG { (Error in .trysetparams!) = pstack flush } if
|
||||
- cleartomark pop pop pop
|
||||
+ {cleartomark pop pop pop} .internalstopped pop
|
||||
+ % if resetting the entire device state failed, at least put back the
|
||||
+ % security related key
|
||||
+ currentdevice //null //false mark /.LockSafetyParams
|
||||
+ currentpagedevice /.LockSafetyParams .knownget not
|
||||
+ {systemdict /SAFER .knownget not {//false} } if
|
||||
+ .putdeviceparamsonly
|
||||
/.installpagedevice cvx /rangecheck signalerror
|
||||
}
|
||||
ifelse pop pop
|
||||
% A careful reading of the Red Book reveals that an erasepage
|
||||
% should occur, but *not* an initgraphics.
|
||||
erasepage .beginpage
|
||||
- } bind def
|
||||
+ } bind executeonly def
|
||||
|
||||
/.uninstallpagedevice
|
||||
- { 2 .endpage { .currentnumcopies //false .outputpage } if
|
||||
+ {
|
||||
+ {2 .endpage { .currentnumcopies //false .outputpage } if} .internalstopped pop
|
||||
nulldevice
|
||||
} bind def
|
||||
|
||||
(%grestorepagedevice) cvn
|
||||
- { .uninstallpagedevice grestore .installpagedevice
|
||||
+ {
|
||||
+ .uninstallpagedevice
|
||||
+ grestore
|
||||
+ .installpagedevice
|
||||
} bind def
|
||||
|
||||
(%grestoreallpagedevice) cvn
|
||||
diff --git a/psi/zdevice2.c b/psi/zdevice2.c
|
||||
index 0c7080d57..159a0c0d9 100644
|
||||
--- a/psi/zdevice2.c
|
||||
+++ b/psi/zdevice2.c
|
||||
@@ -251,8 +251,8 @@ z2currentgstate(i_ctx_t *i_ctx_p)
|
||||
/* ------ Wrappers for operators that reset the graphics state. ------ */
|
||||
|
||||
/* Check whether we need to call out to restore the page device. */
|
||||
-static bool
|
||||
-restore_page_device(const gs_gstate * pgs_old, const gs_gstate * pgs_new)
|
||||
+static int
|
||||
+restore_page_device(i_ctx_t *i_ctx_p, const gs_gstate * pgs_old, const gs_gstate * pgs_new)
|
||||
{
|
||||
gx_device *dev_old = gs_currentdevice(pgs_old);
|
||||
gx_device *dev_new;
|
||||
@@ -260,9 +260,10 @@ restore_page_device(const gs_gstate * pgs_old, const gs_gstate * pgs_new)
|
||||
gx_device *dev_t2;
|
||||
bool samepagedevice = obj_eq(dev_old->memory, &gs_int_gstate(pgs_old)->pagedevice,
|
||||
&gs_int_gstate(pgs_new)->pagedevice);
|
||||
+ bool LockSafetyParams = dev_old->LockSafetyParams;
|
||||
|
||||
if ((dev_t1 = (*dev_proc(dev_old, get_page_device)) (dev_old)) == 0)
|
||||
- return false;
|
||||
+ return 0;
|
||||
/* If we are going to putdeviceparams in a callout, we need to */
|
||||
/* unlock temporarily. The device will be re-locked as needed */
|
||||
/* by putdeviceparams from the pgs_old->pagedevice dict state. */
|
||||
@@ -271,23 +272,51 @@ restore_page_device(const gs_gstate * pgs_old, const gs_gstate * pgs_new)
|
||||
dev_new = gs_currentdevice(pgs_new);
|
||||
if (dev_old != dev_new) {
|
||||
if ((dev_t2 = (*dev_proc(dev_new, get_page_device)) (dev_new)) == 0)
|
||||
- return false;
|
||||
- if (dev_t1 != dev_t2)
|
||||
- return true;
|
||||
+ samepagedevice = true;
|
||||
+ else if (dev_t1 != dev_t2)
|
||||
+ samepagedevice = false;
|
||||
+ }
|
||||
+
|
||||
+ if (LockSafetyParams && !samepagedevice) {
|
||||
+ const int required_ops = 512;
|
||||
+ const int required_es = 32;
|
||||
+
|
||||
+ /* The %grestorepagedevice must complete: the biggest danger
|
||||
+ is operand stack overflow. As we use get/putdeviceparams
|
||||
+ that means pushing all the device params onto the stack,
|
||||
+ pdfwrite having by far the largest number of parameters
|
||||
+ at (currently) 212 key/value pairs - thus needing (currently)
|
||||
+ 424 entries on the op stack. Allowing for working stack
|
||||
+ space, and safety margin.....
|
||||
+ */
|
||||
+ if (required_ops + ref_stack_count(&o_stack) >= ref_stack_max_count(&o_stack)) {
|
||||
+ gs_currentdevice(pgs_old)->LockSafetyParams = LockSafetyParams;
|
||||
+ return_error(gs_error_stackoverflow);
|
||||
+ }
|
||||
+ /* We also want enough exec stack space - 32 is an overestimate of
|
||||
+ what we need to complete the Postscript call out.
|
||||
+ */
|
||||
+ if (required_es + ref_stack_count(&e_stack) >= ref_stack_max_count(&e_stack)) {
|
||||
+ gs_currentdevice(pgs_old)->LockSafetyParams = LockSafetyParams;
|
||||
+ return_error(gs_error_execstackoverflow);
|
||||
+ }
|
||||
}
|
||||
/*
|
||||
* The current implementation of setpagedevice just sets new
|
||||
* parameters in the same device object, so we have to check
|
||||
* whether the page device dictionaries are the same.
|
||||
*/
|
||||
- return !samepagedevice;
|
||||
+ return samepagedevice ? 0 : 1;
|
||||
}
|
||||
|
||||
/* - grestore - */
|
||||
static int
|
||||
z2grestore(i_ctx_t *i_ctx_p)
|
||||
{
|
||||
- if (!restore_page_device(igs, gs_gstate_saved(igs)))
|
||||
+ int code = restore_page_device(i_ctx_p, igs, gs_gstate_saved(igs));
|
||||
+ if (code < 0) return code;
|
||||
+
|
||||
+ if (code == 0)
|
||||
return gs_grestore(igs);
|
||||
return push_callout(i_ctx_p, "%grestorepagedevice");
|
||||
}
|
||||
@@ -297,7 +326,9 @@ static int
|
||||
z2grestoreall(i_ctx_t *i_ctx_p)
|
||||
{
|
||||
for (;;) {
|
||||
- if (!restore_page_device(igs, gs_gstate_saved(igs))) {
|
||||
+ int code = restore_page_device(i_ctx_p, igs, gs_gstate_saved(igs));
|
||||
+ if (code < 0) return code;
|
||||
+ if (code == 0) {
|
||||
bool done = !gs_gstate_saved(gs_gstate_saved(igs));
|
||||
|
||||
gs_grestore(igs);
|
||||
@@ -328,11 +359,15 @@ z2restore(i_ctx_t *i_ctx_p)
|
||||
if (code < 0) return code;
|
||||
|
||||
while (gs_gstate_saved(gs_gstate_saved(igs))) {
|
||||
- if (restore_page_device(igs, gs_gstate_saved(igs)))
|
||||
+ code = restore_page_device(i_ctx_p, igs, gs_gstate_saved(igs));
|
||||
+ if (code < 0) return code;
|
||||
+ if (code > 0)
|
||||
return push_callout(i_ctx_p, "%restore1pagedevice");
|
||||
gs_grestore(igs);
|
||||
}
|
||||
- if (restore_page_device(igs, gs_gstate_saved(igs)))
|
||||
+ code = restore_page_device(i_ctx_p, igs, gs_gstate_saved(igs));
|
||||
+ if (code < 0) return code;
|
||||
+ if (code > 0)
|
||||
return push_callout(i_ctx_p, "%restorepagedevice");
|
||||
|
||||
code = dorestore(i_ctx_p, asave);
|
||||
@@ -355,9 +390,12 @@ static int
|
||||
z2setgstate(i_ctx_t *i_ctx_p)
|
||||
{
|
||||
os_ptr op = osp;
|
||||
+ int code;
|
||||
|
||||
check_stype(*op, st_igstate_obj);
|
||||
- if (!restore_page_device(igs, igstate_ptr(op)))
|
||||
+ code = restore_page_device(i_ctx_p, igs, igstate_ptr(op));
|
||||
+ if (code < 0) return code;
|
||||
+ if (code == 0)
|
||||
return zsetgstate(i_ctx_p);
|
||||
return push_callout(i_ctx_p, "%setgstatepagedevice");
|
||||
}
|
|
@ -0,0 +1,160 @@
|
|||
Additional security fix that missed 9.24.
|
||||
|
||||
Taken from upstream:
|
||||
http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fb713b3818b52d8a6cf62c951eba2e1795ff9624
|
||||
|
||||
From fb713b3818b52d8a6cf62c951eba2e1795ff9624 Mon Sep 17 00:00:00 2001
|
||||
From: Chris Liddell <chris.liddell@artifex.com>
|
||||
Date: Thu, 6 Sep 2018 09:16:22 +0100
|
||||
Subject: [PATCH] Bug 699708 (part 1): 'Hide' non-replaceable error handlers
|
||||
for SAFER
|
||||
|
||||
We already had a 'private' dictionary for non-standard errors: gserrordict.
|
||||
|
||||
This now includes all the default error handlers, the dictionary is made
|
||||
noaccess and all the prodedures are bound and executeonly.
|
||||
|
||||
When running with -dSAFER, in the event of a Postscript error, instead of
|
||||
pulling the handler from errordict, we'll pull it from gserrordict - thus
|
||||
malicious input cannot trigger problems by the use of custom error handlers.
|
||||
|
||||
errordict remains open and writeable, so files such as the Quality Logic tests
|
||||
that install their own handlers will still 'work', with the exception that the
|
||||
custom error handlers will not be called.
|
||||
|
||||
This is a 'first pass', 'sledgehammer' approach: a nice addition would to allow
|
||||
an integrator to specify a list of errors that are not to be replaced (for
|
||||
example, embedded applications would probably want to ensure that VMerror is
|
||||
always handled as they intend).
|
||||
---
|
||||
Resource/Init/gs_init.ps | 29 ++++++++++++++++++-----------
|
||||
psi/interp.c | 30 +++++++++++++++++++++---------
|
||||
2 files changed, 39 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/Resource/Init/gs_init.ps b/Resource/Init/gs_init.ps
|
||||
index 071c39205..bc8b7951c 100644
|
||||
--- a/Resource/Init/gs_init.ps
|
||||
+++ b/Resource/Init/gs_init.ps
|
||||
@@ -881,7 +881,7 @@ userdict /.currentresourcefile //null put
|
||||
{ not exch pop exit } { pop } ifelse
|
||||
}
|
||||
for exch pop .quit
|
||||
- } bind def
|
||||
+ } bind executeonly def
|
||||
/.errorhandler % <command> <errorname> .errorhandler -
|
||||
{ % Detect an internal 'stopped'.
|
||||
1 .instopped { //null eq { pop pop stop } if } if
|
||||
@@ -926,7 +926,7 @@ userdict /.currentresourcefile //null put
|
||||
$error /globalmode get $error /.nosetlocal get and .setglobal
|
||||
$error /.inerror //false put
|
||||
stop
|
||||
- } bind def
|
||||
+ } bind executeonly def
|
||||
% Define the standard handleerror. We break out the printing procedure
|
||||
% (.printerror) so that it can be extended for binary output
|
||||
% if the Level 2 facilities are present.
|
||||
@@ -976,7 +976,7 @@ userdict /.currentresourcefile //null put
|
||||
ifelse % newerror
|
||||
end
|
||||
flush
|
||||
- } bind def
|
||||
+ } bind executeonly def
|
||||
/.printerror_long % long error printout,
|
||||
% $error is on the dict stack
|
||||
{ % Push the (anonymous) stack printing procedure.
|
||||
@@ -1053,14 +1053,14 @@ userdict /.currentresourcefile //null put
|
||||
{ (Current file position is ) print position = }
|
||||
if
|
||||
|
||||
- } bind def
|
||||
+ } bind executeonly def
|
||||
% Define a procedure for clearing the error indication.
|
||||
/.clearerror
|
||||
{ $error /newerror //false put
|
||||
$error /errorname //null put
|
||||
$error /errorinfo //null put
|
||||
0 .setoserrno
|
||||
- } bind def
|
||||
+ } bind executeonly def
|
||||
|
||||
% Define $error. This must be in local VM.
|
||||
.currentglobal //false .setglobal
|
||||
@@ -1086,11 +1086,15 @@ end
|
||||
/errordict ErrorNames length 3 add dict
|
||||
.forcedef % errordict is local, systemdict is global
|
||||
.setglobal % back to global VM
|
||||
-% For greater Adobe compatibility, we put all non-standard errors in a
|
||||
-% separate dictionary, gserrordict. It does not need to be in local VM,
|
||||
-% because PostScript programs do not access it.
|
||||
+% gserrordict contains all the default error handling methods, but unlike
|
||||
+% errordict it is noaccess after creation (also it is in global VM).
|
||||
+% When running 'SAFER', we'll ignore the contents of errordict, which
|
||||
+% may have been tampered with by the running job, and always use gserrordict
|
||||
+% gserrordict also contains any non-standard errors, for better compatibility
|
||||
+% with Adobe.
|
||||
+%
|
||||
% NOTE: the name gserrordict is known to the interpreter.
|
||||
-/gserrordict 5 dict def
|
||||
+/gserrordict ErrorNames length 3 add dict def
|
||||
% Register an error in errordict. We make this a procedure because we only
|
||||
% register the Level 1 errors here: the rest are registered by "feature"
|
||||
% files. However, ErrorNames contains all of the error names regardless of
|
||||
@@ -1119,8 +1123,11 @@ errordict begin
|
||||
} bind def
|
||||
end % errordict
|
||||
|
||||
-% Put non-standard errors in gserrordict.
|
||||
-gserrordict /unknownerror errordict /unknownerror get put
|
||||
+% Put all the default handlers in gserrordict
|
||||
+gserrordict
|
||||
+errordict {2 index 3 1 roll put} forall
|
||||
+noaccess pop
|
||||
+% remove the non-standard errors from errordict
|
||||
errordict /unknownerror .undef
|
||||
% Define a stable private copy of handleerror that we will always use under
|
||||
% JOBSERVER mode.
|
||||
diff --git a/psi/interp.c b/psi/interp.c
|
||||
index c27b70dca..d41a9d3f5 100644
|
||||
--- a/psi/interp.c
|
||||
+++ b/psi/interp.c
|
||||
@@ -661,16 +661,28 @@ again:
|
||||
return code;
|
||||
if (gs_errorname(i_ctx_p, code, &error_name) < 0)
|
||||
return code; /* out-of-range error code! */
|
||||
- /*
|
||||
- * For greater Adobe compatibility, only the standard PostScript errors
|
||||
- * are defined in errordict; the rest are in gserrordict.
|
||||
+
|
||||
+ /* If LockFilePermissions is true, we only refer to gserrordict, which
|
||||
+ * is not accessible to Postcript jobs
|
||||
*/
|
||||
- if (dict_find_string(systemdict, "errordict", &perrordict) <= 0 ||
|
||||
- (dict_find(perrordict, &error_name, &epref) <= 0 &&
|
||||
- (dict_find_string(systemdict, "gserrordict", &perrordict) <= 0 ||
|
||||
- dict_find(perrordict, &error_name, &epref) <= 0))
|
||||
- )
|
||||
- return code; /* error name not in errordict??? */
|
||||
+ if (i_ctx_p->LockFilePermissions) {
|
||||
+ if (((dict_find_string(systemdict, "gserrordict", &perrordict) <= 0 ||
|
||||
+ dict_find(perrordict, &error_name, &epref) <= 0))
|
||||
+ )
|
||||
+ return code; /* error name not in errordict??? */
|
||||
+ }
|
||||
+ else {
|
||||
+ /*
|
||||
+ * For greater Adobe compatibility, only the standard PostScript errors
|
||||
+ * are defined in errordict; the rest are in gserrordict.
|
||||
+ */
|
||||
+ if (dict_find_string(systemdict, "errordict", &perrordict) <= 0 ||
|
||||
+ (dict_find(perrordict, &error_name, &epref) <= 0 &&
|
||||
+ (dict_find_string(systemdict, "gserrordict", &perrordict) <= 0 ||
|
||||
+ dict_find(perrordict, &error_name, &epref) <= 0))
|
||||
+ )
|
||||
+ return code; /* error name not in errordict??? */
|
||||
+ }
|
||||
doref = *epref;
|
||||
epref = &doref;
|
||||
/* Push the error object on the operand stack if appropriate. */
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,197 @@
|
|||
From 9e610736bf779f3295c1192e748cd19cbbe3be28 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
Date: Wed, 5 Sep 2018 20:28:06 +0200
|
||||
Subject: [PATCH 1/2] mes: Support Nyacc 0.85.3: Add char-set-copy.
|
||||
|
||||
* mes/module/srfi/srfi-14.mes (char-set-copy): New function>
|
||||
---
|
||||
mes/module/srfi/srfi-14.mes | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/mes/module/srfi/srfi-14.mes b/mes/module/srfi/srfi-14.mes
|
||||
index 0be39b1e..a16d16ce 100644
|
||||
--- a/mes/module/srfi/srfi-14.mes
|
||||
+++ b/mes/module/srfi/srfi-14.mes
|
||||
@@ -52,3 +52,6 @@
|
||||
|
||||
(define (char-whitespace? c)
|
||||
(char-set-contains? char-set:whitespace c))
|
||||
+
|
||||
+(define (char-set-copy cs)
|
||||
+ (map identity cs))
|
||||
--
|
||||
2.18.0
|
||||
|
||||
From b952bdf44f11edbfc277600dc35236aae1769b54 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
Date: Wed, 5 Sep 2018 22:14:34 +0200
|
||||
Subject: [PATCH 2/2] mes: Support Nyacc 0.85.3: Integrate progress.
|
||||
|
||||
* mes/module/nyacc/lang/sx-util.mes: New file.
|
||||
* mes/module/nyacc/version.mes: New file.
|
||||
* mes/module/nyacc/lang/c99/cpp.mes (nyacc): Include them.
|
||||
* mes/module/nyacc/lang/c99/parser.mes (nyacc): Include them.
|
||||
* module/mescc/preprocess.scm (need-progress): New function.
|
||||
(progress): New function.
|
||||
(insert-progress-monitors): Use them to Integrate progress.
|
||||
---
|
||||
mes/module/mescc/preprocess.mes | 1 +
|
||||
mes/module/nyacc/lang/c99/cpp.mes | 1 +
|
||||
mes/module/nyacc/lang/c99/parser.mes | 1 +
|
||||
mes/module/nyacc/lang/sx-util.mes | 27 +++++++++++++++++++++
|
||||
mes/module/nyacc/version.mes | 26 +++++++++++++++++++++
|
||||
module/mescc/preprocess.scm | 35 ++++++++++++++++++++++++++++
|
||||
6 files changed, 91 insertions(+)
|
||||
create mode 100644 mes/module/nyacc/lang/sx-util.mes
|
||||
create mode 100644 mes/module/nyacc/version.mes
|
||||
|
||||
diff --git a/mes/module/mescc/preprocess.mes b/mes/module/mescc/preprocess.mes
|
||||
index c7c5fcaa..022a372c 100644
|
||||
--- a/mes/module/mescc/preprocess.mes
|
||||
+++ b/mes/module/mescc/preprocess.mes
|
||||
@@ -24,4 +24,5 @@
|
||||
(mes-use-module (srfi srfi-13))
|
||||
(mes-use-module (srfi srfi-26))
|
||||
(mes-use-module (nyacc lang c99 parser))
|
||||
+(mes-use-module (nyacc version))
|
||||
(include-from-path "mescc/preprocess.scm")
|
||||
diff --git a/mes/module/nyacc/lang/c99/cpp.mes b/mes/module/nyacc/lang/c99/cpp.mes
|
||||
index fad1dc55..b25c4a93 100644
|
||||
--- a/mes/module/nyacc/lang/c99/cpp.mes
|
||||
+++ b/mes/module/nyacc/lang/c99/cpp.mes
|
||||
@@ -28,5 +28,6 @@
|
||||
|
||||
(mes-use-module (nyacc parse))
|
||||
(mes-use-module (nyacc lex))
|
||||
+(mes-use-module (nyacc lang sx-util))
|
||||
(mes-use-module (nyacc lang util))
|
||||
(include-from-path "nyacc/lang/c99/cpp.scm")
|
||||
diff --git a/mes/module/nyacc/lang/c99/parser.mes b/mes/module/nyacc/lang/c99/parser.mes
|
||||
index c51552d6..1a9aaf73 100644
|
||||
--- a/mes/module/nyacc/lang/c99/parser.mes
|
||||
+++ b/mes/module/nyacc/lang/c99/parser.mes
|
||||
@@ -32,6 +32,7 @@
|
||||
|
||||
(mes-use-module (nyacc lex))
|
||||
(mes-use-module (nyacc parse))
|
||||
+(mes-use-module (nyacc lang sx-util))
|
||||
(mes-use-module (nyacc lang util))
|
||||
(mes-use-module (nyacc lang c99 cpp))
|
||||
|
||||
diff --git a/mes/module/nyacc/lang/sx-util.mes b/mes/module/nyacc/lang/sx-util.mes
|
||||
new file mode 100644
|
||||
index 00000000..41ac5b4a
|
||||
--- /dev/null
|
||||
+++ b/mes/module/nyacc/lang/sx-util.mes
|
||||
@@ -0,0 +1,27 @@
|
||||
+;;; -*-scheme-*-
|
||||
+
|
||||
+;;; GNU Mes --- Maxwell Equations of Software
|
||||
+;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
+;;;
|
||||
+;;; This file is part of GNU Mes.
|
||||
+;;;
|
||||
+;;; GNU Mes 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 Mes 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 Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+;;; Commentary:
|
||||
+
|
||||
+;;; Code:
|
||||
+
|
||||
+(mes-use-module (srfi srfi-1))
|
||||
+(mes-use-module (srfi srfi-16))
|
||||
+(include-from-path "nyacc/lang/sx-util.scm")
|
||||
diff --git a/mes/module/nyacc/version.mes b/mes/module/nyacc/version.mes
|
||||
new file mode 100644
|
||||
index 00000000..b9db628e
|
||||
--- /dev/null
|
||||
+++ b/mes/module/nyacc/version.mes
|
||||
@@ -0,0 +1,26 @@
|
||||
+;;; -*-scheme-*-
|
||||
+
|
||||
+;;; GNU Mes --- Maxwell Equations of Software
|
||||
+;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||
+;;;
|
||||
+;;; This file is part of GNU Mes.
|
||||
+;;;
|
||||
+;;; GNU Mes 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 Mes 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 Mes. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+;;; Commentary:
|
||||
+
|
||||
+;;; Code:
|
||||
+
|
||||
+(include-from-path "nyacc/version.scm")
|
||||
+(display "nyacc version\n")
|
||||
diff --git a/module/mescc/preprocess.scm b/module/mescc/preprocess.scm
|
||||
index 9e341cba..c2efb32c 100644
|
||||
--- a/module/mescc/preprocess.scm
|
||||
+++ b/module/mescc/preprocess.scm
|
||||
@@ -26,9 +26,44 @@
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (nyacc lang c99 parser)
|
||||
+ #:use-module (nyacc lang c99 parser)
|
||||
+ #:use-module (nyacc version)
|
||||
#:use-module (mes guile)
|
||||
#:export (c99-input->ast))
|
||||
|
||||
+(format (current-error-port) "*nyacc-version*=~a\n" *nyacc-version*)
|
||||
+;; list of which rules you want progress reported
|
||||
+(define need-progress
|
||||
+ (assoc-ref
|
||||
+ '(("0.85.3" (1 2 3))
|
||||
+ ("0.86.0" (1 2 3)))
|
||||
+ *nyacc-version*))
|
||||
+
|
||||
+(define (progress o)
|
||||
+ (when (and o (getenv "NYACC_DEBUG"))
|
||||
+ (display " :" (current-error-port))
|
||||
+ (display o (current-error-port))
|
||||
+ (display "\n" (current-error-port))))
|
||||
+
|
||||
+(define (insert-progress-monitors act-v len-v)
|
||||
+ (let ((n (vector-length act-v)))
|
||||
+ (let loop ((ix 0))
|
||||
+ (when (< ix n)
|
||||
+ (if (memq ix need-progress)
|
||||
+ (vector-set
|
||||
+ act-v ix
|
||||
+ (lambda args
|
||||
+ (progress (list-ref args (1- (vector-ref len-v ix))))
|
||||
+ (apply (vector-ref act-v ix) args))))
|
||||
+ (loop (1+ ix))))))
|
||||
+
|
||||
+(cond-expand
|
||||
+ (guile
|
||||
+ (insert-progress-monitors (@@ (nyacc lang c99 parser) c99-act-v)
|
||||
+ (@@ (nyacc lang c99 parser) c99-len-v)))
|
||||
+ (mes
|
||||
+ (insert-progress-monitors c99-act-v c99-len-v)))
|
||||
+
|
||||
(define (logf port string . rest)
|
||||
(apply format (cons* port string rest))
|
||||
(force-output port)
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
From 6a08014b77bf435f025ecdac08396580b85f159a Mon Sep 17 00:00:00 2001
|
||||
From: Jan Nieuwenhuizen <janneke@gnu.org>
|
||||
Date: Sat, 8 Sep 2018 20:22:45 +0200
|
||||
Subject: [PATCH] fix binary literals.
|
||||
|
||||
---
|
||||
module/nyacc/lex.scm | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/module/nyacc/lex.scm b/module/nyacc/lex.scm
|
||||
index 2ec9895..b205212 100644
|
||||
--- a/module/nyacc/lex.scm
|
||||
+++ b/module/nyacc/lex.scm
|
||||
@@ -345,10 +345,11 @@
|
||||
((char-numeric? ch) (iter chl '$fixed ba 1 ch))
|
||||
((char=? #\. ch) (iter (cons ch chl) #f ba 15 (read-char)))
|
||||
(else #f)))
|
||||
- ((10) ;; allow x after 0
|
||||
+ ((10) ;; allow x, b after 0
|
||||
(cond
|
||||
((eof-object? ch) (iter chl ty ba 5 ch))
|
||||
((char=? #\x ch) (iter (cons ch chl) ty 16 1 (read-char)))
|
||||
+ ((char=? #\b ch) (iter (cons ch chl) ty 2 1 (read-char)))
|
||||
(else (iter chl ty ba 1 ch))))
|
||||
((15) ;; got `.' only
|
||||
(cond
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -153,8 +153,10 @@
|
|||
(files '("lib/perl5/site_perl")))))
|
||||
(synopsis "Implementation of the Perl programming language")
|
||||
(description
|
||||
"Perl 5 is a highly capable, feature-rich programming language with over
|
||||
24 years of development.")
|
||||
"Perl is a general-purpose programming language originally developed for
|
||||
text manipulation and now used for a wide range of tasks including system
|
||||
administration, web development, network programming, GUI development, and
|
||||
more.")
|
||||
(home-page "http://www.perl.org/")
|
||||
(license gpl1+))) ; or "Artistic"
|
||||
|
||||
|
@ -1369,7 +1371,7 @@ supports XML, YAML, JSON, Apache-style configuration, and Perl code.")
|
|||
(define-public perl-config-autoconf
|
||||
(package
|
||||
(name "perl-config-autoconf")
|
||||
(version "0.315")
|
||||
(version "0.317")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -1377,7 +1379,7 @@ supports XML, YAML, JSON, Apache-style configuration, and Perl code.")
|
|||
"Config-AutoConf-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0h39x9rzrhhilpg8yxlzpka269qrzsjg0iy0c1b9xflqlvhx2g2b"))))
|
||||
"1qcwib4yaml5z2283qy5khjcydyibklsnk8zrk9wzdzc5wnv5r01"))))
|
||||
(build-system perl-build-system)
|
||||
(propagated-inputs
|
||||
`(("perl-capture-tiny" ,perl-capture-tiny)))
|
||||
|
@ -2140,7 +2142,7 @@ hours, minutes, seconds, and time zones.")
|
|||
(define-public perl-datetime
|
||||
(package
|
||||
(name "perl-datetime")
|
||||
(version "1.49")
|
||||
(version "1.50")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -2148,7 +2150,7 @@ hours, minutes, seconds, and time zones.")
|
|||
"DateTime-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0hbw4zq1562slnz7g7hyhfhyq98dzkk3i5g21x3xra5cvfix93kh"))))
|
||||
"165iqk1xvhs5j0kzsipa7aqycx3h37wqsl2r4jl104yqvmqhqszd"))))
|
||||
(build-system perl-build-system)
|
||||
(native-inputs
|
||||
`(("perl-cpan-meta-check" ,perl-cpan-meta-check)
|
||||
|
@ -3128,7 +3130,7 @@ only about 40% as many lines of code and with zero non-core dependencies.")
|
|||
(define-public perl-extutils-installpaths
|
||||
(package
|
||||
(name "perl-extutils-installpaths")
|
||||
(version "0.011")
|
||||
(version "0.012")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -3136,7 +3138,7 @@ only about 40% as many lines of code and with zero non-core dependencies.")
|
|||
"ExtUtils-InstallPaths-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0z06y0fhx9hy9x01abb7s2xdbqrh9x4ps7avmlf4bwfwih2gl2bn"))))
|
||||
"1v9lshfhm9ck4p0v77arj5f7haj1mmkqal62lgzzvcds6wq5www4"))))
|
||||
(build-system perl-build-system)
|
||||
(propagated-inputs
|
||||
`(("perl-extutils-config" ,perl-extutils-config)))
|
||||
|
@ -3192,7 +3194,7 @@ XS interface besides the perl one.")
|
|||
(define-public perl-extutils-helpers
|
||||
(package
|
||||
(name "perl-extutils-helpers")
|
||||
(version "0.022")
|
||||
(version "0.026")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -3200,7 +3202,7 @@ XS interface besides the perl one.")
|
|||
"ExtUtils-Helpers-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"15dalfwmpfmifw312i5pwiai8134pxf7b2804shlqhdk1xqczy6k"))))
|
||||
"05ilqcj1rg5izr09dsqmy5di4fvq6ph4k0chxks7qmd4j1kip46y"))))
|
||||
(build-system perl-build-system)
|
||||
(home-page "https://metacpan.org/release/ExtUtils-Helpers")
|
||||
(synopsis "Various portability utilities for module builders")
|
||||
|
@ -3772,7 +3774,7 @@ single-letter approach, is provided but not enabled by default.")
|
|||
(define-public perl-getopt-long-descriptive
|
||||
(package
|
||||
(name "perl-getopt-long-descriptive")
|
||||
(version "0.102")
|
||||
(version "0.103")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -3780,7 +3782,7 @@ single-letter approach, is provided but not enabled by default.")
|
|||
"Getopt-Long-Descriptive-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0ii8xafvlph5vzcqp3dpc83lg7nkg3l1l2hmqdf5382a567vkm4s"))))
|
||||
"1cpl240qxmh7jf85ai9sfkp3nzm99syya4jxidizp7aa83kvmqbh"))))
|
||||
(build-system perl-build-system)
|
||||
(native-inputs
|
||||
`(("perl-cpan-meta-check" ,perl-cpan-meta-check)
|
||||
|
@ -6324,7 +6326,7 @@ anything that looks like a method.")
|
|||
(define-public perl-namespace-clean
|
||||
(package
|
||||
(name "perl-namespace-clean")
|
||||
(version "0.25")
|
||||
(version "0.27")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -6332,7 +6334,7 @@ anything that looks like a method.")
|
|||
"namespace-clean-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"016dds70ql1mp18b07chkxiy4drn976ibnbshqc2hmhrh9xjnsll"))))
|
||||
"17dg64pd4bwi2ad3p8ykwys1zha7kg8a8ykvks7wfg8q7qyah44a"))))
|
||||
(build-system perl-build-system)
|
||||
(propagated-inputs
|
||||
`(("perl-package-stash" ,perl-package-stash)
|
||||
|
@ -6704,7 +6706,7 @@ checking parameters easier.")
|
|||
(define-public perl-params-validate
|
||||
(package
|
||||
(name "perl-params-validate")
|
||||
(version "1.26")
|
||||
(version "1.29")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -6712,7 +6714,7 @@ checking parameters easier.")
|
|||
"Params-Validate-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1vbj78qd46ip09i06dsbb62jfwpzp4bg7yi617v98nvim77w66l2"))))
|
||||
"0cwpf8yxwyxbnwhf6rx4wnaq1q38j38i34a78a005shb8gxqv9j9"))))
|
||||
(build-system perl-build-system)
|
||||
(native-inputs
|
||||
`(("perl-module-build" ,perl-module-build)
|
||||
|
@ -6897,7 +6899,7 @@ for correctness.")
|
|||
(define-public perl-pegex
|
||||
(package
|
||||
(name "perl-pegex")
|
||||
(version "0.64")
|
||||
(version "0.67")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
|
@ -6906,7 +6908,7 @@ for correctness.")
|
|||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1kb7y2cc3nibbn8i8y3vrzz1f9h3892nbf8jj88c5fdgpmj05q17"))))
|
||||
"149015ra2figalxrnj72fz02qc5cm96xg6x8d6kmyanfmrrxzf9w"))))
|
||||
(build-system perl-build-system)
|
||||
(native-inputs
|
||||
`(("perl-file-sharedir-install" ,perl-file-sharedir-install)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2016, 2017 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
|
@ -93,15 +93,7 @@ scientific data.")
|
|||
"guile-charting-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"0w5qiyv9v0ip5li22x762bm48g8xnw281w66iyw094zdw611pb2m"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
;; Use the standard location for modules.
|
||||
(substitute* "Makefile.in"
|
||||
(("godir = .*$")
|
||||
"godir = $(moddir)\n"))
|
||||
#t))))
|
||||
"0w5qiyv9v0ip5li22x762bm48g8xnw281w66iyw094zdw611pb2m"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
(inputs `(("guile" ,guile-2.2)))
|
||||
|
|
|
@ -6186,14 +6186,14 @@ printing of sub-tables by specifying a row range.")
|
|||
(define-public python-tables
|
||||
(package
|
||||
(name "python-tables")
|
||||
(version "3.2.2")
|
||||
(version "3.4.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "tables" version))
|
||||
(sha256
|
||||
(base32
|
||||
"117s6w7s3yxafpmf3zz3svana7xfrsviw01va1xp7h8ylx8v6r1m"))
|
||||
"0affz7k8babh8wdmsgrz5jxrd569by2w8ffimcxs9wiaf5rw1idx"))
|
||||
(modules '((guix build utils)))
|
||||
(snippet
|
||||
'(begin
|
||||
|
|
|
@ -292,7 +292,7 @@ history mechanism, job control and a C-like syntax.")
|
|||
(define-public zsh
|
||||
(package
|
||||
(name "zsh")
|
||||
(version "5.5.1")
|
||||
(version "5.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (list (string-append
|
||||
|
@ -303,7 +303,7 @@ history mechanism, job control and a C-like syntax.")
|
|||
".tar.xz")))
|
||||
(sha256
|
||||
(base32
|
||||
"105aqkdfsdxc4531anrj2zis2ywz6icagjam9lsc235yzh48ihz1"))))
|
||||
"1mp6h2452z2029n12mxipjv4b0cc8i8sb72g8p8jklg8275iysvl"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments `(#:configure-flags '("--with-tcsetpgrp" "--enable-pcre")
|
||||
#:phases
|
||||
|
@ -336,6 +336,19 @@ history mechanism, job control and a C-like syntax.")
|
|||
(("command -pv") "command -v")
|
||||
(("command -p") "command ")
|
||||
(("'command' -p") "'command' "))
|
||||
;; This file is ISO-8859-1 encoded.
|
||||
(with-fluids ((%default-port-encoding #f))
|
||||
(substitute* "Test/A05execution.ztst"
|
||||
;; Help it find `sh`
|
||||
(("PATH=/bin:\\$\\{ZTST_testdir\\}/command.tmp/ tstcmd-slashless")
|
||||
(string-append "PATH=/bin:"
|
||||
(assoc-ref %build-inputs "bash") "/bin:"
|
||||
"${ZTST_testdir}/command.tmp/ tstcmd-slashless"))
|
||||
;; Help it find `echo`
|
||||
(("PATH=/bin:\\$\\{ZTST_testdir\\}/command.tmp tstcmd-arg")
|
||||
(string-append "PATH=/bin:"
|
||||
(assoc-ref %build-inputs "coreutils") "/bin:"
|
||||
"PATH=/bin:${ZTST_testdir}/command.tmp tstcmd-arg"))))
|
||||
#t)))))
|
||||
(native-inputs `(("autoconf" ,autoconf)))
|
||||
(inputs `(("ncurses" ,ncurses)
|
||||
|
|
|
@ -960,14 +960,14 @@ solution for sending email, including attachments, from within R.")
|
|||
(define-public r-stringi
|
||||
(package
|
||||
(name "r-stringi")
|
||||
(version "1.2.3")
|
||||
(version "1.2.4")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "stringi" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1sgg4krw03qkz1n4dwiya0djggk7giwd0w21qlp0pfjqi0rxq6qx"))))
|
||||
"1y46xab7g1lsjmilp4hbl7pjad6pcxp66hdj8wnfdg9518h0lmq1"))))
|
||||
(build-system r-build-system)
|
||||
(inputs `(("icu4c" ,icu4c)))
|
||||
(native-inputs `(("pkg-config" ,pkg-config)))
|
||||
|
@ -1033,19 +1033,17 @@ using just two functions: melt and dcast (or acast).")
|
|||
(define-public r-scales
|
||||
(package
|
||||
(name "r-scales")
|
||||
(version "0.5.0")
|
||||
(version "1.0.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "scales" version))
|
||||
(sha256
|
||||
(base32 "0zg9wfzmsdjxpbld0nzv7hcpq5r0wazqxmn7grvvif2agj0w1z6v"))))
|
||||
(base32 "0353dkh3d7x78463c6ds80hcml59lrqwr8rlv82a8dnkxla4l7qc"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-dichromat" ,r-dichromat)
|
||||
("r-labeling" ,r-labeling)
|
||||
`(("r-labeling" ,r-labeling)
|
||||
("r-munsell" ,r-munsell)
|
||||
("r-plyr" ,r-plyr)
|
||||
("r-rcolorbrewer" ,r-rcolorbrewer)
|
||||
("r-rcpp" ,r-rcpp)
|
||||
("r-r6" ,r-r6)
|
||||
|
@ -1251,13 +1249,13 @@ for template use among CRAN packages.")
|
|||
(define-public r-evaluate
|
||||
(package
|
||||
(name "r-evaluate")
|
||||
(version "0.10.1")
|
||||
(version "0.11")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "evaluate" version))
|
||||
(sha256
|
||||
(base32
|
||||
"070vvmnbdlp7sz2zhza7fhd2a6mlwiln8fn4hyzhsiizbn4n79y9"))))
|
||||
"1k8vcd4vsgg0hf7kdz8rlqp1dx4ygvg35aj4n3ay50kdnpzhaj5h"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-stringr" ,r-stringr)))
|
||||
|
@ -1356,13 +1354,13 @@ syntax that can be converted to XHTML or other formats.")
|
|||
(define-public r-yaml
|
||||
(package
|
||||
(name "r-yaml")
|
||||
(version "2.1.19")
|
||||
(version "2.2.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "yaml" version))
|
||||
(sha256
|
||||
(base32
|
||||
"04bzrnfgbpk0rhkvzwp3k3ip7jpq26bjxz71bx5mwxmcjdb07nz5"))))
|
||||
"0in562nd0i23cg91a8kdbqgim656fgscykwi0icsnq53xj3srg2m"))))
|
||||
(build-system r-build-system)
|
||||
(home-page "https://cran.r-project.org/web/packages/yaml/")
|
||||
(synopsis "Methods to convert R data to YAML and back")
|
||||
|
@ -1656,14 +1654,14 @@ database.")
|
|||
(define-public r-dbplyr
|
||||
(package
|
||||
(name "r-dbplyr")
|
||||
(version "1.2.1")
|
||||
(version "1.2.2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "dbplyr" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1nwrls9c3kc9q7405jp6b9sh23642sz13yw55iikgw134shffj5k"))))
|
||||
"0j5w6a1qim972kv4vmvinp3j50yr4idmm9cd3w7y3zsz0nq0nhcx"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-assertthat" ,r-assertthat)
|
||||
|
@ -1789,17 +1787,17 @@ and fast file reading.")
|
|||
(define-public r-xtable
|
||||
(package
|
||||
(name "r-xtable")
|
||||
(version "1.8-2")
|
||||
(version "1.8-3")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "xtable" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0398qkpvlw3dv0myz4mjcyqwpwc2m31l127r8vdzwc71wb6s28qn"))))
|
||||
"09f311gq9g7dzf8jdvcx72j11xb7p00jlg066jjbpa6pz3zv1cjk"))))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr)))
|
||||
`(("r-knitr" ,r-knitr))) ; for vignettes
|
||||
(home-page "http://xtable.r-forge.r-project.org/")
|
||||
(synopsis "Export R tables to LaTeX or HTML")
|
||||
(description
|
||||
|
@ -1936,14 +1934,14 @@ chain.")
|
|||
(define-public r-ade4
|
||||
(package
|
||||
(name "r-ade4")
|
||||
(version "1.7-11")
|
||||
(version "1.7-13")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ade4" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0wm54wcpn87rdh6vyw04cr8vgba899y6jsl61f22bmlvx6d7kkac"))))
|
||||
"16z9jk4qj35ghsk4lwmq241dgc770y8a70dlmp9q4gz6d8ssgl7m"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-mass" ,r-mass)))
|
||||
|
@ -2237,24 +2235,28 @@ tables, autolinks and strikethrough text.")
|
|||
(define-public r-roxygen2
|
||||
(package
|
||||
(name "r-roxygen2")
|
||||
(version "6.0.1")
|
||||
(version "6.1.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "roxygen2" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0xpzziminf225kjwhyl51kgkzhplyzhk5farhf5s822krl2xqbfj"))))
|
||||
"0ji9k4s1bvfbl8wimfqj1lqr33h1claaz30vb5pgksxyg77j5xaa"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-brew" ,r-brew)
|
||||
("r-commonmark" ,r-commonmark)
|
||||
("r-desc" ,r-desc)
|
||||
("r-digest" ,r-digest)
|
||||
("r-pkgload" ,r-pkgload)
|
||||
("r-purrr" ,r-purrr)
|
||||
("r-r6" ,r-r6)
|
||||
("r-rcpp" ,r-rcpp)
|
||||
("r-stringi" ,r-stringi)
|
||||
("r-stringr" ,r-stringr)
|
||||
("r-xml2" ,r-xml2)))
|
||||
(native-inputs
|
||||
`(("r-knitr" ,r-knitr))) ; for vignettes
|
||||
(home-page "https://github.com/klutometis/roxygen")
|
||||
(synopsis "In-source documentation system for R")
|
||||
(description
|
||||
|
@ -2320,13 +2322,13 @@ functions make it easy to control additional request components.")
|
|||
(define-public r-git2r
|
||||
(package
|
||||
(name "r-git2r")
|
||||
(version "0.21.0")
|
||||
(version "0.23.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "git2r" version))
|
||||
(sha256
|
||||
(base32
|
||||
"11xgddmxzh9cy85k8fb90il43qswpvryz0h9r0j1gbclfg2f9004"))))
|
||||
"01250jz255fnyy2ap90nskvzhd8nhlmbhwgpvb43mk1fax077lrz"))))
|
||||
(build-system r-build-system)
|
||||
;; This R package contains modified sources of libgit2. This modified
|
||||
;; version of libgit2 is built as the package is built. Hence libgit2 is
|
||||
|
@ -2335,6 +2337,8 @@ functions make it easy to control additional request components.")
|
|||
`(("libssh2" ,libssh2)
|
||||
("openssl" ,openssl)
|
||||
("zlib" ,zlib)))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(home-page "https://github.com/ropensci/git2r")
|
||||
(synopsis "Access Git repositories with R")
|
||||
(description
|
||||
|
@ -2514,13 +2518,13 @@ well as additional utilities such as panel and axis annotation functions.")
|
|||
(define-public r-rcpparmadillo
|
||||
(package
|
||||
(name "r-rcpparmadillo")
|
||||
(version "0.8.500.0")
|
||||
(version "0.9.100.5.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "RcppArmadillo" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1sh36dx6inmb56m40nigy94gxlgjva816qnlmjwg7y2bdvqj8vsi"))))
|
||||
"1iyjqhfjip1nxrkllzh7r1m01jjnx7cahqkf3s557w34p987f2l1"))))
|
||||
(properties `((upstream-name . "RcppArmadillo")))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
|
@ -2629,11 +2633,7 @@ certain criterion, e.g., it contains a certain regular file.")
|
|||
("r-stringr" ,r-stringr)
|
||||
("r-tinytex" ,r-tinytex)
|
||||
("r-yaml" ,r-yaml)
|
||||
;; rmarkdown works with the 2.x release of Pandoc, but with degraded
|
||||
;; functionality. For example, tabbed plots do not currently work with
|
||||
;; Pandoc 2. The authors of rmarkdown recommend the use of Pandoc 1
|
||||
;; for the time being.
|
||||
("ghc-pandoc" ,ghc-pandoc-1)))
|
||||
("ghc-pandoc" ,ghc-pandoc)))
|
||||
(home-page "http://rmarkdown.rstudio.com")
|
||||
(synopsis "Convert R Markdown documents into a variety of formats")
|
||||
(description
|
||||
|
@ -2799,13 +2799,13 @@ ldap, and also supports cookies, redirects, authentication, etc.")
|
|||
(define-public r-xml
|
||||
(package
|
||||
(name "r-xml")
|
||||
(version "3.98-1.11")
|
||||
(version "3.98-1.16")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "XML" version))
|
||||
(sha256
|
||||
(base32
|
||||
"18izvlg2x9mzr6yb3yf02ghwbyn00frki3av4lpc44r22m4djnsh"))))
|
||||
"0nl1kk354r8snhj6p9mc74m7awvqc6akmd4y3a46y78yv3g15njp"))))
|
||||
(properties
|
||||
`((upstream-name . "XML")))
|
||||
(build-system r-build-system)
|
||||
|
@ -3281,14 +3281,14 @@ Stochastic Neighbor Embedding using a Barnes-Hut implementation.")
|
|||
(define-public r-e1071
|
||||
(package
|
||||
(name "r-e1071")
|
||||
(version "1.6-8")
|
||||
(version "1.7-0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "e1071" version))
|
||||
(sha256
|
||||
(base32
|
||||
"08n6i26nfckjpxjkzi8phhanc3ahsrirkv5rz38y2jcv7ds031pn"))))
|
||||
"0fk4pw67cw1663d0n9rf1qfdqzz8k5nqkjgp3hi5jr422qp9lsck"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-class" ,r-class)))
|
||||
|
@ -3459,13 +3459,13 @@ maintenance for package developers.")
|
|||
(define-public r-r-utils
|
||||
(package
|
||||
(name "r-r-utils")
|
||||
(version "2.6.0")
|
||||
(version "2.7.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "R.utils" version))
|
||||
(sha256
|
||||
(base32
|
||||
"03j7hrs03kyj9qrjxyp5kqv4lpqqpk6xwbkzx6j15d8928yrjr2x"))))
|
||||
"0cxhn14a57x4gcyrwpfz1d6dw4xh0jcpqkb33hx8imnr340blh7n"))))
|
||||
(properties `((upstream-name . "R.utils")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -3507,13 +3507,13 @@ persistent (on the file system).")
|
|||
(define-public r-r-rsp
|
||||
(package
|
||||
(name "r-r-rsp")
|
||||
(version "0.42.0")
|
||||
(version "0.43.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "R.rsp" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1zcq0hzi0j7fvj2rs796a1i120wbr0387vck17rrd644awwbsbm0"))))
|
||||
"0ax6781kfylx0acz0i3sqnpkxmrq73x29wwfic59ng7vj0ws0gyd"))))
|
||||
(properties `((upstream-name . "R.rsp")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
|
@ -3558,13 +3558,13 @@ t-probabilities, quantiles, random deviates and densities.")
|
|||
(define-public r-matrixstats
|
||||
(package
|
||||
(name "r-matrixstats")
|
||||
(version "0.53.1")
|
||||
(version "0.54.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "matrixStats" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0bkiz5fm09d3512mfr2ymj9qsb1b8aic5l5m6fkaf5j7nsgvqw6z"))))
|
||||
"0vx00ldsg2zvdrjn49jxczk2c9iaabgvzgpdka5j02ihh7hv83cg"))))
|
||||
(properties `((upstream-name . "matrixStats")))
|
||||
(build-system r-build-system)
|
||||
(native-inputs
|
||||
|
@ -3739,13 +3739,13 @@ features present in other programming languages.")
|
|||
(define-public r-plotly
|
||||
(package
|
||||
(name "r-plotly")
|
||||
(version "4.7.1")
|
||||
(version "4.8.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "plotly" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0wj9lw7w28z8w9ip9vadv6sydjhqyg65kfiai9m3bndzz50b1m3w"))))
|
||||
"19p8pa03q9mw5vaan7r56xgd13d90ssiz0flbrkvpfrir2105ybq"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-base64enc" ,r-base64enc)
|
||||
|
@ -3761,8 +3761,10 @@ features present in other programming languages.")
|
|||
("r-jsonlite" ,r-jsonlite)
|
||||
("r-lazyeval" ,r-lazyeval)
|
||||
("r-magrittr" ,r-magrittr)
|
||||
("r-promises" ,r-promises)
|
||||
("r-purrr" ,r-purrr)
|
||||
("r-rcolorbrewer" ,r-rcolorbrewer)
|
||||
("r-rlang" ,r-rlang)
|
||||
("r-scales" ,r-scales)
|
||||
("r-tibble" ,r-tibble)
|
||||
("r-tidyr" ,r-tidyr)
|
||||
|
@ -3844,14 +3846,14 @@ character vector.")
|
|||
(define-public r-googlesheets
|
||||
(package
|
||||
(name "r-googlesheets")
|
||||
(version "0.2.2")
|
||||
(version "0.3.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "googlesheets" version))
|
||||
(sha256
|
||||
(base32
|
||||
"18q0xmxn09b52rmky7gr5flp0awndcnsgb7zcvkzvkrkvmwad52b"))))
|
||||
"11q07nxys72wkxx9mawmjyf20gvwvrb7h3gpa73h6lgh2vgrwnv8"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-cellranger" ,r-cellranger)
|
||||
|
@ -3861,6 +3863,7 @@ character vector.")
|
|||
("r-purrr" ,r-purrr)
|
||||
("r-readr" ,r-readr)
|
||||
("r-stringr" ,r-stringr)
|
||||
("r-tibble" ,r-tibble)
|
||||
("r-tidyr" ,r-tidyr)
|
||||
("r-xml2" ,r-xml2)))
|
||||
(home-page "https://github.com/jennybc/googlesheets")
|
||||
|
@ -4088,14 +4091,14 @@ Zurich, including many that are related to graphics.")
|
|||
(define-public r-gtools
|
||||
(package
|
||||
(name "r-gtools")
|
||||
(version "3.5.0")
|
||||
(version "3.8.1")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "gtools" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1xknwk9xlsj027pg0nwiizigcrsc84hdrig0jn0cgcyxj8dabdl6"))))
|
||||
"0f5syk1qq6cjq6hwymvkiyhzwa389z94722v881ipbfqkd2q8505"))))
|
||||
(build-system r-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
@ -4228,13 +4231,13 @@ mechanism.")
|
|||
(define-public r-zoo
|
||||
(package
|
||||
(name "r-zoo")
|
||||
(version "1.8-2")
|
||||
(version "1.8-3")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "zoo" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1lpwigxmi5sc23xrha4gcsccsm4yfsg0sa97y6vac3pg1lliblvx"))))
|
||||
"15jmkgwvq2mm9f09vijgx7sff8pszh90fndcwhk2vw9i0p183di0"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-lattice" ,r-lattice)))
|
||||
|
@ -4248,14 +4251,22 @@ series of numeric vectors/matrices and factors.")
|
|||
(define-public r-ztable
|
||||
(package
|
||||
(name "r-ztable")
|
||||
(version "0.1.8")
|
||||
(version "0.2.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ztable" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1hk5k9614n52dpfrhdws06w4gvwhnz8q47x4cwxx88qmrzm8z2m3"))))
|
||||
"0g7khk5ifsdh9p31wlwh2l5mn1hzxzpv6qcn1wh34vsfjdmijjwy"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-flextable" ,r-flextable)
|
||||
("r-magrittr" ,r-magrittr)
|
||||
("r-moonbook" ,r-moonbook)
|
||||
("r-officer" ,r-officer)
|
||||
("r-rcolorbrewer" ,r-rcolorbrewer)
|
||||
("r-scales" ,r-scales)
|
||||
("r-stringr" ,r-stringr)))
|
||||
(home-page "https://cran.r-project.org/web/packages/ztable")
|
||||
(synopsis "Zebra-striped tables in LaTeX and HTML formats for R")
|
||||
(description
|
||||
|
@ -4350,19 +4361,20 @@ data at that region, and avoids over-plotting.")
|
|||
(define-public r-ggthemes
|
||||
(package
|
||||
(name "r-ggthemes")
|
||||
(version "3.5.0")
|
||||
(version "4.0.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ggthemes" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0drbzzb4i5jq1579fx1wmgh87ybnswjn7srak2l8g771ip49xwb8"))))
|
||||
"0y6570wv135sf7pv57l7bqilzw47rziaqx4vsk45pf1w4lmj0w8b"))))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-assertthat" ,r-assertthat)
|
||||
("r-colorspace" ,r-colorspace)
|
||||
("r-ggplot2" ,r-ggplot2)
|
||||
("r-scales" ,r-scales)))
|
||||
`(("r-ggplot2" ,r-ggplot2)
|
||||
("r-purrr" ,r-purrr)
|
||||
("r-scales" ,r-scales)
|
||||
("r-stringr" ,r-stringr)
|
||||
("r-tibble" ,r-tibble)))
|
||||
(home-page "https://cran.rstudio.com/web/packages/ggthemes")
|
||||
(synopsis "Extra themes, scales and geoms for @code{ggplot2}")
|
||||
(description "This package provides extra themes and scales for
|
||||
|
@ -4401,13 +4413,13 @@ dispersion modeling and Tweedie power-law families.")
|
|||
(define-public r-rann
|
||||
(package
|
||||
(name "r-rann")
|
||||
(version "2.5.1")
|
||||
(version "2.6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "RANN" version))
|
||||
(sha256
|
||||
(base32
|
||||
"0il5i99vbcagnxvb15af5n37g04a4q1x96bz73zh3jhki9fpw9vm"))))
|
||||
"1r6rivh9ba4gwnzryip0aiwsbm46zma7nvd9z5y456p2dgzp9lii"))))
|
||||
(properties
|
||||
`((upstream-name . "RANN")))
|
||||
(build-system r-build-system)
|
||||
|
@ -4723,14 +4735,14 @@ can be efficiently implemented directly in the R language.")
|
|||
(define-public r-robustbase
|
||||
(package
|
||||
(name "r-robustbase")
|
||||
(version "0.93-0")
|
||||
(version "0.93-2")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "robustbase" version))
|
||||
(sha256
|
||||
(base32
|
||||
"130pzibn5cb8mycv8byc6npzcpddghz8m7jqwk15qmx4g3cj8zgy"))))
|
||||
"1632p73iv9iqqm0v3k9rfv9way0him3fl35si1nly9wi5kpq5ci7"))))
|
||||
(build-system r-build-system)
|
||||
(inputs
|
||||
`(("gfortran" ,gfortran)))
|
||||
|
@ -4999,18 +5011,19 @@ decompositions of such matrices, and solutions of linear systems.")
|
|||
(define-public r-modelmetrics
|
||||
(package
|
||||
(name "r-modelmetrics")
|
||||
(version "1.1.0")
|
||||
(version "1.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "ModelMetrics" version))
|
||||
(sha256
|
||||
(base32
|
||||
"119xxmzb5biq7k1yxqsf0jmmarmfn6lds9x9hfgv593xlpym6za8"))))
|
||||
"1sgdyrf6fbsn18gk8slir4a1yhv133kfhyg2crfs759nff4aw89h"))))
|
||||
(properties `((upstream-name . "ModelMetrics")))
|
||||
(build-system r-build-system)
|
||||
(propagated-inputs
|
||||
`(("r-rcpp" ,r-rcpp)))
|
||||
`(("r-rcpp" ,r-rcpp)
|
||||
("r-data-table" ,r-data-table)))
|
||||
(home-page "https://cran.r-project.org/web/packages/ModelMetrics")
|
||||
(synopsis "Rapid calculation of model metrics")
|
||||
(description
|
||||
|
|
|
@ -86,14 +86,14 @@ older or slower computers and embedded systems.")
|
|||
(define-public links
|
||||
(package
|
||||
(name "links")
|
||||
(version "2.16")
|
||||
(version "2.17")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://links.twibright.com/download/"
|
||||
name "-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"0gsa2gpb1grhssl5jzpc5pa0zi21mxi8g25rh5bacl70slw31w42"))))
|
||||
"0dh2gbzcw8kxy81z4ggsynibnqs56b83vy8qgz7illsag1irff6q"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:phases
|
||||
|
|
|
@ -3823,15 +3823,17 @@ CDF, Atom 0.3, and Atom 1.0 feeds.")
|
|||
(define-public r-httpuv
|
||||
(package
|
||||
(name "r-httpuv")
|
||||
(version "1.4.4.1")
|
||||
(version "1.4.5")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (cran-uri "httpuv" version))
|
||||
(sha256
|
||||
(base32
|
||||
"12kwq10xa8glrip7rai9xb4hnpysng00g2l0rw7swfzq5lk4z966"))))
|
||||
"1ddpcarzf694h0gy5pdz7l5glqfv4hr9dmxb4vw7yqd0bga174gi"))))
|
||||
(build-system r-build-system)
|
||||
(native-inputs `(("r-rcpp" ,r-rcpp)))
|
||||
(native-inputs
|
||||
`(("r-rcpp" ,r-rcpp)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(propagated-inputs
|
||||
`(("r-bh" ,r-bh)
|
||||
("r-later" ,r-later)
|
||||
|
@ -6706,10 +6708,11 @@ compressed JSON header blocks.
|
|||
(license l:expat)))
|
||||
|
||||
(define-public hpcguix-web
|
||||
(let ((commit "87cb51611c0f1fd3863b830614ab1364599cf1ca"))
|
||||
(let ((commit "9ff40fcc77f248901d861756dbbddc80270c380c")
|
||||
(revision "2"))
|
||||
(package
|
||||
(name "hpcguix-web")
|
||||
(version (git-version "0.0.1" "1" commit))
|
||||
(version (git-version "0.0.1" revision commit))
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
|
@ -6718,7 +6721,7 @@ compressed JSON header blocks.
|
|||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"0p66fl8r3v73v13fqg9rbqbzbdzvyznchxbq2s1jwq6qfsn2w3gr"))))
|
||||
"0lxcj9s3wxrv1l7lrxxx374jwzx7h60gxwkbgr46lzcbgvb3k26s"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
`(#:modules ((guix build gnu-build-system)
|
||||
|
@ -6739,10 +6742,13 @@ compressed JSON header blocks.
|
|||
(let* ((out (assoc-ref outputs "out"))
|
||||
(guix (assoc-ref inputs "guix"))
|
||||
(guile (assoc-ref inputs "guile"))
|
||||
(gcrypt (assoc-ref inputs "guile-gcrypt"))
|
||||
(git (assoc-ref inputs "guile-git"))
|
||||
(bs (assoc-ref inputs "guile-bytestructures"))
|
||||
(json (assoc-ref inputs "guile-json"))
|
||||
(guile-cm (assoc-ref inputs
|
||||
"guile-commonmark"))
|
||||
(deps (list guile guile-cm guix json))
|
||||
(deps (list guile gcrypt git bs guile-cm guix json))
|
||||
(effective
|
||||
(read-line
|
||||
(open-pipe* OPEN_READ
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
|
||||
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
|
||||
;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -6170,3 +6171,44 @@ and embedded platforms.")
|
|||
cursor to any point on the screen with a few key strokes. It also simulates
|
||||
mouse click. You can do everything mouse can do with a keyboard.")
|
||||
(license license:bsd-3)))
|
||||
|
||||
(define-public transset-df
|
||||
(package
|
||||
(name "transset-df")
|
||||
(version "6")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "http://forchheimer.se/" name "/" name "-" version
|
||||
".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1vnykwwrv75miigbhmcwxniw8xnhsdyzhqydip2m9crxi2lwhqs5"))))
|
||||
(build-system gnu-build-system)
|
||||
(arguments
|
||||
'(#:phases
|
||||
(modify-phases %standard-phases
|
||||
(add-after 'unpack 'setenv
|
||||
(lambda _
|
||||
(setenv "CC" (which "gcc"))
|
||||
#t))
|
||||
(delete 'configure)
|
||||
(delete 'check)
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(bin (string-append out "/bin")))
|
||||
(install-file "transset-df" bin)
|
||||
#t))))))
|
||||
(native-inputs
|
||||
`(("pkg-config" ,pkg-config)))
|
||||
(inputs `(("libxcomposite" ,libxcomposite)
|
||||
("libxdamager" ,libxdamage)
|
||||
("libxrender" ,libxrender)))
|
||||
(synopsis "Set the transparency of X11 windows")
|
||||
(description "The @command{transset-df} command allows you to set the
|
||||
opacity of X11 windows. This patched version of X.Org's @command{transset}
|
||||
adds functionality, including: selecting window by clicking (as transset),
|
||||
selecting windows by pointing select actual focused X11 window, selecting by
|
||||
window name or id, forcing toggle, increase or decrease opacity.")
|
||||
(home-page "http://forchheimer.se/transset-df/")
|
||||
(license license:x11)))
|
||||
|
|
|
@ -732,13 +732,23 @@ instantiated; other missing services lead to a
|
|||
instances
|
||||
(service-type-extensions (service-kind svc))))
|
||||
|
||||
(let ((instances (fold (lambda (service result)
|
||||
(vhash-consq (service-kind service) service
|
||||
result))
|
||||
vlist-null services)))
|
||||
(fold2 adjust-service-list
|
||||
services instances
|
||||
services)))
|
||||
(let loop ((services services))
|
||||
(define instances
|
||||
(fold (lambda (service result)
|
||||
(vhash-consq (service-kind service) service
|
||||
result))
|
||||
vlist-null services))
|
||||
|
||||
(define adjusted
|
||||
(fold2 adjust-service-list
|
||||
services instances
|
||||
services))
|
||||
|
||||
;; If we instantiated services, they might in turn depend on missing
|
||||
;; services. Loop until we've reached fixed point.
|
||||
(if (= (length adjusted) (vlist-length instances))
|
||||
adjusted
|
||||
(loop adjusted))))
|
||||
|
||||
(define* (fold-services services
|
||||
#:key (target-type system-service-type))
|
||||
|
|
|
@ -608,16 +608,14 @@ of index files."
|
|||
(default-nginx-config config))
|
||||
#$@args)
|
||||
(match '#$args
|
||||
(("-s" . _) #t)
|
||||
(("-s" . _) #f)
|
||||
(_
|
||||
(let loop ((duration 0))
|
||||
;; https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864/comments/7
|
||||
(sleep duration)
|
||||
(if (file-exists? #$pid-file)
|
||||
(let ((pid (call-with-input-file #$pid-file read)))
|
||||
;; it could be #<eof>
|
||||
(if (integer? pid) pid (loop 1)))
|
||||
(loop 1)))))))))
|
||||
;; When FILE is true, we cannot be sure that PID-FILE will
|
||||
;; be created, so assume it won't show up. When FILE is
|
||||
;; false, read PID-FILE.
|
||||
#$(if file
|
||||
#~#t
|
||||
#~(read-pid-file #$pid-file))))))))
|
||||
|
||||
;; TODO: Add 'reload' action.
|
||||
(list (shepherd-service
|
||||
|
@ -967,7 +965,8 @@ a webserver.")
|
|||
#:user "hpcguix-web"
|
||||
#:group "hpcguix-web"
|
||||
#:environment-variables
|
||||
(list "XDG_CACHE_HOME=/var/cache")))
|
||||
(list "XDG_CACHE_HOME=/var/cache"
|
||||
"SSL_CERT_DIR=/etc/ssl/certs")))
|
||||
(stop #~(make-kill-destructor))))))
|
||||
|
||||
(define hpcguix-web-service-type
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
#:use-module (guix modules)
|
||||
#:use-module (guix scripts pack)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix base32)
|
||||
#:use-module ((guix self) #:select (make-config.scm))
|
||||
|
||||
|
@ -43,7 +43,7 @@
|
|||
#:use-module (gnu packages cdrom)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages guile)
|
||||
#:autoload (gnu packages gnupg) (libgcrypt)
|
||||
#:autoload (gnu packages gnupg) (guile-gcrypt)
|
||||
#:use-module (gnu packages gawk)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages less)
|
||||
|
@ -124,10 +124,12 @@
|
|||
(('gnu rest ...) #t)
|
||||
(rest #f)))
|
||||
|
||||
(define guile-sqlite3&co
|
||||
;; Guile-SQLite3 and its propagated inputs.
|
||||
(cons guile-sqlite3
|
||||
(package-transitive-propagated-inputs guile-sqlite3)))
|
||||
(define gcrypt-sqlite3&co
|
||||
;; Guile-Gcrypt, Guile-SQLite3, and their propagated inputs.
|
||||
(append-map (lambda (package)
|
||||
(cons package
|
||||
(package-transitive-propagated-inputs package)))
|
||||
(list guile-gcrypt guile-sqlite3)))
|
||||
|
||||
(define* (expression->derivation-in-linux-vm name exp
|
||||
#:key
|
||||
|
@ -164,10 +166,6 @@ based on the size of the closure of REFERENCES-GRAPHS.
|
|||
When REFERENCES-GRAPHS is true, it must be a list of file name/store path
|
||||
pairs, as for `derivation'. The files containing the reference graphs are
|
||||
made available under the /xchg CIFS share."
|
||||
(define config
|
||||
;; (guix config) module for consumption by (guix gcrypt).
|
||||
(make-config.scm #:libgcrypt libgcrypt))
|
||||
|
||||
(define user-builder
|
||||
(program-file "builder-in-linux-vm" exp))
|
||||
|
||||
|
@ -195,12 +193,14 @@ made available under the /xchg CIFS share."
|
|||
|
||||
(define builder
|
||||
;; Code that launches the VM that evaluates EXP.
|
||||
(with-extensions guile-sqlite3&co
|
||||
(with-extensions gcrypt-sqlite3&co
|
||||
(with-imported-modules `(,@(source-module-closure
|
||||
'((guix build utils)
|
||||
(gnu build vm))
|
||||
#:select? not-config?)
|
||||
((guix config) => ,config))
|
||||
|
||||
;; For consumption by (gnu store database).
|
||||
((guix config) => ,(make-config.scm)))
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(gnu build vm))
|
||||
|
@ -255,9 +255,6 @@ made available under the /xchg CIFS share."
|
|||
"Return a bootable, stand-alone iso9660 image.
|
||||
|
||||
INPUTS is a list of inputs (as for packages)."
|
||||
(define config
|
||||
(make-config.scm #:libgcrypt libgcrypt))
|
||||
|
||||
(define schema
|
||||
(and register-closures?
|
||||
(local-file (search-path %load-path
|
||||
|
@ -265,12 +262,12 @@ INPUTS is a list of inputs (as for packages)."
|
|||
|
||||
(expression->derivation-in-linux-vm
|
||||
name
|
||||
(with-extensions guile-sqlite3&co
|
||||
(with-extensions gcrypt-sqlite3&co
|
||||
(with-imported-modules `(,@(source-module-closure '((gnu build vm)
|
||||
(guix store database)
|
||||
(guix build utils))
|
||||
#:select? not-config?)
|
||||
((guix config) => ,config))
|
||||
((guix config) => ,(make-config.scm)))
|
||||
#~(begin
|
||||
(use-modules (gnu build vm)
|
||||
(guix store database)
|
||||
|
@ -347,9 +344,6 @@ INPUTS is a list of inputs (as for packages). When COPY-INPUTS? is true, copy
|
|||
all of INPUTS into the image being built. When REGISTER-CLOSURES? is true,
|
||||
register INPUTS in the store database of the image so that Guix can be used in
|
||||
the image."
|
||||
(define config
|
||||
(make-config.scm #:libgcrypt libgcrypt))
|
||||
|
||||
(define schema
|
||||
(and register-closures?
|
||||
(local-file (search-path %load-path
|
||||
|
@ -357,13 +351,13 @@ the image."
|
|||
|
||||
(expression->derivation-in-linux-vm
|
||||
name
|
||||
(with-extensions guile-sqlite3&co
|
||||
(with-extensions gcrypt-sqlite3&co
|
||||
(with-imported-modules `(,@(source-module-closure '((gnu build vm)
|
||||
(gnu build bootloader)
|
||||
(guix store database)
|
||||
(guix build utils))
|
||||
#:select? not-config?)
|
||||
((guix config) => ,config))
|
||||
((guix config) => ,(make-config.scm)))
|
||||
#~(begin
|
||||
(use-modules (gnu build bootloader)
|
||||
(gnu build vm)
|
||||
|
@ -462,10 +456,6 @@ makes sense when you want to build a GuixSD Docker image that has Guix
|
|||
installed inside of it. If you don't need Guix (e.g., your GuixSD Docker
|
||||
image just contains a web server that is started by the Shepherd), then you
|
||||
should set REGISTER-CLOSURES? to #f."
|
||||
(define config
|
||||
;; (guix config) module for consumption by (guix gcrypt).
|
||||
(make-config.scm #:libgcrypt libgcrypt))
|
||||
|
||||
(define schema
|
||||
(and register-closures?
|
||||
(local-file (search-path %load-path
|
||||
|
@ -475,8 +465,8 @@ should set REGISTER-CLOSURES? to #f."
|
|||
(name -> (string-append name ".tar.gz"))
|
||||
(graph -> "system-graph"))
|
||||
(define build
|
||||
(with-extensions (cons guile-json ;for (guix docker)
|
||||
guile-sqlite3&co) ;for (guix store database)
|
||||
(with-extensions (cons guile-json ;for (guix docker)
|
||||
gcrypt-sqlite3&co) ;for (guix store database)
|
||||
(with-imported-modules `(,@(source-module-closure
|
||||
'((guix docker)
|
||||
(guix store database)
|
||||
|
@ -484,7 +474,7 @@ should set REGISTER-CLOSURES? to #f."
|
|||
(guix build store-copy)
|
||||
(gnu build vm))
|
||||
#:select? not-config?)
|
||||
((guix config) => ,config))
|
||||
((guix config) => ,(make-config.scm)))
|
||||
#~(begin
|
||||
(use-modules (guix docker)
|
||||
(guix build utils)
|
||||
|
@ -539,17 +529,42 @@ should set REGISTER-CLOSURES? to #f."
|
|||
(define* (operating-system-uuid os #:optional (type 'dce))
|
||||
"Compute UUID object with a deterministic \"UUID\" for OS, of the given
|
||||
TYPE (one of 'iso9660 or 'dce). Return a UUID object."
|
||||
;; Note: For this to be deterministic, we must not hash things that contains
|
||||
;; (directly or indirectly) procedures, for example. That rules out
|
||||
;; anything that contains gexps, thunk or delayed record fields, etc.
|
||||
|
||||
(define service-name
|
||||
(compose service-type-name service-kind))
|
||||
|
||||
(define (file-system-digest fs)
|
||||
;; Return a hashable digest that does not contain 'dependencies' since
|
||||
;; this field can contain procedures.
|
||||
(let ((device (file-system-device fs)))
|
||||
(list (file-system-mount-point fs)
|
||||
(file-system-type fs)
|
||||
(cond ((file-system-label? device)
|
||||
(file-system-label->string device))
|
||||
((uuid? device)
|
||||
(uuid->string device))
|
||||
((string? device)
|
||||
device)
|
||||
(else #f))
|
||||
(file-system-options fs))))
|
||||
|
||||
(if (eq? type 'iso9660)
|
||||
(let ((pad (compose (cut string-pad <> 2 #\0)
|
||||
number->string))
|
||||
(h (hash (operating-system-services os) 3600)))
|
||||
(h (hash (map service-name (operating-system-services os))
|
||||
3600)))
|
||||
(bytevector->uuid
|
||||
(string->iso9660-uuid
|
||||
(string-append "1970-01-01-"
|
||||
(pad (hash (operating-system-host-name os) 24)) "-"
|
||||
(pad (quotient h 60)) "-"
|
||||
(pad (modulo h 60)) "-"
|
||||
(pad (hash (operating-system-file-systems os) 100))))
|
||||
(pad (hash (map file-system-digest
|
||||
(operating-system-file-systems os))
|
||||
100))))
|
||||
'iso9660))
|
||||
(bytevector->uuid
|
||||
(uint-list->bytevector
|
||||
|
@ -557,9 +572,9 @@ TYPE (one of 'iso9660 or 'dce). Return a UUID object."
|
|||
(- (expt 2 32) 1))
|
||||
(hash (operating-system-host-name os)
|
||||
(- (expt 2 32) 1))
|
||||
(hash (operating-system-services os)
|
||||
(hash (map service-name (operating-system-services os))
|
||||
(- (expt 2 32) 1))
|
||||
(hash (operating-system-file-systems os)
|
||||
(hash (map file-system-digest (operating-system-file-systems os))
|
||||
(- (expt 2 32) 1)))
|
||||
(endianness little)
|
||||
4)
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#:use-module (guix monads)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (run-basic-test
|
||||
%test-basic-os
|
||||
%test-halt
|
||||
|
@ -68,6 +69,11 @@ initialization step, such as entering a LUKS passphrase."
|
|||
(fold-services (operating-system-services os)
|
||||
#:target-type special-files-service-type)))
|
||||
|
||||
(define guix&co
|
||||
(match (package-transitive-propagated-inputs guix)
|
||||
(((labels packages) ...)
|
||||
(cons guix packages))))
|
||||
|
||||
(define test
|
||||
(with-imported-modules '((gnu build marionette)
|
||||
(guix build syscalls))
|
||||
|
@ -345,8 +351,14 @@ info --version")
|
|||
'success!
|
||||
(marionette-eval '(begin
|
||||
;; Make sure the (guix …) modules are found.
|
||||
(add-to-load-path
|
||||
#+(file-append guix "/share/guile/site/2.2"))
|
||||
(eval-when (expand load eval)
|
||||
(set! %load-path
|
||||
(append (map (lambda (package)
|
||||
(string-append package
|
||||
"/share/guile/site/"
|
||||
(effective-version)))
|
||||
'#$guix&co)
|
||||
%load-path)))
|
||||
|
||||
(use-modules (srfi srfi-34) (guix store))
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
|
||||
latest-channel-instances
|
||||
channel-instance-derivations
|
||||
latest-channel-derivations
|
||||
latest-channel-derivation
|
||||
channel-instances->manifest))
|
||||
|
||||
;;; Commentary:
|
||||
|
@ -78,7 +78,7 @@
|
|||
;; Default list of channels.
|
||||
(list (channel
|
||||
(name 'guix)
|
||||
(branch "origin/master")
|
||||
(branch "master")
|
||||
(url "https://git.savannah.gnu.org/git/guix.git"))))
|
||||
|
||||
(define (guix-channel? channel)
|
||||
|
@ -207,23 +207,20 @@ INSTANCES."
|
|||
(guix-channel? (channel-instance-channel instance)))
|
||||
instances))
|
||||
|
||||
;; Guile-Gcrypt is a dependency of CORE-INSTANCE.
|
||||
(define guile-gcrypt
|
||||
(module-ref (resolve-interface '(gnu packages gnupg))
|
||||
'guile-gcrypt))
|
||||
|
||||
(mlet %store-monad ((core (build-channel-instance core-instance)))
|
||||
(mapm %store-monad
|
||||
(lambda (instance)
|
||||
(if (eq? instance core-instance)
|
||||
(return core)
|
||||
(build-channel-instance instance
|
||||
(list core))))
|
||||
(list core guile-gcrypt))))
|
||||
instances)))
|
||||
|
||||
(define latest-channel-derivations
|
||||
(let ((latest-channel-instances (store-lift latest-channel-instances)))
|
||||
(lambda (channels)
|
||||
"Return, as a monadic value, the list of derivations for the latest
|
||||
instances of CHANNELS."
|
||||
(mlet %store-monad ((instances (latest-channel-instances channels)))
|
||||
(channel-instance-derivations instances)))))
|
||||
|
||||
(define (whole-package-for-legacy name modules)
|
||||
"Return a full-blown Guix package for MODULES, a derivation that builds Guix
|
||||
modules in the old ~/.config/guix/latest style."
|
||||
|
@ -290,3 +287,14 @@ channel instances."
|
|||
(entries (mapm %store-monad instance->entry
|
||||
(zip instances derivations))))
|
||||
(return (manifest entries))))
|
||||
|
||||
(define latest-channel-instances*
|
||||
(store-lift latest-channel-instances))
|
||||
|
||||
(define* (latest-channel-derivation #:optional (channels %default-channels))
|
||||
"Return as a monadic value the derivation that builds the profile for the
|
||||
latest instances of CHANNELS."
|
||||
(mlet* %store-monad ((instances ((store-lift latest-channel-instances)
|
||||
channels))
|
||||
(manifest (channel-instances->manifest instances)))
|
||||
(profile-derivation manifest)))
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
#:use-module (guix memoization)
|
||||
#:use-module (guix combinators)
|
||||
#:use-module (guix monads)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix base32)
|
||||
#:use-module (guix records)
|
||||
#:use-module (guix sets)
|
||||
|
|
|
@ -21,7 +21,9 @@
|
|||
#:use-module (guix profiles)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (ice-9 match)
|
||||
#:export (package-path-entries))
|
||||
#:export (current-profile
|
||||
current-profile-entries
|
||||
package-path-entries))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (guix docker)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix base16)
|
||||
#:use-module ((guix build utils)
|
||||
#:select (mkdir-p
|
||||
|
|
|
@ -1,49 +0,0 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (guix gcrypt)
|
||||
#:use-module (guix config)
|
||||
#:use-module (system foreign)
|
||||
#:export (gcrypt-version
|
||||
libgcrypt-func))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; Common code for the GNU Libgcrypt bindings. Loading this module
|
||||
;;; initializes Libgcrypt as a side effect.
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
(define libgcrypt-func
|
||||
(let ((lib (dynamic-link %libgcrypt)))
|
||||
(lambda (func)
|
||||
"Return a pointer to symbol FUNC in libgcrypt."
|
||||
(dynamic-func func lib))))
|
||||
|
||||
(define gcrypt-version
|
||||
;; According to the manual, this function must be called before any other,
|
||||
;; and it's not clear whether it can be called more than once. So call it
|
||||
;; right here from the top level.
|
||||
(let* ((ptr (libgcrypt-func "gcry_check_version"))
|
||||
(proc (pointer->procedure '* ptr '(*)))
|
||||
(version (pointer->string (proc %null-pointer))))
|
||||
(lambda ()
|
||||
"Return the version number of libgcrypt as a string."
|
||||
version)))
|
||||
|
||||
;;; gcrypt.scm ends here
|
|
@ -1417,26 +1417,31 @@ denoting the target file. Here's an example:
|
|||
`((\"hosts\" ,(plain-file \"hosts\"
|
||||
\"127.0.0.1 localhost\"))
|
||||
(\"bashrc\" ,(plain-file \"bashrc\"
|
||||
\"alias ls='ls --color'\"))))
|
||||
\"alias ls='ls --color'\"))
|
||||
(\"libvirt/qemu.conf\" ,(plain-file \"qemu.conf\" \"\"))))
|
||||
|
||||
This yields an 'etc' directory containing these two files."
|
||||
(computed-file name
|
||||
(gexp
|
||||
(begin
|
||||
(mkdir (ungexp output))
|
||||
(chdir (ungexp output))
|
||||
(ungexp-splicing
|
||||
(map (match-lambda
|
||||
((target source)
|
||||
(gexp
|
||||
(begin
|
||||
;; Stat the source to abort early if it does
|
||||
;; not exist.
|
||||
(stat (ungexp source))
|
||||
(with-imported-modules '((guix build utils))
|
||||
(gexp
|
||||
(begin
|
||||
(use-modules (guix build utils))
|
||||
|
||||
(symlink (ungexp source)
|
||||
(ungexp target))))))
|
||||
files))))))
|
||||
(mkdir (ungexp output))
|
||||
(chdir (ungexp output))
|
||||
(ungexp-splicing
|
||||
(map (match-lambda
|
||||
((target source)
|
||||
(gexp
|
||||
(begin
|
||||
;; Stat the source to abort early if it does
|
||||
;; not exist.
|
||||
(stat (ungexp source))
|
||||
|
||||
(mkdir-p (dirname (ungexp target)))
|
||||
(symlink (ungexp source)
|
||||
(ungexp target))))))
|
||||
files)))))))
|
||||
|
||||
(define* (directory-union name things
|
||||
#:key (copy? #f) (quiet? #f)
|
||||
|
|
19
guix/git.scm
19
guix/git.scm
|
@ -21,7 +21,7 @@
|
|||
#:use-module (git)
|
||||
#:use-module (git object)
|
||||
#:use-module (guix base32)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module ((guix build utils) #:select (mkdir-p))
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix utils)
|
||||
|
@ -112,7 +112,7 @@ OID (roughly the commit hash) corresponding to REF."
|
|||
|
||||
(define* (update-cached-checkout url
|
||||
#:key
|
||||
(ref '(branch . "origin/master"))
|
||||
(ref '(branch . "master"))
|
||||
(cache-directory
|
||||
(url-cache-directory
|
||||
url (%repository-cache-directory))))
|
||||
|
@ -122,6 +122,17 @@ to REF.
|
|||
|
||||
REF is pair whose key is [branch | commit | tag] and value the associated
|
||||
data, respectively [<branch name> | <sha1> | <tag name>]."
|
||||
(define canonical-ref
|
||||
;; We used to require callers to specify "origin/" for each branch, which
|
||||
;; made little sense since the cache should be transparent to them. So
|
||||
;; here we append "origin/" if it's missing and otherwise keep it.
|
||||
(match ref
|
||||
(('branch . branch)
|
||||
`(branch . ,(if (string-prefix? "origin/" branch)
|
||||
branch
|
||||
(string-append "origin/" branch))))
|
||||
(_ ref)))
|
||||
|
||||
(with-libgit2
|
||||
(let* ((cache-exists? (openable-repository? cache-directory))
|
||||
(repository (if cache-exists?
|
||||
|
@ -130,7 +141,7 @@ data, respectively [<branch name> | <sha1> | <tag name>]."
|
|||
;; Only fetch remote if it has not been cloned just before.
|
||||
(when cache-exists?
|
||||
(remote-fetch (remote-lookup repository "origin")))
|
||||
(let ((oid (switch-to-ref repository ref)))
|
||||
(let ((oid (switch-to-ref repository canonical-ref)))
|
||||
|
||||
;; Reclaim file descriptors and memory mappings associated with
|
||||
;; REPOSITORY as soon as possible.
|
||||
|
@ -144,7 +155,7 @@ data, respectively [<branch name> | <sha1> | <tag name>]."
|
|||
#:key
|
||||
(cache-directory
|
||||
(%repository-cache-directory))
|
||||
(ref '(branch . "origin/master")))
|
||||
(ref '(branch . "master")))
|
||||
"Return two values: the content of the git repository at URL copied into a
|
||||
store directory and the sha1 of the top level commit in this directory. The
|
||||
reference to be checkout, once the repository is fetched, is specified by REF.
|
||||
|
|
184
guix/hash.scm
184
guix/hash.scm
|
@ -1,184 +0,0 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (guix hash)
|
||||
#:use-module (guix gcrypt)
|
||||
#:use-module (rnrs bytevectors)
|
||||
#:use-module (ice-9 binary-ports)
|
||||
#:use-module (system foreign)
|
||||
#:use-module ((guix build utils) #:select (dump-port))
|
||||
#:use-module (srfi srfi-11)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:export (sha1
|
||||
sha256
|
||||
open-sha256-port
|
||||
port-sha256
|
||||
file-sha256
|
||||
open-sha256-input-port))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; Cryptographic hashes.
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
|
||||
;;;
|
||||
;;; Hash.
|
||||
;;;
|
||||
|
||||
(define-syntax GCRY_MD_SHA256
|
||||
;; Value as of Libgcrypt 1.5.2.
|
||||
(identifier-syntax 8))
|
||||
|
||||
(define-syntax GCRY_MD_SHA1
|
||||
(identifier-syntax 2))
|
||||
|
||||
(define bytevector-hash
|
||||
(let ((hash (pointer->procedure void
|
||||
(libgcrypt-func "gcry_md_hash_buffer")
|
||||
`(,int * * ,size_t))))
|
||||
(lambda (bv type size)
|
||||
"Return the hash TYPE, of SIZE bytes, of BV as a bytevector."
|
||||
(let ((digest (make-bytevector size)))
|
||||
(hash type (bytevector->pointer digest)
|
||||
(bytevector->pointer bv) (bytevector-length bv))
|
||||
digest))))
|
||||
|
||||
(define sha1
|
||||
(cut bytevector-hash <> GCRY_MD_SHA1 20))
|
||||
|
||||
(define sha256
|
||||
(cut bytevector-hash <> GCRY_MD_SHA256 (/ 256 8)))
|
||||
|
||||
(define open-sha256-md
|
||||
(let ((open (pointer->procedure int
|
||||
(libgcrypt-func "gcry_md_open")
|
||||
`(* ,int ,unsigned-int))))
|
||||
(lambda ()
|
||||
(let* ((md (bytevector->pointer (make-bytevector (sizeof '*))))
|
||||
(err (open md GCRY_MD_SHA256 0)))
|
||||
(if (zero? err)
|
||||
(dereference-pointer md)
|
||||
(throw 'gcrypt-error err))))))
|
||||
|
||||
(define md-write
|
||||
(pointer->procedure void
|
||||
(libgcrypt-func "gcry_md_write")
|
||||
`(* * ,size_t)))
|
||||
|
||||
(define md-read
|
||||
(pointer->procedure '*
|
||||
(libgcrypt-func "gcry_md_read")
|
||||
`(* ,int)))
|
||||
|
||||
(define md-close
|
||||
(pointer->procedure void
|
||||
(libgcrypt-func "gcry_md_close")
|
||||
'(*)))
|
||||
|
||||
|
||||
(define (open-sha256-port)
|
||||
"Return two values: an output port, and a thunk. When the thunk is called,
|
||||
it returns the SHA256 hash (a bytevector) of all the data written to the
|
||||
output port."
|
||||
(define sha256-md
|
||||
(open-sha256-md))
|
||||
|
||||
(define digest #f)
|
||||
(define position 0)
|
||||
|
||||
(define (finalize!)
|
||||
(let ((ptr (md-read sha256-md 0)))
|
||||
(set! digest (bytevector-copy (pointer->bytevector ptr 32)))
|
||||
(md-close sha256-md)))
|
||||
|
||||
(define (write! bv offset len)
|
||||
(if (zero? len)
|
||||
(begin
|
||||
(finalize!)
|
||||
0)
|
||||
(let ((ptr (bytevector->pointer bv offset)))
|
||||
(md-write sha256-md ptr len)
|
||||
(set! position (+ position len))
|
||||
len)))
|
||||
|
||||
(define (get-position)
|
||||
position)
|
||||
|
||||
(define (close)
|
||||
(unless digest
|
||||
(finalize!)))
|
||||
|
||||
(values (make-custom-binary-output-port "sha256"
|
||||
write! get-position #f
|
||||
close)
|
||||
(lambda ()
|
||||
(unless digest
|
||||
(finalize!))
|
||||
digest)))
|
||||
|
||||
(define (port-sha256 port)
|
||||
"Return the SHA256 hash (a bytevector) of all the data drained from PORT."
|
||||
(let-values (((out get)
|
||||
(open-sha256-port)))
|
||||
(dump-port port out)
|
||||
(close-port out)
|
||||
(get)))
|
||||
|
||||
(define (file-sha256 file)
|
||||
"Return the SHA256 hash (a bytevector) of FILE."
|
||||
(call-with-input-file file port-sha256))
|
||||
|
||||
(define (open-sha256-input-port port)
|
||||
"Return an input port that wraps PORT and a thunk to get the hash of all the
|
||||
data read from PORT. The thunk always returns the same value."
|
||||
(define md
|
||||
(open-sha256-md))
|
||||
|
||||
(define (read! bv start count)
|
||||
(let ((n (get-bytevector-n! port bv start count)))
|
||||
(if (eof-object? n)
|
||||
0
|
||||
(begin
|
||||
(unless digest
|
||||
(let ((ptr (bytevector->pointer bv start)))
|
||||
(md-write md ptr n)))
|
||||
n))))
|
||||
|
||||
(define digest #f)
|
||||
|
||||
(define (finalize!)
|
||||
(let ((ptr (md-read md 0)))
|
||||
(set! digest (bytevector-copy (pointer->bytevector ptr 32)))
|
||||
(md-close md)))
|
||||
|
||||
(define (get-hash)
|
||||
(unless digest
|
||||
(finalize!))
|
||||
digest)
|
||||
|
||||
(define (unbuffered port)
|
||||
;; Guile <= 2.0.9 does not support 'setvbuf' on custom binary input ports.
|
||||
(setvbuf port _IONBF)
|
||||
port)
|
||||
|
||||
(values (unbuffered (make-custom-binary-input-port "sha256" read! #f #f #f))
|
||||
get-hash))
|
||||
|
||||
;;; hash.scm ends here
|
|
@ -34,7 +34,7 @@
|
|||
#:use-module (guix ui)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix base64)
|
||||
#:autoload (guix hash) (sha256)
|
||||
#:autoload (gcrypt hash) (sha256)
|
||||
#:use-module ((guix build utils)
|
||||
#:select (mkdir-p dump-port))
|
||||
#:use-module ((guix build download)
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (json)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix base32)
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#:use-module (web uri)
|
||||
#:use-module (guix memoization)
|
||||
#:use-module (guix http-client)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix base32)
|
||||
#:use-module ((guix download) #:select (download-to-store))
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
#:use-module (guix base32)
|
||||
#:use-module (guix build-system cargo)
|
||||
#:use-module ((guix download) #:prefix download:)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix http-client)
|
||||
#:use-module (guix import json)
|
||||
#:use-module (guix import utils)
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
#:use-module (guix http-client)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix ui)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix base32)
|
||||
#:use-module (guix upstream)
|
||||
#:use-module (guix packages)
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
#:use-module (guix import utils)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix base32)
|
||||
#:use-module (guix upstream)
|
||||
#:use-module (srfi srfi-1)
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
#:use-module ((guix import utils) #:select (factorize-uri recursive-import))
|
||||
#:use-module (guix import cabal)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix base32)
|
||||
#:use-module (guix memoization)
|
||||
#:use-module (guix upstream)
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#:use-module (srfi srfi-34)
|
||||
#:use-module (web uri)
|
||||
#:use-module (guix http-client)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix memoization)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix base32)
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
(define-module (guix import utils)
|
||||
#:use-module (guix base32)
|
||||
#:use-module ((guix build download) #:prefix build:)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix http-client)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix utils)
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
(define-module (guix inferior)
|
||||
#:use-module (srfi srfi-9)
|
||||
#:use-module (srfi srfi-9 gnu)
|
||||
#:use-module ((guix utils) #:select (source-properties->location))
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 popen)
|
||||
#:export (inferior?
|
||||
|
@ -33,7 +34,9 @@
|
|||
|
||||
inferior-packages
|
||||
inferior-package-synopsis
|
||||
inferior-package-description))
|
||||
inferior-package-description
|
||||
inferior-package-home-page
|
||||
inferior-package-location))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
|
@ -198,3 +201,18 @@ TRANSLATE? is true, translate it to the current locale's language."
|
|||
(if translate?
|
||||
'(compose (@ (guix ui) P_) package-description)
|
||||
'package-description)))
|
||||
|
||||
(define (inferior-package-home-page package)
|
||||
"Return the home page of PACKAGE."
|
||||
(inferior-package-field package 'package-home-page))
|
||||
|
||||
(define (inferior-package-location package)
|
||||
"Return the source code location of PACKAGE, either #f or a <location>
|
||||
record."
|
||||
(source-properties->location
|
||||
(inferior-package-field package
|
||||
'(compose (lambda (loc)
|
||||
(and loc
|
||||
(location->source-properties
|
||||
loc)))
|
||||
package-location))))
|
||||
|
|
|
@ -25,9 +25,9 @@
|
|||
#:use-module (guix store)
|
||||
#:use-module (guix store database)
|
||||
#:use-module (guix ui) ; for '_'
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix pki)
|
||||
#:use-module (guix pk-crypto)
|
||||
#:use-module (gcrypt pk-crypto)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-11)
|
||||
#:use-module (srfi srfi-26)
|
||||
|
|
|
@ -1,407 +0,0 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (guix pk-crypto)
|
||||
#:use-module (guix base16)
|
||||
#:use-module (guix gcrypt)
|
||||
|
||||
#:use-module (system foreign)
|
||||
#:use-module (rnrs bytevectors)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 rdelim)
|
||||
#:export (canonical-sexp?
|
||||
error-source
|
||||
error-string
|
||||
string->canonical-sexp
|
||||
canonical-sexp->string
|
||||
read-file-sexp
|
||||
number->canonical-sexp
|
||||
canonical-sexp-car
|
||||
canonical-sexp-cdr
|
||||
canonical-sexp-nth
|
||||
canonical-sexp-nth-data
|
||||
canonical-sexp-length
|
||||
canonical-sexp-null?
|
||||
canonical-sexp-list?
|
||||
bytevector->hash-data
|
||||
hash-data->bytevector
|
||||
key-type
|
||||
sign
|
||||
verify
|
||||
generate-key
|
||||
find-sexp-token
|
||||
canonical-sexp->sexp
|
||||
sexp->canonical-sexp)
|
||||
#:re-export (gcrypt-version))
|
||||
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; Public key cryptographic routines from GNU Libgcrypt.
|
||||
;;;;
|
||||
;;; Libgcrypt uses "canonical s-expressions" to represent key material,
|
||||
;;; parameters, and data. We keep it as an opaque object to map them to
|
||||
;;; Scheme s-expressions because (1) Libgcrypt sexps may be stored in secure
|
||||
;;; memory, and (2) the read syntax is different.
|
||||
;;;
|
||||
;;; A 'canonical-sexp->sexp' procedure is provided nevertheless, for use in
|
||||
;;; cases where it is safe to move data out of Libgcrypt---e.g., when
|
||||
;;; processing ACL entries, public keys, etc.
|
||||
;;;
|
||||
;;; Canonical sexps were defined by Rivest et al. in the IETF draft at
|
||||
;;; <http://people.csail.mit.edu/rivest/Sexp.txt> for the purposes of SPKI
|
||||
;;; (see <http://www.ietf.org/rfc/rfc2693.txt>.)
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
;; Libgcrypt "s-expressions".
|
||||
(define-wrapped-pointer-type <canonical-sexp>
|
||||
canonical-sexp?
|
||||
naked-pointer->canonical-sexp
|
||||
canonical-sexp->pointer
|
||||
(lambda (obj port)
|
||||
;; Don't print OBJ's external representation: we don't want key material
|
||||
;; to leak in backtraces and such.
|
||||
(format port "#<canonical-sexp ~a | ~a>"
|
||||
(number->string (object-address obj) 16)
|
||||
(number->string (pointer-address (canonical-sexp->pointer obj))
|
||||
16))))
|
||||
|
||||
(define finalize-canonical-sexp!
|
||||
(libgcrypt-func "gcry_sexp_release"))
|
||||
|
||||
(define-inlinable (pointer->canonical-sexp ptr)
|
||||
"Return a <canonical-sexp> that wraps PTR."
|
||||
(let* ((sexp (naked-pointer->canonical-sexp ptr))
|
||||
(ptr* (canonical-sexp->pointer sexp)))
|
||||
;; Did we already have a <canonical-sexp> object for PTR?
|
||||
(when (equal? ptr ptr*)
|
||||
;; No, so we can safely add a finalizer (in Guile 2.0.9
|
||||
;; 'set-pointer-finalizer!' *adds* a finalizer rather than replacing the
|
||||
;; existing one.)
|
||||
(set-pointer-finalizer! ptr finalize-canonical-sexp!))
|
||||
sexp))
|
||||
|
||||
(define error-source
|
||||
(let* ((ptr (libgcrypt-func "gcry_strsource"))
|
||||
(proc (pointer->procedure '* ptr (list int))))
|
||||
(lambda (err)
|
||||
"Return the error source (a string) for ERR, an error code as thrown
|
||||
along with 'gcry-error'."
|
||||
(pointer->string (proc err)))))
|
||||
|
||||
(define error-string
|
||||
(let* ((ptr (libgcrypt-func "gcry_strerror"))
|
||||
(proc (pointer->procedure '* ptr (list int))))
|
||||
(lambda (err)
|
||||
"Return the error description (a string) for ERR, an error code as
|
||||
thrown along with 'gcry-error'."
|
||||
(pointer->string (proc err)))))
|
||||
|
||||
(define string->canonical-sexp
|
||||
(let* ((ptr (libgcrypt-func "gcry_sexp_new"))
|
||||
(proc (pointer->procedure int ptr `(* * ,size_t ,int))))
|
||||
(lambda (str)
|
||||
"Parse STR and return the corresponding gcrypt s-expression."
|
||||
|
||||
;; When STR comes from 'canonical-sexp->string', it may contain
|
||||
;; characters that are really meant to be interpreted as bytes as in a C
|
||||
;; 'char *'. Thus, convert STR to ISO-8859-1 so the byte values of the
|
||||
;; characters are preserved.
|
||||
(let* ((sexp (bytevector->pointer (make-bytevector (sizeof '*))))
|
||||
(err (proc sexp (string->pointer str "ISO-8859-1") 0 1)))
|
||||
(if (= 0 err)
|
||||
(pointer->canonical-sexp (dereference-pointer sexp))
|
||||
(throw 'gcry-error 'string->canonical-sexp err))))))
|
||||
|
||||
(define-syntax GCRYSEXP_FMT_ADVANCED
|
||||
(identifier-syntax 3))
|
||||
|
||||
(define canonical-sexp->string
|
||||
(let* ((ptr (libgcrypt-func "gcry_sexp_sprint"))
|
||||
(proc (pointer->procedure size_t ptr `(* ,int * ,size_t))))
|
||||
(lambda (sexp)
|
||||
"Return a textual representation of SEXP."
|
||||
(let loop ((len 1024))
|
||||
(let* ((buf (bytevector->pointer (make-bytevector len)))
|
||||
(size (proc (canonical-sexp->pointer sexp)
|
||||
GCRYSEXP_FMT_ADVANCED buf len)))
|
||||
(if (zero? size)
|
||||
(loop (* len 2))
|
||||
(pointer->string buf size "ISO-8859-1")))))))
|
||||
|
||||
(define (read-file-sexp file)
|
||||
"Return the canonical sexp read from FILE."
|
||||
(call-with-input-file file
|
||||
(compose string->canonical-sexp
|
||||
read-string)))
|
||||
|
||||
(define canonical-sexp-car
|
||||
(let* ((ptr (libgcrypt-func "gcry_sexp_car"))
|
||||
(proc (pointer->procedure '* ptr '(*))))
|
||||
(lambda (lst)
|
||||
"Return the first element of LST, an sexp, if that element is a list;
|
||||
return #f if LST or its first element is not a list (this is different from
|
||||
the usual Lisp 'car'.)"
|
||||
(let ((result (proc (canonical-sexp->pointer lst))))
|
||||
(if (null-pointer? result)
|
||||
#f
|
||||
(pointer->canonical-sexp result))))))
|
||||
|
||||
(define canonical-sexp-cdr
|
||||
(let* ((ptr (libgcrypt-func "gcry_sexp_cdr"))
|
||||
(proc (pointer->procedure '* ptr '(*))))
|
||||
(lambda (lst)
|
||||
"Return the tail of LST, an sexp, or #f if LST is not a list."
|
||||
(let ((result (proc (canonical-sexp->pointer lst))))
|
||||
(if (null-pointer? result)
|
||||
#f
|
||||
(pointer->canonical-sexp result))))))
|
||||
|
||||
(define canonical-sexp-nth
|
||||
(let* ((ptr (libgcrypt-func "gcry_sexp_nth"))
|
||||
(proc (pointer->procedure '* ptr `(* ,int))))
|
||||
(lambda (lst index)
|
||||
"Return the INDEXth nested element of LST, an s-expression. Return #f
|
||||
if that element does not exist, or if it's an atom. (Note: this is obviously
|
||||
different from Scheme's 'list-ref'.)"
|
||||
(let ((result (proc (canonical-sexp->pointer lst) index)))
|
||||
(if (null-pointer? result)
|
||||
#f
|
||||
(pointer->canonical-sexp result))))))
|
||||
|
||||
(define (dereference-size_t p)
|
||||
"Return the size_t value pointed to by P."
|
||||
(bytevector-uint-ref (pointer->bytevector p (sizeof size_t))
|
||||
0 (native-endianness)
|
||||
(sizeof size_t)))
|
||||
|
||||
(define canonical-sexp-length
|
||||
(let* ((ptr (libgcrypt-func "gcry_sexp_length"))
|
||||
(proc (pointer->procedure int ptr '(*))))
|
||||
(lambda (sexp)
|
||||
"Return the length of SEXP if it's a list (including the empty list);
|
||||
return zero if SEXP is an atom."
|
||||
(proc (canonical-sexp->pointer sexp)))))
|
||||
|
||||
(define token-string?
|
||||
(let ((token-cs (char-set-union char-set:digit
|
||||
char-set:letter
|
||||
(char-set #\- #\. #\/ #\_
|
||||
#\: #\* #\+ #\=))))
|
||||
(lambda (str)
|
||||
"Return #t if STR is a token as per Section 4.3 of
|
||||
<http://people.csail.mit.edu/rivest/Sexp.txt>."
|
||||
(and (not (string-null? str))
|
||||
(string-every token-cs str)
|
||||
(not (char-set-contains? char-set:digit (string-ref str 0)))))))
|
||||
|
||||
(define canonical-sexp-nth-data
|
||||
(let* ((ptr (libgcrypt-func "gcry_sexp_nth_data"))
|
||||
(proc (pointer->procedure '* ptr `(* ,int *))))
|
||||
(lambda (lst index)
|
||||
"Return as a symbol (for \"sexp tokens\") or a bytevector (for any other
|
||||
\"octet string\") the INDEXth data element (atom) of LST, an s-expression.
|
||||
Return #f if that element does not exist, or if it's a list."
|
||||
(let* ((size* (bytevector->pointer (make-bytevector (sizeof '*))))
|
||||
(result (proc (canonical-sexp->pointer lst) index size*)))
|
||||
(if (null-pointer? result)
|
||||
#f
|
||||
(let* ((len (dereference-size_t size*))
|
||||
(str (pointer->string result len "ISO-8859-1")))
|
||||
;; The sexp spec speaks of "tokens" and "octet strings".
|
||||
;; Sometimes these octet strings are actual strings (text),
|
||||
;; sometimes they're bytevectors, and sometimes they're
|
||||
;; multi-precision integers (MPIs). Only the application knows.
|
||||
;; However, for convenience, we return a symbol when a token is
|
||||
;; encountered since tokens are frequent (at least in the 'car'
|
||||
;; of each sexp.)
|
||||
(if (token-string? str)
|
||||
(string->symbol str) ; an sexp "token"
|
||||
(bytevector-copy ; application data, textual or binary
|
||||
(pointer->bytevector result len)))))))))
|
||||
|
||||
(define (number->canonical-sexp number)
|
||||
"Return an s-expression representing NUMBER."
|
||||
(string->canonical-sexp (string-append "#" (number->string number 16) "#")))
|
||||
|
||||
(define* (bytevector->hash-data bv
|
||||
#:optional
|
||||
(hash-algo "sha256")
|
||||
#:key (key-type 'ecc))
|
||||
"Given BV, a bytevector containing a hash of type HASH-ALGO, return an
|
||||
s-expression suitable for use as the 'data' argument for 'sign'. KEY-TYPE
|
||||
must be a symbol: 'dsa, 'ecc, or 'rsa."
|
||||
(string->canonical-sexp
|
||||
(format #f "(data (flags ~a) (hash \"~a\" #~a#))"
|
||||
(case key-type
|
||||
((ecc dsa) "rfc6979")
|
||||
((rsa) "pkcs1")
|
||||
(else (error "unknown key type" key-type)))
|
||||
hash-algo
|
||||
(bytevector->base16-string bv))))
|
||||
|
||||
(define (key-type sexp)
|
||||
"Return a symbol denoting the type of public or private key represented by
|
||||
SEXP--e.g., 'rsa', 'ecc'--or #f if SEXP does not denote a valid key."
|
||||
(case (canonical-sexp-nth-data sexp 0)
|
||||
((public-key private-key)
|
||||
(canonical-sexp-nth-data (canonical-sexp-nth sexp 1) 0))
|
||||
(else #f)))
|
||||
|
||||
(define* (hash-data->bytevector data)
|
||||
"Return two values: the hash value (a bytevector), and the hash algorithm (a
|
||||
string) extracted from DATA, an sexp as returned by 'bytevector->hash-data'.
|
||||
Return #f if DATA does not conform."
|
||||
(let ((hash (find-sexp-token data 'hash)))
|
||||
(if hash
|
||||
(let ((algo (canonical-sexp-nth-data hash 1))
|
||||
(value (canonical-sexp-nth-data hash 2)))
|
||||
(values value (symbol->string algo)))
|
||||
(values #f #f))))
|
||||
|
||||
(define sign
|
||||
(let* ((ptr (libgcrypt-func "gcry_pk_sign"))
|
||||
(proc (pointer->procedure int ptr '(* * *))))
|
||||
(lambda (data secret-key)
|
||||
"Sign DATA, a canonical s-expression representing a suitable hash, with
|
||||
SECRET-KEY (a canonical s-expression whose car is 'private-key'.) Note that
|
||||
DATA must be a 'data' s-expression, as returned by
|
||||
'bytevector->hash-data' (info \"(gcrypt) Cryptographic Functions\")."
|
||||
(let* ((sig (bytevector->pointer (make-bytevector (sizeof '*))))
|
||||
(err (proc sig (canonical-sexp->pointer data)
|
||||
(canonical-sexp->pointer secret-key))))
|
||||
(if (= 0 err)
|
||||
(pointer->canonical-sexp (dereference-pointer sig))
|
||||
(throw 'gcry-error 'sign err))))))
|
||||
|
||||
(define verify
|
||||
(let* ((ptr (libgcrypt-func "gcry_pk_verify"))
|
||||
(proc (pointer->procedure int ptr '(* * *))))
|
||||
(lambda (signature data public-key)
|
||||
"Verify that SIGNATURE is a signature of DATA with PUBLIC-KEY, all of
|
||||
which are gcrypt s-expressions."
|
||||
(zero? (proc (canonical-sexp->pointer signature)
|
||||
(canonical-sexp->pointer data)
|
||||
(canonical-sexp->pointer public-key))))))
|
||||
|
||||
(define generate-key
|
||||
(let* ((ptr (libgcrypt-func "gcry_pk_genkey"))
|
||||
(proc (pointer->procedure int ptr '(* *))))
|
||||
(lambda (params)
|
||||
"Return as an s-expression a new key pair for PARAMS. PARAMS must be an
|
||||
s-expression like: (genkey (rsa (nbits 4:2048)))."
|
||||
(let* ((key (bytevector->pointer (make-bytevector (sizeof '*))))
|
||||
(err (proc key (canonical-sexp->pointer params))))
|
||||
(if (zero? err)
|
||||
(pointer->canonical-sexp (dereference-pointer key))
|
||||
(throw 'gcry-error 'generate-key err))))))
|
||||
|
||||
(define find-sexp-token
|
||||
(let* ((ptr (libgcrypt-func "gcry_sexp_find_token"))
|
||||
(proc (pointer->procedure '* ptr `(* * ,size_t))))
|
||||
(lambda (sexp token)
|
||||
"Find in SEXP the first element whose 'car' is TOKEN and return it;
|
||||
return #f if not found."
|
||||
(let* ((token (string->pointer (symbol->string token)))
|
||||
(res (proc (canonical-sexp->pointer sexp) token 0)))
|
||||
(if (null-pointer? res)
|
||||
#f
|
||||
(pointer->canonical-sexp res))))))
|
||||
|
||||
(define-inlinable (canonical-sexp-null? sexp)
|
||||
"Return #t if SEXP is the empty-list sexp."
|
||||
(null-pointer? (canonical-sexp->pointer sexp)))
|
||||
|
||||
(define (canonical-sexp-list? sexp)
|
||||
"Return #t if SEXP is a list."
|
||||
(or (canonical-sexp-null? sexp)
|
||||
(> (canonical-sexp-length sexp) 0)))
|
||||
|
||||
(define (canonical-sexp-fold proc seed sexp)
|
||||
"Fold PROC (as per SRFI-1) over SEXP, a canonical sexp."
|
||||
(if (canonical-sexp-list? sexp)
|
||||
(let ((len (canonical-sexp-length sexp)))
|
||||
(let loop ((index 0)
|
||||
(result seed))
|
||||
(if (= index len)
|
||||
result
|
||||
(loop (+ 1 index)
|
||||
;; XXX: Call 'nth-data' *before* 'nth' to work around
|
||||
;; <https://bugs.g10code.com/gnupg/issue1594>, which
|
||||
;; affects 1.6.0 and earlier versions.
|
||||
(proc (or (canonical-sexp-nth-data sexp index)
|
||||
(canonical-sexp-nth sexp index))
|
||||
result)))))
|
||||
(error "sexp is not a list" sexp)))
|
||||
|
||||
(define (canonical-sexp->sexp sexp)
|
||||
"Return a Scheme sexp corresponding to SEXP. This is particularly useful to
|
||||
compare sexps (since Libgcrypt does not provide an 'equal?' procedure), or to
|
||||
use pattern matching."
|
||||
(if (canonical-sexp-list? sexp)
|
||||
(reverse
|
||||
(canonical-sexp-fold (lambda (item result)
|
||||
(cons (if (canonical-sexp? item)
|
||||
(canonical-sexp->sexp item)
|
||||
item)
|
||||
result))
|
||||
'()
|
||||
sexp))
|
||||
|
||||
;; As of Libgcrypt 1.6.0, there's no function to extract the buffer of a
|
||||
;; non-list sexp (!), so we first enlist SEXP, then get at its buffer.
|
||||
(let ((sexp (string->canonical-sexp
|
||||
(string-append "(" (canonical-sexp->string sexp)
|
||||
")"))))
|
||||
(or (canonical-sexp-nth-data sexp 0)
|
||||
(canonical-sexp-nth sexp 0)))))
|
||||
|
||||
(define (sexp->canonical-sexp sexp)
|
||||
"Return a canonical sexp equivalent to SEXP, a Scheme sexp as returned by
|
||||
'canonical-sexp->sexp'."
|
||||
;; XXX: This is inefficient, but the Libgcrypt API doesn't allow us to do
|
||||
;; much better.
|
||||
(string->canonical-sexp
|
||||
(call-with-output-string
|
||||
(lambda (port)
|
||||
(define (write item)
|
||||
(cond ((list? item)
|
||||
(display "(" port)
|
||||
(for-each write item)
|
||||
(display ")" port))
|
||||
((symbol? item)
|
||||
(format port " ~a" item))
|
||||
((bytevector? item)
|
||||
(format port " #~a#"
|
||||
(bytevector->base16-string item)))
|
||||
(else
|
||||
(error "unsupported sexp item type" item))))
|
||||
|
||||
(write sexp)))))
|
||||
|
||||
(define (gcrypt-error-printer port key args default-printer)
|
||||
"Print the gcrypt error specified by ARGS."
|
||||
(match args
|
||||
((proc err)
|
||||
(format port "In procedure ~a: ~a: ~a"
|
||||
proc (error-source err) (error-string err)))))
|
||||
|
||||
(set-exception-printer! 'gcry-error gcrypt-error-printer)
|
||||
|
||||
;;; pk-crypto.scm ends here
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
(define-module (guix pki)
|
||||
#:use-module (guix config)
|
||||
#:use-module (guix pk-crypto)
|
||||
#:use-module (gcrypt pk-crypto)
|
||||
#:use-module ((guix utils) #:select (with-atomic-file-output))
|
||||
#:use-module ((guix build utils) #:select (mkdir-p))
|
||||
#:use-module (ice-9 match)
|
||||
|
|
|
@ -286,7 +286,8 @@ file name."
|
|||
(manifest-transitive-entries manifest))))
|
||||
|
||||
(define* (package->manifest-entry package #:optional (output "out")
|
||||
#:key (parent (delay #f)))
|
||||
#:key (parent (delay #f))
|
||||
(properties '()))
|
||||
"Return a manifest entry for the OUTPUT of package PACKAGE."
|
||||
;; For each dependency, keep a promise pointing to its "parent" entry.
|
||||
(letrec* ((deps (map (match-lambda
|
||||
|
@ -305,7 +306,8 @@ file name."
|
|||
(dependencies (delete-duplicates deps))
|
||||
(search-paths
|
||||
(package-transitive-native-search-paths package))
|
||||
(parent parent))))
|
||||
(parent parent)
|
||||
(properties properties))))
|
||||
entry))
|
||||
|
||||
(define (packages->manifest packages)
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#:use-module (guix monads)
|
||||
#:use-module (guix ui)
|
||||
#:use-module (guix pki)
|
||||
#:use-module (guix pk-crypto)
|
||||
#:use-module (gcrypt pk-crypto)
|
||||
#:use-module (guix scripts)
|
||||
#:use-module (guix scripts build)
|
||||
#:use-module (gnu packages)
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
(define-module (guix scripts authenticate)
|
||||
#:use-module (guix config)
|
||||
#:use-module (guix base16)
|
||||
#:use-module (guix pk-crypto)
|
||||
#:use-module (gcrypt pk-crypto)
|
||||
#:use-module (guix pki)
|
||||
#:use-module (guix ui)
|
||||
#:use-module (ice-9 binary-ports)
|
||||
|
|
|
@ -0,0 +1,159 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
;;; GNU Guix is free software; you can redistribute it and/or modify it
|
||||
;;; under the terms of the GNU General Public License as published by
|
||||
;;; the Free Software Foundation; either version 3 of the License, or (at
|
||||
;;; your option) any later version.
|
||||
;;;
|
||||
;;; GNU Guix is distributed in the hope that it will be useful, but
|
||||
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
;;; GNU General Public License for more details.
|
||||
;;;
|
||||
;;; You should have received a copy of the GNU General Public License
|
||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
(define-module (guix scripts describe)
|
||||
#:use-module ((guix ui) #:hide (display-profile-content))
|
||||
#:use-module (guix scripts)
|
||||
#:use-module (guix describe)
|
||||
#:use-module (guix profiles)
|
||||
#:use-module ((guix scripts pull) #:select (display-profile-content))
|
||||
#:use-module (git)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-37)
|
||||
#:use-module (ice-9 match)
|
||||
#:autoload (ice-9 pretty-print) (pretty-print)
|
||||
#:export (guix-describe))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Command-line options.
|
||||
;;;
|
||||
|
||||
(define %options
|
||||
;; Specifications of the command-line options.
|
||||
(list (option '(#\f "format") #t #f
|
||||
(lambda (opt name arg result)
|
||||
(unless (member arg '("human" "channels"))
|
||||
(leave (G_ "~a: unsupported output format~%") arg))
|
||||
(alist-cons 'format 'channels result)))
|
||||
(option '(#\h "help") #f #f
|
||||
(lambda args
|
||||
(show-help)
|
||||
(exit 0)))
|
||||
(option '(#\V "version") #f #f
|
||||
(lambda args
|
||||
(show-version-and-exit "guix describe")))))
|
||||
|
||||
(define %default-options
|
||||
;; Alist of default option values.
|
||||
'((format . human)))
|
||||
|
||||
(define (show-help)
|
||||
(display (G_ "Usage: guix describe [OPTION]...
|
||||
Display information about the channels currently in use.\n"))
|
||||
(display (G_ "
|
||||
-f, --format=FORMAT display information in the given FORMAT"))
|
||||
(newline)
|
||||
(display (G_ "
|
||||
-h, --help display this help and exit"))
|
||||
(display (G_ "
|
||||
-V, --version display version information and exit"))
|
||||
(newline)
|
||||
(show-bug-report-information))
|
||||
|
||||
(define (display-package-search-path fmt)
|
||||
"Display GUIX_PACKAGE_PATH, if it is set, according to FMT."
|
||||
(match (getenv "GUIX_PACKAGE_PATH")
|
||||
(#f #t)
|
||||
(string
|
||||
(match fmt
|
||||
('human
|
||||
(format #t "~%GUIX_PACKAGE_PATH=\"~a\"~%" string))
|
||||
('channels
|
||||
(format #t (G_ "~%;; warning: GUIX_PACKAGE_PATH=\"~a\"~%")
|
||||
string))))))
|
||||
|
||||
(define (display-checkout-info fmt)
|
||||
"Display information about the current checkout according to FMT, a symbol
|
||||
denoting the requested format. Exit if the current directory does not lie
|
||||
within a Git checkout."
|
||||
(let* ((program (car (command-line)))
|
||||
(directory (catch 'git-error
|
||||
(lambda ()
|
||||
(repository-discover (dirname program)))
|
||||
(lambda (key err)
|
||||
(leave (G_ "failed to determine origin~%")))))
|
||||
(repository (repository-open directory))
|
||||
(head (repository-head repository))
|
||||
(commit (oid->string (reference-target head))))
|
||||
(match fmt
|
||||
('human
|
||||
(format #t (G_ "Git checkout:~%"))
|
||||
(format #t (G_ " repository: ~a~%") (dirname directory))
|
||||
(format #t (G_ " branch: ~a~%") (reference-shorthand head))
|
||||
(format #t (G_ " commit: ~a~%") commit))
|
||||
('channels
|
||||
(pretty-print `(list (channel
|
||||
(name 'guix)
|
||||
(url ,(dirname directory))
|
||||
(commit ,commit))))))
|
||||
(display-package-search-path fmt)))
|
||||
|
||||
(define (display-profile-info profile fmt)
|
||||
"Display information about PROFILE, a profile as created by (guix channels),
|
||||
in the format specified by FMT."
|
||||
(define number
|
||||
(generation-number profile))
|
||||
|
||||
(match fmt
|
||||
('human
|
||||
(display-profile-content profile number))
|
||||
('channels
|
||||
(pretty-print
|
||||
`(list ,@(map (lambda (entry)
|
||||
(match (assq 'source (manifest-entry-properties entry))
|
||||
(('source ('repository ('version 0)
|
||||
('url url)
|
||||
('branch branch)
|
||||
('commit commit)
|
||||
_ ...))
|
||||
`(channel (name ',(string->symbol
|
||||
(manifest-entry-name entry)))
|
||||
(url ,url)
|
||||
(commit ,commit)))
|
||||
|
||||
;; Pre-0.15.0 Guix does not provide that information,
|
||||
;; so there's not much we can do in that case.
|
||||
(_ '???)))
|
||||
|
||||
;; Show most recently installed packages last.
|
||||
(reverse
|
||||
(manifest-entries
|
||||
(profile-manifest (generation-file-name profile
|
||||
number)))))))))
|
||||
(display-package-search-path fmt))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Entry point.
|
||||
;;;
|
||||
|
||||
(define (guix-describe . args)
|
||||
(let* ((opts (args-fold* args %options
|
||||
(lambda (opt name arg result)
|
||||
(leave (G_ "~A: unrecognized option~%")
|
||||
name))
|
||||
cons
|
||||
%default-options))
|
||||
(format (assq-ref opts 'format)))
|
||||
(with-error-handling
|
||||
(match (current-profile)
|
||||
(#f
|
||||
(display-checkout-info format))
|
||||
(profile
|
||||
(display-profile-info profile format))))))
|
|
@ -20,7 +20,7 @@
|
|||
#:use-module (guix ui)
|
||||
#:use-module (guix scripts)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix base16)
|
||||
#:use-module (guix base32)
|
||||
#:use-module ((guix download) #:hide (url-fetch))
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
(define-module (guix scripts hash)
|
||||
#:use-module (guix base32)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix serialization)
|
||||
#:use-module (guix ui)
|
||||
#:use-module (guix scripts)
|
||||
|
@ -44,7 +44,7 @@
|
|||
`((format . ,bytevector->nix-base32-string)))
|
||||
|
||||
(define (show-help)
|
||||
(display (G_ "Usage: guix hash [OPTION] FILE
|
||||
(display (G_ "Usage: gcrypt hash [OPTION] FILE
|
||||
Return the cryptographic hash of FILE.
|
||||
|
||||
Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex'
|
||||
|
@ -93,7 +93,7 @@ and 'hexadecimal' can be used as well).\n"))
|
|||
(exit 0)))
|
||||
(option '(#\V "version") #f #f
|
||||
(lambda args
|
||||
(show-version-and-exit "guix hash")))))
|
||||
(show-version-and-exit "gcrypt hash")))))
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages base)
|
||||
#:autoload (gnu packages package-management) (guix)
|
||||
#:autoload (gnu packages gnupg) (libgcrypt)
|
||||
#:autoload (gnu packages gnupg) (guile-gcrypt)
|
||||
#:autoload (gnu packages guile) (guile2.0-json guile-json)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-9)
|
||||
|
@ -95,10 +95,12 @@ found."
|
|||
(('gnu _ ...) #t)
|
||||
(_ #f)))
|
||||
|
||||
(define guile-sqlite3&co
|
||||
;; Guile-SQLite3 and its propagated inputs.
|
||||
(cons guile-sqlite3
|
||||
(package-transitive-propagated-inputs guile-sqlite3)))
|
||||
(define gcrypt-sqlite3&co
|
||||
;; Guile-Gcrypt, Guile-SQLite3, and their propagated inputs.
|
||||
(append-map (lambda (package)
|
||||
(cons package
|
||||
(package-transitive-propagated-inputs package)))
|
||||
(list guile-gcrypt guile-sqlite3)))
|
||||
|
||||
(define* (self-contained-tarball name profile
|
||||
#:key target
|
||||
|
@ -124,16 +126,14 @@ added to the pack."
|
|||
"guix/store/schema.sql"))))
|
||||
|
||||
(define build
|
||||
(with-imported-modules `(((guix config)
|
||||
=> ,(make-config.scm
|
||||
#:libgcrypt libgcrypt))
|
||||
(with-imported-modules `(((guix config) => ,(make-config.scm))
|
||||
,@(source-module-closure
|
||||
`((guix build utils)
|
||||
(guix build union)
|
||||
(guix build store-copy)
|
||||
(gnu build install))
|
||||
#:select? not-config?))
|
||||
(with-extensions guile-sqlite3&co
|
||||
(with-extensions gcrypt-sqlite3&co
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
((guix build union) #:select (relative-file-name))
|
||||
|
@ -251,22 +251,14 @@ points for virtual file systems (like procfs), and optional symlinks.
|
|||
|
||||
SYMLINKS must be a list of (SOURCE -> TARGET) tuples denoting symlinks to be
|
||||
added to the pack."
|
||||
(define libgcrypt
|
||||
;; XXX: Not strictly needed, but pulled by (guix store database).
|
||||
(module-ref (resolve-interface '(gnu packages gnupg))
|
||||
'libgcrypt))
|
||||
|
||||
|
||||
(define build
|
||||
(with-imported-modules `(((guix config)
|
||||
=> ,(make-config.scm
|
||||
#:libgcrypt libgcrypt))
|
||||
(with-imported-modules `(((guix config) => ,(make-config.scm))
|
||||
,@(source-module-closure
|
||||
'((guix build utils)
|
||||
(guix build store-copy)
|
||||
(gnu build install))
|
||||
#:select? not-config?))
|
||||
(with-extensions guile-sqlite3&co
|
||||
(with-extensions gcrypt-sqlite3&co
|
||||
#~(begin
|
||||
(use-modules (guix build utils)
|
||||
(gnu build install)
|
||||
|
@ -349,32 +341,12 @@ must a be a GNU triplet and it is used to derive the architecture metadata in
|
|||
the image."
|
||||
(define defmod 'define-module) ;trick Geiser
|
||||
|
||||
(define config
|
||||
;; (guix config) module for consumption by (guix gcrypt).
|
||||
(scheme-file "gcrypt-config.scm"
|
||||
#~(begin
|
||||
(#$defmod (guix config)
|
||||
#:export (%libgcrypt))
|
||||
|
||||
;; XXX: Work around <http://bugs.gnu.org/15602>.
|
||||
(eval-when (expand load eval)
|
||||
(define %libgcrypt
|
||||
#+(file-append libgcrypt "/lib/libgcrypt"))))))
|
||||
|
||||
(define json
|
||||
;; Pick the guile-json package that corresponds to the Guile used to build
|
||||
;; derivations.
|
||||
(if (string-prefix? "2.0" (package-version (default-guile)))
|
||||
guile2.0-json
|
||||
guile-json))
|
||||
|
||||
(define build
|
||||
;; Guile-JSON is required by (guix docker).
|
||||
(with-extensions (list json)
|
||||
(with-imported-modules `(,@(source-module-closure '((guix docker)
|
||||
(guix build store-copy))
|
||||
#:select? not-config?)
|
||||
((guix config) => ,config))
|
||||
;; Guile-JSON and Guile-Gcrypt are required by (guix docker).
|
||||
(with-extensions (list guile-json guile-gcrypt)
|
||||
(with-imported-modules (source-module-closure '((guix docker)
|
||||
(guix build store-copy))
|
||||
#:select? not-config?)
|
||||
#~(begin
|
||||
(use-modules (guix docker) (srfi srfi-19) (guix build store-copy))
|
||||
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#:use-module (guix config)
|
||||
#:use-module (guix scripts)
|
||||
#:use-module (guix scripts build)
|
||||
#:autoload (guix describe) (current-profile-entries)
|
||||
#:use-module ((guix build utils)
|
||||
#:select (directory-exists? mkdir-p))
|
||||
#:use-module (ice-9 format)
|
||||
|
@ -238,7 +239,7 @@ of relevance scores."
|
|||
(info (G_ "package '~a' has been superseded by '~a'~%")
|
||||
(manifest-entry-name old) (package-name new))
|
||||
(manifest-transaction-install-entry
|
||||
(package->manifest-entry new (manifest-entry-output old))
|
||||
(package->manifest-entry* new (manifest-entry-output old))
|
||||
(manifest-transaction-remove-pattern
|
||||
(manifest-pattern
|
||||
(name (manifest-entry-name old))
|
||||
|
@ -261,7 +262,7 @@ of relevance scores."
|
|||
(case (version-compare candidate-version version)
|
||||
((>)
|
||||
(manifest-transaction-install-entry
|
||||
(package->manifest-entry pkg output)
|
||||
(package->manifest-entry* pkg output)
|
||||
transaction))
|
||||
((<)
|
||||
transaction)
|
||||
|
@ -274,7 +275,7 @@ of relevance scores."
|
|||
(null? (package-propagated-inputs pkg)))
|
||||
transaction
|
||||
(manifest-transaction-install-entry
|
||||
(package->manifest-entry pkg output)
|
||||
(package->manifest-entry* pkg output)
|
||||
transaction))))))))
|
||||
(#f
|
||||
(warning (G_ "package '~a' no longer exists~%") name)
|
||||
|
@ -570,6 +571,52 @@ upgrading, #f otherwise."
|
|||
(output "out") ;XXX: wild guess
|
||||
(item item))))
|
||||
|
||||
(define (package-provenance package)
|
||||
"Return the provenance of PACKAGE as an sexp for use as the 'provenance'
|
||||
property of manifest entries, or #f if it could not be determined."
|
||||
(define (entry-source entry)
|
||||
(match (assq 'source
|
||||
(manifest-entry-properties entry))
|
||||
(('source value) value)
|
||||
(_ #f)))
|
||||
|
||||
(match (and=> (package-location package) location-file)
|
||||
(#f #f)
|
||||
(file
|
||||
(let ((file (if (string-prefix? "/" file)
|
||||
file
|
||||
(search-path %load-path file))))
|
||||
(and file
|
||||
(string-prefix? (%store-prefix) file)
|
||||
|
||||
;; Always store information about the 'guix' channel and
|
||||
;; optionally about the specific channel FILE comes from.
|
||||
(or (let ((main (and=> (find (lambda (entry)
|
||||
(string=? "guix"
|
||||
(manifest-entry-name entry)))
|
||||
(current-profile-entries))
|
||||
entry-source))
|
||||
(extra (any (lambda (entry)
|
||||
(let ((item (manifest-entry-item entry)))
|
||||
(and (string-prefix? item file)
|
||||
(entry-source entry))))
|
||||
(current-profile-entries))))
|
||||
(and main
|
||||
`(,main
|
||||
,@(if extra (list extra) '()))))))))))
|
||||
|
||||
(define (package->manifest-entry* package output)
|
||||
"Like 'package->manifest-entry', but attach PACKAGE provenance meta-data to
|
||||
the resulting manifest entry."
|
||||
(define (provenance-properties package)
|
||||
(match (package-provenance package)
|
||||
(#f '())
|
||||
(sexp `((provenance ,@sexp)))))
|
||||
|
||||
(package->manifest-entry package output
|
||||
#:properties (provenance-properties package)))
|
||||
|
||||
|
||||
(define (options->installable opts manifest transaction)
|
||||
"Given MANIFEST, the current manifest, and OPTS, the result of 'args-fold',
|
||||
return an variant of TRANSACTION that accounts for the specified installations
|
||||
|
@ -590,13 +637,13 @@ and upgrades."
|
|||
(('install . (? package? p))
|
||||
;; When given a package via `-e', install the first of its
|
||||
;; outputs (XXX).
|
||||
(package->manifest-entry p "out"))
|
||||
(package->manifest-entry* p "out"))
|
||||
(('install . (? string? spec))
|
||||
(if (store-path? spec)
|
||||
(store-item->manifest-entry spec)
|
||||
(let-values (((package output)
|
||||
(specification->package+output spec)))
|
||||
(package->manifest-entry package output))))
|
||||
(package->manifest-entry* package output))))
|
||||
(_ #f))
|
||||
opts))
|
||||
|
||||
|
|
|
@ -44,9 +44,9 @@
|
|||
#:use-module (guix base64)
|
||||
#:use-module (guix config)
|
||||
#:use-module (guix derivations)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix pki)
|
||||
#:use-module (guix pk-crypto)
|
||||
#:use-module (gcrypt pk-crypto)
|
||||
#:use-module (guix workers)
|
||||
#:use-module (guix store)
|
||||
#:use-module ((guix serialization) #:select (write-file))
|
||||
|
|
|
@ -48,7 +48,8 @@
|
|||
#:use-module (srfi srfi-37)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (ice-9 vlist)
|
||||
#:export (guix-pull))
|
||||
#:export (display-profile-content
|
||||
guix-pull))
|
||||
|
||||
|
||||
;;;
|
||||
|
@ -79,6 +80,8 @@ Download and deploy the latest version of Guix.\n"))
|
|||
(display (G_ "
|
||||
-l, --list-generations[=PATTERN]
|
||||
list generations matching PATTERN"))
|
||||
(display (G_ "
|
||||
-p, --profile=PROFILE use PROFILE instead of ~/.config/guix/current"))
|
||||
(display (G_ "
|
||||
--bootstrap use the bootstrap Guile to build the new Guix"))
|
||||
(newline)
|
||||
|
@ -113,6 +116,10 @@ Download and deploy the latest version of Guix.\n"))
|
|||
(lambda (opt name arg result)
|
||||
(alist-cons 'ref `(branch . ,(string-append "origin/" arg))
|
||||
result)))
|
||||
(option '(#\p "profile") #t #f
|
||||
(lambda (opt name arg result)
|
||||
(alist-cons 'profile (canonicalize-profile arg)
|
||||
result)))
|
||||
(option '(#\n "dry-run") #f #f
|
||||
(lambda (opt name arg result)
|
||||
(alist-cons 'dry-run? #t (alist-cons 'graft? #f result))))
|
||||
|
@ -152,15 +159,12 @@ Download and deploy the latest version of Guix.\n"))
|
|||
#:heading (G_ "New in this revision:\n"))))
|
||||
(_ #t)))
|
||||
|
||||
(define* (build-and-install instances config-dir
|
||||
(define* (build-and-install instances profile
|
||||
#:key verbose?)
|
||||
"Build the tool from SOURCE, and install it in CONFIG-DIR."
|
||||
"Build the tool from SOURCE, and install it in PROFILE."
|
||||
(define update-profile
|
||||
(store-lift build-and-use-profile))
|
||||
|
||||
(define profile
|
||||
(string-append config-dir "/current"))
|
||||
|
||||
(mlet %store-monad ((manifest (channel-instances->manifest instances)))
|
||||
(mbegin %store-monad
|
||||
(update-profile profile manifest)
|
||||
|
@ -414,7 +418,9 @@ Use '~/.config/guix/channels.scm' instead."))
|
|||
(let* ((opts (parse-command-line args %options
|
||||
(list %default-options)))
|
||||
(cache (string-append (cache-directory) "/pull"))
|
||||
(channels (channel-list opts)))
|
||||
(channels (channel-list opts))
|
||||
(profile (or (assoc-ref opts 'profile)
|
||||
(string-append (config-directory) "/current"))))
|
||||
|
||||
(cond ((assoc-ref opts 'query)
|
||||
(process-query opts))
|
||||
|
@ -456,7 +462,7 @@ Use '~/.config/guix/channels.scm' instead."))
|
|||
%bootstrap-guile
|
||||
(canonical-package guile-2.2)))))
|
||||
(run-with-store store
|
||||
(build-and-install instances (config-directory)
|
||||
(build-and-install instances profile
|
||||
#:verbose?
|
||||
(assoc-ref opts 'verbose?)))))))))))))
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
(define-module (guix scripts refresh)
|
||||
#:use-module (guix ui)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix scripts)
|
||||
#:use-module (guix store)
|
||||
#:use-module (guix utils)
|
||||
|
|
|
@ -26,11 +26,11 @@
|
|||
#:use-module (guix config)
|
||||
#:use-module (guix records)
|
||||
#:use-module ((guix serialization) #:select (restore-file))
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix base32)
|
||||
#:use-module (guix base64)
|
||||
#:use-module (guix cache)
|
||||
#:use-module (guix pk-crypto)
|
||||
#:use-module (gcrypt pk-crypto)
|
||||
#:use-module (guix pki)
|
||||
#:use-module ((guix build utils) #:select (mkdir-p dump-port))
|
||||
#:use-module ((guix build download)
|
||||
|
|
|
@ -83,8 +83,8 @@ GUILE-VERSION (\"2.0\" or \"2.2\"), or #f if none of the packages matches."
|
|||
("guile-ssh" (ref '(gnu packages ssh) 'guile-ssh))
|
||||
("guile-git" (ref '(gnu packages guile) 'guile-git))
|
||||
("guile-sqlite3" (ref '(gnu packages guile) 'guile-sqlite3))
|
||||
("guile-gcrypt" (ref '(gnu packages gnupg) 'guile-gcrypt))
|
||||
("gnutls" (ref '(gnu packages tls) 'gnutls))
|
||||
("libgcrypt" (ref '(gnu packages gnupg) 'libgcrypt))
|
||||
("zlib" (ref '(gnu packages compression) 'zlib))
|
||||
("gzip" (ref '(gnu packages compression) 'gzip))
|
||||
("bzip2" (ref '(gnu packages compression) 'bzip2))
|
||||
|
@ -454,7 +454,6 @@ assumed to be part of MODULES."
|
|||
(name (string-append "guix-" version))
|
||||
(guile-version (effective-version))
|
||||
(guile-for-build (guile-for-build guile-version))
|
||||
(libgcrypt (specification->package "libgcrypt"))
|
||||
(zlib (specification->package "zlib"))
|
||||
(gzip (specification->package "gzip"))
|
||||
(bzip2 (specification->package "bzip2"))
|
||||
|
@ -481,6 +480,10 @@ assumed to be part of MODULES."
|
|||
"guile-sqlite3"
|
||||
"guile2.0-sqlite3"))
|
||||
|
||||
(define guile-gcrypt
|
||||
(package-for-guile guile-version
|
||||
"guile-gcrypt"))
|
||||
|
||||
(define gnutls
|
||||
(package-for-guile guile-version
|
||||
"gnutls" "guile2.0-gnutls"))
|
||||
|
@ -489,7 +492,7 @@ assumed to be part of MODULES."
|
|||
(match (append-map (lambda (package)
|
||||
(cons (list "x" package)
|
||||
(package-transitive-propagated-inputs package)))
|
||||
(list gnutls guile-git guile-json
|
||||
(list guile-gcrypt gnutls guile-git guile-json
|
||||
guile-ssh guile-sqlite3))
|
||||
(((labels packages _ ...) ...)
|
||||
packages)))
|
||||
|
@ -513,10 +516,7 @@ assumed to be part of MODULES."
|
|||
;; rebuilt when the version changes, which in turn means we
|
||||
;; can have substitutes for it.
|
||||
#:extra-modules
|
||||
`(((guix config)
|
||||
=> ,(make-config.scm #:libgcrypt
|
||||
(specification->package
|
||||
"libgcrypt"))))
|
||||
`(((guix config) => ,(make-config.scm)))
|
||||
|
||||
;; (guix man-db) is needed at build-time by (guix profiles)
|
||||
;; but we don't need to compile it; not compiling it allows
|
||||
|
@ -526,6 +526,7 @@ assumed to be part of MODULES."
|
|||
("guix/store/schema.sql"
|
||||
,(local-file "../guix/store/schema.sql")))
|
||||
|
||||
#:extensions (list guile-gcrypt)
|
||||
#:guile-for-build guile-for-build))
|
||||
|
||||
(define *extra-modules*
|
||||
|
@ -600,8 +601,7 @@ assumed to be part of MODULES."
|
|||
'()
|
||||
#:extra-modules
|
||||
`(((guix config)
|
||||
=> ,(make-config.scm #:libgcrypt libgcrypt
|
||||
#:zlib zlib
|
||||
=> ,(make-config.scm #:zlib zlib
|
||||
#:gzip gzip
|
||||
#:bzip2 bzip2
|
||||
#:xz xz
|
||||
|
@ -684,7 +684,7 @@ assumed to be part of MODULES."
|
|||
|
||||
(define %dependency-variables
|
||||
;; (guix config) variables corresponding to dependencies.
|
||||
'(%libgcrypt %libz %xz %gzip %bzip2))
|
||||
'(%libz %xz %gzip %bzip2))
|
||||
|
||||
(define %persona-variables
|
||||
;; (guix config) variables that define Guix's persona.
|
||||
|
@ -703,7 +703,7 @@ assumed to be part of MODULES."
|
|||
(variables rest ...))))))
|
||||
(variables %localstatedir %storedir %sysconfdir %system)))
|
||||
|
||||
(define* (make-config.scm #:key libgcrypt zlib gzip xz bzip2
|
||||
(define* (make-config.scm #:key zlib gzip xz bzip2
|
||||
(package-name "GNU Guix")
|
||||
(package-version "0")
|
||||
(bug-report-address "bug-guix@gnu.org")
|
||||
|
@ -723,7 +723,6 @@ assumed to be part of MODULES."
|
|||
%state-directory
|
||||
%store-database-directory
|
||||
%config-directory
|
||||
%libgcrypt
|
||||
%libz
|
||||
%gzip
|
||||
%bzip2
|
||||
|
@ -766,9 +765,6 @@ assumed to be part of MODULES."
|
|||
(define %xz
|
||||
#+(and xz (file-append xz "/bin/xz")))
|
||||
|
||||
(define %libgcrypt
|
||||
#+(and libgcrypt
|
||||
(file-append libgcrypt "/lib/libgcrypt")))
|
||||
(define %libz
|
||||
#+(and zlib
|
||||
(file-append zlib "/lib/libz"))))
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
#:use-module (guix monads)
|
||||
#:use-module (guix base16)
|
||||
#:use-module (guix base32)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix profiling)
|
||||
#:autoload (guix build syscalls) (terminal-columns)
|
||||
#:use-module (rnrs bytevectors)
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
;;; timestamps, deduplicating, etc.
|
||||
|
||||
(define-module (guix store deduplication)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix build utils)
|
||||
#:use-module (guix base16)
|
||||
#:use-module (srfi srfi-11)
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#:use-module (guix packages)
|
||||
#:use-module (guix base32)
|
||||
#:use-module (guix serialization)
|
||||
#:use-module (guix hash)
|
||||
#:use-module (gcrypt hash)
|
||||
#:use-module (guix build-system gnu)
|
||||
#:use-module (gnu packages bootstrap)
|
||||
#:use-module (srfi srfi-34)
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue