Significantly retouch the OpenSSL vs. GNUTLS tractate.
[elinks.git] / INSTALL
blob778a6fa39ae16aef61533ac19a09388844bf836f
1 Elinks installation guidelines
2 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4   Quick guide for the impatient:
6         ./configure && make && make install
8   Check out the bottom of this file if you're upgrading from Links or an older
9 ELinks! And be sure to look at doc/ecmascript.txt if you want (experimental)
10 ECMAScript (that's JavaScript) support.
12 ##########
14   In order to check out the latest tree from CVS:
16 $ export CVSROOT=check_file_SITES_for_value_of_this
17 $ cvs login
18 (empty password)
19 $ cvs -z3 co elinks
20 $ cd elinks
21 ...
23   To update your existing tree to the latest CVS version, do:
25 $ cvs -z3 update -dP
27   If you downloaded a nightly snapshot, it already contains CVS/ directories
28 etc.  Thus, you should be able to update your tree with the above command as if
29 you had previously done a full cvs checkout.
31   Note that if you obtained the sources directly from CVS, you NEED to run
32 ./autogen.sh!  (It should be enough to do it once, automake should be smart
33 enough to rerun itself when needed - however, if you have build problems, try
34 running this first.)  Also, you obviously need automake and autoconf installed
35 on your system (note that autoconf-2.13 a automake-1.4p5 are supported, newer
36 ones may cause problems thanks to the auto* developers who don't know how to
37 maintain backwards compatibility).  Otherwise, you have to use the nightly CVS
38 snapshot - you don't need to do this there.
41 ##########
43   If you want to compile ELinks, first check the directory named contrib/, it
44 may contain patches that are of use to you.  If you're interested in any of
45 them, try to apply them by doing (for each one):
47 $ patch -p0 < contrib/that-patch
49   They may not apply, since I don't update patches in contrib/ regularly - if
50 you want, feel free to go ahead and update the patch for the current tree and
51 submit the newer version.
53   The compilation itself looks like:
55   Unix - just doing:
57          $ ./configure
58          $ make
60          should be enough.  However, in some FreeBSD 3 distributions you have to
61          set CFLAGS=-aout before running ./configure.  Also, you may want to
62          adjust some (well, plenty of) compile-time options through ./configure
63          - do ./configure --help and it'll print out a list of them. You can
64          finetune what's going to be included in the binary in the features.conf
65          file, and some really detailed tuning can be performed in src/setup.h.
67          Also, a nice idea is to compile ELinks outside of the source tree (note
68          that this might not quite work right now, but we're working on fixing
69          it). Make another directory and run path_to_source_tree/configure from
70          it. Typically, it looks like:
72          $ mkdir ../elinks-build
73          $ cd ../elinks-build
74          $ ../elinks/configure
75          $ make
77   OS/2 - you can use ./configure.
79          The only supported compiler is EMX, you probably won't be able to
80          compile it with anything else.
82          Configure under OS/2 needs to know paths to gcc, make and bash.
83          Set (for example):
85          SET HOSTTYPE=i586
86          SET MACHTYPE=i586-pc-os2
87          SET CONFIG_SHELL=d:/prg/gnu/bin/bash.exe
88          SET CC=d:/prg/emx/bin/gcc.exe
89          SET MAKE=d:/prg/emx/bin/make.exe
90          SET EMXOPT=-h100
92   DOS, Windows - port it by yourself.
94   Usually, even after strip, the ELinks binary can measure a lot, but you can
95 radically reduce the resulting binary size by throwing out stuff you don't like.
96 Detailed discussion of reducing the executable size can be found in
98         doc/small.txt
101 ##########
103   Ok, now let's install it:
105   Unix - # make install
107   OS/2 -
108         Copy file links.exe somewhere to your path or create CMD file that runs
109         links.
111          WARNING: EMX has a nasty limit on open files.  Links will work badly or
112          won't work with the default settings.  Set the variable EMXOPT=-h100
113          before you run links.
115   Now, check the contrib/ directory again.  There may be some useful config
116 file examples there, along with few support tools and some Lua scripts - you
117 probably want them ;) so just copy hooks.lua to ~/.elinks, and edit the
118 configuration part - it adds various functionality to ELinks, like
119 decompression of gzipped files or HTML code rewriting for ELinks-unfriendly
120 websites.
123   !BEWARE!  If you _distribute_ an ELinks executable linked with OpenSSL and
124 the OpenSSL library is not part of your base system, you are VIOLATING THE GPL.
125 I honestly believe that for this absurd case no ELinks copyright holder will
126 sue you, and it's not a problem for the OpenSSL people as well, as they have
127 explicitly told me, but you might stay on the safe side.
129   So, people who are making ELinks binaries for systems with no OpenSSL in the
130 base system and who decided to link OpenSSL against the ELinks binary may wish
131 NOT to publish or distribute such an executable, as it's breaking GPL 2(b), if
132 they like to have everything legally perfect (like the Debian people ;-).
134   As a semi-solution to this problem, GNUTLS support was introduced; if you want
135 to distribute ELinks executables with HTTPS support, compile ELinks with the
136 --with-gnutls configure option (assuming that you have GNUTLS 1.2.0 installed;
137 we can't say about later versions since GNUTLS people seem to have strange taste
138 wrt. backwards compatibility).
140   HOWEVER, beware that GNUTLS support in ELinks is not so well tested as
141 OpenSSL, and shall be probably still considered experimental. Therfore, it's
142 recommended to the users to give OpenSSL strong preference whenever possible.
143 (Just to show the GNU ideologists how silly can they sometimes be, if not
144 anything else. ;-)
147 ##########
149   If you're upgrading from Links or older ELinks (0.4pre7 or older), you will
150 notice that several things have changed.  First, the binary name is elinks, not
151 links, now; however, the basic usage is almost the same and it still looks like
152 the old (E)Links, so you probably want to make a links symlink pointing to
153 elinks.
155   Then, note that configuration files were moved from /etc to /etc/elinks and
156 from ~/.links to ~/.elinks, because the name and format of some of them was
157 changed:
159   links.cfg became elinks.conf and you need to convert it with
160 contrib/conv/conf-links2elinks.pl; html.cfg was merged into elinks.conf.
162   bookmarks are still bookmarks, but you need to convert it with
163 old_to_new_bookmarks.sh.
165   links.his became gotohist and the format is the same.
167   history became globhist and the format is the same.
169   cookies are still cookies, but you need to convert it with tr " " "\t".
172 ##########
174 $Id: INSTALL,v 1.29 2004/09/22 16:17:23 pasky Exp $
175 vim: textwidth=80