Homebrew / homebrew-core

🍻 Default formulae for the missing package manager for macOS (or Linux)
https://brew.sh
BSD 2-Clause "Simplified" License
13.67k stars 12.37k forks source link

Unable to install wine due to libgphoto2 error #9427

Closed sjdaws closed 7 years ago

sjdaws commented 7 years ago

brew config: https://gist.github.com/sjdaws/cca98d27ed7d0cf03b327a811ad8bb7b brew doctor: https://gist.github.com/sjdaws/7e2f038f1639773ff8dcd5fbb42b3a27 brew gist-logs libgphoto2: https://gist.github.com/anonymous/556b1a39659a4b8c954a2c1e9cab558f

Hi,

I am unable to install wine due to a failure with the libgphoto formula. I've checked the tickets here about the exact same problem but none of them seem to fix my issue. I have some unbrewed dylibs but they are all part of a wkhtmltopdf install and shouldn't interfere.

Thanks

equal-l2 commented 7 years ago

configure claims it can't find libltdl. It should be installed by libtool, which is a explicit dependency of libgphoto2.

If libtool is installed, libltdl.dylib and libltdl.a should be in $(brew --prefix)/lib. Can you find them on your Mac?

sjdaws commented 7 years ago

Thanks for the reply, I have tried uninstalling and reinstalling libtool and I've tried editong libgphoto2 to use glibtool (as that's what brew tells me it's now called) but neither fixed the problem.

scott@Lenny ~ $ ls $(brew --prefix)/lib
dtrace                        libfontconfig.dylib           libmcrypt.dylib               libpcre.dylib                 libtiff.5.dylib               libwebpdemux.2.dylib
libevent-2.0.5.dylib          libfreetype.6.dylib           libmhash.2.0.1.dylib          libpcre16.0.dylib             libtiff.a                     libwebpdemux.a
libevent.a                    libfreetype.a                 libmhash.2.dylib              libpcre16.a                   libtiff.dylib                 libwebpdemux.dylib
libevent.dylib                libfreetype.dylib             libmhash.a                    libpcre16.dylib               libtiffxx.5.dylib             libwebpmux.2.dylib
libevent_core-2.0.5.dylib     libgd.3.dylib                 libmhash.dylib                libpcre32.0.dylib             libtiffxx.a                   libwebpmux.a
libevent_core.a               libgd.a                       libmysqlclient.20.dylib       libpcre32.a                   libtiffxx.dylib               libwebpmux.dylib
libevent_core.dylib           libgd.dylib                   libmysqlclient.a              libpcre32.dylib               libusb-0.1.4.dylib            libwkhtmltox.0.12.3.dylib
libevent_extra-2.0.5.dylib    libjpeg.8.dylib               libmysqlclient.dylib          libpcrecpp.0.dylib            libusb-1.0.0.dylib            libwkhtmltox.0.12.dylib
libevent_extra.a              libjpeg.a                     libmysqld.a                   libpcrecpp.a                  libusb-1.0.a                  libwkhtmltox.0.dylib
libevent_extra.dylib          libjpeg.dylib                 libmysqlservices.a            libpcrecpp.dylib              libusb-1.0.dylib              libwkhtmltox.dylib
libevent_openssl-2.0.5.dylib  libltdl.7.dylib               libodbc.2.dylib               libpcreposix.0.dylib          libusb.a                      libyaml-0.2.dylib
libevent_openssl.a            libltdl.a                     libodbc.dylib                 libpcreposix.a                libusb.dylib                  libyaml.a
libevent_openssl.dylib        libltdl.dylib                 libodbccr.2.dylib             libpcreposix.dylib            libwebp.6.dylib               libyaml.dylib
libevent_pthreads-2.0.5.dylib liblzma.5.dylib               libodbccr.dylib               libpng.a                      libwebp.a                     node_modules
libevent_pthreads.a           liblzma.a                     libodbcinst.2.dylib           libpng.dylib                  libwebp.dylib                 php
libevent_pthreads.dylib       liblzma.dylib                 libodbcinst.dylib             libpng16.16.dylib             libwebpdecoder.2.dylib        pkgconfig
libfontconfig.1.dylib         libmcrypt.4.4.8.dylib         libpcre.1.dylib               libpng16.a                    libwebpdecoder.a              plugin
libfontconfig.a               libmcrypt.4.dylib             libpcre.a                     libpng16.dylib                libwebpdecoder.dylib          ruby
scott@Lenny ~ $ brew list | grep libtool
libtool
shrx commented 7 years ago

I had the same problem the previous week, but was unable to open an issue at the time. gist-logs: https://gist.github.com/anonymous/e2814e37e26562668168648d4306acca

MikeMcQuaid commented 7 years ago

Try to brew uninstall --force $(brew deps --recursive wine) and then brew reinstall wine.

shrx commented 7 years ago

I tried the suggested command, however the installation of libgphoto2 still fails. I also tried to install libgphoto2 manually, and it downloads the bottle.

 brew install libgphoto2                                               
==> Downloading https://homebrew.bintray.com/bottles/libgphoto2-2.5.12.yosemite.bottle.tar.gz
######################################################################## 100.0%
==> Pouring libgphoto2-2.5.12.yosemite.bottle.tar.gz
🍺  /usr/local/Cellar/libgphoto2/2.5.12: 169 files, 4.4M

But then when I want to install wine, it wants to build libgphoto2 from source, which fails.

brew reinstall wine
==> Reinstalling wine 
==> Installing dependencies for wine: libgphoto2, little-cms2, jasper, libicns, openssl, sane-backends, libtasn1
==> Installing wine dependency: libgphoto2
==> Using the sandbox
==> Downloading https://downloads.sourceforge.net/project/gphoto/libgphoto/2.5.12/libgphoto2-2.5.12.tar.bz2
Already downloaded: /Users/sharix/Library/Caches/Homebrew/libgphoto2-2.5.12.tar.bz2
==> ./configure --disable-silent-rules --prefix=/usr/local/Cellar/libgphoto2/2.5.12
==> make install
Last 15 lines from /Users/sharix/Library/Logs/Homebrew/libgphoto2/02.make:
      __nl_locale_name_default in libintl.a(localename.o)
  "_CFStringGetCString", referenced from:
      __nl_language_preferences_default in libintl.a(langprefs.o)
      __nl_locale_name_default in libintl.a(localename.o)
  "_CFStringGetTypeID", referenced from:
      __nl_language_preferences_default in libintl.a(langprefs.o)
  "___CFConstantStringClassReference", referenced from:
      CFString in libintl.a(langprefs.o)
  "_kCFPreferencesCurrentApplication", referenced from:
      __nl_language_preferences_default in libintl.a(langprefs.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libgphoto2_port.la] Error 1
make[1]: *** [install-recursive] Error 1
make: *** [install-recursive] Error 1

READ THIS: http://docs.brew.sh/Troubleshooting.html

These open issues may also help:
Unable to install wine due to libgphoto2 error https://github.com/Homebrew/homebrew-core/issues/9427
ilovezfs commented 7 years ago

right, it needs the universal version

does brew instal --universal libgphoto2 fail?

shrx commented 7 years ago

Yes, it fails.

brew instal --universal libgphoto2
Warning: libgphoto2-2.5.12 already installed
Error: undefined method `exist?' for nil:NilClass
Please report this bug:
  http://docs.brew.sh/Troubleshooting.html
/usr/local/Homebrew/Library/Homebrew/tab.rb:338:in `write'
/usr/local/Homebrew/Library/Homebrew/cmd/install.rb:194:in `block in install'
/usr/local/Homebrew/Library/Homebrew/cmd/install.rb:104:in `each'
/usr/local/Homebrew/Library/Homebrew/cmd/install.rb:104:in `install'
/usr/local/Homebrew/Library/Homebrew/brew.rb:94:in `<main>'
brew uninstall --ignore-dependencies libgphoto2
Uninstalling /usr/local/Cellar/libgphoto2/2.5.12... (20 files, 157.7K)
libgphoto2 2.5.12.tmp is still installed.
Remove all versions with `brew uninstall --force libgphoto2`.
brew uninstall --ignore-dependencies --force libgphoto2
Uninstalling libgphoto2... (169 files, 4.4M)
brew instal --universal libgphoto2
[same error as above (ld: symbol(s) not found for architecture x86_64)]
ilovezfs commented 7 years ago

Error: undefined method `exist?' for nil:NilClass

Do you have local modifications?

git -C `brew --repo homebrew/core` status
shrx commented 7 years ago

Not that I would know of.

git -C `brew --repo homebrew/core` status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
ilovezfs commented 7 years ago

when you say "[same error as above]" are you referring to the build error or "Error: undefined method `exist?' for nil:NilClass"?

shrx commented 7 years ago

Sorry for not clarifying. I was referring to the build error.

ilovezfs commented 7 years ago
brew uninstall -f --ignore-dependencies fontconfig freetype gd giflib jpeg libexif libpng libtiff libtool libusb libusb-compat pkg-config webp xz libgphoto2
brew install --universal libgphoto2
ilovezfs commented 7 years ago

@shrx any luck with that?

shrx commented 7 years ago

Tried this, same build error.

ilovezfs commented 7 years ago

Unfortunately I cannot reproduce the bug locally. I suggest you try

mkdir ~/Documents/usr-local-2017-01-30
sudo mv /usr/local ~/Documents/usr-local-2017-01-30/
hash -r
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install --universal libgphoto2

and see if it's reproducible in the clean installation.

shrx commented 7 years ago

Yes, it builds in the clean /usr/local.

ilovezfs commented 7 years ago

OK, that's good news since it means at least we know your user environment/profile/etc. aren't messed up.

mkdir ~/Documents/usr-local-clean-2017-01-30
sudo mv /usr/local ~/Documents/usr-local-clean-2017-01-30/
sudo mv ~/Documents/usr-local-2017-01-30/local /usr/
hash -r
brew list
shrx commented 7 years ago
brew list 
aalib               glib                libpano             pkg-config
android-platform-tools      glib-networking         libpng              plotutils
apr             glibmm              libraw              popt
apr-util            glog                librsvg             proj
arpack              glpk                librtlsdr           protobuf
atk             gmp             libsamplerate           pstoedit
atkmm               gmp4                libsigc++           pv
autoconf            gmp@4               libsoup             pxz
automake            gnome-doc-utils         libspatialite           py2cairo
autopano-sift-c         gnu-sed             libtasn1            pygobject
awk             gnuplot             libtiff             pygtk
babl                gnutls              libtool             pyqt
bash                gobject-introspection       libunistring            pyqt5
berkeley-db         gperftools          libusb              python
bison               gphoto2             libusb-compat           python3
boost               graphicsmagick          libvo-aacenc            qhull
boost-python            graphviz            libvorbis           qrupdate
cabextract          grep                libvpx              qscintilla2
cairo               gsettings-desktop-schemas   libwmf              qt
cairomm             gsl             libxml++            qt5
cfitsio             gst-libav           libxml2             qt@5.7
chromedriver            gst-plugins-bad         little-cms          qwt
ckan                gst-plugins-base        little-cms2         randomize-lines
clang-omp           gst-plugins-good        lmdb                readline
cliclick            gst-plugins-ugly        lrzip               resty
cloog               gstreamer           lua             sane-backends
cloog018            gtk+                lzip                screenfetch
cmake               gtk+3               lzlib               scrollkeeper
colordiff           gtk-mac-integration     lzo             sdl
composer            gtkmm3              mad             sdl2
coreutils           harfbuzz            make                sdl2_ttf
cpanminus           hdf5                makedepend          sdl_ttf
curl                help2man            maven               shared-mime-info
dbus                hicolor-icon-theme      mcrypt              sip
dcraw               htop                media-info          snappy
ddrescue            icu4c               mercurial           sox
docbook             iftop               metis               spatialindex
docbook-xsl         ilmbase             mhash               speedtest_cli
dos2unix            imagemagick         mkvtoolnix          speex
doxygen             innoextract         mobile-shell            sphinx-doc
dropbear            intltool            mono                spidermonkey
dropbox-uploader        isl             mono3               sqlite
e2fsprogs           isl011              moreutils           ssh-copy-id
ecj             isl014              mpc             subversion
eigen               isl@0.11            mpd             suite-sparse
epstool             isl@0.12            mpfr                suite-sparse421
exiv2               isl@0.14            mpfr2               swig
expat               jansson             mpfr@2              szip
ext2fuse            jasper              mysql               taglib
ext4fuse            jpeg                nano                tbb
faad2               jsawk               ncmpcpp             tclap
fail2ban            json-c              ncurses             tesseract
ffmpeg              lame                net-snmp            testdisk
fftw                lensfun             nettle              texi2html
findutils           leptonica           nmap                theora
flac                leveldb             node                transfig
fltk                libcroco            nspr                transmission
fluid-synth         libebml             numpy               ufraw
fontconfig          libepoxy            octave              unar
freetype            libevent            open-mpi            unixodbc
freexl              libffi              openblas            unrar
gawk                libgcrypt           opencv              vala
gcc             libgeotiff          openexr             veclibfort
gcc49               libgpg-error            openssl             vigra
gcc5                libicns             orc             wakeonlan
gcc@4.9             libiconv            p11-kit             wcstools
gcc@5               libid3tag           p7zip               webp
gd              libiomp             pango               wget
gdal                liblwgeom           pangomm             wine
gdbm                libmagic            parallel            winetricks
gdk-pixbuf          libmatroska         pcre                x264
geos                libmpc              pdftk               xvid
gettext             libmpc08            phantomjs           yasm
gflags              libmpc@0.8          php56               youtube-dl
ghostscript         libmpdclient            php56-mcrypt            zenity
gl2ps               libmtp              pigz                zlib
glew                libogg              pixman              zsh
ilovezfs commented 7 years ago

OK, cool. And can you please do

brew install -dv --universal libgphoto2
brew gist-logs libgphoto2

Hopefully your configure will show some obvious difference to mine.

shrx commented 7 years ago

You need the output of -dv too, or just the gist-logs?

ilovezfs commented 7 years ago

Both would be great.

shrx commented 7 years ago

brew install -dv --universal libgphoto2 https://gist.github.com/shrx/d6b436d4b0658803c0365c15e07b06eb

brew gist-logs libgphoto2 https://gist.github.com/2658753d4d7d41e8a9b2889b99ce4fdd

ilovezfs commented 7 years ago

Please try

brew uninstall --ignore-dependencies gettext
brew install --universal libgphoto2
shrx commented 7 years ago

It worked!

ilovezfs commented 7 years ago

Cool. Do you happen to have customized language settings specified in your environment?

shrx commented 7 years ago

Not really:

printenv
LANG=en_US.UTF-8
USER=sharix
LOGNAME=sharix
HOME=/Users/sharix
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/TeX/texbin
MAIL=/var/mail/sharix
SHELL=/bin/zsh
SSH_CLIENT=XXXXXX YYYYY 22
SSH_CONNECTION=XXXXXX YYYYY XXXXXX 22
SSH_TTY=/dev/ttys000
TERM=xterm-256color
TMPDIR=/var/folders/tx/_04lzptx0_z4wc7pvlhsl5v80000gn/T/
SHLVL=1
PWD=/Users/sharix/Documents/usr-local-2017-01-30
OLDPWD=/Users/sharix/Documents/usr-local-2017-01-30/local
ZSH=/Users/sharix/.oh-my-zsh
DEFAULT_USER=sharix
PAGER=less
LESS=-R
LSCOLORS=Gxfxcxdxbxegedabagacad
LC_CTYPE=en_US.UTF-8
_=/usr/bin/printenv
ilovezfs commented 7 years ago

Weird. I wonder why it's picking it up then. If you brew install gettext and try to build again, does the problem come back?

shrx commented 7 years ago

I installed gettext and reinstalled libghphoto2 with --universal and it still worked. Looks like the installation of gettext was broken before somehow.

ilovezfs commented 7 years ago

@shrx Thanks for testing that.

ilovezfs commented 7 years ago

@sjdaws are you still having this problem?

sjdaws commented 7 years ago

Hi @ilovezfs,

Sorry about the delay in replying, I'm in Australia.

I have tried all above steps and I'm still getting the same failure in the original post, the clean environment for me also didn't fix the problem and resulted in the same error.

Result of git -C `brew --repo homebrew/core` status

scott@Lenny ~ $ git -C `brew --repo homebrew/core` status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean

This is my printenv:

scott@Lenny ~ $ printenv
TERM_PROGRAM=iTerm.app
TERM=xterm-256color
SHELL=/bin/bash
CLICOLOR=1
TMPDIR=/var/folders/kt/r066h1_56w74w3n0s5t8_d3h0000gn/T/
Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.li6M8UJBS6/Render
TERM_PROGRAM_VERSION=3.0.13
TERM_SESSION_ID=w1t0p0:F0269CDE-45E6-4E69-B74E-4E1DEB737C1E
USER=scott
COMMAND_MODE=unix2003
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.EAEZaC3FDM/Listeners
__CF_USER_TEXT_ENCODING=0x1F5:0x0:0xF
LSCOLORS=ExFxCxDxBxegedabagacad
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands:/var/virtual/bin:/usr/local/sbin
PWD=/Users/scott
LANG=en_AU.UTF-8
ITERM_PROFILE=Default
XPC_FLAGS=0x0
PS1=\u@\h \W \[\]$git_branch\[\]$git_dirty\[\]$
XPC_SERVICE_NAME=0
GITAWAREPROMPT=/Users/scott/.bash/git-aware-prompt
SHLVL=1
HOME=/Users/scott
COLORFGBG=7;0
ITERM_SESSION_ID=w1t0p0:F0269CDE-45E6-4E69-B74E-4E1DEB737C1E
LOGNAME=scott
DISPLAY=/private/tmp/com.apple.launchd.WNGfDhR3f2/org.macosforge.xquartz:0
SECURITYSESSIONID=186a6
_=/usr/bin/printenv

This is the result of brew install -dv --universal libgphoto2: https://gist.github.com/sjdaws/99c339d371cd98debbd7b9d804b29bea

This is the result of brew install --universal libgphoto2 after removing libraries + gettext: https://gist.github.com/sjdaws/56d7b253ae4a6b85abc8675702e074fc

This is the result of brew install --universal libgphoto2 after cleaning my environment: https://gist.github.com/sjdaws/7df80f2f59a27e650e99cada235375b2

From OP here is brew gist-logs libgphoto2: https://gist.github.com/anonymous/556b1a39659a4b8c954a2c1e9cab558f

Here's brew list after all of that:

scott@Lenny ~ $ brew list
apr         curl            jpeg            makedepend      openssl101      php56-opcache       scons
apr-util        doxygen         libevent        mcrypt          pcre            php71           sphinx
autoconf        flex            libpng          memcached       php-code-sniffer    phpcpd          sphinx-doc
beanstalkd      fontconfig      libtiff         mhash           php53           phpmd           supervisor
bison27         freetype        libtool         mongodb         php53-memcache      phpunit         thefuck
blackfire-agent     gd          libusb          mysql           php56           pkg-config      unixodbc
blackfire-php56     go          libusb-compat       nginx-full      php56-mcrypt        re2c            webp
cmake           httpd24         libxml2         node            php56-memcache      readline        zlib
composer        icu4c           libyaml         openssl         php56-mongo     ruby

Thanks!

ilovezfs commented 7 years ago

@sjdaws please create a new dummy user account, and try there.

sjdaws commented 7 years ago

@ilovezfs it builds fine if I use a brand new user so it must be environmental.

ilovezfs commented 7 years ago

@sjdaws Hmm ... OK. In the affected user, please try moving the ~/.bash_profile out of the way and then open a new terminal and see if it builds.

sjdaws commented 7 years ago

@ilovezfs I'm not entirely sure what's happened but it seems to install fine now even on my old profile with or without bash_profile in place.

ilovezfs commented 7 years ago

That's weird. When you set up the dummy account, and then switched back, did you do some chown'ing?

sjdaws commented 7 years ago

I had to remove /usr/local because it was owned by my old profile but that's it. I've put it back as per the steps in cleaning environment.

ilovezfs commented 7 years ago

Hmmm, OK. Well I guess we can revisit this if it comes back.

sjdaws commented 7 years ago

Thanks heaps for your help.

ilovezfs commented 7 years ago

You're welcome!

shrx commented 7 years ago

Yeah thanks for the help also from me.