Bumb version to indicate branch-point
Erm, actually mark the special %license files as RPMFILE_LICENSE

- Somehow I thought this already got done somewhere... the new special
  %license files need to be marked as RPMFILE_LICENSE for easy querying.
Add cli-switch to query for license files
Extending rpm plugin interface, part 1

This change adds a new type of the rpm plugin, called transaction plugin
and a set of initial hooks for this plugin. The hooks are:

PLUGINHOOK_TSM_PRE
    Pre-transaction hook that is called before an rpm transaction begins
PLUGINHOOK_TSM_POST
    Post-transaction hook that is called after an rpm transaction ends
PLUGINHOOK_PSM_PRE
    Pre-transaction-element hook that is called before an rpm
    transaction-element is processed
PLUGINHOOK_PSM_POST
    Post-transaction-element hook that is called after an rpm
    transaction-element is processed
PLUGINHOOK_SCRIPT_SETUP
    Per-script hook that is called once for each rpm mainainers script
    that is present in the package

Each hook is called for every plugin that have this hook registered.
The avaliable transaction plugins can be specified in macros.in via
transaction_plugins element.

Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
Add $RPM_CONFIGDIR/macros.d/ directory to default macro path (RhBug:846679)

- There of course already is a drop-in directory for macro config bits
  in $(sysconfdir)/rpm/ but as /etc is supposed to be per-host admin
  territory, having another place for system package provided rpm config
  doesn't seem unreasonable.
- Whether this early in the path is the best possible or even reasonable
  position for this remains to be seen... but this way it could be used
  for "factory default" config bits by rpm itself as well, while still
  permitting vendor/host/user override.
Remove unnecessary casts
Account for temporary disk-space requirements on updates (ticket #175)

- When updating packages, we first create them with a temporary names
  and only after all files from payload have been created this way,
  the files are renamed to the final target. This means that performing
  an update temporarily requires roughly twice the disk space (and inodes)
  compared to the final result on per-package level. Which matters
  when space is tight, such as presumably in RhBug:872314.
- Simulate what happens on upgrades by adding block and inode delta
  to the equation: installing a file always consumes an inode and
  the specified amount of disk space. But when replacing files,
  reduce the size-delta from disk consumption *after* checking for
  problems in a given DSI.
- Also fixes inode accounting which has been broken for forever (since
  commit a9a1fd866c573f41287e6ad256ce64b3970a1eaa more exactly)
Remove ancient, no longer relevant comment

- Since commit f7f5f88f9f3d6587e747b034ccb64a3f00ff4e1e, only the first
  instance of shared files is created, the rest are FA_SKIP which
  consume no disk space and are not counted either.
Account for temporary disk-space requirement on forced replace too

- Similar to commit 85df102165fdbe64978f2019d757d400e7448218, but
  for forced file replacements.
Add --undefine cli switch for undefining macros (related to RhBug:876308)
Fix double-free on %caps in spec (RhBug:877512)

- Fixes regression caused by dumb refactoring mistake in commit
  807ba93a6cf168410e3801347898949f356fcd6c
Avoid locale issues in rpm2cpio.sh (RhBug:878363)

- In gawk >= 4.0.x printf() "adjusts" things according to current locale,
  but we need the data as it is. Forcing C locale prevents gawk from
  getting funny ideas about character conversions...
Improving script related rpm plugin hooks.

Two new hooks added:
PLUGINHOOK_SCRIPT_PRE_FUNC
Called before script execution
PLUGINHOOK_SCRIPT_POST_FUNC
Called after script execution

Both hooks are called for externals and internal lua scripts.
POST hook is called even if script execution has failed and
the return code is given as an argument.

Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
Add missing <errno.h> include

- Should've been in commit cbd6ef58bbc122e6adf2138679915bd3845d6756,
  this breaks build when selinux-support is not compiled in
Revert "Improving script related rpm plugin hooks."

- This version of the patch was not intended to be pushed, a stupid
  Monday accident...

This reverts commit d1d050a07312bde00ba0b7f93ee91fd7dceb867c.
Avoid deprecation warnings from NSS >= 3.14

- NSS >= 3.14 introduces support for DSA2 and marks DSA_SUBPRIME_LEN
  as deprecated. Use explicit DSA1_SUBPRIME_LEN (we only support DSA1
  for now) instead where available, add compatibility define for
  older versions.
- Also directly include <blapit.h> where its defined - blabit.h gets
  included via cryptohi.h but being explicit about it avoids having
  to redefine it again "just in case".
Use NSS-defined constants for DSA q-bits and signature length too

- No functional changes here (either), but using the proper constants
  simply makes things that little bit clearer.
Remove extra ',' in NSS configure checks, whoops
Get rid of long since deprecated VFY_VerifyDigest() uses

- VFY_VerifyDigest() has been deprecated since NSS >= 3.12 and for
  a good reason too: with VFY_VerifyDigest() caller needs to painfully
  enumerate every possible supported enc + hash combination, only for
  NSS to revert the process. Use the saner VFY_VerifyDigestDirect()
  interface instead and test for its presence in configure.
- This means we now require NSS >= 3.12 but as that's already 4.5 years
  old and included in ancient beasts like RHEL-4, this doesn't seem
  exactly unreasonable requirement. And then there's always beecrypt...
Improving scriptlet related rpm plugin hooks.

Three new hooks added:
PLUGINHOOK_SCRIPTLET_PRE_FUNC
Called before scriptlet execution
PLUGINHOOK_SCRIPTLET_FORK_POST_FUNC
Called after fork() but before scriptlet execution
PLUGINHOOK_SCRIPTLET_POST_FUNC
Called after scriptlet execution

Currently pre and post hooks are called for externals and internal lua scripts.
post hook is called even if scriptlet execution has failed and
the return code is given as an argument.

fork_post hook is only called for external scriptlets,
because for internal scriptlets no fork() is currently performed.

Signed-off-by: Panu Matilainen <pmatilai@redhat.com>