[Amavisd-new-debian-devel] TODO

Brian May amavisd-new-debian-devel@lists.alioth.debian.org
Mon, 13 Dec 2004 10:09:56 +1100


--=-=-=

Ok, nobody has said anything yet on this mailing list, so here goes.

What needs to happen before we can release amavisd-new 2.2.0 and
assassinate bugs #263550 and #284491:

* Need to support config dir so config file can be split up.

Justification:
  - should simplify automatic configuration, automatic upgrades, etc.

Status:
  - Patch written (see attached message, I hope Davor
    doesn't mind me reposting it).
  - Patch submitted upstream for consideration.
  - No response.

Other things that would be nice but not essential:

* Reduce memory footprint.
* Consider complete rewrite in compiled language (only if bored).
* Change documentation for postfix to make LMTP the default.
* Support LMTP for chaining to other LMTP servers.
* Look at bugs in BTS and see which ones are fixed by newest version.

Have I missed anything?

Also, the mailing list archive is working for this mailing list.


--=-=-=
Content-Type: message/rfc822
Content-Disposition: inline

Return-Path: <docelic@mail.inet.hr>
X-Original-To: bam-debian@snoopy.apana.org.au
Delivered-To: bam-debian@snoopy.apana.org.au
Received: from localhost (snoopy.apana.org.au [127.0.0.1])
	by snoopy.apana.org.au (Postfix) with ESMTP id 23FCBD8641
	for <bam-debian@snoopy.apana.org.au>; Sun, 28 Nov 2004 10:05:25 +1100 (EST)
Received: from snoopy.apana.org.au ([127.0.0.1])
	by localhost (snoopy [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id 14721-05 for <bam-debian@snoopy.apana.org.au>;
	Sun, 28 Nov 2004 10:05:24 +1100 (EST)
Received: from master.debian.org (master.debian.org [146.82.138.7])
	by snoopy.apana.org.au (Postfix) with ESMTP id D74D4D8635
	for <brian-debian@microcomaustralia.com.au>; Sun, 28 Nov 2004 10:05:20
 +1100 (EST)
Received: from mxout2.iskon.hr [213.191.128.16] 
	by master.debian.org with smtp (Exim 3.35 1 (Debian))
	id 1CYBd0-0007LM-00; Sat, 27 Nov 2004 17:05:18 -0600
Received: (qmail 3754 invoked from network); 28 Nov 2004 00:05:16 +0100
X-Remote-IP: 213.191.142.123
Received: from unknown (HELO mx.iskon.hr) (213.191.142.123)
  by mxout2.iskon.hr with SMTP; 28 Nov 2004 00:05:16 +0100
Received: (qmail 28395 invoked from network); 28 Nov 2004 00:05:16 +0100
X-Remote-IP: 213.202.64.238
Received: from ri01-237.dialin.iskon.hr (HELO ocelic2) (213.202.64.238)
  by mx.iskon.hr with SMTP; 28 Nov 2004 00:05:10 +0100
Date: Sun, 28 Nov 2004 00:12:07 +0100
From: Davor Ocelic <docelic@mail.inet.hr>
To: Henrique de Moraes Holschuh <hmh@debian.org>
Cc: bam@debian.org
Subject: Re: RFH: perl programmer to help with amavisd-new
Message-Id: <20041128001207.5901593e.docelic@mail.inet.hr>
In-Reply-To: <20041127141252.GB13820@khazad-dum.debian.net>
References: <20041127020717.GA24651@khazad-dum.debian.net>
	<20041127140044.1318703c.docelic@mail.inet.hr>
	<20041127141252.GB13820@khazad-dum.debian.net>
X-Mailer: Sylpheed version 0.9.7 (GTK+ 1.2.10; i386-pc-linux-gnu)
X-Virus-Scanned: by amavisd-new-20030616-p10 (Debian) at snoopy.apana.org.au
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="===-=-="

--===-=-=


Heya,

> I will merge the new upstream later today.

I am done with the patch. It's done against CVS HEAD that you updated
later today.

Here's a quick tour of changes and/or side-effect new features:

> We will send this stuff upstream, obviously :)

Nice, I didn't pay attention to amavis before, but www.ijs.si is 
just 2 minutes away from my college ;-)

> If you have any comments or suggestions, please send them in!

Well, here's just a tour of changes and/or side-effect new features:

1) Config is parsed by Amavis::Conf::read_config(). In addition to
   read_config(filename) syntax, read_config can now also accept
   an array reference as first argument:

   read_config([
     [ 'file', '/etc/amavis/amavisd.conf' ],
     [ 'dir',  '/etc/amavis/conf.d'       ],
       ......
   ])

   If old syntax is used, read_config(filename), then it is simply
   converted to:  [ 'file', filename ].
   Arrays preserve the order of input, so all the requirements are
   met.

2) Specifying -c on the command line just like before is supported,
   except that now you can specify one or more files with -c and 
   one or more directories with new option -d.
   Order of input is preserved here as well; you can say:
   -c first_file -d some/directory -c last_file

3) Directory recursion is not supported; the existing code does not
   allow that feature "for free", so I didn't go into larger-scale
   modifications to the source as you said it wasn't a requirement.
   (if a directory is found, error is displayed and we exit).

4) The way config files are "evaled" (using do()) was improved to 
   catch some more errors. However, it is still possible to 
   omit "use strict" in the config file and just put garbage in it
   and get away with no error.
   The only solution would be to read in each file manually, prepend 
   with 'use strict;' and then call do() on that block of code
   instead of on a file (but that's ugly).

5) If an error is detected in config file, it is printed the same
   as before. If no files are found at all, this message is seen:

No configuration files were found. We looked in: 
[
  'file',
  '/etc/amavis/amavisd.conf'
]
[
  'dir',
  '/etc/amavis/conf.d'
]

6) Due to chicken-and-egg problem, no information about config file
   processing was included in the logs.
   read_config() behaves as before if called in void context. It now
   returns the number of files processed in scalar context, and
   the processed file names in array context.

   Since I noticed it's the same function that calls read_conifg() and
   later initializes the logging subsystem I added a log statement
   which, upon log initialization, informs about the config files used.
   (It reports only the ones it actually "evaled", not all that were
   checked for existence).

I hope you like the patch,

I had a great time doing it so feel free to contact me for more 
assistance.
(Also, by now I wrote 2 out of 3 manpages that I had to do as part
of the NM process - the amavis-new one could be my third ;-)

Regards,
-doc

--===-=-=
Content-Type: application/octet-stream;
  name=amavisd-CVS1.31-conf.d-patch
Content-Disposition: attachment; filename=amavisd-CVS1.31-conf.d-patch
Content-Transfer-Encoding: base64

LS0tIGFtYXZpc2Qsb3JpZwlTYXQgTm92IDI3IDIzOjIwOjU2IDIwMDQKKysrIGFtYXZpc2QJU3Vu
IE5vdiAyOCAwMDowMjo0MSAyMDA0CkBAIC0xNDMsNiArMTQzLDExIEBACiAjDAogcGFja2FnZSBB
bWF2aXM6OkNvbmY7CiB1c2Ugc3RyaWN0OwordXNlIFBPU0lYIHF3KGxvY2FsZV9oKTsKK3VzZSBE
YXRhOjpEdW1wZXI7CiskRGF0YTo6RHVtcGVyOjpUZXJzZSA9IDE7CiskRGF0YTo6RHVtcGVyOjpJ
bmRlbnQgPSAxOworaW1wb3J0IEFtYXZpczo6VXRpbCBxdyh1bnRhaW50KTsKIHVzZSByZSAndGFp
bnQnOwogCiAjIHByb3RvdHlwZXMKQEAgLTg3OSwxOSArODg0LDc0IEBACiB9CiAKICMgcmVhZCBh
bmQgZXZhbHVhdGUgY29uZmlndXJhdGlvbiBmaWxlCisJIyBCYWNrd2FyZCBjb21wYXRpYmxpdHk6
IHdlIGFjY2VwdCBib3RoIHJlYWRfY29uZmlnKGZpbGUpIGFuZCAKKwkjIHJlYWRfY29uZmlnKCBb
J2ZpbGUnLCBuYW1lXSwgWydmaWxlJyxuYW1lXSwgWydkaXInLG5hbWVdLCAuLi4pLgogc3ViIHJl
YWRfY29uZmlnKCQpIHsKLSAgbXkoJGNvbmZpZ19maWxlKSA9IEBfOwotICBteSgkbXNnKTsKLSAg
bXkoJGVycm4pID0gc3RhdCgkY29uZmlnX2ZpbGUpID8gMCA6IDArJCE7Ci0gIGlmICAgICgkZXJy
biA9PSBFTk9FTlQpIHsgJG1zZyA9ICJkb2VzIG5vdCBleGlzdCIgfQotICBlbHNpZiAoJGVycm4p
ICAgICAgeyAkbXNnID0gImluYWNjZXNzaWJsZTogJCEiIH0KLSAgZWxzaWYgKCEtZiBfKSAgICAg
IHsgJG1zZyA9ICJub3QgYSByZWd1bGFyIGZpbGUiIH0KLSAgZWxzaWYgKCEtciBfKSAgICAgIHsg
JG1zZyA9ICJub3QgcmVhZGFibGUiIH0KLSAgZWxzaWYgKCQ+ICYmIC1vIF8pIHsgJG1zZyA9ICJp
cyBvd25lZCBieSBFVUlEICQ+LCBzaG91bGQgYmUgb3duZWQgYnkgcm9vdCIgfQotICBlbHNpZiAo
JD4gJiYgLXcgXykgeyAkbXNnID0gImlzIHdyaXRhYmxlIGJ5IEVVSUQgJD4sIEVHSUQgJCkiIH0K
LSAgaWYgKGRlZmluZWQgJG1zZykgeyBkaWUgIkNvbmZpZyBmaWxlICRjb25maWdfZmlsZSAkbXNn
IiB9Ci0gIGRvICRjb25maWdfZmlsZTsKLSAgaWYgKCRAIG5lICcnKSB7IGRpZSAiRXJyb3IgaW4g
Y29uZmlnIGZpbGUgJGNvbmZpZ19maWxlOiAkQCIgfQorCXJlZiAkX1swXSBhbmQgQF8gPSBAeyRf
WzBdfSBvciBAXyA9IChbJ2ZpbGUnLCAkX1swXV0pOworCW15IEBjb25maWdfc3RhY2sgPSBAXzsK
KyAgbXkoJG1zZywgJHJldCwgQHBhcnNlZF9jb25maWdzKTsKKworCWZvciAkXyAoIEBjb25maWdf
c3RhY2sgKSB7CisJCW15ICgkdHlwZSwgJGZpbGVuYW1lKSA9IEAkXzsKKwkJbXkgQGZpbGVzOwor
CisJCWlmICggJHR5cGUgZXEgJ2ZpbGUnKSB7CisJCQkjIE5vIHNwZWNpYWwgcHJlcGFyYXRpb24g
Zm9yIGZpbGUgYXQgdGhpcyBwb2ludAorCQkJbmV4dCB1bmxlc3MgLWUgJGZpbGVuYW1lOworCQkJ
QGZpbGVzID0gKCAkZmlsZW5hbWUgKTsKKwkJfSBlbHNpZiAoICR0eXBlIGVxICdkaXInKSB7CisJ
CQluZXh0IHVubGVzcyAtZSAkZmlsZW5hbWU7CisJCQkjIEJhc2ljICJ2YWxpZGl0eSBjaGVja2lu
ZyIgZm9yIGRpcmVjdG9yaWVzIGlzIGRvbmUgaGVyZQorCQkJbXkoJGVycm4pID0gc3RhdCgkZmls
ZW5hbWUpID8gMCA6IDArJCE7CisJCQlpZiAoIS1kIF8pICAgICAgeyAkbXNnID0gIm5vdCBhIGRp
cmVjdG9yeSIgfQorCQkJZWxzaWYgKCEoLXIgXyBhbmQgLXggXykpIHsgJG1zZyA9ICJub3QgcmVh
ZGFibGUgYW5kIGV4ZWN1dGFibGUiIH0KKwkJCWVsc2lmICgkPiAmJiAtbyBfKXskbXNnID0gImlz
IG93bmVkIGJ5IEVVSUQgJD4sIHNob3VsZCBiZSBvd25lZCBieSByb290IiB9CisJCQllbHNpZiAo
JD4gJiYgLXcgXykgeyAkbXNnID0gImlzIHdyaXRhYmxlIGJ5IEVVSUQgJD4sIEVHSUQgJCkiIH0K
KwkJCWlmIChkZWZpbmVkICRtc2cpIHsgZGllICJDb25maWcgZGlyZWN0b3J5ICRmaWxlbmFtZSAk
bXNnIiB9CisJCQkjIEV4cGFuZCBkaXJlY3RvcnkgaW50byB0aGUgZmlsZSBsaXN0CisJCQkkZmls
ZW5hbWUgLj0gIi8iIHVubGVzcyAkZmlsZW5hbWUgPX4gbXsvJH07CisJCQlteSgkb2xkX2xvY2Fs
ZSkgPSBzZXRsb2NhbGUoTENfQ1RZUEUsIkMiKTsKKwkJCW9wZW5kaXIgRElSLCAkZmlsZW5hbWUg
b3IgZGllICJDYW4ndCBvcGVuZGlyICRmaWxlbmFtZTogJCEiOworCQkJQGZpbGVzID0gZ3JlcCB7
IS9eXC58XkNWUyQvIGFuZCAkXyA9ICRmaWxlbmFtZSAuICRffSByZWFkZGlyIERJUjsKKwkJCWNs
b3NlZGlyIERJUiBvciBkaWUgIkNhbid0IGNsb3NlZGlyICRmaWxlbmFtZTogJCEiOworCQkJc2V0
bG9jYWxlKExDX0NUWVBFLCAkb2xkX2xvY2FsZSk7CisJCX0gZWxzZSB7CisJCQlkaWUgIkNvbmZp
Z3VyYXRpb24gZmlsZSAnJGZpbGVuYW1lJyBvZiB0eXBlICckdHlwZScgbm90IHN1cHBvcnRlZCIK
KwkJfQorCisJCSMgT25seSBmaWxlcyBleHBlY3RlZCBoZXJlLCBubyBkaXJlY3RvcmllcyBhcmUg
YWxsb3dlZC4KKwkJZm9yIG15ICRjb25maWdfZmlsZSAoIEBmaWxlcyApIHsKKwkJCW15KCRlcnJu
KSA9IHN0YXQoJGNvbmZpZ19maWxlKSA/IDAgOiAwKyQhOworCQkJaWYgKCRlcnJuID09IEVOT0VO
VCApIHsgbmV4dCB9CisJCQkjZWxzaWYgKCAtZCBfKSAgICAgIHsgd2FybiAiY29uZi5kIHN1YmRp
cmVjdG9yaWVzIG5vdCBzdXBwb3J0ZWQiOyBuZXh0IH0KKwkJCWVsc2lmICgkZXJybikgICAgICB7
ICRtc2cgPSAiaW5hY2Nlc3NpYmxlOiAkISIgfQorCQkJZWxzaWYgKCEtZiBfKSAgICAgIHsgJG1z
ZyA9ICJub3QgYSByZWd1bGFyIGZpbGUiIH0KKwkJCWVsc2lmICghLXIgXykgICAgICB7ICRtc2cg
PSAibm90IHJlYWRhYmxlIiB9CisJCQllbHNpZiAoJD4gJiYgLW8gXykgeyAkbXNnID0gImlzIG93
bmVkIGJ5IEVVSUQgJD4sIHNob3VsZCBiZSBvd25lZCBieSByb290IiB9CisJCQllbHNpZiAoJD4g
JiYgLXcgXykgeyAkbXNnID0gImlzIHdyaXRhYmxlIGJ5IEVVSUQgJD4sIEVHSUQgJCkiIH0KKwkJ
CWlmIChkZWZpbmVkICRtc2cpIHsgZGllICJDb25maWcgZmlsZSAkY29uZmlnX2ZpbGUgJG1zZyIg
fQorCisJCQkjIElmIHdlIHJlYWNoZWQgdGhpcyBwb2ludCwgdGhlIGZpbGUgaXMgYWxsIHJlYWR5
IGZvciB1cyB0byAnZG8nIGl0LgorCQkJJGNvbmZpZ19maWxlID0gdW50YWludCgkY29uZmlnX2Zp
bGUpCisJCQkJaWYgJGNvbmZpZ19maWxlID1+IG17XltBLVphLXowLTkvLl89Ky1dK1x6fTsKKwkJ
CXVubGVzcyAoJHJldCA9IGRvICRjb25maWdfZmlsZSkgeworCQkJCWRpZSAiQ291bGRuJ3QgcGFy
c2UgJGNvbmZpZ19maWxlOiAkQCIgaWYgJEA7CisJCQkJZGllICJDb3VsZG4ndCBwYXJzZSAkY29u
ZmlnX2ZpbGU6ICQhLiBGb3Jnb3QgdG8gcmV0dXJuIHRydWUgdmFsdWU/IgorCQkJCQl1bmxlc3Mg
ZGVmaW5lZCAkcmV0OworCQkJCWRpZSAiQ291bGRuJ3QgcnVuICRjb25maWdfZmlsZSIgICAgICAg
dW5sZXNzICRyZXQ7CisJCQl9CisJCQlwdXNoIEBwYXJzZWRfY29uZmlncywgJGNvbmZpZ19maWxl
OworCQl9CisJfQorCisJIyBJZiAkcGFyc2VkX2NvbmZpZ3MgaXMgemVybywgdGhlbiBubyBjb25m
aWcgZmlsZXMgd2VyZSBldmVuIHByZXNlbnQuCisJIyAoaWYgdGhleSB3ZXJlLCB0aGV5J2QgZWl0
aGVyIGJlIHBhcnNlZCBjb3JyZWN0bHksIG9yIGRpZSgpIHdvdWxkIGNhdGNoCisJIyB0aGVtIGF0
IHNvbWUgcG9pbnQgYWJvdmUpLgorCXVubGVzcyAoIEBwYXJzZWRfY29uZmlncyApIHsKKwkJZGll
ICJObyBjb25maWd1cmF0aW9uIGZpbGVzIHdlcmUgZm91bmQuIFdlIGxvb2tlZCBpbjogXG4iIC4K
KwkJCUR1bXBlciBAY29uZmlnX3N0YWNrOworCX0KKwogICAjIHNvbWUgc2Vuc2libGUgZGVmYXVs
dHMgZm9yIGVzc2VudGlhbCBzZXR0aW5ncwogICAkVEVNUEJBU0UgICAgID0gJE1ZSE9NRSAgICAg
ICAgICAgICAgICAgICBpZiAhZGVmaW5lZCAkVEVNUEJBU0U7CiAgICRoZWxwZXJzX2hvbWUgPSAk
TVlIT01FICAgICAgICAgICAgICAgICAgIGlmICFkZWZpbmVkICRoZWxwZXJzX2hvbWU7CkBAIC05
MzIsNiArOTkyLDkgQEAKICAgICB7ICRmaW5hbF9iYW5uZWRfZGVzdGlueSA9IERfQk9VTkNFIH0K
ICAgaWYgKCRmaW5hbF9iYWRfaGVhZGVyX2Rlc3RpbnkgPT0gRF9ESVNDQVJEICYmIGMoJ3dhcm5i
YWRoc2VuZGVyJykgKQogICAgIHsgJGZpbmFsX2JhZF9oZWFkZXJfZGVzdGlueSA9IERfQk9VTkNF
IH0KKworCXJldHVybiB1bmxlc3MgZGVmaW5lZCB3YW50YXJyYXk7CisJd2FudGFycmF5ID8gKEBw
YXJzZWRfY29uZmlncykgOiBzY2FsYXIgQHBhcnNlZF9jb25maWdzOwogfQogCiAxOwpAQCAtNzY0
OCw3ICs3NzExLDExIEBACiAkQW1hdmlzOjpDb25mOjpsb2dfcmVjaXBfdGVtcGwgPSAkMQogICBp
ZiAkQW1hdmlzOjpDb25mOjpsb2dfcmVjaXBfdGVtcGw9fi9eKC4qPylbXHJcbl0rXHovczsKIAot
bXkoJGNvbmZpZ19maWxlKSA9ICcvZXRjL2FtYXZpcy9hbWF2aXNkLmNvbmYnOyAgIyBkZWZhdWx0
IGxvY2F0aW9uIG9mIGNvbmZpZyBmaWxlCisjIGRlZmF1bHQgbG9jYXRpb25zIG9mIGNvbmZpZyBm
aWxlcyBhbmQgZGlyZWN0b3JpZXMKK215KEBjb25maWdfZmlsZXMpPSAoCisJWydmaWxlJywgJy9l
dGMvYW1hdmlzL2FtYXZpc2QuY29uZicgXSwKKwlbJ2RpcicsICcvZXRjL2FtYXZpcy9jb25mLmQn
IF0sCispOwogCiAjIENvbnNpZGVyIGRyb3BpbmcgcHJpdmlsZWdlcyBlYXJseSwgYmVmb3JlIHJl
YWRpbmcgY29uZmlnIGZpbGUuCiAjIFRoaXMgaXMgb25seSBwb3NzaWJsZSBpZiBydW5uaW5nIHVu
ZGVyIGNocm9vdCB3aWxsIG5vdCBiZSBuZWVkZWQuCkBAIC03NjY0LDcgKzc3MzEsOCBAQAogI30K
IAogIyBjb2xsZWN0IGFuZCBwYXJzZSBjb21tYW5kIGxpbmUgb3B0aW9ucwotd2hpbGUgKEBBUkdW
ID49IDIgJiYgJEFSR1ZbMF0gPX4gL14tW3VnY11cei8pIHsKK215KEBjb25maWdfc3RhY2spOwor
d2hpbGUgKEBBUkdWID49IDIgJiYgJEFSR1ZbMF0gPX4gL14tW3VnY2RdXHovKSB7CiAgIG15KCRv
cHQpID0gc2hpZnQgQEFSR1Y7CiAgIGlmICgkb3B0IGVxICctdScpIHsgICAgICAgIyAtdSB1c2Vy
bmFtZQogICAgIG15KCR2YWwpID0gc2hpZnQgQEFSR1Y7CkBAIC03Njc1LDExICs3NzQzLDE4IEBA
CiAgICAgaWYgKCQ+ID09IDApIHsgJGRlc2lyZWRfZ3JvdXAgPSAkdmFsIH0KICAgICBlbHNlIHsg
cHJpbnQgU1RERVJSICJJZ25vcmluZyBvcHRpb24gLWcgd2hlbiBub3QgcnVubmluZyBhcyByb290
XG4iIH0KICAgfSBlbHNpZiAoJG9wdCBlcSAnLWMnKSB7ICAjIC1jIGNvbmZpZ19maWxlCi0gICAg
JGNvbmZpZ19maWxlID0gc2hpZnQgQEFSR1Y7CisgICAgbXkgJGNvbmZpZ19maWxlID0gc2hpZnQg
QEFSR1Y7CisgICAgJGNvbmZpZ19maWxlID0gdW50YWludCgkY29uZmlnX2ZpbGUpCisgICAgICBp
ZiAkY29uZmlnX2ZpbGUgPX4gbXteW0EtWmEtejAtOS8uXz0rLV0rXHp9OworCQlwdXNoIEBjb25m
aWdfc3RhY2ssIFsgJ2ZpbGUnLCAkY29uZmlnX2ZpbGUgXTsKKyAgfSBlbHNpZiAoJG9wdCBlcSAn
LWQnKSB7ICAjIC1kIGNvbmZpZ19kaXIKKyAgICBteSAkY29uZmlnX2ZpbGUgPSBzaGlmdCBAQVJH
VjsKICAgICAkY29uZmlnX2ZpbGUgPSB1bnRhaW50KCRjb25maWdfZmlsZSkKICAgICAgIGlmICRj
b25maWdfZmlsZSA9fiBte15bQS1aYS16MC05Ly5fPSstXStcen07CisJCXB1c2ggQGNvbmZpZ19z
dGFjaywgWyAnZGlyJywgJGNvbmZpZ19maWxlIF07CiAgIH0KIH0KK0Bjb25maWdfc3RhY2sgYW5k
IEBjb25maWdfZmlsZXMgPSBAY29uZmlnX3N0YWNrOwogCiBpZiAoZGVmaW5lZCAkZGVzaXJlZF91
c2VyICYmICgkPiA9PSAwIHx8ICQ8ID09IDApKSB7ICAgIyBkcm9wIHByaXZpbGVnZXMgZWFybHkK
ICAgbXkoJHVzZXJuYW1lLCRwYXNzd2QsJHVpZCwkZ2lkKSA9CkBAIC03NzAyLDcgKzc3NzcsNyBA
QAogCiAjIFJlYWQgY29uZmlnIGZpbGUsIHdoaWNoIG1heSBvdmVycmlkZSBkZWZhdWx0IHNldHRp
bmdzCiBBbWF2aXM6OkNvbmY6OmJ1aWxkX2RlZmF1bHRfbWFwcygpOwotQW1hdmlzOjpDb25mOjpy
ZWFkX2NvbmZpZygkY29uZmlnX2ZpbGUpOworbXkgQHJlYWRfY29uZmlncyA9IEFtYXZpczo6Q29u
Zjo6cmVhZF9jb25maWcoXEBjb25maWdfZmlsZXMpOwogCiBpZiAoZGVmaW5lZCAkZGVzaXJlZF91
c2VyICYmICRkYWVtb25fdXNlciBuZSAnJykgewogICAjIGNvbXBhcmUgdGhlIGNvbmZpZyBmaWxl
IHNldHRpbmdzIHRvIGN1cnJlbnQgVUlECkBAIC03ODM1LDYgKzc5MTAsOCBAQAogCiBBbWF2aXM6
OkxvZzo6aW5pdCgiYW1hdmlzIiwgISRkYWVtb25pemUsICRET19TWVNMT0csICRTWVNMT0dfTEVW
RUwsICRMT0dGSUxFKTsKIAorIyBmaXJzdCByZXBvcnQgd2hpY2ggY29uZmlnIGZpbGVzIHdlIHBh
cnNlZAorZG9fbG9nKDEsICJQYXJzZWQgY29uZmlnIGZpbGVzOiBAcmVhZF9jb25maWdzIik7CiAj
IHJlcG9ydCB2ZXJzaW9uIG9mIFBlcmwgYW5kIHByb2Nlc3MgVUlECiBkb19sb2coMSwgInVzZXI9
JGRlc2lyZWRfdXNlciwgRVVJRDogJD4gKCQ8KTsgIGdyb3VwPSRkZXNpcmVkX2dyb3VwLCBFR0lE
OiAkKSAoJCgpIik7CiBkb19sb2coMCwgIlBlcmwgdmVyc2lvbiAgICAgICAgICAgICAgICRdIik7
CkBAIC03ODUwLDcgKzc5MjcsNyBAQAogbXkgJHNlcnZlciA9IGJsZXNzIHsKICAgc2VydmVyID0+
IHsKICAgICAjIGNvbW1hbmQgYXJncyB0byBiZSB1c2VkIGFmdGVyIEhVUCBtdXN0IGJlIHVudGFp
bnRlZCwgZGVmbHQ6IFskMCxAQVJHVl0KLSAgIyBjb21tYW5kbGluZSA9PiBbJy91c3IvbG9jYWwv
c2Jpbi9hbWF2aXNkJywnLWMnLCRjb25maWdfZmlsZV0sCisgICMgY29tbWFuZGxpbmUgPT4gWycv
dXNyL2xvY2FsL3NiaW4vYW1hdmlzZCcsbWFweyQkX1swXSBlcSAnZmlsZScgPyAoIi1jIiwkJF9b
MV0pOiAoIi1kIiwkJF9bMV0pfSBAY29uZmlnX2ZpbGVzXSwKICAgICBjb21tYW5kbGluZSA9PiBb
XSwgICMgZGlzYWJsZQogCiAgICAgIyBsaXN0ZW4gb24gdGhlIGZvbGxvd2luZyBzb2NrZXRzIChv
bmUgb3IgbW9yZSk6Cg==
--===-=-=--

--=-=-=



-- 
Brian May <bam@debian.org>

--=-=-=--