Merge lp:~gary/launchpad/bug491705 into lp:launchpad

Proposed by Gary Poster
Status: Merged
Approved by: Paul Hummer
Approved revision: not available
Merged at revision: not available
Proposed branch: lp:~gary/launchpad/bug491705
Merge into: lp:launchpad
Diff against target: 1984 lines (+225/-353)
147 files modified
buildout-templates/_pythonpath.py.in (+17/-114)
buildout-templates/bin/jstest.in (+1/-6)
buildout-templates/bin/py.in (+0/-2)
buildout-templates/bin/test.in (+5/-6)
buildout.cfg (+11/-24)
cronscripts/allocate-revision-karma.py (+1/-1)
cronscripts/branch-scanner.py (+1/-1)
cronscripts/buildd-queue-builder.py (+1/-1)
cronscripts/buildd-retry-depwait.py (+1/-1)
cronscripts/buildd-slave-scanner.py (+1/-1)
cronscripts/calculate-bug-heat.py (+1/-1)
cronscripts/check-teamparticipation.py (+1/-1)
cronscripts/checkwatches.py (+1/-1)
cronscripts/code-import-dispatcher.py (+1/-1)
cronscripts/create-debwatches.py (+1/-1)
cronscripts/create_merge_proposals.py (+1/-1)
cronscripts/distributionmirror-prober.py (+1/-1)
cronscripts/expire-bugtasks.py (+1/-1)
cronscripts/expire-ppa-files.py (+1/-1)
cronscripts/expire-questions.py (+1/-1)
cronscripts/flag-expired-memberships.py (+1/-1)
cronscripts/foaf-update-karma-cache.py (+12/-12)
cronscripts/garbo-daily.py (+1/-1)
cronscripts/garbo-hourly.py (+1/-1)
cronscripts/generate-ppa-htaccess.py (+1/-1)
cronscripts/language-pack-exporter.py (+1/-1)
cronscripts/librarian-gc.py (+1/-1)
cronscripts/mpcreationjobs.py (+1/-1)
cronscripts/oops-prune.py (+1/-1)
cronscripts/parse-librarian-apache-access-logs.py (+1/-1)
cronscripts/ppa-generate-keys.py (+1/-1)
cronscripts/process-hwdb-submissions.py (+1/-1)
cronscripts/process-mail.py (+1/-1)
cronscripts/process-pending-packagediffs.py (+1/-1)
cronscripts/product-release-finder.py (+1/-1)
cronscripts/reclaimbranchspace.py (+1/-1)
cronscripts/rosetta-approve-imports.py (+1/-1)
cronscripts/rosetta-branches.py (+1/-1)
cronscripts/rosetta-export-queue.py (+1/-1)
cronscripts/rosetta-pofile-stats-daily.py (+1/-1)
cronscripts/rosetta-pofile-stats.py (+1/-1)
cronscripts/rosetta-poimport.py (+1/-1)
cronscripts/scan_branches.py (+1/-1)
cronscripts/send-bug-notifications.py (+1/-1)
cronscripts/send-person-notifications.py (+1/-1)
cronscripts/sendbranchmail.py (+1/-1)
cronscripts/supermirror-pull.py (+1/-1)
cronscripts/translations-export-to-branch.py (+1/-1)
cronscripts/update-bugtask-targetnamecaches.py (+1/-1)
cronscripts/update-cve.py (+1/-1)
cronscripts/update-debwatches.py (+1/-1)
cronscripts/update-pkgcache.py (+1/-1)
cronscripts/update-remote-product.py (+1/-1)
cronscripts/update-sourceforge-remote-products.py (+1/-1)
cronscripts/update-standing.py (+1/-1)
cronscripts/update-stats.py (+1/-1)
cronscripts/update_preview_diffs.py (+1/-1)
cronscripts/upgrade_branches.py (+1/-1)
lib/canonical/launchpad/mailman/runmailman.py (+0/-4)
lib/lp/registry/tests/test_mlists.py (+0/-1)
lib/lp_sitecustomize.py (+22/-0)
lib/site.py (+0/-30)
scripts/branch-distro.py (+1/-1)
scripts/branch-rewrite.py (+1/-1)
scripts/bug-export.py (+1/-1)
scripts/bug-import.py (+1/-1)
scripts/bugzilla-import.py (+1/-1)
scripts/cache-country-mirrors.py (+1/-1)
scripts/clean-sourceforge-project-entries.py (+1/-1)
scripts/close-account.py (+2/-2)
scripts/code-import-worker-db.py (+1/-1)
scripts/code-import-worker.py (+1/-1)
scripts/convert-person-to-team.py (+1/-1)
scripts/copy-translations-from-parent.py (+1/-1)
scripts/entitlements-to-lp.py (+1/-1)
scripts/find-email-clusters.py (+1/-1)
scripts/ftpmaster-tools/archive-cruft-check.py (+1/-1)
scripts/ftpmaster-tools/archive-override-check.py (+1/-1)
scripts/ftpmaster-tools/buildd-mass-retry.py (+1/-1)
scripts/ftpmaster-tools/change-override.py (+1/-1)
scripts/ftpmaster-tools/copy-package.py (+1/-1)
scripts/ftpmaster-tools/initialise-from-parent.py (+1/-1)
scripts/ftpmaster-tools/lp-query-distro.py (+1/-1)
scripts/ftpmaster-tools/lp-remove-package.py (+1/-1)
scripts/ftpmaster-tools/manage-chroot.py (+1/-1)
scripts/ftpmaster-tools/obsolete-distroseries.py (+1/-1)
scripts/ftpmaster-tools/ppa-report.py (+1/-1)
scripts/ftpmaster-tools/queue (+1/-1)
scripts/ftpmaster-tools/remove-package.py (+1/-1)
scripts/ftpmaster-tools/sync-source.py (+1/-1)
scripts/ftpmaster-tools/unembargo-package.py (+1/-1)
scripts/get-stacked-on-branches.py (+1/-1)
scripts/gina.py (+2/-2)
scripts/import-debian-bugs.py (+1/-1)
scripts/import-packagenames.py (+1/-1)
scripts/import-zope-specs.py (+4/-4)
scripts/librarian-report.py (+1/-1)
scripts/linkreport.py (+2/-2)
scripts/list-team-members (+1/-1)
scripts/merge-email-clusters.py (+1/-1)
scripts/migrate-bugzilla-initialcontacts.py (+1/-1)
scripts/mirror-branch.py (+1/-1)
scripts/mlist-import.py (+1/-1)
scripts/mlist-sync.py (+1/-1)
scripts/modified-branches.py (+1/-1)
scripts/populate-archive.py (+1/-1)
scripts/ppa-add-missing-builds.py (+1/-1)
scripts/process-accepted.py (+1/-1)
scripts/process-death-row.py (+1/-1)
scripts/process-upload.py (+1/-1)
scripts/publish-distro.py (+1/-1)
scripts/rosetta/check-distroseries-translations-diffs.py (+1/-1)
scripts/rosetta/fix_translation_credits.py (+1/-1)
scripts/rosetta/gettext_check_messages.py (+1/-1)
scripts/rosetta/message-sharing-merge.py (+2/-2)
scripts/rosetta/message-sharing-populate-test.py (+1/-1)
scripts/rosetta/message-sharing-populate.py (+1/-1)
scripts/rosetta/pottery-generate-intltool.py (+1/-1)
scripts/rosetta/remove-obsolete-translations.py (+1/-1)
scripts/rosetta/remove-translations-by.py (+1/-1)
scripts/rosetta/remove-upstream-translations.py (+1/-1)
scripts/rosetta/reupload-translations.py (+1/-1)
scripts/rosetta/share-jaunty-translations.py (+1/-1)
scripts/rosetta/validate-translations-file.py (+1/-1)
scripts/script-monitor-nagios.py (+6/-6)
scripts/script-monitor.py (+4/-4)
scripts/sourceforge-import.py (+1/-1)
scripts/update-stacked-on.py (+1/-1)
scripts/upload2librarian.py (+1/-1)
utilities/check-configs.py (+1/-1)
utilities/check-content-interfaces.py (+1/-1)
utilities/check-sampledata.py (+1/-1)
utilities/check-scripts.py (+1/-1)
utilities/create-lp-wadl.py (+1/-1)
utilities/ec2 (+1/-1)
utilities/generate-external-bug-status-docs (+1/-1)
utilities/get-branch-info (+1/-1)
utilities/list-person-references.py (+3/-1)
utilities/lsconf.py (+1/-1)
utilities/make-dummy-hosted-branches (+1/-1)
utilities/make-lp-user (+1/-1)
utilities/mock-code-import (+1/-1)
utilities/page-performance-report.py (+1/-1)
utilities/paste (+1/-1)
utilities/sanitize-db.py (+1/-1)
utilities/update-revisionauthor-email.py (+1/-1)
versions.cfg (+4/-3)
To merge this branch: bzr merge lp:~gary/launchpad/bug491705
Reviewer Review Type Date Requested Status
Paul Hummer (community) code Approve
Review via email: mp+20156@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Gary Poster (gary) wrote :
Download full text (3.7 KiB)

This branch merges my changes to zc.buildout. These completely change how we handle working with a system Python from my earlier approach. Now instead of mucking with sys.modules, and instead of throwing a bunch of paths to every script we write, and instead of having a site.py that duplicates effort that we maintain in the tree, we have a custom buildout-generated site.py that sets up our paths. We insert the path to the directory containing that file in sys.paths (via PYTHONPATH; or by starting with -S, inserting the path in Python, and importing the site module) when we want to use the Launchpad environment.

The Launchpad reviews of these zc.buildout branches are here, for reference:

https://code.edge.launchpad.net/~gary/zc.buildout/python-support-1-cleanup/+merge/19532
https://code.edge.launchpad.net/~gary/zc.buildout/python-support-2-bootstrap/+merge/19538
https://code.edge.launchpad.net/~gary/zc.buildout/python-support-3-options/+merge/19539
https://code.edge.launchpad.net/~gary/zc.buildout/python-support-4/+merge/19547
https://code.edge.launchpad.net/~gary/zc.buildout/python-support-5-initial-egg-control/+merge/20010
https://code.edge.launchpad.net/~gary/zc.buildout/python-support-6-egg-control/+merge/20013
https://code.edge.launchpad.net/~gary/zc.buildout/python-support-7/+merge/20092

Making these changes to zc.buildout meant several necessary changes to the Launchpad tree, and a couple of opportunistic ones.

_pythonpath.py.in can now be wildly simpler. It now just needs to insert the path with our custom site.py into sys.path and import site. This only works if (the wrong) site has not already been imported, so we double-check for that. We try to provide guidance for how to use the new approach. I believe that I have adjusted all scripts that use _pythonpath to use the new approach. Some, such as buildout-templates/bin/jstest.in, were standardized in their approach at the same time. Some, like cronscripts/foaf-update-karma-cache.py, also got trailing-whitespace clean-up courtesy of my editor.

All generated scripts in the bin directory should now be significantly easier to read, since they only insert the directory with the custom site.py, which now handles all of the path code.

The generated bin/py now also is significantly different. It is Python rather than a bash script, though the basic mechanism (exec) is the same. It is also generated by code in buildout itself, so buildout-templates no longer needs a file to generate it. This is why "interpreter = py" has been added to buildout.cfg.

The filetemplates no longer need to specify eggs in the buildout.cfg because the scripts all use the custom site.py instead.

The initialization has been changed to rely on a new module, lp_sitecustomize.py. per bug 496705. Not everything could go into the new module, for the reasons I clarify in comments.

I removed a couple of lines like this one: "env['PYTHONPATH'] = os.path.pathsep.join(sys.path)". It is no longer necessary, and in fact causes problems because pkg_resources gets confused with duplicate paths. This change felt a little risky, particularly because it touched the Mailman integration, which can get hairy. How...

Read more...

Revision history for this message
Paul Hummer (rockstar) wrote :

<gary_poster> rockstar: um, so, 1600 lines are the following repetition:
<gary_poster> -#!/usr/bin/python2.5
<gary_poster> 988 +#!/usr/bin/python2.5 -S
<gary_poster> :-D
<gary_poster> please?
<rockstar> gary_poster, wow. That's a lot of python.
<gary_poster> oh yeah
<gary_poster> bac, I'm now changing my begging to rockstar. rockstar, if you can't stand it, lemme know, and I'll go beg on the foundations channel. :-)
<rockstar> gary_poster, looking at it now. It hasn't been too bad.
<gary_poster> rockstar: thank you
<rockstar> gary_poster, this seems to kill a lot of hacks we had.
<rockstar> (hacks I didn't even know about)
<gary_poster> rockstar: heh, yeah. that was a definite goal. :-)
<rockstar> gary_poster, okay, cool.
<rockstar> gary_poster, also, it looks like you killed a lot of trailing whitespace issues. Was that on purpose, or is your editor doing that?
<gary_poster> rockstar: on purpose because I tell my editor to do it. :-) If you want me to separate I will. I felt it was relatively small, but I'm obviously not in much of a bargaining position there. ;-)
<rockstar> gary_poster, well, it seems more effort to separate them than it's worth.
<gary_poster> ack
<gary_poster> thanks
<rockstar> gary_poster, however, while that does need to be done, it can cause spurious conflicts, so do so sparingly in the future plz.
<gary_poster> rockstar: ack, will do
<rockstar> I'm mostly impressed with the changes in buildout-templates/_pythonpath.py.in
<rockstar> You replaced 110 lines of code with 14 lines. :)
<rockstar> gary_poster, these are pretty invasive changes, and we're getting nigh to closing PQM time.
<rockstar> gary_poster, are you confident these changes aren't going to have explosive bugs?
<gary_poster> rockstar: ack, see last para of cover letter. Going to insert as soon as branch opens.
<rockstar> gary_poster, ah, hadn't seen that.

review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'buildout-templates/_pythonpath.py.in'
2--- buildout-templates/_pythonpath.py.in 2009-11-06 21:58:50 +0000
3+++ buildout-templates/_pythonpath.py.in 2010-02-25 17:26:19 +0000
4@@ -4,121 +4,24 @@
5 # NOTE: This is a generated file. The original is in
6 # buildout-templates/_pythonpath.py.in
7
8-__metaclass__ = type
9+# This file works if the Python has been started with -S, or if bin/py
10+# has been used.
11
12-import new
13 import os
14-import site
15 import sys
16
17-stdlib_paths = [
18- ${indented-stdlib-paths}
19- ]
20-egg_paths = [
21- ${indented-egg-paths}
22- ]
23-site_dirs = [
24- ${indented-dir-paths}
25- ]
26-
27-def set_path():
28- # We need to remove any modules installed using the setuptools
29- # namespace package approach that generates .pth files that mutate
30- # sys.modules. They can mask the namespace modules we actually
31- # want. We will try to recognize these sorts of namespace modules by
32- # looking for modules that do not have a __file__, like the ones
33- # generated by these .pth files. However, that's not good enough: some
34- # C modules look like this. We then look for any names in the
35- # module that are not special Python names (__*__) that are also not
36- # in sys.modules. If any one of these exist, this is not a
37- # namespace module. Otherwise, it is a namespace module. Moreover,
38- # if there were any sys.modules names from the namespace module,
39- # this _pythonpath module was imported too late: we should complain.
40- #
41- # If you have not seen the code in these .pth files, here's an
42- # example. It is all in one line in the .pth files, because of the
43- # .pth syntax for this feature.
44- #
45- # import sys,new,os;
46- # p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('lazr',));
47- # ie = os.path.exists(os.path.join(p,'__init__.py'));
48- # m = not ie and sys.modules.setdefault('lazr',new.module('lazr'));
49- # mp = (m or []) and m.__dict__.setdefault('__path__',[]);
50- # (p not in mp) and mp.append(p)
51- #
52- # Note that we will be mutating sys.modules, so we want to make sure to be
53- # getting a copy, not an iterable.
54- marker = object()
55- for k, v in sys.modules.items():
56- if k == '__main__' or not isinstance(v, new.module):
57- # These are some special cases that we'll pass by.
58- continue
59- if getattr(v, '__file__', marker) is marker:
60- # This is a .pth-generated namespace or C module.
61- for name in dir(v):
62- if not name.startswith('__') and not name.endswith('__'):
63- full_name = '.'.join((k, name))
64- if full_name in sys.modules:
65- # This is a .pth-generated namespace module that
66- # has had one of its sub-packages imported.
67- raise RuntimeError(
68- 'Found unexpected module %s. '
69- 'Import _pythonpath earlier!' % (full_name,))
70- else:
71- # This is a C module or something like that. Nothing
72- # to see here: move along.
73- break
74- else:
75- # It is a .pth-generated namespace module. Remove it
76- # so we can let our eggs make their own.
77- del sys.modules[k]
78-
79- # We keep the very first path because that is typically the directory
80- # of the file that imported us, which should continue to have precedence.
81- sys.path[1:] = egg_paths
82- sys.path.extend(stdlib_paths)
83- # Add the site_dirs before `addsitedir` in case it has setuptools.
84- sys.path.extend(site_dirs)
85- # Process all buildout-controlled eggs before site-packages by importing
86- # pkg_resources. This is only important for namespace packages, so it may
87- # not have been added, so ignore import errors.
88- try:
89- import pkg_resources
90- except ImportError:
91- pass
92- # Process .pth files.
93- for p in site_dirs:
94- site.addsitedir(p)
95-
96- # Make subprocesses have the same environment.
97- os.environ['PYTHONPATH'] = os.pathsep.join(sys.path)
98-
99- # Enable Storm's C extensions
100- os.environ['STORM_CEXTENSIONS'] = '1'
101-
102- # We don't want to bother tests or logs with these.
103- import warnings
104- warnings.filterwarnings(
105- 'ignore',
106- 'Module .+ was already imported from .+, but .+ is being added.*',
107- UserWarning)
108-
109-try:
110- # We try two smoke tests. The first checks to see that lib has been
111- # added.
112- import lp
113- # XXX gary 10-19-2009 bug 455737
114- # The second wants to see if the egg paths have been added. The
115- # only reason this is necessary is because, as of this writing, our
116- # buildbot configuration sets PYTHONPATH at one point to include
117- # lib, but not the rest of the eggs. This means that importing lp
118- # will work, but importing ZConfig won't. The right fix here is to
119- # change our buildbot to not set PYTHONPATH. That's not an option
120- # at this instance in time because the LOSAs are swamped with
121- # another task. We can remove this comment, the following import,
122- # and ``sys.modules.pop('lp', None)`` below when buildbot's
123- # configuration is changed.
124- import ZConfig
125-except ImportError:
126- sys.modules.pop('lp', None)
127- set_path()
128+site_dir = "${scripts:parts-directory}"
129+
130+if ('site' in sys.modules and
131+ not sys.modules['site'].__file__.startswith(
132+ os.path.join(site_dir, 'site.py'))):
133+ # We have the wrong site.py, so our paths are not set up correctly.
134+ # We blow up, with a hopefully helpful error message.
135+ raise RuntimeError(
136+ 'The wrong site.py is imported. Scripts should usually be '
137+ "started with Launchpad's bin/py, or with a Python invoked with "
138+ 'the -S flag.')
139+
140+if site_dir not in sys.path:
141+ sys.path.insert(0, site_dir)
142+import site # sets up paths
143
144=== modified file 'buildout-templates/bin/jstest.in'
145--- buildout-templates/bin/jstest.in 2009-10-07 10:19:19 +0000
146+++ buildout-templates/bin/jstest.in 2010-02-25 17:26:19 +0000
147@@ -1,4 +1,4 @@
148-#!${buildout:executable}
149+#! /usr/bin/env ${buildout:directory}/bin/py
150 # Copyright 2009 Canonical Ltd. This software is licensed under the
151 # GNU Affero General Public License version 3 (see the file LICENSE).
152
153@@ -14,11 +14,6 @@
154
155 """
156
157-# Add the buildout sys.path
158-import sys
159-sys.path[0:0] = [${string-paths}]
160-
161-
162 import subprocess
163 import os
164 from lp.scripts.utilities.lpwindmill import runLaunchpad
165
166=== removed file 'buildout-templates/bin/py.in'
167--- buildout-templates/bin/py.in 2009-10-18 01:09:02 +0000
168+++ buildout-templates/bin/py.in 1970-01-01 00:00:00 +0000
169@@ -1,2 +0,0 @@
170-#!/bin/sh
171-PYTHONPATH=${os-paths} exec ${buildout:executable} "$@"
172
173=== modified file 'buildout-templates/bin/test.in'
174--- buildout-templates/bin/test.in 2010-01-18 09:45:04 +0000
175+++ buildout-templates/bin/test.in 2010-02-25 17:26:19 +0000
176@@ -38,13 +38,12 @@
177 os.environ['TZ'] = 'Asia/Calcutta'
178 time.tzset()
179
180-# Enable Storm's C extensions.
181-os.environ['STORM_CEXTENSIONS'] = '1'
182+# Storm's C extensions should already be enabled from lp_sitecustomize.py,
183+# which our custom sitecustomize.py ran.
184+assert os.environ['STORM_CEXTENSIONS'] == '1'
185
186-# Set PYTHONPATH environment variable for spawned processes.
187-# This is the kind of use case for the site.py fork we have in lib (see the
188-# comment in that file). :-(
189-os.environ['PYTHONPATH'] = ':'.join(sys.path)
190+# Make sure our site.py is the one that subprocesses use.
191+os.environ['PYTHONPATH'] = "${scripts:parts-directory}"
192
193 # Set a flag if this is the main testrunner process
194 if len(sys.argv) > 1 and sys.argv[1] == '--resume-layer':
195
196=== modified file 'buildout.cfg'
197--- buildout.cfg 2010-02-19 22:02:36 +0000
198+++ buildout.cfg 2010-02-25 17:26:19 +0000
199@@ -25,9 +25,6 @@
200
201 allow-picked-versions = false
202
203-allowed-eggs-from-site-packages =
204-include-site-packages-for-buildout = false
205-
206 prefer-final = true
207
208 develop = .
209@@ -37,15 +34,10 @@
210
211 [filetemplates]
212 recipe = z3c.recipe.filetemplate
213-eggs = lp
214- windmill
215-# XXX gary 2009-5-12 bug 375751:
216-# Make mailman built and installed in a more normal way.
217-extra-paths = ${buildout:directory}/lib/mailman
218 source-directory = buildout-templates
219
220 [scripts]
221-recipe = zc.recipe.egg
222+recipe = z3c.recipe.scripts
223 eggs = lp
224 windmill
225 funkload
226@@ -53,21 +45,14 @@
227 # XXX gary 2009-5-12 bug 375751:
228 # Make mailman built and installed in a more normal way.
229 extra-paths = ${buildout:directory}/lib/mailman
230+include-site-packages = true
231+allowed-eggs-from-site-packages =
232+interpreter = py
233 # Note that any indentation is lost in initialization blocks.
234-initialization = import os
235- os.environ['STORM_CEXTENSIONS'] = '1'
236- os.environ.setdefault('LPCONFIG', '${configuration:instance_name}')
237- # XXX 2009-08-21 gary bug 417077
238- # This can hopefully be removed when Twisted is used as an egg.
239- import warnings
240- warnings.filterwarnings(
241- 'ignore',
242- 'Module .+ was already imported from .+, but .+ is being added.*',
243- UserWarning)
244- # XXX: BradCrittenden 2009-12-14 bug=496705: A single, well-known entry point
245- # for initialization work needs to be created.
246- from lp.services.mime import customizeMimetypes
247- customizeMimetypes()
248+initialization =
249+ import os
250+ os.environ.setdefault('LPCONFIG', '${configuration:instance_name}')
251+ import lp_sitecustomize # Initializes LP environment.
252 entry-points = stxdocs=zope.configuration.stxdocs:main
253 googletestservice=canonical.launchpad.testing.googletestservice:main
254 windmill=windmill.bin.windmill_bin:main
255@@ -78,10 +63,12 @@
256 jssize=lp.scripts.utilities.jssize:main
257
258 [iharness]
259-recipe = zc.recipe.egg
260+recipe = z3c.recipe.scripts
261 eggs = ${scripts:eggs}
262 ipython
263 extra-paths = ${scripts:extra-paths}
264+include-site-packages = true
265+allowed-eggs-from-site-packages =
266 initialization = ${scripts:initialization}
267 entry-points = iharness=canonical.database.harness:ipython
268 scripts = iharness ipython=ipy
269
270=== modified file 'cronscripts/allocate-revision-karma.py'
271--- cronscripts/allocate-revision-karma.py 2009-10-13 14:38:07 +0000
272+++ cronscripts/allocate-revision-karma.py 2010-02-25 17:26:19 +0000
273@@ -1,4 +1,4 @@
274-#!/usr/bin/python2.5
275+#!/usr/bin/python2.5 -S
276 #
277 # Copyright 2009 Canonical Ltd. This software is licensed under the
278 # GNU Affero General Public License version 3 (see the file LICENSE).
279
280=== modified file 'cronscripts/branch-scanner.py'
281--- cronscripts/branch-scanner.py 2010-01-05 22:26:28 +0000
282+++ cronscripts/branch-scanner.py 2010-02-25 17:26:19 +0000
283@@ -1,4 +1,4 @@
284-#!/usr/bin/python2.5
285+#!/usr/bin/python2.5 -S
286 #
287 # Copyright 2009 Canonical Ltd. This software is licensed under the
288 # GNU Affero General Public License version 3 (see the file LICENSE).
289
290=== modified file 'cronscripts/buildd-queue-builder.py'
291--- cronscripts/buildd-queue-builder.py 2009-10-13 14:38:07 +0000
292+++ cronscripts/buildd-queue-builder.py 2010-02-25 17:26:19 +0000
293@@ -1,4 +1,4 @@
294-#!/usr/bin/python2.5
295+#!/usr/bin/python2.5 -S
296 #
297 # Copyright 2009 Canonical Ltd. This software is licensed under the
298 # GNU Affero General Public License version 3 (see the file LICENSE).
299
300=== modified file 'cronscripts/buildd-retry-depwait.py'
301--- cronscripts/buildd-retry-depwait.py 2009-10-13 14:38:07 +0000
302+++ cronscripts/buildd-retry-depwait.py 2010-02-25 17:26:19 +0000
303@@ -1,4 +1,4 @@
304-#!/usr/bin/python2.5
305+#!/usr/bin/python2.5 -S
306 #
307 # Copyright 2009 Canonical Ltd. This software is licensed under the
308 # GNU Affero General Public License version 3 (see the file LICENSE).
309
310=== modified file 'cronscripts/buildd-slave-scanner.py'
311--- cronscripts/buildd-slave-scanner.py 2009-10-13 14:38:07 +0000
312+++ cronscripts/buildd-slave-scanner.py 2010-02-25 17:26:19 +0000
313@@ -1,4 +1,4 @@
314-#!/usr/bin/python2.5
315+#!/usr/bin/python2.5 -S
316 #
317 # Copyright 2009 Canonical Ltd. This software is licensed under the
318 # GNU Affero General Public License version 3 (see the file LICENSE).
319
320=== modified file 'cronscripts/calculate-bug-heat.py'
321--- cronscripts/calculate-bug-heat.py 2010-01-21 20:43:18 +0000
322+++ cronscripts/calculate-bug-heat.py 2010-02-25 17:26:19 +0000
323@@ -1,4 +1,4 @@
324-#!/usr/bin/python2.5
325+#!/usr/bin/python2.5 -S
326 #
327 # Copyright 2010 Canonical Ltd. This software is licensed under the
328 # GNU Affero General Public License version 3 (see the file LICENSE).
329
330=== modified file 'cronscripts/check-teamparticipation.py'
331--- cronscripts/check-teamparticipation.py 2009-10-19 17:59:47 +0000
332+++ cronscripts/check-teamparticipation.py 2010-02-25 17:26:19 +0000
333@@ -1,4 +1,4 @@
334-#!/usr/bin/python2.5
335+#!/usr/bin/python2.5 -S
336 #
337 # Copyright 2009 Canonical Ltd. This software is licensed under the
338 # GNU Affero General Public License version 3 (see the file LICENSE).
339
340=== modified file 'cronscripts/checkwatches.py'
341--- cronscripts/checkwatches.py 2009-10-13 14:38:07 +0000
342+++ cronscripts/checkwatches.py 2010-02-25 17:26:19 +0000
343@@ -1,4 +1,4 @@
344-#!/usr/bin/python2.5
345+#!/usr/bin/python2.5 -S
346 #
347 # Copyright 2009 Canonical Ltd. This software is licensed under the
348 # GNU Affero General Public License version 3 (see the file LICENSE).
349
350=== modified file 'cronscripts/code-import-dispatcher.py'
351--- cronscripts/code-import-dispatcher.py 2010-02-22 05:07:23 +0000
352+++ cronscripts/code-import-dispatcher.py 2010-02-25 17:26:19 +0000
353@@ -1,4 +1,4 @@
354-#!/usr/bin/python2.5
355+#!/usr/bin/python2.5 -S
356 #
357 # Copyright 2009 Canonical Ltd. This software is licensed under the
358 # GNU Affero General Public License version 3 (see the file LICENSE).
359
360=== modified file 'cronscripts/create-debwatches.py'
361--- cronscripts/create-debwatches.py 2009-10-19 17:59:47 +0000
362+++ cronscripts/create-debwatches.py 2010-02-25 17:26:19 +0000
363@@ -1,4 +1,4 @@
364-#!/usr/bin/python2.5
365+#!/usr/bin/python2.5 -S
366 #
367 # Copyright 2009 Canonical Ltd. This software is licensed under the
368 # GNU Affero General Public License version 3 (see the file LICENSE).
369
370=== modified file 'cronscripts/create_merge_proposals.py'
371--- cronscripts/create_merge_proposals.py 2009-10-13 14:38:07 +0000
372+++ cronscripts/create_merge_proposals.py 2010-02-25 17:26:19 +0000
373@@ -1,4 +1,4 @@
374-#!/usr/bin/python2.5
375+#!/usr/bin/python2.5 -S
376 #
377 # Copyright 2009 Canonical Ltd. This software is licensed under the
378 # GNU Affero General Public License version 3 (see the file LICENSE).
379
380=== modified file 'cronscripts/distributionmirror-prober.py'
381--- cronscripts/distributionmirror-prober.py 2009-10-13 14:38:07 +0000
382+++ cronscripts/distributionmirror-prober.py 2010-02-25 17:26:19 +0000
383@@ -1,4 +1,4 @@
384-#!/usr/bin/python2.5
385+#!/usr/bin/python2.5 -S
386 #
387 # Copyright 2009 Canonical Ltd. This software is licensed under the
388 # GNU Affero General Public License version 3 (see the file LICENSE).
389
390=== modified file 'cronscripts/expire-bugtasks.py'
391--- cronscripts/expire-bugtasks.py 2009-10-13 14:38:07 +0000
392+++ cronscripts/expire-bugtasks.py 2010-02-25 17:26:19 +0000
393@@ -1,4 +1,4 @@
394-#!/usr/bin/python2.5
395+#!/usr/bin/python2.5 -S
396 #
397 # Copyright 2009 Canonical Ltd. This software is licensed under the
398 # GNU Affero General Public License version 3 (see the file LICENSE).
399
400=== modified file 'cronscripts/expire-ppa-files.py'
401--- cronscripts/expire-ppa-files.py 2010-01-20 10:32:32 +0000
402+++ cronscripts/expire-ppa-files.py 2010-02-25 17:26:19 +0000
403@@ -1,4 +1,4 @@
404-#!/usr/bin/python2.5
405+#!/usr/bin/python2.5 -S
406 #
407 # Copyright 2009 Canonical Ltd. This software is licensed under the
408 # GNU Affero General Public License version 3 (see the file LICENSE).
409
410=== modified file 'cronscripts/expire-questions.py'
411--- cronscripts/expire-questions.py 2009-10-13 14:38:07 +0000
412+++ cronscripts/expire-questions.py 2010-02-25 17:26:19 +0000
413@@ -1,4 +1,4 @@
414-#!/usr/bin/python2.5
415+#!/usr/bin/python2.5 -S
416 #
417 # Copyright 2009 Canonical Ltd. This software is licensed under the
418 # GNU Affero General Public License version 3 (see the file LICENSE).
419
420=== modified file 'cronscripts/flag-expired-memberships.py'
421--- cronscripts/flag-expired-memberships.py 2009-10-13 14:38:07 +0000
422+++ cronscripts/flag-expired-memberships.py 2010-02-25 17:26:19 +0000
423@@ -1,4 +1,4 @@
424-#!/usr/bin/python2.5
425+#!/usr/bin/python2.5 -S
426 #
427 # Copyright 2009 Canonical Ltd. This software is licensed under the
428 # GNU Affero General Public License version 3 (see the file LICENSE).
429
430=== modified file 'cronscripts/foaf-update-karma-cache.py'
431--- cronscripts/foaf-update-karma-cache.py 2009-10-13 14:38:07 +0000
432+++ cronscripts/foaf-update-karma-cache.py 2010-02-25 17:26:19 +0000
433@@ -1,4 +1,4 @@
434-#!/usr/bin/python2.5
435+#!/usr/bin/python2.5 -S
436 #
437 # Copyright 2009 Canonical Ltd. This software is licensed under the
438 # GNU Affero General Public License version 3 (see the file LICENSE).
439@@ -121,7 +121,7 @@
440 # VACUUM KarmaTotalCache since we have just touched every row in it.
441 self.cur.execute("""VACUUM KarmaTotalCache""")
442
443- # Insert new records into the KarmaTotalCache table.
444+ # Insert new records into the KarmaTotalCache table.
445
446 # XXX: salgado 2007-02-06:
447 # If deadlocks ever become a problem, first LOCK the
448@@ -146,7 +146,7 @@
449
450 def C_add_karmacache_sums(self):
451 self.logger.info("Step C: Calculating KarmaCache sums")
452- # We must issue some SUM queries to insert the karma totals for:
453+ # We must issue some SUM queries to insert the karma totals for:
454 # - All actions of a person on a given product.
455 # - All actions of a person on a given distribution.
456 # - All actions of a person on a given project.
457@@ -156,7 +156,7 @@
458
459 # - All actions with a specific category of a person.
460 self.cur.execute("""
461- INSERT INTO KarmaCache
462+ INSERT INTO KarmaCache
463 (person, category, karmavalue, product, distribution,
464 sourcepackagename, project)
465 SELECT person, category, SUM(karmavalue), NULL, NULL, NULL, NULL
466@@ -167,7 +167,7 @@
467
468 # - All actions of a person on a given product.
469 self.cur.execute("""
470- INSERT INTO KarmaCache
471+ INSERT INTO KarmaCache
472 (person, category, karmavalue, product, distribution,
473 sourcepackagename, project)
474 SELECT person, NULL, SUM(karmavalue), product, NULL, NULL, NULL
475@@ -178,7 +178,7 @@
476
477 # - All actions of a person on a given distribution.
478 self.cur.execute("""
479- INSERT INTO KarmaCache
480+ INSERT INTO KarmaCache
481 (person, category, karmavalue, product, distribution,
482 sourcepackagename, project)
483 SELECT person, NULL, SUM(karmavalue), NULL, distribution, NULL, NULL
484@@ -189,7 +189,7 @@
485
486 # - All actions of a person on a given project.
487 self.cur.execute("""
488- INSERT INTO KarmaCache
489+ INSERT INTO KarmaCache
490 (person, category, karmavalue, product, distribution,
491 sourcepackagename, project)
492 SELECT person, NULL, SUM(karmavalue), NULL, NULL, NULL,
493@@ -206,7 +206,7 @@
494 # inserted here will be included in the calculation of the overall
495 # karma of a person on a given project.
496 self.cur.execute("""
497- INSERT INTO KarmaCache
498+ INSERT INTO KarmaCache
499 (person, category, karmavalue, product, distribution,
500 sourcepackagename, project)
501 SELECT person, category, SUM(karmavalue), NULL, NULL, NULL,
502@@ -249,10 +249,10 @@
503 max_scaling = config.karmacacheupdater.max_scaling
504 if scaling[category] > max_scaling:
505 scaling[category] = max_scaling
506- self.logger.debug('Reducing %s scaling to %d to avoid spikes'
507+ self.logger.debug('Reducing %s scaling to %d to avoid spikes'
508 % (categories[category], max_scaling))
509 return scaling
510-
511+
512 def update_one_karma_cache_entry(self, entry, scaling):
513 """Updates an individual (non-summed) KarmaCache entry.
514
515@@ -262,7 +262,7 @@
516 """
517 (person_id, category_id, product_id, distribution_id, points) = entry
518 points *= scaling[category_id] # Scaled. wow.
519- self.logger.debug("Setting person_id=%d, category_id=%d, points=%d"
520+ self.logger.debug("Setting person_id=%d, category_id=%d, points=%d"
521 % (person_id, category_id, points))
522
523 points = int(points)
524@@ -285,7 +285,7 @@
525
526
527 if __name__ == '__main__':
528- script = KarmaCacheUpdater('karma-update',
529+ script = KarmaCacheUpdater('karma-update',
530 dbuser=config.karmacacheupdater.dbuser)
531 script.lock_and_run(implicit_begin=True)
532
533
534=== modified file 'cronscripts/garbo-daily.py'
535--- cronscripts/garbo-daily.py 2009-10-13 14:38:07 +0000
536+++ cronscripts/garbo-daily.py 2010-02-25 17:26:19 +0000
537@@ -1,4 +1,4 @@
538-#!/usr/bin/python2.5
539+#!/usr/bin/python2.5 -S
540 #
541 # Copyright 2009 Canonical Ltd. This software is licensed under the
542 # GNU Affero General Public License version 3 (see the file LICENSE).
543
544=== modified file 'cronscripts/garbo-hourly.py'
545--- cronscripts/garbo-hourly.py 2009-10-13 14:38:07 +0000
546+++ cronscripts/garbo-hourly.py 2010-02-25 17:26:19 +0000
547@@ -1,4 +1,4 @@
548-#!/usr/bin/python2.5
549+#!/usr/bin/python2.5 -S
550 #
551 # Copyright 2009 Canonical Ltd. This software is licensed under the
552 # GNU Affero General Public License version 3 (see the file LICENSE).
553
554=== modified file 'cronscripts/generate-ppa-htaccess.py'
555--- cronscripts/generate-ppa-htaccess.py 2009-10-13 14:38:07 +0000
556+++ cronscripts/generate-ppa-htaccess.py 2010-02-25 17:26:19 +0000
557@@ -1,4 +1,4 @@
558-#!/usr/bin/python2.5
559+#!/usr/bin/python2.5 -S
560 #
561 # Copyright 2009 Canonical Ltd. This software is licensed under the
562 # GNU Affero General Public License version 3 (see the file LICENSE).
563
564=== modified file 'cronscripts/language-pack-exporter.py'
565--- cronscripts/language-pack-exporter.py 2009-10-13 14:38:07 +0000
566+++ cronscripts/language-pack-exporter.py 2010-02-25 17:26:19 +0000
567@@ -1,4 +1,4 @@
568-#!/usr/bin/python2.5
569+#!/usr/bin/python2.5 -S
570 #
571 # Copyright 2009 Canonical Ltd. This software is licensed under the
572 # GNU Affero General Public License version 3 (see the file LICENSE).
573
574=== modified file 'cronscripts/librarian-gc.py'
575--- cronscripts/librarian-gc.py 2009-12-22 15:11:42 +0000
576+++ cronscripts/librarian-gc.py 2010-02-25 17:26:19 +0000
577@@ -1,4 +1,4 @@
578-#!/usr/bin/python2.5
579+#!/usr/bin/python2.5 -S
580 #
581 # Copyright 2009 Canonical Ltd. This software is licensed under the
582 # GNU Affero General Public License version 3 (see the file LICENSE).
583
584=== modified file 'cronscripts/mpcreationjobs.py'
585--- cronscripts/mpcreationjobs.py 2010-01-21 22:10:38 +0000
586+++ cronscripts/mpcreationjobs.py 2010-02-25 17:26:19 +0000
587@@ -1,4 +1,4 @@
588-#!/usr/bin/python2.5
589+#!/usr/bin/python2.5 -S
590 #
591 # Copyright 2009 Canonical Ltd. This software is licensed under the
592 # GNU Affero General Public License version 3 (see the file LICENSE).
593
594=== modified file 'cronscripts/oops-prune.py'
595--- cronscripts/oops-prune.py 2009-10-13 14:38:07 +0000
596+++ cronscripts/oops-prune.py 2010-02-25 17:26:19 +0000
597@@ -1,4 +1,4 @@
598-#!/usr/bin/python2.5
599+#!/usr/bin/python2.5 -S
600 #
601 # Copyright 2009 Canonical Ltd. This software is licensed under the
602 # GNU Affero General Public License version 3 (see the file LICENSE).
603
604=== modified file 'cronscripts/parse-librarian-apache-access-logs.py'
605--- cronscripts/parse-librarian-apache-access-logs.py 2009-10-13 14:38:07 +0000
606+++ cronscripts/parse-librarian-apache-access-logs.py 2010-02-25 17:26:19 +0000
607@@ -1,4 +1,4 @@
608-#!/usr/bin/python2.5
609+#!/usr/bin/python2.5 -S
610 #
611 # Copyright 2009 Canonical Ltd. This software is licensed under the
612 # GNU Affero General Public License version 3 (see the file LICENSE).
613
614=== modified file 'cronscripts/ppa-generate-keys.py'
615--- cronscripts/ppa-generate-keys.py 2009-10-13 14:38:07 +0000
616+++ cronscripts/ppa-generate-keys.py 2010-02-25 17:26:19 +0000
617@@ -1,4 +1,4 @@
618-#!/usr/bin/python2.5
619+#!/usr/bin/python2.5 -S
620 #
621 # Copyright 2009 Canonical Ltd. This software is licensed under the
622 # GNU Affero General Public License version 3 (see the file LICENSE).
623
624=== modified file 'cronscripts/process-hwdb-submissions.py'
625--- cronscripts/process-hwdb-submissions.py 2010-02-02 17:12:29 +0000
626+++ cronscripts/process-hwdb-submissions.py 2010-02-25 17:26:19 +0000
627@@ -1,4 +1,4 @@
628-#!/usr/bin/python2.5
629+#!/usr/bin/python2.5 -S
630 #
631 # Copyright 2009 Canonical Ltd. This software is licensed under the
632 # GNU Affero General Public License version 3 (see the file LICENSE).
633
634=== modified file 'cronscripts/process-mail.py'
635--- cronscripts/process-mail.py 2009-10-13 14:38:07 +0000
636+++ cronscripts/process-mail.py 2010-02-25 17:26:19 +0000
637@@ -1,4 +1,4 @@
638-#!/usr/bin/python2.5
639+#!/usr/bin/python2.5 -S
640 #
641 # Copyright 2009 Canonical Ltd. This software is licensed under the
642 # GNU Affero General Public License version 3 (see the file LICENSE).
643
644=== modified file 'cronscripts/process-pending-packagediffs.py'
645--- cronscripts/process-pending-packagediffs.py 2009-10-13 14:38:07 +0000
646+++ cronscripts/process-pending-packagediffs.py 2010-02-25 17:26:19 +0000
647@@ -1,4 +1,4 @@
648-#!/usr/bin/python2.5
649+#!/usr/bin/python2.5 -S
650 #
651 # Copyright 2009 Canonical Ltd. This software is licensed under the
652 # GNU Affero General Public License version 3 (see the file LICENSE).
653
654=== modified file 'cronscripts/product-release-finder.py'
655--- cronscripts/product-release-finder.py 2009-10-13 14:38:07 +0000
656+++ cronscripts/product-release-finder.py 2010-02-25 17:26:19 +0000
657@@ -1,4 +1,4 @@
658-#!/usr/bin/python2.5
659+#!/usr/bin/python2.5 -S
660 #
661 # Copyright 2009 Canonical Ltd. This software is licensed under the
662 # GNU Affero General Public License version 3 (see the file LICENSE).
663
664=== modified file 'cronscripts/reclaimbranchspace.py'
665--- cronscripts/reclaimbranchspace.py 2009-10-13 14:38:07 +0000
666+++ cronscripts/reclaimbranchspace.py 2010-02-25 17:26:19 +0000
667@@ -1,4 +1,4 @@
668-#!/usr/bin/python2.5
669+#!/usr/bin/python2.5 -S
670 #
671 # Copyright 2009 Canonical Ltd. This software is licensed under the
672 # GNU Affero General Public License version 3 (see the file LICENSE).
673
674=== modified file 'cronscripts/rosetta-approve-imports.py'
675--- cronscripts/rosetta-approve-imports.py 2009-10-13 14:38:07 +0000
676+++ cronscripts/rosetta-approve-imports.py 2010-02-25 17:26:19 +0000
677@@ -1,4 +1,4 @@
678-#! /usr/bin/python2.5
679+#!/usr/bin/python2.5 -S
680 #
681 # Copyright 2009 Canonical Ltd. This software is licensed under the
682 # GNU Affero General Public License version 3 (see the file LICENSE).
683
684=== modified file 'cronscripts/rosetta-branches.py'
685--- cronscripts/rosetta-branches.py 2010-01-21 22:10:38 +0000
686+++ cronscripts/rosetta-branches.py 2010-02-25 17:26:19 +0000
687@@ -1,4 +1,4 @@
688-#!/usr/bin/python2.5
689+#!/usr/bin/python2.5 -S
690 #
691 # Copyright 2009 Canonical Ltd. This software is licensed under the
692 # GNU Affero General Public License version 3 (see the file LICENSE).
693
694=== modified file 'cronscripts/rosetta-export-queue.py'
695--- cronscripts/rosetta-export-queue.py 2009-10-13 14:38:07 +0000
696+++ cronscripts/rosetta-export-queue.py 2010-02-25 17:26:19 +0000
697@@ -1,4 +1,4 @@
698-#!/usr/bin/python2.5
699+#!/usr/bin/python2.5 -S
700 #
701 # Copyright 2009 Canonical Ltd. This software is licensed under the
702 # GNU Affero General Public License version 3 (see the file LICENSE).
703
704=== modified file 'cronscripts/rosetta-pofile-stats-daily.py'
705--- cronscripts/rosetta-pofile-stats-daily.py 2009-10-13 14:38:07 +0000
706+++ cronscripts/rosetta-pofile-stats-daily.py 2010-02-25 17:26:19 +0000
707@@ -1,4 +1,4 @@
708-#!/usr/bin/python2.5
709+#!/usr/bin/python2.5 -S
710 #
711 # Copyright 2009 Canonical Ltd. This software is licensed under the
712 # GNU Affero General Public License version 3 (see the file LICENSE).
713
714=== modified file 'cronscripts/rosetta-pofile-stats.py'
715--- cronscripts/rosetta-pofile-stats.py 2009-10-13 14:38:07 +0000
716+++ cronscripts/rosetta-pofile-stats.py 2010-02-25 17:26:19 +0000
717@@ -1,4 +1,4 @@
718-#!/usr/bin/python2.5
719+#!/usr/bin/python2.5 -S
720 #
721 # Copyright 2009 Canonical Ltd. This software is licensed under the
722 # GNU Affero General Public License version 3 (see the file LICENSE).
723
724=== modified file 'cronscripts/rosetta-poimport.py'
725--- cronscripts/rosetta-poimport.py 2009-10-13 14:38:07 +0000
726+++ cronscripts/rosetta-poimport.py 2010-02-25 17:26:19 +0000
727@@ -1,4 +1,4 @@
728-#!/usr/bin/python2.5
729+#!/usr/bin/python2.5 -S
730 #
731 # Copyright 2009 Canonical Ltd. This software is licensed under the
732 # GNU Affero General Public License version 3 (see the file LICENSE).
733
734=== modified file 'cronscripts/scan_branches.py'
735--- cronscripts/scan_branches.py 2010-01-14 22:40:33 +0000
736+++ cronscripts/scan_branches.py 2010-02-25 17:26:19 +0000
737@@ -1,4 +1,4 @@
738-#!/usr/bin/python2.5
739+#!/usr/bin/python2.5 -S
740 #
741 # Copyright 2010 Canonical Ltd. This software is licensed under the
742 # GNU Affero General Public License version 3 (see the file LICENSE).
743
744=== modified file 'cronscripts/send-bug-notifications.py'
745--- cronscripts/send-bug-notifications.py 2009-10-13 14:38:07 +0000
746+++ cronscripts/send-bug-notifications.py 2010-02-25 17:26:19 +0000
747@@ -1,4 +1,4 @@
748-#!/usr/bin/python2.5
749+#!/usr/bin/python2.5 -S
750 #
751 # Copyright 2009 Canonical Ltd. This software is licensed under the
752 # GNU Affero General Public License version 3 (see the file LICENSE).
753
754=== modified file 'cronscripts/send-person-notifications.py'
755--- cronscripts/send-person-notifications.py 2010-02-17 17:21:00 +0000
756+++ cronscripts/send-person-notifications.py 2010-02-25 17:26:19 +0000
757@@ -1,4 +1,4 @@
758-#!/usr/bin/python2.5
759+#!/usr/bin/python2.5 -S
760 #
761 # Copyright 2009 Canonical Ltd. This software is licensed under the
762 # GNU Affero General Public License version 3 (see the file LICENSE).
763
764=== modified file 'cronscripts/sendbranchmail.py'
765--- cronscripts/sendbranchmail.py 2010-01-21 22:10:38 +0000
766+++ cronscripts/sendbranchmail.py 2010-02-25 17:26:19 +0000
767@@ -1,4 +1,4 @@
768-#!/usr/bin/python2.5
769+#!/usr/bin/python2.5 -S
770 #
771 # Copyright 2009 Canonical Ltd. This software is licensed under the
772 # GNU Affero General Public License version 3 (see the file LICENSE).
773
774=== modified file 'cronscripts/supermirror-pull.py'
775--- cronscripts/supermirror-pull.py 2010-02-24 04:24:01 +0000
776+++ cronscripts/supermirror-pull.py 2010-02-25 17:26:19 +0000
777@@ -1,4 +1,4 @@
778-#!/usr/bin/python2.5
779+#!/usr/bin/python2.5 -S
780 #
781 # Copyright 2009 Canonical Ltd. This software is licensed under the
782 # GNU Affero General Public License version 3 (see the file LICENSE).
783
784=== modified file 'cronscripts/translations-export-to-branch.py'
785--- cronscripts/translations-export-to-branch.py 2009-10-13 14:38:07 +0000
786+++ cronscripts/translations-export-to-branch.py 2010-02-25 17:26:19 +0000
787@@ -1,4 +1,4 @@
788-#!/usr/bin/python2.5
789+#!/usr/bin/python2.5 -S
790 # pylint: disable-msg=W0403
791 #
792 # Copyright 2009 Canonical Ltd. This software is licensed under the
793
794=== modified file 'cronscripts/update-bugtask-targetnamecaches.py'
795--- cronscripts/update-bugtask-targetnamecaches.py 2009-10-13 14:38:07 +0000
796+++ cronscripts/update-bugtask-targetnamecaches.py 2010-02-25 17:26:19 +0000
797@@ -1,4 +1,4 @@
798-#!/usr/bin/python2.5
799+#!/usr/bin/python2.5 -S
800 #
801 # Copyright 2009 Canonical Ltd. This software is licensed under the
802 # GNU Affero General Public License version 3 (see the file LICENSE).
803
804=== modified file 'cronscripts/update-cve.py'
805--- cronscripts/update-cve.py 2009-10-13 14:38:07 +0000
806+++ cronscripts/update-cve.py 2010-02-25 17:26:19 +0000
807@@ -1,4 +1,4 @@
808-#!/usr/bin/python2.5
809+#!/usr/bin/python2.5 -S
810 #
811 # Copyright 2009 Canonical Ltd. This software is licensed under the
812 # GNU Affero General Public License version 3 (see the file LICENSE).
813
814=== modified file 'cronscripts/update-debwatches.py'
815--- cronscripts/update-debwatches.py 2009-10-19 17:59:47 +0000
816+++ cronscripts/update-debwatches.py 2010-02-25 17:26:19 +0000
817@@ -1,4 +1,4 @@
818-#!/usr/bin/python2.5
819+#!/usr/bin/python2.5 -S
820 #
821 # Copyright 2009 Canonical Ltd. This software is licensed under the
822 # GNU Affero General Public License version 3 (see the file LICENSE).
823
824=== modified file 'cronscripts/update-pkgcache.py'
825--- cronscripts/update-pkgcache.py 2009-11-17 02:33:27 +0000
826+++ cronscripts/update-pkgcache.py 2010-02-25 17:26:19 +0000
827@@ -1,4 +1,4 @@
828-#!/usr/bin/python2.5
829+#!/usr/bin/python2.5 -S
830 #
831 # Copyright 2009 Canonical Ltd. This software is licensed under the
832 # GNU Affero General Public License version 3 (see the file LICENSE).
833
834=== modified file 'cronscripts/update-remote-product.py'
835--- cronscripts/update-remote-product.py 2009-10-21 22:46:04 +0000
836+++ cronscripts/update-remote-product.py 2010-02-25 17:26:19 +0000
837@@ -1,4 +1,4 @@
838-#!/usr/bin/python2.5
839+#!/usr/bin/python2.5 -S
840 #
841 # Copyright 2009 Canonical Ltd. This software is licensed under the
842 # GNU Affero General Public License version 3 (see the file LICENSE).
843
844=== modified file 'cronscripts/update-sourceforge-remote-products.py'
845--- cronscripts/update-sourceforge-remote-products.py 2009-10-21 22:46:04 +0000
846+++ cronscripts/update-sourceforge-remote-products.py 2010-02-25 17:26:19 +0000
847@@ -1,4 +1,4 @@
848-#!/usr/bin/python2.5
849+#!/usr/bin/python2.5 -S
850 #
851 # Copyright 2009 Canonical Ltd. This software is licensed under the
852 # GNU Affero General Public License version 3 (see the file LICENSE).
853
854=== modified file 'cronscripts/update-standing.py'
855--- cronscripts/update-standing.py 2009-10-13 14:38:07 +0000
856+++ cronscripts/update-standing.py 2010-02-25 17:26:19 +0000
857@@ -1,4 +1,4 @@
858-#!/usr/bin/python2.5
859+#!/usr/bin/python2.5 -S
860 #
861 # Copyright 2009 Canonical Ltd. This software is licensed under the
862 # GNU Affero General Public License version 3 (see the file LICENSE).
863
864=== modified file 'cronscripts/update-stats.py'
865--- cronscripts/update-stats.py 2009-11-17 02:33:27 +0000
866+++ cronscripts/update-stats.py 2010-02-25 17:26:19 +0000
867@@ -1,4 +1,4 @@
868-#!/usr/bin/python2.5
869+#!/usr/bin/python2.5 -S
870 #
871 # Copyright 2009 Canonical Ltd. This software is licensed under the
872 # GNU Affero General Public License version 3 (see the file LICENSE).
873
874=== modified file 'cronscripts/update_preview_diffs.py'
875--- cronscripts/update_preview_diffs.py 2009-12-10 18:48:00 +0000
876+++ cronscripts/update_preview_diffs.py 2010-02-25 17:26:19 +0000
877@@ -1,4 +1,4 @@
878-#!/usr/bin/python2.5
879+#!/usr/bin/python2.5 -S
880 #
881 # Copyright 2009 Canonical Ltd. This software is licensed under the
882 # GNU Affero General Public License version 3 (see the file LICENSE).
883
884=== modified file 'cronscripts/upgrade_branches.py'
885--- cronscripts/upgrade_branches.py 2010-01-14 22:40:33 +0000
886+++ cronscripts/upgrade_branches.py 2010-02-25 17:26:19 +0000
887@@ -1,4 +1,4 @@
888-#!/usr/bin/python2.5
889+#!/usr/bin/python2.5 -S
890 #
891 # Copyright 2009 Canonical Ltd. This software is licensed under the
892 # GNU Affero General Public License version 3 (see the file LICENSE).
893
894=== modified file 'lib/canonical/launchpad/mailman/runmailman.py'
895--- lib/canonical/launchpad/mailman/runmailman.py 2009-06-25 05:30:52 +0000
896+++ lib/canonical/launchpad/mailman/runmailman.py 2010-02-25 17:26:19 +0000
897@@ -48,10 +48,6 @@
898 stderr = None
899 env = dict(os.environ)
900 env['LPCONFIG'] = config.instance_name
901- # We want to make sure that the Launchpad process will have the benefit of
902- # all of the dependency paths inserted by the buildout bin/run script. We
903- # pass them via PYTHONPATH.
904- env['PYTHONPATH'] = os.path.pathsep.join(sys.path)
905 process = subprocess.Popen(
906 args, cwd=mailman_bin, stdout=stdout, stderr=stderr, env=env)
907 code = process.wait()
908
909=== modified file 'lib/lp/registry/tests/test_mlists.py'
910--- lib/lp/registry/tests/test_mlists.py 2009-09-30 08:12:09 +0000
911+++ lib/lp/registry/tests/test_mlists.py 2010-02-25 17:26:19 +0000
912@@ -392,7 +392,6 @@
913 return Popen(args, stdout=PIPE, stderr=STDOUT,
914 cwd=LayerProcessController.appserver_config.root,
915 env=dict(LPCONFIG='testrunner-appserver',
916- PYTHONPATH=os.pathsep.join(sys.path),
917 PATH=os.environ['PATH']))
918
919 def test_import(self):
920
921=== added file 'lib/lp_sitecustomize.py'
922--- lib/lp_sitecustomize.py 1970-01-01 00:00:00 +0000
923+++ lib/lp_sitecustomize.py 2010-02-25 17:26:19 +0000
924@@ -0,0 +1,22 @@
925+# Copyright 2009 Canonical Ltd. This software is licensed under the
926+# GNU Affero General Public License version 3 (see the file LICENSE).
927+
928+# This file is imported by parts/scripts/sitecustomize.py, as set up in our
929+# buildout.cfg (see the "initialization" key in the "[scripts]" section).
930+
931+import os
932+from lp.services.mime import customizeMimetypes
933+
934+def main():
935+ # Note that we configure the LPCONFIG environmental variable in the
936+ # custom buildout-generated sitecustomize.py in
937+ # parts/scripts/sitecustomize.py rather than here. This is because
938+ # the instance name, ${configuration:instance_name}, is dynamic,
939+ # sent to buildout from the Makefile. See buildout.cfg in the
940+ # initialization value of the [scripts] section for the code that
941+ # goes into this custom sitecustomize.py. We do as much other
942+ # initialization as possible here, in a more visible place.
943+ os.environ['STORM_CEXTENSIONS'] = '1'
944+ customizeMimetypes()
945+
946+main()
947
948=== removed file 'lib/site.py'
949--- lib/site.py 2009-12-14 21:39:49 +0000
950+++ lib/site.py 1970-01-01 00:00:00 +0000
951@@ -1,30 +0,0 @@
952-# LAUNCHPAD HACK OF STDLIB SITE.PY
953-# Why are we hacking site.py?
954-# The short answer is that namespace packages in setuptools have problems.
955-# A longer answer is that we have to import pkg_resources before namespace
956-# package .pth files are processed or else the distribution's namespace
957-# packages will mask all of the egg-based packages in the same namespace
958-# package. Normally, we handle that in bin/py or _pythonpath. but sometimes
959-# we do subprocess calls, relying on the PYTHONPATH to set the eggs
960-# correctly. It is for this situation that we have hacked site.py.
961-
962-# Before we actually import pkg_resources, we need to filter warnings,
963-# because importing pkg_resources will otherwise trigger a type of
964-# warnings that we don't care about. These warnings occur when Python
965-# 2.5 and higher encounters directories that do not have an __init__.py.
966-# These can be data directories, or namespace directories in
967-# site-packages, such as "zope" or "lazr."
968-__import__('warnings').filterwarnings(
969- 'ignore', "Not importing directory '.+': missing __init__.py")
970-
971-# Now here is the important part:
972-try:
973- __import__('pkg_resources') # Use __import__ to not pollute the namespace.
974-except ImportError:
975- pass
976-
977-# Now, we want to get the usual site.py behavior.
978-import os
979-import sys
980-execfile(
981- os.path.join(sys.prefix, 'lib', 'python' + sys.version[:3], 'site.py'))
982
983=== modified file 'scripts/branch-distro.py'
984--- scripts/branch-distro.py 2010-01-20 23:10:44 +0000
985+++ scripts/branch-distro.py 2010-02-25 17:26:19 +0000
986@@ -1,4 +1,4 @@
987-#!/usr/bin/python2.5
988+#!/usr/bin/python2.5 -S
989 #
990 # Copyright 2009 Canonical Ltd. This software is licensed under the
991 # GNU Affero General Public License version 3 (see the file LICENSE).
992
993=== modified file 'scripts/branch-rewrite.py'
994--- scripts/branch-rewrite.py 2009-10-13 14:38:07 +0000
995+++ scripts/branch-rewrite.py 2010-02-25 17:26:19 +0000
996@@ -1,4 +1,4 @@
997-#!/usr/bin/python2.5 -u
998+#!/usr/bin/python2.5 -uS
999 #
1000 # Copyright 2009 Canonical Ltd. This software is licensed under the
1001 # GNU Affero General Public License version 3 (see the file LICENSE).
1002
1003=== modified file 'scripts/bug-export.py'
1004--- scripts/bug-export.py 2009-10-19 17:59:47 +0000
1005+++ scripts/bug-export.py 2010-02-25 17:26:19 +0000
1006@@ -1,4 +1,4 @@
1007-#!/usr/bin/python2.5
1008+#!/usr/bin/python2.5 -S
1009 #
1010 # Copyright 2009 Canonical Ltd. This software is licensed under the
1011 # GNU Affero General Public License version 3 (see the file LICENSE).
1012
1013=== modified file 'scripts/bug-import.py'
1014--- scripts/bug-import.py 2009-10-19 17:59:47 +0000
1015+++ scripts/bug-import.py 2010-02-25 17:26:19 +0000
1016@@ -1,4 +1,4 @@
1017-#!/usr/bin/python2.5
1018+#!/usr/bin/python2.5 -S
1019 #
1020 # Copyright 2009 Canonical Ltd. This software is licensed under the
1021 # GNU Affero General Public License version 3 (see the file LICENSE).
1022
1023=== modified file 'scripts/bugzilla-import.py'
1024--- scripts/bugzilla-import.py 2009-10-13 14:38:07 +0000
1025+++ scripts/bugzilla-import.py 2010-02-25 17:26:19 +0000
1026@@ -1,4 +1,4 @@
1027-#!/usr/bin/python2.5
1028+#!/usr/bin/python2.5 -S
1029 #
1030 # Copyright 2009 Canonical Ltd. This software is licensed under the
1031 # GNU Affero General Public License version 3 (see the file LICENSE).
1032
1033=== modified file 'scripts/cache-country-mirrors.py'
1034--- scripts/cache-country-mirrors.py 2009-10-21 22:46:04 +0000
1035+++ scripts/cache-country-mirrors.py 2010-02-25 17:26:19 +0000
1036@@ -1,4 +1,4 @@
1037-#!/usr/bin/python2.5
1038+#!/usr/bin/python2.5 -S
1039 #
1040 # Copyright 2009 Canonical Ltd. This software is licensed under the
1041 # GNU Affero General Public License version 3 (see the file LICENSE).
1042
1043=== modified file 'scripts/clean-sourceforge-project-entries.py'
1044--- scripts/clean-sourceforge-project-entries.py 2009-10-13 14:38:07 +0000
1045+++ scripts/clean-sourceforge-project-entries.py 2010-02-25 17:26:19 +0000
1046@@ -1,4 +1,4 @@
1047-#!/usr/bin/python2.5
1048+#!/usr/bin/python2.5 -S
1049 #
1050 # Copyright 2009 Canonical Ltd. This software is licensed under the
1051 # GNU Affero General Public License version 3 (see the file LICENSE).
1052
1053=== modified file 'scripts/close-account.py'
1054--- scripts/close-account.py 2009-10-13 14:38:07 +0000
1055+++ scripts/close-account.py 2010-02-25 17:26:19 +0000
1056@@ -1,4 +1,4 @@
1057-#!/usr/bin/python2.5
1058+#!/usr/bin/python2.5 -S
1059 #
1060 # Copyright 2009 Canonical Ltd. This software is licensed under the
1061 # GNU Affero General Public License version 3 (see the file LICENSE).
1062@@ -126,7 +126,7 @@
1063 ('PersonLanguage', 'person'),
1064 ('PersonLocation', 'person'),
1065 ('SshKey', 'person'),
1066-
1067+
1068 # Karma
1069 ('Karma', 'person'),
1070 ('KarmaCache', 'person'),
1071
1072=== modified file 'scripts/code-import-worker-db.py'
1073--- scripts/code-import-worker-db.py 2009-10-13 14:38:07 +0000
1074+++ scripts/code-import-worker-db.py 2010-02-25 17:26:19 +0000
1075@@ -1,4 +1,4 @@
1076-#!/usr/bin/python2.5
1077+#!/usr/bin/python2.5 -S
1078 #
1079 # Copyright 2009 Canonical Ltd. This software is licensed under the
1080 # GNU Affero General Public License version 3 (see the file LICENSE).
1081
1082=== modified file 'scripts/code-import-worker.py'
1083--- scripts/code-import-worker.py 2010-02-04 01:12:05 +0000
1084+++ scripts/code-import-worker.py 2010-02-25 17:26:19 +0000
1085@@ -1,4 +1,4 @@
1086-#!/usr/bin/python2.5
1087+#!/usr/bin/python2.5 -S
1088 #
1089 # Copyright 2009 Canonical Ltd. This software is licensed under the
1090 # GNU Affero General Public License version 3 (see the file LICENSE).
1091
1092=== modified file 'scripts/convert-person-to-team.py'
1093--- scripts/convert-person-to-team.py 2009-10-13 14:38:07 +0000
1094+++ scripts/convert-person-to-team.py 2010-02-25 17:26:19 +0000
1095@@ -1,4 +1,4 @@
1096-#!/usr/bin/python2.5
1097+#!/usr/bin/python2.5 -S
1098 #
1099 # Copyright 2009 Canonical Ltd. This software is licensed under the
1100 # GNU Affero General Public License version 3 (see the file LICENSE).
1101
1102=== modified file 'scripts/copy-translations-from-parent.py'
1103--- scripts/copy-translations-from-parent.py 2009-10-13 14:38:07 +0000
1104+++ scripts/copy-translations-from-parent.py 2010-02-25 17:26:19 +0000
1105@@ -1,4 +1,4 @@
1106-#!/usr/bin/python2.5
1107+#!/usr/bin/python2.5 -S
1108 #
1109 # Copyright 2009 Canonical Ltd. This software is licensed under the
1110 # GNU Affero General Public License version 3 (see the file LICENSE).
1111
1112=== modified file 'scripts/entitlements-to-lp.py'
1113--- scripts/entitlements-to-lp.py 2009-10-19 17:59:47 +0000
1114+++ scripts/entitlements-to-lp.py 2010-02-25 17:26:19 +0000
1115@@ -1,4 +1,4 @@
1116-#!/usr/bin/python2.5
1117+#!/usr/bin/python2.5 -S
1118 #
1119 # Copyright 2009 Canonical Ltd. This software is licensed under the
1120 # GNU Affero General Public License version 3 (see the file LICENSE).
1121
1122=== modified file 'scripts/find-email-clusters.py'
1123--- scripts/find-email-clusters.py 2009-10-19 17:59:47 +0000
1124+++ scripts/find-email-clusters.py 2010-02-25 17:26:19 +0000
1125@@ -1,4 +1,4 @@
1126-#!/usr/bin/python2.5
1127+#!/usr/bin/python2.5 -S
1128 #
1129 # Copyright 2009 Canonical Ltd. This software is licensed under the
1130 # GNU Affero General Public License version 3 (see the file LICENSE).
1131
1132=== modified file 'scripts/ftpmaster-tools/archive-cruft-check.py'
1133--- scripts/ftpmaster-tools/archive-cruft-check.py 2009-10-13 14:38:07 +0000
1134+++ scripts/ftpmaster-tools/archive-cruft-check.py 2010-02-25 17:26:19 +0000
1135@@ -1,4 +1,4 @@
1136-#!/usr/bin/python2.5
1137+#!/usr/bin/python2.5 -S
1138 #
1139 # Copyright 2009 Canonical Ltd. This software is licensed under the
1140 # GNU Affero General Public License version 3 (see the file LICENSE).
1141
1142=== modified file 'scripts/ftpmaster-tools/archive-override-check.py'
1143--- scripts/ftpmaster-tools/archive-override-check.py 2009-10-13 14:38:07 +0000
1144+++ scripts/ftpmaster-tools/archive-override-check.py 2010-02-25 17:26:19 +0000
1145@@ -1,4 +1,4 @@
1146-#!/usr/bin/python2.5
1147+#!/usr/bin/python2.5 -S
1148 #
1149 # Copyright 2009 Canonical Ltd. This software is licensed under the
1150 # GNU Affero General Public License version 3 (see the file LICENSE).
1151
1152=== modified file 'scripts/ftpmaster-tools/buildd-mass-retry.py'
1153--- scripts/ftpmaster-tools/buildd-mass-retry.py 2009-10-13 14:38:07 +0000
1154+++ scripts/ftpmaster-tools/buildd-mass-retry.py 2010-02-25 17:26:19 +0000
1155@@ -1,4 +1,4 @@
1156-#!/usr/bin/python2.5
1157+#!/usr/bin/python2.5 -S
1158 #
1159 # Copyright 2009 Canonical Ltd. This software is licensed under the
1160 # GNU Affero General Public License version 3 (see the file LICENSE).
1161
1162=== modified file 'scripts/ftpmaster-tools/change-override.py'
1163--- scripts/ftpmaster-tools/change-override.py 2009-10-13 14:38:07 +0000
1164+++ scripts/ftpmaster-tools/change-override.py 2010-02-25 17:26:19 +0000
1165@@ -1,4 +1,4 @@
1166-#!/usr/bin/python2.5
1167+#!/usr/bin/python2.5 -S
1168 #
1169 # Copyright 2009 Canonical Ltd. This software is licensed under the
1170 # GNU Affero General Public License version 3 (see the file LICENSE).
1171
1172=== modified file 'scripts/ftpmaster-tools/copy-package.py'
1173--- scripts/ftpmaster-tools/copy-package.py 2009-10-13 14:38:07 +0000
1174+++ scripts/ftpmaster-tools/copy-package.py 2010-02-25 17:26:19 +0000
1175@@ -1,4 +1,4 @@
1176-#!/usr/bin/python2.5
1177+#!/usr/bin/python2.5 -S
1178 #
1179 # Copyright 2009 Canonical Ltd. This software is licensed under the
1180 # GNU Affero General Public License version 3 (see the file LICENSE).
1181
1182=== modified file 'scripts/ftpmaster-tools/initialise-from-parent.py'
1183--- scripts/ftpmaster-tools/initialise-from-parent.py 2009-11-17 02:33:27 +0000
1184+++ scripts/ftpmaster-tools/initialise-from-parent.py 2010-02-25 17:26:19 +0000
1185@@ -1,4 +1,4 @@
1186-#!/usr/bin/python2.5
1187+#!/usr/bin/python2.5 -S
1188 #
1189 # Copyright 2009 Canonical Ltd. This software is licensed under the
1190 # GNU Affero General Public License version 3 (see the file LICENSE).
1191
1192=== modified file 'scripts/ftpmaster-tools/lp-query-distro.py'
1193--- scripts/ftpmaster-tools/lp-query-distro.py 2009-10-13 14:38:07 +0000
1194+++ scripts/ftpmaster-tools/lp-query-distro.py 2010-02-25 17:26:19 +0000
1195@@ -1,4 +1,4 @@
1196-#!/usr/bin/python2.5
1197+#!/usr/bin/python2.5 -S
1198 #
1199 # Copyright 2009 Canonical Ltd. This software is licensed under the
1200 # GNU Affero General Public License version 3 (see the file LICENSE).
1201
1202=== modified file 'scripts/ftpmaster-tools/lp-remove-package.py'
1203--- scripts/ftpmaster-tools/lp-remove-package.py 2009-10-13 14:38:07 +0000
1204+++ scripts/ftpmaster-tools/lp-remove-package.py 2010-02-25 17:26:19 +0000
1205@@ -1,4 +1,4 @@
1206-#!/usr/bin/python2.5
1207+#!/usr/bin/python2.5 -S
1208 #
1209 # Copyright 2009 Canonical Ltd. This software is licensed under the
1210 # GNU Affero General Public License version 3 (see the file LICENSE).
1211
1212=== modified file 'scripts/ftpmaster-tools/manage-chroot.py'
1213--- scripts/ftpmaster-tools/manage-chroot.py 2009-10-13 14:38:07 +0000
1214+++ scripts/ftpmaster-tools/manage-chroot.py 2010-02-25 17:26:19 +0000
1215@@ -1,4 +1,4 @@
1216-#!/usr/bin/python2.5
1217+#!/usr/bin/python2.5 -S
1218 #
1219 # Copyright 2009 Canonical Ltd. This software is licensed under the
1220 # GNU Affero General Public License version 3 (see the file LICENSE).
1221
1222=== modified file 'scripts/ftpmaster-tools/obsolete-distroseries.py'
1223--- scripts/ftpmaster-tools/obsolete-distroseries.py 2009-10-13 14:38:07 +0000
1224+++ scripts/ftpmaster-tools/obsolete-distroseries.py 2010-02-25 17:26:19 +0000
1225@@ -1,4 +1,4 @@
1226-#!/usr/bin/python2.5
1227+#!/usr/bin/python2.5 -S
1228 #
1229 # Copyright 2009 Canonical Ltd. This software is licensed under the
1230 # GNU Affero General Public License version 3 (see the file LICENSE).
1231
1232=== modified file 'scripts/ftpmaster-tools/ppa-report.py'
1233--- scripts/ftpmaster-tools/ppa-report.py 2009-10-13 14:38:07 +0000
1234+++ scripts/ftpmaster-tools/ppa-report.py 2010-02-25 17:26:19 +0000
1235@@ -1,4 +1,4 @@
1236-#!/usr/bin/python2.5
1237+#!/usr/bin/python2.5 -S
1238 #
1239 # Copyright 2009 Canonical Ltd. This software is licensed under the
1240 # GNU Affero General Public License version 3 (see the file LICENSE).
1241
1242=== modified file 'scripts/ftpmaster-tools/queue'
1243--- scripts/ftpmaster-tools/queue 2009-10-13 14:38:07 +0000
1244+++ scripts/ftpmaster-tools/queue 2010-02-25 17:26:19 +0000
1245@@ -1,4 +1,4 @@
1246-#!/usr/bin/python2.5
1247+#!/usr/bin/python2.5 -S
1248 #
1249 # Copyright 2009 Canonical Ltd. This software is licensed under the
1250 # GNU Affero General Public License version 3 (see the file LICENSE).
1251
1252=== modified file 'scripts/ftpmaster-tools/remove-package.py'
1253--- scripts/ftpmaster-tools/remove-package.py 2009-10-19 17:59:47 +0000
1254+++ scripts/ftpmaster-tools/remove-package.py 2010-02-25 17:26:19 +0000
1255@@ -1,4 +1,4 @@
1256-#!/usr/bin/python2.5
1257+#!/usr/bin/python2.5 -S
1258 #
1259 # Copyright 2009 Canonical Ltd. This software is licensed under the
1260 # GNU Affero General Public License version 3 (see the file LICENSE).
1261
1262=== modified file 'scripts/ftpmaster-tools/sync-source.py'
1263--- scripts/ftpmaster-tools/sync-source.py 2010-02-11 16:51:14 +0000
1264+++ scripts/ftpmaster-tools/sync-source.py 2010-02-25 17:26:19 +0000
1265@@ -1,4 +1,4 @@
1266-#!/usr/bin/python2.5
1267+#!/usr/bin/python2.5 -S
1268 #
1269 # Copyright 2009 Canonical Ltd. This software is licensed under the
1270 # GNU Affero General Public License version 3 (see the file LICENSE).
1271
1272=== modified file 'scripts/ftpmaster-tools/unembargo-package.py'
1273--- scripts/ftpmaster-tools/unembargo-package.py 2009-10-13 14:38:07 +0000
1274+++ scripts/ftpmaster-tools/unembargo-package.py 2010-02-25 17:26:19 +0000
1275@@ -1,4 +1,4 @@
1276-#!/usr/bin/python2.5
1277+#!/usr/bin/python2.5 -S
1278 #
1279 # Copyright 2009 Canonical Ltd. This software is licensed under the
1280 # GNU Affero General Public License version 3 (see the file LICENSE).
1281
1282=== modified file 'scripts/get-stacked-on-branches.py'
1283--- scripts/get-stacked-on-branches.py 2009-10-13 14:38:07 +0000
1284+++ scripts/get-stacked-on-branches.py 2010-02-25 17:26:19 +0000
1285@@ -1,4 +1,4 @@
1286-#!/usr/bin/python2.5
1287+#!/usr/bin/python2.5 -S
1288 #
1289 # Copyright 2009 Canonical Ltd. This software is licensed under the
1290 # GNU Affero General Public License version 3 (see the file LICENSE).
1291
1292=== modified file 'scripts/gina.py'
1293--- scripts/gina.py 2009-10-13 14:38:07 +0000
1294+++ scripts/gina.py 2010-02-25 17:26:19 +0000
1295@@ -1,4 +1,4 @@
1296-#!/usr/bin/python2.5
1297+#!/usr/bin/python2.5 -S
1298 #
1299 # Copyright 2009 Canonical Ltd. This software is licensed under the
1300 # GNU Affero General Public License version 3 (see the file LICENSE).
1301@@ -11,7 +11,7 @@
1302 calls to the other classes and instances.
1303
1304 The callstack is essentially:
1305- main -> run_gina
1306+ main -> run_gina
1307 -> import_sourcepackages -> do_one_sourcepackage
1308 -> import_binarypackages -> do_one_binarypackage
1309 """
1310
1311=== modified file 'scripts/import-debian-bugs.py'
1312--- scripts/import-debian-bugs.py 2009-10-13 14:38:07 +0000
1313+++ scripts/import-debian-bugs.py 2010-02-25 17:26:19 +0000
1314@@ -1,4 +1,4 @@
1315-#!/usr/bin/python2.5
1316+#!/usr/bin/python2.5 -S
1317 #
1318 # Copyright 2009 Canonical Ltd. This software is licensed under the
1319 # GNU Affero General Public License version 3 (see the file LICENSE).
1320
1321=== modified file 'scripts/import-packagenames.py'
1322--- scripts/import-packagenames.py 2009-10-19 17:59:47 +0000
1323+++ scripts/import-packagenames.py 2010-02-25 17:26:19 +0000
1324@@ -1,4 +1,4 @@
1325-#!/usr/bin/python2.5
1326+#!/usr/bin/python2.5 -S
1327 #
1328 # Copyright 2009 Canonical Ltd. This software is licensed under the
1329 # GNU Affero General Public License version 3 (see the file LICENSE).
1330
1331=== modified file 'scripts/import-zope-specs.py'
1332--- scripts/import-zope-specs.py 2009-10-13 14:38:07 +0000
1333+++ scripts/import-zope-specs.py 2010-02-25 17:26:19 +0000
1334@@ -1,4 +1,4 @@
1335-#!/usr/bin/python2.5
1336+#!/usr/bin/python2.5 -S
1337 #
1338 # Copyright 2009 Canonical Ltd. This software is licensed under the
1339 # GNU Affero General Public License version 3 (see the file LICENSE).
1340@@ -127,7 +127,7 @@
1341 if author_headers:
1342 author = author_headers[0].findNext().renderContents()
1343 self.parseAuthorEmails(author)
1344-
1345+
1346 @property
1347 def lpname(self):
1348 # add dashes before capitalised words
1349@@ -224,7 +224,7 @@
1350 lpspec.declineBy(zope_dev)
1351 lpspec.delivery = self.lpdelivery
1352 lpspec.updateLifecycleStatus(zope_dev)
1353-
1354+
1355 # set the assignee to the first author email with an LP account
1356 for author in sorted(self.authors):
1357 person = getUtility(IPersonSet).getByEmail(author)
1358@@ -255,7 +255,7 @@
1359 for tag in specanchor.nextSiblingGenerator()])
1360 yield ZopeSpec(href, title, summary.strip())
1361
1362-
1363+
1364 def main(argv):
1365 execute_zcml_for_scripts()
1366 ztm = initZopeless()
1367
1368=== modified file 'scripts/librarian-report.py'
1369--- scripts/librarian-report.py 2010-01-04 09:23:28 +0000
1370+++ scripts/librarian-report.py 2010-02-25 17:26:19 +0000
1371@@ -1,4 +1,4 @@
1372-#!/usr/bin/python2.5
1373+#!/usr/bin/python2.5 -S
1374 #
1375 # Copyright 2009 Canonical Ltd. This software is licensed under the
1376 # GNU Affero General Public License version 3 (see the file LICENSE).
1377
1378=== modified file 'scripts/linkreport.py'
1379--- scripts/linkreport.py 2009-10-13 14:38:07 +0000
1380+++ scripts/linkreport.py 2010-02-25 17:26:19 +0000
1381@@ -1,4 +1,4 @@
1382-#!/usr/bin/python2.5
1383+#!/usr/bin/python2.5 -S
1384 #
1385 # Copyright 2009 Canonical Ltd. This software is licensed under the
1386 # GNU Affero General Public License version 3 (see the file LICENSE).
1387@@ -200,7 +200,7 @@
1388 "-t", "--to", dest="email", help="Email to ADDRESS",
1389 metavar="ADDRESS", default=None
1390 )
1391-
1392+
1393 options, args = parser.parse_args()
1394
1395 log = logger(options)
1396
1397=== modified file 'scripts/list-team-members'
1398--- scripts/list-team-members 2009-12-07 19:42:12 +0000
1399+++ scripts/list-team-members 2010-02-25 17:26:19 +0000
1400@@ -1,4 +1,4 @@
1401-#!/usr/bin/python2.5
1402+#!/usr/bin/python2.5 -S
1403 #
1404 # Copyright 2009 Canonical Ltd. This software is licensed under the
1405 # GNU Affero General Public License version 3 (see the file LICENSE).
1406
1407=== modified file 'scripts/merge-email-clusters.py'
1408--- scripts/merge-email-clusters.py 2009-10-19 17:59:47 +0000
1409+++ scripts/merge-email-clusters.py 2010-02-25 17:26:19 +0000
1410@@ -1,4 +1,4 @@
1411-#!/usr/bin/python2.5
1412+#!/usr/bin/python2.5 -S
1413 #
1414 # Copyright 2009 Canonical Ltd. This software is licensed under the
1415 # GNU Affero General Public License version 3 (see the file LICENSE).
1416
1417=== modified file 'scripts/migrate-bugzilla-initialcontacts.py'
1418--- scripts/migrate-bugzilla-initialcontacts.py 2009-10-13 14:38:07 +0000
1419+++ scripts/migrate-bugzilla-initialcontacts.py 2010-02-25 17:26:19 +0000
1420@@ -1,4 +1,4 @@
1421-#!/usr/bin/python2.5
1422+#!/usr/bin/python2.5 -S
1423 #
1424 # Copyright 2009 Canonical Ltd. This software is licensed under the
1425 # GNU Affero General Public License version 3 (see the file LICENSE).
1426
1427=== modified file 'scripts/mirror-branch.py'
1428--- scripts/mirror-branch.py 2009-10-13 14:38:07 +0000
1429+++ scripts/mirror-branch.py 2010-02-25 17:26:19 +0000
1430@@ -1,4 +1,4 @@
1431-#!/usr/bin/python2.5
1432+#!/usr/bin/python2.5 -S
1433 #
1434 # Copyright 2009 Canonical Ltd. This software is licensed under the
1435 # GNU Affero General Public License version 3 (see the file LICENSE).
1436
1437=== modified file 'scripts/mlist-import.py'
1438--- scripts/mlist-import.py 2009-10-19 17:59:47 +0000
1439+++ scripts/mlist-import.py 2010-02-25 17:26:19 +0000
1440@@ -1,4 +1,4 @@
1441-#!/usr/bin/python2.5
1442+#!/usr/bin/python2.5 -S
1443 #
1444 # Copyright 2009 Canonical Ltd. This software is licensed under the
1445 # GNU Affero General Public License version 3 (see the file LICENSE).
1446
1447=== modified file 'scripts/mlist-sync.py'
1448--- scripts/mlist-sync.py 2009-10-19 17:59:47 +0000
1449+++ scripts/mlist-sync.py 2010-02-25 17:26:19 +0000
1450@@ -1,4 +1,4 @@
1451-#!/usr/bin/python2.5
1452+#!/usr/bin/python2.5 -S
1453 #
1454 # Copyright 2009 Canonical Ltd. This software is licensed under the
1455 # GNU Affero General Public License version 3 (see the file LICENSE).
1456
1457=== modified file 'scripts/modified-branches.py'
1458--- scripts/modified-branches.py 2009-10-13 14:38:07 +0000
1459+++ scripts/modified-branches.py 2010-02-25 17:26:19 +0000
1460@@ -1,4 +1,4 @@
1461-#!/usr/bin/python2.5
1462+#!/usr/bin/python2.5 -S
1463 #
1464 # Copyright 2009 Canonical Ltd. This software is licensed under the
1465 # GNU Affero General Public License version 3 (see the file LICENSE).
1466
1467=== modified file 'scripts/populate-archive.py'
1468--- scripts/populate-archive.py 2009-10-13 14:38:07 +0000
1469+++ scripts/populate-archive.py 2010-02-25 17:26:19 +0000
1470@@ -1,4 +1,4 @@
1471-#!/usr/bin/python2.5
1472+#!/usr/bin/python2.5 -S
1473 #
1474 # Copyright 2009 Canonical Ltd. This software is licensed under the
1475 # GNU Affero General Public License version 3 (see the file LICENSE).
1476
1477=== modified file 'scripts/ppa-add-missing-builds.py'
1478--- scripts/ppa-add-missing-builds.py 2010-01-27 17:45:03 +0000
1479+++ scripts/ppa-add-missing-builds.py 2010-02-25 17:26:19 +0000
1480@@ -1,4 +1,4 @@
1481-#!/usr/bin/python2.5
1482+#!/usr/bin/python2.5 -S
1483 #
1484 # Copyright 2010 Canonical Ltd. This software is licensed under the
1485 # GNU Affero General Public License version 3 (see the file LICENSE).
1486
1487=== modified file 'scripts/process-accepted.py'
1488--- scripts/process-accepted.py 2010-02-23 10:54:35 +0000
1489+++ scripts/process-accepted.py 2010-02-25 17:26:19 +0000
1490@@ -1,4 +1,4 @@
1491-#!/usr/bin/python2.5
1492+#!/usr/bin/python2.5 -S
1493 #
1494 # Copyright 2009 Canonical Ltd. This software is licensed under the
1495 # GNU Affero General Public License version 3 (see the file LICENSE).
1496
1497=== modified file 'scripts/process-death-row.py'
1498--- scripts/process-death-row.py 2009-10-13 14:38:07 +0000
1499+++ scripts/process-death-row.py 2010-02-25 17:26:19 +0000
1500@@ -1,4 +1,4 @@
1501-#!/usr/bin/python2.5
1502+#!/usr/bin/python2.5 -S
1503 #
1504 # Copyright 2009 Canonical Ltd. This software is licensed under the
1505 # GNU Affero General Public License version 3 (see the file LICENSE).
1506
1507=== modified file 'scripts/process-upload.py'
1508--- scripts/process-upload.py 2009-10-13 14:38:07 +0000
1509+++ scripts/process-upload.py 2010-02-25 17:26:19 +0000
1510@@ -1,4 +1,4 @@
1511-#!/usr/bin/python2.5
1512+#!/usr/bin/python2.5 -S
1513 #
1514 # Copyright 2009 Canonical Ltd. This software is licensed under the
1515 # GNU Affero General Public License version 3 (see the file LICENSE).
1516
1517=== modified file 'scripts/publish-distro.py'
1518--- scripts/publish-distro.py 2009-10-13 14:38:07 +0000
1519+++ scripts/publish-distro.py 2010-02-25 17:26:19 +0000
1520@@ -1,4 +1,4 @@
1521-#!/usr/bin/python2.5
1522+#!/usr/bin/python2.5 -S
1523 #
1524 # Copyright 2009 Canonical Ltd. This software is licensed under the
1525 # GNU Affero General Public License version 3 (see the file LICENSE).
1526
1527=== modified file 'scripts/rosetta/check-distroseries-translations-diffs.py'
1528--- scripts/rosetta/check-distroseries-translations-diffs.py 2009-10-13 14:38:07 +0000
1529+++ scripts/rosetta/check-distroseries-translations-diffs.py 2010-02-25 17:26:19 +0000
1530@@ -1,4 +1,4 @@
1531-#!/usr/bin/python2.5
1532+#!/usr/bin/python2.5 -S
1533 #
1534 # Copyright 2009 Canonical Ltd. This software is licensed under the
1535 # GNU Affero General Public License version 3 (see the file LICENSE).
1536
1537=== modified file 'scripts/rosetta/fix_translation_credits.py'
1538--- scripts/rosetta/fix_translation_credits.py 2009-11-06 21:58:50 +0000
1539+++ scripts/rosetta/fix_translation_credits.py 2010-02-25 17:26:19 +0000
1540@@ -1,4 +1,4 @@
1541-#!/usr/bin/python2.5
1542+#!/usr/bin/python2.5 -S
1543 #
1544 # Copyright 2009 Canonical Ltd. This software is licensed under the
1545 # GNU Affero General Public License version 3 (see the file LICENSE).
1546
1547=== modified file 'scripts/rosetta/gettext_check_messages.py'
1548--- scripts/rosetta/gettext_check_messages.py 2009-10-13 14:38:07 +0000
1549+++ scripts/rosetta/gettext_check_messages.py 2010-02-25 17:26:19 +0000
1550@@ -1,4 +1,4 @@
1551-#! /usr/bin/python2.5
1552+#!/usr/bin/python2.5 -S
1553 #
1554 # Copyright 2009 Canonical Ltd. This software is licensed under the
1555 # GNU Affero General Public License version 3 (see the file LICENSE).
1556
1557=== modified file 'scripts/rosetta/message-sharing-merge.py'
1558--- scripts/rosetta/message-sharing-merge.py 2009-10-13 14:38:07 +0000
1559+++ scripts/rosetta/message-sharing-merge.py 2010-02-25 17:26:19 +0000
1560@@ -1,4 +1,4 @@
1561-#! /usr/bin/python2.5
1562+#!/usr/bin/python2.5 -S
1563 #
1564 # Copyright 2009 Canonical Ltd. This software is licensed under the
1565 # GNU Affero General Public License version 3 (see the file LICENSE).
1566@@ -18,7 +18,7 @@
1567 # TranslationTemplateItems:
1568 #
1569 # GRANT DELETE ON POTMsgSET TO rosettaadmin;
1570-# GRANT DELETE ON TranslationTemplateItem TO rosettaadmin;
1571+# GRANT DELETE ON TranslationTemplateItem TO rosettaadmin;
1572
1573
1574 if __name__ == '__main__':
1575
1576=== modified file 'scripts/rosetta/message-sharing-populate-test.py'
1577--- scripts/rosetta/message-sharing-populate-test.py 2009-10-13 14:38:07 +0000
1578+++ scripts/rosetta/message-sharing-populate-test.py 2010-02-25 17:26:19 +0000
1579@@ -1,4 +1,4 @@
1580-#! /usr/bin/python2.5
1581+#!/usr/bin/python2.5 -S
1582 #
1583 # Copyright 2009 Canonical Ltd. This software is licensed under the
1584 # GNU Affero General Public License version 3 (see the file LICENSE).
1585
1586=== modified file 'scripts/rosetta/message-sharing-populate.py'
1587--- scripts/rosetta/message-sharing-populate.py 2009-10-13 14:38:07 +0000
1588+++ scripts/rosetta/message-sharing-populate.py 2010-02-25 17:26:19 +0000
1589@@ -1,4 +1,4 @@
1590-#! /usr/bin/python2.5
1591+#!/usr/bin/python2.5 -S
1592 #
1593 # Copyright 2009 Canonical Ltd. This software is licensed under the
1594 # GNU Affero General Public License version 3 (see the file LICENSE).
1595
1596=== modified file 'scripts/rosetta/pottery-generate-intltool.py'
1597--- scripts/rosetta/pottery-generate-intltool.py 2010-02-16 16:42:34 +0000
1598+++ scripts/rosetta/pottery-generate-intltool.py 2010-02-25 17:26:19 +0000
1599@@ -1,4 +1,4 @@
1600-#! /usr/bin/python2.5
1601+#!/usr/bin/python2.5 -S
1602 #
1603 # Copyright 2009 Canonical Ltd. This software is licensed under the
1604 # GNU Affero General Public License version 3 (see the file LICENSE).
1605
1606=== modified file 'scripts/rosetta/remove-obsolete-translations.py'
1607--- scripts/rosetta/remove-obsolete-translations.py 2009-10-13 14:38:07 +0000
1608+++ scripts/rosetta/remove-obsolete-translations.py 2010-02-25 17:26:19 +0000
1609@@ -1,4 +1,4 @@
1610-#!/usr/bin/python2.5
1611+#!/usr/bin/python2.5 -S
1612 #
1613 # Copyright 2009 Canonical Ltd. This software is licensed under the
1614 # GNU Affero General Public License version 3 (see the file LICENSE).
1615
1616=== modified file 'scripts/rosetta/remove-translations-by.py'
1617--- scripts/rosetta/remove-translations-by.py 2009-10-13 14:38:07 +0000
1618+++ scripts/rosetta/remove-translations-by.py 2010-02-25 17:26:19 +0000
1619@@ -1,4 +1,4 @@
1620-#!/usr/bin/python2.5
1621+#!/usr/bin/python2.5 -S
1622 #
1623 # Copyright 2009 Canonical Ltd. This software is licensed under the
1624 # GNU Affero General Public License version 3 (see the file LICENSE).
1625
1626=== modified file 'scripts/rosetta/remove-upstream-translations.py'
1627--- scripts/rosetta/remove-upstream-translations.py 2009-10-19 17:59:47 +0000
1628+++ scripts/rosetta/remove-upstream-translations.py 2010-02-25 17:26:19 +0000
1629@@ -1,4 +1,4 @@
1630-#!/usr/bin/python2.5
1631+#!/usr/bin/python2.5 -S
1632 #
1633 # Copyright 2009 Canonical Ltd. This software is licensed under the
1634 # GNU Affero General Public License version 3 (see the file LICENSE).
1635
1636=== modified file 'scripts/rosetta/reupload-translations.py'
1637--- scripts/rosetta/reupload-translations.py 2009-10-14 13:13:47 +0000
1638+++ scripts/rosetta/reupload-translations.py 2010-02-25 17:26:19 +0000
1639@@ -1,4 +1,4 @@
1640-#! /usr/bin/env python2.5
1641+#!/usr/bin/python2.5 -S
1642 #
1643 # Copyright 2009 Canonical Ltd. This software is licensed under the
1644 # GNU Affero General Public License version 3 (see the file LICENSE).
1645
1646=== modified file 'scripts/rosetta/share-jaunty-translations.py'
1647--- scripts/rosetta/share-jaunty-translations.py 2009-10-13 14:38:07 +0000
1648+++ scripts/rosetta/share-jaunty-translations.py 2010-02-25 17:26:19 +0000
1649@@ -1,4 +1,4 @@
1650-#!/usr/bin/python2.5
1651+#!/usr/bin/python2.5 -S
1652 #
1653 # Copyright 2009 Canonical Ltd. This software is licensed under the
1654 # GNU Affero General Public License version 3 (see the file LICENSE).
1655
1656=== modified file 'scripts/rosetta/validate-translations-file.py'
1657--- scripts/rosetta/validate-translations-file.py 2010-01-06 06:04:54 +0000
1658+++ scripts/rosetta/validate-translations-file.py 2010-02-25 17:26:19 +0000
1659@@ -1,4 +1,4 @@
1660-#! /usr/bin/python2.5
1661+#!/usr/bin/python2.5 -S
1662 # Copyright 2010 Canonical Ltd. This software is licensed under the
1663 # GNU Affero General Public License version 3 (see the file LICENSE).
1664
1665
1666=== modified file 'scripts/script-monitor-nagios.py'
1667--- scripts/script-monitor-nagios.py 2009-10-13 14:38:07 +0000
1668+++ scripts/script-monitor-nagios.py 2010-02-25 17:26:19 +0000
1669@@ -1,11 +1,11 @@
1670-#!/usr/bin/python2.5
1671+#!/usr/bin/python2.5 -S
1672 #
1673 # Copyright 2009 Canonical Ltd. This software is licensed under the
1674 # GNU Affero General Public License version 3 (see the file LICENSE).
1675
1676 """Nagios plugin for script monitoring.
1677
1678-This script is needed as separate from script-monitor.py because Nagios
1679+This script is needed as separate from script-monitor.py because Nagios
1680 only understands one line of returned text, and interprets specific
1681 return codes as plugin statuses. These are:
1682
1683@@ -14,7 +14,7 @@
1684 2: CRITICAL
1685 3: UNKNOWN
1686
1687-As such, it was felt more appropriate to separate out the scripts,
1688+As such, it was felt more appropriate to separate out the scripts,
1689 even though there is some code duplication.
1690 """
1691
1692@@ -34,8 +34,8 @@
1693
1694
1695 def main():
1696- # XXX: Tom Haddon 2007-07-12
1697- # There's a lot of untested stuff here: parsing options -
1698+ # XXX: Tom Haddon 2007-07-12
1699+ # There's a lot of untested stuff here: parsing options -
1700 # this should be moved into a testable location.
1701 # Also duplicated code in scripts/script-monitor.py
1702 parser = OptionParser(
1703@@ -81,7 +81,7 @@
1704 error_found = False
1705 msg = []
1706 for hostname, scriptname in hosts_scripts:
1707- failure_msg = check_script(con, log, hostname,
1708+ failure_msg = check_script(con, log, hostname,
1709 scriptname, completed_from, completed_to)
1710 if failure_msg is not None:
1711 msg.append("%s:%s" % (hostname, scriptname))
1712
1713=== modified file 'scripts/script-monitor.py'
1714--- scripts/script-monitor.py 2009-10-13 14:38:07 +0000
1715+++ scripts/script-monitor.py 2010-02-25 17:26:19 +0000
1716@@ -1,4 +1,4 @@
1717-#!/usr/bin/python2.5
1718+#!/usr/bin/python2.5 -S
1719 #
1720 # Copyright 2009 Canonical Ltd. This software is licensed under the
1721 # GNU Affero General Public License version 3 (see the file LICENSE).
1722@@ -23,7 +23,7 @@
1723
1724
1725 def main():
1726- # XXX: Tom Haddon 2007-07-12
1727+ # XXX: Tom Haddon 2007-07-12
1728 # There's a lot of untested stuff here: parsing options and sending
1729 # emails - this should be moved into a testable location.
1730 # Also duplicated code in scripts/script-monitor-nagios.py
1731@@ -68,7 +68,7 @@
1732 error_found = False
1733 msg, subj = [], []
1734 for hostname, scriptname in hosts_scripts:
1735- failure_msg = check_script(con, log, hostname,
1736+ failure_msg = check_script(con, log, hostname,
1737 scriptname, completed_from, completed_to)
1738 if failure_msg is not None:
1739 msg.append(failure_msg)
1740@@ -81,7 +81,7 @@
1741 msg['From'] = 'script-failures@launchpad.net'
1742 msg['Reply-To'] = 'launchpad@lists.canonical.com'
1743 msg['To'] = 'launchpad@lists.canonical.com'
1744-
1745+
1746 # Send out the email
1747 smtp = smtplib.SMTP()
1748 smtp.connect()
1749
1750=== modified file 'scripts/sourceforge-import.py'
1751--- scripts/sourceforge-import.py 2009-10-19 17:59:47 +0000
1752+++ scripts/sourceforge-import.py 2010-02-25 17:26:19 +0000
1753@@ -1,4 +1,4 @@
1754-#!/usr/bin/python2.5
1755+#!/usr/bin/python2.5 -S
1756 #
1757 # Copyright 2009 Canonical Ltd. This software is licensed under the
1758 # GNU Affero General Public License version 3 (see the file LICENSE).
1759
1760=== modified file 'scripts/update-stacked-on.py'
1761--- scripts/update-stacked-on.py 2010-01-20 23:10:44 +0000
1762+++ scripts/update-stacked-on.py 2010-02-25 17:26:19 +0000
1763@@ -1,4 +1,4 @@
1764-#!/usr/bin/python2.5
1765+#!/usr/bin/python2.5 -S
1766 #
1767 # Copyright 2009 Canonical Ltd. This software is licensed under the
1768 # GNU Affero General Public License version 3 (see the file LICENSE).
1769
1770=== modified file 'scripts/upload2librarian.py'
1771--- scripts/upload2librarian.py 2009-10-19 17:59:47 +0000
1772+++ scripts/upload2librarian.py 2010-02-25 17:26:19 +0000
1773@@ -1,4 +1,4 @@
1774-#!/usr/bin/python2.5
1775+#!/usr/bin/python2.5 -S
1776 #
1777 # Copyright 2009 Canonical Ltd. This software is licensed under the
1778 # GNU Affero General Public License version 3 (see the file LICENSE).
1779
1780=== modified file 'utilities/check-configs.py'
1781--- utilities/check-configs.py 2009-10-17 14:06:03 +0000
1782+++ utilities/check-configs.py 2010-02-25 17:26:19 +0000
1783@@ -1,4 +1,4 @@
1784-#! /usr/bin/python2.5
1785+#! /usr/bin/python2.5 -S
1786 #
1787 # Copyright 2009 Canonical Ltd. This software is licensed under the
1788 # GNU Affero General Public License version 3 (see the file LICENSE).
1789
1790=== modified file 'utilities/check-content-interfaces.py'
1791--- utilities/check-content-interfaces.py 2009-10-17 14:06:03 +0000
1792+++ utilities/check-content-interfaces.py 2010-02-25 17:26:19 +0000
1793@@ -1,4 +1,4 @@
1794-#! /usr/bin/python2.5
1795+#! /usr/bin/python2.5 -S
1796 #
1797 # Copyright 2009 Canonical Ltd. This software is licensed under the
1798 # GNU Affero General Public License version 3 (see the file LICENSE).
1799
1800=== modified file 'utilities/check-sampledata.py'
1801--- utilities/check-sampledata.py 2009-10-17 14:06:03 +0000
1802+++ utilities/check-sampledata.py 2010-02-25 17:26:19 +0000
1803@@ -1,4 +1,4 @@
1804-#! /usr/bin/python2.5
1805+#! /usr/bin/python2.5 -S
1806 #
1807 # Copyright 2009 Canonical Ltd. This software is licensed under the
1808 # GNU Affero General Public License version 3 (see the file LICENSE).
1809
1810=== modified file 'utilities/check-scripts.py'
1811--- utilities/check-scripts.py 2009-10-19 17:59:47 +0000
1812+++ utilities/check-scripts.py 2010-02-25 17:26:19 +0000
1813@@ -1,4 +1,4 @@
1814-#! /usr/bin/python2.5
1815+#! /usr/bin/python2.5 -S
1816 #
1817 # Copyright 2009 Canonical Ltd. This software is licensed under the
1818 # GNU Affero General Public License version 3 (see the file LICENSE).
1819
1820=== modified file 'utilities/create-lp-wadl.py'
1821--- utilities/create-lp-wadl.py 2009-10-17 14:06:03 +0000
1822+++ utilities/create-lp-wadl.py 2010-02-25 17:26:19 +0000
1823@@ -1,4 +1,4 @@
1824-#! /usr/bin/python2.5
1825+#! /usr/bin/python2.5 -S
1826 #
1827 # Copyright 2009 Canonical Ltd. This software is licensed under the
1828 # GNU Affero General Public License version 3 (see the file LICENSE).
1829
1830=== modified file 'utilities/ec2'
1831--- utilities/ec2 2009-10-23 15:17:57 +0000
1832+++ utilities/ec2 2010-02-25 17:26:19 +0000
1833@@ -1,4 +1,4 @@
1834-#!/usr/bin/python2.5
1835+#!/usr/bin/python2.5 -S
1836
1837 # Copyright 2009 Canonical Ltd. This software is licensed under the
1838 # GNU Affero General Public License version 3 (see the file LICENSE).
1839
1840=== modified file 'utilities/generate-external-bug-status-docs'
1841--- utilities/generate-external-bug-status-docs 2009-10-17 14:06:03 +0000
1842+++ utilities/generate-external-bug-status-docs 2010-02-25 17:26:19 +0000
1843@@ -1,4 +1,4 @@
1844-#!/usr/bin/python2.5
1845+#!/usr/bin/python2.5 -S
1846 #
1847 # Copyright 2009 Canonical Ltd. This software is licensed under the
1848 # GNU Affero General Public License version 3 (see the file LICENSE).
1849
1850=== modified file 'utilities/get-branch-info'
1851--- utilities/get-branch-info 2009-10-17 14:06:03 +0000
1852+++ utilities/get-branch-info 2010-02-25 17:26:19 +0000
1853@@ -1,4 +1,4 @@
1854-#!/usr/bin/python2.5
1855+#!/usr/bin/python2.5 -S
1856 #
1857 # Copyright 2009 Canonical Ltd. This software is licensed under the
1858 # GNU Affero General Public License version 3 (see the file LICENSE).
1859
1860=== modified file 'utilities/list-person-references.py'
1861--- utilities/list-person-references.py 2009-10-17 14:06:03 +0000
1862+++ utilities/list-person-references.py 2010-02-25 17:26:19 +0000
1863@@ -1,8 +1,10 @@
1864-#!/usr/bin/python2.5
1865+#!/usr/bin/python2.5 -S
1866 #
1867 # Copyright 2009 Canonical Ltd. This software is licensed under the
1868 # GNU Affero General Public License version 3 (see the file LICENSE).
1869
1870+import _pythonpath
1871+
1872 import sys
1873 from canonical.lp import initZopeless
1874 from canonical.database import postgresql
1875
1876=== modified file 'utilities/lsconf.py'
1877--- utilities/lsconf.py 2009-10-19 17:59:47 +0000
1878+++ utilities/lsconf.py 2010-02-25 17:26:19 +0000
1879@@ -1,4 +1,4 @@
1880-#!/usr/bin/python2.5
1881+#!/usr/bin/python2.5 -S
1882 #
1883 # Copyright 2009 Canonical Ltd. This software is licensed under the
1884 # GNU Affero General Public License version 3 (see the file LICENSE).
1885
1886=== modified file 'utilities/make-dummy-hosted-branches'
1887--- utilities/make-dummy-hosted-branches 2009-10-17 14:06:03 +0000
1888+++ utilities/make-dummy-hosted-branches 2010-02-25 17:26:19 +0000
1889@@ -1,4 +1,4 @@
1890-#!/usr/bin/python2.5
1891+#!/usr/bin/python2.5 -S
1892 #
1893 # Copyright 2009 Canonical Ltd. This software is licensed under the
1894 # GNU Affero General Public License version 3 (see the file LICENSE).
1895
1896=== modified file 'utilities/make-lp-user'
1897--- utilities/make-lp-user 2009-10-17 14:06:03 +0000
1898+++ utilities/make-lp-user 2010-02-25 17:26:19 +0000
1899@@ -1,4 +1,4 @@
1900-#!/usr/bin/python2.5
1901+#!/usr/bin/python2.5 -S
1902 #
1903 # Copyright 2009 Canonical Ltd. This software is licensed under the
1904 # GNU Affero General Public License version 3 (see the file LICENSE).
1905
1906=== modified file 'utilities/mock-code-import'
1907--- utilities/mock-code-import 2009-10-17 14:06:03 +0000
1908+++ utilities/mock-code-import 2010-02-25 17:26:19 +0000
1909@@ -1,4 +1,4 @@
1910-#!/usr/bin/python2.5
1911+#!/usr/bin/python2.5 -S
1912 #
1913 # Copyright 2009 Canonical Ltd. This software is licensed under the
1914 # GNU Affero General Public License version 3 (see the file LICENSE).
1915
1916=== modified file 'utilities/page-performance-report.py'
1917--- utilities/page-performance-report.py 2010-01-28 11:47:10 +0000
1918+++ utilities/page-performance-report.py 2010-02-25 17:26:19 +0000
1919@@ -1,4 +1,4 @@
1920-#!/usr/bin/python2.5
1921+#!/usr/bin/python2.5 -S
1922 #
1923 # Copyright 2010 Canonical Ltd. This software is licensed under the
1924 # GNU Affero General Public License version 3 (see the file LICENSE).
1925
1926=== modified file 'utilities/paste'
1927--- utilities/paste 2009-10-19 17:59:47 +0000
1928+++ utilities/paste 2010-02-25 17:26:19 +0000
1929@@ -1,4 +1,4 @@
1930-#!/usr/bin/env python2.5
1931+#!/usr/bin/python2.5 -S
1932 #
1933 # Copyright 2009 Canonical Ltd. This software is licensed under the
1934 # GNU Affero General Public License version 3 (see the file LICENSE).
1935
1936=== modified file 'utilities/sanitize-db.py'
1937--- utilities/sanitize-db.py 2009-10-14 13:13:47 +0000
1938+++ utilities/sanitize-db.py 2010-02-25 17:26:19 +0000
1939@@ -1,4 +1,4 @@
1940-#!/usr/bin/python2.5
1941+#!/usr/bin/python2.5 -S
1942 # Copyright 2009 Canonical Ltd. This software is licensed under the
1943 # GNU Affero General Public License version 3 (see the file LICENSE).
1944
1945
1946=== modified file 'utilities/update-revisionauthor-email.py'
1947--- utilities/update-revisionauthor-email.py 2009-10-17 14:06:03 +0000
1948+++ utilities/update-revisionauthor-email.py 2010-02-25 17:26:19 +0000
1949@@ -1,4 +1,4 @@
1950-#!/usr/bin/python2.5
1951+#!/usr/bin/python2.5 -S
1952 #
1953 # Copyright 2009 Canonical Ltd. This software is licensed under the
1954 # GNU Affero General Public License version 3 (see the file LICENSE).
1955
1956=== modified file 'versions.cfg'
1957--- versions.cfg 2010-02-24 23:18:40 +0000
1958+++ versions.cfg 2010-02-25 17:26:19 +0000
1959@@ -92,8 +92,9 @@
1960 z3c.pagelet = 1.0.2
1961 z3c.pt = 1.0b16
1962 z3c.ptcompat = 0.5.3
1963-z3c.recipe.filetemplate = 2.1dev-gary-r105075
1964+z3c.recipe.filetemplate = 2.0.2
1965 z3c.recipe.i18n = 0.5.3
1966+z3c.recipe.scripts = 1.0.0dev-gary-r109416
1967 z3c.recipe.tag = 0.2.0
1968 z3c.rml = 0.7.3
1969 z3c.skin.pagelet = 1.0.2
1970@@ -103,12 +104,12 @@
1971 z3c.viewlet = 1.0.0
1972 z3c.viewtemplate = 0.3.2
1973 z3c.zrtresource = 1.0.1
1974-zc.buildout = 1.5.0dev-gary-r108342
1975+zc.buildout = 1.5.0dev-gary-r109427
1976 zc.catalog = 1.2.0
1977 zc.datetimewidget = 0.5.2
1978 zc.i18n = 0.5.2
1979 zc.lockfile = 1.0.0
1980-zc.recipe.egg = 1.3.0dev-gary-r105072
1981+zc.recipe.egg = 1.2.3dev-gary-r109335
1982 zc.zservertracelog = 1.1.5
1983 ZConfig = 2.7.1
1984 zdaemon = 2.0.4