New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #27641 (closed defect: fixed)

Opened 3 years ago

Last modified 2 years ago

boost uses icu even without the +icu variant

Reported by: ryandesign@… Owned by: adfernandes@…
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

comment:1 Changed 3 years ago by adfernandes@…

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 follow-up: ↓ 3 Changed 3 years ago by 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?

comment:3 in reply to: ↑ 2 Changed 2 years ago by adfernandes@…

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 2 years ago by adfernandes@…

  • Status changed from new to closed
  • Resolution set to fixed

Committed in r74805.

Note: See TracTickets for help on using tickets.