guix/gnu/packages/patches/nvi-db4.patch
Marek Benc 2baf46348f gnu: nvi: Fix Berkely DB compatability issues.
* gnu/packages/patches/nvi-db4.patch: New file.
* gnu/packages/patches/nvi-dbpagesize-binpower.patch: New file.
* gnu/packages/nvi.scm (nvi): Make use of them.
* gnu-system.am (dist_patch_DATA): Add them.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2015-01-23 09:44:42 +01:00

36 lines
1 KiB
Diff

This patch originates from the Debian project, see https://www.debian.org/
03db4.dpatch by <hesso@pool.math.tu-berlin.de>
libdb4 compatibility adjustments.
In particular, this patch adds extra file permission checking and passes the
DB_CREATE flag to the first invocation of db_open on the file's database
structure, which rids us of the following message:
BDB0635 DB_CREATE must be specified to create databases.
--- nvi-1.81.6.orig/common/msg.c 2009-02-26 14:26:58.350336128 +0100
+++ nvi-1.81.6/common/msg.c 2009-02-26 14:29:05.235335829 +0100
@@ -724,9 +724,18 @@
p = buf;
} else
p = file;
+ if (access(p, F_OK) != 0) {
+ if (first) {
+ first = 0;
+ return (1);
+ }
+ sp->db_error = ENOENT;
+ msgq_str(sp, M_DBERR, p, "%s");
+ return (1);
+ }
if ((sp->db_error = db_create(&db, 0, 0)) != 0 ||
(sp->db_error = db->set_re_source(db, p)) != 0 ||
- (sp->db_error = db_open(db, NULL, DB_RECNO, 0, 0)) != 0) {
+ (sp->db_error = db_open(db, NULL, DB_RECNO, DB_CREATE, 0)) != 0) {
if (first) {
first = 0;
return (1);