#38712 closed defect (invalid)
harfbuzz: linking error
Reported by: | davydden@… | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.1.3 |
Keywords: | Cc: | ||
Port: | harfbuzz |
Description
I tried cleaning, uninstalling, self-updating etc, nothing helps. Could be related to the recent update of Xcode i did.
I don't know if that helps, but i started to have problems with gnuplot, so decided to reinstall it. It did not compile because of harfbuzz. Previously i think i had gnuplot from octave-devel +gcc47, so i guess gcc was also used to compile dependencies (gnuplot->harfbuzz).
sudo port install gnuplot dyld: DYLD_ environment variables being ignored because main executable (/usr/bin/sudo) is setuid or setgid ---> Computing dependencies for harfbuzz ---> Fetching archive for harfbuzz ---> Attempting to fetch harfbuzz-0.9.15_0+universal.darwin_12.i386-x86_64.tbz2 from http://packages.macports.org/harfbuzz ---> Attempting to fetch harfbuzz-0.9.15_0+universal.darwin_12.i386-x86_64.tbz2 from http://lil.fr.packages.macports.org/harfbuzz ---> Attempting to fetch harfbuzz-0.9.15_0+universal.darwin_12.i386-x86_64.tbz2 from http://mse.uk.packages.macports.org/sites/packages.macports.org/harfbuzz ---> Fetching distfiles for harfbuzz ---> Verifying checksum(s) for harfbuzz ---> Extracting harfbuzz ---> Configuring harfbuzz ---> Building harfbuzz Error: org.macports.build for port harfbuzz returned: command execution failed Please see the log file for port harfbuzz for details: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_graphics_harfbuzz/harfbuzz/main.log Error: Unable to upgrade port: 1 Error: Unable to execute port: upgrade pango failed
Attachments (2)
Change History (10)
Changed 12 years ago by davydden@…
comment:1 Changed 12 years ago by davydden@…
Changed 12 years ago by davydden@…
Attachment: | main-octave.log added |
---|
comment:2 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | ryandesign@… removed |
---|---|
Owner: | changed from macports-tickets@… to ryandesign@… |
The log says:
:info:build ld: warning: ignoring file /opt/local/lib/libfreetype.dylib, file was built for unsupported file format ( 0xcf 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 1 0x 3 0x 0 0x 0 0x 0 0x 6 0x 0 0x 0 0x 0 ) which is not the architecture being linked (i386): /opt/local/lib/libfreetype.dylib
So you are trying to install harfbuzz universal, but freetype is not installed universal. That should not be possible since MacPorts checks the architectures of dependencies. What's the output of:
port -v installed freetype lipo -info /opt/local/lib/libfreetype.dylib
comment:3 Changed 12 years ago by davydden@…
The output is:
port -v installed freetype The following ports are currently installed: freetype @2.4.10_0+universal (active) platform='darwin 12' archs='i386 x86_64' lipo -info /opt/local/lib/libfreetype.dylib Non-fat file: /opt/local/lib/libfreetype.dylib is architecture: x86_64
it seems to be universal.
comment:4 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
As suspected: MacPorts claims it was installed universal for i386 x86_64, but it is actually only installed for x86_64, hence the problem.
This should not have happened. Perhaps you installed some third-party software that overwrote some of your MacPorts libraries? See wiki:ProblemHotlist#xmlwf for some possible culprits.
The solution is probably to reinstall freetype:
sudo port -n upgrade --force freetype
However if third-party software overwriting freetype was the cause, then it is likely that additional libraries other than freetype have been affected as well and will need to be reinstalled as well. But identifying those ports may be difficult. If you can figure out which third-party program caused this, you could try to examine its installer. For example, if it's an Apple Installer package, you can open it and use the Installer's "Show Files" menu item. If that won't work, you could try to identify them all by using "port -v installed" and "lipo -info" on every installed port, or write a script to do that. Or to be safe just uninstall and reinstall all ports.
comment:5 Changed 12 years ago by davydden@…
thank you very much for your help. Reinstalling freetype indeed helped, now i have some other problems with other ports, so probably need to reinstall some too... What third part software could have replaced freetype, i don't know, i don't even know when this happened.
comment:6 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → invalid |
---|---|
Status: | new → closed |
If you find another such affected library, before reinstalling the port, check the modification date and time of the library. Then, search your hard drive (e.g. using the find
command) for other files modified around the same time. That may help you find the responsible software.
comment:8 Changed 12 years ago by jmroot (Joshua Root)
You actually shouldn't need to force upgrade the ports if their files were clobbered, just deactivating (often needs -f because of dependents) and then activating them should restore the correct files. That won't get rid of any extra files that were installed though.
I tried rebuilding octave-devel +gcc47 +atlas, it fails again on harfbuzz (log file is attached above):