Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#44846 closed defect (invalid)

icu @53.1_1 __PREFIX__ not replaced after patch

Reported by: zan@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.3.1
Keywords: haspatch Cc: ryandesign (Ryan Carsten Schmidt)
Port: icu

Description

Upgrading icu to version 53.1_1 completes without error, but after activation MacPorts scans the installed binaries for link errors and the following error shows:

--->  Updating database of binaries
--->  Scanning binaries for linking errors
Could not open __PREFIX__/lib/libicudata.53.dylib: Error opening or reading file (referenced from /opt/local/bin/derb)
Could not open __PREFIX__/lib/libicuuc.53.dylib: Error opening or reading file (referenced from /opt/local/bin/derb)
Could not open __PREFIX__/lib/libicui18n.53.dylib: Error opening or reading file (referenced from /opt/local/bin/derb)
Could not open __PREFIX__/lib/libicutu.53.dylib: Error opening or reading file (referenced from /opt/local/bin/derb)
Could not open __PREFIX__/lib/libicuio.53.dylib: Error opening or reading file (referenced from /opt/local/bin/derb)
Could not open __PREFIX__/lib/libicule.53.dylib: Error opening or reading file (referenced from /opt/local/lib/libiculx.53.1.dylib)
--->  Found 85 broken file(s), matching files to ports   
--->  Found 1 broken port(s):
     icu @53.1 -doc
         /opt/local/bin/derb
         /opt/local/bin/genbrk
         /opt/local/bin/gencfu
         /opt/local/bin/gencnval
         /opt/local/bin/gendict
         /opt/local/bin/genrb
         /opt/local/bin/icuinfo
         /opt/local/bin/makeconv
         /opt/local/bin/pkgdata
         /opt/local/bin/uconv
         /opt/local/lib/libicui18n.53.1.dylib
         /opt/local/lib/libicuio.53.1.dylib
         /opt/local/lib/libicule.53.1.dylib
         /opt/local/lib/libiculx.53.1.dylib
         /opt/local/lib/libicutest.53.1.dylib
         /opt/local/lib/libicutu.53.1.dylib
         /opt/local/lib/libicuuc.53.1.dylib
         /opt/local/sbin/genccode
         /opt/local/sbin/gencmn
         /opt/local/sbin/gennorm2
         /opt/local/sbin/gensprep
         /opt/local/sbin/icupkg

Solution: the __PREFIX__ inserted by patch-config-mh-darwin.diff needs to be replaced with ${prefix} by a post-patch reinplace. Portfile patch attached.

Attachments (1)

Portfile.diff (353 bytes) - added by zan@… 10 years ago.

Download all attachments as: .zip

Change History (5)

Changed 10 years ago by zan@…

Attachment: Portfile.diff added

comment:1 in reply to:  description Changed 10 years ago by larryv (Lawrence Velázquez)

Resolution: invalid
Status: newclosed

Replying to zan@…:

Upgrading icu to version 53.1_1 completes without error, but after activation MacPorts scans the installed binaries for link errors and the following error shows:

--->  Updating database of binaries
--->  Scanning binaries for linking errors
Could not open __PREFIX__/lib/libicudata.53.dylib: Error opening or reading file (referenced from /opt/local/bin/derb)
Could not open __PREFIX__/lib/libicuuc.53.dylib: Error opening or reading file (referenced from /opt/local/bin/derb)
Could not open __PREFIX__/lib/libicui18n.53.dylib: Error opening or reading file (referenced from /opt/local/bin/derb)
Could not open __PREFIX__/lib/libicutu.53.dylib: Error opening or reading file (referenced from /opt/local/bin/derb)
Could not open __PREFIX__/lib/libicuio.53.dylib: Error opening or reading file (referenced from /opt/local/bin/derb)
Could not open __PREFIX__/lib/libicule.53.dylib: Error opening or reading file (referenced from /opt/local/lib/libiculx.53.1.dylib)
--->  Found 85 broken file(s), matching files to ports   
--->  Found 1 broken port(s):
     icu @53.1 -doc

Your log output suggests that your icu is not actually @53.1_1. That version of the icu port does not insert “__PREFIX__” into config/mh-darwin, so your patch would not actually do anything. Please run:

% sudo port selfupdate
% sudo port -f uninstall icu and installed
% sudo port install icu
% sudo port unsetrequested icu

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

My response may be partly redundant with Larry's; I did not see his response while composing mine.

There is no __PREFIX__ in patch-config-mh-darwin.diff. I removed it from the patch in r123758, which was the same revision in which the port's revision was increased to 1. So somehow you received the update to the portfile, but you did not receive the updated patchfile. Do you have any idea how this could have occurred? Do you have any local modifications to these files? To fix the problem, you need to get the correct updated version of both the portfile and the patch, and then force the port to rebuild by running "sudo port -n upgrade --force icu".

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

Cc: ryandesign@… added

Cc Me!

comment:4 in reply to:  2 Changed 10 years ago by zan@…

Replying to ryandesign@…:

My response may be partly redundant with Larry's; I did not see his response while composing mine.

There is no __PREFIX__ in patch-config-mh-darwin.diff. I removed it from the patch in r123758, which was the same revision in which the port's revision was increased to 1. So somehow you received the update to the portfile, but you did not receive the updated patchfile. Do you have any idea how this could have occurred? Do you have any local modifications to these files? To fix the problem, you need to get the correct updated version of both the portfile and the patch, and then force the port to rebuild by running "sudo port -n upgrade --force icu".

Yes, that solved it. I do have a local ports tree. Because the new patchfile had the same name as the old one, I didn't see the update. Thanks. Sorry about the confusion.

Note: See TracTickets for help on using tickets.