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 tag and we use underscores instead of dots in the version number. Make sure
the tag is GPG signed (using -s). the tag is GPG signed (using -s).
- run `./maketgz 7.34.0` to build the release tarballs. It is important that - run `./scripts/dmaketgz 7.34.0` to build the release tarballs.
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.
- push the git commits and the new tag - 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 \ 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@ ZSH_FUNCTIONS_DIR = @ZSH_FUNCTIONS_DIR@
FISH_FUNCTIONS_DIR = @FISH_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