Added FreeBSD portmaster package_method
Fix filestat test pass condition.

Pass when all conditions are met, not when any condition is met.
Redmine #2691: missing group name spec for some platforms in test

The 10_files/02_maintain/205.cf has a test_perms body which sets the
owner and group of the test file by "root" user and a group name,
then the rest of the test run compares the UID and GID numbers to
verify the test. The group names are defined for either linux or freebsd,
but no other platforms.

In the absence of a specification, the file created by the test takes the
default group of the process owner, which for root is "sys" GID 3 on
HP-UX 11.11, causing the test to show "0 3" instead of "0 0" and thus
failing.

This commit adds correct GID 0 group names for hpux, solaris, netbsd,
openbsd, darwin, aix, and cray platforms.

The "sys" group for Cray:
   http://docs.cray.com/books/S-2311-22/html-S-2311-22/z1055890212.html

The "system" group for AIX:
   http://publib.boulder.ibm.com/tividd/td/user_admin/GC32-0661-01/en_US/HTML/admusref34.htm

I was unable to find documentation for unix_sv, sco, qnx, dragonfly, or
vmware platforms.

With this update, the test now passes on HP-UX:

mphp1# ./testall --agent=/var/cfengine/bin/cf-agent 10_files/02_maintain/205.cf
======================================================================
Testsuite started at May 21:19:06
----------------------------------------------------------------------
Total tests: 1

./10_files/02_maintain/205.cf Pass

======================================================================
Testsuite finished at May 21:19:24 (18 seconds)

Passed tests: 1
Failed tests: 0
Failed to crash tests: 0
Skipped tests: 0
mphp1# uname -a
HP-UX mphp1 B.11.11 U 9000/785 2007997283 unlimited-user license
mphp1#
Redmine #2693: some 10_files tests check for unpromised gid numbers

Some platforms, such as HP-UX, do not have root in group 0 by default.
Certain tests expect a string showing mode, nlinks, uid, gid, and size
to show a uid and gid of zero for the test file, but without promising
the GID the file defaults to root's primary group. On HP-UX this is 3,
causing the test to fail.

The tests have been updated to promise the same mode, uid, and gid that
are expected in the "expect" string for the test file that is created.
Using platform.h instead of system headers

This way all the logic for deciding which headers need to be called is
kept inside platform.h.
Merge pull request #675 from cduclos/master

platform.h instead of system headers for HPUX
Set of fixes to logging.
  - Fix setting debug level in options.
  - General standardization of logging
Moar changes
Bring master ChangeLog up to speed wrt 3.4 fixes
Fix MinGW build for output review
Add function categories

This is for output in cf-promises --syntax-description for automatic categorization
of functions for documentation.
Rename ScopeDeleteSpecialScalar -> ScopeDeleteSpecial
Remove ScopeNewScalar, convert to EvalContextVariablePut
Remove ScopeNewList, convert to EvalContextVariablePut
Redmine #2702: add missing uid/gid name mapping for hpux & aix

Tests 01_vars/02_functions/001.cf and 002.cf fail on HP-UX and AIX
because the hard classes don't cover the uid and gid mappings for
those platforms. This commit adds the necessary information to
allow the tests to pass on those two platforms.

HP-UX information was gathered from and tested on my own HP-UX
system, and for AIX see the following links for sample passwd
and group files:

http://pic.dhe.ibm.com/infocenter/aix/v6r1/index.jsp?topic=%2Fcom.ibm.aix.security%2Fdoc%2Fsecurity%2Fpasswords_etc_passwd_file.htm

http://www.rootunix.org/AIX/migrate.txt
Combine ScopeNewSpecialScalar, ScopeNewSpecialList -> ScopeNewSpecial
cannot create documentation for cfengine stdlib with those two misplaced parenthesis
Redmine #2704: fix canonify issue with negative signed chars

On HP-UX 11.11, the "isalnum()" call expects a range of values from
-1 to 255. However the range of a signed char is -127 to 127, and
when an out-of-range negative number is passed to isalnum() on this
platform, the results in the case of the Yen symbol in acceptance
test 01_vars/02_functions/007.cf, with a signed char value of -91,
isalnum() returns "2" which is taken to mean that the Yen symbol
is alphanumeric.

By casting to "unsigned char" before the cast to "int" for the call,
the "-91" value is converted to a valid character set value of 165,
which is properly handled by isalnum() and thus allows the test to
pass.
Merge pull request #678 from jimis/master

Changelog update.
Merge pull request #680 from jremond/parenthesis_misplaced

cfengine_stdlib typo breaks documentation generation