summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2023-11-03 18:09:36 +0100
committerEugen Wissner <belka@caraus.de>2023-11-03 18:09:36 +0100
commit0023fe033731180afe8bc2242c2a512b31b8c0bf (patch)
tree74644e69836f08164c13722b70eb08ea047cad63
parent24e62c343946e0413648f14a1d17fb2007b91a86 (diff)
downloadslackbuilder-0023fe033731180afe8bc2242c2a512b31b8c0bf.tar.gz
Remove unused tasks
-rw-r--r--Rakefile108
-rw-r--r--app/Main.hs4
-rw-r--r--app/SlackBuilder/CommandLine.hs12
-rw-r--r--lib/download.rb17
-rw-r--r--lib/package.rb78
-rw-r--r--rakelib/dmd_tools.rake85
-rw-r--r--rakelib/hhvm.rake104
7 files changed, 87 insertions, 321 deletions
diff --git a/Rakefile b/Rakefile
index 98ef806..06b6fa4 100644
--- a/Rakefile
+++ b/Rakefile
@@ -4,40 +4,106 @@
# frozen_string_literal: true
+require 'pathname'
require 'digest/md5'
require 'net/http'
-require 'open3'
require_relative 'config/config'
require_relative 'lib/package'
require_relative 'lib/download'
-task :dmd, [:version] do |_, arguments|
- raise 'Version is not specified.' unless arguments.key? :version
+namespace :hhvm do
+ def filter_set_hhvm_third_party_source_args(tokens)
+ args = tokens[0]
+ allowed_arguments = tokens[1..].each_slice(2)
+ .filter do |key, _value|
+ !key.end_with?('_URL') && !key.end_with?('_HASH')
+ end
- dub_version = '1.33.0'
- dscanner_version = '0.15.2'
- dcd_version = '0.15.2'
+ allowed_arguments
+ .flatten
+ .prepend(" #{args}")
+ .join("\n ")
+ end
- SlackBuilder::DmdTools.update_dmd arguments[:version]
- SlackBuilder::DmdTools.update_tools arguments[:version], dub_version, dscanner_version, dcd_version
-end
+ def split_set_hhvm_third_party_source_args(section_content)
+ section_content
+ .split("\n")
+ .map do |line|
+ hash_index = line.index '#'
+ line = line[...hash_index] unless hash_index.nil?
+
+ line.strip
+ end
+ end
+
+ def rewrite_set_hhvm_third_party_source_args(contents)
+ set_hhvm_start = contents.index 'SET_HHVM_THIRD_PARTY_SOURCE_ARGS('
+ return nil if set_hhvm_start.nil?
+
+ section_contents = contents[set_hhvm_start + 'SET_HHVM_THIRD_PARTY_SOURCE_ARGS('.length..]
+ set_hhvm_end = section_contents.index ')'
+
+ lines = split_set_hhvm_third_party_source_args section_contents[...set_hhvm_end]
+ new_cmake_section = filter_set_hhvm_third_party_source_args lines.reject(&:blank?).join(' ').split
+
+ contents[...set_hhvm_start] +
+ "SET_HHVM_THIRD_PARTY_SOURCE_ARGS(\n#{new_cmake_section}\n)\n" +
+ section_contents[set_hhvm_end..]
+ end
+
+ desc 'Generates diffs with removed download URLs'
+ task :bundled_dependencies, [:version] do |_, arguments|
+ run_on_source arguments[:version] do |third_party|
+ c_make_lists = third_party + 'CMakeLists.txt'
+ next unless c_make_lists.exist?
+
+ contents = c_make_lists.read
+ rewritten_cmake = rewrite_set_hhvm_third_party_source_args contents
+ next if rewritten_cmake.nil?
-task :hhvm, [:version] do |_, arguments|
- raise 'Version is not specified.' unless arguments.key? :version
+ puts Open3.capture2('diff', '-Nur', c_make_lists.to_path, '-', stdin_data: rewritten_cmake).first
+ end
+ end
- checksum = {}
- checksum[:hhvm] = SlackBuilder.clone 'https://github.com/facebook/hhvm.git',
- "development/hhvm/hhvm-#{arguments[:version]}.tar.xz", 'HHVM-'
+ desc 'Generated SlackBuild code to prepare bundled dependencies'
+ task :bundled_code, [:version] do |_, arguments|
+ run_on_source arguments[:version] do |third_party|
+ c_make_lists = third_party + 'CMakeLists.txt'
+ next unless c_make_lists.exist?
+ contents = c_make_lists.read
+ set_hhvm_start = contents.index 'SET_HHVM_THIRD_PARTY_SOURCE_ARGS('
+ next if set_hhvm_start.nil?
+
+ set_hhvm_end = contents.index ')', set_hhvm_start
+ set_hhvm_start += 'SET_HHVM_THIRD_PARTY_SOURCE_ARGS('.length
+ set_hhvm_end -= 1
+ contents = contents[set_hhvm_start..set_hhvm_end].split[1..].map(&:strip)
+
+ src = Pathname.new('third-party') +
+ third_party.basename +
+ "bundled_#{third_party.basename}-prefix" + 'src'
+ bundled = src + "bundled_#{third_party.basename}"
+ archive_name = contents[1][contents[1].rindex('/') + 1..-2]
+
+ puts "mkdir -p #{bundled}"
+ puts "install -m 0644 -D $CWD/#{archive_name} #{src + archive_name}"
+ puts "tar -zxvf $CWD/#{archive_name} -C #{bundled}"
+ puts
+ end
+ end
+end
+
+private
+
+def run_on_source(version, &block)
package = Package.new 'development/hhvm',
- version: arguments[:version],
+ version: version,
homepage: 'https://hhvm.com/',
requires: %w[tbb glog libdwarf libmemcached dobule-conversion]
+ repository = SlackBuilder.clone 'https://github.com/facebook/hhvm.git', package, 'HHVM-'
- write_info package,
- downloads: [
- Download.new(SlackBuilder.hosted_sources("/hhvm/hhvm-#{package.version}.tar.xz"), checksum[:hhvm], is64: true)
- ]
-
- update_slackbuild_version 'development/hhvm', package.version
+ (repository + 'third-party').each_child do |third_party|
+ block.call third_party
+ end
end
diff --git a/app/Main.hs b/app/Main.hs
index 0337fba..5c18a7e 100644
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -416,12 +416,8 @@ main = do
categories <- liftIO $ findCategory repository'
liftIO $ print $ splitFileName . makeRelative repository' <$> categories
pure Nothing
- CommitCommand packagePath version ->
- commit packagePath version >> pure Nothing
ExistsCommand urlPath -> pure . Text.pack . show
<$> remoteFileExists urlPath
- ArchiveCommand repo nameVersion tarball tagPrefix ->
- cloneAndArchive repo nameVersion tarball tagPrefix >> pure Nothing
DownloadCommand url target
| Just uri' <- mkURI url -> fmap (Text.pack . show)
<$> download uri' target
diff --git a/app/SlackBuilder/CommandLine.hs b/app/SlackBuilder/CommandLine.hs
index 1b51b89..9b26671 100644
--- a/app/SlackBuilder/CommandLine.hs
+++ b/app/SlackBuilder/CommandLine.hs
@@ -21,9 +21,7 @@ import Options.Applicative
data SlackBuilderCommand
= CategoryCommand Text
- | CommitCommand Text Text
| ExistsCommand Text
- | ArchiveCommand Text Text String Text
| DownloadCommand Text String
| CloneCommand Text Text Text
| DownloadAndDeployCommand Text Text
@@ -51,9 +49,7 @@ slackBuilderParser = info slackBuilderCommand fullDesc
slackBuilderCommand :: Parser SlackBuilderCommand
slackBuilderCommand = subparser
$ command "category" (info categoryCommand mempty)
- <> command "commit" (info commitCommand mempty)
<> command "exists" (info existsCommand mempty)
- <> command "archive" (info archiveCommand mempty)
<> command "download" (info downloadCommand mempty)
<> command "clone" (info cloneCommand mempty)
<> command "deploy" (info deployCommand mempty)
@@ -61,15 +57,7 @@ slackBuilderCommand = subparser
where
categoryCommand = CategoryCommand
<$> argument str (metavar "PKGNAM")
- commitCommand = CommitCommand
- <$> argument str (metavar "PATH")
- <*> argument str (metavar "VERSION")
existsCommand = ExistsCommand <$> argument str (metavar "PATH")
- archiveCommand = ArchiveCommand
- <$> argument str (metavar "REPO")
- <*> argument str (metavar "NAME_VERSION")
- <*> argument str (metavar "TARBALL")
- <*> argument str (metavar "TAG_PREFIX")
downloadCommand = DownloadCommand
<$> argument str (metavar "URI")
<*> argument str (metavar "TARGET")
diff --git a/lib/download.rb b/lib/download.rb
index 80ff30b..17b119b 100644
--- a/lib/download.rb
+++ b/lib/download.rb
@@ -37,21 +37,4 @@ module SlackBuilder
private_class_method def self.upload_command(local_path, remote_path)
['scp', "slackbuilds/#{local_path}", CONFIG[:remote_path] + remote_path]
end
-
- private_class_method def self.clone_and_archive(repo, name_version, tarball, tag_prefix = 'v')
- sh './bin/slackbuilder', 'archive', repo, name_version, tarball, tag_prefix
- end
-end
-
-def write_info(package, downloads:)
- File.write "slackbuilds/#{package.path}/#{package.name}.info",
- info_template(package, downloads)
-end
-
-def update_slackbuild_version(package_path, version)
- sh './bin/slackbuilder', 'slackbuild', package_path, version
-end
-
-def commit(package_path, version)
- sh './bin/slackbuilder', 'commit', package_path, version
end
diff --git a/lib/package.rb b/lib/package.rb
index fbfd444..b5c44bb 100644
--- a/lib/package.rb
+++ b/lib/package.rb
@@ -21,82 +21,4 @@ class Package
def name_version
"#{name}-#{@version}"
end
-
- def self.parse(path, info_contents)
- current_line = String.new ''
- variables = {}
-
- info_contents.each_line(chomp: true) do |file_line|
- current_line << file_line.delete_suffix('\\')
- next if file_line.end_with? '\\'
-
- variables.store(*parse_pair(current_line))
- current_line.clear
- end
- from_hash path, variables
- end
-
- private_class_method def self.parse_pair(current_line)
- variable_name, variable_value = current_line.split '='
- [variable_name, variable_value[1...-1].split]
- end
-
- private_class_method def self.from_hash(path, variables)
- Package.new path,
- version: variables['VERSION'].join,
- homepage: variables['HOMEPAGE'].join,
- requires: variables['REQUIRES']
- end
-end
-
-class Download
- attr_reader :download, :md5sum
-
- def initialize(download, md5sum, is64: false)
- @download = download
- @md5sum = md5sum
- @is64 = is64
- end
-
- def is64?
- @is64
- end
-end
-
-def info_template(package, downloads)
- downloads64, downloads32 = downloads.partition(&:is64?)
- download32, md5sum32, download64, md5sum64 = download_entries downloads64, downloads32
-
- <<~INFO_FILE
- PRGNAM="#{package.name}"
- VERSION="#{package.version}"
- HOMEPAGE="#{package.homepage}"
- DOWNLOAD="#{download32}"
- MD5SUM="#{md5sum32}"
- DOWNLOAD_x86_64="#{download64}"
- MD5SUM_x86_64="#{md5sum64}"
- REQUIRES="#{requires_entry package.requires}"
- MAINTAINER="Eugene Wissner"
- EMAIL="belka@caraus.de"
- INFO_FILE
-end
-
-private
-
-def requires_entry(requires)
- requires * ' '
-end
-
-def download_entries(downloads64, downloads32)
- download32 =
- if downloads32.empty? && !downloads64.empty?
- 'UNSUPPORTED'
- else
- downloads32.map(&:download) * " \\\n "
- end
- md5sum32 = downloads32.map(&:md5sum) * " \\\n "
- download64 = downloads64.map(&:download) * " \\\n "
- md5sum64 = downloads64.map(&:md5sum) * " \\\n "
-
- [download32, md5sum32, download64, md5sum64]
end
diff --git a/rakelib/dmd_tools.rake b/rakelib/dmd_tools.rake
deleted file mode 100644
index 118bfae..0000000
--- a/rakelib/dmd_tools.rake
+++ /dev/null
@@ -1,85 +0,0 @@
-# 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 'rake'
-require_relative '../lib/download'
-
-module SlackBuilder
- module DmdTools
- extend Rake::FileUtilsExt
-
- def self.update_dmd(version)
- tarball_name = "dmd.#{version}.linux.tar.xz"
-
- uri = URI "http://downloads.dlang.org/releases/2.x/#{version}/#{tarball_name}"
- checksum = SlackBuilder.download(uri, "slackbuilds/development/dmd/#{tarball_name}")
-
- package = Package.new 'development/dmd', version: version,
- homepage: 'https://dlang.org'
-
- write_info package, downloads: [Download.new(uri.to_s, checksum)]
-
- update_slackbuild_version 'development/dmd', package.version
- commit 'development/dmd', version
- end
-
- def self.update_tools(version, dub_version, dscanner_version, dcd_version)
- checksum = collect_checksums(version, dub_version, dscanner_version, dcd_version)
-
- package = Package.new 'development/d-tools',
- version: version,
- homepage: 'https://dlang.org',
- requires: ['dmd']
-
- write_tools_info package, dub_version, dscanner_version, dcd_version, checksum
- update_tools_versions dub_version, dscanner_version, dcd_version
-
- update_slackbuild_version 'development/d-tools', package.version
- commit 'development/d-tools', package.version
- end
-
- private_class_method def self.write_tools_info(package, dub_version, dscanner_version, dcd_version, checksum)
- write_info package,
- downloads: [
- Download.new(SlackBuilder.hosted_sources("/d-tools/dub-#{dub_version}.tar.gz"), checksum[:dub]),
- Download.new(SlackBuilder.hosted_sources("/d-tools/tools-#{package.version}.tar.gz"), checksum[:tools]),
- Download.new(
- SlackBuilder.hosted_sources("/d-tools/D-Scanner-#{dscanner_version}.tar.xz"), checksum[:dscanner]
- ),
- Download.new(SlackBuilder.hosted_sources("/d-tools/DCD-#{dcd_version}.tar.xz"), checksum[:dcd])
- ]
- end
-
- private_class_method def self.collect_checksums(version, dub_version, dscanner_version, dcd_version)
- checksum = {}
-
- uri = URI "https://codeload.github.com/dlang/tools/tar.gz/v#{version}"
- checksum[:tools] = SlackBuilder.download_and_deploy uri, "development/d-tools/tools-#{version}.tar.gz"
-
- uri = URI "https://codeload.github.com/dlang/dub/tar.gz/v#{dub_version}"
- checksum[:dub] = SlackBuilder.download_and_deploy uri, "development/d-tools/dub-#{dub_version}.tar.gz"
-
- checksum[:dscanner] = SlackBuilder.clone 'https://github.com/dlang-community/D-Scanner.git',
- "development/d-tools/D-Scanner-#{dscanner_version}.tar.xz"
- checksum[:dcd] = SlackBuilder.clone 'https://github.com/dlang-community/DCD.git',
- "development/d-tools/DCD-#{dcd_version}.tar.xz"
-
- checksum
- end
-
- private_class_method def self.update_tools_versions(dub_version, dscanner_version, dcd_version)
- 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 }
- end
- end
-end
diff --git a/rakelib/hhvm.rake b/rakelib/hhvm.rake
deleted file mode 100644
index b7660b3..0000000
--- a/rakelib/hhvm.rake
+++ /dev/null
@@ -1,104 +0,0 @@
-# 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 'pathname'
-
-namespace :hhvm do
- def filter_set_hhvm_third_party_source_args(tokens)
- args = tokens[0]
- allowed_arguments = tokens[1..].each_slice(2)
- .filter do |key, _value|
- !key.end_with?('_URL') && !key.end_with?('_HASH')
- end
-
- allowed_arguments
- .flatten
- .prepend(" #{args}")
- .join("\n ")
- end
-
- def split_set_hhvm_third_party_source_args(section_content)
- section_content
- .split("\n")
- .map do |line|
- hash_index = line.index '#'
- line = line[...hash_index] unless hash_index.nil?
-
- line.strip
- end
- end
-
- def rewrite_set_hhvm_third_party_source_args(contents)
- set_hhvm_start = contents.index 'SET_HHVM_THIRD_PARTY_SOURCE_ARGS('
- return nil if set_hhvm_start.nil?
-
- section_contents = contents[set_hhvm_start + 'SET_HHVM_THIRD_PARTY_SOURCE_ARGS('.length..]
- set_hhvm_end = section_contents.index ')'
-
- lines = split_set_hhvm_third_party_source_args section_contents[...set_hhvm_end]
- new_cmake_section = filter_set_hhvm_third_party_source_args lines.reject(&:blank?).join(' ').split
-
- contents[...set_hhvm_start] +
- "SET_HHVM_THIRD_PARTY_SOURCE_ARGS(\n#{new_cmake_section}\n)\n" +
- section_contents[set_hhvm_end..]
- end
-
- desc 'Generates diffs with removed download URLs'
- task :bundled_dependencies, [:version] do |_, arguments|
- run_on_source arguments[:version] do |third_party|
- c_make_lists = third_party + 'CMakeLists.txt'
- next unless c_make_lists.exist?
-
- contents = c_make_lists.read
- rewritten_cmake = rewrite_set_hhvm_third_party_source_args contents
- next if rewritten_cmake.nil?
-
- puts Open3.capture2('diff', '-Nur', c_make_lists.to_path, '-', stdin_data: rewritten_cmake).first
- end
- end
-
- desc 'Generated SlackBuild code to prepare bundled dependencies'
- task :bundled_code, [:version] do |_, arguments|
- run_on_source arguments[:version] do |third_party|
- c_make_lists = third_party + 'CMakeLists.txt'
- next unless c_make_lists.exist?
-
- contents = c_make_lists.read
- set_hhvm_start = contents.index 'SET_HHVM_THIRD_PARTY_SOURCE_ARGS('
- next if set_hhvm_start.nil?
-
- set_hhvm_end = contents.index ')', set_hhvm_start
- set_hhvm_start += 'SET_HHVM_THIRD_PARTY_SOURCE_ARGS('.length
- set_hhvm_end -= 1
- contents = contents[set_hhvm_start..set_hhvm_end].split[1..].map(&:strip)
-
- src = Pathname.new('third-party') +
- third_party.basename +
- "bundled_#{third_party.basename}-prefix" + 'src'
- bundled = src + "bundled_#{third_party.basename}"
- archive_name = contents[1][contents[1].rindex('/') + 1..-2]
-
- puts "mkdir -p #{bundled}"
- puts "install -m 0644 -D $CWD/#{archive_name} #{src + archive_name}"
- puts "tar -zxvf $CWD/#{archive_name} -C #{bundled}"
- puts
- end
- end
-end
-
-private
-
-def run_on_source(version, &block)
- package = Package.new 'development/hhvm',
- version: version,
- homepage: 'https://hhvm.com/',
- requires: %w[tbb glog libdwarf libmemcached dobule-conversion]
- repository = SlackBuilder.clone 'https://github.com/facebook/hhvm.git', package, 'HHVM-'
-
- (repository + 'third-party').each_child do |third_party|
- block.call third_party
- end
-end