| All you need to know when hacking (modifying) GNU gettext or when building |
| it off the git repository. |
| |
| |
| Requirements |
| ============ |
| |
| You will need reasonably recent versions of the build tools: |
| |
| * A C compiler; on Cygwin or mingw also a C++ compiler. Such as GNU GCC. |
| + Homepage: |
| https://gcc.gnu.org/ |
| |
| * GNU automake 1.13 or newer |
| + Homepage: |
| https://www.gnu.org/software/automake/ |
| |
| * GNU autoconf |
| + Homepage: |
| https://www.gnu.org/software/autoconf/ |
| |
| * GNU m4 |
| + Homepage: |
| https://www.gnu.org/software/m4/ |
| |
| * GNU bison 3.0 or newer |
| + Homepage: |
| https://www.gnu.org/software/bison/ |
| |
| * GNU gperf |
| + Homepage: |
| https://www.gnu.org/software/gperf/ |
| |
| * GNU groff 1.17 or newer |
| + Homepage: |
| https://www.gnu.org/software/groff/ |
| |
| * GNU texinfo |
| + Homepage: |
| https://www.gnu.org/software/texinfo/ |
| |
| * GNU emacs or XEmacs |
| + Homepage: |
| https://www.gnu.org/software/emacs/ |
| https://www.xemacs.org/ |
| |
| * Perl |
| + Homepage: |
| https://www.perl.org/ |
| |
| * TeX (for making the doc in .dvi, .ps or .pdf format) |
| + Homepage: |
| https://tug.org/teTeX/ |
| |
| * Either an internet connection or a recent copy of GNU gnulib. |
| + Homepage: |
| https://www.gnu.org/software/gnulib/ |
| |
| * GNU tar (for creating distributable tarballs) |
| + Homepage: |
| https://www.gnu.org/software/tar/ |
| |
| * GNU Wget |
| + Homepage: |
| https://www.gnu.org/software/wget/ |
| |
| * XZ Utils |
| + Homepage: |
| https://tukaani.org/xz/ |
| |
| * Lzip |
| + Homepage: |
| https://www.nongnu.org/lzip/ |
| |
| And, of course, the packages listed in the DEPENDENCIES file. |
| |
| |
| Additional requirements for maintainers |
| --------------------------------------- |
| |
| If you are a maintainer, you will want to minimize the number of tests that |
| are skipped. To this effect, you need to install also: |
| |
| * A C++ compiler |
| + Homepage: https://gcc.gnu.org/ |
| + Ubuntu package: g++ |
| * An Objective C compiler |
| + Homepage: https://gcc.gnu.org/ |
| + Ubuntu package: gobjc |
| |
| * Python |
| + Homepage: https://www.python.org/ |
| + Ubuntu package: python |
| |
| * GNU clisp |
| + Homepage: http://clisp.org/ |
| + Ubuntu package: clisp |
| |
| * librep |
| + Homepage: http://librep.sourceforge.net/ |
| + Ubuntu package: rep |
| |
| * GNU guile |
| + Homepage: https://www.gnu.org/software/guile/ |
| + Ubuntu package: guile-2.0 |
| |
| * GNU smalltalk |
| + Homepage: http://smalltalk.gnu.org/ |
| + Ubuntu package: gnu-smalltalk |
| |
| * A Java compiler |
| + Homepage: http://openjdk.java.net/ |
| + Ubuntu package: default-jdk |
| |
| * A C# compiler |
| + Homepage: https://www.mono-project.com/ |
| + Ubuntu package: mono-mcs |
| |
| * GNU awk |
| + Homepage: https://www.gnu.org/software/gawk/ |
| + Ubuntu package: gawk |
| |
| * The Free Pascal compiler ppc386 or ppcx64 |
| + Homepage: https://www.freepascal.org/ |
| + Ubuntu package: fp-compiler |
| * The Free Pascal Free Component Library |
| + Homepage: https://www.freepascal.org/fcl/fcl.var |
| + Ubuntu package: fp-units-fcl |
| |
| * Tcl |
| + Homepage: https://www.tcl.tk/ |
| + Ubuntu package: tcl |
| |
| * Perl |
| + Homepage: https://www.perl.org/ |
| + Ubuntu package: perl |
| * The Perl packages Locale::Messages and libintl-perl |
| + Homepage: http://search.cpan.org/~guido/libintl-perl/ |
| + Ubuntu package: libintl-perl |
| |
| * php |
| + Homepage: http://www.php.net/ |
| + Ubuntu package: php |
| |
| * Ruby |
| + Homepage: https://www.ruby-lang.org/en/ |
| + Ubuntu package: ruby |
| * The ruby-gettext package |
| + Homepage: https://ruby-gettext.github.io/ |
| + Ubuntu package: ruby-gettext |
| |
| * lua |
| + Homepage: https://www.lua.org/ |
| + Ubuntu package: lua5.2 or lua5.1 |
| * The lua-gettext package |
| + Homepage: https://gitlab.com/sukhichev/lua-gettext/blob/master/README.us.md |
| + Debian and Ubuntu packages: |
| Download, then install through |
| $ sudo dpkg -i lua-gettext_0.0_amd64.deb |
| |
| * The GNOME/Mozilla JavaScript interpreter |
| + Homepage: https://wiki.gnome.org/Projects/Gjs |
| + Ubuntu packages: gjs gir1.2-gtk-3.0 |
| |
| * The GNOME Vala compiler |
| + Homepage: https://wiki.gnome.org/Projects/Vala |
| + Ubuntu package: valac |
| |
| If you want to exercise the sample programs in gettext-tools/examples/, you |
| also need to install: |
| |
| * The Qt GUI toolkit library |
| + Homepage: https://www.qt.io/ |
| + Ubuntu package: libqt4-dev |
| |
| * The wxWidgets GUI toolkit library |
| + Homepage: https://www.wxwidgets.org/ |
| + Ubuntu package: libwxgtk3.0-dev |
| |
| * The GNUstep toolkit and development environment |
| + Homepage: http://www.gnustep.org/ |
| * Ubuntu package: gnustep-devel |
| |
| * The C# System.Windows.Forms implementation |
| + Homepage: https://www.mono-project.com/ |
| + Ubuntu package: libmono-system-windows-forms4.0-cil |
| |
| And you need to install a couple of locales, used by the tests. |
| By default, only those enabled in /etc/locale.gen are preinstalled. |
| |
| $ sudo localedef -i de_DE -f ISO-8859-1 de_DE.ISO-8859-1 |
| $ sudo localedef -i de_DE -f UTF-8 de_DE.UTF-8 |
| $ sudo localedef -i fa_IR -f UTF-8 fa_IR |
| $ sudo localedef -i fr_FR -f ISO-8859-1 fr_FR.ISO-8859-1 |
| $ sudo localedef -i fr_FR -f UTF-8 fr_FR.UTF-8 |
| $ sudo localedef -i ja_JP -f EUC-JP ja_JP.EUC-JP |
| $ sudo localedef -i tr_TR -f UTF-8 tr_TR.UTF-8 |
| $ sudo localedef -i zh_CN -f GB18030 zh_CN.GB18030 |
| |
| |
| Building off the Git repository |
| =============================== |
| |
| Access to the Git repository is described at |
| https://savannah.gnu.org/git/?group=gettext . |
| |
| After fetching the sources from the Git repository, peek at the comments in |
| autogen.sh, then run |
| ./gitsub.sh pull |
| ./autogen.sh |
| Then you can proceed with "./configure" as usual. |
| |
| Each time you want to update the source, do not only "git pull". Instead do |
| git pull && ./gitsub.sh pull |
| ./autogen.sh |
| |
| |
| Continuous integration |
| ====================== |
| |
| The package is built automatically, at regular intervals. You find the latest |
| build results here: |
| https://gitlab.com/gnu-gettext/ci-distcheck/pipelines |
| https://gitlab.com/gnu-gettext/ci-distcheck/-/jobs?scope=finished |
| |
| |
| Submitting patches |
| ================== |
| |
| Patches should be sent to bug-gettext@gnu.org, the bug/feature mailing |
| list. You can subscribe to the mailing list, or see the list |
| archives, by following links from |
| https://savannah.gnu.org/mail/?group=gettext . |
| |
| To email a patch you can use a shell command like 'git format-patch |
| -1' to create a file, and then attach the file to your email. |
| |
| GNU gettext development no longer stores descriptions of new changes |
| in ChangeLog files. Instead, a single ChangeLog file is generated |
| from the commit messages when a release is prepared. So changes you |
| commit should not touch any of the ChangeLog files in the repository, |
| but instead should contain the log entries in the commit message. |
| |
| For the style of a ChangeLog entry, see the "Change Logs" section of |
| the GNU coding standards: |
| |
| https://www.gnu.org/prep/standards/html_node/Change-Logs.html |