[% center("$name $version") %]
[% center("($synopsis)") %]
[% center("Maintained by $maintainer") %]

  [% FOREACH copr IN copyrights %]Copyright [% copr.years %]
  [% copr.holder %].  [% END %]This software is distributed under
  [% license.summary %].  Please see the section LICENSE below for more
  information.
[% IF unmaintained %]
WARNING

  This package is not maintained.
[% indent(to_text(unmaintained), 2) %]
[% END %]
BLURB

[% indent(to_text(blurb), 2) %]

DESCRIPTION

[% indent(to_text(description), 2) %]

REQUIREMENTS

[% indent(to_text(requirements), 2) %]
[% IF build.autotools %]

  To bootstrap from a Git checkout, or if you change the Automake files
  and need to regenerate Makefile.in, you will need Automake
  [% build.automake %] or later.  For bootstrap or if you change
  configure.ac or any of the m4 files it includes and need to regenerate
  configure or config.h.in, you will need Autoconf [% build.autoconf %] or
  later.[% IF build.manpages %]  Perl is also required to generate manual
  pages from a fresh Git checkout.[% END %][% IF build.bootstrap %]
[% indent(to_text(build.bootstrap), 2) %][% END %]
[% END %][% IF build.type == 'Module::Build' %]
BUILDING AND INSTALLATION

  [% name %] uses Module::Build and can be installed using the same process
  as any other Module::Build module:

      perl Build.PL
      ./Build
      ./Build install

  You will have to run the last command as root unless you're installing
  into a local Perl module tree in your home directory.
[% ELSIF build.type == 'ExtUtils::MakeMaker' %]
BUILDING AND INSTALLATION

  [% name %] uses ExtUtils::MakeMaker and can be installed using the same
  process as any other ExtUtils::MakeMaker module:

      perl Makefile.PL
      make
      make install

  You will have to run the last command as root unless you're installing
  into a local Perl module tree in your home directory.
[% ELSIF build.type == 'Autoconf' %][% IF build.install %]
BUILDING AND INSTALLATION

  You can build and install [% name %] with the standard commands:

      ./configure
      make
      make install
[% ELSE %]
BUILDING

  You can build [% name %] with the standard commands:

      ./configure
      make
[% END %]
  If you are building from a Git clone, first run ./bootstrap in the
  source directory to generate the build files.[% IF build.install %]
  make install will probably have to be done as root.[% END %]  Building
  outside of the source directory is also supported, if you wish, by
  creating an empty directory and then running configure with the correct
  relative path.
[% IF build.middle %]
[% indent(to_text(build.middle), 2) %]
[% END %][% IF build.kerberos %]
  Normally, configure will use krb5-config to determine the flags to use
  to compile with your Kerberos libraries.  To specify a particular
  krb5-config script to use, either set the PATH_KRB5_CONFIG environment
  variable or pass it to configure like:

      ./configure PATH_KRB5_CONFIG=/path/to/krb5-config

  If krb5-config isn't found, configure will look for the standard
  Kerberos libraries in locations already searched by your compiler.  If
  the the krb5-config script first in your path is not the one
  corresponding to the Kerberos libraries you want to use, or if your
  Kerberos libraries and includes aren't in a location searched by default
  by your compiler, you need to specify a different Kerberos installation
  root via --with-krb5=PATH.  For example:

      ./configure --with-krb5=/usr/pubsw

  You can also individually set the paths to the include directory and the
  library directory with --with-krb5-include and --with-krb5-lib.  You may
  need to do this if Autoconf can't figure out whether to use lib, lib32,
  or lib64 on your platform.

  To not use krb5-config and force library probing even if there is a
  krb5-config script on your path, set PATH_KRB5_CONFIG to a nonexistent
  path:

      ./configure PATH_KRB5_CONFIG=/nonexistent

  krb5-config is not used and library probing is always done if either
  --with-krb5-include or --with-krb5-lib are given.
[% IF build.gssapi %]
  GSS-API libraries are found the same way: with krb5-config by default if
  it is found, and a --with-gssapi=PATH flag to specify the installation
  root.  PATH_KRB5_CONFIG is similarly used to find krb5-config for the
  GSS-API libraries, and --with-gssapi-include and --with-gssapi-lib can
  be used to specify the exact paths, overriding any krb5-config results.
[% END %][% END %]
  Pass --enable-silent-rules to configure for a quieter build (similar to
  the Linux kernel).  Use make warnings instead of make to build with full
  compiler warnings (requires either GCC or Clang and may require a
  relatively current version of the compiler).
[% IF build.reduced_depends %]
  You can pass the --enable-reduced-depends flag to configure to try to
  minimize the shared library dependencies encoded in the binaries.  This
  omits from the link line all the libraries included solely because other
  libraries depend on them and instead links the programs only against
  libraries whose APIs are called directly.  This will only work with
  shared libraries and will only work on platforms where shared libraries
  properly encode their own dependencies (this includes most modern
  platforms such as all Linux).  It is intended primarily for building
  packages for Linux distributions to avoid encoding unnecessary shared
  library dependencies that make shared library migrations more difficult.
  If none of the above made any sense to you, don't bother with this flag.
[% END %][% IF build.suffix %]
[% indent(to_text(build.suffix), 2) %]
[% END %][% END %][% IF test.override || build.type == 'Module::Build' || build.type == 'ExtUtils::MakeMaker' || build.type == 'Autoconf' %]
TESTING
[% IF test.override %]
[% indent(to_text(test.override), 2) %]
[% ELSE %]
[% IF test.prefix %]
[% indent(to_text(test.prefix), 2) %]
[% ELSE %]
  [% name %] comes with a test suite, which you can run after building
  with:
[% END %][% IF build.type == 'Module::Build' %]
      ./Build test

  If a test fails, you can run a single test with verbose output via:

      ./Build test --test_files <path-to-test>
[% ELSIF build.type == 'ExtUtils::MakeMaker' %]
      make test

  If a test fails, you can run a single test with verbose output via:

      prove -vb <path-to-test>
[% ELSIF build.type == 'Autoconf' %]
      make check

  If a test fails, you can run a single test with verbose output via:

      tests/runtests -o <name-of-test>

  Do this instead of running the test program directly since it will
  ensure that necessary environment variables are set up.
[% END %][% IF test.suffix %]
[% indent(to_text(test.suffix), 2) %]
[% END %][% END %][% IF test.lancaster %]
  To enable tests that don't detect functionality problems but are used to
  sanity-check the release, set the environment variable RELEASE_TESTING
  to a true value.  To enable tests that may be sensitive to the local
  environment or that produce a lot of false positives without uncovering
  many problems, set the environment variable AUTHOR_TESTING to a true
  value.
[% END %][% END %]
[% FOREACH section IN sections %][% section.title FILTER upper %]

[% indent(to_text(section.body), 2) %]

[% END %]SUPPORT[% IF unmaintained %]

  This package is not currently maintained and will not get further
  releases or bug fixes.  I do not recommend using it unless you're
  willing to take over maintenance.

  The [% name %] web page at:

      [% support.web %]

  has the last released version, its documentation, and pointers to any
  additional resources.[% IF support.extra %]

[% indent(to_text(support.extra), 2) %]
[% END %][% ELSE %]

  The [% name %] web page at:

      [% support.web %]

  will always have the current version of this package, the current
  documentation, and pointers to any additional resources.
[% IF support.listname %]
  New [% name %] releases are announced on the [% support.listname %]
  mailing list.  To subscribe or see the list archives, go to:

      [% support.listurl %]
[% END %][% IF support.extra %]
[% indent(to_text(support.extra), 2) %]
[% END %]
[% IF support.github %]
  For bug tracking, use the issue tracker on GitHub:

      https://github.com/[% support.github %]/issues

[% ELSE %]

  I welcome bug reports and patches for this package at
  [% support.email %].[% END %]  Please be aware that I tend to be
  extremely busy and work projects often take priority.  I'll save your
  report and get to it as soon as I can, but it may take me a couple of
  months.[% END %]

SOURCE REPOSITORY

  [% name %] [% IF unmaintained %]was[% ELSE %]is[% END %] maintained using [% vcs.type %].  You can access the current source [% IF vcs.github %]on GitHub at:

      https://github.com/[% vcs.github %]

  or [% END %]by cloning the repository at:

      [% vcs.url %]

  or view the repository via the web at:

      [% vcs.browse %]
[% IF !unmaintained %][% IF vcs.github %]
  The eyrie.org repository is the canonical one, maintained by the author,
  but using GitHub is probably more convenient for most purposes.  Pull
  requests are gratefully reviewed and normally accepted.
[% ELSIF vcs.type == 'Git' %]
  When contributing modifications, patches (possibly generated by
  git-format-patch) are preferred to Git pull requests.
[% END %][% END %]
LICENSE

  The [% name %] package as a whole is covered by the following copyright
  statement and license:

[% copyright(4) %]

[% indent(license.text, 4) %]
[% IF license.notices %]
[% indent(to_text(license.notices), 4) %]
[% END %]
  Some files in this distribution are individually released under
  different licenses, all of which are compatible with the above general
  package license but which may require preservation of additional
  notices.  All required notices, and detailed information about the
  licensing of each file, are recorded in the LICENSE file.

  Files covered by a license with an assigned SPDX License Identifier
  include SPDX-License-Identifier tags to enable automated processing of
  license information.  See https://spdx.org/licenses/ for more
  information.

  For any copyright range specified by files in this package as YYYY-ZZZZ,
  the range specifies every single year in that closed interval.