diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /app-editors/gvim | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'app-editors/gvim')
-rw-r--r-- | app-editors/gvim/Manifest | 9 | ||||
-rw-r--r-- | app-editors/gvim/files/gvim-completion | 40 | ||||
-rw-r--r-- | app-editors/gvim/files/gvim.desktop-r2 | 9 | ||||
-rw-r--r-- | app-editors/gvim/files/gvim.svg | 94 | ||||
-rw-r--r-- | app-editors/gvim/files/gvim.xpm | 46 | ||||
-rw-r--r-- | app-editors/gvim/files/gvimrc-r1 | 29 | ||||
-rw-r--r-- | app-editors/gvim/gvim-7.4.273.ebuild | 398 | ||||
-rw-r--r-- | app-editors/gvim/gvim-7.4.591.ebuild | 414 | ||||
-rw-r--r-- | app-editors/gvim/gvim-7.4.622.ebuild | 420 | ||||
-rw-r--r-- | app-editors/gvim/gvim-7.4.670.ebuild | 420 | ||||
-rw-r--r-- | app-editors/gvim/gvim-7.4.712.ebuild | 421 | ||||
-rw-r--r-- | app-editors/gvim/gvim-7.4.738.ebuild | 416 | ||||
-rw-r--r-- | app-editors/gvim/gvim-7.4.769.ebuild | 416 | ||||
-rw-r--r-- | app-editors/gvim/gvim-9999.ebuild | 416 | ||||
-rw-r--r-- | app-editors/gvim/metadata.xml | 13 |
15 files changed, 3561 insertions, 0 deletions
diff --git a/app-editors/gvim/Manifest b/app-editors/gvim/Manifest new file mode 100644 index 000000000000..e2e8b9ba4b57 --- /dev/null +++ b/app-editors/gvim/Manifest @@ -0,0 +1,9 @@ +DIST vim-7.4.542-gentoo-patches.tar.bz2 3307 SHA256 0eb635f13e199de77846e0d363a473882f2186f138158271fabf0975747a2f3d SHA512 446c66764dac2533cc2f2b3d50481971d4c63a4e81d94c545862a1be620179fdcd81a79f2d81737d1188812a6ad41d90e2a752a05acf6913e7a71464f7cecdd9 WHIRLPOOL cfca8feef0eb8096897ef751afb0427acddd008530ded6cf908fcff51be9713da4ea3e5e613d544c5caba400d664ae19ca70925df3a218bec5c8be6f69aadda2 +DIST vim-7.4.591.patch.xz 805892 SHA256 6556595e75666b35cce58dcd585605e3d8910477761cee0fb34317d8969e0344 SHA512 fd98fa6e84fb1b6dc3c80f1e68694ee3711678e66234953962c6bad1aaf045c053c3824d25dd3df9842951e9c5e3ca630b65fafedc30fa6c31313822e3518968 WHIRLPOOL 47f5a75d2faec35460ee0af565437da275b2cd18259645456a76ba79d289d7b8f7392cde95d6cb5da5e2b4657043c11f5f363e99d1cb8457f83dfa884f5ab238 +DIST vim-7.4.622.patch.xz 816104 SHA256 f9d6624b7c8e5cbae749eff3f3bef30f7b10554fa04edf7fe3c85828b2b2e7a8 SHA512 544258cca6e46291743f95acba3dbc7844fddf0f579706cb7903f338b359b852cb4818238e7402e2b5413fa1a2ca9084246ffe39a7c23d29d14883594caa65c3 WHIRLPOOL 2b92e418892bc99c45e6b56592635804394e282c8f0959addf1a93434dccdfb06fa75f39f171624f484cc6a6420bfd6ea6a9d30b1b0a9694cb8a14cbf42e456e +DIST vim-7.4.670.patch.xz 845000 SHA256 5ffbb05466c68aea08fda6067a6a46e068beece3e26d33098964e5e472439ec0 SHA512 04e2c54fe4b6afba6f8b123ef24d63e898667c808083b91ea5affa6607ad1661b081fa0bd6536a5a2260dbd2b818e7942ef3896719ed82fcc071355239cba536 WHIRLPOOL 6b632e757101d4a54989bd85c0b6186326573794504dc0dd0ebf25e14fca5827b4a884677c380381359968687e40d4aa4ea27b42d5419538a0e843c4356227e6 +DIST vim-7.4.712.patch.xz 890304 SHA256 fa385439a55703715704b7163dc7ac4a53908d908bd456af432dd5618144c630 SHA512 639847f6c5e92c5838b259f83ffb8b473e8ad7142589e72e2dcd0d51a9e9d272c29ec4fd4239ee21bcf5599f3cc6cc790aee02fe2b860f7d79ce1d3a811a6dd0 WHIRLPOOL f9fe642fe68f324e2e68d1fcdda80d15e2eac6e7a246561728fa467c90e271cd83aab6b24adfec65977ab12cf0fd9ec5c1848bbfdc2342e63114f321234e95d9 +DIST vim-7.4.738.tar.gz 12178346 SHA256 f95cf39278ca67837538f8146dd4701de4a4da610d95687da252d458137dcb40 SHA512 4ef990c5b869a571f0ddafac7c14ef17b62e2a9e2e74f1adaa8a69f92f3c6f56a21f60a3b53cbb64922df8c709d4e8ba9aee081476ce90f5665b1124a7de9a3a WHIRLPOOL 92e9c019f2e0677fb2db99995f56b49a034abe5da2051d0012c05e6f74ab88070b635e5159c09c6635d69c23fc81afafdc11e37e17e9338a9ca41de9381cd1a1 +DIST vim-7.4.769.tar.gz 12189506 SHA256 d9b9c3af27161545a1e086e1ee9485432c0b1a792a1a59755f04ef94136c5042 SHA512 ce3917cc68dba8b69696eb43436f90347c68a687f1e8c4b2f15f4a232ff7ce1a581a61737042ec49548d78c5f010e55e4c40b051b1a2574bbc27146a9249f15c WHIRLPOOL 230304892e501ef9851bf9f0c9fc9c888bfe1ad2cd703bcd62c449866e28308027c37c7ed466966951ec9c5feb5d9ec82e843528861212cb40a5bf4cec6e8947 +DIST vim-7.4.tar.bz2 9843297 SHA256 d0f5a6d2c439f02d97fa21bd9121f4c5abb1f6cd8b5a79d3ca82867495734ade SHA512 65d55da556ee283a364b376d251b70e430b7a157bb5a8ee89565060ff9937907966d416cffd33f701b3314d0fdf16efe00065f66bc8459469f5ae2f713418e0e WHIRLPOOL 914fc2c4fd485196410d853990bb5cc4c0071bc36dc0794655ec05cc0b5f7d2971dea780cc7293fcfbd4495a30a7437a3b1e33a2b6795c10a9f05a2eac3ca6f4 +DIST vim-patches-7.4.273.patch.bz2 506378 SHA256 065447179d22602315e2965d135cf9f1db4394ff5655520719f6338ff29e89ca SHA512 029a5cef758e4b201eabbc82458f3e1c3674582715a8c78a7270f3ecd57980b1cef66a0152526fd3505685c27c07f6e6742da48da9ad9546e3cfc2a5e7c11164 WHIRLPOOL 305322e991e9640b80147dd5ceac9dd6dae93a07610f807bbf01c0fdf37cba67ea41a1b2720c8a43da0161c57e0a522086f135efc712fb0106497a21288a872a diff --git a/app-editors/gvim/files/gvim-completion b/app-editors/gvim/files/gvim-completion new file mode 100644 index 000000000000..6488a82bc76e --- /dev/null +++ b/app-editors/gvim/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/files/gvim.desktop-r2 b/app-editors/gvim/files/gvim.desktop-r2 new file mode 100644 index 000000000000..45b55d036929 --- /dev/null +++ b/app-editors/gvim/files/gvim.desktop-r2 @@ -0,0 +1,9 @@ +[Desktop Entry] +Name=gVim +Comment=A highly configurable text editor +Exec=gvim -f %F +Icon=gvim +Terminal=false +Type=Application +MimeType=text/plain; +Categories=Development; diff --git a/app-editors/gvim/files/gvim.svg b/app-editors/gvim/files/gvim.svg new file mode 100644 index 000000000000..b82742a79012 --- /dev/null +++ b/app-editors/gvim/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/gvim/files/gvim.xpm b/app-editors/gvim/files/gvim.xpm new file mode 100644 index 000000000000..694720ac309d --- /dev/null +++ b/app-editors/gvim/files/gvim.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *magick[] = { +/* columns rows colors chars-per-pixel */ +"32 32 8 1", +" c Gray0", +". c #000080", +"X c #008000", +"o c Green", +"O c #808080", +"+ c #c0c0c0", +"@ c Gray100", +"# c None", +/* pixels */ +"############### ###############", +"############## oo ##############", +"### oXXo # ###", +"## @@@@@@@@@@@ XXXo @@@@@@@@@ ##", +"## @+++++++++++ XXX @+++++++++ #", +"### ++++++++++O XXXX ++++++++O #", +"#### O++++++OO XXXXXX O+++++OO #", +"#### @++++++O XXXXXX @+++++OO ##", +"#### @++++++O XXXXX @@++++OO ###", +"#### @++++++O XXXX @@++++OO ####", +"#### @++++++O XXX @@++++OO #####", +"#### @++++++O XX @@++++OO . ####", +"### @++++++O X @@++++OO XX. ###", +"## o @++++++O @@++++OO XXXX. ##", +"# oX @++++++O @@++++OO XXXXXX. #", +" oXX @++++++O@@++++OO XXXXXXXX. ", +" oXX @++++++O@++++OO XXXXXXXXX. ", +"# oX @++++++O++++OO XXXXXXXXX. #", +"## o @++++++++++ XXXXXXXXX. ##", +"### @+++++++++ ++ XXXXXXXX. ###", +"#### @+++++++++ ++ XXXXXXX. ####", +"#### @++++++++O X X ###", +"#### @+++++++O +++ +++ +++ ++ ##", +"#### @++++++OO ++ ++++++++++ #", +"#### @+++++OO ++ ++..++ + ##", +"#### @++++OO X ++ ++. ++ ++ ##", +"#### @+++OO XX ++ ++ ++ ++ ##", +"#### @++OO X ++ ++ ++ ++ ###", +"##### +OO ## +++ ++ ++ +++ ##", +"###### #### . ## ## ###", +"############## .. ##############", +"############### ###############" +}; diff --git a/app-editors/gvim/files/gvimrc-r1 b/app-editors/gvim/files/gvimrc-r1 new file mode 100644 index 000000000000..dcad07d09717 --- /dev/null +++ b/app-editors/gvim/files/gvimrc-r1 @@ -0,0 +1,29 @@ +scriptencoding utf-8 +" ^^ Please leave the above line at the start of the file. + +" Default configuration file for gvim +" $Id$ +" +" 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/gvim-7.4.273.ebuild b/app-editors/gvim/gvim-7.4.273.ebuild new file mode 100644 index 000000000000..a60f95d7b5eb --- /dev/null +++ b/app-editors/gvim/gvim-7.4.273.ebuild @@ -0,0 +1,398 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +VIM_VERSION="7.4" +PYTHON_COMPAT=( python{2_7,3_3,3_4} ) +PYTHON_REQ_USE=threads +inherit eutils vim-doc flag-o-matic fdo-mime versionator bash-completion-r1 prefix python-single-r1 + +if [[ ${PV} == 9999* ]] ; then + inherit mercurial + EHG_REPO_URI="https://vim.googlecode.com/hg/" + EHG_PROJECT="vim" +else + VIM_ORG_PATCHES="vim-patches-${PV}.patch.bz2" + + SRC_URI="ftp://ftp.vim.org/pub/vim/unix/vim-${VIM_VERSION}.tar.bz2 + http://dev.gentoo.org/~radhermit/vim/${VIM_ORG_PATCHES}" + KEYWORDS="alpha amd64 arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris" +fi + +DESCRIPTION="GUI version of the Vim text editor" +HOMEPAGE="http://www.vim.org/" + +SLOT="0" +LICENSE="vim" +IUSE="acl aqua cscope debug gnome gtk lua luajit motif neXt netbeans nls perl python racket ruby selinux session tcl" +REQUIRED_USE=" + python? ( ${PYTHON_REQUIRED_USE} ) + luajit? ( lua ) +" + +RDEPEND=" + ~app-editors/vim-core-${PV} + >=app-eselect/eselect-vi-1.1 + >=sys-libs/ncurses-5.2-r2 + x11-libs/libXext + x11-libs/libXt + acl? ( kernel_linux? ( sys-apps/acl ) ) + !aqua? ( + gtk? ( + >=x11-libs/gtk+-2.6:2 + x11-libs/libXft + gnome? ( >=gnome-base/libgnomeui-2.6 ) + ) + !gtk? ( + motif? ( >=x11-libs/motif-2.3:0 ) + !motif? ( + neXt? ( x11-libs/neXtaw ) + !neXt? ( x11-libs/libXaw ) + ) + ) + ) + cscope? ( dev-util/cscope ) + lua? ( + luajit? ( dev-lang/luajit:2= ) + !luajit? ( dev-lang/lua:0[deprecated] ) + ) + nls? ( virtual/libintl ) + perl? ( dev-lang/perl:= ) + python? ( ${PYTHON_DEPS} ) + racket? ( dev-scheme/racket ) + ruby? ( || ( dev-lang/ruby:2.1 dev-lang/ruby:2.0 dev-lang/ruby:1.9 dev-lang/ruby:1.8 ) ) + selinux? ( sys-libs/libselinux ) + session? ( x11-libs/libSM ) + tcl? ( dev-lang/tcl:0= ) +" +DEPEND="${RDEPEND} + dev-util/ctags + sys-devel/autoconf + virtual/pkgconfig + nls? ( sys-devel/gettext ) +" + +S=${WORKDIR}/vim${VIM_VERSION/.} + +pkg_setup() { + # people with broken alphabets run into trouble. bug 82186. + unset LANG LC_ALL + export LC_COLLATE="C" + + # Gnome sandbox silliness. bug #114475. + mkdir -p "${T}"/home + export HOME="${T}"/home + + use python && python-single-r1_pkg_setup +} + +src_prepare() { + if [[ ${PV} != 9999* ]] ; then + if [[ -f "${WORKDIR}"/${VIM_ORG_PATCHES%.bz2} ]] ; then + # Apply any patches available from vim.org for this version + epatch "${WORKDIR}"/${VIM_ORG_PATCHES%.bz2} + fi + fi + + # Fixup a script to use awk instead of nawk + sed -i '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 + echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h + + # 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.in || die 'sed failed' + + # Don't be fooled by /usr/include/libc.h. When found, vim thinks + # this is NeXT, but it's actually just a file in dev-libs/9libs + # This fixes bug 43885 (20 Mar 2004 agriffis) + sed -i 's/ libc\.h / /' "${S}"/src/configure.in || 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" ; done + + # Try to avoid sandbox problems. Bug #114475. + if [[ -d "${S}"/src/po ]] ; then + sed -i '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ + "${S}"/src/po/Makefile + fi + + if version_is_at_least 7.3.122 ; then + cp "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk + fi + + # Bug #378107 - Build properly with >=perl-core/ExtUtils-ParseXS-3.20.0 + if version_is_at_least 7.3 ; then + sed -i "s:\\\$(PERLLIB)/ExtUtils/xsubpp:${EPREFIX}/usr/bin/xsubpp:" \ + "${S}"/src/Makefile || die 'sed for ExtUtils-ParseXS failed' + fi + + epatch_user +} + +src_configure() { + local myconf + + # Fix bug 37354: Disallow -funroll-all-loops on amd64 + # Bug 57859 suggests that we want to do this for all archs + filter-flags -funroll-all-loops + + # 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.in 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 -f src/auto/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 + [[ -e ${file} ]] && addwrite $file + done + + use debug && append-flags "-DDEBUG" + + myconf="--with-features=huge --disable-gpm --enable-multibyte" + myconf+=" $(use_enable acl)" + myconf+=" $(use_enable cscope)" + myconf+=" $(use_enable lua luainterp)" + myconf+=" $(use_with luajit)" + myconf+=" $(use_enable netbeans)" + myconf+=" $(use_enable nls)" + myconf+=" $(use_enable perl perlinterp)" + myconf+=" $(use_enable racket mzschemeinterp)" + myconf+=" $(use_enable ruby rubyinterp)" + myconf+=" $(use_enable selinux)" + myconf+=" $(use_enable session xsmp)" + myconf+=" $(use_enable tcl tclinterp)" + + if use python ; then + if [[ ${EPYTHON} == python3* ]] ; then + myconf+=" --enable-python3interp" + export vi_cv_path_python3="${PYTHON}" + else + myconf+=" --enable-pythoninterp" + export vi_cv_path_python="${PYTHON}" + fi + else + myconf+=" --disable-pythoninterp --disable-python3interp" + fi + + # --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 '/# define FEAT_CSCOPE/d' src/feature.h || \ + die "couldn't disable cscope" + fi + + # gvim's GUI preference order is as follows: + # aqua CARBON (not tested) + # -aqua gtk gnome GNOME2 + # -aqua gtk -gnome GTK2 + # -aqua -gtk motif MOTIF + # -aqua -gtk -motif neXt NEXTAW + # -aqua -gtk -motif -neXt ATHENA + echo ; echo + if use aqua ; then + einfo "Building gvim with the Carbon GUI" + myconf+=" --enable-darwin --enable-gui=carbon" + elif use gtk ; then + myconf+=" --enable-gtk2-check" + if use gnome ; then + einfo "Building gvim with the Gnome 2 GUI" + myconf+=" --enable-gui=gnome2" + else + einfo "Building gvim with the gtk+-2 GUI" + myconf+=" --enable-gui=gtk2" + fi + elif use motif ; then + einfo "Building gvim with the MOTIF GUI" + myconf+=" --enable-gui=motif" + elif use neXt ; then + einfo "Building gvim with the neXtaw GUI" + myconf+=" --enable-gui=nextaw" + else + einfo "Building gvim with the Athena GUI" + myconf+=" --enable-gui=athena" + fi + echo ; echo + + # Let Portage do the stripping. Some people like that. + export ac_cv_prog_STRIP="$(type -P true ) faking strip" + + # Keep Gentoo Prefix env contained within the EPREFIX + use prefix && myconf+=" --without-local-dir" + + if [[ ${CHOST} == *-interix* ]]; then + # avoid finding of this function, to avoid having to patch either + # configure or the source, which would be much more hackish. + # after all vim does it right, only interix is badly broken (again) + export ac_cv_func_sigaction=no + fi + + econf \ + --with-modified-by=Gentoo-${PVR} \ + --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() { + echo + 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." + echo + ewarn "If the tests fail, your terminal may be left in a strange" + ewarn "state. Usually, running 'reset' will fix this." + echo + + # Don't let vim talk to X + unset DISPLAY + + # We've got to call make test from within testdir, since the Makefiles + # don't pass through our VIMPROG argument + cd "${S}"/src/testdir + + # Test 49 won't work inside a portage environment + einfo "Test 49 isn't sandbox-friendly, so it will be skipped." + sed -i 's~test49.out~~g' Makefile + + # We don't want to rebuild vim before running the tests + sed -i 's,: \$(VIMPROG),: ,' Makefile + + # 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 + + # Don't try to do the additional GUI test + emake -j1 VIMPROG=../testvim nongui +} + +# Make convenience symlinks, hopefully without stepping on toes. Some +# of these links are "owned" by the vim ebuild when it is installed, +# but they might be good for gvim as well (see bug 45828) +update_vim_symlinks() { + has "${EAPI:-0}" 0 1 2 && use !prefix && EROOT="${ROOT}" + local f syms + syms="vimdiff rvim rview" + einfo "Calling eselect vi update..." + # Call this with --if-unset to respect user's choice (bug 187449) + eselect vi update --if-unset + + # Make or remove convenience symlink, vim -> gvim + if [[ -f "${EROOT}"/usr/bin/gvim ]]; then + ln -s gvim "${EROOT}"/usr/bin/vim 2>/dev/null + elif [[ -L "${EROOT}"/usr/bin/vim && ! -f "${EROOT}"/usr/bin/vim ]]; then + rm "${EROOT}"/usr/bin/vim + fi + + # Make or remove convenience symlinks to vim + if [[ -f "${EROOT}"/usr/bin/vim ]]; then + for f in ${syms}; do + ln -s vim "${EROOT}"/usr/bin/${f} 2>/dev/null + done + else + for f in ${syms}; do + if [[ -L "${EROOT}"/usr/bin/${f} && ! -f "${EROOT}"/usr/bin/${f} ]]; then + rm -f "${EROOT}"/usr/bin/${f} + fi + done + fi + + # This will still break if you merge then remove the vi package, + # but there's only so much you can do, eh? Unfortunately we don't + # have triggers like are done in rpm-land. +} + +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 + + dodir /usr/share/man/man1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gvim.1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gview.1 + echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/gvimdiff.1 + + insinto /etc/vim + newins "${FILESDIR}"/gvimrc-r1 gvimrc + eprefixify "${ED}"/etc/vim/gvimrc + + newmenu "${FILESDIR}"/gvim.desktop-r2 gvim.desktop + doicon "${FILESDIR}"/gvim.xpm + + # bash completion script, bug #79018. + newbashcomp "${FILESDIR}"/${PN}-completion ${PN} + + # We shouldn't be installing the ex or view man page symlinks, as they + # are managed by eselect-vi + rm -f "${ED}"/usr/share/man/man1/{ex,view}.1 +} + +pkg_postinst() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Update fdo mime stuff, bug #78394 + fdo-mime_mime_database_update + + if [[ -z ${REPLACING_VERSIONS} ]] ; then + echo + elog "Vim 7 includes an integrated spell checker. You need to install" + elog "word list files before you can use it. There are ebuilds for" + elog "some of these named app-vim/vim-spell-*. If your language of" + elog "choice is not included, please consult vim-spell.eclass for" + elog "instructions on how to make a package." + echo + ewarn "Note that the English word lists are no longer installed by" + ewarn "default." + echo + fi + + # Make convenience symlinks + update_vim_symlinks +} + +pkg_postrm() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Update fdo mime stuff, bug #78394 + fdo-mime_mime_database_update + + # Make convenience symlinks + update_vim_symlinks +} diff --git a/app-editors/gvim/gvim-7.4.591.ebuild b/app-editors/gvim/gvim-7.4.591.ebuild new file mode 100644 index 000000000000..584b22786fb6 --- /dev/null +++ b/app-editors/gvim/gvim-7.4.591.ebuild @@ -0,0 +1,414 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +VIM_VERSION="7.4" +PYTHON_COMPAT=( python{2_7,3_3,3_4} ) +PYTHON_REQ_USE=threads +inherit eutils vim-doc flag-o-matic fdo-mime versionator bash-completion-r1 prefix python-single-r1 + +if [[ ${PV} == 9999* ]] ; then + inherit mercurial + EHG_REPO_URI="https://vim.googlecode.com/hg/" + EHG_PROJECT="vim" +else + VIM_ORG_PATCH="vim-${PV}.patch.xz" + SRC_URI="ftp://ftp.vim.org/pub/vim/unix/vim-${VIM_VERSION}.tar.bz2 + http://dev.gentoo.org/~radhermit/vim/${VIM_ORG_PATCH} + http://dev.gentoo.org/~radhermit/vim/vim-7.4.542-gentoo-patches.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris" +fi + +DESCRIPTION="GUI version of the Vim text editor" +HOMEPAGE="http://www.vim.org/" + +SLOT="0" +LICENSE="vim" +IUSE="acl aqua cscope debug gnome gtk lua luajit motif neXt netbeans nls perl python racket ruby selinux session tcl" +REQUIRED_USE=" + python? ( ${PYTHON_REQUIRED_USE} ) + luajit? ( lua ) +" + +RDEPEND=" + ~app-editors/vim-core-${PV} + >=app-eselect/eselect-vi-1.1 + >=sys-libs/ncurses-5.2-r2 + x11-libs/libXext + x11-libs/libXt + acl? ( kernel_linux? ( sys-apps/acl ) ) + !aqua? ( + gtk? ( + >=x11-libs/gtk+-2.6:2 + x11-libs/libXft + gnome? ( >=gnome-base/libgnomeui-2.6 ) + ) + !gtk? ( + motif? ( >=x11-libs/motif-2.3:0 ) + !motif? ( + neXt? ( x11-libs/neXtaw ) + !neXt? ( x11-libs/libXaw ) + ) + ) + ) + cscope? ( dev-util/cscope ) + lua? ( + luajit? ( dev-lang/luajit:2= ) + !luajit? ( dev-lang/lua:0[deprecated] ) + ) + nls? ( virtual/libintl ) + perl? ( dev-lang/perl:= ) + python? ( ${PYTHON_DEPS} ) + racket? ( dev-scheme/racket ) + ruby? ( || ( dev-lang/ruby:2.2 dev-lang/ruby:2.1 dev-lang/ruby:2.0 ) ) + selinux? ( sys-libs/libselinux ) + session? ( x11-libs/libSM ) + tcl? ( dev-lang/tcl:0= ) +" +DEPEND="${RDEPEND} + dev-util/ctags + sys-devel/autoconf + virtual/pkgconfig + nls? ( sys-devel/gettext ) +" + +S=${WORKDIR}/vim${VIM_VERSION/.} + +pkg_setup() { + # people with broken alphabets run into trouble. bug 82186. + unset LANG LC_ALL + export LC_COLLATE="C" + + # Gnome sandbox silliness. bug #114475. + mkdir -p "${T}"/home + export HOME="${T}"/home + + use python && python-single-r1_pkg_setup +} + +src_prepare() { + if [[ ${PV} != 9999* ]] ; then + if [[ -f "${WORKDIR}"/${VIM_ORG_PATCH%.xz} ]] ; then + # Apply any patches available from vim.org for this version + epatch "${WORKDIR}"/${VIM_ORG_PATCH%.xz} + fi + + if [[ -d "${WORKDIR}"/patches/ ]]; then + # Gentoo patches to fix runtime issues, cross-compile errors, etc + EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" \ + epatch "${WORKDIR}"/patches/ + fi + fi + + # Fixup a script to use awk instead of nawk + sed -i '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 + echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h + + # 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.in || die 'sed failed' + + # Don't be fooled by /usr/include/libc.h. When found, vim thinks + # this is NeXT, but it's actually just a file in dev-libs/9libs + # This fixes bug 43885 (20 Mar 2004 agriffis) + sed -i 's/ libc\.h / /' "${S}"/src/configure.in || 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" ; done + + # Try to avoid sandbox problems. Bug #114475. + if [[ -d "${S}"/src/po ]] ; then + sed -i '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ + "${S}"/src/po/Makefile + fi + + if version_is_at_least 7.3.122 ; then + cp "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk + fi + + # Bug #378107 - Build properly with >=perl-core/ExtUtils-ParseXS-3.20.0 + if version_is_at_least 7.3 ; then + sed -i "s:\\\$(PERLLIB)/ExtUtils/xsubpp:${EPREFIX}/usr/bin/xsubpp:" \ + "${S}"/src/Makefile || die 'sed for ExtUtils-ParseXS failed' + fi + + epatch_user +} + +src_configure() { + local myconf=() + + # Fix bug 37354: Disallow -funroll-all-loops on amd64 + # Bug 57859 suggests that we want to do this for all archs + filter-flags -funroll-all-loops + + # 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.in 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 -f src/auto/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 + [[ -e ${file} ]] && addwrite $file + done + + use debug && append-flags "-DDEBUG" + + myconf=( + --with-features=huge + --disable-gpm + --enable-multibyte + $(use_enable acl) + $(use_enable cscope) + $(use_enable lua luainterp) + $(use_with luajit) + $(use_enable netbeans) + $(use_enable nls) + $(use_enable perl perlinterp) + $(use_enable racket mzschemeinterp) + $(use_enable ruby rubyinterp) + $(use_enable selinux) + $(use_enable session xsmp) + $(use_enable tcl tclinterp) + ) + + if use python ; then + if [[ ${EPYTHON} == python3* ]] ; then + myconf+=( --enable-python3interp ) + export vi_cv_path_python3="${PYTHON}" + else + myconf+=( --enable-pythoninterp ) + export vi_cv_path_python="${PYTHON}" + fi + else + myconf+=( + --disable-pythoninterp + --disable-python3interp + ) + fi + + # --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 '/# define FEAT_CSCOPE/d' src/feature.h || \ + die "couldn't disable cscope" + fi + + # gvim's GUI preference order is as follows: + # aqua CARBON (not tested) + # -aqua gtk gnome GNOME2 + # -aqua gtk -gnome GTK2 + # -aqua -gtk motif MOTIF + # -aqua -gtk -motif neXt NEXTAW + # -aqua -gtk -motif -neXt ATHENA + echo ; echo + if use aqua ; then + einfo "Building gvim with the Carbon GUI" + myconf+=( + --enable-darwin + --enable-gui=carbon + ) + elif use gtk ; then + myconf+=( --enable-gtk2-check ) + if use gnome ; then + einfo "Building gvim with the Gnome 2 GUI" + myconf+=( --enable-gui=gnome2 ) + else + einfo "Building gvim with the gtk+-2 GUI" + myconf+=( --enable-gui=gtk2 ) + fi + elif use motif ; then + einfo "Building gvim with the MOTIF GUI" + myconf+=( --enable-gui=motif ) + elif use neXt ; then + einfo "Building gvim with the neXtaw GUI" + myconf+=( --enable-gui=nextaw ) + else + einfo "Building gvim with the Athena GUI" + myconf+=( --enable-gui=athena ) + fi + echo ; echo + + # Let Portage do the stripping. Some people like that. + export ac_cv_prog_STRIP="$(type -P true ) faking strip" + + # Keep Gentoo Prefix env contained within the EPREFIX + use prefix && myconf+=( --without-local-dir ) + + if [[ ${CHOST} == *-interix* ]]; then + # avoid finding of this function, to avoid having to patch either + # configure or the source, which would be much more hackish. + # after all vim does it right, only interix is badly broken (again) + export ac_cv_func_sigaction=no + fi + + econf \ + --with-modified-by=Gentoo-${PVR} \ + --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() { + echo + 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." + echo + ewarn "If the tests fail, your terminal may be left in a strange" + ewarn "state. Usually, running 'reset' will fix this." + echo + + # Don't let vim talk to X + unset DISPLAY + + # We've got to call make test from within testdir, since the Makefiles + # don't pass through our VIMPROG argument + cd "${S}"/src/testdir + + # Test 49 won't work inside a portage environment + einfo "Test 49 isn't sandbox-friendly, so it will be skipped." + sed -i 's~test49.out~~g' Makefile + + # We don't want to rebuild vim before running the tests + sed -i 's,: \$(VIMPROG),: ,' Makefile + + # 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 + + # Don't try to do the additional GUI test + emake -j1 VIMPROG=../testvim nongui +} + +# Make convenience symlinks, hopefully without stepping on toes. Some +# of these links are "owned" by the vim ebuild when it is installed, +# but they might be good for gvim as well (see bug 45828) +update_vim_symlinks() { + local f syms + syms="vimdiff rvim rview" + einfo "Calling eselect vi update..." + # Call this with --if-unset to respect user's choice (bug 187449) + eselect vi update --if-unset + + # Make or remove convenience symlink, vim -> gvim + if [[ -f "${EROOT}"/usr/bin/gvim ]]; then + ln -s gvim "${EROOT}"/usr/bin/vim 2>/dev/null + elif [[ -L "${EROOT}"/usr/bin/vim && ! -f "${EROOT}"/usr/bin/vim ]]; then + rm "${EROOT}"/usr/bin/vim + fi + + # Make or remove convenience symlinks to vim + if [[ -f "${EROOT}"/usr/bin/vim ]]; then + for f in ${syms}; do + ln -s vim "${EROOT}"/usr/bin/${f} 2>/dev/null + done + else + for f in ${syms}; do + if [[ -L "${EROOT}"/usr/bin/${f} && ! -f "${EROOT}"/usr/bin/${f} ]]; then + rm -f "${EROOT}"/usr/bin/${f} + fi + done + fi + + # This will still break if you merge then remove the vi package, + # but there's only so much you can do, eh? Unfortunately we don't + # have triggers like are done in rpm-land. +} + +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 + + dodir /usr/share/man/man1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gvim.1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gview.1 + echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/gvimdiff.1 + + insinto /etc/vim + newins "${FILESDIR}"/gvimrc-r1 gvimrc + eprefixify "${ED}"/etc/vim/gvimrc + + newmenu "${FILESDIR}"/gvim.desktop-r2 gvim.desktop + doicon "${FILESDIR}"/gvim.xpm + + # bash completion script, bug #79018. + newbashcomp "${FILESDIR}"/${PN}-completion ${PN} + + # We shouldn't be installing the ex or view man page symlinks, as they + # are managed by eselect-vi + rm -f "${ED}"/usr/share/man/man1/{ex,view}.1 +} + +pkg_postinst() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Update fdo mime stuff, bug #78394 + fdo-mime_mime_database_update + + if [[ -z ${REPLACING_VERSIONS} ]] ; then + echo + elog "Vim 7 includes an integrated spell checker. You need to install" + elog "word list files before you can use it. There are ebuilds for" + elog "some of these named app-vim/vim-spell-*. If your language of" + elog "choice is not included, please consult vim-spell.eclass for" + elog "instructions on how to make a package." + echo + ewarn "Note that the English word lists are no longer installed by" + ewarn "default." + echo + fi + + # Make convenience symlinks + update_vim_symlinks +} + +pkg_postrm() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Update fdo mime stuff, bug #78394 + fdo-mime_mime_database_update + + # Make convenience symlinks + update_vim_symlinks +} diff --git a/app-editors/gvim/gvim-7.4.622.ebuild b/app-editors/gvim/gvim-7.4.622.ebuild new file mode 100644 index 000000000000..1c52e7566fed --- /dev/null +++ b/app-editors/gvim/gvim-7.4.622.ebuild @@ -0,0 +1,420 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +VIM_VERSION="7.4" +PYTHON_COMPAT=( python{2_7,3_3,3_4} ) +PYTHON_REQ_USE=threads +inherit eutils vim-doc flag-o-matic fdo-mime versionator bash-completion-r1 prefix python-r1 + +if [[ ${PV} == 9999* ]] ; then + inherit mercurial + EHG_REPO_URI="https://vim.googlecode.com/hg/" + EHG_PROJECT="vim" +else + VIM_ORG_PATCH="vim-${PV}.patch.xz" + SRC_URI="ftp://ftp.vim.org/pub/vim/unix/vim-${VIM_VERSION}.tar.bz2 + http://dev.gentoo.org/~radhermit/vim/${VIM_ORG_PATCH} + http://dev.gentoo.org/~radhermit/vim/vim-7.4.542-gentoo-patches.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris" +fi + +DESCRIPTION="GUI version of the Vim text editor" +HOMEPAGE="http://www.vim.org/" + +SLOT="0" +LICENSE="vim" +IUSE="acl aqua cscope debug gnome gtk lua luajit motif neXt netbeans nls perl python racket ruby selinux session tcl" +REQUIRED_USE=" + luajit? ( lua ) + python? ( + || ( $(python_gen_useflags '*') ) + ?? ( $(python_gen_useflags 'python2*') ) + ?? ( $(python_gen_useflags 'python3*') ) + ) +" + +RDEPEND=" + ~app-editors/vim-core-${PV} + >=app-eselect/eselect-vi-1.1 + >=sys-libs/ncurses-5.2-r2 + x11-libs/libXext + x11-libs/libXt + acl? ( kernel_linux? ( sys-apps/acl ) ) + !aqua? ( + gtk? ( + >=x11-libs/gtk+-2.6:2 + x11-libs/libXft + gnome? ( >=gnome-base/libgnomeui-2.6 ) + ) + !gtk? ( + motif? ( >=x11-libs/motif-2.3:0 ) + !motif? ( + neXt? ( x11-libs/neXtaw ) + !neXt? ( x11-libs/libXaw ) + ) + ) + ) + cscope? ( dev-util/cscope ) + lua? ( + luajit? ( dev-lang/luajit:2= ) + !luajit? ( dev-lang/lua:0[deprecated] ) + ) + nls? ( virtual/libintl ) + perl? ( dev-lang/perl:= ) + python? ( ${PYTHON_DEPS} ) + racket? ( dev-scheme/racket ) + ruby? ( || ( dev-lang/ruby:2.2 dev-lang/ruby:2.1 dev-lang/ruby:2.0 ) ) + selinux? ( sys-libs/libselinux ) + session? ( x11-libs/libSM ) + tcl? ( dev-lang/tcl:0= ) +" +DEPEND="${RDEPEND} + dev-util/ctags + sys-devel/autoconf + virtual/pkgconfig + nls? ( sys-devel/gettext ) +" + +S=${WORKDIR}/vim${VIM_VERSION/.} + +pkg_setup() { + # people with broken alphabets run into trouble. bug 82186. + unset LANG LC_ALL + export LC_COLLATE="C" + + # Gnome sandbox silliness. bug #114475. + mkdir -p "${T}"/home + export HOME="${T}"/home +} + +src_prepare() { + if [[ ${PV} != 9999* ]] ; then + if [[ -f "${WORKDIR}"/${VIM_ORG_PATCH%.xz} ]] ; then + # Apply any patches available from vim.org for this version + epatch "${WORKDIR}"/${VIM_ORG_PATCH%.xz} + fi + + if [[ -d "${WORKDIR}"/patches/ ]]; then + # Gentoo patches to fix runtime issues, cross-compile errors, etc + EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" \ + epatch "${WORKDIR}"/patches/ + fi + fi + + # Fixup a script to use awk instead of nawk + sed -i '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 + echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h + + # 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.in || die 'sed failed' + + # Don't be fooled by /usr/include/libc.h. When found, vim thinks + # this is NeXT, but it's actually just a file in dev-libs/9libs + # This fixes bug 43885 (20 Mar 2004 agriffis) + sed -i 's/ libc\.h / /' "${S}"/src/configure.in || 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" ; done + + # Try to avoid sandbox problems. Bug #114475. + if [[ -d "${S}"/src/po ]] ; then + sed -i '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ + "${S}"/src/po/Makefile + fi + + if version_is_at_least 7.3.122 ; then + cp "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk + fi + + # Bug #378107 - Build properly with >=perl-core/ExtUtils-ParseXS-3.20.0 + if version_is_at_least 7.3 ; then + sed -i "s:\\\$(PERLLIB)/ExtUtils/xsubpp:${EPREFIX}/usr/bin/xsubpp:" \ + "${S}"/src/Makefile || die 'sed for ExtUtils-ParseXS failed' + fi + + epatch_user +} + +src_configure() { + local myconf=() + + # Fix bug 37354: Disallow -funroll-all-loops on amd64 + # Bug 57859 suggests that we want to do this for all archs + filter-flags -funroll-all-loops + + # 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.in 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 -f src/auto/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 + [[ -e ${file} ]] && addwrite $file + done + + use debug && append-flags "-DDEBUG" + + myconf=( + --with-features=huge + --disable-gpm + --enable-multibyte + $(use_enable acl) + $(use_enable cscope) + $(use_enable lua luainterp) + $(use_with luajit) + $(use_enable netbeans) + $(use_enable nls) + $(use_enable perl perlinterp) + $(use_enable racket mzschemeinterp) + $(use_enable ruby rubyinterp) + $(use_enable selinux) + $(use_enable session xsmp) + $(use_enable tcl tclinterp) + ) + + if use python ; then + py_add_interp() { + local v + + [[ ${EPYTHON} == python3* ]] && v=3 + myconf+=( + --enable-python${v}interp + vi_cv_path_python${v}="${PYTHON}" + ) + } + + python_foreach_impl py_add_interp + else + myconf+=( + --disable-pythoninterp + --disable-python3interp + ) + fi + + # --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 '/# define FEAT_CSCOPE/d' src/feature.h || \ + die "couldn't disable cscope" + fi + + # gvim's GUI preference order is as follows: + # aqua CARBON (not tested) + # -aqua gtk gnome GNOME2 + # -aqua gtk -gnome GTK2 + # -aqua -gtk motif MOTIF + # -aqua -gtk -motif neXt NEXTAW + # -aqua -gtk -motif -neXt ATHENA + echo ; echo + if use aqua ; then + einfo "Building gvim with the Carbon GUI" + myconf+=( + --enable-darwin + --enable-gui=carbon + ) + elif use gtk ; then + myconf+=( --enable-gtk2-check ) + if use gnome ; then + einfo "Building gvim with the Gnome 2 GUI" + myconf+=( --enable-gui=gnome2 ) + else + einfo "Building gvim with the gtk+-2 GUI" + myconf+=( --enable-gui=gtk2 ) + fi + elif use motif ; then + einfo "Building gvim with the MOTIF GUI" + myconf+=( --enable-gui=motif ) + elif use neXt ; then + einfo "Building gvim with the neXtaw GUI" + myconf+=( --enable-gui=nextaw ) + else + einfo "Building gvim with the Athena GUI" + myconf+=( --enable-gui=athena ) + fi + echo ; echo + + # Let Portage do the stripping. Some people like that. + export ac_cv_prog_STRIP="$(type -P true ) faking strip" + + # Keep Gentoo Prefix env contained within the EPREFIX + use prefix && myconf+=( --without-local-dir ) + + if [[ ${CHOST} == *-interix* ]]; then + # avoid finding of this function, to avoid having to patch either + # configure or the source, which would be much more hackish. + # after all vim does it right, only interix is badly broken (again) + export ac_cv_func_sigaction=no + fi + + econf \ + --with-modified-by=Gentoo-${PVR} \ + --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() { + echo + 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." + echo + ewarn "If the tests fail, your terminal may be left in a strange" + ewarn "state. Usually, running 'reset' will fix this." + echo + + # Don't let vim talk to X + unset DISPLAY + + # We've got to call make test from within testdir, since the Makefiles + # don't pass through our VIMPROG argument + cd "${S}"/src/testdir + + # Test 49 won't work inside a portage environment + einfo "Test 49 isn't sandbox-friendly, so it will be skipped." + sed -i 's~test49.out~~g' Makefile + + # We don't want to rebuild vim before running the tests + sed -i 's,: \$(VIMPROG),: ,' Makefile + + # 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 + + # Don't try to do the additional GUI test + emake -j1 VIMPROG=../testvim nongui +} + +# Make convenience symlinks, hopefully without stepping on toes. Some +# of these links are "owned" by the vim ebuild when it is installed, +# but they might be good for gvim as well (see bug 45828) +update_vim_symlinks() { + local f syms + syms="vimdiff rvim rview" + einfo "Calling eselect vi update..." + # Call this with --if-unset to respect user's choice (bug 187449) + eselect vi update --if-unset + + # Make or remove convenience symlink, vim -> gvim + if [[ -f "${EROOT}"/usr/bin/gvim ]]; then + ln -s gvim "${EROOT}"/usr/bin/vim 2>/dev/null + elif [[ -L "${EROOT}"/usr/bin/vim && ! -f "${EROOT}"/usr/bin/vim ]]; then + rm "${EROOT}"/usr/bin/vim + fi + + # Make or remove convenience symlinks to vim + if [[ -f "${EROOT}"/usr/bin/vim ]]; then + for f in ${syms}; do + ln -s vim "${EROOT}"/usr/bin/${f} 2>/dev/null + done + else + for f in ${syms}; do + if [[ -L "${EROOT}"/usr/bin/${f} && ! -f "${EROOT}"/usr/bin/${f} ]]; then + rm -f "${EROOT}"/usr/bin/${f} + fi + done + fi + + # This will still break if you merge then remove the vi package, + # but there's only so much you can do, eh? Unfortunately we don't + # have triggers like are done in rpm-land. +} + +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 + + dodir /usr/share/man/man1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gvim.1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gview.1 + echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/gvimdiff.1 + + insinto /etc/vim + newins "${FILESDIR}"/gvimrc-r1 gvimrc + eprefixify "${ED}"/etc/vim/gvimrc + + newmenu "${FILESDIR}"/gvim.desktop-r2 gvim.desktop + doicon "${FILESDIR}"/gvim.xpm + + # bash completion script, bug #79018. + newbashcomp "${FILESDIR}"/${PN}-completion ${PN} + + # We shouldn't be installing the ex or view man page symlinks, as they + # are managed by eselect-vi + rm -f "${ED}"/usr/share/man/man1/{ex,view}.1 +} + +pkg_postinst() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Update fdo mime stuff, bug #78394 + fdo-mime_mime_database_update + + if [[ -z ${REPLACING_VERSIONS} ]] ; then + echo + elog "Vim 7 includes an integrated spell checker. You need to install" + elog "word list files before you can use it. There are ebuilds for" + elog "some of these named app-vim/vim-spell-*. If your language of" + elog "choice is not included, please consult vim-spell.eclass for" + elog "instructions on how to make a package." + echo + ewarn "Note that the English word lists are no longer installed by" + ewarn "default." + echo + fi + + # Make convenience symlinks + update_vim_symlinks +} + +pkg_postrm() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Update fdo mime stuff, bug #78394 + fdo-mime_mime_database_update + + # Make convenience symlinks + update_vim_symlinks +} diff --git a/app-editors/gvim/gvim-7.4.670.ebuild b/app-editors/gvim/gvim-7.4.670.ebuild new file mode 100644 index 000000000000..1c52e7566fed --- /dev/null +++ b/app-editors/gvim/gvim-7.4.670.ebuild @@ -0,0 +1,420 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +VIM_VERSION="7.4" +PYTHON_COMPAT=( python{2_7,3_3,3_4} ) +PYTHON_REQ_USE=threads +inherit eutils vim-doc flag-o-matic fdo-mime versionator bash-completion-r1 prefix python-r1 + +if [[ ${PV} == 9999* ]] ; then + inherit mercurial + EHG_REPO_URI="https://vim.googlecode.com/hg/" + EHG_PROJECT="vim" +else + VIM_ORG_PATCH="vim-${PV}.patch.xz" + SRC_URI="ftp://ftp.vim.org/pub/vim/unix/vim-${VIM_VERSION}.tar.bz2 + http://dev.gentoo.org/~radhermit/vim/${VIM_ORG_PATCH} + http://dev.gentoo.org/~radhermit/vim/vim-7.4.542-gentoo-patches.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris" +fi + +DESCRIPTION="GUI version of the Vim text editor" +HOMEPAGE="http://www.vim.org/" + +SLOT="0" +LICENSE="vim" +IUSE="acl aqua cscope debug gnome gtk lua luajit motif neXt netbeans nls perl python racket ruby selinux session tcl" +REQUIRED_USE=" + luajit? ( lua ) + python? ( + || ( $(python_gen_useflags '*') ) + ?? ( $(python_gen_useflags 'python2*') ) + ?? ( $(python_gen_useflags 'python3*') ) + ) +" + +RDEPEND=" + ~app-editors/vim-core-${PV} + >=app-eselect/eselect-vi-1.1 + >=sys-libs/ncurses-5.2-r2 + x11-libs/libXext + x11-libs/libXt + acl? ( kernel_linux? ( sys-apps/acl ) ) + !aqua? ( + gtk? ( + >=x11-libs/gtk+-2.6:2 + x11-libs/libXft + gnome? ( >=gnome-base/libgnomeui-2.6 ) + ) + !gtk? ( + motif? ( >=x11-libs/motif-2.3:0 ) + !motif? ( + neXt? ( x11-libs/neXtaw ) + !neXt? ( x11-libs/libXaw ) + ) + ) + ) + cscope? ( dev-util/cscope ) + lua? ( + luajit? ( dev-lang/luajit:2= ) + !luajit? ( dev-lang/lua:0[deprecated] ) + ) + nls? ( virtual/libintl ) + perl? ( dev-lang/perl:= ) + python? ( ${PYTHON_DEPS} ) + racket? ( dev-scheme/racket ) + ruby? ( || ( dev-lang/ruby:2.2 dev-lang/ruby:2.1 dev-lang/ruby:2.0 ) ) + selinux? ( sys-libs/libselinux ) + session? ( x11-libs/libSM ) + tcl? ( dev-lang/tcl:0= ) +" +DEPEND="${RDEPEND} + dev-util/ctags + sys-devel/autoconf + virtual/pkgconfig + nls? ( sys-devel/gettext ) +" + +S=${WORKDIR}/vim${VIM_VERSION/.} + +pkg_setup() { + # people with broken alphabets run into trouble. bug 82186. + unset LANG LC_ALL + export LC_COLLATE="C" + + # Gnome sandbox silliness. bug #114475. + mkdir -p "${T}"/home + export HOME="${T}"/home +} + +src_prepare() { + if [[ ${PV} != 9999* ]] ; then + if [[ -f "${WORKDIR}"/${VIM_ORG_PATCH%.xz} ]] ; then + # Apply any patches available from vim.org for this version + epatch "${WORKDIR}"/${VIM_ORG_PATCH%.xz} + fi + + if [[ -d "${WORKDIR}"/patches/ ]]; then + # Gentoo patches to fix runtime issues, cross-compile errors, etc + EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" \ + epatch "${WORKDIR}"/patches/ + fi + fi + + # Fixup a script to use awk instead of nawk + sed -i '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 + echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h + + # 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.in || die 'sed failed' + + # Don't be fooled by /usr/include/libc.h. When found, vim thinks + # this is NeXT, but it's actually just a file in dev-libs/9libs + # This fixes bug 43885 (20 Mar 2004 agriffis) + sed -i 's/ libc\.h / /' "${S}"/src/configure.in || 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" ; done + + # Try to avoid sandbox problems. Bug #114475. + if [[ -d "${S}"/src/po ]] ; then + sed -i '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ + "${S}"/src/po/Makefile + fi + + if version_is_at_least 7.3.122 ; then + cp "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk + fi + + # Bug #378107 - Build properly with >=perl-core/ExtUtils-ParseXS-3.20.0 + if version_is_at_least 7.3 ; then + sed -i "s:\\\$(PERLLIB)/ExtUtils/xsubpp:${EPREFIX}/usr/bin/xsubpp:" \ + "${S}"/src/Makefile || die 'sed for ExtUtils-ParseXS failed' + fi + + epatch_user +} + +src_configure() { + local myconf=() + + # Fix bug 37354: Disallow -funroll-all-loops on amd64 + # Bug 57859 suggests that we want to do this for all archs + filter-flags -funroll-all-loops + + # 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.in 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 -f src/auto/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 + [[ -e ${file} ]] && addwrite $file + done + + use debug && append-flags "-DDEBUG" + + myconf=( + --with-features=huge + --disable-gpm + --enable-multibyte + $(use_enable acl) + $(use_enable cscope) + $(use_enable lua luainterp) + $(use_with luajit) + $(use_enable netbeans) + $(use_enable nls) + $(use_enable perl perlinterp) + $(use_enable racket mzschemeinterp) + $(use_enable ruby rubyinterp) + $(use_enable selinux) + $(use_enable session xsmp) + $(use_enable tcl tclinterp) + ) + + if use python ; then + py_add_interp() { + local v + + [[ ${EPYTHON} == python3* ]] && v=3 + myconf+=( + --enable-python${v}interp + vi_cv_path_python${v}="${PYTHON}" + ) + } + + python_foreach_impl py_add_interp + else + myconf+=( + --disable-pythoninterp + --disable-python3interp + ) + fi + + # --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 '/# define FEAT_CSCOPE/d' src/feature.h || \ + die "couldn't disable cscope" + fi + + # gvim's GUI preference order is as follows: + # aqua CARBON (not tested) + # -aqua gtk gnome GNOME2 + # -aqua gtk -gnome GTK2 + # -aqua -gtk motif MOTIF + # -aqua -gtk -motif neXt NEXTAW + # -aqua -gtk -motif -neXt ATHENA + echo ; echo + if use aqua ; then + einfo "Building gvim with the Carbon GUI" + myconf+=( + --enable-darwin + --enable-gui=carbon + ) + elif use gtk ; then + myconf+=( --enable-gtk2-check ) + if use gnome ; then + einfo "Building gvim with the Gnome 2 GUI" + myconf+=( --enable-gui=gnome2 ) + else + einfo "Building gvim with the gtk+-2 GUI" + myconf+=( --enable-gui=gtk2 ) + fi + elif use motif ; then + einfo "Building gvim with the MOTIF GUI" + myconf+=( --enable-gui=motif ) + elif use neXt ; then + einfo "Building gvim with the neXtaw GUI" + myconf+=( --enable-gui=nextaw ) + else + einfo "Building gvim with the Athena GUI" + myconf+=( --enable-gui=athena ) + fi + echo ; echo + + # Let Portage do the stripping. Some people like that. + export ac_cv_prog_STRIP="$(type -P true ) faking strip" + + # Keep Gentoo Prefix env contained within the EPREFIX + use prefix && myconf+=( --without-local-dir ) + + if [[ ${CHOST} == *-interix* ]]; then + # avoid finding of this function, to avoid having to patch either + # configure or the source, which would be much more hackish. + # after all vim does it right, only interix is badly broken (again) + export ac_cv_func_sigaction=no + fi + + econf \ + --with-modified-by=Gentoo-${PVR} \ + --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() { + echo + 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." + echo + ewarn "If the tests fail, your terminal may be left in a strange" + ewarn "state. Usually, running 'reset' will fix this." + echo + + # Don't let vim talk to X + unset DISPLAY + + # We've got to call make test from within testdir, since the Makefiles + # don't pass through our VIMPROG argument + cd "${S}"/src/testdir + + # Test 49 won't work inside a portage environment + einfo "Test 49 isn't sandbox-friendly, so it will be skipped." + sed -i 's~test49.out~~g' Makefile + + # We don't want to rebuild vim before running the tests + sed -i 's,: \$(VIMPROG),: ,' Makefile + + # 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 + + # Don't try to do the additional GUI test + emake -j1 VIMPROG=../testvim nongui +} + +# Make convenience symlinks, hopefully without stepping on toes. Some +# of these links are "owned" by the vim ebuild when it is installed, +# but they might be good for gvim as well (see bug 45828) +update_vim_symlinks() { + local f syms + syms="vimdiff rvim rview" + einfo "Calling eselect vi update..." + # Call this with --if-unset to respect user's choice (bug 187449) + eselect vi update --if-unset + + # Make or remove convenience symlink, vim -> gvim + if [[ -f "${EROOT}"/usr/bin/gvim ]]; then + ln -s gvim "${EROOT}"/usr/bin/vim 2>/dev/null + elif [[ -L "${EROOT}"/usr/bin/vim && ! -f "${EROOT}"/usr/bin/vim ]]; then + rm "${EROOT}"/usr/bin/vim + fi + + # Make or remove convenience symlinks to vim + if [[ -f "${EROOT}"/usr/bin/vim ]]; then + for f in ${syms}; do + ln -s vim "${EROOT}"/usr/bin/${f} 2>/dev/null + done + else + for f in ${syms}; do + if [[ -L "${EROOT}"/usr/bin/${f} && ! -f "${EROOT}"/usr/bin/${f} ]]; then + rm -f "${EROOT}"/usr/bin/${f} + fi + done + fi + + # This will still break if you merge then remove the vi package, + # but there's only so much you can do, eh? Unfortunately we don't + # have triggers like are done in rpm-land. +} + +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 + + dodir /usr/share/man/man1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gvim.1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gview.1 + echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/gvimdiff.1 + + insinto /etc/vim + newins "${FILESDIR}"/gvimrc-r1 gvimrc + eprefixify "${ED}"/etc/vim/gvimrc + + newmenu "${FILESDIR}"/gvim.desktop-r2 gvim.desktop + doicon "${FILESDIR}"/gvim.xpm + + # bash completion script, bug #79018. + newbashcomp "${FILESDIR}"/${PN}-completion ${PN} + + # We shouldn't be installing the ex or view man page symlinks, as they + # are managed by eselect-vi + rm -f "${ED}"/usr/share/man/man1/{ex,view}.1 +} + +pkg_postinst() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Update fdo mime stuff, bug #78394 + fdo-mime_mime_database_update + + if [[ -z ${REPLACING_VERSIONS} ]] ; then + echo + elog "Vim 7 includes an integrated spell checker. You need to install" + elog "word list files before you can use it. There are ebuilds for" + elog "some of these named app-vim/vim-spell-*. If your language of" + elog "choice is not included, please consult vim-spell.eclass for" + elog "instructions on how to make a package." + echo + ewarn "Note that the English word lists are no longer installed by" + ewarn "default." + echo + fi + + # Make convenience symlinks + update_vim_symlinks +} + +pkg_postrm() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Update fdo mime stuff, bug #78394 + fdo-mime_mime_database_update + + # Make convenience symlinks + update_vim_symlinks +} diff --git a/app-editors/gvim/gvim-7.4.712.ebuild b/app-editors/gvim/gvim-7.4.712.ebuild new file mode 100644 index 000000000000..5bfa6ad60e4b --- /dev/null +++ b/app-editors/gvim/gvim-7.4.712.ebuild @@ -0,0 +1,421 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +VIM_VERSION="7.4" +PYTHON_COMPAT=( python{2_7,3_3,3_4} ) +PYTHON_REQ_USE=threads +inherit eutils vim-doc flag-o-matic fdo-mime versionator bash-completion-r1 prefix python-r1 + +if [[ ${PV} == 9999* ]] ; then + inherit mercurial + EHG_REPO_URI="https://vim.googlecode.com/hg/" + EHG_PROJECT="vim" +else + VIM_ORG_PATCH="vim-${PV}.patch.xz" + SRC_URI="ftp://ftp.vim.org/pub/vim/unix/vim-${VIM_VERSION}.tar.bz2 + http://dev.gentoo.org/~radhermit/vim/${VIM_ORG_PATCH} + http://dev.gentoo.org/~radhermit/vim/vim-7.4.542-gentoo-patches.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris" +fi + +DESCRIPTION="GUI version of the Vim text editor" +HOMEPAGE="http://www.vim.org/" + +SLOT="0" +LICENSE="vim" +IUSE="acl aqua cscope debug gnome gtk lua luajit motif neXt netbeans nls perl python racket ruby selinux session tcl" +REQUIRED_USE=" + luajit? ( lua ) + python? ( + || ( $(python_gen_useflags '*') ) + ?? ( $(python_gen_useflags 'python2*') ) + ?? ( $(python_gen_useflags 'python3*') ) + ) +" + +RDEPEND=" + ~app-editors/vim-core-${PV} + >=app-eselect/eselect-vi-1.1 + >=sys-libs/ncurses-5.2-r2 + x11-libs/libXext + x11-libs/libXt + acl? ( kernel_linux? ( sys-apps/acl ) ) + !aqua? ( + gtk? ( + >=x11-libs/gtk+-2.6:2 + x11-libs/libXft + gnome? ( >=gnome-base/libgnomeui-2.6 ) + ) + !gtk? ( + motif? ( >=x11-libs/motif-2.3:0 ) + !motif? ( + neXt? ( x11-libs/neXtaw ) + !neXt? ( x11-libs/libXaw ) + ) + ) + ) + cscope? ( dev-util/cscope ) + lua? ( + luajit? ( dev-lang/luajit:2= ) + !luajit? ( dev-lang/lua:0[deprecated] ) + ) + nls? ( virtual/libintl ) + perl? ( dev-lang/perl:= ) + python? ( ${PYTHON_DEPS} ) + racket? ( dev-scheme/racket ) + ruby? ( || ( dev-lang/ruby:2.2 dev-lang/ruby:2.1 dev-lang/ruby:2.0 ) ) + selinux? ( sys-libs/libselinux ) + session? ( x11-libs/libSM ) + tcl? ( dev-lang/tcl:0= ) +" +DEPEND="${RDEPEND} + dev-util/ctags + sys-devel/autoconf + virtual/pkgconfig + nls? ( sys-devel/gettext ) +" + +S=${WORKDIR}/vim${VIM_VERSION/.} + +pkg_setup() { + # people with broken alphabets run into trouble. bug 82186. + unset LANG LC_ALL + export LC_COLLATE="C" + + # Gnome sandbox silliness. bug #114475. + mkdir -p "${T}"/home + export HOME="${T}"/home +} + +src_prepare() { + if [[ ${PV} != 9999* ]] ; then + if [[ -f "${WORKDIR}"/${VIM_ORG_PATCH%.xz} ]] ; then + # Apply any patches available from vim.org for this version + epatch "${WORKDIR}"/${VIM_ORG_PATCH%.xz} + fi + + if [[ -d "${WORKDIR}"/patches/ ]]; then + # Gentoo patches to fix runtime issues, cross-compile errors, etc + EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" \ + epatch "${WORKDIR}"/patches/ + fi + fi + + # Fixup a script to use awk instead of nawk + sed -i '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 + echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h + + # 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.in || die 'sed failed' + + # Don't be fooled by /usr/include/libc.h. When found, vim thinks + # this is NeXT, but it's actually just a file in dev-libs/9libs + # This fixes bug 43885 (20 Mar 2004 agriffis) + sed -i 's/ libc\.h / /' "${S}"/src/configure.in || 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" ; done + + # Try to avoid sandbox problems. Bug #114475. + if [[ -d "${S}"/src/po ]] ; then + sed -i '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ + "${S}"/src/po/Makefile + fi + + if version_is_at_least 7.3.122 ; then + cp "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk + fi + + # Bug #378107 - Build properly with >=perl-core/ExtUtils-ParseXS-3.20.0 + if version_is_at_least 7.3 ; then + sed -i "s:\\\$(PERLLIB)/ExtUtils/xsubpp:${EPREFIX}/usr/bin/xsubpp:" \ + "${S}"/src/Makefile || die 'sed for ExtUtils-ParseXS failed' + fi + + epatch_user +} + +src_configure() { + local myconf=() + + # Fix bug 37354: Disallow -funroll-all-loops on amd64 + # Bug 57859 suggests that we want to do this for all archs + filter-flags -funroll-all-loops + + # 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.in 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 -f src/auto/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 + [[ -e ${file} ]] && addwrite $file + done + + use debug && append-flags "-DDEBUG" + + myconf=( + --with-features=huge + --disable-gpm + --enable-multibyte + $(use_enable acl) + $(use_enable cscope) + $(use_enable lua luainterp) + $(use_with luajit) + $(use_enable netbeans) + $(use_enable nls) + $(use_enable perl perlinterp) + $(use_enable racket mzschemeinterp) + $(use_enable ruby rubyinterp) + $(use_enable selinux) + $(use_enable session xsmp) + $(use_enable tcl tclinterp) + ) + + if use python ; then + py_add_interp() { + local v + + [[ ${EPYTHON} == python3* ]] && v=3 + myconf+=( + --enable-python${v}interp + vi_cv_path_python${v}="${PYTHON}" + ) + } + + python_foreach_impl py_add_interp + else + myconf+=( + --disable-pythoninterp + --disable-python3interp + ) + fi + + # --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 '/# define FEAT_CSCOPE/d' src/feature.h || \ + die "couldn't disable cscope" + fi + + # gvim's GUI preference order is as follows: + # aqua CARBON (not tested) + # -aqua gtk gnome GNOME2 + # -aqua gtk -gnome GTK2 + # -aqua -gtk motif MOTIF + # -aqua -gtk -motif neXt NEXTAW + # -aqua -gtk -motif -neXt ATHENA + echo ; echo + if use aqua ; then + einfo "Building gvim with the Carbon GUI" + myconf+=( + --enable-darwin + --enable-gui=carbon + ) + elif use gtk ; then + myconf+=( --enable-gtk2-check ) + if use gnome ; then + einfo "Building gvim with the Gnome 2 GUI" + myconf+=( --enable-gui=gnome2 ) + else + einfo "Building gvim with the gtk+-2 GUI" + myconf+=( --enable-gui=gtk2 ) + fi + elif use motif ; then + einfo "Building gvim with the MOTIF GUI" + myconf+=( --enable-gui=motif ) + elif use neXt ; then + einfo "Building gvim with the neXtaw GUI" + myconf+=( --enable-gui=nextaw ) + else + einfo "Building gvim with the Athena GUI" + myconf+=( --enable-gui=athena ) + fi + echo ; echo + + # Let Portage do the stripping. Some people like that. + export ac_cv_prog_STRIP="$(type -P true ) faking strip" + + # Keep Gentoo Prefix env contained within the EPREFIX + use prefix && myconf+=( --without-local-dir ) + + if [[ ${CHOST} == *-interix* ]]; then + # avoid finding of this function, to avoid having to patch either + # configure or the source, which would be much more hackish. + # after all vim does it right, only interix is badly broken (again) + export ac_cv_func_sigaction=no + fi + + econf \ + --with-modified-by=Gentoo-${PVR} \ + --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() { + echo + 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." + echo + ewarn "If the tests fail, your terminal may be left in a strange" + ewarn "state. Usually, running 'reset' will fix this." + echo + + # Don't let vim talk to X + unset DISPLAY + + # We've got to call make test from within testdir, since the Makefiles + # don't pass through our VIMPROG argument + cd "${S}"/src/testdir + + # Test 49 won't work inside a portage environment + einfo "Test 49 isn't sandbox-friendly, so it will be skipped." + sed -i 's~test49.out~~g' Makefile + + # We don't want to rebuild vim before running the tests + sed -i 's,: \$(VIMPROG),: ,' Makefile + + # 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 + + # Don't try to do the additional GUI test + emake -j1 VIMPROG=../testvim nongui +} + +# Make convenience symlinks, hopefully without stepping on toes. Some +# of these links are "owned" by the vim ebuild when it is installed, +# but they might be good for gvim as well (see bug 45828) +update_vim_symlinks() { + local f syms + syms="vimdiff rvim rview" + einfo "Calling eselect vi update..." + # Call this with --if-unset to respect user's choice (bug 187449) + eselect vi update --if-unset + + # Make or remove convenience symlink, vim -> gvim + if [[ -f "${EROOT}"/usr/bin/gvim ]]; then + ln -s gvim "${EROOT}"/usr/bin/vim 2>/dev/null + elif [[ -L "${EROOT}"/usr/bin/vim && ! -f "${EROOT}"/usr/bin/vim ]]; then + rm "${EROOT}"/usr/bin/vim + fi + + # Make or remove convenience symlinks to vim + if [[ -f "${EROOT}"/usr/bin/vim ]]; then + for f in ${syms}; do + ln -s vim "${EROOT}"/usr/bin/${f} 2>/dev/null + done + else + for f in ${syms}; do + if [[ -L "${EROOT}"/usr/bin/${f} && ! -f "${EROOT}"/usr/bin/${f} ]]; then + rm -f "${EROOT}"/usr/bin/${f} + fi + done + fi + + # This will still break if you merge then remove the vi package, + # but there's only so much you can do, eh? Unfortunately we don't + # have triggers like are done in rpm-land. +} + +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 + + dodir /usr/share/man/man1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gvim.1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gview.1 + echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/gvimdiff.1 + + insinto /etc/vim + newins "${FILESDIR}"/gvimrc-r1 gvimrc + eprefixify "${ED}"/etc/vim/gvimrc + + newmenu "${FILESDIR}"/gvim.desktop-r2 gvim.desktop + doicon "${FILESDIR}"/gvim.xpm + doicon -s scalable "${FILESDIR}"/gvim.svg + + # bash completion script, bug #79018. + newbashcomp "${FILESDIR}"/${PN}-completion ${PN} + + # We shouldn't be installing the ex or view man page symlinks, as they + # are managed by eselect-vi + rm -f "${ED}"/usr/share/man/man1/{ex,view}.1 +} + +pkg_postinst() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Update fdo mime stuff, bug #78394 + fdo-mime_mime_database_update + + if [[ -z ${REPLACING_VERSIONS} ]] ; then + echo + elog "Vim 7 includes an integrated spell checker. You need to install" + elog "word list files before you can use it. There are ebuilds for" + elog "some of these named app-vim/vim-spell-*. If your language of" + elog "choice is not included, please consult vim-spell.eclass for" + elog "instructions on how to make a package." + echo + ewarn "Note that the English word lists are no longer installed by" + ewarn "default." + echo + fi + + # Make convenience symlinks + update_vim_symlinks +} + +pkg_postrm() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Update fdo mime stuff, bug #78394 + fdo-mime_mime_database_update + + # Make convenience symlinks + update_vim_symlinks +} diff --git a/app-editors/gvim/gvim-7.4.738.ebuild b/app-editors/gvim/gvim-7.4.738.ebuild new file mode 100644 index 000000000000..37c5edbd0b31 --- /dev/null +++ b/app-editors/gvim/gvim-7.4.738.ebuild @@ -0,0 +1,416 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +VIM_VERSION="7.4" +PYTHON_COMPAT=( python{2_7,3_3,3_4} ) +PYTHON_REQ_USE=threads +inherit eutils vim-doc flag-o-matic fdo-mime versionator bash-completion-r1 prefix python-r1 + +MY_PV=${PV//./-} + +if [[ ${PV} == 9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/vim/vim.git" + EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${MY_PV} +else + SRC_URI="https://github.com/vim/vim/archive/v${MY_PV}.tar.gz -> vim-${PV}.tar.gz + http://dev.gentoo.org/~radhermit/vim/vim-7.4.542-gentoo-patches.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris" +fi + +DESCRIPTION="GUI version of the Vim text editor" +HOMEPAGE="http://www.vim.org/" + +SLOT="0" +LICENSE="vim" +IUSE="acl aqua cscope debug gnome gtk lua luajit motif neXt netbeans nls perl python racket ruby selinux session tcl" +REQUIRED_USE=" + luajit? ( lua ) + python? ( + || ( $(python_gen_useflags '*') ) + ?? ( $(python_gen_useflags 'python2*') ) + ?? ( $(python_gen_useflags 'python3*') ) + ) +" + +RDEPEND=" + ~app-editors/vim-core-${PV} + >=app-eselect/eselect-vi-1.1 + >=sys-libs/ncurses-5.2-r2 + x11-libs/libXext + x11-libs/libXt + acl? ( kernel_linux? ( sys-apps/acl ) ) + !aqua? ( + gtk? ( + >=x11-libs/gtk+-2.6:2 + x11-libs/libXft + gnome? ( >=gnome-base/libgnomeui-2.6 ) + ) + !gtk? ( + motif? ( >=x11-libs/motif-2.3:0 ) + !motif? ( + neXt? ( x11-libs/neXtaw ) + !neXt? ( x11-libs/libXaw ) + ) + ) + ) + cscope? ( dev-util/cscope ) + lua? ( + luajit? ( dev-lang/luajit:2= ) + !luajit? ( dev-lang/lua:0[deprecated] ) + ) + nls? ( virtual/libintl ) + perl? ( dev-lang/perl:= ) + python? ( ${PYTHON_DEPS} ) + racket? ( dev-scheme/racket ) + ruby? ( || ( dev-lang/ruby:2.2 dev-lang/ruby:2.1 dev-lang/ruby:2.0 ) ) + selinux? ( sys-libs/libselinux ) + session? ( x11-libs/libSM ) + tcl? ( dev-lang/tcl:0= ) +" +DEPEND="${RDEPEND} + dev-util/ctags + sys-devel/autoconf + virtual/pkgconfig + nls? ( sys-devel/gettext ) +" + +S=${WORKDIR}/vim-${MY_PV} + +pkg_setup() { + # people with broken alphabets run into trouble. bug 82186. + unset LANG LC_ALL + export LC_COLLATE="C" + + # Gnome sandbox silliness. bug #114475. + mkdir -p "${T}"/home + export HOME="${T}"/home +} + +src_prepare() { + if [[ ${PV} != 9999* ]] ; then + if [[ -d "${WORKDIR}"/patches/ ]]; then + # Gentoo patches to fix runtime issues, cross-compile errors, etc + EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" \ + epatch "${WORKDIR}"/patches/ + fi + fi + + # Fixup a script to use awk instead of nawk + sed -i '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 + echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h + + # 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.in || die 'sed failed' + + # Don't be fooled by /usr/include/libc.h. When found, vim thinks + # this is NeXT, but it's actually just a file in dev-libs/9libs + # This fixes bug 43885 (20 Mar 2004 agriffis) + sed -i 's/ libc\.h / /' "${S}"/src/configure.in || 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" ; done + + # Try to avoid sandbox problems. Bug #114475. + if [[ -d "${S}"/src/po ]] ; then + sed -i '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ + "${S}"/src/po/Makefile + fi + + if version_is_at_least 7.3.122 ; then + cp "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk + fi + + # Bug #378107 - Build properly with >=perl-core/ExtUtils-ParseXS-3.20.0 + if version_is_at_least 7.3 ; then + sed -i "s:\\\$(PERLLIB)/ExtUtils/xsubpp:${EPREFIX}/usr/bin/xsubpp:" \ + "${S}"/src/Makefile || die 'sed for ExtUtils-ParseXS failed' + fi + + epatch_user +} + +src_configure() { + local myconf=() + + # Fix bug 37354: Disallow -funroll-all-loops on amd64 + # Bug 57859 suggests that we want to do this for all archs + filter-flags -funroll-all-loops + + # 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.in 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 -f src/auto/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 + [[ -e ${file} ]] && addwrite $file + done + + use debug && append-flags "-DDEBUG" + + myconf=( + --with-features=huge + --disable-gpm + --enable-multibyte + $(use_enable acl) + $(use_enable cscope) + $(use_enable lua luainterp) + $(use_with luajit) + $(use_enable netbeans) + $(use_enable nls) + $(use_enable perl perlinterp) + $(use_enable racket mzschemeinterp) + $(use_enable ruby rubyinterp) + $(use_enable selinux) + $(use_enable session xsmp) + $(use_enable tcl tclinterp) + ) + + if use python ; then + py_add_interp() { + local v + + [[ ${EPYTHON} == python3* ]] && v=3 + myconf+=( + --enable-python${v}interp + vi_cv_path_python${v}="${PYTHON}" + ) + } + + python_foreach_impl py_add_interp + else + myconf+=( + --disable-pythoninterp + --disable-python3interp + ) + fi + + # --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 '/# define FEAT_CSCOPE/d' src/feature.h || \ + die "couldn't disable cscope" + fi + + # gvim's GUI preference order is as follows: + # aqua CARBON (not tested) + # -aqua gtk gnome GNOME2 + # -aqua gtk -gnome GTK2 + # -aqua -gtk motif MOTIF + # -aqua -gtk -motif neXt NEXTAW + # -aqua -gtk -motif -neXt ATHENA + echo ; echo + if use aqua ; then + einfo "Building gvim with the Carbon GUI" + myconf+=( + --enable-darwin + --enable-gui=carbon + ) + elif use gtk ; then + myconf+=( --enable-gtk2-check ) + if use gnome ; then + einfo "Building gvim with the Gnome 2 GUI" + myconf+=( --enable-gui=gnome2 ) + else + einfo "Building gvim with the gtk+-2 GUI" + myconf+=( --enable-gui=gtk2 ) + fi + elif use motif ; then + einfo "Building gvim with the MOTIF GUI" + myconf+=( --enable-gui=motif ) + elif use neXt ; then + einfo "Building gvim with the neXtaw GUI" + myconf+=( --enable-gui=nextaw ) + else + einfo "Building gvim with the Athena GUI" + myconf+=( --enable-gui=athena ) + fi + echo ; echo + + # Let Portage do the stripping. Some people like that. + export ac_cv_prog_STRIP="$(type -P true ) faking strip" + + # Keep Gentoo Prefix env contained within the EPREFIX + use prefix && myconf+=( --without-local-dir ) + + if [[ ${CHOST} == *-interix* ]]; then + # avoid finding of this function, to avoid having to patch either + # configure or the source, which would be much more hackish. + # after all vim does it right, only interix is badly broken (again) + export ac_cv_func_sigaction=no + fi + + econf \ + --with-modified-by=Gentoo-${PVR} \ + --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() { + echo + 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." + echo + ewarn "If the tests fail, your terminal may be left in a strange" + ewarn "state. Usually, running 'reset' will fix this." + echo + + # Don't let vim talk to X + unset DISPLAY + + # We've got to call make test from within testdir, since the Makefiles + # don't pass through our VIMPROG argument + cd "${S}"/src/testdir + + # Test 49 won't work inside a portage environment + einfo "Test 49 isn't sandbox-friendly, so it will be skipped." + sed -i 's~test49.out~~g' Makefile + + # We don't want to rebuild vim before running the tests + sed -i 's,: \$(VIMPROG),: ,' Makefile + + # 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 + + # Don't try to do the additional GUI test + emake -j1 VIMPROG=../testvim nongui +} + +# Make convenience symlinks, hopefully without stepping on toes. Some +# of these links are "owned" by the vim ebuild when it is installed, +# but they might be good for gvim as well (see bug 45828) +update_vim_symlinks() { + local f syms + syms="vimdiff rvim rview" + einfo "Calling eselect vi update..." + # Call this with --if-unset to respect user's choice (bug 187449) + eselect vi update --if-unset + + # Make or remove convenience symlink, vim -> gvim + if [[ -f "${EROOT}"/usr/bin/gvim ]]; then + ln -s gvim "${EROOT}"/usr/bin/vim 2>/dev/null + elif [[ -L "${EROOT}"/usr/bin/vim && ! -f "${EROOT}"/usr/bin/vim ]]; then + rm "${EROOT}"/usr/bin/vim + fi + + # Make or remove convenience symlinks to vim + if [[ -f "${EROOT}"/usr/bin/vim ]]; then + for f in ${syms}; do + ln -s vim "${EROOT}"/usr/bin/${f} 2>/dev/null + done + else + for f in ${syms}; do + if [[ -L "${EROOT}"/usr/bin/${f} && ! -f "${EROOT}"/usr/bin/${f} ]]; then + rm -f "${EROOT}"/usr/bin/${f} + fi + done + fi + + # This will still break if you merge then remove the vi package, + # but there's only so much you can do, eh? Unfortunately we don't + # have triggers like are done in rpm-land. +} + +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 + + dodir /usr/share/man/man1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gvim.1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gview.1 + echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/gvimdiff.1 + + insinto /etc/vim + newins "${FILESDIR}"/gvimrc-r1 gvimrc + eprefixify "${ED}"/etc/vim/gvimrc + + newmenu "${FILESDIR}"/gvim.desktop-r2 gvim.desktop + doicon "${FILESDIR}"/gvim.xpm + doicon -s scalable "${FILESDIR}"/gvim.svg + + # bash completion script, bug #79018. + newbashcomp "${FILESDIR}"/${PN}-completion ${PN} + + # We shouldn't be installing the ex or view man page symlinks, as they + # are managed by eselect-vi + rm -f "${ED}"/usr/share/man/man1/{ex,view}.1 +} + +pkg_postinst() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Update fdo mime stuff, bug #78394 + fdo-mime_mime_database_update + + if [[ -z ${REPLACING_VERSIONS} ]] ; then + echo + elog "Vim 7 includes an integrated spell checker. You need to install" + elog "word list files before you can use it. There are ebuilds for" + elog "some of these named app-vim/vim-spell-*. If your language of" + elog "choice is not included, please consult vim-spell.eclass for" + elog "instructions on how to make a package." + echo + ewarn "Note that the English word lists are no longer installed by" + ewarn "default." + echo + fi + + # Make convenience symlinks + update_vim_symlinks +} + +pkg_postrm() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Update fdo mime stuff, bug #78394 + fdo-mime_mime_database_update + + # Make convenience symlinks + update_vim_symlinks +} diff --git a/app-editors/gvim/gvim-7.4.769.ebuild b/app-editors/gvim/gvim-7.4.769.ebuild new file mode 100644 index 000000000000..37c5edbd0b31 --- /dev/null +++ b/app-editors/gvim/gvim-7.4.769.ebuild @@ -0,0 +1,416 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +VIM_VERSION="7.4" +PYTHON_COMPAT=( python{2_7,3_3,3_4} ) +PYTHON_REQ_USE=threads +inherit eutils vim-doc flag-o-matic fdo-mime versionator bash-completion-r1 prefix python-r1 + +MY_PV=${PV//./-} + +if [[ ${PV} == 9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/vim/vim.git" + EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${MY_PV} +else + SRC_URI="https://github.com/vim/vim/archive/v${MY_PV}.tar.gz -> vim-${PV}.tar.gz + http://dev.gentoo.org/~radhermit/vim/vim-7.4.542-gentoo-patches.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris" +fi + +DESCRIPTION="GUI version of the Vim text editor" +HOMEPAGE="http://www.vim.org/" + +SLOT="0" +LICENSE="vim" +IUSE="acl aqua cscope debug gnome gtk lua luajit motif neXt netbeans nls perl python racket ruby selinux session tcl" +REQUIRED_USE=" + luajit? ( lua ) + python? ( + || ( $(python_gen_useflags '*') ) + ?? ( $(python_gen_useflags 'python2*') ) + ?? ( $(python_gen_useflags 'python3*') ) + ) +" + +RDEPEND=" + ~app-editors/vim-core-${PV} + >=app-eselect/eselect-vi-1.1 + >=sys-libs/ncurses-5.2-r2 + x11-libs/libXext + x11-libs/libXt + acl? ( kernel_linux? ( sys-apps/acl ) ) + !aqua? ( + gtk? ( + >=x11-libs/gtk+-2.6:2 + x11-libs/libXft + gnome? ( >=gnome-base/libgnomeui-2.6 ) + ) + !gtk? ( + motif? ( >=x11-libs/motif-2.3:0 ) + !motif? ( + neXt? ( x11-libs/neXtaw ) + !neXt? ( x11-libs/libXaw ) + ) + ) + ) + cscope? ( dev-util/cscope ) + lua? ( + luajit? ( dev-lang/luajit:2= ) + !luajit? ( dev-lang/lua:0[deprecated] ) + ) + nls? ( virtual/libintl ) + perl? ( dev-lang/perl:= ) + python? ( ${PYTHON_DEPS} ) + racket? ( dev-scheme/racket ) + ruby? ( || ( dev-lang/ruby:2.2 dev-lang/ruby:2.1 dev-lang/ruby:2.0 ) ) + selinux? ( sys-libs/libselinux ) + session? ( x11-libs/libSM ) + tcl? ( dev-lang/tcl:0= ) +" +DEPEND="${RDEPEND} + dev-util/ctags + sys-devel/autoconf + virtual/pkgconfig + nls? ( sys-devel/gettext ) +" + +S=${WORKDIR}/vim-${MY_PV} + +pkg_setup() { + # people with broken alphabets run into trouble. bug 82186. + unset LANG LC_ALL + export LC_COLLATE="C" + + # Gnome sandbox silliness. bug #114475. + mkdir -p "${T}"/home + export HOME="${T}"/home +} + +src_prepare() { + if [[ ${PV} != 9999* ]] ; then + if [[ -d "${WORKDIR}"/patches/ ]]; then + # Gentoo patches to fix runtime issues, cross-compile errors, etc + EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" \ + epatch "${WORKDIR}"/patches/ + fi + fi + + # Fixup a script to use awk instead of nawk + sed -i '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 + echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h + + # 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.in || die 'sed failed' + + # Don't be fooled by /usr/include/libc.h. When found, vim thinks + # this is NeXT, but it's actually just a file in dev-libs/9libs + # This fixes bug 43885 (20 Mar 2004 agriffis) + sed -i 's/ libc\.h / /' "${S}"/src/configure.in || 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" ; done + + # Try to avoid sandbox problems. Bug #114475. + if [[ -d "${S}"/src/po ]] ; then + sed -i '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ + "${S}"/src/po/Makefile + fi + + if version_is_at_least 7.3.122 ; then + cp "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk + fi + + # Bug #378107 - Build properly with >=perl-core/ExtUtils-ParseXS-3.20.0 + if version_is_at_least 7.3 ; then + sed -i "s:\\\$(PERLLIB)/ExtUtils/xsubpp:${EPREFIX}/usr/bin/xsubpp:" \ + "${S}"/src/Makefile || die 'sed for ExtUtils-ParseXS failed' + fi + + epatch_user +} + +src_configure() { + local myconf=() + + # Fix bug 37354: Disallow -funroll-all-loops on amd64 + # Bug 57859 suggests that we want to do this for all archs + filter-flags -funroll-all-loops + + # 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.in 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 -f src/auto/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 + [[ -e ${file} ]] && addwrite $file + done + + use debug && append-flags "-DDEBUG" + + myconf=( + --with-features=huge + --disable-gpm + --enable-multibyte + $(use_enable acl) + $(use_enable cscope) + $(use_enable lua luainterp) + $(use_with luajit) + $(use_enable netbeans) + $(use_enable nls) + $(use_enable perl perlinterp) + $(use_enable racket mzschemeinterp) + $(use_enable ruby rubyinterp) + $(use_enable selinux) + $(use_enable session xsmp) + $(use_enable tcl tclinterp) + ) + + if use python ; then + py_add_interp() { + local v + + [[ ${EPYTHON} == python3* ]] && v=3 + myconf+=( + --enable-python${v}interp + vi_cv_path_python${v}="${PYTHON}" + ) + } + + python_foreach_impl py_add_interp + else + myconf+=( + --disable-pythoninterp + --disable-python3interp + ) + fi + + # --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 '/# define FEAT_CSCOPE/d' src/feature.h || \ + die "couldn't disable cscope" + fi + + # gvim's GUI preference order is as follows: + # aqua CARBON (not tested) + # -aqua gtk gnome GNOME2 + # -aqua gtk -gnome GTK2 + # -aqua -gtk motif MOTIF + # -aqua -gtk -motif neXt NEXTAW + # -aqua -gtk -motif -neXt ATHENA + echo ; echo + if use aqua ; then + einfo "Building gvim with the Carbon GUI" + myconf+=( + --enable-darwin + --enable-gui=carbon + ) + elif use gtk ; then + myconf+=( --enable-gtk2-check ) + if use gnome ; then + einfo "Building gvim with the Gnome 2 GUI" + myconf+=( --enable-gui=gnome2 ) + else + einfo "Building gvim with the gtk+-2 GUI" + myconf+=( --enable-gui=gtk2 ) + fi + elif use motif ; then + einfo "Building gvim with the MOTIF GUI" + myconf+=( --enable-gui=motif ) + elif use neXt ; then + einfo "Building gvim with the neXtaw GUI" + myconf+=( --enable-gui=nextaw ) + else + einfo "Building gvim with the Athena GUI" + myconf+=( --enable-gui=athena ) + fi + echo ; echo + + # Let Portage do the stripping. Some people like that. + export ac_cv_prog_STRIP="$(type -P true ) faking strip" + + # Keep Gentoo Prefix env contained within the EPREFIX + use prefix && myconf+=( --without-local-dir ) + + if [[ ${CHOST} == *-interix* ]]; then + # avoid finding of this function, to avoid having to patch either + # configure or the source, which would be much more hackish. + # after all vim does it right, only interix is badly broken (again) + export ac_cv_func_sigaction=no + fi + + econf \ + --with-modified-by=Gentoo-${PVR} \ + --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() { + echo + 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." + echo + ewarn "If the tests fail, your terminal may be left in a strange" + ewarn "state. Usually, running 'reset' will fix this." + echo + + # Don't let vim talk to X + unset DISPLAY + + # We've got to call make test from within testdir, since the Makefiles + # don't pass through our VIMPROG argument + cd "${S}"/src/testdir + + # Test 49 won't work inside a portage environment + einfo "Test 49 isn't sandbox-friendly, so it will be skipped." + sed -i 's~test49.out~~g' Makefile + + # We don't want to rebuild vim before running the tests + sed -i 's,: \$(VIMPROG),: ,' Makefile + + # 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 + + # Don't try to do the additional GUI test + emake -j1 VIMPROG=../testvim nongui +} + +# Make convenience symlinks, hopefully without stepping on toes. Some +# of these links are "owned" by the vim ebuild when it is installed, +# but they might be good for gvim as well (see bug 45828) +update_vim_symlinks() { + local f syms + syms="vimdiff rvim rview" + einfo "Calling eselect vi update..." + # Call this with --if-unset to respect user's choice (bug 187449) + eselect vi update --if-unset + + # Make or remove convenience symlink, vim -> gvim + if [[ -f "${EROOT}"/usr/bin/gvim ]]; then + ln -s gvim "${EROOT}"/usr/bin/vim 2>/dev/null + elif [[ -L "${EROOT}"/usr/bin/vim && ! -f "${EROOT}"/usr/bin/vim ]]; then + rm "${EROOT}"/usr/bin/vim + fi + + # Make or remove convenience symlinks to vim + if [[ -f "${EROOT}"/usr/bin/vim ]]; then + for f in ${syms}; do + ln -s vim "${EROOT}"/usr/bin/${f} 2>/dev/null + done + else + for f in ${syms}; do + if [[ -L "${EROOT}"/usr/bin/${f} && ! -f "${EROOT}"/usr/bin/${f} ]]; then + rm -f "${EROOT}"/usr/bin/${f} + fi + done + fi + + # This will still break if you merge then remove the vi package, + # but there's only so much you can do, eh? Unfortunately we don't + # have triggers like are done in rpm-land. +} + +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 + + dodir /usr/share/man/man1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gvim.1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gview.1 + echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/gvimdiff.1 + + insinto /etc/vim + newins "${FILESDIR}"/gvimrc-r1 gvimrc + eprefixify "${ED}"/etc/vim/gvimrc + + newmenu "${FILESDIR}"/gvim.desktop-r2 gvim.desktop + doicon "${FILESDIR}"/gvim.xpm + doicon -s scalable "${FILESDIR}"/gvim.svg + + # bash completion script, bug #79018. + newbashcomp "${FILESDIR}"/${PN}-completion ${PN} + + # We shouldn't be installing the ex or view man page symlinks, as they + # are managed by eselect-vi + rm -f "${ED}"/usr/share/man/man1/{ex,view}.1 +} + +pkg_postinst() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Update fdo mime stuff, bug #78394 + fdo-mime_mime_database_update + + if [[ -z ${REPLACING_VERSIONS} ]] ; then + echo + elog "Vim 7 includes an integrated spell checker. You need to install" + elog "word list files before you can use it. There are ebuilds for" + elog "some of these named app-vim/vim-spell-*. If your language of" + elog "choice is not included, please consult vim-spell.eclass for" + elog "instructions on how to make a package." + echo + ewarn "Note that the English word lists are no longer installed by" + ewarn "default." + echo + fi + + # Make convenience symlinks + update_vim_symlinks +} + +pkg_postrm() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Update fdo mime stuff, bug #78394 + fdo-mime_mime_database_update + + # Make convenience symlinks + update_vim_symlinks +} diff --git a/app-editors/gvim/gvim-9999.ebuild b/app-editors/gvim/gvim-9999.ebuild new file mode 100644 index 000000000000..37c5edbd0b31 --- /dev/null +++ b/app-editors/gvim/gvim-9999.ebuild @@ -0,0 +1,416 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +VIM_VERSION="7.4" +PYTHON_COMPAT=( python{2_7,3_3,3_4} ) +PYTHON_REQ_USE=threads +inherit eutils vim-doc flag-o-matic fdo-mime versionator bash-completion-r1 prefix python-r1 + +MY_PV=${PV//./-} + +if [[ ${PV} == 9999* ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/vim/vim.git" + EGIT_CHECKOUT_DIR=${WORKDIR}/vim-${MY_PV} +else + SRC_URI="https://github.com/vim/vim/archive/v${MY_PV}.tar.gz -> vim-${PV}.tar.gz + http://dev.gentoo.org/~radhermit/vim/vim-7.4.542-gentoo-patches.tar.bz2" + KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris" +fi + +DESCRIPTION="GUI version of the Vim text editor" +HOMEPAGE="http://www.vim.org/" + +SLOT="0" +LICENSE="vim" +IUSE="acl aqua cscope debug gnome gtk lua luajit motif neXt netbeans nls perl python racket ruby selinux session tcl" +REQUIRED_USE=" + luajit? ( lua ) + python? ( + || ( $(python_gen_useflags '*') ) + ?? ( $(python_gen_useflags 'python2*') ) + ?? ( $(python_gen_useflags 'python3*') ) + ) +" + +RDEPEND=" + ~app-editors/vim-core-${PV} + >=app-eselect/eselect-vi-1.1 + >=sys-libs/ncurses-5.2-r2 + x11-libs/libXext + x11-libs/libXt + acl? ( kernel_linux? ( sys-apps/acl ) ) + !aqua? ( + gtk? ( + >=x11-libs/gtk+-2.6:2 + x11-libs/libXft + gnome? ( >=gnome-base/libgnomeui-2.6 ) + ) + !gtk? ( + motif? ( >=x11-libs/motif-2.3:0 ) + !motif? ( + neXt? ( x11-libs/neXtaw ) + !neXt? ( x11-libs/libXaw ) + ) + ) + ) + cscope? ( dev-util/cscope ) + lua? ( + luajit? ( dev-lang/luajit:2= ) + !luajit? ( dev-lang/lua:0[deprecated] ) + ) + nls? ( virtual/libintl ) + perl? ( dev-lang/perl:= ) + python? ( ${PYTHON_DEPS} ) + racket? ( dev-scheme/racket ) + ruby? ( || ( dev-lang/ruby:2.2 dev-lang/ruby:2.1 dev-lang/ruby:2.0 ) ) + selinux? ( sys-libs/libselinux ) + session? ( x11-libs/libSM ) + tcl? ( dev-lang/tcl:0= ) +" +DEPEND="${RDEPEND} + dev-util/ctags + sys-devel/autoconf + virtual/pkgconfig + nls? ( sys-devel/gettext ) +" + +S=${WORKDIR}/vim-${MY_PV} + +pkg_setup() { + # people with broken alphabets run into trouble. bug 82186. + unset LANG LC_ALL + export LC_COLLATE="C" + + # Gnome sandbox silliness. bug #114475. + mkdir -p "${T}"/home + export HOME="${T}"/home +} + +src_prepare() { + if [[ ${PV} != 9999* ]] ; then + if [[ -d "${WORKDIR}"/patches/ ]]; then + # Gentoo patches to fix runtime issues, cross-compile errors, etc + EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" \ + epatch "${WORKDIR}"/patches/ + fi + fi + + # Fixup a script to use awk instead of nawk + sed -i '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 + echo '#define SYS_GVIMRC_FILE "'${EPREFIX}'/etc/vim/gvimrc"' >> "${S}"/src/feature.h + + # 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.in || die 'sed failed' + + # Don't be fooled by /usr/include/libc.h. When found, vim thinks + # this is NeXT, but it's actually just a file in dev-libs/9libs + # This fixes bug 43885 (20 Mar 2004 agriffis) + sed -i 's/ libc\.h / /' "${S}"/src/configure.in || 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" ; done + + # Try to avoid sandbox problems. Bug #114475. + if [[ -d "${S}"/src/po ]] ; then + sed -i '/-S check.vim/s,..VIM.,ln -s $(VIM) testvim \; ./testvim -X,' \ + "${S}"/src/po/Makefile + fi + + if version_is_at_least 7.3.122 ; then + cp "${S}"/src/config.mk.dist "${S}"/src/auto/config.mk + fi + + # Bug #378107 - Build properly with >=perl-core/ExtUtils-ParseXS-3.20.0 + if version_is_at_least 7.3 ; then + sed -i "s:\\\$(PERLLIB)/ExtUtils/xsubpp:${EPREFIX}/usr/bin/xsubpp:" \ + "${S}"/src/Makefile || die 'sed for ExtUtils-ParseXS failed' + fi + + epatch_user +} + +src_configure() { + local myconf=() + + # Fix bug 37354: Disallow -funroll-all-loops on amd64 + # Bug 57859 suggests that we want to do this for all archs + filter-flags -funroll-all-loops + + # 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.in 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 -f src/auto/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 + [[ -e ${file} ]] && addwrite $file + done + + use debug && append-flags "-DDEBUG" + + myconf=( + --with-features=huge + --disable-gpm + --enable-multibyte + $(use_enable acl) + $(use_enable cscope) + $(use_enable lua luainterp) + $(use_with luajit) + $(use_enable netbeans) + $(use_enable nls) + $(use_enable perl perlinterp) + $(use_enable racket mzschemeinterp) + $(use_enable ruby rubyinterp) + $(use_enable selinux) + $(use_enable session xsmp) + $(use_enable tcl tclinterp) + ) + + if use python ; then + py_add_interp() { + local v + + [[ ${EPYTHON} == python3* ]] && v=3 + myconf+=( + --enable-python${v}interp + vi_cv_path_python${v}="${PYTHON}" + ) + } + + python_foreach_impl py_add_interp + else + myconf+=( + --disable-pythoninterp + --disable-python3interp + ) + fi + + # --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 '/# define FEAT_CSCOPE/d' src/feature.h || \ + die "couldn't disable cscope" + fi + + # gvim's GUI preference order is as follows: + # aqua CARBON (not tested) + # -aqua gtk gnome GNOME2 + # -aqua gtk -gnome GTK2 + # -aqua -gtk motif MOTIF + # -aqua -gtk -motif neXt NEXTAW + # -aqua -gtk -motif -neXt ATHENA + echo ; echo + if use aqua ; then + einfo "Building gvim with the Carbon GUI" + myconf+=( + --enable-darwin + --enable-gui=carbon + ) + elif use gtk ; then + myconf+=( --enable-gtk2-check ) + if use gnome ; then + einfo "Building gvim with the Gnome 2 GUI" + myconf+=( --enable-gui=gnome2 ) + else + einfo "Building gvim with the gtk+-2 GUI" + myconf+=( --enable-gui=gtk2 ) + fi + elif use motif ; then + einfo "Building gvim with the MOTIF GUI" + myconf+=( --enable-gui=motif ) + elif use neXt ; then + einfo "Building gvim with the neXtaw GUI" + myconf+=( --enable-gui=nextaw ) + else + einfo "Building gvim with the Athena GUI" + myconf+=( --enable-gui=athena ) + fi + echo ; echo + + # Let Portage do the stripping. Some people like that. + export ac_cv_prog_STRIP="$(type -P true ) faking strip" + + # Keep Gentoo Prefix env contained within the EPREFIX + use prefix && myconf+=( --without-local-dir ) + + if [[ ${CHOST} == *-interix* ]]; then + # avoid finding of this function, to avoid having to patch either + # configure or the source, which would be much more hackish. + # after all vim does it right, only interix is badly broken (again) + export ac_cv_func_sigaction=no + fi + + econf \ + --with-modified-by=Gentoo-${PVR} \ + --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() { + echo + 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." + echo + ewarn "If the tests fail, your terminal may be left in a strange" + ewarn "state. Usually, running 'reset' will fix this." + echo + + # Don't let vim talk to X + unset DISPLAY + + # We've got to call make test from within testdir, since the Makefiles + # don't pass through our VIMPROG argument + cd "${S}"/src/testdir + + # Test 49 won't work inside a portage environment + einfo "Test 49 isn't sandbox-friendly, so it will be skipped." + sed -i 's~test49.out~~g' Makefile + + # We don't want to rebuild vim before running the tests + sed -i 's,: \$(VIMPROG),: ,' Makefile + + # 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 + + # Don't try to do the additional GUI test + emake -j1 VIMPROG=../testvim nongui +} + +# Make convenience symlinks, hopefully without stepping on toes. Some +# of these links are "owned" by the vim ebuild when it is installed, +# but they might be good for gvim as well (see bug 45828) +update_vim_symlinks() { + local f syms + syms="vimdiff rvim rview" + einfo "Calling eselect vi update..." + # Call this with --if-unset to respect user's choice (bug 187449) + eselect vi update --if-unset + + # Make or remove convenience symlink, vim -> gvim + if [[ -f "${EROOT}"/usr/bin/gvim ]]; then + ln -s gvim "${EROOT}"/usr/bin/vim 2>/dev/null + elif [[ -L "${EROOT}"/usr/bin/vim && ! -f "${EROOT}"/usr/bin/vim ]]; then + rm "${EROOT}"/usr/bin/vim + fi + + # Make or remove convenience symlinks to vim + if [[ -f "${EROOT}"/usr/bin/vim ]]; then + for f in ${syms}; do + ln -s vim "${EROOT}"/usr/bin/${f} 2>/dev/null + done + else + for f in ${syms}; do + if [[ -L "${EROOT}"/usr/bin/${f} && ! -f "${EROOT}"/usr/bin/${f} ]]; then + rm -f "${EROOT}"/usr/bin/${f} + fi + done + fi + + # This will still break if you merge then remove the vi package, + # but there's only so much you can do, eh? Unfortunately we don't + # have triggers like are done in rpm-land. +} + +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 + + dodir /usr/share/man/man1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gvim.1 + echo ".so vim.1" > "${ED}"/usr/share/man/man1/gview.1 + echo ".so vimdiff.1" > "${ED}"/usr/share/man/man1/gvimdiff.1 + + insinto /etc/vim + newins "${FILESDIR}"/gvimrc-r1 gvimrc + eprefixify "${ED}"/etc/vim/gvimrc + + newmenu "${FILESDIR}"/gvim.desktop-r2 gvim.desktop + doicon "${FILESDIR}"/gvim.xpm + doicon -s scalable "${FILESDIR}"/gvim.svg + + # bash completion script, bug #79018. + newbashcomp "${FILESDIR}"/${PN}-completion ${PN} + + # We shouldn't be installing the ex or view man page symlinks, as they + # are managed by eselect-vi + rm -f "${ED}"/usr/share/man/man1/{ex,view}.1 +} + +pkg_postinst() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Update fdo mime stuff, bug #78394 + fdo-mime_mime_database_update + + if [[ -z ${REPLACING_VERSIONS} ]] ; then + echo + elog "Vim 7 includes an integrated spell checker. You need to install" + elog "word list files before you can use it. There are ebuilds for" + elog "some of these named app-vim/vim-spell-*. If your language of" + elog "choice is not included, please consult vim-spell.eclass for" + elog "instructions on how to make a package." + echo + ewarn "Note that the English word lists are no longer installed by" + ewarn "default." + echo + fi + + # Make convenience symlinks + update_vim_symlinks +} + +pkg_postrm() { + # Update documentation tags (from vim-doc.eclass) + update_vim_helptags + + # Update fdo mime stuff, bug #78394 + fdo-mime_mime_database_update + + # Make convenience symlinks + update_vim_symlinks +} diff --git a/app-editors/gvim/metadata.xml b/app-editors/gvim/metadata.xml new file mode 100644 index 000000000000..f4007d12d814 --- /dev/null +++ b/app-editors/gvim/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>vim</herd> + <use> + <flag name="luajit">Use <pkg>dev-lang/luajit</pkg> instead of <pkg>dev-lang/lua</pkg></flag> + <flag name="netbeans">Include netbeans external editor integration support</flag> + <flag name="racket">Enable support for Scheme using <pkg>dev-lang/racket</pkg></flag> + </use> + <upstream> + <remote-id type="github">vim/vim</remote-id> + </upstream> +</pkgmetadata> |