mirror of
https://github.com/git/git.git
synced 2024-05-11 08:56:09 +02:00
0eb3671ed9
The Azure Pipelines builds are failing for macOS due to a change in the location of the perforce cask. The command outputs the following error: + brew install caskroom/cask/perforce Error: caskroom/cask was moved. Tap homebrew/cask-cask instead. So let's try to call `brew cask install perforce` first (which is what that error message suggests, in a most round-about way). Prior to672f51cb
we used to install the 'perforce' package with 'brew install perforce' (note: no 'cask' in there). The justification for672f51cb
was that the command 'brew install perforce' simply stopped working, after Homebrew folks decided that it's better to move the 'perforce' package to a "cask". Their justification for this move was that 'brew install perforce' "can fail due to a checksum mismatch ...", and casks can be installed without checksum verification. And indeed, both 'brew cask install perforce' and 'brew install caskroom/cask/perforce' printed something along the lines of: ==> No checksum defined for Cask perforce, skipping verification It is unclear why672f51cb
used 'brew install caskroom/cask/perforce' instead of 'brew cask install perforce'. It appears (by running both commands on old Travis CI macOS images) that both commands worked all the same already back then. In any case, as the error message at the top of this commit message shows, 'brew install caskroom/cask/perforce' has stopped working recently, but 'brew cask install perforce' still does, so let's use that. CI servers are typically fresh virtual machines, but not always. To accommodate for that, let's try harder if `brew cask install perforce` fails, by specifically pulling the latest `master` of the `homebrew-cask` repository. This will still fail, of course, when `homebrew-cask` falls behind Perforce's release schedule. But once it is updated, we can now simply re-run the failed jobs and they will pick up that update. As for updating `homebrew-cask`: the beginnings of automating this in https://dev.azure.com/gitgitgadget/git/_build?definitionId=11&_a=summary will be finished once the next Perforce upgrade comes around. Helped-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
81 lines
2.1 KiB
Bash
Executable File
81 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Install dependencies required to build and test Git on Linux and macOS
|
|
#
|
|
|
|
. ${0%/*}/lib.sh
|
|
|
|
P4WHENCE=http://filehost.perforce.com/perforce/r$LINUX_P4_VERSION
|
|
LFSWHENCE=https://github.com/github/git-lfs/releases/download/v$LINUX_GIT_LFS_VERSION
|
|
|
|
case "$jobname" in
|
|
linux-clang|linux-gcc)
|
|
sudo apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
|
|
sudo apt-get -q update
|
|
sudo apt-get -q -y install language-pack-is libsvn-perl apache2
|
|
case "$jobname" in
|
|
linux-gcc)
|
|
sudo apt-get -q -y install gcc-8
|
|
;;
|
|
esac
|
|
|
|
mkdir --parents "$P4_PATH"
|
|
pushd "$P4_PATH"
|
|
wget --quiet "$P4WHENCE/bin.linux26x86_64/p4d"
|
|
wget --quiet "$P4WHENCE/bin.linux26x86_64/p4"
|
|
chmod u+x p4d
|
|
chmod u+x p4
|
|
popd
|
|
mkdir --parents "$GIT_LFS_PATH"
|
|
pushd "$GIT_LFS_PATH"
|
|
wget --quiet "$LFSWHENCE/git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz"
|
|
tar --extract --gunzip --file "git-lfs-linux-amd64-$LINUX_GIT_LFS_VERSION.tar.gz"
|
|
cp git-lfs-$LINUX_GIT_LFS_VERSION/git-lfs .
|
|
popd
|
|
;;
|
|
osx-clang|osx-gcc)
|
|
export HOMEBREW_NO_AUTO_UPDATE=1 HOMEBREW_NO_INSTALL_CLEANUP=1
|
|
# Uncomment this if you want to run perf tests:
|
|
# brew install gnu-time
|
|
test -z "$BREW_INSTALL_PACKAGES" ||
|
|
brew install $BREW_INSTALL_PACKAGES
|
|
brew link --force gettext
|
|
brew cask install perforce || {
|
|
# Update the definitions and try again
|
|
git -C "$(brew --repository)"/Library/Taps/homebrew/homebrew-cask pull &&
|
|
brew cask install perforce
|
|
} ||
|
|
brew install caskroom/cask/perforce
|
|
case "$jobname" in
|
|
osx-gcc)
|
|
brew link gcc@8
|
|
;;
|
|
esac
|
|
;;
|
|
StaticAnalysis)
|
|
sudo apt-get -q update
|
|
sudo apt-get -q -y install coccinelle libcurl4-openssl-dev libssl-dev \
|
|
libexpat-dev gettext
|
|
;;
|
|
Documentation)
|
|
sudo apt-get -q update
|
|
sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns
|
|
|
|
test -n "$ALREADY_HAVE_ASCIIDOCTOR" ||
|
|
gem install --version 1.5.8 asciidoctor
|
|
;;
|
|
esac
|
|
|
|
if type p4d >/dev/null && type p4 >/dev/null
|
|
then
|
|
echo "$(tput setaf 6)Perforce Server Version$(tput sgr0)"
|
|
p4d -V | grep Rev.
|
|
echo "$(tput setaf 6)Perforce Client Version$(tput sgr0)"
|
|
p4 -V | grep Rev.
|
|
fi
|
|
if type git-lfs >/dev/null
|
|
then
|
|
echo "$(tput setaf 6)Git-LFS Version$(tput sgr0)"
|
|
git-lfs version
|
|
fi
|