[Dovecot] --with-PACKAGE is not recognized (dovecot 2.0.rc2)
The build process/configure script does not recognize the --with-PACKAGE option. Unfortunately I have no experience with autoconfigure/automake but maybe someone on the list knows how to fix this? I assume it should be an easy fix as most software recognizes the --with-PACKAGE flag. :)
This is how I build dovecot:
LDFLAGS=-L/opt/openssl
CPPFLAGS=-I/opt/openssl
./configure --prefix=/opt/dovecot-2.0.rc2
--sysconfdir=/etc/opt/dovecot --localstatedir=/var/opt/dovecot
--datarootdir=/opt/dovecot-2.0.rc2 --docdir=/opt/dovecot-2.0.rc2/doc
--with-rundir=/var/opt/dovecot/run
--with-statedir=/var/opt/dovecot/state --with-PACKAGE=no
--with-ssl=openssl --with-ssldir=/etc/opt/dovecot;
/usr/sfw/bin/gmake
And I get the following warning: configure: WARNING: unrecognized options: --with-PACKAGE
Same for --without-PACKAGE: configure: WARNING: unrecognized options: --without-PACKAGE
This results in dovecot installing in the following wrong directories: /etc/opt/dovecot/dovecot /opt/dovecot-2.0.rc2/include/dovecot /opt/dovecot-2.0.rc2/lib/dovecot /opt/dovecot-2.0.rc2/libexec/dovecot
The argument --with-PACKAGE=no should be usable to disable these interemiate dovecot directories which are only useful if you install all software in /usr/local.
Thanks,
Sven
$ find /opt/dovecot-2.0.rc2 /var/opt/dovecot/ /etc/opt/dovecot -type d /opt/dovecot-2.0.rc2/man /opt/dovecot-2.0.rc2/man/man1 /opt/dovecot-2.0.rc2/man/man7 /opt/dovecot-2.0.rc2/doc /opt/dovecot-2.0.rc2/doc/wiki /opt/dovecot-2.0.rc2/doc/example-config /opt/dovecot-2.0.rc2/doc/example-config/conf.d /opt/dovecot-2.0.rc2/include /opt/dovecot-2.0.rc2/include/dovecot /opt/dovecot-2.0.rc2/aclocal /opt/dovecot-2.0.rc2/sbin /opt/dovecot-2.0.rc2/lib /opt/dovecot-2.0.rc2/lib/dovecot /opt/dovecot-2.0.rc2/lib/dovecot/auth /opt/dovecot-2.0.rc2/lib/dovecot/doveadm /opt/dovecot-2.0.rc2/libexec /opt/dovecot-2.0.rc2/libexec/dovecot /opt/dovecot-2.0.rc2/bin /var/opt/dovecot/ /var/opt/dovecot/run /var/opt/dovecot/run/empty /var/opt/dovecot/run/login /var/opt/dovecot/state /etc/opt/dovecot /etc/opt/dovecot/dovecot /etc/opt/dovecot/dovecot/private /etc/opt/dovecot/dovecot/conf.d /etc/opt/dovecot/dovecot/certs
On 10.7.2010, at 16.10, Sven Kirmess wrote:
The build process/configure script does not recognize the --with-PACKAGE option. Unfortunately I have no experience with autoconfigure/automake but maybe someone on the list knows how to fix this? I assume it should be an easy fix as most software recognizes the --with-PACKAGE flag. :)
I think the --with-PACKAGE is simply a generic help message that you can use --with-stuff and --without-stuff in that way.
The argument --with-PACKAGE=no should be usable to disable these interemiate dovecot directories which are only useful if you install all software in /usr/local.
I find it unlikely that the option for that is called --with-PACKAGE.. Name some software package where it does that?
On Sat, Jul 10, 2010 at 17:17, Timo Sirainen <tss@iki.fi> wrote:
I find it unlikely that the option for that is called --with-PACKAGE.. Name some software package where it does that?
Now I feel really stupid. You're right, I couldn't find a single package where it really had and impact. The only difference is that dovecot is the only tool I found which reports an unknown configure option which is probably why I never noticed that...
Where dovecot behaves different then other tools is here:
When you specify --sysconfdir=C it puts its files under C/dovecot. I would expect it to respect my setting and put them directly under C.
When you specify --prefix=P it puts its libraries under P/lib/dovecot and programs under P/libexec/dovecot.
(A lot of tools put the include files under P/include/dovecot)
I compile all my software to use: /etc/opt/dovecot /opt/dovecot/bin /opt/dovecot/lib /opt/dovecot/libexec /var/opt/dovecot
Which doesn't work with dovecot, as far as I can tell. Especially for libexec. (--sysconfdir could be set to /etc/opt which would be different then other tools but should work.)
On 10.7.2010, at 19.04, Sven Kirmess wrote:
When you specify --sysconfdir=C it puts its files under C/dovecot. I would expect it to respect my setting and put them directly under C.
Well, dovecot has multiple config files so it needs a directory for them. --sysconfdir=/etc is the normal configure option, and Dovecot really shouldn't use /etc/conf.d/ directory for its configs..
When you specify --prefix=P it puts its libraries under P/lib/dovecot and programs under P/libexec/dovecot.
Yes, because again the typical use case is --prefix=/usr, and Dovecot definitely shouldn't put its plugins to /usr/lib
I compile all my software to use: /etc/opt/dovecot /opt/dovecot/bin /opt/dovecot/lib /opt/dovecot/libexec /var/opt/dovecot
Yeah, it's not supported exactly like that. Feel free to play with makefiles and such to get these kinds of paths to work with e.g. --without-package-name or something. If the changes are not too horrible I'll then include it to next version. :)
On 10.7.2010, at 19.51, Timo Sirainen wrote:
When you specify --prefix=P it puts its libraries under P/lib/dovecot and programs under P/libexec/dovecot.
Yes, because again the typical use case is --prefix=/usr, and Dovecot definitely shouldn't put its plugins to /usr/lib
Actually this isn't a good idea in any case, especially with v2.0:
prefix/lib/ contains libdovecot*.so libraries prefix/lib/dovecot/ contains plugins
Perhaps there should be a separate --plugindir parameter for that. You'd then have:
/opt/dovecot/lib /opt/dovecot/lib/plugins
or something.
participants (2)
-
Sven Kirmess
-
Timo Sirainen