2 # - release notes: https://github.com/mitchellh/vagrant/blob/master/CHANGELOG.md
5 %bcond_without vagrant # build vagrant package
7 Summary: Provisioning and deployment of virtual instances
12 Group: Applications/Emulators
13 URL: http://vagrantup.com/
14 Source0: http://files.vagrantup.com/packages/67bd4d30f7dbefa7c0abc643599f0244986c38c8/vagrant_i686.rpm?/%{name}-%{version}.i686.rpm
15 # Source0-md5: 83093a71588f97a9eb69fa7fe07418b9
16 Source1: http://files.vagrantup.com/packages/67bd4d30f7dbefa7c0abc643599f0244986c38c8/vagrant_x86_64.rpm?/%{name}-%{version}.x86_64.rpm
17 # Source1-md5: 3efa3ac73988c565e6b3236da6867557
18 Patch0: https://github.com/glensc/vagrant/commit/bd8a24e945a26dbae418680d570d33dced910088.patch
19 # Patch0-md5: 15aeb8e5fe95457bc0040035c3801541
22 BuildRequires: pkgconfig
23 BuildRequires: rpm-pythonprov
24 BuildRequires: rpm-utils
26 BuildRequires: sed >= 4.0
28 ExclusiveArch: %{ix86} %{x8664}
29 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
31 %define _appdir %{_libdir}/%{name}
33 %define vg_home /home/vagrant
34 %define vg_root /vagrant
36 %define no_install_post_check_so 1
39 Vagrant offers scripted provisioning and deployment of virtual
40 instances. While VirtualBox is the main target, future versions may
41 support other hypervizors as well.
43 The vision of the project is to create a tool to transparently manage
44 all the complex parts of modern development within a virtual
45 environment without affecting the everyday workflow of the developer
46 too much. A long term goal is moving all development into virtualized
47 environments by making it easier to do so than not to. Additionally,
48 work is ongoing to have Vagrant run identically on every major
49 consumer OS platform (Linux, Mac OS X, and Windows).
51 %package -n bash-completion-%{name}
52 Summary: bash-completion for %{name}
53 Group: Applications/Shells
55 Requires: bash-completion
56 %if "%{_rpmversion}" >= "5"
60 %description -n bash-completion-%{name}
61 bash-completion for %{name}.
64 Summary: Vagrant guest
65 Group: Development/Building
66 Requires(postun): /usr/sbin/userdel
67 Requires(pre): /bin/id
68 Requires(pre): /usr/bin/getgid
69 Requires(pre): /usr/sbin/groupadd
70 Requires(pre): /usr/sbin/useradd
71 Requires: /etc/pld-release
72 Requires: openssh-server
73 Provides: group(vagrant)
74 Provides: user(vagrant)
75 %if "%{_rpmversion}" >= "5"
80 This is the package to be installed in Vagrant guest.
82 WARNING: This package installs insecure keypair to vagant user. Do not
83 install this package in a box that is accessible others but you.
85 These keys are the "insecure" public/private keypair we offer to base
86 box creators for use in their base boxes so that vagrant installations
87 can automatically SSH into the boxes.
89 See: <https://github.com/mitchellh/vagrant/tree/master/keys/>.
92 Summary: Documentation for %{name}
94 Requires: %{name} = %{version}-%{release}
95 %if "%{_rpmversion}" >= "5"
100 Ruby documentation for %{gem_name}
111 V=$(rpm -qp --nodigest --nosignature --qf '%{V}' $SOURCE)
112 test "$V" = "%{version}"
113 rpm2cpio $SOURCE | cpio -i -d
117 # causes chrpath on th-i686 to fail
118 rm embedded/rgloader/rgloader*.freebsd*.so
120 rm embedded/rgloader/rgloader*.x86_64.so
123 cd embedded/gems/gems/vagrant-%{version}
127 # update RPATH, not to contain insecure /tmp/vagrant-temp/embedded (insecure,
128 # because /tmp is world writable dir) for the rest, just substitute with sed
129 # (so shebangs would be correct)
130 grep -r '/tmp/vagrant-temp/embedded' . -l | xargs -r file -i | while read path mime; do
134 sed -i -e 's,/tmp/vagrant-temp/embedded,%{_appdir}/embedded,' "$path"
136 application/x-executable*|application/x-sharedlib*)
137 rpath=$(chrpath -l $path) || continue
138 rpath=${rpath#$path: RPATH=}
139 [ "$rpath" ] || continue
142 '${ORIGIN}/../lib:/tmp/vagrant-temp/embedded/lib' | \
143 '/tmp/vagrant-temp/embedded/lib:${ORIGIN}/../lib')
144 rpath=%{_appdir}/embedded/lib
145 chrpath -r "$rpath" $path
153 rm -rf $RPM_BUILD_ROOT
155 install -d $RPM_BUILD_ROOT{%{_bindir},%{_appdir}}
156 cp -a bin embedded $RPM_BUILD_ROOT%{_appdir}
157 ln -s %{_appdir}/bin/%{name} $RPM_BUILD_ROOT%{_bindir}
160 install -d $RPM_BUILD_ROOT/etc/bash_completion.d
161 mv $RPM_BUILD_ROOT{%{_appdir}/embedded/gems/gems/vagrant-%{version}/contrib/bash/completion.sh,/etc/bash_completion.d/%{name}.sh}
164 install -d $RPM_BUILD_ROOT{%{vg_root},%{vg_home}/.ssh}
165 cp -a /etc/skel/.bash* $RPM_BUILD_ROOT%{vg_home}
168 rm -rf $RPM_BUILD_ROOT
171 # FIXME: register user in uid_gid.db.txt
172 %groupadd -g 2000 vagrant
173 %useradd -u 2000 -g vagrant -G wheel -c "Vagrant user" -s /bin/bash -d %{vg_home} vagrant
176 if [ "$1" = "0" ]; then
183 %defattr(644,root,root,755)
184 %attr(755,root,root) %{_bindir}/vagrant
186 %defattr(-,root,root,-)
190 %files -n bash-completion-%{name}
191 %defattr(644,root,root,755)
192 /etc/bash_completion.d/*
195 %defattr(644,root,root,755)
196 %dir %attr(750,vagrant,vagrant) %{vg_home}
197 %dir %attr(700,vagrant,vagrant) %{vg_home}/.ssh
198 %dir %attr(640,vagrant,vagrant) %{vg_home}/.bash*
199 %dir %attr(700,root,root) %{vg_root}
203 %defattr(644,root,root,755)