From e013a28f265f4d9d3dc0880b61e8d19d987a5a0d Mon Sep 17 00:00:00 2001 From: Adam Weinberger Date: Sat, 1 Oct 2016 05:36:41 +0000 Subject: [PATCH] Update vim to 8.0.0019, add GTK3 support, and take maintainership. Many, many thanks to Sunpoet for all the time he has spent working on and improving this port! Many smaller changes in this update as well: - Languange support was moved into its own OPTIONS group for clarity (a visual change only; it does not affect the knobs themselves) - Add LICENSE - Reorganize and format the Makefile for clarity - Remove a few pieces of cruft - Add many missing dependencies for most of the GUI options - Use better (more robust) build constructs where possible PR: 212771 Approved by: maintainer timeout --- editors/vim-lite/Makefile | 2 +- editors/vim/Makefile | 136 +++++++++++++++++++++++--------------- editors/vim/distinfo | 6 +- 3 files changed, 87 insertions(+), 57 deletions(-) diff --git a/editors/vim-lite/Makefile b/editors/vim-lite/Makefile index b97f3cdfa34b..bd5c13567a7a 100644 --- a/editors/vim-lite/Makefile +++ b/editors/vim-lite/Makefile @@ -1,7 +1,7 @@ # Created by: David O'Brien (obrien@NUXI.com) # $FreeBSD$ -MAINTAINER= sunpoet@FreeBSD.org +MAINTAINER= adamw@FreeBSD.org COMMENT= Improved version of the vi editor (lite package) LITE= yes diff --git a/editors/vim/Makefile b/editors/vim/Makefile index 77818e344f4a..dd9ec057e681 100644 --- a/editors/vim/Makefile +++ b/editors/vim/Makefile @@ -2,53 +2,61 @@ # $FreeBSD$ PORTNAME= vim -PORTVERSION= 7.4.2367 +PORTVERSION= 8.0.0019 DISTVERSIONPREFIX= v CATEGORIES?= editors -MAINTAINER?= sunpoet@FreeBSD.org +MAINTAINER?= adamw@FreeBSD.org COMMENT?= Improved version of the vi editor -OPTIONS_DEFINE= CSCOPE DEFAULT_VIMRC EXUBERANT_CTAGS LUA NLS PERL PYTHON RUBY TCL XTERM_SAVE -OPTIONS_SINGLE= UI -OPTIONS_SINGLE_UI= ATHENA CONSOLE GNOME GTK2 MOTIF X11 -OPTIONS_SUB= yes +LICENSE= VIM +LICENSE_NAME= VIM License +LICENSE_FILE= ${WRKSRC}/runtime/doc/uganda.txt +LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept + +OPTIONS_DEFINE= CSCOPE DEFAULT_VIMRC EXUBERANT_CTAGS NLS XTERM_SAVE +OPTIONS_SINGLE= UI +OPTIONS_SINGLE_UI= ATHENA CONSOLE GNOME GTK2 GTK3 MOTIF X11 +OPTIONS_GROUP= LANGBIND +OPTIONS_GROUP_LANGBIND= LUA PERL PYTHON RUBY TCL +OPTIONS_SUB= yes + +DEFAULT_VIMRC_DESC= Install bundled vimrc as default setting +EXUBERANT_CTAGS_DESC= Use exctags instead of ctags +XTERM_SAVE_DESC= Restore xterm screen after exit + +UI_DESC= User interface ATHENA_DESC= Athena GUI toolkit CSCOPE_DESC= cscope support CONSOLE_DESC= Console/terminal mode -DEFAULT_VIMRC_DESC= Install bundled vimrc as default setting -EXUBERANT_CTAGS_DESC= Use exctags instead of ctags -UI_DESC= User interface -XTERM_SAVE_DESC= Restore xterm screen after exit -PORTSCOUT= site:https://github.com/vim/vim/releases +LANGBIND_DESC= Optional language bindings ALL_TARGET= # empty -MAKE_ARGS+= CC="${CC}" CONF_ARGS="--prefix=${PREFIX} ${CSCOPE_ARG}" STRIP="${STRIP_CMD}" CONF_OPT_MULTIBYTE=--enable-multibyte CONF_TERM_LIB=--with-tlib=termlib +MAKE_ARGS+= CC="${CC}" CONF_ARGS="--prefix=${PREFIX} ${CSCOPE_ARG}" STRIP="${STRIP_CMD}" MAKE_ARGS+= VIMRUNTIMEDIR=${PREFIX}/share/vim/${VIM_VER} VIMRCLOC=${ETCDIR} +MAKE_ARGS+= CONF_OPT_MULTIBYTE=--enable-multibyte CONF_TERM_LIB=--with-tlib=termlib REINPLACE_ARGS= -i '' USES= cpe iconv ncurses pkgconfig shebangfix -WANT_GNOME= yes PLIST_SUB= VIM_VER=${VIM_VER} PORTDATA= ${VIM_VER} - VIM_VER= ${PORTNAME}${PORTVERSION:R:S|.||g} - -USE_GITHUB= yes - -CPE_VERSION= ${PORTVERSION:R} - SLAVEDIRS= editors/vim-lite +USE_GITHUB= yes SHEBANG_FILES= runtime/tools/efm_perl.pl +CPE_VERSION= ${PORTVERSION:R} +PORTSCOUT= site:https://github.com/vim/vim/releases .if defined(LITE) PKGNAMESUFFIX+= -lite CONFLICTS_INSTALL= vim-[0-9]* OPTIONS_DEFAULT=DEFAULT_VIMRC -OPTIONS_EXCLUDE=ATHENA CSCOPE EXUBERANT_CTAGS GNOME GTK2 LUA MOTIF NLS PERL PYTHON RUBY TCL X11 XTERM_SAVE OPTIONS_SLAVE= CONSOLE +OPTIONS_EXCLUDE:= ${OPTIONS_DEFINE:NDEFAULT_VIMRC} \ + ${OPTIONS_SINGLE_UI:NCONSOLE} \ + ${OPTIONS_GROUP_LANGBIND} MAKE_ARGS+= CONF_OPT_GUI="--enable-gui=no --without-x" \ CONF_OPT_LUA=--disable-luainterp \ CONF_OPT_PERL=--disable-perlinterp \ @@ -65,39 +73,61 @@ MAKE_ARGS+= CONF_OPT_FEAT=--with-features=huge \ PLIST_SUB+= NON_LITE="" .endif -ATHENA_MAKE_ARGS= CONF_OPT_GUI=--enable-gui=athena -ATHENA_PLIST_SUB= GUI="" -ATHENA_USE= XORG=xaw -CONSOLE_MAKE_ARGS= CONF_OPT_GUI="--enable-gui=no --without-x" -CONSOLE_PLIST_SUB= GUI="@comment " +# GENERAL OPTIONS CSCOPE_MAKE_ARGS= CONF_OPT_CSCOPE=--enable-cscope CSCOPE_RUN_DEPENDS= cscope:devel/cscope + EXUBERANT_CTAGS_RUN_DEPENDS= exctags:devel/ctags -GNOME_MAKE_ARGS= CONF_OPT_GUI=--enable-gui=gnome2 X_LIBS="$$(X_LIBS) -lX11 -lXpm -lXt" -GNOME_PLIST_SUB= GUI="" -GNOME_USE= GNOME=libgnomeui XORG=glproto,xpm,xt -GTK2_MAKE_ARGS= CONF_OPT_GUI=--enable-gui=gtk2 X_LIBS="$$(X_LIBS) -lX11 -lXpm -lXt" -GTK2_PLIST_SUB= GUI="" -GTK2_USE= GNOME=gtk20 XORG=xpm,xt -LUA_MAKE_ARGS= CONF_OPT_LUA=--enable-luainterp=dynamic CONF_OPT_LUA_PREFIX=--with-lua-prefix=${LOCALBASE} -LUA_USES= lua -MOTIF_MAKE_ARGS= CONF_OPT_GUI='--enable-gui=motif --with-motif-lib="${MOTIFLIB}"' MOTIFHOME=${LOCALBASE} -MOTIF_PLIST_SUB= GUI="" -MOTIF_USES= motif + NLS_MAKE_ARGS= CONF_OPT_NLS=--enable-nls NLS_MAKE_ARGS_OFF= CONF_OPT_NLS=--disable-nls NLS_USES= gettext -PERL_MAKE_ARGS= CONF_OPT_PERL=--enable-perlinterp -PERL_USES= perl5 -PYTHON_USES= python -RUBY_MAKE_ARGS= CONF_OPT_RUBY=--enable-rubyinterp -RUBY_USE= RUBY=yes -TCL_MAKE_ARGS= CONF_OPT_TCL="--enable-tclinterp --with-tclsh=tclsh${TCL_VER}" -TCL_USES= tcl:85+ + +# UI +ATHENA_MAKE_ARGS= CONF_OPT_GUI=--enable-gui=athena +ATHENA_PLIST_SUB= GUI="" +ATHENA_USE= XORG=ice,sm,x11,xaw,xmu,xpm,xt + +CONSOLE_MAKE_ARGS= CONF_OPT_GUI="--enable-gui=no --without-x" +CONSOLE_PLIST_SUB= GUI="@comment " + +GNOME_MAKE_ARGS= CONF_OPT_GUI=--enable-gui=gnome2 X_LIBS="$$(X_LIBS) -lX11 -lXpm -lXt" +GNOME_PLIST_SUB= GUI="" +GNOME_IMPLIES= NLS +GNOME_USE= GNOME=gdkpixbuf2,libgnomeui XORG=ice,sm,glproto,x11,xpm,xt + +GTK2_MAKE_ARGS= CONF_OPT_GUI=--enable-gui=gtk2 X_LIBS="$$(X_LIBS) -lX11 -lXpm -lXt" +GTK2_PLIST_SUB= GUI="" +GTK2_USE= GNOME=gdkpixbuf2,gtk20 XORG=ice,sm,x11,xpm,xt + +GTK3_MAKE_ARGS= CONF_OPT_GUI=--enable-gui=gtk3 X_LIBS="$$(X_LIBS) -lX11 -lXpm -lXt" +GTK3_PLIST_SUB= GUI="" +GTK3_USE= GNOME=cairo,gdkpixbuf2,gtk30 XORG=ice,sm,x11,xpm,xt + +MOTIF_MAKE_ARGS= CONF_OPT_GUI='--enable-gui=motif --with-motif-lib="${MOTIFLIB}"' MOTIFHOME=${LOCALBASE} +MOTIF_PLIST_SUB= GUI="" +MOTIF_USES= motif +MOTIF_USE= XORG=ice,sm,x11,xmu,xt + X11_MAKE_ARGS= CONF_OPT_GUI="--enable-gui=no --with-x" X_LIBS="$$(X_LIBS) -lX11 -lXt" X11_PLIST_SUB= GUI="@comment " X11_USE= XORG=x11,xt +# LANGUAGE BINDINGS +LUA_MAKE_ARGS= CONF_OPT_LUA=--enable-luainterp=dynamic CONF_OPT_LUA_PREFIX=--with-lua-prefix=${LOCALBASE} +LUA_USES= lua + +PERL_MAKE_ARGS= CONF_OPT_PERL=--enable-perlinterp +PERL_USES= perl5 + +PYTHON_USES= python + +RUBY_MAKE_ARGS= CONF_OPT_RUBY=--enable-rubyinterp +RUBY_USE= RUBY=yes + +TCL_MAKE_ARGS= CONF_OPT_TCL="--enable-tclinterp --with-tclsh=tclsh${TCL_VER}" +TCL_USES= tcl:85+ + .include .if ${PORT_OPTIONS:MPYTHON} @@ -123,7 +153,7 @@ post-patch-EXUBERANT_CTAGS-on: pre-configure: @${CP} ${WRKSRC}/src/config.mk.dist ${WRKSRC}/src/auto/config.mk - @(cd ${WRKSRC}/src/ && ${MAKE_CMD} distclean) + @${DO_MAKE_BUILD} -C ${WRKSRC}/src distclean @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \ -e 's|\$$gtk_config_prefix/bin/gtk-config|\$${GTK_CONFIG}|g' \ -e 's|\$$gtk_config_exec_prefix/bin/gtk-config|\$${GTK_CONFIG}|g' \ @@ -133,31 +163,31 @@ pre-configure-XTERM_SAVE-on: @${REINPLACE_CMD} -e '/FEAT_XTERM_SAVE/ s|.*|#define FEAT_XTERM_SAVE|' ${WRKSRC}/src/feature.h post-configure: - @(cd ${WRKSRC}/src/ && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} ${MAKE_ARGS} scratch config) + @${DO_MAKE_BUILD} -C ${WRKSRC}/src scratch config @${REINPLACE_CMD} -e 's|#define HAVE_SYSINFO 1|/* #undef HAVE_SYSINFO */|' ${WRKSRC}/src/auto/config.h post-install: ${MKDIR} ${STAGEDIR}${DATADIR}/${VIM_VER}/lang/ .for file in evim rview rvim vimdiff - ${TEST} -e ${STAGEDIR}${PREFIX}/bin/${file} || ${LN} -fs vim ${STAGEDIR}${PREFIX}/bin/${file} + ${LN} -fs vim ${STAGEDIR}${PREFIX}/bin/${file} .endfor -.if !${PORT_OPTIONS:MCONSOLE} && !${PORT_OPTIONS:MX11} +.if empty(PORT_OPTIONS:MCONSOLE) && empty(PORT_OPTIONS:MX11) .for file in eview gview gvim gvimdiff rgview rgvim - ${TEST} -e ${STAGEDIR}${PREFIX}/bin/${file} || ${LN} -fs vim ${STAGEDIR}${PREFIX}/bin/${file} + ${LN} -fs vim ${STAGEDIR}${PREFIX}/bin/${file} .endfor .endif post-install-DEFAULT_VIMRC-on: - ${MKDIR} ${STAGEDIR}${ETCDIR} + @${MKDIR} ${STAGEDIR}${ETCDIR} ${INSTALL_DATA} ${FILESDIR}/vimrc ${STAGEDIR}${ETCDIR}/gvimrc.sample ${INSTALL_DATA} ${FILESDIR}/vimrc ${STAGEDIR}${ETCDIR}/vimrc.sample post-install-NLS-off: - ${MKDIR} ${STAGEDIR}${DATADIR}/${VIM_VER}/keymap/ - ${INSTALL_DATA} ${WRKSRC}/runtime/keymap/* ${STAGEDIR}${DATADIR}/${VIM_VER}/keymap/ - ${INSTALL_DATA} ${FILESDIR}/vietnamese_viscii.vim ${STAGEDIR}${DATADIR}/${VIM_VER}/keymap/ + @${MKDIR} ${STAGEDIR}${DATADIR}/${VIM_VER}/keymap + ${INSTALL_DATA} ${WRKSRC}/runtime/keymap/* ${STAGEDIR}${DATADIR}/${VIM_VER}/keymap + ${INSTALL_DATA} ${FILESDIR}/vietnamese_viscii.vim ${STAGEDIR}${DATADIR}/${VIM_VER}/keymap post-install-NLS-on: - ${INSTALL_DATA} ${FILESDIR}/vietnamese_viscii.vim ${STAGEDIR}${DATADIR}/${VIM_VER}/keymap/ + ${INSTALL_DATA} ${FILESDIR}/vietnamese_viscii.vim ${STAGEDIR}${DATADIR}/${VIM_VER}/keymap .include diff --git a/editors/vim/distinfo b/editors/vim/distinfo index cfc85dcdf64f..c475749ee0ca 100644 --- a/editors/vim/distinfo +++ b/editors/vim/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1474128105 -SHA256 (vim-vim-v7.4.2367_GH0.tar.gz) = a9ae4031ccd73cc60e771e8bf9b3c8b7f10f63a67efce7f61cd694cd8d7cda5c -SIZE (vim-vim-v7.4.2367_GH0.tar.gz) = 12916710 +TIMESTAMP = 1475291592 +SHA256 (vim-vim-v8.0.0019_GH0.tar.gz) = f13a76504b2f976228edd7169d592870a6af45614d82ae2a9c312fc17ab3d4ad +SIZE (vim-vim-v8.0.0019_GH0.tar.gz) = 12919003