On 11/06/2011 01:19 PM, Henrik Ingo wrote:
> On Sun, Nov 6, 2011 at 8:37 PM, Monty Taylor <mord...@inaugust.com> 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 :-)

Hrm. You are making a good point here. Let's keep thinking about this.

> 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.

Agree.
> 
> 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.

Yes. I very much agree with that. :)

_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : drizzle-discuss@lists.launchpad.net
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to