From ec3bfbc22fa664b7990cfa49593fdddc5eac12a0 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Wed, 14 May 2025 15:38:19 +0000 Subject: [PATCH] import UBI vim-9.1.083-5.el10 --- .gitignore | 8 +- .vim.metadata | 3 - ...otential-overflow-in-spell_soundfold.patch | 61 + ...im9-copy-paste-error-in-class_defini.patch | 48 + ...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 226 -> 0 bytes SOURCES/gvim32.png | Bin 347 -> 0 bytes SOURCES/gvim48.png | Bin 474 -> 0 bytes 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 - 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-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-cve3778-fix.patch | 13 - SOURCES/vim-cve3796.patch | 51 - SOURCES/vim-python3-tests.patch | 87 - SOURCES/vim.csh | 6 - SOURCES/vim.sh | 5 - SOURCES/vimrc | 64 - SOURCES/macros.vim => macros.vim | 0 sources | 5 + spec-template.new | 41 + vi_wrapper | 23 + view_wrapper | 10 + vim-7.0-fixkeys.patch | 26 + ...> vim-7.3-manpage-typo-668894-675480.patch | 0 vim-7.4-globalsyntax.patch | 13 + ...ecsyntax.patch => vim-7.4-specsyntax.patch | 2 +- vim-8.0-copy-paste.patch | 87 + ...-warning.patch => vim-crypto-warning.patch | 45 +- vim-default-editor.csh | 5 + vim-default-editor.fish | 8 + vim-default-editor.sh | 5 + ...566.patch => vim-manpagefixes-948566.patch | 0 vim-python3-tests.patch | 87 + SPECS/vim.spec => vim.spec | 2077 ++++++++++++++--- vimrc | 128 + SOURCES/virc => virc | 3 - 66 files changed, 2303 insertions(+), 2298 deletions(-) delete mode 100644 .vim.metadata create mode 100644 0001-patch-9.1.0903-potential-overflow-in-spell_soundfold.patch create mode 100644 0001-patch-9.1.0904-Vim9-copy-paste-error-in-class_defini.patch delete mode 100644 SOURCES/0001-patch-8.1.0881-can-execute-shell-commands-in-rvim-th.patch delete mode 100644 SOURCES/0001-patch-8.1.1365-source-command-doesn-t-check-for-the-.patch delete mode 100644 SOURCES/0001-patch-8.2.3487-illegal-memory-access-if-buffer-name-.patch delete mode 100644 SOURCES/0001-patch-8.2.3625-illegal-memory-access-when-C-indentin.patch delete mode 100644 SOURCES/0001-patch-8.2.3669-buffer-overflow-with-long-help-argume.patch delete mode 100644 SOURCES/0001-patch-8.2.3949-using-freed-memory-with-V.patch delete mode 100644 SOURCES/0001-patch-8.2.3950-going-beyond-the-end-of-the-line-with.patch delete mode 100644 SOURCES/0001-patch-8.2.4120-block-insert-goes-over-the-end-of-the.patch delete mode 100644 SOURCES/0001-patch-8.2.4151-reading-beyond-the-end-of-a-line.patch delete mode 100644 SOURCES/0001-patch-8.2.4214-illegal-memory-access-with-large-tabs.patch delete mode 100644 SOURCES/0001-patch-8.2.4215-illegal-memory-access-when-copying-li.patch delete mode 100644 SOURCES/0001-patch-8.2.4218-illegal-memory-access-with-bracketed-.patch delete mode 100644 SOURCES/0001-patch-8.2.4253-using-freed-memory-when-substitute-wi.patch delete mode 100644 SOURCES/0001-patch-8.2.4646-using-buffer-line-after-it-has-been-f.patch delete mode 100644 SOURCES/0001-patch-8.2.4919-can-add-invalid-bytes-with-spellgood.patch delete mode 100644 SOURCES/0001-patch-8.2.4925-trailing-backslash-may-cause-reading-.patch delete mode 100644 SOURCES/0001-patch-8.2.4977-memory-access-error-when-substitute-e.patch delete mode 100644 SOURCES/0001-patch-8.2.5023-substitute-overwrites-allocated-buffe.patch delete mode 100644 SOURCES/0001-patch-8.2.5037-cursor-position-may-be-invalid-after-.patch delete mode 100644 SOURCES/gvim16.png delete mode 100644 SOURCES/gvim32.png delete mode 100644 SOURCES/gvim48.png delete mode 100644 SOURCES/spec-template delete mode 100644 SOURCES/spec-template.new delete mode 100644 SOURCES/vim-7.0-fixkeys.patch delete mode 100644 SOURCES/vim-7.0-rclocation.patch delete mode 100644 SOURCES/vim-7.0-specedit.patch delete mode 100644 SOURCES/vim-7.4-checkhl.patch delete mode 100644 SOURCES/vim-7.4-fstabsyntax.patch delete mode 100644 SOURCES/vim-7.4-globalsyntax.patch delete mode 100644 SOURCES/vim-7.4-licensemacro-1151450.patch delete mode 100644 SOURCES/vim-7.4-nowarnings.patch delete mode 100644 SOURCES/vim-7.4-releasestring-1318991.patch delete mode 100644 SOURCES/vim-7.4-syncolor.patch delete mode 100644 SOURCES/vim-7.4-syntax.patch delete mode 100644 SOURCES/vim-8.0-copy-paste.patch delete mode 100644 SOURCES/vim-covscan.patch delete mode 100644 SOURCES/vim-cve3778-fix.patch delete mode 100644 SOURCES/vim-cve3796.patch delete mode 100644 SOURCES/vim-python3-tests.patch delete mode 100644 SOURCES/vim.csh delete mode 100644 SOURCES/vim.sh delete mode 100644 SOURCES/vimrc rename SOURCES/macros.vim => macros.vim (100%) create mode 100644 sources create mode 100644 spec-template.new create mode 100644 vi_wrapper create mode 100644 view_wrapper create mode 100644 vim-7.0-fixkeys.patch rename SOURCES/vim-7.3-manpage-typo-668894-675480.patch => vim-7.3-manpage-typo-668894-675480.patch (100%) create mode 100644 vim-7.4-globalsyntax.patch rename SOURCES/vim-7.4-specsyntax.patch => vim-7.4-specsyntax.patch (99%) create mode 100644 vim-8.0-copy-paste.patch rename SOURCES/vim-crypto-warning.patch => vim-crypto-warning.patch (65%) create mode 100644 vim-default-editor.csh create mode 100644 vim-default-editor.fish create mode 100644 vim-default-editor.sh rename SOURCES/vim-manpagefixes-948566.patch => vim-manpagefixes-948566.patch (100%) create mode 100644 vim-python3-tests.patch rename SPECS/vim.spec => vim.spec (54%) create mode 100644 vimrc rename SOURCES/virc => virc (98%) diff --git a/.gitignore b/.gitignore index d8588a34..c91b7ae8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ -SOURCES/Changelog.rpm -SOURCES/gvim64.png -SOURCES/vim-8.0-1763.tar.bz2 +gvim16.png +gvim32.png +gvim48.png +gvim64.png +vim-9.1-083.tar.bz2 diff --git a/.vim.metadata b/.vim.metadata deleted file mode 100644 index 4ebd5da7..00000000 --- a/.vim.metadata +++ /dev/null @@ -1,3 +0,0 @@ -5ea81545fc28b57c490d25bda67a63a2838dd25b SOURCES/Changelog.rpm -c32bd520a1498b71ee9bbcddc7ad05df1565d085 SOURCES/gvim64.png -6716ebb416c9da91d16a2b17dc6bc2cecf65b4eb SOURCES/vim-8.0-1763.tar.bz2 diff --git a/0001-patch-9.1.0903-potential-overflow-in-spell_soundfold.patch b/0001-patch-9.1.0903-potential-overflow-in-spell_soundfold.patch new file mode 100644 index 00000000..0882089f --- /dev/null +++ b/0001-patch-9.1.0903-potential-overflow-in-spell_soundfold.patch @@ -0,0 +1,61 @@ +From 39a94d20487794aeb722c21e84f8816e217f0cfe Mon Sep 17 00:00:00 2001 +From: Zdenek Dohnal +Date: Wed, 4 Dec 2024 20:16:17 +0100 +Subject: [PATCH] patch 9.1.0903: potential overflow in spell_soundfold_wsal() + +Problem: potential overflow in spell_soundfold_wsal() +Solution: Protect wres from buffer overflow, by checking the + length (Zdenek Dohnal) + +Error: OVERRUN (CWE-119): +vim91/src/spell.c:3819: cond_const: Checking "reslen < 254" implies that +"reslen" is 254 on the false branch. +vim91/src/spell.c:3833: incr: Incrementing "reslen". The value of "reslen" +is now 255. +vim91/src/spell.c:3792: overrun-local: Overrunning array "wres" of 254 +4-byte elements at element index 254 (byte offset 1019) using index +"reslen - 1" (which evaluates to 254). + 3789| { + 3790| // rule with '<' is used + 3791|-> if (reslen > 0 && ws != NULL && *ws != NUL + 3792| && (wres[reslen - 1] == c + 3793| || wres[reslen - 1] == *ws)) + +Error: OVERRUN (CWE-119): +vim91/src/spell.c:3819: cond_const: Checking "reslen < 254" implies that +"reslen" is 254 on the false branch. +vim91/src/spell.c:3833: overrun-local: Overrunning array "wres" of 254 +4-byte elements at element index 254 (byte offset 1019) using index +"reslen++" (which evaluates to 254). + 3831| { + 3832| if (c != NUL) + 3833|-> wres[reslen++] = c; + 3834| mch_memmove(word, word + i + 1, + 3835| sizeof(int) * (wordlen - +(i + 1) + 1)); + +related: #16163 + +Signed-off-by: Zdenek Dohnal +Signed-off-by: Christian Brabandt +--- + src/spell.c | 2 +- + src/version.c | 2 ++ + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/spell.c b/src/spell.c +index 5a7720f7f..2581a5ede 100644 +--- a/src/spell.c ++++ b/src/spell.c +@@ -3829,7 +3829,7 @@ spell_soundfold_wsal(slang_T *slang, char_u *inword, char_u *res) + c = *ws; + if (strstr((char *)s, "^^") != NULL) + { +- if (c != NUL) ++ if (c != NUL && reslen < MAXWLEN) + wres[reslen++] = c; + mch_memmove(word, word + i + 1, + sizeof(int) * (wordlen - (i + 1) + 1)); +-- +2.47.1 + diff --git a/0001-patch-9.1.0904-Vim9-copy-paste-error-in-class_defini.patch b/0001-patch-9.1.0904-Vim9-copy-paste-error-in-class_defini.patch new file mode 100644 index 00000000..19a2be8a --- /dev/null +++ b/0001-patch-9.1.0904-Vim9-copy-paste-error-in-class_defini.patch @@ -0,0 +1,48 @@ +From 215c82d061d750d8a26ef52f529a9e3ca4e0f82a Mon Sep 17 00:00:00 2001 +From: Zdenek Dohnal +Date: Wed, 4 Dec 2024 20:19:40 +0100 +Subject: [PATCH] patch 9.1.0904: Vim9: copy-paste error in + class_defining_member() + +Problem: Vim9: copy-paste error in class_defining_member() +Solution: use variable type VAR_CLASS instead (Zdenek Dohnal) + +Found issue by OpenScanHub: +Error: COPY_PASTE_ERROR (CWE-398): +vim91/src/vim9class.c:3308: original: "VAR_OBJECT" looks like the +original copy. +vim91/src/vim9class.c:3316: copy_paste_error: "VAR_OBJECT" looks like a +copy-paste error. +vim91/src/vim9class.c:3316: remediation: Should it say "VAR_CLASS" +instead? +3314| { +3315| cl_tmp = super; +3316|-> vartype = VAR_OBJECT; +3317| } +3318| } + +closes: #16163 + +Signed-off-by: Zdenek Dohnal +Signed-off-by: Christian Brabandt +--- + src/version.c | 2 ++ + src/vim9class.c | 2 +- + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/vim9class.c b/src/vim9class.c +index d0ddcb820..e85cf827f 100644 +--- a/src/vim9class.c ++++ b/src/vim9class.c +@@ -3313,7 +3313,7 @@ class_defining_member(class_T *cl, char_u *name, size_t len, ocmember_T **p_m) + if (( m = class_member_lookup(super, name, len, NULL)) != NULL) + { + cl_tmp = super; +- vartype = VAR_OBJECT; ++ vartype = VAR_CLASS; + } + } + if (cl_tmp == NULL) +-- +2.47.1 + 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 deleted file mode 100644 index e74d8372..00000000 --- a/SOURCES/0001-patch-8.1.0881-can-execute-shell-commands-in-rvim-th.patch +++ /dev/null @@ -1,461 +0,0 @@ -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 deleted file mode 100644 index 97e8e2ea..00000000 --- a/SOURCES/0001-patch-8.1.1365-source-command-doesn-t-check-for-the-.patch +++ /dev/null @@ -1,16 +0,0 @@ -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 deleted file mode 100644 index 76018f9e..00000000 --- a/SOURCES/0001-patch-8.2.3487-illegal-memory-access-if-buffer-name-.patch +++ /dev/null @@ -1,35 +0,0 @@ -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 deleted file mode 100644 index 668ffe54..00000000 --- a/SOURCES/0001-patch-8.2.3625-illegal-memory-access-when-C-indentin.patch +++ /dev/null @@ -1,34 +0,0 @@ -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 deleted file mode 100644 index 0cfaec6a..00000000 --- a/SOURCES/0001-patch-8.2.3669-buffer-overflow-with-long-help-argume.patch +++ /dev/null @@ -1,14 +0,0 @@ -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 deleted file mode 100644 index c3f7bb15..00000000 --- a/SOURCES/0001-patch-8.2.3949-using-freed-memory-with-V.patch +++ /dev/null @@ -1,45 +0,0 @@ -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 deleted file mode 100644 index 485f00d5..00000000 --- a/SOURCES/0001-patch-8.2.3950-going-beyond-the-end-of-the-line-with.patch +++ /dev/null @@ -1,38 +0,0 @@ -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 deleted file mode 100644 index 31d30c18..00000000 --- a/SOURCES/0001-patch-8.2.4120-block-insert-goes-over-the-end-of-the.patch +++ /dev/null @@ -1,95 +0,0 @@ -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 deleted file mode 100644 index 8e92918e..00000000 --- a/SOURCES/0001-patch-8.2.4151-reading-beyond-the-end-of-a-line.patch +++ /dev/null @@ -1,46 +0,0 @@ -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 deleted file mode 100644 index 98e738cb..00000000 --- a/SOURCES/0001-patch-8.2.4214-illegal-memory-access-with-large-tabs.patch +++ /dev/null @@ -1,12 +0,0 @@ -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 deleted file mode 100644 index 604a8ff6..00000000 --- a/SOURCES/0001-patch-8.2.4215-illegal-memory-access-when-copying-li.patch +++ /dev/null @@ -1,33 +0,0 @@ -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 deleted file mode 100644 index 8cb7a441..00000000 --- a/SOURCES/0001-patch-8.2.4218-illegal-memory-access-with-bracketed-.patch +++ /dev/null @@ -1,85 +0,0 @@ -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 deleted file mode 100644 index b37d8211..00000000 --- a/SOURCES/0001-patch-8.2.4253-using-freed-memory-when-substitute-wi.patch +++ /dev/null @@ -1,51 +0,0 @@ -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 deleted file mode 100644 index a2eb48be..00000000 --- a/SOURCES/0001-patch-8.2.4646-using-buffer-line-after-it-has-been-f.patch +++ /dev/null @@ -1,22 +0,0 @@ -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 deleted file mode 100644 index b887afef..00000000 --- a/SOURCES/0001-patch-8.2.4919-can-add-invalid-bytes-with-spellgood.patch +++ /dev/null @@ -1,57 +0,0 @@ -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 deleted file mode 100644 index 6ce497fe..00000000 --- a/SOURCES/0001-patch-8.2.4925-trailing-backslash-may-cause-reading-.patch +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index 2391a5f4..00000000 --- a/SOURCES/0001-patch-8.2.4977-memory-access-error-when-substitute-e.patch +++ /dev/null @@ -1,57 +0,0 @@ -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 deleted file mode 100644 index 54759376..00000000 --- a/SOURCES/0001-patch-8.2.5023-substitute-overwrites-allocated-buffe.patch +++ /dev/null @@ -1,120 +0,0 @@ -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 deleted file mode 100644 index bd202858..00000000 --- a/SOURCES/0001-patch-8.2.5037-cursor-position-may-be-invalid-after-.patch +++ /dev/null @@ -1,85 +0,0 @@ -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 deleted file mode 100644 index fb45d22a0560d23c20b65ea1922099a8ae56683e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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& diff --git a/SOURCES/gvim48.png b/SOURCES/gvim48.png deleted file mode 100644 index 4bac67e62ae3e2a1079538980281ae5403ed5115..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 deleted file mode 100644 index c77f9fce..00000000 --- a/SOURCES/vim-7.4-nowarnings.patch +++ /dev/null @@ -1,11 +0,0 @@ -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 deleted file mode 100644 index 291b957f..00000000 --- a/SOURCES/vim-7.4-releasestring-1318991.patch +++ /dev/null @@ -1,14 +0,0 @@ -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-syncolor.patch b/SOURCES/vim-7.4-syncolor.patch deleted file mode 100644 index 440da186..00000000 --- a/SOURCES/vim-7.4-syncolor.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -up vim80/src/syntax.c.syncolor vim80/src/syntax.c ---- vim80/src/syntax.c.syncolor 2017-08-15 12:14:21.716020676 +0200 -+++ vim80/src/syntax.c 2017-08-15 12:30:31.380158974 +0200 -@@ -6972,8 +6972,8 @@ static char *(highlight_init_light[]) = - CENT("Visual term=reverse", - "Visual term=reverse guibg=LightGrey"), - #ifdef FEAT_DIFF -- CENT("DiffAdd term=bold ctermbg=LightBlue", -- "DiffAdd term=bold ctermbg=LightBlue guibg=LightBlue"), -+ CENT("DiffAdd term=bold ctermbg=LightRed", -+ "DiffAdd term=bold ctermbg=LightRed guibg=LightBlue"), - CENT("DiffChange term=bold ctermbg=LightMagenta", - "DiffChange term=bold ctermbg=LightMagenta guibg=LightMagenta"), - CENT("DiffDelete term=bold ctermfg=Blue ctermbg=LightCyan", -@@ -7066,8 +7066,8 @@ static char *(highlight_init_dark[]) = { - CENT("Visual term=reverse", - "Visual term=reverse guibg=DarkGrey"), - #ifdef FEAT_DIFF -- CENT("DiffAdd term=bold ctermbg=DarkBlue", -- "DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue"), -+ CENT("DiffAdd term=bold ctermbg=DarkRed", -+ "DiffAdd term=bold ctermbg=DarkRed guibg=DarkBlue"), - CENT("DiffChange term=bold ctermbg=DarkMagenta", - "DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta"), - CENT("DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan", diff --git a/SOURCES/vim-7.4-syntax.patch b/SOURCES/vim-7.4-syntax.patch deleted file mode 100644 index 5131c803..00000000 --- a/SOURCES/vim-7.4-syntax.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- vim74/runtime/filetype.vim.orig 2013-08-12 14:51:58.669350813 +0200 -+++ vim74/runtime/filetype.vim 2013-08-12 14:56:12.432540523 +0200 -@@ -2475,7 +2475,7 @@ - - " More Apache config files - au BufNewFile,BufRead access.conf*,apache.conf*,apache2.conf*,httpd.conf*,srm.conf* call s:StarSetf('apache') --au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/apache2/conf.*/*,*/etc/apache2/mods-*/*,*/etc/apache2/sites-*/*,*/etc/httpd/conf.d/*.conf* call s:StarSetf('apache') -+au BufNewFile,BufRead */etc/apache2/*.conf*,*/etc/httpd/conf.*/*,*/etc/httpd/mods-*/*,*/etc/httpd/sites-*/*,*/etc/httpd/conf.d/*.conf*,auth_mysql.conf*,auth_pgsql.conf*,ssl.conf*,perl.conf*,php.conf*,python.conf*,squirrelmail.conf* call s:StarSetf('apache') - - " Asterisk config file - au BufNewFile,BufRead *asterisk/*.conf* call s:StarSetf('asterisk') diff --git a/SOURCES/vim-8.0-copy-paste.patch b/SOURCES/vim-8.0-copy-paste.patch deleted file mode 100644 index 5cb1a88c..00000000 --- a/SOURCES/vim-8.0-copy-paste.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -up vim80/runtime/defaults.vim.copy-paste vim80/runtime/defaults.vim ---- vim80/runtime/defaults.vim.copy-paste 2016-12-19 09:01:20.351119199 +0100 -+++ vim80/runtime/defaults.vim 2016-12-19 09:01:53.735738941 +0100 -@@ -64,12 +64,6 @@ map Q gq - " Revert with ":iunmap ". - 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 deleted file mode 100644 index dd272a77..00000000 --- a/SOURCES/vim-covscan.patch +++ /dev/null @@ -1,51 +0,0 @@ -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-cve3778-fix.patch b/SOURCES/vim-cve3778-fix.patch deleted file mode 100644 index a482b388..00000000 --- a/SOURCES/vim-cve3778-fix.patch +++ /dev/null @@ -1,13 +0,0 @@ -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 deleted file mode 100644 index ca41acfd..00000000 --- a/SOURCES/vim-cve3796.patch +++ /dev/null @@ -1,51 +0,0 @@ -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-python3-tests.patch b/SOURCES/vim-python3-tests.patch deleted file mode 100644 index 26027f74..00000000 --- a/SOURCES/vim-python3-tests.patch +++ /dev/null @@ -1,87 +0,0 @@ -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 deleted file mode 100644 index bb9ceb14..00000000 --- a/SOURCES/vim.csh +++ /dev/null @@ -1,6 +0,0 @@ -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 deleted file mode 100644 index 1e4ff789..00000000 --- a/SOURCES/vim.sh +++ /dev/null @@ -1,5 +0,0 @@ -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 deleted file mode 100644 index cf660612..00000000 --- a/SOURCES/vimrc +++ /dev/null @@ -1,64 +0,0 @@ -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/macros.vim b/macros.vim similarity index 100% rename from SOURCES/macros.vim rename to macros.vim diff --git a/sources b/sources new file mode 100644 index 00000000..96613c41 --- /dev/null +++ b/sources @@ -0,0 +1,5 @@ +SHA512 (gvim16.png) = 6c995b62c4bf547b8e23281e7df283631c771fa08f8727715d45ad34105195b68de023b65176c3f8709031fc81bf730c3933e8b034d8df041053a75ce108d10c +SHA512 (gvim32.png) = 0fb0f6e6e852cd56e6af3e6bda973e09a8ccad7bce21135a8996390571f879f4706cf768f118b0520ca12fc01c960915e843c75a51404ff4c5fed2dd3efdf5a2 +SHA512 (gvim48.png) = 32541626b266a735c689b8e9d39a2dd37f077266e2708ed41e3a967f9087d5c041b2180023f3cd2d9faadb77a8d082c0926725a4b94420e90023631cfac2b8a5 +SHA512 (gvim64.png) = 3d51edec03e9ad1f35032da7efec1b1c64715fea2bb0433dd398baf75ba5ccf3325287c2f338723f08c04f473cbcb073933f538446536392353a7ceef52f7012 +SHA512 (vim-9.1-083.tar.bz2) = bf76375164fb930f91dc3bd91ca7d5cb1d051ae59697f8a3a5f2713530b8198c669c1763e76e6c240ba0b20ad935c7ad7deb60d1fdfcb60439c17b0e58d9ebd1 diff --git a/spec-template.new b/spec-template.new new file mode 100644 index 00000000..2a558fb7 --- /dev/null +++ b/spec-template.new @@ -0,0 +1,41 @@ +# SPEC file overview: +# https://docs.fedoraproject.org/en-US/quick-docs/creating-rpm-packages/#con_rpm-spec-file-overview +# Fedora packaging guidelines: +# https://docs.fedoraproject.org/en-US/packaging-guidelines/ + + +Name: +Version: +Release: 0%{?dist} +Summary: + +License: +URL: +Source0: + +BuildRequires: +Requires: + +%description + + +%prep +%setup -q + + +%build +%configure +make %{?_smp_mflags} + + +%install +%make_install + + +%files +%doc +%license + + + +%changelog diff --git a/vi_wrapper b/vi_wrapper new file mode 100644 index 00000000..1bb1aece --- /dev/null +++ b/vi_wrapper @@ -0,0 +1,23 @@ +#!/usr/bin/sh + +# run vim if: +# - 'vi' command is used and 'vim' binary is available +# - 'vim' command is used +# NOTE: Set up a local alias if you want vim -> vi functionality. We will not +# do it globally, because it messes up with available startup options (see +# ':help starting', 'vi' is not capable of '-d'). The introducing an environment +# variable, which an user must set to get the feature, will do the same trick +# as setting an alias (needs user input, does not work with sudo), so it is left +# on user whether he decides to use an alias: +# +# alias vim=vi +# +# in bashrc file. + +if test -f /usr/bin/vim +then + exec /usr/bin/vim "$@" +fi + +# run vi otherwise +exec /usr/libexec/vi "$@" diff --git a/view_wrapper b/view_wrapper new file mode 100644 index 00000000..9e8d7207 --- /dev/null +++ b/view_wrapper @@ -0,0 +1,10 @@ +#!/usr/bin/sh + +# run vim -R if available +if test -f /usr/bin/vim +then + exec /usr/bin/vim -R "$@" +fi + +# run vi otherwise +exec /usr/libexec/vi -R "$@" diff --git a/vim-7.0-fixkeys.patch b/vim-7.0-fixkeys.patch new file mode 100644 index 00000000..1b71d33e --- /dev/null +++ b/vim-7.0-fixkeys.patch @@ -0,0 +1,26 @@ +diff -up vim90/src/term.c.fixkeys vim90/src/term.c +--- vim90/src/term.c.fixkeys 2022-10-20 14:45:53.896659582 +0200 ++++ vim90/src/term.c 2022-10-20 14:48:28.958697659 +0200 +@@ -851,14 +851,14 @@ static struct builtin_term builtin_termc + {K_XRIGHT, "\033[@;*C"}, // Esc [ C or Esc [ 1 ; C + {K_XLEFT, "\033[@;*D"}, // Esc [ D or Esc [ 1 ; D + // An extra set of function keys for vt100 mode +- {K_XF1, "\033O*P"}, +- {K_XF2, "\033O*Q"}, +- {K_XF3, "\033O*R"}, +- {K_XF4, "\033O*S"}, +- {K_F1, "\033[11;*~"}, +- {K_F2, "\033[12;*~"}, +- {K_F3, "\033[13;*~"}, +- {K_F4, "\033[14;*~"}, ++ {K_XF1, "\033[11~"}, ++ {K_XF2, "\033[12~"}, ++ {K_XF3, "\033[13~"}, ++ {K_XF4, "\033[14~"}, ++ {K_F1, "\033OP"}, ++ {K_F2, "\033OQ"}, ++ {K_F3, "\033OR"}, ++ {K_F4, "\033OS"}, + {K_F5, "\033[15;*~"}, + {K_F6, "\033[17;*~"}, + {K_F7, "\033[18;*~"}, diff --git a/SOURCES/vim-7.3-manpage-typo-668894-675480.patch b/vim-7.3-manpage-typo-668894-675480.patch similarity index 100% rename from SOURCES/vim-7.3-manpage-typo-668894-675480.patch rename to vim-7.3-manpage-typo-668894-675480.patch diff --git a/vim-7.4-globalsyntax.patch b/vim-7.4-globalsyntax.patch new file mode 100644 index 00000000..4503f2d0 --- /dev/null +++ b/vim-7.4-globalsyntax.patch @@ -0,0 +1,13 @@ +diff --git a/runtime/syntax/spec.vim b/runtime/syntax/spec.vim +index 1a5a108..b709d20 100644 +--- a/runtime/syntax/spec.vim ++++ b/runtime/syntax/spec.vim +@@ -111,7 +111,7 @@ syn region specDescriptionArea matchgroup=specSection start='^%description' end= + syn region specPackageArea matchgroup=specSection start='^%package' end='^%'me=e-1 contains=specPackageOpts,specPreAmble,specComment + + "%% Scripts Section %% +-syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|clean\|check\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|autosetup\|autopatch\|find_lang\|make_build\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2 ++syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|clean\|check\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|global\|patch\d*\|configure\|GNUconfigure\|setup\|autosetup\|autopatch\|find_lang\|make_build\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2 + + "%% Changelog Section %% + syn region specChangelogArea matchgroup=specSection start='^%changelog' end='^%'me=e-1 contains=specEmail,specURL,specWeekday,specMonth,specNumber,specComment,specLicense diff --git a/SOURCES/vim-7.4-specsyntax.patch b/vim-7.4-specsyntax.patch similarity index 99% rename from SOURCES/vim-7.4-specsyntax.patch rename to vim-7.4-specsyntax.patch index 3c028b56..5d794cc7 100644 --- a/SOURCES/vim-7.4-specsyntax.patch +++ b/vim-7.4-specsyntax.patch @@ -12,7 +12,7 @@ diff -up vim74/runtime/syntax/spec.vim.highlite vim74/runtime/syntax/spec.vim 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 + "specCommands 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. +-" Only xterm can grab the mouse events when using the shift key, for other +-" terminals use ":", select text and press Esc. +-if has('mouse') +- if &term =~ 'xterm' +- set mouse=a +- else +- set mouse=nvi +- endif +-endif +- + " Only do this part when Vim was compiled with the +eval feature. + if 1 + +diff --git a/src/testdir/test_balloon.vim b/src/testdir/test_balloon.vim +index ed0c6c1..90c8c40 100644 +--- a/src/testdir/test_balloon.vim ++++ b/src/testdir/test_balloon.vim +@@ -9,6 +9,7 @@ source screendump.vim + CheckScreendump + + let s:common_script =<< trim [CODE] ++ set mouse=a + call setline(1, ["one one one", "two tXo two", "three three three"]) + set balloonevalterm balloonexpr=MyBalloonExpr()..s:trailing balloondelay=100 + let s:trailing = '<' " check that script context is set +diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim +index b91689e..c6b70d1 100644 +--- a/src/testdir/test_popupwin.vim ++++ b/src/testdir/test_popupwin.vim +@@ -553,6 +553,7 @@ func Test_popup_drag() + " create a popup that covers the command line + let lines =<< trim END + call setline(1, range(1, 20)) ++ set mouse=a + split + vsplit + $wincmd w +@@ -621,6 +622,7 @@ func Test_popup_drag_minwidth() + + " create a popup that does not fit + let lines =<< trim END ++ set mouse=a + call range(40) + \ ->map({_,i -> string(i)}) + \ ->popup_create({ +@@ -669,6 +671,7 @@ func Test_popup_drag_termwin() + let lines =<< trim END + set foldmethod=marker + call setline(1, range(100)) ++ set mouse=a + for nr in range(7) + call setline(nr * 12 + 1, "fold {{{") + call setline(nr * 12 + 11, "end }}}") +@@ -722,6 +725,7 @@ func Test_popup_close_with_mouse() + + let lines =<< trim END + call setline(1, range(1, 20)) ++ set mouse=a + " With border, can click on X + let winid = popup_create('foobar', #{ + \ close: 'button', +@@ -1557,6 +1561,7 @@ func Test_popup_beval() + let lines =<< trim END + call setline(1, range(1, 20)) + call setline(5, 'here is some text to hover over') ++ set mouse=a + set balloonevalterm + set balloonexpr=BalloonExpr() + set balloondelay=100 +@@ -2262,6 +2267,7 @@ func Test_popup_scrollbar() + + let lines =<< trim END + call setline(1, range(1, 20)) ++ set mouse=a + hi ScrollThumb ctermbg=blue + hi ScrollBar ctermbg=red + let winid = popup_create(['one', 'two', 'three', 'four', 'five', diff --git a/SOURCES/vim-crypto-warning.patch b/vim-crypto-warning.patch similarity index 65% rename from SOURCES/vim-crypto-warning.patch rename to vim-crypto-warning.patch index 408f755c..195d7025 100644 --- a/SOURCES/vim-crypto-warning.patch +++ b/vim-crypto-warning.patch @@ -1,12 +1,10 @@ -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 @@ +diff -up vim90/src/config.h.in.fips-warning vim90/src/config.h.in +--- vim90/src/config.h.in.fips-warning 2023-05-29 09:30:59.000000000 +0200 ++++ vim90/src/config.h.in 2023-05-29 09:34:47.261645612 +0200 +@@ -498,5 +498,14 @@ + /* Define if _SC_SIGSTKSZ is available via sysconf() */ + #undef HAVE_SYSCONF_SIGSTKSZ - /* Define to inline symbol or empty */ - #undef inline -+ +/* Do we need FIPS warning? */ +#undef HAVE_FIPS_WARNING + @@ -15,12 +13,14 @@ index 7d61220..ca0b1a8 100644 + +/* 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) ++ + /* Define if you want to load libgpm dynamically */ + #undef DYNAMIC_GPM +diff -up vim90/src/configure.ac.fips-warning vim90/src/configure.ac +--- vim90/src/configure.ac.fips-warning 2023-05-29 09:34:47.257645645 +0200 ++++ vim90/src/configure.ac 2023-05-29 09:34:47.262645604 +0200 +@@ -589,6 +589,38 @@ else + AC_SUBST(XDIFF_OBJS_USED) fi +dnl Checking if we want FIPS warning @@ -58,29 +58,28 @@ index 1e7d444..5e45762 100644 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) +diff -up vim90/src/crypt.c.fips-warning vim90/src/crypt.c +--- vim90/src/crypt.c.fips-warning 2023-05-29 09:34:47.263645596 +0200 ++++ vim90/src/crypt.c 2023-05-29 09:51:23.209779115 +0200 +@@ -795,6 +795,21 @@ crypt_check_method(int method) msg_scroll = TRUE; - MSG(_("Warning: Using a weak encryption method; see :help 'cm'")); + 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; ++ 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.")); ++ msg(_("Warning: This cryptography is not FIPS 140-2 compliant.")); + } + + fclose(fips_enable_fd); +#endif } - void + /* diff --git a/vim-default-editor.csh b/vim-default-editor.csh new file mode 100644 index 00000000..d98316d5 --- /dev/null +++ b/vim-default-editor.csh @@ -0,0 +1,5 @@ +# Ensure vim is set as EDITOR if it isn't already set + +if ( ! ($?EDITOR) ) then + setenv EDITOR "/usr/bin/vim" +endif diff --git a/vim-default-editor.fish b/vim-default-editor.fish new file mode 100644 index 00000000..e4288c18 --- /dev/null +++ b/vim-default-editor.fish @@ -0,0 +1,8 @@ +# Ensure vim is set as EDITOR if it isn't already set +# This is set as a universal variable so that any other definition +# by the user would win +# Cf. https://fishshell.com/docs/current/index.html#variables-scope + +if ! set -q EDITOR; + set -x EDITOR /usr/bin/vim +end diff --git a/vim-default-editor.sh b/vim-default-editor.sh new file mode 100644 index 00000000..1a53dafd --- /dev/null +++ b/vim-default-editor.sh @@ -0,0 +1,5 @@ +# Ensure vim is set as EDITOR if it isn't already set + +if [ -z "$EDITOR" ]; then + export EDITOR="/usr/bin/vim" +fi diff --git a/SOURCES/vim-manpagefixes-948566.patch b/vim-manpagefixes-948566.patch similarity index 100% rename from SOURCES/vim-manpagefixes-948566.patch rename to vim-manpagefixes-948566.patch diff --git a/vim-python3-tests.patch b/vim-python3-tests.patch new file mode 100644 index 00000000..98b5f758 --- /dev/null +++ b/vim-python3-tests.patch @@ -0,0 +1,87 @@ +diff -up vim82/runtime/tools/demoserver.py.python-tests vim82/runtime/tools/demoserver.py +--- vim82/runtime/tools/demoserver.py.python-tests 2019-07-26 07:58:50.000000000 +0200 ++++ vim82/runtime/tools/demoserver.py 2020-04-17 06:18:06.748977527 +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 vim82/src/auto/configure.python-tests vim82/src/auto/configure +--- vim82/src/auto/configure.python-tests 2020-04-17 06:07:48.000000000 +0200 ++++ vim82/src/auto/configure 2020-04-17 06:18:06.750977509 +0200 +@@ -6418,7 +6418,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 vim82/src/configure.ac.python-tests vim82/src/configure.ac +--- vim82/src/configure.ac.python-tests 2020-04-17 06:07:48.000000000 +0200 ++++ vim82/src/configure.ac 2020-04-17 06:18:06.750977509 +0200 +@@ -1263,7 +1263,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 vim82/src/testdir/test_channel_pipe.py.python-tests vim82/src/testdir/test_channel_pipe.py +--- vim82/src/testdir/test_channel_pipe.py.python-tests 2019-07-26 07:58:53.000000000 +0200 ++++ vim82/src/testdir/test_channel_pipe.py 2020-04-17 06:18:06.751977500 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # + # Server that will communicate over stdin/stderr + # +diff -up vim82/src/testdir/test_channel.py.python-tests vim82/src/testdir/test_channel.py +--- vim82/src/testdir/test_channel.py.python-tests 2020-04-17 06:18:06.751977500 +0200 ++++ vim82/src/testdir/test_channel.py 2020-04-17 06:18:24.517813082 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/python3 + # + # Server that will accept connections from a Vim channel. + # Used by test_channel.vim. +diff -up vim82/src/testdir/test_channel_write.py.python-tests vim82/src/testdir/test_channel_write.py +--- vim82/src/testdir/test_channel_write.py.python-tests 2019-07-26 07:58:53.000000000 +0200 ++++ vim82/src/testdir/test_channel_write.py 2020-04-17 06:18:06.751977500 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # + # Program that writes a number to stdout repeatedly + # +diff -up vim82/src/testdir/test_makeencoding.py.python-tests vim82/src/testdir/test_makeencoding.py +--- vim82/src/testdir/test_makeencoding.py.python-tests 2019-07-26 07:58:53.000000000 +0200 ++++ vim82/src/testdir/test_makeencoding.py 2020-04-17 06:18:06.751977500 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # -*- coding: utf-8 -*- + + # Test program for :make, :grep and :cgetfile. +diff -up vim82/src/testdir/test_netbeans.py.python-tests vim82/src/testdir/test_netbeans.py +--- vim82/src/testdir/test_netbeans.py.python-tests 2019-07-26 07:58:53.000000000 +0200 ++++ vim82/src/testdir/test_netbeans.py 2020-04-17 06:18:06.751977500 +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 vim82/src/testdir/test_short_sleep.py.python-tests vim82/src/testdir/test_short_sleep.py +--- vim82/src/testdir/test_short_sleep.py.python-tests 2019-07-26 07:58:53.000000000 +0200 ++++ vim82/src/testdir/test_short_sleep.py 2020-04-17 06:18:06.751977500 +0200 +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # + # Program that sleeps for 100 msec + # diff --git a/SPECS/vim.spec b/vim.spec similarity index 54% rename from SPECS/vim.spec rename to vim.spec index 712d5ac6..177a4bc0 100644 --- a/SPECS/vim.spec +++ b/vim.spec @@ -1,8 +1,27 @@ -%define patchlevel 1763 +%bcond_without gui + +%if 0%{?fedora} +%bcond_without default_editor +%bcond_without gpm +%bcond_without libsodium_crypt +%else +%bcond_with default_editor +%bcond_with gpm +%bcond_with libsodium_crypt +%endif + +%define patchlevel 083 + %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif + +%if %{with gui} %define desktop_file 1 +%else +%define desktop_file 0 +%endif + %if %{desktop_file} %define desktop_file_utils_version 0.2.93 %endif @@ -11,133 +30,148 @@ %define withvimspell 0 %define withhunspell 0 -%define withruby 1 %define withlua 1 +%define withperl 1 +%if 0%{?flatpak} +%define withruby 0 +%else +%define withruby 1 +%endif -%define python3 python3.6m -%define python3path %{_includedir}/%{python3} +# VIm upstream wants to build with FORTIFY_SOURCE=1, +# because higher levels causes crashes of valid code constructs +# and their reimplementation would cost unnecessary maintenance +# https://github.com/vim/vim/pull/3507 +%define _fortify_level 1 -%define baseversion 8.0 -%define vimdir vim80 +%define baseversion 9.1 +%define vimdir vim91 Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{patchlevel} -Release: 19%{?dist}.4 -License: Vim and MIT +Release: 5%{?dist} +Epoch: 2 +# swift.vim contains Apache 2.0 with runtime library exception: +# which is taken as Apache-2.0 WITH Swift-exception - reported to legal as https://gitlab.com/fedora/legal/fedora-license-data/-/issues/188 +# resolution: the license is good for Fedora, but the file does not have a creativity from +# +# Open Publication License 1.0 or later for Vim documentation - reported to legal for adding to the allowed licenses list +# response here: https://lists.fedoraproject.org/archives/list/legal@lists.fedoraproject.org/message/4UTW5GFDELGMG6K3NQ7NBU42LC2FJOB5/ +# resolution: take it as OPUBL-1.0, the license won't be added to allowed license list, but if a project uses it for documentation +# and don't use license options mentioned in the OPUBL 1.0 license text (which both are the case for Vim), the license is allowed +License: Vim AND LGPL-2.1-or-later AND MIT AND GPL-1.0-only AND (GPL-2.0-only OR Vim) AND Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND GPL-2.0-or-later AND GPL-3.0-or-later AND OPUBL-1.0 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 +Source1: virc +Source2: vimrc +Source3: gvim16.png +Source4: gvim32.png +Source5: gvim48.png +Source6: gvim64.png +Source7: spec-template.new +Source8: macros.vim +Source9: vim-default-editor.sh +Source10: vim-default-editor.csh +Source11: vim-default-editor.fish +Source12: view_wrapper +Source13: vi_wrapper + +%if %{withvimspell} +Source100: vim-spell-files.tar.bz2 +%endif + + +Patch2000: vim-7.0-fixkeys.patch +Patch2001: vim-7.4-specsyntax.patch -Patch2002: vim-7.0-fixkeys.patch -Patch2003: vim-7.4-specsyntax.patch %if %{withhunspell} -Patch2011: vim-7.0-hunspell.patch +Patch2002: 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 +Patch3000: vim-7.3-manpage-typo-668894-675480.patch +Patch3001: vim-manpagefixes-948566.patch +Patch3002: vim-7.4-globalsyntax.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 +Patch3003: vim-python3-tests.patch +# fips warning (Fedora downstream patch) +Patch3004: vim-crypto-warning.patch +# don't ever set mouse (Fedora downstream patch) +Patch3005: vim-8.0-copy-paste.patch +# RHEL-44652 vim-9.1.083-1.el10: RHEL SAST Automation: address 4 High impact true positive(s) +# 2 patches: 0001-src-spell.c-Protect-wres-from-possible-buffer-overfl.patch +# 0003-src-vim9class.c-Fix-typo.patch +# upstreamed as: https://github.com/vim/vim/commit/215c82d06 +# https://github.com/vim/vim/commit/39a94d204 +Patch3006: 0001-patch-9.1.0903-potential-overflow-in-spell_soundfold.patch +Patch3007: 0001-patch-9.1.0904-Vim9-copy-paste-error-in-class_defini.patch + + +# uses autoconf in spec file +BuildRequires: autoconf + +%if %{desktop_file} +# for /usr/bin/desktop-file-install +BuildRequires: desktop-file-utils >= %{desktop_file_utils_version} +Requires: desktop-file-utils +%endif # gcc is no longer in buildroot by default BuildRequires: gcc +# for translations +BuildRequires: gettext -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 +# glibc in F35 bootstraped several conversion formats from +# iconv into a separate package. Vim needs those additional +# formats during compilation. +BuildRequires: glibc-gconv-extra + +%if %{with gpm} +# for mouse support in console +BuildRequires: gpm-devel +%endif +# for setting ACL on created files +BuildRequires: libacl-devel + +# selinux support %if %{WITH_SELINUX} BuildRequires: libselinux-devel %endif -%if "%{withruby}" == "1" -BuildRequires: ruby-devel ruby + +# for xchacha20 encryption +%if %{with libsodium_crypt} +BuildRequires: libsodium-devel %endif + +# uses libtool for linking +BuildRequires: libtool + +# for lua plugin %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} + +# uses make +BuildRequires: make +# screen handling library +BuildRequires: ncurses-devel +# for perl plugin +%if "%{withperl}" == "1" +BuildRequires: perl-devel +BuildRequires: perl-generators +BuildRequires: perl(ExtUtils::Embed) +BuildRequires: perl(ExtUtils::ParseXS) %endif -Epoch: 2 -Conflicts: filesystem < 3 +# for python plugin +BuildRequires: python3-devel + +# for ruby plugin +%if "%{withruby}" == "1" +BuildRequires: ruby +BuildRequires: ruby-devel +%endif + %description VIM (VIsual editor iMproved) is an updated and improved version of the @@ -147,13 +181,24 @@ 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 +# conflicts in package because of manpage move (bug #1599663) +# conflicts because of defaults.vim (bug #2026651) +# remove after F36 EOL+after release CentOS Stream > 9 +Conflicts: %{name}-minimal < %{epoch}:8.2.3642-2 +# shared files between common and minimal +Requires: %{name}-data = %{epoch}:%{version}-%{release} Requires: %{name}-filesystem -# it conflicts with older version of vim-minimal during update because of manpage -# move -Conflicts: %{name}-minimal < 8.0.1428-4 +# the hexdump binary was part of the package for long time, ship it with it +# still for convenience +Requires: xxd +# vim-toml was a separate package but the runtime files have been included +# directly in vim since 8.2.3519. The vim-toml package has been retired in +# Fedora, obsolete it so it doesn't get left on users' systems. Added in F38, +# can be removed in F40. +# https://github.com/cespare/vim-toml/commit/2c8983cc391287e5e26e015c3ab9c38de9f9b759 +# https://github.com/vim/vim/commit/2286304cdbba53ceb52b3ba2ba4a521b0a2f8d0f +Provides: vim-toml = %{epoch}:%{version}-%{release} +Obsoletes: vim-toml < 0^1.717bd87-4 %description common VIM (VIsual editor iMproved) is an updated and improved version of the @@ -176,40 +221,54 @@ many different languages. %package minimal Summary: A minimal version of the VIM editor -Provides: vi = %{version}-%{release} +# conflicts in package because of manpage move (bug #1599663) +# conflicts because of defaults.vim (bug #2026651) +# remove after F36 EOL+after release CentOS Stream > 9 +Conflicts: %{name}-common < %{epoch}:8.2.3642-2 +Provides: vi Provides: %{_bindir}/vi -# it conflicts with older version of vim-common during update because of manpage -# move -Conflicts: %{name}-common < 8.0.1428-4 +# shared files between common and minimal +Requires: %{name}-data = %{epoch}:%{version}-%{release} %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. +vim-minimal package includes a minimal version of VIM, providing +the commands vi, view, ex, rvi, and rview. 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} +# vim bundles libvterm, which is used during build - so we need to provide +# bundled libvterm for catching possible libvterm CVEs +Provides: bundled(libvterm) +Provides: vim +Provides: vim(plugins-supported) Provides: %{_bindir}/mergetool Provides: %{_bindir}/vim +Requires: vim-common = %{epoch}:%{version}-%{release} +# required for vimtutor (#395371) +Requires: which # 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 +%if "%{withperl}" == "1" +Suggests: perl-devel +%endif + +Suggests: python3 +Suggests: python3-libs + +%if "%{withruby}" == "1" +Suggests: ruby +Suggests: ruby-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 @@ -231,33 +290,65 @@ BuildArch: noarch This package provides some directories which are required by other packages that add vim files, p.e. additional syntax files or filetypes. +%if %{with gui} %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) +# devel of libICE, gtk3, libSM, libX11, libXpm and libXt are needed in buildroot +# so configure script can have correct macros enabled for GUI (#1603272) +# generic gnome toolkit for graphical support BuildRequires: gtk3-devel -BuildRequires: libX11-devel -BuildRequires: libSM-devel -BuildRequires: libXt-devel -BuildRequires: libXpm-devel +# inter-client exchange library - for X session management protocol BuildRequires: libICE-devel +# X session management library +BuildRequires: libSM-devel +# core X11 protocol client library +BuildRequires: libX11-devel +# X PixMap library for X11 - for creating images in X PixMap format +BuildRequires: libXpm-devel +# X Toolkit Intrinsics library - working with widgets? +BuildRequires: libXt-devel +# for testing validity of appdata file +BuildRequires: libappstream-glib +# for sound support +BuildRequires: libcanberra-devel -Requires: vim-common = %{epoch}:%{version}-%{release} libattr >= 2.4 gtk3 -Provides: gvim = %{version}-%{release} +Provides: gvim +Provides: vim(plugins-supported) Provides: %{_bindir}/mergetool Provides: %{_bindir}/gvim -Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) + +%if 0%{?fedora} >= 40 || 0%{?rhel} > 9 +# glib2 in Fedora 40 introduced a new function, which is not used in GVim, but it is present +# in compiled gvim binary as symbol when Vim is compiled with glib2-2.79.1 +# there does not seem to be a better solution than version based requires on glib2... +# https://bugzilla.redhat.com/show_bug.cgi?id=2262371 +Requires: glib2 >= 2.79.1 +%endif +# GVIM graphics are based on GTK3 +Requires: gtk3 +# needed for icons (#226526) Requires: hicolor-icon-theme +# for getting/setting extended attributes - they are pairs (name:value) +# from inodes (files, dirs etc.) +Requires: libattr >= 2.4 +Requires: vim-common = %{epoch}:%{version}-%{release} # 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" + %if "%{withlua}" == "1" Suggests: lua-libs -%endif + %endif + + %if "%{withperl}" == "1" +Suggests: perl-devel + %endif + +Suggests: python3 +Suggests: python3-libs + + %if "%{withruby}" == "1" +Suggests: ruby +Suggests: ruby-libs + %endif %description X11 VIM (VIsual editor iMproved) is an updated and improved version of the @@ -271,84 +362,100 @@ 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. +%endif + +%package data +Summary: Shared data for Vi and Vim +BuildArch: noarch +# moved files from filesystem, common and minimal to data +# remove after F36 EOL+after release of CentOS Stream > 9 +Conflicts: %{name}-common < 2:8.2.3642-2 +Conflicts: %{name}-filesystem < 2:8.2.3642-2 +Conflicts: %{name}-minimal < 2:8.2.3642-2 + +%description data +The subpackage is used for shipping files and directories, which need to be +shared between vim-minimal and vim-common packages. + +%if %{with default_editor} +%package default-editor +Summary: Set vim as the default editor +BuildArch: noarch +Conflicts: system-default-editor +Provides: system-default-editor +Requires: vim-enhanced + +%description default-editor +This subpackage contains files needed to set Vim as the default editor. +%endif + +%package -n xxd +Summary: A hex dump utility +# the xxd related file were shipped in vim-common in the past, +# we have to conflict with the old ones +# remove this Conflicts once C10S is released +Conflicts: %{name}-common < 2:9.0.1440-2 + +%description -n xxd +xxd creates a hex dump of a given file or standard input. It can also convert +a hex dump back to its original binary form. + %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} +# use %%{__python3} macro for defining shebangs in python3 tests +sed -i -e 's,/usr/bin/python3,%{__python3},' %{PATCH3005} # fix rogue dependencies from sample code chmod -x runtime/tools/mve.awk -%patch2002 -p1 -%patch2003 -p1 +%patch -P 2000 -p1 -b .fixkeys +%patch -P 2001 -p1 + %if %{withhunspell} -%patch2011 -p1 +%patch -P 2002 -p1 %endif + perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk # install spell files %if %{withvimspell} -%{__tar} xjf %{SOURCE13} +%{__tar} xjf %{SOURCE100} %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 +%patch -P 3000 -p1 +%patch -P 3001 -p1 +%patch -P 3002 -p1 +%patch -P 3003 -p1 -b .python-tests +%patch -P 3004 -p1 -b .fips-warning +%patch -P 3005 -p1 -b .copypaste +%patch -P 3006 -p1 -b .buffer-overflow +%patch -P 3007 -p1 -b .typo %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}" +export CFLAGS="%{optflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2" +export CXXFLAGS="%{optflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2" cp -f os_unix.h os_unix.h.save -cp -f ex_cmds.c ex_cmds.c.save + +# Configure options: +# --enable-fail-if-missing - we need to fail if configure options aren't satisfied +# --with-features - for setting how big amount of features is enabled +# --enable-multibyte - enabling multibyte editing support - for editing files in languages, which one character +# cannot be represented by one byte - Asian languages, Unicode +# --disable-netbeans - disabling socket interface for integrating Vim into NetBeans IDE +# --enable-selinux - enabling selinux support +# --enable-Ninterp - enabling internal interpreter +# --with-x - yes if we want X11 support (graphical Vim for X11) +# --with-tlib - which terminal library to use +# --disable-gpm - disabling support for General Purpose Mouse - Linux mouse daemon perl -pi -e "s/vimrc/virc/" os_unix.h -%configure --prefix=%{_prefix} --with-features=small --with-x=no \ +%configure CFLAGS="${CFLAGS} -DSYS_VIMRC_FILE='\"/etc/virc\"'" \ + --prefix=%{_prefix} --with-features=tiny --with-x=no \ --enable-multibyte \ --disable-netbeans \ %if %{WITH_SELINUX} @@ -358,21 +465,28 @@ perl -pi -e "s/vimrc/virc/" os_unix.h %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="" + --with-modified-by="" \ + --enable-fips-warning \ + --enable-fail-if-missing \ + --disable-canberra \ + --disable-libsodium -make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir} %{?_smp_mflags} +%make_build 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 \ +%if %{with gui} +# More configure options: +# --enable-xim - enabling X Input Method - international input module for X, +# it is for multibyte languages in Vim with X +# --enable-termtruecolor - use terminal with true colors + +%configure CFLAGS="${CFLAGS} -DSYS_VIMRC_FILE='\"/etc/vimrc\"'" \ + --with-features=huge \ --enable-python3interp=dynamic \ - --enable-perlinterp=dynamic \ --disable-tclinterp --with-x=yes \ --enable-xim --enable-multibyte \ --with-tlib=ncurses \ @@ -380,43 +494,65 @@ mv -f ex_cmds.c.save ex_cmds.c --enable-fips-warning \ --with-compiledby="" --enable-cscope \ --with-modified-by="" \ -%if "%{withnetbeans}" == "1" +%if %{with gpm} + --enable-gpm \ +%else + --disable-gpm \ +%endif + %if "%{withnetbeans}" == "1" --enable-netbeans \ -%else + %else --disable-netbeans \ -%endif -%if %{WITH_SELINUX} + %endif + %if %{WITH_SELINUX} --enable-selinux \ -%else + %else --disable-selinux \ -%endif -%if "%{withruby}" == "1" + %endif + %if "%{withperl}" == "1" + --enable-perlinterp=dynamic \ + --with-xsubpp=$(which xsubpp) \ + %else + --disable-perlinterp \ + %endif + %if "%{withruby}" == "1" --enable-rubyinterp=dynamic \ -%else + %else --disable-rubyinterp \ -%endif -%if "%{withlua}" == "1" + %endif + %if "%{withlua}" == "1" --enable-luainterp=dynamic \ -%else + %else --disable-luainterp \ -%endif - --enable-termtruecolor + %endif + %if %{with libsodium_crypt} + --enable-libsodium \ + %else + --disable-libsodium \ + %endif + --enable-fail-if-missing \ + --enable-canberra -make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir} %{?_smp_mflags} +%make_build cp vim gvim make clean +%endif -%configure --prefix=%{_prefix} --with-features=huge \ - --enable-pythoninterp=dynamic \ +%configure CFLAGS="${CFLAGS} -DSYS_VIMRC_FILE='\"/etc/vimrc\"'" \ + --prefix=%{_prefix} --with-features=huge \ --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 \ + --enable-fips-warning \ --with-compiledby="" \ +%if %{with gpm} + --enable-gpm \ +%else + --disable-gpm \ +%endif %if "%{withnetbeans}" == "1" --enable-netbeans \ %else @@ -427,6 +563,12 @@ make clean %else --disable-selinux \ %endif +%if "%{withperl}" == "1" + --enable-perlinterp=dynamic \ + --with-xsubpp=$(which xsubpp) \ +%else + --disable-perlinterp \ +%endif %if "%{withruby}" == "1" --enable-rubyinterp=dynamic \ %else @@ -437,45 +579,53 @@ make clean %else --disable-luainterp \ %endif - --enable-termtruecolor +%if %{with libsodium_crypt} + --enable-libsodium \ +%else + --disable-libsodium \ +%endif + --enable-fail-if-missing \ + --disable-canberra -make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/%{vimdir} %{?_smp_mflags} +%make_build 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 -f %{SOURCE7} %{buildroot}/%{_datadir}/%{name}/vimfiles/template.spec 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} +# Adding STRIP=/bin/true, because Vim wants to strip the binaries by himself +# and put the stripped files into correct dirs. Build system (koji/brew) +# does it for us, so there is no need to do it in Vim +%make_install BINDIR=%{_bindir} STRIP=/bin/true +# make install creates vim binary and view symlink, they will be wrappers +# so remove them here +rm -f %{buildroot}%{_bindir}/{vim,view} mkdir -p %{buildroot}%{_datadir}/icons/hicolor/{16x16,32x32,48x48,64x64}/apps -install -m755 minimal-vim %{buildroot}%{_bindir}/vi +mkdir -p %{buildroot}%{_libexecdir} +install -m755 minimal-vim %{buildroot}%{_libexecdir}/vi install -m755 enhanced-vim %{buildroot}%{_bindir}/vim +install -m755 %{SOURCE12} %{buildroot}%{_bindir}/view +install -m755 %{SOURCE13} %{buildroot}%{_bindir}/vi + +%if %{with gui} +make installgtutorbin DESTDIR=%{buildroot} BINDIR=%{_bindir} install -m755 gvim %{buildroot}%{_bindir}/gvim -install -p -m644 %{SOURCE7} \ +install -p -m644 %{SOURCE3} \ %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/gvim.png -install -p -m644 %{SOURCE8} \ +install -p -m644 %{SOURCE4} \ %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/gvim.png -install -p -m644 %{SOURCE9} \ +install -p -m644 %{SOURCE5} \ %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/gvim.png -install -p -m644 %{SOURCE10} \ +install -p -m644 %{SOURCE6} \ %{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 # @@ -492,10 +642,12 @@ cat > $RPM_BUILD_ROOT%{_datadir}/metainfo/gvim.appdata.xml < SentUpstream: 2014-05-22 --> - - gvim.desktop + + org.vim.Vim + GVim CC0-1.0 Vim + The VIM version of the vi editor for the X Window System

Vim is an advanced text editor that seeks to provide the power of the @@ -510,53 +662,78 @@ SentUpstream: 2014-05-22 Vim is perfect for all kinds of text editing, from composing email to editing configuration files.

+

+ We ship the current Vim stable release - %{baseversion} - with the upstream + patchlevel %{patchlevel} applied, which is combined into version %{version} + used during packaging. +

+ + + https://raw.githubusercontent.com/zdohnal/vim/zdohnal-screenshot/gvim16_9.png http://www.vim.org/ -
+ + EOF +appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/metainfo/*.appdata.xml + +for i in 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 +%else +# Remove files included in X11 subpackage, but built by default: +rm %{buildroot}/%{_mandir}/man1/evim.* +rm %{buildroot}/%{_datadir}/applications/{vim,gvim}.desktop +rm %{buildroot}/%{_datadir}/icons/{hicolor,locolor}/*/apps/gvim.png +%endif + ( 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 + ln -sf %{_libexecdir}/vi .%{_bindir}/rvi + ln -sf %{_libexecdir}/vi .%{_bindir}/rview + ln -sf %{_libexecdir}/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 vi.1.gz .%{_mandir}/man1/ex.1 + ln -sf vi.1.gz .%{_mandir}/man1/view.1 + ln -sf vi.1.gz .%{_mandir}/man1/rview.1 ln -sf vim.1.gz .%{_mandir}/man1/vimdiff.1.gz + +%if %{with gui} 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 + %{buildroot}/%{_datadir}/applications/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 + cp %{buildroot}/%{_datadir}/applications/gvim.desktop ./%{_sysconfdir}/X11/applnk/Applications/gvim.desktop %endif + +%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 @@ -587,12 +764,9 @@ chmod 644 %{buildroot}/%{_datadir}/%{name}/%{vimdir}/doc/vim2html.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 +mkdir -p %{buildroot}%{_sysconfdir} +install -p -m644 %{SOURCE1} %{buildroot}%{_sysconfdir}/virc +install -p -m644 %{SOURCE2} %{buildroot}%{_sysconfdir}/vimrc # if Vim isn't built for Fedora, use redhat augroup %if 0%{?rhel} >= 7 @@ -600,8 +774,17 @@ sed -i -e "s/augroup fedora/augroup redhat/" %{buildroot}/%{_sysconfdir}/vimrc sed -i -e "s/augroup fedora/augroup redhat/" %{buildroot}/%{_sysconfdir}/virc %endif +%if %{with default_editor} +mkdir -p %{buildroot}/%{_sysconfdir}/profile.d +install -p -m644 %{SOURCE9} %{buildroot}/%{_sysconfdir}/profile.d/vim-default-editor.sh +install -p -m644 %{SOURCE10} %{buildroot}/%{_sysconfdir}/profile.d/vim-default-editor.csh +mkdir -p %{buildroot}/%{_datadir}/fish/vendor_conf.d/ +install -p -m644 %{SOURCE11} %{buildroot}/%{_datadir}/fish/vendor_conf.d/vim-default-editor.fish +mkdir -p %{buildroot}/%{_datadir}/fish/vendor_functions.d/ +%endif + mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d/ -install -p -m644 %{SOURCE16} %{buildroot}%{_rpmconfigdir}/macros.d/ +install -p -m644 %{SOURCE8} %{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 @@ -610,7 +793,7 @@ 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 +for i in pl.ISO8859-2 it.ISO8859-1 ru.KOI8-R fr.ISO8859-1 da.ISO8859-1 de.ISO8859-1 tr.ISO8859-9; do rm -rf %{buildroot}/%{_mandir}/$i done @@ -618,20 +801,19 @@ done 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 +for i in fr.UTF-8 it.UTF-8 pl.UTF-8 da.UTF-8 de.UTF-8 tr.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 +# Install symlink for rvim man page +echo ".so man1/vim.1" > %{buildroot}/%{_mandir}/man1/rvim.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 || : @@ -643,21 +825,18 @@ touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags %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 +%exclude %{_datadir}/%{name}/%{vimdir}/defaults.vim %{_datadir}/%{name}/%{vimdir}/ftplugin +%{_datadir}/%{name}/%{vimdir}/import/dist/vimhelp.vim +%{_datadir}/%{name}/%{vimdir}/import/dist/vimhighlight.vim %{_datadir}/%{name}/%{vimdir}/indent %{_datadir}/%{name}/%{vimdir}/keymap %{_datadir}/%{name}/%{vimdir}/lang/*.vim @@ -668,13 +847,16 @@ touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags %{_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(da) %{_datadir}/%{name}/%{vimdir}/lang/da %lang(de) %{_datadir}/%{name}/%{vimdir}/lang/de %lang(en_GB) %{_datadir}/%{name}/%{vimdir}/lang/en_GB %lang(eo) %{_datadir}/%{name}/%{vimdir}/lang/eo @@ -682,6 +864,7 @@ touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags %lang(fi) %{_datadir}/%{name}/%{vimdir}/lang/fi %lang(fr) %{_datadir}/%{name}/%{vimdir}/lang/fr %lang(ga) %{_datadir}/%{name}/%{vimdir}/lang/ga +%lang(hu) %{_datadir}/%{name}/%{vimdir}/lang/hu %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 @@ -702,6 +885,7 @@ touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags %lang(sk.cp1250) %{_datadir}/%{name}/%{vimdir}/lang/sk.cp1250 %lang(sr) %{_datadir}/%{name}/%{vimdir}/lang/sr %lang(sv) %{_datadir}/%{name}/%{vimdir}/lang/sv +%lang(tr) %{_datadir}/%{name}/%{vimdir}/lang/tr %lang(uk) %{_datadir}/%{name}/%{vimdir}/lang/uk %lang(uk.cp1251) %{_datadir}/%{name}/%{vimdir}/lang/uk.cp1251 %lang(vi) %{_datadir}/%{name}/%{vimdir}/lang/vi @@ -710,22 +894,27 @@ touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags %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.* + +%if %{with gui} +%{_mandir}/man1/gex.* +%{_mandir}/man1/gview.* +%{_mandir}/man1/gvim* +%{_mandir}/man1/vimx.* +%endif + %lang(fr) %{_mandir}/fr/man1/* +%lang(da) %{_mandir}/da/man1/* +%lang(de) %{_mandir}/de/man1/* %lang(it) %{_mandir}/it/man1/* %lang(ja) %{_mandir}/ja/man1/* %lang(pl) %{_mandir}/pl/man1/* %lang(ru) %{_mandir}/ru/man1/* +%lang(tr) %{_mandir}/tr/man1/* %if %{withvimspell} %files spell @@ -787,10 +976,11 @@ touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags %files minimal %config(noreplace) %{_sysconfdir}/virc %{_bindir}/ex -%{_bindir}/vi -%{_bindir}/view %{_bindir}/rvi %{_bindir}/rview +%{_bindir}/vi +%{_bindir}/view +%{_libexecdir}/vi %{_mandir}/man1/vi.* %{_mandir}/man1/ex.* %{_mandir}/man1/rvi.* @@ -799,15 +989,13 @@ touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags %{_mandir}/man5/virc.* %files enhanced -%{_bindir}/vim %{_bindir}/rvim +%{_bindir}/vim %{_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 @@ -817,6 +1005,8 @@ touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags %ghost %{_datadir}/%{name}/vimfiles/doc/tags %dir %{_datadir}/%{name}/vimfiles/ftdetect %dir %{_datadir}/%{name}/vimfiles/ftplugin +%dir %{_datadir}/%{name}/%{vimdir}/import +%dir %{_datadir}/%{name}/%{vimdir}/import/dist %dir %{_datadir}/%{name}/vimfiles/indent %dir %{_datadir}/%{name}/vimfiles/keymap %dir %{_datadir}/%{name}/vimfiles/lang @@ -826,14 +1016,15 @@ touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags %dir %{_datadir}/%{name}/vimfiles/syntax %dir %{_datadir}/%{name}/vimfiles/tutor +%if %{with gui} %files X11 -%if "%{desktop_file}" == "1" + %if "%{desktop_file}" == "1" %{_datadir}/metainfo/*.appdata.xml /%{_datadir}/applications/* %exclude /%{_datadir}/applications/vim.desktop -%else + %else /%{_sysconfdir}/X11/applnk/*/gvim.desktop -%endif + %endif %{_bindir}/gvimtutor %{_bindir}/gvim %{_bindir}/gvimdiff @@ -843,98 +1034,1286 @@ touch %{buildroot}/%{_datadir}/%{name}/vimfiles/doc/tags %{_bindir}/vimx %{_bindir}/evim %{_mandir}/man1/evim.* +%dir %{_datadir}/icons/hicolor +%dir %{_datadir}/icons/hicolor/* +%dir %{_datadir}/icons/hicolor/*/apps %{_datadir}/icons/hicolor/*/apps/* +%dir %{_datadir}/icons/locolor +%dir %{_datadir}/icons/locolor/* +%dir %{_datadir}/icons/locolor/*/apps %{_datadir}/icons/locolor/*/apps/* +%endif + +%files data +%license LICENSE +%dir %{_datadir}/%{name} +%dir %{_datadir}/%{name}/%{vimdir} +%{_datadir}/%{name}/%{vimdir}/defaults.vim +%dir %{_datadir}/%{name}/vimfiles +%{_datadir}/%{name}/vimfiles/template.spec + +%if %{with default_editor} +%files default-editor +%dir %{_datadir}/fish/vendor_conf.d +%{_datadir}/fish/vendor_conf.d/vim-default-editor.fish +%config(noreplace) %{_sysconfdir}/profile.d/vim-default-editor.* +%endif + +%files -n xxd +%license LICENSE +%{_bindir}/xxd +%{_mandir}/man1/xxd.* + %changelog -* Tue Jun 14 2022 Zdenek Dohnal - 2:8.0.1763-19.4 -- fix issue reported by covscan +* Mon Jan 27 2025 Zdenek Dohnal - 2:9.1.083-5 +- rebuilt with new GCC to fix RHEL-74127 -* 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 +* Thu Dec 05 2024 Zdenek Dohnal - 2:9.1.083-4 +- RHEL-44652 vim-9.1.083-1.el10: RHEL SAST Automation: address 4 High impact true positive(s) -* 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 +* Tue Oct 29 2024 Troy Dawson - 2:9.1.083-3 +- Bump release for October 2024 mass rebuild: + Resolves: RHEL-64018 -* Sat Apr 09 2022 Zdenek Dohnal - 2:8.0.1763-19.1 -- CVE-2022-1154 vim: use after free in utf_ptr2char +* Mon Jun 24 2024 Troy Dawson - 2:9.1.083-2 +- Bump release for June 2024 mass rebuild -* Tue Feb 08 2022 Zdenek Dohnal - 2:8.0.1763-19 -- CVE-2022-0361 vim: Heap-based Buffer Overflow in GitHub repository +* Fri Feb 09 2024 Zdenek Dohnal - 2:9.1.083-1 +- patchlevel 083 -* 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 +* Mon Feb 05 2024 Zdenek Dohnal - 2:9.1.076-2 +- enable building without GPM support - build with GPM in Fedora +- 2262371 - gvim: symbol lookup error: gvim: undefined symbol: g_once_init_enter_pointer -* 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 +* Mon Feb 05 2024 Zdenek Dohnal - 2:9.1.076-1 +- patchlevel 076 -* 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 +* Sat Jan 27 2024 Fedora Release Engineering - 2:9.1.031-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* 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 +* Tue Jan 16 2024 Zdenek Dohnal - 2:9.1.031-1 +- patchlevel 031 -* 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] +* Mon Jan 08 2024 Zdenek Dohnal - 2:9.1.016-1 +- patchlevel 016 -* 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] +* Tue Jan 02 2024 Zdenek Dohnal - 2:9.0.2190-1 +- patchlevel 2190 -* 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] +* Fri Dec 15 2023 Zdenek Dohnal - 2:9.0.2167-1 +- patchlevel 2167 -* Tue Jun 02 2020 Zdenek Dohnal - 2:8.0.1763-15 -- 1842755 - CVE-2019-20807 +* Fri Dec 08 2023 Zdenek Dohnal - 2:9.0.2153-1 +- patchlevel 2153 -* Mon Feb 10 2020 Zdenek Dohnal - 2:8.0.1763-14 -- 1745476 - manpage of vim is garbled in Japanese locale +* Wed Nov 22 2023 Zdenek Dohnal - 2:9.0.2120-1 +- patchlevel 2120 -* Tue Jul 23 2019 Zdenek Dohnal - 2:8.0.1763-13 -- fixing covscan issues raised by previous commit +* Thu Nov 16 2023 Zdenek Dohnal - 2:9.0.2105-1 +- patchlevel 2105 -* Tue Jul 23 2019 Zdenek Dohnal - 2:8.0.1763-12 -- 1605095 - vim: should not re-implement crypto +* Wed Nov 01 2023 Zdenek Dohnal - 2:9.0.2081-1 +- patchlevel 2081 -* 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] +* Wed Oct 18 2023 Zdenek Dohnal - 2:9.0.2048-1 +- patchlevel 2048 -* Thu Dec 06 2018 Zdenek Dohnal - 2:8.0.1763-10 -- do not strip binaries before build system strips them +* Thu Oct 05 2023 Remi Collet - 2:9.0.1984-2 +- rebuild for new libsodium -* 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 +* Thu Oct 05 2023 Zdenek Dohnal - 2:9.0.1984-1 +- patchlevel 1984 -* 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 +* Mon Oct 02 2023 Zdenek Dohnal - 2:9.0.1968-1 +- patchlevel 1968 -* Tue Jul 24 2018 Zdenek Dohnal - 2:8.0.1763-7 +* Fri Sep 22 2023 Zdenek Dohnal - 2:9.0.1927-1 +- patchlevel 1927 + +* Thu Sep 07 2023 Zdenek Dohnal - 2:9.0.1882-1 +- patchlevel 1882 + +* Wed Sep 06 2023 Zdenek Dohnal - 2:9.0.1872-2 +- test_xxd_color2 is flaky + +* Tue Sep 05 2023 Zdenek Dohnal - 2:9.0.1872-1 +- patchlevel 1872 + +* Wed Aug 30 2023 Zdenek Dohnal - 2:9.0.1822-1 +- patchlevel 1822 + +* Mon Aug 14 2023 Zdenek Dohnal - 2:9.0.1712-1 +- patchlevel 1712 + +* Fri Aug 11 2023 Zdenek Dohnal - 2:9.0.1677-4 +- fix test suite from python3 syntax warnings + +* Sat Jul 22 2023 Fedora Release Engineering - 2:9.0.1677-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jul 13 2023 Zdenek Dohnal - 2:9.0.1677-2 +- 2222671 - fix FTBFS due Python3 rebase +- 2222648 - fix FailToInstall due Perl rebase + +* Tue Jul 11 2023 Zdenek Dohnal - 2:9.0.1677-2 +- patchlevel 1677 + +* Tue Jul 11 2023 Jitka Plesnikova - 2:9.0.1671-2 +- Perl 5.38 rebuild + +* Fri Jun 30 2023 Zdenek Dohnal - 2:9.0.1671-1 +- patchlevel 1671 + +* Fri Jun 23 2023 Zdenek Dohnal - 2:9.0.1649-1 +- patchlevel 1649 + +* Tue Jun 13 2023 Zdenek Dohnal - 2:9.0.1627-1 +- patchlevel 1627 + +* Mon Jun 05 2023 Zdenek Dohnal - 2:9.0.1607-1 +- patchlevel 1607 + +* Wed May 31 2023 Zdenek Dohnal - 2:9.0.1592-1 +- patchlevel 1592 + +* Mon May 29 2023 Zdenek Dohnal - 2:9.0.1587-1 +- patchlevel 1587 + +* Wed May 24 2023 Zdenek Dohnal - 2:9.0.1575-1 +- patchlevel 1575 + +* Thu May 18 2023 Zdenek Dohnal - 2:9.0.1562-1 +- patchlevel 1562 + +* Thu Apr 27 2023 Zdenek Dohnal - 2:9.0.1491-1 +- patchlevel 1491 + +* Tue Apr 25 2023 Zdenek Dohnal - 2:9.0.1486-1 +- patchlevel 1486 + +* Fri Apr 21 2023 Zdenek Dohnal - 2:9.0.1472-1 +- patchlevel 1472 + +* Tue Apr 11 2023 Zdenek Dohnal - 2:9.0.1443-1 +- patchlevel 1443 + +* Tue Apr 11 2023 Zdenek Dohnal - 2:9.0.1440-2 +- incorporate License tag changes based on legal team response + +* Wed Apr 05 2023 Andreas Schneider - 2:9.0.1440-2 +- create xxd package, because it is used by hex.nvim + +* Wed Apr 05 2023 Zdenek Dohnal - 2:9.0.1440-2 +- list most licenses available in binary rpms and migrate them into SPDX syntax + +* Wed Apr 05 2023 Zdenek Dohnal - 2:9.0.1440-1 +- patchlevel 1440 + +* Mon Mar 27 2023 Zdenek Dohnal - 2:9.0.1429-1 +- patchlevel 1429 + +* Wed Mar 22 2023 Zdenek Dohnal - 2:9.0.1423-1 +- patchlevel 1423 + +* Thu Mar 16 2023 Zdenek Dohnal - 2:9.0.1407-1 +- patchlevel 1407 + +* Tue Mar 14 2023 Zdenek Dohnal - 2:9.0.1403-1 +- patchlevel 1403 + +* Thu Mar 02 2023 Zdenek Dohnal - 2:9.0.1367-1 +- patchlevel 1367 + +* Fri Feb 17 2023 Zdenek Dohnal - 2:9.0.1314-1 +- patchlevel 1314 + +* Tue Feb 14 2023 Zdenek Dohnal - 2:9.0.1307-1 +- patchlevel 1307 + +* Tue Feb 14 2023 Zdenek Dohnal - 2:9.0.1293-2 +- 2169641 - Syntax highlight for sh files broken + +* Thu Feb 09 2023 Zdenek Dohnal - 2:9.0.1293-1 +- patchlevel 1293 + +* Mon Jan 30 2023 Zdenek Dohnal - 2:9.0.1262-1 +- patchlevel 1262 + +* Thu Jan 19 2023 Zdenek Dohnal - 2:9.0.1221-1 +- patchlevel 1221 + +* Thu Jan 12 2023 Zdenek Dohnal - 2:9.0.1182-1 +- patchlevel 1182 + +* Mon Jan 09 2023 Zdenek Dohnal - 2:9.0.1160-1 +- patchlevel 1160 + +* Mon Jan 09 2023 Zdenek Dohnal - 2:9.0.1054-2 +- FTBFS with new FORTIFY_SOURCE=3 - remove it since Vim wants level 1 + +* Wed Dec 14 2022 Zdenek Dohnal - 2:9.0.1054-1 +- patchlevel 1054 + +* Mon Dec 05 2022 Zdenek Dohnal - 2:9.0.1006-1 +- patchlevel 1006 + +* Mon Nov 28 2022 Zdenek Dohnal - 2:9.0.963-1 +- patchlevel 963 + +* Mon Nov 21 2022 Zdenek Dohnal - 2:9.0.915-1 +- patchlevel 915 + +* Thu Nov 03 2022 Zdenek Dohnal - 2:9.0.828-1 +- patchlevel 828 + +* Thu Oct 20 2022 Zdenek Dohnal - 2:9.0.803-1 +- patchlevel 803 + +* Mon Oct 17 2022 Zdenek Dohnal - 2:9.0.777-1 +- patchlevel 777 + +* Wed Oct 12 2022 Zdenek Dohnal - 2:9.0.720-2 +- the current configure option for Vi is 'tiny' + +* Tue Oct 11 2022 Zdenek Dohnal - 2:9.0.720-1 +- patchlevel 720 + +* Wed Sep 28 2022 Carl George - 2:9.0.475-2 +- Obsolete vim-toml since the runtime files are now part of vim-common + +* Fri Sep 16 2022 Zdenek Dohnal - 2:9.0.475-1 +- patchlevel 475 + +* Fri Sep 16 2022 Zdenek Dohnal - 2:9.0.412-2 +- provide 'vim(plugins-supported)' for plugins to require Vim/GVim + +* Thu Sep 08 2022 Zdenek Dohnal - 2:9.0.412-1 +- patchlevel 412 + +* Thu Sep 01 2022 Zdenek Dohnal - 2:9.0.348-1 +- patchlevel 348 + +* Tue Aug 30 2022 Zdenek Dohnal - 2:9.0.327-1 +- patchlevel 327 + +* Tue Aug 23 2022 Zdenek Dohnal - 2:9.0.246-1 +- patchlevel 246 + +* Mon Aug 15 2022 Zdenek Dohnal - 2:9.0.213-1 +- patchlevel 213 + +* Thu Aug 11 2022 Zdenek Dohnal - 2:9.0.189-1 +- patchlevel 189 + +* Thu Aug 04 2022 Zdenek Dohnal - 2:9.0.137-1 +- patchlevel 137 + +* Tue Jul 26 2022 Zdenek Dohnal - 2:9.0.077-1 +- patchlevel 077 + +* Sat Jul 23 2022 Fedora Release Engineering - 2:9.0.049-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jul 11 2022 Zdenek Dohnal - 2:9.0.049-1 +- patchlevel 049 + +* Tue Jun 28 2022 Zdenek Dohnal - 2:8.2.5172-1 +- patchlevel 5172 + +* Tue Jun 21 2022 Zdenek Dohnal - 2:8.2.5141-1 +- patchlevel 5141 + +* Tue Jun 14 2022 Zdenek Dohnal - 2:8.2.5085-1 +- patchlevel 5085 + +* Fri Jun 03 2022 Zdenek Dohnal - 2:8.2.5052-1 +- patchlevel 5052 + +* Tue May 31 2022 Zdenek Dohnal - 2:8.2.5046-1 +- patchlevel 5046 + +* Wed May 18 2022 Zdenek Dohnal - 2:8.2.4975-1 +- patchlevel 4975 + +* Tue May 17 2022 Zdenek Dohnal - 2:8.2.4969-1 +- patchlevel 4969 + +* Mon May 09 2022 Zdenek Dohnal - 2:8.2.4927-1 +- patchlevel 4927 + +* Mon May 09 2022 Zdenek Dohnal - 2:8.2.4877-2 +- add new file vimhelp.vim + +* Fri May 06 2022 Zdenek Dohnal - 2:8.2.4877-1 +- patchlevel 4877 + +* Mon May 02 2022 Zdenek Dohnal - 2:8.2.4857-1 +- patchlevel 4857 + +* Fri Apr 29 2022 Zdenek Dohnal - 2:8.2.4845-1 +- patchlevel 4845 + +* Fri Apr 22 2022 Zdenek Dohnal - 2:8.2.4804-1 +- patchlevel 4804 + +* Fri Apr 08 2022 Zdenek Dohnal - 2:8.2.4701-2 +- fix the upstream testsuite failure due downstream patch + +* Thu Apr 07 2022 Zdenek Dohnal - 2:8.2.4701-1 +- patchlevel 4701 + +* Fri Mar 25 2022 Zdenek Dohnal - 2:8.2.4621-1 +- patchlevel 4621 + +* Wed Mar 16 2022 Zdenek Dohnal - 2:8.2.4579-1 +- patchlevel 4579 + +* Wed Mar 09 2022 Zdenek Dohnal - 2:8.2.4529-1 +- patchlevel 4529 + +* Tue Mar 01 2022 Zdenek Dohnal - 2:8.2.4485-1 +- patchlevel 4485 + +* Thu Feb 24 2022 Zdenek Dohnal - 2:8.2.4460-1 +- patchlevel 4460 + +* Mon Feb 21 2022 Zdenek Dohnal - 2:8.2.4428-1 +- patchlevel 4428 + +* Tue Feb 15 2022 Zdenek Dohnal - 2:8.2.4386-1 +- patchlevel 4386 + +* Mon Feb 07 2022 Zdenek Dohnal - 2:8.2.4314-1 +- patchlevel 4314 + +* Thu Jan 27 2022 Zdenek Dohnal - 2:8.2.4232-1 +- patchlevel 4232 + +* Mon Jan 24 2022 Zdenek Dohnal - 2:8.2.4198-1 +- patchlevel 4198 + +* Sat Jan 22 2022 Fedora Release Engineering - 2:8.2.4068-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jan 12 2022 Zdenek Dohnal - 2:8.2.4068-1 +- patchlevel 4068 + +* Mon Jan 10 2022 Zdenek Dohnal - 2:8.2.4051-1 +- patchlevel 4051 + +* Fri Jan 07 2022 Malcolm Inglis - 2:8.2.4006-2 +- add 'gui' build condition for vim-X11 + +* Wed Jan 05 2022 Zdenek Dohnal - 2:8.2.4006-1 +- patchlevel 4006 + +* Wed Dec 15 2021 Zdenek Dohnal - 2:8.2.3811-1 +- patchlevel 3811 + +* Tue Dec 07 2021 Zdenek Dohnal - 2:8.2.3755-1 +- patchlevel 3755 + +* Thu Dec 02 2021 Zdenek Dohnal - 2:8.2.3717-1 +- patchlevel 3717 + +* Thu Nov 25 2021 Zdenek Dohnal - 2:8.2.3642-2 +- 2026651 - defaults.vim changes create conflicts between vim-minimal and vim-common + +* Mon Nov 22 2021 Zdenek Dohnal - 2:8.2.3642-1 +- patchlevel 3642 + +* Mon Nov 08 2021 Zdenek Dohnal - 2:8.2.3582-1 +- patchlevel 3582 + +* Mon Nov 01 2021 Zdenek Dohnal - 2:8.2.3568-1 +- patchlevel 3568 + +* Fri Oct 15 2021 Zdenek Dohnal - 2:8.2.3512-1 +- patchlevel 3512 + +* Thu Oct 14 2021 Zdenek Dohnal - 2:8.2.3404-2 +- adjust test suite to Python 3.10 + +* Thu Oct 14 2021 Zdenek Dohnal - 2:8.2.3404-2 +- remove filetype plugin from virc - it doesn't work with vi + +* Mon Oct 11 2021 Zdenek Dohnal - 2:8.2.3404-2 +- set system vimrc via compiler macros + +* Thu Sep 23 2021 Zdenek Dohnal - 2:8.2.3404-2 +- remove downstream patch vim-8.0-copypaste.patch - put mouse settings into defaults.vim again + +* Mon Sep 06 2021 Zdenek Dohnal - 2:8.2.3404-1 +- patchlevel 3404 + +* Wed Sep 01 2021 Zdenek Dohnal - 2:8.2.3391-1 +- patchlevel 3391 + +* Mon Aug 23 2021 Zdenek Dohnal - 2:8.2.3367-1 +- patchlevel 3367 + +* Mon Aug 16 2021 Zdenek Dohnal - 2:8.2.3354-1 +- patchlevel 3354 + +* Mon Aug 09 2021 Zdenek Dohnal - 2:8.2.3318-1 +- patchlevel 3318 + +* Thu Aug 05 2021 Zdenek Dohnal - 2:8.2.3290-1 +- patchlevel 3290 + +* Mon Aug 02 2021 Zdenek Dohnal - 2:8.2.3273-1 +- patchlevel 3273 + +* Mon Jul 26 2021 Zdenek Dohnal - 2:8.2.3223-1 +- patchlevel 3223 + +* Fri Jul 23 2021 Fedora Release Engineering - 2:8.2.3182-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Mon Jul 19 2021 Zdenek Dohnal - 2:8.2.3182-1 +- patchlevel 3182 + +* Mon Jul 12 2021 Zdenek Dohnal - 2:8.2.3154-1 +- patchlevel 3154 + +* Mon Jun 28 2021 Zdenek Dohnal - 2:8.2.3070-1 +- patchlevel 3070 + +* Fri Jun 25 2021 Zdenek Dohnal - 2:8.2.3046-1 +- patchlevel 3046 + +* Thu Jun 24 2021 Zdenek Dohnal - 2:8.2.3043-1 +- patchlevel 3043 +- enable libsodium encryption in Fedora +- require glibc-gconv-extra on F35 and later + +* Wed Jun 16 2021 Zdenek Dohnal - 2:8.2.3009-1 +- patchlevel 3009 + +* Thu Jun 10 2021 Zdenek Dohnal - 2:8.2.2956-2 +- 1969936 - Failed to source defaults.vim + +* Mon Jun 07 2021 Zdenek Dohnal - 2:8.2.2956-1 +- patchlevel 2956 + +* Fri Jun 04 2021 Zdenek Dohnal - 2:8.2.2932-1 +- patchlevel 2932 + +* Mon May 24 2021 Zdenek Dohnal - 2:8.2.2879-1 +- patchlevel 2879 + +* Fri May 21 2021 Zdenek Dohnal - 2:8.2.2875-1 +- patchlevel 2875 + +* Mon May 10 2021 Zdenek Dohnal - 2:8.2.2846-1 +- patchlevel 2846 + +* Wed May 05 2021 Zdenek Dohnal - 2:8.2.2825-2 +- make default-editor built only on Fedora + +* Mon May 03 2021 Zdenek Dohnal - 2:8.2.2825-1 +- patchlevel 2825 + +* Mon Apr 26 2021 Zdenek Dohnal - 2:8.2.2811-1 +- patchlevel 2811 + +* Tue Apr 20 2021 Zdenek Dohnal - 2:8.2.2787-1 +- patchlevel 2787 + +* Mon Apr 12 2021 Zdenek Dohnal - 2:8.2.2756-1 +- patchlevel 2756 + +* Thu Apr 08 2021 Zdenek Dohnal - 2:8.2.2735-1 +- patchlevel 2735 + +* Mon Mar 22 2021 Zdenek Dohnal - 2:8.2.2637-1 +- patchlevel 2637 + +* Mon Mar 15 2021 Zdenek Dohnal - 2:8.2.2607-1 +- patchlevel 2607 + +* Mon Mar 08 2021 Zdenek Dohnal - 2:8.2.2576-1 +- patchlevel 2576 + +* Mon Mar 01 2021 Zdenek Dohnal - 2:8.2.2559-1 +- patchlevel 2559 + +* Mon Mar 01 2021 Zdenek Dohnal - 2:8.2.2541-2 +- 1928442 - vim-enhanced is replacing vim-wrappers-8.2.2465-1 + +* Mon Feb 22 2021 Zdenek Dohnal - 2:8.2.2541-1 +- patchlevel 2541 +- 1931099 - Build version numbers don't match the actual build patchlevel + +* Thu Feb 18 2021 Zdenek Dohnal - 2:8.2.2529-1 +- patchlevel 2529 + +* Tue Feb 09 2021 Zdenek Dohnal - 2:8.2.2488-1 +- patchlevel 2488 + +* Tue Feb 09 2021 Zdenek Dohnal - 2:8.2.2465-2 +- remove vim-wrappers, vim is a binary again, vi and view stay as wrappers +- removed vim -> vi functionality, because it cannot be optional and work + for all cases at the same time + +* Mon Feb 08 2021 Zdenek Dohnal - 2:8.2.2465-2 +- view is not readonly right now, fix it by -R + +* Thu Feb 04 2021 Zdenek Dohnal - 2:8.2.2465-1 +- patchlevel 2465 +- 1918575 - Use wrappers for vi/vim instead of aliases + +* Thu Feb 04 2021 Zdenek Dohnal - 2:8.2.2451-2 +- vim-update.sh: apply changes master->rawhide + +* Tue Feb 02 2021 Zdenek Dohnal - 2:8.2.2451-1 +- patchlevel 2451 + +* Wed Jan 27 2021 Fedora Release Engineering - 2:8.2.2311-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jan 11 2021 Zdenek Dohnal - 2:8.2.2311-2 +- conflicting the version when the change happened doesnt make sense + +* Fri Jan 08 2021 Zdenek Dohnal - 2:8.2.2311-1 +- patchlevel 2311 + +* Fri Dec 18 2020 Zdenek Dohnal - 2:8.2.2146-2 +- install vim-minimal profiles under different name to avoid future conflicts +- remove old conflicts + +* Wed Dec 16 2020 Zdenek Dohnal - 2:8.2.2146-1 +- patchlevel 2146 + +* Wed Dec 16 2020 Zdenek Dohnal - 2:8.2.2143-2 +- make profile files as ghosts to prevent further conflicts +- remove ownership of /etc/profile.d - rpmlinter reports it as an error +- remove interactive prompt from profile scripts + +* Mon Dec 14 2020 Zdenek Dohnal - 2:8.2.2143-1 +- patchlevel 2143 + +* Mon Dec 14 2020 Zdenek Dohnal - 2:8.2.2115-2 +- 1907335 - installing vim no longer works, due to package conflicts with vim-minimal + +* Wed Dec 09 2020 Zdenek Dohnal - 2:8.2.2115-1 +- patchlevel 2115 + +* Wed Dec 09 2020 Zdenek Dohnal - 2:8.2.2108-2 +- 1902772 - "vim" from vim-minimal defunct on zsh + +* Tue Dec 08 2020 Zdenek Dohnal - 2:8.2.2108-1 +- patchlevel 2108 + +* Fri Dec 04 2020 Zdenek Dohnal - 2:8.2.2086-1 +- patchlevel 2086 + +* Tue Dec 01 2020 Zdenek Dohnal - 2:8.2.2072-1 +- patchlevel 2072 + +* Fri Nov 20 2020 Zdenek Dohnal - 2:8.2.2018-1 +- patchlevel 2018 + +* Tue Nov 10 2020 Zdenek Dohnal - 2:8.2.1971-1 +- patchlevel 1971 + +* Fri Nov 06 2020 Zdenek Dohnal - 2:8.2.1961-1 +- patchlevel 1961 + +* Thu Nov 05 2020 Zdenek Dohnal - 2:8.2.1941-2 +- make is no longer in buildroot by default +- disable F31 updating + +* Mon Nov 02 2020 Zdenek Dohnal - 2:8.2.1941-1 +- patchlevel 1941 + +* Mon Nov 02 2020 Zdenek Dohnal - 2:8.2.1885-2 +- move vim.fish to vendor_functions.d + +* Thu Oct 22 2020 Zdenek Dohnal - 2:8.2.1885-1 +- patchlevel 1885 + +* Mon Oct 19 2020 Zdenek Dohnal - 2:8.2.1815-2 +- vim.sh, vim.csh, vim.fish - drop 'which', use 'command' + +* Thu Oct 15 2020 Zdenek Dohnal - 2:8.2.1815-2 +- vim-default-editor.fish - dont give EDITOR universal scope +- vim.sh, vim.csh - set aliases only for OS default vi and vim +- add fish profile for Vim + +* Mon Oct 12 2020 Zdenek Dohnal - 2:8.2.1815-2 +- fix installing fish profile, set virtual provide for default editor + (thanks Neal Gompa and Kamil Dudka) +- set conflicts to nano-default-editor which doesnt provide system-default-editor + +* Fri Oct 09 2020 Paweł Marciniak - 2:8.2.1815-2 +- A new subpackage, set vim as a default editor. + +* Fri Oct 09 2020 Zdenek Dohnal - 2:8.2.1815-1 +- patchlevel 1815 + +* Tue Oct 06 2020 Zdenek Dohnal - 2:8.2.1805-1 +- patchlevel 1805 + +* Tue Sep 29 2020 Zdenek Dohnal - 2:8.2.1770-1 +- patchlevel 1770 + +* Tue Sep 15 2020 Zdenek Dohnal - 2:8.2.1687-1 +- patchlevel 1687 + +* Thu Sep 10 2020 Zdenek Dohnal - 2:8.2.1651-1 +- patchlevel 1651 + +* Tue Sep 08 2020 Zdenek Dohnal - 2:8.2.1634-1 +- patchlevel 1634 + +* Mon Aug 31 2020 Zdenek Dohnal - 2:8.2.1551-1 +- patchlevel 1551 + +* Mon Aug 31 2020 Zdenek Dohnal - 2:8.2.1522-3 +- F33 has update-testing now + +* Tue Aug 25 2020 Zdenek Dohnal - 2:8.2.1522-2 +- typo in vim-update.sh + +* Tue Aug 25 2020 Zdenek Dohnal - 2:8.2.1522-1 +- patchlevel 1522 + +* Mon Aug 24 2020 Zdenek Dohnal - 2:8.2.1520-1 +- patchlevel 1520 + +* Thu Aug 20 2020 Zdenek Dohnal - 2:8.2.1484-2 +- explicitly disable canberra for vi and vim + +* Wed Aug 19 2020 Zdenek Dohnal - 2:8.2.1484-1 +- patchlevel 1484 + +* Tue Aug 18 2020 Zdenek Dohnal - 2:8.2.1412-2 +- F33 got branched, updates-testing isn't enabled for it yet +- enable sounds for gvim + +* Mon Aug 10 2020 Zdenek Dohnal - 2:8.2.1412-1 +- patchlevel 1412 + +* Fri Aug 07 2020 Zdenek Dohnal - 2:8.2.1382-1 +- patchlevel 1382 + +* Wed Aug 05 2020 Zdenek Dohnal - 2:8.2.1359-2 +- own directories for icons + +* Mon Aug 03 2020 Zdenek Dohnal - 2:8.2.1359-1 +- patchlevel 1359 + +* Fri Jul 31 2020 Zane Bitter - 2:8.2.1328-2 +- Alias view to "vim -R" when available + +* Fri Jul 31 2020 Zdenek Dohnal - 2:8.2.1328-1 +- patchlevel 1328 + +* Wed Jul 29 2020 Zdenek Dohnal - 2:8.2.1307-2 +- 1703774 - ex, view and rview manpages were dangling symlinks + +* Tue Jul 28 2020 Zdenek Dohnal - 2:8.2.1307-1 +- patchlevel 1307 + +* Fri Jul 24 2020 Zdenek Dohnal - 2:8.2.1273-2 +- vim-update.sh: bodhi no longer sets a default automatic time to stable + +* Thu Jul 23 2020 Zdenek Dohnal - 2:8.2.1273-1 +- patchlevel 1273 + +* Thu Jul 23 2020 Zdenek Dohnal - 2:8.2.1224-4 +- python3 dynamic linking patch is already in upstream, remove it + +* Wed Jul 22 2020 Zdenek Dohnal - 2:8.2.1224-3 +- use %%make_build and %%make_install according FPG + +* Thu Jul 16 2020 Zdenek Dohnal - 2:8.2.1224-2 +- proper fix for python3 dynamic linking + +* Thu Jul 16 2020 Zdenek Dohnal - 2:8.2.1224-1 +- patchlevel 1224 + +* Wed Jul 15 2020 Zdenek Dohnal - 2:8.2.1217-1 +- patchlevel 1217 + +* Wed Jul 15 2020 Zdenek Dohnal - 2:8.2.1199-1 +- fix python3 dynamic linking with python >= 3.8 +- clean up unused stuff + +* Tue Jul 14 2020 Zdenek Dohnal - 2:8.2.1199-1 +- FTBFS with Lua - backported patch from upstream pull request to prevent linking with lua + +* Mon Jul 13 2020 Zdenek Dohnal - 2:8.2.1199-1 +- patchlevel 1199 + +* Mon Jun 29 2020 Zdenek Dohnal - 2:8.2.1081-1 +- patchlevel 1081 + +* Thu Jun 25 2020 Zdenek Dohnal - 2:8.2.1052-2 +- remove python2 stuff for RHEL +- %%{fedora} macro is undefined in ELN, causes python3-config to use old options + +* Thu Jun 25 2020 Zdenek Dohnal - 2:8.2.1052-1 +- patchlevel 1052 + +* Fri Jun 19 2020 Zdenek Dohnal - 2:8.2.1009-1 +- patchlevel 1009 + +* Wed Jun 17 2020 Zdenek Dohnal - 2:8.2.993-1 +- patchlevel 993 + +* Tue Jun 16 2020 Zdenek Dohnal - 2:8.2.987-1 +- patchlevel 987 + +* Fri Jun 05 2020 Zdenek Dohnal - 2:8.2.905-1 +- patchlevel 905 + +* Tue Jun 02 2020 Zdenek Dohnal - 2:8.2.869-2 +- remove tests from dist-git, we use base os ci + +* Mon Jun 01 2020 Zdenek Dohnal - 2:8.2.869-1 +- patchlevel 869 + +* Thu May 28 2020 Miro Hrončok - 2:8.2.834-2 +- Rebuilt for Python 3.9 + +* Thu May 28 2020 Zdenek Dohnal - 2:8.2.834-1 +- patchlevel 834 + +* Tue May 26 2020 Miro Hrončok - 2:8.2.806-2 +- Rebuilt for Python 3.9 + +* Fri May 22 2020 Zdenek Dohnal - 2:8.2.806-1 +- patchlevel 806 + +* Mon May 18 2020 Zdenek Dohnal - 2:8.2.789-1 +- patchlevel 789 + +* Thu May 14 2020 Zdenek Dohnal - 2:8.2.752-2 +- F30 will be EOL in less than 14 days, remove it from automatic updates + +* Thu May 14 2020 Zdenek Dohnal - 2:8.2.752-1 +- patchlevel 752 + +* Mon May 11 2020 Zdenek Dohnal - 2:8.2.735-1 +- patchlevel 735 + +* Mon May 04 2020 Zdenek Dohnal - 2:8.2.694-1 +- patchlevel 694 + +* Fri Apr 24 2020 Zdenek Dohnal - 2:8.2.628-1 +- patchlevel 628 + +* Tue Apr 21 2020 Zdenek Dohnal - 2:8.2.613-1 +- patchlevel 613 + +* Fri Apr 17 2020 Zdenek Dohnal - 2:8.2.587-1 +- patchlevel 587 + +* Thu Apr 09 2020 Zdenek Dohnal - 2:8.2.534-1 +- patchlevel 534 + +* Tue Apr 07 2020 Zdenek Dohnal - 2:8.2.525-1 +- patchlevel 525 + +* Mon Apr 06 2020 Zdenek Dohnal - 2:8.2.520-1 +- patchlevel 520 + +* Mon Mar 30 2020 Zdenek Dohnal - 2:8.2.480-1 +- patchlevel 480 + +* Thu Mar 26 2020 Zdenek Dohnal - 2:8.2.448-1 +- patchlevel 448 + +* Wed Mar 25 2020 Zdenek Dohnal - 2:8.2.444-1 +- patchlevel 444 + +* Mon Mar 16 2020 Lubomir Rintel - 2:8.2.390-2 +- source /etc/vimrc.local if it exists + +* Mon Mar 16 2020 Zdenek Dohnal - 2:8.2.390-1 +- patchlevel 390 + +* Tue Mar 10 2020 Zdenek Dohnal - 2:8.2.357-2 +- put providing bundled libvterm into subpackage vim-enhanced + +* Fri Mar 06 2020 Zdenek Dohnal - 2:8.2.357-1 +- patchlevel 357 + +* Thu Mar 05 2020 Zdenek Dohnal - 2:8.2.356-1 +- patchlevel 356 + +* Tue Mar 03 2020 Zdenek Dohnal - 2:8.2.348-1 +- patchlevel 348 + +* Thu Feb 13 2020 Zdenek Dohnal - 2:8.2.236-2 +- F32 got branched - do separate update for it + +* Mon Feb 10 2020 Zdenek Dohnal - 2:8.2.236-1 +- patchlevel 236 + +* Wed Jan 29 2020 Zdenek Dohnal - 2:8.2.158-2 +- man page file format conversion is not needed anymore + +* Mon Jan 27 2020 Zdenek Dohnal - 2:8.2.158-1 +- patchlevel 158 + +* Fri Jan 10 2020 Zdenek Dohnal - 2:8.2.109-1 +- patchlevel 109 + +* Thu Jan 02 2020 Zdenek Dohnal - 2:8.2.076-1 +- patchlevel 076 + +* Wed Dec 18 2019 Zdenek Dohnal - 2:8.2.019-1 +- patchlevel 019 + +* Mon Dec 16 2019 Zdenek Dohnal - 2:8.2.012-1 +- patchlevel 012 + +* Thu Dec 12 2019 Zdenek Dohnal - 2:8.1.2424-1 +- patchlevel 2424 + +* Thu Nov 28 2019 Zdenek Dohnal - 2:8.1.2352-1 +- patchlevel 2352 + +* Thu Nov 28 2019 Zdenek Dohnal - 2:8.1.2267-2 +- leave out f29, will be soon EOL + +* Thu Nov 07 2019 Zdenek Dohnal - 2:8.1.2267-1 +- patchlevel 2267 + +* Wed Nov 06 2019 Zdenek Dohnal - 2:8.1.2234-2 +- do not add python-libs into LDFLAGS until we build vim and gvim + +* Wed Oct 30 2019 Zdenek Dohnal - 2:8.1.2234-1 +- patchlevel 2234 + +* Tue Oct 22 2019 Zdenek Dohnal - 2:8.1.2198-1 +- patchlevel 2198 + +* Mon Oct 21 2019 Zdenek Dohnal - 2:8.1.2197-1 +- patchlevel 2197 + +* Thu Oct 17 2019 Zdenek Dohnal - 2:8.1.2168-1 +- patchlevel 2168 + +* Mon Oct 07 2019 Zdenek Dohnal - 2:8.1.2120-1 +- patchlevel 2120 + +* Mon Sep 30 2019 Zdenek Dohnal - 2:8.1.2102-1 +- patchlevel 2102 + +* Thu Sep 19 2019 Zdenek Dohnal - 2:8.1.2056-1 +- patchlevel 2056 + +* Mon Sep 16 2019 Zdenek Dohnal - 2:8.1.2019-2 +- enable fips warning + +* Tue Sep 10 2019 Zdenek Dohnal - 2:8.1.2019-1 +- patchlevel 2019 + +* Fri Sep 06 2019 Zdenek Dohnal - 2:8.1.1991-2 +- add f32 as rawhide and f31 as standalone branch + +* Fri Sep 06 2019 Zdenek Dohnal - 2:8.1.1991-1 +- patchlevel 1991 + +* Tue Sep 03 2019 Zdenek Dohnal - 2:8.1.1912-3 +- 1744956 - vim does not build with python3.8 + +* Mon Aug 26 2019 Zdenek Dohnal - 2:8.1.1912-2 +- remove python2 interpreter - python2 will be retired soon. +- use 'file' with '--mime' option - output is more stable + +* Fri Aug 23 2019 Zdenek Dohnal - 2:8.1.1912-1 +- patchlevel 1912 + +* Fri Aug 23 2019 Zdenek Dohnal - 2:8.1.1890-2 +- revert vimx removal + +* Tue Aug 20 2019 Zdenek Dohnal - 2:8.1.1890-1 +- patchlevel 1890 + +* Tue Aug 20 2019 Zdenek Dohnal - 2:8.1.1790-2 +- 1740892 - vimx is symlink to gvim instead of vim + +* Fri Aug 02 2019 Zdenek Dohnal - 2:8.1.1790-1 +- patchlevel 1790 + +* Fri Jul 26 2019 Zdenek Dohnal - 2:8.1.1749-1 +- patchlevel 1749 + +* Tue Jul 23 2019 Zdenek Dohnal - 2:8.1.1713-6 +- Provides must be unversioned according FPG + +* Mon Jul 22 2019 Zdenek Dohnal - 2:8.1.1713-5 +- remove perl-libs, because they are supplied perl MODULE_COMPAT + +* Fri Jul 19 2019 Zdenek Dohnal - 2:8.1.1713-4 +- remove unused patch + +* Fri Jul 19 2019 Zdenek Dohnal - 2:8.1.1713-3 +- 1724126 - disable showing spec template for new file with .spec suffix +- minor changes in spec.template - tabs->spaces + +* Fri Jul 19 2019 Zdenek Dohnal - 2:8.1.1713-2 +- remove skip_defaults_vim - it does not make sense to have it in system vimrc + +* Thu Jul 18 2019 Zdenek Dohnal - 2:8.1.1713-1 +- patchlevel 1713 + +* Thu Jul 18 2019 Zdenek Dohnal - 2:8.1.1661-2 +- 1643311 - add several defaults from Vim upstream and remove forcing fileencodings + +* Thu Jul 11 2019 Zdenek Dohnal - 2:8.1.1661-1 +- patchlevel 1661 + +* Fri Jun 28 2019 Zdenek Dohnal - 2:8.1.1602-1 +- patchlevel 1602 + +* Mon Jun 17 2019 Zdenek Dohnal - 2:8.1.1561-1 +- patchlevel 1561 + +* Tue Jun 11 2019 Zdenek Dohnal - 2:8.1.1517-1 +- patchlevel 1517 + +* Tue Jun 11 2019 Zdenek Dohnal - 2:8.1.1471-2 +- remove desktop patch, already in upstream + +* Thu Jun 06 2019 Zdenek Dohnal - 2:8.1.1471-1 +- patchlevel 1471 + +* Tue May 28 2019 Zdenek Dohnal - 2:8.1.1413-1 +- patchlevel 1413 + +* Mon May 20 2019 Zdenek Dohnal - 2:8.1.1359-2 +- stop updating f28 + +* Mon May 20 2019 Zdenek Dohnal - 2:8.1.1359-1 +- patchlevel 1359 + +* Mon May 20 2019 Zdenek Dohnal - 2:8.1.1137-2 +- remove upstream patch + +* Mon Apr 08 2019 Zdenek Dohnal - 2:8.1.1137-1 +- patchlevel 1137 + +* Mon Apr 08 2019 Zdenek Dohnal - 2:8.1.1099-2 +- 1697104 - new spec file template contains deprecated tags + +* Tue Apr 02 2019 Zdenek Dohnal - 2:8.1.1099-1 +- patchlevel 1099 + +* Tue Mar 26 2019 Zdenek Dohnal - 2:8.1.1048-2 +- add bundled libvterm + +* Mon Mar 25 2019 Zdenek Dohnal - 2:8.1.1048-1 +- patchlevel 1048 + +* Fri Mar 08 2019 Zdenek Dohnal - 2:8.1.998-1 +- patchlevel 998 + +* Fri Mar 08 2019 Zdenek Dohnal - 2:8.1.994-2 +- F30 is already active in bodhi + +* Mon Mar 04 2019 Zdenek Dohnal - 2:8.1.994-1 +- patchlevel 994 + +* Wed Feb 20 2019 Zdenek Dohnal - 2:8.1.956-1 +- patchlevel 956 + +* Wed Feb 20 2019 Zdenek Dohnal - 2:8.1.918-2 +- we have Fedora 30 branch now, enable updates for it in vim-update.sh + +* Thu Feb 14 2019 Zdenek Dohnal - 2:8.1.918-1 +- patchlevel 918 + +* Thu Feb 14 2019 Zdenek Dohnal - 2:8.1.897-2 +- we do not need exact include path for python3 now + +* Tue Feb 12 2019 Zdenek Dohnal - 2:8.1.897-1 +- patchlevel 897 + +* Fri Feb 08 2019 Zdenek Dohnal - 2:8.1.880-1 +- patchlevel 880 + +* Mon Feb 04 2019 Zdenek Dohnal - 2:8.1.873-1 +- patchlevel 873 + +* Mon Feb 04 2019 Zdenek Dohnal - 2:8.1.847-4 +- remove downstream fix for new ruby, upstream solved it different way + +* Sun Feb 03 2019 Fedora Release Engineering - 2:8.1.847-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Jan 31 2019 Karsten Hopp - 2:8.1.847-2 +- remove ancient Changelog.rpm + +* Wed Jan 30 2019 Zdenek Dohnal - 2:8.1.847-2 +- fix patch for new ruby-2.6 + +* Wed Jan 30 2019 Zdenek Dohnal - 2:8.1.847-1 +- patchlevel 847 + +* Tue Jan 29 2019 Zdenek Dohnal - 2:8.1.837-2 +- FTBFS with new ruby-2.6 + +* Mon Jan 28 2019 Zdenek Dohnal - 2:8.1.837-1 +- patchlevel 837 + +* Fri Jan 25 2019 Zdenek Dohnal - 2:8.1.818-1 +- patchlevel 818 + +* Tue Jan 22 2019 Zdenek Dohnal - 2:8.1.789-1 +- patchlevel 789 + +* Fri Jan 11 2019 Zdenek Dohnal - 2:8.1.714-1 +- patchlevel 714 + +* Tue Jan 08 2019 Zdenek Dohnal - 2:8.1.702-1 +- patchlevel 702 + +* Mon Dec 10 2018 Zdenek Dohnal - 2:8.1.575-1 +- patchlevel 575 + +* Wed Dec 05 2018 Zdenek Dohnal - 2:8.1.549-2 +- do not strip binaries before build system strips it + +* Tue Nov 27 2018 Zdenek Dohnal - 2:8.1.549-1 +- patchlevel 549 + +* Tue Nov 27 2018 Zdenek Dohnal - 2:8.1.527-2 +- update vim-update.sh - F27 EOL + +* Fri Nov 16 2018 Zdenek Dohnal - 2:8.1.527-1 +- patchlevel 527 + +* Thu Nov 08 2018 Zdenek Dohnal - 2:8.1.513-2 +- #1646183 - do not forget the epoch + +* Thu Nov 08 2018 Zdenek Dohnal - 2:8.1.513-1 +- patchlevel 513 + +* Thu Nov 08 2018 Zdenek Dohnal - 2:8.1.511-2 +- fix #1646183 properly - we need to conflict with vim-enhanced, not vim-common + +* Mon Nov 05 2018 Zdenek Dohnal - 2:8.1.511-1 +- patchlevel 511 + +* Mon Nov 05 2018 Zdenek Dohnal - 2:8.1.497-2 +- 1646183 - Man file conflict for vim-minimal and vim-enhanced + +* Fri Oct 26 2018 Zdenek Dohnal - 2:8.1.497-1 +- patchlevel 497 + +* Fri Oct 19 2018 Zdenek Dohnal - 2:8.1.483-1 +- patchlevel 483 + +* Fri Oct 19 2018 Zdenek Dohnal - 2:8.1.451-2 +- 1640972 - vimrc/virc should reflect correct augroup + +* Fri Oct 05 2018 Zdenek Dohnal - 2:8.1.451-1 +- patchlevel 451 + +* Wed Oct 03 2018 Zdenek Dohnal - 2:8.1.450-1 +- patchlevel 450 + +* Wed Sep 19 2018 Zdenek Dohnal - 2:8.1.408-1 +- patchlevel 408 +- src/libvterm/src/termscreen.c is missing + +* Fri Sep 07 2018 Zdenek Dohnal - 2:8.1.351-1 +- patchlevel 351 + +* Fri Aug 31 2018 Zdenek Dohnal - 2:8.1.328-2 +- vim-update.sh - F29 got enabled in bodhi + +* Mon Aug 27 2018 Zdenek Dohnal - 2:8.1.328-1 +- patchlevel 328 + +* Wed Aug 15 2018 Zdenek Dohnal - 2:8.1.287-2 +- vim-update.sh - add f29 branch + +* Wed Aug 15 2018 Zdenek Dohnal - 2:8.1.287-1 +- patchlevel 287 + +* Mon Aug 13 2018 Zdenek Dohnal - 2:8.1.279-1 +- patchlevel 279 + +* Fri Aug 10 2018 Zdenek Dohnal - 2:8.1.264-1 +- patchlevel 264 + +* Thu Aug 09 2018 Zdenek Dohnal - 2:8.1.258-1 +- patchlevel 258 + +* Wed Aug 08 2018 Zdenek Dohnal - 2:8.1.254-1 +- patchlevel 254 + +* Mon Aug 06 2018 Zdenek Dohnal - 2:8.1.240-1 +- patchlevel 240 + +* Thu Aug 02 2018 Zdenek Dohnal - 2:8.1.233-1 +- patchlevel 233 + +* Tue Jul 31 2018 Florian Weimer - 2:8.1.229-2 +- Rebuild with fixed binutils + +* Mon Jul 30 2018 Zdenek Dohnal - 2:8.1.229-1 +- patchlevel 229 + +* Fri Jul 27 2018 Zdenek Dohnal - 2:8.1.213-1 +- patchlevel 213 + +* Fri Jul 27 2018 Zdenek Dohnal - 2:8.1.209-2 +- fail if configure option isn't satisfied + +* Wed Jul 25 2018 Zdenek Dohnal - 2:8.1.209-1 +- patchlevel 209 + +* Tue Jul 24 2018 Zdenek Dohnal - 2:8.1.207-2 - correcting license -* Thu Jul 19 2018 Zdenek Dohnal - 2:8.0.1763-6 -- 1602807 - vim-X11 doesn't provide the gui +* Mon Jul 23 2018 Zdenek Dohnal - 2:8.1.207-1 +- patchlevel 207 -* Wed Jul 11 2018 Zdenek Dohnal - 2:8.0.1763-5 -- remove fedora update script +* Fri Jul 20 2018 Zdenek Dohnal - 2:8.1.197-1 +- patchlevel 197 -* Wed Jul 11 2018 Zdenek Dohnal - 2:8.0.1763-4 +* Thu Jul 19 2018 Zdenek Dohnal - 2:8.1.189-2 +- 1603272 - vim-X11 doesn't provide the gui when certain devel packages missing from buildroot + +* Mon Jul 16 2018 Zdenek Dohnal - 2:8.1.189-1 +- patchlevel 189 + +* Mon Jul 16 2018 Zdenek Dohnal - 2:8.1.177-3 +- remove disable-gtk3-check configure option + +* Sat Jul 14 2018 Fedora Release Engineering - 2:8.1.177-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Jul 11 2018 Zdenek Dohnal - 2:8.1.177-1 +- patchlevel 177 + +* Wed Jul 11 2018 Zdenek Dohnal - 2:8.1.119-8 +- add packager and epoch into update script to have better changelog + +* Wed Jul 11 2018 Zdenek Dohnal - 2:8.1.119-7 - 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 +* Tue Jul 10 2018 Zdenek Dohnal - 2:8.1.119-6 +- 1599663 - 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 +* Fri Jul 06 2018 Petr Pisar - 2:8.1.119-5 +- Perl 5.28 rebuild + +* Wed Jul 04 2018 Ondřej Lysoněk - 2:8.1.119-4 +- Backport patch 8.1.0121: crash when using ballooneval related to 'vartabstop' +- Resolves: rhbz#1597842 + +* Tue Jul 03 2018 Petr Pisar - 2:8.1.119-3 +- Perl 5.28 rebuild + +* Mon Jul 02 2018 Miro Hrončok - 2:8.1.119-2 +- Rebuilt for Python 3.7 + +* Thu Jun 28 2018 Karsten Hopp 8.1.119-1 +- patchlevel 119 + +* Thu Jun 28 2018 Jitka Plesnikova - 2:8.1.117-2 +- Perl 5.28 rebuild + +* Wed Jun 27 2018 Karsten Hopp 8.1.117-1 +- patchlevel 117 + +* Mon Jun 25 2018 Karsten Hopp 8.1.115-1 +- patchlevel 115 + +* Fri Jun 22 2018 Karsten Hopp 8.1.095-1 +- patchlevel 095 + +* Tue Jun 19 2018 Miro Hrončok - 2:8.1.072-2 +- Rebuilt for Python 3.7 + +* Mon Jun 18 2018 Karsten Hopp 8.1.072-1 +- patchlevel 072 + +* Fri Jun 15 2018 Karsten Hopp 8.1.055-1 +- patchlevel 055 + +* Mon Jun 11 2018 Karsten Hopp 8.1.042-1 +- patchlevel 042 + +* Fri Jun 08 2018 Karsten Hopp 8.1.039-1 +- patchlevel 039 + +* Wed Jun 06 2018 Karsten Hopp 8.1.035-1 +- patchlevel 035 + +* Tue Jun 05 2018 Karsten Hopp 8.1.034-1 +- patchlevel 034 + +* Mon May 28 2018 Karsten Hopp 8.1.026-1 +- patchlevel 026 + +* Thu May 24 2018 Karsten Hopp 8.1.022-1 +- patchlevel 022 + +* Wed May 23 2018 Karsten Hopp 8.1.020-1 +- patchlevel 020 + +* Tue May 22 2018 Karsten Hopp 8.1.016-1 +- patchlevel 016 + +* Mon May 21 2018 Karsten Hopp 8.1.010-1 +- patchlevel 010 + +* Fri May 18 2018 Karsten Hopp 8.1.001-1 +- patchlevel 001 + +* Fri May 18 2018 Zdenek Dohnal - 8.0.1848-2 +- vim-update.sh - update vimdir and baseversion(for major rebases) +- vim-update.sh - enhance debugging of vim-update script + +* Thu May 17 2018 Karsten Hopp 8.0.1848-1 +- patchlevel 1848 + +* Tue May 15 2018 Zdenek Dohnal - 8.0.1842-2 +- do not update F26 anymore - EOL in 2 weeks + +* Tue May 15 2018 Karsten Hopp 8.0.1842-1 +- patchlevel 1842 + +* Tue May 15 2018 Zdenek Dohnal - 8.0.1813-2 +- use environment variable in build phase + +* Fri May 11 2018 Karsten Hopp 8.0.1813-1 +- patchlevel 1813 + +* Fri May 11 2018 Zdenek Dohnal - 8.0.1806-2 +- use python2 and python3 in code + +* Thu May 10 2018 Karsten Hopp 8.0.1806-1 +- patchlevel 1806 + +* Wed May 09 2018 Zdenek Dohnal - 8.0.1789-2 +- 1575354 - suggest more packages for embedded interpreters + +* Fri May 04 2018 Karsten Hopp 8.0.1789-1 +- patchlevel 1789 + +* Thu May 03 2018 Karsten Hopp 8.0.1788-1 +- patchlevel 1788 + +* Wed May 02 2018 Karsten Hopp 8.0.1787-1 +- patchlevel 1787 + +* Fri Apr 27 2018 Karsten Hopp 8.0.1766-1 +- patchlevel 1766 + +* Thu Apr 26 2018 Karsten Hopp 8.0.1765-1 +- patchlevel 1765 * Wed Apr 25 2018 Karsten Hopp 8.0.1763-1 - patchlevel 1763 diff --git a/vimrc b/vimrc new file mode 100644 index 00000000..4842faf2 --- /dev/null +++ b/vimrc @@ -0,0 +1,128 @@ +" When started as "evim", evim.vim will already have done these settings. +if v:progname =~? "evim" + finish +endif + +" Use Vim settings, rather than Vi settings (much better!). +" This must be first, because it changes other options as a side effect. +" Avoid side effects when it was already reset. +if &compatible + set nocompatible +endif + +" When the +eval feature is missing, the set command above will be skipped. +" Use a trick to reset compatible only when the +eval feature is missing. +silent! while 0 + set nocompatible +silent! endwhile + +" Allow backspacing over everything in insert mode. +set backspace=indent,eol,start + +"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 +set showcmd " display incomplete commands +set wildmenu " display completion matches in a status line + +set ttimeout " time out for key codes +set ttimeoutlen=100 " wait up to 100ms after Esc for special key + +" Show @@@ in the last line if it is truncated. +set display=truncate + +" Show a few lines of context around the cursor. Note that this makes the +" text scroll if you mouse-click near the start or end of the window. +set scrolloff=5 + +" Do incremental searching when it's possible to timeout. +if has('reltime') + set incsearch +endif + +" Do not recognize octal numbers for Ctrl-A and Ctrl-X, most users find it +" confusing. +set nrformats-=octal + +" 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 + " 1724126 - do not open new file with .spec suffix with spec file template + " apparently there are other file types with .spec suffix, so disable the + " 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") + " Revert with ":syntax off". + syntax on + + " I like highlighting strings inside C comments. + " Revert with ":unlet c_comment_strings". + let c_comment_strings=1 + set hlsearch +endif + +filetype plugin on + +if &term=="xterm" + set t_Co=8 + set t_Sb=[4%dm + set t_Sf=[3%dm +endif + +" Convenient command to see the difference between the current buffer and the +" file it was loaded from, thus the changes you made. +" Only define it when not defined already. +" Revert with: ":delcommand DiffOrig". +if !exists(":DiffOrig") + command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis + \ | wincmd p | diffthis +endif + +if has('langmap') && exists('+langremap') + " Prevent that the langmap option applies to characters that result from a + " mapping. If set (default), this may break plugins (but it's backward + " compatible). + set nolangremap +endif + +" Don't wake up system with blinking cursor: +let &guicursor = &guicursor . ",a:blinkon0" + +" Source a global configuration file if available +if filereadable("/etc/vimrc.local") + source /etc/vimrc.local +endif diff --git a/SOURCES/virc b/virc similarity index 98% rename from SOURCES/virc rename to virc index 808e7d61..6d779826 100644 --- a/SOURCES/virc +++ b/virc @@ -27,9 +27,6 @@ if has("autocmd") augroup END endif - -filetype plugin on - if &term=="xterm" set t_Co=8 set t_Sb=[4%dm