Kei Kebreau <[email protected]> writes: > [ Unknown signature status ] > ng0 <[email protected]> writes: > >> * gnu/packages/vim.scm (vim-full): New variable. >> * gnu/packages/patches/vim-8.0.0003.patch: New file. >> * gnu/packages/patches/vim-8.0.0004.patch: New file. >> * gnu/packages/patches/vim-8.0.0005.patch: New file. >> * gnu/local.mk (dist_patch_DATA): Add patches. >> --- >> gnu/local.mk | 3 ++ >> gnu/packages/patches/vim-8.0.0003.patch | 87 >> +++++++++++++++++++++++++++++++++ >> gnu/packages/patches/vim-8.0.0004.patch | 60 +++++++++++++++++++++++ >> gnu/packages/patches/vim-8.0.0005.patch | 45 +++++++++++++++++ >> gnu/packages/vim.scm | 81 ++++++++++++++++++++++++++++++ >> 5 files changed, 276 insertions(+) >> create mode 100644 gnu/packages/patches/vim-8.0.0003.patch >> create mode 100644 gnu/packages/patches/vim-8.0.0004.patch >> create mode 100644 gnu/packages/patches/vim-8.0.0005.patch >> >> diff --git a/gnu/local.mk b/gnu/local.mk >> index 526756f..79c1326 100644 >> --- a/gnu/local.mk >> +++ b/gnu/local.mk >> @@ -874,6 +874,9 @@ dist_patch_DATA = >> \ >> %D%/packages/patches/util-linux-tests.patch \ >> %D%/packages/patches/upower-builddir.patch \ >> %D%/packages/patches/valgrind-enable-arm.patch \ >> + %D%/packages/patches/vim-8.0.0003.patch \ >> + %D%/packages/patches/vim-8.0.0004.patch \ >> + %D%/packages/patches/vim-8.0.0005.patch \ >> %D%/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch >> \ >> %D%/packages/patches/vorbis-tools-CVE-2014-9640.patch \ >> %D%/packages/patches/vorbis-tools-CVE-2015-6749.patch \ >> diff --git a/gnu/packages/patches/vim-8.0.0003.patch >> b/gnu/packages/patches/vim-8.0.0003.patch >> new file mode 100644 >> index 0000000..11e9c91 >> --- /dev/null >> +++ b/gnu/packages/patches/vim-8.0.0003.patch >> @@ -0,0 +1,87 @@ >> +To: [email protected] >> +Subject: Patch 8.0.0003 >> +Fcc: outbox >> +From: Bram Moolenaar <[email protected]> >> +Mime-Version: 1.0 >> +Content-Type: text/plain; charset=UTF-8 >> +Content-Transfer-Encoding: 8bit >> +------------ >> + >> +Patch 8.0.0003 >> +Problem: getwinvar() returns wrong Value of boolean and number options, >> + especially non big endian systems. (James McCoy) >> +Solution: Cast the pointer to long or int. (closes #1060) >> +Files: src/option.c, src/testdir/test_bufwintabinfo.vim >> + >> + >> +*** vim80/src/option.c 2016-09-02 19:26:03.000000000 +0200 >> +--- vim80/src/option.c 2016-09-12 19:20:38.051099762 +0200 >> +*************** >> +*** 12363,12370 **** >> + { >> + if (opt->flags & P_STRING) >> + dict_add_nr_str(d, opt->fullname, 0L, *(char_u **)varp); >> + else >> +! dict_add_nr_str(d, opt->fullname, *varp, NULL); >> + } >> + } >> + } >> +--- 12363,12372 ---- >> + { >> + if (opt->flags & P_STRING) >> + dict_add_nr_str(d, opt->fullname, 0L, *(char_u **)varp); >> ++ else if (opt->flags & P_NUM) >> ++ dict_add_nr_str(d, opt->fullname, *(long *)varp, NULL); >> + else >> +! dict_add_nr_str(d, opt->fullname, *(int *)varp, NULL); >> + } >> + } >> + } >> +*** vim80/src/testdir/test_bufwintabinfo.vim 2016-08-27 >> 21:14:58.000000000 +0200 >> +--- vim80/src/testdir/test_bufwintabinfo.vim 2016-09-12 >> 19:31:06.346360420 +0200 >> +*************** >> +*** 87,95 **** >> +--- 87,103 ---- >> + endfunc >> + >> + function Test_get_win_options() >> ++ if has('folding') >> ++ set foldlevel=999 >> ++ endif >> ++ set list >> + let opts = getwinvar(1, '&') >> + call assert_equal(v:t_dict, type(opts)) >> + call assert_equal(0, opts.linebreak) >> ++ call assert_equal(1, opts.list) >> ++ if has('folding') >> ++ call assert_equal(999, opts.foldlevel) >> ++ endif >> + if has('signs') >> + call assert_equal('auto', opts.signcolumn) >> + endif >> +*************** >> +*** 97,103 **** >> +--- 105,116 ---- >> + let opts = gettabwinvar(1, 1, '&') >> + call assert_equal(v:t_dict, type(opts)) >> + call assert_equal(0, opts.linebreak) >> ++ call assert_equal(1, opts.list) >> + if has('signs') >> + call assert_equal('auto', opts.signcolumn) >> + endif >> ++ set list& >> ++ if has('folding') >> ++ set foldlevel=0 >> ++ endif >> + endfunc >> +*** vim80/src/version.c 2016-09-12 16:30:42.348454179 +0200 >> +--- vim80/src/version.c 2016-09-12 19:24:10.184148642 +0200 >> +*************** >> +*** 766,767 **** >> +--- 766,769 ---- >> + { /* Add new patch number below this line */ >> ++ /**/ >> ++ 3, >> + /**/ >> + >> +-- >> diff --git a/gnu/packages/patches/vim-8.0.0004.patch >> b/gnu/packages/patches/vim-8.0.0004.patch >> new file mode 100644 >> index 0000000..5d4071b >> --- /dev/null >> +++ b/gnu/packages/patches/vim-8.0.0004.patch >> @@ -0,0 +1,60 @@ >> +To: [email protected] >> +Subject: Patch 8.0.0004 >> +Fcc: outbox >> +From: Bram Moolenaar <[email protected]> >> +Mime-Version: 1.0 >> +Content-Type: text/plain; charset=UTF-8 >> +Content-Transfer-Encoding: 8bit >> +------------ >> + >> +Patch 8.0.0004 >> +Problem: A string argument for function() that is not a function name >> + results in an error message with NULL. (Christian Brabandt) >> +Solution: Use the argument for the error message. >> +Files: src/evalfunc.c, src/testdir/test_expr.vim >> + >> + >> +*** vim80/src/evalfunc.c 2016-09-10 13:39:30.000000000 +0200 >> +--- vim80/src/evalfunc.c 2016-09-13 23:04:02.917786784 +0200 >> +*************** >> +*** 3612,3618 **** >> + >> + if (s == NULL || *s == NUL || (use_string && VIM_ISDIGIT(*s)) >> + || (is_funcref && trans_name == NULL)) >> +! EMSG2(_(e_invarg2), s); >> + /* Don't check an autoload name for existence here. */ >> + else if (trans_name != NULL && (is_funcref >> + ? find_func(trans_name) == NULL >> +--- 3612,3618 ---- >> + >> + if (s == NULL || *s == NUL || (use_string && VIM_ISDIGIT(*s)) >> + || (is_funcref && trans_name == NULL)) >> +! EMSG2(_(e_invarg2), use_string ? get_tv_string(&argvars[0]) : s); >> + /* Don't check an autoload name for existence here. */ >> + else if (trans_name != NULL && (is_funcref >> + ? find_func(trans_name) == NULL >> +*** vim80/src/testdir/test_expr.vim 2016-09-04 21:41:26.000000000 +0200 >> +--- vim80/src/testdir/test_expr.vim 2016-09-13 23:03:20.426385157 +0200 >> +*************** >> +*** 439,444 **** >> +--- 439,447 ---- >> + let s:fref = function(s:f) >> + call assert_equal(v:t_string, s:fref('x')) >> + call assert_fails("call function('s:f')", 'E700:') >> ++ >> ++ call assert_fails("call function('foo()')", 'E475:') >> ++ call assert_fails("call function('foo()')", 'foo()') >> + endfunc >> + >> + func Test_funcref() >> +*** vim80/src/version.c 2016-09-12 19:51:07.689659657 +0200 >> +--- vim80/src/version.c 2016-09-14 22:06:19.364036465 +0200 >> +*************** >> +*** 766,767 **** >> +--- 766,769 ---- >> + { /* Add new patch number below this line */ >> ++ /**/ >> ++ 4, >> + /**/ >> + >> +-- >> diff --git a/gnu/packages/patches/vim-8.0.0005.patch >> b/gnu/packages/patches/vim-8.0.0005.patch >> new file mode 100644 >> index 0000000..ee2b831 >> --- /dev/null >> +++ b/gnu/packages/patches/vim-8.0.0005.patch >> @@ -0,0 +1,45 @@ >> +To: [email protected] >> +Subject: Patch 8.0.0005 >> +Fcc: outbox >> +From: Bram Moolenaar <[email protected]> >> +Mime-Version: 1.0 >> +Content-Type: text/plain; charset=UTF-8 >> +Content-Transfer-Encoding: 8bit >> +------------ >> + >> +Patch 8.0.0005 >> +Problem: Netbeans test fails with Python 3. (Jonathonf) >> +Solution: Encode the string before sending it. (closes #1070) >> +Files: src/testdir/test_netbeans.py >> + >> + >> +*** vim80/src/testdir/test_netbeans.py 2016-09-09 15:27:58.000000000 >> +0200 >> +--- vim80/src/testdir/test_netbeans.py 2016-09-14 22:22:03.574860055 >> +0200 >> +*************** >> +*** 52,58 **** >> + return >> + >> + if len(response) > 0: >> +! self.request.sendall(response) >> + # Write the respoinse into the file, so that the test can >> knows >> + # the command was sent. >> + with open("Xnetbeans", "a") as myfile: >> +--- 52,58 ---- >> + return >> + >> + if len(response) > 0: >> +! self.request.sendall(response.encode('utf-8')) >> + # Write the respoinse into the file, so that the test can >> knows >> + # the command was sent. >> + with open("Xnetbeans", "a") as myfile: >> +*** vim80/src/version.c 2016-09-14 22:16:09.863803610 +0200 >> +--- vim80/src/version.c 2016-09-14 22:22:39.922351477 +0200 >> +*************** >> +*** 766,767 **** >> +--- 766,769 ---- >> + { /* Add new patch number below this line */ >> ++ /**/ >> ++ 5, >> + /**/ >> + >> +-- >> diff --git a/gnu/packages/vim.scm b/gnu/packages/vim.scm >> index b1ee527..1b1fe60 100644 >> --- a/gnu/packages/vim.scm >> +++ b/gnu/packages/vim.scm >> @@ -1,6 +1,7 @@ >> ;;; GNU Guix --- Functional package management for GNU >> ;;; Copyright © 2013 Cyril Roelandt <[email protected]> >> ;;; Copyright © 2016 Efraim Flashner <[email protected]> >> +;;; Copyright © 2016 ng0 <[email protected]> >> ;;; >> ;;; This file is part of GNU Guix. >> ;;; >> @@ -26,6 +27,21 @@ >> #:use-module (gnu packages gawk) >> #:use-module (gnu packages ncurses) >> #:use-module (gnu packages perl) >> + #:use-module (gnu packages ruby) >> + #:use-module (gnu packages acl) >> + #:use-module (gnu packages attr) >> + #:use-module (gnu packages fontutils) >> + #:use-module (gnu packages gettext) >> + #:use-module (gnu packages glib) >> + #:use-module (gnu packages gtk) >> + #:use-module (gnu packages image) >> + #:use-module (gnu packages linux) >> + #:use-module (gnu packages lua) >> + #:use-module (gnu packages pkg-config) >> + #:use-module (gnu packages python) >> + #:use-module (gnu packages tcl) >> + #:use-module (gnu packages xdisorg) >> + #:use-module (gnu packages xorg) >> #:use-module (gnu packages admin) ; For GNU hostname >> #:use-module (gnu packages shells)) >> >> @@ -79,3 +95,68 @@ that many consider it an entire IDE. It's not just for >> programmers, though. >> Vim is perfect for all kinds of text editing, from composing email to >> editing >> configuration files.") >> (license license:vim))) >> + >> +(define-public vim-full >> + (package >> + (inherit vim) >> + (name "vim-full") >> + (version (package-version vim)) >> + (source >> + (origin >> + (method url-fetch) >> + (uri (string-append "ftp://ftp.vim.org/pub/vim/unix/vim-" >> + version ".tar.bz2")) >> + (sha256 >> + (base32 >> + "1s34rf8089klsbdx5l0iw7vjymir0kzfrx8wb30s31wygnq29axc")) >> + ;; Patches need to be applied sequentially. 8.0 is the release of >> + ;; vim version 8.0.0002 so we start at 8.0.0003 >> + (patches (search-patches "vim-8.0.0003.patch" >> + "vim-8.0.0004.patch" >> + "vim-8.0.0005.patch")))) >> + (arguments >> + `(#:configure-flags >> + (list (string-append "--with-lua-prefix=" >> + (assoc-ref %build-inputs "lua")) >> + "--with-features=huge" >> + "--enable-python3interp=yes" >> + "--enable-perlinterp=yes" >> + "--enable-rubyinterp=yes" >> + "--enable-tclinterp=yes" >> + "--enable-luainterp=yes" >> + "--enable-cscope" >> + "--enable-sniff" >> + "--enable-multibyte" >> + "--enable-xim" >> + "--disable-selinux" >> + "--enable-gui") >> + ,@(package-arguments vim))) >> + (native-inputs >> + `(("pkg-config" ,pkg-config))) >> + (inputs >> + `(("acl" ,acl) >> + ("atk" ,atk) >> + ("attr" ,attr) >> + ("cairo" ,cairo) >> + ("fontconfig" ,fontconfig) >> + ("freetype" ,freetype) >> + ("gdk-pixbuf" ,gdk-pixbuf) >> + ("gettext" ,gnu-gettext) >> + ("glib" ,glib) >> + ("gpm" ,gpm) >> + ("gtk" ,gtk+-2) >> + ("harfbuzz" ,harfbuzz) >> + ("libice" ,libice) >> + ("libpng" ,libpng) >> + ("libsm" ,libsm) >> + ("libx11" ,libx11) >> + ("libxdmcp" ,libxdmcp) >> + ("libxt" ,libxt) >> + ("libxpm" ,libxpm) >> + ("lua" ,lua) >> + ("pango" ,pango) >> + ("pixman" ,pixman) >> + ("python" ,python) >> + ("ruby" ,ruby) >> + ("tcl" ,tcl) >> + ,@(package-inputs vim))))) > > "guix lint" complains about the patches not starting with the package > name ("vim-full" in this case), but otherwise everything looks good.
Okay, I will rename them.
