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 Patch10: net-ssh.patch
21 URL: http://www.vagrantup.com/
23 BuildRequires: rpm-rubyprov
24 BuildRequires: ruby > 1:2.0
26 BuildRequires: ruby-contest >= 0.1.2
27 BuildRequires: ruby-minitest >= 2.5.1
28 BuildRequires: ruby-mocha
29 BuildRequires: ruby-rake
30 BuildRequires: ruby-rspec >= 2.14.0
35 Requires: ruby-rubygems
37 Suggests: VirtualBox-gui
41 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
43 %define _appdir %{_datadir}/%{name}
44 %define bash_compdir %{_datadir}/bash-completion/completions
46 %define vg_home /home/vagrant
47 %define vg_root /vagrant
50 Vagrant offers scripted provisioning and deployment of virtual
51 instances. While VirtualBox is the main target, future versions may
52 support other hypervizors as well.
54 The vision of the project is to create a tool to transparently manage
55 all the complex parts of modern development within a virtual
56 environment without affecting the everyday workflow of the developer
57 too much. A long term goal is moving all development into virtualized
58 environments by making it easier to do so than not to. Additionally,
59 work is ongoing to have Vagrant run identically on every major
60 consumer OS platform (Linux, Mac OS X, and Windows).
62 %package -n bash-completion-%{name}
63 Summary: bash-completion for %{name}
64 Group: Applications/Shells
66 Requires: bash-completion >= 2.0
68 %description -n bash-completion-%{name}
69 bash-completion for %{name}.
72 Summary: Vagrant guest
73 Group: Development/Building
74 URL: http://docs-v1.vagrantup.com/v1/docs/base_boxes.html
75 Requires(postun): /usr/sbin/userdel
76 Requires(pre): /bin/id
77 Requires(pre): /usr/bin/getgid
78 Requires(pre): /usr/sbin/groupadd
79 Requires(pre): /usr/sbin/useradd
80 Requires: /etc/pld-release
81 Requires: openssh-server
82 Requires: sudo >= 1.7.4p3-2
84 Suggests: kernel(vboxsf)
85 Provides: group(vagrant)
86 Provides: user(vagrant)
89 This is the package to be installed in Vagrant guest.
91 WARNING: This package installs insecure keypair to vagant user. Do not
92 install this package in a box that is accessible others but you.
94 These keys are the "insecure" public/private keypair we offer to base
95 box creators for use in their base boxes so that vagrant installations
96 can automatically SSH into the boxes.
98 See: <https://github.com/mitchellh/vagrant/tree/master/keys/>.
101 Summary: Documentation for %{name}
103 Requires: %{name} = %{version}-%{release}
106 Ruby documentation for %{gem_name}
120 VERSION=$(cat version.txt)
121 sed -i -e "s/__VERSION__/$VERSION/" lib/vagrant/version.rb
123 # cleanup backups after patching
124 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
127 # make gemspec self-contained
128 ruby -r rubygems -e 'spec = eval(File.read("%{name}.gemspec"))
129 File.open("%{name}-%{version}.gemspec", "w") do |file|
130 file.puts spec.to_ruby_for_cache
134 rm -rf $RPM_BUILD_ROOT
135 install -d $RPM_BUILD_ROOT{%{ruby_gemdir}/gems/%{name}-%{version},%{ruby_specdir},%{_bindir}}
136 cp -a lib bin keys plugins templates $RPM_BUILD_ROOT%{ruby_gemdir}/gems/%{name}-%{version}
137 cp -p %{name}-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir}
138 install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/%{name}
140 install -d $RPM_BUILD_ROOT%{bash_compdir}
141 cp -p contrib/bash/completion.sh $RPM_BUILD_ROOT%{bash_compdir}/%{name}
144 install -d $RPM_BUILD_ROOT/etc/sudoers.d
145 echo 'vagrant ALL=(ALL) NOPASSWD: ALL' > $RPM_BUILD_ROOT/etc/sudoers.d/%{name}
147 install -d $RPM_BUILD_ROOT{%{vg_root},%{vg_home}/.ssh}
148 cp -p /etc/skel/.bash* $RPM_BUILD_ROOT%{vg_home}
150 # Since Vagrant only supports key-based authentication for SSH, we must
151 # set up the vagrant user to use key-based authentication. We can get the
152 # public key used by the Vagrant gem directly from its Github repository.
153 cp -p keys/vagrant.pub $RPM_BUILD_ROOT%{vg_home}/.ssh/authorized_keys
156 rm -rf $RPM_BUILD_ROOT
159 %groupadd -g 291 vagrant
160 %useradd -u 291 -g vagrant -G wheel -c "Vagrant user" -s /bin/bash -d %{vg_home} vagrant
163 if [ "$1" = "0" ]; then
169 %defattr(644,root,root,755)
170 %attr(755,root,root) %{_bindir}/vagrant
171 #%{ruby_vendorlibdir}/vagrant.rb
172 #%{ruby_vendorlibdir}/vagrant
175 %dir %{ruby_gemdir}/gems/%{name}-%{version}
176 %dir %{ruby_gemdir}/gems/%{name}-%{version}/bin
177 %attr(755,root,root) %{ruby_gemdir}/gems/%{name}-%{version}/bin/*
178 %{ruby_gemdir}/gems/%{name}-%{version}/keys
179 %{ruby_gemdir}/gems/%{name}-%{version}/lib
180 %{ruby_gemdir}/gems/%{name}-%{version}/plugins
181 %{ruby_gemdir}/gems/%{name}-%{version}/templates
183 %{ruby_specdir}/%{name}-%{version}.gemspec
185 %files -n bash-completion-%{name}
186 %defattr(644,root,root,755)
187 %{bash_compdir}/%{name}
190 %defattr(644,root,root,755)
191 %attr(440,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sudoers.d/%{name}
192 %dir %attr(750,vagrant,vagrant) %{vg_home}
193 %dir %attr(700,vagrant,vagrant) %{vg_home}/.ssh
194 %attr(600,vagrant,vagrant) %config(noreplace) %verify(not md5 mtime size) %{vg_home}/.ssh/authorized_keys
195 %dir %attr(640,vagrant,vagrant) %{vg_home}/.bash*
196 %dir %attr(700,root,root) %{vg_root}
200 %defattr(644,root,root,755)