Unverified Commit 7ae51e02 authored by Emily's avatar Emily Committed by GitHub
Browse files

macvim: 179 -> 181 (#454837)

parents 3e551828 f20cb87b
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -14740,6 +14740,13 @@
    githubId = 54189319;
    name = "Lilly Cham";
  };
  lilyball = {
    email = "lily@ballards.net";
    github = "lilyball";
    githubId = 714;
    matrix = "@esperlily:matrix.org";
    name = "Lily Ballard";
  };
  limeytexan = {
    email = "limeytexan@gmail.com";
    github = "limeytexan";
+46 −39
Original line number Diff line number Diff line
@@ -7,20 +7,25 @@
  gettext,
  pkg-config,
  cscope,
  ruby,
  ruby_3_4,
  tcl,
  perl,
  luajit,
  darwin,
  libiconv,
  python3,
  enablePython ? false,
  rcodesign,
}:

let
  inherit (lib) optional optionals optionalString;
in

# Try to match MacVim's documented script interface compatibility
let
  #perl = perl540;
  # Ruby 3.3
  #ruby = ruby_3_3;
  # Ruby 3.4
  ruby = ruby_3_4;

  # Building requires a few system tools to be in PATH.
  # Some of these we could patch into the relevant source files (such as xcodebuild and
@@ -35,13 +40,13 @@ in
stdenv.mkDerivation (finalAttrs: {
  pname = "macvim";

  version = "179";
  version = "181";

  src = fetchFromGitHub {
    owner = "macvim-dev";
    repo = "macvim";
    rev = "release-${finalAttrs.version}";
    hash = "sha256-L9LVXyeA09aMtNf+b/Oo+eLpeVEKTD1/oNWCiFn5FbU=";
    hash = "sha256-Wdq+eXSaGs+y+75ZbxoNAcyopRkWRHHRm05T0SHBrow=";
  };

  enableParallelBuilding = true;
@@ -49,7 +54,8 @@ stdenv.mkDerivation (finalAttrs: {
  nativeBuildInputs = [
    pkg-config
    buildSymlinks
  ];
  ]
  ++ optional stdenv.isAarch64 rcodesign;
  buildInputs = [
    gettext
    ncurses
@@ -58,8 +64,8 @@ stdenv.mkDerivation (finalAttrs: {
    ruby
    tcl
    perl
    python3
  ];
  ]
  ++ optional enablePython python3;

  patches = [ ./macvim.patch ];

@@ -71,14 +77,22 @@ stdenv.mkDerivation (finalAttrs: {
    "--enable-multibyte"
    "--enable-nls"
    "--enable-luainterp=dynamic"
  ]
  ++ optionals enablePython [
    "--enable-python3interp=dynamic"
  ]
  ++ [
    "--enable-perlinterp=dynamic"
    "--enable-rubyinterp=dynamic"
    "--enable-tclinterp=yes"
    "--without-local-dir"
    "--with-luajit"
    "--with-lua-prefix=${luajit}"
  ]
  ++ optionals enablePython [
    "--with-python3-command=${python3}/bin/python3"
  ]
  ++ [
    "--with-ruby-command=${ruby}/bin/ruby"
    "--with-tclsh=${tcl}/bin/tclsh"
    "--with-tlib=ncurses"
@@ -92,6 +106,13 @@ stdenv.mkDerivation (finalAttrs: {
  postPatch = ''
    echo "Patching file src/MacVim/MacVim.xcodeproj/project.pbxproj"
    sed -e '/Sparkle\.framework/d' -i src/MacVim/MacVim.xcodeproj/project.pbxproj
  ''
  # Xcode 26.0 sets *_DEPLOYMENT_TARGET env vars for all platforms in shell script build phases.
  # This breaks invocations of clang in those phases, as they target the wrong platform.
  # Note: The shell script build phase in question uses /bin/zsh.
  + ''
    substituteInPlace src/MacVim/MacVim.xcodeproj/project.pbxproj \
      --replace-fail 'make \' $'for x in ''${(k)parameters}; do if [[ $x = *_DEPLOYMENT_TARGET ]]; then [[ $x = MACOSX_DEPLOYMENT_TARGET ]] || unset $x; fi; done\nmake \\'
  '';

  # This is unfortunate, but we need to use the same compiler as Xcode, but Xcode doesn't provide a
@@ -101,7 +122,7 @@ stdenv.mkDerivation (finalAttrs: {
    let
      # ideally we'd recurse, but we don't need that right now
      inputs = [ ncurses ] ++ perl.propagatedBuildInputs;
      ldflags = map (drv: "-L${lib.getLib drv}/lib") inputs;
      ldflags = map (drv: "-L${lib.getLib drv}/lib") inputs ++ [ "-headerpad_max_install_names" ];
      cppflags = map (drv: "-isystem ${lib.getDev drv}/include") inputs;
    in
    ''
@@ -131,7 +152,7 @@ stdenv.mkDerivation (finalAttrs: {
    # as the scheme seems to have the wrong default.
    + ''
      configureFlagsArray+=(
        XCODEFLAGS="-scheme MacVim -derivedDataPath $NIX_BUILD_TOP/derivedData"
        XCODEFLAGS="-scheme MacVim -derivedDataPath $NIX_BUILD_TOP/derivedData LDFLAGS='\$(inherited) -headerpad_max_install_names' ENABLE_CODE_COVERAGE=NO"
        --with-xcodecfg="Release"
      )
    '';
@@ -149,9 +170,9 @@ stdenv.mkDerivation (finalAttrs: {
  # Xcode project or pass it as a flag to xcodebuild as well.
  postConfigure = ''
    substituteInPlace src/auto/config.mk \
      --replace " -L${stdenv.cc.libc}/lib" "" \
      --replace " -L${darwin.libunwind}/lib" "" \
      --replace " -L${libiconv}/lib" ""
      --replace-warn " -L${stdenv.cc.libc}/lib" "" \
      --replace-warn " -L${darwin.libunwind}/lib" "" \
      --replace-warn " -L${libiconv}/lib" ""

    # All the libraries we stripped have -osx- in their name as of this time.
    # Assert now that this pattern no longer appears in config.mk.
@@ -191,12 +212,21 @@ stdenv.mkDerivation (finalAttrs: {
    libperl=$(dirname $(find ${perl} -name "libperl.dylib"))
    install_name_tool -add_rpath ${luajit}/lib $exe
    install_name_tool -add_rpath ${tcl}/lib $exe
  ''
  + optionalString enablePython ''
    install_name_tool -add_rpath ${python3}/lib $exe
  ''
  + ''
    install_name_tool -add_rpath $libperl $exe
    install_name_tool -add_rpath ${ruby}/lib $exe

    # Remove manpages from tools we aren't providing
    find $out/Applications/MacVim.app/Contents/man -name evim.1 -delete
    find $out/Applications/MacVim.app/Contents/man \( -name evim.1 -or -name eview.1 \) -delete
    rm $out/Applications/MacVim.app/Contents/man/man1/mvim.1
  ''
  + optionalString stdenv.isAarch64 ''
    # Resign the binary and set the linker-signed flag.
    rcodesign sign --code-signature-flags linker-signed $exe
  '';

  # We rely on the user's Xcode install to build. It may be located in an arbitrary place, and
@@ -212,33 +242,10 @@ stdenv.mkDerivation (finalAttrs: {
    description = "Vim - the text editor - for macOS";
    homepage = "https://macvim.org/";
    license = licenses.vim;
    maintainers = [ ];
    maintainers = with maintainers; [ lilyball ];
    platforms = platforms.darwin;
    hydraPlatforms = [ ]; # hydra can't build this as long as we rely on Xcode and sandboxProfile
    # Needs updating to a newer MacVim for Python and Ruby version support
    broken = true;
    knownVulnerabilities = [
      "CVE-2023-46246"
      "CVE-2023-48231"
      "CVE-2023-48232"
      "CVE-2023-48233"
      "CVE-2023-48234"
      "CVE-2023-48235"
      "CVE-2023-48236"
      "CVE-2023-48237"
      "CVE-2023-48706"
      "CVE-2023-5344"
      "CVE-2023-5441"
      "CVE-2023-5535"
      "CVE-2024-22667"
      "CVE-2024-41957"
      "CVE-2024-41965"
      "CVE-2024-43374"
      "CVE-2024-47814"
      "CVE-2025-1215"
      "CVE-2025-22134"
      "CVE-2025-24014"
      "CVE-2025-26603"
      "CVE-2025-29768"
      "CVE-2025-53905"
      "CVE-2025-53906"
+0 −13
Original line number Diff line number Diff line
@@ -199,16 +199,3 @@ index 6e33142..6185f45 100644
 #ifdef AMIGA
 # include "os_amiga.h"
 #endif
diff --git a/src/vimtutor b/src/vimtutor
index 3b154f2..e89f260 100755
--- a/src/vimtutor
+++ b/src/vimtutor
@@ -16,7 +16,7 @@ seq="vim vim81 vim80 vim8 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 gvim81 gvim80 gvim8 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
+    seq="mvim gvim gvim81 gvim80 gvim8 gvim74 gvim73 gvim72 gvim71 gvim70 gvim7 gvim6 $seq"
     shift
 fi