Opened 10 years ago

Closed 10 years ago

#27641 closed defect (fixed)

boost uses icu even without the +icu variant

Reported by: ryandesign (Ryan Schmidt) Owned by: adfernandes (Andrew Fernandes)
Priority: Normal Milestone:
Component: ports Version: 1.9.2
Keywords: Cc:
Port: boost

Description

I have boost installed without the icu variant, but it still linked with the icu libraries. It mustn't do that.

$ port installed boost
The following ports are currently installed:
  boost @1.45.0_0+python26+universal
  boost @1.45.0_1+python26+universal (active)
$ port deps boost +python26 +universal
Full Name: boost @1.45.0_1+python26+universal
Library Dependencies: zlib, expat, bzip2, python26
$ sudo port install source-highlight
[...]
dyld: Library not loaded: /opt/local/lib/libicuuc.44.dylib
  Referenced from: /opt/local/lib/libboost_regex-mt.dylib
  Reason: image not found
$ port provides /opt/local/lib/libicuuc.44.dylib
/opt/local/lib/libicuuc.44.dylib does not exist.
$ port provides /opt/local/lib/libicuuc.46.dylib 
/opt/local/lib/libicuuc.46.dylib is provided by: icu

Change History (4)

comment:1 Changed 10 years ago by adfernandes (Andrew Fernandes)

Dang. I looked into this, and boost also links/builds python, and ignores the "--without-python" flag.

I have no idea why; but I really don't want to spend hours debugging a horrible, undocumented tool like the bootstrapped bjam.

Every time I try to ask for help (or have others) the boost developers seem bewildered that you'd build a configuration not like theirs. :-(

If anyone has suggestions, I'm happy to listen!

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

I've just rebuilt boost with the +icu variant on my boxes. Is it perhaps a solution to delete the icu variant and just make the icu port a permanent dependency of boost?

comment:3 in reply to:  2 Changed 10 years ago by adfernandes (Andrew Fernandes)

Replying to ryandesign@…:

I've just rebuilt boost with the +icu variant on my boxes. Is it perhaps a solution to delete the icu variant and just make the icu port a permanent dependency of boost?

Yes; I've just spent a long time winding my way through the boost configuration and build system, and it seems that boost doesn't actually configure itself to use or not-use icu. Instead, it just adds icu to the search path. Since bzip2, expat, and zlib are all taken from MacPorts, it automagically finds icu as well. There's no way to stop it.

I'm re-building boost now to do this and will commit when tested.

comment:4 Changed 10 years ago by adfernandes (Andrew Fernandes)

Resolution: fixed
Status: newclosed

Committed in r74805.

Note: See TracTickets for help on using tickets.