From 23e5ffa2e5de1669f317f5920234f0839962c424 Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Sun, 15 Nov 2015 00:50:31 -0500 Subject: [PATCH] macvim: 7.4.648 -> 7.4.909 (and fix build) --- pkgs/applications/editors/vim/macvim.nix | 23 ++- pkgs/applications/editors/vim/macvim.patch | 165 +++++++++++---------- 2 files changed, 104 insertions(+), 84 deletions(-) diff --git a/pkgs/applications/editors/vim/macvim.nix b/pkgs/applications/editors/vim/macvim.nix index d69c1e27c4a..69e9ab35e96 100644 --- a/pkgs/applications/editors/vim/macvim.nix +++ b/pkgs/applications/editors/vim/macvim.nix @@ -1,15 +1,17 @@ -{ stdenv, fetchurl, ncurses, gettext, - pkgconfig, cscope, python, ruby, tcl, perl, luajit +{ stdenv, fetchFromGitHub, ncurses, gettext +, pkgconfig, cscope, python, ruby, tcl, perl, luajit }: stdenv.mkDerivation rec { name = "macvim-${version}"; - version = "7.4.648"; + version = "7.4.909"; - src = fetchurl { - url = "https://github.com/genoma/macvim/archive/g-snapshot-32.tar.gz"; - sha256 = "1wqg5sy7krgqg3sj00gb34avg90ga2kbvv09bsxv2267j7agi0iq"; + src = fetchFromGitHub { + owner = "macvim-dev"; + repo = "macvim"; + rev = "75aa7774645adb586ab9010803773bd80e659254"; + sha256 = "0k04jimbms6zffh8i8fjm2y51q01m5kga2n4djipd3pxij1qy89y"; }; enableParallelBuilding = true; @@ -54,7 +56,16 @@ stdenv.mkDerivation rec { makeFlags = ''PREFIX=$(out) CPPFLAGS="-Wno-error"''; + # This is unfortunate, but we need to use the same compiler as XCode, + # but XCode doesn't provide a way to configure the compiler. + # + # If you're willing to modify the system files, you can do this: + # http://hamelot.co.uk/programming/add-gcc-compiler-to-xcode-6/ + # + # But we don't have that option. preConfigure = '' + CC=/usr/bin/clang + DEV_DIR=$(/usr/bin/xcode-select -print-path)/Platforms/MacOSX.platform/Developer configureFlagsArray+=( "--with-developer-dir=$DEV_DIR" diff --git a/pkgs/applications/editors/vim/macvim.patch b/pkgs/applications/editors/vim/macvim.patch index a42ebd4cc03..e8f34aba537 100644 --- a/pkgs/applications/editors/vim/macvim.patch +++ b/pkgs/applications/editors/vim/macvim.patch @@ -1,5 +1,5 @@ diff --git a/src/MacVim/MacVim.xcodeproj/project.pbxproj b/src/MacVim/MacVim.xcodeproj/project.pbxproj -index 1c5ff47..677a2cc 100644 +index c384bf7..bf1ce96 100644 --- a/src/MacVim/MacVim.xcodeproj/project.pbxproj +++ b/src/MacVim/MacVim.xcodeproj/project.pbxproj @@ -437,6 +437,8 @@ @@ -27,44 +27,24 @@ index 1c5ff47..677a2cc 100644 PRODUCT_NAME = MacVim; VERSIONING_SYSTEM = "apple-generic"; WRAPPER_EXTENSION = app; - -diff --git a/src/vimtutor b/src/vimtutor -index 70d9ec7..b565a1a 100755 ---- a/src/vimtutor -+++ b/src/vimtutor -@@ -16,7 +16,7 @@ seq="vim vim8 vim75 vim74 vim73 vim72 vim71 vim70 vim7 vim6 vi" - if test "$1" = "-g"; then - # Try to use the GUI version of Vim if possible, it will fall back - # on Vim if Gvim is not installed. -- seq="gvim gvim8 gvim75 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq" -+ seq="mvim gvim gvim8 gvim75 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq" - shift - fi - - +diff --git a/src/Makefile b/src/Makefile +index 84a93f7..e23196d 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -1306,7 +1306,7 @@ MACVIMGUI_SRC = gui.c gui_beval.c MacVim/gui_macvim.m MacVim/MMBackend.m \ + MacVim/MacVim.m + MACVIMGUI_OBJ = objects/gui.o objects/gui_beval.o objects/pty.o \ + objects/gui_macvim.o objects/MMBackend.o objects/MacVim.o +-MACVIMGUI_DEFS = -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe ++MACVIMGUI_DEFS = -DMACOS_X_UNIX -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe + MACVIMGUI_IPATH = + MACVIMGUI_LIBS_DIR = + MACVIMGUI_LIBS1 = -framework Cocoa -framework Carbon diff --git a/src/auto/configure b/src/auto/configure -index bc9f074..9b9125e 100755 +index cdc0819..8e2fd16 100755 --- a/src/auto/configure +++ b/src/auto/configure -@@ -2252,7 +2252,7 @@ rm -f conftest.val - as_fn_set_status $ac_retval - - } # ac_fn_c_compute_int --cat >auto/config.log <<_ACEOF -+cat >config.log <<_ACEOF - This file contains any messages produced by compilers while - running configure, to aid debugging if configure makes a mistake. - -@@ -2262,7 +2262,7 @@ generated by GNU Autoconf 2.69. Invocation command line was - $ $0 $@ - - _ACEOF --exec 5>>auto/config.log -+exec 5>>config.log - { - cat <<_ASUNAME - ## --------- ## -@@ -5377,10 +5377,7 @@ $as_echo "no" >&6; } +@@ -5383,10 +5383,7 @@ $as_echo "no" >&6; } fi if test "X$vi_cv_path_mzscheme_pfx" != "X"; then @@ -76,7 +56,7 @@ index bc9f074..9b9125e 100755 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a" MZSCHEME_CFLAGS="-DMZ_PRECISE_GC" elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libracket3m.a"; then -@@ -5716,23 +5713,6 @@ $as_echo ">>> too old; need Perl version 5.003_01 or later <<<" >&6; } +@@ -5731,23 +5728,6 @@ $as_echo ">>> too old; need Perl version 5.003_01 or later <<<" >&6; } fi if test "x$MACOSX" = "xyes"; then @@ -100,18 +80,21 @@ index bc9f074..9b9125e 100755 PERL_LIBS=`echo "$PERL_LIBS" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//' -e 's/-arch\ x86_64//'` PERL_CFLAGS=`echo "$PERL_CFLAGS" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//' -e 's/-arch\ x86_64//'` fi -@@ -5926,10 +5906,6 @@ __: +@@ -5954,13 +5934,6 @@ __: eof eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`" rm -f -- "${tmp_mkf}" - if test "x$MACOSX" = "xyes" && ${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 +- vi_cv_path_python_plibs="-F${python_PYTHONFRAMEWORKPREFIX} -framework Python" +- fi - else if test "${vi_cv_var_python_version}" = "1.4"; then vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a" else -@@ -5937,7 +5913,6 @@ eof +@@ -5979,7 +5952,6 @@ eof fi vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_BASEMODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}" vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//` @@ -119,7 +102,7 @@ index bc9f074..9b9125e 100755 fi -@@ -6004,13 +5979,6 @@ rm -f core conftest.err conftest.$ac_objext \ +@@ -6055,13 +6027,6 @@ rm -f core conftest.err conftest.$ac_objext \ $as_echo "no" >&6; } fi @@ -133,7 +116,7 @@ index bc9f074..9b9125e 100755 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compile and link flags for Python are sane" >&5 $as_echo_n "checking if compile and link flags for Python are sane... " >&6; } cflags_save=$CFLAGS -@@ -6853,11 +6821,7 @@ $as_echo "$tclver - OK" >&6; }; +@@ -6919,11 +6884,7 @@ $as_echo "$tclver - OK" >&6; }; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of Tcl include" >&5 $as_echo_n "checking for location of Tcl include... " >&6; } @@ -145,7 +128,7 @@ index bc9f074..9b9125e 100755 TCL_INC= for try in $tclinc; do if test -f "$try/tcl.h"; then -@@ -6875,12 +6839,8 @@ $as_echo "" >&6; } +@@ -6941,12 +6902,8 @@ $as_echo "" >&6; } if test -z "$SKIP_TCL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of tclConfig.sh script" >&5 $as_echo_n "checking for location of tclConfig.sh script... " >&6; } @@ -158,7 +141,7 @@ index bc9f074..9b9125e 100755 for try in $tclcnf; do if test -f $try/tclConfig.sh; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $try/tclConfig.sh" >&5 -@@ -7050,10 +7010,6 @@ $as_echo "$rubyhdrdir" >&6; } +@@ -7120,10 +7077,6 @@ $as_echo "$rubyhdrdir" >&6; } if test -f "$rubylibdir/$librubya"; then librubyarg="$librubyarg" RUBY_LIBS="$RUBY_LIBS -L$rubylibdir" @@ -169,41 +152,8 @@ index bc9f074..9b9125e 100755 fi if test "X$librubyarg" != "X"; then -@@ -14061,7 +14017,7 @@ fi - - _ACEOF - cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 --exec 5>>auto/config.log -+exec 5>>config.log - { - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -@@ -14653,7 +14609,7 @@ if test "$no_create" != yes; then - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false -- exec 5>>auto/config.log -+ exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || as_fn_exit 1 - -diff --git a/src/Makefile b/src/Makefile -index 1c4d104..fff2015 100644 ---- a/src/Makefile -+++ b/src/Makefile -@@ -1298,7 +1298,7 @@ MACVIMGUI_SRC = gui.c gui_beval.c MacVim/gui_macvim.m MacVim/MMBackend.m \ - MacVim/MacVim.m - MACVIMGUI_OBJ = objects/gui.o objects/gui_beval.o objects/pty.o \ - objects/gui_macvim.o objects/MMBackend.o objects/MacVim.o --MACVIMGUI_DEFS = -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe -+MACVIMGUI_DEFS = -DMACOS_X_UNIX -DFEAT_GUI_MACVIM -Wall -Wno-unknown-pragmas -pipe - MACVIMGUI_IPATH = - MACVIMGUI_LIBS_DIR = - MACVIMGUI_LIBS1 = -framework Cocoa -framework Carbon - diff --git a/src/if_python.c b/src/if_python.c -index b356bf7..b7bfa78 100644 +index 1d87cac..9d28df0 100644 --- a/src/if_python.c +++ b/src/if_python.c @@ -55,11 +55,7 @@ @@ -219,4 +169,63 @@ index b356bf7..b7bfa78 100644 #if !defined(PY_VERSION_HEX) || PY_VERSION_HEX < 0x02050000 # undef PY_SSIZE_T_CLEAN - MACVIMGUI_LIBS1 = -framework Cocoa -framework Carbon +diff --git a/src/if_ruby.c b/src/if_ruby.c +index 1deb83e..ac23878 100644 +--- a/src/if_ruby.c ++++ b/src/if_ruby.c +@@ -106,17 +106,9 @@ + # define rb_check_type rb_check_type_stub + #endif + +-#ifdef FEAT_GUI_MACVIM +-# include +-#else +-# include +-#endif ++#include + #ifdef RUBY19_OR_LATER +-# ifdef FEAT_GUI_MACVIM +-# include +-# else +-# include +-# endif ++# include + #endif + + #undef off_t /* ruby defines off_t as _int64, Mingw uses long */ +diff --git a/src/vim.h b/src/vim.h +index 4c93908..edc6bd7 100644 +--- a/src/vim.h ++++ b/src/vim.h +@@ -308,18 +308,6 @@ + # define UNUSED + #endif + +-/* if we're compiling in C++ (currently only KVim), the system +- * headers must have the correct prototypes or nothing will build. +- * conversely, our prototypes might clash due to throw() specifiers and +- * cause compilation failures even though the headers are correct. For +- * a concrete example, gcc-3.2 enforces exception specifications, and +- * glibc-2.2.5 has them in their system headers. +- */ +-#if !defined(__cplusplus) && defined(UNIX) \ +- && !defined(MACOS_X) /* MACOS_X doesn't yet support osdef.h */ +-# include "auto/osdef.h" /* bring missing declarations in */ +-#endif +- + #ifdef __EMX__ + # define getcwd _getcwd2 + # define chdir _chdir2 +diff --git a/src/vimtutor b/src/vimtutor +index 70d9ec7..b565a1a 100755 +--- a/src/vimtutor ++++ b/src/vimtutor +@@ -16,7 +16,7 @@ seq="vim vim8 vim75 vim74 vim73 vim72 vim71 vim70 vim7 vim6 vi" + if test "$1" = "-g"; then + # Try to use the GUI version of Vim if possible, it will fall back + # on Vim if Gvim is not installed. +- seq="gvim gvim8 gvim75 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq" ++ seq="mvim gvim gvim8 gvim75 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq" + shift + fi +