]> git.pld-linux.org Git - packages/vagrant.git/blob - vagrant.spec
691b238de18c46ff98b9a93aca98d72021ea32c9
[packages/vagrant.git] / vagrant.spec
1 # NOTE:
2 # - release notes: https://github.com/mitchellh/vagrant/blob/master/CHANGELOG.md
3 #
4 # Conditional build:
5 %bcond_without  vagrant # build vagrant package
6
7 Summary:        Provisioning and deployment of virtual instances
8 Name:           vagrant
9 Version:        1.1.2
10 Release:        0.15
11 License:        MIT
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
20 BuildRequires:  bash
21 BuildRequires:  file
22 BuildRequires:  pkgconfig
23 BuildRequires:  rpm-pythonprov
24 BuildRequires:  rpm-utils
25 BuildRequires:  ruby
26 BuildRequires:  sed >= 4.0
27 BuildRequires:  which
28 ExclusiveArch:  %{ix86} %{x8664}
29 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
30
31 %define         _appdir %{_libdir}/%{name}
32
33 %define         vg_home /home/vagrant
34 %define         vg_root /vagrant
35
36 %define         no_install_post_check_so        1
37
38 %description
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.
42
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).
50
51 %package -n bash-completion-%{name}
52 Summary:        bash-completion for %{name}
53 Group:          Applications/Shells
54 Requires:       %{name}
55 Requires:       bash-completion
56 %if "%{_rpmversion}" >= "5"
57 BuildArch:      noarch
58 %endif
59
60 %description -n bash-completion-%{name}
61 bash-completion for %{name}.
62
63 %package guest
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"
76 BuildArch:      noarch
77 %endif
78
79 %description guest
80 This is the package to be installed in Vagrant guest.
81
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.
84
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.
88
89 See: <https://github.com/mitchellh/vagrant/tree/master/keys/>.
90
91 %package doc
92 Summary:        Documentation for %{name}
93 Group:          Documentation
94 Requires:       %{name} = %{version}-%{release}
95 %if "%{_rpmversion}" >= "5"
96 BuildArch:      noarch
97 %endif
98
99 %description doc
100 Ruby documentation for %{gem_name}
101
102 %prep
103 %setup -qcT
104 %ifarch %{ix86}
105 SOURCE=%{S:0}
106 %endif
107 %ifarch %{x8664}
108 SOURCE=%{S:1}
109 %endif
110
111 V=$(rpm -qp --nodigest --nosignature --qf '%{V}' $SOURCE)
112 test "$V" = "%{version}"
113 rpm2cpio $SOURCE | cpio -i -d
114
115 mv opt/vagrant/* .
116
117 # causes chrpath on th-i686  to fail
118 rm embedded/rgloader/rgloader*.freebsd*.so
119 %ifarch %{ix86}
120 rm embedded/rgloader/rgloader*.x86_64.so
121 %endif
122
123 cd embedded/gems/gems/vagrant-%{version}
124 %patch0 -p1
125
126 %build
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
131         path=${path%:}
132         case "$mime" in
133         text/*)
134                 sed -i -e 's,/tmp/vagrant-temp/embedded,%{_appdir}/embedded,' "$path"
135         ;;
136         application/x-executable*|application/x-sharedlib*)
137                 rpath=$(chrpath -l $path) || continue
138                 rpath=${rpath#$path: RPATH=}
139                 [ "$rpath" ] || continue
140
141                 case "$rpath" in
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
146                 ;;
147                 esac
148         ;;
149         esac
150 done
151
152 %install
153 rm -rf $RPM_BUILD_ROOT
154 %if %{with vagrant}
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}
158 %endif
159
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}
162
163 # guest
164 install -d $RPM_BUILD_ROOT{%{vg_root},%{vg_home}/.ssh}
165 cp -a /etc/skel/.bash*  $RPM_BUILD_ROOT%{vg_home}
166
167 %clean
168 rm -rf $RPM_BUILD_ROOT
169
170 %pre guest
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
174
175 %postun guest
176 if [ "$1" = "0" ]; then
177         %userremove vagrant
178         %groupremove vagrant
179 fi
180
181 %if %{with vagrant}
182 %files
183 %defattr(644,root,root,755)
184 %attr(755,root,root) %{_bindir}/vagrant
185
186 %defattr(-,root,root,-)
187 %{_appdir}
188 %endif
189
190 %files -n bash-completion-%{name}
191 %defattr(644,root,root,755)
192 /etc/bash_completion.d/*
193
194 %files guest
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}
200
201 %if 0
202 %files doc
203 %defattr(644,root,root,755)
204 %doc %{gem_docdir}
205 %endif
This page took 0.061148 seconds and 2 git commands to generate.