Ticket #33150 (closed defect: fixed)
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
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: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?
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.

