[Geany-devel] Geany-Plugins Dependency Consolidation

Matthew Brush mbrush at xxxxx
Sun Aug 5 12:27:08 UTC 2012


On 12-08-05 04:47 AM, Frank Lanitz wrote:
> On Sun, 5 Aug 2012 10:21:04 +1000
> Lex Trotman <elextr at gmail.com> wrote:
>
>> On 5 August 2012 03:40, Matthew Brush <mbrush at codebrainz.ca> wrote:
>>> On 12-08-04 09:41 AM, Colomban Wendling wrote:
>>>>
>>>> [...]
>>>>
>>>> So... maybe I got your point wrong, but I don't think it's any
>>>> kind of a problem to have different dependencies from one plugin
>>>> to another -- actually, I think each plugin should set it
>>>> dependencies to exactly what it needs: nothing less (of course),
>>>> and nothing more.
>>>>
>>>
>>> You got it mostly. I just mean some way for the build system to
>>> handle multiple plugins sharing same dependencies like having
>>> webkit.m4 that enables/disables multiple plugins if not found. So
>>> when you configure, it says something like this:
>>>
>>>    checking for WebKit >= x.xx ... no
>>>       Disabling plugins: WebHelper, Devhelp, Markdown
>>
>> I don't see this, the *plugin* should define what it needs, not some
>> arbitrary external build script.  My (limited) understanding of the
>> plugin autofoo is that is how its done now by having local build
>> scripts in each plugin.
>>

Yeah, and currently the plugins each check for the same shared 
dependencies, but it doesn't show what they're checking for, it just 
shows the plugin's name, like:

     checking for DEVHELP ... no

What I'm asking about is to have a webkit.m4 (for example) or something 
that the plugins which use that dependency can make use of and so the 
check is only done once and if not found, it ouputs as I said 
previously. Of course I don't know if it's realistic/feasible, which is 
why I was asking.

>> If they require different versions that might mean you get Webhelper
>> and Devhelp but not Markdown, but your scheme won't allow that.  So if
>> the Markdown dev added some new feature that needed a higher version I
>> can't build the other two unless I upgrade my system :(
>>

I mean they should require the same version, the same *lowest* version 
they can work with (even if they need some minor changes to make it 
possible).

>> We should not be forcing the *highest* version needed by plugins.
>

Not what I meant. But it's sort of what we do now if you consider 
building geany-plugins as a whole.

> I agree. But I also see the point of consolidation of dependencies. Its
> getting really complicated to say geany-plugins needs this dependencies,
> but I think its an issue we need to solve on social level, not trying
> to solve it with some hack. Is there any chance to get a complete list
> which plugins depend on which library out of autotools?
>

What I was asking about wouldn't be a hack, it would just be to change 
the plugins a bit so they depend on the same version of shared 
libraries, and then to have Autotools do a check for the shared dependency.

For a list of the dependencies, you can look through the `build` 
directory's .m4 files and manually extract them (like I did for some of 
the shared ones previously). The ones with the highest versions will be 
the "minimum version required" to build geany-plugins (as a whole).

Cheers,
Matthew Brush



More information about the Devel mailing list