From 49d6718fee3a230a09e47c11bf9b8563bbc28657 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Fri, 8 Dec 2023 14:36:52 +0100 Subject: Remove private build scripts and functions --- private/hhvm.rb | 135 -------------------------------------------------------- 1 file changed, 135 deletions(-) delete mode 100644 private/hhvm.rb (limited to 'private/hhvm.rb') 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 -- cgit v1.2.3