guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] gnu: Add vim-full.


From: Kei Kebreau
Subject: Re: [PATCH] gnu: Add vim-full.
Date: Mon, 17 Oct 2016 14:37:47 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

ng0 <address@hidden> 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: address@hidden
> +Subject: Patch 8.0.0003
> +Fcc: outbox
> +From: Bram Moolenaar <address@hidden>
> +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: address@hidden
> +Subject: Patch 8.0.0004
> +Fcc: outbox
> +From: Bram Moolenaar <address@hidden>
> +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: address@hidden
> +Subject: Patch 8.0.0005
> +Fcc: outbox
> +From: Bram Moolenaar <address@hidden>
> +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 <address@hidden>
>  ;;; Copyright © 2016 Efraim Flashner <address@hidden>
> +;;; Copyright © 2016 ng0 <address@hidden>
>  ;;;
>  ;;; 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.

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]