Brew: Installing any package after cancelling patchelf installation fails with unexpected error

Created on 26 May 2020  ·  5Comments  ·  Source: Homebrew/brew

Please note we will close your issue without comment if you delete, do not read or do not fill out the issue checklist below and provide ALL the requested information. If you repeatedly fail to use the issue template, we will block you from ever submitting issues to Homebrew again.

  • [x] ran brew update and can still reproduce the problem?
  • [x] ran brew doctor, fixed all issues and can still reproduce the problem?
  • [x] ran brew config and brew doctor and included their output with your issue?

What you were trying to do (and why)

I was trying to install [email protected] on Linuxbrew. I had previously tried to repair my Linux install and probably pressed ^C at the step where patchelf was being installed. My assumption is that patchelf did not install properly.

What happened (include command output)

An unexpected error was visible in the logsfor almost every install: "Error: no implicit conversion of nil into String", and then it was trying to compile everything.


Command output

❯ brew install [email protected] --verbose --debug
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/gcc.rb
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/brew.rb (Formulary::FormulaLoader): loading /home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/patchelf.rb
==> Downloading https://linuxbrew.bintray.com/bottles/openssl%401.1-1.1.1g.x86_64_linux.bottle.tar.gz
/usr/bin/curl --disable --globoff --show-error --user-agent Linuxbrew/2.2.17-111-gbc882c6\ (Linux\;\ x86_64\ Ubuntu\ 20.04\ LTS)\ curl/7.68.0 --retry 3 --location --silent --head --request GET https://linuxbrew.bintray.com/bottles/openssl\%401.1-1.1.1g.x86_64_linux.bottle.tar.gz
Already downloaded: ~/.cache/Homebrew/downloads/153de442ec90385f73424f726565a84a3e05ae80c38a8cec71ec905b974e2685--openssl@1.1-1.1.1g.x86_64_linux.bottle.tar.gz
==> Verifying 153de442ec90385f73424f726565a84a3e05ae80c38a8cec71ec905b974e2685--openssl@1.1-1.1.1g.x86_64_linux.bottle.tar.gz checksum
==> Pouring [email protected]_64_linux.bottle.tar.gz
tar xof ~/.cache/Homebrew/downloads/153de442ec90385f73424f726565a84a3e05ae80c38a8cec71ec905b974e2685--openssl@1.1-1.1.1g.x86_64_linux.bottle.tar.gz -C /tmp/d20200526-1188262-10okx1j
cp -pR /tmp/d20200526-1188262-10okx1j/[email protected]/. /home/linuxbrew/.linuxbrew/Cellar/[email protected]
chmod -Rf +w /tmp/d20200526-1188262-10okx1j
Error: no implicit conversion of nil into String
Warning: Bottle installation failed: building from source.
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb (Formulary::FormulaLoader): loading /home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/gcc.rb
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb (Formulary::FormulaLoader): loading /home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/binutils.rb
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb (Formulary::FormulaLoader): loading /home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/make.rb
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb (Formulary::FormulaLoader): loading /home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/[email protected]
chmod -Rf +w /tmp/d20200526-1188986-10610dj
chmod -Rf +w /tmp/d20200526-1188986-1r3x59e
chmod -Rf +w /tmp/d20200526-1188986-kljcgp
/home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb (Formulary::FormulaLoader): loading /home/linuxbrew/.linuxbrew/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/perl.rb


What you expected to happen

A more descriptive error if patchelf was missing

Step-by-step reproduction instructions (by running brew commands)

brew remove patchelf
brew install patchelf # press Ctrl+C at some moment
brew install [email protected]

Output of brew config and brew doctor commands

❯ brew config
HOMEBREW_VERSION: 2.2.17-111-gbc882c6
ORIGIN: https://github.com/Homebrew/brew
HEAD: bc882c6c286e66a3db2c638e7908172284f2bc55
Last commit: 6 hours ago
Core tap ORIGIN: https://github.com/Homebrew/linuxbrew-core.git
Core tap HEAD: ed7e884033541c7896966d71730ed9d60557f1e8
Core tap last commit: 15 minutes ago
HOMEBREW_PREFIX: /home/linuxbrew/.linuxbrew
HOMEBREW_DISPLAY: :1
HOMEBREW_EDITOR: sensible-editor
HOMEBREW_MAKE_JOBS: 8
CPU: octa-core 64-bit skylake
Homebrew Ruby: 2.6.3 => /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/vendor/portable-ruby/2.6.3/bin/ruby
Clang: 10.0 build (parse error)
Git: 2.25.1 => /usr/bin/git
Curl: 7.68.0 => /usr/bin/curl
Kernel: Linux 5.4.0-31-generic x86_64 GNU/Linux
OS: Ubuntu 20.04 LTS (focal)
Host glibc: 2.31
/usr/bin/gcc: 9.3.0
glibc: N/A
gcc: N/A
xorg: 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 or file an issue; just ignore this. Thanks!

Warning: "config" scripts exist outside your system or Homebrew directories.
`./configure` scripts often look for *-config scripts to determine if
software packages are installed, and which additional flags to use when
compiling and linking.

Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew-provided
script of the same name. We found the following "config" scripts:
  /home/johannes/anaconda3/bin/libpng-config
  /home/johannes/anaconda3/bin/python3-config
  /home/johannes/anaconda3/bin/pcre-config
  /home/johannes/anaconda3/bin/python3.7-config
  /home/johannes/anaconda3/bin/ncursesw6-config
  /home/johannes/anaconda3/bin/freetype-config
  /home/johannes/anaconda3/bin/libpng16-config
  /home/johannes/anaconda3/bin/xslt-config
  /home/johannes/anaconda3/bin/icu-config
  /home/johannes/anaconda3/bin/python3.7m-config
  /home/johannes/anaconda3/bin/curl-config
  /home/johannes/anaconda3/bin/xml2-config
  /usr/local/bin/ansible-config
  /home/johannes/.local/bin/ansible-config

Warning: Unbrewed header files were found in /usr/local/include.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected header files:
  /usr/local/include/MQTTAsync.h
  /usr/local/include/MQTTClient.h
  /usr/local/include/MQTTClientPersistence.h
  /usr/local/include/MQTTProperties.h
  /usr/local/include/MQTTReasonCodes.h
  /usr/local/include/MQTTSubscribeOpts.h
  /usr/local/include/mbus/mbus-protocol-aux.h
  /usr/local/include/mbus/mbus-protocol.h
  /usr/local/include/mbus/mbus-serial.h
  /usr/local/include/mbus/mbus-tcp.h
  /usr/local/include/mbus/mbus.h
  /usr/local/include/modbus/modbus-rtu.h
  /usr/local/include/modbus/modbus-tcp.h
  /usr/local/include/modbus/modbus-version.h
  /usr/local/include/modbus/modbus.h
  /usr/local/include/mqtt/async_client.h
  /usr/local/include/mqtt/buffer_ref.h
  /usr/local/include/mqtt/buffer_view.h
  /usr/local/include/mqtt/callback.h
  /usr/local/include/mqtt/client.h
  /usr/local/include/mqtt/connect_options.h
  /usr/local/include/mqtt/delivery_token.h
  /usr/local/include/mqtt/disconnect_options.h
  /usr/local/include/mqtt/exception.h
  /usr/local/include/mqtt/iaction_listener.h
  /usr/local/include/mqtt/iasync_client.h
  /usr/local/include/mqtt/iclient_persistence.h
  /usr/local/include/mqtt/message.h
  /usr/local/include/mqtt/properties.h
  /usr/local/include/mqtt/response_options.h
  /usr/local/include/mqtt/server_response.h
  /usr/local/include/mqtt/ssl_options.h
  /usr/local/include/mqtt/string_collection.h
  /usr/local/include/mqtt/subscribe_options.h
  /usr/local/include/mqtt/thread_queue.h
  /usr/local/include/mqtt/token.h
  /usr/local/include/mqtt/topic.h
  /usr/local/include/mqtt/types.h
  /usr/local/include/mqtt/will_options.h
  /usr/local/include/node/libplatform/libplatform-export.h
  /usr/local/include/node/libplatform/libplatform.h
  /usr/local/include/node/libplatform/v8-tracing.h
  /usr/local/include/node/node.h
  /usr/local/include/node/node_api.h
  /usr/local/include/node/node_api_types.h
  /usr/local/include/node/node_buffer.h
  /usr/local/include/node/node_object_wrap.h
  /usr/local/include/node/node_version.h
  /usr/local/include/node/openssl/aes.h
  /usr/local/include/node/openssl/archs/BSD-x86_64/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/BSD-x86_64/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/BSD-x86_64/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/BSD-x86_64/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/BSD-x86_64/asm/include/progs.h
  /usr/local/include/node/openssl/archs/BSD-x86_64/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/BSD-x86_64/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/BSD-x86_64/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/BSD-x86_64/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/VC-WIN32/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/VC-WIN32/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/VC-WIN32/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/VC-WIN32/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/VC-WIN32/asm/include/progs.h
  /usr/local/include/node/openssl/archs/VC-WIN32/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/VC-WIN32/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/VC-WIN32/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/VC-WIN32/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/VC-WIN64A/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/VC-WIN64A/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/VC-WIN64A/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/VC-WIN64A/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/VC-WIN64A/asm/include/progs.h
  /usr/local/include/node/openssl/archs/VC-WIN64A/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/VC-WIN64A/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/VC-WIN64A/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/VC-WIN64A/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/aix-gcc/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/aix-gcc/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/aix-gcc/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/aix-gcc/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/aix-gcc/asm/include/progs.h
  /usr/local/include/node/openssl/archs/aix-gcc/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/aix-gcc/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/aix-gcc/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/aix-gcc/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/aix-gcc/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/aix64-gcc/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/aix64-gcc/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/aix64-gcc/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/aix64-gcc/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/aix64-gcc/asm/include/progs.h
  /usr/local/include/node/openssl/archs/aix64-gcc/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/aix64-gcc/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/aix64-gcc/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/aix64-gcc/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/aix64-gcc/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/darwin-i386-cc/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/darwin-i386-cc/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/darwin-i386-cc/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/darwin-i386-cc/asm/include/progs.h
  /usr/local/include/node/openssl/archs/darwin-i386-cc/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/darwin-i386-cc/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/darwin-i386-cc/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/darwin-i386-cc/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/darwin64-x86_64-cc/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/darwin64-x86_64-cc/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/darwin64-x86_64-cc/asm/include/progs.h
  /usr/local/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux-aarch64/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux-aarch64/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux-aarch64/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux-aarch64/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux-aarch64/asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux-aarch64/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux-aarch64/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux-aarch64/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux-aarch64/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux-armv4/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux-armv4/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux-armv4/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux-armv4/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux-armv4/asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux-armv4/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux-armv4/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux-armv4/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux-armv4/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux-armv4/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux-elf/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux-elf/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux-elf/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux-elf/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux-elf/asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux-elf/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux-elf/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux-elf/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux-elf/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux-elf/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux-ppc/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux-ppc/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux-ppc/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux-ppc/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux-ppc/asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux-ppc/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux-ppc/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux-ppc/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux-ppc/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux-ppc/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux-ppc64/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux-ppc64/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux-ppc64/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux-ppc64/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux-ppc64/asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux-ppc64/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux-ppc64/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux-ppc64/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux-ppc64/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux-ppc64/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux-ppc64le/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux-ppc64le/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux-ppc64le/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux-ppc64le/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux-ppc64le/asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux-ppc64le/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux-ppc64le/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux-ppc64le/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux-ppc64le/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux-x32/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux-x32/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux-x32/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux-x32/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux-x32/asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux-x32/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux-x32/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux-x32/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux-x32/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux-x32/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux-x86_64/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux-x86_64/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux-x86_64/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux-x86_64/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux-x86_64/asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux-x86_64/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux-x86_64/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux-x86_64/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux-x86_64/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux32-s390x/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux32-s390x/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux32-s390x/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux32-s390x/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux32-s390x/asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux32-s390x/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux32-s390x/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux32-s390x/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux32-s390x/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux64-s390x/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux64-s390x/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux64-s390x/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux64-s390x/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux64-s390x/asm/include/progs.h
  /usr/local/include/node/openssl/archs/linux64-s390x/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/linux64-s390x/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/linux64-s390x/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/linux64-s390x/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/solaris-x86-gcc/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/solaris-x86-gcc/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/solaris-x86-gcc/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/solaris-x86-gcc/asm/include/progs.h
  /usr/local/include/node/openssl/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/solaris-x86-gcc/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/solaris-x86-gcc/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/solaris-x86-gcc/no-asm/include/progs.h
  /usr/local/include/node/openssl/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/solaris64-x86_64-gcc/asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/solaris64-x86_64-gcc/asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/progs.h
  /usr/local/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h
  /usr/local/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/crypto/include/internal/bn_conf.h
  /usr/local/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/crypto/include/internal/dso_conf.h
  /usr/local/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/opensslconf.h
  /usr/local/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/progs.h
  /usr/local/include/node/openssl/asn1.h
  /usr/local/include/node/openssl/asn1_mac.h
  /usr/local/include/node/openssl/asn1t.h
  /usr/local/include/node/openssl/async.h
  /usr/local/include/node/openssl/bio.h
  /usr/local/include/node/openssl/blowfish.h
  /usr/local/include/node/openssl/bn.h
  /usr/local/include/node/openssl/bn_conf.h
  /usr/local/include/node/openssl/bn_conf_asm.h
  /usr/local/include/node/openssl/bn_conf_no-asm.h
  /usr/local/include/node/openssl/buffer.h
  /usr/local/include/node/openssl/camellia.h
  /usr/local/include/node/openssl/cast.h
  /usr/local/include/node/openssl/cmac.h
  /usr/local/include/node/openssl/cms.h
  /usr/local/include/node/openssl/comp.h
  /usr/local/include/node/openssl/conf.h
  /usr/local/include/node/openssl/conf_api.h
  /usr/local/include/node/openssl/crypto.h
  /usr/local/include/node/openssl/ct.h
  /usr/local/include/node/openssl/des.h
  /usr/local/include/node/openssl/dh.h
  /usr/local/include/node/openssl/dsa.h
  /usr/local/include/node/openssl/dso_conf.h
  /usr/local/include/node/openssl/dso_conf_asm.h
  /usr/local/include/node/openssl/dso_conf_no-asm.h
  /usr/local/include/node/openssl/dtls1.h
  /usr/local/include/node/openssl/e_os2.h
  /usr/local/include/node/openssl/ebcdic.h
  /usr/local/include/node/openssl/ec.h
  /usr/local/include/node/openssl/ecdh.h
  /usr/local/include/node/openssl/ecdsa.h
  /usr/local/include/node/openssl/engine.h
  /usr/local/include/node/openssl/err.h
  /usr/local/include/node/openssl/evp.h
  /usr/local/include/node/openssl/hmac.h
  /usr/local/include/node/openssl/idea.h
  /usr/local/include/node/openssl/kdf.h
  /usr/local/include/node/openssl/lhash.h
  /usr/local/include/node/openssl/md2.h
  /usr/local/include/node/openssl/md4.h
  /usr/local/include/node/openssl/md5.h
  /usr/local/include/node/openssl/mdc2.h
  /usr/local/include/node/openssl/modes.h
  /usr/local/include/node/openssl/obj_mac.h
  /usr/local/include/node/openssl/objects.h
  /usr/local/include/node/openssl/ocsp.h
  /usr/local/include/node/openssl/opensslconf.h
  /usr/local/include/node/openssl/opensslconf_asm.h
  /usr/local/include/node/openssl/opensslconf_no-asm.h
  /usr/local/include/node/openssl/opensslv.h
  /usr/local/include/node/openssl/ossl_typ.h
  /usr/local/include/node/openssl/pem.h
  /usr/local/include/node/openssl/pem2.h
  /usr/local/include/node/openssl/pkcs12.h
  /usr/local/include/node/openssl/pkcs7.h
  /usr/local/include/node/openssl/rand.h
  /usr/local/include/node/openssl/rc2.h
  /usr/local/include/node/openssl/rc4.h
  /usr/local/include/node/openssl/rc5.h
  /usr/local/include/node/openssl/ripemd.h
  /usr/local/include/node/openssl/rsa.h
  /usr/local/include/node/openssl/safestack.h
  /usr/local/include/node/openssl/seed.h
  /usr/local/include/node/openssl/sha.h
  /usr/local/include/node/openssl/srp.h
  /usr/local/include/node/openssl/srtp.h
  /usr/local/include/node/openssl/ssl.h
  /usr/local/include/node/openssl/ssl2.h
  /usr/local/include/node/openssl/ssl3.h
  /usr/local/include/node/openssl/stack.h
  /usr/local/include/node/openssl/symhacks.h
  /usr/local/include/node/openssl/tls1.h
  /usr/local/include/node/openssl/ts.h
  /usr/local/include/node/openssl/txt_db.h
  /usr/local/include/node/openssl/ui.h
  /usr/local/include/node/openssl/whrlpool.h
  /usr/local/include/node/openssl/x509.h
  /usr/local/include/node/openssl/x509_vfy.h
  /usr/local/include/node/openssl/x509v3.h
  /usr/local/include/node/uv.h
  /usr/local/include/node/uv/aix.h
  /usr/local/include/node/uv/android-ifaddrs.h
  /usr/local/include/node/uv/bsd.h
  /usr/local/include/node/uv/darwin.h
  /usr/local/include/node/uv/errno.h
  /usr/local/include/node/uv/linux.h
  /usr/local/include/node/uv/os390.h
  /usr/local/include/node/uv/posix.h
  /usr/local/include/node/uv/stdint-msvc2008.h
  /usr/local/include/node/uv/sunos.h
  /usr/local/include/node/uv/threadpool.h
  /usr/local/include/node/uv/tree.h
  /usr/local/include/node/uv/unix.h
  /usr/local/include/node/uv/version.h
  /usr/local/include/node/uv/win.h
  /usr/local/include/node/v8-inspector-protocol.h
  /usr/local/include/node/v8-inspector.h
  /usr/local/include/node/v8-platform.h
  /usr/local/include/node/v8-profiler.h
  /usr/local/include/node/v8-testing.h
  /usr/local/include/node/v8-util.h
  /usr/local/include/node/v8-value-serializer-version.h
  /usr/local/include/node/v8-version-string.h
  /usr/local/include/node/v8-version.h
  /usr/local/include/node/v8.h
  /usr/local/include/node/v8config.h
  /usr/local/include/node/zconf.h
  /usr/local/include/node/zlib.h
  /usr/local/include/python2.7/greenlet/greenlet.h
  /usr/local/include/python3.6/zope.proxy/proxy.h

Warning: Unbrewed .pc files were found in /usr/local/lib/pkgconfig.
If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected .pc files:
  /usr/local/lib/pkgconfig/libmbus.pc
  /usr/local/lib/pkgconfig/libmodbus.pc

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:
  protobuf
  [email protected]
  gmp
  ncurses

Warning: /usr/bin occurs before /home/linuxbrew/.linuxbrew/bin
This means that system-provided programs will be used instead of those
provided by Homebrew. The following tools exist at both paths:

Consider setting your PATH so that /home/linuxbrew/.linuxbrew/bin
occurs before /usr/bin. Here is a one-liner:
  echo 'export PATH="/home/linuxbrew/.linuxbrew/bin:$PATH"' >> ~/.zshrc
  ptargrep
  cpan
  msgconv
  bison
  sha1sum
  shuf
  python3-config
  shasum
  h2ph
  aclocal-1.16
  msgcomm
  c_rehash
  pinky
  ptardiff
  timeout
  truncate
  shred
  pydoc3
  pkg-config
  aclocal
  runcon
  md5sum
  msggrep
  odbcinst
  hostid
  msginit
  gettextize
  zipdetails
  gawk
  encguess
  msgcat
  envsubst
  stdbuf
  msgcmp
  podselect
  gettext.sh
  automake
  h2xs
  libnetcfg
  gettext
  corelist
  perlivp
  perldoc
  msgen
  pod2man
  openssl
  ptar
  sha256sum
  pod2text
  tac
  perlthanks
  sqlite3
  chcon
  ifnames
  fd
  json_pp
  autoconf
  autoreconf
  m4
  ptx
  realpath
  autoheader
  splain
  sha224sum
  pip3
  msgunfmt
  yacc
  patch
  piconv
  ngettext
  sha384sum
  msgmerge
  nproc
  autom4te
  autopoint
  python3
  perlbug
  recode-sr-latin
  rg
  xsubpp
  dircolors
  podchecker
  autoupdate
  pod2usage
  pod2html
  perl
  msgexec
  automake-1.16
  sha512sum
  xgettext
  autoscan
  pcre2-config
  b2sum
  instmodsh
  base32
  msgattrib
  msgfilter
  libtoolize
  prove
  awk
  numfmt
  msguniq
  msgfmt
  enc2xs
  pl2pm

Warning: Some installed formulae are missing dependencies.
You should `brew install` the missing dependencies:
  brew install boost gcc@6 libxml2 unzip

Run `brew missing` for more details.

Error location

I fixed it in the end by tracing down the actual step that failed with:

HOMEBREW_DEVELOPER=true brew install [email protected] --debug --verbose --force-bottle

and following the traceback to this line:

https://github.com/Homebrew/brew/blob/master/Library/Homebrew/extend/os/linux/keg_relocate.rb#L21

Turns out that patchelf was not located, and the result of the locate call was nil. After fixing patchelf, I could install any packages again.


Just wanted to report this to you so you could take according actions:

  • Either report an error in the logs if patchelf is missing, when trying to install openssl (which is a dependency for many packages), or
  • simply report that the user needs to install patchelf again.
gsoc-outreachy linux

Most helpful comment

Thanks for the report, @boxmein!

@rmNULL, looks fixes for the following would be easy to throw together:

Turns out that patchelf was not located, and the result of the locate call was nil. After fixing patchelf, I could install any packages again.
Either report an error in the logs if patchelf is missing, when trying to install openssl (which is a dependency for many packages), or
simply report that the user needs to install patchelf again.

I.e.:

  • We should report an error (maybe with odie?) if locate returns nil for patchelf
  • We should augment that error with an instruction telling the user to install patchelf

All 5 comments

Thanks for the report, @boxmein!

@rmNULL, looks fixes for the following would be easy to throw together:

Turns out that patchelf was not located, and the result of the locate call was nil. After fixing patchelf, I could install any packages again.
Either report an error in the logs if patchelf is missing, when trying to install openssl (which is a dependency for many packages), or
simply report that the user needs to install patchelf again.

I.e.:

  • We should report an error (maybe with odie?) if locate returns nil for patchelf
  • We should augment that error with an instruction telling the user to install patchelf

@boxmein
i wish u were more explicit about

press Ctrl+C at some moment

i tried ctrl + c at various points in install.
I wasn't able to reproduce the bug.
The requested descriptive error message is provided in a temporary fix
What bothers me is, if patchelf is not installed, it should automatically be detected as a dependency and be installed. It isn't happening in your case, which prolly means the bug is lurking somewhere else too....

cc @woodruffw @sjackman

Fixed by PR https://github.com/Homebrew/brew/pull/7656 once it's merged. Thanks for the bug report, @boxmein.

@rmNULL Thanks for the feedback! I didn't really time it sadly.

@rmNULL Thanks for the feedback! I didn't really time it sadly.

that's okay, hopefully its fixed :)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Rotonen picture Rotonen  ·  4Comments

cfredhart picture cfredhart  ·  4Comments

JustinTArthur picture JustinTArthur  ·  3Comments

paanvaannd picture paanvaannd  ·  4Comments

kirk86 picture kirk86  ·  3Comments