\input texinfo   @c -*-texinfo-*-
@setfilename swign.info
@comment direntry.in
@dircategory Individual utilities
@direntry
* swign: (swbis).               make source packages with embedded GPG signature
@end direntry
@comment ===============================================================
@comment WARNING: Do NOT edit this file.  It was produced automatically
@comment by man2info on Sun Jul 27 20:44:51 EDT 2014
@comment for jhl@
@comment from man/man1/swign.1
@comment in /home/jhl/swbis-1.12x/doc
@comment ===============================================================

@comment @documentencoding ISO-8859-1

@comment troff -man typesetting style: headers, footers, no paragraph indentation

@paragraphindent none

@iftex
@parskip = 0.5@normalbaselineskip plus 3pt minus 1pt
@end iftex

@set lq ``
@set rq ''

@comment TROFF INPUT: ...\" $Header: /usr/src/docbook-to-man/cmd/RCS/docbook-to-man.sh,v 1.3 1996/06/17 03:36:49 fld Exp $
@comment ...\" $Header: /usr/src/docbook-to-man/cmd/RCS/docbook-to-man.sh,v 1.3 1996/06/17 03:36:49 fld Exp $
@comment TROFF INPUT: ...\"
@comment ...\"
@comment TROFF INPUT: ...\"	transcript compatibility for postscript use.
@comment ...\"	transcript compatibility for postscript use.
@comment TROFF INPUT: ...\"
@comment ...\"
@comment TROFF INPUT: ...\"	synopsis:  .P! <file.ps>
@comment ...\"	synopsis:  .P! <file.ps>
@comment TROFF INPUT: ...\"
@comment ...\"
@comment TROFF INPUT: .de P!
@comment .de P!
\.
@comment TROFF INPUT: .fl			\" force out current output buffer
@comment .fl			\" force out current output buffer
\\!%PB
\\!/showpage@{@}def
@comment TROFF INPUT: ...\" the following is from Ken Flowers -- it prevents dictionary overflows
@comment ...\" the following is from Ken Flowers -- it prevents dictionary overflows
\\!/tempdict 200 dict def tempdict begin
@comment TROFF INPUT: .fl			\" prolog
@comment .fl			\" prolog
@comment TROFF INPUT: .sy cat \\$1\" bring in postscript file
@comment .sy cat \\$1\" bring in postscript file
@comment TROFF INPUT: ...\" the following line matches the tempdict above
@comment ...\" the following line matches the tempdict above
\\!end % tempdict %
\\!PE
\\!.
@comment TROFF INPUT: .sp \\$2u	\" move below the image
@comment .sp \\$2u	\" move below the image
@comment TROFF INPUT: ..
@comment ..
@comment TROFF INPUT: .de pF
@comment .de pF
@comment TROFF INPUT: .ie     \\*(f1 .ds f1 \\n(.f
@comment .ie     \\*(f1 .ds f1 \\n(.f
@comment TROFF INPUT: .el .ie \\*(f2 .ds f2 \\n(.f
@comment .el .ie \\*(f2 .ds f2 \\n(.f
@comment TROFF INPUT: .el .ie \\*(f3 .ds f3 \\n(.f
@comment .el .ie \\*(f3 .ds f3 \\n(.f
@comment TROFF INPUT: .el .ie \\*(f4 .ds f4 \\n(.f
@comment .el .ie \\*(f4 .ds f4 \\n(.f
@comment TROFF INPUT: .el .tm ? font overflow
@comment .el .tm ? font overflow
@comment TROFF INPUT: .ft \\$1
@comment .ft \\$1
@comment TROFF INPUT: ..
@comment ..
@comment TROFF INPUT: .de fP
@comment .de fP
@comment TROFF INPUT: .ie     !\\*(f4 \{\
@comment .ie     !\\*(f4 \@{\
@comment TROFF INPUT: .	ft \\*(f4
@comment .	ft \\*(f4
@comment TROFF INPUT: .	ds f4\"
@comment .	ds f4\"
'	br \@}
@comment TROFF INPUT: .el .ie !\\*(f3 \{\
@comment .el .ie !\\*(f3 \@{\
@comment TROFF INPUT: .	ft \\*(f3
@comment .	ft \\*(f3
@comment TROFF INPUT: .	ds f3\"
@comment .	ds f3\"
'	br \@}
@comment TROFF INPUT: .el .ie !\\*(f2 \{\
@comment .el .ie !\\*(f2 \@{\
@comment TROFF INPUT: .	ft \\*(f2
@comment .	ft \\*(f2
@comment TROFF INPUT: .	ds f2\"
@comment .	ds f2\"
'	br \@}
@comment TROFF INPUT: .el .ie !\\*(f1 \{\
@comment .el .ie !\\*(f1 \@{\
@comment TROFF INPUT: .	ft \\*(f1
@comment .	ft \\*(f1
@comment TROFF INPUT: .	ds f1\"
@comment .	ds f1\"
'	br \@}
@comment TROFF INPUT: .el .tm ? font underflow
@comment .el .tm ? font underflow
@comment TROFF INPUT: ..
@comment ..
@comment TROFF INPUT: .ds f1\"

@comment WARNING: man/man1/swign.1:49:%%unrecognized define-string command: [.ds f1\"]

@comment TROFF INPUT: .ds f2\"

@comment WARNING: man/man1/swign.1:50:%%unrecognized define-string command: [.ds f2\"]

@comment TROFF INPUT: .ds f3\"

@comment WARNING: man/man1/swign.1:51:%%unrecognized define-string command: [.ds f3\"]

@comment TROFF INPUT: .ds f4\"

@comment WARNING: man/man1/swign.1:52:%%unrecognized define-string command: [.ds f4\"]

@comment TROFF INPUT: .ta 8n 16n 24n 32n 40n 48n 56n 64n 72n
@comment .ta 8n 16n 24n 32n 40n 48n 56n 64n 72n
@comment TROFF INPUT: .TH "swign" "1"

@headings off
@everyheading SWIGN(1) @| @| SWIGN(1)
@everyfooting  @| @thispage @|

@node Top

@chapter swign" "1


@comment TROFF INPUT: .hy 0
@comment .hy 0
@comment TROFF INPUT: .if n .na
@comment .if n .na
@comment TROFF INPUT: .SH "NAME"
@c DEBUG: print_menu("Top")

@ifnottex
@menu
* NAME::
* SYNOPSIS::
* DESCRIPTION::
* OPTIONS::
* EXTERNAL EFFECTS::
* EXAMPLES::
* TESTING::
* PSF ATTRIBUTE REPLACEMENT::
* SAMPLE SOURCE PACKAGE PSF::
* ENVIRONMENT::
* RETURN VALUE::
* FILES::
* SEE ALSO::
* IDENTIFICATION::
* BUGS::

@end menu
@end ifnottex

@comment MAN2TEXI: EON

@node NAME

@section NAME

swign @r{---} Create a tar archive of a directory with an embedded GPG signature.
@comment TROFF INPUT: .SH "SYNOPSIS"
@c DEBUG: print_menu("NAME")
@comment MAN2TEXI: EON

@node SYNOPSIS

@section SYNOPSIS

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
@b{swign} [options] [-u gpg-name] [--homedir=gpg-homedir] @@- # Write to stdout
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
@b{swign} [options] [-u gpg-name] [--homedir=gpg-homedir] @@.  # Sign directory
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
@b{swign} -S [options] [-u gpg-name] [--homedir=gpg-homedir]
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
@b{swign} -E [options] [-u gpg-name] [--homedir=gpg-homedir]
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .SH "DESCRIPTION"
@c DEBUG: print_menu("SYNOPSIS")
@comment MAN2TEXI: EON

@node DESCRIPTION

@section DESCRIPTION

@comment TROFF INPUT: .PP

@b{swign} reads a PSF (Product Specfication File) to generate and load the package catalog into
the current directory and then writes the cooresponding archive to stdout.
The PSF is read from standard input by default.
To use an internally generated PSF with name and revision attributes
determined from the name of the current directory use '-s.'.
@comment TROFF INPUT: .PP

The PSF is scanned for replacement tokens for
tag and revision attributes determined from the current directoy name.
It is expected that the current directory name have the form: 'tag-revision'.
The replacement string has the form '%@t{_}@t{_}NAME' where NAME is 'tag' or 'revision'.
The directory derived values can be overridden with the '--revision' or '--name-version'
options.
@comment TROFF INPUT: .PP

@b{swign} by default will remove and re-create the ./catalog/
meta-data directory, then use GNU tar to write the current directory as a tar archive to
stdout.  The result is a tar archive written entirely with GNU tar that contains an
embedded GPG signature in the control file './catalog/dfiles/signature'.
The contents of './catalog/' are consistent with the POSIX packaging
standard ISO/IEC 15068-2:1999.  The package layout of the resulting
archive is unchanged except for the addition of the './catalog' directory.
@comment TROFF INPUT: .PP

The contents of the archive is the contents of the current directory ".".
The pathnames in the archive are prefixed by the base name of ".".
The owner and group of all the files in the emitted archive are
specified by the PSF file and command line options.
@comment TROFF INPUT: .PP

In order for the signature to be valid, the file ownerships specified
in the PSF must be consistent with the 'swign' command.
@b{swign} will read the PSF to determine these ownerships
automatically from the 'file@t{_}permissions' directive unless the '-o' or '-g' command
line options are used or if this feature is disabled using the '--no-psf-detect' option
is given.
@comment TROFF INPUT: .PP

The default ownerships for all the files
are the current user's owner and group.
If the -o (or -g) option is used with a empty string for the option arg
then the file ownerships of the source files are used.
This script assumes GNU tar is installed.
@comment TROFF INPUT: .PP

After writing the ./catalog/ file and before writing the archive, the file list stored in ./catalog/dfiles/files is compared
to the current directory contents, if any difference is found the
archive is not written and error returned.

@comment TROFF INPUT: .SH "OPTIONS"
@c DEBUG: print_menu("DESCRIPTION")
@comment MAN2TEXI: EON

@node OPTIONS

@section OPTIONS

@comment TROFF INPUT: .PP

@b{--help}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
show help.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{--show-psf}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
show the PSF to stdout, and then exit.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{--no-psf-detect}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Disable automatic detection of the PSF's file ownerships policy.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{--no-remove}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Don't remove the ./catalog directory before overwriting.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{--file-ownerships}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Use the file ownerships and permissions of the source files.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------


@comment TROFF INPUT: .PP

@b{-u, --local-user name}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Use name as the user ID to sign.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{--homedir=DIR}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Set the name of the home directory to DIR.  If not specified
then use "~/.gnupg".
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{-s, --source=FILE}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Specify a PSF file name or one of two special names, '-' for stdin, and '.' for the internally
generated PSF.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{-T, --show-names-only}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
show some info (for help and debugging) and exit.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{-t, --run-sanity-check}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Instead of writing stdout, write the archive to ../packageDirName.swigntest.tar.gz and run some sanity tests.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{-S, --sign-only}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Write the ./catalog/ file containing the digest and signature into "." and then exit without
writing the archive to stdout.   Same as using "." as the target such as 'swign @@.'
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{-E, --emit-only}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Do not write the ./catalog/ file containing the digest and signature into "." and then
write the archive to stdout.  This does not affect the directory contents.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{-D, --with-checkdigest FILE}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Include the checkdigest control script sourced from FILE.
This is only needed when not supplying a PSF, that is this
option modifies an internally generated PSF.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{-o, --owner OWNER}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Specify owner.
Use an empty string "" to specify the source file owner.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{-g, --group GROUP}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Specify group.
Use an empty string "" to specify the source file group.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{--name-version=NAME-REV}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Specify a product tag and revision as dash delimited.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{-r, --revision REV}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Specify a product revision.  This will override a revision part
of the current directory's name.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{-x format}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Specify the archive format.
Must be one of the formats of swpackage.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{@@-}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Target, only supported target is standard output.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .SH "EXTERNAL EFFECTS"
@c DEBUG: print_menu("OPTIONS")
@comment MAN2TEXI: EON

@node EXTERNAL EFFECTS

@section EXTERNAL EFFECTS

@comment TROFF INPUT: .PP

The program will remove and replace a file in "." named ./catalog/.
@comment TROFF INPUT: .br
@comment .br
Nothing outside of './catalog/' is modified.
@comment TROFF INPUT: .br
@comment .br
Standard output is the target for the tar archive.
@comment TROFF INPUT: .br
@comment .br
When using the '-t' option an archive file is written to ../packageDirName.swigntest.tar.gz
@comment TROFF INPUT: .br
@comment .br
@comment TROFF INPUT: .PP

A copy of the PSF is made in /var/tmp/swign$$.
It is normally created and erased by the program.

@comment TROFF INPUT: .SH "EXAMPLES"
@c DEBUG: print_menu("EXTERNAL EFFECTS")
@comment MAN2TEXI: EON

@node EXAMPLES

@section EXAMPLES

@comment TROFF INPUT: .PP

Show the internally generated PSF to stdout.
Change directory into the directory to package, then type
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
   swign -s. --show-psf
   #
   # or specify a owner and group policy
   swign -s. -o 0 -g 0 --show-psf
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
@r{
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP


@comment WARNING: man/man1/swign.1:277:%%new font R started without closing previous font R

}
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

Create a signed metadata (i.e. catalog/) directory of a live directory,
for example /bin
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
       swign -D $HOME/checkdigest.sh -u "YourGPGNAME" -o "" -g "" @@.
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
@r{
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP


@comment WARNING: man/man1/swign.1:291:%%new font R started without closing previous font R

}
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

Generate the package (and verify it) using a PSF that you supply on
standard input.
Change directory into the directory to package, then type
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
   swign -o 0 -g 0 --show-psf | swign -s - -u "gpgName" @@- | swverify -d @@-
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
@r{
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP


@comment WARNING: man/man1/swign.1:306:%%new font R started without closing previous font R

}
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

Example of directory signing and authentication.
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
   swign -u YourGPGName -s. --file-ownerships -D /HOME/checkdigest.sh --sign-only
   swverify -d @@.
   swign  --file-ownerships -emit-only | swverify -d @@-
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
@r{
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP


@comment WARNING: man/man1/swign.1:321:%%new font R started without closing previous font R

}
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .SH "TESTING"
@c DEBUG: print_menu("EXAMPLES")
@comment MAN2TEXI: EON

@node TESTING

@section TESTING

@comment TROFF INPUT: .PP

After running successfully with options
@b{-S}  and
@b{-D FILE}  the following should be true (report no error).
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
          swverify --checksig .   # Deprecated form
              -or-
          swverify -d @@.     # POSIX syntax
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
@r{
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP


@comment WARNING: man/man1/swign.1:339:%%new font R started without closing previous font R

}
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

Similarly,
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
          swign -u "your GPG Name" @@- | swverify --checksig -
              -or-
          swign -u "your GPG Name" @@- | swverify -d @@-@r{
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

If a checkdigest script is included then you should unpack the package at a
new location and run  swverify -d @@. in the new location.  The

@comment WARNING: man/man1/swign.1:354:%%new font B started without closing previous font R

}@b{checkdigest} script is a vendor extension control file
that is part of the GPG signed ./catalog directory.  As an implementation
extension behavior the @b{swverify} program will execute
this script after verification of the signature.  The script may take any action at
this point, but the intention is that it be used to verify the contents
of the package directory using GNU tools such as md5sum, sha1sum,
and tar.
@comment TROFF INPUT: .PP

If a @b{checkdigest} script is not included, then the package
user will have to manually execute the commands that would have been
executed by the script using the file meta-data in an authenticated INFO file.
When verifying the unpacked directory form of
a package,  the @b{swverify} program will return an error
if the @b{checkdigest} script is not present, though, it is not
required for verification of the tar archive file itself using
@b{swverify}.
@comment TROFF INPUT: .PP

Swign can be used to sign any directory using the file ownerships
of the source files.  The following commands act as a test
of swpackage's ability to generate an archive identical to GNU tar.
(Note: the script checkdigest.sh is found in ./bin of the source distribution.)
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
       swign -D $HOME/checkdigest.sh -u "Test User" -o "" -g "" -S;
       swverify -d @@.@r{
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP


@comment TROFF INPUT: .SH "PSF ATTRIBUTE REPLACEMENT"
@c DEBUG: print_menu("TESTING")
@comment MAN2TEXI: EON

@node PSF ATTRIBUTE REPLACEMENT

@section PSF ATTRIBUTE REPLACEMENT

@comment TROFF INPUT: .PP

A PSF that is provided using the '-s' option will be scanned
for a special character sequence '%@t{_}@t{_}NAME'  where NAME is
either 'tag' or 'revision'.  'tag' is replaced with the
package name portion of the currrent directory.  'revision' is
replaced with the version portion.

@comment TROFF INPUT: .SH "SAMPLE SOURCE PACKAGE PSF"
@c DEBUG: print_menu("PSF ATTRIBUTE REPLACEMENT")
@comment MAN2TEXI: EON

@node SAMPLE SOURCE PACKAGE PSF

@section SAMPLE SOURCE PACKAGE PSF


@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display

@comment TROFF INPUT: .br
@comment .br
# PSF.in  -- INPUT file to swign
# This file contains the replacement macros %@t{_}@t{_}tag and %@t{_}@t{_}revision which
# are only processed by swign.

# The distribution object need not have any attributes.
distribution

# Attributes in the distribution are mostly ignored although
# distributor control files that pertain to the distribution
# as a whole are properly placed here.  Two examples of files
# that are useful here are:

  AUTHORS < AUTHORS   # This places the file in ./catalog/dfiles
  COPYING < COPYING   # This places the file in ./catalog/dfiles

# This places the checkdigest script in ./catalog/dfiles/checkdigest
# For a description of the checkdigest script see the info document for
# 'swbis' or the swverify manual page.
# The checkdigest script is a verification hook for swverify used when
# verifying the unpacked tarball (i.e. the package path name
# prefix directory).

  checkdigest  < bin/checkdigest.sh

# The vendor object provides attributes to describe
# the distributor.  At this time, how these attributes
# are used is not addressed.

# The Vendor object is optional
vendor
   the@t{_}term@t{_}vendor@t{_}is@t{_}misleading True  # One of: True, False
   tag shortName    # Other vendor tags could be the short name of your
                         # organization name, or  your initials, etc.
   title Your Name
   qualifier author
   description "Maintainer of somepackage"

# Most packages do not need a bundle.  At this point in swbis'
# development 'bundles' are mostly ignored.  Bundles are meta
# packages, it is an object that contains other bundles and
# products whether included in this distribution tarball or not.

# The Bundle object is optional
bundle
   tag somepackage

# The product object contains the attributes of common
# interest such as the description, version and name.

product
   description "somepackage description
can be mult-line"
   tag %@t{_}@t{_}tag                       # This is the package name
   revision %@t{_}@t{_}revision             # This is the package version
   vendor@t{_}tag shortName             # Match vendor.tag above
   title "somepackage - software"
   control@t{_}directory ""             # Empty string, Important

# The fileset object contains the files.  The tag, revision,
# and description attributes are mostly ignored.
# At this time swbis supports only one (1) fileset.

fileset
    tag sources
    control@t{_}directory ""   # Empty string, Important
    title somepackage source code
    description "The source distribution of somepackage"

# file@t{_}permissions:
# Here is an important policy.  This will cause 'swpackage'
# to create the tar achive with all files owned by uid and
# gid zero (0), the user name 'root' will not be included
# in the uname and gname tar header fields.  This is similar
# to the effect of GNU tar options --numeric --owner=root
# --group=root .
# To use the name and ids of the source files delete the line
# or reset the file@t{_}permissions adding after or changing to:
#    file@t{_}permissions -u 000
#
# NOTE:  Using "file@t{_}permissions -o 0 -g 0"  is preferred
# because it will allow the end user to more easily verify
# the directory (unpacked) form of the package using standard
# non-swbis tools.

#   file@t{_}permissions -u 000  # To use ownerships of source files
    file@t{_}permissions -o 0 -g 0

# The following two (2) lines mean include every file in the current
# directory.

    directory .
    file *

# You want to exclude the files in ./catalog because it
# should not be part of the paylaod section.  This is
# mandatory.

   exclude catalog

# You may also want other excludes

   exclude CVS
   exclude */CVS
   # exclude .svn
   # exclude */.svn


@comment WARNING: man/man1/swign.1:503:%%new font R started without closing previous font R

# End of PSF}
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP


@comment TROFF INPUT: .SH "ENVIRONMENT"
@c DEBUG: print_menu("SAMPLE SOURCE PACKAGE PSF")
@comment MAN2TEXI: EON

@node ENVIRONMENT

@section ENVIRONMENT

@comment TROFF INPUT: .PP

@b{SWPACKAGEPASSFD}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Sets the swpackage @i{--passphrase-fd} option.  Set the option arg
to a integer value of the file descriptor, or to "env" to read the passphrase from
the environment variable SWPACKAGEPASSPHRASE, or to "agent" to cause gpg to use
gpg-agent, or "tty" to read from the terminal.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{SWPACKAGEPASSPHRASE}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Use the value as the passphrase if swpackage's @i{--passphrase-fd} is
set to "env"
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{GNUPGHOME}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Sets the --gpg-home option of swpackage.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------

@comment TROFF INPUT: .PP

@b{GNUPGNAME}
@comment TROFF INPUT: .RS

@c ---------------------------------------------------------------------
@quotation
Sets the --gpg-name option of swpackage, which is turn set the --local-user option of gpg.
@comment TROFF INPUT: .RE

@end quotation

@c ---------------------------------------------------------------------


@comment TROFF INPUT: .SH "RETURN VALUE"
@c DEBUG: print_menu("ENVIRONMENT")
@comment MAN2TEXI: EON

@node RETURN VALUE

@section RETURN VALUE

@comment TROFF INPUT: .PP

0 on success, non-zero on failure.
@comment TROFF INPUT: .SH "FILES"
@c DEBUG: print_menu("RETURN VALUE")
@comment MAN2TEXI: EON

@node FILES

@section FILES

@comment TROFF INPUT: .br
@comment .br
 \<@i{path}\>/@b{catalog}/
@comment TROFF INPUT: .SH "SEE ALSO"
@c DEBUG: print_menu("FILES")
@comment MAN2TEXI: EON

@node SEE ALSO

@section SEE ALSO

@comment TROFF INPUT: .PP

info swbis
@comment TROFF INPUT: .PP

swpackage(8), gpg
@comment TROFF INPUT: .SH "IDENTIFICATION"
@c DEBUG: print_menu("SEE ALSO")
@comment MAN2TEXI: EON

@node IDENTIFICATION

@section IDENTIFICATION

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .PP

@comment TROFF INPUT: .nf

@c ---------------------------------------------------------------------
@display
 swign(1): The source directory signing utility of the swbis project.
 Author: J. Lowe jhlowe@@acm.org
 Version: 1.12
 Last Updated: 2008-01
 Copying: GNU Free Documentation License@r{
@comment TROFF INPUT: .fi

@end display

@c ---------------------------------------------------------------------
@comment TROFF INPUT: .PP

@comment TROFF INPUT: .SH "BUGS"
@c DEBUG: print_menu("IDENTIFICATION")
@comment MAN2TEXI: EON

@node BUGS

@section BUGS

@comment TROFF INPUT: .PP

Symbolic links in a package are problematic for verifying the unpacked form of a
package since the modification time is not preserved.  They have no affect on
verification of the tar archive file using 'swverify'.
@comment TROFF INPUT: .PP

If a directory is signed using the '-S' option and has a file path greater than
99 chars in length then it will be unverifiable if the 'ustar0' format and
GNU tar 1.13.25 was used.
@comment TROFF INPUT: .PP

Verification of the directory form of a distribution (i.e. the installed tarball
path name prefix) such as running 'swverify -d @@.' after running 'swign -S'
will fail if the order of directory entries is not compatible with
traditional Unix file system directory entry ordering.  This incompatibility may be present in
the Ext3, reiserFS, and DarwinOS et.al file systems.
@comment TROFF INPUT: .PP

The file ownership policy of the PSF, the checkdigest script (if any) and the command line
options must agree.
The default file ownership policies of this program are suited to packaged products
where file user and group ownerships are not a critical feature.
@comment  created by instant / docbook-to-man, Sun 27 Jul 2014, 20:44
@bye
