* [git.ipfire.org] IPFire 3.x development tree branch, master, updated. 3191bb0de8c244bbe70903a3772233e505137a3c
@ 2012-10-02 14:40 git
0 siblings, 0 replies; only message in thread
From: git @ 2012-10-02 14:40 UTC (permalink / raw)
To: ipfire-scm
[-- Attachment #1: Type: text/plain, Size: 25596 bytes --]
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "IPFire 3.x development tree".
The branch, master has been updated
via 3191bb0de8c244bbe70903a3772233e505137a3c (commit)
via f633807474114cd4a3eceacbd5e9aca734097aa0 (commit)
from 9c6fb4372d0336b91cf0aa89862d09e221582e26 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 3191bb0de8c244bbe70903a3772233e505137a3c
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date: Tue Oct 2 16:39:32 2012 +0200
gdbm: Update to 1.10.
Creates compat-gdbm, which contains gdbm-1.8.3.
commit f633807474114cd4a3eceacbd5e9aca734097aa0
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date: Tue Oct 2 14:07:23 2012 +0200
expat: Update to 2.1.0.
A release including security & other bug fixes and some new
features:
Security fixes
* Memory leak in poolGrow (CVE-2012-1148)
* Resource leak in readfilemap.c (CVE-2012-1147)
* Hash DOS attack (CVE-2012-0876)
* Buffer over-read and crash in big2_toUtf8 (CVE-2009-3560)
* Parser crash with special UTF-8 sequences (CVE-2009-3270)
-----------------------------------------------------------------------
Summary of changes:
gdbm/gdbm.nm => compat-gdbm/compat-gdbm.nm | 52 +++++++--
compat-gdbm/patches/gdbm-1.8.3-fhs.patch | 138 ++++++++++++++++++++++
compat-gdbm/patches/gdbm-1.8.3-filestruct.patch | 12 ++
compat-gdbm/patches/gdbm-1.8.3-ndbmlock.patch | 94 +++++++++++++++
compat-gdbm/patches/gdbm-1.8.3-shortread.patch | 113 ++++++++++++++++++
compat-gdbm/patches/gdbm-1.8.3-zeroheaders.patch | 44 +++++++
expat/expat.nm | 4 +-
gdbm/gdbm.nm | 25 +++--
gdbm/patches/gdbm-1.10-fedora.patch | 14 ++
gdbm/patches/gdbm-1.10-zeroheaders.patch | 33 +++++
10 files changed, 509 insertions(+), 20 deletions(-)
copy gdbm/gdbm.nm => compat-gdbm/compat-gdbm.nm (51%)
create mode 100644 compat-gdbm/patches/gdbm-1.8.3-fhs.patch
create mode 100644 compat-gdbm/patches/gdbm-1.8.3-filestruct.patch
create mode 100644 compat-gdbm/patches/gdbm-1.8.3-ndbmlock.patch
create mode 100644 compat-gdbm/patches/gdbm-1.8.3-shortread.patch
create mode 100644 compat-gdbm/patches/gdbm-1.8.3-zeroheaders.patch
create mode 100644 gdbm/patches/gdbm-1.10-fedora.patch
create mode 100644 gdbm/patches/gdbm-1.10-zeroheaders.patch
Difference in files:
diff --git a/compat-gdbm/compat-gdbm.nm b/compat-gdbm/compat-gdbm.nm
new file mode 100644
index 0000000..e00b58f
--- /dev/null
+++ b/compat-gdbm/compat-gdbm.nm
@@ -0,0 +1,82 @@
+###############################################################################
+# IPFire.org - An Open Source Firewall Solution #
+# Copyright (C) - IPFire Development Team <info(a)ipfire.org> #
+###############################################################################
+
+name = compat-gdbm
+version = 1.8.3
+release = 1
+thisapp = gdbm-%{version}
+
+groups = Development/Tools
+url = http://www.gnu.org/software/gdbm/
+license = GPLv2+
+summary = The GDBM package contains the GNU Database Manager.
+
+description
+ The GDBM package contains the GNU Database Manager. This is a disk file \
+ format database which stores key/data-pairs in single files. The actual \
+ data of any record being stored is indexed by a unique key, which can be \
+ retrieved in less time than if it was stored in a text file.
+end
+
+source_dl = http://ftp.gnu.org/gnu/gdbm/
+
+build
+ requires
+ autoconf
+ automake
+ libtool
+ end
+
+ prepare_cmds
+ libtoolize --force --copy
+ aclocal
+ autoconf
+
+ # Don't use flock, because it doesn't work on NFS.
+ # Use fcntl instead.
+ echo "#undef HAVE_FLOCK" >> autoconf.h.in
+ end
+
+ PARALLELISMFLAGS = # Not supported.
+
+ install
+ make install install-compat \
+ prefix=%{BUILDROOT}%{prefix} \
+ libdir=%{BUILDROOT}%{libdir} \
+ includedir=%{BUILDROOT}%{includedir} \
+ mandir=%{BUILDROOT}%{mandir} \
+ infodir=%{BUILDROOT}%{infodir}
+
+ mkdir -pv %{BUILDROOT}%{includedir}/gdbm
+ ln -svf gdbm/gdbm.h %{BUILDROOT}%{includedir}/gdbm.h
+
+ # Remove all man pages provided by gdbm-devel.
+ rm -rfv %{BUILDROOT}%{mandir}/man3
+ end
+end
+
+packages
+ package %{name}
+ conflicts
+ gdbm <= %{version}
+ end
+ end
+
+ package %{name}-devel
+ template DEVEL
+
+ requires
+ compat-gdbm = %{thisver}
+ end
+
+ conflicts
+ gdbm-devel
+ end
+ end
+
+ package %{name}-debuginfo
+ template DEBUGINFO
+ end
+end
diff --git a/compat-gdbm/patches/gdbm-1.8.3-fhs.patch b/compat-gdbm/patches/gdbm-1.8.3-fhs.patch
new file mode 100644
index 0000000..58ce4de
--- /dev/null
+++ b/compat-gdbm/patches/gdbm-1.8.3-fhs.patch
@@ -0,0 +1,138 @@
+diff -up gdbm-1.8.3/Makefile.in.fhs gdbm-1.8.3/Makefile.in
+--- gdbm-1.8.3/Makefile.in.fhs 2002-10-08 18:09:12.000000000 +0200
++++ gdbm-1.8.3/Makefile.in 2010-03-10 15:41:01.516025096 +0100
+@@ -1,7 +1,7 @@
+ #### Start of system configuration section. ####
+
+ srcdir = @srcdir@
+-top_builddir = .
++top_builddir = @top_builddir@
+ VPATH = @srcdir@
+
+ CC = @CC@
+@@ -14,17 +14,13 @@ INSTALL = @INSTALL@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_DATA = @INSTALL_DATA@
+
+-# File ownership and group
+-BINOWN = bin
+-BINGRP = bin
+-
+ MAKEINFO = makeinfo
+ TEXI2DVI = texi2dvi
+
+-DEFS =
++DEFS = @DEFS@
+
+ # Where the system [n]dbm routines are...
+-LIBS = @LIBS@ -lc
++LIBS = @LIBS@
+
+ CFLAGS = @CFLAGS@
+ LDFLAGS = @LDFLAGS@
+@@ -32,16 +28,17 @@ LDFLAGS = @LDFLAGS@
+ # Common prefix for installation directories
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+-binprefix = $(exec_prefix)
+-manprefix = $(prefix)
++datarootdir = @datarootdir@
+
+ # Directory in which to put libgdbm.a.
+ libdir = @libdir@
+ # The include directory for gdbm.h and dbm.h.
+ includedir = @includedir@
++pkgincludedir = $(includedir)/gdbm
+ # Info and man directories.
+ infodir = @infodir@
+-man3dir = @mandir@/man3
++mandir = @mandir@
++man3dir = $(mandir)/man3
+ manext = 3
+
+ #### End of system configuration section. ####
+@@ -57,7 +54,7 @@ manext = 3
+
+ SHELL = /bin/sh
+
+-PROGS = libgdbm.la testgdbm testdbm testndbm tndbm tdbm conv2gdbm
++PROGS = libgdbm.la testgdbm testdbm testndbm conv2gdbm
+
+ DBM_CF = dbminit.c delete.c fetch.c store.c seq.c close.c
+
+@@ -127,26 +124,17 @@ all: libgdbm.la libgdbm_compat.la
+ progs: $(PROGS)
+
+ install: libgdbm.la gdbm.h gdbm.info
+- $(srcdir)/mkinstalldirs $(INSTALL_ROOT)$(libdir) \
+- $(INSTALL_ROOT)$(includedir) $(INSTALL_ROOT)$(man3dir) \
+- $(INSTALL_ROOT)$(infodir)
+- $(LIBTOOL) $(INSTALL) -c libgdbm.la $(INSTALL_ROOT)$(libdir)/libgdbm.la
+- $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) gdbm.h \
+- $(INSTALL_ROOT)$(includedir)/gdbm.h
+- $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/gdbm.3 \
+- $(INSTALL_ROOT)$(man3dir)/gdbm.3
+- $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/gdbm.info \
+- $(INSTALL_ROOT)$(infodir)/gdbm.info
++ $(srcdir)/mkinstalldirs $(libdir) $(pkgincludedir) $(man3dir) $(infodir)
++ $(LIBTOOL) install install libgdbm.la $(libdir)/libgdbm.la
++ $(INSTALL_DATA) gdbm.h $(pkgincludedir)/gdbm.h
++ $(INSTALL_DATA) $(srcdir)/gdbm.3 $(man3dir)/gdbm.3
++ $(INSTALL_DATA) $(srcdir)/gdbm.info $(infodir)/gdbm.info
+
+ install-compat:
+- $(srcdir)/mkinstalldirs $(INSTALL_ROOT)$(libdir) \
+- $(INSTALL_ROOT)$(includedir)
+- $(LIBTOOL) $(INSTALL) -c libgdbm_compat.la \
+- $(INSTALL_ROOT)$(libdir)/libgdbm_compat.la
+- $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/dbm.h \
+- $(INSTALL_ROOT)$(includedir)/dbm.h
+- $(INSTALL_DATA) -o $(BINOWN) -g $(BINGRP) $(srcdir)/ndbm.h \
+- $(INSTALL_ROOT)$(includedir)/ndbm.h
++ $(srcdir)/mkinstalldirs $(libdir) $(pkgincludedir)
++ $(LIBTOOL) install install libgdbm_compat.la $(libdir)/libgdbm_compat.la
++ $(INSTALL_DATA) $(srcdir)/dbm.h $(pkgincludedir)/dbm.h
++ $(INSTALL_DATA) $(srcdir)/ndbm.h $(pkgincludedir)/ndbm.h
+
+ #libgdbm.a: $(OBJS) gdbm.h
+ # rm -f libgdbm.a
+@@ -161,7 +149,7 @@ libgdbm.la: $(LOBJS) gdbm.h
+ libgdbm_compat.la: $(C_LOBJS) gdbm.h
+ rm -f libgdbm_compat.la
+ $(LIBTOOL) --mode=link $(CC) -o libgdbm_compat.la -rpath $(libdir) \
+- -version-info $(SHLIB_VER) $(C_LOBJS)
++ -version-info $(SHLIB_VER) $(C_LOBJS) -lgdbm
+
+ gdbm.h: gdbm.proto gdbmerrno.h gdbm.proto2
+ rm -f gdbm.h
+@@ -172,10 +160,10 @@ gdbm.h: gdbm.proto gdbmerrno.h gdbm.prot
+ chmod -w gdbm.h
+
+ testgdbm: testgdbm.o libgdbm.la @LIBOBJS@
+- $(LIBTOOL) $(CC) $(LDFLAGS) -o testgdbm testgdbm.o libgdbm.la @LIBOBJS@
++ $(LIBTOOL) link $(CC) $(LDFLAGS) -o testgdbm testgdbm.o libgdbm.la @LIBOBJS@
+
+ testdbm: testdbm.o libgdbm.la libgdbm_compat.la
+- $(LIBTOOL) $(CC) $(LDFLAGS) -o testdbm testdbm.o libgdbm.la libgdbm_compat.la
++ $(LIBTOOL) link $(CC) $(LDFLAGS) -o testdbm testdbm.o $(LIBS) libgdbm_compat.la
+
+ tdbm: testdbm.o
+ $(CC) $(LDFLAGS) -o tdbm testdbm.o $(LIBS)
+@@ -184,7 +172,7 @@ testndbm.o: testndbm.c
+ $(CC) -c -I. -I$(srcdir) $(CFLAGS) $(DEFS) -DGNU $(srcdir)/testndbm.c
+
+ testndbm: testndbm.o libgdbm.la libgdbm_compat.la
+- $(LIBTOOL) $(CC) $(LDFLAGS) -o testndbm testndbm.o libgdbm.la libgdbm_compat.la
++ $(LIBTOOL) link $(CC) $(LDFLAGS) -o testndbm testndbm.o libgdbm_compat.la
+
+ tndbm.o: testndbm.c
+ cp $(srcdir)/testndbm.c ./tndbm.c
+@@ -195,7 +183,7 @@ tndbm: tndbm.o
+ $(CC) $(LDFLAGS) -o tndbm tndbm.o $(LIBS)
+
+ conv2gdbm: conv2gdbm.o libgdbm.la @LIBOBJS@
+- $(LIBTOOL) $(CC) $(LDFLAGS) -o conv2gdbm conv2gdbm.o $(LIBS) libgdbm.la @LIBOBJS@
++ $(LIBTOOL) link $(CC) $(LDFLAGS) -o conv2gdbm conv2gdbm.o $(LIBS) libgdbm_compat.la @LIBOBJS@
+
+ lintgdbm:
+ lint $(DEFS) $(LFLAGS) $(DBM_CF) $(NDBM_CF) $(GDBM_CF) testgdbm.c
diff --git a/compat-gdbm/patches/gdbm-1.8.3-filestruct.patch b/compat-gdbm/patches/gdbm-1.8.3-filestruct.patch
new file mode 100644
index 0000000..3e27db8
--- /dev/null
+++ b/compat-gdbm/patches/gdbm-1.8.3-filestruct.patch
@@ -0,0 +1,12 @@
+diff -up gdbm-1.8.3/gdbm.proto.filestruct gdbm-1.8.3/gdbm.proto
+--- gdbm-1.8.3/gdbm.proto.filestruct 2011-01-13 09:54:03.004907454 +0100
++++ gdbm-1.8.3/gdbm.proto 2011-01-13 09:54:24.881714834 +0100
+@@ -60,7 +60,7 @@ typedef struct {
+
+
+ /* The file information header. This is good enough for most applications. */
+-typedef struct {int dummy[10];} *GDBM_FILE;
++typedef struct __GDBM_FILE_STRUC {int dummy[10];} *GDBM_FILE;
+
+ /* Determine if the C(++) compiler requires complete function prototype */
+ #ifndef __P
diff --git a/compat-gdbm/patches/gdbm-1.8.3-ndbmlock.patch b/compat-gdbm/patches/gdbm-1.8.3-ndbmlock.patch
new file mode 100644
index 0000000..7bc86c3
--- /dev/null
+++ b/compat-gdbm/patches/gdbm-1.8.3-ndbmlock.patch
@@ -0,0 +1,94 @@
+diff -up gdbm-1.8.3/dbmopen.c.dbmlock gdbm-1.8.3/dbmopen.c
+--- gdbm-1.8.3/dbmopen.c.dbmlock 1999-05-19 02:16:05.000000000 +0200
++++ gdbm-1.8.3/dbmopen.c 2011-01-03 16:17:13.847173371 +0100
+@@ -35,6 +35,28 @@
+ #include "gdbmerrno.h"
+ #include "extern.h"
+
++static int
++get_env_bool(env_var, def)
++ const char *env_var;
++ int def;
++{
++ const char *v = getenv(env_var);
++ if (!v)
++ return def;
++
++ if (!strcasecmp(v, "yes") ||
++ !strcasecmp(v, "true") ||
++ !strcasecmp(v, "on"))
++ return 1;
++
++ if (!strcasecmp(v, "no") ||
++ !strcasecmp(v, "false") ||
++ !strcasecmp(v, "off"))
++ return 0;
++
++ return !!atoi(v);
++}
++
+ /* Initialize ndbm system. FILE is a pointer to the file name. In
+ standard dbm, the database is found in files called FILE.pag and
+ FILE.dir. To make gdbm compatable with dbm using the dbminit call,
+@@ -62,7 +84,7 @@ dbm_open (file, flags, mode)
+ char* dir_file; /* Used to construct "file.dir". */
+ struct stat dir_stat; /* Stat information for "file.dir". */
+ gdbm_file_info *temp_dbf; /* Temporary file pointer storage. */
+-
++ int gdbm_mode = 0;
+
+ /* Prepare the correct names of "file.pag" and "file.dir". */
+ pag_file = (char *) malloc (strlen (file)+5);
+@@ -77,26 +99,22 @@ dbm_open (file, flags, mode)
+ strcat (pag_file, ".pag");
+ strcpy (dir_file, file);
+ strcat (dir_file, ".dir");
+-
++
++ if (!get_env_bool("NDBM_LOCK", 1))
++ gdbm_mode |= GDBM_NOLOCK;
+
+ /* Call the actual routine, saving the pointer to the file information. */
+ flags &= O_RDONLY | O_RDWR | O_CREAT | O_TRUNC;
+ if (flags == O_RDONLY)
+- {
+- temp_dbf = gdbm_open (pag_file, 0, GDBM_READER, 0, NULL);
+- }
++ gdbm_mode |= GDBM_READER;
+ else if (flags == (O_RDWR | O_CREAT))
+- {
+- temp_dbf = gdbm_open (pag_file, 0, GDBM_WRCREAT, mode, NULL);
+- }
+- else if ( (flags & O_TRUNC) == O_TRUNC)
+- {
+- temp_dbf = gdbm_open (pag_file, 0, GDBM_NEWDB, mode, NULL);
+- }
++ gdbm_mode |= GDBM_WRCREAT;
++ else if ((flags & O_TRUNC) == O_TRUNC)
++ gdbm_mode |= GDBM_NEWDB;
+ else
+- {
+- temp_dbf = gdbm_open (pag_file, 0, GDBM_WRITER, 0, NULL);
+- }
++ gdbm_mode |= GDBM_WRITER;
++
++ temp_dbf = gdbm_open (pag_file, 0, gdbm_mode, mode, NULL);
+
+ /* Did we successfully open the file? */
+ if (temp_dbf == NULL)
+diff -up gdbm-1.8.3/gdbm.3.dbmlock gdbm-1.8.3/gdbm.3
+--- gdbm-1.8.3/gdbm.3.dbmlock 2011-01-03 15:59:15.684729255 +0100
++++ gdbm-1.8.3/gdbm.3 2011-01-03 16:17:49.957570637 +0100
+@@ -543,7 +543,11 @@ you must link in the \fIgdbm_compat\fR l
+ .sp
+ gcc -o prog proc.c -lgdbm -lgdbm_compat
+
+-.SH BUGS
++.SH "ENVIRONMENT VARIABLES"
++\fINDBM_LOCK\fR - When the NDBM interface is used, the database file
++is locked by default. Locking might degrade performance when used on a
++NFS share. This environment variable can be set to false to tell GDBM
++not to lock the database file.
+
+ .SH "SEE ALSO"
+ dbm, ndbm
diff --git a/compat-gdbm/patches/gdbm-1.8.3-shortread.patch b/compat-gdbm/patches/gdbm-1.8.3-shortread.patch
new file mode 100644
index 0000000..5b6455b
--- /dev/null
+++ b/compat-gdbm/patches/gdbm-1.8.3-shortread.patch
@@ -0,0 +1,113 @@
+05_handle-short-read.patch
+
+diff -urNad a/bucket.c b/bucket.c
+--- a/bucket.c 1999-05-19 01:16:05.000000000 +0100
++++ b/bucket.c 2006-04-24 03:18:01.000000000 +0100
+@@ -31,7 +31,7 @@
+ #include "autoconf.h"
+
+ #include "gdbmdefs.h"
+-
++#include <errno.h>
+
+ /* Initializing a new hash buckets sets all bucket entries to -1 hash value. */
+ void
+@@ -68,7 +68,8 @@
+ int dir_index;
+ {
+ off_t bucket_adr; /* The address of the correct hash bucket. */
+- int num_bytes; /* The number of bytes read. */
++ int num_bytes = 0; /* The total number of bytes read. */
++ int bytes_read; /* Number of bytes read in this syscall */
+ off_t file_pos; /* The return address for lseek. */
+ register int index; /* Loop index. */
+
+@@ -111,7 +112,12 @@
+ if (file_pos != bucket_adr)
+ _gdbm_fatal (dbf, "lseek error");
+
+- num_bytes = read (dbf->desc, dbf->bucket, dbf->header->bucket_size);
++ do
++ {
++ bytes_read = read (dbf->desc, dbf->bucket+num_bytes, dbf->header->bucket_size-num_bytes);
++ if (bytes_read > 0) num_bytes += bytes_read;
++ }
++ while ((bytes_read > 0 || (bytes_read == -1 && errno == EINTR)) && num_bytes < dbf->header->bucket_size);
+ if (num_bytes != dbf->header->bucket_size)
+ _gdbm_fatal (dbf, "read error");
+ }
+diff -urNad a/falloc.c b/falloc.c
+--- a/falloc.c 2006-04-24 03:17:54.000000000 +0100
++++ b/falloc.c 2006-04-24 03:18:01.000000000 +0100
+@@ -31,7 +31,7 @@
+ #include "autoconf.h"
+
+ #include "gdbmdefs.h"
+-
++#include <errno.h>
+
+ /* The forward definitions for this file. See the functions for
+ the definition of the function. */
+@@ -174,7 +174,8 @@
+ pop_avail_block (dbf)
+ gdbm_file_info *dbf;
+ {
+- int num_bytes; /* For use with the read system call. */
++ int num_bytes = 0; /* For use with the read system call. */
++ int bytes_read; /* For use with the read system call. */
+ off_t file_pos; /* For use with the lseek system call. */
+ avail_elem new_el;
+ avail_block *new_blk;
+@@ -199,7 +200,12 @@
+ /* Read the block. */
+ file_pos = lseek (dbf->desc, new_el.av_adr, L_SET);
+ if (file_pos != new_el.av_adr) _gdbm_fatal (dbf, "lseek error");
+- num_bytes = read (dbf->desc, new_blk, new_el.av_size);
++ do
++ {
++ bytes_read = read (dbf->desc, new_blk+num_bytes, new_el.av_size-num_bytes);
++ if (bytes_read > 0) num_bytes += bytes_read;
++ }
++ while ((bytes_read > 0 || (bytes_read == -1 && errno == EINTR)) && num_bytes < new_el.av_size);
+ if (num_bytes != new_el.av_size) _gdbm_fatal (dbf, "read error");
+
+ /* Add the elements from the new block to the header. */
+diff -urNad a/findkey.c b/findkey.c
+--- a/findkey.c 1999-05-19 01:16:06.000000000 +0100
++++ b/findkey.c 2006-04-24 03:18:01.000000000 +0100
+@@ -31,6 +31,7 @@
+ #include "autoconf.h"
+
+ #include "gdbmdefs.h"
++#include <errno.h>
+
+
+ /* Read the data found in bucket entry ELEM_LOC in file DBF and
+@@ -41,11 +42,12 @@
+ gdbm_file_info *dbf;
+ int elem_loc;
+ {
+- int num_bytes; /* For seeking and reading. */
++ int num_bytes = 0; /* For seeking and reading. */
+ int key_size;
+ int data_size;
+ off_t file_pos;
+ data_cache_elem *data_ca;
++ int bytes_read;
+
+ /* Is it already in the cache? */
+ if (dbf->cache_entry->ca_data.elem_loc == elem_loc)
+@@ -74,7 +76,12 @@
+ dbf->bucket->h_table[elem_loc].data_pointer, L_SET);
+ if (file_pos != dbf->bucket->h_table[elem_loc].data_pointer)
+ _gdbm_fatal (dbf, "lseek error");
+- num_bytes = read (dbf->desc, data_ca->dptr, key_size+data_size);
++ do
++ {
++ bytes_read = read (dbf->desc, data_ca->dptr+num_bytes, key_size+data_size-num_bytes);
++ if (bytes_read > 0) num_bytes += bytes_read;
++ }
++ while ((bytes_read > 0 || (bytes_read == -1 && errno == EINTR)) && num_bytes < key_size+data_size);
+ if (num_bytes != key_size+data_size) _gdbm_fatal (dbf, "read error");
+
+ return data_ca->dptr;
diff --git a/compat-gdbm/patches/gdbm-1.8.3-zeroheaders.patch b/compat-gdbm/patches/gdbm-1.8.3-zeroheaders.patch
new file mode 100644
index 0000000..088956a
--- /dev/null
+++ b/compat-gdbm/patches/gdbm-1.8.3-zeroheaders.patch
@@ -0,0 +1,44 @@
+02_zero-headers.patch by Jeff Johnson <jbj(a)redhat.com> and Colin Watson <cjwatson(a)debian.org>
+
+diff -urNad a/falloc.c b/falloc.c
+--- a/falloc.c 2001-02-28 06:52:33.000000000 +0000
++++ b/falloc.c 2003-09-08 23:58:43.000000000 +0100
+@@ -272,7 +272,7 @@
+
+
+ /* Split the header block. */
+- temp = (avail_block *) malloc (av_size);
++ temp = (avail_block *) calloc (1, av_size);
+ if (temp == NULL) _gdbm_fatal (dbf, "malloc error");
+ /* Set the size to be correct AFTER the pop_avail_block. */
+ temp->size = dbf->header->avail.size;
+diff -urNad a/gdbmopen.c b/gdbmopen.c
+--- a/gdbmopen.c 2003-09-08 23:58:01.000000000 +0100
++++ b/gdbmopen.c 2003-09-08 23:58:43.000000000 +0100
+@@ -212,7 +212,7 @@
+ file_block_size = block_size;
+
+ /* Get space for the file header. */
+- dbf->header = (gdbm_file_header *) malloc (file_block_size);
++ dbf->header = (gdbm_file_header *) calloc (1, file_block_size);
+ if (dbf->header == NULL)
+ {
+ gdbm_close (dbf);
+@@ -256,7 +256,7 @@
+ (dbf->header->block_size - sizeof (hash_bucket))
+ / sizeof (bucket_element) + 1;
+ dbf->header->bucket_size = dbf->header->block_size;
+- dbf->bucket = (hash_bucket *) malloc (dbf->header->bucket_size);
++ dbf->bucket = (hash_bucket *) calloc (1, dbf->header->bucket_size);
+ if (dbf->bucket == NULL)
+ {
+ gdbm_close (dbf);
+@@ -420,7 +420,7 @@
+ for(index = 0; index < size; index++)
+ {
+ (dbf->bucket_cache[index]).ca_bucket
+- = (hash_bucket *) malloc (dbf->header->bucket_size);
++ = (hash_bucket *) calloc (1, dbf->header->bucket_size);
+ if ((dbf->bucket_cache[index]).ca_bucket == NULL)
+ {
+ gdbm_errno = GDBM_MALLOC_ERROR;
diff --git a/expat/expat.nm b/expat/expat.nm
index 2c79f96..d0bc7d0 100644
--- a/expat/expat.nm
+++ b/expat/expat.nm
@@ -4,8 +4,8 @@
###############################################################################
name = expat
-version = 2.0.1
-release = 3
+version = 2.1.0
+release = 1
groups = System/Libraries
url = http://www.libexpat.org/
diff --git a/gdbm/gdbm.nm b/gdbm/gdbm.nm
index 9ba6900..e7a073d 100644
--- a/gdbm/gdbm.nm
+++ b/gdbm/gdbm.nm
@@ -4,12 +4,12 @@
###############################################################################
name = gdbm
-version = 1.8.3
-release = 2
+version = 1.10
+release = 1
groups = Development/Tools
url = http://www.gnu.org/software/gdbm/
-license = GPL
+license = GPLv3+
summary = The GDBM package contains the GNU Database Manager.
description
@@ -19,17 +19,22 @@ description
retrieved in less time than if it was stored in a text file.
end
-source_dl =
+source_dl = http://ftp.gnu.org/gnu/gdbm/
build
- prepare_cmds
- sed -i Makefile.* \
- -e "s/^BINOWN = .*/BINOWN = root/" \
- -e "s/^BINGRP = .*/BINGRP = root/"
+ requires
+ gettext
+ libtool
end
- install
- make install install-compat INSTALL_ROOT=%{BUILDROOT}
+ configure_options += \
+ --enable-libgdbm-compat
+
+ install_cmds
+ mkdir -pv %{BUILDROOT}%{includedir}/gdbm
+ ln -svf ../gdbm.h %{BUILDROOT}%{includedir}/gdbm/gdbm.h
+ ln -svf ../ndbm.h %{BUILDROOT}%{includedir}/gdbm/ndbm.h
+ ln -svf ../dbm.h %{BUILDROOT}%{includedir}/gdbm/dbm.h
end
end
diff --git a/gdbm/patches/gdbm-1.10-fedora.patch b/gdbm/patches/gdbm-1.10-fedora.patch
new file mode 100644
index 0000000..18a4d5e
--- /dev/null
+++ b/gdbm/patches/gdbm-1.10-fedora.patch
@@ -0,0 +1,14 @@
+diff -up gdbm-1.10/NOTE-WARNING.fedora gdbm-1.10/NOTE-WARNING
+--- gdbm-1.10/NOTE-WARNING.fedora 2011-11-14 17:43:41.267566501 +0100
++++ gdbm-1.10/NOTE-WARNING 2011-11-14 17:47:53.312549265 +0100
+@@ -12,8 +12,8 @@ systems where it is not the default. `L
+ when a system uses 64bit file offsets. Gdbm has, of course, supported `large
+ files' on systems where it was the default for a very long time.
+
+-On some systems, such as Solaris, this functionality is not enabled by
+-default. Gdbm will now enable it. THIS MEANS THAT GDBM 1.9 MAY NOT BE
++On some systems this functionality is not enabled by default. To enable it,
++build rpm with option --with=largefile. THIS MEANS THAT GDBM 1.9 MAY NOT BE
+ ABLE TO ACCESS DATABASES CREATED BY PREVIOUS VERIONS ON THE SAME SYSTEM.
+
+ Running the `configure' script with the `--disable-largefile' flag should
diff --git a/gdbm/patches/gdbm-1.10-zeroheaders.patch b/gdbm/patches/gdbm-1.10-zeroheaders.patch
new file mode 100644
index 0000000..a268f6b
--- /dev/null
+++ b/gdbm/patches/gdbm-1.10-zeroheaders.patch
@@ -0,0 +1,33 @@
+diff -up gdbm-1.10/src/falloc.c.zeroheaders gdbm-1.10/src/falloc.c
+--- gdbm-1.10/src/falloc.c.zeroheaders 2011-11-11 11:59:11.000000000 +0100
++++ gdbm-1.10/src/falloc.c 2011-11-14 17:34:32.487604027 +0100
+@@ -255,7 +255,7 @@ push_avail_block (GDBM_FILE dbf)
+
+
+ /* Split the header block. */
+- temp = (avail_block *) malloc (av_size);
++ temp = (avail_block *) calloc (1, av_size);
+ if (temp == NULL) _gdbm_fatal (dbf, _("malloc error"));
+ /* Set the size to be correct AFTER the pop_avail_block. */
+ temp->size = dbf->header->avail.size;
+diff -up gdbm-1.10/src/gdbmopen.c.zeroheaders gdbm-1.10/src/gdbmopen.c
+--- gdbm-1.10/src/gdbmopen.c.zeroheaders 2011-11-11 19:39:42.000000000 +0100
++++ gdbm-1.10/src/gdbmopen.c 2011-11-14 17:33:24.867608650 +0100
+@@ -264,7 +264,7 @@ gdbm_open (const char *file, int block_s
+ (dbf->header->block_size - sizeof (hash_bucket))
+ / sizeof (bucket_element) + 1;
+ dbf->header->bucket_size = dbf->header->block_size;
+- dbf->bucket = (hash_bucket *) malloc (dbf->header->bucket_size);
++ dbf->bucket = (hash_bucket *) calloc (1, dbf->header->bucket_size);
+ if (dbf->bucket == NULL)
+ {
+ gdbm_close (dbf);
+@@ -456,7 +456,7 @@ _gdbm_init_cache(GDBM_FILE dbf, size_t s
+ for(index = 0; index < size; index++)
+ {
+ (dbf->bucket_cache[index]).ca_bucket
+- = (hash_bucket *) malloc (dbf->header->bucket_size);
++ = (hash_bucket *) calloc (1, dbf->header->bucket_size);
+ if ((dbf->bucket_cache[index]).ca_bucket == NULL)
+ {
+ gdbm_errno = GDBM_MALLOC_ERROR;
hooks/post-receive
--
IPFire 3.x development tree
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2012-10-02 14:40 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-10-02 14:40 [git.ipfire.org] IPFire 3.x development tree branch, master, updated. 3191bb0de8c244bbe70903a3772233e505137a3c git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox