From b61cb24492c150b5eebb5227f2a7c32e4d42e1d4 Mon Sep 17 00:00:00 2001 From: "Jovany Leandro G.C" Date: Mon, 7 May 2018 17:35:23 -0500 Subject: telephony: add twinkle From 1a2504b36e0775443587faf43e3a2d9467769866 Mon Sep 17 00:00:00 2001 From: "Jovany Leandro G.C" Date: Mon, 7 May 2018 17:32:57 -0500 Subject: [PATCH] telephony: add twinkle Signed-off-by: Eric Bavier --- gnu/packages/telephony.scm | 68 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 5210e73ed4..40e57051e2 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2016, 2017 Nils Gillmann ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2018 Jovany Leandro G.C ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,6 +31,7 @@ #:use-module (gnu packages avahi) #:use-module (gnu packages boost) #:use-module (gnu packages check) + #:use-module (gnu packages file) #:use-module (gnu packages protobuf) #:use-module (gnu packages gnupg) #:use-module (gnu packages linux) @@ -42,9 +44,15 @@ #:use-module (gnu packages tls) #:use-module (gnu packages xiph) #:use-module (gnu packages xorg) + #:use-module (gnu packages xml) + #:use-module (gnu packages readline) + #:use-module (gnu packages bison) + #:use-module (gnu packages flex) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system cmake) #:use-module (guix build-system gnu)) (define-public commoncpp @@ -482,3 +490,63 @@ Mumble consists of two applications for separate usage: (license (list license:bsd-3 ;; The bundled celt is bsd-2. Remove after 1.3.0. license:bsd-2)))) + +(define-public twinkle + (let ((commit "02e1d1538af3337134bd7381dcd95f8d7775b30f") + (revision "1")) + (package + (name "twinkle") + (version (git-version "1.10.1" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/LubosD/twinkle") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ds4rp4vr1wagn4m4m7ldqbsx5vgmgbfcqqgyhn1wf6s1dm0020z")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; no test target + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-executable + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (wrap-program (string-append out "/bin/twinkle") + `("QT_PLUGIN_PATH" ":" prefix + ,(map (lambda (label) + (string-append (assoc-ref inputs label) + "/lib/qt5/plugins")) + '("qtbase" "qtdeclarative"))) + `("QML2_IMPORT_PATH" ":" prefix + ,(map (lambda (label) + (string-append (assoc-ref inputs label) + "/lib/qt5/qml")) + '("qtdeclarative" "qtquickcontrols")))) + #t)))))) + (native-inputs + `(("bison" ,bison) + ("flex" ,flex) + ("readline" ,readline) + ("file" ,file) + ("ucommon" ,ucommon) + ("ccrtp" ,ccrtp) + ("libxml2" ,libxml2) + ("speex" ,speex) + ("speexdsp" ,speexdsp) + ("libsndfile" ,libsndfile) + ("alsa-lib" ,alsa-lib) + ("qttools" ,qttools))) + (inputs + `(("qtbase" ,qtbase) + ("qtdeclarative" ,qtdeclarative) + ("qtquickcontrols" ,qtquickcontrols))) + (home-page "http://twinkle.dolezel.info/") + (synopsis "Softphone for voice over IP and instant messaging") + (description "Twinkle is a softphone for your voice over IP and instant +messaging communcations using the SIP protocol. You can use it for direct IP +phone to IP phone communication or in a network using a SIP proxy to route your +calls and messages") + (license license:gpl2+)))) -- cgit v1.2.3 From ede121de426f9c56820852888a0b370f0ccbce49 Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Sun, 8 Apr 2018 16:51:42 -0700 Subject: guix: Separate the package name and version with "@", not "-". * guix/packages.scm (package-full-name): By default, use "@" to separate the package name and package version. Add an optional delimiter argument so that there is still a way to explicitly use a different delimiter. * gnu/packages/commencement.scm (gcc-boot0) : Adjust accordingly. * tests/graph.scm: Adjust accordingly. * tests/profiles.scm: Adjust accordingly. * NEWS: Mention the change. Fixes: . Reported by Pierre Neidhardt . --- NEWS | 5 +++++ gnu/packages/commencement.scm | 2 +- guix/packages.go.134WZR | 0 guix/packages.scm | 13 +++++++++---- tests/graph.scm | 2 +- tests/profiles.scm | 11 +++++------ 6 files changed, 21 insertions(+), 12 deletions(-) create mode 100644 guix/packages.go.134WZR diff --git a/NEWS b/NEWS index 2c898e65f9..ca57f5d1fc 100644 --- a/NEWS +++ b/NEWS @@ -10,6 +10,11 @@ Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès Please send Guix bug reports to bug-guix@gnu.org. +* Changes in 0.15.0 (since 0.14.0) +** Programming interfaces + +*** package-full-name (guix packages) now uses "@" as its delimiter. + () * Changes in 0.14.0 (since 0.13.0) ** Package management diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 1026ee8929..2791409bf9 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -282,7 +282,7 @@ ;; Drop trailing letters, as gmp-6.0.0a unpacks ;; into gmp-6.0.0. `(symlink ,(string-trim-right - (package-full-name lib) + (package-full-name lib "-") char-set:letter) ,(package-name lib))) (list gmp-6.0 mpfr mpc)))) diff --git a/guix/packages.go.134WZR b/guix/packages.go.134WZR new file mode 100644 index 0000000000..e69de29bb2 diff --git a/guix/packages.scm b/guix/packages.scm index b5c0b60440..e0ab72086c 100644 --- a/guix/packages.scm +++ b/guix/packages.scm @@ -388,10 +388,11 @@ object." (define-condition-type &package-cross-build-system-error &package-error package-cross-build-system-error?) - -(define (package-full-name package) - "Return the full name of PACKAGE--i.e., `NAME-VERSION'." - (string-append (package-name package) "-" (package-version package))) +(define* (package-full-name package #:optional (delimiter "@")) + "Return the full name of PACKAGE--i.e., `NAME@VERSION'. By specifying +DELIMITER (a string), you can customize what will appear between the name and +the version. By default, DELIMITER is \"@\"." + (string-append (package-name package) delimiter (package-version package))) (define (%standard-patch-inputs) (let* ((canonical (module-ref (resolve-interface '(gnu packages base)) @@ -935,6 +936,10 @@ and return it." (($ name version source build-system args inputs propagated-inputs native-inputs self-native-input? outputs) + ;; Even though we prefer to use "@" to separate the package + ;; name from the package version in various user-facing parts + ;; of Guix, checkStoreName (in nix/libstore/store-api.cc) + ;; prohibits the use of "@", so use "-" instead. (or (make-bag build-system (string-append name "-" version) #:system system #:target target diff --git a/tests/graph.scm b/tests/graph.scm index 5faa19298a..b86ae4a32f 100644 --- a/tests/graph.scm +++ b/tests/graph.scm @@ -134,7 +134,7 @@ edges." (map (lambda (destination) (list "p-0.drv" (string-append - (package-full-name destination) + (package-full-name destination "-") ".drv"))) implicit))))))) diff --git a/tests/profiles.scm b/tests/profiles.scm index 92eb08cb9e..8d3cfe91d3 100644 --- a/tests/profiles.scm +++ b/tests/profiles.scm @@ -242,8 +242,8 @@ #:hooks '() #:locales? #t #:target target))) - (define (find-input name) - (let ((name (string-append name ".drv"))) + (define (find-input package) + (let ((name (string-append (package-full-name package "-") ".drv"))) (any (lambda (input) (let ((input (derivation-input-path input))) (and (string-suffix? name input) input))) @@ -252,12 +252,11 @@ ;; The inputs for grep and sed should be cross-build derivations, but that ;; for the glibc-utf8-locales should be a native build. (return (and (string=? (derivation-system drv) (%current-system)) - (string=? (find-input (package-full-name packages:grep)) + (string=? (find-input packages:grep) (derivation-file-name grep)) - (string=? (find-input (package-full-name packages:sed)) + (string=? (find-input packages:sed) (derivation-file-name sed)) - (string=? (find-input - (package-full-name packages:glibc-utf8-locales)) + (string=? (find-input packages:glibc-utf8-locales) (derivation-file-name locales)))))) (test-assert "package->manifest-entry defaults to \"out\"" -- cgit v1.2.3 From 27ba9760e04019cc3ed3457199194088f4b45486 Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Wed, 9 May 2018 00:00:04 -0700 Subject: guix: Revert accidentally committed changes. * guix/packages.go.134WZR: Remove it. This empty file was unintentionally included in ede121de426f9c56820852888a0b370f0ccbce49. --- guix/packages.go.134WZR | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 guix/packages.go.134WZR diff --git a/guix/packages.go.134WZR b/guix/packages.go.134WZR deleted file mode 100644 index e69de29bb2..0000000000 -- cgit v1.2.3 From fdc9170bc1d9a57aa9a542c307b15b5b965d2f4b Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Tue, 13 Mar 2018 20:31:01 +0100 Subject: gnu: Add java-groovy-bootstrap. * gnu/packages/groovy.scm: New file. * gnu/packages/patches/groovy-add-exceptionutilsgenerator.patch: New file. * gnu/local.mk (GNU_SYSTEM_MODULES, dist_patch_DATA): Add them. --- gnu/local.mk | 2 + gnu/packages/groovy.scm | 97 +++++++++++++++++++++ .../groovy-add-exceptionutilsgenerator.patch | 98 ++++++++++++++++++++++ 3 files changed, 197 insertions(+) create mode 100644 gnu/packages/groovy.scm create mode 100644 gnu/packages/patches/groovy-add-exceptionutilsgenerator.patch diff --git a/gnu/local.mk b/gnu/local.mk index 6d6663f8b8..cacc146e4a 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -202,6 +202,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/graphics.scm \ %D%/packages/graphviz.scm \ %D%/packages/groff.scm \ + %D%/packages/groovy.scm \ %D%/packages/gsasl.scm \ %D%/packages/gstreamer.scm \ %D%/packages/gtk.scm \ @@ -744,6 +745,7 @@ dist_patch_DATA = \ %D%/packages/patches/graphite2-ffloat-store.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \ %D%/packages/patches/groff-source-date-epoch.patch \ + %D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \ %D%/packages/patches/gsl-test-i686.patch \ %D%/packages/patches/gspell-dash-test.patch \ %D%/packages/patches/guile-1.8-cpp-4.5.patch \ diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm new file mode 100644 index 0000000000..d7409f4481 --- /dev/null +++ b/gnu/packages/groovy.scm @@ -0,0 +1,97 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Julien Lepiller +;;; +;;; 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 groovy) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system ant) + #:use-module (gnu packages) + #:use-module (gnu packages java) + #:use-module (gnu packages xml)) + +(define java-groovy-bootstrap + (package + (name "groovy-java-bootstrap") + (version "2.4.15") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/apache/groovy/archive/GROOVY_" + (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version) + ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "19f3yd2z6jmz1xhwi5kkg1wmgbqkfs7qvd3rzb43xr3nffz8cisv")) + (patches + (search-patches + "groovy-add-exceptionutilsgenerator.patch")))) + (build-system ant-build-system) + (arguments + `(#:jar-name "groovy.jar" + #:source-dir "src/main:subprojects/groovy-test/src/main/java" + #:test-dir "src/test" + #:tests? #f + #:jdk ,icedtea-8 + #:main-class "groovy.ui.GroovyMain" + #:phases + (modify-phases %standard-phases + (add-before 'build 'fix-java8 + ;; Fix "Reference to plus is ambiguous" + (lambda _ + (substitute* "src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java" + (("toList\\(left\\)") + "(List)toList(left)")) + #t)) + (add-before 'build 'generate-parsers + (lambda _ + (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java" + (invoke "antlr" "java.g")) + (with-directory-excursion "src/main/org/codehaus/groovy/antlr" + (mkdir "parser") + (with-directory-excursion "parser" + (invoke "antlr" "../groovy.g"))) + #t)) + (add-before 'build 'generate-exception-utils + (lambda _ + (invoke "javac" "-cp" (getenv "CLASSPATH") + "config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java") + (invoke "java" "-cp" (string-append (getenv "CLASSPATH") + ":config/ant/src") + "org.codehaus.groovy.ExceptionUtilsGenerator" + "build/classes/org/codehaus/groovy/runtime/ExceptionUtils.class") + #t))))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("antlr2" ,antlr2) + ("java-jmock-1" ,java-jmock-1) + ("java-xmlunit-legacy" ,java-xmlunit-legacy))) + (inputs + `(("java-commons-cli" ,java-commons-cli) + ("java-asm" ,java-asm) + ("java-classpathx-servletapi" ,java-classpathx-servletapi) + ("java-xstream" ,java-xstream) + ("java-jansi" ,java-jansi) + ("java-jline-2" ,java-jline-2))) + (home-page "http://groovy-lang.org/") + (synopsis "Groovy's java bootstrap") + (description "This package contains the java bootstrap that is used to build +groovy submodules.") + (license license:asl2.0))) diff --git a/gnu/packages/patches/groovy-add-exceptionutilsgenerator.patch b/gnu/packages/patches/groovy-add-exceptionutilsgenerator.patch new file mode 100644 index 0000000000..df74bdbaba --- /dev/null +++ b/gnu/packages/patches/groovy-add-exceptionutilsgenerator.patch @@ -0,0 +1,98 @@ +From 3dbdc68093e90f0ef9b77b70490d8e0b1dcfbf8f Mon Sep 17 00:00:00 2001 +From: Julien Lepiller +Date: Sun, 17 Sep 2017 21:08:45 +0200 +Subject: [PATCH] Add ExceptionUtilsGenerator.java. + +A gradle task (in gradle/utils.gradle) is normally used to generate an +ExceptionUtils class. Since gradle depends on groovy, we cannot use it, so +we copy the code from the gradle task to a new file. Running this file then +generates the required class. +--- + .../codehaus/groovy/ExceptionUtilsGenerator.java | 75 ++++++++++++++++++++++ + 1 file changed, 75 insertions(+) + create mode 100644 config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java + +diff --git a/config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java b/config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java +new file mode 100644 +index 0000000..41f006d +--- /dev/null ++++ b/config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java +@@ -0,0 +1,75 @@ ++package org.codehaus.groovy; ++ ++import org.objectweb.asm.*; ++ ++import java.io.BufferedOutputStream; ++import java.io.File; ++import java.io.FileOutputStream; ++import java.io.IOException; ++import java.util.logging.Logger; ++ ++public class ExceptionUtilsGenerator implements Opcodes { ++ private final static Logger LOGGER = Logger.getLogger(ExceptionUtilsGenerator.class.getName()); ++ ++ public static void main(String... args) { ++ if (args==null || args.length==0) { ++ throw new IllegalArgumentException("You must specify at least one file"); ++ } ++ ++ ClassWriter cw = new ClassWriter(0); ++ MethodVisitor mv; ++ ++ cw.visit(V1_5, ACC_PUBLIC + ACC_SUPER, "org/codehaus/groovy/runtime/ExceptionUtils", null, "java/lang/Object", null); ++ ++ cw.visitSource("ExceptionUtils.java", null); ++ ++ mv = cw.visitMethod(ACC_PUBLIC, "", "()V", null, null); ++ mv.visitCode(); ++ Label l0 = new Label(); ++ mv.visitLabel(l0); ++ mv.visitLineNumber(18, l0); ++ mv.visitVarInsn(ALOAD, 0); ++ mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "", "()V"); ++ mv.visitInsn(RETURN); ++ Label l1 = new Label(); ++ mv.visitLabel(l1); ++ mv.visitLocalVariable("this", "Lorg/codehaus/groovy/runtime/ExceptionUtils;", null, l0, l1, 0); ++ mv.visitMaxs(1, 1); ++ mv.visitEnd(); ++ ++ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "sneakyThrow", "(Ljava/lang/Throwable;)V", null, null); ++ mv.visitCode(); ++ Label l2 = new Label(); ++ mv.visitLabel(l2); ++ mv.visitLineNumber(20, l2); ++ mv.visitVarInsn(ALOAD, 0); ++ mv.visitInsn(ATHROW); ++ Label l3 = new Label(); ++ mv.visitLabel(l3); ++ mv.visitLocalVariable("e", "Ljava/lang/Throwable;", null, l2, l3, 0); ++ mv.visitMaxs(1, 1); ++ mv.visitEnd(); ++ ++ cw.visitEnd(); ++ ++ LOGGER.info("Generating ExceptionUtils"); ++ byte[] bytes = cw.toByteArray(); ++ for (String classFilePath : args) { ++ File classFile = new File(classFilePath); ++ if (classFile.getParentFile().exists() || classFile.getParentFile().mkdirs()) { ++ try { ++ if (classFile.exists()) { ++ classFile.delete(); ++ } ++ BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(classFile)); ++ bos.write(bytes); ++ bos.close(); ++ } catch (IOException e) { ++ LOGGER.warning("Unable to write file "+classFile); ++ } ++ } else { ++ LOGGER.warning("Unable to create directory "+classFile.getParentFile()); ++ } ++ } ++ } ++} +-- +2.14.1 + -- cgit v1.2.3 From b0192c85fc3ef0c90514d469704ae599c444c7b5 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Tue, 13 Mar 2018 21:01:40 +0100 Subject: gnu: Add groovy-bootstrap. * gnu/packages/groovy.scm (groovy-bootstrap): New variable. --- gnu/packages/groovy.scm | 82 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 81 insertions(+), 1 deletion(-) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index d7409f4481..c298865cf4 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -28,7 +28,7 @@ (define java-groovy-bootstrap (package - (name "groovy-java-bootstrap") + (name "java-groovy-bootstrap") (version "2.4.15") (source (origin (method url-fetch) @@ -95,3 +95,83 @@ (description "This package contains the java bootstrap that is used to build groovy submodules.") (license license:asl2.0))) + +(define groovy-bootstrap + (package + (inherit java-groovy-bootstrap) + (name "groovy-bootstrap") + (arguments + `(#:jar-name "groovy.jar" + #:jdk ,icedtea-8 + ;Requires groovy-xml and logback-classic which are circular dependencies + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'build 'fix-java8 + ;; Fix "Reference to plus is ambiguous" + (lambda _ + (substitute* "src/main/org/codehaus/groovy/runtime/DefaultGroovyMethods.java" + (("toList\\(left\\)") + "(List)toList(left)")) + #t)) + (add-before 'build 'generate-parser + (lambda _ + (with-directory-excursion "src/main/org/codehaus/groovy/antlr/java" + (invoke "antlr" "java.g")) + (with-directory-excursion "src/main/org/codehaus/groovy/antlr" + (mkdir "parser") + (with-directory-excursion "parser" + (invoke "antlr" "../groovy.g"))) + #t)) + (add-before 'build 'generate-exception-utils + (lambda _ + (invoke "javac" "-cp" (getenv "CLASSPATH") + "config/ant/src/org/codehaus/groovy/ExceptionUtilsGenerator.java") + (invoke "java" "-cp" (string-append (getenv "CLASSPATH") + ":config/ant/src") + "org.codehaus.groovy.ExceptionUtilsGenerator" + "target/classes/org/codehaus/groovy/runtime/ExceptionUtils.class") + #t)) + (add-before 'build 'generate-dgminfo + (lambda _ + (mkdir-p "target/classes/org/codehaus/groovy/runtime") + (mkdir-p "target/classes/META-INF") + (invoke "javac" "-cp" (getenv "CLASSPATH") + "src/main/org/codehaus/groovy/tools/DgmConverter.java") + (invoke "java" "-cp" (string-append (getenv "CLASSPATH") + ":src/main") + "org.codehaus.groovy.tools.DgmConverter") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (with-directory-excursion "src/main" + (for-each (lambda (file) + (mkdir-p (string-append "../../target/classes/" + (dirname file))) + (copy-file file + (string-append "../../target/classes/" + file))) + (find-files "." ".*.(txt|properties|xml|html)"))) + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "target/classes" + "-j"; joint compilation + (find-files "src/main" + ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy.jar" + "-C" "target/classes" ".") + #t))))) + (inputs + `(("java-apache-ivy" ,java-apache-ivy) + ,@(package-inputs java-groovy-bootstrap))) + (native-inputs + `(("java-groovy-bootstrap" ,java-groovy-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy compiler") + (description "This package contains the first version of the Groovy compiler. +Although already usable, it doesn't contain the groovy library yet. This package +is used to build the groovy submodules written in groovy."))) -- cgit v1.2.3 From a3f253a4a4a9576bec9fa8f0f05ff27c9bcebb24 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 13:31:06 +0100 Subject: gnu: Add groovy-tests-bootstrap. * gnu/packages/groovy.scm (groovy-tests-bootstrap): New variable. --- gnu/packages/groovy.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index c298865cf4..945bb34cbd 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -175,3 +175,38 @@ groovy submodules.") (description "This package contains the first version of the Groovy compiler. Although already usable, it doesn't contain the groovy library yet. This package is used to build the groovy submodules written in groovy."))) + +(define groovy-tests-bootstrap + (package + (inherit groovy-bootstrap) + (name "groovy-tests-bootstrap") + (arguments + `(#:jar-name "groovy-tests-bootstrap.jar" + #:jdk ,icedtea-8 + #:tests? #f; no tests + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" + "-j"; joint compilation + (append + (find-files "src/test" "TestSupport.java") + (find-files "src/test" "HeadlessTestSupport.java") + (find-files "src/test" "XmlAssert.java"))) + (invoke "jar" "-cf" "build/jar/groovy-tests-bootstrap.jar" + "-C" "build/classes" ".") + #t))))) + (inputs + `(("groovy-test" ,groovy-test) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy test classes") + (description "This package contains three classes required for testing +other groovy submodules."))) -- cgit v1.2.3 From 6f07785299265fc8e920ca59cdfe6637dd588281 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 13:40:28 +0100 Subject: gnu: Add groovy-test. * gnu/packages/groovy.scm (groovy-test): New variable. --- gnu/packages/groovy.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index 945bb34cbd..e4ee77b5c4 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -210,3 +210,46 @@ is used to build the groovy submodules written in groovy."))) (synopsis "Groovy test classes") (description "This package contains three classes required for testing other groovy submodules."))) + +(define groovy-test + (package + (inherit groovy-bootstrap) + (name "groovy-test") + (arguments + `(#:jar-name "groovy-test.jar" + #:jdk ,icedtea-8 + #:test-dir "subprojects/groovy-test/src/test" + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "subprojects/groovy-test/src/main" + ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-test.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (append (find-files "subprojects/groovy-test/src/test" + ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy test submodule") + (description "This package contains the test submodules used to test +other groovy submodules."))) -- cgit v1.2.3 From e0e4bae20b9bcd7fc4bb188526a8a8fc369f6cb3 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 14:25:16 +0100 Subject: gnu: Add groovy-xml. * gnu/packages/groovy.scm (groovy-xml): New variable. --- gnu/packages/groovy.scm | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index e4ee77b5c4..6d535f6a1c 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -253,3 +253,49 @@ other groovy submodules."))) (synopsis "Groovy test submodule") (description "This package contains the test submodules used to test other groovy submodules."))) + +(define groovy-xml + (package + (inherit groovy-bootstrap) + (name "groovy-xml") + (arguments + `(#:jar-name "groovy-xml.jar" + #:jdk ,icedtea-8 + #:test-dir "src/test" + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-xml") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-xml.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (append (find-files "src/test" ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy XML") + (description "This package contains XML-related utilities for groovy."))) -- cgit v1.2.3 From 19ff61f4a58ac18be27b319ed46c862493ad321f Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 14:27:48 +0100 Subject: gnu: Add groovy-templates. * gnu/packages/groovy.scm (groovy-templates): New variable. --- gnu/packages/groovy.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index 6d535f6a1c..520181c9c8 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -299,3 +299,39 @@ other groovy submodules."))) ,@(package-native-inputs java-groovy-bootstrap))) (synopsis "Groovy XML") (description "This package contains XML-related utilities for groovy."))) + +(define groovy-templates + (package + (inherit groovy-bootstrap) + (name "groovy-templates") + (arguments + `(#:jar-name "groovy-templates.jar" + #:jdk ,icedtea-8 + #:test-dir "subprojects/groovy-templates/src/test" + #:tests? #f;Requires spock-framework which is a circular dependency + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "subprojects/groovy-templates/src/main" + ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-templates.jar" + "-C" "build/classes" ".") + #t))))) + (inputs + `(("groovy-xml" ,groovy-xml) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy template engine") + (description "This package contains a template framework which is +well-suited to applications where the text to be generated follows the form of +a static template."))) -- cgit v1.2.3 From f14a1978111eec29934be3e375b46a739a8f48ee Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 14:26:02 +0100 Subject: gnu: Add groovy-groovydoc. * gnu/packages/groovy.scm (groovy-groovydoc): New variable. --- gnu/packages/groovy.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index 520181c9c8..dee187ec3e 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -335,3 +335,44 @@ other groovy submodules."))) (description "This package contains a template framework which is well-suited to applications where the text to be generated follows the form of a static template."))) + +(define groovy-groovydoc + (package + (inherit groovy-bootstrap) + (name "groovy-groovydoc") + (arguments + `(#:jar-name "groovy-groovydoc.jar" + #:jdk ,icedtea-8 + #:test-dir "subprojects/groovy-groovydoc/src/test" + #:tests? #f; Requires groovy-ant which is a circular dependency + #:phases + (modify-phases %standard-phases + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "subprojects/groovy-groovydoc/src/main/resources" + "build/classes") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" + "-j"; joint compilation + (find-files "subprojects/groovy-groovydoc/src/main" + ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-groovydoc.jar" + "-C" "build/classes" ".") + #t))))) + (inputs + `(("groovy-templates" ,groovy-templates) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy documentation generation") + (description "This package contains the groovy documentation generator, +similar to javadoc."))) -- cgit v1.2.3 From b869c5ceaa450184fd59722ef3e369922bced528 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 14:30:22 +0100 Subject: gnu: Add groovy-ant. * gnu/packages/groovy.scm (groovy-ant): New variable. --- gnu/packages/groovy.scm | 58 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index dee187ec3e..f6bf80e654 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -376,3 +376,61 @@ a static template."))) (synopsis "Groovy documentation generation") (description "This package contains the groovy documentation generator, similar to javadoc."))) + +(define groovy-ant + (package + (inherit groovy-bootstrap) + (name "groovy-ant") + (arguments + `(#:jar-name "groovy-ant.jar" + #:jdk ,icedtea-8 + #:test-dir "src/test" + ;; FIXME: Excluding all tests because they fail + #:test-exclude (list + "**/GroovyTest.java" + "**/GroovycTest.java") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-ant") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "src/main/resources" "build/classes") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-ant.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (find-files "src/test" ".*\\.(groovy|java)$")) + (invoke "ant" "check") + #t))))) + (inputs + `(("groovy-groovydoc" ,groovy-groovydoc) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-xml" ,groovy-xml) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy ant tasks") + (description "This package contains groovy-related ant tasks definitions."))) -- cgit v1.2.3 From 5b46d3f61d00e1dc7ee2326b96ab47c76305e98a Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 14:31:22 +0100 Subject: gnu: Add groovy-bsf. * gnu/packages/groovy.scm (groovy-bsf): New variable. --- gnu/packages/groovy.scm | 57 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index f6bf80e654..342a6535e6 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -434,3 +434,60 @@ similar to javadoc."))) ,@(package-native-inputs java-groovy-bootstrap))) (synopsis "Groovy ant tasks") (description "This package contains groovy-related ant tasks definitions."))) + +(define groovy-bsf + (package + (inherit groovy-bootstrap) + (name "groovy-bsf") + (arguments + `(#:jar-name "groovy-bsf.jar" + #:jdk ,icedtea-8 + #:test-dir "src/test" + #:test-exclude (list +;; exception from Groovy: org.codehaus.groovy.runtime.InvokerInvocationException: +;; groovy.lang.MissingMethodException: No signature of method: +;; java.util.ArrayList.each() is applicable for argument types: +;; (groovy.script.MapFromList$_doit_closure1) values: +;; [groovy.script.MapFromList$_doit_closure1@17e554d5] + "**/BSFTest.java") + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-bsf") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-bsf.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (find-files "src/test" ".*\\.(groovy|java)$")) + (invoke "ant" "check") + #t))))) + (inputs + `(("java-commons-bsf" ,java-commons-bsf) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ("java-commons-logging-minimal" ,java-commons-logging-minimal) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy BSF engine") + (description "This package defines the BSF engine for using Groovy inside +any @dfn{Bean Scripting Framework} (BSF) application."))) -- cgit v1.2.3 From b221e8e2a7d8b4b1edcf8452779aed26f8f123fa Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 14:32:03 +0100 Subject: gnu: Add groovy-swing. * gnu/packages/groovy.scm (groovy-swing): New variable. --- gnu/packages/groovy.scm | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index 342a6535e6..1d75322470 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -491,3 +491,54 @@ similar to javadoc."))) (synopsis "Groovy BSF engine") (description "This package defines the BSF engine for using Groovy inside any @dfn{Bean Scripting Framework} (BSF) application."))) + +(define groovy-swing + (package + (inherit groovy-bootstrap) + (name "groovy-swing") + (arguments + `(#:jar-name "groovy-swing.jar" + #:jdk ,icedtea-8 + ;; FIXME: tests are not run + #:test-dir "src/test" + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-swing") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-swing.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "src/test/groovy/groovy/util/GroovySwingTestCase.groovy" + (("HeadlessTestSupport.headless") "isHeadless()")) + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (find-files "src/test" ".*\\.(groovy|java)$")) + (invoke "ant" "check") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ("java-commons-logging-minimal" ,java-commons-logging-minimal) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy graphical library") + (description "This package contains the groovy bindings to Java Swing, a +library used to build graphical interfaces."))) -- cgit v1.2.3 From 136987cf162370c3d01f20711cca56845a28f510 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 14:32:42 +0100 Subject: gnu: Add groovy-console. * gnu/packages/groovy.scm (groovy-console): New variable. --- gnu/packages/groovy.scm | 61 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index 1d75322470..948e309558 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -542,3 +542,64 @@ any @dfn{Bean Scripting Framework} (BSF) application."))) (synopsis "Groovy graphical library") (description "This package contains the groovy bindings to Java Swing, a library used to build graphical interfaces."))) + +(define groovy-console + (package + (inherit groovy-bootstrap) + (name "groovy-console") + (arguments + `(#:jar-name "groovy-console.jar" + #:jdk ,icedtea-8 + ;; FIXME: tests are not run + #:test-dir "src/test" + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-console") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "src/main/resources" "build/classes") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-console.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (substitute* + "../groovy-swing/src/test/groovy/groovy/util/GroovySwingTestCase.groovy" + (("HeadlessTestSupport.headless") "isHeadless()")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (append + (find-files "../groovy-swing/src/test" ".*\\.(groovy|java)$") + (find-files "src/test" ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (inputs + `(("groovy-swing" ,groovy-swing) + ("groovy-templates" ,groovy-templates) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ("java-commons-logging-minimal" ,java-commons-logging-minimal) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy graphical interface") + (description "This package contains a graphical interface to run groovy."))) -- cgit v1.2.3 From a6494dcf8a128de6fad7a2429534bc373be60eab Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 14:33:42 +0100 Subject: gnu: Add groovy-docgenerator. * gnu/packages/groovy.scm (groovy-docgenerator): New variable. --- gnu/packages/groovy.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index 948e309558..54852c05bb 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -603,3 +603,46 @@ library used to build graphical interfaces."))) ,@(package-native-inputs java-groovy-bootstrap))) (synopsis "Groovy graphical interface") (description "This package contains a graphical interface to run groovy."))) + +(define groovy-docgenerator + (package + (inherit groovy-bootstrap) + (name "groovy-docgenerator") + (arguments + `(#:jar-name "groovy-docgenerator.jar" + #:jdk ,icedtea-8 + #:tests? #f; No tests + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-docgenerator") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "src/main/resources" "build/classes") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-docgenerator.jar" + "-C" "build/classes" ".") + #t))))) + (inputs + `(("groovy-templates" ,groovy-templates) + ("groovy-swing" ,groovy-swing) + ("java-qdox-1.12" ,java-qdox-1.12) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy documentation generation") + (description "This package contains a command line tool to generate +documentation for groovy applications."))) -- cgit v1.2.3 From dabce25015f74921b4144fcd5b032f89129f0988 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 14:34:23 +0100 Subject: gnu: Add groovy-groovysh. * gnu/packages/groovy.scm (groovy-groovysh): New variable. --- gnu/packages/groovy.scm | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index 54852c05bb..2fc25d955e 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -646,3 +646,57 @@ library used to build graphical interfaces."))) (synopsis "Groovy documentation generation") (description "This package contains a command line tool to generate documentation for groovy applications."))) + +(define groovy-groovysh + (package + (inherit groovy-bootstrap) + (name "groovy-groovysh") + (arguments + `(#:jar-name "groovy-groovysh.jar" + #:test-dir "src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-groovysh") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "src/main/resources" "build/classes") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-groovysh.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (append (find-files "src/test" ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (inputs + `(("groovy-xml" ,groovy-xml) + ("groovy-console" ,groovy-console) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy REPL") + (description "This package contains the Groovy REPL."))) -- cgit v1.2.3 From 0280865c95e0d62afb48fa9a8d3e176d6cc8f636 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 14:35:24 +0100 Subject: gnu: Add groovy-jmx. * gnu/packages/groovy.scm (groovy-jmx): New variable. --- gnu/packages/groovy.scm | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index 2fc25d955e..8fdb8df9b6 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -700,3 +700,50 @@ documentation for groovy applications."))) ,@(package-native-inputs java-groovy-bootstrap))) (synopsis "Groovy REPL") (description "This package contains the Groovy REPL."))) + +(define groovy-jmx + (package + (inherit groovy-bootstrap) + (name "groovy-jmx") + (arguments + `(#:jar-name "groovy-jmx.jar" + #:test-dir "src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-jmx") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-jmx.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (append (find-files "src/test" ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy JMX extension") + (description "This package contains the JMX extension of Groovy, for +management and monitoring of JVM-based solutions."))) -- cgit v1.2.3 From dae9335cf2395f08dc1338a1d41798db61ece7e8 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 14:36:06 +0100 Subject: gnu: Add groovy-json. * gnu/packages/groovy.scm (groovy-json): New variable. --- gnu/packages/groovy.scm | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index 8fdb8df9b6..69fe408d98 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -747,3 +747,49 @@ documentation for groovy applications."))) (synopsis "Groovy JMX extension") (description "This package contains the JMX extension of Groovy, for management and monitoring of JVM-based solutions."))) + +(define groovy-json + (package + (inherit groovy-bootstrap) + (name "groovy-json") + (arguments + `(#:jar-name "groovy-json.jar" + #:test-dir "src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-json") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-json.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (append (find-files "src/test" ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy JSON") + (description "This package contains JSON-related utilities for groovy."))) -- cgit v1.2.3 From 3537fb61fc8a27137bb38329867ef6fa845ecdd3 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 14:37:09 +0100 Subject: gnu: Add groovy-jsr223. * gnu/packages/groovy.scm (groovy-jsr223): New variable. --- gnu/packages/groovy.scm | 51 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index 69fe408d98..c74fa11c97 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -793,3 +793,54 @@ management and monitoring of JVM-based solutions."))) ,@(package-native-inputs java-groovy-bootstrap))) (synopsis "Groovy JSON") (description "This package contains JSON-related utilities for groovy."))) + +(define groovy-jsr223 + (package + (inherit groovy-bootstrap) + (name "groovy-jsr223") + (arguments + `(#:jar-name "groovy-jsr223.jar" + #:test-dir "src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-jsr223") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "src/main/resources" "build/classes") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-jsr223.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (append (find-files "src/test" ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy's own JSR223 implementation") + (description "This package contains Groovy's own JSR223 implementation. This +module is used for interaction between Groovy and Java code."))) -- cgit v1.2.3 From 4ab3b0c544765363d7435712261b0022598c163e Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 14:37:54 +0100 Subject: gnu: Add groovy-nio. * gnu/packages/groovy.scm (groovy-nio): New variable. --- gnu/packages/groovy.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index c74fa11c97..ecaa9429ee 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -844,3 +844,38 @@ management and monitoring of JVM-based solutions."))) (synopsis "Groovy's own JSR223 implementation") (description "This package contains Groovy's own JSR223 implementation. This module is used for interaction between Groovy and Java code."))) + +(define groovy-nio + (package + (inherit groovy-bootstrap) + (name "groovy-nio") + (arguments + `(#:jar-name "groovy-nio.jar" + #:test-dir "src/test" + #:jdk ,icedtea-8 + #:tests? #f; Requires spock-framework + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-nio") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-nio.jar" + "-C" "build/classes" ".") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy input-output library") + (description "This package implements an input/output library that extends +the functionality of the common library of Java."))) -- cgit v1.2.3 From 107ebf7b34e619de9f6b50996ede6c7c0e1159cb Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 14:38:50 +0100 Subject: gnu: Add groovy-servlet. * gnu/packages/groovy.scm (groovy-servlet): New variable. --- gnu/packages/groovy.scm | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index ecaa9429ee..3f7c78a998 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -879,3 +879,57 @@ module is used for interaction between Groovy and Java code."))) (synopsis "Groovy input-output library") (description "This package implements an input/output library that extends the functionality of the common library of Java."))) + +(define groovy-servlet + (package + (inherit groovy-bootstrap) + (name "groovy-servlet") + (arguments + `(#:jar-name "groovy-servlet.jar" + #:test-dir "src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-servlet") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" + "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-servlet.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" + "-j" + (append (find-files "src/test" ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (inputs + `(("groovy-templates" ,groovy-templates) + ("groovy-xml" ,groovy-xml) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-json" ,groovy-json) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy's servlet implementation") + (description "This package contains a library to create groovlets, Groovy's +version of Java servlets."))) -- cgit v1.2.3 From 2af51fd06774232922ce302e8617cf9573a96491 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 17:54:38 +0100 Subject: gnu: Add groovy-sql. * gnu/packages/groovy.scm (groovy-sql): New variable. --- gnu/packages/groovy.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index 3f7c78a998..4d67010f0d 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -933,3 +933,39 @@ the functionality of the common library of Java."))) (synopsis "Groovy's servlet implementation") (description "This package contains a library to create groovlets, Groovy's version of Java servlets."))) + +(define groovy-sql + (package + (inherit groovy-bootstrap) + (name "groovy-sql") + (arguments + `(#:jar-name "groovy-sql.jar" + #:test-dir "src/test" + #:tests? #f;TODO: Requires hsqldb + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-sql") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" + ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-sql.jar" + "-C" "build/classes" ".") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy SQL library") + (description "This package contains a facade over Java's normal JDBC APIs +providing greatly simplified resource management and result set handling."))) -- cgit v1.2.3 From dc51a0a8fd15c2a23495ea47ee06e0335f80f8a1 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 17:55:38 +0100 Subject: gnu: Add groovy-testng. * gnu/packages/groovy.scm (groovy-testng): New variable. --- gnu/packages/groovy.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index 4d67010f0d..fd63c422c6 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -969,3 +969,42 @@ version of Java servlets."))) (synopsis "Groovy SQL library") (description "This package contains a facade over Java's normal JDBC APIs providing greatly simplified resource management and result set handling."))) + +(define groovy-testng + (package + (inherit groovy-bootstrap) + (name "groovy-testng") + (arguments + `(#:jar-name "groovy-testng.jar" + #:tests? #f; No tests + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-testng") + #t)) + (add-before 'build 'copy-resources + (lambda _ + (copy-recursively "src/main/resources" "build/classes") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" + "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-testng.jar" + "-C" "build/classes" ".") + #t))))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy testing framework") + (description "This package contains integration code for running TestNG +tests in Groovy."))) -- cgit v1.2.3 From 88da2d2fb88f31f9cadf0a63a3ec9a4b5e4b17ef Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 17:56:16 +0100 Subject: gnu: Add groovy-macro. * gnu/packages/groovy.scm (groovy-macro): New variable. --- gnu/packages/groovy.scm | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index fd63c422c6..59668c889f 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -1008,3 +1008,55 @@ providing greatly simplified resource management and result set handling."))) (synopsis "Groovy testing framework") (description "This package contains integration code for running TestNG tests in Groovy."))) + +(define groovy-macro + (package + (inherit groovy-bootstrap) + (name "groovy-macro") + (arguments + `(#:jar-name "groovy-macro.jar" + #:test-dir "src/test" + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "subprojects/groovy-macro") + #t)) + (replace 'build + (lambda _ + (mkdir-p "build/classes") + (mkdir-p "build/jar") + (apply invoke "java" "-cp" (getenv "CLASSPATH") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/classes" "-j"; joint compilation + (find-files "src/main" ".*\\.(groovy|java)$")) + (invoke "jar" "-cf" "build/jar/groovy-macro.jar" + "-C" "build/classes" ".") + #t)) + (replace 'check + (lambda _ + (mkdir-p "build/test-classes") + (substitute* "build.xml" + (("depends=\"compile-tests\"") "depends=\"\"") + (("}/java") "}/groovy")) + (apply invoke "java" "-cp" + (string-append (getenv "CLASSPATH") ":build/classes") + "org.codehaus.groovy.tools.FileSystemCompiler" + "-d" "build/test-classes" "-j" + (append (find-files "src/test" ".*\\.(groovy|java)$"))) + (invoke "ant" "check") + #t))))) + (inputs + `(("groovy-templates" ,groovy-templates) + ("groovy-xml" ,groovy-xml) + ,@(package-inputs groovy-bootstrap))) + (native-inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-json" ,groovy-json) + ("groovy-test" ,groovy-test) + ("groovy-tests-bootstrap" ,groovy-tests-bootstrap) + ,@(package-native-inputs java-groovy-bootstrap))) + (synopsis "Groovy macro processor") + (description "This package contains a high-level library to create macro +and modify groovy's @dfn{Abstract Syntax Tree} (AST)."))) -- cgit v1.2.3 From 22103f16f213e5938a07c11e16059715a0a66dd0 Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 16 Mar 2018 17:56:45 +0100 Subject: gnu: Add groovy. * gnu/packages/groovy.scm (groovy): New variable. --- gnu/packages/groovy.scm | 94 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/gnu/packages/groovy.scm b/gnu/packages/groovy.scm index 59668c889f..512f9c9edb 100644 --- a/gnu/packages/groovy.scm +++ b/gnu/packages/groovy.scm @@ -1060,3 +1060,97 @@ tests in Groovy."))) (synopsis "Groovy macro processor") (description "This package contains a high-level library to create macro and modify groovy's @dfn{Abstract Syntax Tree} (AST)."))) + +(define-public groovy + (package + (inherit groovy-bootstrap) + (name "groovy") + (arguments + `(#:tests? #f; No tests + #:jdk ,icedtea-8 + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs inputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-bin (string-append out "/bin")) + (out-lib (string-append out "/lib"))) + (with-directory-excursion "src/bin" + (substitute* "startGroovy" + (("\"\\\\\"") "\"") + (("\\\\\"\"") "\"") + (("\\\\\\$") "$") + (("@GROOVYJAR@") "groovy.jar") + (("MAX_FD=\"maximum\"") + (string-append + "MAX_FD=\"maximum\"\nJAVAHOME=" + (assoc-ref inputs "jdk")))) + ;; Groovy uses class loading. It's not enough to put the class + ;; in the loader's classpath, as it causes breakages: + ;; the compiler would give this error: + ;; "Prohibited package name: java.lang" + ;; So we symlink dependencies in this package's output. The + ;; starter class (in groovy-bootstrap) is where the class loader + ;; will look for dependencies, so we put it there too. + (mkdir-p out-lib) + (for-each + (lambda (input) + (for-each + (lambda (jar) + (symlink jar (string-append out-lib "/" (basename jar)))) + (find-files (assoc-ref inputs input) ".*.jar"))) + '("groovy-bootstrap" "groovy-ant" "groovy-bsf" + "groovy-console" "groovy-docgenerator" + "groovy-groovydoc" "groovy-groovysh" + "groovy-jmx" "groovy-json" "groovy-jsr223" + "groovy-nio" "groovy-servlet" "groovy-sql" + "groovy-swing" "groovy-templates" "groovy-testng" + "java-commons-cli" "java-asm" + "java-classpathx-servletapi" "java-xstream" + "java-jansi" "java-jline-2")) + ;; antlr.jar is present twice in antlr2. Symlink doesn't like + ;; it, so we symlink it here. + (symlink (string-append (assoc-ref inputs "antlr2") "/lib/antlr.jar") + (string-append out-lib "/antlr.jar")) + (for-each + (lambda (tool) + (install-file tool out-bin) + (chmod (string-append out-bin "/" tool) #o755)) + '("grape" "groovy" "groovyc" "groovyConsole" "groovydoc" + "groovysh" "java2groovy" "startGroovy"))) + (install-file "src/conf/groovy-starter.conf" + (string-append out "/conf")) + #t)))))) + (inputs + `(("groovy-bootstrap" ,groovy-bootstrap) + ("groovy-ant" ,groovy-ant) + ("groovy-bsf" ,groovy-bsf) + ("groovy-console" ,groovy-console) + ("groovy-docgenerator" ,groovy-docgenerator) + ("groovy-groovydoc" ,groovy-groovydoc) + ("groovy-groovysh" ,groovy-groovysh) + ("groovy-jmx" ,groovy-jmx) + ("groovy-json" ,groovy-json) + ("groovy-jsr223" ,groovy-jsr223) + ("groovy-nio" ,groovy-nio) + ("groovy-servlet" ,groovy-servlet) + ("groovy-sql" ,groovy-sql) + ("groovy-swing" ,groovy-swing) + ("groovy-templates" ,groovy-templates) + ("groovy-testng" ,groovy-testng) + ("java-commons-cli" ,java-commons-cli) + ("java-asm" ,java-asm) + ("java-classpathx-servletapi" ,java-classpathx-servletapi) + ("java-xstream" ,java-xstream) + ("java-jansi" ,java-jansi) + ("java-jline-2" ,java-jline-2) + ("antlr2" ,antlr2))) + (synopsis "Programming language for the JVM") + (description "Apache Groovy is a powerful, optionally typed and dynamic +language, with static-typing and static compilation capabilities, for the Java +platform. It integrates smoothly with any Java program, and immediately +delivers to your application powerful features, including scripting +capabilities, Domain-Specific Language authoring, runtime and compile-time +meta-programming and functional programming."))) -- cgit v1.2.3 From f895a7a4d41a37871b044e48984d460bc896db68 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 9 May 2018 18:35:43 +0200 Subject: gnu: trim-galore: Update to 0.4.5. * gnu/packages/bioinformatics.scm (trim-galore): Update to 0.4.5. [source]: Fetch from git. [arguments]: Remove custom unpack phase. --- gnu/packages/bioinformatics.scm | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 98149f2674..bba7056db2 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -11141,25 +11141,22 @@ with narrow binding events such as transcription factor ChIP-seq.") (define-public trim-galore (package (name "trim-galore") - (version "0.4.2") + (version "0.4.5") (source (origin - (method url-fetch) - (uri (string-append "http://www.bioinformatics.babraham.ac.uk/" - "projects/trim_galore/trim_galore_v" - version ".zip")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/FelixKrueger/TrimGalore.git") + (commit version))) + (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0b9qdxi4521gsrjvbhgky8g7kry9b5nx3byzaxkgxz7p4k8bn1mn")))) + "0x5892l48c816pf00wmnz5vq0zq6170d3xc8zrxncd4jcz7h1p71")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests #:phases (modify-phases %standard-phases - ;; The archive contains plain files. - (replace 'unpack - (lambda* (#:key source #:allow-other-keys) - (zero? (system* "unzip" source)))) (delete 'configure) (delete 'build) (add-after 'unpack 'hardcode-tool-references -- cgit v1.2.3 From 126c9e3ff798d06a8398337bb8c3bb09b3da3d35 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 9 May 2018 18:36:23 +0200 Subject: gnu: bismark: Update to 0.19.1. * gnu/packages/bioinformatics.scm (bismark): Update to 0.19.1. [source]: Fetch from git; remove non-free software in snippet. [arguments]: Update install phase. --- gnu/packages/bioinformatics.scm | 61 +++++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 23 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index bba7056db2..1996cfa3b3 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -11568,47 +11568,62 @@ Browser.") (define-public bismark (package (name "bismark") - (version "0.16.3") + (version "0.19.1") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/FelixKrueger/Bismark/" - "archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/FelixKrueger/Bismark.git") + (commit version))) + (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "1204i0pa02ll2jn5pnxypkclnskvv7a2nwh5nxhagmhxk9wfv9sq")))) + "0yb5l36slwg02fp4b1jdlplgljcsxgqfzvzihzdnphd87dghcc84")) + (snippet + '(begin + ;; highcharts.js is non-free software. The code is available under + ;; CC-BY-NC or proprietary licenses only. + (delete-file "bismark_sitrep/highcharts.js") + #t)))) (build-system perl-build-system) (arguments - `(#:tests? #f ; there are no tests + `(#:tests? #f ; there are no tests #:phases (modify-phases %standard-phases (delete 'configure) (delete 'build) (replace 'install (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") - "/bin")) - (docdir (string-append (assoc-ref outputs "out") - "/share/doc/bismark")) - (docs '("Bismark_User_Guide.pdf" - "RELEASE_NOTES.txt")) - (scripts '("bismark" - "bismark_genome_preparation" - "bismark_methylation_extractor" - "bismark2bedGraph" - "bismark2report" - "coverage2cytosine" - "deduplicate_bismark" - "bismark_sitrep.tpl" - "bam2nuc" - "bismark2summary"))) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (share (string-append out "/share/bismark")) + (docdir (string-append out "/share/doc/bismark")) + (docs '("Docs/Bismark_User_Guide.html")) + (scripts '("bismark" + "bismark_genome_preparation" + "bismark_methylation_extractor" + "bismark2bedGraph" + "bismark2report" + "coverage2cytosine" + "deduplicate_bismark" + "filter_non_conversion" + "bam2nuc" + "bismark2summary"))) + (mkdir-p share) (mkdir-p docdir) (mkdir-p bin) (for-each (lambda (file) (install-file file bin)) scripts) (for-each (lambda (file) (install-file file docdir)) docs) + (copy-recursively "Docs/Images" (string-append docdir "/Images")) + + (substitute* "bismark2report" + (("\\$RealBin/bismark_sitrep") + (string-append share "/bismark_sitrep"))) + (copy-recursively "bismark_sitrep" + (string-append share "/bismark_sitrep")) + ;; Fix references to gunzip (substitute* (map (lambda (file) (string-append bin "/" file)) -- cgit v1.2.3 From 72aa295e44d46f80a037bfdc68f831bee56efbab Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 26 Apr 2018 02:15:55 +0200 Subject: gnu: Add f2fs-tools@1.7.0. * gnu/packages/linux.scm (f2fs-tools-1.7): New variable. (f2fs-tools): Inherit from f2fs-tools-1.7. --- gnu/packages/linux.scm | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index ac28b2b453..7648b55764 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3264,10 +3264,10 @@ repair and easy administration.") from the btrfs-progs package. It is meant to be used in initrds.") (license (package-license btrfs-progs)))) -(define-public f2fs-tools +(define-public f2fs-tools-1.7 (package (name "f2fs-tools") - (version "1.8.0") + (version "1.7.0") (source (origin (method url-fetch) (uri (string-append @@ -3275,21 +3275,30 @@ from the btrfs-progs package. It is meant to be used in initrds.") "/f2fs-tools.git/snapshot/" name "-" version ".tar.gz")) (sha256 (base32 - "1bir9ladb58ijlcvrjrq1fb1xv5ys50zdjaq0yzliib0apsyrnyl")))) + "1m6bn1ibq0p53m0n97il91xqgjgn2pzlz74lb5bfzassx7159m1k")))) + (build-system gnu-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after 'unpack 'bootstrap (lambda _ - (zero? (system* "autoreconf" "-vif"))))))) + (zero? (system* "autoreconf" "-vif")))) + (add-after 'install 'install-headers + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-include (string-append out "/include"))) + (install-file "include/f2fs_fs.h" out-include) + (install-file "mkfs/f2fs_format_utils.h" out-include) + #t)))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("libtool" ,libtool) ("pkg-config" ,pkg-config))) (inputs - `(("libuuid" ,util-linux))) + `(("libuuid" ,util-linux) + ("libselinux" ,libselinux))) (home-page "https://f2fs.wiki.kernel.org/") (synopsis "Userland tools for f2fs") (description @@ -3300,6 +3309,22 @@ disks and SD cards. This package provides the userland utilities.") ;; GPL2/LGPL2.1, everything else is GPL2 only. See 'COPYING'. (license (list license:gpl2 license:lgpl2.1)))) +(define-public f2fs-tools + (package + (inherit f2fs-tools-1.7) + (name "f2fs-tools") + (version "1.8.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://git.kernel.org/cgit/linux/kernel/git/jaegeuk" + "/f2fs-tools.git/snapshot/" name "-" version ".tar.gz")) + (sha256 + (base32 + "1bir9ladb58ijlcvrjrq1fb1xv5ys50zdjaq0yzliib0apsyrnyl")))) + (inputs + `(("libuuid" ,util-linux))))) + (define-public freefall (package (name "freefall") -- cgit v1.2.3 From 74c0ee66bb742208a21603c92ba93f970909fac1 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 9 May 2018 19:14:21 +0200 Subject: gnu: Add android-make-stub. * gnu/packages/android.scm (android-make-stub): New variable. --- gnu/packages/android.scm | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 92de9736f1..285a285151 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -39,6 +39,42 @@ #:use-module (gnu packages tls) #:use-module (gnu packages linux)) +(define-public android-make-stub + (let ((commit "v0.1") + (revision "21")) + (package + (name "android-make-stub") + (version "0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/daym/android-make-stub.git") + (commit commit))) + (file-name (string-append "android-make-stub-" + version "-checkout")) + (sha256 + (base32 + "1ni4szpcx2clf3lpzrybabwk7bgvsl6ynng7xxfc49y4jkdkk4sh")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; None exist. + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (invoke "make" (string-append "prefix=" out) "install") + #t)))))) + (home-page "https://github.com/daym/android-make-stub") + (synopsis "Stubs for the @command{make} system of the Android platform") + (description "@code{android-make-stub} provides stubs for the +@command{make} system of the Android platform. This allows us to +use their packages mostly unmodified in our Android NDK build system.") + (license license:asl2.0)))) + ;; The Makefiles that we add are largely based on the Debian ;; packages. They are licensed under GPL-2 and have copyright: ;; 2012, Stefan Handschuh -- cgit v1.2.3 From 436515cdb8a2b0c8d8310c6f780b1a35bfb5e7da Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 26 Apr 2018 02:15:56 +0200 Subject: build: Add the Android NDK build-system. * guix/build-system/android-ndk.scm: New file. * guix/build/android-ndk-build-system.scm: New file. * Makefile.am: Add them. --- Makefile.am | 2 + guix/build-system/android-ndk.scm | 126 ++++++++++++++++++++++++++++++++ guix/build/android-ndk-build-system.scm | 86 ++++++++++++++++++++++ 3 files changed, 214 insertions(+) create mode 100644 guix/build-system/android-ndk.scm create mode 100644 guix/build/android-ndk-build-system.scm diff --git a/Makefile.am b/Makefile.am index 7ea9228881..2110371f7a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -96,6 +96,7 @@ MODULES = \ guix/workers.scm \ guix/zlib.scm \ guix/build-system.scm \ + guix/build-system/android-ndk.scm \ guix/build-system/ant.scm \ guix/build-system/cargo.scm \ guix/build-system/cmake.scm \ @@ -128,6 +129,7 @@ MODULES = \ guix/svn-download.scm \ guix/i18n.scm \ guix/ui.scm \ + guix/build/android-ndk-build-system.scm \ guix/build/ant-build-system.scm \ guix/build/download.scm \ guix/build/download-nar.scm \ diff --git a/guix/build-system/android-ndk.scm b/guix/build-system/android-ndk.scm new file mode 100644 index 0000000000..842d983a62 --- /dev/null +++ b/guix/build-system/android-ndk.scm @@ -0,0 +1,126 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Danny Milosavljevic +;;; +;;; 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 build-system android-ndk) + #:use-module (guix search-paths) + #:use-module (guix store) + #:use-module (guix utils) + #:use-module (guix derivations) + #:use-module (guix packages) + #:use-module (guix build-system) + #:use-module (guix build-system gnu) + #:use-module (ice-9 match) + #:use-module (srfi srfi-26) + #:export (android-ndk-build-system)) + +(define %android-ndk-build-system-modules + ;; Build-side modules imported by default. + `((guix build android-ndk-build-system) + (guix build syscalls) + ,@%gnu-build-system-modules)) + +(define* (android-ndk-build store name inputs + #:key + (tests? #t) + (test-target #f) + (phases '(@ (guix build android-ndk-build-system) + %standard-phases)) + (outputs '("out")) + (make-flags ''()) + (search-paths '()) + (system (%current-system)) + (guile #f) + (imported-modules %android-ndk-build-system-modules) + (modules '((guix build android-ndk-build-system) + (guix build utils)))) + "Build SOURCE using Android NDK, and with INPUTS." + (define builder + `(begin + (use-modules ,@modules) + (android-ndk-build #:name ,name + #:source ,(match (assoc-ref inputs "source") + (((? derivation? source)) + (derivation->output-path source)) + ((source) + source) + (source + source)) + #:system ,system + #:test-target ,test-target + #:tests? ,tests? + #:phases ,phases + #:make-flags (cons* "-f" + ,(string-append + (derivation->output-path + (car (assoc-ref inputs "android-make-stub"))) + "/share/android-make-stub/Makefile") + ,make-flags) + #:outputs %outputs + #:search-paths ',(map search-path-specification->sexp + search-paths) + #:inputs %build-inputs))) + + (define guile-for-build + (match guile + ((? package?) + (package-derivation store guile system #:graft? #f)) + (#f ; the default + (let* ((distro (resolve-interface '(gnu packages commencement))) + (guile (module-ref distro 'guile-final))) + (package-derivation store guile system #:graft? #f))))) + + (build-expression->derivation store name builder + #:inputs inputs + #:system system + #:modules imported-modules + #:outputs outputs + #:guile-for-build guile-for-build)) + +(define* (lower name + #:key source inputs native-inputs outputs system target + #:allow-other-keys + #:rest arguments) + "Return a bag for NAME." + + (define private-keywords + '(#:source #:target #:inputs #:native-inputs #:outputs)) + + (and (not target) ;; TODO: support cross-compilation + (bag + (name name) + (system system) + (target target) + (host-inputs `(,@(if source + `(("source" ,source)) + '()) + ,@inputs + + ;; Keep the standard inputs of 'gnu-build-system' + ,@(standard-packages))) + (build-inputs `(("android-make-stub" ,(module-ref (resolve-interface '(gnu packages android)) 'android-make-stub)) + ,@native-inputs)) + (outputs outputs) + (build android-ndk-build) + (arguments (strip-keyword-arguments private-keywords arguments))))) + +(define android-ndk-build-system + (build-system + (name 'android-ndk) + (description + "Android NDK build system, to build Android NDK packages") + (lower lower))) diff --git a/guix/build/android-ndk-build-system.scm b/guix/build/android-ndk-build-system.scm new file mode 100644 index 0000000000..b5d4b36d30 --- /dev/null +++ b/guix/build/android-ndk-build-system.scm @@ -0,0 +1,86 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2018 Danny Milosavljevic +;;; +;;; 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 build android-ndk-build-system) + #:use-module ((guix build gnu-build-system) #:prefix gnu:) + #:use-module (guix build syscalls) + #:use-module (guix build utils) + #:use-module (ice-9 popen) + #:use-module (ice-9 rdelim) + #:use-module (ice-9 ftw) + #:use-module (ice-9 format) + #:use-module (ice-9 match) + #:use-module (rnrs io ports) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-26) + #:export (%standard-phases + android-ndk-build)) + +;; Commentary: +;; +;; Builder-side code of the Android NDK build system. +;; +;; Code: + +(define* (configure #:key inputs outputs #:allow-other-keys) + (let ((library-directories (filter-map (match-lambda + ((name . path) + (if (eq? 'directory (stat:type (stat path))) + path + #f))) + inputs))) + (setenv "CC" "gcc") + (setenv "CXX" "g++") + (setenv "CPPFLAGS" + (string-join + (map (cut string-append "-I " <> "/include") library-directories) + " ")) + (setenv "LDFLAGS" + (string-append "-L . " + (string-join + (map (lambda (x) + (string-append "-L " x "/lib" " -Wl,-rpath=" x "/lib")) + library-directories) + " "))) + #t)) + +(define* (install #:key inputs outputs (make-flags '()) #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (apply invoke "make" "install" + (string-append "prefix=" out) + make-flags) + (if (file-exists? "include") + (copy-recursively "include" (string-append out "/include"))) + #t)) + +(define* (check #:key inputs outputs tests? (make-flags '()) #:allow-other-keys) + ;; TODO: Also handle root-level tests. + (when (and (file-exists? "tests") tests?) + (with-directory-excursion "tests" + (apply invoke "make" "check" make-flags)))) + +(define %standard-phases + (modify-phases gnu:%standard-phases + (replace 'configure configure) + (replace 'install install) + (replace 'check check))) + +(define* (android-ndk-build #:key inputs (phases %standard-phases) + #:allow-other-keys #:rest args) + "Build the given Android NDK package, applying all of PHASES in order." + (apply gnu:gnu-build #:inputs inputs #:phases phases args)) -- cgit v1.2.3 From 116c69d9fe4fcfc44d2b006d8c1754f7e872999b Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 26 Apr 2018 02:15:57 +0200 Subject: gnu: liblog: Use android-ndk-build-system. * gnu/packages/android.scm (liblog)[build-system]: Switch to android-ndk-build-system. [arguments]<#:phases>[create-Makefile]: Delete phase. --- gnu/packages/android.scm | 37 +++---------------------------------- 1 file changed, 3 insertions(+), 34 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 285a285151..7c131e7e83 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -27,6 +27,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system android-ndk) #:use-module (guix build-system python) #:use-module (guix build-system trivial) #:use-module ((guix licenses) #:prefix license:) @@ -101,46 +102,14 @@ use their packages mostly unmodified in our Android NDK build system.") (name "liblog") (version (android-platform-version)) (source (android-platform-system-core version)) - (build-system gnu-build-system) + (build-system android-ndk-build-system) (arguments `(#:tests? #f ; TODO. #:make-flags '("CC=gcc") #:phases (modify-phases %standard-phases (add-after 'unpack 'enter-source - (lambda _ (chdir "liblog") #t)) - (add-after 'enter-source 'create-Makefile - (lambda _ - ;; No useful makefile is shipped, so we create one. - (with-output-to-file "Makefile" - (lambda _ - (display - (string-append - "NAME = liblog\n" - "SOURCES = log_event_list.c log_event_write.c" - " logger_write.c config_write.c logger_name.c" - " logger_lock.c fake_log_device.c fake_writer.c" - " event_tag_map.c\n" - - "CFLAGS += -fvisibility=hidden -fPIC\n" - "CPPFLAGS += -I../include -DFAKE_LOG_DEVICE=1" - ;; Keep these two in sync with "liblog/Android.bp". - " -DLIBLOG_LOG_TAG=1005" - " -DSNET_EVENT_LOG_TAG=1397638484\n" - "LDFLAGS += -shared -Wl,-soname,$(NAME).so.0 -lpthread\n" - - "build: $(SOURCES)\n" - " $(CC) $^ -o $(NAME).so.0 $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)\n")) - #t)))) - (delete 'configure) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib"))) - (install-file "liblog.so.0" lib) - (with-directory-excursion lib - (symlink "liblog.so.0" "liblog.so")) - #t)))))) + (lambda _ (chdir "liblog") #t))))) (home-page "https://developer.android.com/") (synopsis "Logging library from the Android platform.") (description "@code{liblog} represents an interface to the volatile Android -- cgit v1.2.3 From 11cb109baeda4ef7d7038ade3503e2041ea25c13 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 26 Apr 2018 02:15:58 +0200 Subject: gnu: libbase: Use android-ndk-build-system. * gnu/packages/android.scm (libbase)[build-system]: Switch to android-ndk-build-system. [arguments]<#:phases>[create-Makefile]: Delete phase. [arguments]<#:make-flags]: Add CXXFLAGS. --- gnu/packages/android.scm | 35 +++-------------------------------- 1 file changed, 3 insertions(+), 32 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 7c131e7e83..09426058e4 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -127,43 +127,14 @@ in Main, System, Radio and Events sub-logs.") (patches (search-patches "libbase-use-own-logging.patch" "libbase-fix-includes.patch")))) - (build-system gnu-build-system) + (build-system android-ndk-build-system) (arguments `(#:tests? #f ; TODO. + #:make-flags '("CXXFLAGS=-std=gnu++11") #:phases (modify-phases %standard-phases (add-after 'unpack 'enter-source - (lambda _ (chdir "base") #t)) - (add-after 'enter-source 'create-Makefile - (lambda _ - ;; No useful makefile is shipped, so we create one. - (with-output-to-file "Makefile" - (lambda _ - (display - (string-append - "NAME = libbase\n" - "SOURCES = file.cpp logging.cpp parsenetaddress.cpp" - " stringprintf.cpp strings.cpp errors_unix.cpp\n" - - "CXXFLAGS += -std=gnu++11 -fPIC\n" - "CPPFLAGS += -Iinclude -I../include\n" - "LDFLAGS += -shared -Wl,-soname,$(NAME).so.0" - " -L.. -llog\n" - - "build: $(SOURCES)\n" - " $(CXX) $^ -o $(NAME).so.0 $(CXXFLAGS) $(CPPFLAGS)" - " $(LDFLAGS)\n")) - #t)))) - (delete 'configure) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib"))) - (install-file "libbase.so.0" lib) - (with-directory-excursion lib - (symlink "libbase.so.0" "libbase.so")) - (copy-recursively "include" out) - #t)))))) + (lambda _ (chdir "base") #t))))) (inputs `(("liblog" ,liblog))) (home-page "https://developer.android.com/") (synopsis "Android platform base library") -- cgit v1.2.3 From f6e75b0db28bf3ba0e402069b0fc173411d414af Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 26 Apr 2018 02:15:59 +0200 Subject: gnu: adb: Use android-ndk-build-system. * gnu/packages/android.scm (adb)[build-system]: Switch to android-ndk-build-system. [arguments]<#:tests?>: Disable. [arguments]<#:phases>[create-Makefile]: Delete phase. [arguments]<#:phases>[fix-clang]: Delete phase. [arguments]<#:phases>[fix-main]: Delete phase. [arguments]<#:phases>[make-libs-available]: New phase. [arguments]<#:phases>[install-headers]: New phase. [arguments]<#:make-flags]: Add CFLAGS, CXXFLAGS. [inputs]: Add liblog. [source]: Add patch "adb-add-libraries.patch". * gnu/packages/patches/adb-add-libraries.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/android.scm | 87 ++++++---------------------- gnu/packages/patches/adb-add-libraries.patch | 19 ++++++ 3 files changed, 39 insertions(+), 68 deletions(-) create mode 100644 gnu/packages/patches/adb-add-libraries.patch diff --git a/gnu/local.mk b/gnu/local.mk index cacc146e4a..0e1d686a6c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -553,6 +553,7 @@ dist_patch_DATA = \ %D%/packages/patches/abiword-black-drawing-with-gtk322.patch \ %D%/packages/patches/acl-fix-perl-regex.patch \ %D%/packages/patches/acl-hurd-path-max.patch \ + %D%/packages/patches/adb-add-libraries.patch \ %D%/packages/patches/aegis-constness-error.patch \ %D%/packages/patches/aegis-perl-tempdir1.patch \ %D%/packages/patches/aegis-perl-tempdir2.patch \ diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 09426058e4..085bf41aeb 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -201,82 +201,33 @@ various Android core host applications.") (inherit (android-platform-system-core version)) (patches (search-patches "libbase-use-own-logging.patch" - "libbase-fix-includes.patch")))) - (build-system gnu-build-system) + "libbase-fix-includes.patch" + "adb-add-libraries.patch")))) + (build-system android-ndk-build-system) (arguments - `(#:phases + `(#:tests? #f ; TODO. + #:make-flags + (list "CFLAGS=-Wno-error" + "CXXFLAGS=-fpermissive -Wno-error -std=gnu++14 -D_Nonnull= -D_Nullable= -I ." + (string-append "LDFLAGS=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib " + "-Wl,-rpath=" (assoc-ref %build-inputs "openssl") "/lib -L .")) + #:phases (modify-phases %standard-phases (add-after 'unpack 'enter-source (lambda _ (chdir "adb") #t)) - (add-before 'build 'fix-clang - (lambda _ - ;; adb_client.h contains _Nonnull and _Nullable attributes, that - ;; are not understood by gcc. - (substitute* "adb_client.h" - (("_Nonnull") "") - (("_Nullable") "")) - #t)) - (add-before 'build 'fix-main - (lambda _ - ;; main.cpp used to be adb_main.cpp in the current directory - ;; rather than in its own subdirectory, but it was not fixed. - ;; This leads to some header files not being found anymore. - (copy-file "client/main.cpp" "adb_main.cpp") + (add-after 'enter-source 'make-libs-available + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* "Android.mk" + (("libcrypto_static") "libcrypto")) #t)) - (add-after 'enter-source 'create-Makefile - (lambda* (#:key outputs #:allow-other-keys) - ;; No useful makefile is shipped, so we create one. - (with-output-to-file "Makefile" - (lambda _ - (display - (string-append - ;; Common for all components. - "CXXFLAGS += -std=gnu++14 -fpermissive\n" - "CPPFLAGS += -I../include -I../base/include -I. -DADB_HOST=1 " - "-DADB_REVISION='\"" ,version "\"' -fPIC\n" - "LDFLAGS += -lcrypto -lpthread -lbase -lcutils -L. -ladb\n" - - ;; Libadb specifics. - "LIBADB_SOURCES = adb.cpp adb_auth.cpp adb_io.cpp " - "adb_listeners.cpp adb_trace.cpp adb_utils.cpp fdevent.cpp " - "sockets.cpp transport.cpp transport_local.cpp transport_usb.cpp " - "get_my_path_linux.cpp sysdeps_unix.cpp usb_linux.cpp " - "adb_auth_host.cpp diagnose_usb.cpp services.cpp " - "shell_service_protocol.cpp bugreport.cpp line_printer.cpp\n" - - "LIBADB_LDFLAGS += -shared -Wl,-soname,libadb.so.0 " - "-lcrypto -lpthread -lbase\n" - - ;; Adb specifics. - "ADB_SOURCES = adb_main.cpp console.cpp commandline.cpp " - "adb_client.cpp file_sync_client.cpp\n" - "ADB_LDFLAGS += -Wl,-rpath=" (assoc-ref outputs "out") "/lib\n" - - "build: libadb $(ADB_SOURCES)\n" - " $(CXX) $(ADB_SOURCES) -o adb $(CXXFLAGS) $(CPPFLAGS) " - "$(ADB_LDFLAGS) $(LDFLAGS)\n" - - "libadb: $(LIBADB_SOURCES)\n" - " $(CXX) $^ -o libadb.so.0 $(CXXFLAGS) $(CPPFLAGS) " - "$(LIBADB_LDFLAGS)\n" - " ln -sv libadb.so.0 libadb.so\n")) - #t)))) - (delete 'configure) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib")) - (bin (string-append out "/bin"))) - (install-file "libadb.so.0" lib) - (install-file "adb" bin) - (with-directory-excursion lib - (symlink "libadb.so.0" "libadb.so")) - #t)))) - ;; Test suite must be run with attached devices - #:tests? #f)) + (add-after 'install 'install-headers + (lambda* (#:key inputs outputs #:allow-other-keys) + (install-file "diagnose_usb.h" (string-append (assoc-ref outputs "out") "/include")) + #t))))) (inputs `(("libbase" ,libbase) ("libcutils" ,libcutils) + ("liblog" ,liblog) ("openssl" ,openssl))) (home-page "https://developer.android.com/studio/command-line/adb.html") (synopsis "Android Debug Bridge") diff --git a/gnu/packages/patches/adb-add-libraries.patch b/gnu/packages/patches/adb-add-libraries.patch new file mode 100644 index 0000000000..06b3ec3764 --- /dev/null +++ b/gnu/packages/patches/adb-add-libraries.patch @@ -0,0 +1,19 @@ +--- a/adb/Android.mk 2018-04-25 23:23:29.527198350 +0200 ++++ b/adb/Android.mk 2018-04-25 23:24:25.558632573 +0200 +@@ -226,7 +226,7 @@ + LOCAL_SRC_FILES := test_track_devices.cpp + LOCAL_SANITIZE := $(adb_host_sanitize) + LOCAL_SHARED_LIBRARIES := libbase +-LOCAL_STATIC_LIBRARIES := libadb libcrypto_static libcutils ++LOCAL_STATIC_LIBRARIES := libadb libbase libcrypto_static libcutils + LOCAL_LDLIBS += -lrt -ldl -lpthread + include $(BUILD_HOST_EXECUTABLE) + endif +@@ -278,6 +278,7 @@ + LOCAL_SANITIZE := $(adb_host_sanitize) + LOCAL_STATIC_LIBRARIES := \ + libadb \ ++ libcutils \ + libbase \ + libcrypto_static \ + libdiagnose_usb \ -- cgit v1.2.3 From 3724d375778b11c6f857138198329e3b99984af5 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 26 Apr 2018 02:16:00 +0200 Subject: gnu: mkbootimg: Install "bootimg.h". * gnu/packages/android.scm (mkbootimg)[arguments]<#:phases>[install]: Install "bootimg.h". --- gnu/packages/android.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 085bf41aeb..53b0183f92 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -256,8 +256,10 @@ to a Unix shell that can run commands on the connected device or emulator.") (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) + (bin (string-append out "/bin")) + (include (string-append out "/include"))) (install-file "mkbootimg" bin) + (install-file "bootimg.h" include) #t)))))) (home-page "https://developer.android.com/studio/command-line/adb.html") (synopsis "Tool to create Android boot images") -- cgit v1.2.3 From ad23a3fbabb3cdc4ad19b524f517ad312768b92c Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 9 May 2018 19:25:32 +0200 Subject: doc: Document 'android-ndk-build-system'. * doc/guix.texi (Build Systems): Add 'android-ndk-build-system'. --- doc/guix.texi | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 4095bdb51b..8b9f8721ba 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3750,6 +3750,25 @@ that should be run during the @code{build} phase. By default the @end defvr +@defvr {Scheme Variable} android-ndk-build-system +@cindex Android distribution +@cindex Android NDK build system +This variable is exported by @code{(guix build-system android-ndk)}. It +implements a build procedure for Android NDK (native development kit) +packages using a Guix-specific build process. + +The build system assumes that packages install their public interface +(header) files to the subdirectory "include" of the "out" output and +their libraries to the subdirectory "lib" of the "out" output. + +It's also assumed that the union of all the dependencies of a package +has no conflicting files. + +For the time being, cross-compilation is not supported - so right now +the libraries and header files are assumed to be host tools. + +@end defvr + @defvr {Scheme Variable} asdf-build-system/source @defvrx {Scheme Variable} asdf-build-system/sbcl @defvrx {Scheme Variable} asdf-build-system/ecl -- cgit v1.2.3 From b98d4478187347d2c52ff5ff4c83fcb12346b505 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 26 Apr 2018 02:17:58 +0200 Subject: gnu: Patch Android system core at the origin. * gnu/packages/android.scm (android-platform-system-core): Add patches. (libbase): Remove patches. (adb): Remove patches. --- gnu/packages/android.scm | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 53b0183f92..ec32a5cfdf 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -95,7 +95,11 @@ use their packages mostly unmodified in our Android NDK build system.") version "-checkout")) (sha256 (base32 - "0xc2n7jxrf1iw9cc278pijdfjix2fkiig5ws27f6rwp40zg5mrgg")))) + "0xc2n7jxrf1iw9cc278pijdfjix2fkiig5ws27f6rwp40zg5mrgg")) + (patches + (search-patches "libbase-use-own-logging.patch" + "libbase-fix-includes.patch" + "adb-add-libraries.patch")))) (define liblog (package @@ -122,11 +126,7 @@ in Main, System, Radio and Events sub-logs.") (package (name "libbase") (version (android-platform-version)) - (source (origin - (inherit (android-platform-system-core version)) - (patches - (search-patches "libbase-use-own-logging.patch" - "libbase-fix-includes.patch")))) + (source (android-platform-system-core version)) (build-system android-ndk-build-system) (arguments `(#:tests? #f ; TODO. @@ -197,12 +197,7 @@ various Android core host applications.") (package (name "adb") (version (android-platform-version)) - (source (origin - (inherit (android-platform-system-core version)) - (patches - (search-patches "libbase-use-own-logging.patch" - "libbase-fix-includes.patch" - "adb-add-libraries.patch")))) + (source (android-platform-system-core version)) (build-system android-ndk-build-system) (arguments `(#:tests? #f ; TODO. -- cgit v1.2.3 From 16c2be0b42c68371802b12b9687d7d720751c64d Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 26 Apr 2018 02:23:29 +0200 Subject: gnu: Add android-libziparchive. * gnu/packages/android.scm (android-libziparchive): New variable. * gnu/packages/patches/libziparchive-add-includes.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/android.scm | 32 +++++++++++++++++++++- .../patches/libziparchive-add-includes.patch | 10 +++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/libziparchive-add-includes.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0e1d686a6c..5acc9fb136 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -805,6 +805,7 @@ dist_patch_DATA = \ %D%/packages/patches/jq-CVE-2015-8863.patch \ %D%/packages/patches/kdbusaddons-kinit-file-name.patch \ %D%/packages/patches/khmer-use-libraries.patch \ + %D%/packages/patches/libziparchive-add-includes.patch \ %D%/packages/patches/kiki-level-selection-crash.patch \ %D%/packages/patches/kiki-makefile.patch \ %D%/packages/patches/kiki-missing-includes.patch \ diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index ec32a5cfdf..ea225fa900 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -33,6 +33,7 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages check) + #:use-module (gnu packages compression) #:use-module (gnu packages gnupg) #:use-module (gnu packages python) #:use-module (gnu packages ssh) @@ -99,7 +100,8 @@ use their packages mostly unmodified in our Android NDK build system.") (patches (search-patches "libbase-use-own-logging.patch" "libbase-fix-includes.patch" - "adb-add-libraries.patch")))) + "adb-add-libraries.patch" + "libziparchive-add-includes.patch")))) (define liblog (package @@ -193,6 +195,34 @@ various Android core host applications.") various Android core host applications.") (license license:asl2.0))) +(define-public android-libziparchive + (package + (name "android-libziparchive") + (version (android-platform-version)) + (source (android-platform-system-core version)) + (build-system android-ndk-build-system) + (arguments + `(#:tests? #f ; TODO. + #:make-flags '("CFLAGS=-Wno-error" + "CXXFLAGS=-fpermissive -Wno-error -std=gnu++11") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-source + (lambda _ (chdir "libziparchive") #t)) + (add-after 'install 'install-headers + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (copy-recursively "../include/ziparchive" + (string-append out "/include/ziparchive")) + #t)))))) + (inputs + `(("zlib" ,zlib))) + (home-page "https://developer.android.com/") + (synopsis "Android platform ZIP library") + (description "@code{android-libziparchive} is a library in common use by the +various Android core host applications.") + (license license:asl2.0))) + (define-public adb (package (name "adb") diff --git a/gnu/packages/patches/libziparchive-add-includes.patch b/gnu/packages/patches/libziparchive-add-includes.patch new file mode 100644 index 0000000000..41137105a0 --- /dev/null +++ b/gnu/packages/patches/libziparchive-add-includes.patch @@ -0,0 +1,10 @@ +--- a/libziparchive/zip_writer.cc 2018-04-25 22:33:05.472674164 +0200 ++++ b/libziparchive/zip_writer.cc 2018-04-25 22:33:21.296519518 +0200 +@@ -22,6 +22,7 @@ + + #include + ++#include + #include + #include + #include -- cgit v1.2.3 From 092f88a6d7d0b3779aa9bcc99bf3c110ddfef862 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 26 Apr 2018 02:26:53 +0200 Subject: gnu: Add android-libsparse. * gnu/packages/android.scm (android-libsparse): New variable. --- gnu/packages/android.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index ea225fa900..e9c591d434 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -195,6 +195,28 @@ various Android core host applications.") various Android core host applications.") (license license:asl2.0))) +(define-public android-libsparse + (package + (name "android-libsparse") + (version (android-platform-version)) + (source (android-platform-system-core version)) + (build-system android-ndk-build-system) + (arguments + `(#:tests? #f ; TODO. + #:make-flags '("CFLAGS=-Wno-error" + "CXXFLAGS=-fpermissive -Wno-error") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-source + (lambda _ (chdir "libsparse") #t))))) + (inputs + `(("zlib" ,zlib))) + (home-page "https://developer.android.com/") + (synopsis "Android platform sparse library") + (description "@code{android-libsparse} is a library in common use by the +various Android core host applications.") + (license license:asl2.0))) + (define-public android-libziparchive (package (name "android-libziparchive") -- cgit v1.2.3 From 7b592cfb03dcf94be8d688bff8a67e1d5ab781b0 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 26 Apr 2018 02:35:41 +0200 Subject: gnu: Add android-safe-iop. * gnu/packages/android.scm (android-platform-external): New procedure. (android-safe-iop): New variable. --- gnu/packages/android.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index e9c591d434..7eb683c94d 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -103,6 +103,20 @@ use their packages mostly unmodified in our Android NDK build system.") "adb-add-libraries.patch" "libziparchive-add-includes.patch")))) +(define (android-platform-external version subdirectory checksum) + (origin + (method git-fetch) + (uri (git-reference + (url + (string-append "https://android.googlesource.com/platform/external/" + subdirectory)) + (commit (string-append "android-" version)))) + (file-name (string-append "android-platform-system-external-" subdirectory "-" + version "-checkout")) + (sha256 + (base32 + checksum)))) + (define liblog (package (name "liblog") @@ -314,6 +328,30 @@ to a Unix shell that can run commands on the connected device or emulator.") Images.") (license license:asl2.0))) +(define-public android-safe-iop + (package + (name "android-safe-iop") + (version (android-platform-version)) + (source (android-platform-external version "safe-iop" + "1nyyrs463advjhlq8xx1lm37m4g5afv7gy0csxrj7biwwl0v13qw")) + (build-system android-ndk-build-system) + (arguments + `(#:make-flags '("CXXFLAGS=-fpermissive -Wno-error") + #:phases + (modify-phases %standard-phases + (add-before 'build 'patch-host + (lambda _ + ;; TODO: Cross-compile. + (substitute* "Android.mk" + (("BUILD_STATIC_LIBRARY") "BUILD_HOST_STATIC_LIBRARY")) + #t))))) + (home-page "https://developer.android.com/") + (synopsis "Safe integers in C") + (description "@code{android-safe-iop} provides a set of functions for +performing and checking safe integer operations. Ensure that integer +operations do not result in silent overflow.") + (license license:bsd-2))) + (define-public android-udev-rules (package (name "android-udev-rules") -- cgit v1.2.3 From cc39d592d92102091c8d73ce6e6e63fde5e9e030 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 26 Apr 2018 02:45:10 +0200 Subject: gnu: Add android-bionic-uapi. * gnu/packages/android.scm (android-bionic-uapi): New variable. --- gnu/packages/android.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 7eb683c94d..17c9de70a5 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -103,6 +103,18 @@ use their packages mostly unmodified in our Android NDK build system.") "adb-add-libraries.patch" "libziparchive-add-includes.patch")))) +(define (android-platform-bionic version) + (origin + (method git-fetch) + (uri (git-reference + (url "https://android.googlesource.com/platform/bionic") + (commit (string-append "android-" version)))) + (file-name (string-append "android-platform-bionic-" + version "-checkout")) + (sha256 + (base32 + "0n9wkz3ynqw39if1ss9n32m66iga14nndf29hpm7g1aqn4wvvgzk")))) + (define (android-platform-external version subdirectory checksum) (origin (method git-fetch) @@ -352,6 +364,37 @@ performing and checking safe integer operations. Ensure that integer operations do not result in silent overflow.") (license license:bsd-2))) +(define-public android-bionic-uapi + (package + (name "android-bionic-uapi") + (version (android-platform-version)) + (source (android-platform-bionic version)) + (build-system android-ndk-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-source + (lambda _ (chdir "libc") #t)) + (replace 'check + (const #t)) + (replace 'build + (const #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-sys (string-append out "/include/sys"))) + (mkdir-p out-sys) + (install-file "include/sys/system_properties.h" out-sys) + (install-file "include/sys/_system_properties.h" out-sys) + (copy-recursively "kernel/uapi" (string-append out "/include")) + #t)))))) + (home-page "https://developer.android.com/") + (synopsis "Android Linux API that is safe for user space") + (description "@code{android-bionic-uapi} provides the part of the Linux API +that is safe to use for user space. It also includes +@code{system_properties.h} and @code{_system_properties.h}.") + (license license:asl2.0))) + (define-public android-udev-rules (package (name "android-udev-rules") -- cgit v1.2.3 From cbf83e00909ed0ec2403e0e85c1bc24fd159c021 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 26 Apr 2018 02:52:18 +0200 Subject: gnu: libcutils: Install header files. * gnu/packages/android.scm (libcutils)[arguments]<#:phases>[install]: Install header files. --- gnu/packages/android.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 17c9de70a5..c3174babbd 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -210,10 +210,13 @@ various Android core host applications.") (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib"))) + (lib (string-append out "/lib")) + (include (string-append out "/include"))) (install-file "libcutils.so.0" lib) (with-directory-excursion lib (symlink "libcutils.so.0" "libcutils.so")) + (copy-recursively "../include/cutils" + (string-append include "/cutils")) #t)))))) (home-page "https://developer.android.com/") (synopsis "Android platform c utils library") -- cgit v1.2.3 From c87ca40f9bff8b852018b884e1fed963a6643b57 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 9 May 2018 19:58:51 +0200 Subject: gnu: Add android-libselinux. * gnu/packages/android.scm (android-libselinux): New variable. --- gnu/packages/android.scm | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index c3174babbd..1acc7d454a 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -35,7 +35,9 @@ #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages gnupg) + #:use-module (gnu packages pcre) #:use-module (gnu packages python) + #:use-module (gnu packages selinux) #:use-module (gnu packages ssh) #:use-module (gnu packages version-control) #:use-module (gnu packages tls) @@ -398,6 +400,48 @@ that is safe to use for user space. It also includes @code{system_properties.h} and @code{_system_properties.h}.") (license license:asl2.0))) +(define-public android-libselinux + (package + (name "android-libselinux") + (version (android-platform-version)) + (source + (android-platform-external version "libselinux" + "13m2q32gzdcs5d0zj1nwasjy1j8vsxsgbjg7m5sa9lfcjaj7nkm7")) + (build-system android-ndk-build-system) + (arguments + ;; See logd/Android.mk for the *_LOG_TAG values. + `(#:make-flags (list (string-append "CFLAGS=-Wno-error " + "-I core/include " + "-I core/libpackagelistparser/include " + "-DAUDITD_LOG_TAG=1003 " + "-DLOGD_LOG_TAG=1004 -D_GNU_SOURCE") + "LDFLAGS=-L . -lpcre") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-core + (lambda* (#:key inputs #:allow-other-keys) + (mkdir-p "core") + (with-directory-excursion "core" + (invoke "tar" "axf" (assoc-ref inputs "core") "--strip-components=1")) + #t)) + (add-after 'unpack-core 'patch-HOST + (lambda _ + ;; gettid duplicates otherwise. + (substitute* "src/procattr.c" + (("#ifdef HOST") "#ifdef XXX")) + #t))))) + (inputs + `(("openssl" ,openssl))) + (native-inputs + `(("android-bionic-uapi" ,android-bionic-uapi) + ("core" ,(android-platform-system-core version)))) + (propagated-inputs + `(("pcre" ,pcre))) + (home-page "https://developer.android.com/") + (synopsis (package-synopsis libselinux)) + (description (package-description libselinux)) + (license (package-license libselinux)))) + (define-public android-udev-rules (package (name "android-udev-rules") -- cgit v1.2.3 From 2d804f9202fa7f51daf22af98a542e363c56fc57 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 9 May 2018 22:32:04 +0200 Subject: gnu: Add android-ext4-utils. * gnu/packages/android.scm (android-platform-system-extras): New procedure. (android-ext4-utils): New variable. --- gnu/packages/android.scm | 71 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 3 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 1acc7d454a..6e44369f72 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -105,6 +105,18 @@ use their packages mostly unmodified in our Android NDK build system.") "adb-add-libraries.patch" "libziparchive-add-includes.patch")))) +(define (android-platform-system-extras version) + (origin + (method git-fetch) + (uri (git-reference + (url "https://android.googlesource.com/platform/system/extras") + (commit (string-append "android-" version)))) + (file-name (string-append "android-platform-system-extras-" + version "-checkout")) + (sha256 + (base32 + "18130c23ybqcpgjc5v6f8kdbv2xn39hyiaj17dzldjb9rlwzcyy9")))) + (define (android-platform-bionic version) (origin (method git-fetch) @@ -434,14 +446,67 @@ that is safe to use for user space. It also includes `(("openssl" ,openssl))) (native-inputs `(("android-bionic-uapi" ,android-bionic-uapi) - ("core" ,(android-platform-system-core version)))) - (propagated-inputs - `(("pcre" ,pcre))) + ("core" ,(android-platform-system-core version)) + ;; pcre is inlined by our package. + ("pcre" ,pcre))) (home-page "https://developer.android.com/") (synopsis (package-synopsis libselinux)) (description (package-description libselinux)) (license (package-license libselinux)))) +(define-public android-ext4-utils + (package + (name "android-ext4-utils") + (version (android-platform-version)) + (source (android-platform-system-extras version)) + (build-system android-ndk-build-system) + (arguments + `(#:tests? #f ; TODO. + #:make-flags + (list (string-append "CPPFLAGS=" + ;"-Wno-error " + "-I " + (assoc-ref %build-inputs "android-libselinux") + "/include " + "-I " (assoc-ref %build-inputs "android-libsparse") + "/include " + "-I " (assoc-ref %build-inputs "libcutils") + "/include " + "-I " (assoc-ref %build-inputs "liblog") "/include " + "-I ../core/include") + "CFLAGS=-Wno-error" + "install-libext4_utils_host.a" + (string-append "prefix=" (assoc-ref %outputs "out"))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-core + (lambda* (#:key inputs #:allow-other-keys) + (mkdir-p "core") + (with-directory-excursion "core" + (invoke "tar" "axf" (assoc-ref inputs "android-core") + "--strip-components=1")) + #t)) + (add-after 'unpack-core 'enter-source + (lambda _ (chdir "ext4_utils") #t)) + (replace 'install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (copy-recursively "." (string-append out "/include"))) + #t))))) + (inputs + `(("libcutils" ,libcutils) + ("liblog" ,liblog) + ("android-libselinux" ,android-libselinux) + ("android-libsparse" ,android-libsparse) + ("zlib" ,zlib))) + (native-inputs + `(("android-core" ,(android-platform-system-core version)))) + (home-page "https://developer.android.com/") + (synopsis "Android ext4 filesystem utils") + (description "@code{android-ext4-utils} is a library in common use by the +Android core.") + (license license:asl2.0))) + (define-public android-udev-rules (package (name "android-udev-rules") -- cgit v1.2.3 From 055e6fb3eb12b863ce6176f682fee62a36387b24 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 9 May 2018 20:04:33 +0200 Subject: gnu: Add android-f2fs-utils. * gnu/packages/android.scm (android-f2fs-utils): New variable. --- gnu/packages/android.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 6e44369f72..21b0c7c64c 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -507,6 +507,35 @@ that is safe to use for user space. It also includes Android core.") (license license:asl2.0))) +(define-public android-f2fs-utils + (package + (name "android-f2fs-utils") + (version (android-platform-version)) + (source (android-platform-system-extras version)) + (build-system android-ndk-build-system) + (arguments + `(#:tests? #f ; TODO. + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-source + (lambda _ (chdir "f2fs_utils") #t)) + (add-after 'install 'install-headers + (lambda* (#:key inputs outputs #:allow-other-keys) + (copy-recursively "." (string-append (assoc-ref outputs "out") + "/include")) + #t))))) + (inputs + `(("f2fs-tools" ,f2fs-tools-1.7) + ("android-libselinux" ,android-libselinux) + ("android-libsparse" ,android-libsparse) + ("libcutils" ,libcutils) + ("zlib" ,zlib))) + (home-page "https://developer.android.com/") + (synopsis "Android ext4 utils") + (description "@code{android-ext4-utils} is a library in common use by the +Android core.") + (license license:asl2.0))) + (define-public android-udev-rules (package (name "android-udev-rules") -- cgit v1.2.3 From be906ad16e9bf5ab322cc2a79cf934d37a06dcc7 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 9 May 2018 20:11:30 +0200 Subject: gnu: Add android-libutils. * gnu/packages/patches/libutils-add-includes.patch: New file. * gnu/packages/patches/libutils-remove-damaging-includes.patch: New file. * gnu/packages/android.scm (android-platform-system-core): Use them. (android-libutils): New variable. * gnu/local.mk: Add them. --- gnu/local.mk | 2 ++ gnu/packages/android.scm | 29 ++++++++++++++++++++++ gnu/packages/patches/libutils-add-includes.patch | 11 ++++++++ .../libutils-remove-damaging-includes.patch | 21 ++++++++++++++++ 4 files changed, 63 insertions(+) create mode 100644 gnu/packages/patches/libutils-add-includes.patch create mode 100644 gnu/packages/patches/libutils-remove-damaging-includes.patch diff --git a/gnu/local.mk b/gnu/local.mk index 5acc9fb136..789e97f482 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -875,6 +875,8 @@ dist_patch_DATA = \ %D%/packages/patches/libtool-skip-tests2.patch \ %D%/packages/patches/libusb-0.1-disable-tests.patch \ %D%/packages/patches/libusb-for-axoloti.patch \ + %D%/packages/patches/libutils-add-includes.patch \ + %D%/packages/patches/libutils-remove-damaging-includes.patch \ %D%/packages/patches/libvdpau-va-gl-unbundle.patch \ %D%/packages/patches/libvorbis-CVE-2017-14632.patch \ %D%/packages/patches/libvorbis-CVE-2017-14633.patch \ diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 21b0c7c64c..34525f1eca 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -102,6 +102,8 @@ use their packages mostly unmodified in our Android NDK build system.") (patches (search-patches "libbase-use-own-logging.patch" "libbase-fix-includes.patch" + "libutils-remove-damaging-includes.patch" + "libutils-add-includes.patch" "adb-add-libraries.patch" "libziparchive-add-includes.patch")))) @@ -536,6 +538,33 @@ Android core.") Android core.") (license license:asl2.0))) +(define-public android-libutils + (package + (name "android-libutils") + (version (android-platform-version)) + (source (android-platform-system-core version)) + (build-system android-ndk-build-system) + (arguments + `(#:tests? #f ; TODO + #:make-flags '("CXXFLAGS=-std=gnu++11 -Wno-error") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'enter-source + (lambda _ (chdir "libutils") #t)) + + (add-after 'install 'install-headers + (lambda* (#:key inputs outputs #:allow-other-keys) + (copy-recursively "../include/utils" (string-append (assoc-ref outputs "out") "/include/utils"))))))) + (inputs + `(("android-safe-iop" ,android-safe-iop) + ("libcutils" ,libcutils))) + (native-inputs + `(("android-bionic-uapi" ,android-bionic-uapi))) + (home-page "https://developer.android.com/") + (synopsis "Android utility library") + (description "@code{android-libutils} provides utilities for Android NDK developers.") + (license license:asl2.0))) + (define-public android-udev-rules (package (name "android-udev-rules") diff --git a/gnu/packages/patches/libutils-add-includes.patch b/gnu/packages/patches/libutils-add-includes.patch new file mode 100644 index 0000000000..354c59b735 --- /dev/null +++ b/gnu/packages/patches/libutils-add-includes.patch @@ -0,0 +1,11 @@ +--- a/libutils/CallStack.cpp 2018-04-25 20:13:06.348665241 +0200 ++++ b/libutils/CallStack.cpp 2018-04-25 20:13:18.360510763 +0200 +@@ -17,7 +17,7 @@ + #define LOG_TAG "CallStack" + + #include +- ++#include + #include + #include + #include diff --git a/gnu/packages/patches/libutils-remove-damaging-includes.patch b/gnu/packages/patches/libutils-remove-damaging-includes.patch new file mode 100644 index 0000000000..7867dd3b80 --- /dev/null +++ b/gnu/packages/patches/libutils-remove-damaging-includes.patch @@ -0,0 +1,21 @@ +--- a/include/utils/StrongPointer.h 2018-04-25 18:42:34.321003602 +0200 ++++ b/include/utils/StrongPointer.h 2018-04-25 18:42:42.180912201 +0200 +@@ -17,8 +17,6 @@ + #ifndef ANDROID_STRONG_POINTER_H + #define ANDROID_STRONG_POINTER_H + +-#include +- + #include + #include + #include +--- a/libutils/Trace.cpp 2018-04-25 20:41:48.775049786 +0200 ++++ b/libutils/Trace.cpp 2018-04-25 20:42:13.674744182 +0200 +@@ -21,5 +21,7 @@ + + static void traceInit() + { ++#if defined(__ANDROID__) + ::android::add_sysprop_change_callback(atrace_update_tags, 0); ++#endif + } -- cgit v1.2.3 From 8bbf99ae25b5f45fe6d327fd4b0b3a809f61f112 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 9 May 2018 21:43:32 +0200 Subject: gnu: android-make-stub: Update to 0.4. * gnu/packages/android.scm (android-make-stub): Update to 0.4. --- gnu/packages/android.scm | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 34525f1eca..2da0a24f5c 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -44,22 +44,20 @@ #:use-module (gnu packages linux)) (define-public android-make-stub - (let ((commit "v0.1") - (revision "21")) (package (name "android-make-stub") - (version "0.1") + (version "0.4") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/daym/android-make-stub.git") - (commit commit))) + (commit (string-append "v" version)))) (file-name (string-append "android-make-stub-" version "-checkout")) (sha256 (base32 - "1ni4szpcx2clf3lpzrybabwk7bgvsl6ynng7xxfc49y4jkdkk4sh")))) + "069bcldva63qbda7c8j6kyf9z28qnygszqfkgzq48hmkfmjrhbqg")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; None exist. @@ -77,7 +75,7 @@ (description "@code{android-make-stub} provides stubs for the @command{make} system of the Android platform. This allows us to use their packages mostly unmodified in our Android NDK build system.") - (license license:asl2.0)))) + (license license:asl2.0))) ;; The Makefiles that we add are largely based on the Debian ;; packages. They are licensed under GPL-2 and have copyright: -- cgit v1.2.3 From 81abe370075188e718264dd76e7584c12adb482a Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 9 May 2018 21:45:13 +0200 Subject: gnu: liblog: Build library correctly. * gnu/packages/android.scm (liblog)[arguments]<#:make-flags>: Add LDLIBS. <#:phases>[ldconfig]: New phase. --- gnu/packages/android.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 2da0a24f5c..2e5f1d5933 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -151,11 +151,16 @@ use their packages mostly unmodified in our Android NDK build system.") (build-system android-ndk-build-system) (arguments `(#:tests? #f ; TODO. - #:make-flags '("CC=gcc") + #:make-flags '("LDLIBS=-lpthread") #:phases (modify-phases %standard-phases (add-after 'unpack 'enter-source - (lambda _ (chdir "liblog") #t))))) + (lambda _ (chdir "liblog") #t)) + (add-after 'install 'ldconfig + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (symlink "liblog.so.0" (string-append out "/lib/liblog.so")) + #t)))))) (home-page "https://developer.android.com/") (synopsis "Logging library from the Android platform.") (description "@code{liblog} represents an interface to the volatile Android -- cgit v1.2.3 From 62834314434323e5250f9d99b35d523ca216b540 Mon Sep 17 00:00:00 2001 From: Björn Höfling Date: Fri, 16 Feb 2018 20:31:37 +0100 Subject: gnu: Add opencv. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/image-processing.scm (opencv): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/image-processing.scm | 200 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 200 insertions(+) diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index 6705a726cf..ef303e1349 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2014 Mark H Weaver ;;; Copyright © 2016 Eric Bavier ;;; Copyright © 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Björn Höfling ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,12 +39,16 @@ #:use-module (gnu packages gnome) #:use-module (gnu packages graphics) #:use-module (gnu packages graphviz) + #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages maths) #:use-module (gnu packages perl) + #:use-module (gnu packages photo) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages serialization) + #:use-module (gnu packages video) #:use-module (gnu packages xiph) #:use-module (gnu packages xml) #:use-module (gnu packages xorg)) @@ -191,3 +196,198 @@ triangulation. VTK has an extensive information visualization framework, has a suite of 3D interaction widgets, supports parallel processing, and integrates with various databases on GUI toolkits such as Qt and Tk.") (license license:bsd-3))) + +(define-public opencv + (package + (name "opencv") + (version "3.4.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/opencv/opencv/archive/" + version ".zip")) + (file-name (string-append name "-" version ".zip")) + (sha256 + (base32 + "1g8pvnlkzzp50amd89149hqsbvsc2hq3vk1d6a9fksdcx8ra9g94")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove external libraries. We have all available in Guix: + (delete-file-recursively "3rdparty") + + ;; Milky icon set is non-free: + (delete-file-recursively "modules/highgui/src/files_Qt/Milky") + + ;; Some jars found: + (for-each delete-file + '("modules/java/test/pure_test/lib/junit-4.11.jar" + "samples/java/sbt/sbt/sbt-launch.jar")))))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags + (list "-DWITH_IPP=OFF" + "-DWITH_ITT=OFF" + + ;; CPU-Features: + ;; See cmake/OpenCVCompilerOptimizations.cmake + ;; (CPU_ALL_OPTIMIZATIONS) for a list of all optimizations + ;; BASELINE is the minimum optimization all CPUs must support + ;; + ;; DISPATCH is the list of optional dispatches + "-DCPU_BASELINE=SSE2, NEON" + + "-DCPU_DISPATCH=SSE3,SSSE3,SSE4_1,SSE4_2,AVX,AVX2" + "-DCPU_DISPATCH_REQUIRE=SSE3,SSSE3,SSE4_1,SSE4_2,AVX,AVX2" + + "-DBUILD_PERF_TESTS=OFF" + "-D BUILD_TESTS=ON" + + (string-append "-DOPENCV_EXTRA_MODULES_PATH=" + "/tmp/guix-build-opencv-" ,version ".drv-0" + "/opencv-contrib/opencv_contrib-" ,version + "/modules") + + ;;Define test data: + (string-append "-DOPENCV_TEST_DATA_PATH=" + "/tmp/guix-build-opencv-" ,version ".drv-0" + ;;"/opencv-3.4.0" + "/opencv-extra/opencv_extra-" ,version + "/testdata") + + ;; Is ON by default and would try to rebuild 3rd-party protobuf, + ;; which we had removed, which would lead to an error: + "-DBUILD_PROTOBUF=OFF" + + ;; Rebuild protobuf files, because we have a slightly different + ;; version than the included one. If we would not update, we + ;; would get a compile error later: + "-DPROTOBUF_UPDATE_FILES=ON" + + ;; xfeatures2d disabled, because it downloads extra binaries from + ;; https://github.com/opencv/opencv_3rdparty + ;; defined in xfeatures2d/cmake/download_{vgg|bootdesc}.cmake + ;; Cmp this bug entry: + ;; https://github.com/opencv/opencv_contrib/issues/1131 + "-DBUILD_opencv_xfeatures2d=OFF") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-broken-tests + (lambda _ + ;; These tests fails with: + ;; vtkXOpenGLRenderWindow (0x723990): Could not find a decent config + ;; I think we have no OpenGL support with the Xvfb. + (substitute* '("modules/viz/test/test_tutorial3.cpp" + "modules/viz/test/test_main.cpp" + "modules/viz/test/tests_simple.cpp" + "modules/viz/test/test_viz3d.cpp") + (("(TEST\\(Viz, )([a-z].*\\).*)" all pre post) + (string-append pre "DISABLED_" post))) + + ;; This one fails with "unknown file: Failure" + ;; But I couldn't figure out which file was missing: + (substitute* (list (string-append + "../opencv-contrib/opencv_contrib-" + ,version + "/modules/face/test/test_face_align.cpp")) + (("(TEST\\(CV_Face_FacemarkKazemi, )(can_detect_landmarks\\).*)" + all pre post) + (string-append pre "DISABLED_" post))) + + ;; Failure reason: Bad accuracy + ;; Incorrect count of accurate poses [2nd case]: 90.000000 / 94.000000 + (substitute* (list (string-append + "../opencv-contrib/opencv_contrib-" + ,version + "/modules/rgbd/test/test_odometry.cpp")) + (("(TEST\\(RGBD_Odometry_Rgbd, )(algorithmic\\).*)" all pre post) + (string-append pre "DISABLED_" post))) + #t)) + + ;; Idea copied from ldc.scm (ldc-bootstrap): + (add-after 'unpack 'unpack-submodule-sources + (lambda* (#:key inputs #:allow-other-keys) + (mkdir "../opencv-extra") + (mkdir "../opencv-contrib") + (let ((unpack (lambda (source target) + (with-directory-excursion target + (apply invoke "unzip" + (list (assoc-ref inputs source))))))) + (unpack "opencv-extra" "../opencv-extra") + (unpack "opencv-contrib" "../opencv-contrib")))) + + (add-after 'set-paths 'add-ilmbase-include-path + (lambda* (#:key inputs #:allow-other-keys) + ;; OpenEXR propagates ilmbase, but its include files do not appear + ;; in the CPATH, so we need to add "$ilmbase/include/OpenEXR/" to + ;; the CPATH to satisfy the dependency on "ImathVec.h". + (setenv "CPATH" + (string-append (assoc-ref inputs "ilmbase") + "/include/OpenEXR" + ":" (or (getenv "CPATH") ""))) + #t)) + (add-before 'check 'start-xserver + (lambda* (#:key inputs #:allow-other-keys) + (let ((xorg-server (assoc-ref inputs "xorg-server")) + (disp ":1")) + (setenv "HOME" (getcwd)) + (setenv "DISPLAY" disp) + ;; There must be a running X server and make check doesn't start one. + ;; Therefore we must do it. + (zero? (system (format #f "~a/bin/Xvfb ~a &" xorg-server disp))))))))) + (native-inputs + `(("unzip" ,unzip) + ("pkg-config" ,pkg-config) + ("xorg-server" ,xorg-server) ; For running the tests + ("opencv-extra" + ,(origin + (method url-fetch) + (uri (string-append "https://codeload.github.com/" + "opencv/opencv_extra/zip/" version)) + (file-name (string-append "opencv-extra-" version ".zip")) + (sha256 + (base32 "0wfh3pvfxqydf7hsccp50npcsg37sf6fqi6cd3zkc4qil9zhpbps")))) + ("opencv-contrib" + ,(origin + (method url-fetch) + (uri (string-append "https://codeload.github.com/" + "opencv/opencv_contrib/zip/" version)) + (file-name (string-append "opencv-contrib-" version ".zip")) + (sha256 + (base32 "18zm0qmjcdvg90c33gzv0ws0xdaid1xpqzz2xa9l2x12qkr6zj3p")))))) + (inputs `(("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("jasper" ,jasper) + ;; ffmpeg 4.0 causes core dumps in tests. + ("ffmpeg" ,ffmpeg-3.4) + ("libtiff" ,libtiff) + ("hdf5" ,hdf5) + ("libgphoto2" ,libgphoto2) + ("libwebp" ,libwebp) + ("zlib" ,zlib) + ("gtkglext" ,gtkglext) + ("openexr" ,openexr) + ("ilmbase" ,ilmbase) + ("gtk+" ,gtk+-2) + ("python-numpy" ,python-numpy) + ("protobuf" ,protobuf) + ("vtk" ,vtk) + ("python" ,python))) + (synopsis "Computer vision library") + (description "OpenCV is a library aimed at +real-time computer vision, including several hundred computer +vision algorithms. It can be used to do things like: + +@itemize +@item image and video input and output +@item image and video processing +@item displaying +@item feature recognition +@item segmentation +@item facial recognition +@item stereo vision +@item structure from motion +@item augmented reality +@item machine learning +@end itemize\n") + (home-page "https://opencv.org/") + (license license:bsd-3))) -- cgit v1.2.3 From afc2bf53066975558676bc7f4957ad85d0ec170a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 10 May 2018 00:27:17 +0200 Subject: gnu: rust: Do not refer to 'gcc' from the top level. Fixes . Reported by Marius Bakke . * gnu/packages/rust.scm (rust-1.19)[native-search-paths]: Avoid top-level reference to 'gcc', which could lead to unbound variable errors. --- gnu/packages/rust.scm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/gnu/packages/rust.scm b/gnu/packages/rust.scm index 0a9d5bb382..bf50cdd55e 100644 --- a/gnu/packages/rust.scm +++ b/gnu/packages/rust.scm @@ -237,8 +237,21 @@ in turn be used to build the final Rust.") ("llvm" ,llvm-3.9.1) ("openssl" ,openssl) ("libcurl" ,curl))) ; For "cargo" + ;; rustc invokes gcc, so we need to set its search paths accordingly. - (native-search-paths (package-native-search-paths gcc)) + ;; Note: duplicate its value here to cope with circular dependencies among + ;; modules (see ). + (native-search-paths + (list (search-path-specification + (variable "C_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "CPLUS_INCLUDE_PATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64"))))) + (synopsis "Compiler for the Rust progamming language") (description "Rust is a systems programming language that provides memory safety and thread safety guarantees.") -- cgit v1.2.3 From 455b8fed7e0af287e433232f0edf59e26c6e5f4f Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 9 May 2018 21:48:35 +0200 Subject: gnu: Add fastboot. * gnu/packages/android.scm (fastboot): New variable. --- gnu/packages/android.scm | 64 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 2e5f1d5933..c3beba6155 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -568,6 +568,70 @@ Android core.") (description "@code{android-libutils} provides utilities for Android NDK developers.") (license license:asl2.0))) +(define-public fastboot + (package + (name "fastboot") + (version (android-platform-version)) + (source #f) + (build-system android-ndk-build-system) + (arguments + `(#:make-flags (list "CXXFLAGS=-std=gnu++11") + #:phases + (modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key inputs #:allow-other-keys) + (mkdir-p "core") + (with-directory-excursion "core" + (invoke "tar" "axf" (assoc-ref inputs "core") "--strip-components=1") + (substitute* "fastboot/Android.mk" + (("libext4_utils_host") "libext4_utils_host libselinux libpcre"))) + (copy-recursively (assoc-ref inputs "extras") "extras" + #:keep-mtime? #t) + #t)) + (add-after 'unpack 'enter-source + (lambda _ + (chdir "core/fastboot") + #t)) + (add-after 'enter-source 'make-googletest-available + (lambda* (#:key inputs #:allow-other-keys) + (let ((googletest (assoc-ref inputs "googletest"))) + (symlink (string-append googletest "/lib/libgtest.so") "libgtest_host.so") + #t))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (bin (string-append out "/bin"))) + (install-file "fastboot" bin) + #t)))) + #:tests? #f)) ; Require network + (inputs + `(("adb" ,adb) + ("android-safe-iop" ,android-safe-iop) + ("android-ext4-utils" ,android-ext4-utils) + ("android-f2fs-utils" ,android-f2fs-utils) + ("googletest" ,googletest) + ("libbase" ,libbase) + ("libcutils" ,libcutils) + ("liblog" ,liblog) + ("android-libutils" ,android-libutils) + ("android-libsparse" ,android-libsparse) + ("android-libziparchive" ,android-libziparchive) + ("android-libselinux" ,android-libselinux) + ("pcre" ,pcre) + ("mkbootimg" ,mkbootimg) + ("openssl" ,openssl) ; FIXME remove + ("zlib" ,zlib))) + (native-inputs + `(("core" ,(android-platform-system-core version)) + ("extras" ,(android-platform-system-extras version)) + ("xz" ,xz))) + (home-page "https://developer.android.com/studio/command-line/") + (synopsis "Android image flasher") + (description + "This package provides @command{fastboot}, a tool to upload file system images to Android devices.") + (license license:asl2.0))) + (define-public android-udev-rules (package (name "android-udev-rules") -- cgit v1.2.3 From 8272e5e0b77760bb89f01815a89326f59b360c0e Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 9 May 2018 22:25:10 +0200 Subject: gnu: Rename "liblog" to "android-liblog". * gnu/packages/android.scm (liblog): Rename to... (android-liblog): ...this. --- gnu/packages/android.scm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index c3beba6155..bc679a1777 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -143,9 +143,9 @@ use their packages mostly unmodified in our Android NDK build system.") (base32 checksum)))) -(define liblog +(define android-liblog (package - (name "liblog") + (name "android-liblog") (version (android-platform-version)) (source (android-platform-system-core version)) (build-system android-ndk-build-system) @@ -182,7 +182,7 @@ in Main, System, Radio and Events sub-logs.") (modify-phases %standard-phases (add-after 'unpack 'enter-source (lambda _ (chdir "base") #t))))) - (inputs `(("liblog" ,liblog))) + (inputs `(("android-liblog" ,android-liblog))) (home-page "https://developer.android.com/") (synopsis "Android platform base library") (description "@code{libbase} is a library in common use by the @@ -322,7 +322,7 @@ various Android core host applications.") (inputs `(("libbase" ,libbase) ("libcutils" ,libcutils) - ("liblog" ,liblog) + ("android-liblog" ,android-liblog) ("openssl" ,openssl))) (home-page "https://developer.android.com/studio/command-line/adb.html") (synopsis "Android Debug Bridge") @@ -477,7 +477,7 @@ that is safe to use for user space. It also includes "/include " "-I " (assoc-ref %build-inputs "libcutils") "/include " - "-I " (assoc-ref %build-inputs "liblog") "/include " + "-I " (assoc-ref %build-inputs "android-liblog") "/include " "-I ../core/include") "CFLAGS=-Wno-error" "install-libext4_utils_host.a" @@ -500,7 +500,7 @@ that is safe to use for user space. It also includes #t))))) (inputs `(("libcutils" ,libcutils) - ("liblog" ,liblog) + ("android-liblog" ,android-liblog) ("android-libselinux" ,android-libselinux) ("android-libsparse" ,android-libsparse) ("zlib" ,zlib))) @@ -613,7 +613,7 @@ Android core.") ("googletest" ,googletest) ("libbase" ,libbase) ("libcutils" ,libcutils) - ("liblog" ,liblog) + ("android-liblog" ,android-liblog) ("android-libutils" ,android-libutils) ("android-libsparse" ,android-libsparse) ("android-libziparchive" ,android-libziparchive) -- cgit v1.2.3 From 01a2389a66719b4106321b13c802ad3f84896b4c Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 9 May 2018 22:26:06 +0200 Subject: gnu: Rename "libbase" to "android-libbase". * gnu/packages/android.scm (libbase): Rename to... (android-libbase): ...this. --- gnu/packages/android.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index bc679a1777..58259c1689 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -169,9 +169,9 @@ interfaces for either writing or reading logs. The log buffers are divided up in Main, System, Radio and Events sub-logs.") (license license:asl2.0))) -(define libbase +(define android-libbase (package - (name "libbase") + (name "android-libbase") (version (android-platform-version)) (source (android-platform-system-core version)) (build-system android-ndk-build-system) @@ -320,7 +320,7 @@ various Android core host applications.") (install-file "diagnose_usb.h" (string-append (assoc-ref outputs "out") "/include")) #t))))) (inputs - `(("libbase" ,libbase) + `(("android-libbase" ,android-libbase) ("libcutils" ,libcutils) ("android-liblog" ,android-liblog) ("openssl" ,openssl))) @@ -611,7 +611,7 @@ Android core.") ("android-ext4-utils" ,android-ext4-utils) ("android-f2fs-utils" ,android-f2fs-utils) ("googletest" ,googletest) - ("libbase" ,libbase) + ("android-libbase" ,android-libbase) ("libcutils" ,libcutils) ("android-liblog" ,android-liblog) ("android-libutils" ,android-libutils) -- cgit v1.2.3 From 3385db349f05cec431099e8a693afa0f957c57b5 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Wed, 9 May 2018 22:27:34 +0200 Subject: gnu: Rename "libcutils" to "android-libcutils". * gnu/packages/android.scm (libcutils): Rename to... (android-libcutils): ...this. --- gnu/packages/android.scm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 58259c1689..472e1448ca 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -189,9 +189,9 @@ in Main, System, Radio and Events sub-logs.") various Android core host applications.") (license license:asl2.0))) -(define libcutils +(define android-libcutils (package - (name "libcutils") + (name "android-libcutils") (version (android-platform-version)) (source (android-platform-system-core version)) (build-system gnu-build-system) @@ -321,7 +321,7 @@ various Android core host applications.") #t))))) (inputs `(("android-libbase" ,android-libbase) - ("libcutils" ,libcutils) + ("android-libcutils" ,android-libcutils) ("android-liblog" ,android-liblog) ("openssl" ,openssl))) (home-page "https://developer.android.com/studio/command-line/adb.html") @@ -475,7 +475,7 @@ that is safe to use for user space. It also includes "/include " "-I " (assoc-ref %build-inputs "android-libsparse") "/include " - "-I " (assoc-ref %build-inputs "libcutils") + "-I " (assoc-ref %build-inputs "android-libcutils") "/include " "-I " (assoc-ref %build-inputs "android-liblog") "/include " "-I ../core/include") @@ -499,7 +499,7 @@ that is safe to use for user space. It also includes (copy-recursively "." (string-append out "/include"))) #t))))) (inputs - `(("libcutils" ,libcutils) + `(("android-libcutils" ,android-libcutils) ("android-liblog" ,android-liblog) ("android-libselinux" ,android-libselinux) ("android-libsparse" ,android-libsparse) @@ -533,7 +533,7 @@ Android core.") `(("f2fs-tools" ,f2fs-tools-1.7) ("android-libselinux" ,android-libselinux) ("android-libsparse" ,android-libsparse) - ("libcutils" ,libcutils) + ("android-libcutils" ,android-libcutils) ("zlib" ,zlib))) (home-page "https://developer.android.com/") (synopsis "Android ext4 utils") @@ -560,7 +560,7 @@ Android core.") (copy-recursively "../include/utils" (string-append (assoc-ref outputs "out") "/include/utils"))))))) (inputs `(("android-safe-iop" ,android-safe-iop) - ("libcutils" ,libcutils))) + ("android-libcutils" ,android-libcutils))) (native-inputs `(("android-bionic-uapi" ,android-bionic-uapi))) (home-page "https://developer.android.com/") @@ -612,7 +612,7 @@ Android core.") ("android-f2fs-utils" ,android-f2fs-utils) ("googletest" ,googletest) ("android-libbase" ,android-libbase) - ("libcutils" ,libcutils) + ("android-libcutils" ,android-libcutils) ("android-liblog" ,android-liblog) ("android-libutils" ,android-libutils) ("android-libsparse" ,android-libsparse) -- cgit v1.2.3 From 9ed36cd3d6a4146f5f314b79a6fd6ada93d03164 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 00:05:58 +0200 Subject: build-system: android-ndk: Support unit tests. * guix/build-system/android-ndk.scm (android-ndk-build): Add googletest. * guix/build/android-ndk-build-system.scm (check): Check whether tests are enabled. Run root-level tests as well. --- guix/build-system/android-ndk.scm | 1 + guix/build/android-ndk-build-system.scm | 14 +++++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/guix/build-system/android-ndk.scm b/guix/build-system/android-ndk.scm index 842d983a62..891fc6e042 100644 --- a/guix/build-system/android-ndk.scm +++ b/guix/build-system/android-ndk.scm @@ -113,6 +113,7 @@ ;; Keep the standard inputs of 'gnu-build-system' ,@(standard-packages))) (build-inputs `(("android-make-stub" ,(module-ref (resolve-interface '(gnu packages android)) 'android-make-stub)) + ("googletest" ,(module-ref (resolve-interface '(gnu packages check)) 'googletest)) ,@native-inputs)) (outputs outputs) (build android-ndk-build) diff --git a/guix/build/android-ndk-build-system.scm b/guix/build/android-ndk-build-system.scm index b5d4b36d30..86d0858488 100644 --- a/guix/build/android-ndk-build-system.scm +++ b/guix/build/android-ndk-build-system.scm @@ -68,11 +68,15 @@ (copy-recursively "include" (string-append out "/include"))) #t)) -(define* (check #:key inputs outputs tests? (make-flags '()) #:allow-other-keys) - ;; TODO: Also handle root-level tests. - (when (and (file-exists? "tests") tests?) - (with-directory-excursion "tests" - (apply invoke "make" "check" make-flags)))) +(define* (check #:key target inputs outputs (tests? (not target)) (make-flags '()) #:allow-other-keys) + (if tests? + (begin + (apply invoke "make" "check" make-flags) + (when (and (file-exists? "tests") tests?) + (with-directory-excursion "tests" + (apply invoke "make" "check" make-flags)))) + (format #t "test suite not run~%")) + #t) (define %standard-phases (modify-phases gnu:%standard-phases -- cgit v1.2.3 From 0e1011b18e653f36f837d3555de4473e0c5e5ba1 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 00:10:58 +0200 Subject: gnu: android-make-stub: Update to 0.5. * gnu/packages/android.scm (android-make-stub): Update to 0.5. --- gnu/packages/android.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 472e1448ca..c7d81ec633 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -46,7 +46,7 @@ (define-public android-make-stub (package (name "android-make-stub") - (version "0.4") + (version "0.5") (source (origin (method git-fetch) @@ -57,7 +57,7 @@ version "-checkout")) (sha256 (base32 - "069bcldva63qbda7c8j6kyf9z28qnygszqfkgzq48hmkfmjrhbqg")))) + "13jwp8rjakk0myddq7byy35fjdq1kr5f2m9zwqa5n0df293pgf6l")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; None exist. -- cgit v1.2.3 From 1a0dd01bf913d505c46e865b96057b5c1178640c Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 00:13:46 +0200 Subject: gnu: adb: Add missing "#include"s. * gnu/packages/patches/adb-add-libraries.patch: Add missing "#include"s. --- gnu/packages/patches/adb-add-libraries.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gnu/packages/patches/adb-add-libraries.patch b/gnu/packages/patches/adb-add-libraries.patch index 06b3ec3764..b014832f62 100644 --- a/gnu/packages/patches/adb-add-libraries.patch +++ b/gnu/packages/patches/adb-add-libraries.patch @@ -17,3 +17,14 @@ libbase \ libcrypto_static \ libdiagnose_usb \ +--- a/adb/sysdeps_test.cpp 2018-05-09 23:58:46.583163684 +0200 ++++ b/adb/sysdeps_test.cpp 2018-05-09 23:56:41.356544648 +0200 +@@ -17,6 +17,8 @@ + #include + #include + #include ++#include ++#include + + #include "adb_io.h" + #include "sysdeps.h" -- cgit v1.2.3 From aa820a1be7893b3d3a5f7b3f25baa488322b43fc Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 00:32:17 +0200 Subject: gnu: android-make-stub: Update to 0.5.1. * gnu/packages/android.scm (android-make-stub): Update to 0.5.1. --- gnu/packages/android.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index c7d81ec633..7ff7521fb6 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -46,7 +46,7 @@ (define-public android-make-stub (package (name "android-make-stub") - (version "0.5") + (version "0.5.1") (source (origin (method git-fetch) @@ -57,7 +57,7 @@ version "-checkout")) (sha256 (base32 - "13jwp8rjakk0myddq7byy35fjdq1kr5f2m9zwqa5n0df293pgf6l")))) + "0sbnn7fd607lfsgfs695k30gs9q5cz8jc2ki56x8irxlvhhrwdin")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; None exist. -- cgit v1.2.3 From 26dcbb8cfea08e892494f29194682ac16a6decdf Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 01:02:32 +0200 Subject: gnu: android-make-stub: Update to 0.5.2. * gnu/packages/android.scm (android-make-stub): Update to 0.5.2. --- gnu/packages/android.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 7ff7521fb6..7e4f402c9c 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -46,7 +46,7 @@ (define-public android-make-stub (package (name "android-make-stub") - (version "0.5.1") + (version "0.5.2") (source (origin (method git-fetch) @@ -57,7 +57,7 @@ version "-checkout")) (sha256 (base32 - "0sbnn7fd607lfsgfs695k30gs9q5cz8jc2ki56x8irxlvhhrwdin")))) + "158qnp1x8isqfxcqglikinz65hw8iz6paw2cn8z0s8dysp4awb9g")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; None exist. -- cgit v1.2.3 From 3766aa921bdb4732b30e7787f2e3abc37624f291 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 01:03:54 +0200 Subject: build-system: android-ndk: Let upstream install header files. * guix/build/android-ndk-build-system.scm (install): Don't install header files ourselves. --- guix/build/android-ndk-build-system.scm | 2 -- 1 file changed, 2 deletions(-) diff --git a/guix/build/android-ndk-build-system.scm b/guix/build/android-ndk-build-system.scm index 86d0858488..3c8f726d1d 100644 --- a/guix/build/android-ndk-build-system.scm +++ b/guix/build/android-ndk-build-system.scm @@ -64,8 +64,6 @@ (apply invoke "make" "install" (string-append "prefix=" out) make-flags) - (if (file-exists? "include") - (copy-recursively "include" (string-append out "/include"))) #t)) (define* (check #:key target inputs outputs (tests? (not target)) (make-flags '()) #:allow-other-keys) -- cgit v1.2.3 From 0d697202fcb53ac819c2fc8b103b7837e7db4c10 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 01:04:46 +0200 Subject: gnu: android-selinux: Simplify. * gnu/packages/android.scm (android-selinux)[arguments]<#:phases>[unpack-core]: Delete. [native-inputs]: Remove "core". --- gnu/packages/android.scm | 7 ------- 1 file changed, 7 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 7e4f402c9c..bae5b77ffe 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -435,12 +435,6 @@ that is safe to use for user space. It also includes "LDFLAGS=-L . -lpcre") #:phases (modify-phases %standard-phases - (add-after 'unpack 'unpack-core - (lambda* (#:key inputs #:allow-other-keys) - (mkdir-p "core") - (with-directory-excursion "core" - (invoke "tar" "axf" (assoc-ref inputs "core") "--strip-components=1")) - #t)) (add-after 'unpack-core 'patch-HOST (lambda _ ;; gettid duplicates otherwise. @@ -451,7 +445,6 @@ that is safe to use for user space. It also includes `(("openssl" ,openssl))) (native-inputs `(("android-bionic-uapi" ,android-bionic-uapi) - ("core" ,(android-platform-system-core version)) ;; pcre is inlined by our package. ("pcre" ,pcre))) (home-page "https://developer.android.com/") -- cgit v1.2.3 From 5c45730a0390477feb3a3e82d0e51881070fd906 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 01:08:49 +0200 Subject: gnu: android-liblog: Don't disable tests. * gnu/packages/android.scm (android-liblog)[arguments]: Enable tests. --- gnu/packages/android.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index bae5b77ffe..9302fc3f2f 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -150,8 +150,7 @@ use their packages mostly unmodified in our Android NDK build system.") (source (android-platform-system-core version)) (build-system android-ndk-build-system) (arguments - `(#:tests? #f ; TODO. - #:make-flags '("LDLIBS=-lpthread") + `(#:make-flags '("LDLIBS=-lpthread") #:phases (modify-phases %standard-phases (add-after 'unpack 'enter-source -- cgit v1.2.3 From c774d8e19a114951bd3c7d63bb1a80a0344804a7 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 01:10:33 +0200 Subject: gnu: android-libbase: Document test failure. * gnu/packages/android.scm (android-libbase): Document test failure. --- gnu/packages/android.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 9302fc3f2f..e1bc3ff27b 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -175,7 +175,7 @@ in Main, System, Radio and Events sub-logs.") (source (android-platform-system-core version)) (build-system android-ndk-build-system) (arguments - `(#:tests? #f ; TODO. + `(#:tests? #f ; Test failure: logging.UNIMPLEMENTED #:make-flags '("CXXFLAGS=-std=gnu++11") #:phases (modify-phases %standard-phases -- cgit v1.2.3 From 23e70a692c3c334c36adf7a3f4e9cbc7e2952644 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 01:11:30 +0200 Subject: gnu: android-libsparse: Don't disable tests. * gnu/packages/android.scm (android-libsparse)[arguments]: Enable tests. --- gnu/packages/android.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index e1bc3ff27b..dbe8c12025 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -249,8 +249,7 @@ various Android core host applications.") (source (android-platform-system-core version)) (build-system android-ndk-build-system) (arguments - `(#:tests? #f ; TODO. - #:make-flags '("CFLAGS=-Wno-error" + `(#:make-flags '("CFLAGS=-Wno-error" "CXXFLAGS=-fpermissive -Wno-error") #:phases (modify-phases %standard-phases -- cgit v1.2.3 From 52bdbaf2d32bb159a3613d1120be3792ab1e3691 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 01:26:30 +0200 Subject: gnu: android-make-stub: Update to 0.5.3. * gnu/packages/android.scm (android-make-stub): Update to 0.5.3. --- gnu/packages/android.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index dbe8c12025..7aad719135 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -46,7 +46,7 @@ (define-public android-make-stub (package (name "android-make-stub") - (version "0.5.2") + (version "0.5.3") (source (origin (method git-fetch) @@ -57,7 +57,7 @@ version "-checkout")) (sha256 (base32 - "158qnp1x8isqfxcqglikinz65hw8iz6paw2cn8z0s8dysp4awb9g")))) + "1q1hx4afca8wxwwf8xka7vngyh7znwpblw5y876p9zvyn84f4ysf")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; None exist. -- cgit v1.2.3 From e55e6d30f5aea01ce96edd27c97b73a71b07b627 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 01:27:01 +0200 Subject: gnu: android-libziparchive: Enable tests. * gnu/packages/android.scm (android-libziparchive)[arguments]: Enable tests. <#:phases>[setenv]: New phase. [native-inputs]: Add android-libbase, android-libutils, android-liblog. --- gnu/packages/android.scm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 7aad719135..82f6f5360e 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -270,13 +270,16 @@ various Android core host applications.") (source (android-platform-system-core version)) (build-system android-ndk-build-system) (arguments - `(#:tests? #f ; TODO. - #:make-flags '("CFLAGS=-Wno-error" + `(#:make-flags '("CFLAGS=-Wno-error" "CXXFLAGS=-fpermissive -Wno-error -std=gnu++11") #:phases (modify-phases %standard-phases (add-after 'unpack 'enter-source (lambda _ (chdir "libziparchive") #t)) + (add-before 'check 'setenv + (lambda _ + (setenv "ziparchive_tests_host_PARAMS" "--test_data_dir=testdata") + #t)) (add-after 'install 'install-headers (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -285,6 +288,10 @@ various Android core host applications.") #t)))))) (inputs `(("zlib" ,zlib))) + (native-inputs + `(("android-libbase" ,android-libbase) + ("android-libutils" ,android-libutils) + ("android-liblog" ,android-liblog))) (home-page "https://developer.android.com/") (synopsis "Android platform ZIP library") (description "@code{android-libziparchive} is a library in common use by the -- cgit v1.2.3 From d3324a4b3b8f7b46adedfa06f9eb7132d0d240fa Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 01:35:33 +0200 Subject: gnu: android-ext4-utils: Don't disable tests. * gnu/packages/android.scm (android-ext4-utils): Don't disable tests. --- gnu/packages/android.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 82f6f5360e..fe286c2018 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -464,8 +464,7 @@ that is safe to use for user space. It also includes (source (android-platform-system-extras version)) (build-system android-ndk-build-system) (arguments - `(#:tests? #f ; TODO. - #:make-flags + `(#:make-flags (list (string-append "CPPFLAGS=" ;"-Wno-error " "-I " -- cgit v1.2.3 From 9e8f0ff2a91c97a241284ba064dc3d0462b5005b Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 01:36:53 +0200 Subject: gnu: android-f2fs-utils: Don't disable tests. * gnu/packages/android.scm (android-f2fs-utils): Don't disable tests. --- gnu/packages/android.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index fe286c2018..4c47505375 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -516,8 +516,7 @@ Android core.") (source (android-platform-system-extras version)) (build-system android-ndk-build-system) (arguments - `(#:tests? #f ; TODO. - #:phases + `(#:phases (modify-phases %standard-phases (add-after 'unpack 'enter-source (lambda _ (chdir "f2fs_utils") #t)) -- cgit v1.2.3 From c6ee92c41bfc0bc3b5634651bfa62bf35f2f11b5 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 01:51:08 +0200 Subject: gnu: Add android-googletest. * gnu/packages/android.scm (android-googletest): New variable. * guix/build-system/android-ndk.scm (android-ndk-build): Use it. --- gnu/packages/android.scm | 17 +++++++++++++++++ guix/build-system/android-ndk.scm | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 4c47505375..eda243314a 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -77,6 +77,23 @@ use their packages mostly unmodified in our Android NDK build system.") (license license:asl2.0))) +(define-public android-googletest + (package (inherit googletest) + (name "android-googletest") + (arguments + `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON") + #:phases + (modify-phases %standard-phases + (add-after 'install 'install-host-libraries + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib"))) + (symlink "libgtest.so" + (string-append lib "/libgtest_host.so")) + (symlink "libgmock.so" + (string-append lib "/libgmock_host.so")) + #t)))))))) + ;; The Makefiles that we add are largely based on the Debian ;; packages. They are licensed under GPL-2 and have copyright: ;; 2012, Stefan Handschuh diff --git a/guix/build-system/android-ndk.scm b/guix/build-system/android-ndk.scm index 891fc6e042..029f654bb3 100644 --- a/guix/build-system/android-ndk.scm +++ b/guix/build-system/android-ndk.scm @@ -113,7 +113,7 @@ ;; Keep the standard inputs of 'gnu-build-system' ,@(standard-packages))) (build-inputs `(("android-make-stub" ,(module-ref (resolve-interface '(gnu packages android)) 'android-make-stub)) - ("googletest" ,(module-ref (resolve-interface '(gnu packages check)) 'googletest)) + ("android-googletest" ,(module-ref (resolve-interface '(gnu packages android)) 'android-googletest)) ,@native-inputs)) (outputs outputs) (build android-ndk-build) -- cgit v1.2.3 From 7715269e3aa16b6744890036b27791fff93cd3c1 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 02:27:31 +0200 Subject: gnu: android-make-stub: Update to 0.5.4. * gnu/packages/android.scm (android-make-stub): Update to 0.5.4. --- gnu/packages/android.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index eda243314a..511ec352b0 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -46,7 +46,7 @@ (define-public android-make-stub (package (name "android-make-stub") - (version "0.5.3") + (version "0.5.4") (source (origin (method git-fetch) @@ -57,7 +57,7 @@ version "-checkout")) (sha256 (base32 - "1q1hx4afca8wxwwf8xka7vngyh7znwpblw5y876p9zvyn84f4ysf")))) + "0jg5qalxgbdwva7c5r350fna9baxdbpys21g6x3l2p0wzp01calp")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; None exist. -- cgit v1.2.3 From cad7c591f0d21360f56edd13887cd60e201e0424 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 02:33:38 +0200 Subject: gnu: android-make-stub: Update to 0.5.5. * gnu/packages/android.scm (android-make-stub): Update to 0.5.5. --- gnu/packages/android.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 511ec352b0..9e2ce429a2 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -46,7 +46,7 @@ (define-public android-make-stub (package (name "android-make-stub") - (version "0.5.4") + (version "0.5.5") (source (origin (method git-fetch) @@ -57,7 +57,7 @@ version "-checkout")) (sha256 (base32 - "0jg5qalxgbdwva7c5r350fna9baxdbpys21g6x3l2p0wzp01calp")))) + "0shm4xvc2v6dn6pxydy6yn64qrrpcvx8ssmym9053wk0w5s9wp9q")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; None exist. -- cgit v1.2.3 From cc59bf70975b2ab4224f165709c8be3c661d4cdb Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 02:34:30 +0200 Subject: gnu: android-libutils: Add android-liblog. * gnu/packages/android.scm (android-libutils)[native-inputs]: Add android-liblog. --- gnu/packages/android.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 9e2ce429a2..88961ca4ff 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -575,7 +575,8 @@ Android core.") `(("android-safe-iop" ,android-safe-iop) ("android-libcutils" ,android-libcutils))) (native-inputs - `(("android-bionic-uapi" ,android-bionic-uapi))) + `(("android-bionic-uapi" ,android-bionic-uapi) + ("android-liblog" ,android-liblog))) (home-page "https://developer.android.com/") (synopsis "Android utility library") (description "@code{android-libutils} provides utilities for Android NDK developers.") -- cgit v1.2.3 From fff92439b292a6b4fcb22563a1b9fcec37c1a5ca Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 02:38:20 +0200 Subject: gnu: fastboot: Simplify package. * gnu/packages/android.scm (fastboot)[arguments]<#:phases> [make-googletest-available]: Delete phase. [inputs]: Remove openssl. --- gnu/packages/android.scm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 88961ca4ff..9a2a990f44 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -606,11 +606,6 @@ Android core.") (lambda _ (chdir "core/fastboot") #t)) - (add-after 'enter-source 'make-googletest-available - (lambda* (#:key inputs #:allow-other-keys) - (let ((googletest (assoc-ref inputs "googletest"))) - (symlink (string-append googletest "/lib/libgtest.so") "libgtest_host.so") - #t))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -634,7 +629,6 @@ Android core.") ("android-libselinux" ,android-libselinux) ("pcre" ,pcre) ("mkbootimg" ,mkbootimg) - ("openssl" ,openssl) ; FIXME remove ("zlib" ,zlib))) (native-inputs `(("core" ,(android-platform-system-core version)) -- cgit v1.2.3 From b913d1eaf23bf7ed6de24b85dbe18ea129fd2e1d Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 02:41:20 +0200 Subject: gnu: fastboot: Enable tests. * gnu/packages/android.scm (fastboot)[arguments]: Enable tests. --- gnu/packages/android.scm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 9a2a990f44..e9e13a655c 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -612,8 +612,7 @@ Android core.") (lib (string-append out "/lib")) (bin (string-append out "/bin"))) (install-file "fastboot" bin) - #t)))) - #:tests? #f)) ; Require network + #t)))))) (inputs `(("adb" ,adb) ("android-safe-iop" ,android-safe-iop) -- cgit v1.2.3 From 362f3bf3547cfe6b880acfe2baee243e20840e5c Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 02:44:34 +0200 Subject: gnu: adb: Document test failure. * gnu/packages/android.scm (adb): Document test failure. --- gnu/packages/android.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index e9e13a655c..d7b1182579 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -322,7 +322,7 @@ various Android core host applications.") (source (android-platform-system-core version)) (build-system android-ndk-build-system) (arguments - `(#:tests? #f ; TODO. + `(#:tests? #f ; Test failure: sysdeps_poll.fd_count #:make-flags (list "CFLAGS=-Wno-error" "CXXFLAGS=-fpermissive -Wno-error -std=gnu++14 -D_Nonnull= -D_Nullable= -I ." -- cgit v1.2.3 From 81dec5967a1a6dbf1bfbc4b2fd9cf7546349bbfe Mon Sep 17 00:00:00 2001 From: "Jovany Leandro G.C" Date: Wed, 9 May 2018 15:22:40 -0500 Subject: gnu: twinkle: Fix support for codec speex * gnu/packages/telephony.scm (twinkle)[arguments]: Add #:configure-flags. Signed-off-by: Eric Bavier --- gnu/packages/telephony.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm index 40e57051e2..6b625b5d3f 100644 --- a/gnu/packages/telephony.scm +++ b/gnu/packages/telephony.scm @@ -509,6 +509,7 @@ Mumble consists of two applications for separate usage: (build-system cmake-build-system) (arguments `(#:tests? #f ; no test target + #:configure-flags '("-DWITH_SPEEX=On") #:phases (modify-phases %standard-phases (add-after 'install 'wrap-executable -- cgit v1.2.3 From f546fcb4f96b2ecf0d51f50589b3f5976723905d Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 04:04:27 +0200 Subject: gnu: fastboot: Remove (duplicate) googletest. * gnu/packages/android.scm (fastboot)[inputs]: Remove googletest. --- gnu/packages/android.scm | 1 - 1 file changed, 1 deletion(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index d7b1182579..812898c8ac 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -618,7 +618,6 @@ Android core.") ("android-safe-iop" ,android-safe-iop) ("android-ext4-utils" ,android-ext4-utils) ("android-f2fs-utils" ,android-f2fs-utils) - ("googletest" ,googletest) ("android-libbase" ,android-libbase) ("android-libcutils" ,android-libcutils) ("android-liblog" ,android-liblog) -- cgit v1.2.3 From 8297f01ee0094005c1d40923f605360a15030628 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 04:13:00 +0200 Subject: gnu: fastboot: Simplify package. * gnu/packages/android.scm (fastboot)[source]: Use android-platform-system-core. [arguments]<#:phases>[unpack]: Remove. <#:phases>[enter-source]: Modify. <#:phases>[patch-source]: New phase. [native-inputs]: Remove core, extras. --- gnu/packages/android.scm | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 812898c8ac..d09cd635e5 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -586,25 +586,20 @@ Android core.") (package (name "fastboot") (version (android-platform-version)) - (source #f) + (source (android-platform-system-core version)) (build-system android-ndk-build-system) (arguments `(#:make-flags (list "CXXFLAGS=-std=gnu++11") #:phases (modify-phases %standard-phases - (replace 'unpack - (lambda* (#:key inputs #:allow-other-keys) - (mkdir-p "core") - (with-directory-excursion "core" - (invoke "tar" "axf" (assoc-ref inputs "core") "--strip-components=1") - (substitute* "fastboot/Android.mk" - (("libext4_utils_host") "libext4_utils_host libselinux libpcre"))) - (copy-recursively (assoc-ref inputs "extras") "extras" - #:keep-mtime? #t) - #t)) (add-after 'unpack 'enter-source (lambda _ - (chdir "core/fastboot") + (chdir "fastboot") + #t)) + (add-after 'enter-source 'patch-source + (lambda _ + (substitute* "Android.mk" + (("libext4_utils_host") "libext4_utils_host libselinux libpcre")) #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) @@ -629,9 +624,7 @@ Android core.") ("mkbootimg" ,mkbootimg) ("zlib" ,zlib))) (native-inputs - `(("core" ,(android-platform-system-core version)) - ("extras" ,(android-platform-system-extras version)) - ("xz" ,xz))) + `(("xz" ,xz))) (home-page "https://developer.android.com/studio/command-line/") (synopsis "Android image flasher") (description -- cgit v1.2.3 From d412dbe456a9ecf24dbb69a41e44eb4f2483c767 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 9 May 2018 22:21:38 -0400 Subject: gnu: Update to 2.3.3. * gnu/packages/password-utils.scm (keepassxc): Update to 2.3.3. --- gnu/packages/password-utils.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 923122903e..902b709dba 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -94,7 +94,7 @@ human.") (define-public keepassxc (package (name "keepassxc") - (version "2.3.1") + (version "2.3.3") (source (origin (method url-fetch) @@ -103,7 +103,7 @@ human.") version "-src.tar.xz")) (sha256 (base32 - "1gdrbpzwbs56anc3k5vklvcackcn214pc8gm5xh5zcymsi8q4zff")))) + "1m8alsp39vk21zgcvy5zswk0dc1xmajbwnccg7n0lndsi7pqbzyg")))) (build-system cmake-build-system) (arguments '(#:configure-flags '("-DWITH_XC_NETWORKING=YES" -- cgit v1.2.3 From 51eb4a6e67bab2d84dcdc34c3b7b000dda140e4c Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 11:12:50 +0200 Subject: gnu: android-f2fs-utils: Update synopsis and description. * gnu/packages/android.scm (android-f2fs-utils)[synopsis]: Modify. [description]: Modify. --- gnu/packages/android.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index d09cd635e5..ddfe90a6b4 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -549,9 +549,10 @@ Android core.") ("android-libcutils" ,android-libcutils) ("zlib" ,zlib))) (home-page "https://developer.android.com/") - (synopsis "Android ext4 utils") - (description "@code{android-ext4-utils} is a library in common use by the -Android core.") + (synopsis "Android f2fs utils") + (description "@code{android-f2fs-utils} is a library in common use by the +Android core. It allows the user to create images for the @code{f2fs} Flash +file system.") (license license:asl2.0))) (define-public android-libutils -- cgit v1.2.3 From a73489e8a74bf5cbd85f0025c28610d098267b53 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 11:24:18 +0200 Subject: gnu: android-f2fs-utils: Install mkf2fsuserimg.sh. * gnu/packages/android.scm (android-f2fs-utils)[arguments]<#:phases> [install-shell-scripts]: New phase. --- gnu/packages/android.scm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index ddfe90a6b4..763be48748 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -541,7 +541,16 @@ Android core.") (lambda* (#:key inputs outputs #:allow-other-keys) (copy-recursively "." (string-append (assoc-ref outputs "out") "/include")) - #t))))) + #t)) + (add-after 'install 'install-shell-scripts + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (patch-shebang "mkf2fsuserimg.sh") + (substitute* "mkf2fsuserimg.sh" + (("make_f2fs") (string-append bin "/make_f2fs"))) + (install-file "mkf2fsuserimg.sh" bin) + #t)))))) (inputs `(("f2fs-tools" ,f2fs-tools-1.7) ("android-libselinux" ,android-libselinux) -- cgit v1.2.3 From 8584965b7949cdd7a4cd702b5422474b088beb36 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Thu, 10 May 2018 14:41:26 +0200 Subject: gnu: gajim: Fix GtkFileChooserDialog. * gnu/packages/messaging.scm (gajim)[arguments]: Add 'wrap-program phase to fix GtkFileChooserDialog. --- gnu/packages/messaging.scm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index b90f95da1c..6efb8121e8 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -627,7 +627,15 @@ was initially a fork of xmpppy, but uses non-blocking sockets.") (with-directory-excursion icons (symlink adwaita "Adwaita") (copy-recursively hicolor "hicolor"))) - #t))))) + #t)) + (add-after 'install-icons 'wrap-program + (lambda* (#:key inputs outputs #:allow-other-keys) + (wrap-program (string-append (assoc-ref outputs "out") + "/bin/gajim") + ;; For GtkFileChooserDialog. + `("GSETTINGS_SCHEMA_DIR" = + (,(string-append (assoc-ref inputs "gtk+") + "/share/glib-2.0/schemas"))))))))) (native-inputs `(("intltool" ,intltool) ("xorg-server" ,xorg-server))) -- cgit v1.2.3 From dac1c97d131d297134fa878ac240d9ec0127044b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 28 Apr 2018 17:17:33 +0200 Subject: union: Add 'relative-file-name'. * guix/build/union.scm (%not-slash): New variable. (relative-file-name): New procedure. * tests/union.scm (test-relative-file-name): New macro and tests. --- guix/build/union.scm | 41 ++++++++++++++++++++++++++++++++++++++++- tests/union.scm | 18 ++++++++++++++++++ tests/utils.scm | 2 +- 3 files changed, 59 insertions(+), 2 deletions(-) diff --git a/guix/build/union.scm b/guix/build/union.scm index 1179f1234b..82d6199d9e 100644 --- a/guix/build/union.scm +++ b/guix/build/union.scm @@ -27,7 +27,9 @@ #:use-module (rnrs io ports) #:export (union-build - warn-about-collision)) + warn-about-collision + + relative-file-name)) ;;; Commentary: ;;; @@ -174,4 +176,41 @@ returns #f, skip the faulty file altogether." (union-of-directories output (delete-duplicates inputs))) + +;;; +;;; Relative symlinks. +;;; + +(define %not-slash + (char-set-complement (char-set #\/))) + +(define (relative-file-name reference file) + "Given REFERENCE and FILE, both of which are absolute file names, return the +file name of FILE relative to REFERENCE. + + (relative-file-name \"/gnu/store/foo\" \"/gnu/store/bin/bar\") + => \"../bin/bar\" + +Note that this is from a purely lexical standpoint; conversely, \"..\" is +*not* resolved lexically on POSIX in the presence of symlinks." + (if (and (string-prefix? "/" file) (string-prefix? "/" reference)) + (let loop ((reference (string-tokenize reference %not-slash)) + (file (string-tokenize file %not-slash))) + (define (finish) + (string-join (append (make-list (length reference) "..") file) + "/")) + + (match reference + (() + (finish)) + ((head . tail) + (match file + (() + (finish)) + ((head* . tail*) + (if (string=? head head*) + (loop tail tail*) + (finish))))))) + file)) + ;;; union.scm ends here diff --git a/tests/union.scm b/tests/union.scm index aa95cae001..5a6a4033fc 100644 --- a/tests/union.scm +++ b/tests/union.scm @@ -184,4 +184,22 @@ (file-is-directory? "bin") (eq? 'symlink (stat:type (lstat "bin/guile")))))))) +(letrec-syntax ((test-relative-file-name + (syntax-rules (=>) + ((_ (reference file => expected) rest ...) + (begin + (test-equal (string-append "relative-file-name " + reference " " file) + expected + (relative-file-name reference file)) + (test-relative-file-name rest ...))) + ((_) + #t)))) + (test-relative-file-name + ("/a/b" "/a/c/d" => "../c/d") + ("/a/b" "/a/b" => "") + ("/a/b" "/a" => "..") + ("/a/b" "/a/b/c/d" => "c/d") + ("/a/b/c" "/a/d/e/f" => "../../d/e/f"))) + (test-end) diff --git a/tests/utils.scm b/tests/utils.scm index 035886dd16..197182acf7 100644 --- a/tests/utils.scm +++ b/tests/utils.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2016 Mathieu Lirzin ;;; -- cgit v1.2.3 From e00ade3fb81f89cd7c030f998ccd3e07ef2628f0 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 28 Apr 2018 22:20:36 +0200 Subject: profiles: Optionally use relative file names for symlink targets. * guix/build/union.scm (symlink-relative): New procedure. * guix/build/profiles.scm: Re-export it. (build-profile): Add #:symlink and pass it to 'union-build'. * guix/profiles.scm (profile-derivation): Add #:relative-symlinks?. Pass #:symlink to 'build-profile'. * tests/profiles.scm ("profile-derivation relative symlinks, one entry") ("profile-derivation relative symlinks, two entries"): New tests. --- guix/build/profiles.scm | 14 +++++++++----- guix/build/union.scm | 9 ++++++++- guix/profiles.scm | 7 +++++++ tests/profiles.scm | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 70 insertions(+), 6 deletions(-) diff --git a/guix/build/profiles.scm b/guix/build/profiles.scm index b4160fba1b..819688a913 100644 --- a/guix/build/profiles.scm +++ b/guix/build/profiles.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2015, 2017 Ludovic Courtès +;;; Copyright © 2015, 2017, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +24,7 @@ #:use-module (ice-9 ftw) #:use-module (ice-9 match) #:use-module (ice-9 pretty-print) + #:re-export (symlink-relative) ;for convenience #:export (ensure-writable-directory build-profile)) @@ -129,12 +130,15 @@ instead make DIRECTORY a \"real\" directory containing symlinks." (apply throw args)))))) (define* (build-profile output inputs - #:key manifest search-paths) - "Build a user profile from INPUTS in directory OUTPUT. Write MANIFEST, an -sexp, to OUTPUT/manifest. Create OUTPUT/etc/profile with Bash definitions for --all the variables listed in SEARCH-PATHS." + #:key manifest search-paths + (symlink symlink)) + "Build a user profile from INPUTS in directory OUTPUT, using SYMLINK to +create symlinks. Write MANIFEST, an sexp, to OUTPUT/manifest. Create +OUTPUT/etc/profile with Bash definitions for -all the variables listed in +SEARCH-PATHS." ;; Make the symlinks. (union-build output inputs + #:symlink symlink #:log-port (%make-void-port "w")) ;; Store meta-data. diff --git a/guix/build/union.scm b/guix/build/union.scm index 82d6199d9e..24b366af45 100644 --- a/guix/build/union.scm +++ b/guix/build/union.scm @@ -29,7 +29,8 @@ warn-about-collision - relative-file-name)) + relative-file-name + symlink-relative)) ;;; Commentary: ;;; @@ -213,4 +214,10 @@ Note that this is from a purely lexical standpoint; conversely, \"..\" is (finish))))))) file)) +(define (symlink-relative old new) + "Assuming both OLD and NEW are absolute file names, make NEW a symlink to +OLD, but using a relative file name." + (symlink (relative-file-name (dirname new) old) + new)) + ;;; union.scm ends here diff --git a/guix/profiles.scm b/guix/profiles.scm index 95dc9746bd..c17961c987 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -1202,6 +1202,7 @@ the entries in MANIFEST." (hooks %default-profile-hooks) (locales? #t) (allow-collisions? #f) + (relative-symlinks? #f) system target) "Return a derivation that builds a profile (aka. 'user environment') with the given MANIFEST. The profile includes additional derivations returned by @@ -1213,6 +1214,9 @@ with a different version number.) When LOCALES? is true, the build is performed under a UTF-8 locale; this adds a dependency on the 'glibc-utf8-locales' package. +When RELATIVE-SYMLINKS? is true, use relative file names for symlink targets. +This is one of the things to do for the result to be relocatable. + When TARGET is true, it must be a GNU triplet, and the packages in MANIFEST are cross-built for TARGET." (mlet* %store-monad ((system (if system @@ -1275,6 +1279,9 @@ are cross-built for TARGET." (manifest-entries manifest)))))) (build-profile #$output '#$inputs + #:symlink #$(if relative-symlinks? + #~symlink-relative + #~symlink) #:manifest '#$(manifest->gexp manifest) #:search-paths search-paths)))) diff --git a/tests/profiles.scm b/tests/profiles.scm index 8d3cfe91d3..c668c2b831 100644 --- a/tests/profiles.scm +++ b/tests/profiles.scm @@ -223,6 +223,52 @@ (string=? (dirname (readlink bindir)) (derivation->output-path guile)))))) +(test-assertm "profile-derivation relative symlinks, one entry" + (mlet* %store-monad + ((entry -> (package->manifest-entry %bootstrap-guile)) + (guile (package->derivation %bootstrap-guile)) + (drv (profile-derivation (manifest (list entry)) + #:relative-symlinks? #t + #:hooks '() + #:locales? #f)) + (profile -> (derivation->output-path drv)) + (bindir -> (string-append profile "/bin")) + (_ (built-derivations (list drv)))) + (return (and (file-exists? (string-append bindir "/guile")) + (string=? (readlink bindir) + (string-append "../" + (basename + (derivation->output-path guile)) + "/bin")))))) + +(unless (network-reachable?) (test-skip 1)) +(test-assertm "profile-derivation relative symlinks, two entries" + (mlet* %store-monad + ((gnu-make-boot0 -> (@@ (gnu packages commencement) gnu-make-boot0)) + (manifest -> (packages->manifest + (list %bootstrap-guile gnu-make-boot0))) + (guile (package->derivation %bootstrap-guile)) + (make (package->derivation gnu-make-boot0)) + (drv (profile-derivation manifest + #:relative-symlinks? #t + #:hooks '() + #:locales? #f)) + (profile -> (derivation->output-path drv)) + (bindir -> (string-append profile "/bin")) + (_ (built-derivations (list drv)))) + (return (and (file-exists? (string-append bindir "/guile")) + (file-exists? (string-append bindir "/make")) + (string=? (readlink (string-append bindir "/guile")) + (string-append "../../" + (basename + (derivation->output-path guile)) + "/bin/guile")) + (string=? (readlink (string-append bindir "/make")) + (string-append "../../" + (basename + (derivation->output-path make)) + "/bin/make")))))) + (test-assertm "profile-derivation, inputs" (mlet* %store-monad ((entry -> (package->manifest-entry packages:glibc "debug")) -- cgit v1.2.3 From 3636b1c7fed295446652de4fd1376f0ab37705f3 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 2 May 2018 11:01:56 +0200 Subject: profiles: Allow lowerable objects other than packages in . * guix/profiles.scm (manifest-lookup-package)[entry-lookup-package]: Add case where 'manifest-entry-item' returns something that's neither a string nor a package. --- guix/profiles.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/guix/profiles.scm b/guix/profiles.scm index c17961c987..dca2479769 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -168,7 +168,7 @@ (version manifest-entry-version) ; string (output manifest-entry-output ; string (default "out")) - (item manifest-entry-item) ; package | store path + (item manifest-entry-item) ; package | file-like | store path (dependencies manifest-entry-dependencies ; * (default '())) (search-paths manifest-entry-search-paths ; search-path-specification* @@ -318,7 +318,7 @@ denoting a specific output of a package." (propagated-inputs #$(map entry->gexp deps)) (search-paths #$(map search-path-specification->sexp search-paths)))) - (($ name version output (? package? package) + (($ name version output package (deps ...) (search-paths ...)) #~(#$name #$version #$output (ungexp package (or output "out")) @@ -671,7 +671,13 @@ if not found." (return (find-among-inputs inputs))))) ((? string? item) (mlet %store-monad ((refs (references* item))) - (return (find-among-store-items refs))))))) + (return (find-among-store-items refs)))) + (item + ;; XXX: ITEM might be a 'computed-file' or anything like that, in + ;; which case we don't know what to do. The fix may be to check + ;; references once ITEM is compiled, as proposed at + ;; . + (return #f))))) (anym %store-monad entry-lookup-package (manifest-entries manifest))) -- cgit v1.2.3 From 54fd5ad0a5da92a35056a72021174234913fe10f Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 2 May 2018 19:50:45 +0200 Subject: search-paths: Add 'set-search-paths'. * guix/search-paths.scm (set-search-paths): New procedure. --- guix/search-paths.scm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/guix/search-paths.scm b/guix/search-paths.scm index 4bf0e44389..002e6342bb 100644 --- a/guix/search-paths.scm +++ b/guix/search-paths.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2017 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2017, 2018 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -38,7 +38,8 @@ string-tokenize* evaluate-search-paths environment-variable-definition - search-path-definition)) + search-path-definition + set-search-paths)) ;;; Commentary: ;;; @@ -196,4 +197,14 @@ prefix/suffix." #:kind kind #:separator separator)))) +(define* (set-search-paths search-paths directories + #:key (setenv setenv)) + "Set the search path environment variables specified by SEARCH-PATHS for the +given directories." + (for-each (match-lambda + ((spec . value) + (setenv (search-path-specification-variable spec) + value))) + (evaluate-search-paths search-paths directories))) + ;;; search-paths.scm ends here -- cgit v1.2.3 From 47a60325ca650e8fc1a291c8655b4297f4de8deb Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Wed, 2 May 2018 17:08:37 +0200 Subject: pack: Add '--relocatable'. * gnu/packages/aux-files/run-in-namespace.c: New file. * Makefile.am (AUX_FILES): Add it. * guix/scripts/pack.scm (): New record type. (c-compiler, bootstrap-c-compiler, c-compiler-compiler): New procedures. (self-contained-tarball): Use 'relative-file-name' for the SOURCE -> TARGET symlink. (docker-image): Add 'defmod' to please Geiser. (wrapped-package, map-manifest-entries): New procedures. (%options, show-help): Add --relocatable. (guix-pack): Honor it. --- Makefile.am | 3 +- doc/guix.texi | 42 +++++ gnu/packages/aux-files/run-in-namespace.c | 264 ++++++++++++++++++++++++++++++ guix/scripts/pack.scm | 182 +++++++++++++++++++- tests/guix-pack.sh | 10 +- 5 files changed, 488 insertions(+), 13 deletions(-) create mode 100644 gnu/packages/aux-files/run-in-namespace.c diff --git a/Makefile.am b/Makefile.am index 2110371f7a..38bd54cf4f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -274,7 +274,8 @@ AUX_FILES = \ gnu/packages/aux-files/linux-libre/4.4-i686.conf \ gnu/packages/aux-files/linux-libre/4.4-x86_64.conf \ gnu/packages/aux-files/linux-libre/4.1-i686.conf \ - gnu/packages/aux-files/linux-libre/4.1-x86_64.conf + gnu/packages/aux-files/linux-libre/4.1-x86_64.conf \ + gnu/packages/aux-files/run-in-namespace.c # Templates, examples. EXAMPLES = \ diff --git a/doc/guix.texi b/doc/guix.texi index 8b9f8721ba..6aeb313773 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2834,6 +2834,15 @@ guix pack -S /opt/gnu/bin=bin guile emacs geiser @noindent That way, users can happily type @file{/opt/gnu/bin/guile} and enjoy. +@cindex relocatable binaries, with @command{guix pack} +What if the recipient of your pack does not have root privileges on +their machine, and thus cannot unpack it in the root file system? In +that case, you will want to use the @code{--relocatable} option (see +below). This option produces @dfn{relocatable binaries}, meaning they +they can be placed anywhere in the file system hierarchy: in the example +above, users can unpack your tarball in their home directory and +directly run @file{./opt/gnu/bin/guile}. + Alternatively, you can produce a pack in the Docker image format using the following command: @@ -2867,6 +2876,39 @@ This produces a tarball that follows the Docker Image Specification}. @end table +@item --relocatable +@itemx -R +Produce @dfn{relocatable binaries}---i.e., binaries that can be placed +anywhere in the file system hierarchy and run from there. For example, +if you create a pack containing Bash with: + +@example +guix pack -R -S /mybin=bin bash +@end example + +@noindent +... you can copy that pack to a machine that lacks Guix, and from your +home directory as a normal user, run: + +@example +tar xf pack.tar.gz +./mybin/sh +@end example + +@noindent +In that shell, if you type @code{ls /gnu/store}, you'll notice that +@file{/gnu/store} shows up and contains all the dependencies of +@code{bash}, even though the machine actually lacks @file{/gnu/store} +altogether! That is probably the simplest way to deploy Guix-built +software on a non-Guix machine. + +There's a gotcha though: this technique relies on the @dfn{user +namespace} feature of the kernel Linux, which allows unprivileged users +to mount or change root. Old versions of Linux did not support it, and +some GNU/Linux distributions turn it off; on these systems, programs +from the pack @emph{will fail to run}, unless they are unpacked in the +root file system. + @item --expression=@var{expr} @itemx -e @var{expr} Consider the package @var{expr} evaluates to. diff --git a/gnu/packages/aux-files/run-in-namespace.c b/gnu/packages/aux-files/run-in-namespace.c new file mode 100644 index 0000000000..d0ab05c5db --- /dev/null +++ b/gnu/packages/aux-files/run-in-namespace.c @@ -0,0 +1,264 @@ +/* GNU Guix --- Functional package management for GNU + Copyright (C) 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 . */ + +/* Make the given @WRAPPED_PROGRAM@ relocatable by executing it in a separate + mount namespace where the store is mounted in its right place. + + We would happily do that in Scheme using 'call-with-container'. However, + this very program needs to be relocatable, so it needs to be statically + linked, which complicates things (Guile's modules can hardly be "linked" + into a single executable.) */ + +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Concatenate DIRECTORY, a slash, and FILE. Return the result, which the + caller must eventually free. */ +static char * +concat (const char *directory, const char *file) +{ + char *result = malloc (strlen (directory) + 2 + strlen (file)); + assert (result != NULL); + + strcpy (result, directory); + strcat (result, "/"); + strcat (result, file); + return result; +} + +static void +mkdir_p (const char *directory) +{ + if (strcmp (directory, "/") != 0) + { + char *parent = dirname (strdupa (directory)); + mkdir_p (parent); + int err = mkdir (directory, 0700); + if (err < 0 && errno != EEXIST) + assert_perror (errno); + } +} + +static void +rm_rf (const char *directory) +{ + DIR *stream = opendir (directory); + + for (struct dirent *entry = readdir (stream); + entry != NULL; + entry = readdir (stream)) + { + if (strcmp (entry->d_name, ".") == 0 + || strcmp (entry->d_name, "..") == 0) + continue; + + char *full = concat (directory, entry->d_name); + + int err = unlink (full); + if (err < 0) + { + if (errno == EISDIR) + /* Recurse (we expect a shallow directory structure so there's + little risk of stack overflow.) */ + rm_rf (full); + else + assert_perror (errno); + } + + free (full); + } + + closedir (stream); + + int err = rmdir (directory); + if (err < 0 && errno != ENOENT) + assert_perror (errno); +} + +/* Bind mount all the top-level entries in SOURCE to TARGET. */ +static void +bind_mount (const char *source, const char *target) +{ + DIR *stream = opendir (source); + + for (struct dirent *entry = readdir (stream); + entry != NULL; + entry = readdir (stream)) + { + /* XXX: Some file systems may not report a useful 'd_type'. Ignore them + for now. */ + assert (entry->d_type != DT_UNKNOWN); + + if (strcmp (entry->d_name, ".") == 0 + || strcmp (entry->d_name, "..") == 0) + continue; + + char *abs_source = concat (source, entry->d_name); + char *new_entry = concat (target, entry->d_name); + + if (entry->d_type == DT_LNK) + { + char target[PATH_MAX]; + + ssize_t result = readlink (abs_source, target, sizeof target - 1); + if (result > 0) + { + target[result] = '\0'; + int err = symlink (target, new_entry); + if (err < 0) + assert_perror (errno); + } + } + else + { + /* Create the mount point. */ + if (entry->d_type == DT_DIR) + { + int err = mkdir (new_entry, 0700); + if (err != 0) + assert_perror (errno); + } + else + close (open (new_entry, O_WRONLY | O_CREAT)); + + int err = mount (abs_source, new_entry, "none", + MS_BIND | MS_REC | MS_RDONLY, NULL); + + /* It used to be that only directories could be bind-mounted. Thus, + keep going if we fail to bind-mount a non-directory entry. + That's OK because regular files in the root file system are + usually uninteresting. */ + if (err != 0 && entry->d_type != DT_DIR) + assert_perror (errno); + + free (new_entry); + free (abs_source); + } + } + + closedir (stream); +} + + +int +main (int argc, char *argv[]) +{ + ssize_t size; + char self[PATH_MAX]; + size = readlink ("/proc/self/exe", self, sizeof self - 1); + assert (size > 0); + + /* SELF is something like "/home/ludo/.local/gnu/store/…-foo/bin/ls" and we + want to extract "/home/ludo/.local/gnu/store". */ + size_t index = strlen (self) + - strlen ("@WRAPPED_PROGRAM@") + + strlen ("@STORE_DIRECTORY@"); + char *store = strdup (self); + store[index] = '\0'; + + struct stat statbuf; + + /* If STORE is already at the "right" place, we can execute + @WRAPPED_PROGRAM@ right away. This is not just an optimization: it's + needed when running one of these wrappers from within an unshare'd + namespace, because 'unshare' fails with EPERM in that context. */ + if (strcmp (store, "@STORE_DIRECTORY@") != 0 + && lstat ("@WRAPPED_PROGRAM@", &statbuf) != 0) + { + /* Spawn @WRAPPED_PROGRAM@ in a separate namespace where STORE is + bind-mounted in the right place. */ + int err; + char *new_root = mkdtemp (strdup ("/tmp/guix-exec-XXXXXX")); + char *new_store = concat (new_root, "@STORE_DIRECTORY@"); + char *cwd = get_current_dir_name (); + + pid_t child = fork (); + switch (child) + { + case 0: + /* Unshare namespaces in the child and set up bind-mounts from + there. That way, bind-mounts automatically disappear when the + child exits, which simplifies cleanup for the parent. */ + err = unshare (CLONE_NEWNS | CLONE_NEWUSER); + if (err < 0) + { + fprintf (stderr, "%s: error: 'unshare' failed: %m\n", argv[0]); + fprintf (stderr, "\ +This may be because \"user namespaces\" are not supported on this system.\n\ +Consequently, we cannot run '@WRAPPED_PROGRAM@',\n\ +unless you move it to the '@STORE_DIRECTORY@' directory.\n\ +\n\ +Please refer to the 'guix pack' documentation for more information.\n"); + return EXIT_FAILURE; + } + + /* Note: Due to + we cannot make NEW_ROOT a tmpfs (which would have saved the need + for 'rm_rf'.) */ + bind_mount ("/", new_root); + mkdir_p (new_store); + err = mount (store, new_store, "none", MS_BIND | MS_REC | MS_RDONLY, + NULL); + if (err < 0) + assert_perror (errno); + + chdir (new_root); + err = chroot (new_root); + if (err < 0) + assert_perror (errno); + + /* Change back to where we were before chroot'ing. */ + chdir (cwd); + break; + case -1: + assert_perror (errno); + break; + default: + { + int status; + waitpid (child, &status, 0); + chdir ("/"); /* avoid EBUSY */ + rm_rf (new_root); + free (new_root); + exit (status); + } + } + } + + /* The executable is available under @STORE_DIRECTORY@, so we can now + execute it. */ + int err = execv ("@WRAPPED_PROGRAM@", argv); + if (err < 0) + assert_perror (errno); + + return EXIT_FAILURE; +} diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 0e09a01496..db5609219f 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -32,6 +32,8 @@ #:use-module (guix packages) #:use-module (guix profiles) #:use-module (guix derivations) + #:use-module (guix search-paths) + #:use-module (guix build-system gnu) #:use-module (guix scripts build) #:use-module (gnu packages) #:use-module (gnu packages bootstrap) @@ -100,11 +102,14 @@ with a properly initialized store database. SYMLINKS must be a list of (SOURCE -> TARGET) tuples denoting symlinks to be added to the pack." (define build - (with-imported-modules '((guix build utils) - (guix build store-copy) - (gnu build install)) + (with-imported-modules (source-module-closure + '((guix build utils) + (guix build union) + (guix build store-copy) + (gnu build install))) #~(begin (use-modules (guix build utils) + ((guix build union) #:select (relative-file-name)) (gnu build install) (srfi srfi-1) (srfi srfi-26) @@ -119,7 +124,8 @@ added to the pack." ((source '-> target) (let ((target (string-append #$profile "/" target))) `((directory ,(dirname source)) - (,source -> ,target)))))) + (,source + -> ,(relative-file-name (dirname source) target))))))) (define directives ;; Fully-qualified symlinks. @@ -217,11 +223,13 @@ the image." (('gnu rest ...) #t) (rest #f))) + (define defmod 'define-module) ;trick Geiser + (define config ;; (guix config) module for consumption by (guix gcrypt). (scheme-file "gcrypt-config.scm" #~(begin - (define-module (guix config) + (#$defmod (guix config) #:export (%libgcrypt)) ;; XXX: Work around . @@ -265,6 +273,150 @@ the image." build #:references-graphs `(("profile" ,profile)))) + +;;; +;;; Compiling C programs. +;;; + +;; A C compiler. That lowers to a single program that can be passed typical C +;; compiler flags, and it makes sure the whole toolchain is available. +(define-record-type + (%c-compiler toolchain guile) + c-compiler? + (toolchain c-compiler-toolchain) + (guile c-compiler-guile)) + +(define* (c-compiler #:optional inputs + #:key (guile (default-guile))) + (%c-compiler inputs guile)) + +(define (bootstrap-c-compiler) + "Return the C compiler that uses the bootstrap toolchain. This is used only +by '--bootstrap', for testing purposes." + (define bootstrap-toolchain + (list (first (assoc-ref %bootstrap-inputs "gcc")) + (first (assoc-ref %bootstrap-inputs "binutils")) + (first (assoc-ref %bootstrap-inputs "libc")))) + + (c-compiler bootstrap-toolchain + #:guile %bootstrap-guile)) + +(define-gexp-compiler (c-compiler-compiler (compiler ) system target) + "Lower COMPILER to a single script that does the right thing." + (define toolchain + (or (c-compiler-toolchain compiler) + (list (first (assoc-ref (standard-packages) "gcc")) + (first (assoc-ref (standard-packages) "ld-wrapper")) + (first (assoc-ref (standard-packages) "binutils")) + (first (assoc-ref (standard-packages) "libc")) + (gexp-input (first (assoc-ref (standard-packages) "libc")) + "static")))) + + (define inputs + (match (append-map package-propagated-inputs + (filter package? toolchain)) + (((labels things . _) ...) + (append toolchain things)))) + + (define search-paths + (cons $PATH + (append-map package-native-search-paths + (filter package? inputs)))) + + (define run + (with-imported-modules (source-module-closure + '((guix build utils) + (guix search-paths))) + #~(begin + (use-modules (guix build utils) (guix search-paths) + (ice-9 match)) + + (define (output-file args) + (let loop ((args args)) + (match args + (() "a.out") + (("-o" file _ ...) file) + ((head rest ...) (loop rest))))) + + (set-search-paths (map sexp->search-path-specification + '#$(map search-path-specification->sexp + search-paths)) + '#$inputs) + + (let ((output (output-file (command-line)))) + (apply invoke "gcc" (cdr (command-line))) + (invoke "strip" output))))) + + (when target + ;; TODO: Yep, we'll have to do it someday! + (leave (G_ "cross-compilation not implemented here; +please email '~a'~%") + (@ (guix config) %guix-bug-report-address))) + + (gexp->script "c-compiler" run + #:guile (c-compiler-guile compiler))) + + +;;; +;;; Wrapped package. +;;; + +(define* (wrapped-package package + #:optional (compiler (c-compiler))) + (define runner + (local-file (search-auxiliary-file "run-in-namespace.c"))) + + (define build + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils) + (ice-9 match)) + + (define (strip-store-prefix file) + ;; Given a file name like "/gnu/store/…-foo-1.2/bin/foo", return + ;; "/bin/foo". + (let* ((len (string-length (%store-directory))) + (base (string-drop file (+ 1 len)))) + (match (string-index base #\/) + (#f base) + (index (string-drop base index))))) + + (define (build-wrapper program) + ;; Build a user-namespace wrapper for PROGRAM. + (format #t "building wrapper for '~a'...~%" program) + (copy-file #$runner "run.c") + + (substitute* "run.c" + (("@WRAPPED_PROGRAM@") program) + (("@STORE_DIRECTORY@") (%store-directory))) + + (let* ((base (strip-store-prefix program)) + (result (string-append #$output "/" base))) + (mkdir-p (dirname result)) + (invoke #$compiler "-std=gnu99" "-static" "-Os" "-g0" "-Wall" + "run.c" "-o" result) + (delete-file "run.c"))) + + (setvbuf (current-output-port) + (cond-expand (guile-2.2 'line) + (else _IOLBF))) + (for-each build-wrapper + (append (find-files #$(file-append package "/bin")) + (find-files #$(file-append package "/sbin")) + (find-files #$(file-append package "/libexec"))))))) + + (computed-file (string-append (package-full-name package "-") "R") + build)) + +(define (map-manifest-entries proc manifest) + "Apply PROC to all the entries of MANIFEST and return a new manifest." + (make-manifest + (map (lambda (entry) + (manifest-entry + (inherit entry) + (item (proc (manifest-entry-item entry))))) + (manifest-entries manifest)))) + ;;; ;;; Command-line options. @@ -302,6 +454,9 @@ the image." (option '(#\f "format") #t #f (lambda (opt name arg result) (alist-cons 'format (string->symbol arg) result))) + (option '(#\R "relocatable") #f #f + (lambda (opt name arg result) + (alist-cons 'relocatable? #t result))) (option '(#\e "expression") #t #f (lambda (opt name arg result) (alist-cons 'expression arg result))) @@ -354,6 +509,8 @@ Create a bundle of PACKAGE.\n")) (display (G_ " -f, --format=FORMAT build a pack in the given FORMAT")) (display (G_ " + -R, --relocatable produce relocatable executables")) + (display (G_ " -e, --expression=EXPR consider the package EXPR evaluates to")) (display (G_ " -s, --system=SYSTEM attempt to build for SYSTEM--e.g., \"i686-linux\"")) @@ -417,6 +574,9 @@ Create a bundle of PACKAGE.\n")) (with-error-handling (with-store store + ;; Set the build options before we do anything else. + (set-build-options-from-command-line store opts) + (parameterize ((%graft? (assoc-ref opts 'graft?)) (%guile-for-build (package-derivation store @@ -425,7 +585,13 @@ Create a bundle of PACKAGE.\n")) (canonical-package guile-2.2)) #:graft? (assoc-ref opts 'graft?)))) (let* ((dry-run? (assoc-ref opts 'dry-run?)) - (manifest (manifest-from-args store opts)) + (relocatable? (assoc-ref opts 'relocatable?)) + (manifest (let ((manifest (manifest-from-args store opts))) + ;; Note: We cannot honor '--bootstrap' here because + ;; 'glibc-bootstrap' lacks 'libc.a'. + (if relocatable? + (map-manifest-entries wrapped-package manifest) + manifest))) (pack-format (assoc-ref opts 'format)) (name (string-append (symbol->string pack-format) "-pack")) @@ -444,12 +610,10 @@ Create a bundle of PACKAGE.\n")) (leave (G_ "~a: unknown pack format") format)))) (localstatedir? (assoc-ref opts 'localstatedir?))) - ;; Set the build options before we do anything else. - (set-build-options-from-command-line store opts) - (run-with-store store (mlet* %store-monad ((profile (profile-derivation manifest + #:relative-symlinks? relocatable? #:hooks (if bootstrap? '() %default-profile-hooks) diff --git a/tests/guix-pack.sh b/tests/guix-pack.sh index 5584c10e00..130389a7ad 100644 --- a/tests/guix-pack.sh +++ b/tests/guix-pack.sh @@ -20,9 +20,9 @@ # Test the `guix pack' command-line utility. # -# A network connection is required to build %bootstrap-coreutils&co, -# which is required to run these tests with the --bootstrap option. -if ! guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null; then +# The bootstrap binaries are needed to run these tests, which usually requires +# a network connection. +if ! guix build -q guile-bootstrap; then exit 77 fi @@ -87,6 +87,10 @@ guix pack --dry-run --bootstrap -f docker -S /opt/gnu=/ guile-bootstrap # guile-bootstrap is not intended to be cross-compiled. guix pack --dry-run --bootstrap --target=arm-unknown-linux-gnueabihf coreutils +# Likewise, 'guix pack -R' requires a full-blown toolchain (because +# 'glibc-bootstrap' lacks 'libc.a'), hence '--dry-run'. +guix pack -R --dry-run --bootstrap -S /mybin=bin guile-bootstrap + # Make sure package transformation options are honored. mkdir -p "$test_directory" drv1="`guix pack -n guile 2>&1 | grep pack.*\.drv`" -- cgit v1.2.3 From b87fc9ab9d619e83947c5a281b682338df136fc6 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Thu, 10 May 2018 15:31:43 +0200 Subject: gnu: android-make-stub: Update to 0.6.0. * gnu/packages/android.scm (android-make-stub): Update to 0.6.0. * guix/build-system/android-ndk.scm (android-ndk-build): Modify. (lower): Modify. --- gnu/packages/android.scm | 4 ++-- guix/build-system/android-ndk.scm | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm index 763be48748..d42a7aef1a 100644 --- a/gnu/packages/android.scm +++ b/gnu/packages/android.scm @@ -46,7 +46,7 @@ (define-public android-make-stub (package (name "android-make-stub") - (version "0.5.5") + (version "0.6.0") (source (origin (method git-fetch) @@ -57,7 +57,7 @@ version "-checkout")) (sha256 (base32 - "0shm4xvc2v6dn6pxydy6yn64qrrpcvx8ssmym9053wk0w5s9wp9q")))) + "0y1b2x96d37n6f1bp6dcx08bn08zac0cylmbfsx6mf2nahc02fhc")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; None exist. diff --git a/guix/build-system/android-ndk.scm b/guix/build-system/android-ndk.scm index 029f654bb3..dbfa626a19 100644 --- a/guix/build-system/android-ndk.scm +++ b/guix/build-system/android-ndk.scm @@ -67,8 +67,8 @@ #:make-flags (cons* "-f" ,(string-append (derivation->output-path - (car (assoc-ref inputs "android-make-stub"))) - "/share/android-make-stub/Makefile") + (car (assoc-ref inputs "android-build"))) + "/share/android/build/core/main.mk") ,make-flags) #:outputs %outputs #:search-paths ',(map search-path-specification->sexp @@ -112,7 +112,7 @@ ;; Keep the standard inputs of 'gnu-build-system' ,@(standard-packages))) - (build-inputs `(("android-make-stub" ,(module-ref (resolve-interface '(gnu packages android)) 'android-make-stub)) + (build-inputs `(("android-build" ,(module-ref (resolve-interface '(gnu packages android)) 'android-make-stub)) ("android-googletest" ,(module-ref (resolve-interface '(gnu packages android)) 'android-googletest)) ,@native-inputs)) (outputs outputs) -- cgit v1.2.3 From 36d619e85d29d1fb2e4a36406c8bc6f999484f07 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby Date: Thu, 10 May 2018 16:37:58 +0200 Subject: services: bitlbee: Add plugins. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/guix.texi (Bitlbee Service): Add plugins. * gnu/services/messaging.scm (): Add plugins argument. (bitlbee-shepherd-service): Update config file. Signed-off-by: Ludovic Courtès --- doc/guix.texi | 3 +++ gnu/services/messaging.scm | 13 +++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 6aeb313773..637c9c3f4d 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -14985,6 +14985,9 @@ networking interface. @item @code{package} (default: @code{bitlbee}) The BitlBee package to use. +@item @code{plugins} (default: @code{'()}) +List of plugin packages to use---e.g., @code{bitlbee-discord}. + @item @code{extra-settings} (default: @code{""}) Configuration snippet added as-is to the BitlBee configuration file. @end table diff --git a/gnu/services/messaging.scm b/gnu/services/messaging.scm index 273ba2cc14..4b7e724a78 100644 --- a/gnu/services/messaging.scm +++ b/gnu/services/messaging.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2017, 2018 Clément Lassieur ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2015, 2017, 2018 Ludovic Courtès +;;; Copyright © 2018 Pierre-Antoine Rouby ;;; ;;; This file is part of GNU Guix. ;;; @@ -790,20 +791,24 @@ string, you could instantiate a prosody service like this: (default "127.0.0.1")) (port bitlbee-configuration-port (default 6667)) + (plugins bitlbee-plugins + (default '())) (extra-settings bitlbee-configuration-extra-settings (default ""))) (define bitlbee-shepherd-service (match-lambda - (($ bitlbee interface port extra-settings) - (let ((conf (plain-file "bitlbee.conf" - (string-append " + (($ bitlbee interface port + plugins extra-settings) + (let ((conf (mixed-text-file "bitlbee.conf" + " [settings] User = bitlbee ConfigDir = /var/lib/bitlbee DaemonInterface = " interface " DaemonPort = " (number->string port) " -" extra-settings)))) + PluginDir = " (directory-union "bitlbee-plugins" plugins) "/lib/bitlbee +" extra-settings))) (with-imported-modules (source-module-closure '((gnu build shepherd) -- cgit v1.2.3 From 27cbe66fe77787571354482847d0e0c08d55fb8e Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Fri, 11 May 2018 00:10:17 -0400 Subject: gnu: libressl: Update to 2.7.3. * gnu/packages/tls.scm (libressl): Update to 2.7.3. --- gnu/packages/tls.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 6717b0a102..45a36db5c2 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -490,14 +490,14 @@ required structures.") (define-public libressl (package (name "libressl") - (version "2.7.2") + (version "2.7.3") (source (origin (method url-fetch) (uri (string-append "mirror://openbsd/LibreSSL/" name "-" version ".tar.gz")) (sha256 (base32 - "1589f0kg7kj51j9hid542s4isb96s1azjaqsfprpy5s2qdwqfyli")))) + "1597kj9jy3jyw52ys19sd4blg2gkam5q0rqdxbnrnvnyw67hviqn")))) (build-system gnu-build-system) (arguments ;; Do as if 'getentropy' was missing since older Linux kernels lack it -- cgit v1.2.3 From 84960cb780943a89706fb456bafe6b690a8c9039 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Fri, 11 May 2018 10:59:49 +0300 Subject: gnu: emacs-ewmctrl: Use git helpers. * gnu/packages/emacs.scm (emacs-ewmctrl)[version]: Use 'git-version'. [source]: Use 'git-file-name'. --- gnu/packages/emacs.scm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 4ad5155605..f7f53410e6 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -8348,19 +8348,17 @@ arXiv, Google Scholar, Library of Congress, etc. (license license:gpl3+)))) (define-public emacs-ewmctrl - (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf") - (revision "1")) + (let ((commit "3d0217c4d6cdb5c308b6cb4293574f470d4faacf")) (package (name "emacs-ewmctrl") - (version (string-append "0.0.1" "-" revision "." - (string-take commit 7))) + (version (git-version "0.0.1" "1" commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/flexibeast/ewmctrl.git") (commit commit))) - (file-name (string-append name "-" version "-checkout")) + (file-name (git-file-name name version)) (sha256 (base32 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi")))) -- cgit v1.2.3 From 0bcb9258172eee531cec199ec0b33a8e622b3e06 Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Fri, 11 May 2018 11:06:10 +0300 Subject: gnu: emacs-ewmctrl: Make sure wmctrl is in the right place. * gnu/packages/emacs.scm (emacs-ewmctrl): Make sure 'wmctrl' is in the right place. --- gnu/packages/emacs.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index f7f53410e6..5788f547c7 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -105,6 +105,7 @@ #:use-module (gnu packages gd) #:use-module (gnu packages fontutils) #:use-module (gnu packages password-utils) + #:use-module (gnu packages xdisorg) #:use-module (guix utils) #:use-module (srfi srfi-1) #:use-module (ice-9 match)) @@ -8363,6 +8364,19 @@ arXiv, Google Scholar, Library of Congress, etc. (base32 "0ilwvx0qryv3v6xf0gxqwnfm6pf96gxap8h9g3f6z6lk9ff4n1wi")))) (build-system emacs-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-ewmctrl + ;; This build phase makes sure ‘ewmctrl’ looks + ;; for ‘wmctrl’ in the right place. + (lambda _ + (let ((file "ewmctrl.el")) + (chmod file #o644) + (emacs-substitute-sexps file + ("(defcustom ewmctrl-wmctrl-path" (which "wmctrl"))))))))) + (inputs + `(("wmctrl" ,wmctrl))) (home-page "https://github.com/flexibeast/ewmctrl") (synopsis "Emacs interface to @code{wmctrl}") (description "@code{ewmctrl} provides an Emacs interface to -- cgit v1.2.3 From 11b43f996e08fa4789fb245bfd516071cbbf37b2 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Wed, 9 May 2018 23:14:58 +0200 Subject: gnu: Add js-filesaver. * gnu/packages/javascript.scm (js-filesaver): New variable. --- gnu/packages/javascript.scm | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/gnu/packages/javascript.scm b/gnu/packages/javascript.scm index a54d4ecabd..e2742faa11 100644 --- a/gnu/packages/javascript.scm +++ b/gnu/packages/javascript.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2017 Ricardo Wurmus ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2017 Efraim Flashner +;;; Copyright © 2018 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -368,6 +369,44 @@ to ES5 without causing run-time errors in older engines. In many cases, this means that these shams cause many ES5 methods to silently fail.") (license license:expat))) +(define-public js-filesaver + (package + (name "js-filesaver") + (version "1.3.8") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/eligrey/FileSaver.js/" + "archive/" version ".tar.gz")) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "1rkhfqs5plaj628kzj7qgm5qahy4v7ihygifidqr6g6265mil97h")))) + (build-system minify-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-uglification + ;; Remove "export" keyword which prevents the file from being + ;; uglified by uglify-js. Moreover, that keyword is not present in + ;; the minified version of the library some projects are using, + ;; e.g., + ;; + (lambda _ + (substitute* "src/FileSaver.js" + (("export ") "")) + #t))))) + (home-page + "https://eligrey.com/blog/saving-generated-files-on-the-client-side/") + (synopsis "HTML5 saveAs() FileSaver implementation") + (description "@file{FileSaver.js} implements the @code{saveAs()} +FileSaver interface in browsers that do not natively support it. + +@file{FileSaver.js} is the solution to saving files on the +client-side, and is perfect for webapps that need to generate files, +or for saving sensitive information that shouldn't be sent to an +external server.") + (license license:expat))) + (define-public mujs (package (name "mujs") -- cgit v1.2.3 From 3cfd12f305787e9e8b15d99fba2a2896832783aa Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Wed, 9 May 2018 23:27:21 +0200 Subject: gnu: Add snap. * gnu/packages/education.scm (snap): New variable. --- gnu/packages/education.scm | 73 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/gnu/packages/education.scm b/gnu/packages/education.scm index 58f06c3106..72cd7c61ba 100644 --- a/gnu/packages/education.scm +++ b/gnu/packages/education.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2016, 2017 Ricardo Wurmus ;;; Copyright © 2016 Hartmut Goebel ;;; Copyright © 2017, 2018 Efraim Flashner +;;; Copyright © 2018 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -22,27 +23,33 @@ (define-module (gnu packages education) #:use-module (ice-9 regex) #:use-module (gnu packages) - #:use-module (gnu packages qt) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) #:use-module (gnu packages compression) #:use-module (gnu packages databases) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) + #:use-module (gnu packages javascript) #:use-module (gnu packages kde-frameworks) ; extra-cmake-modules #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages qt) #:use-module (gnu packages sdl) #:use-module (gnu packages texinfo) #:use-module (gnu packages xml) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module (guix svn-download) #:use-module (guix utils) - #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) #:use-module (srfi srfi-1)) (define-public gcompris @@ -224,3 +231,65 @@ Useful support functions and an extensive progress tracker, topical lessons and the ability to create your own practice lessons make learning to type easy.") (license license:gpl2))) + +(define-public snap + (package + (name "snap") + (version "4.1.2.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jmoenig/Snap--Build-Your-Own-Blocks.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0cy3jhqqpmivqnfm9kmlnh3fhf3m3y4xqhikblk8vfjprh6vmcvd")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((source (assoc-ref %build-inputs "source")) + (out (assoc-ref %outputs "out")) + (share (string-append out "/share/snap"))) + (copy-recursively source share) + ;; Replace the sole minified file in the package. + (with-directory-excursion share + (delete-file "FileSaver.min.js") + (symlink (string-append (assoc-ref %build-inputs "js-filesaver") + "/share/javascript/FileSaver.min.js") + "FileSaver.min.js")) + ;; Create a "snap" executable. + (let* ((bin (string-append out "/bin")) + (script (string-append bin "/snap")) + (snap (string-append share "/snap.html")) + (bash (string-append (assoc-ref %build-inputs "bash") + "/bin/sh")) + (xdg-open (string-append (assoc-ref %build-inputs "xdg-utils") + "/bin/xdg-open"))) + (mkdir-p bin) + (call-with-output-file script + (lambda (port) + (format port "#!~a\n~a '~a'" bash xdg-open snap))) + (chmod script #o555))) + #t))) + (inputs + `(("bash" ,bash-minimal) + ("js-filesaver" ,js-filesaver) + ("xdg-utils" ,xdg-utils))) + (home-page "https://snap.berkeley.edu") + (synopsis "Visual, blocks based programming language") + (description "Snap! (formerly BYOB) is a visual, drag-and-drop +programming language. It is an extended reimplementation of Scratch (a +project of the Lifelong Kindergarten Group at the MIT Media Lab) that +allows you to Build Your Own Blocks. It also features first class +lists, first class procedures, and continuations. These added +capabilities make it suitable for a serious introduction to computer +science for high school or college students. + +This package provides a @command{snap} executable calling @command{xdg-open} +to open the application in a web browser, for offline usage.") + (license license:agpl3+))) -- cgit v1.2.3 From ef6a484475e7473131efd9a41473c1f25a6b0d0c Mon Sep 17 00:00:00 2001 From: Oleg Pykhalov Date: Wed, 2 May 2018 15:01:37 +0300 Subject: services: desktop: Add alsa-service-type. * gnu/services/desktop.scm (%desktop-services): Add 'alsa-service-type'. --- gnu/services/desktop.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 517d5d3efe..0dada82738 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -29,6 +29,7 @@ #:use-module (gnu services avahi) #:use-module (gnu services xorg) #:use-module (gnu services networking) + #:use-module (gnu services sound) #:use-module ((gnu system file-systems) #:select (%elogind-file-systems)) #:use-module (gnu system shadow) @@ -934,6 +935,8 @@ with the administrator's password." x11-socket-directory-service + (service alsa-service-type) + %base-services)) ;;; desktop.scm ends here -- cgit v1.2.3 From 9c4ff532f9303f4f793f27a58d0a90949628d72e Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sun, 22 Apr 2018 23:57:14 +0200 Subject: gnu: python-attrs: Update to 17.4.0. * gnu/packages/python.scm (python-attrs)[version]: Update to 17.4.0. [native-inputs]: Add python-sphinx and python-coverage. Reorder inputs. --- gnu/packages/python.scm | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index e2e74d773f..10d3d59664 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -10729,19 +10729,22 @@ and bit flag values.") (define-public python-attrs (package (name "python-attrs") - (version "17.2.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "attrs" version)) - (sha256 - (base32 - "04gx08ikpk26wnq22f7l42gapcvk8iz1512r927k6sadz6cinkax")))) + (version "17.4.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "attrs" version)) + (sha256 + (base32 + "1jafnn1kzd6qhxgprhx6y6ik1r5m2rilx25syzcmq03azp660y8w")))) (build-system python-build-system) (native-inputs - `(("python-pytest" ,python-pytest) + `(("python-coverage" ,python-coverage) ("python-hypothesis" ,python-hypothesis) - ("python-zope-interface" ,python-zope-interface) - ("python-six" ,python-six))) + ("python-pytest" ,python-pytest) + ("python-six" ,python-six) + ("python-sphinx" ,python-sphinx) + ("python-zope-interface" ,python-zope-interface))) (home-page "https://github.com/python-attrs/attrs/") (synopsis "Attributes without boilerplate") (description "@code{attrs} is a Python package with class decorators that -- cgit v1.2.3 From bbc8c36fce6f83f3112405d5bec143eb2342b38c Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Sun, 22 Apr 2018 23:59:57 +0200 Subject: gnu: Add python-async-generator. * gnu/packages/python.scm (python-async-generator): New variable. --- gnu/packages/python.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 10d3d59664..925976ad1f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -51,6 +51,7 @@ ;;; Copyright © 2018 Mathieu Lirzin ;;; Copyright © 2018 Adam Massmann ;;; Copyright © 2016, 2018 Tomáš Čech +;;; Copyright © 2018 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -13215,3 +13216,25 @@ Parso is also able to list multiple syntax errors in your Python file.") (define-public python2-parso (package-with-python2 python-parso)) + +(define-public python-async-generator + (package + (name "python-async-generator") + (version "1.9") + (source + (origin + (method url-fetch) + (uri (pypi-uri "async_generator" version)) + (sha256 + (base32 + "0wc3hidz1q85cja93k5pzybn0fprfnqyrv4qlkdqdzklc5f4dmdp")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page "https://github.com/python-trio/async_generator") + (synopsis "Async generators and context managers for Python 3.5+") + (description "@code{async_generator} back-ports Python 3.6's native async +generators and Python 3.7's context managers into Python 3.5.") + ;; Dual licensed. + (license (list license:expat license:asl2.0)))) + -- cgit v1.2.3 From 85ccc0c281d8ebbe5f08b978925be7eed557284a Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Mon, 23 Apr 2018 00:01:56 +0200 Subject: gnu: Add python-pycares. * gnu/packages/python-web.scm (python-pycares): New variable. --- gnu/packages/python-web.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 6e8d9ab954..9105afeb37 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -24,6 +24,7 @@ ;;; Copyright © 2015, 2016 David Thompson ;;; Copyright © 2017 Mark Meyer ;;; Copyright © 2018 Tomáš Čech +;;; Copyright © 2018 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -2511,3 +2512,23 @@ protocols, it supports features like HTTP keep-alive, reget, throttling and more.") (license license:lgpl2.1+))) +(define-public python-pycares + (package + (name "python-pycares") + (version "2.3.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pycares" version)) + (sha256 + (base32 + "0h4fxw5drrhfyslzmfpljk0qnnpbhhb20hnnndzahhbwylyw1x1n")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ;tests require internet access + (home-page "http://github.com/saghul/pycares") + (synopsis "Python interface for @code{c-ares}") + (description "@code{pycares} is a Python module which provides an +interface to @code{c-ares}, a C library that performs DNS requests and +name resolutions asynchronously.") + (license license:expat))) -- cgit v1.2.3 From 3cdab3d485d334008ea45f4993026a69b70489c2 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 27 Apr 2018 00:19:15 +0200 Subject: gnu: Add python-async-timeout. * gnu/packages/python.scm (python-async-timeout): New variable. --- gnu/packages/python.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 925976ad1f..c7851efe5e 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -13238,3 +13238,20 @@ generators and Python 3.7's context managers into Python 3.5.") ;; Dual licensed. (license (list license:expat license:asl2.0)))) +(define-public python-async-timeout + (package + (name "python-async-timeout") + (version "2.0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "async-timeout" version)) + (sha256 + (base32 + "1l3kg062m02mph6rf9rdv8r5c5n356clxa6b6mrn0i77vk9g9kq0")))) + (build-system python-build-system) + (home-page "https://github.com/aio-libs/async_timeout/") + (synopsis "Timeout context manager for asyncio programs") + (description "@code{async-timeout} provides a timeout timeout context +manager compatible with @code{asyncio}.") + (license license:asl2.0))) -- cgit v1.2.3 From 2528f3c867b1e180136961376ed0136103cb6a47 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Mon, 23 Apr 2018 00:10:45 +0200 Subject: gnu: Add python-idna-ssl. * gnu/packages/python.scm (python-idna-ssl): New variable. --- gnu/packages/python.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c7851efe5e..ee9d061ef5 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -6285,6 +6285,26 @@ specification.") (define-public python2-idna (package-with-python2 python-idna)) +(define-public python-idna-ssl + (package + (name "python-idna-ssl") + (version "1.0.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "idna-ssl" version)) + (sha256 + (base32 + "0ydrc8hpg9mdr5hqq1lqfsfbn6sjq69slwpfrnlrm3k0phqg14qj")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ;circular dependency with python-aiohttp + (home-page "https://github.com/aio-libs/idna-ssl") + (synopsis "Patch @code{ssl.match_hostname} for Unicode(idna) domains support") + (description "Patch @code{ssl.match_hostname} for Unicode(idna) +domains support.") + (license license:expat))) + (define-public python-pretend (package (name "python-pretend") -- cgit v1.2.3 From cef6dc646eaacbfd5800b134f426ccc41419d1b8 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Mon, 23 Apr 2018 00:12:54 +0200 Subject: gnu: Add python-base58. * gnu/packages/python-crypto.scm (python-base58): New variable. --- gnu/packages/python-crypto.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index cdd74d3053..1f5da022f0 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2016, 2017 Arun Isaac ;;; Copyright © 2017 Carlo Zancanaro ;;; Copyright © 2018 Tomáš Čech +;;; Copyright © 2018 Nicolas Goaziou ;;; ;;; This file is part of GNU Guix. ;;; @@ -49,6 +50,26 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (srfi srfi-1)) +(define-public python-base58 + (package + (name "python-base58") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "base58" version)) + (sha256 + (base32 + "0lgnk7ycdxwhk2bkygl30nsks56bvrdj79ix76iv965pz808pzn5")))) + (build-system python-build-system) + (native-inputs + `(("python-pyhamcrest" ,python-pyhamcrest))) + (home-page "https://github.com/keis/base58") + (synopsis "Base58 and Base58Check implementation") + (description "Base58 and Base58Check implementation compatible +with what is used by the Bitcoin network.") + (license license:expat))) + (define-public python-bcrypt (package (name "python-bcrypt") -- cgit v1.2.3 From c158d47627a868a6a8b1f20630b01296fbad0a65 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Mon, 23 Apr 2018 00:14:06 +0200 Subject: gnu: Add python-pylibscrypt. * gnu/packages/python-crypto.scm (python-pylibscrypt): New variable. --- gnu/packages/python-crypto.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index 1f5da022f0..b19364a843 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -841,3 +841,26 @@ through the Engine interface.") (define-public python2-m2crypto (package-with-python2 python-m2crypto)) + +(define-public python-pylibscrypt + (package + (name "python-pylibscrypt") + (version "1.7.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "pylibscrypt" version)) + (sha256 + (base32 + "1b3rgzl6dbzs08vhv41b6y4n5189wv7lr27acxn104hs45745abs")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ;FIXME: unable to find libraries + (inputs + `(("openssl" ,openssl))) + (home-page "https://github.com/jvarho/pylibscrypt") + (synopsis "Scrypt for Python") + (description "There are a lot of different scrypt modules for Python, but +none of them have everything that I'd like, so here's one more. It uses +hashlib.scrypt on Python 3.6 and OpenSSL 1.1.") + (license license:isc))) -- cgit v1.2.3 From 25c591bf2e57489df441faf7471f4154b7c36955 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Mon, 23 Apr 2018 00:15:02 +0200 Subject: gnu: Add python-multidict. * gnu/packages/python.scm (python-multidict): New variable. --- gnu/packages/python.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index ee9d061ef5..13d73b55c5 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3785,6 +3785,27 @@ Python code against some of the style conventions in (define-public python2-pycodestyle (package-with-python2 python-pycodestyle)) +(define-public python-multidict + (package + (name "python-multidict") + (version "4.2.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "multidict" version)) + (sha256 + (base32 + "1vf5bq8hn5a9rvhr5v4fwbmarfsp35hhr8gs74kqfijy34j2f194")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-pytest-runner" ,python-pytest-runner))) + (home-page "https://github.com/aio-libs/multidict/") + (synopsis "Multidict implementation") + (description "Multidict is dict-like collection of key-value pairs +where key might be occurred more than once in the container.") + (license license:asl2.0))) + (define-public python-orderedmultidict (package (name "python-orderedmultidict") -- cgit v1.2.3 From f90f4c9c925286044dde72272e48848b1e84bcf6 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 27 Apr 2018 00:23:07 +0200 Subject: gnu: Add python-aiodns. * gnu/packages/python-web.scm (python-aiodns): New variable. --- gnu/packages/python-web.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index 9105afeb37..de1a6c32df 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -61,6 +61,29 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (srfi srfi-1)) +(define-public python-aiodns + (package + (name "python-aiodns") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "aiodns" version)) + (sha256 + (base32 + "1snr5paql8dgvc676n8xq460wypjsb1xj53cf3px1s4wczf7lryq")))) + (build-system python-build-system) + (inputs + `(("python-pycares" ,python-pycares))) + (arguments + `(#:tests? #f)) ;tests require internet access + (home-page "http://github.com/saghul/aiodns") + (synopsis "Simple DNS resolver for asyncio") + (description "@code{aiodns} provides a simple way for doing +asynchronous DNS resolutions with a synchronous looking interface by +using @url{https://github.com/saghul/pycares,pycares}.") + (license license:expat))) + (define-public python-furl (package (name "python-furl") -- cgit v1.2.3 From 2eccb41493c8970e1379134bd97aebc22239d1d5 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 27 Apr 2018 00:23:46 +0200 Subject: gnu: Add python-yarl. * gnu/packages/python-web.scm (python-yarl): New variable. --- gnu/packages/python-web.scm | 24 ++++++++++++++++++++++++ gnu/packages/python.scm | 1 + 2 files changed, 25 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index de1a6c32df..dc571e187b 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -2555,3 +2555,27 @@ more.") interface to @code{c-ares}, a C library that performs DNS requests and name resolutions asynchronously.") (license license:expat))) + +(define-public python-yarl + (package + (name "python-yarl") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "yarl" version)) + (sha256 + (base32 + "1s6z13g8vgxfkkqwhn6imnm7pl7ky9arv4jygnn6bcndcbidg7d6")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-pytest-runner" ,python-pytest-runner))) + (propagated-inputs + `(("python-idna" ,python-idna) + ("python-multidict" ,python-multidict))) + (home-page "https://github.com/aio-libs/yarl/") + (synopsis "Yet another URL library") + (description "@code{yarl} module provides handy @code{URL} class +for URL parsing and changing.") + (license license:asl2.0))) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 13d73b55c5..f942a2be44 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -13296,3 +13296,4 @@ generators and Python 3.7's context managers into Python 3.5.") (description "@code{async-timeout} provides a timeout timeout context manager compatible with @code{asyncio}.") (license license:asl2.0))) + -- cgit v1.2.3 From 40c6e4544833f71b914ebc27e219f67683db8550 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Mon, 23 Apr 2018 00:19:50 +0200 Subject: gnu: Add python-libnacl. * gnu/packages/python-crypto.scm (python-libnacl): New variable. --- gnu/packages/python-crypto.scm | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index b19364a843..aa1c110f1b 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -864,3 +864,38 @@ through the Engine interface.") none of them have everything that I'd like, so here's one more. It uses hashlib.scrypt on Python 3.6 and OpenSSL 1.1.") (license license:isc))) + +(define-public python-libnacl + (package + (name "python-libnacl") + (version "1.6.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "libnacl" version)) + (sha256 + (base32 + "0nv7n8nfswkhl614x5mllrkvaslraa0053q11iylb337cy43vb4v")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'locate-libsodium + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "libnacl/__init__.py" + (("(return ctypes.cdll.LoadLibrary\\(')libsodium.so('\\))" + _ pre post) + (let ((libsodium (string-append (assoc-ref inputs "libsodium") + "/lib/libsodium.so"))) + (string-append pre libsodium post))))))))) + (native-inputs + `(("python-pyhamcrest" ,python-pyhamcrest))) + (inputs + `(("libsodium" ,libsodium))) + (home-page "https://libnacl.readthedocs.org/") + (synopsis "Python bindings for libsodium based on ctypes") + (description "@code{libnacl} is used to gain direct access to the +functions exposed by @code{NaCl} library via @code{libsodium}. It has +been constructed to maintain extensive documentation on how to use +@code{NaCl} as well as being completely portable.") + (license license:asl2.0))) -- cgit v1.2.3 From 321ba5683bc61711c2464aee2bdc24fda878b1fc Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Mon, 23 Apr 2018 00:20:58 +0200 Subject: gnu: Add python-aiohttp. * gnu/packages/python-web.scm (python-aiohttp): New variable. --- gnu/packages/python-web.scm | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm index dc571e187b..8ebae2e4b7 100644 --- a/gnu/packages/python-web.scm +++ b/gnu/packages/python-web.scm @@ -61,6 +61,47 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (srfi srfi-1)) +(define-public python-aiohttp + (package + (name "python-aiohttp") + (version "3.1.3") + (source + (origin + (method url-fetch) + (uri (pypi-uri "aiohttp" version)) + (sha256 + (base32 + "1b888lggmyf2d08rfayq9khszzc0pav1z70ssc0b4d9kkr4g1klz")))) + (build-system python-build-system) + (arguments + `(#:tests? #f)) ;FIXME: 2 errors, 2084 passed + (native-inputs + `(("python-async-generator" ,python-async-generator) + ("python-pytest" ,python-pytest) + ("python-pytest-capturelog" ,python-pytest-capturelog) + ("python-pytest-mock" ,python-pytest-mock))) + (propagated-inputs + `(("python-aiodns" ,python-aiodns) + ("python-async-timeout" ,python-async-timeout) + ("python-attrs" ,python-attrs) + ("python-chardet" ,python-chardet) + ("python-idna-ssl" ,python-idna-ssl) + ("python-multidict" ,python-multidict) + ("python-yarl" ,python-yarl))) + (home-page "https://github.com/aio-libs/aiohttp/") + (synopsis "Async HTTP client/server framework (asyncio)") + (description "@code{aiohttp} is an asynchronous HTTP client/server +framework. + +Its main features are: +@itemize +@item Supports both client and server side of HTTP protocol. +@item Supports both client and server Web-Sockets out-of-the-box without the +Callback Hell. +@item Web-server has middlewares and pluggable routing. +@end itemize") + (license license:asl2.0))) + (define-public python-aiodns (package (name "python-aiodns") -- cgit v1.2.3 From cb91f6ae23e7770980163f6870bfff7b26687338 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Mon, 23 Apr 2018 00:25:41 +0200 Subject: gnu: Add python-duniterpy. * gnu/packages/python-crypto.scm (python-duniterpy): New variable. --- gnu/packages/python-crypto.scm | 45 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index aa1c110f1b..40172bbfe3 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -45,6 +45,7 @@ #:use-module (gnu packages multiprecision) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module ((guix licenses) #:prefix license:) @@ -899,3 +900,47 @@ functions exposed by @code{NaCl} library via @code{libsodium}. It has been constructed to maintain extensive documentation on how to use @code{NaCl} as well as being completely portable.") (license license:asl2.0))) + +(define-public python-duniterpy + (package + (name "python-duniterpy") + (version "0.43.2") + (source + (origin + (method git-fetch) + ;; Pypi's default URI is missing "requirements.txt" file. + (uri (git-reference + (url "https://github.com/duniter/duniter-python-api.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1ch4f150k1p1l876pp08p5rxqhpv5xfbxdw6njcmr06hspv8v8x4")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; Among 108 tests, a single one is failing: FAIL: + ;; test_from_pubkey. Remove it. + (add-after 'unpack 'remove-failing-test + (lambda _ + (delete-file "tests/documents/test_crc_pubkey.py") + #t))))) + (propagated-inputs + `(("python-aiohttp" ,python-aiohttp) + ("python-base58" ,python-base58) + ("python-jsonschema" ,python-jsonschema) + ("python-libnacl" ,python-libnacl) + ("python-pylibscrypt" ,python-pylibscrypt) + ("python-pypeg2" ,python-pypeg2))) + (home-page "https://github.com/duniter/duniter-python-api") + (synopsis "Python implementation of Duniter API") + (description "@code{duniterpy} is an implementation of +@uref{https://github.com/duniter/duniter/, duniter} API. Its +main features are: +@itemize +@item Supports Duniter's Basic Merkle API and protocol +@item Asynchronous +@item Duniter signing key +@end itemize") + (license license:gpl3+))) -- cgit v1.2.3 From d2cebbf694a820997b8e0a3f77dd1ec110add3a5 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 11 May 2018 03:53:51 -0400 Subject: gnu: icecat: Relabel patches to reflect CVE assignments. Document the fact that we include fixes for CVE-2018-5154, CVE-2018-5155, CVE-2018-5157, CVE-2018-5158, CVE-2018-5159, CVE-2018-5168, CVE-2018-5178, and 9/10 changesets for CVE-2018-5150. * gnu/packages/gnuzilla.scm (icecat)[source]: Relabel patches to reflect CVE assignments. * gnu/packages/patches/icecat-bug-1452075.patch: Rename to... * gnu/packages/patches/icecat-CVE-2018-5157-and-CVE-2018-5158.patch: ...this. * gnu/local.mk (dist_patch_DATA): Rename it. --- gnu/local.mk | 2 +- gnu/packages/gnuzilla.scm | 30 +- .../icecat-CVE-2018-5157-and-CVE-2018-5158.patch | 441 +++++++++++++++++++++ gnu/packages/patches/icecat-bug-1452075.patch | 441 --------------------- 4 files changed, 457 insertions(+), 457 deletions(-) create mode 100644 gnu/packages/patches/icecat-CVE-2018-5157-and-CVE-2018-5158.patch delete mode 100644 gnu/packages/patches/icecat-bug-1452075.patch diff --git a/gnu/local.mk b/gnu/local.mk index 789e97f482..3ca7d45bde 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -784,7 +784,7 @@ dist_patch_DATA = \ %D%/packages/patches/hurd-fix-eth-multiplexer-dependency.patch \ %D%/packages/patches/hydra-disable-darcs-test.patch \ %D%/packages/patches/icecat-avoid-bundled-libraries.patch \ - %D%/packages/patches/icecat-bug-1452075.patch \ + %D%/packages/patches/icecat-CVE-2018-5157-and-CVE-2018-5158.patch \ %D%/packages/patches/icecat-use-system-graphite2.patch \ %D%/packages/patches/icecat-use-system-harfbuzz.patch \ %D%/packages/patches/id3lib-CVE-2007-4460.patch \ diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index 1b365448f2..d32dbc7852 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -454,25 +454,25 @@ security standards.") (mozilla-patch "icecat-CVE-2018-5146.patch" "494e5d5278ba" "1yb4lxjw499ppwhk31vz0vzl0cfqvj9d4jwqag7ayj53ybwsqgjr") (mozilla-patch "icecat-CVE-2018-5147.patch" "5cd5586a2f48" "10s774pwvj6xfk3kk6ivnhp2acc8x9sqq6na8z47nkhgwl2712i5") (mozilla-patch "icecat-CVE-2018-5148.patch" "c3e447e07077" "0gmwy631f8ip4gr1mpbjk8bx1n1748wdls5zq4y8hpmpnq5g1wyx") - (mozilla-patch "icecat-bug-1443891.patch" "17201199b18d" "1d0hcim1fwh0bklwpmnal1mv9d9kmyif1m15aj1nqkf1n3x4xc37") + (mozilla-patch "icecat-CVE-2018-5178.patch" "17201199b18d" "1d0hcim1fwh0bklwpmnal1mv9d9kmyif1m15aj1nqkf1n3x4xc37") (mozilla-patch "icecat-bug-1361699.patch" "a07d6c3ff262" "1z8mjg2487r8pxi0x951v6fwwr696q84f6hlzimc3r7bn5ds9r83") - (mozilla-patch "icecat-bug-1433609.patch" "7127ccf8f88c" "0m4my7aflpp0wlqilr2m4axd7k2fyrs7jqdcz2rrz5pwivz1anvd") + (mozilla-patch "icecat-CVE-2018-5150-pt01.patch" "7127ccf8f88c" "0m4my7aflpp0wlqilr2m4axd7k2fyrs7jqdcz2rrz5pwivz1anvd") (mozilla-patch "icecat-bug-1444231.patch" "57bd35fa8618" "0pl6x5amc5x6nhwl7qnmnff3jjjxmbs8r365bfzj58g7q5ihqwvf") - (mozilla-patch "icecat-bug-1409440.patch" "2f3e1ccf1661" "0azl8g81kpc0w2xpjpgm1154ll12g0a8n6i7bl3s9nnrk2i26n74") - (mozilla-patch "icecat-bug-1441941.patch" "8ff2c4d68e36" "0kz1rqhnz8ca4z20hnpcafidhsrwhnm0h2gmlgchni33h8pisr1f") - (mozilla-patch "icecat-bug-1443092.patch" "b8c430253efd" "1arjcaps9axhxh5ff84n9bydhhzrihn7hbq7v69nvqwqrjp3lgg9") - (mozilla-patch "icecat-bug-1448774.patch" "05cadfa3ac39" "0q0vh7vy7x0l8jp6376fn10qljfp4mnp4m9zfn90j4m19pfl86a0") - (mozilla-patch "icecat-bug-1449548.patch" "48a678d7cb81" "1yfh7kxxxvqck2hpn98pwag4splyc6c9brc5haq28fp8x9r9qvlk") - (mozilla-patch "icecat-bug-1448705.patch" "112032576872" "1x1hxyggbxlnlj0n9cbp03hjnfvm6cq8nqj0jizrd8cfyd5aig8p") - (mozilla-patch "icecat-bug-1388020.patch" "ad9a885b0df4" "1hrk1q9mk59jww55g4lqmaflznk87x3vvjn2mxfgfbbjs8l1cyz4") + (mozilla-patch "icecat-CVE-2018-5150-pt02.patch" "2f3e1ccf1661" "0azl8g81kpc0w2xpjpgm1154ll12g0a8n6i7bl3s9nnrk2i26n74") + (mozilla-patch "icecat-CVE-2018-5159.patch" "8ff2c4d68e36" "0kz1rqhnz8ca4z20hnpcafidhsrwhnm0h2gmlgchni33h8pisr1f") + (mozilla-patch "icecat-CVE-2018-5154.patch" "b8c430253efd" "1arjcaps9axhxh5ff84n9bydhhzrihn7hbq7v69nvqwqrjp3lgg9") + (mozilla-patch "icecat-CVE-2018-5155.patch" "05cadfa3ac39" "0q0vh7vy7x0l8jp6376fn10qljfp4mnp4m9zfn90j4m19pfl86a0") + (mozilla-patch "icecat-CVE-2018-5168.patch" "48a678d7cb81" "1yfh7kxxxvqck2hpn98pwag4splyc6c9brc5haq28fp8x9r9qvlk") + (mozilla-patch "icecat-CVE-2018-5150-pt03.patch" "112032576872" "1x1hxyggbxlnlj0n9cbp03hjnfvm6cq8nqj0jizrd8cfyd5aig8p") + (mozilla-patch "icecat-CVE-2018-5150-pt04.patch" "ad9a885b0df4" "1hrk1q9mk59jww55g4lqmaflznk87x3vvjn2mxfgfbbjs8l1cyz4") (mozilla-patch "icecat-bug-1452416.patch" "f89ab96a2532" "1dqchxdyznhgyxhfq0hm0vg1p597hjqflfzigc7j3s5vxf9rg2nv") - (mozilla-patch "icecat-bug-1451376.patch" "af885a1bd293" "1wfpqhm2dp4fsx6zbrncngsqz7g2x09b625zcighixrbpvybyww3") - (mozilla-patch "icecat-bug-1444668.patch" "666fc84ec72d" "0lml2wqd4yqidhi364x8r90f78397k2y0kq5z5bv8l8j4bhcnb9v") - (search-patch "icecat-bug-1452075.patch") - (mozilla-patch "icecat-bug-1393367.patch" "1ab40761a856" "1kgwypy7k5b33jwkni4025za4kcnv5m6klsx4wsswlixmljmkbc7") + (mozilla-patch "icecat-CVE-2018-5150-pt05.patch" "af885a1bd293" "1wfpqhm2dp4fsx6zbrncngsqz7g2x09b625zcighixrbpvybyww3") + (mozilla-patch "icecat-CVE-2018-5150-pt06.patch" "666fc84ec72d" "0lml2wqd4yqidhi364x8r90f78397k2y0kq5z5bv8l8j4bhcnb9v") + (search-patch "icecat-CVE-2018-5157-and-CVE-2018-5158.patch") + (mozilla-patch "icecat-CVE-2018-5150-pt07.patch" "1ab40761a856" "1kgwypy7k5b33jwkni4025za4kcnv5m6klsx4wsswlixmljmkbc7") (mozilla-patch "icecat-bug-1453339.patch" "0edb8dca7087" "0b30pipqryh311sc97rcmwnx9n8qdlbbz90b2hkybjnprmbhfxrm") - (mozilla-patch "icecat-bug-1452202.patch" "134c728799c1" "16hbwx6fx1hrddsyjjbd3z954ql3pg348xs13h9riyblq8crzmam") - (mozilla-patch "icecat-bug-1411415.patch" "14eab155eaa8" "0wr4xgblxzk4c2gvlnpl7ic1196mrhry1hgwdl1jivq0ji5cbvbd") + (mozilla-patch "icecat-CVE-2018-5150-pt08.patch" "134c728799c1" "16hbwx6fx1hrddsyjjbd3z954ql3pg348xs13h9riyblq8crzmam") + (mozilla-patch "icecat-CVE-2018-5150-pt09.patch" "14eab155eaa8" "0wr4xgblxzk4c2gvlnpl7ic1196mrhry1hgwdl1jivq0ji5cbvbd") (mozilla-patch "icecat-bug-1452619.patch" "2b75d55ccf0e" "1g87aybw6ggv6hyk385bplv0lx63n020gwyq0d6d4pqld48hsm1i") (mozilla-patch "icecat-bug-1453127.patch" "89857f35df29" "0gzi47svrw5ajdlm3i12193psm702zx70x5h1rwp4gb7gxh4m4d9"))) (modules '((guix build utils))) diff --git a/gnu/packages/patches/icecat-CVE-2018-5157-and-CVE-2018-5158.patch b/gnu/packages/patches/icecat-CVE-2018-5157-and-CVE-2018-5158.patch new file mode 100644 index 0000000000..b776640133 --- /dev/null +++ b/gnu/packages/patches/icecat-CVE-2018-5157-and-CVE-2018-5158.patch @@ -0,0 +1,441 @@ +Based on +Adapted to apply cleanly to GNU IceCat. + +# HG changeset patch +# User Ryan VanderMeulen +# Date 1523630807 14400 +# Node ID 608e76ec5ba25cec2271d2b400c7bce2d4c5ef79 +# Parent 10b7f43b536f93151201d44d304c991aa9af5d0c +Bug 1452075 - Backport some upstream pdf.js fixes to ESR52. r=bdahl, r=yury, a=RyanVM + +diff --git a/browser/extensions/pdfjs/content/PdfStreamConverter.jsm b/browser/extensions/pdfjs/content/PdfStreamConverter.jsm +--- a/browser/extensions/pdfjs/content/PdfStreamConverter.jsm ++++ b/browser/extensions/pdfjs/content/PdfStreamConverter.jsm +@@ -24,17 +24,18 @@ const Cc = Components.classes; + const Ci = Components.interfaces; + const Cr = Components.results; + const Cu = Components.utils; + // True only if this is the version of pdf.js that is included with icecat. + const MOZ_CENTRAL = JSON.parse('true'); + const PDFJS_EVENT_ID = 'pdf.js.message'; + const PDF_CONTENT_TYPE = 'application/pdf'; + const PREF_PREFIX = 'pdfjs'; +-const PDF_VIEWER_WEB_PAGE = 'resource://pdf.js/web/viewer.html'; ++const PDF_VIEWER_ORIGIN = "resource://pdf.js"; ++const PDF_VIEWER_WEB_PAGE = "resource://pdf.js/web/viewer.html"; + const MAX_NUMBER_OF_PREFS = 50; + const MAX_STRING_PREF_LENGTH = 128; + + Cu.import('resource://gre/modules/XPCOMUtils.jsm'); + Cu.import('resource://gre/modules/Services.jsm'); + Cu.import('resource://gre/modules/NetUtil.jsm'); + + XPCOMUtils.defineLazyModuleGetter(this, 'NetworkManager', +@@ -105,21 +106,25 @@ function log(aMsg) { + if (!getBoolPref(PREF_PREFIX + '.pdfBugEnabled', false)) { + return; + } + var msg = 'PdfStreamConverter.js: ' + (aMsg.join ? aMsg.join('') : aMsg); + Services.console.logStringMessage(msg); + dump(msg + '\n'); + } + +-function getDOMWindow(aChannel) { ++function getDOMWindow(aChannel, aPrincipal) { + var requestor = aChannel.notificationCallbacks ? + aChannel.notificationCallbacks : + aChannel.loadGroup.notificationCallbacks; + var win = requestor.getInterface(Components.interfaces.nsIDOMWindow); ++ // Ensure the window wasn't navigated to something that is not PDF.js. ++ if (!win.document.nodePrincipal.equals(aPrincipal)) { ++ return null; ++ } + return win; + } + + function getLocalizedStrings(path) { + var stringBundle = Cc['@mozilla.org/intl/stringbundle;1']. + getService(Ci.nsIStringBundleService). + createBundle('chrome://pdf.js/locale/' + path); + +@@ -627,31 +632,31 @@ var RangedChromeActions = (function Rang + data = this.dataListener.readData(); + + this.dataListener.onprogress = function (loaded, total) { + self.domWindow.postMessage({ + pdfjsLoadAction: 'progressiveRead', + loaded: loaded, + total: total, + chunk: self.dataListener.readData() +- }, '*'); ++ }, PDF_VIEWER_ORIGIN); + }; + this.dataListener.oncomplete = function () { + self.dataListener = null; + }; + } + + this.domWindow.postMessage({ + pdfjsLoadAction: 'supportsRangedLoading', + rangeEnabled: this.rangeEnabled, + streamingEnabled: this.streamingEnabled, + pdfUrl: this.pdfUrl, + length: this.contentLength, + data: data +- }, '*'); ++ }, PDF_VIEWER_ORIGIN); + + return true; + }; + + proto.requestDataRange = function RangedChromeActions_requestDataRange(args) { + if (!this.rangeEnabled) { + return; + } +@@ -663,23 +668,23 @@ var RangedChromeActions = (function Rang + // errors from chrome code for non-range requests, so this doesn't + // seem high-pri + this.networkManager.requestRange(begin, end, { + onDone: function RangedChromeActions_onDone(args) { + domWindow.postMessage({ + pdfjsLoadAction: 'range', + begin: args.begin, + chunk: args.chunk +- }, '*'); ++ }, PDF_VIEWER_ORIGIN); + }, + onProgress: function RangedChromeActions_onProgress(evt) { + domWindow.postMessage({ + pdfjsLoadAction: 'rangeProgress', + loaded: evt.loaded, +- }, '*'); ++ }, PDF_VIEWER_ORIGIN); + } + }); + }; + + proto.abortLoading = function RangedChromeActions_abortLoading() { + this.networkManager.abortAllRequests(); + if (this.originalRequest) { + this.originalRequest.cancel(Cr.NS_BINDING_ABORTED); +@@ -718,26 +723,26 @@ var StandardChromeActions = (function St + var self = this; + + this.dataListener.onprogress = function ChromeActions_dataListenerProgress( + loaded, total) { + self.domWindow.postMessage({ + pdfjsLoadAction: 'progress', + loaded: loaded, + total: total +- }, '*'); ++ }, PDF_VIEWER_ORIGIN); + }; + + this.dataListener.oncomplete = + function StandardChromeActions_dataListenerComplete(data, errorCode) { + self.domWindow.postMessage({ + pdfjsLoadAction: 'complete', + data: data, + errorCode: errorCode +- }, '*'); ++ }, PDF_VIEWER_ORIGIN); + + self.dataListener = null; + self.originalRequest = null; + }; + + return true; + }; + +@@ -972,31 +977,35 @@ PdfStreamConverter.prototype = { + var proxy = { + onStartRequest: function(request, context) { + listener.onStartRequest(aRequest, aContext); + }, + onDataAvailable: function(request, context, inputStream, offset, count) { + listener.onDataAvailable(aRequest, aContext, inputStream, + offset, count); + }, +- onStopRequest: function(request, context, statusCode) { +- // We get the DOM window here instead of before the request since it +- // may have changed during a redirect. +- var domWindow = getDOMWindow(channel); ++ onStopRequest(request, context, statusCode) { ++ var domWindow = getDOMWindow(channel, resourcePrincipal); ++ if (!Components.isSuccessCode(statusCode) || !domWindow) { ++ // The request may have been aborted and the document may have been ++ // replaced with something that is not PDF.js, abort attaching. ++ listener.onStopRequest(aRequest, context, statusCode); ++ return; ++ } + var actions; + if (rangeRequest || streamRequest) { + actions = new RangedChromeActions( + domWindow, contentDispositionFilename, aRequest, + rangeRequest, streamRequest, dataListener); + } else { + actions = new StandardChromeActions( + domWindow, contentDispositionFilename, aRequest, dataListener); + } + var requestListener = new RequestListener(actions); +- domWindow.addEventListener(PDFJS_EVENT_ID, function(event) { ++ domWindow.document.addEventListener(PDFJS_EVENT_ID, function(event) { + requestListener.receive(event); + }, false, true); + if (actions.supportsIntegratedFind()) { + var findEventManager = new FindEventManager(domWindow); + findEventManager.bind(); + } + listener.onStopRequest(aRequest, aContext, statusCode); + +diff --git a/browser/extensions/pdfjs/content/build/pdf.worker.js b/browser/extensions/pdfjs/content/build/pdf.worker.js +--- a/browser/extensions/pdfjs/content/build/pdf.worker.js ++++ b/browser/extensions/pdfjs/content/build/pdf.worker.js +@@ -41648,16 +41648,32 @@ + var error = sharedUtil.error; + var info = sharedUtil.info; + var isArray = sharedUtil.isArray; + var isBool = sharedUtil.isBool; + var isDict = corePrimitives.isDict; + var isStream = corePrimitives.isStream; + var PostScriptLexer = corePsParser.PostScriptLexer; + var PostScriptParser = corePsParser.PostScriptParser; ++ function toNumberArray(arr) { ++ if (!Array.isArray(arr)) { ++ return null; ++ } ++ var length = arr.length; ++ for (var i = 0; i < length; i++) { ++ if (typeof arr[i] !== 'number') { ++ var result = new Array(length); ++ for (var j = 0; j < length; j++) { ++ result[j] = +arr[j]; ++ } ++ return result; ++ } ++ } ++ return arr; ++ } + var PDFFunction = function PDFFunctionClosure() { + var CONSTRUCT_SAMPLED = 0; + var CONSTRUCT_INTERPOLATED = 2; + var CONSTRUCT_STICHED = 3; + var CONSTRUCT_POSTSCRIPT = 4; + return { + getSampleArray: function PDFFunction_getSampleArray(size, outputSize, bps, str) { + var i, ii; +@@ -41747,43 +41763,43 @@ + out[index] = [ + arr[i], + arr[i + 1] + ]; + ++index; + } + return out; + } +- var domain = dict.getArray('Domain'); +- var range = dict.getArray('Range'); ++ var domain = toNumberArray(dict.getArray('Domain')); ++ var range = toNumberArray(dict.getArray('Range')); + if (!domain || !range) { + error('No domain or range'); + } + var inputSize = domain.length / 2; + var outputSize = range.length / 2; + domain = toMultiArray(domain); + range = toMultiArray(range); +- var size = dict.get('Size'); ++ var size = toNumberArray(dict.get('Size')); + var bps = dict.get('BitsPerSample'); + var order = dict.get('Order') || 1; + if (order !== 1) { + // No description how cubic spline interpolation works in PDF32000:2008 + // As in poppler, ignoring order, linear interpolation may work as good + info('No support for cubic spline interpolation: ' + order); + } +- var encode = dict.getArray('Encode'); ++ var encode = toNumberArray(dict.getArray('Encode')); + if (!encode) { + encode = []; + for (var i = 0; i < inputSize; ++i) { +- encode.push(0); +- encode.push(size[i] - 1); +- } +- } +- encode = toMultiArray(encode); +- var decode = dict.getArray('Decode'); ++ encode.push([0, size[i] - 1]); ++ } ++ } else { ++ encode = toMultiArray(encode); ++ } ++ var decode = toNumberArray(dict.getArray('Decode')); + if (!decode) { + decode = range; + } else { + decode = toMultiArray(decode); + } + var samples = this.getSampleArray(size, outputSize, bps, str); + return [ + CONSTRUCT_SAMPLED, +@@ -41868,22 +41884,19 @@ + // Decode_2j, Decode_2j+1) + rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]); + // y_j = min(max(r_j, range_2j), range_2j+1) + dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]); + } + }; + }, + constructInterpolated: function PDFFunction_constructInterpolated(str, dict) { +- var c0 = dict.getArray('C0') || [0]; +- var c1 = dict.getArray('C1') || [1]; ++ var c0 = toNumberArray(dict.getArray('C0')) || [0]; ++ var c1 = toNumberArray(dict.getArray('C1')) || [1]; + var n = dict.get('N'); +- if (!isArray(c0) || !isArray(c1)) { +- error('Illegal dictionary for interpolated function'); +- } + var length = c0.length; + var diff = []; + for (var i = 0; i < length; ++i) { + diff.push(c1[i] - c0[i]); + } + return [ + CONSTRUCT_INTERPOLATED, + c0, +@@ -41899,49 +41912,45 @@ + return function constructInterpolatedFromIRResult(src, srcOffset, dest, destOffset) { + var x = n === 1 ? src[srcOffset] : Math.pow(src[srcOffset], n); + for (var j = 0; j < length; ++j) { + dest[destOffset + j] = c0[j] + x * diff[j]; + } + }; + }, + constructStiched: function PDFFunction_constructStiched(fn, dict, xref) { +- var domain = dict.getArray('Domain'); ++ var domain = toNumberArray(dict.getArray('Domain')); + if (!domain) { + error('No domain'); + } + var inputSize = domain.length / 2; + if (inputSize !== 1) { + error('Bad domain for stiched function'); + } + var fnRefs = dict.get('Functions'); + var fns = []; + for (var i = 0, ii = fnRefs.length; i < ii; ++i) { +- fns.push(PDFFunction.getIR(xref, xref.fetchIfRef(fnRefs[i]))); +- } +- var bounds = dict.getArray('Bounds'); +- var encode = dict.getArray('Encode'); ++ fns.push(PDFFunction.parse(xref, xref.fetchIfRef(fnRefs[i]))); ++ } ++ var bounds = toNumberArray(dict.getArray('Bounds')); ++ var encode = toNumberArray(dict.getArray('Encode')); + return [ + CONSTRUCT_STICHED, + domain, + bounds, + encode, + fns + ]; + }, + constructStichedFromIR: function PDFFunction_constructStichedFromIR(IR) { + var domain = IR[1]; + var bounds = IR[2]; + var encode = IR[3]; +- var fnsIR = IR[4]; +- var fns = []; ++ var fns = IR[4]; + var tmpBuf = new Float32Array(1); +- for (var i = 0, ii = fnsIR.length; i < ii; i++) { +- fns.push(PDFFunction.fromIR(fnsIR[i])); +- } + return function constructStichedFromIRResult(src, srcOffset, dest, destOffset) { + var clip = function constructStichedFromIRClip(v, min, max) { + if (v > max) { + v = max; + } else if (v < min) { + v = min; + } + return v; +@@ -41968,18 +41977,18 @@ + // Prevent the value from becoming NaN as a result + // of division by zero (fixes issue6113.pdf). + tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin); + // call the appropriate function + fns[i](tmpBuf, 0, dest, destOffset); + }; + }, + constructPostScript: function PDFFunction_constructPostScript(fn, dict, xref) { +- var domain = dict.getArray('Domain'); +- var range = dict.getArray('Range'); ++ var domain = toNumberArray(dict.getArray('Domain')); ++ var range = toNumberArray(dict.getArray('Range')); + if (!domain) { + error('No domain.'); + } + if (!range) { + error('No range.'); + } + var lexer = new PostScriptLexer(fn); + var parser = new PostScriptParser(lexer); +@@ -42928,18 +42937,18 @@ + case 'IndexedCS': + var baseIndexedCS = IR[1]; + var hiVal = IR[2]; + var lookup = IR[3]; + return new IndexedCS(ColorSpace.fromIR(baseIndexedCS), hiVal, lookup); + case 'AlternateCS': + var numComps = IR[1]; + var alt = IR[2]; +- var tintFnIR = IR[3]; +- return new AlternateCS(numComps, ColorSpace.fromIR(alt), PDFFunction.fromIR(tintFnIR)); ++ var tintFn = IR[3]; ++ return new AlternateCS(numComps, ColorSpace.fromIR(alt), tintFn); + case 'LabCS': + whitePoint = IR[1]; + blackPoint = IR[2]; + var range = IR[3]; + return new LabCS(whitePoint, blackPoint, range); + default: + error('Unknown name ' + name); + } +@@ -43067,22 +43076,22 @@ + var name = xref.fetchIfRef(cs[1]); + numComps = 1; + if (isName(name)) { + numComps = 1; + } else if (isArray(name)) { + numComps = name.length; + } + alt = ColorSpace.parseToIR(cs[2], xref, res); +- var tintFnIR = PDFFunction.getIR(xref, xref.fetchIfRef(cs[3])); ++ var tintFn = PDFFunction.parse(xref, xref.fetchIfRef(cs[3])); + return [ + 'AlternateCS', + numComps, + alt, +- tintFnIR ++ tintFn + ]; + case 'Lab': + params = xref.fetchIfRef(cs[1]); + whitePoint = params.getArray('WhitePoint'); + blackPoint = params.getArray('BlackPoint'); + var range = params.getArray('Range'); + return [ + 'LabCS', +@@ -52483,9 +52492,9 @@ + initializeWorker(); + } + exports.setPDFNetworkStreamClass = setPDFNetworkStreamClass; + exports.WorkerTask = WorkerTask; + exports.WorkerMessageHandler = WorkerMessageHandler; + })); + }.call(pdfjsLibs)); + exports.WorkerMessageHandler = pdfjsLibs.pdfjsCoreWorker.WorkerMessageHandler; +-})); +\ No newline at end of file ++})); + diff --git a/gnu/packages/patches/icecat-bug-1452075.patch b/gnu/packages/patches/icecat-bug-1452075.patch deleted file mode 100644 index b776640133..0000000000 --- a/gnu/packages/patches/icecat-bug-1452075.patch +++ /dev/null @@ -1,441 +0,0 @@ -Based on -Adapted to apply cleanly to GNU IceCat. - -# HG changeset patch -# User Ryan VanderMeulen -# Date 1523630807 14400 -# Node ID 608e76ec5ba25cec2271d2b400c7bce2d4c5ef79 -# Parent 10b7f43b536f93151201d44d304c991aa9af5d0c -Bug 1452075 - Backport some upstream pdf.js fixes to ESR52. r=bdahl, r=yury, a=RyanVM - -diff --git a/browser/extensions/pdfjs/content/PdfStreamConverter.jsm b/browser/extensions/pdfjs/content/PdfStreamConverter.jsm ---- a/browser/extensions/pdfjs/content/PdfStreamConverter.jsm -+++ b/browser/extensions/pdfjs/content/PdfStreamConverter.jsm -@@ -24,17 +24,18 @@ const Cc = Components.classes; - const Ci = Components.interfaces; - const Cr = Components.results; - const Cu = Components.utils; - // True only if this is the version of pdf.js that is included with icecat. - const MOZ_CENTRAL = JSON.parse('true'); - const PDFJS_EVENT_ID = 'pdf.js.message'; - const PDF_CONTENT_TYPE = 'application/pdf'; - const PREF_PREFIX = 'pdfjs'; --const PDF_VIEWER_WEB_PAGE = 'resource://pdf.js/web/viewer.html'; -+const PDF_VIEWER_ORIGIN = "resource://pdf.js"; -+const PDF_VIEWER_WEB_PAGE = "resource://pdf.js/web/viewer.html"; - const MAX_NUMBER_OF_PREFS = 50; - const MAX_STRING_PREF_LENGTH = 128; - - Cu.import('resource://gre/modules/XPCOMUtils.jsm'); - Cu.import('resource://gre/modules/Services.jsm'); - Cu.import('resource://gre/modules/NetUtil.jsm'); - - XPCOMUtils.defineLazyModuleGetter(this, 'NetworkManager', -@@ -105,21 +106,25 @@ function log(aMsg) { - if (!getBoolPref(PREF_PREFIX + '.pdfBugEnabled', false)) { - return; - } - var msg = 'PdfStreamConverter.js: ' + (aMsg.join ? aMsg.join('') : aMsg); - Services.console.logStringMessage(msg); - dump(msg + '\n'); - } - --function getDOMWindow(aChannel) { -+function getDOMWindow(aChannel, aPrincipal) { - var requestor = aChannel.notificationCallbacks ? - aChannel.notificationCallbacks : - aChannel.loadGroup.notificationCallbacks; - var win = requestor.getInterface(Components.interfaces.nsIDOMWindow); -+ // Ensure the window wasn't navigated to something that is not PDF.js. -+ if (!win.document.nodePrincipal.equals(aPrincipal)) { -+ return null; -+ } - return win; - } - - function getLocalizedStrings(path) { - var stringBundle = Cc['@mozilla.org/intl/stringbundle;1']. - getService(Ci.nsIStringBundleService). - createBundle('chrome://pdf.js/locale/' + path); - -@@ -627,31 +632,31 @@ var RangedChromeActions = (function Rang - data = this.dataListener.readData(); - - this.dataListener.onprogress = function (loaded, total) { - self.domWindow.postMessage({ - pdfjsLoadAction: 'progressiveRead', - loaded: loaded, - total: total, - chunk: self.dataListener.readData() -- }, '*'); -+ }, PDF_VIEWER_ORIGIN); - }; - this.dataListener.oncomplete = function () { - self.dataListener = null; - }; - } - - this.domWindow.postMessage({ - pdfjsLoadAction: 'supportsRangedLoading', - rangeEnabled: this.rangeEnabled, - streamingEnabled: this.streamingEnabled, - pdfUrl: this.pdfUrl, - length: this.contentLength, - data: data -- }, '*'); -+ }, PDF_VIEWER_ORIGIN); - - return true; - }; - - proto.requestDataRange = function RangedChromeActions_requestDataRange(args) { - if (!this.rangeEnabled) { - return; - } -@@ -663,23 +668,23 @@ var RangedChromeActions = (function Rang - // errors from chrome code for non-range requests, so this doesn't - // seem high-pri - this.networkManager.requestRange(begin, end, { - onDone: function RangedChromeActions_onDone(args) { - domWindow.postMessage({ - pdfjsLoadAction: 'range', - begin: args.begin, - chunk: args.chunk -- }, '*'); -+ }, PDF_VIEWER_ORIGIN); - }, - onProgress: function RangedChromeActions_onProgress(evt) { - domWindow.postMessage({ - pdfjsLoadAction: 'rangeProgress', - loaded: evt.loaded, -- }, '*'); -+ }, PDF_VIEWER_ORIGIN); - } - }); - }; - - proto.abortLoading = function RangedChromeActions_abortLoading() { - this.networkManager.abortAllRequests(); - if (this.originalRequest) { - this.originalRequest.cancel(Cr.NS_BINDING_ABORTED); -@@ -718,26 +723,26 @@ var StandardChromeActions = (function St - var self = this; - - this.dataListener.onprogress = function ChromeActions_dataListenerProgress( - loaded, total) { - self.domWindow.postMessage({ - pdfjsLoadAction: 'progress', - loaded: loaded, - total: total -- }, '*'); -+ }, PDF_VIEWER_ORIGIN); - }; - - this.dataListener.oncomplete = - function StandardChromeActions_dataListenerComplete(data, errorCode) { - self.domWindow.postMessage({ - pdfjsLoadAction: 'complete', - data: data, - errorCode: errorCode -- }, '*'); -+ }, PDF_VIEWER_ORIGIN); - - self.dataListener = null; - self.originalRequest = null; - }; - - return true; - }; - -@@ -972,31 +977,35 @@ PdfStreamConverter.prototype = { - var proxy = { - onStartRequest: function(request, context) { - listener.onStartRequest(aRequest, aContext); - }, - onDataAvailable: function(request, context, inputStream, offset, count) { - listener.onDataAvailable(aRequest, aContext, inputStream, - offset, count); - }, -- onStopRequest: function(request, context, statusCode) { -- // We get the DOM window here instead of before the request since it -- // may have changed during a redirect. -- var domWindow = getDOMWindow(channel); -+ onStopRequest(request, context, statusCode) { -+ var domWindow = getDOMWindow(channel, resourcePrincipal); -+ if (!Components.isSuccessCode(statusCode) || !domWindow) { -+ // The request may have been aborted and the document may have been -+ // replaced with something that is not PDF.js, abort attaching. -+ listener.onStopRequest(aRequest, context, statusCode); -+ return; -+ } - var actions; - if (rangeRequest || streamRequest) { - actions = new RangedChromeActions( - domWindow, contentDispositionFilename, aRequest, - rangeRequest, streamRequest, dataListener); - } else { - actions = new StandardChromeActions( - domWindow, contentDispositionFilename, aRequest, dataListener); - } - var requestListener = new RequestListener(actions); -- domWindow.addEventListener(PDFJS_EVENT_ID, function(event) { -+ domWindow.document.addEventListener(PDFJS_EVENT_ID, function(event) { - requestListener.receive(event); - }, false, true); - if (actions.supportsIntegratedFind()) { - var findEventManager = new FindEventManager(domWindow); - findEventManager.bind(); - } - listener.onStopRequest(aRequest, aContext, statusCode); - -diff --git a/browser/extensions/pdfjs/content/build/pdf.worker.js b/browser/extensions/pdfjs/content/build/pdf.worker.js ---- a/browser/extensions/pdfjs/content/build/pdf.worker.js -+++ b/browser/extensions/pdfjs/content/build/pdf.worker.js -@@ -41648,16 +41648,32 @@ - var error = sharedUtil.error; - var info = sharedUtil.info; - var isArray = sharedUtil.isArray; - var isBool = sharedUtil.isBool; - var isDict = corePrimitives.isDict; - var isStream = corePrimitives.isStream; - var PostScriptLexer = corePsParser.PostScriptLexer; - var PostScriptParser = corePsParser.PostScriptParser; -+ function toNumberArray(arr) { -+ if (!Array.isArray(arr)) { -+ return null; -+ } -+ var length = arr.length; -+ for (var i = 0; i < length; i++) { -+ if (typeof arr[i] !== 'number') { -+ var result = new Array(length); -+ for (var j = 0; j < length; j++) { -+ result[j] = +arr[j]; -+ } -+ return result; -+ } -+ } -+ return arr; -+ } - var PDFFunction = function PDFFunctionClosure() { - var CONSTRUCT_SAMPLED = 0; - var CONSTRUCT_INTERPOLATED = 2; - var CONSTRUCT_STICHED = 3; - var CONSTRUCT_POSTSCRIPT = 4; - return { - getSampleArray: function PDFFunction_getSampleArray(size, outputSize, bps, str) { - var i, ii; -@@ -41747,43 +41763,43 @@ - out[index] = [ - arr[i], - arr[i + 1] - ]; - ++index; - } - return out; - } -- var domain = dict.getArray('Domain'); -- var range = dict.getArray('Range'); -+ var domain = toNumberArray(dict.getArray('Domain')); -+ var range = toNumberArray(dict.getArray('Range')); - if (!domain || !range) { - error('No domain or range'); - } - var inputSize = domain.length / 2; - var outputSize = range.length / 2; - domain = toMultiArray(domain); - range = toMultiArray(range); -- var size = dict.get('Size'); -+ var size = toNumberArray(dict.get('Size')); - var bps = dict.get('BitsPerSample'); - var order = dict.get('Order') || 1; - if (order !== 1) { - // No description how cubic spline interpolation works in PDF32000:2008 - // As in poppler, ignoring order, linear interpolation may work as good - info('No support for cubic spline interpolation: ' + order); - } -- var encode = dict.getArray('Encode'); -+ var encode = toNumberArray(dict.getArray('Encode')); - if (!encode) { - encode = []; - for (var i = 0; i < inputSize; ++i) { -- encode.push(0); -- encode.push(size[i] - 1); -- } -- } -- encode = toMultiArray(encode); -- var decode = dict.getArray('Decode'); -+ encode.push([0, size[i] - 1]); -+ } -+ } else { -+ encode = toMultiArray(encode); -+ } -+ var decode = toNumberArray(dict.getArray('Decode')); - if (!decode) { - decode = range; - } else { - decode = toMultiArray(decode); - } - var samples = this.getSampleArray(size, outputSize, bps, str); - return [ - CONSTRUCT_SAMPLED, -@@ -41868,22 +41884,19 @@ - // Decode_2j, Decode_2j+1) - rj = interpolate(rj, 0, 1, decode[j][0], decode[j][1]); - // y_j = min(max(r_j, range_2j), range_2j+1) - dest[destOffset + j] = Math.min(Math.max(rj, range[j][0]), range[j][1]); - } - }; - }, - constructInterpolated: function PDFFunction_constructInterpolated(str, dict) { -- var c0 = dict.getArray('C0') || [0]; -- var c1 = dict.getArray('C1') || [1]; -+ var c0 = toNumberArray(dict.getArray('C0')) || [0]; -+ var c1 = toNumberArray(dict.getArray('C1')) || [1]; - var n = dict.get('N'); -- if (!isArray(c0) || !isArray(c1)) { -- error('Illegal dictionary for interpolated function'); -- } - var length = c0.length; - var diff = []; - for (var i = 0; i < length; ++i) { - diff.push(c1[i] - c0[i]); - } - return [ - CONSTRUCT_INTERPOLATED, - c0, -@@ -41899,49 +41912,45 @@ - return function constructInterpolatedFromIRResult(src, srcOffset, dest, destOffset) { - var x = n === 1 ? src[srcOffset] : Math.pow(src[srcOffset], n); - for (var j = 0; j < length; ++j) { - dest[destOffset + j] = c0[j] + x * diff[j]; - } - }; - }, - constructStiched: function PDFFunction_constructStiched(fn, dict, xref) { -- var domain = dict.getArray('Domain'); -+ var domain = toNumberArray(dict.getArray('Domain')); - if (!domain) { - error('No domain'); - } - var inputSize = domain.length / 2; - if (inputSize !== 1) { - error('Bad domain for stiched function'); - } - var fnRefs = dict.get('Functions'); - var fns = []; - for (var i = 0, ii = fnRefs.length; i < ii; ++i) { -- fns.push(PDFFunction.getIR(xref, xref.fetchIfRef(fnRefs[i]))); -- } -- var bounds = dict.getArray('Bounds'); -- var encode = dict.getArray('Encode'); -+ fns.push(PDFFunction.parse(xref, xref.fetchIfRef(fnRefs[i]))); -+ } -+ var bounds = toNumberArray(dict.getArray('Bounds')); -+ var encode = toNumberArray(dict.getArray('Encode')); - return [ - CONSTRUCT_STICHED, - domain, - bounds, - encode, - fns - ]; - }, - constructStichedFromIR: function PDFFunction_constructStichedFromIR(IR) { - var domain = IR[1]; - var bounds = IR[2]; - var encode = IR[3]; -- var fnsIR = IR[4]; -- var fns = []; -+ var fns = IR[4]; - var tmpBuf = new Float32Array(1); -- for (var i = 0, ii = fnsIR.length; i < ii; i++) { -- fns.push(PDFFunction.fromIR(fnsIR[i])); -- } - return function constructStichedFromIRResult(src, srcOffset, dest, destOffset) { - var clip = function constructStichedFromIRClip(v, min, max) { - if (v > max) { - v = max; - } else if (v < min) { - v = min; - } - return v; -@@ -41968,18 +41977,18 @@ - // Prevent the value from becoming NaN as a result - // of division by zero (fixes issue6113.pdf). - tmpBuf[0] = dmin === dmax ? rmin : rmin + (v - dmin) * (rmax - rmin) / (dmax - dmin); - // call the appropriate function - fns[i](tmpBuf, 0, dest, destOffset); - }; - }, - constructPostScript: function PDFFunction_constructPostScript(fn, dict, xref) { -- var domain = dict.getArray('Domain'); -- var range = dict.getArray('Range'); -+ var domain = toNumberArray(dict.getArray('Domain')); -+ var range = toNumberArray(dict.getArray('Range')); - if (!domain) { - error('No domain.'); - } - if (!range) { - error('No range.'); - } - var lexer = new PostScriptLexer(fn); - var parser = new PostScriptParser(lexer); -@@ -42928,18 +42937,18 @@ - case 'IndexedCS': - var baseIndexedCS = IR[1]; - var hiVal = IR[2]; - var lookup = IR[3]; - return new IndexedCS(ColorSpace.fromIR(baseIndexedCS), hiVal, lookup); - case 'AlternateCS': - var numComps = IR[1]; - var alt = IR[2]; -- var tintFnIR = IR[3]; -- return new AlternateCS(numComps, ColorSpace.fromIR(alt), PDFFunction.fromIR(tintFnIR)); -+ var tintFn = IR[3]; -+ return new AlternateCS(numComps, ColorSpace.fromIR(alt), tintFn); - case 'LabCS': - whitePoint = IR[1]; - blackPoint = IR[2]; - var range = IR[3]; - return new LabCS(whitePoint, blackPoint, range); - default: - error('Unknown name ' + name); - } -@@ -43067,22 +43076,22 @@ - var name = xref.fetchIfRef(cs[1]); - numComps = 1; - if (isName(name)) { - numComps = 1; - } else if (isArray(name)) { - numComps = name.length; - } - alt = ColorSpace.parseToIR(cs[2], xref, res); -- var tintFnIR = PDFFunction.getIR(xref, xref.fetchIfRef(cs[3])); -+ var tintFn = PDFFunction.parse(xref, xref.fetchIfRef(cs[3])); - return [ - 'AlternateCS', - numComps, - alt, -- tintFnIR -+ tintFn - ]; - case 'Lab': - params = xref.fetchIfRef(cs[1]); - whitePoint = params.getArray('WhitePoint'); - blackPoint = params.getArray('BlackPoint'); - var range = params.getArray('Range'); - return [ - 'LabCS', -@@ -52483,9 +52492,9 @@ - initializeWorker(); - } - exports.setPDFNetworkStreamClass = setPDFNetworkStreamClass; - exports.WorkerTask = WorkerTask; - exports.WorkerMessageHandler = WorkerMessageHandler; - })); - }.call(pdfjsLibs)); - exports.WorkerMessageHandler = pdfjsLibs.pdfjsCoreWorker.WorkerMessageHandler; --})); -\ No newline at end of file -+})); - -- cgit v1.2.3 From 93565b4483240acf4cf787cd4ceec2c947ec9184 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Fri, 11 May 2018 03:59:46 -0400 Subject: gnu: icecat: Add more fixes from upstream mozilla-esr52. * gnu/packages/gnuzilla.scm (icecat)[source]: Add fixes for CVE-2018-5183 and the remaining 1 of 10 changesets for CVE-2018-5150. --- gnu/packages/gnuzilla.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index d32dbc7852..68d122c05a 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -474,7 +474,9 @@ security standards.") (mozilla-patch "icecat-CVE-2018-5150-pt08.patch" "134c728799c1" "16hbwx6fx1hrddsyjjbd3z954ql3pg348xs13h9riyblq8crzmam") (mozilla-patch "icecat-CVE-2018-5150-pt09.patch" "14eab155eaa8" "0wr4xgblxzk4c2gvlnpl7ic1196mrhry1hgwdl1jivq0ji5cbvbd") (mozilla-patch "icecat-bug-1452619.patch" "2b75d55ccf0e" "1g87aybw6ggv6hyk385bplv0lx63n020gwyq0d6d4pqld48hsm1i") - (mozilla-patch "icecat-bug-1453127.patch" "89857f35df29" "0gzi47svrw5ajdlm3i12193psm702zx70x5h1rwp4gb7gxh4m4d9"))) + (mozilla-patch "icecat-bug-1453127.patch" "89857f35df29" "0gzi47svrw5ajdlm3i12193psm702zx70x5h1rwp4gb7gxh4m4d9") + (mozilla-patch "icecat-CVE-2018-5150-pt10.patch" "3f2ec03c0405" "0w02952dlxd2gmwghck2nm4rjjmc5ylg62bw6m1rvi35kcr134lr") + (mozilla-patch "icecat-CVE-2018-5183.patch" "f729bf78fb3a" "0xkj6jwxwdqkvb5c7wi16b8cm8qrnlrd3s9jnd46jg03iykrx56f"))) (modules '((guix build utils))) (snippet '(begin -- cgit v1.2.3 From 907356115e705ea7292b9104119ae986284ed626 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 11 May 2018 12:17:32 +0200 Subject: gnu: Update emacs-org, emacs-org-contrib. * gnu/packages/emacs.scm (emacs-org): Update to 9.1.13. [description]: Tiny rewording. (emacs-org-contrib): Update to 20180507. --- gnu/packages/emacs.scm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 5788f547c7..3c8475149d 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4769,35 +4769,35 @@ passive voice.") (name "emacs-org") ;; emacs-org-contrib inherits from this package. Please update its sha256 ;; checksum as well. - (version "9.1.11") + (version "9.1.13") (source (origin (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/org-" version ".tar")) (sha256 (base32 - "0i27g5qbkfqbxhgiz917pjwkxg3rwid99d0ickwx43bzq0zi7c1m")))) + "1vx0n32gvrgy2bl2b4pvxf00cywxwm57gi46f2b2zlrnmd5n85pr")))) (build-system emacs-build-system) (home-page "https://orgmode.org/") (synopsis "Outline-based notes management and organizer") (description "Org is an Emacs mode for keeping notes, maintaining TODO -lists, and project planning with a fast and effective plain-text system. It -also is an authoring system with unique support for literate programming and -reproducible research.") +lists, and project planning with a fast and effective lightweight markup +language. It also is an authoring system with unique support for literate +programming and reproducible research.") (license license:gpl3+))) (define-public emacs-org-contrib (package (inherit emacs-org) (name "emacs-org-contrib") - (version "20180423") + (version "20180507") (source (origin (method url-fetch) (uri (string-append "https://orgmode.org/elpa/org-plus-contrib-" version ".tar")) (sha256 (base32 - "1aggvdy74q8p79xyc19zring5gjvlzp6lbsq8ar319zkmcjrapqd")))) + "190iwjpdjrhg7gl2d4bri2y0y679vlrwd841r6dvhza0yy338d2d")))) (arguments `(#:modules ((guix build emacs-build-system) (guix build utils) -- cgit v1.2.3 From 07ca90458f34e425416f37bc7fcd5b178ab6734a Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 7 May 2018 14:32:02 +0000 Subject: system: Add mx6cuboxi installer. * gnu/bootloader/u-boot.scm (u-boot-mx6cuboxi-bootloader): New exported variable. * gnu/system/install.scm (mx6cuboxi-installation-os): New exported variable. --- gnu/bootloader/u-boot.scm | 20 ++++++++++++++++++++ gnu/system/install.scm | 6 ++++++ 2 files changed, 26 insertions(+) diff --git a/gnu/bootloader/u-boot.scm b/gnu/bootloader/u-boot.scm index 21d0aecce2..58ee528a21 100644 --- a/gnu/bootloader/u-boot.scm +++ b/gnu/bootloader/u-boot.scm @@ -33,6 +33,7 @@ u-boot-a20-olinuxino-micro-bootloader u-boot-banana-pi-m2-ultra-bootloader u-boot-beaglebone-black-bootloader + u-boot-mx6cuboxi-bootloader u-boot-nintendo-nes-classic-edition-bootloader)) (define install-u-boot @@ -62,6 +63,15 @@ (write-file-on-device u-boot (stat:size (stat u-boot)) device (* 8 1024))))) +(define install-imx-u-boot + #~(lambda (bootloader device mount-point) + (let ((spl (string-append bootloader "/libexec/SPL")) + (u-boot (string-append bootloader "/libexec/u-boot.img"))) + (write-file-on-device spl (stat:size (stat spl)) + device (* 1 1024)) + (write-file-on-device u-boot (stat:size (stat u-boot)) + device (* 69 1024))))) + ;;; @@ -86,6 +96,11 @@ (inherit u-boot-bootloader) (installer install-allwinner-u-boot))) +(define u-boot-imx-bootloader + (bootloader + (inherit u-boot-bootloader) + (installer install-imx-u-boot))) + (define u-boot-nintendo-nes-classic-edition-bootloader (bootloader (inherit u-boot-allwinner-bootloader) @@ -110,3 +125,8 @@ (bootloader (inherit u-boot-allwinner-bootloader) (package u-boot-banana-pi-m2-ultra))) + +(define u-boot-mx6cuboxi-bootloader + (bootloader + (inherit u-boot-imx-bootloader) + (package u-boot-mx6cuboxi))) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 920d215272..7580d981ba 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -49,6 +49,7 @@ a20-olinuxino-micro-installation-os banana-pi-m2-ultra-installation-os beaglebone-black-installation-os + mx6cuboxi-installation-os nintendo-nes-classic-edition-installation-os)) ;;; Commentary: @@ -429,6 +430,11 @@ The bootloader BOOTLOADER is installed to BOOTLOADER-TARGET." "/dev/mmcblk1" ; eMMC storage "ttyS0")) +(define mx6cuboxi-installation-os + (embedded-installation-os u-boot-mx6cuboxi-bootloader + "/dev/mmcblk0" ; SD card storage + "ttymxc0")) + (define nintendo-nes-classic-edition-installation-os (embedded-installation-os u-boot-nintendo-nes-classic-edition-bootloader "/dev/mmcblk0" ; SD card (solder it yourself) -- cgit v1.2.3 From fd5536e32b7896e46daf55a52805ea020e43b088 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Mon, 7 May 2018 14:34:43 +0000 Subject: system: Add wandboard installer. * gnu/bootloader/u-boot.scm (u-boot-wandboard-bootloader): New exported variable. * gnu/system/install.scm (wandboard-installation-os): New exported variable. --- gnu/bootloader/u-boot.scm | 8 +++++++- gnu/system/install.scm | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/gnu/bootloader/u-boot.scm b/gnu/bootloader/u-boot.scm index 58ee528a21..9a62a166f9 100644 --- a/gnu/bootloader/u-boot.scm +++ b/gnu/bootloader/u-boot.scm @@ -34,7 +34,8 @@ u-boot-banana-pi-m2-ultra-bootloader u-boot-beaglebone-black-bootloader u-boot-mx6cuboxi-bootloader - u-boot-nintendo-nes-classic-edition-bootloader)) + u-boot-nintendo-nes-classic-edition-bootloader + u-boot-wandboard-bootloader)) (define install-u-boot #~(lambda (bootloader device mount-point) @@ -130,3 +131,8 @@ (bootloader (inherit u-boot-imx-bootloader) (package u-boot-mx6cuboxi))) + +(define u-boot-wandboard-bootloader + (bootloader + (inherit u-boot-imx-bootloader) + (package u-boot-wandboard))) diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 7580d981ba..9bb1d8145f 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -50,7 +50,8 @@ banana-pi-m2-ultra-installation-os beaglebone-black-installation-os mx6cuboxi-installation-os - nintendo-nes-classic-edition-installation-os)) + nintendo-nes-classic-edition-installation-os + wandboard-installation-os)) ;;; Commentary: ;;; @@ -440,6 +441,11 @@ The bootloader BOOTLOADER is installed to BOOTLOADER-TARGET." "/dev/mmcblk0" ; SD card (solder it yourself) "ttyS0")) +(define wandboard-installation-os + (embedded-installation-os u-boot-wandboard-bootloader + "/dev/mmcblk0" ; SD card storage + "ttymxc0")) + ;; Return the default os here so 'guix system' can consume it directly. installation-os -- cgit v1.2.3 From 1b960787e21eb746df051592094478dd5ce8bcbb Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Wed, 9 May 2018 06:59:10 +0000 Subject: system: Add u-boot-novena installer. * gnu/packages/bootloaders.scm (u-boot-novena): New variable. * gnu/bootloader/u-boot.scm (u-boot-novena-bootloader): New exported variable. * gnu/system/install.scm (novena-installation-os): New exported variable. --- gnu/bootloader/u-boot.scm | 6 ++++++ gnu/packages/bootloaders.scm | 3 +++ gnu/system/install.scm | 6 ++++++ 3 files changed, 15 insertions(+) diff --git a/gnu/bootloader/u-boot.scm b/gnu/bootloader/u-boot.scm index 9a62a166f9..bc8f98f32f 100644 --- a/gnu/bootloader/u-boot.scm +++ b/gnu/bootloader/u-boot.scm @@ -35,6 +35,7 @@ u-boot-beaglebone-black-bootloader u-boot-mx6cuboxi-bootloader u-boot-nintendo-nes-classic-edition-bootloader + u-boot-novena-bootloader u-boot-wandboard-bootloader)) (define install-u-boot @@ -136,3 +137,8 @@ (bootloader (inherit u-boot-imx-bootloader) (package u-boot-wandboard))) + +(define u-boot-novena-bootloader + (bootloader + (inherit u-boot-imx-bootloader) + (package u-boot-novena))) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 0db6ad3f6a..c0a0101c55 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -469,6 +469,9 @@ also initializes the boards (RAM etc).") (define-public u-boot-mx6cuboxi (make-u-boot-package "mx6cuboxi" "arm-linux-gnueabihf")) +(define-public u-boot-novena + (make-u-boot-package "novena" "arm-linux-gnueabihf")) + (define-public vboot-utils (package (name "vboot-utils") diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 9bb1d8145f..a2917e485f 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -51,6 +51,7 @@ beaglebone-black-installation-os mx6cuboxi-installation-os nintendo-nes-classic-edition-installation-os + novena-installation-os wandboard-installation-os)) ;;; Commentary: @@ -436,6 +437,11 @@ The bootloader BOOTLOADER is installed to BOOTLOADER-TARGET." "/dev/mmcblk0" ; SD card storage "ttymxc0")) +(define novena-installation-os + (embedded-installation-os u-boot-novena-bootloader + "/dev/mmcblk1" ; SD card storage + "ttymxc1")) + (define nintendo-nes-classic-edition-installation-os (embedded-installation-os u-boot-nintendo-nes-classic-edition-bootloader "/dev/mmcblk0" ; SD card (solder it yourself) -- cgit v1.2.3 From 10673d150f5d374081d1d993b936370cda31b0ad Mon Sep 17 00:00:00 2001 From: Julien Lepiller Date: Fri, 11 May 2018 14:34:41 +0200 Subject: guix: Fix typo. * guix/scripts/lint.scm: Fix typo. --- guix/scripts/lint.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/guix/scripts/lint.scm b/guix/scripts/lint.scm index 4ec3267007..cd802985dc 100644 --- a/guix/scripts/lint.scm +++ b/guix/scripts/lint.scm @@ -1037,7 +1037,7 @@ them for PACKAGE." (check check-inputs-should-be-native)) (lint-checker (name 'inputs-should-not-be-input) - (description "Identify inputs that should be inputs at all") + (description "Identify inputs that shouldn't be inputs at all") (check check-inputs-should-not-be-an-input-at-all)) (lint-checker (name 'patch-file-names) -- cgit v1.2.3 From 30da3173d5ee69777d0e1de4f9c977dea72e8a77 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 11 May 2018 16:41:35 +0200 Subject: pack: Relocatable wrapper now properly maps the current UID/GID. * gnu/packages/aux-files/run-in-namespace.c (write_id_map) (disallow_setgroups): New functions. (main): Use 'clone' via 'syscall' instead of 'fork' followed by 'unshare'. Add calls to 'disallow_setgroups' and 'write_id_map' in the parent process. --- gnu/packages/aux-files/run-in-namespace.c | 87 ++++++++++++++++++++++++------- 1 file changed, 68 insertions(+), 19 deletions(-) diff --git a/gnu/packages/aux-files/run-in-namespace.c b/gnu/packages/aux-files/run-in-namespace.c index d0ab05c5db..f0cff88552 100644 --- a/gnu/packages/aux-files/run-in-namespace.c +++ b/gnu/packages/aux-files/run-in-namespace.c @@ -40,6 +40,7 @@ #include #include #include +#include /* Concatenate DIRECTORY, a slash, and FILE. Return the result, which the caller must eventually free. */ @@ -168,6 +169,48 @@ bind_mount (const char *source, const char *target) closedir (stream); } +/* Write the user/group ID map for PID to FILE, mapping ID to itself. See + user_namespaces(7). */ +static void +write_id_map (pid_t pid, const char *file, int id) +{ + char id_map_file[100]; + snprintf (id_map_file, sizeof id_map_file, "/proc/%d/%s", pid, file); + + char id_map[100]; + + /* Map root and the current user. */ + int len = snprintf (id_map, sizeof id_map, "%d %d 1\n", id, id); + int fd = open (id_map_file, O_WRONLY); + if (fd < 0) + assert_perror (errno); + + int n = write (fd, id_map, len); + if (n < 0) + assert_perror (errno); + + close (fd); +} + +/* Disallow setgroups(2) for PID. */ +static void +disallow_setgroups (pid_t pid) +{ + char file[100]; + + snprintf (file, sizeof file, "/proc/%d/setgroups", pid); + + int fd = open (file, O_WRONLY); + if (fd < 0) + assert_perror (errno); + + int err = write (fd, "deny", 5); + if (err < 0) + assert_perror (errno); + + close (fd); +} + int main (int argc, char *argv[]) @@ -201,26 +244,16 @@ main (int argc, char *argv[]) char *new_store = concat (new_root, "@STORE_DIRECTORY@"); char *cwd = get_current_dir_name (); - pid_t child = fork (); + /* Create a child with separate namespaces and set up bind-mounts from + there. That way, bind-mounts automatically disappear when the child + exits, which simplifies cleanup for the parent. Note: clone is more + convenient than fork + unshare since the parent can directly write + the child uid_map/gid_map files. */ + pid_t child = syscall (SYS_clone, SIGCHLD | CLONE_NEWNS | CLONE_NEWUSER, + NULL, NULL, NULL); switch (child) { case 0: - /* Unshare namespaces in the child and set up bind-mounts from - there. That way, bind-mounts automatically disappear when the - child exits, which simplifies cleanup for the parent. */ - err = unshare (CLONE_NEWNS | CLONE_NEWUSER); - if (err < 0) - { - fprintf (stderr, "%s: error: 'unshare' failed: %m\n", argv[0]); - fprintf (stderr, "\ -This may be because \"user namespaces\" are not supported on this system.\n\ -Consequently, we cannot run '@WRAPPED_PROGRAM@',\n\ -unless you move it to the '@STORE_DIRECTORY@' directory.\n\ -\n\ -Please refer to the 'guix pack' documentation for more information.\n"); - return EXIT_FAILURE; - } - /* Note: Due to we cannot make NEW_ROOT a tmpfs (which would have saved the need for 'rm_rf'.) */ @@ -239,11 +272,27 @@ Please refer to the 'guix pack' documentation for more information.\n"); /* Change back to where we were before chroot'ing. */ chdir (cwd); break; + case -1: - assert_perror (errno); - break; + fprintf (stderr, "%s: error: 'clone' failed: %m\n", argv[0]); + fprintf (stderr, "\ +This may be because \"user namespaces\" are not supported on this system.\n\ +Consequently, we cannot run '@WRAPPED_PROGRAM@',\n\ +unless you move it to the '@STORE_DIRECTORY@' directory.\n\ +\n\ +Please refer to the 'guix pack' documentation for more information.\n"); + return EXIT_FAILURE; + default: { + /* Map the current user/group ID in the child's namespace (the + default is to get the "overflow UID", i.e., the UID of + "nobody"). We must first disallow 'setgroups' for that + process. */ + disallow_setgroups (child); + write_id_map (child, "uid_map", getuid ()); + write_id_map (child, "gid_map", getgid ()); + int status; waitpid (child, &status, 0); chdir ("/"); /* avoid EBUSY */ -- cgit v1.2.3 From 26b8cadf88aeb1dfbc8625f02bbc20ecc0c718de Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 11 May 2018 16:56:19 +0200 Subject: pack: 'guix pack -S xxx' no longer adds entries twice to the tarball. * guix/scripts/pack.scm (self-contained-tarball)[build](symlink->directives): Do not add a 'directory' directive for "/". Previously, as soon as we were using '-S /bin=bin' or similar, we would add every entry a second time in the tarball; this would translate as hard links in the tarball, which tar < 1.30 sometimes fails to extract. Pass symlinks defined in DIRECTIVES to 'tar'. --- guix/scripts/pack.scm | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index db5609219f..6d648d1ac3 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -122,10 +122,17 @@ added to the pack." ;; parent directories. (match-lambda ((source '-> target) - (let ((target (string-append #$profile "/" target))) - `((directory ,(dirname source)) + (let ((target (string-append #$profile "/" target)) + (parent (dirname source))) + ;; Never add a 'directory' directive for "/" so as to + ;; preserve its ownnership when extracting the archive (see + ;; below), and also because this would lead to adding the + ;; same entries twice in the tarball. + `(,@(if (string=? parent "/") + '() + `((directory ,parent))) (,source - -> ,(relative-file-name (dirname source) target))))))) + -> ,(relative-file-name parent target))))))) (define directives ;; Fully-qualified symlinks. @@ -146,9 +153,11 @@ added to the pack." "") #$tar "/bin")) - ;; Note: there is not much to gain here with deduplication and - ;; there is the overhead of the '.links' directory, so turn it - ;; off. + ;; Note: there is not much to gain here with deduplication and there + ;; is the overhead of the '.links' directory, so turn it off. + ;; Furthermore GNU tar < 1.30 sometimes fails to extract tarballs + ;; with hard links: + ;; . (populate-single-profile-directory %root #:profile #$profile #:closure "profile" @@ -195,6 +204,8 @@ added to the pack." (filter-map (match-lambda (('directory directory) (string-append "." directory)) + ((source '-> _) + (string-append "." source)) (_ #f)) directives))))))))) -- cgit v1.2.3 From 4f38754180bc880f6986b333b8e15e63709fb550 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 11 May 2018 17:16:12 +0200 Subject: gnu: arpack-ng-openmpi: Fix build. * gnu/packages/maths.scm (arpack-ng-openmpi)[arguments]: Inherit arguments from ARPACK-NG. Previously the 'configure' phase would fail due to the lack of a 'configure' script. --- gnu/packages/maths.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index edbbdfffb7..6387f71582 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -479,7 +479,10 @@ large scale eigenvalue problems.") (inputs `(("mpi" ,openmpi) ,@(package-inputs arpack-ng))) - (arguments `(#:configure-flags '("--enable-mpi"))) + (arguments + (substitute-keyword-arguments (package-arguments arpack-ng) + ((#:configure-flags _ '()) + ''("--enable-mpi")))) (synopsis "Fortran subroutines for solving eigenvalue problems with MPI"))) (define-public lapack -- cgit v1.2.3 From 1a4e553069a3c22f28bfd43d044993285ddfa96a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 11 May 2018 18:28:33 +0200 Subject: gnu: eog-plugins: Update to 3.26.2. * gnu/packages/gnome.scm (eog-plugins): Update to 3.26.2. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 9ae04b8695..9e9688456d 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -3875,7 +3875,7 @@ supports image conversion, rotation, and slideshows.") ;; 'XDG_DATA_DIRS' appropriately set. (package (name "eog-plugins") - (version "3.26.1") + (version "3.26.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -3883,7 +3883,7 @@ supports image conversion, rotation, and slideshows.") name "-" version ".tar.xz")) (sha256 (base32 - "0v45f2m3b60ygkwpq6jrl49nwrivw6qy0ciibpv821qrm73hsgd7")))) + "1w8zw7kwfvlwlyb1k1inqdvbwnzq959sqawlmnwfb8ykn98hbk8y")))) (build-system gnu-build-system) (home-page "https://wiki.gnome.org/Apps/EyeOfGnome/Plugins") (synopsis "Extensions for the Eye of GNOME image viewer") -- cgit v1.2.3 From cbcdb777900618f0858e26c91415c603e2a44fb8 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 11 May 2018 18:42:25 +0200 Subject: gnu: diffoscope: Update to 94. * gnu/packages/package-management.scm (diffoscope): Update to 94. --- gnu/packages/package-management.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index fe53e67fe7..1356480b81 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -544,13 +544,13 @@ transactions from C or Python.") (define-public diffoscope (package (name "diffoscope") - (version "93") + (version "94") (source (origin (method url-fetch) (uri (pypi-uri name version)) (sha256 (base32 - "0g90nf7817jk03hzk36l3hymky4xqs50iynfld3r0in7hffly5nj")))) + "07pcc4r9kz8zfr4pfkzk3ipgyv7m5h9vwicrzdgjpa87nbbdgjx6")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases -- cgit v1.2.3 From 2c5289b2635c911b467455935d63cff78f53c60f Mon Sep 17 00:00:00 2001 From: Ben Woodcroft Date: Sat, 12 May 2018 11:01:21 +1000 Subject: gnu: diamond: Update to 0.9.22. * gnu/packages/bioinformatics.scm (diamond): Update to 0.9.22. --- gnu/packages/bioinformatics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 1996cfa3b3..7a121557db 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -2079,7 +2079,7 @@ accurately delineate genomic rearrangements throughout the genome.") (define-public diamond (package (name "diamond") - (version "0.9.21") + (version "0.9.22") (source (origin (method url-fetch) (uri (string-append @@ -2088,7 +2088,7 @@ accurately delineate genomic rearrangements throughout the genome.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1cf98vcsiwcv3c4apg50w1240v1mpw0zln1sdw3g692dqa4y041z")))) + "0adp87r9ak63frdrdmrdfhsn6g0jnnyq1lr2wibvqbxcl37iir9m")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no "check" target -- cgit v1.2.3 From afca98ff01e036594778ab687f472ef5d759f653 Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Fri, 11 May 2018 15:02:01 -0700 Subject: bootloader: extlinux: Fix menu support with u-boot. * gnu/bootloader/extlinux.scm (extlinux-configuration-file): Set MENU TITLE in generated extlinux.conf. Signed-off-by: Danny Milosavljevic --- gnu/bootloader/extlinux.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/bootloader/extlinux.scm b/gnu/bootloader/extlinux.scm index f7820a37a4..8b7a95a6fc 100644 --- a/gnu/bootloader/extlinux.scm +++ b/gnu/bootloader/extlinux.scm @@ -64,6 +64,7 @@ corresponding to old generations of the system." (format port "# This file was generated from your GuixSD configuration. Any changes # will be lost upon reconfiguration. UI menu.c32 +MENU TITLE GuixSD Boot Options PROMPT ~a TIMEOUT ~a~%" (if (> timeout 0) 1 0) -- cgit v1.2.3 From 3944e13a72ce0ef81b76eb7b8b06d633e0a366d3 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 12 May 2018 03:58:14 -0400 Subject: gnu: linux-libre@4.9: Update to 4.9.99. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.99. --- 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 7648b55764..252ee85900 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -411,8 +411,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.98" - "14mqg2hvxg4zwajwly18akyaca821sp4iz5w3xmikwndn2j8y1lw" + (make-linux-libre "4.9.99" + "0xhzanpxbhddj0n8hn40z99y9x3538fm167z3dixzgs6jq4vfx5b" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From 7187669a81ce7abeb5e37f0ca25e5aa3f8c443f7 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 12 May 2018 03:59:22 -0400 Subject: gnu: linux-libre@4.14: Update to 4.14.40. * gnu/packages/linux.scm (%linux-libre-4.14-version): Update to 4.14.40. (%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 252ee85900..7a86b87e5f 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -401,8 +401,8 @@ It has been modified to remove all non-free binary blobs.") %linux-compatible-systems #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.39") -(define %linux-libre-4.14-hash "0r6fydsgspnskh5n1hfrkyrlrmql635zqr44ajafmqimldc0bplz") +(define %linux-libre-4.14-version "4.14.40") +(define %linux-libre-4.14-hash "0ifnxxqzn47gd2mpga8xj8nwhhzkhx31csis3p5j236m5kc149mc") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version -- cgit v1.2.3 From 0d0b5722865df6e6547c3a7305dd5fbee5e9bcd8 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 12 May 2018 04:00:17 -0400 Subject: gnu: linux-libre: Update to 4.16.8. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.16.8. (%linux-libre-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 7a86b87e5f..76bd90fdee 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -392,8 +392,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.16.7") -(define %linux-libre-hash "145hv7paw5zd6bnkk0agxyg2a37066xhrxszbq3d03mjvi8ap117") +(define %linux-libre-version "4.16.8") +(define %linux-libre-hash "0j77wnf97rjrvs1vbifash0sppa85pb5ckdk40f4n2mbzardsmxg") (define-public linux-libre (make-linux-libre %linux-libre-version -- cgit v1.2.3 From 3bdb24826ebb568580c93580e4b4a9567f8060cc Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Fri, 11 May 2018 16:37:52 -0700 Subject: gnu: u-boot: Update to 2018.05. * gnu/packages/bootloaders.scm (u-boot): Update to 2018.05. Signed-off-by: Danny Milosavljevic --- gnu/packages/bootloaders.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index c0a0101c55..b72858f7be 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -338,7 +338,7 @@ tree binary files. These are board description files used by Linux and BSD.") (define u-boot (package (name "u-boot") - (version "2018.01") + (version "2018.05") (source (origin (method url-fetch) (uri (string-append @@ -346,7 +346,7 @@ tree binary files. These are board description files used by Linux and BSD.") "u-boot-" version ".tar.bz2")) (sha256 (base32 - "1nidnnjprgxdhiiz7gmaj8cgcf52l5gbv64cmzjq4gmkjirmk3wk")))) + "0j60p4iskzb4hamxgykc6gd7xchxfka1zwh8hv08r9rrc4m3r8ad")))) (native-inputs `(("bc" ,bc) ;("dtc" ,dtc) ; they have their own incompatible copy. -- cgit v1.2.3 From 53e290df57d284b5d3d4f40d5f0260283ac4cbee Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 12 May 2018 09:43:23 +0200 Subject: gnu: u-boot: Add our dtc. * gnu/packages/bootloaders.scm (u-boot)[native-inputs]: Add dtc. --- gnu/packages/bootloaders.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index b72858f7be..3de70e2c66 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -349,7 +349,7 @@ tree binary files. These are board description files used by Linux and BSD.") "0j60p4iskzb4hamxgykc6gd7xchxfka1zwh8hv08r9rrc4m3r8ad")))) (native-inputs `(("bc" ,bc) - ;("dtc" ,dtc) ; they have their own incompatible copy. + ("dtc" ,dtc) ("python-2" ,python-2) ("swig" ,swig))) (build-system gnu-build-system) -- cgit v1.2.3 From 30ef146c996983cdcca7c0d17b2dee2fe31806d4 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 12 May 2018 10:54:19 +0200 Subject: gnu: make-u-boot-package: Sort printed configurations. * gnu/packages/bootloaders.scm (make-u-boot-package): Sort printed configurations. --- gnu/packages/bootloaders.scm | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 3de70e2c66..22b88dd1b9 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -393,14 +393,15 @@ also initializes the boards (RAM etc).") (zero? (apply system* "make" `(,@make-flags ,config-name))) (begin (display "Invalid board name. Valid board names are:") - (let ((suffix-len (string-length "_defconfig"))) - (scandir "configs" - (lambda (file-name) - (when (string-suffix? "_defconfig" file-name) - (format #t - "- ~A\n" - (string-drop-right file-name - suffix-len)))))) + (let ((suffix-len (string-length "_defconfig")) + (entries (scandir "configs"))) + (for-each (lambda (file-name) + (when (string-suffix? "_defconfig" file-name) + (format #t + "- ~A\n" + (string-drop-right file-name + suffix-len)))) + (sort entries string<))) #f))))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) -- cgit v1.2.3 From ac30d18c0ba668a91547c97b3637dfd9caabbd37 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 12 May 2018 10:56:25 +0200 Subject: gnu: make-u-boot-package: Print errors to (current-error-port). * gnu/packages/bootloaders.scm (make-u-boot-package): Print errors to (current-error-port). --- gnu/packages/bootloaders.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 22b88dd1b9..ff9078b9f7 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -392,12 +392,13 @@ also initializes the boards (RAM etc).") (if (file-exists? (string-append "configs/" config-name)) (zero? (apply system* "make" `(,@make-flags ,config-name))) (begin - (display "Invalid board name. Valid board names are:") + (display "Invalid board name. Valid board names are:" + (current-error-port)) (let ((suffix-len (string-length "_defconfig")) (entries (scandir "configs"))) (for-each (lambda (file-name) (when (string-suffix? "_defconfig" file-name) - (format #t + (format (current-error-port) "- ~A\n" (string-drop-right file-name suffix-len)))) @@ -473,6 +474,9 @@ also initializes the boards (RAM etc).") (define-public u-boot-novena (make-u-boot-package "novena" "arm-linux-gnueabihf")) +(define-public u-boot-versatilepb + (make-u-boot-package "vesx" "arm-linux-gnueabihf")) + (define-public vboot-utils (package (name "vboot-utils") -- cgit v1.2.3 From 35e427d154b6bdcd1a6f68445efab9b384300ec9 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 12 May 2018 11:09:42 +0200 Subject: gnu: u-boot-pine64-plus: Use bundled dtc. * gnu/packages/bootloaders.scm (u-boot-pine64-plus)[arguments]<#:phases> [set-environment]: Use bundled dtc. --- gnu/packages/bootloaders.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index ff9078b9f7..7aea959e83 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -442,9 +442,10 @@ also initializes the boards (RAM etc).") (let ((bl31 (string-append (assoc-ref inputs "firmware") "/bl31.bin"))) (setenv "BL31" bl31) - ;; This is necessary while we're using the bundled dtc. - (setenv "PATH" (string-append (getenv "PATH") ":" - "scripts/dtc"))) + ;; This is necessary when we're using the bundled dtc. + ;(setenv "PATH" (string-append (getenv "PATH") ":" + ; "scripts/dtc")) + ) #t)))))) (native-inputs `(("firmware" ,arm-trusted-firmware-pine64-plus) -- cgit v1.2.3 From 78ad8db682516cb7a38f14bae069f45eb2942784 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 12 May 2018 11:11:25 +0200 Subject: gnu: u-boot-versatilepb: Remove package. * gnu/packages/bootloaders.scm (u-boot-versatilepb): Delete variable. --- gnu/packages/bootloaders.scm | 3 --- 1 file changed, 3 deletions(-) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 7aea959e83..87fb2cf855 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -475,9 +475,6 @@ also initializes the boards (RAM etc).") (define-public u-boot-novena (make-u-boot-package "novena" "arm-linux-gnueabihf")) -(define-public u-boot-versatilepb - (make-u-boot-package "vesx" "arm-linux-gnueabihf")) - (define-public vboot-utils (package (name "vboot-utils") -- cgit v1.2.3 From d6680dccb0cbff97946094b967b0b897fe88311a Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 12 May 2018 15:57:46 +0200 Subject: hydra: Switch back to "-" instead of "@" in package job names. Fixes a regression introduced in ede121de426f9c56820852888a0b370f0ccbce49. Reported by Mark H Weaver . * build-aux/hydra/gnu-system.scm (job-name): Pass "-" as the second argument to 'package-full-name'. --- build-aux/hydra/gnu-system.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build-aux/hydra/gnu-system.scm b/build-aux/hydra/gnu-system.scm index 62eb957f83..654f3ecf3e 100644 --- a/build-aux/hydra/gnu-system.scm +++ b/build-aux/hydra/gnu-system.scm @@ -264,7 +264,8 @@ all its dependencies, and ready to be installed on non-GuixSD distributions.") (define job-name ;; Return the name of a package's job. - (compose string->symbol package-full-name)) + (compose string->symbol + (cut package-full-name <> "-"))) (define package->job (let ((base-packages -- cgit v1.2.3 From dd82ac174ec521ffab4985ed0cc9b9ced3eca3c8 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Sat, 12 May 2018 16:44:47 +0200 Subject: gnu: xpra: Update to 2.3. * gnu/packages/xorg.scm (xpra): Update to 2.3. --- gnu/packages/xorg.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 2e9844ddcf..4876e9826a 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5943,7 +5943,7 @@ basic eye-candy effects.") (define-public xpra (package (name "xpra") - (version "2.2.6") + (version "2.3") (source (origin (method url-fetch) @@ -5951,7 +5951,7 @@ basic eye-candy effects.") version ".tar.xz")) (sha256 (base32 - "1zyynghhzjbgnmzcibm17wpj9f7jy31d7dr373li8cwg2yl2swyz")))) + "0kq0ambpy8r7m3wxdp79cgxgnl9yfmr19lv88f617gnv0sp0aarp")))) (build-system python-build-system) (inputs `(("ffmpeg" ,ffmpeg) ("flac" ,flac) -- cgit v1.2.3 From ecfc85dbb9188fcc2a3f42de89e783248d0133c7 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Sat, 12 May 2018 16:46:44 +0200 Subject: gnu: gnome-disk-utility: Update to 3.28.2. * gnu/packages/gnome.scm (gnome-disk-utility): Update to 3.28.2. --- gnu/packages/gnome.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 9e9688456d..9455ed5c77 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -535,7 +535,7 @@ and keep up to date translations of documentation.") (define-public gnome-disk-utility (package (name "gnome-disk-utility") - (version "3.28.1") + (version "3.28.2") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -543,7 +543,7 @@ and keep up to date translations of documentation.") name "-" version ".tar.xz")) (sha256 (base32 - "09dmknfas8iifv6k5jb4a9ag57s8awrn0f26fd1qlg0mbfjlnfd6")))) + "1j3l4b1prbnixzy6srvcsjfg1dx5nqys2lmygm31ygfdq7svp3m6")))) (build-system meson-build-system) (native-inputs `(("glib:bin" ,glib "bin") -- cgit v1.2.3 From 1df811f74eba4c6d53d6dd1517423f6cc03b41fc Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Sat, 12 May 2018 16:53:11 +0200 Subject: gnu: wine-staging-patchset-data: Update to 3.8. * gnu/packages/wine.scm (wine-staging-patchset-data): Update to 3.8. --- gnu/packages/wine.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 914b70d0c8..dc2a3a5155 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -223,7 +223,7 @@ integrate Windows applications into your desktop.") (define-public wine-staging-patchset-data (package (name "wine-staging-patchset-data") - (version "3.7") + (version "3.8") (source (origin (method url-fetch) @@ -232,7 +232,7 @@ integrate Windows applications into your desktop.") (file-name (string-append name "-" version ".zip")) (sha256 (base32 - "112sy32sja4cc3rv8x6v4cdi3jfxdgzwfra8f78hzdf8a2wrjqz6")))) + "1z1a9zlhcglyzfxdilrsz558qpn69b4mzp086s364jqgzj930sja")))) (build-system trivial-build-system) (native-inputs `(("bash" ,bash) -- cgit v1.2.3 From efa465f12358b84d3dcfd8b41149b0656d6581e9 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Sat, 12 May 2018 16:53:46 +0200 Subject: gnu: wine-staging: Update to 3.8. * gnu/packages/wine.scm (wine-staging): Update to 3.8. --- gnu/packages/wine.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index dc2a3a5155..7c00ff3ef3 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -278,7 +278,7 @@ integrate Windows applications into your desktop.") (file-name (string-append name "-" version ".tar.xz")) (sha256 (base32 - "1drbzk3y0m14lkq3vzwwkvain5shykgcbmyzh6gcb5r4sxh3givn")))) + "0l8dqb8r72i6n7yh2bmx738i8ss0lmsj07hvgrqsnfwbjin0rc02")))) (inputs `(("autoconf" ,autoconf) ; for autoreconf ("gtk+" ,gtk+) ("libva" ,libva) -- cgit v1.2.3 From 8e6450f7e22f47941661b750ad9df41a3ef5afd8 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Wed, 9 May 2018 22:13:49 -0400 Subject: gnu: libreoffice: Update to 5.4.7.1. * gnu/packages/libreoffice.scm (libreoffice): Update to 5.4.7.1. --- gnu/packages/libreoffice.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index adcdff1ca1..2e1d6f400e 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -844,7 +844,7 @@ and to return information on pronunciations, meanings and synonyms.") (define-public libreoffice (package (name "libreoffice") - (version "5.4.6.2") + (version "5.4.7.1") (source (origin (method url-fetch) @@ -854,7 +854,7 @@ and to return information on pronunciations, meanings and synonyms.") (version-prefix version 3) "/libreoffice-" version ".tar.xz")) (sha256 (base32 - "0icd8h221gp2dsbn6d35flwhqhcfpx66cjc5dg8yifhhvrfam74i")))) + "0g60wzg90n1kanmkiwy01jz4s4xgdkpczvm7vdrmjpp7ifrgijbv")))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) -- cgit v1.2.3 From 241caa62ca315177fd1dfc10a64621a9d29d26dd Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 6 May 2018 16:55:19 -0400 Subject: gnu: MPD: Remove unecessary dependency on libmad. MPD already depends on FFmpeg, which uses LAME for MP3 decoding. gnu/packages/mpd.scm (mpd)[inputs]: Remove LIBMAD. --- gnu/packages/mpd.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/mpd.scm b/gnu/packages/mpd.scm index 1889035492..6f2ff5d784 100644 --- a/gnu/packages/mpd.scm +++ b/gnu/packages/mpd.scm @@ -119,9 +119,10 @@ interfacing MPD in the C, C++ & Objective C languages.") ("flac" ,flac) ("glib" ,glib) ("icu4c" ,icu4c) + ;; The LAME decoder comes from FFmpeg, but is added here so that + ;; configure picks up the LAME encoder. ("lame" ,lame) ("libid3tag" ,libid3tag) - ("libmad" ,libmad) ("libmpdclient" ,libmpdclient) ("libsamplerate" ,libsamplerate) ("libsndfile" ,libsndfile) -- cgit v1.2.3 From 1d6dc2a2060ff8ebe8627ae2a37c61c38a55e3b9 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Tue, 8 May 2018 01:19:44 -0400 Subject: gnu: gst-plugins-ugly: Remove libmad from the build environment. Libmad is not used by gst-plugins-ugly since 1.12.0. * gnu/packages/gstreamer.scm (gst-plugins-ugly)[inputs]: Remove libmad. --- gnu/packages/gstreamer.scm | 1 - 1 file changed, 1 deletion(-) diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm index da130d88ff..0f1e1ff1a2 100644 --- a/gnu/packages/gstreamer.scm +++ b/gnu/packages/gstreamer.scm @@ -352,7 +352,6 @@ par compared to the rest.") (inputs `(("gst-plugins-base" ,gst-plugins-base) ("liba52" ,liba52) - ("libmad" ,libmad) ("lame" ,lame) ("libcdio" ,libcdio) ("twolame" ,twolame) -- cgit v1.2.3 From dd4fe0c288b837802cd84fae880587bb9d2f8f27 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 12 May 2018 11:24:53 +0200 Subject: gnu: Add u-boot-cubieboard. * gnu/packages/bootloaders.scm (u-boot-cubieboard): New variable. --- gnu/packages/bootloaders.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 87fb2cf855..6cc90d1614 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -475,6 +475,9 @@ also initializes the boards (RAM etc).") (define-public u-boot-novena (make-u-boot-package "novena" "arm-linux-gnueabihf")) +(define-public u-boot-cubieboard + (make-u-boot-package "Cubieboard" "arm-linux-gnueabihf")) + (define-public vboot-utils (package (name "vboot-utils") -- cgit v1.2.3 From 0fcfed3950c313d167ef281d6183a6d727311e14 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Sat, 12 May 2018 22:19:14 +0200 Subject: gnu: make-u-boot-package: Install "u-boot". * gnu/packages/bootloaders.scm (make-u-boot-package): Install "u-boot". --- gnu/packages/bootloaders.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index 6cc90d1614..af5d97288d 100644 --- a/gnu/packages/bootloaders.scm +++ b/gnu/packages/bootloaders.scm @@ -413,6 +413,8 @@ also initializes the boards (RAM etc).") (find-files "." "^(MLO|SPL)$")))) (mkdir-p libexec) (install-file ".config" libexec) + ;; Useful for "qemu -kernel". + (install-file "u-boot" libexec) (for-each (lambda (file) (let ((target-file (string-append libexec "/" file))) -- cgit v1.2.3 From 9dc0cf83d2d01fb24b10491fadc27bf62d0b56f2 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 12 May 2018 23:02:04 -0400 Subject: gnu: Go 1.9: Update to 1.9.6. * gnu/packages/golang.scm (go-1.9): Update to 1.9.6. --- gnu/packages/golang.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index c6fc68468f..47e582c553 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -214,7 +214,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (package (inherit go-1.4) (name "go") - (version "1.9.5") + (version "1.9.6") (source (origin (method url-fetch) @@ -222,7 +222,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") name version ".src.tar.gz")) (sha256 (base32 - "1g4zqhbh1yw3gnb400szzwrdz0k5s3h0h5nc35xgmn5v69zvphpi")))) + "0a2qkvzr0g5cbd66wi7b6r40qyp9p55y0zz2j5qg1xsqwsdhbx1n")))) (arguments (substitute-keyword-arguments (package-arguments go-1.4) ((#:phases phases) -- cgit v1.2.3 From fb6357ceea17240cf2cffdb485f883954d9c2df0 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sat, 12 May 2018 23:02:25 -0400 Subject: gnu: Go 1.10: Update to 1.10.2. * gnu/packages/golang.scm (go-1.10): Update to 1.10.2. --- gnu/packages/golang.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index 47e582c553..fe6dfbe1c8 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -383,7 +383,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") (package (inherit go-1.9) (name "go") - (version "1.10.1") + (version "1.10.2") (source (origin (method url-fetch) @@ -391,7 +391,7 @@ in the style of communicating sequential processes (@dfn{CSP}).") name version ".src.tar.gz")) (sha256 (base32 - "1p1xyyxicp752n9wj10sljjl6mjxpfsplkhx74fzzjrwdkzlk52q")))) + "1gcqbac3wbhbcr0ri9zgfj6qkqbwf9fn116a0a7fvn4wdff60r32")))) (arguments (substitute-keyword-arguments (package-arguments go-1.9) ((#:phases phases) -- cgit v1.2.3 From e18e7cb9f4c08efb3b7233dd1042553924594743 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 12 May 2018 16:32:52 +0200 Subject: gnu: hypre: Add missing dependency on Perl. Previously the test suite would fail to run 'ppmquant', though it would silently ignore it. * gnu/packages/maths.scm (hypre)[native-inputs]: Add PERL. --- gnu/packages/maths.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 6387f71582..2e6f79ad55 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -3454,6 +3454,7 @@ set.") (native-inputs `(("doc++" ,doc++) ("netpbm" ,netpbm) + ("perl" ,perl) ;needed to run 'ppmquant' during tests ("texlive" ,texlive) ;full package required for fonts ("ghostscript" ,ghostscript))) (inputs -- cgit v1.2.3 From 437f62f02a1b8c89b8ab39ecd53926489fac42db Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 13 May 2018 12:16:08 +0200 Subject: utils: Add 'version-prefix?'. * guix/utils.scm (version-prefix?): New procedure. * tests/utils.scm ("version-prefix?"): New test. --- guix/utils.scm | 24 +++++++++++++++++++++++- tests/utils.scm | 6 ++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/guix/utils.scm b/guix/utils.scm index 92e45de616..e9efea5866 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès ;;; Copyright © 2013, 2014, 2015 Mark H Weaver ;;; Copyright © 2014 Eric Bavier ;;; Copyright © 2014 Ian Denhardt @@ -84,6 +84,7 @@ version-major+minor version-major guile-version>? + version-prefix? string-replace-substring arguments-from-environment-variable file-extension @@ -521,6 +522,27 @@ minor version numbers from version-string." (micro-version)) str)) +(define version-prefix? + (let ((not-dot (char-set-complement (char-set #\.)))) + (lambda (v1 v2) + "Return true if V1 is a version prefix of V2: + + (version-prefix? \"4.1\" \"4.16.2\") => #f + (version-prefix? \"4.1\" \"4.1.2\") => #t +" + (define (list-prefix? lst1 lst2) + (match lst1 + (() #t) + ((head1 tail1 ...) + (match lst2 + (() #f) + ((head2 tail2 ...) + (and (equal? head1 head2) + (list-prefix? tail1 tail2))))))) + + (list-prefix? (string-tokenize v1 not-dot) + (string-tokenize v2 not-dot))))) + (define (file-extension file) "Return the extension of FILE or #f if there is none." (let ((dot (string-rindex file #\.))) diff --git a/tests/utils.scm b/tests/utils.scm index 197182acf7..3015b21b23 100644 --- a/tests/utils.scm +++ b/tests/utils.scm @@ -72,6 +72,12 @@ (test-assert "guile-version>? 10.5" (not (guile-version>? "10.5"))) +(test-assert "version-prefix?" + (and (version-prefix? "4.1" "4.1.2") + (version-prefix? "4.1" "4.1") + (not (version-prefix? "4.1" "4.16.2")) + (not (version-prefix? "4.1" "4")))) + (test-equal "string-tokenize*" '(("foo") ("foo" "bar" "baz") -- cgit v1.2.3 From 348987d3d12ebaf11fdbcc3dbd56585e7d69a1f5 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 13 May 2018 12:16:34 +0200 Subject: packages: 'find-packages-by-name' properly honors version prefixes. Fixes . Reported by Mark H Weaver . * gnu/packages.scm (find-packages-by-name): Use 'version-prefix?' instead of 'string-prefix?'. --- gnu/packages.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages.scm b/gnu/packages.scm index 1a37a17342..7b954769e9 100644 --- a/gnu/packages.scm +++ b/gnu/packages.scm @@ -188,7 +188,7 @@ decreasing version order." version>?))) (if version (filter (lambda (package) - (string-prefix? version (package-version package))) + (version-prefix? version (package-version package))) matching) matching))))) -- cgit v1.2.3 From d801cd0509c9c9523300c41582ec3d8e59e15539 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 13 May 2018 13:28:55 +0200 Subject: gnu: Add Robocut. * gnu/packages/printers.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. --- gnu/local.mk | 1 + gnu/packages/printers.scm | 69 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 gnu/packages/printers.scm diff --git a/gnu/local.mk b/gnu/local.mk index 3ca7d45bde..cce950b5bc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -344,6 +344,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/plotutils.scm \ %D%/packages/polkit.scm \ %D%/packages/popt.scm \ + %D%/packages/printers.scm \ %D%/packages/profiling.scm \ %D%/packages/pth.scm \ %D%/packages/pulseaudio.scm \ diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm new file mode 100644 index 0000000000..2e58018282 --- /dev/null +++ b/gnu/packages/printers.scm @@ -0,0 +1,69 @@ +;;; 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 (gnu packages printers) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages libusb) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages qt)) + +;; This is a module for packages related to printer-like devices, but not +;; related to CUPS. + +(define-public robocut + (package + (name "robocut") + (version "1.0.11") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/Timmmm/robocut/archive/v" + version ".tar.gz")) + (sha256 + (base32 + "0nmr1plq1f6sarxwqwy4vzbxkljlx8y4xalm7r05vx4lrdai5pad")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "Robocut.pro" + (("/usr/") + (string-append out "/"))) + + (invoke "qmake" + (string-append "PREFIX=" out)) + #t)))))) + (inputs + `(("libusb" ,libusb) + ("qt" ,qtbase) + ("qtsvg" ,qtsvg))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("qmake" ,qttools))) + (synopsis "Graphical program to drive plotting cutters") + (description + "Robocut is a simple graphical program that allows you to cut graphics +with Graphtec and Sihouette plotting cutters using an SVG file as its input.") + (home-page "http://robocut.org") + (license license:gpl3+))) -- cgit v1.2.3 From e42c3649d867de0cfabae0a234187679f5736030 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 13 May 2018 10:00:23 -0400 Subject: gnu: ImageMagick: Update to 6.9.9-43. * gnu/packages/imagemagick.scm (imagemagick): Update to 6.9.9-43. --- gnu/packages/imagemagick.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index d3cc656f11..6781cd3192 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -47,14 +47,14 @@ ;; The 7 release series has an incompatible API, while the 6 series is still ;; maintained. Don't update to 7 until we've made sure that the ImageMagick ;; users are ready for the 7-series API. - (version "6.9.9-39") + (version "6.9.9-43") (source (origin (method url-fetch) (uri (string-append "mirror://imagemagick/ImageMagick-" version ".tar.xz")) (sha256 (base32 - "0cgrvfg8722cdv2y0hw2f7xhzdfmfiqc1348l71ki38dg4b0q4sn")))) + "09vfxb1ljfma7mvkcqp17bs7adlrfh6kc6k9hifkhgxf51vr7hk6")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--with-frozenpaths" "--without-gcc-arch") -- cgit v1.2.3 From 307cdd665ec216dff4b4209b14ccc6f44778f581 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 13 May 2018 20:23:11 +0300 Subject: gnu: viewnior: Update to 1.7. * gnu/packages/image-viewers.scm (viewnior): Update to 1.7. [source]: Update source uri. [build-system]: Switch to meson-build-system. [arguments]: Remove custom 'autogen and 'skip-gtk-update-icon-cache phases, add 'patch-source phase. Skip tests. [native-inputs]: Remove automake, autoconf, intltool, gnome-common, libtool, which, add gettext-minimal. [home-page]: Update home-page. --- gnu/packages/image-viewers.scm | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 1f0a9e46e1..8d60dc0674 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2017, 2018 Ludovic Courtès ;;; Copyright © 2014 Ian Denhardt ;;; Copyright © 2015, 2016 Alex Kost -;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2017 Alex Griffin ;;; Copyright © 2017 Nils Gillmann ;;; Copyright © 2017 Mathieu Othacehe @@ -31,14 +31,15 @@ #:use-module (guix packages) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) + #:use-module (guix build-system meson) #:use-module (guix build-system python) #:use-module (gnu packages autotools) #:use-module (gnu packages algebra) - #:use-module (gnu packages base) #:use-module (gnu packages boost) #:use-module (gnu packages compression) #:use-module (gnu packages curl) #:use-module (gnu packages fontutils) + #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) @@ -231,43 +232,36 @@ it and customize it for your needs.") (define-public viewnior (package (name "viewnior") - (version "1.6") + (version "1.7") (source (origin (method url-fetch) - (uri (string-append "https://github.com/xsisqox/Viewnior/archive/" + (uri (string-append "https://github.com/hellosiyan/Viewnior/archive/" name "-" version ".tar.gz")) (sha256 (base32 - "18309qjgwak3kn228z3p3nx7yxasqgzx69v3rgc23hf161nky0c9")))) - (build-system gnu-build-system) + "1rpkk721s3xas125q3g0fl11b5zsrmzv9pzl6ddzcy4sj2rd7ymr")))) + (build-system meson-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'autogen - (lambda _ - (zero? (system* "sh" "autogen.sh")))) - (add-before 'install 'skip-gtk-update-icon-cache + (add-after 'unpack 'patch-source (lambda _ ;; Don't create 'icon-theme.cache' - (substitute* (find-files "data" "^Makefile$") - (("gtk-update-icon-cache") (which "true"))) - #t))))) + (substitute* "meson.build" + (("meson.add_install_script*") "")) + #t))) + #:tests? #f)) ; no tests (native-inputs - `(("automake" ,automake) - ("autoconf" ,autoconf) - ("intltool" ,intltool) + `(("gettext" ,gettext-minimal) ("glib" ,glib "bin") ; glib-genmarshal - ("gnome-common" ,gnome-common) - ("libtool" ,libtool) ("pkg-config" ,pkg-config) - ("shared-mime-info" ,shared-mime-info) - ("which" ,which))) + ("shared-mime-info" ,shared-mime-info))) (inputs `(("exiv2" ,exiv2) ("gdk-pixbuf" ,gdk-pixbuf) ("gtk+-2" ,gtk+-2))) - (home-page "http://siyanpanayotov.com/project/viewnior/") + (home-page "http://siyanpanayotov.com/project/viewnior") (synopsis "Simple, fast and elegant image viewer") (description "Viewnior is an image viewer program. Created to be simple, fast and elegant. Its minimalistic interface provides more screenspace for -- cgit v1.2.3 From aa8ac0294421d465f60e18c8271f971ec8407a95 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 13 May 2018 20:39:36 +0300 Subject: gnu: myrepos: Fix CVE-2018-7032. * gnu/packages/version-control.scm (myrepos)[source]: Add patch. * gnu/packages/patches/myrepos-CVE-2018-7032.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. --- gnu/local.mk | 1 + gnu/packages/patches/myrepos-CVE-2018-7032.patch | 69 ++++++++++++++++++++++++ gnu/packages/version-control.scm | 3 +- 3 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/myrepos-CVE-2018-7032.patch diff --git a/gnu/local.mk b/gnu/local.mk index cce950b5bc..7987f8ad91 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -939,6 +939,7 @@ dist_patch_DATA = \ %D%/packages/patches/mupen64plus-ui-console-notice.patch \ %D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch \ %D%/packages/patches/mutt-store-references.patch \ + %D%/packages/patches/myrepos-CVE-2018-7032.patch \ %D%/packages/patches/net-tools-bitrot.patch \ %D%/packages/patches/netcdf-date-time.patch \ %D%/packages/patches/netcdf-tst_h_par.patch \ diff --git a/gnu/packages/patches/myrepos-CVE-2018-7032.patch b/gnu/packages/patches/myrepos-CVE-2018-7032.patch new file mode 100644 index 0000000000..ce9493e5f9 --- /dev/null +++ b/gnu/packages/patches/myrepos-CVE-2018-7032.patch @@ -0,0 +1,69 @@ +http://source.myrepos.branchable.com/?p=source.git;a=patch;h=40a3df21c73f1bb1b6915cc6fa503f50814664c8 +This can be removed with the next release. It was modified slightly to apply + +From 40a3df21c73f1bb1b6915cc6fa503f50814664c8 Mon Sep 17 00:00:00 2001 +From: Paul Wise +Date: Sun, 11 Feb 2018 21:57:49 +0800 +Subject: [PATCH] Mitigate vulnerabilities caused by some git remotes being + able to execute code + +Set GIT_PROTOCOL_FROM_USER=0 with git versions newer than 2.12. + +Prevent remote websites from causing cloning of local repositories. + +Manually whitelist known-safe protocols (http, https, git, ssh) +when using git versions older than 2.12. + +Fixes: CVE-2018-7032 +Fixes: https://bugs.debian.org/840014 +Suggestions-by: Jakub Wilk +Reported-by: Jakub Wilk +--- + webcheckout | 22 +++++++++++++++++++++- + 1 file changed, 21 insertions(+), 1 deletion(-) + +diff --git a/webcheckout b/webcheckout +index e98da5c..de497ba 100755 +--- a/webcheckout ++++ b/webcheckout +@@ -71,6 +71,16 @@ use Getopt::Long; + use warnings; + use strict; + ++# Mitigate some git remote types being dangerous ++my $git_unsafe = 1; ++my $git_version = `git --version`; ++$git_version =~ s{^git version }{}; ++my ($major, $minor) = split(/\./, $git_version); ++if (int($major) >= 2 && int($minor) >= 12) { ++ $ENV{GIT_PROTOCOL_FROM_USER} = 0; ++ $git_unsafe = 0; ++} ++ + # What to download. + my $url; + +@@ -89,7 +99,17 @@ my $destdir; + + # how to perform checkouts + my %handlers=( +- git => sub { doit("git", "clone", shift, $destdir) }, +- svn => sub { doit("svn", "checkout", shift, $destdir) }, +- bzr => sub { doit("bzr", "branch", shift, $destdir) }, ++ git => sub { ++ my $git_url = shift; ++ # Reject unsafe URLs with older versions of git ++ # that do not already check the URL safety. ++ if ($git_unsafe && $git_url !~ m{^(?:(?:https?|git|ssh):[^:]|(?:[-_.A-Za-z0-9]+@)?[-_.A-Za-z0-9]+:(?!:|//))}) { ++ print STDERR "potentially unsafe git URL, may fail, touch local files or execute arbitrary code\n"; ++ return 1; ++ } ++ # Reject cloning local directories too, webcheckout is for remote repos ++ doit(qw(git -c protocol.file.allow=user clone --), $git_url, $destdir) ++ }, ++ svn => sub { doit(qw(svn checkout --), shift, $destdir) }, ++ bzr => sub { doit(qw(bzr branch --), shift, $destdir) }, + ); +-- +2.11.0 + diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 848660bdd7..b41529d4f8 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -1573,7 +1573,8 @@ modification time.") (commit version))) (file-name (string-append name "-" version "-checkout")) (sha256 - (base32 "10q7lpx152xnkk701fscn4dq99q9znnmv3bc2482khhjg7z8rps0")))) + (base32 "10q7lpx152xnkk701fscn4dq99q9znnmv3bc2482khhjg7z8rps0")) + (patches (search-patches "myrepos-CVE-2018-7032.patch")))) (build-system gnu-build-system) (inputs `(("perl" ,perl))) -- cgit v1.2.3 From fb8aff71cb24fe4d51b780d129d3a743cd6fdca1 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 13 May 2018 20:47:30 +0300 Subject: gnu: speedtest-cli: Update to 2.0.0. * gnu/packages/networking.scm (speedtest-cli): Update to 2.0.0. --- gnu/packages/networking.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 9f9f21baaf..eda2984d10 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1331,7 +1331,7 @@ networks.") (define-public speedtest-cli (package (name "speedtest-cli") - (version "1.0.7") + (version "2.0.0") (source (origin (method url-fetch) @@ -1340,7 +1340,7 @@ networks.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1fbq4kpx8sj50g74hwpixisfjjgxq6zyn40d3m28dxhn7mxbnlrq")))) + "16kcpba7nmszz2h0fq7qvv6src20syck2wlknaacg69kk88aybbk")))) (build-system python-build-system) (home-page "https://github.com/sivel/speedtest-cli") (synopsis "Internet bandwidth tester") -- cgit v1.2.3 From 9e7b87ddc51c640c529d445e350c3d6ef43e301d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 13 May 2018 16:07:12 +0200 Subject: build: 'test-env' does not 'guix download' non-existent files. Reported by uniq10. * build-aux/test-env.in: Check whether FILE exists before invoking 'guix download'. --- build-aux/test-env.in | 1 + 1 file changed, 1 insertion(+) diff --git a/build-aux/test-env.in b/build-aux/test-env.in index 52082c650f..aaadcf205b 100644 --- a/build-aux/test-env.in +++ b/build-aux/test-env.in @@ -132,6 +132,7 @@ then for file in "$bootstrap_directory"/guile-* do + [ -f "$file" ] && \ "@abs_top_builddir@/pre-inst-env" \ guix download "file://$file" > /dev/null done -- cgit v1.2.3 From 68fdb38f542d66d329778582c28bf7fad24324a9 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 13 May 2018 22:40:33 +0200 Subject: gnu: robocut: Remove unnecessary dependency on qttools. Reported by Efraim Flashner. * gnu/packages/printers.scm (robocut)[native-inputs]: Replace QTTOOLS with QTBASE, which is where 'qmake' lives. --- gnu/packages/printers.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/printers.scm b/gnu/packages/printers.scm index 2e58018282..f8890cb7f1 100644 --- a/gnu/packages/printers.scm +++ b/gnu/packages/printers.scm @@ -60,7 +60,7 @@ ("qtsvg" ,qtsvg))) (native-inputs `(("pkg-config" ,pkg-config) - ("qmake" ,qttools))) + ("qmake" ,qtbase))) (synopsis "Graphical program to drive plotting cutters") (description "Robocut is a simple graphical program that allows you to cut graphics -- cgit v1.2.3 From 44cea5784128353f0449899ae4ca7fdb5259c024 Mon Sep 17 00:00:00 2001 From: Tonton Date: Fri, 11 May 2018 22:29:32 +0200 Subject: gnu: Add ghc-quickcheck-2.9. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell-check.scm (ghc-quickcheck-2.9): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell-check.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm index 6b1d769313..7453f9fbf1 100644 --- a/gnu/packages/haskell-check.scm +++ b/gnu/packages/haskell-check.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2017 Danny Milosavljevic ;;; Copyright © 2017 rsiddharth ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Tonton ;;; ;;; This file is part of GNU Guix. ;;; @@ -451,6 +452,19 @@ hold in a large number of randomly generated cases. Specifications are expressed in Haskell, using combinators defined in the QuickCheck library.") (license license:bsd-3))) +(define-public ghc-quickcheck-2.9 + (package + (inherit ghc-quickcheck) + (name "ghc-quickcheck") + (version "2.9.2") + (source (origin + (method url-fetch) + (uri (string-append "https://hackage.haskell.org/package/QuickCheck-2.9.2/QuickCheck-" + version ".tar.gz")) + (sha256 + (base32 + "119np67qvx8hyp9vkg4gr2wv3lj3j6ay2vl4hxspkg43ymb1cp0m")))))) + (define-public ghc-quickcheck-latest (package (inherit ghc-quickcheck) (version "2.11.3") -- cgit v1.2.3 From e5d92c1ce197ec6da891f69565fe550f502f8e7c Mon Sep 17 00:00:00 2001 From: Tonton Date: Fri, 11 May 2018 22:34:04 +0200 Subject: gnu: Add ghc-array. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-array): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index 9b26ff56f2..c65df28218 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2017, 2018 Alex Vong ;;; Copyright © 2017 rsiddharth ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice +;;; Copyright © 2018 Tonton ;;; ;;; This file is part of GNU Guix. ;;; @@ -9466,4 +9467,27 @@ system dependencies.") address string against RFC 5322.") (license license:bsd-3))) +(define-public ghc-array + (package + (name "ghc-array") + (version "0.5.2.0") + (source + (origin + (method url-fetch) + (uri + (string-append "https://hackage.haskell.org/package/array-0.5.2.0/array-" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "12v83s2imxb3p2crnlzrpjh0nk6lpysw9bdk9yahs6f37csa5jaj")))) + (build-system haskell-build-system) + (synopsis "Haskell @code{Data.Array} module") + (description "In addition to providing the @code{Data.Array} module as +specified in the Haskell 2010 Language Report, this package defines the +classes @code{IArray} of immutable arrays and @code{MArray} of arrays mutable +within appropriate monads, as well as some instances of these classes.") + (home-page "https://hackage.haskell.org/package/array") + (license license:bsd-3))) + ;;; haskell.scm ends here -- cgit v1.2.3 From 7d4e377ff5dfb0b708255e30741f2d26407f1677 Mon Sep 17 00:00:00 2001 From: Tonton Date: Fri, 11 May 2018 22:34:05 +0200 Subject: gnu: Add ghc-containers. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/haskell.scm (ghc-containers): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/haskell.scm | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index c65df28218..39c0c0a4cd 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -9490,4 +9490,35 @@ within appropriate monads, as well as some instances of these classes.") (home-page "https://hackage.haskell.org/package/array") (license license:bsd-3))) +(define-public ghc-containers + (package + (name "ghc-containers") + (version "0.5.11.0") + (source + (origin + (method url-fetch) + (uri + (string-append "https://hackage.haskell.org/package/containers-0.5.11.0/containers-" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0j29w09kvcn1c0yi4clmrdbgs2gqmpxs2m7q80ib2ix1smm25kaq")))) + (build-system haskell-build-system) + (inputs `(("ghc-array" ,ghc-array) + ("ghc-deepseq" ,ghc-deepseq-generics) + ("ghc-hunit" ,ghc-hunit) + ("ghc-chasingbottoms" ,ghc-chasingbottoms) + ("ghc-test-framework" ,ghc-test-framework) + ("ghc-test-framework-hunit" ,ghc-test-framework-hunit) + ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2) + ("ghc-quickcheck" ,ghc-quickcheck) + ("ghc-ghc-prim" ,ghc-primitive))) + (synopsis "Haskell containers: Assorted concrete container types") + (description "This Haskell module provides efficient general-purpose +implementations of various immutable container types including sets, maps, +sequences, trees, and graphs.") + (home-page "https://hackage.haskell.org/package/containers") + (license license:bsd-3))) + ;;; haskell.scm ends here -- cgit v1.2.3 From 563ab27bd4caead5676bbd515c54b25100c98960 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Mon, 14 May 2018 10:01:09 +0200 Subject: gnu: Add emacs-dts-mode. * gnu/packages/emacs.scm (emacs-dts-mode): New variable. --- gnu/packages/emacs.scm | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 3c8475149d..4d7cdfaea5 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -18,7 +18,7 @@ ;;; Copyright © 2016, 2017 Alex Vong ;;; Copyright © 2016, 2017, 2018 Arun Isaac ;;; Copyright © 2017 Christopher Baines -;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2017, 2018 Mathieu Othacehe ;;; Copyright © 2017, 2018 Clément Lassieur ;;; Copyright © 2017 Vasile Dumitrascu ;;; Copyright © 2017, 2018 Kyle Meyer @@ -10417,3 +10417,27 @@ with absolutely no stored indexes (tags) or persistent background processes. Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep @command{rg} installed.") (license license:gpl3+))) + +(define-public emacs-dts-mode + (let ((commit "9ee0854446dcc6c53d2b8d2941051768dba50344") + (revision "1")) + (package + (name "emacs-dts-mode") + (version (string-append "0.1.0-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bgamari/dts-mode.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1k8lljdbc90nd29xrhdrsscxavzdq532wq2mg7ljc94krj7538b1")))) + (build-system emacs-build-system) + (home-page "https://github.com/bgamari/dts-mode.git") + (synopsis "Emacs minor mode for editing device tree files") + (description + "This package provides an Emacs minor mode for highlighting +device tree files.") + (license license:gpl3+)))) -- cgit v1.2.3 From 2b79c6833d5b6728edf859f7e885ed397b77bedc Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Mon, 14 May 2018 12:04:30 +0300 Subject: gnu: mupdf: Update to 1.13.0. * gnu/packages/pdf.scm (mupdf): Update to 1.13.0. [source]: Remove patches. * gnu/packages/patches/mupdf-build-with-latest-openjpeg.patch, gnu/packages/patches/mupdf-CVE-2017-17858.patch, gnu/packages/patches/mupdf-CVE-2018-6544.patch, gnu/packages/patches/mupdf-CVE-2018-1000051.patch: Remove files. * gnu/local.mk (dist_patch_DATA): Remove them. --- gnu/local.mk | 4 - gnu/packages/patches/mupdf-CVE-2017-17858.patch | 111 --------------------- gnu/packages/patches/mupdf-CVE-2018-1000051.patch | 88 ---------------- gnu/packages/patches/mupdf-CVE-2018-6544.patch | 109 -------------------- .../patches/mupdf-build-with-latest-openjpeg.patch | 27 ----- gnu/packages/pdf.scm | 12 +-- 6 files changed, 4 insertions(+), 347 deletions(-) delete mode 100644 gnu/packages/patches/mupdf-CVE-2017-17858.patch delete mode 100644 gnu/packages/patches/mupdf-CVE-2018-1000051.patch delete mode 100644 gnu/packages/patches/mupdf-CVE-2018-6544.patch delete mode 100644 gnu/packages/patches/mupdf-build-with-latest-openjpeg.patch diff --git a/gnu/local.mk b/gnu/local.mk index 7987f8ad91..d55276fb33 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -932,10 +932,6 @@ dist_patch_DATA = \ %D%/packages/patches/mozjs38-tracelogger.patch \ %D%/packages/patches/mozjs38-version-detection.patch \ %D%/packages/patches/mumps-build-parallelism.patch \ - %D%/packages/patches/mupdf-build-with-latest-openjpeg.patch \ - %D%/packages/patches/mupdf-CVE-2017-17858.patch \ - %D%/packages/patches/mupdf-CVE-2018-6544.patch \ - %D%/packages/patches/mupdf-CVE-2018-1000051.patch \ %D%/packages/patches/mupen64plus-ui-console-notice.patch \ %D%/packages/patches/mupen64plus-video-z64-glew-correct-path.patch \ %D%/packages/patches/mutt-store-references.patch \ diff --git a/gnu/packages/patches/mupdf-CVE-2017-17858.patch b/gnu/packages/patches/mupdf-CVE-2017-17858.patch deleted file mode 100644 index 66df127509..0000000000 --- a/gnu/packages/patches/mupdf-CVE-2017-17858.patch +++ /dev/null @@ -1,111 +0,0 @@ -Fix CVE-2017-17858: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-17858 -https://bugs.ghostscript.com/show_bug.cgi?id=698819 -https://github.com/mzet-/Security-Advisories/blob/master/mzet-adv-2017-01.md - -Patch copied from upstream source repository: - -https://git.ghostscript.com/?p=mupdf.git;a=commit;h=55c3f68d638ac1263a386e0aaa004bb6e8bde731 - -From 55c3f68d638ac1263a386e0aaa004bb6e8bde731 Mon Sep 17 00:00:00 2001 -From: Sebastian Rasmussen -Date: Mon, 11 Dec 2017 14:09:15 +0100 -Subject: [PATCH] Bugs 698804/698810/698811: Keep PDF object numbers below - limit. - -This ensures that: - * xref tables with objects pointers do not grow out of bounds. - * other readers, e.g. Adobe Acrobat can parse PDFs written by mupdf. ---- - include/mupdf/pdf/object.h | 3 +++ - source/pdf/pdf-repair.c | 5 +---- - source/pdf/pdf-xref.c | 21 ++++++++++++--------- - 3 files changed, 16 insertions(+), 13 deletions(-) - -diff --git a/include/mupdf/pdf/object.h b/include/mupdf/pdf/object.h -index 21ed8595..4177112b 100644 ---- a/include/mupdf/pdf/object.h -+++ b/include/mupdf/pdf/object.h -@@ -3,6 +3,9 @@ - - typedef struct pdf_document_s pdf_document; - -+/* Defined in PDF 1.7 according to Acrobat limit. */ -+#define PDF_MAX_OBJECT_NUMBER 8388607 -+ - /* - * Dynamic objects. - * The same type of objects as found in PDF and PostScript. -diff --git a/source/pdf/pdf-repair.c b/source/pdf/pdf-repair.c -index ca149bd3..0c29758e 100644 ---- a/source/pdf/pdf-repair.c -+++ b/source/pdf/pdf-repair.c -@@ -6,9 +6,6 @@ - - /* Scan file for objects and reconstruct xref table */ - --/* Define in PDF 1.7 to be 8388607, but mupdf is more lenient. */ --#define MAX_OBJECT_NUMBER (10 << 20) -- - struct entry - { - int num; -@@ -436,7 +433,7 @@ pdf_repair_xref(fz_context *ctx, pdf_document *doc) - break; - } - -- if (num <= 0 || num > MAX_OBJECT_NUMBER) -+ if (num <= 0 || num > PDF_MAX_OBJECT_NUMBER) - { - fz_warn(ctx, "ignoring object with invalid object number (%d %d R)", num, gen); - goto have_next_token; -diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c -index 00586dbd..6284e70b 100644 ---- a/source/pdf/pdf-xref.c -+++ b/source/pdf/pdf-xref.c -@@ -868,11 +868,12 @@ pdf_read_old_xref(fz_context *ctx, pdf_document *doc, pdf_lexbuf *buf) - fz_seek(ctx, file, -(2 + (int)strlen(s)), SEEK_CUR); - } - -- if (ofs < 0) -- fz_throw(ctx, FZ_ERROR_GENERIC, "out of range object num in xref: %d", (int)ofs); -- if (ofs > INT64_MAX - len) -- fz_throw(ctx, FZ_ERROR_GENERIC, "xref section object numbers too big"); -- -+ if (ofs < 0 || ofs > PDF_MAX_OBJECT_NUMBER -+ || len < 0 || len > PDF_MAX_OBJECT_NUMBER -+ || ofs + len - 1 > PDF_MAX_OBJECT_NUMBER) -+ { -+ fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection object numbers are out of range"); -+ } - /* broken pdfs where size in trailer undershoots entries in xref sections */ - if (ofs + len > xref_len) - { -@@ -933,10 +934,8 @@ pdf_read_new_xref_section(fz_context *ctx, pdf_document *doc, fz_stream *stm, in - pdf_xref_entry *table; - int i, n; - -- if (i0 < 0 || i1 < 0 || i0 > INT_MAX - i1) -- fz_throw(ctx, FZ_ERROR_GENERIC, "negative xref stream entry index"); -- //if (i0 + i1 > pdf_xref_len(ctx, doc)) -- // fz_throw(ctx, FZ_ERROR_GENERIC, "xref stream has too many entries"); -+ if (i0 < 0 || i0 > PDF_MAX_OBJECT_NUMBER || i1 < 0 || i1 > PDF_MAX_OBJECT_NUMBER || i0 + i1 - 1 > PDF_MAX_OBJECT_NUMBER) -+ fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection object numbers are out of range"); - - table = pdf_xref_find_subsection(ctx, doc, i0, i1); - for (i = i0; i < i0 + i1; i++) -@@ -2086,6 +2085,10 @@ pdf_create_object(fz_context *ctx, pdf_document *doc) - /* TODO: reuse free object slots by properly linking free object chains in the ofs field */ - pdf_xref_entry *entry; - int num = pdf_xref_len(ctx, doc); -+ -+ if (num > PDF_MAX_OBJECT_NUMBER) -+ fz_throw(ctx, FZ_ERROR_GENERIC, "too many objects stored in pdf"); -+ - entry = pdf_get_incremental_xref_entry(ctx, doc, num); - entry->type = 'f'; - entry->ofs = -1; --- -2.16.1 - diff --git a/gnu/packages/patches/mupdf-CVE-2018-1000051.patch b/gnu/packages/patches/mupdf-CVE-2018-1000051.patch deleted file mode 100644 index bb78c46f80..0000000000 --- a/gnu/packages/patches/mupdf-CVE-2018-1000051.patch +++ /dev/null @@ -1,88 +0,0 @@ -Fix CVE-2018-1000051: - -https://bugs.ghostscript.com/show_bug.cgi?id=698873 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000051 - -Patch copied from upstream source repository: - -https://git.ghostscript.com/?p=mupdf.git;a=commit;h=321ba1de287016b0036bf4a56ce774ad11763384 - -From 321ba1de287016b0036bf4a56ce774ad11763384 Mon Sep 17 00:00:00 2001 -From: Sebastian Rasmussen -Date: Tue, 19 Dec 2017 23:47:47 +0100 -Subject: [PATCH] Bug 698825: Do not drop borrowed colorspaces. - -Previously the borrowed colorspace was dropped when updating annotation -appearances, leading to use after free warnings from valgrind/ASAN. ---- - source/pdf/pdf-appearance.c | 8 ++------ - 1 file changed, 2 insertions(+), 6 deletions(-) - -diff --git a/source/pdf/pdf-appearance.c b/source/pdf/pdf-appearance.c -index 70f684f4..d7a1dddd 100644 ---- a/source/pdf/pdf-appearance.c -+++ b/source/pdf/pdf-appearance.c -@@ -2170,7 +2170,6 @@ void pdf_update_free_text_annot_appearance(fz_context *ctx, pdf_document *doc, p - fz_device *dev = NULL; - font_info font_rec; - fz_text *text = NULL; -- fz_colorspace *cs = NULL; - fz_matrix page_ctm; - - pdf_page_transform(ctx, annot->page, NULL, &page_ctm); -@@ -2184,11 +2183,11 @@ void pdf_update_free_text_annot_appearance(fz_context *ctx, pdf_document *doc, p - fz_var(dlist); - fz_var(dev); - fz_var(text); -- fz_var(cs); - fz_try(ctx) - { - char *contents = pdf_to_str_buf(ctx, pdf_dict_get(ctx, obj, PDF_NAME_Contents)); - char *da = pdf_to_str_buf(ctx, pdf_dict_get(ctx, obj, PDF_NAME_DA)); -+ fz_colorspace *cs; - fz_point pos; - fz_rect rect; - -@@ -2223,7 +2222,6 @@ void pdf_update_free_text_annot_appearance(fz_context *ctx, pdf_document *doc, p - fz_drop_display_list(ctx, dlist); - font_info_fin(ctx, &font_rec); - fz_drop_text(ctx, text); -- fz_drop_colorspace(ctx, cs); - } - fz_catch(ctx) - { -@@ -2359,7 +2357,6 @@ void pdf_set_signature_appearance(fz_context *ctx, pdf_document *doc, pdf_annot - fz_device *dev = NULL; - font_info font_rec; - fz_text *text = NULL; -- fz_colorspace *cs = NULL; - fz_path *path = NULL; - fz_buffer *fzbuf = NULL; - fz_matrix page_ctm; -@@ -2375,7 +2372,6 @@ void pdf_set_signature_appearance(fz_context *ctx, pdf_document *doc, pdf_annot - fz_var(dlist); - fz_var(dev); - fz_var(text); -- fz_var(cs); - fz_var(fzbuf); - fz_try(ctx) - { -@@ -2384,6 +2380,7 @@ void pdf_set_signature_appearance(fz_context *ctx, pdf_document *doc, pdf_annot - fz_rect logo_bounds; - fz_matrix logo_tm; - fz_rect rect; -+ fz_colorspace *cs = fz_device_rgb(ctx); /* Borrowed reference */ - - pdf_to_rect(ctx, pdf_dict_get(ctx, annot->obj, PDF_NAME_Rect), &annot_rect); - rect = annot_rect; -@@ -2396,7 +2393,6 @@ void pdf_set_signature_appearance(fz_context *ctx, pdf_document *doc, pdf_annot - fz_bound_path(ctx, path, NULL, &fz_identity, &logo_bounds); - center_rect_within_rect(&logo_bounds, &rect, &logo_tm); - fz_concat(&logo_tm, &logo_tm, &page_ctm); -- cs = fz_device_rgb(ctx); /* Borrowed reference */ - fz_fill_path(ctx, dev, path, 0, &logo_tm, cs, logo_color, 1.0f, NULL); - - get_font_info(ctx, doc, dr, da, &font_rec); --- -2.16.3 - diff --git a/gnu/packages/patches/mupdf-CVE-2018-6544.patch b/gnu/packages/patches/mupdf-CVE-2018-6544.patch deleted file mode 100644 index b2c8f849f3..0000000000 --- a/gnu/packages/patches/mupdf-CVE-2018-6544.patch +++ /dev/null @@ -1,109 +0,0 @@ -Fix CVE-2018-6544: - -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6544 -https://bugs.ghostscript.com/show_bug.cgi?id=698830 -https://bugs.ghostscript.com/show_bug.cgi?id=698965 - -Patches copied from upstream source repository: - -https://git.ghostscript.com/?p=mupdf.git;h=26527eef77b3e51c2258c8e40845bfbc015e405d -https://git.ghostscript.com/?p=mupdf.git;h=b03def134988da8c800adac1a38a41a1f09a1d89 - -From b03def134988da8c800adac1a38a41a1f09a1d89 Mon Sep 17 00:00:00 2001 -From: Sebastian Rasmussen -Date: Thu, 1 Feb 2018 16:36:14 +0100 -Subject: [PATCH] Bug 698830: Avoid recursion when loading object streams - objects. - -If there were indirect references in the object stream dictionary and -one of those indirect references referred to an object inside the object -stream itself, mupdf would previously enter recursion only bounded by the -exception stack. After this commit the object stream is checked if it is -marked immediately after being loaded. If it is marked then we terminate -the recursion at this point, if it is not marked then mark it and -attempt to load the desired object within. We also take care to unmark -the stream object when done or upon exception. ---- - source/pdf/pdf-xref.c | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c -index 723b543c..ed09094c 100644 ---- a/source/pdf/pdf-xref.c -+++ b/source/pdf/pdf-xref.c -@@ -1576,6 +1576,19 @@ pdf_load_obj_stm(fz_context *ctx, pdf_document *doc, int num, pdf_lexbuf *buf, i - { - objstm = pdf_load_object(ctx, doc, num); - -+ if (pdf_obj_marked(ctx, objstm)) -+ fz_throw(ctx, FZ_ERROR_GENERIC, "recursive object stream lookup"); -+ } -+ fz_catch(ctx) -+ { -+ pdf_drop_obj(ctx, objstm); -+ fz_rethrow(ctx); -+ } -+ -+ fz_try(ctx) -+ { -+ pdf_mark_obj(ctx, objstm); -+ - count = pdf_to_int(ctx, pdf_dict_get(ctx, objstm, PDF_NAME_N)); - first = pdf_to_int(ctx, pdf_dict_get(ctx, objstm, PDF_NAME_First)); - -@@ -1655,6 +1668,7 @@ pdf_load_obj_stm(fz_context *ctx, pdf_document *doc, int num, pdf_lexbuf *buf, i - fz_drop_stream(ctx, stm); - fz_free(ctx, ofsbuf); - fz_free(ctx, numbuf); -+ pdf_unmark_obj(ctx, objstm); - pdf_drop_obj(ctx, objstm); - } - fz_catch(ctx) --- -2.16.3 - -From 26527eef77b3e51c2258c8e40845bfbc015e405d Mon Sep 17 00:00:00 2001 -From: Sebastian Rasmussen -Date: Mon, 29 Jan 2018 02:00:48 +0100 -Subject: [PATCH] Bug 698830: Don't drop unkept stream if running out of error - stack. - -Under normal conditions where fz_keep_stream() is called inside -fz_try() we may call fz_drop_stream() in fz_catch() upon exceptions. -The issue comes when fz_keep_stream() has not yet been called but is -dropped in fz_catch(). This happens in the PDF from the bug when -fz_try() runs out of exception stack, and next the code in fz_catch() -runs, dropping the caller's reference to the filter chain stream! - -The simplest way of fixing this it to always keep the filter chain -stream before fz_try() is called. That way fz_catch() may drop the -stream whether an exception has occurred or if the fz_try() ran out of -exception stack. ---- - source/pdf/pdf-stream.c | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/source/pdf/pdf-stream.c b/source/pdf/pdf-stream.c -index c89da5c4..c6ba7ad3 100644 ---- a/source/pdf/pdf-stream.c -+++ b/source/pdf/pdf-stream.c -@@ -303,14 +303,13 @@ pdf_open_raw_filter(fz_context *ctx, fz_stream *chain, pdf_document *doc, pdf_ob - *orig_gen = 0; - } - -- fz_var(chain); -+ chain = fz_keep_stream(ctx, chain); - - fz_try(ctx) - { - len = pdf_to_int(ctx, pdf_dict_get(ctx, stmobj, PDF_NAME_Length)); - -- /* don't close chain when we close this filter */ -- chain2 = fz_keep_stream(ctx, chain); -+ chain2 = chain; - chain = NULL; - chain = fz_open_null(ctx, chain2, len, offset); - --- -2.16.3 - diff --git a/gnu/packages/patches/mupdf-build-with-latest-openjpeg.patch b/gnu/packages/patches/mupdf-build-with-latest-openjpeg.patch deleted file mode 100644 index d5c9c60242..0000000000 --- a/gnu/packages/patches/mupdf-build-with-latest-openjpeg.patch +++ /dev/null @@ -1,27 +0,0 @@ -Make it possible to build MuPDF with OpenJPEG 2.3, which is the latest -release series and contains many important bug fixes. - -Patch adapted from Debian: - -https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=745246 - -And related to this upstream commit: - -http://git.ghostscript.com/?p=mupdf.git;a=commit;h=f88bfe2e62dbadb96d4f52d7aa025f0a516078da - -diff --git a/source/fitz/load-jpx.c b/source/fitz/load-jpx.c -index 65699ba..ea84778 100644 ---- a/source/fitz/load-jpx.c -+++ b/source/fitz/load-jpx.c -@@ -445,11 +445,6 @@ fz_load_jpx_info(fz_context *ctx, const unsigned char *data, size_t size, int *w - - #else /* HAVE_LURATECH */ - --#define OPJ_STATIC --#define OPJ_HAVE_INTTYPES_H --#if !defined(_MSC_VER) || _MSC_VER >= 1600 --#define OPJ_HAVE_STDINT_H --#endif - #define USE_JPIP - - #include diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 9e5af5f011..fd494739c3 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2015 Paul van der Walt ;;; Copyright © 2016 Roel Janssen ;;; Copyright © 2016 Nils Gillmann -;;; Copyright © 2016, 2017 Efraim Flashner +;;; Copyright © 2016, 2017, 2018 Efraim Flashner ;;; Copyright © 2016, 2017 Marius Bakke ;;; Copyright © 2016, 2017 Ludovic Courtès ;;; Copyright © 2016 Julien Lepiller @@ -597,21 +597,17 @@ extracting content or merging files.") (define-public mupdf (package (name "mupdf") - (version "1.12.0") + (version "1.13.0") (source (origin (method url-fetch) (uri (string-append "https://mupdf.com/downloads/archive/" name "-" version "-source.tar.xz")) - (patches (search-patches "mupdf-build-with-latest-openjpeg.patch" - "mupdf-CVE-2017-17858.patch" - "mupdf-CVE-2018-6544.patch" - "mupdf-CVE-2018-1000051.patch")) (sha256 (base32 - "0b9j0gqbc3jhmx87r6idcsh8lnb30840c3hyx6dk2gdjqqh3hysp")) + "0129k92bav692l6lyw10ryldx7h2f9khjpgnp3f3n4fdsph9hrkl")) (modules '((guix build utils))) - (snippet '(delete-file-recursively "thirdparty")))) + (snippet '(begin (delete-file-recursively "thirdparty") #t)))) (build-system gnu-build-system) (inputs `(("curl" ,curl) -- cgit v1.2.3 From 34e00c7ba4686a5e589b8a0be25319302a4c0697 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Thu, 10 May 2018 15:30:04 +0530 Subject: gnu: guile-dbi: Fix RPATH and dependencies. Prior to this change, libguile-dbi.so was unable to find libguile-dbd-sqlite3.so. * gnu/packages/guile.scm (guile-dbi-bootstrap): New variable. (guile-dbd-sqlite3)[propagated-inputs]: Remove guile-dbi. [native-inputs]: Add guile-dbi-bootstrap. (guile-dbi)[inputs]: Add guile-dbd-sqlite3. [arguments]: Set RPATH using #:make-flags. --- gnu/packages/guile.scm | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index 38076081b3..d5ca29584a 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2017 Nils Gillmann ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2018 Maxim Cournoyer +;;; Copyright © 2018 Arun Isaac ;;; ;;; This file is part of GNU Guix. ;;; @@ -1549,6 +1550,9 @@ provides access to that interface and its types from the Scheme level.") '(#:configure-flags (list (string-append "--with-guile-site-dir=" %output "/share/guile/site/2.2")) + #:make-flags + (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib:" + (assoc-ref %build-inputs "guile-dbd-sqlite3") "/lib")) #:phases (modify-phases %standard-phases (add-after 'install 'patch-extension-path @@ -1559,6 +1563,8 @@ provides access to that interface and its types from the Scheme level.") (ext (string-append out "/lib/libguile-dbi"))) (substitute* dbi.scm (("libguile-dbi") ext)) #t)))))) + (inputs + `(("guile-dbd-sqlite3" ,guile-dbd-sqlite3))) ; only shared library, no scheme files (propagated-inputs `(("guile" ,guile-2.2))) (synopsis "Guile database abstraction layer") @@ -1570,6 +1576,15 @@ programming interface is presented regardless of which database system is used. It currently supports MySQL, Postgres and SQLite3.") (license license:gpl2+))) +(define guile-dbi-bootstrap + (package + (inherit guile-dbi) + (name "guile-dbi-bootstrap") + (inputs '()) + (arguments + (substitute-keyword-arguments (package-arguments guile-dbi) + ((#:make-flags _) '(list)))))) + (define-public guile-dbd-sqlite3 (package (name "guile-dbd-sqlite3") @@ -1584,12 +1599,11 @@ It currently supports MySQL, Postgres and SQLite3.") "0rg71jchxd2y8x496s8zmfmikr5g8zxi8zv2ar3f7a23pph92iw2")))) (build-system gnu-build-system) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config) + ("guile-dbi-bootstrap" ,guile-dbi-bootstrap))) ; only required for headers (inputs `(("sqlite" ,sqlite) ("zlib" ,(@ (gnu packages compression) zlib)))) - (propagated-inputs - `(("guile-dbi" ,guile-dbi))) (synopsis "Guile DBI driver for SQLite") (home-page "https://github.com/jkalbhenn/guile-dbd-sqlite3") (description -- cgit v1.2.3 From 20b51b17d17b3a1b743ee8c3998af80c04e6cbd5 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 9 May 2018 13:54:36 +0530 Subject: gnu: Add pass-rotate. * gnu/packages/password-utils.scm (pass-rotate): New variable. --- gnu/packages/password-utils.scm | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 902b709dba..011cf594d1 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2018 Marius Bakke ;;; Copyright © 2018 Konrad Hinsen ;;; Copyright © 2018 Thomas Sigurdsen +;;; Copyright © 2018 Arun Isaac ;;; ;;; This file is part of GNU Guix. ;;; @@ -62,6 +63,7 @@ #:use-module (gnu packages ncurses) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages python-web) #:use-module (gnu packages suckless) #:use-module (gnu packages tls) #:use-module (gnu packages qt) @@ -659,3 +661,30 @@ Upstream development seems to have stopped. It is therefore recommended to use a different password manager.") (home-page "https://als.regnet.cz/fpm2/") (license license:gpl2+))) + +(define-public pass-rotate + (package + (name "pass-rotate") + (version "0.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/SirCmpwn/pass-rotate/archive/" + version ".tar.gz")) + (sha256 + (base32 + "1svm5nj8bczv2dg8lh2zqqhbsrljqsw9680r03qwgl9vlci90210")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system python-build-system) + (inputs + `(("python-beautifulsoup4" ,python-beautifulsoup4) + ("python-docopt" ,python-docopt) + ("python-html5lib" ,python-html5lib) + ("python-requests" ,python-requests))) + (home-page "https://github.com/SirCmpwn/pass-rotate") + (synopsis "Rotate password on online services") + (description "pass-rotate is a command line utility and python library for +rotating passwords on various web services. It makes it easier to rotate your +passwords, one at a time or in bulk, when security events or routine upkeep of +your online accounts makes it necessary.") + (license license:expat))) -- cgit v1.2.3 From f93c7a89797667db073b1ddbb0fbbea41f16bf33 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Mon, 14 May 2018 20:14:10 +0530 Subject: gnu: services: Fix wesnothd-configuration? symbol export. * gnu/services/games.scm: Export wesnothd-configuration?, not the non-existent wesnoth-configuration?. --- gnu/services/games.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/services/games.scm b/gnu/services/games.scm index b146696237..b9d78e078d 100644 --- a/gnu/services/games.scm +++ b/gnu/services/games.scm @@ -27,7 +27,7 @@ #:use-module (guix records) #:use-module (ice-9 match) #:export (wesnothd-configuration - wesnoth-configuration? + wesnothd-configuration? wesnothd-service-type)) ;;; -- cgit v1.2.3 From 320344055a04025d25376a688a4f1caca65be66e Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 8 May 2018 19:42:44 +0200 Subject: gnu: Add emacs-orgalist. * gnu/packages/emacs.scm (emacs-orgalist): New variable. --- gnu/packages/emacs.scm | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 4d7cdfaea5..71e9690064 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4723,6 +4723,29 @@ used for reverse direction.") distribution, primarily targeting Clojure users") (license license:gpl3+))) +(define-public emacs-orgalist + (package + (name "emacs-orgalist") + (version "1.7") + (source + (origin + (method url-fetch) + (uri (string-append "https://elpa.gnu.org/packages/" + "orgalist-" version ".el")) + (sha256 + (base32 + "13dl0l727vlny3y88gqpngcy90ly5r719s1pbmkva5gmcryb68xr")))) + (build-system emacs-build-system) + (home-page "http://elpa.gnu.org/packages/orgalist.html") + (synopsis "Manage Org-like lists in non-Org buffers") + (description "Write Org mode's plain lists in non-Org buffers. More +specifically, Orgalist supports the syntax of Org mode for numbered, +unnumbered, description items, checkboxes, and counter cookies. + +The library also implements radio lists, i.e., lists written in Org +syntax later translated into the host format, e.g., @LaTeX{} or HTML.") + (license license:gpl3+))) + (define-public emacs-writegood-mode (package (name "emacs-writegood-mode") -- cgit v1.2.3 From 5ac7bf56d0b20d505b747425c5d17f2cc33d9302 Mon Sep 17 00:00:00 2001 From: Björn Höfling Date: Sun, 13 May 2018 01:40:00 +0200 Subject: doc: Update documentation of guix lint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc/guix.texi (Invoking guix lint): Add cpe-version to example. (Invoking guix lint): Add example for lint-hidden-cve. Co-authored-by: Ludovic Courtès --- doc/guix.texi | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 637c9c3f4d..a771ab7ae1 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6835,15 +6835,33 @@ where @code{CVE-YYYY-ABCD} is the CVE identifier---e.g., Package developers can specify in package recipes the @uref{https://nvd.nist.gov/cpe.cfm,Common Platform Enumeration (CPE)} -name and version of the package when they differ from the name that Guix -uses, as in this example: +name and version of the package when they differ from the name or version +that Guix uses, as in this example: @example (package (name "grub") ;; @dots{} ;; CPE calls this package "grub2". - (properties '((cpe-name . "grub2")))) + (properties '((cpe-name . "grub2") + (cpe-version . "2.3"))) +@end example + +@c See . +Some entries in the CVE database do not specify which version of a +package they apply to, and would thus ``stick around'' forever. Package +developers who found CVE alerts and verified they can be ignored can +declare them as in this example: + +@example +(package + (name "t1lib") + ;; @dots{} + ;; These CVEs no longer apply and can be safely ignored. + (properties `((lint-hidden-cve . ("CVE-2011-0433" + "CVE-2011-1553" + "CVE-2011-1554" + "CVE-2011-5244"))))) @end example @item formatting -- cgit v1.2.3 From 5834e4b70aef727d591c271ce3141ed23753377e Mon Sep 17 00:00:00 2001 From: Björn Höfling Date: Sun, 13 May 2018 01:40:30 +0200 Subject: gnu: opencv: Ignore CVEs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/image-processing.scm (opencv)[properties]: Add a lint-hidden-cve property and add three CVEs to be ignored. Signed-off-by: Ludovic Courtès --- gnu/packages/image-processing.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gnu/packages/image-processing.scm b/gnu/packages/image-processing.scm index ef303e1349..c69629e4a9 100644 --- a/gnu/packages/image-processing.scm +++ b/gnu/packages/image-processing.scm @@ -372,6 +372,11 @@ integrates with various databases on GUI toolkits such as Qt and Tk.") ("protobuf" ,protobuf) ("vtk" ,vtk) ("python" ,python))) + ;; These three CVEs are not a problem of OpenCV, see: + ;; https://github.com/opencv/opencv/issues/10998 + (properties '((lint-hidden-cve . ("CVE-2018-7712" + "CVE-2018-7713" + "CVE-2018-7714")))) (synopsis "Computer vision library") (description "OpenCV is a library aimed at real-time computer vision, including several hundred computer -- cgit v1.2.3 From 91e588554919f23b3f2b7307e246303499180bcd Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 14 May 2018 22:59:14 +0200 Subject: pack: Link top-level entries of wrapped packages. Previously things like: guix pack -R guile guile-json would lead to a profile without Guile-JSON, and to an 'etc/profile' that does not define 'GUILE_LOAD_PATH'. * guix/scripts/pack.scm (wrapped-package)[build]: Link top-level entries of PACKAGE into OUTPUT. --- guix/scripts/pack.scm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 6d648d1ac3..1e84459e78 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -378,9 +378,13 @@ please email '~a'~%") (local-file (search-auxiliary-file "run-in-namespace.c"))) (define build - (with-imported-modules '((guix build utils)) + (with-imported-modules (source-module-closure + '((guix build utils) + (guix build union))) #~(begin (use-modules (guix build utils) + ((guix build union) #:select (relative-file-name)) + (ice-9 ftw) (ice-9 match)) (define (strip-store-prefix file) @@ -411,6 +415,17 @@ please email '~a'~%") (setvbuf (current-output-port) (cond-expand (guile-2.2 'line) (else _IOLBF))) + + ;; Link the top-level files of PACKAGE so that search paths are + ;; properly defined in PROFILE/etc/profile. + (mkdir #$output) + (for-each (lambda (file) + (unless (member file '("." ".." "bin" "sbin" "libexec")) + (let ((file* (string-append #$package "/" file))) + (symlink (relative-file-name #$output file*) + (string-append #$output "/" file))))) + (scandir #$package)) + (for-each build-wrapper (append (find-files #$(file-append package "/bin")) (find-files #$(file-append package "/sbin")) -- cgit v1.2.3 From 30d722c392960373bb45c3248d318ef6e248fb67 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 15 May 2018 10:34:45 +0200 Subject: gexp: Disable deprecation warnings for 'imported-modules'. Fixes . Reported by Martin Castillo . * guix/gexp.scm (gexp->derivation): Pass #:deprecation-warnings to 'imported-modules'. (imported-files): Add #:deprecation-warnings and pass #:env-vars to 'gexp->derivation'. (imported-modules): Add #:deprecation-warnings and pass it to 'imported-files'. --- guix/gexp.scm | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/guix/gexp.scm b/guix/gexp.scm index d26fad7e0b..dd5eb81bd3 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -664,7 +664,9 @@ The other arguments are as for 'derivation'." (imported-modules %modules #:system system #:module-path module-path - #:guile guile-for-build) + #:guile guile-for-build + #:deprecation-warnings + deprecation-warnings) (return #f))) (compiled (if (pair? %modules) (compiled-modules %modules @@ -974,7 +976,15 @@ environment." (define* (imported-files files #:key (name "file-import") (system (%current-system)) - (guile (%guile-for-build))) + (guile (%guile-for-build)) + + ;; XXX: The only reason we have + ;; #:deprecation-warnings is because (guix build + ;; utils), which we use here, relies on _IO*, which + ;; is deprecated in 2.2. On the next full-rebuild + ;; cycle, we should disable such warnings + ;; unconditionally. + (deprecation-warnings #f)) "Return a derivation that imports FILES into STORE. FILES must be a list of (FINAL-PATH . FILE) pairs. Each FILE is mapped to FINAL-PATH in the resulting store path. FILE can be either a file name, or a file-like object, @@ -1010,13 +1020,25 @@ as returned by 'local-file' for example." (gexp->derivation name build #:system system #:guile-for-build guile - #:local-build? #t))) + #:local-build? #t + + ;; TODO: On the next rebuild cycle, set to "no" + ;; unconditionally. + #:env-vars + (case deprecation-warnings + ((#f) + '(("GUILE_WARN_DEPRECATED" . "no"))) + ((detailed) + '(("GUILE_WARN_DEPRECATED" . "detailed"))) + (else + '()))))) (define* (imported-modules modules #:key (name "module-import") (system (%current-system)) (guile (%guile-for-build)) - (module-path %load-path)) + (module-path %load-path) + (deprecation-warnings #f)) "Return a derivation that contains the source files of MODULES, a list of module names such as `(ice-9 q)'. All of MODULES must be either names of modules to be found in the MODULE-PATH search path, or a module name followed @@ -1041,7 +1063,8 @@ last one is created from the given object." (cons f (search-path* module-path f)))))) modules))) (imported-files files #:name name #:system system - #:guile guile))) + #:guile guile + #:deprecation-warnings deprecation-warnings))) (define* (compiled-modules modules #:key (name "module-import-compiled") @@ -1056,7 +1079,9 @@ they can refer to each other." #:system system #:guile guile #:module-path - module-path))) + module-path + #:deprecation-warnings + deprecation-warnings))) (define build (gexp (begin -- cgit v1.2.3 From f858e58f192a888273610e87baf34e68b7285e66 Mon Sep 17 00:00:00 2001 From: Rouby Pierre-Antoine Date: Tue, 15 May 2018 11:22:04 +0200 Subject: gnu: Add guile-simple-zmq. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/package/guile.scm (guile-simple-zmq): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/guile.scm | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm index d5ca29584a..9e24e90c23 100644 --- a/gnu/packages/guile.scm +++ b/gnu/packages/guile.scm @@ -18,6 +18,7 @@ ;;; Copyright © 2017 Tobias Geerinckx-Rice ;;; Copyright © 2018 Maxim Cournoyer ;;; Copyright © 2018 Arun Isaac +;;; Copyright © 2018 Pierre-Antoine Rouby ;;; ;;; This file is part of GNU Guix. ;;; @@ -67,6 +68,7 @@ #:use-module (gnu packages version-control) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xorg) + #:use-module (gnu packages networking) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) @@ -2116,4 +2118,93 @@ It has a nice, simple s-expression based syntax.") "Guile-colorized provides you with a colorized REPL for GNU Guile.") (license license:gpl3+))) +(define-public guile-simple-zmq + (let ((commit "d76657aeb1cd10ef8136edc06bb90999914c7c3c") + (revision "0")) + (package + (name "guile-simple-zmq") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jerry40/guile-simple-zmq") + (commit commit))) + (sha256 + (base32 + "1w73dy5gpyv33jn34dqlkqpwh9w4y8wm6hgvbpb3wbp6xsa2mk4z")) + (file-name (git-file-name name version)))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils) + (srfi srfi-26) + (ice-9 match) + (ice-9 popen) + (ice-9 rdelim)) + + (let* ((out (assoc-ref %outputs "out")) + (guile (assoc-ref %build-inputs "guile")) + (effective (read-line + (open-pipe* OPEN_READ + (string-append guile "/bin/guile") + "-c" "(display (effective-version))"))) + (module-dir (string-append out "/share/guile/site/" + effective)) + (go-dir (string-append out "/lib/guile/" + effective "/site-ccache/")) + (source (string-append (assoc-ref %build-inputs "source") + "/src")) + (scm-file "simple-zmq.scm") + (guild (string-append (assoc-ref %build-inputs "guile") + "/bin/guild")) + (zmq (assoc-ref %build-inputs "zeromq")) + (deps (list zmq)) + (path (string-join + (map (cut string-append <> + "/lib/") + deps) + ":"))) + ;; Make installation directories. + (mkdir-p module-dir) + (mkdir-p go-dir) + + ;; Compile .scm files and install. + (chdir source) + (setenv "GUILE_AUTO_COMPILE" "0") + (for-each (lambda (file) + (let* ((dest-file (string-append module-dir "/" + file)) + (go-file (match (string-split file #\.) + ((base _) + (string-append go-dir "/" + base ".go"))))) + ;; Install source module. + (copy-file file dest-file) + (substitute* dest-file + (("\\(dynamic-link \"libzmq\"\\)") + (format #f "(dynamic-link \"~a/lib/libzmq.so\")" + (assoc-ref %build-inputs "zeromq")))) + + ;; Install and compile module. + (unless (zero? (system* guild "compile" + "-L" source + "-o" go-file + dest-file)) + (error (format #f "Failed to compile ~s to ~s!" + file go-file))))) + (list scm-file)) + #t)))) + (propagated-inputs + `(("guile" ,guile-2.2) + ("zeromq" ,zeromq))) + (home-page "https://github.com/jerry40/guile-simple-zmq") + (synopsis "Guile wrapper over ZeroMQ library") + (description + "This package provides a Guile programming interface to the ZeroMQ +messaging library.") + (license license:gpl3+)))) + ;;; guile.scm ends here -- cgit v1.2.3 From 183db725a4e7ef6a0ae5170bfa0967bb2eafded7 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 15 May 2018 12:55:27 +0200 Subject: gnu: Add r-bsgenome-dmelanogaster-ucsc-dm6. * gnu/packages/bioconductor.scm (r-bsgenome-dmelanogaster-ucsc-dm6): New variable. --- gnu/packages/bioconductor.scm | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index 3e6df50653..788e1e7def 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -29,6 +29,38 @@ #:use-module (gnu packages statistics) #:use-module (gnu packages bioinformatics)) +(define-public r-bsgenome-dmelanogaster-ucsc-dm6 + (package + (name "r-bsgenome-dmelanogaster-ucsc-dm6") + (version "1.4.1") + (source (origin + (method url-fetch) + ;; We cannot use bioconductor-uri here because this tarball is + ;; located under "data/annotation/" instead of "bioc/". + (uri (string-append "https://www.bioconductor.org/packages/" + "release/data/annotation/src/contrib/" + "BSgenome.Dmelanogaster.UCSC.dm6_" + version ".tar.gz")) + (sha256 + (base32 + "1bhj0rdgf7lspw4xby9y9mf7v7jxxz8001bc8vw8kf04rjsx6060")))) + (properties + `((upstream-name . "BSgenome.Dmelanogaster.UCSC.dm6"))) + (build-system r-build-system) + ;; As this package provides little more than a very large data file it + ;; doesn't make sense to build substitutes. + (arguments `(#:substitutable? #f)) + (propagated-inputs + `(("r-bsgenome" ,r-bsgenome))) + (home-page + "https://www.bioconductor.org/packages/BSgenome.Dmelanogaster.UCSC.dm6/") + (synopsis "Full genome sequences for Fly") + (description + "This package provides full genome sequences for Drosophila +melanogaster (Fly) as provided by UCSC (dm6) and stored in Biostrings +objects.") + (license license:artistic2.0))) + (define-public r-hpar (package (name "r-hpar") -- cgit v1.2.3 From cbd2e3d52dcf0e2f20de7be067a54361042ef01d Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Tue, 15 May 2018 14:33:31 +0530 Subject: gnu: wesnoth: Update to 1.14.1. * gnu/packages/games.scm (wesnoth): Update to 1.14.1. [source]: Remove wesnoth-fix-std-bad-cast.patch. * gnu/packages/patches/wesnoth-fix-std-bad-cast.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Unregister it. --- gnu/local.mk | 1 - gnu/packages/games.scm | 5 +- .../patches/wesnoth-fix-std-bad-cast.patch | 67 ---------------------- 3 files changed, 2 insertions(+), 71 deletions(-) delete mode 100644 gnu/packages/patches/wesnoth-fix-std-bad-cast.patch diff --git a/gnu/local.mk b/gnu/local.mk index d55276fb33..0205b8c3e0 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1162,7 +1162,6 @@ dist_patch_DATA = \ %D%/packages/patches/wavpack-CVE-2018-7253.patch \ %D%/packages/patches/wavpack-CVE-2018-7254.patch \ %D%/packages/patches/weechat-python.patch \ - %D%/packages/patches/wesnoth-fix-std-bad-cast.patch \ %D%/packages/patches/wicd-bitrate-none-fix.patch \ %D%/packages/patches/wicd-get-selected-profile-fix.patch \ %D%/packages/patches/wicd-urwid-1.3.patch \ diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index b2d106e907..bc4abd7b71 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1809,7 +1809,7 @@ falling, themeable graphics and sounds, and replays.") (define-public wesnoth (package (name "wesnoth") - (version "1.14.0") + (version "1.14.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/wesnoth/wesnoth-" @@ -1818,8 +1818,7 @@ falling, themeable graphics and sounds, and replays.") name "-" version ".tar.bz2")) (sha256 (base32 - "09niq53y17faizhmd98anx3dha7hvacvj9a0a64lg8wn915cm0bw")) - (patches (search-patches "wesnoth-fix-std-bad-cast.patch")))) + "1mzrnbv71b4s41c5x8clhb53l8lidiwzny1hl828228pvys5bxkb")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; no check target diff --git a/gnu/packages/patches/wesnoth-fix-std-bad-cast.patch b/gnu/packages/patches/wesnoth-fix-std-bad-cast.patch deleted file mode 100644 index 18328ed018..0000000000 --- a/gnu/packages/patches/wesnoth-fix-std-bad-cast.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 18e5ea50a7136cb3686c5a7c51c111ccce73dc54 Mon Sep 17 00:00:00 2001 -From: Iris Morelle -Date: Sun, 6 May 2018 16:10:42 -0300 -Subject: [PATCH] i18n: Blind fix attempt for std::bad_cast being thrown on - Windows - -Several reports on Steam and our forums point at std::bad_cast being -thrown when accessing Preferences and the Multiplayer menu amongst -others. It's possible that the locale configuration on those systems is -not quite right, and compare() and icompare() are able to throw -std::bad_cast when this happens as they both use std::use_facet(). - -Note that much like the macOS/iOS version of icompare(), this stopgap -patch doesn't attempt to provide any form of case-insensitive fallback -and just uses a case-sensitive comparison instead. ---- - src/gettext_boost.cpp | 29 +++++++++++++++++++++++++++-- - 1 file changed, 27 insertions(+), 2 deletions(-) - -diff --git a/src/gettext_boost.cpp b/src/gettext_boost.cpp -index 3cc7690d5ef..fb04ffeea90 100644 ---- a/src/gettext_boost.cpp -+++ b/src/gettext_boost.cpp -@@ -423,7 +423,19 @@ void set_language(const std::string& language, const std::vector* / - int compare(const std::string& s1, const std::string& s2) - { - std::lock_guard lock(get_mutex()); -- return std::use_facet>(get_manager().get_locale()).compare(s1.c_str(), s1.c_str() + s1.size(), s2.c_str(), s2.c_str() + s2.size()); -+ -+ try { -+ return std::use_facet>(get_manager().get_locale()).compare(s1.c_str(), s1.c_str() + s1.size(), s2.c_str(), s2.c_str() + s2.size()); -+ } catch(const std::bad_cast&) { -+ static bool bad_cast_once = false; -+ -+ if(!bad_cast_once) { -+ ERR_G << "locale set-up for compare() is broken, falling back to std::string::compare()\n"; -+ bad_cast_once = true; -+ } -+ -+ return s1.compare(s2); -+ } - } - - int icompare(const std::string& s1, const std::string& s2) -@@ -433,8 +445,21 @@ int icompare(const std::string& s1, const std::string& s2) - return compare(s1, s2); - #else - std::lock_guard lock(get_mutex()); -- return std::use_facet>(get_manager().get_locale()).compare( -+ -+ try { -+ return std::use_facet>(get_manager().get_locale()).compare( - bl::collator_base::secondary, s1, s2); -+ } catch(const std::bad_cast&) { -+ static bool bad_cast_once = false; -+ -+ if(!bad_cast_once) { -+ ERR_G << "locale set-up for icompare() is broken, falling back to std::string::compare()\n"; -+ bad_cast_once = true; -+ } -+ -+ // FIXME: not even lazily case-insensitive -+ return s1.compare(s2); -+ } - #endif - } - -- cgit v1.2.3 From 20f5c86c3e3226b04eaf2f7d29a1a0200f323033 Mon Sep 17 00:00:00 2001 From: Danny Milosavljevic Date: Tue, 15 May 2018 12:52:28 +0200 Subject: gnu: inkscape: Disable "icon-theme.cache" generation. * gnu/packages/inkscape.scm (inkscape)[arguments]<#:make-flags>: Delete. <#:phases>[patch-icon-cache-generator]: Add phase. --- gnu/packages/inkscape.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm index ffd5f60b38..de9940df1c 100644 --- a/gnu/packages/inkscape.scm +++ b/gnu/packages/inkscape.scm @@ -80,8 +80,13 @@ ;; FIXME: tests require gmock (arguments `(#:tests? #f - #:make-flags - '("gtk_update_icon_cache=true"))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-icon-cache-generator + (lambda _ + (substitute* "share/icons/application/CMakeLists.txt" + (("gtk-update-icon-cache") "true")) + #t))))) (home-page "https://inkscape.org/") (synopsis "Vector graphics editor") (description "Inkscape is a vector graphics editor. What sets Inkscape -- cgit v1.2.3 From 5209f4db1d7236df60ac9e507bfe8a25ad5655f4 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 15 May 2018 14:07:25 +0200 Subject: gnu: filezilla: Update to 0.12.2. * gnu/packages/ftp.scm (libfilezilla): Update to 0.12.2. --- gnu/packages/ftp.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm index 74c1aea58e..7a52af4033 100644 --- a/gnu/packages/ftp.scm +++ b/gnu/packages/ftp.scm @@ -173,7 +173,7 @@ as required.") (define-public libfilezilla (package (name "libfilezilla") - (version "0.12.1") + (version "0.12.2") (source (origin (method url-fetch) @@ -181,7 +181,7 @@ as required.") name "/" name "-" version ".tar.bz2")) (sha256 (base32 - "1gbqm42dd0m3fvqz3bk53889479dvn8679zp6ba8a9q2br2wkvv0")))) + "1v461hwdk74whp89s490dj1z18gfqf9bz9140m5f11rsvrpid33p")))) (build-system gnu-build-system) (native-inputs `(("cppunit" ,cppunit) -- cgit v1.2.3 From 4eeed444f116e371cc7f4cc6ebd8be044c074e51 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 16 May 2018 04:38:09 +0200 Subject: gnu: python-statsmodels: Fix build. * gnu/packages/patches/python-statsmodels-fix-tests.patch: Remove patch. * gnu/local.mk (dist_patch_DATA): Remove it. * gnu/packages/statistics.scm (python-statsmodels)[source]: Remove patches. [arguments]: Disable tests; adjust build phases; add build phase "patch-for-scipy" to fix runtime error. --- gnu/local.mk | 1 - .../patches/python-statsmodels-fix-tests.patch | 28 -------------------- gnu/packages/statistics.scm | 30 ++++++++++++---------- 3 files changed, 17 insertions(+), 42 deletions(-) delete mode 100644 gnu/packages/patches/python-statsmodels-fix-tests.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0205b8c3e0..fbdb309896 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1044,7 +1044,6 @@ dist_patch_DATA = \ %D%/packages/patches/python-nose-timer-drop-ordereddict.patch \ %D%/packages/patches/python-pillow-fix-failing-tests.patch \ %D%/packages/patches/python2-rdflib-drop-sparqlwrapper.patch \ - %D%/packages/patches/python-statsmodels-fix-tests.patch \ %D%/packages/patches/python-scikit-learn-fix-test-non-determinism.patch \ %D%/packages/patches/python-configobj-setuptools.patch \ %D%/packages/patches/python-faker-fix-build-32bit.patch \ diff --git a/gnu/packages/patches/python-statsmodels-fix-tests.patch b/gnu/packages/patches/python-statsmodels-fix-tests.patch deleted file mode 100644 index f910b4b5a5..0000000000 --- a/gnu/packages/patches/python-statsmodels-fix-tests.patch +++ /dev/null @@ -1,28 +0,0 @@ -This drops a test that fails with numpy 1.12. - -Upstream bug URL: https://github.com/statsmodels/statsmodels/issues/3541 - ---- a/statsmodels/discrete/tests/test_discrete.py 2017-03-06 15:29:19.947343331 +0000 -+++ b/statsmodels/discrete/tests/test_discrete.py 2017-03-06 15:29:37.759328845 +0000 -@@ -1329,21 +1329,6 @@ - res = mod.fit(start_params=-np.ones(4), method='newton', disp=0) - assert_(not res.mle_retvals['converged']) - --def test_issue_339(): -- # make sure MNLogit summary works for J != K. -- data = sm.datasets.anes96.load() -- exog = data.exog -- # leave out last exog column -- exog = exog[:,:-1] -- exog = sm.add_constant(exog, prepend=True) -- res1 = sm.MNLogit(data.endog, exog).fit(method="newton", disp=0) -- # strip the header from the test -- smry = "\n".join(res1.summary().as_text().split('\n')[9:]) -- cur_dir = os.path.dirname(os.path.abspath(__file__)) -- test_case_file = os.path.join(cur_dir, 'results', 'mn_logit_summary.txt') -- test_case = open(test_case_file, 'r').read() -- np.testing.assert_equal(smry, test_case[:-1]) -- - def test_issue_341(): - data = sm.datasets.anes96.load() - exog = data.exog diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 485fecaf9a..b1f0237072 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1824,14 +1824,15 @@ building design matrices.") (uri (pypi-uri "statsmodels" version)) (sha256 (base32 - "0j30v3932shnj9368c9jr3svkyrvfj90h2l7nxnqkbpv0svilhr6")) - (patches (search-patches "python-statsmodels-fix-tests.patch")))) + "0j30v3932shnj9368c9jr3svkyrvfj90h2l7nxnqkbpv0svilhr6")))) (build-system python-build-system) (arguments - `(#:phases + `(;; The test suite is very large and rather brittle. Tests often fail + ;; because of minor changes in dependencies that upstream hasn't fixed + ;; in a new release. + #:tests? #f + #:phases (modify-phases %standard-phases - ;; tests must be run after installation - (delete 'check) (add-after 'unpack 'set-matplotlib-backend-to-agg (lambda _ ;; Set the matplotlib backend to Agg to avoid problems using the @@ -1843,14 +1844,17 @@ building design matrices.") (string-append "import matplotlib;matplotlib.use('Agg');" line))) #t)) - (add-after 'install 'check - (lambda* (#:key inputs outputs #:allow-other-keys) - ;; Make installed package available for running the tests - (add-installed-pythonpath inputs outputs) - (with-directory-excursion "/tmp" - (zero? (system* "nosetests" - "--stop" - "-v" "statsmodels")))))))) + ;; FIXME: This is a bug in version 0.8 since the upgrade to scipy 1.0. + ;; See https://github.com/statsmodels/statsmodels/issues/3931 + ;; This has been fixed in version 0.9. + (add-after 'unpack 'patch-for-scipy + (lambda _ + (substitute* "statsmodels/discrete/discrete_model.py" + (("return stats.chisqprob" match) + (string-append + "stats.chisqprob = lambda chisq, df: stats.chi2.sf(chisq, df);" + match))) + #t))))) (propagated-inputs `(("python-numpy" ,python-numpy) ("python-scipy" ,python-scipy) -- cgit v1.2.3 From 5f93600fa62d5fa1e47e273ec347ee14e72f7170 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 15 May 2018 22:24:07 -0500 Subject: gnu: nano: Update to 2.9.7. * gnu/packages/nano.scm: Update to 2.9.7. --- gnu/packages/nano.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/nano.scm b/gnu/packages/nano.scm index 21ef9d5592..07c2a1ff77 100644 --- a/gnu/packages/nano.scm +++ b/gnu/packages/nano.scm @@ -30,7 +30,7 @@ (define-public nano (package (name "nano") - (version "2.9.6") + (version "2.9.7") (source (origin (method url-fetch) @@ -38,7 +38,7 @@ version ".tar.xz")) (sha256 (base32 - "1inl8ljkc711969ncwy7irf0464psasikg1g42l0g4sfpdz50wx3")))) + "1ga4sdk3ikx1ilggc6c77vyfpbmq3nrhg6svgglpf5sv60bv0jmn")))) (build-system gnu-build-system) (inputs `(("gettext" ,gettext-minimal) -- cgit v1.2.3 From 2fd345cdfdd45dd48c9392a26793e442d680968b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 15 May 2018 22:26:05 +0200 Subject: doc: Improve 'guix size' documentation. Suggested by Martin Castillo . Fixes . * doc/guix.texi (Invoking guix size): Clarify that 'guix size' looks for ungrafted packages. Clarify that it can be passed several package specifications. --- doc/guix.texi | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index a771ab7ae1..2234d953b5 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6905,7 +6905,8 @@ single output for a package that could easily be split (@pxref{Packages with Multiple Outputs}). Such are the typical issues that @command{guix size} can highlight. -The command can be passed a package specification such as @code{gcc@@4.8} +The command can be passed one or more package specifications +such as @code{gcc@@4.8} or @code{guile:debug}, or a file name in the store. Consider this example: @@ -6941,13 +6942,16 @@ In this example, we see that the closure of Coreutils weighs in at large fraction of the closure is not a problem @i{per se} because it is always available on the system anyway.) -When the package passed to @command{guix size} is available in the -store, @command{guix size} queries the daemon to determine its +When the package(s) passed to @command{guix size} are available in the +store@footnote{More precisely, @command{guix size} looks for the +@emph{ungrafted} variant of the given package(s), as returned by +@code{guix build @var{package} --no-grafts}. @xref{Security Updates}, +for information on grafts.}, @command{guix size} queries the daemon to determine its dependencies, and measures its size in the store, similar to @command{du -ms --apparent-size} (@pxref{du invocation,,, coreutils, GNU Coreutils}). -When the given package is @emph{not} in the store, @command{guix size} +When the given packages are @emph{not} in the store, @command{guix size} reports information based on the available substitutes (@pxref{Substitutes}). This makes it possible it to profile disk usage of store items that are not even on disk, only available remotely. -- cgit v1.2.3 From 63dbdf80a327c6f1bf049118731877cd36b8e4df Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 15 May 2018 22:31:24 +0200 Subject: doc: Update 'guix size' example. * doc/guix.texi (Invoking guix size): Update example. --- doc/guix.texi | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 2234d953b5..a12210db8a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -6913,12 +6913,15 @@ example: @example $ guix size coreutils store item total self -/gnu/store/@dots{}-coreutils-8.23 70.0 13.9 19.8% -/gnu/store/@dots{}-gmp-6.0.0a 55.3 2.5 3.6% -/gnu/store/@dots{}-acl-2.2.52 53.7 0.5 0.7% -/gnu/store/@dots{}-attr-2.4.46 53.2 0.3 0.5% -/gnu/store/@dots{}-gcc-4.8.4-lib 52.9 15.7 22.4% -/gnu/store/@dots{}-glibc-2.21 37.2 37.2 53.1% +/gnu/store/@dots{}-gcc-5.5.0-lib 60.4 30.1 38.1% +/gnu/store/@dots{}-glibc-2.27 30.3 28.8 36.6% +/gnu/store/@dots{}-coreutils-8.28 78.9 15.0 19.0% +/gnu/store/@dots{}-gmp-6.1.2 63.1 2.7 3.4% +/gnu/store/@dots{}-bash-static-4.4.12 1.5 1.5 1.9% +/gnu/store/@dots{}-acl-2.2.52 61.1 0.4 0.5% +/gnu/store/@dots{}-attr-2.4.47 60.6 0.2 0.3% +/gnu/store/@dots{}-libcap-2.25 60.5 0.2 0.2% +total: 78.9 MiB @end example @cindex closure @@ -6938,9 +6941,10 @@ item itself. The last column shows the ratio of the size of the item itself to the space occupied by all the items listed here. In this example, we see that the closure of Coreutils weighs in at -70@tie{}MiB, half of which is taken by libc. (That libc represents a -large fraction of the closure is not a problem @i{per se} because it is -always available on the system anyway.) +79@tie{}MiB, most of which is taken by libc and GCC's run-time support +libraries. (That libc and GCC's libraries represent a large fraction of +the closure is not a problem @i{per se} because they are always available +on the system anyway.) When the package(s) passed to @command{guix size} are available in the store@footnote{More precisely, @command{guix size} looks for the -- cgit v1.2.3 From 40dc6df4fb9ddd89d3e74168033b0e234b341a15 Mon Sep 17 00:00:00 2001 From: Gábor Boskovits Date: Tue, 15 May 2018 22:03:15 +0200 Subject: gnu: emacs-orgalist: Fix texinfo markup in description. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs-orgalist)[description]: Modify. Signed-off-by: Ludovic Courtès --- gnu/packages/emacs.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 71e9690064..f3d08e8108 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -4743,7 +4743,7 @@ specifically, Orgalist supports the syntax of Org mode for numbered, unnumbered, description items, checkboxes, and counter cookies. The library also implements radio lists, i.e., lists written in Org -syntax later translated into the host format, e.g., @LaTeX{} or HTML.") +syntax later translated into the host format, e.g., LaTeX or HTML.") (license license:gpl3+))) (define-public emacs-writegood-mode -- cgit v1.2.3 From 6f84dc4314cd84550d9fc7e7afa11c495edc45a5 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Wed, 16 May 2018 11:46:43 +0200 Subject: gnu: wine: Update to 3.0.1. * gnu/packages/wine.scm (wine): Update to 3.0.1. --- gnu/packages/wine.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wine.scm b/gnu/packages/wine.scm index 7c00ff3ef3..99d262dcf9 100644 --- a/gnu/packages/wine.scm +++ b/gnu/packages/wine.scm @@ -69,7 +69,7 @@ (define-public wine (package (name "wine") - (version "3.0") + (version "3.0.1") (source (origin (method url-fetch) (uri (string-append "https://dl.winehq.org/wine/source/" @@ -77,7 +77,7 @@ "/wine-" version ".tar.xz")) (sha256 (base32 - "1v7vq9iinkscbq6wg85fb0d2137660fg2nk5iabxkl2wr850asil")))) + "1wr63n70pli83p3rmclr2j4lxzs4ll1cwlpdlaajfrf6v9yhvl5s")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("gettext" ,gettext-minimal) -- cgit v1.2.3 From cbf58afa05b6014f59b49ec043aff6239fbe7313 Mon Sep 17 00:00:00 2001 From: Rutger Helling Date: Wed, 16 May 2018 15:52:40 +0200 Subject: gnu: dolphin-emu: Update to commit 47fd8c6eff4cdea7660d0fa78040f98d1d4fa136. * gnu/packages/emulators.scm (dolphin-emu): Update to commit 47fd8c6eff4cdea7660d0fa78040f98d1d4fa136. [arguments]: Add 'fixgcc7 phase. [native-inputs]: Add gcc@7 since building with gcc@5 doesn't work anymore. --- gnu/packages/emulators.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm index 97bec9a2b4..4415a5aa9c 100644 --- a/gnu/packages/emulators.scm +++ b/gnu/packages/emulators.scm @@ -45,6 +45,7 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages game-development) + #:use-module (gnu packages gcc) #:use-module (gnu packages gettext) #:use-module (gnu packages gl) #:use-module (gnu packages glib) @@ -107,8 +108,8 @@ ;; Building from recent Git because the official 5.0 release no longer builds. (define-public dolphin-emu - (let ((commit "d04b179111f8d863f360839474cb82c766f762b8") - (revision "0")) + (let ((commit "47fd8c6eff4cdea7660d0fa78040f98d1d4fa136") + (revision "1")) (package (name "dolphin-emu") (version (git-version "5.0" revision commit)) @@ -134,7 +135,7 @@ #t)) (sha256 (base32 - "0g725wmhlim73zrhi47wmr1bmplpy4b7sbimd5pm8xpfhj5nm10l")))) + "1gp2sshnr0dswdawxd5ix96nksp435b52bqvpjx8pmn523k29zsw")))) (build-system cmake-build-system) (arguments '(#:tests? #f @@ -143,6 +144,10 @@ #:phases (modify-phases %standard-phases + (add-before 'configure 'fixgcc7 + (lambda _ + (unsetenv "C_INCLUDE_PATH") + (unsetenv "CPLUS_INCLUDE_PATH"))) (add-before 'configure 'generate-fonts&hardcore-libvulkan-path (lambda* (#:key inputs outputs #:allow-other-keys) (let ((fontfile @@ -179,6 +184,7 @@ "-DX11_FOUND=1"))) (native-inputs `(("pkg-config" ,pkg-config) + ("gcc" ,gcc-7) ; Building with gcc@5 doesn't work anymore. ("gettext" ,gnu-gettext))) (inputs `(("alsa-lib" ,alsa-lib) -- cgit v1.2.3 From e7395b9024b2f2ee9a064087e3abea5434cc8be6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 15:15:55 +0200 Subject: gnu: prosody: Update to 0.10.1 [security fixes]. * gnu/packages/messaging.scm (prosody): Update to 0.10.1. --- gnu/packages/messaging.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm index 6efb8121e8..0ffc2e0b79 100644 --- a/gnu/packages/messaging.scm +++ b/gnu/packages/messaging.scm @@ -736,14 +736,14 @@ a graphical desktop environment like GNOME.") (define-public prosody (package (name "prosody") - (version "0.10.0") + (version "0.10.1") (source (origin (method url-fetch) (uri (string-append "https://prosody.im/downloads/source/" "prosody-" version ".tar.gz")) (sha256 (base32 - "1644jy5dk46vahmh6nna36s79k8k668sbi3qamjb4q3c4m3y853l")))) + "1kmmpkkgymg1r8r0k8j83pgmiskg1phl8hmpzjrnvlvsfnrnjplr")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" target -- cgit v1.2.3 From 3659b0d7bf5df9d1f164bb809d796042fb952d3d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 13:38:20 +0200 Subject: gnu: maim: Update to 5.5.1. * gnu/packages/xdisorg.scm (maim): Update to 5.5.1. --- gnu/packages/xdisorg.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 2309596f6b..0432411ab7 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -18,7 +18,7 @@ ;;; Copyright © 2016 Petter ;;; Copyright © 2017 Mekeor Melire ;;; Copyright © 2017 Nils Gillmann -;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Marek Benc ;;; Copyright © 2017 Mike Gerwitz ;;; Copyright © 2018 Thomas Sigurdsen @@ -532,7 +532,7 @@ selection's dimensions to stdout.") (define-public maim (package (name "maim") - (version "5.5") + (version "5.5.1") (source (origin (method url-fetch) (uri (string-append @@ -541,7 +541,7 @@ selection's dimensions to stdout.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "02blbimjdckbcb04crhv0k2vxnp3rcgskyq66sk0v13l2h52849v")))) + "1dvw0axnr9hhjg6zdcq9lwvaq0x7vrzlz00p8n3hj25qzsi4z5as")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no "check" target -- cgit v1.2.3 From ebbc0feaac38c32b6cffb78727a23dfde4314652 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 13:36:07 +0200 Subject: gnu: uim: Update to 1.8.8. * gnu/packages/xorg.scm (uim): Update to 1.8.8. --- gnu/packages/xorg.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 4876e9826a..8beac5c9c5 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -6044,15 +6044,15 @@ X11 servers, Windows, or macOS.") (define-public uim (package (name "uim") - (version "1.8.6") + (version "1.8.8") (source (origin (method url-fetch) - (uri (string-append "https://github.com/uim/uim/releases/download/uim-" + (uri (string-append "https://github.com/uim/uim/releases/download/" version "/uim-" version ".tar.bz2")) (sha256 (base32 - "0pr3rfqpxha8p6cxzdjsxbbmmr76riklzw36f68phd1zqw1sh7kv")))) + "1p7sl0js47ja4glmax93ci59h02ipqw3wxkh4f1qgaz5qjy9nn9l")))) (build-system gnu-build-system) (inputs `(("anthy" ,anthy) -- cgit v1.2.3 From 8e0c5d44d1f016071b06479c39da98fc0b8402d6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Tue, 15 May 2018 15:58:34 +0200 Subject: gnu: dunst: Update to 1.3.2. * gnu/packages/dunst.scm (dunst): Update to 1.3.2. --- gnu/packages/dunst.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gnu/packages/dunst.scm b/gnu/packages/dunst.scm index 6df37894da..eaad227747 100644 --- a/gnu/packages/dunst.scm +++ b/gnu/packages/dunst.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015, 2017, 2018 Alex Kost +;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,7 +33,7 @@ (define-public dunst (package (name "dunst") - (version "1.3.1") + (version "1.3.2") (source (origin (method url-fetch) (uri (string-append @@ -41,7 +42,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1mkdp1vqc376z8clwm5s9070jq1g92j8hv2rr231jr2468fnwaga")))) + "12nj8qw3y3nl8sm24wizy2a7k06v1p88bnz1xr9l39h527xyidma")))) (build-system gnu-build-system) (arguments '(#:tests? #f ; no check target -- cgit v1.2.3 From 9af5a513f0c7cdbfbe3258c559cab28cd24b4c6a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 14:10:33 +0200 Subject: gnu: perl-xml-compile-tester: Update to 0.91. * gnu/packages/xml.scm (perl-xml-compile-tester): Update to 0.91. --- gnu/packages/xml.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 6e32ffb05f..484de8e7be 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -636,14 +636,14 @@ that conforms to the API of the Document Object Model.") (define-public perl-xml-compile-tester (package (name "perl-xml-compile-tester") - (version "0.90") + (version "0.91") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/" "XML-Compile-Tester-" version ".tar.gz")) (sha256 (base32 - "1bcl8x8cyacqv9yjp97aq9qq85sy8wv78kd8c16yd9yw3by4cpp1")))) + "1drzwziwi96rfkh48qpw4l225mcbk8ppl2157nj92cslcpwwdk75")))) (build-system perl-build-system) (propagated-inputs `(("perl-log-report" ,perl-log-report) -- cgit v1.2.3 From 4b4a4f5c2d434f7be70f7af2bdb6825629ced6a1 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 14:12:27 +0200 Subject: gnu: perl-xml-compile-wsdl11: Update to 3.07. * gnu/packages/xml.scm (perl-xml-compile-wsdl11): Update to 3.07. --- gnu/packages/xml.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index 484de8e7be..b8174f8f4c 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -735,14 +735,14 @@ used.") (define-public perl-xml-compile-wsdl11 (package (name "perl-xml-compile-wsdl11") - (version "3.06") + (version "3.07") (source (origin (method url-fetch) (uri (string-append "mirror://cpan/authors/id/M/MA/MARKOV/" "XML-Compile-WSDL11-" version ".tar.gz")) (sha256 (base32 - "0vbq05cpynm3jj81fw1k4nsb3wv4zngi6blvi1jhdarmh2rfg1x2")))) + "09ayl442hzvn97q4ghn5rz4r82dm9w3l69hixhb29h9xq9ysi7ba")))) (build-system perl-build-system) (propagated-inputs `(("perl-log-report" ,perl-log-report) -- cgit v1.2.3 From 8c2ab7422ca2d80379a251b4547c3d393f54068f Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 14:14:53 +0200 Subject: gnu: i3status: Update to 2.12. * gnu/packages/wm.scm (i3status): Update to 2.12. --- gnu/packages/wm.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index d60f2c81be..a922ea4c30 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -136,14 +136,14 @@ the leaves of a full binary tree.") (define-public i3status (package (name "i3status") - (version "2.11") + (version "2.12") (source (origin (method url-fetch) (uri (string-append "https://i3wm.org/i3status/i3status-" version ".tar.bz2")) (sha256 (base32 - "0pwcy599fw8by1a1sf91crkqba7679qhvhbacpmhis8c1xrpxnwq")))) + "06krpbijv4yi33nypg6qcn4hilcrdyarsdpd9fmr2cq46qaqiikg")))) (build-system gnu-build-system) (arguments `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)) -- cgit v1.2.3 From 13804559948c413b8ae41576bb9da71e2629d918 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 14:26:00 +0200 Subject: gnu: lynx: Update to 2.8.9dev.18. * gnu/packages/web-browsers.scm (lynx): Update to 2.8.9dev.18. --- gnu/packages/web-browsers.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index a5ecd0b546..ba07e58ce8 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -130,7 +130,7 @@ features including, tables, builtin image display, bookmarks, SSL and more.") (define-public lynx (package (name "lynx") - (version "2.8.9dev.17") + (version "2.8.9dev.18") (source (origin (method url-fetch) (uri (string-append @@ -138,7 +138,7 @@ features including, tables, builtin image display, bookmarks, SSL and more.") "/lynx" version ".tar.bz2")) (sha256 (base32 - "1lvfsnrw5mmwrmn1m76q9mx287xwm3h5lg8sv7bcqilc0ywi2f54")))) + "08v3n58hlrwncfvz6g76v061xwcbjgabiy5gv7ainf1li5akjwz5")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("perl" ,perl))) -- cgit v1.2.3 From 5abd39091540d96bbe8e27f3ea236182b78c9f60 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 14:26:19 +0200 Subject: gnu: links: Update to 2.16. * gnu/packages/web-browsers.scm (links): Update to 2.16. --- gnu/packages/web-browsers.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/web-browsers.scm b/gnu/packages/web-browsers.scm index ba07e58ce8..d6da22152c 100644 --- a/gnu/packages/web-browsers.scm +++ b/gnu/packages/web-browsers.scm @@ -79,14 +79,14 @@ older or slower computers and embedded systems.") (define-public links (package (name "links") - (version "2.15") + (version "2.16") (source (origin (method url-fetch) (uri (string-append "http://links.twibright.com/download/" name "-" version ".tar.bz2")) (sha256 (base32 - "1jp3xyvp87a188b4kg5ycqahrazj7928zncgsznzn54w8d5iqahy")))) + "0gsa2gpb1grhssl5jzpc5pa0zi21mxi8g25rh5bacl70slw31w42")))) (build-system gnu-build-system) (arguments `(#:phases -- cgit v1.2.3 From 2112a9921bf20b20bdaf7e2cbf38494141b956d6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 14:31:41 +0200 Subject: gnu: youtube-dl: Update to 2018.05.09. * gnu/packages/video.scm (youtube-dl): Update to 2018.05.09. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 94b51fcbcc..5c876d0da6 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1154,7 +1154,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2018.04.25") + (version "2018.05.09") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -1162,7 +1162,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "17zxgwfcy7c6gdyxdgh02f5zi52gvmy0zpccfj6zjkhw5iqj1vbw")))) + "0sl4bi2jls3417rd62awbqdq1b6wskkjbfwpnyw4a61qarfxid1d")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion -- cgit v1.2.3 From 14bec76535ea6971f85b25cf7b423b055a19a782 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 15:38:46 +0200 Subject: gnu: feh: Update to 2.26.2. * gnu/packages/image-viewers.scm (feh): Update to 2.26.2. --- gnu/packages/image-viewers.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/image-viewers.scm b/gnu/packages/image-viewers.scm index 8d60dc0674..68f1148908 100644 --- a/gnu/packages/image-viewers.scm +++ b/gnu/packages/image-viewers.scm @@ -60,7 +60,7 @@ (define-public feh (package (name "feh") - (version "2.26") + (version "2.26.2") (home-page "https://feh.finalrewind.org/") (source (origin (method url-fetch) @@ -68,7 +68,7 @@ name "-" version ".tar.bz2")) (sha256 (base32 - "11kckzwk3b734l0n4j41k40liq1v2lbbj1gzir5qc386g7fvzmmi")))) + "07hn5d5m1jsqp6qb2d3lah1js8382hrf225y0q8776m2k3vzylk3")))) (build-system gnu-build-system) (arguments '(#:phases (modify-phases %standard-phases (delete 'configure)) -- cgit v1.2.3 From 1cffa65d159558ac469de710bbf74cd30be9481b Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 15:39:20 +0200 Subject: gnu: graphicsmagick: Update to 1.3.29. * gnu/packages/imagemagick.scm (graphicsmagick): Update to 1.3.29. --- gnu/packages/imagemagick.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm index 6781cd3192..d4edbec31d 100644 --- a/gnu/packages/imagemagick.scm +++ b/gnu/packages/imagemagick.scm @@ -165,7 +165,7 @@ script.") (define-public graphicsmagick (package (name "graphicsmagick") - (version "1.3.28") + (version "1.3.29") (source (origin (method url-fetch) (uri @@ -177,7 +177,7 @@ script.") "/GraphicsMagick-" version ".tar.xz"))) (sha256 (base32 - "0jlrrimrajcmwp7llivyj14qnzb1mpqd8vw95dl6zbx5m2lnhall")))) + "1m0cc6kpky06lpcipj7rfwc2jbw2igr0jk97zqmw3j1ld5mg93g1")))) (build-system gnu-build-system) (arguments `(#:configure-flags -- cgit v1.2.3 From 75ea6fe80e3821c59e1f33c793b953ee941d9c58 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 15:40:46 +0200 Subject: gnu: phonon: Update to 4.10.1. * gnu/packages/kde-frameworks.scm (phonon): Update to 4.10.1. --- gnu/packages/kde-frameworks.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/kde-frameworks.scm b/gnu/packages/kde-frameworks.scm index b763a03476..fdba670b0b 100644 --- a/gnu/packages/kde-frameworks.scm +++ b/gnu/packages/kde-frameworks.scm @@ -141,7 +141,7 @@ common build settings used in software produced by the KDE community.") (define-public phonon (package (name "phonon") - (version "4.10.0") + (version "4.10.1") (source (origin (method url-fetch) (uri (string-append @@ -150,7 +150,7 @@ common build settings used in software produced by the KDE community.") name "-" version ".tar.xz")) (sha256 (base32 - "0gyhlnwamzfw31kw4qh0v6rj0m47k9wfygd6h07klg9ggp60xhg2")))) + "1dwdw0hm6685psrp7v9frhkhqvsxrbdnm3gw794j5z7g3brqvag5")))) (build-system cmake-build-system) (native-inputs ;; TODO: Think about adding pulseaudio. Is it required for sound? -- cgit v1.2.3 From 7c52558154dc126ebdc6890215c5b09ba0d3ee4c Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 15:41:11 +0200 Subject: gnu: usbutils: Update to 010. * gnu/packages/linux.scm (usbutils): Update to 010. --- 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 76bd90fdee..0f72701aa8 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -741,7 +741,7 @@ slabtop, and skill.") (define-public usbutils (package (name "usbutils") - (version "009") + (version "010") (source (origin (method url-fetch) @@ -749,7 +749,7 @@ slabtop, and skill.") "usbutils-" version ".tar.xz")) (sha256 (base32 - "0q3iavmak2bs9xw486w4xfbjl0hbzii93ssgpr95mxmm9kjz1gwb")))) + "06aag4jfgsfjxk563xsp9ik9nadihmasrr37a1gb0vwqni5kdiv1")))) (build-system gnu-build-system) (inputs `(("libusb" ,libusb) -- cgit v1.2.3 From 1df4d1b4d9d25d017fbda08da911303d5a40ac91 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 15:41:59 +0200 Subject: gnu: python-graphviz: Update to 0.8.3. * gnu/packages/graphviz.scm (python-graphviz): Update to 0.8.3. --- gnu/packages/graphviz.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm index 58c0fa82fe..8d8bd54560 100644 --- a/gnu/packages/graphviz.scm +++ b/gnu/packages/graphviz.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2015 Efraim Flashner ;;; Copyright © 2016 Theodoros Foradis ;;; Copyright © 2017 Ricardo Wurmus -;;; Copyright © 2017 Tobias Geerinckx-Rice +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice ;;; Copyright © 2017 Gábor Boskovits ;;; Copyright © 2018 Mathieu Lirzin ;;; @@ -117,13 +117,13 @@ interfaces for other technical domains.") (define-public python-graphviz (package (name "python-graphviz") - (version "0.8.2") + (version "0.8.3") (source (origin (method url-fetch) (uri (pypi-uri "graphviz" version ".zip")) (sha256 (base32 - "148h7ln8z65c1723w9vpx8khkvl9iigh8csv0qd4pidc53042rv0")))) + "0gnl11w98iib7vif92f3vircavy2v1yl9sl54y6hhk1mwm0f07f6")))) (build-system python-build-system) (native-inputs `(("unzip" ,unzip))) -- cgit v1.2.3 From 41c77ba3ff56fccee1dc4fc46ae88f0dbe674266 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 15:42:29 +0200 Subject: gnu: rng-tools: Update to 6.2. * gnu/packages/linux.scm (rng-tools): Update to 6.2. --- 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 0f72701aa8..f949e3fc4d 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3516,7 +3516,7 @@ The following service daemons are also provided: (define-public rng-tools (package (name "rng-tools") - (version "6.1") + (version "6.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/nhorman/rng-tools/" @@ -3524,7 +3524,7 @@ The following service daemons are also provided: (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "00ywsknjpc9jd9kfmz2syk9l0xkiiwyx5qhl5zvhhc69v6682i31")))) + "0xy4qmfhvkr5z4jr9j55dn5gnajr2jccdp6n0xsxkipjcgag342j")))) (build-system gnu-build-system) (arguments `(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB. -- cgit v1.2.3 From f3afef52f6638f5759b5ae94850ed0d9840761c4 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 15:43:23 +0200 Subject: gnu: rng-tools: Use INVOKE. * gnu/packages/linux.scm (rng-tools)[arguments]: Substitute INVOKE for SYSTEM* and explicitly return #t from phase. --- gnu/packages/linux.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index f949e3fc4d..b357a4b270 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -3533,7 +3533,8 @@ The following service daemons are also provided: (modify-phases %standard-phases (add-after 'unpack 'bootstrap (lambda _ - (zero? (system* "sh" "autogen.sh"))))))) + (invoke "sh" "autogen.sh") + #t))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) -- cgit v1.2.3 From 9a2ac95d7623f083420ceb27d034a79b2e739b58 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 15:44:17 +0200 Subject: gnu: r-desolve: Update to 1.21. * gnu/packages/maths.scm (r-desolve): Update to 1.21. --- 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 2e6f79ad55..c1ef67f3de 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -3889,14 +3889,14 @@ are noisy or are discontinuous at the solution.") (define-public r-desolve (package (name "r-desolve") - (version "1.20") + (version "1.21") (source (origin (method url-fetch) (uri (cran-uri "deSolve" version)) (sha256 (base32 - "18nx3maww979a8p8ly4hv63y65mnjx8vbj2fpipd6rhcbf1lbsan")))) + "0qqc4mknw1jblzcmph1dg3k1p6w42yal0k1xjh8pqk7yb3a75hs5")))) (properties `((upstream-name . "deSolve"))) (build-system r-build-system) (native-inputs -- cgit v1.2.3 From 0a0d6f479fcd8c132b1457c51358061e0788f46e Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 15:44:51 +0200 Subject: gnu: libraw: Update to 0.18.11. * gnu/packages/photo.scm (libraw): Update to 0.18.11. --- gnu/packages/photo.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 348ac1df62..6c3c116ef6 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -69,14 +69,14 @@ (define-public libraw (package (name "libraw") - (version "0.18.10") + (version "0.18.11") (source (origin (method url-fetch) (uri (string-append "https://www.libraw.org/data/LibRaw-" version ".tar.gz")) (sha256 (base32 - "0klrzg1cn8ksxqbhx52dldi5bbmad190npnhhgkyr2jzpgrbpj88")))) + "07a7k83hx7icahh6jaxfbd7pw5jjm5i11xcqjj31b28d1aj29xvw")))) (build-system gnu-build-system) (home-page "https://www.libraw.org") (synopsis "Raw image decoder") -- cgit v1.2.3 From b85c1858ac7f3cc9ab9ee9ef22426d85de1dcded Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 15:57:06 +0200 Subject: gnu: libnftnl: Update to 1.1.0. * gnu/packages/linux.scm (libnftnl): Update to 1.1.0. --- 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 b357a4b270..09e999859d 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -4162,7 +4162,7 @@ re-use code and to avoid re-inventing the wheel.") (define-public libnftnl (package (name "libnftnl") - (version "1.0.9") + (version "1.1.0") (source (origin (method url-fetch) @@ -4170,7 +4170,7 @@ re-use code and to avoid re-inventing the wheel.") "libnftnl-" version ".tar.bz2")) (sha256 (base32 - "0d9nkdbdck8sg6msysqyv3m9kjr9sjif5amf26dfa0g3mqjdihgy")))) + "0v4gywcjvv2vg4zk632al1zv3ad0lx87nshynv110l8n3fhsq3pc")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) -- cgit v1.2.3 From e17af38f0a79aacfa22fd10bed369689b5553cbd Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 15:57:30 +0200 Subject: gnu: libfm: Update to 1.3.0.2. * gnu/packages/lxde.scm (libfm): Update to 1.3.0.2. --- gnu/packages/lxde.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm index 67e66f8f6b..b62cb1f141 100644 --- a/gnu/packages/lxde.scm +++ b/gnu/packages/lxde.scm @@ -48,7 +48,7 @@ (define-public libfm (package (name "libfm") - (version "1.3.0") + (version "1.3.0.2") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/pcmanfm/" @@ -56,7 +56,7 @@ "%29/LibFM/" name "-" version ".tar.xz")) (sha256 (base32 - "151jyy8ipmp2h829gd9s4s429qafv1zxl7j6zaj1k1gzm9s5rmnb")))) + "0wkwbi1nyvqza3r1dhrq846axiiq0fy0dqgngnagh76fjrwnzl0q")))) (build-system gnu-build-system) (inputs `(("glib" ,glib) ("gtk+" ,gtk+-2))) -- cgit v1.2.3 From 34c2bc56f8f4da3bf2dad3bf34285ac90086a6b6 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 15:58:34 +0200 Subject: gnu: python-numexpr: Update to 2.6.5. * gnu/packages/python.scm (python-numexpr): Update to 2.6.5. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index f942a2be44..d7654a18eb 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -3282,14 +3282,14 @@ that client code uses to construct the grammar directly in Python code.") (define-public python-numexpr (package (name "python-numexpr") - (version "2.6.4") + (version "2.6.5") (source (origin (method url-fetch) (uri (pypi-uri "numexpr" version)) (sha256 (base32 - "1kpnbb5d5n927113zccfibn16z7gidjipyac6kbbhzs0lnizkgph")))) + "1frnbcwmsi312154x274xl28xazr1k8vjby83fwyla2n10a81bgq")))) (build-system python-build-system) (arguments `(#:tests? #f)) ; no tests included (propagated-inputs -- cgit v1.2.3 From 3aa5b7d934e311caa799006ce6764dcf1955e410 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 15:59:24 +0200 Subject: gnu: python-netifaces: Update to 0.10.7. * gnu/packages/python.scm (python-netifaces): Update to 0.10.7. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index d7654a18eb..937ed21fe6 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -4964,14 +4964,14 @@ converts incoming documents to Unicode and outgoing documents to UTF-8.") (define-public python-netifaces (package (name "python-netifaces") - (version "0.10.6") + (version "0.10.7") (source (origin (method url-fetch) (uri (pypi-uri "netifaces" version)) (sha256 (base32 - "1q7bi5k2r955rlcpspx4salvkkpk28jky67fjbpz2dkdycisak8c")))) + "1gccklrcplbbqh81g1mdgpa5y8na7kkf29cq2ka3f5a2fp5hyndx")))) (build-system python-build-system) (home-page "https://github.com/al45tair/netifaces") (synopsis -- cgit v1.2.3 From 2ef651a6e20de6ae9152934819f3deb58edfef8a Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 15:59:31 +0200 Subject: gnu: python-ddt: Update to 1.1.3. * gnu/packages/python.scm (python-ddt): Update to 1.1.3. --- gnu/packages/python.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 937ed21fe6..d8d615e19f 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -10559,14 +10559,14 @@ convering text with ANSI color codes to HTML or LaTeX.") (define-public python-ddt (package (name "python-ddt") - (version "1.1.2") + (version "1.1.3") (source (origin (method url-fetch) (uri (pypi-uri "ddt" version)) (sha256 (base32 - "1wqkmz0yhanly8sif5vb02p2iik7mwxwph8ywph2kbb8ws8szdpx")))) + "1lw17420iimhghkgzgax85nn8d1an2d6k2cfvb7j5kwn2dqlr1vk")))) (build-system python-build-system) (native-inputs `(("python-mock" ,python-mock) -- cgit v1.2.3 From 01635bcdd62dfba70801b202e7ae2aa2b86552ea Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 15:59:45 +0200 Subject: gnu: dash: Update to 0.5.10.1. * gnu/packages/shells.scm (dash): Update to 0.5.10.1. --- gnu/packages/shells.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 052eb0ddb9..0447643606 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -52,7 +52,7 @@ (define-public dash (package (name "dash") - (version "0.5.9.1") + (version "0.5.10.1") (source (origin (method url-fetch) @@ -60,7 +60,7 @@ "dash-" version ".tar.gz")) (sha256 (base32 - "0ng695mq5ngg43h7ljhxvbjm46ym3nayj6ssn47d2gm9fbm5pkay")) + "1bl4brz5vy07lrss54glp4vfca3q8d73hyc87sqdk99f76z95b6s")) (modules '((guix build utils))) (snippet '(begin -- cgit v1.2.3 From 4c32897d2efae2d358420e48486a0aac41c7413d Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 16:00:01 +0200 Subject: gnu: r-bit: Update to 1.1-13. * gnu/packages/statistics.scm (r-bit): Update to 1.1-13. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index b1f0237072..124583920d 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -639,14 +639,14 @@ curves, Cox models, and parametric accelerated failure time models.") (define-public r-bit (package (name "r-bit") - (version "1.1-12") + (version "1.1-13") (source (origin (method url-fetch) (uri (cran-uri "bit" version)) (sha256 (base32 - "0a6ig6nnjzq80r2ll4hc74za3xwzbzig6wlyb4dby0knzf3iqa6f")))) + "1yhpwvfkxpb773h8khjzyamqxl2jn7pjjmxjfawq626hhds8fsh6")))) (build-system r-build-system) (home-page "http://ff.r-forge.r-project.org") (synopsis "Class for vectors of 1-bit booleans") -- cgit v1.2.3 From 610e56d433dc279c7d3f3f6180a2db62dcbc2815 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 16:01:40 +0200 Subject: gnu: r-stringr: Update to 1.3.1. * gnu/packages/statistics.scm (r-stringr): Update to 1.3.1. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index 124583920d..fcc605fd36 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -965,13 +965,13 @@ transliteration, concatenation, date-time formatting and parsing, etc.") (define-public r-stringr (package (name "r-stringr") - (version "1.3.0") + (version "1.3.1") (source (origin (method url-fetch) (uri (cran-uri "stringr" version)) (sha256 - (base32 "07dvfbkhv8gk6l32j43jvxpmqlhqp0mdby406h5a3bsc6k94ic13")))) + (base32 "0hq3ybz7clnifi5wdm2s6p2i0kzljdkv26blg6yphng472h8x2vs")))) (build-system r-build-system) (propagated-inputs `(("r-glue" ,r-glue) -- cgit v1.2.3 From 500aba888462269869d14ccab91da3c3d250bdd1 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 16:01:49 +0200 Subject: gnu: r-plotrix: Update to 3.7-1. * gnu/packages/statistics.scm (r-plotrix): Update to 3.7-1. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index fcc605fd36..ed3e262548 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -2427,13 +2427,13 @@ disk (or a connection).") (define-public r-plotrix (package (name "r-plotrix") - (version "3.7") + (version "3.7-1") (source (origin (method url-fetch) (uri (cran-uri "plotrix" version)) (sha256 (base32 - "0rw81n9p3d2i03b4pgcfj5blryc94f29bm9a4j9bnp5h8qjj6pry")))) + "16p6d2dna6dah7rg2xknhyy65jkfn0zzivx1nnfxhd4f5q0v87w2")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/plotrix") (synopsis "Various plotting functions") -- cgit v1.2.3 From d059a01e32467e7e44c7007651a09dd9e90e02cf Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 16:01:59 +0200 Subject: gnu: r-rcppprogress: Update to 0.4.1. * gnu/packages/statistics.scm (r-rcppprogress): Update to 0.4.1. --- gnu/packages/statistics.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm index ed3e262548..8e8bff54c4 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -5199,14 +5199,14 @@ classification and regression models.") (define-public r-rcppprogress (package (name "r-rcppprogress") - (version "0.4") + (version "0.4.1") (source (origin (method url-fetch) (uri (cran-uri "RcppProgress" version)) (sha256 (base32 - "09ayw6d69i0lplmaj5md25p5hn1nmiyp6a4sh60v93nrrs1cq7iv")))) + "0yk01hfv961zyp569682k9igvhnwqyg5j0n5fm63sxigj82l2xhi")))) (properties `((upstream-name . "RcppProgress"))) (build-system r-build-system) (propagated-inputs -- cgit v1.2.3 From 649b334b586e3a4fc360a5cd8fa45d2a89f1eb05 Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Wed, 16 May 2018 16:02:10 +0200 Subject: gnu: libdca: Update to 0.0.6. * gnu/packages/video.scm (libdca): Update to 0.0.6. --- gnu/packages/video.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 5c876d0da6..cfe8d3ba56 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -472,7 +472,7 @@ canvas operations.") (define-public libdca (package (name "libdca") - (version "0.0.5") + (version "0.0.6") (source (origin (method url-fetch) (uri (string-append @@ -480,7 +480,7 @@ canvas operations.") version "/libdca-" version ".tar.bz2")) (sha256 (base32 - "0hh6a7l8vvccsd5i1fkv9av2gzv9fy8m0b8jpsn5p6hh4bh2586v")))) + "0h0zvcn97i9kyljdpifzi8in9xnw31fx3b3ggj96p8h0l2d8mycq")))) (build-system gnu-build-system) (home-page "https://www.videolan.org/developers/libdca.html") (synopsis "DTS Coherent Acoustics decoder") -- cgit v1.2.3 From 029dd51d8c1b12aea7f6958956a3bfdd127ab14b Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 17 May 2018 00:47:40 -0400 Subject: gnu: linux-libre@4.4: Update to 4.4.132. * gnu/packages/linux.scm (linux-libre-4.4): Update to 4.4.132. --- 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 09e999859d..32df323513 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -417,8 +417,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.131" - "1phah297rxjwy22wfaqlzpbk71ddp3drma5dx3i8xv6g8vijd08x" + (make-linux-libre "4.4.132" + "012nmbvvi8sg0iav5aibk8qx189iwqjadnr4h5jv65gzi7i79li9" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From c0bd585835f3457399c8fec2d1f90dd2e34a9482 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 17 May 2018 00:48:32 -0400 Subject: gnu: linux-libre@4.9: Update to 4.9.100. * gnu/packages/linux.scm (linux-libre-4.9): Update to 4.9.100. --- 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 32df323513..0b5e002c52 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -411,8 +411,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.99" - "0xhzanpxbhddj0n8hn40z99y9x3538fm167z3dixzgs6jq4vfx5b" + (make-linux-libre "4.9.100" + "1zphlisrjzbgk7nvclbwm23kmrx7vw13w02r1va3g5lzh0rlwx71" %intel-compatible-systems #:configuration-file kernel-config)) -- cgit v1.2.3 From 22d466737d35244d7497a205caba7d2355088a2f Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 17 May 2018 00:49:11 -0400 Subject: gnu: linux-libre@4.14: Update to 4.14.41. * gnu/packages/linux.scm (%linux-libre-4.14-version): Update to 4.14.41. (%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 0b5e002c52..0c9403349f 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -401,8 +401,8 @@ It has been modified to remove all non-free binary blobs.") %linux-compatible-systems #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.40") -(define %linux-libre-4.14-hash "0ifnxxqzn47gd2mpga8xj8nwhhzkhx31csis3p5j236m5kc149mc") +(define %linux-libre-4.14-version "4.14.41") +(define %linux-libre-4.14-hash "0qcfw4spnjlzri8bgch1j0yxsw75gjx1m9qyn3h1lk4a33gczih6") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version -- cgit v1.2.3 From 2cf8531f360ef390d3ec670cc150b106bab5eff1 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 17 May 2018 00:49:58 -0400 Subject: gnu: linux-libre: Update to 4.16.9. * gnu/packages/linux.scm (%linux-libre-version): Update to 4.16.9. (%linux-libre-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 0c9403349f..0c58b90f10 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -392,8 +392,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.16.8") -(define %linux-libre-hash "0j77wnf97rjrvs1vbifash0sppa85pb5ckdk40f4n2mbzardsmxg") +(define %linux-libre-version "4.16.9") +(define %linux-libre-hash "13v5pb30v16cn81w2gnwaa4zhxas7q3zz10igpa2rqd5fdiy3rlz") (define-public linux-libre (make-linux-libre %linux-libre-version -- cgit v1.2.3