Bug 971523

Summary: Version bump to mimedefang 2.74
Product: [Fedora] Fedora Reporter: Philip Prindeville <philipp>
Component: mimedefangAssignee: Robert Scheck <redhat-bugzilla>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 18CC: philipp, redhat-bugzilla
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: mimedefang-2.74-1.fc18 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-09-22 17:38:24 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Patch to bring up to 2.74... includes source patches
none
Or just always pass -y via the init script
none
Use SMFI_VERSION to know what libmilter we're built against none

Description Philip Prindeville 2013-06-06 17:34:44 UTC
Description of problem:

Mimedefang 2.74 has been released. It includes some fixes for Perl 5.12 and later.

Version-Release number of selected component (if applicable):

mimedefang-2.73-4

How reproducible:

N/A

Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Philip Prindeville 2013-06-06 20:22:04 UTC
Created attachment 757884 [details]
Patch to bring up to 2.74... includes source patches

Other than the mechanical bump of the Version, there's a new flag introduced that we'd be required to use (-y), except that it's always true. So short-circuit it at compile time.

Otherwise, we could patch mimedefang-2.74/redhat/mimedefang-init.in to always invoke $prog with '-y', i.e.:

     daemon $PROGDIR/$prog -P @SPOOLDIR@/$prog.pid \
-        -m $MX_SOCKET \
+        -m $MX_SOCKET -y \
         $([ -n "$LOOPBACK_RESERVED_CONNECTIONS" ] && echo "-R $LOOPBACK_RESERVED_CONNECTIONS") \

instead... Either way, we avoid ALL users having to manually add MD_EXTRA="-y" to their /etc/sysconfig/mimedefang file.

We also add a trivial patch to mimedefang.pl to stop it from complaining at startup about a missing prototype on a recursive function.

Comment 2 Philip Prindeville 2013-06-06 20:36:27 UTC
Created attachment 757917 [details]
Or just always pass -y via the init script

Comment 3 Robert Scheck 2013-06-21 21:31:25 UTC
May you let me understand the details?

Comment 4 Robert Scheck 2013-06-21 22:00:58 UTC
Don't we have a possiblity to get the version from a libmilter include file?

Comment 5 Robert Scheck 2013-06-21 22:38:45 UTC
(In reply to Robert Scheck from comment #4)
> Don't we have a possiblity to get the version from a libmilter include file?

Obviously not as it seems.

Which impact does it have, if we don't use -y with a non-leaking libmilter?

Comment 6 Philip Prindeville 2013-06-21 22:39:37 UTC
(In reply to Robert Scheck from comment #4)
> Don't we have a possiblity to get the version from a libmilter include file?

Umm....  I guess so?

Diffing 8.14.3 (bug present) and 8.14.4 (bug fixed) I see that SMFI_VERSION was bumped:


--- sendmail-8.14.3/include/libmilter/mfapi.h	2008-02-27 15:30:34.000000000 -0700
+++ sendmail-8.14.4/include/libmilter/mfapi.h	2009-11-05 17:57:08.000000000 -0700
@@ -7,7 +7,7 @@
  * the sendmail distribution.
  *
  *
- *	$Id: mfapi.h,v 8.78 2008/02/27 22:30:34 ca Exp $
+ *	$Id: mfapi.h,v 8.80 2009/11/06 00:57:08 ca Exp $
  */
 
 /*
@@ -18,7 +18,14 @@
 # define _LIBMILTER_MFAPI_H	1
 
 #ifndef SMFI_VERSION
-# define SMFI_VERSION	0x01000001	/* libmilter version number */
+# if _FFR_MDS_NEGOTIATE
+#  define SMFI_VERSION	0x01000002	/* libmilter version number */
+
+   /* first libmilter version that has MDS support */
+#  define SMFI_VERSION_MDS	0x01000002
+# else /* _FFR_MDS_NEGOTIATE */
+#  define SMFI_VERSION	0x01000001	/* libmilter version number */
+# endif /* _FFR_MDS_NEGOTIATE */
 #endif /* ! SMFI_VERSION */
 
 #define SM_LM_VRS_MAJOR(v)	(((v) & 0x7f000000) >> 24)
@@ -163,9 +170,7 @@
 LIBMILTER_API int smfi_settimeout __P((int));
 LIBMILTER_API int smfi_setconn __P((char *));
 LIBMILTER_API int smfi_stop __P((void));
-#if _FFR_MAXDATASIZE
 LIBMILTER_API size_t smfi_setmaxdatasize __P((size_t));
-#endif /* _FFR_MAXDATASIZE */
 LIBMILTER_API int smfi_version __P((unsigned int *, unsigned int *, unsigned int *));
 
 /*

Comment 7 Philip Prindeville 2013-06-21 22:49:31 UTC
(In reply to Robert Scheck from comment #5)
> (In reply to Robert Scheck from comment #4)
> > Don't we have a possiblity to get the version from a libmilter include file?
> 
> Obviously not as it seems.

Wait... what?

> Which impact does it have, if we don't use -y with a non-leaking libmilter?

If we don't run it with -y, then only the variables that are EXPORTED by sendmail "O Milter.macros.*" lines will be exported, I believe.

No additional variables may be requested explicitly via the StandardSendmailMacros[] in mimedefang.c nor via the -a flag at run-time.

Comment 8 Robert Scheck 2013-06-21 22:55:51 UTC
In comment #6, I do not see different versions, that could be checked via some
preprocessor directive.

Comment 9 Philip Prindeville 2013-06-21 22:57:38 UTC
(In reply to Robert Scheck from comment #8)
> In comment #6, I do not see different versions, that could be checked via
> some preprocessor directive.

-# define SMFI_VERSION	0x01000001	/* libmilter version number */
+#  define SMFI_VERSION	0x01000002	/* libmilter version number */

Attaching a new fix.

Comment 10 Philip Prindeville 2013-06-21 22:59:06 UTC
Created attachment 763996 [details]
Use SMFI_VERSION to know what libmilter we're built against

Comment 11 Robert Scheck 2013-06-21 23:00:18 UTC
You noticed that the changed SMFI_VERSION depends on _FFR_MDS_NEGOTIATE only?

Comment 12 Philip Prindeville 2013-06-21 23:07:37 UTC
(In reply to Robert Scheck from comment #11)
> You noticed that the changed SMFI_VERSION depends on _FFR_MDS_NEGOTIATE only?

Yeah, but I thought that was also being defined in the same header file: turns out it's not. It's set during the sendmail build.  Oh, well.

We can still go with Attachment 757884 [details].

Comment 13 Robert Scheck 2013-06-21 23:13:17 UTC
Okay. We will simply go with the initscript change. Nevertheless thanks for
pointing the issue out, I wouldn't have noticed that.

Is the prototype patch already upstream? And since when does Perl care about 
prototyping? I thought Perl would have invented the implicity :)

Comment 14 Philip Prindeville 2013-06-21 23:57:47 UTC
(In reply to Robert Scheck from comment #13)
> Okay. We will simply go with the initscript change. Nevertheless thanks for
> pointing the issue out, I wouldn't have noticed that.
> 
> Is the prototype patch already upstream? And since when does Perl care about 
> prototyping? I thought Perl would have invented the implicity :)

I've sent it upstream but it's not been accepted (nor rejected).

Perl is only fussy about prototypes when it sees a function being defined with a prototype after that function has been referenced...

Comment 15 Fedora Update System 2013-08-31 18:20:36 UTC
mimedefang-2.74-1.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/mimedefang-2.74-1.fc19

Comment 16 Fedora Update System 2013-08-31 18:21:01 UTC
mimedefang-2.74-1.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/mimedefang-2.74-1.fc18

Comment 17 Fedora Update System 2013-08-31 18:23:53 UTC
mimedefang-2.74-1.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/mimedefang-2.74-1.el6

Comment 18 Fedora Update System 2013-08-31 18:24:23 UTC
mimedefang-2.74-1.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/mimedefang-2.74-1.el5

Comment 19 Fedora Update System 2013-09-01 18:46:56 UTC
Package mimedefang-2.74-1.el5:
* should fix your issue,
* was pushed to the Fedora EPEL 5 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=epel-testing mimedefang-2.74-1.el5'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-EPEL-2013-11399/mimedefang-2.74-1.el5
then log in and leave karma (feedback).

Comment 20 Fedora Update System 2013-09-22 17:38:24 UTC
mimedefang-2.74-1.el5 has been pushed to the Fedora EPEL 5 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 21 Fedora Update System 2013-09-22 17:39:21 UTC
mimedefang-2.74-1.el6 has been pushed to the Fedora EPEL 6 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 22 Fedora Update System 2013-09-23 00:20:27 UTC
mimedefang-2.74-1.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 23 Fedora Update System 2013-09-23 00:47:34 UTC
mimedefang-2.74-1.fc18 has been pushed to the Fedora 18 stable repository.  If problems still persist, please make note of it in this bug report.