(#12077) Add pciutils RPM dependency

This patch adds pciutils as a dependency to the redhat spec file facter/conf/redhat.  Facter uses both lspci and dmidecode to determine the virtual/is_virtual facts/detection of hypervisors, so it should also depend on the pciutils package.  Also reference RHBZ# 783749 for addition of the same to fedora, originally noted by Dominic Cleal.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge pull request #155 from MosesMendoza/ticket/1.6rc/12077_add_pciutils_rpm_dependency

(#12077) Add pciutils RPM dependency
Updated CHANGELOG for 1.6.5 release.
Updating conf/redhat/facter.spec for 1.6.5 release.
Changes apple rake task to reflect package name facter instead of puppet.

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge pull request #158 from MosesMendoza/fix_apple_rake_task

Fix apple rake task
(#12170) Adds gem spec description
Without this patch, the gem spec file is missing a
description attribute, which causes a warning message
when generating the gem.  This patch adds a description
attribute to the spec with the facter tagline
'You can prove anything with facts!'

Signed-off-by: Moses Mendoza <moses@puppetlabs.com>
Merge pull request #160 from MosesMendoza/ticket/1.6.x/12170_add_gem_spec_description

Ticket/1.6.x/12170 add gem spec description
(#12362) Use Tempfile to generate temp files

Previously, facter used ENV['TMP'], ENV['TEMP'], /tmp, etc as it's
temp directory search path, using the first one that existed. It then
used constant file names within the temp directory to re-write the
files in ruby's bin directory, and bat wrappers on Windows.

First, it leads to predictable temp file names, which is bad. Second,
when installing facter via a non-interactive ssh shell, e.g.
  ssh <host> ruby install.rb

which is what the acceptance test harness does, the TMP and TEMP
environment variables are usually not defined. So facter was always
defaulting to /tmp, which doesn't work when installing facter on
Windows agents during acceptance tests.

This commit just changes the install script to use ruby's Tempfile to
generate secure temp files that works in non-interactive shells.
Merge pull request #163 from joshcooper/ticket/1.6.x/12362-use-tempfile

(#12362) Use Tempfile
Merge branch '1.6.x' into 1.6rc
Updated CHANGELOG and lib/facter.rb for 1.6.6rc1
Make ec2 facts work on CentOS again (#12666)

Refactoring the ec2 facts lost the support for CentOS where the
hardware address in arp -an is uppercased.  Fix and add a unit
test now that there are those
Merge pull request #172 from katzj/downcase-arp-again-1.6.x

Downcase arp again 1.6.x (#12666)
Merge branch 'downcase-arp-again-1.6.x' into 1.6rc

* downcase-arp-again-1.6.x:
  Make ec2 facts work on CentOS again (#12666)
Updated CHANGELOG for 1.6.6rc2
(#12669) Preserve timestamps when installing files

Without the preserve option, ruby's FileUtils.install method uses the
current time for all installed files.  For backup systems, package
installs, and general pedantic sysadmins, preserving timestamps makes a
small improvement in the world.
Merge branch 'preserve-timestamps' into 1.6.x

* preserve-timestamps:
  (#12669) Preserve timestamps when installing files
Update CHANGELOG for 1.6.6
(#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.