HACKING 4.9 KB
Newer Older
1
2
3
4
5
This file contains some information intended for the developers of
lyskomd.  It is probably only useful if you have access to the CVS
repository (there is no anoncvs access at this time) or if you are
about to make a new release of lyskomd.

Per Cederqvist's avatar
Per Cederqvist committed
6
See also doc/lyskomd.texi.
7
8
9
10
11
12


Support programs
================

It is important to use the correct version of some support programs
13
14
15
when creating the distribution.  (This section is not relevant if you
are using a normal release -- these tools are only needed when
creating the distribution.)
16
17
18



19
Automake 1.7.6
20
21
--------

22
23
24
25
Automake 1.7.6 is recommended.  To get decent handling of locating the
python binary you need to apply a patch that can be found at
http://sources.redhat.com/cgi-bin/gnatsweb.pl?database=automake.  The
relevant problem report number is 398.
26
27


28
Autoconf 2.56
29
30
--------

31
Autoconf 2.56 is recommended.  2.55 might be good enough.
32
33


34
Perl 5.6.1
35
36
37
38
----

The perl version should not matter.

39

40
Python 2.1
41
42
------

43
44
The version of Python should not matter.  1.5 should be good enough.
Go with Python 2.1, Python 2.2.1 or newer.
45
46


47
48
49
50
Bison and flex
--------------

You may need the Gnu tools bison and flex. The standard lex and yacc
51
are not flexible enough. You should have bison version 1.35 or later
52
53
54
and flex version 2.5.4 or later.


55
56
57
58
59
DejaGnu 1.4.2
-------

You need a recent DejaGnu release.  DejaGnu in turn needs TCL and
expect.  See README.
60
61


62
63
64
65
66
67
68
Texinfo 4.2
-------

You need a recent version of GNU texinfo to process the documentation.
Version 4.2 is recommended. Version 4.0 is too old.


69
70
71
72
73
Release generation
==================

Follow these steps:

74
75
76
* Check that all bugs refered to in doc/Protocol-A.texi are still
  open.  (Search for "bugzilla" to find them.)

Per Cederqvist's avatar
Per Cederqvist committed
77
78
79
80
81
82
* Run

	make distcheck

  and make sure it works.

83
84
85
86
87
88
89
90
91
* Check that you can unpack the resulting archive, and then run

	./configure --prefix=/tmp/foo
	make install

  Note that the "-C" option isn't used, and that there is no
  intermediate "make" step (those more normal methods of compilation
  are tested thoroughly by the Xenofarm).

92
93
94
95
96
97
98
* Check that the following files are updated:

	doc/Protocol-A.texi
	doc/lyskomd.texi
	README
	NEWS

Per Cederqvist's avatar
Per Cederqvist committed
99
100
* Run doc/Protocol-A.texi through M-x ispell.

101
102
103
104
* Run the testsuite with the EXTENDED tests (search for EXTENDED in
  src/server/testsuite/lyskomd.0/gen-*.py).  This requires some
  patience.  Be sure to reset EXTENDED to 0 when you are done.

105
106
* Use src/server/testsuite/lyskomd.0/summarize.sh

107
108
* Move all unresolved bugs for the milestone, if any, to a new milestone.

109
110
111
* Set the version number in these files:

	versions
112
113
	configure.in (in two places)
	doc/Protocol-A.texi (potentially in several places)
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131

* Fix the Copyright statement in these files:

	scripts/update-copyright
	scripts/lyskomd-copyrights

* Write a note such as "* Release 1.9.0." in ChangeLog.

* Commit everything.

* Update the copyright statements by running

	scripts/lyskomd-copyrights

  repeatedly until nothing happens.

* Commit everything.

Kent Engström's avatar
Kent Engström committed
132
* Wait until the Xenofarm has built the package and tested it.
Per Cederqvist's avatar
Per Cederqvist committed
133

134
135
136
137
138
* Run these commands:

	./mkmi
	./configure
	make distclean    # We want to recompute all dependencies.
139
	./configure
140
	make check	  # Recompute them.
141
142
143
144
145
	make distcheck

  Make sure that the host where you do this have TeX installed, so
  that you ensure that the dvi target is working.

146
147
148
149
150
151
* Compare the resulting file with the file in the Xenofarm build.
  There should be no noteworthy differences.  Discard the resulting
  file and use the distribution from Xenofarm, as that is the
  distribution that has received a lot of testing.

* Compare the distribution with the previous release, and ensure
152
153
  that no unexpected differences exists.

154
155
* Test the distribution on u137 and possibly more machines.  Repeat
  until no failure.
156

157
158
159
160
* Sign the archive using GPG:

	gpg -s -b lyskom-server-2.0.7.tar.gz

161
162
163
164
* Set a tag:

	cvs tag server-2-0-0

165
166
167
168
169
* Copy the tar file and the GPG signature to the FTP server and the
  Web server:

	/lysator/ftp/pub/lyskom/server/
	/lysator/www/www-pages/html/lyskom/
170
171
172
173
174
175
176
177

* Create a diff.

	tar xfz /lysator/ftp/pub/lyskom/server/lyskom-server-1.9.0.tar.gz
	tar xfz /lysator/ftp/pub/lyskom/server/lyskom-server-2.0.0.tar.gz
	diff -u --recursive --unidirectional-new-file \
		lyskom-1.9.0 lyskom-server-2.0.0

Per Cederqvist's avatar
Per Cederqvist committed
178
  Publish the diff only if it works and is small enough.
179

180
* Add the new version number to Bugzilla.
181
182

* Mark all resolved and verified bugs for the milestone as closed.
183
184
185
186
187

* Update /lysator/www/www-pages/html/lyskom/index.html

* Update /lysator/www/www-pages/html/lyskom/index-en.html

188
189
* Update /lysator/www/www-pages/html/lyskom/lyskom-server/index.html

Per Cederqvist's avatar
Per Cederqvist committed
190
191
* Update /lysator/www/www-pages/html/lyskom/lyskom-server/NEWS.txt

192
193
194
195
196
197
198
* Publish the protocol specification using the update-www target of
  doc/Makefile.  Be careful!  Check that nothing in the WWW setup has
  changed before running the make target.

* Announce the release in "Nyheter (om) LysKOM".

* Announce the release on Freshmeat.
199
200

* Announce the release in "News about LysKOM" in com.lysator.liu.se.