Opened 12 years ago

Closed 11 years ago

Last modified 11 years ago

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

Portfile.Io.diff (1.3 KB) - added by crossd@… 11 years ago.

Download all attachments as: .zip

Change History (13)

comment:1 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Component: portsbase
Description: modified (diff)
Keywords: linking removed
Milestone: MacPorts 2.0.4

comment:2 Changed 12 years ago by neverpanic (Clemens Lang)

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

comment:3 Changed 12 years ago by neverpanic (Clemens Lang)

Summary: Io Rebuilds multiple times before failingIo: 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 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: baseports

comment:6 Changed 12 years ago by jmroot (Joshua Root)

Cc: ryandesign@… added

comment:7 Changed 12 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: crazy808s@… added

Has duplicate #36073.

comment:8 in reply to:  7 Changed 12 years ago by crazy808s@…

Replying to ryandesign@…:

Has duplicate #36073.

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

Changed 11 years ago by crossd@…

Attachment: Portfile.Io.diff added

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

Cc: ryandesign@… removed
Keywords: haspatch added; rev-upgrade removed
Owner: changed from macports-tickets@… to ryandesign@…
Status: newassigned

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

comment:11 Changed 11 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: assignedclosed

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 11 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.

Note: See TracTickets for help on using tickets.