From 6bb164562cc0d4f8c975e641fb991576ca8fccd2 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Thu, 16 Jun 2022 06:32:53 +0000 Subject: [PATCH] Auto sync2gitlab import of vim-8.0.1763-19.el8_6.4.src.rpm --- .gitignore | 7 + ...an-execute-shell-commands-in-rvim-th.patch | 461 ++++ ...ource-command-doesn-t-check-for-the-.patch | 16 + ...llegal-memory-access-if-buffer-name-.patch | 35 + ...llegal-memory-access-when-C-indentin.patch | 34 + ...uffer-overflow-with-long-help-argume.patch | 14 + ...h-8.2.3949-using-freed-memory-with-V.patch | 45 + ...oing-beyond-the-end-of-the-line-with.patch | 38 + ...lock-insert-goes-over-the-end-of-the.patch | 95 + ...151-reading-beyond-the-end-of-a-line.patch | 46 + ...llegal-memory-access-with-large-tabs.patch | 12 + ...llegal-memory-access-when-copying-li.patch | 33 + ...llegal-memory-access-with-bracketed-.patch | 85 + ...sing-freed-memory-when-substitute-wi.patch | 51 + ...sing-buffer-line-after-it-has-been-f.patch | 22 + ...can-add-invalid-bytes-with-spellgood.patch | 57 + ...railing-backslash-may-cause-reading-.patch | 15 + ...emory-access-error-when-substitute-e.patch | 57 + ...ubstitute-overwrites-allocated-buffe.patch | 120 + ...ursor-position-may-be-invalid-after-.patch | 85 + Changelog.rpm | 430 +++ EMPTY | 1 - macros.vim | 1 + sources | 7 + spec-template | 42 + spec-template.new | 35 + vim-7.0-fixkeys.patch | 25 + vim-7.0-rclocation.patch | 15 + vim-7.3-manpage-typo-668894-675480.patch | 12 + vim-7.4-checkhl.patch | 12 + vim-7.4-fstabsyntax.patch | 21 + vim-7.4-globalsyntax.patch | 12 + vim-7.4-licensemacro-1151450.patch | 15 + vim-7.4-nowarnings.patch | 11 + vim-7.4-releasestring-1318991.patch | 14 + vim-7.4-specsyntax.patch | 33 + vim-7.4-syncolor.patch | 25 + vim-7.4-syntax.patch | 11 + vim-8.0-copy-paste.patch | 16 + vim-covscan.patch | 51 + vim-crypto-warning.patch | 86 + vim-cve3778-fix.patch | 13 + vim-manpagefixes-948566.patch | 326 +++ vim-python3-tests.patch | 87 + vim.csh | 6 + vim.sh | 5 + vim.spec | 2448 +++++++++++++++++ vimrc | 64 + virc | 37 + 49 files changed, 5188 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 0001-patch-8.1.0881-can-execute-shell-commands-in-rvim-th.patch create mode 100644 0001-patch-8.1.1365-source-command-doesn-t-check-for-the-.patch create mode 100644 0001-patch-8.2.3487-illegal-memory-access-if-buffer-name-.patch create mode 100644 0001-patch-8.2.3625-illegal-memory-access-when-C-indentin.patch create mode 100644 0001-patch-8.2.3669-buffer-overflow-with-long-help-argume.patch create mode 100644 0001-patch-8.2.3949-using-freed-memory-with-V.patch create mode 100644 0001-patch-8.2.3950-going-beyond-the-end-of-the-line-with.patch create mode 100644 0001-patch-8.2.4120-block-insert-goes-over-the-end-of-the.patch create mode 100644 0001-patch-8.2.4151-reading-beyond-the-end-of-a-line.patch create mode 100644 0001-patch-8.2.4214-illegal-memory-access-with-large-tabs.patch create mode 100644 0001-patch-8.2.4215-illegal-memory-access-when-copying-li.patch create mode 100644 0001-patch-8.2.4218-illegal-memory-access-with-bracketed-.patch create mode 100644 0001-patch-8.2.4253-using-freed-memory-when-substitute-wi.patch create mode 100644 0001-patch-8.2.4646-using-buffer-line-after-it-has-been-f.patch create mode 100644 0001-patch-8.2.4919-can-add-invalid-bytes-with-spellgood.patch create mode 100644 0001-patch-8.2.4925-trailing-backslash-may-cause-reading-.patch create mode 100644 0001-patch-8.2.4977-memory-access-error-when-substitute-e.patch create mode 100644 0001-patch-8.2.5023-substitute-overwrites-allocated-buffe.patch create mode 100644 0001-patch-8.2.5037-cursor-position-may-be-invalid-after-.patch create mode 100644 Changelog.rpm delete mode 100644 EMPTY create mode 100644 macros.vim create mode 100644 sources create mode 100644 spec-template create mode 100644 spec-template.new create mode 100644 vim-7.0-fixkeys.patch create mode 100644 vim-7.0-rclocation.patch create mode 100644 vim-7.3-manpage-typo-668894-675480.patch create mode 100644 vim-7.4-checkhl.patch create mode 100644 vim-7.4-fstabsyntax.patch create mode 100644 vim-7.4-globalsyntax.patch create mode 100644 vim-7.4-licensemacro-1151450.patch create mode 100644 vim-7.4-nowarnings.patch create mode 100644 vim-7.4-releasestring-1318991.patch create mode 100644 vim-7.4-specsyntax.patch create mode 100644 vim-7.4-syncolor.patch create mode 100644 vim-7.4-syntax.patch create mode 100644 vim-8.0-copy-paste.patch create mode 100644 vim-covscan.patch create mode 100644 vim-crypto-warning.patch create mode 100644 vim-cve3778-fix.patch create mode 100644 vim-manpagefixes-948566.patch create mode 100644 vim-python3-tests.patch create mode 100644 vim.csh create mode 100644 vim.sh create mode 100644 vim.spec create mode 100644 vimrc create mode 100644 virc diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..0033a02b --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +/gvim16.png +/gvim32.png +/gvim48.png +/gvim64.png +/vim-7.0-specedit.patch +/vim-8.0-1763.tar.bz2 +/vim-cve3796.patch diff --git a/0001-patch-8.1.0881-can-execute-shell-commands-in-rvim-th.patch b/0001-patch-8.1.0881-can-execute-shell-commands-in-rvim-th.patch new file mode 100644 index 00000000..e74d8372 --- /dev/null +++ b/0001-patch-8.1.0881-can-execute-shell-commands-in-rvim-th.patch @@ -0,0 +1,461 @@ +diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt +index 8256152..8320039 100644 +--- a/runtime/doc/starting.txt ++++ b/runtime/doc/starting.txt +@@ -247,12 +247,18 @@ a slash. Thus "-R" means recovery and "-/R" readonly. + changes and writing. + {not in Vi} + +- *-Z* *restricted-mode* *E145* ++ *-Z* *restricted-mode* *E145* *E981* + -Z Restricted mode. All commands that make use of an external + shell are disabled. This includes suspending with CTRL-Z, +- ":sh", filtering, the system() function, backtick expansion, +- delete(), rename(), mkdir(), writefile(), libcall(), +- job_start(), etc. ++ ":sh", filtering, the system() function, backtick expansion ++ and libcall(). ++ Also disallowed are delete(), rename(), mkdir(), job_start(), ++ etc. ++ Interfaces, such as Python, Ruby and Lua, are also disabled, ++ since they could be used to execute shell commands. Perl uses ++ the Safe module. ++ Note that the user may still find a loophole to execute a ++ shell command, it has only been made difficult. + {not in Vi} + + *-g* +diff --git a/src/evalfunc.c b/src/evalfunc.c +index dd4462d..3cc305a 100644 +--- a/src/evalfunc.c ++++ b/src/evalfunc.c +@@ -6446,7 +6446,7 @@ f_histadd(typval_T *argvars UNUSED, typval_T *rettv) + #endif + + rettv->vval.v_number = FALSE; +- if (check_restricted() || check_secure()) ++ if (check_secure()) + return; + #ifdef FEAT_CMDHIST + str = get_tv_string_chk(&argvars[0]); /* NULL on type error */ +@@ -7456,6 +7456,9 @@ f_luaeval(typval_T *argvars, typval_T *rettv) + char_u *str; + char_u buf[NUMBUFLEN]; + ++ if (check_restricted() || check_secure()) ++ return; ++ + str = get_tv_string_buf(&argvars[0], buf); + do_luaeval(str, argvars + 1, rettv); + } +@@ -8188,6 +8191,8 @@ f_mzeval(typval_T *argvars, typval_T *rettv) + char_u *str; + char_u buf[NUMBUFLEN]; + ++ if (check_restricted() || check_secure()) ++ return; + str = get_tv_string_buf(&argvars[0], buf); + do_mzeval(str, rettv); + } +@@ -8398,6 +8403,9 @@ f_py3eval(typval_T *argvars, typval_T *rettv) + char_u *str; + char_u buf[NUMBUFLEN]; + ++ if (check_restricted() || check_secure()) ++ return; ++ + if (p_pyx == 0) + p_pyx = 3; + +@@ -8416,6 +8424,9 @@ f_pyeval(typval_T *argvars, typval_T *rettv) + char_u *str; + char_u buf[NUMBUFLEN]; + ++ if (check_restricted() || check_secure()) ++ return; ++ + if (p_pyx == 0) + p_pyx = 2; + +@@ -8431,6 +8442,9 @@ f_pyeval(typval_T *argvars, typval_T *rettv) + static void + f_pyxeval(typval_T *argvars, typval_T *rettv) + { ++ if (check_restricted() || check_secure()) ++ return; ++ + # if defined(FEAT_PYTHON) && defined(FEAT_PYTHON3) + init_pyxversion(); + if (p_pyx == 2) +@@ -10272,7 +10286,7 @@ f_setbufvar(typval_T *argvars, typval_T *rettv UNUSED) + typval_T *varp; + char_u nbuf[NUMBUFLEN]; + +- if (check_restricted() || check_secure()) ++ if (check_secure()) + return; + (void)get_tv_number(&argvars[0]); /* issue errmsg if type error */ + varname = get_tv_string_chk(&argvars[1]); +@@ -10792,7 +10806,7 @@ f_settabvar(typval_T *argvars, typval_T *rettv) + + rettv->vval.v_number = 0; + +- if (check_restricted() || check_secure()) ++ if (check_secure()) + return; + + tp = find_tabpage((int)get_tv_number_chk(&argvars[0], NULL)); +@@ -13674,7 +13688,7 @@ f_writefile(typval_T *argvars, typval_T *rettv) + list_T *list; + + rettv->vval.v_number = -1; +- if (check_restricted() || check_secure()) ++ if (check_secure()) + return; + + if (argvars[0].v_type != VAR_LIST) +diff --git a/src/ex_cmds.c b/src/ex_cmds.c +index 111fe01..1827fec 100644 +--- a/src/ex_cmds.c ++++ b/src/ex_cmds.c +@@ -4693,7 +4693,7 @@ check_restricted(void) + { + if (restricted) + { +- EMSG(_("E145: Shell commands not allowed in rvim")); ++ EMSG(_("E145: Shell commands and some functionality not allowed in rvim")); + return TRUE; + } + return FALSE; +diff --git a/src/ex_cmds.h b/src/ex_cmds.h +index 48b0253..82d6e29 100644 +--- a/src/ex_cmds.h ++++ b/src/ex_cmds.h +@@ -56,6 +56,7 @@ + * curbuf_lock is set */ + #define MODIFY 0x200000L /* forbidden in non-'modifiable' buffer */ + #define EXFLAGS 0x400000L /* allow flags after count in argument */ ++#define RESTRICT 0x800000L /* forbidden in restricted mode */ + #define FILES (XFILE | EXTRA) /* multiple extra files allowed */ + #define WORD1 (EXTRA | NOSPC) /* one extra word allowed */ + #define FILE1 (FILES | NOSPC) /* 1 file allowed, defaults to current file */ +@@ -860,13 +861,13 @@ EX(CMD_lunmap, "lunmap", ex_unmap, + EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, + ADDR_LINES), + EX(CMD_lua, "lua", ex_lua, +- RANGE|EXTRA|NEEDARG|CMDWIN, ++ RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_luado, "luado", ex_luado, +- RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN, ++ RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_luafile, "luafile", ex_luafile, +- RANGE|FILE1|NEEDARG|CMDWIN, ++ RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_lvimgrep, "lvimgrep", ex_vimgrep, + RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE, +@@ -929,10 +930,10 @@ EX(CMD_mode, "mode", ex_mode, + WORD1|TRLBAR|CMDWIN, + ADDR_LINES), + EX(CMD_mzscheme, "mzscheme", ex_mzscheme, +- RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN|SBOXOK, ++ RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN|SBOXOK|RESTRICT, + ADDR_LINES), + EX(CMD_mzfile, "mzfile", ex_mzfile, +- RANGE|FILE1|NEEDARG|CMDWIN, ++ RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_next, "next", ex_next, + RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR, +@@ -1115,37 +1116,37 @@ EX(CMD_pwd, "pwd", ex_pwd, + TRLBAR|CMDWIN, + ADDR_LINES), + EX(CMD_python, "python", ex_python, +- RANGE|EXTRA|NEEDARG|CMDWIN, ++ RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_pydo, "pydo", ex_pydo, +- RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN, ++ RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_pyfile, "pyfile", ex_pyfile, +- RANGE|FILE1|NEEDARG|CMDWIN, ++ RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_py3, "py3", ex_py3, +- RANGE|EXTRA|NEEDARG|CMDWIN, ++ RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_py3do, "py3do", ex_py3do, +- RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN, ++ RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_python3, "python3", ex_py3, +- RANGE|EXTRA|NEEDARG|CMDWIN, ++ RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_py3file, "py3file", ex_py3file, +- RANGE|FILE1|NEEDARG|CMDWIN, ++ RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_pyx, "pyx", ex_pyx, +- RANGE|EXTRA|NEEDARG|CMDWIN, ++ RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_pyxdo, "pyxdo", ex_pyxdo, +- RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN, ++ RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_pythonx, "pythonx", ex_pyx, +- RANGE|EXTRA|NEEDARG|CMDWIN, ++ RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_pyxfile, "pyxfile", ex_pyxfile, +- RANGE|FILE1|NEEDARG|CMDWIN, ++ RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_quit, "quit", ex_quit, + BANG|RANGE|COUNT|NOTADR|TRLBAR|CMDWIN, +@@ -1199,13 +1200,13 @@ EX(CMD_runtime, "runtime", ex_runtime, + BANG|NEEDARG|FILES|TRLBAR|SBOXOK|CMDWIN, + ADDR_LINES), + EX(CMD_ruby, "ruby", ex_ruby, +- RANGE|EXTRA|NEEDARG|CMDWIN, ++ RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_rubydo, "rubydo", ex_rubydo, +- RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN, ++ RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_rubyfile, "rubyfile", ex_rubyfile, +- RANGE|FILE1|NEEDARG|CMDWIN, ++ RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_rundo, "rundo", ex_rundo, + NEEDARG|FILE1, +@@ -1472,13 +1473,13 @@ EX(CMD_tabs, "tabs", ex_tabs, + TRLBAR|CMDWIN, + ADDR_TABS), + EX(CMD_tcl, "tcl", ex_tcl, +- RANGE|EXTRA|NEEDARG|CMDWIN, ++ RANGE|EXTRA|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_tcldo, "tcldo", ex_tcldo, +- RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN, ++ RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_tclfile, "tclfile", ex_tclfile, +- RANGE|FILE1|NEEDARG|CMDWIN, ++ RANGE|FILE1|NEEDARG|CMDWIN|RESTRICT, + ADDR_LINES), + EX(CMD_tearoff, "tearoff", ex_tearoff, + NEEDARG|EXTRA|TRLBAR|NOTRLCOM|CMDWIN, +diff --git a/src/ex_docmd.c b/src/ex_docmd.c +index ef86fc8..aaf2f9d 100644 +--- a/src/ex_docmd.c ++++ b/src/ex_docmd.c +@@ -2372,11 +2372,16 @@ do_one_cmd( + #ifdef HAVE_SANDBOX + if (sandbox != 0 && !(ea.argt & SBOXOK)) + { +- /* Command not allowed in sandbox. */ ++ // Command not allowed in sandbox. + errormsg = (char_u *)_(e_sandbox); + goto doend; + } + #endif ++ if (restricted != 0 && (ea.argt & RESTRICT)) ++ { ++ errormsg = (char_u *)_("E981: Command not allowed in rvim"); ++ goto doend; ++ } + if (!curbuf->b_p_ma && (ea.argt & MODIFY)) + { + /* Command not allowed in non-'modifiable' buffer */ +diff --git a/src/if_perl.xs b/src/if_perl.xs +index 7b45033..fc8d613 100644 +--- a/src/if_perl.xs ++++ b/src/if_perl.xs +@@ -930,6 +930,7 @@ VIM_init(void) + #ifdef DYNAMIC_PERL + static char *e_noperl = N_("Sorry, this command is disabled: the Perl library could not be loaded."); + #endif ++static char *e_perlsandbox = N_("E299: Perl evaluation forbidden in sandbox without the Safe module"); + + /* + * ":perl" +@@ -978,13 +979,12 @@ ex_perl(exarg_T *eap) + vim_free(script); + } + +-#ifdef HAVE_SANDBOX +- if (sandbox) ++ if (sandbox || secure) + { + safe = perl_get_sv("VIM::safe", FALSE); + # ifndef MAKE_TEST /* avoid a warning for unreachable code */ + if (safe == NULL || !SvTRUE(safe)) +- EMSG(_("E299: Perl evaluation forbidden in sandbox without the Safe module")); ++ EMSG(_(e_perlsandbox)); + else + # endif + { +@@ -996,7 +996,6 @@ ex_perl(exarg_T *eap) + } + } + else +-#endif + perl_eval_sv(sv, G_DISCARD | G_NOARGS); + + SvREFCNT_dec(sv); +@@ -1259,13 +1258,12 @@ do_perleval(char_u *str, typval_T *rettv) + ENTER; + SAVETMPS; + +-#ifdef HAVE_SANDBOX +- if (sandbox) ++ if (sandbox || secure) + { + safe = get_sv("VIM::safe", FALSE); + # ifndef MAKE_TEST /* avoid a warning for unreachable code */ + if (safe == NULL || !SvTRUE(safe)) +- EMSG(_("E299: Perl evaluation forbidden in sandbox without the Safe module")); ++ EMSG(_(e_perlsandbox)); + else + # endif + { +@@ -1281,7 +1279,6 @@ do_perleval(char_u *str, typval_T *rettv) + } + } + else +-#endif /* HAVE_SANDBOX */ + sv = eval_pv((char *)str, 0); + + if (sv) { +diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak +index e36089a..5f1c38c 100644 +--- a/src/testdir/Make_all.mak ++++ b/src/testdir/Make_all.mak +@@ -156,6 +156,7 @@ NEW_TESTS = test_arabic.res \ + test_quotestar.res \ + test_regex_char_classes.res \ + test_registers.res \ ++ test_restricted.res \ + test_retab.res \ + test_ruby.res \ + test_scrollbind.res \ +diff --git a/src/testdir/test_restricted.vim b/src/testdir/test_restricted.vim +new file mode 100644 +index 0000000..9dd937c +--- /dev/null ++++ b/src/testdir/test_restricted.vim +@@ -0,0 +1,107 @@ ++" Test for "rvim" or "vim -Z" ++ ++source shared.vim ++ ++func Test_restricted() ++ let cmd = GetVimCommand('Xrestricted') ++ if cmd == '' ++ return ++ endif ++ ++ call writefile([ ++ \ "silent !ls", ++ \ "call writefile([v:errmsg], 'Xrestrout')", ++ \ "qa!", ++ \ ], 'Xrestricted') ++ call system(cmd . ' -Z') ++ call assert_match('E145:', join(readfile('Xrestrout'))) ++ ++ call delete('Xrestricted') ++ call delete('Xrestrout') ++endfunc ++ ++func Run_restricted_test(ex_cmd, error) ++ let cmd = GetVimCommand('Xrestricted') ++ if cmd == '' ++ return ++ endif ++ ++ call writefile([ ++ \ a:ex_cmd, ++ \ "call writefile([v:errmsg], 'Xrestrout')", ++ \ "qa!", ++ \ ], 'Xrestricted') ++ call system(cmd . ' -Z') ++ call assert_match(a:error, join(readfile('Xrestrout'))) ++ ++ call delete('Xrestricted') ++ call delete('Xrestrout') ++endfunc ++ ++func Test_restricted_lua() ++ if !has('lua') ++ throw 'Skipped: Lua is not supported' ++ endif ++ call Run_restricted_test('lua print("Hello, Vim!")', 'E981:') ++ call Run_restricted_test('luado return "hello"', 'E981:') ++ call Run_restricted_test('luafile somefile', 'E981:') ++ call Run_restricted_test('call luaeval("expression")', 'E145:') ++endfunc ++ ++func Test_restricted_mzscheme() ++ if !has('mzscheme') ++ throw 'Skipped: MzScheme is not supported' ++ endif ++ call Run_restricted_test('mzscheme statement', 'E981:') ++ call Run_restricted_test('mzfile somefile', 'E981:') ++ call Run_restricted_test('call mzeval("expression")', 'E145:') ++endfunc ++ ++func Test_restricted_perl() ++ if !has('perl') ++ throw 'Skipped: Perl is not supported' ++ endif ++ " TODO: how to make Safe mode fail? ++ " call Run_restricted_test('perl system("ls")', 'E981:') ++ " call Run_restricted_test('perldo system("hello")', 'E981:') ++ " call Run_restricted_test('perlfile somefile', 'E981:') ++ " call Run_restricted_test('call perleval("system(\"ls\")")', 'E145:') ++endfunc ++ ++func Test_restricted_python() ++ if !has('python') ++ throw 'Skipped: Python is not supported' ++ endif ++ call Run_restricted_test('python print "hello"', 'E981:') ++ call Run_restricted_test('pydo return "hello"', 'E981:') ++ call Run_restricted_test('pyfile somefile', 'E981:') ++ call Run_restricted_test('call pyeval("expression")', 'E145:') ++endfunc ++ ++func Test_restricted_python3() ++ if !has('python3') ++ throw 'Skipped: Python3 is not supported' ++ endif ++ call Run_restricted_test('py3 print "hello"', 'E981:') ++ call Run_restricted_test('py3do return "hello"', 'E981:') ++ call Run_restricted_test('py3file somefile', 'E981:') ++ call Run_restricted_test('call py3eval("expression")', 'E145:') ++endfunc ++ ++func Test_restricted_ruby() ++ if !has('ruby') ++ throw 'Skipped: Ruby is not supported' ++ endif ++ call Run_restricted_test('ruby print "Hello"', 'E981:') ++ call Run_restricted_test('rubydo print "Hello"', 'E981:') ++ call Run_restricted_test('rubyfile somefile', 'E981:') ++endfunc ++ ++func Test_restricted_tcl() ++ if !has('tcl') ++ throw 'Skipped: Tcl is not supported' ++ endif ++ call Run_restricted_test('tcl puts "Hello"', 'E981:') ++ call Run_restricted_test('tcldo puts "Hello"', 'E981:') ++ call Run_restricted_test('tclfile somefile', 'E981:') ++endfunc diff --git a/0001-patch-8.1.1365-source-command-doesn-t-check-for-the-.patch b/0001-patch-8.1.1365-source-command-doesn-t-check-for-the-.patch new file mode 100644 index 00000000..97e8e2ea --- /dev/null +++ b/0001-patch-8.1.1365-source-command-doesn-t-check-for-the-.patch @@ -0,0 +1,16 @@ +diff -up vim80/src/getchar.c.cve vim80/src/getchar.c +--- vim80/src/getchar.c.cve 2019-06-14 13:46:17.269523985 +0200 ++++ vim80/src/getchar.c 2019-06-14 13:46:58.427169288 +0200 +@@ -1418,6 +1418,12 @@ openscript( + EMSG(_(e_nesting)); + return; + } ++ ++ // Disallow sourcing a file in the sandbox, the commands would be executed ++ // later, possibly outside of the sandbox. ++ if (check_secure()) ++ return; ++ + #ifdef FEAT_EVAL + if (ignore_script) + /* Not reading from script, also don't open one. Warning message? */ diff --git a/0001-patch-8.2.3487-illegal-memory-access-if-buffer-name-.patch b/0001-patch-8.2.3487-illegal-memory-access-if-buffer-name-.patch new file mode 100644 index 00000000..76018f9e --- /dev/null +++ b/0001-patch-8.2.3487-illegal-memory-access-if-buffer-name-.patch @@ -0,0 +1,35 @@ +diff -up vim80/src/screen.c.cve3872 vim80/src/screen.c +--- vim80/src/screen.c.cve3872 2021-10-21 13:20:27.694921335 +0200 ++++ vim80/src/screen.c 2021-10-21 13:22:42.221732996 +0200 +@@ -6911,13 +6911,13 @@ win_redr_status(win_T *wp) + *(p + len++) = ' '; + if (bt_help(wp->w_buffer)) + { +- STRCPY(p + len, _("[Help]")); ++ vim_snprintf((char *)p + len, MAXPATHL - len, "%s", _("[Help]")); + len += (int)STRLEN(p + len); + } + #ifdef FEAT_QUICKFIX + if (wp->w_p_pvw) + { +- STRCPY(p + len, _("[Preview]")); ++ vim_snprintf((char *)p + len, MAXPATHL - len, "%s", _("[Preview]")); + len += (int)STRLEN(p + len); + } + #endif +@@ -6927,12 +6927,12 @@ win_redr_status(win_T *wp) + #endif + ) + { +- STRCPY(p + len, "[+]"); +- len += 3; ++ vim_snprintf((char *)p + len, MAXPATHL - len, "%s", "[+]"); ++ len += (int)STRLEN(p + len); + } + if (wp->w_buffer->b_p_ro) + { +- STRCPY(p + len, _("[RO]")); ++ vim_snprintf((char *)p + len, MAXPATHL - len, "%s", _("[RO]")); + len += (int)STRLEN(p + len); + } + diff --git a/0001-patch-8.2.3625-illegal-memory-access-when-C-indentin.patch b/0001-patch-8.2.3625-illegal-memory-access-when-C-indentin.patch new file mode 100644 index 00000000..668ffe54 --- /dev/null +++ b/0001-patch-8.2.3625-illegal-memory-access-when-C-indentin.patch @@ -0,0 +1,34 @@ +diff --git a/src/misc1.c b/src/misc1.c +index de79c8e..1c5867d 100644 +--- a/src/misc1.c ++++ b/src/misc1.c +@@ -6792,7 +6792,7 @@ find_start_brace(void) /* XXX */ + && (pos = ind_find_start_CORS(NULL)) == NULL) /* XXX */ + break; + if (pos != NULL) +- curwin->w_cursor.lnum = pos->lnum; ++ curwin->w_cursor = *pos; + } + curwin->w_cursor = cursor_save; + return trypos; +diff --git a/src/testdir/test_cindent.vim b/src/testdir/test_cindent.vim +index 7c2c5e3..f8c7e57 100644 +--- a/src/testdir/test_cindent.vim ++++ b/src/testdir/test_cindent.vim +@@ -102,4 +102,16 @@ func Test_cindent_expr() + bw! + endfunc + ++func Test_find_brace_backwards() ++ " this was looking beyond the end of the line ++ new ++ norm R/* ++ norm o0{ ++ norm o// ++ norm V{= ++ call assert_equal(['/*', ' 0{', '//'], getline(1, 3)) ++ bwipe! ++endfunc ++ ++ + " vim: shiftwidth=2 sts=2 expandtab diff --git a/0001-patch-8.2.3669-buffer-overflow-with-long-help-argume.patch b/0001-patch-8.2.3669-buffer-overflow-with-long-help-argume.patch new file mode 100644 index 00000000..0cfaec6a --- /dev/null +++ b/0001-patch-8.2.3669-buffer-overflow-with-long-help-argume.patch @@ -0,0 +1,14 @@ +diff --git a/src/ex_cmds.c b/src/ex_cmds.c +index 1827fec..e69fbd3 100644 +--- a/src/ex_cmds.c ++++ b/src/ex_cmds.c +@@ -6537,8 +6537,7 @@ find_help_tags( + || (vim_strchr((char_u *)"%_z@", arg[1]) != NULL + && arg[2] != NUL))) + { +- STRCPY(d, "/\\\\"); +- STRCPY(d + 3, arg + 1); ++ vim_snprintf((char *)d, IOSIZE, "/\\\\%s", arg + 1); + /* Check for "/\\_$", should be "/\\_\$" */ + if (d[3] == '_' && d[4] == '$') + STRCPY(d + 4, "\\$"); diff --git a/0001-patch-8.2.3949-using-freed-memory-with-V.patch b/0001-patch-8.2.3949-using-freed-memory-with-V.patch new file mode 100644 index 00000000..c3f7bb15 --- /dev/null +++ b/0001-patch-8.2.3949-using-freed-memory-with-V.patch @@ -0,0 +1,45 @@ +diff -up vim80/src/regexp.c.cve4192 vim80/src/regexp.c +--- vim80/src/regexp.c.cve4192 2022-01-12 15:21:44.792239040 +0100 ++++ vim80/src/regexp.c 2022-01-12 15:34:35.190425880 +0100 +@@ -4203,9 +4203,9 @@ reg_match_visual(void) + if (lnum < top.lnum || lnum > bot.lnum) + return FALSE; + ++ col = (colnr_T)(reginput - regline); + if (mode == 'v') + { +- col = (colnr_T)(reginput - regline); + if ((lnum == top.lnum && col < top.col) + || (lnum == bot.lnum && col >= bot.col + (*p_sel != 'e'))) + return FALSE; +@@ -4220,7 +4220,12 @@ reg_match_visual(void) + end = end2; + if (top.col == MAXCOL || bot.col == MAXCOL) + end = MAXCOL; +- cols = win_linetabsize(wp, regline, (colnr_T)(reginput - regline)); ++ ++ // getvvcol() flushes rex.line, need to get it again ++ regline = reg_getline(reglnum); ++ reginput = regline + col; ++ ++ cols = win_linetabsize(wp, regline, col); + if (cols < start || cols > end - (*p_sel == 'e')) + return FALSE; + } +diff -up vim80/src/testdir/test_regexp_latin.vim.cve4192 vim80/src/testdir/test_regexp_latin.vim +--- vim80/src/testdir/test_regexp_latin.vim.cve4192 2022-01-12 15:21:44.792239040 +0100 ++++ vim80/src/testdir/test_regexp_latin.vim 2022-01-12 15:36:12.499693099 +0100 +@@ -80,3 +80,13 @@ func Test_using_invalid_visual_position( + /\%V + bwipe! + endfunc ++ ++func Test_using_visual_position() ++ " this was using freed memory ++ new ++ exe "norm 0o\\k\o0" ++ /\%V ++ bwipe! ++endfunc ++ ++" vim: shiftwidth=2 sts=2 expandtab diff --git a/0001-patch-8.2.3950-going-beyond-the-end-of-the-line-with.patch b/0001-patch-8.2.3950-going-beyond-the-end-of-the-line-with.patch new file mode 100644 index 00000000..485f00d5 --- /dev/null +++ b/0001-patch-8.2.3950-going-beyond-the-end-of-the-line-with.patch @@ -0,0 +1,38 @@ +diff -up vim80/src/charset.c.cve4193 vim80/src/charset.c +--- vim80/src/charset.c.cve4193 2022-01-12 14:49:08.710592947 +0100 ++++ vim80/src/charset.c 2022-01-12 14:49:47.594705863 +0100 +@@ -1291,10 +1291,15 @@ getvcol( + posptr = NULL; /* continue until the NUL */ + else + { +- /* Special check for an empty line, which can happen on exit, when +- * ml_get_buf() always returns an empty string. */ +- if (*ptr == NUL) +- pos->col = 0; ++ colnr_T i; ++ ++ // In a few cases the position can be beyond the end of the line. ++ for (i = 0; i < pos->col; ++i) ++ if (ptr[i] == NUL) ++ { ++ pos->col = i; ++ break; ++ } + posptr = ptr + pos->col; + #ifdef FEAT_MBYTE + if (has_mbyte) +diff -up vim80/src/testdir/test_regexp_latin.vim.cve4193 vim80/src/testdir/test_regexp_latin.vim +--- vim80/src/testdir/test_regexp_latin.vim.cve4193 2022-01-12 14:49:08.710592947 +0100 ++++ vim80/src/testdir/test_regexp_latin.vim 2022-01-12 14:50:45.186873107 +0100 +@@ -72,3 +72,11 @@ func Test_backref() + call assert_fails('call search("\\%#=2\\(e\\1\\)")', 'E65:') + bwipe! + endfunc ++ ++func Test_using_invalid_visual_position() ++ " this was going beyond the end of the line ++ new ++ exe "norm 0o000\0\$s0" ++ /\%V ++ bwipe! ++endfunc diff --git a/0001-patch-8.2.4120-block-insert-goes-over-the-end-of-the.patch b/0001-patch-8.2.4120-block-insert-goes-over-the-end-of-the.patch new file mode 100644 index 00000000..31d30c18 --- /dev/null +++ b/0001-patch-8.2.4120-block-insert-goes-over-the-end-of-the.patch @@ -0,0 +1,95 @@ +diff -up vim80/src/ops.c.cve0261 vim80/src/ops.c +--- vim80/src/ops.c.cve0261 2022-01-26 14:30:27.475308323 +0100 ++++ vim80/src/ops.c 2022-01-26 14:34:16.650933713 +0100 +@@ -636,23 +636,30 @@ block_insert( + if (b_insert) + { + off = (*mb_head_off)(oldp, oldp + offset + spaces); ++ spaces -= off; ++ count -= off; + } + else + { +- off = (*mb_off_next)(oldp, oldp + offset); +- offset += off; ++ // spaces fill the gap, the character that's at the edge moves ++ // right ++ off = (*mb_head_off)(oldp, oldp + offset); ++ offset -= off; + } + spaces -= off; + count -= off; + } + #endif + +- newp = alloc_check((unsigned)(STRLEN(oldp)) + s_len + count + 1); ++ // Make sure the allocated size matches what is actually copied below. ++ newp = alloc(STRLEN(oldp) + spaces + s_len ++ + (spaces > 0 && !bdp->is_short ? p_ts - spaces : 0) ++ + count + 1); + if (newp == NULL) + continue; + + /* copy up to shifted part */ +- mch_memmove(newp, oldp, (size_t)(offset)); ++ mch_memmove(newp, oldp, (size_t)offset); + oldp += offset; + + /* insert pre-padding */ +@@ -662,14 +669,21 @@ block_insert( + mch_memmove(newp + offset + spaces, s, (size_t)s_len); + offset += s_len; + +- if (spaces && !bdp->is_short) ++ if (spaces > 0 && !bdp->is_short) + { +- /* insert post-padding */ +- vim_memset(newp + offset + spaces, ' ', (size_t)(p_ts - spaces)); +- /* We're splitting a TAB, don't copy it. */ +- oldp++; +- /* We allowed for that TAB, remember this now */ +- count++; ++ if (*oldp == TAB) ++ { ++ // insert post-padding ++ vim_memset(newp + offset + spaces, ' ', ++ (size_t)(p_ts - spaces)); ++ // we're splitting a TAB, don't copy it ++ oldp++; ++ // We allowed for that TAB, remember this now ++ count++; ++ } ++ else ++ // Not a TAB, no extra spaces ++ count = spaces; + } + + if (spaces > 0) +@@ -2738,9 +2752,9 @@ op_insert(oparg_T *oap, long count1) + oap->start_vcol = t; + } + else if (oap->op_type == OP_APPEND +- && oap->end.col ++ && oap->start.col + #ifdef FEAT_VIRTUALEDIT +- + oap->end.coladd ++ + oap->start.coladd + #endif + >= curbuf->b_op_start_orig.col + #ifdef FEAT_VIRTUALEDIT +diff -up vim80/src/testdir/test_visual.vim.cve0261 vim80/src/testdir/test_visual.vim +--- vim80/src/testdir/test_visual.vim.cve0261 2022-01-26 14:30:27.476308325 +0100 ++++ vim80/src/testdir/test_visual.vim 2022-01-26 14:36:03.482225225 +0100 +@@ -254,3 +254,12 @@ func Test_virtual_replace2() + %d_ + set bs&vim + endfunc ++ ++func Test_visual_block_append_invalid_char() ++ " this was going over the end of the line ++ new ++ call setline(1, [' let xxx', 'xxxxxˆ', 'xxxxxxxxxxx']) ++ exe "normal 0\jjA-\" ++ call assert_equal([' - let xxx', 'xxxxx -ˆ', 'xxxxxxxx-xxx'], getline(1, 3)) ++ bwipe! ++endfunc diff --git a/0001-patch-8.2.4151-reading-beyond-the-end-of-a-line.patch b/0001-patch-8.2.4151-reading-beyond-the-end-of-a-line.patch new file mode 100644 index 00000000..8e92918e --- /dev/null +++ b/0001-patch-8.2.4151-reading-beyond-the-end-of-a-line.patch @@ -0,0 +1,46 @@ +diff --git a/src/ops.c b/src/ops.c +index e9cfb1d..e35b033 100644 +--- a/src/ops.c ++++ b/src/ops.c +@@ -629,26 +629,9 @@ block_insert( + + #ifdef FEAT_MBYTE + if (has_mbyte && spaces > 0) +- { +- int off; ++ // avoid copying part of a multi-byte character ++ offset -= (*mb_head_off)(oldp, oldp + offset); + +- /* Avoid starting halfway a multi-byte character. */ +- if (b_insert) +- { +- off = (*mb_head_off)(oldp, oldp + offset + spaces); +- spaces -= off; +- count -= off; +- } +- else +- { +- // spaces fill the gap, the character that's at the edge moves +- // right +- off = (*mb_head_off)(oldp, oldp + offset); +- offset -= off; +- } +- spaces -= off; +- count -= off; +- } + #endif + + // Make sure the allocated size matches what is actually copied below. +diff --git a/src/testdir/test_utf8.vim b/src/testdir/test_utf8.vim +index 24e3db8..1042720 100644 +--- a/src/testdir/test_utf8.vim ++++ b/src/testdir/test_utf8.vim +@@ -9,7 +9,7 @@ func Test_visual_block_insert() + new + call setline(1, ["aaa", "あああ", "bbb"]) + exe ":norm! gg0l\jjIx\" +- call assert_equal(['axaa', 'xあああ', 'bxbb'], getline(1, '$')) ++ call assert_equal(['axaa', ' xあああ', 'bxbb'], getline(1, '$')) + bwipeout! + endfunc + diff --git a/0001-patch-8.2.4214-illegal-memory-access-with-large-tabs.patch b/0001-patch-8.2.4214-illegal-memory-access-with-large-tabs.patch new file mode 100644 index 00000000..98e738cb --- /dev/null +++ b/0001-patch-8.2.4214-illegal-memory-access-with-large-tabs.patch @@ -0,0 +1,12 @@ +diff -up vim80/src/ex_getln.c.cve0359 vim80/src/ex_getln.c +--- vim80/src/ex_getln.c.cve0359 2022-01-27 16:55:41.386213891 +0100 ++++ vim80/src/ex_getln.c 2022-01-27 17:00:20.330960544 +0100 +@@ -300,7 +300,7 @@ getcmdline( + ccline.cmdindent = (firstc > 0 ? indent : 0); + + /* alloc initial ccline.cmdbuff */ +- alloc_cmdbuff(exmode_active ? 250 : indent + 1); ++ alloc_cmdbuff(indent + 50); + if (ccline.cmdbuff == NULL) + return NULL; /* out of memory */ + ccline.cmdlen = ccline.cmdpos = 0; diff --git a/0001-patch-8.2.4215-illegal-memory-access-when-copying-li.patch b/0001-patch-8.2.4215-illegal-memory-access-when-copying-li.patch new file mode 100644 index 00000000..604a8ff6 --- /dev/null +++ b/0001-patch-8.2.4215-illegal-memory-access-when-copying-li.patch @@ -0,0 +1,33 @@ +diff -up vim80/src/ex_cmds.c.cve0361 vim80/src/ex_cmds.c +--- vim80/src/ex_cmds.c.cve0361 2022-02-08 12:20:51.277666290 +0100 ++++ vim80/src/ex_cmds.c 2022-02-08 12:20:51.280666209 +0100 +@@ -983,6 +983,8 @@ ex_copy(linenr_T line1, linenr_T line2, + } + + appended_lines_mark(n, count); ++ if (VIsual_active) ++ check_pos(curbuf, &VIsual); + + msgmore((long)count); + } +diff -up vim80/src/testdir/test_visual.vim.cve0361 vim80/src/testdir/test_visual.vim +--- vim80/src/testdir/test_visual.vim.cve0361 2022-02-08 12:20:51.280666209 +0100 ++++ vim80/src/testdir/test_visual.vim 2022-02-08 12:21:44.530356814 +0100 +@@ -263,3 +263,17 @@ func Test_visual_block_append_invalid_ch + call assert_equal([' - let xxx', 'xxxxx -ˆ', 'xxxxxxxx-xxx'], getline(1, 3)) + bwipe! + endfunc ++ ++" this was leaving the end of the Visual area beyond the end of a line ++func Test_visual_ex_copy_line() ++ new ++ call setline(1, ["aaa", "bbbbbbbbbxbb"]) ++ /x ++ exe "normal ggvjfxO" ++ t0 ++ normal gNU ++ bwipe! ++endfunc ++ ++ ++" vim: shiftwidth=2 sts=2 expandtab diff --git a/0001-patch-8.2.4218-illegal-memory-access-with-bracketed-.patch b/0001-patch-8.2.4218-illegal-memory-access-with-bracketed-.patch new file mode 100644 index 00000000..8cb7a441 --- /dev/null +++ b/0001-patch-8.2.4218-illegal-memory-access-with-bracketed-.patch @@ -0,0 +1,85 @@ +commit ec45bc7682fd698d8d39f43732129c4d092355f3 +Author: Tomas Korbar +Date: Wed Feb 2 16:30:11 2022 +0100 + + Fix illegal memory access with bracketed paste in Ex mode + +diff --git a/src/edit.c b/src/edit.c +index f29fbc7..57b8dce 100644 +--- a/src/edit.c ++++ b/src/edit.c +@@ -9519,27 +9519,33 @@ bracketed_paste(paste_mode_T mode, int drop, garray_T *gap) + int ret_char = -1; + int save_allow_keys = allow_keys; + int save_paste = p_paste; +- int save_ai = curbuf->b_p_ai; + +- /* If the end code is too long we can't detect it, read everything. */ +- if (STRLEN(end) >= NUMBUFLEN) ++ // If the end code is too long we can't detect it, read everything. ++ if (end != NULL && STRLEN(end) >= NUMBUFLEN) + end = NULL; + ++no_mapping; + allow_keys = 0; +- p_paste = TRUE; +- curbuf->b_p_ai = FALSE; ++ if (!p_paste) ++ // Also have the side effects of setting 'paste' to make it work much ++ // faster. ++ set_option_value((char_u *)"paste", TRUE, NULL, 0); + + for (;;) + { + /* When the end is not defined read everything. */ + if (end == NULL && vpeekc() == NUL) + break; +- c = plain_vgetc(); +-#ifdef FEAT_MBYTE ++ do ++ c = vgetc(); ++ while (c == K_IGNORE || c == K_VER_SCROLLBAR || c == K_HOR_SCROLLBAR); ++ if (c == NUL || got_int || (ex_normal_busy > 0 && c == Ctrl_C)) ++ // When CTRL-C was encountered the typeahead will be flushed and we ++ // won't get the end sequence. Except when using ":normal". ++ break; ++ + if (has_mbyte) + idx += (*mb_char2bytes)(c, buf + idx); + else +-#endif + buf[idx++] = c; + buf[idx] = NUL; + if (end != NULL && STRNCMP(buf, end, idx) == 0) +@@ -9557,7 +9563,8 @@ bracketed_paste(paste_mode_T mode, int drop, garray_T *gap) + break; + + case PASTE_EX: +- if (gap != NULL && ga_grow(gap, idx) == OK) ++ // add one for the NUL that is going to be appended ++ if (gap != NULL && ga_grow(gap, idx + 1) == OK) + { + mch_memmove((char *)gap->ga_data + gap->ga_len, + buf, (size_t)idx); +@@ -9582,11 +9589,9 @@ bracketed_paste(paste_mode_T mode, int drop, garray_T *gap) + case PASTE_ONE_CHAR: + if (ret_char == -1) + { +-#ifdef FEAT_MBYTE + if (has_mbyte) + ret_char = (*mb_ptr2char)(buf); + else +-#endif + ret_char = buf[0]; + } + break; +@@ -9597,8 +9602,8 @@ bracketed_paste(paste_mode_T mode, int drop, garray_T *gap) + + --no_mapping; + allow_keys = save_allow_keys; +- p_paste = save_paste; +- curbuf->b_p_ai = save_ai; ++ if (!save_paste) ++ set_option_value((char_u *)"paste", FALSE, NULL, 0); + + return ret_char; + } diff --git a/0001-patch-8.2.4253-using-freed-memory-when-substitute-wi.patch b/0001-patch-8.2.4253-using-freed-memory-when-substitute-wi.patch new file mode 100644 index 00000000..b37d8211 --- /dev/null +++ b/0001-patch-8.2.4253-using-freed-memory-when-substitute-wi.patch @@ -0,0 +1,51 @@ +commit c604f3ad4782fde770617ff688e1ceac0dc1bd7c +Author: Tomas Korbar +Date: Thu Feb 3 10:14:42 2022 +0100 + + Fix using freed memory when substitute with function call + +diff --git a/src/ex_cmds.c b/src/ex_cmds.c +index e69fbd3..0788573 100644 +--- a/src/ex_cmds.c ++++ b/src/ex_cmds.c +@@ -4767,6 +4767,7 @@ do_sub(exarg_T *eap) + int save_do_all; /* remember user specified 'g' flag */ + int save_do_ask; /* remember user specified 'c' flag */ + char_u *pat = NULL, *sub = NULL; /* init for GCC */ ++ char_u *sub_copy = NULL; + int delimiter; + int sublen; + int got_quit = FALSE; +@@ -5062,11 +5063,20 @@ do_sub(exarg_T *eap) + sub_firstline = NULL; + + /* +- * ~ in the substitute pattern is replaced with the old pattern. +- * We do it here once to avoid it to be replaced over and over again. +- * But don't do it when it starts with "\=", then it's an expression. ++ * If the substitute pattern starts with "\=" then it's an expression. ++ * Make a copy, a recursive function may free it. ++ * Otherwise, '~' in the substitute pattern is replaced with the old ++ * pattern. We do it here once to avoid it to be replaced over and over ++ * again. + */ +- if (!(sub[0] == '\\' && sub[1] == '=')) ++ if (sub[0] == '\\' && sub[1] == '=') ++ { ++ sub = vim_strsave(sub); ++ if (sub == NULL) ++ return; ++ sub_copy = sub; ++ } ++ else + sub = regtilde(sub, p_magic); + + /* +@@ -5825,6 +5835,7 @@ outofmem: + #endif + + vim_regfree(regmatch.regprog); ++ vim_free(sub_copy); + + /* Restore the flag values, they can be used for ":&&". */ + subflags.do_all = save_do_all; diff --git a/0001-patch-8.2.4646-using-buffer-line-after-it-has-been-f.patch b/0001-patch-8.2.4646-using-buffer-line-after-it-has-been-f.patch new file mode 100644 index 00000000..a2eb48be --- /dev/null +++ b/0001-patch-8.2.4646-using-buffer-line-after-it-has-been-f.patch @@ -0,0 +1,22 @@ +diff -up vim80/src/regexp.c.cve1154 vim80/src/regexp.c +--- vim80/src/regexp.c.cve1154 2022-04-09 12:01:30.054452927 +0200 ++++ vim80/src/regexp.c 2022-04-09 12:02:48.987999877 +0200 +@@ -4415,8 +4415,17 @@ regmatch( + int mark = OPERAND(scan)[0]; + int cmp = OPERAND(scan)[1]; + pos_T *pos; ++ size_t col = REG_MULTI ? reginput - regline : 0; + + pos = getmark_buf(rex.reg_buf, mark, FALSE); ++ ++ // Line may have been freed, get it again. ++ if (REG_MULTI) ++ { ++ regline = reg_getline(reglnum); ++ reginput = regline + col; ++ } ++ + if (pos == NULL /* mark doesn't exist */ + || pos->lnum <= 0 /* mark isn't set in reg_buf */ + || (pos->lnum == reglnum + rex.reg_firstlnum +diff -up vim80/src/testdir/test_regexp_latin.vim.cve1154 vim80/src/testdir/test_regexp_latin.vim diff --git a/0001-patch-8.2.4919-can-add-invalid-bytes-with-spellgood.patch b/0001-patch-8.2.4919-can-add-invalid-bytes-with-spellgood.patch new file mode 100644 index 00000000..b887afef --- /dev/null +++ b/0001-patch-8.2.4919-can-add-invalid-bytes-with-spellgood.patch @@ -0,0 +1,57 @@ +diff --git a/src/globals.h b/src/globals.h +index d5320d7..968ba33 100644 +--- a/src/globals.h ++++ b/src/globals.h +@@ -1657,6 +1657,11 @@ EXTERN int *eval_lavars_used INIT(= NULL); + EXTERN int ctrl_break_was_pressed INIT(= FALSE); + #endif + ++#ifdef FEAT_SPELL ++EXTERN char e_illegal_character_in_word[] ++ INIT(= N_("E1280: Illegal character in word")); ++#endif ++ + /* + * Optional Farsi support. Include it here, so EXTERN and INIT are defined. + */ +diff --git a/src/mbyte.c b/src/mbyte.c +index 6d21f11..a7531f1 100644 +--- a/src/mbyte.c ++++ b/src/mbyte.c +@@ -4034,7 +4034,7 @@ theend: + convert_setup(&vimconv, NULL, NULL); + } + +-#if defined(FEAT_GUI_GTK) || defined(PROTO) ++#if defined(FEAT_GUI_GTK) || defined(FEAT_SPELL) || defined(PROTO) + /* + * Return TRUE if string "s" is a valid utf-8 string. + * When "end" is NULL stop at the first NUL. +diff --git a/src/spellfile.c b/src/spellfile.c +index 496e07f..92997ef 100644 +--- a/src/spellfile.c ++++ b/src/spellfile.c +@@ -4441,6 +4441,10 @@ store_word( + int res = OK; + char_u *p; + ++ // Avoid adding illegal bytes to the word tree. ++ if (enc_utf8 && !utf_valid_string(word, NULL)) ++ return FAIL; ++ + (void)spell_casefold(word, len, foldword, MAXWLEN); + for (p = pfxlist; res == OK; ++p) + { +@@ -6251,6 +6255,12 @@ spell_add_word( + int i; + char_u *spf; + ++ if (enc_utf8 && !utf_valid_string(word, NULL)) ++ { ++ EMSG(_(e_illegal_character_in_word)); ++ return; ++ } ++ + if (idx == 0) /* use internal wordlist */ + { + if (int_wordlist == NULL) diff --git a/0001-patch-8.2.4925-trailing-backslash-may-cause-reading-.patch b/0001-patch-8.2.4925-trailing-backslash-may-cause-reading-.patch new file mode 100644 index 00000000..6ce497fe --- /dev/null +++ b/0001-patch-8.2.4925-trailing-backslash-may-cause-reading-.patch @@ -0,0 +1,15 @@ +diff -up vim80/src/search.c.cve1629 vim80/src/search.c +--- vim80/src/search.c.cve1629 2022-05-24 13:55:06.789859865 +0200 ++++ vim80/src/search.c 2022-05-24 13:56:31.889218958 +0200 +@@ -4349,7 +4349,11 @@ find_next_quote( + if (c == NUL) + return -1; + else if (escape != NULL && vim_strchr(escape, c)) ++ { + ++col; ++ if (line[col] == NUL) ++ return -1; ++ } + else if (c == quotechar) + break; + #ifdef FEAT_MBYTE diff --git a/0001-patch-8.2.4977-memory-access-error-when-substitute-e.patch b/0001-patch-8.2.4977-memory-access-error-when-substitute-e.patch new file mode 100644 index 00000000..2391a5f4 --- /dev/null +++ b/0001-patch-8.2.4977-memory-access-error-when-substitute-e.patch @@ -0,0 +1,57 @@ +diff -up vim80/src/ex_cmds.c.cve1785 vim80/src/ex_cmds.c +--- vim80/src/ex_cmds.c.cve1785 2022-06-10 10:46:33.818286626 +0200 ++++ vim80/src/ex_cmds.c 2022-06-10 10:58:04.009515524 +0200 +@@ -5486,12 +5486,17 @@ do_sub(exarg_T *eap) + /* Save flags for recursion. They can change for e.g. + * :s/^/\=execute("s#^##gn") */ + subflags_save = subflags; ++ ++ // Disallow changing text or switching window in an expression. ++ ++textlock; + #endif + /* get length of substitution part */ + sublen = vim_regsub_multi(®match, + sub_firstlnum - regmatch.startpos[0].lnum, + sub, sub_firstline, FALSE, p_magic, TRUE); + #ifdef FEAT_EVAL ++ --textlock; ++ + /* Don't keep flags set by a recursive call. */ + subflags = subflags_save; + if (subflags.do_count) +@@ -5570,9 +5575,15 @@ do_sub(exarg_T *eap) + mch_memmove(new_end, sub_firstline + copycol, (size_t)copy_len); + new_end += copy_len; + ++#ifdef FEAT_EVAL ++ ++textlock; ++#endif + (void)vim_regsub_multi(®match, + sub_firstlnum - regmatch.startpos[0].lnum, + sub, new_end, TRUE, p_magic, TRUE); ++#ifdef FEAT_EVAL ++ --textlock; ++#endif + sub_nsubs++; + did_sub = TRUE; + +diff -up vim80/src/testdir/test_substitute.vim.cve1785 vim80/src/testdir/test_substitute.vim +--- vim80/src/testdir/test_substitute.vim.cve1785 2022-06-10 10:46:33.818286626 +0200 ++++ vim80/src/testdir/test_substitute.vim 2022-06-10 10:59:17.168437630 +0200 +@@ -500,3 +500,16 @@ func Test_sub_cmd_8() + enew! + set titlestring& + endfunc ++ ++" This was switching windows in between computing the length and using it. ++func Test_sub_change_window() ++ silent! lfile ++ sil! norm o0000000000000000000000000000000000000000000000000000 ++ func Repl() ++ lopen ++ endfunc ++ silent! s/\%')/\=Repl() ++ bwipe! ++ bwipe! ++ delfunc Repl ++endfunc diff --git a/0001-patch-8.2.5023-substitute-overwrites-allocated-buffe.patch b/0001-patch-8.2.5023-substitute-overwrites-allocated-buffe.patch new file mode 100644 index 00000000..54759376 --- /dev/null +++ b/0001-patch-8.2.5023-substitute-overwrites-allocated-buffe.patch @@ -0,0 +1,120 @@ +diff -up vim80/src/normal.c.cve1897 vim80/src/normal.c +--- vim80/src/normal.c.cve1897 2022-06-13 14:50:22.800290132 +0200 ++++ vim80/src/normal.c 2022-06-13 14:55:06.082861349 +0200 +@@ -532,6 +532,22 @@ find_command(int cmdchar) + } + + /* ++ * If currently editing a cmdline or text is locked: beep and give an error ++ * message, return TRUE. ++ */ ++ static int ++check_text_locked(oparg_T *oap) ++{ ++ if (text_locked()) ++ { ++ clearopbeep(oap); ++ text_locked_msg(); ++ return TRUE; ++ } ++ return FALSE; ++} ++ ++/* + * Execute a command in Normal mode. + */ + void +@@ -792,14 +808,9 @@ getcount: + goto normal_end; + } + +- if (text_locked() && (nv_cmds[idx].cmd_flags & NV_NCW)) +- { +- /* This command is not allowed while editing a cmdline: beep. */ +- clearopbeep(oap); +- text_locked_msg(); +- goto normal_end; +- } +- if ((nv_cmds[idx].cmd_flags & NV_NCW) && curbuf_locked()) ++ if ((nv_cmds[idx].cmd_flags & NV_NCW) ++ && (check_text_locked(oap) || curbuf_locked())) ++ // this command is not allowed now + goto normal_end; + + /* +@@ -6234,12 +6245,8 @@ nv_gotofile(cmdarg_T *cap) + char_u *ptr; + linenr_T lnum = -1; + +- if (text_locked()) +- { +- clearopbeep(cap->oap); +- text_locked_msg(); ++ if (check_text_locked(cap->oap)) + return; +- } + if (curbuf_locked()) + { + clearop(cap->oap); +@@ -8420,14 +8427,7 @@ nv_g_cmd(cmdarg_T *cap) + + /* "gQ": improved Ex mode */ + case 'Q': +- if (text_locked()) +- { +- clearopbeep(cap->oap); +- text_locked_msg(); +- break; +- } +- +- if (!checkclearopq(oap)) ++ if (!check_text_locked(cap->oap) && !checkclearopq(oap)) + do_exmode(TRUE); + break; + +diff -up vim80/src/testdir/test_substitute.vim.cve1897 vim80/src/testdir/test_substitute.vim +--- vim80/src/testdir/test_substitute.vim.cve1897 2022-06-13 14:50:22.849290402 +0200 ++++ vim80/src/testdir/test_substitute.vim 2022-06-13 14:55:50.370111134 +0200 +@@ -513,3 +513,26 @@ func Test_sub_change_window() + bwipe! + delfunc Repl + endfunc ++ ++" This was undoign a change in between computing the length and using it. ++func Do_Test_sub_undo_change() ++ new ++ norm o0000000000000000000000000000000000000000000000000000 ++ silent! s/\%')/\=Repl() ++ bwipe! ++endfunc ++ ++func Test_sub_undo_change() ++ func Repl() ++ silent! norm g- ++ endfunc ++ call Do_Test_sub_undo_change() ++ ++ func! Repl() ++ silent earlier ++ endfunc ++ call Do_Test_sub_undo_change() ++ ++ delfunc Repl ++endfunc ++ +diff -up vim80/src/undo.c.cve1897 vim80/src/undo.c +--- vim80/src/undo.c.cve1897 2022-06-13 14:50:22.849290402 +0200 ++++ vim80/src/undo.c 2022-06-13 14:56:57.916492090 +0200 +@@ -2283,6 +2283,12 @@ undo_time( + if (curbuf->b_u_synced == FALSE) + u_sync(TRUE); + ++ if (text_locked()) ++ { ++ text_locked_msg(); ++ return; ++ } ++ + u_newcount = 0; + u_oldcount = 0; + if (curbuf->b_ml.ml_flags & ML_EMPTY) diff --git a/0001-patch-8.2.5037-cursor-position-may-be-invalid-after-.patch b/0001-patch-8.2.5037-cursor-position-may-be-invalid-after-.patch new file mode 100644 index 00000000..bd202858 --- /dev/null +++ b/0001-patch-8.2.5037-cursor-position-may-be-invalid-after-.patch @@ -0,0 +1,85 @@ +diff -up vim80/src/ex_docmd.c.cve1927 vim80/src/ex_docmd.c +--- vim80/src/ex_docmd.c.cve1927 2022-06-13 16:31:41.841068554 +0200 ++++ vim80/src/ex_docmd.c 2022-06-13 16:37:02.789876973 +0200 +@@ -1720,6 +1720,8 @@ do_one_cmd( + int ni; /* set when Not Implemented */ + char_u *cmd; + int address_count = 1; ++ int need_check_cursor = FALSE; ++ int ret_addr = FAIL; + + vim_memset(&ea, 0, sizeof(ea)); + ea.line1 = 1; +@@ -2084,7 +2086,7 @@ do_one_cmd( + lnum = get_address(&ea, &ea.cmd, ea.addr_type, ea.skip, + ea.addr_count == 0, address_count++); + if (ea.cmd == NULL) /* error detected */ +- goto doend; ++ goto addr_end; + if (lnum == MAXLNUM) + { + if (*ea.cmd == '%') /* '%' - all lines */ +@@ -2128,12 +2130,12 @@ do_one_cmd( + /* there is no Vim command which uses '%' and + * ADDR_WINDOWS or ADDR_TABS */ + errormsg = (char_u *)_(e_invrange); +- goto doend; ++ goto addr_end; + } + break; + case ADDR_TABS_RELATIVE: + errormsg = (char_u *)_(e_invrange); +- goto doend; ++ goto addr_end; + break; + case ADDR_ARGUMENTS: + if (ARGCOUNT == 0) +@@ -2163,7 +2165,7 @@ do_one_cmd( + if (ea.addr_type != ADDR_LINES) + { + errormsg = (char_u *)_(e_invrange); +- goto doend; ++ goto addr_end; + } + + ++ea.cmd; +@@ -2171,11 +2173,11 @@ do_one_cmd( + { + fp = getmark('<', FALSE); + if (check_mark(fp) == FAIL) +- goto doend; ++ goto addr_end; + ea.line1 = fp->lnum; + fp = getmark('>', FALSE); + if (check_mark(fp) == FAIL) +- goto doend; ++ goto addr_end; + ea.line2 = fp->lnum; + ++ea.addr_count; + } +@@ -2190,8 +2192,11 @@ do_one_cmd( + if (!ea.skip) + { + curwin->w_cursor.lnum = ea.line2; ++ + /* don't leave the cursor on an illegal line or column */ ++ // Check the cursor position before returning. + check_cursor(); ++ need_check_cursor = TRUE; + } + } + else if (*ea.cmd != ',') +@@ -2208,6 +2213,13 @@ do_one_cmd( + ea.addr_count = 0; + } + ++ ret_addr = OK; ++ ++addr_end: ++ if (need_check_cursor) ++ check_cursor(); ++ if (ret_addr == FAIL) ++ goto doend; + /* + * 5. Parse the command. + */ diff --git a/Changelog.rpm b/Changelog.rpm new file mode 100644 index 00000000..86e85af1 --- /dev/null +++ b/Changelog.rpm @@ -0,0 +1,430 @@ +* Tue Aug 28 2012 Karsten Hopp 7.3.638-1 +- patchlevel 638 + +* Mon Aug 06 2012 Karsten Hopp 2:7.3.622-2 +- add epoch to spec.vim and automatic changelog entries + +* Mon Aug 06 2012 Karsten Hopp 7.3.622-1 +- patchlevel 622 + +* Mon Aug 06 2012 Karsten Hopp 7.3.604-1 +- drop vim-6.1-rh3.patch, (bz #754801) + +* Wed Jul 18 2012 Karsten Hopp 7.3.604-1 +- patchlevel 604 + +* Wed Jul 11 2012 Petr Pisar - 2:7.3.594-2 +- Perl 5.16 rebuild + +* Tue Jul 10 2012 Karsten Hopp 7.3.594-1 +- patchlevel 594 + +* Tue Jul 10 2012 Karsten Hopp 7.3.592-1 +- patchlevel 592 + +* Mon Jul 09 2012 Petr Pisar - 2:7.3.584-2 +- Perl 5.16 rebuild + +* Mon Jul 02 2012 Karsten Hopp 7.3.584-1 +- patchlevel 584 + +* Thu Jun 28 2012 Petr Pisar - 2:7.3.556-2 +- Perl 5.16 rebuild + +* Mon Jun 18 2012 Karsten Hopp 7.3.556-1 +- patchlevel 556 + +* Mon Jun 11 2012 Petr Pisar - 2:7.3.515-2 +- Perl 5.16 rebuild + +* Mon May 21 2012 Karsten Hopp 7.3.515-1 +- enable highlighting for older log files (#816848) + +* Tue May 08 2012 Karsten Hopp 7.3.515-1 +- patchlevel 515 + +* Fri Mar 16 2012 Karsten Hopp 7.3.471-1 +- patchlevel 471 + +* Mon Feb 13 2012 Karsten Hopp 7.3.444-1 +- patchlevel 444 + +* Tue Feb 07 2012 Karsten Hopp 7.3.434-1 +- patchlevel 434 + +* Tue Feb 07 2012 Karsten Hopp 7.3.393-3 +- update spec file template, bugzilla 736774 + +* Thu Jan 26 2012 Harald Hoyer 7.3.393-3 +- rebuild against the new ruby library + +* Thu Jan 26 2012 Harald Hoyer 7.3.393-2 +- install everything in /usr + https://fedoraproject.org/wiki/Features/UsrMove + +* Thu Jan 05 2012 Karsten Hopp 7.3.393-1 +- patchlevel 393 +- fix boolean key 'Terminal' in gvim.desktop + +* Fri Dec 23 2011 Karsten Hopp 7.3.386-1 +- patchlevel 386 + +* Mon Sep 26 2011 Karsten Hopp 7.3.322-1 +- patchlevel 322 + +* Wed Sep 21 2011 Karsten Hopp 7.3.315-1 +- patchlevel 315 + +* Mon Aug 29 2011 Karsten Hopp 7.3.289-1 +- patchlevel 289 + +* Mon Aug 29 2011 Karsten Hopp 7.3.244-4 +- Remove old patched files. (Ricky Zhou ) + (bugzilla #709456) + +* Thu Jul 21 2011 Petr Sabata - 2:7.3.244-3 +- Perl mass rebuild + +* Thu Jul 21 2011 Petr Sabata - 2:7.3.244-2 +- Perl mass rebuild + +* Mon Jul 11 2011 Karsten Hopp 7.3.244-1 +- patchlevel 244 + +* Tue Jun 14 2011 Marcela Mašláňová - 2:7.3.206-3 +- Perl mass rebuild + +* Tue May 31 2011 Ville Skyttä - 2:7.3.206-2 +- Own the /usr/share/vim/vim73 dir. + +* Mon May 30 2011 Karsten Hopp 7.3.206-1 +- drop xxd-locale patch +- update to patchlevel 206 + +* Wed May 11 2011 Karsten Hopp 7.3.189-1 +- patchlevel 189 + +* Wed Mar 16 2011 Karsten Hopp 7.3.138-1 +- patchlevel 138 + +* Mon Feb 07 2011 Fedora Release Engineering - 2:7.3.107-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Mon Jan 24 2011 Karsten Hopp 7.3.107-1 +- patchlevel 107 + +* Mon Jan 10 2011 Karsten Hopp 7.3.099-1 +- patchlevel 099 + +* Mon Jan 03 2011 Karsten Hopp 7.3.094-1 +- patchlevel 094 + +* Thu Dec 09 2010 Karsten Hopp 7.3.081-1 +- patchlevel 081 + +* Wed Dec 08 2010 Karsten Hopp 7.3.080-1 +- patchlevel 080 + +* Fri Dec 03 2010 Karsten Hopp 7.3.075-1 +- patchlevel 075 + +* Thu Dec 02 2010 Karsten Hopp 7.3.073-1 +- patchlevel 073 + +* Thu Nov 25 2010 Karsten Hopp 7.3.069-1 +- patchlevel 069 + +* Wed Nov 24 2010 Karsten Hopp 7.3.068-1 +- patchlevel 068 + +* Wed Nov 24 2010 Karsten Hopp 7.3.063-1 +- patchlevel 063 + +* Wed Nov 17 2010 Karsten Hopp 7.3.062-1 +- patchlevel 062 + +* Tue Nov 16 2010 Karsten Hopp 7.3.061-1 +- patchlevel 061 + +* Tue Nov 16 2010 Karsten Hopp 7.3.056-1 +- patchlevel 056 + +* Thu Nov 11 2010 Karsten Hopp 7.3.055-1 +- patchlevel 055 + +* Wed Nov 10 2010 Karsten Hopp 7.3.051-1 +- patchlevel 051 + +* Thu Nov 04 2010 Karsten Hopp 7.3.050-1 +- patchlevel 050 + +* Thu Nov 04 2010 Karsten Hopp 7.3.048-1 +- patchlevel 048 + +* Thu Oct 28 2010 Karsten Hopp 7.3.047-1 +- patchlevel 047 + +* Wed Oct 27 2010 Karsten Hopp 7.3.046-1 +- patchlevel 046 + +* Wed Oct 27 2010 Karsten Hopp 7.3.039-1 +- patchlevel 039 + +* Sun Oct 24 2010 Karsten Hopp 7.3.035-1 +- patchlevel 035 + +* Sat Oct 23 2010 Karsten Hopp 7.3.034-1 +- patchlevel 034 + +* Sat Oct 23 2010 Karsten Hopp 7.3.033-1 +- patchlevel 033 + +* Thu Oct 21 2010 Karsten Hopp 7.3.032-1 +- patchlevel 032 + +* Wed Oct 20 2010 Karsten Hopp 7.3.031-1 +- patchlevel 031 + +* Sat Oct 16 2010 Karsten Hopp 7.3.029-1 +- patchlevel 029 + +* Fri Oct 15 2010 Karsten Hopp 7.3.028-1 +- patchlevel 028 + +* Thu Oct 14 2010 Karsten Hopp 7.3.027-1 +- patchlevel 027 + +* Wed Oct 13 2010 Karsten Hopp 7.3.026-1 +- patchlevel 026 + +* Sun Oct 10 2010 Karsten Hopp 7.3.021-1 +- patchlevel 021 + +* Sat Oct 09 2010 Karsten Hopp 7.3.020-1 +- patchlevel 020 + +* Fri Oct 01 2010 Karsten Hopp 7.3.019-1 +- patchlevel 019 + +* Thu Sep 30 2010 Karsten Hopp 7.3.018-1 +- patchlevel 018 + +* Thu Sep 30 2010 Karsten Hopp 7.3.011-3 +- add filesystem subpackage (#628293) + +* Wed Sep 29 2010 jkeating - 2:7.3.011-2 +- Rebuilt for gcc bug 634757 + +* Wed Sep 22 2010 Karsten Hopp 7.3.011-1 +- update to VIM 7.3 patchlevel 011 + +# vim:nrformats-=octal +* Tue Jul 27 2010 Mamoru Tasaka 7.2.446-2 +- Rebuild against python 2.7 + +* Tue Jul 13 2010 Karsten Hopp 7.2.446-1 +- patchlevel 446 + +* Thu Jul 08 2010 Karsten Hopp 7.2.445-1 +- patchlevel 445 + +* Wed Jun 23 2010 Karsten Hopp 7.2.444-2 +- rebuild with perl-5.12 + +* Sun Jun 13 2010 Karsten Hopp 7.2.444-1 +- patchlevel 444 + +* Sun Jun 13 2010 Karsten Hopp 7.2.443-1 +- patchlevel 443 + +* Sat Jun 05 2010 Karsten Hopp 7.2.442-1 +- patchlevel 442 + +* Wed Jun 02 2010 Marcela Maslanova - 2:7.2.441-2 +- Mass rebuild with perl-5.12.0 + +* Sun May 30 2010 Karsten Hopp 7.2.441-1 +- patchlevel 441 + +* Sat May 29 2010 Karsten Hopp 7.2.440-1 +- patchlevel 440 + +* Wed May 26 2010 Karsten Hopp 7.2.438-1 +- patchlevel 438 + +* Sat May 22 2010 Karsten Hopp 7.2.437-1 +- patchlevel 437 + +* Sun May 16 2010 Karsten Hopp 7.2.436-1 +- patchlevel 436 + +* Sat May 15 2010 Karsten Hopp 7.2.433-1 +- patchlevel 433 + +* Fri May 14 2010 Karsten Hopp 7.2.427-1 +- patchlevel 427 + +* Thu May 13 2010 Karsten Hopp 7.2.422-1 +- patchlevel 422 + +* Fri May 07 2010 Karsten Hopp 7.2.416-1 +- patchlevel 416 + +* Tue Apr 20 2010 Karsten Hopp 7.2.411-2 +- fix rvim manpage (#583180) + +* Wed Mar 24 2010 Karsten Hopp 7.2.411-1 +- patchlevel 411 + +* Tue Mar 23 2010 Karsten Hopp 7.2.410-1 +- patchlevel 410 + +* Sat Mar 20 2010 Karsten Hopp 7.2.403-1 +- patchlevel 403 + +* Thu Mar 18 2010 Karsten Hopp 7.2.402-1 +- patchlevel 402 + +* Wed Mar 17 2010 Karsten Hopp 7.2.399-1 +- patchlevel 399 + +* Wed Mar 10 2010 Karsten Hopp 7.2.394-1 +- patchlevel 394 + +* Wed Mar 03 2010 Karsten Hopp 7.2.385-1 +- patchlevel 385 + +* Tue Mar 02 2010 Karsten Hopp 7.2.384-1 +- patchlevel 384 + +* Tue Mar 02 2010 Karsten Hopp 7.2.381-1 +- patchlevel 381 + +* Sat Feb 27 2010 Karsten Hopp 7.2.377-1 +- patchlevel 377 + +* Wed Feb 24 2010 Karsten Hopp 7.2.376-1 +- patchlevel 376 + +* Thu Feb 18 2010 Karsten Hopp 7.2.368-1 +- patchlevel 368 + +* Thu Feb 18 2010 Karsten Hopp 7.2.367-1 +- patchlevel 367 + +* Wed Feb 17 2010 Karsten Hopp 7.2.365-1 +- patchlevel 365 + +* Fri Feb 12 2010 Karsten Hopp 7.2.359-1 +- patchlevel 359 + +* Thu Feb 11 2010 Karsten Hopp 7.2.357-1 +- patchlevel 357 + +* Thu Feb 04 2010 Karsten Hopp 7.2.356-1 +- patchlevel 356 + +* Wed Feb 03 2010 Karsten Hopp 7.2.354-1 +- patchlevel 354 + +* Fri Jan 29 2010 Karsten Hopp 7.2.351-1 +- patchlevel 351 + +* Thu Jan 28 2010 Karsten Hopp 7.2.350-1 +- patchlevel 350 + +* Mon Dec 7 2009 Stepan Kasal - 2:7.2.315-2 +- rebuild against perl 5.10.1 + +* Wed Dec 03 2009 Karsten Hopp 7.2.315-1 +- patchlevel 315 +- fix vimrc location in man page (#456992) +- correct syntax highlighting of httpd config files in /etc/httpd (#499123) +- Buildrequire ruby, ruby-devel (#503872) +- Remove check for static gravity (#510307) +- sort tags file (#517725) +- use one gvim to open multiple file selections from nautilus (#519265) +- use elinks -source instead of elinks -dump (#518791) +- add ext4 keyword to /etc/fstab syntax highlighting (#498290) + +* Mon Nov 09 2009 Karsten Hopp 7.2.284-1 +- patchlevel 284 + +* Thu Aug 20 2009 Karsten Hopp 7.2.245-3 +- change range of system ids in /etc/profile.d/vim/* (#518555) + +* Mon Aug 03 2009 Karsten Hopp 7.2.245-2 +- add fix for glibc fortify segfault (#514717, Adam Tkac) + +* Sat Aug 01 2009 Karsten Hopp 7.2.245-1 +- add 97 upstream patches to get to patchlevel 245 + +* Sun Jul 26 2009 Fedora Release Engineering - 2:7.2.148-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Fri Mar 27 2009 Karsten Hopp 7.2.148-1 +- patchlevel 148, fixes #461417 + +* Tue Mar 10 2009 Karsten Hopp 7.2.132-1 +- patchlevel 132, fixes accesses to freed memory + +* Wed Mar 04 2009 Karsten Hopp 7.2.131-1 +- patchlevel 131 + +* Tue Feb 24 2009 Karsten Hopp 7.2.127-1 +- patchlevel 127 + +* Mon Feb 23 2009 Karsten Hopp 7.2.124-1 +- patchlevel 124 + +* Mon Jan 26 2009 Karsten Hopp 7.2.088-1 +- patchlevel 88 + +* Thu Jan 08 2009 Karsten Hopp 7.2.079-2 +- patchlevel 79 + +* Thu Dec 04 2008 Jesse Keating - 7.2.060-2 +- Rebuild for new python. + +* Mon Dec 01 2008 Karsten Hopp 7.2.060-1 +- patchlevel 60 + +* Mon Nov 10 2008 Karsten Hopp 7.2.032-1 +- patchlevel 32 + +* Mon Nov 03 2008 Karsten Hopp 7.2.026-2 +- add more /usr/share/vim/vimfiles directories (#444387) + +* Mon Nov 03 2008 Karsten Hopp 7.2.026-1 +- patchlevel 26 +- own some directories in /usr/share/vim/vimfiles (#469491) + +* Tue Oct 21 2008 Karsten Hopp 7.2.025-2 +- re-enable clean + +* Mon Oct 20 2008 Karsten Hopp 7.2.025-1 +- patchlevel 25 +- add Categories tag to desktop file (#226526) +- add requirement on hicolor-icon-theme to vim-X11 (#226526) +- drop Amiga info files (#226526) +- remove non-utf8 man pages (#226526) +- drop Application from categories (#226526) + +* Tue Sep 30 2008 Karsten Hopp 7.2.022-1 +- patchlevel 22 + +* Mon Sep 08 2008 Karsten Hopp 7.2.013-1 +- patchlevel 13 + +* Mon Aug 25 2008 Karsten Hopp 7.2.006-1 +- patchlevel 6 + +* Mon Aug 18 2008 Karsten Hopp 7.2.002-1 +- patchlevel 2 +- fix specfile template (#446070) +- old specfile changelog moved to Changelog.rpm + +* Fri Aug 14 2008 Karsten Hopp 7.2.000-1 +- vim 7.2 +- drop 330 patches + diff --git a/EMPTY b/EMPTY deleted file mode 100644 index 0519ecba..00000000 --- a/EMPTY +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/macros.vim b/macros.vim new file mode 100644 index 00000000..a43156e7 --- /dev/null +++ b/macros.vim @@ -0,0 +1 @@ +%vimfiles_root %{_datadir}/vim/vimfiles diff --git a/sources b/sources new file mode 100644 index 00000000..98257a84 --- /dev/null +++ b/sources @@ -0,0 +1,7 @@ +SHA512 (gvim16.png) = 6c995b62c4bf547b8e23281e7df283631c771fa08f8727715d45ad34105195b68de023b65176c3f8709031fc81bf730c3933e8b034d8df041053a75ce108d10c +SHA512 (gvim32.png) = 0fb0f6e6e852cd56e6af3e6bda973e09a8ccad7bce21135a8996390571f879f4706cf768f118b0520ca12fc01c960915e843c75a51404ff4c5fed2dd3efdf5a2 +SHA512 (gvim48.png) = 32541626b266a735c689b8e9d39a2dd37f077266e2708ed41e3a967f9087d5c041b2180023f3cd2d9faadb77a8d082c0926725a4b94420e90023631cfac2b8a5 +SHA512 (gvim64.png) = 3d51edec03e9ad1f35032da7efec1b1c64715fea2bb0433dd398baf75ba5ccf3325287c2f338723f08c04f473cbcb073933f538446536392353a7ceef52f7012 +SHA512 (vim-7.0-specedit.patch) = 0a70b60a950c19dbfa7affbaa3f064739f6792382e495f450a1687e7316dc7d83426d71a823e9b2e11f349920263e723117be269eec45324d71ff8a107c7b3ee +SHA512 (vim-8.0-1763.tar.bz2) = 36b8df54aaeebbbc26c662d51e245a28c5a2e1e8e6a1444a717e3f7359b79c1bbc02152e4385eec9779361f681cc52601061f46f3bf185cae46a76e8361c25c8 +SHA512 (vim-cve3796.patch) = 8a886348c9bd49dd71d4debd7d9e09a10832ab92e87cb680f2a5d83b80846b702deaf1d581850ab1137b9a807a14ba3863aac90aae3217fdb89e38409d998334 diff --git a/spec-template b/spec-template new file mode 100644 index 00000000..a5363cc6 --- /dev/null +++ b/spec-template @@ -0,0 +1,42 @@ +Name: +Version: +Release: 1%{?dist} +Summary: + +Group: +License: +URL: +Source0: +BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) + +BuildRequires: +Requires: + +%description + + +%prep +%setup -q + + +%build +%configure +make %{?_smp_mflags} + + +%install +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%defattr(-,root,root,-) +%doc + + + +%changelog diff --git a/spec-template.new b/spec-template.new new file mode 100644 index 00000000..d9953482 --- /dev/null +++ b/spec-template.new @@ -0,0 +1,35 @@ +Name: +Version: +Release: 1%{?dist} +Summary: + +Group: +License: +URL: +Source0: + +BuildRequires: +Requires: + +%description + + +%prep +%setup -q + + +%build +%configure +make %{?_smp_mflags} + + +%install +%make_install + + +%files +%doc + + + +%changelog diff --git a/vim-7.0-fixkeys.patch b/vim-7.0-fixkeys.patch new file mode 100644 index 00000000..5554e1bf --- /dev/null +++ b/vim-7.0-fixkeys.patch @@ -0,0 +1,25 @@ +--- vim70aa/src/term.c.orig 2006-03-01 23:07:55.000000000 +0100 ++++ vim70aa/src/term.c 2006-03-14 15:39:12.000000000 +0100 +@@ -1008,14 +1008,14 @@ + {K_XRIGHT, IF_EB("\033[1;*C", ESC_STR "[1;*C")}, + {K_XLEFT, IF_EB("\033[1;*D", ESC_STR "[1;*D")}, + /* An extra set of function keys for vt100 mode */ +- {K_XF1, IF_EB("\033O*P", ESC_STR "O*P")}, +- {K_XF2, IF_EB("\033O*Q", ESC_STR "O*Q")}, +- {K_XF3, IF_EB("\033O*R", ESC_STR "O*R")}, +- {K_XF4, IF_EB("\033O*S", ESC_STR "O*S")}, +- {K_F1, IF_EB("\033[11;*~", ESC_STR "[11;*~")}, +- {K_F2, IF_EB("\033[12;*~", ESC_STR "[12;*~")}, +- {K_F3, IF_EB("\033[13;*~", ESC_STR "[13;*~")}, +- {K_F4, IF_EB("\033[14;*~", ESC_STR "[14;*~")}, ++ {K_XF1, IF_EB("\033[11~", ESC_STR "[11~")}, ++ {K_XF2, IF_EB("\033[12~", ESC_STR "[12~")}, ++ {K_XF3, IF_EB("\033[13~", ESC_STR "[13~")}, ++ {K_XF4, IF_EB("\033[14~", ESC_STR "[14~")}, ++ {K_F1, IF_EB("\033OP", ESC_STR "OP")}, ++ {K_F2, IF_EB("\033OQ", ESC_STR "OQ")}, ++ {K_F3, IF_EB("\033OR", ESC_STR "OR")}, ++ {K_F4, IF_EB("\033OS", ESC_STR "OS")}, + {K_F5, IF_EB("\033[15;*~", ESC_STR "[15;*~")}, + {K_F6, IF_EB("\033[17;*~", ESC_STR "[17;*~")}, + {K_F7, IF_EB("\033[18;*~", ESC_STR "[18;*~")}, diff --git a/vim-7.0-rclocation.patch b/vim-7.0-rclocation.patch new file mode 100644 index 00000000..840f53e8 --- /dev/null +++ b/vim-7.0-rclocation.patch @@ -0,0 +1,15 @@ +--- vim62/src/os_unix.h.rcloc 2003-08-04 15:38:05.000000000 +0200 ++++ vim62/src/os_unix.h 2003-08-04 15:39:25.000000000 +0200 +@@ -230,10 +230,10 @@ + * Unix system-dependent file names + */ + #ifndef SYS_VIMRC_FILE +-# define SYS_VIMRC_FILE "$VIM/vimrc" ++# define SYS_VIMRC_FILE "/etc/vimrc" + #endif + #ifndef SYS_GVIMRC_FILE +-# define SYS_GVIMRC_FILE "$VIM/gvimrc" ++# define SYS_GVIMRC_FILE "/etc/gvimrc" + #endif + #ifndef DFLT_HELPFILE + # define DFLT_HELPFILE "$VIMRUNTIME/doc/help.txt" diff --git a/vim-7.3-manpage-typo-668894-675480.patch b/vim-7.3-manpage-typo-668894-675480.patch new file mode 100644 index 00000000..0604fc4b --- /dev/null +++ b/vim-7.3-manpage-typo-668894-675480.patch @@ -0,0 +1,12 @@ +diff -up vim73/runtime/doc/vim.1.668894 vim73/runtime/doc/vim.1 +--- vim73/runtime/doc/vim.1.668894 2010-05-15 13:04:00.000000000 +0200 ++++ vim73/runtime/doc/vim.1 2012-08-28 12:41:36.000000000 +0200 +@@ -73,7 +73,7 @@ To edit a file that starts with a dash, + .TP + \- + The file to edit is read from stdin. Commands are read from stderr, which +-should be a tty. ++should be a TTY. + .TP + \-t {tag} + The file to edit and the initial cursor position depends on a "tag", a sort diff --git a/vim-7.4-checkhl.patch b/vim-7.4-checkhl.patch new file mode 100644 index 00000000..f7fbf904 --- /dev/null +++ b/vim-7.4-checkhl.patch @@ -0,0 +1,12 @@ +diff -up vim74/runtime/syntax/spec.vim.kh1 vim74/runtime/syntax/spec.vim +--- vim74/runtime/syntax/spec.vim.kh1 2016-08-04 15:23:25.275955301 +0200 ++++ vim74/runtime/syntax/spec.vim 2016-08-04 15:24:56.699417602 +0200 +@@ -114,7 +114,7 @@ syn region specDescriptionArea matchgrou + syn region specPackageArea matchgroup=specSection start='^%package' end='^%'me=e-1 contains=specPackageOpts,specPreAmble,specComment + + "%% Scripts Section %% +-syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|clean\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|autosetup\|autopatch\|find_lang\|make_build\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2 ++syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|check\|clean\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|find_lang\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2 + + "%% Changelog Section %% + syn region specChangelogArea matchgroup=specSection start='^%changelog' end='^%'me=e-1 contains=specEmail,specURL,specWeekday,specMonth,specNumber,specComment,specLicense diff --git a/vim-7.4-fstabsyntax.patch b/vim-7.4-fstabsyntax.patch new file mode 100644 index 00000000..f82a66c0 --- /dev/null +++ b/vim-7.4-fstabsyntax.patch @@ -0,0 +1,21 @@ +diff -up vim80/runtime/syntax/fstab.vim.fstabsyntax vim80/runtime/syntax/fstab.vim +--- vim80/runtime/syntax/fstab.vim.fstabsyntax 2017-11-19 20:32:49.000000000 +0100 ++++ vim80/runtime/syntax/fstab.vim 2017-11-20 16:01:31.494316342 +0100 +@@ -56,7 +56,7 @@ syn keyword fsMountPointKeyword containe + " Type + syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown + syn match fsTypeUnknown /\s\+\zs\w\+/ contained +-syn keyword fsTypeKeyword contained adfs ados affs anon_inodefs atfs audiofs auto autofs bdev befs bfs btrfs binfmt_misc cd9660 cfs cgroup cifs coda configfs cpuset cramfs devfs devpts devtmpfs e2compr efs ext2 ext2fs ext3 ext4 fdesc ffs filecore fuse fuseblk fusectl hfs hpfs hugetlbfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix mqueue msdos ncpfs nfs nfsd nilfs2 none ntfs null nwfs overlay ovlfs pipefs portal proc procfs pstore ptyfs qnx4 reiserfs ramfs romfs securityfs shm smbfs squashfs sockfs sshfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xenfs xfs zisofs ++syn keyword fsTypeKeyword contained adfs ados affs anon_inodefs atfs audiofs auto autofs bdev befs bfs btrfs binfmt_misc cd9660 cfs cgroup cifs coda configfs cpuset cramfs devfs devpts devtmpfs e2compr efs ext2 ext2fs ext3 ext4 fdesc ffs filecore fuse fuseblk fusectl hfs hpfs hugetlbfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix mqueue msdos ncpfs nfs nfsd nilfs2 none ntfs null nwfs overlay ovlfs pipefs portal proc procfs pstore ptyfs qnx4 reiserfs ramfs romfs rpc_pipefs securityfs shm smbfs squashfs sockfs sshfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xenfs xfs zisofs + + " Options + " ------- +@@ -68,7 +68,7 @@ syn match fsOptionsString /[a-zA-Z0-9_-] + syn keyword fsOptionsYesNo yes no + syn cluster fsOptionsCheckCluster contains=fsOptionsExt2Check,fsOptionsFatCheck + syn keyword fsOptionsSize 512 1024 2048 +-syn keyword fsOptionsGeneral async atime auto bind current defaults dev devgid devmode devmtime devuid dirsync exec force fstab kudzu loop mand move noatime noauto noclusterr noclusterw nodev nodevmtime nodiratime noexec nomand norelatime nosuid nosymfollow nouser owner rbind rdonly relatime remount ro rq rw suid suiddir supermount sw sync union update user users wxallowed xx ++syn keyword fsOptionsGeneral async atime auto bind current defaults dev devgid devmode devmtime devuid dirsync exec force fstab kudzu loop managed mand move noatime noauto noclusterr noclusterw nodev nodevmtime nodiratime noexec nomand norelatime nosuid nosymfollow nouser owner pamconsole rbind rdonly relatime remount ro rq rw suid suiddir supermount sw sync union update user users wxallowed xx + syn match fsOptionsGeneral /_netdev/ + + " Options: adfs diff --git a/vim-7.4-globalsyntax.patch b/vim-7.4-globalsyntax.patch new file mode 100644 index 00000000..1e0b08ed --- /dev/null +++ b/vim-7.4-globalsyntax.patch @@ -0,0 +1,12 @@ +diff -up vim74/runtime/syntax/spec.vim.orig vim74/runtime/syntax/spec.vim +--- vim74/runtime/syntax/spec.vim.orig 2016-01-12 13:51:55.727569873 +0100 ++++ vim74/runtime/syntax/spec.vim 2016-01-12 13:53:08.124991178 +0100 +@@ -114,7 +114,7 @@ syn region specDescriptionArea matchgrou + syn region specPackageArea matchgroup=specSection start='^%package' end='^%'me=e-1 contains=specPackageOpts,specPreAmble,specComment + + "%% Scripts Section %% +-syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|check\|clean\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|find_lang\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2 ++syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|check\|clean\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|global\|patch\d*\|configure\|GNUconfigure\|setup\|find_lang\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2 + + "%% Changelog Section %% + syn region specChangelogArea matchgroup=specSection start='^%changelog' end='^%'me=e-1 contains=specEmail,specURL,specWeekday,specMonth,specNumber,specComment,specLicense diff --git a/vim-7.4-licensemacro-1151450.patch b/vim-7.4-licensemacro-1151450.patch new file mode 100644 index 00000000..3a6e0a71 --- /dev/null +++ b/vim-7.4-licensemacro-1151450.patch @@ -0,0 +1,15 @@ +diff -up vim74_new/runtime/syntax/spec.vim.1151450 vim74_new/runtime/syntax/spec.vim +--- vim74_new/runtime/syntax/spec.vim.1151450 2014-10-13 10:45:07.570944538 +0200 ++++ vim74_new/runtime/syntax/spec.vim 2014-10-13 10:44:09.046945965 +0200 +@@ -88,9 +88,9 @@ syn region specSectionMacroBracketArea o + "%% Files Section %% + "TODO %config valid parameters: missingok\|noreplace + "TODO %verify valid parameters: \(not\)\= \(md5\|atime\|...\) +-syn region specFilesArea matchgroup=specSection start='^%[Ff][Ii][Ll][Ee][Ss]\>' skip='%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|verify\|ghost\)\>' end='^%[a-zA-Z]'me=e-2 contains=specFilesOpts,specFilesDirective,@specListedFiles,specComment,specCommandSpecial,specMacroIdentifier ++syn region specFilesArea matchgroup=specSection start='^%[Ff][Ii][Ll][Ee][Ss]\>' skip='%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|verify\|ghost\|license\)\>' end='^%[a-zA-Z]'me=e-2 contains=specFilesOpts,specFilesDirective,@specListedFiles,specComment,specCommandSpecial,specMacroIdentifier + "tip: remember to include new itens in specFilesArea above +-syn match specFilesDirective contained '%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|verify\|ghost\)\>' ++syn match specFilesDirective contained '%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|verify\|ghost\|license\)\>' + + "valid options for certain section headers + syn match specDescriptionOpts contained '\s-[ln]\s*\a'ms=s+1,me=e-1 diff --git a/vim-7.4-nowarnings.patch b/vim-7.4-nowarnings.patch new file mode 100644 index 00000000..c77f9fce --- /dev/null +++ b/vim-7.4-nowarnings.patch @@ -0,0 +1,11 @@ +diff -up vim74/src/ex_docmd.c.e319 vim74/src/ex_docmd.c +--- vim74/src/ex_docmd.c.e319 2016-02-17 14:48:23.033995923 +0100 ++++ vim74/src/ex_docmd.c 2016-02-17 14:48:03.712890575 +0100 +@@ -4630,6 +4630,7 @@ get_flags(exarg_T *eap) + void + ex_ni(exarg_T *eap) + { ++ return; + if (!eap->skip) + eap->errmsg = (char_u *)N_("E319: Sorry, the command is not available in this version"); + } diff --git a/vim-7.4-releasestring-1318991.patch b/vim-7.4-releasestring-1318991.patch new file mode 100644 index 00000000..291b957f --- /dev/null +++ b/vim-7.4-releasestring-1318991.patch @@ -0,0 +1,14 @@ +diff -up vim74/runtime/ftplugin/spec.vim.1318991 vim74/runtime/ftplugin/spec.vim +--- vim74/runtime/ftplugin/spec.vim.1318991 2016-08-04 15:29:42.423862424 +0200 ++++ vim74/runtime/ftplugin/spec.vim 2016-08-04 15:31:08.797299188 +0200 +@@ -41,8 +41,8 @@ else: + headers = spec.sourceHeader + version = headers["Version"] + release = headers["Release"] +- vim.command("let ver = " + version) +- vim.command("let rel = " + release) ++ vim.command("let ver = '" + version + "'") ++ vim.command("let rel = '" + release + "'") + PYEND + endif + endfunction diff --git a/vim-7.4-specsyntax.patch b/vim-7.4-specsyntax.patch new file mode 100644 index 00000000..3c028b56 --- /dev/null +++ b/vim-7.4-specsyntax.patch @@ -0,0 +1,33 @@ +diff -up vim74/runtime/syntax/spec.vim.highlite vim74/runtime/syntax/spec.vim +--- vim74/runtime/syntax/spec.vim.highlite 2016-07-04 10:17:45.000000000 +0200 ++++ vim74/runtime/syntax/spec.vim 2016-08-04 15:20:26.116049343 +0200 +@@ -38,7 +38,7 @@ syn match specNoNumberHilite 'X11\|X11R6 + syn match specManpageFile '[a-zA-Z]\.1' + + "Day, Month and most used license acronyms +-syn keyword specLicense contained GPL LGPL BSD MIT GNU ++syn keyword specLicense contained GPL LGPL BSD MIT GNU distributable + syn keyword specWeekday contained Mon Tue Wed Thu Fri Sat Sun + syn keyword specMonth contained Jan Feb Mar Apr Jun Jul Aug Sep Oct Nov Dec + syn keyword specMonth contained January February March April May June July August September October November December +@@ -61,9 +61,9 @@ syn cluster specListedFiles contains=spe + + "specComands + syn match specConfigure contained '\./configure' +-syn match specTarCommand contained '\". + inoremap u + +-" In many terminal emulators the mouse works just fine. By enabling it you +-" can position the cursor, Visually select and scroll with the mouse. +-if has('mouse') +- set mouse=a +-endif +- + " Switch syntax highlighting on when the terminal has colors or when using the + " GUI (which always has colors). + if &t_Co > 2 || has("gui_running") diff --git a/vim-covscan.patch b/vim-covscan.patch new file mode 100644 index 00000000..dd272a77 --- /dev/null +++ b/vim-covscan.patch @@ -0,0 +1,51 @@ +diff --git a/src/ex_getln.c b/src/ex_getln.c +index 9fdfac5..6451378 100644 +--- a/src/ex_getln.c ++++ b/src/ex_getln.c +@@ -797,6 +797,7 @@ getcmdline( + redrawcmd(); + goto cmdline_changed; + } ++ vim_free(p); + } + } + beep_flush(); +diff --git a/src/memline.c b/src/memline.c +index 4be1036..366de4c 100644 +--- a/src/memline.c ++++ b/src/memline.c +@@ -344,7 +344,7 @@ ml_open(buf_T *buf) + b0p->b0_magic_int = (int)B0_MAGIC_INT; + b0p->b0_magic_short = (short)B0_MAGIC_SHORT; + b0p->b0_magic_char = B0_MAGIC_CHAR; +- STRNCPY(b0p->b0_version, "VIM ", 4); ++ mch_memmove(b0p->b0_version, "VIM ", 4); + STRNCPY(b0p->b0_version + 4, Version, 6); + long_to_char((long)mfp->mf_page_size, b0p->b0_page_size); + +diff --git a/src/move.c b/src/move.c +index a560030..2ea3975 100644 +--- a/src/move.c ++++ b/src/move.c +@@ -1939,7 +1939,7 @@ scroll_cursor_bot(int min_scroll, int set_topbot) + scrolled += loff.height; + if (loff.lnum == curwin->w_botline + #ifdef FEAT_DIFF +- && boff.fill == 0 ++ && loff.fill == 0 + #endif + ) + scrolled -= curwin->w_empty_rows; +diff --git a/src/term.c b/src/term.c +index 9ac824f..89b663a 100644 +--- a/src/term.c ++++ b/src/term.c +@@ -1460,7 +1460,7 @@ parse_builtin_tcap(char_u *term) + if (term_7to8bit(t)) + { + *t = term_7to8bit(t); +- STRCPY(t + 1, t + 2); ++ STRMOVE(t + 1, t + 2); + } + term_strings[p->bt_entry] = s; + set_term_option_alloced(&term_strings[p->bt_entry]); diff --git a/vim-crypto-warning.patch b/vim-crypto-warning.patch new file mode 100644 index 00000000..408f755c --- /dev/null +++ b/vim-crypto-warning.patch @@ -0,0 +1,86 @@ +diff --git a/src/config.h.in b/src/config.h.in +index 7d61220..ca0b1a8 100644 +--- a/src/config.h.in ++++ b/src/config.h.in +@@ -478,3 +478,12 @@ + + /* Define to inline symbol or empty */ + #undef inline ++ ++/* Do we need FIPS warning? */ ++#undef HAVE_FIPS_WARNING ++ ++/* Link to system-fips file */ ++#undef SYSTEM_FIPS_FILE_LINK ++ ++/* Link to fips_enabled file */ ++#undef FIPS_ENABLED_FILE_LINK +diff --git a/src/configure.ac b/src/configure.ac +index 1e7d444..5e45762 100644 +--- a/src/configure.ac ++++ b/src/configure.ac +@@ -525,6 +525,38 @@ else + AC_MSG_RESULT(yes) + fi + ++dnl Checking if we want FIPS warning ++ ++AC_MSG_CHECKING(--enable-fips-warning) ++AC_ARG_ENABLE([fips-warning], ++ AS_HELP_STRING([--enable-fips-warning], [Enable FIPS warning]), ++ ,[enable_fips_warning="no"]) ++ ++if test "$enable_fips_warning" = "yes"; then ++ AC_MSG_RESULT(yes) ++ AC_DEFINE([HAVE_FIPS_WARNING]) ++ ++ dnl Setting path for system-fips file ++ ++ AC_MSG_CHECKING(--with-system-fips-file argument) ++ AC_ARG_WITH([system-fips-file], [ --with-system-fips-file=PATH Link to system-fips file (default: /etc/system-fips)], ++ with_system_fips_file=$withval, ++ with_system_fips_file="/etc/system-fips") ++ AC_MSG_RESULT([$with_system_fips_file]) ++ AC_DEFINE_UNQUOTED([SYSTEM_FIPS_FILE_LINK], ["$with_system_fips_file"]) ++ ++ dnl Setting link to fips_enabled file ++ ++ AC_MSG_CHECKING(--with-fips-enabled-file argument) ++ AC_ARG_WITH([fips-enabled-file], [ --with-fips-enabled-file=PATH Link to fibs_enabled file (default: /proc/sys/crypto/fips_enabled)], ++ with_fips_enabled_file=$withval, ++ with_fips_enabled_file="/proc/sys/crypto/fips_enabled") ++ AC_MSG_RESULT([$with_fips_enabled_file]) ++ AC_DEFINE_UNQUOTED([FIPS_ENABLED_FILE_LINK], ["$with_fips_enabled_file"]) ++else ++ AC_MSG_RESULT(no) ++fi ++ + dnl Check for Lua feature. + AC_MSG_CHECKING(--enable-luainterp argument) + AC_ARG_ENABLE(luainterp, +diff --git a/src/crypt.c b/src/crypt.c +index dfbf02c..c935bc0 100644 +--- a/src/crypt.c ++++ b/src/crypt.c +@@ -501,6 +501,21 @@ crypt_check_method(int method) + msg_scroll = TRUE; + MSG(_("Warning: Using a weak encryption method; see :help 'cm'")); + } ++#ifdef HAVE_FIPS_WARNING ++ FILE *fips_enable_fd = fopen(FIPS_ENABLED_FILE_LINK, "r"); ++ if (fips_enable_fd == NULL) ++ return; ++ ++ int enabled = fgetc(fips_enable_fd); ++ ++ if ( access(SYSTEM_FIPS_FILE_LINK, F_OK) != -1 && enabled == '1') ++ { ++ msg_scroll = TRUE; ++ MSG(_("Warning: This cryptography is not FIPS 140-2 compliant.")); ++ } ++ ++ fclose(fips_enable_fd); ++#endif + } + + void diff --git a/vim-cve3778-fix.patch b/vim-cve3778-fix.patch new file mode 100644 index 00000000..a482b388 --- /dev/null +++ b/vim-cve3778-fix.patch @@ -0,0 +1,13 @@ +diff -up vim80/src/regexp_nfa.c.cve3796-fix vim80/src/regexp_nfa.c +--- vim80/src/regexp_nfa.c.cve3796-fix 2021-09-20 08:27:13.752604505 +0200 ++++ vim80/src/regexp_nfa.c 2021-09-20 08:29:10.206546910 +0200 +@@ -5493,7 +5493,8 @@ find_match_text(colnr_T startcol, int re + match = FALSE; + break; + } +- len2 += MB_CHAR2LEN(c2); ++ len2 += enc_utf8 ? utf_ptr2len(regline + col + len2) ++ : MB_CHAR2LEN(c2); + } + if (match + #ifdef FEAT_MBYTE diff --git a/vim-manpagefixes-948566.patch b/vim-manpagefixes-948566.patch new file mode 100644 index 00000000..6f495600 --- /dev/null +++ b/vim-manpagefixes-948566.patch @@ -0,0 +1,326 @@ +diff -up vim73/runtime/doc/vim.man.rh1 vim73/runtime/doc/vim.man +--- vim73/runtime/doc/vim.man.rh1 2013-07-26 11:26:20.566576864 +0200 ++++ vim73/runtime/doc/vim.man 2013-07-26 11:47:42.061351469 +0200 +@@ -11,9 +11,9 @@ SYNOPSIS + vim [options] -t tag + vim [options] -q [errorfile] + +- ex ++ ex gex + view +- gvim gview evim eview ++ gvim gview vimx evim eview + rvim rview rgvim rgview + + DESCRIPTION +@@ -79,8 +79,13 @@ DESCRIPTION + the files. Can also be done with the "-R" argument. + + gvim gview +- The GUI version. Starts a new window. Can also be done with +- the "-g" argument. ++ The GUI version. Starts a new window. ++ ++ gex Starts a new gvim window in Ex mode. Can also be done with ++ the "-e" argument to gvim. ++ ++ vimx Starts gvim in "Vi" mode similar to "vim", but with ++ additional features like xterm clipboard support. + + evim eview + The GUI version in easy mode. Starts a new window. Can also +diff -urN vim73/runtime/doc/vim.1 vim73_new/runtime/doc/vim.1 +--- vim73/runtime/doc/vim.1 2013-07-31 14:13:01.039765800 +0200 ++++ vim73_new/runtime/doc/vim.1 2013-07-31 13:57:59.861912768 +0200 +@@ -17,11 +17,13 @@ + .PP + .br + .B ex ++.B gex + .br + .B view + .br + .B gvim + .B gview ++.B vimx + .B evim + .B eview + .br +@@ -114,7 +116,12 @@ + gvim gview + The GUI version. + Starts a new window. +-Can also be done with the "\-g" argument. ++.TP ++gex ++Starts a new gvim window in Ex mode. Can also be done with the "-e" argument to gvim ++.TP ++vimx ++Starts gvim in "Vi" mode similar to "vim", but with additional features like xterm clipboard support + .TP + evim eview + The GUI version in easy mode. +@@ -458,6 +458,12 @@ + \-\-remote\-wait\-silent + As \-\-remote\-wait, but without the warning when no server is found. + .TP ++\-\-remote\-tab[\-wait][\-silent] ++As \-\-remote but use tab page per file ++.TP ++\-\-role ++Set a unique role to identify the main window ++.TP + \-\-serverlist + List the names of all Vim servers that can be found. + .TP +diff -urN vim73/runtime/doc/vim-fr.1 vim73_new/runtime/doc/vim-fr.1 +--- vim73/runtime/doc/vim-fr.1 2010-05-15 13:04:00.000000000 +0200 ++++ vim73_new/runtime/doc/vim-fr.1 2013-07-31 13:59:10.587467916 +0200 +@@ -24,11 +24,13 @@ + .PP + .br + .B ex ++.B gex + .br + .B view + .br + .B gvim + .B gview ++.B vimx + .B evim + .B eview + .br +diff -urN vim73/runtime/doc/vim-fr.UTF-8.1 vim73_new/runtime/doc/vim-fr.UTF-8.1 +--- vim73/runtime/doc/vim-fr.UTF-8.1 2010-05-15 13:04:00.000000000 +0200 ++++ vim73_new/runtime/doc/vim-fr.UTF-8.1 2013-07-31 13:59:28.394852347 +0200 +@@ -24,11 +24,13 @@ + .PP + .br + .B ex ++.B gex + .br + .B view + .br + .B gvim + .B gview ++.B vimx + .B evim + .B eview + .br +diff -urN vim73/runtime/doc/vim-it.1 vim73_new/runtime/doc/vim-it.1 +--- vim73/runtime/doc/vim-it.1 2010-07-27 22:22:52.000000000 +0200 ++++ vim73_new/runtime/doc/vim-it.1 2013-07-31 13:59:43.474331077 +0200 +@@ -17,11 +17,13 @@ + .PP + .br + .B ex ++.B gex + .br + .B view + .br + .B gvim + .B gview ++.B vimx + .B evim + .B eview + .br +diff -urN vim73/runtime/doc/vim-it.UTF-8.1 vim73_new/runtime/doc/vim-it.UTF-8.1 +--- vim73/runtime/doc/vim-it.UTF-8.1 2010-07-30 20:53:57.000000000 +0200 ++++ vim73_new/runtime/doc/vim-it.UTF-8.1 2013-07-31 13:59:55.985898573 +0200 +@@ -17,11 +17,13 @@ + .PP + .br + .B ex ++.B gex + .br + .B view + .br + .B gvim + .B gview ++.B vimx + .B evim + .B eview + .br +diff -urN vim73/runtime/doc/vim.man vim73_new/runtime/doc/vim.man +--- vim73/runtime/doc/vim.man 2013-07-31 14:13:01.044765627 +0200 ++++ vim73_new/runtime/doc/vim.man 2013-07-31 13:53:35.107064804 +0200 +@@ -82,10 +82,10 @@ + The GUI version. Starts a new window. + + gex Starts a new gvim window in Ex mode. Can also be done with +- the "-e" argument to gvim. ++ the "-e" argument to gvim + + vimx Starts gvim in "Vi" mode similar to "vim", but with +- additional features like xterm clipboard support. ++ additional features like xterm clipboard support + + evim eview + The GUI version in easy mode. Starts a new window. Can also +diff -urN vim73/runtime/doc/vim-pl.1 vim73_new/runtime/doc/vim-pl.1 +--- vim73/runtime/doc/vim-pl.1 2010-05-15 13:04:01.000000000 +0200 ++++ vim73_new/runtime/doc/vim-pl.1 2013-07-31 14:00:21.282024131 +0200 +@@ -17,11 +17,13 @@ + .PP + .br + .B ex ++.B gex + .br + .B view + .br + .B gvim + .B gview ++.B vimx + .B evim + .B eview + .br +diff -urN vim73/runtime/doc/vim-pl.UTF-8.1 vim73_new/runtime/doc/vim-pl.UTF-8.1 +--- vim73/runtime/doc/vim-pl.UTF-8.1 2010-05-15 13:37:38.000000000 +0200 ++++ vim73_new/runtime/doc/vim-pl.UTF-8.1 2013-07-31 14:00:36.056513402 +0200 +@@ -17,11 +17,13 @@ + .PP + .br + .B ex ++.B gex + .br + .B view + .br + .B gvim + .B gview ++.B vimx + .B evim + .B eview + .br +diff -urN vim73/runtime/doc/vim-ru.1 vim73_new/runtime/doc/vim-ru.1 +--- vim73/runtime/doc/vim-ru.1 2010-05-15 13:04:00.000000000 +0200 ++++ vim73_new/runtime/doc/vim-ru.1 2013-07-31 14:01:10.071337568 +0200 +@@ -17,11 +17,15 @@ + .PP + .br + .B ex ++.B gex + .br + .B view + .br + .B gvim + .B gview ++.B vimx ++.B evim ++.B eview + .br + .B rvim + .B rview +diff -urN vim73/runtime/doc/vim-ru.UTF-8.1 vim73_new/runtime/doc/vim-ru.UTF-8.1 +--- vim73/runtime/doc/vim-ru.UTF-8.1 2010-05-15 13:04:00.000000000 +0200 ++++ vim73_new/runtime/doc/vim-ru.UTF-8.1 2013-07-31 14:01:34.494493301 +0200 +@@ -17,11 +17,15 @@ + .PP + .br + .B ex ++.B gex + .br + .B view + .br + .B gvim + .B gview ++.B vimx ++.B evim ++.B eview + .br + .B rvim + .B rview +diff -urN vim73/runtime/doc/vimtutor.1 vim73_new/runtime/doc/vimtutor.1 +--- vim73/runtime/doc/vimtutor.1 2010-05-15 13:04:00.000000000 +0200 ++++ vim73_new/runtime/doc/vimtutor.1 2013-07-31 14:10:10.093671964 +0200 +@@ -4,6 +4,8 @@ + .SH SYNOPSIS + .br + .B vimtutor [\-g] [language] ++.br ++.B gvimtutor + .SH DESCRIPTION + .B Vimtutor + starts the +diff -urN vim73/runtime/doc/vimtutor-it.1 vim73_new/runtime/doc/vimtutor-it.1 +--- vim73/runtime/doc/vimtutor-it.1 2010-07-27 22:35:32.000000000 +0200 ++++ vim73_new/runtime/doc/vimtutor-it.1 2013-07-31 14:10:33.564861055 +0200 +@@ -4,6 +4,8 @@ + .SH SINTASSI + .br + .B vimtutor [\-g] [lingua] ++.br ++.B gvimtutor + .SH DESCRIZIONE + .B Vimtutor + inizia il +diff -urN vim73/runtime/doc/vimtutor-it.UTF-8.1 vim73_new/runtime/doc/vimtutor-it.UTF-8.1 +--- vim73/runtime/doc/vimtutor-it.UTF-8.1 2010-07-30 20:53:57.000000000 +0200 ++++ vim73_new/runtime/doc/vimtutor-it.UTF-8.1 2013-07-31 14:10:40.483622016 +0200 +@@ -4,6 +4,8 @@ + .SH SINTASSI + .br + .B vimtutor [\-g] [lingua] ++.br ++.B gvimtutor + .SH DESCRIZIONE + .B Vimtutor + inizia il +diff -urN vim73/runtime/doc/vimtutor.man vim73_new/runtime/doc/vimtutor.man +--- vim73/runtime/doc/vimtutor.man 2010-05-15 13:04:00.000000000 +0200 ++++ vim73_new/runtime/doc/vimtutor.man 2013-07-31 14:11:04.786782356 +0200 +@@ -7,6 +7,7 @@ + + SYNOPSIS + vimtutor [-g] [language] ++ gvimtutor + + DESCRIPTION + Vimtutor starts the Vim tutor. It copies the tutor file first, so that +diff -urN vim73/runtime/doc/vimtutor-pl.1 vim73_new/runtime/doc/vimtutor-pl.1 +--- vim73/runtime/doc/vimtutor-pl.1 2010-05-15 13:04:00.000000000 +0200 ++++ vim73_new/runtime/doc/vimtutor-pl.1 2013-07-31 14:11:13.602477777 +0200 +@@ -4,6 +4,8 @@ + .SH SYNOPSIS + .br + .B vimtutor -g [jzyk] ++.br ++.B gvimtutor + .SH OPIS + .B Vimtutor + uruchamia nauczyciela +diff -urN vim73/runtime/doc/vimtutor-pl.UTF-8.1 vim73_new/runtime/doc/vimtutor-pl.UTF-8.1 +--- vim73/runtime/doc/vimtutor-pl.UTF-8.1 2010-05-15 13:04:00.000000000 +0200 ++++ vim73_new/runtime/doc/vimtutor-pl.UTF-8.1 2013-07-31 14:11:20.571237009 +0200 +@@ -4,6 +4,8 @@ + .SH SYNOPSIS + .br + .B vimtutor -g [język] ++.br ++.B gvimtutor + .SH OPIS + .B Vimtutor + uruchamia nauczyciela +diff -urN vim73/runtime/doc/vimtutor-ru.1 vim73_new/runtime/doc/vimtutor-ru.1 +--- vim73/runtime/doc/vimtutor-ru.1 2010-05-15 13:04:00.000000000 +0200 ++++ vim73_new/runtime/doc/vimtutor-ru.1 2013-07-31 14:11:35.673715221 +0200 +@@ -4,6 +4,8 @@ + .SH + .br + .B vimtutor [] ++.br ++.B gvimtutor + .SH + + .B vimtutor +diff -urN vim73/runtime/doc/vimtutor-ru.UTF-8.1 vim73_new/runtime/doc/vimtutor-ru.UTF-8.1 +--- vim73/runtime/doc/vimtutor-ru.UTF-8.1 2010-05-15 13:04:00.000000000 +0200 ++++ vim73_new/runtime/doc/vimtutor-ru.UTF-8.1 2013-07-31 14:11:46.649335999 +0200 +@@ -7,6 +7,8 @@ + .SH ОПИСАНИЕ + Команда + .B vimtutor ++.br ++.B gvimtutor + запускает учебник по + .B Vim. + При этом сначала происходит создание копии файла учебника, diff --git a/vim-python3-tests.patch b/vim-python3-tests.patch new file mode 100644 index 00000000..26027f74 --- /dev/null +++ b/vim-python3-tests.patch @@ -0,0 +1,87 @@ +diff -up vim80/runtime/tools/demoserver.py.python3-tests vim80/runtime/tools/demoserver.py +--- vim80/runtime/tools/demoserver.py.python3-tests 2018-05-11 08:24:41.774618804 +0200 ++++ vim80/runtime/tools/demoserver.py 2018-05-11 09:24:48.363309856 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # + # Server that will accept connections from a Vim channel. + # Run this server and then in Vim you can open the channel: +diff -up vim80/src/auto/configure.python3-tests vim80/src/auto/configure +--- vim80/src/auto/configure.python3-tests 2018-05-11 08:25:03.632420873 +0200 ++++ vim80/src/auto/configure 2018-05-11 09:25:26.062000471 +0200 +@@ -6396,7 +6396,7 @@ eof + if test "x$MACOS_X" = "xyes" && test -n "${python_PYTHONFRAMEWORK}" && ${vi_cv_path_python} -c \ + "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then + vi_cv_path_python_plibs="-framework Python" +- if test "x${vi_cv_path_python}" != "x/usr/bin/python" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then ++ if test "x${vi_cv_path_python}" != "x/usr/bin/python2" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then + vi_cv_path_python_plibs="-F${python_PYTHONFRAMEWORKPREFIX} -framework Python" + fi + else +diff -up vim80/src/configure.ac.python3-tests vim80/src/configure.ac +--- vim80/src/configure.ac.python3-tests 2018-05-11 08:25:26.070218957 +0200 ++++ vim80/src/configure.ac 2018-05-11 09:26:01.603708243 +0200 +@@ -1248,7 +1248,7 @@ eof + if test "x$MACOS_X" = "xyes" && test -n "${python_PYTHONFRAMEWORK}" && ${vi_cv_path_python} -c \ + "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then + vi_cv_path_python_plibs="-framework Python" +- if test "x${vi_cv_path_python}" != "x/usr/bin/python" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then ++ if test "x${vi_cv_path_python}" != "x/usr/bin/python2" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then + vi_cv_path_python_plibs="-F${python_PYTHONFRAMEWORKPREFIX} -framework Python" + fi + else +diff -up vim80/src/testdir/test_channel_pipe.py.python3-tests vim80/src/testdir/test_channel_pipe.py +--- vim80/src/testdir/test_channel_pipe.py.python3-tests 2018-05-11 09:23:05.738146018 +0200 ++++ vim80/src/testdir/test_channel_pipe.py 2018-05-11 09:26:37.354413350 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # + # Server that will communicate over stdin/stderr + # +diff -up vim80/src/testdir/test_channel.py.python3-tests vim80/src/testdir/test_channel.py +--- vim80/src/testdir/test_channel.py.python3-tests 2018-05-11 09:22:48.522284266 +0200 ++++ vim80/src/testdir/test_channel.py 2018-05-11 09:26:17.762574955 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # + # Server that will accept connections from a Vim channel. + # Used by test_channel.vim. +diff -up vim80/src/testdir/test_channel_write.py.python3-tests vim80/src/testdir/test_channel_write.py +--- vim80/src/testdir/test_channel_write.py.python3-tests 2018-05-11 09:23:21.254021422 +0200 ++++ vim80/src/testdir/test_channel_write.py 2018-05-11 09:26:54.952268193 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # + # Program that writes a number to stdout repeatedly + # +diff -up vim80/src/testdir/test_makeencoding.py.python3-tests vim80/src/testdir/test_makeencoding.py +--- vim80/src/testdir/test_makeencoding.py.python3-tests 2018-05-11 09:23:38.990878990 +0200 ++++ vim80/src/testdir/test_makeencoding.py 2018-05-11 09:27:14.402107759 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # -*- coding: utf-8 -*- + + # Test program for :make, :grep and :cgetfile. +diff -up vim80/src/testdir/test_netbeans.py.python3-tests vim80/src/testdir/test_netbeans.py +--- vim80/src/testdir/test_netbeans.py.python3-tests 2018-05-11 09:23:54.398752732 +0200 ++++ vim80/src/testdir/test_netbeans.py 2018-05-11 09:27:30.489975057 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # + # Server that will communicate with Vim through the netbeans interface. + # Used by test_netbeans.vim. +diff -up vim80/src/testdir/test_short_sleep.py.python3-tests vim80/src/testdir/test_short_sleep.py +--- vim80/src/testdir/test_short_sleep.py.python3-tests 2018-05-11 09:24:09.134631798 +0200 ++++ vim80/src/testdir/test_short_sleep.py 2018-05-11 09:27:48.432827053 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # + # Program that sleeps for 100 msec + # diff --git a/vim.csh b/vim.csh new file mode 100644 index 00000000..bb9ceb14 --- /dev/null +++ b/vim.csh @@ -0,0 +1,6 @@ +if ( -x /usr/bin/id ) then + if ( "`/usr/bin/id -u`" > 200 ) then + alias vi vim + endif +endif + diff --git a/vim.sh b/vim.sh new file mode 100644 index 00000000..1e4ff789 --- /dev/null +++ b/vim.sh @@ -0,0 +1,5 @@ +if [ -n "${BASH_VERSION-}" -o -n "${KSH_VERSION-}" -o -n "${ZSH_VERSION-}" ]; then + [ "`/usr/bin/id -u 2>/dev/null || echo 0`" -le 200 ] && return + # for bash and zsh, only if no alias is already set + alias vi >/dev/null 2>&1 || alias vi=vim +fi diff --git a/vim.spec b/vim.spec new file mode 100644 index 00000000..712d5ac6 --- /dev/null +++ b/vim.spec @@ -0,0 +1,2448 @@ +%define patchlevel 1763 +%if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} +%define WITH_SELINUX 1 +%endif +%define desktop_file 1 +%if %{desktop_file} +%define desktop_file_utils_version 0.2.93 +%endif + +%define withnetbeans 1 + +%define withvimspell 0 +%define withhunspell 0 +%define withruby 1 +%define withlua 1 + +%define python3 python3.6m +%define python3path %{_includedir}/%{python3} + +%define baseversion 8.0 +%define vimdir vim80 + +Summary: The VIM editor +URL: http://www.vim.org/ +Name: vim +Version: %{baseversion}.%{patchlevel} +Release: 19%{?dist}.4 +License: Vim and MIT +Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}-%{patchlevel}.tar.bz2 +Source1: vim.sh +Source2: vim.csh +Source4: virc +Source5: vimrc +Source7: gvim16.png +Source8: gvim32.png +Source9: gvim48.png +Source10: gvim64.png +Source11: Changelog.rpm +%if %{withvimspell} +Source13: vim-spell-files.tar.bz2 +%endif +Source14: spec-template +Source15: spec-template.new +Source16: macros.vim +#Source17: ftplugin-spec.vim +#Source18: syntax-spec.vim + +Patch2002: vim-7.0-fixkeys.patch +Patch2003: vim-7.4-specsyntax.patch +%if %{withhunspell} +Patch2011: vim-7.0-hunspell.patch +BuildRequires: hunspell-devel +%endif + +Patch3000: vim-7.4-syntax.patch +Patch3002: vim-7.4-nowarnings.patch +Patch3004: vim-7.0-rclocation.patch +Patch3006: vim-7.4-checkhl.patch +Patch3007: vim-7.4-fstabsyntax.patch +Patch3008: vim-7.4-syncolor.patch +Patch3009: vim-7.0-specedit.patch +Patch3010: vim-7.3-manpage-typo-668894-675480.patch +Patch3011: vim-manpagefixes-948566.patch +Patch3012: vim-7.4-licensemacro-1151450.patch +Patch3013: vim-7.4-globalsyntax.patch +Patch3014: vim-7.4-releasestring-1318991.patch +Patch3016: vim-8.0-copy-paste.patch +# migrate shebangs in script to /usr/bin/python3 and use python2 when necessary +Patch3017: vim-python3-tests.patch +# 1602727 - fixed several covscan issues and backported from upstream +Patch3018: vim-covscan.patch +# 1719812 - CVE-2019-12735 vim: vim/neovim: arbitrary command execution in getchar.c [rhel-8.1.0] +Patch3019: 0001-patch-8.1.1365-source-command-doesn-t-check-for-the-.patch +# 1605095 - vim: should not re-implement crypto +Patch3020: vim-crypto-warning.patch +# 1842755 - CVE-2019-20807 +Patch3021: 0001-patch-8.1.0881-can-execute-shell-commands-in-rvim-th.patch +# 2004975 - CVE-2021-3796 vim: use-after-free in nv_replace() in normal.c [rhel-8.6.0] +Patch3022: vim-cve3796.patch +# 2004892 - CVE-2021-3778 vim: heap-based buffer overflow in utf_ptr2char() in mbyte.c [rhel-8.6.0] +Patch3023: vim-cve3778-fix.patch +Patch3024: 0001-patch-8.2.3487-illegal-memory-access-if-buffer-name-.patch +# 2028341 - CVE-2021-3984 vim: illegal memory access when C-indenting could lead to Heap Buffer Overflow [rhel-8.6.0] +Patch3025: 0001-patch-8.2.3625-illegal-memory-access-when-C-indentin.patch +# 2028430 - CVE-2021-4019 vim: heap-based buffer overflow in find_help_tags() in src/help.c [rhel-8.6.0] +Patch3026: 0001-patch-8.2.3669-buffer-overflow-with-long-help-argume.patch +# CVE-2021-4193 vim: vulnerable to Out-of-bounds Read +Patch3027: 0001-patch-8.2.3950-going-beyond-the-end-of-the-line-with.patch +# CVE-2021-4192 vim: vulnerable to Use After Free +Patch3028: 0001-patch-8.2.3949-using-freed-memory-with-V.patch +# CVE-2022-0261 vim: Heap-based Buffer Overflow in block_insert() in src/ops.c +Patch3029: 0001-patch-8.2.4120-block-insert-goes-over-the-end-of-the.patch +# CVE-2022-0318 vim: heap-based buffer overflow in utf_head_off() in mbyte.c +Patch3030: 0001-patch-8.2.4151-reading-beyond-the-end-of-a-line.patch +# CVE-2022-0359 vim: heap-based buffer overflow in init_ccline() in ex_getln.c +Patch3031: 0001-patch-8.2.4214-illegal-memory-access-with-large-tabs.patch +# CVE-2022-0392 vim: heap-based buffer overflow in getexmodeline() in ex_getln.c +Patch3032: 0001-patch-8.2.4218-illegal-memory-access-with-bracketed-.patch +# CVE-2022-0413 vim: use after free in src/ex_cmds.c +Patch3033: 0001-patch-8.2.4253-using-freed-memory-when-substitute-wi.patch +# CVE-2022-0361 vim: Heap-based Buffer Overflow in GitHub repository +Patch3034: 0001-patch-8.2.4215-illegal-memory-access-when-copying-li.patch +# CVE-2022-1154 vim: use after free in utf_ptr2char +Patch3035: 0001-patch-8.2.4646-using-buffer-line-after-it-has-been-f.patch +# CVE-2022-1621 vim: heap buffer overflow +Patch3036: 0001-patch-8.2.4919-can-add-invalid-bytes-with-spellgood.patch +# CVE-2022-1629 vim: buffer over-read +Patch3037: 0001-patch-8.2.4925-trailing-backslash-may-cause-reading-.patch +# CVE-2022-1785 vim: Out-of-bounds Write +Patch3038: 0001-patch-8.2.4977-memory-access-error-when-substitute-e.patch +# CVE-2022-1897 vim: out-of-bounds write in vim_regsub_both() in regexp.c +Patch3039: 0001-patch-8.2.5023-substitute-overwrites-allocated-buffe.patch +# CVE-2022-1927 vim: buffer over-read in utf_ptr2char() in mbyte.c +Patch3040: 0001-patch-8.2.5037-cursor-position-may-be-invalid-after-.patch + +# gcc is no longer in buildroot by default +BuildRequires: gcc + +BuildRequires: python2-devel python3-devel ncurses-devel gettext perl-devel +BuildRequires: perl-generators +BuildRequires: perl(ExtUtils::Embed) perl(ExtUtils::ParseXS) +BuildRequires: libacl-devel gpm-devel autoconf file +# needed for appstream-util +BuildRequires: libappstream-glib +%if %{WITH_SELINUX} +BuildRequires: libselinux-devel +%endif +%if "%{withruby}" == "1" +BuildRequires: ruby-devel ruby +%endif +%if "%{withlua}" == "1" +BuildRequires: lua-devel +%endif +%if %{desktop_file} +# for /usr/bin/desktop-file-install +Requires: desktop-file-utils +BuildRequires: desktop-file-utils >= %{desktop_file_utils_version} +%endif +Epoch: 2 +Conflicts: filesystem < 3 + +%description +VIM (VIsual editor iMproved) is an updated and improved version of the +vi editor. Vi was the first real screen-based editor for UNIX, and is +still very popular. VIM improves on vi by adding new features: +multiple windows, multi-level undo, block highlighting and more. + +%package common +Summary: The common files needed by any version of the VIM editor +Conflicts: man-pages-fr < 0.9.7-14 +Conflicts: man-pages-it < 0.3.0-17 +Conflicts: man-pages-pl < 0.24-2 +Requires: %{name}-filesystem +# it conflicts with older version of vim-minimal during update because of manpage +# move +Conflicts: %{name}-minimal < 8.0.1428-4 + +%description common +VIM (VIsual editor iMproved) is an updated and improved version of the +vi editor. Vi was the first real screen-based editor for UNIX, and is +still very popular. VIM improves on vi by adding new features: +multiple windows, multi-level undo, block highlighting and more. The +vim-common package contains files which every VIM binary will need in +order to run. + +If you are installing vim-enhanced or vim-X11, you'll also need +to install the vim-common package. + +%package spell +Summary: The dictionaries for spell checking. This package is optional +Requires: vim-common = %{epoch}:%{version}-%{release} + +%description spell +This subpackage contains dictionaries for vim spell checking in +many different languages. + +%package minimal +Summary: A minimal version of the VIM editor +Provides: vi = %{version}-%{release} +Provides: %{_bindir}/vi +# it conflicts with older version of vim-common during update because of manpage +# move +Conflicts: %{name}-common < 8.0.1428-4 + +%description minimal +VIM (VIsual editor iMproved) is an updated and improved version of the +vi editor. Vi was the first real screen-based editor for UNIX, and is +still very popular. VIM improves on vi by adding new features: +multiple windows, multi-level undo, block highlighting and more. The +vim-minimal package includes a minimal version of VIM, which is +installed into /bin/vi for use when only the root partition is +present. NOTE: The online help is only available when the vim-common +package is installed. + +%package enhanced +Summary: A version of the VIM editor which includes recent enhancements +Requires: vim-common = %{epoch}:%{version}-%{release} which +Provides: vim = %{version}-%{release} +Provides: %{_bindir}/mergetool +Provides: %{_bindir}/vim +# suggest python3, python2, lua, ruby and perl packages because of their +# embedded functionality in Vim/GVim +Suggests: python2 python2-libs +Suggests: python3 python3-libs +Suggests: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) perl-libs perl-devel +%if "%{withruby}" == "1" +Suggests: ruby-libs ruby +%endif +%if "%{withlua}" == "1" +Suggests: lua-libs +%endif + +%description enhanced +VIM (VIsual editor iMproved) is an updated and improved version of the +vi editor. Vi was the first real screen-based editor for UNIX, and is +still very popular. VIM improves on vi by adding new features: +multiple windows, multi-level undo, block highlighting and more. The +vim-enhanced package contains a version of VIM with extra, recently +introduced features like Python and Perl interpreters. + +Install the vim-enhanced package if you'd like to use a version of the +VIM editor which includes recently added enhancements like +interpreters for the Python and Perl scripting languages. You'll also +need to install the vim-common package. + +%package filesystem +Summary: VIM filesystem layout +BuildArch: noarch + +%Description filesystem +This package provides some directories which are required by other +packages that add vim files, p.e. additional syntax files or filetypes. + +%package X11 +Summary: The VIM version of the vi editor for the X Window System - GVim +# needed in configure script to have correct macros enabled (#1602807) +BuildRequires: gtk3-devel +BuildRequires: libX11-devel +BuildRequires: libSM-devel +BuildRequires: libXt-devel +BuildRequires: libXpm-devel +BuildRequires: libICE-devel + +Requires: vim-common = %{epoch}:%{version}-%{release} libattr >= 2.4 gtk3 +Provides: gvim = %{version}-%{release} +Provides: %{_bindir}/mergetool +Provides: %{_bindir}/gvim +Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) +Requires: hicolor-icon-theme +# suggest python3, python2, lua, ruby and perl packages because of their +# embedded functionality in Vim/GVim +Suggests: python2 python2-libs +Suggests: python3 python3-libs +Suggests: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) perl-libs perl-devel +%if "%{withruby}" == "1" +Suggests: ruby-libs ruby +%endif +%if "%{withlua}" == "1" +Suggests: lua-libs +%endif + +%description X11 +VIM (VIsual editor iMproved) is an updated and improved version of the +vi editor. Vi was the first real screen-based editor for UNIX, and is +still very popular. VIM improves on vi by adding new features: +multiple windows, multi-level undo, block highlighting and +more. VIM-X11 is a version of the VIM editor which will run within the +X Window System. If you install this package, you can run VIM as an X +application with a full GUI interface and mouse support by command gvim. + +Install the vim-X11 package if you'd like to try out a version of vi +with graphics and mouse capabilities. You'll also need to install the +vim-common package. + +%prep +%setup -q -b 0 -n %{vimdir} + +#use %%{__python3} macro for defining shebang in python3 tests +sed -i -e 's,/usr/bin/python3,%{__python3},' %{PATCH3017} + +# fix rogue dependencies from sample code +chmod -x runtime/tools/mve.awk +%patch2002 -p1 +%patch2003 -p1 +%if %{withhunspell} +%patch2011 -p1 +%endif +perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk + +# install spell files +%if %{withvimspell} +%{__tar} xjf %{SOURCE13} +%endif + +%patch3000 -p1 +%patch3002 -p1 +%patch3004 -p1 +%patch3006 -p1 +%patch3007 -p1 +%patch3008 -p1 -b .syncolor +#patch3009 -p1 +%patch3010 -p1 +%patch3011 -p1 +%patch3012 -p1 +%patch3013 -p1 +%patch3014 -p1 +%patch3016 -p1 +%patch3017 -p1 +%patch3018 -p1 +%patch3019 -p1 -b .cve +%patch3020 -p1 -b .crypto-warning +%patch3021 -p1 -b .rvim +%patch3022 -p1 -b .cve3796 +%patch3023 -p1 -b .cve3778 +%patch3024 -p1 -b .cve3872 +%patch3025 -p1 -b .cve3984 +%patch3026 -p1 -b .cve4019 +%patch3027 -p1 -b .cve4193 +%patch3028 -p1 -b .cve4192 +%patch3029 -p1 -b .cve0261 +%patch3030 -p1 -b .cve0318 +%patch3031 -p1 -b .cve0359 +%patch3032 -p1 -b .cve0392 +%patch3033 -p1 -b .cve0413 +%patch3034 -p1 -b .cve0361 +%patch3035 -p1 -b .cve1154 +%patch3036 -p1 -b .cve1621 +%patch3037 -p1 -b .cve1629 +%patch3038 -p1 -b .cve1785 +%patch3039 -p1 -b .cve1897 +%patch3040 -p1 -b .cve1927 + +%build +%if 0%{?rhel} > 7 +export RHEL_ALLOW_PYTHON2_FOR_BUILD=1 +%endif + +cd src +autoconf + +sed -e "s+VIMRCLOC = \$(VIMLOC)+VIMRCLOC = /etc+" Makefile > Makefile.tmp +mv -f Makefile.tmp Makefile + +export CFLAGS="%{optflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -I%{python3path}" +export CXXFLAGS="%{optflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -I%{python3path}" + +cp -f os_unix.h os_unix.h.save +cp -f ex_cmds.c ex_cmds.c.save + +perl -pi -e "s/vimrc/virc/" os_unix.h +%configure --prefix=%{_prefix} --with-features=small --with-x=no \ + --enable-multibyte \ + --disable-netbeans \ +%if %{WITH_SELINUX} + --enable-selinux \ +%else + --disable-selinux \ +%endif + --disable-pythoninterp --disable-perlinterp --disable-tclinterp \ + --with-tlib=ncurses --enable-gui=no --disable-gpm --exec-prefix=/ \ + --enable-fips-warning \ + --with-compiledby="" \ + --with-modified-by="" + +make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir} %{?_smp_mflags} +cp vim minimal-vim +make clean + +mv -f os_unix.h.save os_unix.h +mv -f ex_cmds.c.save ex_cmds.c + +%configure --with-features=huge \ + --enable-pythoninterp=dynamic \ + --enable-python3interp=dynamic \ + --enable-perlinterp=dynamic \ + --disable-tclinterp --with-x=yes \ + --enable-xim --enable-multibyte \ + --with-tlib=ncurses \ + --enable-gtk3-check --enable-gui=gtk3 \ + --enable-fips-warning \ + --with-compiledby="" --enable-cscope \ + --with-modified-by="" \ +%if "%{withnetbeans}" == "1" + --enable-netbeans \ +%else + --disable-netbeans \ +%endif +%if %{WITH_SELINUX} + --enable-selinux \ +%else + --disable-selinux \ +%endif +%if "%{withruby}" == "1" + --enable-rubyinterp=dynamic \ +%else + --disable-rubyinterp \ +%endif +%if "%{withlua}" == "1" + --enable-luainterp=dynamic \ +%else + --disable-luainterp \ +%endif + --enable-termtruecolor + +make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir} %{?_smp_mflags} +cp vim gvim +make clean + +%configure --prefix=%{_prefix} --with-features=huge \ + --enable-pythoninterp=dynamic \ + --enable-python3interp=dynamic \ + --enable-perlinterp=dynamic \ + --disable-tclinterp \ + --with-x=no \ + --enable-gui=no --exec-prefix=%{_prefix} --enable-multibyte \ + --enable-cscope --with-modified-by="" \ + --with-tlib=ncurses \ + --enable-fips-warning \ + --with-compiledby="" \ +%if "%{withnetbeans}" == "1" + --enable-netbeans \ +%else + --disable-netbeans \ +%endif +%if %{WITH_SELINUX} + --enable-selinux \ +%else + --disable-selinux \ +%endif +%if "%{withruby}" == "1" + --enable-rubyinterp=dynamic \ +%else + --disable-rubyinterp \ +%endif +%if "%{withlua}" == "1" + --enable-luainterp=dynamic \ +%else + --disable-luainterp \ +%endif + --enable-termtruecolor + +make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir} %{?_smp_mflags} +cp vim enhanced-vim + +%install +mkdir -p %{buildroot}/%{_bindir} +mkdir -p %{buildroot}/%{_datadir}/%{name}/vimfiles/{after,autoload,colors,compiler,doc,ftdetect,ftplugin,indent,keymap,lang,plugin,print,spell,syntax,tutor} +mkdir -p %{buildroot}/%{_datadir}/%{name}/vimfiles/after/{autoload,colors,compiler,doc,ftdetect,ftplugin,indent,keymap,lang,plugin,print,spell,syntax,tutor} +cp -f %{SOURCE11} . +%if %{?fedora}%{!?fedora:0} >= 16 || %{?rhel}%{!?rhel:0} >= 6 +cp -f %{SOURCE15} %{buildroot}/%{_datadir}/%{name}/vimfiles/template.spec +%else +cp -f %{SOURCE14} %{buildroot}/%{_datadir}/%{name}/vimfiles/template.spec +%endif +cp runtime/doc/uganda.txt LICENSE +# Those aren't Linux info files but some binary files for Amiga: +rm -f README*.info + + +cd src +# Adding STRIP=/bin/true, because Vim wants to strip the binary by himself - +# build system does it for us +make install DESTDIR=%{buildroot} BINDIR=%{_bindir} VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir} STRIP=/bin/true +make installgtutorbin DESTDIR=%{buildroot} BINDIR=%{_bindir} VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir} +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/{16x16,32x32,48x48,64x64}/apps +install -m755 minimal-vim %{buildroot}%{_bindir}/vi +install -m755 enhanced-vim %{buildroot}%{_bindir}/vim +install -m755 gvim %{buildroot}%{_bindir}/gvim +install -p -m644 %{SOURCE7} \ + %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/gvim.png +install -p -m644 %{SOURCE8} \ + %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/gvim.png +install -p -m644 %{SOURCE9} \ + %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/gvim.png +install -p -m644 %{SOURCE10} \ + %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/gvim.png +#cp -f %{SOURCE17} %{buildroot}/%{_datadir}/%{name}/%{vimdir}/ftplugin/spec.vim +#cp -f %{SOURCE18} %{buildroot}/%{_datadir}/%{name}/%{vimdir}/syntax/spec.vim + +# Register as an application to be visible in the software center +# +# NOTE: It would be *awesome* if this file was maintained by the upstream +# project, translated and installed into the right place during `make install`. +# +# See http://www.freedesktop.org/software/appstream/docs/ for more details. +# +mkdir -p $RPM_BUILD_ROOT%{_datadir}/metainfo +cat > $RPM_BUILD_ROOT%{_datadir}/metainfo/gvim.appdata.xml < + + + + gvim.desktop + CC0-1.0 + Vim + +

+ Vim is an advanced text editor that seeks to provide the power of the + de-facto Unix editor 'Vi', with a more complete feature set. + It's useful whether you're already using vi or using a different editor. +

+

+ Vim is a highly configurable text editor built to enable efficient text + editing. + Vim is often called a "programmer's editor," and so useful for programming + that many consider it an entire IDE. It is not just for programmers, though. + Vim is perfect for all kinds of text editing, from composing email to + editing configuration files. +

+
+ + + https://raw.githubusercontent.com/zdohnal/vim/zdohnal-screenshot/gvim16_9.png + + + http://www.vim.org/ +
+EOF + +( cd %{buildroot} + ln -sf vi ./%{_bindir}/rvi + ln -sf vi ./%{_bindir}/rview + ln -sf vi ./%{_bindir}/view + ln -sf vi ./%{_bindir}/ex + ln -sf vim ./%{_bindir}/rvim + ln -sf vim ./%{_bindir}/vimdiff + perl -pi -e "s,%{buildroot},," .%{_mandir}/man1/vim.1 .%{_mandir}/man1/vimtutor.1 + rm -f .%{_mandir}/man1/rvim.1 + cp -p .%{_mandir}/man1/vim.1 .%{_mandir}/man1/vi.1 + ln -sf vi.1.gz .%{_mandir}/man1/rvi.1.gz + ln -sf vim.1.gz .%{_mandir}/man1/vimdiff.1.gz + ln -sf gvim ./%{_bindir}/gview + ln -sf gvim ./%{_bindir}/gex + ln -sf gvim ./%{_bindir}/evim + ln -sf gvim ./%{_bindir}/gvimdiff + ln -sf gvim ./%{_bindir}/vimx + %if "%{desktop_file}" == "1" + mkdir -p %{buildroot}/%{_datadir}/applications + desktop-file-install \ + %if 0%{?fedora} && 0%{?fedora} < 19 + --vendor fedora \ + %endif + --dir %{buildroot}/%{_datadir}/applications \ + %{_builddir}/%{vimdir}/runtime/gvim.desktop + # --add-category "Development;TextEditor;X-Red-Hat-Base" D\ + %else + mkdir -p ./%{_sysconfdir}/X11/applnk/Applications + cp %{_builddir}/%{vimdir}/runtime/gvim.desktop ./%{_sysconfdir}/X11/applnk/Applications/gvim.desktop + %endif + # ja_JP.ujis is obsolete, ja_JP.eucJP is recommended. + ( cd ./%{_datadir}/%{name}/%{vimdir}/lang; \ + ln -sf menu_ja_jp.ujis.vim menu_ja_jp.eucjp.vim ) +) + +appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/metainfo/*.appdata.xml + +pushd %{buildroot}/%{_datadir}/%{name}/%{vimdir}/tutor +mkdir conv + iconv -f CP1252 -t UTF8 tutor.ca > conv/tutor.ca + iconv -f CP1252 -t UTF8 tutor.it > conv/tutor.it + #iconv -f CP1253 -t UTF8 tutor.gr > conv/tutor.gr + iconv -f CP1252 -t UTF8 tutor.fr > conv/tutor.fr + iconv -f CP1252 -t UTF8 tutor.es > conv/tutor.es + iconv -f CP1252 -t UTF8 tutor.de > conv/tutor.de + #iconv -f CP737 -t UTF8 tutor.gr.cp737 > conv/tutor.gr.cp737 + #iconv -f EUC-JP -t UTF8 tutor.ja.euc > conv/tutor.ja.euc + #iconv -f SJIS -t UTF8 tutor.ja.sjis > conv/tutor.ja.sjis + iconv -f UTF8 -t UTF8 tutor.ja.utf-8 > conv/tutor.ja.utf-8 + iconv -f UTF8 -t UTF8 tutor.ko.utf-8 > conv/tutor.ko.utf-8 + iconv -f CP1252 -t UTF8 tutor.no > conv/tutor.no + iconv -f ISO-8859-2 -t UTF8 tutor.pl > conv/tutor.pl + iconv -f ISO-8859-2 -t UTF8 tutor.sk > conv/tutor.sk + iconv -f KOI8R -t UTF8 tutor.ru > conv/tutor.ru + iconv -f CP1252 -t UTF8 tutor.sv > conv/tutor.sv + mv -f tutor.ja.euc tutor.ja.sjis tutor.ko.euc tutor.pl.cp1250 tutor.zh.big5 tutor.ru.cp1251 tutor.zh.euc tutor.sr.cp1250 tutor.sr.utf-8 conv/ + rm -f tutor.ca tutor.de tutor.es tutor.fr tutor.gr tutor.it tutor.ja.utf-8 tutor.ko.utf-8 tutor.no tutor.pl tutor.sk tutor.ru tutor.sv +mv -f conv/* . +rmdir conv +popd + +# Dependency cleanups +chmod 644 %{buildroot}/%{_datadir}/%{name}/%{vimdir}/doc/vim2html.pl \ + %{buildroot}/%{_datadir}/%{name}/%{vimdir}/tools/*.pl \ + %{buildroot}/%{_datadir}/%{name}/%{vimdir}/tools/vim132 +chmod 644 ../runtime/doc/vim2html.pl + +mkdir -p %{buildroot}/%{_sysconfdir}/profile.d +cp %{SOURCE1} %{buildroot}/%{_sysconfdir}/profile.d/vim.sh +cp %{SOURCE2} %{buildroot}/%{_sysconfdir}/profile.d/vim.csh +chmod 0644 %{buildroot}/%{_sysconfdir}/profile.d/vim.* +install -p -m644 %{SOURCE4} %{buildroot}/%{_sysconfdir}/virc +install -p -m644 %{SOURCE5} %{buildroot}/%{_sysconfdir}/vimrc + +# if Vim isn't built for Fedora, use redhat augroup +%if 0%{?rhel} >= 7 +sed -i -e "s/augroup fedora/augroup redhat/" %{buildroot}/%{_sysconfdir}/vimrc +sed -i -e "s/augroup fedora/augroup redhat/" %{buildroot}/%{_sysconfdir}/virc +%endif + +mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d/ +install -p -m644 %{SOURCE16} %{buildroot}%{_rpmconfigdir}/macros.d/ + +(cd ../runtime; rm -rf doc; ln -svf ../../vim/%{vimdir}/doc docs;) +rm -f %{buildroot}/%{_datadir}/vim/%{vimdir}/macros/maze/maze*.c +rm -rf %{buildroot}/%{_datadir}/vim/%{vimdir}/tools +rm -rf %{buildroot}/%{_datadir}/vim/%{vimdir}/doc/vim2html.pl +rm -f %{buildroot}/%{_datadir}/vim/%{vimdir}/tutor/tutor.gr.utf-8~ + +# Remove not UTF-8 manpages +for i in pl.ISO8859-2 it.ISO8859-1 ru.KOI8-R fr.ISO8859-1; do + rm -rf %{buildroot}/%{_mandir}/$i +done + +# use common man1/ru directory +mv %{buildroot}/%{_mandir}/ru.UTF-8 %{buildroot}/%{_mandir}/ru + +# Remove duplicate man pages +for i in fr.UTF-8 it.UTF-8 pl.UTF-8; do + rm -rf %{buildroot}/%{_mandir}/$i +done + +for i in rvim.1 gvim.1 gex.1 gview.1 vimx.1; do + echo ".so man1/vim.1" > %{buildroot}/%{_mandir}/man1/$i +done +echo ".so man1/vimdiff.1" > %{buildroot}/%{_mandir}/man1/gvimdiff.1 +echo ".so man1/vimtutor.1" > %{buildroot}/%{_mandir}/man1/gvimtutor.1 +mkdir -p %{buildroot}/%{_mandir}/man5 +echo ".so man1/vim.1" > %{buildroot}/%{_mandir}/man5/vimrc.5 +echo ".so man1/vi.1" > %{buildroot}/%{_mandir}/man5/virc.5 +touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags + +# Refresh documentation helptags +%transfiletriggerin common -- %{_datadir}/%{name}/vimfiles/doc +%{_bindir}/vim -c ":helptags %{_datadir}/%{name}/vimfiles/doc" -c :q &> /dev/null || : + +%transfiletriggerpostun common -- %{_datadir}/%{name}/vimfiles/doc +> %{_datadir}/%{name}/vimfiles/doc/tags || : +%{_bindir}/vim -c ":helptags %{_datadir}/%{name}/vimfiles/doc" -c :q &> /dev/null || : + +%files common +%config(noreplace) %{_sysconfdir}/vimrc +%{!?_licensedir:%global license %%doc} +%license LICENSE +%doc README* +%doc runtime/docs +%doc Changelog.rpm +%dir %{_datadir}/%{name} +%{_datadir}/%{name}/vimfiles/template.spec +%dir %{_datadir}/%{name}/%{vimdir} +%{_datadir}/%{name}/%{vimdir}/rgb.txt +%{_datadir}/%{name}/%{vimdir}/autoload +%{_datadir}/%{name}/%{vimdir}/colors +%{_datadir}/%{name}/%{vimdir}/compiler +%{_datadir}/%{name}/%{vimdir}/pack +%{_datadir}/%{name}/%{vimdir}/doc +%{_datadir}/%{name}/%{vimdir}/*.vim +%{_datadir}/%{name}/%{vimdir}/ftplugin +%{_datadir}/%{name}/%{vimdir}/indent +%{_datadir}/%{name}/%{vimdir}/keymap +%{_datadir}/%{name}/%{vimdir}/lang/*.vim +%{_datadir}/%{name}/%{vimdir}/lang/*.txt +%dir %{_datadir}/%{name}/%{vimdir}/lang +%{_datadir}/%{name}/%{vimdir}/macros +%{_datadir}/%{name}/%{vimdir}/plugin +%{_datadir}/%{name}/%{vimdir}/print +%{_datadir}/%{name}/%{vimdir}/syntax +%{_datadir}/%{name}/%{vimdir}/tutor +%if ! %{withvimspell} +%{_datadir}/%{name}/%{vimdir}/spell +%endif +%lang(af) %{_datadir}/%{name}/%{vimdir}/lang/af +%lang(ca) %{_datadir}/%{name}/%{vimdir}/lang/ca +%lang(cs) %{_datadir}/%{name}/%{vimdir}/lang/cs +%lang(cs.cp1250) %{_datadir}/%{name}/%{vimdir}/lang/cs.cp1250 +%lang(de) %{_datadir}/%{name}/%{vimdir}/lang/de +%lang(en_GB) %{_datadir}/%{name}/%{vimdir}/lang/en_GB +%lang(eo) %{_datadir}/%{name}/%{vimdir}/lang/eo +%lang(es) %{_datadir}/%{name}/%{vimdir}/lang/es +%lang(fi) %{_datadir}/%{name}/%{vimdir}/lang/fi +%lang(fr) %{_datadir}/%{name}/%{vimdir}/lang/fr +%lang(ga) %{_datadir}/%{name}/%{vimdir}/lang/ga +%lang(it) %{_datadir}/%{name}/%{vimdir}/lang/it +%lang(ja) %{_datadir}/%{name}/%{vimdir}/lang/ja +%lang(ja.euc-jp) %{_datadir}/%{name}/%{vimdir}/lang/ja.euc-jp +%lang(ja.sjis) %{_datadir}/%{name}/%{vimdir}/lang/ja.sjis +%lang(ko) %{_datadir}/%{name}/%{vimdir}/lang/ko +%lang(ko) %{_datadir}/%{name}/%{vimdir}/lang/ko.UTF-8 +%lang(lv) %{_datadir}/%{name}/%{vimdir}/lang/lv +%lang(nb) %{_datadir}/%{name}/%{vimdir}/lang/nb +%lang(nl) %{_datadir}/%{name}/%{vimdir}/lang/nl +%lang(no) %{_datadir}/%{name}/%{vimdir}/lang/no +%lang(pl) %{_datadir}/%{name}/%{vimdir}/lang/pl +%lang(pl.UTF-8) %{_datadir}/%{name}/%{vimdir}/lang/pl.UTF-8 +%lang(pl.cp1250) %{_datadir}/%{name}/%{vimdir}/lang/pl.cp1250 +%lang(pt_BR) %{_datadir}/%{name}/%{vimdir}/lang/pt_BR +%lang(ru) %{_datadir}/%{name}/%{vimdir}/lang/ru +%lang(ru.cp1251) %{_datadir}/%{name}/%{vimdir}/lang/ru.cp1251 +%lang(sk) %{_datadir}/%{name}/%{vimdir}/lang/sk +%lang(sk.cp1250) %{_datadir}/%{name}/%{vimdir}/lang/sk.cp1250 +%lang(sr) %{_datadir}/%{name}/%{vimdir}/lang/sr +%lang(sv) %{_datadir}/%{name}/%{vimdir}/lang/sv +%lang(uk) %{_datadir}/%{name}/%{vimdir}/lang/uk +%lang(uk.cp1251) %{_datadir}/%{name}/%{vimdir}/lang/uk.cp1251 +%lang(vi) %{_datadir}/%{name}/%{vimdir}/lang/vi +%lang(zh_CN) %{_datadir}/%{name}/%{vimdir}/lang/zh_CN +%lang(zh_CN.cp936) %{_datadir}/%{name}/%{vimdir}/lang/zh_CN.cp936 +%lang(zh_TW) %{_datadir}/%{name}/%{vimdir}/lang/zh_TW +%lang(zh_CN.UTF-8) %{_datadir}/%{name}/%{vimdir}/lang/zh_CN.UTF-8 +%lang(zh_TW.UTF-8) %{_datadir}/%{name}/%{vimdir}/lang/zh_TW.UTF-8 +/%{_bindir}/xxd +%{_mandir}/man1/gex.* +%{_mandir}/man1/gview.* +%{_mandir}/man1/gvim* +%{_mandir}/man1/rvim.* +%{_mandir}/man1/vim.* +%{_mandir}/man1/vimdiff.* +%{_mandir}/man1/vimtutor.* +%{_mandir}/man1/vimx.* +%{_mandir}/man1/xxd.* +%{_mandir}/man5/vimrc.* +%lang(fr) %{_mandir}/fr/man1/* +%lang(it) %{_mandir}/it/man1/* +%lang(ja) %{_mandir}/ja/man1/* +%lang(pl) %{_mandir}/pl/man1/* +%lang(ru) %{_mandir}/ru/man1/* + +%if %{withvimspell} +%files spell +%dir %{_datadir}/%{name}/%{vimdir}/spell +%{_datadir}/%{name}/vim70/spell/cleanadd.vim +%lang(af) %{_datadir}/%{name}/%{vimdir}/spell/af.* +%lang(am) %{_datadir}/%{name}/%{vimdir}/spell/am.* +%lang(bg) %{_datadir}/%{name}/%{vimdir}/spell/bg.* +%lang(ca) %{_datadir}/%{name}/%{vimdir}/spell/ca.* +%lang(cs) %{_datadir}/%{name}/%{vimdir}/spell/cs.* +%lang(cy) %{_datadir}/%{name}/%{vimdir}/spell/cy.* +%lang(da) %{_datadir}/%{name}/%{vimdir}/spell/da.* +%lang(de) %{_datadir}/%{name}/%{vimdir}/spell/de.* +%lang(el) %{_datadir}/%{name}/%{vimdir}/spell/el.* +%lang(en) %{_datadir}/%{name}/%{vimdir}/spell/en.* +%lang(eo) %{_datadir}/%{name}/%{vimdir}/spell/eo.* +%lang(es) %{_datadir}/%{name}/%{vimdir}/spell/es.* +%lang(fo) %{_datadir}/%{name}/%{vimdir}/spell/fo.* +%lang(fr) %{_datadir}/%{name}/%{vimdir}/spell/fr.* +%lang(ga) %{_datadir}/%{name}/%{vimdir}/spell/ga.* +%lang(gd) %{_datadir}/%{name}/%{vimdir}/spell/gd.* +%lang(gl) %{_datadir}/%{name}/%{vimdir}/spell/gl.* +%lang(he) %{_datadir}/%{name}/%{vimdir}/spell/he.* +%lang(hr) %{_datadir}/%{name}/%{vimdir}/spell/hr.* +%lang(hu) %{_datadir}/%{name}/%{vimdir}/spell/hu.* +%lang(id) %{_datadir}/%{name}/%{vimdir}/spell/id.* +%lang(it) %{_datadir}/%{name}/%{vimdir}/spell/it.* +%lang(ku) %{_datadir}/%{name}/%{vimdir}/spell/ku.* +%lang(la) %{_datadir}/%{name}/%{vimdir}/spell/la.* +%lang(lt) %{_datadir}/%{name}/%{vimdir}/spell/lt.* +%lang(lv) %{_datadir}/%{name}/%{vimdir}/spell/lv.* +%lang(mg) %{_datadir}/%{name}/%{vimdir}/spell/mg.* +%lang(mi) %{_datadir}/%{name}/%{vimdir}/spell/mi.* +%lang(ms) %{_datadir}/%{name}/%{vimdir}/spell/ms.* +%lang(nb) %{_datadir}/%{name}/%{vimdir}/spell/nb.* +%lang(nl) %{_datadir}/%{name}/%{vimdir}/spell/nl.* +%lang(nn) %{_datadir}/%{name}/%{vimdir}/spell/nn.* +%lang(ny) %{_datadir}/%{name}/%{vimdir}/spell/ny.* +%lang(pl) %{_datadir}/%{name}/%{vimdir}/spell/pl.* +%lang(pt) %{_datadir}/%{name}/%{vimdir}/spell/pt.* +%lang(ro) %{_datadir}/%{name}/%{vimdir}/spell/ro.* +%lang(ru) %{_datadir}/%{name}/%{vimdir}/spell/ru.* +%lang(rw) %{_datadir}/%{name}/%{vimdir}/spell/rw.* +%lang(sk) %{_datadir}/%{name}/%{vimdir}/spell/sk.* +%lang(sl) %{_datadir}/%{name}/%{vimdir}/spell/sl.* +%lang(sr) %{_datadir}/%{name}/%{vimdir}/spell/sr.* +%lang(sv) %{_datadir}/%{name}/%{vimdir}/spell/sv.* +%lang(sw) %{_datadir}/%{name}/%{vimdir}/spell/sw.* +%lang(tet) %{_datadir}/%{name}/%{vimdir}/spell/tet.* +%lang(th) %{_datadir}/%{name}/%{vimdir}/spell/th.* +%lang(tl) %{_datadir}/%{name}/%{vimdir}/spell/tl.* +%lang(tn) %{_datadir}/%{name}/%{vimdir}/spell/tn.* +%lang(uk) %{_datadir}/%{name}/%{vimdir}/spell/uk.* +%lang(yi) %{_datadir}/%{name}/%{vimdir}/spell/yi.* +%lang(yi-tr) %{_datadir}/%{name}/%{vimdir}/spell/yi-tr.* +%lang(zu) %{_datadir}/%{name}/%{vimdir}/spell/zu.* +%endif + +%files minimal +%config(noreplace) %{_sysconfdir}/virc +%{_bindir}/ex +%{_bindir}/vi +%{_bindir}/view +%{_bindir}/rvi +%{_bindir}/rview +%{_mandir}/man1/vi.* +%{_mandir}/man1/ex.* +%{_mandir}/man1/rvi.* +%{_mandir}/man1/rview.* +%{_mandir}/man1/view.* +%{_mandir}/man5/virc.* + +%files enhanced +%{_bindir}/vim +%{_bindir}/rvim +%{_bindir}/vimdiff +%{_bindir}/vimtutor +%config(noreplace) %{_sysconfdir}/profile.d/vim.* + +%files filesystem +%{_rpmconfigdir}/macros.d/macros.vim +%dir %{_datadir}/%{name}/vimfiles +%dir %{_datadir}/%{name}/vimfiles/after +%dir %{_datadir}/%{name}/vimfiles/after/* +%dir %{_datadir}/%{name}/vimfiles/autoload +%dir %{_datadir}/%{name}/vimfiles/colors +%dir %{_datadir}/%{name}/vimfiles/compiler +%dir %{_datadir}/%{name}/vimfiles/doc +%ghost %{_datadir}/%{name}/vimfiles/doc/tags +%dir %{_datadir}/%{name}/vimfiles/ftdetect +%dir %{_datadir}/%{name}/vimfiles/ftplugin +%dir %{_datadir}/%{name}/vimfiles/indent +%dir %{_datadir}/%{name}/vimfiles/keymap +%dir %{_datadir}/%{name}/vimfiles/lang +%dir %{_datadir}/%{name}/vimfiles/plugin +%dir %{_datadir}/%{name}/vimfiles/print +%dir %{_datadir}/%{name}/vimfiles/spell +%dir %{_datadir}/%{name}/vimfiles/syntax +%dir %{_datadir}/%{name}/vimfiles/tutor + +%files X11 +%if "%{desktop_file}" == "1" +%{_datadir}/metainfo/*.appdata.xml +/%{_datadir}/applications/* +%exclude /%{_datadir}/applications/vim.desktop +%else +/%{_sysconfdir}/X11/applnk/*/gvim.desktop +%endif +%{_bindir}/gvimtutor +%{_bindir}/gvim +%{_bindir}/gvimdiff +%{_bindir}/gview +%{_bindir}/gex +%{_bindir}/vimtutor +%{_bindir}/vimx +%{_bindir}/evim +%{_mandir}/man1/evim.* +%{_datadir}/icons/hicolor/*/apps/* +%{_datadir}/icons/locolor/*/apps/* + +%changelog +* Tue Jun 14 2022 Zdenek Dohnal - 2:8.0.1763-19.4 +- fix issue reported by covscan + +* Mon Jun 13 2022 Zdenek Dohnal - 2:8.0.1763-19.3 +- CVE-2022-1785 vim: Out-of-bounds Write +- CVE-2022-1897 vim: out-of-bounds write in vim_regsub_both() in regexp.c +- CVE-2022-1927 vim: buffer over-read in utf_ptr2char() in mbyte.c + +* Wed May 25 2022 Zdenek Dohnal - 2:8.0.1763-19.2 +- CVE-2022-1621 vim: heap buffer overflow +- CVE-2022-1629 vim: buffer over-read + +* Sat Apr 09 2022 Zdenek Dohnal - 2:8.0.1763-19.1 +- CVE-2022-1154 vim: use after free in utf_ptr2char + +* Tue Feb 08 2022 Zdenek Dohnal - 2:8.0.1763-19 +- CVE-2022-0361 vim: Heap-based Buffer Overflow in GitHub repository + +* Mon Feb 07 2022 Zdenek Dohnal - 2:8.0.1763-18 +- CVE-2022-0392 vim: heap-based buffer overflow in getexmodeline() in ex_getln.c +- CVE-2022-0413 vim: use after free in src/ex_cmds.c + +* Thu Jan 27 2022 Zdenek Dohnal - 2:8.0.1763-18 +- fix test suite after fix for CVE-2022-0318 +- CVE-2022-0359 vim: heap-based buffer overflow in init_ccline() in ex_getln.c + +* Wed Jan 12 2022 Zdenek Dohnal - 2:8.0.1763-18 +- CVE-2022-0261 vim: Heap-based Buffer Overflow in block_insert() in src/ops.c +- CVE-2022-0318 vim: heap-based buffer overflow in utf_head_off() in mbyte.c + +* Wed Jan 12 2022 Zdenek Dohnal - 2:8.0.1763-18 +- CVE-2021-4193 vim: vulnerable to Out-of-bounds Read +- CVE-2021-4192 vim: vulnerable to Use After Free + +* Fri Dec 03 2021 Zdenek Dohnal - 2:8.0.1763-18 +- 2028341 - CVE-2021-3984 vim: illegal memory access when C-indenting could lead to Heap Buffer Overflow [rhel-8.6.0] +- 2028430 - CVE-2021-4019 vim: heap-based buffer overflow in find_help_tags() in src/help.c [rhel-8.6.0] + +* Tue Oct 26 2021 Zdenek Dohnal - 2:8.0.1763-17 +- 2016201 - CVE-2021-3872 vim: heap-based buffer overflow in win_redr_status() drawscreen.c [rhel-8.6.0] + +* Thu Sep 23 2021 Zdenek Dohnal - 2:8.0.1763-16 +- 2004975 - CVE-2021-3796 vim: use-after-free in nv_replace() in normal.c [rhel-8.6.0] +- 2004892 - CVE-2021-3778 vim: heap-based buffer overflow in utf_ptr2char() in mbyte.c [rhel-8.6.0] + +* Tue Jun 02 2020 Zdenek Dohnal - 2:8.0.1763-15 +- 1842755 - CVE-2019-20807 + +* Mon Feb 10 2020 Zdenek Dohnal - 2:8.0.1763-14 +- 1745476 - manpage of vim is garbled in Japanese locale + +* Tue Jul 23 2019 Zdenek Dohnal - 2:8.0.1763-13 +- fixing covscan issues raised by previous commit + +* Tue Jul 23 2019 Zdenek Dohnal - 2:8.0.1763-12 +- 1605095 - vim: should not re-implement crypto + +* Fri Jun 14 2019 Zdenek Dohnal - 2:8.0.1763-11 +- 1719812 - CVE-2019-12735 vim: vim/neovim: arbitrary command execution in getchar.c [rhel-8.1.0] + +* Thu Dec 06 2018 Zdenek Dohnal - 2:8.0.1763-10 +- do not strip binaries before build system strips them + +* Tue Nov 27 2018 Zdenek Dohnal - 2:8.0.1763-9 +- 1602727 - Please review important issues found by covscan in "vim-8.0.1763-2.el8+7" package + +* Fri Oct 19 2018 Zdenek Dohnal - 2:8.0.1763-8 +- 1640919 - augroup fedora, test case failure: /CoreOS/vim/Regression/bz241308-use-augroup-for-rh-autocmds + +* Tue Jul 24 2018 Zdenek Dohnal - 2:8.0.1763-7 +- correcting license + +* Thu Jul 19 2018 Zdenek Dohnal - 2:8.0.1763-6 +- 1602807 - vim-X11 doesn't provide the gui + +* Wed Jul 11 2018 Zdenek Dohnal - 2:8.0.1763-5 +- remove fedora update script + +* Wed Jul 11 2018 Zdenek Dohnal - 2:8.0.1763-4 +- use %%{__python3} macro for defining shebang in python3 tests + +* Tue Jul 10 2018 Zdenek Dohnal - 2:8.0.1763-3 +- 1599660 - Conflicting manpages rvi.1.gz and vi.1.gz during update + +* Wed Jun 13 2018 Zdenek Dohnal - 8.0.1763-2 +- 1576470 - Suggest correct packages to get embedded interpreters working +- add libappstream-glib for appstream-util +- 1576483 - Vim needs Python2 to build + +* Wed Apr 25 2018 Karsten Hopp 8.0.1763-1 +- patchlevel 1763 + +* Tue Apr 24 2018 Karsten Hopp 8.0.1755-1 +- patchlevel 1755 + +* Fri Apr 13 2018 Karsten Hopp 8.0.1704-1 +- patchlevel 1704 + +* Mon Apr 09 2018 Karsten Hopp 8.0.1679-1 +- patchlevel 1679 + +* Fri Apr 06 2018 Zdenek Dohnal - 8.0.1666-2 +- suggests ruby-libs, python2-libs, python3-libs, perl-libs and lua-libs for vim and gvim(bug #1562057) + +* Fri Apr 06 2018 Karsten Hopp 8.0.1666-1 +- patchlevel 1666 + +* Thu Apr 05 2018 Karsten Hopp 8.0.1661-1 +- patchlevel 1661 + +* Fri Mar 23 2018 Karsten Hopp 8.0.1630-1 +- patchlevel 1630 + +* Thu Mar 22 2018 Karsten Hopp 8.0.1626-1 +- patchlevel 1626 + +* Wed Mar 21 2018 Karsten Hopp 8.0.1625-1 +- patchlevel 1625 + +* Wed Mar 14 2018 Karsten Hopp 8.0.1605-1 +- patchlevel 1605 + +* Tue Mar 13 2018 Karsten Hopp 8.0.1603-1 +- patchlevel 1603 + +* Mon Mar 12 2018 Karsten Hopp 8.0.1599-1 +- patchlevel 1599 + +* Fri Mar 09 2018 Karsten Hopp 8.0.1591-1 +- patchlevel 1591 + +* Thu Mar 08 2018 Karsten Hopp 8.0.1589-1 +- patchlevel 1589 + +* Wed Mar 07 2018 Karsten Hopp 8.0.1587-1 +- patchlevel 1587 + +* Tue Mar 06 2018 Zdenek Dohnal - 2:8.0.1573-2 +- vim-update.sh - unify if condition style + +* Tue Mar 06 2018 Karsten Hopp 8.0.1573-1 +- patchlevel 1573 + +* Tue Mar 06 2018 Zdenek Dohnal - 2:8.0.1569-2 +- update spec +- f28 got enabled in bodhi + +* Mon Mar 05 2018 Karsten Hopp 8.0.1569-1 +- patchlevel 1569 + +* Wed Feb 28 2018 Karsten Hopp 8.0.1553-1 +- added Serbian localization files +- patchlevel 1553 + +* Wed Feb 28 2018 Zdenek Dohnal - 2:8.0.1543-2 +- fix vim-update.sh - bodhi update wasn't created + +* Tue Feb 27 2018 Karsten Hopp 8.0.1543-1 +- patchlevel 1543 + +* Mon Feb 26 2018 Zdenek Dohnal - 8.0.1527-3 +- add Provides for vim, gvim and correcting paths to /usr/bin + +* Wed Feb 21 2018 Zdenek Dohnal - 8.0.1527-2 +- adapt vim-update.sh for Fedora 28 and adding check for bodhi enablement + +* Tue Feb 20 2018 Karsten Hopp 8.0.1527-1 +- patchlevel 1527 + +* Mon Feb 19 2018 Zdenek Dohnal - 8.0.1523-2 +- gcc is no longer in buildroot by default +- 1546116 - make vim-filesystem noarch package +- remove %%{_libdir}/vim, because it is unused + +* Mon Feb 19 2018 Karsten Hopp 8.0.1523-1 +- patchlevel 1523 + +* Wed Feb 14 2018 Karsten Hopp 8.0.1520-1 +- patchlevel 1520 + +* Tue Feb 13 2018 Karsten Hopp 8.0.1509-1 +- patchlevel 1509 + +* Mon Feb 12 2018 Karsten Hopp 8.0.1505-1 +- patchlevel 1505 + +* Fri Feb 09 2018 Karsten Hopp 8.0.1478-1 +- patchlevel 1478 + +* Thu Feb 08 2018 Zdenek Dohnal - 8.0.1475-2 +- remove old stuff + +* Wed Feb 07 2018 Karsten Hopp 8.0.1475-1 +- patchlevel 1475 + +* Mon Feb 05 2018 Karsten Hopp 8.0.1473-1 +- patchlevel 1473 + +* Thu Feb 01 2018 Karsten Hopp 8.0.1451-1 +- patchlevel 1451 + +* Mon Jan 29 2018 Karsten Hopp 8.0.1438-1 +- patchlevel 1438 + +* Tue Jan 23 2018 Zdenek Dohnal - 8.0.1428-4 +- throw vim.1.gz out from vim-minimal and other manpages from vim-common +- appdata should be in metainfo folder now + +* Fri Jan 19 2018 Zdenek Dohnal - 8.0.1428-3 +- 1525506 - gvim goes into infinite loop when blink_state is OFF + +* Fri Jan 12 2018 Zdenek Dohnal - 8.0.1428-2 +- removing old icon cache update + +* Wed Jan 03 2018 Karsten Hopp 8.0.1428-1 +- patchlevel 1428 + +* Tue Jan 02 2018 Karsten Hopp 8.0.1427-1 +- patchlevel 1427 + +* Tue Dec 19 2017 Karsten Hopp 8.0.1406-1 +- patchlevel 1406 + +* Mon Dec 18 2017 Karsten Hopp 8.0.1401-1 +- patchlevel 1401 + +* Fri Dec 15 2017 Karsten Hopp 8.0.1390-1 +- patchlevel 1390 + +* Fri Dec 15 2017 Zdenek Dohnal - 8.0.1389-2 +- fixing vim-update.sh + +* Wed Dec 13 2017 Karsten Hopp 8.0.1389-1 +- patchlevel 1389 + +* Tue Dec 12 2017 Karsten Hopp 8.0.1387-1 +- patchlevel 1387 + +* Mon Dec 11 2017 Karsten Hopp 8.0.1386-1 +- patchlevel 1386 + +* Fri Dec 08 2017 Karsten Hopp 8.0.1379-1 +- patchlevel 1379 + +* Wed Dec 06 2017 Karsten Hopp 8.0.1376-1 +- patchlevel 1376 + +* Mon Dec 04 2017 Zdenek Dohnal - 8.0.1367-2 +- fix regexp in vim-update.sh + +* Mon Dec 04 2017 Karsten Hopp 8.0.1367-1 +- patchlevel 1367 + +* Fri Dec 01 2017 Zdenek Dohnal - 8.0.1360-2 +- fix in vim-update.sh + +* Fri Dec 01 2017 Karsten Hopp 8.0.1360-1 +- patchlevel 1360 + +* Fri Dec 01 2017 Zdenek Dohnal - 8.0.1359-3 +- rewrite vim-update to update from the newest branch to the oldest + +* Thu Nov 30 2017 Zdenek Dohnal - 8.0.1359-2 +- 1508629 - missing full path and safe guards in file triggers in -common + +* Thu Nov 30 2017 Karsten Hopp 8.0.1359-1 +- patchlevel 1359 + +* Wed Nov 29 2017 Karsten Hopp 8.0.1358-1 +- patchlevel 1358 +- fix error in vim-update.sh + +* Tue Nov 28 2017 Karsten Hopp 8.0.1351-1 +- patchlevel 1351 + +* Mon Nov 27 2017 Karsten Hopp 8.0.1349-1 +- patchlevel 1349 + +* Mon Nov 27 2017 Zdenek Dohnal - 8.0.1330-2 +- removing vim-8.0-beval-pro.patch and stop updating f25 + +* Wed Nov 22 2017 Karsten Hopp 8.0.1330-1 +- patchlevel 1330 + +* Tue Nov 21 2017 Karsten Hopp 8.0.1326-1 +- patchlevel 1326 + +* Mon Nov 20 2017 Karsten Hopp 8.0.1322-1 +- patchlevel 1322 + +* Fri Nov 10 2017 Karsten Hopp 8.0.1283-1 +- patchlevel 1283 + +* Tue Nov 07 2017 Karsten Hopp 8.0.1274-1 +- patchlevel 1274 + +* Mon Nov 06 2017 Karsten Hopp 8.0.1272-1 +- patchlevel 1272 + +* Fri Nov 03 2017 Karsten Hopp 8.0.1257-1 +- patchlevel 1257 + +* Wed Nov 01 2017 Karsten Hopp 8.0.1241-1 +- patchlevel 1241 + +* Tue Oct 31 2017 Karsten Hopp 8.0.1240-1 +- patchlevel 1240 + +* Mon Oct 30 2017 Karsten Hopp 8.0.1238-1 +- patchlevel 1238 + +* Fri Oct 27 2017 Karsten Hopp 8.0.1226-1 +- patchlevel 1226 + +* Thu Oct 26 2017 Zdenek Dohnal - 8.0.1216-2 +- mention GVim in Summary and Description of vim-x11 subpackage + +* Wed Oct 25 2017 Karsten Hopp 8.0.1216-1 +- patchlevel 1216 + +* Mon Oct 23 2017 Karsten Hopp 8.0.1213-1 +- patchlevel 1213 + +* Fri Oct 20 2017 Karsten Hopp 8.0.1207-1 +- patchlevel 1207 + +* Mon Oct 16 2017 Karsten Hopp 8.0.1203-1 +- patchlevel 1203 + +* Fri Oct 13 2017 Karsten Hopp 8.0.1187-1 +- patchlevel 1187 + +* Mon Oct 09 2017 Karsten Hopp 8.0.1184-1 +- patchlevel 1184 + +* Fri Oct 06 2017 Karsten Hopp 8.0.1176-1 +- patchlevel 1176 + +* Thu Oct 05 2017 Karsten Hopp 8.0.1175-1 +- patchlevel 1175 + +* Tue Oct 03 2017 Karsten Hopp 8.0.1173-1 +- patchlevel 1173 + +* Mon Oct 02 2017 Karsten Hopp 8.0.1171-1 +- patchlevel 1171 + +* Wed Sep 27 2017 Karsten Hopp 8.0.1155-1 +- patchlevel 1155 + +* Tue Sep 26 2017 Zdenek Dohnal - 8.0.1144-2 +- removing README.patches + +* Mon Sep 25 2017 Karsten Hopp 8.0.1144-1 +- patchlevel 1144 + +* Fri Sep 22 2017 Karsten Hopp 8.0.1132-1 +- patchlevel 1132 + +* Wed Sep 20 2017 Zdenek Dohnal - 8.0.1129-2 +- vim-update.sh - update was in bad form + +* Wed Sep 20 2017 Karsten Hopp 8.0.1129-1 +- patchlevel 1129 + +* Wed Sep 20 2017 Zdenek Dohnal - 8.0.1127-2 +- vim-update.sh - update script tried to push for previous version + +* Tue Sep 19 2017 Karsten Hopp 8.0.1127-1 +- patchlevel 1127 + +* Tue Sep 19 2017 Zdenek Dohnal - 8.0.1123-2 +- vim-update.sh - fixing bug with submiting update (update got submitted for previous version) + +* Mon Sep 18 2017 Karsten Hopp 8.0.1123-1 +- patchlevel 1123 + +* Thu Sep 14 2017 Karsten Hopp 8.0.1102-1 +- vim-update.sh - add test for succesful build and fixing grepping of update's list +- patchlevel 1102 + +* Wed Sep 13 2017 Karsten Hopp 8.0.1098-1 +- editing vim-update.sh - check updates for newer releases and create update +- patchlevel 1098 + +* Tue Sep 12 2017 Karsten Hopp 8.0.1097-1 +- patchlevel 1097 +- editing vim-update.sh - wrong condition for checking fedkpg push return value + +* Mon Sep 11 2017 Karsten Hopp 8.0.1092-1 +- editing vim-update.sh for building package +- patchlevel 1092 +- 1487175 - VIm conflicts in man pages + +* Fri Sep 08 2017 Zdenek Dohnal - 8.0.1071-2 +- fixing merge and push in vim-update.sh + +* Fri Sep 08 2017 Karsten Hopp 8.0.1071-1 +- patchlevel 1071 + +* Fri Sep 08 2017 Zdenek Dohnal - 8.0.1067-2 +- editing vim-update.sh to do whole update automatically + +* Thu Sep 07 2017 Karsten Hopp 8.0.1067-1 +- patchlevel 1067 + +* Wed Sep 06 2017 Karsten Hopp 8.0.1064-1 +- patchlevel 1064 + +* Tue Sep 05 2017 Karsten Hopp 8.0.1056-1 +- patchlevel 1056 + +* Mon Sep 04 2017 Karsten Hopp 8.0.1052-1 +- patchlevel 1052 + +* Fri Sep 01 2017 Karsten Hopp 8.0.1030-1 +- patchlevel 1030 + +* Thu Aug 24 2017 Karsten Hopp 8.0.992-1 +- patchlevel 992 + +* Wed Aug 23 2017 Karsten Hopp 8.0.987-1 +- patchlevel 987 + +* Tue Aug 22 2017 Karsten Hopp 8.0.983-1 +- patchlevel 983 + +* Fri Aug 18 2017 Karsten Hopp 8.0.956-1 +- patchlevel 956 + +* Tue Aug 15 2017 Karsten Hopp 8.0.946-1 +- patchlevel 946 + +* Mon Aug 14 2017 Karsten Hopp 8.0.938-1 +- patchlevel 938 + +* Fri Aug 11 2017 Karsten Hopp 8.0.896-1 +- patchlevel 896 + +* Thu Aug 10 2017 Karsten Hopp 8.0.895-1 +- patchlevel 895 + +* Wed Aug 09 2017 Karsten Hopp 8.0.893-1 +- patchlevel 893 + +* Wed Aug 09 2017 Zdenek Dohnal 8.0.891-2 +- editing vim-update.sh - now it takes branch name as argument for switching and run mockbuild + +* Tue Aug 08 2017 Karsten Hopp 8.0.891-1 +- patchlevel 891 + +* Mon Aug 07 2017 Karsten Hopp 8.0.885-1 +- patchlevel 885 + +* Thu Aug 03 2017 Fedora Release Engineering - 2:8.0.844-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Aug 03 2017 Karsten Hopp 8.0.844-1 +- patchlevel 844 + +* Tue Aug 01 2017 Karsten Hopp 8.0.826-1 +- patchlevel 826 + +* Mon Jul 31 2017 Karsten Hopp 8.0.823-1 +- patchlevel 823 + +* Thu Jul 27 2017 Fedora Release Engineering - 2:8.0.739-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Jul 21 2017 Karsten Hopp 8.0.739-1 +- patchlevel 739 + +* Thu Jul 20 2017 Karsten Hopp 8.0.738-1 +- patchlevel 738 + +* Wed Jul 19 2017 Karsten Hopp 8.0.730-1 +- patchlevel 730 + +* Tue Jul 18 2017 Karsten Hopp 8.0.728-1 +- patchlevel 728 + +* Thu Jul 13 2017 Karsten Hopp 8.0.711-1 +- patchlevel 711 + +* Tue Jul 11 2017 Karsten Hopp 8.0.705-1 +- patchlevel 705 + +* Fri Jun 30 2017 Karsten Hopp 8.0.691-1 +- patchlevel 691 + +* Thu Jun 29 2017 Karsten Hopp 8.0.688-1 +- patchlevel 688 + +* Thu Jun 29 2017 Zdenek Dohnal - 8.0.685-3 +- update python dependencies accordingly Fedora Guidelines for Python (python-devel -> python2-devel) + +* Wed Jun 28 2017 Karsten Hopp 8.0.685-1 +- patchlevel 685 + +* Mon Jun 26 2017 Karsten Hopp 8.0.679-1 +- patchlevel 679 + +* Fri Jun 23 2017 Karsten Hopp 8.0.662-1 +- patchlevel 662 + +* Tue Jun 20 2017 Karsten Hopp 8.0.648-1 +- patchlevel 648 + +* Mon Jun 19 2017 Karsten Hopp 8.0.647-1 +- patchlevel 647 + +* Thu Jun 15 2017 Karsten Hopp 8.0.642-1 +- patchlevel 642 + +* Mon Jun 12 2017 Karsten Hopp 8.0.636-1 +- patchlevel 636, removing perl ftbfs patch + +* Fri Jun 09 2017 Karsten Hopp 8.0.628-1 +- patchlevel 628 + +* Wed Jun 07 2017 Jitka Plesnikova - 2:8.0.627-2 +- Perl 5.26 re-rebuild of bootstrapped packages + +* Wed Jun 07 2017 Karsten Hopp 8.0.627-1 +- patchlevel 627 + +* Mon Jun 05 2017 Karsten Hopp 8.0.617-1 +- patchlevel 617 + +* Sun Jun 04 2017 Jitka Plesnikova - 2:8.0.606-3 +- Perl 5.26 rebuild + +* Mon May 29 2017 Zdenek Dohnal - 2:8.0.606-2 +- 1456455 - vim-8.0.600-1.fc27 FTBFS with Perl 5.26.0 + +* Mon May 29 2017 Karsten Hopp 8.0.606-1 +- patchlevel 606 + +* Thu May 25 2017 Karsten Hopp 8.0.604-1 +- patchlevel 604 + +* Fri May 19 2017 Karsten Hopp 8.0.600-1 +- patchlevel 600 + +* Wed May 17 2017 Karsten Hopp 8.0.599-1 +- patchlevel 599 + +* Tue May 16 2017 Karsten Hopp 8.0.598-1 +- patchlevel 598 + +* Mon May 15 2017 Karsten Hopp 8.0.597-1 +- patchlevel 597 + +* Tue May 02 2017 Karsten Hopp 8.0.596-1 +- patchlevel 596 + +* Mon Apr 24 2017 Karsten Hopp 8.0.586-1 +- patchlevel 586 + +* Tue Apr 18 2017 Karsten Hopp 8.0.566-1 +- patchlevel 566 + +* Thu Apr 13 2017 Karsten Hopp 8.0.563-1 +- patchlevel 563 + +* Tue Apr 11 2017 Karsten Hopp 8.0.562-1 +- patchlevel 562 + +* Mon Apr 10 2017 Karsten Hopp 8.0.559-1 +- patchlevel 559 + +* Thu Apr 06 2017 Karsten Hopp 8.0.543-1 +- patchlevel 543 + +* Mon Apr 03 2017 Karsten Hopp 8.0.540-1 +- patchlevel 540 + +* Fri Mar 31 2017 Karsten Hopp 8.0.529-1 +- patchlevel 529 + +* Thu Mar 30 2017 Karsten Hopp 8.0.525-1 +- patchlevel 525 + +* Wed Mar 29 2017 Karsten Hopp 8.0.517-1 +- patchlevel 517 +- enhance rhbz#1436124 + +* Tue Mar 28 2017 Karsten Hopp 8.0.515-1 +- patchlevel 515 + +* Mon Mar 27 2017 Karsten Hopp 8.0.514-1 +- patchlevel 514 +- 1436124 - VIM chooses ft=bindzone for sudoedit /etc/named.conf + +* Fri Mar 24 2017 Karsten Hopp 8.0.503-1 +- patchlevel 503 + +* Wed Mar 22 2017 Karsten Hopp 8.0.502-1 +- patchlevel 502 + +* Tue Mar 21 2017 Karsten Hopp 8.0.497-1 +- patchlevel 497 + +* Mon Mar 20 2017 Karsten Hopp 8.0.494-1 +- patchlevel 494 + +* Wed Mar 15 2017 Karsten Hopp 8.0.458-1 +- patchlevel 458 + +* Tue Mar 14 2017 Karsten Hopp 8.0.456-1 +- patchlevel 456 + +* Fri Mar 10 2017 Karsten Hopp 8.0.442-1 +- patchlevel 442 + +* Wed Mar 08 2017 Karsten Hopp 8.0.430-1 +- patchlevel 430 + +* Tue Mar 07 2017 Karsten Hopp 8.0.427-1 +- patchlevel 427 + +* Mon Mar 06 2017 Karsten Hopp 8.0.425-1 +- patchlevel 425 + +* Fri Mar 03 2017 Karsten Hopp 8.0.402-1 +- patchlevel 402 + +* Thu Mar 02 2017 Karsten Hopp 8.0.398-1 +- patchlevel 398 + +* Wed Mar 01 2017 Karsten Hopp 8.0.388-1 +- patchlevel 388 + +* Tue Feb 28 2017 Karsten Hopp 8.0.386-1 +- patchlevel 386 + +* Mon Feb 27 2017 Karsten Hopp 8.0.381-1 +- patchlevel 381 + +* Fri Feb 24 2017 Karsten Hopp 8.0.363-1 +- patchlevel 363 +- removing vim-8.0-gtk-render.patch + +* Fri Feb 24 2017 Karsten Hopp 8.0.347-1 +- patchlevel 347 +- 1405234 - Gvim fails to properly render after Openbox desktop switch +- 1426296 - vim: FTBFS with python3-3.6.0-18.fc26 + +* Tue Feb 21 2017 Karsten Hopp 8.0.344-1 +- patchlevel 344 + +* Mon Feb 20 2017 Karsten Hopp 8.0.342-1 +- patchlevel 342 + +* Thu Feb 16 2017 Zdenek Dohnal 8.0.329-1 +- 1422833 - Syntax error in tex.vim: missing bracket + +* Mon Feb 13 2017 Karsten Hopp 8.0.329-1 +- patchlevel 329 + +* Fri Feb 10 2017 Karsten Hopp 8.0.324-1 +- patchlevel 324 + +* Thu Feb 09 2017 Karsten Hopp 8.0.318-1 +- patchlevel 318 + +* Tue Feb 07 2017 Karsten Hopp 8.0.314-1 +- patchlevel 314, added screenshot to appdata and testing validity of appdata.xml + +* Mon Feb 06 2017 Karsten Hopp 8.0.311-1 +- patchlevel 311 + +* Fri Feb 03 2017 Karsten Hopp 8.0.297-1 +- patchlevel 297 + +* Wed Feb 01 2017 Karsten Hopp 8.0.275-1 +- patchlevel 275 + +* Tue Jan 31 2017 Karsten Hopp 8.0.273-1 +- patchlevel 273 + +* Mon Jan 30 2017 Karsten Hopp 8.0.271-1 +- patchlevel 271 + +* Thu Jan 26 2017 Karsten Hopp 8.0.238-1 +- patchlevel 238 + +* Thu Jan 19 2017 Karsten Hopp 8.0.206-1 +- patchlevel 206 + +* Tue Jan 17 2017 Karsten Hopp 8.0.197-1 +- patchlevel 197 +- update runtime files + +* Mon Jan 16 2017 Karsten Hopp 8.0.194-1 +- patchlevel 194 + +* Fri Jan 13 2017 Karsten Hopp 8.0.176-1 +- patchlevel 176 + +* Thu Jan 12 2017 Karsten Hopp 8.0.172-1 +- patchlevel 172 + +* Wed Jan 11 2017 Karsten Hopp 8.0.170-1 +- patchlevel 170 + +* Mon Jan 09 2017 Karsten Hopp 8.0.160-1 +- patchlevel 160 + +* Tue Jan 03 2017 Karsten Hopp 8.0.142-1 +- patchlevel 142 + +* Mon Dec 19 2016 Zdenek Dohnal - 2:8.0.134-2 +- f24->f25 vim: copy paste no longer works (bug #1401410) - fixing error in prep + +* Mon Dec 19 2016 Zdenek Dohnal - 2:8.0.134-2 +- f24->f25 vim: copy paste no longer works (bug #1401410) - deleting mouse setting block from defaults.vim + +* Mon Dec 19 2016 Karsten Hopp 8.0.134-1 +- patchlevel 134 +- f24->f25 vim: copy paste no longer works (bug #1401410) - revert previous changes, set mouse=v in defaults.vim + +* Thu Dec 15 2016 Zdenek Dohnal - 2:8.0.133-2 +- f24->f25 vim: copy paste no longer works (bug #1401410) - change mouse default setting to 'v' + +* Thu Dec 15 2016 Karsten Hopp - 8.0.133-2 +- fix fstab syntax highlighting (rhbz#1365258) + +* Mon Dec 12 2016 Karsten Hopp 8.0.133-1 +- patchlevel 133 + +* Mon Dec 05 2016 Zdenek Dohnal - 2:8.0.124-2 +- add new sources + +* Mon Dec 05 2016 Karsten Hopp 8.0.124-1 +- patchlevel 124 + +* Fri Dec 02 2016 Karsten Hopp 8.0.118-1 +- patchlevel 118 + +* Mon Nov 28 2016 Zdenek Dohnal - 2:8.0.104-2 +- do not ship vim.desktop + +* Mon Nov 28 2016 Karsten Hopp 8.0.104-1 +- patchlevel 104 + +* Thu Nov 24 2016 Karsten Hopp 8.0.095-1 +- patchlevel 095 + +* Thu Nov 24 2016 Karsten Hopp 8.0.095-1 +- patchlevel 095 + +* Thu Nov 24 2016 Karsten Hopp 8.0.095-1 +- patchlevel 095 + +* Thu Nov 24 2016 Karsten Hopp 8.0.095-2 +- disable download of spec.vim, main sources are newer + +* Tue Nov 22 2016 Karsten Hopp 8.0.095-1 +- patchlevel 095 + +* Mon Nov 21 2016 Karsten Hopp 8.0.094-1 +- patchlevel 094 + +* Wed Nov 16 2016 Karsten Hopp 8.0.086-1 +- patchlevel 086 + +* Tue Nov 15 2016 Karsten Hopp 8.0.085-1 +- patchlevel 085 + +* Mon Nov 14 2016 Karsten Hopp 8.0.084-1 +- patchlevel 084 + +* Mon Nov 14 2016 Zdenek Dohnal - 8.0.070-1 +- patchlevel 070 + +* Mon Nov 14 2016 Karsten Hopp 8.0.000-1 +- patchlevel 000 + +* Wed Nov 09 2016 Karsten Hopp 8.0.057-1 +- patchlevel 057 + +* Mon Nov 07 2016 Vít Ondruch - 8.0.037-2 +- Add RPM file triggers support. + +* Wed Oct 19 2016 Karsten Hopp 8.0.037-1 +- patchlevel 037 + +* Wed Oct 19 2016 Karsten Hopp 8.0.018-1 +- switch to gtk3 + +* Thu Oct 06 2016 Karsten Hopp 8.0.018-1 +- patchlevel 018 + +* Tue Sep 13 2016 Karsten Hopp 8.0.003-1 +- patchlevel 003 + +* Wed Sep 07 2016 Karsten Hopp 7.4.2342-1 +- patchlevel 2342 + +* Mon Sep 05 2016 Karsten Hopp 7.4.2330-1 +- patchlevel 2330 + +* Thu Aug 04 2016 Karsten Hopp 7.4.1989-2 +- redo patches, some upstream updates broke them + +* Tue Jul 05 2016 Karsten Hopp 7.4.1989-1 +- patchlevel 1989 + +* Mon Jul 04 2016 Karsten Hopp 7.4.1988-1 +- patchlevel 1988 + +* Thu Jun 02 2016 Karsten Hopp 7.4.1868-1 +- patchlevel 1868 + +* Wed May 25 2016 Karsten Hopp 7.4.1842-1 +- patchlevel 1842 + +* Tue May 24 2016 Karsten Hopp - 7.4.1835-2 +- compile perl support as a dynamic module (rhbz#1327755) + +* Tue May 24 2016 Karsten Hopp 7.4.1835-1 +- patchlevel 1835 + +* Tue May 24 2016 Karsten Hopp - 7.4.1830-3 +- mv vim.sh and vim.csh to source files +- sh profile.d improvements: don't leak $ID, don't fail on nounset + (rhbz#1339106 Ville Skyttä) + +* Sun May 15 2016 Jitka Plesnikova - 2:7.4.1830-2 +- Perl 5.24 rebuild + +* Fri May 13 2016 Karsten Hopp 7.4.1830-1 +- patchlevel 1830 + +* Mon May 02 2016 Karsten Hopp 7.4.1816-1 +- patchlevel 1816 + +* Fri Apr 29 2016 Karsten Hopp - 7.4.1797-3 +- use uncompressed help files. vimtutor and vi will access those when + vim-common is installed. (rhbz#1262182) + No hard requirement vim-minimal -> vim-common added, to allow minimal + installations + +* Fri Apr 29 2016 Karsten Hopp - 7.4.1797-2 +- merge git branches and rebuild + +* Fri Apr 29 2016 Karsten Hopp 7.4.1797-1 +- patchlevel 1797 + +* Tue Apr 26 2016 Karsten Hopp 7.4.1786-1 +- patchlevel 1786 + +* Tue Apr 26 2016 Karsten Hopp - 7.4.1775-2 +- fix error in spec.vim (rhbz#1318991) + +* Mon Apr 25 2016 Karsten Hopp - 7.4.1320-2 +- update ftplugin/spec.vim, syntax/spec.vim (rhbz#1297746) + +* Fri Apr 22 2016 Karsten Hopp 7.4.1775-1 +- patchlevel 1775 + +* Tue Apr 12 2016 Karsten Hopp - 7.4.1718-2 +- add vimfiles_root macro (rhbz#844975) +- add %%_libdir/vim directory for plugins (rhbz#1193230) +- vi, rvi, rview, ex, view don't read vimrc anymore. They use virc instead + (rhbz#1045815) +- fix dates in changelogs when spec.vim is used and locale != 'C' + +* Fri Apr 08 2016 Karsten Hopp 7.4.1718-1 +- patchlevel 1718 + +* Tue Mar 15 2016 Karsten Hopp 7.4.1570-1 +- patchlevel 1570 + +* Wed Feb 17 2016 Karsten Hopp 7.4.1344-1 +- patchlevel 1344 + +* Mon Feb 15 2016 Karsten Hopp 7.4.1320-1 +- patchlevel 1320 + +* Sun Feb 14 2016 Karsten Hopp 7.4.1317-1 +- patchlevel 1317 + +* Sat Feb 13 2016 Karsten Hopp 7.4.1308-1 +- patchlevel 1308 + +* Fri Feb 12 2016 Karsten Hopp 7.4.1304-1 +- patchlevel 1304 + +* Thu Feb 11 2016 Karsten Hopp 7.4.1301-1 +- patchlevel 1301 + +* Wed Feb 10 2016 Karsten Hopp 7.4.1297-1 +- patchlevel 1297 + +* Tue Feb 09 2016 Karsten Hopp 7.4.1293-1 +- patchlevel 1293 + +* Mon Feb 08 2016 Karsten Hopp 7.4.1290-1 +- patchlevel 1290 + +* Sun Feb 07 2016 Karsten Hopp 7.4.1273-1 +- patchlevel 1273 + +* Sat Feb 06 2016 Karsten Hopp 7.4.1265-1 +- patchlevel 1265 + +* Fri Feb 05 2016 Fedora Release Engineering - 2:7.4.1229-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Mon Feb 01 2016 Karsten Hopp 7.4.1229-1 +- patchlevel 1229 + +* Sat Jan 23 2016 Karsten Hopp 7.4.1153-1 +- patchlevel 1153 + +* Fri Jan 22 2016 Karsten Hopp 7.4.1152-1 +- patchlevel 1152 + +* Thu Jan 21 2016 Karsten Hopp 7.4.1147-1 +- patchlevel 1147 + +* Wed Jan 20 2016 Karsten Hopp 7.4.1143-1 +- patchlevel 1143 + +* Tue Jan 19 2016 Karsten Hopp 7.4.1142-1 +- patchlevel 1142 + +* Tue Jan 19 2016 Karsten Hopp 7.4.1131-1 +- patchlevel 1131 + +* Mon Jan 18 2016 Karsten Hopp 7.4.1129-1 +- patchlevel 1129 + +* Sun Jan 17 2016 Karsten Hopp 7.4.1112-1 +- patchlevel 1112 + +* Sat Jan 16 2016 Karsten Hopp 7.4.1101-1 +- patchlevel 1101 + +* Fri Jan 15 2016 Karsten Hopp 7.4.1090-1 +- patchlevel 1090 + +* Wed Jan 13 2016 Karsten Hopp 7.4.1089-1 +- patchlevel 1089 + +* Tue Jan 12 2016 Karsten Hopp - 7.4.1087-2 +- fix ssh syntax files +- fix %%global in spec.vim (rhbz#1058041) + +* Mon Jan 11 2016 Karsten Hopp 7.4.1087-1 +- patchlevel 1087 + +* Sun Dec 20 2015 Karsten Hopp 7.4.979-1 +- patchlevel 979 + +* Fri Dec 18 2015 Karsten Hopp 7.4.977-1 +- patchlevel 977 + +* Mon Dec 14 2015 Karsten Hopp 7.4.972-1 +- patchlevel 972 + +* Sun Dec 13 2015 Karsten Hopp 7.4.970-1 +- patchlevel 970 + +* Sat Dec 12 2015 Karsten Hopp 7.4.969-1 +- patchlevel 969 + +* Mon Dec 07 2015 Karsten Hopp 7.4.963-1 +- patchlevel 963 + +* Sun Dec 06 2015 Karsten Hopp 7.4.962-1 +- patchlevel 962 + +* Fri Dec 04 2015 Karsten Hopp 7.4.960-1 +- patchlevel 960 + +* Wed Dec 02 2015 Karsten Hopp 7.4.947-1 +- patchlevel 947 + +* Tue Dec 01 2015 Karsten Hopp 7.4.945-1 +- patchlevel 945 + +* Mon Nov 30 2015 Karsten Hopp 7.4.944-1 +- patchlevel 944 + +* Thu Nov 26 2015 Karsten Hopp 7.4.942-1 +- patchlevel 942 + +* Wed Nov 25 2015 Karsten Hopp 7.4.941-1 +- patchlevel 941 + +* Mon Nov 23 2015 Karsten Hopp 7.4.936-1 +- patchlevel 936 + +* Sun Nov 22 2015 Karsten Hopp 7.4.934-1 +- patchlevel 934 + +* Fri Nov 20 2015 Karsten Hopp 7.4.930-1 +- patchlevel 930 + +* Wed Nov 11 2015 Karsten Hopp 7.4.922-1 +- patchlevel 922 + +* Tue Nov 10 2015 Karsten Hopp 7.4.917-1 +- patchlevel 917 + +* Wed Nov 04 2015 Karsten Hopp 7.4.909-1 +- patchlevel 909 +- Fedora vim now uses tarballs created from upstream git instead + of just upstream patches. Now runtime files will have fixes, too. + +* Tue Nov 03 2015 Karsten Hopp 7.4.908-1 +- patchlevel 908 + +* Mon Nov 02 2015 Karsten Hopp 7.4.903-1 +- patchlevel 903 + +* Sat Oct 31 2015 Karsten Hopp 7.4.902-1 +- patchlevel 902 + +* Mon Oct 26 2015 Karsten Hopp 7.4.900-1 +- patchlevel 900 + +* Wed Oct 14 2015 Karsten Hopp 7.4.898-1 +- patchlevel 898 + +* Thu Oct 08 2015 Karsten Hopp 7.4.891-1 +- patchlevel 891 + +* Wed Oct 07 2015 Karsten Hopp 7.4.890-1 +- patchlevel 890 + +* Wed Sep 30 2015 Karsten Hopp 7.4.889-1 +- patchlevel 889 + +* Sat Sep 26 2015 Karsten Hopp 7.4.884-1 +- patchlevel 884 + +* Tue Sep 22 2015 Karsten Hopp 7.4.873-2 +- fix garbled xxd manpage in Japanese locale (bugzilla #1035606), Masayuki Oshima + +* Tue Sep 22 2015 Karsten Hopp 7.4.873-1 +- add Provides: mergetool for bugzilla #990444 + +* Fri Sep 18 2015 Karsten Hopp 7.4.873-1 +- patchlevel 873 + +* Wed Sep 16 2015 Karsten Hopp 7.4.871-1 +- patchlevel 871 + +* Thu Sep 10 2015 Karsten Hopp 7.4.865-1 +- patchlevel 865 + +* Wed Sep 09 2015 Karsten Hopp 7.4.861-1 +- patchlevel 861 + +* Wed Sep 02 2015 Karsten Hopp 7.4.854-1 +- patchlevel 854 + +* Fri Aug 28 2015 Karsten Hopp 7.4.843-1 +- patchlevel 843 + +* Thu Aug 27 2015 Karsten Hopp 7.4.841-1 +- patchlevel 841 + +* Wed Aug 26 2015 Karsten Hopp 7.4.838-1 +- patchlevel 838 + +* Wed Aug 19 2015 Karsten Hopp 7.4.827-1 +- patchlevel 827 +- re-enable lua +- enable python3 + +* Fri Jul 10 2015 Lubomir Rintel 7.4.769-3 +- drop forcing background, vim detects this since 7.4.757, rhbz#1159920 + +* Sat Jul 04 2015 Karsten Hopp 7.4.769-1 +- patchlevel 769 + +* Fri Jul 03 2015 Karsten Hopp 7.4.768-1 +- patchlevel 768 + +* Mon Jun 29 2015 Karsten Hopp 7.4.764-1 +- patchlevel 764 + +* Sun Jun 28 2015 Karsten Hopp 7.4.763-1 +- patchlevel 763 + +* Fri Jun 26 2015 Karsten Hopp 7.4.761-1 +- patchlevel 761 + +* Thu Jun 25 2015 Karsten Hopp 7.4.757-1 +- patchlevel 757 + +* Mon Jun 22 2015 Karsten Hopp 7.4.752-1 +- patchlevel 752 + +* Fri Jun 19 2015 Fedora Release Engineering - 2:7.4.737-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed Jun 10 2015 Karsten Hopp 7.4.737-1 +- patchlevel 737 + +* Thu May 14 2015 Karsten Hopp 7.4.729-1 +- patchlevel 729 + +* Wed May 06 2015 Karsten Hopp 7.4.728-1 +- patchlevel 728 + +* Tue May 05 2015 Karsten Hopp 7.4.726-1 +- patchlevel 726 + +* Mon May 04 2015 Karsten Hopp 7.4.723-1 +- patchlevel 723 + +* Thu Apr 23 2015 Karsten Hopp 7.4.712-1 +- patchlevel 712 + +* Wed Apr 22 2015 Karsten Hopp 7.4.711-1 +- patchlevel 711 + +* Tue Apr 21 2015 Karsten Hopp 7.4.708-1 +- patchlevel 708 + +* Sat Apr 18 2015 Karsten Hopp 7.4.703-1 +- patchlevel 703 + +* Fri Apr 17 2015 Karsten Hopp 7.4.702-1 +- patchlevel 702 + +* Wed Apr 15 2015 Karsten Hopp 7.4.701-1 +- patchlevel 701 + +* Tue Apr 14 2015 Karsten Hopp 7.4.699-1 +- patchlevel 699 + +* Mon Apr 13 2015 Karsten Hopp 7.4.698-1 +- patchlevel 698 + +* Fri Apr 10 2015 Karsten Hopp 7.4.692-1 +- patchlevel 692 + +* Sat Apr 04 2015 Karsten Hopp 7.4.691-1 +- patchlevel 691 + +* Fri Apr 03 2015 Karsten Hopp 7.4.690-1 +- patchlevel 690 + +* Wed Apr 01 2015 Karsten Hopp 7.4.688-1 +- patchlevel 688 + +* Tue Mar 31 2015 Karsten Hopp 7.4.686-1 +- patchlevel 686 + +* Thu Mar 26 2015 Karsten Hopp 7.4.683-1 +- patchlevel 683 + +* Wed Mar 25 2015 Karsten Hopp 7.4.682-1 +- patchlevel 682 + +* Tue Mar 24 2015 Karsten Hopp 7.4.681-1 +- patchlevel 681 + +* Sun Mar 22 2015 Karsten Hopp 7.4.674-1 +- patchlevel 674 + +* Sat Mar 21 2015 Karsten Hopp 7.4.672-1 +- patchlevel 672 + +* Fri Mar 20 2015 Karsten Hopp 7.4.668-1 +- patchlevel 668 + +* Thu Mar 19 2015 Jitka Plesnikova - 7.4.663-3 +- Perl 5.22 rebuild + +* Wed Mar 18 2015 Richard Hughes - 7.4.663-2 +- Add an AppData file for the software center + +* Sat Mar 14 2015 Karsten Hopp 7.4.663-1 +- patchlevel 663 + +* Fri Mar 13 2015 Karsten Hopp 7.4.662-1 +- patchlevel 662 + +* Sun Mar 08 2015 Karsten Hopp 7.4.658-1 +- patchlevel 658 + +* Sat Mar 07 2015 Karsten Hopp 7.4.657-1 +- patchlevel 657 + +* Fri Mar 06 2015 Karsten Hopp 7.4.656-1 +- patchlevel 656 + +* Thu Mar 05 2015 Karsten Hopp 7.4.652-1 +- patchlevel 652 + +* Sat Feb 28 2015 Karsten Hopp 7.4.648-1 +- patchlevel 648 + +* Fri Feb 27 2015 Karsten Hopp 7.4.643-1 +- patchlevel 643 + +* Fri Feb 27 2015 Dave Airlie 7.4.640-4 +- fix vimrc using wrong comment character + +* Thu Feb 26 2015 Karsten Hopp 7.4.640-3 +- bump release + +* Thu Feb 26 2015 Karsten Hopp 7.4.640-2 +- set background to dark in gnome-terminal, rhbz#1159920 + +* Wed Feb 25 2015 Karsten Hopp 7.4.640-1 +- patchlevel 640 + +* Sat Feb 21 2015 Till Maas - 7.4.629-2 +- Rebuilt for Fedora 23 Change + https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code + +* Wed Feb 11 2015 Karsten Hopp 7.4.629-2 +- fix syntax highlighting for some ssh_config sshd_config keywords + +* Wed Feb 11 2015 Karsten Hopp 7.4.629-1 +- patchlevel 629 + +* Fri Feb 06 2015 Karsten Hopp 7.4.622-1 +- patchlevel 622 + +* Thu Feb 05 2015 Karsten Hopp 7.4.621-1 +- patchlevel 621 + +* Wed Feb 04 2015 Karsten Hopp 7.4.618-1 +- patchlevel 618 + +* Tue Feb 03 2015 Karsten Hopp 7.4.615-1 +- patchlevel 615 + +* Wed Jan 28 2015 Karsten Hopp 7.4.608-1 +- patchlevel 608 + +* Tue Jan 27 2015 Karsten Hopp 7.4.604-1 +- patchlevel 604 + +* Fri Jan 23 2015 Karsten Hopp 7.4.591-1 +- patchlevel 591 + +* Wed Jan 21 2015 Karsten Hopp 7.4.589-1 +- patchlevel 589 + +* Tue Jan 20 2015 Karsten Hopp 7.4.586-1 +- patchlevel 586 + +* Sun Jan 18 2015 Karsten Hopp 7.4.582-1 +- patchlevel 582 + +* Thu Jan 15 2015 Karsten Hopp 7.4.580-1 +- patchlevel 580 + +* Wed Jan 14 2015 Karsten Hopp 7.4.576-1 +- patchlevel 576 + +* Mon Jan 12 2015 Karsten Hopp 7.4.567-1 +- use %%make_install in spec-template.new (rhbz#919270) + +* Thu Jan 08 2015 Karsten Hopp 7.4.567-1 +- patchlevel 567 + +* Wed Jan 07 2015 Karsten Hopp 7.4.566-1 +- patchlevel 566 + +* Thu Dec 18 2014 Karsten Hopp 7.4.560-1 +- patchlevel 560 + +* Wed Dec 17 2014 Karsten Hopp 7.4.557-1 +- patchlevel 557 + +* Sun Dec 14 2014 Karsten Hopp 7.4.552-1 +- patchlevel 552 + +* Sat Dec 13 2014 Karsten Hopp 7.4.546-1 +- patchlevel 546 + +* Mon Dec 08 2014 Karsten Hopp 7.4.542-1 +- patchlevel 542 + +* Sun Dec 07 2014 Karsten Hopp 7.4.541-1 +- patchlevel 541 + +* Mon Dec 01 2014 Karsten Hopp 7.4.540-1 +- patchlevel 540 + +* Sun Nov 30 2014 Karsten Hopp 7.4.539-1 +- patchlevel 539 + +* Fri Nov 28 2014 Karsten Hopp 7.4.537-1 +- patchlevel 537 + +* Thu Nov 27 2014 Karsten Hopp 7.4.534-1 +- patchlevel 534 + +* Sun Nov 23 2014 Karsten Hopp 7.4.527-1 +- patchlevel 527 + +* Fri Nov 21 2014 Karsten Hopp 7.4.526-1 +- patchlevel 526 + +* Thu Nov 20 2014 Karsten Hopp 7.4.525-1 +- patchlevel 525 + +* Wed Nov 19 2014 Karsten Hopp 7.4.521-1 +- patchlevel 521 + +* Thu Nov 13 2014 Karsten Hopp 7.4.516-1 +- patchlevel 516 + +* Wed Nov 12 2014 Karsten Hopp 7.4.512-1 +- patchlevel 512 + +* Thu Nov 06 2014 Karsten Hopp 7.4.507-1 +- patchlevel 507 + +* Wed Nov 05 2014 Karsten Hopp 7.4.502-1 +- patchlevel 502 + +* Sat Nov 01 2014 Karsten Hopp 7.4.492-1 +- patchlevel 492 + +* Fri Oct 31 2014 Karsten Hopp 7.4.491-1 +- patchlevel 491 + +* Thu Oct 23 2014 Karsten Hopp 7.4.488-1 +- patchlevel 488 + +* Wed Oct 22 2014 Karsten Hopp 7.4.487-1 +- patchlevel 487 + +* Tue Oct 21 2014 Karsten Hopp 7.4.483-1 +- patchlevel 483 + +* Fri Oct 17 2014 Karsten Hopp 7.4.481-1 +- patchlevel 481 + +* Thu Oct 16 2014 Karsten Hopp 7.4.480-1 +- patchlevel 480 + +* Wed Oct 15 2014 Karsten Hopp 7.4.477-1 +- patchlevel 477 + +* Mon Oct 13 2014 Karsten Hopp 7.4.475-2 +- add support for %%license macro (Petr Šabata) + +* Sat Oct 11 2014 Karsten Hopp 7.4.475-1 +- patchlevel 475 + +* Fri Oct 10 2014 Karsten Hopp 7.4.473-1 +- patchlevel 473 + +* Thu Oct 09 2014 Karsten Hopp 7.4.471-1 +- patchlevel 471 + +* Tue Oct 07 2014 Karsten Hopp 7.4.465-1 +- patchlevel 465 + +* Tue Sep 30 2014 Karsten Hopp 7.4.463-1 +- patchlevel 463 + +* Mon Sep 29 2014 Karsten Hopp 7.4.462-1 +- patchlevel 462 + +* Sat Sep 27 2014 Karsten Hopp 7.4.461-1 +- patchlevel 461 + +* Wed Sep 24 2014 Karsten Hopp 7.4.460-1 +- patchlevel 460 + +* Wed Sep 24 2014 Karsten Hopp 7.4.458-1 +- patchlevel 458 + +* Tue Sep 23 2014 Karsten Hopp 7.4.457-1 +- patchlevel 457 + +* Sat Sep 20 2014 Karsten Hopp 7.4.453-1 +- patchlevel 453 + +* Tue Sep 16 2014 Karsten Hopp 7.4.444-1 +- patchlevel 444 + +* Mon Sep 15 2014 Karsten Hopp 7.4.443-1 +- patchlevel 443 + +* Wed Sep 10 2014 Karsten Hopp 7.4.442-1 +- patchlevel 442 + +* Tue Aug 26 2014 Jitka Plesnikova - 2:7.4.417-2 +- Perl 5.20 rebuild + +* Tue Aug 26 2014 Karsten Hopp 7.4.417-1 +- patchlevel 417 + +* Fri Aug 22 2014 Karsten Hopp 7.4.410-1 +- patchlevel 410 +- xsubpp-path patch is obsolete now + +* Fri Aug 22 2014 Karsten Hopp 7.4.402-3 +- fix help file names + +* Mon Aug 18 2014 Fedora Release Engineering - 2:7.4.402-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + + +* Wed Aug 13 2014 Karsten Hopp 7.4.402-1 +- patchlevel 402 + +* Tue Aug 12 2014 Karsten Hopp 7.4.401-1 +- patchlevel 401 + +* Wed Aug 6 2014 Tom Callaway 2:7.4.373-2 +- fix license handling + +* Tue Jul 22 2014 Karsten Hopp 7.4.373-1 +- patchlevel 373 + +* Sun Jun 08 2014 Fedora Release Engineering - 2:7.4.307-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue May 27 2014 Karsten Hopp 7.4.307-1 +- patchlevel 307 + +* Tue Apr 29 2014 Vít Ondruch - 2:7.4.258-2 +- Rebuilt for https://fedoraproject.org/wiki/Changes/Ruby_2.1 + +* Wed Apr 16 2014 Karsten Hopp 7.4.258-1 +- patchlevel 258 + +* Mon Apr 07 2014 Karsten Hopp 7.4.253-1 +- patchlevel 253 + +* Wed Mar 12 2014 Karsten Hopp 7.4.204-1 +- patchlevel 204 + +* Mon Feb 24 2014 Karsten Hopp 7.4.192-1 +- patchlevel 192 + +* Tue Feb 18 2014 Karsten Hopp 7.4.182-1 +- patchlevel 182 + +* Tue Feb 18 2014 Karsten Hopp 7.4.179-2 +- enable dynamic lua interpreter + +* Sat Feb 15 2014 Karsten Hopp 7.4.179-1 +- patchlevel 179 + +* Wed Jan 29 2014 Karsten Hopp 7.4.160-1 +- patchlevel 160 + +* Tue Dec 17 2013 Karsten Hopp 7.4.131-1 +- patchlevel 131 + +* Wed Nov 20 2013 Karsten Hopp 7.4.094-1 +- patchlevel 094 + +* Tue Oct 15 2013 Karsten Hopp 7.4.052-1 +- patchlevel 052 + +* Wed Sep 11 2013 Karsten Hopp 7.4.027-2 +- update vim icons (#1004788) +- check if 'id -u' returns empty string (vim.sh) + +* Wed Sep 11 2013 Karsten Hopp 7.4.027-1 +- patchlevel 027 + +* Wed Sep 04 2013 Karsten Hopp 7.4.016-1 +- patchlevel 016 + +* Wed Aug 28 2013 Karsten Hopp 7.4.009-1 +- patchlevel 009 + mkdir("foo/bar/", "p") gives an error message + creating a preview window on startup messes up the screen + new regexp engine can't be interrupted + too easy to write a file was not decrypted (yet) + +* Wed Aug 21 2013 Karsten Hopp 7.4.5-1 +- patchlevel 5 +- when closing a window fails ":bwipe" may hang +- "vaB" while 'virtualedit' is set selects the wrong area + +* Wed Aug 21 2013 Karsten Hopp 7.4.3-1 +- patchlevel 3, memory access error in Ruby syntax highlighting + +* Wed Aug 21 2013 Karsten Hopp 7.4.2-1 +- patchlevel 2, pattern with two alternative look-behind matches doesn't match + +* Wed Aug 21 2013 Karsten Hopp 7.4.1-1 +- patchlevel 1, 'ic' doesn't work for patterns such as [a-z] + +* Mon Aug 12 2013 Karsten Hopp 7.4.0-1 +- update to vim-7.4 + +* Sun Aug 04 2013 Fedora Release Engineering - 2:7.3.1314-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Fri Jul 26 2013 Karsten Hopp 7.3.1314-2 +- document gex and vimx in man page +- fix gvimdiff and gvimtutor man page redirects + +* Wed Jul 17 2013 Petr Pisar - 2:7.3.1314-2 +- Perl 5.18 rebuild + +* Tue Jul 09 2013 Karsten Hopp 7.3.1314-1 +- patchlevel 1314 + +* Thu Jul 04 2013 Karsten Hopp 7.3.1293-1 +- patchlevel 1293 + +* Fri Jun 14 2013 Karsten Hopp 7.3.1189-1 +- patchlevel 1189 + +* Tue Jun 04 2013 Karsten Hopp 7.3.1109-1 +- patchlevel 1109 + +* Wed May 22 2013 Karsten Hopp 7.3.1004-1 +- patchlevel 1004 + +* Wed May 22 2013 Karsten Hopp 7.3.1000-1 +- patchlevel 1000 ! + +* Tue May 21 2013 Karsten Hopp 7.3.987-1 +- patchlevel 987 + +* Tue May 21 2013 Karsten Hopp 7.3.944-2 +- consistent use of macros in spec file +- add some links to man pages + +* Tue May 14 2013 Karsten Hopp 7.3.944-1 +- patchlevel 944 + +* Mon May 13 2013 Karsten Hopp 7.3.943-2 +- add BR perl(ExtUtils::ParseXS) + +* Mon May 13 2013 Karsten Hopp 7.3.943-1 +- patchlevel 943 + +* Wed May 08 2013 Karsten Hopp 7.3.931-1 +- patchlevel 931 + +* Wed May 08 2013 Karsten Hopp 7.3.903-1 +- fix ruby version check + +* Fri Apr 19 2013 Karsten Hopp 7.3.903-1 +- drop crv patch +- update 7.3.838 patch, it was broken upstream + +* Mon Apr 15 2013 Karsten Hopp 7.3.903-1 +- patchlevel 903 + +* Mon Feb 18 2013 Karsten Hopp 7.3.822-1 +- patchlevel 822 + +* Fri Feb 15 2013 Toshio Kuratomi - 7.3.797-2 +- Only use --vendor for desktop-file-install on F18 or less + +* Thu Jan 31 2013 Karsten Hopp 7.3.797-1 +- patchlevel 797 + +* Mon Jan 28 2013 Karsten Hopp 7.3.785-1 +- patchlevel 785 + +* Tue Nov 20 2012 Karsten Hopp 7.3.715-1 +- patchlevel 715 + +* Mon Nov 12 2012 Karsten Hopp 7.3.712-1 +- patchlevel 712 + +* Mon Nov 12 2012 Karsten Hopp 7.3.682-2 +- fix vim.csh syntax + +* Tue Oct 23 2012 Karsten Hopp 7.3.712-1 +- patchlevel 712 + +* Mon Oct 15 2012 Karsten Hopp 7.3.691-1 +- patchlevel 691 + +* Fri Oct 05 2012 Karsten Hopp 7.3.682-1 +- patchlevel 682 +- use --enable-rubyinterp=dynamic and --enable-pythoninterp=dynamic + +* Mon Sep 03 2012 Karsten Hopp 7.3.646-1 +- patchlevel 646 + +* Tue Aug 28 2012 Karsten Hopp 7.3.638-2 +- fix some man page typos (#668894, #675480) +- own usr/share/vim/vimfiles/doc/tags (#845564) +- add path to csope database (#844843) + +* Tue Aug 28 2012 Karsten Hopp 7.3.638-1 +- patchlevel 638 + +# vim:nrformats-=octal diff --git a/vimrc b/vimrc new file mode 100644 index 00000000..cf660612 --- /dev/null +++ b/vimrc @@ -0,0 +1,64 @@ +if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" + set fileencodings=ucs-bom,utf-8,latin1 +endif + +set nocompatible " Use Vim defaults (much better!) +set bs=indent,eol,start " allow backspacing over everything in insert mode +"set ai " always set autoindenting on +"set backup " keep a backup file +set viminfo='20,\"50 " read/write a .viminfo file, don't store more + " than 50 lines of registers +set history=50 " keep 50 lines of command line history +set ruler " show the cursor position all the time + +" Only do this part when compiled with support for autocommands +if has("autocmd") + augroup fedora + autocmd! + " In text files, always limit the width of text to 78 characters + " autocmd BufRead *.txt set tw=78 + " When editing a file, always jump to the last cursor position + autocmd BufReadPost * + \ if line("'\"") > 0 && line ("'\"") <= line("$") | + \ exe "normal! g'\"" | + \ endif + " don't write swapfile on most commonly used directories for NFS mounts or USB sticks + autocmd BufNewFile,BufReadPre /media/*,/run/media/*,/mnt/* set directory=~/tmp,/var/tmp,/tmp + " start with spec file template + autocmd BufNewFile *.spec 0r /usr/share/vim/vimfiles/template.spec + augroup END +endif + +if has("cscope") && filereadable("/usr/bin/cscope") + set csprg=/usr/bin/cscope + set csto=0 + set cst + set nocsverb + " add any database in current directory + if filereadable("cscope.out") + cs add $PWD/cscope.out + " else add database pointed to by environment + elseif $CSCOPE_DB != "" + cs add $CSCOPE_DB + endif + set csverb +endif + +" Switch syntax highlighting on, when the terminal has colors +" Also switch on highlighting the last used search pattern. +if &t_Co > 2 || has("gui_running") + syntax on + set hlsearch +endif + +filetype plugin on + +if &term=="xterm" + set t_Co=8 + set t_Sb=[4%dm + set t_Sf=[3%dm +endif + +" Don't wake up system with blinking cursor: +" http://www.linuxpowertop.org/known.php +let &guicursor = &guicursor . ",a:blinkon0" diff --git a/virc b/virc new file mode 100644 index 00000000..808e7d61 --- /dev/null +++ b/virc @@ -0,0 +1,37 @@ +if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" + set fileencodings=ucs-bom,utf-8,latin1 +endif + +set nocompatible " Use Vim defaults (much better!) +set bs=indent,eol,start " allow backspacing over everything in insert mode +"set ai " always set autoindenting on +"set backup " keep a backup file +set history=50 " keep 50 lines of command line history +set ruler " show the cursor position all the time + +" Only do this part when compiled with support for autocommands +if has("autocmd") + augroup fedora + autocmd! + " In text files, always limit the width of text to 78 characters + " autocmd BufRead *.txt set tw=78 + " When editing a file, always jump to the last cursor position + autocmd BufReadPost * + \ if line("'\"") > 0 && line ("'\"") <= line("$") | + \ exe "normal! g'\"" | + \ endif + " don't write swapfile on most commonly used directories for NFS mounts or USB sticks + autocmd BufNewFile,BufReadPre /media/*,/run/media/*,/mnt/* set directory=~/tmp,/var/tmp,/tmp + " start with spec file template + autocmd BufNewFile *.spec 0r /usr/share/vim/vimfiles/template.spec + augroup END +endif + + +filetype plugin on + +if &term=="xterm" + set t_Co=8 + set t_Sb=[4%dm + set t_Sf=[3%dm +endif