Submitting a new package

So you've got a package you want to submit. Follow the following checklist before emailing cygwin-apps@cygwin.com and you'll almost certainly save time.

  1. Propose on cygwin-apps@cygwin.com that you are interested in becoming a package maintainer for package "foo" using a subject like "[ITP] foo 0.10". Some packages cannot be distributed via cygwin's setup due to vendor licence limitations. Other packages may not be appropriate for cygwin. This step will save time if, for some reason, we cannot accept the package.
    Submission rules:
  2. In order to create a good setup.hint file do read and follow the documentation in the specific section of this very web page.
    A few things to take extra care to:
  3. Do you have the time to maintain the package?
    Packages without active maintainers are pulled from the distribution. Generally speaking the time commitment is relatively low, simply subscribe to cygwin@cygwin.com. We'd prefer if you read the non-digest mode since prompt response to packaging issues is a plus. When a bug in your package is reported in the cygwin mailing list, address the bug (if it's a cygwin-only bug) or pass back to the vendor. When a solution exists, create an updated package with the fix in it, and send a notification that you need the package uploaded to cygwin-apps. Note that you are not expected to be a helpdesk for the package - the users should be pointed to the vendors lists if you've determined that the bug is not a cygwin-related bug.
  4. Place the package files in a web accessible http/ftp site somewhere. If at all possible the files should have a directory structure in order to get them all with a single command. For example, if I am proposing "foo" and "libfoo", an upload site should look like:
  5. Announce on cygwin-apps@cygwin.com that you have the package ready for uploading. Provide the URLs of all package files to your mail.
  6. Each new package must in any case receive one GTG vote from a package mantainer, meaning that an existing mantainer has downloaded the package, inspected the tarball contents, tested the applications, and rebuilt the package from the source tarball without incident. Once a successful package is produced, you become a mantainer yourself and can provide GTG reviews for others as well.
  7. Feel free to delete your temporary copy once the files have been uploaded to sourceware.org.
  8. Announce via cygwin-announce@cygwin.com that the new package is available. Use the announce message example listed later in this page as a template for your announcement.
    Be sure the unsubscribe instructions are included at the end of the email, since cygwin-announce does not add any.
    Once sent, your message will be reviewed by one of the cygwin-announce moderators and, once approved, will be automatically forwarded to the cygwin mailing list with an [ANNOUNCEMENT] prepended to the subject.

Updating a package

So you've got an updated package you want to submit. Follow the following checklist before emailing cygwin-apps@cygwin.com and you'll almost certainly save time.

  1. Place the package files in a web accessible http/ftp site somewhere. If at all possible the files should have a directory structure in order to get them all with a single command. For example, if I am updating "foo" and "libfoo", an upload site should look like:
  2. Do increase the version number no matter what (if upstream version didn't change, bump the cygwin release number): even if the package was bad, even if it was removed from the server for a security issue, even if has only been discussed in mailing list and never uploaded: it costs nothing and avoids confusion in both setup.exe and people mind.
  3. Announce on cygwin-apps@cygwin.com that you have the package ready for uploading. Include in the mail the URLs of all the new package files.
    Be concise in your message: as package mantainer you're trusted to know when and how your packages should be updated, no reason to explain it.
    Just provide URLs for files that have actually changed, i.e. it is not necessary to provide a new link to a setup.hint file every time you update your packages unless the actual content changed (e.g. because version numbers are not parsable or ordered and have to be specified manually).
    Please do specify which version must be kept as "old", all the others will be deleted from the server.
  4. Feel free to delete your temporary copy once the files have been uploaded to sourceware.org. This fact will be made clear by an "Uploaded." reply to your announcement by someone with upload privileges.
  5. Announce via cygwin-announce@cygwin.com that the new package is available. Use the announce message example listed later in this page as a template for your announcement..
    Once sent, your message will be reviewed by one of the cygwin-announce moderators and, once approved, will be automatically forwarded to the cygwin mailing list with an [ANNOUNCEMENT] prepended to the subject.

NOTE: On any major version upgrade, you may want to mark the release as Test.

Example announcement

To: cygwin-announce@cygwin.com
Subject: New package: foo-0.30.2-1
or
Updated: foo-0.30.2-1
Version 0.30.2-1 of "foo" has been uploaded.

(a couple of lines about what "foo" is)
(short changelog of important features or fixes; big emphasis for security fixes)

If you have questions or comments, please send them to the Cygwin mailing list at: cygwin@cygwin.com .

              *** CYGWIN-ANNOUNCE UNSUBSCRIBE INFO ***

If you want to unsubscribe from the cygwin-announce mailing list, look at the "List-Unsubscribe: " tag in the email header of this message. Send email to the address specified there. It will be in the format:

cygwin-announce-unsubscribe-you=yourdomain.com@cygwin.com

If you need more information on unsubscribing, start reading here:

http://sources.redhat.com/lists.html#unsubscribe-simple

Please read *all* of the information on unsubscribing that is available starting at this URL.