To repeat, a (signed) directive file must be part of every upload. The unsigned original is just a plain text file you can create with any text editor. Its name must be, e.g., foo-1.0.tar.gz.directive for accompanying an upload of foo-1.0.tar.gz.
After creating the file, run ‘gpg --clearsign foo-1.0.tar.gz.directive’, which will create foo-1.0.tar.gz.directive.asc; this is the file to be uploaded.
When part of a triplet for uploading a release file, the directive
file must always contain the directives
directory. In addition, a
directive is optional. These directives can be given in any order.
Continuing our example of uploading foo-1.0.tar.gz for a
ftp.gnu.org, the values would be as
must be the value ‘1.2’ (the current version, as of May 2012):
must be the name of the file to be distributed:
specifies the final destination directory where the uploaded file and
its .sig companion are to be placed. Here we will put our file
in the top level directory of the package, as is the most common
is optional, and ignored if present:
comment: let's hope this works!
Putting all of the above together, the complete contents of the directive file foo-1.0.tar.gz.directive for our example would be:
version: 1.2 directory: foo filename: foo-1.0.tar.gz comment: let's hope this works!
Then you ‘gpg --clearsign’ the file as given above, and upload (using anonymous ftp) the three files:
to the host ftp-upload.gnu.org, directory /incoming/ftp (for official releases), or the directory /incoming/alpha (for test releases).
After the system authenticates the signatures, the files
foo-1.0.tar.gz and foo-1.0.tar.gz.sig are placed in
the directory gnu/foo/ on
ftp.gnu.org. That is, we’ll
have made our release available at
https://ftp.gnu.org/gnu/foo/foo-1.0.tar.gz’ (and then from
our many mirrors via
A common reason for the upload not succeeding is your GPG signature not being registered with the upload system. There is nothing that makes this happen automatically. You must email the system administrators as described above (see Automated Upload Registration).