Changes between Version 63 and Version 64 of ProblemHotlist


Ignore:
Timestamp:
Feb 23, 2011, 9:25:45 PM (13 years ago)
Author:
raimue (Rainer Müller)
Comment:

Remove the long gone gettext problem, add libpng instead

Legend:

Unmodified
Added
Removed
Modified
  • ProblemHotlist

    v63 v64  
    5353xmlwf is a part of the expat port (which is a dependency of many other ports, and thus is likely to be one of the first ports to ever get installed), but for some reason this file already exists on your computer, and MacPorts did not install it. The reason is that you have installed a 3rd-party software package -- possibly [http://www.swi-prolog.org/ swi-prolog] -- which was itself built with MacPorts, set to its default prefix, and therefore conflicts with your normal use of MacPorts in its default prefix. The developers of the 3rd-party package you installed should not have distributed their software in this manner; they should have configured MacPorts in a custom prefix instead, one that is unique to their software. (For example, in the case of swi-prolog, /usr/local/swi-prolog or /opt/swi-prolog would be good choices.) The cleanest solution for you at this point is to follow the [http://guide.macports.org/chunked/installing.macports.uninstalling.html MacPorts uninstallation instructions]. This will also remove the 3rd-party software package that installed itself unannounced into MacPorts' prefix. Then you can [http://guide.macports.org/chunked/installing.macports.html install MacPorts] again.
    5454
    55 == A port failed to build, upgrade, or run with a message referring to libintl.3.dylib == #libintl
     55== A command failed to run with a message referring to libpng12.0.dylib == #libpng
    5656
    5757'''Error message:'''[[BR]]
    5858{{{
    59 dyld: Library not loaded: /opt/local/lib/libintl.3.dylib
     59dyld: Library not loaded: /opt/local/lib/libpng12.0.dylib
    6060}}}
    6161
    6262'''Explanation:'''[[BR]]
    63 When the gettext port was updated from 0.14.x to 0.15.x, the libintl library version changed from 3 to 8. Software always links against a specific library version, so the ports you currently have installed that depend on gettext are linked to the now-nonexistent version 3 libintl library. To fix this problem, all ports that depend on gettext will need to be rebuilt so that they link with the new version 8 libintl library. This may be quite a few ports.
     63When the libpng port was updated from 1.2.x to 1.4.x, the libpng library version changed. Software always links against a specific library version, so the ports you currently have installed that depend on libpng are linked against a now-nonexistent version of the libpng library. To fix this problem, all ports that depend on libpng will need to be rebuilt so that they link with the new version of the libpng library. This may be quite a few ports.
    6464
    6565'''Workaround:'''[[BR]]
    66 Here is a script that can tell you what ports you have installed that depend on gettext.
     66We have tried to find all affected ports and incremented the revision number. In most cases a simple upgrade should get them all fixed.
    6767
    6868{{{
    69 #!/bin/bash
    70 if test -z "$1"; then
    71   echo "usage: $0 <libname>"
    72   exit 1
    73 fi
    74 for file in `find /opt/local/lib -name *.dylib; find /opt/local/bin`; do
    75   # Skip this match if it's a symbolic link
    76   if test -f $file -a ! -L $file; then
    77     # Look for references to the missing library
    78     otool -L $file | grep --silent $1
    79     if test "$?" = "0"; then
    80       port provides `echo $file`
    81     fi
    82   fi
    83 # Grab the name of the port and make sure to list each port just once
    84 done | awk -F: ' { print $2 } ' | sort -u
     69sudo port selfupdate
     70sudo port upgrade outdated
    8571}}}
    8672
    87 Copy this script, paste it into a text editor, and save it, e.g. as depsearch.sh. Then run it in the Terminal, passing it the name of the library you want it to search for. In this case, to search for ports that depend on gettext, tell it to look for the library "libintl". E.g. if you saved the script to your Desktop, run it this way:
     73If this does not help, force a rebuild of the port in question by using the following command:
    8874
    8975{{{
    90 bash ~/Desktop/depsearch.sh libintl
     76sudo port -n upgrade --force $portname
    9177}}}
    9278
    93 Now you’ve got a list of ports you need to fix.  Force uninstall each of these ports and remove their archives.
    94 {{{
    95 port uninstall -f <port>
    96 port clean --archive <port>
    97 }}}
    98 
    99 Once that’s done, force an install of each one.
    100 {{{
    101 port install -f <port>
    102 }}}
    103 If you’ve got old nonactivated versions of the port installed, you'll need to remove the old versions first.  You may remove all old versions this way.
    104 {{{
    105 port -duf uninstall
    106 }}}
     79You should also [http://guide.macports.org/#project.tickets file a ticket] against the port in question.
    10780
    10881== A port failed to build with a message referring to 1/lib: No such file or directory == #lib-spaces