mirror of
https://github.com/boostorg/utility.git
synced 2025-05-08 18:34:02 +00:00
Updated check for apt-add-repository capabilities.
In Ubuntu 20.04 there appeared an updated version of the software-properties-common package in focal-updates, which ships a newer apt-add-repository version that doesn't support -P/-S/-U command line arguments. Since we cannot rely on package version checks to determine apt-add-repository capabilities, we have to parse its --help output instead. Also, made source list processing more protected against spaces.
This commit is contained in:
parent
05e0d1688d
commit
fede5878c3
27
.github/workflows/ci.yml
vendored
27
.github/workflows/ci.yml
vendored
@ -253,7 +253,7 @@ jobs:
|
|||||||
if [ -f "/etc/debian_version" ]
|
if [ -f "/etc/debian_version" ]
|
||||||
then
|
then
|
||||||
apt-get -o Acquire::Retries=$NET_RETRY_COUNT update
|
apt-get -o Acquire::Retries=$NET_RETRY_COUNT update
|
||||||
apt-get -o Acquire::Retries=$NET_RETRY_COUNT install -y sudo software-properties-common tzdata wget curl apt-transport-https ca-certificates make build-essential g++ python python3 git cmake
|
apt-get -o Acquire::Retries=$NET_RETRY_COUNT install -y sudo software-properties-common tzdata wget curl apt-transport-https ca-certificates make build-essential g++ python python3 perl git cmake
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
git config --global pack.threads 0
|
git config --global pack.threads 0
|
||||||
@ -263,28 +263,32 @@ jobs:
|
|||||||
- name: Install packages
|
- name: Install packages
|
||||||
if: matrix.install
|
if: matrix.install
|
||||||
run: |
|
run: |
|
||||||
SOURCE_KEYS=(${{join(matrix.source_keys, ' ')}})
|
declare -a SOURCE_KEYS SOURCES
|
||||||
SOURCES=(${{join(matrix.sources, ' ')}})
|
if [ -n "${{join(matrix.source_keys, ' ')}}" ]
|
||||||
|
then
|
||||||
|
SOURCE_KEYS=("${{join(matrix.source_keys, '" "')}}")
|
||||||
|
fi
|
||||||
|
if [ -n "${{join(matrix.sources, ' ')}}" ]
|
||||||
|
then
|
||||||
|
SOURCES=("${{join(matrix.sources, '" "')}}")
|
||||||
|
fi
|
||||||
for key in "${SOURCE_KEYS[@]}"
|
for key in "${SOURCE_KEYS[@]}"
|
||||||
do
|
do
|
||||||
for i in {1..$NET_RETRY_COUNT}
|
for i in {1..$NET_RETRY_COUNT}
|
||||||
do
|
do
|
||||||
|
echo "Adding key: $key"
|
||||||
wget -O - "$key" | sudo apt-key add - && break || sleep 2
|
wget -O - "$key" | sudo apt-key add - && break || sleep 2
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
if [ ${#SOURCES[@]} -gt 0 ]
|
if [ ${#SOURCES[@]} -gt 0 ]
|
||||||
then
|
then
|
||||||
APT_ADD_REPO_COMMON_ARGS=("-y")
|
APT_ADD_REPO_COMMON_ARGS=("-y")
|
||||||
APT_ADD_REPO_HAS_SOURCE_ARGS=0
|
APT_ADD_REPO_SUPPORTED_ARGS="$(apt-add-repository --help | perl -ne 'if (/^\s*-n/) { print "n"; } elsif (/^\s*-P/) { print "P"; } elsif (/^\s*-S/) { print "S"; } elsif (/^\s*-U/) { print "U"; }')"
|
||||||
SOFTWARE_PROPERTIES_VERSION="$(dpkg-query --showformat='${Version}' --show software-properties-common)"
|
if [ -n "$APT_ADD_REPO_SUPPORTED_ARGS" -a -z "${APT_ADD_REPO_SUPPORTED_ARGS##*n*}" ]
|
||||||
if dpkg --compare-versions "$SOFTWARE_PROPERTIES_VERSION" ge "0.96.24.20"
|
|
||||||
then
|
then
|
||||||
APT_ADD_REPO_COMMON_ARGS+=("-n")
|
APT_ADD_REPO_COMMON_ARGS+=("-n")
|
||||||
fi
|
fi
|
||||||
if dpkg --compare-versions "$SOFTWARE_PROPERTIES_VERSION" ge "0.98.10"
|
APT_ADD_REPO_HAS_SOURCE_ARGS="$([ -n "$APT_ADD_REPO_SUPPORTED_ARGS" -a -z "${APT_ADD_REPO_SUPPORTED_ARGS##*P*}" -a -z "${APT_ADD_REPO_SUPPORTED_ARGS##*S*}" -a -z "${APT_ADD_REPO_SUPPORTED_ARGS##*U*}" ] && echo 1 || echo 0)"
|
||||||
then
|
|
||||||
APT_ADD_REPO_HAS_SOURCE_ARGS=1
|
|
||||||
fi
|
|
||||||
for source in "${SOURCES[@]}"
|
for source in "${SOURCES[@]}"
|
||||||
do
|
do
|
||||||
for i in {1..$NET_RETRY_COUNT}
|
for i in {1..$NET_RETRY_COUNT}
|
||||||
@ -305,6 +309,7 @@ jobs:
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
APT_ADD_REPO_ARGS+=("$source")
|
APT_ADD_REPO_ARGS+=("$source")
|
||||||
|
echo "apt-add-repository ${APT_ADD_REPO_ARGS[@]}"
|
||||||
sudo -E apt-add-repository "${APT_ADD_REPO_ARGS[@]}" && break || sleep 2
|
sudo -E apt-add-repository "${APT_ADD_REPO_ARGS[@]}" && break || sleep 2
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
@ -335,7 +340,7 @@ jobs:
|
|||||||
REF=${GITHUB_BASE_REF:-$GITHUB_REF}
|
REF=${GITHUB_BASE_REF:-$GITHUB_REF}
|
||||||
REF=${REF#refs/heads/}
|
REF=${REF#refs/heads/}
|
||||||
echo REF: $REF
|
echo REF: $REF
|
||||||
BOOST_BRANCH=develop && [ "$REF" == "master" ] && BOOST_BRANCH=master || true
|
BOOST_BRANCH=develop && [ "$REF" = "master" ] && BOOST_BRANCH=master || true
|
||||||
echo BOOST_BRANCH: $BOOST_BRANCH
|
echo BOOST_BRANCH: $BOOST_BRANCH
|
||||||
BUILD_JOBS=$((nproc || sysctl -n hw.ncpu) 2> /dev/null)
|
BUILD_JOBS=$((nproc || sysctl -n hw.ncpu) 2> /dev/null)
|
||||||
echo "BUILD_JOBS=$BUILD_JOBS" >> $GITHUB_ENV
|
echo "BUILD_JOBS=$BUILD_JOBS" >> $GITHUB_ENV
|
||||||
|
Loading…
x
Reference in New Issue
Block a user