me
/
guix
Archived
1
0
Fork 0

Merge branch 'master' into staging

master
Marius Bakke 2020-10-19 00:17:48 +02:00
commit 1a8f7a0f58
No known key found for this signature in database
GPG Key ID: A2A06DF2A33A54FA
123 changed files with 106119 additions and 49174 deletions

View File

@ -1,5 +1,5 @@
;; This is the list of OpenPGP keys currently authorized to sign commits in
;; this repository.
;; This file, which is best viewed as -*- Scheme -*-, lists the OpenPGP keys
;; currently authorized to sign commits in this repository.
(authorizations
(version 0)
@ -84,6 +84,8 @@
(name "lfam"))
("2AE3 1395 932B E642 FC0E D99C 9BED 6EDA 32E5 B0BC"
(name "lsl88"))
("8887 84C4 1459 ACCB 83E7 E84C 634C 6E89 79FA BEC2"
(name "m1gu3l"))
("CBF5 9755 CBE7 E7EF EF18 3FB1 DD40 9A15 D822 469D"
(name "marusich"))
("BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"

View File

@ -407,6 +407,7 @@ SCM_TESTS = \
tests/base16.scm \
tests/base32.scm \
tests/base64.scm \
tests/boot-parameters.scm \
tests/bournish.scm \
tests/builders.scm \
tests/build-utils.scm \

View File

@ -33,6 +33,7 @@
(guix utils)
(git)
(gnu packages base)
(gnu packages compression)
(gnu packages gawk)
(gnu packages gettext)
(gnu packages guile)
@ -40,7 +41,10 @@
(gnu packages iso-codes)
(gnu packages texinfo)
(gnu packages tex)
(ice-9 match)
(srfi srfi-1)
(srfi srfi-19)
(srfi srfi-26)
(srfi srfi-71))
(define file-append*
@ -204,9 +208,168 @@ content=\"width=device-width, initial-scale=1\" />"))
(setenv "XFAIL_TESTS" "htmlprag.scm")
#t))))))))
(define (normalize-language-code language) ;XXX: deduplicate
;; Normalize LANGUAGE. For instance, "zh_CN" becomes "zh-cn".
(string-map (match-lambda
(#\_ #\-)
(chr chr))
(string-downcase language)))
(define* (html-manual-identifier-index manual base-url
#:key
(name "html-manual-identifier-index"))
"Return an index of all the identifiers that appear in MANUAL, a
makeinfo-generated manual. The index is a file that contains an alist; each
key is an identifier and the associated value is the URL reference pointing to
that identifier. The URL is constructed by concatenating BASE-URL to the
actual file name."
(define build
(with-extensions (list guile-lib/htmlprag-fixed)
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils)
(htmlprag)
(srfi srfi-1)
(srfi srfi-26)
(ice-9 ftw)
(ice-9 match)
(ice-9 threads)
(ice-9 pretty-print))
(define file-url
(let ((prefix (string-append #$manual "/")))
(lambda (file)
;; Return the URL for FILE.
(let ((file (string-drop file (string-length prefix)))
(base #$base-url))
(if (string-null? base)
file
(string-append base "/" file))))))
(define (underscore-decode str)
;; Decode STR, an "underscore-encoded" string as produced by
;; makeinfo for indexes, such as "_0025base_002dservices" for
;; "%base-services".
(let loop ((str str)
(result '()))
(match (string-index str #\_)
(#f
(string-concatenate-reverse (cons str result)))
(index
(let ((char (string->number
(substring str (+ index 1) (+ index 5))
16)))
(loop (string-drop str (+ index 5))
(append (list (string (integer->char char))
(string-take str index))
result)))))))
(define (anchor-id->key id)
;; Convert ID, an anchor ID such as
;; "index-pam_002dlimits_002dservice" to the corresponding key,
;; "pam-limits-service" in this example. Drop the suffix of
;; duplicate anchor IDs like "operating_002dsystem-1".
(let ((id (if (any (cut string-suffix? <> id)
'("-1" "-2" "-3" "-4" "-5"))
(string-drop-right id 2)
id)))
(underscore-decode
(string-drop id (string-length "index-")))))
(define* (collect-anchors file #:optional (anchors '()))
;; Collect the anchors that appear in FILE, a makeinfo-generated
;; file. Grab those from <dt> tags, which corresponds to
;; Texinfo @deftp, @defvr, etc. Return ANCHORS augmented with
;; more name/reference pairs.
(define string-or-entity?
(match-lambda
((? string?) #t)
(('*ENTITY* _ ...) #t)
(_ #f)))
(define (worthy-entry? lst)
;; Attempt to match:
;; Scheme Variable: <strong>x</strong>
;; but not:
;; <code>cups-configuration</code> parameter: …
(let loop ((lst lst))
(match lst
(((? string-or-entity?) rest ...)
(loop rest))
((('strong _ ...) _ ...)
#t)
(_ #f))))
(let ((shtml (call-with-input-file file html->shtml)))
(let loop ((shtml shtml)
(anchors anchors))
(match shtml
(('dt ('@ ('id id)) rest ...)
(if (and (string-prefix? "index-" id)
(worthy-entry? rest))
(alist-cons (anchor-id->key id)
(string-append (file-url file)
"#" id)
anchors)
anchors))
((tag ('@ _ ...) body ...)
(fold loop anchors body))
((tag body ...)
(fold loop anchors body))
(_ anchors)))))
(define (html-files directory)
;; Return the list of HTML files under DIRECTORY.
(map (cut string-append directory "/" <>)
(scandir #$manual (lambda (file)
(string-suffix? ".html" file)))))
(define anchors
(sort (concatenate
(n-par-map (parallel-job-count)
(cut collect-anchors <>)
(html-files #$manual)))
(match-lambda*
(((key1 . url1) (key2 . url2))
(if (string=? key1 key2)
(string<? url1 url2)
(string<? key1 key2))))))
(call-with-output-file #$output
(lambda (port)
(display ";; Identifier index for the manual.\n\n"
port)
(pretty-print anchors port)))))))
(computed-file name build))
(define* (html-identifier-indexes manual directory-suffix
#:key (languages %languages)
(manual-name %manual)
(base-url (const "")))
(map (lambda (language)
(let ((language (normalize-language-code language)))
(list language
(html-manual-identifier-index
(file-append manual "/" language directory-suffix)
(base-url language)
#:name (string-append manual-name "-html-index-"
language)))))
languages))
(define* (syntax-highlighted-html input
#:key
(name "highlighted-syntax")
(languages %languages)
(mono-node-indexes
(html-identifier-indexes input ""
#:languages
languages))
(split-node-indexes
(html-identifier-indexes input
"/html_node"
#:languages
languages))
(syntax-css-url
"/static/base/css/code.css"))
"Return a derivation called NAME that processes all the HTML files in INPUT
@ -341,78 +504,6 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
((? string? str)
str))))
(define (underscore-decode str)
;; Decode STR, an "underscore-encoded" string as produced by
;; makeinfo for indexes, such as "_0025base_002dservices" for
;; "%base-services".
(let loop ((str str)
(result '()))
(match (string-index str #\_)
(#f
(string-concatenate-reverse (cons str result)))
(index
(let ((char (string->number
(substring str (+ index 1) (+ index 5))
16)))
(loop (string-drop str (+ index 5))
(append (list (string (integer->char char))
(string-take str index))
result)))))))
(define (anchor-id->key id)
;; Convert ID, an anchor ID such as
;; "index-pam_002dlimits_002dservice" to the corresponding key,
;; "pam-limits-service" in this example. Drop the suffix of
;; duplicate anchor IDs like "operating_002dsystem-1".
(let ((id (if (any (cut string-suffix? <> id)
'("-1" "-2" "-3" "-4" "-5"))
(string-drop-right id 2)
id)))
(underscore-decode
(string-drop id (string-length "index-")))))
(define* (collect-anchors file #:optional (vhash vlist-null))
;; Collect the anchors that appear in FILE, a makeinfo-generated
;; file. Grab those from <dt> tags, which corresponds to
;; Texinfo @deftp, @defvr, etc. Return VHASH augmented with
;; more name/reference pairs.
(define string-or-entity?
(match-lambda
((? string?) #t)
(('*ENTITY* _ ...) #t)
(_ #f)))
(define (worthy-entry? lst)
;; Attempt to match:
;; Scheme Variable: <strong>x</strong>
;; but not:
;; <code>cups-configuration</code> parameter: …
(let loop ((lst lst))
(match lst
(((? string-or-entity?) rest ...)
(loop rest))
((('strong _ ...) _ ...)
#t)
(_ #f))))
(let ((shtml (call-with-input-file file html->shtml)))
(let loop ((shtml shtml)
(vhash vhash))
(match shtml
(('dt ('@ ('id id)) rest ...)
(if (and (string-prefix? "index-" id)
(worthy-entry? rest))
(vhash-cons (anchor-id->key id)
(string-append (basename file)
"#" id)
vhash)
vhash))
((tag ('@ _ ...) body ...)
(fold loop vhash body))
((tag body ...)
(fold loop vhash body))
(_ vhash)))))
(define (process-html file anchors)
;; Parse FILE and perform syntax highlighting for its Scheme
;; snippets. Install the result to #$output.
@ -444,38 +535,59 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
(define (html? file stat)
(string-suffix? ".html" file))
(define language+node-anchors
(match-lambda
((language files ...)
(cons language
(fold (lambda (file vhash)
(let ((alist (call-with-input-file file read)))
;; Use 'fold-right' so that the first entry
;; wins (e.g., "car" from "Pairs" rather than
;; from "rnrs base" in the Guile manual).
(fold-right (match-lambda*
(((key . value) vhash)
(vhash-cons key value vhash)))
vhash
alist)))
vlist-null
files)))))
(define mono-node-anchors
;; List of language/vhash pairs, where each vhash maps an
;; identifier to the corresponding URL in a single-page manual.
(map language+node-anchors '#$mono-node-indexes))
(define multi-node-anchors
;; Likewise for split-node manuals.
(map language+node-anchors '#$split-node-indexes))
;; Install a UTF-8 locale so we can process UTF-8 files.
(setenv "GUIX_LOCPATH"
#+(file-append glibc-utf8-locales "/lib/locale"))
(setlocale LC_ALL "en_US.utf8")
;; First process the mono-node 'guix.html' files.
(for-each (match-lambda
((language . anchors)
(let ((files (find-files
(string-append #$input "/" language)
"^guix(-cookbook|)(\\.[a-zA-Z_-]+)?\\.html$")))
(n-par-for-each (parallel-job-count)
(lambda (mono)
(let ((anchors (collect-anchors mono)))
(process-html mono anchors)))
(find-files
#$input
"^guix(-cookbook|)(\\.[a-zA-Z_-]+)?\\.html$"))
(cut process-html <> anchors)
files))))
mono-node-anchors)
;; Next process the multi-node HTML files in two phases: (1)
;; collect the list of anchors, and (2) perform
;; syntax-highlighting.
(let* ((multi (find-files #$input "^html_node$"
#:directories? #t))
(anchors (n-par-map (parallel-job-count)
(lambda (multi)
(cons multi
(fold collect-anchors vlist-null
(find-files multi html?))))
multi)))
;; Process the multi-node HTML files.
(for-each (match-lambda
((language . anchors)
(let ((files (find-files
(string-append #$input "/" language
"/html_node")
"\\.html$")))
(n-par-for-each (parallel-job-count)
(lambda (file)
(let ((anchors (assoc-ref anchors (dirname file))))
(process-html file anchors)))
(append-map (lambda (multi)
(find-files multi html?))
multi)))
(cut process-html <> anchors)
files))))
multi-node-anchors)
;; Last, copy non-HTML files as is.
(for-each copy-as-is
@ -486,6 +598,8 @@ its <pre class=\"lisp\"> blocks (as produced by 'makeinfo --html')."
(define* (html-manual source #:key (languages %languages)
(version "0.0")
(manual %manual)
(mono-node-indexes (map list languages))
(split-node-indexes (map list languages))
(date 1)
(options %makeinfo-html-options))
"Return the HTML manuals built from SOURCE for all LANGUAGES, with the given
@ -574,6 +688,8 @@ makeinfo OPTIONS."
(let* ((name (string-append manual "-html-manual"))
(manual (computed-file name build)))
(syntax-highlighted-html manual
#:mono-node-indexes mono-node-indexes
#:split-node-indexes split-node-indexes
#:name (string-append name "-highlighted"))))
(define* (pdf-manual source #:key (languages %languages)
@ -920,6 +1036,8 @@ languages:\n"
#:key (languages %languages)
(version "0.0")
(date (time-second (current-time time-utc)))
(mono-node-indexes (map list %languages))
(split-node-indexes (map list %languages))
(manual %manual))
"Return the union of the HTML and PDF manuals, as well as the indexes."
(directory-union (string-append manual "-manual")
@ -930,7 +1048,12 @@ languages:\n"
#:version version
#:manual manual))
(list html-manual-indexes
html-manual pdf-manual))
(lambda (source . args)
(apply html-manual source
#:mono-node-indexes mono-node-indexes
#:split-node-indexes split-node-indexes
args))
pdf-manual))
#:copy? #t))
(define (latest-commit+date directory)
@ -943,18 +1066,144 @@ commit date (an integer)."
;; TODO: Use (git describe) when it's widely available.
(values (oid->string oid) (commit-time commit))))
;;;
;;; Guile manual.
;;;
(define guile-manual
;; The Guile manual as HTML, including both the mono-node "guile.html" and
;; the split-node "html_node" directory.
(let ((guile guile-3.0-latest))
(computed-file (string-append "guile-manual-" (package-version guile))
(with-imported-modules '((guix build utils))
#~(begin
(use-modules (guix build utils)
(ice-9 match))
(setenv "PATH"
(string-append #+tar "/bin:"
#+xz "/bin:"
#+texinfo "/bin"))
(invoke "tar" "xf" #$(package-source guile))
(mkdir-p (string-append #$output "/en/html_node"))
(let* ((texi (find-files "." "^guile\\.texi$"))
(documentation (match texi
((file) (dirname file)))))
(with-directory-excursion documentation
(invoke "makeinfo" "--html" "--no-split"
"-o" (string-append #$output
"/en/guile.html")
"guile.texi")
(invoke "makeinfo" "--html" "-o" "split"
"guile.texi")
(copy-recursively
"split"
(string-append #$output "/en/html_node")))))))))
(define %guile-manual-base-url
"https://www.gnu.org/software/guile/manual")
(define (for-all-languages index)
(map (lambda (language)
(list language index))
%languages))
(define guile-mono-node-indexes
;; The Guile manual is only available in English so use the same index in
;; all languages.
(for-all-languages
(html-manual-identifier-index (file-append guile-manual "/en")
%guile-manual-base-url
#:name "guile-html-index-en")))
(define guile-split-node-indexes
(for-all-languages
(html-manual-identifier-index (file-append guile-manual "/en/html_node")
(string-append %guile-manual-base-url
"/html_node")
#:name "guile-html-index-en")))
(define (merge-index-alists alist1 alist2)
"Merge ALIST1 and ALIST2, both of which are list of tuples like:
(LANGUAGE INDEX1 INDEX2 ...)
where LANGUAGE is a string like \"en\" and INDEX1 etc. are indexes as returned
by 'html-identifier-indexes'."
(let ((languages (delete-duplicates
(append (match alist1
(((languages . _) ...)
languages))
(match alist2
(((languages . _) ...)
languages))))))
(map (lambda (language)
(cons language
(append (or (assoc-ref alist1 language) '())
(or (assoc-ref alist2 language) '()))))
languages)))
(let* ((root (canonicalize-path
(string-append (current-source-directory) "/..")))
(commit date (latest-commit+date root)))
(commit date (latest-commit+date root))
(version (or (getenv "GUIX_MANUAL_VERSION")
(string-take commit 7)))
(select? (let ((vcs? (git-predicate root)))
(lambda (file stat)
(and (vcs? file stat)
;; Filter out this file.
(not (string=? (basename file) "build.scm"))))))
(source (local-file root "guix" #:recursive? #t
#:select? select?)))
(define guix-manual
(html-manual source
#:manual "guix"
#:version version
#:date date))
(define guix-mono-node-indexes
;; Alist of indexes for GUIX-MANUAL, where each key is a language code and
;; each value is a file-like object containing the identifier index.
(html-identifier-indexes guix-manual ""
#:manual-name "guix"
#:base-url (if (string=? %manual "guix")
(const "")
(cut string-append "/manual/" <>))
#:languages %languages))
(define guix-split-node-indexes
;; Likewise for the split-node variant of GUIX-MANUAL.
(html-identifier-indexes guix-manual "/html_node"
#:manual-name "guix"
#:base-url (if (string=? %manual "guix")
(const "")
(cut string-append "/manual/" <>
"/html_node"))
#:languages %languages))
(define mono-node-indexes
(merge-index-alists guix-mono-node-indexes guile-mono-node-indexes))
(define split-node-indexes
(merge-index-alists guix-split-node-indexes guile-split-node-indexes))
(format (current-error-port)
"building manual from work tree around commit ~a, ~a~%"
commit
(let* ((time (make-time time-utc 0 date))
(date (time-utc->date time)))
(date->string date "~e ~B ~Y")))
(pdf+html-manual (local-file root "guix" #:recursive? #t
#:select? (git-predicate root))
#:version (or (getenv "GUIX_MANUAL_VERSION")
(string-take commit 7))
(pdf+html-manual source
;; Always use the identifier indexes of GUIX-MANUAL and
;; GUILE-MANUAL. Both "guix" and "guix-cookbook" can
;; contain links to definitions that appear in either of
;; these two manuals.
#:mono-node-indexes mono-node-indexes
#:split-node-indexes split-node-indexes
#:version version
#:date date))

View File

@ -128,8 +128,9 @@ REPL.
@item
Scheme syntax boils down to a tree of expressions (or @emph{s-expression} in
Lisp lingo). An expression can be a literal such as numbers and strings, or a
compound which is a parenthesized list of compounds and literals. @code{#t}
and @code{#f} stand for the Booleans ``true'' and ``false'', respectively.
compound which is a parenthesized list of compounds and literals. @code{#true}
and @code{#false} (abbreviated @code{#t} and @code{#f}) stand for the
Booleans ``true'' and ``false'', respectively.
Examples of valid expressions:
@ -249,8 +250,10 @@ definitions.
@end lisp
@item
The keyword syntax is @code{#:}; it is used to create unique identifiers.
@pxref{Keywords,,, guile, GNU Guile Reference Manual}.
@dfn{Keywords} are typically used to identify the named parameters of a
procedure. They are prefixed by @code{#:} (hash, colon) followed by
alphanumeric characters: @code{#:like-this}.
@xref{Keywords,,, guile, GNU Guile Reference Manual}.
@item
The percentage @code{%} is typically used for read-only global variables in
@ -791,11 +794,11 @@ another, more sophisticated package (slightly modified from the source):
(snippet '(begin
;; Remove bundled software.
(delete-file-recursively "deps")
#t))))
#true))))
(build-system cmake-build-system)
(outputs '("out" "debug"))
(arguments
`(#:tests? #t ; Run the test suite (this is the default)
`(#:tests? #true ; Run the test suite (this is the default)
#:configure-flags '("-DUSE_SHA1DC=ON") ; SHA-1 collision detection
#:phases
(modify-phases %standard-phases
@ -806,7 +809,7 @@ another, more sophisticated package (slightly modified from the source):
(substitute* "tests/clar/fs.h"
(("/bin/cp") (which "cp"))
(("/bin/rm") (which "rm")))
#t))
#true))
;; Run checks more verbosely.
(replace 'check
(lambda _ (invoke "./libgit2_clar" "-v" "-Q")))
@ -1029,7 +1032,7 @@ If you want to know more about what happens during those phases, consult the
associated procedures.
For instance, as of this writing the definition of @code{unpack} for the GNU build
system is
system is:
@lisp
(define* (unpack #:key source #:allow-other-keys)
@ -1044,13 +1047,13 @@ working directory."
;; Preserve timestamps (set to the Epoch) on the copied tree so that
;; things work deterministically.
(copy-recursively source "."
#:keep-mtime? #t))
#:keep-mtime? #true))
(begin
(if (string-suffix? ".zip" source)
(invoke "unzip" source)
(invoke "tar" "xvf" source))
(chdir (first-subdirectory "."))))
#t)
#true)
@end lisp
Note the @code{chdir} call: it changes the working directory to where the source was
@ -1066,16 +1069,16 @@ the following forms:
@itemize
@item
@code{(add-before PHASE NEW-PHASE PROCEDURE)}: Run @code{PROCEDURE} named @code{NEW-PHASE} before @code{PHASE}.
@code{(add-before @var{phase} @var{new-phase} @var{procedure})}: Run @var{procedure} named @var{new-phase} before @var{phase}.
@item
@code{(add-after PHASE NEW-PHASE PROCEDURE)}: Same, but afterwards.
@code{(add-after @var{phase} @var{new-phase} @var{procedure})}: Same, but afterwards.
@item
@code{(replace PHASE PROCEDURE)}.
@code{(replace @var{phase} @var{procedure})}.
@item
@code{(delete PHASE)}.
@code{(delete @var{phase})}.
@end itemize
The @code{PROCEDURE} supports the keyword arguments @code{inputs} and @code{outputs}. Each
The @var{procedure} supports the keyword arguments @code{inputs} and @code{outputs}. Each
input (whether @emph{native}, @emph{propagated} or not) and output directory is referenced
by their name in those variables. Thus @code{(assoc-ref outputs "out")} is the store
directory of the main output of the package. A phase procedure may look like
@ -1083,16 +1086,16 @@ this:
@lisp
(lambda* (#:key inputs outputs #:allow-other-keys)
(let (((bash-directory (assoc-ref inputs "bash"))
(let ((bash-directory (assoc-ref inputs "bash"))
(output-directory (assoc-ref outputs "out"))
(doc-directory (assoc-ref outputs "doc"))
; ...
#t)
(doc-directory (assoc-ref outputs "doc")))
;; ...
#true))
@end lisp
The procedure must return @code{#t} on success. It's brittle to rely on the return
The procedure must return @code{#true} on success. It's brittle to rely on the return
value of the last expression used to tweak the phase because there is no
guarantee it would be a @code{#t}. Hence the trailing @code{#t} to ensure the right value
guarantee it would be a @code{#true}. Hence the trailing @code{#true} to ensure the right value
is returned on success.
@subsubsection Code staging
@ -1118,7 +1121,7 @@ Some of those functions can be found in
@samp{$GUIX_CHECKOUT/guix/guix/build/utils.scm}. Most of them mirror the behaviour
of the traditional Unix system commands:
@table @asis
@table @code
@item which
Like the @samp{which} system command.
@item find-files
@ -1142,6 +1145,9 @@ then restore the previous working directory.
A ``@command{sed}-like'' function.
@end table
@xref{Build Utilities,,, guix, GNU Guix Reference Manual}, for more
information on these utilities.
@subsubsection Module prefix
The license in our last example needs a prefix: this is because of how the
@ -1352,6 +1358,7 @@ reference.
* Running Guix on a Linode Server:: Running Guix on a Linode Server
* Setting up a bind mount:: Setting up a bind mount in the file-systems definition.
* Getting substitutes from Tor:: Configuring Guix daemon to get substitutes through Tor.
* Setting up NGINX with Lua:: Configuring NGINX web-server to load Lua modules.
@end menu
@node Customizing the Kernel
@ -1384,8 +1391,8 @@ creates a package.
#:key
;; A function that takes an arch and a variant.
;; See kernel-config for an example.
(extra-version #f)
(configuration-file #f)
(extra-version #false)
(configuration-file #false)
(defconfig "defconfig")
(extra-options %default-extra-linux-options)
(patches (list %boot-logo-patch)))
@ -1428,7 +1435,7 @@ the @code{make-linux-libre} package definition:
(begin
(copy-file config ".config")
(chmod ".config" #o666))
(invoke "make" ,defconfig))
(invoke "make" ,defconfig)))
@end lisp
Below is a sample kernel package. The @code{linux-libre} package is nothing
@ -1459,7 +1466,7 @@ it:
@lisp
(define %default-extra-linux-options
`(;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html
("CONFIG_DEVPTS_MULTIPLE_INSTANCES" . #t)
("CONFIG_DEVPTS_MULTIPLE_INSTANCES" . #true)
;; Modules required for initrd:
("CONFIG_NET_9P" . m)
("CONFIG_NET_9P_VIRTIO" . m)
@ -1476,9 +1483,9 @@ it:
(string-join (map (match-lambda
((option . 'm)
(string-append option "=m"))
((option . #t)
((option . #true)
(string-append option "=y"))
((option . #f)
((option . #false)
(string-append option "=n")))
options)
"\n"))
@ -1494,7 +1501,7 @@ And in the custom configure script from the `make-linux-libre` package:
(display extra-configuration port)
(close-port port))
(invoke "make" "oldconfig"))))
(invoke "make" "oldconfig")
@end lisp
So by not providing a configuration-file the @file{.config} starts blank, and
@ -1865,7 +1872,7 @@ is below. Save the resulting file as @file{guix-config.scm}.
(bootloader
(bootloader
(inherit grub-bootloader)
(installer #~(const #t))))))
(installer #~(const #true))))))
(file-systems (cons (file-system
(device "/dev/sda")
(mount-point "/")
@ -1897,7 +1904,7 @@ is below. Save the resulting file as @file{guix-config.scm}.
(service openssh-service-type
(openssh-configuration
(openssh openssh-sans-x)
(password-authentication? #f)
(password-authentication? #false)
(authorized-keys
`(("janedoe" ,(local-file "janedoe_rsa.pub"))
("root" ,(local-file "janedoe_rsa.pub"))))))
@ -2113,6 +2120,63 @@ sudo herd set-http-proxy guix-daemon http://localhost:9250
guix build --substitute-urls=https://bp7o7ckwlewr4slm.onion …
@end example
@node Setting up NGINX with Lua
@section Setting up NGINX with Lua
@cindex nginx, lua, openresty, resty
NGINX could be extended with Lua scripts.
Guix provides NGINX service with ability to load Lua module and specific
Lua packages, and reply to requests by evaluating Lua scripts.
The following example demonstrates system definition with configuration
to evaluate @file{index.lua} Lua script on HTTP request to
@uref{http://localhost/hello} endpoint:
@example
local shell = require "resty.shell"
local stdin = ""
local timeout = 1000 -- ms
local max_size = 4096 -- byte
local ok, stdout, stderr, reason, status =
shell.run([[/run/current-system/profile/bin/ls /tmp]], stdin, timeout, max_size)
ngx.say(stdout)
@end example
@lisp
(use-modules (gnu))
(use-service-modules #;… web)
(use-package-modules #;… lua)
(operating-system
;; …
(services
;; …
(service nginx-service-type
(nginx-configuration
(modules
(list
(file-append nginx-lua-module "/etc/nginx/modules/ngx_http_lua_module.so")))
(lua-package-path (list lua-resty-core
lua-resty-lrucache
lua-resty-signal
lua-tablepool
lua-resty-shell))
(lua-package-cpath (list lua-resty-signal))
(server-blocks
(list (nginx-server-configuration
(server-name '("localhost"))
(listen '("80"))
(root "/etc")
(locations (list
(nginx-location-configuration
(uri "/hello")
(body (list #~(format #f "content_by_lua_file ~s;"
#$(local-file "index.lua"))))))))))))))
@end lisp
@c *********************************************************************
@node Advanced package management
@chapter Advanced package management

View File

@ -252,6 +252,7 @@ Programming Interface
* Package Modules:: Packages from the programmer's viewpoint.
* Defining Packages:: Defining new packages.
* Build Systems:: Specifying how packages are built.
* Build Utilities:: Helpers for your package definitions and more.
* The Store:: Manipulating the package store.
* Derivations:: Low-level interface to package derivations.
* The Store Monad:: Purely functional interface to the store.
@ -477,10 +478,10 @@ Packages are currently available on the following platforms:
@table @code
@item x86_64-linux
Intel/AMD @code{x86_64} architecture, Linux-Libre kernel;
Intel/AMD @code{x86_64} architecture, Linux-Libre kernel.
@item i686-linux
Intel 32-bit architecture (IA32), Linux-Libre kernel;
Intel 32-bit architecture (IA32), Linux-Libre kernel.
@item armhf-linux
ARMv7-A architecture with hard float, Thumb-2 and NEON,
@ -490,6 +491,16 @@ and Linux-Libre kernel.
@item aarch64-linux
little-endian 64-bit ARMv8-A processors, Linux-Libre kernel.
@item i586-gnu
@uref{https://hurd.gnu.org, GNU/Hurd} on the Intel 32-bit architecture
(IA32).
This configuration is experimental and under development. The easiest
way for you to give it a try is by setting up an instance of
@code{hurd-vm-service-type} on your GNU/Linux machine
(@pxref{transparent-emulation-qemu, @code{hurd-vm-service-type}}).
@xref{Contributing}, on how to help!
@item mips64el-linux (deprecated)
little-endian 64-bit MIPS processors, specifically the Loongson series,
n32 ABI, and Linux-Libre kernel. This configuration is no longer fully
@ -1077,8 +1088,9 @@ is requested, for instance via @code{guix build}, the daemon attempts to
offload it to one of the machines that satisfy the constraints of the
derivation, in particular its system types---e.g., @code{x86_64-linux}.
A single machine can have multiple system types, either because its
architecture natively supports it, via emulation (@pxref{Transparent
Emulation with QEMU}), or both. Missing prerequisites for the build are
architecture natively supports it, via emulation
(@pxref{transparent-emulation-qemu, Transparent Emulation with QEMU}),
or both. Missing prerequisites for the build are
copied over SSH to the target machine, which then proceeds with the
build; upon success the output(s) of the build are copied back to the
initial machine. The offload facility comes with a basic scheduler that
@ -5824,7 +5836,7 @@ direct syscalls are not intercepted either, leading to erratic behavior.
@vindex GUIX_EXECUTION_ENGINE
When running a wrapped program, you can explicitly request one of the
execution engines listed above by setting the
@code{GUIX_EXECUTION_ENGINE} environment variable accordingly.
@env{GUIX_EXECUTION_ENGINE} environment variable accordingly.
@end quotation
@cindex entry point, for Docker images
@ -6074,6 +6086,7 @@ package definitions.
* Package Modules:: Packages from the programmer's viewpoint.
* Defining Packages:: Defining new packages.
* Build Systems:: Specifying how packages are built.
* Build Utilities:: Helpers for your package definitions and more.
* The Store:: Manipulating the package store.
* Derivations:: Low-level interface to package derivations.
* The Store Monad:: Purely functional interface to the store.
@ -6230,6 +6243,10 @@ represents the familiar GNU Build System, where packages may be
configured, built, and installed with the usual @code{./configure &&
make && make check && make install} command sequence.
When you start packaging non-trivial software, you may need tools to
manipulate those build phases, manipulate files, and so on. @xref{Build
Utilities}, for more on this.
@item
The @code{arguments} field specifies options for the build system
(@pxref{Build Systems}). Here it is interpreted by
@ -6805,7 +6822,8 @@ The list of phases used for a particular package can be changed with the
@end example
means that all the phases described above will be used, except the
@code{configure} phase.
@code{configure} phase. @xref{Build Utilities}, for more info on
@code{modify-phases} and build phases in general.
In addition, this build system ensures that the ``standard'' environment
for GNU packages is available. This includes tools such as GCC, libc,
@ -6940,8 +6958,8 @@ In its @code{configure} phase, this build system will make any source inputs
specified in the @code{#:cargo-inputs} and @code{#:cargo-development-inputs}
parameters available to cargo. It will also remove an included
@code{Cargo.lock} file to be recreated by @code{cargo} during the
@code{build} phase. The @code{install} phase installs any crate the binaries
if they are defined by the crate.
@code{build} phase. The @code{install} phase installs the binaries
defined by the crate.
@end defvr
@ -7187,7 +7205,7 @@ implements the build procedure used by @uref{https://julialang.org/,
julia} packages, which essentially is similar to running @samp{julia -e
'using Pkg; Pkg.add(package)'} in an environment where
@env{JULIA_LOAD_PATH} contains the paths to all Julia package inputs.
Tests are run not run.
Tests are run with @code{Pkg.test}.
Julia packages require the source @code{file-name} to be the real name of the
package, correctly capitalized.
@ -7632,6 +7650,294 @@ with @code{build-expression->derivation} (@pxref{Derivations,
@code{build-expression->derivation}}).
@end defvr
@node Build Utilities
@section Build Utilities
As soon as you start writing non-trivial package definitions
(@pxref{Defining Packages}) or other build actions
(@pxref{G-Expressions}), you will likely start looking for helpers for
``shell-like'' actions---creating directories, copying and deleting
files recursively, manipulating build phases, and so on. The
@code{(guix build utils)} module provides such utility procedures.
Most build systems load @code{(guix build utils)} (@pxref{Build
Systems}). Thus, when writing custom build phases for your package
definitions, you can usually assume those procedures are in scope.
When writing G-expressions, you can import @code{(guix build utils)} on
the ``build side'' using @code{with-imported-modules} and then put it in
scope with the @code{use-modules} form (@pxref{Using Guile Modules,,,
guile, GNU Guile Reference Manual}):
@lisp
(with-imported-modules '((guix build utils)) ;import it
(computed-file "empty-tree"
#~(begin
;; Put it in scope.
(use-modules (guix build utils))
;; Happily use its 'mkdir-p' procedure.
(mkdir-p (string-append #$output "/a/b/c")))))
@end lisp
The remainder of this section is the reference for most of the utility
procedures provided by @code{(guix build utils)}.
@c TODO Document what's missing.
@subsection Dealing with Store File Names
This section documents procedures that deal with store file names.
@deffn {Scheme Procedure} %store-directory
Return the directory name of the store.
@end deffn
@deffn {Scheme Procedure} store-file-name? @var{file}
Return true if @var{file} is in the store.
@end deffn
@deffn {Scheme Procedure} strip-store-file-name @var{file}
Strip the @file{/gnu/store} and hash from @var{file}, a store file name.
The result is typically a @code{"@var{package}-@var{version}"} string.
@end deffn
@deffn {Scheme Procedure} package-name->name+version @var{name}
Given @var{name}, a package name like @code{"foo-0.9.1b"}, return two
values: @code{"foo"} and @code{"0.9.1b"}. When the version part is
unavailable, @var{name} and @code{#f} are returned. The first hyphen
followed by a digit is considered to introduce the version part.
@end deffn
@subsection File Types
The procedures below deal with files and file types.
@deffn {Scheme Procedure} directory-exists? @var{dir}
Return @code{#t} if @var{dir} exists and is a directory.
@end deffn
@deffn {Scheme Procedure} executable-file? @var{file}
Return @code{#t} if @var{file} exists and is executable.
@end deffn
@deffn {Scheme Procedure} symbolic-link? @var{file}
Return @code{#t} if @var{file} is a symbolic link (aka. a ``symlink'').
@end deffn
@deffn {Scheme Procedure} elf-file? @var{file}
@deffnx {Scheme Procedure} ar-file? @var{file}
@deffnx {Scheme Procedure} gzip-file? @var{file}
Return @code{#t} if @var{file} is, respectively, an ELF file, an
@code{ar} archive (such as a @file{.a} static library), or a gzip file.
@end deffn
@deffn {Scheme Procedure} reset-gzip-timestamp @var{file} [#:keep-mtime? #t]
If @var{file} is a gzip file, reset its embedded timestamp (as with
@command{gzip --no-name}) and return true. Otherwise return @code{#f}.
When @var{keep-mtime?} is true, preserve @var{file}'s modification time.
@end deffn
@subsection File Manipulation
The following procedures and macros help create, modify, and delete
files. They provide functionality comparable to common shell utilities
such as @command{mkdir -p}, @command{cp -r}, @command{rm -r}, and
@command{sed}. They complement Guile's extensive, but low-level, file
system interface (@pxref{POSIX,,, guile, GNU Guile Reference Manual}).
@deffn {Scheme Syntax} with-directory-excursion @var{directory} @var{body}@dots{}
Run @var{body} with @var{directory} as the process's current directory.
Essentially, this macro changes the current directory to @var{directory}
before evaluating @var{body}, using @code{chdir} (@pxref{Processes,,,
guile, GNU Guile Reference Manual}). It changes back to the initial
directory when the dynamic extent of @var{body} is left, be it @i{via}
normal procedure return or @i{via} a non-local exit such as an
exception.
@end deffn
@deffn {Scheme Procedure} mkdir-p @var{dir}
Create directory @var{dir} and all its ancestors.
@end deffn
@deffn {Scheme Procedure} install-file @var{file} @var{directory}
Create @var{directory} if it does not exist and copy @var{file} in there
under the same name.
@end deffn
@deffn {Scheme Procedure} make-file-writable @var{file}
Make @var{file} writable for its owner.
@end deffn
@deffn {Scheme Procedure} copy-recursively @var{source} @var{destination} @
[#:log (current-output-port)] [#:follow-symlinks? #f] [#:keep-mtime? #f]
Copy @var{source} directory to @var{destination}. Follow symlinks if
@var{follow-symlinks?} is true; otherwise, just preserve them. When
@var{keep-mtime?} is true, keep the modification time of the files in
@var{source} on those of @var{destination}. Write verbose output to the
@var{log} port.
@end deffn
@deffn {Scheme Procedure} delete-file-recursively @var{dir} @
[#:follow-mounts? #f]
Delete @var{dir} recursively, like @command{rm -rf}, without following
symlinks. Don't follow mount points either, unless @var{follow-mounts?}
is true. Report but ignore errors.
@end deffn
@deffn {Scheme Syntax} substitute* @var{file} @
((@var{regexp} @var{match-var}@dots{}) @var{body}@dots{}) @dots{}
Substitute @var{regexp} in @var{file} by the string returned by
@var{body}. @var{body} is evaluated with each @var{match-var} bound to
the corresponding positional regexp sub-expression. For example:
@lisp
(substitute* file
(("hello")
"good morning\n")
(("foo([a-z]+)bar(.*)$" all letters end)
(string-append "baz" letter end)))
@end lisp
Here, anytime a line of @var{file} contains @code{hello}, it is replaced
by @code{good morning}. Anytime a line of @var{file} matches the second
regexp, @code{all} is bound to the complete match, @code{letters} is bound
to the first sub-expression, and @code{end} is bound to the last one.
When one of the @var{match-var} is @code{_}, no variable is bound to the
corresponding match substring.
Alternatively, @var{file} may be a list of file names, in which case
they are all subject to the substitutions.
Be careful about using @code{$} to match the end of a line; by itself it
won't match the terminating newline of a line.
@end deffn
@subsection File Search
@cindex file, searching
This section documents procedures to search and filter files.
@deffn {Scheme Procedure} file-name-predicate @var{regexp}
Return a predicate that returns true when passed a file name whose base
name matches @var{regexp}.
@end deffn
@deffn {Scheme Procedure} find-files @var{dir} [@var{pred}] @
[#:stat lstat] [#:directories? #f] [#:fail-on-error? #f]
Return the lexicographically sorted list of files under @var{dir} for
which @var{pred} returns true. @var{pred} is passed two arguments: the
absolute file name, and its stat buffer; the default predicate always
returns true. @var{pred} can also be a regular expression, in which
case it is equivalent to @code{(file-name-predicate @var{pred})}.
@var{stat} is used to obtain file information; using @code{lstat} means
that symlinks are not followed. If @var{directories?} is true, then
directories will also be included. If @var{fail-on-error?} is true,
raise an exception upon error.
@end deffn
Here are a few examples where we assume that the current directory is
the root of the Guix source tree:
@lisp
;; List all the regular files in the current directory.
(find-files ".")
@result{} ("./.dir-locals.el" "./.gitignore" @dots{})
;; List all the .scm files under gnu/services.
(find-files "gnu/services" "\\.scm$")
@result{} ("gnu/services/admin.scm" "gnu/services/audio.scm" @dots{})
;; List ar files in the current directory.
(find-files "." (lambda (file stat) (ar-file? file)))
@result{} ("./libformat.a" "./libstore.a" @dots{})
@end lisp
@deffn {Scheme Procedure} which @var{program}
Return the complete file name for @var{program} as found in
@code{$PATH}, or @code{#f} if @var{program} could not be found.
@end deffn
@subsection Build Phases
@cindex build phases
The @code{(guix build utils)} also contains tools to manipulate
@dfn{build phases} as found in @code{gnu-build-system} and in fact most
build systems (@pxref{Build Systems}). Build phases are represented as
association lists or ``alists'' (@pxref{Association Lists,,, guile, GNU
Guile Reference Manual}) where each key is a symbol for the name of the
phase, and the associated value is a procedure that accepts an arbitrary
number of arguments.
Guile core and the @code{(srfi srfi-1)} module both provide tools to
manipulate alists. The @code{(guix build utils)} module complements
those with tools written with build phases in mind.
@cindex build phases, modifying
@deffn {Scheme Syntax} modify-phases @var{phases} @var{clause}@dots{}
Modify @var{phases} sequentially as per each @var{clause}, which may
have one of the following forms:
@lisp
(delete @var{old-phase-name})
(replace @var{old-phase-name} @var{new-phase})
(add-before @var{old-phase-name} @var{new-phase-name} @var{new-phase})
(add-after @var{old-phase-name} @var{new-phase-name} @var{new-phase})
@end lisp
Where every @var{phase-name} above is an expression evaluating to a
symbol, and @var{new-phase} an expression evaluating to a procedure.
@end deffn
The example below is taken from the definition of the @code{grep}
package. It adds a phase to run after the @code{install} phase, called
@code{fix-egrep-and-fgrep}. That phase is a procedure (@code{lambda*}
is for anonymous procedures) that takes a @code{#:outputs} keyword
argument and ignores extra keyword arguments (@pxref{Optional
Arguments,,, guile, GNU Guile Reference Manual}, for more on
@code{lambda*} and optional and keyword arguments.) The phase uses
@code{substitute*} to modify the installed @file{egrep} and @file{fgrep}
scripts so that they refer to @code{grep} by its absolute file name:
@lisp
(modify-phases %standard-phases
(add-after 'install 'fix-egrep-and-fgrep
;; Patch 'egrep' and 'fgrep' to execute 'grep' via its
;; absolute file name instead of searching for it in $PATH.
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(substitute* (list (string-append bin "/egrep")
(string-append bin "/fgrep"))
(("^exec grep")
(string-append "exec " bin "/grep")))
#t))))
@end lisp
In the example below, phases are modified in two ways: the standard
@code{configure} phase is deleted, presumably because the package does
not have a @file{configure} script or anything similar, and the default
@code{install} phase is replaced by one that manually copies the
executable files to be installed:
@lisp
(modify-phases %standard-phases
(delete 'configure) ;no 'configure' script
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
;; The package's Makefile doesn't provide an "install"
;; rule so do it by ourselves.
(let ((bin (string-append (assoc-ref outputs "out")
"/bin")))
(install-file "footswitch" bin)
(install-file "scythe" bin)
#t))))
@end lisp
@c TODO: Add more examples.
@node The Store
@section The Store
@ -10091,7 +10397,7 @@ package expressions for all those packages that are not yet in Guix.
When @option{--archive=bioconductor} is added, metadata is imported from
@uref{https://www.bioconductor.org/, Bioconductor}, a repository of R
packages for for the analysis and comprehension of high-throughput
packages for the analysis and comprehension of high-throughput
genomic data in bioinformatics.
Information is extracted from the @file{DESCRIPTION} file contained in the
@ -17838,10 +18144,10 @@ List of settings to set in @file{daemon.conf}, formatted just like
@var{client-conf}.
@item @var{script-file} (default: @code{(file-append pulseaudio "/etc/pulse/default.pa")})
Script file to use as as @file{default.pa}.
Script file to use as @file{default.pa}.
@item @var{system-script-file} (default: @code{(file-append pulseaudio "/etc/pulse/system.pa")})
Script file to use as as @file{system.pa}.
Script file to use as @file{system.pa}.
@end table
@end deftp
@ -21970,7 +22276,29 @@ names of loadable modules, as in this example:
(modules
(list
(file-append nginx-accept-language-module "\
/etc/nginx/modules/ngx_http_accept_language_module.so")))
/etc/nginx/modules/ngx_http_accept_language_module.so")
(file-append nginx-lua-module "\
/etc/nginx/modules/ngx_http_lua_module.so")))
@end lisp
@item @code{lua-package-path} (default: @code{'()})
List of nginx lua packages to load. This should be a list of package
names of loadable lua modules, as in this example:
@lisp
(lua-package-path (list lua-resty-core
lua-resty-lrucache
lua-resty-signal
lua-tablepool
lua-resty-shell))
@end lisp
@item @code{lua-package-cpath} (default: @code{'()})
List of nginx lua C packages to load. This should be a list of package
names of loadable lua C modules, as in this example:
@lisp
(lua-package-cpath (list lua-resty-signal))
@end lisp
@item @code{global-directives} (default: @code{'((events . ()))})
@ -22973,7 +23301,7 @@ This type has the following parameters:
@table @asis
@item @code{id} (default: @code{""})
An identifier for ether configuration fields to refer to this key. IDs must be
An identifier for other configuration fields to refer to this key. IDs must be
unique and must not be empty.
@item @code{address} (default: @code{'()})
@ -24964,7 +25292,7 @@ mixer, the @code{null} mixer (allows setting the volume, but with no
effect; this can be used as a trick to implement an external mixer
External Mixer) or no mixer (@code{none}).
@item @code{extra-options} (default: @code{'()"})
@item @code{extra-options} (default: @code{'()})
An association list of option symbols to string values to be appended to
the audio output configuration.
@ -24989,13 +25317,14 @@ an HTTP audio streaming output.
@node Virtualization Services
@subsection Virtualization services
@subsection Virtualization Services
The @code{(gnu services virtualization)} module provides services for
the libvirt and virtlog daemons, as well as other virtualization-related
services.
@subsubheading Libvirt daemon
@code{libvirtd} is the server side daemon component of the libvirt
virtualization management system. This daemon runs on host servers
and performs required management tasks for virtualized guests.
@ -25022,7 +25351,7 @@ Libvirt package.
@deftypevr {@code{libvirt-configuration} parameter} boolean listen-tls?
Flag listening for secure TLS connections on the public TCP/IP port.
must set @code{listen} for this to have any effect.
You must set @code{listen} for this to have any effect.
It is necessary to setup a CA and issue server certificates before using
this capability.
@ -25032,28 +25361,28 @@ Defaults to @samp{#t}.
@end deftypevr
@deftypevr {@code{libvirt-configuration} parameter} boolean listen-tcp?
Listen for unencrypted TCP connections on the public TCP/IP port. must
Listen for unencrypted TCP connections on the public TCP/IP port. You must
set @code{listen} for this to have any effect.
Using the TCP socket requires SASL authentication by default. Only SASL
mechanisms which support data encryption are allowed. This is
DIGEST_MD5 and GSSAPI (Kerberos5)
DIGEST_MD5 and GSSAPI (Kerberos5).
Defaults to @samp{#f}.
@end deftypevr
@deftypevr {@code{libvirt-configuration} parameter} string tls-port
Port for accepting secure TLS connections This can be a port number, or
service name
Port for accepting secure TLS connections. This can be a port number,
or service name.
Defaults to @samp{"16514"}.
@end deftypevr
@deftypevr {@code{libvirt-configuration} parameter} string tcp-port
Port for accepting insecure TCP connections This can be a port number,
or service name
Port for accepting insecure TCP connections. This can be a port number,
or service name.
Defaults to @samp{"16509"}.
@ -25365,7 +25694,7 @@ Defaults to @samp{3}.
Logging filters.
A filter allows to select a different logging level for a given category
of logs The format for a filter is one of:
of logs. The format for a filter is one of:
@itemize @bullet
@item
@ -25696,7 +26025,8 @@ Maximum number of backup files to keep.
Defaults to @samp{3}
@end deftypevr
@node Transparent Emulation with QEMU
@anchor{transparent-emulation-qemu}
@subsubheading Transparent Emulation with QEMU
@cindex emulation
@ -25895,7 +26225,7 @@ By default, it produces
with forwarded ports:
@example
@var{ssh-port}: @code{(+ 11004 (* 1000 @var{ID}))}
@var{secrets-port}: @code{(+ 11004 (* 1000 @var{ID}))}
@var{ssh-port}: @code{(+ 10022 (* 1000 @var{ID}))}
@var{vnc-port}: @code{(+ 15900 (* 1000 @var{ID}))}
@end example
@ -26540,7 +26870,7 @@ When true, the daemon performs additional logging for debugging purposes.
@defvr {Scheme Variable} ganeti-watcher-service-type
@command{ganeti-watcher} is a script designed to run periodically and ensure
the health of a cluster. It will automatically restart instances that have
stopped without Ganetis consent, and repairs DRBD links in case a node has
stopped without Ganeti's consent, and repairs DRBD links in case a node has
rebooted. It also archives old cluster jobs and restarts Ganeti daemons
that are not running. If the cluster parameter @code{ensure_node_health}
is set, the watcher will also shutdown instances and DRBD devices if the
@ -27977,7 +28307,7 @@ allocation plan in the database.
@item @code{hooks} (default: @var{'()})
An association list of hooks. These provide a way to execute arbitrary
code upon certian events, like a build result being processed.
code upon certain events, like a build result being processed.
@item @code{guile} (default: @code{guile-3.0-latest})
The Guile package with which to run the Guix Build Coordinator.
@ -28254,22 +28584,22 @@ This is the data type representing the configuration for the zram-device
service.
@table @asis
@item @code{size} (default @var{"1G"})
@item @code{size} (default @code{"1G"})
This is the amount of space you wish to provide for the zram device. It
accepts a string and can be a number of bytes or use a suffix, eg.:
@var{"512M"} or @var{1024000}.
@item @code{compression-algorithm} (default @var{'lzo})
@code{"512M"} or @code{1024000}.
@item @code{compression-algorithm} (default @code{'lzo})
This is the compression algorithm you wish to use. It is difficult to
list all the possible compression options, but common ones supported by
Guix's Linux Libre Kernel include @var{'lzo}, @var{'lz4} and @var{'zstd}.
@item @code{memory-limit} (default @var{0})
Guix's Linux Libre Kernel include @code{'lzo}, @code{'lz4} and @code{'zstd}.
@item @code{memory-limit} (default @code{0})
This is the maximum amount of memory which the zram device can use.
Setting it to '0' disables the limit. While it is generally expected
that compression will be 2:1, it is possible that uncompressable data
can be written to swap and this is a method to limit how much memory can
be used. It accepts a string and can be a number of bytes or use a
suffix, eg.: @var{"2G"}.
@item @code{priority} (default @var{-1})
suffix, eg.: @code{"2G"}.
@item @code{priority} (default @code{-1})
This is the priority of the swap device created from the zram device.
@code{swapon} accepts values between -1 and 32767, with higher values
indicating higher priority. Higher priority swap will generally be used
@ -28682,7 +29012,7 @@ The @code{(gnu services science)} module provides the following service.
@defvr {Scheme Variable} rshiny-service-type
This is a type of service which is used to run a webapp created with
@code{r-shiny}. This service sets the @code{R_LIBS_USER} environment
@code{r-shiny}. This service sets the @env{R_LIBS_USER} environment
variable and runs the provided script to call @code{runApp}.
@deftp {Data Type} rshiny-configuration
@ -29477,7 +29807,7 @@ Data type representing the configuration of the GRUB theme.
@table @asis
@item @code{gfxmode} (default: @code{'("auto")})
The GRUB @code{gfxmode} to set (a list of screen resolution strings, see
The GRUB @code{gfxmode} to set (a list of screen resolution strings,
@pxref{gfxmode,,, grub, GNU GRUB manual}).
@end table
@end deftp

View File

@ -5,6 +5,7 @@
# Copyright © 2018 Efraim Flashner <efraim@flashner.co.il>
# Copyright © 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
# Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
# Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
#
# This file is part of GNU Guix.
#
@ -54,6 +55,7 @@ REQUIRE=(
PAS=$'[ \033[32;1mPASS\033[0m ] '
ERR=$'[ \033[31;1mFAIL\033[0m ] '
WAR=$'[ \033[33;1mWARN\033[0m ] '
INF="[ INFO ] "
DEBUG=0
@ -199,6 +201,19 @@ chk_sys_arch()
ARCH_OS="${arch}-${os}"
}
chk_sys_nscd()
{ # Check if nscd is up and suggest to start it or install it
if [ "$(type -P pidof)" ]; then
if [ ! "$(pidof nscd)" ]; then
_msg "${WAR}We recommend installing and/or starting your distribution 'nscd' service"
_msg "${WAR}Please read 'info guix \"Application Setup\"' about \"Name Service Switch\""
fi
else
_msg "${INF}We cannot determine if your distribution 'nscd' service is running"
_msg "${INF}Please read 'info guix \"Application Setup\"' about \"Name Service Switch\""
fi
}
# ------------------------------------------------------------------------------
#+MAIN
@ -459,6 +474,26 @@ export XDG_DATA_DIRS="$GUIX_PROFILE/share:${XDG_DATA_DIRS:-/usr/local/share/:/us
EOF
}
sys_create_shell_completion()
{ # Symlink supported shell completions system-wide
var_guix=/var/guix/profiles/per-user/root/current-guix
bash_completion=/etc/bash_completion.d
zsh_completion=/usr/share/zsh/site-functions
fish_completion=/usr/share/fish/vendor_completions.d
{ # Just in case
for dir_shell in $bash_completion $zsh_completion $fish_completion; do
[ -d "$dir_shell" ] || mkdir -p $dir_shell
done;
ln -sf ${var_guix}/etc/bash_completion.d/* "$bash_completion";
ln -sf ${var_guix}/share/zsh/site-functions/* "$zsh_completion";
ln -sf ${var_guix}/share/fish/vendor_completions.d/* "$fish_completion"; } &&
_msg "${PAS}installed shell completion"
}
welcome()
{
cat<<"EOF"
@ -502,6 +537,7 @@ main()
chk_gpg_keyring
chk_init_sys
chk_sys_arch
chk_sys_nscd
_msg "${INF}system is ${ARCH_OS}"
@ -516,6 +552,7 @@ main()
sys_enable_guix_daemon
sys_authorize_build_farms
sys_create_init_profile
sys_create_shell_completion
_msg "${INF}cleaning up ${tmp_path}"
rm -r "${tmp_path}"

View File

@ -20,6 +20,7 @@
(entry (commit "abd7a474615353149a44f4504f0b4b248dcc0716")
(title (en "New @option{--with-c-toolchain} package transformation option")
(de "Neue Paketumwandlungsoption @option{--with-c-toolchain}")
(fr "Nouvelle option de transformation @option{--with-c-toolchain}"))
(body
(en "The new @option{--with-c-toolchain} package transformation
@ -38,6 +39,24 @@ guix build octave-cli \\
@end example
Run @command{info \"(guix) Package Transformation Options\"} for more info.")
(de "Die neue Paketumwandlungsoption @option{--with-c-toolchain}
bietet Entwicklern die Möglichkeit, leicht ihre Lieblingspakete mit der
selbstgewählten Toolchain für C/C++ anstelle der vorgegebenen neu zu
erstellen.
Zum Beispiel werden mit folgendem Befehl die Pakete @code{fftw} und
@code{fftwf} sowie alle davon abhängigen Pakete bis einschließlich
@code{octave-cli} mit Version 10 der GCC erstellt (vorgegeben wäre zurzeit,
GCC 7.5 zu benutzen):
@example
guix build octave-cli \\
--with-c-toolchain=fftw=gcc-toolchain@@10 \\
--with-c-toolchain=fftwf=gcc-toolchain@@10
@end example
Führen Sie für mehr Informationen @command{info \"(guix.de)
Paketumwandlungsoptionen\"} aus.")
(fr "La nouvelle option de transformation de paquets
@option{--with-c-toolchain} permet aux développeur·euses de recompiler leurs
paquets préférés avec la chaîne d'outils C/C++ de leur choix à la place de

View File

@ -4,6 +4,7 @@
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017, 2020 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2019, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2019 Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Stefan <stefan-guix@vodafonemail.de>
;;;
@ -33,6 +34,7 @@
#:use-module (gnu system uuid)
#:use-module (gnu system file-systems)
#:use-module (gnu system keyboard)
#:use-module (gnu system locale)
#:use-module (gnu packages bootloaders)
#:autoload (gnu packages gtk) (guile-cairo guile-rsvg)
#:autoload (gnu packages xorg) (xkeyboard-config)
@ -334,6 +336,7 @@ code."
(define* (grub-configuration-file config entries
#:key
(locale #f)
(system (%current-system))
(old-entries '())
store-directory-prefix)
@ -398,6 +401,20 @@ menuentry ~s {
#:store-directory-prefix store-directory-prefix
#:port #~port)))
(define locale-config
#~(let ((locale #$(and locale
(locale-definition-source
(locale-name->definition locale)))))
(when locale
(format port "\
# Localization configuration.
if search --file --set boot_partition /grub/grub.cfg; then
set locale_dir=(${boot_partition})/grub/locale
else
set locale_dir=/boot/grub/locale
fi
set lang=~a~%" locale))))
(define keyboard-layout-config
(let* ((layout (bootloader-configuration-keyboard-layout config))
(grub (bootloader-package
@ -422,6 +439,7 @@ keymap ~a~%" #$keymap))))
# will be lost upon reconfiguration.
")
#$(sugar)
#$locale-config
#$keyboard-layout-config
(format port "
set default=~a

View File

@ -211,6 +211,9 @@ set."
("dev/vcs" ("/hurd/console"))
("dev/tty" ("/hurd/magic" "tty") #o666)
;; 'fd_to_filename' in libc expects it.
("dev/fd" ("/hurd/magic" "--directory" "fd") #o555)
("dev/tty1" ("/hurd/term" "/dev/tty1" "hurdio" "/dev/vcs/1/console")
#o666)
("dev/tty2" ("/hurd/term" "/dev/tty2" "hurdio" "/dev/vcs/2/console")
@ -240,7 +243,6 @@ set."
(for-each scope-set-translator devices)
(false-if-EEXIST (symlink "/dev/random" (scope "dev/urandom")))
(mkdir* "dev/fd")
(false-if-EEXIST (symlink "/dev/fd/0" (scope "dev/stdin")))
(false-if-EEXIST (symlink "/dev/fd/1" (scope "dev/stdout")))
(false-if-EEXIST (symlink "/dev/fd/2" (scope "dev/stderr")))

View File

@ -308,7 +308,8 @@ selected keymap."
;; translated.
#~(begin
(bindtextdomain "guix" (string-append #$guix "/share/locale"))
(textdomain "guix")))
(textdomain "guix")
(setlocale LC_ALL "")))
(define set-installer-path
;; Add the specified binary to PATH for later use by the installer.

View File

@ -861,6 +861,7 @@ dist_patch_DATA = \
%D%/packages/patches/clang-7.0-libc-search-path.patch \
%D%/packages/patches/clang-9.0-libc-search-path.patch \
%D%/packages/patches/clang-10.0-libc-search-path.patch \
%D%/packages/patches/clang-11.0-libc-search-path.patch \
%D%/packages/patches/clang-runtime-asan-build-fixes.patch \
%D%/packages/patches/clang-runtime-esan-build-fixes.patch \
%D%/packages/patches/clang-runtime-9-libsanitizer-mode-field.patch \
@ -1360,6 +1361,7 @@ dist_patch_DATA = \
%D%/packages/patches/nfs4-acl-tools-0.3.7-fixpaths.patch \
%D%/packages/patches/ngircd-handle-zombies.patch \
%D%/packages/patches/network-manager-plugin-path.patch \
%D%/packages/patches/nginx-socket-cloexec.patch \
%D%/packages/patches/nsis-env-passthru.patch \
%D%/packages/patches/nss-increase-test-timeout.patch \
%D%/packages/patches/nss-3.56-pkgconfig.patch \
@ -1488,7 +1490,6 @@ dist_patch_DATA = \
%D%/packages/patches/python-argcomplete-1.11.1-fish31.patch \
%D%/packages/patches/python-axolotl-AES-fix.patch \
%D%/packages/patches/python-cairocffi-dlopen-path.patch \
%D%/packages/patches/python-chardet-3.0.4-pytest.patch \
%D%/packages/patches/python-cross-compile.patch \
%D%/packages/patches/python2-larch-coverage-4.0a6-compatibility.patch \
%D%/packages/patches/python-configobj-setuptools.patch \
@ -1636,6 +1637,7 @@ dist_patch_DATA = \
%D%/packages/patches/ucx-tcp-iface-ioctl.patch \
%D%/packages/patches/udiskie-no-appindicator.patch \
%D%/packages/patches/ungoogled-chromium-system-nspr.patch \
%D%/packages/patches/unison-fix-ocaml-4.08.patch \
%D%/packages/patches/unknown-horizons-python-3.8-distro.patch \
%D%/packages/patches/unzip-CVE-2014-8139.patch \
%D%/packages/patches/unzip-CVE-2014-8140.patch \
@ -1699,6 +1701,7 @@ dist_patch_DATA = \
%D%/packages/patches/xplanet-1.3.1-libimage_gif.c.patch \
%D%/packages/patches/xplanet-1.3.1-xpUtil-Add2017LeapSecond.cpp.patch \
%D%/packages/patches/xpra-4.0.1-systemd-run.patch \
%D%/packages/patches/xpra-4.0.4-norequests.patch \
%D%/packages/patches/xsane-fix-memory-leak.patch \
%D%/packages/patches/xsane-fix-pdf-floats.patch \
%D%/packages/patches/xsane-fix-snprintf-buffer-length.patch \

View File

@ -480,6 +480,8 @@ an environment type of 'managed-host."
(raise roll-back-failure)))
(entries -> (map boot-parameters->menu-entry
(list (second boot-parameters))))
(locale -> (boot-parameters-locale
(second boot-parameters)))
(old-entries -> (map boot-parameters->menu-entry
(drop boot-parameters 2)))
(bootloader -> (operating-system-bootloader
@ -489,6 +491,7 @@ an environment type of 'managed-host."
(bootloader-configuration-bootloader
bootloader))
bootloader entries
#:locale locale
#:old-entries old-entries)))
(remote-result (machine-remote-eval machine remote-exp)))
(when (eqv? 'error remote-result)

View File

@ -1809,21 +1809,24 @@ network, which causes enabled computers to power on.")
(define-public dmidecode
(package
(name "dmidecode")
(version "3.2")
(source (origin
(version "3.3")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://savannah/dmidecode/dmidecode-"
(uri (string-append "mirror://savannah/dmidecode/dmidecode-"
version ".tar.xz"))
(sha256
(base32
"1pcfhcgs2ifdjwp7amnsr3lq95pgxpr150bjhdinvl505px0cw07"))))
(base32 "0m8lzg9rf1qssasiix672bxk5qwms90561g8hfkkhk31h2kkgiw2"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases (delete 'configure))
#:tests? #f ; no 'check' target
#:make-flags (list (string-append "prefix="
(assoc-ref %outputs "out")))))
`(#:tests? #f ; no 'check' target
#:make-flags
(list (string-append "CC=" ,(cc-for-target))
(string-append "prefix="
(assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'configure)))) ; no configure script
(home-page "https://www.nongnu.org/dmidecode/")
(synopsis "Read hardware information from the BIOS")
(description
@ -2690,9 +2693,8 @@ results (ndiff), and a packet generation and response analysis tool (nping).")
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no make check
#:make-flags (let ((out (assoc-ref %outputs "out")))
(list (string-append "DESTDIR=" out)
"prefix=/"))
#:make-flags
(list (string-append "prefix=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-python3-DeprecationWarning

View File

@ -9,6 +9,8 @@
;;; Copyright © 2019 Jens Mølgaard <jens@zete.tk>
;;; Copyright © 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
;;; Copyright © 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -33,7 +35,9 @@
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
#:use-module (gnu packages compression)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages perl)
#:use-module (ice-9 match))
@ -457,3 +461,50 @@ under permissive licensing terms. See the 'Copyright' file."))))
(define-word-list-dictionary hunspell-dict-en-us
"en_US"
(synopsis "Hunspell dictionary for United States English"))
(define-public ispell
(package
(name "ispell")
(version "3.4.00")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.cs.hmc.edu/~geoff/tars/ispell-"
version ".tar.gz"))
(sha256
(base32
"1hmfnz55qzfpz7lz0r3m4kkv31smir92ks9s5l1iiwimhr2jxi2x"))))
(build-system gnu-build-system)
(arguments
`(#:parallel-build? #f
#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Based on local.h.linux
(let* ((grep (assoc-ref inputs "grep"))
(out (assoc-ref outputs "out")))
(call-with-output-file "local.h"
(lambda (port)
(format port "#define MINIMENU~%")
(format port "#define USG~%")
(format port "#define HAS_RENAME~%")
(format port "#define CC \"gcc\"~%")
(format port "#define POUNDBANG \"#!~a\"~%" (which "sh"))
(format port "#define EGREPCMD \"~a/bin/grep -Ei\"~%" grep)
(format port "#define BINDIR \"~a/bin\"~%" out)
(format port "#define LIBDIR \"~a/lib/ispell\"~%" out)
(format port "#define MAN1DIR \"~a/share/man/man1\"~%" out)
(format port "#define MAN45DIR \"~a/share/man/man5\"~%" out))))
#t)))))
(inputs
`(("grep" ,grep)
("ncurses" ,ncurses)))
(native-inputs
`(("bison" ,bison)))
(synopsis "Interactive spell-checking tool for Unix")
(description "Ispell is an interactive spell-checking tool supporting many
European languages.")
(home-page "https://www.cs.hmc.edu/~geoff/ispell.html")
(license bsd-3)))

View File

@ -3060,6 +3060,32 @@ that toolkit will work in all hosts that use Suil automatically.
Suil currently supports every combination of Gtk, Qt, and X11.")
(license license:isc)))
(define-public libebur128
(package
(name "libebur128")
(version "1.2.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jiixyj/libebur128")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "0n81rnm8dm1zmibkr2v3q79rsd609y0dbbsrbay18njcjva88p0g"))))
(build-system cmake-build-system)
(arguments
`(;; Tests require proprietary .wav files. See
;; https://github.com/jiixyj/libebur128/issues/82.
#:tests? #f
#:configure-flags '("-DBUILD_STATIC_LIBS=OFF")))
(home-page "https://github.com/jiixyj/libebur128")
(synopsis "Library implementing the EBU R 128 loudness standard")
(description
"@code{libebur128} is a C library that implements the EBU R 128 standard
for loudness normalisation.")
(license license:expat)))
(define-public timidity++
(package
(name "timidity++")
@ -3304,7 +3330,7 @@ Tracker 3 S3M and Impulse Tracker IT files.")
(define-public soundtouch
(package
(name "soundtouch")
(version "2.1.2")
(version "2.2")
(source
(origin
(method git-fetch)
@ -3313,7 +3339,7 @@ Tracker 3 S3M and Impulse Tracker IT files.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "174wgm3s0inmbnkrlnspxjwm2014qhjhkbdqa5r8rbfi0nzqxzsz"))))
(base32 "12i6yg8vvqwyk412lxl2krbfby6hnxld8qxy0k4m5xp4g94jiq4p"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
@ -3965,10 +3991,31 @@ mixers.")
(define-public python2-pyalsaaudio
(package-with-python2 python-pyalsaaudio))
(define-public ldacbt
(package
(name "ldacbt")
(version "2.0.2.3")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/EHfive/ldacBT"
"/releases/download/v" version
"/ldacBT-" version ".tar.gz"))
(sha256
(base32
"1d65dms4klzql29abi15i90f41h523kl6mxrz9hi6p5vg37fxn2b"))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ; no check target
(home-page "https://github.com/EHfive/ldacBT/")
(synopsis "LDAC Bluetooth encoder and ABR library")
(description "This package provides an encoder for the LDAC
high-resolution Bluetooth audio streaming codec for streaming at up to 990
kbps at 24 bit/96 kHz.")
(license license:asl2.0)))
(define-public bluez-alsa
(package
(name "bluez-alsa")
(version "2.0.0")
(version "3.0.0")
(source (origin
;; The tarballs are mere snapshots and don't contain a
;; bootstrapped build system.
@ -3979,11 +4026,12 @@ mixers.")
(file-name (git-file-name name version))
(sha256
(base32
"08mppgnjf1j2733bk9yf0cny6rfxxwiys0s62lz2zd2lpdl6d9lz"))))
"1jlsgxyqfhncfhx1sy3ry0dp6p95kd4agh7g2b7g51h0c4cv74h8"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(list (string-append "--with-alsaplugindir="
(list "--enable-ldac"
(string-append "--with-alsaplugindir="
(assoc-ref %outputs "out")
"/lib/alsa-lib")
(string-append "--with-dbusconfdir="
@ -3999,6 +4047,7 @@ mixers.")
("bluez" ,bluez)
("dbus" ,dbus)
("glib" ,glib)
("ldacbt" ,ldacbt)
("libbsd" ,libbsd)
("ncurses" ,ncurses)
("ortp" ,ortp)

View File

@ -1023,7 +1023,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
# CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set
CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y

View File

@ -966,7 +966,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
# CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set
CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y

View File

@ -1053,7 +1053,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set
# CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set
CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y

View File

@ -1063,7 +1063,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set
# CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set
CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y

View File

@ -1034,7 +1034,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
# CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set
CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y

View File

@ -1008,7 +1008,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
# CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set
CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y

View File

@ -1027,7 +1027,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set
# CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set
CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y

View File

@ -1044,7 +1044,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set
# CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set
CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y

View File

@ -1056,7 +1056,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
# CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set
CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y

View File

@ -1048,7 +1048,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
# CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set
CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y

View File

@ -1035,7 +1035,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set
# CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set
CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y

View File

@ -1061,7 +1061,8 @@ CONFIG_XFRM_IPCOMP=m
CONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not set
# CONFIG_SMC is not set
# CONFIG_XDP_SOCKETS is not set
CONFIG_XDP_SOCKETS=y
CONFIG_XDP_SOCKETS_DIAG=m
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y

View File

@ -111,8 +111,8 @@ generate such a compilation database.")
(license license:gpl3+)))
(define-public gn
(let ((commit "eb997b5ab9c3f1ba6a2c52072785884864a84eae")
(revision "1794")) ;as returned by `git describe`, used below
(let ((commit "e327ffdc503815916db2543ec000226a8df45163")
(revision "1819")) ;as returned by `git describe`, used below
(package
(name "gn")
(version (git-version "0.0" revision commit))
@ -122,7 +122,7 @@ generate such a compilation database.")
(uri (git-reference (url home-page) (commit commit)))
(sha256
(base32
"1vfkcy34wqhg7wsk7jdzhgnnzwim10wgbxv5bnavxzjcs871i2xa"))
"0kvlfj3www84zp1vmxh76x8fdjm9hyk8lkh2vdsidafpmm75fphr"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments

View File

@ -40,6 +40,7 @@
#:use-module (gnu packages perl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages guile)
#:use-module (gnu packages lua)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages pcre)
#:use-module (gnu packages python)
@ -257,6 +258,64 @@ string formatting and autoresizing, option and config file parsing, type
checking casts and more.")
(license license:lgpl2.1+)))
(define-public libwuya
;; This commit is the one before "wuy_pool.h" was removed from libwuya,
;; which libleak currently requires.
(let ((revision "1")
(commit "883502041044f4616cfbf75c8f2bb60059f704a9"))
(package
(name "libwuya")
(version (git-version "0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/WuBingzheng/libwuya")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1xrsqbgr13g2v0ag165ryp7xrwzv41xfygzk2a3445ca98c1qpdc"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no test suite
#:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-lua-includes
(lambda _
(substitute* '("wuy_cflua.h" "wuy_cflua.c")
(("<lua5\\.1/") "<"))
#t))
(add-after 'unpack 'add--fPIC-to-CFLAGS
(lambda _
(substitute* "Makefile"
(("CFLAGS[^\n]*" all)
(string-append all " -fPIC")))
#t))
(add-before 'build 'set-CC
(lambda _
(setenv "CC" "gcc")
#t))
(delete 'configure) ;no configure script
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(include-dir (string-append out "/include"))
(headers (find-files "." "\\.h$")))
(for-each (lambda (h)
(install-file h include-dir))
headers)
(install-file "libwuya.a" (string-append out "/lib"))
#t))))))
(inputs `(("lua" ,lua)))
(home-page "https://github.com/WuBingzheng/libwuya/")
(synopsis "C library implementing various data structures")
(description "The @code{libwuya} library implements data structures such
as dictionaries, skip lists, and memory pools.")
;; There is no clear information as to what license this is distributed
;; under, but it is included (bundled) with libleak from the same author
;; under the GNU GPL v2 or later license, so use this here until it is
;; clarified (see: https://github.com/WuBingzheng/libwuya/issues/2).
(license license:gpl2+))))
(define-public packcc
(package
(name "packcc")

View File

@ -9,6 +9,7 @@
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com
;;; Copyright © 2020 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020 Peng Mei Yu <pengmeiyu@riseup.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -349,3 +350,45 @@ DebConf, FrOSCon, Grazer LinuxTage, and the CCC congresses.
ConfClerk is targeted at mobile devices but works on any system running Qt.")
(license (list license:gpl2+
license:lgpl3)))) ; or cc-by3.0 for src/icons/*
(define-public ccal
(package
(name "ccal")
(version "2.5.3")
(source (origin
(method url-fetch)
(uri (string-append "http://ccal.chinesebay.com/ccal/ccal-"
version ".tar.gz"))
(sha256
(base32
"15nza1d1lvk3dp0wcl53wsd32yhbgyzznha092mh5kh5z74vsk1x"))))
(build-system gnu-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(substitute* "Makefile"
(("/usr/local/bin")
(string-append out "/bin"))
(("/usr/local/man")
(string-append out "/share/man"))))
#t))
(add-after 'install 'install-manuals
(lambda _
(invoke "make" "install-man"))))
;; no tests
#:tests? #f))
(home-page "http://ccal.chinesebay.com/ccal/ccal.htm")
(synopsis "Command line program for Chinese calendar")
(description "@command{ccal} is a command line program which writes a
Gregorian calendar together with Chinese calendar to standard output. Its
usage is similar to the @command{cal} program. In addition to console output,
it can also generate Encapsulated Postscript and HTML table outputs for use in
do-it-yourself calendars and web pages. It supports both simplified and
traditional Chinese characters.")
;; Both licenses are in use in various source files. Note that
;; COPYING.LESSER specifies LGPL 3.0, but all source files say
;; 'Lesser GPL version 2 or later'.
(license (list license:gpl2+ license:lgpl2.1+))))

View File

@ -737,16 +737,15 @@ information is written to standard error.")
(define-public asunder
(package
(name "asunder")
(version "2.9.6")
(source (origin
(version "2.9.7")
(source
(origin
(method url-fetch)
(uri
(string-append "http://www.littlesvr.ca/asunder/releases/asunder-"
version
".tar.bz2"))
version ".tar.bz2"))
(sha256
(base32
"1ycnd82lh7qy1pcbngd4b41s16j9hnm2kyfrncg4cwr3bfk7yg7a"))))
(base32 "1x3l308ss0iqhz90qyjb94gyd8b4piyrm2nzjmg5kf049k9prjf1"))))
(build-system glib-or-gtk-build-system)
(arguments
'(#:out-of-source? #f

View File

@ -83,6 +83,9 @@
"base/third_party/symbolize" ;BSD-3
"base/third_party/xdg_mime" ;LGPL2.0+ or Academic 2.0
"base/third_party/xdg_user_dirs" ;Expat
;; XXX: Chromium requires a newer C++ standard library. Remove this when
;; the default GCC is 9 or later.
"buildtools/third_party/libc++" ;ASL2.0, with LLVM exceptions
"chrome/third_party/mozilla_security_manager" ;MPL-1.1/GPL2+/LGPL2.1+
"courgette/third_party/bsdiff" ;BSD-2, BSD protection license
"courgette/third_party/divsufsort" ;Expat
@ -111,7 +114,6 @@
"third_party/boringssl/src/third_party/fiat" ;Expat
"third_party/breakpad" ;BSD-3
"third_party/brotli" ;Expat
"third_party/cacheinvalidation" ;ASL2.0
"third_party/catapult" ;BSD-3
"third_party/catapult/common/py_vulcanize/third_party/rcssmin" ;ASL2.0
"third_party/catapult/common/py_vulcanize/third_party/rjsmin" ;ASL2.0
@ -139,9 +141,15 @@
"third_party/depot_tools/owners.py" ;BSD-3
"third_party/devtools-frontend" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/acorn" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/chromium" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/codemirror" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/fabricjs" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/i18n" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/intl-messageformat" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/lighthouse" ;ASL2.0
"third_party/devtools-frontend/src/front_end/third_party/lit-html" ;BSD-3
"third_party/devtools-frontend/src/front_end/third_party/lodash-isequal" ;Expat
"third_party/devtools-frontend/src/front_end/third_party/marked" ;Expat, BSD-3
"third_party/devtools-frontend/src/front_end/third_party/wasmparser" ;ASL2.0
"third_party/devtools-frontend/src/third_party/axe-core" ;MPL2.0
"third_party/devtools-frontend/src/third_party/pyjson5" ;ASL2.0
@ -159,6 +167,8 @@
"third_party/iccjpeg" ;IJG
"third_party/inspector_protocol" ;BSD-3
"third_party/jinja2" ;BSD-3
;; XXX: Unbundle this when switching back to libstdc++.
"third_party/jsoncpp" ;Public Domain or Expat
"third_party/jstemplate" ;ASL2.0
"third_party/khronos" ;Expat, SGI
"third_party/leveldatabase" ;BSD-3
@ -175,6 +185,11 @@
"third_party/libsrtp" ;BSD-3
"third_party/libsync" ;ASL2.0
"third_party/libudev" ;LGPL2.1+
;; FIXME: build/linux/unbundle/libvpx.gn does not work for all users.
"third_party/libvpx" ;BSD-3
"third_party/libvpx/source/libvpx/third_party/x86inc" ;Expat
"third_party/libwebm" ;BSD-3
"third_party/libxml/chromium" ;BSD-3
"third_party/libyuv" ;BSD-3
@ -186,6 +201,7 @@
"third_party/metrics_proto" ;BSD-3
"third_party/modp_b64" ;BSD-3
"third_party/nasm" ;BSD-2
"third_party/nearby" ;ASL2.0
"third_party/node" ;Expat
"third_party/node/node_modules/polymer-bundler/lib/third_party/UglifyJS2" ;BSD-2
"third_party/one_euro_filter" ;BSD-3
@ -208,9 +224,13 @@
"third_party/protobuf/third_party/six" ;Expat
"third_party/pyjson5" ;ASL2.0
"third_party/qcms" ;Expat
;; XXX: System re2 cannot be used when Chromium uses libc++ because the re2
;; ABI relies on libstdc++ internals. See build/linux/unbundle/re2.gn.
"third_party/re2" ;BSD-3
"third_party/rnnoise" ;BSD-3
"third_party/s2cellid" ;ASL2.0
"third_party/schema_org" ;CC-BY-SA3.0
"third_party/securemessage" ;ASL2.0
"third_party/skia" ;BSD-3
"third_party/skia/include/third_party/skcms" ;BSD-3
"third_party/skia/third_party/skcms" ;BSD-3
@ -222,12 +242,13 @@
"third_party/sqlite" ;Public domain
"third_party/swiftshader" ;ASL2.0
"third_party/swiftshader/third_party/astc-encoder" ;ASL2.0
"third_party/swiftshader/third_party/llvm-7.0" ;NCSA
"third_party/swiftshader/third_party/llvm-10.0" ;ASL2.0, with LLVM exception
"third_party/swiftshader/third_party/llvm-subzero" ;NCSA
"third_party/swiftshader/third_party/marl" ;ASL2.0
"third_party/swiftshader/third_party/subzero" ;NCSA
"third_party/swiftshader/third_party/SPIRV-Headers" ;X11-style
"third_party/tcmalloc/chromium" ;BSD-3
"third_party/ukey2" ;ASL2.0
"third_party/usb_ids" ;BSD-3
"third_party/usrsctp" ;BSD-2
"third_party/vulkan_memory_allocator" ;Expat
@ -246,8 +267,10 @@
"third_party/widevine/cdm/widevine_cdm_version.h" ;BSD-3
"third_party/widevine/cdm/widevine_cdm_common.h" ;BSD-3
"third_party/woff2" ;ASL2.0
"third_party/xcbproto" ;X11
"third_party/xdg-utils" ;Expat
"third_party/zlib/google" ;BSD-3
"third_party/zxcvbn-cpp" ;Expat
"url/third_party/mozilla" ;BSD-3, MPL1.1/GPL2+/LGPL2.1+
"v8/src/third_party/siphash" ;Public domain
"v8/src/third_party/utf8-decoder" ;Expat
@ -258,27 +281,9 @@
(define %blacklisted-files
;; 'third_party/blink/perf_tests/resources/svg/HarveyRayner.svg' carries a
;; nonfree license according to LICENSES in the same directory. As we don't
;; run the Blink performance tests, just remove everything to save ~24MiB.
;; run the Blink performance tests, just remove everything to save ~70MiB.
'("third_party/blink/perf_tests"))
(define (gentoo-patch name revision hash)
(origin
(method url-fetch)
(uri (string-append "https://gitweb.gentoo.org/repo/gentoo.git/plain"
"/www-client/chromium/files/" name "?id=" revision))
(file-name (string-append "ungoogled-" name))
(sha256 (base32 hash))))
;; This repository contains libstdc++ compatibility patches for Chromium.
(define (chromium-gcc-patchset commit hash)
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/stha09/chromium-patches")
(commit commit)))
(file-name (git-file-name "chromium-gcc-patches" commit))
(sha256 (base32 hash))))
(define (debian-patch name revision hash)
(origin
(method url-fetch)
@ -289,38 +294,34 @@
(string-append "ungoogled-chromium-" category "-" name))))
(sha256 (base32 hash))))
(define %ungoogled-revision "57244cdfc21dc05910862152d91cc528103c988a")
(define %debian-revision "debian/83.0.4103.116-3")
(define %gentoo-revision "f3f649046d31ebdbc8c4a302b2384504eff78027")
(define (arch-patch name revision hash)
(origin
(method url-fetch)
(uri (string-append "https://raw.githubusercontent.com/archlinux"
"/svntogit-packages/" revision "/trunk/" name))
(sha256 (base32 hash))))
(define %gentoo-patches
;; This patch is necessary for compatibility with FFmpeg 4.3.
(list (gentoo-patch "chromium-84-mediaalloc.patch" %gentoo-revision
"0snxdc4nb8ykzncz62vpsl8hgxpy24m17mycx67i2gckmrpslzzv")))
(define %chromium-gcc-patches
(chromium-gcc-patchset
"chromium-84-patchset-3"
"0l05gx3pn703n47anjwsl5sjcqw8kaxmivf7llax97kj3k6d127v"))
(define %chromium-version "86.0.4240.75")
(define %ungoogled-revision "c34a56db4c121238fface560e21531b6199ce5dd")
(define %debian-revision "debian/84.0.4147.105-1")
(define %arch-revision "2cbe439471932d30ff2c8ded6b3dfd51b312bbc9")
(define %debian-patches
(list (debian-patch "system/zlib.patch" %debian-revision
"0bp2vh1cgmwjrn1zkpphkd3bs662s23xwdhy3abm9cfjvwrj117n")
(debian-patch "system/jsoncpp.patch" %debian-revision
"0d95brl4a5y5w142yd0rvf59z513h7chsz0vnm034d6lqf22ahwf")
"09vqgs37w9ycc7par14wa7rnvmg9bm0z9pqg6fyl3iqvpghyjyr4")
(debian-patch "system/openjpeg.patch" %debian-revision
"0zd6v5njx1pc7i0y6mslxvpx5j4cq01mmyx55qcqx8qzkm0gm48j")))
(define %arch-patches
(list (origin
(method url-fetch)
(uri "https://git.archlinux.org/svntogit/packages.git/plain/trunk/\
chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
&id=93b5b90621b4827084288197c6e0e09b987b372a")
(file-name "ungoogled-chromium-fix-vaapi-on-intel.patch")
(sha256
(base32
"16jbjjf4d9jp52rdrrxx5vm69nx3w0qrijgjpwapnmcif13z55g4")))))
(list (arch-patch "check-for-enable-accelerated-video-decode-on-Linux.patch"
%arch-revision
"12qj23dcp2g2ivyfyj13m4fzf68nllb9djwcxf1h195gn8wkml03")
(arch-patch "only-fall-back-to-the-i965-driver-if-we-re-on-iHD.patch"
%arch-revision
"0073qjp0dp9kj2ix2j6cxrima01rpdpkcjj9crxlb9b43b4cc53m")
(arch-patch "fix-invalid-end-iterator-usage-in-CookieMonster.patch"
%arch-revision
"1p1wy3dfncw0hhz77a1km0xjhix69ksgbpa569qz86nv76jbgn39")))
(define %ungoogled-origin
(origin
@ -331,7 +332,7 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(string-take %ungoogled-revision 7)))
(sha256
(base32
"15a1xpmabdxr1mn61m0jm9a5l987rxdji8b1b6zy39mr636vcwfi"))))
"18p9a7qffmy8m03nqva7maalgil13lj2mn0s56v3crbs4wk4lalj"))))
;; This is a source 'snippet' that does the following:
;; *) Applies various patches for unbundling purposes and libstdc++ compatibility.
@ -354,9 +355,7 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(for-each (lambda (patch)
(invoke "patch" "-p1" "--force" "--input"
patch "--no-backup-if-mismatch"))
(append
'#+%gentoo-patches '#+%debian-patches '#+%arch-patches
(find-files #$%chromium-gcc-patches "\\.patch$")
(append '#+%debian-patches '#+%arch-patches
'#+(list (local-file
(search-patch
"ungoogled-chromium-system-nspr.patch")))))
@ -366,8 +365,8 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(force-output)
(invoke "python" "utils/prune_binaries.py" chromium-dir
"pruning.list")
(invoke "python" "utils/patches.py" "apply"
chromium-dir "patches")
(invoke "python" "utils/patches.py" "apply" chromium-dir
"patches")
(invoke "python" "utils/domain_substitution.py" "apply" "-r"
"domain_regex.list" "-f" "domain_substitution.list"
"-c" "/tmp/domainscache.tar.gz" chromium-dir))
@ -396,8 +395,8 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(invoke "python" "build/linux/unbundle/replace_gn_files.py"
"--system-libraries" "ffmpeg" "flac" "fontconfig"
"freetype" "harfbuzz-ng" "icu" "libdrm" "libevent"
"libjpeg" "libpng" "libvpx" "libwebp" "libxml"
"libxslt" "openh264" "opus" "re2" "snappy" "zlib")
"libjpeg" "libpng" "libwebp" "libxml" "libxslt"
"openh264" "opus" "snappy" "zlib")
#t))))
(define opus+custom
@ -412,16 +411,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
`(cons "--enable-custom-modes"
,flags))))))
;; Chromium still has Python2-only code, so we need this special Python 2
;; variant of xcb-proto.
(define xcb-proto/python2
(package/inherit
xcb-proto
(name "python2-xcb-proto")
(native-inputs
`(("pkg-config" ,pkg-config)
("python" ,python-2)))))
;; 'make-ld-wrapper' can only work with an 'ld' executable, so we need
;; this trick to make it wrap 'lld'.
(define (make-lld-wrapper lld)
@ -450,7 +439,7 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(define-public ungoogled-chromium
(package
(name "ungoogled-chromium")
(version (string-append "84.0.4147.125-0."
(version (string-append %chromium-version "-0."
(string-take %ungoogled-revision 7)))
(synopsis "Graphical web browser")
(source (origin
@ -460,7 +449,7 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(car (string-split version #\-)) ".tar.xz"))
(sha256
(base32
"1xdg9pnnvbzasmra09rl7wdrir61rfcqml46jj7kv39drwk9chwq"))
"1ddw4p9zfdzhi5hrd8x14k4w326znljzprnpfi2f917rlpnl2ynx"))
(modules '((guix build utils)))
(snippet (force ungoogled-chromium-snippet))))
(build-system gnu-build-system)
@ -470,8 +459,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
#:validate-runpath? #f
#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 ftw)
(ice-9 regex)
(srfi srfi-26))
#:configure-flags
;; See tools/gn/docs/cookbook.md and
@ -486,7 +473,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(string-append "max_jobs_per_link="
(number->string (parallel-job-count)))
"clang_use_chrome_plugins=false"
"use_custom_libcxx=false"
"use_sysroot=false"
"goma_dir=\"\""
"enable_nacl=false"
@ -505,16 +491,13 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
"enable_vr=false"
"enable_widevine=false"
;; Disable type-checking for the Web UI to avoid a Java dependency.
"closure_compile=false"
"enable_js_type_check=false"
;; Define a custom toolchain that simply looks up CC, AR and
;; friends from the environment.
"custom_toolchain=\"//build/toolchain/linux/unbundle:default\""
"host_toolchain=\"//build/toolchain/linux/unbundle:default\""
(string-append "xcbproto_path=\""
(assoc-ref %build-inputs "xcb-proto") "/share/xcb\"")
;; Prefer system libraries.
"use_system_freetype=true"
"use_system_harfbuzz=true"
@ -547,16 +530,13 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
;; WebRTC stuff.
"rtc_use_h264=true"
;; Don't use bundled sources.
"rtc_build_json=false"
"rtc_build_json=true" ;FIXME: libc++ std::string ABI difference
"rtc_build_libevent=false"
"rtc_build_libvpx=false"
"rtc_build_opus=false"
"rtc_build_ssl=false"
"rtc_build_libsrtp=true" ;FIXME: fails to find headers
"rtc_build_usrsctp=true" ;TODO: package this
(string-append "rtc_jsoncpp_root=\""
(assoc-ref %build-inputs "jsoncpp")
"/include/jsoncpp/json\"")
(string-append "rtc_ssl_root=\""
(assoc-ref %build-inputs "openssl")
"/include/openssl\""))
@ -564,12 +544,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(modify-phases %standard-phases
(add-after 'unpack 'patch-stuff
(lambda _
;; Fix build with newer re2. Taken from:
;; https://chromium-review.googlesource.com/c/chromium/src/+/2145261
(substitute* "components/autofill/core/browser/address_rewriter.cc"
(("options\\.set_utf8\\(true\\)")
"options.set_encoding(RE2::Options::EncodingUTF8)"))
(substitute*
'("base/process/launch_posix.cc"
"base/third_party/dynamic_annotations/dynamic_annotations.c"
@ -615,10 +589,8 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(substitute*
"third_party/breakpad/breakpad/src/common/linux/libcurl_wrapper.h"
(("include \"third_party/curl") "include \"curl"))
(substitute* "third_party/webrtc/rtc_base/strings/json.h"
(("#include \"third_party/jsoncpp/") "#include \"json/"))
(("include \"third_party/curl")
"include \"curl"))
(substitute* '("components/viz/common/gpu/vulkan_context_provider.h"
"components/viz/common/resources/resource_format_utils.h"
@ -628,17 +600,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(substitute* "third_party/skia/include/gpu/vk/GrVkVulkan.h"
(("include/third_party/vulkan/") ""))
;; Building chromedriver embeds some files using the ZIP
;; format which doesn't support timestamps before
;; 1980. Therefore, advance the timestamps of the files
;; which are included so that building chromedriver
;; works.
(let ((circa-1980 (* 10 366 24 60 60)))
(for-each (lambda (file)
(utime file circa-1980 circa-1980))
'("chrome/test/chromedriver/extension/background.js"
"chrome/test/chromedriver/extension/manifest.json")))
#t))
(add-after 'patch-stuff 'add-absolute-references
(lambda* (#:key inputs #:allow-other-keys)
@ -660,10 +621,23 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(add-before 'configure 'prepare-build-environment
(lambda* (#:key inputs #:allow-other-keys)
;; Make sure the right build tools are used.
;; Define the GN toolchain.
(setenv "AR" "llvm-ar") (setenv "NM" "llvm-nm")
(setenv "CC" "clang") (setenv "CXX" "clang++")
(let ((gcc (assoc-ref inputs "gcc")))
;; Remove the default compiler from CPLUS_INCLUDE_PATH to
;; prevent header conflict with the bundled libcxx.
(setenv "CPLUS_INCLUDE_PATH"
(string-join
(delete (string-append gcc "/include/c++")
(string-split (getenv "CPLUS_INCLUDE_PATH")
#\:))
":"))
(format #t
"environment variable `CPLUS_INCLUDE_PATH' changed to ~a~%"
(getenv "CPLUS_INCLUDE_PATH")))
(setenv "CXXFLAGS"
(string-join
'(;; Do not optimize away null pointer safety checks.
@ -728,7 +702,10 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(lib (string-append out "/lib"))
(man (string-append out "/share/man/man1"))
(applications (string-append out "/share/applications"))
(install-regexp (make-regexp "\\.(bin|pak|so)$"))
(libs '("chrome_100_percent.pak"
"chrome_200_percent.pak"
"resources.pak"
"v8_context_snapshot.bin"))
(locales (string-append lib "/locales"))
(resources (string-append lib "/resources"))
(preferences (assoc-ref inputs "master-preferences"))
@ -753,9 +730,7 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
(copy-file preferences (string-append lib "/master_preferences"))
(with-directory-excursion "out/Release"
(for-each (lambda (file)
(install-file file lib))
(scandir "." (cut regexp-exec install-regexp <>)))
(for-each (cut install-file <> lib) libs)
(copy-file "chrome" (string-append lib "/chromium"))
(copy-recursively "locales" locales)
@ -785,7 +760,7 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
#t))))))
(native-inputs
`(("bison" ,bison)
("clang" ,clang-10)
("clang" ,clang-11)
("gn" ,gn)
("gperf" ,gperf)
("ld-wrapper" ,(make-lld-wrapper lld))
@ -817,7 +792,6 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
("gtk+" ,gtk+)
("harfbuzz" ,harfbuzz)
("icu4c" ,icu4c-67)
("jsoncpp" ,jsoncpp)
("lcms" ,lcms)
("libevent" ,libevent)
("libffi" ,libffi)
@ -851,13 +825,11 @@ chromium-fix-vaapi-on-intel.patch?h=packages/chromium\
("pango" ,pango)
("pciutils" ,pciutils)
("pulseaudio" ,pulseaudio)
("re2" ,re2)
("snappy" ,snappy)
("speech-dispatcher" ,speech-dispatcher)
("udev" ,eudev)
("valgrind" ,valgrind)
("vulkan-headers" ,vulkan-headers)
("xcb-proto" ,xcb-proto/python2)))
("vulkan-headers" ,vulkan-headers)))
;; Building Chromium takes ... a very long time. On a single core, a busy
;; mid-end x86 system may need more than 24 hours to complete the build.

View File

@ -68,8 +68,8 @@
(file-name (string-append name "-" version "-checkout")))))))
(define-public cuirass
(let ((commit "cb2c4e3d8f7eda187adf6da1fc35aef838c49828")
(revision "51"))
(let ((commit "df2d13621f4b2ace33a460746e704115b7b1541e")
(revision "53"))
(package
(name "cuirass")
(version (git-version "0.0.1" revision commit))
@ -81,7 +81,7 @@
(file-name (git-file-name name version))
(sha256
(base32
"0f2di2pqqw8k4ii7h65kbzyf2d4w7nd5n3a93a8l9si4phf6a5c7"))))
"1vgb1wl1rkijm1vv5chqllf4i5w1j7g02xqlaf2xmqjh2phy5dxa"))))
(build-system gnu-build-system)
(arguments
'(#:modules ((guix build utils)

View File

@ -17,7 +17,7 @@
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2018, 2019 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2019 Nicolò Balzarotti <anothersms@gmail.com>
;;; Copyright © 2019 Wiktor Żelazny <wzelazny@vurv.cz>
;;; Copyright © 2019, 2020 Wiktor Żelazny <wzelazny@vurv.cz>
;;; Copyright © 2019 Arne Babenhauserheide <arne_bab@web.de>
;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Todor Kondić <tk.code@protonmail.com>
@ -30,6 +30,7 @@
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Antoine Côté <antoine.cote@posteo.net>
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2020 Magali Lemes <magalilemes00@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -90,6 +91,7 @@
#:use-module (gnu packages pulseaudio) ;libsndfile
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages statistics)
#:use-module (gnu packages tcl)
#:use-module (gnu packages tls)
@ -13956,7 +13958,8 @@ tessellation.")
(inputs
`(("gdal" ,gdal)
("geos" ,geos)
("proj" ,proj.4)
("proj" ,proj)
("sqlite" ,sqlite)
("zlib" ,zlib)))
(propagated-inputs
`(("r-classint" ,r-classint)
@ -24595,3 +24598,32 @@ enrichment analysis (GSEA) calculation with or without the absolute filtering.
Without filtering, users can perform (original) two-tailed or one-tailed
absolute GSEA.")
(license license:gpl2)))
(define-public r-calculus
(package
(name "r-calculus")
(version "0.2.1")
(source
(origin
(method url-fetch)
(uri (cran-uri "calculus" version))
(sha256
(base32
"0hs7hzjl6xjza20v9zx9a1piywxa6w3h2rskr52d1dcbc0vwhinp"))))
(properties `((upstream-name . "calculus")))
(build-system r-build-system)
(propagated-inputs
`(("r-rcpp" ,r-rcpp)))
(home-page "https://github.com/guidotti/calculus")
(synopsis "High dimensional numerical and symbolic calculus")
(description
"Efficient C++ optimized functions for numerical and symbolic calculus.
It includes basic symbolic arithmetic, tensor calculus, Einstein summing
convention, fast computation of the Levi-Civita symbol and generalized
Kronecker delta, Taylor series expansion, multivariate Hermite polynomials,
accurate high-order derivatives, differential operators (Gradient, Jacobian,
Hessian, Divergence, Curl, Laplacian) and numerical integration in arbitrary
orthogonal coordinate systems: cartesian, polar, spherical, cylindrical,
parabolic or user defined by custom scale factors.")
(license license:gpl3)))

View File

@ -44,6 +44,7 @@
;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org>
;;; Copyright © 2020 Guy Fleury Iteriteka <gfleury@disroot.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -128,6 +129,7 @@
#:use-module (guix download)
#:use-module (guix bzr-download)
#:use-module (guix git-download)
#:use-module (guix hg-download)
#:use-module (guix build-system emacs)
#:use-module (guix build-system gnu)
#:use-module (guix build-system go)
@ -2107,14 +2109,14 @@ database.")
(define-public perl-db-file
(package
(name "perl-db-file")
(version "1.854")
(version "1.855")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/P/PM/PMQS/DB_File-"
version ".tar.gz"))
(sha256
(base32 "0fv0any5am6vr6h1wcwhnraj70hd55fs4d8c2y7chsc9alf9di5y"))))
(base32 "0q599h7g4jkzks5dxf1zifx9k7l9vif26r2dlgkzxkg6bfif5zyr"))))
(build-system perl-build-system)
(inputs `(("bdb" ,bdb)))
(native-inputs `(("perl-test-pod" ,perl-test-pod)))
@ -2619,13 +2621,13 @@ Database API 2.0T.")
(define-public python-sqlalchemy
(package
(name "python-sqlalchemy")
(version "1.3.18")
(version "1.3.20")
(source
(origin
(method url-fetch)
(uri (pypi-uri "SQLAlchemy" version))
(sha256
(base32 "1rwc6ss1cnz3kxx0p9p6xw0w79r8qw03lcc29k31yb3rcigvfbys"))))
(base32 "18b9am7bsqc4nj3d2h5r93i002apczxfvpfpcqbd6f0385zmrwnj"))))
(build-system python-build-system)
(native-inputs
`(("python-cython" ,python-cython) ; for C extensions
@ -2976,6 +2978,36 @@ database).")
(define-public python2-sadisplay
(package-with-python2 python-sadisplay))
(define-public yoyo-migrations
(package
(name "yoyo-migrations")
(version "7.2.0")
(source
(origin
;; We use the upstream repository, as the tests are not included in the
;; PyPI releases.
(method hg-fetch)
(uri (hg-reference
(url "https://hg.sr.ht/~olly/yoyo")
(changeset (string-append "v" version "-release"))))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32 "0q2z9bgdj3wyix7yvqsayfs21grp5av8ilh411lgmjhigszkvhcq"))))
(build-system python-build-system)
(arguments
;; XXX: Tests require a connection to some pgsql database and psycopg
;; fails to connect to it.
'(#:tests? #f))
(propagated-inputs
`(("python-sqlparse" ,python-sqlparse)
("python-tabulate" ,python-tabulate)))
(home-page "https://ollycope.com/software/yoyo/latest/")
(synopsis "Database migrations with SQL")
(description
"Yoyo is a database schema migration tool. Migrations are written as SQL
files or Python scripts that define a list of migration steps.")
(license license:asl2.0)))
(define-public python-mysqlclient
(package
(name "python-mysqlclient")

View File

@ -6,6 +6,7 @@
;;; Copyright © 2019 Pkill -9 <pkill9@runbox.com>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com>
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -36,6 +37,7 @@
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages c)
#:use-module (gnu packages code)
#:use-module (gnu packages compression)
#:use-module (gnu packages flex)
@ -624,6 +626,78 @@ GDB/x86 features like hardware data watchpoints, makes debugging much more
fun.")
(license license:expat)))
(define-public libbacktrace
;; There are no releases nor tags.
(let ((revision "1")
(commit "5009c113981431ae1843ebd29d6ad24eb32fc1b2"))
(package
(name "libbacktrace")
(version (git-version "1.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ianlancetaylor/libbacktrace")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0663zjpfpnsyv9h3pbp7cgmg9gz79n68bqpdl97y6i0jsx93v1zg"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags '("CFLAGS=-fPIC")))
(home-page "https://github.com/ianlancetaylor/libbacktrace")
(synopsis "C library for producing symbolic backtraces")
(description "The @code{libbacktrace} library can be linked into a C/C++
program to produce symbolic backtraces.")
(license license:bsd-3))))
(define-public libleak
(package
(name "libleak")
(version "0.3.5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/WuBingzheng/libleak")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1p8mb0hcfp8hdv1klv6rrpkn2zlhjxgkxbbjsk8kszxv7ijln87d"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;no test suite
#:parallel-build? #f ;jobserver unavailable
#:phases (modify-phases %standard-phases
(add-after 'unpack 'unbundle-libwuya
(lambda _
(substitute* "Makefile"
((".*make -C libwuya.*") ""))
#t))
(add-before 'build 'set-CC
(lambda _
(setenv "CC" "gcc")
#t))
(delete 'configure) ;no configure script
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
(install-file "libleak.so" (string-append out "/lib"))
#t))))))
(inputs `(("libbacktrace" ,libbacktrace)
("libwuya" ,libwuya)))
(home-page "https://github.com/WuBingzheng/libleak")
(synopsis "Memory leaks detection tool")
(description "The libleak tool detects memory leaks by hooking memory
functions such as @code{malloc}. It comes as a shared object to be pre-loaded
via @code{LD_PRELOAD} when launching the application. It prints the full call
stack at suspicious memory leak points. Modifying or recompiling the target
program is not required, and the detection can be enabled or disabled while
the target application is running. The overhead incurred by libleak is
smaller than that of other tools such as Valgrind, and it aims to be easier to
use than similar tools like @command{mtrace}.")
(license license:gpl2+)))
(define-public mspdebug
(package
(name "mspdebug")

View File

@ -689,7 +689,7 @@ passphrases.")
(define-public ndctl
(package
(name "ndctl")
(version "69")
(version "70.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -698,7 +698,7 @@ passphrases.")
(file-name (git-file-name name version))
(sha256
(base32
"1l7p0ycj27d4z07gf9qp796xpg16kfsg3rwx6plhilbhip1as4w7"))))
"09ymdibcr18vpmyf2n0xrnzgccfvr7iy3p2l5lbh7cgz7djyl5wq"))))
(build-system gnu-build-system)
(native-inputs
`(("asciidoc" ,asciidoc)

View File

@ -827,9 +827,15 @@ Extensions} (DNSSEC).")
(delete-file-recursively "src/contrib/libbpf")
#t))))
(build-system gnu-build-system)
(outputs (list "out" "doc" "lib" "tools"))
(arguments
`(#:configure-flags
(list "--sysconfdir=/etc"
(list (string-append "--docdir=" (assoc-ref %outputs "doc")
"/share/" ,name "-" ,version)
(string-append "--infodir=" (assoc-ref %outputs "doc")
"/share/info")
(string-append "--libdir=" (assoc-ref %outputs "lib") "/lib")
"--sysconfdir=/etc"
"--localstatedir=/var"
"--enable-dnstap" ; let tools read/write capture files
"--enable-fastparser" ; disabled by default when .git/ exists
@ -844,7 +850,7 @@ Extensions} (DNSSEC).")
(substitute* "configure.ac"
(("enable_xdp=yes" match)
(string-append match "\nlibbpf_LIBS=\"$libbpf_LIBS -lz\"")))
#t))
#true))
(add-before 'bootstrap 'update-parser
(lambda _
(with-directory-excursion "src"
@ -868,7 +874,26 @@ Extensions} (DNSSEC).")
"install"))))
(add-after 'install 'install-info
(lambda _
(invoke "make" "install-info"))))))
(invoke "make" "install-info")))
(add-after 'install 'break-circular-:lib->:out-reference
(lambda* (#:key outputs #:allow-other-keys)
(let ((lib (assoc-ref outputs "lib")))
(for-each (lambda (file)
(substitute* file
(("(prefix=).*" _ assign)
(string-append assign lib "\n"))))
(find-files lib "\\.pc$"))
#true)))
(add-after 'install 'split-:tools
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(tools (assoc-ref outputs "tools")))
(mkdir-p (string-append tools "/share/man"))
(rename-file (string-append out "/bin")
(string-append tools "/bin"))
(rename-file (string-append out "/share/man/man1")
(string-append tools "/share/man/man1"))
#true))))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
@ -961,7 +986,7 @@ synthesis, and on-the-fly re-configuration.")
(inputs
`(("fstrm" ,fstrm)
("gnutls" ,gnutls)
("knot" ,knot)
("knot:lib" ,knot "lib")
("libuv" ,libuv)
("lmdb" ,lmdb)
("luajit" ,luajit)

View File

@ -193,13 +193,10 @@ Python without keeping their credentials in a Docker configuration file.")
`(#:import-path "github.com/containerd/containerd"
#:phases
(modify-phases %standard-phases
(add-before 'build 'chdir
(lambda _
(chdir "src/github.com/containerd/containerd")
#t))
(add-after 'chdir 'patch-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
(lambda* (#:key inputs import-path outputs #:allow-other-keys)
;; TODO: Patch "socat", "unpigz".
(with-directory-excursion (string-append "src/" import-path)
(substitute* "./runtime/v1/linux/runtime.go"
(("defaultRuntime[ \t]*=.*")
(string-append "defaultRuntime = \""
@ -219,15 +216,17 @@ Python without keeping their credentials in a Docker configuration file.")
(string-append "exec.Command(\""
(assoc-ref inputs "util-linux")
"/sbin/losetup\""))) ;)
#t))
#t)))
(replace 'build
(lambda* (#:key (make-flags '()) #:allow-other-keys)
(apply invoke "make" make-flags)))
(lambda* (#:key import-path (make-flags '()) #:allow-other-keys)
(with-directory-excursion (string-append "src/" import-path)
(apply invoke "make" make-flags))))
(replace 'install
(lambda* (#:key outputs (make-flags '()) #:allow-other-keys)
(lambda* (#:key import-path outputs (make-flags '()) #:allow-other-keys)
(with-directory-excursion (string-append "src/" import-path)
(let* ((out (assoc-ref outputs "out")))
(apply invoke "make" (string-append "DESTDIR=" out) "install"
make-flags)))))))
make-flags))))))))
(inputs
`(("btrfs-progs" ,btrfs-progs)
("libseccomp" ,libseccomp)
@ -658,8 +657,7 @@ provisioning etc.")
(string-append etc "/fish/completions"))
(install-file "zsh/_docker"
(string-append etc "/zsh/site-functions")))
(chdir "build")
(install-file "docker" out-bin)
(install-file "build/docker" out-bin)
#t))))))
(native-inputs
`(("go" ,go)

View File

@ -2,7 +2,7 @@
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Robert Smith <robertsmith@posteo.net>
@ -956,29 +956,29 @@ floating through space.")
(define-public mdk
(package
(name "mdk")
(version "1.2.10")
(version "1.2.11")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://gnu/mdk/v1.2.10/mdk-"
(uri (string-append "mirror://gnu/mdk/v" version "/mdk-"
version ".tar.gz"))
(sha256
(base32
"1rwcq2b5vvv7318j92nxc5dayj27dpfhzc4rjiv4ccvsc0x35x5h"))))
"0rrac91ynya4jrhv14j9vvn21c5z80hi1zmmdxjb0d9zz6i7kjgb"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list "--enable-gui=yes" "-with-readline=yes")))
(native-inputs
`(("flex" ,flex)
("pkg-config" ,pkg-config)
("intltool" ,intltool)
("ncurses" ,ncurses)))
("pkg-config" ,pkg-config)))
(inputs
`(("readline" ,readline)
("glib" ,glib)
`(("glib" ,glib)
("gtk+" ,gtk+)
("libglade" ,libglade)
("ncurses" ,ncurses)
("pango" ,pango)
("libglade" ,libglade)))
("readline" ,readline)))
(home-page "https://www.gnu.org/software/mdk/")
(synopsis "Virtual development environment for Knuth's MIX")
(description

View File

@ -383,18 +383,22 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
(license license:gpl3+)))
(define-public emacs-with-editor
;; This commit fixes an (magit) issue with emacs 28, see
;; https://lists.gnu.org/archive/html/help-gnu-emacs/2020-10/msg00211.html
(let ((commit "c4768f51c7415119519b4626d8643d60e584098c")
(revision "1"))
(package
(name "emacs-with-editor")
(version "2.9.4")
(version (git-version "2.9.4" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/magit/with-editor")
(commit (string-append "v" version))))
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32 "1z3214zjf3dassb31k14gq4nbr3q8g5x87ydfah28hm4j08v0wb3"))))
(base32 "01ysb9pnscpmingay6njdywkqgj4hn5l5d9igsg3x7p7061jwwix"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-dash" ,emacs-dash)))
@ -405,7 +409,7 @@ configuration files, such as .gitattributes, .gitignore, and .git/config.")
@code{$EDITOR} of child processes, making sure they know how to call home.
For remote processes a substitute is provided, which communicates with Emacs
on stdout instead of using a socket as the Emacsclient does.")
(license license:gpl3+)))
(license license:gpl3+))))
(define-public emacs-libgit
(let ((commit "0ef8b13aef011a98b7da756e4f1ce3bb18e4d55a")
@ -936,16 +940,16 @@ replacement.")
(define-public emacs-haskell-mode
(package
(name "emacs-haskell-mode")
(version "17.1")
(version "17.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/haskell/haskell-mode")
(commit (string-append "v" version))))
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0izcasi2v02zh08c863h43m8mmsldzy8pck43cllrfn0zf24v2qn"))))
(base32 "0zxbacqzr84krmhqpvzndnvlcjh1gs1x20ys0dykgd7chyhci5j5"))))
(propagated-inputs
`(("emacs-dash" ,emacs-dash)))
(native-inputs
@ -1770,6 +1774,32 @@ always indented. It reindents after every change, making it more reliable
than @code{electric-indent-mode}.")
(license license:gpl2+)))
(define-public emacs-gcmh
;; No tagged release upstream.
(let ((commit "84c43a4c0b41a595ac6e299fa317d2831813e580")
(revision "0"))
(package
(name "emacs-gcmh")
(version (git-version "0.1" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/koral/gcmh")
(commit commit)))
(sha256
(base32 "1r3wiqhrzh7wvqy484nl031fd4bn4cpvkv9646s4cjgvnnnv7jz3"))
(file-name (git-file-name name version))))
(build-system emacs-build-system)
(home-page "https://gitlab.com/koral/gcmh")
(synopsis "Emacs Garbage Collector Magic Hack")
(description
"This package enforces a sneaky @dfn{garbage collector} (GC) strategy
to minimize GC interference with the activity. During normal use a high GC
threshold is set. When idling GC is immediately triggered and a low threshold
is set.")
(license license:gpl3+))))
(define-public emacs-ctrlf
(package
(name "emacs-ctrlf")
@ -3289,16 +3319,16 @@ This package also includes relevant snippets for yasnippet.")
(define-public emacs-gdscript-mode
(package
(name "emacs-gdscript-mode")
(version "1.2.0")
(version "1.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/godotengine/emacs-gdscript-mode")
(commit (string-append "v" version))))
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "02by4bvdayldbjlz6jkp36m5rgcy2h5bwhqx2cj7wma6xf6cw3lf"))))
(base32 "09q0himrz7a6xgz0jmcl85qc5xhk5fwi6d2vw1n8qaiavm96ksdy"))))
(build-system emacs-build-system)
(home-page "https://github.com/godotengine/emacs-gdscript-mode")
(synopsis "GDScript support and syntax highlighting in Emacs")
@ -24359,7 +24389,7 @@ Files} (@url{http://tools.ietf.org/html/rfc4180}).")
(define-public emacs-org-journal
(package
(name "emacs-org-journal")
(version "2.0.0")
(version "2.1.1")
(source
(origin
(method git-fetch)
@ -24368,7 +24398,7 @@ Files} (@url{http://tools.ietf.org/html/rfc4180}).")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "18dqd0jy2x530lk0h4fcn9cld9qh4w7b3vxa60fpiia628vsv1dg"))))
(base32 "1p9i6v3bwi1ab576vc9qg1ki91197d6nkkg857s52zsan1zlkzzw"))))
(build-system emacs-build-system)
(home-page "https://github.com/bastibe/org-journal")
(synopsis "Simple Org mode journaling mode")
@ -24802,7 +24832,7 @@ picked up when copy-pasting text from buffer to buffer.")
(define-public emacs-org-webring
(package
(name "emacs-org-webring")
(version "1.6")
(version "1.9")
(source
(origin
(method git-fetch)
@ -24812,7 +24842,7 @@ picked up when copy-pasting text from buffer to buffer.")
(file-name (git-file-name name version))
(sha256
(base32
"00d7jqsbfa08rhyv3ry87rgy9ikv233spn4rz0d3riy0bp7b7j6b"))))
"09lm2h5d6xcdwilbmi6xs4qz33d0442m9iys9k36q9vhhakl7w4x"))))
(build-system emacs-build-system)
(arguments
`(#:phases

View File

@ -555,7 +555,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
;; the system's dynamically linked library.
(package
(name "monero")
(version "0.17.0.1")
(version "0.17.1.0")
(source
(origin
(method git-fetch)
@ -575,7 +575,7 @@ other machines/servers. Electroncash does not download the Bitcoin Cash blockch
"external/unbound"))
#t))
(sha256
(base32 "1v0phvg5ralli4dr09a60nq032xqlci5d6v4zfq8304vgrn1ffgp"))))
(base32 "1cngniv7sndy8r0fcfgk737640k53q3kwd36g891p5igcb985qdw"))))
(build-system cmake-build-system)
(native-inputs
`(("doxygen" ,doxygen)
@ -665,7 +665,7 @@ the Monero command line client and daemon.")
(define-public monero-gui
(package
(name "monero-gui")
(version "0.17.0.1")
(version "0.17.1.0")
(source
(origin
(method git-fetch)
@ -674,7 +674,7 @@ the Monero command line client and daemon.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1i9a3ampppyzsl4sllbqlr3w43sjpb3fdfxhb1j4n49p8g0jzmf3"))))
(base32 "07r78ipv4g3i6z822kq380vi3qwlb958rccsy6lyybkhj9y0rx84"))))
(build-system qt-build-system)
(native-inputs
`(,@(package-native-inputs monero)
@ -1034,26 +1034,18 @@ Luhn and family of ISO/IEC 7064 check digit algorithms. ")
(define-public python-duniterpy
(package
(name "python-duniterpy")
(version "0.57.0")
(version "0.60.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "duniterpy" version))
(sha256
(base32 "0rw2c7r9gcqhymp82gbk1ky45zqbypsi2q5x4vdwjc6g00kh7h6l"))))
(base32 "0djn6ykmqbp8l2xbg6z8r7rkz9ijgygp2pr0gc6i7dsrlsqmjh32"))))
(build-system python-build-system)
(arguments
;; FIXME: Tests fail with: "ModuleNotFoundError: No module named
;; 'tests'". Not sure how to handle this.
`(#:tests? #f
#:phases
(modify-phases %standard-phases
;; "setup.py" tries to open missing "requirements.txt".
(add-after 'unpack 'ignore-missing-file
(lambda _
(substitute* "setup.py"
(("open\\('requirements\\.txt'\\)") "[]"))
#t)))))
;; FIXME: Tests fail with: "TypeError: block_uid() missing 1 required
;; positional argument: 'value'".
`(#:tests? #f))
(propagated-inputs
`(("aiohttp" ,python-aiohttp)
("attrs" ,python-attrs)

View File

@ -485,6 +485,35 @@ clone.")
;; under BSD-2.
(license license:gpl2+)))
(define-public tsukundere
(package
(name "tsukundere")
(version "0.2.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.com/leoprikler/tsukundere")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"0qmqch8hh7vsa8qaz853vwbkz0krb106955dnz8dsl7skbm5jpn6"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf-wrapper)
("automake" ,automake)
("guile" ,guile-3.0)
("pkg-config" ,pkg-config)))
(propagated-inputs
`(("guile-sdl2" ,guile3.0-sdl2)))
(home-page "https://gitlab.com/leoprikler/tsukundere")
(synopsis "Visual novel engine")
(description "Tsukundere is a game engine geared heavily towards the
development of visual novels, written on top of Guile-SDL2. It is still
experimental and at the time of writing contains little more than the Guile
modules, that make up its runtime.")
(license license:lgpl3+)))
(define-public sfml
(package
(name "sfml")

View File

@ -5083,7 +5083,7 @@ a style similar to the original Super Mario games.")
(define-public tintin++
(package
(name "tintin++")
(version "2.02.02")
(version "2.02.04")
(source
(origin
(method url-fetch)
@ -5091,7 +5091,7 @@ a style similar to the original Super Mario games.")
(string-drop-right version 1)
"/tintin-" version ".tar.gz"))
(sha256
(base32 "11ylbp8ip7dwmh4gzb53z147pcfxkl3lwhyy8ngyn2zc634vdn65"))))
(base32 "1w1y20vqcikg59gnbxjbhyq2yanwqz1a6wp8vd1qnmil240id4j7"))))
(inputs
`(("gnutls" ,gnutls)
("pcre" ,pcre)

View File

@ -1761,7 +1761,7 @@ track your position right from your laptop.")
license:zlib))))
(define-public grass
(let* ((version "7.8.2")
(let* ((version "7.8.4")
(majorminor (string-join (list-head (string-split version #\.) 2) ""))
(grassxx (string-append "grass" majorminor)))
(package
@ -1773,7 +1773,7 @@ track your position right from your laptop.")
(uri (string-append "https://grass.osgeo.org/" grassxx
"/source/grass-" version ".tar.gz"))
(sha256
(base32 "1fwsm99kz0bxvjk7442qq1h45ikrmhba8bqclafb61gqg1q6ymrk"))))
(base32 "1yfghvp522ijww3n3l5xarjbc21rm0gmlgr3lvwxrv23bvxmllyr"))))
(build-system gnu-build-system)
(inputs
`(("bzip2" ,bzip2)
@ -1865,8 +1865,14 @@ track your position right from your laptop.")
(symlink (string-append dir "/lib")
(string-append out "/lib")))
#t))
(add-after 'install-links 'wrap-python
(assoc-ref python:%standard-phases 'wrap)))))
(add-after 'install-links 'python:wrap
(assoc-ref python:%standard-phases 'wrap))
(add-after 'python:wrap 'wrap-with-python-interpreter
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(wrap-program (string-append out "/bin/" ,grassxx)
`("GRASS_PYTHON" = (,(which "python3"))))
#t))))))
(synopsis "GRASS Geographic Information System")
(description
"GRASS (Geographic Resources Analysis Support System), is a Geographic

View File

@ -74,6 +74,7 @@
(define-module (gnu packages gnome)
#:use-module (gnu packages)
#:use-module (gnu packages admin)
#:use-module (gnu packages aidc)
#:use-module (gnu packages aspell)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
@ -9085,6 +9086,75 @@ specified duration and save it as a GIF encoded animated image file.")
(home-page "https://git.gnome.org/browse/byzanz")
(license license:gpl2+))))
(define-public authenticator
(package
(name "authenticator")
(version "3.32.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.gnome.org/World/Authenticator")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
#:phases
(modify-phases %standard-phases
(add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((prog (string-append (assoc-ref outputs "out")
"/bin/authenticator"))
(pylib (string-append (assoc-ref outputs "out")
"/lib/python"
,(version-major+minor
(package-version python))
"/site-packages")))
(wrap-program prog
`("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
`("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
#t))))))
(native-inputs
`(("desktop-file-utils" ,desktop-file-utils)
("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("gtk+:bin" ,gtk+ "bin")
("pkg-config" ,pkg-config)))
(inputs
`(("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("gtk+" ,gtk+)
("libhandy" ,libhandy-0.0)
("libsecret" ,libsecret)
("python-beautifulsoup4" ,python-beautifulsoup4)
("python-pillow" ,python-pillow)
("python-pyfavicon" ,python-pyfavicon)
("python-pygobject" ,python-pygobject)
("python-pyotp" ,python-pyotp)
("python-pyzbar" ,python-pyzbar)
("yoyo-migrations" ,yoyo-migrations)
("zbar" ,zbar)))
(home-page "https://gitlab.gnome.org/World/Authenticator/")
(synopsis "Two-factor authentication application built for GNOME")
(description
"Authenticator is a two-factor authentication (2FA) application built for
the GNOME desktop environment.
Features:
@itemize
@item QR code scanner
@item Beautiful UI
@item Huge database of more than 560 supported services
@item Keep your PIN tokens secure by locking the application with a password
@item Automatically fetch an image for services using their favicon
@item The possibility to add new services
@end itemize")
(license license:gpl3+)))
(define-public gsound
(package
(name "gsound")
@ -10135,14 +10205,14 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
(define-public lollypop
(package
(name "lollypop")
(version "1.2.32")
(version "1.4.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://adishatz.org/lollypop/"
"lollypop-" version ".tar.xz"))
(sha256
(base32 "1ng9492k8754vlqggbfsyzbmfdx4w17fzc4ad21fr92710na0w5a"))))
(base32 "1hfl68gkvqy5kxlmrsalz78mw1bs1yvqvy2rhg7pzgwiazsdvwzz"))))
(build-system meson-build-system)
(arguments
`(#:imported-modules
@ -10177,6 +10247,7 @@ views can be printed as PDF or PostScript files, or exported to HTML.")
("gst-plugins-base" ,gst-plugins-base)
("libnotify" ,libnotify)
("libsecret" ,libsecret)
("libhandy" ,libhandy)
("libsoup" ,libsoup)
("python" ,python)
("python-beautifulsoup4" ,python-beautifulsoup4)
@ -10300,6 +10371,60 @@ photo-booth-like software, such as Cheese.")
apply fancy special effects and lets you share the fun with others.")
(license license:gpl2+)))
(define-public passwordsafe
(package
(name "passwordsafe")
(version "3.99.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.gnome.org/World/PasswordSafe")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0pi2l4gwf8paxm858mxrcsk5nr0c0zw5ycax40mghndb6b1qmmhf"))))
(build-system meson-build-system)
(arguments
`(#:glib-or-gtk? #t
#:phases
(modify-phases %standard-phases
(add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
(lambda* (#:key outputs #:allow-other-keys)
(let ((prog (string-append (assoc-ref outputs "out")
"/bin/gnome-passwordsafe"))
(pylib (string-append (assoc-ref outputs "out")
"/lib/python"
,(version-major+minor
(package-version python))
"/site-packages")))
(wrap-program prog
`("PYTHONPATH" = (,(getenv "PYTHONPATH") ,pylib))
`("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
#t))))))
(native-inputs
`(("desktop-file-utils" ,desktop-file-utils)
("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")
("gobject-introspection" ,gobject-introspection)
("gtk+:bin" ,gtk+ "bin")
("pkg-config" ,pkg-config)))
(inputs
`(("glib" ,glib)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("gtk+" ,gtk+)
("libhandy" ,libhandy-0.0)
("libpwquality" ,libpwquality)
("python-pygobject" ,python-pygobject)
("python-pykeepass" ,python-pykeepass)))
(home-page "https://gitlab.gnome.org/World/PasswordSafe")
(synopsis "Password manager for the GNOME desktop")
(description
"Password Safe is a password manager which makes use of the KeePass v4
format. It integrates perfectly with the GNOME desktop and provides an easy
and uncluttered interface for the management of password databases.")
(license license:gpl3+)))
(define-public sound-juicer
(package
(name "sound-juicer")

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
@ -591,10 +591,14 @@ from forcing GEXP-PROMISE."
(base32
"0266gp8vs4avlfdnr8dj7b47msxv1vkd0xpnifp04v4scvgj0yaj"))))
;; 'search-patch' returns either a valid file name or #f, so wrap it
;; in 'assume-valid-file-name' to avoid 'local-file' warnings.
(gnuzilla-fixes-patch
(local-file (search-patch "icecat-use-older-reveal-hidden-html.patch")))
(local-file (assume-valid-file-name
(search-patch "icecat-use-older-reveal-hidden-html.patch"))))
(makeicecat-patch
(local-file (search-patch "icecat-makeicecat.patch"))))
(local-file (assume-valid-file-name
(search-patch "icecat-makeicecat.patch")))))
(origin
(method computed-origin-method)
@ -1157,11 +1161,11 @@ standards of the IceCat project.")
(cpe-version . ,(first (string-split version #\-)))))))
;; Update this together with icecat!
(define %icedove-build-id "20200926000000") ;must be of the form YYYYMMDDhhmmss
(define %icedove-build-id "20201007000000") ;must be of the form YYYYMMDDhhmmss
(define-public icedove
(package
(name "icedove")
(version "78.3.1")
(version "78.3.2")
(source icecat-source)
(properties
`((cpe-name . "thunderbird_esr")))
@ -1441,7 +1445,7 @@ standards of the IceCat project.")
;; in the Thunderbird release tarball. We don't use the release
;; tarball because it duplicates the Icecat sources and only adds the
;; "comm" directory, which is provided by this repository.
,(let ((changeset "00912779d73faef4277c57fe99aa5259b11d244d"))
,(let ((changeset "6ee0e0ff64f4ccda9c478426d0b5d15cd583f8e6"))
(origin
(method hg-fetch)
(uri (hg-reference
@ -1450,7 +1454,7 @@ standards of the IceCat project.")
(file-name (string-append "thunderbird-" version "-checkout"))
(sha256
(base32
"12isvk6q8miwn81kimrgcmjh4vsmdbbx93q9pafgxlx3p92s5v8h")))))
"0w8p35x53g5anck69xnpn688600n2pyx9c7y640szl1ssdsgch82")))))
("autoconf" ,autoconf-2.13)
("cargo" ,rust-1.41 "cargo")
("clang" ,clang)

View File

@ -21,6 +21,7 @@
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.com>
;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 raingloom <raingloom@riseup.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -803,8 +804,8 @@ packages.")
(license license:bsd-3))))
(define-public go-golang-org-x-sys
(let ((commit "c709ea063b76879dc9915358f55d4d77c16ab6d5")
(revision "6"))
(let ((commit "05986578812163b26672dabd9b425240ae2bb0ad")
(revision "7"))
(package
(name "go-golang-org-x-sys")
(version (git-version "0.0.0" revision commit))
@ -816,7 +817,7 @@ packages.")
(file-name (git-file-name name version))
(sha256
(base32
"15nq53a6kcqchng4j0d1pjw0m6hny6126nhjdwqw5n9dzh6a226d"))))
"1q2rxb6z5l6pmlckjsz2l0b8lw7bqgk6frhzbmi1dv0y5irb2ka7"))))
(build-system go-build-system)
(arguments
`(#:import-path "golang.org/x/sys"
@ -5743,3 +5744,86 @@ Included are the following:
except that it adds convenience functions that use the fmt package to format
error messages.")
(license license:bsd-3)))
(define-public go-github-com-arceliar-phony
(let ((commit "d0c68492aca0bd4b5c5c8e0452c9b4c8af923eaf")
(revision "0"))
(package
(name "go-github-com-arceliar-phony")
(version (git-version "0.0.0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Arceliar/phony")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0876y0hlb1zh8hn0pxrb5zfdadvaqmqwlr66p19yl2a76galz992"))))
(arguments
'(#:import-path "github.com/Arceliar/phony"))
(build-system go-build-system)
(home-page "https://github.com/Arceliar/phony")
(synopsis "Very minimal actor model library")
(description "Phony is a very minimal actor model library for Go,
inspired by the causal messaging system in the Pony programming language.")
(license license:expat))))
(define-public go-github-com-cheggaaa-pb
(package
(name "go-github-com-cheggaaa-pb")
(version "3.0.4")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/cheggaaa/pb/")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0xhsv9yf3fz918ay6w0d87jnb3hk9vxvi16jk172kqq26x7jixd0"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/cheggaaa/pb/"))
(propagated-inputs
`(("go-github-com-fatih-color" ,go-github-com-fatih-color)
("go-github-com-mattn-go-colorable" ,go-github-com-mattn-go-colorable)
("go-github.com-mattn-go-runewidth" ,go-github.com-mattn-go-runewidth)
("go-golang-org-x-sys" ,go-golang-org-x-sys)))
(native-inputs
`(("go-github-com-mattn-go-isatty" ,go-github-com-mattn-go-isatty)))
(home-page "https://github.com/cheggaaa/pb/")
(synopsis "Console progress bar for Go")
(description "This package is a Go library that draws progress bars on
the terminal.")
(license license:bsd-3)))
(define-public go-github-com-gologme-log
;; this is the same as v1.2.0, only the LICENSE file changed
(let ((commit "720ba0b3ccf0a91bc6018c9967a2479f93f56a55"))
(package
(name "go-github-com-gologme-log")
(version "1.2.0")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/gologme/log")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0z3gs5ngv2jszp42ypp3ai0pn410v3b2m674g73ma7vsbn2yjk1n"))))
(build-system go-build-system)
(arguments
'(#:import-path "github.com/gologme/log"))
(home-page "https://github.com/gologme/log/")
(synopsis
"Fork of the golang built in log package to add support for levels")
(description "This package is a drop in replacement for the built-in Go
log package. All the functionality of the built-in package still exists and
is unchanged. This package contains a series of small enhancements and
additions.")
(license license:bsd-3))))

View File

@ -179,7 +179,7 @@ coordinates as well as partial support for adjustments in global coordinate syst
(define-public gpxsee
(package
(name "gpxsee")
(version "7.30")
(version "7.34")
(source (origin
(method git-fetch)
(uri (git-reference
@ -188,7 +188,7 @@ coordinates as well as partial support for adjustments in global coordinate syst
(file-name (git-file-name name version))
(sha256
(base32
"09gajwqc30r9a2sn972qdx3gx0gki9n0zafq986hn6zsr3z43mfs"))))
"0cdq2bqgkcqcyvasnrlgpl97b0kfi65iq2q6yy7dpp9xw4w764b1"))))
(build-system gnu-build-system)
(arguments
'(#:phases

View File

@ -1899,14 +1899,14 @@ does not deal with windowing system surfaces, drawing, scene graphs, or input.")
(define-public spread-sheet-widget
(package
(name "spread-sheet-widget")
(version "0.6")
(version "0.7")
(source
(origin
(method url-fetch)
(uri (string-append "https://alpha.gnu.org/gnu/ssw/"
"spread-sheet-widget-" version ".tar.gz"))
(sha256
(base32 "08ck9l697xg8vpya5h07raq837i4pqxjqzx30vhscq4xpps2b8kj"))))
(base32 "09rzgp7gabnzab460x874a1ibgyjiibpwzsz5srn9zs6jv2jdxjb"))))
(build-system gnu-build-system)
(native-inputs
`(("glib" ,glib "bin") ; for glib-genmarshal, etc.

View File

@ -628,7 +628,7 @@ and mIRC chat codes.")
(define-public kmonad
(package
(name "kmonad")
(version "0.4.0")
(version "0.4.1")
(source
(origin
(method git-fetch)
@ -637,7 +637,7 @@ and mIRC chat codes.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "064gnzzcm6fnxfiildbjmgbdxkhqvp61zrl6qhkl1pgbn27j1mll"))))
(base32 "1rp880zxvrznx0y1k464wjrds441dpsz94syhrkaw5dnmxf74yjd"))))
(build-system haskell-build-system)
(arguments
`(#:phases

View File

@ -1411,7 +1411,7 @@ convert, manipulate, filter and display a wide variety of image formats.")
(define-public jasper
(package
(name "jasper")
(version "2.0.21")
(version "2.0.22")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1420,21 +1420,10 @@ convert, manipulate, filter and display a wide variety of image formats.")
(file-name (git-file-name name version))
(sha256
(base32
"0p3qr4j4pjs5vn5amm6ih9hb4wmm72marhmfw08svcs4rrr88p9y"))))
"1qw96mwwd9xw21jg5s7njqgbam566skj93i81aflijy40s31dfwz"))))
(build-system cmake-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'disable-checking-disabled-things
(lambda _
;; The MIF codec was disabled for security reasons in JasPer 2.0.20
;; but its test suite still assumes that the format is supported.
(for-each delete-file
(find-files "data/test" "\\.mif$")) ; for run_test_1
(substitute* "test/bin/run_test_2"
(("image_formats\\+=\\(mif\\)") ""))
#t)))))
(inputs `(("libjpeg" ,libjpeg-turbo)))
(inputs
`(("libjpeg" ,libjpeg-turbo)))
(synopsis "JPEG-2000 library")
(description "The JasPer Project is an initiative to provide a reference
implementation of the codec specified in the JPEG-2000 Part-1 standard (i.e.,
@ -1543,33 +1532,6 @@ files (known as @dfn{steganography}). Neither color nor sample frequencies are
changed, making the embedding resistant against first-order statistical tests.")
(license license:gpl2+)))
(define-public stb-image-for-extempore
(let ((revision "1")
(commit "152a250a702bf28951bb0220d63bc0c99830c498"))
(package
(name "stb-image-for-extempore")
(version (string-append "0-" revision "." (string-take commit 9)))
(source
(origin (method git-fetch)
(uri (git-reference
(url "https://github.com/extemporelang/stb")
(commit commit)))
(sha256
(base32
"0y0aa20pj9311x2ii06zg8xs34idg14hfgldqc5ymizc6cf1qiqv"))
(file-name (string-append name "-" version "-checkout"))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ; no tests included
;; Extempore refuses to build on architectures other than x86_64
(supported-systems '("x86_64-linux"))
(home-page "https://github.com/extemporelang/stb")
(synopsis "Image library for Extempore")
(description
"This package is a collection of assorted single-file libraries. Of
all included libraries only the image loading and decoding library is
installed as @code{stb_image}.")
(license license:public-domain))))
(define-public optipng
(package
(name "optipng")

View File

@ -214,7 +214,7 @@ written in Go.")
(define-public go-ipfs
(package
(name "go-ipfs")
(version "0.6.0")
(version "0.7.0")
(source
(origin
(method url-fetch/tarbomb)
@ -222,7 +222,7 @@ written in Go.")
"https://dist.ipfs.io/go-ipfs/v" version
"/go-ipfs-source.tar.gz"))
(sha256
(base32 "14bgq2j2bjjy0pspy2lsj5dm3w9rmfha0l8kyq5ig86yhc4nzn80"))
(base32 "1fkzwm4qxxpmbjammk6s5qcyjxivfa0ydqz4mpz1w756c4jq0jf3"))
(file-name (string-append name "-" version "-source"))))
(build-system go-build-system)
(arguments

View File

@ -2,6 +2,7 @@
;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
;;; Copyright © 2020 Tim Howes <timhowes@lavabit.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -53,7 +54,7 @@
(let ((commit "35b1504507a7a4168caae3d78db54d1121b121e1")
(revision "1"))
;; When upgrading Julia, also upgrade this. Get the commit from
;; https://github.com/JuliaLang/julia/blob/v1.4.1/deps/libuv.version
;; https://github.com/JuliaLang/julia/blob/v1.5.2/deps/libuv.version
(package
(inherit libuv)
(name "libuv-julia")
@ -103,7 +104,7 @@
"/deps/patches/" name ".patch"))
(define (julia-patch name sha)
(let ((version "1.4.1"))
(let ((version "1.5.2"))
(origin (method url-fetch)
(uri (julia-patch-url version name))
(sha256 (base32 sha))
@ -111,10 +112,10 @@
(define llvm-julia
(package
(inherit llvm-8)
(inherit llvm-9)
(name "llvm-julia")
(source (origin
(inherit (package-source llvm-8))
(inherit (package-source llvm-9))
;; Those patches are inside the Julia source repo.
;; They are _not_ Julia specific (https://github.com/julialang/julia#llvm)
;; but they are required to build Julia.
@ -124,50 +125,39 @@
((name hash)
(julia-patch name hash)))
(list
'("llvm-7.0-D44650"
"1h55kkmkiisfj6sk956if2bcj9s0v6n5czn8dxb870vp5nccj3ir")
'("llvm-6.0-DISABLE_ABI_CHECKS"
"014fawd1ba7yckalypfld22zgic87x9nx3cim42zrwygywd36pyg")
'("llvm-6.0-NVPTX-addrspaces"
"1qdi2zmrjsrj0h84zv2vyly2hjcn4f67mfy0s1q353g4v4jkscqc")
'("llvm-D27629-AArch64-large_model_6.0.1"
"1qrshmlqvnasdyc158vfn3hnbigqph3lsq7acb9w8lwkpnnm2j4z")
'("llvm8-D34078-vectorize-fdiv"
"19spqc3xsazn1xs9gpcgv9ldadfkv49rmc5khl7sf1dlmhgi4602")
'("llvm7-D50010-VNCoercion-ni"
"18scg6aa036xa1508s7q93w9dvc5gp69fz6yl6fkh4yffw4gymw6")
'("llvm-8.0-D50167-scev-umin"
"0g9w2x8yryjdkihnrf18x0yi5bi14c5p8wffda1w732dr5ckzk94")
'("llvm-D57118-powerpc"
"0vxz5s0s9b625v1rv8lg1566yhxh1i91ydzmvy5s7njvzc7p19aw")
'("llvm8-WASM-addrspaces"
"1176agj9hh7csdm2lnklb42zcdsb3q6lx9jiyp2shn4p2678y76q")
'("llvm-7.0-D44650"
"1h55kkmkiisfj6sk956if2bcj9s0v6n5czn8dxb870vp5nccj3ir")
'("llvm9-D50010-VNCoercion-ni"
"1s1d3sjsiq4vxg7ncy5cz56zgy5vcq6ls3iqaiqkvr23wyryqmdx")
'("llvm-exegesis-mingw"
"0ph1cj1j7arvf1xq2xcr7qf9g0cpdl14fincgr67vpi520zvd3vp")
'("llvm-test-plugin-mingw"
"12z738cnahbf6n381im7i0hxp1m6k9hrnfjlmq9sac46nxly9gnj")
'("llvm-8.0-D66401-mingw-reloc"
"15v3p5sznn979cfnd7gdn3nd701fd7xd5aks6lnj1mslvljlq3ls")
'("llvm7-revert-D44485"
"0f59kq3p3mpwsbmskypbi4zn01l6ig0x7v2rjp08k2r8z8m6fa8n")
'("llvm-8.0-D63688-wasm-isLocal"
"0i9wi5n63ip3802z6m7aj3p07hkqjlmp4vg4wq3xkf9f6w9rksab")
'("llvm-8.0-D55758-tablegen-cond"
"1l08mg7qigravi7plsq3yzya80fljnp95n8faddr29wbr2qr0655")
'("llvm-8.0-D59389-refactor-wmma"
"0rgrwk4xlwpk7yai2j7xadcfws93rmk2hhh44fysa88imvrbp478")
'("llvm-8.0-D59393-mma-ptx63-fix"
"094jcsxbcx9fljj623mgmc0rjpk12s2rs0di0ck0hakzhr8mbv5n")
'("llvm-8.0-D66657-codegen-degenerate"
"1n1ddx19h90bbpimdyd9dh8fsm6gb93xxyqm4ljkxa1k3cx2vm72")
'("llvm-8.0-D71495-vectorize-freduce"
"1zff08wvji9lnpskk4b3p5zyjsy5hhy23ynxjqlj9dw7jvvfrf0p")
'("llvm-8.0-D75072-SCEV-add-type"
"0amlyyndsc90ml2k6prdahf24q0j23nfmlbqf8gcqcxpl5sqq3i6")
'("llvm-8.0-D65174-limit-merge-stores"
"1ls5114fhgip9rbqabqc16mi367ra0k75ngc1vyqqhq1ghm9x7y9"))))))
'("llvm-D75072-SCEV-add-type"
"029a3fywsm233vf48mscina24idd50dc75wr70lmimrhwnw27p0z")
'("llvm-9.0-D65174-limit-merge-stores"
"04bff1mnblfj9mxfdwr1qdnw3i3szmp60gnhxwas5y68qg33z6j0")
'("llvm9-D71443-PPC-MC-redef-symbol"
"1c93nv7rgc9jg5mqrnvv08xib1789qvlql94fwggh18mp3b9hbgy")
'("llvm-9.0-D78196"
"08a43hyg7yyqjq2vmfsmppf34xcz60wq6y9zw5fdyhw2h1mcnmns")
'("llvm-julia-tsan-custom-as"
"0awh40kf6lm4wn1nsjd1bmhfwq7rqj811szanp2xkpspykw9hg9s")
'("llvm-9.0-D85499"
"0vxlr35srvbvihlgrxq15v6dylp90vgi0qahj22j01jgqmdasjkm"))))
(patch-flags '("-p1"))))
(arguments
(substitute-keyword-arguments (package-arguments llvm-8)
(substitute-keyword-arguments (package-arguments llvm-9)
((#:configure-flags flags)
`(list ;; Taken from NixOS. Only way I could get libLLVM-6.0.so
"-DCMAKE_BUILD_TYPE=Release"
@ -231,7 +221,7 @@ libraries. It is also a bit like @code{ldd} and @code{otool -L}.")
(define-public julia
(package
(name "julia")
(version "1.4.1")
(version "1.5.2")
(source (origin
(method url-fetch)
(uri (string-append
@ -239,7 +229,7 @@ libraries. It is also a bit like @code{ldd} and @code{otool -L}.")
version "/julia-" version ".tar.gz"))
(sha256
(base32
"030aza3qj5zcinxbrbqgi7p64q6klwq2bhwccraarx7l0hg9lw3i"))
"08wazf3f1lb2c2c5s700kyak8llfqwki8xlnqyrbwmwxjj801p2n"))
(patches
(search-patches "julia-SOURCE_DATE_EPOCH-mtime.patch"))))
(build-system gnu-build-system)
@ -344,16 +334,6 @@ libraries. It is also a bit like @code{ldd} and @code{otool -L}.")
"tests = filter(e->!in(e,[\"backtrace\",\"exceptions\",\"precompile\",
\"client\",\"stacktraces\"]),
testnames)"))
;; precompile test is broken, fixed in
;; fed29f893544d1dc8f86444c65d632c68168d0f3
(substitute* "test/precompile.jl"
(("@test !isdefined\\(Base.Nothing.name.mt")
"# @test !isdefined(Base.Nothing.name.mt"))
;; When HOME is not set, julia calls uv_os_homedir, which in
;; turns call getpwuid_r. Add the HOME env variable to the
;; external julia call to fix this
(substitute* "test/cmdlineargs.jl"
(("\"JULIA_PROJECT\"") "\"HOME\"=>\"/tmp\", \"JULIA_PROJECT\""))
;; Marking the test as broken as it's a known bug:
;; https://github.com/JuliaLang/julia/issues/32377
(substitute* "stdlib/REPL/test/replcompletions.jl"
@ -361,11 +341,16 @@ libraries. It is also a bit like @code{ldd} and @code{otool -L}.")
;; Dates has a similar bug:
;; https://github.com/JuliaLang/julia/issues/34655
(substitute* "stdlib/Dates/test/io.jl"
(("\"Dates.Date") "\"Date")
(("\"Dates.Time") "\"Time"))
;; Upstream bug I found when packaging
;; https://github.com/JuliaLang/julia/issues/35785
(substitute* "test/file.jl"
(("@test dirname\\(t\\) == d") "@test_broken dirname(t) == d"))
;; Deprecation test fails with --depwarn=no
;; https://github.com/JuliaLang/julia/issues/37673
(substitute* "test/Makefile"
(("./runtests.jl") "--depwarn=error ./runtests.jl"))
#t))
(add-after 'install 'make-wrapper
(lambda* (#:key inputs outputs #:allow-other-keys)
@ -416,7 +401,7 @@ libraries. It is also a bit like @code{ldd} and @code{otool -L}.")
(assoc-ref %build-inputs "utf8proc")
"/include")
"USE_SYSTEM_LLVM=1"
"LLVM_VER=8.0.0"
"LLVM_VER=9.0.1"
"USE_LLVM_SHLIB=1"
"USE_SYSTEM_LIBUNWIND=1"

View File

@ -374,7 +374,7 @@ illustrate project schedules.")
(define-public krita
(package
(name "krita")
(version "4.3.0")
(version "4.4.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -382,7 +382,7 @@ illustrate project schedules.")
"/krita-" version ".tar.gz"))
(sha256
(base32
"1njbxv7b56if838gv7ydzm1sprgmaabnp0jlj0bxryxzfdy8hwfh"))))
"13r7x4gql5wp88hmpv9m6m3lh7gsybm4la48hqbjcb3iwiv86pzw"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f

View File

@ -1053,7 +1053,7 @@ noun phrases, verb phrases, etc.).")
(define-public praat
(package
(name "praat")
(version "6.1.26")
(version "6.1.27")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1062,7 +1062,7 @@ noun phrases, verb phrases, etc.).")
(file-name (git-file-name name version))
(sha256
(base32
"12y4x7c34ddlg22kc82n17if1dqm8lyap9jg0kh1vagkdm9dy02w"))))
"0wd2xy5shyk00d91yrif1c2xwzdl4i7qpdfa530f845yzn7k2ks1"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no test target

View File

@ -10,7 +10,7 @@
;;; Copyright © 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2018, 2020 Jonathan Brielmaier <jonathan.brielmaier@web.de>
;;; Copyright © 2019 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2020 Marcin Karpezo <sirmacik@wioo.waw.pl>
;;;
@ -42,6 +42,7 @@
#:use-module (ice-9 match)
#:use-module (gnu packages)
#:use-module (gnu packages aidc)
#:use-module (gnu packages aspell)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
@ -971,6 +972,41 @@ library.")
(license
(list license:gpl2 license:mpl1.1 license:cc-by4.0 license:lgpl2.1 license:asl2.0))))
(define-public hunspell-dict-de
(package
(name "hunspell-dict-de")
(version "20161207")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.j3e.de/ispell/igerman98/dict/"
"igerman98-" version ".tar.bz2"))
(sha256
(base32 "1a3055hp2bc4q4nlg3gmg0147p3a1zlfnc65xiv2v9pyql1nya8p"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags '("hunspell/de_DE.dic")
#:phases
(modify-phases %standard-phases
(delete 'configure)
(replace 'install ;no install target
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(share (string-append out "/share/hunspell/")))
(install-file "hunspell/de_DE.aff" share)
(install-file "hunspell/de_DE.dic" share)
#t))))
#:tests? #f)) ; no tests
(native-inputs
`(("hunspell" ,hunspell)
("ispell" ,ispell)
("perl" ,perl)))
(synopsis "Hunspell dictionary for German (de_DE)")
(description "This package provides a dictionary for the Hunspell
spell-checking library.")
(home-page "https://www.j3e.de/ispell/igerman98/")
(license (list license:gpl2 license:gpl3))))
(define-public hyphen
(package
(name "hyphen")

View File

@ -352,15 +352,15 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The current "stable" kernel. That is, the most recently released major
;; version.
(define-public linux-libre-5.8-version "5.8.14")
(define-public linux-libre-5.8-version "5.8.15")
(define deblob-scripts-5.8
(linux-libre-deblob-scripts
linux-libre-5.8-version
(base32 "07z7sglyrfh0706icqqf3shadf638pvyid9386r661ds5lbsa2mw")
(base32 "0j6jba5fcddqlb42f95gjl78jisfla4nswqila074gglcrbnl9q7")))
(base32 "0z28yj4f7hhc253hssslm6xl9sg92agbiw50jxb9y72d8zp6sksq")))
(define-public linux-libre-5.8-pristine-source
(let ((version linux-libre-5.8-version)
(hash (base32 "1bzh82jpwcxsdzp6p1r8qlq9v5x79flhnzyimkcll8wdh28pjxpf")))
(hash (base32 "0hfnq4n902pws8sjxd1lsdxxa0v45g988imp73xnqfqv2d71r0bj")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.8)))
@ -368,20 +368,20 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
;; The "longterm" kernels — the older releases with long-term upstream support.
;; Here are the support timelines:
;; <https://www.kernel.org/category/releases.html>
(define-public linux-libre-5.4-version "5.4.70")
(define-public linux-libre-5.4-version "5.4.71")
(define deblob-scripts-5.4
(linux-libre-deblob-scripts
linux-libre-5.4-version
(base32 "0ckxn7k5zgcqk30dq943bnamr6a6zjbw2aqjl3x30f4kvh5f6k25")
(base32 "1b3q88i2qfdxyvpi9f7jds0qlb8hfpw87mgia096ax6822c2cmyb")))
(base32 "1h6gbc9cfhb7dqx669iq26a23whka6km5av0ysk61aaz2z57vkrk")))
(define-public linux-libre-5.4-pristine-source
(let ((version linux-libre-5.4-version)
(hash (base32 "01shqhibrxirl9bik8jwiag70n9n0l7782xh73gkb8jvbh4dicy0")))
(hash (base32 "1ivcimngj5h7lxslkrdljpfw9hfvdhrm8wrp7gp4d3gk7kpljw3k")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-5.4)))
(define-public linux-libre-4.19-version "4.19.150")
(define-public linux-libre-4.19-version "4.19.151")
(define deblob-scripts-4.19
(linux-libre-deblob-scripts
linux-libre-4.19-version
@ -389,12 +389,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1jiaw0as1ippkrjdpd52657w5mz9qczg3y2hlra7m9k0xawwiqlf")))
(define-public linux-libre-4.19-pristine-source
(let ((version linux-libre-4.19-version)
(hash (base32 "1kmsrinhy67vh34m6z3xinwg3v6z8jm7v1asq6rqqkba13phkxzj")))
(hash (base32 "0vm3nsi9la3azxrsvndbd6fpz79pch7309f2144xyxszsk339cf7")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.19)))
(define-public linux-libre-4.14-version "4.14.200")
(define-public linux-libre-4.14-version "4.14.201")
(define deblob-scripts-4.14
(linux-libre-deblob-scripts
linux-libre-4.14-version
@ -402,12 +402,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "1qij18inijj6c3ma8hv98yjagnzxdxyn134da9fd23ky8q6hbvky")))
(define-public linux-libre-4.14-pristine-source
(let ((version linux-libre-4.14-version)
(hash (base32 "0f4sd4fqgm1wbhmrsib04ry5aza84mlc8747y5wm6jx34h14lh2x")))
(hash (base32 "0nr3w5m7dz28v7qfhp99ih4c369qrhq751wfikbz8ga3di0dqa72")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.14)))
(define-public linux-libre-4.9-version "4.9.238")
(define-public linux-libre-4.9-version "4.9.239")
(define deblob-scripts-4.9
(linux-libre-deblob-scripts
linux-libre-4.9-version
@ -415,12 +415,12 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0fxajshb75siq39lj5h8xvhdj8lcmddkslwlyj65rhlwk6g2r4b2")))
(define-public linux-libre-4.9-pristine-source
(let ((version linux-libre-4.9-version)
(hash (base32 "0gsa2g5yjc7459ja107nla700ma32sg57dyj8q2xzi0yfw5zdsmi")))
(hash (base32 "0lfbn5amykvwz1svvxayzhsz1dvm4mgzsnq1g0wqffclxm148hr3")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.9)))
(define-public linux-libre-4.4-version "4.4.238")
(define-public linux-libre-4.4-version "4.4.239")
(define deblob-scripts-4.4
(linux-libre-deblob-scripts
linux-libre-4.4-version
@ -428,7 +428,7 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS."
(base32 "0hhin1jpfkd6nwrb6xqxjzl3hdxy4pn8a15hy2d3d83yw6pflbsf")))
(define-public linux-libre-4.4-pristine-source
(let ((version linux-libre-4.4-version)
(hash (base32 "0r1kb7p0zf0nkavvf9nr9hs7bdjym43cqv87hkp7vrqpbh1i8y06")))
(hash (base32 "03myd9ngmjmnddh4iqqsgcfg9rd11vyvwym38yh4m1p08j1zbg0k")))
(make-linux-libre-source version
(%upstream-linux-source version hash)
deblob-scripts-4.4)))
@ -2271,7 +2271,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
(define-public iproute
(package
(name "iproute2")
(version "5.8.0")
(version "5.9.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -2279,7 +2279,7 @@ that the Ethernet protocol is much simpler than the IP protocol.")
version ".tar.xz"))
(sha256
(base32
"0vk4vickrpahdhl3zazr2qn2bf99v5549ncirjpwiy4h0a4izkfg"))))
"1kys6dmhrl43iaq95n5sh02p39d7bq8i5y672qrzgwnwpjaaqpd2"))))
(build-system gnu-build-system)
(arguments
`( ;; There is a test suite, but it wants network namespaces and sudo.
@ -6446,17 +6446,18 @@ available in the kernel Linux.")
(define-public cpuid
(package
(name "cpuid")
(version "20200427")
(version "20201006")
(source (origin
(method url-fetch)
(uri (string-append "http://www.etallen.com/cpuid/cpuid-"
version ".src.tar.gz"))
(sha256
(base32
"1m31238z2ya8f8pzpyklwp0ksf5xicqrw1z941hhhx913wzldaf1"))))
"19jnkh57f979b78ak5mpxmdvnkgc33r55cw9shgd2hc380b3zi8k"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags '("CC=gcc")
`(#:make-flags
(list (string-append "CC=" ,(cc-for-target)))
#:tests? #f ; no tests
#:phases (modify-phases %standard-phases
(delete 'configure) ; no configure script
@ -7023,7 +7024,7 @@ the superuser to make device nodes.")
(define-public fakeroot
(package
(name "fakeroot")
(version "1.25.1")
(version "1.25.3")
(source (origin
;; There are no tags in the repository, so take this snapshot.
(method url-fetch)
@ -7032,7 +7033,7 @@ the superuser to make device nodes.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1ianaacwpjcw02shfiyybkqh5r6il4lvxin10n4y66kw0p7i3kcm"))))
"0v4m3v1bdqvblwj3vqsb3mllgbci6dsgsydq6765nzvz6n1kd44f"))))
(build-system gnu-build-system)
(arguments
`(#:phases

View File

@ -87,68 +87,6 @@ as \"x86_64-linux\"."
(string-append "https://releases.llvm.org/" version "/" component "-"
version ".src.tar.xz")))
(define-public llvm-10
(package
(name "llvm")
(version "10.0.0")
(source
(origin
(method url-fetch)
(uri (llvm-uri "llvm" version))
(sha256
(base32
"1pwgm6cr0xr5a0hrbqs1zvsvvjvy0yq1y47c96804wcs795s90yz"))))
(build-system cmake-build-system)
(outputs '("out" "opt-viewer"))
(native-inputs
`(("python" ,python-2) ;bytes->str conversion in clang>=3.7 needs python-2
("perl" ,perl)))
(inputs
`(("libffi" ,libffi)))
(propagated-inputs
`(("zlib" ,zlib))) ;to use output from llvm-config
(arguments
`(#:configure-flags '("-DCMAKE_SKIP_BUILD_RPATH=FALSE"
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
"-DBUILD_SHARED_LIBS:BOOL=TRUE"
"-DLLVM_ENABLE_FFI:BOOL=TRUE"
"-DLLVM_REQUIRES_RTTI=1" ; For some third-party utilities
"-DLLVM_INSTALL_UTILS=ON") ; Needed for rustc.
;; Don't use '-g' during the build, to save space.
#:build-type "Release"
#:phases
(modify-phases %standard-phases
(add-before 'build 'shared-lib-workaround
;; Even with CMAKE_SKIP_BUILD_RPATH=FALSE, llvm-tblgen
;; doesn't seem to get the correct rpath to be able to run
;; from the build directory. Set LD_LIBRARY_PATH as a
;; workaround.
(lambda _
(setenv "LD_LIBRARY_PATH"
(string-append (getcwd) "/lib"))
#t))
(add-after 'install 'install-opt-viewer
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(opt-viewer-out (assoc-ref outputs "opt-viewer"))
(opt-viewer-share-dir (string-append opt-viewer-out "/share"))
(opt-viewer-dir (string-append opt-viewer-share-dir "/opt-viewer")))
(mkdir-p opt-viewer-share-dir)
(rename-file (string-append out "/share/opt-viewer")
opt-viewer-dir))
#t)))))
(home-page "https://www.llvm.org")
(synopsis "Optimizing compiler infrastructure")
(description
"LLVM is a compiler infrastructure designed for compile-time, link-time,
runtime, and idle-time optimization of programs from arbitrary programming
languages. It currently supports compilation of C and C++ programs, using
front-ends derived from GCC 4.0.1. A new front-end for the C family of
languages is in development. The compiler infrastructure includes mirror sets
of programming tools as well as libraries with equivalent functionality.")
(license license:asl2.0))) ;with LLVM exceptions, see LICENSE.txt
(define* (clang-runtime-from-llvm llvm hash
#:optional (patches '()))
(package
@ -512,6 +450,101 @@ output), and Binutils.")
("libc-debug" ,glibc "debug")
("libc-static" ,glibc "static")))))
(define-public llvm-11
(package
(name "llvm")
(version "11.0.0")
(source
(origin
(method url-fetch)
(uri (llvm-uri "llvm" version))
(sha256
(base32
"0s94lwil98w7zb7cjrbnxli0z7gklb312pkw74xs1d6zk346hgwi"))))
(build-system cmake-build-system)
(outputs '("out" "opt-viewer"))
(native-inputs
`(("python" ,python-2) ;bytes->str conversion in clang>=3.7 needs python-2
("perl" ,perl)))
(inputs
`(("libffi" ,libffi)))
(propagated-inputs
`(("zlib" ,zlib))) ;to use output from llvm-config
(arguments
`(#:configure-flags '("-DCMAKE_SKIP_BUILD_RPATH=FALSE"
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"
"-DBUILD_SHARED_LIBS:BOOL=TRUE"
"-DLLVM_ENABLE_FFI:BOOL=TRUE"
"-DLLVM_REQUIRES_RTTI=1" ; For some third-party utilities
"-DLLVM_INSTALL_UTILS=ON") ; Needed for rustc.
;; Don't use '-g' during the build, to save space.
#:build-type "Release"
#:phases
(modify-phases %standard-phases
(add-before 'build 'shared-lib-workaround
;; Even with CMAKE_SKIP_BUILD_RPATH=FALSE, llvm-tblgen
;; doesn't seem to get the correct rpath to be able to run
;; from the build directory. Set LD_LIBRARY_PATH as a
;; workaround.
(lambda _
(setenv "LD_LIBRARY_PATH"
(string-append (getcwd) "/lib"))
#t))
(add-after 'install 'install-opt-viewer
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(opt-viewer-out (assoc-ref outputs "opt-viewer"))
(opt-viewer-share-dir (string-append opt-viewer-out "/share"))
(opt-viewer-dir (string-append opt-viewer-share-dir "/opt-viewer")))
(mkdir-p opt-viewer-share-dir)
(rename-file (string-append out "/share/opt-viewer")
opt-viewer-dir))
#t)))))
(home-page "https://www.llvm.org")
(synopsis "Optimizing compiler infrastructure")
(description
"LLVM is a compiler infrastructure designed for compile-time, link-time,
runtime, and idle-time optimization of programs from arbitrary programming
languages. It currently supports compilation of C and C++ programs, using
front-ends derived from GCC 4.0.1. A new front-end for the C family of
languages is in development. The compiler infrastructure includes mirror sets
of programming tools as well as libraries with equivalent functionality.")
(license license:asl2.0))) ;with LLVM exceptions, see LICENSE.txt
(define-public clang-runtime-11
(clang-runtime-from-llvm
llvm-11
"0d5j5l8phwqjjscmk8rmqn0i2i0abl537gdbkagl8fjpzy1gyjip"))
(define-public clang-11
(clang-from-llvm llvm-11 clang-runtime-11
"02ajkij85966vd150iy246mv16dsaph1kfi0y8wnncp8w6nar5hg"
#:patches '("clang-11.0-libc-search-path.patch")
#:tools-extra
(origin
(method url-fetch)
(uri (llvm-uri "clang-tools-extra"
(package-version llvm-11)))
(sha256
(base32
"02bcwwn54661madhq4nxc069s7p7pj5gpqi8ww50w3anbpviilzy")))))
(define-public clang-toolchain-11
(make-clang-toolchain clang-11))
(define-public llvm-10
(package
(inherit llvm-11)
(version "10.0.0")
(source
(origin
(method url-fetch)
(uri (llvm-uri "llvm" version))
(sha256
(base32
"1pwgm6cr0xr5a0hrbqs1zvsvvjvy0yq1y47c96804wcs795s90yz"))))))
(define-public clang-runtime-10
(clang-runtime-from-llvm
llvm-10
@ -564,39 +597,9 @@ output), and Binutils.")
(define-public clang-toolchain-9
(make-clang-toolchain clang-9))
;; Default LLVM and Clang version.
(define-public llvm llvm-9)
(define-public clang-runtime clang-runtime-9)
(define-public clang clang-9)
(define-public clang-toolchain clang-toolchain-9)
(define-public lld
(package
(name "lld")
(version (package-version llvm-10))
(source (origin
(method url-fetch)
(uri (llvm-uri "lld" version))
(sha256
(base32
"026pwcbczcg0j5c9h7hxxrn3ki81ia9m9sfn0sy0bvzffv2xg85r"))))
(build-system cmake-build-system)
(inputs
`(("llvm" ,llvm-10)))
(arguments
`(#:build-type "Release"
;; TODO: Tests require the lit tool, which isn't installed by the LLVM
;; package.
#:tests? #f))
(home-page "https://lld.llvm.org/")
(synopsis "Linker from the LLVM project")
(description "LLD is a high-performance linker, built as a set of reusable
components which highly leverage existing libraries in the larger LLVM Project.")
(license license:asl2.0))) ; With LLVM exception
(define-public llvm-8
(package
(inherit llvm)
(inherit llvm-9)
(version "8.0.0")
(source (origin
(method url-fetch)
@ -821,19 +824,35 @@ components which highly leverage existing libraries in the larger LLVM Project."
"0846h8vn3zlc00jkmvrmy88gc6ql6014c02l4jv78fpvfigmgssg"
#:patches '("clang-3.5-libc-search-path.patch")))
(define-public llvm-for-extempore
(package (inherit llvm-3.8)
(name "llvm-for-extempore")
(source
(origin
;; Default LLVM and Clang version.
(define-public llvm llvm-9)
(define-public clang-runtime clang-runtime-9)
(define-public clang clang-9)
(define-public clang-toolchain clang-toolchain-9)
(define-public lld
(package
(name "lld")
(version "11.0.0")
(source (origin
(method url-fetch)
(uri (string-append "http://extempore.moso.com.au/extras/"
"llvm-3.8.0.src-patched-for-extempore.tar.xz"))
(uri (llvm-uri "lld" version))
(sha256
(base32
"1svdl6fxn8l01ni8mpm0bd5h856ahv3h9sdzgmymr6fayckjvqzs"))))
;; Extempore refuses to build on architectures other than x86_64
(supported-systems '("x86_64-linux"))))
"077xyh7sij6mhp4dc4kdcmp9whrpz332fa12rwxnzp3wgd5bxrzg"))))
(build-system cmake-build-system)
(inputs
`(("llvm" ,llvm-11)))
(arguments
`(#:build-type "Release"
;; TODO: Tests require the lit tool, which isn't installed by the LLVM
;; package.
#:tests? #f))
(home-page "https://lld.llvm.org/")
(synopsis "Linker from the LLVM project")
(description "LLD is a high-performance linker, built as a set of reusable
components which highly leverage existing libraries in the larger LLVM Project.")
(license license:asl2.0))) ; With LLVM exception
(define-public libcxx
(package

View File

@ -3,7 +3,7 @@
;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2019 Meiyo Peng <meiyo@riseup.net>
;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
@ -165,9 +165,8 @@ commands, displaying the results via a web interface.")
(build-system gnu-build-system)
(arguments
`(#:make-flags
(list "CC=gcc"
"PREFIX="
(string-append "DESTDIR="
(list (string-append "CC=" ,(cc-for-target))
(string-append "PREFIX="
(assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
@ -178,14 +177,14 @@ commands, displaying the results via a web interface.")
(("ncursesw\\/panel.h") "panel.h")
(("ncursesw\\/ncurses.h") "ncurses.h")))
#t))
(delete 'configure))
(delete 'configure)) ; no configure script
#:tests? #f)) ; no test suite (make check just runs cppcheck)
(inputs `(("ncurses" ,ncurses)))
(home-page "https://vanheusden.com/multitail/")
(synopsis "Monitor multiple logfiles")
(synopsis "Monitor multiple log files")
(description
"MultiTail allows you to monitor logfiles and command output in multiple
windows in a terminal, colorize, filter and merge.")
"MultiTail can monitor, color, filter, and merge log files and command
output in multiple windows in a terminal.")
(license license:gpl2+)))
(define-public spdlog

View File

@ -8,7 +8,7 @@
;;; Copyright © 2016 doncatnip <gnopap@gmail.com>
;;; Copyright © 2016, 2017, 2019 Clément Lassieur <clement@lassieur.org>
;;; Copyright © 2016 José Miguel Sánchez García <jmi2k@openmailbox.org>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Simon South <simon@simonsouth.net>
@ -312,9 +312,8 @@ directory structure and file attributes.")
(lua-api-version ,(version-major+minor (package-version lua))))
(list "CC=gcc"
"CFLAGS='-D HAVE_SYS_SYSCTL_H=0'" ; sys/sysctl.h is deprecated
(string-append "DESTDIR=" out)
(string-append "LUA_APIS=" lua-api-version)
"prefix="))
(string-append "prefix=" out)
(string-append "LUA_APIS=" lua-api-version)))
#:phases
(modify-phases %standard-phases
(delete 'configure)
@ -880,3 +879,182 @@ on numbers.")
"Selene is a simple C++11 header-only library enabling seamless
interoperability between C++ and Lua programming language.")
(license license:zlib)))
(define-public lua-resty-core
(package
(name "lua-resty-core")
(version "0.1.17")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/openresty/lua-resty-core")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"11fyli6yrg7b91nv9v2sbrc6y7z3h9lgf4lrrhcjk2bb906576a0"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((luajit-major+minor ,(version-major+minor (package-version lua)))
(package-lua-resty (lambda (input output)
(mkdir-p (string-append output "/lib/lua"))
(copy-recursively (string-append input "/lib/resty")
(string-append output "/lib/lua/resty"))
(copy-recursively (string-append input "/lib/ngx")
(string-append output "/lib/ngx"))
(symlink (string-append output "/lib/lua/resty")
(string-append output "/lib/resty")))))
(package-lua-resty (assoc-ref %build-inputs "source")
(assoc-ref %outputs "out")))
#t)))
(home-page "https://github.com/openresty/lua-resty-core")
(synopsis "Lua API for NGINX")
(description "This package provides a FFI-based Lua API for
@code{ngx_http_lua_module} or @code{ngx_stream_lua_module}.")
(license license:bsd-2)))
(define-public lua-resty-lrucache
(package
(name "lua-resty-lrucache")
(version "0.09")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/openresty/lua-resty-lrucache")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1mwiy55qs8bija1kpgizmqgk15ijizzv4sa1giaz9qlqs2kqd7q2"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((luajit-major+minor ,(version-major+minor (package-version lua)))
(package-lua-resty (lambda (input output)
(mkdir-p (string-append output "/lib/lua/" luajit-major+minor))
(copy-recursively (string-append input "/lib/resty")
(string-append output "/lib/lua/" luajit-major+minor "/resty"))
(symlink (string-append output "/lib/lua/" luajit-major+minor "/resty")
(string-append output "/lib/resty")))))
(package-lua-resty (assoc-ref %build-inputs "source")
(assoc-ref %outputs "out")))
#t)))
(home-page "https://github.com/openresty/lua-resty-lrucache")
(synopsis "Lua LRU cache based on the LuaJIT FFI")
(description
"This package provides Lua LRU cache based on the LuaJIT FFI.")
(license license:bsd-2)))
(define-public lua-resty-signal
(package
(name "lua-resty-signal")
(version "0.02")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/openresty/lua-resty-signal")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"13y1pqn45y49mhqwywasfdsid46d0c33yi6mrnracbnmvyxz1cif"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ;TODO: Run the test suite.
#:make-flags (list "CC=gcc"
(string-append "PREFIX=" %output))
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-after 'install 'install-lua
(lambda* (#:key inputs outputs #:allow-other-keys)
(use-modules (guix build utils))
(let* ((luajit-major+minor ,(version-major+minor (package-version lua)))
(package-lua-resty (lambda (input output)
(mkdir-p (string-append output "/lib/lua/" luajit-major+minor))
(copy-recursively (string-append input "/lib/resty")
(string-append output "/lib/lua/" luajit-major+minor "/resty"))
(symlink (string-append output "/lib/lua/" luajit-major+minor "/resty")
(string-append output "/lib/resty")))))
(package-lua-resty (assoc-ref inputs "source")
(assoc-ref outputs "out")))
#t)))))
(home-page "https://github.com/openresty/lua-resty-signal")
(synopsis "Lua library for killing or sending signals to Linux processes")
(description "This package provides Lua library for killing or sending
signals to Linux processes.")
(license license:bsd-3)))
(define-public lua-tablepool
(package
(name "lua-tablepool")
(version "0.01")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/openresty/lua-tablepool")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"03yjj3w6znvj6843prg84m0lkrn49l901f9hj9bgy3cj9s0awl6y"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((luajit-major+minor ,(version-major+minor (package-version lua)))
(package-lua-resty (lambda (input output)
(mkdir-p (string-append output "/lib/lua/" luajit-major+minor))
(copy-recursively (string-append input "/lib")
(string-append output "/lib")))))
(package-lua-resty (assoc-ref %build-inputs "source")
(assoc-ref %outputs "out")))
#t)))
(home-page "https://github.com/openresty/lua-tablepool")
(synopsis "Lua table recycling pools for LuaJIT")
(description "This package provides Lua table recycling pools for LuaJIT.")
(license license:bsd-2)))
(define-public lua-resty-shell
(package
(name "lua-resty-shell")
(version "0.03")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/openresty/lua-resty-shell")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"1s6g04ip4hr97r2pd8ry3alq063604s9a3l0hn9nsidh81ps4dp7"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let* ((luajit-major+minor ,(version-major+minor (package-version lua)))
(package-lua-resty (lambda (input output)
(mkdir-p (string-append output "/lib/lua/" luajit-major+minor))
(copy-recursively (string-append input "/lib/resty")
(string-append output "/lib/lua/" luajit-major+minor "/resty"))
(symlink (string-append output "/lib/lua/" luajit-major+minor "/resty")
(string-append output "/lib/resty")))))
(package-lua-resty (assoc-ref %build-inputs "source")
(assoc-ref %outputs "out")))
#t)))
(home-page "https://github.com/openresty/lua-resty-shell")
(synopsis "Lua module for nonblocking system shell command executions")
(description "This package provides Lua module for nonblocking system
shell command executions.")
(license license:bsd-3)))

View File

@ -35,6 +35,7 @@
;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Alexey Abramov <levenson@mmer.org>
;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -141,6 +142,7 @@
#:use-module (guix git-download)
#:use-module (guix svn-download)
#:use-module (guix utils)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
#:use-module (guix build-system guile)
#:use-module (guix build-system perl)
@ -776,7 +778,7 @@ and corrections. It is based on a Bayesian filter.")
(define-public offlineimap
(package
(name "offlineimap")
(version "7.2.4")
(version "7.3.3")
(source (origin
(method git-fetch)
(uri (git-reference
@ -785,11 +787,13 @@ and corrections. It is based on a Bayesian filter.")
(file-name (git-file-name name version))
(sha256
(base32
"0h5q5nk2p2vx86w6rrbs7v70h81dpqqr68x6l3klzl3m0yj9agb1"))))
"1gg8ry67i20qapj4z20am9bm67m2q28kixcj7ja75m897vhzarnq"))))
(build-system python-build-system)
(native-inputs
`(("asciidoc" ,asciidoc)))
(inputs `(("python2-pysqlite" ,python2-pysqlite)
(inputs
`(("python2-pysqlite" ,python2-pysqlite)
("python2-rfc6555" ,python2-rfc6555)
("python2-six" ,python2-six)))
(arguments
;; The setup.py script expects python-2.
@ -1317,17 +1321,41 @@ compresses it.")
(package
(name "claws-mail")
(version "3.17.7")
(source (origin
(source
(origin
(method url-fetch)
(uri (string-append
"https://www.claws-mail.org/releases/claws-mail-" version
".tar.xz"))
(uri
(string-append
"https://www.claws-mail.org/releases/claws-mail-"
version ".tar.xz"))
(sha256
(base32
"1j6x09621wng0lavh53nwzh9vqjzpspl8kh5azh7kbihpi4ldfb0"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("bogofilter" ,bogofilter)
(base32 "1j6x09621wng0lavh53nwzh9vqjzpspl8kh5azh7kbihpi4ldfb0"))))
(build-system glib-or-gtk-build-system)
(arguments
`(#:configure-flags
(list
"--enable-gnutls"
"--enable-pgpmime-plugin"
"--enable-enchant"
"--enable-ldap")
#:make-flags
;; Disable updating icon cache since it's done by the profile hook.
;; Conflict with other packages in the profile would be inevitable
;; otherwise.
(list
"gtk_update_icon_cache=true")
#:phases
(modify-phases %standard-phases
(add-before 'build 'patch-mime
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/procmime.c"
(("/usr/share/mime/globs")
(string-append (assoc-ref inputs "mime-info")
"/share/mime/globs"))))))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
`(("bogofilter" ,bogofilter)
("curl" ,curl)
("dbus-glib" ,dbus-glib)
("enchant" ,enchant)
@ -1349,29 +1377,12 @@ compresses it.")
("python-2" ,python-2)
("mime-info" ,shared-mime-info)
("startup-notification" ,startup-notification)))
(arguments
'(#:configure-flags
'("--enable-gnutls" "--enable-pgpmime-plugin" "--enable-enchant"
"--enable-ldap")
#:make-flags
;; Disable updating icon cache since it's done by the profile hook.
;; Conflict with other packages in the profile would be inevitable
;; otherwise.
'("gtk_update_icon_cache=true")
#:phases (modify-phases %standard-phases
(add-before 'build 'patch-mime
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/procmime.c"
(("/usr/share/mime/globs")
(string-append (assoc-ref inputs "mime-info")
"/share/mime/globs"))))))))
(synopsis "GTK-based Email client")
(description
"Claws-Mail is an email client (and news reader) based on GTK+. The
appearance and interface are designed to be familiar to new users coming from
other popular email clients, as well as experienced users. Almost all commands
are accessible with the keyboard. Plus, Claws-Mail is extensible via addons
which can add many functionalities to the base client.")
(description "Claws-Mail is an email client (and news reader) based on GTK+.
The appearance and interface are designed to be familiar to new users coming
from other popular email clients, as well as experienced users. Almost all
commands are accessible with the keyboard. Plus, Claws-Mail is extensible via
addons which can add many functionalities to the base client.")
(home-page "https://www.claws-mail.org/")
(license license:gpl3+))) ; most files are actually public domain or x11
@ -1965,14 +1976,14 @@ header.")
(define-public perl-email-sender
(package
(name "perl-email-sender")
(version "1.300034")
(version "1.300035")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/R/RJ/RJBS/"
"Email-Sender-" version ".tar.gz"))
(sha256
(base32 "14aj9kqa9dr2bdhzn2qvjj2mffj8wjb5397z8qw7qg057fk3ib05"))))
(base32 "0yfssp3rqdx1dmgvnygarzgkpkhqm28r5sd0gh87ksk8yxndhjql"))))
(build-system perl-build-system)
(native-inputs
`(("perl-capture-tiny" ,perl-capture-tiny)))
@ -3219,16 +3230,16 @@ on the fly. Both programs are written in C and are very fast.")
(define-public swaks
(package
(name "swaks")
(version "20190914.0")
(version "20201014.0")
(source
(origin
(method url-fetch)
(uri (string-append
"https://jetmore.org/john/code/swaks/files/swaks-"
version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/jetmore/swaks")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"12awq5z4sdd54cxprj834zajxhkpy4jwhzf1fhigcx1zbhdaacsp"))))
(base32 "131i2b1yxhnbqkfk4kky40pfanqw2c5lcgbnjhfqp5cvpawpk2ai"))))
(build-system perl-build-system)
(inputs
`(("perl-io-socket-inet6" ,perl-io-socket-inet6)
@ -3239,10 +3250,15 @@ on the fly. Both programs are written in C and are very fast.")
`(#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-build_version
(lambda _
(substitute* "swaks"
(("\"DEVRELEASE\"") (format #f "\"~a\"" ,version)))
#true))
(delete 'configure)
(replace 'build
(lambda _
(invoke "pod2man" "doc/ref.pod" "swaks.1")))
(invoke "pod2man" "doc/base.pod" "swaks.1")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2020 Alex ter Weele <alex.ter.weele@gmail.com>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -60,13 +61,13 @@ an LDAP server.")
(define-public synapse
(package
(name "synapse")
(version "1.14.0")
(version "1.20.1")
(source (origin
(method url-fetch)
(uri (pypi-uri "matrix-synapse" version))
(sha256
(base32
"09drdqcjvpk9s3hq5rx9yxsxq0wak5fg5gfaiqfnbnxav2c2v7kq"))))
"1sf36vwvy2f9jy6dldq6gqfmh60384i5j64s7yc131b4dp0n7lcw"))))
(build-system python-build-system)
;; TODO Run tests with PYTHONPATH=. trial3 tests.
(propagated-inputs

View File

@ -7,6 +7,7 @@
;;; Copyright © 2016, 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Evan Straw <evan.straw99@gmail.com>
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -93,7 +94,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
(define-public mpd
(package
(name "mpd")
(version "0.21.26")
(version "0.22")
(source (origin
(method url-fetch)
(uri
@ -102,10 +103,10 @@ interfacing MPD in the C, C++ & Objective C languages.")
"/mpd-" version ".tar.xz"))
(sha256
(base32
"1sjfx9ln2zik5fr5mdjy1w184hgjn89v67i85z09x0m6qwhq5rpr"))))
"0xlhwdbnww7gjw474j54j94iwrzbzlqvnv6chlkga6yh4pcl5rvx"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags '("-Ddocumentation=true"))) ;the default is 'false'...
`(#:configure-flags '("-Ddocumentation=enabled")))
(inputs `(("ao" ,ao)
("alsa-lib" ,alsa-lib)
("avahi" ,avahi)
@ -184,7 +185,7 @@ player daemon.")
(define-public ncmpc
(package
(name "ncmpc")
(version "0.40")
(version "0.41")
(source (origin
(method url-fetch)
(uri
@ -193,7 +194,7 @@ player daemon.")
"/ncmpc-" version ".tar.xz"))
(sha256
(base32
"1pfkf2zl55g7krrp4qi5m8j9h4m9vc3rnz65f7gb75pbmiy5iyh9"))))
"1b0kxidz3h3anc006cjrrbb281zl75f1qaip4m3672pczdc2lwwa"))))
(build-system meson-build-system)
(arguments
`(#:configure-flags

View File

@ -30,6 +30,7 @@
;;; Copyright © 2020 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -138,6 +139,7 @@
#:use-module (gnu packages rsync)
#:use-module (gnu packages sdl)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages stb)
#:use-module (gnu packages tcl)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tex)
@ -745,16 +747,64 @@ MusePack, Monkey's Audio, and WavPack files.")
" --mcpu=generic --attr=none")))
#t)))))
(inputs
`(("llvm" ,llvm-for-extempore)
`(("llvm"
,(package
(inherit llvm-3.8)
(name "llvm-for-extempore")
(source
(origin
(method url-fetch)
(uri (string-append "http://extempore.moso.com.au/extras/"
"llvm-3.8.0.src-patched-for-extempore.tar.xz"))
(sha256
(base32
"1svdl6fxn8l01ni8mpm0bd5h856ahv3h9sdzgmymr6fayckjvqzs"))))))
("libffi" ,libffi)
("jack" ,jack-1)
("libsndfile" ,libsndfile)
("glfw" ,glfw)
("apr" ,apr)
("stb-image" ,stb-image-for-extempore)
("stb-image"
,(let ((revision "1")
(commit "152a250a702bf28951bb0220d63bc0c99830c498"))
(package
(inherit stb-image)
(name "stb-image-for-extempore")
(version (git-version "0" revision commit))
(source
(origin (method git-fetch)
(uri (git-reference
(url "https://github.com/extemporelang/stb")
(commit commit)))
(sha256
(base32
"0y0aa20pj9311x2ii06zg8xs34idg14hfgldqc5ymizc6cf1qiqv"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ;no tests included
(inputs '()))))
("kiss-fft" ,kiss-fft-for-extempore)
("nanovg" ,nanovg-for-extempore)
("portmidi" ,portmidi-for-extempore)
("portmidi"
,(let ((version "217")
(revision "0")
(commit "8602f548f71daf5ef638b2f7d224753400cb2158"))
(package
(inherit portmidi)
(name "portmidi-for-extempore")
(version (git-version version revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/extemporelang/portmidi")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1qidzl1s3kzhczzm96rcd2ppn27a97k2axgfh1zhvyf0s52d7m4w"))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ;no tests
(native-inputs '()))))
("assimp" ,assimp)
("alsa-lib" ,alsa-lib)
("portaudio" ,portaudio)
@ -2184,29 +2234,6 @@ main purpose is to liberate raw audio rendering from audio and MIDI drivers.")
using a system-independent interface.")
(license license:expat)))
(define-public portmidi-for-extempore
(let ((version "217")
(revision "0")
(commit "8602f548f71daf5ef638b2f7d224753400cb2158"))
(package (inherit portmidi)
(name "portmidi-for-extempore")
(version (git-version version revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/extemporelang/portmidi")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1qidzl1s3kzhczzm96rcd2ppn27a97k2axgfh1zhvyf0s52d7m4w"))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ; no tests
(native-inputs '())
;; Extempore refuses to build on architectures other than x86_64
(supported-systems '("x86_64-linux"))
(home-page "https://github.com/extemporelang/portmidi/"))))
(define-public python-pyportmidi
(package
(name "python-pyportmidi")
@ -4167,7 +4194,7 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke
(define-public musescore
(package
(name "musescore")
(version "3.5")
(version "3.5.1")
(source
(origin
(method git-fetch)
@ -4176,7 +4203,7 @@ audio samples and various soft sythesizers. It can receive input from a MIDI ke
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1s8767imzv9hclpzvvvsqb3iyiv4y2klr6agf95zwym2xafy8p26"))
(base32 "01jj6rbvbjxvmv6q13a22vfqp3id52a5mf2a1vzph2giz7pr313x"))
(modules '((guix build utils)))
(snippet
;; Un-bundle OpenSSL and remove unused libraries.

View File

@ -1041,14 +1041,14 @@ receiving NDP messages.")
(define-public ethtool
(package
(name "ethtool")
(version "5.8")
(version "5.9")
(source (origin
(method url-fetch)
(uri (string-append "mirror://kernel.org/software/network/"
"ethtool/ethtool-" version ".tar.xz"))
(sha256
(base32
"0ikmz36bdfwxscsfcgjmyzg70hwr8i3wpdhcp1vmk3q4ip858frg"))))
"0vwam1ay184z237vnl8ivb0rdjjbljp9pj3kjzhc6yzq180k4aai"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))

View File

@ -329,7 +329,7 @@ Software distribution.")
(define-public ocaml-mccs
(package
(name "ocaml-mccs")
(version "1.1+9")
(version "1.1+11")
(source (origin
(method git-fetch)
(uri (git-reference
@ -338,7 +338,7 @@ Software distribution.")
(file-name (git-file-name name version))
(sha256
(base32
"1i0hhkrqi7rqlainlg5pc4hibbx6b5dp3x99gmav8c3sbfvlk9mc"))))
"1gsad5cj03256i36wdjqk5pg51pyd48rpjazf0gfaakrn8lk438g"))))
(build-system dune-build-system)
(propagated-inputs `(("ocaml-cudf" ,ocaml-cudf)))
(home-page "https://www.i3s.unice.fr/~cpjm/misc/")
@ -436,7 +436,7 @@ the opam file format.")
(define-public opam
(package
(name "opam")
(version "2.0.6")
(version "2.0.7")
(source (origin
(method git-fetch)
(uri (git-reference
@ -445,7 +445,7 @@ the opam file format.")
(file-name (git-file-name name version))
(sha256
(base32
"1vyga2jllsfsikppxyzljm4isfnnnl8k0rb44h8xaddjzdg1d4m8"))))
"1p719ccn9wnzk6impsnwr809yh507h8f37dx9nn64b1hsyb5z8ax"))))
(build-system ocaml-build-system)
(arguments
`(#:configure-flags
@ -541,7 +541,7 @@ Git-friendly development workflow.")
(define-public camlp5
(package
(name "camlp5")
(version "7.12")
(version "7.13")
(source
(origin
(method git-fetch)
@ -550,7 +550,7 @@ Git-friendly development workflow.")
(commit (string-append "rel" (string-delete #\. version)))))
(file-name (git-file-name name version))
(sha256
(base32 "12ix5g15bys932hyf9gs637iz76m0ji9075d83jfdmx85q30llgf"))))
(base32 "1d9spy3f5ahixm8nxxk086kpslzva669a5scn49am0s7vx4i71kp"))))
(build-system gnu-build-system)
(inputs
`(("ocaml" ,ocaml)))
@ -861,12 +861,13 @@ libpanel, librsvg and quartz.")
(file-name (git-file-name name version))
(sha256
(base32
"1bykiyc0dc5pkw8x370qkg2kygq9pq7yqzsgczd3y13b6ivm4sdq"))))
"1bykiyc0dc5pkw8x370qkg2kygq9pq7yqzsgczd3y13b6ivm4sdq"))
(patches (search-patches "unison-fix-ocaml-4.08.patch"))))
(build-system gnu-build-system)
(outputs '("out"
"doc")) ; 1.9 MiB of documentation
(native-inputs
`(("ocaml" ,ocaml-4.07)
`(("ocaml" ,ocaml-4.09)
;; For documentation
("ghostscript" ,ghostscript)
("texlive" ,texlive-tiny)
@ -1212,8 +1213,7 @@ instances and printing them.")
"0gddzan4vzs0vklsxhirdjrvx3rp7hhh2yr20vi13nq8rwkn9w29"))))
(build-system dune-build-system)
(arguments
`(#:jbuild? #t
#:test-target "tests"))
`(#:test-target "tests"))
(propagated-inputs
`(("ounit" ,ocaml-ounit)
("qcheck" ,ocaml-qcheck)))
@ -1253,10 +1253,10 @@ full_split, cut, rcut, etc..")
;; where it says `mit'.
(license license:expat)))
(define-public dune
(define dune-bootstrap
(package
(name "dune")
(version "1.11.3")
(version "2.7.1")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1265,17 +1265,19 @@ full_split, cut, rcut, etc..")
(file-name (git-file-name name version))
(sha256
(base32
"0l4x0x2fz135pljv88zj8y6w1ninsqw0gn1mdxzprd6wbxbyn8wr"))))
"10qgx83fq8b522y9mpllrp0l5cgmr2bs5s7aix5img21hlbm34in"))))
(build-system ocaml-build-system)
(arguments
`(#:tests? #f; require odoc
#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
#:make-flags (list "release"
(string-append "PREFIX=" (assoc-ref %outputs "out"))
(string-append "LIBDIR=" (assoc-ref %outputs "out")
"/lib/ocaml/site-lib"))
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(mkdir-p "src/dune")
(invoke "./configure")
#t)))))
(home-page "https://github.com/ocaml/dune")
@ -1285,13 +1287,87 @@ release of Jane Street packages. It reads metadata from @file{dune} files
following a very simple s-expression syntax.")
(license license:expat)))
(define-public dune-configurator
(package
(inherit dune-bootstrap)
(name "dune-configurator")
(build-system dune-build-system)
(arguments
`(#:package "dune-configurator"
#:dune ,dune-bootstrap
; require ppx_expect
#:tests? #f))
(propagated-inputs
`(("ocaml-csexp" ,ocaml-csexp)))
(synopsis "")
(description "")))
(define-public dune
(package
(inherit dune-bootstrap)
(propagated-inputs
`(("dune-configurator" ,dune-configurator)))
(properties `((ocaml4.07-variant . ,(delay ocaml4.07-dune))))))
(define-public ocaml4.07-dune
(package-with-ocaml4.07 dune))
(package
(inherit (package-with-ocaml4.07 dune-bootstrap))
(version "1.11.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ocaml/dune")
(commit version)))
(file-name (git-file-name "dune" version))
(sha256
(base32
"0l4x0x2fz135pljv88zj8y6w1ninsqw0gn1mdxzprd6wbxbyn8wr"))))))
(define-public ocaml-csexp
(package
(name "ocaml-csexp")
(version "1.3.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ocaml-dune/csexp")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"190zppgvdjgghmrnx67ayzzk86qdjy3yn5fcrcw08wsh93384pl0"))))
(build-system dune-build-system)
(arguments
`(#:tests? #f; FIXME: needs ppx_expect, but which version?
#:dune ,dune-bootstrap
#:phases
(modify-phases %standard-phases
(add-before 'build 'chmod
(lambda _
(for-each (lambda (file) (chmod file #o644)) (find-files "." ".*"))
#t)))))
(propagated-inputs
`(("ocaml-result" ,ocaml-result)))
(home-page "https://github.com/ocaml-dune/csexp")
(synopsis "Parsing and printing of S-expressions in Canonical form")
(description "This library provides minimal support for Canonical
S-expressions. Canonical S-expressions are a binary encoding of
S-expressions that is super simple and well suited for communication
between programs.
This library only provides a few helpers for simple applications. If
you need more advanced support, such as parsing from more fancy input
sources, you should consider copying the code of this library given
how simple parsing S-expressions in canonical form is.
To avoid a dependency on a particular S-expression library, the only
module of this library is parameterised by the type of S-expressions.")
(license license:expat)))
(define-public ocaml-migrate-parsetree
(package
(name "ocaml-migrate-parsetree")
(version "1.4.0")
(version "1.7.3")
(home-page "https://github.com/ocaml-ppx/ocaml-migrate-parsetree")
(source
(origin
@ -1302,7 +1378,7 @@ following a very simple s-expression syntax.")
(file-name (git-file-name name version))
(sha256
(base32
"0sv1p4615l8gpbah4ya2c40yr6fbvahvv3ks7zhrsgcwcq2ljyr2"))))
"0336vz0galjnsazbmkxjwdv1qvdqsx2rgrvp778xgq2fzasz45cx"))))
(build-system dune-build-system)
(arguments
`(#:tests? #f))
@ -1320,7 +1396,7 @@ functions to the next and/or previous version.")
(define-public ocaml-ppx-tools-versioned
(package
(name "ocaml-ppx-tools-versioned")
(version "5.2.3")
(version "5.4.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1329,7 +1405,7 @@ functions to the next and/or previous version.")
(file-name (git-file-name name version))
(sha256
(base32
"1hcmpnw26zf70a71r3d2c2c0mn8q084gdn1r36ynng6fv9hq6j0y"))))
"07lnj4yzwvwyh5fhpp1dxrys4ddih15jhgqjn59pmgxinbnddi66"))))
(build-system dune-build-system)
(arguments
`(#:test-target "."))
@ -1362,8 +1438,14 @@ ocaml-migrate-parsetree")
(propagated-inputs
`(("ocaml-ppx-tools-versioned" ,ocaml-ppx-tools-versioned)))
(arguments
`(#:tests? #f; Tests fail to build
#:jbuild? #t))
`(#:package "bitstring"
#:tests? #f; Tests fail to build
#:phases
(modify-phases %standard-phases
(add-before 'build 'upgrade
(lambda _
(invoke "dune" "upgrade")
#t)))))
(home-page "https://github.com/xguerin/bitstring")
(synopsis "Bitstrings and bitstring matching for OCaml")
(description "Adds Erlang-style bitstrings and matching over bitstrings as
@ -1376,7 +1458,7 @@ powerful.")
(define-public ocaml-result
(package
(name "ocaml-result")
(version "1.4")
(version "1.5")
(source (origin
(method git-fetch)
(uri (git-reference
@ -1385,10 +1467,11 @@ powerful.")
(file-name (git-file-name name version))
(sha256
(base32
"0hir97k9i72nfkm6kncxnqpyk400wlsxysbldgcvk0fd9pjnsc3p"))))
"166laj8qk7466sdl037c6cjs4ac571hglw4l5qpyll6df07h6a7q"))))
(build-system dune-build-system)
(arguments
`(#:test-target "."))
`(#:test-target "."
#:dune ,dune-bootstrap))
(home-page "https://github.com/janestreet/result")
(synopsis "Compatibility Result module")
(description "Uses the new result type defined in OCaml >= 4.03 while
@ -1594,23 +1677,23 @@ most of the POSIX and GNU conventions.")
(define-public ocaml-fmt
(package
(name "ocaml-fmt")
(version "0.8.5")
(version "0.8.9")
(source
(origin
(method url-fetch)
(uri (string-append "http://erratique.ch/software/fmt/releases/fmt-"
version ".tbz"))
(sha256 (base32
"1zj9azcxcn6skmb69ykgmi9z8c50yskwg03wqgh87lypgjdcz060"))))
"0gkkkj4x678vxdda4xaw2dd44qjacavsvn5nx8gydfwah6pjbkxk"))))
(build-system ocaml-build-system)
(native-inputs
`(("ocamlbuild" ,ocamlbuild)
("opam" ,opam)
("topkg" ,ocaml-topkg)))
(propagated-inputs
`(("result" ,ocaml-result)
("ocaml-uchar" ,ocaml-uchar)
("cmdliner" ,ocaml-cmdliner)))
`(("cmdliner" ,ocaml-cmdliner)
("ocaml-stdlib-shims" ,ocaml-stdlib-shims)
("ocaml-uchar" ,ocaml-uchar)))
(arguments `(#:tests? #f
#:build-flags (list "build" "--with-base-unix" "true"
"--with-cmdliner" "true")
@ -1659,14 +1742,14 @@ immutability.")
(define-public ocaml-alcotest
(package
(name "ocaml-alcotest")
(version "0.8.5")
(version "1.0.0")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/mirage/alcotest/releases/"
"download/" version "/alcotest-" version ".tbz"))
(sha256
(base32
"0szwjxvaahgynsx0apj81jxj3ki6yz4is9mh2wkcbx66qy7n6fvb"))))
"1a43ilhwnj58pq3bi78ni46l9wh6klmmgfc93i94mvyx48bzzayx"))))
(build-system dune-build-system)
(arguments
`(#:package "alcotest"
@ -1677,8 +1760,10 @@ immutability.")
`(("ocaml-astring" ,ocaml-astring)
("ocaml-cmdliner" ,ocaml-cmdliner)
("ocaml-fmt" ,ocaml-fmt)
("ocaml-result" ,ocaml-result)
("ocaml-uuidm" ,ocaml-uuidm)))
("ocaml-re" ,ocaml-re)
("ocaml-stdlib-shims" ,ocaml-stdlib-shims)
("ocaml-uuidm" ,ocaml-uuidm)
("ocaml-uutf" ,ocaml-uutf)))
(home-page "https://github.com/mirage/alcotest")
(synopsis "Lightweight OCaml test framework")
(description "Alcotest exposes simple interface to perform unit tests. It
@ -1866,8 +1951,7 @@ locks or other synchronization primitives.")
"1n12i1rmn9cjn6p8yr6qn5dwbrwvym7ckr7bla04a1xnq8qlcyj7"))))
(build-system dune-build-system)
(arguments
`(#:tests? #f; require lwt_ppx
#:jbuild? #t))
`(#:tests? #f)); require lwt_ppx
(propagated-inputs
`(("lwt" ,ocaml-lwt)))
(properties `((upstream-name . "lwt_log")))
@ -1880,14 +1964,14 @@ ocaml lwt.")
(define-public ocaml-logs
(package
(name "ocaml-logs")
(version "0.6.2")
(version "0.7.0")
(source (origin
(method url-fetch)
(uri (string-append "http://erratique.ch/software/logs/releases/"
"logs-" version ".tbz"))
(sha256
(base32
"1khbn7jqpid83zn8rvyh1x1sirls7zc878zj4fz985m5xlsfy853"))))
"1jnmd675wmsmdwyb5mx5b0ac66g4c6gpv5s4mrx2j6pb0wla1x46"))))
(build-system ocaml-build-system)
(arguments
`(#:tests? #f
@ -2026,7 +2110,8 @@ representation of the data.")
`(#:tests? #f; no tests
#:package "gen"
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-odoc" ,ocaml4.07-odoc)))
(native-inputs
@ -2071,7 +2156,8 @@ and consumable.")
(for-each (lambda (file) (chmod file #o644)) (find-files "." ".*"))
#t)))
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(native-inputs
`(("ocamlbuild" ,(package-with-ocaml4.07 ocamlbuild))))
(propagated-inputs
@ -2234,7 +2320,7 @@ multitude of other network protocols (FTP/SMTP/RTSP/etc).")
(define-public ocaml-base64
(package
(name "ocaml-base64")
(version "3.2.0")
(version "3.4.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -2243,8 +2329,19 @@ multitude of other network protocols (FTP/SMTP/RTSP/etc).")
(file-name (git-file-name name version))
(sha256
(base32
"1ilw3zj0w6cq7i4pvr8m2kv5l5f2y9aldmv72drlwwns013b1gwy"))))
"0aa1m1sr8p1hgc10p96mij7p22r3qcysvzy6fz2jqamfgswchgqc"))))
(build-system dune-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'build 'fix-dune
(lambda _
;; This package expects dune 2, which unbundled its configurator
;; module. We still use dune 1, so we need to let it know we need
;; its internal module.
(substitute* "config/dune"
(("dune-configurator") "dune.configurator"))
#t)))))
(native-inputs
`(("ocaml-alcotest" ,ocaml-alcotest)
("ocaml-bos" ,ocaml-bos)
@ -2752,7 +2849,8 @@ writing to these structures, and they are accessed via the Bigarray module.")
`(#:package "ezjsonm"
#:test-target "."
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(native-inputs
`(("ocaml-alcotest" ,(package-with-ocaml4.07 ocaml-alcotest))))
(propagated-inputs
@ -2790,7 +2888,8 @@ JSON.")
(substitute* "lib/uri.ml"
(("Re.get") "Re.Group.get")))))
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(native-inputs
`(("ocaml-ounit" ,(package-with-ocaml4.07 ocaml-ounit))
("ocaml-ppx-sexp-conv" ,ocaml4.07-ppx-sexp-conv)))
@ -2818,7 +2917,7 @@ JSON.")
"1fc95q2ypck6m6rv3kiawwilh5ac93v2hcp823mj608d5kj79xkb"))))
(build-system dune-build-system)
(arguments
`(#:jbuild? #t
`(#:package "easy-format"
#:phases
(modify-phases %standard-phases
(add-before 'build 'make-writable
@ -3118,7 +3217,8 @@ library is currently designed for Unicode Standard 3.2.")
(build-system dune-build-system)
(arguments
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-result" ,(package-with-ocaml4.07 ocaml-result))
("ocaml-camomile" ,(package-with-ocaml4.07 ocaml-camomile))))
@ -3147,10 +3247,10 @@ function that follows the prototype of POSIX's wcwidth.")
(base32 "0pa9awinqr0plp4b2az78dwpvh01pwaljnn5ydg8mc6hi7rmir55"))))
(build-system dune-build-system)
(arguments
`(#:jbuild? #t
#:test-target "."
`(#:test-target "."
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-camomile" ,(package-with-ocaml4.07 ocaml-camomile))
("ocaml-charinfo-width" ,ocaml4.07-charinfo-width)
@ -3180,7 +3280,8 @@ connect an engine to your inputs and rendering functions to get an editor.")
`(#:build-flags (list "--profile" "release")
#:tests? #f
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-lwt" ,(package-with-ocaml4.07 ocaml-lwt))
("ocaml-lwt-log" ,(package-with-ocaml4.07 ocaml-lwt-log))
@ -3213,10 +3314,10 @@ instead of bindings to a C library.")
(base32 "1bl4943qpi3qy152dbdm5glhx19zsiylmn4rcxi8l66g58hikyjp"))))
(build-system dune-build-system)
(arguments
`(#:jbuild? #t
#:test-target "."
`(#:test-target "."
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(native-inputs
`(("cppo" ,(package-with-ocaml4.07 ocaml-cppo))))
(propagated-inputs
@ -3518,12 +3619,13 @@ syntax checking on dedukti files.")
;see home page README for further information
`(#:tests? #f
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-migrate-parsetree"
,(package-with-ocaml4.07 ocaml-migrate-parsetree))
("ocaml-compiler-libs" ,(package-with-ocaml4.07 ocaml-compiler-libs))
("ocaml-compiler-libs" ,ocaml4.07-compiler-libs)
("ocaml-sexplib0" ,ocaml4.07-sexplib0)
("ocaml-stdio" ,ocaml4.07-stdio)
("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
@ -3591,7 +3693,8 @@ or quantified formulas.")
(arguments
`(#:test-target "."
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(synopsis "Parsing library based on Earley Algorithm")
(description "Earley is a parser combinator library base on Earley's
algorithm. It is intended to be used in conjunction with an OCaml syntax
@ -3728,6 +3831,13 @@ serializers and deserializers from type definitions.")
(base32
"197xjp4vmzdymf2ndinw271ihpf45h04mx8gqj8ypspxdr5fj1a5"))))
(build-system dune-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'build 'upgrade
(lambda _
(invoke "dune" "upgrade")
#t)))))
(inputs
`(("ocaml-fmt" ,ocaml-fmt)
("ocaml-astring" ,ocaml-astring)
@ -3764,10 +3874,11 @@ format}. @code{craml} is released as a single binary (called @code{craml}).")
(native-inputs
`(("ocaml-findlib" ,ocaml-findlib)))
(arguments
`(#:jbuild? #t
`(#:package "merlin"
#:tests? #f ;; Errors in tests in version 3.2.2
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(synopsis "Context sensitive completion for OCaml in Vim and Emacs")
(description "Merlin is an editor service that provides modern IDE
features for OCaml. Emacs and Vim support is provided out-of-the-box.
@ -3913,7 +4024,8 @@ exclusion algorithms are typical examples of such systems.")
(arguments
`(#:tests? #f ;no tests
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(synopsis "Library containing the definition of S-expressions and some
base converters")
(description "Part of Jane Street's Core library The Core suite of
@ -3939,7 +4051,8 @@ that was developed by Jane Street, the largest industrial user of OCaml.")
(build-system dune-build-system)
(arguments
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(inputs
`(("ocaml-sexplib0" ,ocaml4.07-sexplib0)))
(synopsis "S-expression parsing library")
@ -3988,7 +4101,8 @@ parsexp_io.")
(build-system dune-build-system)
(arguments
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-num" ,(package-with-ocaml4.07 ocaml-num))
("ocaml-parsexp" ,ocaml4.07-parsexp)
@ -4026,7 +4140,8 @@ functionality for parsing and pretty-printing s-expressions.")
(lambda _
(invoke "dune" "build" "@install" "--profile=release"))))
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(synopsis
"Full standard library replacement for OCaml")
(description
@ -4041,9 +4156,9 @@ provided by companion libraries such as
@url{https://github.com/janestreet/stdio, ocaml-stdio}.")
(license license:expat)))
(define-public ocaml-compiler-libs
(define-public ocaml4.07-compiler-libs
(package
(name "ocaml-compiler-libs")
(name "ocaml4.07-compiler-libs")
(version "0.11.0")
(home-page "https://github.com/janestreet/ocaml-compiler-libs")
(source
@ -4058,7 +4173,10 @@ provided by companion libraries such as
"03jds7bszh8wwpfwxb3dg0gyr1j1872wxwx1xqhry5ir0i84bg0s"))))
(build-system dune-build-system)
(arguments
'(#:tests? #f)) ;no tests
`(#:tests? #f ;no tests
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(properties `((upstream-name . "ocaml-compiler-libs")))
(synopsis "Compiler libraries repackaged")
(description "This package simply repackages the OCaml compiler libraries
@ -4088,7 +4206,8 @@ is now @code{Ocaml_common.Ast_helper}.")
(arguments
`(#:tests? #f ;no tests
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(synopsis "Standard IO library for OCaml")
(description
"Stdio implements simple input/output functionalities for OCaml. It
@ -4141,7 +4260,7 @@ as part of the same ocaml-migrate-parsetree driver.")
(build-system dune-build-system)
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-compiler-libs" ,(package-with-ocaml4.07 ocaml-compiler-libs))
("ocaml-compiler-libs" ,ocaml4.07-compiler-libs)
("ocaml-migrate-parsetree"
,(package-with-ocaml4.07 ocaml-migrate-parsetree))
("ocaml-ppx-derivers" ,(package-with-ocaml4.07 ocaml-ppx-derivers))
@ -4169,7 +4288,8 @@ as part of the same ocaml-migrate-parsetree driver.")
all))))
#t)))
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(synopsis
"Base library and tools for ppx rewriters")
(description
@ -4208,7 +4328,8 @@ OCaml AST in the OCaml syntax;
("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
(arguments
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(properties `((upstream-name . "ppx_compare")))
(home-page "https://github.com/janestreet/ppx_compare")
(synopsis "Generation of comparison functions from types")
@ -4237,7 +4358,8 @@ by making sure that you only compare comparable values.")
;; No tests
`(#:tests? #f
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-migrate-parsetree"
@ -4268,7 +4390,8 @@ of a record and create new record values.")
;; No tests
`(#:tests? #f
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-migrate-parsetree"
@ -4302,7 +4425,8 @@ standard library.")
("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
(arguments
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(properties `((upstream-name . "ppx_fields_conv")))
(home-page "https://github.com/janestreet/ppx_fields_conv")
(synopsis "Generation of accessor and iteration functions for ocaml records")
@ -4333,7 +4457,8 @@ new record values.")
("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
(arguments
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(properties `((upstream-name . "ppx_sexp_conv")))
(home-page "https://github.com/janestreet/ppx_sexp_conv")
(synopsis "Generation of S-expression conversion functions from type definitions")
@ -4363,7 +4488,8 @@ definitions.")
("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
(arguments
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(properties
`((upstream-name . "ppx_variants_conv")))
(home-page
@ -4395,7 +4521,8 @@ variant types.")
("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
(arguments
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(properties `((upstream-name . "ppx_custom_printf")))
(home-page "https://github.com/janestreet/ppx_custom_printf")
(synopsis "Printf-style format-strings for user-defined string conversion")
@ -4427,7 +4554,8 @@ string conversion.")
,(package-with-ocaml4.07 ocaml-migrate-parsetree))))
(arguments
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(properties `((upstream-name . "bin_prot")))
(home-page "https://github.com/janestreet/bin_prot")
(synopsis "Binary protocol generator")
@ -4493,7 +4621,8 @@ storage of large amounts of data.")
("ocaml-ppxlib" ,ocaml4.07-ppxlib)))
(arguments
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(properties `((upstream-name . "ppx_hash")))
(home-page "https://github.com/janestreet/ppx_hash")
(synopsis "Generation of hash functions from type expressions and definitions")
@ -4518,7 +4647,8 @@ hash functions from type exrpessions and definitions.")
(arguments
`(#:tests? #f; no test suite
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-migrate-parsetree"
@ -4549,7 +4679,8 @@ many values).")
;; No tests
`(#:tests? #f
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-ppx-inline-test" ,ocaml4.07-ppx-inline-test)
("ocaml-migrate-parsetree"
@ -4578,7 +4709,8 @@ many values).")
;; broken tests
`(#:tests? #f
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-migrate-parsetree"
@ -4607,7 +4739,8 @@ many values).")
(arguments
`(#:tests? #f
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs `(("ocaml-base" ,ocaml4.07-base)))
(home-page "https://github.com/janestreet/typerep")
(synopsis "Typerep is a library for runtime types")
@ -4629,7 +4762,8 @@ many values).")
(build-system dune-build-system)
(arguments
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-ppx-here" ,ocaml4.07-ppx-here)
@ -4659,7 +4793,8 @@ ocaml values.")
(build-system dune-build-system)
(arguments
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-ppx-here" ,ocaml4.07-ppx-here)
@ -4693,7 +4828,8 @@ context such as function arguments.")
;; No tests
`(#:tests? #f
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-migrate-parsetree"
,(package-with-ocaml4.07 ocaml-migrate-parsetree))
@ -4722,7 +4858,8 @@ context such as function arguments.")
;; No tests
`(#:tests? #f
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-migrate-parsetree"
@ -4751,7 +4888,8 @@ else expression.")
(build-system dune-build-system)
(arguments
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-stdio" ,ocaml4.07-stdio)
@ -4779,7 +4917,8 @@ size, the version of the compiler, ...")
(build-system dune-build-system)
(arguments
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-migrate-parsetree"
@ -4807,7 +4946,8 @@ match expressions, and if expressions.")
(build-system dune-build-system)
(arguments
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-ppx-here" ,ocaml4.07-ppx-here)
@ -4836,7 +4976,8 @@ position.")
(build-system dune-build-system)
(arguments
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-ppx-compare" ,ocaml4.07-ppx-compare)
@ -4867,9 +5008,9 @@ useful errors on failure.")
"1wawsbjfkri4sw52n8xqrzihxc3xfpdicv3ahz83a1rsn4lb8j5q"))))
(build-system dune-build-system)
(arguments
`(#:jbuild? #t
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-ppx-assert" ,ocaml4.07-ppx-assert)
@ -4912,7 +5053,8 @@ to denote the expected output.")
;; No tests
`(#:tests? #f
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-migrate-parsetree"
@ -4944,7 +5086,8 @@ packages.")
(arguments
`(#:test-target "."
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-typerep" ,ocaml4.07-typerep)
@ -4974,7 +5117,8 @@ from type definitions.")
(arguments
`(#:test-target "."
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-ppx-compare" ,ocaml4.07-ppx-compare)
("ocaml-ppx-enumerate" ,ocaml4.07-ppx-enumerate)
@ -5011,7 +5155,8 @@ verification tool.")
;; Cyclic dependency with ocaml-ppx-jane
`(#:tests? #f
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-bin-prot" ,ocaml4.07-bin-prot)
@ -5042,7 +5187,8 @@ functions from type definitions.")
(arguments
`(#:test-target "."
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-ppx-assert" ,ocaml4.07-ppx-assert)
("ocaml-ppx-base" ,ocaml4.07-ppx-base)
@ -5087,7 +5233,8 @@ driver including all standard Jane Street ppx rewriters.")
(build-system dune-build-system)
(arguments
`(#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-ppx-jane" ,ocaml4.07-ppx-jane)
@ -5105,9 +5252,9 @@ This library implements a splittable pseudo-random number generator that sacrifi
cryptographic-quality randomness in favor of performance.")
(license license:asl2.0)))
(define-public ocaml-jane-street-headers
(define-public ocaml4.07-jane-street-headers
(package
(name "ocaml-jane-street-headers")
(name "ocaml4.07-jane-street-headers")
(version "0.11.0")
(source (origin
(method url-fetch)
@ -5119,7 +5266,10 @@ cryptographic-quality randomness in favor of performance.")
"0afhzm08l9v883fhpqqh2lmy7az609pxif40bp7x1sk8c0yszqsh"))))
(build-system dune-build-system)
(arguments
`(#:test-target "."))
`(#:test-target "."
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(home-page "https://github.com/janestreet/jane-street-headers")
(synopsis "Jane Street C header files")
(description "This package provides C header files shared between the
@ -5143,7 +5293,8 @@ various Jane Street packages.")
;; No tests
`(#:tests? #f
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-stdio" ,ocaml4.07-stdio)))
@ -5186,7 +5337,8 @@ Configurator allows one to:
(("/bin/echo") (which "echo")))
#t)))
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(native-inputs
`(("ocaml-ppx-expect" ,ocaml4.07-ppx-expect)))
(home-page "https://github.com/janestreet/spawn")
@ -5225,11 +5377,11 @@ thousands of times faster than fork.
"0pzl8n09z4f3i7z2wq4cjxfqrr8mj6xcdp7rbg0nxap2zdhjgvrq"))))
(build-system dune-build-system)
(arguments
`(#:jbuild? #t
;; Require a cyclic dependency: core_extended
#:tests? #f
`(#:package "core"
#:tests? #f; Require a cyclic dependency: core_extended
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-configurator" ,ocaml4.07-configurator)
@ -5268,14 +5420,14 @@ standard library that was developed by Jane Street.")
;; Cyclic dependency with ocaml-core
`(#:tests? #f
#:ocaml ,ocaml-4.07
#:findlib ,ocaml4.07-findlib))
#:findlib ,ocaml4.07-findlib
#:dune ,ocaml4.07-dune))
(propagated-inputs
`(("ocaml-base" ,ocaml4.07-base)
("ocaml-bin-prot" ,ocaml4.07-bin-prot)
("ocaml-configurator" ,ocaml4.07-configurator)
("ocaml-fieldslib" ,ocaml4.07-fieldslib)
("ocaml-jane-street-headers"
,(package-with-ocaml4.07 ocaml-jane-street-headers))
("ocaml-jane-street-headers" ,ocaml4.07-jane-street-headers)
("ocaml-ppx-assert" ,ocaml4.07-ppx-assert)
("ocaml-ppx-base" ,ocaml4.07-ppx-base)
("ocaml-ppx-hash" ,ocaml4.07-ppx-hash)
@ -5375,7 +5527,7 @@ stream, and convert everything to UTF-8.")
("ocaml-markup" ,ocaml-markup)))
(native-inputs
`(("ocaml-alcotest" ,ocaml-alcotest)))
(arguments `(#:jbuild? #t))
(arguments `(#:package "tyxml"))
(home-page "https://github.com/ocsigen/tyxml/")
(synopsis "TyXML is a library for building correct HTML and SVG documents")
(description "TyXML provides a set of convenient combinators that uses the

View File

@ -144,7 +144,7 @@
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://git.savannah.gnu.org/r/guix.git")
(url "https://git.savannah.gnu.org/git/guix.git")
(commit commit)))
(sha256
(base32
@ -1242,7 +1242,7 @@ for packaging and deployment of cross-compiled Windows applications.")
(define-public libostree
(package
(name "libostree")
(version "2020.6")
(version "2020.7")
(source
(origin
(method url-fetch)
@ -1250,7 +1250,7 @@ for packaging and deployment of cross-compiled Windows applications.")
"https://github.com/ostreedev/ostree/releases/download/v"
(version-major+minor version) "/libostree-" version ".tar.xz"))
(sha256
(base32 "0wk9fgj9jl25ns2hcgcb6j24k5mvfn13b02ka0p8l4hdh8c4hpc6"))))
(base32 "0clriq2ypz1fycd6mpjyrhzid44svzpzw0amnank593h69b216ax"))))
(build-system gnu-build-system)
(arguments
'(#:phases

View File

@ -4,7 +4,7 @@
;;; Copyright © 2015, 2016, 2017, 2018, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
@ -108,7 +108,7 @@ and they are executed on lists of files, hosts, users or other items.")
(define-public slurm
(package
(name "slurm")
(version "19.05.3-2")
(version "20.02.5")
(source (origin
(method url-fetch)
(uri (string-append
@ -116,7 +116,7 @@ and they are executed on lists of files, hosts, users or other items.")
version ".tar.bz2"))
(sha256
(base32
"0qj4blfymrd2ry2qmb58l3jbr4jwygc3adcfw7my27rippcijlyc"))
"08qp60rxsny6fcx58xim88avx7f7h7q1vpq3lfw6nlha04r7lan3"))
(modules '((guix build utils)))
(snippet
'(begin
@ -140,19 +140,19 @@ and they are executed on lists of files, hosts, users or other items.")
#t))))
;; FIXME: More optional inputs could be added,
;; in particular mysql and gtk+.
(inputs `(("expect" ,expect)
("freeipmi" ,freeipmi)
(inputs `(("freeipmi" ,freeipmi)
("hwloc" ,hwloc-2 "lib")
("json-c" ,json-c)
("linux-pam" , linux-pam)
("munge" ,munge)
("numactl" ,numactl)
("perl" ,perl)
("python" ,python-wrapper)
("readline" ,readline)))
(native-inputs
`(("autoconf" ,autoconf)
("pkg-config" ,pkg-config)))
("expect" ,expect)
("perl" ,perl)
("pkg-config" ,pkg-config)
("python" ,python-wrapper)))
(build-system gnu-build-system)
(arguments
`(#:configure-flags

View File

@ -28,6 +28,7 @@
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Jean-Baptiste Note <jean-baptiste.note@m4x.org>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -381,8 +382,17 @@ them out, at the source.")
"13hw532fmzc5xjpy75d74rlfdlxf2a8ibb4hyy9c0s92wsgf0qsj"))))
(build-system gnu-build-system)
(arguments
;; XXX: have RUNPATH issue.
'(#:configure-flags '("--disable-python-bindings")))
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'set-LDFLAGS
(lambda* (#:key inputs outputs #:allow-other-keys)
(setenv "LDFLAGS"
(string-append
"-Wl,-rpath="
(assoc-ref outputs "out") "/lib"))
#t)))))
(native-inputs
`(("python" ,python-wrapper)))
(inputs
`(("cracklib" ,cracklib)))
(synopsis "Password quality checker")

View File

@ -0,0 +1,89 @@
Clang attempts to guess file names based on the OS and distro (yes!),
but unfortunately, that doesn't work for us.
This patch makes it easy to insert libc's $libdir so that Clang passes the
correct absolute file name of crt1.o etc. to 'ld'. It also disables all
the distro-specific stuff and removes the hard-coded FHS directory names
to make sure Clang also works on non-Guix systems.
diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
--- a/lib/Driver/ToolChains/Gnu.cpp
+++ b/lib/Driver/ToolChains/Gnu.cpp
@@ -2797,7 +2797,7 @@ void Generic_GCC::AddMultilibPaths(const Driver &D,
// the cross. Note that GCC does include some of these directories in some
// configurations but this seems somewhere between questionable and simply
// a bug.
- if (StringRef(LibPath).startswith(SysRoot)) {
+ if (0) {
addPathIfExists(D, LibPath + "/" + MultiarchTriple, Paths);
addPathIfExists(D, LibPath + "/../" + OSLibDir, Paths);
}
@@ -2811,6 +2811,10 @@ void Generic_GCC::AddMultiarchPaths(const Driver &D,
// Try walking via the GCC triple path in case of biarch or multiarch GCC
// installations with strange symlinks.
if (GCCInstallation.isValid()) {
+
+// The following code would end up adding things like
+// "/usr/lib/x86_64-unknown-linux-gnu/../../lib64" to the search path.
+#if 0
addPathIfExists(D,
SysRoot + "/usr/lib/" + GCCInstallation.getTriple().str() +
"/../../" + OSLibDir,
@@ -2823,6 +2827,7 @@ void Generic_GCC::AddMultiarchPaths(const Driver &D,
D, GCCInstallation.getInstallPath() + BiarchSibling.gccSuffix(),
Paths);
}
+#endif // Guix
// See comments above on the multilib variant for details of why this is
// included even from outside the sysroot.
diff --git a/lib/Driver/ToolChains/Linux.cpp b/lib/Driver/ToolChains/Linux.cpp
--- a/lib/Driver/ToolChains/Linux.cpp
+++ b/lib/Driver/ToolChains/Linux.cpp
@@ -219,6 +219,9 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
Generic_GCC::PushPPaths(PPaths);
+// Comment out the distro-specific tweaks so that they don't bite when
+// using Guix on a foreign distro.
+#if 0
Distro Distro(D.getVFS(), Triple);
if (Distro.IsAlpineLinux() || Triple.isAndroid()) {
@@ -284,6 +287,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
if (IsAndroid || Distro.IsOpenSUSE())
ExtraOpts.push_back("--enable-new-dtags");
+#endif // Guix
// The selection of paths to try here is designed to match the patterns which
// the GCC driver itself uses, as this is part of the GCC-compatible driver.
@@ -310,6 +314,8 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
addPathIfExists(D, SysRoot + "/lib/" + MultiarchTriple, Paths);
addPathIfExists(D, SysRoot + "/lib/../" + OSLibDir, Paths);
+// This requires the commented distro tweaks above.
+#if 0
if (IsAndroid) {
// Android sysroots contain a library directory for each supported OS
// version as well as some unversioned libraries in the usual multiarch
@@ -338,6 +344,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
addPathIfExists(D, SysRoot + "/" + OSLibDir + "/" + ABIName, Paths);
addPathIfExists(D, SysRoot + "/usr/" + OSLibDir + "/" + ABIName, Paths);
}
+#endif // Guix
Generic_GCC::AddMultiarchPaths(D, SysRoot, OSLibDir, Paths);
@@ -349,8 +356,9 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
if (StringRef(D.Dir).startswith(SysRoot))
addPathIfExists(D, D.Dir + "/../lib", Paths);
- addPathIfExists(D, SysRoot + "/lib", Paths);
- addPathIfExists(D, SysRoot + "/usr/lib", Paths);
+ // Add libc's lib/ directory to the search path, so that crt1.o, crti.o,
+ // and friends can be found.
+ addPathIfExists(D, "@GLIBC_LIBDIR@", Paths);
}
ToolChain::CXXStdlibType Linux::GetDefaultCXXStdlibType() const {

View File

@ -0,0 +1,185 @@
diff --git a/auto/unix b/auto/unix
index 10835f6c..b5b33bb3 100644
--- a/auto/unix
+++ b/auto/unix
@@ -990,3 +990,27 @@ ngx_feature_test='struct addrinfo *res;
if (getaddrinfo("localhost", NULL, NULL, &res) != 0) return 1;
freeaddrinfo(res)'
. auto/feature
+
+ngx_feature="SOCK_CLOEXEC support"
+ngx_feature_name="NGX_HAVE_SOCKET_CLOEXEC"
+ngx_feature_run=no
+ngx_feature_incs="#include <sys/types.h>
+ #include <sys/socket.h>"
+ngx_feature_path=
+ngx_feature_libs=
+ngx_feature_test="int fd;
+ fd = socket(AF_INET, SOCK_STREAM | SOCK_CLOEXEC, 0);"
+. auto/feature
+
+ngx_feature="FD_CLOEXEC support"
+ngx_feature_name="NGX_HAVE_FD_CLOEXEC"
+ngx_feature_run=no
+ngx_feature_incs="#include <sys/types.h>
+ #include <sys/socket.h>
+ #include <fcntl.h>"
+ngx_feature_path=
+ngx_feature_libs=
+ngx_feature_test="int fd;
+ fd = socket(AF_INET, SOCK_STREAM, 0);
+ fcntl(fd, F_SETFD, FD_CLOEXEC);"
+. auto/feature
diff --git a/src/core/ngx_resolver.c b/src/core/ngx_resolver.c
index cd55520c..438e0806 100644
--- a/src/core/ngx_resolver.c
+++ b/src/core/ngx_resolver.c
@@ -4466,8 +4466,14 @@ ngx_tcp_connect(ngx_resolver_connection_t *rec)
ngx_event_t *rev, *wev;
ngx_connection_t *c;
+#if (NGX_HAVE_SOCKET_CLOEXEC)
+ s = ngx_socket(rec->sockaddr->sa_family, SOCK_STREAM | SOCK_CLOEXEC, 0);
+
+#else
s = ngx_socket(rec->sockaddr->sa_family, SOCK_STREAM, 0);
+#endif
+
ngx_log_debug1(NGX_LOG_DEBUG_EVENT, &rec->log, 0, "TCP socket %d", s);
if (s == (ngx_socket_t) -1) {
@@ -4494,6 +4500,15 @@ ngx_tcp_connect(ngx_resolver_connection_t *rec)
goto failed;
}
+#if (NGX_HAVE_FD_CLOEXEC)
+ if (ngx_cloexec(s) == -1) {
+ ngx_log_error(NGX_LOG_ALERT, &rec->log, ngx_socket_errno,
+ ngx_cloexec_n " failed");
+
+ goto failed;
+ }
+#endif
+
rev = c->read;
wev = c->write;
diff --git a/src/event/ngx_event.h b/src/event/ngx_event.h
index 19fec68..8c2f01a 100644
--- a/src/event/ngx_event.h
+++ b/src/event/ngx_event.h
@@ -73,6 +73,9 @@ struct ngx_event_s {
/* to test on worker exit */
unsigned channel:1;
unsigned resolver:1;
+#if (HAVE_SOCKET_CLOEXEC_PATCH)
+ unsigned skip_socket_leak_check:1;
+#endif
unsigned cancelable:1;
diff --git a/src/event/ngx_event_accept.c b/src/event/ngx_event_accept.c
index 77563709..5827b9d0 100644
--- a/src/event/ngx_event_accept.c
+++ b/src/event/ngx_event_accept.c
@@ -62,7 +62,9 @@ ngx_event_accept(ngx_event_t *ev)
#if (NGX_HAVE_ACCEPT4)
if (use_accept4) {
- s = accept4(lc->fd, &sa.sockaddr, &socklen, SOCK_NONBLOCK);
+ s = accept4(lc->fd, &sa.sockaddr, &socklen,
+ SOCK_NONBLOCK | SOCK_CLOEXEC);
+
} else {
s = accept(lc->fd, &sa.sockaddr, &socklen);
}
@@ -202,6 +204,16 @@ ngx_event_accept(ngx_event_t *ev)
ngx_close_accepted_connection(c);
return;
}
+
+#if (NGX_HAVE_FD_CLOEXEC)
+ if (ngx_cloexec(s) == -1) {
+ ngx_log_error(NGX_LOG_ALERT, ev->log, ngx_socket_errno,
+ ngx_cloexec_n " failed");
+ ngx_close_accepted_connection(c);
+ return;
+ }
+#endif
+
}
}
diff --git a/src/event/ngx_event_connect.c b/src/event/ngx_event_connect.c
index c5bb8068..cf33b1d2 100644
--- a/src/event/ngx_event_connect.c
+++ b/src/event/ngx_event_connect.c
@@ -38,8 +38,15 @@ ngx_event_connect_peer(ngx_peer_connection_t *pc)
type = (pc->type ? pc->type : SOCK_STREAM);
+#if (NGX_HAVE_SOCKET_CLOEXEC)
+ s = ngx_socket(pc->sockaddr->sa_family, type | SOCK_CLOEXEC, 0);
+
+#else
s = ngx_socket(pc->sockaddr->sa_family, type, 0);
+#endif
+
+
ngx_log_debug2(NGX_LOG_DEBUG_EVENT, pc->log, 0, "%s socket %d",
(type == SOCK_STREAM) ? "stream" : "dgram", s);
@@ -80,6 +87,15 @@ ngx_event_connect_peer(ngx_peer_connection_t *pc)
goto failed;
}
+#if (NGX_HAVE_FD_CLOEXEC)
+ if (ngx_cloexec(s) == -1) {
+ ngx_log_error(NGX_LOG_ALERT, pc->log, ngx_socket_errno,
+ ngx_cloexec_n " failed");
+
+ goto failed;
+ }
+#endif
+
if (pc->local) {
#if (NGX_HAVE_TRANSPARENT_PROXY)
diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c
index c4376a5..48e8fa8 100644
--- a/src/os/unix/ngx_process_cycle.c
+++ b/src/os/unix/ngx_process_cycle.c
@@ -1032,6 +1032,9 @@ ngx_worker_process_exit(ngx_cycle_t *cycle)
for (i = 0; i < cycle->connection_n; i++) {
if (c[i].fd != -1
&& c[i].read
+#if (HAVE_SOCKET_CLOEXEC_PATCH)
+ && !c[i].read->skip_socket_leak_check
+#endif
&& !c[i].read->accept
&& !c[i].read->channel
&& !c[i].read->resolver)
diff --git a/src/os/unix/ngx_socket.h b/src/os/unix/ngx_socket.h
index fcc51533..d1eebf47 100644
--- a/src/os/unix/ngx_socket.h
+++ b/src/os/unix/ngx_socket.h
@@ -38,6 +38,17 @@ int ngx_blocking(ngx_socket_t s);
#endif
+#if (NGX_HAVE_FD_CLOEXEC)
+
+#define ngx_cloexec(s) fcntl(s, F_SETFD, FD_CLOEXEC)
+#define ngx_cloexec_n "fcntl(FD_CLOEXEC)"
+
+/* at least FD_CLOEXEC is required to ensure connection fd is closed
+ * after execve */
+#define HAVE_SOCKET_CLOEXEC_PATCH 1
+
+#endif
+
int ngx_tcp_nopush(ngx_socket_t s);
int ngx_tcp_push(ngx_socket_t s);

View File

@ -1,15 +0,0 @@
Fix test failure with Pytest 4.
Taken from upstream:
https://github.com/chardet/chardet/commit/440828f8faafdb58700c64a9ea8f6a30b154c08b
diff --git a/test.py b/test.py
--- a/test.py
+++ b/test.py
@@ -59,5 +59,5 @@ def gen_test_params():
full_path = join(path, file_name)
test_case = full_path, encoding
if full_path in EXPECTED_FAILURES:
- test_case = pytest.mark.xfail(test_case)
+ test_case = pytest.param(*test_case, marks=pytest.mark.xfail)
yield test_case

View File

@ -0,0 +1,81 @@
This patch is taken from the opam repository:
https://github.com/ocaml/opam-repository/blob/master/packages/unison/unison.2.51.2/files/ocaml48.patch
It fixes compatibility with changes introduced in OCaml 4.08.
diff --git a/src/Makefile.OCaml b/src/Makefile.OCaml
index 7cefa2e..378fc8b 100644
--- a/src/Makefile.OCaml
+++ b/src/Makefile.OCaml
@@ -272,7 +272,7 @@ endif
# Gtk GUI
ifeq ($(UISTYLE), gtk)
- CAMLFLAGS+=-I +lablgtk
+ CAMLFLAGS+=-I $(LABLGTKLIB)
OCAMLOBJS+=pixmaps.cmo uigtk.cmo linkgtk.cmo
OCAMLLIBS+=lablgtk.cma
endif
@@ -282,7 +282,7 @@ OCAMLFIND := $(shell command -v ocamlfind 2> /dev/null)
ifeq ($(UISTYLE), gtk2)
ifndef OCAMLFIND
- CAMLFLAGS+=-I +lablgtk2
+ CAMLFLAGS+=-I $(LABLGTK2LIB)
else
CAMLFLAGS+=$(shell $(OCAMLFIND) query -i-format lablgtk2 )
endif
diff --git a/src/files.ml b/src/files.ml
index 5ff1881..1d1fbcc 100644
--- a/src/files.ml
+++ b/src/files.ml
@@ -734,7 +734,7 @@ let get_files_in_directory dir =
with End_of_file ->
dirh.System.closedir ()
end;
- Sort.list (<) !files
+ List.sort String.compare !files
let ls dir pattern =
Util.convertUnixErrorsToTransient
diff --git a/src/recon.ml b/src/recon.ml
index 2c619bb..2412c18 100644
--- a/src/recon.ml
+++ b/src/recon.ml
@@ -661,8 +661,8 @@ let rec reconcile
(* Sorts the paths so that they will be displayed in order *)
let sortPaths pathUpdatesList =
- Sort.list
- (fun (p1, _) (p2, _) -> Path.compare p1 p2 <= 0)
+ List.sort
+ Path.compare
pathUpdatesList
let rec enterPath p1 p2 t =
diff --git a/src/system/system_generic.ml b/src/system/system_generic.ml
index 453027d..c2288b8 100755
--- a/src/system/system_generic.ml
+++ b/src/system/system_generic.ml
@@ -47,7 +47,7 @@ let open_out_gen = open_out_gen
let chmod = Unix.chmod
let chown = Unix.chown
let utimes = Unix.utimes
-let link = Unix.link
+let link s d = Unix.link s d
let openfile = Unix.openfile
let opendir f =
let h = Unix.opendir f in
diff --git a/src/uigtk2.ml b/src/uigtk2.ml
index fbc5d8f..4e82cc2 100644
--- a/src/uigtk2.ml
+++ b/src/uigtk2.ml
@@ -94,7 +94,7 @@ let icon =
let icon =
let p = GdkPixbuf.create ~width:48 ~height:48 ~has_alpha:true () in
Gpointer.blit
- (Gpointer.region_of_string Pixmaps.icon_data) (GdkPixbuf.get_pixels p);
+ (Gpointer.region_of_bytes Pixmaps.icon_data) (GdkPixbuf.get_pixels p);
p
let leftPtrWatch =

View File

@ -0,0 +1,39 @@
Remove python-requests dependency, r27626 upstream.
--- a/xpra/net/websockets/common.py (revision 27625)
+++ b/xpra/net/websockets/common.py (revision 27626)
@@ -7,7 +7,6 @@
import uuid
from hashlib import sha1
from base64 import b64encode
-from requests.structures import CaseInsensitiveDict
from xpra.os_util import strtobytes, bytestostr, monotonic_time
from xpra.log import Logger
@@ -77,7 +76,7 @@
for line in lines:
parts = line.split(b": ", 1)
if len(parts)==2:
- headers[parts[0]] = parts[1]
+ headers[parts[0].lower()] = parts[1]
return headers
def verify_response_headers(headers, key):
@@ -84,14 +83,13 @@
log("verify_response_headers(%s)", headers)
if not headers:
raise Exception("no http headers found in response")
- headers = CaseInsensitiveDict(headers)
- upgrade = headers.get(b"Upgrade", b"")
+ upgrade = headers.get(b"upgrade", b"")
if upgrade!=b"websocket":
raise Exception("invalid http upgrade: '%s'" % upgrade)
- protocol = headers.get(b"Sec-WebSocket-Protocol", b"")
+ protocol = headers.get(b"sec-websocket-protocol", b"")
if protocol!=b"binary":
raise Exception("invalid websocket protocol: '%s'" % protocol)
- accept_key = headers.get(b"Sec-WebSocket-Accept", b"")
+ accept_key = headers.get(b"sec-websocket-accept", b"")
if not accept_key:
raise Exception("websocket accept key is missing")
expected_key = make_websocket_accept_hash(key)

View File

@ -18,6 +18,7 @@
;;; Copyright © 2019 Ben Sturmfels <ben@sturm.com.au>
;;; Copyright © 2019,2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -580,7 +581,7 @@ by using the poppler rendering engine.")
(define-public zathura
(package
(name "zathura")
(version "0.4.5")
(version "0.4.7")
(source (origin
(method url-fetch)
(uri
@ -588,7 +589,7 @@ by using the poppler rendering engine.")
version ".tar.xz"))
(sha256
(base32
"0b3nrcvykkpv2vm99kijnic2gpfzva520bsjlihaxandzfm9ff8c"))))
"1rx1fk9s556fk59lmqgvhwrmv71ashh89bx9adjq46wq5gzdn4p0"))))
(native-inputs `(("pkg-config" ,pkg-config)
("gettext" ,gettext-minimal)
("glib:bin" ,glib "bin")

View File

@ -2213,7 +2213,7 @@ Password Generator\".")
(define-public perl-crypt-rijndael
(package
(name "perl-crypt-rijndael")
(version "1.14")
(version "1.15")
(source
(origin
(method url-fetch)
@ -2221,8 +2221,7 @@ Password Generator\".")
"mirror://cpan/authors/id/L/LE/LEONT/Crypt-Rijndael-"
version ".tar.gz"))
(sha256
(base32
"03l5nwq97a8q9na4dpd4m3r7vrwpranx225vw8xm40w7zvgw6lb4"))))
(base32 "0qs1b6ma4sj0ip5d8544fzgc1bbankc4qlmznp8hay8dk5arp650"))))
(build-system perl-build-system)
(home-page "https://metacpan.org/release/Crypt-Rijndael")
(synopsis "Crypt::CBC compliant Rijndael encryption module")
@ -8606,14 +8605,14 @@ and @code{deserialize_regexp}.")
(define-public perl-role-tiny-2
(package
(inherit perl-role-tiny)
(version "2.001001")
(version "2.001004")
(source
(origin
(method url-fetch)
(uri (string-append "mirror://cpan/authors/id/H/HA/HAARG/"
"Role-Tiny-" version ".tar.gz"))
(sha256
(base32 "16yryg3cr14xw201gm8k8ci00hs60fy8lk2xhnaqa85n5m68flk8"))))))
(base32 "11qn516352yhi794www3ykwa9xv2gxpfnhn9jcn10x0ahl95gflj"))))))
(define-public perl-safe-isa
(package

View File

@ -4,7 +4,7 @@
;;; Copyright © 2015, 2017 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Roel Janssen <roel@gnu.org>
;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2020 Sebastian Schott <sschott@mailbox.org>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
@ -238,14 +238,14 @@ data as produced by digital cameras.")
(define-public libgphoto2
(package
(name "libgphoto2")
(version "2.5.25")
(version "2.5.26")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gphoto/libgphoto/"
version "/libgphoto2-" version ".tar.bz2"))
(sha256
(base32
"0fkz2rx7xlmr6zl6f56hhxps6bx16dwcw5pyd8c2icf273s9h3kw"))))
"1m5wxap3x9z6x8s2gj3sw9lqwlmbgz00dv6z3h3qk15prfizwh3p"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)))
(inputs
@ -269,14 +269,14 @@ from digital cameras.")
(define-public gphoto2
(package
(name "gphoto2")
(version "2.5.23")
(version "2.5.26")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gphoto/gphoto/" version
"/gphoto2-" version ".tar.bz2"))
(sha256
(base32
"1laqwhxr0xhbykmp0dhd3j4rr2lhj5y228s31afnqxp700hhk1yz"))))
"0bxbcn31xalsvjp8fra324hf2105y3ps7zlyfz11v71j0lxj2lvn"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))

View File

@ -86,7 +86,7 @@ manner. It also features an interactive interpreter.")
(define-public swi-prolog
(package
(name "swi-prolog")
(version "8.3.5")
(version "8.3.9")
(source (origin
(method git-fetch)
(uri (git-reference
@ -96,7 +96,7 @@ manner. It also features an interactive interpreter.")
(file-name (git-file-name name version))
(sha256
(base32
"14dga0gja45x1717fp1bwgf96nzc0zgb8x1lha0pb46jg1raa2da"))))
"0ixb8pc5s7q8q0njs8is1clpvik6jhhdcwnys7m9rpwdzgi10sjz"))))
(build-system cmake-build-system)
(arguments
`(#:parallel-build? #t

View File

@ -61,6 +61,7 @@
#:use-module (gnu packages swig)
#:use-module (gnu packages time)
#:use-module (gnu packages tls)
#:use-module (gnu packages xml)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (srfi srfi-1))
@ -91,14 +92,14 @@ Python. It does not bind to libotr.")
(define-public python-base58
(package
(name "python-base58")
(version "1.0.3")
(version "2.0.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "base58" version))
(sha256
(base32
"0q1yr0n5jaf17xq98m7dma6z4rh8p19ch55l1s09gi3rk5ckqycs"))))
"0yfaqp76kbdb62hikr5n4jkkfjfmii89grwfy6sw3fmsv5hrap1n"))))
(build-system python-build-system)
(native-inputs
`(("python-pyhamcrest" ,python-pyhamcrest)))
@ -141,13 +142,13 @@ Password Scheme\"} by Niels Provos and David Mazieres.")
(define-public python-passlib
(package
(name "python-passlib")
(version "1.7.2")
(version "1.7.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "passlib" version))
(sha256
(base32 "1a5ngap7kq0b4azq8nlfg6xg5bcl1i0v1sbynhmbr631jgpnqrld"))))
(base32 "015y5qaw9qnxr29lg60dml1g5rbqd4586wy5n8m41ib55gvm1zfy"))))
(build-system python-build-system)
(native-inputs
`(("python-nose" ,python-nose)))
@ -157,8 +158,8 @@ Password Scheme\"} by Niels Provos and David Mazieres.")
`(#:phases
(modify-phases %standard-phases
(add-before 'check 'set-PYTHON_EGG_CACHE
;; some tests require access to "$HOME/.cython"
(lambda* _ (setenv "PYTHON_EGG_CACHE" "/tmp") #t)))))
;; Some tests require access to "$HOME/.cython".
(lambda _ (setenv "PYTHON_EGG_CACHE" "/tmp") #t)))))
(home-page "https://bitbucket.org/ecollins/passlib")
(synopsis "Comprehensive password hashing framework")
(description
@ -1065,6 +1066,53 @@ through the Engine interface.")
(propagated-inputs
`(("python2-typing" ,python2-typing))))))
(define-public python-pykeepass
(package
(name "python-pykeepass")
(version "3.2.0")
(source
(origin
(method git-fetch)
;; Source tarball on PyPI doesn't include tests.
(uri (git-reference
(url "https://github.com/libkeepass/pykeepass")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1wxbfpy7467mlnfsvmh685fhfnq4fki9y7yc9cylp30r5n3hisaj"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'make-kdbx-writable
;; Tests have to write to the .kdbx files in the test directory.
(lambda _
(with-directory-excursion "tests"
(for-each make-file-writable (find-files "."))
#t)))
(add-before 'build 'patch-requirements
(lambda _
;; Update requirements from dependency==version
;; to dependency>=version.
(substitute* "setup.py"
(("==") ">="))
#t)))))
(propagated-inputs
`(("python-argon2-cffi" ,python-argon2-cffi)
("python-construct" ,python-construct)
("python-dateutil" ,python-dateutil)
("python-future" ,python-future)
("python-lxml" ,python-lxml)
("python-pycryptodome" ,python-pycryptodome)))
(home-page "https://github.com/libkeepass/pykeepass")
(synopsis "Python library to interact with keepass databases")
(description
"This library allows you to write entries to a KeePass database. It
supports KDBX3 and KDBX4.")
;; There are no copyright headers in the source code. The LICENSE file
;; indicates GPL3.
(license license:gpl3+)))
(define-public python-pylibscrypt
(package
(name "python-pylibscrypt")
@ -1138,6 +1186,26 @@ been constructed to maintain extensive documentation on how to use
@code{NaCl} as well as being completely portable.")
(license license:asl2.0)))
(define-public python-pyotp
(package
(name "python-pyotp")
(version "2.4.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyotp" version))
(sha256
(base32 "0a1dx07y785xyl70h0vj6vssg13qfx11w04d0gz8h48qffsymv01"))))
(build-system python-build-system)
(home-page "https://github.com/pyauth/pyotp")
(synopsis "Python One Time Password Library")
(description
"PyOTP is a Python library for generating and verifying one-time
passwords. It can be used to implement two-factor (2FA) or multi-factor
(MFA) authentication methods in web applications and in other systems that
require users to log in.")
(license license:expat)))
(define-public python-scrypt
(package
(name "python-scrypt")
@ -1542,20 +1610,28 @@ signatures.")
(define-public python-pgpy
(package
(name "python-pgpy")
(version "0.5.2")
(version "0.5.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "PGPy" version))
(sha256
(base32
"0i4lqhzdwkjkim3wab0kqadx28z3r5ixlh6qxj4lif4gif56c0m7"))))
(base32 "11rrq15gmn6qbahli7czflfcngjl7zyybjlvk732my6axnf2d754"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest")))))))
(native-inputs
`(("python-cryptography" ,python-cryptography)
("python-pyasn1" ,python-pyasn1)
("python-pytest" ,python-pytest)
("python-singledispatch" ,python-singledispatch)
("python-six" ,python-six)))
("python-six" ,python-six)
("python-wheel" ,python-wheel)))
(home-page "https://github.com/SecurityInnovation/PGPy")
(synopsis "Python implementation of OpenPGP")
(description

View File

@ -90,14 +90,13 @@
(define-public python-aiohttp
(package
(name "python-aiohttp")
(version "3.6.2")
(version "3.6.3")
(source
(origin
(method url-fetch)
(uri (pypi-uri "aiohttp" version))
(sha256
(base32
"09pkw6f1790prnrq0k8cqgnf1qy57ll8lpmc6kld09q7zw4vi6i5"))
(base32 "0i9n7h8n06m2d8ryqyk4fv1si1m44ibq7blbfaxq46vx7jydg339"))
(patches (search-patches "python-aiohttp-3.6.2-no-warning-fail.patch"))))
(build-system python-build-system)
(arguments
@ -2348,13 +2347,13 @@ and to spawn subprocesses to handle requests.")
(define-public python-pastedeploy
(package
(name "python-pastedeploy")
(version "2.1.0")
(version "2.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "PasteDeploy" version))
(sha256
(base32 "16qsq5y6mryslmbp5pn35x4z8z3ndp5rpgl42h226879nrw9hmg7"))))
(base32 "05s88qdjdwd9d9qs13fap7nqgxs7qs5qfzzjbrc5va13k2mxdskd"))))
(build-system python-build-system)
(arguments
'(#:test-target "pytest"))

View File

@ -86,6 +86,7 @@
;;; Copyright © 2020 Hendursaga <hendursaga@yahoo.com>
;;; Copyright © 2020 Malte Frank Gerdes <malte.f.gerdes@gmail.com>
;;; Copyright © 2020 Joseph LaFreniere <joseph@lafreniere.xyz>
;;; Copyright © 2020 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;;
;;; This file is part of GNU Guix.
;;;
@ -107,6 +108,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages adns)
#:use-module (gnu packages aidc)
#:use-module (gnu packages attr)
#:use-module (gnu packages backup)
#:use-module (gnu packages bash)
@ -1665,8 +1667,25 @@ of @code{xmlfile}.")
(description "This Python library allows reading and writing to the Excel XLSX, XLSM,
XLTX and XLTM file formats that are defined by the Office Open XML (OOXML)
standard.")
(properties `((python2-variant . ,(delay python2-openpyxl))))
(license license:expat)))
(define-public python2-openpyxl
(let ((base (package-with-python2
(strip-python2-variant python-openpyxl))))
(package
(inherit base)
;; This is the latest version that has python2 support
(version "2.6.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "openpyxl" version))
(sha256
(base32
"1qzjj8nwj4dn0mhq1j64f136afiqqb81lvqiikipz3g1g0b80lqx"))))
(arguments '(#:tests? #f))))) ; No test suite.
(define-public python-eventlet
(package
(name "python-eventlet")
@ -6048,6 +6067,61 @@ memoizing PEG/Packrat parser in Python.")
(define-public python2-grako
(package-with-python2 python-grako))
(define-public python-grandalf
(package
(name "python-grandalf")
(version "0.7")
(source
(origin
;; There's no source tarball on PyPI.
(method git-fetch)
(uri (git-reference
(url "https://github.com/bdcht/grandalf")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"03p8w8ljpb87qbyldm3s6b7qi30hfcn43h33iwlgqcf31fjsyr4g"))))
(build-system python-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(invoke "python" "setup.py" "pytest"))))))
(native-inputs
`(("python-pytest" ,python-pytest)
("python-pytest-runner" ,python-pytest-runner)))
(propagated-inputs
`(("python-numpy" ,python-numpy)
("python-ply" ,python-ply)))
(home-page "https://github.com/bdcht/grandalf")
(synopsis "Graph and drawing algorithms framework")
(description
"Grandalf is a Python package made for experimentations with graphs
drawing algorithms. It is written in pure Python, and currently implements
two layouts: the Sugiyama hierarchical layout and the force-driven or energy
minimization approach. While not as fast or featured as graphviz or other
libraries like OGDF (C++), it provides a way to walk and draw graphs no larger
than thousands of nodes, while keeping the source code simple enough to tweak
and hack any part of it for experimental purpose. With a total of about 1500
lines of Python, the code involved in drawing the Sugiyama (dot) layout fits
in less than 600 lines. The energy minimization approach is comprised of only
250 lines!
Grandalf does only 2 not-so-simple things:
@itemize
@item computing the nodes (x,y) coordinates (based on provided nodes
dimensions, and a chosen layout)
@item routing the edges with lines or nurbs
@end itemize
It doesnt depend on any GTK/Qt/whatever graphics toolkit. This means that it
will help you find where to draw things like nodes and edges, but its up to
you to actually draw things with your favorite toolkit.")
;; The user can choose either license.
(license (list license:gpl2 license:epl1.0))))
(define-public python-gridmap
(package
(name "python-gridmap")
@ -10071,13 +10145,14 @@ simulation, statistical modeling, machine learning and much more.")
(uri (pypi-uri "chardet" version))
(sha256
(base32
"1bpalpia6r5x1kknbk11p1fzph56fmmnp405ds8icksd3knr5aw4"))
(patches (search-patches "python-chardet-3.0.4-pytest.patch"))))
"1bpalpia6r5x1kknbk11p1fzph56fmmnp405ds8icksd3knr5aw4"))))
(native-inputs
`(("python-hypothesis" ,python-hypothesis)
("python-pytest" ,python-pytest)
("python-pytest-runner" ,python-pytest-runner)))
(build-system python-build-system)
;; XXX: Incompatible with Pytest 4: <https://github.com/chardet/chardet/issues/173>.
(arguments `(#:tests? #f))
(home-page "https://github.com/chardet/chardet")
(synopsis "Universal encoding detector for Python 2 and 3")
(description
@ -15980,6 +16055,51 @@ validation of URIs (see RFC 3986) and IRIs (see RFC 3987).")
(define-public python2-rfc3987
(package-with-python2 python-rfc3987))
;; The latest commit contains fixes for building with both python3 and python2.
(define-public python-rfc6555
(let ((commit "1a181b432312731f6742a5eb558dae4761d32361")
(revision "1"))
(package
(name "python-rfc6555")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/sethmlarson/rfc6555")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1bxl17j9vs69cshcqnlwamr03hnykxqnwz3mdgi6x3s2k4q18npp"))))
(build-system python-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(if tests?
;; Other tests require network access.
(invoke "pytest" "tests/test_ipv6.py")
#t))))))
(native-inputs
`(("python-pytest" ,python-pytest)))
(home-page "https://pypi.org/project/rfc6555/")
(synopsis "Python implementation of RFC 6555")
(description
"Python implementation of the Happy Eyeballs Algorithm described in RFC
6555. Provided with a single file and dead-simple API to allow easy vendoring
and integration into other projects.")
(properties `((python2-variant . ,(delay python2-rfc6555))))
(license license:asl2.0))))
(define-public python2-rfc6555
(let ((base (package-with-python2
(strip-python2-variant python-rfc6555))))
(package
(inherit base)
(propagated-inputs
`(("python2-selectors2" ,python2-selectors2))))))
(define-public python-validators
(package
(name "python-validators")
@ -17189,6 +17309,31 @@ user's @file{~/Trash} directory.")
(string-append (getcwd) ":" (getenv "PYTHONPATH")))
#t))))))))
(define-public python-pyfavicon
(package
(name "python-pyfavicon")
(version "0.1.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyfavicon" version))
(sha256
(base32 "15wfpa99hvcfsv8j0m8iprmydi2p4qkhm86qfx485244y0ia5mgx"))))
(build-system python-build-system)
(arguments
;; There are no tests in the PyPI tarball and the tests from the
;; repository require online data.
'(#:tests? #f))
(propagated-inputs
`(("python-aiohttp" ,python-aiohttp)
("python-beautifulsoup4" ,python-beautifulsoup4)
("python-pillow" ,python-pillow)))
(home-page "https://github.com/bilelmoussaoui/pyfavicon")
(synopsis "Async favicon fetcher")
(description
"@code{pyfavicon} is an async favicon fetcher.")
(license license:expat)))
(define-public python-yapf
(package
(name "python-yapf")
@ -17350,6 +17495,58 @@ Week instances stringify to this form.")
(define-public python2-isoweek
(package-with-python2 python-isoweek))
(define-public python-pyzbar
(package
(name "python-pyzbar")
(version "0.1.8")
(source
(origin
;; There's no source tarball on PyPI.
(method git-fetch)
(uri (git-reference
(url "https://github.com/NaturalHistoryMuseum/pyzbar")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32 "1fqlfg5p2v9lzzzi0si2sz54lblprk6jjjhjw54b64lp58c1yhsl"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'remove-failing-test
(lambda _
;; This tests if find_library was called once, but we remove
;; the call in the stage below to make the library find libzbar.
(delete-file "pyzbar/tests/test_zbar_library.py")
#t))
(add-before 'build 'set-library-file-name
(lambda* (#:key inputs #:allow-other-keys)
(let ((libzbar (assoc-ref inputs "zbar")))
(substitute* "pyzbar/zbar_library.py"
(("find_library\\('zbar'\\)")
(string-append "'" libzbar "/lib/libzbar.so.0'")))
#t))))))
(native-inputs
`(("pkg-config" ,pkg-config)
("python-numpy" ,python-numpy)
("python-pillow" ,python-pillow)))
(inputs
`(("zbar" ,zbar)))
(home-page "https://github.com/NaturalHistoryMuseum/pyzbar/")
(synopsis "Read one-dimensional barcodes and QR codes")
(description
"Read one-dimensional barcodes and QR codes using the zbar library.
Features:
@itemize
@item Pure python
@item Works with PIL / Pillow images, OpenCV / numpy ndarrays, and raw bytes
@item Decodes locations of barcodes
@item No dependencies, other than the zbar library itself
@end itemize")
(license license:expat)))
(define-public python-tokenize-rt
(package
(name "python-tokenize-rt")
@ -20337,12 +20534,23 @@ Notation (CSON).")
(invoke "python" "-X" "dev" "-m" "unittest" "-v" "test")))
(add-after 'unpack 'disable-tests
(lambda* _
(substitute* "test/test_selector.py"
;; XXX: This test fails for unknown reason inside the build
;; environment.
;; XXX: 7 tests fail out of 220. Disable them for now.
(substitute* (list "test/test_selector.py"
"test/test_mock.py")
(("def test_events_watched_outside_test_are_ignored")
"@unittest.skip('disabled by guix')
def test_events_watched_outside_test_are_ignored")))))))
def test_events_watched_outside_test_are_ignored")
(("def test_awaited_from_autospec_mock.*" line)
(string-append line " return True\n"))
(("def test_create_autospec_on_coroutine_and_using_assert_methods.*" line)
(string-append line " return True\n"))
(("def test_patch_coroutine_with_multiple_scopes.*" line)
(string-append line " return True\n"))
(("def test_multiple_patches_on_coroutine.*" line)
(string-append line " return True\n"))
(("def test_patch_coroutine_only_when_running.*" line)
(string-append line " return True\n")))
#t)))))
(home-page "https://github.com/Martiusweb/asynctest")
(synopsis "Extension of unittest for testing asyncio libraries")
(description

View File

@ -159,15 +159,14 @@ this package. E.g.: @code{(udev-rules-service 'rtl-sdr rtl-sdr)}")
(define-public chirp
(package
(name "chirp")
(version "20200430")
(version "20201014")
(source
(origin
(method url-fetch)
(uri (string-append "https://trac.chirp.danplanet.com/chirp_daily/daily-"
version "/chirp-daily-" version ".tar.gz"))
(sha256
(base32
"060fzplgmpfrk6wkfaasx7phpfk90mmylk6drbwzk4f9r1655vda"))))
(base32 "16x3ix2n7a9l7lln2pri1xfmhyfvvzxb0nr3h33iajqimbwckxj0"))))
(build-system python-build-system)
(inputs
`(("python2-libxml2" ,python2-libxml2)

View File

@ -814,14 +814,14 @@ Shell (pdksh).")
(define-public oil
(package
(name "oil")
(version "0.8.1")
(version "0.8.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://www.oilshell.org/download/oil-"
version ".tar.gz"))
(sha256
(base32 "1np17gvvz6zkr2rkvdb15wax45b1mcf2946bfyy3y77ann1zxsyj"))))
(base32 "1m49darrs38x60zqi3sy1mh4a47qvwcyf7djrkzqwzwxsczxybgr"))))
(build-system gnu-build-system)
(arguments
`(#:strip-binaries? #f ; strip breaks the binary

View File

@ -165,6 +165,9 @@ file system, and many more features.")
'("asciidoctor" "openssl"))
;; For building documentation.
("asciidoc" ,asciidoc)))
(inputs
`(("json-c" ,json-c-0.13)
,@(alist-delete "json-c" (package-inputs newsboat))))
(arguments
'(#:phases
(modify-phases %standard-phases

View File

@ -544,14 +544,14 @@ required structures.")
(define-public libressl
(package
(name "libressl")
(version "3.0.2")
(version "3.1.4")
(source (origin
(method url-fetch)
(uri (string-append "mirror://openbsd/LibreSSL/"
"libressl-" version ".tar.gz"))
(sha256
(base32
"13ir2lpxz8y1m151k7lrx306498nzfhwlvgkgv97v5cvywmifyyz"))))
"1dnbbnr43jashxivnafmh9gnn57c7ayva788ba03z633k6f18k21"))))
(build-system gnu-build-system)
(arguments
;; Do as if 'getentropy' was missing since older Linux kernels lack it

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Jesse Gibbons <jgibbons2357+guix@gmail.com>
;;; Copyright © 2019, 2020 Timotej Lazar <timotej.lazar@araneo.si>
;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
@ -32,7 +32,8 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages))
#:use-module (guix packages)
#:use-module (guix utils))
(define-public sl
(package
@ -77,8 +78,6 @@ typing @command{sl} instead of @command{ls}.")
"See LICENSE in the distribution."))))
(define-public filters
(let ((version "2.55")
(commit "c5c291916b52ed9e6418448a8eee30475fb9adcf"))
(package
(name "filters")
(version "2.55")
@ -86,8 +85,8 @@ typing @command{sl} instead of @command{ls}.")
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.joeyh.name/filters")
(commit commit)))
(url "git://git.joeyh.name/filters")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1gaigpda1w9wxfh8an3sam1hpacc1bhxl696w4yj0vzhc6izqvxs"))
@ -101,17 +100,18 @@ typing @command{sl} instead of @command{ls}.")
(build-system gnu-build-system)
(arguments
`(#:make-flags
(list "CC=gcc" (string-append "DESTDIR=" %output))
(list (string-append "CC=" ,(cc-for-target))
(string-append "prefix=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
(delete 'configure)
(add-after 'unpack 'fix-install-directories
(add-after 'unpack 'respect-prefix
(lambda _
(substitute* "Makefile"
(("/usr/games")
"/bin/")
(("/usr/share/")
"/share/"))
"$(prefix)/bin/")
(("/usr")
"$(prefix)"))
#t)))
#:tests? #f)) ; no test suite
(native-inputs
@ -162,7 +162,7 @@ The GNU project hosts a similar collection of filters, the GNU talkfilters.")
license:gpl3+ ; scramble, scottish
license:public-domain ; jethro, kraut, ken, studly
license:gpl1+ ; cockney, jive, nyc only say "gpl"
license:expat))))) ; newspeak
license:expat)))) ; newspeak
(define-public xsnow
(package

View File

@ -31,14 +31,14 @@
(define-public plantuml
(package
(name "plantuml")
(version "1.2020.17")
(version "1.2020.19")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/plantuml/"
version "/plantuml-" version ".tar.gz"))
(sha256
(base32
"031xqzqi2jh2kms6qjy9sv9m5mjvk887jz54dnrkvw5zgn6kv4hp"))))
"0ja2f72x2qd11pkgh1qj6k03yq9ljwsvd6lh84nndwhrbdj5vns7"))))
(build-system ant-build-system)
(arguments
`(#:tests? #f ; no tests

View File

@ -1901,14 +1901,14 @@ masters from remote CVS hosts.")
(define-public vc-dwim
(package
(name "vc-dwim")
(version "1.9")
(version "1.10")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/vc-dwim/vc-dwim-"
version ".tar.xz"))
(sha256
(base32
"0mf1dd7wdqxsm4fcfinfd7iadzarmzvg747pbsbi32qpavpk8gdf"))))
"0am6axxdvkm2vwgg0gjrd930yv4dlsdbf0rdv0zh5bhy1ir64rph"))))
(build-system gnu-build-system)
(inputs `(("perl" ,perl)))
(native-inputs

View File

@ -70,7 +70,7 @@
(define-public vim
(package
(name "vim")
(version "8.2.1840")
(version "8.2.1852")
(source (origin
(method git-fetch)
(uri (git-reference
@ -79,7 +79,7 @@
(file-name (git-file-name name version))
(sha256
(base32
"0ly2kv1x3jqi363wjk694s8bi9q0xvw7yizf8pzanan8h2wy1r28"))))
"0nvcvvig5fc45smf4kh71jqyqafffgxzaizwqknk0h9vzl4k4h57"))))
(build-system gnu-build-system)
(arguments
`(#:test-target "test"

View File

@ -1518,18 +1518,19 @@ monitor/GPU.")
"-xvf" source))))
(replace 'build
(lambda* (#:key import-path #:allow-other-keys)
(chdir (string-append "src/" import-path))
(with-directory-excursion (string-append "src/" import-path)
;; XXX: requires 'go-md2man'.
;; (invoke "make" "man")
(invoke "make")))
(invoke "make"))))
;; (replace 'check
;; (lambda _
;; (invoke "make" "localunittest")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(lambda* (#:key import-path outputs #:allow-other-keys)
(with-directory-excursion (string-append "src/" import-path)
(let ((out (assoc-ref outputs "out")))
(invoke "make" "install" "install-bash"
(string-append "PREFIX=" out))))))))
(string-append "PREFIX=" out)))))))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
@ -1573,14 +1574,15 @@ Open Container Initiative specification.")
"-xvf" source))))
(replace 'build
(lambda* (#:key import-path #:allow-other-keys)
(chdir (string-append "src/" import-path))
(with-directory-excursion (string-append "src/" import-path)
;; TODO: build manpages with 'go-md2man'.
(invoke "make" "SHELL=bash")))
(invoke "make" "SHELL=bash"))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(lambda* (#:key import-path outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bindir (string-append out "/bin")))
(install-file "umoci" bindir)
(install-file (string-append "src/" import-path "/umoci")
bindir)
#t))))))
(home-page "https://umo.ci/")
(synopsis "Tool for modifying Open Container images")
@ -1622,14 +1624,15 @@ Open Container Initiative (OCI) image layout and its tagged images.")
(modify-phases %standard-phases
(replace 'build
(lambda* (#:key import-path #:allow-other-keys)
(chdir (string-append "src/" import-path))
(with-directory-excursion (string-append "src/" import-path)
;; TODO: build manpages with 'go-md2man'.
(invoke "make" "bin/skopeo")))
(invoke "make" "bin/skopeo"))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(lambda* (#:key import-path outputs #:allow-other-keys)
(with-directory-excursion (string-append "src/" import-path)
(let ((out (assoc-ref outputs "out")))
(invoke "make" "install-binary" "install-completions"
(string-append "PREFIX=" out))))))))
(string-append "PREFIX=" out)))))))))
(home-page "https://github.com/containers/skopeo")
(synopsis "Interact with container images and container image registries")
(description
@ -1997,14 +2000,14 @@ administrators and developers in managing the database.")
(define-public osinfo-db
(package
(name "osinfo-db")
(version "20200813")
(version "20201011")
(source (origin
(method url-fetch)
(uri (string-append "https://releases.pagure.org/libosinfo/osinfo-db-"
version ".tar.xz"))
(sha256
(base32
"127lr4kvdy2b2lil7i0gbbxcf8vap0r6hxhnbmms4p7h2h0sdgri"))))
"1zzx5gsqgzg2zki6h8vl0h7kpcrk5i2s1qhz7gcb18s7g99px8aj"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))

View File

@ -280,7 +280,7 @@ and the GTK+ toolkit.")
(define-public lynx
(package
(name "lynx")
(version "2.8.9rel.1")
(version "2.9.0dev.6")
(source (origin
(method url-fetch)
(uri (string-append
@ -288,7 +288,7 @@ and the GTK+ toolkit.")
"/lynx" version ".tar.bz2"))
(sha256
(base32
"15cmyyma2kz1hfaa6mwjgli8zwdzq3jv0q2cl6nwzycjfwyijzrq"))))
"1cjkpwxc1r8x8q73bgh9a4skaph1bwa0anml6f6lvf7lh5zvxw3q"))))
(build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config)
("perl" ,perl)))
@ -344,7 +344,7 @@ access.")
(define-public qutebrowser
(package
(name "qutebrowser")
(version "1.13.1")
(version "1.14.0")
(source
(origin
(method url-fetch)
@ -352,7 +352,7 @@ access.")
"qutebrowser/releases/download/v" version "/"
"qutebrowser-" version ".tar.gz"))
(sha256
(base32 "1n72dvrv4dch4i07lsis76p7g16a039fwx8rk7w8q9f60wgqb5i8"))))
(base32 "0jip413yvyhdaywz0iadc32aaanjnhbx1d1vwzx3z1xbgc4i9svn"))))
(build-system python-build-system)
(native-inputs
`(("python-attrs" ,python-attrs))) ; for tests

View File

@ -551,6 +551,78 @@ This is modified version, specifically intended for use with the NGinx
documentation.")
(license license:bsd-2))))
(define nginx-socket-cloexec
(package
(inherit nginx)
(name "nginx-socket-cloexec") ;required for lua-resty-shell
(source
(origin
(inherit (package-source nginx))
(patches (append (search-patches "nginx-socket-cloexec.patch")
(origin-patches (package-source nginx))))))))
(define-public nginx-lua-module
(package
(inherit nginx)
(name "nginx-lua-module")
(version "0.10.15")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/openresty/lua-nginx-module")
(commit (string-append "v" version))))
(file-name (git-file-name "lua-nginx-module" version))
(sha256
(base32
"1j216isp0546hycklbr5wi8mlga5hq170hk7f2sm16sfavlkh5gz"))))
(build-system gnu-build-system)
(inputs
`(("nginx-sources" ,(package-source nginx-socket-cloexec))
("luajit" ,luajit)
,@(package-inputs nginx)))
(arguments
(substitute-keyword-arguments
`(#:configure-flags '("--add-dynamic-module=.")
#:make-flags '("modules")
#:modules ((guix build utils)
(guix build gnu-build-system)
(ice-9 popen)
(ice-9 regex)
(ice-9 textual-ports))
,@(package-arguments nginx))
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'unpack-nginx-sources
(lambda* (#:key inputs native-inputs #:allow-other-keys)
(begin
;; The nginx source code is part of the modules source.
(format #t "decompressing nginx source code~%")
(let ((tar (assoc-ref inputs "tar"))
(nginx-srcs (assoc-ref inputs "nginx-sources")))
(invoke (string-append tar "/bin/tar")
"xvf" nginx-srcs "--strip-components=1"))
#t)))
(add-before 'configure 'set-luajit-env
(lambda* (#:key inputs #:allow-other-keys)
(let ((luajit (assoc-ref inputs "luajit")))
(setenv "LUAJIT_LIB"
(string-append luajit "/lib"))
(setenv "LUAJIT_INC"
(string-append luajit "/include/luajit-2.1"))
#t)))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((modules-dir (string-append (assoc-ref outputs "out")
"/etc/nginx/modules")))
(install-file "objs/ngx_http_lua_module.so" modules-dir)
#t)))
(delete 'fix-root-dirs)
(delete 'install-man-page)))))
(synopsis "NGINX module for Lua programming language support")
(description "This NGINX module provides a scripting support with Lua
programming language.")))
(define-public lighttpd
(package
(name "lighttpd")

View File

@ -987,7 +987,8 @@ compact configuration syntax.")
;; This sets the destination when installing the necessary terminal
;; capability data, which are not provided by 'ncurses'. See
;; https://lists.gnu.org/archive/html/bug-ncurses/2009-10/msg00031.html
`(#:make-flags (list (string-append "TERMINFO="
`(#:configure-flags (list "--enable-256-color")
#:make-flags (list (string-append "TERMINFO="
(assoc-ref %outputs "out")
"/share/terminfo"))
#:phases

View File

@ -1396,7 +1396,7 @@ precedence rules, and the following functions and common constants.")
(define-public xfce4-cpufreq-plugin
(package
(name "xfce4-cpufreq-plugin")
(version "1.2.1")
(version "1.2.2")
(source (origin
(method url-fetch)
(uri (string-append "https://archive.xfce.org/src/panel-plugins/"
@ -1405,7 +1405,7 @@ precedence rules, and the following functions and common constants.")
"/xfce4-cpufreq-plugin-" version ".tar.bz2"))
(sha256
(base32
"1dgmx3ygil51s1az298ly0gybcw8ln1dz8q8y9k207a0vk049q65"))))
"16748wxy8aa5cxga0dbfrq7kv40alg5yx967r2l6vjapv2w083sh"))))
(build-system gnu-build-system)
(native-inputs
`(("intltool" ,intltool)

View File

@ -24,6 +24,7 @@
;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2020 Paul Garlick <pgarlick@tourbillion-technology.com>
;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1432,7 +1433,7 @@ SAX2 APIs.")
(define-public xlsxio
(package
(name "xlsxio")
(version "0.2.26")
(version "0.2.29")
(source
(origin
(method git-fetch)
@ -1441,7 +1442,7 @@ SAX2 APIs.")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "0j8jral3yc2aib2ykp527lyb62a1d9p7qmfbszy7iy3s65pkma9b"))))
(base32 "0jr6ggzhd8aakdvppcl8scy9j9jafg82zbzr4ih996sz8lrj90fn"))))
(native-inputs
`(("expat" ,expat)
("make" ,gnu-make)

View File

@ -6076,7 +6076,7 @@ to answer a question. Xmessage can also exit after a specified time.")
(define-public xterm
(package
(name "xterm")
(version "359")
(version "361")
(source (origin
(method url-fetch)
(uri (list
@ -6086,7 +6086,7 @@ to answer a question. Xmessage can also exit after a specified time.")
"xterm-" version ".tgz")))
(sha256
(base32
"0lcjifz027j99zf2dnms0h43xp5zznxr39safrpyarv59jlmdjii"))))
"0gv27akkfb796aww1snq3c2sxmi8vajgfxk83g60awp4slh0yqc5"))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts"
@ -6278,7 +6278,8 @@ basic eye-candy effects.")
version ".tar.xz"))
(sha256
(base32 "10alqdfmgml9ixdi1nyd9xlw8a5q0j8m2sv4g9p83pd6z1a0rpv2"))
(patches (search-patches "xpra-4.0.1-systemd-run.patch"))))
(patches (search-patches "xpra-4.0.1-systemd-run.patch"
"xpra-4.0.4-norequests.patch"))))
(build-system python-build-system)
;; see also http://xpra.org/trac/wiki/Dependencies
(inputs `(

View File

@ -461,7 +461,12 @@ channels in use and CONFIG-FILE, if it is true."
(mbegin %store-monad
(let ((config-file (cond ((string? config-file)
(local-file config-file "configuration.scm"))
;; CONFIG-FILE has been passed typically via
;; 'guix system reconfigure CONFIG-FILE' so we
;; can assume it's valid: tell 'local-file' to
;; not emit a warning.
(local-file (assume-valid-file-name config-file)
"configuration.scm"))
((not config-file)
#f)
(else

View File

@ -84,7 +84,8 @@ loop-back communications.")
(define (containerd-shepherd-service config)
(let* ((package (docker-configuration-containerd config))
(debug? (docker-configuration-debug? config)))
(debug? (docker-configuration-debug? config))
(containerd (docker-configuration-containerd config)))
(shepherd-service
(documentation "containerd daemon.")
(provision '(containerd))
@ -93,6 +94,9 @@ loop-back communications.")
#$@(if debug?
'("--log-level=debug")
'()))
;; For finding containerd-shim binary.
#:environment-variables
(list (string-append "PATH=" #$containerd "/bin"))
#:log-file "/var/log/containerd.log"))
(stop #~(make-kill-destructor)))))

View File

@ -13,6 +13,7 @@
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -90,7 +91,7 @@
nginx-configuration
nginx-configuration?
nginx-configuartion-nginx
nginx-configuration-nginx
nginx-configuration-log-directory
nginx-configuration-run-directory
nginx-configuration-server-blocks
@ -525,6 +526,10 @@
(modules nginx-configuration-modules (default '()))
(global-directives nginx-configuration-global-directives
(default '((events . ()))))
(lua-package-path nginx-lua-package-path ;list of <package>
(default #f))
(lua-package-cpath nginx-lua-package-cpath ;list of <package>
(default #f))
(extra-content nginx-configuration-extra-content
(default ""))
(file nginx-configuration-file ;#f | string | file-like
@ -630,6 +635,8 @@ of index files."
server-names-hash-bucket-max-size
modules
global-directives
lua-package-path
lua-package-cpath
extra-content)
(apply mixed-text-file "nginx.conf"
(flatten
@ -646,11 +653,19 @@ of index files."
" scgi_temp_path " run-directory "/scgi_temp;\n"
" access_log " log-directory "/access.log;\n"
" include " nginx "/share/nginx/conf/mime.types;\n"
(if server-names-hash-bucket-size
(string-append
" server_names_hash_bucket_size "
(number->string server-names-hash-bucket-size)
";\n")
(if lua-package-path
#~(format #f " lua_package_path ~s;~%"
(string-join (map (lambda (path)
(string-append path "/lib/?.lua"))
'#$lua-package-path)
";"))
"")
(if lua-package-cpath
#~(format #f " lua_package_cpath ~s;~%"
(string-join (map (lambda (cpath)
(string-append cpath "/lib/lua/?.lua"))
'#$lua-package-cpath)
";"))
"")
(if server-names-hash-bucket-max-size
(string-append

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