Mark,
I made a 2.1.13 vhost patch a little differently. I made a bazaar 2.1.7 branch, applied the 2.1.7 vhosts patch, committed the result, did a bzr merge from the 2.1.13 branch which produced 5 conflicts, the only significant ones being in Mailman/MTA/Utils.py and Mailman/Utils.py, and resolved the conflicts.
I am testing with that. This patch is at <http://www.msapiro.net/mm/2.1.13_vhost.patch> if you're interested. It is essentially the 2.1.7 patch, but fixed to apply cleanly to 2.1.13.
Thank you for taking a look at this. I really appreciate it.
Yes. Really the MailList.Create() method should be patched, but the workaround is to add
ACCEPTABLE_LISTNAME_CHARACTERS = '[-+_.=a-z0-9@]'
to mm_cfg.py. This adds '@' to the default list of acceptable listname characters and allows list names with '@' to pass a new (since 2.1.7) check in MailList.Create().
Yep, i figured this one out.
As far as the problems with the archives are concerned, I've tested just a bit and I see the problem (but not the solution yet). I think part of the problem for me is that the host name in a listname@hostname list cannot be the same as DEFAULT_URL_HOST. I have a DNS issue on my test machine that makes it difficult for me to add additional host names so that's hampering my testing at the moment.
I got around the DNS issue with /etc/hosts, may not work in your case, i guess
After not being able to create a list, I had another issue (not seen in 2.1.7), where the alias file was created in the form of
lists.domain1.net=list-name-unsubscribe: "|/path/to/mailman unsubscribe lists.domain1.net=list-name"
which mailman did not understand and complained that "lists.domain1.net=list-name" not found.
The problem was in Mailman/MTA/Utils.py and _makealiases_mailprog() function, so i just modified it to accept another variable and use it
def _makealiases_mailprog(listname, at_name, internal_listname=None): <<--- i added at_name
for ext in ('admin', 'bounces', 'confirm', 'join', 'leave', 'owner',
'request', 'subscribe', 'unsubscribe'):
aliases.append(('%s-%s' % (listname, ext),
'"|%s %s %s"' % (wrapper, ext, at_name))) <<--- i added at_name
and then change Mailman/MTA/Postfix.py
for k, v in makealiases(_generate_alias(mlist), listname, <<--- added listname var here
internal_listname = listname):
This fixed the alias creation. I was able to subscribe to the list, however, i was not able to post to the list, because list names were still translated into "lists.domain1.net=list-name". Tacked it down to the post script in scripts folder, and had to modify "listname" variable in mail()
try:
foo = sys.argv[1]
listname = foo.split('=')
listname.reverse()
listname = '@'.join(listname)
This change allowed me to post, but this is where i hit the same problems as i did originally with 2.1.7 install.
So i had to use my mod_rewrite trick, modify Mailman/Cgi/pryvate.py
host = os.environ.get('SERVER_NAME') <<----- needed to for Utils.maketext()
and
list_name = listname.split("@")
m_list = list_name[0]
true_filename = os.path.join(
mm_cfg.PRIVATE_ARCHIVE_FILE_DIR, host, m_list)
and then modify templates/en/private.html and change form action, it it allows me to authenticate private archives.
<FORM METHOD=POST ACTION="%(action)s@%(host)s">
But the issue is more than that. At the moment, I have four lists - two lists.listname lists and two lists/msapiro.net/listname lists. All four of these appear on the overviews at http://msapiro.net/mailman/admin and http://msapiro.net/mailman/listinfo with link URLs like http://msapiro.net/mailman/admin/listname and http://msapiro.net/mailman/listinfo/listname, but only the lists/msapiro.net/listname list URLs work. The others give "No such list listname@msapiro.net".
Now i was able to see the private archive table of contents, but none of the links were functional, so clicking on a link pointing to
http://lists.domain1.net/private/list-name@lists.domain1.net/2010-January/th... reloads the page, adding another "2010-Janury" in the browser address bar
http://lists.domain1.net/private/list-name@lists.domain1.net/2010-January/20... http://lists.domain1.net/private/list-name@lists.domain1.net/2010-January/20...
and so on. Unfortunately i haven't been able to get around this issue yet.
I will continue to look at this, but if your testing turns up anything, let us know.
Thanks again, Mark!
-Igor