Bug 29721 - rpm 4.0.2 various compile problems in db3.c
Summary: rpm 4.0.2 various compile problems in db3.c
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: rpm   
(Show other bugs)
Version: 7.3
Hardware: alpha
OS: Linux
Target Milestone: ---
Assignee: Jeff Johnson
QA Contact: David Lawrence
Depends On:
TreeView+ depends on / blocked
Reported: 2001-02-27 07:51 UTC by Red Hat Bugzilla
Modified: 2008-03-13 19:18 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2001-04-03 12:06:15 UTC
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

Description Red Hat Bugzilla 2001-02-27 07:51:11 UTC
From Bugzilla Helper:
User-Agent: Mozilla/4.72 [en] (X11; U; OSF1 V5.0 alpha)

Whether or not the patch detailed in bug report #29719 is applied, if I try
compiled rpm 4.0.2 with Berkeley DB 3.2.9 on alpha-dec-osf, I get compile
like such:

cc: Error: db3.c, line 141: In this statement, "dbenv->remove" expects 3
arguments, but 4 are supplied. (toomanyargs)
        xx = dbenv->remove(dbenv, dbhome, NULL, 0);
cc: Error: db3.c, line 219: In this statement, "set_func_fsync" is not a
member of "dbenv". (needmember)
        xx = dbenv->set_func_fsync(dbenv, db3_fsync_disable);
cc: Error: db3.c, line 237: In this statement, "dbenv->open" expects 4
arguments, but 5 are supplied. (toomanyargs)
    rc = dbenv->open(dbenv, dbhome, NULL, eflags, dbi->dbi_perms);

Reproducible: Always
Steps to Reproduce:
0. install Berkeley DB 3.2.9
1. set CFLAGS and CPPFLAGS such that rpm's configure can find both the lib
and the include file, db.h
2. configure; make

checking the db.h that comes with my Berkeley DB 3.2.9, it does indeed
appear that rpm is invoking the functions mentioned above with an incorrect
# of
arguments. In each case flagged above, it looks like there is one too many

In the __db_env struct from 3.2.9, I do see "methods" prototyped,

    int  (*open) __P((DB_ENV *, const char *, u_int32_t, int));
    int  (*remove) __P((DB_ENV *, const char *, u_int32_t));

There is no prototype for a function named set_func_fsync that's part of
struct __db_env, though there *is* later a function prototype for:

int   db_env_set_func_fsync __P((int (*)(int)));

I'm wondering if the API changed between the version that RPM was coded
against and version 3.2.x?

Comment 1 Red Hat Bugzilla 2001-02-27 14:15:42 UTC
No support for db-3.2.9 yet, use db-3.1.17.

Deferred until then.

Comment 2 Red Hat Bugzilla 2001-04-03 12:07:46 UTC
db-3.2.9 changes should be on the rpm-4_0 branch from CVS.

In fact db-3.2.9 is also included as part of rpm sources, although I still need
to wire the build.

Note You need to log in before you can comment on or make changes to this bug.