This one time, at band camp, Andreas Metzler said:
> On 2005-06-18 Stephen Gran <[EMAIL PROTECTED]> wrote:
>
> > As for the sendmail version, I think you're right - just defining them
> > in the milter after including the clamav-config.h ought to do it
> > (although it will break things for anyone compiling clamav with a
> > non-debian sendmail installed).
>
> > Hmm, have to think about this. Maybe this needs grotesque Makefile
> > hackery - look for an environment variable, otherwise run gcc with
> > -DNO_SENDMAIL or something, and define _that_ in the milter to mean
> > SENDMAIL_VERSION=$(debian_sendmail_version). That's starting to feel
> > like overkill, but it would easily allow people to rebuild against a
> > non-standard sendmail, which feels like the right thing.
>
> I doubt whether there is a working solution for this, as your aims
> are:
>
> #1 if /usr/sbin/sendmail does not exist build as if
> ${sendmail version in sid} was installed
This one is easy - it must exist, according to policy (which I have just
reread, thanks to you :)
> #2 if /usr/sbin/sendmail exists but is not sendmail (exim, qmail,
> esmtp, ...) build as if ${sendmail version in sid} was installed
Yes.
> #3 if /usr/sbin/sendmail exists and is a real sendmail retrieve version
> information from binary and hardcode _these_ values.
And yes.
> On top of that do not forget to add the corresponding dependency
> information.
And this is another hard part. If we build with SENDMAIL_VERSION
defined to something (whether extracted from a real sendmail, or hacked
in), how do we express this in dependencies? I think, we have to
Conflict: sendmail (<< SENDMAIL_VERSION), rather than
Depends: sendmail (>= SENDMAIL_VERSION)
in order to make it work cleanly. The problem here, I think, is that
the milter doesn't actually depend on sendmail to run now that the
milter library is properly built as a shared library in a seperate
package. It will, however, introduce behavior that older sendmail's
can't cope with.
> I guess that just detecting whether /usr/sbin/sendmail is a real sendmail
> is a quite hard problem without elegant solution. Which is why I'd
> suggest to drop requirement #3.
> cu andreas
I think we can do this in clamav-milter.c:
#ifundef SENDMAIL_VERSION_A
#define SENDMAIL_VERSION_A 8
#endif
#ifundef SENDMAIL_VERSION_B
#define SENDMAIL_VERSION_B 13
#endif
after including clamav-config.h, without introducing any breakage. In
combination with the Conflicts: above, I think this will produce the
correct behavior.
Does this seem reasonable to you?
--
-----------------------------------------------------------------
| ,''`. Stephen Gran |
| : :' : [EMAIL PROTECTED] |
| `. `' Debian user, admin, and developer |
| `- http://www.debian.org |
-----------------------------------------------------------------
signature.asc
Description: Digital signature

