On Sun, Nov 6, 2011 at 8:37 PM, Monty Taylor <[email protected]> wrote:
>>> Why don't introduce:
>>>
>>> # Needs libv8.so to build
>>> external_dependency=libv8
>>> # In case of missing dependencies, this module is excluded,
>>> # but rest of build is allowed to continue
>>> required=no
>
> Yes. This is a great idea.
>
>>> ...which would then be transformed by pandora-build into
>>> "$ac_cv_libv8" = "yes". You could then still leave build_conditional
>>> as an advanced option for those that want to build their own condition
>>> statement using any autoconf code they want.
>>>
>>> I also have ldflags=${LTLIBV8} in plugin.ini. With the above change,
>>> this could be automatically added by pandora-build too.
>
> Yes. Simple case could certainly be handled automatically.
>
>>>
>>> configure.ac magic:
>>>
>>> Ok, so I proceeded to build my module that links against libv8.so. A
>>> few more problems:
>>>
>>> At first, .configure is not checking for libv8.so at all, so the above
>>> build_dependency means my module is never built. With my proposed
>>> changed above, you should make "required=" default to "yes", so that
>>> in all such situations the build will stop and user will see what the
>>> error is. required=no would then be a conscious action by the dev to
>>> allow the build to proceed.
>
> I disagree that required= should default to yes. I think that the only
> plugins that should be required are ones that will cause the server to
> malfunction if they are not built. I do think that we should build as
> many as we can based on deps.

>From a drizzled point of view I agree. The idea with being modular is
exactly this, you should end up with a minimal build if that's where
you are.

But from a developer point of view I see this as similar to building
everything in a "warnings are errors" kind of mode. There's a lot of
output when you run ./configure, so if your new and shiny plugin is
just silently skipped because of a missing dependency, it takes some
time to realize what is going on.

So essentially I'm saying that the default for pandora-plugin should
be required=yes, but almost all drizzle modules should specify
required=no.

I think I might be contradicting myself there, so I'll shut up and
leave the decision to you :-)

Of course, if I explicitly do ./configure --with-js-plugin I get the
same behavior, so it's not a biggie. But when just doing ./configure,
a missing dependency is easy to miss and then you wonder what is wrong
with your plugin...

A related point: Some time ago I edited README and docs to say that
you should start your build by doing apt-get build-dep drizzle (or
yum-builddep). If we soon have fresh and correct debs and rpms coming
out of Jenkins every day, that kind of takes care of this issue
anyway.


henrik
PS: The best thing about pandora-build: I see it enabling an escape
route from autotools :-) One day there could be another - perhaps
python based - build system backend to pandora-build and as a drizzle
dev I wouldn't need to notice because I just use the same plugin.ini
as always.

-- 
[email protected]
+358-40-8211286 skype: henrik.ingo irc: hingo
www.openlife.cc

My LinkedIn profile: http://www.linkedin.com/profile/view?id=9522559

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to