Make checksums for downloads mandatory
Use SKIP_CHECKSUM if you really want to avoid checksums.
This commit is contained in:
parent
87d45e68a8
commit
33e80f9944
@ -12,16 +12,20 @@ if [ `uname -o` = Android ]; then
|
|||||||
termux_error_exit "On-device builds are not supported - see README.md"
|
termux_error_exit "On-device builds are not supported - see README.md"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Utility function to download a resource, optionally checking against a checksum.
|
# Utility function to download a resource with an expected checksum.
|
||||||
termux_download() {
|
termux_download() {
|
||||||
|
if [ $# != 3 ]; then
|
||||||
|
termux_error_exit "termux_download(): Invalid arguments - expected \$URL \$DESTINATION \$CHECKSUM"
|
||||||
|
fi
|
||||||
local URL="$1"
|
local URL="$1"
|
||||||
local DESTINATION="$2"
|
local DESTINATION="$2"
|
||||||
|
local CHECKSUM="$3"
|
||||||
|
|
||||||
if [ -f "$DESTINATION" ] && [ $# = 3 ] && [ -n "$3" ]; then
|
if [ -f "$DESTINATION" ] && [ "$CHECKSUM" != "SKIP_CHECKSUM" ]; then
|
||||||
# Keep existing file if checksum matches.
|
# Keep existing file if checksum matches.
|
||||||
local EXISTING_CHECKSUM
|
local EXISTING_CHECKSUM
|
||||||
EXISTING_CHECKSUM=$(sha256sum "$DESTINATION" | cut -f 1 -d ' ')
|
EXISTING_CHECKSUM=$(sha256sum "$DESTINATION" | cut -f 1 -d ' ')
|
||||||
if [ "$EXISTING_CHECKSUM" = "$3" ]; then return; fi
|
if [ "$EXISTING_CHECKSUM" = "$CHECKSUM" ]; then return; fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local TMPFILE
|
local TMPFILE
|
||||||
@ -32,16 +36,14 @@ termux_download() {
|
|||||||
if curl -L --fail --retry 2 -o "$TMPFILE" "$URL"; then
|
if curl -L --fail --retry 2 -o "$TMPFILE" "$URL"; then
|
||||||
local ACTUAL_CHECKSUM
|
local ACTUAL_CHECKSUM
|
||||||
ACTUAL_CHECKSUM=$(sha256sum "$TMPFILE" | cut -f 1 -d ' ')
|
ACTUAL_CHECKSUM=$(sha256sum "$TMPFILE" | cut -f 1 -d ' ')
|
||||||
if [ $# = 3 ] && [ -n "$3" ]; then
|
if [ "$CHECKSUM" != "SKIP_CHECKSUM" ]; then
|
||||||
# Optional checksum argument:
|
if [ "$CHECKSUM" != "$ACTUAL_CHECKSUM" ]; then
|
||||||
local EXPECTED=$3
|
|
||||||
if [ "$EXPECTED" != "$ACTUAL_CHECKSUM" ]; then
|
|
||||||
>&2 printf "Wrong checksum for %s:\nExpected: %s\nActual: %s\n" \
|
>&2 printf "Wrong checksum for %s:\nExpected: %s\nActual: %s\n" \
|
||||||
"$URL" "$EXPECTED" "$ACTUAL_CHECKSUM"
|
"$URL" "$CHECKSUM" "$ACTUAL_CHECKSUM"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
printf "No validation of checksum for %s:\nActual: %s\n" \
|
printf "WARNING: No checksum check for %s:\nActual: %s\n" \
|
||||||
"$URL" "$ACTUAL_CHECKSUM"
|
"$URL" "$ACTUAL_CHECKSUM"
|
||||||
fi
|
fi
|
||||||
mv "$TMPFILE" "$DESTINATION"
|
mv "$TMPFILE" "$DESTINATION"
|
||||||
|
@ -17,17 +17,20 @@ termux_step_make_install () {
|
|||||||
SYSTEM_CORE_INCLUDE_TARFILE=$TERMUX_PKG_CACHEDIR/system_core_include_${_TAGNAME}.tar.gz
|
SYSTEM_CORE_INCLUDE_TARFILE=$TERMUX_PKG_CACHEDIR/system_core_include_${_TAGNAME}.tar.gz
|
||||||
test ! -f $SYSTEM_CORE_INCLUDE_TARFILE && termux_download \
|
test ! -f $SYSTEM_CORE_INCLUDE_TARFILE && termux_download \
|
||||||
"https://android.googlesource.com/platform/system/core/+archive/android-$_TAGNAME/include.tar.gz" \
|
"https://android.googlesource.com/platform/system/core/+archive/android-$_TAGNAME/include.tar.gz" \
|
||||||
$SYSTEM_CORE_INCLUDE_TARFILE
|
$SYSTEM_CORE_INCLUDE_TARFILE \
|
||||||
|
SKIP_CHECKSUM
|
||||||
|
|
||||||
ANDROIDFW_INCLUDE_TARFILE=$TERMUX_PKG_CACHEDIR/androidfw_include_${_TAGNAME}.tar.gz
|
ANDROIDFW_INCLUDE_TARFILE=$TERMUX_PKG_CACHEDIR/androidfw_include_${_TAGNAME}.tar.gz
|
||||||
test ! -f $ANDROIDFW_INCLUDE_TARFILE && termux_download \
|
test ! -f $ANDROIDFW_INCLUDE_TARFILE && termux_download \
|
||||||
"https://android.googlesource.com/platform/frameworks/base/+archive/android-$_TAGNAME/include/androidfw.tar.gz" \
|
"https://android.googlesource.com/platform/frameworks/base/+archive/android-$_TAGNAME/include/androidfw.tar.gz" \
|
||||||
$ANDROIDFW_INCLUDE_TARFILE
|
$ANDROIDFW_INCLUDE_TARFILE \
|
||||||
|
SKIP_CHECKSUM
|
||||||
|
|
||||||
ANDROID_BASE_INCLUDE_TARFILE=$TERMUX_PKG_CACHEDIR/android_base_include_${_TAGNAME}.tar.gz
|
ANDROID_BASE_INCLUDE_TARFILE=$TERMUX_PKG_CACHEDIR/android_base_include_${_TAGNAME}.tar.gz
|
||||||
test ! -f $ANDROID_BASE_INCLUDE_TARFILE && termux_download \
|
test ! -f $ANDROID_BASE_INCLUDE_TARFILE && termux_download \
|
||||||
"https://android.googlesource.com/platform/system/core/+archive/android-$_TAGNAME/base/include/android-base.tar.gz" \
|
"https://android.googlesource.com/platform/system/core/+archive/android-$_TAGNAME/base/include/android-base.tar.gz" \
|
||||||
$ANDROID_BASE_INCLUDE_TARFILE
|
$ANDROID_BASE_INCLUDE_TARFILE \
|
||||||
|
SKIP_CHECKSUM
|
||||||
|
|
||||||
local AOSP_INCLUDE_DIR=$TERMUX_PREFIX/include/aosp
|
local AOSP_INCLUDE_DIR=$TERMUX_PREFIX/include/aosp
|
||||||
mkdir -p $AOSP_INCLUDE_DIR
|
mkdir -p $AOSP_INCLUDE_DIR
|
||||||
@ -50,7 +53,8 @@ termux_step_make_install () {
|
|||||||
LIBCUTILS_TARFILE=$TERMUX_PKG_CACHEDIR/libcutils_${_TAGNAME}.tar.gz
|
LIBCUTILS_TARFILE=$TERMUX_PKG_CACHEDIR/libcutils_${_TAGNAME}.tar.gz
|
||||||
test ! -f $LIBCUTILS_TARFILE && termux_download \
|
test ! -f $LIBCUTILS_TARFILE && termux_download \
|
||||||
"https://android.googlesource.com/platform/system/core/+archive/android-$_TAGNAME/libcutils.tar.gz" \
|
"https://android.googlesource.com/platform/system/core/+archive/android-$_TAGNAME/libcutils.tar.gz" \
|
||||||
$LIBCUTILS_TARFILE
|
$LIBCUTILS_TARFILE \
|
||||||
|
SKIP_CHECKSUM
|
||||||
tar xf $LIBCUTILS_TARFILE
|
tar xf $LIBCUTILS_TARFILE
|
||||||
patch -p0 < $TERMUX_PKG_BUILDER_DIR/libcutils-patch.txt
|
patch -p0 < $TERMUX_PKG_BUILDER_DIR/libcutils-patch.txt
|
||||||
$CXX $CXXFLAGS -isystem $AOSP_INCLUDE_DIR -c -o sockets.o sockets.cpp
|
$CXX $CXXFLAGS -isystem $AOSP_INCLUDE_DIR -c -o sockets.o sockets.cpp
|
||||||
@ -113,12 +117,14 @@ termux_step_make_install () {
|
|||||||
local LIBUTILS_TARFILE=$TERMUX_PKG_CACHEDIR/libutils_${_TAGNAME}.tar.gz
|
local LIBUTILS_TARFILE=$TERMUX_PKG_CACHEDIR/libutils_${_TAGNAME}.tar.gz
|
||||||
test ! -f $LIBUTILS_TARFILE && termux_download \
|
test ! -f $LIBUTILS_TARFILE && termux_download \
|
||||||
"https://android.googlesource.com/platform/system/core/+archive/android-$_TAGNAME/libutils.tar.gz" \
|
"https://android.googlesource.com/platform/system/core/+archive/android-$_TAGNAME/libutils.tar.gz" \
|
||||||
$LIBUTILS_TARFILE
|
$LIBUTILS_TARFILE \
|
||||||
|
SKIP_CHECKSUM
|
||||||
|
|
||||||
local SAFE_IOP_TARFILE=$TERMUX_PKG_CACHEDIR/safe_iop.tar.gz
|
local SAFE_IOP_TARFILE=$TERMUX_PKG_CACHEDIR/safe_iop.tar.gz
|
||||||
test ! -f $SAFE_IOP_TARFILE && termux_download \
|
test ! -f $SAFE_IOP_TARFILE && termux_download \
|
||||||
https://android.googlesource.com/platform/external/safe-iop/+archive/cd76f998688d145235de78ecd5b340d0eac9239d.tar.gz \
|
https://android.googlesource.com/platform/external/safe-iop/+archive/cd76f998688d145235de78ecd5b340d0eac9239d.tar.gz \
|
||||||
$SAFE_IOP_TARFILE
|
$SAFE_IOP_TARFILE \
|
||||||
|
SKIP_CHECKSUM
|
||||||
local SAFE_IOP_DIR=$TERMUX_PKG_TMPDIR/safe-iop
|
local SAFE_IOP_DIR=$TERMUX_PKG_TMPDIR/safe-iop
|
||||||
mkdir -p $SAFE_IOP_DIR
|
mkdir -p $SAFE_IOP_DIR
|
||||||
cd $SAFE_IOP_DIR
|
cd $SAFE_IOP_DIR
|
||||||
@ -170,7 +176,8 @@ termux_step_make_install () {
|
|||||||
local LIBBASE_TARFILE=$TERMUX_PKG_CACHEDIR/libbase_${_TAGNAME}.tar.gz
|
local LIBBASE_TARFILE=$TERMUX_PKG_CACHEDIR/libbase_${_TAGNAME}.tar.gz
|
||||||
test ! -f $LIBBASE_TARFILE && termux_download \
|
test ! -f $LIBBASE_TARFILE && termux_download \
|
||||||
"https://android.googlesource.com/platform/system/core/+archive/android-${_TAGNAME}/base.tar.gz" \
|
"https://android.googlesource.com/platform/system/core/+archive/android-${_TAGNAME}/base.tar.gz" \
|
||||||
$LIBBASE_TARFILE
|
$LIBBASE_TARFILE \
|
||||||
|
SKIP_CHECKSUM
|
||||||
mkdir -p $TERMUX_PKG_SRCDIR/libbase
|
mkdir -p $TERMUX_PKG_SRCDIR/libbase
|
||||||
cd $TERMUX_PKG_SRCDIR/libbase
|
cd $TERMUX_PKG_SRCDIR/libbase
|
||||||
tar xf $LIBBASE_TARFILE
|
tar xf $LIBBASE_TARFILE
|
||||||
@ -202,7 +209,8 @@ termux_step_make_install () {
|
|||||||
LIBZIPARCHIVE_TARFILE=$TERMUX_PKG_CACHEDIR/libziparchive_${_TAGNAME}.tar.gz
|
LIBZIPARCHIVE_TARFILE=$TERMUX_PKG_CACHEDIR/libziparchive_${_TAGNAME}.tar.gz
|
||||||
test ! -f $LIBZIPARCHIVE_TARFILE && termux_download \
|
test ! -f $LIBZIPARCHIVE_TARFILE && termux_download \
|
||||||
"https://android.googlesource.com/platform/system/core/+archive/android-$_TAGNAME/libziparchive.tar.gz" \
|
"https://android.googlesource.com/platform/system/core/+archive/android-$_TAGNAME/libziparchive.tar.gz" \
|
||||||
$LIBZIPARCHIVE_TARFILE
|
$LIBZIPARCHIVE_TARFILE \
|
||||||
|
SKIP_CHECKSUM
|
||||||
mkdir -p $TERMUX_PKG_SRCDIR/libziparchive
|
mkdir -p $TERMUX_PKG_SRCDIR/libziparchive
|
||||||
cd $TERMUX_PKG_SRCDIR/libziparchive
|
cd $TERMUX_PKG_SRCDIR/libziparchive
|
||||||
tar xf $LIBZIPARCHIVE_TARFILE
|
tar xf $LIBZIPARCHIVE_TARFILE
|
||||||
@ -228,7 +236,8 @@ termux_step_make_install () {
|
|||||||
ANDROIDFW_TARFILE=$TERMUX_PKG_CACHEDIR/androidfw_${_TAGNAME}.tar.gz
|
ANDROIDFW_TARFILE=$TERMUX_PKG_CACHEDIR/androidfw_${_TAGNAME}.tar.gz
|
||||||
test ! -f $ANDROIDFW_TARFILE && termux_download \
|
test ! -f $ANDROIDFW_TARFILE && termux_download \
|
||||||
https://android.googlesource.com/platform/frameworks/base/+archive/android-$_TAGNAME/libs/androidfw.tar.gz \
|
https://android.googlesource.com/platform/frameworks/base/+archive/android-$_TAGNAME/libs/androidfw.tar.gz \
|
||||||
$ANDROIDFW_TARFILE
|
$ANDROIDFW_TARFILE \
|
||||||
|
SKIP_CHECKSUM
|
||||||
mkdir -p $TERMUX_PKG_SRCDIR/androidfw
|
mkdir -p $TERMUX_PKG_SRCDIR/androidfw
|
||||||
cd $TERMUX_PKG_SRCDIR/androidfw
|
cd $TERMUX_PKG_SRCDIR/androidfw
|
||||||
tar xf $ANDROIDFW_TARFILE
|
tar xf $ANDROIDFW_TARFILE
|
||||||
@ -261,7 +270,8 @@ termux_step_make_install () {
|
|||||||
AAPT_TARFILE=$TERMUX_PKG_CACHEDIR/aapt_${_TAGNAME}.tar.gz
|
AAPT_TARFILE=$TERMUX_PKG_CACHEDIR/aapt_${_TAGNAME}.tar.gz
|
||||||
test ! -f $AAPT_TARFILE && termux_download \
|
test ! -f $AAPT_TARFILE && termux_download \
|
||||||
"https://android.googlesource.com/platform/frameworks/base/+archive/android-$_TAGNAME/tools/aapt.tar.gz" \
|
"https://android.googlesource.com/platform/frameworks/base/+archive/android-$_TAGNAME/tools/aapt.tar.gz" \
|
||||||
$AAPT_TARFILE
|
$AAPT_TARFILE \
|
||||||
|
SKIP_CHECKSUM
|
||||||
mkdir $TERMUX_PKG_SRCDIR/aapt
|
mkdir $TERMUX_PKG_SRCDIR/aapt
|
||||||
cd $TERMUX_PKG_SRCDIR/aapt
|
cd $TERMUX_PKG_SRCDIR/aapt
|
||||||
tar xf $AAPT_TARFILE
|
tar xf $AAPT_TARFILE
|
||||||
@ -286,7 +296,8 @@ termux_step_make_install () {
|
|||||||
ZIPALIGN_TARFILE=$TERMUX_PKG_CACHEDIR/zipalign_${_TAGNAME}.tar.gz
|
ZIPALIGN_TARFILE=$TERMUX_PKG_CACHEDIR/zipalign_${_TAGNAME}.tar.gz
|
||||||
test ! -f $ZIPALIGN_TARFILE && termux_download \
|
test ! -f $ZIPALIGN_TARFILE && termux_download \
|
||||||
"https://android.googlesource.com/platform/build.git/+archive/android-$_TAGNAME/tools/zipalign.tar.gz" \
|
"https://android.googlesource.com/platform/build.git/+archive/android-$_TAGNAME/tools/zipalign.tar.gz" \
|
||||||
$ZIPALIGN_TARFILE
|
$ZIPALIGN_TARFILE \
|
||||||
|
SKIP_CHECKSUM
|
||||||
mkdir $TERMUX_PKG_SRCDIR/zipalign
|
mkdir $TERMUX_PKG_SRCDIR/zipalign
|
||||||
cd $TERMUX_PKG_SRCDIR/zipalign
|
cd $TERMUX_PKG_SRCDIR/zipalign
|
||||||
tar xf $ZIPALIGN_TARFILE
|
tar xf $ZIPALIGN_TARFILE
|
||||||
|
Loading…
Reference in New Issue
Block a user