From 0c88cd382ab72b456fd7c586fb46c86e3c6047da Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 2 Aug 2022 03:03:02 -0400 Subject: [PATCH] import vim-8.0.1763-19.el8_6.4 --- .gitignore | 3 + .vim.metadata | 3 + ...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 + SOURCES/gvim16.png | Bin 0 -> 226 bytes SOURCES/gvim32.png | Bin 0 -> 347 bytes SOURCES/gvim48.png | Bin 0 -> 474 bytes SOURCES/macros.vim | 1 + SOURCES/spec-template | 42 + SOURCES/spec-template.new | 35 + SOURCES/vim-7.0-fixkeys.patch | 25 + SOURCES/vim-7.0-rclocation.patch | 15 + SOURCES/vim-7.0-specedit.patch | 64 + .../vim-7.3-manpage-typo-668894-675480.patch | 12 + SOURCES/vim-7.4-checkhl.patch | 12 + SOURCES/vim-7.4-fstabsyntax.patch | 21 + SOURCES/vim-7.4-globalsyntax.patch | 12 + SOURCES/vim-7.4-licensemacro-1151450.patch | 15 + SOURCES/vim-7.4-nowarnings.patch | 11 + SOURCES/vim-7.4-releasestring-1318991.patch | 14 + SOURCES/vim-7.4-specsyntax.patch | 33 + SOURCES/vim-7.4-syncolor.patch | 25 + SOURCES/vim-7.4-syntax.patch | 11 + SOURCES/vim-8.0-copy-paste.patch | 16 + SOURCES/vim-covscan.patch | 51 + SOURCES/vim-crypto-warning.patch | 86 + SOURCES/vim-cve3778-fix.patch | 13 + SOURCES/vim-cve3796.patch | 51 + SOURCES/vim-manpagefixes-948566.patch | 326 +++ SOURCES/vim-python3-tests.patch | 87 + SOURCES/vim.csh | 6 + SOURCES/vim.sh | 5 + SOURCES/vimrc | 64 + SOURCES/virc | 37 + SPECS/vim.spec | 2448 +++++++++++++++++ 52 files changed, 4865 insertions(+) create mode 100644 .gitignore create mode 100644 .vim.metadata create mode 100644 SOURCES/0001-patch-8.1.0881-can-execute-shell-commands-in-rvim-th.patch create mode 100644 SOURCES/0001-patch-8.1.1365-source-command-doesn-t-check-for-the-.patch create mode 100644 SOURCES/0001-patch-8.2.3487-illegal-memory-access-if-buffer-name-.patch create mode 100644 SOURCES/0001-patch-8.2.3625-illegal-memory-access-when-C-indentin.patch create mode 100644 SOURCES/0001-patch-8.2.3669-buffer-overflow-with-long-help-argume.patch create mode 100644 SOURCES/0001-patch-8.2.3949-using-freed-memory-with-V.patch create mode 100644 SOURCES/0001-patch-8.2.3950-going-beyond-the-end-of-the-line-with.patch create mode 100644 SOURCES/0001-patch-8.2.4120-block-insert-goes-over-the-end-of-the.patch create mode 100644 SOURCES/0001-patch-8.2.4151-reading-beyond-the-end-of-a-line.patch create mode 100644 SOURCES/0001-patch-8.2.4214-illegal-memory-access-with-large-tabs.patch create mode 100644 SOURCES/0001-patch-8.2.4215-illegal-memory-access-when-copying-li.patch create mode 100644 SOURCES/0001-patch-8.2.4218-illegal-memory-access-with-bracketed-.patch create mode 100644 SOURCES/0001-patch-8.2.4253-using-freed-memory-when-substitute-wi.patch create mode 100644 SOURCES/0001-patch-8.2.4646-using-buffer-line-after-it-has-been-f.patch create mode 100644 SOURCES/0001-patch-8.2.4919-can-add-invalid-bytes-with-spellgood.patch create mode 100644 SOURCES/0001-patch-8.2.4925-trailing-backslash-may-cause-reading-.patch create mode 100644 SOURCES/0001-patch-8.2.4977-memory-access-error-when-substitute-e.patch create mode 100644 SOURCES/0001-patch-8.2.5023-substitute-overwrites-allocated-buffe.patch create mode 100644 SOURCES/0001-patch-8.2.5037-cursor-position-may-be-invalid-after-.patch create mode 100644 SOURCES/gvim16.png create mode 100644 SOURCES/gvim32.png create mode 100644 SOURCES/gvim48.png create mode 100644 SOURCES/macros.vim create mode 100644 SOURCES/spec-template create mode 100644 SOURCES/spec-template.new create mode 100644 SOURCES/vim-7.0-fixkeys.patch create mode 100644 SOURCES/vim-7.0-rclocation.patch create mode 100644 SOURCES/vim-7.0-specedit.patch create mode 100644 SOURCES/vim-7.3-manpage-typo-668894-675480.patch create mode 100644 SOURCES/vim-7.4-checkhl.patch create mode 100644 SOURCES/vim-7.4-fstabsyntax.patch create mode 100644 SOURCES/vim-7.4-globalsyntax.patch create mode 100644 SOURCES/vim-7.4-licensemacro-1151450.patch create mode 100644 SOURCES/vim-7.4-nowarnings.patch create mode 100644 SOURCES/vim-7.4-releasestring-1318991.patch create mode 100644 SOURCES/vim-7.4-specsyntax.patch create mode 100644 SOURCES/vim-7.4-syncolor.patch create mode 100644 SOURCES/vim-7.4-syntax.patch create mode 100644 SOURCES/vim-8.0-copy-paste.patch create mode 100644 SOURCES/vim-covscan.patch create mode 100644 SOURCES/vim-crypto-warning.patch create mode 100644 SOURCES/vim-cve3778-fix.patch create mode 100644 SOURCES/vim-cve3796.patch create mode 100644 SOURCES/vim-manpagefixes-948566.patch create mode 100644 SOURCES/vim-python3-tests.patch create mode 100644 SOURCES/vim.csh create mode 100644 SOURCES/vim.sh create mode 100644 SOURCES/vimrc create mode 100644 SOURCES/virc create mode 100644 SPECS/vim.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d8588a3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +SOURCES/Changelog.rpm +SOURCES/gvim64.png +SOURCES/vim-8.0-1763.tar.bz2 diff --git a/.vim.metadata b/.vim.metadata new file mode 100644 index 0000000..4ebd5da --- /dev/null +++ b/.vim.metadata @@ -0,0 +1,3 @@ +5ea81545fc28b57c490d25bda67a63a2838dd25b SOURCES/Changelog.rpm +c32bd520a1498b71ee9bbcddc7ad05df1565d085 SOURCES/gvim64.png +6716ebb416c9da91d16a2b17dc6bc2cecf65b4eb SOURCES/vim-8.0-1763.tar.bz2 diff --git a/SOURCES/0001-patch-8.1.0881-can-execute-shell-commands-in-rvim-th.patch b/SOURCES/0001-patch-8.1.0881-can-execute-shell-commands-in-rvim-th.patch new file mode 100644 index 0000000..e74d837 --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.1.1365-source-command-doesn-t-check-for-the-.patch b/SOURCES/0001-patch-8.1.1365-source-command-doesn-t-check-for-the-.patch new file mode 100644 index 0000000..97e8e2e --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.2.3487-illegal-memory-access-if-buffer-name-.patch b/SOURCES/0001-patch-8.2.3487-illegal-memory-access-if-buffer-name-.patch new file mode 100644 index 0000000..76018f9 --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.2.3625-illegal-memory-access-when-C-indentin.patch b/SOURCES/0001-patch-8.2.3625-illegal-memory-access-when-C-indentin.patch new file mode 100644 index 0000000..668ffe5 --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.2.3669-buffer-overflow-with-long-help-argume.patch b/SOURCES/0001-patch-8.2.3669-buffer-overflow-with-long-help-argume.patch new file mode 100644 index 0000000..0cfaec6 --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.2.3949-using-freed-memory-with-V.patch b/SOURCES/0001-patch-8.2.3949-using-freed-memory-with-V.patch new file mode 100644 index 0000000..c3f7bb1 --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.2.3950-going-beyond-the-end-of-the-line-with.patch b/SOURCES/0001-patch-8.2.3950-going-beyond-the-end-of-the-line-with.patch new file mode 100644 index 0000000..485f00d --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.2.4120-block-insert-goes-over-the-end-of-the.patch b/SOURCES/0001-patch-8.2.4120-block-insert-goes-over-the-end-of-the.patch new file mode 100644 index 0000000..31d30c1 --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.2.4151-reading-beyond-the-end-of-a-line.patch b/SOURCES/0001-patch-8.2.4151-reading-beyond-the-end-of-a-line.patch new file mode 100644 index 0000000..8e92918 --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.2.4214-illegal-memory-access-with-large-tabs.patch b/SOURCES/0001-patch-8.2.4214-illegal-memory-access-with-large-tabs.patch new file mode 100644 index 0000000..98e738c --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.2.4215-illegal-memory-access-when-copying-li.patch b/SOURCES/0001-patch-8.2.4215-illegal-memory-access-when-copying-li.patch new file mode 100644 index 0000000..604a8ff --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.2.4218-illegal-memory-access-with-bracketed-.patch b/SOURCES/0001-patch-8.2.4218-illegal-memory-access-with-bracketed-.patch new file mode 100644 index 0000000..8cb7a44 --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.2.4253-using-freed-memory-when-substitute-wi.patch b/SOURCES/0001-patch-8.2.4253-using-freed-memory-when-substitute-wi.patch new file mode 100644 index 0000000..b37d821 --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.2.4646-using-buffer-line-after-it-has-been-f.patch b/SOURCES/0001-patch-8.2.4646-using-buffer-line-after-it-has-been-f.patch new file mode 100644 index 0000000..a2eb48b --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.2.4919-can-add-invalid-bytes-with-spellgood.patch b/SOURCES/0001-patch-8.2.4919-can-add-invalid-bytes-with-spellgood.patch new file mode 100644 index 0000000..b887afe --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.2.4925-trailing-backslash-may-cause-reading-.patch b/SOURCES/0001-patch-8.2.4925-trailing-backslash-may-cause-reading-.patch new file mode 100644 index 0000000..6ce497f --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.2.4977-memory-access-error-when-substitute-e.patch b/SOURCES/0001-patch-8.2.4977-memory-access-error-when-substitute-e.patch new file mode 100644 index 0000000..2391a5f --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.2.5023-substitute-overwrites-allocated-buffe.patch b/SOURCES/0001-patch-8.2.5023-substitute-overwrites-allocated-buffe.patch new file mode 100644 index 0000000..5475937 --- /dev/null +++ b/SOURCES/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/SOURCES/0001-patch-8.2.5037-cursor-position-may-be-invalid-after-.patch b/SOURCES/0001-patch-8.2.5037-cursor-position-may-be-invalid-after-.patch new file mode 100644 index 0000000..bd20285 --- /dev/null +++ b/SOURCES/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/SOURCES/gvim16.png b/SOURCES/gvim16.png new file mode 100644 index 0000000000000000000000000000000000000000..fb45d22a0560d23c20b65ea1922099a8ae56683e GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFNHZ`PcHfZ)Qj8@*e!&b5&u*jvIT@ZVjv*CuR8Mc@ zWj5qtc3Ad_O|n7D#PNZdv4p{<#;aOPpQ7wH&A-~H(0FEjI#ces{NS%G|s0G|-o zy?ggE{AW0D;6Ot|0|P_D|Ns9PfHVVxVfP(*AjMb`R->=d;b*aaz$6Grc8>A8&|3~cJ#=EAl zQh(N!+v&YdbC*qLy3#Ra-Yi#6Hn&AOE3X^J-{fi4xT~UH=f*PWPJcm@$?k%Nzb~7b zg9{Q4rOcHwSXdJh$veYA#cPMejBNcyYog@ehXx#V6cxFmY%c!g+SWR~-49X?lL`;A z2OYd(b#&rnojkYs7sG50960epnMK;CuZRE1VF|CkpIZIQnO^aJ1_e&rQbU`3`j!f^ prZt4{?=dvEVyCl>^WWmXeD+q;v;HP33WR||z|+;wWt~$(69DQDh-3f& literal 0 HcmV?d00001 diff --git a/SOURCES/gvim48.png b/SOURCES/gvim48.png new file mode 100644 index 0000000000000000000000000000000000000000..4bac67e62ae3e2a1079538980281ae5403ed5115 GIT binary patch literal 474 zcmV<00VV#4P)q`j~yD^i1yhu;pDSnN4t)IMz?&o1sEC(ug`fYUtwt@M< z!Ht0*20$gEw83~QdPt{TC0`v8%=BWFHVz!zo6rH;A_*LH0tcPIKrb-R3k?*ZfchO- zIPzRz%IhMSJePgW;8SZ&G`I{x5ezAN?zL({Qs7cR6OytI1u!8^UuJM+f_aWYYy*KC z7bI2(SqI$-sEh@;zywq(@Rq<+@?J3@yLmJ~6&P4_=!6PXIOdoeo#_e|?VY!j{FI%cOgu=}Y5*cEJR z$)Z7~5-Teq#9QI1+{(wrEIo-mfH53nSRrM14{SqiYabxxKex' ++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/SOURCES/vim-7.4-nowarnings.patch b/SOURCES/vim-7.4-nowarnings.patch new file mode 100644 index 0000000..c77f9fc --- /dev/null +++ b/SOURCES/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/SOURCES/vim-7.4-releasestring-1318991.patch b/SOURCES/vim-7.4-releasestring-1318991.patch new file mode 100644 index 0000000..291b957 --- /dev/null +++ b/SOURCES/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/SOURCES/vim-7.4-specsyntax.patch b/SOURCES/vim-7.4-specsyntax.patch new file mode 100644 index 0000000..3c028b5 --- /dev/null +++ b/SOURCES/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/SOURCES/vim-covscan.patch b/SOURCES/vim-covscan.patch new file mode 100644 index 0000000..dd272a7 --- /dev/null +++ b/SOURCES/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/SOURCES/vim-crypto-warning.patch b/SOURCES/vim-crypto-warning.patch new file mode 100644 index 0000000..408f755 --- /dev/null +++ b/SOURCES/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/SOURCES/vim-cve3778-fix.patch b/SOURCES/vim-cve3778-fix.patch new file mode 100644 index 0000000..a482b38 --- /dev/null +++ b/SOURCES/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/SOURCES/vim-cve3796.patch b/SOURCES/vim-cve3796.patch new file mode 100644 index 0000000..ca41acf --- /dev/null +++ b/SOURCES/vim-cve3796.patch @@ -0,0 +1,51 @@ +diff --git a/src/normal.c b/src/normal.c +index be0e75e..7d62e20 100644 +--- a/src/normal.c ++++ b/src/normal.c +@@ -7147,19 +7147,23 @@ nv_replace(cmdarg_T *cap) + { + /* + * Get ptr again, because u_save and/or showmatch() will have +- * released the line. At the same time we let know that the +- * line will be changed. ++ * released the line. This may also happen in ins_copychar(). ++ * At the same time we let know that the line will be changed. + */ +- ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE); + if (cap->nchar == Ctrl_E || cap->nchar == Ctrl_Y) + { + int c = ins_copychar(curwin->w_cursor.lnum + + (cap->nchar == Ctrl_Y ? -1 : 1)); ++ ++ ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE); + if (c != NUL) + ptr[curwin->w_cursor.col] = c; + } + else ++ { ++ ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE); + ptr[curwin->w_cursor.col] = cap->nchar; ++ } + if (p_sm && msg_silent == 0) + showmatch(cap->nchar); + ++curwin->w_cursor.col; +diff --git a/src/testdir/test_edit.vim b/src/testdir/test_edit.vim +index 7278bcd..8818805 100644 +--- a/src/testdir/test_edit.vim ++++ b/src/testdir/test_edit.vim +@@ -1387,3 +1387,15 @@ func Test_edit_quit() + only + endfunc + ++" Test for getting the character of the line below after "p" ++func Test_edit_put_CTRL_E() ++ set encoding=latin1 ++ new ++ let @" = '' ++ sil! norm orggRx ++ sil! norm pr ++ call assert_equal(['r', 'r'], getline(1, 2)) ++ bwipe! ++ set encoding=utf-8 ++endfunc ++ diff --git a/SOURCES/vim-manpagefixes-948566.patch b/SOURCES/vim-manpagefixes-948566.patch new file mode 100644 index 0000000..6f49560 --- /dev/null +++ b/SOURCES/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/SOURCES/vim-python3-tests.patch b/SOURCES/vim-python3-tests.patch new file mode 100644 index 0000000..26027f7 --- /dev/null +++ b/SOURCES/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/SOURCES/vim.csh b/SOURCES/vim.csh new file mode 100644 index 0000000..bb9ceb1 --- /dev/null +++ b/SOURCES/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/SOURCES/vim.sh b/SOURCES/vim.sh new file mode 100644 index 0000000..1e4ff78 --- /dev/null +++ b/SOURCES/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/SOURCES/vimrc b/SOURCES/vimrc new file mode 100644 index 0000000..cf66061 --- /dev/null +++ b/SOURCES/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/SOURCES/virc b/SOURCES/virc new file mode 100644 index 0000000..808e7d6 --- /dev/null +++ b/SOURCES/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 diff --git a/SPECS/vim.spec b/SPECS/vim.spec new file mode 100644 index 0000000..712d5ac --- /dev/null +++ b/SPECS/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