Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ipopt.jl install problems on OSX #30

Closed
rgiordan opened this issue Feb 25, 2015 · 36 comments
Closed

Ipopt.jl install problems on OSX #30

rgiordan opened this issue Feb 25, 2015 · 36 comments

Comments

@rgiordan
Copy link

I am unable to install Ipopt.jl on my mac. The configuration fails with the error shown below. I can run configure successfully without the --with-blas and --with-lapack flags, but then make fails to compile ThirdParty/Mumps with the error "ld: symbol(s) not found for architecture i386".

Any help would be appreciated.

checking whether user supplied BLASLIB="/Users/ryangiordanonon-admin/.julia/v0.3/Ipopt/deps/usr/lib/libcoinblas.a -lgfortran" works... no
configure: error: user supplied BLAS library "/Users/ryangiordanonon-admin/.julia/v0.3/Ipopt/deps/usr/lib/libcoinblas.a -lgfortran" does not work
configure: error: /bin/sh './configure' failed for ThirdParty/Mumps
=========================================================================================[ ERROR: Ipopt ]=========================================================================================

failed process: Process(`./configure --prefix=/Users/ryangiordanonon-admin/.julia/v0.3/Ipopt/deps/usr coin_skip_warn_cxxflags=yes '--with-blas=/Users/ryangiordanonon-admin/.julia/v0.3/Ipopt/deps/usr/lib/libcoinblas.a -lgfortran' --with-lapack=/Users/ryangiordanonon-admin/.julia/v0.3/Ipopt/deps/usr/lib/libcoinlapack.a`, ProcessExited(1)) [1]
while loading /Users/ryangiordanonon-admin/.julia/v0.3/Ipopt/deps/build.jl, in expression starting on line 89

==================================================================================================================================================================================================
@rgiordan
Copy link
Author

I dug in a little bit and found that the error is in the ThirdParty/Mumps config file. Here is the error from config.log:

configure:21960: checking whether user supplied BLASLIB="/Users/ryangiordanonon-admin/.julia/v0.3/Ipopt/deps/usr/lib/libcoinblas.a -lgfortran" works
configure:22077: clang -o conftest -O3 -pipe -DNDEBUG    -DMUMPS_BUILD   conftest.c /Users/ryangiordanonon-admin/.julia/v0.3/Ipopt/deps/usr/lib/libcoinblas.a -lgfortran  >&5
ld: library not found for -lgfortran
clang: error: linker command failed with exit code 1 (use -v to see invocation)
configure:22083: $? = 1

… contents of test program …


configure:22142: clang -o conftest -O3 -pipe -DNDEBUG    -DMUMPS_BUILD   conftest.c /Users/ryangiordanonon-admin/.julia/v0.3/Ipopt/deps/usr/lib/libcoinblas.a -lgfortran   -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin13/4.9.0 -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin13/4.9.0/../../.. -lgfortran -lquadmath -lm -lSystem >&5
ld: warning: ignoring file /Users/ryangiordanonon-admin/.julia/v0.3/Ipopt/deps/usr/lib/libcoinblas.a, file was built for archive which is not the architecture being linked (x86_64): /Users/ryangiordanonon-admin/.julia/v0.3/Ipopt/deps/usr/lib/libcoinblas.a
Undefined symbols for architecture x86_64:
  "_daxpy_", referenced from:
      _main in conftest-f98053.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
configure:22148: $? = 1

@rgiordan
Copy link
Author

Another follow-up. Setting
export LIBRARY_PATH=/usr/local/lib
fixes the "ld: library not found for -lgfortran" error but the wrong architecture problem is still there. Also, with the LIBRARY_PATH flag set running ./configure with no additional arguments still completes successfully, but then make install fails in ThirdParty/Blas with the following error:

gfortran -dynamiclib -single_module  -o .libs/libcoinblas.1.4.2.dylib  .libs/dasum.o .libs/daxpy.o .libs/dcabs1.o .libs/dcopy.o .libs/ddot.o .libs/dgbmv.o .libs/dgemm.o .libs/dgemv.o .libs/dger.o .libs/dnrm2.o .libs/drot.o .libs/drotg.o .libs/drotm.o .libs/drotmg.o .libs/dsbmv.o .libs/dscal.o .libs/dsdot.o .libs/dspmv.o .libs/dspr2.o .libs/dspr.o .libs/dswap.o .libs/dsymm.o .libs/dsymv.o .libs/dsyr2.o .libs/dsyr2k.o .libs/dsyr.o .libs/dsyrk.o .libs/dtbmv.o .libs/dtbsv.o .libs/dtpmv.o .libs/dtpsv.o .libs/dtrmm.o .libs/dtrmv.o .libs/dtrsm.o .libs/dtrsv.o .libs/idamax.o .libs/isamax.o .libs/izamax.o .libs/lsame.o .libs/sgemm.o .libs/sgemv.o .libs/sger.o .libs/sscal.o .libs/sswap.o .libs/ssyr.o .libs/strsm.o .libs/xerbla.o .libs/zaxpy.o .libs/zcopy.o .libs/zdscal.o .libs/zdotc.o .libs/zdotu.o .libs/zgemm.o .libs/zgemv.o .libs/zgeru.o .libs/zher.o .libs/zscal.o .libs/zswap.o .libs/ztrsm.o   -install_name  /Users/ryangiordanonon-admin/.julia/v0.3/Ipopt/deps/src/Ipopt-3.12.1/lib/libcoinblas.1.dylib -compatibility_version 6 -current_version 6.2
gfortran: warning: couldn't understand kern.osversion '14.1.0
ld: library not found for -ldylib1.o

@tkelman
Copy link
Contributor

tkelman commented Feb 26, 2015

On OSX, it should just be downloading a homebrew binary automatically. You really shouldn't need to configure and build from source here... what does BinDeps.debug("Ipopt") say?

@tkelman
Copy link
Contributor

tkelman commented Feb 26, 2015

Also what version of OSX, where are you getting gfortran from, and what is your Julia versioninfo()?

@rgiordan
Copy link
Author

Here is BinDeps.debug("Ipopt"):

julia> BinDeps.debug("Ipopt")
INFO: Reading build script...
The package declares 1 dependencies.
Error: No available formula for ipopt 
 - Library "libipopt"
    - Providers:
      - Simple Build Process
      - Homebrew Bottles ipoptError: No available formula for ipopt 
 (can't provide)

I'm running OSX 10.10.2. gfortran is GNU Fortran (GCC) 4.9.0, which I got from here.

@tkelman
Copy link
Contributor

tkelman commented Feb 28, 2015

Dunno. @staticfloat, little help?

Try using Homebrew; Homebrew.update() maybe?

@staticfloat
Copy link
Contributor

A Pkg.update() would probably be a good plan as well. Showing the output of versioninfo() would be helpful. It looks like Homebrew.jl is not very happy about something, what happens if you do the following:

using Homebrew
Homebrew.add("ipopt")

@tkelman
Copy link
Contributor

tkelman commented Mar 3, 2015

I have no idea what architecture libcoinblas.a is trying to build as. I do probably need some smarter way of dealing with not finding -lgfortran though. I usually recommend using Homebrew's version of gfortran on OSX, it's the most widely tested for use with Julia and they're really good about keeping things up to date with the latest OSX versions (with occasional associated breakage that Elliot has to fix, but that's gradually being made less painful).

I don't know what the ld: library not found for -ldylib1.o error is about. Usually that kind of error would call for re-running xcode-select --install, except that you're using a version of gfortran that might just not work for linking shared libraries on modern OSX versions. We actually don't want a shared blas library for the purposes of Ipopt, though the 64-bit-ints name shadowing problem in base Julia that used to cause segfaults is now fixed so it shouldn't be the end of the world.

@rgiordan
Copy link
Author

rgiordan commented Mar 3, 2015

I should mention on this thread that I tried to answer staticfloat's questions and found that I had a few problems that were not related to this. In particular, Pkg.update() failed because curl couldn't find certificates and because a gfortran.dylib library was missing (I had deleted it at a friend's recommendation to try to fix this problem).

These problems didn't seem related to Ipopt, so I wanted to fix them before posting. I only have intermittent access to the computer in question, so I apologize for being slow to respond. (I also have Ipopt working on my main work computer, so this issue became less urgent for me.) I'll be able to get to the computer in the next day or two and hopefully work some of those things out.

@tkelman
Copy link
Contributor

tkelman commented Mar 3, 2015

Cool. Part of the context of me posting more junk was that someone else reported a problem with this package on the mailing list https://groups.google.com/forum/#!topic/julia-users/v7EUEnZUHSo and I linked to this issue because I have a sneaky feeling they might also be on OSX so should have just been able to download a Homebrew binary instead of compiling from source.

@rgiordan
Copy link
Author

I revisited this yesterday, and made some progress with the install, though Pkg.test("Ipopt") still fails. Here is the summary:

  • Homebrew was not updating, due to the OS X curl path having been masked by an earlier anaconda installation of curl that could not see my certificates
  • Having fixed, this, I ran homebrew.update() successfully.
  • I ran Pkg.rm(“Ipopt”) to get rid of the stuff from before, but Pkg.add(“Ipopt”) still had issues similar to those above with the fortran library.
  • homebrew.add("Ipopt") said "Error: No available formula for ipopt"
  • However, following directions elsewhere I tapped homebrew/science, and from the command line, I could run /Users/ryangiordanonon-admin/.julia/v0.3/Homebrew/deps/usr/bin/brew install --force-bottle homebrew/science/ipopt (adding homebrew/science/ instead of just ipopt)
  • This took a while and built a bunch of stuff, including gcc
  • After this, Pkg.add(“Ipopt”) only asked to run Pkg.update(), which ran successfully.

However, Pkg.test(“Ipopt”) fails with this error:

INFO: Testing Ipopt
ERROR: libipopt not defined
 in createProblem at /Users/ryangiordanonon-admin/.julia/v0.3/Ipopt/src/Ipopt.jl:182
 in include at /Applications/Julia-0.3.7.app/Contents/Resources/julia/lib/julia/sys.dylib
 in include_from_node1 at /Applications/Julia-0.3.7.app/Contents/Resources/julia/lib/julia/sys.dylib
 in include at /Applications/Julia-0.3.7.app/Contents/Resources/julia/lib/julia/sys.dylib
 in include_from_node1 at loading.jl:128
 in process_options at /Applications/Julia-0.3.7.app/Contents/Resources/julia/lib/julia/sys.dylib
 in _start at /Applications/Julia-0.3.7.app/Contents/Resources/julia/lib/julia/sys.dylib
while loading /Users/ryangiordanonon-admin/.julia/v0.3/Ipopt/test/hs071_test.jl, in expression starting on line 114
while loading /Users/ryangiordanonon-admin/.julia/v0.3/Ipopt/test/runtests.jl, in expression starting on line 5

=======================================================================================[ ERROR: Ipopt ]========================================================================================

failed process: Process(`/Applications/Julia-0.3.7.app/Contents/Resources/julia/bin/julia /Users/ryangiordanonon-admin/.julia/v0.3/Ipopt/test/runtests.jl`, ProcessExited(1)) [1]

===============================================================================================================================================================================================
INFO: No packages to install, update or remove
ERROR: Ipopt had test errors
 in error at error.jl:21
 in test at pkg/entry.jl:718
 in anonymous at pkg/dir.jl:28
 in cd at /Applications/Julia-0.3.7.app/Contents/Resources/julia/lib/julia/sys.dylib
 in cd at pkg/dir.jl:28
 in test at pkg.jl:67

@mlubin
Copy link
Member

mlubin commented Apr 10, 2015

@rgiordan, Pkg.rm followed by Pkg.add is a no-op, unfortunately: JuliaLang/julia#7054. Make sure you try Pkg.build("Ipopt") after it's set up through homebrew.

@tkelman
Copy link
Contributor

tkelman commented Apr 10, 2015

I'm surprised adding the homebrew-science version of Ipopt would build all of gcc. Thought they had bottles of most dependencies by now.

@staticfloat
Copy link
Contributor

@rgiordan What happens if you run Pkg.build("ipopt")? Also, if your ~/.julia/v0.3/Homebrew install is screwed up, you may want to try moving that directory somewhere else, (say, ~/.julia/v0.3/Homebrew2) and seeing if starting over from scratch works. To get Homebrew to reinstall everything that your packages need, all you should need to do is run Pkg.build(). Also, I can't vouch for what installing homebrew-science formulae inside of Julia's Homebrew installation will do; you're exploring spaces that I haven't, so you may or may not run into problems in the future.

The reason homebrew-science installations aren't using bottles is because many of the formulae in homebrew-science are not Cellar: any, they will install bottles when the install location is /usr/local/, but since we squirrel our binaries away into ~/.julia/v0.X/Homebrew/deps/usr most of the bottles refuse to install into there, and things get built from scratch. This is one of the reasons the libgfortran formula installed by Homebrew.jl is so nice; it allows us to get a gfortran runtime without having to build GCC from scratch.

@rgiordan
Copy link
Author

Pkg.build("ipopt") currently fails because homebrew is failling to build gcc (see error below). Sorry I didn't respond earlier. It doesn't seem to be an Ipopt problem, so I was trying to work through this on my own, though advice is of course welcome.

$ brew install gcc
==> Downloading http://ftpmirror.gnu.org/gcc/gcc-4.9.2/gcc-4.9.2.tar.bz2
Already downloaded: /Library/Caches/Homebrew/gcc-4.9.2.tar.bz2
==> ../configure --build=x86_64-apple-darwin14.1.0 --prefix=/usr/local/homebrew/Cellar/gcc/4.9.2_1 --libdir=/usr/local/homebrew/Cellar/gcc/4.9.2_1/lib/gcc/4.9 --enable-languages=c,c++,o
==> make bootstrap
gcc/valtrack.o differs
gcc/vtable-verify.o differs
make[2]: *** [compare] Error 1
make[1]: *** [stage3-bubble] Error 2
make: *** [bootstrap] Error 2
Warning: It appears you have MacPorts or Fink installed.
Software installed with other package managers causes known problems for
Homebrew. If a formula fails to build, uninstall MacPorts/Fink and try again.

READ THIS: http://git.io/brew-troubleshooting

These open issues may also help:
GCC fails to build on OSX 10.10.3 (https://github.com/Homebrew/homebrew/issues/38501)
Object files deleted during build of gcc needed by gdb (https://github.com/Homebrew/homebrew/issues/35734)
--cc=gcc-4.9 gets me in an infinite loop (https://github.com/Homebrew/homebrew/issues/33731)
gcc 4.9.2 fails to produce debugging information (https://github.com/Homebrew/homebrew/issues/34976)
MacOS.(gcc|clang|llvm)_version can return nil (https://github.com/Homebrew/homebrew/issues/18781)

@staticfloat
Copy link
Contributor

Great; first things first; you shouldn't need to build gcc at all; this is probably happening because you're trying to pull ipopt from homebrew/science/ipopt instead of staticfloat/juliadeps/ipopt. The best way to deal with this is to first show me the output of Homebrew.list(), and then do a Homebrew.rm("homebrew/science/ipopt"), Homebrew.rm("gcc"), and try again with a Homebrew.add("ipopt").

@rgiordan
Copy link
Author

Great! The Homebrew.list() results follow; I'll now try again with staticfloat/juliadeps/ipopt.

julia> Homebrew.list()
9-element Array{BrewPkg,1}:
 cloog: 0.18.1      
 gmp: 6.0.0-a       
 isl: 0.12.2        
 libevent: 2.0.22   
 libmpc: 1.0.3      
 makedepend: 1.0.5  
 mpfr: 3.1.2-p11    
 open-mpi: 1.8.4    
 openssl: 1.0.2-a-1

@rgiordan
Copy link
Author

Hmm, following those steps still tries to pull from homebrew/science/ipopt. How can I force homebrew to use one particular tap?

julia> using Homebrew
julia> Homebrew.add("ipopt")
==> Installing ipopt from homebrew/homebrew-science
==> Installing dependencies for ipopt: gcc, cmake, asl, veclibfort, scalapack, mumps
==> Installing ipopt dependency: gcc
==> Downloading http://ftpmirror.gnu.org/gcc/gcc-4.9.2/gcc-4.9.2.tar.bz2
Already downloaded: /Users/ryangiordanonon-admin/Library/Caches/Homebrew.jl/gcc-4.9.2.tar.bz2
^C
ERROR: interrupt

julia> 

@staticfloat
Copy link
Contributor

I think I see what's going on; We're gonna need to do a little surgery.

You need to run ~/.julia/v0.3/Homebrew/deps/usr/bin/brew untap homebrew/science, to force brew to untap homebrew/science, as otherwise that tap will continue to override our ipopt formula. I'm not sure how you managed to get it to override it, but that's what I'm guessing happened.

You may want to also untap staticfloat/juliadeps, then tap it again. It will complain about a bunch of formulae it cannot create a link for; that's fine.

@rgiordan
Copy link
Author

All right, that did it! I've gotten Ipopt installed and the tests pass.

Many thanks for the help!

(NB in case someone else ever reads this, the tap is actually staticfloat/juliadeps, without the hyphen .)

@staticfloat
Copy link
Contributor

Ah, my bad. I'll edit my message up top. Glad it worked out for you!

@tkelman
Copy link
Contributor

tkelman commented Apr 14, 2015

The reason homebrew-science installations aren't using bottles is because many of the formulae in homebrew-science are not Cellar: any

Ah, right. That's subtle and annoying. Is this a special non-default behavior of building bottles that they have to opt into, or does homebrew try to do this by default and it's just hitting some discrepancy that prevents it from working in many of the homebrew-science formulae?

@staticfloat
Copy link
Contributor

The latter. Homebrew will automatically enable Cellar: any when it can, (e.g. when it cannot find a hardcoded path in any file) but I override that for a lot of our bottles, as I test them to make sure that things are "good enough". Oftentimes the hardcoded paths are things like paths baked into header files or man pages, etc... things we don't care about, but that Homebrew mainline probably would.

@staticfloat
Copy link
Contributor

As an example of how this works out in practice; the recent bottle I built for bonmin is auto-detected as Cellar: any, and is notified as such at the end of the bottle building process. In contrast, the couenne bottle is not, and brew outputs the places in which it found strings that look problematic in addition to omitting the Cellar: any qualifier.

In this case, the strings found are in some documentation and libCouenne.dylib. I can immediately disregard the documentation stuff as unimportant, but libCouenne.dylib could cause problems. It looks like there's a baked-in reference to BonOsiTMINLPInterface.hpp inside bonmin, of which I have exactly zero idea if it's a problem or not. But I'll run the test suite through brew and julia, and then let it be until someone opens and issue about something being broken, at which point I'll have to patch in a relative path there.

@ZacCranko
Copy link

Hi there, having a similar issue here. Is it better to discuss here or in julia-deps?

julia> Pkg.add("Ipopt")
INFO: Installing Ipopt v0.1.16
INFO: Building Homebrew
HEAD is now at 8b71e0f rocksdb: update 3.13 bottle.
HEAD is now at c490b44 Merge pull request #61 from staticfloat/staging
INFO: Building Ipopt

WARNING: deprecated syntax "[a=>b, ...]" at /Users/zaccranko/.julia/v0.4/Ipopt/deps/build.jl:72.
Use "Dict(a=>b, ...)" instead.
Warning: You are using OS X 10.11.
We do not provide support for this pre-release version.
You may encounter build failures or other breakage.
==> Installing ipopt from staticfloat/homebrew-juliadeps
==> Installing dependencies for staticfloat/juliadeps/ipopt: gcc
==> Installing staticfloat/juliadeps/ipopt dependency: gcc
==> Downloading http://ftpmirror.gnu.org/gcc/gcc-5.2.0/gcc-5.2.0.tar.bz2
==> Downloading from http://gnu.uberglobalmirror.com/gcc/gcc-5.2.0/gcc-5.2.0.tar.
######################################################################## 100.0%
==> Patching
patching file gcc/jit/Make-lang.in
patching file gcc/jit/jit-playback.c
Hunk #1 succeeded at 2459 with fuzz 2 (offset 43 lines).
==> ../configure --build=x86_64-apple-darwin15.0.0 --prefix=/Users/zaccranko/.jul
==> make bootstrap
`==> make install
==> Caveats
GCC has been built with multilib support. Notably, OpenMP may not work:
  https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60670
If you need OpenMP support you may want to
  brew reinstall gcc --without-multilib
==> Summary
🍺  /Users/zaccranko/.julia/v0.4/Homebrew/deps/usr/Cellar/gcc/5.2.0: 1353 files, 248M, built in 84.0 minutes
==> Installing staticfloat/juliadeps/ipopt
==> Downloading http://www.coin-or.org/download/source/Ipopt/Ipopt-3.12.1.tgz
Already downloaded: /Users/zaccranko/Library/Caches/Homebrew.jl/ipopt-3.12.1.tgz
==> cd ThirdParty/Blas; ./get.Blas
==> cd ThirdParty/Blas; ./configure --prefix=/Users/zaccranko/.julia/v0.4/Homebre
checking for Fortran libraries of unavailable... 
checking for dummy main to link with Fortran libraries... none
checking for Fortran name-mangling scheme... configure: error: cannot compile a simple Fortran program
See `config.log' for more details.
make: *** No rule to make target `install'.  Stop.

READ THIS: https://git.io/brew-troubleshooting
If reporting this issue please do so at (not Homebrew/homebrew):
  https://github.com/staticfloat/homebrew-juliadeps/issues

Warning: You are using OS X 10.11.
We do not provide support for this pre-release version.
You may encounter build failures or other breakage.
================================[ ERROR: Ipopt ]=================================

LoadError: failed process: Process(`/Users/zaccranko/.julia/v0.4/Homebrew/deps/usr/bin/brew install --force-bottle staticfloat/juliadeps/ipopt`, ProcessExited(1)) [1]
while loading /Users/zaccranko/.julia/v0.4/Ipopt/deps/build.jl, in expression starting on line 72

=================================================================================

================================[ BUILD ERRORS ]=================================

WARNING: Ipopt had build errors.

 - packages with build errors remain installed in /Users/zaccranko/.julia/v0.4
 - build the package(s) and all dependencies with `Pkg.build("Ipopt")`
 - build a single package by running its `deps/build.jl` script

=================================================================================
INFO: Package database updated
INFO: METADATA is out-of-date — you may not have the latest version of Ipopt
INFO: Use `Pkg.update()` to get the latest versions of your packages
julia> Pkg.build("Ipopt")
INFO: Building Homebrew
HEAD is now at 8b71e0f rocksdb: update 3.13 bottle.
HEAD is now at c490b44 Merge pull request #61 from staticfloat/staging
INFO: Building Ipopt

WARNING: deprecated syntax "[a=>b, ...]" at /Users/zaccranko/.julia/v0.4/Ipopt/deps/build.jl:72.
Use "Dict(a=>b, ...)" instead.
Warning: You are using OS X 10.11.
We do not provide support for this pre-release version.
You may encounter build failures or other breakage.
==> Installing ipopt from staticfloat/homebrew-juliadeps
==> Downloading http://www.coin-or.org/download/source/Ipopt/Ipopt-3.12.1.tgz
Already downloaded: /Users/zaccranko/Library/Caches/Homebrew.jl/ipopt-3.12.1.tgz
==> cd ThirdParty/Blas; ./get.Blas
==> cd ThirdParty/Blas; ./configure --prefix=/Users/zaccranko/.julia/v0.4/Homebrew/dep
checking for Fortran libraries of unavailable... 
checking for dummy main to link with Fortran libraries... none
checking for Fortran name-mangling scheme... configure: error: cannot compile a simple Fortran program
See `config.log' for more details.
make: *** No rule to make target `install'.  Stop.

READ THIS: https://git.io/brew-troubleshooting
If reporting this issue please do so at (not Homebrew/homebrew):
  https://github.com/staticfloat/homebrew-juliadeps/issues

Warning: You are using OS X 10.11.
We do not provide support for this pre-release version.
You may encounter build failures or other breakage.
===================================[ ERROR: Ipopt ]===================================

LoadError: failed process: Process(`/Users/zaccranko/.julia/v0.4/Homebrew/deps/usr/bin/brew install --force-bottle staticfloat/juliadeps/ipopt`, ProcessExited(1)) [1]
while loading /Users/zaccranko/.julia/v0.4/Ipopt/deps/build.jl, in expression starting on line 72

======================================================================================

===================================[ BUILD ERRORS ]===================================

WARNING: Ipopt had build errors.

 - packages with build errors remain installed in /Users/zaccranko/.julia/v0.4
 - build the package(s) and all dependencies with `Pkg.build("Ipopt")`
 - build a single package by running its `deps/build.jl` script

======================================================================================

@staticfloat
Copy link
Contributor

Unfortunately, this issue is pretty easy to diagnose:

Warning: You are using OS X 10.11.
We do not provide support for this pre-release version.
You may encounter build failures or other breakage.

Your OSX version is too new; there are no bottles available, and we are purposefully not installing a gfortran toolchain every time we install Ipopt, since most users don't want that. To attempt to fix this, do a brew install gcc outside of Julia, and then try to rebuild Ipopt.

@ZacCranko
Copy link

Hi @staticfloat, has there been any development with this? I'm still getting build failures for Ipopt. Cheers.

@staticfloat
Copy link
Contributor

Hey Zac, can you Pkg.update() and try again?

@ZacCranko
Copy link

On v0.4...

julia> Pkg.add("Ipopt")
INFO: Installing Ipopt v0.1.18
INFO: Building Homebrew
HEAD is now at b48f442 archey 1.5.1
HEAD is now at b178725 Merge pull request #83 from staticfloat/staging
INFO: Building Ipopt
==> Installing ipopt from staticfloat/homebrew-juliadeps
==> Downloading https://juliabottles.s3.amazonaws.com/ipopt-3.12.4.el_capitan.bot
######################################################################## 100.0%
==> Pouring ipopt-3.12.4.el_capitan.bottle.tar.gz
🍺  /Users/zaccranko/.julia/v0.4/Homebrew/deps/usr/Cellar/ipopt/3.12.4: 83 files, 6.0M
To relink: brew unlink ipopt && brew link ipopt
INFO: Package database updated
julia> Pkg.build("Ipopt")
INFO: Building Homebrew
HEAD is now at b48f442 archey 1.5.1
HEAD is now at b178725 Merge pull request #83 from staticfloat/staging
INFO: Building Ipopt

Awesome, thanks Eliot!

@mlubin
Copy link
Member

mlubin commented Nov 3, 2015

Thanks @staticfloat!

@ZacCranko
Copy link

BTW, still getting all kinds of errors on v0.5, but I assume this is still in the works

@staticfloat
Copy link
Contributor

Are you getting installation errors on v0.5?

@ZacCranko
Copy link

My bad, didn't check the log properly. Looks like the issue I'm having is with building Homebrew.jl on v0.5... so it's unrelated to this thread

julia> Pkg.build("Homebrew")
WARNING: Error during initialization of module CHOLMOD:
ErrorException("could not load library "libsuitesparseconfig"
dlopen(libsuitesparseconfig.dylib, 1): image not found")
INFO: Building Homebrew
fatal: error thrown and no exception handler available.
Base.InitError(mod=:CHOLMOD, error=ErrorException("error compiling __init__: could not load library "libsuitesparseconfig"
dlopen(libsuitesparseconfig.dylib, 1): image not found"))
rec_backtrace at /private/tmp/julia20151104-70825-aqvc3v/src/task.c:662
_ZL19jl_rethrow_with_addPKcz at /private/tmp/julia20151104-70825-aqvc3v/src/codegen.cpp:837
_ZL11to_functionP17_jl_lambda_info_t at /private/tmp/julia20151104-70825-aqvc3v/src/codegen.cpp:966
jl_compile_linfo at /private/tmp/julia20151104-70825-aqvc3v/src/codegen.cpp:1137
jl_trampoline_compile_linfo at /private/tmp/julia20151104-70825-aqvc3v/src/builtins.c:1007
jl_trampoline at /private/tmp/julia20151104-70825-aqvc3v/src/builtins.c:1020
jl_apply at /private/tmp/julia20151104-70825-aqvc3v/src/./julia.h:1496
jl_init_restored_modules at /private/tmp/julia20151104-70825-aqvc3v/src/dump.c:1743
_julia_init at /private/tmp/julia20151104-70825-aqvc3v/src/init.c:628
julia_init at /private/tmp/julia20151104-70825-aqvc3v/src/task.c:281
main at /usr/local/Cellar/julia/HEAD/bin/julia (unknown line)
==============================[ ERROR: Homebrew ]===============================

LoadError: LoadError: Failed to precompile JSON to /Users/zaccranko/.julia/lib/v0.5/JSON.ji
while loading /Users/zaccranko/.julia/v0.5/Homebrew/src/Homebrew.jl, in expression starting on line 9
while loading /Users/zaccranko/.julia/v0.5/Homebrew/deps/build.jl, in expression starting on line 1

================================================================================

@staticfloat
Copy link
Contributor

Please feel free to open a new issue, I'm assuming in the main Julia repository, and ping me. I think I can help you debug this.

@ZacCranko
Copy link

Okay following the resolution of #13867 this seems to be good to go

julia> VERSION
v"0.5.0-dev+1137"

julia> Pkg.add("Ipopt")
INFO: Installing Ipopt v0.1.18
INFO: Building Homebrew
HEAD is now at eabf890 audit fixes: C 06: csup - cups-pdf
HEAD is now at b178725 Merge pull request #83 from staticfloat/staging
INFO: Building Ipopt
==> Installing ipopt from staticfloat/homebrew-juliadeps
==> Downloading https://juliabottles.s3.amazonaws.com/ipopt-3.12.4.el_capitan.bottle.tar.gz
Already downloaded: /Users/zaccranko/Library/Caches/Homebrew.jl/ipopt-3.12.4.el_capitan.bottle.tar.gz
==> Pouring ipopt-3.12.4.el_capitan.bottle.tar.gz
🍺  /Users/zaccranko/.julia/v0.5/Homebrew/deps/usr/Cellar/ipopt/3.12.4: 83 files, 6.0M
To relink: brew unlink ipopt && brew link ipopt
INFO: Package database updated

julia> Pkg.build("Ipopt")
INFO: Building Homebrew
HEAD is now at eabf890 audit fixes: C 06: csup - cups-pdf
HEAD is now at b178725 Merge pull request #83 from staticfloat/staging
INFO: Building Ipopt

@tkelman
Copy link
Contributor

tkelman commented Feb 9, 2016

This looks like it was resolved? Open a new issue if not.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

5 participants