Index: configure.in =================================================================== RCS file: /cvsroot/poldek/poldek/configure.in,v retrieving revision 1.145 retrieving revision 1.146 diff -u -u -r1.145 -r1.146 --- configure.in 12 May 2008 15:51:38 -0000 1.145 +++ configure.in 13 Feb 2010 22:00:08 -0000 1.146 @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Id$ +dnl $Id$ AC_INIT(poldek,0.30) AC_CONFIG_SRCDIR([capreq.c]) @@ -234,6 +234,8 @@ dnl Checks for libraries. AC_CHECK_LIB(bz2, BZ2_bzCompress) AC_CHECK_LIB(z, gzopen) + +AC_CHECK_FUNCS(gzungetc) DBLIB="" if test "${is_rpm4_0_4}." = "no." ; then Index: pkgdir/pkg_restore.c =================================================================== RCS file: /cvsroot/poldek/poldek/pkgdir/pkg_restore.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -u -r1.25 -r1.26 --- pkgdir/pkg_restore.c 25 May 2008 09:25:31 -0000 1.25 +++ pkgdir/pkg_restore.c 14 Feb 2010 16:10:26 -0000 1.26 @@ -11,7 +11,7 @@ */ /* - $Id$ + $Id$ */ #ifdef HAVE_CONFIG_H @@ -149,7 +149,7 @@ struct pkg tmpkg; off_t offs; unsigned long ul_offs; - char linebuf[4096]; + char linebuf[PATH_MAX]; int nerr = 0, nread, pkg_loaded = 0; int tag, tag_binsize = PKG_STORETAG_SIZENIL; const char *errmg_double_tag = "%s:%lu: double '%c' tag"; Index: pkgdir/pdir/pdir.c =================================================================== RCS file: /cvsroot/poldek/poldek/pkgdir/pdir/pdir.c,v retrieving revision 1.31 retrieving revision 1.32 diff -u -u -r1.31 -r1.32 --- pkgdir/pdir/pdir.c 2 Feb 2008 21:49:04 -0000 1.31 +++ pkgdir/pdir/pdir.c 14 Feb 2010 16:10:26 -0000 1.32 @@ -11,7 +11,7 @@ */ /* - $Id$ + $Id$ */ #ifdef HAVE_CONFIG_H @@ -577,7 +577,7 @@ int do_open(struct pkgdir *pkgdir, unsigned flags) { struct vfile *vf; - char linebuf[1024 * 256]; + char linebuf[PATH_MAX]; int nline; int nerr = 0, nread; struct pkgroup_idx *pkgroups = NULL; Index: pkgdir/pdir/pdir_pkg_restore.c =================================================================== RCS file: /cvsroot/poldek/poldek/pkgdir/pdir/pdir_pkg_restore.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -u -r1.11 -r1.12 --- pkgdir/pdir/pdir_pkg_restore.c 25 May 2008 09:25:31 -0000 1.11 +++ pkgdir/pdir/pdir_pkg_restore.c 14 Feb 2010 16:10:26 -0000 1.12 @@ -11,7 +11,7 @@ */ /* - $Id$ + $Id$ */ #ifdef HAVE_CONFIG_H @@ -135,7 +135,7 @@ { struct pkgtags_s pkgt; off_t offs; - char linebuf[4096]; + char linebuf[PATH_MAX]; int nerr = 0, nread, with_pkg = 0; const char *errmg_double_tag = "%s:%ld: double '%c' tag"; Index: pkgdir/yum/yum.c =================================================================== RCS file: /cvsroot/poldek/poldek/pkgdir/yum/yum.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -u -r1.19 -r1.20 --- pkgdir/yum/yum.c 2 Feb 2008 21:49:05 -0000 1.19 +++ pkgdir/yum/yum.c 14 Feb 2010 16:10:26 -0000 1.20 @@ -11,7 +11,7 @@ */ /* - $Id$ + $Id$ */ #ifdef HAVE_CONFIG_H @@ -128,7 +128,7 @@ int do_open(struct pkgdir *pkgdir, unsigned flags) { struct vfile *vf; - char linebuf[1024 * 16]; + char linebuf[PATH_MAX]; int nline, nerr = 0, nread, n; struct pkgroup_idx *pkgroups = NULL; struct idx idx; Index: write.c =================================================================== RCS file: /cvsroot/poldek/tndb/write.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -u -r1.11 -r1.12 --- tndb/write.c 22 Jun 2007 18:20:58 -0000 1.11 +++ tndb/write.c 14 Feb 2010 08:20:52 -0000 1.12 @@ -45,7 +45,7 @@ struct tndb *tndb_creat(const char *name, int comprlevel, unsigned flags) { - char path[PATH_MAX], mode[32] = "w+b"; + char path[PATH_MAX], mode[32] = "wb"; tn_stream *st; struct tndb *db = NULL; int fd, n, type = TN_STREAM_STDIO; @@ -69,7 +69,7 @@ if (n > 3 && strcmp(&name[n - 3], ".gz") == 0) { type = TN_STREAM_GZIO; if (comprlevel >= 0 && comprlevel < 10) - snprintf(mode, sizeof(mode), "w+b%d", comprlevel); + snprintf(mode, sizeof(mode), "wb%d", comprlevel); } if ((st = n_stream_dopen(fd, mode, type)) == NULL) --- vfile/vfile.c~ 2007-07-06 00:28:53.000000000 +0200 +++ vfile/vfile.c 2010-02-23 17:47:55.496578466 +0100 @@ -262,7 +262,7 @@ char *mode = NULL; if ((vfmode & VFM_APPEND) == VFM_APPEND) - mode = "a+"; + mode = "a"; else if (vfmode & VFM_RW) mode = "w"; else --- vfile/vfile.c~ 2010-02-23 17:47:55.496578466 +0100 +++ vfile/vfile.c 2010-02-28 09:50:39.839991093 +0100 @@ -288,7 +288,7 @@ char *mode = NULL; if ((vfmode & VFM_APPEND) == VFM_APPEND) - mode = "a+"; + mode = "a"; else if (vfmode & VFM_RW) mode = "w"; else