From: Jose Ildefonso Camargo Tolosa on
Greetings,

On Thu, Jun 17, 2010 at 11:15 PM, Victor Duchovni
<Victor.Duchovni(a)morganstanley.com> wrote:
> On Thu, Jun 17, 2010 at 11:01:16PM -0430, Jose Ildefonso Camargo Tolosa wrote:
>
>> Of course, postfix support "plug-ins"
>> architecture, so, it is likely that you just need to add the ldap
>> part.  As for Mac: I don't know exactly how to do it, but in the worst
>> of the cases, it would involved recompiling postfix (or, maybe,
>> compile the plug-in).  I don't know how to do it, because I use
>> Debian, and I just had to install the package: postfix-ldap, and
>> everything was just fine after that.
>
> The plug-ins you speak of are a Debian-specific feature, they are not
> part of the official Postfix release and not available on most platforms.

So.... most platforms "statically" link ldap support with postfix? I
mean, most platform actually support dynamic linking, so, just like it
is done in Debian (and Ubuntu, and likely on other distros), that it
just adds the file dict_ldap.so , it should be possible to do
something similar on most architectures (DLL's on Windows, for
example). I have seem similar things on Solaris too (.sl, if memory
serves me). So, I would say that:most platforms support this. Off
course, there could be a problem if you don't have *the same* compiler
used to build the already installed version, it may be just easier to
recompile postfix (or find a package for your platform that includes
ldap support).

I have not needed to compile postfix myself (but that would not be a
problem anyway, I have been around unix systems for over 14 years
now), but to tell the truth: I'm thankful to have a distro that "just
works", it saves me time when it comes to basic config, and leave me
plenty of "extra" time to work on things that are more important. I
mean, why "build the wheel", if it is already done, unless, off
course, I believe I can do it better, or I need a "better" wheel (but
that's not the case most of the time).

And I really believe that people should read the docs, he didn't even
knew "who" provided SASL (cyrus by default, and I actually use
dovecot), that means that he didn't read the SASL readme on the
postfix's site! I mean, postfix has one of the best documentation for
any software I have ever used (I could only compare it to PostgreSQL's
one), and people just don't use it! come on! I just can't understand.

Sincerely,

Ildefonso Camargo

From: Jose Ildefonso Camargo Tolosa on
I *never* said it was easy. I only said it should be possible on most
platforms. Also, I never said it was even necessary.

Thanks for the tech discussion, I even feel my neurons getting out of
lethargy! :)

On Jun 18, 2010 9:47 AM, "Victor Duchovni" <
Victor.Duchovni(a)morganstanley.com> wrote:

On Fri, Jun 18, 2010 at 12:17:40AM -0430, Jose Ildefonso Camargo Tolosa
wrote:

> > The plug-ins you...
Most platforms optionally compile-in LDAP support, and link against LDAP
libraries (static or dynamic). Don't confuse run-time dynamic linking
with dynamic loading of new modules.


> I mean, most platform actually support dynamic linking, so, just like it
> is done in Debian (and...
- libtool is an abomination, I expect and very much hope that Postfix
will not, any time soon, resort to using libtool.

- The mechanisms for dynamic loading of modules are not standardized
across various Unix-like systems. This feature requires a lot of
abstraction code to to implement portably across AIX, MacOSX,
Linux, HP-UX, ...


> I have seem similar things on Solaris too (.sl, if memory
> serves me).
Don't confuse HP-UX with Solaris, Solaris has ".so" files, and a sensibly
clean dynamic loading API (emulated by Linux).


> So, I would say that:most platforms support this.
Please donate libtool-free code that works on most platforms supported
by Postfix and:

- Loads a shared object, with minimal pollution of the global
symbol table (i.e. symbols of loaded object and dependencies
are not visible outside the object and its dependency tree).

- Finds a specific small set of symbols within the loaded object
and returns a table of pointers to these.

- Builds shared relocatable objects and constructs shared libraries
on the various platforms in question.

It is a good idea do not claim that something is easy until you've
done it yourself. The difference between a novice and an expert is
that experts know which problems are not as easy as they may seem.

> Off course,

http://safarisbackpack.spaces.live.com/blog/cns!36664C9801636C53!216.entry

--
Viktor.