(#11511) Split lsb facts into multiple files

If a fact is stored in a file that does not follow the convention
$factname.rb we may encounter ordering and recursion issues as seen in
bugreport #11511. The concrete example was

- flush clears all facts
- load_all is triggered to reload facts
- inside an .rb file we query the operatingsystem fact directly
  (say outside a Facter.add block)
- the operatingsystem fact has a suitable resolver for linux which
  wants to query the lsbdistid fact, which is (apperently) not yet
  loaded (this might not even be predictable)
- the loader doesnt find a lsbdistid.rb file so it triggers load_all
  (remember: we are still trying to get a value for operatingsystem)
- the load_all does load other files (like processor.rb) that want to
  query the architecture fact directly (outside a Facter.add block)
- the architecture fact is dependent on the operatingsystem fact, we are
  currently trying to resolve -> boom: recursion

This commit implements one possible fix: Split the lsb facts into
differnet files so the loader finds them. We therefore dont have to run
load_all in the middle of a fact resolution.
(#12720) Add Solaris CPU info to 'processorN' fact.
Merge pull request #180 from chrisgardner/ticket/1.6.x/12720-solaris_cpuinfo

(#12720) Add Solaris CPU info to 'processorN' fact.
Updating CHANGELOG and lib/facter.rb for Facter 1.6.7rc1
Update CHANGELOG for Facter 1.6.7
(#12831) Fix recursion on first kernel fact resolution

We encounter a recursion if we want to detect the kernel fact for the first
time:

The kernel codeblock calls

    Facter::Util::Resolution.exec("uname -s")

and Facter::Util::Resolution#exec wants to detect if we can use `which`
to get the full path of the command. But the method
Facter::Util::Resolution#have_which tries to query the kernel fact again
to check if we are on windows.

Change the check in have_which so we dont have to query the kernel fact.
(#12831) Add rspec tests to have_which method in Resolution

Tests cases were originally provided by Ken Barber:

Previously we had no coverage of this important method. This adds very basic
testing, including failure testing for Windows.
Merge branch 'ticket/1.6.x/12831' into 1.6.x

* ticket/1.6.x/12831:
  (#12831) Add rspec tests to have_which method in Resolution
  (#12831) Fix recursion on first kernel fact resolution
Update CHANGELOG lib/facter.rb for 1.6.8rc1
Update CHANGELOG for Facter 1.6.8
Update rpm spec file

This commit updates the rpm spec file to change
the ruby dependencies to version 1.8.5. It also
removes any conditionals for ruby abi, because
we can now assume ruby abi present. The
dependency on ruby is bumped to version 1.8.5,
as we can also assume this ruby version, given
that el4 is EOL. The facter version is bumped
to 1.6.8 to reflect the latest released version.
Finally, this commit removes the manual noarch
build setting, as facter is now arch-specific
because of its dependency on dmidecode.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
(#12864) Windows: get primary DNS from registry

Windows does not expose the host's primary DNS suffix via WMI, only the
registry. This commit adds a registry helper class and will retrieve the
primary DNS suffix from the registry. In the case the primary DNS suffix
does not exist or is empty, the domain fact will fall back to using WMI
for any connection-specific DNS suffix.
(#11511) Correct lsbrelease specfile filename

All spec files should follow the convention foo_spec.rb. Rename
spec/unit/lsbrelease.rb to spec/unit/lsbrelease_spec.rb.
Merge pull request #176 from stschulte/ticket/1.6.x/11511

Split lsb facts due to nasty recursion problem
Wrap dmidecode/pciutils in ifarch block

This commit wraps the requirement of dmidecode
and pciutils in an ifarch block, because these
packages are not available on all arches.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge pull request #192 from jeffweiss/ticket/1.6.x/12864_windows_primary_dns_suffix

Ticket/1.6.x/12864 windows primary dns suffix
Revert "(#12864) Windows: get primary DNS from registry"

This reverts commit 14eee2b96f0b7f08416bd9ed5087fcaa9c6d0566 so that it
can be re-targeted to 2.0.0 based on discussions on pull request 192 and
within the ticket. The changes are re-targeted to master in pull request
193.
Merge pull request #194 from jeffweiss/maint/1.6.x/revert_windows_domain_commit

Maint/1.6.x/revert windows domain commit
Merge pull request #191 from MosesMendoza/ticket/1.6.x/update_redhat_spec_file

Ticket/1.6.x/update redhat spec file
(#14332) Correct stubbing on Ubuntu

The tests for facter fail on Ubuntu because lsbdistid is not correctly stubbed.
This patch fixes that small mistake by stubbing lsbdistid for all Linux tests,
except where the test is really about testing for Ubuntu.