summaryrefslogtreecommitdiff
path: root/private/hhvm.rb
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2023-12-08 14:36:52 +0100
committerEugen Wissner <belka@caraus.de>2023-12-08 14:36:52 +0100
commit49d6718fee3a230a09e47c11bf9b8563bbc28657 (patch)
tree703c977ddbc6e40f2c929e8c10042c7907ae87c3 /private/hhvm.rb
parent3414a69bc8e589a0fbfc52f932f6b7df8d05f365 (diff)
downloadslackbuilder-49d6718fee3a230a09e47c11bf9b8563bbc28657.tar.gz
Remove private build scripts and functions
Diffstat (limited to 'private/hhvm.rb')
-rw-r--r--private/hhvm.rb135
1 files changed, 0 insertions, 135 deletions
diff --git a/private/hhvm.rb b/private/hhvm.rb
deleted file mode 100644
index 85e78b7..0000000
--- a/private/hhvm.rb
+++ /dev/null
@@ -1,135 +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'
-require 'digest/md5'
-require 'net/http'
-require_relative 'config/config'
-require_relative 'lib/package'
-
-class Package
- attr_reader :path, :version, :homepage, :requires
-
- def initialize(path, version:, homepage:, requires: [])
- @path = path
- @version = version
- @homepage = homepage
- @requires = requires
- end
-
- def name
- File.basename @path
- end
-
- def name_version
- "#{name}-#{@version}"
- end
-end
-
-module SlackBuilder
- extend Rake::FileUtilsExt
-
- def self.clone(repo, tarball, tag_prefix = 'v')
- `./bin/slackbuilder clone #{repo} #{tarball} #{tag_prefix}`
- end
-end
-
-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