From 09e2f258428281e20955b85fc859f7a48d948a34 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 5 Sep 2019 14:57:16 +0200 Subject: [PATCH 001/227] gnu: texlive-latex-base: Ensure that extra sources are installed. * gnu/packages/tex.scm (texlive-latex-base): Use simple-texlive-package to install additional files. --- gnu/packages/tex.scm | 403 +++++++++++++++++++++---------------------- 1 file changed, 201 insertions(+), 202 deletions(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 43e1c44c72..01567ca153 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -2508,214 +2508,213 @@ formats.") (license license:lppl))) (define-public texlive-latex-base - (package - (name "texlive-latex-base") - (version (number->string %texlive-revision)) - (source (texlive-origin - name version - (list "/doc/latex/base/" - "/source/latex/base/" - ;; Almost all files in /tex/latex/base are generated, but - ;; these are not: - "/tex/latex/base/idx.tex" - "/tex/latex/base/lablst.tex" - "/tex/latex/base/lppl.tex" - "/tex/latex/base/ltnews.cls" - "/tex/latex/base/ltxcheck.tex" - "/tex/latex/base/ltxguide.cls" - "/tex/latex/base/minimal.cls" - "/tex/latex/base/sample2e.tex" - "/tex/latex/base/small2e.tex" - "/tex/latex/base/source2e.tex" - "/tex/latex/base/testpage.tex" - "/tex/latex/base/texsys.cfg") - (base32 - "0f8d41wk1gb7i6xq1a10drwhhayc50pg9nwzjkrqnxrv0pcc08w5"))) - (build-system gnu-build-system) - (arguments - `(#:modules ((guix build gnu-build-system) - (guix build utils) - (ice-9 match) - (srfi srfi-26)) - #:tests? #f ; no tests - #:phases - (modify-phases %standard-phases - (delete 'configure) - (replace 'build - (lambda* (#:key inputs #:allow-other-keys) - ;; Find required fonts - (setenv "TFMFONTS" - (string-join - (map (match-lambda - ((pkg-name . dir) - (string-append - (assoc-ref inputs pkg-name) - "/share/texmf-dist/fonts/tfm/public" - dir))) - '(("texlive-etex" . "/etex") - ("texlive-cm" . "/cm") - ("texlive-fonts-latex" . "/latex-fonts") - ("texlive-fonts-knuth-lib" . "/knuth-lib"))) - ":")) - (let ((cwd (getcwd))) - (setenv "TEXINPUTS" - (string-append - cwd "//:" - cwd "/source/latex/base//:" - cwd "/build:" - (string-join - (map (match-lambda ((_ . dir) dir)) inputs) - "//:")))) + (let ((template (simple-texlive-package + "texlive-latex-base" + (list "/doc/latex/base/" + "/source/latex/base/" + ;; Almost all files in /tex/latex/base are generated, but + ;; these are not: + "/tex/latex/base/idx.tex" + "/tex/latex/base/lablst.tex" + "/tex/latex/base/lppl.tex" + "/tex/latex/base/ltnews.cls" + "/tex/latex/base/ltxcheck.tex" + "/tex/latex/base/ltxguide.cls" + "/tex/latex/base/minimal.cls" + "/tex/latex/base/sample2e.tex" + "/tex/latex/base/small2e.tex" + "/tex/latex/base/source2e.tex" + "/tex/latex/base/testpage.tex" + "/tex/latex/base/texsys.cfg") + (base32 + "0f8d41wk1gb7i6xq1a10drwhhayc50pg9nwzjkrqnxrv0pcc08w5") + #:trivial? #t))) + (package + (inherit template) + (arguments + (substitute-keyword-arguments (package-arguments template) + ((#:modules modules '()) + '((guix build gnu-build-system) + (guix build utils) + (ice-9 match) + (srfi srfi-26))) + ((#:phases phases) + `(modify-phases ,phases + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + ;; Find required fonts + (setenv "TFMFONTS" + (string-join + (map (match-lambda + ((pkg-name . dir) + (string-append + (assoc-ref inputs pkg-name) + "/share/texmf-dist/fonts/tfm/public" + dir))) + '(("texlive-etex" . "/etex") + ("texlive-cm" . "/cm") + ("texlive-fonts-latex" . "/latex-fonts") + ("texlive-fonts-knuth-lib" . "/knuth-lib"))) + ":")) + (let ((cwd (getcwd))) + (setenv "TEXINPUTS" + (string-append + cwd "//:" + cwd "/source/latex/base//:" + cwd "/build:" + (string-join + (map (match-lambda ((_ . dir) dir)) inputs) + "//:")))) - ;; This is the actual build step. - (mkdir "build") - (invoke "tex" "-ini" "-interaction=scrollmode" - "-output-directory=build" "unpack.ins") + ;; This is the actual build step. + (mkdir "build") + (invoke "tex" "-ini" "-interaction=scrollmode" + "-output-directory=build" "unpack.ins") - ;; XXX: We can't build all formats at this point, nor are they - ;; part of the LaTeX base, so we disable them. Actually, we - ;; should be running this all in a profile hook, so that only - ;; selected formats and hyphenation patterns are included, but it - ;; takes long and TeX Live isn't designed to be modular like - ;; that. Everything operates on a shared directory, which we - ;; would only have at profile generation time. - (let ((disabled-formats - '("aleph aleph" "lamed aleph" "uptex uptex" "euptex euptex" - "eptex eptex" "ptex ptex" "pdfxmltex pdftex" "platex eptex" - "csplain pdftex" "mf mf-nowin" "mex pdftex" "pdfmex pdftex" - "cont-en xetex" "cont-en pdftex" "pdfcsplain xetex" - "pdfcsplain pdftex" "pdfcsplain luatex" "cslatex pdftex" - "mptopdf pdftex" "uplatex euptex" "jadetex pdftex" - "amstex pdftex" "pdfcslatex pdftex" "lollipop tex" - "xmltex pdftex" "pdfjadetex pdftex" "eplain pdftex" - "texsis pdftex" "mltex pdftex" "utf8mex pdftex"))) - (mkdir "web2c") - (install-file (string-append - (assoc-ref inputs "texlive-kpathsea") - "/share/texmf-dist/web2c/fmtutil.cnf") - "web2c") - (make-file-writable "web2c/fmtutil.cnf") - (substitute* "web2c/fmtutil.cnf" - (((string-append "^(" (string-join disabled-formats "|") ")") m) - (string-append "#! " m)))) - (invoke "fmtutil-sys" "--all" - "--fmtdir=web2c" - (string-append "--cnffile=web2c/fmtutil.cnf")) - ;; We don't actually want to install it. - (delete-file "web2c/fmtutil.cnf") - #t)) - (replace 'install - (lambda* (#:key inputs outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (root (string-append out "/share/texmf-dist")) - (target (string-append root "/tex/latex/base")) - (web2c (string-append root "/web2c")) - (makeindex (string-append root "/makeindex/latex"))) - (for-each delete-file (find-files "." "\\.(log|aux)$")) + ;; XXX: We can't build all formats at this point, nor are they + ;; part of the LaTeX base, so we disable them. Actually, we + ;; should be running this all in a profile hook, so that only + ;; selected formats and hyphenation patterns are included, but it + ;; takes long and TeX Live isn't designed to be modular like + ;; that. Everything operates on a shared directory, which we + ;; would only have at profile generation time. + (let ((disabled-formats + '("aleph aleph" "lamed aleph" "uptex uptex" "euptex euptex" + "eptex eptex" "ptex ptex" "pdfxmltex pdftex" "platex eptex" + "csplain pdftex" "mf mf-nowin" "mex pdftex" "pdfmex pdftex" + "cont-en xetex" "cont-en pdftex" "pdfcsplain xetex" + "pdfcsplain pdftex" "pdfcsplain luatex" "cslatex pdftex" + "mptopdf pdftex" "uplatex euptex" "jadetex pdftex" + "amstex pdftex" "pdfcslatex pdftex" "lollipop tex" + "xmltex pdftex" "pdfjadetex pdftex" "eplain pdftex" + "texsis pdftex" "mltex pdftex" "utf8mex pdftex"))) + (mkdir "web2c") + (install-file (string-append + (assoc-ref inputs "texlive-kpathsea") + "/share/texmf-dist/web2c/fmtutil.cnf") + "web2c") + (make-file-writable "web2c/fmtutil.cnf") + (substitute* "web2c/fmtutil.cnf" + (((string-append "^(" (string-join disabled-formats "|") ")") m) + (string-append "#! " m)))) + (invoke "fmtutil-sys" "--all" + "--fmtdir=web2c" + (string-append "--cnffile=web2c/fmtutil.cnf")) + ;; We don't actually want to install it. + (delete-file "web2c/fmtutil.cnf") + #t)) + (add-after 'install 'install-more + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (root (string-append out "/share/texmf-dist")) + (target (string-append root "/tex/latex/base")) + (web2c (string-append root "/web2c")) + (makeindex (string-append root "/makeindex/latex"))) + (for-each delete-file (find-files "." "\\.(log|aux)$")) - ;; The usedir directive in docstrip.ins is ignored, so these - ;; two files end up in the wrong place. Move them. - (mkdir-p makeindex) - (for-each (lambda (file) - (install-file file makeindex) - (delete-file file)) - '("build/gglo.ist" - "build/gind.ist")) - (for-each (cut install-file <> target) - (find-files "build" ".*")) - (for-each (cut install-file <> web2c) - (find-files "web2c" ".*")) - #t)))))) - (native-inputs - `(("texlive-bin" ,texlive-bin) - ("texlive-tex-ini-files" ,texlive-tex-ini-files) - ("texlive-tex-plain" ,texlive-tex-plain) - ("texlive-kpathsea" ,texlive-kpathsea) - ("texlive-cm" ,texlive-cm) - ("texlive-fonts-latex" ,texlive-fonts-latex) - ("texlive-fonts-knuth-lib" ,texlive-fonts-knuth-lib) - ("texlive-luatexconfig" - ,(texlive-origin - "texlive-luatexconfig" (number->string %texlive-revision) - (list "/tex/generic/config/luatex-unicode-letters.tex" - "/tex/generic/config/luatexiniconfig.tex" - "/web2c/texmfcnf.lua") - (base32 - "0cs67a8wwh4s5p5gn8l49jyccgy7glw8mfq5klgn3dfsl2fdlhk7"))))) - (propagated-inputs - `(("texlive-dehyph-exptl" ,texlive-dehyph-exptl) - ("texlive-etex" ,texlive-etex) - ("texlive-hyph-utf8" ,texlive-hyph-utf8) - ("texlive-hyphen-base" ,texlive-hyphen-base) - ("texlive-hyphen-afrikaans" ,texlive-hyphen-afrikaans) - ("texlive-hyphen-ancientgreek" ,texlive-hyphen-ancientgreek) - ("texlive-hyphen-armenian" ,texlive-hyphen-armenian) - ("texlive-hyphen-basque" ,texlive-hyphen-basque) - ("texlive-hyphen-belarusian" ,texlive-hyphen-belarusian) - ("texlive-hyphen-bulgarian" ,texlive-hyphen-bulgarian) - ("texlive-hyphen-catalan" ,texlive-hyphen-catalan) - ("texlive-hyphen-chinese" ,texlive-hyphen-chinese) - ("texlive-hyphen-churchslavonic" ,texlive-hyphen-churchslavonic) - ("texlive-hyphen-coptic" ,texlive-hyphen-coptic) - ("texlive-hyphen-croatian" ,texlive-hyphen-croatian) - ("texlive-hyphen-czech" ,texlive-hyphen-czech) - ("texlive-hyphen-danish" ,texlive-hyphen-danish) - ("texlive-hyphen-dutch" ,texlive-hyphen-dutch) - ("texlive-hyphen-english" ,texlive-hyphen-english) - ("texlive-hyphen-esperanto" ,texlive-hyphen-esperanto) - ("texlive-hyphen-estonian" ,texlive-hyphen-estonian) - ("texlive-hyphen-ethiopic" ,texlive-hyphen-ethiopic) - ("texlive-hyphen-finnish" ,texlive-hyphen-finnish) - ("texlive-hyphen-french" ,texlive-hyphen-french) - ("texlive-hyphen-friulan" ,texlive-hyphen-friulan) - ("texlive-hyphen-galician" ,texlive-hyphen-galician) - ("texlive-hyphen-georgian" ,texlive-hyphen-georgian) - ("texlive-hyphen-german" ,texlive-hyphen-german) - ("texlive-hyphen-greek" ,texlive-hyphen-greek) - ("texlive-hyphen-hungarian" ,texlive-hyphen-hungarian) - ("texlive-hyphen-icelandic" ,texlive-hyphen-icelandic) - ("texlive-hyphen-indic" ,texlive-hyphen-indic) - ("texlive-hyphen-indonesian" ,texlive-hyphen-indonesian) - ("texlive-hyphen-interlingua" ,texlive-hyphen-interlingua) - ("texlive-hyphen-irish" ,texlive-hyphen-irish) - ("texlive-hyphen-italian" ,texlive-hyphen-italian) - ("texlive-hyphen-kurmanji" ,texlive-hyphen-kurmanji) - ("texlive-hyphen-latin" ,texlive-hyphen-latin) - ("texlive-hyphen-latvian" ,texlive-hyphen-latvian) - ("texlive-hyphen-lithuanian" ,texlive-hyphen-lithuanian) - ("texlive-hyphen-mongolian" ,texlive-hyphen-mongolian) - ("texlive-hyphen-norwegian" ,texlive-hyphen-norwegian) - ("texlive-hyphen-occitan" ,texlive-hyphen-occitan) - ("texlive-hyphen-piedmontese" ,texlive-hyphen-piedmontese) - ("texlive-hyphen-polish" ,texlive-hyphen-polish) - ("texlive-hyphen-portuguese" ,texlive-hyphen-portuguese) - ("texlive-hyphen-romanian" ,texlive-hyphen-romanian) - ("texlive-hyphen-romansh" ,texlive-hyphen-romansh) - ("texlive-hyphen-russian" ,texlive-hyphen-russian) - ("texlive-hyphen-sanskrit" ,texlive-hyphen-sanskrit) - ("texlive-hyphen-serbian" ,texlive-hyphen-serbian) - ("texlive-hyphen-slovak" ,texlive-hyphen-slovak) - ("texlive-hyphen-slovenian" ,texlive-hyphen-slovenian) - ("texlive-hyphen-spanish" ,texlive-hyphen-spanish) - ("texlive-hyphen-swedish" ,texlive-hyphen-swedish) - ("texlive-hyphen-thai" ,texlive-hyphen-thai) - ("texlive-hyphen-turkish" ,texlive-hyphen-turkish) - ("texlive-hyphen-turkmen" ,texlive-hyphen-turkmen) - ("texlive-hyphen-ukrainian" ,texlive-hyphen-ukrainian) - ("texlive-hyphen-uppersorbian" ,texlive-hyphen-uppersorbian) - ("texlive-hyphen-welsh" ,texlive-hyphen-welsh) - ("texlive-unicode-data" ,texlive-unicode-data) - ("texlive-ukrhyph" ,texlive-ukrhyph) - ("texlive-ruhyphen" ,texlive-ruhyphen) - ("texlive-latexconfig" ,texlive-latexconfig))) - (home-page "https://www.ctan.org/pkg/latex-base") - (synopsis "Base sources of LaTeX") - (description - "This bundle comprises the source of LaTeX itself, together with several + ;; The usedir directive in docstrip.ins is ignored, so these + ;; two files end up in the wrong place. Move them. + (mkdir-p makeindex) + (for-each (lambda (file) + (install-file file makeindex) + (delete-file file)) + '("build/gglo.ist" + "build/gind.ist")) + (for-each (cut install-file <> target) + (find-files "build" ".*")) + (for-each (cut install-file <> web2c) + (find-files "web2c" ".*")) + #t))))))) + (native-inputs + `(("texlive-bin" ,texlive-bin) + ("texlive-tex-ini-files" ,texlive-tex-ini-files) + ("texlive-tex-plain" ,texlive-tex-plain) + ("texlive-kpathsea" ,texlive-kpathsea) + ("texlive-cm" ,texlive-cm) + ("texlive-fonts-latex" ,texlive-fonts-latex) + ("texlive-fonts-knuth-lib" ,texlive-fonts-knuth-lib) + ("texlive-luatexconfig" + ,(texlive-origin + "texlive-luatexconfig" (number->string %texlive-revision) + (list "/tex/generic/config/luatex-unicode-letters.tex" + "/tex/generic/config/luatexiniconfig.tex" + "/web2c/texmfcnf.lua") + (base32 + "0cs67a8wwh4s5p5gn8l49jyccgy7glw8mfq5klgn3dfsl2fdlhk7"))))) + (propagated-inputs + `(("texlive-dehyph-exptl" ,texlive-dehyph-exptl) + ("texlive-etex" ,texlive-etex) + ("texlive-hyph-utf8" ,texlive-hyph-utf8) + ("texlive-hyphen-base" ,texlive-hyphen-base) + ("texlive-hyphen-afrikaans" ,texlive-hyphen-afrikaans) + ("texlive-hyphen-ancientgreek" ,texlive-hyphen-ancientgreek) + ("texlive-hyphen-armenian" ,texlive-hyphen-armenian) + ("texlive-hyphen-basque" ,texlive-hyphen-basque) + ("texlive-hyphen-belarusian" ,texlive-hyphen-belarusian) + ("texlive-hyphen-bulgarian" ,texlive-hyphen-bulgarian) + ("texlive-hyphen-catalan" ,texlive-hyphen-catalan) + ("texlive-hyphen-chinese" ,texlive-hyphen-chinese) + ("texlive-hyphen-churchslavonic" ,texlive-hyphen-churchslavonic) + ("texlive-hyphen-coptic" ,texlive-hyphen-coptic) + ("texlive-hyphen-croatian" ,texlive-hyphen-croatian) + ("texlive-hyphen-czech" ,texlive-hyphen-czech) + ("texlive-hyphen-danish" ,texlive-hyphen-danish) + ("texlive-hyphen-dutch" ,texlive-hyphen-dutch) + ("texlive-hyphen-english" ,texlive-hyphen-english) + ("texlive-hyphen-esperanto" ,texlive-hyphen-esperanto) + ("texlive-hyphen-estonian" ,texlive-hyphen-estonian) + ("texlive-hyphen-ethiopic" ,texlive-hyphen-ethiopic) + ("texlive-hyphen-finnish" ,texlive-hyphen-finnish) + ("texlive-hyphen-french" ,texlive-hyphen-french) + ("texlive-hyphen-friulan" ,texlive-hyphen-friulan) + ("texlive-hyphen-galician" ,texlive-hyphen-galician) + ("texlive-hyphen-georgian" ,texlive-hyphen-georgian) + ("texlive-hyphen-german" ,texlive-hyphen-german) + ("texlive-hyphen-greek" ,texlive-hyphen-greek) + ("texlive-hyphen-hungarian" ,texlive-hyphen-hungarian) + ("texlive-hyphen-icelandic" ,texlive-hyphen-icelandic) + ("texlive-hyphen-indic" ,texlive-hyphen-indic) + ("texlive-hyphen-indonesian" ,texlive-hyphen-indonesian) + ("texlive-hyphen-interlingua" ,texlive-hyphen-interlingua) + ("texlive-hyphen-irish" ,texlive-hyphen-irish) + ("texlive-hyphen-italian" ,texlive-hyphen-italian) + ("texlive-hyphen-kurmanji" ,texlive-hyphen-kurmanji) + ("texlive-hyphen-latin" ,texlive-hyphen-latin) + ("texlive-hyphen-latvian" ,texlive-hyphen-latvian) + ("texlive-hyphen-lithuanian" ,texlive-hyphen-lithuanian) + ("texlive-hyphen-mongolian" ,texlive-hyphen-mongolian) + ("texlive-hyphen-norwegian" ,texlive-hyphen-norwegian) + ("texlive-hyphen-occitan" ,texlive-hyphen-occitan) + ("texlive-hyphen-piedmontese" ,texlive-hyphen-piedmontese) + ("texlive-hyphen-polish" ,texlive-hyphen-polish) + ("texlive-hyphen-portuguese" ,texlive-hyphen-portuguese) + ("texlive-hyphen-romanian" ,texlive-hyphen-romanian) + ("texlive-hyphen-romansh" ,texlive-hyphen-romansh) + ("texlive-hyphen-russian" ,texlive-hyphen-russian) + ("texlive-hyphen-sanskrit" ,texlive-hyphen-sanskrit) + ("texlive-hyphen-serbian" ,texlive-hyphen-serbian) + ("texlive-hyphen-slovak" ,texlive-hyphen-slovak) + ("texlive-hyphen-slovenian" ,texlive-hyphen-slovenian) + ("texlive-hyphen-spanish" ,texlive-hyphen-spanish) + ("texlive-hyphen-swedish" ,texlive-hyphen-swedish) + ("texlive-hyphen-thai" ,texlive-hyphen-thai) + ("texlive-hyphen-turkish" ,texlive-hyphen-turkish) + ("texlive-hyphen-turkmen" ,texlive-hyphen-turkmen) + ("texlive-hyphen-ukrainian" ,texlive-hyphen-ukrainian) + ("texlive-hyphen-uppersorbian" ,texlive-hyphen-uppersorbian) + ("texlive-hyphen-welsh" ,texlive-hyphen-welsh) + ("texlive-unicode-data" ,texlive-unicode-data) + ("texlive-ukrhyph" ,texlive-ukrhyph) + ("texlive-ruhyphen" ,texlive-ruhyphen) + ("texlive-latexconfig" ,texlive-latexconfig))) + (home-page "https://www.ctan.org/pkg/latex-base") + (synopsis "Base sources of LaTeX") + (description + "This bundle comprises the source of LaTeX itself, together with several packages which are considered \"part of the kernel\". This bundle, together with the required packages, constitutes what every LaTeX distribution should contain.") - (license license:lppl1.3c+))) + (license license:lppl1.3c+)))) (define-public texlive-latex-filecontents (package From 813ed0bd3d55796d32a705d953a89453de54c8e8 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 5 Sep 2019 21:14:09 +0200 Subject: [PATCH 002/227] gnu: texlive-union: Fix font map generation. * gnu/packages/tex.scm (texlive-union)[arguments]: Exclude sed and coreutils from union; add sed to the PATH; run updmap-sys twice; delete ls-R to avoid lookup failures. --- gnu/packages/tex.scm | 42 +++++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 01567ca153..e6b2fd0b6a 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -3567,7 +3567,10 @@ standard LaTeX packages." ;; the updmap.cfg file) (match (filter (match-lambda ((name . _) - (not (member name '("bash" "updmap.cfg"))))) + (not (member name '("bash" + "coreutils" + "sed" + "updmap.cfg"))))) %build-inputs) (((names . directories) ...) (union-build (assoc-ref %outputs "out") @@ -3587,6 +3590,7 @@ standard LaTeX packages." (setenv "PATH" (string-append (assoc-ref %build-inputs "bash") "/bin:" (assoc-ref %build-inputs "coreutils") "/bin:" + (assoc-ref %build-inputs "sed") "/bin:" (string-append out "/bin"))) (for-each (cut wrap-program <> @@ -3595,16 +3599,32 @@ standard LaTeX packages." (find-files (string-append out "/bin") ".*")) ;; Remove invalid maps from config file. - (let ((port (open-pipe* OPEN_WRITE "updmap-sys" - "--syncwithtrees" - "--nohash" - (assoc-ref %build-inputs "updmap.cfg")))) - (display "Y\n" port) - (when (not (zero? (status:exit-val (close-pipe port)))) - (error "failed to filter updmap.cfg"))) - ;; Generate maps. - (invoke "updmap-sys" "--force" - (string-append out "/share/texmf-config/web2c/updmap.cfg")) + (let ((web2c (string-append out "/share/texmf-config/web2c/")) + (maproot (string-append out "/share/texmf-dist/fonts/map/"))) + (mkdir-p web2c) + (copy-file + (assoc-ref %build-inputs "updmap.cfg") + (string-append web2c "updmap.cfg")) + (make-file-writable (string-append web2c "updmap.cfg")) + + (let* ((port (open-pipe* OPEN_WRITE "updmap-sys" + "--syncwithtrees" + "--nohash" + (string-append "--cnffile=" web2c "updmap.cfg")))) + (display "Y\n" port) + (when (not (zero? (status:exit-val (close-pipe port)))) + (error "failed to filter updmap.cfg"))) + ;; Generate maps. + (invoke "updmap-sys" + (string-append "--cnffile=" web2c "updmap.cfg") + (string-append "--dvipdfmxoutputdir=" + maproot "dvipdfmx/updmap/") + (string-append "--dvipsoutputdir=" + maproot "dvips/updmap/") + (string-append "--pdftexoutputdir=" + maproot "pdftex/updmap/")) + ;; Having this file breaks all file lookups later. + (delete-file (string-append out "/share/texmf-dist/ls-R"))) #t)))) (inputs `(("bash" ,bash) From 248965c91caf7d10433f090b4712a9b201968416 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Thu, 5 Sep 2019 22:25:13 +0200 Subject: [PATCH 003/227] gnu: Add guile-cv. * gnu/packages/guile-xyz.scm (guile-cv): New variable. --- gnu/packages/guile-xyz.scm | 64 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index b765ef36e1..29e83288f1 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -2564,3 +2564,67 @@ Emacsy. It has a small C layer and most browser features are fully programmable in Guile. It has hooks, keymaps, and self documentation features.") (license license:gpl3+))) + +(define-public guile-cv + (package + (name "guile-cv") + (version "0.2.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/guile-cv/guile-cv-" + version ".tar.gz")) + (sha256 + (base32 + "0qdf0s2h1xj5lbhnc1pfw69i3zg08pqy2y6869b92ydfis8r82j9")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'prepare-build + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "configure" + (("SITEDIR=\"\\$datadir/guile-cv\"") + "SITEDIR=\"$datadir/guile/site/$GUILE_EFFECTIVE_VERSION\"") + (("SITECCACHEDIR=\"\\$libdir/guile-cv/") + "SITECCACHEDIR=\"$libdir/")) + (substitute* "cv/init.scm" + (("\\(dynamic-link \"libvigra_c\"\\)") + (string-append "(dynamic-link \"" + (assoc-ref inputs "vigra-c") + "/lib/libvigra_c\")")) + (("\\(dynamic-link \"libguile-cv\"\\)") + (format #f "~s" + `(dynamic-link + (format #f "~alibguile-cv" + (if (getenv "GUILE_CV_UNINSTALLED") + "" + ,(format #f "~a/lib/" + (assoc-ref outputs "out")))))))) + (setenv "GUILE_CV_UNINSTALLED" "1") + ;; Only needed to satisfy the configure script. + (setenv "LD_LIBRARY_PATH" + (string-append (assoc-ref inputs "vigra-c") "/lib")) + #t))))) + (inputs + `(("vigra" ,vigra) + ("vigra-c" ,vigra-c) + ("guile" ,guile-2.2))) + (native-inputs + `(("texlive" ,(texlive-union (list texlive-booktabs + texlive-lm + texlive-siunitx + texlive-standalone + texlive-xcolor + texlive-fonts-iwona))) + ("pkg-config" ,pkg-config))) + (propagated-inputs + `(("guile-lib" ,guile-lib))) + (home-page "https://www.gnu.org/software/guile-cv/") + (synopsis "Computer vision library for Guile") + (description "Guile-CV is a Computer Vision functional programming library +for the Guile Scheme language. It is based on Vigra (Vision with Generic +Algorithms), a C++ image processing and analysis library. Guile-CV contains +bindings to Vigra C (a C wrapper to most of the Vigra functionality) and is +enriched with pure Guile Scheme algorithms, all accessible through a nice, +clean and easy to use high level API.") + (license license:gpl3+))) From ff1d80f3041bb64c8237435b81e90bd9b60079dd Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 14:00:40 +0300 Subject: [PATCH 004/227] gnu: youtube-dl: Update source uri. * gnu/packages/video.scm (youtube-dl)[source]: Update to new upstream uri. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 8e0362752e..422dbab57e 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1495,8 +1495,8 @@ access to mpv's powerful playback capabilities.") (version "2019.09.12") (source (origin (method url-fetch) - (uri (string-append "https://github.com/rg3/youtube-dl/releases/" - "download/" version "/youtube-dl-" + (uri (string-append "https://github.com/ytdl-org/youtube-dl/" + "releases/download/" version "/youtube-dl-" version ".tar.gz")) (sha256 (base32 From e905c8d6548f499bb958811d0520ce1846e9cc92 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 17 Sep 2019 16:04:15 +0200 Subject: [PATCH 005/227] gnu: fuse: Update to 2.9.9. * gnu/packages/linux.scm (fuse): Update to 2.9.9. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index c9baecfa28..8bdc6bdaf6 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -2119,7 +2119,7 @@ processes currently causing I/O.") (define-public fuse (package (name "fuse") - (version "2.9.8") + (version "2.9.9") (source (origin (method url-fetch) (uri (string-append "https://github.com/libfuse/libfuse/releases/" @@ -2127,7 +2127,7 @@ processes currently causing I/O.") "/fuse-" version ".tar.gz")) (sha256 (base32 - "1qxg1r1mgysfq6qakmvid2njph3lr00w0swvydsfl9ymilfzi12y")) + "1ddlq6kzxilccgbvxjfx80jx6kamgw4sv49phks2zhlcc1frvrnh")) (patches (search-patches "fuse-overlapping-headers.patch")))) (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux))) From 9e8b549fe6601d31ada0771a32d0b21928acb94c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 17 Sep 2019 13:13:01 +0200 Subject: [PATCH 006/227] gnu: perl-clone: Update to 0.43. * gnu/packages/perl.scm (perl-clone): Update to 0.43. --- gnu/packages/perl.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 56a857c0f8..d104c2434c 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -1266,14 +1266,14 @@ arrays for their internal representation.") (define-public perl-clone (package (name "perl-clone") - (version "0.42") + (version "0.43") (source (origin (method url-fetch) - (uri (string-append "mirror://cpan/authors/id/G/GA/GARU/" + (uri (string-append "mirror://cpan/authors/id/A/AT/ATOOMIC/" "Clone-" version ".tar.gz")) (sha256 (base32 - "1r87rdm0nilfayxwlzvylwc8r3hr5m24180x437j30qpizdk1aal")))) + "1npf5s4b90ds6lv8gn76b2w4bdh0z5ni5zk4skgc2db5d12560lr")))) (build-system perl-build-system) (synopsis "Recursively copy Perl datatypes") (description From cadf846bea46a8e3acd26c0bfceb4f3e39c1655b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 17 Sep 2019 15:04:40 +0200 Subject: [PATCH 007/227] gnu: elixir: Don't use unstable tarball. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/elixir.scm (elixir)[source]: Use GIT-FETCH & GIT-FILE-NAME. [arguments]: Add ‘make-git-checkout-writable’ phase. --- gnu/packages/elixir.scm | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm index 2a1d99452f..88ada71aea 100644 --- a/gnu/packages/elixir.scm +++ b/gnu/packages/elixir.scm @@ -24,7 +24,7 @@ (define-module (gnu packages elixir) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) - #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix packages) #:use-module (gnu packages) #:use-module (gnu packages erlang) @@ -34,15 +34,16 @@ (package (name "elixir") (version "1.8.2") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/elixir-lang/elixir" - "/archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0ddqxw24zdqlg7glzk22m7qjal8f18divzp364a6gi1bv6rg16yg")) - (patches (search-patches "elixir-path-length.patch")))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/elixir-lang/elixir.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1n77cpcl2b773gmj3m9s24akvj9gph9byqbmj2pvlsmby4aqwckq")) + (patches (search-patches "elixir-path-length.patch")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -51,7 +52,11 @@ (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases - (add-after 'unpack 'replace-paths + (add-after 'unpack 'make-git-checkout-writable + (lambda _ + (for-each make-file-writable (find-files ".")) + #t)) + (add-after 'make-git-checkout-writable 'replace-paths (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (substitute* '("lib/elixir/lib/system.ex" From 530680dfaf3b735465c2d176f231ab95616f42a9 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 17 Sep 2019 16:01:38 +0200 Subject: [PATCH 008/227] gnu: ncmpc: Update to 0.35. * gnu/packages/mpd.scm (ncmpc): Update to 0.35. --- gnu/packages/mpd.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index e8b1e6e0b1..fafb61c681 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -195,7 +195,7 @@ player daemon.") (define-public ncmpc (package (name "ncmpc") - (version "0.34") + (version "0.35") (source (origin (method url-fetch) (uri @@ -204,7 +204,7 @@ player daemon.") "/ncmpc-" version ".tar.xz")) (sha256 (base32 - "0mz8r6vc4zn5sa3hlq4ii74qcrkh01nbg784zcwahgz8g3fb3i8l")))) + "0hfjvm1p0z7x6gfn5xhl5c0jsmidvz0qfl04pq45x4chh9iiwkxx")))) (build-system meson-build-system) (arguments `(#:configure-flags From 777db6b845e3bf7d5be07c9414f09cef78168fc8 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 17 Sep 2019 16:01:49 +0200 Subject: [PATCH 009/227] gnu: unbound: Update to 1.9.3. * gnu/packages/dns.scm (unbound): Update to 1.9.3. --- gnu/packages/dns.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index ae2e5cf8fa..8b8622813b 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -373,14 +373,14 @@ to result in system-wide compromise.") (define-public unbound (package (name "unbound") - (version "1.9.2") + (version "1.9.3") (source (origin (method url-fetch) (uri (string-append "https://www.unbound.net/downloads/unbound-" version ".tar.gz")) (sha256 - (base32 "15bbrczibap30db8a1pmqhvjbmkxms39hwiivby7f4j5rz2wwykg")))) + (base32 "1ykdy62sgzv33ggkmzwx2h0ifm7hyyxyfkb4zckv7gz4f28xsm8v")))) (build-system gnu-build-system) (outputs '("out" "python")) (native-inputs From 34583ec6e3995f5dd1ebf549265f0d64bbf23ab7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 17 Sep 2019 17:00:02 +0200 Subject: [PATCH 010/227] gnu: Add festival. * gnu/packages/speech.scm (festival): New variable. --- gnu/packages/speech.scm | 218 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 218 insertions(+) diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm index dbdbe7ea49..10637e6b89 100644 --- a/gnu/packages/speech.scm +++ b/gnu/packages/speech.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2017 Leo Famulari ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2016 Kei Kebreau +;;; Copyright © 2019 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,12 +31,15 @@ #:use-module (gnu packages audio) #:use-module (gnu packages autotools) #:use-module (gnu packages compression) + #:use-module (gnu packages emacs) #:use-module (gnu packages gcc) #:use-module (gnu packages glib) #:use-module (gnu packages linux) + #:use-module (gnu packages ncurses) #:use-module (gnu packages pkg-config) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) + #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils)) (define-public espeak @@ -220,3 +224,217 @@ to improve their productivity with speech engines, like eSpeak. Sonic can also be used by the sighted.") (home-page "https://github.com/waywardgeek/sonic") (license license:asl2.0))) + +(define-public festival + (package + (name "festival") + (version "2.5.0") + (source (origin + (method url-fetch) + (uri (string-append "http://festvox.org/packed/festival/" + (version-major+minor version) + "/festival-" version "-release.tar.gz")) + (sha256 + (base32 + "1d5415nckiv19adxisxfm1l1xxfyw88g87ckkmcr0lhjdd10g42c")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; there is no test target + #:make-flags + (list (string-append "RM=" + (assoc-ref %build-inputs "coreutils") + "/bin/rm") + (string-append "ECHO_N=" + (assoc-ref %build-inputs "coreutils") + "/bin/printf \"%s\"")) + #:parallel-build? #f ; not supported + #:modules ((guix build gnu-build-system) + (guix build utils) + (guix build emacs-utils)) + #:imported-modules (,@%gnu-build-system-modules + (guix build emacs-utils)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-and-patch-speech-tools + (lambda* (#:key inputs #:allow-other-keys) + (invoke "tar" "-C" ".." + "-xf" (assoc-ref inputs "speech-tools")) + (with-directory-excursion "../speech_tools" + (substitute* '("config/rules/modules.mak" + "config/rules/test_make_rules.mak" + "config/make_system.mak") + (("/bin/sh") (which "sh")))) + #t)) + (add-after 'unpack 'patch-/bin/sh + (lambda _ + (substitute* '("config/test_make_rules" + "config/make_system.mak") + (("/bin/sh") (which "sh"))) + #t)) + (add-before 'build 'build-speech-tools + (lambda* (#:key configure-flags make-flags #:allow-other-keys) + (with-directory-excursion "../speech_tools" + (apply invoke "sh" "configure" + (string-append "CONFIG_SHELL=" (which "sh")) + (string-append "SHELL=" (which "sh")) + configure-flags) + (apply invoke "make" make-flags)))) + (add-after 'build 'build-documentation + (lambda _ + (with-directory-excursion "doc" + (invoke "make" "festival.info")))) + (add-after 'unpack 'set-installation-directories + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "config/project.mak" + (("^FTLIBDIR.*") + (string-append "FTLIBDIR=" out "/share/festival/lib"))) + (substitute* "config/systems/default.mak" + (("^INSTALL_PREFIX.*") + (string-append "INSTALL_PREFIX=" out))) + #t))) + (add-after 'install 'actually-install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + ;; Install Speech Tools first + (with-directory-excursion "../speech_tools" + ;; Target directories + (for-each (lambda (dir) + (mkdir-p (string-append out dir))) + '("/bin" + "/lib" + "/include/speech_tools/" + "/include/speech_tools/instantiate" + "/include/speech_tools/ling_class" + "/include/speech_tools/rxp" + "/include/speech_tools/sigpr" + "/include/speech_tools/unix")) + ;; Install binaries + (for-each (lambda (file) + (install-file file (string-append out "/bin"))) + (find-files "bin" ".*")) + (for-each (lambda (file) + (delete-file (string-append out "/bin/" file))) + '("est_gdb" "est_examples" "est_program")) + ;; Install libraries + (for-each (lambda (file) + (install-file file (string-append out "/lib"))) + (find-files "lib" "lib.*\\.so.*")) + + ;; Install headers + (for-each + (lambda (dir) + (for-each + (lambda (header) + (install-file header + (string-append out "/include/speech_tools/" dir))) + (find-files (string-append "include/" dir) + "\\.h$"))) + '("." "instantiate" "ling_class" "rxp" "sigpr" "unix"))) + + ;; Unpack files that will be installed together with the + ;; Festival libraries. + (invoke "tar" "--strip-components=1" + "-xvf" (assoc-ref inputs "festvox-cmu")) + (invoke "tar" "--strip-components=1" + "-xf" (assoc-ref inputs "festvox-poslex")) + + ;; Install Festival + (let ((bin (string-append out "/bin")) + (incdir (string-append out "/include/festival")) + (share (string-append out "/share/festival")) + (info (string-append out "/share/info"))) + (for-each (lambda (executable) + (install-file executable bin)) + '("src/main/festival" + "src/main/festival_client" + "examples/benchmark" + "examples/dumpfeats" + "examples/durmeanstd" + "examples/latest" + "examples/make_utts" + "examples/powmeanstd" + "examples/run-festival-script" + "examples/saytime" + "examples/scfg_parse_text" + "examples/text2pos" + "examples/text2wave")) + + ;; Documentation + (install-file "doc/info/festival.info" info) + + ;; Headers + (mkdir-p incdir) + (for-each (lambda (header) + (install-file header + (string-append incdir "/" + (dirname header)))) + (find-files "src/include" "\\.h$")) + + ;; Data + (mkdir-p share) + (for-each (lambda (file) + (install-file file + (string-append share "/" + (dirname file)))) + (find-files "lib" ".*")) + (for-each delete-file + (append (find-files share "Makefile") + (find-files bin "Makefile"))))) + #t)) + (add-after 'actually-install 'install-emacs-mode + (lambda* (#:key outputs #:allow-other-keys) + (let ((emacs-dir (string-append (assoc-ref outputs "out") + "/share/emacs/site-lisp"))) + (install-file "lib/festival.el" emacs-dir) + (emacs-generate-autoloads ,name emacs-dir) + #t))) + ;; Rebuild the very old configure script that is confused by extra + ;; arguments. + (add-before 'configure 'bootstrap + (lambda _ (invoke "autoreconf" "-vif")))))) + (inputs + `(("ncurses" ,ncurses))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("texinfo" ,texinfo) + ("emacs" ,emacs-minimal) + ("festvox-cmu" + ,(origin + (method url-fetch) + (uri (string-append "http://festvox.org/packed/festival/" + (version-major+minor version) + "/festlex_CMU.tar.gz")) + (sha256 + (base32 + "01vwidqhhg2zifvk1gby91mckg1z2pv2mj6lihvdaifakf8k1561")))) + ("festvox-poslex" + ,(origin + (method url-fetch) + (uri (string-append "http://festvox.org/packed/festival/" + (version-major+minor version) + "/festlex_POSLEX.tar.gz")) + (sha256 + (base32 + "18wywilxaqwy63lc47p5g5529mpxhslibh1bjij0snxx5mjf7ip7")))) + ("speech-tools" + ,(origin + (method url-fetch) + (uri (string-append "http://festvox.org/packed/festival/" + (version-major+minor version) + "/speech_tools-" version "-release.tar.gz")) + (sha256 + (base32 + "1k2xh13miyv48gh06rgsq2vj25xwj7z6vwq9ilsn8i7ig3nrgzg4")))))) + (home-page "http://www.cstr.ed.ac.uk/projects/festival/") + (synopsis "Speech synthesis system") + (description "Festival offers a general framework for building speech +synthesis systems as well as including examples of various modules. As a +whole it offers full text to speech through a number APIs: from shell level, +though a Scheme command interpreter, as a C++ library, from Java, and an Emacs +interface. Festival is multi-lingual though English is the most advanced. +The system is written in C++ and uses the Edinburgh Speech Tools Library for +low level architecture and has a Scheme (SIOD) based command interpreter for +control.") + (license (license:non-copyleft "file://COPYING")))) From 80e4e9dda6e87c7498dd9cc739978fa7f6311820 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 15:39:43 +0300 Subject: [PATCH 011/227] gnu: Add rust-percent-encoding-1. * gnu/packages/crates-io.scm (rust-percent-encoding-1): New variable. --- gnu/packages/crates-io.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 906a8e66bf..e74457dd38 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -2035,6 +2035,20 @@ the @code{take_while} predicate returned false after dropping the @code{by_ref}. (license (list license:asl2.0 license:expat)))) +(define-public rust-percent-encoding-1 + (package + (inherit rust-percent-encoding) + (name "rust-percent-encoding") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "percent-encoding" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0cgq08v1fvr6bs5fvy390cz830lq4fak8havdasdacxcw790s09i")))))) + (define-public rust-permutohedron (package (name "rust-permutohedron") From de13223a11b98e75ab54d8cc39ac52e2c9d22be7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 15:43:35 +0300 Subject: [PATCH 012/227] gnu: Add rust-rustc-hash. * gnu/packages/crates-io.scm (rust-rustc-hash): New variable. --- gnu/packages/crates-io.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index e74457dd38..b78642a3cf 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -2482,6 +2482,26 @@ system calls.") (license (list license:asl2.0 license:expat)))) +(define-public rust-rustc-hash + (package + (name "rust-rustc-hash") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "rustc-hash" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "114bf72466bl63i5hh8fgqfnhihs0w1m9c9jz505095agfixnvg0")))) + (build-system cargo-build-system) + (home-page "https://github.com/rust-lang-nursery/rustc-hash") + (synopsis "Speedy, non-cryptographic hash used in rustc") + (description + "This package provides a speedy, non-cryptographic hash used in rustc.") + (license (list license:asl2.0 + license:expat)))) + (define-public rust-rustc-serialize (package (name "rust-rustc-serialize") From 86d452f946b2e05866293bcbdb2a9b7d6533962a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 15:47:59 +0300 Subject: [PATCH 013/227] gnu: Add rust-static-assertions. * gnu/packages/crates-io.scm (rust-static-assertions): New variable. --- gnu/packages/crates-io.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index b78642a3cf..840ca6b718 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -2938,6 +2938,26 @@ deeply recursive algorithms that may accidentally blow the stack.") (license (list license:asl2.0 license:expat)))) +(define-public rust-static-assertions + (package + (name "rust-static-assertions") + (version "0.3.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "static-assertions" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1lw33i89888yb3x29c6dv4mrkg3534n0rlg3r7qzh4p58xmv6gkz")))) + (build-system cargo-build-system) + (home-page "https://github.com/nvzqz/static-assertions-rs") + (synopsis "Compile-time assertions for rust") + (description + "This package provides compile-time assertions to ensure that invariants +are met.") + (license (list license:expat license:asl2.0)))) + (define-public rust-stdweb-internal-runtime (package (name "rust-stdweb-internal-runtime") From c800a30744bee99086fc98d94be572818f2869f2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 15:49:07 +0300 Subject: [PATCH 014/227] gnu: Add rust-strsim-0.8. * gnu/packages/crates-io.scm (rust-strsim-0.8): New variable. --- gnu/packages/crates-io.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 840ca6b718..b9acda91f1 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -3045,6 +3045,20 @@ metrics. It includes Hamming, Levenshtein, OSA, Damerau-Levenshtein, Jaro, and Jaro-Winkler.") (license license:expat))) +(define-public rust-strsim-0.8 + (package + (inherit rust-strsim) + (name "rust-strsim") + (version "0.8.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "strsim" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0sjsm7hrvjdifz661pjxq5w4hf190hx53fra8dfvamacvff139cf")))))) + (define-public rust-synstructure-test-traits (package (name "rust-synstructure-test-traits") From 56b695196feb17407b48dcb2562f89484ff69793 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 15:54:17 +0300 Subject: [PATCH 015/227] gnu: Add rust-term. * gnu/packages/crates-io.scm (rust-term): New variable. --- gnu/packages/crates-io.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index b9acda91f1..79eee6ed32 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -3164,6 +3164,30 @@ directories.") (license (list license:asl2.0 license:expat)))) +(define-public rust-term + (package + (name "rust-term") + (version "0.4.6") + (source + (origin + (method url-fetch) + (uri (crate-uri "term" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1wbh8ngqkqr3f6wz902yplf60bd5yapnckvrkgmzp5nffi7n8qzs")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-kernel32-sys" ,rust-kernel32-sys) + ("rust-winapi" ,rust-winapi)))) + (home-page "https://github.com/Stebalien/term") + (synopsis "Terminal formatting library") + (description + "This package provides a terminal formatting library in rust.") + (license (list license:asl2.0 + license:expat)))) + (define-public rust-termcolor (package (name "rust-termcolor") From 14f3a7e37314451b9b93d7b7536f3ae3dec1ed68 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 16:10:46 +0300 Subject: [PATCH 016/227] gnu: Add rust-clang-sys-0.26. * gnu/packages/crates-io.scm (rust-clang-sys-0.26): New variable. --- gnu/packages/crates-io.scm | 54 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 79eee6ed32..8c68f036b5 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -386,6 +386,35 @@ depending on a large number of #[cfg] parameters. Structured like an "This package provides Rust bindings for @code{libclang}.") (license license:asl2.0))) +(define-public rust-clang-sys-0.26 + (package + (inherit rust-clang-sys) + (name "rust-clang-sys") + (version "0.26.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "clang-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1r50dwy5hj5gq07dn0qf8222d07qv0970ymx0j8n9779yayc3w3f")))) + (arguments + `(#:cargo-inputs + (("rust-glob" ,rust-glob-0.2) + ("rust-libc" ,rust-libc) + ("rust-libloading" ,rust-libloading)) + #:cargo-development-inputs + (("rust-glob" ,rust-glob-0.2)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'set-environmental-variable + (lambda* (#:key inputs #:allow-other-keys) + (let ((clang (assoc-ref inputs "libclang"))) + (setenv "LIBCLANG_PATH" + (string-append clang "/lib"))) + #t))))))) + (define-public rust-clicolors-control (package (name "rust-clicolors-control") @@ -412,6 +441,31 @@ depending on a large number of #[cfg] parameters. Structured like an colorization.") (license license:expat))) +(define-public rust-clippy + (package + (name "rust-clippy") + (version "0.0.302") + (source + (origin + (method url-fetch) + (uri (crate-uri "clippy" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1562x3sq9mgmc8j39gd34wqm7ybrdvpmj7cc1n450gwsawayw4fr")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-term" ,rust-term)))) + (home-page "https://github.com/rust-lang/rust-clippy") + (synopsis + "A bunch of helpful lints to avoid common pitfalls in Rust.") + (description + "This package provides a bunch of helpful lints to avoid common pitfalls in Rust.") + (license (list license:asl2.0 + license:expat)))) + (define-public rust-cloudabi (package (name "rust-cloudabi") From 7617f231c0ddb66f9cb7e59af88f83f13957464d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 16:13:52 +0300 Subject: [PATCH 017/227] gnu: Add rust-num-traits-0.1. * gnu/packages/crates-io.scm (rust-num-traits-0.1): New variable. --- gnu/packages/crates-io.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 8c68f036b5..e1b7db2a98 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -1977,6 +1977,24 @@ implementation (which is unstable / requires nightly).") (license (list license:asl2.0 license:expat)))) +(define-public rust-num-traits-0.1 + (package + (inherit rust-num-traits) + (name "rust-num-traits") + (version "0.1.43") + (source + (origin + (method url-fetch) + (uri (crate-uri "num-traits" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0c9whknf2dm74a3cqirafy6gj83a76gl56g4v3g19k6lkwz13rcj")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-num-traits" ,rust-num-traits)))))) + (define-public rust-openssl-probe (package (name "rust-openssl-probe") From 17b977ab54e28fb2da9eac4aa65fbe531fd7a84b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 16:15:50 +0300 Subject: [PATCH 018/227] gnu: Add rust-dtoa-0.2. * gnu/packages/crates-io.scm (rust-dtoa-0.2): New variable. --- gnu/packages/crates-io.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index e1b7db2a98..33357ab0d1 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -695,6 +695,20 @@ floating-point primitives to an @code{io::Write}.") (license (list license:asl2.0 license:expat)))) +(define-public rust-dtoa-0.2 + (package + (inherit rust-dtoa) + (name "rust-dtoa") + (version "0.2.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "dtoa" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0g96cap6si1g6wi62hsdk2fnj3sf5vd4i97zj6163j8hhnsl3n0d")))))) + (define-public rust-fallible-iterator (package (name "rust-fallible-iterator") From c5d250d5dcc9889b1b0405a03f35292b61c5bc74 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 16:17:16 +0300 Subject: [PATCH 019/227] gnu: Add rust-itoa-0.1. * gnu/packages/crates-io.scm (rust-itoa-0.1): New variable. --- gnu/packages/crates-io.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 33357ab0d1..56b3f88e12 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -1276,6 +1276,20 @@ primitives to an @code{io::Write}.") (license (list license:asl2.0 license:expat)))) +(define-public rust-itoa-0.1 + (package + (inherit rust-itoa) + (name "rust-itoa") + (version "0.1.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "itoa" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "18g7p2hrb3dk84z3frfgmszfc9hjb4ps9vp99qlb1kmf9gm8hc5f")))))) + (define-public rust-jemalloc-sys (package (name "rust-jemalloc-sys") From d7bec7535f67ac7432cb3f10d4b92fc21da2c8f9 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 16:21:31 +0300 Subject: [PATCH 020/227] gnu: Add rust-lock-api. * gnu/packages/crates-io.scm (rust-lock-api): New variable. --- gnu/packages/crates-io.scm | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 56b3f88e12..3cbdc66d3b 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -1488,6 +1488,31 @@ allows loading dynamic libraries (also known as shared libraries) as well as use functions and static variables these libraries contain.") (license license:isc))) +(define-public rust-lock-api + (package + (name "rust-lock-api") + (version "0.1.5") + (source + (origin + (method url-fetch) + (uri (crate-uri "lock_api" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0b24q9mh258xa52ap636q1sxz0j5vrnp0hwbbh7ddjka3wwz3sv2")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-owning-ref" ,rust-owning-ref) + ("rust-scopeguard" ,rust-scopeguard-0.3)))) + (home-page "https://github.com/Amanieu/parking_lot") + (synopsis "Wrappers to create fully-featured Mutex and RwLock types") + (description + "This package provides wrappers to create fully-featured @code{Mutex} and +@code{RwLock} types. It is compatible with @code{no_std}.") + (license (list license:asl2.0 + license:expat)))) + (define-public rust-log (package (name "rust-log") From 61b10dd1bfca019c9f83e09d233852f58206f8b0 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 16:29:04 +0300 Subject: [PATCH 021/227] gnu: Add rust-libnghttp2-sys. * gnu/packages/crates-io.scm (rust-libnghttp2-sys): New variable. --- gnu/packages/crates-io.scm | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 3cbdc66d3b..94a409a6f0 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -29,7 +29,8 @@ #:use-module (gnu packages jemalloc) #:use-module (gnu packages llvm) #:use-module (gnu packages maths) - #:use-module (gnu packages pkg-config)) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages web)) ;;; ;;; Please: Try to add new module packages in alphabetic order. @@ -1883,6 +1884,33 @@ types as proposed in RFC 1158.") (license (list license:asl2.0 license:expat)))) +(define-public rust-libnghttp2-sys + (package + (name "rust-libnghttp2-sys") + (version "0.1.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "libnghttp2-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0qr4lyh7righx9n22c7amlcpk906rn1jnb2zd6gdfpa3yi24s982")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc)) + #:cargo-development-inputs + (("rust-cc" ,rust-cc)))) + (inputs + `(("nghttp2" ,nghttp2))) + (home-page "https://github.com/alexcrichton/nghttp2-rs") + (synopsis "FFI bindings for libnghttp2 (nghttp2)") + (description + "This package provides FFI bindings for libnghttp2 (nghttp2).") + (license (list license:asl2.0 + license:expat)))) + (define-public rust-nodrop (package (name "rust-nodrop") From fc4d385aba691ea2ec811116b1c6a04d8c2c1090 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 16:31:43 +0300 Subject: [PATCH 022/227] gnu: Add rust-libz-sys. * gnu/packages/crates-io.scm (rust-libz-sys): New variable. --- gnu/packages/crates-io.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 94a409a6f0..61681b121e 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -1911,6 +1911,42 @@ types as proposed in RFC 1158.") (license (list license:asl2.0 license:expat)))) +(define-public rust-libz-sys + (package + (name "rust-libz-sys") + (version "1.0.25") + (source + (origin + (method url-fetch) + (uri (crate-uri "libz-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1gjycyl2283525abks98bhxa4r259m617xfm5z52p3p3c8ry9d9f")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc) + ("rust-cc" ,rust-cc) + ("rust-pkg-config" ,rust-pkg-config) + ("rust-vcpkg" ,rust-vcpkg)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'delete-vendored-zlib + (lambda _ + (delete-file-recursively "src/zlib") + #t))))) + (inputs + `(("pkg-config" ,pkg-config) + ("zlib" ,zlib))) + (home-page "https://github.com/rust-lang/libz-sys") + (synopsis "Bindings to the system libz library") + (description + "This package provides bindings to the system @code{libz} library (also +known as zlib).") + (license (list license:asl2.0 + license:expat)))) + (define-public rust-nodrop (package (name "rust-nodrop") From ef05c6df02becb2e5849f23fa0d456b07122fa5e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 16:35:48 +0300 Subject: [PATCH 023/227] gnu: Add rust-backtrace-sys. * gnu/packages/crates-io.scm (rust-backtrace-sys): New variable. --- gnu/packages/crates-io.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 61681b121e..e5ce4f1b43 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -159,6 +159,35 @@ support.") (license (list license:asl2.0 license:expat)))) +(define-public rust-backtrace-sys + (package + (name "rust-backtrace-sys") + (version "0.1.31") + (source + (origin + (method url-fetch) + (uri (crate-uri "backtrace-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0as2pk77br4br04daywhivpi1ixxb8y2c7f726kj849dxys31a42")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-compiler-builtins" + ,rust-compiler-builtins) + ("rust-libc" ,rust-libc) + ("rust-rustc-std-workspace-core" + ,rust-rustc-std-workspace-core)) + #:cargo-development-inputs + (("rust-cc" ,rust-cc)))) + (home-page "https://github.com/rust-lang/backtrace-rs") + (synopsis "Bindings to the libbacktrace gcc library") + (description + "This package provides bindings to the libbacktrace gcc library.") + (license (list license:asl2.0 + license:expat)))) + (define-public rust-base-x (package (name "rust-base-x") From a7debf9d7f655493e6c22936df6ade5d20a34ec6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 16:40:28 +0300 Subject: [PATCH 024/227] gnu: Add rust-dirs. * gnu/packages/crates-io.scm (rust-dirs): New variable. --- gnu/packages/crates-io.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index e5ce4f1b43..7aa5289a29 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -666,6 +666,33 @@ hexadecimal, bas32, and base64.") (base32 "17giv0n0n1r64z0dahfvkjy3ys517jxyhs8sd9lmgvcljpjyryxa")))))) +(define-public rust-dirs + (package + (name "rust-dirs") + (version "1.0.3") + (source + (origin + (method url-fetch) + (uri (crate-uri "dirs" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "02vigc566z5i6n9wr2x8sch39qp4arn89xhhrh18fhpm3jfc0ygn")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc) + ("rust-winapi" ,rust-winapi)))) + (home-page "https://github.com/soc/dirs-rs") + (synopsis "Abstractions for standard locations for various platforms") + (description + "This package provides a tiny low-level library that provides +platform-specific standard locations of directories for config, cache and other +data on Linux, Windows, macOS and Redox by leveraging the mechanisms defined by +the XDG base/user directory specifications on Linux, the Known Folder API on +Windows, and the Standard Directory guidelines on macOS.") + (license (list license:expat license:asl2.0)))) + (define-public rust-discard (package (name "rust-discard") From 5e9fdf91896ae03d86cb1c5c98768b8d598646db Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 16:51:08 +0300 Subject: [PATCH 025/227] gnu: Add rust-openssl-src. * gnu/packages/crates-io.scm (rust-openssl-src): New variable. --- gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 7aa5289a29..71c69a5d66 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -2189,6 +2189,28 @@ system for OpenSSL.") (license (list license:asl2.0 license:expat)))) +(define-public rust-openssl-src + (package + (name "rust-openssl-src") + (version "111.6.0+1.1.1d") + (source + (origin + (method url-fetch) + (uri (crate-uri "openssl-src" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "172xh95hp7aygahah1940kg1dnx60c5m80cwj5hgi8x7x0fxmhmr")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs (("rust-cc" ,rust-cc)))) + (home-page "https://github.com/alexcrichton/openssl-src-rs") + (synopsis "Source of OpenSSL for rust crates") + (description + "This package contains the source of OpenSSL and logic to build it.") + (license (list license:asl2.0 + license:expat)))) + (define-public rust-owning-ref (package (name "rust-owning-ref") From 956e4aedeabc705411e37a5922f965fec2474c0a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 16:54:31 +0300 Subject: [PATCH 026/227] gnu: Add rust-openssl-sys. * gnu/packages/crates-io.scm (rust-openssl-sys): New variable. --- gnu/packages/crates-io.scm | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 71c69a5d66..27fdaa96a7 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -30,6 +30,7 @@ #:use-module (gnu packages llvm) #:use-module (gnu packages maths) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages tls) #:use-module (gnu packages web)) ;;; @@ -2211,6 +2212,45 @@ system for OpenSSL.") (license (list license:asl2.0 license:expat)))) +(define-public rust-openssl-sys + (package + (name "rust-openssl-sys") + (version "0.9.49") + (source + (origin + (method url-fetch) + (uri (crate-uri "openssl-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1168vivyqbzaxl48bvv9r1x714c03f5c1za8pv5x8fyj9gjxkypl")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-autocfg" ,rust-autocfg) + ("rust-libc" ,rust-libc)) + #:cargo-development-inputs + (("rust-autocfg" ,rust-autocfg) + ("rust-cc" ,rust-cc) + ("rust-openssl-src" ,rust-openssl-src) + ("rust-pkg-config" ,rust-pkg-config) + ("rust-vcpkg" ,rust-vcpkg)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'find-openssl + (lambda* (#:key inputs #:allow-other-keys) + (let ((openssl (assoc-ref inputs "openssl"))) + (setenv "OPENSSL_DIR" openssl)) + #t))))) + (inputs + `(("openssl" ,openssl) + ("pkg-config" ,pkg-config))) + (home-page "https://github.com/sfackler/rust-openssl") + (synopsis "FFI bindings to OpenSSL") + (description + "This package provides FFI bindings to OpenSSL for use in rust crates.") + (license license:expat))) + (define-public rust-owning-ref (package (name "rust-owning-ref") From e416c930084fbbed02f46f0197ce2fe2669b29b7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 17:26:27 +0300 Subject: [PATCH 027/227] gnu: Add rust-curl-sys. * gnu/packages/crates-io.scm (rust-curl-sys): New variable. --- gnu/packages/crates-io.scm | 46 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 27fdaa96a7..4194e4c134 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -25,6 +25,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (gnu packages compression) + #:use-module (gnu packages curl) #:use-module (gnu packages gcc) #:use-module (gnu packages jemalloc) #:use-module (gnu packages llvm) @@ -614,6 +615,51 @@ It is inspired by the Linux kernel's @code{crypto_memneq}.") (license (list license:asl2.0 license:expat)))) +(define-public rust-curl-sys + (package + (name "rust-curl-sys") + (version "0.4.20") + (source + (origin + (method url-fetch) + (uri (crate-uri "curl-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "02542zmvl3fpdqf7ai4cqnamm4albx9j645dkjx5qr1myq8ax42y")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc) + ("rust-libnghttp2-sys" ,rust-libnghttp2-sys) + ("rust-libz-sys" ,rust-libz-sys) + ("rust-openssl-sys" ,rust-openssl-sys) + ("rust-winapi" ,rust-winapi)) + #:cargo-development-inputs + (("rust-cc" ,rust-cc) + ("rust-pkg-config" ,rust-pkg-config) + ("rust-openssl-src" ,rust-openssl-src) + ("rust-vcpkg" ,rust-vcpkg)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'find-openssl + (lambda* (#:key inputs #:allow-other-keys) + (let ((openssl (assoc-ref inputs "openssl"))) + (setenv "OPENSSL_DIR" openssl)) + #t))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("curl" ,curl) + ("nghttp2" ,nghttp2) + ("openssl" ,openssl) + ("zlib" ,zlib))) + (home-page "https://github.com/alexcrichton/curl-rust") + (synopsis "Native bindings to the libcurl library") + (description + "This package provides native bindings to the @code{libcurl} library.") + (license license:expat))) + (define-public rust-data-encoding (package (name "rust-data-encoding") From b81e1ea589ccf807d56d03002c0b16f564dc2629 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 17:36:13 +0300 Subject: [PATCH 028/227] gnu: Add rust-libssh2-sys. * gnu/packages/crates-io.scm (rust-libssh2-sys): New variable. --- gnu/packages/crates-io.scm | 47 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 4194e4c134..1fd2094043 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -31,6 +31,7 @@ #:use-module (gnu packages llvm) #:use-module (gnu packages maths) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages ssh) #:use-module (gnu packages tls) #:use-module (gnu packages web)) @@ -1592,6 +1593,52 @@ allows loading dynamic libraries (also known as shared libraries) as well as use functions and static variables these libraries contain.") (license license:isc))) +(define-public rust-libssh2-sys + (package + (name "rust-libssh2-sys") + (version "0.2.12") + (source + (origin + (method url-fetch) + (uri (crate-uri "libssh2-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1zb6gsw795nq848nk5x2smzpfnn1s15wjlzjnvr8ihlz2l5x2549")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc) + ("rust-libz-sys" ,rust-libz-sys) + ("rust-openssl-sys" ,rust-openssl-sys)) + #:cargo-development-inputs + (("rust-cc" ,rust-cc) + ("rust-openssl-src" ,rust-openssl-src) + ("rust-pkg-config" ,rust-pkg-config) + ("rust-vcpkg" ,rust-vcpkg)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'find-openssl + (lambda* (#:key inputs #:allow-other-keys) + (let ((openssl (assoc-ref inputs "openssl"))) + (setenv "OPENSSL_DIR" openssl)) + (delete-file-recursively "libssh2") + (setenv "LIBSSH2_SYS_USE_PKG_CONFIG" "1") + #t))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libssh2" ,libssh2) + ("openssl" ,openssl) + ("zlib" ,zlib))) + (home-page "https://github.com/alexcrichton/ssh2-rs") + (synopsis "Native bindings to the libssh2 library") + (description + "This package provides native rust bindings to the @code{libssh2} library.") + (license (list license:asl2.0 + license:expat)))) + + (define-public rust-lock-api (package (name "rust-lock-api") From 4bf8cd217a2d6d70f9bb506bbc1491cbeec172c3 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 17:42:15 +0300 Subject: [PATCH 029/227] gnu: Add rust-libgit2-sys. * gnu/packages/crates-io.scm (rust-libgit2-sys): New variable. --- gnu/packages/crates-io.scm | 46 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 1fd2094043..e1a893a14d 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -33,6 +33,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages ssh) #:use-module (gnu packages tls) + #:use-module (gnu packages version-control) #:use-module (gnu packages web)) ;;; @@ -1566,6 +1567,51 @@ the platform that libc is compiled for.") (license (list license:expat license:asl2.0)))) +(define-public rust-libgit2-sys + (package + (name "rust-libgit2-sys") + (version "0.8.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "libgit2-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0y2mibmx7wy91s2kmb2gfb29mrqlqaxpy5wcwr8s1lwws7b9w5sc")) )) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-libc" ,rust-libc) + ("rust-libssh2-sys" ,rust-libssh2-sys) + ("rust-libz-sys" ,rust-libz-sys) + ("rust-openssl-sys" ,rust-openssl-sys)) + #:cargo-development-inputs + (("rust-cc" ,rust-cc) + ("rust-pkg-config" ,rust-pkg-config)) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'find-openssl + (lambda* (#:key inputs #:allow-other-keys) + (let ((openssl (assoc-ref inputs "openssl"))) + (setenv "OPENSSL_DIR" openssl)) + (delete-file-recursively "libgit2") + (setenv "LIBGIT2_SYS_USE_PKG_CONFIG" "1") + (setenv "LIBSSH2_SYS_USE_PKG_CONFIG" "1") + #t))))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("libgit2" ,libgit2) + ("openssl" ,openssl) + ("zlib" ,zlib))) + (home-page "https://github.com/rust-lang/git2-rs") + (synopsis "Native bindings to the libgit2 library") + (description + "This package provides native rust bindings to the @code{libgit2} library.") + (license (list license:asl2.0 + license:expat)))) + (define-public rust-libloading (package (name "rust-libloading") From 241bc53eaddf46a7ce58b5562893230605a3541b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 17:46:09 +0300 Subject: [PATCH 030/227] gnu: Add rust-libgit2-sys-0.7. * gnu/packages/crates-io.scm (rust-libgit2-sys-0.7): New variable. --- gnu/packages/crates-io.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index e1a893a14d..c0163b8e05 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -1612,6 +1612,34 @@ the platform that libc is compiled for.") (license (list license:asl2.0 license:expat)))) +(define-public rust-libgit2-sys-0.7 + (package + (inherit rust-libgit2-sys) + (name "rust-libgit2-sys") + (version "0.7.11") + (source + (origin + (method url-fetch) + (uri (crate-uri "libgit2-sys" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1wcvg2qqra2aviasvqcscl8gb2rnjnd6h998wy5dlmf2bnriqi28")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-curl-sys" ,rust-curl-sys) + ("rust-libc" ,rust-libc) + ("rust-libssh2-sys" ,rust-libssh2-sys) + ("rust-libz-sys" ,rust-libz-sys) + ("rust-openssl-sys" ,rust-openssl-sys)) + #:cargo-development-inputs + (("rust-cc" ,rust-cc) + ("rust-pkg-config" ,rust-pkg-config)))) + (inputs + `(("curl" ,curl) + ,@(package-inputs rust-libgit2-sys))))) + (define-public rust-libloading (package (name "rust-libloading") From 0cb01bb99dee40a4b6e038c886cf50ad9237e83c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 18:30:51 +0300 Subject: [PATCH 031/227] gnu: Add rust-unreachable. * gnu/packages/crates-io.scm (rust-unreachable): New variable. --- gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index c0163b8e05..948bb8748f 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -4118,6 +4118,28 @@ whitespace from a string.") (license (list license:asl2.0 license:expat)))) +(define-public rust-unreachable + (package + (name "rust-unreachable") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (crate-uri "unreachable" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0mps2il4xy2mjqc3appas27hhn2xmvixc3bzzhfrjj74gy3i0a1q")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs (("rust-void" ,rust-void)))) + (home-page "https://github.com/reem/rust-unreachable") + (synopsis "Unreachable code optimization hint in rust") + (description + "This package provides an unreachable code optimization hint in rust.") + (license (list license:asl2.0 + license:expat)))) + (define-public rust-unsafe-any (package (name "rust-unsafe-any") From 03e22b2eee16a5958a112db48b2e94584ed37bf2 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 18:57:16 +0300 Subject: [PATCH 032/227] gnu: Add rust-futures-core-preview. * gnu/packages/crates-io.scm (rust-futures-core-preview): New variable. --- gnu/packages/crates-io.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 948bb8748f..1b7989e072 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -1057,6 +1057,28 @@ featuring zero allocations, composability, and iterator-like interfaces.") (license (list license:asl2.0 license:expat)))) +(define-public rust-futures-core-preview + (package + (name "rust-futures-core-preview") + (version "0.3.0-alpha.17") + (source + (origin + (method url-fetch) + (uri (crate-uri "futures-core-preview" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1xaq8m609k6cz8xydwhwp8xxyxigabcw1w9ngycfy0bnkg7iq52b")))) + (build-system cargo-build-system) + (arguments + '(#:tests? #f)) ; The only tests are doc tests, which fail. + (home-page "https://rust-lang-nursery.github.io/futures-rs/") + (synopsis "Core traits and types in for the @code{futures} library.") + (description "This crate provides the core traits and types in for the +@code{futures} library.") + (license (list license:asl2.0 + license:expat)))) + (define-public rust-futures-cpupool (package (name "rust-futures-cpupool") From 7009d20ad3590dd163ffb075ae051ae1ac932cb6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 19:00:45 +0300 Subject: [PATCH 033/227] gnu: Add rust-futures-sink-preview. * gnu/packages/crates-io.scm (rust-futures-sink-preview): New variable. --- gnu/packages/crates-io.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index 1b7989e072..e2a404b54d 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -1124,6 +1124,30 @@ the computation on the threads themselves.") (license (list license:asl2.0 license:expat)))) +(define-public rust-futures-sink-preview + (package + (name "rust-futures-sink-preview") + (version "0.3.0-alpha.17") + (source + (origin + (method url-fetch) + (uri (crate-uri "futures-sink-preview" version)) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1r4d0gy73hdxkh5g1lrhl1kjnwp6mywjgcj70v0z78b921da42a3")))) + (build-system cargo-build-system) + (arguments + `(#:cargo-inputs + (("rust-futures-core-preview" ,rust-futures-core-preview)))) + (home-page "https://rust-lang-nursery.github.io/futures-rs/") + (synopsis "Asynchronous `Sink` trait for the futures-rs library") + (description + "This package provides the asynchronous @code{Sink} trait for the +futures-rs library.") + (license (list license:asl2.0 + license:expat)))) + (define-public rust-gcc (package (inherit rust-cc) From 17bbd30d877cb361e6236ccb0e6b3166452f9214 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 17 Sep 2019 19:02:58 +0200 Subject: [PATCH 034/227] gnu: festival: Install missing info files. Reported by reepca on the #guix IRC channel. This is a follow-up to commit 34583ec6e3995f5dd1ebf549265f0d64bbf23ab7. * gnu/packages/speech.scm (festival)[arguments]: Install missing info files. --- gnu/packages/speech.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm index 10637e6b89..6c62739ce8 100644 --- a/gnu/packages/speech.scm +++ b/gnu/packages/speech.scm @@ -361,7 +361,9 @@ be used by the sighted.") "examples/text2wave")) ;; Documentation - (install-file "doc/info/festival.info" info) + (for-each (lambda (file) + (install-file file info)) + (find-files "doc/info/" "festival.info.*")) ;; Headers (mkdir-p incdir) From 3a8d68badaca85122d91d8b7045daee87acb0aea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= Date: Tue, 17 Sep 2019 22:23:42 +0200 Subject: [PATCH 035/227] gnu: emacs-elixir-mode: Use git-fetch. Fixes a source instability reported by Josh Holland in * gnu/packages/emacs-xyz.scm (emacs-elixir-mode)[source]: Use GIT-FETCH & GIT-FILE-NAME. --- gnu/packages/emacs-xyz.scm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index b2f057a439..28443ae7fd 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -53,6 +53,7 @@ ;;; Copyright © 2019 Jens Mølgaard ;;; Copyright © 2019 Amin Bandali ;;; Copyright © 2019 Jelle Licht +;;; Copyright © 2019 Björn Höfling ;;; ;;; This file is part of GNU Guix. ;;; @@ -18241,14 +18242,13 @@ Emacs that integrate with major modes like Org-mode.") (version "2.3.1") (source (origin - (method url-fetch) - (uri (string-append - "https://stable.melpa.org/packages/elixir-mode-" - version - ".tar")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/elixir-editors/emacs-elixir.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 - "091cizxg1aw8bkj58y048mj020ssapjflav633z9bl6gmi10dy4v")))) + (base32 "06bi68x49v6f7flpz279mm4jpg31ll3s274givm3pvr8slcxs6xg")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-pkg-info" ,emacs-pkg-info))) From 7026ecc122c6470b9a2fbb88d4448a74b948647e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= Date: Tue, 17 Sep 2019 23:05:18 +0200 Subject: [PATCH 036/227] gnu: emacs-olivetti: Update to 1.8.0. * gnu/packages/emacs-xyz.scm (emacs-olivetti)[version]: Update to 1.8.0. [source]: Use github instead of melpa. --- gnu/packages/emacs-xyz.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 28443ae7fd..d684426091 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -2126,15 +2126,16 @@ a command.") (define-public emacs-olivetti (package (name "emacs-olivetti") - (version "1.5.7") + (version "1.8.0") (source (origin - (method url-fetch) - (uri (string-append - "https://stable.melpa.org/packages/olivetti-" - version ".el")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/rnkn/olivetti.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1yj2ylg46q0pw1xzlv2b0fv9x8p56x25284s9v2smwjr4vf0nwcj")))) + "0ba30swqxxbpa8866chymywnahby1hk670zzkz44q49328i2wksj")))) (build-system emacs-build-system) (home-page "https://github.com/rnkn/olivetti") (synopsis "Emacs minor mode for a nice writing environment") From f8ddfb505a51a2c794531e090dd7ee97022d1096 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20H=C3=B6fling?= Date: Tue, 17 Sep 2019 23:35:03 +0200 Subject: [PATCH 037/227] gnu: emacs-base16-theme: Update to 2.2. * gnu/packages/emacs-xyz.scm (emacs-base16-theme): Update to 2.2. [source]: Use github instead of melpa. --- gnu/packages/emacs-xyz.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index d684426091..87edd4619e 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -4592,15 +4592,16 @@ board and goal value can be customized.") (define-public emacs-base16-theme (package (name "emacs-base16-theme") - (version "2.1") + (version "2.2") (source (origin - (method url-fetch) - (uri (string-append "https://stable.melpa.org/packages/base16-theme-" - version ".tar")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/belak/base16-emacs.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 - "0z6hrwz2jlz6jbr381rcqcqvx6hss5cad352klx07rark7zccacj")))) + (base32 "01w89g413s1da6rf94y1xnhw79cjy2bqb01yfjs58cy492cm0vr6")))) (build-system emacs-build-system) (home-page "https://github.com/belak/base16-emacs") (synopsis "Base16 color themes for Emacs") From dfcf79ac5943c68dc8013aa333add3f881e894aa Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 18 Sep 2019 09:55:04 +0200 Subject: [PATCH 038/227] gnu: festival: Include default voice. * gnu/packages/speech.scm (festival)[arguments]: Install default voice. [native-inputs]: Add default voice. --- gnu/packages/speech.scm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm index 6c62739ce8..220d542eda 100644 --- a/gnu/packages/speech.scm +++ b/gnu/packages/speech.scm @@ -337,7 +337,9 @@ be used by the sighted.") (invoke "tar" "--strip-components=1" "-xvf" (assoc-ref inputs "festvox-cmu")) (invoke "tar" "--strip-components=1" - "-xf" (assoc-ref inputs "festvox-poslex")) + "-xvf" (assoc-ref inputs "festvox-poslex")) + (invoke "tar" "--strip-components=1" + "-xvf" (assoc-ref inputs "default-voice")) ;; Install Festival (let ((bin (string-append out "/bin")) @@ -420,6 +422,15 @@ be used by the sighted.") (sha256 (base32 "18wywilxaqwy63lc47p5g5529mpxhslibh1bjij0snxx5mjf7ip7")))) + ("default-voice" + ,(origin + (method url-fetch) + (uri (string-append "http://festvox.org/packed/festival/" + (version-major+minor version) + "/voices/festvox_kallpc16k.tar.gz")) + (sha256 + (base32 + "136hmsyiwnlg2qwa508dy0imf19mzrb5r3dmb2kg8kcyxnslm740")))) ("speech-tools" ,(origin (method url-fetch) From a870b80046d532329762095683d8f9c33538eaf1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 18 Sep 2019 10:57:12 +0200 Subject: [PATCH 039/227] gnu: festival: Fix scripts. * gnu/packages/speech.scm (festival)[arguments]: Fix broken shebangs in scripts. --- gnu/packages/speech.scm | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/gnu/packages/speech.scm b/gnu/packages/speech.scm index 220d542eda..21d6027004 100644 --- a/gnu/packages/speech.scm +++ b/gnu/packages/speech.scm @@ -350,17 +350,23 @@ be used by the sighted.") (install-file executable bin)) '("src/main/festival" "src/main/festival_client" - "examples/benchmark" - "examples/dumpfeats" - "examples/durmeanstd" - "examples/latest" - "examples/make_utts" - "examples/powmeanstd" - "examples/run-festival-script" - "examples/saytime" - "examples/scfg_parse_text" - "examples/text2pos" - "examples/text2wave")) + "examples/benchmark")) + (let ((scripts '("examples/dumpfeats" + "examples/durmeanstd" + "examples/latest" + "examples/make_utts" + "examples/powmeanstd" + "examples/run-festival-script" + "examples/saytime" + "examples/scfg_parse_text" + "examples/text2pos" + "examples/text2wave"))) + (substitute* scripts + (("exec /tmp/guix-build.*/bin/festival") + (string-append "exec " bin "/festival"))) + (for-each (lambda (script) + (install-file script bin)) + scripts)) ;; Documentation (for-each (lambda (file) From 7bc46ecc34ceb042ff890e5d306d0a2a736e891d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 8 Sep 2019 14:35:44 +0200 Subject: [PATCH 040/227] doc: Add Guix Cookbook. * .gitignore: Update ignore list. * Makefile.am (assert-no-store-file-names): Exclude the cookbook. * bootstrap: Generate po files for cookbook translations. * doc/guix-cookbook.texi: New file. * doc/local.mk (info_TEXINFOS): Add it; add a rule to build cookbook translations. * po/doc/local.mk (DOC_COOKBOOK_PO_FILES): New variable. (EXTRA_DIST): Add cookbook pot file and po files. (doc-po-update-cookbook-%): New target. (doc-pot-update): Also update cookbook pot file. (doc-po-update): Also update cookbook po files. --- .gitignore | 31 +- Makefile.am | 3 +- bootstrap | 12 +- doc/guix-cookbook.texi | 821 +++++++++++++++++++++++++++++++++++++++++ doc/local.mk | 9 +- po/doc/local.mk | 33 +- 6 files changed, 890 insertions(+), 19 deletions(-) create mode 100644 doc/guix-cookbook.texi diff --git a/.gitignore b/.gitignore index 93d2ec9801..38cde42fca 100644 --- a/.gitignore +++ b/.gitignore @@ -29,22 +29,23 @@ /doc/*.1 /doc/.dirstamp /doc/contributing.*.texi -/doc/guix.*.aux -/doc/guix.*.cp -/doc/guix.*.cps -/doc/guix.*.fn -/doc/guix.*.fns -/doc/guix.*.html -/doc/guix.*.info -/doc/guix.*.info-[0-9] -/doc/guix.*.ky -/doc/guix.*.pg -/doc/guix.*.toc -/doc/guix.*.t2p -/doc/guix.*.tp -/doc/guix.*.vr -/doc/guix.*.vrs +/doc/guix*.aux +/doc/guix*.cp +/doc/guix*.cps +/doc/guix*.fn +/doc/guix*.fns +/doc/guix*.html +/doc/guix*.info +/doc/guix*.info-[0-9] +/doc/guix*.ky +/doc/guix*.pg +/doc/guix*.toc +/doc/guix*.t2p +/doc/guix*.tp +/doc/guix*.vr +/doc/guix*.vrs /doc/guix.*.texi +/doc/guix-cookbook.*.texi /doc/guix.aux /doc/guix.cp /doc/guix.cps diff --git a/Makefile.am b/Makefile.am index 7e3b5c1070..93d18d7df6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -814,7 +814,8 @@ assert-no-store-file-names: $(AM_V_at)if grep -r --exclude=*.texi --exclude=*.info \ --exclude=*.info-[0-9] --exclude=*.dot \ --exclude=*.eps --exclude-dir=bootstrap \ - --exclude=guix-manual.pot --exclude=guix-manual.*.po \ + --exclude=guix-manual.pot --exclude=guix-manual.*.po \ + --exclude=guix-cookbook.pot --exclude=guix-cookbook.*.po \ --exclude=guix-prettify.el \ --exclude=ChangeLog* \ -E "$(storedir)/[a-z0-9]{32}-" $(distdir) ; \ diff --git a/bootstrap b/bootstrap index c0b5af7677..c9e7a084a1 100755 --- a/bootstrap +++ b/bootstrap @@ -4,7 +4,7 @@ set -e -x # Generate stubs for translations. -langs=`find po/doc -type f -name '*.po' \ +langs=`find po/doc -type f -name 'guix-manual*.po' \ | sed -e 's,guix-manual\.,,' \ | xargs -n 1 -I{} basename {} .po` for lang in ${langs}; do @@ -15,5 +15,15 @@ for lang in ${langs}; do touch "po/doc/guix-manual.${lang}.po" fi done +langs=`find po/doc -type f -name 'guix-cookbook*.po' \ + | sed -e 's,guix-manual\.,,' \ + | xargs -n 1 -I{} basename {} .po` +for lang in ${langs}; do + if [ ! -e "doc/guix-cookbook.${lang}.texi" ]; then + echo "@setfilename guix-cookbook.${lang}.info" > "doc/guix-cookbook.${lang}.texi" + # Ensure .po file is newer. + touch "po/doc/guix-cookbook.${lang}.po" + fi +done exec autoreconf -vfi diff --git a/doc/guix-cookbook.texi b/doc/guix-cookbook.texi new file mode 100644 index 0000000000..66f94a0fe7 --- /dev/null +++ b/doc/guix-cookbook.texi @@ -0,0 +1,821 @@ +\input texinfo +@c -*-texinfo-*- + +@c %**start of header +@setfilename guix-cookbook.info +@documentencoding UTF-8 +@settitle GNU Guix Cookbook +@c %**end of header + +@copying +Copyright @copyright{} 2019 Ricardo Wurmus@* +Copyright @copyright{} 2019 Efraim Flashner@* +Copyright @copyright{} 2019 Pierre Neidhardt@* + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.3 or +any later version published by the Free Software Foundation; with no +Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A +copy of the license is included in the section entitled ``GNU Free +Documentation License''. +@end copying + +@dircategory System administration +@direntry +* Guix cookbook: (guix-cookbook). Tutorials and examples for GNU Guix. +@end direntry + +@titlepage +@title GNU Guix Cookbook +@subtitle Tutorials and examples for using the GNU Guix Functional Package Manager +@author The GNU Guix Developers + +@page +@vskip 0pt plus 1filll + +@insertcopying +@end titlepage + +@contents + +@c ********************************************************************* +@node Top +@top GNU Guix Cookbook + +This document presents tutorials and detailed examples for GNU@tie{}Guix, a +functional package management tool written for the GNU system. Please +@pxref{Top,,, guix, GNU Guix reference manual} for details about the system, +its API, and related concepts. + +@c TRANSLATORS: You can replace the following paragraph with information on +@c how to join your own translation team and how to report issues with the +@c translation. +If you would like to translate this document in your native language, consider +joining the @uref{https://translationproject.org/domain/guix-cookbook.html, +Translation Project}. + +@menu +* Scheme tutorials:: Meet your new favorite language! +* Packaging:: Packaging tutorials +* System Configuration:: Customizing the GNU System + +* Acknowledgments:: Thanks! +* GNU Free Documentation License:: The license of this document. +* Concept Index:: Concepts. + +@detailmenu + --- The Detailed Node Listing --- + +Scheme tutorials + +* A Scheme Crash Course:: Learn the basics of Scheme + +Packaging + +* Packaging Tutorial:: Let's add a package to Guix! + +System Configuration + +* Customizing the Kernel:: Creating and using a custom Linux kernel + + +@end detailmenu +@end menu + +@c ********************************************************************* +@node Scheme tutorials +@chapter Scheme tutorials + +GNU@tie{}Guix is written in the general purpose programming language Scheme, +and many of its features can be accessed and manipulated programmatically. +You can use Scheme to generate package definitions, to modify them, to build +them, to deploy whole operating systems, etc. + +Knowing the basics of how to program in Scheme will unlock many of the +advanced features Guix provides --- and you don't even need to be an +experienced programmer to use them! + +Let's get started! + +@node A Scheme Crash Course +@section A Scheme Crash Course + +@cindex Scheme, crash course + +Guix uses the Guile implementation of Scheme. To start playing with the +language, install it with @code{guix install guile} and start a +@uref{https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop, +REPL} by running @code{guile} from the command line. + +Alternatively you can also run @code{guix environment --ad-hoc guile -- guile} +if you'd rather not have Guile installed in your user profile. + +In the following examples we use the @code{>} symbol to denote the REPL +prompt, that is, the line reserved for user input. @xref{Using Guile +Interactively,,, guile, GNU Guile Reference Manual}) for more details on the +REPL. + +@itemize +@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. + +Examples of valid expressions: + +@example scheme +> "Hello World!" +"Hello World!" +> 17 +17 +> (display (string-append "Hello " "Guix" "\n")) +"Hello Guix!" +@end example + +@item +This last example is a function call nested in another function call. When a +parenthesized expression is evaluated, the first term is the function and the +rest are the arguments passed to the function. Every function returns the +last evaluated expression as its return value. + +@item +Anonymous functions are declared with the @code{lambda} term: + +@example scheme +> (lambda (x) (* x x)) +#:24:0 (x)> +@end example + +The above procedure returns the square of its argument. Since everything is +an expression, the @code{lambda} expression returns an anonymous procedure, +which can in turn be applied to an argument: + +@example scheme +> ((lambda (x) (* x x)) 3) +9 +@end example + +@item +Anything can be assigned a global name with @code{define}: + +@example scheme +> (define a 3) +> (define square (lambda (x) (* x x))) +> (square a) +9 +@end example + +@item +Procedures can be defined more concisely with the following syntax: + +@example scheme +(define (square x) (* x x)) +@end example + +@item +A list structure can be created with the @code{list} procedure: + +@example scheme +> (list 2 a 5 7) +(2 3 5 7) +@end example + +@item +The @emph{quote} disables evaluation of a parenthesized expression: the first +term is not called over the other terms. Thus it effectively returns a list +of terms. + +@example scheme +> '(display (string-append "Hello " "Guix" "\n")) +(display (string-append "Hello " "Guix" "\n")) +> '(2 a 5 7) +(2 a 5 7) +@end example + +@item +The @emph{quasiquote} disables evaluation of a parenthesized expression until +a comma re-enables it. Thus it provides us with fine-grained control over +what is evaluated and what is not. + +@example scheme +> `(2 a 5 7 (2 ,a 5 ,(+ a 4))) +(2 a 5 7 (2 3 5 7)) +@end example + +Note that the above result is a list of mixed elements: numbers, symbols (here +@code{a}) and the last element is a list itself. + +@item +Multiple variables can be named locally with @code{let}: + +@example scheme +> (define x 10) +> (let ((x 2) + (y 3)) + (list x y)) +(2 3) +> x +10 +> y +ERROR: In procedure module-lookup: Unbound variable: y +@end example + +Use @code{let*} to allow later variable declarations to refer to earlier +definitions. + +@example scheme +> (let* ((x 2) + (y (* x 3))) + (list x y)) +(2 6) +@end example + +@item +The keyword syntax is @code{#:}; it is used to create unique identifiers. +@pxref{Keywords,,, guile, GNU Guile Reference Manual}. + +@item +The percentage @code{%} is typically used for read-only global variables in +the build stage. Note that it is merely a convention, like @code{_} in C. +Scheme treats @code{%} exactly the same as any other letter. + +@item +Modules are created with @code{define-module}. For instance + +@example scheme +(define-module (guix build-system ruby) + #:use-module (guix store) + #:export (ruby-build + ruby-build-system)) +@end example + +defines the module @code{guix build-system ruby} which must be located in +@file{guix/build-system/ruby.scm} somewhere in the Guile load path. It +depends on the @code{(guix store)} module and it exports two variables, +@code{ruby-build} and @code{ruby-build-system}. +@end itemize + +For a more detailed introduction, check out +@uref{http://www.troubleshooters.com/codecorn/scheme_guile/hello.htm, Scheme +at a Glance}, by Steve Litt. + +One of the reference Scheme books is the seminal ``Structure and +Interpretation of Computer Programs'', by Harold Abelson and Gerald Jay +Sussman, with Julie Sussman. You'll find a +@uref{https://mitpress.mit.edu/sites/default/files/sicp/index.html, free copy +online}, together with +@uref{https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/, +videos of the lectures by the authors}. The book is available in Texinfo +format as the @code{sicp} Guix package. Go ahead, run @code{guix install +sicp} and start reading with @code{info sicp} (or with the Emacs Info reader). +An @uref{https://sarabander.github.io/sicp/, unofficial ebook is also +available}. + +You'll find more books, tutorials and other resources at +@url{https://schemers.org/}. + + +@c ********************************************************************* +@node Packaging +@chapter Packaging + +@cindex packaging + +This chapter is dedicated to teaching you how to add packages to the +collection of packages that come with GNU Guix. This involves writing package +definitions in Guile Scheme, organizing them in package modules, and building +them. + +@menu +* Packaging Tutorial:: A tutorial on how to add packages to Guix. +@end menu + +@node Packaging Tutorial +@section Packaging Tutorial + +GNU Guix stands out as the @emph{hackable} package manager, mostly because it +uses @uref{https://www.gnu.org/software/guile/, GNU Guile}, a powerful +high-level programming language, one of the +@uref{https://en.wikipedia.org/wiki/Scheme_%28programming_language%29, Scheme} +dialects from the +@uref{https://en.wikipedia.org/wiki/Lisp_%28programming_language%29, Lisp family}. + +Package definitions are also written in Scheme, which empowers Guix in some +very unique ways, unlike most other package managers that use shell scripts or +simple languages. + +@itemize +@item +Use functions, structures, macros and all of Scheme expressiveness for your +package definitions. + +@item +Inheritance makes it easy to customize a package by inheriting from it and +modifying only what is needed. + +@item +Batch processing: the whole package collection can be parsed, filtered and +processed. Building a headless server with all graphical interfaces stripped +out? It's possible. Want to rebuild everything from source using specific +compiler optimization flags? Pass the @code{#:make-flags "..."} argument to +the list of packages. It wouldn't be a stretch to think +@uref{https://wiki.gentoo.org/wiki/USE_flag, Gentoo USE flags} here, but this +goes even further: the changes don't have to be thought out beforehand by the +packager, they can be @emph{programmed} by the user! +@end itemize + +The following tutorial covers all the basics around package creation with Guix. +It does not assume much knowledge of the Guix system nor of the Lisp language. +The reader is only expected to be familiar with the command line and to have some +basic programming knowledge. + +@subsection A "Hello World" package + +The “Defining Packages” section of the manual introduces the basics of Guix +packaging (@pxref{Defining Packages,,, guix, GNU Guix Reference Manual}). In +the following section, we will partly go over those basics again. + +``GNU hello'' is a dummy project that serves as an idiomatic example for +packaging. It uses the GNU build system (@code{./configure && make && make +install}). Guix already provides a package definition which is a perfect +example to start with. You can look up its declaration with @code{guix edit +hello} from the command line. Let's see how it looks: + +@example scheme +(define-public hello + (package + (name "hello") + (version "2.10") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/hello/hello-" version + ".tar.gz")) + (sha256 + (base32 + "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i")))) + (build-system gnu-build-system) + (synopsis "Hello, GNU world: An example GNU package") + (description + "GNU Hello prints the message \"Hello, world!\" and then exits. It +serves as an example of standard GNU coding practices. As such, it supports +command-line arguments, multiple languages, and so on.") + (home-page "https://www.gnu.org/software/hello/") + (license gpl3+))) +@end example + +As you can see, most of it is rather straightforward. But let's review the +fields together: + +@table @samp +@item name +The project name. Using Scheme conventions, we prefer to keep it +lower case, without underscore and using dash-separated words. + +@item source +This field contains a description of the source code origin. The +@code{origin} record contains these fields: + +@enumerate +@item The method, here @code{url-fetch} to download via HTTP/FTP, but other methods + exist, such as @code{git-fetch} for Git repositories. +@item The URI, which is typically some @code{https://} location for @code{url-fetch}. Here + the special `mirror://gnu` refers to a set of well known locations, all of + which can be used by Guix to fetch the source, should some of them fail. +@item The @code{sha256} checksum of the requested file. This is essential to ensure + the source is not corrupted. Note that Guix works with base32 strings, + hence the call to the @code{base32} function. +@end enumerate + +@item build-system + +This is where the power of abstraction provided by the Scheme language really +shines: in this case, the @code{gnu-build-system} abstracts away the famous +@code{./configure && make && make install} shell invocations. Other build +systems include the @code{trivial-build-system} which does not do anything and +requires from the packager to program all the build steps, the +@code{python-build-system}, the @code{emacs-build-system}, and many more +(@pxref{Build Systems,,, guix, GNU Guix Reference Manual}). + +@item synopsis +It should be a concise summary of what the package does. For many packages a +tagline from the project's home page can be used as the synopsis. + +@item description +Same as for the synopsis, it's fine to re-use the project description from the +homepage. Note that Guix uses Texinfo syntax. + +@item home-page +Use HTTPS if available. + +@item license +See @code{guix/licenses.scm} in the project source for a full list of +available licenses. +@end table + +Time to build our first package! Nothing fancy here for now: we will stick to a +dummy "my-hello", a copy of the above declaration. + +As with the ritualistic "Hello World" taught with most programming languages, +this will possibly be the most "manual" approach. We will work out an ideal +setup later; for now we will go the simplest route. + +Save the following to a file @file{my-hello.scm}. + +@example scheme +(use-modules (guix packages) + (guix download) + (guix build-system gnu) + (guix licenses)) + +(package + (name "my-hello") + (version "2.10") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/hello/hello-" version + ".tar.gz")) + (sha256 + (base32 + "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i")))) + (build-system gnu-build-system) + (synopsis "Hello, Guix world: An example custom Guix package") + (description + "GNU Hello prints the message \"Hello, world!\" and then exits. It +serves as an example of standard GNU coding practices. As such, it supports +command-line arguments, multiple languages, and so on.") + (home-page "https://www.gnu.org/software/hello/") + (license gpl3+)) +@end example + +We will explain the extra code in a moment. + +Feel free to play with the different values of the various fields. If you +change the source, you'll need to update the checksum. Indeed, Guix refuses to +build anything if the given checksum does not match the computed checksum of the +source code. To obtain the correct checksum of the package declaration, we +need to download the source, compute the sha256 checksum and convert it to +base32. + +Thankfully, Guix can automate this task for us; all we need is to provide the +URI: + +@c TRANSLATORS: This is example shell output. +@example sh +$ guix download mirror://gnu/hello/hello-2.10.tar.gz + +Starting download of /tmp/guix-file.JLYgL7 +From https://ftpmirror.gnu.org/gnu/hello/hello-2.10.tar.gz... +following redirection to `https://mirror.ibcp.fr/pub/gnu/hello/hello-2.10.tar.gz'... + …10.tar.gz 709KiB 2.5MiB/s 00:00 [##################] 100.0% +/gnu/store/hbdalsf5lpf01x4dcknwx6xbn6n5km6k-hello-2.10.tar.gz +0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i +@end example + +In this specific case the output tells us which mirror was chosen. +If the result of the above command is not the same as in the above snippet, +update your @code{my-hello} declaration accordingly. + +Note that GNU package tarballs come with an OpenPGP signature, so you +should definitely check the signature of this tarball with `gpg` to +authenticate it before going further: + +@c TRANSLATORS: This is example shell output. +@example sh +$ guix download mirror://gnu/hello/hello-2.10.tar.gz.sig + +Starting download of /tmp/guix-file.03tFfb +From https://ftpmirror.gnu.org/gnu/hello/hello-2.10.tar.gz.sig... +following redirection to `https://ftp.igh.cnrs.fr/pub/gnu/hello/hello-2.10.tar.gz.sig'... + ….tar.gz.sig 819B 1.2MiB/s 00:00 [##################] 100.0% +/gnu/store/rzs8wba9ka7grrmgcpfyxvs58mly0sx6-hello-2.10.tar.gz.sig +0q0v86n3y38z17rl146gdakw9xc4mcscpk8dscs412j22glrv9jf +$ gpg --verify /gnu/store/rzs8wba9ka7grrmgcpfyxvs58mly0sx6-hello-2.10.tar.gz.sig /gnu/store/hbdalsf5lpf01x4dcknwx6xbn6n5km6k-hello-2.10.tar.gz +gpg: Signature made Sun 16 Nov 2014 01:08:37 PM CET +gpg: using RSA key A9553245FDE9B739 +gpg: Good signature from "Sami Kerola " [unknown] +gpg: aka "Sami Kerola (http://www.iki.fi/kerolasa/) " [unknown] +gpg: WARNING: This key is not certified with a trusted signature! +gpg: There is no indication that the signature belongs to the owner. +Primary key fingerprint: 8ED3 96E3 7E38 D471 A005 30D3 A955 3245 FDE9 B739 +@end example + +You can then happily run + +@c TRANSLATORS: Do not translate this command +@example sh +$ guix package --install-from-file=my-hello.scm +@end example + +You should now have @code{my-hello} in your profile! + +@c TRANSLATORS: Do not translate this command +@example sh +$ guix package --list-installed=my-hello +my-hello 2.10 out +/gnu/store/f1db2mfm8syb8qvc357c53slbvf1g9m9-my-hello-2.10 +@end example + +We've gone as far as we could without any knowledge of Scheme. Before moving +on to more complex packages, now is the right time to brush up on your Scheme +knowledge. @pxref{A Scheme Crash Course} to get up to speed. + +@c TODO: Continue the tutorial + + +@c ********************************************************************* +@node System Configuration +@chapter System Configuration + +Guix offers a flexible language for declaratively configuring your Guix +System. This flexibility can at times be overwhelming. The purpose of this +chapter is to demonstrate some advanced configuration concepts. + +@pxref{System Configuration,,, guix, GNU Guix Reference Manual} for a complete +reference. + +@menu +* Customizing the Kernel:: Creating and using a custom Linux kernel on Guix System. +@end menu + +@node Customizing the Kernel +@section Customizing the Kernel + +Guix is, at its core, a source based distribution with substitutes +(@pxref{Substitutes,,, guix, GNU Guix Reference Manual}), and as such building +packages from their source code is an expected part of regular package +installations and upgrades. Given this starting point, it makes sense that +efforts are made to reduce the amount of time spent compiling packages, and +recent changes and upgrades to the building and distribution of substitutes +continues to be a topic of discussion within Guix. + +The kernel, while not requiring an overabundance of RAM to build, does take a +rather long time on an average machine. The official kernel configuration, as +is the case with many GNU/Linux distributions, errs on the side of +inclusiveness, and this is really what causes the build to take such a long +time when the kernel is built from source. + +The Linux kernel, however, can also just be described as a regular old +package, and as such can be customized just like any other package. The +procedure is a little bit different, although this is primarily due to the +nature of how the package definition is written. + +The @code{linux-libre} kernel package definition is actually a procedure which +creates a package. + +@example scheme +(define* (make-linux-libre version hash supported-systems + #:key + ;; A function that takes an arch and a variant. + ;; See kernel-config for an example. + (extra-version #f) + (configuration-file #f) + (defconfig "defconfig") + (extra-options %default-extra-linux-options) + (patches (list %boot-logo-patch))) + ...) +@end example + +The current @code{linux-libre} package is for the 5.1.x series, and is +declared like this: + +@example scheme +(define-public linux-libre + (make-linux-libre %linux-libre-version + %linux-libre-hash + '("x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux") + #:patches %linux-libre-5.1-patches + #:configuration-file kernel-config)) +@end example + +Any keys which are not assigned values inherit their default value from the +@code{make-linux-libre} definition. When comparing the two snippets above, +you may notice that the code comment in the first doesn't actually refer to +the @code{#:extra-version} keyword; it is actually for +@code{#:configuration-file}. Because of this, it is not actually easy to +include a custom kernel configuration from the definition, but don't worry, +there are other ways to work with what we do have. + +There are two ways to create a kernel with a custom kernel configuration. The +first is to provide a standard @file{.config} file during the build process by +including an actual @file{.config} file as a native input to our custom +kernel. The following is a snippet from the custom @code{'configure} phase of +the @code{make-linux-libre} package definition: + +@example scheme +(let ((build (assoc-ref %standard-phases 'build)) + (config (assoc-ref (or native-inputs inputs) "kconfig"))) + + ;; Use a custom kernel configuration file or a default + ;; configuration file. + (if config + (begin + (copy-file config ".config") + (chmod ".config" #o666)) + (invoke "make" ,defconfig)) +@end example + +Below is a sample kernel package. The @code{linux-libre} package is nothing +special and can be inherited from and have its fields overridden like any +other package: + +@example scheme +(define-public linux-libre/E2140 + (package + (inherit linux-libre) + (native-inputs + `(("kconfig" ,(local-file "E2140.config")) + ,@@(alist-delete "kconfig" + (package-native-inputs linux-libre)))))) +@end example + +In the same directory as the file defining @code{linux-libre-E2140} is a file +named @file{E2140.config}, which is an actual kernel configuration file. The +@code{defconfig} keyword of @code{make-linux-libre} is left blank here, so the +only kernel configuration in the package is the one which was included in the +@code{native-inputs} field. + +The second way to create a custom kernel is to pass a new value to the +@code{extra-options} keyword of the @code{make-linux-libre} procedure. The +@code{extra-options} keyword works with another function defined right below +it: + +@example scheme +(define %default-extra-linux-options + `(;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html + ("CONFIG_DEVPTS_MULTIPLE_INSTANCES" . #t) + ;; Modules required for initrd: + ("CONFIG_NET_9P" . m) + ("CONFIG_NET_9P_VIRTIO" . m) + ("CONFIG_VIRTIO_BLK" . m) + ("CONFIG_VIRTIO_NET" . m) + ("CONFIG_VIRTIO_PCI" . m) + ("CONFIG_VIRTIO_BALLOON" . m) + ("CONFIG_VIRTIO_MMIO" . m) + ("CONFIG_FUSE_FS" . m) + ("CONFIG_CIFS" . m) + ("CONFIG_9P_FS" . m))) + +(define (config->string options) + (string-join (map (match-lambda + ((option . 'm) + (string-append option "=m")) + ((option . #t) + (string-append option "=y")) + ((option . #f) + (string-append option "=n"))) + options) + "\n")) +@end example + +And in the custom configure script from the `make-linux-libre` package: + +@example scheme +;; Appending works even when the option wasn't in the +;; file. The last one prevails if duplicated. +(let ((port (open-file ".config" "a")) + (extra-configuration ,(config->string extra-options))) + (display extra-configuration port) + (close-port port)) + +(invoke "make" "oldconfig")))) +@end example + +So by not providing a configuration-file the @file{.config} starts blank, and +then we write into it the collection of flags that we want. Here's another +custom kernel: + +@example scheme +(define %macbook41-full-config + (append %macbook41-config-options + %filesystems + %efi-support + %emulation + (@@@@ (gnu packages linux) %default-extra-linux-options))) + +(define-public linux-libre-macbook41 + ;; XXX: Access the internal 'make-linux-libre' procedure, which is + ;; private and unexported, and is liable to change in the future. + ((@@@@ (gnu packages linux) make-linux-libre) (@@@@ (gnu packages linux) %linux-libre-version) + (@@@@ (gnu packages linux) %linux-libre-hash) + '("x86_64-linux") + #:extra-version "macbook41" + #:patches (@@@@ (gnu packages linux) %linux-libre-5.1-patches) + #:extra-options %macbook41-config-options)) +@end example + +In the above example @code{%filesystems} is a collection of flags enabling +different filesystem support, @code{%efi-support} enables EFI support and +@code{%emulation} enables a x86_64-linux machine to act in 32-bit mode also. +@code{%default-extra-linux-options} are the ones quoted above, which had to be +added in since they were replaced in the @code{extra-options} keyword. + +This all sounds like it should be doable, but how does one even know which +modules are required for a particular system? Two places that can be helpful +in trying to answer this question is the +@uref{https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel, Gentoo +Handbook} and the +@uref{https://www.kernel.org/doc/html/latest/admin-guide/README.html?highlight=localmodconfig, +documentation from the kernel itself}. From the kernel documentation, it +seems that @code{make localmodconfig} is the command we want. + +In order to actually run @code{make localmodconfig} we first need to get and +unpack the kernel source code: + +@example shell +tar xf $(guix build linux-libre --source) +@end example + +Once inside the directory containing the source code run @code{touch .config} +to create an initial, empty @file{.config} to start with. @code{make +localmodconfig} works by seeing what you already have in @file{.config} and +letting you know what you're missing. If the file is blank then you're +missing everything. The next step is to run: + +@example shell +guix environment linux-libre -- make localmodconfig +@end example + +and note the output. Do note that the @file{.config} file is still empty. +The output generally contains two types of warnings. The first start with +"WARNING" and can actually be ignored in our case. The second read: + +@example shell +module pcspkr did not have configs CONFIG_INPUT_PCSPKR +@end example + +For each of these lines, copy the @code{CONFIG_XXXX_XXXX} portion into the +@file{.config} in the directory, and append @code{=m}, so in the end it looks +like this: + +@example shell +CONFIG_INPUT_PCSPKR=m +CONFIG_VIRTIO=m +@end example + +After copying all the configuration options, run @code{make localmodconfig} +again to make sure that you don't have any output starting with "module". +After all of these machine specific modules there are a couple more left that +are also needed. @code{CONFIG_MODULES} is necessary so that you can build and +load modules separately and not have everything built into the kernel. +@code{CONFIG_BLK_DEV_SD} is required for reading from hard drives. It is +possible that there are other modules which you will need. + +This post does not aim to be a guide to configuring your own kernel however, +so if you do decide to build a custom kernel you'll have to seek out other +guides to create a kernel which is just right for your needs. + +The second way to setup the kernel configuration makes more use of Guix's +features and allows you to share configuration segments between different +kernels. For example, all machines using EFI to boot have a number of EFI +configuration flags that they need. It is likely that all the kernels will +share a list of filesystems to support. By using variables it is easier to +see at a glance what features are enabled and to make sure you don't have +features in one kernel but missing in another. + +Left undiscussed however, is Guix's initrd and its customization. It is +likely that you'll need to modify the initrd on a machine using a custom +kernel, since certain modules which are expected to be built may not be +available for inclusion into the initrd. + +@c ********************************************************************* +@node Acknowledgments +@chapter Acknowledgments + +Guix is based on the @uref{https://nixos.org/nix/, Nix package manager}, +which was designed and +implemented by Eelco Dolstra, with contributions from other people (see +the @file{nix/AUTHORS} file in Guix.) Nix pioneered functional package +management, and promoted unprecedented features, such as transactional +package upgrades and rollbacks, per-user profiles, and referentially +transparent build processes. Without this work, Guix would not exist. + +The Nix-based software distributions, Nixpkgs and NixOS, have also been +an inspiration for Guix. + +GNU@tie{}Guix itself is a collective work with contributions from a +number of people. See the @file{AUTHORS} file in Guix for more +information on these fine people. The @file{THANKS} file lists people +who have helped by reporting bugs, taking care of the infrastructure, +providing artwork and themes, making suggestions, and more---thank you! + +This document includes adapted sections from articles that have previously +been published on the Guix blog at @uref{https://guix.gnu.org/blog}. + + +@c ********************************************************************* +@node GNU Free Documentation License +@appendix GNU Free Documentation License +@cindex license, GNU Free Documentation License +@include fdl-1.3.texi + +@c ********************************************************************* +@node Concept Index +@unnumbered Concept Index +@printindex cp + +@bye + +@c Local Variables: +@c ispell-local-dictionary: "american"; +@c End: diff --git a/doc/local.mk b/doc/local.mk index 336e961c4f..850612605b 100644 --- a/doc/local.mk +++ b/doc/local.mk @@ -26,7 +26,8 @@ info_TEXINFOS = %D%/guix.texi \ %D%/guix.es.texi \ %D%/guix.fr.texi \ %D%/guix.ru.texi \ - %D%/guix.zh_CN.texi + %D%/guix.zh_CN.texi \ + %D%/guix-cookbook.texi %C%_guix_TEXINFOS = \ %D%/contributing.texi \ @@ -108,6 +109,12 @@ $(srcdir)/%D%/guix.%.texi: po/doc/guix-manual.%.po $(srcdir)/%D%/contributing.%. -$(AM_V_POXREF)$(xref_command) -mv "$@.tmp" "$@" +$(srcdir)/%D%/guix-cookbook.%.texi: po/doc/guix-cookbook.%.po + -$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "%D%/guix-cookbook.texi" -p "$<" -l "$@.tmp" + -sed -i "s|guix-cookbook\.info|$$(basename "$@" | sed 's|texi$$|info|')|" "$@.tmp" + -$(AM_V_POXREF)$(xref_command) + -mv "$@.tmp" "$@" + $(srcdir)/%D%/contributing.%.texi: po/doc/guix-manual.%.po -$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "%D%/contributing.texi" -p "$<" -l "$@.tmp" -$(AM_V_POXREF)$(xref_command) diff --git a/po/doc/local.mk b/po/doc/local.mk index fb3c5aee03..f1a52615c1 100644 --- a/po/doc/local.mk +++ b/po/doc/local.mk @@ -23,9 +23,13 @@ DOC_PO_FILES= \ %D%/guix-manual.ru.po \ %D%/guix-manual.zh_CN.po +DOC_COOKBOOK_PO_FILES= + EXTRA_DIST = \ %D%/guix-manual.pot \ - $(DOC_PO_FILES) + %D%/guix-cookbook.pot \ + $(DOC_PO_FILES) \ + $(DOC_COOKBOOK_PO_FILES) POT_OPTIONS = --package-name "guix" --package-version "$(VERSION)" \ --copyright-holder "Ludovic Courtès" \ @@ -52,6 +56,27 @@ doc-po-update-%: exit 1; \ fi +doc-po-update-cookbook-%: + @lang=`echo "$@" | sed -e's/^doc-po-update-//'` ; \ + output="$(srcdir)/po/doc/guix-cookbook.$$lang.po" ; \ + input="$(srcdir)/po/doc/guix-cookbook.pot" ; \ + if test -f "$$output"; then \ + test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $$output $$input"; \ + cd $(srcdir) \ + && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) "$$output" "$$input";; \ + *) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} "$$output" "$$input";; \ + esac; \ + }; \ + touch "$$output"; \ + else \ + echo "File $$output does not exist. If you are a translator, you can create it with 'msginit'." 1>&2; \ + exit 1; \ + fi + $(srcdir)/po/doc/%.pot-update: doc/%.texi $(AM_V_PO4A)$(PO4A_UPDATEPO) -M UTF-8 -f texinfo -m "$<" \ -p "$$(echo $@ | sed 's|-update||')" $(POT_OPTIONS) @@ -64,6 +89,7 @@ doc-pot-update: $(MAKE) $(srcdir)/po/doc/guix.pot-update; \ $(MAKE) $(srcdir)/po/doc/contributing.pot-update; \ done + $(MAKE) $(srcdir)/po/doc/guix-cookbook.pot-update; msgcat $(addprefix $(srcdir)/po/doc/, $(TMP_POT_FILES)) > $(srcdir)/po/doc/guix-manual.pot rm -f $(addprefix $(srcdir)/po/doc/, $(TMP_POT_FILES)) @@ -72,5 +98,10 @@ doc-po-update: doc-pot-update lang="`echo "$$f" | $(SED) -es'|.*/guix-manual\.\(.*\)\.po$$|\1|g'`"; \ $(MAKE) "doc-po-update-$$lang"; \ done + for f in $(DOC_COOKBOOK_PO_FILES); do \ + lang="`echo "$$f" | $(SED) -es'|.*/guix-cookbook\.\(.*\)\.po$$|\1|g'`"; \ + $(MAKE) "doc-po-update-cookbook-$$lang"; \ + done + .PHONY: doc-po-update doc-pot-update From b2fa53d0f6f76e773a2b0736ff370ecf456ae877 Mon Sep 17 00:00:00 2001 From: Guillaume LE VAILLANT Date: Mon, 16 Sep 2019 13:47:46 +0200 Subject: [PATCH 041/227] gnu: Add series. * gnu/packages/lisp.scm (sbcl-series, cl-series, ecl-series): New variables. --- gnu/packages/lisp.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 0c8ad1e2fa..37a0893d2f 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -6934,3 +6934,41 @@ classes and cyclic data structures are supported.") (define-public ecl-cl-prevalence (sbcl-package->ecl-package sbcl-cl-prevalence)) + +(define-public sbcl-series + (let ((commit "da9061b336119d1e5214aff9117171d494d5a58a") + (revision "1")) + (package + (name "sbcl-series") + (version (git-version "2.2.11" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "git://git.code.sf.net/p/series/series") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "07hk2lhfx42zk018pxqvn4gs77vd4n4g8m4xxbqaxgca76mifwfw")))) + (build-system asdf-build-system/sbcl) + (arguments + ;; Disable the tests, they are apparently buggy and I didn't find + ;; a simple way to make them run and pass. + '(#:tests? #f)) + (synopsis "Series data structure for Common Lisp") + (description + "This Common Lisp library provides a series data structure much like +a sequence, with similar kinds of operations. The difference is that in many +situations, operations on series may be composed functionally and yet execute +iteratively, without the need to construct intermediate series values +explicitly. In this manner, series provide both the clarity of a functional +programming style and the efficiency of an iterative programming style.") + (home-page "http://series.sourceforge.net/") + (license license:expat)))) + +(define-public cl-series + (sbcl-package->cl-source-package sbcl-series)) + +(define-public ecl-series + (sbcl-package->ecl-package sbcl-series)) From 7bf9577d0cddbcd8bb85c06fd2249f2d9c4ccd27 Mon Sep 17 00:00:00 2001 From: Guillaume LE VAILLANT Date: Mon, 16 Sep 2019 13:54:30 +0200 Subject: [PATCH 042/227] gnu: Add periods. * gnu/packages/lisp.scm (sbcl-periods, cl-periods, ecl-periods): New variables. --- gnu/packages/lisp.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 37a0893d2f..362da8f646 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -6972,3 +6972,36 @@ programming style and the efficiency of an iterative programming style.") (define-public ecl-series (sbcl-package->ecl-package sbcl-series)) + +(define-public sbcl-periods + (let ((commit "983d4a57325db3c8def942f163133cec5391ec28") + (revision "1")) + (package + (name "sbcl-periods") + (version (git-version "0.0.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jwiegley/periods.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0z30jr3lxz3cmi019fsl4lgcgwf0yqpn95v9zkkkwgymdrkd4lga")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("local-time" ,sbcl-local-time))) + (synopsis "Common Lisp library for manipulating date/time objects") + (description + "Periods is a Common Lisp library providing a set of utilities for +manipulating times, distances between times, and both contiguous and +discontiguous ranges of time.") + (home-page "https://github.com/jwiegley/periods") + (license license:bsd-3)))) + +(define-public cl-periods + (sbcl-package->cl-source-package sbcl-periods)) + +(define-public ecl-periods + (sbcl-package->ecl-package sbcl-periods)) From 5c2f67979e1384229a6b72a612a13a8e4ccc4e7c Mon Sep 17 00:00:00 2001 From: Guillaume LE VAILLANT Date: Mon, 16 Sep 2019 14:40:27 +0200 Subject: [PATCH 043/227] gnu: Add periods-series. * gnu/packages/lisp.scm (sbcl-periods-series, cl-periods-series, ecl-periods-series): New variables. --- gnu/packages/lisp.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 362da8f646..d88a18e358 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -7005,3 +7005,23 @@ discontiguous ranges of time.") (define-public ecl-periods (sbcl-package->ecl-package sbcl-periods)) + +(define-public sbcl-periods-series + (package + (inherit sbcl-periods) + (name "sbcl-periods-series") + (inputs + `(("periods" ,sbcl-periods) + ("series" ,sbcl-series))) + (arguments + '(#:asd-file "periods-series.asd" + #:asd-system-name "periods-series")) + (description + "Periods-series is an extension of the periods Common Lisp library +providing functions compatible with the series Common Lisp library."))) + +(define-public cl-periods-series + (sbcl-package->cl-source-package sbcl-periods-series)) + +(define-public ecl-periods-series + (sbcl-package->ecl-package sbcl-periods-series)) From cacbeebc753d1b1c920b9b2d20cc21e0c433ec1f Mon Sep 17 00:00:00 2001 From: Guillaume LE VAILLANT Date: Mon, 1 Jul 2019 20:16:38 +0200 Subject: [PATCH 044/227] gnu: Add metatilities-base. * gnu/packages/lisp.scm (sbcl-metatilities-base, cl-metatilities-base, ecl-metatilities-base): New variables. --- gnu/packages/lisp.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index d88a18e358..b820f489e6 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -7025,3 +7025,35 @@ providing functions compatible with the series Common Lisp library."))) (define-public ecl-periods-series (sbcl-package->ecl-package sbcl-periods-series)) + +(define-public sbcl-metatilities-base + (let ((commit "6eaa9e3ff0939a93a92109dd0fcd218de85417d5") + (revision "1")) + (package + (name "sbcl-metatilities-base") + (version (git-version "0.6.6" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gwkkwg/metatilities-base.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xpa86pdzlnf4v5g64j3ifaplx71sx2ha8b7vvakswi652679ma0")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("lift" ,sbcl-lift))) + (synopsis "Core of the metatilities Common Lisp library") + (description + "Metatilities-base is the core of the metatilities Common Lisp library +which implements a set of utilities.") + (home-page "https://common-lisp.net/project/metatilities-base/") + (license license:expat)))) + +(define-public cl-metatilities-base + (sbcl-package->cl-source-package sbcl-metatilities-base)) + +(define-public ecl-metatilities-base + (sbcl-package->ecl-package sbcl-metatilities-base)) From 5f33f9aa641db7b6ef515c6d19934728e3075dfd Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant Date: Mon, 16 Sep 2019 14:46:37 +0200 Subject: [PATCH 045/227] gnu: sbcl-lift: Fix version number. * gnu/packages/lisp.scm (sbcl-lift)[version]: Set to 1.7.1 instead of 0.0.0. --- gnu/packages/lisp.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index b820f489e6..f076798e7a 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -2485,7 +2485,7 @@ new fiends in addition to old friends like @command{aif} and (let ((commit "7d49a66c62759535624037826891152223d4206c")) (package (name "sbcl-lift") - (version (git-version "0.0.0" "1" commit)) + (version (git-version "1.7.1" "1" commit)) (source (origin (method git-fetch) From f5d1f58bcb26bb793514711a1ee28cbc400c6a1c Mon Sep 17 00:00:00 2001 From: Guillaume LE VAILLANT Date: Mon, 16 Sep 2019 14:57:53 +0200 Subject: [PATCH 046/227] gnu: Add cl-containers. * gnu/packages/lisp.scm (sbcl-cl-containers, cl-containers, ecl-containers): New variables. --- gnu/packages/lisp.scm | 51 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index f076798e7a..40dba3b16c 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -7057,3 +7057,54 @@ which implements a set of utilities.") (define-public ecl-metatilities-base (sbcl-package->ecl-package sbcl-metatilities-base)) + +(define-public sbcl-cl-containers + (let ((commit "810927e19d933bcf38ffeb7a23ce521efc432d45") + (revision "1")) + (package + (name "sbcl-cl-containers") + (version (git-version "0.12.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gwkkwg/cl-containers.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1s9faxw7svhbjpkhfrz2qxgjm3cvyjb8wpyb4m8dx4i5g7vvprkv")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("lift" ,sbcl-lift))) + (inputs + `(("metatilities-base" ,sbcl-metatilities-base))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'relax-version-checks + (lambda _ + (substitute* "cl-containers.asd" + (("\\(:version \"metatilities-base\" \"0\\.6\\.6\"\\)") + "\"metatilities-base\"")) + (substitute* "cl-containers-test.asd" + (("\\(:version \"lift\" \"1\\.7\\.0\"\\)") + "\"lift\"")) + #t))))) + (synopsis "Container library for Common Lisp") + (description + "Common Lisp ships with a set of powerful built in data structures +including the venerable list, full featured arrays, and hash-tables. +CL-containers enhances and builds on these structures by adding containers +that are not available in native Lisp (for example: binary search trees, +red-black trees, sparse arrays and so on), and by providing a standard +interface so that they are simpler to use and so that changing design +decisions becomes significantly easier.") + (home-page "https://common-lisp.net/project/cl-containers/") + (license license:expat)))) + +(define-public cl-containers + (sbcl-package->cl-source-package sbcl-cl-containers)) + +(define-public ecl-cl-containers + (sbcl-package->ecl-package sbcl-cl-containers)) From bc5d9a7ac1ac7cba9cf0f3ee0a21884bf4a1ca23 Mon Sep 17 00:00:00 2001 From: Guillaume LE VAILLANT Date: Mon, 16 Sep 2019 15:03:55 +0200 Subject: [PATCH 047/227] gnu: Add xlunit. * gnu/packages/lisp.scm (sbcl-xlunit, cl-xlunit, ecl-xlunit): New variables. --- gnu/packages/lisp.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 40dba3b16c..23204fafe8 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -7108,3 +7108,41 @@ decisions becomes significantly easier.") (define-public ecl-cl-containers (sbcl-package->ecl-package sbcl-cl-containers)) + +(define-public sbcl-xlunit + (let ((commit "3805d34b1d8dc77f7e0ee527a2490194292dd0fc") + (revision "1")) + (package + (name "sbcl-xlunit") + (version (git-version "0.6.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "http://git.kpe.io/xlunit.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0argfmp9nghs4sihyj3f8ch9qfib2b7ll07v5m9ziajgzsfl5xw3")))) + (build-system asdf-build-system/sbcl) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-tests + (lambda _ + (substitute* "xlunit.asd" + ((" :force t") "")) + #t))))) + (synopsis "Unit testing package for Common Lisp") + (description + "The XLUnit package is a toolkit for building test suites. It is based +on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.") + (home-page "http://quickdocs.org/xlunit/") + (license license:bsd-3)))) + +(define-public cl-xlunit + (sbcl-package->cl-source-package sbcl-xlunit)) + +(define-public ecl-xlunit + (sbcl-package->ecl-package sbcl-xlunit)) From c0dcdd45d90c7906bc652cf4ca7a3825261b786f Mon Sep 17 00:00:00 2001 From: Guillaume LE VAILLANT Date: Mon, 16 Sep 2019 15:10:03 +0200 Subject: [PATCH 048/227] gnu: Add fprog. * gnu/packages/lisp.scm (sbcl-fprog, cl-fprog, ecl-fprog): New variables. --- gnu/packages/lisp.scm | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 23204fafe8..6f7667f77d 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -7146,3 +7146,33 @@ on the XPTest package by Craig Brozensky and the JUnit package by Kent Beck.") (define-public ecl-xlunit (sbcl-package->ecl-package sbcl-xlunit)) + +(define-public sbcl-fprog + (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636") + (revision "1")) + (package + (name "sbcl-fprog") + (version (git-version "1.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jwiegley/cambl.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "103mry04j2k9vznsxm7wcvccgxkil92cdrv52miwcmxl8daa4jiz")))) + (build-system asdf-build-system/sbcl) + (synopsis "Functional programming utilities for Common Lisp") + (description + "@code{fprog} is a Common Lisp library allowing iteration over +immutable lists sharing identical sublists.") + (home-page "https://github.com/jwiegley/cambl") + (license license:bsd-3)))) + +(define-public cl-fprog + (sbcl-package->cl-source-package sbcl-fprog)) + +(define-public ecl-fprog + (sbcl-package->ecl-package sbcl-fprog)) From 66226d5d41868c7d60c8725efaeb3dba0a0a58f7 Mon Sep 17 00:00:00 2001 From: Guillaume LE VAILLANT Date: Mon, 16 Sep 2019 15:13:53 +0200 Subject: [PATCH 049/227] gnu: Add cambl. * gnu/packages/lisp.scm (sbcl-cambl, cl-cambl, ecl-cambl): New variables. --- gnu/packages/lisp.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 6f7667f77d..8cd27c8d54 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -7176,3 +7176,31 @@ immutable lists sharing identical sublists.") (define-public ecl-fprog (sbcl-package->ecl-package sbcl-fprog)) + +(define-public sbcl-cambl + (let ((commit "7016d1a98215f82605d1c158e7a16504ca1f4636") + (revision "1")) + (package + (inherit sbcl-fprog) + (name "sbcl-cambl") + (version (git-version "4.0.0" revision commit)) + (native-inputs + `(("xlunit" ,sbcl-xlunit))) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cl-containers" ,sbcl-cl-containers) + ("local-time" ,sbcl-local-time) + ("periods" ,sbcl-periods) + ("fprog" ,sbcl-fprog))) + (synopsis "Commoditized amounts and balances for Common Lisp") + (description + "CAMBL is a Common Lisp library providing a convenient facility for +working with commoditized values. It does not allow compound units (and so is +not suited for scientific operations) but does work rather nicely for the +purpose of financial calculations.")))) + +(define-public cl-cambl + (sbcl-package->cl-source-package sbcl-cambl)) + +(define-public ecl-cambl + (sbcl-package->ecl-package sbcl-cambl)) From b1df0d9f7734c883e76a59c8afc4796c6fe8771b Mon Sep 17 00:00:00 2001 From: Guillaume LE VAILLANT Date: Thu, 8 Aug 2019 15:54:46 +0200 Subject: [PATCH 050/227] gnu: Add cl-ledger. * gnu/packages/lisp.scm (sbcl-cl-ledger, cl-ledger, ecl-cl-ledger): New variables. --- gnu/packages/lisp.scm | 45 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 8cd27c8d54..6a5e8da664 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -7204,3 +7204,48 @@ purpose of financial calculations.")))) (define-public ecl-cambl (sbcl-package->ecl-package sbcl-cambl)) + +(define-public sbcl-cl-ledger + (let ((commit "08e0be41795e804cd36142e51756ad0b1caa377b") + (revision "1")) + (package + (name "sbcl-cl-ledger") + (version (git-version "4.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ledger/cl-ledger.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1via0qf6wjcyxnfbmfxjvms0ik9j8rqbifgpmnhrzvkhrq9pv8h1")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("cambl" ,sbcl-cambl) + ("cl-ppcre" ,sbcl-cl-ppcre) + ("local-time" ,sbcl-local-time) + ("periods-series" ,sbcl-periods-series))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-system-definition + (lambda _ + (substitute* "cl-ledger.asd" + ((" :build-operation program-op") "") + ((" :build-pathname \"cl-ledger\"") "") + ((" :entry-point \"ledger::main\"") "")) + #t))))) + (synopsis "Common Lisp port of the Ledger accounting system") + (description + "CL-Ledger is a Common Lisp port of the Ledger double-entry accounting +system.") + (home-page "https://github.com/ledger/cl-ledger") + (license license:bsd-3)))) + +(define-public cl-ledger + (sbcl-package->cl-source-package sbcl-cl-ledger)) + +(define-public ecl-cl-ledger + (sbcl-package->ecl-package sbcl-cl-ledger)) From 76b66fbaf5881ceeea0e75693ffb6678f35fe6ed Mon Sep 17 00:00:00 2001 From: Guillaume LE VAILLANT Date: Thu, 8 Aug 2019 16:00:15 +0200 Subject: [PATCH 051/227] gnu: Add bst. * gnu/packages/lisp.scm (sbcl-bst, cl-bst, ecl-bst): New variables. --- gnu/packages/lisp.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 6a5e8da664..205a6120be 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -7249,3 +7249,36 @@ system.") (define-public ecl-cl-ledger (sbcl-package->ecl-package sbcl-cl-ledger)) + +(define-public sbcl-bst + (let ((commit "34f9c7e8e0a9f2c952fe310ab36cb630d5d9c15a") + (revision "1")) + (package + (name "sbcl-bst") + (version (git-version "1.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/glv2/bst.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1amxns7hvvh4arwbh8ciwfzplg127vh37dnbamv1m1kmmnmihfc8")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("alexandria" ,sbcl-alexandria) + ("fiveam" ,sbcl-fiveam))) + (synopsis "Binary search tree for Common Lisp") + (description + "BST is a Common Lisp library for working with binary search trees that +can contain any kind of values.") + (home-page "https://github.com/glv2/bst") + (license license:gpl3)))) + +(define-public cl-bst + (sbcl-package->cl-source-package sbcl-bst)) + +(define-public ecl-bst + (sbcl-package->ecl-package sbcl-bst)) From ed0ddadcd59c88c182e2a6e1b58b4b1c5f6f7273 Mon Sep 17 00:00:00 2001 From: Guillaume LE VAILLANT Date: Mon, 16 Sep 2019 15:32:41 +0200 Subject: [PATCH 052/227] gnu: Add cl-octet-streams. * gnu/packages/lisp.scm (sbcl-cl-octet-streams, cl-octet-streams, ecl-cl-octet-streams): New variables. --- gnu/packages/lisp.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 205a6120be..63381a8cea 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -7282,3 +7282,36 @@ can contain any kind of values.") (define-public ecl-bst (sbcl-package->ecl-package sbcl-bst)) + +(define-public sbcl-cl-octet-streams + (package + (name "sbcl-cl-octet-streams") + (version "1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/glv2/cl-octet-streams.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1d7mn6ydv0j2x4r7clpc9ijjwrnfpxmvhifv8n5j7jh7s744sf8d")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (inputs + `(("trivial-gray-streams" ,sbcl-trivial-gray-streams))) + (synopsis "In-memory octet streams for Common Lisp") + (description + "CL-octet-streams is a library implementing in-memory octet +streams for Common Lisp. It was inspired by the trivial-octet-streams and +cl-plumbing libraries.") + (home-page "https://github.com/glv2/cl-octet-streams") + (license license:gpl3+))) + +(define-public cl-octet-streams + (sbcl-package->cl-source-package sbcl-cl-octet-streams)) + +(define-public ecl-cl-octet-streams + (sbcl-package->ecl-package sbcl-cl-octet-streams)) From 3012486d77a1d611cfd2c141e256e21a53e2c2aa Mon Sep 17 00:00:00 2001 From: Guillaume LE VAILLANT Date: Mon, 1 Jul 2019 23:23:22 +0200 Subject: [PATCH 053/227] gnu: Add cl-lzlib. * gnu/packages/lisp.scm (sbcl-lzlib, cl-lzlib, ecl-lzlib): New variables. --- gnu/packages/lisp.scm | 45 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 63381a8cea..94ef3731e0 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -7315,3 +7315,48 @@ cl-plumbing libraries.") (define-public ecl-cl-octet-streams (sbcl-package->ecl-package sbcl-cl-octet-streams)) + +(define-public sbcl-lzlib + (let ((commit "0de1db7129fef9a58a059d35a2fa2ecfc5b47b47") + (revision "1")) + (package + (name "sbcl-lzlib") + (version (git-version "1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/glv2/cl-lzlib.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "12ny7vj52fgnd8hb8fc8mry92vq4c1x72x2350191m4476j95clz")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (inputs + `(("cffi" ,sbcl-cffi) + ("cl-octet-streams" ,sbcl-cl-octet-streams) + ("lzlib" ,lzlib))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/lzlib.lisp" + (("liblz\\.so") + (string-append (assoc-ref inputs "lzlib") "/lib/liblz.so"))) + #t))))) + (synopsis "Common Lisp library for lzip (de)compression") + (description + "This Common Lisp library provides functions for lzip (LZMA) +compression/decompression using bindings to the lzlib C library.") + (home-page "https://github.com/glv2/cl-lzlib") + (license license:gpl3+)))) + +(define-public cl-lzlib + (sbcl-package->cl-source-package sbcl-lzlib)) + +(define-public ecl-lzlib + (sbcl-package->ecl-package sbcl-lzlib)) From 62790449e61bfdf7835790fae89e49c210a08418 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sat, 14 Sep 2019 11:26:37 +0800 Subject: [PATCH 054/227] gnu: linux-libre: Enable all nftables families. * gnu/packages/aux-files/linux-libre/4.19-arm.conf, gnu/packages/aux-files/linux-libre/4.19-arm64.conf, gnu/packages/aux-files/linux-libre/4.19-i686.conf, gnu/packages/aux-files/linux-libre/4.19-x86_64.conf, gnu/packages/aux-files/linux-libre/5.2-arm.conf, gnu/packages/aux-files/linux-libre/5.2-arm64.conf, gnu/packages/aux-files/linux-libre/5.2-i686.conf, gnu/packages/aux-files/linux-libre/5.2-x86_64.conf: Set CONFIG_NF_TABLES_INET, CONFIG_NF_TABLES_NETDEV, CONFIG_NF_TABLES_IPV4, CONFIG_NF_TABLES_IPV6 and CONFIG_NF_TABLES_BRIDGE to 'y', and related options to 'm'. --- .../aux-files/linux-libre/4.19-arm.conf | 39 +++++++++++++---- .../aux-files/linux-libre/4.19-arm64.conf | 43 +++++++++++++++---- .../aux-files/linux-libre/4.19-i686.conf | 35 ++++++++++++--- .../aux-files/linux-libre/4.19-x86_64.conf | 35 ++++++++++++--- .../aux-files/linux-libre/5.2-arm.conf | 32 ++++++++++---- .../aux-files/linux-libre/5.2-arm64.conf | 42 +++++++++++++----- .../aux-files/linux-libre/5.2-i686.conf | 28 +++++++++--- .../aux-files/linux-libre/5.2-x86_64.conf | 28 +++++++++--- 8 files changed, 223 insertions(+), 59 deletions(-) diff --git a/gnu/packages/aux-files/linux-libre/4.19-arm.conf b/gnu/packages/aux-files/linux-libre/4.19-arm.conf index 184f73276f..72161c09ff 100644 --- a/gnu/packages/aux-files/linux-libre/4.19-arm.conf +++ b/gnu/packages/aux-files/linux-libre/4.19-arm.conf @@ -1133,7 +1133,7 @@ CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NETFILTER_NETLINK_OSF=m CONFIG_NF_CONNTRACK=m CONFIG_NF_LOG_COMMON=m -# CONFIG_NF_LOG_NETDEV is not set +CONFIG_NF_LOG_NETDEV=m CONFIG_NETFILTER_CONNCOUNT=m CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_SECMARK=y @@ -1176,8 +1176,8 @@ CONFIG_NF_NAT_REDIRECT=y CONFIG_NETFILTER_SYNPROXY=m CONFIG_NF_TABLES=m CONFIG_NF_TABLES_SET=m -# CONFIG_NF_TABLES_INET is not set -# CONFIG_NF_TABLES_NETDEV is not set +CONFIG_NF_TABLES_INET=y +CONFIG_NF_TABLES_NETDEV=y CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m CONFIG_NFT_FLOW_OFFLOAD=m @@ -1189,15 +1189,22 @@ CONFIG_NFT_MASQ=m CONFIG_NFT_REDIR=m CONFIG_NFT_NAT=m CONFIG_NFT_TUNNEL=m -# CONFIG_NFT_OBJREF is not set +CONFIG_NFT_OBJREF=m CONFIG_NFT_QUEUE=m CONFIG_NFT_QUOTA=m CONFIG_NFT_REJECT=m +CONFIG_NFT_REJECT_INET=m CONFIG_NFT_COMPAT=m CONFIG_NFT_HASH=m +CONFIG_NFT_FIB=m +CONFIG_NFT_FIB_INET=m CONFIG_NFT_SOCKET=m CONFIG_NFT_OSF=m CONFIG_NFT_TPROXY=m +CONFIG_NF_DUP_NETDEV=m +CONFIG_NFT_DUP_NETDEV=m +CONFIG_NFT_FWD_NETDEV=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NF_FLOW_TABLE_INET=m CONFIG_NF_FLOW_TABLE=m CONFIG_NETFILTER_XTABLES=m @@ -1361,8 +1368,12 @@ CONFIG_IP_VS_PE_SIP=m CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_SOCKET_IPV4=m CONFIG_NF_TPROXY_IPV4=m -# CONFIG_NF_TABLES_IPV4 is not set -# CONFIG_NF_TABLES_ARP is not set +CONFIG_NF_TABLES_IPV4=y +CONFIG_NFT_CHAIN_ROUTE_IPV4=m +CONFIG_NFT_REJECT_IPV4=m +CONFIG_NFT_DUP_IPV4=m +CONFIG_NFT_FIB_IPV4=m +CONFIG_NF_TABLES_ARP=y CONFIG_NF_FLOW_TABLE_IPV4=m CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m @@ -1370,6 +1381,9 @@ CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m CONFIG_NF_NAT_IPV4=m CONFIG_NF_NAT_MASQUERADE_IPV4=y +CONFIG_NFT_CHAIN_NAT_IPV4=m +CONFIG_NFT_MASQ_IPV4=m +CONFIG_NFT_REDIR_IPV4=m CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_PPTP=m @@ -1401,7 +1415,14 @@ CONFIG_IP_NF_ARP_MANGLE=m # CONFIG_NF_SOCKET_IPV6=m CONFIG_NF_TPROXY_IPV6=m -# CONFIG_NF_TABLES_IPV6 is not set +CONFIG_NF_TABLES_IPV6=y +CONFIG_NFT_CHAIN_ROUTE_IPV6=m +CONFIG_NFT_CHAIN_NAT_IPV6=m +CONFIG_NFT_MASQ_IPV6=m +CONFIG_NFT_REDIR_IPV6=m +CONFIG_NFT_REJECT_IPV6=m +CONFIG_NFT_DUP_IPV6=m +CONFIG_NFT_FIB_IPV6=m CONFIG_NF_FLOW_TABLE_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m @@ -1430,7 +1451,9 @@ CONFIG_IP6_NF_NAT=m CONFIG_IP6_NF_TARGET_MASQUERADE=m CONFIG_IP6_NF_TARGET_NPT=m CONFIG_NF_DEFRAG_IPV6=m -# CONFIG_NF_TABLES_BRIDGE is not set +CONFIG_NF_TABLES_BRIDGE=y +CONFIG_NFT_BRIDGE_REJECT=m +CONFIG_NF_LOG_BRIDGE=m CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m diff --git a/gnu/packages/aux-files/linux-libre/4.19-arm64.conf b/gnu/packages/aux-files/linux-libre/4.19-arm64.conf index 73cd300c18..47ec3c9765 100644 --- a/gnu/packages/aux-files/linux-libre/4.19-arm64.conf +++ b/gnu/packages/aux-files/linux-libre/4.19-arm64.conf @@ -1120,10 +1120,11 @@ CONFIG_NF_NAT_REDIRECT=y CONFIG_NETFILTER_SYNPROXY=m CONFIG_NF_TABLES=m CONFIG_NF_TABLES_SET=m -# CONFIG_NF_TABLES_INET is not set -# CONFIG_NF_TABLES_NETDEV is not set +CONFIG_NF_TABLES_INET=y +CONFIG_NF_TABLES_NETDEV=y CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m +CONFIG_NFT_FLOW_OFFLOAD=m CONFIG_NFT_COUNTER=m CONFIG_NFT_CONNLIMIT=m CONFIG_NFT_LOG=m @@ -1136,12 +1137,20 @@ CONFIG_NFT_OBJREF=m CONFIG_NFT_QUEUE=m CONFIG_NFT_QUOTA=m CONFIG_NFT_REJECT=m +CONFIG_NFT_REJECT_INET=m CONFIG_NFT_COMPAT=m CONFIG_NFT_HASH=m +CONFIG_NFT_FIB=m +CONFIG_NFT_FIB_INET=m CONFIG_NFT_SOCKET=m CONFIG_NFT_OSF=m CONFIG_NFT_TPROXY=m -# CONFIG_NF_FLOW_TABLE is not set +CONFIG_NF_DUP_NETDEV=m +CONFIG_NFT_DUP_NETDEV=m +CONFIG_NFT_FWD_NETDEV=m +CONFIG_NFT_FIB_NETDEV=m +CONFIG_NF_FLOW_TABLE_INET=m +CONFIG_NF_FLOW_TABLE=m CONFIG_NETFILTER_XTABLES=m # @@ -1303,14 +1312,22 @@ CONFIG_IP_VS_PE_SIP=m CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_SOCKET_IPV4=m CONFIG_NF_TPROXY_IPV4=m -# CONFIG_NF_TABLES_IPV4 is not set -# CONFIG_NF_TABLES_ARP is not set +CONFIG_NF_TABLES_IPV4=y +CONFIG_NFT_CHAIN_ROUTE_IPV4=m +CONFIG_NFT_REJECT_IPV4=m +CONFIG_NFT_DUP_IPV4=m +CONFIG_NFT_FIB_IPV4=m +CONFIG_NF_TABLES_ARP=y +CONFIG_NF_FLOW_TABLE_IPV4=m CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m CONFIG_NF_NAT_IPV4=m CONFIG_NF_NAT_MASQUERADE_IPV4=y +CONFIG_NFT_CHAIN_NAT_IPV4=m +CONFIG_NFT_MASQ_IPV4=m +CONFIG_NFT_REDIR_IPV4=m CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_PPTP=m @@ -1342,7 +1359,15 @@ CONFIG_IP_NF_ARP_MANGLE=m # CONFIG_NF_SOCKET_IPV6=m CONFIG_NF_TPROXY_IPV6=m -# CONFIG_NF_TABLES_IPV6 is not set +CONFIG_NF_TABLES_IPV6=y +CONFIG_NFT_CHAIN_ROUTE_IPV6=m +CONFIG_NFT_CHAIN_NAT_IPV6=m +CONFIG_NFT_MASQ_IPV6=m +CONFIG_NFT_REDIR_IPV6=m +CONFIG_NFT_REJECT_IPV6=m +CONFIG_NFT_DUP_IPV6=m +CONFIG_NFT_FIB_IPV6=m +CONFIG_NF_FLOW_TABLE_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m @@ -1358,7 +1383,7 @@ CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m -# CONFIG_IP6_NF_MATCH_SRH is not set +CONFIG_IP6_NF_MATCH_SRH=m CONFIG_IP6_NF_TARGET_HL=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m @@ -1370,7 +1395,9 @@ CONFIG_IP6_NF_NAT=m CONFIG_IP6_NF_TARGET_MASQUERADE=m CONFIG_IP6_NF_TARGET_NPT=m CONFIG_NF_DEFRAG_IPV6=m -# CONFIG_NF_TABLES_BRIDGE is not set +CONFIG_NF_TABLES_BRIDGE=y +CONFIG_NFT_BRIDGE_REJECT=m +CONFIG_NF_LOG_BRIDGE=m CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m diff --git a/gnu/packages/aux-files/linux-libre/4.19-i686.conf b/gnu/packages/aux-files/linux-libre/4.19-i686.conf index c1df3f0f49..75a18ec5ef 100644 --- a/gnu/packages/aux-files/linux-libre/4.19-i686.conf +++ b/gnu/packages/aux-files/linux-libre/4.19-i686.conf @@ -1209,8 +1209,8 @@ CONFIG_NF_NAT_REDIRECT=y CONFIG_NETFILTER_SYNPROXY=m CONFIG_NF_TABLES=m CONFIG_NF_TABLES_SET=m -# CONFIG_NF_TABLES_INET is not set -# CONFIG_NF_TABLES_NETDEV is not set +CONFIG_NF_TABLES_INET=y +CONFIG_NF_TABLES_NETDEV=y CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m CONFIG_NFT_FLOW_OFFLOAD=m @@ -1226,11 +1226,18 @@ CONFIG_NFT_OBJREF=m CONFIG_NFT_QUEUE=m CONFIG_NFT_QUOTA=m CONFIG_NFT_REJECT=m +CONFIG_NFT_REJECT_INET=m CONFIG_NFT_COMPAT=m CONFIG_NFT_HASH=m +CONFIG_NFT_FIB=m +CONFIG_NFT_FIB_INET=m CONFIG_NFT_SOCKET=m CONFIG_NFT_OSF=m CONFIG_NFT_TPROXY=m +CONFIG_NF_DUP_NETDEV=m +CONFIG_NFT_DUP_NETDEV=m +CONFIG_NFT_FWD_NETDEV=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NF_FLOW_TABLE_INET=m CONFIG_NF_FLOW_TABLE=m CONFIG_NETFILTER_XTABLES=m @@ -1394,8 +1401,12 @@ CONFIG_IP_VS_PE_SIP=m CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_SOCKET_IPV4=m CONFIG_NF_TPROXY_IPV4=m -# CONFIG_NF_TABLES_IPV4 is not set -# CONFIG_NF_TABLES_ARP is not set +CONFIG_NF_TABLES_IPV4=y +CONFIG_NFT_CHAIN_ROUTE_IPV4=m +CONFIG_NFT_REJECT_IPV4=m +CONFIG_NFT_DUP_IPV4=m +CONFIG_NFT_FIB_IPV4=m +CONFIG_NF_TABLES_ARP=y CONFIG_NF_FLOW_TABLE_IPV4=m CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m @@ -1403,6 +1414,9 @@ CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m CONFIG_NF_NAT_IPV4=m CONFIG_NF_NAT_MASQUERADE_IPV4=y +CONFIG_NFT_CHAIN_NAT_IPV4=m +CONFIG_NFT_MASQ_IPV4=m +CONFIG_NFT_REDIR_IPV4=m CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_PPTP=m @@ -1434,7 +1448,14 @@ CONFIG_IP_NF_ARP_MANGLE=m # CONFIG_NF_SOCKET_IPV6=m CONFIG_NF_TPROXY_IPV6=m -# CONFIG_NF_TABLES_IPV6 is not set +CONFIG_NF_TABLES_IPV6=y +CONFIG_NFT_CHAIN_ROUTE_IPV6=m +CONFIG_NFT_CHAIN_NAT_IPV6=m +CONFIG_NFT_MASQ_IPV6=m +CONFIG_NFT_REDIR_IPV6=m +CONFIG_NFT_REJECT_IPV6=m +CONFIG_NFT_DUP_IPV6=m +CONFIG_NFT_FIB_IPV6=m CONFIG_NF_FLOW_TABLE_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m @@ -1468,7 +1489,9 @@ CONFIG_NF_DEFRAG_IPV6=m # DECnet: Netfilter Configuration # CONFIG_DECNET_NF_GRABULATOR=m -# CONFIG_NF_TABLES_BRIDGE is not set +CONFIG_NF_TABLES_BRIDGE=y +CONFIG_NFT_BRIDGE_REJECT=m +CONFIG_NF_LOG_BRIDGE=m CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m diff --git a/gnu/packages/aux-files/linux-libre/4.19-x86_64.conf b/gnu/packages/aux-files/linux-libre/4.19-x86_64.conf index a8f8c81648..f151036410 100644 --- a/gnu/packages/aux-files/linux-libre/4.19-x86_64.conf +++ b/gnu/packages/aux-files/linux-libre/4.19-x86_64.conf @@ -1219,8 +1219,8 @@ CONFIG_NF_NAT_REDIRECT=y CONFIG_NETFILTER_SYNPROXY=m CONFIG_NF_TABLES=m CONFIG_NF_TABLES_SET=m -# CONFIG_NF_TABLES_INET is not set -# CONFIG_NF_TABLES_NETDEV is not set +CONFIG_NF_TABLES_INET=y +CONFIG_NF_TABLES_NETDEV=y CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m CONFIG_NFT_FLOW_OFFLOAD=m @@ -1236,11 +1236,18 @@ CONFIG_NFT_OBJREF=m CONFIG_NFT_QUEUE=m CONFIG_NFT_QUOTA=m CONFIG_NFT_REJECT=m +CONFIG_NFT_REJECT_INET=m CONFIG_NFT_COMPAT=m CONFIG_NFT_HASH=m +CONFIG_NFT_FIB=m +CONFIG_NFT_FIB_INET=m CONFIG_NFT_SOCKET=m CONFIG_NFT_OSF=m CONFIG_NFT_TPROXY=m +CONFIG_NF_DUP_NETDEV=m +CONFIG_NFT_DUP_NETDEV=m +CONFIG_NFT_FWD_NETDEV=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NF_FLOW_TABLE_INET=m CONFIG_NF_FLOW_TABLE=m CONFIG_NETFILTER_XTABLES=m @@ -1404,8 +1411,12 @@ CONFIG_IP_VS_PE_SIP=m CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_SOCKET_IPV4=m CONFIG_NF_TPROXY_IPV4=m -# CONFIG_NF_TABLES_IPV4 is not set -# CONFIG_NF_TABLES_ARP is not set +CONFIG_NF_TABLES_IPV4=y +CONFIG_NFT_CHAIN_ROUTE_IPV4=m +CONFIG_NFT_REJECT_IPV4=m +CONFIG_NFT_DUP_IPV4=m +CONFIG_NFT_FIB_IPV4=m +CONFIG_NF_TABLES_ARP=y CONFIG_NF_FLOW_TABLE_IPV4=m CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m @@ -1413,6 +1424,9 @@ CONFIG_NF_LOG_IPV4=m CONFIG_NF_REJECT_IPV4=m CONFIG_NF_NAT_IPV4=m CONFIG_NF_NAT_MASQUERADE_IPV4=y +CONFIG_NFT_CHAIN_NAT_IPV4=m +CONFIG_NFT_MASQ_IPV4=m +CONFIG_NFT_REDIR_IPV4=m CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_PPTP=m @@ -1444,7 +1458,14 @@ CONFIG_IP_NF_ARP_MANGLE=m # CONFIG_NF_SOCKET_IPV6=m CONFIG_NF_TPROXY_IPV6=m -# CONFIG_NF_TABLES_IPV6 is not set +CONFIG_NF_TABLES_IPV6=y +CONFIG_NFT_CHAIN_ROUTE_IPV6=m +CONFIG_NFT_CHAIN_NAT_IPV6=m +CONFIG_NFT_MASQ_IPV6=m +CONFIG_NFT_REDIR_IPV6=m +CONFIG_NFT_REJECT_IPV6=m +CONFIG_NFT_DUP_IPV6=m +CONFIG_NFT_FIB_IPV6=m CONFIG_NF_FLOW_TABLE_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m @@ -1478,7 +1499,9 @@ CONFIG_NF_DEFRAG_IPV6=m # DECnet: Netfilter Configuration # CONFIG_DECNET_NF_GRABULATOR=m -# CONFIG_NF_TABLES_BRIDGE is not set +CONFIG_NF_TABLES_BRIDGE=y +CONFIG_NFT_BRIDGE_REJECT=m +CONFIG_NF_LOG_BRIDGE=m CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m diff --git a/gnu/packages/aux-files/linux-libre/5.2-arm.conf b/gnu/packages/aux-files/linux-libre/5.2-arm.conf index 4ac8ed642d..7cab0ab66c 100644 --- a/gnu/packages/aux-files/linux-libre/5.2-arm.conf +++ b/gnu/packages/aux-files/linux-libre/5.2-arm.conf @@ -1117,7 +1117,7 @@ CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NETFILTER_NETLINK_OSF=m CONFIG_NF_CONNTRACK=m CONFIG_NF_LOG_COMMON=m -# CONFIG_NF_LOG_NETDEV is not set +CONFIG_NF_LOG_NETDEV=m CONFIG_NETFILTER_CONNCOUNT=m CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_SECMARK=y @@ -1157,8 +1157,8 @@ CONFIG_NF_NAT_MASQUERADE=y CONFIG_NETFILTER_SYNPROXY=m CONFIG_NF_TABLES=m CONFIG_NF_TABLES_SET=m -# CONFIG_NF_TABLES_INET is not set -# CONFIG_NF_TABLES_NETDEV is not set +CONFIG_NF_TABLES_INET=y +CONFIG_NF_TABLES_NETDEV=y CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m CONFIG_NFT_FLOW_OFFLOAD=m @@ -1168,17 +1168,25 @@ CONFIG_NFT_LOG=m CONFIG_NFT_LIMIT=m CONFIG_NFT_MASQ=m CONFIG_NFT_REDIR=m +CONFIG_NFT_NAT=m CONFIG_NFT_TUNNEL=m -# CONFIG_NFT_OBJREF is not set +CONFIG_NFT_OBJREF=m CONFIG_NFT_QUEUE=m CONFIG_NFT_QUOTA=m CONFIG_NFT_REJECT=m +CONFIG_NFT_REJECT_INET=m CONFIG_NFT_COMPAT=m CONFIG_NFT_HASH=m +CONFIG_NFT_FIB=m +CONFIG_NFT_FIB_INET=m CONFIG_NFT_XFRM=m CONFIG_NFT_SOCKET=m CONFIG_NFT_OSF=m CONFIG_NFT_TPROXY=m +CONFIG_NF_DUP_NETDEV=m +CONFIG_NFT_DUP_NETDEV=m +CONFIG_NFT_FWD_NETDEV=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NF_FLOW_TABLE_INET=m CONFIG_NF_FLOW_TABLE=m CONFIG_NETFILTER_XTABLES=m @@ -1345,8 +1353,11 @@ CONFIG_IP_VS_PE_SIP=m CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_SOCKET_IPV4=m CONFIG_NF_TPROXY_IPV4=m -# CONFIG_NF_TABLES_IPV4 is not set -# CONFIG_NF_TABLES_ARP is not set +CONFIG_NF_TABLES_IPV4=y +CONFIG_NFT_REJECT_IPV4=m +CONFIG_NFT_DUP_IPV4=m +CONFIG_NFT_FIB_IPV4=m +CONFIG_NF_TABLES_ARP=y CONFIG_NF_FLOW_TABLE_IPV4=m CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m @@ -1383,7 +1394,10 @@ CONFIG_IP_NF_ARP_MANGLE=m # CONFIG_NF_SOCKET_IPV6=m CONFIG_NF_TPROXY_IPV6=m -# CONFIG_NF_TABLES_IPV6 is not set +CONFIG_NF_TABLES_IPV6=y +CONFIG_NFT_REJECT_IPV6=m +CONFIG_NFT_DUP_IPV6=m +CONFIG_NFT_FIB_IPV6=m CONFIG_NF_FLOW_TABLE_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m @@ -1412,7 +1426,9 @@ CONFIG_IP6_NF_TARGET_NPT=m # end of IPv6: Netfilter Configuration CONFIG_NF_DEFRAG_IPV6=m -# CONFIG_NF_TABLES_BRIDGE is not set +CONFIG_NF_TABLES_BRIDGE=y +CONFIG_NFT_BRIDGE_REJECT=m +CONFIG_NF_LOG_BRIDGE=m CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m diff --git a/gnu/packages/aux-files/linux-libre/5.2-arm64.conf b/gnu/packages/aux-files/linux-libre/5.2-arm64.conf index 4ad652a78f..99ff63354f 100644 --- a/gnu/packages/aux-files/linux-libre/5.2-arm64.conf +++ b/gnu/packages/aux-files/linux-libre/5.2-arm64.conf @@ -1118,28 +1118,38 @@ CONFIG_NF_NAT_MASQUERADE=y CONFIG_NETFILTER_SYNPROXY=m CONFIG_NF_TABLES=m CONFIG_NF_TABLES_SET=m -# CONFIG_NF_TABLES_INET is not set -# CONFIG_NF_TABLES_NETDEV is not set +CONFIG_NF_TABLES_INET=y +CONFIG_NF_TABLES_NETDEV=y CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m +# CONFIG_NFT_FLOW_OFFLOAD is not set CONFIG_NFT_COUNTER=m CONFIG_NFT_CONNLIMIT=m CONFIG_NFT_LOG=m CONFIG_NFT_LIMIT=m CONFIG_NFT_MASQ=m CONFIG_NFT_REDIR=m +CONFIG_NFT_NAT=m CONFIG_NFT_TUNNEL=m CONFIG_NFT_OBJREF=m CONFIG_NFT_QUEUE=m CONFIG_NFT_QUOTA=m CONFIG_NFT_REJECT=m +CONFIG_NFT_REJECT_INET=m CONFIG_NFT_COMPAT=m CONFIG_NFT_HASH=m +CONFIG_NFT_FIB=m +CONFIG_NFT_FIB_INET=m CONFIG_NFT_XFRM=m CONFIG_NFT_SOCKET=m CONFIG_NFT_OSF=m CONFIG_NFT_TPROXY=m -# CONFIG_NF_FLOW_TABLE is not set +CONFIG_NF_DUP_NETDEV=m +CONFIG_NFT_DUP_NETDEV=m +CONFIG_NFT_FWD_NETDEV=m +CONFIG_NFT_FIB_NETDEV=m +CONFIG_NF_FLOW_TABLE_INET=m +CONFIG_NF_FLOW_TABLE=m CONFIG_NETFILTER_XTABLES=m # @@ -1304,8 +1314,12 @@ CONFIG_IP_VS_PE_SIP=m CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_SOCKET_IPV4=m CONFIG_NF_TPROXY_IPV4=m -# CONFIG_NF_TABLES_IPV4 is not set -# CONFIG_NF_TABLES_ARP is not set +CONFIG_NF_TABLES_IPV4=y +CONFIG_NFT_REJECT_IPV4=m +CONFIG_NFT_DUP_IPV4=m +CONFIG_NFT_FIB_IPV4=m +CONFIG_NF_TABLES_ARP=y +CONFIG_NF_FLOW_TABLE_IPV4=m CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m CONFIG_NF_LOG_IPV4=m @@ -1341,7 +1355,11 @@ CONFIG_IP_NF_ARP_MANGLE=m # CONFIG_NF_SOCKET_IPV6=m CONFIG_NF_TPROXY_IPV6=m -# CONFIG_NF_TABLES_IPV6 is not set +CONFIG_NF_TABLES_IPV6=y +CONFIG_NFT_REJECT_IPV6=m +CONFIG_NFT_DUP_IPV6=m +CONFIG_NFT_FIB_IPV6=m +CONFIG_NF_FLOW_TABLE_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m @@ -1355,7 +1373,7 @@ CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m CONFIG_IP6_NF_MATCH_RPFILTER=m CONFIG_IP6_NF_MATCH_RT=m -# CONFIG_IP6_NF_MATCH_SRH is not set +CONFIG_IP6_NF_MATCH_SRH=m CONFIG_IP6_NF_TARGET_HL=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m @@ -1369,7 +1387,9 @@ CONFIG_IP6_NF_TARGET_NPT=m # end of IPv6: Netfilter Configuration CONFIG_NF_DEFRAG_IPV6=m -# CONFIG_NF_TABLES_BRIDGE is not set +CONFIG_NF_TABLES_BRIDGE=y +CONFIG_NFT_BRIDGE_REJECT=m +CONFIG_NF_LOG_BRIDGE=m CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m @@ -8028,9 +8048,9 @@ CONFIG_EXT4_USE_FOR_EXT2=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set -CONFIG_JBD2=m +CONFIG_JBD2=y # CONFIG_JBD2_DEBUG is not set -CONFIG_FS_MBCACHE=m +CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set @@ -8687,7 +8707,7 @@ CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_ARCH_HAS_FAST_MULTIPLIER=y # CONFIG_INDIRECT_PIO is not set CONFIG_CRC_CCITT=m -CONFIG_CRC16=m +CONFIG_CRC16=y CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=m CONFIG_CRC32=y diff --git a/gnu/packages/aux-files/linux-libre/5.2-i686.conf b/gnu/packages/aux-files/linux-libre/5.2-i686.conf index 0a211f6eb9..8813a70d3d 100644 --- a/gnu/packages/aux-files/linux-libre/5.2-i686.conf +++ b/gnu/packages/aux-files/linux-libre/5.2-i686.conf @@ -1147,8 +1147,8 @@ CONFIG_NF_NAT_MASQUERADE=y CONFIG_NETFILTER_SYNPROXY=m CONFIG_NF_TABLES=m CONFIG_NF_TABLES_SET=m -# CONFIG_NF_TABLES_INET is not set -# CONFIG_NF_TABLES_NETDEV is not set +CONFIG_NF_TABLES_INET=y +CONFIG_NF_TABLES_NETDEV=y CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m CONFIG_NFT_FLOW_OFFLOAD=m @@ -1158,17 +1158,25 @@ CONFIG_NFT_LOG=m CONFIG_NFT_LIMIT=m CONFIG_NFT_MASQ=m CONFIG_NFT_REDIR=m +CONFIG_NFT_NAT=m CONFIG_NFT_TUNNEL=m CONFIG_NFT_OBJREF=m CONFIG_NFT_QUEUE=m CONFIG_NFT_QUOTA=m CONFIG_NFT_REJECT=m +CONFIG_NFT_REJECT_INET=m CONFIG_NFT_COMPAT=m CONFIG_NFT_HASH=m +CONFIG_NFT_FIB=m +CONFIG_NFT_FIB_INET=m CONFIG_NFT_XFRM=m CONFIG_NFT_SOCKET=m CONFIG_NFT_OSF=m CONFIG_NFT_TPROXY=m +CONFIG_NF_DUP_NETDEV=m +CONFIG_NFT_DUP_NETDEV=m +CONFIG_NFT_FWD_NETDEV=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NF_FLOW_TABLE_INET=m CONFIG_NF_FLOW_TABLE=m CONFIG_NETFILTER_XTABLES=m @@ -1335,8 +1343,11 @@ CONFIG_IP_VS_PE_SIP=m CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_SOCKET_IPV4=m CONFIG_NF_TPROXY_IPV4=m -# CONFIG_NF_TABLES_IPV4 is not set -# CONFIG_NF_TABLES_ARP is not set +CONFIG_NF_TABLES_IPV4=y +CONFIG_NFT_REJECT_IPV4=m +CONFIG_NFT_DUP_IPV4=m +CONFIG_NFT_FIB_IPV4=m +CONFIG_NF_TABLES_ARP=y CONFIG_NF_FLOW_TABLE_IPV4=m CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m @@ -1373,7 +1384,10 @@ CONFIG_IP_NF_ARP_MANGLE=m # CONFIG_NF_SOCKET_IPV6=m CONFIG_NF_TPROXY_IPV6=m -# CONFIG_NF_TABLES_IPV6 is not set +CONFIG_NF_TABLES_IPV6=y +CONFIG_NFT_REJECT_IPV6=m +CONFIG_NFT_DUP_IPV6=m +CONFIG_NFT_FIB_IPV6=m CONFIG_NF_FLOW_TABLE_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m @@ -1409,7 +1423,9 @@ CONFIG_NF_DEFRAG_IPV6=m CONFIG_DECNET_NF_GRABULATOR=m # end of DECnet: Netfilter Configuration -# CONFIG_NF_TABLES_BRIDGE is not set +CONFIG_NF_TABLES_BRIDGE=y +CONFIG_NFT_BRIDGE_REJECT=m +CONFIG_NF_LOG_BRIDGE=m CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m diff --git a/gnu/packages/aux-files/linux-libre/5.2-x86_64.conf b/gnu/packages/aux-files/linux-libre/5.2-x86_64.conf index 51d4e93372..e1d2c93f9a 100644 --- a/gnu/packages/aux-files/linux-libre/5.2-x86_64.conf +++ b/gnu/packages/aux-files/linux-libre/5.2-x86_64.conf @@ -1168,8 +1168,8 @@ CONFIG_NF_NAT_MASQUERADE=y CONFIG_NETFILTER_SYNPROXY=m CONFIG_NF_TABLES=m CONFIG_NF_TABLES_SET=m -# CONFIG_NF_TABLES_INET is not set -# CONFIG_NF_TABLES_NETDEV is not set +CONFIG_NF_TABLES_INET=y +CONFIG_NF_TABLES_NETDEV=y CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m CONFIG_NFT_FLOW_OFFLOAD=m @@ -1179,17 +1179,25 @@ CONFIG_NFT_LOG=m CONFIG_NFT_LIMIT=m CONFIG_NFT_MASQ=m CONFIG_NFT_REDIR=m +CONFIG_NFT_NAT=m CONFIG_NFT_TUNNEL=m CONFIG_NFT_OBJREF=m CONFIG_NFT_QUEUE=m CONFIG_NFT_QUOTA=m CONFIG_NFT_REJECT=m +CONFIG_NFT_REJECT_INET=m CONFIG_NFT_COMPAT=m CONFIG_NFT_HASH=m +CONFIG_NFT_FIB=m +CONFIG_NFT_FIB_INET=m CONFIG_NFT_XFRM=m CONFIG_NFT_SOCKET=m CONFIG_NFT_OSF=m CONFIG_NFT_TPROXY=m +CONFIG_NF_DUP_NETDEV=m +CONFIG_NFT_DUP_NETDEV=m +CONFIG_NFT_FWD_NETDEV=m +CONFIG_NFT_FIB_NETDEV=m CONFIG_NF_FLOW_TABLE_INET=m CONFIG_NF_FLOW_TABLE=m CONFIG_NETFILTER_XTABLES=m @@ -1356,8 +1364,11 @@ CONFIG_IP_VS_PE_SIP=m CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_SOCKET_IPV4=m CONFIG_NF_TPROXY_IPV4=m -# CONFIG_NF_TABLES_IPV4 is not set -# CONFIG_NF_TABLES_ARP is not set +CONFIG_NF_TABLES_IPV4=y +CONFIG_NFT_REJECT_IPV4=m +CONFIG_NFT_DUP_IPV4=m +CONFIG_NFT_FIB_IPV4=m +CONFIG_NF_TABLES_ARP=y CONFIG_NF_FLOW_TABLE_IPV4=m CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m @@ -1394,7 +1405,10 @@ CONFIG_IP_NF_ARP_MANGLE=m # CONFIG_NF_SOCKET_IPV6=m CONFIG_NF_TPROXY_IPV6=m -# CONFIG_NF_TABLES_IPV6 is not set +CONFIG_NF_TABLES_IPV6=y +CONFIG_NFT_REJECT_IPV6=m +CONFIG_NFT_DUP_IPV6=m +CONFIG_NFT_FIB_IPV6=m CONFIG_NF_FLOW_TABLE_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m @@ -1430,7 +1444,9 @@ CONFIG_NF_DEFRAG_IPV6=m CONFIG_DECNET_NF_GRABULATOR=m # end of DECnet: Netfilter Configuration -# CONFIG_NF_TABLES_BRIDGE is not set +CONFIG_NF_TABLES_BRIDGE=y +CONFIG_NFT_BRIDGE_REJECT=m +CONFIG_NF_LOG_BRIDGE=m CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m From 3c4f5ad7f403cc5ff0524d62a8612b0decaeaeb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Fri, 13 Sep 2019 17:53:59 +0800 Subject: [PATCH 055/227] services: Add nftables-service-type. * gnu/services/networking.scm (%default-nftables-ruleset): New variable. (): New record type. (nftables-shepherd-service): New procedure. (nftables-service-type): New service type. * doc/guix.texi (Networking Services): Document it. --- doc/guix.texi | 27 ++++++++++++ gnu/services/networking.scm | 82 ++++++++++++++++++++++++++++++++++++- 2 files changed, 108 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 55935b3794..666ecb5b47 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -13041,6 +13041,33 @@ objects}). @end table @end deftp +@cindex nftables +@defvr {Scheme Variable} nftables-service-type +This is the service type to set up a nftables configuration. nftables is a +netfilter project that aims to replace the existing iptables, ip6tables, +arptables and ebtables framework. It provides a new packet filtering +framework, a new user-space utility @command{nft}, and a compatibility layer +for iptables. This service comes with a default ruleset +@code{%default-nftables-ruleset} that rejecting all incomming connections +except those to the ssh port 22. To use it, simply write: + +@lisp +(service nftables-service-type) +@end lisp +@end defvr + +@deftp {Data Type} nftables-configuration +The data type representing the configuration of nftables. + +@table @asis +@item @code{package} (default: @code{nftables}) +The nftables package that provides @command{nft}. +@item @code{ruleset} (default: @code{%default-nftables-ruleset}) +The nftables ruleset to use. This may be any ``file-like'' object +(@pxref{G-Expressions, file-like objects}). +@end table +@end deftp + @cindex NTP (Network Time Protocol), service @cindex ntpd, service for the Network Time Protocol daemon @cindex real time clock diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index c775242f99..dd63009116 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2018 Arun Isaac ;;; Copyright © 2019 Florian Pelz ;;; Copyright © 2019 Maxim Cournoyer +;;; Copyright © 2019 Sou Bunnbu ;;; ;;; This file is part of GNU Guix. ;;; @@ -144,7 +145,14 @@ iptables-configuration-iptables iptables-configuration-ipv4-rules iptables-configuration-ipv6-rules - iptables-service-type)) + iptables-service-type + + nftables-service-type + nftables-configuration + nftables-configuration? + nftables-configuration-package + nftables-configuration-ruleset + %default-nftables-ruleset)) ;;; Commentary: ;;; @@ -1415,4 +1423,76 @@ COMMIT (list (service-extension shepherd-root-service-type (compose list iptables-shepherd-service)))))) +;;; +;;; nftables +;;; + +(define %default-nftables-ruleset + (plain-file "nftables.conf" + "# A simple and safe firewall +table inet filter { + chain input { + type filter hook input priority 0; policy drop; + + # early drop of invalid connections + ct state invalid drop + + # allow established/related connections + ct state { established, related } accept + + # allow from loopback + iifname lo accept + + # allow icmp + ip protocol icmp accept + ip6 nexthdr icmpv6 accept + + # allow ssh + tcp dport ssh accept + + # reject everything else + reject with icmpx type port-unreachable + } + chain forward { + type filter hook forward priority 0; policy drop; + } + chain output { + type filter hook output priority 0; policy accept; + } +} +")) + +(define-record-type* + nftables-configuration + make-nftables-configuration + nftables-configuration? + (package nftables-configuration-package + (default nftables)) + (ruleset nftables-configuration-ruleset ; file-like object + (default %default-nftables-ruleset))) + +(define nftables-shepherd-service + (match-lambda + (($ package ruleset) + (let ((nft (file-append package "/sbin/nft"))) + (shepherd-service + (documentation "Packet filtering and classification") + (provision '(nftables)) + (start #~(lambda _ + (invoke #$nft "--file" #$ruleset))) + (stop #~(lambda _ + (invoke #$nft "flush" "ruleset")))))))) + +(define nftables-service-type + (service-type + (name 'nftables) + (description + "Run @command{nft}, setting up the specified ruleset.") + (extensions + (list (service-extension shepherd-root-service-type + (compose list nftables-shepherd-service)) + (service-extension profile-service-type + (compose list nftables-configuration-package)))) + (default-value (nftables-configuration)))) + ;;; networking.scm ends here From f9c0400392843540a87985a67ffb9fb6e4dbc2fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 Sep 2019 14:55:44 +0200 Subject: [PATCH 056/227] guix package: "guix package -f FILE" ensures FILE returns a package. * guix/scripts/package.scm (options->installable): Add clause for 'install option with a non-package object. * tests/guix-package.sh: Add test. --- guix/scripts/package.scm | 6 +++++- tests/guix-package.sh | 11 +++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index a43c96516f..21737f43da 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -607,7 +607,11 @@ and upgrades." (let-values (((package output) (specification->package+output spec))) (package->manifest-entry* package output)))) - (_ #f)) + (('install . obj) + (leave (G_ "cannot install non-package object: ~s~%") + obj)) + (_ + #f)) opts)) (fold manifest-transaction-install-entry diff --git a/tests/guix-package.sh b/tests/guix-package.sh index 79d6ec65e4..79e89286f1 100644 --- a/tests/guix-package.sh +++ b/tests/guix-package.sh @@ -331,6 +331,17 @@ cat > "$module_dir/package.scm"< "$module_dir/package.scm"< Date: Wed, 18 Sep 2019 15:11:40 +0200 Subject: [PATCH 057/227] linux-container: 'eval/container' correctly passes -L and -C flags. This fixes a type error. * gnu/system/linux-container.scm (eval/container): Use 'append-map', not 'map'. * tests/containers.scm ("eval/container, non-empty load path"): New test. --- gnu/system/linux-container.scm | 12 +++++++----- tests/containers.scm | 27 +++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm index c6124cd223..2ab679ff3f 100644 --- a/gnu/system/linux-container.scm +++ b/gnu/system/linux-container.scm @@ -257,11 +257,13 @@ effects." (lowered-gexp-guile lowered)) "/bin/guile") "guile" - (append (map (lambda (directory) `("-L" ,directory)) - (lowered-gexp-load-path lowered)) - (map (lambda (directory) `("-C" ,directory)) - (lowered-gexp-load-compiled-path - lowered)) + (append (append-map (lambda (directory) + `("-L" ,directory)) + (lowered-gexp-load-path lowered)) + (append-map (lambda (directory) + `("-C" ,directory)) + (lowered-gexp-load-compiled-path + lowered)) (list "-c" (object->string (lowered-gexp-sexp lowered)))))))))))) diff --git a/tests/containers.scm b/tests/containers.scm index c6c738f234..01fbcbb45a 100644 --- a/tests/containers.scm +++ b/tests/containers.scm @@ -269,4 +269,31 @@ (lset= string=? (cons* "." ".." (map basename reqs)) (pk (call-with-input-file result read)))))))))) +(test-assert "eval/container, non-empty load path" + (call-with-temporary-directory + (lambda (directory) + (define store + (open-connection-for-tests)) + (define result + (string-append directory "/r")) + (define requisites* + (store-lift requisites)) + + (mkdir result) + (run-with-store store + (mlet %store-monad ((status (eval/container + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (mkdir-p "/result/a/b/c"))) + #:mappings + (list (file-system-mapping + (source result) + (target "/result") + (writable? #t)))))) + (close-connection store) + (return (and (zero? status) + (file-is-directory? + (string-append result "/a/b/c"))))))))) + (test-end) From af632c6b70feaf83c534fa282904b5fdf6f6f919 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 Sep 2019 21:44:15 +0200 Subject: [PATCH 058/227] gnu: nlohmann-json-cpp: Update to 3.7.0. * gnu/packages/serialization.scm (nlohmann-json-cpp): Update to 3.7.0. [source]: Use 'git-fetch'. [native-inputs, arguments]: New fields. --- gnu/packages/serialization.scm | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/gnu/packages/serialization.scm b/gnu/packages/serialization.scm index f0ae0d2cab..9fefa5a0c1 100644 --- a/gnu/packages/serialization.scm +++ b/gnu/packages/serialization.scm @@ -42,6 +42,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages databases) #:use-module (gnu packages documentation) + #:use-module (gnu packages gcc) #:use-module (gnu packages lua) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) @@ -394,17 +395,29 @@ it is comparable to protobuf.") (define-public nlohmann-json-cpp (package (name "nlohmann-json-cpp") - (version "2.1.1") - (source - (origin - (method url-fetch) - (uri (string-append "https://github.com/nlohmann/json/" - "archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "0lrh6cjd643c7kmvmwafbgq7dqj3b778483gjhjbvp6rc6z5xf2r")))) + (version "3.7.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nlohmann/json.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0v7xih4zjixxxfvkfbs7a8j9qcvpwlsv4vrkbyns3hc7b44nb8ap")))) (build-system cmake-build-system) + (native-inputs + ;; Integer overflow tests like those from + ;; fail when building with + ;; gcc@5. Thus, build with a newer GCC. + `(("gcc" ,gcc-9))) + (arguments + '(#:phases (modify-phases %standard-phases + (add-before 'build 'unset-path-variables + (lambda _ + (unsetenv "C_INCLUDE_PATH") + (unsetenv "CPLUS_INCLUDE_PATH") + #t))))) (home-page "https://nlohmann.github.io/json/") (synopsis "JSON library for C++") (description From 2cde4a967d162dc46cc1f6967ed21b196c14c338 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 Sep 2019 21:52:18 +0200 Subject: [PATCH 059/227] gnu: Add python-jupyter-protocol. * gnu/packages/jupyter.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/jupyter.scm | 57 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 gnu/packages/jupyter.scm diff --git a/gnu/local.mk b/gnu/local.mk index 3f32b9cbf2..1aaab0ebf0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -270,6 +270,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/jrnl.scm \ %D%/packages/jose.scm \ %D%/packages/julia.scm \ + %D%/packages/jupyter.scm \ %D%/packages/kawa.scm \ %D%/packages/kde.scm \ %D%/packages/kde-frameworks.scm \ diff --git a/gnu/packages/jupyter.scm b/gnu/packages/jupyter.scm new file mode 100644 index 0000000000..c7c1318808 --- /dev/null +++ b/gnu/packages/jupyter.scm @@ -0,0 +1,57 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages jupyter) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system python) + #:use-module (gnu packages check) + #:use-module (gnu packages python) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages time)) + +(define-public python-jupyter-protocol + (package + (name "python-jupyter-protocol") + (version "0.1.1") + (source (origin + (method url-fetch) + (uri (pypi-uri "jupyter_protocol" version)) + (sha256 + (base32 + "1bk3as5yw9y5nmq6l15nr46aby34phmvsx9kxgqnm5pd5q2b5h57")))) + (build-system python-build-system) + (propagated-inputs + `(("python-dateutil" ,python-dateutil) + ("python-jupyter-core" ,python-jupyter-core) + ("python-pyzmq" ,python-pyzmq) + ("python-traitlets" ,python-traitlets))) + (native-inputs + `(("python-ipykernel" ,python-ipykernel) + ("python-ipython" ,python-ipython) + ("python-mock" ,python-mock) + ("python-pytest" ,python-pytest))) + (home-page "https://jupyter.org") + (synopsis "Jupyter protocol implementation") + (description + "This Python library is an experimental implementation of the +@uref{https://jupyter-client.readthedocs.io/en/latest/messaging.html, Jupyter +protocol} to be used by both clients and kernels.") + (license license:bsd-3) + (properties '((upstream-name . "jupyter_protocol"))))) From 2835fb07bacd5e99e99120eb9f3b7004a872f574 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 Sep 2019 21:53:57 +0200 Subject: [PATCH 060/227] gnu: Add python-jupyter-kernel-mgmt. * gnu/packages/jupyter.scm (python-jupyter-kernel-mgmt): New variable. --- gnu/packages/jupyter.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/jupyter.scm b/gnu/packages/jupyter.scm index c7c1318808..bcea43f11c 100644 --- a/gnu/packages/jupyter.scm +++ b/gnu/packages/jupyter.scm @@ -55,3 +55,34 @@ protocol} to be used by both clients and kernels.") (license license:bsd-3) (properties '((upstream-name . "jupyter_protocol"))))) + +(define-public python-jupyter-kernel-mgmt + (package + (name "python-jupyter-kernel-mgmt") + (version "0.4.0") + (source (origin + (method url-fetch) + (uri (pypi-uri "jupyter_kernel_mgmt" version)) + (sha256 + (base32 + "0i7a78dn89ca8h0a42giyxwcmk6y4wrdr7q8h2ax9vybb84c795q")))) + (build-system python-build-system) + (propagated-inputs + `(("python-dateutil" ,python-dateutil) + ("python-entrypoints" ,python-entrypoints) + ("python-jupyter-core" ,python-jupyter-core) + ("python-jupyter-protocol" ,python-jupyter-protocol) + ("python-pyzmq" ,python-pyzmq) + ("python-traitlets" ,python-traitlets))) + (native-inputs + `(("python-ipykernel" ,python-ipykernel) + ("python-ipython" ,python-ipython) + ("python-mock" ,python-mock) + ("python-pytest" ,python-pytest))) + (home-page "https://jupyter.org") + (synopsis "Discover, launch, and communicate with Jupyter kernels") + (description + "This package is an experimental refactoring of the machinery for +launching and using Jupyter kernels.") + (license license:bsd-3) + (properties '((upstream-name . "jupyter_kernel_mgmt"))))) From a52d8cc6c79941de3380ed763d46b38404094758 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 Sep 2019 21:58:28 +0200 Subject: [PATCH 061/227] gnu: Add python-jupyter-kernel-test. * gnu/packages/jupyter.scm (python-jupyter-kernel-test): New file. --- gnu/packages/jupyter.scm | 47 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/jupyter.scm b/gnu/packages/jupyter.scm index bcea43f11c..a7ca0a9913 100644 --- a/gnu/packages/jupyter.scm +++ b/gnu/packages/jupyter.scm @@ -20,6 +20,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system python) #:use-module (gnu packages check) #:use-module (gnu packages python) @@ -86,3 +87,49 @@ protocol} to be used by both clients and kernels.") launching and using Jupyter kernels.") (license license:bsd-3) (properties '((upstream-name . "jupyter_kernel_mgmt"))))) + +(define-public python-jupyter-kernel-test + (package + (name "python-jupyter-kernel-test") + (version "0.3") + (home-page "https://github.com/jupyter/jupyter_kernel_test") + (source (origin + ;; PyPI has a ".whl" file but not a proper source release. + ;; Thus, fetch code from Git. + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "00iy74i4i8is6axb9vlsm0b9wxkvyyxnbl8r0i4gaj3xd788jm83")))) + (build-system python-build-system) + (arguments + ;; The repo doesn't contain a "setup.py" file so install files manually. + '(#:phases (modify-phases %standard-phases + (delete 'build) + (delete 'check) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (version ((@@ (guix build python-build-system) + get-python-version) + (assoc-ref inputs "python"))) + (pydir (string-append out "/lib/python" + version "/site-packages/" + "jupyter_kernel_test"))) + (for-each (lambda (file) + (install-file file pydir)) + (find-files "jupyter_kernel_test" + "\\.py$")) + #t)))))) + (propagated-inputs + `(("python-jupyter-kernel-mgmt" ,python-jupyter-kernel-mgmt) + ("python-jupyter-protocol" ,python-jupyter-protocol) + ("python-jsonschema" ,python-jsonschema))) + (synopsis "Test Jupyter kernels") + (description + "@code{jupyter_kernel_test} is a tool for testing Jupyter kernels. It +tests kernels for successful code execution and conformance with the +@uref{https://jupyter-client.readthedocs.io/en/latest/messaging.html, Jupyter +Messaging Protocol}.") + (license license:bsd-3))) From 4bb7d14bbe959c884dfe3a370927211b0593e6d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 Sep 2019 22:02:10 +0200 Subject: [PATCH 062/227] gnu: Add Xeus. * gnu/packages/jupyter.scm (xeus): New variable. --- gnu/packages/jupyter.scm | 56 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/gnu/packages/jupyter.scm b/gnu/packages/jupyter.scm index a7ca0a9913..7ec987b2a4 100644 --- a/gnu/packages/jupyter.scm +++ b/gnu/packages/jupyter.scm @@ -21,11 +21,18 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix build-system cmake) #:use-module (guix build-system python) #:use-module (gnu packages check) + #:use-module (gnu packages cpp) + #:use-module (gnu packages linux) + #:use-module (gnu packages networking) + #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages python-xyz) - #:use-module (gnu packages time)) + #:use-module (gnu packages serialization) + #:use-module (gnu packages time) + #:use-module (gnu packages tls)) (define-public python-jupyter-protocol (package @@ -133,3 +140,50 @@ tests kernels for successful code execution and conformance with the @uref{https://jupyter-client.readthedocs.io/en/latest/messaging.html, Jupyter Messaging Protocol}.") (license license:bsd-3))) + +(define-public xeus + (package + (name "xeus") + (version "0.23.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/QuantStack/xeus.git") + (commit version))) + (sha256 + (base32 + "1m1b6z1538r7mv2ggn7bdbd9570ja7cadplq64zl8rgl2c8vdi2a")) + (file-name (git-file-name name version)))) + (build-system cmake-build-system) + (arguments + '(#:configure-flags '("-DBUILD_STATIC_LIBS=OFF" + "-DDISABLE_ARCH_NATIVE=ON" ;no '-march=native' + "-DBUILD_TESTING=ON"))) + (native-inputs + `(("pkg-config" ,pkg-config) + + ;; The following inputs are used by the test suite. + ("googletest" ,googletest) + ("python-pytest" ,python-pytest) + ("python" ,python-3) + ("python-jupyter-kernel-test" ,python-jupyter-kernel-test) + ("python-jupyter-client" ,python-jupyter-client))) + (inputs + `(("xtl" ,xtl) + ("nlohmann-json-cpp" ,nlohmann-json-cpp) + ("cppzmq" ,cppzmq) + ("zeromq" ,zeromq) + ("openssl" ,openssl) + ("util-linux" ,util-linux))) ;libuuid + (home-page "https://quantstack.net/xeus") + (synopsis "C++ implementation of the Jupyter Kernel protocol") + (description + "@code{xeus} is a library meant to facilitate the implementation of +kernels for Jupyter. It takes the burden of implementing the Jupyter Kernel +protocol so developers can focus on implementing the interpreter part of the +kernel. + +Several Jupyter kernels are built upon @code{xeus}, such as @code{xeus-cling}, +a kernel for the C++ programming language, and @code{xeus-python}, an +alternative Python kernel for Jupyter.") + (license license:bsd-3))) From d0980ef41859d1f0e4deb98a7f1d6f4ab2c9d4c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 Sep 2019 22:46:21 +0200 Subject: [PATCH 063/227] doc: Mention the "repository name" for 'guix pack -f docker'. This is a followup to 0074844366381e3056d09492b8b437836c7adb61. * doc/guix.texi (Invoking guix pack): Mention the repository name. --- doc/guix.texi | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index 666ecb5b47..da62194a16 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4835,7 +4835,9 @@ specified binaries and symlinks. @item docker This produces a tarball that follows the @uref{https://github.com/docker/docker/blob/master/image/spec/v1.2.md, -Docker Image Specification}. +Docker Image Specification}. The ``repository name'' as it appears in +the output of the @command{docker images} command is computed from +package names passed on the command line or in the manifest file. @item squashfs This produces a SquashFS image containing all the specified binaries and From 45fbc15a48d04cf9deaa5d40658846426cc94845 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 Sep 2019 22:53:17 +0200 Subject: [PATCH 064/227] import: pypi: Refresher recognizes pythonhosted.org source URLs. This is a followup to a5376200541abf8245973e601be246bf65b8b6c7. Since that commit, 'pypi-package?' would return false for most Python packages, and thus "guix refresh python-xxx" would report that no updaters apply to the package. * guix/import/pypi.scm (pypi-package?)[pypi-url?]: Recognize "files.pythonhosted.org" URLs. --- guix/import/pypi.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index 9b3d80a02e..354cae9c4c 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -437,7 +437,8 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE." (define (pypi-url? url) (or (string-prefix? "https://pypi.org/" url) (string-prefix? "https://pypi.python.org/" url) - (string-prefix? "https://pypi.org/packages" url))) + (string-prefix? "https://pypi.org/packages" url) + (string-prefix? "https://files.pythonhosted.org/packages" url))) (let ((source-url (and=> (package-source package) origin-uri)) (fetch-method (and=> (package-source package) origin-method))) From ee25048e51dd45ad91a1ad4b0f25f4013843c52b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 18 Sep 2019 22:59:13 +0200 Subject: [PATCH 065/227] pull: Work around Ubuntu's 'sudo'. Partly fixes . Reported by Julien Lepiller . * guix/scripts/pull.scm (ensure-default-profile): Do not call 'migrate-generations' when "SUDO_USER" is set. --- guix/scripts/pull.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 54bbaddf30..4b03cea2e3 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -293,8 +293,15 @@ true, display what would be built without actually building it." ;; In 0.15.0+ we'd create ~/.config/guix/current-[0-9]*-link symlinks. Move ;; them to %PROFILE-DIRECTORY. - (unless (string=? %profile-directory - (dirname (canonicalize-profile %user-profile-directory))) + ;; + ;; XXX: Ubuntu's 'sudo' preserves $HOME by default, and thus the second + ;; condition below is always false when one runs "sudo guix pull". As a + ;; workaround, skip this code when $SUDO_USER is set. See + ;; . + (unless (or (getenv "SUDO_USER") + (string=? %profile-directory + (dirname + (canonicalize-profile %user-profile-directory)))) (migrate-generations %user-profile-directory %profile-directory)) ;; Make sure ~/.config/guix/current points to /var/guix/profiles/…. From da551107129d22dfb2a4278a55b702a7340e7f51 Mon Sep 17 00:00:00 2001 From: Konrad Hinsen Date: Wed, 18 Sep 2019 09:52:18 +0200 Subject: [PATCH 066/227] scripts: pull: Add options for generation management MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/scripts/pull.scm (%options) Add --roll-back, --switch-generation, --delete-generations (process-generation-change): New function (guix-pull): Execute generation management operations * doc/guix.texi: Document the generation management operations Signed-off-by: Ludovic Courtès --- doc/guix.texi | 47 +++++++++++++++++++++++++++++++++++++++++-- guix/scripts/pull.scm | 41 ++++++++++++++++++++++++++++++++++++- 2 files changed, 85 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index da62194a16..0ed59072c9 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3673,11 +3673,20 @@ Generation 3 Jun 13 2018 23:31:07 (current) @xref{Invoking guix describe, @command{guix describe}}, for other ways to describe the current status of Guix. -This @code{~/.config/guix/current} profile works like any other profile -created by @command{guix package} (@pxref{Invoking guix package}). That +This @code{~/.config/guix/current} profile works exactly like the profiles +created by @command{guix package} (@pxref{Invoking guix package}). That is, you can list generations, roll back to the previous generation---i.e., the previous Guix---and so on: +@example +$ guix pull --roll-back +switched from generation 3 to 2 +$ guix pull --delete-generations=1 +deleting /var/guix/profiles/per-user/charlie/current-guix-1-link +@end example + +You can also use @command{guix package} (@pxref{Invoking guix package}) +to manage the profile by naming it explicitly: @example $ guix package -p ~/.config/guix/current --roll-back switched from generation 3 to 2 @@ -3724,6 +3733,40 @@ is provided, the subset of generations that match @var{pattern}. The syntax of @var{pattern} is the same as with @code{guix package --list-generations} (@pxref{Invoking guix package}). +@item --roll-back +@cindex rolling back +@cindex undoing transactions +@cindex transactions, undoing +Roll back to the previous @dfn{generation} of @file{~/.config/guix/current}---i.e., +undo the last transaction. + +@item --switch-generation=@var{pattern} +@itemx -S @var{pattern} +@cindex generations +Switch to a particular generation defined by @var{pattern}. + +@var{pattern} may be either a generation number or a number prefixed +with ``+'' or ``-''. The latter means: move forward/backward by a +specified number of generations. For example, if you want to return to +the latest generation after @code{--roll-back}, use +@code{--switch-generation=+1}. + +@item --delete-generations[=@var{pattern}] +@itemx -d [@var{pattern}] +When @var{pattern} is omitted, delete all generations except the current +one. + +This command accepts the same patterns as @option{--list-generations}. +When @var{pattern} is specified, delete the matching generations. When +@var{pattern} specifies a duration, generations @emph{older} than the +specified duration match. For instance, @code{--delete-generations=1m} +deletes generations that are more than one month old. + +If the current generation matches, it is @emph{not} deleted. + +Note that deleting generations prevents rolling back to them. +Consequently, this command must be used with care. + @xref{Invoking guix describe}, for a way to display information about the current generation only. diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 4b03cea2e3..c9835cef34 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -38,7 +38,8 @@ #:use-module (guix git) #:use-module (git) #:use-module (gnu packages) - #:use-module ((guix scripts package) #:select (build-and-use-profile)) + #:use-module ((guix scripts package) #:select (build-and-use-profile + delete-matching-generations)) #:use-module ((gnu packages base) #:select (canonical-package)) #:use-module (gnu packages guile) #:use-module ((gnu packages bootstrap) @@ -91,6 +92,14 @@ Download and deploy the latest version of Guix.\n")) (display (G_ " -l, --list-generations[=PATTERN] list generations matching PATTERN")) + (display (G_ " + --roll-back roll back to the previous generation")) + (display (G_ " + -d, --delete-generations[=PATTERN] + delete generations matching PATTERN")) + (display (G_ " + -S, --switch-generation=PATTERN + switch to a generation matching PATTERN")) (display (G_ " -p, --profile=PROFILE use PROFILE instead of ~/.config/guix/current")) (display (G_ " @@ -120,6 +129,18 @@ Download and deploy the latest version of Guix.\n")) (lambda (opt name arg result) (cons `(query list-generations ,arg) result))) + (option '("roll-back") #f #f + (lambda (opt name arg result) + (cons '(generation roll-back) + result))) + (option '(#\S "switch-generation") #t #f + (lambda (opt name arg result) + (cons `(generation switch ,arg) + result))) + (option '(#\d "delete-generations") #f #t + (lambda (opt name arg result) + (cons `(generation delete ,arg) + result))) (option '(#\N "news") #f #f (lambda (opt name arg result) (cons '(query display-news) result))) @@ -505,6 +526,22 @@ list of package changes."))))) (display-profile-news profile #:current-is-newer? #t)))) +(define (process-generation-change opts profile) + "Process a request to change the current generation (roll-back, switch, delete)." + (unless (assoc-ref opts 'dry-run?) + (match (assoc-ref opts 'generation) + (('roll-back) + (with-store store + (roll-back* store profile))) + (('switch pattern) + (let ((number (relative-generation-spec->number profile pattern))) + (if number + (switch-to-generation* profile number) + (leave (G_ "cannot switch to generation '~a'~%") pattern)))) + (('delete pattern) + (with-store store + (delete-matching-generations store profile pattern)))))) + (define (channel-list opts) "Return the list of channels to use. If OPTS specify a channel file, channels are read from there; otherwise, if ~/.config/guix/channels.scm @@ -572,6 +609,8 @@ Use '~/.config/guix/channels.scm' instead.")) (profile (or (assoc-ref opts 'profile) %current-profile))) (cond ((assoc-ref opts 'query) (process-query opts profile)) + ((assoc-ref opts 'generation) + (process-generation-change opts profile)) (else (with-store store (ensure-default-profile) From b48d77fcf66a7fd41ea281afdfb9a56794a0083e Mon Sep 17 00:00:00 2001 From: "Alejandro \"HiPhish\" Sanchez" Date: Wed, 18 Sep 2019 21:22:57 +0200 Subject: [PATCH 067/227] gnu: libvterm: Update to 1.1.0. * gnu/packages/terminals.scm (libvterm): Update to 1.1.0. [arguments]: Enable tests. Signed-off-by: Ricardo Wurmus --- gnu/packages/terminals.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index 98ed77289a..f902000cae 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -460,7 +460,7 @@ should be thread-safe.") (define-public libvterm (package (name "libvterm") - (version "0.1") + (version "0.1.1") (source (origin (method url-fetch) @@ -468,13 +468,12 @@ should be thread-safe.") "libvterm-" version ".tar.gz")) (sha256 (base32 - "1pcxjhvdwhr2f3lyzf2rv1vp3l62bgkjm1ybhj82qf8yly7ca6g4")))) + "1n5maylann2anfifjy576vzyar9q5m1kzpyiz2hca2pacxy8xf4v")))) (build-system gnu-build-system) (arguments `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:tests? #f ; XXX: some tests fail in this release #:test-target "test" #:phases (modify-phases %standard-phases From ded2dab3d8d31b493233f09dab9edb031409113f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 18 Sep 2019 23:59:01 +0200 Subject: [PATCH 068/227] gnu: bind: Update to 9.14.6 [fixes CVE-2019-6471]. * gnu/packages/dns.scm (isc-bind): Update to 9.14.6. --- gnu/packages/dns.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dns.scm b/gnu/packages/dns.scm index 8b8622813b..5f3686347d 100644 --- a/gnu/packages/dns.scm +++ b/gnu/packages/dns.scm @@ -109,7 +109,7 @@ and BOOTP/TFTP for network booting of diskless machines.") (define-public isc-bind (package (name "bind") - (version "9.14.5") + (version "9.14.6") (source (origin (method url-fetch) (uri (string-append @@ -117,7 +117,7 @@ and BOOTP/TFTP for network booting of diskless machines.") "/bind-" version ".tar.gz")) (sha256 (base32 - "0ic0k0kpavwnbyf10rwx6yypxg66f65fprwc0dbmp61xp0n6gl0j")))) + "1zpd47ckn5lf4qbscfkj7krngwn2gwsp961v5401h3lhxm0a0rw9")))) (build-system gnu-build-system) (outputs `("out" "utils")) (inputs From f8853858b8a3532229ea637b0829dcd8169faa19 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 19 Sep 2019 00:01:53 +0200 Subject: [PATCH 069/227] gnu: isc-dhcp: Update bundled BIND to 9.11.11 [fixes CVE-2019-6471]. * gnu/packages/admin.scm (isc-dhcp)[bind-patch-version]: Update to 11. [inputs]: Update bind-source-tarball hash. --- gnu/packages/admin.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 2e072deed7..645c2ef5d5 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -684,7 +684,7 @@ connection alive.") (define-public isc-dhcp (let* ((bind-major-version "9") (bind-minor-version "11") - (bind-patch-version "10") + (bind-patch-version "11") (bind-release-type "") ; for patch release, use "-P" (bind-release-version "") ; for patch release, e.g. "6" (bind-version (string-append bind-major-version @@ -825,7 +825,7 @@ connection alive.") "/bind-" bind-version ".tar.gz")) (sha256 (base32 - "1hvhdaar9swh5087kzkbmav1nbn19rxh0m60x0d7gri0v8689fxj")))) + "0swavslyli3vcrkcm2ip11s6p58g3k7r4gjs2b899r25cqrk0lk1")))) ;; When cross-compiling, we need the cross Coreutils and sed. ;; Otherwise just use those from %FINAL-INPUTS. From 52211add0b125be7e8a00bea2b3b030286109022 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Sun, 8 Sep 2019 14:36:33 -0700 Subject: [PATCH 070/227] gnu: Move diffoscope and trydiffoscope to new diffoscope.scm. * gnu/packages/package-management (diffoscope): Remove variable. (trydiffoscope): Remove variable. Update copyright information. * gnu/packages/diffoscope.scm: New file. (diffoscope): Add variable. (trydiffoscope): Add variable. * gnu/local.mk [GNU_SYSTEM_MODULES]: Add diffoscope.scm. --- gnu/local.mk | 1 + gnu/packages/diffoscope.scm | 231 ++++++++++++++++++++++++++++ gnu/packages/package-management.scm | 183 ---------------------- 3 files changed, 232 insertions(+), 183 deletions(-) create mode 100644 gnu/packages/diffoscope.scm diff --git a/gnu/local.mk b/gnu/local.mk index 1aaab0ebf0..1062bdcafe 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -143,6 +143,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/dejagnu.scm \ %D%/packages/dico.scm \ %D%/packages/dictionaries.scm \ + %D%/packages/diffoscope.scm \ %D%/packages/digest.scm \ %D%/packages/direct-connect.scm \ %D%/packages/disk.scm \ diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm new file mode 100644 index 0000000000..6eb5c1d9fe --- /dev/null +++ b/gnu/packages/diffoscope.scm @@ -0,0 +1,231 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès +;;; Copyright © 2017 Ricardo Wurmus +;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice +;;; Copyright © 2018 Julien Lepiller +;;; Copyright © 2018, 2019 Rutger Helling +;;; Copyright © 2019 Vagrant Cascadian +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages diffoscope) + #:use-module (gnu packages) + #:use-module (gnu packages acl) + #:use-module (gnu packages admin) + #:use-module (gnu packages backup) + #:use-module (gnu packages base) + #:use-module (gnu packages cdrom) + #:use-module (gnu packages check) + #:use-module (gnu packages compression) + #:use-module (gnu packages cpio) + #:use-module (gnu packages dbm) + #:use-module (gnu packages gettext) + #:use-module (gnu packages ghostscript) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages haskell) + #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) + #:use-module (gnu packages java) + #:use-module (gnu packages linux) + #:use-module (gnu packages llvm) + #:use-module (gnu packages mono) + #:use-module (gnu packages package-management) + #:use-module (gnu packages patchutils) + #:use-module (gnu packages pdf) + #:use-module (gnu packages python-web) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages sqlite) + #:use-module (gnu packages ssh) + #:use-module (gnu packages textutils) + #:use-module (gnu packages video) + #:use-module (gnu packages vim) + #:use-module (guix build-system python) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils)) + +(define-public diffoscope + (let ((version "123")) + (package + (name "diffoscope") + (version version) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://salsa.debian.org/reproducible-builds/diffoscope.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "11bxms5rkhi0v4pxx29v4qgvhp3fmf0fkzci6gn5xcv4fl1zy4wj")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + ;; setup.py mistakenly requires python-magic from PyPi, even + ;; though the Python bindings of `file` are sufficient. + ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815844 + (add-after 'unpack 'dependency-on-python-magic + (lambda _ + (substitute* "setup.py" + (("'python-magic',") "")))) + ;; This test is broken because our `file` package has a + ;; bug in berkeley-db file type detection. + (add-after 'unpack 'remove-berkeley-test + (lambda _ + (delete-file "tests/comparators/test_berkeley_db.py") + #t)) + ;; Test is dynamically generated and may have false + ;; negatives with different ocaml versions. Further + ;; background in: https://bugs.debian.org/939386 + (add-after 'unpack 'remove-ocaml-test + (lambda _ + (delete-file "tests/comparators/test_ocaml.py") + #t)) + (add-after 'unpack 'embed-tool-references + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "diffoscope/comparators/utils/compare.py" + (("\\['xxd',") + (string-append "['" (which "xxd") "',"))) + (substitute* "diffoscope/comparators/elf.py" + (("@tool_required\\('readelf'\\)") "") + (("get_tool_name\\('readelf'\\)") + (string-append "'" (which "readelf") "'"))) + (substitute* "diffoscope/comparators/directory.py" + (("@tool_required\\('stat'\\)") "") + (("@tool_required\\('getfacl'\\)") "") + (("\\['stat',") + (string-append "['" (which "stat") "',")) + (("\\['getfacl',") + (string-append "['" (which "getfacl") "',"))) + #t)) + (add-before 'check 'writable-test-data + (lambda _ + ;; tests may need needs write access to tests + ;; directory + (for-each make-file-writable (find-files "tests")) + #t)) + (add-before 'check 'delete-failing-test + (lambda _ + ;; this requires /sbin to be on the path + (delete-file "tests/test_tools.py") + #t))))) + (inputs `(("rpm" ,rpm) ;for rpm-python + ("python-file" ,python-file) + ("python-debian" ,python-debian) + ("python-libarchive-c" ,python-libarchive-c) + ("python-tlsh" ,python-tlsh) + ("acl" ,acl) ;for getfacl + ("colordiff" ,colordiff) + ("xxd" ,xxd))) + ;; Below are modules used for tests. + (native-inputs `(("python-pytest" ,python-pytest) + ("python-chardet" ,python-chardet) + ;; test suite skips tests when tool is missing + ("bdb" ,bdb) + ("binutils" ,binutils) + ("bzip2" ,bzip2) + ("cdrtools" ,cdrtools) + ("colord" ,colord) + ("cpio" ,cpio) + ("docx2txt" ,docx2txt) + ("e2fsprogs" ,e2fsprogs) + ("ffmpeg" ,ffmpeg) + ("gettext" ,gettext-minimal) + ("ghc" ,ghc) + ("ghostscript" ,ghostscript) + ("giflib:bin" ,giflib "bin") + ("gnumeric" ,gnumeric) + ("gnupg" ,gnupg) + ("imagemagick" ,imagemagick) + ("libarchive" ,libarchive) + ("llvm" ,llvm) + ("lz4" ,lz4) + ("mono" ,mono) + ("odt2txt" ,odt2txt) + ;; no unversioned openjdk available + ("openjdk:jdk" ,openjdk12 "jdk") + ("openssh" ,openssh) + ("pgpdump" ,pgpdump) + ("poppler" ,poppler) + ("rpm" ,rpm) + ("sng" ,sng) + ("sqlite" ,sqlite) + ("squashfs-tools" ,squashfs-tools) + ("tcpdump" ,tcpdump) + ("unzip" ,unzip) + ("xxd" ,xxd) + ("xz" ,xz) + ("zip" ,zip))) + (home-page "https://diffoscope.org/") + (synopsis "Compare files, archives, and directories in depth") + (description + "Diffoscope tries to get to the bottom of what makes files or directories +different. It recursively unpacks archives of many kinds and transforms +various binary formats into more human readable forms to compare them. It can +compare two tarballs, ISO images, or PDFs just as easily.") + (license license:gpl3+)))) + +(define-public trydiffoscope + (package + (name "trydiffoscope") + (version "67.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://salsa.debian.org/reproducible-builds/trydiffoscope.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "03b66cjii7l2yiwffj6ym6mycd5drx7prfp4j2550281pias6mjh")))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((share (string-append (assoc-ref outputs "out") "/share/"))) + (mkdir-p (string-append share "/man/man1/" )) + (invoke "rst2man.py" + "trydiffoscope.1.rst" + (string-append share "/man/man1/trydiffoscope.1")) + (mkdir-p (string-append share "/doc/" ,name "-" ,version)) + (install-file "./README.rst" + (string-append share "/doc/" ,name "-" ,version))) + #t))))) + (propagated-inputs + `(("python-requests" ,python-requests))) + (native-inputs + `(("gzip" ,gzip) + ("python-docutils" ,python-docutils))) + (build-system python-build-system) + (home-page "https://try.diffoscope.org") + (synopsis "Client for remote diffoscope service") + (description "This is a client for the @url{https://try.diffoscope.org, +remote diffoscope service}. + +Diffoscope tries to get to the bottom of what makes files or directories +different. It recursively unpacks archives of many kinds and transforms +various binary formats into more human readable forms to compare them. It can +compare two tarballs, ISO images, or PDFs just as easily. + +Results are displayed by default, stored as local text or html files, or made +available via a URL on @url{https://try.diffoscope.org}. Results stored on the +server are purged after 30 days.") + (license license:gpl3+))) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index a56c738e78..26f1458028 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -10,7 +10,6 @@ ;;; Copyright © 2018 Sou Bunnbu ;;; Copyright © 2018, 2019 Eric Bavier ;;; Copyright © 2019 Efraim Flashner -;;; Copyright © 2019 Vagrant Cascadian ;;; Copyright © 2019 Jonathan Brielmaier ;;; ;;; This file is part of GNU Guix. @@ -31,7 +30,6 @@ (define-module (gnu packages package-management) #:use-module (gnu packages) #:use-module (gnu packages acl) - #:use-module (gnu packages admin) #:use-module (gnu packages attr) #:use-module (gnu packages avahi) #:use-module (gnu packages autotools) @@ -40,7 +38,6 @@ #:use-module (gnu packages bdw-gc) #:use-module (gnu packages bison) #:use-module (gnu packages bootstrap) ;for 'bootstrap-guile-origin' - #:use-module (gnu packages cdrom) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages cpio) @@ -50,7 +47,6 @@ #:use-module (gnu packages docbook) #:use-module (gnu packages file) #:use-module (gnu packages gettext) - #:use-module (gnu packages ghostscript) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) @@ -58,19 +54,12 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages guile-xyz) - #:use-module (gnu packages haskell) - #:use-module (gnu packages image) - #:use-module (gnu packages imagemagick) - #:use-module (gnu packages java) #:use-module (gnu packages linux) #:use-module (gnu packages lisp) - #:use-module (gnu packages llvm) #:use-module (gnu packages man) - #:use-module (gnu packages mono) #:use-module (gnu packages nettle) #:use-module (gnu packages nss) #:use-module (gnu packages patchutils) - #:use-module (gnu packages pdf) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) @@ -82,10 +71,8 @@ #:use-module (gnu packages sqlite) #:use-module (gnu packages ssh) #:use-module (gnu packages texinfo) - #:use-module (gnu packages textutils) #:use-module (gnu packages time) #:use-module (gnu packages tls) - #:use-module (gnu packages video) #:use-module (gnu packages vim) #:use-module (gnu packages virtualization) #:use-module (gnu packages web) @@ -558,176 +545,6 @@ transactions from C or Python.") ;; The whole is GPLv2+; librpm itself is dual-licensed LGPLv2+ | GPLv2+. (license license:gpl2+))) -(define-public diffoscope - (let ((version "123")) - (package - (name "diffoscope") - (version version) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://salsa.debian.org/reproducible-builds/diffoscope.git") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "11bxms5rkhi0v4pxx29v4qgvhp3fmf0fkzci6gn5xcv4fl1zy4wj")))) - (build-system python-build-system) - (arguments - `(#:phases (modify-phases %standard-phases - ;; setup.py mistakenly requires python-magic from PyPi, even - ;; though the Python bindings of `file` are sufficient. - ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815844 - (add-after 'unpack 'dependency-on-python-magic - (lambda _ - (substitute* "setup.py" - (("'python-magic',") "")))) - ;; This test is broken because our `file` package has a - ;; bug in berkeley-db file type detection. - (add-after 'unpack 'remove-berkeley-test - (lambda _ - (delete-file "tests/comparators/test_berkeley_db.py") - #t)) - ;; Test is dynamically generated and may have false - ;; negatives with different ocaml versions. Further - ;; background in: https://bugs.debian.org/939386 - (add-after 'unpack 'remove-ocaml-test - (lambda _ - (delete-file "tests/comparators/test_ocaml.py") - #t)) - (add-after 'unpack 'embed-tool-references - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "diffoscope/comparators/utils/compare.py" - (("\\['xxd',") - (string-append "['" (which "xxd") "',"))) - (substitute* "diffoscope/comparators/elf.py" - (("@tool_required\\('readelf'\\)") "") - (("get_tool_name\\('readelf'\\)") - (string-append "'" (which "readelf") "'"))) - (substitute* "diffoscope/comparators/directory.py" - (("@tool_required\\('stat'\\)") "") - (("@tool_required\\('getfacl'\\)") "") - (("\\['stat',") - (string-append "['" (which "stat") "',")) - (("\\['getfacl',") - (string-append "['" (which "getfacl") "',"))) - #t)) - (add-before 'check 'writable-test-data - (lambda _ - ;; tests may need needs write access to tests - ;; directory - (for-each make-file-writable (find-files "tests")) - #t)) - (add-before 'check 'delete-failing-test - (lambda _ - ;; this requires /sbin to be on the path - (delete-file "tests/test_tools.py") - #t))))) - (inputs `(("rpm" ,rpm) ;for rpm-python - ("python-file" ,python-file) - ("python-debian" ,python-debian) - ("python-libarchive-c" ,python-libarchive-c) - ("python-tlsh" ,python-tlsh) - ("acl" ,acl) ;for getfacl - ("colordiff" ,colordiff) - ("xxd" ,xxd))) - ;; Below are modules used for tests. - (native-inputs `(("python-pytest" ,python-pytest) - ("python-chardet" ,python-chardet) - ;; test suite skips tests when tool is missing - ("bdb" ,bdb) - ("binutils" ,binutils) - ("bzip2" ,bzip2) - ("cdrtools" ,cdrtools) - ("colord" ,colord) - ("cpio" ,cpio) - ("docx2txt" ,docx2txt) - ("e2fsprogs" ,e2fsprogs) - ("ffmpeg" ,ffmpeg) - ("gettext" ,gettext-minimal) - ("ghc" ,ghc) - ("ghostscript" ,ghostscript) - ("giflib:bin" ,giflib "bin") - ("gnumeric" ,gnumeric) - ("gnupg" ,gnupg) - ("imagemagick" ,imagemagick) - ("libarchive" ,libarchive) - ("llvm" ,llvm) - ("lz4" ,lz4) - ("mono" ,mono) - ("odt2txt" ,odt2txt) - ;; no unversioned openjdk available - ("openjdk:jdk" ,openjdk12 "jdk") - ("openssh" ,openssh) - ("pgpdump" ,pgpdump) - ("poppler" ,poppler) - ("rpm" ,rpm) - ("sng" ,sng) - ("sqlite" ,sqlite) - ("squashfs-tools" ,squashfs-tools) - ("tcpdump" ,tcpdump) - ("unzip" ,unzip) - ("xxd" ,xxd) - ("xz" ,xz) - ("zip" ,(@ (gnu packages compression) zip)))) - (home-page "https://diffoscope.org/") - (synopsis "Compare files, archives, and directories in depth") - (description - "Diffoscope tries to get to the bottom of what makes files or directories -different. It recursively unpacks archives of many kinds and transforms -various binary formats into more human readable forms to compare them. It can -compare two tarballs, ISO images, or PDFs just as easily.") - (license license:gpl3+)))) - -(define-public trydiffoscope - (package - (name "trydiffoscope") - (version "67.0.1") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://salsa.debian.org/reproducible-builds/trydiffoscope.git") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "03b66cjii7l2yiwffj6ym6mycd5drx7prfp4j2550281pias6mjh")))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'install 'install-doc - (lambda* (#:key outputs #:allow-other-keys) - (let* ((share (string-append (assoc-ref outputs "out") "/share/"))) - (mkdir-p (string-append share "/man/man1/" )) - (invoke "rst2man.py" - "trydiffoscope.1.rst" - (string-append share "/man/man1/trydiffoscope.1")) - (mkdir-p (string-append share "/doc/" ,name "-" ,version)) - (install-file "./README.rst" - (string-append share "/doc/" ,name "-" ,version))) - #t))))) - (propagated-inputs - `(("python-requests" ,python-requests))) - (native-inputs - `(("gzip" ,gzip) - ("python-docutils" ,python-docutils))) - (build-system python-build-system) - (home-page "https://try.diffoscope.org") - (synopsis "Client for remote diffoscope service") - (description "This is a client for the @url{https://try.diffoscope.org, -remote diffoscope service}. - -Diffoscope tries to get to the bottom of what makes files or directories -different. It recursively unpacks archives of many kinds and transforms -various binary formats into more human readable forms to compare them. It can -compare two tarballs, ISO images, or PDFs just as easily. - -Results are displayed by default, stored as local text or html files, or made -available via a URL on @url{https://try.diffoscope.org}. Results stored on the -server are purged after 30 days.") - (license license:gpl3+))) - (define-public python-anaconda-client (package (name "python-anaconda-client") From 3244b64f708a5b3161bfada2043718c004f199a4 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Sun, 8 Sep 2019 15:35:33 -0700 Subject: [PATCH 071/227] gnu: diffoscope: Add additional test dependencies. * gnu/packages/diffoscope (diffoscope)[native-inputs]: Add abootimg, dtc, and r-minimal. --- gnu/packages/diffoscope.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index 6eb5c1d9fe..828e06a818 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -25,8 +25,10 @@ #:use-module (gnu packages) #:use-module (gnu packages acl) #:use-module (gnu packages admin) + #:use-module (gnu packages android) #:use-module (gnu packages backup) #:use-module (gnu packages base) + #:use-module (gnu packages bootloaders) #:use-module (gnu packages cdrom) #:use-module (gnu packages check) #:use-module (gnu packages compression) @@ -50,6 +52,7 @@ #:use-module (gnu packages python-xyz) #:use-module (gnu packages sqlite) #:use-module (gnu packages ssh) + #:use-module (gnu packages statistics) #:use-module (gnu packages textutils) #:use-module (gnu packages video) #:use-module (gnu packages vim) @@ -137,6 +140,7 @@ (native-inputs `(("python-pytest" ,python-pytest) ("python-chardet" ,python-chardet) ;; test suite skips tests when tool is missing + ("abootimg" ,abootimg) ("bdb" ,bdb) ("binutils" ,binutils) ("bzip2" ,bzip2) @@ -144,6 +148,7 @@ ("colord" ,colord) ("cpio" ,cpio) ("docx2txt" ,docx2txt) + ("dtc" ,dtc) ("e2fsprogs" ,e2fsprogs) ("ffmpeg" ,ffmpeg) ("gettext" ,gettext-minimal) @@ -163,6 +168,7 @@ ("openssh" ,openssh) ("pgpdump" ,pgpdump) ("poppler" ,poppler) + ("r-minimal" ,r-minimal) ("rpm" ,rpm) ("sng" ,sng) ("sqlite" ,sqlite) From 3fb581ca9f18fe61e070195f4f8d1a670931b722 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Wed, 18 Sep 2019 17:28:11 -0700 Subject: [PATCH 072/227] gnu: diffoscope: Update to 125. * gnu/packages/diffoscope (diffoscope): Update to 125. [arguments] Adjust remove-ocaml-test to selectively disable a single test. Add skip-elf-tests to disable a new failing test. [native-inputs] Add ocaml for tests. --- gnu/packages/diffoscope.scm | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index 828e06a818..59a15205c0 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -45,6 +45,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages mono) + #:use-module (gnu packages ocaml) #:use-module (gnu packages package-management) #:use-module (gnu packages patchutils) #:use-module (gnu packages pdf) @@ -64,7 +65,7 @@ #:use-module (guix utils)) (define-public diffoscope - (let ((version "123")) + (let ((version "125")) (package (name "diffoscope") (version version) @@ -76,7 +77,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "11bxms5rkhi0v4pxx29v4qgvhp3fmf0fkzci6gn5xcv4fl1zy4wj")))) + "02kwisp9j63w27hhcwpdhg66dgxzz61q4fcyfz8z4hwlz6r0gyqy")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -98,7 +99,17 @@ ;; background in: https://bugs.debian.org/939386 (add-after 'unpack 'remove-ocaml-test (lambda _ - (delete-file "tests/comparators/test_ocaml.py") + (substitute* "tests/comparators/test_ocaml.py" + (("def test_diff.differences.:") + "def skip_test_diff(differences):")) + #t)) + (add-after 'unpack 'skip-elf-tests + ;; FIXME: libmix_differences test added in 125, and is + ;; failing, need to explore why... + (lambda _ + (substitute* "tests/comparators/test_elf.py" + (("def test_libmix_differences.libmix_differences.:") + "def skip_test_libmix_differences(libmix_differences):")) #t)) (add-after 'unpack 'embed-tool-references (lambda* (#:key inputs #:allow-other-keys) @@ -162,6 +173,7 @@ ("llvm" ,llvm) ("lz4" ,lz4) ("mono" ,mono) + ("ocaml" ,ocaml) ("odt2txt" ,odt2txt) ;; no unversioned openjdk available ("openjdk:jdk" ,openjdk12 "jdk") From 222510f404c00e18788751f9739b69c21854cc2b Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Thu, 19 Sep 2019 09:56:53 +0200 Subject: [PATCH 073/227] gnu: linux-libre: Update to 5.2.16. * gnu/packages/linux.scm (linux-libre): Update to 5.2.16. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 8bdc6bdaf6..59874b097c 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -350,10 +350,10 @@ corresponding UPSTREAM-SOURCE (an origin), using the given DEBLOB-SCRIPTS." "linux-" version ".tar.xz")) (sha256 hash))) -(define-public linux-libre-5.2-version "5.2.15") +(define-public linux-libre-5.2-version "5.2.16") (define-public linux-libre-5.2-pristine-source (let ((version linux-libre-5.2-version) - (hash (base32 "0jhc70r2rygm91qifjagg1jgbpjwyyq6m8g1n5iv81l1v84i0mpb"))) + (hash (base32 "0xg5jnkmc7b552jrhi200ck7q4hql3az2fpjfwxj3ay8xp4n280c"))) (make-linux-libre-source version (%upstream-linux-source version hash) deblob-scripts-5.2))) From 5d484f42a87d7121b6f9d50bb5f8d61e157bb186 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 19 Sep 2019 12:27:12 +0300 Subject: [PATCH 074/227] gnu: python2-matplotlib: Disable tests. * gnu/packages/python-xyz.scm (python2-matplotlib)[arguments]: Skip the custom 'check phase. --- gnu/packages/python-xyz.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 4541604873..66f7e176e2 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -3937,6 +3937,11 @@ toolkits.") (sha256 (base32 "1rcc7x9ig3hpchkc4cwdvym3y451w74275fxr455zkfagrsvymbk")))) + (arguments + (substitute-keyword-arguments (package-arguments matplotlib) + ((#:phases phases) + `(modify-phases ,phases + (delete 'check))))) ; These tests weren't run the the past. ;; Make sure to use special packages for Python 2 instead ;; of those automatically rewritten by package-with-python2. (propagated-inputs From 66a3c2db9b1d344145ded88fd5aeec4cff77137f Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 19 Sep 2019 12:29:49 +0300 Subject: [PATCH 075/227] gnu: python2-matplotlib: Fix jquery-ui install path. * gnu/packages/python-xyz.scm (python2-matplotlib)[arguments]: Override custom 'install-jquery-ui phase to install in the appropriate directory. --- gnu/packages/python-xyz.scm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 66f7e176e2..71adf82a77 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -3941,6 +3941,16 @@ toolkits.") (substitute-keyword-arguments (package-arguments matplotlib) ((#:phases phases) `(modify-phases ,phases + (replace 'install-jquery-ui + (lambda* (#:key outputs inputs #:allow-other-keys) + (let ((dir (string-append (assoc-ref outputs "out") + "/lib/python2.7/site-packages/" + "matplotlib/backends/web_backend/"))) + (mkdir-p dir) + (invoke "unzip" + (assoc-ref inputs "jquery-ui") + "-d" dir)) + #t)) (delete 'check))))) ; These tests weren't run the the past. ;; Make sure to use special packages for Python 2 instead ;; of those automatically rewritten by package-with-python2. From 7380df7312cc9f3fedce553954528e574df451bf Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 19 Sep 2019 12:32:31 +0300 Subject: [PATCH 076/227] gnu: python2-matplotlib: Update to 2.2.4. * gnu/packages/python-xyz.scm (python2-matplotlib): Update to 2.2.4. --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 71adf82a77..28b472c72e 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -3929,14 +3929,14 @@ toolkits.") (let ((matplotlib (package-with-python2 (strip-python2-variant python-matplotlib)))) (package (inherit matplotlib) - (version "2.2.3") + (version "2.2.4") (source (origin (method url-fetch) (uri (pypi-uri "matplotlib" version)) (sha256 (base32 - "1rcc7x9ig3hpchkc4cwdvym3y451w74275fxr455zkfagrsvymbk")))) + "09i1gnrra1590brc1f8d5rh2zvnknmfgzp613ab0462qkrwj15h2")))) (arguments (substitute-keyword-arguments (package-arguments matplotlib) ((#:phases phases) From 339b582892dea157b54879884032900bf0700d72 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 19 Sep 2019 12:36:13 +0300 Subject: [PATCH 077/227] gnu: python-matplotlib: Use https in home-page. * gnu/packages/python-xyz.scm (python-matplotlib)[home-page]: Update to use https. --- gnu/packages/python-xyz.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 28b472c72e..5c261cc6fd 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -3914,7 +3914,7 @@ tests = True~%" (assoc-ref inputs "tcl") (assoc-ref inputs "tk"))))) #t))))) - (home-page "http://matplotlib.org") + (home-page "https://matplotlib.org/") (synopsis "2D plotting library for Python") (description "Matplotlib is a Python 2D plotting library which produces publication From 62ef089eab5b7da97ffd66cb65fc1df1ced589b6 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 19 Sep 2019 14:35:31 +0300 Subject: [PATCH 078/227] gnu: efl: Update to 1.22.5. * gnu/packages/enlightenment.scm (efl): Update to 1.22.5. --- gnu/packages/enlightenment.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index cc9f43e935..2ff37d496f 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -65,7 +65,7 @@ (define-public efl (package (name "efl") - (version "1.22.4") + (version "1.22.5") (source (origin (method url-fetch) (uri (string-append @@ -73,7 +73,7 @@ version ".tar.xz")) (sha256 (base32 - "084ihxy6g86yczhln5vn1amxi4qzqhvk4lpz9005kx92i6wh4h25")))) + "1cjk56z0whpzcqwg3xdq23kyp1g83xa67m9dlp7ywmb36bn4ca59")))) (outputs '("out" ; 53 MB "include")) ; 21 MB (build-system gnu-build-system) From ebfe548c23ae6a56f777367f6c7658cfd9ada42a Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Thu, 19 Sep 2019 16:53:43 +0200 Subject: [PATCH 079/227] gnu: samba: Update to 4.11.0. * gnu/packages/samba.scm (samba): Update to 4.11.0. --- gnu/packages/samba.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index aa344c96da..a6e71cb75a 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -153,14 +153,14 @@ anywhere.") (define-public samba (package (name "samba") - (version "4.10.8") + (version "4.11.0") (source (origin (method url-fetch) (uri (string-append "https://download.samba.org/pub/samba/stable/" "samba-" version ".tar.gz")) (sha256 (base32 - "1x0hlhb674fndfkmimjicnzs543n3i8465a5ifcmjwvzavxha7y4")))) + "174fwi8n191dnb8ix9afchfp59hic6iwa3062iz3y7zzmxs1rpva")))) (build-system gnu-build-system) (arguments `(#:phases From 754ee7082bf06ebd34eb41dffea5b6799dcd5389 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Thu, 19 Sep 2019 18:15:52 +0200 Subject: [PATCH 080/227] gnu: next: Update to 1.3.2. * gnu/packages/web-browsers.scm (next): Update to 1.3.2. --- gnu/packages/web-browsers.scm | 43 +++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 22ecf3cfec..6d4caa0f9f 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -368,7 +368,7 @@ driven and does not detract you from your daily work.") (define next-gtk-webkit (package (name "next-gtk-webkit") - (version "1.3.1") + (version "1.3.2") (source (origin (method git-fetch) @@ -379,7 +379,7 @@ driven and does not detract you from your daily work.") (commit version))) (sha256 (base32 - "01fn1f080ydk0wj1bwkyakqz93bdq9xb5x8qz820jpl9id17bqgj")) + "0863p6ch4pdrn6b81cx2abis0ld7r2n6x34v3z0ihj3jlfj21yx4")) (file-name (git-file-name "next" version)))) (build-system glib-or-gtk-build-system) (arguments @@ -421,19 +421,31 @@ features for productive professionals.") #:asd-file "next.asd" #:asd-system-name "next/download-manager")) (inputs - `(;; ASD libraries: - ("trivial-features" ,sbcl-trivial-features) - ;; Lisp libraries: - ("cl-ppcre" ,sbcl-cl-ppcre) + `(("cl-ppcre" ,sbcl-cl-ppcre) ("dexador" ,sbcl-dexador) ("log4cl" ,sbcl-log4cl) ("lparallel" ,sbcl-lparallel) ("quri" ,sbcl-quri) ("str" ,sbcl-cl-str))) (native-inputs - `(("prove-asdf" ,sbcl-prove-asdf))) + `(("trivial-features" ,sbcl-trivial-features) + ("prove-asdf" ,sbcl-prove-asdf))) (synopsis "Infinitely extensible web-browser (download manager)"))) +(define sbcl-next-ring + (package + (inherit next-gtk-webkit) + (name "sbcl-next-ring") + (build-system asdf-build-system/sbcl) + (arguments + `(#:tests? #t + #:asd-file "next.asd" + #:asd-system-name "next/ring")) + (native-inputs + `(("trivial-features" ,sbcl-trivial-features) + ("prove-asdf" ,sbcl-prove-asdf))) + (synopsis "Infinitely extensible web-browser (ring)"))) + (define-public next (let ((version (package-version next-gtk-webkit))) (package @@ -495,14 +507,11 @@ features for productive professionals.") (string-append "PREFIX=" (assoc-ref outputs "out")))))))) (inputs - `(("next-gtk-webkit" ,next-gtk-webkit) - ;; ASD libraries: - ("trivial-features" ,sbcl-trivial-features) - ("trivial-garbage" ,sbcl-trivial-garbage) - ;; Lisp libraries: - ("alexandria" ,sbcl-alexandria) + `(("alexandria" ,sbcl-alexandria) ("bordeaux-threads" ,sbcl-bordeaux-threads) + ("cl-annot" ,sbcl-cl-annot) ("cl-css" ,sbcl-cl-css) + ("cl-hooks" ,sbcl-cl-hooks) ("cl-json" ,sbcl-cl-json) ("cl-markup" ,sbcl-cl-markup) ("cl-ppcre" ,sbcl-cl-ppcre) @@ -511,6 +520,7 @@ features for productive professionals.") ("dbus" ,cl-dbus) ("dexador" ,sbcl-dexador) ("ironclad" ,sbcl-ironclad) + ("local-time" ,sbcl-local-time) ("log4cl" ,sbcl-log4cl) ("lparallel" ,sbcl-lparallel) ("mk-string-metrics" ,sbcl-mk-string-metrics) @@ -523,9 +533,12 @@ features for productive professionals.") ("trivial-clipboard" ,sbcl-trivial-clipboard) ("unix-opts" ,sbcl-unix-opts) ;; Local deps - ("next-download-manager" ,sbcl-next-download-manager))) + ("next-gtk-webkit" ,next-gtk-webkit) + ("next-download-manager" ,sbcl-next-download-manager) + ("next-ring" ,sbcl-next-ring))) (native-inputs - `(("prove-asdf" ,sbcl-prove-asdf))) + `(("trivial-features" ,sbcl-trivial-features) + ("prove-asdf" ,sbcl-prove-asdf))) (synopsis "Infinitely extensible web-browser (with Lisp development files)")))) (define-public sbcl-next From 664aa1844cae6e5175ace879301cd81b83c8cc89 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Thu, 19 Sep 2019 16:19:09 +0200 Subject: [PATCH 081/227] gnu: tor: Update to 0.4.1.6. * gnu/packages/tor.scm (tor): Update to 0.4.1.6. --- gnu/packages/tor.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 2e8e48c8e2..27090c14cf 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -50,14 +50,14 @@ (define-public tor (package (name "tor") - (version "0.4.1.5") + (version "0.4.1.6") (source (origin (method url-fetch) (uri (string-append "https://dist.torproject.org/tor-" version ".tar.gz")) (sha256 (base32 - "0984jb6hdcc10f7aq8xzl7l4jf93skp45wkv2v63z4zv0nvf0r58")))) + "0wgdid8w7srd218hh4rwslzdx2ickxw1pg18p2wry1r6wi65521a")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) From f315673d9e56f4f2398098590ebdc080b63ce8b1 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Thu, 19 Sep 2019 10:23:47 -0700 Subject: [PATCH 082/227] gnu: Add python-binwalk. * gnu/packages/python-xyz (python-binwalk): New variable. * gnu/packages/diffoscope (diffoscope)[native-inputs]: Add python-binwalk for tests. --- gnu/packages/diffoscope.scm | 1 + gnu/packages/python-xyz.scm | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index 59a15205c0..17a2d212e5 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -150,6 +150,7 @@ ;; Below are modules used for tests. (native-inputs `(("python-pytest" ,python-pytest) ("python-chardet" ,python-chardet) + ("python-binwalk" ,python-binwalk) ;; test suite skips tests when tool is missing ("abootimg" ,abootimg) ("bdb" ,bdb) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 5c261cc6fd..601e4b13df 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -10868,6 +10868,42 @@ binary or text.") `(("python2-enum34" ,python2-enum34) ,@(package-propagated-inputs base)))))) +(define-public python-binwalk + (let ((commit "64201acfb5b0a9cdd9faa58c40a36dcff8612e29") + (revision "0")) + (package + (name "python-binwalk") + (version (git-version "2.1.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ReFirmLabs/binwalk") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1z7ca6rfp887hw5jc3sb45mm4fa0xid4lsp2z8g4r590dr7k7w15")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'set-pythonpath + (lambda _ + (setenv "PYTHONPATH" + (string-append + (getcwd) "/src/" + ":" (getenv "PYTHONPATH"))) + (setenv "HOME" "") + #t))))) + (native-inputs + `(("python-coverage" ,python-coverage) + ("python-nose" ,python-nose))) + (home-page "https://github.com/ReFirmLabs/binwalk") + (synopsis "Firmware analysis tool") + (description "Binwalk is a tool for analyzing, reverse engineering, and extracting firmware images") + (license license:expat)))) + (define-public python-nltk (package (name "python-nltk") From 4d83157cd806aeb864664ebb380c19f6be04648c Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Thu, 5 Sep 2019 11:13:22 -0700 Subject: [PATCH 083/227] gnu: Add wabt. * gnu/packages/web (wabt): New variable. * gnu/packages/diffoscope (diffoscope)[native-inputs]: Add wabt for tests. [arguments]: Add phase patching wabt into known tools. --- gnu/packages/diffoscope.scm | 8 ++++++++ gnu/packages/web.scm | 40 +++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index 17a2d212e5..e2b2565004 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -57,6 +57,7 @@ #:use-module (gnu packages textutils) #:use-module (gnu packages video) #:use-module (gnu packages vim) + #:use-module (gnu packages web) #:use-module (guix build-system python) #:use-module (guix gexp) #:use-module (guix git-download) @@ -88,6 +89,12 @@ (lambda _ (substitute* "setup.py" (("'python-magic',") "")))) + ;; Patch in support for known tools + (add-after 'unpack 'add-known-tools + (lambda _ + (substitute* "diffoscope/external_tools.py" + (("'arch': 'wabt'},") + "'arch': 'wabt', 'guix': 'wabt'},")))) ;; This test is broken because our `file` package has a ;; bug in berkeley-db file type detection. (add-after 'unpack 'remove-berkeley-test @@ -188,6 +195,7 @@ ("squashfs-tools" ,squashfs-tools) ("tcpdump" ,tcpdump) ("unzip" ,unzip) + ("wabt" ,wabt) ("xxd" ,xxd) ("xz" ,xz) ("zip" ,zip))) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index 39475bd6a8..d25f04901a 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -123,6 +123,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt) #:use-module (gnu packages readline) + #:use-module (gnu packages re2c) #:use-module (gnu packages sphinx) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) @@ -859,6 +860,45 @@ for efficient socket-like bidirectional reliable communication channels.") ;; This is LGPLv2.1-only with extra exceptions specified in 'LICENSE'. (license license:lgpl2.1))) +(define-public wabt + (package + (name "wabt") + (version "1.0.11") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/WebAssembly/wabt") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0hn88vlqyclpk79v3wg3lrssd9vwhjdgvb41g03jqakygxxgnmp5")))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags '("-DBUILD_TESTS=OFF") + #:tests? #f)) + (inputs `(("python" ,python-2) + ("re2c" ,re2c))) + (home-page "https://github.com/WebAssembly/wabt") + (synopsis "WebAssembly Binary Toolkit") + (description "WABT (pronounced: wabbit) is a suite of tools for +WebAssembly, including: + +* wat2wasm: translate from WebAssembly text format to the WebAssembly binary + format +* wasm2wat: the inverse of wat2wasm, translate from the binary format back + to the text format (also known as a .wat) +* wasm-objdump: print information about a wasm binary. Similar to objdump. +* wasm-interp: decode and run a WebAssembly binary file using a stack-based + interpreter +* wat-desugar: parse .wat text form as supported by the spec interpreter + (s-expressions, flat syntax, or mixed) and print canonical flat format +* wasm2c: convert a WebAssembly binary file to a C source and header + +These tools are intended for use in (or for development of) toolchains or +other systems that want to manipulate WebAssembly files.") + (license license:asl2.0))) + (define-public websocketpp (package (name "websocketpp") From af760990e9651be865ccd20b935863d85f605f2e Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Sun, 8 Sep 2019 23:53:00 -0700 Subject: [PATCH 084/227] gnu: Add python-editorconfig. * gnu/packages/python-xyz (python-editorconfig): New variable. --- gnu/packages/python-xyz.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 601e4b13df..44aa471bb1 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -882,6 +882,27 @@ messages in color.") (define-public python2-coloredlogs (package-with-python2 python-coloredlogs)) +(define-public python-editorconfig + (package + (name "python-editorconfig") + (version "0.12.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "EditorConfig" version)) + (sha256 + (base32 + "0v55z351p9qkyp3bbspwywwn28sbcknhirngjbj779n3z52z63hv")))) + (build-system python-build-system) + (home-page "https://editorconfig.org/") + (synopsis "EditorConfig bindings for python") + (description "The EditorConfig project consists of a file format for +defining coding styles and a collection of text editor plugins that enable +editors to read the file format and adhere to defined styles. EditorConfig +files are easily readable and they work nicely with version control systems.") + ;; "fnmatch.py" and "ini.py" are licensed under psfl, the rest is bsd-2. + (license (list license:bsd-2 license:psfl)))) + (define-public python-et-xmlfile (package (name "python-et-xmlfile") From 6ec872231fdf746bd6e11b97f8a6b3a23498806c Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Thu, 19 Sep 2019 13:45:41 -0700 Subject: [PATCH 085/227] gnu: Add python-jsbeautifier. * gnu/packages/python-xyz (python-jsbeautifier): New variable. * gnu/packages/diffoscope (diffoscope)[native-arguments]: Add python-jsbeautifier. [arguments]: Add python-jsbeautifier to add-known-tools phase. --- gnu/packages/diffoscope.scm | 4 ++++ gnu/packages/python-xyz.scm | 39 +++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index e2b2565004..fff331ac13 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -92,6 +92,9 @@ ;; Patch in support for known tools (add-after 'unpack 'add-known-tools (lambda _ + (substitute* "diffoscope/external_tools.py" + (("'arch': 'python-jsbeautifier'},") + "'arch': 'python-jsbeautifier', 'guix': 'python-jsbeautifier'},")) (substitute* "diffoscope/external_tools.py" (("'arch': 'wabt'},") "'arch': 'wabt', 'guix': 'wabt'},")))) @@ -188,6 +191,7 @@ ("openssh" ,openssh) ("pgpdump" ,pgpdump) ("poppler" ,poppler) + ("python-jsbeautifier" ,python-jsbeautifier) ("r-minimal" ,r-minimal) ("rpm" ,rpm) ("sng" ,sng) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 44aa471bb1..4e33fa575f 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -8035,6 +8035,45 @@ Jupyter kernels such as IJulia and IRKernel.") support for rich media output.") (license license:bsd-3))) +(define-public python-jsbeautifier + (package + (name "python-jsbeautifier") + (version "1.10.2") + (home-page "https://github.com/beautify-web/js-beautify") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0wawb070ki1axb3jc9xvsrgpji52vcfif3zmjzc3z4g98m5xw4kg")))) + (build-system python-build-system) + (arguments + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ + ;; The upstream Git repository contains all the code, + ;; but this package only builds the python code. + (chdir "python") + #t)) + (add-after 'unpack 'patch-python-six-requirements + (lambda _ + (substitute* "python/setup.py" + (("six>=1.12.0") + "six>=1.11.0")) + #t))))) + (propagated-inputs + `(("python-editorconfig" ,python-editorconfig) + ("python-six" ,python-six))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (synopsis "JavaScript unobfuscator and beautifier") + (description "Beautify, unpack or deobfuscate JavaScript, leveraging +popular online obfuscators.") + (license license:expat))) + (define-public jupyter (package (name "jupyter") From d2cdef65605b9e14bfa02c3bf1612ab6b62f4a89 Mon Sep 17 00:00:00 2001 From: zimoun Date: Wed, 18 Sep 2019 17:57:57 +0200 Subject: [PATCH 086/227] ui: 'relevance' connects regexps with a logical and. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes . Previously, the logical and connecting the regexps did not output the expected results (introduced in 8874faaaac665100a095ef25e39c9a389f5a397f). * guix/ui.scm (relevance) [score]: Change its arguments. [regexp->score]: New procedure. * tests/ui.scm ("package-relevance"): Add test. Signed-off-by: Ludovic Courtès --- guix/ui.scm | 46 +++++++++++++++++++++++----------------------- tests/ui.scm | 5 ++++- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/guix/ui.scm b/guix/ui.scm index 7920335928..4be31db047 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2018 Ricardo Wurmus ;;; Copyright © 2019 Chris Marusich ;;; Copyright © 2019 Tobias Geerinckx-Rice +;;; Copyright © 2019 Simon Tournier ;;; ;;; This file is part of GNU Guix. ;;; @@ -1281,33 +1282,32 @@ weight of this field in the final score. A score of zero means that OBJ does not match any of REGEXPS. The higher the score, the more relevant OBJ is to REGEXPS." - (define (score str) - (define scores - (map (lambda (regexp) - (fold-matches regexp str 0 - (lambda (m score) - (+ score - (if (string=? (match:substring m) str) - 5 ;exact match - 1))))) - regexps)) + (define (score regexp str) + (fold-matches regexp str 0 + (lambda (m score) + (+ score + (if (string=? (match:substring m) str) + 5 ;exact match + 1))))) + (define (regexp->score regexp) + (let ((score-regexp (lambda (str) (score regexp str)))) + (fold (lambda (metric relevance) + (match metric + ((field . weight) + (match (field obj) + (#f relevance) + ((? string? str) + (+ relevance (* (score-regexp str) weight))) + ((lst ...) + (+ relevance (* weight (apply + (map score-regexp lst))))))))) + 0 metrics))) + + (let ((scores (map regexp->score regexps))) ;; Return zero if one of REGEXPS doesn't match. (if (any zero? scores) 0 - (reduce + 0 scores))) - - (fold (lambda (metric relevance) - (match metric - ((field . weight) - (match (field obj) - (#f relevance) - ((? string? str) - (+ relevance (* (score str) weight))) - ((lst ...) - (+ relevance (* weight (apply + (map score lst))))))))) - 0 - metrics)) + (reduce + 0 scores)))) (define %package-metrics ;; Metrics used to compute the "relevance score" of a package against a set diff --git a/tests/ui.scm b/tests/ui.scm index 2138e23369..d8573e88d8 100644 --- a/tests/ui.scm +++ b/tests/ui.scm @@ -267,6 +267,7 @@ Second line" 24)) (gcrypt (specification->package "guile-gcrypt")) (go (specification->package "go")) (gnugo (specification->package "gnugo")) + (libb2 (specification->package "libb2")) (rx (cut make-regexp <> regexp/icase)) (>0 (cut > <> 0)) (=0 zero?)) @@ -283,6 +284,8 @@ Second line" 24)) (=0 (package-relevance go (map rx '("go" "game")))) (>0 (package-relevance gnugo - (map rx '("go" "game"))))))) + (map rx '("go" "game")))) + (>0 (package-relevance libb2 + (map rx '("crypto" "library"))))))) (test-end "ui") From 70bb5d88e08fd7fb18fe95f55811e8f645e10ad3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 Sep 2019 00:39:52 +0200 Subject: [PATCH 087/227] gnu: octave: Use texlive-union. * gnu/packages/maths.scm (octave)[native-inputs]: Replace texlive with texlive-union containing texlive-epsf. --- gnu/packages/maths.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 5380b4a99e..a42b81ac6b 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -1544,7 +1544,7 @@ script files.") ,@(package-inputs octave-cli))) (native-inputs `(("qttools" , qttools) ;for lrelease - ("texlive" ,texlive) ;for texi2dvi + ("texlive" ,(texlive-union (list texlive-epsf))) ; for texi2dvi ,@(package-native-inputs octave-cli))) (arguments (substitute-keyword-arguments (package-arguments octave-cli) From 014c3012a5eed7a5e0c62a3d0e8843ad762e07d5 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 Sep 2019 00:41:45 +0200 Subject: [PATCH 088/227] gnu: guile-debbugs-next: Update to 0.0.3-2.fb0ae06. * gnu/packages/guile-xyz.scm (guile-debbugs-next): Update to 0.0.3-2.fb0ae06. --- gnu/packages/guile-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index a5dfa55039..d6967929be 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -936,8 +936,8 @@ format.") (license license:agpl3+))) (define-public guile-debbugs-next - (let ((commit "75a331d561c8b6f8efcf16216dab961c17759efe") - (revision "1")) + (let ((commit "fb0ae064037a38a0d526e08b4ad24c52e205edb9") + (revision "2")) (package (inherit guile-debbugs) (name "guile-debbugs") (version (git-version "0.0.3" revision commit)) @@ -949,7 +949,7 @@ format.") (file-name (git-file-name name version)) (sha256 (base32 - "0br3mgbw41bpc9x57jlghl0i8dz9nl63r4wzs5l47aqszf84870y")))) + "195sacx2xc1mzzfljj62nfpi8mxn0rc6dabxckizjksnhb5irfwy")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) From b7f1a1aafd806fadee068a026964cde6521a5315 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 20 Sep 2019 00:42:18 +0200 Subject: [PATCH 089/227] gnu: mumi: Update to 0.0.0-5.8a57c87. * gnu/packages/mail.scm (mumi): Update to 0.0.0-5.8a57c87. --- gnu/packages/mail.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index fdbb082fdc..35b4e03e1b 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -2937,8 +2937,8 @@ replacement for the @code{urlview} program.") (license gpl2+))) (define-public mumi - (let ((commit "ea0a28f8d5db5761765eb60043b8593901552e25") - (revision "4")) + (let ((commit "8a57c87797ffb07baa88697130204184db643521") + (revision "5")) (package (name "mumi") (version (git-version "0.0.0" revision commit)) @@ -2950,7 +2950,7 @@ replacement for the @code{urlview} program.") (file-name (git-file-name name version)) (sha256 (base32 - "0b6dmi41vhssyf983blgi8a2kj3zjccc9cz7b7kvwh781ldqcywh")))) + "1575gn5p086sjxz5hvg6iyskq6cxf6vf50s9nsc4xgrbcqa3pv2c")))) (build-system gnu-build-system) (arguments `(#:phases From 68620d62f5cd49d6455c351f3a68e3c41dc6ce22 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Thu, 19 Sep 2019 16:43:47 -0700 Subject: [PATCH 090/227] gnu: Add enjarify. * gnu/packages/android (enjarify): New variable. * gnu/packages/diffoscope (diffoscope)[native-inputs]: Add enjarify. [arguments]: add enjarify to add-known-tools phase. * gnu/packages/patches/enjarify-setup-py.patch: New file. * gnu/local.mk: Add enjarify-setup-py.patch. --- gnu/local.mk | 1 + gnu/packages/android.scm | 58 ++++++++++++++++++++ gnu/packages/diffoscope.scm | 4 ++ gnu/packages/patches/enjarify-setup-py.patch | 19 +++++++ 4 files changed, 82 insertions(+) create mode 100644 gnu/packages/patches/enjarify-setup-py.patch diff --git a/gnu/local.mk b/gnu/local.mk index 1062bdcafe..ad85894ebe 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -796,6 +796,7 @@ dist_patch_DATA = \ %D%/packages/patches/emacs-undohist-ignored.patch \ %D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch \ %D%/packages/patches/emacs-zones-called-interactively.patch \ + %D%/packages/patches/enjarify-setup-py.patch \ %D%/packages/patches/enlightenment-fix-setuid-path.patch \ %D%/packages/patches/erlang-man-path.patch \ %D%/packages/patches/eudev-rules-directory.patch \ diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 56d5edaa75..8eb5182f51 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -39,6 +39,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages docker) #:use-module (gnu packages gnupg) + #:use-module (gnu packages java) #:use-module (gnu packages linux) #:use-module (gnu packages pcre) #:use-module (gnu packages python) @@ -934,3 +935,60 @@ these same tools to create your own additional or alternative repository for publishing, or to assist in creating, testing and submitting metadata to the main repository.") (license license:agpl3+))) + +(define-public enjarify + (package + (name "enjarify") + (version "1.0.3") + (home-page "https://github.com/Storyyeller/enjarify") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (patches + (search-patches "enjarify-setup-py.patch")) + (sha256 + (base32 + "1nam7h1g4f1h6jla4qcjjagnyvd24dv6d5445w04q8hx07nxdapk")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'enjarify-wrapper-inherit-pythonpath + ;; enjarify sets PYTHONPATH from a shell script, overwriting + ;; PYTHONPATH set from guix. Comment out this line. + (lambda _ + (substitute* "enjarify.sh" + (("export PYTHONPATH") "# export PYTHONPATH")) + #t)) + (add-before 'check 'fixup-expected-test-results + ;; Upstream adjusted this test in commit: + ;; 3ae884a6485af82d300515813f537685b08dd800 + (lambda _ + (substitute* "tests/test2/expected.txt" + (("^20") "0")) + #t)) + (add-before 'check 'drop-java-xss-argument + ;; Upstream removed this argument in order to support 32-bit + ;; architectures. commit: 4be0111d879aa95fdc0d9f24fe529f8c664d4093 + (lambda _ + (substitute* "enjarify/runtests.py" + (("java -Xss515m") "java ")) + #t)) + (add-after 'install 'install-enjarify-wrapper + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/bin/")) + (copy-file "enjarify.sh" (string-append out "/bin/enjarify")) + #t)))))) + (native-inputs `(("openjdk:jdk" ,openjdk12 "jdk"))) + (synopsis "Translate Dalvik bytecode to equivalent Java bytecode") + (description "Android applications are Java programs that run on a +customized virtual machine, which is part of the Android operating system, the +Dalvik VM. Their bytecode differs from the bytecode of normal Java +applications. Enjarify can translate the Dalvik bytecode back to equivalent +Java bytecode, which simplifies the analysis of Android applications.") + (license license:asl2.0))) diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index fff331ac13..8df5a9cc0e 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -92,6 +92,9 @@ ;; Patch in support for known tools (add-after 'unpack 'add-known-tools (lambda _ + (substitute* "diffoscope/external_tools.py" + (("'arch': 'enjarify'},") + "'arch': 'enjarify', 'guix': 'enjarify'},")) (substitute* "diffoscope/external_tools.py" (("'arch': 'python-jsbeautifier'},") "'arch': 'python-jsbeautifier', 'guix': 'python-jsbeautifier'},")) @@ -172,6 +175,7 @@ ("docx2txt" ,docx2txt) ("dtc" ,dtc) ("e2fsprogs" ,e2fsprogs) + ("enjarify" ,enjarify) ("ffmpeg" ,ffmpeg) ("gettext" ,gettext-minimal) ("ghc" ,ghc) diff --git a/gnu/packages/patches/enjarify-setup-py.patch b/gnu/packages/patches/enjarify-setup-py.patch new file mode 100644 index 0000000000..4b382ca320 --- /dev/null +++ b/gnu/packages/patches/enjarify-setup-py.patch @@ -0,0 +1,19 @@ +Author: Reiner Herrmann +Origin: https://salsa.debian.org/android-tools-team/enjarify/blob/master/debian/patches/setup_py.patch +Description: provides a minimal setup.py to build/install the package + +Index: enjarify/setup.py +=================================================================== +--- /dev/null ++++ enjarify/setup.py +@@ -0,0 +1,10 @@ ++#!/usr/bin/env python3 ++ ++from setuptools import setup, find_packages ++ ++setup(name='enjarify', ++ version='1.0.3', ++ url='https://github.com/google/enjarify', ++ packages=find_packages(), ++ ) ++ From 5b85ba41c4a74011098f64d20c0cf478aeeeeb33 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Thu, 19 Sep 2019 07:34:48 +0200 Subject: [PATCH 091/227] gnu: emacs-org-sidebar: Update to 0.1-2.b2a5a69. * gnu/packages/emacs-xyz.scm (emacs-org-sidebar): Update to 0.1-2.b2a5a69. --- gnu/packages/emacs-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 87edd4619e..21de17340a 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -4299,8 +4299,8 @@ started with 20 minutes. All values are customizable.") (license license:gpl3+)))) (define-public emacs-org-sidebar - (let ((commit "ed951d1e0d8b7e65ed35797403fd3e8c88f507f5") - (revision "1")) + (let ((commit "b2a5a69b1ebbab63b55e7d1a9453f385624a642c") + (revision "2")) (package (name "emacs-org-sidebar") (version (git-version "0.1" revision commit)) @@ -4312,7 +4312,7 @@ started with 20 minutes. All values are customizable.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "01sf8v53pjsy80fzwmj2n8rp2z5gsnpyld0fm6j3bdv213clp69y")))) + (base32 "0dajwg92kj7998xl0x35dlqwdhgwjcwxa726kf4f3wgv1azpyff6")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash) From b12405ce076a633c0d2f49d661d57dd77026f80e Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Thu, 19 Sep 2019 07:37:21 +0200 Subject: [PATCH 092/227] gnu: emacs-org-super-agenda: Update to 1.1.1-2.f0ee7ed. * gnu/packages/emacs-xyz.scm (emacs-org-super-agenda): Update to 1.1.1-2.f0ee7ed. --- gnu/packages/emacs-xyz.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 21de17340a..e682f0fadd 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -11242,8 +11242,8 @@ as well as functions for navigating between these headings.") (define-public emacs-org-super-agenda ;; emacs-org-sidebar depends on a newer commit than the latest release version. - (let ((commit "375bde4ca72494ac88a2a9738754f047fe45cc4e") - (revision "1")) + (let ((commit "f0ee7ed9766d352d16a787707d35695b48cbf153") + (revision "2")) (package (name "emacs-org-super-agenda") (version (git-version "1.1.1" revision commit)) @@ -11255,11 +11255,12 @@ as well as functions for navigating between these headings.") (file-name (git-file-name name version)) (sha256 (base32 - "0hrwf02fqjm0d9gj146ax67ib76093qpqh7066dcxj2gy20625yj")))) + "1b1qi96x83acv2frl94i4frx46i82vipaa8mfwpzyj2gyq2bq5zf")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-org" ,emacs-org) ("emacs-dash" ,emacs-dash) + ("emacs-ts" ,emacs-ts) ("emacs-ht" ,emacs-ht) ("emacs-s" ,emacs-s))) (home-page "https://github.com/alphapapa/org-super-agenda") From 5f103185237e57a317d6bc41c3645fc576f63e62 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Wed, 18 Sep 2019 03:08:48 +0200 Subject: [PATCH 093/227] gnu: emacs-lispy: Include non-Elisp code. * gnu/packages/emacs-xyz.scm (emacs-lispy): Include non-Elisp code. --- gnu/packages/emacs-xyz.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index e682f0fadd..38011171ab 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -5252,6 +5252,8 @@ navigate code in a tree-like fashion.") ("emacs-ivy" ,emacs-ivy) ("emacs-hydra" ,emacs-hydra) ("emacs-zoutline" ,emacs-zoutline))) + (arguments + `(#:include (cons* "\\.clj$" "\\.edn$" "\\.py$" %default-include))) (synopsis "Modal S-expression editing") (description "Due to the structure of Lisp syntax it's very rare for the programmer From 81b8a1a98641ad68277ffcb59e4750fb2a9f0ffc Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Wed, 18 Sep 2019 03:09:19 +0200 Subject: [PATCH 094/227] gnu: emacs-lpy: Update to 0.1.0-2.dfd9a0f. * gnu/packages/emacs-xyz.scm (emacs-lpy): Update to 0.1.0-2.dfd9a0f. --- gnu/packages/emacs-xyz.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 38011171ab..9a252a0e3c 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -5292,12 +5292,11 @@ state and will work even without lispy being enabled.") (license license:gpl3+)))) (define-public emacs-lpy - (let ((commit "553d28f7b6523ae5d44d34852ab770b871b0b0ad") - (version "0.1.0") - (revision "1")) + (let ((commit "dfd9a0fc8f84674fc669eab2942cfa038d7dc590") + (revision "2")) (package (name "emacs-lpy") - (version (git-version version revision commit)) + (version (git-version "0.1.0" revision commit)) (source (origin (method git-fetch) @@ -5306,7 +5305,7 @@ state and will work even without lispy being enabled.") (commit commit))) (sha256 (base32 - "0kl9b3gga18cwv5cq4db8i6b7waj6mp3h2l7qjnp7wq6dpvwhn0i")) + "15y1fvn1sjngpiqlq090hxqhmxp32f88rspfapwcisxa3hcg5r5a")) (file-name (git-file-name name version)))) (propagated-inputs `(("emacs-zoutline" ,emacs-zoutline) From 923e561e6a4b6dc0e34e26fded93ae97a9a9f712 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 20 Sep 2019 00:15:41 +0200 Subject: [PATCH 095/227] gnu: emacs-iedit: Update to 0.9.9.9-1.e2c100c. * gnu/packages/emacs-xyz.scm (emacs-iedit): Update to 0.9.9.9-1.e2c100c. --- gnu/packages/emacs-xyz.scm | 39 ++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 9a252a0e3c..f8f897649f 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -5184,30 +5184,33 @@ highlighted. Pressing that character will switch to that window.") (license license:gpl3+))) (define-public emacs-iedit - (package - (name "emacs-iedit") - (version "0.9.9.9") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/victorhge/iedit.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 "1pwkrm98vlpzsy5iwwfksdaz3zzyi7bvdf5fglhsn4ssf47p787g")))) - (build-system emacs-build-system) - (home-page "http://www.emacswiki.org/emacs/Iedit") - (synopsis "Edit multiple regions in the same way simultaneously") - (description - "This package is an Emacs minor mode and allows you to edit one + ;; Last release version was in 2016. + (let ((commit "e2c100cdd67b7d82835d281ac2cd1bf4f374bc8f") + (revision "1")) + (package + (name "emacs-iedit") + (version (git-version "0.9.9.9" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/victorhge/iedit.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0wr3w2id95wx2rma8n1ifjrv9rx37ly26ijc5zi58id0yrip3hnc")))) + (build-system emacs-build-system) + (home-page "http://www.emacswiki.org/emacs/Iedit") + (synopsis "Edit multiple regions in the same way simultaneously") + (description + "This package is an Emacs minor mode and allows you to edit one occurrence of some text in a buffer (possibly narrowed) or region, and simultaneously have other occurrences edited in the same way. You can also use Iedit mode as a quick way to temporarily show only the buffer lines that match the current text being edited. This gives you the effect of a temporary @code{keep-lines} or @code{occur}.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-zoutline (package From 53366043be8460224f62cb1e068f4ad36d63f62b Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 10 Sep 2019 06:07:50 +0200 Subject: [PATCH 096/227] gnu: emacs-dante: Update to 1.5-2.a25ae9e. * gnu/packages/emacs-xyz.scm (emacs-dante): Update to 1.5-2.a25ae9e. --- gnu/packages/emacs-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index f8f897649f..f95ec83703 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -739,8 +739,8 @@ programs.") (deprecated-package "haskell-mode" emacs-haskell-mode)) (define-public emacs-dante - (let ((commit "149dded24ca9cdff09a3d859e4b62638db4aadda") - (revision "1")) + (let ((commit "a25ae9e5b5425cffdd88d498777e90ea8655fa37") + (revision "2")) (package (name "emacs-dante") (version (git-version "1.5" revision commit)) @@ -751,7 +751,7 @@ programs.") (commit commit))) (sha256 (base32 - "0i7kj3d6pfys6si9va5f36qzifyac9mahdl0qh40rya9m0syrkla")) + "1ziw3snbs2z2cg8a3jbyjd48qkgrkzs4bh8lrbs0h2c87nzldvhd")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs From ea1a17d9bf9c0ea75eef40feb3327647c76ce87a Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sat, 7 Sep 2019 03:12:37 +0200 Subject: [PATCH 097/227] gnu: emacs-company-cabal: Include directory. * gnu/packages/emacs-xyz.scm (emacs-company-cabal): Include directory. --- gnu/packages/emacs-xyz.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index f95ec83703..8a6750516f 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -4168,6 +4168,8 @@ sgml/html integration, and indentation (working with sgml).") (build-system emacs-build-system) (propagated-inputs `(("emacs-company" ,emacs-company))) + (arguments + `(#:include (cons "^tools\\/" %default-include))) (home-page "https://github.com/iquiw/company-cabal/") (synopsis "Company completion for Haskell Cabal files") (description From 53b23b3371f8df1c90aa80088daec7a1d4fcde92 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Thu, 19 Sep 2019 07:18:32 +0200 Subject: [PATCH 098/227] gnu: Add emacs-compdef. * gnu/packages/emacs-xyz.scm (emacs-compdef): New variable. --- gnu/packages/emacs-xyz.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 8a6750516f..1232def6e5 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -3553,6 +3553,29 @@ completion candidate when using the Company text completion framework.") @code{company-mode} allowing for completion of common math symbols.") (license license:gpl3+)))) +(define-public emacs-compdef + (let ((commit "fc08a9b049c3718fc7d6c6ee2140759aff031bc9") + (revision "1")) + (package + (name "emacs-compdef") + (version (git-version "0.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/jjzmajic/compdef.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1dwf4rlj19d80yp656c7nkp6hb3mabv808r6ix3hpv6rjjs38vhl")))) + (build-system emacs-build-system) + (home-page "https://gitlab.com/jjzmajic/compdef") + (synopsis "Set local completion backends") + (description "This package provides a function to cleanly set local +completion backends according to mode, and integrates with +@code{use-package}.") + (license license:gpl3+)))) + (define-public emacs-nswbuff (let ((commit "362da7f3687e2eb5bb11667347de85f4a9d002bc") (revision "1")) From f76e4a91c25dc4441e592312a8749bd5b01ec559 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Thu, 5 Sep 2019 22:53:20 +0200 Subject: [PATCH 099/227] gnu: Enable tests for emacs-evil-lion. * gnu/packages/emacs-xyz.scm (emacs-evil-lion): Enable tests. --- gnu/packages/emacs-xyz.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 1232def6e5..3f7c01999c 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -6953,11 +6953,10 @@ surrounding lines.") (define-public emacs-evil-lion (let ((commit "6b03593f5dd6e7c9ca02207f9a73615cf94c93ab") - (version "0.0.2") (revision "1")) (package (name "emacs-evil-lion") - (version (git-version version revision commit)) + (version (git-version "0.0.2" revision commit)) (source (origin (method git-fetch) @@ -6970,6 +6969,9 @@ surrounding lines.") "1a162hynp0jcsn50c1w5a02mrw9w3q05c7lkqzqd25px3d0p772q")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-evil" ,emacs-evil))) + (arguments + `(#:tests? #t + #:test-command '("make" "test"))) (home-page "https://github.com/edkolev/evil-lion") (synopsis "Align operator for @code{evil-mode}") (description From d93e36cfa520df857a8a2bfc533c3a3b6b3c8257 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 10 Sep 2019 04:44:25 +0200 Subject: [PATCH 100/227] gnu: Add emacs-helm-lsp. * gnu/packages/emacs-xyz.scm (emacs-helm-lsp): New variable. --- gnu/packages/emacs-xyz.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 3f7c01999c..6a7bd69619 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -16475,6 +16475,33 @@ like @code{company}, @code{flycheck}, and @code{projectile}.") and code peeking.") (license license:gpl3+))) +(define-public emacs-helm-lsp + (let ((commit "3a58ca4cfd94b9ab1e15e819d3b16ef568e8889b") + (revision "1")) + (package + (name "emacs-helm-lsp") + (version (git-version "0.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/emacs-lsp/helm-lsp.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0wh5zai3s17ss2q8wcdd6d87hv1h3nbyrxxs4js9cas8m6y2ssjv")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-helm" ,emacs-helm) + ("emacs-lsp-mode" ,emacs-lsp-mode) + ("emacs-dash" ,emacs-dash))) + (home-page "https://github.com/emacs-lsp/helm-lsp") + (synopsis "Convert keyboard macros to Emacs Lisp") + (description + "This package displays keyboard macros or latest interactive commands +as Emacs Lisp.") + (license license:gpl3+)))) + (define-public emacs-helm-notmuch (package (name "emacs-helm-notmuch") From 4d33be6bd26167390f82a8589510f3f130a13733 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 10 Sep 2019 05:30:02 +0200 Subject: [PATCH 101/227] gnu: emacs-isearch-prop: Update to 0-2.4a2765f. * gnu/packages/emacs-xyz.scm (emacs-isearch-prop): Update to 0-2.4a2765f. --- gnu/packages/emacs-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 6a7bd69619..244e950c72 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -12214,8 +12214,8 @@ until the top-level form is no longer a macro call.") (license license:gpl3))) (define-public emacs-isearch-prop - (let ((commit "5e9dc44cf582d998aaa73ccd4d07cbda01248156") - (revision "1")) + (let ((commit "4a2765f835dd115d472142da05215c4c748809f4") + (revision "2")) (package (name "emacs-isearch-prop") (version (git-version "0" revision commit)) @@ -12228,7 +12228,7 @@ until the top-level form is no longer a macro call.") (file-name (git-file-name name version)) (sha256 (base32 - "1xawppy705ybsgx566zvj8zk2aajq0sqvhvfs7nijqq32lx0a2zl")))) + "06gdk5m84q6pxwng8rjxny1zkll8f3m2x6lw4xyib2dvg7iaslh3")))) (build-system emacs-build-system) (home-page "https://www.emacswiki.org/emacs/isearch-prop.el") (synopsis "Extensions to @code{isearch.el}") From d772e3b7889a89b879b29a240b34a220b34fad64 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 10 Sep 2019 05:30:35 +0200 Subject: [PATCH 102/227] gnu: emacs-isearch+: Update to 0-2.7c251b9. * gnu/packages/emacs-xyz.scm (emacs-isearch+): Update to 0-2.7c251b9. --- gnu/packages/emacs-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 244e950c72..50a9920c31 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -13793,8 +13793,8 @@ systems.") (license license:gpl3+))) (define-public emacs-isearch+ - (let ((commit "95e49af9dbf0254e095a11f115e101b52659520a") - (revision "1")) + (let ((commit "7c251b91a67bf914066e23e269ba52fda5b45f5f") + (revision "2")) (package (name "emacs-isearch+") (version (git-version "0" revision commit)) @@ -13807,7 +13807,7 @@ systems.") (file-name (git-file-name name version)) (sha256 (base32 - "0xhd9zgknf4lvzyf4apirpd7spb1hbpzkvys00a7pkmd0vvahk0v")))) + "1w2799714jcdycjlxgs8lpmmz6dmzvcvqy8xwxhvmgpb60g4f2yr")))) (build-system emacs-build-system) (home-page "https://www.emacswiki.org/emacs/isearch+.el") (synopsis "Extensions to @code{isearch.el}") From 9db5c4a355713d04e28b7a9b89b6da0ae440b31a Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 10 Sep 2019 05:37:22 +0200 Subject: [PATCH 103/227] gnu: emacs-info-plus: Update to 0-2.4a6b93c. * gnu/packages/emacs-xyz.scm (emacs-info-plus): Update to 0-2.4a6b93c. --- gnu/packages/emacs-xyz.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 50a9920c31..48692a500e 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -17373,12 +17373,11 @@ to be examined using Ediff.") (license license:expat))) (define-public emacs-info-plus - (let ((commit "b837d710f7d58db586116cf6f75e75a9a074bc4b") - (version "5101") - (revision "55")) + (let ((commit "4a6b93c170169594e1e8ea60cd799a1a88a969da") + (revision "2")) (package (name "emacs-info-plus") - (version (git-version version revision commit)) + (version (git-version "0" revision commit)) (source (origin (method git-fetch) @@ -17388,7 +17387,7 @@ to be examined using Ediff.") (file-name (git-file-name name version)) (sha256 (base32 - "1knyjkdm4rcs3qrc51jllw46ph7ycq5zxnvl70ydchzfwava43h6")))) + "1xzmx7m1qbl3b1x6yq1db1a108xqaa64ljfv1hdw763zmy4kc6m0")))) (build-system emacs-build-system) (home-page "https://github.com/emacsmirror/info-plus") (synopsis "Extensions to @file{info.el}") From 760ea037895bec47b1c1a374907ce2d79255c90e Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 10 Sep 2019 05:41:24 +0200 Subject: [PATCH 104/227] gnu: emacs-grep-context: Update to 0.1.0-1.5a4e3ef. * gnu/packages/emacs-xyz.scm (emacs-grep-context): Update to 0.1.0-1.5a4e3ef. --- gnu/packages/emacs-xyz.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 48692a500e..e30d3cea71 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -13171,10 +13171,11 @@ perform regression test for packages that provide font-lock rules.") (license license:gpl3+)))) (define-public emacs-grep-context - (let ((commit "a17c57e66687a54e195e08afe776bdd60cb6c0a7")) + (let ((commit "5a4e3efdf775755c1bbefcfe4b461c1166d81d7d") + (revision "1")) (package (name "emacs-grep-context") - (version (git-version "0.1" "1" commit)) + (version (git-version "0.1.0" revision commit)) (source (origin (method git-fetch) @@ -13184,11 +13185,11 @@ perform regression test for packages that provide font-lock rules.") (file-name (git-file-name name version)) (sha256 (base32 - "1nqfa6kjzjshww4hnwg1c0vcr90bdjihy3kmixq3c3jkvxg99b62")))) + "00q7l4a3c0ay6g5ff9bfa2qgkiswsyh4s6pqnpg0zpzhvv5710f5")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash))) - (home-page "https://github.com/nashamri/academic-phrases") + (home-page "https://github.com/mkcms/grep-context") (synopsis "Increase context in compilation and grep buffers") (description "This package provides an Emacs package for more context in From dc95c8b4975b097f68e21544bead2a051e86b016 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 10 Sep 2019 05:57:47 +0200 Subject: [PATCH 105/227] gnu: emacs-unpackaged-el: Update to 0-2.c0d58cf. * gnu/packages/emacs-xyz.scm (emacs-unpackaged-el): Update to 0-2.c0d58cf. * gnu/packages/patches/emacs-unpackaged-req.patch: Delete it. * gnu/local.mk (dist_patch_DATA): Remove patch. --- gnu/local.mk | 1 - gnu/packages/emacs-xyz.scm | 16 +++++++++---- .../patches/emacs-unpackaged-req.patch | 24 ------------------- 3 files changed, 11 insertions(+), 30 deletions(-) delete mode 100644 gnu/packages/patches/emacs-unpackaged-req.patch diff --git a/gnu/local.mk b/gnu/local.mk index ad85894ebe..8e535e208b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -792,7 +792,6 @@ dist_patch_DATA = \ %D%/packages/patches/emacs-highlight-stages-add-gexp.patch \ %D%/packages/patches/emacs-scheme-complete-scheme-r5rs-info.patch \ %D%/packages/patches/emacs-source-date-epoch.patch \ - %D%/packages/patches/emacs-unpackaged-req.patch \ %D%/packages/patches/emacs-undohist-ignored.patch \ %D%/packages/patches/emacs-wordnut-require-adaptive-wrap.patch \ %D%/packages/patches/emacs-zones-called-interactively.patch \ diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index e30d3cea71..f0e86016e7 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -614,8 +614,8 @@ from within Emacs.") (license license:gpl3+))) (define-public emacs-unpackaged-el - (let ((commit "f4df7f8dfea715e893b2223adda32545803f5cce") - (revision "1")) + (let ((commit "c0d58cf81e531b2b6fa1bd5dd612dc1b93d4d186") + (revision "2")) (package (name "emacs-unpackaged-el") (version (git-version "0" revision commit)) @@ -628,9 +628,7 @@ from within Emacs.") (file-name (git-file-name name version)) (sha256 (base32 - "1yf3zrgqfhnr0az8gn1kqqwnhfi3nc0vbjkcagwcqwk3sp1jda86")) - (patches - (search-patches "emacs-unpackaged-req.patch")))) + "0y3sgvd51l4pb3acps92bazfk49da6nim1f1hyxzy1ravg4kbw83")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash) @@ -638,6 +636,14 @@ from within Emacs.") ("emacs-s" ,emacs-s) ("emacs-hydra" ,emacs-hydra) ("emacs-use-package" ,emacs-use-package))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'require-hydra + (lambda _ + (substitute* "unpackaged.el" + ((";;; Code:") ";;; Code:\n(require 'hydra)")) + #t))))) (home-page "https://github.com/alphapapa/unpackaged.el") (synopsis "Useful snippets of Emacs Lisp code") (description "This package provides Emacs Lisp utilities for a variety diff --git a/gnu/packages/patches/emacs-unpackaged-req.patch b/gnu/packages/patches/emacs-unpackaged-req.patch deleted file mode 100644 index ddb9277610..0000000000 --- a/gnu/packages/patches/emacs-unpackaged-req.patch +++ /dev/null @@ -1,24 +0,0 @@ -From e5be173e201710538464c279335bef735a327a68 Mon Sep 17 00:00:00 2001 -From: Brian Leung -Date: Tue, 18 Jun 2019 06:37:46 +0200 -Subject: [PATCH] Add missing require. - ---- - unpackaged.el | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/unpackaged.el b/unpackaged.el -index 2d46b3c..e62184a 100644 ---- a/unpackaged.el -+++ b/unpackaged.el -@@ -38,6 +38,7 @@ - (require 'dash) - (require 's) - (require 'use-package) -+(require 'hydra) - - ;;; Faces, fonts - --- -2.22.0 - From 973f938fab5e3ae4b68791b0faac58bda686ac0e Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 10 Sep 2019 06:05:22 +0200 Subject: [PATCH 106/227] gnu: emacs-scribble-mode: Update to 0.1-2.217945d. * gnu/packages/emacs-xyz.scm (emacs-scribble-mode): Update to 0.1-2.217945d. --- gnu/packages/emacs-xyz.scm | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index f0e86016e7..b3d6b73265 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -558,16 +558,11 @@ handful of functions that are not resource-specific.") (license license:gpl3+))) (define-public emacs-scribble-mode - (let ((commit "34e9e5edb921813b6483e0fefa848efb6ee4b314") - (version "0.0") - (revision 0)) + (let ((commit "217945d54de5e4bb207033f2116baa28f5c5ecf2") + (revision "2")) (package (name "emacs-scribble-mode") - (version (if (zero? revision) - version - (string-append version "-" - (number->string revision) - "." (string-take commit 7)))) + (version (git-version "0.1" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -575,7 +570,7 @@ handful of functions that are not resource-specific.") (commit commit))) (sha256 (base32 - "0598byqpz2q6yi2q4dwd77jj9z3n99z34d3an51s9m2za0nh1qvp")))) + "1s5ccw1a5ack01wd94ywfcrar9j98agchwdh30q7iyxr0d2z4sii")))) (build-system emacs-build-system) (home-page "https://github.com/emacs-pe/scribble-mode") (synopsis "Emacs mode for editing the Scribble documentation syntax.") From 547074359cc67fc198bdc005a7a7b4582ed37709 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 10 Sep 2019 09:25:31 +0200 Subject: [PATCH 107/227] gnu: emacs-github-review: Update to 0.1-2.a13a3b4. * gnu/packages/emacs-xyz.scm (emacs-github-review): Update to 0.1-2.a13a3b4. --- gnu/packages/emacs-xyz.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index b3d6b73265..8e73ffd07e 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -14717,12 +14717,11 @@ viewing files with long lines.") (license license:gpl3+)))) (define-public emacs-github-review - (let ((commit "9c3ffe30fba5d02e9951e76d1a5be2ed046663da") - (version "0.1") - (revision "1")) + (let ((commit "a13a3b4f1b6114a32af843971a145ab880f51232") + (revision "2")) (package (name "emacs-github-review") - (version (git-version version revision commit)) + (version (git-version "0.1" revision commit)) (source (origin (method git-fetch) @@ -14732,7 +14731,7 @@ viewing files with long lines.") (file-name (git-file-name name version)) (sha256 (base32 - "078rv6f2p3wrznhgvmkhd071bwy72007f5l2m2a0r1k2i3vbfaja")))) + "0injfpxzgfhmqalba845j5l5cdcxxqz43knhxwinf36g52nfabl0")))) (build-system emacs-build-system) (inputs `(("emacs-dash" ,emacs-dash) From 4a643836512f29ecb66aec2b53a7e2d1d8fc475e Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 10 Sep 2019 09:35:35 +0200 Subject: [PATCH 108/227] gnu: emacs-ccls: Update to 0.1-2.9061ebb. * gnu/packages/emacs-xyz.scm (emacs-ccls): Update to 0.1-2.9061ebb. --- gnu/packages/emacs-xyz.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 8e73ffd07e..43e84b246e 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -14821,12 +14821,11 @@ Pandoc, the document-conversion tool.") (license license:bsd-3))) (define-public emacs-ccls - (let ((commit "2764ddd57b03646f0327ea680a954b4a67450aef") - (version "0.1") - (revision "1")) + (let ((commit "9061ebbf9d5ec3ee7e88dbd226c77017cf0447b1") + (revision "2")) (package (name "emacs-ccls") - (version (git-version version revision commit)) + (version (git-version "0.1" revision commit)) (source (origin (method git-fetch) @@ -14836,7 +14835,7 @@ Pandoc, the document-conversion tool.") (file-name (git-file-name name version)) (sha256 (base32 - "16427jvzhjy8kpvlgl3qzkzppv98124hkgi8q8pv1h7m46k9lhh3")))) + "106jh25ivq0ydiz37p51agk5zbpai7fv91pwn6dpqzsq5g281ls7")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash) From 27c35436fa374ffa363d8167ea0ad0dbe118cb9e Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 10 Sep 2019 09:35:54 +0200 Subject: [PATCH 109/227] gnu: emacs-general: Update to 0-2.f032c3a. * gnu/packages/emacs-xyz.scm (emacs-general): Update to 0-2.f032c3a. --- gnu/packages/emacs-xyz.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 43e84b246e..3fee701d58 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -15797,21 +15797,22 @@ other frame parameters.") (license license:gpl3+)))) (define-public emacs-general - (let ((commit "675050199b5a30d54a24b58a367db32c0bdc47f5")) + (let ((commit "f032c3a77079487d0ea563b17ee3e5b2fb084611") + (revision "2")) (package (name "emacs-general") - (version (git-version "0" "0" commit)) - (home-page "https://github.com/noctuid/general.el") + (version (git-version "0" revision commit)) (source (origin (method git-fetch) (uri (git-reference - (url (string-append home-page ".git")) + (url "https://github.com/noctuid/general.el.git") (commit commit))) (sha256 (base32 - "175yyhzk57yk1sskxh3d2jzhrh2waiibbcfsll167qxr117yji5h")) + "0lgh5z17ag5wvvnqwagvam29cp1n1vd50amn6df02xln80bsbllx")) (file-name (git-file-name name version)))) (build-system emacs-build-system) + (home-page "https://github.com/noctuid/general.el") (synopsis "More convenient key definitions in emacs") (description "@code{general.el} provides a more convenient method for binding keys in emacs (for both evil and non-evil users). Like From 459550f3a5ab9c4fb9b76a2dc0a1c2c129d65ed8 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 10 Sep 2019 09:46:48 +0200 Subject: [PATCH 110/227] gnu: emacs-undo-propose-el: Update to 3.0.0-2.47b7df0. * gnu/packages/emacs-xyz.scm (emacs-undo-propose-el): Update to 3.0.0-2.47b7df0. --- gnu/packages/emacs-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 3fee701d58..a8b61423cc 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -16634,8 +16634,8 @@ packages with a consistent way to use them.") (license license:gpl3+)))) (define-public emacs-undo-propose-el - (let ((commit "21a5cdc8ebfe8113f7039867c4abb0197c0fe71c") - (revision "1")) + (let ((commit "47b7df0c97ad0099537d1ade21c4c52f0618a945") + (revision "2")) (package (name "emacs-undo-propose-el") (version (git-version "3.0.0" revision commit)) @@ -16648,7 +16648,7 @@ packages with a consistent way to use them.") (file-name (git-file-name name version)) (sha256 (base32 - "035hav4lfxwgikg3zpb4cz1nf08qfp27awl87dqbm2ly6d74lpny")))) + "078bs8lk9f0lklxqh15976fffayg5z5386y59nxxfhm27lmwgka9")))) (build-system emacs-build-system) (home-page "https://github.com/jackkamm/undo-propose-el") (synopsis "Simple and safe navigation of @code{undo} history") From 8f7234564fb23581a3301e4e4820319f504d16f8 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 10 Sep 2019 09:47:14 +0200 Subject: [PATCH 111/227] gnu: emacs-js2-refactor-el: Update to 0.9.0-2.d4c40b5. * gnu/packages/emacs-xyz.scm (emacs-js2-refactor-el): Update to 0.9.0-2.d4c40b5. --- gnu/packages/emacs-xyz.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index a8b61423cc..b2d930d724 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -16738,12 +16738,11 @@ buffers.") (license license:gpl3+)))) (define-public emacs-js2-refactor-el - (let ((commit "79124b3274c43ad1f9ec6205fa362576552db02f") - (version "0.9.0") - (revision "27")) + (let ((commit "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28") + (revision "2")) (package (name "emacs-js2-refactor-el") - (version (git-version version revision commit)) + (version (git-version "0.9.0" revision commit)) (source (origin (method git-fetch) @@ -16753,7 +16752,7 @@ buffers.") (file-name (git-file-name name version)) (sha256 (base32 - "1wswhlpbd3airrhyncb9vblqigwnqg9n96z0iis8jnz37q2whica")))) + "08b25y3raz0p98zxk9xdd8nj9shqd6mzrqhbq1gg4cwsmi7h7ly1")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash) From 3edc440dbf1f2b6dcfacf2ce5b890c3e0e901f66 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 10 Sep 2019 09:48:47 +0200 Subject: [PATCH 112/227] gnu: emacs-equake: Update to 0.85-2.7eddc02. * gnu/packages/emacs-xyz.scm (emacs-equake): Update to 0.85-2.7eddc02. --- gnu/packages/emacs-xyz.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index b2d930d724..71eb54ac68 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -16865,12 +16865,11 @@ Lisp functions that call themselves in tail position.") (license license:gpl3+)))) (define-public emacs-equake - (let ((commit "ed15fd55cd4f2276161a6f712ed0b83cd10a8cdc") - (version "0.85") - (revision "1")) + (let ((commit "7eddc025ee61b83029363e22219af228b8c20681") + (revision "2")) (package (name "emacs-equake") - (version (git-version version revision commit)) + (version (git-version "0.85" revision commit)) (source (origin (method git-fetch) @@ -16880,7 +16879,7 @@ Lisp functions that call themselves in tail position.") (file-name (git-file-name name version)) (sha256 (base32 - "04kj88rlnn22gwmmv2gly2ibi6jka6l2cd4979pi6lhlvqqgjdnj")))) + "1c55pbqak3d02sw6z1139baxzy401b90g0gxzcc3j6sgplz6sc6w")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash) From 752684568ef25d2b628c870392a07758c0d05e3f Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 10 Sep 2019 09:56:05 +0200 Subject: [PATCH 113/227] gnu: emacs-prodigy-el: Update to 0.7.0-2.0a12eec. * gnu/packages/emacs-xyz.scm (emacs-prodigy-el): Update to 0.7.0-2.0a12eec. --- gnu/packages/emacs-xyz.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 71eb54ac68..f32a3dfd98 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -17020,12 +17020,11 @@ invoked.") (license license:gpl3+))) (define-public emacs-prodigy-el - (let ((commit "701dccaa56de9e6a330c05bde33bce4f3b3d6a97") - (version "0.7.0") - (revision "28")) + (let ((commit "0a12eec1f001a4eef16b2c0c524f02f2647a4ff1") + (revision "2")) (package (name "emacs-prodigy-el") - (version (git-version version revision commit)) + (version (git-version "0.7.0" revision commit)) (source (origin (method git-fetch) @@ -17035,7 +17034,7 @@ invoked.") (file-name (git-file-name name version)) (sha256 (base32 - "1vyvxawlayp2nra0q83146q2nzv8qwn5a4nj0sx1jc90a0a83vgj")))) + "02kysq57kqzg0zkhaf302ada9cp9spgp71z8vbdq4c7dl6x75h4g")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash) From aa4fb5961bc9f7f61fa1cd766ec57cb0946563aa Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Tue, 10 Sep 2019 10:00:16 +0200 Subject: [PATCH 114/227] gnu: emacs-rjsx-mode: Update to 0.4-2.0e7fa6b. * gnu/packages/emacs-xyz.scm (emacs-rjsx-mode): Update to 0.4-2.0e7fa6b. --- gnu/packages/emacs-xyz.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index f32a3dfd98..76031e8620 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -17169,12 +17169,11 @@ definition-jumping and type-checking on demand.") (license license:bsd-3)))) (define-public emacs-rjsx-mode - (let ((commit "03dd8d1683501e81b58674d64c3032b7b718402c") - (version "0.4.0") - (revision "35")) + (let ((commit "0e7fa6b4facdec4f85a7a8865bdf59dfd57217b5") + (revision "2")) (package (name "emacs-rjsx-mode") - (version (git-version version revision commit)) + (version (git-version "0.4" revision commit)) (source (origin (method git-fetch) @@ -17184,7 +17183,7 @@ definition-jumping and type-checking on demand.") (file-name (git-file-name name version)) (sha256 (base32 - "1kc44g9f38klpjklmz9n50a28nqv7prz6ck6ghdr6bnj1s98pb8a")))) + "0s0871sx3ch09kgvbcp9na4zdrfrda62xjq8m9knbq5vnj8q8qpi")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-js2-mode" ,emacs-js2-mode))) From 7fa6d0063c4b0100b8c7d8182f0412edcb4c539c Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Mon, 9 Sep 2019 06:58:31 +0200 Subject: [PATCH 115/227] gnu: emacs-auto-yasnippet: Update to 0.3.0-2.642b0d9. * gnu/packages/emacs-xyz.scm (emacs-auto-yasnippet): Update to 0.3.0-2.642b0d9. [arguments]: Simplify test command. --- gnu/packages/emacs-xyz.scm | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 76031e8620..d5de1114e7 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -12940,10 +12940,11 @@ browse the phrases by the paper section and fill-in the blanks if required.") (license license:gpl3+)))) (define-public emacs-auto-yasnippet - (let ((commit "d1ccfea87312c6dd8cf8501ab5b71b1d3d44d95b")) + (let ((commit "624b0d9711222073a2a3f2186e2605eb99fc83c9") + (revision "2")) (package (name "emacs-auto-yasnippet") - (version (git-version "0.3.0" "1" commit)) + (version (git-version "0.3.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference @@ -12952,17 +12953,11 @@ browse the phrases by the paper section and fill-in the blanks if required.") (file-name (git-file-name name version)) (sha256 (base32 - "1i8k2qiyzd5rq0zplk4xb5nfa5mp0ibxbzwqj6c7877waq7244xk")))) + "15g8wi067f345xhpi0c12w0h04p4f4lpccwmdjdfj8hzfl4gyxy9")))) (build-system emacs-build-system) (arguments - '(#:phases - (modify-phases %standard-phases - (add-before 'install 'check - (lambda _ - (invoke "emacs" "--batch" - "-l" "auto-yasnippet.el" - "-l" "auto-yasnippet-test.el" - "-f" "ert-run-tests-batch-and-exit")))))) + '(#:tests? #t + #:test-command '("make" "test"))) (propagated-inputs `(("emacs-yasnippet" ,emacs-yasnippet))) (home-page "https://github.com/abo-abo/auto-yasnippet/") From 09f1ac90c2d0fad5fa4c07ef15d8f68649bc3668 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 20 Sep 2019 02:20:24 +0200 Subject: [PATCH 116/227] gnu: emacs-ts: Update to 0.1-2.395649a. * gnu/packages/emacs-xyz.scm (emacs-ts): Update to 0.1-2.395649a. --- gnu/packages/emacs-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index d5de1114e7..2c4e629333 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -11326,8 +11326,8 @@ tables of contents.") (license license:gpl3+))) (define-public emacs-ts - (let ((commit "93c074f2895a204e003e8c7f3033c37d6486fac8") - (revision "1")) + (let ((commit "395649a2f2ba79028331bb1fa9ec08b218950ff6") + (revision "2")) (package (name "emacs-ts") (version (git-version "0.1" revision commit)) @@ -11338,7 +11338,7 @@ tables of contents.") (commit commit))) (sha256 (base32 - "0lpyv78k04vbp9glnv14dawcfgi3m49847wlgwfmkdq5cr3fn735")) + "02603wv66fplsigxd87jy23hrb5g9vigszcpdqrdv0ypaqaxlr3a")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs From 5afc5c31439fad0ae4d018af21944e93bf399848 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 20 Sep 2019 07:38:57 +0200 Subject: [PATCH 117/227] gnu: emacs-ivy: Update to 0.12-2.79333e9. * gnu/packages/emacs-xyz.scm (emacs-ivy): Update to 0.12-2.79333e9. [source]: Enable tests. [native-inputs]: Add emacs-wgrep. --- gnu/packages/emacs-xyz.scm | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 2c4e629333..57d2095e17 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -5026,8 +5026,8 @@ automatically.") ;; The latest release version introduced a new feature, swiper-isearch, that ;; generally works well but had some noticeable bugs; this later commit ;; includes fixes for several of them. - (let ((commit "d3e4514fd72f217c704ae18afdf711bb9036a04d") - (revision "1")) + (let ((commit "79333e9edfee38ec3b367c33711a68bdf7783259") + (revision "2")) (package (name "emacs-ivy") (version (git-version "0.12.0" revision commit)) @@ -5040,7 +5040,7 @@ automatically.") (file-name (git-file-name name version)) (sha256 (base32 - "142axxc6vsl14cfyvzj9csiykxdn7vhw88fy955hzx7av4qfqg4x")))) + "0dyclc51sprhmr5fi4lylhwsrn8v1jgyblwk9ly60jj84lj6278z")))) (build-system emacs-build-system) (arguments `(#:phases @@ -5052,11 +5052,22 @@ automatically.") (with-directory-excursion "doc" (invoke "makeinfo" "ivy.texi") (install-file "ivy.info" info) - #t))))))) + #t)))) + (add-before 'check 'make-dummy-git-directory + (lambda _ + (mkdir-p ".git"))) + (add-after 'check 'delete-dummy-git-directory + (lambda _ + (delete-file-recursively ".git")))) + #:tests? #t + #:test-command '("emacs" "--batch" + "-l" "ivy-test.el" + "-f" "ivy-test-run-tests"))) (propagated-inputs `(("emacs-hydra" ,emacs-hydra))) (native-inputs - `(("texinfo" ,texinfo))) + `(("texinfo" ,texinfo) + ("emacs-wgrep" ,emacs-wgrep))) (home-page "http://oremacs.com/swiper/") (synopsis "Incremental vertical completion for Emacs") (description From 3fd738f31b3fc6b31e048468980cc20c3d04261d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 17 Sep 2019 21:50:36 +0300 Subject: [PATCH 118/227] import/github: Check for more version prefixes. * guix/import/github.scm (latest-released-version): Allow the version string to begin with the word 'version'. --- guix/import/github.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/guix/import/github.scm b/guix/import/github.scm index 55ea00a111..df5f6ff32f 100644 --- a/guix/import/github.scm +++ b/guix/import/github.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2017, 2018, 2019 Ludovic Courtès ;;; Copyright © 2018 Eric Bavier ;;; Copyright © 2019 Arun Isaac +;;; Copyright © 2019 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -186,7 +187,12 @@ the package e.g. 'bedtools2'. Return #f if there is no releases" (substring tag 0 (+ name-length 1)))) (substring tag (+ name-length 1))) ;; some tags start with a "v" e.g. "v0.25.0" + ;; or with the word "version" e.g. "version.2.1" ;; where some are just the version number + ((string-prefix? "version" tag) + (if (char-set-contains? char-set:digit (string-ref tag 7)) + (substring tag 7) + (substring tag 8))) ((string-prefix? "v" tag) (substring tag 1)) ;; Finally, reject tags that don't start with a digit: From 747b6b049727334d23cced1cc2710540ca40ff7c Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 20 Sep 2019 08:13:43 +0200 Subject: [PATCH 119/227] gnu: emacs-evil-matchit: Update to 2.3.4. * gnu/packages/emacs-xyz.scm (emacs-evil-matchit): Update to 2.3.4. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 57d2095e17..69123b6aa1 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -10212,7 +10212,7 @@ Feautures: (define-public emacs-evil-matchit (package (name "emacs-evil-matchit") - (version "2.3.3") + (version "2.3.4") (source (origin (method git-fetch) @@ -10221,7 +10221,7 @@ Feautures: (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "04kllxd7vvziwqiff3vx60a0r6805wynsla73j8xkcz4yzk8q91r")))) + (base32 "1nflkmx08n3ya5vaipy1xg19hnqcp6f7ddsx9xjh5gl6ix2iz0az")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-evil" ,emacs-evil))) From ee6bfffe1984c63070e5c9510722b586ccd4b35d Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 20 Sep 2019 08:26:26 +0200 Subject: [PATCH 120/227] gnu: emacs-hercules: Update to 0.2.1. * gnu/packages/emacs-xyz.scm (emacs-hercules): Update to 0.2.1. --- gnu/packages/emacs-xyz.scm | 43 +++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 69123b6aa1..98a2fb4233 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -9325,30 +9325,29 @@ settings).") (license license:gpl3+))) (define-public emacs-hercules - (let ((commit "3345904a0dab4c7a4d4478f0766f1d9f5d1bb501") - (revision "1")) - (package - (name "emacs-hercules") - (version (git-version "0.2" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/jjzmajic/hercules.el.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 "0cpq8h6l47nqhzch6snax5yrhxl8p4wn35q13ci35lj3iq8kmlk8")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-which-key" ,emacs-which-key))) - (home-page "https://gitlab.com/jjzmajic/hercules.el") - (synopsis "Call a chain of related commands without repeated prefix keys") - (description - "This package provides sticky-key-like functionality to obviate the + (package + (name "emacs-hercules") + (version "0.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/jjzmajic/hercules.el.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "19939pf5d6p2facmfhpyghx0vipb5k6ry3bmkmjfkj1zp132zfqf")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-which-key" ,emacs-which-key))) + (home-page "https://gitlab.com/jjzmajic/hercules.el") + (synopsis "Call a chain of related commands without repeated prefix keys") + (description + "This package provides sticky-key-like functionality to obviate the need for repeated prefix-key sequences, and can reuse existing keymaps. The list of commands is displayed in a handy popup.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public emacs-ws-butler (package From 4504d18345e1effbe7e67324cf5c6e3b2ff43211 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 20 Sep 2019 12:09:34 +0200 Subject: [PATCH 121/227] gnu: perl-anyevent: Update to 7.17. * gnu/packages/libevent.scm (perl-anyevent): Update to 7.17. --- gnu/packages/libevent.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/libevent.scm b/gnu/packages/libevent.scm index 4898f0a768..3d00b3843e 100644 --- a/gnu/packages/libevent.scm +++ b/gnu/packages/libevent.scm @@ -132,14 +132,14 @@ resolution, asynchronous file system operations, and threading primitives.") (define-public perl-anyevent (package (name "perl-anyevent") - (version "7.15") + (version "7.17") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/M/ML/MLEHMANN/" "AnyEvent-" version ".tar.gz")) (sha256 (base32 - "0m73r67ah9xmcwzxs50jxf8ncd8h71mi4wf2mvnqkxvibhrv478i")))) + "11drlj8r02czhjgzkb39axnr8zzyp506r043xfmf93q9kilfmgjh")))) (build-system perl-build-system) (native-inputs `(("perl-canary-stability" ,perl-canary-stability))) From 30c6088e5ae87b283589fab250ad91fb8a09ff52 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 20 Sep 2019 12:46:59 +0200 Subject: [PATCH 122/227] gnu: rclone: Update to 1.49.3. * gnu/packages/sync.scm (rclone): Update to 1.49.3. --- gnu/packages/sync.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index 0c840a1a1d..7a85b6ce9e 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -264,14 +264,14 @@ over the Internet in an HTTP and CDN friendly way; (define-public rclone (package (name "rclone") - (version "1.49.2") + (version "1.49.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/rclone/rclone/releases/download/" "v" version "/rclone-v" version ".tar.gz")) (sha256 - (base32 "1q8lf85hg2havb1xsal75r19ck166rh19lffpd3i43zgblc6gs8j")))) + (base32 "04blngspm2hzi6d37bd3v19lpcvq0wlk38a9q0a4diwfwp2ab20n")))) ;; FIXME: Rclone bundles some libraries Guix already provides. Need to ;; un-bundle them. (build-system go-build-system) From aae65db560bd146ba47774cca46056d72be2a5d4 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 16 Sep 2019 14:34:17 +0200 Subject: [PATCH 123/227] gnu: node: Disable tests that fail with openssl@1.1.1d. Work around . * gnu/packages/node.scm (node)[arguments]: Disable failing tests. --- gnu/packages/node.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/node.scm b/gnu/packages/node.scm index fc43fcb04c..bf585a9686 100644 --- a/gnu/packages/node.scm +++ b/gnu/packages/node.scm @@ -45,6 +45,7 @@ (define-public node (package (name "node") + ;; XXX When updating, check if tests below (e.g. crypto) can be reënabled. (version "10.15.3") (source (origin (method url-fetch) @@ -91,6 +92,11 @@ (add-before 'configure 'patch-files (lambda* (#:key inputs #:allow-other-keys) + ;; FIXME: These tests fail with openssl@1.1.1d. + (for-each delete-file + '("test/parallel/test-crypto-binary-default.js" + "test/parallel/test-crypto-dh.js")) + ;; Fix hardcoded /bin/sh references. (substitute* '("lib/child_process.js" "lib/internal/v8_prof_polyfill.js" From 36d19f0bb2b28bd4a71471c2ed887619c6ac87e7 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 20 Sep 2019 17:32:11 +0200 Subject: [PATCH 124/227] gnu: emacs-avy: Enable tests. * gnu/packages/emacs-xyz.scm (emacs-avy): Enable tests. --- gnu/packages/emacs-xyz.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 98a2fb4233..c9fa6befef 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -5180,6 +5180,9 @@ show icons as well.") (sha256 (base32 "09qdni1s74i5pv8741szl5g4ynj8fxn0x65qmwa9rmfkbimnc0fs")))) (build-system emacs-build-system) + (arguments + `(#:tests? #t + #:test-command '("make" "test"))) (home-page "https://github.com/abo-abo/avy") (synopsis "Tree-based completion for Emacs") (description From 90fc79d8bf86ab6f49cb0cc01b74b6d0ea908874 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 20 Sep 2019 17:35:22 +0200 Subject: [PATCH 125/227] gnu: emacs-ivy: Simplify #:test-command. * gnu/packages/emacs-xyz.scm (emacs-ivy): Simplify #:test-command. --- gnu/packages/emacs-xyz.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index c9fa6befef..d006a45e01 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -5060,9 +5060,7 @@ automatically.") (lambda _ (delete-file-recursively ".git")))) #:tests? #t - #:test-command '("emacs" "--batch" - "-l" "ivy-test.el" - "-f" "ivy-test-run-tests"))) + #:test-command '("make" "test"))) (propagated-inputs `(("emacs-hydra" ,emacs-hydra))) (native-inputs From ab74b365ee19c035816ff77f515ac2c7cc31317b Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Fri, 20 Sep 2019 17:47:04 +0200 Subject: [PATCH 126/227] gnu: emacs-js2-mode: Enable tests. * gnu/packages/emacs-xyz.scm (emacs-js2-mode): Enable tests. --- gnu/packages/emacs-xyz.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index d006a45e01..7f0adaedc3 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -5655,6 +5655,9 @@ to all the other commands, too.") (sha256 (base32 "0766bbr4piia9vfr4ivd2gwi8dxah654adv6h28ylz4q8xmfzm1b")))) (build-system emacs-build-system) + (arguments + `(#:tests? #t + #:test-command '("make" "test"))) (home-page "https://github.com/mooz/js2-mode/") (synopsis "Improved JavaScript editing mode for Emacs") (description From 38f549f28d73098dc31b879ff3dd73ecb5ab043f Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sat, 21 Sep 2019 05:57:19 +0200 Subject: [PATCH 127/227] gnu: emacs-lispy: Enable tests. * gnu/packages/emacs-xyz.scm (emacs-lispy): Enable tests. --- gnu/packages/emacs-xyz.scm | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 7f0adaedc3..ad53ebaea0 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -5293,8 +5293,32 @@ navigate code in a tree-like fashion.") ("emacs-ivy" ,emacs-ivy) ("emacs-hydra" ,emacs-hydra) ("emacs-zoutline" ,emacs-zoutline))) + (native-inputs + `(("emacs-clojure-mode" ,emacs-clojure-mode) + ("emacs-undercover" ,emacs-undercover))) (arguments - `(#:include (cons* "\\.clj$" "\\.edn$" "\\.py$" %default-include))) + `(#:include (cons* "\\.clj$" "\\.edn$" "\\.py$" %default-include) + #:phases + ;; XXX: one failing test involving python evaluation + (modify-phases %standard-phases + (add-before 'check 'make-test-writable + (lambda _ + (make-file-writable "lispy-test.el") + #t)) + (add-before 'check 'remove-python-eval-test + (lambda _ + (emacs-batch-edit-file "lispy-test.el" + `(progn + (progn + (goto-char (point-min)) + (re-search-forward + "ert-deftest lispy-eval-python-str") + (beginning-of-line) + (kill-sexp)) + (basic-save-buffer))) + #t))) + #:tests? #t + #:test-command '("make" "test"))) (synopsis "Modal S-expression editing") (description "Due to the structure of Lisp syntax it's very rare for the programmer From 82b545711823f6afc882331a150f45f3df14360d Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sat, 21 Sep 2019 06:24:28 +0200 Subject: [PATCH 128/227] gnu: emacs-lispyville: Enable tests. * gnu/packages/emacs-xyz.scm (emacs-lispyville): Enable tests. --- gnu/packages/emacs-xyz.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index ad53ebaea0..98b5347f71 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -5347,6 +5347,25 @@ S-expression.") `(("emacs-evil" ,emacs-evil) ("emacs-lispy" ,emacs-lispy))) (build-system emacs-build-system) + (arguments + `(#:phases + ;; XXX: mysterious whitespace issue with one test + (modify-phases %standard-phases + (add-before 'check 'make-test-writable + (lambda _ + (make-file-writable "lispyville-test.el") + #t)) + (add-after 'make-test-writable 'remove-test + (lambda _ + (emacs-batch-edit-file "lispyville-test.el" + `(progn (progn (goto-char (point-min)) + (re-search-forward + "ert-deftest lispyville-comment-and-clone-dwim") + (beginning-of-line) + (kill-sexp)) + (basic-save-buffer)))))) + #:tests? #t + #:test-command '("make" "test"))) (synopsis "Minor mode for integrating Evil with lispy") (description "LispyVille's main purpose is to provide a Lisp editing environment From 3eb4adc2c41896c202f3d9131c36160c0a1311e6 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Fri, 20 Sep 2019 23:10:09 -0700 Subject: [PATCH 129/227] gnu: enjarify: Adjust native-inputs. * gnu/packages/android (enjarify)[native-inputs]: Use openjdk instead of openjdk:jdk. --- gnu/packages/android.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 8eb5182f51..337e60a641 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -984,7 +984,7 @@ main repository.") (mkdir-p (string-append out "/bin/")) (copy-file "enjarify.sh" (string-append out "/bin/enjarify")) #t)))))) - (native-inputs `(("openjdk:jdk" ,openjdk12 "jdk"))) + (native-inputs `(("openjdk" ,openjdk12))) (synopsis "Translate Dalvik bytecode to equivalent Java bytecode") (description "Android applications are Java programs that run on a customized virtual machine, which is part of the Android operating system, the From 44799c9f11ca3a5f99181e04f9e9017116e8a9fe Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sat, 21 Sep 2019 08:53:43 +0200 Subject: [PATCH 130/227] gnu: emacs-rjsx-mode: Enable tests. * gnu/packages/emacs-xyz.scm (emacs-rjsx-mode): Enable tests. --- gnu/packages/emacs-xyz.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 98b5347f71..47119e165f 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -17239,6 +17239,9 @@ definition-jumping and type-checking on demand.") (build-system emacs-build-system) (propagated-inputs `(("emacs-js2-mode" ,emacs-js2-mode))) + (arguments + `(#:tests? #t + #:test-command '("make" "test"))) (home-page "https://github.com/felipeochoa/rjsx-mode") (synopsis "Major mode for JSX files") (description "This package extends the parser of @code{js2-mode} to From 5122209dde63ba369f3af2becd00cbbc3fd0d6f5 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sat, 21 Sep 2019 08:57:20 +0200 Subject: [PATCH 131/227] gnu: emacs-counsel-etags: Enable tests. * gnu/packages/emacs-xyz.scm (emacs-counsel-etags): Enable tests. --- gnu/packages/emacs-xyz.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 47119e165f..bffd0c68eb 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -17316,6 +17316,9 @@ previewed by scrolling up and down within a @code{dired} buffer.") (build-system emacs-build-system) (propagated-inputs `(("emacs-ivy" ,emacs-ivy))) + (arguments + `(#:tests? #t + #:test-command '("make" "test"))) (home-page "https://github.com/redguardtoo/counsel-etags") (synopsis "Fast @code{Ctags}/@code{Etags} solution with @code{ivy-mode}") (description "This package uses @code{ivy-mode} to facilitate navigating From a43e9157ef479e94c19951cc9d228cf153bf78ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 20 Sep 2019 21:33:22 +0200 Subject: [PATCH 132/227] services: gdm: Ensure /var/lib/gdm is owned by "gdm". Fixes . Reported by Jan . * gnu/services/xorg.scm (%gdm-activation): New variable. (gdm-service-type)[extensions]: Add 'activation-service-type'. --- gnu/services/xorg.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 06d72b5f60..1d55e388a1 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -773,6 +773,27 @@ the GNOME desktop environment.") (home-directory "/var/lib/gdm") (shell (file-append shadow "/sbin/nologin"))))) +(define %gdm-activation + ;; Ensure /var/lib/gdm is owned by the "gdm" user. This is normally the + ;; case but could be wrong if the "gdm" user was created, then removed, and + ;; then recreated under a different UID/GID: . + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + + (let* ((gdm (getpwnam "gdm")) + (uid (passwd:uid gdm)) + (gid (passwd:gid gdm)) + (st (stat "/var/lib/gdm" #f))) + ;; Recurse into /var/lib/gdm only if it has wrong ownership. + (when (and st + (or (not (= uid (stat:uid st))) + (not (= gid (stat:gid st))))) + (for-each (lambda (file) + (chown file uid gid)) + (find-files "/var/lib/gdm" + #:directories? #t))))))) + (define dbus-daemon-wrapper (program-file "gdm-dbus-wrapper" @@ -915,6 +936,8 @@ the GNOME desktop environment.") (extensions (list (service-extension shepherd-root-service-type gdm-shepherd-service) + (service-extension activation-service-type + (const %gdm-activation)) (service-extension account-service-type (const %gdm-accounts)) (service-extension pam-root-service-type From 71507435225f10d8d944ba183cbcc77ef953e0e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 20 Sep 2019 22:26:53 +0200 Subject: [PATCH 133/227] inferior: Propagate '&store-protocol-error' error conditions. Until now '&store-protocol-error' conditions raised in the inferior would not be correctly propagated because SRFI-35 records lack a read syntax. Reported at by Carl Dong . * guix/inferior.scm (port->inferior): Import (srfi srfi-34) in the inferior. (inferior-eval-with-store): Define 'error?' and 'error-message'. Wrap call to PROC in 'guard'. Check the response of INFERIOR for a 'store-protocol-error' or a 'result' tag. * tests/inferior.scm ("inferior-eval-with-store, &store-protocol-error"): New test. --- guix/inferior.scm | 31 +++++++++++++++++++++++++++---- tests/inferior.scm | 13 +++++++++++++ 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/guix/inferior.scm b/guix/inferior.scm index fee97750b6..6be30d3f17 100644 --- a/guix/inferior.scm +++ b/guix/inferior.scm @@ -19,6 +19,8 @@ (define-module (guix inferior) #:use-module (srfi srfi-9) #:use-module (srfi srfi-9 gnu) + #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module ((guix utils) #:select (%current-system source-properties->location @@ -29,7 +31,8 @@ #:select (store-connection-socket store-connection-major-version store-connection-minor-version - store-lift)) + store-lift + &store-protocol-error)) #:use-module ((guix derivations) #:select (read-derivation-from-file)) #:use-module (guix gexp) @@ -151,6 +154,7 @@ inferior." (inferior-eval '(use-modules (guix)) result) (inferior-eval '(use-modules (gnu)) result) (inferior-eval '(use-modules (ice-9 match)) result) + (inferior-eval '(use-modules (srfi srfi-34)) result) (inferior-eval '(define %package-table (make-hash-table)) result) result)) @@ -462,7 +466,13 @@ thus be the code of a one-argument procedure that accepts a store." (listen socket 1024) (send-inferior-request `(let ((proc ,code) - (socket (socket AF_UNIX SOCK_STREAM 0))) + (socket (socket AF_UNIX SOCK_STREAM 0)) + (error? (if (defined? 'store-protocol-error?) + store-protocol-error? + nix-protocol-error?)) + (error-message (if (defined? 'store-protocol-error-message) + store-protocol-error-message + nix-protocol-error-message))) (connect socket AF_UNIX ,name) ;; 'port->connection' appeared in June 2018 and we can hardly @@ -475,7 +485,13 @@ thus be the code of a one-argument procedure that accepts a store." (dynamic-wind (const #t) (lambda () - (proc store)) + ;; Serialize '&store-protocol-error' conditions. The + ;; exception serialization mechanism that + ;; 'read-repl-response' expects is unsuitable for SRFI-35 + ;; error conditions, hence this special case. + (guard (c ((error? c) + `(store-protocol-error ,(error-message c)))) + `(result ,(proc store)))) (lambda () (close-connection store) (close-port socket))))) @@ -484,7 +500,14 @@ thus be the code of a one-argument procedure that accepts a store." ((client . address) (proxy client (store-connection-socket store)))) (close-port socket) - (read-inferior-response inferior))))) + + (match (read-inferior-response inferior) + (('store-protocol-error message) + (raise (condition + (&store-protocol-error (message message) + (status 1))))) + (('result result) + result)))))) (define* (inferior-package-derivation store package #:optional diff --git a/tests/inferior.scm b/tests/inferior.scm index 71ebf8f59b..f54b6d6037 100644 --- a/tests/inferior.scm +++ b/tests/inferior.scm @@ -27,6 +27,7 @@ #:use-module (gnu packages bootstrap) #:use-module (gnu packages guile) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-34) #:use-module (srfi srfi-64) #:use-module (ice-9 match)) @@ -186,6 +187,18 @@ (add-text-to-store store "foo" "Hello, world!"))))) +(test-assert "inferior-eval-with-store, &store-protocol-error" + (let* ((inferior (open-inferior %top-builddir + #:command "scripts/guix"))) + (guard (c ((store-protocol-error? c) + (string-contains (store-protocol-error-message c) + "invalid character"))) + (inferior-eval-with-store inferior %store + '(lambda (store) + (add-text-to-store store "we|rd/?!@" + "uh uh"))) + #f))) + (test-equal "inferior-package-derivation" (map derivation-file-name (list (package-derivation %store %bootstrap-guile "x86_64-linux") From ad34409e8581f8ad0273ddec277575fc112e1604 Mon Sep 17 00:00:00 2001 From: Alexey Abramov Date: Mon, 16 Sep 2019 16:42:15 +0200 Subject: [PATCH 134/227] services: dovecot: Fix predicate names for free-form fields MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/services/mail.scm (free-form-fields?, free-form-args?): Change 'string' to 'string?'. Signed-off-by: Ludovic Courtès --- gnu/services/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm index 3de0b4c2f3..2606aa9e3e 100644 --- a/gnu/services/mail.scm +++ b/gnu/services/mail.scm @@ -137,7 +137,7 @@ (define (free-form-fields? val) (match val (() #t) - ((((? symbol?) . (? string)) . val) (free-form-fields? val)) + ((((? symbol?) . (? string?)) . val) (free-form-fields? val)) (_ #f))) (define (serialize-free-form-fields field-name val) (for-each (match-lambda ((k . v) (serialize-field k v))) val)) @@ -145,7 +145,7 @@ (define (free-form-args? val) (match val (() #t) - ((((? symbol?) . (? string)) . val) (free-form-args? val)) + ((((? symbol?) . (? string?)) . val) (free-form-args? val)) (_ #f))) (define (serialize-free-form-args field-name val) (serialize-field field-name From 9ba1e308c79ee8114449a928a12239239e70a6d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wiktor=20=C5=BBelazny?= Date: Mon, 16 Sep 2019 18:15:49 +0200 Subject: [PATCH 135/227] gnu: Add autocutsel. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/xdisorg.scm (autocutsel): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/xdisorg.scm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index bcc61f59af..10ffa6f695 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2018, 2019 Rutger Helling ;;; Copyright © 2018, 2019 Pierre Neidhardt ;;; Copyright © 2018 Nam Nguyen +;;; Copyright © 2019 Wiktor Żelazny ;;; ;;; This file is part of GNU Guix. ;;; @@ -1708,3 +1709,28 @@ temperature of the screen.") (description "Wl-clipboard is a set of command-line copy/paste utilities for Wayland.") (license license:gpl3+))) + +(define-public autocutsel + (package + (name "autocutsel") + (version "0.10.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/sigmike/autocutsel" + "/releases/download/" version "/" + "autocutsel-" version ".tar.gz")) + (sha256 + (base32 + "0gsys2dzh4az51ndcsabhlbbrjn2nm75lnjr45kg6r8sm8q66dx2")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f)) ; no "check" target + (native-inputs `(("libx11" ,libx11) + ("libxaw" ,libxaw))) + (home-page "https://www.nongnu.org/autocutsel/") + (synopsis "Automated X11 clipboard and cutbuffer synchronization") + (description "@code{autocutsel} tracks changes in the server's cutbuffer +and clipboard selection. When the clipboard is changed, it updates the +cutbuffer. When the cutbuffer is changed, it owns the clipboard selection. +The cutbuffer and clipboard selection are always synchronized.") + (license license:gpl2+))) From c1bbef6920b1eb7e212b5e11d0385d477a53fbfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wiktor=20=C5=BBelazny?= Date: Mon, 16 Sep 2019 18:19:39 +0200 Subject: [PATCH 136/227] gnu: Add python-bibtexparser. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/python-xyz.scm (python-bibtexparser): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/python-xyz.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 4e33fa575f..69c8e63ecf 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -65,6 +65,7 @@ ;;; Copyright © 2019 Pierre Langlois ;;; Copyright © 2019 Jacob MacDonald ;;; Copyright © 2019 Giacomo Leidi +;;; Copyright © 2019 Wiktor Żelazny ;;; ;;; This file is part of GNU Guix. ;;; @@ -16376,3 +16377,24 @@ ElementTree library and for the @uref{http://lxml.de, lxml.etree} library. For lxml.etree this package can be useful for providing XPath 2.0 selectors, because lxml.etree already has it's own implementation of XPath 1.0.") (license license:expat))) + +(define-public python-bibtexparser + (package + (name "python-bibtexparser") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "bibtexparser" version)) + (sha256 + (base32 + "0zwhfkrzf3n5847dbnfng92k7ak199l9v6x6ax3dgdidfpm6d2fz")))) + (build-system python-build-system) + (propagated-inputs + `(("python-pyparsing" ,python-pyparsing))) + (native-inputs + `(("python-future" ,python-future))) + (home-page "https://github.com/sciunto-org/python-bibtexparser") + (synopsis "Python library to parse BibTeX files") + (description "BibtexParser is a Python library to parse BibTeX files.") + (license (list license:bsd-3 license:lgpl3)))) From aeb51370da7c854e8167066df9b138e15d7363e6 Mon Sep 17 00:00:00 2001 From: zimoun Date: Thu, 19 Sep 2019 19:24:42 +0200 Subject: [PATCH 137/227] guix package: Add 'guix show' alias. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * guix/scripts/show.scm: New file. * Makefile.am (MODULES): Add it. * po/guix/POTFILES.in: Add it. * tests/guix-package-aliases.sh: Add test. * doc/guix.texi (Invoking guix package): Document it and use it in a example. Signed-off-by: Ludovic Courtès --- Makefile.am | 1 + doc/guix.texi | 8 +++-- guix/scripts/show.scm | 67 +++++++++++++++++++++++++++++++++++ po/guix/POTFILES.in | 1 + tests/guix-package-aliases.sh | 4 +++ 5 files changed, 78 insertions(+), 3 deletions(-) create mode 100644 guix/scripts/show.scm diff --git a/Makefile.am b/Makefile.am index 93d18d7df6..f71ea77671 100644 --- a/Makefile.am +++ b/Makefile.am @@ -241,6 +241,7 @@ MODULES = \ guix/scripts/remove.scm \ guix/scripts/upgrade.scm \ guix/scripts/search.scm \ + guix/scripts/show.scm \ guix/scripts/gc.scm \ guix/scripts/hash.scm \ guix/scripts/pack.scm \ diff --git a/doc/guix.texi b/doc/guix.texi index 0ed59072c9..af1903f6ff 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2657,7 +2657,9 @@ For your convenience, we also provide the following aliases: @item @command{guix remove} is an alias for @command{guix package -r}, @item -and @command{guix upgrade} is an alias for @command{guix package -u}. +@command{guix upgrade} is an alias for @command{guix package -u}, +@item +and @command{guix show} is an alias for @command{guix package --show=}. @end itemize These aliases are less expressive than @command{guix package} and provide @@ -3020,9 +3022,9 @@ version: 3.3.5 @end example You may also specify the full name of a package to only get details about a -specific version of it: +specific version of it (this time using the @command{guix show} alias): @example -$ guix package --show=python@@3.4 | recsel -p name,version +$ guix show python@@3.4 | recsel -p name,version name: python version: 3.4.3 @end example diff --git a/guix/scripts/show.scm b/guix/scripts/show.scm new file mode 100644 index 0000000000..94f0559358 --- /dev/null +++ b/guix/scripts/show.scm @@ -0,0 +1,67 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Simon Tournier +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix scripts show) + #:use-module (guix ui) + #:use-module (guix scripts package) + #:use-module (guix scripts) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:use-module (srfi srfi-37) + #:export (guix-show)) + +(define (show-help) + (display (G_ "Usage: guix show [OPTION] PACKAGE... +Show details about PACKAGE.")) + (display (G_" +This is an alias for 'guix package --show='.\n")) + (newline) + (display (G_ " + -h, --help display this help and exit")) + (display (G_ " + -V, --version display version information and exit")) + (newline) + (show-bug-report-information)) + +(define %options + ;; Specification of the command-line options. + (list (option '(#\h "help") #f #f + (lambda args + (show-help) + (exit 0))) + (option '(#\V "version") #f #f + (lambda args + (show-version-and-exit "guix show"))))) + +(define (guix-show . args) + (define (handle-argument arg result) + ;; Treat all non-option arguments as regexps. + (cons `(query show ,arg) + result)) + + (define opts + (args-fold* args %options + (lambda (opt name arg . rest) + (leave (G_ "~A: unrecognized option~%") name)) + handle-argument + '())) + + (unless (assoc-ref opts 'query) + (leave (G_ "missing arguments: no package to show~%"))) + + (guix-package* opts)) diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in index 8b556ac0ec..f629034d61 100644 --- a/po/guix/POTFILES.in +++ b/po/guix/POTFILES.in @@ -47,6 +47,7 @@ guix/scripts/install.scm guix/scripts/remove.scm guix/scripts/upgrade.scm guix/scripts/search.scm +guix/scripts/show.scm guix/scripts/gc.scm guix/scripts/hash.scm guix/scripts/import.scm diff --git a/tests/guix-package-aliases.sh b/tests/guix-package-aliases.sh index 5c68664093..9c038b99a5 100644 --- a/tests/guix-package-aliases.sh +++ b/tests/guix-package-aliases.sh @@ -58,3 +58,7 @@ if guix remove -i guile-bootstrap -p "$profile" --bootstrap then false; else true; fi guix search '\' game | grep '^name: gnubg' + +guix show --version +guix show guile +guix show python@3 | grep "^name: python" From 660dbe65641851aa99b810e4ae065a5f72dc37d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 20 Sep 2019 23:02:30 +0200 Subject: [PATCH 138/227] guix package: '--show' ignores deprecated packages. * guix/scripts/package.scm (process-query) <'show>: Remove superseded packages. * tests/guix-package-aliases.sh: Add test. --- guix/scripts/package.scm | 3 ++- tests/guix-package-aliases.sh | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 21737f43da..f03741aa9e 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -764,7 +764,8 @@ processed, #f otherwise." (('show requested-name) (let-values (((name version) (package-name->name+version requested-name))) - (match (find-packages-by-name name version) + (match (remove package-superseded + (find-packages-by-name name version)) (() (leave (G_ "~a~@[@~a~]: package not found~%") name version)) (packages diff --git a/tests/guix-package-aliases.sh b/tests/guix-package-aliases.sh index 9c038b99a5..4beed2e5b7 100644 --- a/tests/guix-package-aliases.sh +++ b/tests/guix-package-aliases.sh @@ -62,3 +62,6 @@ guix search '\' game | grep '^name: gnubg' guix show --version guix show guile guix show python@3 | grep "^name: python" + +# "python@2" exists but is deprecated; make sure it doesn't show up. +if guix show python@2; then false; else true; fi From c219104c7803cd31ab1cf4bef142a8fbf8ed5b7a Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 15 Sep 2019 13:31:41 +0100 Subject: [PATCH 139/227] gnu: guile-email: Add phase to patch the module directory. Otherwise the .go files appear within share, and Guile doesn't find them. With this patch they appear in lib within the output. One thing this means is that stack traces include the filenames. * gnu/packages/guile-xyz.scm (guile-email)[arguments]: Add 'patch-module-dir phase. --- gnu/packages/guile-xyz.scm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index d6967929be..9822cd59c6 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -926,7 +926,16 @@ tracker's SOAP service, such as @url{https://bugs.gnu.org}.") (inputs `(("guile" ,guile-2.2))) (arguments - '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ; to prevent guild warnings + '(#:make-flags '("GUILE_AUTO_COMPILE=0") ; to prevent guild warnings + #:phases + (modify-phases %standard-phases + (add-before 'configure 'patch-module-dir + (lambda _ + (substitute* "Makefile.in" + (("^godir = ([[:graph:]]+)") + "godir = \ +$(libdir)/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")) + #t))))) (home-page "https://guile-email.systemreboot.net") (synopsis "Guile email parser") (description "guile-email is a collection of email utilities implemented From b64fa7f0626618664330e83dbdbfb7a70736f657 Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 8 Sep 2019 18:37:53 +0100 Subject: [PATCH 140/227] services: virtualization: Change libvirtd use syslog by default. As defaulting by stderr, along with the shepherd service not directing the output to a log file makes seeing the output difficult, compared to logging to syslog. * gnu/services/virtualization.scm (libvirt-configuration)[log-outputs]: Change default from "3:stderr" to "3:syslog:libvirtd". --- gnu/services/virtualization.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm index 3eecd2c085..bc8ac9b40a 100644 --- a/gnu/services/virtualization.scm +++ b/gnu/services/virtualization.scm @@ -313,7 +313,7 @@ be logged: Multiple filters can be defined in a single filters statement, they just need to be separated by spaces.") (log-outputs - (string "3:stderr") + (string "3:syslog:libvirtd") "Logging outputs. An output is one of the places to save logging information From ca2ead31d261a209b86bc6355d3f2dec6ca95266 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Fri, 20 Sep 2019 22:07:28 +0200 Subject: [PATCH 141/227] gnu: wxmaxima: Update to 19.09.0. * gnu/packages/maths.scm (wxmaxima): Update to 19.09.0. --- gnu/packages/maths.scm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index a42b81ac6b..47026ec41b 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2973,7 +2973,7 @@ point numbers.") (define-public wxmaxima (package (name "wxmaxima") - (version "19.08.0") + (version "19.09.0") (source (origin (method git-fetch) @@ -2982,8 +2982,7 @@ point numbers.") (commit (string-append "Version-" version)))) (file-name (git-file-name name version)) (sha256 - (base32 - "028g4g2081vsgslbdliskfy5q2wknvknw89lk3zp89py6wranxas")))) + (base32 "195j6j8z0jd6xg3a63ywbrbsc6dany795m3fb95nbx1vq0bqqvvn")))) (build-system cmake-build-system) (native-inputs `(("gettext" ,gettext-minimal))) From 10097e585e27c79349a39ab4743885e86a8b7797 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 21 Sep 2019 18:57:49 +0200 Subject: [PATCH 142/227] gnu: libgnomekbd: Update to 3.26.1. * gnu/packages/gnome.scm (libgnomekbd): Update to 3.26.1. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 31ff2ab972..65ec9cdb74 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -7261,7 +7261,7 @@ GLib/GObject code.") (define-public libgnomekbd (package (name "libgnomekbd") - (version "3.26.0") + (version "3.26.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -7269,7 +7269,7 @@ GLib/GObject code.") name "-" version ".tar.xz")) (sha256 (base32 - "0xc8jrc44x2h24v28wv36k70k7bwxy6p2vsvxvvia1n3ay642fza")))) + "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) From d47fa82dfcbd201c889d9057916d2f539cb1b864 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 21 Sep 2019 18:57:53 +0200 Subject: [PATCH 143/227] gnu: libgnomekbd: Don't use NAME in source URI. * gnu/packages/gnome.scm (libgnomekbd)[source]: Hard-code NAME. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 65ec9cdb74..34a0c43b50 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -7264,9 +7264,9 @@ GLib/GObject code.") (version "3.26.1") (source (origin (method url-fetch) - (uri (string-append "mirror://gnome/sources/" name "/" + (uri (string-append "mirror://gnome/sources/libgnomekbd/" (version-major+minor version) "/" - name "-" version ".tar.xz")) + "libgnomekbd-" version ".tar.xz")) (sha256 (base32 "0y962ykn3rr9gylj0pwpww7bi20lmhvsw6qvxs5bisbn2mih5jpp")))) From e13b354a7733d22bb67c8618aa41d7f759f4432e Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sat, 21 Sep 2019 20:35:04 +0200 Subject: [PATCH 144/227] gnu: emacs-elfeed: Update to 3.2.0. * gnu/packages/emacs-xyz.scm (emacs-elfeed): Update to 3.2.0. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index bffd0c68eb..a463f4cd58 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -5877,7 +5877,7 @@ If you want to mark a folder manually as a project just create an empty (define-public emacs-elfeed (package (name "emacs-elfeed") - (version "3.1.0") + (version "3.2.0") (source (origin (method git-fetch) @@ -5886,7 +5886,7 @@ If you want to mark a folder manually as a project just create an empty (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1bzpl6lc7kq9bph4bfz1fn19207blrnhjr2g7yinhn0nnnjmxi8i")))) + (base32 "0m0a35210pb4yf6m8mzaq6nkl9x6fphjjqyl3dzygnmmzxkc8aw2")))) (build-system emacs-build-system) (arguments `(#:tests? #t From 2f587b3f97bf384e6a62acb3af6929b609d184ca Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sat, 21 Sep 2019 22:31:48 +0200 Subject: [PATCH 145/227] gnu: emacs-github-review: Enable tests. * gnu/packages/emacs-xyz.scm (emacs-github-review): Enable tests. --- gnu/packages/emacs-xyz.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index a463f4cd58..f4311dd336 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -14789,6 +14789,12 @@ viewing files with long lines.") `(("emacs-dash" ,emacs-dash) ("emacs-s" ,emacs-s) ("emacs-ghub" ,emacs-ghub))) + (native-inputs + `(("emacs-buttercup" ,emacs-buttercup) + ("emacs-undercover" ,emacs-undercover))) + (arguments + `(#:tests? #t + #:test-command '("buttercup" "-L" "test/github-review-test.el"))) (home-page "https://github.com/charignon/github-review") (synopsis "Review GitHub pull requests within Emacs") (description "This package provides commands to pull in, comment on, and From 71ace914cf4dbbc0c99bdaf0b33c05e737d0c8f7 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sat, 21 Sep 2019 22:57:45 +0200 Subject: [PATCH 146/227] gnu: emacs-attrap: Update to 1.0-2.18cd1f7. * gnu/packages/emacs-xyz.scm (emacs-attrap): Update to 1.0-2.18cd1f7. --- gnu/packages/emacs-xyz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index f4311dd336..4fda76deaa 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -9516,8 +9516,8 @@ functions written in continuation-passing style.") (license license:gpl3+))) (define-public emacs-attrap - (let ((commit "3b092bb8f6755a97e6ecb7623b9d2dde58beba4a") - (revision "1")) + (let ((commit "18cd1f7832870a36c404e872fa83a271fe8e688d") + (revision "2")) (package (name "emacs-attrap") (version (git-version "1.0" revision commit)) @@ -9528,7 +9528,7 @@ functions written in continuation-passing style.") (commit commit))) (sha256 (base32 - "05d32980saji8ja1pcv65l0s3dq7w0n5hpikbf246hciy1x067pp")) + "078391949h0fgmshin8f79a1a595m06ig577rkgjqgngcp0d61l9")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (propagated-inputs From 265f30c9c434b5ad85a364ca780d635d32b615a0 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sat, 21 Sep 2019 23:57:59 +0200 Subject: [PATCH 147/227] gnu: mutt: Update to 1.12.2. * gnu/packages/mail.scm (mutt): Update to 1.12.2. --- gnu/packages/mail.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 35b4e03e1b..3d5417bfb5 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -353,14 +353,14 @@ aliasing facilities to work just as they would on normal mail.") (define-public mutt (package (name "mutt") - (version "1.12.1") + (version "1.12.2") (source (origin (method url-fetch) (uri (string-append "https://bitbucket.org/mutt/mutt/downloads/" "mutt-" version ".tar.gz")) (sha256 (base32 - "0311sip2q90aqaxn7h3cck1zl98b4vifqi8bp5fsizy4dr06bi81")) + "10k8352s0z7yan6d4z2am80qd3bsaky4h89g72wl4xr3x067ahmw")) (patches (search-patches "mutt-store-references.patch")))) (build-system gnu-build-system) (inputs From aaeb2b34cbebb12da326caed09d9d9625a8a2af1 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Sat, 21 Sep 2019 15:31:41 -0700 Subject: [PATCH 148/227] gnu: diffoscope: Adjust native-inputs for architecture limitations. * gnu/packages/diffoscope (diffoscope)[native-inputs]: Only add ghc on x86_64-linux and i686-linux. Only add openjdk and enjarify on x86_64-linux. --- gnu/packages/diffoscope.scm | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/gnu/packages/diffoscope.scm b/gnu/packages/diffoscope.scm index 8df5a9cc0e..15d5a5787e 100644 --- a/gnu/packages/diffoscope.scm +++ b/gnu/packages/diffoscope.scm @@ -63,7 +63,8 @@ #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) - #:use-module (guix utils)) + #:use-module (guix utils) + #:use-module (ice-9 match)) (define-public diffoscope (let ((version "125")) @@ -165,6 +166,22 @@ ("python-chardet" ,python-chardet) ("python-binwalk" ,python-binwalk) ;; test suite skips tests when tool is missing + ,@(match (%current-system) + ;; ghc is only available on x86 currently. + ((or "x86_64-linux" "i686-linux") + `(("ghc" ,ghc))) + (_ + `())) + ,@(match (%current-system) + ;; openjdk and dependent packages are only + ;; available on x86_64 currently. + ((or "x86_64-linux") + `(("enjarify" ,enjarify) + ;; no unversioned openjdk available + ("openjdk:jdk" ,openjdk12 "jdk") + )) + (_ + `())) ("abootimg" ,abootimg) ("bdb" ,bdb) ("binutils" ,binutils) @@ -175,10 +192,8 @@ ("docx2txt" ,docx2txt) ("dtc" ,dtc) ("e2fsprogs" ,e2fsprogs) - ("enjarify" ,enjarify) ("ffmpeg" ,ffmpeg) ("gettext" ,gettext-minimal) - ("ghc" ,ghc) ("ghostscript" ,ghostscript) ("giflib:bin" ,giflib "bin") ("gnumeric" ,gnumeric) @@ -190,8 +205,6 @@ ("mono" ,mono) ("ocaml" ,ocaml) ("odt2txt" ,odt2txt) - ;; no unversioned openjdk available - ("openjdk:jdk" ,openjdk12 "jdk") ("openssh" ,openssh) ("pgpdump" ,pgpdump) ("poppler" ,poppler) From ee0a392fa001b3e3aea05150dd985b59fb7e5e3b Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sun, 22 Sep 2019 05:00:49 +0200 Subject: [PATCH 149/227] gnu: emacs-lispy: Update included files. * gnu/packages/emacs-xyz.scm (emacs-lispy): Update included files. --- gnu/packages/emacs-xyz.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 4fda76deaa..878d0a3d6e 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -5297,7 +5297,9 @@ navigate code in a tree-like fashion.") `(("emacs-clojure-mode" ,emacs-clojure-mode) ("emacs-undercover" ,emacs-undercover))) (arguments - `(#:include (cons* "\\.clj$" "\\.edn$" "\\.py$" %default-include) + `(#:include (cons* "^lispy-clojure\\.clj$" + "^lispy-python\\.py$" + %default-include) #:phases ;; XXX: one failing test involving python evaluation (modify-phases %standard-phases From c5c197cf25236411b1de51f21b179ee997e32621 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sun, 22 Sep 2019 07:03:12 +0200 Subject: [PATCH 150/227] gnu: emacs-crux: Update to 0.3.0-2.308f17d. * gnu/packages/emacs-xyz.scm (emacs-crux): Update to 0.3.0-2.308f17d. --- gnu/packages/emacs-xyz.scm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 878d0a3d6e..663dcf5c1f 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -12024,12 +12024,11 @@ confused by comments or @code{foo-bar} matching @code{foo}.") (license license:gpl3+))) (define-public emacs-crux - (let ((commit "4f5c8fefd5a6aa52e128c4a0401cc86410d6ac8f") - (revision "1")) + (let ((commit "308f17d914e2cd79cbc809de66d02b03ceb82859") + (revision "2")) (package (name "emacs-crux") - (version (string-append "0.3.0" "-" revision "." - (string-take commit 7))) + (version (git-version "0.3.0" revision commit)) (source (origin (method git-fetch) @@ -12039,7 +12038,7 @@ confused by comments or @code{foo-bar} matching @code{foo}.") (file-name (git-file-name name version)) (sha256 (base32 - "1fdxvv25cs01sg6fmvmzxpzvs50i6v8n2jya60lbavxqqhi0sbxd")))) + "0rf84finwlvmy0xpgyljjvnrijlmkzjyw9rh97svgxp9c1rzfk0x")))) (build-system emacs-build-system) (home-page "https://github.com/bbatsov/crux") (synopsis "Collection of useful functions for Emacs") From 4b48101012fc1ad900e20e3b298e8f9fd9f822ae Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sun, 22 Sep 2019 07:03:43 +0200 Subject: [PATCH 151/227] gnu: emacs-company-lua: Update to 0.1-2.29f6819. * gnu/packages/emacs-xyz.scm (emacs-company-lua): Update to 0.1-2.29f6819. [arguments]: Include extra directory. --- gnu/packages/emacs-xyz.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 663dcf5c1f..6f81200872 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -12299,10 +12299,11 @@ until the top-level form is no longer a macro call.") (license license:gpl3+)))) (define-public emacs-company-lua - (let ((commit "0be8122f3adf57ad27953bf4b03545d6298d3da4")) + (let ((commit "29f6819de4d691e5fd0b62893a9f4fbc1c6fcb52") + (revision "2")) (package (name "emacs-company-lua") - (version (git-version "0.1" "1" commit)) + (version (git-version "0.1" "2" commit)) (source (origin (method git-fetch) @@ -12312,13 +12313,15 @@ until the top-level form is no longer a macro call.") (file-name (git-file-name name version)) (sha256 (base32 - "1d9i165apgmwns7b2fd5wcpjpkah3dyj20v5sb8ynvz6qhhr5r9c")))) + "0ny2dcc7c585p7v3j6q0rpkbj1qmf2ismy8a5020jpr585xvz0hh")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-company" ,emacs-company) ("emacs-s" ,emacs-s) ("emacs-f" ,emacs-f) ("emacs-lua-mode" ,emacs-lua-mode))) + (arguments + `(#:include (cons* "^lua\\/" %default-include))) (home-page "https://github.com/ptrv/company-lua") (synopsis "Company backend for Lua") (description From f36617cbf1fab9cbc4f93924b3cbb78e70338d24 Mon Sep 17 00:00:00 2001 From: John Soo Date: Wed, 3 Jul 2019 09:40:31 -0700 Subject: [PATCH 152/227] gnu: Add coin3D. * gnu/packages/graphics.scm (coin3D): New variable. --- gnu/packages/graphics.scm | 47 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 988b519ffa..cd33ea2800 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2019 Mark H Weaver ;;; Copyright © 2019 Carlo Zancanaro ;;; Copyright © 2019 Steve Sprang +;;; Copyright © 2019 John Soo ;;; ;;; This file is part of GNU Guix. ;;; @@ -1059,3 +1060,49 @@ For example, two shapes can be combined by uniting them, by intersecting them, or by subtracting one shape from the other.") (home-page "http://www.opencsg.org/") (license license:gpl2)))) + +(define-public coin3D + (package + (name "coin3D") + (version "4.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://bitbucket.org/Coin3D/coin/downloads/coin-" + version "-src.zip")) + (sha256 + (base32 + "1mqwlqzvc9ydfxi0bfskwlil16mbnkphfz36p0zl2mvw6h05aqh0")) + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file + '("cfg/csubst.exe" + "cfg/wrapmsvc.exe")) + #t)))) + (build-system cmake-build-system) + (native-inputs + `(("doxygen" ,doxygen) + ("graphviz" ,graphviz))) + (inputs + `(("boost" ,boost) + ("freeglut" ,freeglut) + ("glew" ,glew))) + (arguments + `(#:configure-flags + (list + "-DCOIN_BUILD_DOCUMENTATION_MAN=ON" + (string-append "-DBOOST_ROOT=" + (assoc-ref %build-inputs "boost"))))) + (home-page "https://bitbucket.org/Coin3D/coin/wiki/Home") + (synopsis + "High-level 3D visualization library with Open Inventor 2.1 API") + (description + "Coin is a 3D graphics library with an Application Programming Interface +based on the Open Inventor 2.1 API. For those who are not familiar with +Open Inventor, it is a scene-graph based retain-mode rendering and model +interaction library, written in C++, which has become the de facto +standard graphics library for 3D visualization and visual simulation +software in the scientific and engineering community.") + (license license:bsd-3))) From 37a3abb1c6281fb883e114e8bf828817e0c65845 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sat, 6 Jul 2019 09:13:50 -0700 Subject: [PATCH 153/227] gnu: Add python-shiboken-2. * gnu/packages/qt.scm (python-shiboken-2): New variable. --- gnu/packages/qt.scm | 59 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 165b8fd7b4..9f012f121c 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -11,6 +11,7 @@ ;;; Copyright © 2018 Nicolas Goaziou ;;; Copyright © 2018 Hartmut Goebel ;;; Copyright © 2018 Eric Bavier +;;; Copyright © 2018 John Soo ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,7 +39,9 @@ #:use-module (guix packages) #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages base) #:use-module (gnu packages bison) + #:use-module (gnu packages cmake) #:use-module (gnu packages compression) #:use-module (gnu packages cups) #:use-module (gnu packages databases) @@ -54,6 +57,7 @@ #:use-module (gnu packages icu4c) #:use-module (gnu packages image) #:use-module (gnu packages linux) + #:use-module (gnu packages llvm) #:use-module (gnu packages maths) #:use-module (gnu packages nss) #:use-module (gnu packages pciutils) @@ -2283,3 +2287,58 @@ user-friendly than the default @code{QColorDialog} and several other color-related widgets.") ;; Includes a license exception for combining with GPL2 code. (license license:lgpl3+)))) + +(define-public python-shiboken-2 + (let ((revision "1") + ;; Pinned to branches with support for qt 5.11.3 + (commit "4018787a3cc01d632fdca7891ac8aa9487110c26")) + (package + (name "python-shiboken-2") + (version (git-version "v5.11.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + ;; The latest versions of Shiboken live in the pyside repo. + ;; There is another standalone repo only for Shiboken + ;; but it is outdated + (url "https://code.qt.io/pyside/pyside-setup") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0g8jacm2iqd7lw2m7f1dp1nnrsk38bl3m8pihm8zz9gxs8d31sf5")))) + (build-system cmake-build-system) + (inputs + `(("llvm-6" ,llvm-6) + ("clang-6" ,clang-6) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("python-wrapper" ,python-wrapper) + ("qtbase" ,qtbase) + ("qtxmlpatterns" ,qtxmlpatterns))) + (arguments + `(#:tests? #f + ;; FIXME: Building tests fails + #:configure-flags '("-DBUILD_TESTS=off") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'use-shiboken-dir-only + (lambda _ (chdir "sources/shiboken2") #t)) + (add-before 'configure 'set-build-env + (lambda* (#:key inputs #:allow-other-keys) + (let ((llvm (assoc-ref inputs "llvm-6"))) + (setenv "CLANG_INSTALL_DIR" llvm) + #t)))))) + (home-page "https://wiki.qt.io/Qt_for_Python") + (synopsis + "Shiboken generates bindings for C++ libraries using CPython source code") + (description + "Shiboken generates bindings for C++ libraries using CPython source code") + (license + (list + ;; The main code is GPL3 or LGPL3. + ;; Examples are BSD-3. + license:gpl3 + license:lgpl3 + license:bsd-3))))) From 8b5107d2099ae8fe787ae5e4f60cb1d11d737d3a Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 11 Aug 2019 12:38:08 -0700 Subject: [PATCH 154/227] gnu: Add libcxx-6 * gnu/packages/llvm.scm (libcxx-6): New variable. --- gnu/packages/llvm.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 9efb4a4841..d8ffe35117 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -440,6 +440,23 @@ with that of libgomp, the GNU Offloading and Multi Processing Library.") "0rxn4rh7rrnsqbdgp4gzc8ishbkryhpl1kd3mpnxzpxxhla3y93w" #:patches '("clang-6.0-libc-search-path.patch"))) +;; Libcxx files specifically used by PySide2. +(define-public libcxx-6 + (package + (inherit libcxx) + (version (package-version llvm-6)) + (source + (origin + (inherit (package-source libcxx)) + (uri (string-append "http://llvm.org/releases/" + version "/libcxx-" version ".src.tar.xz")) + (sha256 + (base32 + "0rzw4qvxp6qx4l4h9amrq02gp7hbg8lw4m0sy3k60f50234gnm3n")))) + (native-inputs + `(("clang" ,clang-6) + ("llvm" ,llvm-6))))) + (define-public llvm-3.9.1 (package (inherit llvm) (name "llvm") From f1c4dbfa552fd543ec89a58ab9fee680272d1663 Mon Sep 17 00:00:00 2001 From: John Soo Date: Mon, 2 Sep 2019 07:27:15 -0700 Subject: [PATCH 155/227] gnu: Add python-pyside-2. * gnu/packages/qt.scm (python-pyside-2): New variable. --- gnu/packages/qt.scm | 83 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 9f012f121c..138ca2becb 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -2342,3 +2342,86 @@ color-related widgets.") license:gpl3 license:lgpl3 license:bsd-3))))) + +(define-public python-pyside-2 + (let ((revision "1") + ;; Pinned to branches with support for qt 5.11.3 + (commit "4018787a3cc01d632fdca7891ac8aa9487110c26")) + (package + (name "python-pyside-2") + (version (git-version "v5.11.3" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://code.qt.io/pyside/pyside-setup") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0g8jacm2iqd7lw2m7f1dp1nnrsk38bl3m8pihm8zz9gxs8d31sf5")))) + (build-system cmake-build-system) + (inputs + `(("libcxx" ,libcxx-6) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("llvm-6" ,llvm-6) + ("clang-6" ,clang-6) + ("qtbase" ,qtbase) + ("qtdatavis3d" ,qtdatavis3d) + ("qtlocation" ,qtlocation) + ("qtmultimedia" ,qtmultimedia) + ("qtquickcontrols" ,qtquickcontrols) + ("qtscript" ,qtscript) + ("qtscxml" ,qtscxml) + ("qtsensors" ,qtsensors) + ("qtspeech" ,qtspeech) + ("qtsvg" ,qtsvg) + ("qtwebchannel" ,qtwebchannel) + ("qtwebsockets" ,qtwebsockets) + ("qtx11extras" ,qtx11extras) + ("qtxmlpatterns" ,qtxmlpatterns))) + (native-inputs + `(("cmake" ,cmake) + ("python-shiboken-2" ,python-shiboken-2) + ("python-wrapper" ,python-wrapper) + ("qttools" ,qttools) + ("which" ,which))) + (arguments + `(#:tests? #f + ;; FIXME: Building tests fail. + #:configure-flags '("-DBUILD_TESTS=FALSE") + #:phases + (modify-phases + %standard-phases + (add-after 'unpack 'go-to-source-dir + (lambda _ (chdir "sources/pyside2") #t)) + (add-before 'configure 'set-clang-dir + (lambda* (#:key inputs #:allow-other-keys) + (let ((clang (assoc-ref inputs "clang-6")) + (libcxx (assoc-ref inputs "libcxx"))) + (setenv "CLANG_INSTALL_DIR" clang) + (substitute* "cmake/Macros/PySideModules.cmake" + (("--include-paths=") + (string-append "--include-paths=" libcxx "/include/c++/v1:"))) + #t)))))) + (home-page "https://wiki.qt.io/Qt_for_Python") + (synopsis + "The Qt for Python product enables the use of Qt5 APIs in Python applications") + (description + "The Qt for Python product enables the use of Qt5 APIs in Python +applications. It lets Python developers utilize the full potential of Qt, +using the PySide2 module. The PySide2 module provides access to the +individual Qt modules such as QtCore, QtGui,and so on. Qt for Python also +comes with the Shiboken2 CPython binding code generator, which can be used to +generate Python bindings for your C or C++ code.") + (license (list + license:lgpl3 + ;;They state that: + ;; this file may be used under the terms of the GNU General + ;; Public License version 2.0 or (at your option) the GNU + ;; General Public license version 3 or any later version + ;; approved by the KDE Free Qt Foundation. + ;; Thus, it is currently v2 or v3, but no "+". + license:gpl3 + license:gpl2))))) From 2ea8b51a713716f38b99c727a6020aa471718e96 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sat, 6 Jul 2019 18:49:08 -0700 Subject: [PATCH 156/227] gnu: Add python-pyside-2-tools. * gnu/packages/qt.scm (python-pyside-2-tools): New variable. --- gnu/packages/qt.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index 138ca2becb..3ee3a2c044 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -2425,3 +2425,35 @@ generate Python bindings for your C or C++ code.") ;; Thus, it is currently v2 or v3, but no "+". license:gpl3 license:gpl2))))) + +(define-public python-pyside-2-tools + (let ((revision "1") + ;; Pinned to branches with support for qt 5.11.3 + (commit "f1b775537e7fbd718516749583b2abf1cb6adbce")) + (package + (name "python-pyside-2-tools") + (version (git-version "v5.11.2" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://code.qt.io/pyside/pyside-tools") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1w2g5afvww9r89wmdm9jx8sz67x4bzy9difkh72n4c73ya1n91ry")))) + (build-system cmake-build-system) + (inputs + `(("python-pyside-2" ,python-pyside-2) + ("python-shiboken-2" ,python-shiboken-2) + ("qtbase" ,qtbase))) + (arguments + `(#:tests? #f + #:configure-flags '("-DBUILD_TESTS=off"))) + (home-page "https://wiki.qt.io/Qt_for_Python") + (synopsis + "Contains command line tools for PySide2") + (description + "Contains lupdate, rcc and uic tools for PySide2") + (license license:gpl2)))) From 2895a87fbf8ced349390f21e25962e48bf0d604b Mon Sep 17 00:00:00 2001 From: John Soo Date: Sat, 6 Jul 2019 19:05:37 -0700 Subject: [PATCH 157/227] gnu: Add libspnav. * gnu/packages/engineering.scm (libspnav): New variable. --- gnu/packages/engineering.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index c1c1b18ed3..78b6a3a826 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2019 Tim Stahel ;;; Copyright © 2019 Jovany Leandro G.C ;;; Copyright © 2019 Steve Sprang +;;; Copyright © 2019 John Soo ;;; ;;; This file is part of GNU Guix. ;;; @@ -2214,3 +2215,38 @@ interactive modeler, OpenSCAD generates 3D models from a script, giving you full programmatic control over your models.") (home-page "https://www.openscad.org/") (license license:gpl2+))) + +(define-public libspnav + (package + (name "libspnav") + (version "0.2.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/FreeSpacenav/libspnav.git") + (commit (string-append "libspnav-" version)))) + (sha256 + (base32 + "098h1jhlj87axpza5zgy58prp0zn94wyrbch6x0s7q4mzh7dc8ba")) + (file-name (git-file-name name version)))) + (build-system gnu-build-system) + (inputs + `(("libx11" ,libx11))) + (arguments `(#:tests? #f)) + (home-page "http://spacenav.sourceforge.net/") + (synopsis + "Library for communicating with spacenavd or 3dxsrv") + (description + "The libspnav library is provided as a replacement of the magellan +library. It provides a cleaner, and more orthogonal interface. libspnav +supports both the original X11 protocol for communicating with the driver, and +the new alternative non-X protocol. Programs that choose to use the X11 +protocol, are automatically compatible with either the free spacenavd driver +or the official 3dxserv, as if they were using the magellan SDK. + +Also, libspnav provides a magellan API wrapper on top of the new API. So, any +applications that were using the magellan library, can switch to libspnav +without any changes. And programmers that are familliar with the magellan API +can continue using it with a free library without the restrictions of the +official SDK.") + (license license:bsd-3))) From 2003e837f445fbd43724ac155934bcec562f9cd6 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 7 Jul 2019 10:03:38 -0700 Subject: [PATCH 158/227] gnu: Add libarea. * gnu/packages/engineering.scm (libarea): New variable. --- gnu/packages/engineering.scm | 44 ++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 78b6a3a826..aec7b4f676 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -51,6 +51,7 @@ #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages check) + #:use-module (gnu packages cmake) #:use-module (gnu packages commencement) #:use-module (gnu packages compression) #:use-module (gnu packages curl) @@ -2216,6 +2217,49 @@ full programmatic control over your models.") (home-page "https://www.openscad.org/") (license license:gpl2+))) +(define-public libarea + (let ((revision "1") + (commit "8f8bac811c10f1f01fda0d742a18591f61dd76ee")) + (package + (name "libarea") + (version (git-version "0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference (url "https://github.com/Heeks/libarea.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0pvqz6cabxqdz5y26wnj6alkn8v5d7gkx0d3h8xmg4lvy9r3kh3g")))) + (build-system gnu-build-system) + (inputs `(("boost" ,boost) + ("python-wrapper" ,python-wrapper))) + (native-inputs + `(("cmake" ,cmake))) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'configure 'cmake-configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (cmake (assoc-ref inputs "cmake"))) + (mkdir-p "build") + (invoke "cmake" + (string-append "-DCMAKE_INSTALL_PREFIX=" out))))) + (delete 'configure)))) + (home-page "https://github.com/Heeks/libarea") + (synopsis + "Library and python module for pocketing and profiling operations") + (description + "Area is a CAM-related software for pocketing operation. + +This project provides library and associated python-module to compute pocket +operations.") + (license (list + license:bsd-3 + license:gpl3+))))) + (define-public libspnav (package (name "libspnav") From 704853fb7ab9d554b52048012abaeccda09e544f Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 7 Jul 2019 10:13:17 -0700 Subject: [PATCH 159/227] gnu: Add libmedfile. * gnu/packages/engineering.scm (libmedfile): New variable. --- gnu/packages/engineering.scm | 45 ++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index aec7b4f676..256b450a12 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -2217,6 +2217,51 @@ full programmatic control over your models.") (home-page "https://www.openscad.org/") (license license:gpl2+))) +(define-public libmedfile + (package + (name "libmedfile") + (version "4.0.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://files.salome-platform.org/Salome/other/med-" + version ".tar.gz")) + (sha256 + (base32 + "017h9p0x533fm4gn6pwc8kmp72rvqmcn6vznx72nkkl2b05yjx54")))) + (build-system cmake-build-system) + (inputs `(("hdf5" ,hdf5-1.10))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'remove-test-output + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (delete-file-recursively + (string-append out "/bin/testc")) + #t)))))) + (home-page "https://www.salome-platform.org") + (synopsis "Library to read and write MED files") + (description + "The purpose of the MED module is to provide a standard for storing and +recovering computer data associated to numerical meshes and fields, and to +facilitate the exchange between codes and solvers. + +The persistent data storage is based upon HDF format (like CGNS, a standard +developed by Boeing and NASA in the area of Computational Fluid Dynamic). + +MED also provides structures to hold data on meshes and fields. These +structures are exchanged between solvers, hide the communication level (CORBA +or MPI), and offer persistence (read/write in .med files). + +The main benefit of a common exchange format is reduced complexity of code +coupling. It also allows sharing such high level functionalities as +computation of nodal connectivity of sub-elements (faces and edges), +arithmetic operations on fields, entity location functionalities, and +interpolation toolkit.") + (license license:gpl3+))) + (define-public libarea (let ((revision "1") (commit "8f8bac811c10f1f01fda0d742a18591f61dd76ee")) From 4cd9de6068f439c52f6874f00ec608c41156d095 Mon Sep 17 00:00:00 2001 From: John Soo Date: Sun, 7 Jul 2019 10:32:10 -0700 Subject: [PATCH 160/227] gnu: Add freecad. * gnu/packages/engineering.scm (freecad): New variable. --- gnu/packages/engineering.scm | 92 ++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 256b450a12..bbd9151995 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -55,6 +55,7 @@ #:use-module (gnu packages commencement) #:use-module (gnu packages compression) #:use-module (gnu packages curl) + #:use-module (gnu packages documentation) #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) #:use-module (gnu packages fpga) @@ -68,10 +69,12 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages gperf) #:use-module (gnu packages graphics) + #:use-module (gnu packages graphviz) #:use-module (gnu packages groff) #:use-module (gnu packages gtk) #:use-module (gnu packages guile) #:use-module (gnu packages image) + #:use-module (gnu packages image-processing) #:use-module (gnu packages imagemagick) #:use-module (gnu packages linux) ;FIXME: for pcb #:use-module (gnu packages m4) @@ -86,6 +89,7 @@ #:use-module (gnu packages qt) #:use-module (gnu packages readline) #:use-module (gnu packages swig) + #:use-module (gnu packages tbb) #:use-module (gnu packages tcl) #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) @@ -2217,6 +2221,94 @@ full programmatic control over your models.") (home-page "https://www.openscad.org/") (license license:gpl2+))) +(define-public freecad + (package + (name "freecad") + (version "0.18.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/FreeCAD/FreeCAD.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1ny29y0h8smg1bwi5yn4kcnyfprqh3v7v2z8837cmmhcwp8dr95m")))) + (build-system cmake-build-system) + (native-inputs + `(("doxygen" ,doxygen) + ("graphviz" ,graphviz) + ("qttools" ,qttools) + ("pkg-config" ,pkg-config) + ("swig" ,swig))) + (inputs + `(("boost" ,boost) + ("coin3D" ,coin3D) + ("eigen" ,eigen) + ("freetype" ,freetype) + ("glew" ,glew) + ("hdf5" ,hdf5-1.10) + ("libarea" ,libarea) + ("libmedfile" ,libmedfile) + ("libspnav" ,libspnav) + ("libxi" ,libxi) + ("libxmu" ,libxmu) + ("openmpi" ,openmpi) + ("opencascade-occt" ,opencascade-occt) + ("python-matplotlib" ,python-matplotlib) + ("python-pyside-2" ,python-pyside-2) + ("python-pyside-2-tools" ,python-pyside-2-tools) + ("python-shiboken-2" ,python-shiboken-2) + ("python-wrapper" ,python-wrapper) + ("qtbase" ,qtbase) + ("qtsvg" ,qtsvg) + ("qtx11extras" ,qtx11extras) + ("qtxmlpatterns" ,qtxmlpatterns) + ;; qtwebkit is optional. We remove it currently, because it takes + ;; much time to compile and substitutes are often unavailable + ;;("qtwebkit" ,qtwebkit) + ("tbb" ,tbb) + ("vtk" ,vtk) + ("xerces-c" ,xerces-c) + ("zlib" ,zlib))) + (arguments + `(#:tests? #f + #:configure-flags + (list + "-DBUILD_QT5=ON" + (string-append "-DCMAKE_INSTALL_LIBDIR=" + (assoc-ref %outputs "out") "/lib")) + #:phases + (modify-phases %standard-phases + (add-before 'configure 'restore-pythonpath + (lambda _ + (substitute* "src/Main/MainGui.cpp" + (("_?putenv\\(\"PYTHONPATH=\"\\);") "")) + #t)) + (add-after 'install 'wrap-pythonpath + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-program (string-append out "/bin/FreeCAD") + (list "PYTHONPATH" + 'prefix (list (getenv "PYTHONPATH"))))) + #t))))) + (home-page "https://www.freecadweb.org/") + (synopsis "Your Own 3D Parametric Modeler") + (description + "FreeCAD is a general purpose feature-based, parametric 3D modeler for +CAD, MCAD, CAx, CAE and PLM, aimed directly at mechanical engineering and +product design but also fits a wider range of uses in engineering, such as +architecture or other engineering specialties. It is 100% Open Source (LGPL2+ +license) and extremely modular, allowing for very advanced extension and +customization.") + (license + (list + license:lgpl2.1+ + license:lgpl2.0+ + license:gpl3+ + license:bsd-3)))) + (define-public libmedfile (package (name "libmedfile") From b5677e61bfb2c7b55cbf2f7c82b00c417958f23b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 Sep 2019 20:00:48 +0200 Subject: [PATCH 161/227] gnu: parallel: Update to 20190922. * gnu/packages/parallel.scm (parallel): Update to 20190922. --- gnu/packages/parallel.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 3b7ce4c150..253596d8e3 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -52,14 +52,14 @@ (define-public parallel (package (name "parallel") - (version "20190822") + (version "20190922") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/parallel/parallel-" version ".tar.bz2")) (sha256 - (base32 "1mi3a18fdwcx50jg51pw1ks1fkmc2slyinff0yb3xhihi2szbskp")))) + (base32 "0qrw34rpp8g5knb2nhs8z1hz9i42nxjn6i12m4rblm0anhnfwbr8")))) (build-system gnu-build-system) (arguments `(#:phases From 0920b41c1d943a904365034ab73434dcea3ec5c7 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 22 Sep 2019 12:07:35 +0300 Subject: [PATCH 162/227] gnu: js-datatables: Update to 1.10.19. * gnu/packages/javascript.scm (js-datatables): Update to 1.10.19. --- gnu/packages/javascript.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm index 2993eb66f6..0e33f889b8 100644 --- a/gnu/packages/javascript.scm +++ b/gnu/packages/javascript.scm @@ -286,14 +286,14 @@ detection.") (define-public js-datatables (package (name "js-datatables") - (version "1.10.15") + (version "1.10.19") (source (origin (method url-fetch) (uri (string-append "https://datatables.net/releases/DataTables-" version ".zip")) (sha256 (base32 - "1y9xqyqyz7x1ls3ska71pshl2hpiy3qnw1f7wygyslbhy4ssgf57")))) + "0cff8a1g7pjwbjdqq0yzqd963ar7pfi4splmm6rwdzganr77rkhb")))) (build-system minify-build-system) (arguments `(#:javascript-files '("media/js/dataTables.bootstrap.js" From cbf4481a59eae82151d2c1307fa8a08961a26555 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sun, 22 Sep 2019 21:31:12 +0200 Subject: [PATCH 163/227] gnu: emacs-company-lsp: Enable tests. * gnu/packages/emacs-xyz.scm (emacs-company-lsp): Enable tests. --- gnu/packages/emacs-xyz.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 6f81200872..b603ba2852 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -3739,6 +3739,11 @@ on context.") ("emacs-company" ,emacs-company) ("emacs-s" ,emacs-s) ("emacs-dash" ,emacs-dash))) + (native-inputs + `(("emacs-buttercup" ,emacs-buttercup))) + (arguments + `(#:tests? #t + #:test-command '("buttercup" "-L" "."))) (home-page "https://github.com/tigersoldier/company-lsp") (synopsis "Completion for @code{lsp-mode}") (description From fc60a8b714fd2166fa58a00965af1c498a8caea2 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sun, 22 Sep 2019 22:24:31 +0200 Subject: [PATCH 164/227] gnu: emacs-realgud: Update to 1.5.1. * gnu/packages/emacs-xyz.scm (emacs-realgud): Update to 1.5.1. --- gnu/packages/emacs-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index b603ba2852..fffb2ee21c 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -4901,7 +4901,7 @@ after buffer changes.") (define-public emacs-realgud (package (name "emacs-realgud") - (version "1.5.0") + (version "1.5.1") (source (origin (method git-fetch) @@ -4910,7 +4910,7 @@ after buffer changes.") (commit version))) (sha256 (base32 - "0xnick9016wxrgi8v0lycvxhyz8l2k4nfvdpjc5yq476vwrjfzbz")) + "1d3s23jk0i34wpyxfajydgyyvsxnpbqrfl0mgydsq7zw2c75ylnq")) (file-name (git-file-name name version)))) (build-system emacs-build-system) (arguments From 99b63bf820eb04f4ab09f271f73666af5274704b Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sun, 22 Sep 2019 22:33:10 +0200 Subject: [PATCH 165/227] gnu: emacs-elisp-refs: Enable tests. * gnu/packages/emacs-xyz.scm (emacs-elisp-refs): Enable tests. --- gnu/packages/emacs-xyz.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index fffb2ee21c..7d38dc3ce1 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -12021,6 +12021,12 @@ continue.") ("emacs-loop" ,emacs-loop) ("emacs-s" ,emacs-s) ("emacs-shut-up" ,emacs-shut-up))) + (native-inputs + `(("emacs-ert-runner" ,emacs-ert-runner) + ("emacs-undercover" ,emacs-undercover))) + (arguments + `(#:tests? #t + #:test-command '("ert-runner"))) (home-page "https://github.com/Wilfred/elisp-refs") (synopsis "Find callers of elisp functions or macros") (description "Find references to functions, macros or variables. Unlike a From 08a36df874b69f5036ac6273006c65996cb884e7 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sun, 22 Sep 2019 22:36:20 +0200 Subject: [PATCH 166/227] gnu: emacs-loop: Enable tests. * gnu/packages/emacs-xyz.scm (emacs-loop): Enable tests. --- gnu/packages/emacs-xyz.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 7d38dc3ce1..605fe4b990 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -11993,6 +11993,12 @@ tramp.") (sha256 (base32 "1gs95xnmnn8aa4794k7h8mw1sz1nfdh9v0caqj6yvnsdnwy74n5x")))) (build-system emacs-build-system) + (native-inputs + `(("emacs-ert-runner" ,emacs-ert-runner) + ("emacs-undercover" ,emacs-undercover))) + (arguments + `(#:tests? #t + #:test-command '("ert-runner"))) (home-page "https://github.com/Wilfred/loop.el") (synopsis "Imperative loop structures for Emacs") (description "Loop structures familiar to users of other languages. This From 97d4dab0a6c00405fd2997627ef06242335eb821 Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Sun, 22 Sep 2019 22:37:22 +0200 Subject: [PATCH 167/227] gnu: emacs-tco-el: Enable tests. * gnu/packages/emacs-xyz.scm (emacs-tco-el): Enable tests. --- gnu/packages/emacs-xyz.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 605fe4b990..19e7ab305a 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -16919,11 +16919,10 @@ parent directory using @code{Eshell}.") (define-public emacs-tco-el (let ((commit "482db5313f090b17ed22ccd856f0e141dc75afe6") - (version "0.3") (revision "1")) (package (name "emacs-tco-el") - (version (git-version version revision commit)) + (version (git-version "0.3" revision commit)) (source (origin (method git-fetch) @@ -16937,6 +16936,12 @@ parent directory using @code{Eshell}.") (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash))) + (native-inputs + `(("emacs-ert-runner" ,emacs-ert-runner) + ("emacs-undercover" ,emacs-undercover))) + (arguments + `(#:tests? #t + #:test-command '("ert-runner"))) (home-page "https://github.com/Wilfred/tco.el") (synopsis "Tail-call optimization for Emacs Lisp") (description "This package provides tail-call optimization for Emacs From 48efcdafd8bad25b3d05564ffb83f4575a4c93fb Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Mon, 23 Sep 2019 06:14:42 +0200 Subject: [PATCH 168/227] gnu: emacs-ht: Enable tests. * gnu/packages/emacs-xyz.scm (emacs-ht): Enable tests. --- gnu/packages/emacs-xyz.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 19e7ab305a..ff2276500c 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -7501,6 +7501,11 @@ procedures for emacs-lisp-mode.") (base32 "1p3qa7g0wa0wbviv2f8bda39cjys3naayk5xjm3nxxmqsyy8papx")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash))) + (native-inputs + `(("emacs-ert-runner" ,emacs-ert-runner))) + (arguments + `(#:tests? #t + #:test-command '("ert-runner"))) (home-page "https://github.com/Wilfred/ht.el") (synopsis "Hash table library for Emacs") (description From 4455def41631bc01abd378c94f2343f5b6aca40b Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Mon, 23 Sep 2019 06:19:01 +0200 Subject: [PATCH 169/227] gnu: emacs-helpful: Enable tests. * gnu/packages/emacs-xyz.scm (emacs-helpful): Enable tests. --- gnu/packages/emacs-xyz.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index ff2276500c..450bb6a33c 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -12790,6 +12790,12 @@ downloading manager for Emacs.") ("emacs-s" ,emacs-s) ("emacs-f" ,emacs-f) ("emacs-shut-up" ,emacs-shut-up))) + (native-inputs + `(("emacs-ert-runner" ,emacs-ert-runner) + ("emacs-undercover" ,emacs-undercover))) + (arguments + `(#:tests? #t + #:test-command '("ert-runner"))) (home-page "https://github.com/Wilfred/helpful") (synopsis "More contextual information in Emacs help") (description "@code{helpful} is an alternative to the built-in Emacs help From d5fcb61ea7d404e553a2ec5fe19451b895f762cd Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Mon, 23 Sep 2019 06:27:04 +0200 Subject: [PATCH 170/227] gnu: emacs-suggest: Enable tests. * gnu/packages/emacs-xyz.scm (emacs-suggest): Enable tests. --- gnu/packages/emacs-xyz.scm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 450bb6a33c..86e2edebbb 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -12863,6 +12863,12 @@ and doesn't require memorisation of commands. ("emacs-f" ,emacs-f) ("emacs-spinner" ,emacs-spinner) ("emacs-shut-up" ,emacs-shut-up))) + (native-inputs + `(("emacs-ert-runner" ,emacs-ert-runner) + ("emacs-undercover" ,emacs-undercover))) + (arguments + `(#:tests? #t + #:test-command '("ert-runner"))) (synopsis "Suggest Elisp functions that give the output requested") (description "Suggest.el will find functions that give the output requested. It's a great way of exploring list, string and arithmetic From 23cc2793e1b64c0d0218988fc76cf70f5ba8a612 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 23 Sep 2019 09:38:50 +0300 Subject: [PATCH 171/227] gnu: datamash: Update to 1.5. * gnu/packages/datamash.scm (datamash): Update to 1.5. --- gnu/packages/datamash.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/datamash.scm b/gnu/packages/datamash.scm index 81b0069aab..ac1b71e63b 100644 --- a/gnu/packages/datamash.scm +++ b/gnu/packages/datamash.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2018 Eric Bavier -;;; Copyright © 2016, 2017, 2018 Efraim Flashner +;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -29,7 +29,7 @@ (define-public datamash (package (name "datamash") - (version "1.4") + (version "1.5") (source (origin (method url-fetch) @@ -37,7 +37,7 @@ version ".tar.gz")) (sha256 (base32 - "0aj7wvv14s2fsf2rl49mqhxdagy8cbz6rz4xyi7bkg2nahnxsi7s")))) + "1b91pbdarnfmbhid8aa2f50k0fln8n7pg62782b4y0jlzvaljqi2")))) (native-inputs `(("which" ,which) ;for tests ("perl" ,perl))) ;for help2man From 4d70a8fe1b14789235a26ecc87d632ee3bf16cc8 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 23 Sep 2019 10:05:59 +0300 Subject: [PATCH 172/227] gnu: gdb-8.3: Update to 8.3.1. * gnu/packages/gdb.scm (gdb-8.3): Update to 8.3.1. --- gnu/packages/gdb.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm index 5697664491..48d1c0da6b 100644 --- a/gnu/packages/gdb.scm +++ b/gnu/packages/gdb.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2019 Ludovic Courtès ;;; Copyright © 2015 Mark H Weaver -;;; Copyright © 2015, 2016 Efraim Flashner +;;; Copyright © 2015, 2016, 2019 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -109,14 +109,14 @@ written in C, C++, Ada, Objective-C, Pascal and more.") (define-public gdb-8.3 (package (inherit gdb-8.2) - (version "8.3") + (version "8.3.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gdb/gdb-" version ".tar.xz")) (sha256 (base32 - "0bnpzz0rl672xg5547q5qck2sxi6cnyixmk8bbb4gifw17ipwbw0")))))) + "1i2pjwaafrlz7wqm40b4znr77ai32rjsxkpl2az38yyarpbv8m8y")))))) (define-public gdb ;; This is the fixed version that packages depend on. Update it rarely From acedaec798a86486e9044b4d7728a0573ea9c1bc Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 23 Sep 2019 10:21:02 +0300 Subject: [PATCH 173/227] gnu: wl-clipboard: Update to 2.0.0_beta2. * gnu/packages/xdisorg.scm (wl-clipboard): Update to 2.0.0_beta2. --- gnu/packages/xdisorg.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 10ffa6f695..7026c7eb03 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2015 Florian Paul Schmidt ;;; Copyright © 2016 Christopher Allan Webber ;;; Copyright © 2016, 2018 Ricardo Wurmus -;;; Copyright © 2016, 2017, 2018 Efraim Flashner +;;; Copyright © 2016, 2017, 2018, 2019 Efraim Flashner ;;; Copyright © 2016 Leo Famulari ;;; Copyright © 2016 Alex Kost ;;; Copyright © 2016, 2017, 2019 Marius Bakke @@ -1688,16 +1688,16 @@ temperature of the screen.") (define-public wl-clipboard (package (name "wl-clipboard") - (version "1.0.0") + (version "2.0.0_beta2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/bugaevc/wl-clipboard.git") - (commit (string-append "v" version)))) + (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "03h6ajcc30w6928bkd4h6xfj4iy2359ww6hdlybq8mr1zwmb2h0q")))) + (base32 "0wyqbaph9v1v6lwfcjf8gjhdl70icpss4wapshzfxcz3l9m1p8hv")))) (build-system meson-build-system) (native-inputs `(("pkg-config" ,pkg-config))) From 961b95c985991ed4421c2419c22026eb0153c1ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 14 Sep 2019 14:59:58 +0200 Subject: [PATCH 174/227] pull: '--news' shows the list of channels added or removed. * guix/scripts/pull.scm (display-channel, channel=?) (display-channel-news, display-news): New procedures. (process-query): Call 'display-news' instead of 'display-profile-news'. --- guix/scripts/pull.scm | 61 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 57 insertions(+), 4 deletions(-) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index c9835cef34..472947bb3a 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -213,6 +213,62 @@ newest generation of PROFILE." (G_ "New in this revision:\n"))))) (_ #t))) +(define (display-channel channel) + "Display information about CHANNEL." + (format (current-error-port) + ;; TRANSLATORS: This describes a "channel"; the first placeholder is + ;; the channel name (e.g., "guix") and the second placeholder is its + ;; URL. + (G_ " ~a at ~a~%") + (channel-name channel) + (channel-url channel))) + +(define (channel=? channel1 channel2) + "Return true if CHANNEL1 and CHANNEL2 are the same for all practical +purposes." + ;; Assume that the URL matters less than the name. + (eq? (channel-name channel1) (channel-name channel2))) + +(define (display-channel-news profile) + "Display news about the channels of PROFILE " + (define previous + (and=> (relative-generation profile -1) + (cut generation-file-name profile <>))) + + (when previous + (let ((old-channels (profile-channels previous)) + (new-channels (profile-channels profile))) + (and (pair? old-channels) (pair? new-channels) + (begin + (match (lset-difference channel=? new-channels old-channels) + (() + #t) + (new + (let ((count (length new))) + (format (current-error-port) + (N_ " ~*One new channel:~%" + " ~a new channels:~%" count) + count) + (for-each display-channel new)))) + (match (lset-difference channel=? old-channels new-channels) + (() + #t) + (removed + (let ((count (length removed))) + (format (current-error-port) + (N_ " ~*One channel removed:~%" + " ~a channels removed:~%" count) + count) + (for-each display-channel removed))))))))) + +(define (display-news profile) + ;; Display profile news, with the understanding that this process represents + ;; the newest generation. + (display-profile-news profile + #:current-is-newer? #t) + + (display-channel-news profile)) + (define* (build-and-install instances profile #:key use-substitutes? verbose? dry-run?) "Build the tool from SOURCE, and install it in PROFILE. When DRY-RUN? is @@ -521,10 +577,7 @@ list of package changes."))))) ((numbers ...) (list-generations profile numbers))))))) (('display-news) - ;; Display profile news, with the understanding that this process - ;; represents the newest generation. - (display-profile-news profile - #:current-is-newer? #t)))) + (display-news profile)))) (define (process-generation-change opts profile) "Process a request to change the current generation (roll-back, switch, delete)." From a78dcb3d599cc84b347578940bb0fd44b1ad50b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 14 Sep 2019 17:46:34 +0200 Subject: [PATCH 175/227] git: 'update-cached-checkout' avoids network access when unnecessary. * guix/git.scm (reference-available?): New procedure. (update-cached-checkout): Avoid call to 'remote-fetch' when REPOSITORY already contains REF. --- guix/git.scm | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/guix/git.scm b/guix/git.scm index de98fed40c..92a7353b5a 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -220,6 +220,21 @@ dynamic extent of EXP." (G_ "Support for submodules is missing; \ please upgrade Guile-Git.~%")))) +(define (reference-available? repository ref) + "Return true if REF, a reference such as '(commit . \"cabba9e\"), is +definitely available in REPOSITORY, false otherwise." + (match ref + (('commit . commit) + (catch 'git-error + (lambda () + (->bool (commit-lookup repository (string->oid commit)))) + (lambda (key error . rest) + (if (= GIT_ENOTFOUND (git-error-code error)) + #f + (apply throw key error rest))))) + (_ + #f))) + (define* (update-cached-checkout url #:key (ref '(branch . "master")) @@ -254,7 +269,8 @@ When RECURSIVE? is true, check out submodules as well, if any." (repository-open cache-directory) (clone* url cache-directory)))) ;; Only fetch remote if it has not been cloned just before. - (when cache-exists? + (when (and cache-exists? + (not (reference-available? repository ref))) (remote-fetch (remote-lookup repository "origin"))) (when recursive? (update-submodules repository #:log-port log-port)) From 873f6f1334ab06a69e768a8aea0054404237542f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 14 Sep 2019 17:54:06 +0200 Subject: [PATCH 176/227] git: Add 'commit-difference'. * guix/git.scm (commit-closure, commit-difference): New procedures. * guix/tests/git.scm, tests/git.scm: New files. * Makefile.am (dist_noinst_DATA): Add guix/tests/git.scm. (SCM_TESTS): Add tests/git.scm. --- .dir-locals.el | 1 + Makefile.am | 6 ++- guix/git.scm | 40 +++++++++++++++++++ guix/tests/git.scm | 97 +++++++++++++++++++++++++++++++++++++++++++++ tests/git.scm | 99 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 242 insertions(+), 1 deletion(-) create mode 100644 guix/tests/git.scm create mode 100644 tests/git.scm diff --git a/.dir-locals.el b/.dir-locals.el index 228685a69f..22aac2c402 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -90,6 +90,7 @@ (eval . (put 'eventually 'scheme-indent-function 1)) (eval . (put 'call-with-progress-reporter 'scheme-indent-function 1)) + (eval . (put 'with-temporary-git-repository 'scheme-indent-function 2)) ;; This notably allows '(' in Paredit to not insert a space when the ;; preceding symbol is one of these. diff --git a/Makefile.am b/Makefile.am index f71ea77671..658f03bd54 100644 --- a/Makefile.am +++ b/Makefile.am @@ -307,7 +307,10 @@ STORE_MODULES = \ MODULES += $(STORE_MODULES) # Internal modules with test suite support. -dist_noinst_DATA = guix/tests.scm guix/tests/http.scm +dist_noinst_DATA = \ + guix/tests.scm \ + guix/tests/http.scm \ + guix/tests/git.scm # Auxiliary files for packages. AUX_FILES = \ @@ -391,6 +394,7 @@ SCM_TESTS = \ tests/file-systems.scm \ tests/gem.scm \ tests/gexp.scm \ + tests/git.scm \ tests/glob.scm \ tests/gnu-maintenance.scm \ tests/grafts.scm \ diff --git a/guix/git.scm b/guix/git.scm index 92a7353b5a..d7dddde3a7 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -28,6 +28,7 @@ #:use-module (guix utils) #:use-module (guix records) #:use-module (guix gexp) + #:use-module (guix sets) #:use-module (rnrs bytevectors) #:use-module (ice-9 match) #:use-module (srfi srfi-1) @@ -37,8 +38,10 @@ #:export (%repository-cache-directory honor-system-x509-certificates! + with-repository update-cached-checkout latest-repository-commit + commit-difference git-checkout git-checkout? @@ -339,6 +342,43 @@ Log progress and checkout info to LOG-PORT." (set-exception-printer! 'git-error print-git-error) + +;;; +;;; Commit difference. +;;; + +(define (commit-closure commit) + "Return the closure of COMMIT as a set." + (let loop ((commits (list commit)) + (visited (setq))) + (match commits + (() + visited) + ((head . tail) + (if (set-contains? visited head) + (loop tail visited) + (loop (append (commit-parents head) tail) + (set-insert head visited))))))) + +(define (commit-difference new old) + "Return the list of commits between NEW and OLD, where OLD is assumed to be +an ancestor of NEW. + +Essentially, this computes the set difference between the closure of NEW and +that of OLD." + (let loop ((commits (list new)) + (result '()) + (visited (commit-closure old))) + (match commits + (() + (reverse result)) + ((head . tail) + (if (set-contains? visited head) + (loop tail result visited) + (loop (append (commit-parents head) tail) + (cons head result) + (set-insert head visited))))))) + ;;; ;;; Checkouts. diff --git a/guix/tests/git.scm b/guix/tests/git.scm new file mode 100644 index 0000000000..52abe77c83 --- /dev/null +++ b/guix/tests/git.scm @@ -0,0 +1,97 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (guix tests git) + #:use-module (git) + #:use-module (guix utils) + #:use-module (guix build utils) + #:use-module (ice-9 match) + #:use-module (ice-9 control) + #:export (git-command + with-temporary-git-repository + find-commit)) + +(define git-command + (make-parameter "git")) + +(define (populate-git-repository directory directives) + "Initialize a new Git checkout and repository in DIRECTORY and apply +DIRECTIVES. Each element of DIRECTIVES is an sexp like: + + (add \"foo.txt\" \"hi!\") + +Return DIRECTORY on success." + + ;; Note: As of version 0.2.0, Guile-Git lacks the necessary bindings to do + ;; all this, so resort to the "git" command. + (define (git command . args) + (apply invoke (git-command) "-C" directory + command args)) + + (mkdir-p directory) + (git "init") + + (let loop ((directives directives)) + (match directives + (() + directory) + ((('add file contents) rest ...) + (let ((file (string-append directory "/" file))) + (mkdir-p (dirname file)) + (call-with-output-file file + (lambda (port) + (display contents port))) + (git "add" file) + (loop rest))) + ((('commit text) rest ...) + (git "commit" "-m" text) + (loop rest)) + ((('branch name) rest ...) + (git "branch" name) + (loop rest)) + ((('checkout branch) rest ...) + (git "checkout" branch) + (loop rest)) + ((('merge branch message) rest ...) + (git "merge" branch "-m" message) + (loop rest))))) + +(define (call-with-temporary-git-repository directives proc) + (call-with-temporary-directory + (lambda (directory) + (populate-git-repository directory directives) + (proc directory)))) + +(define-syntax-rule (with-temporary-git-repository directory + directives exp ...) + "Evaluate EXP in a context where DIRECTORY contains a checkout populated as +per DIRECTIVES." + (call-with-temporary-git-repository directives + (lambda (directory) + exp ...))) + +(define (find-commit repository message) + "Return the commit in REPOSITORY whose message includes MESSAGE, a string." + (let/ec return + (fold-commits (lambda (commit _) + (and (string-contains (commit-message commit) + message) + (return commit))) + #f + repository) + (error "commit not found" message))) diff --git a/tests/git.scm b/tests/git.scm new file mode 100644 index 0000000000..8ba10ece51 --- /dev/null +++ b/tests/git.scm @@ -0,0 +1,99 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2019 Ludovic Courtès +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (test-git) + #:use-module (git) + #:use-module (guix git) + #:use-module (guix tests git) + #:use-module (guix build utils) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-64)) + +;; Test the (guix git) tools. + +(test-begin "git") + +;; 'with-temporary-git-repository' relies on the 'git' command. +(unless (which (git-command)) (test-skip 1)) +(test-assert "commit-difference, linear history" + (with-temporary-git-repository directory + '((add "a.txt" "A") + (commit "first commit") + (add "b.txt" "B") + (commit "second commit") + (add "c.txt" "C") + (commit "third commit") + (add "d.txt" "D") + (commit "fourth commit")) + (with-repository directory repository + (let ((commit1 (find-commit repository "first")) + (commit2 (find-commit repository "second")) + (commit3 (find-commit repository "third")) + (commit4 (find-commit repository "fourth"))) + (and (lset= eq? (commit-difference commit4 commit1) + (list commit2 commit3 commit4)) + (lset= eq? (commit-difference commit4 commit2) + (list commit3 commit4)) + (equal? (commit-difference commit3 commit2) + (list commit3)) + + ;; COMMIT4 is not an ancestor of COMMIT1 so we should get the + ;; empty list. + (null? (commit-difference commit1 commit4))))))) + +(unless (which (git-command)) (test-skip 1)) +(test-assert "commit-difference, fork" + (with-temporary-git-repository directory + '((add "a.txt" "A") + (commit "first commit") + (branch "devel") + (checkout "devel") + (add "devel/1.txt" "1") + (commit "first devel commit") + (add "devel/2.txt" "2") + (commit "second devel commit") + (checkout "master") + (add "b.txt" "B") + (commit "second commit") + (add "c.txt" "C") + (commit "third commit") + (merge "devel" "merge") + (add "d.txt" "D") + (commit "fourth commit")) + (with-repository directory repository + (let ((master1 (find-commit repository "first commit")) + (master2 (find-commit repository "second commit")) + (master3 (find-commit repository "third commit")) + (master4 (find-commit repository "fourth commit")) + (devel1 (find-commit repository "first devel")) + (devel2 (find-commit repository "second devel")) + (merge (find-commit repository "merge"))) + (and (equal? (commit-difference master4 merge) + (list master4)) + (lset= eq? (commit-difference master3 master1) + (list master3 master2)) + (lset= eq? (commit-difference devel2 master1) + (list devel2 devel1)) + + ;; The merge occurred between MASTER2 and MASTER4 so here we + ;; expect to see all the commits from the "devel" branch in + ;; addition to those on "master". + (lset= eq? (commit-difference master4 master2) + (list master4 merge master3 devel1 devel2))))))) + +(test-end "git") From 8ba7fd3cd6962f1c1aaaa5f71eed7f9222094f25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 14 Sep 2019 23:16:54 +0200 Subject: [PATCH 177/227] channels: Add support for a news file. * guix/channels.scm ()[news-file]: New field. (read-channel-metadata): Set the 'news-file' field. (read-channel-metadata-from-source): Likewise. (, ): New record types. (sexp->channel-news-entry, read-channel-news) (channel-news-for-commit): New procedures. * guix/tests/git.scm (populate-git-repository): For 'add', allow CONTENTS to be a procedure. * tests/channels.scm ("channel-news, no news") ("channel-news, one entry"): New tests. * doc/guix.texi (Channels): Document it. --- doc/guix.texi | 62 +++++++++++++++++++++++ guix/channels.scm | 123 ++++++++++++++++++++++++++++++++++++++++++--- guix/tests/git.scm | 7 ++- tests/channels.scm | 99 ++++++++++++++++++++++++++++++++++++ 4 files changed, 282 insertions(+), 9 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index af1903f6ff..cd108faa8f 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3991,6 +3991,68 @@ add a meta-data file @file{.guix-channel} that contains: (directory "guix")) @end lisp +@cindex news, for channels +@subsection Writing Channel News + +Channel authors may occasionally want to communicate to their users +information about important changes in the channel. You'd send them all +an email, but that's not convenient. + +Instead, channels can provide a @dfn{news file}; when the channel users +run @command{guix pull}, that news file is automatically read and +@command{guix pull --news} can display the announcements that correspond +to the new commits that have been pulled, if any. + +To do that, channel authors must first declare the name of the news file +in their @file{.guix-channel} file: + +@lisp +(channel + (version 0) + (news-file "etc/news.txt")) +@end lisp + +The news file itself, @file{etc/news.txt} in this example, must look +something like this: + +@lisp +(channel-news + (version 0) + (entry (commit "d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300") + (title (en "Fixed terrible bug") + (fr "Oh la la")) + (body (en "@@emph@{Good news@}! It's fixed!") + (eo "Certe ĝi pli bone funkcias nun!"))) + (entry (commit "bdcabe815cd28144a2d2b4bc3c5057b051fa9906") + (title (en "Added a great package") + (ca "Què vol dir guix?")) + (body (en "Don't miss the @@code@{hello@} package!")))) +@end lisp + +The file consists of a list of @dfn{news entries}. Each entry is +associated with a commit: it describes changes made in this commit, +possibly in preceding commits as well. Users see entries only the first +time they obtain the commit the entry refers to. + +The @code{title} field should be a one-line summary while @code{body} +can be arbitrarily long, and both can contain Texinfo markup +(@pxref{Overview,,, texinfo, GNU Texinfo}). Both the title and body are +a list of language tag/message tuples, which allows @command{guix pull} +to display news in the language that corresponds to the user's locale. + +If you want to translate news using a gettext-based workflow, you can +extract translatable strings with @command{xgettext} (@pxref{xgettext +Invocation,,, gettext, GNU Gettext Utilities}). For example, assuming +you write news entries in English first, the command below creates a PO +file containing the strings to translate: + +@example +xgettext -o news.po -l scheme -ken etc/news.scm +@end example + +To sum up, yes, you could use your channel as a blog. But beware, this +is @emph{not quite} what your users might expect. + @subsection Replicating Guix @cindex pinning, channels diff --git a/guix/channels.scm b/guix/channels.scm index ebb2cacbc7..0dadba616f 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -19,6 +19,7 @@ ;;; along with GNU Guix. If not, see . (define-module (guix channels) + #:use-module (git) #:use-module (guix git) #:use-module (guix records) #:use-module (guix gexp) @@ -29,6 +30,7 @@ #:use-module (guix derivations) #:use-module (guix combinators) #:use-module (guix diagnostics) + #:use-module (guix sets) #:use-module (guix store) #:use-module (guix i18n) #:use-module ((guix utils) @@ -67,7 +69,14 @@ %channel-profile-hooks channel-instances->derivation - profile-channels)) + profile-channels + + channel-news-entry? + channel-news-entry-commit + channel-news-entry-title + channel-news-entry-body + + channel-news-for-commit)) ;;; Commentary: ;;; @@ -110,10 +119,11 @@ (checkout channel-instance-checkout)) (define-record-type - (channel-metadata directory dependencies) + (channel-metadata directory dependencies news-file) channel-metadata? (directory channel-metadata-directory) ;string with leading slash - (dependencies channel-metadata-dependencies)) ;list of + (dependencies channel-metadata-dependencies) ;list of + (news-file channel-metadata-news-file)) ;string | #f (define (channel-reference channel) "Return the \"reference\" for CHANNEL, an sexp suitable for @@ -129,12 +139,13 @@ if valid metadata could not be read from PORT." (match (read port) (('channel ('version 0) properties ...) (let ((directory (and=> (assoc-ref properties 'directory) first)) - (dependencies (or (assoc-ref properties 'dependencies) '()))) + (dependencies (or (assoc-ref properties 'dependencies) '())) + (news-file (and=> (assoc-ref properties 'news-file) first))) (channel-metadata - (cond ((not directory) "/") + (cond ((not directory) "/") ;directory ((string-prefix? "/" directory) directory) (else (string-append "/" directory))) - (map (lambda (item) + (map (lambda (item) ;dependencies (let ((get (lambda* (key #:optional default) (or (and=> (assoc-ref item key) first) default)))) (and-let* ((name (get 'name)) @@ -145,7 +156,8 @@ if valid metadata could not be read from PORT." (branch branch) (url url) (commit (get 'commit)))))) - dependencies)))) + dependencies) + news-file))) ;news-file ((and ('channel ('version version) _ ...) sexp) (raise (condition (&message (message "unsupported '.guix-channel' version")) @@ -169,7 +181,7 @@ doesn't exist." read-channel-metadata)) (lambda args (if (= ENOENT (system-error-errno args)) - (channel-metadata "/" '()) + (channel-metadata "/" '() #f) (apply throw args))))) (define (channel-instance-metadata instance) @@ -560,3 +572,98 @@ PROFILE is not a profile created by 'guix pull', return the empty list." ;; Show most recently installed packages last. (reverse (manifest-entries (profile-manifest profile))))) + + +;;; +;;; News. +;;; + +;; Channel news. +(define-record-type + (channel-news entries) + channel-news? + (entries channel-news-entries)) ;list of + +;; News entry, associated with a specific commit of the channel. +(define-record-type + (channel-news-entry commit title body) + channel-news-entry? + (commit channel-news-entry-commit) ;hex string + (title channel-news-entry-title) ;list of language tag/string pairs + (body channel-news-entry-body)) ;list of language tag/string pairs + +(define (sexp->channel-news-entry entry) + "Return the record corresponding to ENTRY, an sexp." + (define (pair language message) + (cons (symbol->string language) message)) + + (match entry + (('entry ('commit commit) + ('title ((? symbol? title-tags) (? string? titles)) ...) + ('body ((? symbol? body-tags) (? string? bodies)) ...) + _ ...) + (channel-news-entry commit + (map pair title-tags titles) + (map pair body-tags bodies))) + (_ + (raise (condition + (&message (message "invalid channel news entry")) + (&error-location + (location (source-properties->location + (source-properties entry))))))))) + +(define (read-channel-news port) + "Read a channel news feed from PORT and return it as a +record." + (match (false-if-exception (read port)) + (('channel-news ('version 0) entries ...) + (channel-news (map sexp->channel-news-entry entries))) + (('channel-news ('version version) _ ...) + ;; This is an unsupported version from the future. There's nothing wrong + ;; with that (the user may simply need to upgrade the 'guix' channel to + ;; be able to read it), so silently ignore it. + (channel-news '())) + (#f + (raise (condition + (&message (message "syntactically invalid channel news file"))))) + (sexp + (raise (condition + (&message (message "invalid channel news file")) + (&error-location + (location (source-properties->location + (source-properties sexp))))))))) + +(define* (channel-news-for-commit channel new #:optional old) + "Return a list of for CHANNEL between commits OLD and +NEW. When OLD is omitted or is #f, return all the news entries of CHANNEL." + (catch 'git-error + (lambda () + (let* ((checkout (update-cached-checkout (channel-url channel) + #:ref `(commit . ,new))) + (metadata (read-channel-metadata-from-source checkout)) + (news-file (channel-metadata-news-file metadata)) + (news-file (and news-file + (string-append checkout "/" news-file)))) + (if (and news-file (file-exists? news-file)) + (let ((entries (channel-news-entries (call-with-input-file news-file + read-channel-news)))) + (if old + (with-repository checkout repository + (let* ((new (commit-lookup repository (string->oid new))) + (old (commit-lookup repository (string->oid old))) + (commits (list->set + (map (compose oid->string commit-id) + (commit-difference new old))))) + (filter (lambda (entry) + (set-contains? commits + (channel-news-entry-commit entry))) + entries))) + entries)) + '()))) + (lambda (key error . rest) + ;; If commit NEW or commit OLD cannot be found, then something must be + ;; wrong (for example, the history of CHANNEL was rewritten and these + ;; commits no longer exist upstream), so quietly return the empty list. + (if (= GIT_ENOTFOUND (git-error-code error)) + '() + (apply throw key error rest))))) diff --git a/guix/tests/git.scm b/guix/tests/git.scm index 52abe77c83..9d5b1ae321 100644 --- a/guix/tests/git.scm +++ b/guix/tests/git.scm @@ -18,6 +18,7 @@ (define-module (guix tests git) #:use-module (git) + #:use-module ((guix git) #:select (with-repository)) #:use-module (guix utils) #:use-module (guix build utils) #:use-module (ice-9 match) @@ -55,7 +56,11 @@ Return DIRECTORY on success." (mkdir-p (dirname file)) (call-with-output-file file (lambda (port) - (display contents port))) + (display (if (string? contents) + contents + (with-repository directory repository + (contents repository))) + port))) (git "add" file) (loop rest))) ((('commit text) rest ...) diff --git a/tests/channels.scm b/tests/channels.scm index e83b5437d3..58101bcb72 100644 --- a/tests/channels.scm +++ b/tests/channels.scm @@ -28,6 +28,10 @@ #:use-module (guix gexp) #:use-module ((guix utils) #:select (error-location? error-location location-line)) + #:use-module ((guix build utils) #:select (which)) + #:use-module (git) + #:use-module (guix git) + #:use-module (guix tests git) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) @@ -246,4 +250,99 @@ (depends? drv3 (list drv2 drv0) (list)))))))) +(unless (which (git-command)) (test-skip 1)) +(test-equal "channel-news, no news" + '() + (with-temporary-git-repository directory + '((add "a.txt" "A") + (commit "the commit")) + (with-repository directory repository + (let ((channel (channel (url (string-append "file://" directory)) + (name 'foo))) + (latest (reference-name->oid repository "HEAD"))) + (channel-news-for-commit channel (oid->string latest)))))) + +(unless (which (git-command)) (test-skip 1)) +(test-assert "channel-news, one entry" + (with-temporary-git-repository directory + `((add ".guix-channel" + ,(object->string + '(channel (version 0) + (news-file "news.scm")))) + (commit "first commit") + (add "src/a.txt" "A") + (commit "second commit") + (add "news.scm" + ,(lambda (repository) + (let ((previous + (reference-name->oid repository "HEAD"))) + (object->string + `(channel-news + (version 0) + (entry (commit ,(oid->string previous)) + (title (en "New file!") + (eo "Nova dosiero!")) + (body (en "Yeah, a.txt.")))))))) + (commit "third commit") + (add "src/b.txt" "B") + (commit "fourth commit") + (add "news.scm" + ,(lambda (repository) + (let ((second + (commit-id + (find-commit repository "second commit"))) + (previous + (reference-name->oid repository "HEAD"))) + (object->string + `(channel-news + (version 0) + (entry (commit ,(oid->string previous)) + (title (en "Another file!")) + (body (en "Yeah, b.txt."))) + (entry (commit ,(oid->string second)) + (title (en "Old news.") + (eo "Malnovaĵoj.")) + (body (en "For a.txt")))))))) + (commit "fifth commit")) + (with-repository directory repository + (define (find-commit* message) + (oid->string (commit-id (find-commit repository message)))) + + (let ((channel (channel (url (string-append "file://" directory)) + (name 'foo))) + (commit1 (find-commit* "first commit")) + (commit2 (find-commit* "second commit")) + (commit3 (find-commit* "third commit")) + (commit4 (find-commit* "fourth commit")) + (commit5 (find-commit* "fifth commit"))) + ;; First try fetching all the news up to a given commit. + (and (null? (channel-news-for-commit channel commit2)) + (lset= string=? + (map channel-news-entry-commit + (channel-news-for-commit channel commit5)) + (list commit2 commit4)) + (lset= equal? + (map channel-news-entry-title + (channel-news-for-commit channel commit5)) + '((("en" . "Another file!")) + (("en" . "Old news.") ("eo" . "Malnovaĵoj.")))) + (lset= string=? + (map channel-news-entry-commit + (channel-news-for-commit channel commit3)) + (list commit2)) + + ;; Now fetch news entries that apply to a commit range. + (lset= string=? + (map channel-news-entry-commit + (channel-news-for-commit channel commit3 commit1)) + (list commit2)) + (lset= string=? + (map channel-news-entry-commit + (channel-news-for-commit channel commit5 commit3)) + (list commit4)) + (lset= string=? + (map channel-news-entry-commit + (channel-news-for-commit channel commit5 commit1)) + (list commit4 commit2))))))) + (test-end "channels") From 9719e8d37aaa63e1c8f9d4ab1e28d49e2e56d85b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 21 Sep 2019 21:29:30 +0200 Subject: [PATCH 178/227] channels: Allow news entries to refer to a tag. Suggested by Ricardo Wurmus . * guix/channels.scm ()[tag]: New field. (sexp->channel-news-entry): Accept either 'commit' or 'tag' in 'entry' forms. (resolve-channel-news-entry-tag): New procedure. (channel-news-for-commit): Move 'with-repository' form one level higher. Call 'resolve-channel-news-entry-tag' on all the news entries. * guix/tests/git.scm (populate-git-repository): Add clause for 'tag'. * tests/channels.scm ("channel-news, one entry"): Create a tag and add an entry with a tag. Check that the tag is resolved and also visible in the record. * doc/guix.texi (Channels): Mention tags in news entries. --- doc/guix.texi | 8 ++++---- guix/channels.scm | 42 ++++++++++++++++++++++++++++++++---------- guix/tests/git.scm | 3 +++ tests/channels.scm | 9 +++++++-- 4 files changed, 46 insertions(+), 16 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index cd108faa8f..33bf08e9dd 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4018,7 +4018,7 @@ something like this: @lisp (channel-news (version 0) - (entry (commit "d894ab8e9bfabcefa6c49d9ba2e834dd5a73a300") + (entry (tag "the-bug-fix") (title (en "Fixed terrible bug") (fr "Oh la la")) (body (en "@@emph@{Good news@}! It's fixed!") @@ -4030,9 +4030,9 @@ something like this: @end lisp The file consists of a list of @dfn{news entries}. Each entry is -associated with a commit: it describes changes made in this commit, -possibly in preceding commits as well. Users see entries only the first -time they obtain the commit the entry refers to. +associated with a commit or tag: it describes changes made in this +commit, possibly in preceding commits as well. Users see entries only +the first time they obtain the commit the entry refers to. The @code{title} field should be a one-line summary while @code{body} can be arbitrarily long, and both can contain Texinfo markup diff --git a/guix/channels.scm b/guix/channels.scm index 0dadba616f..4e6e7090ac 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -40,6 +40,7 @@ #:use-module (srfi srfi-2) #:use-module (srfi srfi-9) #:use-module (srfi srfi-11) + #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) #:use-module (srfi srfi-35) #:autoload (guix self) (whole-package make-config.scm) @@ -73,6 +74,7 @@ channel-news-entry? channel-news-entry-commit + channel-news-entry-tag channel-news-entry-title channel-news-entry-body @@ -586,9 +588,10 @@ PROFILE is not a profile created by 'guix pull', return the empty list." ;; News entry, associated with a specific commit of the channel. (define-record-type - (channel-news-entry commit title body) + (channel-news-entry commit tag title body) channel-news-entry? - (commit channel-news-entry-commit) ;hex string + (commit channel-news-entry-commit) ;hex string | #f + (tag channel-news-entry-tag) ;#f | string (title channel-news-entry-title) ;list of language tag/string pairs (body channel-news-entry-body)) ;list of language tag/string pairs @@ -598,11 +601,12 @@ PROFILE is not a profile created by 'guix pull', return the empty list." (cons (symbol->string language) message)) (match entry - (('entry ('commit commit) + (('entry ((and (or 'commit 'tag) type) commit-or-tag) ('title ((? symbol? title-tags) (? string? titles)) ...) ('body ((? symbol? body-tags) (? string? bodies)) ...) _ ...) - (channel-news-entry commit + (channel-news-entry (and (eq? type 'commit) commit-or-tag) + (and (eq? type 'tag) commit-or-tag) (map pair title-tags titles) (map pair body-tags bodies))) (_ @@ -633,6 +637,20 @@ record." (location (source-properties->location (source-properties sexp))))))))) +(define (resolve-channel-news-entry-tag repository entry) + "If ENTRY has its 'commit' field set, return ENTRY. Otherwise, lookup +ENTRY's 'tag' in REPOSITORY and return ENTRY with its 'commit' field set to +the field its 'tag' refers to. A 'git-error' exception is raised if the tag +cannot be found." + (if (channel-news-entry-commit entry) + entry + (let* ((tag (channel-news-entry-tag entry)) + (reference (string-append "refs/tags/" tag)) + (oid (reference-name->oid repository reference))) + (channel-news-entry (oid->string oid) tag + (channel-news-entry-title entry) + (channel-news-entry-body entry))))) + (define* (channel-news-for-commit channel new #:optional old) "Return a list of for CHANNEL between commits OLD and NEW. When OLD is omitted or is #f, return all the news entries of CHANNEL." @@ -645,10 +663,14 @@ NEW. When OLD is omitted or is #f, return all the news entries of CHANNEL." (news-file (and news-file (string-append checkout "/" news-file)))) (if (and news-file (file-exists? news-file)) - (let ((entries (channel-news-entries (call-with-input-file news-file - read-channel-news)))) - (if old - (with-repository checkout repository + (with-repository checkout repository + (let* ((news (call-with-input-file news-file + read-channel-news)) + (entries (map (lambda (entry) + (resolve-channel-news-entry-tag repository + entry)) + (channel-news-entries news)))) + (if old (let* ((new (commit-lookup repository (string->oid new))) (old (commit-lookup repository (string->oid old))) (commits (list->set @@ -657,8 +679,8 @@ NEW. When OLD is omitted or is #f, return all the news entries of CHANNEL." (filter (lambda (entry) (set-contains? commits (channel-news-entry-commit entry))) - entries))) - entries)) + entries)) + entries))) '()))) (lambda (key error . rest) ;; If commit NEW or commit OLD cannot be found, then something must be diff --git a/guix/tests/git.scm b/guix/tests/git.scm index 9d5b1ae321..21573ac14e 100644 --- a/guix/tests/git.scm +++ b/guix/tests/git.scm @@ -66,6 +66,9 @@ Return DIRECTORY on success." ((('commit text) rest ...) (git "commit" "-m" text) (loop rest)) + ((('tag name) rest ...) + (git "tag" name) + (loop rest)) ((('branch name) rest ...) (git "branch" name) (loop rest)) diff --git a/tests/channels.scm b/tests/channels.scm index 58101bcb72..f5a7955483 100644 --- a/tests/channels.scm +++ b/tests/channels.scm @@ -272,6 +272,7 @@ (commit "first commit") (add "src/a.txt" "A") (commit "second commit") + (tag "tag-for-first-news-entry") (add "news.scm" ,(lambda (repository) (let ((previous @@ -299,7 +300,7 @@ (entry (commit ,(oid->string previous)) (title (en "Another file!")) (body (en "Yeah, b.txt."))) - (entry (commit ,(oid->string second)) + (entry (tag "tag-for-first-news-entry") (title (en "Old news.") (eo "Malnovaĵoj.")) (body (en "For a.txt")))))))) @@ -343,6 +344,10 @@ (lset= string=? (map channel-news-entry-commit (channel-news-for-commit channel commit5 commit1)) - (list commit4 commit2))))))) + (list commit4 commit2)) + (lset= equal? + (map channel-news-entry-tag + (channel-news-for-commit channel commit5 commit1)) + '(#f "tag-for-first-news-entry"))))))) (test-end "channels") From a725504a3a2f855c6a618e9b4cd222df91901113 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 15 Sep 2019 17:54:05 +0200 Subject: [PATCH 179/227] ui: Add 'current-message-language'. * guix/ui.scm (%default-message-language): New variable. (current-message-language): New procedure. --- guix/ui.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/guix/ui.scm b/guix/ui.scm index 4be31db047..069d542131 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -121,6 +121,10 @@ roll-back* switch-to-generation* delete-generation* + + %default-message-language + current-message-language + run-guix-command run-guix guix-main)) @@ -428,6 +432,20 @@ exiting. ARGS is the list of arguments received by the 'throw' handler." report them in a user-friendly way." (call-with-unbound-variable-handling (lambda () exp ...))) +(define %default-message-language + ;; Default language to use for messages. + (make-parameter "en")) + +(define (current-message-language) + "Return the language used for messages according to the current locale. +Return %DEFAULT-MESSAGE-LANGUAGE if that information could not be obtained. The +result is an ISO-639-2 language code such as \"ar\", without the territory +part." + (let ((locale (setlocale LC_MESSAGES))) + (match (string-index locale #\_) + (#f locale) + (index (string-take locale index))))) + (define (install-locale) "Install the current locale settings." (catch 'system-error From 7faffdc2d53b982d8443c376d6ed2f41a13b3f36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 15 Sep 2019 17:57:10 +0200 Subject: [PATCH 180/227] pull: Display channel news. * guix/scripts/pull.scm (display-news-entry) (display-channel-specific-news): New procedures. (display-channel-news): Call it. (display-new/upgraded-packages): Adjust hint message. * doc/guix.texi (Invoking guix pull): Mention it. --- doc/guix.texi | 11 +++++--- guix/scripts/pull.scm | 61 ++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 65 insertions(+), 7 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 33bf08e9dd..4830f39cdb 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3720,13 +3720,16 @@ Read the list of channels from @var{file} instead of evaluates to a list of channel objects. @xref{Channels}, for more information. +@cindex channel news @item --news @itemx -N -Display the list of packages added or upgraded since the previous generation. +Display the list of packages added or upgraded since the previous +generation, as well as, occasionally, news written by channel authors +for their users (@pxref{Channels, Writing Channel News}). -This is the same information as displayed upon @command{guix pull} completion, -but without ellipses; it is also similar to the output of @command{guix pull --l} for the last generation (see below). +The package information is the same as displayed upon @command{guix +pull} completion, but without ellipses; it is also similar to the output +of @command{guix pull -l} for the last generation (see below). @item --list-generations[=@var{pattern}] @itemx -l [@var{pattern}] diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 472947bb3a..d734df5e24 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -19,6 +19,7 @@ (define-module (guix scripts pull) #:use-module (guix ui) + #:use-module (guix colors) #:use-module (guix utils) #:use-module ((guix status) #:select (with-status-verbosity)) #:use-module (guix scripts) @@ -229,6 +230,48 @@ purposes." ;; Assume that the URL matters less than the name. (eq? (channel-name channel1) (channel-name channel2))) +(define (display-news-entry entry language port) + "Display ENTRY, a , in LANGUAGE, a language code, to +PORT." + (let ((title (channel-news-entry-title entry)) + (body (channel-news-entry-body entry))) + (format port " ~a~%" + (highlight + (string-trim-right + (texi->plain-text (or (assoc-ref title language) + (assoc-ref title (%default-message-language)) + ""))))) + (format port (G_ " commit ~a~%") + (channel-news-entry-commit entry)) + (newline port) + (format port " ~a~%" + (indented-string + (parameterize ((%text-width (- (%text-width) 4))) + (string-trim-right + (texi->plain-text (or (assoc-ref body language) + (assoc-ref body (%default-message-language)) + "")))) + 4)))) + +(define* (display-channel-specific-news new old + #:key (port (current-output-port))) + "Display channel news applicable the commits between OLD and NEW, where OLD +and NEW are records with a proper 'commit' field." + (let ((channel new) + (old (channel-commit old)) + (new (channel-commit new))) + (when (and old new) + (let ((language (current-message-language))) + (match (channel-news-for-commit channel new old) + (() ;no news is good news + #t) + ((entries ...) + (newline port) + (format port (G_ "News for channel '~a'~%") + (channel-name channel)) + (for-each (cut display-news-entry <> language port) entries) + (newline port))))))) + (define (display-channel-news profile) "Display news about the channels of PROFILE " (define previous @@ -259,7 +302,20 @@ purposes." (N_ " ~*One channel removed:~%" " ~a channels removed:~%" count) count) - (for-each display-channel removed))))))))) + (for-each display-channel removed)))) + + ;; Display channel-specific news for those channels that were + ;; here before and are still around afterwards. + (for-each (match-lambda + ((new old) + (display-channel-specific-news new old))) + (filter-map (lambda (new) + (define old + (find (cut channel=? new <>) + old-channels)) + + (and old (list new old))) + new-channels))))))) (define (display-news profile) ;; Display profile news, with the understanding that this process represents @@ -534,8 +590,7 @@ display long package lists that would fill the user's screen." (when (and concise? (or (> new-count concise/max-item-count) (> upgraded-count concise/max-item-count))) - (display-hint (G_ "Run @command{guix pull --news} to view the complete -list of package changes."))))) + (display-hint (G_ "Run @command{guix pull --news} to read all the news."))))) (define (display-profile-content-diff profile gen1 gen2) "Display the changes in PROFILE GEN2 compared to generation GEN1." From 192ee02aeb3d2f6d14ea93cfc43b30dd93df80e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 15 Sep 2019 23:55:19 +0200 Subject: [PATCH 181/227] pull: '-l' displays channel news. * guix/scripts/pull.scm (display-channel-news): Make 'previous' a parameter. (process-query)[list-generations]: Call 'display-channel-news'. --- guix/scripts/pull.scm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index d734df5e24..4a4756dc6e 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -272,12 +272,12 @@ and NEW are records with a proper 'commit' field." (for-each (cut display-news-entry <> language port) entries) (newline port))))))) -(define (display-channel-news profile) - "Display news about the channels of PROFILE " - (define previous - (and=> (relative-generation profile -1) - (cut generation-file-name profile <>))) - +(define* (display-channel-news profile + #:optional + (previous + (and=> (relative-generation profile -1) + (cut generation-file-name profile <>)))) + "Display news about the channels of PROFILE compared to PREVIOUS." (when previous (let ((old-channels (profile-channels previous)) (new-channels (profile-channels profile))) @@ -614,6 +614,8 @@ display long package lists that would fill the user's screen." ((first second rest ...) (display-profile-content-diff profile first second) + (display-channel-news (generation-file-name profile second) + (generation-file-name profile first)) (loop (cons second rest))) ((_) #t) (() #t)))))) From dabdd7d4650da685a9bfe470abbc2ec066ff00b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 21 Sep 2019 23:00:07 +0200 Subject: [PATCH 182/227] pull: Display news titles directly upon 'pull'. * guix/scripts/pull.scm (display-profile-news): Return true when there's more to display. (display-news-entry-title): New procedure. (display-news-entry): Use it. (display-channel-specific-news): Return true when there's more to display. (display-channel-news-headlines): New procedure. (build-and-install): Call it. When 'display-channel-news-headlines' or 'display-profile-news' returns #t, print a hint to run "pull --news". (display-new/upgraded-packages): Return true when there's more to display. --- guix/scripts/pull.scm | 112 ++++++++++++++++++++++++++++++------------ 1 file changed, 81 insertions(+), 31 deletions(-) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 4a4756dc6e..a7fd36fffc 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -189,7 +189,7 @@ Download and deploy the latest version of Guix.\n")) current-is-newer?) "Display what's up in PROFILE--new packages, and all that. If CURRENT-IS-NEWER? is true, assume that the current process represents the -newest generation of PROFILE." +newest generation of PROFILE. Return true when there's more info to display." (match (memv (generation-number profile) (reverse (profile-generations profile))) ((current previous _ ...) @@ -212,7 +212,7 @@ newest generation of PROFILE." #:concise? concise? #:heading (G_ "New in this revision:\n"))))) - (_ #t))) + (_ #f))) (define (display-channel channel) "Display information about CHANNEL." @@ -230,33 +230,44 @@ purposes." ;; Assume that the URL matters less than the name. (eq? (channel-name channel1) (channel-name channel2))) +(define (display-news-entry-title entry language port) + "Display the title of ENTRY, a news entry, to PORT." + (define title + (channel-news-entry-title entry)) + + (format port " ~a~%" + (highlight + (string-trim-right + (texi->plain-text (or (assoc-ref title language) + (assoc-ref title (%default-message-language)) + "")))))) + (define (display-news-entry entry language port) "Display ENTRY, a , in LANGUAGE, a language code, to PORT." - (let ((title (channel-news-entry-title entry)) - (body (channel-news-entry-body entry))) - (format port " ~a~%" - (highlight + (define body + (channel-news-entry-body entry)) + + (display-news-entry-title entry language port) + (format port (G_ " commit ~a~%") + (channel-news-entry-commit entry)) + (newline port) + (format port " ~a~%" + (indented-string + (parameterize ((%text-width (- (%text-width) 4))) (string-trim-right - (texi->plain-text (or (assoc-ref title language) - (assoc-ref title (%default-message-language)) - ""))))) - (format port (G_ " commit ~a~%") - (channel-news-entry-commit entry)) - (newline port) - (format port " ~a~%" - (indented-string - (parameterize ((%text-width (- (%text-width) 4))) - (string-trim-right - (texi->plain-text (or (assoc-ref body language) - (assoc-ref body (%default-message-language)) - "")))) - 4)))) + (texi->plain-text (or (assoc-ref body language) + (assoc-ref body (%default-message-language)) + "")))) + 4))) (define* (display-channel-specific-news new old - #:key (port (current-output-port))) + #:key (port (current-output-port)) + concise?) "Display channel news applicable the commits between OLD and NEW, where OLD -and NEW are records with a proper 'commit' field." +and NEW are records with a proper 'commit' field. When CONCISE? is +true, display nothing but the news titles. Return true if there are more news +to display." (let ((channel new) (old (channel-commit old)) (new (channel-commit new))) @@ -264,13 +275,17 @@ and NEW are records with a proper 'commit' field." (let ((language (current-message-language))) (match (channel-news-for-commit channel new old) (() ;no news is good news - #t) + #f) ((entries ...) (newline port) (format port (G_ "News for channel '~a'~%") (channel-name channel)) - (for-each (cut display-news-entry <> language port) entries) - (newline port))))))) + (for-each (if concise? + (cut display-news-entry-title <> language port) + (cut display-news-entry <> language port)) + entries) + (newline port) + #t)))))) (define* (display-channel-news profile #:optional @@ -317,6 +332,35 @@ and NEW are records with a proper 'commit' field." (and old (list new old))) new-channels))))))) +(define* (display-channel-news-headlines profile) + "Display the titles of news about the channels of PROFILE compared to its +previous generation. Return true if there are news to display." + (define previous + (and=> (relative-generation profile -1) + (cut generation-file-name profile <>))) + + (when previous + (let ((old-channels (profile-channels previous)) + (new-channels (profile-channels profile))) + ;; Find the channels present in both PROFILE and PREVIOUS, and print + ;; their news. + (and (pair? old-channels) (pair? new-channels) + (let ((channels (filter-map (lambda (new) + (define old + (find (cut channel=? new <>) + old-channels)) + + (and old (list new old))) + new-channels))) + (define more? + (map (match-lambda + ((new old) + (display-channel-specific-news new old + #:concise? #t))) + channels)) + + (any ->bool more?)))))) + (define (display-news profile) ;; Display profile news, with the understanding that this process represents ;; the newest generation. @@ -344,7 +388,12 @@ true, display what would be built without actually building it." #:dry-run? dry-run?) (munless dry-run? (return (newline)) - (return (display-profile-news profile #:concise? #t)) + (return + (let ((more? (list (display-profile-news profile #:concise? #t) + (display-channel-news-headlines profile)))) + (when (any ->bool more?) + (display-hint + (G_ "Run @command{guix pull --news} to read all the news."))))) (if guix-command (let ((new (map (cut string-append <> "/bin/guix") (list (user-friendly-profile profile) @@ -544,7 +593,9 @@ it." "Given the two package name/version alists ALIST1 and ALIST2, display the list of new and upgraded packages going from ALIST1 to ALIST2. When ALIST1 and ALIST2 differ, display HEADING upfront. When CONCISE? is true, do not -display long package lists that would fill the user's screen." +display long package lists that would fill the user's screen. + +Return true when there is more package info to display." (define (pretty str column) (indented-string (fill-paragraph str (- (%text-width) 4) column) @@ -587,10 +638,9 @@ display long package lists that would fill the user's screen." (pretty (list->enumeration (sort upgraded string new-count concise/max-item-count) - (> upgraded-count concise/max-item-count))) - (display-hint (G_ "Run @command{guix pull --news} to read all the news."))))) + (and concise? + (or (> new-count concise/max-item-count) + (> upgraded-count concise/max-item-count))))) (define (display-profile-content-diff profile gen1 gen2) "Display the changes in PROFILE GEN2 compared to generation GEN1." From dcc90d15581189dbc30e201db2b807273d6484f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 15 Sep 2019 17:53:13 +0200 Subject: [PATCH 183/227] Add '.guix-channel' file. * .guix-channel: New file. * Makefile.am (EXTRA_DIST): Add it. --- .guix-channel | 5 +++++ Makefile.am | 1 + 2 files changed, 6 insertions(+) create mode 100644 .guix-channel diff --git a/.guix-channel b/.guix-channel new file mode 100644 index 0000000000..3e618d79f8 --- /dev/null +++ b/.guix-channel @@ -0,0 +1,5 @@ +;; This is a Guix channel. + +(channel + (version 0) + (news-file "etc/news.scm")) diff --git a/Makefile.am b/Makefile.am index 658f03bd54..3c27d8ee10 100644 --- a/Makefile.am +++ b/Makefile.am @@ -533,6 +533,7 @@ EXTRA_DIST += \ TODO \ CODE-OF-CONDUCT \ .dir-locals.el \ + .guix-channel \ scripts/guix.in \ etc/guix-install.sh \ build-aux/build-self.scm \ From 90ca791ab082f0513cd5e8af7acfd8db63a6e73a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sun, 15 Sep 2019 18:03:56 +0200 Subject: [PATCH 184/227] etc: Add channel news file. * etc/news.scm: New file. * Makefile.am (EXTRA_DIST): Add it. --- Makefile.am | 1 + etc/news.scm | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 etc/news.scm diff --git a/Makefile.am b/Makefile.am index 3c27d8ee10..6a4cfcd4a1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -536,6 +536,7 @@ EXTRA_DIST += \ .guix-channel \ scripts/guix.in \ etc/guix-install.sh \ + etc/news.scm \ build-aux/build-self.scm \ build-aux/compile-all.scm \ build-aux/hydra/evaluate.scm \ diff --git a/etc/news.scm b/etc/news.scm new file mode 100644 index 0000000000..736e8b5516 --- /dev/null +++ b/etc/news.scm @@ -0,0 +1,30 @@ +;; GNU Guix news, for use by 'guix pull'. +;; +;; Copyright © 2019 Ludovic Courtès +;; +;; Copying and distribution of this file, with or without modification, are +;; permitted in any medium without royalty provided the copyright notice and +;; this notice are preserved. + +(channel-news + (version 0) + (entry (commit "dcc90d15581189dbc30e201db2b807273d6484f0") + (title (en "New channel news mechanism") + (de "Neuer Mechanismus, um Neuigkeiten über Kanäle anzuzeigen.") + (fr "Nouveau mécanisme d'information sur les canaux")) + (body + (en "You are reading this message through the new channel news +mechanism, congratulations! This mechanism allows channel authors to provide +@dfn{news entries} that their users can view with @command{guix pull --news}. +Run @command{info \"(guix) Invoking guix pull\"} for more info.") + (de "Sie lesen diese Meldung mit Hilfe des neuen Mechanismus, um +Neuigkeiten über Kanäle anzuzeigen — Glückwunsch! Mit diesem +Mechanismus können Kanalautoren Ihren Nutzern @dfn{Einträge zu +Neuigkeiten} mitteilen, die diese sich mit @command{guix pull --news} +anzeigen lassen können. Führen Sie @command{info \"(guix.de) Aufruf +von guix pull\"} aus, um weitere Informationen zu erhalten.") + (fr "Ce message t'arrive à travers le nouveau mécanisme d'information +des canaux, bravo ! Ce mécanisme permet aux auteur·rice·s de canaux de +fournir des informations qu'on peut visualiser avec @command{guix pull +--news}. Tape @command{info \"(guix.fr) Invoquer guix pull\"} pour plus de +détails.")))) From b69ce8a8721ad82a528acc21bed68e611e5c6114 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 Sep 2019 11:57:39 +0200 Subject: [PATCH 185/227] deploy: Add '--verbosity' and properly interpret build log. This is a followup to 91300526b7d9d775bd98a700ed3758420ef9eac6. * guix/scripts/deploy.scm (show-help, %options): Add '--verbosity'. (guix-deploy): Wrap 'with-store' in 'with-status-verbosity'. --- guix/scripts/deploy.scm | 47 +++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/guix/scripts/deploy.scm b/guix/scripts/deploy.scm index cf571756fd..f311587ec3 100644 --- a/guix/scripts/deploy.scm +++ b/guix/scripts/deploy.scm @@ -26,6 +26,7 @@ #:use-module (guix ui) #:use-module (guix utils) #:use-module (guix grafts) + #:use-module (guix status) #:use-module (ice-9 format) #:use-module (srfi srfi-1) #:use-module (srfi srfi-34) @@ -52,6 +53,8 @@ Perform the deployment specified by FILE.\n")) (display (G_ " -V, --version display version information and exit")) (newline) + (display (G_ " + -v, --verbosity=LEVEL use the given verbosity LEVEL")) (show-bug-report-information)) (define %options @@ -63,6 +66,12 @@ Perform the deployment specified by FILE.\n")) (lambda (opt name arg result) (alist-cons 'system arg (alist-delete 'system result eq?)))) + (option '(#\v "verbosity") #t #f + (lambda (opt name arg result) + (let ((level (string->number* arg))) + (alist-cons 'verbosity level + (alist-delete 'verbosity result))))) + %standard-build-options)) (define %default-options @@ -87,25 +96,27 @@ Perform the deployment specified by FILE.\n")) (define (guix-deploy . args) (define (handle-argument arg result) (alist-cons 'file arg result)) + (let* ((opts (parse-command-line args %options (list %default-options) #:argument-handler handle-argument)) (file (assq-ref opts 'file)) (machines (or (and file (load-source-file file)) '()))) - (with-store store - (set-build-options-from-command-line store opts) - (for-each (lambda (machine) - (info (G_ "deploying to ~a...~%") - (machine-display-name machine)) - (parameterize ((%graft? (assq-ref opts 'graft?))) - (guard (c ((message-condition? c) - (report-error (G_ "failed to deploy ~a: ~a~%") - (machine-display-name machine) - (condition-message c))) - ((deploy-error? c) - (when (deploy-error-should-roll-back c) - (info (G_ "rolling back ~a...~%") - (machine-display-name machine)) - (run-with-store store (roll-back-machine machine))) - (apply throw (deploy-error-captured-args c)))) - (run-with-store store (deploy-machine machine))))) - machines)))) + (with-status-verbosity (assoc-ref opts 'verbosity) + (with-store store + (set-build-options-from-command-line store opts) + (for-each (lambda (machine) + (info (G_ "deploying to ~a...~%") + (machine-display-name machine)) + (parameterize ((%graft? (assq-ref opts 'graft?))) + (guard (c ((message-condition? c) + (report-error (G_ "failed to deploy ~a: ~a~%") + (machine-display-name machine) + (condition-message c))) + ((deploy-error? c) + (when (deploy-error-should-roll-back c) + (info (G_ "rolling back ~a...~%") + (machine-display-name machine)) + (run-with-store store (roll-back-machine machine))) + (apply throw (deploy-error-captured-args c)))) + (run-with-store store (deploy-machine machine))))) + machines))))) From 2f1a01b7cd7763ec55c9334b84013a30a3ded96f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 Sep 2019 12:14:39 +0200 Subject: [PATCH 186/227] gnu: mit-scheme: Pass a valid tarball hash on non-x86. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes this bug: $ guix build -nd mit-scheme -s aarch64-linux guix build: error: derivation `/gnu/store/…-mit-scheme-c-10.1.3.tar.gz.drv' has incorrect output `/gnu/store/…-mit-scheme-c-10.1.3.tar.gz', should be `/gnu/store/…-mit-scheme-c-10.1.3.tar.gz' This is a followup to 7d6cfa442539e8fda0c145bf7a774c13e4fdc83c. * gnu/packages/scheme.scm (mit-scheme)[inputs]: For "source", pass a hash of the right length in the catch-all case. --- gnu/packages/scheme.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 9962cbdcb5..5753035643 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -204,8 +204,8 @@ (base32 "05sjyz90xxfnmi87qv8x0yx0fcallnzl1dciygdafp317pn489is")) (_ - (base32 - "")))))))) + (base32 + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")))))))) ;; Fails to build on MIPS, see . ;; Also, the portable C version of MIT/GNU Scheme did not work in time for From 9338cbdbe04f1e2cacd593e3632a111687ffabf5 Mon Sep 17 00:00:00 2001 From: "Boris A. Dekshteyn" Date: Sat, 21 Sep 2019 01:09:05 +1200 Subject: [PATCH 187/227] gnu: libomp: Fix test target. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/llvm.scm (libomp)[arguments]: Change #:test-target value. Signed-off-by: Ludovic Courtès --- gnu/packages/llvm.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index d8ffe35117..9a42d4fe07 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -369,7 +369,7 @@ requirements according to version 1.1 of the OpenCL specification.") '(#:configure-flags '("-DLIBOMP_USE_HWLOC=ON" "-DOPENMP_TEST_C_COMPILER=clang" "-DOPENMP_TEST_CXX_COMPILER=clang++") - #:test-target "check-libomptarget")) + #:test-target "check-libomp")) (native-inputs `(("clang" ,clang) ("llvm" ,llvm) From cb3ee1c5070ad3b82491d7ba61fc120910427121 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 Sep 2019 12:26:59 +0200 Subject: [PATCH 188/227] doc: Explain that '--profile' expects a file name. * doc/guix.texi (Invoking guix package): Explain that the argument to --profile is a file name. --- doc/guix.texi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 4830f39cdb..d3170bb46e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2918,6 +2918,25 @@ variable, even though, taken individually, neither @file{foo} nor @itemx -p @var{profile} Use @var{profile} instead of the user's default profile. +@var{profile} must be the name of a file that will be created upon +completion. Concretely, @var{profile} will be a mere symbolic link +(``symlink'') pointing to the actual profile where packages are +installed: + +@example +$ guix install hello -p ~/code/my-profile +@dots{} +$ ~/code/my-profile/bin/hello +Hello, world! +@end example + +All it takes to get rid of the profile is to remove this symlink and its +siblings that point to specific generations: + +@example +$ rm ~/code/my-profile ~/code/my-profile-*-link +@end example + @cindex collisions, in a profile @cindex colliding packages in profiles @cindex profile collisions From 04dc98291cb3cbbf871652c2ccb32c6064ae811d Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Mon, 23 Sep 2019 13:11:49 +0200 Subject: [PATCH 189/227] gnu: flatpak: Update to 1.4.3. * gnu/packages/package-management.scm (flatpak): Update to 1.4.3. --- gnu/packages/package-management.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 26f1458028..ee9efb6eb1 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -893,7 +893,7 @@ the boot loader configuration.") (define-public flatpak (package (name "flatpak") - (version "1.4.2") + (version "1.4.3") (source (origin (method url-fetch) @@ -901,7 +901,7 @@ the boot loader configuration.") version "/flatpak-" version ".tar.xz")) (sha256 (base32 - "08nmpp26mgv0vp3mlwk97rnp0j7i108h4hr9nllja19sjxnrlygj")))) + "11bfxmv8pxlb5x0lb2rsl45615fzfvq5r6wldf0l6ab2ngryd7i7")))) ;; Wrap 'flatpak' so that GIO_EXTRA_MODULES is set, thereby allowing GIO to ;; find the TLS backend in glib-networking. From ec3516f1e202becd26e407f15c75a4be4176c3bd Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Mon, 23 Sep 2019 13:16:40 +0200 Subject: [PATCH 190/227] gnu: kitty: Update to 0.14.5. * gnu/packages/terminals.scm (kitty): Update to 0.14.5. --- gnu/packages/terminals.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm index f902000cae..d9a5f1db9a 100644 --- a/gnu/packages/terminals.scm +++ b/gnu/packages/terminals.scm @@ -955,7 +955,7 @@ tmux.") (define-public kitty (package (name "kitty") - (version "0.14.4") + (version "0.14.5") (home-page "https://sw.kovidgoyal.net/kitty/") (source (origin @@ -966,7 +966,7 @@ tmux.") (file-name (git-file-name name version)) (sha256 (base32 - "0z0y80wcbra3zfyaiim98afbqlfpkjkql430zfb8shx61rzzmn9i")) + "0qx3wj4n3zgjcpd1vjjwdlz8d1vp8bkxihsg2khlla1izandgxxa")) (modules '((guix build utils))) (snippet '(begin From 48c97c27dbd5523df7f62a4c235157b03648358d Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Mon, 23 Sep 2019 13:22:29 +0200 Subject: [PATCH 191/227] gnu: utox: Update to 0.17.1. * gnu/packages/messaging.scm (utox): Update to 0.17.1. --- gnu/packages/messaging.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index afe62eb680..7a77b45d1d 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -996,18 +996,18 @@ messenger protocol.") (define-public utox (package (name "utox") - (version "0.17.0") + (version "0.17.1") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/uTox/uTox.git") - (commit "v0.17.0") + (commit (string-append "v" version)) (recursive? #t))) ;; Needed for 'minini' git submodule. (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "12wbq883il7ikldayh8hm0cjfrkp45vn05xx9s1jbfz6gmkidyar")))) + "17kwqw24iqljp2icih9k6ikx12gzr8zzqr8y5h35bg8m5s8pasq5")))) (build-system cmake-build-system) (arguments `(#:configure-flags '("-DENABLE_TESTS=on") From 3dd3ac4d83db0609e10637e9d21d7abb2198398d Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 23 Sep 2019 13:06:36 +0200 Subject: [PATCH 192/227] installer: Fix run-input-page calls. This fixes 55c43108 commit that renamed input-hide-checkbox? into input-visibility-checkbox?. * gnu/installer/newt/partition.scm (prompt-luks-passwords): Rename input-hide-checkbox? into input-visibility-checkbox?. --- gnu/installer/newt/partition.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/installer/newt/partition.scm b/gnu/installer/newt/partition.scm index cd9d46316a..7a9f11a15e 100644 --- a/gnu/installer/newt/partition.scm +++ b/gnu/installer/newt/partition.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2018 Mathieu Othacehe +;;; Copyright © 2018, 2019 Mathieu Othacehe ;;; Copyright © 2019 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. @@ -159,14 +159,14 @@ USER-PARTITIONS list. Return this list with password fields filled-in." (format #f (G_ "Please enter the password for the \ encryption of partition ~a (label: ~a).") file-name crypt-label) (G_ "Password required") - #:input-hide-checkbox? #t))) + #:input-visibility-checkbox? #t))) (password-confirm-page (lambda () (run-input-page (format #f (G_ "Please confirm the password for the \ encryption of partition ~a (label: ~a).") file-name crypt-label) (G_ "Password confirmation required") - #:input-hide-checkbox? #t)))) + #:input-visibility-checkbox? #t)))) (if crypt-label (let loop () (let ((password (password-page)) From b928c5874aae7b4103ad100d8f46975d4611e284 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 Sep 2019 21:42:40 +0200 Subject: [PATCH 193/227] gnu: acpid: Update to 2.0.32. * gnu/packages/linux.scm (acpid): Update to 2.0.32. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 59874b097c..95f7d56e41 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3301,14 +3301,14 @@ about ACPI devices.") (define-public acpid (package (name "acpid") - (version "2.0.31") + (version "2.0.32") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/acpid2/acpid-" version ".tar.xz")) (sha256 (base32 - "1hrc0xm6q12knbgzhq0i8g2rfrkwcvh1asd7k9rs3nc5xmlwd7gw")))) + "0zhmxnhnhg4v1viw82yjr22kram6k5k1ixznhayk8cnw7q5x7lpj")))) (build-system gnu-build-system) (home-page "https://sourceforge.net/projects/acpid2/") (synopsis "Daemon for delivering ACPI events to user-space programs") From 900ddbf53dfb6e34bc1fc0ab866a970b6aa9da8b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Sun, 22 Sep 2019 23:38:30 +0200 Subject: [PATCH 194/227] gnu: obs: Update to 24.0.1. * gnu/packages/video.scm (obs): Update to 24.0.1. [inputs]: Add qtsvg. --- gnu/packages/video.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 422dbab57e..aaba2fb3f7 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -2297,7 +2297,7 @@ be used for realtime video capture via Linux-specific APIs.") (define-public obs (package (name "obs") - (version "23.0.2") + (version "24.0.1") (source (origin (method git-fetch) (uri (git-reference @@ -2306,7 +2306,7 @@ be used for realtime video capture via Linux-specific APIs.") (file-name (git-file-name name version)) (sha256 (base32 - "1c0a5vy4h3qwz69qw3bydyk7r651ib5a9jna4yj6c25p3p9isdvp")))) + "056s0hs1ds3c57sc0gy39dxaxvwlakl3w25jxgawh0fs99211ar5")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; no tests @@ -2326,6 +2326,7 @@ be used for realtime video capture via Linux-specific APIs.") ("mesa" ,mesa) ("pulseaudio" ,pulseaudio) ("qtbase" ,qtbase) + ("qtsvg" ,qtsvg) ("qtx11extras" ,qtx11extras) ("speex" ,speex) ("v4l-utils" ,v4l-utils) From bfe194b5331fe9a60ed9e1d373fe1de9e2606d34 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 23 Sep 2019 16:31:49 +0200 Subject: [PATCH 195/227] gnu: enchant: Update to 2.2.7. * gnu/packages/enchant.scm (enchant): Update to 2.2.7. --- gnu/packages/enchant.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/enchant.scm b/gnu/packages/enchant.scm index cfec161784..bcf2507e86 100644 --- a/gnu/packages/enchant.scm +++ b/gnu/packages/enchant.scm @@ -33,7 +33,7 @@ (define-public enchant (package (name "enchant") - (version "2.2.5") + (version "2.2.7") (source (origin (method url-fetch) (uri (string-append "https://github.com/AbiWord/enchant/releases" @@ -41,7 +41,7 @@ version ".tar.gz")) (sha256 (base32 - "0iqwzs11i9fvqdxv5kn0svcn2mzymn657qf3j66lg8dx1nh4xkpz")))) + "029smcna98hllgkm2gy94qa7qphxs4xaa8cdbg5kaaw16mhrf8hv")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-static" From aa686627ac2ca2ab43d6423595223348177f7f80 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 23 Sep 2019 16:43:18 +0200 Subject: [PATCH 196/227] gnu: python-slugify: Update to 3.0.4. * gnu/packages/python-web.scm (python-slugify): Update to 3.0.4. * gnu/packages/patches/python-slugify-depend-on-unidecode.patch: Adjust accordingly. --- .../patches/python-slugify-depend-on-unidecode.patch | 4 ++-- gnu/packages/python-web.scm | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/gnu/packages/patches/python-slugify-depend-on-unidecode.patch b/gnu/packages/patches/python-slugify-depend-on-unidecode.patch index 6038f432f1..5ac749c19d 100644 --- a/gnu/packages/patches/python-slugify-depend-on-unidecode.patch +++ b/gnu/packages/patches/python-slugify-depend-on-unidecode.patch @@ -6,8 +6,8 @@ index 4800173..6bdd77f 100755 author = 'Val Neekman' author_email = 'info@neekware.com' license = 'MIT' --install_requires = ['text-unidecode==1.2'] --extras_require = {'unidecode': ['Unidecode==1.0.23']} +-install_requires = ['text-unidecode>=1.3'] +-extras_require = {'unidecode': ['Unidecode>=1.1.1']} +install_requires = ['Unidecode'] classifiers = [ diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 9b88d66118..0c93c03adf 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -3219,14 +3219,13 @@ Python.") (define-public python-slugify (package (name "python-slugify") - (version "3.0.2") + (version "3.0.4") (source (origin (method url-fetch) (uri (pypi-uri "python-slugify" version)) (sha256 - (base32 - "0n6pfmsq899c54plpvzi46l7zrpa3zfpm8im6h32czjw6kxky5jp")) + (base32 "0dv97yi5fq074q5qyqbin09pmi8ixg36caf5nkpw2bqkd8jh6pap")) (patches (search-patches "python-slugify-depend-on-unidecode.patch")))) (native-inputs From 3b4cc5cbdbd76a911e40242a020880231ddd415a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 23 Sep 2019 17:09:02 +0200 Subject: [PATCH 197/227] gnu: python-m2crypto: Update to 0.35.2. * gnu/packages/python-crypto.scm (python-m2crypto): Update to 0.35.2. --- gnu/packages/python-crypto.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 88a00070a8..9878837a6c 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -845,13 +845,13 @@ in userspace) (define-public python-m2crypto (package (name "python-m2crypto") - (version "0.30.1") + (version "0.35.2") (source (origin (method url-fetch) (uri (pypi-uri "M2Crypto" version)) (sha256 - (base32 "1iizrpkn4c2n70nvcjqlmnk6fz3vddkrjmwavz1zlsnwv8f7bcm1")))) + (base32 "09yirf3w77w6f49q6nxhrjm9c3a4y9s30s1k09chqrw8zdgx8sjc")))) (build-system python-build-system) (inputs `(("openssl" ,openssl))) (home-page "https://gitlab.com/m2crypto/m2crypto") From 676487049849ca6cebe03f19f171ca912c5e8741 Mon Sep 17 00:00:00 2001 From: "Jakob L. Kreuze" Date: Thu, 27 Jun 2019 20:42:14 -0400 Subject: [PATCH 198/227] gnu: Add screenfetch. * gnu/packages/admin.scm (screenfetch): New variable. Signed-off-by: Efraim Flashner --- gnu/packages/admin.scm | 60 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 645c2ef5d5..327abe455a 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -25,6 +25,7 @@ ;;; Copyright © 2018 Pierre Neidhardt ;;; Copyright © 2019 Brett Gilio ;;; Copyright © 2019 Björn Höfling +;;; Copyright © 2019 Jakob L. Kreuze ;;; ;;; This file is part of GNU Guix. ;;; @@ -55,6 +56,7 @@ #:use-module (guix build-system python) #:use-module (guix build-system trivial) #:use-module (gnu packages) + #:use-module (gnu packages algebra) #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages check) @@ -2751,6 +2753,64 @@ used in screenshots to show other users what operating system or distribution you are running, what theme or icon set you are using, etc.") (license license:expat))) +(define-public screenfetch + ;; First commit supporting current Guix System. + (let ((commit "e3ec82dd464e81e4d10bef218b3016e3044c766c")) + (package + (name "screenfetch") + (version (git-version "3.8.0" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/KittyKatt/screenFetch") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1lzs1l5xgj9mn4b59lhkfgqnyiivf8svd1iwjabzrax90rdmxfwj")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((source (assoc-ref %build-inputs "source")) + (out (assoc-ref %outputs "out"))) + (mkdir-p (string-append out "/bin/")) + (copy-file (string-append source "/screenfetch-dev") + (string-append out "/bin/screenfetch")) + (install-file (string-append source "/screenfetch.1") + (string-append out "/man/man1/")) + (install-file (string-append source "/COPYING") + (string-append out "/share/doc/" ,name "-" ,version)) + (substitute* (string-append out "/bin/screenfetch") + (("/usr/bin/env bash") + (string-append (assoc-ref %build-inputs "bash") + "/bin/bash"))) + (wrap-program + (string-append out "/bin/screenfetch") + `("PATH" ":" prefix + (,(string-append (assoc-ref %build-inputs "bc") "/bin:" + (assoc-ref %build-inputs "scrot") "/bin:" + (assoc-ref %build-inputs "xdpyinfo") "/bin" + (assoc-ref %build-inputs "xprop") "/bin")))) + (substitute* (string-append out "/bin/screenfetch") + (("#!#f") + (string-append "#!" (assoc-ref %build-inputs "bash") + "/bin/bash"))))))) + (inputs + `(("bash" ,bash) + ("bc" ,bc) + ("scrot" ,scrot) + ("xdpyinfo" ,xdpyinfo) + ("xprop" ,xprop))) + (home-page "https://github.com/KittyKatt/screenFetch") + (synopsis "System information script") + (description "Bash screenshot information tool which can be used to +generate those nifty terminal theme information and ASCII distribution logos in +everyone's screenshots nowadays.") + (license license:gpl3)))) + (define-public nnn (package (name "nnn") From 4343eebfc9f7d44ec9a665f3374d1397301b542e Mon Sep 17 00:00:00 2001 From: Brian Leung Date: Mon, 23 Sep 2019 19:58:50 +0200 Subject: [PATCH 199/227] gnu: emacs-ace-window: Update to 0.9.0-1.a534492. * gnu/packages/emacs-xyz.scm (emacs-ace-window): Update to 0.9.0-1.a534492. --- gnu/packages/emacs-xyz.scm | 44 +++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 86e2edebbb..86653293f9 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -5202,29 +5202,33 @@ windows.") (license license:gpl3+))) (define-public emacs-ace-window - (package - (name "emacs-ace-window") - (version "0.9.0") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/abo-abo/ace-window.git") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 "07mcdzjmgrqdvjs94f2n5bkrf5vrq2fwzz256wbm3wzqxqkfy1q6")))) - (build-system emacs-build-system) - (propagated-inputs - `(("emacs-avy" ,emacs-avy))) - (home-page "https://github.com/abo-abo/ace-window") - (synopsis "Quickly switch windows in Emacs") - (description - "@code{ace-window} is meant to replace @code{other-window}. + ;; last release version is from 2015 + (let ((commit "a5344925e399e1f015721cda6cf5db03c90ab87a") + (revision "1")) + (package + (name "emacs-ace-window") + (version (git-version "0.9.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/abo-abo/ace-window.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "18jm8gfgnf6ja9aarws5650lw2zfi3wdwc5j8r5ijn5fcqhfy7rc")))) + (build-system emacs-build-system) + (propagated-inputs + `(("emacs-avy" ,emacs-avy))) + (home-page "https://github.com/abo-abo/ace-window") + (synopsis "Quickly switch windows in Emacs") + (description + "@code{ace-window} is meant to replace @code{other-window}. In fact, when there are only two windows present, @code{other-window} is called. If there are more, each window will have its first character highlighted. Pressing that character will switch to that window.") - (license license:gpl3+))) + (license license:gpl3+)))) (define-public emacs-iedit ;; Last release version was in 2016. From a0bd918116c60253f44e2baf83196e8fdca04324 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 23 Sep 2019 20:48:04 +0200 Subject: [PATCH 200/227] gnu: sbcl-trivia.ppcre: Fix typo in description. * gnu/packages/lisp.scm (sbcl-trivia.ppcre)[description]: Fix typo. --- gnu/packages/lisp.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 94ef3731e0..ee2d28e579 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -6597,7 +6597,7 @@ This system contains the base level system of Trivia with a trivial optimizer.") with Optima, another pattern matching library for Common Lisp. It is meant to be faster and more extensible than Optima. -This system contains the PPCRE extention."))) +This system contains the PPCRE extension."))) (define-public sbcl-trivia.quasiquote (package From 46a8b76ce7d861ff39211536b91dbef9ed7701b5 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 23 Sep 2019 20:49:19 +0200 Subject: [PATCH 201/227] doc: Fix typo. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/guix.texi (Build Systems): Fix/spoil ‘libary’ typo/joke. --- doc/guix.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/guix.texi b/doc/guix.texi index d3170bb46e..093199c63b 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6181,7 +6181,7 @@ package, correctly capitalized. For packages requiring shared library dependencies, you may need to write the @file{/deps/deps.jl} file manually. It's usually a line of @code{const -variable = /gnu/store/libary.so} for each dependency, plus a void function +variable = /gnu/store/library.so} for each dependency, plus a void function @code{check_deps() = nothing}. Some older packages that aren't using @file{Package.toml} yet, will require From 77c2eafbbb9036c0e5ccc60e39c08439731791d8 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 23 Sep 2019 11:55:33 -0700 Subject: [PATCH 202/227] scripts: container: Fix typo. * guix/scripts/container/exec (show-help): Fix spelling of COMMAND. --- guix/scripts/container/exec.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/scripts/container/exec.scm b/guix/scripts/container/exec.scm index d598f5cac4..51b616b384 100644 --- a/guix/scripts/container/exec.scm +++ b/guix/scripts/container/exec.scm @@ -38,7 +38,7 @@ (define (show-help) (display (G_ "Usage: guix container exec PID COMMAND [ARGS...] -Execute COMMMAND within the container process PID.\n")) +Execute COMMAND within the container process PID.\n")) (newline) (display (G_ " -h, --help display this help and exit")) From 7f6941492765c5f6cfe40c38af9dbb29a0700815 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 23 Sep 2019 11:59:24 -0700 Subject: [PATCH 203/227] lint: Fix typo. * guix/lint: Fix spelling of "mentioning". --- guix/lint.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/lint.scm b/guix/lint.scm index ba38bef806..03a8e88225 100644 --- a/guix/lint.scm +++ b/guix/lint.scm @@ -525,7 +525,7 @@ for connections to complete; when TIMEOUT is #f, wait as long as needed." (define (validate-uri uri package field) "Return #t if the given URI can be reached, otherwise return a warning for -PACKAGE mentionning the FIELD." +PACKAGE mentioning the FIELD." (let-values (((status argument) (probe-uri uri #:timeout 3))) ;wait at most 3 seconds (case status From a130544d60747d48098ef27dc0c6cf677ab65afa Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 23 Sep 2019 12:02:33 -0700 Subject: [PATCH 204/227] inferior: Fix typo. * guix/inferior: Fix spelling of "specifications". --- guix/inferior.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/inferior.scm b/guix/inferior.scm index 6be30d3f17..dcbc954432 100644 --- a/guix/inferior.scm +++ b/guix/inferior.scm @@ -390,7 +390,7 @@ inferior package." (cut inferior-package-input-field <> 'package-transitive-propagated-inputs)) (define (%inferior-package-search-paths package field) - "Return the list of search path specificiations of PACKAGE, an inferior + "Return the list of search path specifications of PACKAGE, an inferior package." (define paths (inferior-package-field package From 4907b615c98cd77f1ca1dc37f01145a0d9f4dd1c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 23 Sep 2019 22:02:29 +0300 Subject: [PATCH 205/227] gnu: python-html2text: Update to 2019.8.11. * gnu/packages/python-web.scm (python-html2text): Update to 2019.8.11. [arguments]: Use a custom 'check phase. [home-page]: Update home-page. --- gnu/packages/python-web.scm | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 0c93c03adf..e37ae94e18 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -306,16 +306,24 @@ other HTTP libraries.") (define-public python-html2text (package (name "python-html2text") - (version "2018.1.9") + (version "2019.8.11") (source (origin (method url-fetch) (uri (pypi-uri "html2text" version)) (sha256 (base32 - "1m6d7ciq30adc3d1n8g6r46072n7q8kdy039pqvnnmp763xi8xb2")))) + "0ppgjplg06kmv9sj0x8p7acczcq2mcfgk1jdjwm4w5w40b0vj5pm")))) (build-system python-build-system) - (home-page "https://pypi.org/project/html2text/") + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (invoke "pytest" "test/")))))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://github.com/Alir3z4/html2text") (synopsis "Convert HTML into plain text") (description "html2text takes HTML and converts it into plain ASCII text which is also valid markdown. html2text was originally written by Aaron From fa4867cc99edc1a8d98b315034a8843883021a12 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 23 Sep 2019 12:04:36 -0700 Subject: [PATCH 206/227] import: stackage: Fix typo. * guix/import/stackage: Fix spelling of "version". --- guix/import/stackage.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/import/stackage.scm b/guix/import/stackage.scm index 194bea633e..14150201b5 100644 --- a/guix/import/stackage.scm +++ b/guix/import/stackage.scm @@ -95,7 +95,7 @@ (lts-info-packages (stackage-lts-info-fetch lts-version)))) "Fetch Cabal file for PACKAGE-NAME from hackage.haskell.org. The retrieved -vesion corresponds to the version of PACKAGE-NAME specified in the LTS-VERSION +version corresponds to the version of PACKAGE-NAME specified in the LTS-VERSION release at stackage.org. Return the `package' S-expression corresponding to that package, or #f on failure. PACKAGES-INFO is the alist with the packages included in the Stackage LTS release." From 5da7a04abddcd9c8805131ff27abbfe2b3f1fd33 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 23 Sep 2019 12:08:13 -0700 Subject: [PATCH 207/227] build: ruby-build-system: Fix typo. * guix/build/ruby-build-system: Fix spelling of "invocation". --- guix/build/ruby-build-system.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/build/ruby-build-system.scm b/guix/build/ruby-build-system.scm index 63c94765f7..c957a61115 100644 --- a/guix/build/ruby-build-system.scm +++ b/guix/build/ruby-build-system.scm @@ -128,7 +128,7 @@ is #f." (define* (install #:key inputs outputs (gem-flags '()) #:allow-other-keys) "Install the gem archive SOURCE to the output store item. Additional -GEM-FLAGS are passed to the 'gem' invokation, if present." +GEM-FLAGS are passed to the 'gem' invocation, if present." (let* ((ruby-version (match:substring (string-match "ruby-(.*)\\.[0-9]$" (assoc-ref inputs "ruby")) From 2847df6ba7279233c968d92122f678744ae0662e Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 23 Sep 2019 12:15:51 -0700 Subject: [PATCH 208/227] gnu: perl-xml-xpathengine: Fix typo. * gnu/packages/xml (perl-xml-xpathengine)[description]: Fix spelling of "mimic". --- gnu/packages/xml.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 0cd9319c95..c2faa4cbc0 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -1353,7 +1353,7 @@ maintaining each reference encountered.") "This module provides an XPath engine, that can be re-used by other modules/classes that implement trees. -In order to use the XPath engine, nodes in the user module need to mimick DOM +In order to use the XPath engine, nodes in the user module need to mimic DOM nodes. The degree of similitude between the user tree and a DOM dictates how much of the XPath features can be used. A module implementing all of the DOM should be able to use this module very easily (you might need to add the From 99ce20555d02493daf3ce5df82a158d48cfcb692 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 23 Sep 2019 12:18:41 -0700 Subject: [PATCH 209/227] gnu: fe: Fix typo. * gnu/packages/text-editors (fe)[description]: Fix spelling of "menus". --- gnu/packages/text-editors.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/text-editors.scm b/gnu/packages/text-editors.scm index 432e79e350..e5dee2f4e5 100644 --- a/gnu/packages/text-editors.scm +++ b/gnu/packages/text-editors.scm @@ -607,7 +607,7 @@ The basic features of Geany are: arbitrary text regions; it is not bound to syntactic units. Fe has no configuration or extension language and requires no setup. -Its user interface is emacs-like and it has menues for the very most +Its user interface is emacs-like and it has menus for the very most important functions to help beginners. Further there is a reference card. It offers: From 4186adce1c4bb8600f02e8bbc0d4e2639f17c1dc Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 23 Sep 2019 12:21:36 -0700 Subject: [PATCH 210/227] gnu: bctoolbox: Fix typo. * gnu/packages/telephony (bctoolbox)[description]: Fix plurality of "software". --- gnu/packages/telephony.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 41896f2eb6..5d6f0ffed6 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -284,7 +284,7 @@ supporting cryptographic kernel.") (home-page "https://www.linphone.org") (synopsis "Utilities library for linphone software") (description "BCtoolbox is a utilities library used by Belledonne -Communications softwares like linphone.") +Communications software like linphone.") (license license:gpl2+))) (define-public ortp From 2c33a849f7a9c2ba68f7e37aa8ba489bf5603594 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Mon, 23 Sep 2019 21:35:33 +0530 Subject: [PATCH 211/227] gnu: guile-email: Update to 0.2.1. * gnu/packages/guile-xyz.scm (guile-email): Update to 0.2.1. [arguments]: Remove patch-module-dir phase. --- gnu/packages/guile-xyz.scm | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 9822cd59c6..05658e6425 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -909,7 +909,7 @@ tracker's SOAP service, such as @url{https://bugs.gnu.org}.") (define-public guile-email (package (name "guile-email") - (version "0.2.0") + (version "0.2.1") (source (origin (method url-fetch) @@ -918,7 +918,7 @@ tracker's SOAP service, such as @url{https://bugs.gnu.org}.") version ".tar.lz")) (sha256 (base32 - "0zgvh2329zrclxfb1lh7dnqrq46jj77l0lx7j9y6y3xgbhd2d9l0")))) + "1ph3pb69hr3d8mj05fmbpf5rc67dlm8qnb35cc7cxz8ingvl7kv3")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -926,16 +926,7 @@ tracker's SOAP service, such as @url{https://bugs.gnu.org}.") (inputs `(("guile" ,guile-2.2))) (arguments - '(#:make-flags '("GUILE_AUTO_COMPILE=0") ; to prevent guild warnings - #:phases - (modify-phases %standard-phases - (add-before 'configure 'patch-module-dir - (lambda _ - (substitute* "Makefile.in" - (("^godir = ([[:graph:]]+)") - "godir = \ -$(libdir)/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache\n")) - #t))))) + '(#:make-flags '("GUILE_AUTO_COMPILE=0"))) ; to prevent guild warnings (home-page "https://guile-email.systemreboot.net") (synopsis "Guile email parser") (description "guile-email is a collection of email utilities implemented From 90c40ea209f1d8c069931c6b3cb9671b401fe21a Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 23 Sep 2019 12:25:15 -0700 Subject: [PATCH 212/227] gnu: go-github-com-audriusbutkevicius-pfilter: Fix typo. * gnu/packages/syncthing (go-github-com-audriusbutkevicius-pfilter) [synopsis]: Fix spelling of "multiple". --- gnu/packages/syncthing.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm index 74457f6ec4..7e1d8df333 100644 --- a/gnu/packages/syncthing.scm +++ b/gnu/packages/syncthing.scm @@ -1219,7 +1219,7 @@ quoting, commenting, and escaping.") (build-system go-build-system) (arguments '(#:import-path "github.com/AudriusButkevicius/pfilter")) - (synopsis "Filter packets into mulitple virtual connections") + (synopsis "Filter packets into multiple virtual connections") (description "Pfilter is a Go package for filtering packets into multiple virtual connections from a single physical connection.") (home-page "https://github.com/AudriusButkevicius/pfilter") From 35fc0f4cd3387d45751a2c8a888a70e073aac348 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 23 Sep 2019 12:28:26 -0700 Subject: [PATCH 213/227] gnu: python-sphinxcontrib-htmlhelp: Fix typo. * gnu/packages/sphinx (python-sphinxcontrib-htmlhelp)[synopsis]: Fix spelling of "extension". --- gnu/packages/sphinx.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm index 9bd1e8d421..da7492c42e 100644 --- a/gnu/packages/sphinx.scm +++ b/gnu/packages/sphinx.scm @@ -216,7 +216,7 @@ to code blocks.") (arguments `(#:tests? #f)) ;XXX: circular dependency on Sphinx (home-page "https://github.com/sphinx-doc/sphinxcontrib-htmlhelp") - (synopsis "Sphinx exension for rendering HTML help files") + (synopsis "Sphinx extension for rendering HTML help files") (description "@code{sphinxcontrib-htmlhelp} is a Sphinx extension which renders HTML help files.") From 3defa90ddf949328a87645612956d991b9725fa4 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 23 Sep 2019 12:43:45 -0700 Subject: [PATCH 214/227] gnu: python-py-bcrypt: Fix typo. * gnu/packages/python-crypto (python-py-bcrypt)[description]: Fix spelling of "parametrised". --- gnu/packages/python-crypto.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 9878837a6c..b83721946c 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -160,7 +160,7 @@ to providing full-strength password hashing for multi-user application.") system hashes passwords using a version of Bruce Schneier's Blowfish block cipher with modifications designed to raise the cost of off-line password cracking and frustrate fast hardware implementation. The computation cost of -the algorithm is parametised, so it can be increased as computers get faster. +the algorithm is parametrised, so it can be increased as computers get faster. The intent is to make a compromise of a password database less likely to result in an attacker gaining knowledge of the plaintext passwords (e.g. using John the Ripper).") From 0def6a488cb70840f3bba6bd319be2af6f910582 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 23 Sep 2019 12:46:15 -0700 Subject: [PATCH 215/227] gnu: sbcl-cl-hooks: Fix typo. * gnu/packages/lisp (sbcl-cl-hooks)[description]: Fix spelling of "possibilities". --- gnu/packages/lisp.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index ee2d28e579..985ed45465 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -6833,7 +6833,7 @@ Emacs. In the Common LISP Object System (CLOS), a similar kind of extensibility is possible using the flexible multi-method dispatch mechanism. It may even seem -that the concept of hooks does not provide any benefits over the possibilites +that the concept of hooks does not provide any benefits over the possibilities of CLOS. However, there are some differences: @itemize From 028053f295f2ab1653a8bb9aed69c33702eeb1b6 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 23 Sep 2019 12:51:49 -0700 Subject: [PATCH 216/227] gnu: guile-persist: Fix typo. * gnu/packages/guile-xyx (guile-persist)[synopsis]: Fix spelling of "Persistence". --- gnu/packages/guile-xyz.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 05658e6425..2736b36a38 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -2156,7 +2156,7 @@ chunks can be expressions as well as simple tokens.") ("libtool" ,libtool) ("pkg-config" ,pkg-config))) (home-page "https://gitlab.com/tampe/guile-persist") - (synopsis "Persistance programming framework for Guile") + (synopsis "Persistence programming framework for Guile") (description "This is a serialization library for serializing objects like classes and objects, closures and structs. This currently does not support From d654ad066ee4c1727bb4cd3c96ca5aca55ad2b65 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 23 Sep 2019 12:53:40 -0700 Subject: [PATCH 217/227] gnu: rust-widestring: Fix typo. * gnu/packages/crates-io (rust-widestring)[description]: Fix spelling if "libraries". --- gnu/packages/crates-io.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/crates-io.scm b/gnu/packages/crates-io.scm index e2a404b54d..7a0ea03a67 100644 --- a/gnu/packages/crates-io.scm +++ b/gnu/packages/crates-io.scm @@ -4421,7 +4421,7 @@ in Rust.") (synopsis "Wide string Rust FFI library") (description "A wide string Rust FFI library for converting to and from wide strings, -such as those often used in Windows API or other FFI libaries. Both UTF-16 and +such as those often used in Windows API or other FFI libraries. Both UTF-16 and UTF-32 types are provided, including support for malformed encoding.") (license (list license:asl2.0 license:expat)))) From 947b3ac68bddedaf98b656d8e6d3585e5551794f Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 23 Sep 2019 12:58:32 -0700 Subject: [PATCH 218/227] gnu: vco-plugins: Fix typo. * gnu/packages/audio (vco-plugins)[description]: Fix spelling of "rectangle". --- gnu/packages/audio.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 4dbbace3e3..6eb61583f7 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -1024,7 +1024,7 @@ audio signals.") @enumerate @item Pulse-VCO, a dirac pulse oscillator with flat amplitude spectrum @item Saw-VCO, a sawtooth oscillator with 1/F amplitude spectrum -@item Rec-VCO, a square / rectange oscillator +@item Rec-VCO, a square / rectangle oscillator @end enumerate\n All oscillators are low-pass filtered to provide waveforms similar to the From f74b6983510aa248ae35727ec50313ac706e13ee Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 23 Sep 2019 13:06:25 -0700 Subject: [PATCH 219/227] gnu: packages: Fix typos. * gnu/packages/emacs-xyz (emacs-litable)[description]: Fix use of singular form of "This package". (emacs-ssh-config-mode)[description]: Likewise. * gnu/packages/haskell-xyz (ghc-process-extras)[description]: Likewise. * gnu/packages/lisp (sbcl-fare-quasiquote-readtable)[description]: Likewise. * gnu/packages/usb-modeswitch (usb-modeswitch-data)[description]: Likewise. --- gnu/packages/emacs-xyz.scm | 4 ++-- gnu/packages/haskell-xyz.scm | 2 +- gnu/packages/lisp.scm | 2 +- gnu/packages/usb-modeswitch.scm | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm index 86653293f9..667a7f5d3c 100644 --- a/gnu/packages/emacs-xyz.scm +++ b/gnu/packages/emacs-xyz.scm @@ -2704,7 +2704,7 @@ in Lisp modes.") `(("emacs-dash" ,emacs-dash))) (home-page "https://github.com/Fuco1/litable/") (synopsis "Dynamic evaluation replacement with Emacs") - (description "This packages provides dynamic evaluation in Emacs.") + (description "This package provides dynamic evaluation in Emacs.") (license license:gpl3+)))) (define-public emacs-string-inflection @@ -18337,7 +18337,7 @@ JIRA issue servers.") (synopsis "Mode for fontification of ~/.ssh/config") (description - "This packages fontifies the ssh config keywords and creates + "This package fontifies the ssh config keywords and creates keybindings for skipping from host section to host section.") (license license:gpl3+)))) diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm index 4313b6059e..a36451fa8c 100644 --- a/gnu/packages/haskell-xyz.scm +++ b/gnu/packages/haskell-xyz.scm @@ -7801,7 +7801,7 @@ examination.") ("ghc-listlike" ,ghc-listlike))) (home-page "https://github.com/seereason/process-extras") (synopsis "Extra tools for managing processes") - (description "This packages extends + (description "This package extends @url{http://hackage.haskell.org/package/process}. It allows you to read process input and output as ByteStrings or Text, or write your own ProcessOutput instance. It also provides lazy process input and output, diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 985ed45465..6c373ce6e2 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -6474,7 +6474,7 @@ Trivia.") quasiquote is enable matching of quasiquoted patterns, using Optima or Trivia. -This packages uses fare-quasiquote with named-readtable."))) +This package uses fare-quasiquote with named-readtable."))) (define-public sbcl-trivia.level0 (let ((commit "902e0c65602bbfe96ae82e679330b3771ddc7603") diff --git a/gnu/packages/usb-modeswitch.scm b/gnu/packages/usb-modeswitch.scm index 8f1cf9df60..7e4526ae46 100644 --- a/gnu/packages/usb-modeswitch.scm +++ b/gnu/packages/usb-modeswitch.scm @@ -69,7 +69,7 @@ (install-file (string-append files "/COPYING") license-dir))))) (home-page "http://www.draisberghof.de/usb_modeswitch/") (synopsis "Data package for USB_ModeSwitch") - (description "This packages contains data about devices and a UDEV rules + (description "This package contains data about devices and a UDEV rules file for use with USB_ModeSwitch.") (license license:gpl2+))) From a2f6f3b199a93fcac34ae92ebd1c73dd37ff3cd5 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 23 Sep 2019 13:17:56 -0700 Subject: [PATCH 220/227] gnu: r-gplots: Fix typo. * gnu/packages/statistics (r-gplots)[description]: Fix spelling of "balloon". --- gnu/packages/statistics.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 2ffe0a10d6..74eb466066 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -4288,7 +4288,7 @@ including: @item enhanced regression diagnostic plots @item formula-enabled interface to @code{stats::lowess} function @item displaying textual data in plots -@item baloon plots +@item balloon plots @item plotting \"Venn\" diagrams @item displaying Open-Office style plots @item plotting multiple data on same region, with separate axes From 4f8c29a75c3647b104c43ebf615d4a63a5e056b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 Sep 2019 21:22:28 +0200 Subject: [PATCH 221/227] show, search: Add '--load-path'. * guix/scripts/search.scm (show-help, %options): Add -L/--load-path. * guix/scripts/show.scm (show-help, %options): Add -L/--load-path. --- guix/scripts/search.scm | 11 ++++++++++- guix/scripts/show.scm | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/guix/scripts/search.scm b/guix/scripts/search.scm index 8fceb83668..827b2eb7a9 100644 --- a/guix/scripts/search.scm +++ b/guix/scripts/search.scm @@ -19,6 +19,8 @@ (define-module (guix scripts search) #:use-module (guix ui) #:use-module (guix scripts package) + #:use-module ((guix scripts build) + #:select (%standard-build-options)) #:use-module (guix scripts) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) @@ -36,6 +38,9 @@ This is an alias for 'guix package -s'.\n")) (display (G_ " -V, --version display version information and exit")) (newline) + (display (G_ " + -L, --load-path=DIR prepend DIR to the package module search path")) + (newline) (show-bug-report-information)) (define %options @@ -46,7 +51,11 @@ This is an alias for 'guix package -s'.\n")) (exit 0))) (option '(#\V "version") #f #f (lambda args - (show-version-and-exit "guix search"))))) + (show-version-and-exit "guix search"))) + + (find (lambda (option) + (member "load-path" (option-names option))) + %standard-build-options))) (define (guix-search . args) (define (handle-argument arg result) diff --git a/guix/scripts/show.scm b/guix/scripts/show.scm index 94f0559358..ef64b5755b 100644 --- a/guix/scripts/show.scm +++ b/guix/scripts/show.scm @@ -19,6 +19,8 @@ (define-module (guix scripts show) #:use-module (guix ui) #:use-module (guix scripts package) + #:use-module ((guix scripts build) + #:select (%standard-build-options)) #:use-module (guix scripts) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) @@ -36,6 +38,9 @@ This is an alias for 'guix package --show='.\n")) (display (G_ " -V, --version display version information and exit")) (newline) + (display (G_ " + -L, --load-path=DIR prepend DIR to the package module search path")) + (newline) (show-bug-report-information)) (define %options @@ -46,7 +51,11 @@ This is an alias for 'guix package --show='.\n")) (exit 0))) (option '(#\V "version") #f #f (lambda args - (show-version-and-exit "guix show"))))) + (show-version-and-exit "guix show"))) + + (find (lambda (option) + (member "load-path" (option-names option))) + %standard-build-options))) (define (guix-show . args) (define (handle-argument arg result) From 7abd5997f41fec38ea1daa9099a9693062f10dbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 Sep 2019 22:07:53 +0200 Subject: [PATCH 222/227] repl, marionette: 'self-quoting?' matches keywords. * guix/repl.scm (self-quoting?): Add 'keyword?' and 'array?'; remove 'vector?' and 'bytevector?'. * gnu/tests.scm (marionette-shepherd-service) : Likewise. : Remove (rnrs bytevector). --- gnu/tests.scm | 7 +++---- guix/repl.scm | 6 ++---- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/gnu/tests.scm b/gnu/tests.scm index 0871b4c6f7..27cb39c2b9 100644 --- a/gnu/tests.scm +++ b/gnu/tests.scm @@ -87,8 +87,7 @@ (requirement `(udev ,@requirement)) (modules '((ice-9 match) - (srfi srfi-9 gnu) - (rnrs bytevectors))) + (srfi srfi-9 gnu))) (start (with-imported-modules imported-modules #~(lambda () @@ -98,8 +97,8 @@ ((_ pred rest ...) (or (pred x) (one-of rest ...)))))) - (one-of symbol? string? pair? null? vector? - bytevector? number? boolean?))) + (one-of symbol? string? keyword? pair? null? array? + number? boolean?))) (match (primitive-fork) (0 diff --git a/guix/repl.scm b/guix/repl.scm index 5cff5c71e9..1ead18c53b 100644 --- a/guix/repl.scm +++ b/guix/repl.scm @@ -17,7 +17,6 @@ ;;; along with GNU Guix. If not, see . (define-module (guix repl) - #:use-module (rnrs bytevectors) #:use-module (ice-9 match) #:export (send-repl-response machine-repl)) @@ -37,9 +36,8 @@ ((_ pred rest ...) (or (pred x) (one-of rest ...)))))) - (one-of symbol? string? pair? null? vector? - bytevector? number? boolean?))) - + (one-of symbol? string? keyword? pair? null? array? + number? boolean?))) (define (send-repl-response exp output) "Write the response corresponding to the evaluation of EXP to PORT, an From 24ab804ce11fe12ff49cd144a3d9c4bfcf55b41c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 Sep 2019 22:17:39 +0200 Subject: [PATCH 223/227] gexp: Catch and report non-self-quoting gexp inputs. Previously we would, for example, generate build scripts in the store; when trying to run them, we'd get a 'read' error due to the presence of # syntax in there. * guix/gexp.scm (gexp->sexp)[self-quoting?]: New procedure. [reference->sexp]: Check whether the argument in a box is self-quoting. Raise a '&gexp-input-error' condition if it's not. * tests/gexp.scm ("lower-gexp, non-self-quoting input"): New test. --- guix/gexp.scm | 13 ++++++++++++- tests/gexp.scm | 7 +++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/guix/gexp.scm b/guix/gexp.scm index 45cd5869f7..0d0b661c65 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -1005,6 +1005,15 @@ references; otherwise, return only non-native references." (target (%current-target-system))) "Return (monadically) the sexp corresponding to EXP for the given OUTPUT, and in the current monad setting (system type, etc.)" + (define (self-quoting? x) + (letrec-syntax ((one-of (syntax-rules () + ((_) #f) + ((_ pred rest ...) + (or (pred x) + (one-of rest ...)))))) + (one-of symbol? string? keyword? pair? null? array? + number? boolean?))) + (define* (reference->sexp ref #:optional native?) (with-monad %store-monad (match ref @@ -1034,8 +1043,10 @@ and in the current monad setting (system type, etc.)" #:target target))) ;; OBJ must be either a derivation or a store file name. (return (expand thing obj output))))) - (($ x) + (($ (? self-quoting? x)) (return x)) + (($ x) + (raise (condition (&gexp-input-error (input x))))) (x (return x))))) diff --git a/tests/gexp.scm b/tests/gexp.scm index 5c013d838d..50d0948659 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -871,6 +871,13 @@ (eq? (derivation-input-derivation (lowered-gexp-guile lexp)) (%guile-for-build))))))) +(test-eq "lower-gexp, non-self-quoting input" + + + (guard (c ((gexp-input-error? c) + (gexp-error-invalid-input c))) + (run-with-store %store + (lower-gexp #~(foo #$+))))) + (test-assertm "gexp->derivation #:references-graphs" (mlet* %store-monad ((one (text-file "one" (random-text))) From 7b7e5b88fc341ddeada4a8df418767ce4dfca691 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 Sep 2019 22:23:52 +0200 Subject: [PATCH 224/227] gexp: Remove unused procedure. * guix/gexp.scm (syntax-location-string): Remove. --- guix/gexp.scm | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/guix/gexp.scm b/guix/gexp.scm index 0d0b661c65..e788fc5981 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -1055,19 +1055,6 @@ and in the current monad setting (system type, etc.)" reference->sexp (gexp-references exp)))) (return (apply (gexp-proc exp) args)))) -(define (syntax-location-string s) - "Return a string representing the source code location of S." - (let ((props (syntax-source s))) - (if props - (let ((file (assoc-ref props 'filename)) - (line (and=> (assoc-ref props 'line) 1+)) - (column (assoc-ref props 'column))) - (if file - (simple-format #f "~a:~a:~a" - file line column) - (simple-format #f "~a:~a" line column))) - ""))) - (define-syntax-rule (define-syntax-parameter-once name proc) ;; Like 'define-syntax-parameter' but ensure the top-level binding for NAME ;; does not get redefined. This works around a race condition in a From 46e552cb0f6b7b11600b7c41146f94dce70eee99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 Sep 2019 22:58:50 +0200 Subject: [PATCH 225/227] services: cuirass: Remove unneeded conditional. * gnu/services/cuirass.scm (cuirass-shepherd-service): Remove unneeded 'and'. --- gnu/services/cuirass.scm | 120 +++++++++++++++++++-------------------- 1 file changed, 59 insertions(+), 61 deletions(-) diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm index 7bd43cd427..914a0d337f 100644 --- a/gnu/services/cuirass.scm +++ b/gnu/services/cuirass.scm @@ -81,70 +81,68 @@ (define (cuirass-shepherd-service config) "Return a for the Cuirass service with CONFIG." - (and - (cuirass-configuration? config) - (let ((cuirass (cuirass-configuration-cuirass config)) - (cache-directory (cuirass-configuration-cache-directory config)) - (web-log-file (cuirass-configuration-web-log-file config)) - (log-file (cuirass-configuration-log-file config)) - (user (cuirass-configuration-user config)) - (group (cuirass-configuration-group config)) - (interval (cuirass-configuration-interval config)) - (database (cuirass-configuration-database config)) - (ttl (cuirass-configuration-ttl config)) - (port (cuirass-configuration-port config)) - (host (cuirass-configuration-host config)) - (specs (cuirass-configuration-specifications config)) - (use-substitutes? (cuirass-configuration-use-substitutes? config)) - (one-shot? (cuirass-configuration-one-shot? config)) - (fallback? (cuirass-configuration-fallback? config))) - (list (shepherd-service - (documentation "Run Cuirass.") - (provision '(cuirass)) - (requirement '(guix-daemon networking)) - (start #~(make-forkexec-constructor - (list (string-append #$cuirass "/bin/cuirass") - "--cache-directory" #$cache-directory - "--specifications" - #$(scheme-file "cuirass-specs.scm" specs) - "--database" #$database - "--ttl" #$(string-append (number->string ttl) "s") - "--interval" #$(number->string interval) - #$@(if use-substitutes? '("--use-substitutes") '()) - #$@(if one-shot? '("--one-shot") '()) - #$@(if fallback? '("--fallback") '())) + (let ((cuirass (cuirass-configuration-cuirass config)) + (cache-directory (cuirass-configuration-cache-directory config)) + (web-log-file (cuirass-configuration-web-log-file config)) + (log-file (cuirass-configuration-log-file config)) + (user (cuirass-configuration-user config)) + (group (cuirass-configuration-group config)) + (interval (cuirass-configuration-interval config)) + (database (cuirass-configuration-database config)) + (ttl (cuirass-configuration-ttl config)) + (port (cuirass-configuration-port config)) + (host (cuirass-configuration-host config)) + (specs (cuirass-configuration-specifications config)) + (use-substitutes? (cuirass-configuration-use-substitutes? config)) + (one-shot? (cuirass-configuration-one-shot? config)) + (fallback? (cuirass-configuration-fallback? config))) + (list (shepherd-service + (documentation "Run Cuirass.") + (provision '(cuirass)) + (requirement '(guix-daemon networking)) + (start #~(make-forkexec-constructor + (list (string-append #$cuirass "/bin/cuirass") + "--cache-directory" #$cache-directory + "--specifications" + #$(scheme-file "cuirass-specs.scm" specs) + "--database" #$database + "--ttl" #$(string-append (number->string ttl) "s") + "--interval" #$(number->string interval) + #$@(if use-substitutes? '("--use-substitutes") '()) + #$@(if one-shot? '("--one-shot") '()) + #$@(if fallback? '("--fallback") '())) - #:environment-variables - (list "GIT_SSL_CAINFO=/etc/ssl/certs/ca-certificates.crt" - (string-append "GIT_EXEC_PATH=" #$git - "/libexec/git-core")) + #:environment-variables + (list "GIT_SSL_CAINFO=/etc/ssl/certs/ca-certificates.crt" + (string-append "GIT_EXEC_PATH=" #$git + "/libexec/git-core")) - #:user #$user - #:group #$group - #:log-file #$log-file)) - (stop #~(make-kill-destructor))) - (shepherd-service - (documentation "Run Cuirass web interface.") - (provision '(cuirass-web)) - (requirement '(guix-daemon networking)) - (start #~(make-forkexec-constructor - (list (string-append #$cuirass "/bin/cuirass") - "--cache-directory" #$cache-directory - "--specifications" - #$(scheme-file "cuirass-specs.scm" specs) - "--database" #$database - "--ttl" #$(string-append (number->string ttl) "s") - "--web" - "--port" #$(number->string port) - "--listen" #$host - "--interval" #$(number->string interval) - #$@(if use-substitutes? '("--use-substitutes") '()) - #$@(if fallback? '("--fallback") '())) + #:user #$user + #:group #$group + #:log-file #$log-file)) + (stop #~(make-kill-destructor))) + (shepherd-service + (documentation "Run Cuirass web interface.") + (provision '(cuirass-web)) + (requirement '(guix-daemon networking)) + (start #~(make-forkexec-constructor + (list (string-append #$cuirass "/bin/cuirass") + "--cache-directory" #$cache-directory + "--specifications" + #$(scheme-file "cuirass-specs.scm" specs) + "--database" #$database + "--ttl" #$(string-append (number->string ttl) "s") + "--web" + "--port" #$(number->string port) + "--listen" #$host + "--interval" #$(number->string interval) + #$@(if use-substitutes? '("--use-substitutes") '()) + #$@(if fallback? '("--fallback") '())) - #:user #$user - #:group #$group - #:log-file #$web-log-file)) - (stop #~(make-kill-destructor))))))) + #:user #$user + #:group #$group + #:log-file #$web-log-file)) + (stop #~(make-kill-destructor)))))) (define (cuirass-account config) "Return the user accounts and user groups for CONFIG." From 46a9d88512a706f310e91370b6313085da040d2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 Sep 2019 22:59:39 +0200 Subject: [PATCH 226/227] gnu: cuirass: Update to d27ff21. * gnu/packages/ci.scm (cuirass): Update to d27ff21. --- gnu/packages/ci.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index 608cd0af23..5807c8b68c 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -47,8 +47,8 @@ #:use-module (guix build-system gnu)) (define-public cuirass - (let ((commit "1cd2f9334dde13542732c22753c4ebde61bc95e0") - (revision "23")) + (let ((commit "d27ff21e430cd38b02bd70a0dc8d60c9c2736f83") + (revision "24")) (package (name "cuirass") (version (string-append "0.0.1-" revision "." (string-take commit 7))) @@ -60,7 +60,7 @@ (file-name (string-append name "-" version)) (sha256 (base32 - "0r3x8gv0v89brjqi8r31p6c0mblbaf2kdk2fz99jiab4pir16w87")))) + "166xl9zfy7dm645fk2ln45bvw0y0gy0xw8fb7mprbjz8v95dh27p")))) (build-system gnu-build-system) (arguments '(#:modules ((guix build utils) From 7b3f56f5d7f4d2bb936e1579ed442e7f5b080abd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 23 Sep 2019 23:38:59 +0200 Subject: [PATCH 227/227] pull: Use ~/.cache/guix/checkouts instead of ~/.cache/guix/pull. Previously 'channel-news-for-commit' would use the former while 'guix pull' would use the latter. Consequently, the first 'guix pull -N' would clone the repository anew. * guix/scripts/pull.scm (guix-pull): Remove 'cache', and leave %REPOSITORY-CACHE-DIRECTORY to its default value. --- guix/scripts/pull.scm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index a7fd36fffc..2b7b991b50 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -764,7 +764,6 @@ Use '~/.config/guix/channels.scm' instead.")) (with-git-error-handling (let* ((opts (parse-command-line args %options (list %default-options))) - (cache (string-append (cache-directory) "/pull")) (channels (channel-list opts)) (profile (or (assoc-ref opts 'profile) %current-profile))) (cond ((assoc-ref opts 'query) @@ -776,8 +775,7 @@ Use '~/.config/guix/channels.scm' instead.")) (ensure-default-profile) (with-status-verbosity (assoc-ref opts 'verbosity) (parameterize ((%current-system (assoc-ref opts 'system)) - (%graft? (assoc-ref opts 'graft?)) - (%repository-cache-directory cache)) + (%graft? (assoc-ref opts 'graft?))) (set-build-options-from-command-line store opts) (honor-x509-certificates store)