GNOME Bugzilla – Bug 390609
gda-sharp build system
Last modified: 2007-03-12 23:20:47 UTC
There are a number of shortcomings in the gda-sharp build system compared to gtk-sharp: 1) Assemblies should be strongname-signed and installed in the GAC. - requires a .snk; can we use gtk-sharp's, or should we make our own? - minor patches to configure.in, Makefile.am, and AssemblyInfo.cs.in. 2) GAPI files should be installed into the gapidir. - minor patch to configure.in and Makefile.am. 3) Monodoc docs should be generated. - requires a new directory and more configure.in checks. - do we install into classlib-gnome or various? /me wonders if gda-sharp should be packaged separately from libgda; I guess that depends who's maintaining what. (BTW A "Mono bindings" bugzilla component should be added for libgda.) I'm working on patch for these; in the meantime please advise.
I'm sure that a patch would indeed be welcome. > /me wonders if gda-sharp should be packaged separately from libgda; That would be my wish. It wasn't my choice.
I would like some guidance wrt my questions 1a and 3b if possible.
Sorry, I have no idea about the #c++ stuff. You might try asking on the mailing list, because the other maintainers don't seem to read bugzilla much.
Please do ask on the lista bout the c# stuff.
Created attachment 83345 [details] gda-sharp.snk
Created attachment 83346 [details] [review] gda-sharp-2.99.5 patch * configure.in * gda-sharp/Application.cs * gda-sharp/AssemblyInfo.cs.in * gda-sharp/Makefile.am * gda-sharp/doc/Makefile.am * gda-sharp/doc/gda-sharp-docs.source * gda-sharp/gda-sharp-3.0.pc.in * gda-sharp/gda-sharp.dll.config.in: Correct library name for DllImport calls. Modify gda-sharp build system to install in the GAC. Build and install monodoc documentation. (Requires post-2.99.5 patch to Gda.metadata already in trunk.) Please test, especially wrt make dist.
I forgot: add gda-sharp.snk to EXTRA_DIST in top-level Makefile.am.
Created attachment 83354 [details] [review] gda-sharp-2.99.5 patch (take 2) Rolling new patch. * Makefile.am * configure.in * gda-sharp/Application.cs * gda-sharp/AssemblyInfo.cs.in * gda-sharp/Makefile.am * gda-sharp/doc/Makefile.am * gda-sharp/doc/gda-sharp-docs.source * gda-sharp/gda-sharp-3.0.pc.in * gda-sharp/gda-sharp.dll.config.in: Correct library name for DllImport calls. Depends only on glib-sharp-2.0, not gtk-sharp. Modify gda-sharp build system to install in the GAC. Build and install monodoc documentation.
Thanks. I have committed this. The patch did not apply perfectly, but the desired changes do seem to be in the file: murrayc@murrayc-desktop:~/svn/gnome218/FULL/libgda/trunk$ patch -p2 < /home/murrayc/patches/gdasharp.patch patching file Makefile.am patching file configure.in patching file gda-sharp/Application.cs patching file gda-sharp/AssemblyInfo.cs.in patching file gda-sharp/Gda.metadata Reversed (or previously applied) patch detected! Assume -R? [n] Apply anyway? [n] Skipping patch. 1 out of 1 hunk ignored -- saving rejects to file gda-sharp/Gda.metadata.rej patching file gda-sharp/Makefile.am patching file gda-sharp/doc/Makefile.am patching file gda-sharp/doc/gda-sharp-docs.source patching file gda-sharp/gda-sharp-3.0.pc.in patching file gda-sharp/gda-sharp.dll.config.in
The Gda.metadata patch was already in CVS, but I needed it for 2.99.5 to build; I just forgot to remove it from my patch.
Did you add gda-sharp.snk to the top level?
I don't seem to have a gda-sharp.snk file. Could you attach it, please, and any necessary patch.
*** Bug 413791 has been marked as a duplicate of this bug. ***
> I don't seem to have a gda-sharp.snk file. Could you attach it, please, and any > necessary patch. It's the first attachment to this bug. It needs to be placed in the toplevel of libgda and libgnomedb sources.
OK. I have added that to svn. Now there is this error during make dist, probably because I don't have mono installed: make[1]: Entering directory `/home/murrayc/svn/gnome218/FULL/libgda/trunk/gda-sharp' gda-sources.xml /bin/bash: gda-sources.xml: command not found make[1]: *** [-api.raw] Error 127 make[1]: Leaving directory `/home/murrayc/svn/gnome218/FULL/libgda/trunk/gda-sharp' make: *** [distdir] Error 1 I don't like having to install mono just to make distcheck work. I'd much prefer the mono bindings to be separate, like the other bindings. I've posted to the list about this. But anyway, after installing the gapi stuff, I get these warnings during autogen.sh: configure.in:52: warning: AC_ARG_PROGRAM invoked multiple times gda-sharp/Makefile.am:40: addprefix --symbols=$(srcdir: non-POSIX variable name gda-sharp/Makefile.am:40: (probably a GNU make extension) gda-sharp/Makefile.am:54: addprefix $(srcdir: non-POSIX variable name gda-sharp/Makefile.am:54: (probably a GNU make extension) gda-sharp/Makefile.am:55: addprefix -I:, $(INCLUDE_API: non-POSIX variable name gda-sharp/Makefile.am:55: (probably a GNU make extension) gda-sharp/Makefile.am:74: addprefix $(srcdir: non-POSIX variable name gda-sharp/Makefile.am:74: (probably a GNU make extension) gda-sharp/Makefile.am:75: addprefix /r:, $(references: non-POSIX variable name gda-sharp/Makefile.am:75: (probably a GNU make extension) and these errors: configure.in:1096: required file `gda-sharp/Makefile.in' not found configure.in:1096: required file `gda-sharp/gda-sharp.dll.config.in' not found configure.in:1096: required file `gda-sharp/gda-sharp-3.0.pc.in' not found configure.in:1096: required file `gda-sharp/AssemblyInfo.cs.in' not found configure.in:1096: required file `gda-sharp/doc/Makefile.in' not found configure.in:1096: required file `testing/Makefile.in' not found configure.in:1096: required file `tests/Makefile.in' not found configure.in:1096: required file `doc/Makefile.in' not found configure.in:1096: required file `doc/C/Makefile.in' not found configure.in:1096: required file `data/Makefile.in' not found Makefile.am:3: required directory ./tests does not exist Makefile.am:3: required directory ./testing does not exist Makefile.am:3: required directory ./data does not exist Makefile.am:3: required directory ./doc does not exist Sorry to bother you with this. I guess it's working for you.
I'll see at this errors and I'll try to fix them, becouse you don't need to have installed mono in order to compile libgda in old versions.
Created attachment 83994 [details] [review] Patch: API updates, some Makefile.am updates
gda-sharp.snk should be in EXTRA_DIST of the toplevel Makefile.am, NOT gda-sharp/Makefile.am.
Revision 2854 compiles well. Attached patch id=83994, for API updates and Makefile.am: adding snk to EXTRA_DIST, and upgrade dependency to mono version 1.2.2 to fix some errors in previous versions about code generation have not proper semantics for variables captured by anonymous methods (see mono's release notes) Theres an error in attachment, dependency is set to 1.2.3, must be 1.2.2; I have attached a new one with snk moved to EXTRA_DIST in Makefile.am at toplevel.
Created attachment 83996 [details] [review] API updates and upgrade dependency to 1.2.2 of mono
I have applied that patch, and made the suggested change to make sure that gda-sharp.snk is disted. But I'm running out of patience with the gda-sharp bindings which don't even belong in the same tarball as libgda itself, and I am now removing them. People who care about it should revive it and maintain it elsewhere so that we don't have to. This should make life easier for distro packagers too. Before removing the gda-sharp stuff, I tagged trunk as libgda_3_0_before_removing_gda_sharp
Why don't simply disable it by default... then if any one wants to compile or maintain it simple pass a --enable-gda-csharp flag, and don't remove it. I'm doing this for gnomedb-sharp too...
Because it needs to be at least distributed, and I'm tired of it breaking our builds. Bindings do not belong in the same tarball as the thing they bind anyway, for many reasons mentioned on the mailing list. Outside of libgda it has a chance to live.
Daniel, as you are a GNOME dev working on this, could you make new gda-sharp and gnomedb-sharp SVN modules?
I haven't a dev account in gnome, but requested, to contribute to libgda and libgnomedb, but hope any one could help with this, I think is better to have a svn module for Gda# and GnomeDb# bindings.