def assemble!
version_a = [ @source[:version], @package.iteration ].compact
if @package.epoch
output.gsub!(/VERSION/, "#{@package.epoch}:" + version_a.join('-'))
else
output.gsub!(/VERSION/, version_a.join('-'))
end
output.gsub!(/ARCH/, @package.architecture)
File.delete(output) if File.exists?(output) && !File.directory?(output)
make_builddir!
::Dir.chdir root do
@source.make_tarball!(tar_path, builddir)
if @package.respond_to?(:unpack_data_to)
data_tarball = File.join(builddir, "data.tar.gz")
Dir.chdir(builddir) do
FileUtils.mkdir_p(@package.unpack_data_to)
safesystem("gzip -d #{data_tarball}")
Dir.chdir(@package.unpack_data_to) do
@source.root = Dir.pwd
safesystem("tar -xf #{data_tarball.gsub(/\.gz$/, "")}")
end
end
end
generate_md5sums if @package.needs_md5sums
generate_specfile
edit_specfile if @edit
end
::Dir.chdir(builddir) do
@package.build!({
:tarball => tar_path,
:output => output
})
end
garbage << @source.garbage if @source.respond_to?(:garbage)
cleanup!
end