RE: [Thread closed] (was postfix non-standard installation location quirks)

2011-06-13 Thread Winston Smith

> Trolling will not make you friends here.

I am not here to make friends. I am here to ask a question. And I am
asking because the observed and expected behaviour differ. This should
be an indicator that something needs to change. Either the documentation,
or the behaviour of postfix (or the installation thereof).

Postfix is the first C program that has this sort of unexpected behaviour.

The reference to the middle ages was to indicate that in the year 2011,
there should not be a necessity to manually edit config files due to a
highly likely misinterpretation of a variable.

- Winston

  

[Thread closed] (was postfix non-standard installation location quirks)

2011-06-13 Thread Victor Duchovni
On Tue, Jun 14, 2011 at 12:13:34PM +1100, Winston Smith wrote:

> Are these the Programming Middle Ages???

Trolling will not make you friends here.

Configuring Postfix to live in a non-default location is done at
compile-time not install-time. At install-time one gets to either install
Postfix locally, or install an image of Postfix for packaging. This may
not be the interface you expected, but it makes sense.

Goodbye.

-- 
Viktor.


RE: postfix non-standard installation location quirks

2011-06-13 Thread Winston Smith

> > Suggestion: Leave the scripts as they are, just state in the
> > documentation that main.cf will not pick up install_root as prefix,
> > rendering it useless.
>
> Where in the documentation does it say that install_root is in any way
> recorded in main.cf?

It is reasonable to expect this. Otherwise, what effect does it have on
the installation?

When I say ./configure --prefix=/usr/local/, I also expect that not only all
files get installed under /usr/local/, but configs point to files under
/usr/local/ , not under / directly. Hence my hint to move to autoconf.
This is true for openldap or lighttpd, for instance. Why not for postfix?

I am still not convinced that the behaviour of postfix is right here.



Spool directory got created as /usr/local/var/spool/postfix/ , but main.cf
points to /var/spool/postfix/ .


 This is a clear mismatch!

Nevermind, I will *BY HAND* change my main.cf now, and I will alter
postfix *FOR MYSELF* so that main.cf points to right files in the future...

*GAAHHH*

Are these the Programming Middle Ages???

- Winston

  

Re: postfix non-standard installation location quirks

2011-06-13 Thread Victor Duchovni
On Tue, Jun 14, 2011 at 11:22:22AM +1100, Winston Smith wrote:

> The fact that I need to peek into a script first in order to understand
> the underlying mechanisms lets me believe that the documentation is
> confusing enough to let anyone believe that install_root behaves like
> a PREFIX in autoconf-generated Makefiles.

Regardless, the primary Postfix configuration file needs to be found
somewhere by the software. A non-default location cannot be specified
in a file found at the non-default location. Basic catch-22.

> Still does not explain why make install creates /usr/local/var/spool/postfix/
> although main.cf points to /var/spool/postfix/ . If main.cf does not pick
> up install_root, what's the purpose of it???

Construction of retargeted images from which to build a binary package,
rather than perform a local install.

> Does this sound right to anyone? Shouldn't main.cf conform to what
> make install is doing?

It does. It would be best to let this thread rest for now. Over and out.

-- 
Viktor.


Re: postfix non-standard installation location quirks

2011-06-13 Thread Sahil Tandon
On Tue, 2011-06-14 at 11:22:22 +1100, Winston Smith wrote:

[ rant snipped ]

> Suggestion: Leave the scripts as they are, just state in the
> documentation that main.cf will not pick up install_root as prefix,
> rendering it useless.

Where in the documentation does it say that install_root is in any way
recorded in main.cf?

-- 
Sahil Tandon 


RE: postfix non-standard installation location quirks

2011-06-13 Thread Winston Smith

> Please see the postfix-install(1) script,

The fact that I need to peek into a script first in order to understand
the underlying mechanisms lets me believe that the documentation is
confusing enough to let anyone believe that install_root behaves like
a PREFIX in autoconf-generated Makefiles.

> To install certain Postfix files under
> '/usr/local', pass that prefix to the installation parameter. For more
> information, carefully review the install script.

Still does not explain why make install creates /usr/local/var/spool/postfix/
although main.cf points to /var/spool/postfix/ . If main.cf does not pick
up install_root, what's the purpose of it???

Does this sound right to anyone? Shouldn't main.cf conform to what
make install is doing?

One will understand that I'm quite indignant about this because I only
realised this mismatch after deciding to have a quick look through main.cf
before kicking postfix of as a SysV init script. What I found there was not in
line with my expectations from what I understood from the questions that
make install is asking.

> not moving to autoconf

A "make makefiles" does not sound right to me. One has to use make
to bootstrap make. Highly error-prone...

Suggestion: Leave the scripts as they are, just state in the documentation
that main.cf will not pick up install_root as prefix, rendering it useless.

- Winston

  

Re: postfix non-standard installation location quirks

2011-06-12 Thread Wietse Venema
Winston Smith:
> 
> Hi all,
> 
> Trying to install postfix in a non-standard location (specifically /usr/local/
> instead of /), I ran into two quirks, the second one more severe than the
> first one:

Please see the INSTALL document (or INSTALL.html)

Wietse


Re: postfix non-standard installation location quirks

2011-06-12 Thread Sahil Tandon
On Mon, 2011-06-13 at 01:46:11 +1100, Winston Smith wrote:

> Trying to install postfix in a non-standard location (specifically /usr/local/
> instead of /), I ran into two quirks, the second one more severe than the
> first one:
> 
> Firstly, the naming of the config variable names the user is asked when
> saying "make install" is highly confusing: First, it is asking for the
> install_root, and then it is asking for "destination directories and paths",
> providing something like /etc/postfix as default, which suggests that they are
> overriding the setting of install_root. When accepting the default or typing
> something else, it is later interpreted as relative to install_root EVEN IF it
> starts with a / . This is confusing. Maybe the description should be changed
> into "Please enter XYZ *relative* to install_root", or the provided values
> should be interpreted as absolute paths if prepended with / and as relative
> paths (relative to install_root) if not.
> 
> Secondly, the non-standard location is not reflected in main.cf .
> E.g. queue_directory still points to /var/spool/postfix/ . This is the value
> I typed in, and it was correctly (?) interpreted to be relative to
> /usr/local/, so make install created /usr/local/var/spool/postfix/ . Why is
> main.cf still pointing to /var/spool/postfix/ ? Is this the wrong target, or
> is the prefix /usr/local/ hardcoded in postfix somewhere after make install?

Please see the postfix-install(1) script, specifically the section
titled INSTALLATION PARAMETER DESCRIPTION.  There, you are cautioned to
specify install_root ONLY when creating preā€built packages for
distribution to other systems, and that the parameter setting is not
recorded in main.cf.  To install certain Postfix files under
'/usr/local', pass that prefix to the installation parameter.  For more
information, carefully review the install script.

> After all, moving to autoconf would be a good idea because the generated
> Makefiles can handle non-standard installation locations very well, and it
> has become some sort of standard for C projects.

There are no plans for moving to the beast that is autoconf; that, IMHO,
is a good thing.

-- 
Sahil Tandon 


postfix non-standard installation location quirks

2011-06-12 Thread Winston Smith

Hi all,

Trying to install postfix in a non-standard location (specifically /usr/local/
instead of /), I ran into two quirks, the second one more severe than the
first one:

Firstly, the naming of the config variable names the user is asked when
saying "make install" is highly confusing: First, it is asking for the
install_root, and then it is asking for "destination directories and paths",
providing something like /etc/postfix as default, which suggests that they are
overriding the setting of install_root. When accepting the default or typing
something else, it is later interpreted as relative to install_root EVEN IF it
starts with a / . This is confusing. Maybe the description should be changed
into "Please enter XYZ *relative* to install_root", or the provided values
should be interpreted as absolute paths if prepended with / and as relative
paths (relative to install_root) if not.

Secondly, the non-standard location is not reflected in main.cf .
E.g. queue_directory still points to /var/spool/postfix/ . This is the value
I typed in, and it was correctly (?) interpreted to be relative to
/usr/local/, so make install created /usr/local/var/spool/postfix/ . Why is
main.cf still pointing to /var/spool/postfix/ ? Is this the wrong target, or
is the prefix /usr/local/ hardcoded in postfix somewhere after make install?

After all, moving to autoconf would be a good idea because the generated
Makefiles can handle non-standard installation locations very well, and it
has become some sort of standard for C projects.

I am using version 2.7.2 . Let me "have it" if this was fixed in the meantime.

(Please, no questions as to why I want postfix to live in /usr/local/ instead 
of / .)

- Winston