- link rpm2cpio dynamically since cpio is linked dynamically.
- fix: uniqify dependency problems when printing (#14034).
- fix: segfault on erase if filestates is missing in header (#14679).
+ - fix: popt POST callbacks typo.
+ - fix: -Va broken, make db cursors per-iterator, not per-dbi.
3.0.4 -> 3.0.5
- configure.in fiddles for BSD systems (Patrick Schoo).
}
static int db3cclose(dbiIndex dbi, /*@only@*/ DBC * dbcursor,
- /*@unused@*/ unsigned int flags)
+ unsigned int flags)
{
int rc = 0;
+ /* XXX per-iterator cursors */
+ if (flags == 1)
+ return db3c_close(dbi, dbcursor);
+
if (!dbi->dbi_use_cursors)
return 0;
return rc;
}
-static int db3copen(dbiIndex dbi, /*@out@*/ DBC ** dbcp,
- /*@unused@*/ unsigned int flags)
+static int db3copen(dbiIndex dbi, /*@out@*/ DBC ** dbcp, unsigned int flags)
{
DBC * dbcursor;
int rc = 0;
+ /* XXX per-iterator cursors */
+ if (flags == 1)
+ return db3c_open(dbi, dbcp);
+
if (!dbi->dbi_use_cursors) {
if (dbcp) *dbcp = NULL;
return 0;
rpmdb mi_rpmdb;
int mi_rpmtag;
dbiIndexSet mi_set;
+ DBC * mi_dbc;
int mi_setx;
Header mi_h;
int mi_sorted;
xfree(mi->mi_version);
mi->mi_version = NULL;
}
+ if (mi->mi_dbc) {
+ int xx = dbiCclose(dbi, mi->mi_dbc, 1);
+ mi->mi_dbc = NULL;
+ }
if (mi->mi_set) {
dbiFreeIndexSet(mi->mi_set);
mi->mi_set = NULL;
Header XrpmdbNextIterator(rpmdbMatchIterator mi, const char * f, unsigned l)
{
dbiIndex dbi;
- DBC * dbcursor;
void * uh = NULL;
size_t uhlen = 0;
void * keyp;
dbi = dbiOpen(mi->mi_rpmdb, RPMDBI_PACKAGES, 0);
if (dbi == NULL)
return NULL;
- xx = XdbiCopen(dbi, &dbcursor, 0, f, l);
+ /* XXX cursors need to be per-iterator, not per-dbi. Get a cursor now. */
+ if (mi->mi_dbc == NULL) {
+ xx = XdbiCopen(dbi, &mi->mi_dbc, 1, f, l);
+ }
top:
/* XXX skip over instances with 0 join key */
keyp = (void *)mi->mi_keyp; /* XXX FIXME const */
keylen = mi->mi_keylen;
- rc = dbiGet(dbi, dbcursor, &keyp, &keylen, &uh, &uhlen, 0);
+ rc = dbiGet(dbi, mi->mi_dbc, &keyp, &keylen, &uh, &uhlen, 0);
if (rc == 0 && keyp && mi->mi_setx)
memcpy(&mi->mi_offset, keyp, sizeof(mi->mi_offset));
/* Retrieve next header */
if (uh == NULL) {
- rc = dbiGet(dbi, dbcursor, &keyp, &keylen, &uh, &uhlen, 0);
+ rc = dbiGet(dbi, mi->mi_dbc, &keyp, &keylen, &uh, &uhlen, 0);
if (rc)
return NULL;
}
/* Free current header */
if (mi->mi_h) {
if (mi->mi_modified && mi->mi_prevoffset)
- dbiUpdateRecord(dbi, dbcursor, mi->mi_prevoffset, mi->mi_h);
+ dbiUpdateRecord(dbi, mi->mi_dbc, mi->mi_prevoffset, mi->mi_h);
headerFree(mi->mi_h);
mi->mi_h = NULL;
}
mi->mi_rpmdb = rpmdb;
mi->mi_rpmtag = rpmtag;
+ mi->mi_dbc = NULL;
mi->mi_set = set;
mi->mi_setx = 0;
mi->mi_h = NULL;
Name: rpm
%define version 4.0
Version: %{version}
-Release: 0.65
+Release: 0.66
Group: System Environment/Base
Source: ftp://ftp.rpm.org/pub/rpm/dist/rpm-3.0.x/rpm-%{version}.tar.gz
Copyright: GPL
%{__prefix}/include/popt.h
%changelog
+* Fri Aug 4 2000 Jeff Johnson <jbj@redhat.com>
+- fix: popt POST callbacks typo.
+- fix: -Va broken, make db cursors per-iterator, not per-dbi.
+
* Thu Aug 3 2000 Jeff Johnson <jbj@redhat.com>
- add glibc requirement.