forked from pool/vagrant
Dirk Mueller
6c2a7c487b
New upstream release 2.2.9 OBS-URL: https://build.opensuse.org/request/show/803169 OBS-URL: https://build.opensuse.org/package/show/Virtualization:vagrant/vagrant?expand=0&rev=42
64 lines
1.5 KiB
Plaintext
64 lines
1.5 KiB
Plaintext
Packaging Vagrant plugins
|
|
-------------------------
|
|
|
|
This convention is based on the Fedora vagrant package.
|
|
|
|
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.
|
|
|
|
Note that we *must* explicitly specify the macros `rb_build_versions` and
|
|
`rb_build_abi` (and cannot use macros here!). Usually we can simply use the
|
|
default ruby here, but in case vagrant is incompatible with the default ruby, we
|
|
must override this in each plugin.
|
|
|
|
An example specfile for a vagrant plugin looks like this:
|
|
``` spec
|
|
%global rb_build_versions ruby26
|
|
%global rb_build_abi ruby:2.6.0
|
|
%global rb_ruby_suffix ruby2.6
|
|
|
|
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: $SUMMARY
|
|
License: $LICENSE
|
|
|
|
%description
|
|
$DESCRIPTION
|
|
|
|
%global vagrant_plugin_name %{name}
|
|
|
|
%prep
|
|
%gem_unpack
|
|
|
|
%build
|
|
%gem_build
|
|
|
|
%install
|
|
%vagrant_plugin_install
|
|
|
|
%files
|
|
%{vagrant_plugin_instdir}
|
|
%{vagrant_plugin_cache}
|
|
%{vagrant_plugin_spec}
|
|
|
|
|
|
%changelog
|
|
|
|
```
|