diff options
| author | root <root@alpha.trunkmasters.com> | 2026-09-19 19:27:39 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-09-19 19:27:39 -0500 |
| commit | 47516b9667518dacb1efd6d257f7b3e6a481ec93 (patch) | |
| tree | 15968af203a3ff5970f912ab816b33e3a8648196 /app-editors | |
| parent | 1e827c97be50f4e8e4da3697da898689b2bde9d5 (diff) | |
| download | baldeagleos-repo-47516b9667518dacb1efd6d257f7b3e6a481ec93.tar.gz baldeagleos-repo-47516b9667518dacb1efd6d257f7b3e6a481ec93.tar.xz baldeagleos-repo-47516b9667518dacb1efd6d257f7b3e6a481ec93.zip | |
Adding metadata
Diffstat (limited to 'app-editors')
30 files changed, 3503 insertions, 3 deletions
diff --git a/app-editors/bluefish/bluefish-2.4.2.ebuild b/app-editors/bluefish/bluefish-2.4.2.ebuild index 9bc40c9fce8a..e2f6cb27f6c9 100644 --- a/app-editors/bluefish/bluefish-2.4.2.ebuild +++ b/app-editors/bluefish/bluefish-2.4.2.ebuild @@ -12,7 +12,7 @@ SRC_URI="https://www.bennewitz.com/bluefish/stable/source/${P}.tar.bz2" LICENSE="GPL-3+" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86" +KEYWORDS="~alpha amd64 ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86" IUSE="gucharmap nls python spell" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" diff --git a/app-editors/gvim-classic/Manifest b/app-editors/gvim-classic/Manifest new file mode 100644 index 000000000000..09279f010393 --- /dev/null +++ b/app-editors/gvim-classic/Manifest @@ -0,0 +1,2 @@ +DIST gvim-classic-8.3.0.tar.gz 14767832 BLAKE2B 309305bf99997e4c8f6d309de118f78da9e88de2e2909d4216f8991526fc430f7b0eedf6f7d5d91fdeb3dfe80935b2196880ab9438a8b9496d675d37f9386b11 SHA512 83417abe7989728aa4ed9da26b2779578cbad676f501953eaf04d4b99ea5615e8cf1df129c18c3e745aba7ed065d37c59015bc6461a5e5d4a5ea8a9c0364d7ca +DIST gvim-classic-8.3.0.tar.gz.sig 119 BLAKE2B f54d8a514146cca189966ecedf707590a0f76ff7ef2cd2bb6729c70dd68bb3e4644cb53ca28a7b7efa237466755d23acb2011bcd088f9c9e24d77d782a4c3a2f SHA512 947285dd9359c7399c358176c327f45b43c2bc58a3bec7a1d2ec838a7d070551f4f510ce92523110b6c590ef3ff0115683ebe7144ef4b6b9bb6dde72d8e11084 diff --git a/app-editors/gvim-classic/files/gvim-completion b/app-editors/gvim-classic/files/gvim-completion new file mode 100644 index 000000000000..6488a82bc76e --- /dev/null +++ b/app-editors/gvim-classic/files/gvim-completion @@ -0,0 +1,40 @@ +# Author: Ciaran McCreesh <ciaranm@gentoo.org> +# +# completion for gvim + +_gvim() +{ + local cur prev cmd args + + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + prev=${COMP_WORDS[COMP_CWORD-1]} + cmd=${COMP_WORDS[0]} + + if [[ "${prev}" == "--servername" ]] ; then + local servers + servers=$(gvim --serverlist ) + COMPREPLY=( $( compgen -W "${servers}" -- $cur ) ) + + elif [[ "${prev}" == -[uUi] ]] ; then + COMPREPLY=( $( compgen -W "NONE" ) \ + $( compgen -f -X "!*vim*" -- "$cur" ) ) + + elif [[ "${cur}" == -* ]] ; then + args='-t -q -c -S --cmd -A -b -C -d -D -e -E -f --nofork \ + -F -g -h -H -i -L -l -m -M -N -n -nb -o -R -r -s \ + -T -u -U -V -v -w -W -x -X -y -Y -Z --echo-wid \ + --help --literal --noplugin --version' + args="${args} --echo-wid --remote --remote-expr \ + --remote-send --remote-silent --remote-wait \ + --remote-wait-silent --serverlist \ + --servername --socketid" + COMPREPLY=( $( compgen -W "${args}" -- $cur ) ) + else + _filedir + fi +} + +complete -o filenames -F _gvim gvim evim eview gview gvimdiff rgvim rgview + +# vim: set ft=sh sw=4 et sts=4 : diff --git a/app-editors/gvim-classic/files/gvimrc-r1 b/app-editors/gvim-classic/files/gvimrc-r1 new file mode 100644 index 000000000000..27f398c1011c --- /dev/null +++ b/app-editors/gvim-classic/files/gvimrc-r1 @@ -0,0 +1,28 @@ +scriptencoding utf-8 +" ^^ Please leave the above line at the start of the file. + +" Default configuration file for gvim +" +" Written by Aron Griffis <agriffis@gentoo.org> +" +" This file is read AFTER normal Vim initializations, like reading your .vimrc +" file (and the default /usr/share/vim/vimrc). So there's no reason to +" duplicate settings from vimrc. Red Hat has had this wrong for years, to the +" great annoyance of users. + +" Pre-GUI settings +set columns=80 lines=30 " don't inherit geometry from parent term +set mousemodel=popup " right mouse button pops up a menu in the GUI + +" Use a sufficiently wide window automatically when started as "gvimdiff" +if (&foldmethod == 'diff') + set columns=165 +endif + +" For bug 33327, add a mapping which allows shift-insert to function +" as expected in insert and command-line modes +map! <s-insert> <c-r>* + +if filereadable("@GENTOO_PORTAGE_EPREFIX@/etc/vim/gvimrc.local") + source @GENTOO_PORTAGE_EPREFIX@/etc/vim/gvimrc.local +endif diff --git a/app-editors/gvim-classic/gvim-classic-8.3.0.ebuild b/app-editors/gvim-classic/gvim-classic-8.3.0.ebuild new file mode 100644 index 000000000000..485fc0c1f49e --- /dev/null +++ b/app-editors/gvim-classic/gvim-classic-8.3.0.ebuild @@ -0,0 +1,352 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Please bump with app-editors/vim-classic-core and app-editors/vim-classic + +VIM_VERSION="8.3" + +LUA_COMPAT=( lua5-{1,3,4} luajit ) +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="threads(+)" +USE_RUBY="ruby32 ruby33" +GENTOO_DEPEND_ON_PERL=no + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/ddevault.asc +inherit bash-completion-r1 flag-o-matic lua-single perl-module prefix python-single-r1 \ + ruby-single toolchain-funcs verify-sig vim-doc xdg-utils + +MYWORKDIR="${WORKDIR}/vim-classic-v${PV}" +if [[ ${PV} == 9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://git.sr.ht/~sircmpwn/vim-classic" + EGIT_CHECKOUT_DIR="${MYWORKDIR}" +else + SRC_URI=" + https://git.sr.ht/~sircmpwn/vim-classic/archive/v${PV}.tar.gz -> ${P}.tar.gz + verify-sig? ( + https://git.sr.ht/~sircmpwn/vim-classic/refs/download/v${PV}/vim-classic-v${PV}.tar.gz.sig + -> ${P}.tar.gz.sig + ) + " + KEYWORDS="~amd64" + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-ddevault-20250219 ) " +fi + +DESCRIPTION="GUI version of the Vim text editor" +HOMEPAGE="https://vim-classic.org/" +S="${MYWORKDIR}" + +LICENSE="vim" +SLOT="0" +IUSE="acl cscope debug lua minimal motif netbeans nls perl python racket ruby selinux session sound tcl ${GENTOO_PERL_USESTRING}" +REQUIRED_USE=" + lua? ( ${LUA_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) +" + +RDEPEND=" + !app-editors/gvim + ~app-editors/vim-classic-core-${PV} + >=app-eselect/eselect-vi-1.1 + >=sys-libs/ncurses-5.2-r2:0= + x11-libs/libICE + x11-libs/libSM + x11-libs/libXext + x11-libs/libXt + acl? ( kernel_linux? ( sys-apps/acl ) ) + motif? ( >=x11-libs/motif-2.3:0 ) + !motif? ( + x11-libs/gtk+:3[X] + x11-libs/libXft + ) + cscope? ( dev-util/cscope ) + lua? ( + ${LUA_DEPS} + $(lua_gen_impl_dep 'deprecated' lua5-1) + ) + nls? ( virtual/libintl ) + perl? ( + ${GENTOO_PERL_DEPSTRING} + dev-lang/perl:= + ) + python? ( ${PYTHON_DEPS} ) + racket? ( dev-scheme/racket ) + ruby? ( ${RUBY_DEPS} ) + selinux? ( sys-libs/libselinux ) + session? ( x11-libs/libSM ) + sound? ( media-libs/libcanberra ) + tcl? ( dev-lang/tcl:0= ) +" +DEPEND=" + ${RDEPEND} + x11-base/xorg-proto +" +# configure runs the Lua interpreter +BDEPEND+=" + dev-build/autoconf + virtual/pkgconfig + lua? ( ${LUA_DEPS} ) + nls? ( sys-devel/gettext ) +" +PDEPEND="!minimal? ( app-vim/gentoo-syntax )" + +# various failures (bugs #630042 and #682320) +RESTRICT="test" + +# platform-specific checks (bug #898450 #898452): +# - 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" + + use lua && lua-single_pkg_setup + use python && python-single-r1_pkg_setup +} + +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 "mve.awk sed failed" + + # Read vimrc and gvimrc from /etc/vim + echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \ + >> "${S}"/src/feature.h || die "echo failed" + echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \ + >> "${S}"/src/feature.h || die "echo failed" + + # 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 -e \ + '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 + fi + + cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed" + + # 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 -e \ + 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" + rm -v src/auto/configure || die "rm failed" + + # --with-features=huge forces on cscope even if we --disable it. We need + # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm) + if ! use cscope; then + sed -i -e \ + '/# define FEAT_CSCOPE/d' src/feature.h || die "couldn't disable cscope" + fi + + # 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. + local file + for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do + if [[ -e ${file} ]]; then + addwrite ${file} + fi + done + + use debug && append-flags "-DDEBUG" + + local myconf=( + --with-features=huge + --disable-gpm + --with-gnome=no + $(use_enable sound canberra) + $(use_enable acl) + $(use_enable cscope) + $(use_enable netbeans) + $(use_enable nls) + $(use_enable perl perlinterp) + $(use_enable python python3interp) + $(use_with python python3-command "${PYTHON}") + $(use_enable racket mzschemeinterp) + $(use_enable ruby rubyinterp) + $(use_enable selinux) + $(use_enable session xsmp) + $(use_enable tcl tclinterp) + ) + + if use lua; then + # -DLUA_COMPAT_OPENLIB=1 is required to enable the + # deprecated (in 5.1) luaL_openlib API (#874690) + use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1 + + myconf+=( + --enable-luainterp + $(use_with lua_single_target_luajit luajit) + --with-lua-prefix="${EPREFIX}/usr" + ) + fi + + # Default is gtk unless motif is enabled + echo ; echo + if use motif; then + einfo "Building gvim with the MOTIF GUI" + myconf+=( --enable-gui=motif ) + else + myconf+=( --enable-gtk3-check ) + einfo "Building gvim with the gtk+-3 GUI" + myconf+=( --enable-gui=gtk3 ) + fi + echo ; echo + + # let package manager strip binaries + export ac_cv_prog_STRIP="$(type -P true ) faking strip" + + # keep 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 \ + --with-modified-by="Gentoo-${PVR} (RIP Bram)" \ + --with-vim-name=gvim \ + --with-x \ + "${myconf[@]}" +} + +src_compile() { + # The following allows emake to be used + emake -j1 -C src auto/osdef.h objects + + emake +} + +src_test() { + einfo + einfo "Starting vim tests. Several error messages will be shown" + einfo "while the tests run. This is normal behaviour and does not" + einfo "indicate a fault." + einfo + ewarn "If the tests fail, your terminal may be left in a strange" + ewarn "state. Usually, running 'reset' will fix this." + einfo + + # Don't let vim talk to X + unset DISPLAY + + # Make gvim not try to connect to X. See :help gui-x11-start in vim for how + # this evil trickery works. + ln -s "${S}"/src/gvim "${S}"/src/testvim || die + + # Make sure our VIMPROG is used. + sed -i -e 's:\.\./vim:../testvim:' src/testdir/test49.vim || die + + # Don't do additional GUI tests. + emake -j1 VIMPROG=../testvim -C src/testdir nongui +} + +# Call eselect vi update with --if-unset +# to respect user's choice (bug #187449) +eselect_vi_update() { + ebegin "Calling eselect vi update" + eselect vi update --if-unset + eend $? +} + +src_install() { + local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} + + dobin src/gvim + dosym gvim /usr/bin/gvimdiff + dosym gvim /usr/bin/evim + dosym gvim /usr/bin/eview + dosym gvim /usr/bin/gview + dosym gvim /usr/bin/rgvim + dosym gvim /usr/bin/rgview + + emake -C src DESTDIR="${D}" DATADIR="${EPREFIX}"/usr/share install-icons + + dodir /usr/share/man/man1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gvim.1 || die "echo failed" + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gview.1 || die "echo failed" + echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/gvimdiff.1 || \ + die "echo failed" + + insinto /etc/vim + newins "${FILESDIR}"/gvimrc-r1 gvimrc + eprefixify "${ED}"/etc/vim/gvimrc + + # bash completion script, bug #79018. + newbashcomp "${FILESDIR}"/gvim-completion ${PN} + + # don't install vim desktop file + rm -v "${ED}"/usr/share/applications/vim.desktop || die "failed to remove vim.desktop" +} + +pkg_postinst() { + # update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # update fdo mime stuff, bug #78394 + xdg_desktop_database_update + + # update icon cache + xdg_icon_cache_update + + # call eselect vi update + eselect_vi_update +} + +pkg_postrm() { + # update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # update fdo mime stuff, bug #78394 + xdg_desktop_database_update + + # update icon cache + xdg_icon_cache_update + + # call eselect vi update + eselect_vi_update +} diff --git a/app-editors/gvim-classic/gvim-classic-9999.ebuild b/app-editors/gvim-classic/gvim-classic-9999.ebuild new file mode 100644 index 000000000000..485fc0c1f49e --- /dev/null +++ b/app-editors/gvim-classic/gvim-classic-9999.ebuild @@ -0,0 +1,352 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Please bump with app-editors/vim-classic-core and app-editors/vim-classic + +VIM_VERSION="8.3" + +LUA_COMPAT=( lua5-{1,3,4} luajit ) +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="threads(+)" +USE_RUBY="ruby32 ruby33" +GENTOO_DEPEND_ON_PERL=no + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/ddevault.asc +inherit bash-completion-r1 flag-o-matic lua-single perl-module prefix python-single-r1 \ + ruby-single toolchain-funcs verify-sig vim-doc xdg-utils + +MYWORKDIR="${WORKDIR}/vim-classic-v${PV}" +if [[ ${PV} == 9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://git.sr.ht/~sircmpwn/vim-classic" + EGIT_CHECKOUT_DIR="${MYWORKDIR}" +else + SRC_URI=" + https://git.sr.ht/~sircmpwn/vim-classic/archive/v${PV}.tar.gz -> ${P}.tar.gz + verify-sig? ( + https://git.sr.ht/~sircmpwn/vim-classic/refs/download/v${PV}/vim-classic-v${PV}.tar.gz.sig + -> ${P}.tar.gz.sig + ) + " + KEYWORDS="~amd64" + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-ddevault-20250219 ) " +fi + +DESCRIPTION="GUI version of the Vim text editor" +HOMEPAGE="https://vim-classic.org/" +S="${MYWORKDIR}" + +LICENSE="vim" +SLOT="0" +IUSE="acl cscope debug lua minimal motif netbeans nls perl python racket ruby selinux session sound tcl ${GENTOO_PERL_USESTRING}" +REQUIRED_USE=" + lua? ( ${LUA_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) +" + +RDEPEND=" + !app-editors/gvim + ~app-editors/vim-classic-core-${PV} + >=app-eselect/eselect-vi-1.1 + >=sys-libs/ncurses-5.2-r2:0= + x11-libs/libICE + x11-libs/libSM + x11-libs/libXext + x11-libs/libXt + acl? ( kernel_linux? ( sys-apps/acl ) ) + motif? ( >=x11-libs/motif-2.3:0 ) + !motif? ( + x11-libs/gtk+:3[X] + x11-libs/libXft + ) + cscope? ( dev-util/cscope ) + lua? ( + ${LUA_DEPS} + $(lua_gen_impl_dep 'deprecated' lua5-1) + ) + nls? ( virtual/libintl ) + perl? ( + ${GENTOO_PERL_DEPSTRING} + dev-lang/perl:= + ) + python? ( ${PYTHON_DEPS} ) + racket? ( dev-scheme/racket ) + ruby? ( ${RUBY_DEPS} ) + selinux? ( sys-libs/libselinux ) + session? ( x11-libs/libSM ) + sound? ( media-libs/libcanberra ) + tcl? ( dev-lang/tcl:0= ) +" +DEPEND=" + ${RDEPEND} + x11-base/xorg-proto +" +# configure runs the Lua interpreter +BDEPEND+=" + dev-build/autoconf + virtual/pkgconfig + lua? ( ${LUA_DEPS} ) + nls? ( sys-devel/gettext ) +" +PDEPEND="!minimal? ( app-vim/gentoo-syntax )" + +# various failures (bugs #630042 and #682320) +RESTRICT="test" + +# platform-specific checks (bug #898450 #898452): +# - 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" + + use lua && lua-single_pkg_setup + use python && python-single-r1_pkg_setup +} + +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 "mve.awk sed failed" + + # Read vimrc and gvimrc from /etc/vim + echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \ + >> "${S}"/src/feature.h || die "echo failed" + echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \ + >> "${S}"/src/feature.h || die "echo failed" + + # 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 -e \ + '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 + fi + + cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed" + + # 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 -e \ + 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" + rm -v src/auto/configure || die "rm failed" + + # --with-features=huge forces on cscope even if we --disable it. We need + # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm) + if ! use cscope; then + sed -i -e \ + '/# define FEAT_CSCOPE/d' src/feature.h || die "couldn't disable cscope" + fi + + # 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. + local file + for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do + if [[ -e ${file} ]]; then + addwrite ${file} + fi + done + + use debug && append-flags "-DDEBUG" + + local myconf=( + --with-features=huge + --disable-gpm + --with-gnome=no + $(use_enable sound canberra) + $(use_enable acl) + $(use_enable cscope) + $(use_enable netbeans) + $(use_enable nls) + $(use_enable perl perlinterp) + $(use_enable python python3interp) + $(use_with python python3-command "${PYTHON}") + $(use_enable racket mzschemeinterp) + $(use_enable ruby rubyinterp) + $(use_enable selinux) + $(use_enable session xsmp) + $(use_enable tcl tclinterp) + ) + + if use lua; then + # -DLUA_COMPAT_OPENLIB=1 is required to enable the + # deprecated (in 5.1) luaL_openlib API (#874690) + use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1 + + myconf+=( + --enable-luainterp + $(use_with lua_single_target_luajit luajit) + --with-lua-prefix="${EPREFIX}/usr" + ) + fi + + # Default is gtk unless motif is enabled + echo ; echo + if use motif; then + einfo "Building gvim with the MOTIF GUI" + myconf+=( --enable-gui=motif ) + else + myconf+=( --enable-gtk3-check ) + einfo "Building gvim with the gtk+-3 GUI" + myconf+=( --enable-gui=gtk3 ) + fi + echo ; echo + + # let package manager strip binaries + export ac_cv_prog_STRIP="$(type -P true ) faking strip" + + # keep 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 \ + --with-modified-by="Gentoo-${PVR} (RIP Bram)" \ + --with-vim-name=gvim \ + --with-x \ + "${myconf[@]}" +} + +src_compile() { + # The following allows emake to be used + emake -j1 -C src auto/osdef.h objects + + emake +} + +src_test() { + einfo + einfo "Starting vim tests. Several error messages will be shown" + einfo "while the tests run. This is normal behaviour and does not" + einfo "indicate a fault." + einfo + ewarn "If the tests fail, your terminal may be left in a strange" + ewarn "state. Usually, running 'reset' will fix this." + einfo + + # Don't let vim talk to X + unset DISPLAY + + # Make gvim not try to connect to X. See :help gui-x11-start in vim for how + # this evil trickery works. + ln -s "${S}"/src/gvim "${S}"/src/testvim || die + + # Make sure our VIMPROG is used. + sed -i -e 's:\.\./vim:../testvim:' src/testdir/test49.vim || die + + # Don't do additional GUI tests. + emake -j1 VIMPROG=../testvim -C src/testdir nongui +} + +# Call eselect vi update with --if-unset +# to respect user's choice (bug #187449) +eselect_vi_update() { + ebegin "Calling eselect vi update" + eselect vi update --if-unset + eend $? +} + +src_install() { + local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} + + dobin src/gvim + dosym gvim /usr/bin/gvimdiff + dosym gvim /usr/bin/evim + dosym gvim /usr/bin/eview + dosym gvim /usr/bin/gview + dosym gvim /usr/bin/rgvim + dosym gvim /usr/bin/rgview + + emake -C src DESTDIR="${D}" DATADIR="${EPREFIX}"/usr/share install-icons + + dodir /usr/share/man/man1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gvim.1 || die "echo failed" + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gview.1 || die "echo failed" + echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/gvimdiff.1 || \ + die "echo failed" + + insinto /etc/vim + newins "${FILESDIR}"/gvimrc-r1 gvimrc + eprefixify "${ED}"/etc/vim/gvimrc + + # bash completion script, bug #79018. + newbashcomp "${FILESDIR}"/gvim-completion ${PN} + + # don't install vim desktop file + rm -v "${ED}"/usr/share/applications/vim.desktop || die "failed to remove vim.desktop" +} + +pkg_postinst() { + # update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # update fdo mime stuff, bug #78394 + xdg_desktop_database_update + + # update icon cache + xdg_icon_cache_update + + # call eselect vi update + eselect_vi_update +} + +pkg_postrm() { + # update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # update fdo mime stuff, bug #78394 + xdg_desktop_database_update + + # update icon cache + xdg_icon_cache_update + + # call eselect vi update + eselect_vi_update +} diff --git a/app-editors/gvim-classic/metadata.xml b/app-editors/gvim-classic/metadata.xml new file mode 100644 index 000000000000..0fa40a5da6a0 --- /dev/null +++ b/app-editors/gvim-classic/metadata.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>bacs@librecast.net</email> + <name>Brett A C Sheffield</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <maintainer type="project"> + <email>vim@gentoo.org</email> + <name>Gentoo Vim Project</name> + </maintainer> + <use> + <flag name="cscope">Enable cscope interface</flag> + <flag name="netbeans">Include netbeans external editor integration support</flag> + <flag name="racket">Enable support for Scheme using <pkg>dev-scheme/racket</pkg> + </flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/app-editors/gvim/Manifest b/app-editors/gvim/Manifest index 5d2dad07d4b6..2e778d817f8f 100644 --- a/app-editors/gvim/Manifest +++ b/app-editors/gvim/Manifest @@ -1,2 +1,4 @@ DIST vim-9.1.1652.tar.gz 18776578 BLAKE2B c4cc711ee996d6b7268c243c1fae01600d104763f6eee2abbe342f2cf9ee90fb6ee3f0b44fe4814ff47ae13c5a391510c3b711c92acbee591e290da621289029 SHA512 f1dfb1dc0fd834fa3ffb40c31f48de78b48225c9d67667f069ff8b23a6a76d534f3e228b936141616a33a0d73445626dcd2ff52a8571e9f4370a8fbcad9771d7 +DIST vim-9.2.1119.tar.gz 20196061 BLAKE2B 2ccd209c5b5c8bab08d37147ba33f1d1a0ef2e3d6c5e26e165159bbafee311ccd3b236f852e3e12796e4618476c26985a5eea2a27c31087e2d3c1ee2957da34b SHA512 4939487f25757d571d1dc0bfa4888ebaf5c8799818da1c09e0d4781b3e7b27020d974e4ce3fb6e2c4e61198c09d1a2a51585c965107850c078ef1ea6d33d9d72 DIST vim-patches-vim-9.1.1432-patches.tar.bz2 2618 BLAKE2B fe7c302c71fbf66f1921e1b55e2f67914ed104ab86e2a6cf2e6bf67c98214f13f1d8ff1ed7015ec41a5665c692946e20ec5bdf4806e789a70e34c0c888472739 SHA512 a794a7e4d9014d5508db7b205404f5a4b44748a82c5599a26c1ec6b06d3105f6cebf9a93a058f65ad853bbadf432034fc8257a7c77b4f3446331b9d66c19b3af +DIST vim-patches-vim-9.2.1119-patches.tar.bz2 2619 BLAKE2B 32fe08c18bf276a21cb7067cd3f8c61dd07f6e0613e8afe32d4616546e1a93e0b20a3306ee1a695474d660c6ae42cfd9666c9f36f0bfccbb033705598deb0543 SHA512 58fc52058b3404588ca29f85ae1eb2740cba434952b7ad5636f76937f09121fd5d8c026e2f2489277d1ef5fc9a9c8a182dfc86346b233f08269ef6b68a056160 diff --git a/app-editors/gvim/gvim-9.2.1119.ebuild b/app-editors/gvim/gvim-9.2.1119.ebuild new file mode 100644 index 000000000000..14d3b017da1d --- /dev/null +++ b/app-editors/gvim/gvim-9.2.1119.ebuild @@ -0,0 +1,370 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Please bump with app-editors/vim-core and app-editors/vim + +VIM_VERSION="9.2" +VIM_PATCHES_VERSION="9.2.1119" + +LUA_COMPAT=( lua5-{1,3,4} luajit ) +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="threads(+)" +USE_RUBY="ruby32 ruby33" +GENTOO_DEPEND_ON_PERL=no + +inherit flag-o-matic lua-single perl-module prefix python-single-r1 ruby-single shell-completion 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 + " + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +fi + +DESCRIPTION="GUI version of the Vim text editor" +HOMEPAGE="https://www.vim.org https://github.com/vim/vim" +S="${WORKDIR}"/vim-${PV} + +LICENSE="vim" +SLOT="0" +IUSE="acl crypt cscope debug gtk4 lua minimal motif netbeans nls +pango perl python racket ruby selinux session sound tcl wayland ${GENTOO_PERL_USESTRING}" +REQUIRED_USE=" + lua? ( ${LUA_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) + ?? ( gtk4 motif ) + gtk4? ( !session ) +" + +RDEPEND=" + ~app-editors/vim-core-${PV} + >=app-eselect/eselect-vi-1.1 + >=sys-libs/ncurses-5.2-r2:0= + acl? ( kernel_linux? ( sys-apps/acl ) ) + motif? ( >=x11-libs/motif-2.3:0 ) + gtk4? ( gui-libs/gtk:4 ) + !gtk4? ( + x11-libs/libICE + x11-libs/libSM + x11-libs/libXext + x11-libs/libXt + !motif? ( + x11-libs/gtk+:3[X] + x11-libs/libXft + ) + ) + pango? ( + x11-libs/cairo + >=x11-libs/pango-1.44 + ) + crypt? ( dev-libs/libsodium:= ) + cscope? ( dev-util/cscope ) + lua? ( + ${LUA_DEPS} + $(lua_gen_impl_dep 'deprecated' lua5-1) + ) + nls? ( virtual/libintl ) + perl? ( + ${GENTOO_PERL_DEPSTRING} + dev-lang/perl:= + ) + python? ( ${PYTHON_DEPS} ) + racket? ( dev-scheme/racket ) + ruby? ( ${RUBY_DEPS} ) + selinux? ( sys-libs/libselinux ) + session? ( x11-libs/libSM ) + sound? ( media-libs/libcanberra ) + tcl? ( dev-lang/tcl:0= ) + wayland? ( dev-libs/wayland ) +" +DEPEND="${RDEPEND} + !gtk4? ( x11-base/xorg-proto )" +# configure runs the Lua interpreter +BDEPEND=" + >=dev-build/autoconf-2.71 + virtual/pkgconfig + lua? ( ${LUA_DEPS} ) + nls? ( sys-devel/gettext ) +" +PDEPEND="!minimal? ( app-vim/gentoo-syntax )" + +if [[ ${PV} != 9999* ]]; then + # Gentoo patches to fix runtime issues, cross-compile errors, etc + PATCHES=( + "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches" + ) +fi + +# various failures (bugs #630042 and #682320) +RESTRICT="test" + +# platform-specific checks (bug #898450): +# - 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" + + use lua && lua-single_pkg_setup + use python && python-single-r1_pkg_setup +} + +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 "mve.awk sed failed" + + # Read vimrc and gvimrc from /etc/vim + echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \ + >> "${S}"/src/feature.h || die "echo failed" + echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \ + >> "${S}"/src/feature.h || die "echo failed" + + # 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 -e \ + '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 + fi + + cp -v "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk || die "cp failed" + + # 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 -e \ + 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" + rm -v src/auto/configure || die "rm failed" + + # --with-features=huge forces on cscope even if we --disable it. We need + # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm) + if ! use cscope; then + sed -i -e \ + '/# define FEAT_CSCOPE/d' src/feature.h || die "couldn't disable cscope" + fi + + # 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. + local file + for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do + if [[ -e ${file} ]]; then + addwrite $file + fi + done + + use debug && append-flags "-DDEBUG" + + local myconf=( + --with-features=huge + --disable-gpm + --with-gnome=no + $(use_enable sound canberra) + $(use_enable acl) + $(use_enable crypt libsodium) + $(use_enable cscope) + $(use_enable netbeans) + $(use_enable nls) + $(use_enable perl perlinterp) + $(use_enable python python3interp) + $(use_with python python3-command "${PYTHON}") + $(use_enable racket mzschemeinterp) + $(use_enable ruby rubyinterp) + $(use_enable selinux) + $(use_enable session xsmp) + $(use_enable tcl tclinterp) + $(use_with wayland) + ) + + if use lua; then + # -DLUA_COMPAT_OPENLIB=1 is required to enable the + # deprecated (in 5.1) luaL_openlib API (#874690) + use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1 + + myconf+=( + --enable-luainterp + $(use_with lua_single_target_luajit luajit) + --with-lua-prefix="${EPREFIX}/usr" + ) + fi + + # Default is gtk+-3 unless motif or gtk4 is enabled + echo ; echo + if use motif; then + einfo "Building gvim with the MOTIF GUI" + myconf+=( --enable-gui=motif --with-x ) + elif use gtk4; then + einfo "Building gvim with the GTK 4 GUI" + # GTK4 talks to no X11 API of its own, and configure forces + # with_x=no for it; so do not drag in the X11 libraries. + myconf+=( --enable-gui=gtk4 --without-x ) + else + myconf+=( --enable-gtk3-check --disable-gtk4-check ) + einfo "Building gvim with the gtk+-3 GUI" + myconf+=( --enable-gui=gtk3 --with-x ) + fi + echo ; echo + + # Render hardcopy with system Pango/Cairo instead of Vim's own PostScript generator + myconf+=( $(use_enable pango hardcopy-pango) ) + + # let package manager strip binaries + export ac_cv_prog_STRIP="$(type -P true ) faking strip" + + # keep 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 \ + --with-modified-by="Gentoo-${PVR} (RIP Bram)" \ + --with-vim-name=gvim \ + "${myconf[@]}" +} + +src_compile() { + # The following allows emake to be used + emake -j1 -C src auto/osdef.h objects + + emake +} + +src_test() { + einfo + einfo "Starting vim tests. Several error messages will be shown" + einfo "while the tests run. This is normal behaviour and does not" + einfo "indicate a fault." + einfo + ewarn "If the tests fail, your terminal may be left in a strange" + ewarn "state. Usually, running 'reset' will fix this." + einfo + + # Don't let vim talk to X + unset DISPLAY + + # Make gvim not try to connect to X. See :help gui-x11-start in vim for how + # this evil trickery works. + ln -s "${S}"/src/gvim "${S}"/src/testvim || die + + # Make sure our VIMPROG is used. + sed -i -e 's:\.\./vim:../testvim:' src/testdir/test49.vim || die + + # Don't do additional GUI tests. + emake -j1 VIMPROG=../testvim -C src/testdir nongui +} + +# Call eselect vi update with --if-unset +# to respect user's choice (bug 187449) +eselect_vi_update() { + ebegin "Calling eselect vi update" + eselect vi update --if-unset + eend $? +} + +src_install() { + local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} + + dobin src/gvim + dosym gvim /usr/bin/gvimdiff + dosym gvim /usr/bin/evim + dosym gvim /usr/bin/eview + dosym gvim /usr/bin/gview + dosym gvim /usr/bin/rgvim + dosym gvim /usr/bin/rgview + + emake -C src DESTDIR="${D}" DATADIR="${EPREFIX}"/usr/share install-icons + + dodir /usr/share/man/man1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gvim.1 || die "echo failed" + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gview.1 || die "echo failed" + echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/gvimdiff.1 || \ + die "echo failed" + + insinto /etc/vim + newins "${FILESDIR}"/gvimrc-r1 gvimrc + eprefixify "${ED}"/etc/vim/gvimrc + + # bash completion script, bug #79018. + newbashcomp "${FILESDIR}"/${PN}-completion ${PN} + + # don't install vim desktop file + rm -v "${ED}"/usr/share/applications/vim.desktop || die "failed to remove vim.desktop" +} + +pkg_postinst() { + # update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # update fdo mime stuff, bug #78394 + xdg_desktop_database_update + + # update icon cache + xdg_icon_cache_update + + # call eselect vi update + eselect_vi_update +} + +pkg_postrm() { + # update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # update fdo mime stuff, bug #78394 + xdg_desktop_database_update + + # update icon cache + xdg_icon_cache_update + + # call eselect vi update + eselect_vi_update +} diff --git a/app-editors/gvim/metadata.xml b/app-editors/gvim/metadata.xml index 7e0ac1b87fad..8726f49821a7 100644 --- a/app-editors/gvim/metadata.xml +++ b/app-editors/gvim/metadata.xml @@ -1,6 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> <pkgmetadata> + <maintainer type="person"> + <email>arthurzam@gentoo.org</email> + <name>Arthur Zamarin</name> + </maintainer> <maintainer type="person" proxied="yes"> <email>xxc3ncoredxx@gmail.com</email> <name>Oskari Pirhonen</name> @@ -16,7 +20,15 @@ <use> <flag name="crypt">Use <pkg>dev-libs/libsodium</pkg> for crypto support</flag> <flag name="cscope">Enable cscope interface</flag> + <flag name="gtk4">Build the GTK 4 GUI using <pkg>gui-libs/gtk</pkg>:4 instead of + the default GTK+ 3 one. The GTK 4 GUI uses no X11 API, so 'session' + (X session management) is unavailable with it.</flag> <flag name="netbeans">Include netbeans external editor integration support</flag> + <flag name="pango">Render |:hardcopy| output with <pkg>x11-libs/pango</pkg> + and <pkg>x11-libs/cairo</pkg> rather than Vim's own PostScript generator. + Gains full Unicode support and PDF output, at the cost of the + 'printencoding', 'printmbcharset' and 'printmbfont' options, which + exist only for the built-in generator.</flag> <flag name="racket">Enable support for Scheme using <pkg>dev-scheme/racket</pkg> </flag> </use> diff --git a/app-editors/moe/moe-1.16.ebuild b/app-editors/moe/moe-1.16.ebuild index 7efaac94a7b7..681ce22b9454 100644 --- a/app-editors/moe/moe-1.16.ebuild +++ b/app-editors/moe/moe-1.16.ebuild @@ -15,7 +15,7 @@ SRC_URI=" LICENSE="GPL-2+" SLOT="0" -KEYWORDS="~amd64 ~arm ~riscv ~x86" +KEYWORDS="~amd64 arm ~riscv ~x86" RDEPEND="sys-libs/ncurses:=" DEPEND="${RDEPEND}" diff --git a/app-editors/nedit/nedit-5.8.ebuild b/app-editors/nedit/nedit-5.8.ebuild index e972164299f0..6efaffc9ca73 100644 --- a/app-editors/nedit/nedit-5.8.ebuild +++ b/app-editors/nedit/nedit-5.8.ebuild @@ -14,7 +14,7 @@ SRC_URI=" LICENSE="GPL-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~mips ~ppc ~riscv ~sparc ~x86" +KEYWORDS="~alpha ~amd64 ~mips ppc ~riscv ~sparc ~x86" IUSE="doc" RDEPEND=" diff --git a/app-editors/vim-classic-core/Manifest b/app-editors/vim-classic-core/Manifest new file mode 100644 index 000000000000..f97f1a171e53 --- /dev/null +++ b/app-editors/vim-classic-core/Manifest @@ -0,0 +1,2 @@ +DIST vim-classic-core-8.3.0.tar.gz 14767832 BLAKE2B 309305bf99997e4c8f6d309de118f78da9e88de2e2909d4216f8991526fc430f7b0eedf6f7d5d91fdeb3dfe80935b2196880ab9438a8b9496d675d37f9386b11 SHA512 83417abe7989728aa4ed9da26b2779578cbad676f501953eaf04d4b99ea5615e8cf1df129c18c3e745aba7ed065d37c59015bc6461a5e5d4a5ea8a9c0364d7ca +DIST vim-classic-core-8.3.0.tar.gz.sig 119 BLAKE2B f54d8a514146cca189966ecedf707590a0f76ff7ef2cd2bb6729c70dd68bb3e4644cb53ca28a7b7efa237466755d23acb2011bcd088f9c9e24d77d782a4c3a2f SHA512 947285dd9359c7399c358176c327f45b43c2bc58a3bec7a1d2ec838a7d070551f4f510ce92523110b6c590ef3ff0115683ebe7144ef4b6b9bb6dde72d8e11084 diff --git a/app-editors/vim-classic-core/files/gvim.svg b/app-editors/vim-classic-core/files/gvim.svg new file mode 100644 index 000000000000..b82742a79012 --- /dev/null +++ b/app-editors/vim-classic-core/files/gvim.svg @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="256" + height="256" + id="svg2" + version="1.1" + inkscape:version="0.47 r22583" + sodipodi:docname="vim.svg"> + <defs + id="defs4"> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 526.18109 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="744.09448 : 526.18109 : 1" + inkscape:persp3d-origin="372.04724 : 350.78739 : 1" + id="perspective10" /> + <inkscape:perspective + id="perspective2884" + inkscape:persp3d-origin="0.5 : 0.33333333 : 1" + inkscape:vp_z="1 : 0.5 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_x="0 : 0.5 : 1" + sodipodi:type="inkscape:persp3d" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.7" + inkscape:cx="107.83967" + inkscape:cy="146.01885" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:window-width="743" + inkscape:window-height="605" + inkscape:window-x="88" + inkscape:window-y="321" + inkscape:window-maximized="0" /> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-796.36218)"> + <path + style="fill:#19953f;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="M 128.02596,805.31213 8.0259779,926.7407 127.31168,1046.0264 l 120,-120.71427 -119.28572,-120 z" + id="path2890" /> + <path + style="fill:#d0d0cf;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 26.24294,816.92274 -5,5 0,19.28572 5.446429,5.26785 7.232142,0.17858 0.178571,168.12501 7.142857,7.1429 22.142858,0 177.142853,-180.00006 0,-18.57143 -5,-5 -80,-0.71428 -5,7.14285 0,15.71429 5,6.42857 6.42857,0 -62.142855,60.00001 0.625005,-59.73215 7.14285,-10e-6 5.80357,-5.98214 0,-15.71429 -6.42857,-7.14286 -80.71428,-1.42857 0,10e-6 z" + id="path3664" + sodipodi:nodetypes="cccccccccccccccccccccccc" /> + <path + style="fill:#d0d0cf;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 136.90826,933.24978 4.28572,-3.57143 12.14285,0.35715 3.92857,3.92857 -4.28571,12.14286 -3.57143,3.21428 -12.64794,-0.14794 -3.42349,-4.13777 3.57143,-11.78572 z" + id="path3666" + sodipodi:nodetypes="ccccccccc" /> + <path + style="fill:#d0d0cf;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 121.90826,956.10693 28.57143,0.35714 -15,45.00003 5.35714,0 -3.21428,8.9285 -26.78572,-0.3571 14.64286,-43.21429 -7.14286,0.35714 3.57143,-11.07142 z" + id="path3668" /> + <path + style="fill:#d0d0cf;fill-opacity:1;stroke:#000000;stroke-width:5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" + d="m 157.2654,956.46407 -3.71936,9.68618 6.82905,0 -15.25254,44.24235 23.57143,0 3.40554,-8.7193 -6.11475,-0.4005 8.42349,-26.2373 15,-0.35715 -11.07143,34.99995 23.15301,0.3572 2.91579,-8.2576 -5.56371,-0.1633 9.13777,-26.5791 12.85714,0 -11.07143,35 24.32904,0.2525 3.00508,-8.2729 -5.81626,-0.1939 11.69643,-37.14285 -4.64286,-7.5 -14.64285,0 -5.71429,5.71429 -5.71429,0 -6.07142,-6.07143 -12.5,0 -5.35715,5.35714 -6.07143,0 -6.07142,-5.71428 -18.92858,0 z" + id="path3670" + sodipodi:nodetypes="cccccccccccccccccccccccccccccc" /> + </g> +</svg> diff --git a/app-editors/vim-classic-core/files/vim-core-unbundle-xxd.patch b/app-editors/vim-classic-core/files/vim-core-unbundle-xxd.patch new file mode 100644 index 000000000000..a401b72c7bf1 --- /dev/null +++ b/app-editors/vim-classic-core/files/vim-core-unbundle-xxd.patch @@ -0,0 +1,37 @@ +The xxd utility is packaged in dev-util/xxd. With USE=nls, the prerequisite +$(INSTALL_TOOL_LANGS) target variable contains install-tool-languages, which +only installs xxd manpages. Remove it to prevent file collisions with +dev-util/xxd. + +Original patch From: Lucio Sauer <watermanpaint@posteo.net> +diff --git a/src/Makefile b/src/Makefile +index 30b315b6e..6fb8e0baa 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -1000,7 +1000,7 @@ EVIEWTARGET = $(EVIEWNAME)$(LNKEXT) + + ### Names of the tools that are also made {{{1 + XXDTARGET = xxd/$(XXDNAME)$(EXEEXT) +-TOOLS = $(XXDTARGET) ++TOOLS = + + ### Installation directories. The defaults come from configure. {{{1 + # +@@ -2489,16 +2489,11 @@ installspell: $(DEST_VIM) $(DEST_RT) $(DEST_SPELL) + + # install helper program xxd + installtools: $(TOOLS) $(DESTDIR)$(exec_prefix) $(DEST_BIN) \ +- $(TOOLSSOURCE) $(DEST_VIM) $(DEST_RT) $(DEST_TOOLS) \ +- $(INSTALL_TOOL_LANGS) ++ $(TOOLSSOURCE) $(DEST_VIM) $(DEST_RT) $(DEST_TOOLS) + if test -f $(DEST_BIN)/$(XXDNAME)$(EXEEXT); then \ + mv -f $(DEST_BIN)/$(XXDNAME)$(EXEEXT) $(DEST_BIN)/$(XXDNAME).rm; \ + rm -f $(DEST_BIN)/$(XXDNAME).rm; \ + fi +- $(INSTALL_PROG) xxd/$(XXDNAME)$(EXEEXT) $(DEST_BIN) +- $(STRIP) $(DEST_BIN)/$(XXDNAME)$(EXEEXT) +- chmod $(BINMOD) $(DEST_BIN)/$(XXDNAME)$(EXEEXT) +- -$(SHELL) ./installman.sh xxd $(DEST_MAN) "" $(INSTALLMANARGS) + + # install the runtime tools + $(INSTALL_DATA_R) $(TOOLSSOURCE)/* $(DEST_TOOLS) diff --git a/app-editors/vim-classic-core/files/vimrc-r8 b/app-editors/vim-classic-core/files/vimrc-r8 new file mode 100644 index 000000000000..c4abc23e7496 --- /dev/null +++ b/app-editors/vim-classic-core/files/vimrc-r8 @@ -0,0 +1,218 @@ +scriptencoding utf-8 +" ^^ Please leave the above line at the start of the file. + +" If you want to completely disable this script, make sure to put +" "let skip_etc_vimrc = 1" in a skip_etc_vimrc.vim in your runtimepath, like +" ~/.vim/skip_etc_vimrc. +runtime! skip_etc_vimrc.vim +" Bail out when a power user would prefer to avoid the system configuration +if exists('skip_etc_vimrc') + finish +endif + +" 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} setl 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 setl 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 gentoo 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-classic-core/metadata.xml b/app-editors/vim-classic-core/metadata.xml new file mode 100644 index 000000000000..9f2576b4cad6 --- /dev/null +++ b/app-editors/vim-classic-core/metadata.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>bacs@librecast.net</email> + <name>Brett A C Sheffield</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <maintainer type="project"> + <email>vim@gentoo.org</email> + <name>Gentoo Vim Project</name> + </maintainer> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/app-editors/vim-classic-core/vim-classic-core-8.3.0.ebuild b/app-editors/vim-classic-core/vim-classic-core-8.3.0.ebuild new file mode 100644 index 000000000000..ff11e99bd902 --- /dev/null +++ b/app-editors/vim-classic-core/vim-classic-core-8.3.0.ebuild @@ -0,0 +1,237 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Please bump with app-editors/vim-classic and app-editors/gvim-classic + +VIM_VERSION="8.3" +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/ddevault.asc +inherit desktop flag-o-matic prefix toolchain-funcs verify-sig vim-doc xdg-utils + +MYWORKDIR="${WORKDIR}/vim-classic-v${PV}" +if [[ ${PV} == 9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://git.sr.ht/~sircmpwn/vim-classic" + EGIT_CHECKOUT_DIR="${MYWORKDIR}" +else + SRC_URI=" + https://git.sr.ht/~sircmpwn/vim-classic/archive/v${PV}.tar.gz -> ${P}.tar.gz + verify-sig? ( + https://git.sr.ht/~sircmpwn/vim-classic/refs/download/v${PV}/vim-classic-v${PV}.tar.gz.sig + -> ${P}.tar.gz.sig + ) + " + KEYWORDS="~amd64" + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-ddevault-20250219 ) " +fi + +DESCRIPTION="vim-classic and gvim-classic shared files" +HOMEPAGE="https://vim-classic.org/" +S="${MYWORKDIR}" + +LICENSE="vim" +SLOT="0" +IUSE="nls acl minimal" + +RDEPEND=" + !app-editors/vim-core + dev-util/xxd + >=virtual/editor-0-r8 +" +# ncurses is only needed by ./configure, so no subslot operator required +DEPEND=">=sys-libs/ncurses-5.2-r2:0" +BDEPEND+="dev-build/autoconf" + +# unbundle xxd +PATCHES+=( "${FILESDIR}/vim-core-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} + --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-classic-core/vim-classic-core-9999.ebuild b/app-editors/vim-classic-core/vim-classic-core-9999.ebuild new file mode 100644 index 000000000000..ff11e99bd902 --- /dev/null +++ b/app-editors/vim-classic-core/vim-classic-core-9999.ebuild @@ -0,0 +1,237 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Please bump with app-editors/vim-classic and app-editors/gvim-classic + +VIM_VERSION="8.3" +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/ddevault.asc +inherit desktop flag-o-matic prefix toolchain-funcs verify-sig vim-doc xdg-utils + +MYWORKDIR="${WORKDIR}/vim-classic-v${PV}" +if [[ ${PV} == 9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://git.sr.ht/~sircmpwn/vim-classic" + EGIT_CHECKOUT_DIR="${MYWORKDIR}" +else + SRC_URI=" + https://git.sr.ht/~sircmpwn/vim-classic/archive/v${PV}.tar.gz -> ${P}.tar.gz + verify-sig? ( + https://git.sr.ht/~sircmpwn/vim-classic/refs/download/v${PV}/vim-classic-v${PV}.tar.gz.sig + -> ${P}.tar.gz.sig + ) + " + KEYWORDS="~amd64" + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-ddevault-20250219 ) " +fi + +DESCRIPTION="vim-classic and gvim-classic shared files" +HOMEPAGE="https://vim-classic.org/" +S="${MYWORKDIR}" + +LICENSE="vim" +SLOT="0" +IUSE="nls acl minimal" + +RDEPEND=" + !app-editors/vim-core + dev-util/xxd + >=virtual/editor-0-r8 +" +# ncurses is only needed by ./configure, so no subslot operator required +DEPEND=">=sys-libs/ncurses-5.2-r2:0" +BDEPEND+="dev-build/autoconf" + +# unbundle xxd +PATCHES+=( "${FILESDIR}/vim-core-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} + --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-classic/Manifest b/app-editors/vim-classic/Manifest new file mode 100644 index 000000000000..b25ab36fc6c4 --- /dev/null +++ b/app-editors/vim-classic/Manifest @@ -0,0 +1,2 @@ +DIST vim-classic-8.3.0.tar.gz 14767832 BLAKE2B 309305bf99997e4c8f6d309de118f78da9e88de2e2909d4216f8991526fc430f7b0eedf6f7d5d91fdeb3dfe80935b2196880ab9438a8b9496d675d37f9386b11 SHA512 83417abe7989728aa4ed9da26b2779578cbad676f501953eaf04d4b99ea5615e8cf1df129c18c3e745aba7ed065d37c59015bc6461a5e5d4a5ea8a9c0364d7ca +DIST vim-classic-8.3.0.tar.gz.sig 119 BLAKE2B f54d8a514146cca189966ecedf707590a0f76ff7ef2cd2bb6729c70dd68bb3e4644cb53ca28a7b7efa237466755d23acb2011bcd088f9c9e24d77d782a4c3a2f SHA512 947285dd9359c7399c358176c327f45b43c2bc58a3bec7a1d2ec838a7d070551f4f510ce92523110b6c590ef3ff0115683ebe7144ef4b6b9bb6dde72d8e11084 diff --git a/app-editors/vim-classic/files/vim-classic-completion b/app-editors/vim-classic/files/vim-classic-completion new file mode 100644 index 000000000000..67537d63101d --- /dev/null +++ b/app-editors/vim-classic/files/vim-classic-completion @@ -0,0 +1,36 @@ +# Author: Ciaran McCreesh <ciaranm@gentoo.org> +# +# completion for vim + +_vim() +{ + local cur prev cmd args + + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + prev=${COMP_WORDS[COMP_CWORD-1]} + cmd=${COMP_WORDS[0]} + + if [[ "${prev}" == "--servername" ]] ; then + local servers + servers=$(gvim --serverlist ) + COMPREPLY=( $( compgen -W "${servers}" -- $cur ) ) + + elif [[ "${prev}" == -[uUi] ]] ; then + COMPREPLY=( $( compgen -W "NONE" ) \ + $( compgen -f -X "!*vim*" -- "$cur" ) ) + + elif [[ "${cur}" == -* ]] ; then + args='-t -q -c -S --cmd -A -b -C -d -D -e -E -f --nofork \ + -F -g -h -H -i -L -l -m -M -N -n -nb -o -R -r -s \ + -T -u -U -V -v -w -W -x -X -y -Y -Z --echo-wid \ + --help --literal --noplugin --version' + COMPREPLY=( $( compgen -W "${args}" -- $cur ) ) + else + _filedir + fi +} + +complete -o filenames -F _vim vim ex vi view rvim rview vimdiff + +# vim: set ft=sh sw=4 et sts=4 : diff --git a/app-editors/vim-classic/metadata.xml b/app-editors/vim-classic/metadata.xml new file mode 100644 index 000000000000..15614d977135 --- /dev/null +++ b/app-editors/vim-classic/metadata.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person" proxied="yes"> + <email>bacs@librecast.net</email> + <name>Brett A C Sheffield</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <maintainer type="project"> + <email>vim@gentoo.org</email> + <name>Gentoo Vim Project</name> + </maintainer> + <use> + <flag name="cscope">Enable cscope interface</flag> + <flag name="racket">Enable support for Scheme using <pkg>dev-scheme/racket</pkg> + </flag> + <flag name="terminal">Enable terminal emulation support</flag> + <flag name="vim-pager">Install vimpager and vimmanpager links</flag> + <flag name="X">Link console vim against X11 libraries to enable title and + clipboard features in xterm</flag> + </use> + <origin>baldeagleos-repo</origin> +</pkgmetadata> diff --git a/app-editors/vim-classic/vim-classic-8.3.0.ebuild b/app-editors/vim-classic/vim-classic-8.3.0.ebuild new file mode 100644 index 000000000000..f313e333612b --- /dev/null +++ b/app-editors/vim-classic/vim-classic-8.3.0.ebuild @@ -0,0 +1,382 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Please bump with app-editors/vim-classic-core and app-editors/gvim-classic + +VIM_VERSION="8.3" + +LUA_COMPAT=( lua5-{1,3,4} luajit ) +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="threads(+)" +USE_RUBY="ruby32 ruby33" +GENTOO_DEPEND_ON_PERL=no + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/ddevault.asc +inherit bash-completion-r1 flag-o-matic lua-single desktop perl-module python-single-r1 \ + ruby-single toolchain-funcs verify-sig vim-doc xdg-utils + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://git.sr.ht/~sircmpwn/vim-classic" +else + SRC_URI=" + https://git.sr.ht/~sircmpwn/vim-classic/archive/v${PV}.tar.gz -> ${P}.tar.gz + verify-sig? ( + https://git.sr.ht/~sircmpwn/vim-classic/refs/download/v${PV}/vim-classic-v${PV}.tar.gz.sig + -> ${P}.tar.gz.sig + ) + " + KEYWORDS="~amd64" + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-ddevault-20250219 ) " +fi + +DESCRIPTION="Long term support Vim text editor" +HOMEPAGE="https://vim-classic.org/" + +LICENSE="vim" +SLOT="0" +IUSE="acl cscope debug gpm lua minimal nls perl python racket ruby selinux sound tcl terminal vim-pager X ${GENTOO_PERL_USESTRING}" +REQUIRED_USE=" + lua? ( ${LUA_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) + vim-pager? ( !minimal ) +" + +RDEPEND=" + !app-editors/vim + ~app-editors/vim-classic-core-${PV} + >=app-eselect/eselect-vi-1.1 + >=sys-libs/ncurses-5.2-r2:0= + acl? ( kernel_linux? ( sys-apps/acl ) ) + cscope? ( dev-util/cscope ) + gpm? ( >=sys-libs/gpm-1.19.3 ) + lua? ( + ${LUA_DEPS} + $(lua_gen_impl_dep 'deprecated' lua5-1) + ) + nls? ( virtual/libintl ) + perl? ( + ${GENTOO_PERL_DEPSTRING} + dev-lang/perl:= + ) + python? ( ${PYTHON_DEPS} ) + racket? ( dev-scheme/racket ) + ruby? ( ${RUBY_DEPS} ) + selinux? ( sys-libs/libselinux ) + sound? ( media-libs/libcanberra ) + tcl? ( dev-lang/tcl:0= ) + vim-pager? ( app-editors/vim-classic-core[-minimal] ) + X? ( x11-libs/libXt ) +" +DEPEND="${RDEPEND} + X? ( x11-base/xorg-proto ) +" +# configure runs the Lua interpreter +BDEPEND+=" + dev-build/autoconf + lua? ( ${LUA_DEPS} ) + nls? ( sys-devel/gettext ) +" +PDEPEND="!minimal? ( app-vim/gentoo-syntax )" + +# platform-specific checks (bug #898450 #898452): +# - 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" + + use lua && lua-single_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_unpack() { + default + if [[ ${PV} != 9999* ]] ; then + mv "${WORKDIR}/vim-classic-v${PV}" "${WORKDIR}/vim-classic-${PV}" || die + fi +} + +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 "mve.awk sed failed" + + # Read vimrc and gvimrc from /etc/vim + echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \ + >> "${S}"/src/feature.h || die "echo failed" + echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \ + >> "${S}"/src/feature.h || die "echo failed" + + # 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 -e \ + '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 + + # conditionally make the manpager.sh script + if use vim-pager; then + cat > "${S}"/runtime/macros/manpager.sh <<-_EOF_ || die "cat EOF failed" + #!/bin/sh + sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | \\ + vim \\ + -c 'let no_plugin_maps = 1' \\ + -c 'set nolist nomod ft=man ts=8' \\ + -c 'let g:showmarks_enable=0' \\ + -c 'runtime! macros/less.vim' - + _EOF_ + fi + + # 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 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 -e \ + 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" + rm src/auto/configure || die "rm failed" + + # --with-features=huge forces on cscope even if we --disable it. We need + # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm) + if ! use cscope; then + sed -i -e \ + '/# define FEAT_CSCOPE/d' src/feature.h || die "couldn't disable cscope" + fi + + # 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. + local file + for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do + if [[ -e ${file} ]]; then + addwrite ${file} + fi + done + + local myconf=( + --with-modified-by="Gentoo-${PVR} (RIP Bram)" + --enable-gui=no + --disable-darwin + ) + + if use minimal; then + myconf+=( + --with-features=tiny + --disable-nls + --disable-canberra + --disable-acl + --without-x + --disable-luainterp + --disable-perlinterp + --disable-pythoninterp + --disable-mzschemeinterp + --disable-rubyinterp + --disable-selinux + --disable-tclinterp + --disable-gpm + ) + else + use debug && append-flags "-DDEBUG" + + myconf+=( + --with-features=huge + $(use_enable sound canberra) + $(use_enable acl) + $(use_enable cscope) + $(use_enable gpm) + $(use_enable nls) + $(use_enable perl perlinterp) + $(use_enable python python3interp) + $(use_with python python3-command "${PYTHON}") + $(use_enable racket mzschemeinterp) + $(use_enable ruby rubyinterp) + $(use_enable selinux) + $(use_enable tcl tclinterp) + $(use_enable terminal) + ) + + if use lua; then + # -DLUA_COMPAT_OPENLIB=1 is required to enable the + # deprecated (in 5.1) luaL_openlib API (#874690) + use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1 + + myconf+=( + --enable-luainterp + $(use_with lua_single_target_luajit luajit) + --with-lua-prefix="${EPREFIX}/usr" + ) + fi + + # don't test USE=X here ... see bug #19115 + # but need to provide a way to link against X ... see bug #20093 + myconf+=( + $(use_with X x) + ) + fi + + # let package manager strip binaries + export ac_cv_prog_STRIP="$(type -P true ) faking strip" + + # keep 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() { + # The following allows emake to be used + emake -j1 -C src auto/osdef.h objects + + emake +} + +src_test() { + einfo + einfo "Starting vim tests. Several error messages will be shown" + einfo "while the tests run. This is normal behaviour and does not" + einfo "indicate a fault." + einfo + ewarn "If the tests fail, your terminal may be left in a strange" + ewarn "state. Usually, running 'reset' will fix this." + einfo + + # Don't let vim talk to X + unset DISPLAY + + # Arch and opensuse seem to do this and at this point, I'm willing + # to try anything to avoid random test hangs! + export TERM=xterm + + # See https://github.com/vim/vim/blob/f08b0eb8691ff09f98bc4beef986ece1c521655f/src/testdir/runtest.vim#L5 + # for more information on test variables we can use. + # Note that certain variables need vim-compatible regex (not PCRE), see e.g. + # http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml. + # + # Skipped tests: + # - Test_expand_star_star + # Hangs because of a recursive symlink in /usr/include/nodejs (bug #616680) + # - Test_exrc + # Looks in wrong location? (bug #742710) + # - Test_job_tty_in_out + # Fragile and depends on TERM(?) + # - Test_spelldump_bang + # Hangs. + # - Test_fuzzy_completion_env + # Too sensitive to leaked environment variables. + # - Test_term_mouse_multiple_clicks_to_select_mode + # Hangs. + # - Test_spelldump + # Hangs. + # - Test_glvs_* + # Depends on local network. + export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\|Test_spelldump\|Test_glvs_\)' + + # Don't do additional GUI tests. + emake -j1 -C src/testdir nongui +} + +# Call eselect vi update with --if-unset +# to respect user's choice (bug #187449) +eselect_vi_update() { + ebegin "Calling eselect vi update" + eselect vi update --if-unset + eend $? +} + +src_install() { + local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} + + # Note: Do not install symlinks for 'vi', 'ex', or 'view', as these are + # managed by eselect-vi + dobin src/vim + if ! use minimal ; then + dosym vim /usr/bin/vimdiff + fi + dosym vim /usr/bin/rvim + dosym vim /usr/bin/rview + if use vim-pager ; then + dosym ${vimfiles}/macros/less.sh /usr/bin/vimpager + dosym ${vimfiles}/macros/manpager.sh /usr/bin/vimmanpager + insinto ${vimfiles}/macros + doins runtime/macros/manpager.sh + fperms a+x ${vimfiles}/macros/manpager.sh + fi + + domenu runtime/vim.desktop + + newbashcomp "${FILESDIR}"/${PN}-completion vim + + # keep in sync with 'complete ... -F' list + bashcomp_alias vim ex vi view rvim rview vimdiff +} + +pkg_postinst() { + # update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # update desktop file mime cache + xdg_desktop_database_update + + # call eselect vi update + eselect_vi_update +} + +pkg_postrm() { + # update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # update desktop file mime cache + xdg_desktop_database_update + + # call eselect vi update + eselect_vi_update +} diff --git a/app-editors/vim-classic/vim-classic-9999.ebuild b/app-editors/vim-classic/vim-classic-9999.ebuild new file mode 100644 index 000000000000..f313e333612b --- /dev/null +++ b/app-editors/vim-classic/vim-classic-9999.ebuild @@ -0,0 +1,382 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Please bump with app-editors/vim-classic-core and app-editors/gvim-classic + +VIM_VERSION="8.3" + +LUA_COMPAT=( lua5-{1,3,4} luajit ) +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="threads(+)" +USE_RUBY="ruby32 ruby33" +GENTOO_DEPEND_ON_PERL=no + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/ddevault.asc +inherit bash-completion-r1 flag-o-matic lua-single desktop perl-module python-single-r1 \ + ruby-single toolchain-funcs verify-sig vim-doc xdg-utils + +if [[ ${PV} == 9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://git.sr.ht/~sircmpwn/vim-classic" +else + SRC_URI=" + https://git.sr.ht/~sircmpwn/vim-classic/archive/v${PV}.tar.gz -> ${P}.tar.gz + verify-sig? ( + https://git.sr.ht/~sircmpwn/vim-classic/refs/download/v${PV}/vim-classic-v${PV}.tar.gz.sig + -> ${P}.tar.gz.sig + ) + " + KEYWORDS="~amd64" + BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-ddevault-20250219 ) " +fi + +DESCRIPTION="Long term support Vim text editor" +HOMEPAGE="https://vim-classic.org/" + +LICENSE="vim" +SLOT="0" +IUSE="acl cscope debug gpm lua minimal nls perl python racket ruby selinux sound tcl terminal vim-pager X ${GENTOO_PERL_USESTRING}" +REQUIRED_USE=" + lua? ( ${LUA_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) + vim-pager? ( !minimal ) +" + +RDEPEND=" + !app-editors/vim + ~app-editors/vim-classic-core-${PV} + >=app-eselect/eselect-vi-1.1 + >=sys-libs/ncurses-5.2-r2:0= + acl? ( kernel_linux? ( sys-apps/acl ) ) + cscope? ( dev-util/cscope ) + gpm? ( >=sys-libs/gpm-1.19.3 ) + lua? ( + ${LUA_DEPS} + $(lua_gen_impl_dep 'deprecated' lua5-1) + ) + nls? ( virtual/libintl ) + perl? ( + ${GENTOO_PERL_DEPSTRING} + dev-lang/perl:= + ) + python? ( ${PYTHON_DEPS} ) + racket? ( dev-scheme/racket ) + ruby? ( ${RUBY_DEPS} ) + selinux? ( sys-libs/libselinux ) + sound? ( media-libs/libcanberra ) + tcl? ( dev-lang/tcl:0= ) + vim-pager? ( app-editors/vim-classic-core[-minimal] ) + X? ( x11-libs/libXt ) +" +DEPEND="${RDEPEND} + X? ( x11-base/xorg-proto ) +" +# configure runs the Lua interpreter +BDEPEND+=" + dev-build/autoconf + lua? ( ${LUA_DEPS} ) + nls? ( sys-devel/gettext ) +" +PDEPEND="!minimal? ( app-vim/gentoo-syntax )" + +# platform-specific checks (bug #898450 #898452): +# - 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" + + use lua && lua-single_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_unpack() { + default + if [[ ${PV} != 9999* ]] ; then + mv "${WORKDIR}/vim-classic-v${PV}" "${WORKDIR}/vim-classic-${PV}" || die + fi +} + +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 "mve.awk sed failed" + + # Read vimrc and gvimrc from /etc/vim + echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \ + >> "${S}"/src/feature.h || die "echo failed" + echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \ + >> "${S}"/src/feature.h || die "echo failed" + + # 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 -e \ + '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 + + # conditionally make the manpager.sh script + if use vim-pager; then + cat > "${S}"/runtime/macros/manpager.sh <<-_EOF_ || die "cat EOF failed" + #!/bin/sh + sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | \\ + vim \\ + -c 'let no_plugin_maps = 1' \\ + -c 'set nolist nomod ft=man ts=8' \\ + -c 'let g:showmarks_enable=0' \\ + -c 'runtime! macros/less.vim' - + _EOF_ + fi + + # 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 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 -e \ + 's# auto/config\.mk:#:#' src/Makefile || die "Makefile sed failed" + rm src/auto/configure || die "rm failed" + + # --with-features=huge forces on cscope even if we --disable it. We need + # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm) + if ! use cscope; then + sed -i -e \ + '/# define FEAT_CSCOPE/d' src/feature.h || die "couldn't disable cscope" + fi + + # 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. + local file + for file in /dev/pty/s* /dev/console /dev/hvc/* /dev/hvc*; do + if [[ -e ${file} ]]; then + addwrite ${file} + fi + done + + local myconf=( + --with-modified-by="Gentoo-${PVR} (RIP Bram)" + --enable-gui=no + --disable-darwin + ) + + if use minimal; then + myconf+=( + --with-features=tiny + --disable-nls + --disable-canberra + --disable-acl + --without-x + --disable-luainterp + --disable-perlinterp + --disable-pythoninterp + --disable-mzschemeinterp + --disable-rubyinterp + --disable-selinux + --disable-tclinterp + --disable-gpm + ) + else + use debug && append-flags "-DDEBUG" + + myconf+=( + --with-features=huge + $(use_enable sound canberra) + $(use_enable acl) + $(use_enable cscope) + $(use_enable gpm) + $(use_enable nls) + $(use_enable perl perlinterp) + $(use_enable python python3interp) + $(use_with python python3-command "${PYTHON}") + $(use_enable racket mzschemeinterp) + $(use_enable ruby rubyinterp) + $(use_enable selinux) + $(use_enable tcl tclinterp) + $(use_enable terminal) + ) + + if use lua; then + # -DLUA_COMPAT_OPENLIB=1 is required to enable the + # deprecated (in 5.1) luaL_openlib API (#874690) + use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1 + + myconf+=( + --enable-luainterp + $(use_with lua_single_target_luajit luajit) + --with-lua-prefix="${EPREFIX}/usr" + ) + fi + + # don't test USE=X here ... see bug #19115 + # but need to provide a way to link against X ... see bug #20093 + myconf+=( + $(use_with X x) + ) + fi + + # let package manager strip binaries + export ac_cv_prog_STRIP="$(type -P true ) faking strip" + + # keep 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() { + # The following allows emake to be used + emake -j1 -C src auto/osdef.h objects + + emake +} + +src_test() { + einfo + einfo "Starting vim tests. Several error messages will be shown" + einfo "while the tests run. This is normal behaviour and does not" + einfo "indicate a fault." + einfo + ewarn "If the tests fail, your terminal may be left in a strange" + ewarn "state. Usually, running 'reset' will fix this." + einfo + + # Don't let vim talk to X + unset DISPLAY + + # Arch and opensuse seem to do this and at this point, I'm willing + # to try anything to avoid random test hangs! + export TERM=xterm + + # See https://github.com/vim/vim/blob/f08b0eb8691ff09f98bc4beef986ece1c521655f/src/testdir/runtest.vim#L5 + # for more information on test variables we can use. + # Note that certain variables need vim-compatible regex (not PCRE), see e.g. + # http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml. + # + # Skipped tests: + # - Test_expand_star_star + # Hangs because of a recursive symlink in /usr/include/nodejs (bug #616680) + # - Test_exrc + # Looks in wrong location? (bug #742710) + # - Test_job_tty_in_out + # Fragile and depends on TERM(?) + # - Test_spelldump_bang + # Hangs. + # - Test_fuzzy_completion_env + # Too sensitive to leaked environment variables. + # - Test_term_mouse_multiple_clicks_to_select_mode + # Hangs. + # - Test_spelldump + # Hangs. + # - Test_glvs_* + # Depends on local network. + export TEST_SKIP_PAT='\(Test_expand_star_star\|Test_exrc\|Test_job_tty_in_out\|Test_spelldump_bang\|Test_fuzzy_completion_env\|Test_term_mouse_multiple_clicks_to_select_mode\|Test_spelldump\|Test_glvs_\)' + + # Don't do additional GUI tests. + emake -j1 -C src/testdir nongui +} + +# Call eselect vi update with --if-unset +# to respect user's choice (bug #187449) +eselect_vi_update() { + ebegin "Calling eselect vi update" + eselect vi update --if-unset + eend $? +} + +src_install() { + local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} + + # Note: Do not install symlinks for 'vi', 'ex', or 'view', as these are + # managed by eselect-vi + dobin src/vim + if ! use minimal ; then + dosym vim /usr/bin/vimdiff + fi + dosym vim /usr/bin/rvim + dosym vim /usr/bin/rview + if use vim-pager ; then + dosym ${vimfiles}/macros/less.sh /usr/bin/vimpager + dosym ${vimfiles}/macros/manpager.sh /usr/bin/vimmanpager + insinto ${vimfiles}/macros + doins runtime/macros/manpager.sh + fperms a+x ${vimfiles}/macros/manpager.sh + fi + + domenu runtime/vim.desktop + + newbashcomp "${FILESDIR}"/${PN}-completion vim + + # keep in sync with 'complete ... -F' list + bashcomp_alias vim ex vi view rvim rview vimdiff +} + +pkg_postinst() { + # update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # update desktop file mime cache + xdg_desktop_database_update + + # call eselect vi update + eselect_vi_update +} + +pkg_postrm() { + # update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # update desktop file mime cache + xdg_desktop_database_update + + # call eselect vi update + eselect_vi_update +} diff --git a/app-editors/vim-core/Manifest b/app-editors/vim-core/Manifest index 5d2dad07d4b6..2e778d817f8f 100644 --- a/app-editors/vim-core/Manifest +++ b/app-editors/vim-core/Manifest @@ -1,2 +1,4 @@ DIST vim-9.1.1652.tar.gz 18776578 BLAKE2B c4cc711ee996d6b7268c243c1fae01600d104763f6eee2abbe342f2cf9ee90fb6ee3f0b44fe4814ff47ae13c5a391510c3b711c92acbee591e290da621289029 SHA512 f1dfb1dc0fd834fa3ffb40c31f48de78b48225c9d67667f069ff8b23a6a76d534f3e228b936141616a33a0d73445626dcd2ff52a8571e9f4370a8fbcad9771d7 +DIST vim-9.2.1119.tar.gz 20196061 BLAKE2B 2ccd209c5b5c8bab08d37147ba33f1d1a0ef2e3d6c5e26e165159bbafee311ccd3b236f852e3e12796e4618476c26985a5eea2a27c31087e2d3c1ee2957da34b SHA512 4939487f25757d571d1dc0bfa4888ebaf5c8799818da1c09e0d4781b3e7b27020d974e4ce3fb6e2c4e61198c09d1a2a51585c965107850c078ef1ea6d33d9d72 DIST vim-patches-vim-9.1.1432-patches.tar.bz2 2618 BLAKE2B fe7c302c71fbf66f1921e1b55e2f67914ed104ab86e2a6cf2e6bf67c98214f13f1d8ff1ed7015ec41a5665c692946e20ec5bdf4806e789a70e34c0c888472739 SHA512 a794a7e4d9014d5508db7b205404f5a4b44748a82c5599a26c1ec6b06d3105f6cebf9a93a058f65ad853bbadf432034fc8257a7c77b4f3446331b9d66c19b3af +DIST vim-patches-vim-9.2.1119-patches.tar.bz2 2619 BLAKE2B 32fe08c18bf276a21cb7067cd3f8c61dd07f6e0613e8afe32d4616546e1a93e0b20a3306ee1a695474d660c6ae42cfd9666c9f36f0bfccbb033705598deb0543 SHA512 58fc52058b3404588ca29f85ae1eb2740cba434952b7ad5636f76937f09121fd5d8c026e2f2489277d1ef5fc9a9c8a182dfc86346b233f08269ef6b68a056160 diff --git a/app-editors/vim-core/metadata.xml b/app-editors/vim-core/metadata.xml index ae7f66852a04..c4211b30921e 100644 --- a/app-editors/vim-core/metadata.xml +++ b/app-editors/vim-core/metadata.xml @@ -1,6 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> <pkgmetadata> + <maintainer type="person"> + <email>arthurzam@gentoo.org</email> + <name>Arthur Zamarin</name> + </maintainer> <maintainer type="person" proxied="yes"> <email>xxc3ncoredxx@gmail.com</email> <name>Oskari Pirhonen</name> diff --git a/app-editors/vim-core/vim-core-9.2.1119.ebuild b/app-editors/vim-core/vim-core-9.2.1119.ebuild new file mode 100644 index 000000000000..c2955632ca65 --- /dev/null +++ b/app-editors/vim-core/vim-core-9.2.1119.ebuild @@ -0,0 +1,235 @@ +# Copyright 1999-2026 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.2" +VIM_PATCHES_VERSION="9.2.1119" +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" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-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-2.71" + +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 + --disable-hardcopy-pango + --without-wayland + --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/Manifest b/app-editors/vim/Manifest index 5d2dad07d4b6..2e778d817f8f 100644 --- a/app-editors/vim/Manifest +++ b/app-editors/vim/Manifest @@ -1,2 +1,4 @@ DIST vim-9.1.1652.tar.gz 18776578 BLAKE2B c4cc711ee996d6b7268c243c1fae01600d104763f6eee2abbe342f2cf9ee90fb6ee3f0b44fe4814ff47ae13c5a391510c3b711c92acbee591e290da621289029 SHA512 f1dfb1dc0fd834fa3ffb40c31f48de78b48225c9d67667f069ff8b23a6a76d534f3e228b936141616a33a0d73445626dcd2ff52a8571e9f4370a8fbcad9771d7 +DIST vim-9.2.1119.tar.gz 20196061 BLAKE2B 2ccd209c5b5c8bab08d37147ba33f1d1a0ef2e3d6c5e26e165159bbafee311ccd3b236f852e3e12796e4618476c26985a5eea2a27c31087e2d3c1ee2957da34b SHA512 4939487f25757d571d1dc0bfa4888ebaf5c8799818da1c09e0d4781b3e7b27020d974e4ce3fb6e2c4e61198c09d1a2a51585c965107850c078ef1ea6d33d9d72 DIST vim-patches-vim-9.1.1432-patches.tar.bz2 2618 BLAKE2B fe7c302c71fbf66f1921e1b55e2f67914ed104ab86e2a6cf2e6bf67c98214f13f1d8ff1ed7015ec41a5665c692946e20ec5bdf4806e789a70e34c0c888472739 SHA512 a794a7e4d9014d5508db7b205404f5a4b44748a82c5599a26c1ec6b06d3105f6cebf9a93a058f65ad853bbadf432034fc8257a7c77b4f3446331b9d66c19b3af +DIST vim-patches-vim-9.2.1119-patches.tar.bz2 2619 BLAKE2B 32fe08c18bf276a21cb7067cd3f8c61dd07f6e0613e8afe32d4616546e1a93e0b20a3306ee1a695474d660c6ae42cfd9666c9f36f0bfccbb033705598deb0543 SHA512 58fc52058b3404588ca29f85ae1eb2740cba434952b7ad5636f76937f09121fd5d8c026e2f2489277d1ef5fc9a9c8a182dfc86346b233f08269ef6b68a056160 diff --git a/app-editors/vim/metadata.xml b/app-editors/vim/metadata.xml index 0ee0c646e63e..a6c1c9674b88 100644 --- a/app-editors/vim/metadata.xml +++ b/app-editors/vim/metadata.xml @@ -1,6 +1,10 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> <pkgmetadata> + <maintainer type="person"> + <email>arthurzam@gentoo.org</email> + <name>Arthur Zamarin</name> + </maintainer> <maintainer type="person" proxied="yes"> <email>xxc3ncoredxx@gmail.com</email> <name>Oskari Pirhonen</name> @@ -16,6 +20,8 @@ <use> <flag name="crypt">Use <pkg>dev-libs/libsodium</pkg> for crypto support</flag> <flag name="cscope">Enable cscope interface</flag> + <flag name="pango">Render |:hardcopy| output with <pkg>x11-libs/pango</pkg> + and <pkg>x11-libs/cairo</pkg> rather than Vim's own PostScript generator</flag> <flag name="racket">Enable support for Scheme using <pkg>dev-scheme/racket</pkg> </flag> <flag name="terminal">Enable terminal emulation support</flag> diff --git a/app-editors/vim/vim-9.2.1119.ebuild b/app-editors/vim/vim-9.2.1119.ebuild new file mode 100644 index 000000000000..3a7fe745088f --- /dev/null +++ b/app-editors/vim/vim-9.2.1119.ebuild @@ -0,0 +1,400 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Please bump with app-editors/vim-core and app-editors/gvim + +VIM_VERSION="9.2" +VIM_PATCHES_VERSION="9.2.1119" + +LUA_COMPAT=( lua5-{1,3,4} luajit ) +PYTHON_COMPAT=( python3_{13..14} ) +PYTHON_REQ_USE="threads(+)" +USE_RUBY="ruby32 ruby33" +GENTOO_DEPEND_ON_PERL=no + +inherit vim-doc flag-o-matic lua-single perl-module python-single-r1 ruby-single shell-completion toolchain-funcs desktop xdg-utils + +if [[ ${PV} == 9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/vim/vim.git" +else + SRC_URI="https://github.com/vim/vim/archive/v${PV}.tar.gz -> ${P}.tar.gz + https://gitweb.gentoo.org/proj/vim-patches.git/snapshot/vim-patches-vim-${VIM_PATCHES_VERSION}-patches.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris" +fi + +DESCRIPTION="Vim, an improved vi-style text editor" +HOMEPAGE="https://www.vim.org https://github.com/vim/vim" + +LICENSE="vim" +SLOT="0" +IUSE="X acl crypt cscope debug gpm lua minimal nls pango perl python racket ruby selinux sound tcl terminal vim-pager wayland ${GENTOO_PERL_USESTRING}" +REQUIRED_USE=" + lua? ( ${LUA_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) + pango? ( !minimal ) + vim-pager? ( !minimal ) +" + +RDEPEND=" + >=app-eselect/eselect-vi-1.1 + >=sys-libs/ncurses-5.2-r2:0= + nls? ( virtual/libintl ) + acl? ( kernel_linux? ( sys-apps/acl ) ) + pango? ( + x11-libs/cairo + >=x11-libs/pango-1.44 + ) + crypt? ( dev-libs/libsodium:= ) + cscope? ( dev-util/cscope ) + gpm? ( >=sys-libs/gpm-1.19.3 ) + lua? ( ${LUA_DEPS} + $(lua_gen_impl_dep 'deprecated' lua5-1) + ) + ~app-editors/vim-core-${PV} + vim-pager? ( app-editors/vim-core[-minimal] ) + perl? ( + ${GENTOO_PERL_DEPSTRING} + dev-lang/perl:= + ) + python? ( ${PYTHON_DEPS} ) + racket? ( dev-scheme/racket ) + ruby? ( ${RUBY_DEPS} ) + selinux? ( sys-libs/libselinux ) + sound? ( media-libs/libcanberra ) + tcl? ( dev-lang/tcl:0= ) + wayland? ( dev-libs/wayland ) + X? ( x11-libs/libXt ) +" +DEPEND="${RDEPEND} + X? ( x11-base/xorg-proto ) +" +# configure runs the Lua interpreter +BDEPEND=" + >=dev-build/autoconf-2.71 + lua? ( ${LUA_DEPS} ) + nls? ( sys-devel/gettext ) +" +PDEPEND="!minimal? ( app-vim/gentoo-syntax )" + +if [[ ${PV} != 9999* ]]; then + # Gentoo patches to fix runtime issues, cross-compile errors, etc + PATCHES=( + "${WORKDIR}/vim-patches-vim-${VIM_PATCHES_VERSION}-patches" + ) +fi + +# platform-specific checks (bug #898452): +# - 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" + + use lua && lua-single_pkg_setup + use python && python-single-r1_pkg_setup +} + +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 "mve.awk sed failed" + + # Read vimrc and gvimrc from /etc/vim + echo '#define SYS_VIMRC_FILE "'${EPREFIX}'/etc/vim/vimrc"' \ + >> "${S}"/src/feature.h || die "echo failed" + echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' \ + >> "${S}"/src/feature.h || die "echo failed" + + # 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 -e \ + '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 + + # conditionally make the manpager.sh script + if use vim-pager; then + cat > "${S}"/runtime/macros/manpager.sh <<-_EOF_ || die "cat EOF failed" + #!/bin/sh + sed -e 's/\x1B\[[[:digit:]]\+m//g' | col -b | \\ + vim \\ + -c 'let no_plugin_maps = 1' \\ + -c 'set nolist nomod ft=man ts=8' \\ + -c 'let g:showmarks_enable=0' \\ + -c 'runtime! macros/less.vim' - + _EOF_ + fi + + # 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 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" + rm src/auto/configure || die "rm 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 + + local myconf=() + if use minimal; then + myconf=( + --with-features=tiny + --disable-hardcopy-pango + --disable-nls + --disable-canberra + --disable-acl + --enable-gui=no + --without-wayland + --without-x + --disable-darwin + --disable-luainterp + --disable-perlinterp + --disable-pythoninterp + --disable-mzschemeinterp + --disable-rubyinterp + --disable-selinux + --disable-tclinterp + --disable-gpm + ) + else + use debug && append-flags "-DDEBUG" + + myconf=( + --with-features=huge + $(use_enable sound canberra) + $(use_enable acl) + $(use_enable crypt libsodium) + $(use_enable cscope) + $(use_enable gpm) + $(use_enable nls) + # Render :hardcopy with system Pango/Cairo instead of Vim's + # own PostScript generator: proper Unicode, and PDF output. + $(use_enable pango hardcopy-pango) + $(use_enable perl perlinterp) + $(use_enable python python3interp) + $(use_with python python3-command "${PYTHON}") + $(use_enable racket mzschemeinterp) + $(use_enable ruby rubyinterp) + $(use_enable selinux) + $(use_enable tcl tclinterp) + $(use_enable terminal) + $(use_with wayland) + ) + + # --with-features=huge forces on cscope even if we --disable it. We need + # to sed this out to avoid screwiness. (1 Sep 2004 ciaranm) + if ! use cscope; then + sed -i -e \ + '/# define FEAT_CSCOPE/d' src/feature.h || die "sed failed" + fi + + if use lua; then + # -DLUA_COMPAT_OPENLIB=1 is required to enable the + # deprecated (in 5.1) luaL_openlib API (#874690) + use lua_single_target_lua5-1 && append-cppflags -DLUA_COMPAT_OPENLIB=1 + + myconf+=( + --enable-luainterp + $(use_with lua_single_target_luajit luajit) + --with-lua-prefix="${EPREFIX}/usr" + ) + fi + + # don't test USE=X here ... see bug #19115 + # but need to provide a way to link against X ... see bug #20093 + myconf+=( + --enable-gui=no + --disable-darwin + $(use_with X x) + ) + fi + + # let package manager strip binaries + export ac_cv_prog_STRIP="$(type -P true ) faking strip" + + # keep 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 \ + --with-modified-by="Gentoo-${PVR} (RIP Bram)" \ + "${myconf[@]}" +} + +src_compile() { + # The following allows emake to be used + emake -j1 -C src auto/osdef.h objects + + emake +} + +src_test() { + einfo + einfo "Starting vim tests. Several error messages will be shown" + einfo "while the tests run. This is normal behaviour and does not" + einfo "indicate a fault." + einfo + ewarn "If the tests fail, your terminal may be left in a strange" + ewarn "state. Usually, running 'reset' will fix this." + einfo + + # Don't let vim talk to X + unset DISPLAY + + # Arch and opensuse seem to do this and at this point, I'm willing + # to try anything to avoid random test hangs! + export TERM=xterm + + # See https://github.com/vim/vim/blob/f08b0eb8691ff09f98bc4beef986ece1c521655f/src/testdir/runtest.vim#L5 + # for more information on test variables we can use. + # Note that certain variables need vim-compatible regex (not PCRE), see e.g. + # http://www.softpanorama.org/Editors/Vimorama/vim_regular_expressions.shtml. + local skip_tests=( + # Hangs because of a recursive symlink in /usr/include/nodejs (bug #616680) + Test_expand_star_star + # Looks in wrong location? (bug #742710) + Test_exrc + # Fragile and depends on TERM(?) + Test_job_tty_in_out + # Hangs. + Test_spelldump_bang + # Too sensitive to leaked environment variables. + Test_fuzzy_completion_env + # Hangs. + Test_term_mouse_multiple_clicks_to_select_mode + # Hangs. + Test_spelldump + # Depends on local network. + Test_glvs_ + # sensitive to the terminal geometry + Test_splitkeep_screen_smoothscroll + ) + # \v (very magic) so the list can be joined with a plain '|' + local -x TEST_SKIP_PAT="\\v($(IFS='|'; echo "${skip_tests[*]}"))" + + local skip_test_files=( + # TODO + test_crypt.vim + # Tests needing X + test_clientserver.vim + test_vim9_builtin.vim + ) + local f + for f in "${skip_test_files[@]}"; do + echo "throw 'Skipped: needs X'" > "src/testdir/${f}" || die + done + + emake -j1 -C src/testdir nongui +} + +# Call eselect vi update with --if-unset +# to respect user's choice (bug #187449) +eselect_vi_update() { + ebegin "Calling eselect vi update" + eselect vi update --if-unset + eend $? +} + +src_install() { + local vimfiles=/usr/share/vim/vim${VIM_VERSION/.} + + # Note: Do not install symlinks for 'vi', 'ex', or 'view', as these are + # managed by eselect-vi + dobin src/vim + if ! use minimal ; then + dosym vim /usr/bin/vimdiff + fi + dosym vim /usr/bin/rvim + dosym vim /usr/bin/rview + if use vim-pager ; then + dosym ${vimfiles}/macros/less.sh /usr/bin/vimpager + dosym ${vimfiles}/macros/manpager.sh /usr/bin/vimmanpager + insinto ${vimfiles}/macros + doins runtime/macros/manpager.sh + fperms a+x ${vimfiles}/macros/manpager.sh + fi + + domenu runtime/vim.desktop + + newbashcomp "${FILESDIR}"/${PN}-completion ${PN} + + # keep in sync with 'complete ... -F' list + bashcomp_alias vim ex vi view rvim rview vimdiff +} + +pkg_postinst() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Call eselect vi update + eselect_vi_update + + # update desktop file mime cache + xdg_desktop_database_update +} + +pkg_postrm() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Call eselect vi update + eselect_vi_update + + # update desktop file mime cache + xdg_desktop_database_update +} |
