fa0ea8234cbd56149ac737c5f32a5b2f95128391
[silc.git] / public_html / cvs.php
1 <b>Anonymous CVS access</b>
2 <font size="2">
3 <br /><br />
4 Anonymous CVS access is now available to SILC CVS repository. The
5 repository includes everything related to SILC project; source codes,
6 documentation and even these web pages. The CVS access is of course public
7 but it is intended for developers. After you have checked out the SILC
8 source tree you should read README.CVS file from the source tree or rest
9 of this web page.
10 <br /><br />
11 Also note that this is the closest to real time development you can get
12 thus you cannot expect that the source tree would work or even compile.
13 While it is our intention that the trunk would always at least compile
14 there might be situations when it will not.
15
16 <br /><br />
17
18 <b>Browsing the Source Tree</b>
19 <br /><br />
20 If you want to browse the source tree using web browser before checking
21 out the tree with CVS use following link:
22 <br /><br />
23 <a href="http://cvs.silcnet.org/">Web Access to CVS repository
24 </a>
25 <br /><br />
26 Note that this is not real-time access to the CVS repository. It is
27 updated once a day. If you want real-time access then checkout the CVS
28 repository.
29
30 <br /><br />
31
32 <b>Howto Checkout The Source Tree</b>
33 <br /><br />
34 The repository can be checked out by using anonymous pserver with CVS.
35 <br /><br />
36 For those who are using sh/ksh/bashi/zsh the check out is done as follows:
37 <br /><br />
38 <font size="3">
39 <tt>
40 export CVSROOT=:pserver:cvs@cvs.silcnet.org:/cvs/silc
41 <br /><br />
42 cvs login<br />
43 cvs co silc<br />
44 cvs logout<br />
45 </tt>
46 </font>
47
48 <br /><br />
49 For those who are using csh/tcsh the check out is done as follows:
50 <br /><br />
51 <font size="3">
52 <tt>
53 setenv CVSROOT :pserver:cvs@cvs.silcnet.org:/cvs/silc
54 <br /><br />
55 cvs login<br />
56 cvs co silc<br />
57 cvs logout<br />
58 </tt>
59 </font>
60 <br /><br />
61 If you don't want to set $CVSROOT environment variable you can set the
62 path to the cvs as command line option:
63 <br /><br />
64 <font size="3">
65 <tt>
66 cvs -d:pserver:cvs@cvs.silcnet.org:/cvs/silc login<br />
67 cvs -d:pserver:cvs@cvs.silcnet.org:/cvs/silc co silc<br />
68 cvs -d:pserver:cvs@cvs.silcnet.org:/cvs/silc logout
69 </tt>
70 </font>
71 <br /><br />
72 Whatever method you will decide to use, after you have done cvs login you will
73 be prompted for password:
74 <br /><br />
75 <b>CVS password: </b>silc
76 <br /><br />
77 Type the password "silc" and press &lt;ENTER&gt;
78 <br /><br />
79 The actual SILC source tree is checked out using the cvs co silc command,
80 described above. This command will fetch the source tree and save it into
81 directory named silc. SILC CVS repository currently does not have any
82 branches thus this will check out the trunk. The size of the trunk is
83 currently about 13 MB but will grow in the future.
84
85 <br /><br />
86
87 <b>What SILC Source Tree Includes</b>
88 <br /><br />
89 SILC Source tree includes a lot more stuff that appears in public
90 distribution. The source tree includes, for example, internal scripts,
91 configuration files, SILC webpages etc. These never appear on a public
92 distribution.
93 <br /><br />
94 Following directories currently exist in SILC source tree.
95 <br /><br />
96 <font size="3">
97 <tt>
98 doc/
99 <br /><br />
100 Includes all the SILC documentation. Few parts of the documentation
101 are generated when distribution is generated. The automatically
102 generated files should never be commited to CVS.
103 <br /><br />
104 includes/
105 <br /><br />
106 Includes SILC include files.
107 <br /><br />
108 lib/
109 <br /><br />
110 Includes SILC libraries. There are maybe libraries in the CVS which
111 are not inclduded in public distribution.
112 <br /><br />
113 public_html/
114 <br /><br />
115 Includes the official SILC web pages and everything related to them.
116 This directory will never appear in public distribution.
117 <br /><br />
118 silc/
119 <br /><br />
120 Includes SILC client. There can be some extra files that will
121 never appear in public distribution, such as configuration files.
122 <br /><br />
123 silcd/
124 <br /><br />
125 Includes SILC server. There can be some extra files that will
126 never appear in public distribution, such as configuration files.
127 </tt>
128 </font>
129
130 <br /><br />
131
132 <b>Howto Compile SILC Source Tree</b>
133 <br /><br />
134 After checkout from CVS the SILC source tree needs to be prepared for
135 configuration and compilation. To compile the source tree, type:
136 <br /><br />
137 <font size="3">
138 <tt>
139 ./prepare<br />
140 ./configure --enable-debug<br />
141 make<br /><br />
142 note: on non-Linux operating systems GNU make (gmake) is prefered
143 </tt>
144 </font>
145 <br /><br />
146
147 The ./prepare script is included in the source tree and it will never
148 appears in public distribution. The script prepares the source tree
149 by creating configuration scripts and Makefiles. The prepare must be
150 run every time you made any changes to configuration scripts (however,
151 making changes to Makefile.am's does not require running ./prepare).
152 <br /><br />
153 As a developer you should read the ./configure script's help by typing
154 ./configure --help and study all of its different options. Also you
155 should configure the script with --enable-debug option as it compiles
156 SILC with -g (debugging) option and it enables the SILC_LOG_DEBUG*
157 scripts. Warning is due here:  The debugging produced by both cilent
158 and server is very huge, thus it is common to test the programs as
159 follows:
160 <br /><br />
161 <font size="3">
162 <tt>
163 ./silc -d -f configfile 2&gt;log<br />
164 ./silcd -d -f configfile 2&gt;log
165 </tt>
166 </font>
167
168 <br /><br />
169
170 <b>How to clean SILC Source Tree</b>
171 <br /><br />
172 To entirely clear the source tree to the state after it was checked out
173 from CVS, type:
174 <br /><br />
175 <font size="3">
176 <tt>
177 ./prepare-clean
178 </tt>
179 </font><br /><br />
180
181 This calls `make distclean' plus removes automatically generated files
182 by hand. It also removes *.log files. However, it will not remove any
183 other files you might have created.
184
185 <br /><br />
186
187 <b>Makefiles and configuration files</b>
188 <br /><br />
189 Developers should never directly write a Makefile. All Makefiles are
190 always automatically generated by ./prepare and later by ./configure
191 scripts. Instead, developers have to write Makefile.am files. There
192 are plenty of examples what they should look like. If you changed
193 Makefile.am during development you do not need to run ./prepare, just
194 run normal make.
195 <br />
196 Configuration files are the files that ./prepare automatically generates
197 and which will be included into public distribution. ./prepare creates
198 for example the ./configure script that is not commited to the CVS.
199 `configure.in' is the file that developers have to edit to change ./configure
200 script. After doing changes you need to run ./prepare.
201 </font>