From 126c9574c1adca13a86f4c382cf17e721d477b65 Mon Sep 17 00:00:00 2001 From: Vít Ondruch Date: Wed, 26 Nov 2014 12:03:37 +0100 Subject: Create -devel sub-package --- macros.vagrant | 41 +++++++++++++++++++++++++++++++++++++++++ vagrant.spec | 21 +++++++++++++++++++-- 2 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 macros.vagrant diff --git a/macros.vagrant b/macros.vagrant new file mode 100644 index 0000000..6636aba --- /dev/null +++ b/macros.vagrant @@ -0,0 +1,41 @@ +# Common gem locations and files for Vagrant plugin +%gem_dir /usr/share/vagrant/gems +%gem_instdir %{gem_dir}/gems/%{gem_name}-%{version} +%gem_extdir_mri %{_libdir}/gems/ruby/%{gem_name}-%{version} +%gem_libdir %{gem_instdir}/lib +%gem_cache %{gem_dir}/cache/%{gem_name}-%{version}.gem +%gem_spec %{gem_dir}/specifications/%{gem_name}-%{version}.gemspec +%gem_docdir %{gem_dir}/doc/%{gem_name}-%{version} + +# Install gem into appropriate directory. +# -n Overrides gem file name for installation. +# -d Set installation directory. +%gem_install(d:n:) \ +mkdir -p %{-d*}%{!?-d:.%{gem_dir}} \ +\ +CONFIGURE_ARGS="--with-cflags='%{optflags}' $CONFIGURE_ARGS" \\\ +gem install \\\ + -V \\\ + --local \\\ + --install-dir %{-d*}%{!?-d:.%{gem_dir}} \\\ + --bindir .%{_bindir} \\\ + --force \\\ + --document=ri,rdoc \\\ + --backtrace \\\ + %{-n*}%{!?-n:%{gem_name}-%{version}.gem} \ +%{nil} + +# Macros to (un)register Vagrant gem +%vagrant_plugin_register() \ +%{_bindir}/ruby -e ' \\\ +$LOAD_PATH.unshift "%{_datadir}/vagrant/lib"; \\\ +require "vagrant/plugin/manager"; \\\ +Vagrant::Plugin::StateFile.new(Pathname.new(File.expand_path "/var/lib/vagrant/plugins.json")).add_plugin "%1";' \ +%{nil} + +%vagrant_plugin_unregister() \ +%{_bindir}/ruby -e ' \\\ +$LOAD_PATH.unshift "%{_datadir}/vagrant/lib"; \\\ +require "vagrant/plugin/manager"; \\\ +Vagrant::Plugin::StateFile.new(Pathname.new(File.expand_path "/var/lib/vagrant/plugins.json")).remove_plugin "%1";' \ +%{nil} diff --git a/vagrant.spec b/vagrant.spec index 9480802..f1ae6cf 100644 --- a/vagrant.spec +++ b/vagrant.spec @@ -6,7 +6,7 @@ Name: vagrant Version: 1.6.5 -Release: 12%{?dist} +Release: 13%{?dist} Summary: Build and distribute virtualized development environments Group: Development/Languages License: MIT @@ -24,6 +24,8 @@ Source2: https://github.com/mitchellh/%{name}-spec/archive/%{vagrant_spec_commit # for RubyGems and Bundler are in place Source3: patches.rb +Source4: macros.vagrant + Patch0: vagrant-1.6.5-fix-dependencies.patch Requires: ruby(release) @@ -80,6 +82,12 @@ BuildArch: noarch %description doc Documentation for %{name}. +%package devel +Summary: Package shipping development files for Vagrant + +%description devel +Package shipping macros for convinient plugin registration and +unregistration. %prep %setup -q @@ -93,7 +101,6 @@ mkdir -p %{buildroot}%{vagrant_dir} cp -pa ./* \ %{buildroot}%{vagrant_dir}/ - find %{buildroot}%{vagrant_dir}/bin -type f | xargs chmod a+x rm %{buildroot}%{vagrant_dir}/{CHANGELOG,CONTRIBUTING,README}.md @@ -116,6 +123,10 @@ install -d -m 755 %{buildroot}%{vagrant_plugin_dir} cp %{SOURCE3} %{buildroot}%{vagrant_dir}/lib/vagrant sed -i -e "11irequire 'vagrant/patches'" %{buildroot}%{vagrant_dir}/lib/vagrant.rb +# Install Vagrant macros +mkdir -p %{buildroot}%{_rpmconfigdir}/macros.d/ +cp %{SOURCE4} %{buildroot}%{_rpmconfigdir}/macros.d/ + %check # Unpack the vagran-spec and adjust the directory name. @@ -168,8 +179,14 @@ getent group vagrant >/dev/null || groupadd -r vagrant %{vagrant_dir}/test %{vagrant_dir}/vagrant-spec.config.example.rb +%files devel +%{_rpmconfigdir}/macros.d/macros.%{name} + %changelog +* Tue Nov 25 2014 Josef Stribny - 1.6.5-13 +- Create -devel sub-package + * Mon Nov 24 2014 Josef Stribny - 1.6.5-12 - Include monkey-patching for RubyGems and Bundler for now -- cgit