Opened 11 years ago

Closed 11 years ago

Last modified 11 years ago

#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)

main.log (109.6 KB) - added by davydden@… 11 years ago.
main-octave.log (15.1 KB) - added by davydden@… 11 years ago.

Download all attachments as: .zip

Change History (10)

Changed 11 years ago by davydden@…

Attachment: main.log added

comment:1 Changed 11 years ago by davydden@…

I tried rebuilding octave-devel +gcc47 +atlas, it fails again on harfbuzz (log file is attached above):

--->  Cleaning pkgconfig
--->  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 rebuilding harfbuzz
    while executing
"error "Error rebuilding $portname""
    (procedure "revupgrade_scanandrebuild" line 382)
    invoked from within
"revupgrade_scanandrebuild broken_port_counts $opts"
    (procedure "macports::revupgrade" line 5)
    invoked from within
"macports::revupgrade $opts"
    (procedure "action_revupgrade" line 2)
    invoked from within
"action_revupgrade $action $portlist $opts"
    (procedure "action_target" line 94)
    invoked from within
"$action_proc $action $portlist [array get global_options]"
    (procedure "process_cmd" line 95)
    invoked from within
"process_cmd $remaining_args"
    invoked from within
"if { [llength $remaining_args] > 0 } {

    # If there are remaining arguments, process those as a command
    set exit_status [process_cmd $remaining..."
    (file "/opt/local/bin/port" line 4785)
Last edited 11 years ago by davydden@… (previous) (diff)

Changed 11 years ago by davydden@…

Attachment: main-octave.log added

comment:2 Changed 11 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 11 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 11 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 11 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 11 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: invalid
Status: newclosed

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:7 Changed 11 years ago by davydden@…

thank you for the advice.

comment:8 Changed 11 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.

Note: See TracTickets for help on using tickets.