From bb640d6133dea0ede7e80db9ca64a9b2e451317a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 24 Nov 2018 15:59:26 +0100 Subject: daemon: Ignore '--keep-failed' for TCP/IP clients. * nix/nix-daemon/nix-daemon.cc (performOp) : When 'isRemoteConnection' is true, set 'settings.keepFailed' to zero. * doc/guix.texi (Common Build Options): Document this behavior. --- doc/guix.texi | 4 ++++ nix/nix-daemon/nix-daemon.cc | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index e783c16365..a2af1e9cbd 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6229,6 +6229,10 @@ the end of the build log. This is useful when debugging build issues. @xref{Debugging Build Failures}, for tips and tricks on how to debug build issues. +This option has no effect when connecting to a remote daemon with a +@code{guix://} URI (@pxref{The Store, the @code{GUIX_DAEMON_SOCKET} +variable}). + @item --keep-going @itemx -k Keep going when some of the derivations fail to build; return only once diff --git a/nix/nix-daemon/nix-daemon.cc b/nix/nix-daemon/nix-daemon.cc index 2939422172..6ce475a26c 100644 --- a/nix/nix-daemon/nix-daemon.cc +++ b/nix/nix-daemon/nix-daemon.cc @@ -565,6 +565,12 @@ static void performOp(bool trusted, unsigned int clientVersion, case wopSetOptions: { settings.keepFailed = readInt(from) != 0; + if (isRemoteConnection) + /* When the client is remote, don't keep the failed build tree as + it is presumably inaccessible to the client and could fill up + our disk. */ + settings.keepFailed = 0; + settings.keepGoing = readInt(from) != 0; settings.set("build-fallback", readInt(from) ? "true" : "false"); verbosity = (Verbosity) readInt(from); -- cgit v1.2.3 From 63fd9f084a5e345d2edaeaf5e8f435a3130f9edc Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 24 Nov 2018 19:38:55 +0100 Subject: ssh: Make 'send-files' more robust. Possibly fixes . * guix/ssh.scm (send-files): Call 'channel-get-exit-status' only when RESULT is true. --- guix/ssh.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/guix/ssh.scm b/guix/ssh.scm index 25ec8295e8..104f4f52d6 100644 --- a/guix/ssh.scm +++ b/guix/ssh.scm @@ -297,9 +297,11 @@ Return the list of store items actually sent." (channel-send-eof port) ;; Wait for completion of the remote process and read the status sexp from - ;; PORT. + ;; PORT. Wait for the exit status only when 'read' completed; otherwise, + ;; we might wait forever if the other end is stuck. (let* ((result (false-if-exception (read port))) - (status (zero? (channel-get-exit-status port)))) + (status (and result + (zero? (channel-get-exit-status port))))) (close-port port) (match result (('success . _) -- cgit v1.2.3 From 682c2918992a5d2d716cdc6a9cc7db62cd994e1e Mon Sep 17 00:00:00 2001 From: Brett Gilio Date: Sat, 24 Nov 2018 00:12:14 -0600 Subject: gnu: sqlcipher: Update to 3.4.2. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/databases.scm (sqlcipher): Update to 3.4.2. Signed-off-by: Ludovic Courtès --- gnu/packages/databases.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 7258622f42..ac1b23a327 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1963,14 +1963,14 @@ can autogenerate peewee models using @code{pwiz}, a model generator.") (define-public sqlcipher (package (name "sqlcipher") - (version "3.3.1") + (version "3.4.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/sqlcipher/" name "/archive/v" version ".tar.gz")) (sha256 - (base32 "1gv58dlbpzrmznly52yqbxgvii0ib88zr3aszla1bsypwjr6flff")) + (base32 "1nxarwbci8jx99f1d0y1ivxcv25s78l1p7q6qy28lkpkcx8pm2b9")) (file-name (string-append name "-" version ".tar.gz")))) (build-system gnu-build-system) (inputs -- cgit v1.2.3 From 61d6451372eaa641fec8475b551f46f9c4884a37 Mon Sep 17 00:00:00 2001 From: Brett Gilio Date: Sat, 24 Nov 2018 00:18:55 -0600 Subject: gnu: emacs-zenburn-theme: Update to 2.6. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-zenburn-theme): Update to 2.6. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 4e096ea8c5..fa79a26e79 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3391,7 +3391,7 @@ organizer.") (define-public emacs-zenburn-theme (package (name "emacs-zenburn-theme") - (version "2.5") + (version "2.6") (source (origin (method url-fetch) (uri (string-append @@ -3400,7 +3400,7 @@ organizer.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "03kfhzgbbbl8ivpzzky6qxw4j9mmp452m1sk7wikxmcalfnix0gn")))) + "0qc9d1rwq55yzh8shbppyd6izy1grpyr8kqh5zdgm7c5jccngpr4")))) (build-system emacs-build-system) (home-page "https://github.com/bbatsov/zenburn-emacs") (synopsis "Low contrast color theme for Emacs") -- cgit v1.2.3 From 71a78ba65b00ad1f27086a3dcdded7dc4326ade1 Mon Sep 17 00:00:00 2001 From: Brett Gilio Date: Sat, 24 Nov 2018 13:43:54 -0600 Subject: gnu: emacs-company: Update to 0.9.7. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-company): Update to 0.9.7. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index fa79a26e79..9112902548 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -2771,7 +2771,7 @@ build jobs.") (define-public emacs-company (package (name "emacs-company") - (version "0.9.6") + (version "0.9.7") (source (origin (method url-fetch) @@ -2780,7 +2780,7 @@ build jobs.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0a7zvmfvxh9w67myvcj2511ayk0fvkm06cdg38y8khnsx63jrr4k")))) + "19flv38f2qhxda8lbk2ckywvibd72vbzmn4hchqz6d8acsknh4sb")))) (build-system emacs-build-system) (arguments `(#:phases -- cgit v1.2.3 From 254602cdf884379231793c4d793b25c9ebd6c806 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 25 Nov 2018 01:19:21 +0100 Subject: gnu: guix: Update to 71a78ba. * gnu/packages/package-management.scm (guix): Update to 71a78ba. --- gnu/packages/package-management.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index dd83d75874..d277d81acb 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -102,8 +102,8 @@ ;; Note: the 'update-guix-package.scm' script expects this definition to ;; start precisely like this. (let ((version "0.15.0") - (commit "f5a2724ae453f4a4b55ff848f4ad7e30efb6eef8") - (revision 7)) + (commit "71a78ba65b00ad1f27086a3dcdded7dc4326ade1") + (revision 8)) (package (name "guix") @@ -119,7 +119,7 @@ (commit commit))) (sha256 (base32 - "12glmvifbwvl6lmxh1mc8nbcp0f5qgw40rmf8n1icxvj0mnjrwp4")) + "0isagzccfxjqrc38wamknvh0jzv1pjh0wq5baj9jzwl07xkrc0hc")) (file-name (string-append "guix-" version "-checkout")))) (build-system gnu-build-system) (arguments -- cgit v1.2.3 From 96ce8b5507166e67bb2ed8128889d333a2963124 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Nov 2018 12:35:04 +0100 Subject: gnu: Add cl-markup. * gnu/packages/lisp.scm (cl-markup, ecl-cl-markup, sbcl-cl-markup): New variables. --- gnu/packages/lisp.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index a3649e5bd6..1d8b0f0cdd 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -3494,3 +3494,39 @@ Lisp, featuring: (define-public ecl-lparallel (sbcl-package->ecl-package sbcl-lparallel)) + +(define-public sbcl-cl-markup + (let ((commit "e0eb7debf4bdff98d1f49d0f811321a6a637b390")) + (package + (name "sbcl-cl-markup") + (version (git-version "0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/arielnetworks/cl-markup/") + (commit commit))) + (file-name (git-file-name "cl-markup" version)) + (sha256 + (base32 + "10l6k45971dl13fkdmva7zc6i453lmq9j4xax2ci6pjzlc6xjhp7")))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/arielnetworks/cl-markup/") + (synopsis "Markup generation library for Common Lisp") + (description + "A modern markup generation library for Common Lisp that features: + +@itemize +@item Fast (even faster through compiling the code) +@item Safety +@item Support for multiple document types (markup, xml, html, html5, xhtml) +@item Output with doctype +@item Direct output to stream +@end itemize\n") + (license license:lgpl3+)))) + +(define-public cl-markup + (sbcl-package->cl-source-package sbcl-cl-markup)) + +(define-public ecl-cl-markup + (sbcl-package->ecl-package sbcl-cl-markup)) -- cgit v1.2.3 From 9eeef6abb2452725a4595279078ed530dc4c5679 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Nov 2018 12:40:32 +0100 Subject: gnu: Add cl-css. * gnu/packages/lisp.scm (cl-css, ecl-cl-css, sbcl-cl-css): 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 1d8b0f0cdd..b049fb485d 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -3530,3 +3530,33 @@ Lisp, featuring: (define-public ecl-cl-markup (sbcl-package->ecl-package sbcl-cl-markup)) + +(define-public sbcl-cl-css + (let ((commit "8fe654c8f0cf95b300718101cce4feb517f78e2f")) + (package + (name "sbcl-cl-css") + (version (git-version "0.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/inaimathi/cl-css/") + (commit commit))) + (file-name (git-file-name "cl-css" version)) + (sha256 + (base32 + "1lc42zi2sw11fl2589sc19nr5sd2p0wy7wgvgwaggxa5f3ajhsmd")))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/inaimathi/cl-css/") + (synopsis "Non-validating, inline CSS generator for Common Lisp") + (description + "This is a dead-simple, non validating, inline CSS generator for Common +Lisp. Its goals are axiomatic syntax, simple implementation to support +portability, and boilerplate reduction in CSS.") + (license license:expat)))) + +(define-public cl-css + (sbcl-package->cl-source-package sbcl-cl-css)) + +(define-public ecl-cl-markup + (sbcl-package->ecl-package sbcl-cl-css)) -- cgit v1.2.3 From 9fabcb6ce24a2fa497dedd35967507df0f1c6b58 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Nov 2018 13:30:35 +0100 Subject: gnu: Add portable-threads. * gnu/packages/lisp.scm (cl-portable-threads, ecl-portable-threads, sbcl-portable-threads): 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 b049fb485d..42ce0bbf67 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -3560,3 +3560,35 @@ portability, and boilerplate reduction in CSS.") (define-public ecl-cl-markup (sbcl-package->ecl-package sbcl-cl-css)) + +(define-public sbcl-portable-threads + (let ((commit "c0e61a1faeb0583c80fd3f20b16cc4c555226920")) + (package + (name "sbcl-portable-threads") + (version (git-version "2.3" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/binghe/portable-threads/") + (commit commit))) + (file-name (git-file-name "portable-threads" version)) + (sha256 + (base32 + "03fmxyarc0xf4kavwkfa0a2spkyfrz6hbgbi9y4q7ny5aykdyfaq")))) + (build-system asdf-build-system/sbcl) + (arguments + `(;; Tests seem broken. + #:tests? #f)) + (home-page "https://github.com/binghe/portable-threads") + (synopsis "Portable threads (and scheduled and periodic functions) API for Common Lisp") + (description + "Portable Threads (and Scheduled and Periodic Functions) API for Common +Lisp (from GBBopen project).") + (license license:asl2.0)))) + +(define-public cl-portable-threads + (sbcl-package->cl-source-package sbcl-portable-threads)) + +(define-public ecl-portable-threada + (sbcl-package->ecl-package sbcl-portable-threads)) -- cgit v1.2.3 From 75c95c7652916319f00ffdb563b17de373756bbd Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Nov 2018 13:31:54 +0100 Subject: gnu: Add sbcl-usocket-boot0. * gnu/packages/lisp.scm (sbcl-usocket-boot0): New variable. --- gnu/packages/lisp.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 42ce0bbf67..23438003c4 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -3592,3 +3592,34 @@ Lisp (from GBBopen project).") (define-public ecl-portable-threada (sbcl-package->ecl-package sbcl-portable-threads)) + +(define-public sbcl-usocket-boot0 + ;; usocket's test rely on usocket-server which depends on usocket itself. + ;; We break this cyclic dependency with -boot0 that packages usocket. + (let ((commit "86e7efbfe50101931edf4b67cdcfa7e221ecfde9")) + (package + (name "sbcl-usocket-boot0") + (version (git-version "0.7.1" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/usocket/usocket/") + (commit commit))) + (file-name (git-file-name "usocket" version)) + (sha256 + (base32 + "1lk6ipakrib7kdgzw44hrgmls9akp5pz4h35yynw0k5zwmmq6374")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("split-sequence" ,sbcl-split-sequence))) + (arguments + `(#:tests? #f + #:asd-system-name "usocket")) + (home-page "https://common-lisp.net/project/usocket/") + (synopsis "Universal socket library for Common Lisp (server side)") + (description + "This library strives to provide a portable TCP/IP and UDP/IP socket +interface for as many Common Lisp implementations as possible, while keeping +the abstraction and portability layer as thin as possible.") + (license license:expat)))) -- cgit v1.2.3 From be01e79caa2fdf5ff66adf31a1edf071d2f830ca Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Nov 2018 13:32:12 +0100 Subject: gnu: Add usocket-server. * gnu/packages/lisp.scm (cl-usocket-server, ecl-usocket-server, sbcl-usocket-server): New variables. --- gnu/packages/lisp.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 23438003c4..359f8376d5 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -3623,3 +3623,20 @@ Lisp (from GBBopen project).") interface for as many Common Lisp implementations as possible, while keeping the abstraction and portability layer as thin as possible.") (license license:expat)))) + +(define-public sbcl-usocket-server + (package + (inherit sbcl-usocket-boot0) + (name "sbcl-usocket-server") + (inputs + `(("usocket" ,sbcl-usocket-boot0) + ("portable-threads" ,sbcl-portable-threads))) + (arguments + '(#:asd-system-name "usocket-server")) + (synopsis "Universal socket library for Common Lisp (server side)"))) + +(define-public cl-usocket-server + (sbcl-package->cl-source-package sbcl-usocket-server)) + +(define-public ecl-socket-server + (sbcl-package->ecl-package sbcl-usocket-server)) -- cgit v1.2.3 From 79dc47c9c937ecf08680dace26cca029d7de4a2e Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Nov 2018 13:32:49 +0100 Subject: gnu: Add usocket. * gnu/packages/lisp.scm (cl-usocket, ecl-usocket, sbcl-usocket): New variables. --- gnu/packages/lisp.scm | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 359f8376d5..06d1e6fe46 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -3640,3 +3640,21 @@ the abstraction and portability layer as thin as possible.") (define-public ecl-socket-server (sbcl-package->ecl-package sbcl-usocket-server)) + +(define-public sbcl-usocket + (package + (inherit sbcl-usocket-boot0) + (name "sbcl-usocket") + (arguments + ;; FIXME: Tests need network access? + `(#:tests? #f)) + (native-inputs + ;; Testing only. + `(("usocket-server" ,sbcl-usocket-server) + ("rt" ,sbcl-rt))))) + +(define-public cl-usocket + (sbcl-package->cl-source-package sbcl-usocket)) + +(define-public ecl-socket + (sbcl-package->ecl-package sbcl-usocket)) -- cgit v1.2.3 From c931f8098c85fdaa44e4603f39acad86a609079c Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Nov 2018 13:47:54 +0100 Subject: gnu: Add s-xml. * gnu/packages/lisp.scm (cl-s-xml, ecl-s-xml, sbcl-s-xml): New variables. --- gnu/packages/lisp.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 06d1e6fe46..ceb2cfc472 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -3658,3 +3658,51 @@ the abstraction and portability layer as thin as possible.") (define-public ecl-socket (sbcl-package->ecl-package sbcl-usocket)) + +(define-public sbcl-s-xml + (package + (name "sbcl-s-xml") + (version "3") + (source + (origin + (method url-fetch) + (uri "https://common-lisp.net/project/s-xml/s-xml.tgz") + (sha256 + (base32 + "061qcr0dzshsa38s5ma4ay924cwak2nq9gy59dw6v9p0qb58nzjf")))) + (build-system asdf-build-system/sbcl) + (home-page "https://common-lisp.net/project/s-xml/") + (synopsis "Simple XML parser implemented in Common Lisp") + (description + "S-XML is a simple XML parser implemented in Common Lisp. This XML +parser implementation has the following features: + +@itemize +@item It works (handling many common XML usages). +@item It is very small (the core is about 700 lines of code, including +comments and whitespace). +@item It has a core API that is simple, efficient and pure functional, much +like that from SSAX (see also http://ssax.sourceforge.net). +@item It supports different DOM models: an XSML-based one, an LXML-based one +and a classic xml-element struct based one. +@item It is reasonably time and space efficient (internally avoiding garbage +generatation as much as possible). +@item It does support CDATA. +@item It should support the same character sets as your Common Lisp +implementation. +@item It does support XML name spaces. +@end itemize + +This XML parser implementation has the following limitations: + +@itemize +@item It does not support any special tags (like processing instructions). +@item It is not validating, even skips DTD's all together. +@end itemize\n") + (license license:lgpl3+))) + +(define-public cl-s-xml + (sbcl-package->cl-source-package sbcl-s-xml)) + +(define-public ecl-s-xml + (sbcl-package->ecl-package sbcl-s-xml)) -- cgit v1.2.3 From 8c5160dbd5d4f6b5f414a4d563355a11a6afce59 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Nov 2018 13:48:28 +0100 Subject: gnu: Add s-xml-rpc. * gnu/packages/lisp.scm (cl-s-xml-rpc, ecl-s-xml-rpc, sbcl-s-xml-rpc): New variables. --- gnu/packages/lisp.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index ceb2cfc472..87ba39b986 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -3706,3 +3706,30 @@ This XML parser implementation has the following limitations: (define-public ecl-s-xml (sbcl-package->ecl-package sbcl-s-xml)) + +(define-public sbcl-s-xml-rpc + (package + (name "sbcl-s-xml-rpc") + (version "7") + (source + (origin + (method url-fetch) + (uri "https://common-lisp.net/project/s-xml-rpc/s-xml-rpc.tgz") + (sha256 + (base32 + "02z7k163d51v0pzk8mn1xb6h5s6x64gjqkslhwm3a5x26k2gfs11")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("s-xml" ,sbcl-s-xml))) + (home-page "https://common-lisp.net/project/s-xml-rpc/") + (synopsis "Implementation of XML-RPC in Common Lisp for both client and server") + (description + "S-XML-RPC is an implementation of XML-RPC in Common Lisp for both +client and server.") + (license license:lgpl3+))) + +(define-public cl-s-xml-rpc + (sbcl-package->cl-source-package sbcl-s-xml-rpc)) + +(define-public ecl-s-xml-rpc + (sbcl-package->ecl-package sbcl-s-xml-rpc)) -- cgit v1.2.3 From 34843fe9238a041616f063038557d85cd8a30165 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Sun, 25 Nov 2018 14:41:16 +0100 Subject: gnu: uncrustify: Update to 0.68.1. * gnu/packages/code.scm (uncrustify): Update to 0.68.1. --- gnu/packages/code.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index 72503254e6..1e863b0df1 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -540,7 +540,7 @@ independent targets.") (define-public uncrustify (package (name "uncrustify") - (version "0.67") + (version "0.68.1") (source (origin (method url-fetch) (uri (string-append @@ -548,10 +548,11 @@ independent targets.") "uncrustify-" version ".zip")) (sha256 (base32 - "0n13kq0nsm35fxhdp0f275n4x0w88hdv3bdjy0hgvv42x0dx5zyp")))) + "1jb3hmm11m2mgnypapak2lgyyvspnmx9bxd9dxis5swaja2ddxlg")))) (build-system cmake-build-system) (native-inputs - `(("unzip" ,unzip))) + `(("unzip" ,unzip) + ("python" ,python-wrapper))) (arguments `(#:phases (modify-phases %standard-phases -- cgit v1.2.3 From 71cfb437d2997fb50bc6abbe2fdad65fcba6801b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 25 Nov 2018 18:08:50 +0200 Subject: gnu: mtools: Update to 4.0.21. * gnu/packages/mtools.scm (mtools): Update to 4.0.21. --- gnu/packages/mtools.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/mtools.scm b/gnu/packages/mtools.scm index 5e3c3dd378..32eb1dba47 100644 --- a/gnu/packages/mtools.scm +++ b/gnu/packages/mtools.scm @@ -28,7 +28,7 @@ (define-public mtools (package (name "mtools") - (version "4.0.20") + (version "4.0.21") (source (origin (method url-fetch) @@ -36,7 +36,7 @@ version ".tar.bz2")) (sha256 (base32 - "1vcahr9s6zv1hnrx2bgjnzcas2y951q90r1jvvv4q9v5kwfd6qb0")))) + "1kybydx74qgbwpnjvjn49msf8zipchl43d4cq8zzwcyvfkdzw7h2")))) (build-system gnu-build-system) (home-page "https://www.gnu.org/software/mtools/") (synopsis "Access MS-DOS disks without mounting") -- cgit v1.2.3 From 0a9d1c5ab713bf525972f651c3cb63570e8c083d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 25 Nov 2018 17:08:04 +0100 Subject: gnu: guix-daemon: Adjust 'install' phase to latest update. Fixes . Reported by Brett Gilio . This is a followup to commit 254602cdf884379231793c4d793b25c9ebd6c806. * gnu/packages/package-management.scm (guix-daemon)[arguments]: In 'install' phase, remove use of "install-nodist_pkglibexecSCRIPTS" target. --- gnu/packages/package-management.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index d277d81acb..141d0e52f7 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -345,8 +345,7 @@ the Nix package manager.") (replace 'install (lambda* (#:key outputs #:allow-other-keys) (invoke "make" "install-binPROGRAMS" - "install-nodist_pkglibexecSCRIPTS" - "install-nodist_libexecSCRIPTS") ;guix-authenticate + "install-nodist_pkglibexecSCRIPTS") ;; We need to tell 'guix-daemon' which 'guix' command to use. ;; Here we use a questionable hack where we hard-code root's -- cgit v1.2.3 From bc6062aef563726fdb1bb7199f2c5628ad967534 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 25 Nov 2018 17:56:51 +0100 Subject: gnu: dovecot: Update to 2.3.4. * gnu/packages/mail.scm (dovecot): Update to 2.3.4. --- 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 fa545da3b2..7fd36c5d7e 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -1202,7 +1202,7 @@ facilities for checking incoming mail.") (define-public dovecot (package (name "dovecot") - (version "2.3.2.1") + (version "2.3.4") (source (origin (method url-fetch) @@ -1210,7 +1210,7 @@ facilities for checking incoming mail.") (version-major+minor version) "/" name "-" version ".tar.gz")) (sha256 (base32 - "0d2ffbicgl3wswbnyjbw6qigz7r1aqzprpchbwp5cynw122i2raa")))) + "01ggzf7b3jpl89mjiqr7xbpbs181g2gjf6wzg70qaqfzz3ppc6yr")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From f6e55da06ab09a603de8e32c7383f89a41f5ffd6 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sun, 25 Nov 2018 17:01:22 +0100 Subject: gnu: Add bubblewrap. * gnu/packages/virtualization.scm (bubblewrap): New variable. --- gnu/packages/virtualization.scm | 56 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index e3b9925059..2f8e541d40 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Danny Milosavljevic ;;; Copyright © 2018 Sou Bunnbu +;;; Copyright © 2018 Julien Lepiller ;;; ;;; This file is part of GNU Guix. ;;; @@ -998,3 +999,58 @@ the image. @code{vagrant} command line executable, allowing programmatic control of Vagrant virtual machines.") (license license:expat))) + +(define-public bubblewrap + (package + (name "bubblewrap") + (version "0.3.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/projectatomic/bubblewrap/" + "releases/download/v" version "/bubblewrap-" + version ".tar.xz")) + (sha256 + (base32 + "1y2bdlxnlr84xcbf31lzirc292c5ak9bd2wvcvh4ppsliih6pjny")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-test + (lambda* (#:key outputs #:allow-other-keys) + ;; Tests try to access /var/tmp, which is not possible in our build + ;; environment. Let's give them another directory. + ;; /tmp gets overriden in some tests, so we need another directory. + ;; the only possibility is the output directory. + (let ((tmp-dir (string-append (assoc-ref outputs "out") "/tmp"))) + (mkdir-p tmp-dir) + (substitute* "tests/test-run.sh" + (("/var/tmp") tmp-dir) + ;; Tests create a temporary python script, so fix its shebang. + (("/usr/bin/env python") (which "python")) + ;; Some tests try to access /usr, but that doesn't exist. + ;; Give them /gnu instead. + (("/usr") "/gnu") + ((" */bin/bash") (which "bash")) + (("/bin/sh") (which "sh")) + (("findmnt") (which "findmnt")))) + #t)) + ;; Remove the directory we gave to tests to have a clean package. + (add-after 'check 'remove-tmp-dir + (lambda* (#:key outputs #:allow-other-keys) + (delete-file-recursively (string-append (assoc-ref outputs "out") "/tmp")) + #t))))) + (inputs + `(("libcap" ,libcap))) + (native-inputs + `(("python-2" ,python-2) + ("util-linux" ,util-linux))) + (home-page "https://github.com/projectatomic/bubblewrap") + (synopsis "Unprivileged sandboxing tool") + (description "Bubblewrap is aimed at running applications in a sandbox, +where it has restricted access to parts of the operating system or user data +such as the home directory. Bubblewrap always creates a new mount namespace, +and the user can specify exactly what parts of the filesystem should be visible +in the sandbox. Any such directories specified is mounted nodev by default, +and can be made readonly.") + (license license:lgpl2.0+))) -- cgit v1.2.3 From 7a1d25c400c6271363096669b6d969565bebfd70 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Sun, 25 Nov 2018 17:02:14 +0100 Subject: gnu: opam: Update to 2.0.1. gnu/packages/ocaml.scm (opam): Update to 2.0.1. [arguments]: Use invoke, return #t and use store paths for dependencies. [inputs]: Add bubblewrap. --- gnu/packages/ocaml.scm | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/gnu/packages/ocaml.scm b/gnu/packages/ocaml.scm index 8c6e1da7d1..9c0ab94f3e 100644 --- a/gnu/packages/ocaml.scm +++ b/gnu/packages/ocaml.scm @@ -59,6 +59,7 @@ #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) + #:use-module (gnu packages virtualization) #:use-module (gnu packages web-browsers) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) @@ -328,7 +329,7 @@ functional, imperative and object-oriented styles of programming.") (define-public opam (package (name "opam") - (version "2.0.0") + (version "2.0.1") (source (origin (method url-fetch) ;; Use the '-full' version, which includes all the dependencies. @@ -340,7 +341,7 @@ functional, imperative and object-oriented styles of programming.") ) (sha256 (base32 - "09gdpxiqmyr6z78l85d7pwhiwrycdi2xi1b2mafqr1sk9z5lzbcx")))) + "0z6r9qr4awcdn7wyrl5y5jm34jsjlnzd00py893f1hd0c6vg3xw1")))) (build-system gnu-build-system) (arguments '(;; Sometimes, 'make -jX' would fail right after ./configure with @@ -361,17 +362,29 @@ functional, imperative and object-oriented styles of programming.") #:phases (modify-phases %standard-phases (add-before 'build 'pre-build (lambda* (#:key inputs make-flags #:allow-other-keys) - (let ((bash (assoc-ref inputs "bash"))) + (let ((bash (assoc-ref inputs "bash")) + (bwrap (string-append (assoc-ref inputs "bubblewrap") + "/bin/bwrap"))) (substitute* "src/core/opamSystem.ml" (("\"/bin/sh\"") - (string-append "\"" bash "/bin/sh\""))) + (string-append "\"" bash "/bin/sh\"")) + (("getconf") + (which "getconf"))) + ;; Use bwrap from the store directly. + (substitute* "src/state/shellscripts/bwrap.sh" + (("-v bwrap") (string-append "-v " bwrap)) + (("exec bwrap") (string-append "exec " bwrap))) + (substitute* "src/client/opamInitDefaults.ml" + (("\"bwrap\"") (string-append "\"" bwrap "\""))) ;; Build dependencies - (zero? (apply system* "make" "lib-ext" make-flags))))) + (apply invoke "make" "lib-ext" make-flags) + #t))) (add-before 'check 'pre-check (lambda _ (setenv "HOME" (getcwd)) - (and (system "git config --global user.email guix@gnu.org") - (system "git config --global user.name Guix"))))))) + (invoke "git" "config" "--global" "user.email" "guix@gnu.org") + (invoke "git" "config" "--global" "user.name" "Guix") + #t))))) (native-inputs `(("git" ,git) ;for the tests ("python" ,python) ;for the tests @@ -379,7 +392,8 @@ functional, imperative and object-oriented styles of programming.") (inputs `(("ocaml" ,ocaml) ("ncurses" ,ncurses) - ("curl" ,curl))) + ("curl" ,curl) + ("bubblewrap" ,bubblewrap))) (home-page "http://opam.ocamlpro.com/") (synopsis "Package manager for OCaml") (description -- cgit v1.2.3 From e6c64d0a3f0f615d12518b4797ec0b8f174269f2 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Mon, 26 Nov 2018 09:43:09 +0100 Subject: gnu: wine-staging: Update to 3.21. * gnu/packages/wine.scm (wine-staging-patchset-data): Update to 3.21. * gnu/packages/wine.scm (wine-staging): Update to 3.21. --- gnu/packages/wine.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 85c71b5abb..26d5f497e3 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -225,7 +225,7 @@ integrate Windows applications into your desktop.") (define-public wine-staging-patchset-data (package (name "wine-staging-patchset-data") - (version "3.20") + (version "3.21") (source (origin (method git-fetch) @@ -235,7 +235,7 @@ integrate Windows applications into your desktop.") (file-name (git-file-name name version)) (sha256 (base32 - "049cwllf4aybrhj4l2i3vd5jvagjz4d448404zkyy0lfxr08id3p")))) + "1bxryvqw5rvhcx8vjl714jaj0rjsrh95kh3sn499rrljc3c8qsbl")))) (build-system trivial-build-system) (native-inputs `(("bash" ,bash) @@ -281,7 +281,7 @@ integrate Windows applications into your desktop.") (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "063garmflbna3mhph8k0dv0bkzq8x75x5xrd0j8y0mjh10i13mik")))) + "1h70wb7kysbzv36i3fblyiihvalwhy6sj4s2a8nf21nz2mhc0k58")))) (inputs `(("autoconf" ,autoconf) ; for autoreconf ("gtk+" ,gtk+) ("libva" ,libva) -- cgit v1.2.3 From c23cf1832aba44c03ba50a6f318b0415a4437d53 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Nov 2018 10:35:41 +0100 Subject: gnu: Add 'git-minimal'. * gnu/packages/version-control.scm (git-minimal): New variable. --- gnu/packages/version-control.scm | 64 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index ecd5789397..cec3e5fc6c 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -457,6 +457,70 @@ everything from small to very large projects with speed and efficiency.") (license license:gpl2) (home-page "https://git-scm.com/"))) +(define-public git-minimal + ;; The size of the closure of 'git-minimal' is two thirds that of 'git'. + ;; Its test suite runs slightly faster and most importantly it doesn't + ;; depend on packages that are expensive to build such as Subversion. + (package + (inherit git) + (name "git-minimal") + (arguments + (substitute-keyword-arguments (package-arguments git) + ((#:phases phases) + `(modify-phases ,phases + (replace 'patch-makefiles + (lambda _ + (substitute* "Makefile" + (("/usr/bin/perl") (which "perl"))) + #t)) + (delete 'build-subtree) + (delete 'split) + (delete 'install-man-pages) + (delete 'install-subtree) + (delete 'install-credential-netrc) + (add-before 'check 'delete-svn-test + (lambda _ + ;; This test cannot run since we are not building 'git-svn'. + (delete-file "t/t9020-remote-svn.sh") + #t)) + (add-after 'install 'remove-unusable-perl-commands + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (libexec (string-append out "/libexec"))) + (for-each (lambda (file) + (delete-file (string-append libexec + "/git-core/" file))) + '("git-svn" "git-cvsimport" "git-archimport" + "git-cvsserver" "git-request-pull" + "git-add--interactive" "git-cvsexportcommit" + "git-instaweb" "git-send-email")) + (delete-file (string-append bin "/git-cvsserver")) + + ;; These templates typically depend on Perl. Remove them. + (delete-file-recursively + (string-append out "/share/git-core/templates/hooks")) + + ;; Gitweb depends on Perl as well. + (delete-file-recursively + (string-append out "/share/gitweb")) + #t))))) + ((#:configure-flags flags) + ''()) + ((#:disallowed-references lst '()) + `(,perl ,@lst)))) + (outputs '("out")) + (native-inputs + `(("native-perl" ,perl) + ("gettext" ,gettext-minimal))) + (inputs + `(("curl" ,curl) ;for HTTP(S) access + ("expat" ,expat) ;for 'git push' over HTTP(S) + ("openssl" ,openssl) + ("perl" ,perl) + ("zlib" ,zlib) + ("bash-for-tests" ,bash))))) + (define-public libgit2 (package (name "libgit2") -- cgit v1.2.3 From 3b5829bbcb7ea3a76a4d2393f0b2cbfb6d1a5e37 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Nov 2018 11:06:21 +0100 Subject: git-download: Use 'git-minimal' instead of 'git'. * guix/git-download.scm (git-package): Refer to 'git-minimal'. --- guix/git-download.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/git-download.scm b/guix/git-download.scm index fa94fad8f8..072ab51538 100644 --- a/guix/git-download.scm +++ b/guix/git-download.scm @@ -60,7 +60,7 @@ (define (git-package) "Return the default Git package." (let ((distro (resolve-interface '(gnu packages version-control)))) - (module-ref distro 'git))) + (module-ref distro 'git-minimal))) (define* (git-fetch ref hash-algo hash #:optional name -- cgit v1.2.3 From de2bfe902936e3f7abfd4b55ad1149f75c5818b3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 19 Nov 2018 15:40:21 +0100 Subject: Add (guix swh). * guix/swh.scm: New file. * Makefile.am (MODULES): Add it. --- Makefile.am | 1 + guix/swh.scm | 551 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 552 insertions(+) create mode 100644 guix/swh.scm diff --git a/Makefile.am b/Makefile.am index 69e66fad75..c5676b0b94 100644 --- a/Makefile.am +++ b/Makefile.am @@ -75,6 +75,7 @@ MODULES = \ guix/discovery.scm \ guix/git-download.scm \ guix/hg-download.scm \ + guix/swh.scm \ guix/monads.scm \ guix/monad-repl.scm \ guix/gexp.scm \ diff --git a/guix/swh.scm b/guix/swh.scm new file mode 100644 index 0000000000..c188e17c69 --- /dev/null +++ b/guix/swh.scm @@ -0,0 +1,551 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 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 swh) + #:use-module (guix base16) + #:use-module (guix build utils) + #:use-module ((guix build syscalls) #:select (mkdtemp!)) + #:use-module (web client) + #:use-module (web response) + #:use-module (json) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-9) + #:use-module (srfi srfi-11) + #:use-module (srfi srfi-19) + #:use-module (ice-9 match) + #:use-module (ice-9 regex) + #:use-module (ice-9 popen) + #:use-module ((ice-9 ftw) #:select (scandir)) + #:export (origin? + origin-id + origin-type + origin-url + origin-visits + lookup-origin + + visit? + visit-date + visit-origin + visit-url + visit-snapshot-url + visit-status + visit-number + visit-snapshot + + branch? + branch-name + branch-target + + release? + release-id + release-name + release-message + release-target + + revision? + revision-id + revision-date + revision-directory + lookup-revision + lookup-origin-revision + + content? + content-checksums + content-data-url + content-length + lookup-content + + directory-entry? + directory-entry-name + directory-entry-type + directory-entry-checksums + directory-entry-length + directory-entry-permissions + lookup-directory + directory-entry-target + + vault-reply? + vault-reply-id + vault-reply-fetch-url + vault-reply-object-id + vault-reply-object-type + vault-reply-progress-message + vault-reply-status + query-vault + request-cooking + vault-fetch + + swh-download)) + +;;; Commentary: +;;; +;;; This module provides bindings to the HTTP interface of Software Heritage. +;;; It allows you to browse the archive, look up revisions (such as SHA1 +;;; commit IDs), "origins" (code hosting URLs), content (files), etc. See +;;; for more information. +;;; +;;; The high-level 'swh-download' procedure allows you to download a Git +;;; revision from Software Heritage, provided it is available. +;;; +;;; Code: + +(define %swh-base-url + ;; Presumably we won't need to change it. + "https://archive.softwareheritage.org") + +(define (swh-url path . rest) + (define url + (string-append %swh-base-url path + (string-join rest "/" 'prefix))) + + ;; Ensure there's a trailing slash or we get a redirect. + (if (string-suffix? "/" url) + url + (string-append url "/"))) + +(define-syntax-rule (define-json-reader json->record ctor spec ...) + "Define JSON->RECORD as a procedure that converts a JSON representation, +read from a port, string, or hash table, into a record created by CTOR and +following SPEC, a series of field specifications." + (define (json->record input) + (let ((table (cond ((port? input) + (json->scm input)) + ((string? input) + (json-string->scm input)) + ((hash-table? input) + input)))) + (let-syntax ((extract-field (syntax-rules () + ((_ table (field key json->value)) + (json->value (hash-ref table key))) + ((_ table (field key)) + (hash-ref table key)) + ((_ table (field)) + (hash-ref table + (symbol->string 'field)))))) + (ctor (extract-field table spec) ...))))) + +(define-syntax-rule (define-json-mapping rtd ctor pred json->record + (field getter spec ...) ...) + "Define RTD as a record type with the given FIELDs and GETTERs, à la SRFI-9, +and define JSON->RECORD as a conversion from JSON to a record of this type." + (begin + (define-record-type rtd + (ctor field ...) + pred + (field getter) ...) + + (define-json-reader json->record ctor + (field spec ...) ...))) + +(define %date-regexp + ;; Match strings like "2014-11-17T22:09:38+01:00" or + ;; "2018-09-30T23:20:07.815449+00:00"". + (make-regexp "^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})((\\.[0-9]+)?)([+-][0-9]{2}):([0-9]{2})$")) + +(define (string->date* str) + "Return a SRFI-19 date parsed from STR, a date string as returned by +Software Heritage." + ;; We can't use 'string->date' because of the timezone format: SWH returns + ;; "+01:00" when the '~z' template expects "+0100". So we roll our own! + (or (and=> (regexp-exec %date-regexp str) + (lambda (match) + (define (ref n) + (string->number (match:substring match n))) + + (make-date (let ((ns (match:substring match 8))) + (if ns + (string->number (string-drop ns 1)) + 0)) + (ref 6) (ref 5) (ref 4) + (ref 3) (ref 2) (ref 1) + (+ (* 3600 (ref 9)) ;time zone + (if (< (ref 9) 0) + (- (ref 10)) + (ref 10)))))) + str)) ;oops! + +(define* (call url decode #:optional (method http-get) + #:key (false-if-404? #t)) + "Invoke the endpoint at URL using METHOD. Decode the resulting JSON body +using DECODE, a one-argument procedure that takes an input port. When +FALSE-IF-404? is true, return #f upon 404 responses." + (let*-values (((response port) + (method url #:streaming? #t))) + ;; See . + (match (assq-ref (response-headers response) 'x-ratelimit-remaining) + (#f #t) + ((? (compose zero? string->number)) + (throw 'swh-error url response)) + (_ #t)) + + (cond ((= 200 (response-code response)) + (let ((result (decode port))) + (close-port port) + result)) + ((and false-if-404? + (= 404 (response-code response))) + (close-port port) + #f) + (else + (close-port port) + (throw 'swh-error url response))))) + +(define-syntax define-query + (syntax-rules (path) + "Define a procedure that performs a Software Heritage query." + ((_ (name args ...) docstring (path components ...) + json->value) + (define (name args ...) + docstring + (call (swh-url components ...) json->value))))) + +;; +(define-json-mapping make-origin origin? + json->origin + (id origin-id) + (visits-url origin-visits-url "origin_visits_url") + (type origin-type) + (url origin-url)) + +;; +(define-json-mapping make-visit visit? + json->visit + (date visit-date "date" string->date*) + (origin visit-origin) + (url visit-url "origin_visit_url") + (snapshot-url visit-snapshot-url "snapshot_url") + (status visit-status) + (number visit-number "visit")) + +;; +(define-json-mapping make-snapshot snapshot? + json->snapshot + (branches snapshot-branches "branches" json->branches)) + +;; This is used for the "branches" field of snapshots. +(define-record-type + (make-branch name target-type target-url) + branch? + (name branch-name) + (target-type branch-target-type) ;release | revision + (target-url branch-target-url)) + +(define (json->branches branches) + (hash-map->list (lambda (key value) + (make-branch key + (string->symbol + (hash-ref value "target_type")) + (hash-ref value "target_url"))) + branches)) + +;; +(define-json-mapping make-release release? + json->release + (id release-id) + (name release-name) + (message release-message) + (target-type release-target-type "target_type" string->symbol) + (target-url release-target-url "target_url")) + +;; +(define-json-mapping make-revision revision? + json->revision + (id revision-id) + (date revision-date "date" string->date*) + (directory revision-directory) + (directory-url revision-directory-url "directory_url")) + +;; +(define-json-mapping make-content content? + json->content + (checksums content-checksums "checksums" json->checksums) + (data-url content-data-url "data_url") + (file-type-url content-file-type-url "filetype_url") + (language-url content-language-url "language_url") + (length content-length) + (license-url content-license-url "license_url")) + +(define (json->checksums checksums) + (hash-map->list (lambda (key value) + (cons key (base16-string->bytevector value))) + checksums)) + +;; +(define-json-mapping make-directory-entry directory-entry? + json->directory-entry + (name directory-entry-name) + (type directory-entry-type "type" + (match-lambda + ("dir" 'directory) + (str (string->symbol str)))) + (checksums directory-entry-checksums "checksums" + (match-lambda + (#f #f) + (lst (json->checksums lst)))) + (id directory-entry-id "dir_id") + (length directory-entry-length) + (permissions directory-entry-permissions "perms") + (target-url directory-entry-target-url "target_url")) + +;; +(define-json-mapping make-save-reply save-reply? + json->save-reply + (origin-url save-reply-origin-url "origin_url") + (origin-type save-reply-origin-type "origin_type") + (request-date save-reply-request-date "save_request_date" + string->date*) + (request-status save-reply-request-status "save_request_status" + string->symbol) + (task-status save-reply-task-status "save_task_status" + (match-lambda + ("not created" 'not-created) + ((? string? str) (string->symbol str))))) + +;; +(define-json-mapping make-vault-reply vault-reply? + json->vault-reply + (id vault-reply-id) + (fetch-url vault-reply-fetch-url "fetch_url") + (object-id vault-reply-object-id "obj_id") + (object-type vault-reply-object-type "obj_type" string->symbol) + (progress-message vault-reply-progress-message "progress_message") + (status vault-reply-status "status" string->symbol)) + + +;;; +;;; RPCs. +;;; + +(define-query (lookup-origin url) + "Return an origin for URL." + (path "/api/1/origin/git/url" url) + json->origin) + +(define-query (lookup-content hash type) + "Return a content for HASH, of the given TYPE--e.g., \"sha256\"." + (path "/api/1/content" + (string-append type ":" + (bytevector->base16-string hash))) + json->content) + +(define-query (lookup-revision id) + "Return the revision with the given ID, typically a Git commit SHA1." + (path "/api/1/revision" id) + json->revision) + +(define-query (lookup-directory id) + "Return the directory with the given ID." + (path "/api/1/directory" id) + json->directory-entries) + +(define (json->directory-entries port) + (map json->directory-entry (json->scm port))) + +(define (origin-visits origin) + "Return the list of visits of ORIGIN, a record as returned by +'lookup-origin'." + (call (swh-url (origin-visits-url origin)) + (lambda (port) + (map json->visit (json->scm port))))) + +(define (visit-snapshot visit) + "Return the snapshot corresponding to VISIT." + (call (swh-url (visit-snapshot-url visit)) + json->snapshot)) + +(define (branch-target branch) + "Return the target of BRANCH, either a or a ." + (match (branch-target-type branch) + ('release + (call (swh-url (branch-target-url branch)) + json->release)) + ('revision + (call (swh-url (branch-target-url branch)) + json->revision)))) + +(define (lookup-origin-revision url tag) + "Return a corresponding to the given TAG for the repository +coming from URL. Example: + + (lookup-origin-release \"https://github.com/guix-mirror/guix/\" \"v0.8\") + => #< id: \"44941…\" …> + +The information is based on the latest visit of URL available. Return #f if +URL could not be found." + (match (lookup-origin url) + (#f #f) + (origin + (match (origin-visits origin) + ((visit . _) + (let ((snapshot (visit-snapshot visit))) + (match (and=> (find (lambda (branch) + (string=? (string-append "refs/tags/" tag) + (branch-name branch))) + (snapshot-branches snapshot)) + branch-target) + ((? release? release) + (release-target release)) + ((? revision? revision) + revision) + (#f ;tag not found + #f)))) + (() + #f))))) + +(define (release-target release) + "Return the revision that is the target of RELEASE." + (match (release-target-type release) + ('revision + (call (swh-url (release-target-url release)) + json->revision)))) + +(define (directory-entry-target entry) + "If ENTRY, a directory entry, has type 'directory, return its list of +directory entries; if it has type 'file, return its object." + (call (swh-url (directory-entry-target-url entry)) + (match (directory-entry-type entry) + ('file json->content) + ('directory json->directory-entries)))) + +(define* (save-origin url #:optional (type "git")) + "Request URL to be saved." + (call (swh-url "/api/1/origin/save" type "url" url) json->save-reply + http-post)) + +(define-query (save-origin-status url type) + "Return the status of a /save request for URL and TYPE (e.g., \"git\")." + (path "/api/1/origin/save" type "url" url) + json->save-reply) + +(define-query (query-vault id kind) + "Ask the availability of object ID and KIND to the vault, where KIND is +'directory or 'revision. Return #f if it could not be found, or a + on success." + ;; + ;; There's a single format supported for directories and revisions and for + ;; now, the "/format" bit of the URL *must* be omitted. + (path "/api/1/vault" (symbol->string kind) id) + json->vault-reply) + +(define (request-cooking id kind) + "Request the cooking of object ID and KIND (one of 'directory or 'revision) +to the vault. Return a ." + (call (swh-url "/api/1/vault" (symbol->string kind) id) + json->vault-reply + http-post)) + +(define* (vault-fetch id kind + #:key (log-port (current-error-port))) + "Return an input port from which a bundle of the object with the given ID +and KIND (one of 'directory or 'revision) can be retrieved, or #f if the +object could not be found. + +For a directory, the returned stream is a gzip-compressed tarball. For a +revision, it is a gzip-compressed stream for 'git fast-import'." + (let loop ((reply (query-vault id kind))) + (match reply + (#f + (and=> (request-cooking id kind) loop)) + (_ + (match (vault-reply-status reply) + ('done + ;; Fetch the bundle. + (let-values (((response port) + (http-get (swh-url (vault-reply-fetch-url reply)) + #:streaming? #t))) + (if (= (response-code response) 200) + port + (begin ;shouldn't happen + (close-port port) + #f)))) + ('failed + ;; Upon failure, we're supposed to try again. + (format log-port "SWH vault: failure: ~a~%" + (vault-reply-progress-message reply)) + (format log-port "SWH vault: retrying...~%") + (loop (request-cooking id kind))) + ((and (or 'new 'pending) status) + ;; Wait until the bundle shows up. + (let ((message (vault-reply-progress-message reply))) + (when (eq? 'new status) + (format log-port "SWH vault: \ +requested bundle cooking, waiting for completion...~%")) + (when (string? message) + (format log-port "SWH vault: ~a~%" message)) + + ;; Wait long enough so we don't exhaust our maximum number of + ;; requests per hour too fast (as of this writing, the limit is 60 + ;; requests per hour per IP address.) + (sleep (if (eq? status 'new) 60 30)) + + (loop (query-vault id kind))))))))) + + +;;; +;;; High-level interface. +;;; + +(define (commit-id? reference) + "Return true if REFERENCE is likely a commit ID, false otherwise---e.g., if +it is a tag name." + (and (= (string-length reference) 40) + (string-every char-set:hex-digit reference))) + +(define (call-with-temporary-directory proc) ;FIXME: factorize + "Call PROC with a name of a temporary directory; close the directory and +delete it when leaving the dynamic extent of this call." + (let* ((directory (or (getenv "TMPDIR") "/tmp")) + (template (string-append directory "/guix-directory.XXXXXX")) + (tmp-dir (mkdtemp! template))) + (dynamic-wind + (const #t) + (lambda () + (proc tmp-dir)) + (lambda () + (false-if-exception (delete-file-recursively tmp-dir)))))) + +(define (swh-download url reference output) + "Download from Software Heritage a checkout of the Git tag or commit +REFERENCE originating from URL, and unpack it in OUTPUT. Return #t on success +and #f on failure. + +This procedure uses the \"vault\", which contains \"cooked\" directories in +the form of tarballs. If the requested directory is not cooked yet, it will +wait until it becomes available, which could take several minutes." + (match (if (commit-id? reference) + (lookup-revision reference) + (lookup-origin-revision url reference)) + ((? revision? revision) + (call-with-temporary-directory + (lambda (directory) + (let ((input (vault-fetch (revision-directory revision) 'directory)) + (tar (open-pipe* OPEN_WRITE "tar" "-C" directory "-xzvf" "-"))) + (dump-port input tar) + (close-port input) + (let ((status (close-pipe tar))) + (unless (zero? status) + (error "tar extraction failure" status))) + + (match (scandir directory) + (("." ".." sub-directory) + (copy-recursively (string-append directory "/" sub-directory) + output + #:log (%make-void-port "w")) + #t)))))) + (#f + #f))) -- cgit v1.2.3 From 608d3dca89d73fe7260e97a284a8aeea756a3e11 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 19 Nov 2018 15:46:50 +0100 Subject: git-download: Download from Software Heritage as a last resort. * guix/git-download.scm (git-fetch)[inputs]: Add gzip and tar when 'git-reference-recursive?' is false. [guile-json, gnutls]: New variables. [modules]: Add (guix swh). [build]: Wrap in 'with-extensions'. Add call to 'swh-download'. --- guix/git-download.scm | 68 ++++++++++++++++++++++++++++++++++----------------- 1 file changed, 46 insertions(+), 22 deletions(-) diff --git a/guix/git-download.scm b/guix/git-download.scm index 072ab51538..6cf267d6c8 100644 --- a/guix/git-download.scm +++ b/guix/git-download.scm @@ -74,11 +74,22 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f." ;; available so that 'git submodule' works. (if (git-reference-recursive? ref) (standard-packages) - '())) + + ;; The 'swh-download' procedure requires tar and gzip. + `(("gzip" ,(module-ref (resolve-interface '(gnu packages compression)) + 'gzip)) + ("tar" ,(module-ref (resolve-interface '(gnu packages base)) + 'tar))))) (define zlib (module-ref (resolve-interface '(gnu packages compression)) 'zlib)) + (define guile-json + (module-ref (resolve-interface '(gnu packages guile)) 'guile-json)) + + (define gnutls + (module-ref (resolve-interface '(gnu packages tls)) 'gnutls)) + (define config.scm (scheme-file "config.scm" #~(begin @@ -93,30 +104,43 @@ HASH-ALGO (a symbol). Use NAME as the file name, or a generic name if #f." (delete '(guix config) (source-module-closure '((guix build git) (guix build utils) - (guix build download-nar)))))) + (guix build download-nar) + (guix swh)))))) (define build (with-imported-modules modules - #~(begin - (use-modules (guix build git) - (guix build utils) - (guix build download-nar) - (ice-9 match)) - - ;; The 'git submodule' commands expects Coreutils, sed, - ;; grep, etc. to be in $PATH. - (set-path-environment-variable "PATH" '("bin") - (match '#+inputs - (((names dirs outputs ...) ...) - dirs))) - - (or (git-fetch (getenv "git url") (getenv "git commit") - #$output - #:recursive? (call-with-input-string - (getenv "git recursive?") - read) - #:git-command (string-append #+git "/bin/git")) - (download-nar #$output))))) + (with-extensions (list guile-json gnutls) ;for (guix swh) + #~(begin + (use-modules (guix build git) + (guix build utils) + (guix build download-nar) + (guix swh) + (ice-9 match)) + + (define recursive? + (call-with-input-string (getenv "git recursive?") read)) + + ;; The 'git submodule' commands expects Coreutils, sed, + ;; grep, etc. to be in $PATH. + (set-path-environment-variable "PATH" '("bin") + (match '#+inputs + (((names dirs outputs ...) ...) + dirs))) + + (setvbuf (current-output-port) 'line) + (setvbuf (current-error-port) 'line) + + (or (git-fetch (getenv "git url") (getenv "git commit") + #$output + #:recursive? recursive? + #:git-command (string-append #+git "/bin/git")) + (download-nar #$output) + + ;; As a last resort, attempt to download from Software Heritage. + ;; XXX: Currently recursive checkouts are not supported. + (and (not recursive?) + (swh-download (getenv "git url") (getenv "git commit") + #$output))))))) (mlet %store-monad ((guile (package->derivation guile system))) (gexp->derivation (or name "git-checkout") build -- cgit v1.2.3 From 0c17f72070cbfb04f311b776a080849b369aac25 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 24 Nov 2018 16:07:30 +0100 Subject: services: openssh: Install OpenSSH in the system profile. This ensures one can scp to or from the GuixSD machine that uses the service. * gnu/services/ssh.scm (openssh-service-type)[extensions]: Add PROFILE-SERVICE-TYPE extension. * gnu/system/examples/bare-bones.tmpl : Remove OPENSSH. * doc/guix.texi (Using the Configuration System): Adjust accordingly. --- doc/guix.texi | 6 +++--- gnu/services/ssh.scm | 10 +++++++++- gnu/system/examples/bare-bones.tmpl | 4 ++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index a2af1e9cbd..917a3e9d57 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -9727,9 +9727,9 @@ environment variable---in addition to the per-user profiles provides all the tools one would expect for basic user and administrator tasks---including the GNU Core Utilities, the GNU Networking Utilities, the GNU Zile lightweight text editor, @command{find}, @command{grep}, -etc. The example above adds GNU@tie{}Screen and OpenSSH to those, -taken from the @code{(gnu packages screen)} and @code{(gnu packages ssh)} -modules (@pxref{Package Modules}). The +etc. The example above adds GNU@tie{}Screen to those, +taken from the @code{(gnu packages screen)} +module (@pxref{Package Modules}). The @code{(list package output)} syntax can be used to add a specific output of a package: diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index 056602248f..bb94c5f41a 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -518,7 +518,15 @@ of user-name/file-like tuples." (service-extension activation-service-type openssh-activation) (service-extension account-service-type - (const %openssh-accounts)))) + (const %openssh-accounts)) + + ;; Install OpenSSH in the system profile. That way, + ;; 'scp' is found when someone tries to copy to or from + ;; this machine. + (service-extension profile-service-type + (lambda (config) + (list (openssh-configuration-openssh + config)))))) (compose concatenate) (extend extend-openssh-authorized-keys) (default-value (openssh-configuration)))) diff --git a/gnu/system/examples/bare-bones.tmpl b/gnu/system/examples/bare-bones.tmpl index 889dcabe64..902dacbe57 100644 --- a/gnu/system/examples/bare-bones.tmpl +++ b/gnu/system/examples/bare-bones.tmpl @@ -3,7 +3,7 @@ (use-modules (gnu)) (use-service-modules networking ssh) -(use-package-modules screen ssh) +(use-package-modules screen) (operating-system (host-name "komputilo") @@ -40,7 +40,7 @@ %base-user-accounts)) ;; Globally-installed packages. - (packages (cons* screen openssh %base-packages)) + (packages (cons screen %base-packages)) ;; Add services to the baseline: a DHCP client and ;; an SSH server. -- cgit v1.2.3 From 4bd610f09e4f2080c4b5989240d4dc614165e477 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 26 Nov 2018 12:21:54 +0200 Subject: gnu: efl: Build with 'release' profile. * gnu/packages/enlightenment.scm (efl)[arguments]: Add 'configure-flag to build the 'release' profile. --- gnu/packages/enlightenment.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 1a0ebba304..4427dd033b 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -139,6 +139,7 @@ (arguments `(#:configure-flags '("--disable-silent-rules" "--disable-systemd" + "--with-profile=release" "--enable-liblz4" "--enable-xinput22" "--enable-image-loader-webp" -- cgit v1.2.3 From 3b160bdccfd541660b9df7337979d88c3ce9bb25 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 26 Nov 2018 12:23:05 +0200 Subject: gnu: efl: Build with full opengl support except on armhf-linux. * gnu/packages/enlightenment.scm (efl)[arguments]: Add 'configure-flags to use full opengl on all architectures except for armhf-linux, which will continue to use opengl-es. --- gnu/packages/enlightenment.scm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 4427dd033b..fb77642f5f 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -58,7 +58,8 @@ #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages xdisorg) - #:use-module (gnu packages xorg)) + #:use-module (gnu packages xorg) + #:use-module (ice-9 match)) (define-public efl (package @@ -144,8 +145,11 @@ "--enable-xinput22" "--enable-image-loader-webp" "--enable-multisense" - "--with-opengl=es" - "--enable-egl" + ,@(match (%current-system) + ("armhf-linux" + '("--with-opengl=es" "--with-egl")) + (_ + '("--with-opengl=full"))) "--enable-harfbuzz" ;; for wayland "--enable-wayland" -- cgit v1.2.3 From 3133d678a8e13aee1c432272e6fd82bc57f6e95e Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Thu, 22 Nov 2018 03:06:51 +0300 Subject: repl: Do not exit repl on SIGINT. * guix/scripts/repl.scm (guix-repl): Do not exit repl on SIGINT. --- guix/scripts/repl.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/guix/scripts/repl.scm b/guix/scripts/repl.scm index b157833a49..1a105f51ee 100644 --- a/guix/scripts/repl.scm +++ b/guix/scripts/repl.scm @@ -188,7 +188,10 @@ call THUNK." (save-module-excursion (lambda () (set-current-module user-module) - (start-repl)))) + ;; Do not exit repl on SIGINT. + ((@@ (ice-9 top-repl) call-with-sigint) + (lambda () + (start-repl)))))) ((machine) (machine-repl)) (else -- cgit v1.2.3 From 7628ff1fc04e2a338660e9c40c094e914e0f4b62 Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen Date: Mon, 12 Nov 2018 22:27:41 +0100 Subject: gnu: emacs-clang-format: Inherit from clang. * gnu/packages/emacs.scm (emacs-clang-format): Remove. * gnu/packages/llvm.scm (emacs-clang-format): Add. --- gnu/packages/emacs.scm | 37 ------------------------------------- gnu/packages/llvm.scm | 27 +++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 37 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 9112902548..e69121aef7 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -12533,43 +12533,6 @@ correctly.") @end itemize\n") (license license:gpl3+)))) -(define-public emacs-clang-format - (let ((commit "5556c31528af2661bed3011bd63ffc0ed44e18a0")) - (package - (name "emacs-clang-format") - (version (git-version "0.0.0" "1" commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/emacsorphanage/clang-format") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0ynvnp3vrcpngmwakb23xv4xn7jbkg43s196q7pg9nkl13x4n2nq")))) - (build-system emacs-build-system) - (inputs - `(("clang" ,clang))) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'configure - (lambda* (#:key inputs #:allow-other-keys) - (let ((clang (assoc-ref inputs "clang"))) - ;; Repo is read-only. - (chmod "clang-format.el" #o644) - (emacs-substitute-variables "clang-format.el" - ("clang-format-executable" - (string-append clang "/bin/clang-format")))) - #t))))) - (home-page "https://github.com/emacsorphanage/clang-format") - (synopsis "Format code using clang-format") - (description "This package allows to filter code through clang-format to -fix its formatting. @command{clang-format} is a tool that formats C/C++/Obj-C -code according to a set of style options, see -@url{http://clang.llvm.org/docs/ClangFormatStyleOptions.html}.") - (license license:gpl3+)))) - (define-public emacs-gtk-look (package (name "emacs-gtk-look") diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index d237a05a84..6a452f48c6 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -7,6 +7,8 @@ ;;; Copyright © 2017 Roel Janssen ;;; Copyright © 2018 Marius Bakke ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Tim Gesthuizen +;;; Copyright © 2018 Pierre Neidhardt ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,6 +32,7 @@ #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system emacs) #:use-module (guix build-system python) #:use-module (gnu packages) #:use-module (gnu packages gcc) @@ -433,3 +436,27 @@ code analysis tools.") (description "This package provides a Python binding to LLVM for use in Numba.") (license license:bsd-3))) + +(define-public emacs-clang-format + (package + (inherit clang) + (name "emacs-clang-format") + (build-system emacs-build-system) + (inputs + `(("clang" ,clang))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs #:allow-other-keys) + (let ((clang (assoc-ref inputs "clang"))) + (copy-file "tools/clang-format/clang-format.el" "clang-format.el") + (emacs-substitute-variables "clang-format.el" + ("clang-format-executable" + (string-append clang "/bin/clang-format")))) + #t))))) + (synopsis "Format code using clang-format") + (description "This package allows to filter code through @code{clang-format} +to fix its formatting. @code{clang-format} is a tool that formats +C/C++/Obj-C code according to a set of style options, see +@url{http://clang.llvm.org/docs/ClangFormatStyleOptions.html}."))) -- cgit v1.2.3 From 51002b723dbd24805f5071c895b0c9cd6c7bf395 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Mon, 26 Nov 2018 12:42:39 +0100 Subject: gnu: Add emacs-clang-rename. * gnu/packages/llvm.scm (emacs-clang-rename): New variable. --- gnu/packages/llvm.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 6a452f48c6..276a89c2a0 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -460,3 +460,25 @@ code analysis tools.") to fix its formatting. @code{clang-format} is a tool that formats C/C++/Obj-C code according to a set of style options, see @url{http://clang.llvm.org/docs/ClangFormatStyleOptions.html}."))) + +(define-public emacs-clang-rename + (package + (inherit clang) + (name "emacs-clang-rename") + (build-system emacs-build-system) + (inputs + `(("clang" ,clang))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'configure + (lambda* (#:key inputs #:allow-other-keys) + (let ((clang (assoc-ref inputs "clang"))) + (copy-file "tools/clang-rename/clang-rename.el" "clang-rename.el") + (emacs-substitute-variables "clang-rename.el" + ("clang-rename-binary" + (string-append clang "/bin/clang-rename")))) + #t))))) + (synopsis "Rename every occurrence of a symbol using clang-rename") + (description "This package renames every occurrence of a symbol at point +using @code{clang-rename}."))) -- cgit v1.2.3 From 1c7372a5aadea84165376a4b8e2664b67a663c56 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Mon, 26 Nov 2018 14:51:40 +0100 Subject: gnu: clang-from-llvm: Clean up share/clang folder. * gnu/packages/llvm.scm (clang-from-llvm): Remove useless files, install completion. --- gnu/packages/llvm.scm | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 276a89c2a0..0b12f736a9 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -235,7 +235,26 @@ compiler. In LLVM this library is called \"compiler-rt\".") (substitute* "lib/Driver/ToolChains.cpp" (("@GLIBC_LIBDIR@") (string-append libc "/lib"))))) - #t)))))) + #t))) + (add-after 'install 'install-clean-up-/share/clang + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (compl-dir (string-append + out "/etc/bash_completion.d"))) + (with-directory-excursion (string-append out + "/share/clang") + ;; Delete extensions for proprietary text editors. + (delete-file "clang-format-bbedit.applescript") + (delete-file "clang-format-sublime.py") + ;; Delete Emacs extensions: see their respective Emacs + ;; Guix package instead. + (delete-file "clang-rename.el") + (delete-file "clang-format.el") + ;; Install bash completion. + (mkdir-p compl-dir) + (rename-file "bash-autocomplete.sh" + (string-append compl-dir "/clang")))) + #t))))) ;; Clang supports the same environment variables as GCC. (native-search-paths -- cgit v1.2.3 From 176f1436c7af95eff6c8e63a0d0ba6922927a9da Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 21 Nov 2018 14:38:06 +0100 Subject: gnu: python-seaborn: Update to 0.9.0. * gnu/packages/python.scm (python-seaborn): Update to 0.9.0. [arguments]: Enable tests. [propagated-inputs]: Add python-numpy. [native-inputs]: Add python-pytest and xorg-server. [properties]: Remove. (python2-seaborn)[propagated-inputs]: Remove python2-pytz. --- gnu/packages/python.scm | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 868fa70e19..54f9495e36 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -5387,20 +5387,34 @@ SVG, EPS, PNG and terminal output.") (define-public python-seaborn (package (name "python-seaborn") - (version "0.7.1") + (version "0.9.0") (source (origin (method url-fetch) (uri (pypi-uri "seaborn" version)) (sha256 - (base32 "0pawrqc3mxpwd5g9pvi9gba02637bh5c8ldpp8izfwpfn52469zs")))) + (base32 "0bqysi3fxfjl1866m5jq8z7mynhqbqnikim74dmzn8539iwkzj3n")))) (build-system python-build-system) (arguments - '(#:tests? #f)) ; Tests requires a running X11 server. + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'start-xserver + (lambda* (#:key inputs #:allow-other-keys) + (let ((xorg-server (assoc-ref inputs "xorg-server"))) + ;; There must be a running X server and make check doesn't + ;; start one. Therefore we must do it. + (system (format #f "~a/bin/Xvfb :1 &" xorg-server)) + (setenv "DISPLAY" ":1") + #t))) + (replace 'check (lambda _ (invoke "pytest" "seaborn") #t))))) (propagated-inputs `(("python-pandas" ,python-pandas) ("python-matplotlib" ,python-matplotlib) + ("python-numpy" ,python-numpy) ("python-scipy" ,python-scipy))) + (native-inputs + `(("python-pytest" ,python-pytest) + ("xorg-server" ,xorg-server))) (home-page "http://stanford.edu/~mwaskom/software/seaborn/") (synopsis "Statistical data visualization") (description @@ -5408,15 +5422,10 @@ SVG, EPS, PNG and terminal output.") graphics in Python. It is built on top of matplotlib and tightly integrated with the PyData stack, including support for numpy and pandas data structures and statistical routines from scipy and statsmodels.") - (license license:bsd-3) - (properties `((python2-variant . ,(delay python2-seaborn)))))) + (license license:bsd-3))) (define-public python2-seaborn - (let ((base (package-with-python2 (strip-python2-variant python-seaborn)))) - (package - (inherit base) - (propagated-inputs `(("python2-pytz" ,python2-pytz) - ,@(package-propagated-inputs base)))))) + (package-with-python2 python-seaborn)) (define-public python-mpmath (package -- cgit v1.2.3 From 152859388613f3ae65793f763f72868147b2a6be Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Mon, 26 Nov 2018 19:02:46 -0500 Subject: gnu: Mutt: Update to 1.11.0. * gnu/packages/mail.scm (mutt): Update to 1.11.0. --- 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 7fd36c5d7e..bc544cc503 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -257,14 +257,14 @@ aliasing facilities to work just as they would on normal mail.") (define-public mutt (package (name "mutt") - (version "1.10.1") + (version "1.11.0") (source (origin (method url-fetch) (uri (string-append "https://bitbucket.org/mutt/mutt/downloads/" "mutt-" version ".tar.gz")) (sha256 (base32 - "182lkbkpd3q3l1x6bvyds90ycp38gyyxhf35ry0d3hwf2n1khjkk")) + "1qqhkhlzvjj0iih8vm0wfagv4fzqqy1wnsb4sqsfv7w06ccjdjcj")) (patches (search-patches "mutt-store-references.patch")))) (build-system gnu-build-system) (inputs -- cgit v1.2.3 From 0995a5692cb85418b2d5f21c24d46ee4aa9fb7c9 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Sun, 25 Nov 2018 22:30:35 -0600 Subject: qtwebkit: Fix pri install directory. * gnu/packages/qt.scm (qtwebkit)[arguments]: Add "ECM_MKSPECS_INSTALL_DIR" to #:configure-flags. --- gnu/packages/qt.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index d487699827..d8860e79a4 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Nicolas Goaziou ;;; Copyright © 2018 Hartmut Goebel +;;; Copyright © 2018 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -2171,7 +2172,10 @@ different kinds of sliders, and much more.") #:configure-flags (list ;"-DENABLE_API_TESTS=TRUE" "-DPORT=Qt" "-DUSE_LIBHYPHEN=OFF" - "-DUSE_SYSTEM_MALLOC=ON"))) + "-DUSE_SYSTEM_MALLOC=ON" + ;; XXX: relative dir installs to build dir? + (string-append "-DECM_MKSPECS_INSTALL_DIR=" + %output "/lib/qt5/mkspecs/modules")))) (home-page "https://www.webkit.org") (synopsis "Web browser engine and classes to render and interact with web content") -- cgit v1.2.3 From ebdb15bc3540b1901f223bc0689bae51a2f88fc4 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Sun, 25 Nov 2018 22:31:29 -0600 Subject: qtwebkit: Reduce RAM requirements for linking. * gnu/packages/qt.scm (qtwebkit)[arguments]: Link shared libraries and executables with "--no-keep-memory". --- gnu/packages/qt.scm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm index d8860e79a4..36f8aef694 100644 --- a/gnu/packages/qt.scm +++ b/gnu/packages/qt.scm @@ -2175,7 +2175,12 @@ different kinds of sliders, and much more.") "-DUSE_SYSTEM_MALLOC=ON" ;; XXX: relative dir installs to build dir? (string-append "-DECM_MKSPECS_INSTALL_DIR=" - %output "/lib/qt5/mkspecs/modules")))) + %output "/lib/qt5/mkspecs/modules") + ;; Sacrifice a little speed in order to link + ;; libraries and test executables in a + ;; reasonable amount of memory. + "-DCMAKE_SHARED_LINKER_FLAGS=-Wl,--no-keep-memory" + "-DCMAKE_EXE_LINKER_FLAGS=-Wl,--no-keep-memory"))) (home-page "https://www.webkit.org") (synopsis "Web browser engine and classes to render and interact with web content") -- cgit v1.2.3 From ef8517f29d7412f78e6481b3df56fd81041e3e3a Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Mon, 19 Jun 2017 22:55:39 -0500 Subject: gnu: Add libopenshot-audio. * gnu/packages/audio.scm (libopenshot-audio): New variable. --- gnu/packages/audio.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 45d20ca46a..b58d574fcc 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2018 Brett Gilio ;;; Copyright © 2018 Marius Bakke ;;; Copyright © 2018 Thorsten Wilms +;;; Copyright © 2018 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -3623,3 +3624,38 @@ library supports sample rates up to 96 kHz and up to eight channels (7.1 surround).") (license (license:fsf-free "https://github.com/mstorsjo/fdk-aac/blob/master/NOTICE" "https://www.gnu.org/licenses/license-list.html#fdk"))))) + +(define-public libopenshot-audio + (package + (name "libopenshot-audio") + (version "0.1.7") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OpenShot/libopenshot-audio") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "08a8wbi28kwrdz4h0rs1b9vsr28ldfi8g75q54rj676y1vwg3qys")))) + (build-system cmake-build-system) + (inputs + `(("alsa-lib" ,alsa-lib) + ;; The following are for JUCE GUI components: + ("libx11" ,libx11) + ("freetype" ,freetype) + ("libxrandr" ,libxrandr) + ("libxinerama" ,libxinerama) + ("libxcursor" ,libxcursor))) + (arguments + `(#:tests? #f ;there are no tests + #:configure-flags + (list (string-append "-DCMAKE_CXX_FLAGS=-I" + (assoc-ref %build-inputs "freetype") + "/include/freetype2")))) + (home-page "https://openshot.org") + (synopsis "Audio editing and playback for OpenShot") + (description "OpenShot Audio Library (libopenshot-audio) allows +high-quality editing and playback of audio, and is based on the JUCE +library.") + (license license:lgpl3+))) -- cgit v1.2.3 From 579a9cdec7673d9007ef924bb345f42527aa0a72 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Wed, 28 Jun 2017 22:05:24 -0500 Subject: gnu: Add libopenshot. * gnu/packages/video.scm (libopenshot): New variable. * gnu/packages/patches/libopenshot-tests-with-system-libs.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + .../libopenshot-tests-with-system-libs.patch | 95 ++++++++++++++++++++++ gnu/packages/video.scm | 65 ++++++++++++++- 3 files changed, 160 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/libopenshot-tests-with-system-libs.patch diff --git a/gnu/local.mk b/gnu/local.mk index 3350e5abac..0cd9fad2e5 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -890,6 +890,7 @@ dist_patch_DATA = \ %D%/packages/patches/libffi-3.2.1-complex-alpha.patch \ %D%/packages/patches/libjxr-fix-function-signature.patch \ %D%/packages/patches/libjxr-fix-typos.patch \ + %D%/packages/patches/libopenshot-tests-with-system-libs.patch \ %D%/packages/patches/libotr-test-auth-fix.patch \ %D%/packages/patches/libmad-armv7-thumb-pt1.patch \ %D%/packages/patches/libmad-armv7-thumb-pt2.patch \ diff --git a/gnu/packages/patches/libopenshot-tests-with-system-libs.patch b/gnu/packages/patches/libopenshot-tests-with-system-libs.patch new file mode 100644 index 0000000000..a18c4b8bba --- /dev/null +++ b/gnu/packages/patches/libopenshot-tests-with-system-libs.patch @@ -0,0 +1,95 @@ +Combination of two patches that fix libopenshot tests when built with +system-provided ffmpeg and jsoncpp. See + + https://github.com/OpenShot/libopenshot/pull/163 + +From 0d7691ab53433e1583f6a66ea96683b0f7af8a57 Mon Sep 17 00:00:00 2001 +From: "FeRD (Frank Dana)" +Date: Mon, 17 Sep 2018 14:04:40 -0400 +Subject: [PATCH] tests/CMakeFiles: Use FFMpeg like src/ + +--- + tests/CMakeLists.txt | 32 +++++++++++++++++++++++++++++++- + 1 file changed, 31 insertions(+), 1 deletion(-) + +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt +index 2c45550..4df8464 100644 +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -79,7 +79,37 @@ ENDIF (ImageMagick_FOUND) + FIND_PACKAGE(FFmpeg REQUIRED) + + # Include FFmpeg headers (needed for compile) +-include_directories(${FFMPEG_INCLUDE_DIR}) ++message('AVCODEC_FOUND: ${AVCODEC_FOUND}') ++message('AVCODEC_INCLUDE_DIRS: ${AVCODEC_INCLUDE_DIRS}') ++message('AVCODEC_LIBRARIES: ${AVCODEC_LIBRARIES}') ++ ++IF (AVCODEC_FOUND) ++ include_directories(${AVCODEC_INCLUDE_DIRS}) ++ENDIF (AVCODEC_FOUND) ++IF (AVDEVICE_FOUND) ++ include_directories(${AVDEVICE_INCLUDE_DIRS}) ++ENDIF (AVDEVICE_FOUND) ++IF (AVFORMAT_FOUND) ++ include_directories(${AVFORMAT_INCLUDE_DIRS}) ++ENDIF (AVFORMAT_FOUND) ++IF (AVFILTER_FOUND) ++ include_directories(${AVFILTER_INCLUDE_DIRS}) ++ENDIF (AVFILTER_FOUND) ++IF (AVUTIL_FOUND) ++ include_directories(${AVUTIL_INCLUDE_DIRS}) ++ENDIF (AVUTIL_FOUND) ++IF (POSTPROC_FOUND) ++ include_directories(${POSTPROC_INCLUDE_DIRS}) ++ENDIF (POSTPROC_FOUND) ++IF (SWSCALE_FOUND) ++ include_directories(${SWSCALE_INCLUDE_DIRS}) ++ENDIF (SWSCALE_FOUND) ++IF (SWRESAMPLE_FOUND) ++ include_directories(${SWRESAMPLE_INCLUDE_DIRS}) ++ENDIF (SWRESAMPLE_FOUND) ++IF (AVRESAMPLE_FOUND) ++ include_directories(${AVRESAMPLE_INCLUDE_DIRS}) ++ENDIF (AVRESAMPLE_FOUND) + + ################# LIBOPENSHOT-AUDIO ################### + # Find JUCE-based openshot Audio libraries + + +From e9e85cdfd036587adb86341f7f81619dc69f102c Mon Sep 17 00:00:00 2001 +From: "FeRD (Frank Dana)" +Date: Mon, 17 Sep 2018 19:23:25 -0400 +Subject: [PATCH] Use system jsoncpp in tests, too + +The tests/ build needs to use the same jsoncpp as the src/ build, +or tests in Clip_Tests.cpp can fail. +--- + tests/CMakeLists.txt | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt +index 4df8464..a1a0356 100644 +--- a/tests/CMakeLists.txt ++++ b/tests/CMakeLists.txt +@@ -180,12 +180,18 @@ endif(OPENMP_FOUND) + # Find ZeroMQ library (used for socket communication & logging) + FIND_PACKAGE(ZMQ REQUIRED) + +-# Include FFmpeg headers (needed for compile) ++# Include ZeroMQ headers (needed for compile) + include_directories(${ZMQ_INCLUDE_DIRS}) + + ################### JSONCPP ##################### + # Include jsoncpp headers (needed for JSON parsing) +-include_directories("../thirdparty/jsoncpp/include") ++if (USE_SYSTEM_JSONCPP) ++ find_package(JsonCpp REQUIRED) ++ include_directories(${JSONCPP_INCLUDE_DIRS}) ++else() ++ message("Using embedded JsonCpp") ++ include_directories("../thirdparty/jsoncpp/include") ++endif(USE_SYSTEM_JSONCPP) + + IF (NOT DISABLE_TESTS) + ############### SET TEST SOURCE FILES ################# diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index e9a49df787..bc8e625d72 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2016 Dmitry Nikolaev ;;; Copyright © 2016 Andy Patterson ;;; Copyright © 2016, 2017 Nils Gillmann -;;; Copyright © 2016 Eric Bavier +;;; Copyright © 2016, 2018 Eric Bavier ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2017 Feng Shu ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice @@ -112,6 +112,7 @@ #:use-module (gnu packages man) #:use-module (gnu packages mp3) #:use-module (gnu packages ncurses) + #:use-module (gnu packages networking) #:use-module (gnu packages ocr) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) @@ -128,6 +129,7 @@ #:use-module (gnu packages serialization) #:use-module (gnu packages shells) #:use-module (gnu packages ssh) + #:use-module (gnu packages swig) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) @@ -3077,3 +3079,64 @@ as surfing, skiing, riding and walking while shooting videos are especially prone to erratic camera shakes. Vidstab targets these video contents to help create smoother and stable videos.") (license license:gpl2+))) + +(define-public libopenshot + (package + (name "libopenshot") + (version "0.2.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OpenShot/libopenshot") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1x4kv05pdq1pglb6y056aa7llc6iyibyhzg93k7zwj0q08cp5ixd")) + (modules '((guix build utils))) + (snippet '(begin + ;; Allow overriding of the python installation dir + (substitute* "src/bindings/python/CMakeLists.txt" + (("(SET\\(PYTHON_MODULE_PATH.*)\\)" _ set) + (string-append set " CACHE PATH " + "\"Python bindings directory\")"))) + #t)) + (patches (search-patches "libopenshot-tests-with-system-libs.patch")))) + (build-system cmake-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("python" ,python) + ("swig" ,swig) + ("unittest++" ,unittest-cpp))) + (propagated-inputs ;all referenced in installed headers + `(("cppzmq" ,cppzmq) + ("ffmpeg" ,ffmpeg) + ("imagemagick" ,imagemagick) + ("jsoncpp" ,jsoncpp) + ("libopenshot-audio" ,libopenshot-audio) + ("qt" ,qt) ;widgets, core, gui, multimedia, and multimediawidgets + ("zeromq" ,zeromq))) + (arguments + `(#:configure-flags + (list (string-append "-DPYTHON_MODULE_PATH:PATH=" %output "/lib/python" + ,(version-major+minor (package-version python)) + "/site-packages") + "-DUSE_SYSTEM_JSONCPP:BOOL=ON") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'set-vars + (lambda* (#:key inputs #:allow-other-keys) + (setenv "LIBOPENSHOT_AUDIO_DIR" + (assoc-ref inputs "libopenshot-audio")) + (setenv "ZMQDIR" + (assoc-ref inputs "zeromq")) + (setenv "UNITTEST_DIR" + (string-append (assoc-ref inputs "unittest++") + "/include/UnitTest++")) + #t))))) + (home-page "https://openshot.org") + (synopsis "Video-editing, animation, and playback library") + (description "OpenShot Library (libopenshot) is a powerful C++ video +editing library with a multi-threaded and feature rich video editing +API. It includes bindings for Python, Ruby, and other languages.") + (license license:lgpl3+))) -- cgit v1.2.3 From 69a3fcc086f0582d82f3b2d19ad94e12c67070fa Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Wed, 28 Jun 2017 22:05:53 -0500 Subject: gnu: Add OpenShot. * gnu/packages/video.scm (openshot-qt): New variable. --- gnu/packages/video.scm | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index bc8e625d72..bf1f6d36fa 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -3140,3 +3140,49 @@ create smoother and stable videos.") editing library with a multi-threaded and feature rich video editing API. It includes bindings for Python, Ruby, and other languages.") (license license:lgpl3+))) + +(define-public openshot + (package + (name "openshot") + (version "2.4.3") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OpenShot/openshot-qt") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1qdw1mli4y9qhrnllnkaf6ydgw5vfvdb90chs4i679k0x0jyb9a2")))) + (build-system python-build-system) + (inputs + `(("ffmpeg" ,ffmpeg) + ("libopenshot" ,libopenshot) + ("python" ,python) + ("python-pyqt" ,python-pyqt) + ("python-pyzmq" ,python-pyzmq) + ("python-requests" ,python-requests) + ("qtsvg" ,qtsvg))) + (arguments + `(#:tests? #f ;no tests + #:phases (modify-phases %standard-phases + (delete 'build) ;install phase does all the work + (add-before 'install 'set-tmp-home + (lambda _ + ;; src/classes/info.py "needs" to create several + ;; directories in $HOME when loaded during build + (setenv "HOME" "/tmp") + #t)) + (add-after 'install 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (wrap-program (string-append (assoc-ref outputs "out") + "/bin/openshot-qt") + `("QT_PLUGIN_PATH" prefix + ,(list (string-append (assoc-ref inputs "qtsvg") + "/lib/qt5/plugins/"))))))))) + (home-page "https://openshot.org") + (synopsis "Video editor") + (description "OpenShot takes your videos, photos, and music files and +helps you create the film you have always dreamed of. Easily add sub-titles, +transitions, and effects and then export your film to many common formats.") + (license license:gpl3+))) -- cgit v1.2.3 From 7cad66d9a7e2c83584b40c7c3bf10812d4af9ed5 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 26 Nov 2018 23:20:28 +0100 Subject: gnu: emacs-ivy-yasnippet: Update to 0.1-2.32580b4. * gnu/packages/emacs.scm (emacs-ivy-yasnippet): Update to 0.1-2.32580b4. --- gnu/packages/emacs.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index e69121aef7..02a04c82d7 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -3848,10 +3848,11 @@ expression.") (license license:gpl3+))) (define-public emacs-ivy-yasnippet - (let ((commit "59b32cf8cfb63df906822a17f6f5e8545dac38d4")) + (let ((commit "32580b4fd23ebf9ca7dde96704f7d53df6e253cd") + (revision "2")) (package (name "emacs-ivy-yasnippet") - (version (git-version "0.1" "1" commit)) + (version (git-version "0.1" revision commit)) (source (origin (method git-fetch) @@ -3861,7 +3862,7 @@ expression.") (file-name (git-file-name name version)) (sha256 (base32 - "0hghdlxkfwrglvc1nql2ikgp6jj0qdbfwc3yvpb19mrf26hwgp13")))) + "1wfg6mmd5gl1qgvayyzpxlkh9s7jgn20y8l1vh1zbj1czvv51xp8")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-ivy" ,emacs-ivy) -- cgit v1.2.3 From 7af36275f06169e1603a4bc59be4e8027c69b1d7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 27 Nov 2018 09:29:09 +0100 Subject: gnu: emacs-go-mode: Fetch sources from git. * gnu/packages/emacs.scm (emacs-go-mode)[source]: Fetch via git. [arguments]: Add phase "make-writable". --- gnu/packages/emacs.scm | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 02a04c82d7..246bf1bd4d 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1474,14 +1474,22 @@ current match, total matches and exit status. (name "emacs-go-mode") (version "1.5.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/dominikh/go-mode.el/" - "archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/dominikh/go-mode.el.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1adngbjyb8qnwg7n6r2y31djw9j6qf3b9fi63zd85035q7x4ljnm")))) + "1nd2h50yb0493wvf1h7fzplq45rmqn2w7kxpgnlxzhkvq99v8vzf")))) (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'make-writable + (lambda _ + (for-each make-file-writable (find-files "." "\\.el$")) + #t))))) (home-page "https://github.com/dominikh/go-mode.el") (synopsis "Go mode for Emacs") (description -- cgit v1.2.3 From bc84fc4717581eacce5784fb579929c5fb9a7bbb Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 27 Nov 2018 09:35:00 +0100 Subject: gnu: emacs-slack: Update to 0.0.2-5.99a5750. * gnu/packages/emacs.scm (emacs-slack): Update to 0.0.2-5.99a5750. [propagated-inputs]: Add emacs-helm. --- gnu/packages/emacs.scm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 246bf1bd4d..5093c7e975 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -7791,24 +7791,25 @@ through them using @key{C-c C-SPC}.") (license license:gpl3+))) (define-public emacs-slack - (let ((commit "d90395482d26175ce38fd935e978c428be8af9a0") - (revision "4")) + (let ((commit "99a57501629a0329a9ca090c1ea1296462eda02d") + (revision "5")) (package (name "emacs-slack") - (version (string-append "0-" revision "." (string-take commit 7))) + (version (git-version "0.0.2" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/yuya373/emacs-slack.git") (commit commit))) - (file-name (string-append name "-" version "-checkout")) + (file-name (git-file-name name commit)) (sha256 (base32 - "14f6wjcbl09cfd3yngr6m1k1d4nr764im666mbnqbk9nmqf50nib")))) + "0jw1diypfw8pmzkq0napgxmfc0gqka7zcccgnw359604lr30k2z2")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-alert" ,emacs-alert) ("emacs-emojify" ,emacs-emojify) + ("emacs-helm" ,emacs-helm) ("emacs-request" ,emacs-request) ("emacs-websocket" ,emacs-websocket) ("emacs-oauth2" ,emacs-oauth2) -- cgit v1.2.3 From 56dc27d62f65d18a434b97c891171ff0872e4ba1 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 27 Nov 2018 09:39:42 +0100 Subject: gnu: emacs-polymode: Update to 0.1.5. * gnu/packages/emacs.scm (emacs-polymode): Update to 0.1.5. --- gnu/packages/emacs.scm | 55 ++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 5093c7e975..fcabbe9143 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -7924,39 +7924,36 @@ contexts. (license license:gpl3+))) (define-public emacs-polymode - ;; There hasn't been a proper release. - (let ((commit "0340f5e7e55235832e59673f027cc79a23cbdcd6") - (revision "1")) - (package - (name "emacs-polymode") - (version (string-append "1.0-" revision "." (string-take commit 7))) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/vspinu/polymode.git") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "057cybkq3cy07n5s332k071sjiky3mziy003lza4rh75mgqkwhmh")))) - (build-system emacs-build-system) - (arguments - `(#:include (cons* "^modes/.*\\.el$" %default-include) - #:phases - (modify-phases %standard-phases - (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path - (lambda _ - (setenv "EMACSLOADPATH" - (string-append (getenv "EMACSLOADPATH") - ":" (getcwd) "/modes" ":"))))))) - (home-page "https://github.com/vspinu/polymode") - (synopsis "Framework for multiple Emacs modes based on indirect buffers") - (description "Polymode is an Emacs package that offers generic support + (package + (name "emacs-polymode") + (version "0.1.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vspinu/polymode.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0wwphs54jx48a3ca6x1qaz56j3j9bg4mv8g2akkffrzbdcb8sbc7")))) + (build-system emacs-build-system) + (arguments + `(#:include (cons* "^modes/.*\\.el$" %default-include) + #:phases + (modify-phases %standard-phases + (add-after 'set-emacs-load-path 'add-modes-subdir-to-load-path + (lambda _ + (setenv "EMACSLOADPATH" + (string-append (getenv "EMACSLOADPATH") + ":" (getcwd) "/modes" ":"))))))) + (home-page "https://github.com/vspinu/polymode") + (synopsis "Framework for multiple Emacs modes based on indirect buffers") + (description "Polymode is an Emacs package that offers generic support for multiple major modes inside a single Emacs buffer. It is lightweight, object oriented and highly extensible. Creating a new polymode typically takes only a few lines of code. Polymode also provides extensible facilities for external literate programming tools for exporting, weaving and tangling.") - (license license:gpl3+)))) + (license license:gpl3+))) (define-public eless (package -- cgit v1.2.3 From df4c8434d49dba3fd9b96b97b7019cf456c7e548 Mon Sep 17 00:00:00 2001 From: Björn Höfling Date: Tue, 27 Nov 2018 07:41:12 +0100 Subject: gnu: randomjungle: Update homepage and sourc. * gnu/packages/machine-learning.scm (randomjungle)[source]: Update URL. [homepage]: Update URL. --- gnu/packages/machine-learning.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm index 09c525ff20..a7df9dce06 100644 --- a/gnu/packages/machine-learning.scm +++ b/gnu/packages/machine-learning.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2018 Ben Woodcroft ;;; Copyright © 2018 Fis Trivial ;;; Copyright © 2018 Julien Lepiller +;;; Copyright © 2018 Björn Höfling ;;; ;;; This file is part of GNU Guix. ;;; @@ -331,8 +332,8 @@ algorithm.") (origin (method url-fetch) (uri (string-append - "http://www.imbs-luebeck.de/imbs/sites/default/files/u59/" - "randomjungle-" version ".tar_.gz")) + "https://www.imbs.uni-luebeck.de/fileadmin/files/Software" + "/randomjungle/randomjungle-" version ".tar_.gz")) (sha256 (base32 "12c8rf30cla71swx2mf4ww9mfd8jbdw5lnxd7dxhyw1ygrvg6y4w")))) @@ -359,7 +360,7 @@ algorithm.") ;; Non-portable assembly instructions are used so building fails on ;; platforms other than x86_64 or i686. (supported-systems '("x86_64-linux" "i686-linux")) - (home-page "http://www.imbs-luebeck.de/imbs/de/node/227/") + (home-page "https://www.imbs.uni-luebeck.de/forschung/software/details.html#c224") (synopsis "Implementation of the Random Forests machine learning method") (description "Random Jungle is an implementation of Random Forests. It is supposed to -- cgit v1.2.3 From 88e1e9cd3b5f8db6073d19e03115f93e1bbc52c6 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 27 Nov 2018 10:11:01 +0100 Subject: gnu: guile-simple-zmq: Update to 68bedb6. * gnu/packages/guile.scm (guile-simple-zmq): Update to 68bedb6. --- gnu/packages/guile.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index f95641ab13..837f76f050 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -2096,8 +2096,8 @@ convenient nested tree operations.") (license license:gpl3+))) (define-public guile-simple-zmq - (let ((commit "5bb66a0499f94006cfd18b58e80ad6623f911c31") - (revision "2")) + (let ((commit "68bedb6679716214fb9d3472da57544526f7a618") + (revision "3")) (package (name "guile-simple-zmq") (version (git-version "0.0.0" revision commit)) @@ -2109,7 +2109,7 @@ convenient nested tree operations.") (commit commit))) (sha256 (base32 - "0dj1brjqa7m4k71sf94aq26ca0la3nr894kfmjnqkpawqfp4dyaz")) + "1ad3xg69qqviy1f6dnlw0ysmfdbmp1jq65rfqb8nfd8dsrq2syli")) (file-name (git-file-name name version)))) (build-system guile-build-system) (arguments -- cgit v1.2.3 From ee6b3bb60d145690a35a8069cf8168d072f04730 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 27 Nov 2018 10:11:52 +0100 Subject: swh: Export 'save-origin' and related bindings. * guix/swh.scm: Export bindings related to 'save-origin'. --- guix/swh.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/guix/swh.scm b/guix/swh.scm index c188e17c69..89cddb2bdd 100644 --- a/guix/swh.scm +++ b/guix/swh.scm @@ -79,6 +79,15 @@ lookup-directory directory-entry-target + save-reply? + save-reply-origin-url + save-reply-origin-type + save-reply-request-date + save-reply-request-status + save-reply-task-status + save-origin + save-origin-status + vault-reply? vault-reply-id vault-reply-fetch-url -- cgit v1.2.3 From 312edcd0a1e9d3c679bb65456a958673d72fe4c3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 27 Nov 2018 12:03:10 +0100 Subject: gnu: python-kivy-next, python2-kivy-next: Deprecate. As discussed at . * gnu/packages/python.scm (python-kivy-next, python2-kivy-next): Mark as deprecated. --- gnu/packages/python.scm | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 54f9495e36..3168e0f89d 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -9969,25 +9969,10 @@ hardware-accelerated multitouch applications.") (package-with-python2 python-kivy)) (define-public python-kivy-next - (let ((commit "a988c5e7a47da56263ff39514264a3de516ef2fe") - (revision "1")) - (package (inherit python-kivy) - (name "python-kivy-next") - (version (string-append "1.9.1-" revision "." - (string-take commit 7))) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/kivy/kivy") - (commit commit))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "0jk92b4a8l7blkvkgkjihk171s0dfnq582cckff5srwc8kal5m0p"))))))) + (deprecated-package "python-kivy-next" python-kivy)) (define-public python2-kivy-next - (package-with-python2 python-kivy-next)) + (deprecated-package "python2-kivy-next" python2-kivy)) (define-public python-binaryornot (package -- cgit v1.2.3 From f0c817a7f401812abdbbe373b684d31bf38b509d Mon Sep 17 00:00:00 2001 From: Timo Eisenmann Date: Mon, 26 Nov 2018 22:29:14 +0100 Subject: gnu: Add vimb. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/web-browsers.scm (vimb): New variable. Co-authored-by: Ludovic Courtès --- gnu/packages/web-browsers.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index 2c2767dbbc..f63f269ae0 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2017 Eric Bavier ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Rutger Helling +;;; Copyright © 2018 Timo Eisenmann ;;; ;;; This file is part of GNU Guix. ;;; @@ -48,6 +49,7 @@ #:use-module (gnu packages webkit) #:use-module (gnu packages xorg) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix build-system gnu) #:use-module (guix build-system glib-or-gtk) #:use-module (guix build-system python)) @@ -320,3 +322,40 @@ access.") (description "qutebrowser is a keyboard-focused browser with a minimal GUI. It is based on PyQt5 and QtWebKit.") (license license:gpl3+))) + +(define-public vimb + (package + (name "vimb") + (version "3.3.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fanglingsu/vimb/") + (commit version))) + (sha256 + (base32 + "1qg18z2gnsli9qgrqfhqfrsi6g9mcgr90w8yab28nxrq4aha6brf")) + (file-name (git-file-name name version)))) + (build-system glib-or-gtk-build-system) + (arguments + '(#:tests? #f ; no tests + #:make-flags (list "CC=gcc" + "DESTDIR=" + (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure)))) + (inputs + `(("glib-networking" ,glib-networking) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("webkitgtk" ,webkitgtk))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (home-page "https://fanglingsu.github.io/vimb/") + (synopsis "Fast and lightweight Vim-like web browser") + (description "Vimb is a fast and lightweight vim like web browser based on +the webkit web browser engine and the GTK toolkit. Vimb is modal like the great +vim editor and also easily configurable during runtime. Vimb is mostly keyboard +driven and does not detract you from your daily work.") + (license license:gpl3+))) -- cgit v1.2.3 From 5df8f0689d4c79264d04b5f0107a463e0b7ea7a5 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Tue, 27 Nov 2018 20:10:41 +0530 Subject: gnu: rss-bridge: Update to 2018-11-10. * gnu/packages/web.scm (rss-bridge): Update to 2018-11-10. --- gnu/packages/web.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index eeaaa85702..6b6a1cf9fa 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -15,7 +15,7 @@ ;;; Copyright © 2016 Ben Woodcroft ;;; Copyright © 2016 Clément Lassieur ;;; Copyright © 2016, 2017 Nils Gillmann -;;; Copyright © 2016, 2017 Arun Isaac +;;; Copyright © 2016, 2017, 2018 Arun Isaac ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2016 Bake Timmons ;;; Copyright © 2017 Thomas Danckaert @@ -5757,7 +5757,7 @@ named elements: the @code{status}, the @code{headers}, and the @code{body}.") (define-public rss-bridge (package (name "rss-bridge") - (version "2018-03-11") + (version "2018-11-10") (source (origin (method url-fetch) @@ -5766,7 +5766,7 @@ named elements: the @code{status}, the @code{headers}, and the @code{body}.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1ix15ck45yb659k63mhwxwia6qnm9nn8jw0bga85abrvk1rchjdn")))) + "1l9a82smh6k37bjvzbmkdlssxywlmr40ig4cykgsns1iiszwv4ia")))) (build-system trivial-build-system) (native-inputs `(("gzip" ,gzip) -- cgit v1.2.3 From 01262f1ece37d5ae9af56c1de6c4eefc758f35ba Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Wed, 21 Nov 2018 17:21:22 +0300 Subject: describe: Delete 'directory' argument from 'display-checkout-info'. This commit follows 1255400faabfcf0ca1666d17f2f34ea0d49f6b1f. * guix/scripts/describe.scm (display-checkout-info): Delete 'directory' argument. --- guix/scripts/describe.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guix/scripts/describe.scm b/guix/scripts/describe.scm index 98be4ee89f..f21311af09 100644 --- a/guix/scripts/describe.scm +++ b/guix/scripts/describe.scm @@ -103,11 +103,11 @@ Display information about the channels currently in use.\n")) (format port "url: ~a~%" (channel-url channel)) (format port "commit: ~a~%" (channel-commit channel))) -(define* (display-checkout-info fmt #:optional directory) +(define (display-checkout-info fmt) "Display information about the current checkout according to FMT, a symbol denoting the requested format. Exit if the current directory does not lie within a Git checkout." - (let* ((program (or directory (car (command-line)))) + (let* ((program (car (command-line))) (directory (catch 'git-error (lambda () (repository-discover (dirname program))) -- cgit v1.2.3 From db08ea40873ae20507bc40d34a56dea1b8ce8f0e Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 6 Nov 2018 11:50:48 +0200 Subject: pack: List the available formats. * guix/scripts/pack.scm (show-formats): New variable. (%options, show-help): Add 'list-formats' option. --- guix/scripts/pack.scm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index ce46f549cc..98b06971bd 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2017, 2018 Ricardo Wurmus ;;; Copyright © 2018 Konrad Hinsen ;;; Copyright © 2018 Chris Marusich +;;; Copyright © 2018 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -609,6 +610,18 @@ please email '~a'~%") (squashfs . ,squashfs-image) (docker . ,docker-image))) +(define (show-formats) + ;; Print the supported pack formats. + (display (G_ "The supported formats for 'guix pack' are:")) + (newline) + (display (G_ " + tarball Self-contained tarball, ready to run on another machine")) + (display (G_ " + squashfs Squashfs image suitable for Singularity")) + (display (G_ " + docker Tarball ready for 'docker load'")) + (newline)) + (define %options ;; Specifications of the command-line options. (cons* (option '(#\h "help") #f #f @@ -625,6 +638,10 @@ please email '~a'~%") (option '(#\f "format") #t #f (lambda (opt name arg result) (alist-cons 'format (string->symbol arg) result))) + (option '("list-formats") #f #f + (lambda args + (show-formats) + (exit 0))) (option '(#\R "relocatable") #f #f (lambda (opt name arg result) (alist-cons 'relocatable? #t result))) @@ -686,6 +703,8 @@ Create a bundle of PACKAGE.\n")) (newline) (display (G_ " -f, --format=FORMAT build a pack in the given FORMAT")) + (display (G_ " + --list-formats list the formats available")) (display (G_ " -R, --relocatable produce relocatable executables")) (display (G_ " -- cgit v1.2.3 From bd606fb2ce9ce9ec94fa7e9b078c87790723675c Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 27 Nov 2018 19:10:44 +0200 Subject: gnu: x265: Build 10-bit and 12-bit libraries. * gnu/packages/video.scm (x265)[arguments]: Add configure-flag to set %output for the other builds. Add custom 'build-12-bit and 'build-10-bit phases to build their respective versions. Add a custom phase to install the 10-bit and 12-bit libraries. --- gnu/packages/video.scm | 50 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 46 insertions(+), 4 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index bf1f6d36fa..9d3bd3c159 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -412,15 +412,57 @@ and creating Matroska files from other media files (@code{mkvmerge}).") (build-system cmake-build-system) (arguments `(#:tests? #f ; tests are skipped if cpu-optimized code isn't built - ;; Ensure position independent code for everyone. - #:configure-flags '("-DENABLE_PIC=TRUE") + #:configure-flags + ;; Ensure position independent code for everyone. + (list "-DENABLE_PIC=TRUE" + (string-append "-DCMAKE_INSTALL_PREFIX=" + (assoc-ref %outputs "out"))) #:phases (modify-phases %standard-phases - (add-before 'configure 'prepare-build + (add-after 'unpack 'prepare-build (lambda _ (delete-file-recursively "build") (chdir "source") - #t))))) + #t)) + (add-before 'configure 'build-12-bit + (lambda* (#:key (configure-flags '()) #:allow-other-keys) + (mkdir "../build-12bit") + (with-directory-excursion "../build-12bit" + (apply invoke + "cmake" "../source" + "-DHIGH_BIT_DEPTH=ON" + "-DEXPORT_C_API=OFF" + "-DENABLE_CLI=OFF" + "-DMAIN12=ON" + configure-flags) + (substitute* (cons "cmake_install.cmake" + (append + (find-files "CMakeFiles/x265-shared.dir" ".") + (find-files "CMakeFiles/x265-static.dir" "."))) + (("libx265") "libx265_main12")) + (invoke "make")))) + (add-before 'configure 'build-10-bit + (lambda* (#:key (configure-flags '()) #:allow-other-keys) + (mkdir "../build-10bit") + (with-directory-excursion "../build-10bit" + (apply invoke + "cmake" "../source" + "-DHIGH_BIT_DEPTH=ON" + "-DEXPORT_C_API=OFF" + "-DENABLE_CLI=OFF" + configure-flags) + (substitute* (cons "cmake_install.cmake" + (append + (find-files "CMakeFiles/x265-shared.dir" ".") + (find-files "CMakeFiles/x265-static.dir" "."))) + (("libx265") "libx265_main10")) + (invoke "make")))) + (add-after 'install 'install-more-libs + (lambda _ + (with-directory-excursion "../build-12bit" + (invoke "make" "install")) + (with-directory-excursion "../build-10bit" + (invoke "make" "install"))))))) (home-page "http://x265.org/") (synopsis "Library for encoding h.265/HEVC video streams") (description "x265 is a H.265 / HEVC video encoder application library, -- cgit v1.2.3 From 020d4d2cdc388242da91819cc1b146f1a6cce93b Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 27 Nov 2018 19:12:01 +0200 Subject: gnu: x265: Install static libraries in a separate output. This saves more than 50% of the closure size. * gnu/packages/video.scm (x265)[outputs]: New field. [arguments]: Add custom phase to move the static libraries to a new output. --- gnu/packages/video.scm | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 9d3bd3c159..1e1c988c25 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -396,6 +396,7 @@ and creating Matroska files from other media files (@code{mkvmerge}).") (package (name "x265") (version "2.9") + (outputs '("out" "static")) (source (origin (method url-fetch) @@ -462,7 +463,20 @@ and creating Matroska files from other media files (@code{mkvmerge}).") (with-directory-excursion "../build-12bit" (invoke "make" "install")) (with-directory-excursion "../build-10bit" - (invoke "make" "install"))))))) + (invoke "make" "install")))) + (add-before 'strip 'move-static-libs + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (static (assoc-ref outputs "static"))) + (mkdir-p (string-append static "/lib")) + (with-directory-excursion + (string-append out "/lib") + (for-each + (lambda (file) + (rename-file file + (string-append static "/lib/" file))) + (find-files "." "\\.a$")))) + #t))))) (home-page "http://x265.org/") (synopsis "Library for encoding h.265/HEVC video streams") (description "x265 is a H.265 / HEVC video encoder application library, -- cgit v1.2.3 From 8e59c5febd2dad171fe90caf04d8b3eb31ca3b31 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Tue, 27 Nov 2018 19:16:24 +0200 Subject: gnu: x265: Fix building on armhf-linux. * gnu/packages/video.scm (x265)[patches]: Add patch. [arguments]: Add a configure-flag to disable assembly. Adjust a custom phase to recognize armv8 as 32-bit arm when masquerading as armhf-linux. --- gnu/local.mk | 1 + gnu/packages/patches/x265-arm-flags.patch | 36 +++++++++++++++++++++++++++++++ gnu/packages/video.scm | 10 ++++++++- 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/x265-arm-flags.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0cd9fad2e5..29d07f5192 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1243,6 +1243,7 @@ dist_patch_DATA = \ %D%/packages/patches/wpa-supplicant-fix-zeroed-keys.patch \ %D%/packages/patches/wpa-supplicant-fix-nonce-reuse.patch \ %D%/packages/patches/wpa-supplicant-krack-followups.patch \ + %D%/packages/patches/x265-arm-flags.patch \ %D%/packages/patches/x265-detect512-all-arches.patch \ %D%/packages/patches/xboing-CVE-2004-0149.patch \ %D%/packages/patches/xf86-video-ark-remove-mibstore.patch \ diff --git a/gnu/packages/patches/x265-arm-flags.patch b/gnu/packages/patches/x265-arm-flags.patch new file mode 100644 index 0000000000..f17e26f6f1 --- /dev/null +++ b/gnu/packages/patches/x265-arm-flags.patch @@ -0,0 +1,36 @@ +https://sources.debian.org/src/x265/2.9-3/debian/patches/0001-Fix-arm-flags.patch/ + +From: Sebastian Ramacher +Date: Wed, 26 Apr 2017 22:05:06 +0200 +Subject: Fix arm* flags + +--- + source/CMakeLists.txt | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt +index 33b6523..25aecbb 100644 +--- a/source/CMakeLists.txt ++++ b/source/CMakeLists.txt +@@ -72,7 +72,7 @@ elseif(ARMMATCH GREATER "-1") + endif() + message(STATUS "Detected ARM target processor") + set(ARM 1) +- add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=1) ++ # add_definitions(-DX265_ARCH_ARM=1 -DHAVE_ARMV6=1) + else() + message(STATUS "CMAKE_SYSTEM_PROCESSOR value `${CMAKE_SYSTEM_PROCESSOR}` is unknown") + message(STATUS "Please add this value near ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE}") +@@ -230,12 +230,8 @@ if(GCC) + if(ARM AND CROSS_COMPILE_ARM) + set(ARM_ARGS -march=armv6 -mfloat-abi=soft -mfpu=vfp -marm -fPIC) + elseif(ARM) +- find_package(Neon) + if(CPU_HAS_NEON) +- set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=neon -marm -fPIC) + add_definitions(-DHAVE_NEON) +- else() +- set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=vfp -marm) + endif() + endif() + add_definitions(${ARM_ARGS}) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 1e1c988c25..fc3ee5c72b 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -405,7 +405,8 @@ and creating Matroska files from other media files (@code{mkvmerge}).") (sha256 (base32 "090hp4216isis8q5gb7bwzia8rfyzni54z21jnwm97x3hiy6ibpb")) - (patches (search-patches "x265-detect512-all-arches.patch")) + (patches (search-patches "x265-arm-flags.patch" + "x265-detect512-all-arches.patch")) (modules '((guix build utils))) (snippet '(begin (delete-file-recursively "source/compat/getopt") @@ -416,6 +417,10 @@ and creating Matroska files from other media files (@code{mkvmerge}).") #:configure-flags ;; Ensure position independent code for everyone. (list "-DENABLE_PIC=TRUE" + ,@(if (string-prefix? "armhf" (or (%current-system) + (%current-target-system))) + '("-DENABLE_ASSEMBLY=OFF") + '()) (string-append "-DCMAKE_INSTALL_PREFIX=" (assoc-ref %outputs "out"))) #:phases @@ -424,6 +429,9 @@ and creating Matroska files from other media files (@code{mkvmerge}).") (lambda _ (delete-file-recursively "build") (chdir "source") + ;; recognize armv8 in 32-bit mode as ARM + (substitute* "CMakeLists.txt" + (("armv6l") "armv8l")) #t)) (add-before 'configure 'build-12-bit (lambda* (#:key (configure-flags '()) #:allow-other-keys) -- cgit v1.2.3 From 8b5e2e94afdef6430583c3a0ef02fe2d7fcc16d1 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sun, 25 Nov 2018 01:14:28 +0100 Subject: gnu: Add rclone. * gnu/packages/sync.scm (rclone): New variable. --- gnu/packages/sync.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index e0b0af3d96..22262db2d6 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Ludovic Courtès +;;; Copyright © 2018 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,6 +23,7 @@ (define-module (gnu packages sync) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system cmake) + #:use-module (guix build-system go) #:use-module (guix build-system meson) #:use-module (guix download) #:use-module (guix git-download) @@ -243,3 +245,45 @@ over the Internet in an HTTP and CDN friendly way; @item An efficient backup system. @end itemize\n") (license license:lgpl2.1+))) + +(define-public rclone + (package + (name "rclone") + (version "1.45") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ncw/rclone.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06xg0ibv9pnrnmabh1kblvxx1pk8h5rmkr9mjbymv497sx3zgz26")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/ncw/rclone" + #:install-source? #f + (modify-phases %standard-phases + ;; Fix failure during "check" phase: "/homeless-shelter: permission + ;; denied". + (add-after 'unpack 'set-home-directory + (lambda _ (setenv "HOME" "/tmp") #t))))) + (synopsis "@code{rsync} for cloud storage") + (description "@code{Rclone} is a command line program to sync files and +directories to and from different cloud storage providers. + +Features include: +@itemize +@item MD5/SHA1 hashes checked at all times for file integrity +@item Timestamps preserved on files +@item Partial syncs supported on a whole file basis +@item Copy mode to just copy new/changed files +@item Sync (one way) mode to make a directory identical +@item Check mode to check for file hash equality +@item Can sync to and from network, e.g., two different cloud accounts +@item Optional encryption (Crypt) +@item Optional cache (Cache) +@item Optional FUSE mount (rclone mount) +@end itemize") + (home-page "https://rclone.org/") + (license license:expat))) -- cgit v1.2.3 From 4236959de8200bba4eeb2c23519fc736b3c50a23 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 27 Nov 2018 23:22:20 +0100 Subject: gnu: scribus: Fix build with recent Poppler. Suggested by ngz on #guix. * gnu/packages/patches/scribus-poppler.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/scribus.scm (scribus)[source]: Add patch. --- gnu/local.mk | 1 + gnu/packages/patches/scribus-poppler.patch | 72 ++++++++++++++++++++++++++++++ gnu/packages/scribus.scm | 4 +- 3 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/scribus-poppler.patch diff --git a/gnu/local.mk b/gnu/local.mk index 29d07f5192..772002c9cf 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1145,6 +1145,7 @@ dist_patch_DATA = \ %D%/packages/patches/scotch-build-parallelism.patch \ %D%/packages/patches/scotch-graph-diam-64.patch \ %D%/packages/patches/scotch-graph-induce-type-64.patch \ + %D%/packages/patches/scribus-poppler.patch \ %D%/packages/patches/sdl-libx11-1.6.patch \ %D%/packages/patches/seq24-rename-mutex.patch \ %D%/packages/patches/sharutils-CVE-2018-1000097.patch \ diff --git a/gnu/packages/patches/scribus-poppler.patch b/gnu/packages/patches/scribus-poppler.patch new file mode 100644 index 0000000000..9b969e4cb6 --- /dev/null +++ b/gnu/packages/patches/scribus-poppler.patch @@ -0,0 +1,72 @@ +Fix build with recent Poppler. + +From d867ec3c386baaed1b8e076dd70b278863411480 Mon Sep 17 00:00:00 2001 +From: Jean Ghali +Date: Mon, 30 Apr 2018 09:19:33 +0000 +Subject: [PATCH] =?UTF-8?q?#15289:=20FTBFS=201.5.4=20with=20error:=20inval?= + =?UTF-8?q?id=20conversion=20from=20=E2=80=98const=20GooString*=E2=80=99?= + =?UTF-8?q?=20to=20=E2=80=98GooString*=E2=80=99?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +git-svn-id: svn://scribus.net/trunk/Scribus@22498 11d20701-8431-0410-a711-e3c959e3b870 +--- + scribus/plugins/import/pdf/importpdf.cpp | 2 +- + scribus/plugins/import/pdf/importpdf.h | 2 +- + scribus/plugins/import/pdf/slaoutput.cpp | 2 +- + scribus/plugins/import/pdf/slaoutput.h | 2 +- + 4 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/scribus/plugins/import/pdf/importpdf.cpp b/scribus/plugins/import/pdf/importpdf.cpp +index c1802861aa..d4c5a9ba49 100644 +--- a/scribus/plugins/import/pdf/importpdf.cpp ++++ b/scribus/plugins/import/pdf/importpdf.cpp +@@ -1081,7 +1081,7 @@ QRectF PdfPlug::getCBox(int box, int pgNum) + return cRect; + } + +-QString PdfPlug::UnicodeParsedString(GooString *s1) ++QString PdfPlug::UnicodeParsedString(const GooString *s1) + { + if ( !s1 || s1->getLength() == 0 ) + return QString(); +diff --git a/scribus/plugins/import/pdf/importpdf.h b/scribus/plugins/import/pdf/importpdf.h +index c8c5efcd0d..5249562692 100644 +--- a/scribus/plugins/import/pdf/importpdf.h ++++ b/scribus/plugins/import/pdf/importpdf.h +@@ -81,7 +81,7 @@ class PdfPlug : public QObject + private: + bool convert(const QString& fn); + QRectF getCBox(int box, int pgNum); +- QString UnicodeParsedString(GooString *s1); ++ QString UnicodeParsedString(const GooString *s1); + + QList Elements; + double baseX, baseY; +diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp +index be1815dc29..17b6357246 100644 +--- a/scribus/plugins/import/pdf/slaoutput.cpp ++++ b/scribus/plugins/import/pdf/slaoutput.cpp +@@ -4252,7 +4252,7 @@ void SlaOutputDev::pushGroup(QString maskName, GBool forSoftMask, GBool alpha, b + m_groupStack.push(gElements); + } + +-QString SlaOutputDev::UnicodeParsedString(GooString *s1) ++QString SlaOutputDev::UnicodeParsedString(const GooString *s1) + { + if ( !s1 || s1->getLength() == 0 ) + return QString(); +diff --git a/scribus/plugins/import/pdf/slaoutput.h b/scribus/plugins/import/pdf/slaoutput.h +index 20e8b2d311..6698c030e0 100644 +--- a/scribus/plugins/import/pdf/slaoutput.h ++++ b/scribus/plugins/import/pdf/slaoutput.h +@@ -266,7 +266,7 @@ class SlaOutputDev : public OutputDev + int getBlendMode(GfxState *state); + void applyMask(PageItem *ite); + void pushGroup(QString maskName = "", GBool forSoftMask = gFalse, GBool alpha = gFalse, bool inverted = false); +- QString UnicodeParsedString(GooString *s1); ++ QString UnicodeParsedString(const GooString *s1); + bool checkClip(); + bool pathIsClosed; + QString CurrColorFill; diff --git a/gnu/packages/scribus.scm b/gnu/packages/scribus.scm index dca1dc86e1..615d7e23a2 100644 --- a/gnu/packages/scribus.scm +++ b/gnu/packages/scribus.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2015, 2018 Ricardo Wurmus ;;; Copyright © 2016 Efraim Flashner ;;; Copyright © 2017, 2018 Nicolas Goaziou ;;; Copyright © 2018 Clément Lassieur @@ -56,7 +56,7 @@ (sha256 (base32 "00ys0p6h3iq77kh72dkl0qrf7qvznq18qdrgiq10gfxja1995034")) - (modules '((guix build utils))))) + (patches (search-patches "scribus-poppler.patch")))) (build-system cmake-build-system) (arguments `(#:tests? #f ;no test target -- cgit v1.2.3 From 41ffc214e4839aa50e9957388749772e91a3f533 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 27 Nov 2018 23:23:20 +0100 Subject: gnu: Add r-chipexoqual. * gnu/packages/bioconductor.scm (r-chipexoqual): New variable. --- gnu/packages/bioconductor.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 95c722ac40..e7f11dead3 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -1030,3 +1030,41 @@ maps.") "This package provides tools to parse Illumina Sequence Analysis Viewer (SAV) files, access data, and generate QC plots.") (license license:agpl3+))) + +(define-public r-chipexoqual + (package + (name "r-chipexoqual") + (version "1.6.0") + (source + (origin + (method url-fetch) + (uri (bioconductor-uri "ChIPexoQual" version)) + (sha256 + (base32 + "1773bpiybn4g9jlv46z29x19q4dpcvn7lairr3lq5pdqbqmz5hnp")))) + (properties `((upstream-name . "ChIPexoQual"))) + (build-system r-build-system) + (propagated-inputs + `(("r-biocparallel" ,r-biocparallel) + ("r-biovizbase" ,r-biovizbase) + ("r-broom" ,r-broom) + ("r-data-table" ,r-data-table) + ("r-dplyr" ,r-dplyr) + ("r-genomeinfodb" ,r-genomeinfodb) + ("r-genomicalignments" ,r-genomicalignments) + ("r-genomicranges" ,r-genomicranges) + ("r-ggplot2" ,r-ggplot2) + ("r-hexbin" ,r-hexbin) + ("r-iranges" ,r-iranges) + ("r-rcolorbrewer" ,r-rcolorbrewer) + ("r-rmarkdown" ,r-rmarkdown) + ("r-rsamtools" ,r-rsamtools) + ("r-s4vectors" ,r-s4vectors) + ("r-scales" ,r-scales) + ("r-viridis" ,r-viridis))) + (home-page "https://github.com/keleslab/ChIPexoQual") + (synopsis "Quality control pipeline for ChIP-exo/nexus data") + (description + "This package provides a quality control pipeline for ChIP-exo/nexus +sequencing data.") + (license license:gpl2+))) -- cgit v1.2.3 From c93b77ad37eec647be922377fed2ccb47969938f Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Tue, 27 Nov 2018 22:11:48 -0500 Subject: gnu: wxmaxima: Update to 18.11.4. * gnu/packages/maths.scm (wxmaxima): Update to 18.11.4. [source]: Switch to git-fetch. --- gnu/packages/maths.scm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 0cf8916abe..b08f6b41ba 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2848,16 +2848,17 @@ point numbers.") (define-public wxmaxima (package (name "wxmaxima") - (version "18.10.1") + (version "18.11.4") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/wxMaxima-developers/" name - "/archive/Version-" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/wxMaxima-developers/wxmaxima.git") + (commit (string-append "Version-" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0c2blq65r0am509p3rjqpwqk6vl5r2yg1p9nh2jczf80vhi3ldas")))) + "1sz8n9v23q442l7yjj67pjh0dk78rl4cbcc3j8m1bm88anlfxl9r")))) (build-system cmake-build-system) (native-inputs `(("gettext" ,gettext-minimal))) -- cgit v1.2.3 From de96f6610f742a33475a81f901223527bb28d3a7 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 27 Nov 2018 22:44:16 -0500 Subject: gnu: linux-libre@4.4: Update to 4.4.165. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.165. --- 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 8eec8a73a8..58c395e59a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -445,8 +445,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.4 - (make-linux-libre "4.4.164" - "04w4x97bkd2javjws9pzv1shfcrhyn4nf9w8b6qk6zdaj45fzasb" + (make-linux-libre "4.4.165" + "1adpj8hbly5z3j7mlnydnm2kx2isi3194n1hszzwxki8gj0xnqk4" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From 32f39fb9e291ba2161cbdfa34dab585151f47a8c Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 27 Nov 2018 22:44:58 -0500 Subject: gnu: linux-libre@4.9: Update to 4.9.141. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.141. --- 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 58c395e59a..f19ac3be2a 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -439,8 +439,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.140" - "12amh7m0khjx5q3bcv8sq59xkanaxa5xnw4m1iql7503nk4pgg9a" + (make-linux-libre "4.9.141" + "1cjyni2wf1m9l8nvfl4gcswxlk9rwhpr0q3lvhnlg20761kvixp4" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From 71e48a6371589f4fe6034826b869d93c4d4a42cb Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 27 Nov 2018 22:45:43 -0500 Subject: gnu: linux-libre@4.14: Update to 4.14.84. * gnu/packages/linux.scm (%linux-libre-4.14-version): Update to 4.14.84. (%linux-libre-4.14-hash): Update hash. --- 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 f19ac3be2a..0e96c03467 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -429,8 +429,8 @@ It has been modified to remove all non-free binary blobs.") #:patches %linux-libre-4.19-patches #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.83") -(define %linux-libre-4.14-hash "0x6r09bqdrcqigyjx922vji3pdv36l24pl0j33xs8b7xawkvii9g") +(define %linux-libre-4.14-version "4.14.84") +(define %linux-libre-4.14-hash "0mdf436bxlrsv0jbnzwd5bblpavv9vk5qx7h2x55jp0iy9pvp3n2") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version -- cgit v1.2.3 From f04a5391690c69c3721117c082f682f83c550015 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 27 Nov 2018 22:47:24 -0500 Subject: gnu: linux-libre: Update to 4.19.5. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.19.5. (%linux-libre-hash): Update hash. (%linux-libre-4.19-patches): Rename patch (4.18 -> 4.19). --- gnu/packages/linux.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 0e96c03467..28e2c7388f 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -406,8 +406,8 @@ It has been modified to remove all non-free binary blobs.") ;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; See : https://wiki.debian.org/DebianKernel/ARMMP. -(define %linux-libre-version "4.19.4") -(define %linux-libre-hash "0m5k14a89bf5avr3kdh3909qjfnd051fbsb0v7a52d54dkg2nbp6") +(define %linux-libre-version "4.19.5") +(define %linux-libre-hash "1ailss05c3p9aw2ysv75kj9j7qk04rc0cn9y9dk6fmjhnbnw9abm") (define %linux-libre-4.19-patches (list %boot-logo-patch @@ -418,7 +418,7 @@ It has been modified to remove all non-free binary blobs.") "/raw/34a7d9011fcfcfa38b68282fd2b1a8797e6834f0" "/debian/patches/bugfix/arm/" "arm-mm-export-__sync_icache_dcache-for-xen-privcmd.patch")) - (file-name "linux-libre-4.18-arm-export-__sync_icache_dcache.patch") + (file-name "linux-libre-4.19-arm-export-__sync_icache_dcache.patch") (sha256 (base32 "1ifnfhpakzffn4b8n7x7w5cps9mzjxlkcfz9zqak2vaw8nzvl39f"))))) -- cgit v1.2.3 From e5ace9dd78e455543792671c76c8d78b81f1216c Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Tue, 27 Nov 2018 23:57:52 -0500 Subject: Revert "gnu: Add rclone." This reverts commit 8b5e2e94afdef6430583c3a0ef02fe2d7fcc16d1. --- gnu/packages/sync.scm | 44 -------------------------------------------- 1 file changed, 44 deletions(-) diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm index 22262db2d6..e0b0af3d96 100644 --- a/gnu/packages/sync.scm +++ b/gnu/packages/sync.scm @@ -3,7 +3,6 @@ ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Ludovic Courtès -;;; Copyright © 2018 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -23,7 +22,6 @@ (define-module (gnu packages sync) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system cmake) - #:use-module (guix build-system go) #:use-module (guix build-system meson) #:use-module (guix download) #:use-module (guix git-download) @@ -245,45 +243,3 @@ over the Internet in an HTTP and CDN friendly way; @item An efficient backup system. @end itemize\n") (license license:lgpl2.1+))) - -(define-public rclone - (package - (name "rclone") - (version "1.45") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/ncw/rclone.git") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "06xg0ibv9pnrnmabh1kblvxx1pk8h5rmkr9mjbymv497sx3zgz26")))) - (build-system go-build-system) - (arguments - '(#:import-path "github.com/ncw/rclone" - #:install-source? #f - (modify-phases %standard-phases - ;; Fix failure during "check" phase: "/homeless-shelter: permission - ;; denied". - (add-after 'unpack 'set-home-directory - (lambda _ (setenv "HOME" "/tmp") #t))))) - (synopsis "@code{rsync} for cloud storage") - (description "@code{Rclone} is a command line program to sync files and -directories to and from different cloud storage providers. - -Features include: -@itemize -@item MD5/SHA1 hashes checked at all times for file integrity -@item Timestamps preserved on files -@item Partial syncs supported on a whole file basis -@item Copy mode to just copy new/changed files -@item Sync (one way) mode to make a directory identical -@item Check mode to check for file hash equality -@item Can sync to and from network, e.g., two different cloud accounts -@item Optional encryption (Crypt) -@item Optional cache (Cache) -@item Optional FUSE mount (rclone mount) -@end itemize") - (home-page "https://rclone.org/") - (license license:expat))) -- cgit v1.2.3 From 01e7ca5410e45f63a39f16a6e8156f3e0898141a Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 28 Nov 2018 11:22:03 +0200 Subject: gnu: parallel: Update to 20181122. * gnu/packages/parallel.scm (parallel): Update to 20181122. --- 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 1970eb169b..df8ac180b3 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -48,7 +48,7 @@ (define-public parallel (package (name "parallel") - (version "20181022") + (version "20181122") (source (origin (method url-fetch) @@ -56,7 +56,7 @@ version ".tar.bz2")) (sha256 (base32 - "1v6vrfnn6acjjlp8xiizvcrb3zzs94av5xcl6xm8zfvcapixx11f")))) + "1mcqymf6vg8jhnjv71sswcz5xrwpq2h2ishi8m1hz8rwhc65h1ig")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit v1.2.3 From 8856f409d13cd7376be4319b9f75df0692c009d6 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Nov 2018 22:14:11 +0100 Subject: derivations: Add properties. * guix/derivations.scm (derivation): Add #:properties parameter. [user+system-env-vars]: Honor it. (derivation-properties): New procedure. (build-expression->derivation): Add #:properties and pass it to 'derivation'. * guix/gexp.scm (gexp->derivation): Likewise. * tests/derivations.scm ("derivation-properties"): New test. * tests/gexp.scm ("gexp->derivation properties"): New test. * doc/guix.texi (Derivations, G-Expressions): Adjust accordingly. --- doc/guix.texi | 8 ++++++-- guix/derivations.scm | 30 +++++++++++++++++++++++++----- guix/gexp.scm | 4 +++- tests/derivations.scm | 10 ++++++++++ tests/gexp.scm | 10 +++++++++- 5 files changed, 53 insertions(+), 9 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 917a3e9d57..c040a8531a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5060,7 +5060,7 @@ a derivation is the @code{derivation} procedure: [#:system (%current-system)] [#:references-graphs #f] @ [#:allowed-references #f] [#:disallowed-references #f] @ [#:leaked-env-vars #f] [#:local-build? #f] @ - [#:substitutable? #t] + [#:substitutable? #t] [#:properties '()] Build a derivation with the given arguments, and return the resulting @code{} object. @@ -5097,6 +5097,9 @@ When @var{substitutable?} is false, declare that substitutes of the derivation's output should not be used (@pxref{Substitutes}). This is useful, for instance, when building packages that capture details of the host CPU instruction set. + +@var{properties} must be an association list describing ``properties'' of the +derivation. It is kept as-is, uninterpreted, in the derivation. @end deffn @noindent @@ -5790,7 +5793,8 @@ information about monads.) [#:leaked-env-vars #f] @ [#:script-name (string-append @var{name} "-builder")] @ [#:deprecation-warnings #f] @ - [#:local-build? #f] [#:substitutable? #t] [#:guile-for-build #f] + [#:local-build? #f] [#:substitutable? #t] @ + [#:properties '()] [#:guile-for-build #f] Return a derivation @var{name} that runs @var{exp} (a gexp) with @var{guile-for-build} (a derivation) on @var{system}; @var{exp} is stored in a file called @var{script-name}. When @var{target} is true, diff --git a/guix/derivations.scm b/guix/derivations.scm index 7afecb10cc..f6176a78fd 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -80,6 +80,7 @@ substitutable-derivation? substitution-oracle derivation-hash + derivation-properties read-derivation read-derivation-from-file @@ -681,7 +682,8 @@ name of each input with that input's hash." references-graphs allowed-references disallowed-references leaked-env-vars local-build? - (substitutable? #t)) + (substitutable? #t) + (properties '())) "Build a derivation with the given arguments, and return the resulting object. When HASH and HASH-ALGO are given, a fixed-output derivation is created---i.e., one whose result is known in @@ -708,7 +710,10 @@ for offloading and should rather be built locally. This is the case for small derivations where the costs of data transfers would outweigh the benefits. When SUBSTITUTABLE? is false, declare that substitutes of the derivation's -output should not be used." +output should not be used. + +PROPERTIES must be an association list describing \"properties\" of the +derivation. It is kept as-is, uninterpreted, in the derivation." (define (add-output-paths drv) ;; Return DRV with an actual store path for each of its output and the ;; corresponding environment variable. @@ -763,6 +768,10 @@ output should not be used." `(("impureEnvVars" . ,(string-join leaked-env-vars))) '()) + ,@(match properties + (() '()) + (lst `(("guix properties" + . ,(object->string properties))))) ,@env-vars))) (match references-graphs (((file . path) ...) @@ -851,6 +860,14 @@ long-running processes that know what they're doing. Use with care!" (invalidate-memoization! derivation-path->base16-hash) (hash-clear! %derivation-cache)) +(define derivation-properties + (mlambdaq (drv) + "Return the property alist associated with DRV." + (match (assoc "guix properties" + (derivation-builder-environment-vars drv)) + ((_ . str) (call-with-input-string str read)) + (#f '())))) + (define* (map-derivation store drv mapping #:key (system (%current-system))) "Given MAPPING, a list of pairs of derivations, return a derivation based on @@ -1129,7 +1146,8 @@ they can refer to each other." references-graphs allowed-references disallowed-references - local-build? (substitutable? #t)) + local-build? (substitutable? #t) + (properties '())) "Return a derivation that executes Scheme expression EXP as a builder for derivation NAME. INPUTS must be a list of (NAME DRV-PATH SUB-DRV) tuples; when SUB-DRV is omitted, \"out\" is assumed. MODULES is a list @@ -1149,7 +1167,8 @@ EXP is built using GUILE-FOR-BUILD (a derivation). When GUILE-FOR-BUILD is omitted or is #f, the value of the `%guile-for-build' fluid is used instead. See the `derivation' procedure for the meaning of REFERENCES-GRAPHS, -ALLOWED-REFERENCES, DISALLOWED-REFERENCES, LOCAL-BUILD?, and SUBSTITUTABLE?." +ALLOWED-REFERENCES, DISALLOWED-REFERENCES, LOCAL-BUILD?, SUBSTITUTABLE?, +and PROPERTIES." (define guile-drv (or guile-for-build (%guile-for-build))) @@ -1277,7 +1296,8 @@ ALLOWED-REFERENCES, DISALLOWED-REFERENCES, LOCAL-BUILD?, and SUBSTITUTABLE?." #:allowed-references allowed-references #:disallowed-references disallowed-references #:local-build? local-build? - #:substitutable? substitutable?))) + #:substitutable? substitutable? + #:properties properties))) ;;; diff --git a/guix/gexp.scm b/guix/gexp.scm index f33fb198e4..786e378308 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -631,6 +631,7 @@ names and file names suitable for the #:allowed-references argument to allowed-references disallowed-references leaked-env-vars local-build? (substitutable? #t) + (properties '()) ;; TODO: This parameter is transitional; it's here ;; to avoid a full rebuild. Remove it on the next @@ -800,7 +801,8 @@ The other arguments are as for 'derivation'." #:disallowed-references disallowed #:leaked-env-vars leaked-env-vars #:local-build? local-build? - #:substitutable? substitutable?)))) + #:substitutable? substitutable? + #:properties properties)))) (define* (gexp-inputs exp #:key native?) "Return the input list for EXP. When NATIVE? is true, return only native diff --git a/tests/derivations.scm b/tests/derivations.scm index 159a6971b3..5f294c1827 100644 --- a/tests/derivations.scm +++ b/tests/derivations.scm @@ -1132,6 +1132,16 @@ ((p2 . _) (stringderivation %store "bar" + '(mkdir %output))) + (drv2 (build-expression->derivation %store "foo" + '(mkdir %output) + #:properties '((type . test))))) + (list (derivation-properties drv1) + (derivation-properties drv2)))) + (test-equal "map-derivation" "hello" (let* ((joke (package-derivation %store guile-1.8)) diff --git a/tests/gexp.scm b/tests/gexp.scm index ab60bdab68..7ae9201c81 100644 --- a/tests/gexp.scm +++ b/tests/gexp.scm @@ -476,7 +476,15 @@ (return (and (string=? (readlink (string-append out "/foo")) guile) (string=? (readlink out2) file) (equal? refs (list (dirname (dirname guile)))) - (equal? refs2 (list file)))))) + (equal? refs2 (list file)) + (null? (derivation-properties drv)))))) + +(test-assertm "gexp->derivation properties" + (mlet %store-monad ((drv (gexp->derivation "foo" + #~(mkdir #$output) + #:properties '((type . test))))) + (return (equal? '((type . test)) + (derivation-properties drv))))) (test-assertm "gexp->derivation vs. grafts" (mlet* %store-monad ((graft? (set-grafting #f)) -- cgit v1.2.3 From 64fd1c01bc6f1be6ffcafc08789d5dafb9850c2e Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Nov 2018 22:27:39 +0100 Subject: grafts: Record metadata as derivation properties. * guix/grafts.scm (graft-derivation/shallow): Pass #:properties to 'build-expression->derivation'. * tests/grafts.scm ("graft-derivation, grafted item is a direct dependency"): Check the value returned by 'derivation-properties'. --- guix/grafts.scm | 7 ++++++- tests/grafts.scm | 13 ++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/guix/grafts.scm b/guix/grafts.scm index 01e245d8eb..63f384555b 100644 --- a/guix/grafts.scm +++ b/guix/grafts.scm @@ -123,6 +123,10 @@ are not recursively applied to dependencies of DRV." (define add-label (cut cons "x" <>)) + (define properties + `((type . graft) + (graft (count . ,(length grafts))))) + (match grafts ((($ sources source-outputs targets target-outputs) ...) (let ((sources (zip sources source-outputs)) @@ -140,7 +144,8 @@ are not recursively applied to dependencies of DRV." ,@(append (map add-label sources) (map add-label targets))) #:outputs outputs - #:local-build? #t))))) + #:local-build? #t + #:properties properties))))) (define (item->deriver store item) "Return two values: the derivation that led to ITEM (a store item), and the name of the output of that derivation ITEM corresponds to (for example diff --git a/tests/grafts.scm b/tests/grafts.scm index abb074d628..f85f3c6913 100644 --- a/tests/grafts.scm +++ b/tests/grafts.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -51,7 +51,8 @@ (test-begin "grafts") -(test-assert "graft-derivation, grafted item is a direct dependency" +(test-equal "graft-derivation, grafted item is a direct dependency" + '((type . graft) (graft (count . 2))) (let* ((build `(begin (mkdir %output) (chdir %output) @@ -76,14 +77,16 @@ (origin %mkdir) (replacement two)))))) (and (build-derivations %store (list grafted)) - (let ((two (derivation->output-path two)) - (grafted (derivation->output-path grafted))) + (let ((properties (derivation-properties grafted)) + (two (derivation->output-path two)) + (grafted (derivation->output-path grafted))) (and (string=? (format #f "foo/~a/bar" two) (call-with-input-file (string-append grafted "/text") get-string-all)) (string=? (readlink (string-append grafted "/sh")) one) (string=? (readlink (string-append grafted "/self")) - grafted)))))) + grafted) + properties))))) (test-assert "graft-derivation, grafted item uses a different name" (let* ((build `(begin -- cgit v1.2.3 From af1f1c38fbd5cb9e11d0e2fff1d62a7d6d5b8b59 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Nov 2018 22:29:29 +0100 Subject: status: Report grafting derivations specially. * guix/status.scm (print-build-event): In 'build-started' event handler, check the properties of DRV and handle 'graft' derivations specially. --- guix/status.scm | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/guix/status.scm b/guix/status.scm index 2ceb56788a..868bfdca21 100644 --- a/guix/status.scm +++ b/guix/status.scm @@ -325,7 +325,19 @@ addition to build events." (display "\r" port)) ;erase the spinner (match event (('build-started drv . _) - (format port (info (G_ "building ~a...")) drv) + (let ((properties (derivation-properties + (read-derivation-from-file drv)))) + (match (assq-ref properties 'type) + ('graft + (let ((count (match (assq-ref properties 'graft) + (#f 0) + (lst (or (assq-ref lst 'count) 0))))) + (format port (info (N_ "applying ~a graft for ~a..." + "applying ~a grafts for ~a..." + count)) + count drv))) + (_ + (format port (info (G_ "building ~a...")) drv)))) (newline port)) (('build-succeeded drv . _) (when (or print-log? (not (extended-build-trace-supported?))) -- cgit v1.2.3 From d4aa147eecc64a00d1463d4008b22c9595041552 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Nov 2018 22:31:09 +0100 Subject: ui: 'show-what-to-build' reports grafts separately. * guix/ui.scm (graft-derivation?): New procedure. (show-what-to-build): Distinguish among BUILD derivations that match 'graft-derivation?'. Report them separately. --- guix/ui.scm | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/guix/ui.scm b/guix/ui.scm index 96f403acf5..60636edac0 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -816,6 +816,12 @@ warning." (warning (G_ "at least ~,1h MB needed but only ~,1h MB available in ~a~%") (/ need 1e6) (/ free 1e6) directory)))) +(define (graft-derivation? drv) + "Return true if DRV is definitely a graft derivation, false otherwise." + (match (assq-ref (derivation-properties drv) 'type) + ('graft #t) + (_ #f))) + (define* (show-what-to-build store drv #:key dry-run? (use-substitutes? #t) (mode (build-mode normal))) @@ -865,7 +871,11 @@ report what is prerequisites are available for download." (append-map substitutable-references download)))) - download))) + download)) + ((graft build) + (partition (compose graft-derivation? + read-derivation-from-file) + build))) (define installed-size (reduce + 0 (map substitutable-nar-size download))) @@ -898,7 +908,12 @@ report what is prerequisites are available for download." "~:[The following files would be downloaded:~%~{ ~a~%~}~;~]" (length download)) (null? download) - (map substitutable-path download)))) + (map substitutable-path download))) + (format (current-error-port) + (N_ "~:[The following graft would be made:~%~{ ~a~%~}~;~]" + "~:[The following grafts would be made:~%~{ ~a~%~}~;~]" + (length graft)) + (null? graft) graft)) (begin (format (current-error-port) (N_ "~:[The following derivation will be built:~%~{ ~a~%~}~;~]" @@ -918,7 +933,12 @@ report what is prerequisites are available for download." "~:[The following files will be downloaded:~%~{ ~a~%~}~;~]" (length download)) (null? download) - (map substitutable-path download))))) + (map substitutable-path download))) + (format (current-error-port) + (N_ "~:[The following graft will be made:~%~{ ~a~%~}~;~]" + "~:[The following grafts will be made:~%~{ ~a~%~}~;~]" + (length graft)) + (null? graft) graft))) (check-available-space installed-size) -- cgit v1.2.3 From 94c0e61fe759924625c9e27d3da8c7c0c767ea2b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Nov 2018 11:48:33 +0100 Subject: inferior: Add 'inferior-eval-with-store'. * guix/inferior.scm (inferior-eval-with-store): New procedure, with code formerly in 'inferior-package-derivation'. (inferior-package-derivation): Rewrite in terms of 'inferior-eval-with-store'. * tests/inferior.scm ("inferior-eval-with-store"): New test. --- guix/inferior.scm | 70 +++++++++++++++++++++++++++++++++--------------------- tests/inferior.scm | 9 +++++++ 2 files changed, 52 insertions(+), 27 deletions(-) diff --git a/guix/inferior.scm b/guix/inferior.scm index 1dbb9e1699..ccc1c27cb2 100644 --- a/guix/inferior.scm +++ b/guix/inferior.scm @@ -56,6 +56,7 @@ open-inferior close-inferior inferior-eval + inferior-eval-with-store inferior-object? inferior-packages @@ -402,55 +403,70 @@ input/output ports.)" (unless (port-closed? client) (loop)))))) -(define* (inferior-package-derivation store package - #:optional - (system (%current-system)) - #:key target) - "Return the derivation for PACKAGE, an inferior package, built for SYSTEM -and cross-built for TARGET if TARGET is true. The inferior corresponding to -PACKAGE must be live." - ;; Create a named socket in /tmp and let the inferior of PACKAGE connect to - ;; it and use it as its store. This ensures the inferior uses the same - ;; store, with the same options, the same per-session GC roots, etc. +(define (inferior-eval-with-store inferior store code) + "Evaluate CODE in INFERIOR, passing it STORE as its argument. CODE must +thus be the code of a one-argument procedure that accepts a store." + ;; Create a named socket in /tmp and let INFERIOR connect to it and use it + ;; as its store. This ensures the inferior uses the same store, with the + ;; same options, the same per-session GC roots, etc. (call-with-temporary-directory (lambda (directory) (chmod directory #o700) (let* ((name (string-append directory "/inferior")) (socket (socket AF_UNIX SOCK_STREAM 0)) - (inferior (inferior-package-inferior package)) (major (nix-server-major-version store)) (minor (nix-server-minor-version store)) (proto (logior major minor))) (bind socket AF_UNIX name) (listen socket 1024) (send-inferior-request - `(let ((socket (socket AF_UNIX SOCK_STREAM 0))) + `(let ((proc ,code) + (socket (socket AF_UNIX SOCK_STREAM 0))) (connect socket AF_UNIX ,name) ;; 'port->connection' appeared in June 2018 and we can hardly ;; emulate it on older versions. Thus fall back to ;; 'open-connection', at the risk of talking to the wrong daemon or ;; having our build result reclaimed (XXX). - (let* ((store (if (defined? 'port->connection) - (port->connection socket #:version ,proto) - (open-connection))) - (package (hashv-ref %package-table - ,(inferior-package-id package))) - (drv ,(if target - `(package-cross-derivation store package - ,target - ,system) - `(package-derivation store package - ,system)))) - (close-connection store) - (close-port socket) - (derivation-file-name drv))) + (let ((store (if (defined? 'port->connection) + (port->connection socket #:version ,proto) + (open-connection)))) + (dynamic-wind + (const #t) + (lambda () + (proc store)) + (lambda () + (close-connection store) + (close-port socket))))) inferior) (match (accept socket) ((client . address) (proxy client (nix-server-socket store)))) (close-port socket) - (read-derivation-from-file (read-inferior-response inferior)))))) + (read-inferior-response inferior))))) + +(define* (inferior-package-derivation store package + #:optional + (system (%current-system)) + #:key target) + "Return the derivation for PACKAGE, an inferior package, built for SYSTEM +and cross-built for TARGET if TARGET is true. The inferior corresponding to +PACKAGE must be live." + (define proc + `(lambda (store) + (let* ((package (hashv-ref %package-table + ,(inferior-package-id package))) + (drv ,(if target + `(package-cross-derivation store package + ,target + ,system) + `(package-derivation store package + ,system)))) + (derivation-file-name drv)))) + + (and=> (inferior-eval-with-store (inferior-package-inferior package) store + proc) + read-derivation-from-file)) (define inferior-package->derivation (store-lift inferior-package-derivation)) diff --git a/tests/inferior.scm b/tests/inferior.scm index d1d5c00a77..d5a894ca8f 100644 --- a/tests/inferior.scm +++ b/tests/inferior.scm @@ -157,6 +157,15 @@ (close-inferior inferior) result)) +(test-equal "inferior-eval-with-store" + (add-text-to-store %store "foo" "Hello, world!") + (let* ((inferior (open-inferior %top-builddir + #:command "scripts/guix"))) + (inferior-eval-with-store inferior %store + '(lambda (store) + (add-text-to-store store "foo" + "Hello, world!"))))) + (test-equal "inferior-package-derivation" (map derivation-file-name (list (package-derivation %store %bootstrap-guile "x86_64-linux") -- cgit v1.2.3 From fe5db4eb03ff55a7b5731bea57f813cb8a9e3d8b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 26 Nov 2018 17:16:18 +0100 Subject: channels: Add 'checkout->channel-instance'. * guix/channels.scm (checkout->channel-instance): New procedure. --- guix/channels.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/guix/channels.scm b/guix/channels.scm index 82389eb583..e57da68149 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -47,6 +47,7 @@ channel-instance-checkout latest-channel-instances + checkout->channel-instance latest-channel-derivation channel-instances->manifest channel-instances->derivation)) @@ -114,6 +115,17 @@ CHANNELS." (channel-instance channel commit checkout))) channels)) +(define* (checkout->channel-instance checkout + #:key commit + (url checkout) (name 'guix)) + "Return a channel instance for CHECKOUT, which is assumed to be a checkout +of COMMIT at URL. Use NAME as the channel name." + (let* ((commit (or commit (make-string 40 #\0))) + (channel (channel (name name) + (commit commit) + (url url)))) + (channel-instance channel commit checkout))) + (define %self-build-file ;; The file containing code to build Guix. This serves the same purpose as ;; a makefile, and, similarly, is intended to always keep this name. -- cgit v1.2.3 From e91152e9f28ada896c875b51481faffbfba95869 Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen Date: Tue, 27 Nov 2018 18:43:45 +0100 Subject: guix hash: Fix version and help messages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ca719424455465fca4b872c371daf2a46de88b33 changes the name of the executable to be displayed by the --version and --help commands of `guix hash` to "gcrypt hash". This is reverted by this commit. * guix/scripts/hash.scm (show-help): Change string literals Signed-off-by: Ludovic Courtès --- guix/scripts/hash.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/guix/scripts/hash.scm b/guix/scripts/hash.scm index 2bd2ac4a06..b8b2158195 100644 --- a/guix/scripts/hash.scm +++ b/guix/scripts/hash.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2012, 2013, 2014, 2016, 2017 Ludovic Courtès ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2016 Jan Nieuwenhuizen +;;; Copyright © 2018 Tim Gesthuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -44,7 +45,7 @@ `((format . ,bytevector->nix-base32-string))) (define (show-help) - (display (G_ "Usage: gcrypt hash [OPTION] FILE + (display (G_ "Usage: guix hash [OPTION] FILE Return the cryptographic hash of FILE. Supported formats: 'nix-base32' (default), 'base32', and 'base16' ('hex' @@ -93,7 +94,7 @@ and 'hexadecimal' can be used as well).\n")) (exit 0))) (option '(#\V "version") #f #f (lambda args - (show-version-and-exit "gcrypt hash"))))) + (show-version-and-exit "guix hash"))))) -- cgit v1.2.3 From ad8a4a666d1012f1ace44fc55d35e8f87a0c8cf9 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Wed, 28 Nov 2018 13:41:50 +0100 Subject: gnu: clang-from-llvm: Fix install for clang-3.*. * gnu/packages/llvm.scm (clang-from-llvm): Fix install for clang-3.*. --- gnu/packages/llvm.scm | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/gnu/packages/llvm.scm b/gnu/packages/llvm.scm index 0b12f736a9..dace546a47 100644 --- a/gnu/packages/llvm.scm +++ b/gnu/packages/llvm.scm @@ -243,17 +243,21 @@ compiler. In LLVM this library is called \"compiler-rt\".") out "/etc/bash_completion.d"))) (with-directory-excursion (string-append out "/share/clang") - ;; Delete extensions for proprietary text editors. - (delete-file "clang-format-bbedit.applescript") - (delete-file "clang-format-sublime.py") - ;; Delete Emacs extensions: see their respective Emacs - ;; Guix package instead. - (delete-file "clang-rename.el") - (delete-file "clang-format.el") + (for-each + (lambda (file) + (when (file-exists? file) + (delete-file file))) + ;; Delete extensions for proprietary text editors. + '("clang-format-bbedit.applescript" + "clang-format-sublime.py" + ;; Delete Emacs extensions: see their respective Emacs + ;; Guix package instead. + "clang-rename.el" "clang-format.el")) ;; Install bash completion. - (mkdir-p compl-dir) - (rename-file "bash-autocomplete.sh" - (string-append compl-dir "/clang")))) + (when (file-exists? "bash-autocomplete.sh") + (mkdir-p compl-dir) + (rename-file "bash-autocomplete.sh" + (string-append compl-dir "/clang"))))) #t))))) ;; Clang supports the same environment variables as GCC. -- cgit v1.2.3 From a5d474d798b5f3071017ff32aade11bc3ebe9150 Mon Sep 17 00:00:00 2001 From: Kei Kebreau Date: Wed, 28 Nov 2018 10:56:04 -0500 Subject: gnu: maxima: Update to 5.42.1. * gnu/packages/maths.scm (maxima): Update to 5.42.1. --- gnu/packages/maths.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index b08f6b41ba..3dabef441e 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2749,7 +2749,7 @@ to BMP, JPEG or PNG image formats.") (define-public maxima (package (name "maxima") - (version "5.42.0") + (version "5.42.1") (source (origin (method url-fetch) @@ -2757,7 +2757,7 @@ to BMP, JPEG or PNG image formats.") version "-source/" name "-" version ".tar.gz")) (sha256 (base32 - "0d5pdihvcbwb7r4i4qs5qqgsz46hxlq33qj8is053llrgn9ylpyn")) + "1ka0xf70a55ndgmyrq7p5xxbd78pq7bfkqhgxsivaqdw6gn5lmcg")) (patches (search-patches "maxima-defsystem-mkdir.patch")))) (build-system gnu-build-system) (inputs -- cgit v1.2.3 From 7565d40e1e583b35148088bcf79760b9f95f91d9 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Wed, 28 Nov 2018 22:20:08 +0100 Subject: nls: Update documentation po and pot with `make dist`. * Makefile.am: dist-hook depends on doc-po-update. * po/doc/local.mk (doc-po-update): New target. --- Makefile.am | 1 + po/doc/local.mk | 12 ++++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index c5676b0b94..05c450c4f3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -612,6 +612,7 @@ guix-binary.%.tar.xz: dist-hook: $(distdir)/ChangeLog gen-AUTHORS gen-tarball-version dist-hook: assert-no-store-file-names +dist-hook: doc-po-update distcheck-hook: assert-binaries-available assert-final-inputs-self-contained diff --git a/po/doc/local.mk b/po/doc/local.mk index 3d3b4f67b1..6b934d945a 100644 --- a/po/doc/local.mk +++ b/po/doc/local.mk @@ -16,11 +16,14 @@ # You should have received a copy of the GNU General Public License # along with GNU Guix. If not, see . -EXTRA_DIST = \ - %D%/guix-manual.pot \ +DOC_PO_FILES= \ %D%/guix-manual.de.po \ %D%/guix-manual.fr.po +EXTRA_DIST = \ + %D%/guix-manual.pot \ + $(DOC_PO_FILES) + POT_OPTIONS = --package-name "guix" --package-version "$(VERSION)" \ --copyright-holder "Ludovic Courtès" \ --msgid-bugs-address "ludo@gnu.org" @@ -58,3 +61,8 @@ doc-pot-update: done msgcat $(addprefix $(srcdir)/po/doc/, $(TMP_POT_FILES)) > $(srcdir)/po/doc/guix-manual.pot rm -f $(addprefix $(srcdir)/po/doc/, $(TMP_POT_FILES)) + +doc-po-update: doc-pot-update + for f in $(DOC_PO_FILES); do \ + $(MAKE) "$$f"; \ + done -- cgit v1.2.3 From a52ae1b6620fcef28e668047a51a6b2a9fb89e35 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 28 Nov 2018 22:17:39 +0100 Subject: download: Make (guix base16) a soft dependency. Fixes . Reported by Mark H Weaver . * guix/download.scm (%content-addressed-mirrors): Autoload (guix base16). --- guix/download.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/guix/download.scm b/guix/download.scm index 0f92e12c08..7aebec44ac 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -373,7 +373,13 @@ ;; procedure that takes a file name, an algorithm (symbol) and a hash ;; (bytevector), and returns a URL or #f. '(begin - (use-modules (guix base32) (guix base16)) + (use-modules (guix base32)) + + ;; XXX: (guix base16) appeared in March 2017 (and thus 0.13.0) so old + ;; installations of the daemon might lack it. Thus, load it lazily to + ;; avoid gratuitous errors. See . + (module-autoload! (current-module) + '(guix base16) '(bytevector->base16-string)) (list (lambda (file algo hash) ;; Files served by 'guix publish' are accessible under a single -- cgit v1.2.3 From 13bcc6b45fb7564347a55d03fa11b9bd8a96436d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 28 Nov 2018 22:23:10 +0100 Subject: download: Add berlin.guixsd.org as a content-addressed mirror. * guix/download.scm (%content-addressed-mirrors)[guix-publish]: New procedure. Use it for "mirror.hydra.gnu.org" and add "berlin.guixsd.org" too. --- guix/download.scm | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/guix/download.scm b/guix/download.scm index 7aebec44ac..a7f51b1999 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -375,18 +375,22 @@ '(begin (use-modules (guix base32)) + (define (guix-publish host) + (lambda (file algo hash) + ;; Files served by 'guix publish' are accessible under a single + ;; hash algorithm. + (string-append "https://" host "/file/" + file "/" (symbol->string algo) "/" + (bytevector->nix-base32-string hash)))) + ;; XXX: (guix base16) appeared in March 2017 (and thus 0.13.0) so old ;; installations of the daemon might lack it. Thus, load it lazily to ;; avoid gratuitous errors. See . (module-autoload! (current-module) '(guix base16) '(bytevector->base16-string)) - (list (lambda (file algo hash) - ;; Files served by 'guix publish' are accessible under a single - ;; hash algorithm. - (string-append "https://mirror.hydra.gnu.org/file/" - file "/" (symbol->string algo) "/" - (bytevector->nix-base32-string hash))) + (list (guix-publish "mirror.hydra.gnu.org") + (guix-publish "berlin.guixsd.org") (lambda (file algo hash) ;; 'tarballs.nixos.org' supports several algorithms. (string-append "https://tarballs.nixos.org/" -- cgit v1.2.3 From 1fe1bb96f2d7cf32e056496661bb5bed20b48edc Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 28 Nov 2018 22:55:12 +0100 Subject: gnu: bigloo: Update to "4.3b2". Fixes . * gnu/packages/scheme.scm (bigloo): Update to "4.3b2". --- gnu/packages/scheme.scm | 182 +++++++++++++++++++++++++----------------------- 1 file changed, 93 insertions(+), 89 deletions(-) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index c03c53b91f..7267afd709 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -206,98 +206,102 @@ features an integrated Emacs-like editor and a large runtime library.") (properties '((ftp-directory . "/gnu/mit-scheme/stable.pkg"))))) (define-public bigloo - (package - (name "bigloo") - (version "4.3b") - (source (origin - (method url-fetch) - (uri (string-append "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo" - version ".tar.gz")) - (sha256 - (base32 - "1x7xdgsls277zlf6gcaxs2cj62xj6yvb0qxh0ddmxfamvxba0cf4")) - ;; Remove bundled libraries. - (modules '((guix build utils))) - (snippet - '(begin - (for-each delete-file-recursively - '("gc" "gmp" "libuv")) - #t)))) - (build-system gnu-build-system) - (arguments - `(#:test-target "test" - #:phases - (modify-phases %standard-phases - (replace 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Upstream modifies source tarballs in place, making significant changes + ;; long after the initial publication: . For + ;; transparency, we give this "second 4.3b" release a different version + ;; number. + (let ((upstream-version "4.3b")) + (package + (name "bigloo") + (version "4.3b2") + (source (origin + (method url-fetch) + (uri (string-append "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo" + upstream-version ".tar.gz")) + (sha256 + (base32 + "02s0wrz5b1p0yqk9x6kax1vwzil7g9cyxfvl3vmy7fzznsza9gs4")) + ;; Remove bundled libraries. + (modules '((guix build utils))) + (snippet + '(begin + (for-each delete-file-recursively + '("gc" "gmp" "libuv")) + #t)))) + (build-system gnu-build-system) + (arguments + `(#:test-target "test" + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) - (substitute* "configure" - (("^shell=.*$") - (string-append "shell=" (which "bash") "\n")) - (("`date`") "0")) - (substitute* "autoconf/runtest.in" - ((", @DATE@") "")) - (substitute* "autoconf/osversion" - (("^version.*$") "version=\"\"\n")) - (substitute* "comptime/Makefile" - (("\\$\\(LDCOMPLIBS\\)") - "$(LDCOMPLIBS) $(LDFLAGS)")) + (substitute* "configure" + (("^shell=.*$") + (string-append "shell=" (which "bash") "\n")) + (("`date`") "0")) + (substitute* "autoconf/runtest.in" + ((", @DATE@") "")) + (substitute* "autoconf/osversion" + (("^version.*$") "version=\"\"\n")) + (substitute* "comptime/Makefile" + (("\\$\\(LDCOMPLIBS\\)") + "$(LDCOMPLIBS) $(LDFLAGS)")) - ;; The `configure' script doesn't understand options - ;; of those of Autoconf. - (let ((out (assoc-ref outputs "out"))) - (invoke "./configure" - (string-append "--prefix=" out) - ; use system libraries - "--customgc=no" - "--customunistring=no" - "--customlibuv=no" - (string-append"--mv=" (which "mv")) - (string-append "--rm=" (which "rm")) - "--cflags=-fPIC" - (string-append "--ldflags=-Wl,-rpath=" - (assoc-ref outputs "out") - "/lib/bigloo/" ,version) - (string-append "--lispdir=" out - "/share/emacs/site-lisp") - "--sharedbde=yes" - "--sharedcompiler=yes" - "--disable-patch")))) - (add-after 'install 'install-emacs-modes - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (dir (string-append out "/share/emacs/site-lisp"))) - (invoke "make" "-C" "bmacs" "all" "install" - (string-append "EMACSBRAND=emacs25") - (string-append "EMACSDIR=" dir)))))))) - (inputs - `(("emacs" ,emacs) ;UDE needs the X version of Emacs - ("libgc" ,libgc) - ("libunistring" ,libunistring) - ("libuv" ,libuv) - ("openssl" ,openssl) - ("sqlite" ,sqlite) + ;; The `configure' script doesn't understand options + ;; of those of Autoconf. + (let ((out (assoc-ref outputs "out"))) + (invoke "./configure" + (string-append "--prefix=" out) + ; use system libraries + "--customgc=no" + "--customunistring=no" + "--customlibuv=no" + (string-append"--mv=" (which "mv")) + (string-append "--rm=" (which "rm")) + "--cflags=-fPIC" + (string-append "--ldflags=-Wl,-rpath=" + (assoc-ref outputs "out") + "/lib/bigloo/" ,upstream-version) + (string-append "--lispdir=" out + "/share/emacs/site-lisp") + "--sharedbde=yes" + "--sharedcompiler=yes" + "--disable-patch")))) + (add-after 'install 'install-emacs-modes + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (dir (string-append out "/share/emacs/site-lisp"))) + (invoke "make" "-C" "bmacs" "all" "install" + (string-append "EMACSBRAND=emacs25") + (string-append "EMACSDIR=" dir)))))))) + (inputs + `(("emacs" ,emacs) ;UDE needs the X version of Emacs + ("libgc" ,libgc) + ("libunistring" ,libunistring) + ("libuv" ,libuv) + ("openssl" ,openssl) + ("sqlite" ,sqlite) - ;; Optional APIs for which Bigloo has bindings. - ("avahi" ,avahi) - ("libphidget" ,libphidget) - ("pcre" ,pcre))) - (native-inputs - `(("pkg-config" ,pkg-config))) - (propagated-inputs - `(("gmp" ,gmp))) ; bigloo.h refers to gmp.h - (home-page "http://www-sop.inria.fr/indes/fp/Bigloo/") - (synopsis "Efficient Scheme compiler") - (description - "Bigloo is a Scheme implementation devoted to one goal: enabling -Scheme based programming style where C(++) is usually -required. Bigloo attempts to make Scheme practical by offering -features usually presented by traditional programming languages -but not offered by Scheme and functional programming. Bigloo -compiles Scheme modules. It delivers small and fast stand alone -binary executables. Bigloo enables full connections between -Scheme and C programs and between Scheme and Java programs.") - (license gpl2+))) + ;; Optional APIs for which Bigloo has bindings. + ("avahi" ,avahi) + ("libphidget" ,libphidget) + ("pcre" ,pcre))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (propagated-inputs + `(("gmp" ,gmp))) ; bigloo.h refers to gmp.h + (home-page "http://www-sop.inria.fr/indes/fp/Bigloo/") + (synopsis "Efficient Scheme compiler") + (description + "Bigloo is a Scheme implementation devoted to one goal: enabling Scheme +based programming style where C(++) is usually required. Bigloo attempts to +make Scheme practical by offering features usually presented by traditional +programming languages but not offered by Scheme and functional programming. +Bigloo compiles Scheme modules. It delivers small and fast stand alone binary +executables. Bigloo enables full connections between Scheme and C programs +and between Scheme and Java programs.") + (license gpl2+)))) (define-public hop (package -- cgit v1.2.3 From d09ce3f91b9f064d623aed03c0d5ab1f472df918 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 29 Nov 2018 09:30:00 +0100 Subject: docker: Hide scary-looking but harmless tar failure messages. * guix/docker.scm (build-docker-image): Wrap "tar --delete" invocation in 'with-error-to-port'. --- guix/docker.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/guix/docker.scm b/guix/docker.scm index c19a24d45c..c6e9c6fee5 100644 --- a/guix/docker.scm +++ b/guix/docker.scm @@ -209,8 +209,13 @@ SRFI-19 time-utc object, as the creation time in metadata." ;; the path "/a" into "/". The presence of "/" in the archive is ;; probably benign, but it is definitely safe to remove it, so let's ;; do that. This fails when "/" is not in the archive, so use system* - ;; instead of invoke to avoid an exception in that case. - (system* "tar" "--delete" "/" "-f" "layer.tar") + ;; instead of invoke to avoid an exception in that case, and redirect + ;; stderr to the bit bucket to avoid "Exiting with failure status" + ;; error messages. + (with-error-to-port (%make-void-port "w") + (lambda () + (system* "tar" "--delete" "/" "-f" "layer.tar"))) + (for-each delete-file-recursively (map (compose topmost-component symlink-source) symlinks)) -- cgit v1.2.3 From 5019ee6c2a53d2fafe84bef7bb6059c3622118b4 Mon Sep 17 00:00:00 2001 From: Jonathan Brielmaier Date: Wed, 28 Nov 2018 12:49:06 +0100 Subject: gnu: Add missing patch to local.mk. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This was forgotten in 082d9383d1475b772f104f1a6b363e4c80d91cf9. * gnu/local.mk (dist_patch_DATA): Add "ghc-haddock-library-unbundle.patch". Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/local.mk b/gnu/local.mk index 772002c9cf..ac3228dbb1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -731,6 +731,7 @@ dist_patch_DATA = \ %D%/packages/patches/geoclue-config.patch \ %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch \ %D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch \ + %D%/packages/patches/ghc-haddock-library-unbundle.patch \ %D%/packages/patches/ghostscript-CVE-2018-16509.patch \ %D%/packages/patches/ghostscript-bug-699708.patch \ %D%/packages/patches/ghostscript-no-header-id.patch \ -- cgit v1.2.3 From c94d2f4d9be3c652e48a29550ecef07cc0247d07 Mon Sep 17 00:00:00 2001 From: Tim Gesthuizen Date: Tue, 27 Nov 2018 17:56:33 +0100 Subject: gnu: Add emacs-company-irony. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-company-irony): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index fcabbe9143..ce6f3efbd2 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -2856,6 +2856,28 @@ described on the homepage.") (build-system cmake-build-system) (synopsis "Server for the Emacs @dfn{irony mode}"))) +(define-public emacs-company-irony + (package + (name "emacs-company-irony") + (version "1.1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Sarcasm/company-irony.git") + (commit (string-append "v" version)))) + (sha256 (base32 + "1qgyam2vyjw90kpxns5cd6bq3qiqjhzpwrlvmi18vyb69qcgqd8a")) + (file-name (git-file-name name version)))) + (build-system emacs-build-system) + (inputs + `(("emacs-irony-mode" ,emacs-irony-mode) + ("emacs-company" ,emacs-company))) + (synopsis "C++ completion backend for Company using irony-mode") + (description "This backend for company-mode allows for C++ code completion +with irony-mode using clang-tooling.") + (home-page "https://github.com/Sarcasm/company-irony") + (license license:gpl3+))) + (define-public emacs-company-quickhelp (package (name "emacs-company-quickhelp") -- cgit v1.2.3 From 0a059eaee8dd304e286580acf95e51eeda0b970a Mon Sep 17 00:00:00 2001 From: Robin Templeton Date: Tue, 27 Nov 2018 20:32:21 -0500 Subject: gnu: Add arcanist. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/phabricator.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. Signed-off-by: Ludovic Courtès --- gnu/local.mk | 1 + gnu/packages/phabricator.scm | 124 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 gnu/packages/phabricator.scm diff --git a/gnu/local.mk b/gnu/local.mk index ac3228dbb1..bb152cd108 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -348,6 +348,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/perl-check.scm \ %D%/packages/perl-web.scm \ %D%/packages/photo.scm \ + %D%/packages/phabricator.scm \ %D%/packages/php.scm \ %D%/packages/pkg-config.scm \ %D%/packages/plotutils.scm \ diff --git a/gnu/packages/phabricator.scm b/gnu/packages/phabricator.scm new file mode 100644 index 0000000000..6c94a13114 --- /dev/null +++ b/gnu/packages/phabricator.scm @@ -0,0 +1,124 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Robin Templeton +;;; +;;; 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 phabricator) + #:use-module (gnu packages php) + #:use-module (gnu packages version-control) + #:use-module (guix build-system gnu) + #:use-module (guix git-download) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages)) + +(define-public libphutil + (let ((commit "b29d76e1709ef018cc5edc7c03033fd9fdebc578") + (revision "1")) + (package + (name "libphutil") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/phacility/libphutil.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "06j84721r9r8624fmil62b5crs2qs0v6rr3cvv2zvkvwhxwrwv1l")))) + (build-system gnu-build-system) + ;; TODO: Unbundle jsonlint and porter-stemmer. + (arguments + '(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda _ + (let ((lib (string-append %output "/lib/libphutil"))) + (mkdir-p lib) + (copy-recursively "." lib)) + #t))))) + (inputs + `(("php" ,php))) + (home-page "https://github.com/phacility/libphutil") + (synopsis "PHP utility library") + (description + "@code{libphutil} is a collection of utility classes and functions for +PHP.") + ;; Bundled libraries are expat-licensed. + (license (list license:asl2.0 license:expat))))) + +(define-public arcanist + (let ((commit "45a8d22c74a62624e69f5cd6ce901c9ab2658904") + (revision "1")) + (package + (name "arcanist") + (version (git-version "0.0.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/phacility/arcanist.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "13vswhqy9sap6841y93j4mj71dl27vhcivcn3rzyi0cchkhg2ac9")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda _ + (let ((bin (string-append %output "/bin")) + (lib (string-append %output "/lib/arcanist"))) + (mkdir-p lib) + (copy-recursively "." lib) + (mkdir-p bin) + (symlink (string-append lib "/bin/arc") + (string-append bin "/arc")) + (wrap-program (string-append bin "/arc") + `("ARC_PHUTIL_PATH" = + (,(string-append (assoc-ref %build-inputs "libphutil") + "/lib/libphutil"))) + `("PATH" ":" prefix + (,@(map (lambda (i) + (string-append (assoc-ref %build-inputs i) "/bin")) + '("git" "mercurial" "subversion")))))) + #t)) + (add-before 'reset-gzip-timestamps 'make-compressed-files-writable + (lambda _ + (for-each make-file-writable + (find-files %output ".*\\.t?gz$")) + #t))))) + (inputs + `(("php" ,php) + ("libphutil" ,libphutil) + ("git" ,git) + ("mercurial" ,mercurial) + ("subversion" ,subversion))) + (home-page "https://github.com/phacility/arcanist") + (synopsis "Command-line interface for Phabricator") + (description + "Arcanist is the command-line tool for the Phabricator software +development service. It allows you to interact with Phabricator installs to +send code for review, download patches, transfer files, view status, make API +calls, and various other things.") + (license license:asl2.0)))) -- cgit v1.2.3 From 1e20c25ec5273680f92beafd6e996def99193765 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 29 Nov 2018 11:50:06 +0200 Subject: gnu: kodi: Update to 18.0rc1. * gnu/packages/kodi.scm (kodi): Update to 18.0rc1. --- gnu/packages/kodi.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm index fe7f93fa53..822fceb46a 100644 --- a/gnu/packages/kodi.scm +++ b/gnu/packages/kodi.scm @@ -268,7 +268,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.") (define-public kodi (package (name "kodi") - (version "18.0b5") + (version "18.0rc1") (source (origin (method git-fetch) (uri (git-reference @@ -277,7 +277,7 @@ alternatives. In compilers, this can reduce the cascade of secondary errors.") (file-name (git-file-name name version)) (sha256 (base32 - "042qzvhys3sajby6ywgmrsymhji37qk0iqgppznrvm53vrizwsam")) + "0xzzp4x8l0ywx8aq93a1323il6wwslmgdbhasv0r8zp3w1c0wqf1")) (snippet '(begin (use-modules (guix build utils)) -- cgit v1.2.3 From 76d520facb54f4f86977683fd21bf1d4ac5ba45d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 29 Nov 2018 11:54:57 +0200 Subject: gnu: sbcl: bootstrap with clisp on non-Intel machines. * gnu/packages/lisp.scm (sbcl)[native-inputs]: If the current system is not x86_64-linux or i686-linux, use clisp in place of ccl. [arguments]: In the custom build phase, use the correct bootstrap lisp. --- gnu/packages/lisp.scm | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 87ba39b986..90b57efe74 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -333,7 +333,6 @@ an interpreter, a compiler, a debugger, and much more.") #t)))) (build-system gnu-build-system) (outputs '("out" "doc")) - ;; Bootstrap with CLISP. (native-inputs ;; From INSTALL: ;; Supported build hosts are: @@ -343,15 +342,20 @@ an interpreter, a compiler, a debugger, and much more.") ;; ABCL (recent versions only) ;; CLISP (only some versions: 2.44.1 is OK, 2.47 is not) ;; XCL - ;; CCL seems ideal then. - `(("ccl" ,ccl) + ;; CCL seems ideal then, but it unfortunately only builds reliably + ;; on some architectures. + `(,@(match (%current-system) + ((or "x86_64-linux" "i686-linux") + `(("ccl" ,ccl))) + (_ + `(("clisp" ,clisp)))) ("which" ,which) ("inetutils" ,inetutils) ;for hostname(1) ("ed" ,ed) ("texlive" ,(texlive-union (list texlive-tex-texinfo))) ("texinfo" ,texinfo))) (arguments - '(#:modules ((guix build gnu-build-system) + `(#:modules ((guix build gnu-build-system) (guix build utils) (srfi srfi-1)) #:phases @@ -410,7 +414,11 @@ an interpreter, a compiler, a debugger, and much more.") (replace 'build (lambda* (#:key outputs #:allow-other-keys) (setenv "CC" "gcc") - (invoke "sh" "make.sh" "ccl" + (invoke "sh" "make.sh" ,@(match (%current-system) + ((or "x86_64-linux" "i686-linux") + `("ccl")) + (_ + `("clisp"))) (string-append "--prefix=" (assoc-ref outputs "out"))))) (replace 'install -- cgit v1.2.3 From b868389357fcfed9f5daba0871a152d808cd837f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 27 Nov 2018 13:51:21 +0100 Subject: gnu: libabigail: Update to 1.5. * gnu/packages/elf.scm (libabigail): Update to 1.5. --- gnu/packages/elf.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/elf.scm b/gnu/packages/elf.scm index d8d7546e3c..2ad868ddc7 100644 --- a/gnu/packages/elf.scm +++ b/gnu/packages/elf.scm @@ -95,14 +95,14 @@ Executable and Linkable Format (@dfn{ELF}). This includes @command{ld}, (package (name "libabigail") (home-page "https://sourceware.org/libabigail/") - (version "1.4") + (version "1.5") (source (origin (method url-fetch) (uri (string-append "https://sourceware.org/pub/" name "/" name "-" version ".tar.gz")) (sha256 (base32 - "17r8i60lxykvdd9pdidmnvkzgf9k8zman0c1czl3zbx0znhlx497")))) + "0srfnkbm386sl2n85686nl28da6ksbs7jgnfks9k0n61c772aas4")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-static" -- cgit v1.2.3 From 7af6e5daa4ffb1bbda48a4e990815066f21bdadc Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 29 Nov 2018 15:44:41 +0100 Subject: gnu: vim: Update to 8.1.0551. * gnu/packages/vim.scm (vim): Update to 8.1.0551. [arguments]: Disable one more test. --- gnu/packages/vim.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm index c974ebc439..0ba2f4e7ef 100644 --- a/gnu/packages/vim.scm +++ b/gnu/packages/vim.scm @@ -61,7 +61,7 @@ (define-public vim (package (name "vim") - (version "8.1.0026") + (version "8.1.0551") (source (origin (method url-fetch) (uri (string-append "https://github.com/vim/vim/archive/v" @@ -69,7 +69,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "14q99dn113czp522j34p71za6g1mkriy04xxwcbm3axnrrpv1y52")))) + "1wi6j9w04wg3hxsch3izl2mxb0065vpvxscz19zjn5ypkfypnm8n")))) (build-system gnu-build-system) (arguments `(#:test-target "test" @@ -85,12 +85,18 @@ "src/testdir/test_terminal.vim") (("/bin/sh") (which "sh"))) #t)) - (add-before 'check 'patch-failing-test + (add-before 'check 'patch-failing-tests (lambda _ ;; XXX A single test fails with “Can't create file /dev/stdout” (at ;; Test_writefile_sync_dev_stdout line 5) while /dev/stdout exists. (substitute* "src/testdir/test_writefile.vim" (("/dev/stdout") "a-regular-file")) + + ;; XXX: This test fails when run in the build container: + ;; . + (substitute* "src/testdir/test_search.vim" + ((".*'Test_incsearch_substitute_03'.*" all) + (string-append "\"" all "\n"))) #t))))) (inputs `(("gawk" ,gawk) -- cgit v1.2.3