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
----- Original Message -----
From: "Mo Morsi" <mmorsi(a)redhat.com>
To: cloud(a)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_depend...
[3]
https://github.com/voxik/gem-nice-install
[4]
http://fedoraproject.org/wiki/Ruby_SIG
_______________________________________________
cloud mailing list
cloud(a)lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/cloud
Fedora Code of Conduct:
http://fedoraproject.org/code-of-conduct