]> git.pld-linux.org Git - packages/vagrant.git/blob - vagrant.spec
91d3c0f1b159b5c1277a88d099a88c06758b0119
[packages/vagrant.git] / vagrant.spec
1 # NOTE:
2 # - release notes: https://github.com/mitchellh/vagrant/blob/master/CHANGELOG.md
3 Summary:        Provisioning and deployment of virtual instances
4 Name:           vagrant
5 Version:        2.1.2
6 Release:        1
7 License:        MIT
8 Group:          Applications/Emulators
9 Source0:        https://github.com/mitchellh/vagrant/archive/v%{version}/%{name}-%{version}.tar.gz
10 # Source0-md5:  20b7a4a7b3e1bb4a57c8cac65a547ce7
11 Source1:        %{name}.sh
12 Patch1:         rubygems.patch
13 Patch2:         no-warning.patch
14 Patch3:         Vagrantfile.patch
15 Patch4:         version.patch
16 Patch5:         no-gems.patch
17 Patch7:         insert-key.patch
18 Patch8:         listen.patch
19 Patch9:         pld-chef-installed.patch
20 URL:            http://www.vagrantup.com/
21 BuildRequires:  bash
22 BuildRequires:  rpm-rubyprov
23 BuildRequires:  ruby > 1:2.0
24 %if %{with tests}
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
30 %endif
31 Requires:       bsdtar
32 Requires:       curl
33 Requires:       ruby-json
34 Requires:       ruby-rubygems
35 Suggests:       VirtualBox
36 Suggests:       VirtualBox-gui
37 Suggests:       rdesktop
38 Suggests:       rsync
39 BuildArch:      noarch
40 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
41
42 %define         _appdir %{_datadir}/%{name}
43 %define         bash_compdir    %{_datadir}/bash-completion/completions
44
45 %define         vg_home /home/vagrant
46 %define         vg_root /vagrant
47
48 %description
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.
52
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).
60
61 %package -n bash-completion-%{name}
62 Summary:        bash-completion for %{name}
63 Group:          Applications/Shells
64 Requires:       %{name}
65 Requires:       bash-completion >= 2.0
66
67 %description -n bash-completion-%{name}
68 bash-completion for %{name}.
69
70 %package guest
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
82 Requires:       which
83 Suggests:       kernel(vboxsf)
84 Provides:       group(vagrant)
85 Provides:       user(vagrant)
86
87 %description guest
88 This is the package to be installed in Vagrant guest.
89
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.
92
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.
96
97 See: <https://github.com/mitchellh/vagrant/tree/master/keys/>.
98
99 %package doc
100 Summary:        Documentation for %{name}
101 Group:          Documentation
102 Requires:       %{name} = %{version}-%{release}
103
104 %description doc
105 Ruby documentation for %{gem_name}
106
107 %prep
108 %setup -q
109 %patch1 -p1
110 %patch2 -p1
111 %patch3 -p1
112 %patch4 -p1
113 %patch5 -p1
114 %patch7 -p1
115 %patch8 -p1
116 %patch9 -p1
117
118 VERSION=$(cat version.txt)
119 sed -i -e "s/__VERSION__/$VERSION/" lib/vagrant/version.rb
120
121 # cleanup backups after patching
122 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
123
124 %build
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
129 end'
130
131 %install
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}
137
138 install -d $RPM_BUILD_ROOT%{bash_compdir}
139 cp -p contrib/bash/completion.sh $RPM_BUILD_ROOT%{bash_compdir}/%{name}
140
141 # guest
142 install -d $RPM_BUILD_ROOT/etc/sudoers.d
143 echo 'vagrant ALL=(ALL) NOPASSWD: ALL' > $RPM_BUILD_ROOT/etc/sudoers.d/%{name}
144
145 install -d $RPM_BUILD_ROOT{%{vg_root},%{vg_home}/.ssh}
146 cp -p /etc/skel/.bash*  $RPM_BUILD_ROOT%{vg_home}
147
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
152
153 %clean
154 rm -rf $RPM_BUILD_ROOT
155
156 %pre guest
157 %groupadd -g 291 vagrant
158 %useradd -u 291 -g vagrant -G wheel -c "Vagrant user" -s /bin/bash -d %{vg_home} vagrant
159
160 %postun guest
161 if [ "$1" = "0" ]; then
162         %userremove vagrant
163         %groupremove vagrant
164 fi
165
166 %files
167 %defattr(644,root,root,755)
168 %attr(755,root,root) %{_bindir}/vagrant
169 #%{ruby_vendorlibdir}/vagrant.rb
170 #%{ruby_vendorlibdir}/vagrant
171 #%{_appdir}
172
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
180
181 %{ruby_specdir}/%{name}-%{version}.gemspec
182
183 %files -n bash-completion-%{name}
184 %defattr(644,root,root,755)
185 %{bash_compdir}/%{name}
186
187 %files guest
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}
195
196 %if 0
197 %files doc
198 %defattr(644,root,root,755)
199 %doc %{gem_docdir}
200 %endif
This page took 0.043255 seconds and 2 git commands to generate.