Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Specify the 'downloads' directory #327

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
13 changes: 13 additions & 0 deletions History.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
=== 2016-12-6

* Enhancements
* Upgraded Ruby 2.3 to 2.3.3
* Upgraded Ruby 2.2 to 2.2.6
* Upgraded OpenSSL to 1.0.2j
* Upgraded libffi to 3.2.1
* Upgraded LibYAML to 0.1.7
* Upgraded tcl & tk to 8.5.19

* Internal
* Retry timeouts with SourceForge

=== 2016-7-17

* Enhancements
Expand Down
146 changes: 146 additions & 0 deletions config/compilers/mingw64.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,151 @@
module DevKitInstaller

COMPILERS['mingw64-32-6.1.0-dgn'] =
OpenStruct.new(
:version => 'mingw64-32-6.1.0-dgn',
:programs => [ :gcc, :cpp, :'g++' ],
:program_prefix => nil,
:url_1 => 'http://downloads.sourceforge.net/mingw-w64-dgn',
:url_2 => 'http://downloads.sourceforge.net/mingw',
:url_3 => 'http://downloads.sourceforge.net/gnuwin32',
:target => 'sandbox/devkit/mingw',
:relocate => 'sandbox/devkit/mingw/mingw32',
:knap_path => '610-drangon',
:files => {
:url_1 => [
'mingw-w32-bin-i686-20160428.7z'
],
:url_2 => [
'autoconf2.1-2.13-4-mingw32-bin.tar.lzma',
'autoconf2.5-2.68-1-mingw32-bin.tar.lzma',
'autoconf-10-1-mingw32-bin.tar.lzma',
'automake1.11-1.11.1-1-mingw32-bin.tar.lzma',
'automake-4-1-mingw32-bin.tar.lzma',
'libexpat-2.0.1-1-mingw32-dll-1.tar.gz',
'libtool-2.4-1-mingw32-bin.tar.lzma',
'bsdtar-2.8.3-1-mingw32-bin.tar.bz2',
'bsdcpio-2.8.3-1-mingw32-bin.tar.bz2',
'libarchive-2.8.3-1-mingw32-dll-2.tar.bz2',
'libbz2-1.0.5-2-mingw32-dll-2.tar.gz',
'liblzma-4.999.9beta_20100401-1-mingw32-dll-1.tar.bz2',
'libz-1.2.3-1-mingw32-dll-1.tar.gz'
],
:url_3 => [
'which-2.20-bin.zip'
],
}
)

COMPILERS['mingw64-64-6.1.0-dgn'] =
OpenStruct.new(
:version => 'mingw64-64-6.1.0-dgn',
:programs => [ :gcc, :cpp, :'g++' ],
:program_prefix => nil,
:url_1 => 'http://downloads.sourceforge.net/mingw-w64-dgn',
:url_2 => 'http://downloads.sourceforge.net/mingw',
:url_3 => 'http://downloads.sourceforge.net/gnuwin32',
:target => 'sandbox/devkit/mingw',
:relocate => 'sandbox/devkit/mingw/mingw64',
:host => 'x86_64-w64-mingw32',
:knap_path => '610-drangon',
:files => {
:url_1 => [
'mingw-w64-bin-x86_64-20160428.7z'
],
:url_2 => [
'autoconf2.1-2.13-4-mingw32-bin.tar.lzma',
'autoconf2.5-2.68-1-mingw32-bin.tar.lzma',
'autoconf-10-1-mingw32-bin.tar.lzma',
'automake1.11-1.11.1-1-mingw32-bin.tar.lzma',
'automake-4-1-mingw32-bin.tar.lzma',
'libexpat-2.0.1-1-mingw32-dll-1.tar.gz',
'libtool-2.4-1-mingw32-bin.tar.lzma',
'bsdtar-2.8.3-1-mingw32-bin.tar.bz2',
'bsdcpio-2.8.3-1-mingw32-bin.tar.bz2',
'libarchive-2.8.3-1-mingw32-dll-2.tar.bz2',
'libbz2-1.0.5-2-mingw32-dll-2.tar.gz',
'liblzma-4.999.9beta_20100401-1-mingw32-dll-1.tar.bz2',
'libz-1.2.3-1-mingw32-dll-1.tar.gz'
],
:url_3 => [
'which-2.20-bin.zip'
],
}
)

COMPILERS['mingw64-32-5.3.0'] =
OpenStruct.new(
:version => 'mingw64-32-5.3.0',
:programs => [ :gcc, :cpp, :'g++' ],
:program_prefix => nil,
:url_1 => 'http://downloads.sourceforge.net/mingw-w64',
:url_2 => 'http://downloads.sourceforge.net/mingw',
:url_3 => 'http://downloads.sourceforge.net/gnuwin32',
:target => 'sandbox/devkit/mingw',
:relocate => 'sandbox/devkit/mingw/mingw32',
:knap_path => '530-win32-sjlj',
:files => {
:url_1 => [
'i686-5.3.0-release-win32-sjlj-rt_v4-rev0.7z'
],
:url_2 => [
'autoconf2.1-2.13-4-mingw32-bin.tar.lzma',
'autoconf2.5-2.68-1-mingw32-bin.tar.lzma',
'autoconf-10-1-mingw32-bin.tar.lzma',
'automake1.11-1.11.1-1-mingw32-bin.tar.lzma',
'automake-4-1-mingw32-bin.tar.lzma',
'libexpat-2.0.1-1-mingw32-dll-1.tar.gz',
'libtool-2.4-1-mingw32-bin.tar.lzma',
'bsdtar-2.8.3-1-mingw32-bin.tar.bz2',
'bsdcpio-2.8.3-1-mingw32-bin.tar.bz2',
'libarchive-2.8.3-1-mingw32-dll-2.tar.bz2',
'libbz2-1.0.5-2-mingw32-dll-2.tar.gz',
'liblzma-4.999.9beta_20100401-1-mingw32-dll-1.tar.bz2',
'libz-1.2.3-1-mingw32-dll-1.tar.gz'
],
:url_3 => [
'which-2.20-bin.zip'
],
}
)

COMPILERS['mingw64-64-5.3.0'] =
OpenStruct.new(
:version => 'mingw64-64-5.3.0',
:programs => [ :gcc, :cpp, :'g++' ],
:program_prefix => nil,
:url_1 => 'http://downloads.sourceforge.net/mingw-w64',
:url_2 => 'http://downloads.sourceforge.net/mingw',
:url_3 => 'http://downloads.sourceforge.net/gnuwin32',
:target => 'sandbox/devkit/mingw',
:relocate => 'sandbox/devkit/mingw/mingw64',
:host => 'x86_64-w64-mingw32',
:knap_path => '530-win32-seh',
:files => {
:url_1 => [
'x86_64-5.3.0-release-win32-seh-rt_v4-rev0.7z'
],
:url_2 => [
'autoconf2.1-2.13-4-mingw32-bin.tar.lzma',
'autoconf2.5-2.68-1-mingw32-bin.tar.lzma',
'autoconf-10-1-mingw32-bin.tar.lzma',
'automake1.11-1.11.1-1-mingw32-bin.tar.lzma',
'automake-4-1-mingw32-bin.tar.lzma',
'libexpat-2.0.1-1-mingw32-dll-1.tar.gz',
'libtool-2.4-1-mingw32-bin.tar.lzma',
'bsdtar-2.8.3-1-mingw32-bin.tar.bz2',
'bsdcpio-2.8.3-1-mingw32-bin.tar.bz2',
'libarchive-2.8.3-1-mingw32-dll-2.tar.bz2',
'libbz2-1.0.5-2-mingw32-dll-2.tar.gz',
'liblzma-4.999.9beta_20100401-1-mingw32-dll-1.tar.bz2',
'libz-1.2.3-1-mingw32-dll-1.tar.gz'
],
:url_3 => [
'which-2.20-bin.zip'
],
}
)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm glad that someone is doing this kind of stuff. =)

COMPILERS['mingw64-32-4.7.2'] =
OpenStruct.new(
:version => 'mingw64-32-4.7.2',
Expand Down
30 changes: 15 additions & 15 deletions config/dependencies.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,40 +17,40 @@ module RubyInstaller

KNAPSACK_PACKAGES['openssl'] = OpenStruct.new(
:human_name => "OpenSSL",
:version => '1.0.1l',
:version => '1.0.2j',
:url => "http://dl.bintray.com/oneclick/OpenKnapsack",
:target => 'sandbox/openssl',
:files => [
'openssl-1.0.1l-x86-windows.tar.lzma'
'openssl-1.0.2j-x86-windows.tar.lzma'
],
:x64_files => [
'openssl-1.0.1l-x64-windows.tar.lzma'
'openssl-1.0.2j-x64-windows.tar.lzma'
]
)

KNAPSACK_PACKAGES['ffi'] = OpenStruct.new(
:human_name => "libffi",
:version => '3.0.11',
:version => '3.2.1',
:url => "http://dl.bintray.com/oneclick/OpenKnapsack",
:target => 'sandbox/libffi',
:files => [
'libffi-3.0.11-x86-windows.tar.lzma'
'libffi-3.2.1-x86-windows.tar.lzma'
],
:x64_files => [
'libffi-3.0.11-x64-windows.tar.lzma'
'libffi-3.2.1-x64-windows.tar.lzma'
]
)

KNAPSACK_PACKAGES['yaml'] = OpenStruct.new(
:human_name => "LibYAML",
:version => '0.1.6',
:version => '0.1.7',
:url => "http://dl.bintray.com/oneclick/OpenKnapsack",
:target => 'sandbox/libyaml',
:files => [
'libyaml-0.1.6-x86-windows.tar.lzma'
'libyaml-0.1.7-x86-windows.tar.lzma'
],
:x64_files => [
'libyaml-0.1.6-x64-windows.tar.lzma'
'libyaml-0.1.7-x64-windows.tar.lzma'
]
)

Expand Down Expand Up @@ -95,28 +95,28 @@ module RubyInstaller

KNAPSACK_PACKAGES["tcl"] = OpenStruct.new(
:human_name => "Tcl",
:version => "8.5.12",
:version => "8.5.19",
:url => "http://dl.bintray.com/oneclick/OpenKnapsack",
:target => "sandbox/tcl",
:files => [
"tcl-8.5.12-x86-windows.tar.lzma"
"tcl-8.5.19-x86-windows.tar.lzma"
],
:x64_files => [
"tcl-8.5.12-x64-windows.tar.lzma"
"tcl-8.5.19-x64-windows.tar.lzma"
]
)

KNAPSACK_PACKAGES["tk"] = OpenStruct.new(
:human_name => "Tk",
:version => "8.5.12",
:version => "8.5.19",
:url => "http://dl.bintray.com/oneclick/OpenKnapsack",
:target => "sandbox/tk",
:patches => "resources/patches/tk",
:files => [
"tk-8.5.12-x86-windows.tar.lzma"
"tk-8.5.19-x86-windows.tar.lzma"
],
:x64_files => [
"tk-8.5.12-x64-windows.tar.lzma"
"tk-8.5.19-x64-windows.tar.lzma"
],
:dependencies => [
:tcl
Expand Down
11 changes: 7 additions & 4 deletions config/ruby_installer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ module RubyInstaller
# Root folder
ROOT = File.expand_path(File.join(File.dirname(__FILE__), ".."))

# Downloads folder
DOWNLOADS = ENV['DOWNLOADS'] || "downloads"

# Console based utilities
SEVEN_ZIP = File.expand_path(File.join(ROOT, 'sandbox', 'extract_utils', '7za.exe'))
BSD_TAR = File.expand_path(File.join(ROOT, 'sandbox', 'extract_utils', 'basic-bsdtar.exe'))
Expand Down Expand Up @@ -151,7 +154,7 @@ module RubyInstaller

Ruby22 = OpenStruct.new(
:number => "22",
:version => "2.2.5",
:version => "2.2.6",
:short_version => 'ruby22',
:url => "http://cache.ruby-lang.org/pub/ruby/2.2/",
:checkout => 'http://svn.ruby-lang.org/repos/ruby/branches/ruby_2_2',
Expand All @@ -168,7 +171,7 @@ module RubyInstaller
"CPPFLAGS='-DFD_SETSIZE=2048'"
],
:files => [
"ruby-2.2.5.tar.bz2"
"ruby-2.2.6.tar.bz2"
],
:dependencies => [
:ffi, :gdbm, :openssl, :yaml, :zlib, :tcl, :tk
Expand All @@ -180,7 +183,7 @@ module RubyInstaller

Ruby23 = OpenStruct.new(
:number => "23",
:version => "2.3.1",
:version => "2.3.3",
:short_version => 'ruby23',
:url => "http://cache.ruby-lang.org/pub/ruby/2.3/",
:checkout => 'http://svn.ruby-lang.org/repos/ruby/branches/ruby_2_3',
Expand All @@ -197,7 +200,7 @@ module RubyInstaller
"CPPFLAGS='-DFD_SETSIZE=2048'"
],
:files => [
"ruby-2.3.1.tar.bz2"
"ruby-2.3.3.tar.bz2"
],
:dependencies => [
:ffi, :gdbm, :openssl, :yaml, :zlib, :tcl, :tk
Expand Down
3 changes: 3 additions & 0 deletions rake/contrib/uri_ext.rb
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,9 @@ def read(options = nil, &block)
end
end
end
rescue Errno::ETIMEDOUT
puts "Download of #{self} timed out. Retrying."
retry
end

private
Expand Down
2 changes: 1 addition & 1 deletion recipes/certificate.rake
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ namespace :certificate do
cert = RubyInstaller::Certificate

source = "#{cert.url}/#{cert.file}"
target = "downloads/#{cert.file}"
target = "#{RubyInstaller::DOWNLOADS}/#{cert.file}"

download target => source
task :download => target
Expand Down
4 changes: 2 additions & 2 deletions recipes/common.rake
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ require 'rake/clean'

# default cleanup
CLOBBER.include("sandbox")
CLOBBER.include("downloads")
CLOBBER.include(RubyInstaller::DOWNLOADS)

# define common tasks
directory "downloads"
directory (RubyInstaller::DOWNLOADS)
directory "sandbox"
24 changes: 19 additions & 5 deletions recipes/dependencies/knapsack.rake
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,33 @@ dependencies.each do |dependency_key, dependency|

if compiler.host =~ /x86_64/
files = dependency.x64_files
files_url = "#{dependency.url}/x64"
if compiler.knap_path
files_url = "#{dependency.url}/#{compiler.knap_path}/x64"
else
files_url = "#{dependency.url}/x64"
end
else
files = dependency.files
files_url = "#{dependency.url}/x86"
if compiler.knap_path
files_url = "#{dependency.url}/#{compiler.knap_path}/x86"
else
files_url = "#{dependency.url}/x86"
end
end

download_path = RubyInstaller::DOWNLOADS
if compiler.knap_path
download_path = "#{download_path}/#{compiler.knap_path}"
end

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you clean up the tabs in this file?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I modified the indent.
Thank you.

files.each do |f|
file_source = "#{files_url}/#{f}"
file_target = "downloads/#{f}"
file_target = "#{download_path}/#{f}"
download file_target => file_source

# depend on downloads directory
file file_target => "downloads"
file file_target => "#{download_path}"
directory "#{download_path}"

# download task need these files as pre-requisites
dt.enhance [file_target]
Expand All @@ -35,7 +49,7 @@ dependencies.each do |dependency_key, dependency|
# Prepare the :sandbox, it requires the :download task
et = checkpoint(dependency_key, :extract) do
dt.prerequisites.each { |f|
extract(File.join(RubyInstaller::ROOT, f), dependency.target)
extract(f, dependency.target)
}
end
task :extract => [:extract_utils, :download, dependency.target, et]
Expand Down
6 changes: 3 additions & 3 deletions recipes/dependencies/rbreadline.rake
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ namespace(:dependencies) do
# Put files for the :download task
package.files.each do |f|
file_source = "#{package.url}/#{f}"
file_target = "downloads/#{f}"
file_target = "#{RubyInstaller::DOWNLOADS}/#{f}"
download file_target => file_source

# depend on downloads directory
file file_target => "downloads"
file file_target => RubyInstaller::DOWNLOADS

# download task need these files as pre-requisites
task :download => file_target
Expand All @@ -26,7 +26,7 @@ namespace(:dependencies) do
files = Rake::Task['dependencies:rbreadline:download'].prerequisites

files.each { |f|
extract(File.join(RubyInstaller::ROOT, f), package.target)
extract(f, package.target)
}
end

Expand Down