New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #33150 (closed defect: fixed)

Opened 17 months ago

Last modified 5 months ago

Io: Addon libraries in $prefix/lib/io/addons link against non-existant paths

Reported by: emer@… Owned by: ryandesign@…
Priority: Normal Milestone:
Component: ports Version: 2.0.99
Keywords: haspatch Cc: crazy808s@…
Port: Io

Description (last modified by ryandesign@…) (diff)

When trying to install Io on 10.7, I get the following:

--->  Scanning binaries for linking errors: 95%
Warning: Error parsing file /opt/local/lib/io/addons/LZO/CMakeFiles/IoLZO.dir/source/minilzo.c.o: Premature end of data, possibly corrupt file
--->  Scanning binaries for linking errors: 96%
Warning: Could not open /opt/local/lib/libIoSystemCall.dylib: Error opening or reading file

Warning: Could not open /opt/local/lib/libIoBlowfish.dylib: Error opening or reading file

Warning: Could not open /opt/local/lib/libIoSocket.dylib: Error opening or reading file

Warning: Could not open /opt/local/lib/libIoBox.dylib: Error opening or reading file

Warning: Could not open /opt/local/lib/libIoYajl.dylib: Error opening or reading file

Warning: Could not open /opt/local/lib/libIoMD5.dylib: Error opening or reading file
--->  Scanning binaries for linking errors: 97%
Warning: Could not open /opt/local/lib/libIoRange.dylib: Error opening or reading file
--->  Scanning binaries for linking errors: 98%
Warning: Could not open /opt/local/lib/libIoOgg.dylib: Error opening or reading file
--->  Scanning binaries for linking errors: 100%

It then rebuilds 3 times before giving up.

Attachments

Portfile.Io.diff (1.3 KB) - added by crossd@… 5 months ago.

Change History

comment:1 Changed 17 months ago by ryandesign@…

  • Keywords linking removed
  • Component changed from ports to base
  • Description modified (diff)
  • Milestone MacPorts 2.0.4 deleted

comment:2 Changed 17 months ago by cal@…

  • Owner changed from macports-tickets@… to brett@…
  • Keywords rev-upgrade added

comment:3 Changed 17 months ago by cal@…

  • Summary changed from Io Rebuilds multiple times before failing to Io: Addon libraries in $prefix/lib/io/addons link against non-existant paths

for file in $(find $prefix/lib/io/addons -iname '*.dylib'); do otool -L $file | grep "$prefix/lib/libIo"; done | sort | uniq shows some libraries in lib/io/addons link against files that do not exist. Those files can be found in $prefix/lib/io/addons/$extension_name/_build/dll/libIo$extension_name.dylib.

The maintainer should consider fixing the broken linkage paths by adjusting the build process or after the build with install_name_tool -change. If a non-issue or not-fixable we can also have problems in these files ignored by rev-upgrade, however this should be the last resort in such cases.

comment:4 Changed 12 months ago by ryandesign@…

  • Owner changed from brett@… to macports-tickets@…

Brett has retired from MacPorts.

comment:5 Changed 12 months ago by cal@…

  • Component changed from base to ports

comment:6 Changed 11 months ago by jmr@…

  • Cc ryandesign@… added

comment:7 follow-up: ↓ 8 Changed 9 months ago by ryandesign@…

  • Cc crazy808s@… added

Has duplicate #36073.

comment:8 in reply to: ↑ 7 Changed 9 months ago by crazy808s@…

Replying to ryandesign@…:

Has duplicate #36073.

Is there currently a way to fix this without uninstalling Io?

Changed 5 months ago by crossd@…

comment:9 Changed 5 months ago by crossd@…

I have successfully gotten Io to build using the Portfile diff I just attached (though I had to build with gcc; building with clang seems to cause some kind of infinite loop in io_static during the build).

comment:10 Changed 5 months ago by ryandesign@…

  • Keywords haspatch added; rev-upgrade removed
  • Cc ryandesign@… removed
  • Status changed from new to assigned
  • Owner changed from macports-tickets@… to ryandesign@…

Thanks. Since this changes the files that get installed, the revision must also be increased.

comment:11 follow-up: ↓ 12 Changed 5 months ago by ryandesign@…

  • Status changed from assigned to closed
  • Resolution set to fixed

Using a variable called "name" is confusing because portfiles already have a variable called "name" (the port name).

I've committed a modified version of your patch in r101673 which results in only one invocation of install_name_tool per library. I nested the loops, so I had to rename the other variables to not collide.

comment:12 in reply to: ↑ 11 Changed 5 months ago by crossd@…

Replying to ryandesign@…:

Using a variable called "name" is confusing because portfiles already have a variable called "name" (the port name).

I've committed a modified version of your patch in r101673 which results in only one invocation of install_name_tool per library. I nested the loops, so I had to rename the other variables to not collide.

Thanks! This is great.

Note: See TracTickets for help on using tickets.