From c36d972531efd1afdc9e4e0dd4e73f5bb4146229 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Sun, 9 Sep 2018 21:59:08 +0200 Subject: [PATCH 1/8] gnu: Update texmaker to 5.0.2. * gnu/packages/tex.scm (texmaker): Update to 5.0.2. --- gnu/packages/tex.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 6ab999b2d5..be75bda7dd 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -4244,14 +4244,14 @@ (define-public rubber (define-public texmaker (package (name "texmaker") - (version "4.5") + (version "5.0.2") (source (origin (method url-fetch) (uri (string-append "http://www.xm1math.net/texmaker/texmaker-" version ".tar.bz2")) (sha256 (base32 - "056njk6j8wma23mlp7xa3rgfaxx0q8ynwx8wkmj7iy0b85p9ds9c")))) + "0y81mjm89b99pr9svcwpaf4iz2q9pc9hjas5kiwd1pbgl5vqskm9")))) (build-system gnu-build-system) (arguments `(#:phases @@ -4262,9 +4262,9 @@ (define-public texmaker (let ((out (assoc-ref outputs "out"))) (invoke "qmake" (string-append "PREFIX=" out) - (string-append "DESKTOPDIR=" out - "/share/applications") + (string-append "DESKTOPDIR=" out "/share/applications") (string-append "ICONDIR=" out "/share/pixmaps") + (string-append "METAINFODIR=" out "/share/metainfo") "texmaker.pro"))))))) (inputs `(("poppler-qt5" ,poppler-qt5) From 35c076e619c0a7c25456fceb2e694f76e0315db5 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 9 Sep 2018 15:35:54 +0200 Subject: [PATCH 2/8] gnu: r-chippeakanno: Update to 3.14.2. * gnu/packages/bioconductor.scm (r-chippeakanno): Update to 3.14.2. --- gnu/packages/bioconductor.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/bioconductor.scm b/gnu/packages/bioconductor.scm index a47a5aad05..108f3c398f 100644 --- a/gnu/packages/bioconductor.scm +++ b/gnu/packages/bioconductor.scm @@ -410,14 +410,14 @@ (define-public r-codedepends (define-public r-chippeakanno (package (name "r-chippeakanno") - (version "3.14.1") + (version "3.14.2") (source (origin (method url-fetch) (uri (bioconductor-uri "ChIPpeakAnno" version)) (sha256 (base32 - "1cn1hfc3nvsf2n3563lkmvwjxfbiygx7f84zk683p89gy7zi1gyj")))) + "13rksc65lxxzyw11galh6xzvgzp5ii0gwiwpvrm395v2r17rhwsc")))) (properties `((upstream-name . "ChIPpeakAnno"))) (build-system r-build-system) (propagated-inputs From ab50580a9d9379b62b9d3e9db5f3402b8462dd98 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 9 Sep 2018 15:36:10 +0200 Subject: [PATCH 3/8] gnu: r-annotationhub: Update to 2.12.1. * gnu/packages/bioinformatics.scm (r-annotationhub): Update to 2.12.1. --- 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 2d5ec6d170..6580cac531 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -9866,14 +9866,14 @@ (define-public r-interactivedisplaybase (define-public r-annotationhub (package (name "r-annotationhub") - (version "2.12.0") + (version "2.12.1") (source (origin (method url-fetch) (uri (bioconductor-uri "AnnotationHub" version)) (sha256 (base32 - "11gh7qkgazs90czdqgv74gh2hz26xrmdp6wsz9x5pygbxls8xdw3")))) + "02ls279k1qlch147vw8kwvlhcqyzvi495bgv110m0xnnbpgbln6g")))) (properties `((upstream-name . "AnnotationHub"))) (build-system r-build-system) (propagated-inputs From 45350539aa2c977ae04bfda0483834a2bd638fb3 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 9 Sep 2018 15:36:19 +0200 Subject: [PATCH 4/8] gnu: r-chron: Update to 2.3-53. * gnu/packages/statistics.scm (r-chron): Update to 2.3-53. --- 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 ce7335619b..04979ffe25 100644 --- a/gnu/packages/statistics.scm +++ b/gnu/packages/statistics.scm @@ -1749,13 +1749,13 @@ (define-public r-locfit (define-public r-chron (package (name "r-chron") - (version "2.3-52") + (version "2.3-53") (source (origin (method url-fetch) (uri (cran-uri "chron" version)) (sha256 (base32 - "185lfp75cv3l4cavg64sccj8lgc5sivch13n6gkannv3pd5cyzy4")))) + "02bkywwsxwrxc035hv51dxgdm1fjxdm7dn19ivifln59dfs1862j")))) (build-system r-build-system) (home-page "https://cran.r-project.org/web/packages/chron") (synopsis "Chronological R objects which can handle dates and times") From 80ec1b73d2ca9745ea3b056bbfcecf3c33a4de5f Mon Sep 17 00:00:00 2001 From: Sahithi Yarlagadda Date: Tue, 4 Sep 2018 17:32:26 +0200 Subject: [PATCH 5/8] ui: Add support for colorization. * guix/ui.scm (ansi-color-tables): New variable. (color, colorize-string): New procedures. Signed-off-by: Ricardo Wurmus --- guix/ui.scm | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/guix/ui.scm b/guix/ui.scm index 29c0b2b9ce..f8f2cad69f 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -10,6 +10,8 @@ ;;; Copyright © 2016 Roel Janssen ;;; Copyright © 2016 Benz Schenk ;;; Copyright © 2018 Kyle Meyer +;;; Copyright © 2013, 2014 Free Software Foundation, Inc. +;;; Copyright © 2018 Sahithi Yarlagadda ;;; ;;; This file is part of GNU Guix. ;;; @@ -115,7 +117,8 @@ (define-module (guix ui) guix-warning-port warning info - guix-main)) + guix-main + colorize-string)) ;;; Commentary: ;;; @@ -1622,4 +1625,54 @@ (define (guix-main arg0 . args) (initialize-guix) (apply run-guix args)) +(define color-table + `((CLEAR . "0") + (RESET . "0") + (BOLD . "1") + (DARK . "2") + (UNDERLINE . "4") + (UNDERSCORE . "4") + (BLINK . "5") + (REVERSE . "6") + (CONCEALED . "8") + (BLACK . "30") + (RED . "31") + (GREEN . "32") + (YELLOW . "33") + (BLUE . "34") + (MAGENTA . "35") + (CYAN . "36") + (WHITE . "37") + (ON-BLACK . "40") + (ON-RED . "41") + (ON-GREEN . "42") + (ON-YELLOW . "43") + (ON-BLUE . "44") + (ON-MAGENTA . "45") + (ON-CYAN . "46") + (ON-WHITE . "47"))) + +(define (color . lst) + "Return a string containing the ANSI escape sequence for producing the +requested set of attributes in LST. Unknown attributes are ignored." + (let ((color-list + (remove not + (map (lambda (color) (assq-ref color-table color)) + lst)))) + (if (null? color-list) + "" + (string-append + (string #\esc #\[) + (string-join color-list ";" 'infix) + "m")))) + +(define (colorize-string str . color-list) + "Return a copy of STR colorized using ANSI escape sequences according to the +attributes STR. At the end of the returned string, the color attributes will +be reset such that subsequent output will not have any colors in effect." + (string-append + (apply color color-list) + str + (color 'RESET))) + ;;; ui.scm ends here From 15cc7e6adfa503a1cf168d19a952fae02f91ab2d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Tue, 4 Sep 2018 17:32:27 +0200 Subject: [PATCH 6/8] ui: Add soft port for styling and filtering build output. * guix/ui.scm (build-output-port): New procedure. * guix/scripts/package.scm (%default-options): Print build trace. (guix-package): Use build-output-port. * guix/scripts/build.scm (guix-build): Use build-output-port. Co-authored-by: Sahithi Yarlagadda --- guix/scripts/build.scm | 2 +- guix/scripts/package.scm | 37 +++++++------ guix/ui.scm | 109 ++++++++++++++++++++++++++++++++++++++- 3 files changed, 131 insertions(+), 17 deletions(-) diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 4dd4fbccdf..3fa3c2c20f 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -735,7 +735,7 @@ (define quiet? (parameterize ((current-build-output-port (if quiet? (%make-void-port "w") - (current-error-port)))) + (build-output-port #:verbose? #t)))) (let* ((mode (assoc-ref opts 'build-mode)) (drv (options->derivations store opts)) (urls (map (cut string-append <> "/log") diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index 97bcc699d9..73cbccba3b 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -329,7 +329,8 @@ (define %default-options `((verbosity . 0) (graft? . #t) (substitutes? . #t) - (build-hook? . #t))) + (build-hook? . #t) + (print-build-trace? . #t))) (define (show-help) (display (G_ "Usage: guix package [OPTION]... @@ -930,18 +931,24 @@ (define (handle-argument arg result arg-handler) (arg-handler arg result) (leave (G_ "~A: extraneous argument~%") arg))) - (let ((opts (parse-command-line args %options (list %default-options #f) - #:argument-handler handle-argument))) - (with-error-handling - (or (process-query opts) - (parameterize ((%store (open-connection)) - (%graft? (assoc-ref opts 'graft?))) - (set-build-options-from-command-line (%store) opts) + (define opts + (parse-command-line args %options (list %default-options #f) + #:argument-handler handle-argument)) + (define verbose? + (assoc-ref opts 'verbose?)) - (parameterize ((%guile-for-build - (package-derivation - (%store) - (if (assoc-ref opts 'bootstrap?) - %bootstrap-guile - (canonical-package guile-2.2))))) - (process-actions (%store) opts))))))) + (with-error-handling + (or (process-query opts) + (parameterize ((%store (open-connection)) + (%graft? (assoc-ref opts 'graft?))) + (set-build-options-from-command-line (%store) opts) + + (parameterize ((%guile-for-build + (package-derivation + (%store) + (if (assoc-ref opts 'bootstrap?) + %bootstrap-guile + (canonical-package guile-2.2)))) + (current-build-output-port + (build-output-port #:verbose? verbose?))) + (process-actions (%store) opts)))))) diff --git a/guix/ui.scm b/guix/ui.scm index f8f2cad69f..1bbd37c255 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2018 Kyle Meyer ;;; Copyright © 2013, 2014 Free Software Foundation, Inc. ;;; Copyright © 2018 Sahithi Yarlagadda +;;; Copyright © 2018 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; @@ -118,7 +119,7 @@ (define-module (guix ui) warning info guix-main - colorize-string)) + build-output-port)) ;;; Commentary: ;;; @@ -1675,4 +1676,110 @@ (define (colorize-string str . color-list) str (color 'RESET))) +(define* (build-output-port #:key + (colorize? #t) + verbose? + (port (current-error-port))) + "Return a soft port that processes build output. By default it colorizes +phase announcements and replaces any other output with a spinner." + (define spun? #f) + (define spin! + (let ((steps (circular-list "\\" "|" "/" "-"))) + (lambda () + (match steps + ((first . rest) + (set! steps rest) + (set! spun? #t) ; remember to erase spinner + first))))) + + (define use-color? + (and colorize? + (not (or (getenv "NO_COLOR") + (getenv "INSIDE_EMACS") + (not (isatty? port)))))) + + (define handle-string + (let* ((proc (if use-color? + colorize-string + (lambda (s . _) s))) + (rules `(("^(@ build-started) (.*) (.*)" + #:transform + ,(lambda (m) + (string-append + (proc "Building " 'BLUE 'BOLD) + (match:substring m 2) "\n"))) + ("^(@ build-failed) (.*) (.*)" + #:transform + ,(lambda (m) + (string-append + (proc "Build failed: " 'RED 'BOLD) + (match:substring m 2) "\n"))) + ("^(@ build-succeeded) (.*) (.*)" + #:transform + ,(lambda (m) + (string-append + (proc "Built " 'GREEN 'BOLD) + (match:substring m 2) "\n"))) + ("^(@ substituter-started) (.*) (.*)" + #:transform + ,(lambda (m) + (string-append + (proc "Substituting " 'BLUE 'BOLD) + (match:substring m 2) "\n"))) + ("^(@ substituter-failed) (.*) (.*) (.*)" + #:transform + ,(lambda (m) + (string-append + (proc "Substituter failed: " 'RED 'BOLD) + (match:substring m 2) "\n" + (match:substring m 3) ": " + (match:substring m 4) "\n"))) + ("^(@ substituter-succeeded) (.*)" + #:transform + ,(lambda (m) + (string-append + (proc "Substituted " 'GREEN 'BOLD) + (match:substring m 2) "\n"))) + ("^(starting phase )(.*)" + BLUE GREEN) + ("^(phase)(.*)(succeeded after)(.*)(seconds)(.*)" + GREEN BLUE GREEN BLUE GREEN BLUE) + ("^(phase)(.*)(failed after)(.*)(seconds)(.*)" + RED BLUE RED BLUE RED BLUE)))) + (lambda (str) + (let ((processed + (any (match-lambda + ((pattern #:transform transform) + (and=> (string-match pattern str) + transform)) + ((pattern . colors) + (and=> (string-match pattern str) + (lambda (m) + (let ((substrings + (map (cut match:substring m <>) + (iota (- (match:count m) 1) 1)))) + (string-join (map proc substrings colors) "")))))) + rules))) + (when spun? + (display (string #\backspace) port)) + (if processed + (begin + (display processed port) + (set! spun? #f)) + ;; Print unprocessed line, or replace with spinner + (display (if verbose? str (spin!)) port)))))) + (make-soft-port + (vector + ;; procedure accepting one character for output + (cut write <> port) + ;; procedure accepting a string for output + handle-string + ;; thunk for flushing output + (lambda () (force-output port)) + ;; thunk for getting one character + (const #t) + ;; thunk for closing port (not by garbage collection) + (lambda () (close port))) + "w")) + ;;; ui.scm ends here From ced98c7e89a22c551dd23acd7a1b4f861958d876 Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 9 Sep 2018 17:48:24 -0400 Subject: [PATCH 7/8] gnu: libgd: Fix CVE-2018-{5711,1000222}. * gnu/packages/patches/gd-CVE-2018-1000222.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/gd.scm (gd/fixed): New variable. * gnu/packages/php.scm (gd-for-php)[source]: Use 'gd-CVE-2018-1000222.patch'. --- gnu/local.mk | 1 + gnu/packages/gd.scm | 11 +++ .../patches/gd-CVE-2018-1000222.patch | 87 +++++++++++++++++++ gnu/packages/php.scm | 3 +- 4 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/gd-CVE-2018-1000222.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0407fdc597..374e25165e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -719,6 +719,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcr-disable-failing-tests.patch \ %D%/packages/patches/gcr-fix-collection-tests-to-work-with-gpg-21.patch \ %D%/packages/patches/gd-CVE-2018-5711.patch \ + %D%/packages/patches/gd-CVE-2018-1000222.patch \ %D%/packages/patches/gd-fix-tests-on-i686.patch \ %D%/packages/patches/gd-freetype-test-failure.patch \ %D%/packages/patches/gdm-CVE-2018-14424.patch \ diff --git a/gnu/packages/gd.scm b/gnu/packages/gd.scm index c374695524..327a1f1545 100644 --- a/gnu/packages/gd.scm +++ b/gnu/packages/gd.scm @@ -39,6 +39,7 @@ (define-module (gnu packages gd) (define-public gd (package (name "gd") + (replacement gd/fixed) ;; Note: With libgd.org now pointing to github.com, genuine old ;; tarballs are no longer available. Notably, versions 2.0.x are ;; missing. @@ -91,6 +92,16 @@ (define-public gd "See COPYING file in the distribution.")) (properties '((cpe-name . "libgd"))))) +(define-public gd/fixed + (hidden-package + (package + (inherit gd) + (source (origin + (inherit (package-source gd)) + (patches (append (origin-patches (package-source gd)) + (search-patches "gd-CVE-2018-5711.patch" + "gd-CVE-2018-1000222.patch")))))))) + (define-public perl-gd (package (name "perl-gd") diff --git a/gnu/packages/patches/gd-CVE-2018-1000222.patch b/gnu/packages/patches/gd-CVE-2018-1000222.patch new file mode 100644 index 0000000000..7e94295bb6 --- /dev/null +++ b/gnu/packages/patches/gd-CVE-2018-1000222.patch @@ -0,0 +1,87 @@ +Fix CVE-2018-1000222: + +https://github.com/libgd/libgd/issues/447 +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000222 + +Patch copied from upstream source repository: + +https://github.com/libgd/libgd/commit/4b1e18a00ce7c4b7e6919c3b3109a034393b805a + +From 4b1e18a00ce7c4b7e6919c3b3109a034393b805a Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Sat, 14 Jul 2018 13:54:08 -0400 +Subject: [PATCH] bmp: check return value in gdImageBmpPtr + +Closes #447. + +(cherry picked from commit ac16bdf2d41724b5a65255d4c28fb0ec46bc42f5) +--- + src/gd_bmp.c | 17 ++++++++++++++--- + 1 file changed, 14 insertions(+), 3 deletions(-) + +diff --git a/src/gd_bmp.c b/src/gd_bmp.c +index ccafdcd..d625da1 100644 +--- a/src/gd_bmp.c ++++ b/src/gd_bmp.c +@@ -48,6 +48,8 @@ static int bmp_read_4bit(gdImagePtr im, gdIOCtxPtr infile, bmp_info_t *info, bmp + static int bmp_read_8bit(gdImagePtr im, gdIOCtxPtr infile, bmp_info_t *info, bmp_hdr_t *header); + static int bmp_read_rle(gdImagePtr im, gdIOCtxPtr infile, bmp_info_t *info); + ++static int _gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression); ++ + #define BMP_DEBUG(s) + + static int gdBMPPutWord(gdIOCtx *out, int w) +@@ -88,8 +90,10 @@ BGD_DECLARE(void *) gdImageBmpPtr(gdImagePtr im, int *size, int compression) + void *rv; + gdIOCtx *out = gdNewDynamicCtx(2048, NULL); + if (out == NULL) return NULL; +- gdImageBmpCtx(im, out, compression); +- rv = gdDPExtractData(out, size); ++ if (!_gdImageBmpCtx(im, out, compression)) ++ rv = gdDPExtractData(out, size); ++ else ++ rv = NULL; + out->gd_free(out); + return rv; + } +@@ -142,6 +146,11 @@ BGD_DECLARE(void) gdImageBmp(gdImagePtr im, FILE *outFile, int compression) + compression - whether to apply RLE or not. + */ + BGD_DECLARE(void) gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression) ++{ ++ _gdImageBmpCtx(im, out, compression); ++} ++ ++static int _gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression) + { + int bitmap_size = 0, info_size, total_size, padding; + int i, row, xpos, pixel; +@@ -149,6 +158,7 @@ BGD_DECLARE(void) gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression) + unsigned char *uncompressed_row = NULL, *uncompressed_row_start = NULL; + FILE *tmpfile_for_compression = NULL; + gdIOCtxPtr out_original = NULL; ++ int ret = 1; + + /* No compression if its true colour or we don't support seek */ + if (im->trueColor) { +@@ -326,6 +336,7 @@ BGD_DECLARE(void) gdImageBmpCtx(gdImagePtr im, gdIOCtxPtr out, int compression) + out_original = NULL; + } + ++ ret = 0; + cleanup: + if (tmpfile_for_compression) { + #ifdef _WIN32 +@@ -339,7 +350,7 @@ cleanup: + if (out_original) { + out_original->gd_free(out_original); + } +- return; ++ return ret; + } + + static int compress_row(unsigned char *row, int length) +-- +2.18.0 + diff --git a/gnu/packages/php.scm b/gnu/packages/php.scm index 121ffab767..4981c60554 100644 --- a/gnu/packages/php.scm +++ b/gnu/packages/php.scm @@ -57,7 +57,8 @@ (define gd-for-php (inherit (package-source gd)) (patches (search-patches "gd-fix-tests-on-i686.patch" "gd-freetype-test-failure.patch" - "gd-CVE-2018-5711.patch")))))) + "gd-CVE-2018-5711.patch" + "gd-CVE-2018-1000222.patch")))))) (define-public php (package From d4bd2453ec6c2342d071cb9a9708280cf45b23ca Mon Sep 17 00:00:00 2001 From: Leo Famulari Date: Sun, 9 Sep 2018 16:38:22 -0400 Subject: [PATCH 8/8] gnu: certbot: Update to 0.27.1. * gnu/packages/tls.scm (python-acme): Update to 0.27.1. [arguments]: Use invoke. (certbot): Update to 0.27.1. [native-inputs]: Use python-sphinx-1.6. --- gnu/packages/tls.scm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index e42b6dfc6c..5e49509ddd 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -518,20 +518,20 @@ (define-public python-acme (package (name "python-acme") ;; Remember to update the hash of certbot when updating python-acme. - (version "0.26.1") + (version "0.27.1") (source (origin (method url-fetch) (uri (pypi-uri "acme" version)) (sha256 (base32 - "1glhwqj6yyb11820lspgd0gl5dqdfljn43kcy4ar5caccpsbbrw6")))) + "142gynlfx7yv0sdba3gpdxlnhg9chhz7hpdxdrp630z17h1bk9ri")))) (build-system python-build-system) (arguments `(#:phases (modify-phases %standard-phases (add-after 'build 'build-documentation (lambda _ - (zero? (system* "make" "-C" "docs" "man" "info")))) + (invoke "make" "-C" "docs" "man" "info"))) (add-after 'install 'install-documentation (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -575,7 +575,7 @@ (define-public certbot (uri (pypi-uri name version)) (sha256 (base32 - "0rnayqhdabm0rljxh76blqd11h51dqnwlwvql0j6xwzpccym30s9")))) + "0anh3vjy9sif1bkp25nj76ii37xx8hh0igcx60ppag12xlabsw1m")))) (build-system python-build-system) (arguments `(,@(substitute-keyword-arguments (package-arguments python-acme) @@ -596,7 +596,7 @@ (define-public certbot `(("python-nose" ,python-nose) ("python-mock" ,python-mock) ;; For documentation - ("python-sphinx" ,python-sphinx) + ("python-sphinx" ,python-sphinx-1.6) ("python-sphinx-rtd-theme" ,python-sphinx-rtd-theme) ("python-sphinx-repoze-autointerface" ,python-sphinx-repoze-autointerface) ("python-sphinxcontrib-programoutput" ,python-sphinxcontrib-programoutput)