<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:www.nabble.com,2006:forum-12491</id>
	<title>Nabble - debian-dak</title>
	<updated>2008-10-14T12:36:57Z</updated>
	<link rel="self" type="application/atom+xml" href="http://www.nabble.com/debian-dak-f12491.xml" />
	<link rel="alternate" type="text/html" href="http://www.nabble.com/debian-dak-f12491.html" />
	<subtitle type="html">Discussion about the Debian Archive Software, consisting of dak for the archive and the buildd related parts wanna-build/sbuild.</subtitle>
	
<entry>
	<id>tag:www.nabble.com,2006:post-19980757</id>
	<title>[dak/master] EVIL SINGLE TAB CHARACTER IN LAST COMMIT EMERGENCY FIX</title>
	<published>2008-10-14T12:36:57Z</published>
	<updated>2008-10-14T12:36:57Z</updated>
	<author>
		<name>Thomas Viehmann</name>
	</author>
	<content type="html">Signed-off-by: Thomas Viehmann &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19980757&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tv@...&lt;/a&gt;&amp;gt;
&lt;br&gt;---
&lt;br&gt;&amp;nbsp;ChangeLog | &amp;nbsp; &amp;nbsp;2 +-
&lt;br&gt;&amp;nbsp;1 files changed, 1 insertions(+), 1 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/ChangeLog b/ChangeLog
&lt;br&gt;index 7a74b95..e57705e 100644
&lt;br&gt;--- a/ChangeLog
&lt;br&gt;+++ b/ChangeLog
&lt;br&gt;@@ -1,7 +1,7 @@
&lt;br&gt;&amp;nbsp;2008-10-14 &amp;nbsp;Thomas Viehmann &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19980757&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tv@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;	* dak/show_deferred.py: produce .changes and improve status
&lt;br&gt;-	
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;2008-10-07 &amp;nbsp;Joerg Jaspert &amp;nbsp;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19980757&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joerg@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;	* config/debian/cron.dinstall: Only keep the last 60 days of
&lt;br&gt;-- 
&lt;br&gt;1.5.6.5
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19980757&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19980757&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-dak-master--EVIL-SINGLE-TAB-CHARACTER-IN-LAST-COMMIT-EMERGENCY-FIX-tp19980757p19980757.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19980760</id>
	<title>[dak/master] changelog</title>
	<published>2008-10-14T12:31:34Z</published>
	<updated>2008-10-14T12:31:34Z</updated>
	<author>
		<name>Thomas Viehmann</name>
	</author>
	<content type="html">Signed-off-by: Thomas Viehmann &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19980760&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tv@...&lt;/a&gt;&amp;gt;
&lt;br&gt;---
&lt;br&gt;&amp;nbsp;ChangeLog | &amp;nbsp; &amp;nbsp;4 ++++
&lt;br&gt;&amp;nbsp;1 files changed, 4 insertions(+), 0 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/ChangeLog b/ChangeLog
&lt;br&gt;index b303443..7a74b95 100644
&lt;br&gt;--- a/ChangeLog
&lt;br&gt;+++ b/ChangeLog
&lt;br&gt;@@ -1,3 +1,7 @@
&lt;br&gt;+2008-10-14 &amp;nbsp;Thomas Viehmann &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19980760&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tv@...&lt;/a&gt;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	* dak/show_deferred.py: produce .changes and improve status
&lt;br&gt;+	
&lt;br&gt;&amp;nbsp;2008-10-07 &amp;nbsp;Joerg Jaspert &amp;nbsp;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19980760&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joerg@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;	* config/debian/cron.dinstall: Only keep the last 60 days of
&lt;br&gt;-- 
&lt;br&gt;1.5.6.5
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19980760&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19980760&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-dak-master--changelog-tp19980760p19980760.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19980756</id>
	<title>[dak/master] bug #</title>
	<published>2008-10-14T12:30:17Z</published>
	<updated>2008-10-14T12:30:17Z</updated>
	<author>
		<name>Thomas Viehmann</name>
	</author>
	<content type="html">---
&lt;br&gt;&amp;nbsp;dak/show_deferred.py | &amp;nbsp; &amp;nbsp;2 +-
&lt;br&gt;&amp;nbsp;1 files changed, 1 insertions(+), 1 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/dak/show_deferred.py b/dak/show_deferred.py
&lt;br&gt;index bc2c254..bb29fdd 100755
&lt;br&gt;--- a/dak/show_deferred.py
&lt;br&gt;+++ b/dak/show_deferred.py
&lt;br&gt;@@ -29,7 +29,7 @@ from daklib import queue
&lt;br&gt;&amp;nbsp;from daklib import utils
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;################################################################################
&lt;br&gt;-### work around bug in debian-python 0.1.10
&lt;br&gt;+### work around bug #487902 in debian-python 0.1.10
&lt;br&gt;&amp;nbsp;deb822.Changes._multivalued_fields = {
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;files&amp;quot;: [ &amp;quot;md5sum&amp;quot;, &amp;quot;size&amp;quot;, &amp;quot;section&amp;quot;, &amp;quot;priority&amp;quot;, &amp;quot;name&amp;quot; ],
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;checksums-sha1&amp;quot;: [&amp;quot;sha1&amp;quot;, &amp;quot;size&amp;quot;, &amp;quot;name&amp;quot;],
&lt;br&gt;-- 
&lt;br&gt;1.5.6.5
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19980756&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19980756&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-dak-master--bug---tp19980756p19980756.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19980763</id>
	<title>[dak/master] produce changes without signature, fix delay calculation also for status</title>
	<published>2008-10-14T08:21:26Z</published>
	<updated>2008-10-14T08:21:26Z</updated>
	<author>
		<name>Thomas Viehmann</name>
	</author>
	<content type="html">Signed-off-by: Thomas Viehmann &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19980763&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tv@...&lt;/a&gt;&amp;gt;
&lt;br&gt;---
&lt;br&gt;&amp;nbsp;dak/show_deferred.py | &amp;nbsp; 28 ++++++++++++++++++----------
&lt;br&gt;&amp;nbsp;1 files changed, 18 insertions(+), 10 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/dak/show_deferred.py b/dak/show_deferred.py
&lt;br&gt;index 4ffa5e6..bc2c254 100755
&lt;br&gt;--- a/dak/show_deferred.py
&lt;br&gt;+++ b/dak/show_deferred.py
&lt;br&gt;@@ -29,6 +29,14 @@ from daklib import queue
&lt;br&gt;&amp;nbsp;from daklib import utils
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;################################################################################
&lt;br&gt;+### work around bug in debian-python 0.1.10
&lt;br&gt;+deb822.Changes._multivalued_fields = {
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;files&amp;quot;: [ &amp;quot;md5sum&amp;quot;, &amp;quot;size&amp;quot;, &amp;quot;section&amp;quot;, &amp;quot;priority&amp;quot;, &amp;quot;name&amp;quot; ],
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;checksums-sha1&amp;quot;: [&amp;quot;sha1&amp;quot;, &amp;quot;size&amp;quot;, &amp;quot;name&amp;quot;],
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;checksums-sha256&amp;quot;: [&amp;quot;sha256&amp;quot;, &amp;quot;size&amp;quot;, &amp;quot;name&amp;quot;],
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br&gt;+
&lt;br&gt;+################################################################################
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;row_number = 1
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -146,7 +154,7 @@ def get_upload_data(changesfn):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if os.path.exists(qfn):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.symlink(qfn,lfn)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.chmod(qfn, 0644)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return (delaydays*24*60*60+remainingtime, changesname, delay, uploader, achanges.get('closes').split(),achanges)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return (max(delaydays-1,0)*24*60*60+remainingtime, changesname, delay, uploader, achanges.get('closes').split(),achanges)
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;def list_uploads(filelist):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;uploads = map(get_upload_data, filelist)
&lt;br&gt;@@ -166,13 +174,13 @@ def list_uploads(filelist):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f = open(fn,&amp;quot;w&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for u in uploads:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; f, &amp;quot;&amp;quot;&amp;quot;Changes: %s
&lt;br&gt;-Location: DEFERRED
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; f, &amp;quot;Changes: %s&amp;quot;%u[1]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fields = &amp;quot;&amp;quot;&amp;quot;Location: DEFERRED
&lt;br&gt;&amp;nbsp;Delayed-Until: %s
&lt;br&gt;-Delay-Remaining: %s&amp;quot;&amp;quot;&amp;quot;%(u[1],time.strftime(&amp;quot;%Y-%m-%d %H:%M:%S&amp;quot;, time.gmtime(time.time()+u[0])),u[2])
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for k,v in u[5].items():
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not k.startswith('Checksums-') and k != 'Files':
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; f, &amp;quot;%s: %s&amp;quot;%(k,v)
&lt;br&gt;+Delay-Remaining: %s&amp;quot;&amp;quot;&amp;quot;%(time.strftime(&amp;quot;%Y-%m-%d %H:%M:%S&amp;quot;, time.gmtime(time.time()+u[0])),u[2])
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; f, fields
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; f, str(u[5]).rstrip()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;open(os.path.join(Cnf[&amp;quot;Show-Deferred::LinkPath&amp;quot;],u[1]),&amp;quot;w&amp;quot;).write(str(u[5])+fields+'\n')
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; f
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f.close()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.rename(os.path.join(Cnf[&amp;quot;Show-Deferred::LinkPath&amp;quot;],'.status.tmp'),
&lt;br&gt;@@ -231,7 +239,7 @@ def main():
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# remove dead links
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for r,d,f in os.walk(Cnf[&amp;quot;Show-Deferred::LinkPath&amp;quot;]):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for af in f:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;af = os.path.join(r,af)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (not os.path.exists(af) or
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;afp = os.path.join(r,af)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (not os.path.exists(afp) or
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(af.endswith('.changes') and af not in available_changes)):
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.unlink(af)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.unlink(afp)
&lt;br&gt;-- 
&lt;br&gt;1.5.6.5
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19980763&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19980763&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-dak-master--produce-changes-without-signature%2C-fix-delay-calculation-also-for-status-tp19980763p19980763.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19971480</id>
	<title>srcdep Packages-arch-specific,1.775,1.776</title>
	<published>2008-10-14T03:59:55Z</published>
	<updated>2008-10-14T03:59:55Z</updated>
	<author>
		<name>James Troup-5</name>
	</author>
	<content type="html">Update of /cvs/dak/srcdep
&lt;br&gt;In directory gluck:/tmp/cvs-serv12246
&lt;br&gt;&lt;br&gt;Modified Files:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Packages-arch-specific 
&lt;br&gt;Log Message:
&lt;br&gt;read-edid also works on lpia per cjwatson/smagoun
&lt;br&gt;&lt;br&gt;Index: Packages-arch-specific
&lt;br&gt;===================================================================
&lt;br&gt;RCS file: /cvs/dak/srcdep/Packages-arch-specific,v
&lt;br&gt;retrieving revision 1.775
&lt;br&gt;retrieving revision 1.776
&lt;br&gt;diff -u -d -r1.775 -r1.776
&lt;br&gt;--- Packages-arch-specific	19 Sep 2008 16:21:03 -0000	1.775
&lt;br&gt;+++ Packages-arch-specific	14 Oct 2008 10:59:44 -0000	1.776
&lt;br&gt;@@ -751,7 +751,7 @@
&lt;br&gt;&amp;nbsp;quik-installer: powerpc						 &amp;nbsp; &amp;nbsp; &amp;nbsp;# powerpc boot loader
&lt;br&gt;&amp;nbsp;qvplay: i386 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# Attatches through the parallel port
&lt;br&gt;&amp;nbsp;raidtools: !ia64 !hppa
&lt;br&gt;-%read-edid: i386 powerpc 					 &amp;nbsp; &amp;nbsp; &amp;nbsp;# ioperm()/iopl(), vm86() etc. i386 specific
&lt;br&gt;+%read-edid: i386 powerpc lpia 					 &amp;nbsp; &amp;nbsp; &amp;nbsp;# ioperm()/iopl(), vm86() etc. i386 specific
&lt;br&gt;&amp;nbsp;red-carpet: i386						 &amp;nbsp; &amp;nbsp; &amp;nbsp;# brain damaged upstream...
&lt;br&gt;&amp;nbsp;%ree: i386 ia64 amd64 hurd-i386 freebsd-i386 netbsd-i386 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# i386 specific
&lt;br&gt;&amp;nbsp;%refit: i386							 &amp;nbsp; &amp;nbsp; &amp;nbsp;# EFI bootloader
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19971480&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19971480&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/srcdep-Packages-arch-specific%2C1.775%2C1.776-tp19971480p19971480.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19933597</id>
	<title>[dak/master] add machine-readable status</title>
	<published>2008-10-11T01:37:08Z</published>
	<updated>2008-10-11T01:37:08Z</updated>
	<author>
		<name>Thomas Viehmann</name>
	</author>
	<content type="html">Signed-off-by: Thomas Viehmann &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19933597&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tv@...&lt;/a&gt;&amp;gt;
&lt;br&gt;---
&lt;br&gt;&amp;nbsp;dak/show_deferred.py | &amp;nbsp; 31 +++++++++++++++++++++++++++----
&lt;br&gt;&amp;nbsp;1 files changed, 27 insertions(+), 4 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/dak/show_deferred.py b/dak/show_deferred.py
&lt;br&gt;index 6c24c23..4ffa5e6 100755
&lt;br&gt;--- a/dak/show_deferred.py
&lt;br&gt;+++ b/dak/show_deferred.py
&lt;br&gt;@@ -22,6 +22,7 @@
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import sys, os, re, time
&lt;br&gt;&amp;nbsp;import apt_pkg
&lt;br&gt;+import tempfile
&lt;br&gt;&amp;nbsp;from debian_bundle import deb822
&lt;br&gt;&amp;nbsp;from daklib import database
&lt;br&gt;&amp;nbsp;from daklib import queue
&lt;br&gt;@@ -145,19 +146,40 @@ def get_upload_data(changesfn):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if os.path.exists(qfn):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.symlink(qfn,lfn)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.chmod(qfn, 0644)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return (delaydays*24*60*60+remainingtime, changesname, delay, uploader, achanges.get('closes').split())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return (delaydays*24*60*60+remainingtime, changesname, delay, uploader, achanges.get('closes').split(),achanges)
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;def list_uploads(filelist):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;uploads = map(get_upload_data, filelist)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;uploads.sort()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;# print the summary page
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;print header()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if uploads:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print table_header()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print ''.join(map(lambda x: table_row(*x[1:]), uploads))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print ''.join(map(lambda x: table_row(*x[1:5]), uploads))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print table_footer()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;else:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print '&amp;lt;h1&amp;gt;Currently no deferred uploads to Debian&amp;lt;/h1&amp;gt;'
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;print footer()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;# machine readable summary
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if Cnf.has_key(&amp;quot;Show-Deferred::LinkPath&amp;quot;):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fn = os.path.join(Cnf[&amp;quot;Show-Deferred::LinkPath&amp;quot;],'.status.tmp')
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f = open(fn,&amp;quot;w&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;try:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for u in uploads:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; f, &amp;quot;&amp;quot;&amp;quot;Changes: %s
&lt;br&gt;+Location: DEFERRED
&lt;br&gt;+Delayed-Until: %s
&lt;br&gt;+Delay-Remaining: %s&amp;quot;&amp;quot;&amp;quot;%(u[1],time.strftime(&amp;quot;%Y-%m-%d %H:%M:%S&amp;quot;, time.gmtime(time.time()+u[0])),u[2])
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for k,v in u[5].items():
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not k.startswith('Checksums-') and k != 'Files':
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; f, &amp;quot;%s: %s&amp;quot;%(k,v)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; f
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f.close()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.rename(os.path.join(Cnf[&amp;quot;Show-Deferred::LinkPath&amp;quot;],'.status.tmp'),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.path.join(Cnf[&amp;quot;Show-Deferred::LinkPath&amp;quot;],'status'))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;except:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.unlink(fn)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;raise
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;def usage (exit_code=0):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if exit_code:
&lt;br&gt;@@ -204,11 +226,12 @@ def main():
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; filter(lambda x: x.endswith('.changes'), f))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;list_uploads(filelist)
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;available_changes = set(map(os.path.basename,filelist))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if Cnf.has_key(&amp;quot;Show-Deferred::LinkPath&amp;quot;):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# remove dead links
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for r,d,f in os.walk(Cnf[&amp;quot;Show-Deferred::LinkPath&amp;quot;]):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for af in f:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;af = os.path.join(r,af)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not os.path.exists(af):
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; sys.stderr, &amp;quot;obsolete&amp;quot;,af
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (not os.path.exists(af) or
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(af.endswith('.changes') and af not in available_changes)):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.unlink(af)
&lt;br&gt;-- 
&lt;br&gt;1.5.6.5
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19933597&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19933597&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-dak-master--add-machine-readable-status-tp19933597p19933597.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19930441</id>
	<title>[dak/master] show_deferred</title>
	<published>2008-10-11T00:44:36Z</published>
	<updated>2008-10-11T00:44:36Z</updated>
	<author>
		<name>Joerg Jaspert</name>
	</author>
	<content type="html">remove debug output
&lt;br&gt;&lt;br&gt;Signed-off-by: Joerg Jaspert &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19930441&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joerg@...&lt;/a&gt;&amp;gt;
&lt;br&gt;---
&lt;br&gt;&amp;nbsp;dak/show_deferred.py | &amp;nbsp; &amp;nbsp;2 +-
&lt;br&gt;&amp;nbsp;1 files changed, 1 insertions(+), 1 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/dak/show_deferred.py b/dak/show_deferred.py
&lt;br&gt;index 6c24c23..aa33b2e 100755
&lt;br&gt;--- a/dak/show_deferred.py
&lt;br&gt;+++ b/dak/show_deferred.py
&lt;br&gt;@@ -210,5 +210,5 @@ def main():
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for af in f:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;af = os.path.join(r,af)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not os.path.exists(af):
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; sys.stderr, &amp;quot;obsolete&amp;quot;,af
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;#print &amp;gt;&amp;gt; sys.stderr, &amp;quot;obsolete&amp;quot;,af
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.unlink(af)
&lt;br&gt;-- 
&lt;br&gt;1.5.6.5
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19930441&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19930441&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-dak-master--show_deferred-tp19930441p19930441.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19866985</id>
	<title>[dak/master] config for show-deferred</title>
	<published>2008-10-07T13:31:41Z</published>
	<updated>2008-10-07T13:31:41Z</updated>
	<author>
		<name>Thomas Viehmann</name>
	</author>
	<content type="html">---
&lt;br&gt;&amp;nbsp;config/debian/cron.hourly | &amp;nbsp; &amp;nbsp;2 +-
&lt;br&gt;&amp;nbsp;config/debian/dak.conf &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp;1 +
&lt;br&gt;&amp;nbsp;dak/show_deferred.py &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; 21 ++++++++++++++-------
&lt;br&gt;&amp;nbsp;3 files changed, 16 insertions(+), 8 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/config/debian/cron.hourly b/config/debian/cron.hourly
&lt;br&gt;index 57a63b2..ce1d43e 100755
&lt;br&gt;--- a/config/debian/cron.hourly
&lt;br&gt;+++ b/config/debian/cron.hourly
&lt;br&gt;@@ -10,5 +10,5 @@ export SCRIPTVARS=/srv/ftp.debian.org/dak/config/debian/vars
&lt;br&gt;&amp;nbsp;date -u &amp;gt; $ftpdir/project/trace/ftp-master.debian.org
&lt;br&gt;&amp;nbsp;dak import-users-from-passwd
&lt;br&gt;&amp;nbsp;dak queue-report -n &amp;gt; $webdir/new.html
&lt;br&gt;-/srv/queued/debianqueued-0.9/show-deferred /srv/queued/DEFERRED/ &amp;gt; ${webdir}/deferred.html
&lt;br&gt;+dak show-deferred &amp;gt; ${webdir}/deferred.html
&lt;br&gt;&amp;nbsp;cd $queuedir/new ; dak show-new *.changes &amp;gt; /dev/null
&lt;br&gt;diff --git a/config/debian/dak.conf b/config/debian/dak.conf
&lt;br&gt;index 75ea43e..b8e1a48 100644
&lt;br&gt;--- a/config/debian/dak.conf
&lt;br&gt;+++ b/config/debian/dak.conf
&lt;br&gt;@@ -129,6 +129,7 @@ Show-New
&lt;br&gt;&amp;nbsp;Show-Deferred
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp;LinkPath &amp;quot;/srv/ftp.debian.org/web/deferred/&amp;quot;;
&lt;br&gt;+ &amp;nbsp;DeferredQueue &amp;quot;/srv/queued/DEFERRED/&amp;quot;;
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;Import-Users-From-Passwd
&lt;br&gt;diff --git a/dak/show_deferred.py b/dak/show_deferred.py
&lt;br&gt;index e718f74..6c24c23 100755
&lt;br&gt;--- a/dak/show_deferred.py
&lt;br&gt;+++ b/dak/show_deferred.py
&lt;br&gt;@@ -164,9 +164,10 @@ def usage (exit_code=0):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f = sys.stderr
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;else:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f = sys.stdout
&lt;br&gt;- &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; f, &amp;quot;&amp;quot;&amp;quot;Usage: dak show-deferred /path/to/DEFERRED
&lt;br&gt;- &amp;nbsp;-h, --help &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;show this help and exit.
&lt;br&gt;- &amp;nbsp;-p, --html-path [path] &amp;nbsp; &amp;nbsp;override output directory.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; f, &amp;quot;&amp;quot;&amp;quot;Usage: dak show-deferred
&lt;br&gt;+ &amp;nbsp;-h, --help &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;show this help and exit.
&lt;br&gt;+ &amp;nbsp;-p, --link-path [path] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;override output directory.
&lt;br&gt;+ &amp;nbsp;-d, --deferred-queue [path] &amp;nbsp; path to the deferred queue
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;quot;&amp;quot;&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;sys.exit(exit_code)
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -174,11 +175,17 @@ def init():
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global Cnf, Options, Upload, projectB
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Cnf = utils.get_conf()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Arguments = [('h',&amp;quot;help&amp;quot;,&amp;quot;Show-Deferred::Options::Help&amp;quot;),
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&amp;quot;p&amp;quot;,&amp;quot;link-path&amp;quot;,&amp;quot;Show-Deferred::LinkPath&amp;quot;,&amp;quot;HasArg&amp;quot;)]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&amp;quot;p&amp;quot;,&amp;quot;link-path&amp;quot;,&amp;quot;Show-Deferred::LinkPath&amp;quot;,&amp;quot;HasArg&amp;quot;),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&amp;quot;d&amp;quot;,&amp;quot;deferred-queue&amp;quot;,&amp;quot;Show-Deferred::DeferredQueue&amp;quot;,&amp;quot;HasArg&amp;quot;)]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;args = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;for i in [&amp;quot;help&amp;quot;]:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not Cnf.has_key(&amp;quot;Show-Deferred::Options::%s&amp;quot; % (i)):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Cnf[&amp;quot;Show-Deferred::Options::%s&amp;quot; % (i)] = &amp;quot;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;args = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for i,j in [(&amp;quot;DeferredQueue&amp;quot;,&amp;quot;--deferred-queue&amp;quot;)]:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not Cnf.has_key(&amp;quot;Show-Deferred::%s&amp;quot; % (i)):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; sys.stderr, &amp;quot;&amp;quot;&amp;quot;Show-Deferred::%s is mandatory.
&lt;br&gt;+ &amp;nbsp;set via config file or command-line option %s&amp;quot;&amp;quot;&amp;quot;%(i,j)
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Options = Cnf.SubTree(&amp;quot;Show-Deferred::Options&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if Options[&amp;quot;help&amp;quot;]:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;usage()
&lt;br&gt;@@ -188,11 +195,11 @@ def init():
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;def main():
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;args = init()
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if len(args)!=1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if len(args)!=0:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;usage(1)
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;filelist = []
&lt;br&gt;- &amp;nbsp; &amp;nbsp;for r,d,f &amp;nbsp;in os.walk(args[0]):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for r,d,f &amp;nbsp;in os.walk(Cnf[&amp;quot;Show-Deferred::DeferredQueue&amp;quot;]):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;filelist += map (lambda x: os.path.join(r,x),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; filter(lambda x: x.endswith('.changes'), f))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;list_uploads(filelist)
&lt;br&gt;-- 
&lt;br&gt;1.5.6.5
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866985&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866985&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-dak-master--config-for-show-deferred-tp19866985p19866985.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19866984</id>
	<title>[dak/master] whitespace sanitizing</title>
	<published>2008-10-07T13:13:27Z</published>
	<updated>2008-10-07T13:13:27Z</updated>
	<author>
		<name>Thomas Viehmann</name>
	</author>
	<content type="html">---
&lt;br&gt;&amp;nbsp;dak/show_deferred.py | &amp;nbsp; &amp;nbsp;6 +++---
&lt;br&gt;&amp;nbsp;daklib/database.py &amp;nbsp; | &amp;nbsp; &amp;nbsp;1 -
&lt;br&gt;&amp;nbsp;2 files changed, 3 insertions(+), 4 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/dak/show_deferred.py b/dak/show_deferred.py
&lt;br&gt;index 81c117b..e718f74 100755
&lt;br&gt;--- a/dak/show_deferred.py
&lt;br&gt;+++ b/dak/show_deferred.py
&lt;br&gt;@@ -105,7 +105,7 @@ def table_row(changesname, delay, changed_by, closes):
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;res = '&amp;lt;tr class=&amp;quot;%s&amp;quot;&amp;gt;'%((row_number%2) and 'odd' or 'even')
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;res += (3*'&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;%s&amp;lt;/td&amp;gt;')%tuple(map(html_escape,(changesname,delay,changed_by)))
&lt;br&gt;- &amp;nbsp; &amp;nbsp;res += ('&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;%s&amp;lt;/td&amp;gt;' % 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;res += ('&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;%s&amp;lt;/td&amp;gt;' %
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ''.join(map(lambda close: &amp;nbsp;'&amp;lt;a href=&amp;quot;&lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%s&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%s&lt;/a&gt;&amp;quot;&amp;gt;#%s&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;' % (close, close),closes)))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;res += '&amp;lt;/tr&amp;gt;\n'
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;row_number+=1
&lt;br&gt;@@ -169,7 +169,7 @@ def usage (exit_code=0):
&lt;br&gt;&amp;nbsp; &amp;nbsp;-p, --html-path [path] &amp;nbsp; &amp;nbsp;override output directory.
&lt;br&gt;&amp;nbsp; &amp;nbsp;&amp;quot;&amp;quot;&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;sys.exit(exit_code)
&lt;br&gt;- &amp;nbsp; 
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;def init():
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global Cnf, Options, Upload, projectB
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Cnf = utils.get_conf()
&lt;br&gt;@@ -190,7 +190,7 @@ def main():
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;args = init()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if len(args)!=1:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;usage(1)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;+
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;filelist = []
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;for r,d,f &amp;nbsp;in os.walk(args[0]):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;filelist += map (lambda x: os.path.join(r,x),
&lt;br&gt;diff --git a/daklib/database.py b/daklib/database.py
&lt;br&gt;index 1d9f3c0..5c7bd83 100755
&lt;br&gt;--- a/daklib/database.py
&lt;br&gt;+++ b/daklib/database.py
&lt;br&gt;@@ -397,4 +397,3 @@ def get_suites(pkgname, src=False):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sql = &amp;quot;select suite_name from binaries, bin_associations,suite where binaries.id=bin_associations.bin and &amp;nbsp;package='%s' and bin_associations.suite = suite.id&amp;quot;%pkgname
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;q = projectB.query(sql)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return map(lambda x: x[0], q.getresult())
&lt;br&gt;-
&lt;br&gt;-- 
&lt;br&gt;1.5.6.5
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866984&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866984&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-dak-master--whitespace-sanitizing-tp19866984p19866984.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19866326</id>
	<title>[dak/master] move config to config</title>
	<published>2008-10-07T13:02:38Z</published>
	<updated>2008-10-07T13:02:38Z</updated>
	<author>
		<name>Thomas Viehmann</name>
	</author>
	<content type="html">---
&lt;br&gt;&amp;nbsp;config/debian/dak.conf | &amp;nbsp; &amp;nbsp;5 +++++
&lt;br&gt;&amp;nbsp;dak/show_deferred.py &amp;nbsp; | &amp;nbsp; &amp;nbsp;6 ++----
&lt;br&gt;&amp;nbsp;2 files changed, 7 insertions(+), 4 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/config/debian/dak.conf b/config/debian/dak.conf
&lt;br&gt;index 4377530..75ea43e 100644
&lt;br&gt;--- a/config/debian/dak.conf
&lt;br&gt;+++ b/config/debian/dak.conf
&lt;br&gt;@@ -126,6 +126,11 @@ Show-New
&lt;br&gt;&amp;nbsp; &amp;nbsp;HTMLPath &amp;quot;/srv/ftp.debian.org/web/new/&amp;quot;;
&lt;br&gt;&amp;nbsp;}
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+Show-Deferred
&lt;br&gt;+{
&lt;br&gt;+ &amp;nbsp;LinkPath &amp;quot;/srv/ftp.debian.org/web/deferred/&amp;quot;;
&lt;br&gt;+}
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;Import-Users-From-Passwd
&lt;br&gt;&amp;nbsp;{
&lt;br&gt;&amp;nbsp; &amp;nbsp;ValidGID &amp;quot;800&amp;quot;;
&lt;br&gt;diff --git a/dak/show_deferred.py b/dak/show_deferred.py
&lt;br&gt;index 6952922..81c117b 100755
&lt;br&gt;--- a/dak/show_deferred.py
&lt;br&gt;+++ b/dak/show_deferred.py
&lt;br&gt;@@ -176,10 +176,8 @@ def init():
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Arguments = [('h',&amp;quot;help&amp;quot;,&amp;quot;Show-Deferred::Options::Help&amp;quot;),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&amp;quot;p&amp;quot;,&amp;quot;link-path&amp;quot;,&amp;quot;Show-Deferred::LinkPath&amp;quot;,&amp;quot;HasArg&amp;quot;)]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;for i in [&amp;quot;help&amp;quot;]:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not Cnf.has_key(&amp;quot;Show-Deferred::Options::LinkPath&amp;quot;):
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Cnf[&amp;quot;Show-Deferred::Options::LinkPath&amp;quot;] = &amp;quot;/org/ftp.debian.org/web/deferred/&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if not Cnf.has_key(&amp;quot;Show-Deferred::Options::%s&amp;quot; % (i)):
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Cnf[&amp;quot;Show-Deferred::Options::%s&amp;quot; % (i)] = &amp;quot;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not Cnf.has_key(&amp;quot;Show-Deferred::Options::%s&amp;quot; % (i)):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Cnf[&amp;quot;Show-Deferred::Options::%s&amp;quot; % (i)] = &amp;quot;&amp;quot;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;args = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Options = Cnf.SubTree(&amp;quot;Show-Deferred::Options&amp;quot;)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if Options[&amp;quot;help&amp;quot;]:
&lt;br&gt;-- 
&lt;br&gt;1.5.6.5
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866326&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866326&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-dak-master--move-config-to-config-tp19866326p19866326.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19866330</id>
	<title>[dak/master] message massage</title>
	<published>2008-10-07T12:52:41Z</published>
	<updated>2008-10-07T12:52:41Z</updated>
	<author>
		<name>Thomas Viehmann</name>
	</author>
	<content type="html">---
&lt;br&gt;&amp;nbsp;dak/show_deferred.py | &amp;nbsp; &amp;nbsp;2 +-
&lt;br&gt;&amp;nbsp;1 files changed, 1 insertions(+), 1 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/dak/show_deferred.py b/dak/show_deferred.py
&lt;br&gt;index 70468b5..6952922 100755
&lt;br&gt;--- a/dak/show_deferred.py
&lt;br&gt;+++ b/dak/show_deferred.py
&lt;br&gt;@@ -98,7 +98,7 @@ def table_header():
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return res
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;def table_footer():
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return '&amp;lt;/table&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;p&amp;gt;non-NEW uploads are &amp;lt;a href=&amp;quot;/deferred/&amp;quot;&amp;gt;available&amp;lt;/a&amp;gt;, use &amp;lt;tt&amp;gt;dcut reschedule foo.changes X-day&amp;lt;/tt&amp;gt; to adjust delays.&amp;lt;/p&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;br/&amp;gt;\n'
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return '&amp;lt;/table&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;p&amp;gt;non-NEW uploads are &amp;lt;a href=&amp;quot;/deferred/&amp;quot;&amp;gt;available&amp;lt;/a&amp;gt;, see the &amp;lt;a href=&amp;quot;ftp://ftp-master.debian.org/pub/UploadQueue/README&amp;quot;&amp;gt;UploadQueue-README&amp;lt;/a&amp;gt; for more information.&amp;lt;/p&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;br/&amp;gt;\n'
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;def table_row(changesname, delay, changed_by, closes):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global row_number
&lt;br&gt;-- 
&lt;br&gt;1.5.6.5
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866330&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866330&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-dak-master--message-massage-tp19866330p19866330.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19865723</id>
	<title>[dak/master] logfiles</title>
	<published>2008-10-07T12:41:33Z</published>
	<updated>2008-10-07T12:41:33Z</updated>
	<author>
		<name>Joerg Jaspert</name>
	</author>
	<content type="html">only keep 60 days of cron logfiles on disc
&lt;br&gt;&lt;br&gt;Signed-off-by: Joerg Jaspert &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19865723&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joerg@...&lt;/a&gt;&amp;gt;
&lt;br&gt;---
&lt;br&gt;&amp;nbsp;ChangeLog &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp;5 +++++
&lt;br&gt;&amp;nbsp;config/debian/cron.dinstall | &amp;nbsp; 15 +++++++++++++++
&lt;br&gt;&amp;nbsp;2 files changed, 20 insertions(+), 0 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/ChangeLog b/ChangeLog
&lt;br&gt;index 288c770..519c6c9 100644
&lt;br&gt;--- a/ChangeLog
&lt;br&gt;+++ b/ChangeLog
&lt;br&gt;@@ -1,3 +1,8 @@
&lt;br&gt;+2008-10-07 &amp;nbsp;Joerg Jaspert &amp;nbsp;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19865723&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joerg@...&lt;/a&gt;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	* config/debian/cron.dinstall: Only keep the last 60 days of
&lt;br&gt;+	dinstall logfiles on disc.
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;2008-09-23 &amp;nbsp;Joerg Jaspert &amp;nbsp;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19865723&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joerg@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;	* config/debian/dak.conf: Add the validtime fields, set to 7
&lt;br&gt;diff --git a/config/debian/cron.dinstall b/config/debian/cron.dinstall
&lt;br&gt;index de44fe5..cb326fc 100755
&lt;br&gt;--- a/config/debian/cron.dinstall
&lt;br&gt;+++ b/config/debian/cron.dinstall
&lt;br&gt;@@ -338,6 +338,21 @@ echo &amp;quot;Compress old psql backups&amp;quot;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;ts
&lt;br&gt;&amp;nbsp;
&lt;br&gt;+echo &amp;quot;Removing old dinstall logfiles&amp;quot;
&lt;br&gt;+(cd $logdir
&lt;br&gt;+	find -maxdepth 1 -mindepth 1 -type f -name 'dinstall_*' -mtime +60 | 
&lt;br&gt;+	while read dumpname; do
&lt;br&gt;+		echo &amp;quot;Removing $dumpname&amp;quot;
&lt;br&gt;+		rm -f &amp;quot;$dumpname&amp;quot;
&lt;br&gt;+	done
&lt;br&gt;+
&lt;br&gt;+	find -maxdepth 1 -mindepth 1 -type f -name 'weekly_*' -mtime +60 | 
&lt;br&gt;+	while read dumpname; do
&lt;br&gt;+		echo &amp;quot;Removing $dumpname&amp;quot;
&lt;br&gt;+		rm -f &amp;quot;$dumpname&amp;quot;
&lt;br&gt;+	done
&lt;br&gt;+)
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;echo &amp;quot;Finally, all is done, sending mail and compressing logfile&amp;quot;
&lt;br&gt;&amp;nbsp;exec &amp;gt; /dev/null 2&amp;gt;&amp;1
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-- 
&lt;br&gt;1.5.6.5
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19865723&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19865723&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-dak-master--logfiles-tp19865723p19865723.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19866321</id>
	<title>[dak/master] move show-deferred to dak</title>
	<published>2008-10-07T12:41:26Z</published>
	<updated>2008-10-07T12:41:26Z</updated>
	<author>
		<name>Thomas Viehmann</name>
	</author>
	<content type="html">---
&lt;br&gt;&amp;nbsp;ChangeLog &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp;1 +
&lt;br&gt;&amp;nbsp;dak/dak.py &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp;2 ++
&lt;br&gt;&amp;nbsp;dak/show_deferred.py | &amp;nbsp; 40 +++++++++++++++++++++-------------------
&lt;br&gt;&amp;nbsp;3 files changed, 24 insertions(+), 19 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/ChangeLog b/ChangeLog
&lt;br&gt;index 3e1620d..2ec5c51 100644
&lt;br&gt;--- a/ChangeLog
&lt;br&gt;+++ b/ChangeLog
&lt;br&gt;@@ -1,6 +1,7 @@
&lt;br&gt;&amp;nbsp;2008-10-05 &amp;nbsp;Thomas Viehmann &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866321&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tv@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* daklib/database.py: added get_suites
&lt;br&gt;+	* dak/dak.py, dak/show_deferred.py: add show-deferred to dak.
&lt;br&gt;&amp;nbsp;	
&lt;br&gt;&amp;nbsp;2008-09-23 &amp;nbsp;Joerg Jaspert &amp;nbsp;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866321&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joerg@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;diff --git a/dak/dak.py b/dak/dak.py
&lt;br&gt;index 5a986d5..c987c1e 100755
&lt;br&gt;--- a/dak/dak.py
&lt;br&gt;+++ b/dak/dak.py
&lt;br&gt;@@ -88,6 +88,8 @@ def init():
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;Produce a report on NEW and BYHAND packages&amp;quot;),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(&amp;quot;show-new&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;Output html for packages in NEW&amp;quot;),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(&amp;quot;show-deferred&amp;quot;,
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;Output html and symlinks for packages in DEFERRED&amp;quot;),
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(&amp;quot;rm&amp;quot;,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;Remove packages from suites&amp;quot;),
&lt;br&gt;diff --git a/dak/show_deferred.py b/dak/show_deferred.py
&lt;br&gt;index 6c81179..70468b5 100755
&lt;br&gt;--- a/dak/show_deferred.py
&lt;br&gt;+++ b/dak/show_deferred.py
&lt;br&gt;@@ -142,8 +142,9 @@ def get_upload_data(changesfn):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;qfn = os.path.join(os.path.dirname(changesfn),afn)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if os.path.islink(lfn):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.unlink(lfn)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.symlink(qfn,lfn)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.chmod(qfn, 0644)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if os.path.exists(qfn):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.symlink(qfn,lfn)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.chmod(qfn, 0644)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return (delaydays*24*60*60+remainingtime, changesname, delay, uploader, achanges.get('closes').split())
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;def list_uploads(filelist):
&lt;br&gt;@@ -187,21 +188,22 @@ def init():
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;projectB = Upload.projectB
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return args
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-args = init()
&lt;br&gt;-if len(args)!=1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp;usage(1)
&lt;br&gt;+def main():
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;args = init()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if len(args)!=1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;usage(1)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;-filelist = []
&lt;br&gt;-for r,d,f &amp;nbsp;in os.walk(args[0]):
&lt;br&gt;- &amp;nbsp; &amp;nbsp;filelist += map (lambda x: os.path.join(r,x),
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; filter(lambda x: x.endswith('.changes'), f))
&lt;br&gt;-list_uploads(filelist)
&lt;br&gt;-
&lt;br&gt;-if Cnf.has_key(&amp;quot;Show-Deferred::LinkPath&amp;quot;):
&lt;br&gt;- &amp;nbsp; &amp;nbsp;# remove dead links
&lt;br&gt;- &amp;nbsp; &amp;nbsp;for r,d,f in os.walk(Cnf[&amp;quot;Show-Deferred::LinkPath&amp;quot;]):
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for af in f:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;af = os.path.join(r,af)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not os.path.exists(af):
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; sys.stderr, &amp;quot;obsolete&amp;quot;,af
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.unlink(af)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;filelist = []
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for r,d,f &amp;nbsp;in os.walk(args[0]):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;filelist += map (lambda x: os.path.join(r,x),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; filter(lambda x: x.endswith('.changes'), f))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;list_uploads(filelist)
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if Cnf.has_key(&amp;quot;Show-Deferred::LinkPath&amp;quot;):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# remove dead links
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for r,d,f in os.walk(Cnf[&amp;quot;Show-Deferred::LinkPath&amp;quot;]):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for af in f:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;af = os.path.join(r,af)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not os.path.exists(af):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; sys.stderr, &amp;quot;obsolete&amp;quot;,af
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.unlink(af)
&lt;br&gt;-- 
&lt;br&gt;1.5.6.5
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866321&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866321&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-dak-master--move-show-deferred-to-dak-tp19866321p19866321.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19866333</id>
	<title>[dak/master] move show-deferred to dak</title>
	<published>2008-10-07T12:41:18Z</published>
	<updated>2008-10-07T12:41:18Z</updated>
	<author>
		<name>Thomas Viehmann</name>
	</author>
	<content type="html">---
&lt;br&gt;&amp;nbsp;dak/show_deferred.py &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | &amp;nbsp;207 +++++++++++++++++++++++++++++++++
&lt;br&gt;&amp;nbsp;tools/debianqueued-0.9/show-deferred | &amp;nbsp;208 ----------------------------------
&lt;br&gt;&amp;nbsp;2 files changed, 207 insertions(+), 208 deletions(-)
&lt;br&gt;&amp;nbsp;create mode 100755 dak/show_deferred.py
&lt;br&gt;&amp;nbsp;delete mode 100755 tools/debianqueued-0.9/show-deferred
&lt;br&gt;&lt;br&gt;diff --git a/dak/show_deferred.py b/dak/show_deferred.py
&lt;br&gt;new file mode 100755
&lt;br&gt;index 0000000..6c81179
&lt;br&gt;--- /dev/null
&lt;br&gt;+++ b/dak/show_deferred.py
&lt;br&gt;@@ -0,0 +1,207 @@
&lt;br&gt;+#!/usr/bin/env python
&lt;br&gt;+
&lt;br&gt;+# based on queue-report
&lt;br&gt;+# &amp;nbsp; &amp;nbsp;Copyright (C) 2001, 2002, 2003, 2005, 2006 &amp;nbsp;James Troup &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866333&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;james@...&lt;/a&gt;&amp;gt;
&lt;br&gt;+# Copyright (C) 2008 Thomas Viehmann &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866333&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tv@...&lt;/a&gt;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+# This program is free software; you can redistribute it and/or modify
&lt;br&gt;+# it under the terms of the GNU General Public License as published by
&lt;br&gt;+# the Free Software Foundation; either version 2 of the License, or
&lt;br&gt;+# (at your option) any later version.
&lt;br&gt;+
&lt;br&gt;+# This program is distributed in the hope that it will be useful,
&lt;br&gt;+# but WITHOUT ANY WARRANTY; without even the implied warranty of
&lt;br&gt;+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. &amp;nbsp;See the
&lt;br&gt;+# GNU General Public License for more details.
&lt;br&gt;+
&lt;br&gt;+# You should have received a copy of the GNU General Public License
&lt;br&gt;+# along with this program; if not, write to the Free Software
&lt;br&gt;+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA &amp;nbsp;02111-1307 &amp;nbsp;USA
&lt;br&gt;+
&lt;br&gt;+################################################################################
&lt;br&gt;+
&lt;br&gt;+import sys, os, re, time
&lt;br&gt;+import apt_pkg
&lt;br&gt;+from debian_bundle import deb822
&lt;br&gt;+from daklib import database
&lt;br&gt;+from daklib import queue
&lt;br&gt;+from daklib import utils
&lt;br&gt;+
&lt;br&gt;+################################################################################
&lt;br&gt;+
&lt;br&gt;+row_number = 1
&lt;br&gt;+
&lt;br&gt;+html_escaping = {'&amp;quot;':'&amp;quot;', '&amp;':'&amp;amp;', '&amp;lt;':'&amp;lt;', '&amp;gt;':'&amp;gt;'}
&lt;br&gt;+re_html_escaping = re.compile('|'.join(map(re.escape, html_escaping.keys())))
&lt;br&gt;+def html_escape(s):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return re_html_escaping.sub(lambda x: html_escaping.get(x.group(0)), s)
&lt;br&gt;+
&lt;br&gt;+################################################################################
&lt;br&gt;+
&lt;br&gt;+def header():
&lt;br&gt;+ &amp;nbsp;return &amp;nbsp;&amp;quot;&amp;quot;&amp;quot;&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01 Transitional//EN&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;title&amp;gt;Deferred uploads to Debian&amp;lt;/title&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;link type=&amp;quot;text/css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;style.css&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;&lt;a href=&quot;http://www.debian.org/favicon.ico&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/favicon.ico&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/head&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;body&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;&lt;a href=&quot;http://www.debian.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;lt;img src=&amp;quot;&lt;a href=&quot;http://www.debian.org/logos/openlogo-nd-50.png&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/logos/openlogo-nd-50.png&lt;/a&gt;&amp;quot; border=&amp;quot;0&amp;quot; hspace=&amp;quot;0&amp;quot; vspace=&amp;quot;0&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;&lt;a href=&quot;http://www.debian.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;lt;img src=&amp;quot;&lt;a href=&quot;http://www.debian.org/Pics/debian.png&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/Pics/debian.png&lt;/a&gt;&amp;quot; border=&amp;quot;0&amp;quot; hspace=&amp;quot;0&amp;quot; vspace=&amp;quot;0&amp;quot; alt=&amp;quot;Debian Project&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/div&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;br /&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;table class=&amp;quot;reddy&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;reddy&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;img src=&amp;quot;&lt;a href=&quot;http://www.debian.org/Pics/red-upperleft.png&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/Pics/red-upperleft.png&lt;/a&gt;&amp;quot; align=&amp;quot;left&amp;quot; border=&amp;quot;0&amp;quot; hspace=&amp;quot;0&amp;quot; vspace=&amp;quot;0&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; alt=&amp;quot;&amp;quot; width=&amp;quot;15&amp;quot; height=&amp;quot;16&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td rowspan=&amp;quot;2&amp;quot; class=&amp;quot;reddy&amp;quot;&amp;gt;Deferred uploads to Debian&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;reddy&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;img src=&amp;quot;&lt;a href=&quot;http://www.debian.org/Pics/red-upperright.png&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/Pics/red-upperright.png&lt;/a&gt;&amp;quot; align=&amp;quot;right&amp;quot; border=&amp;quot;0&amp;quot; hspace=&amp;quot;0&amp;quot; vspace=&amp;quot;0&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; alt=&amp;quot;&amp;quot; width=&amp;quot;16&amp;quot; height=&amp;quot;16&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;reddy&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;img src=&amp;quot;&lt;a href=&quot;http://www.debian.org/Pics/red-lowerleft.png&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/Pics/red-lowerleft.png&lt;/a&gt;&amp;quot; align=&amp;quot;left&amp;quot; border=&amp;quot;0&amp;quot; hspace=&amp;quot;0&amp;quot; vspace=&amp;quot;0&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; alt=&amp;quot;&amp;quot; width=&amp;quot;16&amp;quot; height=&amp;quot;16&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;reddy&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;img src=&amp;quot;&lt;a href=&quot;http://www.debian.org/Pics/red-lowerright.png&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/Pics/red-lowerright.png&lt;/a&gt;&amp;quot; align=&amp;quot;right&amp;quot; border=&amp;quot;0&amp;quot; hspace=&amp;quot;0&amp;quot; vspace=&amp;quot;0&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; alt=&amp;quot;&amp;quot; width=&amp;quot;15&amp;quot; height=&amp;quot;16&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/table&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;quot;&amp;quot;
&lt;br&gt;+
&lt;br&gt;+def footer():
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;res = &amp;quot;&amp;lt;p class=\&amp;quot;validate\&amp;quot;&amp;gt;Timestamp: %s (UTC)&amp;lt;/p&amp;gt;&amp;quot; % (time.strftime(&amp;quot;%d.%m.%Y / %H:%M:%S&amp;quot;, time.gmtime()))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;res += &amp;quot;&amp;quot;&amp;quot;&amp;lt;a href=&amp;quot;&lt;a href=&quot;http://validator.w3.org/check?uri=referer&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://validator.w3.org/check?uri=referer&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;img border=&amp;quot;0&amp;quot; src=&amp;quot;&lt;a href=&quot;http://www.w3.org/Icons/valid-html401&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/Icons/valid-html401&lt;/a&gt;&amp;quot; alt=&amp;quot;Valid HTML 4.01!&amp;quot; height=&amp;quot;31&amp;quot; width=&amp;quot;88&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;&lt;a href=&quot;http://jigsaw.w3.org/css-validator/check/referer&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jigsaw.w3.org/css-validator/check/referer&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;lt;img border=&amp;quot;0&amp;quot; src=&amp;quot;&lt;a href=&quot;http://jigsaw.w3.org/css-validator/images/vcss&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jigsaw.w3.org/css-validator/images/vcss&lt;/a&gt;&amp;quot; alt=&amp;quot;Valid CSS!&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; height=&amp;quot;31&amp;quot; width=&amp;quot;88&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;&amp;quot;&amp;quot;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;res += &amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return res
&lt;br&gt;+
&lt;br&gt;+def table_header():
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return &amp;quot;&amp;quot;&amp;quot;&amp;lt;h1&amp;gt;Deferred uploads&amp;lt;/h1&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;center&amp;gt;&amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th align=&amp;quot;center&amp;quot;&amp;gt;Change&amp;lt;/th&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th align=&amp;quot;center&amp;quot;&amp;gt;Time remaining&amp;lt;/th&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th align=&amp;quot;center&amp;quot;&amp;gt;Uploader&amp;lt;/th&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th align=&amp;quot;center&amp;quot;&amp;gt;Closes&amp;lt;/th&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;quot;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return res
&lt;br&gt;+
&lt;br&gt;+def table_footer():
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return '&amp;lt;/table&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;p&amp;gt;non-NEW uploads are &amp;lt;a href=&amp;quot;/deferred/&amp;quot;&amp;gt;available&amp;lt;/a&amp;gt;, use &amp;lt;tt&amp;gt;dcut reschedule foo.changes X-day&amp;lt;/tt&amp;gt; to adjust delays.&amp;lt;/p&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;br/&amp;gt;\n'
&lt;br&gt;+
&lt;br&gt;+def table_row(changesname, delay, changed_by, closes):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;global row_number
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;res = '&amp;lt;tr class=&amp;quot;%s&amp;quot;&amp;gt;'%((row_number%2) and 'odd' or 'even')
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;res += (3*'&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;%s&amp;lt;/td&amp;gt;')%tuple(map(html_escape,(changesname,delay,changed_by)))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;res += ('&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;%s&amp;lt;/td&amp;gt;' % 
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ''.join(map(lambda close: &amp;nbsp;'&amp;lt;a href=&amp;quot;&lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%s&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%s&lt;/a&gt;&amp;quot;&amp;gt;#%s&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;' % (close, close),closes)))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;res += '&amp;lt;/tr&amp;gt;\n'
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;row_number+=1
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return res
&lt;br&gt;+
&lt;br&gt;+def get_upload_data(changesfn):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;achanges = deb822.Changes(file(changesfn))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;changesname = os.path.basename(changesfn)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;delay = os.path.basename(os.path.dirname(changesfn))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;m = re.match(r'([0-9]+)-day', delay)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if m:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;delaydays = int(m.group(1))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;remainingtime = (delaydays&amp;gt;0)*max(0,24*60*60+os.stat(changesfn).st_mtime-time.time())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;delay = &amp;quot;%d days %02d:%02d&amp;quot; %(max(delaydays-1,0), int(remainingtime/3600),int(remainingtime/60)%60)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;else:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;remainingtime = 0
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;uploader = achanges.get('changed-by')
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;uploader = re.sub(r'^\s*(\S.*)\s+&amp;lt;.*&amp;gt;',r'\1',uploader)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if Cnf.has_key(&amp;quot;Show-Deferred::LinkPath&amp;quot;):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;isnew = 0
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;suites = database.get_suites(achanges['source'],src=1)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if 'unstable' not in suites and 'experimental' not in suites:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;isnew = 1
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for b in achanges['binary'].split():
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;suites = database.get_suites(b)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if 'unstable' not in suites and 'experimental' not in suites:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;isnew = 1
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not isnew:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# we don't link .changes because we don't want other people to
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# upload it with the existing signature.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for afn in map(lambda x: x['name'],achanges['files']):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lfn = os.path.join(Cnf[&amp;quot;Show-Deferred::LinkPath&amp;quot;],afn)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;qfn = os.path.join(os.path.dirname(changesfn),afn)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if os.path.islink(lfn):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.unlink(lfn)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.symlink(qfn,lfn)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.chmod(qfn, 0644)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return (delaydays*24*60*60+remainingtime, changesname, delay, uploader, achanges.get('closes').split())
&lt;br&gt;+
&lt;br&gt;+def list_uploads(filelist):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;uploads = map(get_upload_data, filelist)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;uploads.sort()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;print header()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if uploads:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print table_header()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print ''.join(map(lambda x: table_row(*x[1:]), uploads))
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print table_footer()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;else:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print '&amp;lt;h1&amp;gt;Currently no deferred uploads to Debian&amp;lt;/h1&amp;gt;'
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;print footer()
&lt;br&gt;+
&lt;br&gt;+def usage (exit_code=0):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if exit_code:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f = sys.stderr
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;else:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f = sys.stdout
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; f, &amp;quot;&amp;quot;&amp;quot;Usage: dak show-deferred /path/to/DEFERRED
&lt;br&gt;+ &amp;nbsp;-h, --help &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;show this help and exit.
&lt;br&gt;+ &amp;nbsp;-p, --html-path [path] &amp;nbsp; &amp;nbsp;override output directory.
&lt;br&gt;+ &amp;nbsp;&amp;quot;&amp;quot;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;sys.exit(exit_code)
&lt;br&gt;+ &amp;nbsp; 
&lt;br&gt;+def init():
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;global Cnf, Options, Upload, projectB
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Cnf = utils.get_conf()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Arguments = [('h',&amp;quot;help&amp;quot;,&amp;quot;Show-Deferred::Options::Help&amp;quot;),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&amp;quot;p&amp;quot;,&amp;quot;link-path&amp;quot;,&amp;quot;Show-Deferred::LinkPath&amp;quot;,&amp;quot;HasArg&amp;quot;)]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for i in [&amp;quot;help&amp;quot;]:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not Cnf.has_key(&amp;quot;Show-Deferred::Options::LinkPath&amp;quot;):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Cnf[&amp;quot;Show-Deferred::Options::LinkPath&amp;quot;] = &amp;quot;/org/ftp.debian.org/web/deferred/&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if not Cnf.has_key(&amp;quot;Show-Deferred::Options::%s&amp;quot; % (i)):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Cnf[&amp;quot;Show-Deferred::Options::%s&amp;quot; % (i)] = &amp;quot;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;args = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Options = Cnf.SubTree(&amp;quot;Show-Deferred::Options&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if Options[&amp;quot;help&amp;quot;]:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;usage()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Upload = queue.Upload(Cnf)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;projectB = Upload.projectB
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return args
&lt;br&gt;+
&lt;br&gt;+args = init()
&lt;br&gt;+if len(args)!=1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;usage(1)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;
&lt;br&gt;+filelist = []
&lt;br&gt;+for r,d,f &amp;nbsp;in os.walk(args[0]):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;filelist += map (lambda x: os.path.join(r,x),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; filter(lambda x: x.endswith('.changes'), f))
&lt;br&gt;+list_uploads(filelist)
&lt;br&gt;+
&lt;br&gt;+if Cnf.has_key(&amp;quot;Show-Deferred::LinkPath&amp;quot;):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;# remove dead links
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for r,d,f in os.walk(Cnf[&amp;quot;Show-Deferred::LinkPath&amp;quot;]):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for af in f:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;af = os.path.join(r,af)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not os.path.exists(af):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; sys.stderr, &amp;quot;obsolete&amp;quot;,af
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.unlink(af)
&lt;br&gt;diff --git a/tools/debianqueued-0.9/show-deferred b/tools/debianqueued-0.9/show-deferred
&lt;br&gt;deleted file mode 100755
&lt;br&gt;index ab3fe5a..0000000
&lt;br&gt;--- a/tools/debianqueued-0.9/show-deferred
&lt;br&gt;+++ /dev/null
&lt;br&gt;@@ -1,208 +0,0 @@
&lt;br&gt;-#!/usr/bin/env python
&lt;br&gt;-
&lt;br&gt;-# based on queue-report
&lt;br&gt;-# &amp;nbsp; &amp;nbsp;Copyright (C) 2001, 2002, 2003, 2005, 2006 &amp;nbsp;James Troup &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866333&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;james@...&lt;/a&gt;&amp;gt;
&lt;br&gt;-# Copyright (C) 2008 Thomas Viehmann &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866333&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tv@...&lt;/a&gt;&amp;gt;
&lt;br&gt;-
&lt;br&gt;-# This program is free software; you can redistribute it and/or modify
&lt;br&gt;-# it under the terms of the GNU General Public License as published by
&lt;br&gt;-# the Free Software Foundation; either version 2 of the License, or
&lt;br&gt;-# (at your option) any later version.
&lt;br&gt;-
&lt;br&gt;-# This program is distributed in the hope that it will be useful,
&lt;br&gt;-# but WITHOUT ANY WARRANTY; without even the implied warranty of
&lt;br&gt;-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. &amp;nbsp;See the
&lt;br&gt;-# GNU General Public License for more details.
&lt;br&gt;-
&lt;br&gt;-# You should have received a copy of the GNU General Public License
&lt;br&gt;-# along with this program; if not, write to the Free Software
&lt;br&gt;-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA &amp;nbsp;02111-1307 &amp;nbsp;USA
&lt;br&gt;-
&lt;br&gt;-################################################################################
&lt;br&gt;-
&lt;br&gt;-import sys, os, re, time
&lt;br&gt;-import apt_pkg
&lt;br&gt;-from debian_bundle import deb822
&lt;br&gt;-from daklib import database
&lt;br&gt;-from daklib import queue
&lt;br&gt;-from daklib import utils
&lt;br&gt;-
&lt;br&gt;-################################################################################
&lt;br&gt;-
&lt;br&gt;-row_number = 1
&lt;br&gt;-
&lt;br&gt;-html_escaping = {'&amp;quot;':'&amp;quot;', '&amp;':'&amp;amp;', '&amp;lt;':'&amp;lt;', '&amp;gt;':'&amp;gt;'}
&lt;br&gt;-re_html_escaping = re.compile('|'.join(map(re.escape, html_escaping.keys())))
&lt;br&gt;-def html_escape(s):
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return re_html_escaping.sub(lambda x: html_escaping.get(x.group(0)), s)
&lt;br&gt;-
&lt;br&gt;-################################################################################
&lt;br&gt;-
&lt;br&gt;-def header():
&lt;br&gt;- &amp;nbsp;return &amp;nbsp;&amp;quot;&amp;quot;&amp;quot;&amp;lt;!DOCTYPE HTML PUBLIC &amp;quot;-//W3C//DTD HTML 4.01 Transitional//EN&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;title&amp;gt;Deferred uploads to Debian&amp;lt;/title&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;link type=&amp;quot;text/css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;style.css&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;link rel=&amp;quot;shortcut icon&amp;quot; href=&amp;quot;&lt;a href=&quot;http://www.debian.org/favicon.ico&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/favicon.ico&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/head&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;body&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;&lt;a href=&quot;http://www.debian.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;lt;img src=&amp;quot;&lt;a href=&quot;http://www.debian.org/logos/openlogo-nd-50.png&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/logos/openlogo-nd-50.png&lt;/a&gt;&amp;quot; border=&amp;quot;0&amp;quot; hspace=&amp;quot;0&amp;quot; vspace=&amp;quot;0&amp;quot; alt=&amp;quot;&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;&lt;a href=&quot;http://www.debian.org/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;lt;img src=&amp;quot;&lt;a href=&quot;http://www.debian.org/Pics/debian.png&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/Pics/debian.png&lt;/a&gt;&amp;quot; border=&amp;quot;0&amp;quot; hspace=&amp;quot;0&amp;quot; vspace=&amp;quot;0&amp;quot; alt=&amp;quot;Debian Project&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/div&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;br /&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;table class=&amp;quot;reddy&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;reddy&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;img src=&amp;quot;&lt;a href=&quot;http://www.debian.org/Pics/red-upperleft.png&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/Pics/red-upperleft.png&lt;/a&gt;&amp;quot; align=&amp;quot;left&amp;quot; border=&amp;quot;0&amp;quot; hspace=&amp;quot;0&amp;quot; vspace=&amp;quot;0&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; alt=&amp;quot;&amp;quot; width=&amp;quot;15&amp;quot; height=&amp;quot;16&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td rowspan=&amp;quot;2&amp;quot; class=&amp;quot;reddy&amp;quot;&amp;gt;Deferred uploads to Debian&amp;lt;/td&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;reddy&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;img src=&amp;quot;&lt;a href=&quot;http://www.debian.org/Pics/red-upperright.png&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/Pics/red-upperright.png&lt;/a&gt;&amp;quot; align=&amp;quot;right&amp;quot; border=&amp;quot;0&amp;quot; hspace=&amp;quot;0&amp;quot; vspace=&amp;quot;0&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; alt=&amp;quot;&amp;quot; width=&amp;quot;16&amp;quot; height=&amp;quot;16&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;reddy&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;img src=&amp;quot;&lt;a href=&quot;http://www.debian.org/Pics/red-lowerleft.png&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/Pics/red-lowerleft.png&lt;/a&gt;&amp;quot; align=&amp;quot;left&amp;quot; border=&amp;quot;0&amp;quot; hspace=&amp;quot;0&amp;quot; vspace=&amp;quot;0&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; alt=&amp;quot;&amp;quot; width=&amp;quot;16&amp;quot; height=&amp;quot;16&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;td class=&amp;quot;reddy&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;img src=&amp;quot;&lt;a href=&quot;http://www.debian.org/Pics/red-lowerright.png&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.debian.org/Pics/red-lowerright.png&lt;/a&gt;&amp;quot; align=&amp;quot;right&amp;quot; border=&amp;quot;0&amp;quot; hspace=&amp;quot;0&amp;quot; vspace=&amp;quot;0&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; alt=&amp;quot;&amp;quot; width=&amp;quot;15&amp;quot; height=&amp;quot;16&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/table&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;quot;&amp;quot;
&lt;br&gt;-
&lt;br&gt;-def footer():
&lt;br&gt;- &amp;nbsp; &amp;nbsp;res = &amp;quot;&amp;lt;p class=\&amp;quot;validate\&amp;quot;&amp;gt;Timestamp: %s (UTC)&amp;lt;/p&amp;gt;&amp;quot; % (time.strftime(&amp;quot;%d.%m.%Y / %H:%M:%S&amp;quot;, time.gmtime()))
&lt;br&gt;- &amp;nbsp; &amp;nbsp;res += &amp;quot;&amp;quot;&amp;quot;&amp;lt;a href=&amp;quot;&lt;a href=&quot;http://validator.w3.org/check?uri=referer&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://validator.w3.org/check?uri=referer&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;img border=&amp;quot;0&amp;quot; src=&amp;quot;&lt;a href=&quot;http://www.w3.org/Icons/valid-html401&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.w3.org/Icons/valid-html401&lt;/a&gt;&amp;quot; alt=&amp;quot;Valid HTML 4.01!&amp;quot; height=&amp;quot;31&amp;quot; width=&amp;quot;88&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;a href=&amp;quot;&lt;a href=&quot;http://jigsaw.w3.org/css-validator/check/referer&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jigsaw.w3.org/css-validator/check/referer&lt;/a&gt;&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;lt;img border=&amp;quot;0&amp;quot; src=&amp;quot;&lt;a href=&quot;http://jigsaw.w3.org/css-validator/images/vcss&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jigsaw.w3.org/css-validator/images/vcss&lt;/a&gt;&amp;quot; alt=&amp;quot;Valid CSS!&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; height=&amp;quot;31&amp;quot; width=&amp;quot;88&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;&amp;quot;&amp;quot;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;res += &amp;quot;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return res
&lt;br&gt;-
&lt;br&gt;-def table_header():
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return &amp;quot;&amp;quot;&amp;quot;&amp;lt;h1&amp;gt;Deferred uploads&amp;lt;/h1&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;center&amp;gt;&amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;tr&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th align=&amp;quot;center&amp;quot;&amp;gt;Change&amp;lt;/th&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th align=&amp;quot;center&amp;quot;&amp;gt;Time remaining&amp;lt;/th&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th align=&amp;quot;center&amp;quot;&amp;gt;Uploader&amp;lt;/th&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;th align=&amp;quot;center&amp;quot;&amp;gt;Closes&amp;lt;/th&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/tr&amp;gt;
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;&amp;quot;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return res
&lt;br&gt;-
&lt;br&gt;-def table_footer():
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return '&amp;lt;/table&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;p&amp;gt;non-NEW uploads are &amp;lt;a href=&amp;quot;/deferred/&amp;quot;&amp;gt;available&amp;lt;/a&amp;gt;, use &amp;lt;tt&amp;gt;dcut reschedule foo.changes X-day&amp;lt;/tt&amp;gt; to adjust delays.&amp;lt;/p&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;br/&amp;gt;\n'
&lt;br&gt;-
&lt;br&gt;-def table_row(changesname, delay, changed_by, closes):
&lt;br&gt;- &amp;nbsp; &amp;nbsp;global row_number
&lt;br&gt;-
&lt;br&gt;- &amp;nbsp; &amp;nbsp;res = '&amp;lt;tr class=&amp;quot;%s&amp;quot;&amp;gt;'%((row_number%2) and 'odd' or 'even')
&lt;br&gt;- &amp;nbsp; &amp;nbsp;res += (3*'&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;%s&amp;lt;/td&amp;gt;')%tuple(map(html_escape,(changesname,delay,changed_by)))
&lt;br&gt;- &amp;nbsp; &amp;nbsp;res += ('&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;%s&amp;lt;/td&amp;gt;' % 
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ''.join(map(lambda close: &amp;nbsp;'&amp;lt;a href=&amp;quot;&lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%s&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%s&lt;/a&gt;&amp;quot;&amp;gt;#%s&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;' % (close, close),closes)))
&lt;br&gt;- &amp;nbsp; &amp;nbsp;res += '&amp;lt;/tr&amp;gt;\n'
&lt;br&gt;- &amp;nbsp; &amp;nbsp;row_number+=1
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return res
&lt;br&gt;-
&lt;br&gt;-def get_upload_data(changesfn):
&lt;br&gt;- &amp;nbsp; &amp;nbsp;achanges = deb822.Changes(file(changesfn))
&lt;br&gt;- &amp;nbsp; &amp;nbsp;changesname = os.path.basename(changesfn)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;delay = os.path.basename(os.path.dirname(changesfn))
&lt;br&gt;- &amp;nbsp; &amp;nbsp;m = re.match(r'([0-9]+)-day', delay)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if m:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;delaydays = int(m.group(1))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;remainingtime = (delaydays&amp;gt;0)*max(0,24*60*60+os.stat(changesfn).st_mtime-time.time())
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;delay = &amp;quot;%d days %02d:%02d&amp;quot; %(max(delaydays-1,0), int(remainingtime/3600),int(remainingtime/60)%60)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;else:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;remainingtime = 0
&lt;br&gt;- &amp;nbsp; &amp;nbsp;#print dir(achanges)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; sys.stderr, achanges.keys(), achanges['binary']
&lt;br&gt;- &amp;nbsp; &amp;nbsp;uploader = achanges.get('changed-by')
&lt;br&gt;- &amp;nbsp; &amp;nbsp;uploader = re.sub(r'^\s*(\S.*)\s+&amp;lt;.*&amp;gt;',r'\1',uploader)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if Cnf.has_key(&amp;quot;Show-Deferred::LinkPath&amp;quot;):
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;isnew = 0
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;suites = database.get_suites(achanges['source'],src=1)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if 'unstable' not in suites and 'experimental' not in suites:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;isnew = 1
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for b in achanges['binary'].split():
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;suites = database.get_suites(b)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if 'unstable' not in suites and 'experimental' not in suites:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;isnew = 1
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not isnew:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# we don't link .changes because we don't want other people to
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# upload it with the existing signature.
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for afn in map(lambda x: x['name'],achanges['files']):
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lfn = os.path.join(Cnf[&amp;quot;Show-Deferred::LinkPath&amp;quot;],afn)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;qfn = os.path.join(os.path.dirname(changesfn),afn)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if os.path.islink(lfn):
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.unlink(lfn)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.symlink(qfn,lfn)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.chmod(qfn, 0644)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return (delaydays*24*60*60+remainingtime, changesname, delay, uploader, achanges.get('closes').split())
&lt;br&gt;-
&lt;br&gt;-def list_uploads(filelist):
&lt;br&gt;- &amp;nbsp; &amp;nbsp;uploads = map(get_upload_data, filelist)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;uploads.sort()
&lt;br&gt;- &amp;nbsp; &amp;nbsp;print header()
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if uploads:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print table_header()
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print ''.join(map(lambda x: table_row(*x[1:]), uploads))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print table_footer()
&lt;br&gt;- &amp;nbsp; &amp;nbsp;else:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print '&amp;lt;h1&amp;gt;Currently no deferred uploads to Debian&amp;lt;/h1&amp;gt;'
&lt;br&gt;- &amp;nbsp; &amp;nbsp;print footer()
&lt;br&gt;-
&lt;br&gt;-def usage (exit_code=0):
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if exit_code:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f = sys.stderr
&lt;br&gt;- &amp;nbsp; &amp;nbsp;else:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f = sys.stdout
&lt;br&gt;- &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; f, &amp;quot;&amp;quot;&amp;quot;Usage: dak show-deferred /path/to/DEFERRED
&lt;br&gt;- &amp;nbsp;-h, --help &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;show this help and exit.
&lt;br&gt;- &amp;nbsp;-p, --html-path [path] &amp;nbsp; &amp;nbsp;override output directory.
&lt;br&gt;- &amp;nbsp;&amp;quot;&amp;quot;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;sys.exit(exit_code)
&lt;br&gt;- &amp;nbsp; 
&lt;br&gt;-def init():
&lt;br&gt;- &amp;nbsp; &amp;nbsp;global Cnf, Options, Upload, projectB
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Cnf = utils.get_conf()
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Arguments = [('h',&amp;quot;help&amp;quot;,&amp;quot;Show-Deferred::Options::Help&amp;quot;),
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&amp;quot;p&amp;quot;,&amp;quot;link-path&amp;quot;,&amp;quot;Show-Deferred::LinkPath&amp;quot;,&amp;quot;HasArg&amp;quot;)]
&lt;br&gt;- &amp;nbsp; &amp;nbsp;for i in [&amp;quot;help&amp;quot;]:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not Cnf.has_key(&amp;quot;Show-Deferred::Options::LinkPath&amp;quot;):
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Cnf[&amp;quot;Show-Deferred::Options::LinkPath&amp;quot;] = &amp;quot;/org/ftp.debian.org/web/deferred/&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if not Cnf.has_key(&amp;quot;Show-Deferred::Options::%s&amp;quot; % (i)):
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Cnf[&amp;quot;Show-Deferred::Options::%s&amp;quot; % (i)] = &amp;quot;&amp;quot;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;args = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Options = Cnf.SubTree(&amp;quot;Show-Deferred::Options&amp;quot;)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;if Options[&amp;quot;help&amp;quot;]:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;usage()
&lt;br&gt;- &amp;nbsp; &amp;nbsp;Upload = queue.Upload(Cnf)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;projectB = Upload.projectB
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return args
&lt;br&gt;-
&lt;br&gt;-args = init()
&lt;br&gt;-if len(args)!=1:
&lt;br&gt;- &amp;nbsp; &amp;nbsp;usage(1)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;
&lt;br&gt;-filelist = []
&lt;br&gt;-for r,d,f &amp;nbsp;in os.walk(args[0]):
&lt;br&gt;- &amp;nbsp; &amp;nbsp;filelist += map (lambda x: os.path.join(r,x),
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; filter(lambda x: x.endswith('.changes'), f))
&lt;br&gt;-list_uploads(filelist)
&lt;br&gt;-
&lt;br&gt;-if Cnf.has_key(&amp;quot;Show-Deferred::LinkPath&amp;quot;):
&lt;br&gt;- &amp;nbsp; &amp;nbsp;# remove dead links
&lt;br&gt;- &amp;nbsp; &amp;nbsp;for r,d,f in os.walk(Cnf[&amp;quot;Show-Deferred::LinkPath&amp;quot;]):
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for af in f:
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;af = os.path.join(r,af)
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not os.path.exists(af):
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; sys.stderr, &amp;quot;obsolete&amp;quot;,af
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.unlink(af)
&lt;br&gt;-- 
&lt;br&gt;1.5.6.5
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866333&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866333&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-dak-master--move-show-deferred-to-dak-tp19866333p19866333.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19866334</id>
	<title>[dak/master] implement public access to deferred</title>
	<published>2008-10-06T13:41:01Z</published>
	<updated>2008-10-06T13:41:01Z</updated>
	<author>
		<name>Thomas Viehmann</name>
	</author>
	<content type="html">---
&lt;br&gt;&amp;nbsp;ChangeLog &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| &amp;nbsp; &amp;nbsp;4 ++
&lt;br&gt;&amp;nbsp;daklib/database.py &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp;9 ++++
&lt;br&gt;&amp;nbsp;tools/debianqueued-0.9/ChangeLog &amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp;6 ++-
&lt;br&gt;&amp;nbsp;tools/debianqueued-0.9/show-deferred | &amp;nbsp; 74 ++++++++++++++++++++++++++++++---
&lt;br&gt;&amp;nbsp;4 files changed, 85 insertions(+), 8 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/ChangeLog b/ChangeLog
&lt;br&gt;index 288c770..3e1620d 100644
&lt;br&gt;--- a/ChangeLog
&lt;br&gt;+++ b/ChangeLog
&lt;br&gt;@@ -1,3 +1,7 @@
&lt;br&gt;+2008-10-05 &amp;nbsp;Thomas Viehmann &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866334&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tv@...&lt;/a&gt;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* daklib/database.py: added get_suites
&lt;br&gt;+	
&lt;br&gt;&amp;nbsp;2008-09-23 &amp;nbsp;Joerg Jaspert &amp;nbsp;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866334&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joerg@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;	* config/debian/dak.conf: Add the validtime fields, set to 7
&lt;br&gt;diff --git a/daklib/database.py b/daklib/database.py
&lt;br&gt;index 9185d0a..1d9f3c0 100755
&lt;br&gt;--- a/daklib/database.py
&lt;br&gt;+++ b/daklib/database.py
&lt;br&gt;@@ -389,3 +389,12 @@ def get_maintainer (maintainer_id):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return maintainer_cache[maintainer_id]
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;################################################################################
&lt;br&gt;+
&lt;br&gt;+def get_suites(pkgname, src=False):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if src:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sql = &amp;quot;select suite_name from source, src_associations,suite where source.id=src_associations.source and source.source='%s' and src_associations.suite = suite.id&amp;quot;%pkgname
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;else:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sql = &amp;quot;select suite_name from binaries, bin_associations,suite where binaries.id=bin_associations.bin and &amp;nbsp;package='%s' and bin_associations.suite = suite.id&amp;quot;%pkgname
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;q = projectB.query(sql)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return map(lambda x: x[0], q.getresult())
&lt;br&gt;+
&lt;br&gt;diff --git a/tools/debianqueued-0.9/ChangeLog b/tools/debianqueued-0.9/ChangeLog
&lt;br&gt;index cffd598..42e62ea 100644
&lt;br&gt;--- a/tools/debianqueued-0.9/ChangeLog
&lt;br&gt;+++ b/tools/debianqueued-0.9/ChangeLog
&lt;br&gt;@@ -1,4 +1,8 @@
&lt;br&gt;-2008-09-20 &amp;nbsp;Thomas Viehmann &amp;nbsp;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866334&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tv@...&lt;/a&gt;&amp;gt;
&lt;br&gt;+2008-10-05 &amp;nbsp;Thomas Viehmann &amp;nbsp;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866334&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tv@...&lt;/a&gt;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	* show-deferred: make non-new uploads in deferred accessible
&lt;br&gt;+
&lt;br&gt;+2008-09-22 &amp;nbsp;Thomas Viehmann &amp;nbsp;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866334&amp;i=4&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tv@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;	* show-deferred: minor fixes
&lt;br&gt;&amp;nbsp;
&lt;br&gt;diff --git a/tools/debianqueued-0.9/show-deferred b/tools/debianqueued-0.9/show-deferred
&lt;br&gt;index fb5af52..ab3fe5a 100755
&lt;br&gt;--- a/tools/debianqueued-0.9/show-deferred
&lt;br&gt;+++ b/tools/debianqueued-0.9/show-deferred
&lt;br&gt;@@ -21,7 +21,11 @@
&lt;br&gt;&amp;nbsp;################################################################################
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;import sys, os, re, time
&lt;br&gt;+import apt_pkg
&lt;br&gt;&amp;nbsp;from debian_bundle import deb822
&lt;br&gt;+from daklib import database
&lt;br&gt;+from daklib import queue
&lt;br&gt;+from daklib import utils
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;################################################################################
&lt;br&gt;&amp;nbsp;
&lt;br&gt;@@ -94,7 +98,7 @@ def table_header():
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return res
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;def table_footer():
&lt;br&gt;- &amp;nbsp; &amp;nbsp;return '&amp;lt;/table&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;br&amp;gt;\n'
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return '&amp;lt;/table&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;p&amp;gt;non-NEW uploads are &amp;lt;a href=&amp;quot;/deferred/&amp;quot;&amp;gt;available&amp;lt;/a&amp;gt;, use &amp;lt;tt&amp;gt;dcut reschedule foo.changes X-day&amp;lt;/tt&amp;gt; to adjust delays.&amp;lt;/p&amp;gt;&amp;lt;/center&amp;gt;&amp;lt;br/&amp;gt;\n'
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;def table_row(changesname, delay, changed_by, closes):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global row_number
&lt;br&gt;@@ -119,9 +123,28 @@ def get_upload_data(changesfn):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;else:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;remainingtime = 0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;#print dir(achanges)
&lt;br&gt;- &amp;nbsp; &amp;nbsp;#print achanges.keys()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; sys.stderr, achanges.keys(), achanges['binary']
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;uploader = achanges.get('changed-by')
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;uploader = re.sub(r'^\s*(\S.*)\s+&amp;lt;.*&amp;gt;',r'\1',uploader)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if Cnf.has_key(&amp;quot;Show-Deferred::LinkPath&amp;quot;):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;isnew = 0
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;suites = database.get_suites(achanges['source'],src=1)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if 'unstable' not in suites and 'experimental' not in suites:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;isnew = 1
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for b in achanges['binary'].split():
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;suites = database.get_suites(b)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if 'unstable' not in suites and 'experimental' not in suites:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;isnew = 1
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not isnew:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# we don't link .changes because we don't want other people to
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# upload it with the existing signature.
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for afn in map(lambda x: x['name'],achanges['files']):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;lfn = os.path.join(Cnf[&amp;quot;Show-Deferred::LinkPath&amp;quot;],afn)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;qfn = os.path.join(os.path.dirname(changesfn),afn)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if os.path.islink(lfn):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.unlink(lfn)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.symlink(qfn,lfn)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.chmod(qfn, 0644)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return (delaydays*24*60*60+remainingtime, changesname, delay, uploader, achanges.get('closes').split())
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;def list_uploads(filelist):
&lt;br&gt;@@ -136,13 +159,50 @@ def list_uploads(filelist):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print '&amp;lt;h1&amp;gt;Currently no deferred uploads to Debian&amp;lt;/h1&amp;gt;'
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;print footer()
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-if len(sys.argv)!=2:
&lt;br&gt;- &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; sys.stderr, &amp;quot;&amp;quot;&amp;quot;Error! Invoke %s /path/to/DEFERRED&amp;quot;&amp;quot;&amp;quot;%sys.argv[0]
&lt;br&gt;- &amp;nbsp; &amp;nbsp;sys.exit(1)
&lt;br&gt;+def usage (exit_code=0):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if exit_code:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f = sys.stderr
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;else:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;f = sys.stdout
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; f, &amp;quot;&amp;quot;&amp;quot;Usage: dak show-deferred /path/to/DEFERRED
&lt;br&gt;+ &amp;nbsp;-h, --help &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;show this help and exit.
&lt;br&gt;+ &amp;nbsp;-p, --html-path [path] &amp;nbsp; &amp;nbsp;override output directory.
&lt;br&gt;+ &amp;nbsp;&amp;quot;&amp;quot;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;sys.exit(exit_code)
&lt;br&gt;+ &amp;nbsp; 
&lt;br&gt;+def init():
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;global Cnf, Options, Upload, projectB
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Cnf = utils.get_conf()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Arguments = [('h',&amp;quot;help&amp;quot;,&amp;quot;Show-Deferred::Options::Help&amp;quot;),
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; (&amp;quot;p&amp;quot;,&amp;quot;link-path&amp;quot;,&amp;quot;Show-Deferred::LinkPath&amp;quot;,&amp;quot;HasArg&amp;quot;)]
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for i in [&amp;quot;help&amp;quot;]:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not Cnf.has_key(&amp;quot;Show-Deferred::Options::LinkPath&amp;quot;):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Cnf[&amp;quot;Show-Deferred::Options::LinkPath&amp;quot;] = &amp;quot;/org/ftp.debian.org/web/deferred/&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if not Cnf.has_key(&amp;quot;Show-Deferred::Options::%s&amp;quot; % (i)):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Cnf[&amp;quot;Show-Deferred::Options::%s&amp;quot; % (i)] = &amp;quot;&amp;quot;
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;args = apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Options = Cnf.SubTree(&amp;quot;Show-Deferred::Options&amp;quot;)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;if Options[&amp;quot;help&amp;quot;]:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;usage()
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;Upload = queue.Upload(Cnf)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;projectB = Upload.projectB
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;return args
&lt;br&gt;+
&lt;br&gt;+args = init()
&lt;br&gt;+if len(args)!=1:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;usage(1)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;
&lt;br&gt;&amp;nbsp;filelist = []
&lt;br&gt;-for r,d,f &amp;nbsp;in os.walk(sys.argv[1]):
&lt;br&gt;+for r,d,f &amp;nbsp;in os.walk(args[0]):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;filelist += map (lambda x: os.path.join(r,x),
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; filter(lambda x: x.endswith('.changes'), f))
&lt;br&gt;-
&lt;br&gt;&amp;nbsp;list_uploads(filelist)
&lt;br&gt;+
&lt;br&gt;+if Cnf.has_key(&amp;quot;Show-Deferred::LinkPath&amp;quot;):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;# remove dead links
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;for r,d,f in os.walk(Cnf[&amp;quot;Show-Deferred::LinkPath&amp;quot;]):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for af in f:
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;af = os.path.join(r,af)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if not os.path.exists(af):
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;print &amp;gt;&amp;gt; sys.stderr, &amp;quot;obsolete&amp;quot;,af
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;os.unlink(af)
&lt;br&gt;-- 
&lt;br&gt;1.5.6.5
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866334&amp;i=5&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866334&amp;i=6&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-dak-master--implement-public-access-to-deferred-tp19866334p19866334.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19770671</id>
	<title>Re: patches for dak</title>
	<published>2008-10-01T15:51:32Z</published>
	<updated>2008-10-01T15:51:32Z</updated>
	<author>
		<name>Joerg Jaspert</name>
	</author>
	<content type="html">On 11525 March 1977, Allan Lyons wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; I'm looking at using dak as a part of a project that I'm working on.
&lt;br&gt;&amp;gt; If I end up with patches that make sense to include in dak, where
&lt;br&gt;&amp;gt; would be the best place/person to send patches to?
&lt;br&gt;&lt;br&gt;Depending on the amount of stuff - patches send here using that git
&lt;br&gt;function or a pointer to a git repo and the branch you want
&lt;br&gt;merged. (Where the branches you want merged are up2date with latest
&lt;br&gt;dak repositories master branch when you ask for a merge :) ).
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;bye, Joerg
&lt;br&gt;Some NM:
&lt;br&gt;graphviz: ouch, that license is hard to read, damn lawyer gibberish.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19770671&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19770671&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/patches-for-dak-tp19766584p19770671.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19769580</id>
	<title>[PATCH] remove linda from suggests since linda has been removed from debian since lenny.  See debian bug# 469039</title>
	<published>2008-10-01T14:31:50Z</published>
	<updated>2008-10-01T14:31:50Z</updated>
	<author>
		<name>Allan Lyons</name>
	</author>
	<content type="html">---
&lt;br&gt;&amp;nbsp;debian/control | &amp;nbsp; &amp;nbsp;2 +-
&lt;br&gt;&amp;nbsp;1 files changed, 1 insertions(+), 1 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/debian/control b/debian/control
&lt;br&gt;index a44e363..6d24d03 100644
&lt;br&gt;--- a/debian/control
&lt;br&gt;+++ b/debian/control
&lt;br&gt;@@ -8,7 +8,7 @@ Standards-Version: 3.5.6.0
&lt;br&gt;&amp;nbsp;Package: dak
&lt;br&gt;&amp;nbsp;Architecture: any
&lt;br&gt;&amp;nbsp;Depends: ${python:Depends}, python-pygresql, python2.1-email | python (&amp;gt;= 2.2), python-apt, apt-utils, gnupg (&amp;gt;= 1.0.6-1), ${shlibs:Depends}, dpkg-dev, python-syck (&amp;gt;= 0.61.2-1), libemail-send-perl
&lt;br&gt;-Suggests: lintian, linda, less, binutils-multiarch, symlinks, postgresql (&amp;gt;= 7.1.0), dsync
&lt;br&gt;+Suggests: lintian, less, binutils-multiarch, symlinks, postgresql (&amp;gt;= 7.1.0), dsync
&lt;br&gt;&amp;nbsp;Description: Debian's archive maintenance scripts
&lt;br&gt;&amp;nbsp; This is a collection of archive maintenance scripts used by the
&lt;br&gt;&amp;nbsp; Debian project.
&lt;br&gt;-- 
&lt;br&gt;1.5.6.5
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19769580&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19769580&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-PATCH--remove-linda-from-suggests-since-linda-has-been-removed-from-debian-since-lenny.--See-debian-bug--469039-tp19769580p19769580.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19768845</id>
	<title>Re: patches for dak</title>
	<published>2008-10-01T13:28:01Z</published>
	<updated>2008-10-01T13:28:01Z</updated>
	<author>
		<name>Otavio Salvador</name>
	</author>
	<content type="html">Allan Lyons &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19768845&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;allan@...&lt;/a&gt;&amp;gt; writes:
&lt;br&gt;&lt;br&gt;&amp;gt; Hi,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I'm looking at using dak as a part of a project that I'm working on. &amp;nbsp;If I end up with patches 
&lt;br&gt;&amp;gt; that make sense to include in dak, where would be the best place/person to send patches to?
&lt;br&gt;&lt;br&gt;I believe that the easier way is to send git exported patches to this
&lt;br&gt;mailing list.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; O T A V I O &amp;nbsp; &amp;nbsp;S A L V A D O R
&lt;br&gt;---------------------------------------------
&lt;br&gt;&amp;nbsp;E-mail: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19768845&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;otavio@...&lt;/a&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;UIN: 5906116
&lt;br&gt;&amp;nbsp;GNU/Linux User: 239058 &amp;nbsp; &amp;nbsp; GPG ID: 49A5F855
&lt;br&gt;&amp;nbsp;Home Page: &lt;a href=&quot;http://otavio.ossystems.com.br&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://otavio.ossystems.com.br&lt;/a&gt;&lt;br&gt;---------------------------------------------
&lt;br&gt;&amp;quot;Microsoft sells you Windows ... Linux gives
&lt;br&gt;&amp;nbsp;you the whole house.&amp;quot;
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19768845&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19768845&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/patches-for-dak-tp19766584p19768845.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19766584</id>
	<title>patches for dak</title>
	<published>2008-10-01T11:07:50Z</published>
	<updated>2008-10-01T11:07:50Z</updated>
	<author>
		<name>Allan Lyons</name>
	</author>
	<content type="html">Hi,
&lt;br&gt;&lt;br&gt;I'm looking at using dak as a part of a project that I'm working on. &amp;nbsp;If I end up with patches 
&lt;br&gt;that make sense to include in dak, where would be the best place/person to send patches to?
&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;&lt;br&gt;Allan.
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19766584&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19766584&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/patches-for-dak-tp19766584p19766584.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19866325</id>
	<title>[dak/master] fix remaining days, some style</title>
	<published>2008-09-30T11:00:42Z</published>
	<updated>2008-09-30T11:00:42Z</updated>
	<author>
		<name>Thomas Viehmann</name>
	</author>
	<content type="html">---
&lt;br&gt;&amp;nbsp;tools/debianqueued-0.9/ChangeLog &amp;nbsp; &amp;nbsp; | &amp;nbsp; &amp;nbsp;4 ++++
&lt;br&gt;&amp;nbsp;tools/debianqueued-0.9/show-deferred | &amp;nbsp; &amp;nbsp;8 ++++----
&lt;br&gt;&amp;nbsp;2 files changed, 8 insertions(+), 4 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/tools/debianqueued-0.9/ChangeLog b/tools/debianqueued-0.9/ChangeLog
&lt;br&gt;index 0d9da28..cffd598 100644
&lt;br&gt;--- a/tools/debianqueued-0.9/ChangeLog
&lt;br&gt;+++ b/tools/debianqueued-0.9/ChangeLog
&lt;br&gt;@@ -1,3 +1,7 @@
&lt;br&gt;+2008-09-20 &amp;nbsp;Thomas Viehmann &amp;nbsp;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866325&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tv@...&lt;/a&gt;&amp;gt;
&lt;br&gt;+
&lt;br&gt;+	* show-deferred: minor fixes
&lt;br&gt;+
&lt;br&gt;&amp;nbsp;2008-09-21 &amp;nbsp;Joerg Jaspert &amp;nbsp;&amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866325&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;joerg@...&lt;/a&gt;&amp;gt;
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;	* debianqueued: Use perltidy
&lt;br&gt;diff --git a/tools/debianqueued-0.9/show-deferred b/tools/debianqueued-0.9/show-deferred
&lt;br&gt;index 9cb093d..fb5af52 100755
&lt;br&gt;--- a/tools/debianqueued-0.9/show-deferred
&lt;br&gt;+++ b/tools/debianqueued-0.9/show-deferred
&lt;br&gt;@@ -25,7 +25,7 @@ from debian_bundle import deb822
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;################################################################################
&lt;br&gt;&amp;nbsp;
&lt;br&gt;-row_number = 0
&lt;br&gt;+row_number = 1
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;html_escaping = {'&amp;quot;':'&amp;quot;', '&amp;':'&amp;amp;', '&amp;lt;':'&amp;lt;', '&amp;gt;':'&amp;gt;'}
&lt;br&gt;&amp;nbsp;re_html_escaping = re.compile('|'.join(map(re.escape, html_escaping.keys())))
&lt;br&gt;@@ -99,7 +99,7 @@ def table_footer():
&lt;br&gt;&amp;nbsp;def table_row(changesname, delay, changed_by, closes):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;global row_number
&lt;br&gt;&amp;nbsp;
&lt;br&gt;- &amp;nbsp; &amp;nbsp;res = '&amp;lt;tr class=&amp;quot;%s&amp;quot;&amp;gt;'%(['even','odd'][row_number %2])
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;res = '&amp;lt;tr class=&amp;quot;%s&amp;quot;&amp;gt;'%((row_number%2) and 'odd' or 'even')
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;res += (3*'&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;%s&amp;lt;/td&amp;gt;')%tuple(map(html_escape,(changesname,delay,changed_by)))
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;res += ('&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;%s&amp;lt;/td&amp;gt;' % 
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ''.join(map(lambda close: &amp;nbsp;'&amp;lt;a href=&amp;quot;&lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%s&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=%s&lt;/a&gt;&amp;quot;&amp;gt;#%s&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;' % (close, close),closes)))
&lt;br&gt;@@ -114,8 +114,8 @@ def get_upload_data(changesfn):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;m = re.match(r'([0-9]+)-day', delay)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;if m:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;delaydays = int(m.group(1))
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;remainingtime = max(0,24*60*60+os.stat(changesfn).st_mtime-time.time())
&lt;br&gt;- &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;delay = &amp;quot;%d days %02d:%02d&amp;quot; %(delaydays, int(remainingtime/3600),int(remainingtime/60)%60)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;remainingtime = (delaydays&amp;gt;0)*max(0,24*60*60+os.stat(changesfn).st_mtime-time.time())
&lt;br&gt;+ &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;delay = &amp;quot;%d days %02d:%02d&amp;quot; %(max(delaydays-1,0), int(remainingtime/3600),int(remainingtime/60)%60)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;else:
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;remainingtime = 0
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;#print dir(achanges)
&lt;br&gt;-- 
&lt;br&gt;1.5.6.5
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866325&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19866325&amp;i=3&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;listmaster@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/-dak-master--fix-remaining-days%2C-some-style-tp19866325p19866325.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-19677327</id>
	<title>[dak/master] spaces in uploader names</title>
	<published>2008-09-25T06:50:06Z</published>
	<updated>2008-09-25T06:50:06Z</updated>
	<author>
		<name>Thomas Viehmann</name>
	</author>
	<content type="html">Signed-off-by: Thomas Viehmann &amp;lt;&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19677327&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;tv@...&lt;/a&gt;&amp;gt;
&lt;br&gt;---
&lt;br&gt;&amp;nbsp;tools/debianqueued-0.9/show-deferred | &amp;nbsp; &amp;nbsp;2 +-
&lt;br&gt;&amp;nbsp;1 files changed, 1 insertions(+), 1 deletions(-)
&lt;br&gt;&lt;br&gt;diff --git a/tools/debianqueued-0.9/show-deferred b/tools/debianqueued-0.9/show-deferred
&lt;br&gt;index 376dff3..9cb093d 100755
&lt;br&gt;--- a/tools/debianqueued-0.9/show-deferred
&lt;br&gt;+++ b/tools/debianqueued-0.9/show-deferred
&lt;br&gt;@@ -121,7 +121,7 @@ def get_upload_data(changesfn):
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;#print dir(achanges)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;#print achanges.keys()
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;uploader = achanges.get('changed-by')
&lt;br&gt;- &amp;nbsp; &amp;nbsp;uploader = re.sub(r'\s+(\S.*)\s+&amp;lt;.*&amp;gt;',r'\1',uploader)
&lt;br&gt;+ &amp;nbsp; &amp;nbsp;uploader = re.sub(r'^\s*(\S.*)\s+&amp;lt;.*&amp;gt;',r'\1',uploader)
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;return (delaydays*24*60*60+remainingtime, changesname, delay, uploader, achanges.get('closes').split())
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&amp;nbsp;def list_uploads(filelist):
&lt;br&gt;-- 
&lt;br&gt;1.5.6.5
&lt;br&gt;&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;To UNSUBSCRIBE, email to &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=19677327&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;debian-dak-request@...&lt;/a&gt;
&lt;br&gt;with a subject of &amp;quot;unsubscribe&amp;quot;. Trouble? Contact &lt;a