Provided by: dh-package-notes_0.8_all bug

NAME

       generate-package-notes - generate a linker script for package metadata

SYNOPSIS

       generate-package-notes [OPTION...]

DESCRIPTION

       ELF  binaries get stamped with a unique, build-time generated hex string identifier called
       build-id, which gets embedded as an ELF note called .note.gnu.build-id.   In  most  cases,
       this  allows  to  associate a stripped binary with its debugging information.  It is used,
       for example, to dynamically fetch DWARF symbols from a debuginfo server, or to  query  the
       local  package  manager  and find out the package metadata or, again, the DWARF symbols or
       program sources.

       However, this usage of the build-id requires either local metadata, usually set up by  the
       package  manager,  or  access to a remote server over the network.  Both of those might be
       unavailable or forbidden.

       Thus it becomes desirable to add additional metadata to a binary at build  time,  so  that
       systemd-coredump(8)  and  other  services  analyzing  core  files are able to extract said
       metadata simply from the core file itself, without external dependencies.  The metadata is
       embedded in a single ELF header section, in a key-value JSON format.

       The  metadata  format  is  intentionally  left  open,  so  that  vendors can add their own
       information.  A set of well-known keys is defined in the  document  Package  Metadata  for
       Core Files ⟨https://systemd.io/COREDUMP_PACKAGE_METADATA/⟩, and hopefully shared among all
       vendors.

       generate-package-notes generates a linker script on standard output,  which  can  then  be
       used  at build time via LDFLAGS="-Wl,-dT,/path/to/generated/script" to include the note in
       the binary.  If a Debian package is built using the dh(1) sequencer, the generation can be
       partly automated using dh_package_notes(1).

OPTIONS

       --package-type=TYPE
              Set  the  key  type  to TYPE.  This defaults to package, but for Debian packages it
              should be set to deb.

       --package-name=NAME
              Set the key name to NAME.  This defaults  to  the  empty  string,  but  for  Debian
              packages it should be set to the name of the binary package containing the binary.

       --package-version=VERSION
              Set  the key version to VERSION.  This defaults to the empty string, but for Debian
              packages it should be set to the Debian version of the  binary  package  containing
              the binary.

       --package-architecture=ARCHITECTURE
              Set  the  key architecture to ARCHITECTURE.  This defaults to the empty string, but
              for Debian packages it should be set to the Debian architecture identifier  of  the
              binary.

       --root=PATH
              When  reading  files,  for  example  /usr/lib/system-release-cpe  and  /usr/lib/os-
              release, open them relatively to the specified directory.

       --cpe=CPE
              Set the key osCpe to CPE.  If the special value auto is passed, then the content of
              the  /usr/lib/system-release-cpe  file, or the value of CPE_NAME from os-release if
              the former was not found, will be used.

       --rpm=PACKAGE-VERSION
              Set the keys type to rpm, name to  PACKAGE,  and  version  to  VERSION.   Overrides
              --package-type, --package-name, --package-architecture, and --package-version.

       --debug-info-url=URL
              Set  the  key  debugInfoUrl to URL.  By default this key is omitted, but for Debian
              packages it should  be  set  to  the  official  Debian  debuginfod  server  address
              https://debuginfod.debian.org/.

       -h, --help
              Show a short help message and exit.

SEE ALSO

       dh_package_notes(1), systemd-coredump(8), Package Metadata for Core Files
       ⟨https://systemd.io/COREDUMP_PACKAGE_METADATA/⟩

                                             May 2021                   GENERATE-PACKAGE-NOTES(1)