FS#16710 - [gvim] Missing Ruby interpreter

Attached to Project: Arch Linux
Opened by Phil Kates (PhilK) - Saturday, 17 October 2009, 15:24 GMT
Last edited by Dan Griffiths (Ghost1227) - Monday, 22 February 2010, 04:55 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Tobias Kieslich (tobias)
Dan Griffiths (Ghost1227)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
GVim's PKGBUILD specifically disables the Ruby interpreter. This is due to an upstream bug with VIM not compiling correctly with Ruby 1.9. There is a patch to fix it that is backwards compatible with Ruby 1.8 available here: http://groups.google.com/group/vim_dev/browse_thread/thread/699c65598bc6348b/e5c0a53a8a26624e?lnk=raot
If you apply this patch as part of the PKGBUILD it compiles and (so far) seems to work fine.

I realize this isn't really Arch's fault but Arch's default Ruby is 1.9 so out of the box Arch's VIM is essentially broken for Rubyists (who want the more advanced features). It likely also breaks some parts of the functionality of the vim-rails package (though I'm more Ruby than Rails so I haven't tested it).

Additional info:
* gvim 7.2.266 or vim 7.2.266
This task depends upon

Closed by  Dan Griffiths (Ghost1227)
Monday, 22 February 2010, 04:55 GMT
Reason for closing:  Implemented
Additional comments about closing:  He's right! It's finally officially patched!
Comment by Tobias Kieslich (tobias) - Saturday, 17 October 2009, 19:29 GMT
I made a commitment to not having Ruby in vim packages until it is officially supported. I know there are multiple patches out thre trying to bind the new Ruby to vim and there are reports for most of them with things not working accordingly. The problem here is that not all available rubyscripts will work with 1.9 and people will blame that at vim. I'll wait for the vim people to make a move
Comment by Phil Kates (PhilK) - Saturday, 17 October 2009, 21:15 GMT
Fair enough. Time to go harass the Vim guys then...
Comment by Michael Henry (drmikehenry) - Sunday, 21 February 2010, 17:32 GMT
  • Field changed: Percent Complete (100% → 0%)
As of Patch 7.2.368, the Ruby interface for Vim has been updated to
work with Ruby 1.9:

http://osdir.com/ml/general/2010-02/msg21930.html

It would be nice to have --enable-rubyinterp turned back on.

Thanks,
Michael Henry
Comment by xduugu (xduugu) - Sunday, 21 February 2010, 22:27 GMT
ruby should be readded to the depends array and the package needs to be built with ruby being present
Comment by Dan Griffiths (Ghost1227) - Sunday, 21 February 2010, 22:32 GMT
Hmm... Doesn't currently build with ruby enabled
Comment by Tobias Kieslich (tobias) - Sunday, 21 February 2010, 22:42 GMT
Ya, Dan, you can close this. Until Gvim builds out of the box with ruby nothing should be doen. All the patches I saw online seem sketchy. I don't think gvim will jump on that wagon until Ruby2.0 hits the shelf. If there are any patches for it I think AUR shall iron that out first. If we introduce that to extra there is a lot of trouble ahead.
Comment by Michael Henry (drmikehenry) - Monday, 22 February 2010, 04:06 GMT
  • Field changed: Percent Complete (100% → 0%)
Hi,

I think the reason you're having trouble building with Ruby support is because your ``get_patches()`` function in ``fetch_patches.sh`` was changed, and none of the patches are applying correctly. The patching is being done in ``src``, but it should be done in ``src/vim72``.

Attached is a patch for fetch_patches.sh which uses the ``-d`` option of ``patch`` to change to ``${_versiondir}`` such that the patches apply correctly. Included in the patch is a replacement ``rsync`` invocation because for some reason on my box, the flurry of ``wget`` invocations fail for a couple of dozen patches. If ``rsync`` is an acceptable build-time dependency, it would speed up the fetching of patches and make it more reliable (as it would the fetching of the runtime files). But of course, that's a separate concern. In addition, the patch uses ``>>`` instead of ``>`` to redirect the patching error messages; otherwise, only the last patch's output ends up in ``vim.full.patch.log``. Failing patches previously didn't fail the ``get_patches()`` function, so I've added ``|| return 1`` to the ``patch`` invocation as well.

--- fetch_patches.sh (revision 69676)
+++ fetch_patches.sh (working copy)
@@ -7,12 +7,11 @@
let _patchlevel=$_patchlevel+1
_currpatch=$(cat MD5SUMS | wc -l)
sed -i "${_patchlevel},\$d" MD5SUMS
- cat MD5SUMS | awk '{ print $2 }' | sed -e \
- "s|^|ftp://ftp.vim.org/pub/vim/patches/${_srcver}/|" | \
- xargs -P 0 -r -n 1 wget -nv
+ rsync -avzcP "ftp.nluug.nl::Vim/patches/${_srcver}/${_srcver}.*" .
md5sum -c MD5SUMS > /dev/null || return 1
+ > vim.full.patch.log
for file in $(cat MD5SUMS | awk '{ print $2 }')
- do patch -p0 < $file > vim.full.patch.log; done
+ do patch -d ${_versiondir} -p0 < $file >> vim.full.patch.log || return 1; done

########


I'm not sure how mangled this patch will become, but hopefully the verbiage above explains the problem well enough. With the above patch, I can successfully build using -r69676 of the vim package. I've not tried the gvim package yet, but using my own build scripts, I'm able to build a ``huge`` version of Vim which works with the Ruby integration and which includes X support (and basically everything).

Loading...