]> git.pld-linux.org Git - packages/vagrant.git/blame_incremental - vagrant.spec
rename vagrantfile patch
[packages/vagrant.git] / vagrant.spec
... / ...
CommitLineData
1# NOTE:
2# - release notes: https://github.com/mitchellh/vagrant/blob/master/CHANGELOG.md
3Summary: Provisioning and deployment of virtual instances
4Name: vagrant
5Version: 1.7.1
6# NOTE: test that it actually works before doing rel "1"
7Release: 0.1
8License: MIT
9Group: Applications/Emulators
10Source0: https://github.com/mitchellh/vagrant/archive/v%{version}/%{name}-%{version}.tar.gz
11# Source0-md5: 6bfb1440145f943e7b683ac99d06adec
12Source100: runtime-broken
13Patch0: source_root.patch
14Patch1: rubygems.patch
15Patch2: no-warning.patch
16Patch3: Vagrantfile.patch
17Patch4: version.patch
18Patch5: no-gems.patch
19URL: http://www.vagrantup.com/
20BuildRequires: bash
21BuildRequires: rpm-rubyprov
22BuildRequires: ruby > 1:2.0
23%if %{with tests}
24BuildRequires: ruby-contest >= 0.1.2
25BuildRequires: ruby-minitest >= 2.5.1
26BuildRequires: ruby-mocha
27BuildRequires: ruby-rake
28BuildRequires: ruby-rspec >= 2.14.0
29%endif
30Requires: VirtualBox
31Requires: bsdtar
32Requires: curl
33Requires: ruby-bundler >= 1.5.2
34Requires: ruby-childprocess >= 0.5.0
35Requires: ruby-erubis >= 2.7.0
36Requires: ruby-i18n >= 0.6.0
37Requires: ruby-json
38Requires: ruby-listen >= 2.7.1
39Requires: ruby-log4r < 1.1.11
40Requires: ruby-log4r >= 1.1.9
41Requires: ruby-net-scp >= 1.1.0
42Requires: ruby-net-ssh < 2.8.0
43Requires: ruby-net-ssh >= 2.6.6
44Requires: ruby-rubygems
45Suggests: VirtualBox-gui
46Suggests: rdesktop
47BuildArch: noarch
48BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
49
50%define _appdir %{_datadir}/%{name}
51%define bash_compdir %{_datadir}/bash-completion/completions
52
53%define vg_home /home/vagrant
54%define vg_root /vagrant
55
56%description
57Vagrant offers scripted provisioning and deployment of virtual
58instances. While VirtualBox is the main target, future versions may
59support other hypervizors as well.
60
61The vision of the project is to create a tool to transparently manage
62all the complex parts of modern development within a virtual
63environment without affecting the everyday workflow of the developer
64too much. A long term goal is moving all development into virtualized
65environments by making it easier to do so than not to. Additionally,
66work is ongoing to have Vagrant run identically on every major
67consumer OS platform (Linux, Mac OS X, and Windows).
68
69%package -n bash-completion-%{name}
70Summary: bash-completion for %{name}
71Group: Applications/Shells
72Requires: %{name}
73Requires: bash-completion >= 2.0
74
75%description -n bash-completion-%{name}
76bash-completion for %{name}.
77
78%package guest
79Summary: Vagrant guest
80Group: Development/Building
81URL: http://docs-v1.vagrantup.com/v1/docs/base_boxes.html
82Requires(postun): /usr/sbin/userdel
83Requires(pre): /bin/id
84Requires(pre): /usr/bin/getgid
85Requires(pre): /usr/sbin/groupadd
86Requires(pre): /usr/sbin/useradd
87Requires: /etc/pld-release
88Requires: kernel(vboxsf)
89Requires: openssh-server
90Requires: sudo >= 1.7.4p3-2
91Requires: which
92Provides: group(vagrant)
93Provides: user(vagrant)
94
95%description guest
96This is the package to be installed in Vagrant guest.
97
98WARNING: This package installs insecure keypair to vagant user. Do not
99install this package in a box that is accessible others but you.
100
101These keys are the "insecure" public/private keypair we offer to base
102box creators for use in their base boxes so that vagrant installations
103can automatically SSH into the boxes.
104
105See: <https://github.com/mitchellh/vagrant/tree/master/keys/>.
106
107%package doc
108Summary: Documentation for %{name}
109Group: Documentation
110Requires: %{name} = %{version}-%{release}
111
112%description doc
113Ruby documentation for %{gem_name}
114
115%prep
116%setup -q
117%patch0 -p1
118%patch1 -p1
119%patch2 -p1
120%patch3 -p1
121%patch4 -p1
122%patch5 -p1
123
124VERSION=$(cat version.txt)
125sed -i -e "s/__VERSION__/$VERSION/" lib/vagrant/version.rb
126
127# cleanup backups after patching
128find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
129
130%build
131# make gemspec self-contained
132ruby -r rubygems -e 'spec = eval(File.read("%{name}.gemspec"))
133 File.open("%{name}-%{version}.gemspec", "w") do |file|
134 file.puts spec.to_ruby_for_cache
135end'
136
137%install
138rm -rf $RPM_BUILD_ROOT
139install -d $RPM_BUILD_ROOT{%{ruby_vendorlibdir},%{ruby_specdir},%{_bindir},%{_appdir}}
140cp -a bin/* $RPM_BUILD_ROOT%{_bindir}
141cp -a lib/* $RPM_BUILD_ROOT%{ruby_vendorlibdir}
142cp -a keys plugins templates $RPM_BUILD_ROOT%{_appdir}
143cp -p %{name}-%{version}.gemspec $RPM_BUILD_ROOT%{ruby_specdir}
144
145install -d $RPM_BUILD_ROOT%{bash_compdir}
146cp -p contrib/bash/completion.sh $RPM_BUILD_ROOT%{bash_compdir}/%{name}
147
148# guest
149install -d $RPM_BUILD_ROOT/etc/sudoers.d
150echo 'vagrant ALL=(ALL) NOPASSWD: ALL' > $RPM_BUILD_ROOT/etc/sudoers.d/%{name}
151
152install -d $RPM_BUILD_ROOT{%{vg_root},%{vg_home}/.ssh}
153cp -p /etc/skel/.bash* $RPM_BUILD_ROOT%{vg_home}
154
155# Since Vagrant only supports key-based authentication for SSH, we must
156# set up the vagrant user to use key-based authentication. We can get the
157# public key used by the Vagrant gem directly from its Github repository.
158cp -p keys/vagrant.pub $RPM_BUILD_ROOT%{vg_home}/.ssh/authorized_keys
159
160%clean
161rm -rf $RPM_BUILD_ROOT
162
163%pre guest
164%groupadd -g 291 vagrant
165%useradd -u 291 -g vagrant -G wheel -c "Vagrant user" -s /bin/bash -d %{vg_home} vagrant
166
167%postun guest
168if [ "$1" = "0" ]; then
169 %userremove vagrant
170 %groupremove vagrant
171fi
172
173%files
174%defattr(644,root,root,755)
175%attr(755,root,root) %{_bindir}/vagrant
176%{ruby_vendorlibdir}/vagrant.rb
177%{ruby_vendorlibdir}/vagrant
178%{ruby_specdir}/%{name}-%{version}.gemspec
179%{_appdir}
180
181%files -n bash-completion-%{name}
182%defattr(644,root,root,755)
183%{bash_compdir}/%{name}
184
185%files guest
186%defattr(644,root,root,755)
187%attr(440,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sudoers.d/%{name}
188%dir %attr(750,vagrant,vagrant) %{vg_home}
189%dir %attr(700,vagrant,vagrant) %{vg_home}/.ssh
190%attr(600,vagrant,vagrant) %config(noreplace) %verify(not md5 mtime size) %{vg_home}/.ssh/authorized_keys
191%dir %attr(640,vagrant,vagrant) %{vg_home}/.bash*
192%dir %attr(700,root,root) %{vg_root}
193
194%if 0
195%files doc
196%defattr(644,root,root,755)
197%doc %{gem_docdir}
198%endif
This page took 0.060204 seconds and 4 git commands to generate.