wxWidgets/build/tools/release.sh
Vadim Zeitlin f2425c5cbd Check that no symlinks are included in the distribution archives
They're not handled by the current 7z version under MSW if the user
doesn't have administrative rights and, instead of dealing with this,
it's simpler to just never include any symlinks in the archives as we
don't really need them anyhow.

So add a check ensuring that no symlinks are included in the
distribution archives to avoid more problems such as the one fixed in
the parent commit in the future.
2022-04-21 01:08:43 +02:00

86 lines
2.0 KiB
Bash
Executable File

#!/bin/sh
#
# This is the official script used to make wxWidgets releases.
#
# We use the git export features to track which files should be included in the
# distribution and we don't need to maintain the list of them ourselves but we
# also don't run the risk of including anything unwanted.
#
# See docs/contributing/how-to-release.md for usage instructions.
version=$1
if [ -z "$version" ]; then
echo "Must specify the distribution version." >&2
exit 1
fi
root="$(readlink -f $(dirname $(readlink -f $0))/../..)"
cd "$root"
if ! git diff --quiet; then
echo "Working copy has modifications, commit or stash them." >&2
exit 2
fi
set -e
set -x
prefix=wxWidgets-$version
destdir="$root/distrib/release/$version"
cleanup() {
rm -rf $destdir/$prefix
}
trap cleanup INT TERM EXIT
cleanup
mkdir -p $destdir
# We use GNU tar -i option to allow successfully extracting files from several
# tar archives concatenated together, without it we'd have to pipe output of
# each git-archive separately.
(git archive --prefix=$prefix/ HEAD;
git submodule foreach --quiet "cd $root/\$path && git archive --prefix=$prefix/\$path/ HEAD") |
tar x -C $destdir -i
cd $destdir
# Check that there are no symlinks because we don't handle them correctly
# under MSW systems currently.
if ! find . -type l -exec false {} + -quit; then
set +x
echo 'There are unexpected symlinks in the source tree:' >&2
echo '' >& 2
find . -type l -fprint /dev/stderr
echo '' >& 2
echo 'Please remove them or fix #22271.' >&2
exit 2
fi
# Compile gettext catalogs.
make -C $prefix/locale -s MSGFMT=msgfmt allmo
tar cjf $prefix.tar.bz2 $prefix
cd $prefix
zip -q -r ../$prefix.zip .
7z a ../$prefix.7z . >/dev/null
7z a ../${prefix}-headers.7z include >/dev/null
# Build HTML documentation packages.
prefix_docs=$prefix-docs-html
cd "$root/docs/doxygen"
rm -rf out
./regen.sh html
cd out
mv html "$prefix_docs"
tar cjf "$destdir/$prefix_docs.tar.bz2" "$prefix_docs"
cd "$prefix_docs"
zip -q -r "$destdir/$prefix_docs.zip" .
cd "$root"
rm -rf "$root/docs/doxygen/out"