Hi Mo,

Thanks for the pointers, I'll definitely look at this and ask for help on the Ruby SIG list. The issue here is that Vagrant plugins are rubygems that get installed in the user's ~/.vagrant.d/ directory with all their dependencies (ie. Vagrant won't reuse system-wide installed gems). I already face the issue with vagrant-kvm with the dependency on Nokogiri, which needs gcc to install. OTOH I'm trying to keep Vagrant patching to a minimum. I think the best course of action is:
 - have Vagrant look for plugins system-wide first (in /usr/share/gems) and then in ~/.vagrant.d
 - still allow plugin install from rubygems.org ('vagrant plugin install whatever') and ensure it works
 - provide vagrant-kvm as a system-wide rubygem and ensure it uses system-wide dependencies
 - maybe provide some other Vagrant plugins as RPM (not sure it's wise)

bundler_ext seems like it could help here, I'm going to have a look at that.

Alex


From: "Mo Morsi" <mmorsi@redhat.com>
To: cloud@lists.fedoraproject.org
Sent: Monday, 23 September, 2013 2:17:01 PM
Subject: Re: Vagrant in Fedora

On 09/23/2013 08:37 AM, Alexandre Drahon wrote:
Hi all,

I wanted to give an update on the status of Vagrant in Fedora 20, I just realised it's my first post to the list so I'll take this opportunity to introduce myself. I'm Alex, I work at Red Hat as a Solution Architect (ie. nothing engineering related), I wrote the vagrant-kvm plugin on my spare time to make it work on my Fedora laptop, though there's now a (much more qualified) second maintainer who is also providing support for Ubuntu through a PPA. Matthew asked me if I wanted to work on packaging Vagrant and the KVM plugin for Fedora 20, and I foolishly accepted ;)

It's quite exhilarating having the opportunity to contribute to Fedora, and at the same time I feel totally lost. I don't mean this as a criticism, it's just this "first week at school" feeling, it will take me some time to get an idea of how things work. That said, here's the Vagrant situation:

1. I have a vagrant RPM that installs and works as expected, there's some minimal patching involved which has to do with the fact that Vagrant expect to be running in it's own Ruby 1.9.3 environment in /opt
2. There was also some patching involved to make the plugin system work, although I haven't tested plugins extensively (some stuff breaks like rubygems loading path) and providing common plugins as RPMs looks like the better way in Fedora.
3. I had to build my own rubygems-childprocess (current Fedora package is very old) and rubygems-log4r (not provided in Fedora) RPMs, but I don't know how I should submit them (package review ticket?). There's a existing ticket for log4r https://bugzilla.redhat.com/show_bug.cgi?id=905240, I added it as a dependency to the Vagrant ticket.
4. I've packaged vagrant-kvm as a RPM and it installs, but I'm running into serious issues with Policykit. I don't think I'll be able to solve that without help, I'm not even sure what's the right way to do it.

So, as a summary:
 - yum install vagrant should work, at which point you need to install VirtualBox and it will run as expected
 - vagrant-kvm installs but I don't know how to add the right polkit rules (I need help)

Looks pretty good, right?

Alex


Hey Alex, looks awesome, thanks for submitting this.

Unfortunately I'm not too familiar w/ the polkit stuff, but regarding the Ruby packaging, it looks similar to other situations we've encountered when attempting to package Ruby code for our platform. Unfortunately alot of upstream ruby tools are geared towards heavily vendoring / bundling deps (often the primary platform is Mac OSX). We're making headways on improving support for and working around these situations (see stuff like [1], [2], and [3]), often sending things upstream (which a variable acceptance rate depending on community practices).

In any case, if you're looking for any assistance RE the ruby stuff, I'd checkout the Ruby SIG [4] (if you haven't already). Or even just forward this there, I'm sure there will be interest. Thanks again!

  -Mo

[1] https://github.com/bundlerext/bundler_ext
[2] https://github.com/ManageIQ/gem_dependency_checker/blob/master/gem_dependency_checker.rb
[3] https://github.com/voxik/gem-nice-install
[4] http://fedoraproject.org/wiki/Ruby_SIG

_______________________________________________
cloud mailing list
cloud@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/cloud
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct