From patchwork Sat Oct 15 20:38:41 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: non such X-Patchwork-Id: 16535 Received: (qmail 68446 invoked by uid 89); 15 Oct 2016 20:39:28 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.99.2 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.3 required=5.0 tests=BAYES_00, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 spammy=Solution, Mime-Version, MimeVersion, D*googlegroups.com X-Spam-Status: No, score=-2.3 required=5.0 tests=BAYES_00, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-HELO: lists.gnu.org Received: from lists.gnu.org (HELO lists.gnu.org) (208.118.235.17) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 15 Oct 2016 20:39:17 +0000 Received: from localhost ([::1]:53173 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bvVjg-0000ml-BT for patchwork@sourceware.org; Sat, 15 Oct 2016 16:39:16 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45422) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bvVjY-0000ku-JR for guix-devel@gnu.org; Sat, 15 Oct 2016 16:39:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bvVjV-0004x4-4X for guix-devel@gnu.org; Sat, 15 Oct 2016 16:39:08 -0400 Received: from aibo.runbox.com ([91.220.196.211]:52745) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1bvVjU-0004wk-Qd for guix-devel@gnu.org; Sat, 15 Oct 2016 16:39:05 -0400 Received: from [10.9.9.210] (helo=mailfront10.runbox.com) by bars.runbox.com with esmtp (Exim 4.71) (envelope-from ) id 1bvVjT-0002kz-PP for guix-devel@gnu.org; Sat, 15 Oct 2016 22:39:03 +0200 Received: from xd9bb871c.dyn.telefonica.de ([217.187.135.28] helo=localhost) by mailfront10.runbox.com with esmtpsa (uid:892961 ) (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) id 1bvVjD-0006Kx-IS; Sat, 15 Oct 2016 22:38:47 +0200 From: ng0 To: guix-devel@gnu.org Subject: [PATCH] gnu: Add vim-full. Date: Sat, 15 Oct 2016 20:38:41 +0000 Message-Id: <20161015203841.19904-2-ng0@we.make.ritual.n0.is> X-Mailer: git-send-email 2.10.1 In-Reply-To: <20161015203841.19904-1-ng0@we.make.ritual.n0.is> References: <20161015203841.19904-1-ng0@we.make.ritual.n0.is> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 91.220.196.211 X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+patchwork=sourceware.org@gnu.org Sender: "Guix-devel" * 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 | 82 +++++++++++++++++++++++++++++++ 5 files changed, 277 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: vim_dev@googlegroups.com +Subject: Patch 8.0.0003 +Fcc: outbox +From: Bram Moolenaar +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: vim_dev@googlegroups.com +Subject: Patch 8.0.0004 +Fcc: outbox +From: Bram Moolenaar +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: vim_dev@googlegroups.com +Subject: Patch 8.0.0005 +Fcc: outbox +From: Bram Moolenaar +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..58ea3e1 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 ;;; Copyright © 2016 Efraim Flashner +;;; Copyright © 2016 ng0 ;;; ;;; 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,69 @@ 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-wrapper) + ("python" ,python-2) + ("ruby" ,ruby) + ("tcl" ,tcl) + ,@(package-inputs vim)))))