0
@@ -254,35 +254,63 @@ module Deprec2
0
if defined?(src_package[:md5sum])
0
md5_clause = " && echo '#{src_package[:md5sum]}' | md5sum -c - "
0
- apt.install( {:base => %w(wget)}, :stable )
0
- # XXX replace with invoke_command
0
- run "cd #{src_dir} && test -f #{src_package[:filename]} #{md5_clause} || #{sudo} wget --quiet --timestamping #{src_package[:url]}"
0
+ case src_package[:download_method]
0
+ # when getting source with git
0
+ # ensure git is installed
0
+ apt.install( {:base => %w(git-core)}, :stable) #TODO fix this to test ubuntu version <hardy might need specific git version for full git submodules support
0
+ package_dir = File.join(src_dir, src_package[:dir])
0
+ run "if [ -d #{package_dir} ]; then cd #{package_dir} && #{sudo} git pull && #{sudo} git submodule init && #{sudo} git submodule update; else #{sudo} git clone #{src_package[:url]} #{package_dir} && cd #{package_dir} && #{sudo} git submodule init && #{sudo} git submodule update ; fi"
0
+ # Checkout the revision wanted if defined
0
+ invoke_command "cd #{package_dir} && git co #{src_package[:version]}", :via => :via if src_package[:version]
0
+ # when getting source with wget
0
+ # ensure wget is installed
0
+ apt.install( {:base => %w(wget)}, :stable )
0
+ # XXX replace with invoke_command
0
+ run "cd #{src_dir} && test -f #{src_package[:filename]} #{md5_clause} || #{sudo} wget --quiet --timestamping #{src_package[:url]}"
0
+ puts "DOWNLOAD SRC: Download method not recognised. src_package[:download_method]: #{src_package[:download_method]}"
0
# unpack src and make it writable by the group
0
def unpack_src(src_package, src_dir)
0
set_package_defaults(src_package)
0
package_dir = File.join(src_dir, src_package[:dir])
0
- # XXX replace with invoke_command
0
+ case src_package[:download_method]
0
+ # when unpacking git sources - nothing to do
0
+ puts "UNPACK SRC: nothing to do for git installs"
0
+ test -d #{package_dir}.old && rm -fr #{package_dir}.old;
0
+ test -d #{package_dir} && mv #{package_dir} #{package_dir}.old;
0
+ #{src_package[:unpack]}
0
+ puts "UNPACK SRC: Download method not recognised. src_package[:download_method]: #{src_package[:download_method]} "
0
- test -d #{package_dir}.old && rm -fr #{package_dir}.old;
0
- test -d #{package_dir} && mv #{package_dir} #{package_dir}.old;
0
- #{src_package[:unpack]}
0
chgrp -R #{group} #{package_dir};
0
chmod -R g+w #{package_dir};
0
def set_package_defaults(pkg)
0
- pkg[:filename] ||= File.basename(pkg[:url])
0
- pkg[:dir] ||= pkg[:filename].sub(/(\.tgz|\.tar\.gz)/,'')
0
- pkg[:unpack] ||= "tar zxf #{pkg[:filename]};"
0
- pkg[:configure] ||= './configure ;'
0
- pkg[:make] ||= 'make;'
0
- pkg[:install] ||= 'make install;'
0
+ pkg[:filename] ||= File.basename(pkg[:url])
0
+ pkg[:dir] ||= pkg[:filename].sub(/(\.tgz|\.tar\.gz)/,'')
0
+ pkg[:download_method] ||= :http
0
+ pkg[:unpack] ||= "tar zxf #{pkg[:filename]};"
0
+ pkg[:configure] ||= './configure ;'
0
+ pkg[:make] ||= 'make;'
0
+ pkg[:install] ||= 'make install;'
0
# install package from source