vagrant-vbguest 0.22.0 → 0.25.0
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 +4 -4
- data/.github/dependabot.yml +13 -0
- data/CHANGELOG.md +29 -1
- data/CODE_OF_CONDUCT.md +76 -0
- data/Gemfile +7 -7
- data/Readme.md +47 -3
- data/SECURITY.md +10 -0
- data/VERSION +1 -1
- data/lib/vagrant-vbguest/config.rb +5 -1
- data/lib/vagrant-vbguest/installer.rb +13 -8
- data/lib/vagrant-vbguest/installers/base.rb +17 -2
- data/lib/vagrant-vbguest/installers/centos.rb +34 -5
- data/lib/vagrant-vbguest/installers/debian.rb +1 -1
- data/lib/vagrant-vbguest/installers/linux.rb +6 -2
- data/lib/vagrant-vbguest/installers/oracle.rb +2 -1
- data/lib/vagrant-vbguest/machine.rb +7 -4
- data/locales/en_centos.yml +4 -0
- data/vagrant-vbguest.gemspec +6 -0
- metadata +14 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dfb25d03160ec1b36b8b60132da7843717f655a2b9aece5e32f0630804fe12ac
|
4
|
+
data.tar.gz: 9825820822c15385bd8f084cb1010280216959f2a305eb017ba5fb63ce7b9b80
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6d2fbea83019796220c4e8a95198c4f566099a17e4f11be8f028c1d44e0f40f27af441fa9dc0fac36510898fc988b44d4acef7be9bead801ae8b0984c8cf0fc1
|
7
|
+
data.tar.gz: 25f5e66b4216af12cf0af8c66066dee42106505ef8285e7ed164bf9add052818a26efacf1fb67bd95f4d551a605be7c51631696151939fad83bb01a31d347cb2
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# To get started with Dependabot version updates, you'll need to specify which
|
2
|
+
# package ecosystems to update and where the package manifests are located.
|
3
|
+
# Please see the documentation for all configuration options:
|
4
|
+
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
5
|
+
|
6
|
+
version: 2
|
7
|
+
updates:
|
8
|
+
- package-ecosystem: "bundler" # See documentation for possible values
|
9
|
+
directory: "/" # Location of package manifests
|
10
|
+
schedule:
|
11
|
+
interval: "daily"
|
12
|
+
ignore:
|
13
|
+
- dependency-name: "vagrant"
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,36 @@
|
|
1
|
+
## 0.25.0 (unreleased)
|
2
|
+
|
3
|
+
- Renames mainline branch from "master" to "main"
|
4
|
+
- Fix not detecting running GuestAdditions on some systems [GH-347], [GH-376]. Thanks @Morac2 for [GH-377]
|
5
|
+
- Fixes package installation issues on CentOS 8.
|
6
|
+
CentOS installers no longe use the `--enablerepo` parameter when running `yum` to install packages.
|
7
|
+
Thanks @ghoneycutt for [GH-384]
|
8
|
+
|
9
|
+
## 0.24.0 (2020-04-29)
|
10
|
+
|
11
|
+
No code changes to 0.24.0.beta1
|
12
|
+
|
13
|
+
## 0.24.0.beta1 (2020-04-28)
|
14
|
+
|
15
|
+
- Add a new configuration `installer_options`, as an optional way to pass options to Installer classes.
|
16
|
+
- Add new `installer_options` for the CentOS Installer. Thanks @pedrofurtado for [GH-373]
|
17
|
+
+ `allow_kernel_upgrade`: Will update the kernel and reboots the box
|
18
|
+
+ `reboot_timeout`: Optionally, set the max amount of seconds to wait after reboot
|
19
|
+
|
20
|
+
## 0.23.0 (2020-01-05)
|
21
|
+
|
22
|
+
- Fix Oracle Linux Installer. Installs `elfutils-libelf-devel`. [GH-364], @fribeiro1 [GH-365]
|
23
|
+
|
24
|
+
|
25
|
+
## 0.22.0 (2019-12-06)
|
26
|
+
|
27
|
+
- Fix checking for `vboxadd` tools. [GH-362]
|
28
|
+
|
1
29
|
## 0.22.0 (2019-12-01)
|
2
30
|
|
3
31
|
- Opensuse installer now uninstalls packaged guest additions
|
4
32
|
- Fix error trying to rebuild/start guest additions when no `vboxadd` to is present [GH-358]
|
5
|
-
-
|
33
|
+
- Fix Oracle installer to support non UEK kernel. [GH-357]
|
6
34
|
|
7
35
|
## 0.21.0 (2019-11-11)
|
8
36
|
|
data/CODE_OF_CONDUCT.md
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
2
|
+
|
3
|
+
## Our Pledge
|
4
|
+
|
5
|
+
In the interest of fostering an open and welcoming environment, we as
|
6
|
+
contributors and maintainers pledge to making participation in our project and
|
7
|
+
our community a harassment-free experience for everyone, regardless of age, body
|
8
|
+
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
9
|
+
level of experience, education, socio-economic status, nationality, personal
|
10
|
+
appearance, race, religion, or sexual identity and orientation.
|
11
|
+
|
12
|
+
## Our Standards
|
13
|
+
|
14
|
+
Examples of behavior that contributes to creating a positive environment
|
15
|
+
include:
|
16
|
+
|
17
|
+
* Using welcoming and inclusive language
|
18
|
+
* Being respectful of differing viewpoints and experiences
|
19
|
+
* Gracefully accepting constructive criticism
|
20
|
+
* Focusing on what is best for the community
|
21
|
+
* Showing empathy towards other community members
|
22
|
+
|
23
|
+
Examples of unacceptable behavior by participants include:
|
24
|
+
|
25
|
+
* The use of sexualized language or imagery and unwelcome sexual attention or
|
26
|
+
advances
|
27
|
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
28
|
+
* Public or private harassment
|
29
|
+
* Publishing others' private information, such as a physical or electronic
|
30
|
+
address, without explicit permission
|
31
|
+
* Other conduct which could reasonably be considered inappropriate in a
|
32
|
+
professional setting
|
33
|
+
|
34
|
+
## Our Responsibilities
|
35
|
+
|
36
|
+
Project maintainers are responsible for clarifying the standards of acceptable
|
37
|
+
behavior and are expected to take appropriate and fair corrective action in
|
38
|
+
response to any instances of unacceptable behavior.
|
39
|
+
|
40
|
+
Project maintainers have the right and responsibility to remove, edit, or
|
41
|
+
reject comments, commits, code, wiki edits, issues, and other contributions
|
42
|
+
that are not aligned to this Code of Conduct, or to ban temporarily or
|
43
|
+
permanently any contributor for other behaviors that they deem inappropriate,
|
44
|
+
threatening, offensive, or harmful.
|
45
|
+
|
46
|
+
## Scope
|
47
|
+
|
48
|
+
This Code of Conduct applies both within project spaces and in public spaces
|
49
|
+
when an individual is representing the project or its community. Examples of
|
50
|
+
representing a project or community include using an official project e-mail
|
51
|
+
address, posting via an official social media account, or acting as an appointed
|
52
|
+
representative at an online or offline event. Representation of a project may be
|
53
|
+
further defined and clarified by project maintainers.
|
54
|
+
|
55
|
+
## Enforcement
|
56
|
+
|
57
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
58
|
+
reported by contacting the project team at info@dotless.de. All
|
59
|
+
complaints will be reviewed and investigated and will result in a response that
|
60
|
+
is deemed necessary and appropriate to the circumstances. The project team is
|
61
|
+
obligated to maintain confidentiality with regard to the reporter of an incident.
|
62
|
+
Further details of specific enforcement policies may be posted separately.
|
63
|
+
|
64
|
+
Project maintainers who do not follow or enforce the Code of Conduct in good
|
65
|
+
faith may face temporary or permanent repercussions as determined by other
|
66
|
+
members of the project's leadership.
|
67
|
+
|
68
|
+
## Attribution
|
69
|
+
|
70
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
71
|
+
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
72
|
+
|
73
|
+
[homepage]: https://www.contributor-covenant.org
|
74
|
+
|
75
|
+
For answers to common questions about this code of conduct, see
|
76
|
+
https://www.contributor-covenant.org/faq
|
data/Gemfile
CHANGED
@@ -4,16 +4,16 @@ group :development do
|
|
4
4
|
# We depend on Vagrant for development, but we don't add it as a
|
5
5
|
# gem dependency because we expect to be installed within the
|
6
6
|
# Vagrant environment itself using `vagrant plugin`.
|
7
|
-
if ENV[
|
8
|
-
gem
|
9
|
-
elsif ENV[
|
10
|
-
gem
|
7
|
+
if ENV['VAGRANT_VERSION']
|
8
|
+
gem 'vagrant', :git => 'https://github.com/hashicorp/vagrant.git', tag: "v#{ENV['VAGRANT_VERSION']}"
|
9
|
+
elsif ENV['VAGRANT_LOCAL']
|
10
|
+
gem 'vagrant', path: ENV['VAGRANT_LOCAL']
|
11
11
|
else
|
12
|
-
gem
|
12
|
+
gem 'vagrant', :git => 'https://github.com/hashicorp/vagrant.git'
|
13
13
|
end
|
14
|
-
gem
|
14
|
+
gem 'rake', '>= 12.3.3'
|
15
15
|
end
|
16
16
|
|
17
17
|
group :plugins do
|
18
|
-
gem
|
18
|
+
gem 'vagrant-vbguest', path: '.'
|
19
19
|
end
|
data/Readme.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
[](https://gitter.im/dotless-de/vagrant-vbguest?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
6
6
|
[](https://codeclimate.com/github/dotless-de/vagrant-vbguest)
|
7
|
-
[](http://inch-ci.org/github/dotless-de/vagrant-vbguest)
|
8
8
|
[](https://badge.fury.io/rb/vagrant-vbguest)
|
9
9
|
|
10
10
|
|
@@ -58,8 +58,52 @@ vbguest will try to autodetect the best option for your system. WTF? see below.
|
|
58
58
|
* `no_remote` (Boolean, default: `false`) : Whether to _not_ download the iso file from a remote location. This includes any `http` location!
|
59
59
|
* `installer` (`VagrantVbguest::Installers::Base`, optional) : Reference to a (custom) installer class
|
60
60
|
* `installer_arguments` (Array, default: `['--nox11']`) : List of additional arguments to pass to the installer. eg: `%w{--nox11 --force}` would execute `VBoxLinuxAdditions.run install --nox11 --force`
|
61
|
+
* `installer_options` (Hash, default: `{}`) : Configure how a Installer internally works. Should be set on a `vm` level.
|
61
62
|
* `yes` (Boolean or String, default: `true`): Wheter to pipe `yes` to the installer. If `true`, executes `yes | VBoxLinuxAdditions.run install`. With `false`, the command is executed without `yes`. You can also put in a string here for `yes` (e.g. `no` to refuse all messages)
|
62
63
|
|
64
|
+
|
65
|
+
#### Installer Specific Options (`installer_options`)
|
66
|
+
|
67
|
+
Those settings are specific for OS-specific installer. Especially in a multi-box environment, you should put those options on the box configuration like this:
|
68
|
+
|
69
|
+
```ruby
|
70
|
+
Vagrant.configure("2") do |config|
|
71
|
+
config.vm.define "my_cent_os_box" do |c|
|
72
|
+
c.box = "centos/8"
|
73
|
+
c.vbguest.installer_options = { allow_kernel_upgrade: true }
|
74
|
+
end
|
75
|
+
end
|
76
|
+
```
|
77
|
+
|
78
|
+
Note that box-specific settings overwrite earlier settings:
|
79
|
+
|
80
|
+
```ruby
|
81
|
+
Vagrant.configure("2") do |config|
|
82
|
+
config.vbguest.installer_options = { foo: 1, bar: 2 }
|
83
|
+
|
84
|
+
config.vm.define "a" do |box_config|
|
85
|
+
# not setting any `installer_options` will inherit the "global" ones
|
86
|
+
# installer_options => { foo: 1, bar: 2 }
|
87
|
+
end
|
88
|
+
|
89
|
+
config.vm.define "b" do |box_config|
|
90
|
+
# setting any `installer_options` will start from scratch
|
91
|
+
box_config.vbguest.installer_options[:zort] = 3 # => { zort: 3 }
|
92
|
+
end
|
93
|
+
|
94
|
+
config.vm.define "c" do |box_config|
|
95
|
+
# however, you can explicitly merge the global config
|
96
|
+
box_config.vbguest.installer_options = config.vbguest.installer_options.merge(zort: 3) # => { foo: 1, bar: 2, zort: 3 }
|
97
|
+
end
|
98
|
+
end
|
99
|
+
```
|
100
|
+
|
101
|
+
|
102
|
+
##### CentOS
|
103
|
+
|
104
|
+
* `:allow_kernel_upgrade` (default: `false`): If `true`, instead of trying to find matching the matching kernel-devel package to the installed kernel version, the kernel will be updated and the (now matching) up-to-date kernel-devel will be installed. __NOTE__: This will trigger a reboot of the box.
|
105
|
+
* `:reboot_timeout` (default: `300`): Maximum number of seconds to wait for the box to reboot after a kernel upgrade.
|
106
|
+
|
63
107
|
#### Global Configuration
|
64
108
|
|
65
109
|
Using [Vagrantfile Load Order](https://www.vagrantup.com/docs/vagrantfile/#load-order-and-merging) you may change default configuration values.
|
@@ -258,14 +302,14 @@ end
|
|
258
302
|
|
259
303
|
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/)
|
260
304
|
|
261
|
-
This project contains a [sample installer gem](https://github.com/dotless-de/vagrant-vbguest/tree/
|
305
|
+
This project contains a [sample installer gem](https://github.com/dotless-de/vagrant-vbguest/tree/main/testdrive/vagrant-vbguest-unikorn) which might serve as an boilerplate.
|
262
306
|
|
263
307
|
|
264
308
|
## Contributing
|
265
309
|
|
266
310
|
Bug reports and pull requests are welcome on GitHub at https://github.com/dotless-de/vagrant-vbguest.
|
267
311
|
|
268
|
-
For the
|
312
|
+
For the foreseeable future, no more pull requests will be accepted which add new guest support/installers. Please build your gem as a plugin to vbguest (see "Very Advanced Usage" section of this file). In fact, please open a pull request to remove support for a guest system if feel confident that your solution is better.
|
269
313
|
|
270
314
|
|
271
315
|
## Known Issues
|
data/SECURITY.md
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
# Security Policy
|
2
|
+
|
3
|
+
## Supported Versions
|
4
|
+
|
5
|
+
Only the latest version of vagrant-vbguest is supported and will receive security updates.
|
6
|
+
|
7
|
+
## Reporting a Vulnerability
|
8
|
+
|
9
|
+
Download GPG key from: https://keybase.io/fnordfish/pgp_keys.asc (fingerprint `B3CA4DF4D703CBDFFF211CB8A8B249A38963D0B6`)
|
10
|
+
Write an gpg encrypted email to `vbguest-security@dotless.de`
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.25.0
|
@@ -4,7 +4,8 @@ module VagrantVbguest
|
|
4
4
|
|
5
5
|
module Attributes
|
6
6
|
attr_accessor :auto_update, :auto_reboot, :no_install, :no_remote,
|
7
|
-
:installer, :installer_arguments, :
|
7
|
+
:installer, :installer_arguments, :installer_options,
|
8
|
+
:allow_downgrade,
|
8
9
|
:iso_path, :iso_upload_path, :iso_mount_point, :yes
|
9
10
|
end
|
10
11
|
|
@@ -16,6 +17,7 @@ module VagrantVbguest
|
|
16
17
|
def no_install; @no_install.nil? ? false : @no_install end
|
17
18
|
def no_remote; @no_remote.nil? ? false : @no_remote end
|
18
19
|
def installer_arguments; @installer_arguments.nil? ? '--nox11' : @installer_arguments end
|
20
|
+
def installer_options; @installer_options ||= {} end
|
19
21
|
def yes; @yes.nil? ? true : @yes end
|
20
22
|
|
21
23
|
def iso_path
|
@@ -33,6 +35,7 @@ module VagrantVbguest
|
|
33
35
|
def no_install; @no_install.nil? ? self.class.no_install : @no_install end
|
34
36
|
def no_remote; @no_remote.nil? ? self.class.no_remote : @no_remote end
|
35
37
|
def installer_arguments; @installer_arguments.nil? ? self.class.installer_arguments : @installer_arguments end
|
38
|
+
def installer_options; @installer_options ||= self.class.installer_options end
|
36
39
|
def yes; @yes.nil? ? self.class.yes : @yes end
|
37
40
|
|
38
41
|
def iso_path
|
@@ -47,6 +50,7 @@ module VagrantVbguest
|
|
47
50
|
{
|
48
51
|
:installer => installer,
|
49
52
|
:installer_arguments => installer_arguments,
|
53
|
+
:installer_options => installer_options,
|
50
54
|
:iso_path => iso_path,
|
51
55
|
:iso_upload_path => iso_upload_path,
|
52
56
|
:iso_mount_point => iso_mount_point,
|
@@ -104,16 +104,21 @@ module VagrantVbguest
|
|
104
104
|
end
|
105
105
|
|
106
106
|
def reboot_after_install?
|
107
|
-
|
108
|
-
|
109
|
-
|
107
|
+
installer = guest_installer
|
108
|
+
raise NoInstallerFoundError, :method => 'check if we need to reboot after installing' if !installer
|
109
|
+
installer.reboot_after_install?
|
110
110
|
end
|
111
111
|
|
112
|
-
|
113
|
-
|
114
|
-
if
|
115
|
-
|
116
|
-
|
112
|
+
def provides_vboxadd_tools?
|
113
|
+
installer = guest_installer
|
114
|
+
raise NoInstallerFoundError, :method => 'check platform support for vboxadd tools of' if !installer
|
115
|
+
installer.provides_vboxadd_tools?
|
116
|
+
end
|
117
|
+
|
118
|
+
def vboxadd_tools_available?
|
119
|
+
installer = guest_installer
|
120
|
+
raise NoInstallerFoundError, :method => 'check for existing vboxadd tools of' if !installer
|
121
|
+
installer.vboxadd_tools_available?
|
117
122
|
end
|
118
123
|
|
119
124
|
# Returns an installer instance for the current vm
|
@@ -125,15 +125,26 @@ module VagrantVbguest
|
|
125
125
|
end
|
126
126
|
|
127
127
|
# This manipulate the run-list of a the vbguest machine.
|
128
|
-
|
128
|
+
#
|
129
|
+
# @return [Boolean]
|
130
|
+
def reboot_after_install?
|
129
131
|
false
|
130
132
|
end
|
131
133
|
|
132
134
|
# Does the guest installer provide tooling to manually start or rebuild guest additions?
|
133
|
-
|
135
|
+
#
|
136
|
+
# @return [Boolean]
|
137
|
+
def provides_vboxadd_tools?
|
134
138
|
false
|
135
139
|
end
|
136
140
|
|
141
|
+
# Is the tooling to manually start or rebuild guest additions installed on the guest?
|
142
|
+
#
|
143
|
+
# @return [Boolean]
|
144
|
+
def vboxadd_tools_available?
|
145
|
+
raise NotImplementedError
|
146
|
+
end
|
147
|
+
|
137
148
|
# Determinates the GuestAdditions version installed on the
|
138
149
|
# guest system.
|
139
150
|
#
|
@@ -170,6 +181,10 @@ module VagrantVbguest
|
|
170
181
|
version
|
171
182
|
end
|
172
183
|
|
184
|
+
def installer_options
|
185
|
+
options[:installer_options] || {}
|
186
|
+
end
|
187
|
+
|
173
188
|
# Helper to yield a warning message to the user, that the installation
|
174
189
|
# will start _now_.
|
175
190
|
# The message includes the host and installer version strings.
|
@@ -8,12 +8,27 @@ module VagrantVbguest
|
|
8
8
|
|
9
9
|
# Install missing deps and yield up to regular linux installation
|
10
10
|
def install(opts=nil, &block)
|
11
|
-
|
11
|
+
if upgrade_kernel?
|
12
|
+
upgrade_kernel(opts, &block)
|
13
|
+
else
|
14
|
+
install_kernel_deps(opts, &block)
|
15
|
+
end
|
12
16
|
super
|
13
17
|
end
|
14
18
|
|
19
|
+
def installer_options
|
20
|
+
@installer_options ||= {
|
21
|
+
allow_kernel_upgrade: false,
|
22
|
+
reboot_timeout: 300
|
23
|
+
}.merge!(super)
|
24
|
+
end
|
25
|
+
|
15
26
|
protected
|
16
27
|
|
28
|
+
def upgrade_kernel?
|
29
|
+
installer_options[:allow_kernel_upgrade]
|
30
|
+
end
|
31
|
+
|
17
32
|
def install_kernel_deps(opts=nil, &block)
|
18
33
|
unless has_kernel_devel_info?
|
19
34
|
update_release_repos(opts, &block)
|
@@ -31,7 +46,7 @@ module VagrantVbguest
|
|
31
46
|
def has_rel_repo?
|
32
47
|
unless instance_variable_defined?(:@has_rel_repo)
|
33
48
|
rel = release_version
|
34
|
-
@has_rel_repo = communicate.test(
|
49
|
+
@has_rel_repo = communicate.test('yum repolist')
|
35
50
|
end
|
36
51
|
@has_rel_repo
|
37
52
|
end
|
@@ -54,16 +69,30 @@ module VagrantVbguest
|
|
54
69
|
|
55
70
|
def install_kernel_devel(opts=nil, &block)
|
56
71
|
rel = has_rel_repo? ? release_version : '*'
|
57
|
-
cmd =
|
72
|
+
cmd = 'yum install -y kernel-devel-`uname -r`'
|
58
73
|
communicate.sudo(cmd, opts, &block)
|
59
74
|
end
|
60
75
|
|
76
|
+
def upgrade_kernel(opts=nil, &block)
|
77
|
+
communicate.sudo('yum update -y kernel', opts, &block)
|
78
|
+
communicate.sudo('yum install -y kernel-devel', opts, &block)
|
79
|
+
|
80
|
+
env.ui.info(I18n.t("vagrant_vbguest.centos.rebooting", vm_name: vm.name))
|
81
|
+
communicate.sudo('shutdown -r now', opts, &block)
|
82
|
+
|
83
|
+
sleep_guard = installer_options[:reboot_timeout]
|
84
|
+
begin
|
85
|
+
sleep 10
|
86
|
+
sleep_guard -= 10
|
87
|
+
end while sleep_guard >= 0 && !@vm.communicate.ready?
|
88
|
+
end
|
89
|
+
|
61
90
|
def dependencies
|
62
|
-
if has_kernel_devel_info?
|
91
|
+
if !upgrade_kernel? && has_kernel_devel_info?
|
63
92
|
# keep the original redhat dependencies
|
64
93
|
super
|
65
94
|
else
|
66
|
-
# we should have installed kernel-devel-`uname -r` via install_kernel_devel
|
95
|
+
# we should have installed kernel-devel(-`uname -r`) via install_kernel_devel or upgrade_kernel
|
67
96
|
['gcc', 'binutils', 'make', 'perl', 'bzip2', 'elfutils-libelf-devel'].join(' ')
|
68
97
|
end
|
69
98
|
end
|
@@ -78,7 +78,7 @@ module VagrantVbguest
|
|
78
78
|
opts = {
|
79
79
|
:sudo => true
|
80
80
|
}.merge(opts || {})
|
81
|
-
communicate.test('grep -qE "^vboxguest\s.+\s
|
81
|
+
communicate.test('grep -qE "^vboxguest\s.+\s" /proc/modules && ls /lib/modules/`uname -r`/misc/vboxsf.ko*', opts, &block)
|
82
82
|
end
|
83
83
|
|
84
84
|
# This overrides {VagrantVbguest::Installers::Base#guest_version}
|
@@ -135,7 +135,11 @@ module VagrantVbguest
|
|
135
135
|
end
|
136
136
|
end
|
137
137
|
|
138
|
-
def
|
138
|
+
def provides_vboxadd_tools?
|
139
|
+
true
|
140
|
+
end
|
141
|
+
|
142
|
+
def vboxadd_tools_available?
|
139
143
|
!!find_tool('vboxadd') || communicate.test('systemctl list-units --type service | grep -q vboxadd', {:sudo => true})
|
140
144
|
end
|
141
145
|
|
@@ -22,8 +22,11 @@ module VagrantVbguest
|
|
22
22
|
@logger.debug("Runlist for state #{current_state} is: #{runlist}")
|
23
23
|
while (command = runlist.shift)
|
24
24
|
@logger.debug("Running command #{command} from runlist")
|
25
|
-
|
26
|
-
|
25
|
+
case self.send(command)
|
26
|
+
when nil # skipped
|
27
|
+
return false
|
28
|
+
when false # machine state change error
|
29
|
+
env.ui.error(I18n.t('vagrant_vbguest.machine_loop_guard', :command => command, :state => guest_additions_state.state))
|
27
30
|
return false
|
28
31
|
end
|
29
32
|
return run if current_state != state
|
@@ -71,8 +74,8 @@ module VagrantVbguest
|
|
71
74
|
|
72
75
|
return :clean if !guest_version
|
73
76
|
|
74
|
-
# some sort of distro installation bot no `vboxadd` tools to
|
75
|
-
return :dirty if !installer.
|
77
|
+
# some sort of distro installation bot no `vboxadd` tools to trigger rebuilds or manual starts
|
78
|
+
return :dirty if installer.provides_vboxadd_tools? && !installer.vboxadd_tools_available?
|
76
79
|
|
77
80
|
if host_version != guest_version
|
78
81
|
return :unmatched if host_version > guest_version || options[:allow_downgrade] || options[:force]
|
data/vagrant-vbguest.gemspec
CHANGED
@@ -23,4 +23,10 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.executables = s.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
24
|
s.require_paths = ["lib"]
|
25
25
|
|
26
|
+
s.metadata = {
|
27
|
+
"bug_tracker_uri" => "https://github.com/dotless-de/vagrant-vbguest/issues",
|
28
|
+
"changelog_uri" => "https://github.com/dotless-de/vagrant-vbguest/blob/main/CHANGELOG.md",
|
29
|
+
"documentation_uri" => "http://rubydoc.info/gems/vagrant-vbguest",
|
30
|
+
"source_code_uri" => "https://github.com/dotless-de/vagrant-vbguest"
|
31
|
+
}
|
26
32
|
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.
|
4
|
+
version: 0.25.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Schulze
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: micromachine
|
@@ -66,13 +66,16 @@ executables: []
|
|
66
66
|
extensions: []
|
67
67
|
extra_rdoc_files: []
|
68
68
|
files:
|
69
|
+
- ".github/dependabot.yml"
|
69
70
|
- ".github/stale.yml"
|
70
71
|
- ".gitignore"
|
71
72
|
- CHANGELOG.md
|
73
|
+
- CODE_OF_CONDUCT.md
|
72
74
|
- Gemfile
|
73
75
|
- LICENSE
|
74
76
|
- Rakefile
|
75
77
|
- Readme.md
|
78
|
+
- SECURITY.md
|
76
79
|
- VERSION
|
77
80
|
- lib/vagrant-vbguest.rb
|
78
81
|
- lib/vagrant-vbguest/command.rb
|
@@ -101,13 +104,18 @@ files:
|
|
101
104
|
- lib/vagrant-vbguest/middleware.rb
|
102
105
|
- lib/vagrant-vbguest/version.rb
|
103
106
|
- locales/en.yml
|
107
|
+
- locales/en_centos.yml
|
104
108
|
- locales/en_windows.yml
|
105
109
|
- vagrant-vbguest.gemspec
|
106
110
|
homepage: https://github.com/dotless-de/vagrant-vbguest
|
107
111
|
licenses:
|
108
112
|
- MIT
|
109
|
-
metadata:
|
110
|
-
|
113
|
+
metadata:
|
114
|
+
bug_tracker_uri: https://github.com/dotless-de/vagrant-vbguest/issues
|
115
|
+
changelog_uri: https://github.com/dotless-de/vagrant-vbguest/blob/main/CHANGELOG.md
|
116
|
+
documentation_uri: http://rubydoc.info/gems/vagrant-vbguest
|
117
|
+
source_code_uri: https://github.com/dotless-de/vagrant-vbguest
|
118
|
+
post_install_message:
|
111
119
|
rdoc_options: []
|
112
120
|
require_paths:
|
113
121
|
- lib
|
@@ -123,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
123
131
|
version: 1.3.6
|
124
132
|
requirements: []
|
125
133
|
rubygems_version: 3.0.3
|
126
|
-
signing_key:
|
134
|
+
signing_key:
|
127
135
|
specification_version: 4
|
128
136
|
summary: A Vagrant plugin to install the VirtualBoxAdditions into the guest VM
|
129
137
|
test_files: []
|