Initial git import
[sxemacs] / contrib / README
1 -*- text -*-
2
3 In here you'll find a few odds and sods that may or may not be
4 useful.
5
6 File List:
7 =========
8         10sendlog.................tla hook script
9         20mirror..................tla hook script
10         do_builds.sh..............automate builds
11         hook......................tla master hook script
12         make-pkg.sh...............bash script to create a SXEmacs tar package
13         pop3.el.patch.............SXEmacs native OpenSSL goodies
14         report-build-failure.sh...bash script to send a build report failure
15         show-tty-256-colors.pl....Perl script to test 256 color output on terminal 
16         smtpmail.el.patch.........SXEmacs native OpenSSL goodies
17         starttls.el.patch.........SXEmacs native OpenSSL goodies
18         tar-build-failure.sh......bash script w/ tar of build report failure
19         tty-colors.c..............C program to check the terminal color definitions
20
21 More Info:
22 =========
23
24 tla hook scripts (hook, 10sendlog, 20mirror):
25 --------------------------------------------
26 These scripts let you automate parts of your tla'ing, leaving you more
27 time for SXEmacs hacking. :-)
28
29 This tla hook "system" is designed to work with multiple archives,
30 categories, branches, versions, even revisions.  Allowing you to have
31 different scripts run for each.  The master hook script makes the
32 decisions as to which sub-scripts to run based on a directory
33 hierarchy where the directory names match
34 archive/category/branch/version/revision names.
35
36 Installation and use of these scripts is fairly straight forward.
37 First, put `hook' in ~/.arch-params directory.  Then create a
38 ~/.arch-hooks directory, under which you put the directory hierarchy
39 where your "action" scripts go.  The scripts themselves go in
40 directories named `=$ACTION' where $ACTION can be one of...
41
42   import, precommit, commit, tag, make-archive, make-category, make-branch,
43   make-version, find-pristine, make-pristine, make-tmp-pristine
44
45 Here is an example of how my ~/.arch-hooks hierarchy is laid out...
46
47 ~/.arch-hooks/
48     |-/steve@emchat.org--2008/
49     |   |-/=commit/10mirror
50     |   |-/=precommit/10forcedefaults
51     |   |-/emchat/
52     |   |   |-/=commit/10sendlog
53     |   |   |-/emchat--main/
54     |   |       |-/=commit/10chglogweb
55     |   |       |-/=commit/20updftp
56     |   |-/emchat-web/
57     |   |   |-/=commit/10sendlog
58     |   |   |-/emchat-web--main/
59     |   |       |-/=commit/10updsite
60     |   |-/xetla/
61     |       |-/=commit/10sendlog
62     |       |-/xetla--main/
63     |           |-/=commit/10updftp
64     |-/steve@sxemacs.org--2008/
65         |-/=commit/10mirror
66         |-/=precommit/10forcedefaults
67         |-/digitxt/
68         |   |-/digitxt--main/
69         |       |-/=commit/10sendlog
70         |-/emoney/
71         |   |-/emoney--main/
72         |       |-/=commit/10updftp
73         |-/fresse/
74         |   |-/fresse--steve/
75         |       |-/=commit/10sendlog
76         |-/sxemacs/
77         |   |-/sxemacs--main/
78         |       |-/=commit/10sendlog
79         |       |-/=commit/20chglogweb
80         |       |-/=commit/30log2rss
81         |-/sxemacs-web/
82             |-/sxemacs-web--main/
83                 |-/=commit/10sendlog
84                 |-/=commit/20updsite
85                 |-/=commit/30news2rss
86
87 Steve Youngs <steve@sxemacs.org>
88
89 do_builds.sh:
90 ------------
91
92 This script allows the automation of the builds with several different
93 configure options.
94 It does autogen.sh, configure and reports success and of failure.
95 To setup:
96
97    1. Create a directory *outside* of the source directory in order
98    not to be "hammered" by autogen. You use a build directory directly
99    below the top source directory IF you do not set the HAMMER variable
100    in the configuration file (,,conf)
101
102    2. Run the script from *that* directory. That will create a ,,conf 
103    file, which you *must* edit to at least point to the sxemacs source
104    directory.
105
106    3. Create several .conf files, one for each of you different
107    configurations. On this file place all the options you'd usually
108    pass on to configure. If you would set environment variables like
109    CC or CFLAGS, you can do so at the end of the file with <var>=<value>
110    
111    4. Execute do_builds.sh
112
113 Nelson Ferreira <njsf@sxemacs.org>
114
115 make-pkg.sh:
116 -------------
117 This script conveniently creates a tar from your workspace for use
118 in systems without proper autoconf or tla.
119
120 It needs to be run from the top of source directory and requires
121 the name of the package to be given.
122
123 Usage: contrib/make-pkg.sh <package-name> [<package-location>]
124
125 Example: contrib/make-pkg.sh sxemacs-22.1.9 $HOME/public_html
126 will create a sxemacs-22.1.9.tar.gz in your html area.
127
128 Nelson Ferreira <njsf@sxemacs.org>
129
130
131 pop3.el.patch:
132 -------------
133 This patch is meant to be applied to pop3.el from the mail-lib package.
134
135 This patch provides SSL/TLS support for Gnus based on SXEmacs' native
136 OpenSSL interface.  It works with the stream types 'ssl and 'starttls,
137 so mail-sources already using one of these stream types will just keep
138 on working.
139
140 An example mail source for a POP3 TLS connection:
141
142         (pop :server "some.pop3.server.tld"
143              :user "me"
144              :password "verysecret"
145              :stream starttls)
146
147 An example mail source for a POP3s server:
148
149         (pop :server "some.pop3s.server.tld"
150              :user "anotherme"
151              :password "verysecret"
152              :port 995
153              :stream 'ssl)
154
155 The provided functionality has drop-in behaviour, so anything that worked
156 before will keep on working.
157
158 Sebastian Freundt <hroptatyr@sxemacs.org>
159
160
161 report-build-failure.sh:
162 -----------------------
163 Send an email to the SXEmacs developers mailing list with the details
164 needed to troubleshoot failures to build SXEmacs.
165
166 The script requires your email address.
167
168 Usage: contrib/report-build-failure.sh superhacker@sxemacs.org
169
170 When tla is available the script will find the branch and closeness to
171 the main branch as well as uncommitted changes.
172
173 Nelson Ferreira <njsf@sxemacs.org>
174
175
176 show-tty-256-color.pl:
177 ----------------------
178 This script is from the X distribution and outputs a 6x6x6 color cube
179 as well as a grayscale ramp consistent with the default 256 color xterm
180 settings.
181 You can use it to see if your terminal is capable of showing 256 colors.
182
183 Todd Larason <jtl@molehill.org>
184
185
186 smtpmail.el.patch:
187 -----------------
188 This patch is meant to be applied to smtpmail.el from the mail-lib
189 package.
190
191 This patch provides SSL/TLS support for smtp connections using SXEmacs'
192 native OpenSSL interface.  It works out of the box with the usual
193 credential definitions.
194
195 Additionally extends the smtpmail-starttls-credentials specifications by
196 another argument, the fifth one, which can be a certificate authority's
197 certificate file.  If specified the server must present a valid
198 certificate signed by or verifiably by the certificate authority.
199
200 An example credential:
201
202         (setq smtpmail-starttls-credentials
203               '(("some.smtp.server.tld" 25      ;; server+port
204                  "~/.certs/my.smtpd.key"        ;; the cert's secret key
205                  "~/.certs/my.smtpd.cert"       ;; the public cert
206                  "~/.certs/smtp.server.ca"      ;; server's ca cert
207                 )))
208
209 Sebastian Freundt <hroptatyr@sxemacs.org>
210
211 starttls.el.patch:
212 -----------------
213 This patch is meant to be applied to starttls.el from the mail-lib
214 package.
215
216 This patch provides some basic SSL/TLS functionality used by other stuff
217 in the mail-lib package.  Basically it just pretends to be Josefsson's
218 starttls.el.  Instead of calling the gnutls binary externally the
219 internal OpenSSL API functions are used.
220
221 Sebastian Freundt <hroptatyr@sxemacs.org>
222
223 tar-build-failure.sh
224 --------------------
225 Script that creates a tar file withe the contents that would also
226 be emailed by report-build-failure.sh
227
228 Nelson Ferreira <njsf@sxemacs.org>
229
230
231 tty-colors.c
232 ------------
233 C program using the curses library that detects the number of colors,
234 the code sequences and can show the available colormap.
235 Compile with:
236         gcc -o tty-colors tty-colors.c -lncurses 
237 Invoke with:
238        -m       Do a colormap
239        -c       Do all foreground/background color combinations
240        -f       Force the output of the basic ansi colors
241        -s       Force the use of standout code
242        -bs      Force the use of both bold and standout codes
243        -q       Try to query the color map from the terminal
244
245 Nelson Ferreira <njsf@sxemacs.org>