2016-04-12 19:31:48 +02:00
|
|
|
Packaging Vagrant plugins
|
|
|
|
-------------------------
|
|
|
|
|
2019-04-11 20:03:08 +02:00
|
|
|
This convention is based on the Fedora vagrant package.
|
2016-04-12 19:31:48 +02:00
|
|
|
|
2019-04-11 20:03:08 +02:00
|
|
|
Vagrant plugins are ordinary rubygems, but they should not be packaged as
|
|
|
|
these. First off all, we don't need to build the plugin with a ruby version
|
|
|
|
other then the ruby version with which vagrant was built. Furthermore, vagrant
|
|
|
|
will _only_ recognize gems inside its own directory structure as plugins and not
|
|
|
|
arbitrary rubygems.
|
|
|
|
|
|
|
|
An example specfile for a vagrant plugin looks like this:
|
|
|
|
``` spec
|
|
|
|
%global rb_build_versions %vagrant_rb_build_versions
|
|
|
|
%global rb_build_abi %vagrant_rb_build_abi
|
|
|
|
%global rb_default_ruby_suffix %vagrant_rb_default_ruby_suffix
|
|
|
|
|
|
|
|
Name: vagrant-MYPLUGIN
|
|
|
|
Version: $VERSION
|
|
|
|
Release: 0
|
|
|
|
%define mod_name %{name}
|
|
|
|
%define mod_full_name %{mod_name}-%{version}
|
|
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
|
|
BuildRequires: %{rubygem gem2rpm}
|
|
|
|
BuildRequires: %{ruby}
|
|
|
|
BuildRequires: ruby-macros >= 5
|
|
|
|
|
|
|
|
BuildRequires: vagrant
|
|
|
|
BuildArch: noarch
|
|
|
|
Url: $URL
|
|
|
|
Source: $SRC
|
|
|
|
Source1: gem2rpm.yml
|
|
|
|
Summary: Vagrant provider for libvirt
|
|
|
|
License: MIT
|
|
|
|
Group: Development/Languages/Ruby
|
|
|
|
|
|
|
|
%description
|
|
|
|
$DESCRIPTION
|
|
|
|
|
|
|
|
%global vagrant_plugin_name %{name}
|
|
|
|
|
|
|
|
%prep
|
|
|
|
%gem_unpack
|
|
|
|
|
|
|
|
%build
|
|
|
|
%gem_build
|
|
|
|
|
|
|
|
%install
|
|
|
|
%vagrant_plugin_install -n %{mod_full_name}/%{vagrant_plugin_name}-%{version}.gem
|
|
|
|
|
|
|
|
%files
|
|
|
|
%{vagrant_plugin_instdir}
|
|
|
|
%{vagrant_plugin_cache}
|
|
|
|
%{vagrant_plugin_spec}
|
|
|
|
|
|
|
|
|
|
|
|
%changelog
|
|
|
|
|
|
|
|
```
|