facter 3, boost, and static libraries

31 views
Skip to first unread message

Clay Caviness

unread,
Jul 6, 2016, 6:42:36 PM7/6/16
to Puppet Developers
Hello,

I've been working on getting (open-source) facter 3.1.8 compiled on macOS. I was running into all sorts of "undefined symbols" issues, and finally sorted out that it doesn't complie -DBOOST_STATIC=ON any longer.

I eventually found: https://tickets.puppetlabs.com/browse/LTH-74, which says: "Probably moving to using dynamic libraries with Boost 1.61, so won't fix this."

Does this mean you (Puppet) will now be shipping the boost libraries, then? All of them? Or just the ones you use? How are you determining which one to ship? (And why move away from static in the first place?)

Thanks

Michael Smith

unread,
Jul 6, 2016, 6:47:12 PM7/6/16
to puppe...@googlegroups.com
We still compile with -DBOOST_STATIC=ON in several circumstances (https://github.com/puppetlabs/puppet-agent/blob/master/configs/components/facter.rb#L198), so I'm not sure how you reach that conclusion.

However, the note in LTH-74 meant that we would probably switch our packaging (what I linked to above) to using dynamic libraries, due to an issue with a global from Boost.Regex in multiple static libraries (introduced in Boost 1.61). It's undecided how that would be done yet, but might mean shipping all the Boost libraries and include headers.

--
You received this message because you are subscribed to the Google Groups "Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to puppet-dev+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/f9a72c19-d837-4447-b5d8-9dcf71fdb459%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Clay Caviness

unread,
Jul 7, 2016, 11:34:18 AM7/7/16
to puppe...@googlegroups.com
Thanks for the pointers.

Turns out this was user error - a poorly-configured install of leatherman was sitting in a location cmake was searching in (before my more recent installs in /usr/local). Facter was only successfully compiling when disabling BOOST_STATIC because cmake was using the older leatherman.

Once I removed the hidden broken leatherman, things seem to be proceeding more normally.

Reply all
Reply to author
Forward
0 new messages