slackbuilder/Rakefile

160 lines
6.0 KiB
Ruby
Raw Normal View History

2020-12-09 18:28:42 +01:00
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
# frozen_string_literal: true
require 'digest/md5'
require 'net/http'
2021-01-02 07:39:32 +01:00
require_relative 'config/config'
2020-12-09 18:28:42 +01:00
require_relative 'lib/package'
require_relative 'lib/download'
2022-10-30 18:08:12 +01:00
task :dmd, [:version] do |_, arguments|
raise 'Version is not specified.' unless arguments.key? :version
2022-06-11 10:56:44 +02:00
dub_version = '1.29.0'
2022-09-23 20:41:49 +02:00
dscanner_version = '0.12.2'
2021-10-12 07:42:35 +02:00
dcd_version = '0.13.6'
2022-10-30 18:08:12 +01:00
tarball_name = "dmd.#{arguments[:version]}.linux.tar.xz"
2020-12-09 18:28:42 +01:00
2022-10-30 18:08:12 +01:00
uri = URI "http://downloads.dlang.org/releases/2.x/#{arguments[:version]}/#{tarball_name}"
2020-12-09 18:28:42 +01:00
checksum = {
dmd: download(uri, "slackbuilds/development/dmd/#{tarball_name}").hexdigest
2020-12-09 18:28:42 +01:00
}
package = Package.new 'development/dmd',
2022-10-30 18:08:12 +01:00
version: arguments[:version],
2020-12-09 18:28:42 +01:00
homepage: 'https://dlang.org'
write_info package,
2021-05-04 07:47:24 +02:00
downloads: [Download.new(uri.to_s, checksum[:dmd])]
2020-12-09 18:28:42 +01:00
2022-10-30 18:08:12 +01:00
update_slackbuild_version 'development/dmd', package.version
2020-12-09 18:28:42 +01:00
commit 'development/dmd', version
2022-10-30 18:08:12 +01:00
uri = URI "https://codeload.github.com/dlang/tools/tar.gz/v#{package.version}"
2020-12-09 18:28:42 +01:00
checksum[:tools] = download_and_deploy uri,
2022-10-30 18:08:12 +01:00
"development/d-tools/tools-#{package.version}.tar.gz"
2020-12-09 18:28:42 +01:00
uri = URI "https://codeload.github.com/dlang/dub/tar.gz/v#{dub_version}"
checksum[:dub] = download_and_deploy uri,
"development/d-tools/dub-#{dub_version}.tar.gz"
checksum[:dscanner] = clone 'https://github.com/dlang-community/D-Scanner.git',
"development/d-tools/D-Scanner-#{dscanner_version}.tar.xz"
checksum[:dcd] = clone 'https://github.com/dlang-community/DCD.git',
"development/d-tools/DCD-#{dcd_version}.tar.xz"
package = Package.new 'development/d-tools',
2022-10-30 18:08:12 +01:00
version: arguments[:version],
2020-12-09 18:28:42 +01:00
homepage: 'https://dlang.org',
requires: ['dmd']
write_info package,
2021-05-04 07:47:24 +02:00
downloads: [
Download.new(hosted_sources("/d-tools/dub-#{dub_version}.tar.gz"), checksum[:dub]),
2022-10-30 18:08:12 +01:00
Download.new(hosted_sources("/d-tools/tools-#{package.version}.tar.gz"), checksum[:tools]),
2021-05-04 07:47:24 +02:00
Download.new(hosted_sources("/d-tools/D-Scanner-#{dscanner_version}.tar.xz"), checksum[:dscanner]),
Download.new(hosted_sources("/d-tools/DCD-#{dcd_version}.tar.xz"), checksum[:dcd])
2020-12-09 18:28:42 +01:00
]
slackbuild_filename = 'slackbuilds/development/d-tools/d-tools.SlackBuild'
slackbuild_contents = File.read(slackbuild_filename)
.gsub(/^DUB_VERSION=\${DUB_VERSION:-.+/,
"DUB_VERSION=${DUB_VERSION:-#{dub_version}}")
.gsub(/^DSCANNER_VERSION=\${DSCANNER_VERSION:-.+/,
"DSCANNER_VERSION=${DSCANNER_VERSION:-#{dscanner_version}}")
.gsub(/^DCD_VERSION=\${DCD_VERSION:-.+/,
"DCD_VERSION=${DCD_VERSION:-#{dcd_version}}")
File.open(slackbuild_filename, 'w') { |file| file.puts slackbuild_contents }
2022-10-30 18:08:12 +01:00
update_slackbuild_version 'development/d-tools', package.version
commit 'development/d-tools', package.version
2020-12-09 18:28:42 +01:00
end
2022-04-26 17:09:26 +02:00
task :composer, [:version] do |_, arguments|
2022-10-30 18:08:12 +01:00
raise 'Version is not specified.' unless arguments.key? :version
2020-12-09 18:28:42 +01:00
package = Package.new 'development/composer',
2022-04-26 17:09:26 +02:00
version: arguments[:version],
2020-12-09 18:28:42 +01:00
homepage: 'https://getcomposer.org/'
2022-04-26 17:09:26 +02:00
uri = "https://getcomposer.org/download/#{arguments[:version]}/composer.phar"
checksum = download URI(uri), 'slackbuilds/development/composer/composer.phar'
write_info package, downloads: [Download.new(uri, checksum.hexdigest)]
update_slackbuild_version 'development/composer', arguments[:version]
2020-12-09 18:28:42 +01:00
2022-04-26 17:09:26 +02:00
commit 'development/composer', arguments[:version]
2020-12-09 18:28:42 +01:00
end
task 'universal-ctags', [:version] do |_, arguments|
2022-10-30 18:08:12 +01:00
raise 'Version is not specified.' unless arguments.key? :version
package = Package.new 'development/universal-ctags',
version: arguments[:version],
homepage: 'https://ctags.io/',
requires: ['%README%']
uri = "https://github.com/universal-ctags/ctags/archive/#{arguments[:version]}/ctags-#{arguments[:version]}.tar.gz"
tarball = "slackbuilds/development/universal-ctags/ctags-#{arguments[:version]}.tar.gz"
checksum = download URI(uri), tarball
download = "https://download.dlackware.com/hosted-sources/universal-ctags/ctags-#{arguments[:version]}.tar.gz"
write_info package,
2021-05-04 07:47:24 +02:00
downloads: [Download.new(download, checksum.hexdigest)]
update_slackbuild_version 'development/universal-ctags', arguments[:version]
sh 'scp', tarball, "#{CONFIG[:remote_path]}/universal-ctags"
commit 'development/universal-ctags', arguments[:version]
2020-12-09 18:28:42 +01:00
end
2021-05-04 07:47:24 +02:00
task :hhvm do
2022-10-30 18:08:12 +01:00
raise 'Version is not specified.' unless arguments.key? :version
2021-05-04 07:47:24 +02:00
2022-10-30 18:08:12 +01:00
checksum = {}
2021-05-04 07:47:24 +02:00
checksum[:hhvm] = clone 'https://github.com/facebook/hhvm.git',
2022-10-30 18:08:12 +01:00
"development/hhvm/hhvm-#{arguments[:version]}.tar.xz", 'HHVM-'
2021-05-04 07:47:24 +02:00
package = Package.new 'development/hhvm',
2022-10-30 18:08:12 +01:00
version: arguments[:version],
2021-05-04 07:47:24 +02:00
homepage: 'https://hhvm.com/',
requires: %w[tbb glog libdwarf libmemcached dobule-conversion]
write_info package,
downloads: [
2022-10-30 18:08:12 +01:00
Download.new(hosted_sources("/hhvm/hhvm-#{package.version}.tar.xz"), checksum[:hhvm], is64: true)
2021-05-04 07:47:24 +02:00
]
2022-10-30 18:08:12 +01:00
update_slackbuild_version 'development/hhvm', package.version
2021-05-04 07:47:24 +02:00
end
2021-10-12 07:42:35 +02:00
task :ioncube do
2022-10-30 18:08:12 +01:00
raise 'Version is not specified.' unless arguments.key? :version
2021-10-12 07:42:35 +02:00
tarball_name = {
2022-10-30 18:08:12 +01:00
'32' => "ioncube_loaders_lin_x86_#{arguments[:version]}.tar.gz",
'64' => "ioncube_loaders_lin_x86-64_#{arguments[:version]}.tar.gz"
2021-10-12 07:42:35 +02:00
}
uri = {
'32' => URI("http://downloads3.ioncube.com/loader_downloads/#{tarball_name['32']}"),
'64' => URI("http://downloads3.ioncube.com/loader_downloads/#{tarball_name['64']}")
}
checksum = {
'32' => download(uri['32'], "slackbuilds/development/ioncube-loader/#{tarball_name['32']}").hexdigest,
'64' => download(uri['64'], "slackbuilds/development/ioncube-loader/#{tarball_name['64']}").hexdigest
}
package = Package.new 'development/ioncube-loader',
2022-10-30 18:08:12 +01:00
version: arguments[:version],
2021-10-12 07:42:35 +02:00
homepage: 'https://www.ioncube.com'
write_info package,
downloads: [
Download.new(uri['32'], checksum['32']),
Download.new(uri['64'], checksum['64'], is64: true)
]
2022-10-30 18:08:12 +01:00
update_slackbuild_version 'development/ioncube-loader', package.version
commit 'development/ioncube-loader', package.version
2021-10-12 07:42:35 +02:00
end