diff --git a/recipes/vim/recipe.sh b/recipes/vim/recipe.sh index a6e662ead2016c4de9d32a48c983ef82c1d1b650..c4f9ae03328d0a07f229cdfc21748c3a75e95e76 100644 --- a/recipes/vim/recipe.sh +++ b/recipes/vim/recipe.sh @@ -1,4 +1,4 @@ -VERSION=8.0.586 +VERSION=8.2 TAR=http://ftp.vim.org/vim/unix/vim-$VERSION.tar.bz2 BUILD_DEPENDS=(ncurses) DEPENDS="terminfo" @@ -17,11 +17,12 @@ function recipe_build { sysroot="$(realpath ../sysroot)" export LDFLAGS="-L$sysroot/lib -static" export CPPFLAGS="-I$sysroot/include" - export vim_cv_toupper_broken=set - export vim_cv_terminfo=no + export vim_cv_toupper_broken=no + export vim_cv_tgetent=zero + export vim_cv_terminfo=yes export vim_cv_tty_group=world - export vim_cv_getcwd_broken=yes - export vim_cv_stat_ignores_slash=no + export vim_cv_getcwd_broken=no + export vim_cv_stat_ignores_slash=yes export vim_cv_memmove_handles_overlap=yes ./configure --build=${BUILD} --host=${HOST} --prefix=/ --with-tlib=ncurses make -j"$(nproc)" diff --git a/recipes/vim/vim.patch b/recipes/vim/vim.patch index a88aab2fecd3d6d5644cc798fe426586d69d6f1f..ac027c7fcfd560667ef0e8e8ee94640e3ab92659 100644 --- a/recipes/vim/vim.patch +++ b/recipes/vim/vim.patch @@ -1,212 +1,12 @@ -diff -ru source/src/channel.c source-new/src/channel.c ---- source/src/channel.c 2017-04-07 04:57:11.000000000 -0700 -+++ source-new/src/channel.c 2017-11-04 14:36:18.494841805 -0700 -@@ -852,27 +852,29 @@ - * actually able to connect. - * We detect a failure to connect when either read and write fds - * are set. Use getsockopt() to find out what kind of failure. */ -- if (FD_ISSET(sd, &rfds) || FD_ISSET(sd, &wfds)) -- { -- ret = getsockopt(sd, -- SOL_SOCKET, SO_ERROR, &so_error, &so_error_len); -- if (ret < 0 || (so_error != 0 -- && so_error != EWOULDBLOCK -- && so_error != ECONNREFUSED --# ifdef EINPROGRESS -- && so_error != EINPROGRESS --# endif -- )) -- { -- ch_errorn(channel, -- "channel_open: Connect failed with errno %d", -- so_error); -- PERROR(_(e_cannot_connect)); -- sock_close(sd); -- channel_free(channel); -- return NULL; -- } -- } -+/* -+ * if (FD_ISSET(sd, &rfds) || FD_ISSET(sd, &wfds)) -+ * { -+ * ret = getsockopt(sd, -+ * SOL_SOCKET, SO_ERROR, &so_error, &so_error_len); -+ * if (ret < 0 || (so_error != 0 -+ * && so_error != EWOULDBLOCK -+ * && so_error != ECONNREFUSED -+ *# ifdef EINPROGRESS -+ * && so_error != EINPROGRESS -+ *# endif -+ * )) -+ * { -+ * ch_errorn(channel, -+ * "channel_open: Connect failed with errno %d", -+ * so_error); -+ * PERROR(_(e_cannot_connect)); -+ * sock_close(sd); -+ * channel_free(channel); -+ * return NULL; -+ * } -+ * } -+ */ - - if (FD_ISSET(sd, &wfds) && so_error == 0) - /* Did not detect an error, connection is established. */ -diff -ru source/src/memfile.c source-new/src/memfile.c ---- source/src/memfile.c 2016-11-10 09:24:37.000000000 -0800 -+++ source-new/src/memfile.c 2017-11-04 14:36:18.494841805 -0700 -@@ -596,88 +596,88 @@ - if (hp == NULL || status == FAIL) - mfp->mf_dirty = FALSE; - -- if ((flags & MFS_FLUSH) && *p_sws != NUL) -- { --#if defined(UNIX) --# ifdef HAVE_FSYNC -+/* if ((flags & MFS_FLUSH) && *p_sws != NUL)*/ -+ /*{*/ -+/*#if defined(UNIX)*/ -+/*# ifdef HAVE_FSYNC*/ - /* - * most Unixes have the very useful fsync() function, just what we need. - */ -- if (STRCMP(p_sws, "fsync") == 0) -- { -- if (fsync(mfp->mf_fd)) -- status = FAIL; -- } -- else --# endif -- /* OpenNT is strictly POSIX (Benzinger) */ -- /* Tandem/Himalaya NSK-OSS doesn't have sync() */ -- /* No sync() on Stratus VOS */ --# if defined(__OPENNT) || defined(__TANDEM) || defined(__VOS__) -- fflush(NULL); --# else -- sync(); --# endif --#endif --#ifdef VMS -- if (STRCMP(p_sws, "fsync") == 0) -- { -- if (fsync(mfp->mf_fd)) -- status = FAIL; -- } --#endif --#ifdef SYNC_DUP_CLOSE -+ /*if (STRCMP(p_sws, "fsync") == 0)*/ -+ /*{*/ -+ /*if (fsync(mfp->mf_fd))*/ -+ /*status = FAIL;*/ -+ /*}*/ -+ /*else*/ -+/*# endif*/ -+ /*[> OpenNT is strictly POSIX (Benzinger) <]*/ -+ /*[> Tandem/Himalaya NSK-OSS doesn't have sync() <]*/ -+ /*[> No sync() on Stratus VOS <]*/ -+/*# if defined(__OPENNT) || defined(__TANDEM) || defined(__VOS__)*/ -+ /*fflush(NULL);*/ -+/*# else*/ -+ /*//sync();*/ -+/*# endif*/ -+/*#endif*/ -+/*#ifdef VMS*/ -+ /*if (STRCMP(p_sws, "fsync") == 0)*/ -+ /*{*/ -+ /*if (fsync(mfp->mf_fd))*/ -+ /*status = FAIL;*/ -+ /*}*/ -+/*#endif*/ -+/*#ifdef SYNC_DUP_CLOSE*/ - /* - * Win32 is a bit more work: Duplicate the file handle and close it. - * This should flush the file to disk. - */ -- if ((fd = dup(mfp->mf_fd)) >= 0) -- close(fd); --#endif --#ifdef AMIGA --# if defined(__AROS__) || defined(__amigaos4__) -- if (fsync(mfp->mf_fd) != 0) -- status = FAIL; --# else -+ /*if ((fd = dup(mfp->mf_fd)) >= 0)*/ -+ /*close(fd);*/ -+/*#endif*/ -+/*#ifdef AMIGA*/ -+/*# if defined(__AROS__) || defined(__amigaos4__)*/ -+ /*if (fsync(mfp->mf_fd) != 0)*/ -+ /*status = FAIL;*/ -+/*# else*/ - /* - * Flush() only exists for AmigaDos 2.0. - * For 1.3 it should be done with close() + open(), but then the risk - * is that the open() may fail and lose the file.... - */ --# ifdef FEAT_ARP -- if (dos2) --# endif --# ifdef SASC -- { -- struct UFB *fp = chkufb(mfp->mf_fd); -+/*# ifdef FEAT_ARP*/ -+ /*if (dos2)*/ -+/*# endif*/ -+/*# ifdef SASC*/ -+ /*{*/ -+ /*struct UFB *fp = chkufb(mfp->mf_fd);*/ - -- if (fp != NULL) -- Flush(fp->ufbfh); -- } --# else --# if defined(_DCC) || defined(__GNUC__) || defined(__MORPHOS__) -- { --# if defined(__GNUC__) && !defined(__MORPHOS__) && defined(__libnix__) -+ /*if (fp != NULL)*/ -+ /*Flush(fp->ufbfh);*/ -+ /*}*/ -+/*# else*/ -+/*# if defined(_DCC) || defined(__GNUC__) || defined(__MORPHOS__)*/ -+ /*{*/ -+/*# if defined(__GNUC__) && !defined(__MORPHOS__) && defined(__libnix__)*/ - /* Have function (in libnix at least), - * but ain't got no prototype anywhere. */ -- extern unsigned long fdtofh(int filedescriptor); --# endif --# if !defined(__libnix__) -- fflush(NULL); --# else -- BPTR fh = (BPTR)fdtofh(mfp->mf_fd); -+ /*extern unsigned long fdtofh(int filedescriptor);*/ -+/*# endif*/ -+/*# if !defined(__libnix__)*/ -+ /*fflush(NULL);*/ -+/*# else*/ -+ /*BPTR fh = (BPTR)fdtofh(mfp->mf_fd);*/ - -- if (fh != 0) -- Flush(fh); --# endif -- } --# else /* assume Manx */ -- Flush(_devtab[mfp->mf_fd].fd); --# endif --# endif --# endif --#endif /* AMIGA */ -- } -+ /*if (fh != 0)*/ -+ /*Flush(fh);*/ -+/*# endif*/ -+ /*}*/ -+/*# else [> assume Manx <]*/ -+ /*Flush(_devtab[mfp->mf_fd].fd);*/ -+/*# endif*/ -+/*# endif*/ -+/*# endif*/ -+/*#endif [> AMIGA <]*/ -+ /*}*/ - - got_int |= got_int_save; - +diff -ruwN source/src/memfile.c source-new/src/memfile.c +--- source/src/memfile.c 2016-11-10 10:24:37.000000000 -0700 ++++ source-new/src/memfile.c 2020-01-25 18:19:55.524324451 -0700 +@@ -615,6 +615,8 @@ + /* No sync() on Stratus VOS */ + # if defined(__OPENNT) || defined(__TANDEM) || defined(__VOS__) + fflush(NULL); ++# elif defined(__redox__) ++ fsync(mfp->mf_fd); + # else + sync(); + # endif