[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

NMU sendmail upload for t-p-u



Dear release team, dear sponsors

I have made a patch which would solve bug for Debian Squeeze as the Sid version
did not made it into testing in time. As I'm not familiar with doing such a
thing I am asking for some help in order to make a NMU to Debian t-p-u. Please
find attached a debdiff sendmail_8.14.3-9.4.dsc sendmail_8.14.3-9.5.dsc which
shows the changes done by me based on the patches in the according bug report
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=527862 and the new upstream
version 8.14.4. If this change is acceptable to the release team I would ask
for some help with getting it into t-p-u.

Thanks for everybodies help!
Kind regards
Harald Jenny
diff -u sendmail-8.14.3/debian/changelog sendmail-8.14.3/debian/changelog
--- sendmail-8.14.3/debian/changelog
+++ sendmail-8.14.3/debian/changelog
@@ -1,3 +1,11 @@
+sendmail (8.14.3-9.5) testing-proposed-updates; urgency=medium
+
+  * Non-maintainer upload.
+  * Apply patch from sendmail 8.14.4 to fix libmilter bug in upcoming Squeeze
+    release (Closes: #527862).
+
+ -- Harald Jenny <harald@a-little-linux-box.at>  Sun,  2 Jan 2011 22:36:17 +0100
+
 sendmail (8.14.3-9.4) unstable; urgency=low
 
   * Non-maintainer upload.
diff -u sendmail-8.14.3/debian/patches/8.14/8.14.3/series sendmail-8.14.3/debian/patches/8.14/8.14.3/series
--- sendmail-8.14.3/debian/patches/8.14/8.14.3/series
+++ sendmail-8.14.3/debian/patches/8.14/8.14.3/series
@@ -12,0 +13 @@
+worker_c
only in patch2:
unchanged:
--- sendmail-8.14.3.orig/debian/patches/8.14/8.14.3/worker_c
+++ sendmail-8.14.3/debian/patches/8.14/8.14.3/worker_c
@@ -0,0 +1,73 @@
+--- sendmail-8.14.3/libmilter/worker.c	2007-12-03 23:06:05.000000000 +0100
++++ sendmail-8.14.4/libmilter/worker.c	2009-06-15 17:34:54.000000000 +0200
+@@ -328,6 +312,7 @@
+ 	int dim_pfd = 0;
+ 	bool rebuild_set = true;
+ 	int pcnt = 0; /* error count for poll() failures */
++	time_t lastcheck;
+ 
+ 	Tskmgr.tm_tid = sthread_get_id();
+ 	if (pthread_detach(Tskmgr.tm_tid) != 0)
+@@ -345,12 +330,12 @@
+ 	}
+ 	dim_pfd = PFD_STEP;
+ 
++	lastcheck = time(NULL);
+ 	for (;;)
+ 	{
+ 		SMFICTX_PTR ctx;
+ 		int nfd, rfd, i;
+ 		time_t now;
+-		time_t lastcheck;
+ 
+ 		POOL_LEV_DPRINTF(4, ("Let's %s again...", WAITFN));
+ 
+@@ -364,20 +349,20 @@
+ 		/* check for timed out sessions? */
+ 		if (lastcheck + DT_CHECK_OLD_SESSIONS < now)
+ 		{
+-			SM_TAILQ_FOREACH(ctx, &WRK_CTX_HEAD, ctx_link)
++			ctx = SM_TAILQ_FIRST(&WRK_CTX_HEAD);
++			while (ctx != SM_TAILQ_END(&WRK_CTX_HEAD))
+ 			{
++				SMFICTX_PTR ctx_nxt;
++
++				ctx_nxt = SM_TAILQ_NEXT(ctx, ctx_link);
+ 				if (ctx->ctx_wstate == WKST_WAITING)
+ 				{
+ 					if (ctx->ctx_wait == 0)
+-					{
+ 						ctx->ctx_wait = now;
+-						continue;
+-					}
+-
+-					/* if session timed out, close it */
+-					if (ctx->ctx_wait + OLD_SESSION_TIMEOUT
+-					    < now)
++					else if (ctx->ctx_wait + OLD_SESSION_TIMEOUT
++						 < now)
+ 					{
++						/* if session timed out, close it */
+ 						sfsistat (*fi_close) __P((SMFICTX *));
+ 
+ 						POOL_LEV_DPRINTF(4,
+@@ -389,10 +374,9 @@
+ 							(void) (*fi_close)(ctx);
+ 
+ 						mi_close_session(ctx);
+-						ctx = SM_TAILQ_FIRST(&WRK_CTX_HEAD);
+-						continue;
+ 					}
+ 				}
++				ctx = ctx_nxt;
+ 			}
+ 			lastcheck = now;
+ 		}
+@@ -465,6 +449,7 @@
+ 					}
+ 				}
+ 			}
++			rebuild_set = false;
+ 		}
+ 
+ 		TASKMGR_UNLOCK();

Reply to: