macvim: 179 -> 181 (#454837)
This commit is contained in:
@@ -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";
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user