From a8b0556ea1e439c89dc1ba33c8864e8b9b811f08 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 14 Jan 2019 22:24:01 +0100 Subject: gnu: libssh: Update to 0.8.6. * gnu/packages/patches/libssh-hostname-parser-bug.patch: Remove. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/ssh.scm (libssh): Update to 0.8.6. [source](patches): Remove. [arguments]: Add #:phases. (guile-ssh)[source](modules, snippet]: New fields. --- gnu/local.mk | 1 - .../patches/libssh-hostname-parser-bug.patch | 17 ----------- gnu/packages/ssh.scm | 34 ++++++++++++++++++---- 3 files changed, 29 insertions(+), 23 deletions(-) delete mode 100644 gnu/packages/patches/libssh-hostname-parser-bug.patch diff --git a/gnu/local.mk b/gnu/local.mk index e5cc1172cd..8859398276 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -933,7 +933,6 @@ dist_patch_DATA = \ %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \ %D%/packages/patches/libsndfile-CVE-2017-8362.patch \ %D%/packages/patches/libsndfile-CVE-2017-12562.patch \ - %D%/packages/patches/libssh-hostname-parser-bug.patch \ %D%/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch \ %D%/packages/patches/libtar-CVE-2013-4420.patch \ %D%/packages/patches/libtheora-config-guess.patch \ diff --git a/gnu/packages/patches/libssh-hostname-parser-bug.patch b/gnu/packages/patches/libssh-hostname-parser-bug.patch deleted file mode 100644 index de2336e86d..0000000000 --- a/gnu/packages/patches/libssh-hostname-parser-bug.patch +++ /dev/null @@ -1,17 +0,0 @@ -It does not handle the case for the unsupported opcode (-1) -which would cause a segfault when accessing the "seen" array. - -diff --git a/src/config.c b/src/config.c -index c5313ec8..72e07639 100644 ---- a/src/config.c -+++ b/src/config.c -@@ -218,7 +218,8 @@ static int ssh_config_parse_line(ssh_session session, const char *line, - } - - opcode = ssh_config_get_opcode(keyword); -- if (*parsing == 1 && opcode != SOC_HOST) { -+ if (*parsing == 1 && opcode != SOC_HOST && -+ opcode > SOC_UNSUPPORTED && opcode < SOC_END) { - if (seen[opcode] != 0) { - return 0; - } diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 5c954eae35..ce77a1aa60 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès ;;; Copyright © 2013, 2014 Andreas Enge ;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2015, 2016, 2018 Efraim Flashner @@ -67,22 +67,31 @@ (define-public libssh (package (name "libssh") - (version "0.7.7") + (version "0.8.6") (source (origin (method git-fetch) (uri (git-reference (url "https://git.libssh.org/projects/libssh.git") (commit (string-append "libssh-" version)))) - (patches (search-patches "libssh-hostname-parser-bug.patch")) (sha256 (base32 - "07adxvhmnaq2l7sq7sn4sjlikbm1zdicq8lavq5yfila6jbx9z1y")) + "0rq57gpmdawljx7hqya4ipzsfpcbr31yy60kl5qv66krc9wimqda")) (file-name (git-file-name name version)))) (build-system cmake-build-system) (outputs '("out" "debug")) (arguments '(#:configure-flags '("-DWITH_GCRYPT=ON") + #:phases (modify-phases %standard-phases + (add-before 'configure 'avoid-werror + (lambda _ + ;; Avoid '-Werror'. Presumably this works fine with + ;; gcc@8 on x86_64 but leads to errors with our older + ;; compiler. + (substitute* "CompilerChecks.cmake" + (("-Werror=") "-W")) + #t))) + ;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite. #:tests? #f)) (inputs `(("zlib" ,zlib) @@ -235,7 +244,22 @@ Additionally, various channel-specific options can be negotiated.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1g2jzcg1p25zrkx06j160qb8bgcwa3001ys4q02496xs61pvywqk")))) + "1g2jzcg1p25zrkx06j160qb8bgcwa3001ys4q02496xs61pvywqk")) + (modules '((guix build utils))) + (snippet + '(begin + ;; libssh >= 0.8.0 no longer provides libssh_threads: see + ;; . + (substitute* "libguile-ssh/Makefile.am" + (("-lssh_threads") "")) + + ;; This test would wrongfully pick DSS keys when running on + ;; libssh >= 0.8.0, which fails: + ;; . + (substitute* "tests/server.scm" + (("= %libssh-minor-version 7") + ">= %libssh-minor-version 7")) + #t)))) (build-system gnu-build-system) (outputs '("out" "debug")) (arguments -- cgit v1.2.3