Sam Varshavchik writes:
> Alessandro Vesely writes:
> 
>> Sam,
>> AC_CHECK_FUNC looks for functions and explicitly avoids macros,
>> which fails with BDB 4.xx versions that decorate function names and
>> #define db_env_create db_env_create_40xx.
>>
>> The patch attached apparently works fine, after installing both
>> http://ac-archive.sourceforge.net/Installed_Packages/ax_path_bdb.html
>> http://ac-archive.sourceforge.net/Miscellaneous/ax_compare_version.html
> 
> Well, I'm not going to install this stuff.  That's just adding more 
> stuff that can break.  And, I'm sure this will break configure for BDB < 4.

Please think twice. Detecting BDB is often a nuisance when building various
packages. Besides Courier, Apache, Xemacs, and OpenLDAP have their own
more or less complicated m4 macros. Spreading those resources does not
improve the overall quality of Autoconf generated scripts.

> This is what happens when BDB changes APIs several times a year.

Yes, the cat never sleeps... I complained about that to their feedback
mailbox (and still CC to them) and got a reply from former CEO Mike Olson.
He agrees that they should produce an m4 macro to support Autoconf. IMHO,
the macros above are a good start and I sent those pointers also to him.
(There is a different approach: enumerating each known version. It won't
work with _future_ versions, but that's what do Apache and the reusable
http://autoconf-archive.cryp.to/berkeley_db.html )

> Configure works for me for bdb 4.3.  If it breaks when I upgrade to a 
> newer BDB, I'll fix it then.

It doesn't work with 4.1 and 4.2: I get the following...

   $ strings /usr/lib/libdb3.so.3.0.2 | grep db_env_create
   __db_env_create_1
   db_env_create

   $ strings /usr/lib/libdb-4.1.so | grep db_env_create
   __db_env_create_4001

   $ strings /usr/lib/libdb-4.2.so | grep db_env_create
   __db_env_create_4002

   $ strings /usr/lib/libdb-4.3.so | grep db_env_create
   __db_env_create_4003
   db_env_create

...and cannot guess the trend.

In case Courier-authlib is updated less often than BDB, as it should,
its configure script must be able to handle new BDB versions. Those
were future at script generation time. An "official" m4 macro should
not break when a new version is compatible with the old client source.


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
courier-users mailing list
[email protected]
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Reply via email to