Fix references, typo and formating
Make sure that long lines are displayed in Sphinx

Before this fix the very long lines (110+ symbols) under the
preformatted text <pre> tag would be cut short in Sphinx HTML output.
Add internal path expansion functions

Add an adapted version of Heimdal's expand_path.c, defining
k5_expand_path_tokens() and k5_expand_path_tokens_extra().  These
functions allow template paths like %{TEMP}/krb5cc_%{uid} to be
resolved.  Also add a test program to exercise the path expansion
code.
Add token expansion for keytab names

Make the default_keytab_name and default_client_keytab_name variables
subject to parameter expansion.

ticket: 7219 (new)
Rearrange ccdefname.c slightly

Eliminate the USE_CCAPI variant of get_from_os() which was only used
in KfM.  Make get_from_os() allocate its result (wrapping the Windows
implementation so it can continue to use a fixed-size buffer).
Simplify krb5_cc_set_default_name() and krb5_cc_default_name().  Make
some minor style adjustments.
Rename tests/t_cccol.py to t_ccache.py

Generalize the ccache collection tests in t_cccol.py to multiple kinds
of ccache tests, and rename it to avoid confusion with the lower-level
lib/krb5/ccache/t_cccol.py.  Move a test from t_general.py into
t_ccache.py.
Add default_ccache_name profile variable

Like default_keytab_name and default_client_keytab_name,
default_ccache_name is subject to parameter expansion.

ticket: 7220 (new)
Support changing the built-in ccache/keytab names

* Add DEFCCNAME, DEFKTNAME, and DEFCKTNAME configure variables to
  change the built-in ccache and keytab names.
* Add krb5-config options to display the built-in ccache and keytab
  names.
* In the default build, use krb5-config to discover the system's
  built-in ccache and keytab names and use them (if not overridden).
  This can be controlled with the --with-krb5-config=PATH or
  --without-krb5-config configure options.
* Make the built-in ccache name subject to parameter expansion.

ticket: 7221 (new)
Minor fixes to expand_path.c

Corrections to stuff noticed by kaduk:
* Eliminate a space before paren in a call to free().
* Use %lu for unsigned long in format strings.
* Simplify the tokens table definition.
Remove obsolete code in ldap_pwd_policy.c

r18750 refactored some policy fetching code into populate_policy(),
and left the old code in #if 0 blocks.  Get rid of those blocks now.
Factor out LDAP policy marshalling

Use a helper function add_policy_mods() in
krb5_ldap_create_password_policy() and krb5_ldap_put_password_policy()
to avoid duplicating code for each field.
Remove eDirectory support code in LDAP KDB module
De-indent process_k5beta6_record()
Fix ugly ladder in src/kadmin/cli/kadmin.c
Policy extensions + new policy: allowed ks types

This simply adds KADM5_API_VERSION_4 and various fields to the
policy structures:

 - attributes         (policy-ish principal attributes)
 - max_life           (max ticket life)
 - max_renewable_life (max ticket renewable life)
 - allowed_keysalts   (allowed key/salt types)
 - TL data            (future policy extensions)

Of these only allowed_keysalts is currently implemented.

Some refactoring of TL data handling is also done.

ticket: 7223 (new)
Constify krb5_string_to_keysalts()'s string arg
Add LDAP back end support for policy extensions

ticket: 7223
Revert an out-of-scope change in policy extensions
Fix edge-case bugs in kdb5_util load

* fscanf field widths must be less than the buffer size, not equal to
  it.
* Check for negative values of lengths we're going to allocate.
* Eliminate a warning in the comparison of the regexp end offset.
* process_r1_8 policy doesn't actually ignore additional values, so
  get rid of the comment and inequality test suggesting that it does.

ticket: 7224 (new)
Updated logs URL for #krbdev channel