Skip to content

brew upgrade fails if old version has formula dependencies that no longer exist #4482

@ilovezfs

Description

@ilovezfs
  • are reporting a bug others will be able to reproduce and not asking a question. If you're not sure or want to ask a question do so on our Discourse: https://discourse.brew.sh
  • ran a brew command and reproduced the problem with multiple formulae? If it's a problem with a single, official formula (not cask) please file this issue at Homebrew/homebrew-core: https://github.com/Homebrew/homebrew-core/issues/new/choose. If it's a brew cask problem please file this issue at https://github.com/Homebrew/homebrew-cask/issues/new/choose. If it's a tap (e.g. Homebrew/homebrew-php) problem please file this issue at the tap.
  • ran brew update and can still reproduce the problem?
  • ran brew doctor, fixed all issues and can still reproduce the problem?
  • ran brew config and brew doctor and included their output with your issue?

To help us debug your issue please explain:

  • What you were trying to do (and why)

Upgrade pyside from 1.2.2_1 -> 5.11.0 to reproduce the issue reported by a user here: Homebrew/homebrew-core#29699 (comment)

  • What happened (include command output)
iMac-TMP:~ joe$ brew upgrade -dv pyside
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/pyside.rb
==> Upgrading 1 outdated package, with result:
pyside 1.2.2_1 -> 5.11.0
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/cmake.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/sphinx-doc.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/llvm.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/libffi.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/python.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/pkg-config.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/gdbm.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/openssl.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/makedepend.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/readline.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/sqlite.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/xz.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/python@2.rb
/usr/local/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/qt.rb
Error: No available formula with the name "shiboken" (dependency of pyside)
/usr/local/Homebrew/Library/Homebrew/formulary.rb:246:in `get_formula'
/usr/local/Homebrew/Library/Homebrew/formulary.rb:275:in `factory'
/usr/local/Homebrew/Library/Homebrew/dependency.rb:35:in `to_formula'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:434:in `map'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:434:in `runtime_requirements'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:451:in `expand_requirements'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:391:in `compute_dependencies'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:139:in `verify_deps_exist'
/usr/local/Homebrew/Library/Homebrew/formula_installer.rb:132:in `prelude'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:143:in `upgrade_formula'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:98:in `block in upgrade'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:95:in `each'
/usr/local/Homebrew/Library/Homebrew/cmd/upgrade.rb:95:in `upgrade'
/usr/local/Homebrew/Library/Homebrew/brew.rb:100:in `<main>'
iMac-TMP:~ joe$ 
  • What you expected to happen

Upgrade to work.

  • Step-by-step reproduction instructions (by running brew commands)
git -C $(brew --repo) checkout 1.4.0
git -C $(brew --repo homebrew/core) checkout 0195d9b55a86da0^
brew install pyside
git -C $(brew --repo) checkout master
git -C $(brew --repo homebrew/core) checkout master
brew upgrade
iMac-TMP:~ joe$ brew config
HOMEBREW_VERSION: 1.6.17-21-g7cc3c2a
ORIGIN: https://github.com/Homebrew/brew
HEAD: 7cc3c2a8461bb8d39961c1dcf40b6321c1489e60
Last commit: 22 minutes ago
Core tap ORIGIN: https://github.com/Homebrew/homebrew-core
Core tap HEAD: 8a8877c90f1a4f4cd4f39b6e9f19c93cd1cdb456
Core tap last commit: 2 hours ago
HOMEBREW_PREFIX: /usr/local
HOMEBREW_DEVELOPER: 1
HOMEBREW_FORCE_VENDOR_RUBY: 1
HOMEBREW_GITHUB_API_TOKEN: set
HOMEBREW_MERGE: 1
HOMEBREW_NO_ANALYTICS: 1
HOMEBREW_NO_AUTO_UPDATE: 1
HOMEBREW_SANDBOX: 1
CPU: octa-core 64-bit skylake
Homebrew Ruby: 2.3.7 => /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/2.3.7/bin/ruby
Clang: 8.0 build 800
Git: 2.10.1 => /Applications/Xcode.app/Contents/Developer/usr/bin/git
Curl: 7.43.0 => /usr/bin/curl
Java: 10.0.1, 9.0.1, 1.8.0_152, 1.7.0_80
macOS: 10.11.6-x86_64
CLT: 8.2.0.0.1.1480973914
Xcode: 8.2.1
XQuartz: 2.7.11 => /opt/X11
iMac-TMP:~ joe$ 
iMac-TMP:~ joe$ 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 or file an issue; just ignore this. Thanks!

Warning: The filesystem on / appears to be case-sensitive.
The default macOS filesystem is case-insensitive. Please report any apparent problems.
iMac-TMP:~ joe$ 

Metadata

Metadata

Assignees

No one assigned

    Labels

    outdatedPR was locked due to age

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions