From 4da4ddea3a40049f90c6d2bfb27bc3de564160c8 Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Wed, 20 Feb 2019 17:02:27 +0200 Subject: Avoid introducing gnulib dependencies to libdico After pulling updates from gnulib, it was discovered that it had added an unwanted dependency to the libdico. The dependency was added b redefining fseek to rpl_fseek in the config.h. Of course, that's quite OK for user programs and in fact that's one of the purposes of gnulib, so it's doing its job all right. However, this kind of depedencies is not acceptable in installable libraries, such as libdico. There are two ways of fixing this: (1) by including libgnu to the libdico, or (2) by creating pristine (i.e. stripped of any gnulib stuff) version of config.h and using it in the library sources. The first approach was used in mailutils for the libmu_aux convenience library. However, in dico I wouldn't like to introduce additional dependencies to the installable libraries and modules, therefore second approach has been chosen. Two separare configuration headers are introduced: include/prog/config.h Configuration header with gnulib dependencies. It is used by libxdico, and user-space programs: dico, dicod, idxgcide and some test programs. include/lib/config.h Pristine header, free from any gnulib additions. It is used by all installable libraries, including dicod modules. In order to create pristine header, bootstrap uses specially prepared temporary edition of configure.ac, which is stripped off any gl_.* statements. This approach introduces additional difficulties. The two header files are of course listed in the AC_CONFIG_HEADERS statement in configure.ac. Autotools give precedence to the first one. It is the only file for which autoheader creates the .h.in template. Further, automake creates in each Makefile.am the DEFAULT_INCLUDES statement, which lists the directory part of the first header, and this value is used in the compiler command line. This means that to include the pristine header, its path prefix needs to be specified. To avoid this, the nostdinc option is passed to AM_INIT_AUTOMAKE. As a side effect, it makes it impossible to build libltdl in the recursive mode (although its Makefile.am pretends otherwise). Thus, libltdl is built in nonrecursive mode from the main Makefile.am. Similar problem occurs with the gnulib itself, although in this case its bootstrapping tool provides sufficient mechanisms to help overcome it. Gnulib is built as a sub-library of libxdico. As a side effect, the libextra library is no longer needed. Another side effect is that the rewritten bootstrap script made it possible to use gnulib-tool directly, instead of using gnulib/build-aux/bootstrap wrapper. Following bugs are fixed by this change: https://puszcza.gnu.org.ua/bugs/?416 https://puszcza.gnu.org.ua/bugs/?417 https://puszcza.gnu.org.ua/bugs/?418 Almost all files in the project are affected by this change. However, some changes are pure bugfixes. These are: * lib/mergesort.c (mergesort): Rename to dico_mergesort to avoid name clash on Free and OpenBSD. * lib/stream.c (dico_stream_getdelim): Fix memory reallocation algorithm. * lib/utf8.c (utf8_wc_strstr): Reset errno to 0. * lib/libi18n.c: Don't depend on gnu/configmake.h * modules/wordnet/module.ac: Move definition of WORDNET_COND out of conditional context. This fixes the functionality of the configure --without-wordnet option. Some obsolete and unused files have been removed. These are: * include/gjdict.xbm * lib/bushu.dat * lib/bushu.h * lib/cursor.xbm * lib/jiscvt.c * makedict/ Main set of changes is: * bootstrap: Mostly rewritten as described above. * GNUmakefile: New file for the ease of maintenance. * maint/bootstrap.mk: New file. * gnulib.modules: Moved to maint/ * maint/printflike: New file. Lists printf-like functions for gettext. * configure.boot: Use AC_CONFIG_HEADERS with two header files. Use nostdinc option to AM_INIT_AUTOMAKE. (LTDL_INIT): Use nonrecursive option. (DICO_PROG_CONFIG,DICO_LIB_CONFIG) (DICO_PROG_INCLUDES,DICO_MODULE_INCLUDES): New substitution variables. (GRECS_HOST_PROJECT_INCLUDES): Fix value. (COND_LIBDICOSASL): New conditional. * Makefile.am: Build libltdl. * lib/Makefile.am: Move convenience libraries to another directory. Build only libdico. * dico/Makefile.am: Fix LDADD and includes. * dicod/Makefile.am: Likewise. * dicod/tests/Makefile.am: Likewise. * lib/tests/Makefile.am: Likewise. * modules/*/Makefile.am: Likewise. The directory struture is reorganized and the sources of convenience libraries moved to a separate directory: * xdico/Makefile.am: New file * xdico/appi18n.c * xdico/gsaslstr.c * xdico/iputil.c * xdico/timer.c * xdico/userprivs.c * xdico/xalloc-die.c * xdico/xhostname.c * xdico/xscript.c * xdico/xstream.c * xdico/xtkn.c * xdico/xutil.c: All moved from lib * xdico/gnu/Makefile.am: New file. * xdico/gnu: Gnulib sources imported to this directory. --- .gitignore | 1 - GNUmakefile | 11 + Makefile.am | 24 +- NEWS | 4 +- README | 2 +- README-alpha | 2 +- README-hacking | 2 +- am/lib.m4 | 2 +- am/testdir.m4 | 2 +- app/python/mediawiki.py | 2 +- bootstrap | 557 ++++++++++++++++++------ configure.boot | 41 +- dico/Makefile.am | 15 +- dico/autologin.c | 2 +- dico/cmdline.opt | 3 +- dico/connect.c | 2 +- dico/dico-priv.h | 2 +- dico/dico.c | 2 +- dico/func.c | 2 +- dico/lookup.c | 2 +- dico/pager.c | 2 +- dico/saslauth.c | 2 +- dico/shell.c | 2 +- dicod/Makefile.am | 12 +- dicod/accesslog.c | 2 +- dicod/acl.c | 2 +- dicod/alias.c | 2 +- dicod/auth.c | 2 +- dicod/capa.c | 2 +- dicod/ckpass.c | 2 +- dicod/cmdline.opt | 3 +- dicod/commands.c | 2 +- dicod/database.c | 2 +- dicod/dbtext.c | 2 +- dicod/dicod.c | 2 +- dicod/dicod.h | 3 +- dicod/gsasl.c | 2 +- dicod/ident.c | 2 +- dicod/lang.c | 2 +- dicod/lev.c | 2 +- dicod/lint.c | 2 +- dicod/loader.c | 2 +- dicod/main.c | 3 +- dicod/markup.c | 2 +- dicod/mime.c | 2 +- dicod/ostream.c | 2 +- dicod/pp-setup | 2 +- dicod/regex.c | 2 +- dicod/result.c | 2 +- dicod/server.c | 2 +- dicod/stat.c | 2 +- dicod/stratcl.c | 2 +- dicod/tests/Makefile.am | 12 +- dicod/tests/alias.at | 2 +- dicod/tests/apop.at | 2 +- dicod/tests/apopauth.c | 2 +- dicod/tests/atlocal.in | 2 +- dicod/tests/def.at | 2 +- dicod/tests/descr.at | 2 +- dicod/tests/echo.c | 2 +- dicod/tests/help00.at | 2 +- dicod/tests/help01.at | 2 +- dicod/tests/help02.at | 2 +- dicod/tests/help03.at | 2 +- dicod/tests/info.at | 2 +- dicod/tests/match.at | 2 +- dicod/tests/nodef.at | 2 +- dicod/tests/nomatch.at | 2 +- dicod/tests/showdb.at | 2 +- dicod/tests/showstrat.at | 2 +- dicod/tests/startup.at | 2 +- dicod/tests/testsuite.at | 2 +- dicod/tests/virt01.at | 2 +- dicod/tests/virt02.at | 2 +- dicod/tests/virt03.at | 2 +- dicod/tests/virt04.at | 2 +- dicod/tests/vis00.at | 2 +- dicod/tests/vis01.at | 2 +- dicod/tests/vis02.at | 2 +- dicod/virtual.c | 2 +- dicod/xidle.c | 2 +- dicod/xversion.c | 2 +- doc/Makefile.am | 2 +- doc/dico.1 | 2 +- doc/dico.texi | 2 +- doc/dicod.8in | 2 +- doc/dicod.conf.5in | 2 +- doc/html.init | 2 +- doc/proto.texi | 2 +- doc/strat.texi | 2 +- examples/Makefile.am | 2 +- examples/glossary.scm | 2 +- examples/listdict.scm | 2 +- examples/textdict.py | 2 +- gnulib | 2 +- gnulib.modules | 30 -- gnulibinit.conf | 74 ---- include/.gitignore | 2 + include/Makefile.am | 4 +- include/appi18n.h | 2 +- include/dico.h | 2 +- include/dico/Makefile.am | 2 +- include/dico/assoc.h | 2 +- include/dico/diag.h | 2 +- include/dico/filter.h | 2 +- include/dico/list.h | 2 +- include/dico/markup.h | 2 +- include/dico/parseopt.h | 2 +- include/dico/strat.h | 2 +- include/dico/stream.h | 2 +- include/dico/tokenize.h | 2 +- include/dico/types.h | 2 +- include/dico/udb.h | 2 +- include/dico/url.h | 2 +- include/dico/utf8.h | 2 +- include/dico/util.h | 2 +- include/dico/xlat.h | 2 +- include/gjdict.xbm | 28 -- include/gsaslstr.h | 2 +- include/libi18n.h | 2 +- include/testsuite.inc | 2 +- include/xdico.h | 2 +- lib/Makefile.am | 33 +- lib/appi18n.c | 30 -- lib/argcv.c | 8 +- lib/assoc.c | 6 +- lib/base64.c | 7 +- lib/bsearch.c | 6 +- lib/bushu.dat | 286 ------------- lib/bushu.h | 28 -- lib/crlfstr.c | 6 +- lib/cursor.xbm | 6 - lib/dbgstream.c | 6 +- lib/diag.c | 6 +- lib/fdiostr.c | 6 +- lib/fdstream.c | 6 +- lib/fltstream.c | 6 +- lib/gsaslstr.c | 299 ------------- lib/header.c | 6 +- lib/iostr.c | 6 +- lib/iputil.c | 130 ------ lib/jiscvt.c | 243 ----------- lib/key.c | 6 +- lib/levenshtein.c | 6 +- lib/libi18n.c | 7 +- lib/linetrimstr.c | 6 +- lib/list.c | 6 +- lib/logstream.c | 2 +- lib/mapstream.c | 6 +- lib/markup.c | 6 +- lib/mergesort.c | 16 +- lib/parseopt.c | 6 +- lib/qp.c | 7 +- lib/soundex.c | 6 +- lib/strat.c | 6 +- lib/stream.c | 22 +- lib/tests/Makefile.am | 4 +- lib/tests/atlocal.in | 2 +- lib/tests/crlf00.at | 2 +- lib/tests/crlf01.at | 2 +- lib/tests/crlf02.at | 2 +- lib/tests/crlf03.at | 2 +- lib/tests/crlf04.at | 2 +- lib/tests/crlf05.at | 2 +- lib/tests/crlftool.c | 6 +- lib/tests/dlev00.at | 2 +- lib/tests/dlev01.at | 2 +- lib/tests/itrsh.c | 6 +- lib/tests/itrsh.h | 2 +- lib/tests/lev00.at | 2 +- lib/tests/lev01.at | 2 +- lib/tests/levtest.c | 6 +- lib/tests/linetrim.c | 6 +- lib/tests/list.at | 2 +- lib/tests/listop.c | 6 +- lib/tests/lntrim00.at | 2 +- lib/tests/lntrim01.at | 2 +- lib/tests/lntrim02.at | 2 +- lib/tests/lntrim03.at | 2 +- lib/tests/soundex.at | 2 +- lib/tests/soundex.c | 6 +- lib/tests/strcasecmp.at | 2 +- lib/tests/strlen.at | 2 +- lib/tests/strncasecmp.at | 2 +- lib/tests/testsuite.at | 2 +- lib/tests/tolower.at | 2 +- lib/tests/toupper.at | 2 +- lib/tests/utf8.c | 6 +- lib/tests/wcstrcasecmp.at | 2 +- lib/tests/wcstrchr.at | 2 +- lib/tests/wcstrcmp.at | 2 +- lib/tests/wcstrncasecmp.at | 2 +- lib/tests/wcstrncmp.at | 2 +- lib/tests/wcstrstr.at | 2 +- lib/timer.c | 201 --------- lib/tokenize.c | 6 +- lib/udb.c | 6 +- lib/url.c | 6 +- lib/userprivs.c | 140 ------- lib/utf8.c | 8 +- lib/utf8_is_alnum.c | 4 +- lib/utf8_is_space.c | 4 +- lib/util.c | 7 +- lib/xalloc-die.c | 27 -- lib/xhostname.c | 54 --- lib/xlat.c | 6 +- lib/xscript.c | 206 --------- lib/xstream.c | 69 --- lib/xtkn.c | 29 -- lib/xutil.c | 163 ------- maint/bootstrap.mk | 18 + maint/gnulib.modules | 38 ++ maint/printflike | 9 + makedict/.gitignore | 2 - makedict/Makefile.am | 48 --- makedict/compile.c | 632 ---------------------------- makedict/index.c | 769 ---------------------------------- makedict/main.c | 69 --- makedict/makedict.h | 109 ----- makedict/makedict.opt | 71 ---- makedict/romaji.c | 325 -------------- makedict/utils.c | 54 --- modules/dict.org/Makefile.am | 4 +- modules/dict.org/dictorg.c | 2 +- modules/dict.org/dictorg.h | 6 +- modules/dict.org/dictstr.c | 2 +- modules/dict.org/tests/Makefile.am | 2 +- modules/dict.org/tests/allchars.at | 2 +- modules/dict.org/tests/alnum.at | 2 +- modules/dict.org/tests/define.at | 2 +- modules/dict.org/tests/exact.at | 2 +- modules/dict.org/tests/ovdefmime.at | 2 +- modules/dict.org/tests/ovdefnomime.at | 2 +- modules/dict.org/tests/ovexact.at | 2 +- modules/dict.org/tests/ovshowdb.at | 2 +- modules/dict.org/tests/prefix.at | 2 +- modules/dict.org/tests/showdb.at | 2 +- modules/dict.org/tests/showinfo.at | 2 +- modules/dict.org/tests/suffix.at | 2 +- modules/dict.org/tests/testsuite.at | 2 +- modules/dict.org/tests/vdefine.at | 2 +- modules/dict.org/tests/vexact.at | 2 +- modules/dict.org/tests/vshowdb.at | 2 +- modules/dict.org/tests/word.at | 2 +- modules/gcide/Makefile.am | 18 +- modules/gcide/ent.c | 6 +- modules/gcide/gcide.c | 6 +- modules/gcide/gcide.h | 2 +- modules/gcide/grk.c | 6 +- modules/gcide/idx.c | 6 +- modules/gcide/idxgcide-cli.opt | 2 +- modules/gcide/idxgcide.l | 6 +- modules/gcide/markup.l | 6 +- modules/gcide/tests/Makefile.am | 3 +- modules/gcide/tests/all.at | 2 +- modules/gcide/tests/atlocal.in | 2 +- modules/gcide/tests/autoidx.at | 2 +- modules/gcide/tests/def00.at | 2 +- modules/gcide/tests/def01.at | 2 +- modules/gcide/tests/def02.at | 2 +- modules/gcide/tests/def03.at | 2 +- modules/gcide/tests/def04.at | 2 +- modules/gcide/tests/def05.at | 2 +- modules/gcide/tests/def06.at | 2 +- modules/gcide/tests/degcide.c | 6 +- modules/gcide/tests/descr.at | 2 +- modules/gcide/tests/exact.at | 2 +- modules/gcide/tests/exgrk.c | 2 +- modules/gcide/tests/greek.at | 2 +- modules/gcide/tests/greek.c | 6 +- modules/gcide/tests/idx.at | 2 +- modules/gcide/tests/info.at | 2 +- modules/gcide/tests/markup.at | 2 +- modules/gcide/tests/nopr.at | 2 +- modules/gcide/tests/prefix.at | 2 +- modules/gcide/tests/testsuite.at | 2 +- modules/gcide/webchr.c | 6 +- modules/guile/Makefile.am | 7 +- modules/guile/guile.c | 6 +- modules/guile/module.ac | 2 +- modules/guile/tests/Makefile.am | 2 +- modules/guile/tests/atlocal.in | 2 +- modules/guile/tests/define.at | 2 +- modules/guile/tests/exact.at | 2 +- modules/guile/tests/lev.at | 2 +- modules/guile/tests/mime.at | 2 +- modules/guile/tests/mime2.at | 2 +- modules/guile/tests/prefix.at | 2 +- modules/guile/tests/showdb.at | 2 +- modules/guile/tests/showinfo.at | 2 +- modules/guile/tests/showlang.at | 2 +- modules/guile/tests/suffix.at | 2 +- modules/guile/tests/testsuite.at | 2 +- modules/ldap/Makefile.am | 4 +- modules/ldap/ldap.c | 6 +- modules/ldap/module.ac | 2 +- modules/metaphone2/Makefile.am | 4 +- modules/metaphone2/metaphone2.c | 6 +- modules/metaphone2/tests/Makefile.am | 2 +- modules/metaphone2/tests/atlocal.in | 2 +- modules/metaphone2/tests/build.at | 2 +- modules/metaphone2/tests/comp00.at | 2 +- modules/metaphone2/tests/comp01.at | 2 +- modules/metaphone2/tests/comp02.at | 2 +- modules/metaphone2/tests/encode.at | 2 +- modules/metaphone2/tests/match00.at | 2 +- modules/metaphone2/tests/testsuite.at | 2 +- modules/nprefix/Makefile.am | 4 +- modules/nprefix/nprefix.c | 6 +- modules/nprefix/tests/Makefile.am | 2 +- modules/nprefix/tests/atlocal.in | 2 +- modules/nprefix/tests/np00.at | 2 +- modules/nprefix/tests/np01.at | 2 +- modules/nprefix/tests/np02.at | 2 +- modules/nprefix/tests/np03.at | 2 +- modules/nprefix/tests/np04.at | 2 +- modules/nprefix/tests/testsuite.at | 2 +- modules/outline/Makefile.am | 4 +- modules/outline/outline.c | 6 +- modules/outline/tests/Makefile.am | 2 +- modules/outline/tests/atlocal.in | 2 +- modules/outline/tests/define.at | 2 +- modules/outline/tests/dlev.at | 2 +- modules/outline/tests/dnlev.at | 2 +- modules/outline/tests/exact.at | 2 +- modules/outline/tests/lev.at | 2 +- modules/outline/tests/mime.at | 2 +- modules/outline/tests/nlev.at | 2 +- modules/outline/tests/prefix.at | 2 +- modules/outline/tests/re.at | 2 +- modules/outline/tests/regexp.at | 2 +- modules/outline/tests/showdb.at | 2 +- modules/outline/tests/showinfo.at | 2 +- modules/outline/tests/showlang.at | 2 +- modules/outline/tests/soundex.at | 2 +- modules/outline/tests/suffix.at | 2 +- modules/outline/tests/testsuite.at | 2 +- modules/pam/Makefile.am | 4 +- modules/pam/module.ac | 2 +- modules/pam/pam.c | 6 +- modules/pcre/Makefile.am | 4 +- modules/pcre/module.ac | 2 +- modules/pcre/pcre.c | 6 +- modules/python/Makefile.am | 2 +- modules/python/module.ac | 2 +- modules/python/python.c | 5 +- modules/python/python2.c | 5 +- modules/python/tests/Makefile.am | 2 +- modules/python/tests/atlocal.in | 2 +- modules/python/tests/define.at | 2 +- modules/python/tests/exact.at | 2 +- modules/python/tests/lev.at | 2 +- modules/python/tests/mime.at | 2 +- modules/python/tests/prefix.at | 2 +- modules/python/tests/showdb.at | 2 +- modules/python/tests/showinfo.at | 2 +- modules/python/tests/showlang.at | 2 +- modules/python/tests/testsuite.at | 2 +- modules/stratall/Makefile.am | 4 +- modules/stratall/stratall.c | 6 +- modules/stratall/tests/Makefile.am | 2 +- modules/stratall/tests/atlocal.in | 2 +- modules/stratall/tests/testsuite.at | 2 +- modules/stub.am | 2 +- modules/substr/Makefile.am | 4 +- modules/substr/substr.c | 6 +- modules/substr/tests/Makefile.am | 2 +- modules/substr/tests/atlocal.in | 2 +- modules/substr/tests/testsuite.at | 2 +- modules/template.scm | 2 +- modules/template/Makefile.am | 4 +- modules/template/module.c | 6 +- modules/template/tests/Makefile.am | 2 +- modules/template/tests/atlocal.in | 2 +- modules/template/tests/testsuite.at | 2 +- modules/word/Makefile.am | 4 +- modules/word/tests/Makefile.am | 2 +- modules/word/tests/atlocal.in | 2 +- modules/word/tests/first.at | 2 +- modules/word/tests/last.at | 2 +- modules/word/tests/testsuite.at | 2 +- modules/word/tests/word.at | 2 +- modules/word/word.c | 6 +- modules/wordnet/Makefile.am | 8 +- modules/wordnet/module.ac | 5 +- modules/wordnet/wordnet.c | 6 +- po/POTFILES.in | 15 +- scripts/Makefile.am | 2 +- scripts/gcider | 2 +- utils/Makefile.am | 1 - utils/bushu.awk | 178 -------- xdico/.gitignore | 2 + xdico/Makefile.am | 48 +++ xdico/appi18n.c | 27 ++ xdico/gnu/Makefile.am | 19 + xdico/gsaslstr.c | 297 +++++++++++++ xdico/iputil.c | 127 ++++++ xdico/timer.c | 199 +++++++++ xdico/userprivs.c | 138 ++++++ xdico/xalloc-die.c | 25 ++ xdico/xhostname.c | 52 +++ xdico/xscript.c | 204 +++++++++ xdico/xstream.c | 67 +++ xdico/xtkn.c | 27 ++ xdico/xutil.c | 161 +++++++ 405 files changed, 2429 insertions(+), 5096 deletions(-) create mode 100644 GNUmakefile delete mode 100644 gnulib.modules delete mode 100644 gnulibinit.conf delete mode 100644 include/gjdict.xbm delete mode 100644 lib/appi18n.c delete mode 100644 lib/bushu.dat delete mode 100644 lib/bushu.h delete mode 100644 lib/cursor.xbm delete mode 100644 lib/gsaslstr.c delete mode 100644 lib/iputil.c delete mode 100644 lib/jiscvt.c delete mode 100644 lib/timer.c delete mode 100644 lib/userprivs.c delete mode 100644 lib/xalloc-die.c delete mode 100644 lib/xhostname.c delete mode 100644 lib/xscript.c delete mode 100644 lib/xstream.c delete mode 100644 lib/xtkn.c delete mode 100644 lib/xutil.c create mode 100644 maint/bootstrap.mk create mode 100644 maint/gnulib.modules create mode 100644 maint/printflike delete mode 100644 makedict/.gitignore delete mode 100644 makedict/Makefile.am delete mode 100644 makedict/compile.c delete mode 100644 makedict/index.c delete mode 100644 makedict/main.c delete mode 100644 makedict/makedict.h delete mode 100644 makedict/makedict.opt delete mode 100644 makedict/romaji.c delete mode 100644 makedict/utils.c delete mode 100644 utils/Makefile.am delete mode 100644 utils/bushu.awk create mode 100644 xdico/.gitignore create mode 100644 xdico/Makefile.am create mode 100644 xdico/appi18n.c create mode 100644 xdico/gnu/Makefile.am create mode 100644 xdico/gsaslstr.c create mode 100644 xdico/iputil.c create mode 100644 xdico/timer.c create mode 100644 xdico/userprivs.c create mode 100644 xdico/xalloc-die.c create mode 100644 xdico/xhostname.c create mode 100644 xdico/xscript.c create mode 100644 xdico/xstream.c create mode 100644 xdico/xtkn.c create mode 100644 xdico/xutil.c diff --git a/.gitignore b/.gitignore index cdfd171..9b4f628 100644 --- a/.gitignore +++ b/.gitignore @@ -39,7 +39,6 @@ dicoweb/lib dicoweb/lib64 dicoweb/settings.py gmon.out -gnu gnulibinit libltdl libtool diff --git a/GNUmakefile b/GNUmakefile new file mode 100644 index 0000000..9966c71 --- /dev/null +++ b/GNUmakefile @@ -0,0 +1,11 @@ +# Maintainer's make file for dico. +# +ifneq (,$(wildcard Makefile)) + include Makefile +configure.ac: configure.boot + ./bootstrap +else +$(if $(MAKECMDGOALS),$(MAKECMDGOALS),all): + $(MAKE) -f maint/bootstrap.mk + $(MAKE) $(MAKECMDGOALS) +endif diff --git a/Makefile.am b/Makefile.am index 4e4225c..2b04a6e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,5 @@ # This file is part of GNU Dico -# Copyright (C) 1998-2000, 2008-2010, 2012, 2016-2018 Sergey Poznyakoff +# Copyright (C) 1998-2019 Sergey Poznyakoff # # GNU Dico is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -17,14 +17,13 @@ ACLOCAL_AMFLAGS = -I m4 -I am -I grecs/am -I gint -I imprimatur SUBDIRS=\ + .\ include\ - utils\ examples\ gint\ - gnu\ grecs\ + xdico\ lib\ - libltdl\ dicod\ modules\ dico\ @@ -32,7 +31,6 @@ SUBDIRS=\ imprimatur\ doc\ po -#FIXME: add these when ready: makedict client fonts EXTRA_DIST = ChangeLog.2008 configure.boot bootstrap DISTFILES @@ -41,6 +39,22 @@ dist-hook: -T $(abs_top_srcdir)/DISTFILES | \ tar -C $(distdir) -x -f - +BUILT_SOURCES = + +AM_CPPFLAGS = @DICO_LIB_CONFIG@ +#LT_CONFIG_H = config.h +AM_LDFLAGS = + +include_HEADERS = +noinst_LTLIBRARIES = +lib_LTLIBRARIES = +EXTRA_LTLIBRARIES = + +CLEANFILES = +MOSTLYCLEANFILES = + +include libltdl/Makefile.inc + # Start Git ChangeLog from this date. gen_start_date = 2008-05-05 diff --git a/NEWS b/NEWS index fc3b124..baffaa0 100644 --- a/NEWS +++ b/NEWS @@ -1,9 +1,9 @@ -GNU Dico NEWS -- history of user-visible changes. 2019-02-19 +GNU Dico NEWS -- history of user-visible changes. 2019-02-22 See the end of file for copying conditions. Please send Dico bug reports to -Version 2.7.90 (git) +Version 2.7.91 (git) * Fix memory access errors diff --git a/README b/README index fa3de5a..8da135c 100644 --- a/README +++ b/README @@ -202,7 +202,7 @@ Send bug reports to . * Copyright information: -Copyright (C) 2008-2018 Sergey Poznyakoff +Copyright (C) 2008-2019 Sergey Poznyakoff Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the diff --git a/README-alpha b/README-alpha index d48f306..0e5e6eb 100644 --- a/README-alpha +++ b/README-alpha @@ -46,7 +46,7 @@ See the files INSTALL and README for the detailed instructions. * Copyright information: -Copyright (C) 2008-2018 Sergey Poznyakoff +Copyright (C) 2008-2019 Sergey Poznyakoff Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the diff --git a/README-hacking b/README-hacking index 2c8affb..8fefede 100644 --- a/README-hacking +++ b/README-hacking @@ -78,7 +78,7 @@ start hacking on your new module. * Copyright information -Copyright (C) 2008, 2010, 2012, 2016-2018 Sergey Poznyakoff +Copyright (C) 2008-2019 Sergey Poznyakoff Permission is granted to anyone to make or distribute verbatim copies of this document as received, in any medium, provided that the diff --git a/am/lib.m4 b/am/lib.m4 index c97de28..1f9ddf4 100644 --- a/am/lib.m4 +++ b/am/lib.m4 @@ -1,5 +1,5 @@ # This file is part of GNU Dico -# Copyright (C) 2010-2018 Sergey Poznyakoff +# Copyright (C) 2010-2019 Sergey Poznyakoff # # GNU Dico is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/am/testdir.m4 b/am/testdir.m4 index 213a0de..e9da667 100644 --- a/am/testdir.m4 +++ b/am/testdir.m4 @@ -1,6 +1,6 @@ # testdir.m4 serial 1 # This file is part of GNU Dico -# Copyright (C) 2012-2018 Sergey Poznyakoff +# Copyright (C) 2012-2019 Sergey Poznyakoff # # GNU Dico is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/app/python/mediawiki.py b/app/python/mediawiki.py index 97bf3aa..3087f30 100644 --- a/app/python/mediawiki.py +++ b/app/python/mediawiki.py @@ -2,7 +2,7 @@ # Mediawiki module for Python # This file is part of GNU Dico. # Copyright (C) 2008-2010, 2012 Wojciech Polak -# 2018 Sergey Poznyakoff +# Copyright (C) 2018-2019 Sergey Poznyakoff # # GNU Dico is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/bootstrap b/bootstrap index be55f18..c663a47 100755 --- a/bootstrap +++ b/bootstrap @@ -1,6 +1,6 @@ #! /usr/bin/perl # This file is part of GNU Dico -# Copyright (C) 2014, 2016-2018 Sergey Poznyakoff +# Copyright (C) 2014-2019 Sergey Poznyakoff # # GNU Dico is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,18 +18,20 @@ =head1 NAME bootstrap - Bootstrap the Dico project - + =head1 SYNOPSIS B -[B<-ahmnv>] +[B<-ahmnv>] [B<--add>] [B<--dry-run>] -[B<--help>] +[B<--help>] [B<--new>] [B<--modules>] -[B<--skip-reconfig>] +[B<--skip-reconfig>] [B<--verbose>] +[B<--quiet>] +[B<--skip-po>] [I...] =head1 DESCRIPTION @@ -44,7 +46,9 @@ When run without arguments performs the following actions: =item 1. Pulls in git submodules. -=item 2. Creates autoconf/automake sources for building Dico modules. +=item 2. Creates directories and placeholders for automatically generated files + +=item 3. Creates autoconf/automake sources for building Dico modules. Recreates F and F from stub files F and F. The list of modules is obtained @@ -55,19 +59,42 @@ Additional F code for each module is obtained from file F in each module directory. See the description of this file in section B. -=item 3. Bootstraps the B submodule. +=item 4. Bootstraps the B submodule. + +The F is run with arguments deduced from files +F and F. + +=item 5. Creates the file F + +This file is created from F using the information +obtained from F and F. + +=item 6. Downloads new translations (F<*.po> files) into the F directory. + +This step can be skipped using the B<--skip-po> option. + +=item 7. Creates a pristine configuration header file -=back +The pristine configuration header file is a version of F +stripped off any defines added by B. It is used by library +source files to avoid introducing dependency on B. + +The name of the pristine header file is taken from the second argument +of the B statement in the F file. + +=item 8. Reconfigures the project. + +=back The program must be run from the Dico source tree topmost directory. - + When given the B<-m> (B<--modules>) option, only the second step is performed. When the B<-a> (B<--add>, B<--new>) option is given, the program creates basic infrastructure for modules named in the command line. For each I from the command line it creates directory F> -and populates it with files from the directory F. To +and populates it with files from the directory F. To this effect, it reads the list of file names from the section B of the file F. This file is in Emacs outline format. The B section lists file names relative to the F @@ -84,19 +111,18 @@ are replaced with their actual values in the destination file. This process is discussed in detail in section B, below. Finally, the files F and F are recreated -to take into account the newly created modules. - -By default, the program prints only error diagnostics. That means that -upon success, it will terminate quietly, without producing a single line -on output. This can be changed using the B<-v> (or B<--verbose>) option. -When the option is given once, the program prints general description before -running each of the three steps described above. Two B<-v> options instruct -it to also print whatever output that was generated when running auxiliary -commands. Finally, three B<-v>'s produce additional debugging information. +to take into account the newly created modules. + +By default, the program prints a succint report of what is being done. +This can be changed using the B<-q> (B<--quiet>) and B<-v> (or B<--verbose>) +options. The B<-q> (B<--quiet>) option instructs the program to suppress +any output excepting error messages. The B<-v> (or B<--verbose>) option, +on the contrary, instructs it to also print whatever output that was +generated when running auxiliary commands. The B<-n> (B<--dry-run>) option instructs the tool to print what would have been done without actually doing it. - + =head1 OPTIONS =over 4 @@ -105,24 +131,28 @@ been done without actually doing it. Create basic infrastructure for modules named in the command line and add them to F and F - + =item B<-n>, B<--dry-run> -Don't do anything, just print what would have been done. +Don't do anything, just print what would have been done. =item B<-m>, B<--modules> Run only the second step: creation of autoconf/automake sources for -Dico modules. +Dico modules. + +=item B<--skip-po> + +Don't synchronize localization files with the Translation Project. =item B<-s>, B<--skip-reconfigure> Don't run B. Takes effect only with B<--add> (B<--new>) or -B<--modules>. - +B<--modules>. + =item B<-v>, B<--verbose> -Increase output verbosity. Multiple options accumulate. +Increase output verbosity. Multiple options accumulate. =back @@ -132,7 +162,7 @@ verbatim: =over 4 =item B<--gnulib-srcdir=>I - + Specifies the local directory where B sources reside. Use this if you already have gnulib sources on your machine, and do not want to waste your bandwidth downloading them again. @@ -145,29 +175,29 @@ to a correct gnulib snapshot. =item B<--skip-po> Do not download po files. - -=back - + +=back + The following options cause the program to display informative text and -exit: - -=over 4 - +exit: + +=over 4 + =item B<-h> Show a short usage summary. =item B<--help> -Show man page. +Show man page. =item B<--usage> -Show a concise command line syntax reminder. - +Show a concise command line syntax reminder. + =back - -=head1 FILES + +=head1 FILES The following files are used as templates to create output files. When creating output file, each line from the corresponding template is read, @@ -194,7 +224,7 @@ and the input file contains: dnl -Then, the resulting expansion will be: +Then, the resulting expansion will be: dnl This file is generated automatically. dnl Please, do not edit. @@ -203,8 +233,8 @@ Then, the resulting expansion will be: The macro variables are specific for each file, and are described below. For each file, a special comment sequence is defined. Lines beginning -with that sequence are omitted from the output. - +with that sequence are omitted from the output. + =over 4 =item F @@ -236,9 +266,9 @@ where MODNAME is the module name and STATUS is the module status variable (which produces B or B at configure time, depending on whether the module is enabled or not). -This is intended for use in B. +This is intended for use in B. -=item B +=item B A list of assignments for module status variables, intended for use in B. @@ -248,10 +278,10 @@ for use in B. The following code illustrates the use of the latter two variables: AC_CONFIG_COMMANDS([status],[ -echo +echo ], - []) - + []) + =item F This file is optional. If present, it contains the B code for @@ -273,7 +303,7 @@ Use I as module name when creating variable names for that module. This is useful when the module name contains symbols that cannot be used in variable names (as in, e.g. B). -=item B<## module description: I> +=item B<## module description: I> Use I as module description in B (see F). @@ -284,7 +314,7 @@ Reserved for future use. =back As well as other B<##> comments, these comments do not appear in the output. - + =item F Produces the file F. Comment marker is B<##>. @@ -292,14 +322,14 @@ Produces the file F. Comment marker is B<##>. Macro variables: =over 8 - + =item B Same as in F. =item B -Produces B code for the B variable. +Produces B code for the B variable. =item B