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