I just did an emerge -u --deep --newuse world followed by an emerge --depclean followed by a revdep-rebuild which fails when compiling exim. The problem seems to be related to the radius USE flag. When that flag is removed, exim compiles without any problems. Reproducible: Always Steps to Reproduce: 1. emerge exim 2. 3. Actual Results: In file included from call_radius.c:41: /usr/include/radiusclient.h:343: error: conflicting types for 'ENV' /usr/include/db.h:181: error: previous declaration of 'ENV' was here make[2]: *** [call_radius.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/mail-mta/exim-4.69-r3/work/exim-4.69/build-exim-gentoo/auths' Expected Results: Should have emerged fine. latest db version: db-4.7.25_p4 db version removed by emerge --depclean: db-4.6.21_p4 radiusclient version: radiusclient-0.3.2
Hmm, maybe a slot dep is in order. Assigning to maintainer.
My initial feeling actually is that it is radius-client that has the problem with db here, not exim, as it just compiles against it.
Cc-ing net-dailup because they might see more bugs similar to this one Cc-ing base-system because they are the herd for sys-libs/db and might have a good idea on how to solve this. This /is/ an annoying error. All packages that compile against radiusclient and use db > 4.6 seem affected because then the ENV declaration conflict occurs. I'd say this is some nasty thing introduced in db-4.7, as it seems it used to be called DB_ENV instead. x86_64-pc-linux-gnu-gcc -c -march=athlon64 -O2 -pipe -mno-tls-direct-seg-refs call_radius.c In file included from call_radius.c:41: /usr/include/radiusclient.h:343: error: conflicting types for 'ENV' /usr/include/db.h:181: error: previous declaration of 'ENV' was here make[2]: *** [call_radius.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/mail-mta/exim-4.69-r3/work/exim-4.69/build-exim-gentoo/auths' make[1]: *** No rule to make target `auths/auths.a', needed by `exim'. Stop. make[1]: Leaving directory `/var/tmp/portage/mail-mta/exim-4.69-r3/work/exim-4.69/build-exim-gentoo' make: *** [go] Error 2
proftpd also uses radiusclient and it emerges without any problems (at least for me).
I could rename it as RC_ENV, but I have no idea if some dependent application use the old form. The safest way to fix this is to patch >=db-4.7 and ask upstream to merge it into their source tree.
*** Bug 287427 has been marked as a duplicate of this bug. ***
Also had this error with 4.69-r3 . This fixed it for me: =mail-mta/exim-4.69-r3 -radius
*** Bug 325645 has been marked as a duplicate of this bug. ***
I had forget it, but, yes, again, =mail-mta/exim-4.72 -radius fixed it for me.
*** Bug 343241 has been marked as a duplicate of this bug. ***
*** Bug 346069 has been marked as a duplicate of this bug. ***
still happens with mail-mta/exim-4.72-r1
I worked around this in 4.74-r1