#33150 closed defect (fixed)
Io: Addon libraries in $prefix/lib/io/addons link against non-existant paths
Reported by: | markemer (Mark Anderson) | Owned by: | ryandesign (Ryan Carsten Schmidt) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.0.99 |
Keywords: | haspatch | Cc: | crazy808s@… |
Port: | Io |
Description (last modified by ryandesign (Ryan Carsten Schmidt))
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 (1)
Change History (13)
comment:1 Changed 13 years ago by ryandesign (Ryan Carsten Schmidt)
Component: | ports → base |
---|---|
Description: | modified (diff) |
Keywords: | linking removed |
Milestone: | MacPorts 2.0.4 |
comment:2 Changed 13 years ago by neverpanic (Clemens Lang)
Keywords: | rev-upgrade added |
---|---|
Owner: | changed from macports-tickets@… to brett@… |
comment:3 Changed 13 years ago by neverpanic (Clemens Lang)
Summary: | Io Rebuilds multiple times before failing → Io: Addon libraries in $prefix/lib/io/addons link against non-existant paths |
---|
comment:4 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
Owner: | changed from brett@… to macports-tickets@… |
---|
Brett has retired from MacPorts.
comment:5 Changed 12 years ago by neverpanic (Clemens Lang)
Component: | base → ports |
---|
comment:6 Changed 12 years ago by jmroot (Joshua Root)
Cc: | ryandesign@… added |
---|
comment:7 follow-up: 8 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | crazy808s@… added |
---|
Has duplicate #36073.
comment:8 Changed 12 years ago by crazy808s@…
Replying to ryandesign@…:
Has duplicate #36073.
Is there currently a way to fix this without uninstalling Io?
Changed 12 years ago by crossd@…
Attachment: | Portfile.Io.diff added |
---|
comment:9 Changed 12 years 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 12 years ago by ryandesign (Ryan Carsten Schmidt)
Cc: | ryandesign@… removed |
---|---|
Keywords: | haspatch added; rev-upgrade removed |
Owner: | changed from macports-tickets@… to ryandesign@… |
Status: | new → assigned |
Thanks. Since this changes the files that get installed, the revision must also be increased.
comment:11 follow-up: 12 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
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 Changed 12 years 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.
for file in $(find $prefix/lib/io/addons -iname '*.dylib'); do otool -L $file | grep "$prefix/lib/libIo"; done | sort | uniq
shows some libraries inlib/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.