git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / Atom feed
* [PATCH 0/1] ci: update caskroom/cask/perforce to new location
@ 2019-10-15 17:32 Derrick Stolee via GitGitGadget
  2019-10-15 17:32 ` [PATCH 1/1] ci(osx): use new location of the `perforce` cask Johannes Schindelin via GitGitGadget
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Derrick Stolee via GitGitGadget @ 2019-10-15 17:32 UTC (permalink / raw)
  To: git; +Cc: johannes.schindelin, Derrick Stolee, Junio C Hamano

Running CI on Mac OS X in Azure Pipelines is currently broken due to a moved
homebrew package.

Thanks, -Stolee

Johannes Schindelin (1):
  ci(osx): use new location of the `perforce` cask

 ci/install-dependencies.sh | 1 +
 1 file changed, 1 insertion(+)


base-commit: 108b97dc372828f0e72e56bbb40cae8e1e83ece6
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-400%2Fderrickstolee%2Fci-caskroom-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-400/derrickstolee/ci-caskroom-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/400
-- 
gitgitgadget

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 1/1] ci(osx): use new location of the `perforce` cask
  2019-10-15 17:32 [PATCH 0/1] ci: update caskroom/cask/perforce to new location Derrick Stolee via GitGitGadget
@ 2019-10-15 17:32 ` Johannes Schindelin via GitGitGadget
  2019-10-17 10:22 ` [PATCH 0/1] ci: update caskroom/cask/perforce to new location Johannes Schindelin
  2019-10-17 12:47 ` [PATCH v2 " Derrick Stolee via GitGitGadget
  2 siblings, 0 replies; 16+ messages in thread
From: Johannes Schindelin via GitGitGadget @ 2019-10-15 17:32 UTC (permalink / raw)
  To: git
  Cc: johannes.schindelin, Derrick Stolee, Junio C Hamano, Johannes Schindelin

From: Johannes Schindelin <johannes.schindelin@gmx.de>

The CI builds are failing for Mac OS X 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.

Preface the "brew install caskroom/cask/perforce" with the old
way of installing perforce, and only try this method if the
"brew install perforce" fails.

The existing way to use caskroom was added in 672f51cb (travis-ci:
fix Perforce install on macOS, 2017-01-22) and the justification
is that the "brew install perforce" can fail due to a hash
mis-match. The mismatch is due to the official Perforce distro
updating the published binaries without updating the version
string. CI servers are typically fresh virtual machines, so that
issue should not arise in automated builds.

Even if a build server is re-used and hits the hash mis-match,
it will fall back to the "new" mechanism which is currently
failing, but may be fixed independently of this change.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
---
 ci/install-dependencies.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index 85a9d6b15c..489b5dcf17 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -40,6 +40,7 @@ osx-clang|osx-gcc)
 	test -z "$BREW_INSTALL_PACKAGES" ||
 	brew install $BREW_INSTALL_PACKAGES
 	brew link --force gettext
+	brew cask install perforce ||
 	brew install caskroom/cask/perforce
 	case "$jobname" in
 	osx-gcc)
-- 
gitgitgadget

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/1] ci: update caskroom/cask/perforce to new location
  2019-10-15 17:32 [PATCH 0/1] ci: update caskroom/cask/perforce to new location Derrick Stolee via GitGitGadget
  2019-10-15 17:32 ` [PATCH 1/1] ci(osx): use new location of the `perforce` cask Johannes Schindelin via GitGitGadget
@ 2019-10-17 10:22 ` Johannes Schindelin
  2019-10-17 12:47 ` [PATCH v2 " Derrick Stolee via GitGitGadget
  2 siblings, 0 replies; 16+ messages in thread
From: Johannes Schindelin @ 2019-10-17 10:22 UTC (permalink / raw)
  To: Derrick Stolee via GitGitGadget; +Cc: git, Derrick Stolee, Junio C Hamano

Hi Stolee,

On Tue, 15 Oct 2019, Derrick Stolee via GitGitGadget wrote:

> Running CI on Mac OS X in Azure Pipelines is currently broken due to a moved
> homebrew package.

It seems that the exact problem we tried to avoid by staying on caskroom
rears its ugly head: all of the macOS jobs are failing in Git for
Windows' builds (but not in GitGitGadget's, which is probably due to
differences in the "up to date"-ness used build agents).

I am investigating here:
https://github.com/git-for-windows/git/pull/2359

Ciao,
Dscho

>
> Thanks, -Stolee
>
> Johannes Schindelin (1):
>   ci(osx): use new location of the `perforce` cask
>
>  ci/install-dependencies.sh | 1 +
>  1 file changed, 1 insertion(+)
>
>
> base-commit: 108b97dc372828f0e72e56bbb40cae8e1e83ece6
> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-400%2Fderrickstolee%2Fci-caskroom-v1
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-400/derrickstolee/ci-caskroom-v1
> Pull-Request: https://github.com/gitgitgadget/git/pull/400
> --
> gitgitgadget
>
>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 0/1] ci: update caskroom/cask/perforce to new location
  2019-10-15 17:32 [PATCH 0/1] ci: update caskroom/cask/perforce to new location Derrick Stolee via GitGitGadget
  2019-10-15 17:32 ` [PATCH 1/1] ci(osx): use new location of the `perforce` cask Johannes Schindelin via GitGitGadget
  2019-10-17 10:22 ` [PATCH 0/1] ci: update caskroom/cask/perforce to new location Johannes Schindelin
@ 2019-10-17 12:47 ` " Derrick Stolee via GitGitGadget
  2019-10-17 12:47   ` [PATCH v2 1/1] ci(osx): use new location of the `perforce` cask Johannes Schindelin via GitGitGadget
  2019-10-23  0:19   ` [PATCH v3 0/1] ci: update caskroom/cask/perforce to new location Derrick Stolee via GitGitGadget
  2 siblings, 2 replies; 16+ messages in thread
From: Derrick Stolee via GitGitGadget @ 2019-10-17 12:47 UTC (permalink / raw)
  To: git; +Cc: johannes.schindelin, Derrick Stolee, Junio C Hamano

Running CI on Mac OS X in Azure Pipelines is currently broken due to a moved
homebrew package.

Updates in V2: Johannes helped to make the step even more robust.

Thanks, -Stolee

Johannes Schindelin (1):
  ci(osx): use new location of the `perforce` cask

 ci/install-dependencies.sh | 5 +++++
 1 file changed, 5 insertions(+)


base-commit: 108b97dc372828f0e72e56bbb40cae8e1e83ece6
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-400%2Fderrickstolee%2Fci-caskroom-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-400/derrickstolee/ci-caskroom-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/400

Range-diff vs v1:

 1:  84830d89eb ! 1:  372ab24acf ci(osx): use new location of the `perforce` cask
     @@ -9,21 +9,27 @@
              + brew install caskroom/cask/perforce
              Error: caskroom/cask was moved. Tap homebrew/cask-cask instead.
      
     -    Preface the "brew install caskroom/cask/perforce" with the old
     -    way of installing perforce, and only try this method if the
     -    "brew install perforce" fails.
     +    So let's try to call `brew cask install perforce` first (which is what
     +    that error message suggests, in a most round-about way).
      
     -    The existing way to use caskroom was added in 672f51cb (travis-ci:
     +    The "caskroom" way was added in 672f51cb (travis-ci:
          fix Perforce install on macOS, 2017-01-22) and the justification
     -    is that the "brew install perforce" can fail due to a hash
     -    mis-match. The mismatch is due to the official Perforce distro
     -    updating the published binaries without updating the version
     -    string. CI servers are typically fresh virtual machines, so that
     -    issue should not arise in automated builds.
     +    is that the call "brew cask install perforce" can fail due to a checksum
     +    mismatch: the recipe simply downloads the official Perforce distro, and
     +    whenever that is updated, the recipe needs to be updated, too.
      
     -    Even if a build server is re-used and hits the hash mis-match,
     -    it will fall back to the "new" mechanism which is currently
     -    failing, but may be fixed independently of this change.
     +    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.
      
          Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
          Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
     @@ -35,7 +41,11 @@
       	test -z "$BREW_INSTALL_PACKAGES" ||
       	brew install $BREW_INSTALL_PACKAGES
       	brew link --force gettext
     -+	brew cask install perforce ||
     ++	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)

-- 
gitgitgadget

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 1/1] ci(osx): use new location of the `perforce` cask
  2019-10-17 12:47 ` [PATCH v2 " Derrick Stolee via GitGitGadget
@ 2019-10-17 12:47   ` Johannes Schindelin via GitGitGadget
  2019-10-18 10:51     ` SZEDER Gábor
  2019-10-23  0:19   ` [PATCH v3 0/1] ci: update caskroom/cask/perforce to new location Derrick Stolee via GitGitGadget
  1 sibling, 1 reply; 16+ messages in thread
From: Johannes Schindelin via GitGitGadget @ 2019-10-17 12:47 UTC (permalink / raw)
  To: git
  Cc: johannes.schindelin, Derrick Stolee, Junio C Hamano, Johannes Schindelin

From: Johannes Schindelin <johannes.schindelin@gmx.de>

The CI builds are failing for Mac OS X 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).

The "caskroom" way was added in 672f51cb (travis-ci:
fix Perforce install on macOS, 2017-01-22) and the justification
is that the call "brew cask install perforce" can fail due to a checksum
mismatch: the recipe simply downloads the official Perforce distro, and
whenever that is updated, the recipe needs to be updated, too.

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.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
---
 ci/install-dependencies.sh | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index 85a9d6b15c..ce149ed39c 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -40,6 +40,11 @@ osx-clang|osx-gcc)
 	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)
-- 
gitgitgadget

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 1/1] ci(osx): use new location of the `perforce` cask
  2019-10-17 12:47   ` [PATCH v2 1/1] ci(osx): use new location of the `perforce` cask Johannes Schindelin via GitGitGadget
@ 2019-10-18 10:51     ` SZEDER Gábor
  2019-10-21  2:21       ` Junio C Hamano
  2019-10-22 23:23       ` Johannes Schindelin
  0 siblings, 2 replies; 16+ messages in thread
From: SZEDER Gábor @ 2019-10-18 10:51 UTC (permalink / raw)
  To: Johannes Schindelin via GitGitGadget
  Cc: git, johannes.schindelin, Derrick Stolee, Junio C Hamano

On Thu, Oct 17, 2019 at 12:47:33PM +0000, Johannes Schindelin via GitGitGadget wrote:
> From: Johannes Schindelin <johannes.schindelin@gmx.de>
> 
> The CI builds are failing for Mac OS X due to a change in the

s/CI/Azure Pipelines/

Our Travis CI builds are fine.

> 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).
> 
> The "caskroom" way was added in 672f51cb (travis-ci:
> fix Perforce install on macOS, 2017-01-22) and the justification
> is that the call "brew cask install perforce" can fail due to a checksum
> mismatch: the recipe simply downloads the official Perforce distro, and
> whenever that is updated, the recipe needs to be updated, too.

This paragraph is wrong, it mixes up things too much.

Prior to 672f51cb we used to install the 'perforce' _package_ with
'brew install perforce' (note: no 'cask' in there).  The justification
for 672f51cb 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".  It was _their_ justification for
this move 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's unclear to me why 672f51cb 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.

Anyway, as the error message at the top of the log message shows,
'brew install caskroom/cask/perforce' has stopped working recently,
but 'brew cask install perforce' still does, so let's use that.

Note that on Travis CI we explicitly specify which macOS image to use,
and nowadays we don't run 'brew update' during the build process [1],
so both commands work in our builds there.

[1] f2f4715033 (ci: don't update Homebrew, 2019-07-03)

> 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.

Homebrew didn't record a checksum for Perforce versions r17.1, r17.2
and r18.1, so installing those still works fine.  Our Travis CI images
install r18.1.

However, when Homebrew updated to Perforce r19.1, they included the
checksum again for some reason (intentional or accidental; I didn't
look why).  This worked fine for a while, until a couple of days ago
Perforce updated the r19.1 binaries in place, breaking those
checksums.

If we were to still run 'brew update', then it would shortly fix the
checksum mismatch.  But we don't run it, and we do not want to run it
because it takes ages.  Falling back to pull from the 'homebrew-cask'
repository could be a reasonable and quick workaround.

> 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.

In our CI builds we don't at all care what the checksums of the
Perforce binaries are, so I would really like to tell 'brew' to ignore
any checksum mismatch when installing 'perforce'.  Alas, it appears
that 'brew' has no public options to turn of or to ignore checksum
verification.

Now, let's take a step back.

All 'brew cask install perforce' really does is run 'curl' to download
a tar.gz from the Perforce servers, verify its checksum, unpack it,
and put the executables somewhere on $PATH.  That's not rocket
science, we could easily do that ourselves; we don't even have to deal
with a tar.gz, the 'p4' and 'p4d' binaries for mac are readily
available for download at:

  http://filehost.perforce.com/perforce/r19.1/bin.macosx1010x86_64/

And, in fact, that's what we have been doing in some of our Linux jobs
since the very beginning, so basically only the download URL has to be
adjusted.


> 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.
> 
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
> ---
>  ci/install-dependencies.sh | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
> index 85a9d6b15c..ce149ed39c 100755
> --- a/ci/install-dependencies.sh
> +++ b/ci/install-dependencies.sh
> @@ -40,6 +40,11 @@ osx-clang|osx-gcc)
>  	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)
> -- 
> gitgitgadget

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 1/1] ci(osx): use new location of the `perforce` cask
  2019-10-18 10:51     ` SZEDER Gábor
@ 2019-10-21  2:21       ` Junio C Hamano
  2019-10-22 23:28         ` Johannes Schindelin
  2019-10-22 23:23       ` Johannes Schindelin
  1 sibling, 1 reply; 16+ messages in thread
From: Junio C Hamano @ 2019-10-21  2:21 UTC (permalink / raw)
  To: SZEDER Gábor
  Cc: Johannes Schindelin via GitGitGadget, git, johannes.schindelin,
	Derrick Stolee

SZEDER Gábor <szeder.dev@gmail.com> writes:

> On Thu, Oct 17, 2019 at 12:47:33PM +0000, Johannes Schindelin via GitGitGadget wrote:
>> From: Johannes Schindelin <johannes.schindelin@gmx.de>
>> 
>> The CI builds are failing for Mac OS X due to a change in the
>
> s/CI/Azure Pipelines/
>
> Our Travis CI builds are fine.
>
>> 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).
>> 
>> The "caskroom" way was added in 672f51cb (travis-ci:
>> fix Perforce install on macOS, 2017-01-22) and the justification
>> is that the call "brew cask install perforce" can fail due to a checksum
>> mismatch: the recipe simply downloads the official Perforce distro, and
>> whenever that is updated, the recipe needs to be updated, too.
>
> This paragraph is wrong, it mixes up things too much.
>
> Prior to 672f51cb we used to install the 'perforce' _package_ with
> 'brew install perforce' (note: no 'cask' in there).  The justification
> for 672f51cb 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".  It was _their_ justification for
> this move 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's unclear to me why 672f51cb 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.
>
> Anyway, as the error message at the top of the log message shows,
> 'brew install caskroom/cask/perforce' has stopped working recently,
> but 'brew cask install perforce' still does, so let's use that.
>
> Note that on Travis CI we explicitly specify which macOS image to use,
> and nowadays we don't run 'brew update' during the build process [1],
> so both commands work in our builds there.
> ...
> Now, let's take a step back.
> 
> All 'brew cask install perforce' really does is ...
> ... in fact, that's what we have been doing in some of our Linux jobs
> since the very beginning, so basically only the download URL has to be
> adjusted.

This is already in 'next' X-<; reverting a merge is cheap but I
prefer to do so when we already have a replacement.

Thanks for taking a closer look.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 1/1] ci(osx): use new location of the `perforce` cask
  2019-10-18 10:51     ` SZEDER Gábor
  2019-10-21  2:21       ` Junio C Hamano
@ 2019-10-22 23:23       ` Johannes Schindelin
  2019-10-23  0:26         ` SZEDER Gábor
  1 sibling, 1 reply; 16+ messages in thread
From: Johannes Schindelin @ 2019-10-22 23:23 UTC (permalink / raw)
  To: SZEDER Gábor
  Cc: Johannes Schindelin via GitGitGadget, git, Derrick Stolee,
	Junio C Hamano

[-- Attachment #1: Type: text/plain, Size: 6575 bytes --]

Hi Gábor,

On Fri, 18 Oct 2019, SZEDER Gábor wrote:

> On Thu, Oct 17, 2019 at 12:47:33PM +0000, Johannes Schindelin via GitGitGadget wrote:
> > From: Johannes Schindelin <johannes.schindelin@gmx.de>
> >
> > The CI builds are failing for Mac OS X due to a change in the
>
> s/CI/Azure Pipelines/
>
> Our Travis CI builds are fine.

For the moment ;-)

> > 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).
> >
> > The "caskroom" way was added in 672f51cb (travis-ci:
> > fix Perforce install on macOS, 2017-01-22) and the justification
> > is that the call "brew cask install perforce" can fail due to a checksum
> > mismatch: the recipe simply downloads the official Perforce distro, and
> > whenever that is updated, the recipe needs to be updated, too.
>
> This paragraph is wrong, it mixes up things too much.
>
> Prior to 672f51cb we used to install the 'perforce' _package_ with
> 'brew install perforce' (note: no 'cask' in there).  The justification
> for 672f51cb 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".  It was _their_ justification for
> this move 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's unclear to me why 672f51cb 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.
>
> Anyway, as the error message at the top of the log message shows,
> 'brew install caskroom/cask/perforce' has stopped working recently,
> but 'brew cask install perforce' still does, so let's use that.

If you don't mind, I am going to copy/edit these three paragraphs into
the commit message,

> Note that on Travis CI we explicitly specify which macOS image to use,
> and nowadays we don't run 'brew update' during the build process [1],
> so both commands work in our builds there.
>
> [1] f2f4715033 (ci: don't update Homebrew, 2019-07-03)
>
> > 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.
>
> Homebrew didn't record a checksum for Perforce versions r17.1, r17.2
> and r18.1, so installing those still works fine.  Our Travis CI images
> install r18.1.
>
> However, when Homebrew updated to Perforce r19.1, they included the
> checksum again for some reason (intentional or accidental; I didn't
> look why).  This worked fine for a while, until a couple of days ago
> Perforce updated the r19.1 binaries in place, breaking those
> checksums.
>
> If we were to still run 'brew update', then it would shortly fix the
> checksum mismatch.  But we don't run it, and we do not want to run it
> because it takes ages.  Falling back to pull from the 'homebrew-cask'
> repository could be a reasonable and quick workaround.

Okay, good.

> > 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.
>
> In our CI builds we don't at all care what the checksums of the
> Perforce binaries are, so I would really like to tell 'brew' to ignore
> any checksum mismatch when installing 'perforce'.  Alas, it appears
> that 'brew' has no public options to turn of or to ignore checksum
> verification.

Sad, yet true, that we indeed have no command-line option to say "you
know what, your checksum possibly mismatches, but we really don't care".

> Now, let's take a step back.
>
> All 'brew cask install perforce' really does is run 'curl' to download
> a tar.gz from the Perforce servers, verify its checksum, unpack it,
> and put the executables somewhere on $PATH.  That's not rocket
> science, we could easily do that ourselves; we don't even have to deal
> with a tar.gz, the 'p4' and 'p4d' binaries for mac are readily
> available for download at:
>
>   http://filehost.perforce.com/perforce/r19.1/bin.macosx1010x86_64/
>
> And, in fact, that's what we have been doing in some of our Linux jobs
> since the very beginning, so basically only the download URL has to be
> adjusted.

I'd rather not.

Just because there is no better way on Linux, and just because the
current `perforce` cask recipe happens to just download and unpack that
file does not mean that this won't change.

And if it changes, we will be a lot better off by using the provided
package.

As I wrote here:

> > 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.

I am quite willing to do my share to keep the Homebrew recipe for
`perforce` up to date. We'll all be better off that way.

Ciao,
Dscho

> >
> > Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> > Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
> > ---
> >  ci/install-dependencies.sh | 5 +++++
> >  1 file changed, 5 insertions(+)
> >
> > diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
> > index 85a9d6b15c..ce149ed39c 100755
> > --- a/ci/install-dependencies.sh
> > +++ b/ci/install-dependencies.sh
> > @@ -40,6 +40,11 @@ osx-clang|osx-gcc)
> >  	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)
> > --
> > gitgitgadget
>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 1/1] ci(osx): use new location of the `perforce` cask
  2019-10-21  2:21       ` Junio C Hamano
@ 2019-10-22 23:28         ` Johannes Schindelin
  2019-10-22 23:37           ` Junio C Hamano
  0 siblings, 1 reply; 16+ messages in thread
From: Johannes Schindelin @ 2019-10-22 23:28 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: SZEDER Gábor, Johannes Schindelin via GitGitGadget, git,
	Derrick Stolee

[-- Attachment #1: Type: text/plain, Size: 3469 bytes --]

Hi Junio,

On Mon, 21 Oct 2019, Junio C Hamano wrote:

> SZEDER Gábor <szeder.dev@gmail.com> writes:
>
> > On Thu, Oct 17, 2019 at 12:47:33PM +0000, Johannes Schindelin via GitGitGadget wrote:
> >> From: Johannes Schindelin <johannes.schindelin@gmx.de>
> >>
> >> The CI builds are failing for Mac OS X due to a change in the
> >
> > s/CI/Azure Pipelines/
> >
> > Our Travis CI builds are fine.
> >
> >> 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).
> >>
> >> The "caskroom" way was added in 672f51cb (travis-ci:
> >> fix Perforce install on macOS, 2017-01-22) and the justification
> >> is that the call "brew cask install perforce" can fail due to a checksum
> >> mismatch: the recipe simply downloads the official Perforce distro, and
> >> whenever that is updated, the recipe needs to be updated, too.
> >
> > This paragraph is wrong, it mixes up things too much.
> >
> > Prior to 672f51cb we used to install the 'perforce' _package_ with
> > 'brew install perforce' (note: no 'cask' in there).  The justification
> > for 672f51cb 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".  It was _their_ justification for
> > this move 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's unclear to me why 672f51cb 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.
> >
> > Anyway, as the error message at the top of the log message shows,
> > 'brew install caskroom/cask/perforce' has stopped working recently,
> > but 'brew cask install perforce' still does, so let's use that.
> >
> > Note that on Travis CI we explicitly specify which macOS image to use,
> > and nowadays we don't run 'brew update' during the build process [1],
> > so both commands work in our builds there.
> > ...
> > Now, let's take a step back.
> >
> > All 'brew cask install perforce' really does is ...
> > ... in fact, that's what we have been doing in some of our Linux jobs
> > since the very beginning, so basically only the download URL has to be
> > adjusted.
>
> This is already in 'next' X-<; reverting a merge is cheap but I
> prefer to do so when we already have a replacement.

I force-pushed (see https://github.com/gitgitgadget/git/pull/400), and
once Stolee approves, he will submit v3. This will only change the
commit message, though, as I disagree that hard-coding the URL would be
an improvement: the nice thing about a package management system is that
the user does not need to know the details (or need to know if the
details change, like, ever).

Ciao,
Dscho

>
> Thanks for taking a closer look.
>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 1/1] ci(osx): use new location of the `perforce` cask
  2019-10-22 23:28         ` Johannes Schindelin
@ 2019-10-22 23:37           ` Junio C Hamano
  0 siblings, 0 replies; 16+ messages in thread
From: Junio C Hamano @ 2019-10-22 23:37 UTC (permalink / raw)
  To: Johannes Schindelin
  Cc: SZEDER Gábor, Johannes Schindelin via GitGitGadget, git,
	Derrick Stolee

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

>> This is already in 'next' X-<; reverting a merge is cheap but I
>> prefer to do so when we already have a replacement.
>
> I force-pushed (see https://github.com/gitgitgadget/git/pull/400), and
> once Stolee approves, he will submit v3. This will only change the
> commit message, though, as I disagree that hard-coding the URL would be
> an improvement: the nice thing about a package management system is that
> the user does not need to know the details (or need to know if the
> details change, like, ever).

If this were meant for the upcoming release, I would rather see us
copy a butt-ugly-but-known-working procedure if we have one this
close to -rc1.  If the hard-coded URL ever changes, the procedure
we would be copying from would be broken anyway.

But I agree 100% that we should take a conceptually cleaner approach
for the longer term.  Let's replace the original one with this and
cook in 'next'---it would be ideal if the ugly-but-know-working one
be updated to match in the meantime, but if it is bypassing package
management for a reason (the upstream just publishes the URL to
download from without packaging it properly, for example?), that
would not be possible, and it is OK if that is the case.

Thanks.




^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v3 0/1] ci: update caskroom/cask/perforce to new location
  2019-10-17 12:47 ` [PATCH v2 " Derrick Stolee via GitGitGadget
  2019-10-17 12:47   ` [PATCH v2 1/1] ci(osx): use new location of the `perforce` cask Johannes Schindelin via GitGitGadget
@ 2019-10-23  0:19   ` Derrick Stolee via GitGitGadget
  2019-10-23  0:19     ` [PATCH v3 1/1] ci(osx): use new location of the `perforce` cask Johannes Schindelin via GitGitGadget
  1 sibling, 1 reply; 16+ messages in thread
From: Derrick Stolee via GitGitGadget @ 2019-10-23  0:19 UTC (permalink / raw)
  To: git; +Cc: johannes.schindelin, Derrick Stolee, Junio C Hamano

Running CI on Mac OS X in Azure Pipelines is currently broken due to a moved
homebrew package.

Change since v2:

 * The commit message was improved (thanks Gábor).

Change since v1: -The step is now more robust (by pulling homebrew-cask and
trying again if the pull failed).

Thanks, -Stolee

Johannes Schindelin (1):
  ci(osx): use new location of the `perforce` cask

 ci/install-dependencies.sh | 5 +++++
 1 file changed, 5 insertions(+)


base-commit: 108b97dc372828f0e72e56bbb40cae8e1e83ece6
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-400%2Fderrickstolee%2Fci-caskroom-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-400/derrickstolee/ci-caskroom-v3
Pull-Request: https://github.com/gitgitgadget/git/pull/400

Range-diff vs v2:

 1:  372ab24acf ! 1:  9d80e845bf ci(osx): use new location of the `perforce` cask
     @@ -2,9 +2,8 @@
      
          ci(osx): use new location of the `perforce` cask
      
     -    The CI builds are failing for Mac OS X due to a change in the
     -    location of the perforce cask. The command outputs the following
     -    error:
     +    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.
     @@ -12,11 +11,27 @@
          So let's try to call `brew cask install perforce` first (which is what
          that error message suggests, in a most round-about way).
      
     -    The "caskroom" way was added in 672f51cb (travis-ci:
     -    fix Perforce install on macOS, 2017-01-22) and the justification
     -    is that the call "brew cask install perforce" can fail due to a checksum
     -    mismatch: the recipe simply downloads the official Perforce distro, and
     -    whenever that is updated, the recipe needs to be updated, too.
     +    Prior to 672f51cb we used to install the 'perforce' package with 'brew
     +    install perforce' (note: no 'cask' in there). The justification for
     +    672f51cb 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 why 672f51cb 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`
     @@ -31,6 +46,7 @@
          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>
      

-- 
gitgitgadget

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v3 1/1] ci(osx): use new location of the `perforce` cask
  2019-10-23  0:19   ` [PATCH v3 0/1] ci: update caskroom/cask/perforce to new location Derrick Stolee via GitGitGadget
@ 2019-10-23  0:19     ` Johannes Schindelin via GitGitGadget
  2019-10-23 10:05       ` Junio C Hamano
  0 siblings, 1 reply; 16+ messages in thread
From: Johannes Schindelin via GitGitGadget @ 2019-10-23  0:19 UTC (permalink / raw)
  To: git
  Cc: johannes.schindelin, Derrick Stolee, Junio C Hamano, Johannes Schindelin

From: Johannes Schindelin <johannes.schindelin@gmx.de>

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 to 672f51cb we used to install the 'perforce' package with 'brew
install perforce' (note: no 'cask' in there). The justification for
672f51cb 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 why 672f51cb 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>
---
 ci/install-dependencies.sh | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index 85a9d6b15c..ce149ed39c 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -40,6 +40,11 @@ osx-clang|osx-gcc)
 	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)
-- 
gitgitgadget

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 1/1] ci(osx): use new location of the `perforce` cask
  2019-10-22 23:23       ` Johannes Schindelin
@ 2019-10-23  0:26         ` SZEDER Gábor
  0 siblings, 0 replies; 16+ messages in thread
From: SZEDER Gábor @ 2019-10-23  0:26 UTC (permalink / raw)
  To: Johannes Schindelin
  Cc: Johannes Schindelin via GitGitGadget, git, Derrick Stolee,
	Junio C Hamano

On Wed, Oct 23, 2019 at 01:23:25AM +0200, Johannes Schindelin wrote:
> On Fri, 18 Oct 2019, SZEDER Gábor wrote:
> 
> > On Thu, Oct 17, 2019 at 12:47:33PM +0000, Johannes Schindelin via GitGitGadget wrote:
> > > From: Johannes Schindelin <johannes.schindelin@gmx.de>
> > >
> > > The CI builds are failing for Mac OS X due to a change in the
> >
> > s/CI/Azure Pipelines/
> >
> > Our Travis CI builds are fine.
> 
> For the moment ;-)

Touché.
Believe it or not, I did wrote "at least for now" at the end of that
sentence, but then deleted it.  Serves me right, now there is some new
breakage with gcc@8... :)

> If you don't mind, I am going to copy/edit these three paragraphs into
> the commit message,

Sure, go ahead.

> > In our CI builds we don't at all care what the checksums of the
> > Perforce binaries are, so I would really like to tell 'brew' to ignore
> > any checksum mismatch when installing 'perforce'.  Alas, it appears
> > that 'brew' has no public options to turn of or to ignore checksum
> > verification.
> 
> Sad, yet true, that we indeed have no command-line option to say "you
> know what, your checksum possibly mismatches, but we really don't care".

Actually, 'brew' does have some undocumented options, but I didn't
even bothered to check, because it's not really sensible to rely on an
undocumented option (especially when even the documented options break
every once in a while...).

> > Now, let's take a step back.
> >
> > All 'brew cask install perforce' really does is run 'curl' to download
> > a tar.gz from the Perforce servers, verify its checksum, unpack it,
> > and put the executables somewhere on $PATH.  That's not rocket
> > science, we could easily do that ourselves; we don't even have to deal
> > with a tar.gz, the 'p4' and 'p4d' binaries for mac are readily
> > available for download at:
> >
> >   http://filehost.perforce.com/perforce/r19.1/bin.macosx1010x86_64/
> >
> > And, in fact, that's what we have been doing in some of our Linux jobs
> > since the very beginning, so basically only the download URL has to be
> > adjusted.
> 
> I'd rather not.
> 
> Just because there is no better way on Linux, and just because the
> current `perforce` cask recipe happens to just download and unpack that
> file does not mean that this won't change.

Yeah, I'm fairly sure that the way Homebrew installs Perforce will
change, but if we download Perforce ourselves, then it won't matter at
all.

Downloading the Perforce binaries with 'wget' worked fairly well for
almost four years, except from that server glitch a couple of weeks
ago; I think downloading the macOS binaries from the same server would
work just as well.  OTOH, this is the fourth time that we have to
tweak how we install Perforce via Homebrew.

FWIW, it looks like this:

https://github.com/szeder/git/blob/ci-osx-wget-perforce/ci/install-dependencies.sh#L11

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v3 1/1] ci(osx): use new location of the `perforce` cask
  2019-10-23  0:19     ` [PATCH v3 1/1] ci(osx): use new location of the `perforce` cask Johannes Schindelin via GitGitGadget
@ 2019-10-23 10:05       ` Junio C Hamano
  2019-10-23 16:35         ` SZEDER Gábor
  0 siblings, 1 reply; 16+ messages in thread
From: Junio C Hamano @ 2019-10-23 10:05 UTC (permalink / raw)
  To: Johannes Schindelin via GitGitGadget
  Cc: git, johannes.schindelin, Derrick Stolee

"Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
writes:

> From: Johannes Schindelin <johannes.schindelin@gmx.de>
>
> 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.
> ...
> 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.

It appears that OSX jobs at Travis are getting hit by this issue.
Here is what our failed build ends with, for example:

    +brew install caskroom/cask/perforce
    Error: caskroom/cask was moved. Tap homebrew/cask-cask instead.

    cf. https://travis-ci.org/git/git/jobs/601697815

Today's 'pu' has this topic queued, and it seems to help even the
builds at Travis ('pu' seems to fail the test for totally different
reason, though):

    +brew link gcc@8
    Error: No such keg: /usr/local/Cellar/gcc@8

    cf. https://travis-ci.org/git/git/jobs/601697903

Thanks.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v3 1/1] ci(osx): use new location of the `perforce` cask
  2019-10-23 10:05       ` Junio C Hamano
@ 2019-10-23 16:35         ` SZEDER Gábor
  2019-10-24  0:20           ` [PATCH v2] ci: fix GCC install in the Travis CI GCC OSX job SZEDER Gábor
  0 siblings, 1 reply; 16+ messages in thread
From: SZEDER Gábor @ 2019-10-23 16:35 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: Johannes Schindelin via GitGitGadget, git, johannes.schindelin,
	Derrick Stolee

On Wed, Oct 23, 2019 at 07:05:04PM +0900, Junio C Hamano wrote:
> "Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
> writes:
> 
> > From: Johannes Schindelin <johannes.schindelin@gmx.de>
> >
> > 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.
> > ...
> > 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.
> 
> It appears that OSX jobs at Travis are getting hit by this issue.
> Here is what our failed build ends with, for example:
> 
>     +brew install caskroom/cask/perforce
>     Error: caskroom/cask was moved. Tap homebrew/cask-cask instead.
> 
>     cf. https://travis-ci.org/git/git/jobs/601697815
> 
> Today's 'pu' has this topic queued, and it seems to help even the
> builds at Travis ('pu' seems to fail the test for totally different
> reason, though):
> 
>     +brew link gcc@8
>     Error: No such keg: /usr/local/Cellar/gcc@8
> 
>     cf. https://travis-ci.org/git/git/jobs/601697903

Yeah, that's a new one, so we don't get too bored.  We'll need the
patch below as well:

 --- >8 ---

Subject: [PATCH] ci: fix GCC install in the GCC OSX job

A few days ago Travis CI updated their existing OSX images, including
the Homebrew database in the xcode10.1 OSX image that we use.  Since
then installing dependencies in the 'osx-gcc' job fails when it tries
to link gcc@8:

  + brew link gcc@8
  Error: No such keg: /usr/local/Cellar/gcc@8

Apparently 'brew link gcc' works, so let's do that then, and fall back
to linking gcc@8 if it doesn't.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
---
 ci/install-dependencies.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index ce149ed39c..4e64a19112 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -48,6 +48,7 @@ osx-clang|osx-gcc)
 	brew install caskroom/cask/perforce
 	case "$jobname" in
 	osx-gcc)
+		brew link gcc ||
 		brew link gcc@8
 		;;
 	esac
-- 
2.24.0.rc0.502.g7008375535


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2] ci: fix GCC install in the Travis CI GCC OSX job
  2019-10-23 16:35         ` SZEDER Gábor
@ 2019-10-24  0:20           ` SZEDER Gábor
  0 siblings, 0 replies; 16+ messages in thread
From: SZEDER Gábor @ 2019-10-24  0:20 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: Johannes Schindelin, Derrick Stolee, git, SZEDER Gábor

A few days ago Travis CI updated their existing OSX images, including
the Homebrew database in the xcode10.1 OSX image that we use.  Since
then installing dependencies in the 'osx-gcc' job fails when it tries
to link gcc@8:

  + brew link gcc@8
  Error: No such keg: /usr/local/Cellar/gcc@8

GCC8 is still installed but not linked to '/usr/local' in the updated
image, as it was before this update, but now we have to link it by
running 'brew link gcc'.  So let's do that then, and fall back to
linking gcc@8 if it doesn't, just to be sure.

Our builds on Azure Pipelines are unaffected by this issue.  The OSX
image over there doesn't contain the gcc@8 package, so we have to
'brew install' it, which already takes care of linking it to
'/usr/local'.  After that the 'brew link gcc' command added by this
patch fails, but the ||-chained fallback 'brew link gcc@8' command
succeeds with an "already linked" warning.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
---

Same patch, updated commit message.

 ci/install-dependencies.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index ce149ed39c..4e64a19112 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -48,6 +48,7 @@ osx-clang|osx-gcc)
 	brew install caskroom/cask/perforce
 	case "$jobname" in
 	osx-gcc)
+		brew link gcc ||
 		brew link gcc@8
 		;;
 	esac
-- 
2.24.0.rc0.502.g7008375535


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, back to index

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-15 17:32 [PATCH 0/1] ci: update caskroom/cask/perforce to new location Derrick Stolee via GitGitGadget
2019-10-15 17:32 ` [PATCH 1/1] ci(osx): use new location of the `perforce` cask Johannes Schindelin via GitGitGadget
2019-10-17 10:22 ` [PATCH 0/1] ci: update caskroom/cask/perforce to new location Johannes Schindelin
2019-10-17 12:47 ` [PATCH v2 " Derrick Stolee via GitGitGadget
2019-10-17 12:47   ` [PATCH v2 1/1] ci(osx): use new location of the `perforce` cask Johannes Schindelin via GitGitGadget
2019-10-18 10:51     ` SZEDER Gábor
2019-10-21  2:21       ` Junio C Hamano
2019-10-22 23:28         ` Johannes Schindelin
2019-10-22 23:37           ` Junio C Hamano
2019-10-22 23:23       ` Johannes Schindelin
2019-10-23  0:26         ` SZEDER Gábor
2019-10-23  0:19   ` [PATCH v3 0/1] ci: update caskroom/cask/perforce to new location Derrick Stolee via GitGitGadget
2019-10-23  0:19     ` [PATCH v3 1/1] ci(osx): use new location of the `perforce` cask Johannes Schindelin via GitGitGadget
2019-10-23 10:05       ` Junio C Hamano
2019-10-23 16:35         ` SZEDER Gábor
2019-10-24  0:20           ` [PATCH v2] ci: fix GCC install in the Travis CI GCC OSX job SZEDER Gábor

git@vger.kernel.org list mirror (unofficial, one of many)

Archives are clonable:
	git clone --mirror http://public-inbox.org/git
	git clone --mirror http://ou63pmih66umazou.onion/git
	git clone --mirror http://czquwvybam4bgbro.onion/git
	git clone --mirror http://hjrcffqmbrq6wope.onion/git

Example config snippet for mirrors

Newsgroups are available over NNTP:
	nntp://news.public-inbox.org/inbox.comp.version-control.git
	nntp://ou63pmih66umazou.onion/inbox.comp.version-control.git
	nntp://czquwvybam4bgbro.onion/inbox.comp.version-control.git
	nntp://hjrcffqmbrq6wope.onion/inbox.comp.version-control.git
	nntp://news.gmane.org/gmane.comp.version-control.git

 note: .onion URLs require Tor: https://www.torproject.org/

AGPL code for this site: git clone https://public-inbox.org/public-inbox.git