1 I n s t a l l i n g S - n a i l
2 ================================
7 System specific notes can be found in the next section.
8 Any (optional) feature is adjustable and documented in `conf.rc'.
9 Adjustments may also take place, and are usually done, from the command
10 line, overriding those made in `conf.rc' (if any):
12 $ [make &&] make install
13 $ make uninstall # Won't remove the system wide startup file!
14 $ make distclean # *Completely* cleanup working directory
18 $ make WANT_IMAP=0 install
19 $ make WANT_NCL=0 PREFIX=/some/nasty/prefix install
21 There are also some predefined restricted configuration sets available,
22 which take precedence over anything else:
25 little is left but some air to breathe; no internet connectivity, no
26 internationalized domain names, no command line editor, no
27 documentation strings.
30 Like MINIMAL, but with documentation strings, and the builtin command
31 line editor will be included if that is possible.
34 WANT_SMTP and WANT_SSL settings are enabled, internationalized domain
35 names will be supported if the necessary libraries are available,
36 otherwise identical to MEDIUM.
40 $ make CONFIG=MINIMAL DESTDIR=xtest install
42 would create a `s-nail' binary and install a `s-nail' manual etc.
43 under the prefix `/usr/local' but rooted under [./]`xtest', i.e., the
44 binary would be installed as `[./]xtest/usr/local/bin/s-nail'.
45 The following make(1) target exists, and note that you can use
46 a VERBOSE=1 command line option to gain more (or a different kind of)
49 . all Create / check and update configuration, build.
50 . install Create / check and update configuration, build, install.
51 . clean Remove anything which can be rebuild.
52 . distclean Remove anything which can be rebuild or reconfigured.
53 . uninstall Uninstall (if configured).
55 . config Only create or check and update the configuration.
56 . build Only build (using the existing configuration).
57 . test Run ./cc-test.sh in --check-only mode on the built binary.
59 Only install using the built files of the existing
60 configuration. It is possible to overwrite DESTDIR= when
61 using this target nonetheless (a following `uninstall'
62 won't know about that overwritten value, however).
64 If some libraries are missing that you know are installed on your
65 system, or if other errors occur due to missing files but which you know
66 exist, please ensure that the environment variable `C_INCLUDE_PATH'
67 includes the necessary `include/' paths and the environment variable
68 `LD_LIBRARY_PATH' includes the necessary `lib/'rary paths.
70 The S-nail make system will inspect these two environment variables and
71 *automatically* convert them to cc(1) (c99(1)) -I and -L options (since
72 these environment variables are, different to the command line options,
73 not part of the POSIX standard).
74 To set these environment variables, the following can be done in
75 a Bourne/Korn/POSIX compatible shell:
77 $ C_INCLUDE_PATH="${C_INCLUDE_PATH}:/usr/local/include"
78 $ LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib"
79 $ export C_INCLUDE_PATH LD_LIBRARY_PATH
82 The S-nail make system will also automatically integrate pkgsrc(7) paths
83 into this mechanism. pkgsrc(7) is used to handle building (compilation),
84 installation and removal of software packages on a lot of operating
85 systems, including all BSD systems, Linux, Solaris ...
87 Notes for S-nail(1) v14.5*
88 --------------------------
90 S-nail(1) has been or is used regulary on these systems (`uname -srm').
91 Note first that MAILSPOOL is by default `/var/mail' (see `conf.rc').
93 Also, i'm (compile) testing manually with WANT_AUTOCC=1, WANT_DEBUG=[01]
94 and WANT_AMALGAMATION=[01] (and WANT_GSSAPI=1), which is what is
95 reflected by the following statements.
98 - There _may_ be warnings about format strings, like, e.g.,
100 auxlily.c:1610:10: warning: format '%lu' expects type 'long
101 unsigned int', but argument 3 has type 'size_t'
103 This is ugly, but it has been decided to keep the S-nail codebase
104 ISO C89 compatible, which means that there are no usable language
105 hints for format strings. However, `nail.h' tries hard to detect
106 the real type sizes and ends up in a way that should ensure that the
107 actually expected datatype is of the same size in reality:
109 /* XXX Note we don't really deal with that the right way in that we pass size_t
110 * XXX arguments without casting; should do, because above we assert UINT_MAX
111 * XXX is indeed ui32_t */
112 #if defined __STDC_VERSION__ && __STDC_VERSION__ + 0 >= 199901L
114 #elif defined SIZE_MAX && SIZE_MAX == 0xFFFFFFFFu && ULONG_MAX != UINT_MAX
121 . Mac OS X <https://www.apple.com/>
122 (Snow Leopard) Darwin 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun
123 7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386.
124 - gcc-mp-4.8 (MacPorts gcc48 4.8.2_0) 4.8.2.
125 + Note: with WANT_AMALGAMATION there is a single warning on 'signed
126 overflow'. I think it's wrong.
127 - clang version 3.4 (branches/release_34 197314)
128 Target: x86_64-apple-darwin10.8.0
130 - i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666)
132 - Apple clang version 1.7 (tags/Apple/clang-77) (based on LLVM
135 . ArchLinux <https://www.archlinux.org/>
136 Linux 3.12.6-1-ARCH x86_64
137 - gcc (GCC) 4.8.2 20131219 (prerelease)
138 + Note: warnings on unused results, just ignore (for now).
140 . NetBSD <https://www.netbsd.org/>
141 NetBSD 6.99.28 NetBSD 6.99.28 (GENERIC) #0: Fri Jan 3 05:24:46 UTC
143 - gcc (NetBSD nb1 20120916) 4.5.4
144 + Warnings on format strings -- as above.
145 + Note: i think faulty message on longjmp() clobbering (on
146 a variable that is 'const').
147 + Note: with WANT_AMALGAMATION there are many warnings on 'signed
148 overflow', all referring to the same code, and i think it's wrong.
150 NetBSD 6.99.24 NetBSD 6.99.24 (GENERIC) #0: Tue Oct 29 08:23:21 UTC
152 - gcc (NetBSD nb1 20120916) 4.5.4.
153 + Note: i think faulty message on longjmp() clobbering (on
154 a variable that is 'const'.
155 + Note: with WANT_AMALGAMATION there are many warnings on 'signed
156 overflow', all referring to the same code, and i think it's wrong.
158 . CRUX Linux <http://www.crux.nu/>
159 Linux 3.6.11 #1 SMP Sun Sep 15 17:47:31 UTC 2013 x86_64.
160 - gcc (CRUX-x86_64-multilib) 4.7.2.
161 + Note: there is a single warning on 'signed overflow'. I think it's
164 . OpenBSD <http://www.openbsd.org/>
166 - gcc (GCC) 4.2.1 20070719.
168 . FreeBSD <https://www.freebsd.org/>
169 FreeBSD 10.0-CURRENT amd64.
170 - FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610
171 Target: x86_64-unknown-freebsd10.0
174 . Void Linux <http://www.voidlinux.eu/>
175 Linux 3.10.19_1 i686.
177 + Note: there is a single warning on 'signed overflow'. I think it's
180 . DragonFly BSD <https://www.dragonflybsd.org/>
181 DragonFly 3.6-RELEASE x86_64
182 - gcc 4.7.3 [DragonFly] Release/2013-04-11.
183 + Note: harmless iconv(3) warning again (as if we didn't had to treat it
185 + Note: there is a single warning on 'signed overflow'. I think it's
189 + Note: this make(1) requires the -e option to pass values to make(1)
190 subprocesses, so, if you want to overwrite DESTDIR= when doing
191 `packager-install', you better say '$ make -e DESTDIR=xy ...'.
192 + You'll see some harmless and ignorable warnings.
194 . Slackware Linux <http://www.slackware.com/>
195 Slackware 14 3.2.29-smp (i386).
196 + Note: not tested for v14.5, machine disappeared. (Will install a VM
197 with the new release before the next minor.)
199 - clang version 3.0 (tags/RELEASE_30/final).
201 OpenIndiana is targeted for v14.6.
202 And i'm very interested in reports from other combinations.
203 (It should work practically everywhere, generally speaking.)
205 Program features yet to be overhauled
206 -------------------------------------
208 Since i've forked Heirloom mailx(1) (for real) as S-nail(1) on
209 2012-09-18 i make my way through the codebase, but have not yet taken
210 a look (rather: at all) into the following modules/parts:
212 [List view/threading], Maildir, SSL, IMAP, POP3, SMTP, GSSAPI, Caching
214 These will remain features of S-nail(1) and they will be looked at, and
215 of course i will fix bugs when i notice them, but they are not yet part
216 of the overhauled "S-nail core" (though SMTP and POP are in daily use,
217 and IMAP is slowly coming along).
219 I'll hope to be able to release S-nail v20 on 2018-03-25, the 40th
220 anniversary of Mail, as a good one, then. Also see `TODO'.
222 vim:set fenc=utf-8:s-ts-mode