vanagon 0.23.0 → 0.24.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/lib/vanagon/cli/dependencies.rb +89 -0
- data/lib/vanagon/cli.rb +4 -0
- data/lib/vanagon/component/source/git.rb +7 -6
- data/lib/vanagon/component/source/http.rb +3 -0
- data/lib/vanagon/driver.rb +12 -1
- data/lib/vanagon/platform/defaults/el-9-aarch64.rb +10 -0
- data/lib/vanagon/platform/defaults/el-9-x86_64.rb +10 -0
- data/lib/vanagon/project.rb +11 -0
- data/resources/rpm/project.spec.erb +1 -1
- metadata +31 -31
- data/lib/vanagon/platform/defaults/fedora-30-x86_64.rb +0 -11
- data/lib/vanagon/platform/defaults/fedora-31-x86_64.rb +0 -11
- data/lib/vanagon/platform/defaults/osx-10.14-x86_64.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 958967d126de3ae4bf36c6e13f2aa0dcbe387e7cf52621ba5386ef87e470402d
|
4
|
+
data.tar.gz: 57b2cb0b77c9d0fd82d79a935d2c5fd8676c3e46968c036f21dc86128e97303f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c6a328120e33ef21de286bbb5f1d086632ac855507c3c3a3913d392a7a99a04f447c90128cfeaca4f37674c8f541e5c07c326a70c5dde79a069a8a8339c052f3
|
7
|
+
data.tar.gz: 98ffb256fbd7b09fc1c7eea5157036ef666cbb80e9bc686077a2722d64b9371a516b60252a5f70f2956451e83a2f68e3538f3369115e8fdf26cbf18402fb030d
|
@@ -0,0 +1,89 @@
|
|
1
|
+
require 'docopt'
|
2
|
+
require 'json'
|
3
|
+
require 'vanagon/logger'
|
4
|
+
|
5
|
+
class Vanagon
|
6
|
+
class CLI
|
7
|
+
class Dependencies < Vanagon::CLI
|
8
|
+
DOCUMENTATION = <<~DOCOPT.freeze
|
9
|
+
Usage:
|
10
|
+
dependencies [options] <project-name> <platforms>
|
11
|
+
|
12
|
+
Options:
|
13
|
+
-h, --help Display help
|
14
|
+
-c, --configdir DIRECTORY Configuration directory [default: #{Dir.pwd}/configs]
|
15
|
+
-w, --workdir DIRECTORY Working directory on the local host
|
16
|
+
-v, --verbose Only here for backwards compatibility. Does nothing.
|
17
|
+
|
18
|
+
Project-Name:
|
19
|
+
May be a project name of a project from the configs/projects directory or 'all' to generate dependencies for all projects.
|
20
|
+
Platforms:
|
21
|
+
May be a platform name of a platform from the configs/platforms directory or 'all' to generate dependencies for all platforms.
|
22
|
+
DOCOPT
|
23
|
+
|
24
|
+
def parse(argv)
|
25
|
+
Docopt.docopt(DOCUMENTATION, { argv: argv })
|
26
|
+
rescue Docopt::Exit => e
|
27
|
+
VanagonLogger.error e.message
|
28
|
+
exit 1
|
29
|
+
end
|
30
|
+
|
31
|
+
def run(options) # rubocop:disable Metrics/AbcSize
|
32
|
+
platforms_directory = File.join(options[:configdir], 'platforms')
|
33
|
+
projects_directory = File.join(options[:configdir], 'projects')
|
34
|
+
|
35
|
+
unless Dir.exist?(projects_directory) && Dir.exist?(platforms_directory)
|
36
|
+
VanagonLogger.error "Path to #{platforms_directory} or #{projects_directory} not found."
|
37
|
+
exit 1
|
38
|
+
end
|
39
|
+
|
40
|
+
projects = [options[:project_name]]
|
41
|
+
if projects.include?('all')
|
42
|
+
projects = Dir.children(projects_directory).map do |project|
|
43
|
+
File.basename(project, File.extname(project))
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
platforms = options[:platforms].split(',')
|
48
|
+
if platforms.include?('all')
|
49
|
+
platforms = Dir.children(platforms_directory).map do |platform|
|
50
|
+
File.basename(platform, File.extname(platform))
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
failures = []
|
55
|
+
|
56
|
+
projects.each do |project|
|
57
|
+
platforms.each do |platform|
|
58
|
+
begin
|
59
|
+
artifact = Vanagon::Driver.new(platform, project, options)
|
60
|
+
artifact.dependencies
|
61
|
+
rescue RuntimeError => e
|
62
|
+
failures.push("#{project}, #{platform}: #{e}")
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
unless failures.empty?
|
68
|
+
VanagonLogger.info "Failed to generate dependencies for the following:"
|
69
|
+
failures.each do |failure|
|
70
|
+
VanagonLogger.info failure
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
VanagonLogger.info "Finished generating dependencies"
|
75
|
+
end
|
76
|
+
|
77
|
+
def options_translate(docopt_options)
|
78
|
+
translations = {
|
79
|
+
'--verbose' => :verbose,
|
80
|
+
'--workdir' => :workdir,
|
81
|
+
'--configdir' => :configdir,
|
82
|
+
'<project-name>' => :project_name,
|
83
|
+
'<platforms>' => :platforms
|
84
|
+
}
|
85
|
+
return docopt_options.map { |k, v| [translations[k], v] }.to_h
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
data/lib/vanagon/cli.rb
CHANGED
@@ -14,6 +14,7 @@ require 'vanagon/cli/list'
|
|
14
14
|
require 'vanagon/cli/render'
|
15
15
|
require 'vanagon/cli/ship'
|
16
16
|
require 'vanagon/cli/sign'
|
17
|
+
require 'vanagon/cli/dependencies'
|
17
18
|
|
18
19
|
require 'vanagon/logger'
|
19
20
|
|
@@ -37,6 +38,7 @@ class Vanagon
|
|
37
38
|
render create local versions of packaging artifacts for project
|
38
39
|
sign sign a package
|
39
40
|
ship upload a package to a distribution server
|
41
|
+
dependencies write json file to STDOUT that shows all required gems for a given project and platform
|
40
42
|
help print this help
|
41
43
|
DOCOPT
|
42
44
|
|
@@ -64,6 +66,8 @@ class Vanagon
|
|
64
66
|
@sub_parser = Vanagon::CLI::Sign.new
|
65
67
|
when 'ship'
|
66
68
|
@sub_parser = Vanagon::CLI::Ship.new
|
69
|
+
when 'dependencies'
|
70
|
+
@sub_parser = Vanagon::CLI::Dependencies.new
|
67
71
|
when 'help'
|
68
72
|
puts DOCUMENTATION
|
69
73
|
exit 0
|
@@ -13,7 +13,7 @@ class Vanagon
|
|
13
13
|
class Component
|
14
14
|
class Source
|
15
15
|
class Git
|
16
|
-
attr_accessor :url, :ref, :workdir, :clone_options
|
16
|
+
attr_accessor :url, :log_url, :ref, :workdir, :clone_options
|
17
17
|
attr_reader :version, :default_options, :repo
|
18
18
|
|
19
19
|
class << self
|
@@ -73,18 +73,19 @@ class Vanagon
|
|
73
73
|
# @param url [String] url of git repo to use as source
|
74
74
|
# @param ref [String] ref to checkout from git repo
|
75
75
|
# @param workdir [String] working directory to clone into
|
76
|
-
def initialize(url, workdir:, **options)
|
76
|
+
def initialize(url, workdir:, **options) # rubocop:disable Metrics/AbcSize
|
77
77
|
opts = default_options.merge(options.reject { |k, v| v.nil? })
|
78
78
|
|
79
79
|
# Ensure that #url returns a URI object
|
80
80
|
@url = URI.parse(url.to_s)
|
81
|
+
@log_url = @url.host + @url.path unless @url.host.nil? || @url.path.nil?
|
81
82
|
@ref = opts[:ref]
|
82
83
|
@dirname = opts[:dirname]
|
83
84
|
@workdir = File.realpath(workdir)
|
84
85
|
@clone_options = opts[:clone_options] ||= {}
|
85
86
|
|
86
87
|
# We can test for Repo existence without cloning
|
87
|
-
raise Vanagon::InvalidRepo, "
|
88
|
+
raise Vanagon::InvalidRepo, "url is not a valid Git repo" unless valid_remote?
|
88
89
|
end
|
89
90
|
|
90
91
|
# Fetch the source. In this case, clone the repository into the workdir
|
@@ -157,10 +158,10 @@ class Vanagon
|
|
157
158
|
# Clone a remote repo, make noise about it, and fail entirely
|
158
159
|
# if we're unable to retrieve the remote repo
|
159
160
|
def clone!
|
160
|
-
VanagonLogger.info "Cloning Git repo '#{
|
161
|
+
VanagonLogger.info "Cloning Git repo '#{log_url}'"
|
161
162
|
VanagonLogger.info "Successfully cloned '#{dirname}'" if clone
|
162
163
|
rescue ::Git::GitExecuteError
|
163
|
-
raise Vanagon::InvalidRepo, "Unable to clone from '#{
|
164
|
+
raise Vanagon::InvalidRepo, "Unable to clone from '#{log_url}'"
|
164
165
|
end
|
165
166
|
private :clone!
|
166
167
|
|
@@ -170,7 +171,7 @@ class Vanagon
|
|
170
171
|
VanagonLogger.info "Checking out '#{ref}' from Git repo '#{dirname}'"
|
171
172
|
clone.checkout(ref)
|
172
173
|
rescue ::Git::GitExecuteError
|
173
|
-
raise Vanagon::CheckoutFailed, "unable to checkout #{ref} from '#{
|
174
|
+
raise Vanagon::CheckoutFailed, "unable to checkout #{ref} from '#{log_url}'"
|
174
175
|
end
|
175
176
|
private :checkout!
|
176
177
|
|
@@ -108,6 +108,9 @@ class Vanagon
|
|
108
108
|
uri = URI.parse(target_url.to_s)
|
109
109
|
target_file ||= File.basename(uri.path)
|
110
110
|
|
111
|
+
# Add X-RPROXY-PASS to request header if the environment variable exists
|
112
|
+
headers['X-RPROXY-PASS'] = ENV['X-RPROXY-PASS'] if ENV['X-RPROXY-PASS']
|
113
|
+
|
111
114
|
VanagonLogger.info "Downloading file '#{target_file}' from url '#{target_url}'"
|
112
115
|
|
113
116
|
Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
|
data/lib/vanagon/driver.rb
CHANGED
@@ -171,7 +171,7 @@ class Vanagon
|
|
171
171
|
|
172
172
|
def render # rubocop:disable Metrics/AbcSize
|
173
173
|
# Simple sanity check for the project
|
174
|
-
if @project.version.nil?
|
174
|
+
if @project.version.nil? || @project.version.empty?
|
175
175
|
raise Vanagon::Error, "Project requires a version set, all is lost."
|
176
176
|
end
|
177
177
|
|
@@ -182,6 +182,17 @@ class Vanagon
|
|
182
182
|
@project.make_makefile(workdir)
|
183
183
|
end
|
184
184
|
|
185
|
+
def dependencies
|
186
|
+
# Simple sanity check for the project
|
187
|
+
if @project.version.nil? || @project.version.empty?
|
188
|
+
raise Vanagon::Error, "Project requires a version set, all is lost."
|
189
|
+
end
|
190
|
+
|
191
|
+
VanagonLogger.info "creating dependencies list"
|
192
|
+
@project.fetch_sources(workdir, retry_count, timeout)
|
193
|
+
@project.cli_manifest_json(@platform)
|
194
|
+
end
|
195
|
+
|
185
196
|
# Initialize the logging instance
|
186
197
|
def loginit(logfile)
|
187
198
|
@@logger = Logger.new(logfile)
|
@@ -0,0 +1,10 @@
|
|
1
|
+
platform "el-9-aarch64" do |plat|
|
2
|
+
plat.servicedir "/usr/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/sysconfig"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
|
6
|
+
packages = %w(autoconf automake createrepo gcc gcc-c++ rsync cmake make rpm-libs rpm-build libarchive)
|
7
|
+
plat.provision_with "dnf install -y --allowerasing #{packages.join(' ')}"
|
8
|
+
plat.install_build_dependencies_with "dnf install -y --allowerasing "
|
9
|
+
plat.vmpooler_template "redhat-9-arm64"
|
10
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
platform "el-9-x86_64" do |plat|
|
2
|
+
plat.servicedir "/usr/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/sysconfig"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
|
6
|
+
packages = %w(gcc gcc-c++ autoconf automake createrepo rsync cmake make rpm-libs rpm-build rpm-sign libtool libarchive)
|
7
|
+
plat.provision_with "dnf install -y --allowerasing #{packages.join(' ')}"
|
8
|
+
plat.install_build_dependencies_with "dnf install -y --allowerasing "
|
9
|
+
plat.vmpooler_template "redhat-9-x86_64"
|
10
|
+
end
|
data/lib/vanagon/project.rb
CHANGED
@@ -762,6 +762,17 @@ class Vanagon
|
|
762
762
|
end
|
763
763
|
end
|
764
764
|
|
765
|
+
# Writes a json file to STDOUT containing information
|
766
|
+
# about what will go into an artifact
|
767
|
+
#
|
768
|
+
# @param platform [String] platform we're writing metadata for
|
769
|
+
def cli_manifest_json(platform)
|
770
|
+
manifest = build_manifest_json
|
771
|
+
metadata = metadata_merge(manifest, @upstream_metadata)
|
772
|
+
|
773
|
+
puts JSON.pretty_generate(metadata)
|
774
|
+
end
|
775
|
+
|
765
776
|
# Writes a yaml file at `output/<name>-<version>.<platform>.settings.yaml`
|
766
777
|
# containing settings used to build the current project on the platform
|
767
778
|
# provided (and a corresponding sha1sum file) if `yaml_settings` has been
|
@@ -81,7 +81,7 @@ Requires: <%= requires.requirement %><%= requires.version ? " #{requires.versio
|
|
81
81
|
# did not specify a dependency on these.
|
82
82
|
# In the future, we will supress pre/post scripts completely if there's nothing
|
83
83
|
# specified by the project or the components.
|
84
|
-
<%- if @platform.is_fedora? && @platform.os_version.to_i >=
|
84
|
+
<%- if @platform.is_fedora? || (@platform.is_el? && @platform.os_version.to_i >= 9) -%>
|
85
85
|
Requires(pre): /usr/bin/mkdir
|
86
86
|
Requires(pre): /usr/bin/touch
|
87
87
|
Requires(post): /usr/bin/mkdir
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vanagon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.24.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: docopt
|
@@ -118,6 +118,7 @@ files:
|
|
118
118
|
- lib/vanagon/cli/build_host_info.rb
|
119
119
|
- lib/vanagon/cli/build_requirements.rb
|
120
120
|
- lib/vanagon/cli/completion.rb
|
121
|
+
- lib/vanagon/cli/dependencies.rb
|
121
122
|
- lib/vanagon/cli/inspect.rb
|
122
123
|
- lib/vanagon/cli/list.rb
|
123
124
|
- lib/vanagon/cli/render.rb
|
@@ -164,11 +165,10 @@ files:
|
|
164
165
|
- lib/vanagon/platform/defaults/el-7-x86_64.rb
|
165
166
|
- lib/vanagon/platform/defaults/el-8-aarch64.rb
|
166
167
|
- lib/vanagon/platform/defaults/el-8-x86_64.rb
|
167
|
-
- lib/vanagon/platform/defaults/
|
168
|
-
- lib/vanagon/platform/defaults/
|
168
|
+
- lib/vanagon/platform/defaults/el-9-aarch64.rb
|
169
|
+
- lib/vanagon/platform/defaults/el-9-x86_64.rb
|
169
170
|
- lib/vanagon/platform/defaults/fedora-32-x86_64.rb
|
170
171
|
- lib/vanagon/platform/defaults/fedora-34-x86_64.rb
|
171
|
-
- lib/vanagon/platform/defaults/osx-10.14-x86_64.rb
|
172
172
|
- lib/vanagon/platform/defaults/osx-10.15-x86_64.rb
|
173
173
|
- lib/vanagon/platform/defaults/osx-11-x86_64.rb
|
174
174
|
- lib/vanagon/platform/defaults/redhatfips-7-x86_64.rb
|
@@ -326,42 +326,42 @@ signing_key:
|
|
326
326
|
specification_version: 3
|
327
327
|
summary: All of your packages will fit into this van with this one simple trick.
|
328
328
|
test_files:
|
329
|
-
- spec/lib/vanagon/
|
330
|
-
- spec/lib/vanagon/utilities/shell_utilities_spec.rb
|
329
|
+
- spec/lib/vanagon/project_spec.rb
|
331
330
|
- spec/lib/vanagon/utilities/extra_files_signer_spec.rb
|
331
|
+
- spec/lib/vanagon/utilities/shell_utilities_spec.rb
|
332
|
+
- spec/lib/vanagon/extensions/string_spec.rb
|
332
333
|
- spec/lib/vanagon/extensions/set/json_spec.rb
|
333
334
|
- spec/lib/vanagon/extensions/ostruct/json_spec.rb
|
334
|
-
- spec/lib/vanagon/
|
335
|
+
- spec/lib/vanagon/utilities_spec.rb
|
336
|
+
- spec/lib/vanagon/common/user_spec.rb
|
337
|
+
- spec/lib/vanagon/common/pathname_spec.rb
|
338
|
+
- spec/lib/vanagon/cli_spec.rb
|
339
|
+
- spec/lib/vanagon/platform/solaris_10_spec.rb
|
340
|
+
- spec/lib/vanagon/platform/solaris_11_spec.rb
|
341
|
+
- spec/lib/vanagon/platform/osx_spec.rb
|
342
|
+
- spec/lib/vanagon/platform/deb_spec.rb
|
343
|
+
- spec/lib/vanagon/platform/rpm/aix_spec.rb
|
344
|
+
- spec/lib/vanagon/platform/rpm_spec.rb
|
345
|
+
- spec/lib/vanagon/platform/windows_spec.rb
|
346
|
+
- spec/lib/vanagon/platform/dsl_spec.rb
|
347
|
+
- spec/lib/vanagon/project/dsl_spec.rb
|
348
|
+
- spec/lib/vanagon/driver_spec.rb
|
349
|
+
- spec/lib/vanagon/component_spec.rb
|
350
|
+
- spec/lib/vanagon/environment_spec.rb
|
351
|
+
- spec/lib/vanagon/platform_spec.rb
|
335
352
|
- spec/lib/vanagon/engine/base_spec.rb
|
336
353
|
- spec/lib/vanagon/engine/hardware_spec.rb
|
337
354
|
- spec/lib/vanagon/engine/always_be_scheduling_spec.rb
|
338
|
-
- spec/lib/vanagon/engine/ec2_spec.rb
|
339
|
-
- spec/lib/vanagon/engine/pooler_spec.rb
|
340
355
|
- spec/lib/vanagon/engine/docker_spec.rb
|
341
356
|
- spec/lib/vanagon/engine/local_spec.rb
|
342
|
-
- spec/lib/vanagon/
|
343
|
-
- spec/lib/vanagon/
|
344
|
-
- spec/lib/vanagon/environment_spec.rb
|
345
|
-
- spec/lib/vanagon/platform_spec.rb
|
346
|
-
- spec/lib/vanagon/component/rules_spec.rb
|
347
|
-
- spec/lib/vanagon/component/source_spec.rb
|
357
|
+
- spec/lib/vanagon/engine/ec2_spec.rb
|
358
|
+
- spec/lib/vanagon/engine/pooler_spec.rb
|
348
359
|
- spec/lib/vanagon/component/source/rewrite_spec.rb
|
349
360
|
- spec/lib/vanagon/component/source/http_spec.rb
|
350
|
-
- spec/lib/vanagon/component/source/git_spec.rb
|
351
361
|
- spec/lib/vanagon/component/source/local_spec.rb
|
362
|
+
- spec/lib/vanagon/component/source/git_spec.rb
|
363
|
+
- spec/lib/vanagon/component/rules_spec.rb
|
364
|
+
- spec/lib/vanagon/component/source_spec.rb
|
352
365
|
- spec/lib/vanagon/component/dsl_spec.rb
|
353
|
-
- spec/lib/vanagon/utilities_spec.rb
|
354
|
-
- spec/lib/vanagon/project/dsl_spec.rb
|
355
|
-
- spec/lib/vanagon/cli_spec.rb
|
356
|
-
- spec/lib/vanagon/project_spec.rb
|
357
|
-
- spec/lib/vanagon/platform/rpm_spec.rb
|
358
|
-
- spec/lib/vanagon/platform/windows_spec.rb
|
359
|
-
- spec/lib/vanagon/platform/osx_spec.rb
|
360
|
-
- spec/lib/vanagon/platform/deb_spec.rb
|
361
|
-
- spec/lib/vanagon/platform/rpm/aix_spec.rb
|
362
|
-
- spec/lib/vanagon/platform/dsl_spec.rb
|
363
|
-
- spec/lib/vanagon/platform/solaris_11_spec.rb
|
364
|
-
- spec/lib/vanagon/platform/solaris_10_spec.rb
|
365
|
-
- spec/lib/vanagon/driver_spec.rb
|
366
|
-
- spec/lib/makefile_spec.rb
|
367
366
|
- spec/lib/git/rev_list_spec.rb
|
367
|
+
- spec/lib/makefile_spec.rb
|
@@ -1,11 +0,0 @@
|
|
1
|
-
platform "fedora-30-x86_64" do |plat|
|
2
|
-
plat.servicedir "/usr/lib/systemd/system"
|
3
|
-
plat.defaultdir "/etc/sysconfig"
|
4
|
-
plat.servicetype "systemd"
|
5
|
-
plat.dist "fc30"
|
6
|
-
|
7
|
-
packages = %w(autoconf automake createrepo rsync gcc gcc-c++ make rpmdevtools rpm-libs cmake rpm-sign yum-utils)
|
8
|
-
plat.provision_with "/usr/bin/dnf install -y --best --allowerasing #{packages.join(' ')}"
|
9
|
-
plat.install_build_dependencies_with "/usr/bin/dnf install -y --best --allowerasing"
|
10
|
-
plat.vmpooler_template "fedora-30-x86_64"
|
11
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
platform "fedora-31-x86_64" do |plat|
|
2
|
-
plat.servicedir "/usr/lib/systemd/system"
|
3
|
-
plat.defaultdir "/etc/sysconfig"
|
4
|
-
plat.servicetype "systemd"
|
5
|
-
plat.dist "fc31"
|
6
|
-
|
7
|
-
packages = %w(autoconf automake cmake createrepo rsync gcc gcc-c++ make rpmdevtools rpm-libs rpm-sign)
|
8
|
-
plat.provision_with "/usr/bin/dnf install -y --best --allowerasing #{packages.join(' ')}"
|
9
|
-
plat.install_build_dependencies_with "/usr/bin/dnf install -y --best --allowerasing"
|
10
|
-
plat.vmpooler_template "fedora-31-x86_64"
|
11
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
platform "osx-10.14-x86_64" do |plat|
|
2
|
-
plat.servicetype "launchd"
|
3
|
-
plat.servicedir "/Library/LaunchDaemons"
|
4
|
-
plat.codename "mojave"
|
5
|
-
|
6
|
-
plat.provision_with "export HOMEBREW_NO_EMOJI=true"
|
7
|
-
plat.provision_with "export HOMEBREW_VERBOSE=true"
|
8
|
-
plat.provision_with "sudo dscl . -create /Users/test"
|
9
|
-
plat.provision_with "sudo dscl . -create /Users/test UserShell /bin/bash"
|
10
|
-
plat.provision_with "sudo dscl . -create /Users/test UniqueID 1001"
|
11
|
-
plat.provision_with "sudo dscl . -create /Users/test PrimaryGroupID 1000"
|
12
|
-
plat.provision_with "sudo dscl . -create /Users/test NFSHomeDirectory /Users/test"
|
13
|
-
plat.provision_with "sudo dscl . -passwd /Users/test password"
|
14
|
-
plat.provision_with "sudo dscl . -merge /Groups/admin GroupMembership test"
|
15
|
-
plat.provision_with "echo 'test ALL=(ALL:ALL) NOPASSWD: ALL' > /etc/sudoers.d/username"
|
16
|
-
plat.provision_with "mkdir -p /etc/homebrew"
|
17
|
-
plat.provision_with "cd /etc/homebrew"
|
18
|
-
plat.provision_with %Q(su test -c 'echo | /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"')
|
19
|
-
plat.provision_with "sudo chown -R test:admin /Users/test/"
|
20
|
-
plat.vmpooler_template "osx-1014-x86_64"
|
21
|
-
end
|