Mon Mar 20 06:02:27 2017 UTC ()
Version 1.13 - 2017-03-11

* gdbm_fetch, gdbm_firstkey, and gdbm_nextkey behavior

If the requested key was not found, these functions return datum with
dptr pointing to NULL and set gdbm_errno to GDBM_ITEM_NOT_FOUND (in
prior releases, gdbm_errno was set to GDBM_NO_ERROR),

If an error occurred, dptr is set to NULL, and gdbm_errno to
the error code.

In any case gdbm_errno is guaranteed to have meaningful value upon
return.

* Error handling

In previous versions of GDBM, fatal errors (such as write error while
storing the key/data pair or bucket) caused immediate termination of
the program via call to exit(3).  This is no longer the case.

Starting from this version, if a fatal error occurrs while modifying
the database file, that database is marked as needing recovery and
gdbm_errno is set to GDBM_NEED_RECOVERY.  Calls to any GDBM functions,
except gdbm_recover, will then return immediately with the same error
code.

The function gdbm_recover examines the database file and fixes
eventual inconsistencies.  Upon successful return it clears the error
state and makes the database operational again.

For backward compatibility, the fatal_func argument to gdbm_open is
retained and its functionality is not changed.  If it is not NULL, the
new error handling procedures are disabled, the function it points to
will be called upon fatal errors.  When it returns, exit(1) will be
called.

* Per-database error codes

In addition to gdbm_error global variable, the most recent error state
is saved in the GDBM_FILE structure.  This facilitates error handling
when operating multiple GDBM databases simultaneously.


(adam)
diff -r1.51 -r1.52 pkgsrc/databases/gdbm/Makefile
diff -r1.4 -r1.5 pkgsrc/databases/gdbm/Makefile.common
diff -r1.12 -r1.13 pkgsrc/databases/gdbm/PLIST
diff -r1.11 -r1.12 pkgsrc/databases/gdbm/buildlink3.mk
diff -r1.11 -r1.12 pkgsrc/databases/gdbm/distinfo
diff -r1.2 -r1.3 pkgsrc/databases/gdbm/builtin.mk
diff -r0 -r1.1 pkgsrc/databases/gdbm/patches/patch-src_Makefile.in
diff -r1.7 -r1.8 pkgsrc/databases/gdbm_compat/Makefile
diff -r1.4 -r1.5 pkgsrc/databases/gdbm_compat/builtin.mk

cvs diff -r1.51 -r1.52 pkgsrc/databases/gdbm/Makefile (expand / switch to unified diff)

--- pkgsrc/databases/gdbm/Makefile 2014/10/09 14:06:05 1.51
+++ pkgsrc/databases/gdbm/Makefile 2017/03/20 06:02:26 1.52
@@ -1,13 +1,13 @@ @@ -1,13 +1,13 @@
1# $NetBSD: Makefile,v 1.51 2014/10/09 14:06:05 wiz Exp $ 1# $NetBSD: Makefile,v 1.52 2017/03/20 06:02:26 adam Exp $
2 2
3.include "Makefile.common" 3.include "Makefile.common"
4 4
5COMMENT= The GNU database manager 5COMMENT= The GNU database manager
6 6
7INFO_FILES= yes 7INFO_FILES= yes
8MAKE_JOBS_SAFE= no 
9 
10.include "../../mk/bsd.prefs.mk" 
11 8
 9.include "../../converters/libiconv/buildlink3.mk"
12.include "../../devel/gettext-lib/buildlink3.mk" 10.include "../../devel/gettext-lib/buildlink3.mk"
 11.include "../../devel/readline/buildlink3.mk"
 12.include "../../mk/curses.buildlink3.mk"
13.include "../../mk/bsd.pkg.mk" 13.include "../../mk/bsd.pkg.mk"

cvs diff -r1.4 -r1.5 pkgsrc/databases/gdbm/Makefile.common (expand / switch to unified diff)

--- pkgsrc/databases/gdbm/Makefile.common 2016/05/22 17:24:32 1.4
+++ pkgsrc/databases/gdbm/Makefile.common 2017/03/20 06:02:26 1.5
@@ -1,19 +1,19 @@ @@ -1,19 +1,19 @@
1# $NetBSD: Makefile.common,v 1.4 2016/05/22 17:24:32 wiz Exp $ 1# $NetBSD: Makefile.common,v 1.5 2017/03/20 06:02:26 adam Exp $
2# 2#
3# used by databases/gdbm/Makefile 3# used by databases/gdbm/Makefile
4# used by databases/gdbm_compat/Makefile 4# used by databases/gdbm_compat/Makefile
5 5
6DISTNAME= gdbm-1.12 6DISTNAME= gdbm-1.13
7CATEGORIES= databases 7CATEGORIES= databases
8MASTER_SITES= ${MASTER_SITE_GNU:=gdbm/} 8MASTER_SITES= ${MASTER_SITE_GNU:=gdbm/}
9 9
10MAINTAINER?= pkgsrc-users@NetBSD.org 10MAINTAINER?= pkgsrc-users@NetBSD.org
11HOMEPAGE= http://www.gnu.org/software/gdbm/gdbm.html 11HOMEPAGE= http://www.gnu.org/software/gdbm/gdbm.html
12COMMENT= The GNU database manager 12COMMENT= The GNU database manager
13LICENSE= gnu-gpl-v3 13LICENSE= gnu-gpl-v3
14 14
15DISTINFO_FILE= ${.CURDIR}/../../databases/gdbm/distinfo 15DISTINFO_FILE= ${.CURDIR}/../../databases/gdbm/distinfo
16PATCHDIR= ${.CURDIR}/../../databases/gdbm/patches 16PATCHDIR= ${.CURDIR}/../../databases/gdbm/patches
17 17
18USE_LIBTOOL= yes 18USE_LIBTOOL= yes
19GNU_CONFIGURE= yes 19GNU_CONFIGURE= yes

cvs diff -r1.12 -r1.13 pkgsrc/databases/gdbm/PLIST (expand / switch to unified diff)

--- pkgsrc/databases/gdbm/PLIST 2014/05/23 20:49:15 1.12
+++ pkgsrc/databases/gdbm/PLIST 2017/03/20 06:02:26 1.13
@@ -1,21 +1,22 @@ @@ -1,21 +1,22 @@
1@comment $NetBSD: PLIST,v 1.12 2014/05/23 20:49:15 wiz Exp $ 1@comment $NetBSD: PLIST,v 1.13 2017/03/20 06:02:26 adam Exp $
2bin/gdbm_dump 2bin/gdbm_dump
3bin/gdbm_load 3bin/gdbm_load
4bin/gdbmtool 4bin/gdbmtool
5include/gdbm.h 5include/gdbm.h
6info/gdbm.info 6info/gdbm.info
7lib/libgdbm.la 7lib/libgdbm.la
8man/man1/gdbm_dump.1 8man/man1/gdbm_dump.1
9man/man1/gdbm_load.1 9man/man1/gdbm_load.1
10man/man1/gdbmtool.1 10man/man1/gdbmtool.1
11man/man3/gdbm.3 11man/man3/gdbm.3
 12share/locale/da/LC_MESSAGES/gdbm.mo
12share/locale/de/LC_MESSAGES/gdbm.mo 13share/locale/de/LC_MESSAGES/gdbm.mo
13share/locale/eo/LC_MESSAGES/gdbm.mo 14share/locale/eo/LC_MESSAGES/gdbm.mo
14share/locale/fi/LC_MESSAGES/gdbm.mo 15share/locale/fi/LC_MESSAGES/gdbm.mo
15share/locale/fr/LC_MESSAGES/gdbm.mo 16share/locale/fr/LC_MESSAGES/gdbm.mo
16share/locale/ja/LC_MESSAGES/gdbm.mo 17share/locale/ja/LC_MESSAGES/gdbm.mo
17share/locale/pl/LC_MESSAGES/gdbm.mo 18share/locale/pl/LC_MESSAGES/gdbm.mo
18share/locale/pt_BR/LC_MESSAGES/gdbm.mo 19share/locale/pt_BR/LC_MESSAGES/gdbm.mo
19share/locale/sr/LC_MESSAGES/gdbm.mo 20share/locale/sr/LC_MESSAGES/gdbm.mo
20share/locale/uk/LC_MESSAGES/gdbm.mo 21share/locale/uk/LC_MESSAGES/gdbm.mo
21share/locale/vi/LC_MESSAGES/gdbm.mo 22share/locale/vi/LC_MESSAGES/gdbm.mo

cvs diff -r1.11 -r1.12 pkgsrc/databases/gdbm/buildlink3.mk (expand / switch to unified diff)

--- pkgsrc/databases/gdbm/buildlink3.mk 2012/01/24 09:10:06 1.11
+++ pkgsrc/databases/gdbm/buildlink3.mk 2017/03/20 06:02:26 1.12
@@ -1,15 +1,16 @@ @@ -1,15 +1,16 @@
1# $NetBSD: buildlink3.mk,v 1.11 2012/01/24 09:10:06 sbd Exp $ 1# $NetBSD: buildlink3.mk,v 1.12 2017/03/20 06:02:26 adam Exp $
2 2
3BUILDLINK_TREE+= gdbm 3BUILDLINK_TREE+= gdbm
4 4
5.if !defined(GDBM_BUILDLINK3_MK) 5.if !defined(GDBM_BUILDLINK3_MK)
6GDBM_BUILDLINK3_MK:= 6GDBM_BUILDLINK3_MK:=
7 7
8BUILDLINK_API_DEPENDS.gdbm+= gdbm>=1.8.3 8BUILDLINK_API_DEPENDS.gdbm+= gdbm>=1.8.3
9BUILDLINK_ABI_DEPENDS.gdbm+= gdbm>=1.10nb3 9BUILDLINK_ABI_DEPENDS.gdbm+= gdbm>=1.10nb3
10BUILDLINK_PKGSRCDIR.gdbm?= ../../databases/gdbm 10BUILDLINK_PKGSRCDIR.gdbm?= ../../databases/gdbm
11 11
 12.include "../../converters/libiconv/buildlink3.mk"
12.include "../../devel/gettext-lib/buildlink3.mk" 13.include "../../devel/gettext-lib/buildlink3.mk"
13.endif # GDBM_BUILDLINK3_MK 14.endif # GDBM_BUILDLINK3_MK
14 15
15BUILDLINK_TREE+= -gdbm 16BUILDLINK_TREE+= -gdbm

cvs diff -r1.11 -r1.12 pkgsrc/databases/gdbm/distinfo (expand / switch to unified diff)

--- pkgsrc/databases/gdbm/distinfo 2016/05/22 17:24:32 1.11
+++ pkgsrc/databases/gdbm/distinfo 2017/03/20 06:02:26 1.12
@@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
1$NetBSD: distinfo,v 1.11 2016/05/22 17:24:32 wiz Exp $ 1$NetBSD: distinfo,v 1.12 2017/03/20 06:02:26 adam Exp $
2 2
3SHA1 (gdbm-1.12.tar.gz) = 86513e8871bb376bc014e9e5a2d18a8e0a8ea2f5 3SHA1 (gdbm-1.13.tar.gz) = 7f2a8301497bbcac91808b011ca533380914fd21
4RMD160 (gdbm-1.12.tar.gz) = 5f47e6adfec14b31c3e26c1027684ba4845eef8a 4RMD160 (gdbm-1.13.tar.gz) = ad3d3258d3ae82eb16237051ea0e981178d6e93e
5SHA512 (gdbm-1.12.tar.gz) = 25e03dceed6986f1977d304a5ad059ac6c603a88ad4aa18c831ec42df82d68006f2e04b8a3cc400d0a4970750c78ba24a3f84cdff70de9f278cfd854c059699e 5SHA512 (gdbm-1.13.tar.gz) = fdb777f5b415b0578ea46b4a6fc70151a04a3568e2f2c8c0219ccad8c0d34abb773d80d5d7a06462ad1a3d6c1f3b5b7ab25f9de4f43ccf05c58db05f9a2906ad
6Size (gdbm-1.12.tar.gz) = 841213 bytes 6Size (gdbm-1.13.tar.gz) = 891987 bytes
 7SHA1 (patch-src_Makefile.in) = 52b47f3dcd381143d1cdae40f1972bd989dcce1f

cvs diff -r1.2 -r1.3 pkgsrc/databases/gdbm/builtin.mk (expand / switch to unified diff)

--- pkgsrc/databases/gdbm/builtin.mk 2013/11/23 11:29:35 1.2
+++ pkgsrc/databases/gdbm/builtin.mk 2017/03/20 06:02:26 1.3
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: builtin.mk,v 1.2 2013/11/23 11:29:35 obache Exp $ 1# $NetBSD: builtin.mk,v 1.3 2017/03/20 06:02:26 adam Exp $
2 2
3BUILTIN_PKG:= gdbm 3BUILTIN_PKG:= gdbm
4BUILTIN_FIND_HEADERS_VAR= GDBM_H 4BUILTIN_FIND_HEADERS_VAR= GDBM_H
5BUILTIN_FIND_HEADERS.GDBM_H= gdbm.h 5BUILTIN_FIND_HEADERS.GDBM_H= gdbm.h
6 6
7.include "../../mk/buildlink3/bsd.builtin.mk" 7.include "../../mk/buildlink3/bsd.builtin.mk"
8 8
9### 9###
10### Determine if there is a built-in implementation of the package and 10### Determine if there is a built-in implementation of the package and
11### set IS_BUILTIN.<pkg> appropriately ("yes" or "no"). 11### set IS_BUILTIN.<pkg> appropriately ("yes" or "no").
12### 12###
13.if !defined(IS_BUILTIN.gdbm) 13.if !defined(IS_BUILTIN.gdbm)
14IS_BUILTIN.gdbm= no 14IS_BUILTIN.gdbm= no
@@ -46,24 +46,24 @@ MAKEVARS+= BUILTIN_PKG.gdbm @@ -46,24 +46,24 @@ MAKEVARS+= BUILTIN_PKG.gdbm
46### exists, and set USE_BUILTIN.<pkg> appropriate ("yes" or "no"). 46### exists, and set USE_BUILTIN.<pkg> appropriate ("yes" or "no").
47### 47###
48.if !defined(USE_BUILTIN.gdbm) 48.if !defined(USE_BUILTIN.gdbm)
49. if ${PREFER.gdbm} == "pkgsrc" 49. if ${PREFER.gdbm} == "pkgsrc"
50USE_BUILTIN.gdbm= no 50USE_BUILTIN.gdbm= no
51. else 51. else
52USE_BUILTIN.gdbm= ${IS_BUILTIN.gdbm} 52USE_BUILTIN.gdbm= ${IS_BUILTIN.gdbm}
53. if defined(BUILTIN_PKG.gdbm) && \ 53. if defined(BUILTIN_PKG.gdbm) && \
54 !empty(IS_BUILTIN.gdbm:M[yY][eE][sS]) 54 !empty(IS_BUILTIN.gdbm:M[yY][eE][sS])
55USE_BUILTIN.gdbm= yes 55USE_BUILTIN.gdbm= yes
56. for _dep_ in ${BUILDLINK_API_DEPENDS.gdbm} 56. for _dep_ in ${BUILDLINK_API_DEPENDS.gdbm}
57. if !empty(USE_BUILTIN.gdbm:M[yY][eE][sS]) 57. if !empty(USE_BUILTIN.gdbm:M[yY][eE][sS])
58USE_BUILTIN.gdbm!= \ 58USE_BUILTIN.gdbm!= \
59 if ${PKG_ADMIN} pmatch ${_dep_:Q} ${BUILTIN_PKG.gdbm:Q}; then \ 59 if ${PKG_ADMIN} pmatch ${_dep_:Q} ${BUILTIN_PKG.gdbm}; then \
60 ${ECHO} "yes"; \ 60 ${ECHO} "yes"; \
61 else \ 61 else \
62 ${ECHO} "no"; \ 62 ${ECHO} "no"; \
63 fi 63 fi
64. endif 64. endif
65. endfor 65. endfor
66. endif 66. endif
67. endif 67. endif
68.endif 68.endif
69MAKEVARS+= USE_BUILTIN.gdbm 69MAKEVARS+= USE_BUILTIN.gdbm

File Added: pkgsrc/databases/gdbm/patches/Attic/patch-src_Makefile.in
$NetBSD: patch-src_Makefile.in,v 1.1 2017/03/20 06:02:26 adam Exp $

Fix parallel build.

--- src/Makefile.in.orig	2017-03-20 05:31:29.000000000 +0000
+++ src/Makefile.in
@@ -829,7 +829,7 @@ distdir: $(DISTFILES)
 check-am: all-am
 check: $(BUILT_SOURCES)
 	$(MAKE) $(AM_MAKEFLAGS) check-am
-all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(PROGRAMS) $(HEADERS)
+all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) .WAIT $(PROGRAMS) $(HEADERS)
 install-binPROGRAMS: install-libLTLIBRARIES
 
 installdirs:

cvs diff -r1.7 -r1.8 pkgsrc/databases/gdbm_compat/Makefile (expand / switch to unified diff)

--- pkgsrc/databases/gdbm_compat/Makefile 2014/10/09 14:06:05 1.7
+++ pkgsrc/databases/gdbm_compat/Makefile 2017/03/20 06:02:27 1.8
@@ -1,18 +1,19 @@ @@ -1,18 +1,19 @@
1# $NetBSD: Makefile,v 1.7 2014/10/09 14:06:05 wiz Exp $ 1# $NetBSD: Makefile,v 1.8 2017/03/20 06:02:27 adam Exp $
2 2
3.include "../../databases/gdbm/Makefile.common" 3.include "../../databases/gdbm/Makefile.common"
4 4
5PKGNAME= ${DISTNAME:S/-/_compat-/} 5PKGNAME= ${DISTNAME:S/-/_compat-/}
6 6
7COMMENT+= Compat library for dbm and ndbm 7COMMENT+= Compat library for dbm and ndbm
8 8
9DEPENDS+= gdbm-${PKGVERSION_NOREV}{,nb[0-9]*}:../../databases/gdbm 9DEPENDS+= gdbm-${PKGVERSION_NOREV}{,nb[0-9]*}:../../databases/gdbm
10 10
11CONFIGURE_ARGS+= --enable-libgdbm-compat 11CONFIGURE_ARGS+= --enable-libgdbm-compat
12 12
13BUILD_DIRS= compat 13BUILD_DIRS= compat
14 14
15.include "../../databases/gdbm/buildlink3.mk" 
16post-extract: 15post-extract:
17 ${LN} -s ${BUILDLINK_PREFIX.gdbm}/lib/libgdbm.la ${WRKSRC}/src 16 ${LN} -s ${BUILDLINK_PREFIX.gdbm}/lib/libgdbm.la ${WRKSRC}/src
 17
 18.include "../../databases/gdbm/buildlink3.mk"
18.include "../../mk/bsd.pkg.mk" 19.include "../../mk/bsd.pkg.mk"

cvs diff -r1.4 -r1.5 pkgsrc/databases/gdbm_compat/builtin.mk (expand / switch to unified diff)

--- pkgsrc/databases/gdbm_compat/builtin.mk 2013/11/23 11:29:35 1.4
+++ pkgsrc/databases/gdbm_compat/builtin.mk 2017/03/20 06:02:27 1.5
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1# $NetBSD: builtin.mk,v 1.4 2013/11/23 11:29:35 obache Exp $ 1# $NetBSD: builtin.mk,v 1.5 2017/03/20 06:02:27 adam Exp $
2 2
3BUILTIN_PKG:= gdbm_compat 3BUILTIN_PKG:= gdbm_compat
4BUILTIN_FIND_HEADERS_VAR= NDBM_H 4BUILTIN_FIND_HEADERS_VAR= NDBM_H
5BUILTIN_FIND_HEADERS.NDBM_H= ndbm.h 5BUILTIN_FIND_HEADERS.NDBM_H= ndbm.h
6BUILTIN_FIND_GREP.NDBM_H= This file is part of GDBM 6BUILTIN_FIND_GREP.NDBM_H= This file is part of GDBM
7 7
8.include "../../mk/buildlink3/bsd.builtin.mk" 8.include "../../mk/buildlink3/bsd.builtin.mk"
9 9
10### 10###
11### Determine if there is a built-in implementation of the package and 11### Determine if there is a built-in implementation of the package and
12### set IS_BUILTIN.<pkg> appropriately ("yes" or "no"). 12### set IS_BUILTIN.<pkg> appropriately ("yes" or "no").
13### 13###
14.if !defined(IS_BUILTIN.gdbm_compat) 14.if !defined(IS_BUILTIN.gdbm_compat)
@@ -42,24 +42,24 @@ MAKEVARS+= BUILTIN_PKG.gdbm_compat @@ -42,24 +42,24 @@ MAKEVARS+= BUILTIN_PKG.gdbm_compat
42### 42###
43### Don't use builtin gdbm_compat unless also using builtin gdbm. 43### Don't use builtin gdbm_compat unless also using builtin gdbm.
44.if !defined(USE_BUILTIN.gdbm_compat) 44.if !defined(USE_BUILTIN.gdbm_compat)
45. if ${USE_BUILTIN.gdbm} == "no" || ${PREFER.gdbm_compat} == "pkgsrc" 45. if ${USE_BUILTIN.gdbm} == "no" || ${PREFER.gdbm_compat} == "pkgsrc"
46USE_BUILTIN.gdbm_compat= no 46USE_BUILTIN.gdbm_compat= no
47. else 47. else
48USE_BUILTIN.gdbm_compat= ${IS_BUILTIN.gdbm_compat} 48USE_BUILTIN.gdbm_compat= ${IS_BUILTIN.gdbm_compat}
49. if defined(BUILTIN_PKG.gdbm_compat) && \ 49. if defined(BUILTIN_PKG.gdbm_compat) && \
50 !empty(IS_BUILTIN.gdbm_compat:M[yY][eE][sS]) 50 !empty(IS_BUILTIN.gdbm_compat:M[yY][eE][sS])
51USE_BUILTIN.gdbm_compat= yes 51USE_BUILTIN.gdbm_compat= yes
52. for _dep_ in ${BUILDLINK_API_DEPENDS.gdbm_compat} 52. for _dep_ in ${BUILDLINK_API_DEPENDS.gdbm_compat}
53. if !empty(USE_BUILTIN.gdbm_compat:M[yY][eE][sS]) 53. if !empty(USE_BUILTIN.gdbm_compat:M[yY][eE][sS])
54USE_BUILTIN.gdbm_compat!= \ 54USE_BUILTIN.gdbm_compat!= \
55 if ${PKG_ADMIN} pmatch ${_dep_:Q} ${BUILTIN_PKG.gdbm_compat:Q}; then \ 55 if ${PKG_ADMIN} pmatch ${_dep_:Q} ${BUILTIN_PKG.gdbm_compat}; then \
56 ${ECHO} "yes"; \ 56 ${ECHO} "yes"; \
57 else \ 57 else \
58 ${ECHO} "no"; \ 58 ${ECHO} "no"; \
59 fi 59 fi
60. endif 60. endif
61. endfor 61. endfor
62. endif 62. endif
63. endif 63. endif
64.endif 64.endif
65MAKEVARS+= USE_BUILTIN.gdbm_compat 65MAKEVARS+= USE_BUILTIN.gdbm_compat