| # -*- ruby -*- |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| require_relative "../helper" |
| require_relative "../package-task" |
| |
| class ApacheArrowAptSourcePackageTask < PackageTask |
| include Helper::ApacheArrow |
| |
| def initialize |
| release_time = detect_release_time |
| super("apache-arrow-apt-source", |
| detect_version(release_time), |
| release_time, |
| :rc_build_type => :release) |
| end |
| |
| private |
| def define_archive_task |
| file @archive_name do |
| rm_rf(@archive_base_name) |
| mkdir(@archive_base_name) |
| |
| # Fetch KEYS in a subprocess with LD_PRELOAD stripped so any |
| # LD_PRELOAD'd libfaketime (e.g. from reprotest's time variation) |
| # doesn't fake the clock during TLS certificate verification. |
| # Clearing ENV["FAKETIME"] in this Ruby process is not enough: |
| # libfaketime parses FAKETIME once at library load and caches |
| # the offset. |
| sh({"LD_PRELOAD" => nil}, |
| "curl", |
| "--silent", |
| "--show-error", |
| "--fail", |
| "--location", |
| "--output", "#{@archive_base_name}/KEYS", |
| "https://www.apache.org/dyn/closer.lua?action=download&filename=arrow/KEYS") |
| sh("tar", "czf", @archive_name, @archive_base_name) |
| rm_rf(@archive_base_name) |
| end |
| |
| if deb_archive_name != @archive_name |
| file deb_archive_name => @archive_name do |
| if @archive_base_name == deb_archive_base_name |
| cp(@archive_name, deb_archive_name) |
| else |
| sh("tar", "xf", @archive_name) |
| mv(@archive_base_name, deb_archive_base_name) |
| sh("tar", "czf", deb_archive_name, deb_archive_base_name) |
| end |
| end |
| end |
| end |
| |
| def enable_yum? |
| false |
| end |
| end |
| |
| task = ApacheArrowAptSourcePackageTask.new |
| task.define |