summaryrefslogtreecommitdiff
path: root/app-editors/vim-core
diff options
context:
space:
mode:
Diffstat (limited to 'app-editors/vim-core')
-rw-r--r--app-editors/vim-core/files/vimrc-r8209
-rw-r--r--app-editors/vim-core/vim-core-9.1.1652-r2.ebuild234
-rw-r--r--app-editors/vim-core/vim-core-9999.ebuild2
3 files changed, 444 insertions, 1 deletions
diff --git a/app-editors/vim-core/files/vimrc-r8 b/app-editors/vim-core/files/vimrc-r8
new file mode 100644
index 000000000000..3ad6ba14289e
--- /dev/null
+++ b/app-editors/vim-core/files/vimrc-r8
@@ -0,0 +1,209 @@
+scriptencoding utf-8
+" ^^ Please leave the above line at the start of the file.
+
+" Default configuration file for Vim
+
+" Written by Aron Griffis <agriffis@gentoo.org>
+" Modified by Ryan Phillips <rphillips@gentoo.org>
+" Modified some more by Ciaran McCreesh <ciaranm@gentoo.org>
+" Added Redhat's vimrc info by Seemant Kulleen <seemant@gentoo.org>
+
+" You can override any of these settings on a global basis via the
+" "/etc/vim/vimrc.local" file, and on a per-user basis via "~/.vimrc". You may
+" need to create these.
+
+" {{{ General settings
+" The following are some sensible defaults for Vim for most users.
+" We attempt to change as little as possible from Vim's defaults,
+" deviating only where it makes sense
+set nocompatible " Use Vim defaults (much better!)
+set bs=2 " Allow backspacing over everything in insert mode
+set ai " Always set auto-indenting on
+set history=50 " keep 50 lines of command history
+set ruler " Show the cursor position all the time
+
+set viminfo='20,\"500 " Keep a .viminfo file.
+
+" Don't use Ex mode, use Q for formatting
+map Q gq
+
+" When doing tab completion, give the following files lower priority. You may
+" wish to set 'wildignore' to completely ignore files, and 'wildmenu' to enable
+" enhanced tab completion. These can be done in the user vimrc file.
+set suffixes+=.info,.aux,.log,.dvi,.bbl,.out,.o,.lo
+
+" When displaying line numbers, don't use an annoyingly wide number column. This
+" doesn't enable line numbers -- :set number will do that. The value given is a
+" minimum width to use for the number column, not a fixed size.
+if v:version >= 700
+ set numberwidth=3
+endif
+" }}}
+
+" {{{ Modeline settings
+" We don't allow modelines by default. See bug #14088 and bug #73715.
+" If you're not concerned about these, you can enable them on a per-user
+" basis by adding "set modeline" to your ~/.vimrc file.
+set nomodeline
+" }}}
+
+" {{{ Locale settings
+" Try to come up with some nice sane GUI fonts. Also try to set a sensible
+" value for fileencodings based upon locale. These can all be overridden in
+" the user vimrc file.
+if v:lang =~? "^ko"
+ set fileencodings=euc-kr
+ set guifontset=-*-*-medium-r-normal--16-*-*-*-*-*-*-*
+elseif v:lang =~? "^ja_JP"
+ set fileencodings=euc-jp
+ set guifontset=-misc-fixed-medium-r-normal--14-*-*-*-*-*-*-*
+elseif v:lang =~? "^zh_TW"
+ set fileencodings=big5
+ set guifontset=-sony-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-1,-taipei-fixed-medium-r-normal--16-150-75-75-c-160-big5-0
+elseif v:lang =~? "^zh_CN"
+ set fileencodings=gb2312
+ set guifontset=*-r-*
+endif
+
+" If we have a BOM, always honour that rather than trying to guess.
+if &fileencodings !~? "ucs-bom"
+ set fileencodings^=ucs-bom
+endif
+
+" Always check for UTF-8 when trying to determine encodings.
+if &fileencodings !~? "utf-8"
+ " If we have to add this, the default encoding is not Unicode.
+ " We use this fact later to revert to the default encoding in plaintext/empty
+ " files.
+ let g:added_fenc_utf8 = 1
+ set fileencodings+=utf-8
+endif
+
+" Make sure we have a sane fallback for encoding detection
+if &fileencodings !~? "default"
+ set fileencodings+=default
+endif
+" }}}
+
+" {{{ Syntax highlighting settings
+" Switch syntax highlighting on, when the terminal has colors
+" Also switch on highlighting the last used search pattern.
+if &t_Co > 2 || has("gui_running")
+ syntax on
+ set hlsearch
+endif
+" }}}
+
+" {{{ Terminal fixes
+if &term ==? "xterm"
+ set t_Sb=^[4%dm
+ set t_Sf=^[3%dm
+ set ttymouse=xterm2
+endif
+
+if &term ==? "gnome" && has("eval")
+ " Set useful keys that vim doesn't discover via termcap but are in the
+ " builtin xterm termcap. See bug #122562. We use exec to avoid having to
+ " include raw escapes in the file.
+ exec "set <C-Left>=\eO5D"
+ exec "set <C-Right>=\eO5C"
+endif
+" }}}
+
+" {{{ Filetype plugin settings
+" Enable plugin-provided filetype settings, but only if the ftplugin
+" directory exists (which it won't on livecds, for example).
+if isdirectory(expand("$VIMRUNTIME/ftplugin"))
+ filetype plugin on
+
+ " Uncomment the next line (or copy to your ~/.vimrc) for plugin-provided
+ " indent settings. Some people don't like these, so we won't turn them on by
+ " default.
+ " filetype indent on
+endif
+" }}}
+
+" {{{ Fix &shell, see bug #101665.
+if "" == &shell
+ if executable("@GENTOO_PORTAGE_EPREFIX@/bin/bash")
+ set shell=@GENTOO_PORTAGE_EPREFIX@/bin/bash
+ elseif executable("@GENTOO_PORTAGE_EPREFIX@/bin/sh")
+ set shell=@GENTOO_PORTAGE_EPREFIX@/bin/sh
+ endif
+endif
+"}}}
+
+" {{{ Our default /bin/sh is bash, not ksh, so syntax highlighting for .sh
+" files should default to bash. See :help sh-syntax and bug #101819.
+if has("eval")
+ let is_bash=1
+endif
+" }}}
+
+" {{{ Autocommands
+if has("autocmd")
+
+augroup gentoo
+ au!
+
+ " Gentoo-specific settings for ebuilds. These are the federally-mandated
+ " required tab settings. See the following for more information:
+ " http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml
+ " Note that the rules below are very minimal and don't cover everything.
+ " Better to emerge app-vim/gentoo-syntax, which provides full syntax,
+ " filetype and indent settings for all things Gentoo.
+ au BufRead,BufNewFile *.e{build,class} let is_bash=1|setfiletype sh
+ au BufRead,BufNewFile *.e{build,class} set ts=4 sw=4 noexpandtab
+
+ " When editing a file, always jump to the last cursor position
+ autocmd BufReadPost *
+ \ if ! exists("g:leave_my_cursor_position_alone") |
+ \ if line("'\"") > 0 && line ("'\"") <= line("$") |
+ \ exe "normal! g'\"" |
+ \ endif |
+ \ endif
+
+ " When editing a crontab file, set backupcopy to yes rather than auto. See
+ " :help crontab and bug #53437.
+ autocmd FileType crontab set backupcopy=yes
+
+ " If we previously detected that the default encoding is not UTF-8
+ " (g:added_fenc_utf8), assume that a file with only ASCII characters (or no
+ " characters at all) isn't a Unicode file, but is in the default encoding.
+ " Except of course if a byte-order mark is in effect.
+ autocmd BufReadPost *
+ \ if exists("g:added_fenc_utf8") && &fileencoding == "utf-8" &&
+ \ ! &bomb && search('[\x80-\xFF]','nw') == 0 && &modifiable |
+ \ set fileencoding= |
+ \ endif
+
+augroup END
+
+endif " has("autocmd")
+" }}}
+
+" We don't want VIM to load their own built-in defaults, preferring ours here
+" instead. This option cannot apply to minimal builds, so it is guarded by a
+" test that's guaranteed to fail for those, owing to the lack of +eval.
+if 1
+ let g:skip_defaults_vim = 1
+endif
+
+" Enable Omni completion when opening a file only if a specific plugin does
+" not already exist for that filetype. This allows Omni completion
+" (Ctrl-x/Ctrl-o) to work with any programming language if and only if a syntax
+" file exists for the said language.
+if exists("+omnifunc")
+ autocmd Filetype *
+ \ if &omnifunc == "" |
+ \ setlocal omnifunc=syntaxcomplete#Complete |
+ \ endif
+endif
+
+" {{{ vimrc.local
+if filereadable("@GENTOO_PORTAGE_EPREFIX@/etc/vim/vimrc.local")
+ source @GENTOO_PORTAGE_EPREFIX@/etc/vim/vimrc.local
+endif
+" }}}
+
+" vim: set fenc=utf-8 tw=80 sw=2 sts=2 et foldmethod=marker :
diff --git a/app-editors/vim-core/vim-core-9.1.1652-r2.ebuild b/app-editors/vim-core/vim-core-9.1.1652-r2.ebuild
new file mode 100644
index 000000000000..45a2f23708d2
--- /dev/null
+++ b/app-editors/vim-core/vim-core-9.1.1652-r2.ebuild
@@ -0,0 +1,234 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Please bump with app-editors/vim and app-editors/gvim
+
+VIM_VERSION="9.1"
+VIM_PATCHES_VERSION="9.1.1432"
+inherit desktop flag-o-matic prefix toolchain-funcs vim-doc xdg-utils
+
+if [[ ${PV} == 9999* ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/vim/vim.git"
+ EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${PV}
+else
+ SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> vim-${PV}.tar.gz
+ https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2"
+ # https://github.com/douglarek/gentoo-vim-patches/releases/download/vim-${VIM_PATCHES_VERSION}-patches/vim-${VIM_PATCHES_VERSION}-patches.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+fi
+
+DESCRIPTION="vim and gvim shared files"
+HOMEPAGE="https://www.vim.org https://github.com/vim/vim"
+S="${WORKDIR}/vim-${PV}"
+
+LICENSE="vim"
+SLOT="0"
+IUSE="nls acl minimal"
+
+RDEPEND="dev-util/xxd"
+# ncurses is only needed by ./configure, so no subslot operator required
+DEPEND=">=sys-libs/ncurses-5.2-r2:0"
+BDEPEND="dev-build/autoconf"
+
+if [[ ${PV} != 9999* ]]; then
+ # Gentoo patches to fix runtime issues, cross-compile errors, etc
+ PATCHES=(
+ "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches"
+ )
+fi
+
+# unbundle xxd
+PATCHES+=( "${FILESDIR}/vim-core-9.1.1652-r1-unbundle-xxd.patch" )
+
+# platform-specific checks (bug #898406):
+# - acl() -- Solaris
+# - statacl() -- AIX
+QA_CONFIG_IMPL_DECL_SKIP=(
+ 'acl'
+ 'statacl'
+)
+
+pkg_setup() {
+ # people with broken alphabets run into trouble. bug #82186.
+ unset LANG LC_ALL
+ export LC_COLLATE="C"
+}
+
+src_prepare() {
+ default
+
+ # Fixup a script to use awk instead of nawk
+ sed -i \
+ -e '1s|.*|#!'"${EPREFIX}"'/usr/bin/awk -f|' \
+ "${S}"/runtime/tools/mve.awk || die "sed failed"
+
+ # See bug #77841. We remove this file after the tarball extraction.
+ rm -v "${S}"/runtime/tools/vimspell.sh || die "rm failed"
+
+ # Read vimrc and gvimrc from /etc/vim
+ echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' >> "${S}"/src/feature.h || die
+ echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h || die
+
+ # Use exuberant ctags which installs as /usr/bin/exuberant-ctags.
+ # Hopefully this pattern won't break for a while at least.
+ # This fixes bug #29398 (27 Sep 2003 agriffis)
+ sed -i 's/\<ctags\("\| [-*.]\)/exuberant-&/g' \
+ "${S}"/runtime/doc/syntax.txt \
+ "${S}"/runtime/doc/tagsrch.txt \
+ "${S}"/runtime/doc/usr_29.txt \
+ "${S}"/runtime/menu.vim \
+ "${S}"/src/configure.ac || die 'sed failed'
+
+ # gcc on sparc32 has this, uhm, interesting problem with detecting EOF
+ # correctly. To avoid some really entertaining error messages about stuff
+ # which isn't even in the source file being invalid, we'll do some trickery
+ # to make the error never occur. bug 66162 (02 October 2004 ciaranm)
+ find "${S}" -name '*.c' | while read c; do
+ echo >> "$c" || die "echo failed"
+ done
+
+ # Try to avoid sandbox problems. Bug #114475.
+ if [[ -d "${S}"/src/po ]]; then
+ sed -i -e \
+ '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \
+ "${S}"/src/po/Makefile || die "sed failed"
+ fi
+
+ cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed"
+
+ # Fix bug #76331: -O3 causes problems, use -O2 instead. We'll do this for
+ # everyone since previous flag filtering bugs have turned out to affect
+ # multiple archs...
+ replace-flags -O3 -O2
+
+ # Fix bug #18245: Prevent "make" from the following chain:
+ # (1) Notice configure.ac is newer than auto/configure
+ # (2) Rebuild auto/configure
+ # (3) Notice auto/configure is newer than auto/config.mk
+ # (4) Run ./configure (with wrong args) to remake auto/config.mk
+ sed -i 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed"
+
+ # Remove src/auto/configure file.
+ rm -v src/auto/configure || die "rm configure failed"
+
+ # bug 908961
+ if use elibc_musl ; then
+ sed -i -e '/ja.sjis/d' src/po/Make_all.mak || die
+ fi
+}
+
+src_configure() {
+ emake -j1 -C src autoconf
+
+ # This should fix a sandbox violation (see bug 24447). The hvc
+ # things are for ppc64, see bug 86433.
+ for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do
+ if [[ -e "${file}" ]]; then
+ addwrite ${file}
+ fi
+ done
+
+ # Let Portage do the stripping. Some people like that.
+ export ac_cv_prog_STRIP="$(type -P true ) faking strip"
+
+ local myconf=(
+ --with-modified-by="Gentoo-${PVR} (RIP Bram)"
+ --enable-gui=no
+ --without-x
+ --disable-darwin
+ --disable-perlinterp
+ --disable-pythoninterp
+ --disable-rubyinterp
+ --disable-gpm
+ --disable-selinux
+ $(use_enable nls)
+ $(use_enable acl)
+ )
+
+ # Keep Gentoo Prefix env contained within the EPREFIX
+ use prefix && myconf+=( --without-local-dir )
+
+ if tc-is-cross-compiler ; then
+ export vim_cv_getcwd_broken=no \
+ vim_cv_memmove_handles_overlap=yes \
+ vim_cv_stat_ignores_slash=yes \
+ vim_cv_terminfo=yes \
+ vim_cv_toupper_broken=no
+ fi
+
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ emake -j1 -C src auto/osdef.h objects
+}
+
+src_test() { :; }
+
+src_install() {
+ local vimfiles=/usr/share/vim/vim${VIM_VERSION/.}
+
+ dodir /usr/{bin,share/{man/man1,vim}}
+ emake -C src \
+ installruntime \
+ installmanlinks \
+ installmacros \
+ installtutor \
+ installtutorbin \
+ installtools \
+ install-languages \
+ DESTDIR="${D}" \
+ BINDIR="${EPREFIX}"/usr/bin \
+ MANDIR="${EPREFIX}"/usr/share/man \
+ DATADIR="${EPREFIX}"/usr/share
+
+ keepdir ${vimfiles}/keymap
+
+ # default vimrc is installed by vim-core since it applies to
+ # both vim and gvim
+ insinto /etc/vim/
+ newins "${FILESDIR}"/vimrc-r8 vimrc
+ eprefixify "${ED}"/etc/vim/vimrc
+
+ if use minimal; then
+ # To save space, install only a subset of the files.
+ # Helps minimalize the livecd, bug 65144.
+ rm -rv "${ED}${vimfiles}"/{compiler,doc,ftplugin,indent} || die
+ rm -rv "${ED}${vimfiles}"/{macros,print,tools,tutor} || die
+ rm -v "${ED}"/usr/bin/vimtutor || die
+
+ for f in "${ED}${vimfiles}"/colors/*.vim; do
+ if [[ ${f} != */@(default).vim ]] ; then
+ printf '%s\0' "${f}"
+ fi
+ done | xargs -0 rm -f || die
+
+ for f in "${ED}${vimfiles}"/syntax/*.vim; do
+ if [[ ${f} != */@(conf|crontab|fstab|inittab|resolv|sshdconfig|syntax|nosyntax|synload).vim ]] ; then
+ printf '%s\0' "${f}"
+ fi
+ done | xargs -0 rm -f || die
+ fi
+
+ # install gvim icon since both vim/gvim desktop files reference it
+ doicon -s scalable "${FILESDIR}"/gvim.svg
+}
+
+pkg_postinst() {
+ # update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update icon cache
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ # Update documentation tags (from vim-doc.eclass)
+ update_vim_helptags
+
+ # update icon cache
+ xdg_icon_cache_update
+}
diff --git a/app-editors/vim-core/vim-core-9999.ebuild b/app-editors/vim-core/vim-core-9999.ebuild
index 8762bfea7cb1..0df0a4048b36 100644
--- a/app-editors/vim-core/vim-core-9999.ebuild
+++ b/app-editors/vim-core/vim-core-9999.ebuild
@@ -189,7 +189,7 @@ src_install() {
# default vimrc is installed by vim-core since it applies to
# both vim and gvim
insinto /etc/vim/
- newins "${FILESDIR}"/vimrc-r7 vimrc
+ newins "${FILESDIR}"/vimrc-r8 vimrc
eprefixify "${ED}"/etc/vim/vimrc
if use minimal; then