diff mbox series

[bug#38799,v2] gnu: vim: Update to 8.2.0066.

Message ID 20191231202134.o7npk5xcw3w46fw5@zdrowyportier.kadziolka.net
State Accepted
Headers show
Series [bug#38799,v2] gnu: vim: Update to 8.2.0066. | expand

Commit Message

Maja Kądziołka Dec. 31, 2019, 8:21 p.m. UTC
Vim pushed some new commits that look desirable -- 8.2.0063 seems to
have fixed a crash -- so here's a new patch with a bumped version &
hash.

--- CUT HERE ---
* gnu/packages/vim.scm (vim): Update to 8.2.0066.
[arguments]: Work around new build-container-related test failures.
[native-inputs]: Add tzdata to make a test pass.
---
 gnu/packages/vim.scm | 61 +++++++++++++++++++++++++++++++-------------
 1 file changed, 43 insertions(+), 18 deletions(-)

Comments

ashish.is--- via Guix-patches" via Dec. 31, 2019, 10:49 p.m. UTC | #1
Jakub,

Jakub Kądziołka 写道:
> Vim pushed some new commits that look desirable -- 8.2.0063 
> seems to
> have fixed a crash -- so here's a new patch with a bumped 
> version &
> hash.

Thank you!  I've made only tiny cosmetic changes:

- Added a copyright line for you as discussed on IRC.

- I agree with your source indentation fixes, but they make this 
  patch less clear.  Let's keep them for when we ever switch to 
  URL-FETCH, for example.

- Shortened the MegaComment — it was very clear (thank you!) but 
  longer than is customary.

- The awkward indentation of the tzdata-for-tests comment bothered 
  me. I replaced it with a less detailed but, again, customary 
  variant. It's not like something will be silently missing if 
  anyone tries removing it: the test suite will fail, loudly.

Linted and pushed as 9efcc4948143a845355f7869fe05dbcca0f74a34. 
Happy 2020!

Kind regards,

T G-R
diff mbox series

Patch

diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm
index b33fe42ceb..efbe625998 100644
--- a/gnu/packages/vim.scm
+++ b/gnu/packages/vim.scm
@@ -67,16 +67,16 @@ 
 (define-public vim
   (package
     (name "vim")
-    (version "8.1.0644")
+    (version "8.2.0066")
     (source (origin
-             (method git-fetch)
-             (uri (git-reference
+              (method git-fetch)
+              (uri (git-reference
                     (url "https://github.com/vim/vim")
                     (commit (string-append "v" version))))
-             (file-name (git-file-name name version))
-             (sha256
-              (base32
-               "1xksb2v8rw1zgrd5fwqvrh44lf277k85sad2y4ia1z17y7i8j2fl"))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1yrmbqfwyj2ri61ahgzrglznpy1p6f1ldqkazhyxpwl4azk4n7zx"))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
@@ -92,26 +92,51 @@ 
                             "src/testdir/test_terminal.vim")
                (("/bin/sh") (which "sh")))
              #t))
+         (add-before 'check 'set-tzdir
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; One of the tests tests timezone-dependent functions.
+             (setenv "TZDIR"
+                     (string-append (assoc-ref inputs "tzdata")
+                                    "/share/zoneinfo"))
+             #t))
          (add-before 'check 'patch-failing-tests
            (lambda _
-             ;; XXX A single test fails with “Can't create file /dev/stdout” (at
-             ;; Test_writefile_sync_dev_stdout line 5) while /dev/stdout exists.
-             (substitute* "src/testdir/test_writefile.vim"
-               (("/dev/stdout") "a-regular-file"))
+             ;; This test fails when run in the build container:
+             ;; When handling swap files, Vim needs to check whether a process
+             ;; with a specific PID exists. This is done with kill(pid, 0),
+             ;; which gives similar enough results when the process exists, but
+             ;; Vim does not have permission to send signals to it.
+             ;;
+             ;; This is used in the test by modifying a swap file to say
+             ;; it came from PID 1. This works in a normal environment, since
+             ;; PID 1 usually runs as root, and the test suite does not.
+             ;; The test even contains a check for running as root, since
+             ;; that's one of the situation where the test fails.
+             ;;
+             ;; However, in the build container, PID 1 isn't root, but the same
+             ;; user as the test suite itself. As such, we skip this test.
+             ;; An alternative approach would be to patch the PID used to a
+             ;; random 32-bit value and hope it never shows up in the test
+             ;; environment.
+             (substitute* "src/testdir/test_swap.vim"
+               (("if !IsRoot\\(\\)") "if 0"))
 
-             ;; XXX: This test fails when run in the build container:
-             ;; <https://github.com/vim/vim/issues/3348>.
-             (substitute* "src/testdir/test_search.vim"
-               ((".*'Test_incsearch_substitute_03'.*" all)
-                (string-append "\"" all "\n")))
+             ;; This test checks how the terminal looks after executing some
+             ;; actions. The path of the bash binary is shown, which results in
+             ;; a difference being detected. Patching the expected result is
+             ;; non-trivial due to the special format used, so skip the test.
+             (substitute* "src/testdir/test_terminal.vim"
+               ((".*Test_terminal_postponed_scrollback.*" line)
+                (string-append line "return\n")))
              #t)))))
     (inputs
      `(("gawk" ,gawk)
        ("ncurses" ,ncurses)
        ("perl" ,perl)
-       ("tcsh" ,tcsh))) ; For runtime/tools/vim32
+       ("tcsh" ,tcsh)))                 ; For runtime/tools/vim32
     (native-inputs
-     `(("libtool" ,libtool)))
+     `(("libtool" ,libtool)
+       ("tzdata" ,tzdata-for-tests))) ; For Test_strftime in test_functions.vim
     (home-page "https://www.vim.org/")
     (synopsis "Text editor based on vi")
     (description