dmaketgz: release tarball generation using docker

For easier reproducibility.

Mention using this script in RELEASE-PROCEDURE

Closes #13388
This commit is contained in:
Daniel Stenberg 2024-04-16 16:56:03 +02:00
parent dad126b840
commit d28f74913c
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
3 changed files with 55 additions and 4 deletions

View File

@ -23,9 +23,7 @@ in the source code repo
tag and we use underscores instead of dots in the version number. Make sure
the tag is GPG signed (using -s).
- run `./maketgz 7.34.0` to build the release tarballs. It is important that
you run this on a machine with the correct set of autotools etc installed as
this is what is shipped and used by most users on \*nix like systems.
- run `./scripts/dmaketgz 7.34.0` to build the release tarballs.
- push the git commits and the new tag

View File

@ -23,7 +23,8 @@
###########################################################################
EXTRA_DIST = coverage.sh completion.pl firefox-db2pem.sh checksrc.pl \
mk-ca-bundle.pl schemetable.c cd2nroff nroff2cd cdall cd2cd managen
mk-ca-bundle.pl schemetable.c cd2nroff nroff2cd cdall cd2cd managen \
dmaketgz
ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@
FISH_FUNCTIONS_DIR = @FISH_FUNCTIONS_DIR@

52
scripts/dmaketgz Executable file
View File

@ -0,0 +1,52 @@
#!/bin/sh
# docker-maketgz
#
#***************************************************************************
# _ _ ____ _
# 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
#
###########################################################################
version="${1:-}"
if [ -z "$version" ]; then
echo "Specify a version number!"
exit
fi
make distclean
docker build \
--build-arg SOURCE_DATE_EPOCH="$(date -u +%s)" \
--build-arg UID="$(id -u)" \
--build-arg GID="$(id -g)" \
-t curl/curl .
run="run --rm -it -u $(id -u):$(id -g) -v $(pwd):/usr/src -w /usr/src curl/curl"
# shellcheck disable=SC2086
# "Double quote to prevent globbing and word splitting" on the $run use below
docker $run autoreconf -fi
# shellcheck disable=SC2086
docker $run ./configure --without-ssl --without-libpsl
# shellcheck disable=SC2086
docker $run make -sj8
# shellcheck disable=SC2086
docker $run ./maketgz $version