| #!/bin/sh | |
| #*************************************************************************** | |
| # _ _ ____ _ | |
| # Project ___| | | | _ \| | | |
| # / __| | | | |_) | | | |
| # | (__| |_| | _ <| |___ | |
| # \___|\___/|_| \_\_____| | |
| # | |
| # Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al. | |
| # | |
| # This software is licensed as described in the file COPYING, which | |
| # you should have received as part of this distribution. The terms | |
| # are also available at https://curl.se/docs/copyright.html. | |
| # | |
| # You may opt to use, copy, modify, merge, publish, distribute and/or sell | |
| # copies of the Software, and permit persons to whom the Software is | |
| # furnished to do so, under the terms of the COPYING file. | |
| # | |
| # This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | |
| # KIND, either express or implied. | |
| # | |
| # SPDX-License-Identifier: curl | |
| # | |
| ########################################################################### | |
| # This script remakes a provided curl release and verifies that the newly | |
| # built version is identical to the original file. | |
| # | |
| # It is designed to be invoked in a clean directory with the path to the | |
| # release tarball as an argument. | |
| # | |
| set -eu | |
| tarball="${1:-}" | |
| if [ -z "$tarball" ]; then | |
| echo "Provide a curl release tarball name as argument" | |
| exit | |
| fi | |
| i="0" | |
| # shellcheck disable=SC2034 | |
| for dl in curl-*; do | |
| i=$((i + 1)) | |
| done | |
| if test "$i" -gt 1; then | |
| echo "multiple curl-* entries found, disambiguate please" | |
| exit | |
| fi | |
| mkdir -p _tarballs | |
| rm -rf _tarballs/* | |
| # checksum the original tarball to compare with later | |
| sha256sum "$tarball" >_tarballs/checksum | |
| # extract the release contents | |
| tar xf "$tarball" | |
| curlver=$(grep '#define LIBCURL_VERSION ' curl-*/include/curl/curlver.h | sed 's/[^0-9.]//g') | |
| echo "version $curlver" | |
| timestamp=$(grep -Eo 'SOURCE_DATE_EPOCH=[0-9]*' curl-"$curlver"/docs/RELEASE-TOOLS.md | cut -d= -f2) | |
| pwd=$(pwd) | |
| cd "curl-$curlver" | |
| ./configure --without-ssl --without-libpsl | |
| ./scripts/dmaketgz "$curlver" "$timestamp" | |
| mv curl-"$curlver"* ../_tarballs/ | |
| cd "$pwd" | |
| cd "_tarballs" | |
| # compare the new tarball against the original | |
| sha256sum -c checksum |