Vagrant in Fedora

Nathanael D. Noblet nathanael at gnat.ca
Wed Oct 16 22:49:22 UTC 2013


On 10/15/2013 01:06 PM, Alex Drahon wrote:
> On 26/09/13 22:09, Alex Drahon wrote:
>> On 24/09/13 06:43, Nathanael Noblet wrote:
>>> On 09/23/2013 06: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?
>>>
>>> It does... Since some of the work needed to get this working requires
>>> packages that aren't in fedora already are you able to provide a link
>>> to a bunch of src.rpms of everything needed. I'd like to test and
>>> wanted to help with this feature awhile back but got sidetracked...
>>> However I don't have F20 running on anything so would likely use mock
>>> to compile for F18 and see if I can help resolve/test/do something
>>> like that.
>>>
>>
>> I posted the current source packages here http://srpms.adrahon.org/
>>
>> Vagrant should work with VirtualBox
>> (http://download.virtualbox.org/virtualbox/4.2.18/VirtualBox-4.2-4.2.18_88780_fedora18-1.x86_64.rpm
>> ).
>>
>> vagrant-kvm still has issues, not sure it's in a testable state yet.
>>
>
> After trying several solutions, I think I have found the right
> compromise and finally have working packages (with a some caveats).
> Again the source packages are at http://srpms.adrahon.org/ :
>   - vagrant looks for plugins both in the user's ~/.vagrant.d directory
> and /usr/share/gems for system-wide plugins (like vagrant-kvm)
>   - my patched vagrant version looks in /etc/vagrant for the system-wide
> plugin registry
>   - I added commands to vagrant plugin to manage registration of
> system-wide plugins (installed with yum)
>   - rpm-packaged plugins register/unregister themselves at
> installation/uninstallation
>
> This means that Vagrant's behaviour hasn't changed and we can still
> package plugins as RPMs.
>
> How to test:
>   - you need to install rubygem-log4r, then vagrant, then
> rubygem-vagrant-kvm
>   - "vagrant init fedora19" (name of your box) then edit the Vagrantfile
> (you need a private network with a 192.168.192.0 address)
>   - "vagrant up --provider=kvm" should work

When installing rubygem-vagrant-kvm I get this output on a F19 box...
Running transaction
   Installing : rubygem-vagrant-kvm-0.1.4-1.fc19.noarch 
                                                                 1/1
translation missing: en.vagrant.commands.plugin.unregistering
translation missing: en.vagrant.commands.plugin.unregistering
/usr/share/gems/gems/vagrant-1.3.3/plugins/commands/plugin/state_file.rb:51:in 
`initialize': No such file or directory - /etc/vagrant/plugins.json 
(Errno::ENOENT)
... long stack trace.

There is no /etc/vagrant directory. and querying the packages built from 
your source none of them have a /etc/vagrant directory.
I see your vagrant.spec file creates the directory in the buildroot but 
doesn't claim it in the %files section.

When I add
%dir %{_sysconfdir}/vagrant

to your vagrant.spec and rebuild I get further. At least its attempting 
to fire up a new vagrant instance and I get the polkit prompt...


Also a small packaging issue/suggestion. Typically when trying to get a 
package included in Fedora you go through issues where you have to 
regenerate a package. When I was submitting my first packages I don't 
know how many times I had to make changes, however it is still good to 
bump the 'Release' tag so that updates continue to function. With the 
packages you've posted the release number is still 1 so I have to yum 
remove them and then yum install them. When I did this I was told that 
its good to use 0.x as the release version so that once submitted to the 
packagedb the release number starts at 1. Just a thought, either way it 
would be nice if the release version changed with each of your changes.


-- 
Nathanael d. Noblet
t 403.875.4613


More information about the cloud mailing list