Merge branch 'master' into core-updates
This commit is contained in:
commit
64de896a71
2
HACKING
2
HACKING
|
@ -42,7 +42,7 @@ make sure to run ‘git pull --rebase’.
|
||||||
All commits that are pushed to the central repository on Savannah must be
|
All commits that are pushed to the central repository on Savannah must be
|
||||||
signed with an OpenPGP key, and the public key should be uploaded to your user
|
signed with an OpenPGP key, and the public key should be uploaded to your user
|
||||||
account on Savannah and to public key servers, such as
|
account on Savannah and to public key servers, such as
|
||||||
‘pool.sks-keyservers.net’. To configure Git to automatically sign commits,
|
‘keys.openpgp.org’. To configure Git to automatically sign commits,
|
||||||
run:
|
run:
|
||||||
|
|
||||||
git config commit.gpgsign true
|
git config commit.gpgsign true
|
||||||
|
|
14
Makefile.am
14
Makefile.am
|
@ -98,6 +98,7 @@ MODULES = \
|
||||||
guix/self.scm \
|
guix/self.scm \
|
||||||
guix/upstream.scm \
|
guix/upstream.scm \
|
||||||
guix/licenses.scm \
|
guix/licenses.scm \
|
||||||
|
guix/lint.scm \
|
||||||
guix/glob.scm \
|
guix/glob.scm \
|
||||||
guix/git.scm \
|
guix/git.scm \
|
||||||
guix/graph.scm \
|
guix/graph.scm \
|
||||||
|
@ -125,6 +126,7 @@ MODULES = \
|
||||||
guix/build-system/guile.scm \
|
guix/build-system/guile.scm \
|
||||||
guix/build-system/haskell.scm \
|
guix/build-system/haskell.scm \
|
||||||
guix/build-system/linux-module.scm \
|
guix/build-system/linux-module.scm \
|
||||||
|
guix/build-system/node.scm \
|
||||||
guix/build-system/perl.scm \
|
guix/build-system/perl.scm \
|
||||||
guix/build-system/python.scm \
|
guix/build-system/python.scm \
|
||||||
guix/build-system/ocaml.scm \
|
guix/build-system/ocaml.scm \
|
||||||
|
@ -170,6 +172,7 @@ MODULES = \
|
||||||
guix/build/gnu-build-system.scm \
|
guix/build/gnu-build-system.scm \
|
||||||
guix/build/gnu-dist.scm \
|
guix/build/gnu-dist.scm \
|
||||||
guix/build/guile-build-system.scm \
|
guix/build/guile-build-system.scm \
|
||||||
|
guix/build/node-build-system.scm \
|
||||||
guix/build/perl-build-system.scm \
|
guix/build/perl-build-system.scm \
|
||||||
guix/build/python-build-system.scm \
|
guix/build/python-build-system.scm \
|
||||||
guix/build/ocaml-build-system.scm \
|
guix/build/ocaml-build-system.scm \
|
||||||
|
@ -182,6 +185,7 @@ MODULES = \
|
||||||
guix/build/haskell-build-system.scm \
|
guix/build/haskell-build-system.scm \
|
||||||
guix/build/linux-module-build-system.scm \
|
guix/build/linux-module-build-system.scm \
|
||||||
guix/build/store-copy.scm \
|
guix/build/store-copy.scm \
|
||||||
|
guix/build/json.scm \
|
||||||
guix/build/utils.scm \
|
guix/build/utils.scm \
|
||||||
guix/build/union.scm \
|
guix/build/union.scm \
|
||||||
guix/build/profiles.scm \
|
guix/build/profiles.scm \
|
||||||
|
@ -303,11 +307,11 @@ dist_noinst_DATA = guix/tests.scm guix/tests/http.scm
|
||||||
AUX_FILES = \
|
AUX_FILES = \
|
||||||
gnu/packages/aux-files/chromium/master-preferences.json \
|
gnu/packages/aux-files/chromium/master-preferences.json \
|
||||||
gnu/packages/aux-files/emacs/guix-emacs.el \
|
gnu/packages/aux-files/emacs/guix-emacs.el \
|
||||||
gnu/packages/aux-files/linux-libre/5.1-arm.conf \
|
gnu/packages/aux-files/linux-libre/5.2-arm.conf \
|
||||||
gnu/packages/aux-files/linux-libre/5.1-arm-veyron.conf \
|
gnu/packages/aux-files/linux-libre/5.2-arm-veyron.conf \
|
||||||
gnu/packages/aux-files/linux-libre/5.1-arm64.conf \
|
gnu/packages/aux-files/linux-libre/5.2-arm64.conf \
|
||||||
gnu/packages/aux-files/linux-libre/5.1-i686.conf \
|
gnu/packages/aux-files/linux-libre/5.2-i686.conf \
|
||||||
gnu/packages/aux-files/linux-libre/5.1-x86_64.conf \
|
gnu/packages/aux-files/linux-libre/5.2-x86_64.conf \
|
||||||
gnu/packages/aux-files/linux-libre/4.19-arm.conf \
|
gnu/packages/aux-files/linux-libre/4.19-arm.conf \
|
||||||
gnu/packages/aux-files/linux-libre/4.19-arm64.conf \
|
gnu/packages/aux-files/linux-libre/4.19-arm64.conf \
|
||||||
gnu/packages/aux-files/linux-libre/4.19-i686.conf \
|
gnu/packages/aux-files/linux-libre/4.19-i686.conf \
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
(package-name "GNU Guix")
|
(package-name "GNU Guix")
|
||||||
(package-version "0")
|
(package-version "0")
|
||||||
(bug-report-address "bug-guix@gnu.org")
|
(bug-report-address "bug-guix@gnu.org")
|
||||||
(home-page-url "https://gnu.org/s/guix"))
|
(home-page-url "https://guix.gnu.org"))
|
||||||
|
|
||||||
;; Hack so that Geiser is not confused.
|
;; Hack so that Geiser is not confused.
|
||||||
(define defmod 'define-module)
|
(define defmod 'define-module)
|
||||||
|
|
103
doc/build.scm
103
doc/build.scm
|
@ -34,6 +34,7 @@
|
||||||
(gnu packages gawk)
|
(gnu packages gawk)
|
||||||
(gnu packages gettext)
|
(gnu packages gettext)
|
||||||
(gnu packages guile)
|
(gnu packages guile)
|
||||||
|
(gnu packages iso-codes)
|
||||||
(gnu packages texinfo)
|
(gnu packages texinfo)
|
||||||
(gnu packages tex)
|
(gnu packages tex)
|
||||||
(srfi srfi-19)
|
(srfi srfi-19)
|
||||||
|
@ -176,6 +177,9 @@ makeinfo OPTIONS."
|
||||||
#:languages languages
|
#:languages languages
|
||||||
#:date date))
|
#:date date))
|
||||||
|
|
||||||
|
(define images
|
||||||
|
(texinfo-manual-images source))
|
||||||
|
|
||||||
(define build
|
(define build
|
||||||
(with-imported-modules '((guix build utils))
|
(with-imported-modules '((guix build utils))
|
||||||
#~(begin
|
#~(begin
|
||||||
|
@ -183,7 +187,7 @@ makeinfo OPTIONS."
|
||||||
(ice-9 match))
|
(ice-9 match))
|
||||||
|
|
||||||
(define (normalize language)
|
(define (normalize language)
|
||||||
;; Normalize LANGUAGE. For instance, "zh_CN" become "zh-cn".
|
;; Normalize LANGUAGE. For instance, "zh_CN" becomes "zh-cn".
|
||||||
(string-map (match-lambda
|
(string-map (match-lambda
|
||||||
(#\_ #\-)
|
(#\_ #\-)
|
||||||
(chr chr))
|
(chr chr))
|
||||||
|
@ -227,7 +231,15 @@ makeinfo OPTIONS."
|
||||||
""
|
""
|
||||||
(string-append "." language))
|
(string-append "." language))
|
||||||
".html")
|
".html")
|
||||||
opts)))
|
opts)
|
||||||
|
|
||||||
|
;; Make sure images are available.
|
||||||
|
(symlink #$images
|
||||||
|
(string-append #$output "/" (normalize language)
|
||||||
|
"/images"))
|
||||||
|
(symlink #$images
|
||||||
|
(string-append #$output "/" (normalize language)
|
||||||
|
"/html_node/images"))))
|
||||||
'#$languages))))
|
'#$languages))))
|
||||||
|
|
||||||
(computed-file (string-append manual "-html-manual") build))
|
(computed-file (string-append manual "-html-manual") build))
|
||||||
|
@ -365,16 +377,19 @@ from SOURCE."
|
||||||
(manual "guix")
|
(manual "guix")
|
||||||
(date 1))
|
(date 1))
|
||||||
(define build
|
(define build
|
||||||
|
(with-extensions (list guile-json-3)
|
||||||
(with-imported-modules '((guix build utils))
|
(with-imported-modules '((guix build utils))
|
||||||
#~(begin
|
#~(begin
|
||||||
(use-modules (guix build utils)
|
(use-modules (guix build utils)
|
||||||
|
(json)
|
||||||
(ice-9 match)
|
(ice-9 match)
|
||||||
(ice-9 popen)
|
(ice-9 popen)
|
||||||
(sxml simple)
|
(sxml simple)
|
||||||
|
(srfi srfi-1)
|
||||||
(srfi srfi-19))
|
(srfi srfi-19))
|
||||||
|
|
||||||
(define (normalize language) ;XXX: deduplicate
|
(define (normalize language) ;XXX: deduplicate
|
||||||
;; Normalize LANGUAGE. For instance, "zh_CN" become "zh-cn".
|
;; Normalize LANGUAGE. For instance, "zh_CN" becomes "zh-cn".
|
||||||
(string-map (match-lambda
|
(string-map (match-lambda
|
||||||
(#\_ #\-)
|
(#\_ #\-)
|
||||||
(chr chr))
|
(chr chr))
|
||||||
|
@ -402,7 +417,10 @@ from SOURCE."
|
||||||
#+(guix-manual-text-domain
|
#+(guix-manual-text-domain
|
||||||
source
|
source
|
||||||
languages))
|
languages))
|
||||||
(write (gettext ,str "guix-manual"))))
|
(bindtextdomain "iso_639-3" ;language names
|
||||||
|
#+(file-append iso-codes
|
||||||
|
"/share/locale"))
|
||||||
|
(write (gettext ,str ,domain))))
|
||||||
|
|
||||||
(with-language language
|
(with-language language
|
||||||
;; Since the 'gettext' function caches msgid translations,
|
;; Since the 'gettext' function caches msgid translations,
|
||||||
|
@ -424,10 +442,7 @@ from SOURCE."
|
||||||
(define (guix-url path)
|
(define (guix-url path)
|
||||||
(string-append #$%web-site-url path))
|
(string-append #$%web-site-url path))
|
||||||
|
|
||||||
(define (sxml-index language)
|
(define (sxml-index language title body)
|
||||||
(define title
|
|
||||||
(translate "GNU Guix Reference Manual" language))
|
|
||||||
|
|
||||||
;; FIXME: Avoid duplicating styling info from guix-artwork.git.
|
;; FIXME: Avoid duplicating styling info from guix-artwork.git.
|
||||||
`(html (@ (lang ,language))
|
`(html (@ (lang ,language))
|
||||||
(head
|
(head
|
||||||
|
@ -458,7 +473,16 @@ from SOURCE."
|
||||||
(a (@ (class "crumb")
|
(a (@ (class "crumb")
|
||||||
(href #$%web-site-url))
|
(href #$%web-site-url))
|
||||||
"Home"))
|
"Home"))
|
||||||
(main
|
,body
|
||||||
|
(footer))))
|
||||||
|
|
||||||
|
(define (language-index language)
|
||||||
|
(define title
|
||||||
|
(translate "GNU Guix Reference Manual" language))
|
||||||
|
|
||||||
|
(sxml-index
|
||||||
|
language title
|
||||||
|
`(main
|
||||||
(article
|
(article
|
||||||
(@ (class "page centered-block limit-width"))
|
(@ (class "page centered-block limit-width"))
|
||||||
(h2 ,title)
|
(h2 ,title)
|
||||||
|
@ -489,33 +513,72 @@ from SOURCE."
|
||||||
(string-append "."
|
(string-append "."
|
||||||
language))
|
language))
|
||||||
".pdf"))))
|
".pdf"))))
|
||||||
"PDF")))))))
|
"PDF")))))))))
|
||||||
(footer))))
|
|
||||||
|
|
||||||
(define (write-index language file)
|
(define %iso639-languages
|
||||||
|
(vector->list
|
||||||
|
(assoc-ref (call-with-input-file
|
||||||
|
#+(file-append iso-codes
|
||||||
|
"/share/iso-codes/json/iso_639-3.json")
|
||||||
|
json->scm)
|
||||||
|
"639-3")))
|
||||||
|
|
||||||
|
(define (language-code->name code)
|
||||||
|
"Return the full name of a language from its ISO-639-3 code."
|
||||||
|
(let ((code (match (string-index code #\_)
|
||||||
|
(#f code)
|
||||||
|
(index (string-take code index)))))
|
||||||
|
(any (lambda (language)
|
||||||
|
(and (string=? (or (assoc-ref language "alpha_2")
|
||||||
|
(assoc-ref language "alpha_3"))
|
||||||
|
code)
|
||||||
|
(assoc-ref language "name")))
|
||||||
|
%iso639-languages)))
|
||||||
|
|
||||||
|
(define (top-level-index languages)
|
||||||
|
(define title
|
||||||
|
"GNU Guix Reference Manual")
|
||||||
|
(sxml-index
|
||||||
|
"en" title
|
||||||
|
`(main
|
||||||
|
(article
|
||||||
|
(@ (class "page centered-block limit-width"))
|
||||||
|
(h2 ,title)
|
||||||
|
(div
|
||||||
|
"The GNU Guix Reference Manual is available in the following
|
||||||
|
languages:\n"
|
||||||
|
(ul
|
||||||
|
,@(map (lambda (language)
|
||||||
|
`(li (a (@ (href ,(normalize language)))
|
||||||
|
,(translate
|
||||||
|
(language-code->name language)
|
||||||
|
language
|
||||||
|
#:domain "iso_639-3"))))
|
||||||
|
languages)))))))
|
||||||
|
|
||||||
|
(define (write-html file sxml)
|
||||||
(call-with-output-file file
|
(call-with-output-file file
|
||||||
(lambda (port)
|
(lambda (port)
|
||||||
(display "<!DOCTYPE html>\n" port)
|
(display "<!DOCTYPE html>\n" port)
|
||||||
(sxml->xml (sxml-index language) port))))
|
(sxml->xml sxml port))))
|
||||||
|
|
||||||
(setenv "GUIX_LOCPATH"
|
(setenv "GUIX_LOCPATH"
|
||||||
#+(file-append glibc-utf8-locales "/lib/locale"))
|
#+(file-append glibc-utf8-locales "/lib/locale"))
|
||||||
(setenv "LC_ALL" "en_US.utf8")
|
(setenv "LC_ALL" "en_US.utf8")
|
||||||
(setlocale LC_ALL "en_US.utf8")
|
(setlocale LC_ALL "en_US.utf8")
|
||||||
|
|
||||||
(bindtextdomain "guix-manual"
|
|
||||||
#+(guix-manual-text-domain source languages))
|
|
||||||
|
|
||||||
(for-each (lambda (language)
|
(for-each (lambda (language)
|
||||||
(define directory
|
(define directory
|
||||||
(string-append #$output "/"
|
(string-append #$output "/"
|
||||||
(normalize language)))
|
(normalize language)))
|
||||||
|
|
||||||
(mkdir-p directory)
|
(mkdir-p directory)
|
||||||
(write-index language
|
(write-html (string-append directory "/index.html")
|
||||||
(string-append directory
|
(language-index language)))
|
||||||
"/index.html")))
|
'#$languages)
|
||||||
'#$languages))))
|
|
||||||
|
(write-html (string-append #$output "/index.html")
|
||||||
|
(top-level-index '#$languages))))))
|
||||||
|
|
||||||
(computed-file "html-indexes" build))
|
(computed-file "html-indexes" build))
|
||||||
|
|
||||||
|
|
|
@ -38,19 +38,6 @@ version from the Git repository:
|
||||||
git clone https://git.savannah.gnu.org/git/guix.git
|
git clone https://git.savannah.gnu.org/git/guix.git
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
When building Guix from a checkout,
|
|
||||||
the following packages are required in addition to those mentioned in
|
|
||||||
the installation instructions (@pxref{Requirements}).
|
|
||||||
|
|
||||||
@itemize
|
|
||||||
@item @url{http://gnu.org/software/autoconf/, GNU Autoconf};
|
|
||||||
@item @url{http://gnu.org/software/automake/, GNU Automake};
|
|
||||||
@item @url{http://gnu.org/software/gettext/, GNU Gettext};
|
|
||||||
@item @url{http://gnu.org/software/texinfo/, GNU Texinfo};
|
|
||||||
@item @url{http://www.graphviz.org/, Graphviz};
|
|
||||||
@item @url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}.
|
|
||||||
@end itemize
|
|
||||||
|
|
||||||
The easiest way to set up a development environment for Guix is, of
|
The easiest way to set up a development environment for Guix is, of
|
||||||
course, by using Guix! The following command starts a new shell where
|
course, by using Guix! The following command starts a new shell where
|
||||||
all the dependencies and appropriate environment variables are set up to
|
all the dependencies and appropriate environment variables are set up to
|
||||||
|
@ -61,7 +48,22 @@ guix environment guix --pure
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@xref{Invoking guix environment}, for more information on that command.
|
@xref{Invoking guix environment}, for more information on that command.
|
||||||
Extra dependencies can be added with @option{--ad-hoc}:
|
|
||||||
|
If you are unable to use Guix when building Guix from a checkout, the
|
||||||
|
following are the required packages in addition to those mentioned in the
|
||||||
|
installation instructions (@pxref{Requirements}).
|
||||||
|
|
||||||
|
@itemize
|
||||||
|
@item @url{http://gnu.org/software/autoconf/, GNU Autoconf};
|
||||||
|
@item @url{http://gnu.org/software/automake/, GNU Automake};
|
||||||
|
@item @url{http://gnu.org/software/gettext/, GNU Gettext};
|
||||||
|
@item @url{http://gnu.org/software/texinfo/, GNU Texinfo};
|
||||||
|
@item @url{http://www.graphviz.org/, Graphviz};
|
||||||
|
@item @url{http://www.gnu.org/software/help2man/, GNU Help2man (optional)}.
|
||||||
|
@end itemize
|
||||||
|
|
||||||
|
On Guix, extra dependencies can be added by instead running @command{guix
|
||||||
|
environment} with @option{--ad-hoc}:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
guix environment guix --pure --ad-hoc help2man git strace
|
guix environment guix --pure --ad-hoc help2man git strace
|
||||||
|
@ -113,8 +115,8 @@ run @code{make install}. To do that, you first need to have an environment
|
||||||
with all the dependencies available (@pxref{Building from Git}), and then
|
with all the dependencies available (@pxref{Building from Git}), and then
|
||||||
simply prefix each command with
|
simply prefix each command with
|
||||||
@command{./pre-inst-env} (the @file{pre-inst-env} script lives in the
|
@command{./pre-inst-env} (the @file{pre-inst-env} script lives in the
|
||||||
top build tree of Guix; it is generated by @command{./configure}),
|
top build tree of Guix; it is generated by @command{./configure}).
|
||||||
as in@footnote{The @option{-E} flag to
|
An example@footnote{The @option{-E} flag to
|
||||||
@command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set
|
@command{sudo} guarantees that @code{GUILE_LOAD_PATH} is correctly set
|
||||||
such that @command{guix-daemon} and the tools it uses can find the Guile
|
such that @command{guix-daemon} and the tools it uses can find the Guile
|
||||||
modules they need.}:
|
modules they need.}:
|
||||||
|
@ -125,7 +127,7 @@ $ ./pre-inst-env guix build hello
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
Similarly, for a Guile session using the Guix modules:
|
Similarly, an example for a Guile session using the Guix modules:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'
|
$ ./pre-inst-env guile -c '(use-modules (guix utils)) (pk (%current-system))'
|
||||||
|
@ -982,5 +984,6 @@ first send one message to @email{guix-patches@@gnu.org}, and then send
|
||||||
subsequent patches to @email{@var{NNN}@@debbugs.gnu.org} to make sure
|
subsequent patches to @email{@var{NNN}@@debbugs.gnu.org} to make sure
|
||||||
they are kept together. See
|
they are kept together. See
|
||||||
@uref{https://debbugs.gnu.org/Advanced.html, the Debbugs documentation}
|
@uref{https://debbugs.gnu.org/Advanced.html, the Debbugs documentation}
|
||||||
for more information.
|
for more information. You can install @command{git send-email} with
|
||||||
|
@command{guix install git:send-email}.
|
||||||
@c Debbugs bug: https://debbugs.gnu.org/db/15/15361.html
|
@c Debbugs bug: https://debbugs.gnu.org/db/15/15361.html
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
@c Identifier of the OpenPGP key used to sign tarballs and such.
|
@c Identifier of the OpenPGP key used to sign tarballs and such.
|
||||||
@set OPENPGP-SIGNING-KEY-ID 3CE464558A84FDC69DB40CFB090B11993D9AEBB5
|
@set OPENPGP-SIGNING-KEY-ID 3CE464558A84FDC69DB40CFB090B11993D9AEBB5
|
||||||
@set KEY-SERVER pool.sks-keyservers.net
|
@set OPENPGP-SIGNING-KEY-URL https://sv.gnu.org/people/viewgpg.php?user_id=15145
|
||||||
|
|
||||||
@c Base URL for downloads.
|
@c Base URL for downloads.
|
||||||
@set BASE-URL https://ftp.gnu.org/gnu/guix
|
@set BASE-URL https://ftp.gnu.org/gnu/guix
|
||||||
|
@ -558,8 +558,8 @@ If that command fails because you do not have the required public key,
|
||||||
then run this command to import it:
|
then run this command to import it:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
$ gpg --keyserver @value{KEY-SERVER} \
|
$ wget @value{OPENPGP-SIGNING-KEY-URL} \
|
||||||
--recv-keys @value{OPENPGP-SIGNING-KEY-ID}
|
-qO - | gpg --import -
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
|
@ -1905,8 +1905,8 @@ If that command fails because you do not have the required public key,
|
||||||
then run this command to import it:
|
then run this command to import it:
|
||||||
|
|
||||||
@example
|
@example
|
||||||
$ gpg --keyserver @value{KEY-SERVER} \
|
$ wget @value{OPENPGP-SIGNING-KEY-URL} \
|
||||||
--recv-keys @value{OPENPGP-SIGNING-KEY-ID}
|
-qO - | gpg --import -
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
|
@ -3921,6 +3921,19 @@ For the sake of reliability and maintainability, you should avoid dependencies
|
||||||
on channels that you don't control, and you should aim to keep the number of
|
on channels that you don't control, and you should aim to keep the number of
|
||||||
dependencies to a minimum.
|
dependencies to a minimum.
|
||||||
|
|
||||||
|
@cindex subdirectory, channels
|
||||||
|
@subsection Package Modules in a Sub-directory
|
||||||
|
|
||||||
|
As a channel author, you may want to keep your channel modules in a
|
||||||
|
sub-directory. If your modules are in the sub-directory @file{guix}, you must
|
||||||
|
add a meta-data file @file{.guix-channel} that contains:
|
||||||
|
|
||||||
|
@lisp
|
||||||
|
(channel
|
||||||
|
(version 0)
|
||||||
|
(directory "guix"))
|
||||||
|
@end lisp
|
||||||
|
|
||||||
@subsection Replicating Guix
|
@subsection Replicating Guix
|
||||||
|
|
||||||
@cindex pinning, channels
|
@cindex pinning, channels
|
||||||
|
@ -6333,6 +6346,17 @@ the module (in the "arguments" form of a package using the
|
||||||
linux-module-build-system, use the key #:linux to specify it).
|
linux-module-build-system, use the key #:linux to specify it).
|
||||||
@end defvr
|
@end defvr
|
||||||
|
|
||||||
|
@defvr {Scheme Variable} node-build-system
|
||||||
|
This variable is exported by @code{(guix build-system node)}. It
|
||||||
|
implements the build procedure used by @uref{http://nodejs.org,
|
||||||
|
Node.js}, which implements an approximation of the @code{npm install}
|
||||||
|
command, followed by an @code{npm test} command.
|
||||||
|
|
||||||
|
Which Node.js package is used to interpret the @code{npm} commands can
|
||||||
|
be specified with the @code{#:node} parameter which defaults to
|
||||||
|
@code{node}.
|
||||||
|
@end defvr
|
||||||
|
|
||||||
Lastly, for packages that do not need anything as sophisticated, a
|
Lastly, for packages that do not need anything as sophisticated, a
|
||||||
``trivial'' build system is provided. It is trivial in the sense that
|
``trivial'' build system is provided. It is trivial in the sense that
|
||||||
it provides basically no support: it does not pull any implicit inputs,
|
it provides basically no support: it does not pull any implicit inputs,
|
||||||
|
@ -25547,7 +25571,7 @@ vm-image} on x86_64 hardware:
|
||||||
@example
|
@example
|
||||||
$ qemu-system-x86_64 \
|
$ qemu-system-x86_64 \
|
||||||
-net user -net nic,model=virtio \
|
-net user -net nic,model=virtio \
|
||||||
-enable-kvm -m 512 \
|
-enable-kvm -m 1024 \
|
||||||
-device virtio-blk,drive=myhd \
|
-device virtio-blk,drive=myhd \
|
||||||
-drive if=none,file=/tmp/qemu-image,id=myhd
|
-drive if=none,file=/tmp/qemu-image,id=myhd
|
||||||
@end example
|
@end example
|
||||||
|
|
|
@ -1116,6 +1116,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/netsurf-longer-test-timeout.patch \
|
%D%/packages/patches/netsurf-longer-test-timeout.patch \
|
||||||
%D%/packages/patches/nfs-utils-missing-headers.patch \
|
%D%/packages/patches/nfs-utils-missing-headers.patch \
|
||||||
%D%/packages/patches/ngircd-handle-zombies.patch \
|
%D%/packages/patches/ngircd-handle-zombies.patch \
|
||||||
|
%D%/packages/patches/nm-plugin-path.patch \
|
||||||
%D%/packages/patches/nss-increase-test-timeout.patch \
|
%D%/packages/patches/nss-increase-test-timeout.patch \
|
||||||
%D%/packages/patches/nss-pkgconfig.patch \
|
%D%/packages/patches/nss-pkgconfig.patch \
|
||||||
%D%/packages/patches/ntfs-3g-CVE-2019-9755.patch \
|
%D%/packages/patches/ntfs-3g-CVE-2019-9755.patch \
|
||||||
|
|
|
@ -1453,6 +1453,28 @@ tables. This package contains only the user-space tools needed for ACPI table
|
||||||
development, not the kernel implementation of ACPI.")
|
development, not the kernel implementation of ACPI.")
|
||||||
(license license:gpl2))) ; dual GPLv2/ACPICA Licence
|
(license license:gpl2))) ; dual GPLv2/ACPICA Licence
|
||||||
|
|
||||||
|
(define-public s-tui
|
||||||
|
(package
|
||||||
|
(name "s-tui")
|
||||||
|
(version "0.8.3")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "s-tui" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"00lsh2v4i8rwfyjyxx5lijd6rnk9smcfffhzg5sv94ijpcnh216m"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("python-psutil" ,python-psutil)
|
||||||
|
("python-urwid" ,python-urwid)))
|
||||||
|
(home-page "https://github.com/amanusk/s-tui")
|
||||||
|
(synopsis "Interactive terminal stress test and monitoring tool")
|
||||||
|
(description
|
||||||
|
"The Stress Terminal UI displays graphs of the CPU frequency,
|
||||||
|
utilization, temperature and power.")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
||||||
(define-public stress
|
(define-public stress
|
||||||
(package
|
(package
|
||||||
(name "stress")
|
(name "stress")
|
||||||
|
@ -1570,14 +1592,14 @@ environment variable is set and output is to tty.")
|
||||||
(define-public direvent
|
(define-public direvent
|
||||||
(package
|
(package
|
||||||
(name "direvent")
|
(name "direvent")
|
||||||
(version "5.1")
|
(version "5.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://gnu/direvent/direvent-"
|
(uri (string-append "mirror://gnu/direvent/direvent-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1nwvjmx7kb14ni34c0b8x9a3791pc20gvhj7xaj66d8q4h6n0qf4"))
|
"0m9vi01b1km0cpknflyzsjnknbava0s1n6393b2bpjwyvb6j5613"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet '(begin
|
(snippet '(begin
|
||||||
(substitute* "tests/testsuite"
|
(substitute* "tests/testsuite"
|
||||||
|
|
|
@ -224,7 +224,7 @@ the real span of the lattice.")
|
||||||
(define-public pari-gp
|
(define-public pari-gp
|
||||||
(package
|
(package
|
||||||
(name "pari-gp")
|
(name "pari-gp")
|
||||||
(version "2.11.1")
|
(version "2.11.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -232,7 +232,7 @@ the real span of the lattice.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1jfax92jpydjd02fwl30r6b8kfzqqd6sm4yx94gidyz9lqjb7a94"))))
|
"0fck8ssmirl8fy7s4mspgrxjs5sag76xbshqlqzkcl3kqyrk4raa"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("texlive" ,(texlive-union
|
`(("texlive" ,(texlive-union
|
||||||
|
@ -267,7 +267,7 @@ PARI is also available as a C library to allow for faster computations.")
|
||||||
(define-public gp2c
|
(define-public gp2c
|
||||||
(package
|
(package
|
||||||
(name "gp2c")
|
(name "gp2c")
|
||||||
(version "0.0.11pl1")
|
(version "0.0.11pl2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
|
@ -275,7 +275,7 @@ PARI is also available as a C library to allow for faster computations.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1c6f6vmncw032kfzrfyr8bynw6yd3faxpy2285r009fmr0zxfs5s"))))
|
"0wqsf05wgkqvmmsx7jinvzdqav6rl56sr8haibgs31nzz4x9xz9g"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(native-inputs `(("perl" ,perl)))
|
(native-inputs `(("perl" ,perl)))
|
||||||
(inputs `(("pari-gp" ,pari-gp)))
|
(inputs `(("pari-gp" ,pari-gp)))
|
||||||
|
@ -1022,7 +1022,7 @@ xtensor provides:
|
||||||
(define-public gap
|
(define-public gap
|
||||||
(package
|
(package
|
||||||
(name "gap")
|
(name "gap")
|
||||||
(version "4.10.1")
|
(version "4.10.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -1032,8 +1032,7 @@ xtensor provides:
|
||||||
version
|
version
|
||||||
".tar.bz2"))
|
".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32 "0cp6ddk0469zzv1m1vair6gm27ic6c5m77ri8rn0znq3gaps6x94"))
|
||||||
"136s0zvhcw41fshj5zgsrjcy2kd58cdh2m3ddp5rdizi4rx54f10"))
|
|
||||||
(modules '((guix build utils) (ice-9 ftw) (srfi srfi-1)))
|
(modules '((guix build utils) (ice-9 ftw) (srfi srfi-1)))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
|
|
|
@ -81,20 +81,25 @@ in FITS files.")
|
||||||
(define-public wcslib
|
(define-public wcslib
|
||||||
(package
|
(package
|
||||||
(name "wcslib")
|
(name "wcslib")
|
||||||
(version "5.20")
|
(version "6.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
"ftp://ftp.atnf.csiro.au/pub/software/wcslib/" name "-" version
|
"ftp://ftp.atnf.csiro.au/pub/software/wcslib/wcslib" version
|
||||||
".tar.bz2"))
|
".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1c8g9kv4dxrnawnqi4spi2p10s2xs7x75pdfxhbqxgcc97dkgh0b"))))
|
(base32 "01fqckazhbfqqhyr0wd9vcks1m2afmsh83l981alxg2r54jgwkdv"))))
|
||||||
(inputs
|
(inputs
|
||||||
`(("cfitsio" ,cfitsio)))
|
`(("cfitsio" ,cfitsio)))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:configure-flags
|
||||||
|
(list (string-append "--with-cfitsiolib="
|
||||||
|
(assoc-ref %build-inputs "cfitsio") "/lib")
|
||||||
|
(string-append "--with-cfitsioinc="
|
||||||
|
(assoc-ref %build-inputs "cfitsio") "/include"))
|
||||||
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(add-before 'configure 'patch-/bin/sh
|
(add-before 'configure 'patch-/bin/sh
|
||||||
(lambda _
|
(lambda _
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
|
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
|
||||||
;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
|
;;; Copyright © 2019 Leo Famulari <leo@famulari.name>
|
||||||
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
|
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
|
||||||
|
;;; Copyright © 2019 Arun Isaac <arunisaac@systemreboot.net>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -2104,14 +2105,14 @@ different audio devices such as ALSA or PulseAudio.")
|
||||||
(define-public qjackctl
|
(define-public qjackctl
|
||||||
(package
|
(package
|
||||||
(name "qjackctl")
|
(name "qjackctl")
|
||||||
(version "0.5.8")
|
(version "0.5.9")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
|
(uri (string-append "mirror://sourceforge/qjackctl/qjackctl/"
|
||||||
version "/qjackctl-" version ".tar.gz"))
|
version "/qjackctl-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1r5hf3hcr20n93jrrm7xk2zf6yx264pcr4d10cpybhrancxh602n"))))
|
"1saywsda9m124rmjp7i3n0llryaliabjxhqhvqr6dm983qy7pypk"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:tests? #f)) ; no check target
|
'(#:tests? #f)) ; no check target
|
||||||
|
@ -2853,19 +2854,17 @@ interface.")
|
||||||
(define-public qsynth
|
(define-public qsynth
|
||||||
(package
|
(package
|
||||||
(name "qsynth")
|
(name "qsynth")
|
||||||
(version "0.5.6")
|
(version "0.5.7")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://sourceforge/qsynth/qsynth/" version
|
(uri (string-append "mirror://sourceforge/qsynth/qsynth/" version
|
||||||
"/qsynth-" version ".tar.gz"))
|
"/qsynth-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0h4hhja8qbyzd6v24flw9wr4mwl03nplryx1gyrppn7sg13l1sx6"))))
|
(base32 "18im4w8agj60nkppwbkxqnhpp13z5li3w30kklv4lgs20rvgbvl6"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f ; no "check" phase
|
`(#:tests? #f)) ; no "check" phase
|
||||||
#:configure-flags
|
|
||||||
'("CXXFLAGS=-std=gnu++11")))
|
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("qttools" ,qttools)
|
`(("qttools" ,qttools)
|
||||||
("pkg-config" ,pkg-config)))
|
("pkg-config" ,pkg-config)))
|
||||||
|
@ -2873,7 +2872,7 @@ interface.")
|
||||||
`(("fluidsynth" ,fluidsynth)
|
`(("fluidsynth" ,fluidsynth)
|
||||||
("qtbase" ,qtbase)
|
("qtbase" ,qtbase)
|
||||||
("qtx11extras" ,qtx11extras)))
|
("qtx11extras" ,qtx11extras)))
|
||||||
(home-page "http://qsynth.sourceforge.net")
|
(home-page "https://qsynth.sourceforge.io")
|
||||||
(synopsis "Graphical user interface for FluidSynth")
|
(synopsis "Graphical user interface for FluidSynth")
|
||||||
(description
|
(description
|
||||||
"Qsynth is a GUI front-end application for the FluidSynth SoundFont
|
"Qsynth is a GUI front-end application for the FluidSynth SoundFont
|
||||||
|
@ -3707,3 +3706,32 @@ library.")
|
||||||
(description "FAudio is an XAudio reimplementation that focuses solely on
|
(description "FAudio is an XAudio reimplementation that focuses solely on
|
||||||
developing fully accurate DirectX Audio runtime libraries.")
|
developing fully accurate DirectX Audio runtime libraries.")
|
||||||
(license license:zlib)))
|
(license license:zlib)))
|
||||||
|
|
||||||
|
(define-public gnaural
|
||||||
|
(package
|
||||||
|
(name "gnaural")
|
||||||
|
(version "20110606")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "mirror://sourceforge/gnaural/Gnaural/gnaural_"
|
||||||
|
version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1gq519c0imsh57zklyi0f8h64l3ai48lh672c834470z8c6kvbfi"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("alsa-lib" ,alsa-lib)
|
||||||
|
("gtk+" ,gtk+-2)
|
||||||
|
("libsndfile" ,libsndfile)
|
||||||
|
("portaudio" ,portaudio)))
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
(home-page "http://gnaural.sourceforge.net/")
|
||||||
|
(synopsis "Binaural beat synthesizer")
|
||||||
|
(description "Gnaural is a programmable auditory binaural beat synthesizer
|
||||||
|
intended to be used for brainwave entrainment. Gnaural supports creation of
|
||||||
|
binaural beat tracks of different frequencies and exporting of tracks into
|
||||||
|
different audio formats. Gnaural can also be linked over the internet with
|
||||||
|
other Gnaural instances, allowing synchronous sessions between many users.")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -185,7 +185,8 @@ can even repair them.")
|
||||||
`(#:configure-flags
|
`(#:configure-flags
|
||||||
`(,(string-append "--sbindir=" (assoc-ref %outputs "out") "/bin"))
|
`(,(string-append "--sbindir=" (assoc-ref %outputs "out") "/bin"))
|
||||||
#:tests? #f))
|
#:tests? #f))
|
||||||
(home-page "http://archive.miek.nl/projects/hdup/index.html")
|
(home-page (string-append "http://web.archive.org/web/20150925223424/"
|
||||||
|
"http://archive.miek.nl/projects/hdup/index.html"))
|
||||||
(synopsis "Simple incremental backup tool")
|
(synopsis "Simple incremental backup tool")
|
||||||
(description
|
(description
|
||||||
"Hdup2 is a backup utility, its aim is to make backup really simple. The
|
"Hdup2 is a backup utility, its aim is to make backup really simple. The
|
||||||
|
|
|
@ -971,7 +971,7 @@ with the Linux kernel.")
|
||||||
(("/bin/pwd") "pwd"))
|
(("/bin/pwd") "pwd"))
|
||||||
#t))))))))
|
#t))))))))
|
||||||
|
|
||||||
(define (make-gcc-libc base-gcc libc)
|
(define-public (make-gcc-libc base-gcc libc)
|
||||||
"Return a GCC that targets LIBC."
|
"Return a GCC that targets LIBC."
|
||||||
(package (inherit base-gcc)
|
(package (inherit base-gcc)
|
||||||
(name (string-append (package-name base-gcc) "-"
|
(name (string-append (package-name base-gcc) "-"
|
||||||
|
|
|
@ -12524,7 +12524,7 @@ once. This package provides tools to perform Drop-seq analyses.")
|
||||||
(define-public pigx-rnaseq
|
(define-public pigx-rnaseq
|
||||||
(package
|
(package
|
||||||
(name "pigx-rnaseq")
|
(name "pigx-rnaseq")
|
||||||
(version "0.0.8")
|
(version "0.0.10")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_rnaseq/"
|
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_rnaseq/"
|
||||||
|
@ -12532,7 +12532,7 @@ once. This package provides tools to perform Drop-seq analyses.")
|
||||||
"/pigx_rnaseq-" version ".tar.gz"))
|
"/pigx_rnaseq-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"19nhflzs6k5c7yhi7gkwggq237cjdd1s4b4qkj5x5fkwg0rhn33i"))))
|
"0z3hr120wk2vrlmlpz1vp3n9wy3rq4y2mnzh2vf08qgqn2xfdwcw"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:parallel-tests? #f ; not supported
|
`(#:parallel-tests? #f ; not supported
|
||||||
|
@ -14746,6 +14746,35 @@ vast-tools, an RNA-Seq pipeline for alternative splicing analysis. The plots
|
||||||
are generated using @code{ggplot2}.")
|
are generated using @code{ggplot2}.")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python-ont-fast5-api
|
||||||
|
(package
|
||||||
|
(name "python-ont-fast5-api")
|
||||||
|
(version "1.4.4")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/nanoporetech/ont_fast5_api.git")
|
||||||
|
(commit (string-append "release_" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"03cbq4zbbwhll8ml2m9k8sa31mirsvcbjkrq1yna0kkzz9fad5fm"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-numpy" ,python-numpy)
|
||||||
|
("python-six" ,python-six)
|
||||||
|
("python-h5py" ,python-h5py)
|
||||||
|
("python-progressbar33" ,python-progressbar33)))
|
||||||
|
(home-page "https://github.com/nanoporetech/ont_fast5_api")
|
||||||
|
(synopsis "Interface to HDF5 files of the Oxford Nanopore fast5 file format")
|
||||||
|
(description
|
||||||
|
"This package provides a concrete implementation of the fast5 file schema
|
||||||
|
using the generic @code{h5py} library, plain-named methods to interact with
|
||||||
|
and reflect the fast5 file schema, and tools to convert between
|
||||||
|
@code{multi_read} and @code{single_read} formats.")
|
||||||
|
(license license:mpl2.0)))
|
||||||
|
|
||||||
(define-public tbsp
|
(define-public tbsp
|
||||||
(let ((commit "ec8fff4410cfb13a677dbbb95cbbc60217e64907")
|
(let ((commit "ec8fff4410cfb13a677dbbb95cbbc60217e64907")
|
||||||
(revision "1"))
|
(revision "1"))
|
||||||
|
|
|
@ -524,17 +524,16 @@ board-independent tools.")))
|
||||||
|
|
||||||
(define-public (make-u-boot-package board triplet)
|
(define-public (make-u-boot-package board triplet)
|
||||||
"Returns a u-boot package for BOARD cross-compiled for TRIPLET."
|
"Returns a u-boot package for BOARD cross-compiled for TRIPLET."
|
||||||
(let ((same-arch? (if (string-prefix? (%current-system)
|
(let ((same-arch? (lambda ()
|
||||||
(gnu-triplet->nix-system triplet))
|
(string=? (%current-system)
|
||||||
`#t
|
(gnu-triplet->nix-system triplet)))))
|
||||||
`#f)))
|
|
||||||
(package
|
(package
|
||||||
(inherit u-boot)
|
(inherit u-boot)
|
||||||
(name (string-append "u-boot-"
|
(name (string-append "u-boot-"
|
||||||
(string-replace-substring (string-downcase board)
|
(string-replace-substring (string-downcase board)
|
||||||
"_" "-")))
|
"_" "-")))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(,@(if (not same-arch?)
|
`(,@(if (not (same-arch?))
|
||||||
`(("cross-gcc" ,(cross-gcc triplet #:xgcc gcc-7))
|
`(("cross-gcc" ,(cross-gcc triplet #:xgcc gcc-7))
|
||||||
("cross-binutils" ,(cross-binutils triplet)))
|
("cross-binutils" ,(cross-binutils triplet)))
|
||||||
`(("gcc-7" ,gcc-7)))
|
`(("gcc-7" ,gcc-7)))
|
||||||
|
@ -547,7 +546,7 @@ board-independent tools.")))
|
||||||
#:test-target "test"
|
#:test-target "test"
|
||||||
#:make-flags
|
#:make-flags
|
||||||
(list "HOSTCC=gcc"
|
(list "HOSTCC=gcc"
|
||||||
,@(if (not same-arch?)
|
,@(if (not (same-arch?))
|
||||||
`((string-append "CROSS_COMPILE=" ,triplet "-"))
|
`((string-append "CROSS_COMPILE=" ,triplet "-"))
|
||||||
'()))
|
'()))
|
||||||
#:phases
|
#:phases
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
#:use-module ((guix store)
|
#:use-module ((guix store)
|
||||||
#:select (run-with-store add-to-store add-text-to-store))
|
#:select (run-with-store add-to-store add-text-to-store))
|
||||||
#:use-module ((guix derivations)
|
#:use-module ((guix derivations)
|
||||||
#:select (derivation derivation->output-path))
|
#:select (derivation derivation-input derivation->output-path))
|
||||||
#:use-module ((guix utils) #:select (gnu-triplet->nix-system))
|
#:use-module ((guix utils) #:select (gnu-triplet->nix-system))
|
||||||
#:use-module (guix memoization)
|
#:use-module (guix memoization)
|
||||||
#:use-module (guix i18n)
|
#:use-module (guix i18n)
|
||||||
|
@ -400,8 +400,9 @@ $out/bin/guile --version~%"
|
||||||
(derivation store name
|
(derivation store name
|
||||||
(derivation->output-path bash) `(,builder)
|
(derivation->output-path bash) `(,builder)
|
||||||
#:system system
|
#:system system
|
||||||
#:inputs `((,bash) (,mkdir) (,tar) (,xz)
|
#:inputs (map derivation-input
|
||||||
(,builder) (,guile))
|
(list bash mkdir tar xz guile))
|
||||||
|
#:sources (list builder)
|
||||||
#:env-vars `(("GUILE_TARBALL"
|
#:env-vars `(("GUILE_TARBALL"
|
||||||
. ,(derivation->output-path guile))))))
|
. ,(derivation->output-path guile))))))
|
||||||
|
|
||||||
|
|
|
@ -242,7 +242,7 @@ other lower-level build files.")
|
||||||
(define-public osc
|
(define-public osc
|
||||||
(package
|
(package
|
||||||
(name "osc")
|
(name "osc")
|
||||||
(version "0.165.1")
|
(version "0.165.2")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -251,7 +251,7 @@ other lower-level build files.")
|
||||||
(commit version)))
|
(commit version)))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "16p4z34ziy4z2w7mfpclk13x1w2p69wivkdwp0224x18r2fwj67v"))))
|
(base32 "0yjwvbvv9fgkpiyvrag89zxchyn3nbgp9jz0wn5p0z9450zwfyz6"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
|
|
@ -227,7 +227,7 @@ from forcing GEXP-PROMISE."
|
||||||
#:system system
|
#:system system
|
||||||
#:guile-for-build guile)))
|
#:guile-for-build guile)))
|
||||||
|
|
||||||
(define %chromium-version "75.0.3770.100")
|
(define %chromium-version "75.0.3770.142")
|
||||||
(define %ungoogled-revision "5d8abc38b43a62f379615a0dc972b29d9aebb4b4")
|
(define %ungoogled-revision "5d8abc38b43a62f379615a0dc972b29d9aebb4b4")
|
||||||
(define %debian-revision "debian/75.0.3770.90-1")
|
(define %debian-revision "debian/75.0.3770.90-1")
|
||||||
(define package-revision "0")
|
(define package-revision "0")
|
||||||
|
@ -243,7 +243,7 @@ from forcing GEXP-PROMISE."
|
||||||
%chromium-version ".tar.xz"))
|
%chromium-version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"187wfdxw6ji4302pbn0kyi9b859ydri7gns0wlsrd7vd3c8604wy"))))
|
"1b550hc9sav0qdnh4hiin2bb3jmfyrb3dhbmnc0v8662rjknq3ji"))))
|
||||||
|
|
||||||
(define %ungoogled-origin
|
(define %ungoogled-origin
|
||||||
(origin
|
(origin
|
||||||
|
|
|
@ -59,7 +59,8 @@
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
#:use-module (ice-9 vlist)
|
#:use-module (ice-9 vlist)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 regex))
|
#:use-module (ice-9 regex)
|
||||||
|
#:export (make-gcc-toolchain))
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;;;
|
;;;
|
||||||
|
@ -2483,10 +2484,20 @@ COREUTILS-FINAL vs. COREUTILS, etc."
|
||||||
;;; GCC toolchain.
|
;;; GCC toolchain.
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
(define (make-gcc-toolchain gcc)
|
;; Using the following procedure, a gcc toolchain targeting glibc-2.27 can be
|
||||||
"Return a complete toolchain for GCC."
|
;; instantiated like this:
|
||||||
|
;;
|
||||||
|
;; (define-public gcc-glibc-2.27-toolchain
|
||||||
|
;; (make-gcc-toolchain gcc glibc-2.27))
|
||||||
|
|
||||||
|
(define* (make-gcc-toolchain gcc
|
||||||
|
#:optional
|
||||||
|
(libc #f))
|
||||||
|
"Return a complete toolchain for GCC. If LIBC is specified, target that libc."
|
||||||
|
(let ((gcc (if libc (make-gcc-libc gcc libc) gcc))
|
||||||
|
(libc (if libc libc glibc-final)))
|
||||||
(package
|
(package
|
||||||
(name "gcc-toolchain")
|
(name (string-append (package-name gcc) "-toolchain"))
|
||||||
(version (package-version gcc))
|
(version (package-version gcc))
|
||||||
(source #f)
|
(source #f)
|
||||||
(build-system trivial-build-system)
|
(build-system trivial-build-system)
|
||||||
|
@ -2529,9 +2540,9 @@ and binaries, plus debugging symbols in the @code{debug} output), and Binutils."
|
||||||
(inputs `(("gcc" ,gcc)
|
(inputs `(("gcc" ,gcc)
|
||||||
("ld-wrapper" ,(car (assoc-ref %final-inputs "ld-wrapper")))
|
("ld-wrapper" ,(car (assoc-ref %final-inputs "ld-wrapper")))
|
||||||
("binutils" ,binutils-final)
|
("binutils" ,binutils-final)
|
||||||
("libc" ,glibc-final)
|
("libc" ,libc)
|
||||||
("libc-debug" ,glibc-final "debug")
|
("libc-debug" ,libc "debug")
|
||||||
("libc-static" ,glibc-final "static")))))
|
("libc-static" ,libc "static"))))))
|
||||||
|
|
||||||
(define-public gcc-toolchain
|
(define-public gcc-toolchain
|
||||||
(make-gcc-toolchain gcc-final))
|
(make-gcc-toolchain gcc-final))
|
||||||
|
|
|
@ -14066,7 +14066,7 @@ more generic data visualisation.")
|
||||||
"This is a deprecated package for calculating pairwise multiple
|
"This is a deprecated package for calculating pairwise multiple
|
||||||
comparisons of mean rank sums. This package is superseded by the novel
|
comparisons of mean rank sums. This package is superseded by the novel
|
||||||
PMCMRplus package. The PMCMR package is no longer maintained, but kept for
|
PMCMRplus package. The PMCMR package is no longer maintained, but kept for
|
||||||
compatibility of reverse depending packages for some time.")
|
compatibility of dependent packages for some time.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
(define-public r-downloader
|
(define-public r-downloader
|
||||||
|
|
|
@ -47,7 +47,7 @@ or XID_Continue properties according to Unicode Standard Annex #31.")
|
||||||
(define-public rust-proc-macro2
|
(define-public rust-proc-macro2
|
||||||
(package
|
(package
|
||||||
(name "rust-proc-macro2")
|
(name "rust-proc-macro2")
|
||||||
(version "0.4.27")
|
(version "0.4.30")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -56,7 +56,7 @@ or XID_Continue properties according to Unicode Standard Annex #31.")
|
||||||
(string-append name "-" version ".tar.gz"))
|
(string-append name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"05c92v787snyaq4ss16vxc9mdv6zndfgsdq8k3hnnyffmsf7ycad"))))
|
"0nd71fl24sys066jrha6j7i34nfkjv44yzw8yww9742wmc8j0gfg"))))
|
||||||
(build-system cargo-build-system)
|
(build-system cargo-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:cargo-inputs (("rust-unicode-xid" ,rust-unicode-xid))
|
`(#:cargo-inputs (("rust-unicode-xid" ,rust-unicode-xid))
|
||||||
|
|
|
@ -39,6 +39,7 @@
|
||||||
#:use-module (gnu packages networking)
|
#:use-module (gnu packages networking)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
|
#:use-module (gnu packages python-crypto)
|
||||||
#:use-module (gnu packages python-web)
|
#:use-module (gnu packages python-web)
|
||||||
#:use-module (gnu packages python-xyz)
|
#:use-module (gnu packages python-xyz)
|
||||||
#:use-module (gnu packages version-control)
|
#:use-module (gnu packages version-control)
|
||||||
|
@ -49,20 +50,24 @@
|
||||||
(define-public python-docker-py
|
(define-public python-docker-py
|
||||||
(package
|
(package
|
||||||
(name "python-docker-py")
|
(name "python-docker-py")
|
||||||
(version "1.10.6")
|
(version "3.7.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "docker-py" version))
|
(uri (pypi-uri "docker" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"05f49f6hnl7npmi7kigg0ibqk8s3fhzx1ivvz1kqvlv4ay3paajc"))))
|
"0qmrcvpaz37p85hfddsd4yc8hgqlkzs4cz09q9wmy0pz5pwajqm0"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
;; TODO: Tests require a running Docker daemon.
|
;; TODO: Tests require a running Docker daemon.
|
||||||
(arguments '(#:tests? #f))
|
(arguments '(#:tests? #f))
|
||||||
(inputs
|
(inputs
|
||||||
`(("python-requests" ,python-requests)
|
`(("python-requests" ,python-requests-2.20)
|
||||||
|
("python-docker-pycreds" ,python-docker-pycreds)
|
||||||
|
("python-ipaddress" ,python-ipaddress)
|
||||||
|
("python-paramiko" ,python-paramiko)
|
||||||
("python-six" ,python-six)
|
("python-six" ,python-six)
|
||||||
|
("python-urllib3" ,python-urllib3-1.24)
|
||||||
("python-websocket-client" ,python-websocket-client)))
|
("python-websocket-client" ,python-websocket-client)))
|
||||||
(home-page "https://github.com/docker/docker-py/")
|
(home-page "https://github.com/docker/docker-py/")
|
||||||
(synopsis "Python client for Docker")
|
(synopsis "Python client for Docker")
|
||||||
|
@ -73,14 +78,14 @@ management tool.")
|
||||||
(define-public python-dockerpty
|
(define-public python-dockerpty
|
||||||
(package
|
(package
|
||||||
(name "python-dockerpty")
|
(name "python-dockerpty")
|
||||||
(version "0.3.4")
|
(version "0.4.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "dockerpty" version))
|
(uri (pypi-uri "dockerpty" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0za6rr349641wv76ww9l3zcic2xyxrirlxpnzl4296h897648455"))))
|
"1kjn64wx23jmr8dcc6g7bwlmrhfmxr77gh6iphqsl39sayfxdab9"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("python-six" ,python-six)))
|
`(("python-six" ,python-six)))
|
||||||
|
@ -96,25 +101,32 @@ client.")
|
||||||
(define-public docker-compose
|
(define-public docker-compose
|
||||||
(package
|
(package
|
||||||
(name "docker-compose")
|
(name "docker-compose")
|
||||||
(version "1.5.2")
|
(version "1.24.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "docker-compose" version))
|
(uri (pypi-uri "docker-compose" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0ksg7hm2yvc977968dixxisrhcmvskzpcx3pz0v1kazrdqp7xakr"))))
|
"0lx7bx6jvhydbab8vwry0bclhdf0dfj6jrns1m5y45yp9ybqxmd5"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
;; TODO: Tests require running Docker daemon.
|
;; TODO: Tests require running Docker daemon.
|
||||||
(arguments '(#:tests? #f))
|
(arguments '(#:tests? #f))
|
||||||
(inputs
|
(inputs
|
||||||
`(("python-docker-py" ,python-docker-py)
|
`(("python2-backport-ssl-match-hostname"
|
||||||
|
,python2-backport-ssl-match-hostname)
|
||||||
|
("python-cached-property"
|
||||||
|
,python-cached-property)
|
||||||
|
("python-colorama" ,python-colorama)
|
||||||
|
("python-docker-py" ,python-docker-py)
|
||||||
("python-docker-pycreds" ,python-docker-pycreds)
|
("python-docker-pycreds" ,python-docker-pycreds)
|
||||||
("python-dockerpty" ,python-dockerpty)
|
("python-dockerpty" ,python-dockerpty)
|
||||||
("python-docopt" ,python-docopt)
|
("python-docopt" ,python-docopt)
|
||||||
|
("python-ipaddress" ,python-ipaddress)
|
||||||
|
("python-paramiko" ,python-paramiko)
|
||||||
("python-jsonschema" ,python-jsonschema-2.6)
|
("python-jsonschema" ,python-jsonschema-2.6)
|
||||||
("python-pyyaml" ,python-pyyaml)
|
("python-pyyaml" ,python-pyyaml)
|
||||||
("python-requests" ,python-requests-2.7)
|
("python-requests" ,python-requests-2.20)
|
||||||
("python-six" ,python-six)
|
("python-six" ,python-six)
|
||||||
("python-texttable" ,python-texttable)
|
("python-texttable" ,python-texttable)
|
||||||
("python-websocket-client" ,python-websocket-client)))
|
("python-websocket-client" ,python-websocket-client)))
|
||||||
|
@ -129,14 +141,14 @@ created and all the services are started as specified in the configuration.")
|
||||||
(define-public python-docker-pycreds
|
(define-public python-docker-pycreds
|
||||||
(package
|
(package
|
||||||
(name "python-docker-pycreds")
|
(name "python-docker-pycreds")
|
||||||
(version "0.3.0")
|
(version "0.4.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "docker-pycreds" version))
|
(uri (pypi-uri "docker-pycreds" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1zxvam1q22qb0jf48553nnncnfrcp88ag4xa0qmq6vr0imn9a3lb"))))
|
"1m44smrggnqghxkqfl7vhapdw89m1p3vdr177r6cq17lr85jgqvc"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
|
|
@ -251,7 +251,7 @@ easy.")
|
||||||
(define-public snap
|
(define-public snap
|
||||||
(package
|
(package
|
||||||
(name "snap")
|
(name "snap")
|
||||||
(version "5.0.1")
|
(version "5.0.4")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -261,7 +261,7 @@ easy.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0ic0xgal19yazbd1kffmbjhiicvvlw5clj48lj80mksa2lgvnzna"))))
|
"1zdypxifvxjkzhi4n9mkck8l419wc0pg103339yzhsbb9kkd3jlr"))))
|
||||||
(build-system trivial-build-system)
|
(build-system trivial-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:modules ((guix build utils))
|
`(#:modules ((guix build utils))
|
||||||
|
|
|
@ -4238,7 +4238,7 @@ them easier to distinguish from other, less important buffers.")
|
||||||
(define-public emacs-prescient
|
(define-public emacs-prescient
|
||||||
(package
|
(package
|
||||||
(name "emacs-prescient")
|
(name "emacs-prescient")
|
||||||
(version "3.1")
|
(version "3.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -4247,7 +4247,7 @@ them easier to distinguish from other, less important buffers.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1cdjvlwlvxxazz7hlxgvdp0pznvj1gzqa2r6k4im0cpdrnnng6j6"))))
|
"0d60h4rfm5jcf8cf11z91wjqp0xcrviskqzyqhfliqvy2i2yl6ks"))))
|
||||||
(build-system emacs-build-system)
|
(build-system emacs-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("emacs-company" ,emacs-company)
|
`(("emacs-company" ,emacs-company)
|
||||||
|
@ -5829,6 +5829,31 @@ that indentation determines structure, this mode provides indentation and
|
||||||
indentation command behavior very similar to that of python-mode.")
|
indentation command behavior very similar to that of python-mode.")
|
||||||
(license license:gpl3+)))
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public emacs-gitlab-ci-mode
|
||||||
|
(package
|
||||||
|
(name "emacs-gitlab-ci-mode")
|
||||||
|
(version "20190425.11.10")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://gitlab.com/joewreschnig/gitlab-ci-mode.git")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1jkp9mnbiccqnha9zs646znqyqvy5jjb81kah7ghbkzdqqk2avm0"))))
|
||||||
|
(build-system emacs-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("emacs-yaml-mode" ,emacs-yaml-mode)))
|
||||||
|
(home-page "https://gitlab.com/joewreschnig/gitlab-ci-mode/")
|
||||||
|
(synopsis "Emacs mode for editing GitLab CI files")
|
||||||
|
(description
|
||||||
|
"@code{gitlab-ci-mode} is an Emacs major mode for editing GitLab CI
|
||||||
|
files. It provides syntax highlighting and completion for keywords and
|
||||||
|
special variables. An interface to GitLab’s CI file linter is also provided
|
||||||
|
via @code{gitlab-ci-lint}.")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
||||||
(define-public emacs-web-mode
|
(define-public emacs-web-mode
|
||||||
(package
|
(package
|
||||||
(name "emacs-web-mode")
|
(name "emacs-web-mode")
|
||||||
|
@ -13640,6 +13665,30 @@ reload the configuration with @code{gpgconf --reload gpg-agent}, and start the
|
||||||
server with @code{M-x pinentry-start}.")
|
server with @code{M-x pinentry-start}.")
|
||||||
(license license:gpl3+))))
|
(license license:gpl3+))))
|
||||||
|
|
||||||
|
(define-public emacs-so-long
|
||||||
|
(let ((commit "3ebe97decdb5cbbfba82ca686e0ad2c7d2722b4a")
|
||||||
|
(version "1.0")
|
||||||
|
(revision "1"))
|
||||||
|
(package
|
||||||
|
(name "emacs-so-long")
|
||||||
|
(version (git-version version revision commit))
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://git.savannah.gnu.org/git/so-long.git")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0fi71g5rsdsi978jz8406k8hvzgnssm9wxar8yqfhs97178r9s5m"))))
|
||||||
|
(build-system emacs-build-system)
|
||||||
|
(home-page "https://www.emacswiki.org/emacs/SoLong")
|
||||||
|
(synopsis "Improve performance in files with long lines")
|
||||||
|
(description "This package improves the performance of Emacs when
|
||||||
|
viewing files with long lines.")
|
||||||
|
(license license:gpl3+))))
|
||||||
|
|
||||||
(define-public emacs-org-brain
|
(define-public emacs-org-brain
|
||||||
(package
|
(package
|
||||||
(name "emacs-org-brain")
|
(name "emacs-org-brain")
|
||||||
|
@ -15340,6 +15389,30 @@ command\", but because it always involves at least two commands (a prefix and
|
||||||
a suffix) we prefer to call it just a \"transient\".")
|
a suffix) we prefer to call it just a \"transient\".")
|
||||||
(license license:gpl3+))))
|
(license license:gpl3+))))
|
||||||
|
|
||||||
|
(define-public emacs-matcha
|
||||||
|
(let ((commit "c7df5cf5cdac9ae369e241342389ccda0205eab9"))
|
||||||
|
(package
|
||||||
|
(name "emacs-matcha")
|
||||||
|
(version (git-version "0.0.1" "1" commit)) ;no upstream release
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/jojojames/matcha.git")
|
||||||
|
(commit commit)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1lfnh1glg6al677m7ci0x8g5wjdhjxlfl3nv1f1ppsw4dpnwsj9b"))))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("emacs-hydra" ,emacs-hydra)
|
||||||
|
("emacs-transient" ,emacs-transient)))
|
||||||
|
(build-system emacs-build-system)
|
||||||
|
(home-page "https://github.com/jojojames/matcha/")
|
||||||
|
(synopsis "Collection of hydras with a generic interface to launch them")
|
||||||
|
(description "Matcha provides a collection of transients for various
|
||||||
|
packages with a consistent way to use them.")
|
||||||
|
(license license:gpl3+))))
|
||||||
|
|
||||||
(define-public emacs-undo-propose-el
|
(define-public emacs-undo-propose-el
|
||||||
(let ((commit "5f1fa99a04369a959aad01b476fe4f34229f28cd")
|
(let ((commit "5f1fa99a04369a959aad01b476fe4f34229f28cd")
|
||||||
(version "1.0.0")
|
(version "1.0.0")
|
||||||
|
@ -16481,3 +16554,37 @@ it forcibly
|
||||||
@item Dedicated window for debugging program.
|
@item Dedicated window for debugging program.
|
||||||
@end enumerate")
|
@end enumerate")
|
||||||
(license license:gpl3+))))
|
(license license:gpl3+))))
|
||||||
|
|
||||||
|
(define-public emacs-elpher
|
||||||
|
(package
|
||||||
|
(name "emacs-elpher")
|
||||||
|
(version "1.4.6")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/tgvaughan/elpher")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"07xansmhn4l0b9ghzf56vyx8cqg0q01aq3pz5ikx2i19v5f0rc66"))))
|
||||||
|
(build-system emacs-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("texinfo" ,texinfo)))
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-before 'install 'build-doc
|
||||||
|
(lambda _
|
||||||
|
(invoke "makeinfo" "elpher.texi"))))))
|
||||||
|
(home-page "https://github.com/tgvaughan/elpher")
|
||||||
|
(synopsis "Gopher client for Emacs")
|
||||||
|
(description "Elpher is a full-featured gopher client for Emacs. Its
|
||||||
|
features include intuitive keyboard and mouse-driven browsing, out-of-the-box
|
||||||
|
compatibility with evil-mode, clickable web and gopher links in plain text,
|
||||||
|
caching of visited sites, pleasant and configurable visualization of Gopher
|
||||||
|
directories, direct visualisation of image files, jumping directly to links by
|
||||||
|
name (with autocompletion), a simple bookmark management system and
|
||||||
|
connections using TLS encryption.")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
|
@ -520,3 +520,37 @@ directories.
|
||||||
(license (list
|
(license (list
|
||||||
license:bsd-2 ; Ephoto's thumbnailing code
|
license:bsd-2 ; Ephoto's thumbnailing code
|
||||||
license:bsd-3))))
|
license:bsd-3))))
|
||||||
|
|
||||||
|
(define-public evisum
|
||||||
|
(package
|
||||||
|
(name "evisum")
|
||||||
|
(version "0.2.3")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append "https://download.enlightenment.org/rel/apps/"
|
||||||
|
"evisum/evisum-" version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1lj62n896kablsl687c66yxrwajrh6ralb3y6nmcqv34pglnigca"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:tests? #f ; no tests
|
||||||
|
#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(delete 'configure) ; no configure phase
|
||||||
|
(add-after 'unpack 'set-environmental-variables
|
||||||
|
(lambda _ (setenv "CC" (which "gcc")) #t)))))
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
(inputs
|
||||||
|
`(("alsa-lib" ,alsa-lib)
|
||||||
|
("efl" ,efl)
|
||||||
|
("perl" ,perl)))
|
||||||
|
(home-page "https://www.enlightenment.org")
|
||||||
|
(synopsis "EFL process viewer")
|
||||||
|
(description
|
||||||
|
"This is a process monitor and system monitor using the
|
||||||
|
@dfn{Enlightenment Foundation Libraries} (EFL).")
|
||||||
|
(license license:bsd-2)))
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
;;; Copyright © 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
||||||
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
|
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
|
||||||
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
|
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
|
||||||
|
;;; Copyright © 2019 Tanguy Le Carrour <tanguy@bioneland.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -36,6 +37,8 @@
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix build-system cmake)
|
#:use-module (guix build-system cmake)
|
||||||
#:use-module (guix build-system python)
|
#:use-module (guix build-system python)
|
||||||
|
#:use-module (guix build-system glib-or-gtk)
|
||||||
|
#:use-module (guix utils)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages boost)
|
#:use-module (gnu packages boost)
|
||||||
|
@ -47,9 +50,12 @@
|
||||||
#:use-module (gnu packages dns)
|
#:use-module (gnu packages dns)
|
||||||
#:use-module (gnu packages emacs)
|
#:use-module (gnu packages emacs)
|
||||||
#:use-module (gnu packages dbm)
|
#:use-module (gnu packages dbm)
|
||||||
|
#:use-module (gnu packages gnome)
|
||||||
|
#:use-module (gnu packages glib)
|
||||||
#:use-module (gnu packages gnupg)
|
#:use-module (gnu packages gnupg)
|
||||||
#:use-module (gnu packages graphviz)
|
#:use-module (gnu packages graphviz)
|
||||||
#:use-module (gnu packages groff)
|
#:use-module (gnu packages groff)
|
||||||
|
#:use-module (gnu packages gtk)
|
||||||
#:use-module (gnu packages libedit)
|
#:use-module (gnu packages libedit)
|
||||||
#:use-module (gnu packages libevent)
|
#:use-module (gnu packages libevent)
|
||||||
#:use-module (gnu packages libunwind)
|
#:use-module (gnu packages libunwind)
|
||||||
|
@ -506,7 +512,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
|
||||||
;; Only try tests that don't need access to network or system
|
;; Only try tests that don't need access to network or system
|
||||||
(replace 'check
|
(replace 'check
|
||||||
(lambda _
|
(lambda _
|
||||||
(invoke "make" "ARGS=-R 'hash|core_tests'" "test")))
|
(invoke "make" "ARGS=-R 'hash|core_tests' --verbose" "test")))
|
||||||
(add-after 'check 'unit-tests
|
(add-after 'check 'unit-tests
|
||||||
(lambda _
|
(lambda _
|
||||||
(let ((excluded-unit-tests
|
(let ((excluded-unit-tests
|
||||||
|
@ -1053,3 +1059,39 @@ Its features are:
|
||||||
@item get account amount.
|
@item get account amount.
|
||||||
@end itemize")
|
@end itemize")
|
||||||
(license license:agpl3+)))
|
(license license:agpl3+)))
|
||||||
|
|
||||||
|
(define-public grisbi
|
||||||
|
(package
|
||||||
|
(name "grisbi")
|
||||||
|
(version "1.2.2")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"mirror://sourceforge/grisbi/grisbi%20stable/"
|
||||||
|
(version-major+minor version) ".x/" version
|
||||||
|
"/grisbi-" version ".tar.bz2"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1piiyyxjsjbw9gcqydvknzxmmfgh8kdqal12ywrxyxih2afwnvbw"))))
|
||||||
|
(build-system glib-or-gtk-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:configure-flags (list "--without-ofx")))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("dconf" ,dconf)))
|
||||||
|
(native-inputs
|
||||||
|
`(("glib" ,glib "bin") ; glib-compile-schemas
|
||||||
|
("pkg-config" ,pkg-config)
|
||||||
|
("intltool" ,intltool)))
|
||||||
|
(inputs
|
||||||
|
`(("gtk+" ,gtk+)
|
||||||
|
("libgsf" ,libgsf)))
|
||||||
|
(synopsis "Personal accounting application")
|
||||||
|
(description "Grisbi is a personal accounting application written by
|
||||||
|
French developers that is designed to follow French accounting rules.
|
||||||
|
Grisbi can manage multiple accounts, currencies and users. It manages
|
||||||
|
third party, expenditure and receipt categories, budgetary lines,
|
||||||
|
financial years, budget estimates, bankcard management and other
|
||||||
|
information.")
|
||||||
|
(home-page "http://grisbi.org")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
;;; Copyright © 2014 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
|
||||||
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||||
;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2016, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016, 2019 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de>
|
||||||
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
|
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
|
||||||
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
|
@ -256,21 +256,21 @@ non-root users.")
|
||||||
(license license:gpl3))))
|
(license license:gpl3))))
|
||||||
|
|
||||||
(define-public rkflashtool
|
(define-public rkflashtool
|
||||||
(let ((commit "094bd6410cb016e487e2ccb1050c59eeac2e6dd1")
|
(let ((commit "8966c4e277de8148290554aaaa4146a3a84a3c53")
|
||||||
(revision "1"))
|
(revision "1"))
|
||||||
(package
|
(package
|
||||||
(name "rkflashtool")
|
(name "rkflashtool")
|
||||||
(version (string-append "0.0.0-" revision "." (string-take commit 7)))
|
(version (git-version "5.2" revision commit))
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://github.com/linux-rockchip/rkflashtool.git")
|
(url "https://github.com/linux-rockchip/rkflashtool.git")
|
||||||
(commit commit)))
|
(commit commit)))
|
||||||
(file-name (string-append name "-" version "-checkout"))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1zkd8zxir3rfg3sy9r20bcnxclnplryn583gqpcr3iad0k3xbah7"))))
|
"1ndyzg1zlgg20dd8js9kfqm5kq19k005vddkvf65qj20w0pcyahn"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:phases
|
'(#:phases
|
||||||
|
|
|
@ -704,15 +704,15 @@ utilities to ease adding new glyphs to the font.")
|
||||||
(define-public font-google-noto
|
(define-public font-google-noto
|
||||||
(package
|
(package
|
||||||
(name "font-google-noto")
|
(name "font-google-noto")
|
||||||
(version "20170403")
|
(version "20171025")
|
||||||
(source (origin
|
(source
|
||||||
|
(origin
|
||||||
(method url-fetch/zipbomb)
|
(method url-fetch/zipbomb)
|
||||||
(uri (string-append "https://noto-website.storage.googleapis.com/"
|
(uri (string-append "https://noto-website-2.storage.googleapis.com/"
|
||||||
"pkgs/Noto-hinted.zip"))
|
"pkgs/Noto-hinted.zip"))
|
||||||
(file-name (string-append name "-" version ".zip"))
|
(file-name (string-append name "-" version ".zip"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32 "1bp42whyin7xcgmrbnfvz3rvd98xmxaz3ywqybbjmqzwaa9llyw3"))))
|
||||||
"1p92a6dvs7wqwjfpp1ahr9z1wz35am0l8r78521383spd77bmrfm"))))
|
|
||||||
(build-system font-build-system)
|
(build-system font-build-system)
|
||||||
(home-page "https://www.google.com/get/noto/")
|
(home-page "https://www.google.com/get/noto/")
|
||||||
(synopsis "Fonts to cover all languages")
|
(synopsis "Fonts to cover all languages")
|
||||||
|
|
|
@ -2694,7 +2694,7 @@ Transport Tycoon Deluxe.")
|
||||||
(define-public openrct2
|
(define-public openrct2
|
||||||
(package
|
(package
|
||||||
(name "openrct2")
|
(name "openrct2")
|
||||||
(version "0.2.2")
|
(version "0.2.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -2703,7 +2703,7 @@ Transport Tycoon Deluxe.")
|
||||||
(commit (string-append "v" version))))
|
(commit (string-append "v" version))))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "1bfqmb6cbmsjcvj77vppy5lw1m4lkvxd1w3f218ah4788xnkysq2"))))
|
(base32 "01mj6jlbl2cn3wpk6sy34ldzdl0qykpn7fncznjykklj2nqzr4ig"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags (list "-DDOWNLOAD_OBJECTS=OFF"
|
`(#:configure-flags (list "-DDOWNLOAD_OBJECTS=OFF"
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
|
||||||
;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
|
;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
|
||||||
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
|
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||||
|
;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -5335,6 +5336,7 @@ users.")
|
||||||
(uri (string-append "mirror://gnome/sources/NetworkManager/"
|
(uri (string-append "mirror://gnome/sources/NetworkManager/"
|
||||||
(version-major+minor version) "/"
|
(version-major+minor version) "/"
|
||||||
"NetworkManager-" version ".tar.xz"))
|
"NetworkManager-" version ".tar.xz"))
|
||||||
|
(patches (search-patches "nm-plugin-path.patch"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"064cgj9za0kzarks0lrv0qw2ysdphb5l97iw0c964bfiqzjfv8rm"))
|
"064cgj9za0kzarks0lrv0qw2ysdphb5l97iw0c964bfiqzjfv8rm"))
|
||||||
|
@ -5486,12 +5488,31 @@ services.")
|
||||||
"0gyrv46h9k17qym48qacq4zpxbap6hi17shn921824zm98m2bdvr"))))
|
"0gyrv46h9k17qym48qacq4zpxbap6hi17shn921824zm98m2bdvr"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:configure-flags '("--enable-absolute-paths")))
|
`(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'configure 'patch-path
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
|
||||||
|
(let* ((ovpn (string-append (assoc-ref inputs "openvpn")
|
||||||
|
"/sbin/openvpn"))
|
||||||
|
(modprobe (string-append (assoc-ref inputs "kmod")
|
||||||
|
"/bin/modprobe"))
|
||||||
|
(pretty-ovpn (string-append "\"" ovpn "\"")))
|
||||||
|
(for-each
|
||||||
|
(lambda (file)
|
||||||
|
(substitute* file
|
||||||
|
(("\"/usr/local/sbin/openvpn\"") pretty-ovpn)
|
||||||
|
(("\"/usr/sbin/openvpn\"") pretty-ovpn)
|
||||||
|
(("\"/sbin/openvpn\"") pretty-ovpn)
|
||||||
|
(("/sbin/modprobe") modprobe)))
|
||||||
|
'("src/nm-openvpn-service.c" "properties/nm-openvpn-editor.c")))
|
||||||
|
#t)))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)
|
`(("pkg-config" ,pkg-config)
|
||||||
("intltool" ,intltool)))
|
("intltool" ,intltool)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("gtk+" ,gtk+)
|
`(("gtk+" ,gtk+)
|
||||||
|
("kmod" ,kmod)
|
||||||
("openvpn" ,openvpn)
|
("openvpn" ,openvpn)
|
||||||
("network-manager" ,network-manager)
|
("network-manager" ,network-manager)
|
||||||
("network-manager-applet" ,network-manager-applet) ;for libnma
|
("network-manager-applet" ,network-manager-applet) ;for libnma
|
||||||
|
@ -5504,6 +5525,55 @@ to virtual private networks (VPNs) via OpenVPN.")
|
||||||
(license license:gpl2+)
|
(license license:gpl2+)
|
||||||
(properties `((upstream-name . "NetworkManager-openvpn")))))
|
(properties `((upstream-name . "NetworkManager-openvpn")))))
|
||||||
|
|
||||||
|
(define-public network-manager-vpnc
|
||||||
|
(package
|
||||||
|
(name "network-manager-vpnc")
|
||||||
|
(version "1.2.6")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (string-append
|
||||||
|
"mirror://gnome/sources/NetworkManager-vpnc/"
|
||||||
|
(version-major+minor version)
|
||||||
|
"/NetworkManager-vpnc-" version ".tar.xz"))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1js5lwcsqws4klgypfxl4ikmakv7v7xgddij1fj6b0y0qicx0kyy"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:configure-flags '("--enable-absolute-paths" "--localstatedir=/var")
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(add-after 'configure 'patch-path
|
||||||
|
(lambda* (#:key inputs outputs #:allow-other-keys #:rest args)
|
||||||
|
(let* ((vpnc (string-append (assoc-ref inputs "vpnc")
|
||||||
|
"/sbin/vpnc"))
|
||||||
|
(modprobe (string-append (assoc-ref inputs "kmod")
|
||||||
|
"/bin/modprobe"))
|
||||||
|
(pretty-ovpn (string-append "\"" vpnc "\"")))
|
||||||
|
(substitute* "src/nm-vpnc-service.c"
|
||||||
|
(("\"/usr/local/sbin/vpnc\"") pretty-ovpn)
|
||||||
|
(("\"/usr/sbin/vpnc\"") pretty-ovpn)
|
||||||
|
(("\"/sbin/vpnc\"") pretty-ovpn)
|
||||||
|
(("/sbin/modprobe") modprobe)))
|
||||||
|
#t)))))
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)
|
||||||
|
("intltool" ,intltool)))
|
||||||
|
(inputs
|
||||||
|
`(("gtk+" ,gtk+)
|
||||||
|
("kmod" ,kmod)
|
||||||
|
("vpnc" ,vpnc)
|
||||||
|
("network-manager" ,network-manager)
|
||||||
|
("network-manager-applet" ,network-manager-applet) ;for libnma
|
||||||
|
("libsecret" ,libsecret)))
|
||||||
|
(home-page "https://wiki.gnome.org/Projects/NetworkManager/VPN")
|
||||||
|
(synopsis "VPNC plug-in for NetworkManager")
|
||||||
|
(description
|
||||||
|
"Support for configuring virtual private networks based on VPNC.
|
||||||
|
Compatible with Cisco VPN concentrators configured to use IPsec.")
|
||||||
|
(license license:gpl2+)
|
||||||
|
(properties `((upstream-name . "NetworkManager-vpnc")))))
|
||||||
|
|
||||||
(define-public mobile-broadband-provider-info
|
(define-public mobile-broadband-provider-info
|
||||||
(package
|
(package
|
||||||
(name "mobile-broadband-provider-info")
|
(name "mobile-broadband-provider-info")
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2015 Tomáš Čech <sleep_walker@gnu.org>
|
;;; Copyright © 2015 Tomáš Čech <sleep_walker@gnu.org>
|
||||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
;;; Copyright © 2016, 2019 Leo Famulari <leo@famulari.name>
|
||||||
;;; Copyright © 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
|
||||||
;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
|
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
|
||||||
|
@ -78,20 +78,18 @@
|
||||||
#:use-module (guix utils))
|
#:use-module (guix utils))
|
||||||
|
|
||||||
(define-public blender
|
(define-public blender
|
||||||
(let ((revision "0")
|
|
||||||
(commit "3c3d80ea22af15e13237f978181a881b90c41e7c"))
|
|
||||||
(package
|
(package
|
||||||
(name "blender")
|
(name "blender")
|
||||||
(version (git-version "2.80-beta" revision commit))
|
(version "v2.80-rc1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
(url "https://git.blender.org/blender.git")
|
(url "https://git.blender.org/blender.git")
|
||||||
(commit commit)))
|
(commit version)))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1hhn8pf3a5556mxyrb2ggsiy6q0h75hnkdpcgq9b6vg284jl2l4q"))))
|
"11dcf0rjq42mpphk8r8cy7gvhzzl1cj1vslp98ibh8sdjzaz2mdq"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
(let ((python-version (version-major+minor (package-version python))))
|
(let ((python-version (version-major+minor (package-version python))))
|
||||||
|
@ -166,8 +164,8 @@ the 3D pipeline—modeling, rigging, animation, simulation, rendering,
|
||||||
compositing and motion tracking, even video editing and game creation. The
|
compositing and motion tracking, even video editing and game creation. The
|
||||||
application can be customized via its API for Python scripting.
|
application can be customized via its API for Python scripting.
|
||||||
|
|
||||||
WARNING: This is a beta build of Blender.")
|
WARNING: This is a release candidate build of Blender.")
|
||||||
(license license:gpl2+))))
|
(license license:gpl2+)))
|
||||||
|
|
||||||
(define-public blender-2.79
|
(define-public blender-2.79
|
||||||
(package
|
(package
|
||||||
|
@ -230,7 +228,7 @@ WARNING: This is a beta build of Blender.")
|
||||||
`(("boost" ,boost)
|
`(("boost" ,boost)
|
||||||
("jemalloc" ,jemalloc)
|
("jemalloc" ,jemalloc)
|
||||||
("libx11" ,libx11)
|
("libx11" ,libx11)
|
||||||
("openimageio" ,openimageio)
|
("openimageio" ,openimageio-1.7)
|
||||||
("openexr" ,openexr)
|
("openexr" ,openexr)
|
||||||
("ilmbase" ,ilmbase)
|
("ilmbase" ,ilmbase)
|
||||||
("openjpeg" ,openjpeg-1)
|
("openjpeg" ,openjpeg-1)
|
||||||
|
@ -456,7 +454,7 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.")
|
||||||
(define-public openimageio
|
(define-public openimageio
|
||||||
(package
|
(package
|
||||||
(name "openimageio")
|
(name "openimageio")
|
||||||
(version "1.7.19")
|
(version "1.8.17")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
(uri (git-reference
|
(uri (git-reference
|
||||||
|
@ -465,7 +463,7 @@ storage of the \"EXR\" file format for storing 16-bit floating-point images.")
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0yxxy43l3lllw7maqg42dlkgqms2d4772sxzxk7kmxg4lnhsvndc"))))
|
"0zq34szprgkrrayg5sl3whrsx2l6lr8nw4hdrnwv2qhn70jbi2w2"))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
;; FIXME: To run all tests successfully, test image sets from multiple
|
;; FIXME: To run all tests successfully, test image sets from multiple
|
||||||
;; third party sources have to be present. For details see
|
;; third party sources have to be present. For details see
|
||||||
|
@ -492,6 +490,22 @@ visual effects work for film.")
|
||||||
(home-page "http://www.openimageio.org")
|
(home-page "http://www.openimageio.org")
|
||||||
(license license:bsd-3)))
|
(license license:bsd-3)))
|
||||||
|
|
||||||
|
;; This older version of OpenImageIO is required for Blender 2.79.
|
||||||
|
(define-public openimageio-1.7
|
||||||
|
(package
|
||||||
|
(inherit openimageio)
|
||||||
|
(name "openimageio")
|
||||||
|
(version "1.7.19")
|
||||||
|
(source (origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/OpenImageIO/oiio.git")
|
||||||
|
(commit (string-append "Release-" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0yxxy43l3lllw7maqg42dlkgqms2d4772sxzxk7kmxg4lnhsvndc"))))))
|
||||||
|
|
||||||
(define-public openscenegraph
|
(define-public openscenegraph
|
||||||
(package
|
(package
|
||||||
(name "openscenegraph")
|
(name "openscenegraph")
|
||||||
|
|
|
@ -1362,7 +1362,7 @@ The library is shipped with documentation in Info format and usage examples.")
|
||||||
(define-public guile-wisp
|
(define-public guile-wisp
|
||||||
(package
|
(package
|
||||||
(name "guile-wisp")
|
(name "guile-wisp")
|
||||||
(version "0.9.9.1")
|
(version "1.0.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://bitbucket.org/ArneBab/"
|
(uri (string-append "https://bitbucket.org/ArneBab/"
|
||||||
|
@ -1370,7 +1370,7 @@ The library is shipped with documentation in Info format and usage examples.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1ii14qz1lx7ffhb8i9q7dgaiwbif8g2q182skx17j11skp65c8r3"))))
|
"03pz7pj9jyallynhflp5s7qax8dj1fs8la434wrfgz7g1kgjnvf6"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:modules ((guix build gnu-build-system)
|
`(#:modules ((guix build gnu-build-system)
|
||||||
|
@ -1387,9 +1387,7 @@ The library is shipped with documentation in Info format and usage examples.")
|
||||||
(add-before 'configure 'patch-/usr/bin/env
|
(add-before 'configure 'patch-/usr/bin/env
|
||||||
(lambda _
|
(lambda _
|
||||||
(substitute* "Makefile.in"
|
(substitute* "Makefile.in"
|
||||||
(("/usr/bin/env bash") (which "bash"))
|
(("/usr/bin/env bash") (which "bash")))
|
||||||
(("\\$\\(GUILE_EFFECTIVE_VERSION\\)/site")
|
|
||||||
"site/$(GUILE_EFFECTIVE_VERSION)")) ;use the right order
|
|
||||||
#t))
|
#t))
|
||||||
;; auto compilation breaks, but if we set HOME to /tmp,
|
;; auto compilation breaks, but if we set HOME to /tmp,
|
||||||
;; that works ok
|
;; that works ok
|
||||||
|
@ -1422,7 +1420,7 @@ The library is shipped with documentation in Info format and usage examples.")
|
||||||
(assoc-ref emacs:%standard-phases 'build))
|
(assoc-ref emacs:%standard-phases 'build))
|
||||||
(add-after 'compile-emacs-files 'make-autoloads
|
(add-after 'compile-emacs-files 'make-autoloads
|
||||||
(assoc-ref emacs:%standard-phases 'make-autoloads)))))
|
(assoc-ref emacs:%standard-phases 'make-autoloads)))))
|
||||||
(home-page "https://draketo.de/english/wisp")
|
(home-page "https://www.draketo.de/english/wisp")
|
||||||
(inputs
|
(inputs
|
||||||
`(("guile" ,guile-2.2)))
|
`(("guile" ,guile-2.2)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2017, 2018 Arun Isaac <arunisaac@systemreboot.net>
|
;;; Copyright © 2017, 2018, 2019 Arun Isaac <arunisaac@systemreboot.net>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -20,13 +20,17 @@
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
|
#:use-module (guix git-download)
|
||||||
#:use-module (gnu packages gtk)
|
#:use-module (gnu packages gtk)
|
||||||
|
#:use-module (gnu packages image)
|
||||||
#:use-module (gnu packages libusb)
|
#:use-module (gnu packages libusb)
|
||||||
#:use-module (gnu packages pkg-config)
|
#:use-module (gnu packages pkg-config)
|
||||||
|
#:use-module (gnu packages pulseaudio)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
#:use-module (gnu packages python-xyz)
|
#:use-module (gnu packages python-xyz)
|
||||||
#:use-module (gnu packages xml)
|
#:use-module (gnu packages xml)
|
||||||
#:use-module (guix build-system cmake)
|
#:use-module (guix build-system cmake)
|
||||||
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix build-system python))
|
#:use-module (guix build-system python))
|
||||||
|
|
||||||
(define-public rtl-sdr
|
(define-public rtl-sdr
|
||||||
|
@ -82,3 +86,41 @@ growing list of radios across several manufacturers and allows transferring of
|
||||||
memory contents between them.")
|
memory contents between them.")
|
||||||
(license (list license:gpl3+
|
(license (list license:gpl3+
|
||||||
license:lgpl3+)))) ; chirp/elib_intl.py
|
license:lgpl3+)))) ; chirp/elib_intl.py
|
||||||
|
|
||||||
|
(define-public aptdec
|
||||||
|
(package
|
||||||
|
(name "aptdec")
|
||||||
|
(version "1.7")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/csete/aptdec")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1hf0zb51qc6fyhdjxyij1n3vgwnw3cwksc3r11szbhkml14qjnzk"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(inputs
|
||||||
|
`(("libpng" ,libpng)
|
||||||
|
("libsndfile" ,libsndfile)))
|
||||||
|
(arguments
|
||||||
|
`(#:make-flags (list "CC=gcc")
|
||||||
|
#:tests? #f ; no tests
|
||||||
|
#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
(delete 'configure)
|
||||||
|
(replace 'install
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
(let ((out (assoc-ref outputs "out")))
|
||||||
|
(install-file "atpdec" (string-append out "/bin")))
|
||||||
|
#t)))))
|
||||||
|
(home-page "https://github.com/csete/aptdec")
|
||||||
|
(synopsis "NOAA Automatic Picture Transmission (APT) decoder")
|
||||||
|
(description "Aptdec decodes Automatic Picture Transmission (APT) images.
|
||||||
|
These are medium resolution images of the Earth transmitted by, among other
|
||||||
|
satellites, the POES NOAA weather satellite series. These transmissions are
|
||||||
|
on a frequency of 137 MHz. They can be received using an inexpensive antenna
|
||||||
|
and a dedicated receiver.")
|
||||||
|
(license license:gpl2+)))
|
||||||
|
|
|
@ -153,30 +153,6 @@ output file should be identical to the corresponding @code{golden} file, which
|
||||||
contains the correct result for the test.")
|
contains the correct result for the test.")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
;; This package builds `clock` without tests, since the tests rely on tasty
|
|
||||||
;; and tasty-quickcheck, which in turn require clock to build.
|
|
||||||
(define ghc-clock-bootstrap
|
|
||||||
(package
|
|
||||||
(name "ghc-clock-bootstrap")
|
|
||||||
(version "0.5.1")
|
|
||||||
(source
|
|
||||||
(origin
|
|
||||||
(method url-fetch)
|
|
||||||
(uri (string-append
|
|
||||||
"https://hackage.haskell.org/package/"
|
|
||||||
"clock/"
|
|
||||||
"clock-" version ".tar.gz"))
|
|
||||||
(sha256
|
|
||||||
(base32 "1ncph7vi2q6ywwc8ysxl1ibw6i5dwfvln88ssfazk8jgpj4iyykw"))))
|
|
||||||
(build-system haskell-build-system)
|
|
||||||
(arguments `(#:tests? #f)) ;; Testing suite depends on tasty and
|
|
||||||
;; tasty-quickcheck, which need clock to build.
|
|
||||||
(home-page "https://hackage.haskell.org/package/clock")
|
|
||||||
(synopsis "High-resolution clock for Haskell")
|
|
||||||
(description "A package for convenient access to high-resolution clock and
|
|
||||||
timer functions of different operating systems via a unified API.")
|
|
||||||
(license license:bsd-3)))
|
|
||||||
|
|
||||||
(define-public ghc-tasty
|
(define-public ghc-tasty
|
||||||
(package
|
(package
|
||||||
(name "ghc-tasty")
|
(name "ghc-tasty")
|
||||||
|
|
|
@ -4795,6 +4795,16 @@ unbounded @code{Integer} type.")
|
||||||
timer functions of different operating systems via a unified API.")
|
timer functions of different operating systems via a unified API.")
|
||||||
(license license:bsd-3)))
|
(license license:bsd-3)))
|
||||||
|
|
||||||
|
;; This package builds `clock` without tests, since the tests rely on tasty
|
||||||
|
;; and tasty-quickcheck, which in turn require clock to build.
|
||||||
|
(define-public ghc-clock-bootstrap
|
||||||
|
(package
|
||||||
|
(inherit ghc-clock)
|
||||||
|
(name "ghc-clock-bootstrap")
|
||||||
|
(arguments '(#:tests? #f))
|
||||||
|
(inputs '())
|
||||||
|
(properties '((hidden? #t)))))
|
||||||
|
|
||||||
(define-public ghc-charset
|
(define-public ghc-charset
|
||||||
(package
|
(package
|
||||||
(name "ghc-charset")
|
(name "ghc-charset")
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
|
;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
|
||||||
;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
|
;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
|
||||||
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
||||||
;;; Copyright © 2017 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
;;; Copyright © 2017,2019 Hartmut Goebel <h.goebel@crazy-compilers.com>
|
||||||
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
|
;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
|
||||||
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
|
;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
|
||||||
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
|
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
|
||||||
|
@ -295,6 +295,74 @@ files. It can compress them as much as 40% losslessly.")
|
||||||
Currently all documentation resides in @file{pnglite.h}.")
|
Currently all documentation resides in @file{pnglite.h}.")
|
||||||
(license license:zlib))))
|
(license license:zlib))))
|
||||||
|
|
||||||
|
(define-public libimagequant
|
||||||
|
(package
|
||||||
|
(name "libimagequant")
|
||||||
|
(version "2.12.3")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/ImageOptim/libimagequant.git")
|
||||||
|
(commit version)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "0qsfq1kv1m5jzn9v9iz0bac66k4clcis1c9877qabnwzwmwma5v0"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
'(#:tests? #f)) ; no check target
|
||||||
|
(home-page "https://pngquant.org/lib/")
|
||||||
|
(synopsis "Image palette quantization library")
|
||||||
|
(description "libimagequant is a small, portable C library for
|
||||||
|
high-quality conversion of RGBA images to 8-bit indexed-color (palette)
|
||||||
|
images. This library can significantly reduces file sizes and powers pngquant
|
||||||
|
and other PNG optimizers.")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
||||||
|
(define-public pngquant
|
||||||
|
(package
|
||||||
|
(name "pngquant")
|
||||||
|
(version "2.12.3")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/kornelski/pngquant.git")
|
||||||
|
(commit version)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "1yiwbcihn4311fpfd568gg8zmmhqwg80jmhbhkb5msiipgd9xv33"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:test-target "test"
|
||||||
|
#:configure-flags
|
||||||
|
'("--with-openmp" "--with-lcms2")))
|
||||||
|
(native-inputs
|
||||||
|
`(("pkg-config" ,pkg-config)))
|
||||||
|
(inputs
|
||||||
|
`(("libpng" ,libpng)
|
||||||
|
("zlib" , zlib)
|
||||||
|
("lcms" ,lcms)
|
||||||
|
("libimagequant" ,libimagequant)))
|
||||||
|
(home-page "https://pngquant.org/")
|
||||||
|
(synopsis "Utility and library for lossy compressing PNG images")
|
||||||
|
(description "pngquant is a PNG compressor that significantly reduces file
|
||||||
|
sizes by converting images to a more efficient 8-bit PNG format with alpha
|
||||||
|
channel (often 60-80% smaller than 24/32-bit PNG files). Compressed images
|
||||||
|
are fully standards-compliant and are supported by all web browsers and
|
||||||
|
operating systems.
|
||||||
|
|
||||||
|
Features:
|
||||||
|
@enumerate
|
||||||
|
@item High-quality palette generation using a combination of vector
|
||||||
|
quantization algorithms.
|
||||||
|
@item Unique adaptive dithering algorithm that adds less noise to images
|
||||||
|
than the standard Floyd-Steinberg.
|
||||||
|
@item Easy to integrate with shell scripts, GUIs and server-side software.
|
||||||
|
@item Fast mode for real-time processing/large numbers of images.
|
||||||
|
@end enumerate")
|
||||||
|
(license license:gpl3+)))
|
||||||
|
|
||||||
(define-public libjpeg
|
(define-public libjpeg
|
||||||
(package
|
(package
|
||||||
(name "libjpeg")
|
(name "libjpeg")
|
||||||
|
|
|
@ -35,6 +35,7 @@
|
||||||
;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
|
;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
|
||||||
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
;;; Copyright © 2019 Stefan Stefanović <stefanx2ovic@gmail.com>
|
;;; Copyright © 2019 Stefan Stefanović <stefanx2ovic@gmail.com>
|
||||||
|
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -104,7 +105,6 @@
|
||||||
#:use-module (gnu packages samba)
|
#:use-module (gnu packages samba)
|
||||||
#:use-module (gnu packages serialization)
|
#:use-module (gnu packages serialization)
|
||||||
#:use-module (gnu packages slang)
|
#:use-module (gnu packages slang)
|
||||||
#:use-module (gnu packages storage)
|
|
||||||
#:use-module (gnu packages texinfo)
|
#:use-module (gnu packages texinfo)
|
||||||
#:use-module (gnu packages tls)
|
#:use-module (gnu packages tls)
|
||||||
#:use-module (gnu packages valgrind)
|
#:use-module (gnu packages valgrind)
|
||||||
|
@ -421,26 +421,26 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
|
||||||
It has been modified to remove all non-free binary blobs.")
|
It has been modified to remove all non-free binary blobs.")
|
||||||
(license license:gpl2)))
|
(license license:gpl2)))
|
||||||
|
|
||||||
(define %linux-libre-version "5.1.17")
|
(define %linux-libre-version "5.2.1")
|
||||||
(define %linux-libre-hash "049mij4z1iilrggw6plfdpcj1lnc1vqz5z445ix9677cq1fmiwlh")
|
(define %linux-libre-hash "1qj3zsjynz45p97n6sngdbh4xfd1jks3hbn85nmhzds6sxgg4c54")
|
||||||
|
|
||||||
(define %linux-libre-5.1-patches
|
(define %linux-libre-5.2-patches
|
||||||
(list %boot-logo-patch
|
(list %boot-logo-patch
|
||||||
%linux-libre-arm-export-__sync_icache_dcache-patch))
|
%linux-libre-arm-export-__sync_icache_dcache-patch))
|
||||||
|
|
||||||
(define-public linux-libre-5.1
|
(define-public linux-libre-5.2
|
||||||
(make-linux-libre %linux-libre-version
|
(make-linux-libre %linux-libre-version
|
||||||
%linux-libre-hash
|
%linux-libre-hash
|
||||||
'("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux")
|
'("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux")
|
||||||
#:patches %linux-libre-5.1-patches
|
#:patches %linux-libre-5.2-patches
|
||||||
#:configuration-file kernel-config))
|
#:configuration-file kernel-config))
|
||||||
|
|
||||||
(define-public linux-libre-headers-5.1
|
(define-public linux-libre-headers-5.2
|
||||||
(make-linux-libre-headers %linux-libre-version
|
(make-linux-libre-headers %linux-libre-version
|
||||||
%linux-libre-hash))
|
%linux-libre-hash))
|
||||||
|
|
||||||
(define %linux-libre-4.19-version "4.19.58")
|
(define %linux-libre-4.19-version "4.19.59")
|
||||||
(define %linux-libre-4.19-hash "0i2mh0zk1h1niba1bpd49bn938sdn3qrwzkqpqzimxnj31xcjhyz")
|
(define %linux-libre-4.19-hash "1c9qfw1mnz68ki48kg1brmv47wmsdvq41ip6202rlnmwgncj5yrw")
|
||||||
|
|
||||||
(define %linux-libre-4.19-patches
|
(define %linux-libre-4.19-patches
|
||||||
(list %boot-logo-patch
|
(list %boot-logo-patch
|
||||||
|
@ -492,7 +492,7 @@ It has been modified to remove all non-free binary blobs.")
|
||||||
(make-linux-libre %linux-libre-version
|
(make-linux-libre %linux-libre-version
|
||||||
%linux-libre-hash
|
%linux-libre-hash
|
||||||
'("armhf-linux")
|
'("armhf-linux")
|
||||||
#:patches %linux-libre-5.1-patches
|
#:patches %linux-libre-5.2-patches
|
||||||
#:configuration-file kernel-config-veyron
|
#:configuration-file kernel-config-veyron
|
||||||
#:extra-version "arm-veyron"))
|
#:extra-version "arm-veyron"))
|
||||||
|
|
||||||
|
@ -501,13 +501,13 @@ It has been modified to remove all non-free binary blobs.")
|
||||||
"1zqiic55viy065lhnkmhn33sz3bbbr2ykbm5f92yzd8lpc9zl7yx"))
|
"1zqiic55viy065lhnkmhn33sz3bbbr2ykbm5f92yzd8lpc9zl7yx"))
|
||||||
|
|
||||||
(define-public linux-libre-headers linux-libre-headers-4.19.56)
|
(define-public linux-libre-headers linux-libre-headers-4.19.56)
|
||||||
(define-public linux-libre linux-libre-5.1)
|
(define-public linux-libre linux-libre-5.2)
|
||||||
|
|
||||||
(define-public linux-libre-arm-generic
|
(define-public linux-libre-arm-generic
|
||||||
(make-linux-libre %linux-libre-version
|
(make-linux-libre %linux-libre-version
|
||||||
%linux-libre-hash
|
%linux-libre-hash
|
||||||
'("armhf-linux")
|
'("armhf-linux")
|
||||||
#:patches %linux-libre-5.1-patches
|
#:patches %linux-libre-5.2-patches
|
||||||
#:defconfig "multi_v7_defconfig"
|
#:defconfig "multi_v7_defconfig"
|
||||||
#:extra-version "arm-generic"))
|
#:extra-version "arm-generic"))
|
||||||
|
|
||||||
|
@ -530,7 +530,7 @@ It has been modified to remove all non-free binary blobs.")
|
||||||
(make-linux-libre %linux-libre-version
|
(make-linux-libre %linux-libre-version
|
||||||
%linux-libre-hash
|
%linux-libre-hash
|
||||||
'("armhf-linux")
|
'("armhf-linux")
|
||||||
#:patches %linux-libre-5.1-patches
|
#:patches %linux-libre-5.2-patches
|
||||||
#:defconfig "omap2plus_defconfig"
|
#:defconfig "omap2plus_defconfig"
|
||||||
#:extra-version "arm-omap2plus"))
|
#:extra-version "arm-omap2plus"))
|
||||||
|
|
||||||
|
@ -3245,7 +3245,7 @@ arrays when needed.")
|
||||||
(define-public multipath-tools
|
(define-public multipath-tools
|
||||||
(package
|
(package
|
||||||
(name "multipath-tools")
|
(name "multipath-tools")
|
||||||
(version "0.7.9")
|
(version "0.8.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://git.opensvc.com/?p=multipath-tools/"
|
(uri (string-append "https://git.opensvc.com/?p=multipath-tools/"
|
||||||
|
@ -3253,7 +3253,7 @@ arrays when needed.")
|
||||||
(file-name (string-append name "-" version ".tar.gz"))
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1jhi6bhl4ih75rfmyyjxd35ghgch5ls1gw40cjxwy9d6bd41z6q1"))
|
"0kb4mhzwyygdbikikmby6hj39pb3nrzv05v526c75wnycwnpxg31"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
|
@ -3303,8 +3303,7 @@ arrays when needed.")
|
||||||
("pkg-config" ,pkg-config)
|
("pkg-config" ,pkg-config)
|
||||||
("valgrind" ,valgrind)))
|
("valgrind" ,valgrind)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("ceph:lib" ,ceph "lib")
|
`(("json-c" ,json-c)
|
||||||
("json-c" ,json-c)
|
|
||||||
("libaio" ,libaio)
|
("libaio" ,libaio)
|
||||||
("liburcu" ,liburcu)
|
("liburcu" ,liburcu)
|
||||||
("lvm2" ,lvm2)
|
("lvm2" ,lvm2)
|
||||||
|
|
|
@ -1149,15 +1149,14 @@ which can add many functionalities to the base client.")
|
||||||
(define-public msmtp
|
(define-public msmtp
|
||||||
(package
|
(package
|
||||||
(name "msmtp")
|
(name "msmtp")
|
||||||
(version "1.8.4")
|
(version "1.8.5")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://marlam.de/msmtp/releases/"
|
(uri (string-append "https://marlam.de/msmtp/releases/"
|
||||||
"/msmtp-" version ".tar.xz"))
|
"/msmtp-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32 "0fczpfxlr62wkr7bwhp24clxg962k5khgz14h818qyy4v77dl4qn"))))
|
||||||
"1xr926lyy44baqdgv9q0sw5z6ll2cb4lx2g4lgpgbqn8bglpzpg5"))))
|
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("libsecret" ,libsecret)
|
`(("libsecret" ,libsecret)
|
||||||
|
@ -1949,14 +1948,14 @@ converts them to maildir format directories.")
|
||||||
(define-public mpop
|
(define-public mpop
|
||||||
(package
|
(package
|
||||||
(name "mpop")
|
(name "mpop")
|
||||||
(version "1.4.4")
|
(version "1.4.5")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://marlam.de/mpop/releases/"
|
(uri (string-append "https://marlam.de/mpop/releases/"
|
||||||
"mpop-" version ".tar.xz"))
|
"mpop-" version ".tar.xz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "0j21cp8bw12vgfymxi3i4av3j97lrcyb5y9xa3mb59wr17izz73x"))))
|
(base32 "1m6743j8g777lijvxqw2wz6pv2g5a9wlh6zq7awk0hvd44xp4sav"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("gnutls" ,gnutls)
|
`(("gnutls" ,gnutls)
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
|
||||||
;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
|
||||||
;;; Copyright © 2017, 2018 Paul Garlick <pgarlick@tourbillion-technology.com>
|
;;; Copyright © 2017, 2018, 2019 Paul Garlick <pgarlick@tourbillion-technology.com>
|
||||||
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
;;; Copyright © 2017 ng0 <ng0@n0.is>
|
||||||
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
|
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
|
||||||
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
|
;;; Copyright © 2017 Theodoros Foradis <theodoros@foradis.org>
|
||||||
|
@ -1618,6 +1618,98 @@ Open CASCADE library.")
|
||||||
license:expat; file src/OpenGl/OpenGl_glext.h
|
license:expat; file src/OpenGl/OpenGl_glext.h
|
||||||
license:bsd-3)))); test framework gtest
|
license:bsd-3)))); test framework gtest
|
||||||
|
|
||||||
|
(define-public opencascade-occt
|
||||||
|
(package
|
||||||
|
(name "opencascade-occt")
|
||||||
|
(version "7.3.0p3")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://git.dev.opencascade.org/repos/occt.git")
|
||||||
|
(commit
|
||||||
|
(string-append "V"
|
||||||
|
(string-map (lambda (x) (if (eq? x #\.) #\_ x))
|
||||||
|
version)))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "0bdywwxb6mk0ykbiajlvsb37295akqjp0a60y672qjfa67k0ljv4"))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(snippet
|
||||||
|
'(begin
|
||||||
|
;; Remove files specific to non-free operating systems.
|
||||||
|
(delete-file-recursively "samples/ios")
|
||||||
|
(delete-file-recursively "samples/mfc")
|
||||||
|
(delete-file-recursively "samples/qt/FuncDemo")
|
||||||
|
(delete-file "genconf.bat")
|
||||||
|
(delete-file "gendoc.bat")
|
||||||
|
(delete-file "genproj.bat")
|
||||||
|
(delete-file "upgrade.bat")
|
||||||
|
;; Remove references to deleted files.
|
||||||
|
(substitute* "dox/FILES_HTML.txt"
|
||||||
|
((".*standard.*") "" )
|
||||||
|
((".*UIKitSample.*") ""))
|
||||||
|
#t))))
|
||||||
|
(build-system cmake-build-system)
|
||||||
|
(arguments
|
||||||
|
'(;; There is no test target for make. OCCT provides an
|
||||||
|
;; 'Automated Testing System', which may be accessed after
|
||||||
|
;; installation via the draw.sh script. draw.sh is located in
|
||||||
|
;; the bin directory. For details see:
|
||||||
|
;; https://www.opencascade.com/doc/occt-7.3.0/overview/html/\
|
||||||
|
;; occt_dev_guides__tests.html
|
||||||
|
#:tests? #f
|
||||||
|
;; Configure without freeimage: attempting to link against the
|
||||||
|
;; freeimage version 3.17 library leads to 'undefined
|
||||||
|
;; reference' errors.
|
||||||
|
#:configure-flags
|
||||||
|
(list "-DUSE_FREEIMAGE:BOOL=OFF"
|
||||||
|
"-DUSE_TBB:BOOL=ON"
|
||||||
|
"-DUSE_VTK:BOOL=OFF"
|
||||||
|
"-DBUILD_DOC_Overview:BOOL=OFF"
|
||||||
|
"-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON"
|
||||||
|
"-DCMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY=ON"
|
||||||
|
"-UCMAKE_INSTALL_LIBDIR")))
|
||||||
|
(inputs
|
||||||
|
`(("doxygen" ,doxygen)
|
||||||
|
;("freeimage" ,freeimage)
|
||||||
|
("freetype" ,freetype)
|
||||||
|
("glu" ,glu)
|
||||||
|
("libxext" ,libxext)
|
||||||
|
("libxi" ,libxi)
|
||||||
|
("libxmu" ,libxmu)
|
||||||
|
("mesa" ,mesa)
|
||||||
|
("tbb" ,tbb)
|
||||||
|
("tcl" ,tcl)
|
||||||
|
("tk" ,tk)))
|
||||||
|
;; TODO: build Overview documentation and add 'doc' output.
|
||||||
|
(home-page "https://www.opencascade.com")
|
||||||
|
(synopsis "Libraries for 3D modeling and numerical simulation")
|
||||||
|
(description
|
||||||
|
"Open CASCADE is a set of libraries for the development of applications
|
||||||
|
dealing with 3D CAD data or requiring industrial 3D capabilities. It includes
|
||||||
|
C++ class libraries providing services for 3D surface and solid modeling, CAD
|
||||||
|
data exchange, and visualization. It is used for development of specialized
|
||||||
|
software dealing with 3D models in design (CAD), manufacturing (CAM),
|
||||||
|
numerical simulation (CAE), measurement equipment (CMM), and quality
|
||||||
|
control (CAQ) domains.
|
||||||
|
|
||||||
|
This is the certified version of the Open Cascade Technology (OCCT) library.")
|
||||||
|
(license (list ;; OCCT library:
|
||||||
|
license:lgpl2.1; with an exception for the use of header
|
||||||
|
; files, see OCCT_LGPL_EXCEPTION.txt.
|
||||||
|
;; Files src/OpenGl/glext.h, adm/cmake/cotire.cmake and
|
||||||
|
;; src/OpenGl/OpenGl_HaltonSampler.hxx:
|
||||||
|
license:expat
|
||||||
|
;; Files src/ExprIntrp/ExprIntrp.tab.* and
|
||||||
|
;; src/StepFile/step.tab.*:
|
||||||
|
license:gpl3+ ; with Bison 2.2 exception.
|
||||||
|
;; File src/NCollection/NCollection_UtfIterator.lxx:
|
||||||
|
(license:non-copyleft
|
||||||
|
"https://www.unicode.org/license.html")
|
||||||
|
;; File src/NCollection/NCollection_StdAllocator.hxx:
|
||||||
|
license:public-domain))))
|
||||||
|
|
||||||
(define-public gmsh
|
(define-public gmsh
|
||||||
(package
|
(package
|
||||||
(name "gmsh")
|
(name "gmsh")
|
||||||
|
|
|
@ -1855,7 +1855,7 @@ messaging that aren’t available to clients that connect over XMPP.")
|
||||||
(define-public telegram-purple
|
(define-public telegram-purple
|
||||||
(package
|
(package
|
||||||
(name "telegram-purple")
|
(name "telegram-purple")
|
||||||
(version "1.3.1")
|
(version "1.4.1")
|
||||||
(home-page "https://github.com/majn/telegram-purple")
|
(home-page "https://github.com/majn/telegram-purple")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -1865,7 +1865,7 @@ messaging that aren’t available to clients that connect over XMPP.")
|
||||||
(recursive? #t)))
|
(recursive? #t)))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0p93jpjpx7hszwffzgixw04zkrpsiyzz4za3gfr4j07krc4771fp"))
|
"0xlmqnlp2dqkgsq052d6dwgvqbwch2w0dnwpjslk5na4ih3lfr7k"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
|
|
|
@ -352,6 +352,7 @@ playing your music.")
|
||||||
(inputs
|
(inputs
|
||||||
`(("alsa-lib" ,alsa-lib)
|
`(("alsa-lib" ,alsa-lib)
|
||||||
("ao" ,ao)
|
("ao" ,ao)
|
||||||
|
("faad2" ,faad2)
|
||||||
("ffmpeg" ,ffmpeg)
|
("ffmpeg" ,ffmpeg)
|
||||||
("flac" ,flac)
|
("flac" ,flac)
|
||||||
("jack" ,jack-1)
|
("jack" ,jack-1)
|
||||||
|
|
|
@ -1440,7 +1440,7 @@ gone wild and are suddenly taking up your bandwidth.")
|
||||||
(define-public nzbget
|
(define-public nzbget
|
||||||
(package
|
(package
|
||||||
(name "nzbget")
|
(name "nzbget")
|
||||||
(version "20.0")
|
(version "21.0")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -1449,7 +1449,7 @@ gone wild and are suddenly taking up your bandwidth.")
|
||||||
(file-name (string-append name "-" version ".tar.gz"))
|
(file-name (string-append name "-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0q93aqqyzccn5r9sny38499rmg846qdh9pi2v5kvf9m23v54yk60"))
|
"0l3dzxz7d7jf6cyach41zirvsx1x0vs4nh053c0miycv7zjyrly7"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
;; Reported upstream as <https://github.com/nzbget/nzbget/pull/414>.
|
;; Reported upstream as <https://github.com/nzbget/nzbget/pull/414>.
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
From d3026a6d331298003ccc6cd9d2e20dcb7fa9ae1d Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20=C4=8Cech?= <sleep_walker@gnu.org>
|
||||||
|
Date: Wed, 3 Jul 2019 13:31:54 +0200
|
||||||
|
Subject: [PATCH] respect NM_VPN_PLUGIN_DIR
|
||||||
|
|
||||||
|
---
|
||||||
|
src/vpn/nm-vpn-manager.c | 14 ++++++++++++++
|
||||||
|
1 file changed, 14 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/vpn/nm-vpn-manager.c b/src/vpn/nm-vpn-manager.c
|
||||||
|
index d063916..d779166 100644
|
||||||
|
--- a/src/vpn/nm-vpn-manager.c
|
||||||
|
+++ b/src/vpn/nm-vpn-manager.c
|
||||||
|
@@ -223,6 +223,7 @@ nm_vpn_manager_init (NMVpnManager *self)
|
||||||
|
GSList *infos, *info;
|
||||||
|
const char *conf_dir_etc = _nm_vpn_plugin_info_get_default_dir_etc ();
|
||||||
|
const char *conf_dir_lib = _nm_vpn_plugin_info_get_default_dir_lib ();
|
||||||
|
+ const char *conf_dir_user = _nm_vpn_plugin_info_get_default_dir_user ();
|
||||||
|
|
||||||
|
/* Watch the VPN directory for changes */
|
||||||
|
file = g_file_new_for_path (conf_dir_lib);
|
||||||
|
@@ -241,6 +242,14 @@ nm_vpn_manager_init (NMVpnManager *self)
|
||||||
|
G_CALLBACK (vpn_dir_changed), self);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ file = g_file_new_for_path (conf_dir_user);
|
||||||
|
+ priv->monitor_etc = g_file_monitor_directory (file, G_FILE_MONITOR_NONE, NULL, NULL);
|
||||||
|
+ g_object_unref (file);
|
||||||
|
+ if (priv->monitor_etc) {
|
||||||
|
+ priv->monitor_id_etc = g_signal_connect (priv->monitor_etc, "changed",
|
||||||
|
+ G_CALLBACK (vpn_dir_changed), self);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
/* first read conf_dir_lib. The name files are not really user configuration, but
|
||||||
|
* plugin configuration. Hence we expect ~newer~ plugins to install their files
|
||||||
|
* in /usr/lib/NetworkManager. We want to prefer those files.
|
||||||
|
@@ -255,6 +264,11 @@ nm_vpn_manager_init (NMVpnManager *self)
|
||||||
|
try_add_plugin (self, info->data);
|
||||||
|
g_slist_free_full (infos, g_object_unref);
|
||||||
|
|
||||||
|
+ infos = _nm_vpn_plugin_info_list_load_dir (conf_dir_user, TRUE, 0, NULL, NULL);
|
||||||
|
+ for (info = infos; info; info = info->next)
|
||||||
|
+ try_add_plugin (self, info->data);
|
||||||
|
+ g_slist_free_full (infos, g_object_unref);
|
||||||
|
+
|
||||||
|
priv->active_services = g_hash_table_new_full (nm_str_hash, g_str_equal, g_free, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.22.0
|
||||||
|
|
|
@ -75,14 +75,14 @@
|
||||||
(define-public python-aiohttp
|
(define-public python-aiohttp
|
||||||
(package
|
(package
|
||||||
(name "python-aiohttp")
|
(name "python-aiohttp")
|
||||||
(version "3.4.4")
|
(version "3.5.4")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "aiohttp" version))
|
(uri (pypi-uri "aiohttp" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1ykm6kdjkrg556j0zd7dx2l1rsrbh0d9g27ivr6dmaahz9pyrbsi"))))
|
"1gy95ni8rkdwzir9zf14ivpfwp02g69xbhibldykff0rzbs86k4w"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:tests? #f)) ;missing pytest-timeout
|
`(#:tests? #f)) ;missing pytest-timeout
|
||||||
|
@ -154,22 +154,22 @@ using @url{https://github.com/saghul/pycares,pycares}.")
|
||||||
(define-public python-aiorpcx
|
(define-public python-aiorpcx
|
||||||
(package
|
(package
|
||||||
(name "python-aiorpcx")
|
(name "python-aiorpcx")
|
||||||
(version "0.10.2")
|
(version "0.18.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "aiorpcX" version))
|
(uri (pypi-uri "aiorpcX" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1p88k15jh0d2a18pnnbfcamsqi2bxvmmhpizmdlxfdxf8vy5ggyj"))))
|
"0k545hc7wl6sh1svydzbv6x7sx5pig2pqkl3yxs9riwmvzawx9xp"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("python-attrs" ,python-attrs)))
|
`(("python-attrs" ,python-attrs)))
|
||||||
(home-page "https://github.com/kyuupichan/aiorpcX")
|
(home-page "https://github.com/kyuupichan/aiorpcX")
|
||||||
(synopsis "Generic asyncio RPC implementation")
|
(synopsis "Generic asyncio RPC implementation")
|
||||||
(description
|
(description
|
||||||
"aiorpcX is a generic asyncio library implementation of RPC suitable for
|
"The aiorpcX library is a generic asyncio implementation of RPC suitable
|
||||||
an application that is a client, server or both.
|
for an application that is a client, server or both.
|
||||||
|
|
||||||
The package includes a module with full coverage of JSON RPC versions 1.0 and
|
The package includes a module with full coverage of JSON RPC versions 1.0 and
|
||||||
2.0, JSON RPC protocol auto-detection, and arbitrary message framing. It also
|
2.0, JSON RPC protocol auto-detection, and arbitrary message framing. It also
|
||||||
|
@ -1352,6 +1352,22 @@ WebSocket usage in Python programs.")
|
||||||
than Python’s urllib2 library.")
|
than Python’s urllib2 library.")
|
||||||
(license license:asl2.0)))
|
(license license:asl2.0)))
|
||||||
|
|
||||||
|
;; Some software requires an older version of Requests, notably Docker/Docker
|
||||||
|
;; Compose.
|
||||||
|
(define-public python-requests-2.20
|
||||||
|
(package (inherit python-requests)
|
||||||
|
(version "2.20.1")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "requests" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"0qzj6cgv3k9wyj7wlxgz7xq0cfg4jbbkfm24pp8dnhczwl31527a"))))
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-urllib3" ,python-urllib3-1.24)
|
||||||
|
("python-idna" ,python-idna-2.7)
|
||||||
|
,@(package-propagated-inputs python-requests)))))
|
||||||
|
|
||||||
;; Some software requires an older version of Requests, notably Docker
|
;; Some software requires an older version of Requests, notably Docker
|
||||||
;; Compose.
|
;; Compose.
|
||||||
(define-public python-requests-2.7
|
(define-public python-requests-2.7
|
||||||
|
@ -1528,6 +1544,18 @@ can reuse the same socket connection for multiple requests, it can POST files,
|
||||||
supports url redirection and retries, and also gzip and deflate decoding.")
|
supports url redirection and retries, and also gzip and deflate decoding.")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
|
;; Some software requires an older version of urllib3, notably Docker.
|
||||||
|
(define-public python-urllib3-1.24
|
||||||
|
(package (inherit python-urllib3)
|
||||||
|
(version "1.24.3")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "urllib3" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1x0slqrv6kixkbcdnxbglvjliwhc1payavxjvk8fvbqjrnasd4r3"))))))
|
||||||
|
|
||||||
|
|
||||||
(define-public python2-urllib3
|
(define-public python2-urllib3
|
||||||
(package-with-python2 python-urllib3))
|
(package-with-python2 python-urllib3))
|
||||||
|
|
||||||
|
@ -1954,15 +1982,15 @@ provide an easy-to-use Python interface for building OAuth1 and OAuth2 clients."
|
||||||
(version "0.11.6")
|
(version "0.11.6")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method git-fetch)
|
||||||
;; Pypi does not have tests.
|
;; Pypi does not have tests.
|
||||||
(uri (string-append
|
(uri (git-reference
|
||||||
"https://github.com/ionrock/cachecontrol/archive/v"
|
(url "https://github.com/ionrock/cachecontrol")
|
||||||
version ".tar.gz"))
|
(commit (string-append "v" version))))
|
||||||
(file-name (string-append name "-" version ".tar.gz"))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0yj60d0f69a2l8p7y86k4zhzzm6rnxpq74sfl240pry9l0lfw2vw"))))
|
"0pb16bzbkk99nh317xyfk8fxc2ngimsbz7lz9pxsw8c82n83d4dh"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
@ -2163,6 +2191,30 @@ pretty printer and a tree visitor.")
|
||||||
"This package provides HTTP basic access authentication for Flask.")
|
"This package provides HTTP basic access authentication for Flask.")
|
||||||
(license license:bsd-3)))
|
(license license:bsd-3)))
|
||||||
|
|
||||||
|
(define-public python-flask-htpasswd
|
||||||
|
(package
|
||||||
|
(name "python-flask-htpasswd")
|
||||||
|
(version "0.3.1")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "flask-htpasswd" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"14q1y1y9i9bhabdnwd25jqzc4ljli23smxfyyh8abxz1vq93pxra"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(propagated-inputs
|
||||||
|
`(("python-flask" ,python-flask)
|
||||||
|
("python-itsdangerous" ,python-itsdangerous)
|
||||||
|
("python-passlib" ,python-passlib)
|
||||||
|
("python-tox" ,python-tox)))
|
||||||
|
(home-page "http://github.com/carsongee/flask-htpasswd")
|
||||||
|
(synopsis "Basic authentication via htpasswd files in Flask applications")
|
||||||
|
(description "This package provides Basic authentication via
|
||||||
|
@file{htpasswd} files and access_token authentication in Flask
|
||||||
|
applications.")
|
||||||
|
(license license:bsd-3)))
|
||||||
|
|
||||||
(define-public python-flask-sqlalchemy
|
(define-public python-flask-sqlalchemy
|
||||||
(package
|
(package
|
||||||
(name "python-flask-sqlalchemy")
|
(name "python-flask-sqlalchemy")
|
||||||
|
|
|
@ -63,6 +63,7 @@
|
||||||
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
|
;;; Copyright © 2019 Guillaume Le Vaillant <glv@posteo.net>
|
||||||
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
|
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
|
||||||
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
|
;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com>
|
||||||
|
;;; Copyright © 2019 Jacob MacDonald <jaccarmac@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -3848,22 +3849,11 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
|
||||||
("python-pillow" ,python-pillow)
|
("python-pillow" ,python-pillow)
|
||||||
("python-pytz" ,python-pytz)
|
("python-pytz" ,python-pytz)
|
||||||
("python-six" ,python-six)
|
("python-six" ,python-six)
|
||||||
;; The 'gtk+' package (and 'gdk-pixbuf', 'atk' and 'pango' propagated
|
|
||||||
;; from 'gtk+') provides the required 'typelib' files used by
|
|
||||||
;; 'gobject-introspection'. The location of these files is set with the
|
|
||||||
;; help of the environment variable GI_TYPELIB_PATH. At build time this
|
|
||||||
;; is done automatically by a 'native-search-path' procedure. However,
|
|
||||||
;; at run-time the user must set this variable as follows:
|
|
||||||
;;
|
|
||||||
;; export GI_TYPELIB_PATH=~/.guix-profile/lib/girepository-1.0
|
|
||||||
("gtk+" ,gtk+)
|
|
||||||
;; From version 1.4.0 'matplotlib' makes use of 'cairocffi' instead of
|
;; From version 1.4.0 'matplotlib' makes use of 'cairocffi' instead of
|
||||||
;; 'pycairo'. However, 'pygobject' makes use of a 'pycairo' 'context'
|
;; 'pycairo'. However, 'pygobject' makes use of a 'pycairo' 'context'
|
||||||
;; object. For this reason we need to import both libraries.
|
;; object. For this reason we need to import both libraries.
|
||||||
;; https://pythonhosted.org/cairocffi/cffi_api.html#converting-pycairo
|
;; https://pythonhosted.org/cairocffi/cffi_api.html#converting-pycairo
|
||||||
("python-pycairo" ,python-pycairo)
|
("python-pycairo" ,python-pycairo)
|
||||||
;; XXX: qtwebkit cannot be built reliably.
|
|
||||||
("python-pyqt" ,python-pyqt-without-qtwebkit)
|
|
||||||
("python-cairocffi" ,python-cairocffi)))
|
("python-cairocffi" ,python-cairocffi)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("libpng" ,libpng)
|
`(("libpng" ,libpng)
|
||||||
|
@ -3884,12 +3874,10 @@ convert between colorspaces like sRGB, XYZ, CIEL*a*b*, CIECAM02, CAM02-UCS, etc.
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(add-before 'build 'configure-environment
|
(add-before 'build 'configure-environment
|
||||||
(lambda* (#:key outputs inputs #:allow-other-keys)
|
(lambda* (#:key outputs inputs #:allow-other-keys)
|
||||||
(let ((cairo (assoc-ref inputs "cairo"))
|
(let ((cairo (assoc-ref inputs "cairo")))
|
||||||
(gtk+ (assoc-ref inputs "gtk+")))
|
;; Setting this directory in the 'basedirlist' of 'setup.cfg'
|
||||||
;; Setting these directories in the 'basedirlist' of 'setup.cfg'
|
|
||||||
;; has not effect.
|
;; has not effect.
|
||||||
(setenv "LD_LIBRARY_PATH"
|
(setenv "LD_LIBRARY_PATH" (string-append cairo "/lib"))
|
||||||
(string-append cairo "/lib:" gtk+ "/lib"))
|
|
||||||
(setenv "HOME" (getcwd))
|
(setenv "HOME" (getcwd))
|
||||||
(call-with-output-file "setup.cfg"
|
(call-with-output-file "setup.cfg"
|
||||||
(lambda (port)
|
(lambda (port)
|
||||||
|
@ -5209,7 +5197,17 @@ installing @code{kernelspec}s for use with Jupyter frontends.")
|
||||||
(lambda _
|
(lambda _
|
||||||
(setenv "HOME" "/tmp")
|
(setenv "HOME" "/tmp")
|
||||||
(invoke "pytest" "-v")
|
(invoke "pytest" "-v")
|
||||||
#t)))))
|
#t))
|
||||||
|
(add-after 'install 'set-python-file-name
|
||||||
|
(lambda* (#:key outputs #:allow-other-keys)
|
||||||
|
;; Record the absolute file name of the 'python' executable in
|
||||||
|
;; 'kernel.json'.
|
||||||
|
(let ((out (assoc-ref outputs "out")))
|
||||||
|
(substitute* (string-append out "/share/jupyter"
|
||||||
|
"/kernels/python3/kernel.json")
|
||||||
|
(("\"python\"")
|
||||||
|
(string-append "\"" (which "python") "\"")))
|
||||||
|
#t))))))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("python-ipython" ,python-ipython)
|
`(("python-ipython" ,python-ipython)
|
||||||
;; imported at runtime during connect
|
;; imported at runtime during connect
|
||||||
|
@ -7228,6 +7226,17 @@ the Python standard library but currently only supports the older 2003
|
||||||
specification.")
|
specification.")
|
||||||
(license license:bsd-4)))
|
(license license:bsd-4)))
|
||||||
|
|
||||||
|
(define-public python-idna-2.7
|
||||||
|
(package (inherit python-idna)
|
||||||
|
(version "2.7")
|
||||||
|
(source (origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "idna" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"05jam7d31767dr12x0rbvvs8lxnpb1mhdb2zdlfxgh83z6k3hjk8"))))))
|
||||||
|
|
||||||
|
|
||||||
(define-public python2-idna
|
(define-public python2-idna
|
||||||
(package-with-python2 python-idna))
|
(package-with-python2 python-idna))
|
||||||
|
|
||||||
|
@ -8136,14 +8145,14 @@ the standard library.")
|
||||||
(define-public python-texttable
|
(define-public python-texttable
|
||||||
(package
|
(package
|
||||||
(name "python-texttable")
|
(name "python-texttable")
|
||||||
(version "0.8.7")
|
(version "0.9.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "texttable" version))
|
(uri (pypi-uri "texttable" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1liiiydgkg37i46a418aw19fyf6z3ds51wdwwpyjbs12x0phhf4a"))))
|
"0yawv64c0zbawwv6zz84whb32fnb2n9jylwjcfsrcdgh7xvl340i"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments '(#:tests? #f)) ; no tests
|
(arguments '(#:tests? #f)) ; no tests
|
||||||
(home-page "https://github.com/foutaise/texttable/")
|
(home-page "https://github.com/foutaise/texttable/")
|
||||||
|
@ -8527,6 +8536,28 @@ concurrent.futures package from Python 3.2")
|
||||||
("python2-pytest" ,python2-pytest)
|
("python2-pytest" ,python2-pytest)
|
||||||
,@(package-native-inputs promise))))))
|
,@(package-native-inputs promise))))))
|
||||||
|
|
||||||
|
(define-public python-progressbar33
|
||||||
|
(package
|
||||||
|
(name "python-progressbar33")
|
||||||
|
(version "2.4")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "progressbar33" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"1zvf6zs5hzrc03p9nfs4p16vhilqikycvv1yk0pxn8s07fdhvzji"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(home-page "http://github.com/germangh/python-progressbar")
|
||||||
|
(synopsis "Text progress bar library for Python")
|
||||||
|
(description
|
||||||
|
"This package provides a text progress bar library for Python. This
|
||||||
|
version only differs from the original @code{progressbar} package in that it
|
||||||
|
uses relative package imports instead of absolute imports, which is necessary
|
||||||
|
for the module to work under Python 3.3.")
|
||||||
|
;; Either or both of these licenses may be selected.
|
||||||
|
(license (list license:lgpl2.1+ license:bsd-3))))
|
||||||
|
|
||||||
(define-public python-colorama
|
(define-public python-colorama
|
||||||
(package
|
(package
|
||||||
(name "python-colorama")
|
(name "python-colorama")
|
||||||
|
@ -13086,17 +13117,18 @@ from your Flask project. It is a fork of Flask-Swagger.")
|
||||||
(define-public python-swagger-spec-validator
|
(define-public python-swagger-spec-validator
|
||||||
(package
|
(package
|
||||||
(name "python-swagger-spec-validator")
|
(name "python-swagger-spec-validator")
|
||||||
(version "2.1.0")
|
(version "2.4.3")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "swagger-spec-validator" version))
|
(uri (pypi-uri "swagger-spec-validator" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"13hkpn2lycwr0468yqhjb3kwszqf7hjwlq61w7vdxq1caz31k4nw"))))
|
"11g627icrsqwazsncwi0sdvprcj6hwaayw5xk3xsj8d97bmrzqjp"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("python-jsonschema" ,python-jsonschema)
|
`(("python-jsonschema" ,python-jsonschema)
|
||||||
|
("python-pyyaml" ,python-pyyaml)
|
||||||
("python-six" ,python-six)))
|
("python-six" ,python-six)))
|
||||||
(home-page
|
(home-page
|
||||||
"https://github.com/Yelp/swagger_spec_validator")
|
"https://github.com/Yelp/swagger_spec_validator")
|
||||||
|
@ -15939,3 +15971,39 @@ Complete support for Berkeley DB Base Replication. Support for RPC.")
|
||||||
types for further processing. It is primarily intended for batch jobs and
|
types for further processing. It is primarily intended for batch jobs and
|
||||||
one-off scripts.")
|
one-off scripts.")
|
||||||
(license license:expat)))
|
(license license:expat)))
|
||||||
|
|
||||||
|
(define-public python-cached-property
|
||||||
|
(package
|
||||||
|
(name "python-cached-property")
|
||||||
|
(version "1.5.1")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method url-fetch)
|
||||||
|
(uri (pypi-uri "cached-property" version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"010m1bl380l2r3vwq24r5v14l6gwvgm9v0mqqjkjss552jgsa5wj"))))
|
||||||
|
(build-system python-build-system)
|
||||||
|
(arguments
|
||||||
|
`(#:phases
|
||||||
|
(modify-phases %standard-phases
|
||||||
|
;; https://github.com/pydanny/cached-property/issues/131
|
||||||
|
;; recent versions of freezegun break one test
|
||||||
|
(add-after 'unpack 'disable-broken-test
|
||||||
|
(lambda _
|
||||||
|
(substitute* "tests/test_cached_property.py"
|
||||||
|
(("def test_threads_ttl_expiry\\(self\\)" m)
|
||||||
|
(string-append "@unittest.skip(\"Disabled by Guix\")\n"
|
||||||
|
" " m)))
|
||||||
|
#t)))))
|
||||||
|
(native-inputs
|
||||||
|
`(("python-freezegun" ,python-freezegun)))
|
||||||
|
(home-page
|
||||||
|
"https://github.com/pydanny/cached-property")
|
||||||
|
(synopsis
|
||||||
|
"Decorator for caching properties in classes")
|
||||||
|
(description
|
||||||
|
"This package provides a decorator which makes caching
|
||||||
|
time-or-computationally-expensive properties quick and easy and works in Python
|
||||||
|
2 or 3.")
|
||||||
|
(license license:bsd-3)))
|
||||||
|
|
|
@ -8372,16 +8372,16 @@ Pathname.")
|
||||||
(define-public jekyll
|
(define-public jekyll
|
||||||
(package
|
(package
|
||||||
(name "jekyll")
|
(name "jekyll")
|
||||||
(version "3.8.5")
|
(version "3.8.6")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (rubygems-uri "jekyll" version))
|
(uri (rubygems-uri "jekyll" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1nn2sc308l2mz0yiall4r90l6vy67qp4sy9zapi73a948nd4a5k3"))))
|
"1ph1jjjl25vmzif7bvxzviq7azjm384pm7ba4k24cah94285bzhz"))))
|
||||||
(build-system ruby-build-system)
|
(build-system ruby-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
;; No rakefile, but a test subdirectory
|
;; No rakefile, but a test subdirectory.
|
||||||
`(#:tests? #f
|
`(#:tests? #f
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
|
|
|
@ -26,14 +26,14 @@
|
||||||
(define-public rush
|
(define-public rush
|
||||||
(package
|
(package
|
||||||
(name "rush")
|
(name "rush")
|
||||||
(version "1.9")
|
(version "2.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "mirror://gnu/rush/rush-"
|
(uri (string-append "mirror://gnu/rush/rush-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"12x7dyi9vl3lwlv618156nzpi5s0li93wcx2c26h4z7la20yq2yk"))))
|
"17i4mggr3rnfz0xbhqvd86jqva40c535fhlwkb2l4hjcbpg8blcf"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(home-page "https://www.gnu.org/software/rush/")
|
(home-page "https://www.gnu.org/software/rush/")
|
||||||
(synopsis "Restricted user (login) shell")
|
(synopsis "Restricted user (login) shell")
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
|
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
|
||||||
;;; Copyright © 2017, 2018 Nikolai Merinov <nikolai.merinov@member.fsf.org>
|
;;; Copyright © 2017, 2018 Nikolai Merinov <nikolai.merinov@member.fsf.org>
|
||||||
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org>
|
;;; Copyright © 2018 Danny Milosavljevic <dannym+a@scratchpost.org>
|
||||||
;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
|
;;; Copyright © 2019 Ivan Petkov <ivanppetkov@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
|
@ -1047,7 +1047,7 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
|
||||||
(delete-file-recursively "vendor/jemalloc-sys/jemalloc")
|
(delete-file-recursively "vendor/jemalloc-sys/jemalloc")
|
||||||
#t)))))))
|
#t)))))))
|
||||||
|
|
||||||
(define-public rust
|
(define-public rust-1.35
|
||||||
(let ((base-rust
|
(let ((base-rust
|
||||||
(rust-bootstrapped-package rust-1.34 "1.35.0"
|
(rust-bootstrapped-package rust-1.34 "1.35.0"
|
||||||
"0bbizy6b7002v1rdhrxrf5gijclbyizdhkglhp81ib3bf5x66kas")))
|
"0bbizy6b7002v1rdhrxrf5gijclbyizdhkglhp81ib3bf5x66kas")))
|
||||||
|
@ -1069,3 +1069,15 @@ jemalloc = \"" jemalloc "/lib/libjemalloc_pic.a" "\"
|
||||||
(substitute* "src/tools/tidy/src/main.rs"
|
(substitute* "src/tools/tidy/src/main.rs"
|
||||||
(("bins::check") "//bins::check"))
|
(("bins::check") "//bins::check"))
|
||||||
#t)))))))))
|
#t)))))))))
|
||||||
|
|
||||||
|
(define-public rust
|
||||||
|
(let ((base-rust
|
||||||
|
(rust-bootstrapped-package rust-1.35 "1.36.0"
|
||||||
|
"06xv2p6zq03lidr0yaf029ii8wnjjqa894nkmrm6s0rx47by9i04")))
|
||||||
|
(package
|
||||||
|
(inherit base-rust)
|
||||||
|
(arguments
|
||||||
|
(substitute-keyword-arguments (package-arguments base-rust)
|
||||||
|
((#:phases phases)
|
||||||
|
`(modify-phases ,phases
|
||||||
|
(delete 'patch-process-docs-rev-cmd))))))))
|
||||||
|
|
|
@ -57,6 +57,7 @@
|
||||||
#:use-module (gnu packages icu4c)
|
#:use-module (gnu packages icu4c)
|
||||||
#:use-module (gnu packages image)
|
#:use-module (gnu packages image)
|
||||||
#:use-module (gnu packages java)
|
#:use-module (gnu packages java)
|
||||||
|
#:use-module (gnu packages libffi)
|
||||||
#:use-module (gnu packages machine-learning)
|
#:use-module (gnu packages machine-learning)
|
||||||
#:use-module (gnu packages maths)
|
#:use-module (gnu packages maths)
|
||||||
#:use-module (gnu packages multiprecision)
|
#:use-module (gnu packages multiprecision)
|
||||||
|
@ -5765,16 +5766,23 @@ as a boxplot function.")
|
||||||
(license license:lgpl3+)))
|
(license license:lgpl3+)))
|
||||||
|
|
||||||
(define-public python-rpy2
|
(define-public python-rpy2
|
||||||
|
;; We need to take this changeset instead of the RELEASE_3_0_4 tag, because
|
||||||
|
;; it fixes a regression when using ggplot 3.2.0.
|
||||||
|
(let ((changeset "19868a8")
|
||||||
|
(revision "1"))
|
||||||
(package
|
(package
|
||||||
(name "python-rpy2")
|
(name "python-rpy2")
|
||||||
(version "2.9.4")
|
(version (git-version "3.0.4" revision changeset))
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method hg-fetch)
|
||||||
(uri (pypi-uri "rpy2" version))
|
(uri (hg-reference
|
||||||
|
(url "https://bitbucket.org/rpy2/rpy2")
|
||||||
|
(changeset changeset)))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0bl1d2qhavmlrvalir9hmkjh74w21vzkvc2sg3cbb162s10zfmxy"))))
|
"1bb0wslcbj3wjvyk3jb9yyzdi6adfqh5vfgcvn22dyzxzbhcs8kk"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
'(#:modules ((ice-9 ftw)
|
'(#:modules ((ice-9 ftw)
|
||||||
|
@ -5787,17 +5795,23 @@ as a boxplot function.")
|
||||||
(replace 'check
|
(replace 'check
|
||||||
(lambda* (#:key outputs inputs #:allow-other-keys)
|
(lambda* (#:key outputs inputs #:allow-other-keys)
|
||||||
(let ((cwd (getcwd)))
|
(let ((cwd (getcwd)))
|
||||||
|
(setenv "TZ" "UTC")
|
||||||
(setenv "PYTHONPATH"
|
(setenv "PYTHONPATH"
|
||||||
(string-append cwd "/build/"
|
(string-append cwd "/build/"
|
||||||
(find (cut string-prefix? "lib" <>)
|
(find (cut string-prefix? "lib" <>)
|
||||||
(scandir (string-append cwd "/build")))
|
(scandir (string-append cwd "/build")))
|
||||||
":"
|
":"
|
||||||
(getenv "PYTHONPATH"))))
|
(getenv "PYTHONPATH"))))
|
||||||
(invoke "python" "-m" "rpy2.tests" "-v"))))))
|
(invoke "pytest" "-v" "rpy/tests/"))))))
|
||||||
(propagated-inputs
|
(propagated-inputs
|
||||||
`(("python-six" ,python-six)
|
`(("python-cffi" ,python-cffi)
|
||||||
|
("python-six" ,python-six)
|
||||||
("python-jinja2" ,python-jinja2)
|
("python-jinja2" ,python-jinja2)
|
||||||
("python-pytz" ,python-pytz)))
|
("python-numpy" ,python-numpy)
|
||||||
|
("python-pandas" ,python-pandas)
|
||||||
|
("python-pytz" ,python-pytz)
|
||||||
|
("python-ipython" ,python-ipython)
|
||||||
|
("python-tzlocal" ,python-tzlocal)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("readline" ,readline)
|
`(("readline" ,readline)
|
||||||
("icu4c" ,icu4c)
|
("icu4c" ,icu4c)
|
||||||
|
@ -5810,7 +5824,8 @@ as a boxplot function.")
|
||||||
("r-dbplyr" ,r-dbplyr)
|
("r-dbplyr" ,r-dbplyr)
|
||||||
("python-numpy" ,python-numpy)))
|
("python-numpy" ,python-numpy)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("zlib" ,zlib)))
|
`(("zlib" ,zlib)
|
||||||
|
("python-pytest" ,python-pytest)))
|
||||||
(home-page "https://rpy2.bitbucket.io/")
|
(home-page "https://rpy2.bitbucket.io/")
|
||||||
(synopsis "Python interface to the R language")
|
(synopsis "Python interface to the R language")
|
||||||
(description "rpy2 is a redesign and rewrite of rpy. It is providing a
|
(description "rpy2 is a redesign and rewrite of rpy. It is providing a
|
||||||
|
@ -5820,7 +5835,7 @@ functions.")
|
||||||
;; Any of these licenses can be picked for the R interface. The whole
|
;; Any of these licenses can be picked for the R interface. The whole
|
||||||
;; project is released under GPLv2+ according to the license declaration
|
;; project is released under GPLv2+ according to the license declaration
|
||||||
;; in "setup.py".
|
;; in "setup.py".
|
||||||
(license (list license:mpl2.0 license:gpl2+ license:lgpl2.1+))))
|
(license (list license:mpl2.0 license:gpl2+ license:lgpl2.1+)))))
|
||||||
|
|
||||||
(define-public java-jdistlib
|
(define-public java-jdistlib
|
||||||
(package
|
(package
|
||||||
|
|
|
@ -503,13 +503,13 @@ netcat implementation that supports TLS.")
|
||||||
(package
|
(package
|
||||||
(name "python-acme")
|
(name "python-acme")
|
||||||
;; Remember to update the hash of certbot when updating python-acme.
|
;; Remember to update the hash of certbot when updating python-acme.
|
||||||
(version "0.34.2")
|
(version "0.35.1")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (pypi-uri "acme" version))
|
(uri (pypi-uri "acme" version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0anwc102fmlva6x2k1bxrgdb7mi1jy9wgrqjzvk2nam8pky0snxx"))))
|
"08y4ankn0di34c9d1c3pqd9by9n0ckzz7b5ld1g0fx6c32sbi259"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
@ -560,7 +560,7 @@ netcat implementation that supports TLS.")
|
||||||
(uri (pypi-uri name version))
|
(uri (pypi-uri name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1fy91rnq4wwblp5gi2qb2c3xk6j2w1maf5f52228pk8cn7f2swrh"))))
|
"0q0855qvsvs4mgglss5iim7f1p22rv4rn1n6j731vv869v0yrs6p"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(,@(substitute-keyword-arguments (package-arguments python-acme)
|
`(,@(substitute-keyword-arguments (package-arguments python-acme)
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
|
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
|
||||||
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
|
||||||
;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
|
;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
|
||||||
|
;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -21,13 +22,22 @@
|
||||||
|
|
||||||
(define-module (gnu packages upnp)
|
(define-module (gnu packages upnp)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
|
#:use-module (gnu packages gettext)
|
||||||
|
#:use-module (gnu packages autotools)
|
||||||
|
#:use-module (gnu packages video)
|
||||||
|
#:use-module (gnu packages photo)
|
||||||
|
#:use-module (gnu packages image)
|
||||||
|
#:use-module (gnu packages mp3)
|
||||||
|
#:use-module (gnu packages xiph)
|
||||||
|
#:use-module (gnu packages sqlite)
|
||||||
#:use-module (gnu packages python)
|
#:use-module (gnu packages python)
|
||||||
#:use-module (guix build-system gnu)
|
#:use-module (guix build-system gnu)
|
||||||
#:use-module (guix utils)
|
#:use-module (guix utils)
|
||||||
#:use-module (guix download)
|
#:use-module (guix download)
|
||||||
#:use-module (guix git-download)
|
#:use-module (guix git-download)
|
||||||
#:use-module (guix licenses)
|
#:use-module (guix licenses)
|
||||||
#:use-module (guix packages))
|
#:use-module (guix packages)
|
||||||
|
#:use-module (ice-9 match))
|
||||||
|
|
||||||
(define-public miniupnpc
|
(define-public miniupnpc
|
||||||
(package
|
(package
|
||||||
|
@ -150,3 +160,42 @@ compliant with Version 1.0 of the Universal Plug and Play Device Architecture
|
||||||
Specification and support several operating systems like Linux, *BSD, Solaris
|
Specification and support several operating systems like Linux, *BSD, Solaris
|
||||||
and others.")
|
and others.")
|
||||||
(license bsd-3)))
|
(license bsd-3)))
|
||||||
|
|
||||||
|
(define-public readymedia
|
||||||
|
(package
|
||||||
|
(name "readymedia")
|
||||||
|
(version "1.2.1")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://git.code.sf.net/p/minidlna/git")
|
||||||
|
(commit (string-append
|
||||||
|
"v"
|
||||||
|
(string-map (match-lambda
|
||||||
|
(#\. #\_)
|
||||||
|
(chr chr))
|
||||||
|
version)))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32
|
||||||
|
"160915yv38k0p5zmyncs12kkbbcd8m8fk9jq70fkfd5x6dz40xm4"))))
|
||||||
|
(build-system gnu-build-system)
|
||||||
|
(native-inputs
|
||||||
|
`(("automake" ,automake)
|
||||||
|
("autoconf" ,autoconf)
|
||||||
|
("gettext" ,gettext-minimal)))
|
||||||
|
(inputs
|
||||||
|
`(("libexif" ,libexif)
|
||||||
|
("libjpeg" ,libjpeg)
|
||||||
|
("libid3tag" ,libid3tag)
|
||||||
|
("flac" ,flac)
|
||||||
|
("libvorbis" ,libvorbis)
|
||||||
|
("sqlite" ,sqlite)
|
||||||
|
("ffmpeg" ,ffmpeg)))
|
||||||
|
(home-page "https://sourceforge.net/projects/minidlna/")
|
||||||
|
(synopsis "DLNA/UPnP-AV media server")
|
||||||
|
(description "ReadyMedia (formerly known as MiniDLNA) is a simple media
|
||||||
|
server, which serves multimedia content to compatible clients on the network.
|
||||||
|
It aims to be fully compliant with DLNA and UPnP-AV standards.")
|
||||||
|
(license gpl2)))
|
||||||
|
|
|
@ -1223,14 +1223,14 @@ control to Git repositories.")
|
||||||
(define-public mercurial
|
(define-public mercurial
|
||||||
(package
|
(package
|
||||||
(name "mercurial")
|
(name "mercurial")
|
||||||
(version "5.0.1")
|
(version "5.0.2")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://www.mercurial-scm.org/"
|
(uri (string-append "https://www.mercurial-scm.org/"
|
||||||
"release/mercurial-" version ".tar.gz"))
|
"release/mercurial-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1kk27radafw2q18khg9mk52vny3bmki5wf7pbsmgx5amrpjai62c"))))
|
"1y60hfc8gh4ha9sw650qs7hndqmvbn0qxpmqwpn4q18z5xwm1f19"))))
|
||||||
(build-system python-build-system)
|
(build-system python-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(;; Restrict to Python 2, as Python 3 would require
|
`(;; Restrict to Python 2, as Python 3 would require
|
||||||
|
|
|
@ -1236,7 +1236,7 @@ modules for building a Wayland compositor.")
|
||||||
(define-public swayidle
|
(define-public swayidle
|
||||||
(package
|
(package
|
||||||
(name "swayidle")
|
(name "swayidle")
|
||||||
(version "1.3")
|
(version "1.5")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method git-fetch)
|
(method git-fetch)
|
||||||
|
@ -1245,7 +1245,7 @@ modules for building a Wayland compositor.")
|
||||||
(commit version)))
|
(commit version)))
|
||||||
(file-name (git-file-name name version))
|
(file-name (git-file-name name version))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "04agcbhc473jkk7npb40i94ny8naykxzpjcw2lvl05kxv65y5d9v"))))
|
(base32 "05qi96j58xqxjiighay1d39rfanxcpn6vlynj23mb5dymxvlaq9n"))))
|
||||||
(build-system meson-build-system)
|
(build-system meson-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags '("-Dlogind-provider=elogind")))
|
`(#:configure-flags '("-Dlogind-provider=elogind")))
|
||||||
|
|
|
@ -1989,17 +1989,14 @@ server.")
|
||||||
(define-public xauth
|
(define-public xauth
|
||||||
(package
|
(package
|
||||||
(name "xauth")
|
(name "xauth")
|
||||||
(version "1.0.10")
|
(version "1.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append "mirror://xorg/individual/app/xauth-" version
|
||||||
"mirror://xorg/individual/app/xauth-"
|
|
||||||
version
|
|
||||||
".tar.bz2"))
|
".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32 "032klzzw8r09z36x1272ssd79bcisz8j5p8gbdy111fiknvx27bd"))))
|
||||||
"0kgwz9rmxjfdvi2syf8g0ms5rr5cgyqx4n0n1m960kyz7k745zjs"))))
|
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(inputs
|
(inputs
|
||||||
`(("libxmu" ,libxmu)
|
`(("libxmu" ,libxmu)
|
||||||
|
@ -6186,13 +6183,14 @@ and embedded platforms.")
|
||||||
(inherit uim)
|
(inherit uim)
|
||||||
(name "uim-qt")
|
(name "uim-qt")
|
||||||
(inputs
|
(inputs
|
||||||
`(("qt" ,qt-4)
|
`(("qt" ,qtbase)
|
||||||
|
("qtx11extras" ,qtx11extras)
|
||||||
,@(package-inputs uim)))
|
,@(package-inputs uim)))
|
||||||
(arguments
|
(arguments
|
||||||
(substitute-keyword-arguments (package-arguments uim)
|
(substitute-keyword-arguments (package-arguments uim)
|
||||||
((#:configure-flags configure-flags)
|
((#:configure-flags configure-flags)
|
||||||
(append configure-flags (list "--with-qt4-immodule"
|
(append configure-flags (list "--with-qt5-immodule"
|
||||||
"--with-qt4")))))
|
"--with-qt5")))))
|
||||||
(synopsis "Multilingual input method framework (Qt support)")))
|
(synopsis "Multilingual input method framework (Qt support)")))
|
||||||
|
|
||||||
(define-public keynav
|
(define-public keynav
|
||||||
|
|
|
@ -51,11 +51,9 @@
|
||||||
(("\\$\\(LDFLAGS\\)")
|
(("\\$\\(LDFLAGS\\)")
|
||||||
"$(LDFLAGS) -Wl,-rpath=$(PREFIX)/lib"))
|
"$(LDFLAGS) -Wl,-rpath=$(PREFIX)/lib"))
|
||||||
|
|
||||||
;; Delete the bundled TinyXML.
|
;; XXX: There's a bundled TinyXML under cpp/tinyxml. Keep
|
||||||
(delete-file-recursively "cpp/tinyxml")
|
;; it because using our own TinyXML leads to double-free
|
||||||
(substitute* "cpp/build/Makefile"
|
;; down the road.
|
||||||
(("LIBS \\+= -ludev")
|
|
||||||
"LIBS += -ludev -ltinyxml "))
|
|
||||||
|
|
||||||
;; Delete the bundled HIDAPI.
|
;; Delete the bundled HIDAPI.
|
||||||
(delete-file-recursively "cpp/hidapi")
|
(delete-file-recursively "cpp/hidapi")
|
||||||
|
@ -80,8 +78,7 @@
|
||||||
("pkg-config" ,pkg-config)
|
("pkg-config" ,pkg-config)
|
||||||
("perl" ,perl) ;for tests
|
("perl" ,perl) ;for tests
|
||||||
("perl-xml-simple" ,perl-xml-simple)))
|
("perl-xml-simple" ,perl-xml-simple)))
|
||||||
(inputs `(("tinyxml" ,tinyxml)
|
(inputs `(("hidapi" ,hidapi)
|
||||||
("hidapi" ,hidapi)
|
|
||||||
("eudev" ,eudev)))
|
("eudev" ,eudev)))
|
||||||
(home-page "http://www.openzwave.net/")
|
(home-page "http://www.openzwave.net/")
|
||||||
(synopsis "Access Z-Wave devices from C++ programs")
|
(synopsis "Access Z-Wave devices from C++ programs")
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
|
;;; Copyright © 2018 Chris Marusich <cmmarusich@gmail.com>
|
||||||
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
|
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
|
||||||
;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
|
;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
|
||||||
|
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -937,29 +938,35 @@ and @command{wicd-curses} user interfaces."
|
||||||
"--no-daemon")
|
"--no-daemon")
|
||||||
#:environment-variables
|
#:environment-variables
|
||||||
(list (string-append "NM_VPN_PLUGIN_DIR=" #$vpn
|
(list (string-append "NM_VPN_PLUGIN_DIR=" #$vpn
|
||||||
"/lib/NetworkManager/VPN"))))
|
"/lib/NetworkManager/VPN")
|
||||||
|
;; Override non-existent default users
|
||||||
|
"NM_OPENVPN_USER="
|
||||||
|
"NM_OPENVPN_GROUP=")))
|
||||||
(stop #~(make-kill-destructor))))))))
|
(stop #~(make-kill-destructor))))))))
|
||||||
|
|
||||||
(define network-manager-service-type
|
(define network-manager-service-type
|
||||||
(let
|
(let
|
||||||
((config->package
|
((config->packages
|
||||||
(match-lambda
|
(match-lambda
|
||||||
(($ <network-manager-configuration> network-manager)
|
(($ <network-manager-configuration> network-manager _ vpn-plugins)
|
||||||
(list network-manager)))))
|
`(,network-manager ,@vpn-plugins)))))
|
||||||
|
|
||||||
(service-type
|
(service-type
|
||||||
(name 'network-manager)
|
(name 'network-manager)
|
||||||
(extensions
|
(extensions
|
||||||
(list (service-extension shepherd-root-service-type
|
(list (service-extension shepherd-root-service-type
|
||||||
network-manager-shepherd-service)
|
network-manager-shepherd-service)
|
||||||
(service-extension dbus-root-service-type config->package)
|
(service-extension dbus-root-service-type config->packages)
|
||||||
(service-extension polkit-service-type config->package)
|
(service-extension polkit-service-type
|
||||||
|
(compose
|
||||||
|
list
|
||||||
|
network-manager-configuration-network-manager))
|
||||||
(service-extension activation-service-type
|
(service-extension activation-service-type
|
||||||
network-manager-activation)
|
network-manager-activation)
|
||||||
(service-extension session-environment-service-type
|
(service-extension session-environment-service-type
|
||||||
network-manager-environment)
|
network-manager-environment)
|
||||||
;; Add network-manager to the system profile.
|
;; Add network-manager to the system profile.
|
||||||
(service-extension profile-service-type config->package)))
|
(service-extension profile-service-type config->packages)))
|
||||||
(default-value (network-manager-configuration))
|
(default-value (network-manager-configuration))
|
||||||
(description
|
(description
|
||||||
"Run @uref{https://wiki.gnome.org/Projects/NetworkManager,
|
"Run @uref{https://wiki.gnome.org/Projects/NetworkManager,
|
||||||
|
|
|
@ -61,7 +61,7 @@ to NAME and VERSION."
|
||||||
(define %cargo-build-system-modules
|
(define %cargo-build-system-modules
|
||||||
;; Build-side modules imported by default.
|
;; Build-side modules imported by default.
|
||||||
`((guix build cargo-build-system)
|
`((guix build cargo-build-system)
|
||||||
(json parser)
|
(guix build json)
|
||||||
,@%cargo-utils-modules))
|
,@%cargo-utils-modules))
|
||||||
|
|
||||||
(define* (cargo-build store name inputs
|
(define* (cargo-build store name inputs
|
||||||
|
|
|
@ -0,0 +1,135 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.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 build-system node)
|
||||||
|
#:use-module (guix store)
|
||||||
|
#:use-module (guix build json)
|
||||||
|
#:use-module (guix build union)
|
||||||
|
#:use-module (guix utils)
|
||||||
|
#:use-module (guix packages)
|
||||||
|
#:use-module (guix derivations)
|
||||||
|
#:use-module (guix search-paths)
|
||||||
|
#:use-module (guix build-system)
|
||||||
|
#:use-module (guix build-system gnu)
|
||||||
|
#:use-module (ice-9 match)
|
||||||
|
#:export (npm-meta-uri
|
||||||
|
%node-build-system-modules
|
||||||
|
node-build
|
||||||
|
node-build-system))
|
||||||
|
|
||||||
|
(define (npm-meta-uri name)
|
||||||
|
"Return a URI string for the metadata of node module NAME found in the npm
|
||||||
|
registry."
|
||||||
|
(string-append "https://registry.npmjs.org/" name))
|
||||||
|
|
||||||
|
(define %node-build-system-modules
|
||||||
|
;; Build-side modules imported by default.
|
||||||
|
`((guix build node-build-system)
|
||||||
|
(guix build json)
|
||||||
|
(guix build union)
|
||||||
|
,@%gnu-build-system-modules)) ;; TODO: Might be not needed
|
||||||
|
|
||||||
|
(define (default-node)
|
||||||
|
"Return the default Node package."
|
||||||
|
;; Lazily resolve the binding to avoid a circular dependency.
|
||||||
|
(let ((node (resolve-interface '(gnu packages node))))
|
||||||
|
(module-ref node 'node)))
|
||||||
|
|
||||||
|
(define* (lower name
|
||||||
|
#:key source inputs native-inputs outputs system target
|
||||||
|
(node (default-node))
|
||||||
|
#:allow-other-keys
|
||||||
|
#:rest arguments)
|
||||||
|
"Return a bag for NAME."
|
||||||
|
(define private-keywords
|
||||||
|
'(#:source #:target #:node #:inputs #:native-inputs))
|
||||||
|
|
||||||
|
(and (not target) ;XXX: no cross-compilation
|
||||||
|
(bag
|
||||||
|
(name name)
|
||||||
|
(system system)
|
||||||
|
(host-inputs `(,@(if source
|
||||||
|
`(("source" ,source))
|
||||||
|
'())
|
||||||
|
,@inputs
|
||||||
|
|
||||||
|
;; Keep the standard inputs of 'gnu-build-system'.
|
||||||
|
,@(standard-packages)))
|
||||||
|
(build-inputs `(("node" ,node)
|
||||||
|
,@native-inputs))
|
||||||
|
(outputs outputs)
|
||||||
|
(build node-build)
|
||||||
|
(arguments (strip-keyword-arguments private-keywords arguments)))))
|
||||||
|
|
||||||
|
(define* (node-build store name inputs
|
||||||
|
#:key
|
||||||
|
(npm-flags ''())
|
||||||
|
(tests? #t)
|
||||||
|
(phases '(@ (guix build node-build-system)
|
||||||
|
%standard-phases))
|
||||||
|
(outputs '("out"))
|
||||||
|
(search-paths '())
|
||||||
|
(system (%current-system))
|
||||||
|
(guile #f)
|
||||||
|
(imported-modules %node-build-system-modules)
|
||||||
|
(modules '((guix build node-build-system)
|
||||||
|
(guix build json)
|
||||||
|
(guix build union)
|
||||||
|
(guix build utils))))
|
||||||
|
"Build SOURCE using NODE and INPUTS."
|
||||||
|
(define builder
|
||||||
|
`(begin
|
||||||
|
(use-modules ,@modules)
|
||||||
|
(node-build #:name ,name
|
||||||
|
#:source ,(match (assoc-ref inputs "source")
|
||||||
|
(((? derivation? source))
|
||||||
|
(derivation->output-path source))
|
||||||
|
((source)
|
||||||
|
source)
|
||||||
|
(source
|
||||||
|
source))
|
||||||
|
#:system ,system
|
||||||
|
#:npm-flags ,npm-flags
|
||||||
|
#:tests? ,tests?
|
||||||
|
#:phases ,phases
|
||||||
|
#:outputs %outputs
|
||||||
|
#:search-paths ',(map search-path-specification->sexp
|
||||||
|
search-paths)
|
||||||
|
#:inputs %build-inputs)))
|
||||||
|
|
||||||
|
(define guile-for-build
|
||||||
|
(match guile
|
||||||
|
((? package?)
|
||||||
|
(package-derivation store guile system #:graft? #f))
|
||||||
|
(#f
|
||||||
|
(let* ((distro (resolve-interface '(gnu packages commencement)))
|
||||||
|
(guile (module-ref distro 'guile-final)))
|
||||||
|
(package-derivation store guile system #:graft? #f)))))
|
||||||
|
|
||||||
|
(build-expression->derivation store name builder
|
||||||
|
#:inputs inputs
|
||||||
|
#:system system
|
||||||
|
#:modules imported-modules
|
||||||
|
#:outputs outputs
|
||||||
|
#:guile-for-build guile-for-build))
|
||||||
|
|
||||||
|
(define node-build-system
|
||||||
|
(build-system
|
||||||
|
(name 'node)
|
||||||
|
(description "The standard Node build system")
|
||||||
|
(lower lower)))
|
|
@ -20,6 +20,7 @@
|
||||||
|
|
||||||
(define-module (guix build cargo-build-system)
|
(define-module (guix build cargo-build-system)
|
||||||
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
|
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
|
||||||
|
#:use-module (guix build json)
|
||||||
#:use-module (guix build utils)
|
#:use-module (guix build utils)
|
||||||
#:use-module (guix build cargo-utils)
|
#:use-module (guix build cargo-utils)
|
||||||
#:use-module (ice-9 popen)
|
#:use-module (ice-9 popen)
|
||||||
|
@ -27,7 +28,6 @@
|
||||||
#:use-module (ice-9 ftw)
|
#:use-module (ice-9 ftw)
|
||||||
#:use-module (ice-9 format)
|
#:use-module (ice-9 format)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (json parser)
|
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (srfi srfi-26)
|
||||||
#:export (%standard-phases
|
#:export (%standard-phases
|
||||||
|
@ -42,15 +42,15 @@
|
||||||
(define (manifest-targets)
|
(define (manifest-targets)
|
||||||
"Extract all targets from the Cargo.toml manifest"
|
"Extract all targets from the Cargo.toml manifest"
|
||||||
(let* ((port (open-input-pipe "cargo read-manifest"))
|
(let* ((port (open-input-pipe "cargo read-manifest"))
|
||||||
(data (json->scm port))
|
(data (read-json port))
|
||||||
(targets (hash-ref data "targets" '())))
|
(targets (or (assoc-ref data "targets") '())))
|
||||||
(close-port port)
|
(close-port port)
|
||||||
targets))
|
targets))
|
||||||
|
|
||||||
(define (has-executable-target?)
|
(define (has-executable-target?)
|
||||||
"Check if the current cargo project declares any binary targets."
|
"Check if the current cargo project declares any binary targets."
|
||||||
(let* ((bin? (lambda (kind) (string=? kind "bin")))
|
(let* ((bin? (lambda (kind) (string=? kind "bin")))
|
||||||
(get-kinds (lambda (dep) (hash-ref dep "kind")))
|
(get-kinds (lambda (dep) (assoc-ref dep "kind")))
|
||||||
(bin-dep? (lambda (dep) (find bin? (get-kinds dep)))))
|
(bin-dep? (lambda (dep) (find bin? (get-kinds dep)))))
|
||||||
(find bin-dep? (manifest-targets))))
|
(find bin-dep? (manifest-targets))))
|
||||||
|
|
||||||
|
@ -99,6 +99,7 @@ Cargo.toml file present at its root."
|
||||||
inputs)
|
inputs)
|
||||||
|
|
||||||
;; Configure cargo to actually use this new directory.
|
;; Configure cargo to actually use this new directory.
|
||||||
|
(setenv "CARGO_HOME" (string-append (getcwd) "/.cargo"))
|
||||||
(mkdir-p ".cargo")
|
(mkdir-p ".cargo")
|
||||||
(let ((port (open-file ".cargo/config" "w" #:encoding "utf-8")))
|
(let ((port (open-file ".cargo/config" "w" #:encoding "utf-8")))
|
||||||
(display "
|
(display "
|
||||||
|
@ -148,9 +149,6 @@ directory = '" port)
|
||||||
;; Make cargo reuse all the artifacts we just built instead
|
;; Make cargo reuse all the artifacts we just built instead
|
||||||
;; of defaulting to making a new temp directory
|
;; of defaulting to making a new temp directory
|
||||||
(setenv "CARGO_TARGET_DIR" "./target")
|
(setenv "CARGO_TARGET_DIR" "./target")
|
||||||
;; Force cargo to honor our .cargo/config definitions
|
|
||||||
;; https://github.com/rust-lang/cargo/issues/6397
|
|
||||||
(setenv "CARGO_HOME" ".")
|
|
||||||
|
|
||||||
;; Only install crates which include binary targets,
|
;; Only install crates which include binary targets,
|
||||||
;; otherwise cargo will raise an error.
|
;; otherwise cargo will raise an error.
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
(define-module (guix build compile)
|
(define-module (guix build compile)
|
||||||
|
#:use-module (srfi srfi-1)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:use-module (ice-9 format)
|
#:use-module (ice-9 format)
|
||||||
#:use-module (ice-9 threads)
|
#:use-module (ice-9 threads)
|
||||||
|
@ -58,13 +59,23 @@
|
||||||
((kw _ rest ...)
|
((kw _ rest ...)
|
||||||
(loop rest `(#f ,kw ,@result))))))
|
(loop rest `(#f ,kw ,@result))))))
|
||||||
|
|
||||||
|
(define (supported-warning-type? type)
|
||||||
|
"Return true if TYPE, a symbol, denotes a supported warning type."
|
||||||
|
(find (lambda (warning-type)
|
||||||
|
(eq? type (warning-type-name warning-type)))
|
||||||
|
%warning-types))
|
||||||
|
|
||||||
(define %warnings
|
(define %warnings
|
||||||
;; FIXME: 'format' is missing because it reports "non-literal format
|
;; FIXME: 'format' is missing because it reports "non-literal format
|
||||||
;; strings" due to the fact that we use 'G_' instead of '_'. We'll need
|
;; strings" due to the fact that we use 'G_' instead of '_'. We'll need
|
||||||
;; help from Guile to solve this.
|
;; help from Guile to solve this.
|
||||||
'(unsupported-warning unbound-variable arity-mismatch
|
(let ((optional (lambda (type)
|
||||||
|
(if (supported-warning-type? type)
|
||||||
|
(list type)
|
||||||
|
'()))))
|
||||||
|
`(unbound-variable arity-mismatch
|
||||||
macro-use-before-definition ;new in 2.2
|
macro-use-before-definition ;new in 2.2
|
||||||
shadowed-toplevel)) ;new in 2.2.5
|
,@(optional 'shadowed-toplevel)))) ;new in 2.2.5
|
||||||
|
|
||||||
(define (optimization-options file)
|
(define (optimization-options file)
|
||||||
"Return the default set of optimizations options for FILE."
|
"Return the default set of optimizations options for FILE."
|
||||||
|
@ -118,8 +129,9 @@ front."
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(set! path initial-value)))))
|
(set! path initial-value)))))
|
||||||
|
|
||||||
(define (call/exit-on-exception thunk)
|
(define (call/exit-on-exception file thunk)
|
||||||
"Evaluate THUNK and exit right away if an exception is thrown."
|
"Evaluate THUNK and exit right away if an exception is thrown. Report FILE
|
||||||
|
as the file that was being compiled when the exception was thrown."
|
||||||
(catch #t
|
(catch #t
|
||||||
thunk
|
thunk
|
||||||
(const #f)
|
(const #f)
|
||||||
|
@ -130,15 +142,18 @@ front."
|
||||||
(stack (make-stack #t))
|
(stack (make-stack #t))
|
||||||
(depth (stack-length stack))
|
(depth (stack-length stack))
|
||||||
(frame (and (> depth 1) (stack-ref stack 1))))
|
(frame (and (> depth 1) (stack-ref stack 1))))
|
||||||
|
(newline port)
|
||||||
|
(format port "error: failed to compile '~a':~%~%" file)
|
||||||
(false-if-exception (display-backtrace stack port))
|
(false-if-exception (display-backtrace stack port))
|
||||||
(print-exception port frame key args)))
|
(print-exception port frame key args)))
|
||||||
|
|
||||||
;; Don't go any further.
|
;; Don't go any further.
|
||||||
(primitive-exit 1))))
|
(primitive-exit 1))))
|
||||||
|
|
||||||
(define-syntax-rule (exit-on-exception exp ...)
|
(define-syntax-rule (exit-on-exception file exp ...)
|
||||||
"Evaluate EXP and exit if an exception is thrown."
|
"Evaluate EXP and exit if an exception is thrown. Report FILE as the faulty
|
||||||
(call/exit-on-exception (lambda () exp ...)))
|
file when an exception is thrown."
|
||||||
|
(call/exit-on-exception file (lambda () exp ...)))
|
||||||
|
|
||||||
(define* (compile-files source-directory build-directory files
|
(define* (compile-files source-directory build-directory files
|
||||||
#:key
|
#:key
|
||||||
|
@ -162,6 +177,7 @@ files are for HOST, a GNU triplet such as \"x86_64-linux-gnu\"."
|
||||||
|
|
||||||
;; Exit as soon as something goes wrong.
|
;; Exit as soon as something goes wrong.
|
||||||
(exit-on-exception
|
(exit-on-exception
|
||||||
|
file
|
||||||
(with-target host
|
(with-target host
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(let ((relative (relative-file source-directory file)))
|
(let ((relative (relative-file source-directory file)))
|
||||||
|
|
|
@ -0,0 +1,387 @@
|
||||||
|
;;;; json.scm --- JSON reader/writer
|
||||||
|
;;;; Copyright (C) 2015 Free Software Foundation, Inc.
|
||||||
|
;;;;
|
||||||
|
;;;; This library is free software; you can redistribute it and/or
|
||||||
|
;;;; modify it under the terms of the GNU Lesser General Public
|
||||||
|
;;;; License as published by the Free Software Foundation; either
|
||||||
|
;;;; version 3 of the License, or (at your option) any later version.
|
||||||
|
;;;;
|
||||||
|
;;;; This library 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
|
||||||
|
;;;; Lesser General Public License for more details.
|
||||||
|
;;;;
|
||||||
|
;;;; You should have received a copy of the GNU Lesser General Public
|
||||||
|
;;;; License along with this library; if not, write to the Free Software
|
||||||
|
;;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
;;;;
|
||||||
|
|
||||||
|
(define-module (guix build json) ;; originally (ice-9 json)
|
||||||
|
#:use-module (ice-9 match)
|
||||||
|
#:export (read-json write-json))
|
||||||
|
|
||||||
|
;; Snarfed from
|
||||||
|
;; https://github.com/cwebber/activitystuff/blob/master/activitystuff/contrib/json.scm
|
||||||
|
;;
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Reader
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define (json-error port)
|
||||||
|
(throw 'json-error port))
|
||||||
|
|
||||||
|
(define (assert-char port char)
|
||||||
|
"Read a character from PORT and throw an invalid JSON error if the
|
||||||
|
character is not CHAR."
|
||||||
|
(unless (eqv? (read-char port) char)
|
||||||
|
(json-error port)))
|
||||||
|
|
||||||
|
(define (whitespace? char)
|
||||||
|
"Return #t if CHAR is a whitespace character."
|
||||||
|
(char-set-contains? char-set:whitespace char))
|
||||||
|
|
||||||
|
(define (consume-whitespace port)
|
||||||
|
"Discard characters from PORT until a non-whitespace character is
|
||||||
|
encountered.."
|
||||||
|
(match (peek-char port)
|
||||||
|
((? eof-object?) *unspecified*)
|
||||||
|
((? whitespace?)
|
||||||
|
(read-char port)
|
||||||
|
(consume-whitespace port))
|
||||||
|
(_ *unspecified*)))
|
||||||
|
|
||||||
|
(define (make-keyword-reader keyword value)
|
||||||
|
"Parse the keyword symbol KEYWORD as VALUE."
|
||||||
|
(let ((str (symbol->string keyword)))
|
||||||
|
(lambda (port)
|
||||||
|
(let loop ((i 0))
|
||||||
|
(cond
|
||||||
|
((= i (string-length str)) value)
|
||||||
|
((eqv? (string-ref str i) (read-char port))
|
||||||
|
(loop (1+ i)))
|
||||||
|
(else (json-error port)))))))
|
||||||
|
|
||||||
|
(define read-true (make-keyword-reader 'true #t))
|
||||||
|
(define read-false (make-keyword-reader 'false #f))
|
||||||
|
(define read-null (make-keyword-reader 'null #nil))
|
||||||
|
|
||||||
|
(define (read-hex-digit port)
|
||||||
|
"Read a hexadecimal digit from PORT."
|
||||||
|
(match (read-char port)
|
||||||
|
(#\0 0)
|
||||||
|
(#\1 1)
|
||||||
|
(#\2 2)
|
||||||
|
(#\3 3)
|
||||||
|
(#\4 4)
|
||||||
|
(#\5 5)
|
||||||
|
(#\6 6)
|
||||||
|
(#\7 7)
|
||||||
|
(#\8 8)
|
||||||
|
(#\9 9)
|
||||||
|
((or #\A #\a) 10)
|
||||||
|
((or #\B #\b) 11)
|
||||||
|
((or #\C #\c) 12)
|
||||||
|
((or #\D #\d) 13)
|
||||||
|
((or #\E #\e) 14)
|
||||||
|
((or #\F #\f) 15)
|
||||||
|
(_ (json-error port))))
|
||||||
|
|
||||||
|
(define (read-utf16-character port)
|
||||||
|
"Read a hexadecimal encoded UTF-16 character from PORT."
|
||||||
|
(integer->char
|
||||||
|
(+ (* (read-hex-digit port) (expt 16 3))
|
||||||
|
(* (read-hex-digit port) (expt 16 2))
|
||||||
|
(* (read-hex-digit port) 16)
|
||||||
|
(read-hex-digit port))))
|
||||||
|
|
||||||
|
(define (read-escape-character port)
|
||||||
|
"Read escape character from PORT."
|
||||||
|
(match (read-char port)
|
||||||
|
(#\" #\")
|
||||||
|
(#\\ #\\)
|
||||||
|
(#\/ #\/)
|
||||||
|
(#\b #\backspace)
|
||||||
|
(#\f #\page)
|
||||||
|
(#\n #\newline)
|
||||||
|
(#\r #\return)
|
||||||
|
(#\t #\tab)
|
||||||
|
(#\u (read-utf16-character port))
|
||||||
|
(_ (json-error port))))
|
||||||
|
|
||||||
|
(define (read-string port)
|
||||||
|
"Read a JSON encoded string from PORT."
|
||||||
|
(assert-char port #\")
|
||||||
|
(let loop ((result '()))
|
||||||
|
(match (read-char port)
|
||||||
|
((? eof-object?) (json-error port))
|
||||||
|
(#\" (list->string (reverse result)))
|
||||||
|
(#\\ (loop (cons (read-escape-character port) result)))
|
||||||
|
(char (loop (cons char result))))))
|
||||||
|
|
||||||
|
(define char-set:json-digit
|
||||||
|
(char-set #\0 #\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9))
|
||||||
|
|
||||||
|
(define (digit? char)
|
||||||
|
(char-set-contains? char-set:json-digit char))
|
||||||
|
|
||||||
|
(define (read-digit port)
|
||||||
|
"Read a digit 0-9 from PORT."
|
||||||
|
(match (read-char port)
|
||||||
|
(#\0 0)
|
||||||
|
(#\1 1)
|
||||||
|
(#\2 2)
|
||||||
|
(#\3 3)
|
||||||
|
(#\4 4)
|
||||||
|
(#\5 5)
|
||||||
|
(#\6 6)
|
||||||
|
(#\7 7)
|
||||||
|
(#\8 8)
|
||||||
|
(#\9 9)
|
||||||
|
(else (json-error port))))
|
||||||
|
|
||||||
|
(define (read-digits port)
|
||||||
|
"Read a sequence of digits from PORT."
|
||||||
|
(let loop ((result '()))
|
||||||
|
(match (peek-char port)
|
||||||
|
((? eof-object?)
|
||||||
|
(reverse result))
|
||||||
|
((? digit?)
|
||||||
|
(loop (cons (read-digit port) result)))
|
||||||
|
(else (reverse result)))))
|
||||||
|
|
||||||
|
(define (list->integer digits)
|
||||||
|
"Convert the list DIGITS to an integer."
|
||||||
|
(let loop ((i (1- (length digits)))
|
||||||
|
(result 0)
|
||||||
|
(digits digits))
|
||||||
|
(match digits
|
||||||
|
(() result)
|
||||||
|
((n . tail)
|
||||||
|
(loop (1- i)
|
||||||
|
(+ result (* n (expt 10 i)))
|
||||||
|
tail)))))
|
||||||
|
|
||||||
|
(define (read-positive-integer port)
|
||||||
|
"Read a positive integer with no leading zeroes from PORT."
|
||||||
|
(match (read-digits port)
|
||||||
|
((0 . _)
|
||||||
|
(json-error port)) ; no leading zeroes allowed
|
||||||
|
((digits ...)
|
||||||
|
(list->integer digits))))
|
||||||
|
|
||||||
|
(define (read-exponent port)
|
||||||
|
"Read exponent from PORT."
|
||||||
|
(define (read-expt)
|
||||||
|
(list->integer (read-digits port)))
|
||||||
|
|
||||||
|
(unless (memv (read-char port) '(#\e #\E))
|
||||||
|
(json-error port))
|
||||||
|
|
||||||
|
(match (peek-char port)
|
||||||
|
((? eof-object?)
|
||||||
|
(json-error port))
|
||||||
|
(#\-
|
||||||
|
(read-char port)
|
||||||
|
(- (read-expt)))
|
||||||
|
(#\+
|
||||||
|
(read-char port)
|
||||||
|
(read-expt))
|
||||||
|
((? digit?)
|
||||||
|
(read-expt))
|
||||||
|
(_ (json-error port))))
|
||||||
|
|
||||||
|
(define (read-fraction port)
|
||||||
|
"Read fractional number part from PORT as an inexact number."
|
||||||
|
(let* ((digits (read-digits port))
|
||||||
|
(numerator (list->integer digits))
|
||||||
|
(denomenator (expt 10 (length digits))))
|
||||||
|
(/ numerator denomenator)))
|
||||||
|
|
||||||
|
(define (read-positive-number port)
|
||||||
|
"Read a positive number from PORT."
|
||||||
|
(let* ((integer (match (peek-char port)
|
||||||
|
((? eof-object?)
|
||||||
|
(json-error port))
|
||||||
|
(#\0
|
||||||
|
(read-char port)
|
||||||
|
0)
|
||||||
|
((? digit?)
|
||||||
|
(read-positive-integer port))
|
||||||
|
(_ (json-error port))))
|
||||||
|
(fraction (match (peek-char port)
|
||||||
|
(#\.
|
||||||
|
(read-char port)
|
||||||
|
(read-fraction port))
|
||||||
|
(_ 0)))
|
||||||
|
(exponent (match (peek-char port)
|
||||||
|
((or #\e #\E)
|
||||||
|
(read-exponent port))
|
||||||
|
(_ 0)))
|
||||||
|
(n (* (+ integer fraction) (expt 10 exponent))))
|
||||||
|
|
||||||
|
;; Keep integers as exact numbers, but convert numbers encoded as
|
||||||
|
;; floating point numbers to an inexact representation.
|
||||||
|
(if (zero? fraction)
|
||||||
|
n
|
||||||
|
(exact->inexact n))))
|
||||||
|
|
||||||
|
(define (read-number port)
|
||||||
|
"Read a number from PORT"
|
||||||
|
(match (peek-char port)
|
||||||
|
((? eof-object?)
|
||||||
|
(json-error port))
|
||||||
|
(#\-
|
||||||
|
(read-char port)
|
||||||
|
(- (read-positive-number port)))
|
||||||
|
((? digit?)
|
||||||
|
(read-positive-number port))
|
||||||
|
(_ (json-error port))))
|
||||||
|
|
||||||
|
(define (read-object port)
|
||||||
|
"Read key/value map from PORT."
|
||||||
|
(define (read-key+value-pair)
|
||||||
|
(let ((key (read-string port)))
|
||||||
|
(consume-whitespace port)
|
||||||
|
(assert-char port #\:)
|
||||||
|
(consume-whitespace port)
|
||||||
|
(let ((value (read-value port)))
|
||||||
|
(cons key value))))
|
||||||
|
|
||||||
|
(assert-char port #\{)
|
||||||
|
(consume-whitespace port)
|
||||||
|
|
||||||
|
(if (eqv? #\} (peek-char port))
|
||||||
|
(begin
|
||||||
|
(read-char port)
|
||||||
|
'(@)) ; empty object
|
||||||
|
(let loop ((result (list (read-key+value-pair))))
|
||||||
|
(consume-whitespace port)
|
||||||
|
(match (peek-char port)
|
||||||
|
(#\, ; read another value
|
||||||
|
(read-char port)
|
||||||
|
(consume-whitespace port)
|
||||||
|
(loop (cons (read-key+value-pair) result)))
|
||||||
|
(#\} ; end of object
|
||||||
|
(read-char port)
|
||||||
|
(cons '@ (reverse result)))
|
||||||
|
(_ (json-error port))))))
|
||||||
|
|
||||||
|
(define (read-array port)
|
||||||
|
"Read array from PORT."
|
||||||
|
(assert-char port #\[)
|
||||||
|
(consume-whitespace port)
|
||||||
|
|
||||||
|
(if (eqv? #\] (peek-char port))
|
||||||
|
(begin
|
||||||
|
(read-char port)
|
||||||
|
'()) ; empty array
|
||||||
|
(let loop ((result (list (read-value port))))
|
||||||
|
(consume-whitespace port)
|
||||||
|
(match (peek-char port)
|
||||||
|
(#\, ; read another value
|
||||||
|
(read-char port)
|
||||||
|
(consume-whitespace port)
|
||||||
|
(loop (cons (read-value port) result)))
|
||||||
|
(#\] ; end of array
|
||||||
|
(read-char port)
|
||||||
|
(reverse result))
|
||||||
|
(_ (json-error port))))))
|
||||||
|
|
||||||
|
(define (read-value port)
|
||||||
|
"Read a JSON value from PORT."
|
||||||
|
(consume-whitespace port)
|
||||||
|
(match (peek-char port)
|
||||||
|
((? eof-object?) (json-error port))
|
||||||
|
(#\" (read-string port))
|
||||||
|
(#\{ (read-object port))
|
||||||
|
(#\[ (read-array port))
|
||||||
|
(#\t (read-true port))
|
||||||
|
(#\f (read-false port))
|
||||||
|
(#\n (read-null port))
|
||||||
|
((or #\- (? digit?))
|
||||||
|
(read-number port))
|
||||||
|
(_ (json-error port))))
|
||||||
|
|
||||||
|
(define (read-json port)
|
||||||
|
"Read JSON text from port and return an s-expression representation."
|
||||||
|
(let ((result (read-value port)))
|
||||||
|
(consume-whitespace port)
|
||||||
|
(unless (eof-object? (peek-char port))
|
||||||
|
(json-error port))
|
||||||
|
result))
|
||||||
|
|
||||||
|
|
||||||
|
;;;
|
||||||
|
;;; Writer
|
||||||
|
;;;
|
||||||
|
|
||||||
|
(define (write-string str port)
|
||||||
|
"Write STR to PORT in JSON string format."
|
||||||
|
(define (escape-char char)
|
||||||
|
(display (match char
|
||||||
|
(#\" "\\\"")
|
||||||
|
(#\\ "\\\\")
|
||||||
|
(#\/ "\\/")
|
||||||
|
(#\backspace "\\b")
|
||||||
|
(#\page "\\f")
|
||||||
|
(#\newline "\\n")
|
||||||
|
(#\return "\\r")
|
||||||
|
(#\tab "\\t")
|
||||||
|
(_ char))
|
||||||
|
port))
|
||||||
|
|
||||||
|
(display "\"" port)
|
||||||
|
(string-for-each escape-char str)
|
||||||
|
(display "\"" port))
|
||||||
|
|
||||||
|
(define (write-object alist port)
|
||||||
|
"Write ALIST to PORT in JSON object format."
|
||||||
|
;; Keys may be strings or symbols.
|
||||||
|
(define key->string
|
||||||
|
(match-lambda
|
||||||
|
((? string? key) key)
|
||||||
|
((? symbol? key) (symbol->string key))))
|
||||||
|
|
||||||
|
(define (write-pair pair)
|
||||||
|
(match pair
|
||||||
|
((key . value)
|
||||||
|
(write-string (key->string key) port)
|
||||||
|
(display ":" port)
|
||||||
|
(write-json value port))))
|
||||||
|
|
||||||
|
(display "{" port)
|
||||||
|
(match alist
|
||||||
|
(() #f)
|
||||||
|
((front ... end)
|
||||||
|
(for-each (lambda (pair)
|
||||||
|
(write-pair pair)
|
||||||
|
(display "," port))
|
||||||
|
front)
|
||||||
|
(write-pair end)))
|
||||||
|
(display "}" port))
|
||||||
|
|
||||||
|
(define (write-array lst port)
|
||||||
|
"Write LST to PORT in JSON array format."
|
||||||
|
(display "[" port)
|
||||||
|
(match lst
|
||||||
|
(() #f)
|
||||||
|
((front ... end)
|
||||||
|
(for-each (lambda (val)
|
||||||
|
(write-json val port)
|
||||||
|
(display "," port))
|
||||||
|
front)
|
||||||
|
(write-json end port)))
|
||||||
|
(display "]" port))
|
||||||
|
|
||||||
|
(define (write-json exp port)
|
||||||
|
"Write EXP to PORT in JSON format."
|
||||||
|
(match exp
|
||||||
|
(#t (display "true" port))
|
||||||
|
(#f (display "false" port))
|
||||||
|
;; Differentiate #nil from '().
|
||||||
|
((and (? boolean? ) #nil) (display "null" port))
|
||||||
|
((? string? s) (write-string s port))
|
||||||
|
((? real? n) (display n port))
|
||||||
|
(('@ . alist) (write-object alist port))
|
||||||
|
((vals ...) (write-array vals port))))
|
|
@ -0,0 +1,166 @@
|
||||||
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
|
;;; Copyright © 2015 David Thompson <davet@gnu.org>
|
||||||
|
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.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 build node-build-system)
|
||||||
|
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
|
||||||
|
#:use-module (guix build json)
|
||||||
|
#:use-module (guix build union)
|
||||||
|
#:use-module (guix build utils)
|
||||||
|
#:use-module (ice-9 match)
|
||||||
|
#:use-module (ice-9 popen)
|
||||||
|
#:use-module (ice-9 regex)
|
||||||
|
#:use-module (srfi srfi-1)
|
||||||
|
#:use-module (srfi srfi-26)
|
||||||
|
#:export (%standard-phases
|
||||||
|
node-build))
|
||||||
|
|
||||||
|
;; Commentary:
|
||||||
|
;;
|
||||||
|
;; Builder-side code of the standard Node/npm package build procedure.
|
||||||
|
;;
|
||||||
|
;; Code:
|
||||||
|
|
||||||
|
(define* (read-package-data #:key (filename "package.json"))
|
||||||
|
(call-with-input-file filename
|
||||||
|
(lambda (port)
|
||||||
|
(read-json port))))
|
||||||
|
|
||||||
|
(define* (build #:key inputs #:allow-other-keys)
|
||||||
|
(define (build-from-package-json? package-file)
|
||||||
|
(let* ((package-data (read-package-data #:filename package-file))
|
||||||
|
(scripts (assoc-ref package-data "scripts")))
|
||||||
|
(assoc-ref scripts "build")))
|
||||||
|
"Build a new node module using the appropriate build system."
|
||||||
|
;; XXX: Develop a more robust heuristic, allow override
|
||||||
|
(cond ((file-exists? "gulpfile.js")
|
||||||
|
(invoke "gulp"))
|
||||||
|
((file-exists? "gruntfile.js")
|
||||||
|
(invoke "grunt"))
|
||||||
|
((file-exists? "Makefile")
|
||||||
|
(invoke "make"))
|
||||||
|
((and (file-exists? "package.json")
|
||||||
|
(build-from-package-json? "package.json"))
|
||||||
|
(invoke "npm" "run" "build")))
|
||||||
|
#t)
|
||||||
|
|
||||||
|
(define* (link-npm-dependencies #:key inputs #:allow-other-keys)
|
||||||
|
(define (inputs->node-inputs inputs)
|
||||||
|
"Filter the directory part from INPUTS."
|
||||||
|
(filter (lambda (input)
|
||||||
|
(match input
|
||||||
|
((name . _) (node-package? name))))
|
||||||
|
inputs))
|
||||||
|
(define (inputs->directories inputs)
|
||||||
|
"Extract the directory part from INPUTS."
|
||||||
|
(match inputs
|
||||||
|
(((names . directories) ...)
|
||||||
|
directories)))
|
||||||
|
(define (make-node-path root)
|
||||||
|
(string-append root "/lib/node_modules/"))
|
||||||
|
|
||||||
|
(let ((input-node-directories (inputs->directories
|
||||||
|
(inputs->node-inputs inputs))))
|
||||||
|
(union-build "node_modules"
|
||||||
|
(map make-node-path input-node-directories))
|
||||||
|
#t))
|
||||||
|
|
||||||
|
(define configure link-npm-dependencies)
|
||||||
|
|
||||||
|
(define* (check #:key tests? #:allow-other-keys)
|
||||||
|
"Run 'npm test' if TESTS?"
|
||||||
|
(if tests?
|
||||||
|
;; Should only be enabled once we know that there are tests
|
||||||
|
(invoke "npm" "test"))
|
||||||
|
#t)
|
||||||
|
|
||||||
|
(define (node-package? name)
|
||||||
|
"Check if NAME correspond to the name of an Node package."
|
||||||
|
(string-prefix? "node-" name))
|
||||||
|
|
||||||
|
(define* (install #:key outputs inputs #:allow-other-keys)
|
||||||
|
"Install the node module to the output store item. The module itself is
|
||||||
|
installed in a subdirectory of @file{node_modules} and its runtime dependencies
|
||||||
|
as defined by @file{package.json} are symlinked into a @file{node_modules}
|
||||||
|
subdirectory of the module's directory. Additionally, binaries are installed in
|
||||||
|
the @file{bin} directory."
|
||||||
|
(let* ((out (assoc-ref outputs "out"))
|
||||||
|
(target (string-append out "/lib"))
|
||||||
|
(binaries (string-append out "/bin"))
|
||||||
|
(data (read-package-data))
|
||||||
|
(modulename (assoc-ref data "name"))
|
||||||
|
(binary-configuration (match (assoc-ref data "bin")
|
||||||
|
(('@ configuration ...) configuration)
|
||||||
|
((? string? configuration) configuration)
|
||||||
|
(#f #f)))
|
||||||
|
(dependencies (match (assoc-ref data "dependencies")
|
||||||
|
(('@ deps ...) deps)
|
||||||
|
(#f #f))))
|
||||||
|
(mkdir-p target)
|
||||||
|
(copy-recursively "." (string-append target "/node_modules/" modulename))
|
||||||
|
;; Remove references to dependencies
|
||||||
|
(delete-file-recursively
|
||||||
|
(string-append target "/node_modules/" modulename "/node_modules"))
|
||||||
|
(cond
|
||||||
|
((string? binary-configuration)
|
||||||
|
(begin
|
||||||
|
(mkdir-p binaries)
|
||||||
|
(symlink (string-append target "/node_modules/" modulename "/"
|
||||||
|
binary-configuration)
|
||||||
|
(string-append binaries "/" modulename))))
|
||||||
|
((list? binary-configuration)
|
||||||
|
(for-each
|
||||||
|
(lambda (conf)
|
||||||
|
(match conf
|
||||||
|
((key . value)
|
||||||
|
(begin
|
||||||
|
(mkdir-p (dirname (string-append binaries "/" key)))
|
||||||
|
(symlink (string-append target "/node_modules/" modulename "/"
|
||||||
|
value)
|
||||||
|
(string-append binaries "/" key))))))
|
||||||
|
binary-configuration))
|
||||||
|
(else
|
||||||
|
(symlink (string-append target "/node_modules/" modulename "/bin")
|
||||||
|
binaries)))
|
||||||
|
(when dependencies
|
||||||
|
(mkdir-p
|
||||||
|
(string-append target "/node_modules/" modulename "/node_modules"))
|
||||||
|
(for-each
|
||||||
|
(lambda (dependency)
|
||||||
|
(let ((dependency (car dependency)))
|
||||||
|
(symlink
|
||||||
|
(string-append (assoc-ref inputs (string-append "node-" dependency))
|
||||||
|
"/lib/node_modules/" dependency)
|
||||||
|
(string-append target "/node_modules/" modulename
|
||||||
|
"/node_modules/" dependency))))
|
||||||
|
dependencies))
|
||||||
|
#t))
|
||||||
|
|
||||||
|
|
||||||
|
(define %standard-phases
|
||||||
|
(modify-phases gnu:%standard-phases
|
||||||
|
(replace 'configure configure)
|
||||||
|
(replace 'build build)
|
||||||
|
(replace 'install install)
|
||||||
|
(delete 'check)
|
||||||
|
(add-after 'install 'check check)
|
||||||
|
(delete 'strip)))
|
||||||
|
|
||||||
|
(define* (node-build #:key inputs (phases %standard-phases)
|
||||||
|
#:allow-other-keys #:rest args)
|
||||||
|
(apply gnu:gnu-build #:inputs inputs #:phases phases args))
|
|
@ -48,13 +48,6 @@
|
||||||
MNT_EXPIRE
|
MNT_EXPIRE
|
||||||
UMOUNT_NOFOLLOW
|
UMOUNT_NOFOLLOW
|
||||||
|
|
||||||
AT_FDCWD
|
|
||||||
AT_SYMLINK_NOFOLLOW
|
|
||||||
AT_REMOVEDIR
|
|
||||||
AT_SYMLINK_FOLLOW
|
|
||||||
AT_NO_AUTOMOUNT
|
|
||||||
AT_EMPTY_PATH
|
|
||||||
|
|
||||||
restart-on-EINTR
|
restart-on-EINTR
|
||||||
mount-points
|
mount-points
|
||||||
swapon
|
swapon
|
||||||
|
@ -686,12 +679,12 @@ mounted at FILE."
|
||||||
|
|
||||||
;; Flags for the *at command, notably the 'utime' procedure of libguile.
|
;; Flags for the *at command, notably the 'utime' procedure of libguile.
|
||||||
;; From <fcntl.h>.
|
;; From <fcntl.h>.
|
||||||
(define AT_FDCWD -100)
|
(define-as-needed AT_FDCWD -100)
|
||||||
(define AT_SYMLINK_NOFOLLOW #x100)
|
(define-as-needed AT_SYMLINK_NOFOLLOW #x100)
|
||||||
(define AT_REMOVEDIR #x200)
|
(define-as-needed AT_REMOVEDIR #x200)
|
||||||
(define AT_SYMLINK_FOLLOW #x400)
|
(define-as-needed AT_SYMLINK_FOLLOW #x400)
|
||||||
(define AT_NO_AUTOMOUNT #x800)
|
(define-as-needed AT_NO_AUTOMOUNT #x800)
|
||||||
(define AT_EMPTY_PATH #x1000)
|
(define-as-needed AT_EMPTY_PATH #x1000)
|
||||||
|
|
||||||
(define-syntax BLKRRPART ;<sys/mount.h>
|
(define-syntax BLKRRPART ;<sys/mount.h>
|
||||||
(identifier-syntax #x125F))
|
(identifier-syntax #x125F))
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||||
|
;;; Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -107,9 +108,10 @@
|
||||||
(checkout channel-instance-checkout))
|
(checkout channel-instance-checkout))
|
||||||
|
|
||||||
(define-record-type <channel-metadata>
|
(define-record-type <channel-metadata>
|
||||||
(channel-metadata version dependencies)
|
(channel-metadata version directory dependencies)
|
||||||
channel-metadata?
|
channel-metadata?
|
||||||
(version channel-metadata-version)
|
(version channel-metadata-version)
|
||||||
|
(directory channel-metadata-directory)
|
||||||
(dependencies channel-metadata-dependencies))
|
(dependencies channel-metadata-dependencies))
|
||||||
|
|
||||||
(define (channel-reference channel)
|
(define (channel-reference channel)
|
||||||
|
@ -119,18 +121,18 @@
|
||||||
(#f `(branch . ,(channel-branch channel)))
|
(#f `(branch . ,(channel-branch channel)))
|
||||||
(commit `(commit . ,(channel-commit channel)))))
|
(commit `(commit . ,(channel-commit channel)))))
|
||||||
|
|
||||||
(define (read-channel-metadata instance)
|
(define (read-channel-metadata-from-source source)
|
||||||
"Return a channel-metadata record read from the channel INSTANCE's
|
"Return a channel-metadata record read from channel's SOURCE/.guix-channel
|
||||||
description file, or return #F if the channel instance does not include the
|
description file, or return #F if SOURCE/.guix-channel does not exist."
|
||||||
file."
|
(let ((meta-file (string-append source "/.guix-channel")))
|
||||||
(let* ((source (channel-instance-checkout instance))
|
|
||||||
(meta-file (string-append source "/.guix-channel")))
|
|
||||||
(and (file-exists? meta-file)
|
(and (file-exists? meta-file)
|
||||||
(and-let* ((raw (call-with-input-file meta-file read))
|
(let* ((raw (call-with-input-file meta-file read))
|
||||||
(version (and=> (assoc-ref raw 'version) first))
|
(version (and=> (assoc-ref raw 'version) first))
|
||||||
|
(directory (and=> (assoc-ref raw 'directory) first))
|
||||||
(dependencies (or (assoc-ref raw 'dependencies) '())))
|
(dependencies (or (assoc-ref raw 'dependencies) '())))
|
||||||
(channel-metadata
|
(channel-metadata
|
||||||
version
|
version
|
||||||
|
directory
|
||||||
(map (lambda (item)
|
(map (lambda (item)
|
||||||
(let ((get (lambda* (key #:optional default)
|
(let ((get (lambda* (key #:optional default)
|
||||||
(or (and=> (assoc-ref item key) first) default))))
|
(or (and=> (assoc-ref item key) first) default))))
|
||||||
|
@ -144,12 +146,18 @@ file."
|
||||||
(commit (get 'commit))))))
|
(commit (get 'commit))))))
|
||||||
dependencies))))))
|
dependencies))))))
|
||||||
|
|
||||||
|
(define (read-channel-metadata instance)
|
||||||
|
"Return a channel-metadata record read from the channel INSTANCE's
|
||||||
|
description file, or return #F if the channel instance does not include the
|
||||||
|
file."
|
||||||
|
(read-channel-metadata-from-source (channel-instance-checkout instance)))
|
||||||
|
|
||||||
(define (channel-instance-dependencies instance)
|
(define (channel-instance-dependencies instance)
|
||||||
"Return the list of channels that are declared as dependencies for the given
|
"Return the list of channels that are declared as dependencies for the given
|
||||||
channel INSTANCE."
|
channel INSTANCE."
|
||||||
(match (read-channel-metadata instance)
|
(match (read-channel-metadata instance)
|
||||||
(#f '())
|
(#f '())
|
||||||
(($ <channel-metadata> version dependencies)
|
(($ <channel-metadata> version directory dependencies)
|
||||||
dependencies)))
|
dependencies)))
|
||||||
|
|
||||||
(define* (latest-channel-instances store channels #:optional (previous-channels '()))
|
(define* (latest-channel-instances store channels #:optional (previous-channels '()))
|
||||||
|
@ -230,10 +238,9 @@ of COMMIT at URL. Use NAME as the channel name."
|
||||||
modules in SOURCE and that depend on DEPENDENCIES, a list of lowerable
|
modules in SOURCE and that depend on DEPENDENCIES, a list of lowerable
|
||||||
objects. The assumption is that SOURCE contains package modules to be added
|
objects. The assumption is that SOURCE contains package modules to be added
|
||||||
to '%package-module-path'."
|
to '%package-module-path'."
|
||||||
;; FIXME: We should load, say SOURCE/.guix-channel.scm, which would allow
|
|
||||||
;; channel publishers to specify things such as the sub-directory where .scm
|
(let* ((metadata (read-channel-metadata-from-source source))
|
||||||
;; files live, files to exclude from the channel, preferred substitute URLs,
|
(directory (and=> metadata channel-metadata-directory)))
|
||||||
;; etc.
|
|
||||||
|
|
||||||
(define build
|
(define build
|
||||||
;; This is code that we'll run in CORE, a Guix instance, with its own
|
;; This is code that we'll run in CORE, a Guix instance, with its own
|
||||||
|
@ -253,13 +260,17 @@ to '%package-module-path'."
|
||||||
(string-append #$output "/share/guile/site/"
|
(string-append #$output "/share/guile/site/"
|
||||||
(effective-version)))
|
(effective-version)))
|
||||||
|
|
||||||
(compile-files #$source go
|
(let* ((subdir (if #$directory
|
||||||
(find-files #$source "\\.scm$"))
|
(string-append "/" #$directory)
|
||||||
|
""))
|
||||||
|
(source (string-append #$source subdir)))
|
||||||
|
(compile-files source go (find-files source "\\.scm$"))
|
||||||
(mkdir-p (dirname scm))
|
(mkdir-p (dirname scm))
|
||||||
(symlink #$source scm)
|
(symlink (string-append #$source subdir) scm))
|
||||||
|
|
||||||
scm)))
|
scm)))
|
||||||
|
|
||||||
(gexp->derivation-in-inferior name build core))
|
(gexp->derivation-in-inferior name build core)))
|
||||||
|
|
||||||
(define* (build-from-source name source
|
(define* (build-from-source name source
|
||||||
#:key core verbose? commit
|
#:key core verbose? commit
|
||||||
|
@ -424,8 +435,9 @@ derivation."
|
||||||
;; "old style" (before commit 8a0d9bc8a3f153159d9e239a151c0fa98f1e12d8,
|
;; "old style" (before commit 8a0d9bc8a3f153159d9e239a151c0fa98f1e12d8,
|
||||||
;; dated May 30, 2018) did not depend on "guix-command.drv".
|
;; dated May 30, 2018) did not depend on "guix-command.drv".
|
||||||
(not (find (lambda (input)
|
(not (find (lambda (input)
|
||||||
(string-suffix? "-guix-command.drv"
|
(string=? "guix-command"
|
||||||
(derivation-input-path input)))
|
(derivation-name
|
||||||
|
(derivation-input-derivation input))))
|
||||||
(derivation-inputs drv))))
|
(derivation-inputs drv))))
|
||||||
|
|
||||||
(define (channel-instances->manifest instances)
|
(define (channel-instances->manifest instances)
|
||||||
|
|
|
@ -36,6 +36,8 @@
|
||||||
#:use-module (guix memoization)
|
#:use-module (guix memoization)
|
||||||
#:use-module (guix combinators)
|
#:use-module (guix combinators)
|
||||||
#:use-module (guix deprecation)
|
#:use-module (guix deprecation)
|
||||||
|
#:use-module (guix diagnostics)
|
||||||
|
#:use-module (guix i18n)
|
||||||
#:use-module (guix monads)
|
#:use-module (guix monads)
|
||||||
#:use-module (gcrypt hash)
|
#:use-module (gcrypt hash)
|
||||||
#:use-module (guix base32)
|
#:use-module (guix base32)
|
||||||
|
@ -69,6 +71,7 @@
|
||||||
derivation-input-derivation
|
derivation-input-derivation
|
||||||
derivation-input-sub-derivations
|
derivation-input-sub-derivations
|
||||||
derivation-input-output-paths
|
derivation-input-output-paths
|
||||||
|
derivation-input-output-path
|
||||||
valid-derivation-input?
|
valid-derivation-input?
|
||||||
|
|
||||||
&derivation-error
|
&derivation-error
|
||||||
|
@ -219,6 +222,13 @@ download with a fixed hash (aka. `fetchurl')."
|
||||||
(map (cut derivation->output-path drv <>)
|
(map (cut derivation->output-path drv <>)
|
||||||
sub-drvs))))
|
sub-drvs))))
|
||||||
|
|
||||||
|
(define (derivation-input-output-path input)
|
||||||
|
"Return the output file name of INPUT. If INPUT has more than one outputs,
|
||||||
|
an error is raised."
|
||||||
|
(match input
|
||||||
|
(($ <derivation-input> drv (output))
|
||||||
|
(derivation->output-path drv output))))
|
||||||
|
|
||||||
(define (valid-derivation-input? store input)
|
(define (valid-derivation-input? store input)
|
||||||
"Return true if INPUT is valid--i.e., if all the outputs it requests are in
|
"Return true if INPUT is valid--i.e., if all the outputs it requests are in
|
||||||
the store."
|
the store."
|
||||||
|
@ -705,16 +715,25 @@ name of each input with that input's hash."
|
||||||
;; character.
|
;; character.
|
||||||
(sha256 (derivation->bytevector (derivation/masked-inputs drv)))))))
|
(sha256 (derivation->bytevector (derivation/masked-inputs drv)))))))
|
||||||
|
|
||||||
|
|
||||||
|
(define (warn-about-derivation-deprecation name)
|
||||||
|
;; TRANSLATORS: 'derivation' must not be translated; it refers to the
|
||||||
|
;; 'derivation' procedure.
|
||||||
|
(warning (G_ "in '~a': deprecated 'derivation' calling convention used~%")
|
||||||
|
name))
|
||||||
|
|
||||||
(define* (derivation store name builder args
|
(define* (derivation store name builder args
|
||||||
#:key
|
#:key
|
||||||
(system (%current-system)) (env-vars '())
|
(system (%current-system)) (env-vars '())
|
||||||
(inputs '()) (outputs '("out"))
|
(inputs '()) (sources '())
|
||||||
|
(outputs '("out"))
|
||||||
hash hash-algo recursive?
|
hash hash-algo recursive?
|
||||||
references-graphs
|
references-graphs
|
||||||
allowed-references disallowed-references
|
allowed-references disallowed-references
|
||||||
leaked-env-vars local-build?
|
leaked-env-vars local-build?
|
||||||
(substitutable? #t)
|
(substitutable? #t)
|
||||||
(properties '()))
|
(properties '())
|
||||||
|
(%deprecation-warning? #t))
|
||||||
"Build a derivation with the given arguments, and return the resulting
|
"Build a derivation with the given arguments, and return the resulting
|
||||||
<derivation> object. When HASH and HASH-ALGO are given, a
|
<derivation> object. When HASH and HASH-ALGO are given, a
|
||||||
fixed-output derivation is created---i.e., one whose result is known in
|
fixed-output derivation is created---i.e., one whose result is known in
|
||||||
|
@ -831,17 +850,28 @@ derivation. It is kept as-is, uninterpreted, in the derivation."
|
||||||
e
|
e
|
||||||
outputs)))
|
outputs)))
|
||||||
|
|
||||||
|
(define-syntax-rule (warn-deprecation name)
|
||||||
|
(when %deprecation-warning?
|
||||||
|
(warn-about-derivation-deprecation name)))
|
||||||
|
|
||||||
(define input->derivation-input
|
(define input->derivation-input
|
||||||
(match-lambda
|
(match-lambda
|
||||||
|
((? derivation-input? input)
|
||||||
|
input)
|
||||||
(((? derivation? drv))
|
(((? derivation? drv))
|
||||||
|
(warn-deprecation name)
|
||||||
(make-derivation-input drv '("out")))
|
(make-derivation-input drv '("out")))
|
||||||
(((? derivation? drv) sub-drvs ...)
|
(((? derivation? drv) sub-drvs ...)
|
||||||
|
(warn-deprecation name)
|
||||||
(make-derivation-input drv sub-drvs))
|
(make-derivation-input drv sub-drvs))
|
||||||
(_ #f)))
|
(_
|
||||||
|
(warn-deprecation name)
|
||||||
|
#f)))
|
||||||
|
|
||||||
(define input->source
|
(define input->source
|
||||||
(match-lambda
|
(match-lambda
|
||||||
(((? string? input) . _)
|
(((? string? input) . _)
|
||||||
|
(warn-deprecation name)
|
||||||
(if (direct-store-path? input)
|
(if (direct-store-path? input)
|
||||||
input
|
input
|
||||||
(add-to-store store (basename input)
|
(add-to-store store (basename input)
|
||||||
|
@ -858,7 +888,8 @@ derivation. It is kept as-is, uninterpreted, in the derivation."
|
||||||
hash recursive?)))
|
hash recursive?)))
|
||||||
(sort outputs string<?)))
|
(sort outputs string<?)))
|
||||||
(sources (sort (delete-duplicates
|
(sources (sort (delete-duplicates
|
||||||
(filter-map input->source inputs))
|
(append (filter-map input->source inputs)
|
||||||
|
sources))
|
||||||
string<?))
|
string<?))
|
||||||
(inputs (sort (coalesce-duplicate-inputs
|
(inputs (sort (coalesce-duplicate-inputs
|
||||||
(filter-map input->derivation-input inputs))
|
(filter-map input->derivation-input inputs))
|
||||||
|
@ -929,12 +960,9 @@ recursively."
|
||||||
|
|
||||||
(define input->output-paths
|
(define input->output-paths
|
||||||
(match-lambda
|
(match-lambda
|
||||||
(((? derivation? drv))
|
((? derivation-input? input)
|
||||||
(list (derivation->output-path drv)))
|
(derivation-input-output-paths input))
|
||||||
(((? derivation? drv) sub-drvs ...)
|
((? string? file)
|
||||||
(map (cut derivation->output-path drv <>)
|
|
||||||
sub-drvs))
|
|
||||||
((file)
|
|
||||||
(list file))))
|
(list file))))
|
||||||
|
|
||||||
(let ((mapping (fold (lambda (pair result)
|
(let ((mapping (fold (lambda (pair result)
|
||||||
|
@ -954,11 +982,11 @@ recursively."
|
||||||
(($ <derivation-input> drv (sub-drvs ...))
|
(($ <derivation-input> drv (sub-drvs ...))
|
||||||
(match (vhash-assoc (derivation-file-name drv) mapping)
|
(match (vhash-assoc (derivation-file-name drv) mapping)
|
||||||
((_ . (? derivation? replacement))
|
((_ . (? derivation? replacement))
|
||||||
(cons replacement sub-drvs))
|
(derivation-input replacement sub-drvs))
|
||||||
((_ . replacement)
|
((_ . (? string? source))
|
||||||
(list replacement))
|
source)
|
||||||
(#f
|
(#f
|
||||||
(cons (loop drv) sub-drvs)))))))
|
(derivation-input (loop drv) sub-drvs)))))))
|
||||||
|
|
||||||
(let loop ((drv drv))
|
(let loop ((drv drv))
|
||||||
(let* ((inputs (map (cut rewritten-input <> loop)
|
(let* ((inputs (map (cut rewritten-input <> loop)
|
||||||
|
@ -997,7 +1025,8 @@ recursively."
|
||||||
. ,(substitute value initial
|
. ,(substitute value initial
|
||||||
replacements))))
|
replacements))))
|
||||||
(derivation-builder-environment-vars drv))
|
(derivation-builder-environment-vars drv))
|
||||||
#:inputs (append (map list sources) inputs)
|
#:inputs (filter derivation-input? inputs)
|
||||||
|
#:sources (append sources (filter string? inputs))
|
||||||
#:outputs (derivation-output-names drv)
|
#:outputs (derivation-output-names drv)
|
||||||
#:hash (match (derivation-outputs drv)
|
#:hash (match (derivation-outputs drv)
|
||||||
((($ <derivation-output> _ algo hash))
|
((($ <derivation-output> _ algo hash))
|
||||||
|
@ -1318,6 +1347,10 @@ and PROPERTIES."
|
||||||
,@(if mod-dir `("-L" ,mod-dir) '())
|
,@(if mod-dir `("-L" ,mod-dir) '())
|
||||||
,builder)
|
,builder)
|
||||||
|
|
||||||
|
;; 'build-expression->derivation' is somewhat deprecated so
|
||||||
|
;; don't bother warning here.
|
||||||
|
#:%deprecation-warning? #f
|
||||||
|
|
||||||
#:system system
|
#:system system
|
||||||
|
|
||||||
#:inputs `((,(or guile-for-build (%guile-for-build)))
|
#:inputs `((,(or guile-for-build (%guile-for-build)))
|
||||||
|
|
|
@ -436,8 +436,7 @@ download by itself using its own dependencies."
|
||||||
#:hash-algo hash-algo
|
#:hash-algo hash-algo
|
||||||
#:hash hash
|
#:hash hash
|
||||||
#:recursive? executable?
|
#:recursive? executable?
|
||||||
#:inputs `((,mirrors)
|
#:sources (list mirrors content-addressed-mirrors)
|
||||||
(,content-addressed-mirrors))
|
|
||||||
|
|
||||||
;; Honor the user's proxy and locale settings.
|
;; Honor the user's proxy and locale settings.
|
||||||
#:leaked-env-vars '("http_proxy" "https_proxy"
|
#:leaked-env-vars '("http_proxy" "https_proxy"
|
||||||
|
|
|
@ -85,6 +85,7 @@
|
||||||
lowered-gexp?
|
lowered-gexp?
|
||||||
lowered-gexp-sexp
|
lowered-gexp-sexp
|
||||||
lowered-gexp-inputs
|
lowered-gexp-inputs
|
||||||
|
lowered-gexp-sources
|
||||||
lowered-gexp-guile
|
lowered-gexp-guile
|
||||||
lowered-gexp-load-path
|
lowered-gexp-load-path
|
||||||
lowered-gexp-load-compiled-path
|
lowered-gexp-load-compiled-path
|
||||||
|
@ -574,9 +575,9 @@ list."
|
||||||
|
|
||||||
(define* (lower-inputs inputs
|
(define* (lower-inputs inputs
|
||||||
#:key system target)
|
#:key system target)
|
||||||
"Turn any package from INPUTS into a derivation for SYSTEM; return the
|
"Turn any object from INPUTS into a derivation input for SYSTEM or a store
|
||||||
corresponding input list as a monadic value. When TARGET is true, use it as
|
item (a \"source\"); return the corresponding input list as a monadic value.
|
||||||
the cross-compilation target triplet."
|
When TARGET is true, use it as the cross-compilation target triplet."
|
||||||
(define (store-item? obj)
|
(define (store-item? obj)
|
||||||
(and (string? obj) (store-path? obj)))
|
(and (string? obj) (store-path? obj)))
|
||||||
|
|
||||||
|
@ -584,27 +585,30 @@ the cross-compilation target triplet."
|
||||||
(mapm %store-monad
|
(mapm %store-monad
|
||||||
(match-lambda
|
(match-lambda
|
||||||
(((? struct? thing) sub-drv ...)
|
(((? struct? thing) sub-drv ...)
|
||||||
(mlet %store-monad ((drv (lower-object
|
(mlet %store-monad ((obj (lower-object
|
||||||
thing system #:target target)))
|
thing system #:target target)))
|
||||||
(return (apply gexp-input drv sub-drv))))
|
(return (match obj
|
||||||
|
((? derivation? drv)
|
||||||
|
(let ((outputs (if (null? sub-drv)
|
||||||
|
'("out")
|
||||||
|
sub-drv)))
|
||||||
|
(derivation-input drv outputs)))
|
||||||
|
((? store-item? item)
|
||||||
|
item)))))
|
||||||
(((? store-item? item))
|
(((? store-item? item))
|
||||||
(return (gexp-input item)))
|
(return item)))
|
||||||
(input
|
|
||||||
(return (gexp-input input))))
|
|
||||||
inputs)))
|
inputs)))
|
||||||
|
|
||||||
(define* (lower-reference-graphs graphs #:key system target)
|
(define* (lower-reference-graphs graphs #:key system target)
|
||||||
"Given GRAPHS, a list of (FILE-NAME INPUT ...) lists for use as a
|
"Given GRAPHS, a list of (FILE-NAME INPUT ...) lists for use as a
|
||||||
#:reference-graphs argument, lower it such that each INPUT is replaced by the
|
#:reference-graphs argument, lower it such that each INPUT is replaced by the
|
||||||
corresponding derivation."
|
corresponding <derivation-input> or store item."
|
||||||
(match graphs
|
(match graphs
|
||||||
(((file-names . inputs) ...)
|
(((file-names . inputs) ...)
|
||||||
(mlet %store-monad ((inputs (lower-inputs inputs
|
(mlet %store-monad ((inputs (lower-inputs inputs
|
||||||
#:system system
|
#:system system
|
||||||
#:target target)))
|
#:target target)))
|
||||||
(return (map (lambda (file input)
|
(return (map cons file-names inputs))))))
|
||||||
(cons file (gexp-input->tuple input)))
|
|
||||||
file-names inputs))))))
|
|
||||||
|
|
||||||
(define* (lower-references lst #:key system target)
|
(define* (lower-references lst #:key system target)
|
||||||
"Based on LST, a list of output names and packages, return a list of output
|
"Based on LST, a list of output names and packages, return a list of output
|
||||||
|
@ -637,12 +641,14 @@ names and file names suitable for the #:allowed-references argument to
|
||||||
((force proc) system))))
|
((force proc) system))))
|
||||||
|
|
||||||
;; Representation of a gexp instantiated for a given target and system.
|
;; Representation of a gexp instantiated for a given target and system.
|
||||||
|
;; It's an intermediate representation between <gexp> and <derivation>.
|
||||||
(define-record-type <lowered-gexp>
|
(define-record-type <lowered-gexp>
|
||||||
(lowered-gexp sexp inputs guile load-path load-compiled-path)
|
(lowered-gexp sexp inputs sources guile load-path load-compiled-path)
|
||||||
lowered-gexp?
|
lowered-gexp?
|
||||||
(sexp lowered-gexp-sexp) ;sexp
|
(sexp lowered-gexp-sexp) ;sexp
|
||||||
(inputs lowered-gexp-inputs) ;list of <gexp-input>
|
(inputs lowered-gexp-inputs) ;list of <derivation-input>
|
||||||
(guile lowered-gexp-guile) ;<derivation> | #f
|
(sources lowered-gexp-sources) ;list of store items
|
||||||
|
(guile lowered-gexp-guile) ;<derivation-input> | #f
|
||||||
(load-path lowered-gexp-load-path) ;list of store items
|
(load-path lowered-gexp-load-path) ;list of store items
|
||||||
(load-compiled-path lowered-gexp-load-compiled-path)) ;list of store items
|
(load-compiled-path lowered-gexp-load-compiled-path)) ;list of store items
|
||||||
|
|
||||||
|
@ -737,26 +743,19 @@ derivations--e.g., code evaluated for its side effects."
|
||||||
(mbegin %store-monad
|
(mbegin %store-monad
|
||||||
(set-grafting graft?) ;restore the initial setting
|
(set-grafting graft?) ;restore the initial setting
|
||||||
(return (lowered-gexp sexp
|
(return (lowered-gexp sexp
|
||||||
`(,@(if modules
|
`(,@(if (derivation? modules)
|
||||||
(list (gexp-input modules))
|
(list (derivation-input modules))
|
||||||
'())
|
'())
|
||||||
,@(if compiled
|
,@(if compiled
|
||||||
(list (gexp-input compiled))
|
(list (derivation-input compiled))
|
||||||
'())
|
'())
|
||||||
,@(map gexp-input exts)
|
,@(map derivation-input exts)
|
||||||
,@inputs)
|
,@(filter derivation-input? inputs))
|
||||||
guile
|
(filter string? (cons modules inputs))
|
||||||
|
(derivation-input guile '("out"))
|
||||||
load-path
|
load-path
|
||||||
load-compiled-path)))))
|
load-compiled-path)))))
|
||||||
|
|
||||||
(define (gexp-input->tuple input)
|
|
||||||
"Given INPUT, a <gexp-input> record, return the corresponding input tuple
|
|
||||||
suitable for the 'derivation' procedure."
|
|
||||||
(match (gexp-input-output input)
|
|
||||||
("out" `(,(gexp-input-thing input)))
|
|
||||||
(output `(,(gexp-input-thing input)
|
|
||||||
,(gexp-input-output input)))))
|
|
||||||
|
|
||||||
(define* (gexp->derivation name exp
|
(define* (gexp->derivation name exp
|
||||||
#:key
|
#:key
|
||||||
system (target 'current)
|
system (target 'current)
|
||||||
|
@ -821,13 +820,10 @@ The other arguments are as for 'derivation'."
|
||||||
(define (graphs-file-names graphs)
|
(define (graphs-file-names graphs)
|
||||||
;; Return a list of (FILE-NAME . STORE-PATH) pairs made from GRAPHS.
|
;; Return a list of (FILE-NAME . STORE-PATH) pairs made from GRAPHS.
|
||||||
(map (match-lambda
|
(map (match-lambda
|
||||||
;; TODO: Remove 'derivation?' special cases.
|
((file-name . (? derivation-input? input))
|
||||||
((file-name (? derivation? drv))
|
(cons file-name (first (derivation-input-output-paths input))))
|
||||||
(cons file-name (derivation->output-path drv)))
|
((file-name . (? string? item))
|
||||||
((file-name (? derivation? drv) sub-drv)
|
(cons file-name item)))
|
||||||
(cons file-name (derivation->output-path drv sub-drv)))
|
|
||||||
((file-name thing)
|
|
||||||
(cons file-name thing)))
|
|
||||||
graphs))
|
graphs))
|
||||||
|
|
||||||
(define (add-modules exp modules)
|
(define (add-modules exp modules)
|
||||||
|
@ -882,7 +878,7 @@ The other arguments are as for 'derivation'."
|
||||||
(mbegin %store-monad
|
(mbegin %store-monad
|
||||||
(set-grafting graft?) ;restore the initial setting
|
(set-grafting graft?) ;restore the initial setting
|
||||||
(raw-derivation name
|
(raw-derivation name
|
||||||
(string-append (derivation->output-path guile)
|
(string-append (derivation-input-output-path guile)
|
||||||
"/bin/guile")
|
"/bin/guile")
|
||||||
`("--no-auto-compile"
|
`("--no-auto-compile"
|
||||||
,@(append-map (lambda (directory)
|
,@(append-map (lambda (directory)
|
||||||
|
@ -895,13 +891,23 @@ The other arguments are as for 'derivation'."
|
||||||
#:outputs outputs
|
#:outputs outputs
|
||||||
#:env-vars env-vars
|
#:env-vars env-vars
|
||||||
#:system system
|
#:system system
|
||||||
#:inputs `((,guile)
|
#:inputs `(,guile
|
||||||
(,builder)
|
,@(lowered-gexp-inputs lowered)
|
||||||
,@(map gexp-input->tuple
|
|
||||||
(lowered-gexp-inputs lowered))
|
|
||||||
,@(match graphs
|
,@(match graphs
|
||||||
(((_ . inputs) ...) inputs)
|
(((_ . inputs) ...)
|
||||||
(_ '())))
|
(filter derivation-input? inputs))
|
||||||
|
(#f '())))
|
||||||
|
#:sources `(,builder
|
||||||
|
,@(if (and (string? modules)
|
||||||
|
(store-path? modules))
|
||||||
|
(list modules)
|
||||||
|
'())
|
||||||
|
,@(lowered-gexp-sources lowered)
|
||||||
|
,@(match graphs
|
||||||
|
(((_ . inputs) ...)
|
||||||
|
(filter string? inputs))
|
||||||
|
(#f '())))
|
||||||
|
|
||||||
#:hash hash #:hash-algo hash-algo #:recursive? recursive?
|
#:hash hash #:hash-algo hash-algo #:recursive? recursive?
|
||||||
#:references-graphs (and=> graphs graphs-file-names)
|
#:references-graphs (and=> graphs graphs-file-names)
|
||||||
#:allowed-references allowed
|
#:allowed-references allowed
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -46,7 +46,7 @@
|
||||||
(compose object->string object->string))
|
(compose object->string object->string))
|
||||||
|
|
||||||
(apply open-remote-pipe* session OPEN_READ
|
(apply open-remote-pipe* session OPEN_READ
|
||||||
(string-append (derivation->output-path
|
(string-append (derivation-input-output-path
|
||||||
(lowered-gexp-guile lowered))
|
(lowered-gexp-guile lowered))
|
||||||
"/bin/guile")
|
"/bin/guile")
|
||||||
"--no-auto-compile"
|
"--no-auto-compile"
|
||||||
|
@ -76,8 +76,14 @@ result to the current output port using the (guix repl) protocol."
|
||||||
(with-imported-modules (source-module-closure '((guix repl)))
|
(with-imported-modules (source-module-closure '((guix repl)))
|
||||||
#~(begin
|
#~(begin
|
||||||
(use-modules (guix repl))
|
(use-modules (guix repl))
|
||||||
(send-repl-response '(primitive-load #$program)
|
|
||||||
|
;; We use CURRENT-OUTPUT-PORT for REPL messages, so redirect PROGRAM's
|
||||||
|
;; output to CURRENT-ERROR-PORT so that it does not interfere.
|
||||||
|
(send-repl-response '(with-output-to-port (current-error-port)
|
||||||
|
(lambda ()
|
||||||
|
(primitive-load #$program)))
|
||||||
(current-output-port))
|
(current-output-port))
|
||||||
|
|
||||||
(force-output))))
|
(force-output))))
|
||||||
|
|
||||||
(define* (remote-eval exp session
|
(define* (remote-eval exp session
|
||||||
|
@ -95,40 +101,27 @@ remote store."
|
||||||
(remote -> (connect-to-remote-daemon session
|
(remote -> (connect-to-remote-daemon session
|
||||||
socket-name)))
|
socket-name)))
|
||||||
(define inputs
|
(define inputs
|
||||||
(cons (gexp-input (lowered-gexp-guile lowered))
|
(cons (lowered-gexp-guile lowered)
|
||||||
(lowered-gexp-inputs lowered)))
|
(lowered-gexp-inputs lowered)))
|
||||||
|
|
||||||
(define to-build
|
(define sources
|
||||||
(map (lambda (input)
|
(lowered-gexp-sources lowered))
|
||||||
(if (derivation? (gexp-input-thing input))
|
|
||||||
(cons (gexp-input-thing input)
|
|
||||||
(gexp-input-output input))
|
|
||||||
(gexp-input-thing input)))
|
|
||||||
inputs))
|
|
||||||
|
|
||||||
(if build-locally?
|
(if build-locally?
|
||||||
(let ((to-send (map (lambda (input)
|
(let ((to-send (append (append-map derivation-input-output-paths
|
||||||
(match (gexp-input-thing input)
|
inputs)
|
||||||
((? derivation? drv)
|
sources)))
|
||||||
(derivation->output-path
|
|
||||||
drv (gexp-input-output input)))
|
|
||||||
((? store-path? item)
|
|
||||||
item)))
|
|
||||||
inputs)))
|
|
||||||
(mbegin %store-monad
|
(mbegin %store-monad
|
||||||
(built-derivations to-build)
|
(built-derivations inputs)
|
||||||
((store-lift send-files) to-send remote #:recursive? #t)
|
((store-lift send-files) to-send remote #:recursive? #t)
|
||||||
(return (close-connection remote))
|
(return (close-connection remote))
|
||||||
(return (%remote-eval lowered session))))
|
(return (%remote-eval lowered session))))
|
||||||
(let ((to-send (map (lambda (input)
|
(let ((to-send (append (map (compose derivation-file-name
|
||||||
(match (gexp-input-thing input)
|
derivation-input-derivation)
|
||||||
((? derivation? drv)
|
inputs)
|
||||||
(derivation-file-name drv))
|
sources)))
|
||||||
((? store-path? item)
|
|
||||||
item)))
|
|
||||||
inputs)))
|
|
||||||
(mbegin %store-monad
|
(mbegin %store-monad
|
||||||
((store-lift send-files) to-send remote #:recursive? #t)
|
((store-lift send-files) to-send remote #:recursive? #t)
|
||||||
(return (build-derivations remote to-build))
|
(return (build-derivations remote inputs))
|
||||||
(return (close-connection remote))
|
(return (close-connection remote))
|
||||||
(return (%remote-eval lowered session)))))))
|
(return (%remote-eval lowered session)))))))
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -694,7 +694,7 @@ to compress or decompress the log file; just return it as-is."
|
||||||
(h1 "GNU Guix Substitute Server")
|
(h1 "GNU Guix Substitute Server")
|
||||||
(p "Hi, "
|
(p "Hi, "
|
||||||
(a (@ (href
|
(a (@ (href
|
||||||
"https://gnu.org/s/guix/manual/html_node/Invoking-guix-publish.html"))
|
"https://guix.gnu.org/manual/en/html_node/Invoking-guix-publish.html"))
|
||||||
(tt "guix publish"))
|
(tt "guix publish"))
|
||||||
" speaking. Welcome!")))
|
" speaking. Welcome!")))
|
||||||
port)))))
|
port)))))
|
||||||
|
|
|
@ -917,7 +917,7 @@ Info manual."
|
||||||
(package-name "GNU Guix")
|
(package-name "GNU Guix")
|
||||||
(package-version "0")
|
(package-version "0")
|
||||||
(bug-report-address "bug-guix@gnu.org")
|
(bug-report-address "bug-guix@gnu.org")
|
||||||
(home-page-url "https://gnu.org/s/guix"))
|
(home-page-url "https://guix.gnu.org"))
|
||||||
|
|
||||||
;; Hack so that Geiser is not confused.
|
;; Hack so that Geiser is not confused.
|
||||||
(define defmod 'define-module)
|
(define defmod 'define-module)
|
||||||
|
|
|
@ -42,6 +42,7 @@ guix/build/utils.scm
|
||||||
guix/scripts.scm
|
guix/scripts.scm
|
||||||
guix/scripts/build.scm
|
guix/scripts/build.scm
|
||||||
guix/discovery.scm
|
guix/discovery.scm
|
||||||
|
guix/lint.scm
|
||||||
guix/scripts/download.scm
|
guix/scripts/download.scm
|
||||||
guix/scripts/package.scm
|
guix/scripts/package.scm
|
||||||
guix/scripts/install.scm
|
guix/scripts/install.scm
|
||||||
|
@ -82,4 +83,5 @@ guix/channels.scm
|
||||||
guix/profiles.scm
|
guix/profiles.scm
|
||||||
guix/git.scm
|
guix/git.scm
|
||||||
guix/deprecation.scm
|
guix/deprecation.scm
|
||||||
|
guix/derivations.scm
|
||||||
nix/nix-daemon/guix-daemon.cc
|
nix/nix-daemon/guix-daemon.cc
|
||||||
|
|
|
@ -136,7 +136,7 @@
|
||||||
#:env-vars '(("HOME" . "/homeless")
|
#:env-vars '(("HOME" . "/homeless")
|
||||||
("zzz" . "Z!")
|
("zzz" . "Z!")
|
||||||
("AAA" . "A!"))
|
("AAA" . "A!"))
|
||||||
#:inputs `((,%bash) (,builder))))
|
#:sources `(,%bash ,builder)))
|
||||||
(succeeded?
|
(succeeded?
|
||||||
(build-derivations %store (list drv))))
|
(build-derivations %store (list drv))))
|
||||||
(and succeeded?
|
(and succeeded?
|
||||||
|
@ -145,36 +145,13 @@
|
||||||
(string=? (call-with-input-file path read-line)
|
(string=? (call-with-input-file path read-line)
|
||||||
"hello, world"))))))
|
"hello, world"))))))
|
||||||
|
|
||||||
(test-assert "derivation with local file as input"
|
|
||||||
(let* ((builder (add-text-to-store
|
|
||||||
%store "my-builder.sh"
|
|
||||||
"(while read line ; do echo \"$line\" ; done) < $in > $out"
|
|
||||||
'()))
|
|
||||||
(input (search-path %load-path "ice-9/boot-9.scm"))
|
|
||||||
(input* (add-to-store %store (basename input)
|
|
||||||
#t "sha256" input))
|
|
||||||
(drv (derivation %store "derivation-with-input-file"
|
|
||||||
%bash `(,builder)
|
|
||||||
|
|
||||||
;; Cheat to pass the actual file name to the
|
|
||||||
;; builder.
|
|
||||||
#:env-vars `(("in" . ,input*))
|
|
||||||
|
|
||||||
#:inputs `((,%bash)
|
|
||||||
(,builder)
|
|
||||||
(,input))))) ; ← local file name
|
|
||||||
(and (build-derivations %store (list drv))
|
|
||||||
;; Note: we can't compare the files because the above trick alters
|
|
||||||
;; the contents.
|
|
||||||
(valid-path? %store (derivation->output-path drv)))))
|
|
||||||
|
|
||||||
(test-assert "derivation fails but keep going"
|
(test-assert "derivation fails but keep going"
|
||||||
;; In keep-going mode, 'build-derivations' should fail because of D1, but it
|
;; In keep-going mode, 'build-derivations' should fail because of D1, but it
|
||||||
;; must return only after D2 has succeeded.
|
;; must return only after D2 has succeeded.
|
||||||
(with-store store
|
(with-store store
|
||||||
(let* ((d1 (derivation %store "fails"
|
(let* ((d1 (derivation %store "fails"
|
||||||
%bash `("-c" "false")
|
%bash `("-c" "false")
|
||||||
#:inputs `((,%bash))))
|
#:sources (list %bash)))
|
||||||
(d2 (build-expression->derivation %store "sleep-then-succeed"
|
(d2 (build-expression->derivation %store "sleep-then-succeed"
|
||||||
`(begin
|
`(begin
|
||||||
,(random-text)
|
,(random-text)
|
||||||
|
@ -204,10 +181,10 @@
|
||||||
'()))
|
'()))
|
||||||
(drv1 (derivation %store "foo"
|
(drv1 (derivation %store "foo"
|
||||||
%bash `(,build1)
|
%bash `(,build1)
|
||||||
#:inputs `((,%bash) (,build1))))
|
#:sources `(,%bash ,build1)))
|
||||||
(drv2 (derivation %store "bar"
|
(drv2 (derivation %store "bar"
|
||||||
%bash `(,build2)
|
%bash `(,build2)
|
||||||
#:inputs `((,%bash) (,build2)))))
|
#:sources `(,%bash ,build2))))
|
||||||
(and (build-derivations %store (list drv1 drv2))
|
(and (build-derivations %store (list drv1 drv2))
|
||||||
(let ((file1 (derivation->output-path drv1))
|
(let ((file1 (derivation->output-path drv1))
|
||||||
(file2 (derivation->output-path drv2)))
|
(file2 (derivation->output-path drv2)))
|
||||||
|
@ -343,7 +320,7 @@
|
||||||
(hash (sha256 (string->utf8 "hello")))
|
(hash (sha256 (string->utf8 "hello")))
|
||||||
(drv (derivation %store "fixed"
|
(drv (derivation %store "fixed"
|
||||||
%bash `(,builder)
|
%bash `(,builder)
|
||||||
#:inputs `((,builder))
|
#:sources (list builder)
|
||||||
#:hash hash #:hash-algo 'sha256)))
|
#:hash hash #:hash-algo 'sha256)))
|
||||||
(fixed-output-derivation? drv)))
|
(fixed-output-derivation? drv)))
|
||||||
|
|
||||||
|
@ -353,7 +330,7 @@
|
||||||
(hash (sha256 (string->utf8 "hello")))
|
(hash (sha256 (string->utf8 "hello")))
|
||||||
(drv (derivation %store "fixed"
|
(drv (derivation %store "fixed"
|
||||||
%bash `(,builder)
|
%bash `(,builder)
|
||||||
#:inputs `((,builder)) ; optional
|
#:sources `(,builder) ;optional
|
||||||
#:hash hash #:hash-algo 'sha256))
|
#:hash hash #:hash-algo 'sha256))
|
||||||
(succeeded? (build-derivations %store (list drv))))
|
(succeeded? (build-derivations %store (list drv))))
|
||||||
(and succeeded?
|
(and succeeded?
|
||||||
|
@ -385,7 +362,7 @@
|
||||||
(hash (sha256 (string->utf8 "hello")))
|
(hash (sha256 (string->utf8 "hello")))
|
||||||
(drv (derivation %store "fixed-rec"
|
(drv (derivation %store "fixed-rec"
|
||||||
%bash `(,builder)
|
%bash `(,builder)
|
||||||
#:inputs `((,builder))
|
#:sources (list builder)
|
||||||
#:hash (base32 "0sg9f58l1jj88w6pdrfdpj5x9b1zrwszk84j81zvby36q9whhhqa")
|
#:hash (base32 "0sg9f58l1jj88w6pdrfdpj5x9b1zrwszk84j81zvby36q9whhhqa")
|
||||||
#:hash-algo 'sha256
|
#:hash-algo 'sha256
|
||||||
#:recursive? #t))
|
#:recursive? #t))
|
||||||
|
@ -419,11 +396,13 @@
|
||||||
(final1 (derivation %store "final"
|
(final1 (derivation %store "final"
|
||||||
%bash `(,builder3)
|
%bash `(,builder3)
|
||||||
#:env-vars `(("in" . ,fixed-out))
|
#:env-vars `(("in" . ,fixed-out))
|
||||||
#:inputs `((,%bash) (,builder3) (,fixed1))))
|
#:sources (list %bash builder3)
|
||||||
|
#:inputs (list (derivation-input fixed1))))
|
||||||
(final2 (derivation %store "final"
|
(final2 (derivation %store "final"
|
||||||
%bash `(,builder3)
|
%bash `(,builder3)
|
||||||
#:env-vars `(("in" . ,fixed-out))
|
#:env-vars `(("in" . ,fixed-out))
|
||||||
#:inputs `((,%bash) (,builder3) (,fixed2))))
|
#:sources (list %bash builder3)
|
||||||
|
#:inputs (list (derivation-input fixed2))))
|
||||||
(succeeded? (build-derivations %store
|
(succeeded? (build-derivations %store
|
||||||
(list final1 final2))))
|
(list final1 final2))))
|
||||||
(and succeeded?
|
(and succeeded?
|
||||||
|
@ -439,7 +418,7 @@
|
||||||
#:env-vars '(("HOME" . "/homeless")
|
#:env-vars '(("HOME" . "/homeless")
|
||||||
("zzz" . "Z!")
|
("zzz" . "Z!")
|
||||||
("AAA" . "A!"))
|
("AAA" . "A!"))
|
||||||
#:inputs `((,%bash) (,builder))
|
#:sources `(,%bash ,builder)
|
||||||
#:outputs '("out" "second")))
|
#:outputs '("out" "second")))
|
||||||
(succeeded? (build-derivations %store (list drv))))
|
(succeeded? (build-derivations %store (list drv))))
|
||||||
(and succeeded?
|
(and succeeded?
|
||||||
|
@ -459,7 +438,7 @@
|
||||||
'()))
|
'()))
|
||||||
(drv (derivation %store "fixed"
|
(drv (derivation %store "fixed"
|
||||||
%bash `(,builder)
|
%bash `(,builder)
|
||||||
#:inputs `((,%bash) (,builder))
|
#:sources `(,%bash ,builder)
|
||||||
#:outputs '("out" "AAA")))
|
#:outputs '("out" "AAA")))
|
||||||
(succeeded? (build-derivations %store (list drv))))
|
(succeeded? (build-derivations %store (list drv))))
|
||||||
(and succeeded?
|
(and succeeded?
|
||||||
|
@ -481,15 +460,15 @@
|
||||||
(inputs (map (lambda (file)
|
(inputs (map (lambda (file)
|
||||||
(derivation %store "derivation-input"
|
(derivation %store "derivation-input"
|
||||||
%bash '()
|
%bash '()
|
||||||
#:inputs `((,%bash) (,file))))
|
#:sources `(,%bash ,file)))
|
||||||
sources))
|
sources))
|
||||||
(builder (add-text-to-store %store "builder.sh"
|
(builder (add-text-to-store %store "builder.sh"
|
||||||
"echo one > $one ; echo two > $two"
|
"echo one > $one ; echo two > $two"
|
||||||
'()))
|
'()))
|
||||||
(drv (derivation %store "derivation"
|
(drv (derivation %store "derivation"
|
||||||
%bash `(,builder)
|
%bash `(,builder)
|
||||||
#:inputs `((,%bash) (,builder)
|
#:sources `(,%bash ,builder ,@sources)
|
||||||
,@(map list (append sources inputs)))
|
#:inputs (map derivation-input inputs)
|
||||||
#:outputs '("two" "one")))
|
#:outputs '("two" "one")))
|
||||||
(drv* (call-with-input-file (derivation-file-name drv)
|
(drv* (call-with-input-file (derivation-file-name drv)
|
||||||
read-derivation)))
|
read-derivation)))
|
||||||
|
@ -520,7 +499,7 @@
|
||||||
'()))
|
'()))
|
||||||
(mdrv (derivation %store "multiple-output"
|
(mdrv (derivation %store "multiple-output"
|
||||||
%bash `(,builder1)
|
%bash `(,builder1)
|
||||||
#:inputs `((,%bash) (,builder1))
|
#:sources (list %bash builder1)
|
||||||
#:outputs '("out" "two")))
|
#:outputs '("out" "two")))
|
||||||
(builder2 (add-text-to-store %store "my-mo-user-builder.sh"
|
(builder2 (add-text-to-store %store "my-mo-user-builder.sh"
|
||||||
"read x < $one;
|
"read x < $one;
|
||||||
|
@ -535,11 +514,11 @@
|
||||||
("two"
|
("two"
|
||||||
. ,(derivation->output-path
|
. ,(derivation->output-path
|
||||||
mdrv "two")))
|
mdrv "two")))
|
||||||
#:inputs `((,%bash)
|
#:sources (list %bash builder2)
|
||||||
(,builder2)
|
|
||||||
;; two occurrences of MDRV:
|
;; two occurrences of MDRV:
|
||||||
(,mdrv)
|
#:inputs
|
||||||
(,mdrv "two")))))
|
(list (derivation-input mdrv)
|
||||||
|
(derivation-input mdrv '("two"))))))
|
||||||
(and (build-derivations %store (list (pk 'udrv udrv)))
|
(and (build-derivations %store (list (pk 'udrv udrv)))
|
||||||
(let ((p (derivation->output-path udrv)))
|
(let ((p (derivation->output-path udrv)))
|
||||||
(and (valid-path? %store p)
|
(and (valid-path? %store p)
|
||||||
|
@ -565,7 +544,7 @@
|
||||||
`(("bash" . ,%bash)
|
`(("bash" . ,%bash)
|
||||||
("input1" . ,input1)
|
("input1" . ,input1)
|
||||||
("input2" . ,input2))
|
("input2" . ,input2))
|
||||||
#:inputs `((,%bash) (,builder))))
|
#:sources (list %bash builder)))
|
||||||
(out (derivation->output-path drv)))
|
(out (derivation->output-path drv)))
|
||||||
(define (deps path . deps)
|
(define (deps path . deps)
|
||||||
(let ((count (length deps)))
|
(let ((count (length deps)))
|
||||||
|
@ -598,7 +577,7 @@
|
||||||
(test-assert "derivation #:allowed-references, ok"
|
(test-assert "derivation #:allowed-references, ok"
|
||||||
(let ((drv (derivation %store "allowed" %bash
|
(let ((drv (derivation %store "allowed" %bash
|
||||||
'("-c" "echo hello > $out")
|
'("-c" "echo hello > $out")
|
||||||
#:inputs `((,%bash))
|
#:sources (list %bash)
|
||||||
#:allowed-references '())))
|
#:allowed-references '())))
|
||||||
(build-derivations %store (list drv))))
|
(build-derivations %store (list drv))))
|
||||||
|
|
||||||
|
@ -606,7 +585,7 @@
|
||||||
(let* ((txt (add-text-to-store %store "foo" "Hello, world."))
|
(let* ((txt (add-text-to-store %store "foo" "Hello, world."))
|
||||||
(drv (derivation %store "disallowed" %bash
|
(drv (derivation %store "disallowed" %bash
|
||||||
`("-c" ,(string-append "echo " txt "> $out"))
|
`("-c" ,(string-append "echo " txt "> $out"))
|
||||||
#:inputs `((,%bash) (,txt))
|
#:sources (list %bash txt)
|
||||||
#:allowed-references '())))
|
#:allowed-references '())))
|
||||||
(guard (c ((store-protocol-error? c)
|
(guard (c ((store-protocol-error? c)
|
||||||
;; There's no specific error message to check for.
|
;; There's no specific error message to check for.
|
||||||
|
@ -617,14 +596,14 @@
|
||||||
(test-assert "derivation #:allowed-references, self allowed"
|
(test-assert "derivation #:allowed-references, self allowed"
|
||||||
(let ((drv (derivation %store "allowed" %bash
|
(let ((drv (derivation %store "allowed" %bash
|
||||||
'("-c" "echo $out > $out")
|
'("-c" "echo $out > $out")
|
||||||
#:inputs `((,%bash))
|
#:sources (list %bash)
|
||||||
#:allowed-references '("out"))))
|
#:allowed-references '("out"))))
|
||||||
(build-derivations %store (list drv))))
|
(build-derivations %store (list drv))))
|
||||||
|
|
||||||
(test-assert "derivation #:allowed-references, self not allowed"
|
(test-assert "derivation #:allowed-references, self not allowed"
|
||||||
(let ((drv (derivation %store "disallowed" %bash
|
(let ((drv (derivation %store "disallowed" %bash
|
||||||
`("-c" ,"echo $out > $out")
|
`("-c" ,"echo $out > $out")
|
||||||
#:inputs `((,%bash))
|
#:sources (list %bash)
|
||||||
#:allowed-references '())))
|
#:allowed-references '())))
|
||||||
(guard (c ((store-protocol-error? c)
|
(guard (c ((store-protocol-error? c)
|
||||||
;; There's no specific error message to check for.
|
;; There's no specific error message to check for.
|
||||||
|
@ -635,7 +614,7 @@
|
||||||
(test-assert "derivation #:disallowed-references, ok"
|
(test-assert "derivation #:disallowed-references, ok"
|
||||||
(let ((drv (derivation %store "disallowed" %bash
|
(let ((drv (derivation %store "disallowed" %bash
|
||||||
'("-c" "echo hello > $out")
|
'("-c" "echo hello > $out")
|
||||||
#:inputs `((,%bash))
|
#:sources (list %bash)
|
||||||
#:disallowed-references '("out"))))
|
#:disallowed-references '("out"))))
|
||||||
(build-derivations %store (list drv))))
|
(build-derivations %store (list drv))))
|
||||||
|
|
||||||
|
@ -643,7 +622,7 @@
|
||||||
(let* ((txt (add-text-to-store %store "foo" "Hello, world."))
|
(let* ((txt (add-text-to-store %store "foo" "Hello, world."))
|
||||||
(drv (derivation %store "disdisallowed" %bash
|
(drv (derivation %store "disdisallowed" %bash
|
||||||
`("-c" ,(string-append "echo " txt "> $out"))
|
`("-c" ,(string-append "echo " txt "> $out"))
|
||||||
#:inputs `((,%bash) (,txt))
|
#:sources (list %bash txt)
|
||||||
#:disallowed-references (list txt))))
|
#:disallowed-references (list txt))))
|
||||||
(guard (c ((store-protocol-error? c)
|
(guard (c ((store-protocol-error? c)
|
||||||
;; There's no specific error message to check for.
|
;; There's no specific error message to check for.
|
||||||
|
@ -662,7 +641,7 @@
|
||||||
'("-c" "echo -n $GUIX_STATE_DIRECTORY > $out")
|
'("-c" "echo -n $GUIX_STATE_DIRECTORY > $out")
|
||||||
#:hash (sha256 (string->utf8 value))
|
#:hash (sha256 (string->utf8 value))
|
||||||
#:hash-algo 'sha256
|
#:hash-algo 'sha256
|
||||||
#:inputs `((,%bash))
|
#:sources (list %bash)
|
||||||
#:leaked-env-vars '("GUIX_STATE_DIRECTORY"))))
|
#:leaked-env-vars '("GUIX_STATE_DIRECTORY"))))
|
||||||
(and (build-derivations %store (list drv))
|
(and (build-derivations %store (list drv))
|
||||||
(call-with-input-file (derivation->output-path drv)
|
(call-with-input-file (derivation->output-path drv)
|
||||||
|
@ -688,8 +667,8 @@
|
||||||
,(string-append
|
,(string-append
|
||||||
(derivation->output-path %coreutils)
|
(derivation->output-path %coreutils)
|
||||||
"/bin")))
|
"/bin")))
|
||||||
#:inputs `((,builder)
|
#:sources (list builder)
|
||||||
(,%coreutils))))
|
#:inputs (list (derivation-input %coreutils))))
|
||||||
(succeeded?
|
(succeeded?
|
||||||
(build-derivations %store (list drv))))
|
(build-derivations %store (list drv))))
|
||||||
(and succeeded?
|
(and succeeded?
|
||||||
|
@ -1239,7 +1218,9 @@
|
||||||
(derivation->output-path bash-full)
|
(derivation->output-path bash-full)
|
||||||
|
|
||||||
`("-e" ,script1)
|
`("-e" ,script1)
|
||||||
#:inputs `((,bash-full) (,script1))))
|
#:sources (list script1)
|
||||||
|
#:inputs
|
||||||
|
(list (derivation-input bash-full '("out")))))
|
||||||
(drv2 (map-derivation %store drv1
|
(drv2 (map-derivation %store drv1
|
||||||
`((,bash-full . ,%bash)
|
`((,bash-full . ,%bash)
|
||||||
(,script1 . ,script2))))
|
(,script1 . ,script2))))
|
||||||
|
|
|
@ -849,8 +849,9 @@
|
||||||
#:effective-version "2.0")))
|
#:effective-version "2.0")))
|
||||||
(define (matching-input drv output)
|
(define (matching-input drv output)
|
||||||
(lambda (input)
|
(lambda (input)
|
||||||
(and (eq? (gexp-input-thing input) drv)
|
(and (eq? (derivation-input-derivation input) drv)
|
||||||
(string=? (gexp-input-output input) output))))
|
(equal? (derivation-input-sub-derivations input)
|
||||||
|
(list output)))))
|
||||||
|
|
||||||
(mbegin %store-monad
|
(mbegin %store-monad
|
||||||
(return (and (find (matching-input extension-drv "out")
|
(return (and (find (matching-input extension-drv "out")
|
||||||
|
@ -867,7 +868,8 @@
|
||||||
"/lib/guile/2.0/site-ccache")
|
"/lib/guile/2.0/site-ccache")
|
||||||
(lowered-gexp-load-compiled-path lexp))
|
(lowered-gexp-load-compiled-path lexp))
|
||||||
(= 2 (length (lowered-gexp-load-compiled-path lexp)))
|
(= 2 (length (lowered-gexp-load-compiled-path lexp)))
|
||||||
(eq? (lowered-gexp-guile lexp) (%guile-for-build)))))))
|
(eq? (derivation-input-derivation (lowered-gexp-guile lexp))
|
||||||
|
(%guile-for-build)))))))
|
||||||
|
|
||||||
(test-assertm "gexp->derivation #:references-graphs"
|
(test-assertm "gexp->derivation #:references-graphs"
|
||||||
(mlet* %store-monad
|
(mlet* %store-monad
|
||||||
|
|
755
tests/lint.scm
755
tests/lint.scm
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue