vagrant-vbguest 0.13.0 → 0.14.0.pre.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ec63b20919df037edfd5cc748964d9285308c0f9
4
- data.tar.gz: 7c1c9a39baa48fd06d6a63849f278759bf437125
3
+ metadata.gz: 935cbab1bfa4e2bd7f6f5b303f3e2ffab882d2e3
4
+ data.tar.gz: f950bd3b43ca7df20a1be89f36b09b2e5a5b2056
5
5
  SHA512:
6
- metadata.gz: 08db7ea5d28c561e1d7020e49d2c156fb79a7f92f0a9cda5cd88b2eddb223f962ad12c813e9a1105408239ec2d9987f2fdd6933823969e89148407fa2b79c78e
7
- data.tar.gz: 66df0d6f87b027c563bd9a4167402510170ac527180e6d0e32b399289e621f59c879f55d1790c7cf74c4ced1f51a94c4c1cf59c74f647cf99c2433640d117d8d
6
+ metadata.gz: b1ac88bee5274010f40affce9eb364439dabeee1307208895b91532ad7f97e438c6ae2bc52306906262ac60d3c6eab17e78d67930be0b2b1a2dfef931b3fdb6b
7
+ data.tar.gz: 04fd62c2c2ee0a304bde68e561e088fedf50470c957b3ee16e93af2cf6d0db80b19dd3d1b3b7fb4b5aef8030dcf8a5213f826c8aa6efd44fc57ab5236c699a19
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## 0.14.0-beta1 (2017-02-24)
2
+
3
+ - Added support for VirtualBox 5.1. Thanks @cdloh [GH-238], [GH-230]
4
+ + Waring: The helper method `vboxadd_tool` was replaced by `find_tool(tool)`
5
+ - The installers `distro(vm)` helper method got moved from the `Linux` class down the `Base` class which should make implementing non-linux installers easier. This change was purposed by @fabriciocolombo back in [GH-129]
6
+ - The debian installer added support for proxmox VE. Thanks @maninga [GH-246]
7
+ - The debian installer now calls `apt-get update` with `-y --force-yes` options. Thanks @podarok [GH-237]
8
+ - Add synopsis for help/list-commands. Thanks @m03 [GH-235], [GH-236]
9
+ - Fix typo in the `Installers::Base#yield_installation_warning` method name (keeping the incorrect `yield_installation_waring` as an alias for backward compatibility. This alias will be removed in a future version) Thanks @m03 [GH-234]
10
+
1
11
  ## 0.13.0 (2016-08-12)
2
12
 
3
13
  - Fix a bug introduced by upgrading "micormachine". Thanks @omenlabs for [GH-225]
data/Readme.md CHANGED
@@ -270,6 +270,12 @@ end
270
270
  ```
271
271
 
272
272
 
273
+ ### Extending vbguest (aka Very Advanced Usage)
274
+
275
+ If you find yourself copying the same installer in each of your vagrant project, it might be a good idea to make it a plugin itself. Like vagrant-vbguest itself, installers can be [distributed as ruby gems](http://guides.rubygems.org/publishing/)
276
+
277
+ This poroject contains a [sample installer gem](https://github.com/dotless-de/vagrant-vbguest/tree/master/testdrive/vagrant-vbguest-unikorn) which might serve as an boilerplate.
278
+
273
279
  ## Known Issues
274
280
 
275
281
  * The installer script, which mounts and runs the GuestAdditions Installer Binary, works on Linux only. Most likely it will run on most Unix-like platforms.
@@ -25,6 +25,18 @@ module VagrantVbguest
25
25
  false
26
26
  end
27
27
 
28
+ # A helper method to cache the result of {Vagrant::Guest::Base#distro_dispatch}
29
+ # which speeds up Installer detection runs a lot,
30
+ # when having lots of Linux based Installer classes
31
+ # to check.
32
+ #
33
+ # @see {Vagrant::Guest::Linux#distro_dispatch}
34
+ # @return [Symbol] One of `:debian`, `:ubuntu`, `:gentoo`, `:fedora`, `:redhat`, `:suse`, `:arch`, `:windows`
35
+ def self.distro(vm)
36
+ @@distro ||= {}
37
+ @@distro[ vm_id(vm) ] ||= distro_name vm
38
+ end
39
+
28
40
  attr_reader :env, :vm, :options, :host
29
41
 
30
42
  def initialize(vm, options=nil)
@@ -143,7 +155,7 @@ module VagrantVbguest
143
155
  # Helper to yield a warning message to the user, that the installation
144
156
  # will start _now_.
145
157
  # The message includes the host and installer version strings.
146
- def yield_installation_waring(path_to_installer)
158
+ def yield_installation_warning(path_to_installer)
147
159
  @env.ui.warn I18n.t("vagrant_vbguest.installing#{@options[:force] ? '_forced' : ''}",
148
160
  :guest_version => (guest_version || I18n.t("vagrant_vbguest.unknown")),
149
161
  :installer_version => installer_version(path_to_installer) || I18n.t("vagrant_vbguest.unknown"))
@@ -168,6 +180,8 @@ module VagrantVbguest
168
180
  @env.ui.warn I18n.t("vagrant_vbguest.install_error",
169
181
  :installer_version => installer_version(path_to_installer) || I18n.t("vagrant_vbguest.unknown"))
170
182
  end
183
+ # alias to old method name (containing a typo) for backwards compatibility
184
+ alias_method :yield_installation_waring, :yield_installation_error_warning
171
185
 
172
186
  def iso_file
173
187
  @host.additions_file
@@ -16,7 +16,7 @@ module VagrantVbguest
16
16
  begin
17
17
  communicate.sudo(install_dependencies_cmd, opts, &block)
18
18
  rescue
19
- communicate.sudo('apt-get update', opts, &block)
19
+ communicate.sudo('apt-get -y --force-yes update', opts.merge(:error_check => false), &block)
20
20
  communicate.sudo(install_dependencies_cmd, opts, &block)
21
21
  end
22
22
  super
@@ -28,7 +28,12 @@ module VagrantVbguest
28
28
  end
29
29
 
30
30
  def dependencies
31
- packages = ['linux-headers-`uname -r`']
31
+ # In case of PVE kernel, kernel modules and headers prefix is pve and not linux, so we need to check that.
32
+ packages = if communicate.test('uname -r | grep pve')
33
+ ['pve-headers-`uname -r`']
34
+ else
35
+ ['linux-headers-`uname -r`']
36
+ end
32
37
  # some Debian system (lenny) don't come with a dkms package so we need to skip that.
33
38
  # apt-cache search will exit with 0 even if nothing was found, so we need to grep.
34
39
  packages << 'dkms' if communicate.test('apt-cache search --names-only \'^dkms$\' | grep dkms')
@@ -3,19 +3,6 @@ module VagrantVbguest
3
3
  # A basic Installer implementation for vanilla or
4
4
  # unknown Linux based systems.
5
5
  class Linux < Base
6
-
7
- # A helper method to cache the result of {Vagrant::Guest::Base#distro_dispatch}
8
- # which speeds up Installer detection runs a lot,
9
- # when having lots of Linux based Installer classes
10
- # to check.
11
- #
12
- # @see {Vagrant::Guest::Linux#distro_dispatch}
13
- # @return [Symbol] One of `:debian`, `:ubuntu`, `:gentoo`, `:fedora`, `:redhat`, `:suse`, `:arch`
14
- def self.distro(vm)
15
- @@distro ||= {}
16
- @@distro[ vm_id(vm) ] ||= distro_name vm
17
- end
18
-
19
6
  # Matches if the operating system name prints "Linux"
20
7
  # Raises an Error if this class is beeing subclassed but
21
8
  # this method was not overridden. This is considered an
@@ -77,6 +64,7 @@ module VagrantVbguest
77
64
  upload(iso_file)
78
65
  mount_iso(opts, &block)
79
66
  execute_installer(opts, &block)
67
+ start(opts, &block)
80
68
  unmount_iso(opts, &block) unless options[:no_cleanup]
81
69
  end
82
70
 
@@ -121,7 +109,7 @@ module VagrantVbguest
121
109
  # @yieldparam [String] type Type of the output, `:stdout`, `:stderr`, etc.
122
110
  # @yieldparam [String] data Data for the given output.
123
111
  def rebuild(opts=nil, &block)
124
- communicate.sudo("#{vboxadd_tool} setup", opts, &block)
112
+ communicate.sudo("#{find_tool('vboxadd')} setup", opts, &block)
125
113
  end
126
114
 
127
115
  # @param opts [Hash] Optional options Hash wich meight get passed to {Vagrant::Communication::SSH#execute} and firends
@@ -133,7 +121,15 @@ module VagrantVbguest
133
121
  if systemd_tool
134
122
  communicate.sudo("#{systemd_tool[:path]} vboxadd #{systemd_tool[:up]}", opts, &block)
135
123
  else
136
- communicate.sudo("#{vboxadd_tool} start", opts, &block)
124
+ communicate.sudo("#{find_tool('vboxadd')} start", opts, &block)
125
+ end
126
+
127
+ if Gem::Version.new("#{guest_version}") >= Gem::Version.new('5.1')
128
+ if systemd_tool
129
+ communicate.sudo("#{systemd_tool[:path]} vboxadd-service #{systemd_tool[:up]}", opts, &block)
130
+ else
131
+ communicate.sudo("#{find_tool('vboxadd-service')} start", opts, &block)
132
+ end
137
133
  end
138
134
  end
139
135
 
@@ -166,21 +162,21 @@ module VagrantVbguest
166
162
  end
167
163
  end
168
164
 
169
- # Checks for the correct location of the 'vboxadd' tool.
165
+ # Checks for the correct location of the tool provided.
170
166
  # It checks for a given list of possible locations. This list got
171
167
  # extracted from the 'VBoxLinuxAdditions.run' script.
172
168
  #
173
- # @return [String|nil] Absolute path to the +vboxadd+ tool,
169
+ # @return [String|nil] Absolute path to the tool,
174
170
  # or +nil+ if none found.
175
- def vboxadd_tool
171
+ def find_tool(tool)
176
172
  candidates = [
177
- "/usr/lib/i386-linux-gnu/VBoxGuestAdditions/vboxadd",
178
- "/usr/lib/x86_64-linux-gnu/VBoxGuestAdditions/vboxadd",
179
- "/usr/lib64/VBoxGuestAdditions/vboxadd",
180
- "/usr/lib/VBoxGuestAdditions/vboxadd",
181
- "/lib64/VBoxGuestAdditions/vboxadd",
182
- "/lib/VBoxGuestAdditions/vboxadd",
183
- "/etc/init.d/vboxadd",
173
+ "/usr/lib/i386-linux-gnu/VBoxGuestAdditions/#{tool}",
174
+ "/usr/lib/x86_64-linux-gnu/VBoxGuestAdditions/#{tool}",
175
+ "/usr/lib64/VBoxGuestAdditions/#{tool}",
176
+ "/usr/lib/VBoxGuestAdditions/#{tool}",
177
+ "/lib64/VBoxGuestAdditions/#{tool}",
178
+ "/lib/VBoxGuestAdditions/#{tool}",
179
+ "/etc/init.d/#{tool}",
184
180
  ]
185
181
  cmd = <<-SHELL
186
182
  for c in #{candidates.join(" ")}; do
@@ -207,7 +203,7 @@ module VagrantVbguest
207
203
  # @yieldparam [String] type Type of the output, `:stdout`, `:stderr`, etc.
208
204
  # @yieldparam [String] data Data for the given output.
209
205
  def execute_installer(opts=nil, &block)
210
- yield_installation_waring(installer)
206
+ yield_installation_warning(installer)
211
207
  opts = {:error_check => false}.merge(opts || {})
212
208
  exit_status = communicate.sudo("#{installer} #{installer_arguments}", opts, &block)
213
209
  yield_installation_error_warning(installer) unless exit_status == 0
@@ -7,6 +7,11 @@ module VagrantVbguest
7
7
  include CommandCommons
8
8
  include VagrantPlugins::CommandUp::StartMixins
9
9
 
10
+ # Show description when `vagrant list-commands` is triggered
11
+ def self.synopsis
12
+ "plugin: vagrant-vbguest: install VirtualBox Guest Additions to the machine"
13
+ end
14
+
10
15
  def check_runable_on(vm)
11
16
  raise Vagrant::Errors::VMNotCreatedError if vm.state.id == :not_created
12
17
  raise Vagrant::Errors::VMInaccessible if vm.state.id == :inaccessible
@@ -1,3 +1,3 @@
1
1
  module VagrantVbguest
2
- VERSION = "0.13.0"
2
+ VERSION = "0.14.0-beta1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-vbguest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.0
4
+ version: 0.14.0.pre.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Schulze
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-08-12 00:00:00.000000000 Z
11
+ date: 2017-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: micromachine
@@ -131,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
131
  version: 1.3.6
132
132
  requirements: []
133
133
  rubyforge_project:
134
- rubygems_version: 2.4.5.1
134
+ rubygems_version: 2.5.2
135
135
  signing_key:
136
136
  specification_version: 4
137
137
  summary: A Vagrant plugin to install the VirtualBoxAdditions into the guest VM