Accepting request 361631 from editors

- Updated to revision 1421, fixes the following problems
  * When calling ch_close() the close callback is invoked,
    even though the docs say it isn't.
  * Using "u_char" intead of "char_u", which doesn't work everywhere.
  * Tests slowed down because of the "not a terminal" warning.
  * May free a channel when a callback may need to be invoked. 

- Disable sniff support, its unmaintained. 

- Updated to revision 1410, fixes the following problems
  * The close-cb option is not implemented yet.
  * Perl eval doesn't work properly on 64-bit big-endian machine.
  * Having 'autochdir' set during startup and using diff mode doesn't work.
  * GTK 3 is not supported.
  * Completion menu flickers.
  * Leaking memory in cs_print_tags_priv().
  * json_encode() does not handle NaN and inf properly.
  * Leaking memory in cscope interface. 

- Updated to revision 1397, fixes the following problems
  * When the Job exit callback is invoked, the job may be freed too
    soon.
  * Starting a job hangs in the GUI.
  * Can't sort inside a sort function.

- Drop vim-7.1.314-CVE-2009-0316-debian.patch, Python 2.7 has
  the appropriate fix.

- Updated to revision 1385, fixes the following problems
  * Job and channel options parsing is scattered.

OBS-URL: https://build.opensuse.org/request/show/361631
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/vim?expand=0&rev=168
This commit is contained in:
Dominique Leuenberger 2016-03-01 08:33:13 +00:00 committed by Git OBS Bridge
commit 4be550a6dd
6 changed files with 116 additions and 156 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1e903b22d3a6154d26a9991d9d1196a41be86c500369c9fe5a2dd80800e60916
size 12595792

3
v7.4.1421.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:04bcbf0f31cdcfff20f8e267d616626cf96eb53058df2ba438949c97b4041221
size 12588556

View File

@ -1,53 +0,0 @@
Index: vim74/src/if_python.c
===================================================================
--- vim74.orig/src/if_python.c
+++ vim74/src/if_python.c
@@ -806,6 +806,7 @@ py_memsave(void *p, size_t len)
*/
static int PythonMod_Init(void);
+static void Python_FixPath(void);
/******************************************************
@@ -933,6 +934,11 @@ Python_Init(void)
* the current directory in sys.path. */
PyRun_SimpleString("import sys; sys.path = filter(lambda x: x != '/must>not&exist', sys.path)");
+ /* Remove empty elements from sys.path since that causes the PWD to be
+ * used for imports, possibly masking system libraries and/or running
+ * arbitrary code. */
+ Python_FixPath();
+
/* lock is created and acquired in PyEval_InitThreads() and thread
* state is created in Py_Initialize()
* there _PyGILState_NoteThreadState() also sets gilcounter to 1
@@ -1417,6 +1423,28 @@ PythonMod_Init(void)
return 0;
}
+ static void
+Python_FixPath(void)
+{
+ PyObject *sys = PyImport_ImportModule("sys");
+ PyObject *sysdict = PyModule_GetDict(sys);
+ PyObject *path = PyDict_GetItemString(sysdict, "path");
+ PyObject *newpath = PyList_New(0);
+ if (newpath != NULL) {
+ Py_INCREF(newpath);
+ PyInt n = PyList_Size(path);
+ PyInt i;
+ for (i = 0; i < n; i++) {
+ PyObject *item = PyList_GetItem(path, i);
+ if (strlen(PyString_AsString(item)) != 0) {
+ PyList_Append(newpath, PyList_GetItem(path, i));
+ }
+ }
+ PyDict_SetItemString(sysdict, "path", newpath);
+ Py_DECREF(newpath);
+ }
+}
+
/*************************************************************************
* 4. Utility functions for handling the interface between Vim and Python.
*/

View File

@ -1,93 +0,0 @@
Index: vim-7.4.843/src/diff.c
===================================================================
--- vim-7.4.843.orig/src/diff.c
+++ vim-7.4.843/src/diff.c
@@ -42,7 +42,7 @@ static void diff_check_unchanged __ARGS(
static int diff_check_sanity __ARGS((tabpage_T *tp, diff_T *dp));
static void diff_redraw __ARGS((int dofold));
static int diff_write __ARGS((buf_T *buf, char_u *fname));
-static void diff_file __ARGS((char_u *tmp_orig, char_u *tmp_new, char_u *tmp_diff));
+static int diff_file __ARGS((char_u *tmp_orig, char_u *tmp_new, char_u *tmp_diff));
static int diff_equal_entry __ARGS((diff_T *dp, int idx1, int idx2));
static int diff_cmp __ARGS((char_u *s1, char_u *s2));
#ifdef FEAT_FOLDING
@@ -667,6 +667,7 @@ ex_diffupdate(eap)
char_u *tmp_diff;
FILE *fd;
int ok;
+ int retval = 0;
int io_error = FALSE;
/* Delete all diffblocks. */
@@ -719,7 +720,7 @@ ex_diffupdate(eap)
if (fwrite("line2\n", (size_t)6, (size_t)1, fd) != 1)
io_error = TRUE;
fclose(fd);
- diff_file(tmp_orig, tmp_new, tmp_diff);
+ retval = diff_file(tmp_orig, tmp_new, tmp_diff);
fd = mch_fopen((char *)tmp_diff, "r");
if (fd == NULL)
io_error = TRUE;
@@ -765,6 +766,12 @@ ex_diffupdate(eap)
}
#endif
+ /* diff returned an error */
+ if (retval == 2) {
+ ok = FALSE;
+ break;
+ }
+
/* If we checked if "-a" works already, break here. */
if (diff_a_works != MAYBE)
break;
@@ -808,10 +815,13 @@ ex_diffupdate(eap)
continue; /* skip buffer that isn't loaded */
if (diff_write(buf, tmp_new) == FAIL)
continue;
- diff_file(tmp_orig, tmp_new, tmp_diff);
-
- /* Read the diff output and add each entry to the diff list. */
- diff_read(idx_orig, idx_new, tmp_diff);
+ retval = diff_file(tmp_orig, tmp_new, tmp_diff);
+ if(retval == 2)
+ EMSG(_("E97: Cannot create diffs"));
+ else {
+ /* Read the diff output and add each entry to the diff list. */
+ diff_read(idx_orig, idx_new, tmp_diff);
+ }
mch_remove(tmp_diff);
mch_remove(tmp_new);
}
@@ -831,13 +841,14 @@ theend:
/*
* Make a diff between files "tmp_orig" and "tmp_new", results in "tmp_diff".
*/
- static void
+ static int
diff_file(tmp_orig, tmp_new, tmp_diff)
char_u *tmp_orig;
char_u *tmp_new;
char_u *tmp_diff;
{
char_u *cmd;
+ int retval=0;
size_t len;
#ifdef FEAT_EVAL
@@ -873,13 +884,14 @@ diff_file(tmp_orig, tmp_new, tmp_diff)
#ifdef FEAT_AUTOCMD
block_autocmds(); /* Avoid ShellCmdPost stuff */
#endif
- (void)call_shell(cmd, SHELL_FILTER|SHELL_SILENT|SHELL_DOOUT);
+ retval = call_shell(cmd, SHELL_FILTER|SHELL_SILENT|SHELL_DOOUT);
#ifdef FEAT_AUTOCMD
unblock_autocmds();
#endif
vim_free(cmd);
}
}
+ return retval;
}
/*

View File

@ -1,3 +1,113 @@
-------------------------------------------------------------------
Fri Feb 26 08:21:14 UTC 2016 - idonmez@suse.com
- Updated to revision 1421, fixes the following problems
* When calling ch_close() the close callback is invoked,
even though the docs say it isn't.
* Using "u_char" intead of "char_u", which doesn't work everywhere.
* Tests slowed down because of the "not a terminal" warning.
* May free a channel when a callback may need to be invoked.
-------------------------------------------------------------------
Wed Feb 24 19:56:00 UTC 2016 - idonmez@suse.com
- Disable sniff support, its unmaintained.
-------------------------------------------------------------------
Wed Feb 24 09:06:22 UTC 2016 - idonmez@suse.com
- Updated to revision 1410, fixes the following problems
* The close-cb option is not implemented yet.
* Perl eval doesn't work properly on 64-bit big-endian machine.
* Having 'autochdir' set during startup and using diff mode doesn't work.
* GTK 3 is not supported.
* Completion menu flickers.
* Leaking memory in cs_print_tags_priv().
* json_encode() does not handle NaN and inf properly.
* Leaking memory in cscope interface.
-------------------------------------------------------------------
Tue Feb 23 08:25:46 UTC 2016 - idonmez@suse.com
- Updated to revision 1397, fixes the following problems
* When the Job exit callback is invoked, the job may be freed too
soon.
* Starting a job hangs in the GUI.
* Can't sort inside a sort function.
-------------------------------------------------------------------
Mon Feb 22 13:17:45 UTC 2016 - idonmez@suse.com
- Drop vim-7.1.314-CVE-2009-0316-debian.patch, Python 2.7 has
the appropriate fix.
-------------------------------------------------------------------
Mon Feb 22 09:53:40 UTC 2016 - idonmez@suse.com
- Updated to revision 1385, fixes the following problems
* Job and channel options parsing is scattered.
* Channel test ch_sendexpr() times out.
* Can't remove a callback with ch_setoptions().
* Channels don't have a queue for stderr.
* X11 GUI callbacks don't specify the part of the channel.
* Channel read implementation is incomplete.
* Calling a Vim function over a channel requires turning the
arguments into a string.
* ch_setoptions() cannot set all options.
* Can't change job settings after it started.
* The job exit callback is not implemented.
* Can't get the job of a channel.
* It is not easy to use a set of plugins and their dependencies.
-------------------------------------------------------------------
Fri Feb 19 08:32:41 UTC 2016 - idonmez@suse.com
- Updated to revision 1353, fixes the following problems
* Compiler warnings in build with -O2.
* When there is any error Vim will use a non-zero exit code.
* When the test server fails to start Vim hangs.
* When the port isn't opened yet when ch_open() is called it may
fail instead of waiting for the specified time.
* The test script lists all functions before executing them.
-------------------------------------------------------------------
Thu Feb 18 11:12:03 UTC 2016 - idonmez@suse.com
- Updated to revision 1345, fixes the following problems
* Crash when using channel that failed to open.
* Crash when closing the channel in a callback.
* Channel test fails on non-darwin builds.
* Channel NL mode is not supported yet.
* It's difficult to add more arguments to ch_sendraw() and ch_sendexpr().
* Can't compile with +job but without +channel.
-------------------------------------------------------------------
Tue Feb 16 09:57:19 UTC 2016 - idonmez@suse.com
- Updated to revision 1328, fixes the following problems
* Cursor changes column with up motion when the matchparen
plugin saves and restores the cursor position. (Martin Kunev)
* "\%1l^#.*" does not match on a line starting with "#".
* Channel with pipes doesn't work in GUI.
* Crash when unletting the variable that holds the channel
in a callback function.
* Can't compile with +job but without +channel.
-------------------------------------------------------------------
Mon Feb 8 13:22:33 UTC 2016 - idonmez@suse.com
- Updated to revision 1294, fixes the following problems
* copy() and deepcopy() fail with special variables.
* Encoding {'key':} to JSON doesn't give an error.
* assert_false(v:false) reports an error.
* When jsonencode() fails it still returns something.
* jsonencode() is not producing strict JSON.
* Crash when evaluating the pattern of ":catch" causes an error.
* The job feature isn't available on MS-Windows.
* ch_open() with a timeout doesn't work correctly.
* ch_sendexpr() does not use JS encoding.
- Remove vim-7.3-diff_check.patch
-------------------------------------------------------------------
Fri Jan 29 08:45:41 UTC 2016 - idonmez@suse.com

View File

@ -17,7 +17,7 @@
%define pkg_version 7.4
%define patchlevel 1194
%define patchlevel 1421
%define VIM_SUBDIR vim74
%define site_runtimepath /usr/share/vim/site
%define make make VIMRCLOC=/etc VIMRUNTIMEDIR=/usr/share/vim/current MAKE="make -e" %{?_smp_mflags}
@ -88,11 +88,9 @@ Patch10: %{name}-7.3-name_vimrc.patch
Patch11: %{name}-7.3-mktemp_tutor.patch
Patch15: %{name}-7.4-filetype_apparmor.patch
Patch18: %{name}-7.3-filetype_spec.patch
Patch19: %{name}-7.3-diff_check.patch
Patch21: %{name}-7.3-filetype_changes.patch
Patch22: %{name}-7.4-filetype_mine.patch
Patch100: vim-7.1.314-CVE-2009-0316-debian.patch
Patch101: vim73-no-static-libpython.patch
Patch100: vim73-no-static-libpython.patch
%description
Vim (Vi IMproved) is an almost compatible version of the UNIX editor
@ -164,11 +162,9 @@ want less features, you might want to install vim instead.
cp %{SOURCE23} runtime/syntax/apparmor.vim
%patch15 -p1
%patch18 -p1
%patch19 -p1
%patch21 -p1
%patch22 -p1
%patch100 -p1
%patch101 -p1
cp %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE8} %{SOURCE10} .
%build
@ -181,7 +177,6 @@ export COMMON_OPTIONS="\
--with-view-name=view \
--enable-cscope \
--enable-multibyte \
--enable-sniff \
--with-features=huge \
--with-compiledby='http://www.opensuse.org/' \
%if 0%{?suse_version} > 1210
@ -472,6 +467,7 @@ make test
%files -n gvim
%defattr(-,root,root,-)
%doc runtime/doc/gui_x11.txt
%ghost %config(missingok) %{_sysconfdir}/gvimrc
%{_bindir}/egview
%{_bindir}/egvim