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

