Re: [Evolution-hackers] Evolution-2.4 Mac Problems/ Release etc
The factory is in mail-component-factory.c. mail-component would be one of the library files. Don't make it more complicated than it needs to be. You don't need to create a new directory for it, just a new makefile entry for a different .so. Being lazy I would probably create a new makefile entry for the component, but leave the old libevolution-mail.so alone, and then just change the name in the .server.in.in file. Otherwise you're going to have to fix up all the plugin makefiles too. On Sat, 2005-09-10 at 13:32 +0530, Shreyas Sriniavasan wrote: > On Fri, 2005-09-09 at 21:17 +0800, Not Zed wrote: > > Basically iirc, all of the components are setup in a pretty similar > > manner. There is a -component or -component-factory.c file which has > > the bonobo module init stuff. I think ... that just needs to be the > > only file in the bonobo-server's .so file, which links to everything > > which is just in a library with a different name than it is now. So it > > should actually be very little work. > > > > Assuming it will actually work, but i guess it should. > > > Hmm.. So when i actually got down to doing it. This is what i found > > so i moved mail-component.c mail-component.h and > mail-component-factory.c to a new > directory /evolution/component/ and was about to write a Makefile which > would build > a new dynamically loadable module (lets call it > libevolution-mail-component.la) which can link to the > libevolution-mail.so (a shared library and not a dynamically loadable > module) but thats when "reality bit me" > > a simple grep for mail-component.h in mail/ shows a bunch of files > #including the file mail-component.h and ofcourse needless to say you > cant have libevolution-mail.so linking against > libevolution-mail-component.la as that was the original demon we tried > to kill anyway. > > So the alternative is to move these files into > libevolution-mail-component.la which would make > them inaccessible to the most plugins. And to evaluate which plugins > were to break would be an other task. Clearly my analysis so far have > been only till the 1st node, i havent bothered looking into what files > include the files which include mail-component.h and so, > > The aim of the whole exercise to move all the bonobo interfaces to > libevolution-mail-component.la and all the other stuff to > libevolution-mail.so. Clearly the two seem to be rather intertwined. > > Am I misinterpreting something or "houston we have a problem" ? > > Thanks, > Shreyas -- adfa(evolution-2.4:20087): gtkhtml-WARNING **: cannot find icon: 'stock_insert-url' in gnome ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Evolution-2.4 Mac Problems/ Release etc
On Fri, 2005-09-09 at 21:17 +0800, Not Zed wrote: > Basically iirc, all of the components are setup in a pretty similar > manner. There is a -component or -component-factory.c file which has > the bonobo module init stuff. I think ... that just needs to be the > only file in the bonobo-server's .so file, which links to everything > which is just in a library with a different name than it is now. So it > should actually be very little work. > > Assuming it will actually work, but i guess it should. > Hmm.. So when i actually got down to doing it. This is what i found so i moved mail-component.c mail-component.h and mail-component-factory.c to a new directory /evolution/component/ and was about to write a Makefile which would build a new dynamically loadable module (lets call it libevolution-mail-component.la) which can link to the libevolution-mail.so (a shared library and not a dynamically loadable module) but thats when "reality bit me" a simple grep for mail-component.h in mail/ shows a bunch of files #including the file mail-component.h and ofcourse needless to say you cant have libevolution-mail.so linking against libevolution-mail-component.la as that was the original demon we tried to kill anyway. So the alternative is to move these files into libevolution-mail-component.la which would make them inaccessible to the most plugins. And to evaluate which plugins were to break would be an other task. Clearly my analysis so far have been only till the 1st node, i havent bothered looking into what files include the files which include mail-component.h and so, The aim of the whole exercise to move all the bonobo interfaces to libevolution-mail-component.la and all the other stuff to libevolution-mail.so. Clearly the two seem to be rather intertwined. Am I misinterpreting something or "houston we have a problem" ? Thanks, Shreyas ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
Re: [Evolution-hackers] Evolution-2.4 Mac Problems/ Release etc
Basically iirc, all of the components are setup in a pretty similar manner. There is a -component or -component-factory.c file which has the bonobo module init stuff. I think ... that just needs to be the only file in the bonobo-server's .so file, which links to everything which is just in a library with a different name than it is now. So it should actually be very little work. Assuming it will actually work, but i guess it should. On Fri, 2005-09-09 at 17:14 +0530, Shreyas Sriniavasan wrote: > Hey guys, > > I have been working on releasing Evolution-2.4 for Mac OS X on and off > for some time now. > I have a basic setup up and working but there are a few problems with > porting the Plugins > architecture to the MAC. > > Plugins in Evolution are typically Shared Libraries and some of them > (exchange, groupwise) link to the components (libevolution-mail, > libevolution-calnedar.so) which are Dynamically loadable modules. On > the MAC / BSD (?) platforms this is not portable, Dynamically loadable > modules cannot be linked against. Hence linking of shared libraries > against dynamically loadable modules > would not build. This issue is not visible on Linux cos Dynamically > loadable modules and Shared Libraries are treated as same by the linker. > > Further explanations of the same can be found here > > http://fink.sourceforge.net/doc/porting/shared.php?phpLang=en#lib-and-mod > > I have been talking to NotZed about how we could go about fixing these. > One solution which > both of us found acceptable was to split all the components (dynamically > loadable modules) into > a dynamically loadable module and a shared library. And since whenever > dynamically loadable modules are loaded into memory all the stuff they > are linked against also get loaded anyway. > > Please note that dynamically loadable modules can link to shared objects > and not vice versa. > > So considering that we already know what the solution is (phew) i need > to see the time frame > needed to fix the issue. I have been looking at the mailer code and i am > fairly confident of > how to do it but ofcourse the task would be beyond just fixing the > mailer. And as people have > been busy with the gnome-2.12 release this has taken bit of a back seat. > I would love to hear from the maintainers of each of the components as > to how the split should happen. This requires > detailed knowledge of the code and sadly my knowledge however meagre > would be limited to the mailer. So for a thorough fix and a closure of > this problem i would love to hear from all the > maintainers. > > The plugins which is most hampered by these problems is Exchange and > Groupwise. For groupwise > only a small functionality would be missing but exchange would be > *despairingly crippled* without the fix. So i am going to make a > evolution-2.4 mac release in the next one week without exchange then > make a dot release later with exchange as and when we get this fixed. > > Any thoughts/ inferences and suggestions are welcome. > > Regards, > Shreyas > > > > ___ > Evolution-hackers mailing list > Evolution-hackers@gnome.org > http://mail.gnome.org/mailman/listinfo/evolution-hackers -- adfa(evolution-2.4:20087): gtkhtml-WARNING **: cannot find icon: 'stock_insert-url' in gnome ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers
[Evolution-hackers] Evolution-2.4 Mac Problems/ Release etc
Hey guys, I have been working on releasing Evolution-2.4 for Mac OS X on and off for some time now. I have a basic setup up and working but there are a few problems with porting the Plugins architecture to the MAC. Plugins in Evolution are typically Shared Libraries and some of them (exchange, groupwise) link to the components (libevolution-mail, libevolution-calnedar.so) which are Dynamically loadable modules. On the MAC / BSD (?) platforms this is not portable, Dynamically loadable modules cannot be linked against. Hence linking of shared libraries against dynamically loadable modules would not build. This issue is not visible on Linux cos Dynamically loadable modules and Shared Libraries are treated as same by the linker. Further explanations of the same can be found here http://fink.sourceforge.net/doc/porting/shared.php?phpLang=en#lib-and-mod I have been talking to NotZed about how we could go about fixing these. One solution which both of us found acceptable was to split all the components (dynamically loadable modules) into a dynamically loadable module and a shared library. And since whenever dynamically loadable modules are loaded into memory all the stuff they are linked against also get loaded anyway. Please note that dynamically loadable modules can link to shared objects and not vice versa. So considering that we already know what the solution is (phew) i need to see the time frame needed to fix the issue. I have been looking at the mailer code and i am fairly confident of how to do it but ofcourse the task would be beyond just fixing the mailer. And as people have been busy with the gnome-2.12 release this has taken bit of a back seat. I would love to hear from the maintainers of each of the components as to how the split should happen. This requires detailed knowledge of the code and sadly my knowledge however meagre would be limited to the mailer. So for a thorough fix and a closure of this problem i would love to hear from all the maintainers. The plugins which is most hampered by these problems is Exchange and Groupwise. For groupwise only a small functionality would be missing but exchange would be *despairingly crippled* without the fix. So i am going to make a evolution-2.4 mac release in the next one week without exchange then make a dot release later with exchange as and when we get this fixed. Any thoughts/ inferences and suggestions are welcome. Regards, Shreyas ___ Evolution-hackers mailing list Evolution-hackers@gnome.org http://mail.gnome.org/mailman/listinfo/evolution-hackers