New upstream version 2.8

parent 9e584b4d
2019-02-26 Sergey Poznyakoff <gray@gnu.org>
Version 2.8
2019-02-22 Sergey Poznyakoff <gray@gnu.org>
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.
2019-02-19 Sergey Poznyakoff <gray@gnu.org>
Fix the definition of GRECS_HOST_PROJECT_LDADD
Version 2.7.90
2019-02-18 Sergey Poznyakoff <gray@gnu.org>
Make sure gnulib dependencies are satisfied when linking grecs testsuite
* configure.boot (GRECS_HOST_PROJECT_LDADD): Define new variable.
* grecs: Upgrade.
Modify utf8 iterator to correctly handle non-zero-terminated strings.
* include/dico/utf8.h (utf8_iterator): New fields: length, err, end.
(utf8_iter_err_p,utf8_iter_init): New prototype.
* lib/utf8.c (utf8_iter0): Add boundary checking. Set end and error
flags as appropriate.
(utf8_iter_err_p): Rewrite.
(utf8_iter_err_p): New function.
(utf8_iter_init): New function.
(utf8_iter_first): Rewrite using utf8_iter_init.
(utf8_iter_next): Update length.
* lib/linetrimstr.c (_linetrimstr_find_end): Don't assume zero-terminated
string.
* modules/dict.org/dictorg.c (revert_word): Likewise.
* modules/outline/outline.c (revert_word): Likewise.
Fix out-of-boundary memory access in metaphone2 encoder.
* modules/metaphone2/metaphone2.c (looking_at,ISVOWEL): Implement
additional boundary checking.
All uses changed.
2019-02-17 Sergey Poznyakoff <gray@gnu.org>
Fix attempted access to deallocated memory
* lib/list.c (_dico_list_remove_item): Free entry after accessing
its fields.
2018-11-15 Sergey Poznyakoff <gray@gnu.org>
Upgrade grecs
In particular, this fixes the test 71 (now 72), which incorrectly
pulled a variable from the environment, instead of from the command
line.
2018-09-25 Sergey Poznyakoff <gray@gnu.org>
Version 2.7
......
Installation Instructions
*************************
Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation,
Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
Inc.
Copying and distribution of this file, with or without modification,
......@@ -12,8 +12,8 @@ without warranty of any kind.
Basic Installation
==================
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
Briefly, the shell command `./configure && make && make install'
should configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package. Some packages provide this
`INSTALL' file but do not implement all of the features documented
......
# 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
......
This diff is collapsed.
GNU Dico NEWS -- history of user-visible changes. 2018-09-25
Copyright (C) 2008-2010, 2012-2018 Sergey Poznyakoff
GNU Dico NEWS -- history of user-visible changes. 2019-02-26
See the end of file for copying conditions.
Please send Dico bug reports to <bug-dico@gnu.org.ua>
Version 2.8, 2019-02-26
* Fix out-of-boundary memory access in metaphone2 encoder
* Fix eventual access to freed memory block
* Rewrite utf8_iterator to work with non zero terminated strings.
* Fix the build on OpenBSD
Version 2.7, 2018-09-25
* Support for virtual databases
......@@ -236,7 +246,7 @@ Initial version.
=========================================================================
Copyright information:
Copyright (C) 2008-2010, 2012-2017 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
......
......@@ -202,7 +202,7 @@ Send bug reports to <bug-dico@gnu.org>.
* 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
......
......@@ -4,6 +4,7 @@ Many people further contributed to GNU Dico by reporting problems,
suggesting various improvements or submitting actual code. Here is a list
of these people. Help us keep it complete and exempt of errors.
Anthony J. Bentley <anthony@anjbe.name>
Goran Tal <goran.tal@gmail.com>
Karl Berry <karl@freefriends.org>
Marc Dequènes <duck@duckcorp.org>
......
......@@ -821,35 +821,6 @@ case $mkdir_p in
esac
])
# -*- Autoconf -*-
# Obsolete and "removed" macros, that must however still report explicit
# error messages when used, to smooth transition.
#
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
AC_DEFUN([AM_CONFIG_HEADER],
[AC_DIAGNOSE([obsolete],
['$0': this macro is obsolete.
You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl
AC_CONFIG_HEADERS($@)])
AC_DEFUN([AM_PROG_CC_STDC],
[AC_PROG_CC
am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
AC_DIAGNOSE([obsolete],
['$0': this macro is obsolete.
You should simply use the 'AC][_PROG_CC' macro instead.
Also, your code should no longer depend upon 'am_cv_prog_cc_stdc',
but upon 'ac_cv_prog_cc_stdc'.])])
AC_DEFUN([AM_C_PROTOTYPES],
[AC_FATAL([automatic de-ANSI-fication support has been removed])])
AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES])
# Helper functions for option handling. -*- Autoconf -*-
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
......@@ -1274,20 +1245,31 @@ m4_include([am/gsasl.m4])
m4_include([am/lib.m4])
m4_include([am/testdir.m4])
m4_include([m4/00gnulib.m4])
m4_include([m4/__inline.m4])
m4_include([m4/absolute-header.m4])
m4_include([m4/af_alg.m4])
m4_include([m4/alloca.m4])
m4_include([m4/argz.m4])
m4_include([m4/btowc.m4])
m4_include([m4/builtin-expect.m4])
m4_include([m4/byteswap.m4])
m4_include([m4/codeset.m4])
m4_include([m4/configmake.m4])
m4_include([m4/eealloc.m4])
m4_include([m4/environ.m4])
m4_include([m4/errno_h.m4])
m4_include([m4/exponentd.m4])
m4_include([m4/extensions.m4])
m4_include([m4/extern-inline.m4])
m4_include([m4/fcntl-o.m4])
m4_include([m4/fflush.m4])
m4_include([m4/flexmember.m4])
m4_include([m4/float_h.m4])
m4_include([m4/fpurge.m4])
m4_include([m4/freading.m4])
m4_include([m4/fseek.m4])
m4_include([m4/fseeko.m4])
m4_include([m4/fstat.m4])
m4_include([m4/ftell.m4])
m4_include([m4/ftello.m4])
m4_include([m4/getdelim.m4])
m4_include([m4/getdomainname.m4])
m4_include([m4/gethostname.m4])
......@@ -1296,12 +1278,13 @@ m4_include([m4/getopt.m4])
m4_include([m4/getpass.m4])
m4_include([m4/gettext.m4])
m4_include([m4/gettimeofday.m4])
m4_include([m4/gl-openssl.m4])
m4_include([m4/glibc21.m4])
m4_include([m4/gnulib-common.m4])
m4_include([m4/gnulib-comp.m4])
m4_include([m4/host-cpu-c-abi.m4])
m4_include([m4/iconv.m4])
m4_include([m4/include_next.m4])
m4_include([m4/inline.m4])
m4_include([m4/intlmacosx.m4])
m4_include([m4/intmax_t.m4])
m4_include([m4/inttostr.m4])
......@@ -1314,12 +1297,15 @@ m4_include([m4/lib-ld.m4])
m4_include([m4/lib-link.m4])
m4_include([m4/lib-prefix.m4])
m4_include([m4/libtool.m4])