vanagon 0.19.1 → 0.22.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +27 -2
- data/lib/vanagon/cli/list.rb +12 -1
- data/lib/vanagon/cli/ship.rb +1 -17
- data/lib/vanagon/component.rb +3 -2
- data/lib/vanagon/component/dsl.rb +21 -15
- data/lib/vanagon/component/source.rb +1 -0
- data/lib/vanagon/component/source/git.rb +30 -5
- data/lib/vanagon/engine/pooler.rb +4 -1
- data/lib/vanagon/platform.rb +32 -0
- data/lib/vanagon/platform/defaults/debian-10-amd64.rb +11 -0
- data/lib/vanagon/platform/defaults/debian-11-amd64.rb +11 -0
- data/lib/vanagon/platform/defaults/debian-8-amd64.rb +12 -0
- data/lib/vanagon/platform/defaults/debian-8-i386.rb +12 -0
- data/lib/vanagon/platform/defaults/debian-9-amd64.rb +12 -0
- data/lib/vanagon/platform/defaults/debian-9-i386.rb +12 -0
- data/lib/vanagon/platform/defaults/el-6-i386.rb +11 -0
- data/lib/vanagon/platform/defaults/el-6-x86_64.rb +11 -0
- data/lib/vanagon/platform/defaults/el-7-aarch64.rb +13 -0
- data/lib/vanagon/platform/defaults/el-7-x86_64.rb +11 -0
- data/lib/vanagon/platform/defaults/el-8-aarch64.rb +10 -0
- data/lib/vanagon/platform/defaults/el-8-x86_64.rb +10 -0
- data/lib/vanagon/platform/defaults/fedora-30-x86_64.rb +11 -0
- data/lib/vanagon/platform/defaults/fedora-31-x86_64.rb +11 -0
- data/lib/vanagon/platform/defaults/fedora-32-x86_64.rb +11 -0
- data/lib/vanagon/platform/defaults/fedora-34-x86_64.rb +17 -0
- data/lib/vanagon/platform/defaults/osx-10.14-x86_64.rb +21 -0
- data/lib/vanagon/platform/defaults/osx-10.15-x86_64.rb +21 -0
- data/lib/vanagon/platform/defaults/osx-11-x86_64.rb +20 -0
- data/lib/vanagon/platform/defaults/redhatfips-7-x86_64.rb +11 -0
- data/lib/vanagon/platform/defaults/sles-12-x86_64.rb +11 -0
- data/lib/vanagon/platform/defaults/sles-15-x86_64.rb +10 -0
- data/lib/vanagon/platform/defaults/solaris-11-i386.rb +9 -0
- data/lib/vanagon/platform/defaults/solaris-11-sparc.rb +10 -0
- data/lib/vanagon/platform/defaults/ubuntu-16.04-amd64.rb +12 -0
- data/lib/vanagon/platform/defaults/ubuntu-16.04-i386.rb +12 -0
- data/lib/vanagon/platform/defaults/ubuntu-18.04-amd64.rb +12 -0
- data/lib/vanagon/platform/defaults/ubuntu-20.04-aarch64.rb +11 -0
- data/lib/vanagon/platform/defaults/ubuntu-20.04-amd64.rb +11 -0
- data/lib/vanagon/platform/dsl.rb +30 -2
- data/lib/vanagon/platform/osx.rb +9 -0
- data/lib/vanagon/platform/windows.rb +3 -21
- data/lib/vanagon/project.rb +5 -1
- data/lib/vanagon/utilities.rb +1 -0
- data/lib/vanagon/utilities/extra_files_signer.rb +42 -0
- data/resources/deb/postinst.erb +24 -13
- data/resources/deb/postrm.erb +9 -6
- data/resources/deb/prerm.erb +18 -8
- data/resources/rpm/project.spec.erb +11 -11
- data/spec/lib/vanagon/cli_spec.rb +59 -8
- data/spec/lib/vanagon/component/dsl_spec.rb +45 -8
- data/spec/lib/vanagon/component/source/git_spec.rb +17 -4
- data/spec/lib/vanagon/component_spec.rb +12 -0
- data/spec/lib/vanagon/platform_spec.rb +80 -0
- data/spec/lib/vanagon/utilities/extra_files_signer_spec.rb +123 -0
- data/spec/lib/vanagon/utilities_spec.rb +4 -1
- metadata +62 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1cd74e5ec690b73ee51e201f896f81a448020c90509107ec229c603b19b578bb
|
4
|
+
data.tar.gz: 9584067cc8334e4b280f7105834ffa7efe08d62e5b418f89cc53ee90c6f436f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1637ab1e2874427d490551f7e166a6607aadf6fa4c452697d4eb857bd5735369ad3977f6e53efc1e6b99c3bbda6bb5a0422be4366ccebeab00eda49805a93d05
|
7
|
+
data.tar.gz: 2e476edabd0575c234b2b94a23947b2d0c9c5dced079648deea0a014e98b15bd69bee833e02d234ab11eb6949323ac4f9aa7743fcc07918ed8ef5833070de546
|
data/README.md
CHANGED
@@ -85,6 +85,24 @@ wheezy and build my project against it.
|
|
85
85
|
For more detailed examples of the DSLs available, please see the
|
86
86
|
[examples](examples) directory and the YARD documentation for Vanagon.
|
87
87
|
|
88
|
+
### CLI commands
|
89
|
+
|
90
|
+
The vanagon command line tool contains these commands:
|
91
|
+
|
92
|
+
* `build` build a package given a project and platform
|
93
|
+
* `build_host_info` print information about build hosts
|
94
|
+
* `build_requirements` print external packages required to build project
|
95
|
+
* `completion` outputs path to tab completion script
|
96
|
+
* `inspect` a build dry-run, printing lots of information about the build
|
97
|
+
* `list` shows a list of available projects and platforms
|
98
|
+
* `render` create local versions of packaging artifacts for project
|
99
|
+
* `sign` sign a package
|
100
|
+
* `ship` upload a package to a distribution server
|
101
|
+
* `help` print this help
|
102
|
+
|
103
|
+
Commands are called with a git-like pattern of `vanagon <subcommand>`.
|
104
|
+
For example: `vanagon list`
|
105
|
+
|
88
106
|
### CLI changes and deprecations (from version 0.16.0)
|
89
107
|
|
90
108
|
Prior to 0.16.0, the vanagon command line contained these commands
|
@@ -197,8 +215,8 @@ Port of the system where redis is running. Defaults to *6379*.
|
|
197
215
|
##### `VANAGON_USE_MIRRORS`
|
198
216
|
Controls whether component sources are downloaded directly from upstream URLs
|
199
217
|
or from configured mirrors. Most Puppet projects using Vanagon default to
|
200
|
-
fetching components from internal mirrors. Set this variable to `n`
|
201
|
-
building outside of the Puppet private network to download directly from
|
218
|
+
fetching components from internal mirrors. Set this variable to `n` or `false`
|
219
|
+
when building outside of the Puppet private network to download directly from
|
202
220
|
upstream sources.
|
203
221
|
|
204
222
|
##### `VANAGON_RETRY_COUNT`
|
@@ -212,6 +230,13 @@ time. The default value is *7200* seconds(120 minutes) but setting to any
|
|
212
230
|
integer value these components to fail after the `VANAGON_TIMEOUT` count is reached.
|
213
231
|
Note that this value is expected to be in seconds.
|
214
232
|
|
233
|
+
##### `VANAGON_FORCE_SIGNING`
|
234
|
+
By default, Vanagon does not fail if extra files signing fails, it just logs an
|
235
|
+
error and continues building the package. This is unwanted behavior in
|
236
|
+
environments where we expect a hard failure when signing cannot proceed. To
|
237
|
+
force Vanagon to fail if extra files signing fails, ensure this variable is set
|
238
|
+
before starting a build.
|
239
|
+
|
215
240
|
#### Example usage
|
216
241
|
`vanagon build --preserve puppet-agent el-6-i386` will build the puppet-agent project
|
217
242
|
on the el-6-i386 platform and leave the host intact afterward.
|
data/lib/vanagon/cli/list.rb
CHANGED
@@ -11,6 +11,7 @@ class Vanagon
|
|
11
11
|
Options:
|
12
12
|
-h, --help Display help
|
13
13
|
-c, --configdir DIRECTORY Configuration directory [default: #{Dir.pwd}/configs]
|
14
|
+
-d, --defaults Display the list of default platforms
|
14
15
|
-l, --platforms Display a list of platforms
|
15
16
|
-r, --projects Display a list of projects
|
16
17
|
-s, --use-spaces Displays the list as space separated
|
@@ -36,12 +37,21 @@ class Vanagon
|
|
36
37
|
exit 1
|
37
38
|
end
|
38
39
|
|
40
|
+
default_list = Dir.children(File.join(File.dirname(__FILE__), '..', 'platform', 'defaults')).map do |platform|
|
41
|
+
File.basename(platform, File.extname(platform))
|
42
|
+
end.sort
|
43
|
+
|
39
44
|
platform_list = Dir.children(File.join(options[:configdir], 'platforms')).map do |platform|
|
40
45
|
File.basename(platform, File.extname(platform))
|
41
|
-
end
|
46
|
+
end.sort
|
42
47
|
|
43
48
|
project_list = Dir.children(File.join(options[:configdir], 'projects')).map do |project|
|
44
49
|
File.basename(project, File.extname(project))
|
50
|
+
end.sort
|
51
|
+
|
52
|
+
if options[:defaults]
|
53
|
+
puts "- Defaults", output(default_list, options[:use_spaces])
|
54
|
+
return
|
45
55
|
end
|
46
56
|
|
47
57
|
if options[:projects] == options[:platforms]
|
@@ -63,6 +73,7 @@ class Vanagon
|
|
63
73
|
def options_translate(docopt_options)
|
64
74
|
translations = {
|
65
75
|
'--configdir' => :configdir,
|
76
|
+
'--defaults' => :defaults,
|
66
77
|
'--platforms' => :platforms,
|
67
78
|
'--projects' => :projects,
|
68
79
|
'--use-spaces' => :use_spaces,
|
data/lib/vanagon/cli/ship.rb
CHANGED
@@ -22,16 +22,6 @@ class Vanagon
|
|
22
22
|
def run(_)
|
23
23
|
ENV['PROJECT_ROOT'] = Dir.pwd
|
24
24
|
|
25
|
-
artifactory_warning = <<-DOC
|
26
|
-
Unable to ship packages to artifactory. Please make sure you are pointing to a
|
27
|
-
recent version of packaging in your Gemfile. Please also make sure you include
|
28
|
-
the artifactory gem in your Gemfile.
|
29
|
-
|
30
|
-
Examples:
|
31
|
-
gem 'packaging', :github => 'puppetlabs/packaging', branch: '1.0.x'
|
32
|
-
gem 'artifactory'
|
33
|
-
DOC
|
34
|
-
|
35
25
|
if Dir['output/**/*'].select { |entry| File.file?(entry) }.empty?
|
36
26
|
VanagonLogger.error 'vanagon: Error: No packages to ship in the "output" directory. Maybe build some first?'
|
37
27
|
exit 1
|
@@ -40,13 +30,7 @@ class Vanagon
|
|
40
30
|
require 'packaging'
|
41
31
|
Pkg::Util::RakeUtils.load_packaging_tasks
|
42
32
|
Pkg::Util::RakeUtils.invoke_task('pl:jenkins:ship', 'artifacts', 'output')
|
43
|
-
|
44
|
-
Pkg::Util::RakeUtils.invoke_task('pl:jenkins:ship_to_artifactory', 'output')
|
45
|
-
rescue LoadError
|
46
|
-
VanagonLogger.error artifactory_warning
|
47
|
-
rescue StandardError
|
48
|
-
VanagonLogger.error artifactory_warning
|
49
|
-
end
|
33
|
+
Pkg::Util::RakeUtils.invoke_task('pl:jenkins:ship_to_artifactory', 'output')
|
50
34
|
end
|
51
35
|
end
|
52
36
|
end
|
data/lib/vanagon/component.rb
CHANGED
@@ -180,6 +180,7 @@ class Vanagon
|
|
180
180
|
@preremove_actions = []
|
181
181
|
@postremove_actions = []
|
182
182
|
@install_only = false
|
183
|
+
@service = []
|
183
184
|
end
|
184
185
|
|
185
186
|
# Adds the given file to the list of files and returns @files.
|
@@ -303,9 +304,9 @@ class Vanagon
|
|
303
304
|
#
|
304
305
|
# @param workdir [String] working directory to put the source into
|
305
306
|
def get_source(workdir) # rubocop:disable Metrics/AbcSize, Metrics/PerceivedComplexity
|
306
|
-
opts = options.merge({ workdir: workdir })
|
307
|
+
opts = options.merge({ workdir: workdir, dirname: dirname })
|
307
308
|
if url || !mirrors.empty?
|
308
|
-
if ENV['VANAGON_USE_MIRRORS'] == 'n'
|
309
|
+
if ENV['VANAGON_USE_MIRRORS'] == 'n' or ENV['VANAGON_USE_MIRRORS'] == 'false'
|
309
310
|
fetch_url(opts)
|
310
311
|
else
|
311
312
|
fetch_mirrors(opts) || fetch_url(opts)
|
@@ -168,37 +168,42 @@ class Vanagon
|
|
168
168
|
# @param service_file [String] path to the service file relative to the source
|
169
169
|
# @param default_file [String] path to the default file relative to the source
|
170
170
|
# @param service_name [String] name of the service
|
171
|
-
# @param
|
172
|
-
#
|
173
|
-
|
174
|
-
|
171
|
+
# @param options optional extra parameters
|
172
|
+
# service_type [String] type of the service (network, application, system, etc)
|
173
|
+
# init_system [String] the init system on which to install service (sysv, systemd)
|
174
|
+
# link_target [String] executable service file should be linked to
|
175
|
+
def install_service(service_file, default_file = nil, service_name = @component.name, **options) # rubocop:disable Metrics/AbcSize
|
176
|
+
init_system = options[:init_system] || @component.platform.servicetype
|
177
|
+
servicedir = @component.platform.get_service_dir(init_system)
|
178
|
+
|
179
|
+
case init_system
|
175
180
|
when "sysv"
|
176
|
-
target_service_file = File.join(
|
181
|
+
target_service_file = File.join(servicedir, service_name)
|
177
182
|
target_default_file = File.join(@component.platform.defaultdir, service_name)
|
178
183
|
target_mode = '0755'
|
179
184
|
default_mode = '0644'
|
180
185
|
when "systemd"
|
181
|
-
target_service_file = File.join(
|
186
|
+
target_service_file = File.join(servicedir, "#{service_name}.service")
|
182
187
|
target_default_file = File.join(@component.platform.defaultdir, service_name)
|
183
188
|
target_mode = '0644'
|
184
189
|
default_mode = '0644'
|
185
190
|
when "launchd"
|
186
|
-
target_service_file = File.join(
|
191
|
+
target_service_file = File.join(servicedir, "#{service_name}.plist")
|
187
192
|
target_mode = '0644'
|
188
193
|
default_mode = '0644'
|
189
194
|
when "smf"
|
190
195
|
# modify version in smf manifest so service gets restarted after package upgrade
|
191
196
|
@component.install << %{#{@component.platform.sed} -ri 's/(<service.*version=)(".*")/\\1"#{Time.now.to_i}"/' #{service_file}}
|
192
|
-
target_service_file = File.join(
|
197
|
+
target_service_file = File.join(servicedir, options[:service_type].to_s, "#{service_name}.xml")
|
193
198
|
target_default_file = File.join(@component.platform.defaultdir, service_name)
|
194
199
|
target_mode = '0644'
|
195
200
|
default_mode = '0755'
|
196
201
|
when "aix"
|
197
|
-
@component.service
|
202
|
+
@component.service << OpenStruct.new(:name => service_name, :service_command => File.read(service_file).chomp)
|
198
203
|
# Return here because there is no file to install, just a string read in
|
199
204
|
return
|
200
205
|
when "windows"
|
201
|
-
@component.service
|
206
|
+
@component.service << OpenStruct.new(\
|
202
207
|
:bindir_id => "#{service_name.gsub(/[^A-Za-z0-9]/, '').upcase}BINDIR", \
|
203
208
|
:service_file => service_file, \
|
204
209
|
:component_group_id => "#{service_name.gsub(/[^A-Za-z0-9]/, '')}Component"\
|
@@ -206,13 +211,13 @@ class Vanagon
|
|
206
211
|
# return here as we are just collecting the name of the service file to put into the harvest filter list.
|
207
212
|
return
|
208
213
|
else
|
209
|
-
fail "Don't know how to install the #{
|
214
|
+
fail "Don't know how to install the #{init_system}. Please teach #install_service how to do this."
|
210
215
|
end
|
211
216
|
|
212
217
|
# Install the service and default files
|
213
|
-
if link_target
|
214
|
-
install_file(service_file, link_target, mode: target_mode)
|
215
|
-
link link_target, target_service_file
|
218
|
+
if options[:link_target]
|
219
|
+
install_file(service_file, options[:link_target], mode: target_mode)
|
220
|
+
link options[:link_target], target_service_file
|
216
221
|
else
|
217
222
|
install_file(service_file, target_service_file, mode: target_mode)
|
218
223
|
end
|
@@ -223,7 +228,8 @@ class Vanagon
|
|
223
228
|
end
|
224
229
|
|
225
230
|
# Register the service for use in packaging
|
226
|
-
@component.service
|
231
|
+
@component.service << OpenStruct.new(:name => service_name, :service_file => target_service_file,
|
232
|
+
:type => options[:service_type], :init_system => init_system)
|
227
233
|
end
|
228
234
|
|
229
235
|
# Copies a file from source to target during the install phase of the component
|
@@ -26,14 +26,38 @@ class Vanagon
|
|
26
26
|
# git command has failed. Useful in instances where a URL
|
27
27
|
# prompts for credentials despite not being a git remote
|
28
28
|
# @return [Boolean] whether #url is a valid Git repo or not
|
29
|
+
|
30
|
+
# [RE-13837] This ought to be the way to do this. Unfortunately,
|
31
|
+
# there's a bug in Git.ls_remote that when ssh prints something like
|
32
|
+
# Warning: Permanently added 'github.com,192.30.255.113' (RSA)
|
33
|
+
# Git.ls_remote attempts to parse it as actual git output and fails
|
34
|
+
# with: NoMethodError: undefined method `split' for nil:NilClass
|
35
|
+
#
|
36
|
+
# We'll work around that case by calling 'git ls-remote' directly ourselves.
|
37
|
+
#
|
38
|
+
# I'm leaving in the broken version here for a time when the ruby-git library
|
39
|
+
# is fixed.
|
40
|
+
|
41
|
+
#def valid_remote?(url, timeout = 0)
|
42
|
+
# Timeout.timeout(timeout) do
|
43
|
+
# !!::Git.ls_remote(url)
|
44
|
+
# end
|
45
|
+
#rescue ::Git::GitExecuteError
|
46
|
+
# false
|
47
|
+
#rescue Timeout::Error
|
48
|
+
# false
|
49
|
+
#end
|
50
|
+
|
29
51
|
def valid_remote?(url, timeout = 0)
|
30
52
|
Timeout.timeout(timeout) do
|
31
|
-
|
53
|
+
Vanagon::Utilities.local_command("git ls-remote #{url} > /dev/null 2>&1")
|
54
|
+
return false unless $?.exitstatus.zero?
|
55
|
+
return true
|
32
56
|
end
|
33
|
-
rescue ::Git::GitExecuteError
|
34
|
-
false
|
35
57
|
rescue Timeout::Error
|
36
|
-
false
|
58
|
+
return false
|
59
|
+
rescue RuntimeError
|
60
|
+
return false
|
37
61
|
end
|
38
62
|
end
|
39
63
|
|
@@ -55,6 +79,7 @@ class Vanagon
|
|
55
79
|
# Ensure that #url returns a URI object
|
56
80
|
@url = URI.parse(url.to_s)
|
57
81
|
@ref = opts[:ref]
|
82
|
+
@dirname = opts[:dirname]
|
58
83
|
@workdir = File.realpath(workdir)
|
59
84
|
@clone_options = opts[:clone_options] ||= {}
|
60
85
|
|
@@ -89,7 +114,7 @@ class Vanagon
|
|
89
114
|
#
|
90
115
|
# @return [String] the directory where the repo was cloned
|
91
116
|
def dirname
|
92
|
-
File.basename(url.path, ".git")
|
117
|
+
@dirname || File.basename(url.path, ".git")
|
93
118
|
end
|
94
119
|
|
95
120
|
# Use `git describe` to lazy-load a version for this component
|
@@ -15,7 +15,10 @@ class Vanagon
|
|
15
15
|
def initialize(platform, target = nil, **opts)
|
16
16
|
super
|
17
17
|
|
18
|
-
@available_poolers = [
|
18
|
+
@available_poolers = %w[
|
19
|
+
https://vmpooler.delivery.puppetlabs.net
|
20
|
+
https://nspooler-prod.k8s.infracore.puppet.net
|
21
|
+
]
|
19
22
|
@token = load_token
|
20
23
|
@required_attributes << "vmpooler_template"
|
21
24
|
end
|
data/lib/vanagon/platform.rb
CHANGED
@@ -33,6 +33,9 @@ class Vanagon
|
|
33
33
|
# Where does a given platform expect to find init scripts/service files?
|
34
34
|
# e.g. /etc/init.d, /usr/lib/systemd/system
|
35
35
|
attr_accessor :servicedir
|
36
|
+
# Array of OpenStructs containing the servicetype and the corresponding
|
37
|
+
# servicedir
|
38
|
+
attr_accessor :servicetypes
|
36
39
|
# Where does a given platform's init system expect to find
|
37
40
|
# something resembling 'defaults' files. Most likely to apply
|
38
41
|
# to Linux systems that use SysV-ish, upstart, or systemd init systems.
|
@@ -245,6 +248,7 @@ class Vanagon
|
|
245
248
|
# Our first attempt at defining metadata about a platform
|
246
249
|
@cross_compiled ||= false
|
247
250
|
@valid_operators ||= ['<', '>', '<=', '>=', '=']
|
251
|
+
@servicetypes = []
|
248
252
|
end
|
249
253
|
|
250
254
|
def shell # rubocop:disable Lint/DuplicateMethods
|
@@ -553,5 +557,33 @@ class Vanagon
|
|
553
557
|
def validate_operator(operator_string)
|
554
558
|
valid_operators.include?(operator_string)
|
555
559
|
end
|
560
|
+
|
561
|
+
# Get all configured service types (added through plat.servicetype)
|
562
|
+
# @return array of service types, empty array if none have been configured
|
563
|
+
def get_service_types
|
564
|
+
if @servicetypes.any?
|
565
|
+
@servicetypes.flat_map(&:servicetype).compact
|
566
|
+
elsif @servicetype
|
567
|
+
[@servicetype]
|
568
|
+
else
|
569
|
+
[]
|
570
|
+
end
|
571
|
+
end
|
572
|
+
|
573
|
+
# Get configured service dir (added through plat.servicedir, or plat.servicetype 'foo', servicedir: 'bar')
|
574
|
+
# @param servicetype the service type you want the service dir for (optional)
|
575
|
+
# @raises VanagonError if more than one service dir is found
|
576
|
+
def get_service_dir(servicetype = '')
|
577
|
+
if @servicetypes.empty?
|
578
|
+
return @servicedir
|
579
|
+
end
|
580
|
+
servicedir = @servicetypes.select { |s| s.servicetype.include?(servicetype) }.flat_map(&:servicedir).compact
|
581
|
+
|
582
|
+
if servicedir.size > 1
|
583
|
+
raise Vanagon::Error, "You can only have one service dir for each service type. Found '#{servicedir.join(',')}' for service type #{servicetype}"
|
584
|
+
end
|
585
|
+
|
586
|
+
servicedir.first
|
587
|
+
end
|
556
588
|
end
|
557
589
|
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
platform "debian-10-amd64" do |plat|
|
2
|
+
plat.servicedir "/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/default"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.codename "buster"
|
6
|
+
|
7
|
+
packages = %w(build-essential devscripts make quilt pkg-config debhelper rsync fakeroot cmake)
|
8
|
+
plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}"
|
9
|
+
plat.install_build_dependencies_with "DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends "
|
10
|
+
plat.vmpooler_template "debian-10-x86_64"
|
11
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
platform "debian-11-amd64" do |plat|
|
2
|
+
plat.servicedir "/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/default"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.codename "bullseye"
|
6
|
+
|
7
|
+
packages = %w(build-essential devscripts make quilt pkg-config debhelper rsync fakeroot cmake)
|
8
|
+
plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}"
|
9
|
+
plat.install_build_dependencies_with "DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends "
|
10
|
+
plat.vmpooler_template "debian-11-x86_64"
|
11
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
platform "debian-8-amd64" do |plat|
|
2
|
+
plat.servicedir "/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/default"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.codename "jessie"
|
6
|
+
|
7
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/debian/pl-build-tools-release-#{plat.get_codename}.deb"
|
8
|
+
packages = %w(build-essential devscripts make quilt pkg-config debhelper rsync fakeroot)
|
9
|
+
plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}"
|
10
|
+
plat.install_build_dependencies_with "DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends "
|
11
|
+
plat.vmpooler_template "debian-8-x86_64"
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
platform "debian-8-i386" do |plat|
|
2
|
+
plat.servicedir "/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/default"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.codename "jessie"
|
6
|
+
|
7
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/debian/pl-build-tools-release-#{plat.get_codename}.deb"
|
8
|
+
packages = %w(build-essential devscripts make quilt pkg-config debhelper rsync fakeroot)
|
9
|
+
plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}"
|
10
|
+
plat.install_build_dependencies_with "DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends"
|
11
|
+
plat.vmpooler_template "debian-8-i386"
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
platform "debian-9-amd64" do |plat|
|
2
|
+
plat.servicedir "/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/default"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.codename "stretch"
|
6
|
+
|
7
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/debian/pl-build-tools-release-#{plat.get_codename}.deb"
|
8
|
+
packages = %w(build-essential devscripts make quilt pkg-config debhelper rsync fakeroot)
|
9
|
+
plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}"
|
10
|
+
plat.install_build_dependencies_with "DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends "
|
11
|
+
plat.vmpooler_template "debian-9-x86_64"
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
platform "debian-9-i386" do |plat|
|
2
|
+
plat.servicedir "/lib/systemd/system"
|
3
|
+
plat.defaultdir "/etc/default"
|
4
|
+
plat.servicetype "systemd"
|
5
|
+
plat.codename "stretch"
|
6
|
+
|
7
|
+
plat.add_build_repository "http://pl-build-tools.delivery.puppetlabs.net/debian/pl-build-tools-release-#{plat.get_codename}.deb"
|
8
|
+
packages = %w(build-essential devscripts make quilt pkg-config debhelper rsync fakeroot)
|
9
|
+
plat.provision_with "export DEBIAN_FRONTEND=noninteractive; apt-get update -qq; apt-get install -qy --no-install-recommends #{packages.join(' ')}"
|
10
|
+
plat.install_build_dependencies_with "DEBIAN_FRONTEND=noninteractive; apt-get install -qy --no-install-recommends "
|
11
|
+
plat.vmpooler_template "debian-9-i386"
|
12
|
+
end
|