• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1All you need to know when hacking (modifying) GNU gettext or when building
2it off the git repository.
3
4
5Requirements
6============
7
8You will need reasonably recent versions of the build tools:
9
10  * A C compiler; on Cygwin or mingw also a C++ compiler. Such as GNU GCC.
11    + Homepage:
12      https://gcc.gnu.org/
13
14  * GNU automake 1.13 or newer
15    + Homepage:
16      https://www.gnu.org/software/automake/
17
18  * GNU autoconf
19    + Homepage:
20      https://www.gnu.org/software/autoconf/
21
22  * GNU m4
23    + Homepage:
24      https://www.gnu.org/software/m4/
25
26  * GNU bison 3.0 or newer
27    + Homepage:
28      https://www.gnu.org/software/bison/
29
30  * GNU gperf
31    + Homepage:
32      https://www.gnu.org/software/gperf/
33
34  * GNU groff 1.17 or newer
35    + Homepage:
36      https://www.gnu.org/software/groff/
37
38  * GNU texinfo
39    + Homepage:
40      https://www.gnu.org/software/texinfo/
41
42  * GNU emacs or XEmacs
43    + Homepage:
44      https://www.gnu.org/software/emacs/
45      https://www.xemacs.org/
46
47  * Perl
48    + Homepage:
49      https://www.perl.org/
50
51  * TeX (for making the doc in .dvi, .ps or .pdf format)
52    + Homepage:
53      https://tug.org/teTeX/
54
55  * Either an internet connection or a recent copy of GNU gnulib.
56    + Homepage:
57      https://www.gnu.org/software/gnulib/
58
59  * GNU tar (for creating distributable tarballs)
60    + Homepage:
61      https://www.gnu.org/software/tar/
62
63  * GNU Wget
64    + Homepage:
65      https://www.gnu.org/software/wget/
66
67  * XZ Utils
68    + Homepage:
69      https://tukaani.org/xz/
70
71  * Lzip
72    + Homepage:
73      https://www.nongnu.org/lzip/
74
75And, of course, the packages listed in the DEPENDENCIES file.
76
77
78Additional requirements for maintainers
79---------------------------------------
80
81If you are a maintainer, you will want to minimize the number of tests that
82are skipped. To this effect, you need to install also:
83
84  * A C++ compiler
85    + Homepage: https://gcc.gnu.org/
86    + Ubuntu package: g++
87  * An Objective C compiler
88    + Homepage: https://gcc.gnu.org/
89    + Ubuntu package: gobjc
90
91  * Python
92    + Homepage: https://www.python.org/
93    + Ubuntu package: python
94
95  * GNU clisp
96    + Homepage: http://clisp.org/
97    + Ubuntu package: clisp
98
99  * librep
100    + Homepage: http://librep.sourceforge.net/
101    + Ubuntu package: rep
102
103  * GNU guile
104    + Homepage: https://www.gnu.org/software/guile/
105    + Ubuntu package: guile-2.0
106
107  * GNU smalltalk
108    + Homepage: http://smalltalk.gnu.org/
109    + Ubuntu package: gnu-smalltalk
110
111  * A Java compiler
112    + Homepage: http://openjdk.java.net/
113    + Ubuntu package: default-jdk
114
115  * A C# compiler
116    + Homepage: https://www.mono-project.com/
117    + Ubuntu package: mono-mcs
118
119  * GNU awk
120    + Homepage: https://www.gnu.org/software/gawk/
121    + Ubuntu package: gawk
122
123  * The Free Pascal compiler ppc386 or ppcx64
124    + Homepage: https://www.freepascal.org/
125    + Ubuntu package: fp-compiler
126  * The Free Pascal Free Component Library
127    + Homepage: https://www.freepascal.org/fcl/fcl.var
128    + Ubuntu package: fp-units-fcl
129
130  * Tcl
131    + Homepage: https://www.tcl.tk/
132    + Ubuntu package: tcl
133
134  * Perl
135    + Homepage: https://www.perl.org/
136    + Ubuntu package: perl
137  * The Perl packages Locale::Messages and libintl-perl
138    + Homepage: http://search.cpan.org/~guido/libintl-perl/
139    + Ubuntu package: libintl-perl
140
141  * php
142    + Homepage: http://www.php.net/
143    + Ubuntu package: php
144
145  * Ruby
146    + Homepage: https://www.ruby-lang.org/en/
147    + Ubuntu package: ruby
148  * The ruby-gettext package
149    + Homepage: https://ruby-gettext.github.io/
150    + Ubuntu package: ruby-gettext
151
152  * lua
153    + Homepage: https://www.lua.org/
154    + Ubuntu package: lua5.2 or lua5.1
155  * The lua-gettext package
156    + Homepage: https://gitlab.com/sukhichev/lua-gettext/blob/master/README.us.md
157    + Debian and Ubuntu packages:
158      Download, then install through
159      $ sudo dpkg -i lua-gettext_0.0_amd64.deb
160
161  * The GNOME/Mozilla JavaScript interpreter
162    + Homepage: https://wiki.gnome.org/Projects/Gjs
163    + Ubuntu packages: gjs gir1.2-gtk-3.0
164
165  * The GNOME Vala compiler
166    + Homepage: https://wiki.gnome.org/Projects/Vala
167    + Ubuntu package: valac
168
169If you want to exercise the sample programs in gettext-tools/examples/, you
170also need to install:
171
172  * The Qt GUI toolkit library
173    + Homepage: https://www.qt.io/
174    + Ubuntu package: libqt4-dev
175
176  * The wxWidgets GUI toolkit library
177    + Homepage: https://www.wxwidgets.org/
178    + Ubuntu package: libwxgtk3.0-dev
179
180  * The GNUstep toolkit and development environment
181    + Homepage: http://www.gnustep.org/
182    * Ubuntu package: gnustep-devel
183
184  * The C# System.Windows.Forms implementation
185    + Homepage: https://www.mono-project.com/
186    + Ubuntu package: libmono-system-windows-forms4.0-cil
187
188And you need to install a couple of locales, used by the tests.
189By default, only those enabled in /etc/locale.gen are preinstalled.
190
191$ sudo localedef -i de_DE -f ISO-8859-1 de_DE.ISO-8859-1
192$ sudo localedef -i de_DE -f UTF-8 de_DE.UTF-8
193$ sudo localedef -i fa_IR -f UTF-8 fa_IR
194$ sudo localedef -i fr_FR -f ISO-8859-1 fr_FR.ISO-8859-1
195$ sudo localedef -i fr_FR -f UTF-8 fr_FR.UTF-8
196$ sudo localedef -i ja_JP -f EUC-JP ja_JP.EUC-JP
197$ sudo localedef -i tr_TR -f UTF-8 tr_TR.UTF-8
198$ sudo localedef -i zh_CN -f GB18030 zh_CN.GB18030
199
200
201Building off the Git repository
202===============================
203
204Access to the Git repository is described at
205https://savannah.gnu.org/git/?group=gettext .
206
207After fetching the sources from the Git repository, peek at the comments in
208autogen.sh, then run
209  ./gitsub.sh pull
210  ./autogen.sh
211Then you can proceed with "./configure" as usual.
212
213Each time you want to update the source, do not only "git pull".  Instead do
214  git pull && ./gitsub.sh pull
215  ./autogen.sh
216
217
218Continuous integration
219======================
220
221The package is built automatically, at regular intervals.  You find the latest
222build results here:
223  https://gitlab.com/gnu-gettext/ci-distcheck/pipelines
224  https://gitlab.com/gnu-gettext/ci-distcheck/-/jobs?scope=finished
225
226
227Submitting patches
228==================
229
230Patches should be sent to bug-gettext@gnu.org, the bug/feature mailing
231list.  You can subscribe to the mailing list, or see the list
232archives, by following links from
233https://savannah.gnu.org/mail/?group=gettext .
234
235To email a patch you can use a shell command like 'git format-patch
236-1' to create a file, and then attach the file to your email.
237
238GNU gettext development no longer stores descriptions of new changes
239in ChangeLog files.  Instead, a single ChangeLog file is generated
240from the commit messages when a release is prepared.  So changes you
241commit should not touch any of the ChangeLog files in the repository,
242but instead should contain the log entries in the commit message.
243
244For the style of a ChangeLog entry, see the "Change Logs" section of
245the GNU coding standards:
246
247  https://www.gnu.org/prep/standards/html_node/Change-Logs.html
248