2 # - release notes: https://github.com/mitchellh/vagrant/blob/master/CHANGELOG.md
3 Summary: Provisioning and deployment of virtual instances
8 Group: Applications/Emulators
9 Source0: https://github.com/mitchellh/vagrant/archive/v%{version}/%{name}-%{version}.tar.gz
10 # Source0-md5: 20b7a4a7b3e1bb4a57c8cac65a547ce7
12 Patch1: rubygems.patch
13 Patch2: no-warning.patch
14 Patch3: Vagrantfile.patch
17 Patch7: insert-key.patch
19 Patch9: pld-chef-installed.patch
20 URL: http://www.vagrantup.com/
22 BuildRequires: rpm-rubyprov
23 BuildRequires: ruby > 1:2.0
25 BuildRequires: ruby-contest >= 0.1.2
26 BuildRequires: ruby-minitest >= 2.5.1
27 BuildRequires: ruby-mocha
28 BuildRequires: ruby-rake
29 BuildRequires: ruby-rspec >= 2.14.0
34 Requires: ruby-rubygems
36 Suggests: VirtualBox-gui
40 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
42 %define _appdir %{_datadir}/%{name}
43 %define bash_compdir %{_datadir}/bash-completion/completions
45 %define vg_home /home/vagrant
46 %define vg_root /vagrant
49 Vagrant offers scripted provisioning and deployment of virtual
50 instances. While VirtualBox is the main target, future versions may
51 support other hypervizors as well.
53 The vision of the project is to create a tool to transparently manage
54 all the complex parts of modern development within a virtual
55 environment without affecting the everyday workflow of the developer
56 too much. A long term goal is moving all development into virtualized
57 environments by making it easier to do so than not to. Additionally,
58 work is ongoing to have Vagrant run identically on every major
59 consumer OS platform (Linux, Mac OS X, and Windows).
61 %package -n bash-completion-%{name}
62 Summary: bash-completion for %{name}
63 Group: Applications/Shells
65 Requires: bash-completion >= 2.0
67 %description -n bash-completion-%{name}
68 bash-completion for %{name}.
71 Summary: Vagrant guest
72 Group: Development/Building
73 URL: http://docs-v1.vagrantup.com/v1/docs/base_boxes.html
74 Requires(postun): /usr/sbin/userdel
75 Requires(pre): /bin/id
76 Requires(pre): /usr/bin/getgid
77 Requires(pre): /usr/sbin/groupadd
78 Requires(pre): /usr/sbin/useradd
79 Requires: /etc/pld-release
80 Requires: openssh-server
81 Requires: sudo >= 1.7.4p3-2
83 Suggests: kernel(vboxsf)
84 Provides: group(vagrant)
85 Provides: user(vagrant)
88 This is the package to be installed in Vagrant guest.
90 WARNING: This package installs insecure keypair to vagant user. Do not
91 install this package in a box that is accessible others but you.
93 These keys are the "insecure" public/private keypair we offer to base
94 box creators for use in their base boxes so that vagrant installations
95 can automatically SSH into the boxes.
97 See: <https://github.com/mitchellh/vagrant/tree/master/keys/>.
100 Summary: Documentation for %{name}
102 Requires: %{name} = %{version}-%{release}
105 Ruby documentation for %{gem_name}
118 VERSION=$(cat version.txt)
119 sed -i -e "s/__VERSION__/$VERSION/" lib/vagrant/version.rb
121 # cleanup backups after patching
122 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
125 # make gemspec self-contained
126 ruby -r rubygems -e 'spec = eval(File.read("%{name}.gemspec"))
127 File.open("%{name}-%{version}.gemspec", "w") do |file|
128 file.puts spec.to_ruby_for_cache
132 rm -rf $RPM_BUILD_ROOT
133 install -d $RPM_BUILD_ROOT{%{ruby_gemdir}/gems/%{name}-%{version},%{ruby_specdir},%{_bindir}}
134 cp -a lib bin keys plugins templates $RPM_BUILD_ROOT%{ruby_gemdir}/gems/%{name}-%{version}
135 cp -p %{name}-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir}
136 install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/%{name}
138 install -d $RPM_BUILD_ROOT%{bash_compdir}
139 cp -p contrib/bash/completion.sh $RPM_BUILD_ROOT%{bash_compdir}/%{name}
142 install -d $RPM_BUILD_ROOT/etc/sudoers.d
143 echo 'vagrant ALL=(ALL) NOPASSWD: ALL' > $RPM_BUILD_ROOT/etc/sudoers.d/%{name}
145 install -d $RPM_BUILD_ROOT{%{vg_root},%{vg_home}/.ssh}
146 cp -p /etc/skel/.bash* $RPM_BUILD_ROOT%{vg_home}
148 # Since Vagrant only supports key-based authentication for SSH, we must
149 # set up the vagrant user to use key-based authentication. We can get the
150 # public key used by the Vagrant gem directly from its Github repository.
151 cp -p keys/vagrant.pub $RPM_BUILD_ROOT%{vg_home}/.ssh/authorized_keys
154 rm -rf $RPM_BUILD_ROOT
157 %groupadd -g 291 vagrant
158 %useradd -u 291 -g vagrant -G wheel -c "Vagrant user" -s /bin/bash -d %{vg_home} vagrant
161 if [ "$1" = "0" ]; then
167 %defattr(644,root,root,755)
168 %attr(755,root,root) %{_bindir}/vagrant
169 #%{ruby_vendorlibdir}/vagrant.rb
170 #%{ruby_vendorlibdir}/vagrant
173 %dir %{ruby_gemdir}/gems/%{name}-%{version}
174 %dir %{ruby_gemdir}/gems/%{name}-%{version}/bin
175 %attr(755,root,root) %{ruby_gemdir}/gems/%{name}-%{version}/bin/*
176 %{ruby_gemdir}/gems/%{name}-%{version}/keys
177 %{ruby_gemdir}/gems/%{name}-%{version}/lib
178 %{ruby_gemdir}/gems/%{name}-%{version}/plugins
179 %{ruby_gemdir}/gems/%{name}-%{version}/templates
181 %{ruby_specdir}/%{name}-%{version}.gemspec
183 %files -n bash-completion-%{name}
184 %defattr(644,root,root,755)
185 %{bash_compdir}/%{name}
188 %defattr(644,root,root,755)
189 %attr(440,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sudoers.d/%{name}
190 %dir %attr(750,vagrant,vagrant) %{vg_home}
191 %dir %attr(700,vagrant,vagrant) %{vg_home}/.ssh
192 %attr(600,vagrant,vagrant) %config(noreplace) %verify(not md5 mtime size) %{vg_home}/.ssh/authorized_keys
193 %dir %attr(640,vagrant,vagrant) %{vg_home}/.bash*
194 %dir %attr(700,root,root) %{vg_root}
198 %defattr(644,root,root,755)