Discussion:
Vexim Digest, Vol 68, Issue 4
Terry Danter
2010-12-30 20:31:16 UTC
Permalink
---------- Forwarded message ----------
Date: Tue, 28 Dec 2010 21:37:42 -0800
Subject: [vexim] Ready.. Set.. Code!
https://github.com/avleen/vexim
Finally, after *years* of waiting, promises made and broken (by me,
I'm sorry!), I'm finally in a position where I can focus heavily on
vexim. I actually have *time* to do this now :-)
The new version is being coded as we speak. I'm committing heavily to
git as fast and often as I can.
I'm hoping to get it the basic features done in the next 2 days.
1. Header-based blocking. We'll get it back if there is any interest
(even just one person saying "I want that!").
2. The half-hearted support I coded in for non-spamassassin spam
filtering. It didn't work. We'll stick with SA support for now, and
later separate it such that we can write plugins for others
3. The non-English language support will not be there in the very
first stable new version I think. But I'll be working closely with
people to get translations in place.
What are the goals of the new version?
A complete re-write, to enable easier future development. Currently
making even small changed to Vexim is a huge pain in the backside.
To enable others to contribute changes more easily.
To take the changes that others have make over the last 7 years and
make sure they are all integrated.
I think that's it. The other stuff is pretty basic functionality.
If you join #vexim on Freenode, I'm in there too. If anyone wants to
make suggestions, throw code in,
--
Avleen Vig
Systems Administrator
Personal: www.silverwraith.com
All I can say is it is great news and if it no longer needs php for
the front end then that is one less hassle set up wise to worry about
Terry
Rimas Kudelis
2010-12-30 20:53:20 UTC
Permalink
Post by Terry Danter
All I can say is it is great news and if it no longer needs php for
the front end then that is one less hassle set up wise to worry about
I guess it depends. Myself, I'd prefer PHP to anything else for exactly
the same reason – it's already set up and works well on the server.

Rimas
Avleen Vig
2010-12-31 05:58:15 UTC
Permalink
Post by Rimas Kudelis
Post by Terry Danter
All I can say is it is great news and if it no longer needs php for
the front end then that is one less hassle set up wise to worry about
I guess it depends. Myself, I'd prefer PHP to anything else for
exactly the same reason ??? it's already set up and works well on
the server.
I completely understand Rimas :-)
I've tried to make this as easy to manage as possible.
I'm trying to make this as compatible as possible with Python 2.4, which
is installed on most linux servers these days. I'll be trying to test
this on older Linux distros (like Centos 4) if I can - but a lot of
those are passed their End of Life.

My development is currently happening on Python 2.6 with Django 1.2.
I'm *slightly* tempted to bundle Django into the tarball, so people
don't have to do anything more than untar and run a script.
But we'll see. That may be for 3.1.
Tim Aslat
2010-12-31 06:02:34 UTC
Permalink
Post by Avleen Vig
Post by Rimas Kudelis
Post by Terry Danter
All I can say is it is great news and if it no longer needs php for
the front end then that is one less hassle set up wise to worry about
I guess it depends. Myself, I'd prefer PHP to anything else for
exactly the same reason ??? it's already set up and works well on
the server.
I completely understand Rimas :-)
I've tried to make this as easy to manage as possible.
I'm trying to make this as compatible as possible with Python 2.4, which
is installed on most linux servers these days. I'll be trying to test
this on older Linux distros (like Centos 4) if I can - but a lot of
those are passed their End of Life.
My development is currently happening on Python 2.6 with Django 1.2.
I'm *slightly* tempted to bundle Django into the tarball, so people
don't have to do anything more than untar and run a script.
But we'll see. That may be for 3.1.
Bundling django would be nice, if there was a simple way to configure it
on servers that doesn't have it installed globally like the ones I have.

I actually spent a couple of hours trying to integrate django using
mod_python on my servers without any luck, it just doesn't want to play
nicely with PHP/FastCGI.

Any ideas?

Cheers

Tim
--
Tim Aslat <***@spyderweb.com.au>
Spyderweb Consulting
http://www.spyderweb.com.au
Mobile: +61 0401088479
Avleen Vig
2010-12-31 09:56:08 UTC
Permalink
Post by Tim Aslat
Bundling django would be nice, if there was a simple way to
configure it on servers that doesn't have it installed globally like
the ones I have.
I'll find a way to bundle it. I think it's actually quite simple.
Post by Tim Aslat
I actually spent a couple of hours trying to integrate django using
mod_python on my servers without any luck, it just doesn't want to
play nicely with PHP/FastCGI.
Yup!
I assume you're using Apache, Lighttpd or Nginx.
You can either start the Django app under a FastCGI manager (I'll get
instructions on how to do this).

Alternatively (and this is the way I like to usually do it), you can run
an HTTP manager and use mod_proxy in Apache (or equivalents in other web
servers) to talk HTTP to Python.
"Spawning" is a good one for this, written by Linden Lab.
Tornado is a really good one too (http://www.tornadoweb.org/) and I'll
probably bundle this too, to make it simpler for admins :)
Rimas Kudelis
2010-12-31 07:33:47 UTC
Permalink
Post by Avleen Vig
Post by Rimas Kudelis
Post by Terry Danter
All I can say is it is great news and if it no longer needs php for
the front end then that is one less hassle set up wise to worry about
I guess it depends. Myself, I'd prefer PHP to anything else for
exactly the same reason – it's already set up and works well on
the server.
I completely understand Rimas :-)
I've tried to make this as easy to manage as possible.
I'm trying to make this as compatible as possible with Python 2.4, which
is installed on most linux servers these days. I'll be trying to test
this on older Linux distros (like Centos 4) if I can - but a lot of
those are passed their End of Life.
That's not really my concern, my distro is up to date. It's just a
personal preference based on the fact that I can read/write PHP code,
unlike Python. But no big deal – I can simply stick to the current
version of Vexim or to Exim4U for the time being, if I happen to miss
functionality in Vexim3.
Post by Avleen Vig
My development is currently happening on Python 2.6 with Django 1.2.
I'm *slightly* tempted to bundle Django into the tarball, so people
don't have to do anything more than untar and run a script.
But we'll see. That may be for 3.1.
Perhaps you should provide two packages – with and without Django bundled.

Rimas
Avleen Vig
2010-12-31 09:57:53 UTC
Permalink
Post by Rimas Kudelis
Post by Avleen Vig
I completely understand Rimas :-)
I've tried to make this as easy to manage as possible.
I'm trying to make this as compatible as possible with Python 2.4, which
is installed on most linux servers these days. I'll be trying to test
this on older Linux distros (like Centos 4) if I can - but a lot of
those are passed their End of Life.
That's not really my concern, my distro is up to date. It's just a
personal preference based on the fact that I can read/write PHP
code, unlike Python. But no big deal ??? I can simply stick to the
current version of Vexim or to Exim4U for the time being, if I
happen to miss functionality in Vexim3.
Absolutely! As I said to Phil in another email just now, the PHP version
isn't going anywhere.
Security updates will be provided indefinitely, and any patches which
are contributed for it will be committed, tested and released.
But the majority of the development and new features (at least from my
side :)) will be going to Vexim 3. If you're happy with Vexim 2 right
now, and there isn't a need to upgrade... well, there's no reason to :-)
Post by Rimas Kudelis
Post by Avleen Vig
My development is currently happening on Python 2.6 with Django 1.2.
I'm *slightly* tempted to bundle Django into the tarball, so people
don't have to do anything more than untar and run a script.
But we'll see. That may be for 3.1.
Perhaps you should provide two packages ??? with and without Django bundled.
Great idea!
Avleen Vig
2010-12-31 05:55:33 UTC
Permalink
Post by Terry Danter
All I can say is it is great news and if it no longer needs php for
the front end then that is one less hassle set up wise to worry about
Thanks Terry!
That's certainly my hope also.
I have a stack of features lined up which will become much easier to
implement once this work is completed.

Just as a heads up, I currently have about 70% of the required
functionality in the new version complete.
I just finished getting the siteadmin functionality mostly done - just
need to be able to add accounts, which is only about ~10 lines of code.

Local authentication is working, and I've left the door open to
trivially plug in other authentication such as LDAP, Active Directory,
Kerberos, whatever you can think of (this was something many people
asked for previously).

As soon as the Siteadmin section is done, I just have to add the domain
admin pages and make a couple of tiny changes to the user self-admin
pages and write the DB conversion from Vexim2 to Vexim3. Most of this is
quite easy / fairly trivial. Once that's done, this is getting packages
up and put out for testing :-)
Maarten te Paske
2010-12-31 07:32:10 UTC
Permalink
Avleen,
Post by Avleen Vig
As soon as the Siteadmin section is done, I just have to add the
domain admin pages and make a couple of tiny changes to the user
self-admin pages and write the DB conversion from Vexim2 to Vexim3.
Most of this is quite easy / fairly trivial. Once that's done, this is
getting packages up and put out for testing :-)
I have a question that is not really related to this thread, but as you
are rewriting it form the core maybe it is:

I am in the process of moving all services on my server to VM's. I'd
like to run vexim on a different VM than the one where exim (and mysql)
is running. With the current version of vexim this works for the most
part, but when I try to add new local domains it returns an error,
probably because the local mailspool directory (/var/spool/vmail) does
not exist.

Would it be an idea to make this an option? I think of a script that
runs periodically (via cron) that creates all the required directories
in the mailspool, or something like that.

Cheers,

Maarten
Odhiambo Washington
2010-12-31 07:36:44 UTC
Permalink
Post by Maarten te Paske
Avleen,
Post by Avleen Vig
As soon as the Siteadmin section is done, I just have to add the
domain admin pages and make a couple of tiny changes to the user
self-admin pages and write the DB conversion from Vexim2 to Vexim3.
Most of this is quite easy / fairly trivial. Once that's done, this is
getting packages up and put out for testing :-)
I have a question that is not really related to this thread, but as you
I am in the process of moving all services on my server to VM's. I'd
like to run vexim on a different VM than the one where exim (and mysql)
is running. With the current version of vexim this works for the most
part, but when I try to add new local domains it returns an error,
probably because the local mailspool directory (/var/spool/vmail) does
not exist.
$mailroot MUST be created before hand and the correct permissions granted -
before you start adding domains.
I hope I did not misunderstand your question.
--
Best regards,
Odhiambo WASHINGTON,
Nairobi,KE
+254733744121/+254722743223
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Damn!!
Avleen Vig
2010-12-31 10:03:09 UTC
Permalink
Post by Maarten te Paske
I have a question that is not really related to this thread, but as
I am in the process of moving all services on my server to VM's. I'd
like to run vexim on a different VM than the one where exim (and
mysql) is running. With the current version of vexim this works
for the most part, but when I try to add new local domains it
returns an error, probably because the local mailspool directory
(/var/spool/vmail) does not exist.
$mailroot MUST be created before hand and the correct permissions
granted - before you start adding domains.
I hope I did not misunderstand your question.
That's a great point!
As long as $mailroot exists, exim should be able to create the remaining
directories I think.
In fact we don't mkdir() anywhere, we just assume the mailroot exists.
Where does the error come up?

Can you send over the full error line? :-)
Maarten te Paske
2011-01-10 08:48:58 UTC
Permalink
Post by Avleen Vig
Post by Odhiambo Washington
$mailroot MUST be created before hand and the correct permissions
granted - before you start adding domains.
I hope I did not misunderstand your question.
That's a great point!
As long as $mailroot exists, exim should be able to create the remaining
directories I think.
In fact we don't mkdir() anywhere, we just assume the mailroot exists.
Where does the error come up?
Can you send over the full error line? :-)
First of all, sorry for my late reply!

So let me illustrate what happens:

Traditionally, I have exim4 + apache + mysql + vexim running on host
'zero'. Recently I moved the vexim php code to a virtual machine called
'two', but I still use the same database.

When I log in as siteadmin and create a new local domain 'example.tld',
this is the error that I get:

Virtual Exim -- -- Error getting UID/GID for example.tld

However, the UID and GID (in my case it's 115 and 122) exist on both
hosts:

***@zero:~$ grep vmail /etc/{passwd,group}
/etc/passwd:vmail:x:115:122:,,,:/var/spool/vmail:/bin/bash
/etc/group:vmail:x:122:

***@two:~$ grep vmail /etc/{passwd,group}
/etc/passwd:vmail:x:115:122:,,,:/var/spool/vmail:/bin/bash
/etc/group:vmail:x:122:

So I figured the only thing that is different is that the local
mailspool (/var/spool/vmail) does not exist on host 'two'.

Cheers,

Maarten
Avleen Vig
2010-12-31 09:59:47 UTC
Permalink
Post by Maarten te Paske
I have a question that is not really related to this thread, but as you
I am in the process of moving all services on my server to VM's. I'd
like to run vexim on a different VM than the one where exim (and mysql)
is running. With the current version of vexim this works for the most
part, but when I try to add new local domains it returns an error,
probably because the local mailspool directory (/var/spool/vmail) does
not exist.
Would it be an idea to make this an option? I think of a script that
runs periodically (via cron) that creates all the required directories
in the mailspool, or something like that.
Great! That's easy to do. In fact it could be corrected in the PHP
version (but I'm guessing you already have a workaround).

Yes we can definitely have a "mailspool_is_local" option.
In future we could also have the ability to SSH to the mail server and
make directories, if you want :-)
Maarten te Paske
2011-01-10 08:53:21 UTC
Permalink
Post by Avleen Vig
Post by Maarten te Paske
Would it be an idea to make this an option? I think of a script that
runs periodically (via cron) that creates all the required directories
in the mailspool, or something like that.
Great! That's easy to do. In fact it could be corrected in the PHP
version (but I'm guessing you already have a workaround).
I don't have a workaround yet, but it's not that important right now. I
still have the vexim php code running on both hosts, and I don't add new
domains very often.
Post by Avleen Vig
Yes we can definitely have a "mailspool_is_local" option.
That would be great!
Post by Avleen Vig
In future we could also have the ability to SSH to the mail server and
make directories, if you want :-)
Personally, I'm a bit hesitant to give an keyset access to my mailspool
without a passphrase. Creating the required directories manually (or via
cron) would do the trick for me.

However, I thought you said vexim doesn't do any mkdir, so I guess
directories are already created by Exim?

Cheers,

Maarten

Loading...