brew update tries to reinstall packages, and fails to do so

Created on 27 Mar 2017  ยท  5Comments  ยท  Source: Homebrew/brew

android-sdk has been moved to Homebrew-Cask so running brew update runs brew unlink android-sdk, brew prune and brew cask install android-sdk. It failed because of an issue that is probably unrelated to Homebrew itself but I don't think brew update should remove or reinstall any packages.

โžœ  ~ brew update
Updated 4 taps (caskroom/cask, caskroom/versions, homebrew/core, homebrew/versions).
==> New Formulae
alexjs                                                              fzy                                                                 streamlink                                                          write-good
==> Updated Formulae
ack                   bmake                 dpkg                  fq                    gotags                influxdb              libgosu               nspr                  pgrouting             shellcheck            tcpreplay             winetricks
archi-steam-farm      byobu                 ejabberd              geoserver             hashcat               jenkins               libtommath            paket                 pre-commit            sonar-scanner         telegraf              xmake
asn1c                 checkstyle            elm-format            gifcap                hunspell              kobalt                lldpd                 percona-server        purescript            statik                texmath               yaz
aws-sdk-cpp           convox                exercism              git โœ”                 idris                 ktmpl                 mingw-w64             [email protected]    pwntools              swiftformat           todoman               youtube-dl
b2-tools              coturn                fabio                 git-plus              imagemagick           lean-cli              mkvtoolnix            [email protected]    rtags                 tailor                vim โœ”
bash-git-prompt       davmail               fftw                  github-release        imagemagick@6         lft                   mobile-shell          percona-xtrabackup    ruby โœ”                talloc                webpack
==> Deleted Formulae
android-ndk                                  android-platform-tools                       android-sdk โœ”                                [email protected]                              hdf@4                                        [email protected]
==> android-sdk has been moved to Homebrew-Cask.
==> brew unlink android-sdk
Unlinking /usr/local/Cellar/android-sdk/24.4.1_1... 24 symlinks removed
==> brew prune
Pruned 0 symbolic links and 4 directories from /usr/local
==> brew cask install android-sdk
==> Caveats
We will install android-sdk-tools, platform-tools, and build-tools for you.
You can contol android sdk packages via sdkmanager command.

==> Downloading https://dl.google.com/android/repository/tools_r25.2.3-macosx.zip
######################################################################## 100.0%
==> Verifying checksum for Cask android-sdk
==> Symlinking Binary 'sdkmanager' to '/usr/local/bin/sdkmanager'
==> Symlinking Binary 'android' to '/usr/local/bin/android'
==> Symlinking Binary 'ddms' to '/usr/local/bin/ddms'
==> Symlinking Binary 'draw9patch' to '/usr/local/bin/draw9patch'
==> Symlinking Binary 'emulator' to '/usr/local/bin/emulator'
==> Symlinking Binary 'emulator64-arm' to '/usr/local/bin/emulator64-arm'
==> Symlinking Binary 'emulator-check' to '/usr/local/bin/emulator-check'
==> Symlinking Binary 'emulator64-mips' to '/usr/local/bin/emulator64-mips'
==> Symlinking Binary 'emulator64-x86' to '/usr/local/bin/emulator64-x86'
==> Symlinking Binary 'hierarchyviewer' to '/usr/local/bin/hierarchyviewer'
==> Symlinking Binary 'lint' to '/usr/local/bin/lint'
==> Symlinking Binary 'mksdcard' to '/usr/local/bin/mksdcard'
==> Symlinking Binary 'monitor' to '/usr/local/bin/monitor'
==> Symlinking Binary 'monkeyrunner' to '/usr/local/bin/monkeyrunner'
==> Symlinking Binary 'traceview' to '/usr/local/bin/traceview'
==> Warning: Failed to download any source lists!
==> Warning: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
==> Error: Failed to find package tools
==> Removing Binary symlink: '/usr/local/bin/sdkmanager'
==> Removing Binary symlink: '/usr/local/bin/android'
==> Removing Binary symlink: '/usr/local/bin/ddms'
==> Removing Binary symlink: '/usr/local/bin/draw9patch'
==> Removing Binary symlink: '/usr/local/bin/emulator'
==> Removing Binary symlink: '/usr/local/bin/emulator64-arm'
==> Removing Binary symlink: '/usr/local/bin/emulator-check'
==> Removing Binary symlink: '/usr/local/bin/emulator64-mips'
==> Removing Binary symlink: '/usr/local/bin/emulator64-x86'
==> Removing Binary symlink: '/usr/local/bin/hierarchyviewer'
==> Removing Binary symlink: '/usr/local/bin/lint'
==> Removing Binary symlink: '/usr/local/bin/mksdcard'
==> Removing Binary symlink: '/usr/local/bin/monitor'
==> Removing Binary symlink: '/usr/local/bin/monkeyrunner'
==> Removing Binary symlink: '/usr/local/bin/traceview'
Error: Command failed to execute!

==> Failed command:
/usr/local/Caskroom/android-sdk/25.2.3/tools/bin/sdkmanager tools platform-tools build-tools;25.0.2

==> Standard Output of failed command:


==> Standard Error of failed command:
Warning: Failed to download any source lists!
Warning: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Error: Failed to find package tools


==> Exit status of failed command:
#<Process::Status: pid 27469 exit 1>
Error: nothing to install
==> android-sdk has been moved to Homebrew-Cask.
The existing keg has been unlinked.
Please uninstall the formula when convenient by running:
  brew uninstall --force android-sdk

โžœ  ~ 
โžœ  ~ brew config
HOMEBREW_VERSION: 1.1.11
ORIGIN: https://github.com/Homebrew/brew.git
HEAD: 394f9fa0aaa5854aa52bc589708a079665dcf462
Last commit: 3 weeks ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 3b7de77e71aa73205d0c0bf6eeff2d38b8b47d2f
Core tap last commit: 71 minutes ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_REPOSITORY: /usr/local/Homebrew
HOMEBREW_CELLAR: /usr/local/Cellar
HOMEBREW_BOTTLE_DOMAIN: https://homebrew.bintray.com
CPU: octa-core 64-bit haswell
Homebrew Ruby: 2.0.0-p648
Clang: 8.0 build 800
Git: 2.12.1 => /usr/local/bin/git
Perl: /usr/local/bin/perl => /usr/local/Cellar/perl/5.24.1/bin/perl
Python: /usr/local/bin/python => /usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/bin/python2.7
Ruby: /Users/ktombul/.rbenv/shims/ruby => /Users/ktombul/.rbenv/versions/2.0.0-p598/bin/ruby
Java: 1.8.0_31
macOS: 10.12.3-x86_64
Xcode: 8.2.1
CLT: N/A
X11: N/A
โžœ  ~ 
โžœ  ~ brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!

Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run `brew link` on these:
  android-sdk
โžœ  ~

All 5 comments

It failed because of an issue that is probably unrelated to Homebrew itself but I don't think brew update should remove or reinstall any packages.

Sorry, we disagree. Please file an issue with https://github.com/caskroom/homebrew-cask if you wish to install the Android SDK. Also, please fill out the issue template in future.

This broke my installation too. Can you say why you disagree? It doesn't seem like you should uninstall a bunch of tools and then reinstall a bunch of tools unrelated to the original. The least you could do is prompt if I wan't to install something other than the original.

This broke my installation too.

This doesn't tell us anything we need to debug the problem.

Can you say why you disagree?

brew update is the only place that makes sense to perform migrations like this.

It doesn't seem like you should uninstall a bunch of tools

We should as they are no longer supported or maintained by us and may have security vulnerabilities which is why we migrate you to another package.

and then reinstall a bunch of tools unrelated to the original.

We don't do that. They are very much related.

The least you could do is prompt if I wan't to install something other than the original.

No, the least we can do is nothing as you're using software we provide you for free that's produced mostly in our free time.

All the ๐Ÿ‘Žs don't incentivise me to help any of you or work on this problem.

There are two different packages Google distributes in relation to Android:

  • Platform-tools

    • adb
    • dmtracedump
    • etc1tool
    • fastboot
    • hprof-conv
    • sqlite3
  • Build-tools

    • android
    • ddms
    • draw9patch
    • emulator
    • hierarchyviewer
    • jobb
    • lint
    • mksdcard
    • monitor
    • monkeyrunner
    • screenshot2
    • traceview
    • uiautomatorviewer

So lets break down your responses:

brew update is the only place that makes sense to perform migrations like this.

Why would anyone want to make this migration from one set of tools (platform-tools) to another (build-tools) that have no overlap or common functionality?

We should as they are no longer supported or maintained by us and may have security vulnerabilities which is why we migrate you to another package.

Why not migrate us to the latest version of platform tools as distributed by google? Or are they distributing security vulnerabilities. Seems very un-Google.

We don't do that. They are very much related.

You do. The two packages have no overlap.

No, the least we can do is nothing as you're using software we provide you for free that's produced mostly in our free time.

There is nothing that I appreciate than time everyone contributes to open source. However this feels like a careless change. Furthermore your first response is probably what provoked the community's response of ๐Ÿ‘Ž. The first bullet in your Code of Conduct is openness and when you reply with "Sorry, we disagree." without elaborating pushes your community away.

However this feels like a careless change.

We will agree to disagree.

Was this page helpful?
0 / 5 - 0 ratings