Changes between Version 121 and Version 122 of ProblemHotlist


Ignore:
Timestamp:
Sep 5, 2015, 10:51:53 PM (9 years ago)
Author:
ryandesign (Ryan Carsten Schmidt)
Comment:

Add ncurses 6 / readline / gawk problem

Legend:

Unmodified
Added
Removed
Modified
  • ProblemHotlist

    v121 v122  
    4848
    4949
     50== Build failures after upgrading to ncurses 6 == #ncurses6
     51
     52After upgrading ncurses to version 6, a port may fail to build, with the following error message in the main.log or config.log file:
     53
     54{{{
     55dyld: Library not loaded: /opt/local/lib/libncurses.5.dylib
     56  Referenced from: /opt/local/lib/libreadline.6.dylib
     57  Reason: no suitable image found.  Did find:
     58        /usr/lib/libncurses.5.dylib: no matching architecture in universal wrapper
     59}}}
     60
     61The solution is to upgrade readline:
     62
     63{{{
     64sudo port upgrade readline
     65}}}
     66
     67Then clean the port that originally failed to build, and try to build it again.
     68
     69The problem occurs when building ports that use an autotools-based configure script, after having upgraded ncurses to version 6 but before having upgraded readline to use ncurses 6. The reason the problem occurs is that part of the boilerplate that autotools bakes into every configure script is to locate an awk implementation. The first one it checks for is gawk, so if the gawk port happens to be installed, a configure script will try to use that. gawk depends on readline, which depends on ncurses, and if you have upgraded ncurses but haven't upgraded readline to use the new ncurses, then gawk will be broken.
     70
     71MacPorts usually upgrades dependencies first, so you wouldn't see this problem if gawk were listed as a dependency of the port that failed to build. But we don't want to add unnecessary gawk dependencies to thousands of configure-based ports when the awk implementation that's part of OS X would work just as well.
     72
     73
    5074== Incompatible library version: X requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0 == #libiconv-version
    5175