Added FreeBSD portmaster package_method
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#
Change 'This promise has already been verified' message from verbose to debug
NULL-proof ScopeGet

This arised when function regarray was calling ScopeGet with a NULL pointer,
resulting in a segfault. We have as a rule agreed that this is an error on
the caller side, but since we are getting close to the release, I don't want
to risk additional segfaults due to careless callers. Either way, ScopeGet is
marked for deprecation.
Ensure scope 'this' is properly restored, add unit test.

Close #2632
Ensure common bundle convergence, acceptance test, Close #5222

This ensures that common bundles are converged (variable resolution) before
other types of bundles, and that promise types within common bundles
are converged in normal order.
Merge pull request #707 from sigurdteigen/cleanup/promise-already-verified-message

Change 'This promise has already been verified' message from verbose to ...
Merge pull request #708 from sigurdteigen/fix/null-proof-scopeget

NULL-proof ScopeGet
Merge pull request #589 from worr/freebsd_portmaster

Added FreeBSD portmaster package_method
Merge pull request #705 from sigurdteigen/master

Ensure policy marker files are generated
Merge pull request #709 from sigurdteigen/fix/restore-this-scope

Ensure scope 'this' is properly restored, add unit test.
Merge pull request #710 from sigurdteigen/fix/common-bundle-ordering

Ensure common bundle convergence, acceptance test, Close #5222
Switch to a compromise behavior in shell execution.

After powershell support was introduced in 0117c067e4fc67c6e2, we
stopped caring if the first word in a shell command was a valid
executable with an absolute path. This was in order to be able to use
shell builtins. However, it causes a behavior change in existing
policies that is potentially dangerous: Specifying a nonexisting
command would leave the variable unassigned with the old behavior,
whereas in the new behavior, the variable will contain the error
message from the shell.

Switching back to the old behavior will break shell builtins again, so
instead we do the compromise: Only look for an executable if the
command starts with an absolute filename. Since absolute filenames
were previously enforced, virtually all existing policies should have
them and therefore use the old behavior.

Solves issue 2738.
More ChangeLog entries.
Merge pull request #713 from kacfengine/changelog

More ChangeLog entries.
Remove documentation generation from build system.
Remove documentation from core repository.

Much of this has already been converted to markdown.
The rest is unchanged between master and 3.4.x branch, which can
server as an archive of un-converted content.
Redmine#2753: do not call readlink() on a directory to avoid spurious error message
Merge pull request #712 from kacfengine/issue-2738

Switch to a compromise behavior in shell execution.
Fix syntax errors in standard library

1. In valid slist (missing ",")
2. expireafter not allowed in package_method