aboutsummaryrefslogtreecommitdiffstats
path: root/dist-tools/test/testservers.html
blob: 62dc9e7b8f901acaeda59dc8176a3f3fe2386fe2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rev=made href="mailto:esr@snark.thyrsus.com"/>
<meta name="description" content=""/>
<meta name="keywords" content=""/> 
<title>Fetchmail's Test List</title>
</head>
<body>
<table width="100%" cellpadding=0 summary="Canned page header"><tr>
<td width="30%">Back to <a href="/~esr">Eric's Home Page</a>
<td width="30%" align=center>Up to <a href="/~esr/sitemap.html">Site Map</a>
<td width="30%" align=right>Mon Jan 12 15:52:14 EST 2004
</tr></table>
<hr />
<h1>Fetchmail's Test List</h1>

<p>Here are the server types on my regression-test list:</p>

<table border=1 width=80% align=center summary="Server list">
<tr>
<td><strong>Protocol &amp; Version:</strong></td>
<td><strong>Special Options:</strong></td>
</tr>
<tr><td>IMAP: CommuniGate IMAP server</td><td>IMAPrev1 STARTTLS AUTH=CRAM-MD5 AUTH=DIGEST-MD5</td>
<tr><td>POP3: CommuniGate POP3 server</td><td>CAPA LAST APOP CRAM-MD5</td>
<tr><td>POP3: IntraStore POP3 mail server</td><td>!CAPA LAST</td>
<tr><td>APOP: IntraStore POP3 mail server</td><td>!CAPA LAST APOP</td>
<tr><td>IMAP: IntraStore IMAP mail server</td><td>IMAPrev1 IDLE AUTH=CRAM-MD5 AUTH=SKEY AUTH=ANONYMOUS</td>
<tr><td>POP3: Eudora EIMS</td><td>CAPA LAST APOP SASL CRAM-MD5 NTLM</td>
<tr><td>POP3: gmx.de pop server</td><td>!CAPA UIDL</td>
<tr><td>IMAP: IMail IMAP server</td><td>IMAP4rev1 AUTH=CRAM-MD5</td>
<tr><td>IMAP: Microsoft Exchange</td><td>IDLE AUTH=NTLM</td>
<tr><td>POP3: qpopper 3.1.2 (Eudora) patched with mysql</td><td>CAPA UIDL</td>
<tr><td>IMAP: Courier IMAP</td><td>IMAP4rev1</td>
<tr><td>POP3: Courier POP3</td><td>CAPA UIDL</td>
<tr><td>APOP: Qpopper using APOP</td><td>!CAPA</td>
<tr><td>IMAP: UW IMAP</td><td>IMAPrev1</td>
<tr><td>IMAP: Courier IMAP</td><td>IMAP4rev1</td>
<tr><td>POP3: Qpopper 4.0.5</td><td>CAPA UIDL</td>
</tr></table>

<p>If you control a post-office server that is not one of the types listed
here, please consider lending me a test account.  Note that I do <em>not</em>
need shell access, just the permissions to send mail to a mailbox the server
looks at and to fetch mail off of it.</p>

<p>I'd like to have weird things like a POP2 server on here.  Also more
closed-source servers because they tend to be broken in odd
ways. These are the real robustness tests.</p>

<hr />
<table width="100%" cellpadding=0 summary="Canned page header"><tr>
<td width="30%">Back to <a href="/~esr">Eric's Home Page</a>
<td width="30%" align=center>Up to <a href="/~esr/sitemap.html">Site Map</a>
<td width="30%" align=right>Mon Jan 12 15:52:14 EST 2004
</tr></table>

<br clear="left" />
<ADDRESS>Eric S. Raymond <A HREF="mailto:esr@thyrsus.com">&lt;esr@thyrsus.com&gt;</A></ADDRESS>
</BODY>
</HTML>
e of these variables have defaults computed at startup time. All can be set or overridden in the per-user \fI~/.shipper\fR file, and overridden in any per-project \fI.shipper\fR file. Both files are Python code and the syntax of variable settings is Python's. .PP If a variable is set in a config file, that value is locked in (except for the \fIdestinations\fR variable which can be appended to from a specfile, see below) Variables that are not set in a config file may be set by the values of fields in your project specfile. .PP For basic use, it is only necessary to set one such variable: \fIdestinations\fR, the list of destinations to ship to. Normally you'll set this globally, pointing all your projects at your main distribution website, in your \fI~/.shipper\fR file; it is also possible to add destinations on a per-project basis by giving a comma-separated list in a #Destinations: comment in the specfile. You can set the variable in a per-project \fI.shipper\fR to ignore your global destination list. .PP The first thing shipper looks for is a specfile in the current directory; there must be exactly one. It extracts the project name from the Name field. Next step is to find the project version (the variable \fIpackage\fR). This is extracted from the specfile, or by looking for a makefile macro with a name beginning with VERS; if the value of that macro is a shell command wrapped in $(shell ...), it is executed and the output is captured to yield the version. If both versions are present, they are consistency-checked. .PP shipper gets most of the rest of the data it uses to decide what to do from headers in the specfile. The following table lists all the variables and their corresponding specfile fields. shipper uses the RPM spec file fields: the Debian entries are informational only. VariableRPM specfile fieldDebian specfile fieldMeaning\fIdestinations\fR#Destinations:XBS-Destinations: .PP A list of remote directories to ship to using \fBscp\fR(1). Each location is a place to drop deliverables: either a [user@]site:path destination that \fBscp\fR(1) can use, or an FTP url that \fBlftp\fR(1) can use. Note that actual project directories are computed by appending the value of \fIpackage\fR to the destination you're shipping to. .PP There is no default.. If you do not set this variable, shipper will ship only to public channels. \fIchannels\fR-- .PP The list of public channels to be shipped to after the private channels in the \fIdestination\fR list. You can disable one or more of these in a config file by calling the function \fBdisable()\fR; for example with \fBdisable('freshmeat')\fR. \fIwhoami\fR-- .PP A plausible email address for the user. If not specified in the config file, it's generated from \fB$USERNAME\fR and \fB$HOSTNAME\fR. \fIdate\fR-- .PP The program's startup time. This can be used in the web page and email announcement templates. .PP You can use the Python function time.strftime("...") in your \fI~/.shipper\fR file to format this date to your taste. If you don't set this in the config file, the program will set it for you. \fIindextemplate\fR-- .PP Template HTML from which to generate index.html for shipping. There is a default which generates a very simple page containing a title, a date, and a table listing downloadable resources. This is used when shipping to a web directory, if no index page exists when shipper is run. \fImailtemplate\fR-- .PP Template text from which to generate the file ANNOUNCE.EMAIL to be shipped to destinations that are mailto URLs. There is a default which generates a very simple email containing a subject, a pointer to the project web page, and the last entry in the project changelog. \fIpackage\fRName:Package: .PP Project name, used to generate the stem part of the names of RPMs and other deliverables that shipper builds. If the specfile is a Debian control file, the Debian-specific part of the version number (after the dash) is removed. \fIversion\fRVersion:Version: .PP Project version, used in generating the names of RPMs and other deliverables that shipper builds. \fIhomepage\fRURL:XBS-Home-Page: .PP Project home page URL. Used when generating project announcements. \fIarch\fRBuildArch:Architecture: .PP Build architecture. If this field is ``noarch'', noarch rather than binary RPMs will be built. \fIkeywords\fR#Keywords:XBS-Keywords: .PP Topic keywords. Used when generating LSM files. \fIfreshmeat_name\fR#Freshmeat-Name:XBS-Freshmeat-Name: .PP Freshmeat shortname, used in generating freshmeat.net announcements. If this isn't present, it defaults to the project name; you only need to set it if they differ. \fIsummary\fRSummaryDescription: .PP The one-line project summary field from your specfile. \fIdescription\fR%descriptionDescription: .PP The Description field from your specfile. \fIchangelog\fRChangeLog or %changelog- .PP If a \fIChangeLog\fR file exists in the project directory, its entire contents. Otherwise, if it exists, the entire changelog section from the specfile. \fIlastchange\fRChangeLog or %changelog- .PP If the source of your changlog was your specfile, this is the most recent entry from your changelog without its date/author/release header. If the source was Changelog, a line of text directing the user to see the ChangeLog file. This becomes the Changes field in your freshmeat.net announcement, and freshmeat.net doesn't like the bulleted format of GNU ChangeLog entries. \fIresourcetable\fR-- .PP The HTML table of links to downloadable resources. This variable is only computed if the index page is built. Any setting of it in the startup files is ignored. .PP All these variables are available for substitution at the time a web page or email announcement is generated. In general, any variable you set in your \fI~/.shipper\fR file will be available at the time the web page or email announcement is generated. Use the Python "%(variable)s" syntax, not shell-substitution syntax. .SH "FINDING AND BUILDING LOCAL DELIVERABLES" .PP The following files are considered stock deliverables and may be shipped if they are present when shipper starts up: FileExplanationREADME .PP Project roadmap file. tarball .PP The current source tarball, that is the file named ${package}-${version}.tar.gz. zipfile .PP The current source zip archive, that is the file named ${package}-${version}.zip. NEWS .PP Project news file. ChangeLog .PP Project change log. HISTORY .PP Project history file. BUGS .PP Project bug list. TODO .PP Current to-do list. *.html .PP Any files with an .html extension will be shipped to all website destinations. .PP Here are the generated deliverables that shipper will build and ship, if they don't exist when it starts up. Any of these that are created will be deleted after a successful upload. TypeExplanationindex.html .PP An index web page, to be shipped to any website destination. RPMs .PP Source and either binary or noarch RPMs. LSM .PP If the ibiblio channel is enabled, shipper will generate a Linux Software Map file for it. CHANGES .PP If there is no ChangeLog file but there was a %changelog in your specfile, shipper will generate a CHANGES from the changelog entries in the specfile and ship that. ANNOUNCE.FRESHMEAT .PP If there is no ANNOUNCE.FRESHMEAT file, shipper will generate one. It will be a job card that can be fed to freshmeat.net's XML-RPC interface via \fBfreshmeat-submit\fR(1). ANNOUNCE.EMAIL .PP If there is no ANNOUNCE.EMAIL file, shipper will generate one to be emailed to destinations that are mailto URLs. .SH "SHIPPING TO DESTINATIONS" .PP In operation, shipper walks through a list of destinations, building the required deliverables for each one and performing the required shipping actions to push them out to the destination. Here are the channel types shipper knows about: Channel TypeDeliverablesSpecified byExplanationibibliotarball, RPMs, LSM file- .PP If the ibiblio channel is enabled (it is by default), shipper will attempt to ship a source tarball, RPMs, and an an LSM file to ibiblio.org via FTP. The LSM file will be automatically generated. redhatRPMs- .PP If the Red Hat channel is enabled (it is by default), shipper will attempt to ship source and binary RPMs to the Red Hat submission directory via FTP. freshmeatANNOUNCE.FRESHMEAT- .PP If the freshmeat channel is enabled (it is by default), shipper will attempt to post a release announcement on freshmeat.net using \fBfreshmeat-submit\fR(1). The announcement will include URLs for whichever of the following deliverables are shipped, using the URL field from your specfile: tarball, zipfile, RPMs, CHANGES. The user will be prompted for a Freshmeat release-focus. This announcement is generated into the local deliverable ANNOUNCE.FRESHMEAT. Generic Web siteREADME, tarball, zipfile, RPMs, CHANGES, NEWS, HISTORY, *.html, BUGS, TODO.scp destination ([user@]host:dir) .PP This channel type represents a website. shipper uses \fBscp\fR(1) to put deliverables on websites. If the user part of the scp destination is absent, it will be taken from the environment variable \fBUSERNAME\fR. .PP No generic Web sites are shipped to by default. You must declare them by putting scp destinations in the \fIdestinations\fR variable. Generic FTP sitetarball, RPMsFTP URL .PP Old-fashioned FTP site with no metadata. The FTP URL is parsed to get the sitename and directory where deliverables should be dropped. The FTP username to be used will be taken from the environment variable \fBUSERNAME\fR. The FTP password will be looked up in your \fI~/.netrc\fR file. .PP No generic FTP sites are shipped to by default. You must declare them by putting FTP urls in the \fIdestinations\fR variable. Email addressANNOUNCE.EMAILmailto URL .PP The contents of the generated ANNOUNCE.EMAIL file is emailed to each email address specified as a channel. .PP No email channels are set up by default. You must declare them by putting mailto: urls in the \fIdestinations\fR variable. rsync unitSRPMrsync address ([user@]host::unit) .PP An SRPM is shipped to each destination that is rcognized as an rsync address (by the double colon). .PP No rsync channels are set up by default. You must declare them by putting rsync addresses in the \fIdestinations\fR variable. .SH "COMMAND-LINE OPTIONS" .PP The -n option of shipper suppresses uploads, just building all deliverables locally. The -N option suppresses both uploads and builds, generating a configuration dumop instead. The -f option forces rebuilding of local deliverables even if they already exist. The -v option makes shipper chatty about what it's doing. The -h option prints a usage message and exits. .SH "HINTS AND TIPS" .PP The following variable definition in your makefile will ensure that the makefile version is derived from (and thus always consistent with) the specfile version. .nf VERS=$(shell sed <*.spec -n -e '/Version: \\(.*\\)/s//\\1/p') .fi .PP A makefile production like the following will allow you to type \fBmake release\fR and be sure that all the deliverables shipper knows about will be rebuilt before being shipped. .nf release: package-$(VERS).tar.gz package.html shipper -f .fi .PP You will want to change package to your project name. Note that you should not use this recipe if your project has its own (non-generated) index page, as the -f option will overwrite \fIindex.html\fR. .PP To make \fBrpm\fR(1) build noarch rather than binary RPMs, insert the following header in your specfile: .nf BuildArch: noarch .fi .SH "AUTHOR" .PP Eric S. Raymond <esr@thyrsus.com>. The buildrpms script was originally by Sean Reifschneider. .PP There is a project web page at : http://www.catb.org/~esr/shipper/http://www.catb.org/~esr/shipper/. .SH "BUGS" .PP The rsync channel type is untested. Shipping Debian packages should be supported. .SH "SEE ALSO" .PP \fBfreshmeat-submit\fR(1), \fBlftp\fR(1), \fBrpm2lsm\fR(1), \fBscp\fR(1), \fBssh\fR(1).