git-snapsign/docs/git-snapsign.texi
2021-01-24 22:37:50 -05:00

215 lines
4.6 KiB
Plaintext

\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename git-snapsign.info
@include version.texi
@settitle git-snapsign @value{VERSION}
@copying
This manual is for git-snapsign (version @value{VERSION}, @value{UPDATED}),
for Sign a repository archive tarball for use with cgit.
Copyright @copyright{} 2021 Jesus E.
@quotation
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is included in the section entitled
``GNU Free Documentation License''.
@end quotation
@end copying
@dircategory Freedom
@direntry
* git-snapsign: Sign a repository archive tarball for use with cgit
@end direntry
@titlepage
@title git-snapsign
@subtitle for version @value{VERSION}, @value{UPDATED}
@author Jesus E. (@email{heckyel@@hyperbola.info})
@page
@vskip 0pt plus 1filll
@insertcopying
@end titlepage
@contents
@node Top
@top git-snapsign
This manual is for git-snapsign (version @value{VERSION}, @value{UPDATED}).
@menu
* Description:: General purpose and information.
* Options:: Usage Parameters of git-snapsign.
* Examples:: How to use git-snapsign.
* Installation Requirements:: Requirements to build and install git-snapsign.
* Installation:: Installing git-snapsign from source.
* GNU Free Documentation License:: Copying and sharing this documentation.
@end menu
@node Description
@chapter Description
@cindex description
Create a detached signature for an archive of <tag> and add it to the tag's
notes in the refs/notes/signatures/<fmt> namespace.
This is useful for cgit's snapshot support.
@node Options
@chapter Options
@cindex options
@deffn {-d, --dry-run} Do everything except add the signature blobs and associated note refs.
@end deffn
@deffn {-f, --force} Overwrite any existing signature
@end deffn
@deffn {-F, --format <fmt>} Format to pass to @code{git-archive}.
Currently, we only accept either "tar.gz", "tar.lz", "tar.xz", "tgz', "tar" or "zip"
as we sign only the underlying archive, not the compressed version. For default "tar.lz".
@end deffn
@deffn {-p, --prefix <pfx>} Prefix to use when determining the prefix to pass to @code{git-archive}.
By default, we use the repository basename to create @code{<repo-name>-<tag>.<fmt>}.
Note that we also drop any intital "v" character from <tag>.
@end deffn
@deffn {-P, --push} Upload signature to remote git
@end deffn
@deffn {-t, --tag <tag>} Git tag name
@end deffn
@deffn {-s, --signature <key-id>} Create the signature using @code{<key-id>}.
If not provided, the output of @code{git config user.signingkey} is used.
@end deffn
@deffn {-v, --version} Show version of git-snapsign
@end deffn
@deffn {-h, --help} This message.
@end deffn
@node Examples
@chapter Examples
@cindex examples
@itemize @bullet
@item
Create a signature for the archive tarball at tag v1.0.0.
@example
git-snapsign -t v1.0.0
@end example
@item
Same as above but use the zip format.
@example
git-snapsign -F zip -t v1.0.0
@end example
@item
Create a signature with the key corresponding to
@email{heckyel@@hyperbola.info}
@example
git-snapsign -s 4DF21B6A7C1021B25C360914F6EE7BC59A315766 -t v1.0.0
@end example
@item
Use "linux-libre-lts" to create the archive prefix.
Useful for when the repository basename is not the
canonical name of the project. For example, the
linux-libre-lts project may wish to set the prefix
this way.
@example
git-snapsign -p linux-libre-lts -t v5.4.96
@end example
@end itemize
@node Installation Requirements
@chapter Installation Requirements
@cindex installation requirements
@itemize @bullet
@item
sh
@item
git
@item
lzip
@item
xz
@item
texinfo
@end itemize
@node Installation
@chapter Installation
@cindex Installation
You can install git-snapsign directly copying @file{git-snapsign}
file to /usr/bin/git-snapsign
@section Installing git-snapsign
To install using make for all users, run:
@example
doas make install
@end example
or as root:
@example
make install
@end example
@section Releasing a new version
Update the version number in:
@itemize @bullet
@item
@file{Makefile}
@item
@file{git-snapsign}
@item
@file{doc/version.texi}
@end itemize
Then run @samp{make info} to build the docs.
@example
make info
@end example
Generate tarball
@example
make tar.gz
@end example
@node GNU Free Documentation License
@appendix GNU Free Documentation License
@include fdl.texi
@bye