Hello,

On Tue, Feb 21, 2012 at 12:30 PM, Adriaan de Jong <dej...@fox-it.com> wrote:
> Hi Alon,
>
> It's great to see a lot of work on the build system. Working with the old 
> system was often a pain, I hope the new system gives some more control and 
> especially flexibility to packagers. Still, I have a few comments/questions.

Great!

>
> As lzo support can be seen as one of the "basic features" of OpenVPN, 
> disabling it by default might not be the best approach.

Well, most cases a package management system builds the package.
It explicitly enables/disable features, so we are fine with package
management systems.
Now for manual compilation, there are two approaches:
1. The "detect" approach - even if enable disable if not detected.
2. The "explicit" approach - if enable fail if not found.

I am no fan of the "detect" approach as you never know what you get,
and package management system can build invalid packages.

The question of what to enable by default is opened one. I suggest to
enable the minimum for package to successfully build. But no problem
in adding other defaults.

> That beggars the questions:
>
>  - Which other libraries/features are disabled by default in the new build 
> system?

I will fix the documentation at last stage.
Maybe I do this now.
For now you can determine if feature is --enable or --disable. If
--enable it is disabled :)

>  - Could you please specify any other behavioural changes in the default 
> OpenVPN build system? Things like the --with-xxx-headers options disappearing?
>
> It would be nice to have some documentation for packagers as to what has 
> changed where, and why. Further, as not everyone knows the "correct" 
> autotools way of doing things, a little extra information goes a long way in 
> educating us developers. Merely saying "because it was wrong" is not going to 
> cut it in any community.

Dependencies are detected using pkgconfig if possible.
Overriding can be done by using environment variables.
See ./configure --help for a list of variables.
For example setting LZO_CFLAGS/LZO_LIBS will override LZO specific settings.
If you don't have pkgconfig set PKG_CONFIG=true and provide locations
of all libraries. Most libraries will be detected if you place
CFLAGS="-I.../include" and LDFLAGS="-L.../lib" without library
specific settings.

Within the autoconf itself the above has much impact. As instead of
previous proprietary openssl library/header detection there is a much
simpler implementation. So I won't get into details why previous was
wrong.

>
> Perhaps a split into refactoring and functional patches would help there too.

I have done this as much as I could.
I don't want to split it farther.

Alon.

Reply via email to