Merge pull request #905 from jcfr/update-imagefiles-utils-script

chore(imagesfiles): Refactor script introducing fetch_source function
This commit is contained in:
Matt McCormick
2025-09-10 14:39:43 -04:00
committed by GitHub
6 changed files with 76 additions and 79 deletions
+15 -23
View File
@@ -2,8 +2,11 @@
set -ex
MY_DIR=$(dirname "${BASH_SOURCE[0]}")
source $MY_DIR/utils.sh
# Get script directory
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
# Get build utilities
source $SCRIPT_DIR/utils.sh
#
# Function 'do_curl_build' and 'build_curl'
@@ -20,6 +23,7 @@ if [[ -z "${CURL_HASH}" ]]; then
exit 1
fi
CURL_ROOT="${CURL_VERSION}"
CURL_DOWNLOAD_URL=https://curl.haxx.se/download
function do_curl_build {
@@ -30,28 +34,16 @@ function do_curl_build {
make install > /dev/null
}
function build_curl {
local curl_fname=$1
check_var ${curl_fname}
local curl_sha256=$2
check_var ${curl_sha256}
check_var ${CURL_DOWNLOAD_URL}
curl --connect-timeout 30 \
--max-time 10 \
--retry 5 \
--retry-delay 10 \
--retry-max-time 30 \
-fsSLO ${CURL_DOWNLOAD_URL}/${curl_fname}.tar.gz
check_sha256sum ${curl_fname}.tar.gz ${curl_sha256}
tar -zxf ${curl_fname}.tar.gz
(cd curl-*/ && do_curl_build)
rm -rf curl-*
}
cd /usr/src
build_curl "${CURL_VERSION}" "${CURL_HASH}"
fetch_source "${CURL_ROOT}.tar.gz" "${CURL_DOWNLOAD_URL}"
check_sha256sum "${CURL_ROOT}.tar.gz" "${CURL_HASH}"
tar -zxf "${CURL_ROOT}.tar.gz"
pushd "${CURL_ROOT}"
do_curl_build
popd
rm -rf "${CURL_ROOT}" "${CURL_ROOT}.tar.gz"
(cat /etc/ld.so.conf.d/usr-local.conf 2> /dev/null | grep -q "^/usr/local/lib$") ||
echo '/usr/local/lib' >> /etc/ld.so.conf.d/usr-local.conf
+12 -17
View File
@@ -2,10 +2,12 @@
set -ex
if ! command -v curl &> /dev/null; then
echo >&2 'error: "curl" not found!'
exit 1
fi
# Get script directory
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
# Get build utilities
source $SCRIPT_DIR/utils.sh
if ! command -v tar &> /dev/null; then
echo >&2 'error: "tar" not found!'
@@ -23,27 +25,20 @@ ldconfig
cd /usr/src
url="https://mirrors.edge.kernel.org/pub/software/scm/git/git-${GIT_VERSION}.tar.gz"
echo "Downloading $url"
curl --connect-timeout 20 \
--max-time 10 \
--retry 5 \
--retry-delay 10 \
--retry-max-time 40 \
-# -LO $url
GIT_ROOT="git-${GIT_VERSION}"
GIT_DOWNLOAD_URL="https://mirrors.edge.kernel.org/pub/software/scm/git"
tar xvzf "git-${GIT_VERSION}.tar.gz" --no-same-owner
rm -f "git-${GIT_VERSION}.tar.gz"
fetch_source "${GIT_ROOT}.tar.gz" "${GIT_DOWNLOAD_URL}"
tar xvzf "${GIT_ROOT}.tar.gz" --no-same-owner
pushd "git-${GIT_VERSION}"
pushd "${GIT_ROOT}"
./configure --prefix=/usr/local --with-curl
make -j"$(nproc)"
make install
popd
rm -rf "${GIT_ROOT}" "${GIT_ROOT}.tar.gz"
ldconfig
rm -rf "git-${GIT_VERSION}"
# turn the detached message off
git config --global advice.detachedHead false
+14 -11
View File
@@ -10,6 +10,12 @@
set -e
set -o pipefail
# Get script directory
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
# Get build utilities
source $SCRIPT_DIR/utils.sh
PYTHON=python
while [ $# -gt 0 ]; do
case "$1" in
@@ -31,25 +37,22 @@ if [[ -z "${NINJA_VERSION}" ]]; then
fi
# Download
url="https://github.com/ninja-build/ninja/archive/v${NINJA_VERSION}.tar.gz"
NINJA_DOWNLOAD_URL="https://github.com/ninja-build/ninja/archive/"
NINJA_ROOT="v${NINJA_VERSION}"
curl --connect-timeout 30 \
--max-time 10 \
--retry 5 \
--retry-delay 10 \
--retry-max-time 30 \
-# -o ninja.tar.gz -LO "$url"
fetch_source "${NINJA_ROOT}.tar.gz" "${NINJA_DOWNLOAD_URL}"
mkdir ninja
tar -xzvf ./ninja.tar.gz --strip-components=1 -C ./ninja
# Since the archive name doesn't match the top-level directory, explicitly specify it.
mkdir -p "${NINJA_ROOT}"
tar xvzf "${NINJA_ROOT}.tar.gz" --strip-components=1 -C "${NINJA_ROOT}"
# Configure, build and install
pushd ./ninja
pushd "${NINJA_ROOT}"
echo "Configuring ninja using [$PYTHON]"
$PYTHON ./configure.py --bootstrap && ./ninja
cp ./ninja /usr/bin/
popd
# Clean
rm -rf ./ninja*
rm -rf "${NINJA_ROOT}" "${NINJA_ROOT}.tar.gz"
+7 -14
View File
@@ -39,8 +39,11 @@ while [ $# -gt 0 ]; do
shift
done
MY_DIR=$(dirname "${BASH_SOURCE[0]}")
source $MY_DIR/utils.sh
# Get script directory
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
# Get build utilities
source $SCRIPT_DIR/utils.sh
#
# Function 'do_openssl_build' and 'build_openssl'
@@ -84,13 +87,8 @@ function build_perl {
local perl_sha256=$2
check_var ${perl_sha256}
check_var ${PERL_DOWNLOAD_URL}
curl --connect-timeout 30 \
--max-time 10 \
--retry 5 \
--retry-delay 10 \
--retry-max-time 30 \
-fsSLO ${PERL_DOWNLOAD_URL}/${perl_fname}.tar.gz
fetch_source "${perl_fname}.tar.gz" "${PERL_DOWNLOAD_URL}"
check_sha256sum ${perl_fname}.tar.gz ${perl_sha256}
tar -xzf ${perl_fname}.tar.gz --no-same-owner
(cd ${perl_fname} && do_perl_build)
@@ -109,13 +107,8 @@ function build_openssl {
local openssl_sha256=$2
check_var ${openssl_sha256}
check_var ${OPENSSL_DOWNLOAD_URL}
curl --connect-timeout 30 \
--max-time 10 \
--retry 5 \
--retry-delay 10 \
--retry-max-time 30 \
-fsSLO ${OPENSSL_DOWNLOAD_URL}/${openssl_fname}.tar.gz
fetch_source "${openssl_fname}.tar.gz" "${OPENSSL_DOWNLOAD_URL}"
check_sha256sum ${openssl_fname}.tar.gz ${openssl_sha256}
tar -xzf ${openssl_fname}.tar.gz
(cd ${openssl_fname} && PATH=/opt/perl/bin:${PATH} do_openssl_build)
+11 -14
View File
@@ -3,6 +3,12 @@
set -ex
set -o pipefail
# Get script directory
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
# Get build utilities
source $SCRIPT_DIR/utils.sh
ARCH="x86_64"
while [ $# -gt 0 ]; do
@@ -18,11 +24,6 @@ while [ $# -gt 0 ]; do
shift
done
if ! command -v curl &> /dev/null; then
echo >&2 'error: "curl" not found!'
exit 1
fi
if ! command -v tar &> /dev/null; then
echo >&2 'error: "tar" not found!'
exit 1
@@ -35,16 +36,12 @@ fi
cd /usr/src
CMAKE_ROOT=cmake-${CMAKE_VERSION}-Centos5-${ARCH}
url=https://github.com/dockbuild/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_ROOT}.tar.gz
echo "Downloading $url"
curl --connect-timeout 30 \
--max-time 10 \
--retry 5 \
--retry-delay 10 \
--retry-max-time 30 \
-# -LO $url
CMAKE_ROOT=cmake-${CMAKE_VERSION}-linux-${ARCH}
CMAKE_DOWNLOAD_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}
echo "Downloading ${CMAKE_DOWNLOAD_URL}/${CMAKE_ROOT}.tar.gz"
fetch_source "${CMAKE_ROOT}.tar.gz" "${CMAKE_DOWNLOAD_URL}"
tar -xzvf "${CMAKE_ROOT}.tar.gz"
rm -f "${CMAKE_ROOT}.tar.gz"
+17
View File
@@ -22,3 +22,20 @@ function check_sha256sum {
rm -f ${fname}.sha256
}
function fetch_source {
if ! command -v curl &> /dev/null; then
echo >&2 'error: "curl" not found!'
exit 1
fi
local file=$1
check_var "${file}"
local url=$2
check_var "${url}"
curl --fail \
--location \
--silent \
--show-error \
--connect-timeout 30 --max-time 10 \
--retry 5 --retry-delay 10 --retry-max-time 30 \
-o "${file}" ${url}/${file}
}