[Mailman-Users] Private archive nightmare with vhosts

UGSD underground.sd at gmail.com
Fri Jan 29 17:54:46 CET 2010


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 at 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 at 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/thread.html reloads the page, adding another "2010-Janury" in the browser address bar


http://lists.domain1.net/private/list-name@lists.domain1.net/2010-January/2010-January/thread.html
http://lists.domain1.net/private/list-name@lists.domain1.net/2010-January/2010-January/2010-January/thread.html

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


More information about the Mailman-Users mailing list