1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
Procedure for making a GF release:
1. Make sure everything that should be in the release has been
checked in.
2. Go to the src/ dir.
$ cd src
3. Edit configure.ac to set the right version number
(the second argument to the AC_INIT macro).
4. Edit gf.spec to set the version and release numbers
(change %define version and %define release).
5. Commit configure.ac and gf.spec:
$ darcs record -m 'Updated version numbers.' configure.ac gf.spec
6. Run autoconf to generate configure with the right version number:
$ autoconf
7. Go back to the root of the tree.
$ cd ..
8. Tag the release. (X_X should be replaced by the version number, with
_ instead of ., e.g. 2_0)
$ darcs tag -m RELEASE-X_X
9. Push the changes that you made for the release to the main repo:
$ darcs push
10. Build a source package:
$ cd src
$ ./configure
$ make dist
11. (Only if releasing a new grammars distribution)
Build a grammar tarball:
$ cd src
$ ./configure && make grammar-dist
12. Build an x86/linux RPM (should be done on a Mandrake Linux box):
Setup for building RPMs (first time only):
- Make sure that you have the directories neccessary to build
RPMs:
$ mkdir -p ~/rpm/{BUILD,RPMS/i586,RPMS/noarch,SOURCES,SRPMS,SPECS,tmp}
- Create ~/.rpmrc with the following contents:
buildarchtranslate: i386: i586
buildarchtranslate: i486: i586
buildarchtranslate: i586: i586
buildarchtranslate: i686: i586
- Create ~/.rpmmacros with the following contents:
%_topdir %(echo ${HOME}/rpm)
%_tmppath %{_topdir}/tmp
%packager Your Name <yourusername@cs.chalmers.se>
Build the RPM:
$ cd src
$ ./configure && make rpm
13. Build a generic binary x86/linux package (should be done on a Linux box,
e.g. banded.medic.chalmers.se):
$ cd src
$ ./configure --host=i386-pc-linux-gnu && make binary-dist
14. Build a generic binary sparc/solaris package (should be done
on a Solaris box, e.g. remote1.cs.chalmers.se):
$ cd src
$ ./configure --host=sparc-sun-solaris2 && gmake binary-dist
15. Build a Mac OS X package (should be done on a Mac OS X box,
e.g. csmisc99.cs.chalmers.se):
$ cd src
$ ./configure && make binary-dist
Note that to run GHC-compiled binaries on OS X, you need
a "Haskell Support Framework". This should be available
separately from the GF download page.
TODO: Use OS X PackageMaker to build a .pkg-file which can
be installed using the standard OS X Installer program.
16. Build a binary Cygwin package (should be done on a Windows
machine with Cygwin):
$ cd src
$ ./configure && make binary-dist
17. Build a Windows MSI package (FIXME: This doesn't work right,
pathnames with backslashes and spaces are not handled
correctly in Windows. We only release a binary tarball
for Cygwin right now.):
$ cd src
$ ./configure && make all windows-msi
18. Add new GF package release to SourceForge:
- Project page -> Admin -> File releases -> Add release (for the
GF package)
- New release name: X.X (just the version number, e.g. 2.2)
- Paste in release notes
- Upload files using anonymous FTP to upload.sourceforge.net
in the incoming directory.
- Add the files to the release and set the processor
and file type for each file (remember to press
Update/Refresh for each file):
* x86 rpm -> i386/.rpm
* source rpm -> Any/Source .rpm
* x86 binary tarball -> i386/.gz
* sparc binary tarball -> Sparc/.gz
* source package -> Any/Source .gz
19. Add new GF-editor release. Repeat the steps above, but
with GF-editor:
- Add files and set properties:
* editor rpm -> i386/.rpm (not really true, but I haven't
figured out how to make noarch rpms from the same spec as
arch-specific ones)
20. (Only if releasing a new grammars distribution)
Add new GF-grammars release. Repeat the steps above, but with
GF-grammars:
- Add files and set properties:
* grammar tarball -> Platform independent/Source .gz
21. Update website.
22. Party!
|