puppetlabs/facter — pull request #188 by glarizza (2012-04-05 21:29:34+00:00)
Title: [#11299] Replace facter/util/plist with cfpropertylist

Previously, the facter/util/plist library was used for plist
manipulation in OS X. This library could only handle XML plists, and
thus we needed to convert every possible plist that Facter could read to
XML before reading it. This incurred a great speed hit for anyone using
Facter with OS X.

The CFPropertyList project (https://github.com/ckruse/cfpropertylist),
maintained by Christian Kruse, is a library that can not only read XML
and Binary plist files, but also can use either the libxml, nokogiri, or
built-in REXML library to do so. This is ideal as the libxml library can
utilize c extensions to do the reading/converty and thus is quite fast.

This commit introduces the CFPropertyList project into the puppet/util
namespace, and refactors all code to use this library. The version committed
into Facter is 2.1 of the CFPropertyList library.