1*6236dae4SAndroid Build Coastguard Worker#!/bin/sh 2*6236dae4SAndroid Build Coastguard Worker 3*6236dae4SAndroid Build Coastguard Worker#*************************************************************************** 4*6236dae4SAndroid Build Coastguard Worker# _ _ ____ _ 5*6236dae4SAndroid Build Coastguard Worker# Project ___| | | | _ \| | 6*6236dae4SAndroid Build Coastguard Worker# / __| | | | |_) | | 7*6236dae4SAndroid Build Coastguard Worker# | (__| |_| | _ <| |___ 8*6236dae4SAndroid Build Coastguard Worker# \___|\___/|_| \_\_____| 9*6236dae4SAndroid Build Coastguard Worker# 10*6236dae4SAndroid Build Coastguard Worker# Copyright (C) Daniel Stenberg, <[email protected]>, et al. 11*6236dae4SAndroid Build Coastguard Worker# 12*6236dae4SAndroid Build Coastguard Worker# This software is licensed as described in the file COPYING, which 13*6236dae4SAndroid Build Coastguard Worker# you should have received as part of this distribution. The terms 14*6236dae4SAndroid Build Coastguard Worker# are also available at https://curl.se/docs/copyright.html. 15*6236dae4SAndroid Build Coastguard Worker# 16*6236dae4SAndroid Build Coastguard Worker# You may opt to use, copy, modify, merge, publish, distribute and/or sell 17*6236dae4SAndroid Build Coastguard Worker# copies of the Software, and permit persons to whom the Software is 18*6236dae4SAndroid Build Coastguard Worker# furnished to do so, under the terms of the COPYING file. 19*6236dae4SAndroid Build Coastguard Worker# 20*6236dae4SAndroid Build Coastguard Worker# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 21*6236dae4SAndroid Build Coastguard Worker# KIND, either express or implied. 22*6236dae4SAndroid Build Coastguard Worker# 23*6236dae4SAndroid Build Coastguard Worker# SPDX-License-Identifier: curl 24*6236dae4SAndroid Build Coastguard Worker# 25*6236dae4SAndroid Build Coastguard Worker########################################################################### 26*6236dae4SAndroid Build Coastguard Worker 27*6236dae4SAndroid Build Coastguard Worker# This script remakes a provided curl release and verifies that the newly 28*6236dae4SAndroid Build Coastguard Worker# built version is identical to the original file. 29*6236dae4SAndroid Build Coastguard Worker# 30*6236dae4SAndroid Build Coastguard Worker# It is designed to be invoked in a clean directory with the path to the 31*6236dae4SAndroid Build Coastguard Worker# release tarball as an argument. 32*6236dae4SAndroid Build Coastguard Worker# 33*6236dae4SAndroid Build Coastguard Worker 34*6236dae4SAndroid Build Coastguard Workerset -eu 35*6236dae4SAndroid Build Coastguard Worker 36*6236dae4SAndroid Build Coastguard Workertarball="${1:-}" 37*6236dae4SAndroid Build Coastguard Worker 38*6236dae4SAndroid Build Coastguard Workerif [ -z "$tarball" ]; then 39*6236dae4SAndroid Build Coastguard Worker echo "Provide a curl release tarball name as argument" 40*6236dae4SAndroid Build Coastguard Worker exit 41*6236dae4SAndroid Build Coastguard Workerfi 42*6236dae4SAndroid Build Coastguard Worker 43*6236dae4SAndroid Build Coastguard Workeri="0" 44*6236dae4SAndroid Build Coastguard Worker 45*6236dae4SAndroid Build Coastguard Worker# shellcheck disable=SC2034 46*6236dae4SAndroid Build Coastguard Workerfor dl in curl-*; do 47*6236dae4SAndroid Build Coastguard Worker i=$((i + 1)) 48*6236dae4SAndroid Build Coastguard Workerdone 49*6236dae4SAndroid Build Coastguard Worker 50*6236dae4SAndroid Build Coastguard Workerif test "$i" -gt 1; then 51*6236dae4SAndroid Build Coastguard Worker echo "multiple curl-* entries found, disambiguate please" 52*6236dae4SAndroid Build Coastguard Worker exit 53*6236dae4SAndroid Build Coastguard Workerfi 54*6236dae4SAndroid Build Coastguard Worker 55*6236dae4SAndroid Build Coastguard Workermkdir -p _tarballs 56*6236dae4SAndroid Build Coastguard Workerrm -rf _tarballs/* 57*6236dae4SAndroid Build Coastguard Worker 58*6236dae4SAndroid Build Coastguard Worker# checksum the original tarball to compare with later 59*6236dae4SAndroid Build Coastguard Workersha256sum "$tarball" >_tarballs/checksum 60*6236dae4SAndroid Build Coastguard Worker 61*6236dae4SAndroid Build Coastguard Worker# extract the release contents 62*6236dae4SAndroid Build Coastguard Workertar xf "$tarball" 63*6236dae4SAndroid Build Coastguard Worker 64*6236dae4SAndroid Build Coastguard Workercurlver=$(grep '#define LIBCURL_VERSION ' curl-*/include/curl/curlver.h | sed 's/[^0-9.]//g') 65*6236dae4SAndroid Build Coastguard Worker 66*6236dae4SAndroid Build Coastguard Workerecho "version $curlver" 67*6236dae4SAndroid Build Coastguard Worker 68*6236dae4SAndroid Build Coastguard Workertimestamp=$(grep -Eo 'SOURCE_DATE_EPOCH=[0-9]*' curl-"$curlver"/docs/RELEASE-TOOLS.md | cut -d= -f2) 69*6236dae4SAndroid Build Coastguard Worker 70*6236dae4SAndroid Build Coastguard Workerpwd=$(pwd) 71*6236dae4SAndroid Build Coastguard Workercd "curl-$curlver" 72*6236dae4SAndroid Build Coastguard Worker./configure --without-ssl --without-libpsl 73*6236dae4SAndroid Build Coastguard Worker./scripts/dmaketgz "$curlver" "$timestamp" 74*6236dae4SAndroid Build Coastguard Worker 75*6236dae4SAndroid Build Coastguard Workermv curl-"$curlver"* ../_tarballs/ 76*6236dae4SAndroid Build Coastguard Workercd "$pwd" 77*6236dae4SAndroid Build Coastguard Workercd "_tarballs" 78*6236dae4SAndroid Build Coastguard Worker 79*6236dae4SAndroid Build Coastguard Worker# compare the new tarball against the original 80*6236dae4SAndroid Build Coastguard Workersha256sum -c checksum 81