Bug 29721 - rpm 4.0.2 various compile problems in db3.c
Summary: rpm 4.0.2 various compile problems in db3.c
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: rpm
Version: 7.3
Hardware: alpha
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jeff Johnson
QA Contact: David Lawrence
URL:
Whiteboard:
Depends On:
Blocks:
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:
Clone Of:
Environment:
Last Closed: 2001-04-03 12:06:15 UTC
Embargoed:


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
errors,
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
arguments.

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

    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.