puppet 3.0.0 → 3.0.1.rc1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- data/Rakefile +24 -19
- data/bin/puppet +0 -6
- data/examples/modules/{sample-module.pp → sample_module.pp} +1 -1
- data/examples/modules/{sample-module → sample_module}/lib/puppet/parser/functions/hostname_to_dn.rb +0 -0
- data/examples/modules/{sample-module → sample_module}/manifests/init.pp +1 -1
- data/examples/modules/{sample-module → sample_module}/templates/sample.erb +0 -0
- data/ext/debian/puppetmaster.README.debian +1 -2
- data/ext/debian/puppetmaster.default +1 -28
- data/ext/debian/puppetmaster.init +49 -70
- data/ext/project_data.yaml +2 -2
- data/ext/rack/README +0 -15
- data/ext/rack/files/config.ru +4 -2
- data/ext/redhat/logrotate +1 -1
- data/ext/redhat/server.init +34 -49
- data/ext/redhat/server.sysconfig +2 -20
- data/ext/suse/client.init +10 -9
- data/ext/suse/puppet.spec +12 -25
- data/ext/suse/server.init +25 -15
- data/ext/windows/service/daemon.bat +1 -1
- data/ext/windows/service/daemon.rb +1 -1
- data/lib/puppet.rb +0 -6
- data/lib/puppet/application/agent.rb +1 -0
- data/lib/puppet/defaults.rb +2 -9
- data/lib/puppet/feature/eventlog.rb +0 -1
- data/lib/puppet/feature/rack.rb +1 -6
- data/lib/puppet/feature/rails.rb +0 -2
- data/lib/puppet/feature/rubygems.rb +5 -1
- data/lib/puppet/feature/ssh.rb +0 -1
- data/lib/puppet/feature/stomp.rb +0 -1
- data/lib/puppet/feature/zlib.rb +0 -1
- data/lib/puppet/network/http/rack/rest.rb +4 -1
- data/lib/puppet/rails/inventory_node.rb +26 -13
- data/lib/puppet/run.rb +1 -1
- data/lib/puppet/settings.rb +12 -7
- data/lib/puppet/util/command_line.rb +11 -0
- data/lib/puppet/util/rubygems.rb +7 -6
- data/lib/puppet/util/run_mode.rb +12 -11
- data/lib/puppet/util/zaml.rb +1 -1
- data/lib/puppet/version.rb +1 -1
- data/man/man5/puppet.conf.5 +4 -4
- data/spec/integration/defaults_spec.rb +4 -4
- data/spec/unit/network/http/rack/rest_spec.rb +13 -0
- data/spec/unit/run_spec.rb +11 -5
- data/spec/unit/util/rubygems_spec.rb +4 -2
- data/spec/unit/util/run_mode_spec.rb +9 -0
- data/spec/unit/util/zaml_spec.rb +53 -25
- metadata +2189 -2210
- data/examples/modules/sample-module/README.txt +0 -17
- data/ext/packaging/README-Solaris.md +0 -117
- data/ext/packaging/README.md +0 -89
- data/ext/packaging/tasks/00_utils.rb +0 -290
- data/ext/packaging/tasks/10_setupvars.rake +0 -64
- data/ext/packaging/tasks/apple.rake +0 -201
- data/ext/packaging/tasks/clean.rake +0 -5
- data/ext/packaging/tasks/deb.rake +0 -103
- data/ext/packaging/tasks/gem.rake +0 -55
- data/ext/packaging/tasks/ips.rake +0 -80
- data/ext/packaging/tasks/mock.rake +0 -88
- data/ext/packaging/tasks/release.rake +0 -56
- data/ext/packaging/tasks/rpm.rake +0 -39
- data/ext/packaging/tasks/ship.rake +0 -36
- data/ext/packaging/tasks/sign.rake +0 -79
- data/ext/packaging/tasks/tag.rake +0 -8
- data/ext/packaging/tasks/tar.rake +0 -20
- data/ext/packaging/tasks/version.rake +0 -20
- data/ext/suse/fileserver.conf +0 -12
- data/ext/suse/logrotate +0 -10
- data/ext/suse/puppet.conf +0 -25
- data/lib/puppet/network/http/mongrel/rest.rb +0 -104
- data/spec/integration/network/server/mongrel_spec.rb +0 -64
@@ -1,64 +0,0 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
require 'erb'
|
3
|
-
|
4
|
-
begin
|
5
|
-
@project_specs ||= YAML.load_file('ext/project_data.yaml')
|
6
|
-
@name = @project_specs['project']
|
7
|
-
@author = @project_specs['author']
|
8
|
-
@email = @project_specs['email']
|
9
|
-
@homepage = @project_specs['homepage']
|
10
|
-
@summary = @project_specs['summary']
|
11
|
-
@description = @project_specs['description']
|
12
|
-
@files = @project_specs['files']
|
13
|
-
@version_file = @project_specs['version_file']
|
14
|
-
@gem_files = @project_specs['gem_files']
|
15
|
-
@gem_require_path = @project_specs['gem_require_path']
|
16
|
-
@gem_test_files = @project_specs['gem_test_files']
|
17
|
-
@gem_executables = @project_specs['gem_executables']
|
18
|
-
@gem_runtime_dependencies = @project_specs['gem_runtime_dependencies']
|
19
|
-
@gem_devel_dependencies = @project_specs['gem_devel_dependencies']
|
20
|
-
@gem_rdoc_options = @project_specs['gem_rdoc_options']
|
21
|
-
@gem_forge_project = @project_specs['gem_forge_project']
|
22
|
-
rescue
|
23
|
-
STDERR.puts "There was an error loading the project specifications from the 'ext/project_data.yaml' file."
|
24
|
-
exit 1
|
25
|
-
end
|
26
|
-
|
27
|
-
begin
|
28
|
-
@pkg_defaults ||= YAML.load_file('ext/build_defaults.yaml')
|
29
|
-
@sign_tar = boolean_value( ENV['SIGN_TAR'] || @pkg_defaults['sign_tar'] )
|
30
|
-
@build_gem = boolean_value( ENV['GEM'] || @pkg_defaults['build_gem'] )
|
31
|
-
@build_dmg = boolean_value( ENV['DMG'] || @pkg_defaults['build_dmg'] )
|
32
|
-
@build_ips = boolean_value( ENV['IPS'] || @pkg_defaults['build_ips'] )
|
33
|
-
@default_cow = ENV['COW'] || @pkg_defaults['default_cow']
|
34
|
-
@cows = ENV['COW'] || @pkg_defaults['cows']
|
35
|
-
@pbuild_conf = ENV['PBUILDCONF'] || @pkg_defaults['pbuild_conf']
|
36
|
-
@packager = ENV['PACKAGER'] || @pkg_defaults['packager']
|
37
|
-
@final_mocks = ENV['MOCK'] || @pkg_defaults['final_mocks']
|
38
|
-
@rc_mocks = ENV['MOCK'] || @pkg_defaults['rc_mocks']
|
39
|
-
@gpg_name = ENV['GPG_NAME'] || @pkg_defaults['gpg_name']
|
40
|
-
@gpg_key = ENV['GPG_KEY'] || @pkg_defaults['gpg_key']
|
41
|
-
@certificate_pem = ENV['CERT_PEM'] || @pkg_defaults['certificate_pem']
|
42
|
-
@privatekey_pem = ENV['PRIVATE_PEM'] || @pkg_defaults['privatekey_pem']
|
43
|
-
@yum_host = @pkg_defaults['yum_host']
|
44
|
-
@yum_repo_path = @pkg_defaults['yum_repo_path']
|
45
|
-
@apt_host = @pkg_defaults['apt_host']
|
46
|
-
@apt_repo_url = @pkg_defaults['apt_repo_url']
|
47
|
-
@apt_repo_path = @pkg_defaults['apt_repo_path']
|
48
|
-
@ips_repo = @pkg_defaults['ips_repo']
|
49
|
-
@ips_store = @pkg_defaults['ips_store']
|
50
|
-
@ips_host = @pkg_defaults['ips_host']
|
51
|
-
rescue
|
52
|
-
STDERR.puts "There was an error loading the packaging defaults from the 'ext/build_defaults.yaml' file."
|
53
|
-
exit 1
|
54
|
-
end
|
55
|
-
|
56
|
-
@build_root ||= Dir.pwd
|
57
|
-
@version ||= get_dash_version
|
58
|
-
@gemversion ||= get_dot_version
|
59
|
-
@ipsversion ||= get_ips_version
|
60
|
-
@debversion ||= get_debversion
|
61
|
-
@origversion ||= get_origversion
|
62
|
-
@rpmversion ||= get_rpmversion
|
63
|
-
@rpmrelease ||= get_rpmrelease
|
64
|
-
@keychain_loaded ||= FALSE
|
@@ -1,201 +0,0 @@
|
|
1
|
-
# Title: Rake task to build Apple packages for #{@name}.
|
2
|
-
# Author: Gary Larizza
|
3
|
-
# Date: 05/18/2012
|
4
|
-
# Description: This task will create a DMG-encapsulated package that will
|
5
|
-
# install a package on OS X systems. This happens by building
|
6
|
-
# a directory tree of files that will then be fed to the
|
7
|
-
# packagemaker binary (can be installed by installing the
|
8
|
-
# XCode Tools) which will create the .pkg file.
|
9
|
-
#
|
10
|
-
|
11
|
-
# Path to Binaries (Constants)
|
12
|
-
TAR = '/usr/bin/tar'
|
13
|
-
CP = '/bin/cp'
|
14
|
-
INSTALL = '/usr/bin/install'
|
15
|
-
DITTO = '/usr/bin/ditto'
|
16
|
-
PACKAGEMAKER = '/Developer/usr/bin/packagemaker'
|
17
|
-
SED = '/usr/bin/sed'
|
18
|
-
|
19
|
-
# Setup task to populate all the variables
|
20
|
-
task :setup do
|
21
|
-
# Read the Apple file-mappings
|
22
|
-
begin
|
23
|
-
@source_files = YAML.load_file('ext/osx/file_mapping.yaml')
|
24
|
-
rescue
|
25
|
-
STDERR.puts "Could not load Apple file mappings from 'ext/osx/file_mapping.yaml'"
|
26
|
-
exit 1
|
27
|
-
end
|
28
|
-
@package_name = @name
|
29
|
-
@title = "#{@name}-#{@version}"
|
30
|
-
@reverse_domain = "com.#{@packager}.#{@package_name}"
|
31
|
-
@package_major_version = @version.split('.')[0]
|
32
|
-
@package_minor_version = @version.split('.')[1] +
|
33
|
-
@version.split('.')[2].split('-')[0].split('rc')[0]
|
34
|
-
@pm_restart = 'None'
|
35
|
-
@build_date = Time.new.strftime("%Y-%m-%dT%H:%M:%SZ")
|
36
|
-
@apple_bindir = '/usr/bin'
|
37
|
-
@apple_sbindir = '/usr/sbin'
|
38
|
-
@apple_libdir = '/usr/lib/ruby/site_ruby/1.8'
|
39
|
-
@apple_docdir = '/usr/share/doc'
|
40
|
-
end
|
41
|
-
|
42
|
-
# method: make_directory_tree
|
43
|
-
# description: This method sets up the directory structure that packagemaker
|
44
|
-
# needs to build a package. A prototype.plist file (holding
|
45
|
-
# package-specific options) is built from an ERB template located
|
46
|
-
# in the ext/osx directory.
|
47
|
-
def make_directory_tree
|
48
|
-
project_tmp = "#{get_temp}/#{@package_name}"
|
49
|
-
@scratch = "#{project_tmp}/#{@title}"
|
50
|
-
@working_tree = {
|
51
|
-
'scripts' => "#{@scratch}/scripts",
|
52
|
-
'resources' => "#{@scratch}/resources",
|
53
|
-
'working' => "#{@scratch}/root",
|
54
|
-
'payload' => "#{@scratch}/payload",
|
55
|
-
}
|
56
|
-
puts "Cleaning Tree: #{project_tmp}"
|
57
|
-
rm_rf(project_tmp)
|
58
|
-
@working_tree.each do |key,val|
|
59
|
-
mkdir_p(val)
|
60
|
-
end
|
61
|
-
|
62
|
-
erb 'ext/osx/preflight.erb', "#{@working_tree["scripts"]}/preflight"
|
63
|
-
erb 'ext/osx/prototype.plist.erb', "#{@scratch}/prototype.plist"
|
64
|
-
|
65
|
-
end
|
66
|
-
|
67
|
-
# method: build_dmg
|
68
|
-
# description: This method builds a package from the directory structure in
|
69
|
-
# /tmp/#{@name} and puts it in the
|
70
|
-
# /tmp/#{@name}/#{@name}-#{version}/payload directory. A DMG is
|
71
|
-
# created, using hdiutil, based on the contents of the
|
72
|
-
# /tmp/#{@name}/#{@name}-#{version}/payload directory. The resultant
|
73
|
-
# DMG is placed in the pkg/apple directory.
|
74
|
-
#
|
75
|
-
def build_dmg
|
76
|
-
# Local Variables
|
77
|
-
dmg_format_code = 'UDZO'
|
78
|
-
zlib_level = '9'
|
79
|
-
dmg_format_option = "-imagekey zlib-level=#{zlib_level}"
|
80
|
-
dmg_format = "#{dmg_format_code} #{dmg_format_option}"
|
81
|
-
dmg_file = "#{@title}.dmg"
|
82
|
-
package_file = "#{@title}.pkg"
|
83
|
-
pm_extra_args = '--verbose --no-recommend --no-relocate'
|
84
|
-
package_target_os = '10.4'
|
85
|
-
|
86
|
-
# Build .pkg file
|
87
|
-
system("sudo #{PACKAGEMAKER} --root #{@working_tree['working']} \
|
88
|
-
--id #{@reverse_domain} \
|
89
|
-
--filter DS_Store \
|
90
|
-
--target #{package_target_os} \
|
91
|
-
--title #{@title} \
|
92
|
-
--info #{@scratch}/prototype.plist \
|
93
|
-
--scripts #{@working_tree['scripts']} \
|
94
|
-
--resources #{@working_tree['resources']} \
|
95
|
-
--version #{@version} \
|
96
|
-
#{pm_extra_args} --out #{@working_tree['payload']}/#{package_file}")
|
97
|
-
|
98
|
-
# Build .dmg file
|
99
|
-
system("sudo hdiutil create -volname #{@title} \
|
100
|
-
-srcfolder #{@working_tree['payload']} \
|
101
|
-
-uid 99 \
|
102
|
-
-gid 99 \
|
103
|
-
-ov \
|
104
|
-
-format #{dmg_format} \
|
105
|
-
#{dmg_file}")
|
106
|
-
|
107
|
-
if File.directory?("#{pwd}/pkg/apple")
|
108
|
-
mv("#{pwd}/#{dmg_file}", "#{pwd}/pkg/apple/#{dmg_file}")
|
109
|
-
puts "moved: #{dmg_file} has been moved to #{pwd}/pkg/apple/#{dmg_file}"
|
110
|
-
else
|
111
|
-
mkdir_p("#{pwd}/pkg/apple")
|
112
|
-
mv(dmg_file, "#{pwd}/pkg/apple/#{dmg_file}")
|
113
|
-
puts "moved: #{dmg_file} has been moved to #{pwd}/pkg/apple/#{dmg_file}"
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
# method: pack_source
|
118
|
-
# description: This method copies the #{@name} source into a directory
|
119
|
-
# structure in /tmp/#{@name}/#{@name}-#{version}/root mirroring the
|
120
|
-
# structure on the target system for which the package will be
|
121
|
-
# installed. Anything installed into /tmp/#{@name}/root will be
|
122
|
-
# installed as the package's payload.
|
123
|
-
#
|
124
|
-
def pack_source
|
125
|
-
work = "#{@working_tree['working']}"
|
126
|
-
source = pwd
|
127
|
-
|
128
|
-
# Make all necessary directories
|
129
|
-
@source_files.each_value do |files|
|
130
|
-
files.each_value do |params|
|
131
|
-
mkdir_p "#{work}/#{params['path']}"
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
# Install directory contents into place
|
136
|
-
unless @source_files['directories'].nil?
|
137
|
-
@source_files['directories'].each do |dir, params|
|
138
|
-
unless FileList["#{source}/#{dir}/*"].empty?
|
139
|
-
cmd = "#{DITTO} #{source}/#{dir}/ #{work}/#{params['path']}"
|
140
|
-
puts cmd
|
141
|
-
system(cmd)
|
142
|
-
end
|
143
|
-
end
|
144
|
-
end
|
145
|
-
|
146
|
-
# Setup a preflight script and replace variables in the files with
|
147
|
-
# the correct paths.
|
148
|
-
chown('root', 'wheel', "#{@working_tree['scripts']}/preflight")
|
149
|
-
chmod(0644, "#{@working_tree['scripts']}/preflight")
|
150
|
-
|
151
|
-
# Do a run through first setting the specified permissions then
|
152
|
-
# making sure 755 is set for all directories
|
153
|
-
unless @source_files['directories'].nil?
|
154
|
-
@source_files['directories'].each do |dir, params|
|
155
|
-
owner = params['owner']
|
156
|
-
group = params['group']
|
157
|
-
perms = params['perms']
|
158
|
-
path = params['path']
|
159
|
-
chmod_R(Integer(perms), "#{work}/#{path}")
|
160
|
-
chown_R(owner, group, "#{work}/#{path}")
|
161
|
-
chmod(0755, "#{work}/#{path}")
|
162
|
-
Dir["#{work}/#{path}/**/*"].each do |file|
|
163
|
-
chmod(0755, file) if File.directory?(file)
|
164
|
-
end
|
165
|
-
end
|
166
|
-
end
|
167
|
-
|
168
|
-
# Install any files
|
169
|
-
unless @source_files['files'].nil?
|
170
|
-
@source_files['files'].each do |file, params|
|
171
|
-
owner = params['owner']
|
172
|
-
group = params['group']
|
173
|
-
perms = params['perms']
|
174
|
-
dest = params['path']
|
175
|
-
# Allow for regexs like [A-Z]*
|
176
|
-
FileList[file].each do |file|
|
177
|
-
cmd = "#{INSTALL} -o #{owner} -g #{group} -m #{perms} #{source}/#{file} #{work}/#{dest}"
|
178
|
-
puts cmd
|
179
|
-
system(cmd)
|
180
|
-
end
|
181
|
-
end
|
182
|
-
end
|
183
|
-
end
|
184
|
-
|
185
|
-
if @build_dmg
|
186
|
-
namespace :package do
|
187
|
-
desc "Task for building an Apple Package"
|
188
|
-
task :apple => [:setup] do
|
189
|
-
# Test for Root and Packagemaker binary
|
190
|
-
raise "Please run rake as root to build Apple Packages" unless Process.uid == 0
|
191
|
-
raise "Packagemaker must be installed. Please install XCode Tools" unless \
|
192
|
-
File.exists?('/Developer/usr/bin/packagemaker')
|
193
|
-
|
194
|
-
make_directory_tree
|
195
|
-
pack_source
|
196
|
-
build_dmg
|
197
|
-
chmod_R(0775, "#{pwd}/pkg")
|
198
|
-
end
|
199
|
-
end
|
200
|
-
end
|
201
|
-
|
@@ -1,103 +0,0 @@
|
|
1
|
-
def pdebuild args
|
2
|
-
results_dir = args[:work_dir]
|
3
|
-
cow = args[:cow]
|
4
|
-
devel_repo = args[:devel]
|
5
|
-
set_cow_envs(cow)
|
6
|
-
begin
|
7
|
-
sh "pdebuild --configfile #{@pbuild_conf} --buildresult #{results_dir} --pbuilder cowbuilder -- --override-config --othermirror=\"deb #{@apt_repo_url} #{ENV['DIST']} main dependencies #{devel_repo}\" --basepath /var/cache/pbuilder/#{cow}/"
|
8
|
-
rescue Exception => e
|
9
|
-
puts e
|
10
|
-
handle_method_failure('pdebuild', args)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def update_cow(cow, is_rc = nil)
|
15
|
-
ENV['FOSS_DEVEL'] = is_rc
|
16
|
-
ENV['PATH'] = "/usr/sbin:#{ENV['PATH']}"
|
17
|
-
set_cow_envs(cow)
|
18
|
-
begin
|
19
|
-
sh "sudo -E /usr/sbin/cowbuilder --update --override-config --configfile #{@pbuild_conf} --basepath /var/cache/pbuilder/#{cow} --distribution #{ENV['DIST']} --architecture #{ENV['ARCH']}"
|
20
|
-
rescue
|
21
|
-
STDERR.puts "Couldn't update the cow #{cow}. Perhaps you don't have sudo?"
|
22
|
-
exit 1
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def debuild args
|
27
|
-
results_dir = args[:work_dir]
|
28
|
-
begin
|
29
|
-
sh "debuild --no-lintian -uc -us"
|
30
|
-
rescue
|
31
|
-
STDERR.puts "Something went wrong. Hopefully the backscroll or #{results_dir}/#{@name}_#{@debversion}.build file has a clue."
|
32
|
-
exit 1
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
task :prep_deb_tars, :work_dir do |t,args|
|
37
|
-
work_dir = args.work_dir
|
38
|
-
cp_p "pkg/#{@name}-#{@version}.tar.gz", work_dir
|
39
|
-
cd work_dir do
|
40
|
-
sh "tar zxf #{@name}-#{@version}.tar.gz"
|
41
|
-
mv "#{@name}-#{@version}", "#{@name}-#{@debversion}"
|
42
|
-
mv "#{@name}-#{@version}.tar.gz", "#{@name}_#{@origversion}.orig.tar.gz"
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
task :build_deb, :deb_command, :cow, :devel do |t,args|
|
47
|
-
deb_build = args.deb_command
|
48
|
-
cow = args.cow
|
49
|
-
devel = args.devel
|
50
|
-
work_dir = get_temp
|
51
|
-
dest_dir = "#{@build_root}/pkg/deb/#{cow.split('-')[1] unless cow.nil?}"
|
52
|
-
check_tool(deb_build)
|
53
|
-
update_cow(cow, devel)
|
54
|
-
mkdir_p dest_dir
|
55
|
-
deb_args = { :work_dir => work_dir, :cow => cow, :devel => devel}
|
56
|
-
Rake::Task[:prep_deb_tars].reenable
|
57
|
-
Rake::Task[:prep_deb_tars].invoke(work_dir)
|
58
|
-
cd "#{work_dir}/#{@name}-#{@debversion}" do
|
59
|
-
mv 'ext/debian', '.'
|
60
|
-
send(deb_build, deb_args)
|
61
|
-
cp FileList["#{work_dir}/*.deb", "#{work_dir}/*.dsc", "#{work_dir}/*.changes", "#{work_dir}/*.debian.tar.gz", "#{work_dir}/*.orig.tar.gz"], dest_dir
|
62
|
-
rm_rf "#{work_dir}/#{@name}-#{@debversion}"
|
63
|
-
rm_rf work_dir
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
namespace :package do
|
68
|
-
desc "Create a deb from this repo, using debuild (all builddeps must be installed)"
|
69
|
-
task :deb => :tar do
|
70
|
-
Rake::Task[:build_deb].invoke('debuild')
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
namespace :pl do
|
75
|
-
desc "Create a deb from this repo using the default cow #{@default_cow}."
|
76
|
-
task :deb => "package:tar" do
|
77
|
-
Rake::Task[:build_deb].invoke('pdebuild', @default_cow)
|
78
|
-
end
|
79
|
-
|
80
|
-
desc "Create an RC deb from this repo using the default cow #{@default_cow}."
|
81
|
-
task :deb_rc => "package:tar" do
|
82
|
-
Rake::Task[:build_deb].invoke('pdebuild', @default_cow, 'devel')
|
83
|
-
end
|
84
|
-
|
85
|
-
desc "Create debs from this git repository using all cows specified in build_defaults yaml"
|
86
|
-
task :deb_all do
|
87
|
-
@cows.split(' ').each do |cow|
|
88
|
-
Rake::Task["package:tar"].invoke
|
89
|
-
Rake::Task[:build_deb].reenable
|
90
|
-
Rake::Task[:build_deb].invoke('pdebuild', cow)
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
desc "Create RC debs from this git repository using all cows specified in build_defaults yaml"
|
95
|
-
task :deb_all_rc do
|
96
|
-
@cows.split(' ').each do |cow|
|
97
|
-
Rake::Task["package:tar"].invoke
|
98
|
-
Rake::Task[:build_deb].reenable
|
99
|
-
Rake::Task[:build_deb].invoke('pdebuild', cow, 'devel')
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
@@ -1,55 +0,0 @@
|
|
1
|
-
if @build_gem
|
2
|
-
require 'rubygems/package_task'
|
3
|
-
|
4
|
-
def glob_gem_files
|
5
|
-
gem_files = []
|
6
|
-
files = FileList[@gem_files.split(' ')]
|
7
|
-
files.each do |file|
|
8
|
-
if File.directory?(file)
|
9
|
-
gem_files << FileList["#{file}/**/*"].exclude("ext/packaging/")
|
10
|
-
else
|
11
|
-
gem_files << file
|
12
|
-
end
|
13
|
-
end
|
14
|
-
gem_files
|
15
|
-
end
|
16
|
-
|
17
|
-
spec = Gem::Specification.new do |s|
|
18
|
-
s.name = @name unless @name.nil?
|
19
|
-
s.version = @gemversion unless @gemversion.nil?
|
20
|
-
s.author = @author unless @author.nil?
|
21
|
-
s.email = @email unless @email.nil?
|
22
|
-
s.homepage = @homepage unless @homepage.nil?
|
23
|
-
s.summary = @summary unless @summary.nil?
|
24
|
-
s.description = @description unless @description.nil?
|
25
|
-
s.files = glob_gem_files unless glob_gem_files.nil?
|
26
|
-
s.executables = @gem_executables unless @gem_executables.nil?
|
27
|
-
s.require_path = @gem_require_path unless @gem_require_path.nil?
|
28
|
-
s.test_files = FileList[@gem_test_files.split(' ')] unless @gem_test_files.nil?
|
29
|
-
s.rubyforge_project = @gem_forge_project unless @gem_forge_project.nil?
|
30
|
-
|
31
|
-
@gem_runtime_dependencies.each do |gem, version|
|
32
|
-
s.add_runtime_dependency("#{gem}", "#{version}") unless (version.nil? or version.empty?)
|
33
|
-
s.add_runtime_dependency("#{gem}") if (version.nil? or version.empty?)
|
34
|
-
end unless @gem_runtime_dependencies.nil?
|
35
|
-
|
36
|
-
@gem_devel_dependencies.each do |gem, version|
|
37
|
-
s.add_devel_dependency("#{gem}", "#{version}") unless (version.nil? or version.empty?)
|
38
|
-
s.add_devel_dependency("#{gem}") if (version.nil? or version.empty?)
|
39
|
-
end unless @gem_devel_dependencies.nil?
|
40
|
-
|
41
|
-
@gem_rdoc_options.each do |option|
|
42
|
-
s.rdoc_options << option
|
43
|
-
end unless @gem_rdoc_options.nil?
|
44
|
-
end
|
45
|
-
|
46
|
-
namespace :package do
|
47
|
-
gem_task = Gem::PackageTask.new(spec)
|
48
|
-
desc "Build a gem"
|
49
|
-
task :gem => [ "clean" ] do
|
50
|
-
gem_task.define
|
51
|
-
Rake::Task[:gem].invoke
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
@@ -1,80 +0,0 @@
|
|
1
|
-
if @build_ips
|
2
|
-
require 'erb'
|
3
|
-
namespace :package do
|
4
|
-
namespace :ips do
|
5
|
-
workdir = "pkg/ips"
|
6
|
-
proto = workdir + '/proto'
|
7
|
-
repo = workdir + '/repo'
|
8
|
-
pkgs = workdir + '/pkgs'
|
9
|
-
repouri = "file://#{`pwd`.strip + '/' + repo}"
|
10
|
-
artifact = "#{pkgs}/#{@name}@#{@ipsversion}.p5p"
|
11
|
-
|
12
|
-
# Create a source repo
|
13
|
-
# We dont clean the base pkg directory only ips work dir.
|
14
|
-
task :clean do
|
15
|
-
%x[rm -rf #{workdir}]
|
16
|
-
end
|
17
|
-
|
18
|
-
# Create an installation image at ips/proto
|
19
|
-
task :prepare => :clean do
|
20
|
-
check_tool('pkgsend')
|
21
|
-
x %[mkdir -p #{workdir}]
|
22
|
-
x %[gmake -f ext/ips/rules DESTDIR=#{proto} 2>#{workdir}/build.out ]
|
23
|
-
end
|
24
|
-
|
25
|
-
# Process templates and write the initial manifest
|
26
|
-
task :prototmpl do
|
27
|
-
erb("ext/ips/#{@name}.p5m.erb", workdir + '/' + @name + '.p5m.x')
|
28
|
-
end
|
29
|
-
|
30
|
-
# Update manifest to include the installation image information.
|
31
|
-
task :protogen => :prototmpl do
|
32
|
-
x %[pkgsend generate #{proto} >> #{workdir}/#{@name}.p5m.x ]
|
33
|
-
os=%x[uname -p].chomp
|
34
|
-
end
|
35
|
-
|
36
|
-
# Generate and resolve dependency list
|
37
|
-
task :protodeps => :protogen do
|
38
|
-
x %[pkgdepend generate -d #{proto} #{workdir}/#{@name}.p5m.x > #{workdir}/#{@name}.depends ]
|
39
|
-
x %[pkgdepend resolve -m #{workdir}/#{@name}.depends ]
|
40
|
-
x %[cat #{workdir}/#{@name}.depends.res >> #{workdir}/#{@name}.p5m.x]
|
41
|
-
end
|
42
|
-
|
43
|
-
# Mogrify manifest to remove unncecessary info, and other kinds of transforms.
|
44
|
-
task :protomogrify => :protodeps do
|
45
|
-
x %[pkgmogrify ./ext/ips/transforms ./#{workdir}/#{@name}.p5m.x| pkgfmt >> #{workdir}/#{@name}.p5m ]
|
46
|
-
end
|
47
|
-
|
48
|
-
# Generate and resolve dependency list
|
49
|
-
task :license => :protomogrify do
|
50
|
-
x %[cp LICENSE #{proto}/#{@name}.license]
|
51
|
-
end
|
52
|
-
|
53
|
-
# Ensure that our manifest is sane.
|
54
|
-
task :lint => :license do
|
55
|
-
x %[pkglint #{workdir}/#{@name}.p5m]
|
56
|
-
end
|
57
|
-
|
58
|
-
task :package => :lint do
|
59
|
-
x %[rm -rf #{pkgs}]
|
60
|
-
x %[mkdir -p #{pkgs}]
|
61
|
-
x %[pkgrepo create #{repo}]
|
62
|
-
x %[pkgrepo set -s #{repo} publisher/prefix=puppetlabs.com]
|
63
|
-
x %[pkgsend -s #{repouri} publish -d #{proto} --fmri-in-manifest #{workdir}/#{@name}.p5m]
|
64
|
-
x %[rm -f #{artifact}]
|
65
|
-
x %[pkgrecv -s #{repouri} -a -d #{artifact} #{@name}@#{@ipsversion}]
|
66
|
-
end
|
67
|
-
|
68
|
-
task :dry_install do
|
69
|
-
x %[pkg install -nv -g #{artifact} #{@name}@#{@ipsversion}]
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
desc "Creates an ips version"
|
74
|
-
task :ips do
|
75
|
-
Rake::Task['package:ips:prepare'].invoke
|
76
|
-
Rake::Task['package:ips:package'].invoke
|
77
|
-
end
|
78
|
-
|
79
|
-
end
|
80
|
-
end
|