After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 508262 - Fails build
Fails build
Status: RESOLVED WONTFIX
Product: gnome-pilot
Classification: Other
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: gnome-pilot Maintainers
gnome-pilot Maintainers
gnome[unmaintained]
Depends on:
Blocks:
 
 
Reported: 2008-01-09 11:07 UTC by Bastien Nocera
Modified: 2018-07-02 10:33 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
return gnome-pilot-conduit-{config,management}.h to libgpilotdCM/ (7.03 KB, patch)
2009-01-07 12:31 UTC, Matt Davey
committed Details | Review

Description Bastien Nocera 2008-01-09 11:07:29 UTC
From a clean checkout:
 gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I../gpilotd -I../libgpilotdCM -DG_LOG_DOMAIN=\"libgpilotdcm\" -DORBIT2=1 -pthread -I/usr/include/libxml2 -I/usr/include/libgnome-2.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/libbonobo-2.0 -I/usr/include/orbit-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/libgnomeui-2.0 -I/usr/include/libbonoboui-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib64/gnome-vfs-2.0/include -I/usr/include/libart-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/gconf/2 -I/usr/include/libglade-2.0 -DDBUS_API_SUBJECT_TO_CHANGE -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/hal -DCONDUITDIR=\"/usr//share\" -g -O2 -Wall -Wmissing-prototypes -MT gnome-pilot-conduit-management.lo -MD -MP -MF .deps/gnome-pilot-conduit-management.Tpo -c gnome-pilot-conduit-management.c  -fPIC -DPIC -o .libs/gnome-pilot-conduit-management.o
In file included from gnome-pilot-conduit-management.c:13:
gnome-pilot-conduit-management.h:16:41: error: gpilotd/gnome-pilot-conduit.h: No such file or directory
In file included from gnome-pilot-conduit-management.c:13:
gnome-pilot-conduit-management.h:108: error: expected declaration specifiers or '...' before 'GPilotPilot'
gnome-pilot-conduit-management.h:109: error: expected declaration specifiers or '...' before 'GnomePilotConduit'
gnome-pilot-conduit-management.h:111: error: expected declaration specifiers or '...' before 'GnomePilotConduit'
In file included from gnome-pilot-conduit-management.c:15:

It seems that gpilotd/gnome-pilot-conduit.h isn't created before going into libgpilotCM/, and moving gpilotd first in the SUBDIRS means that ../libgpilotdCM/libgpilotdcm.la is missing.
Comment 1 Matt Davey 2008-01-09 13:46:43 UTC
This is an old old bug, unfortunately.  I must have come across this once upon a time, but had forgotten about it because these header files only get deleted by a 'make maintainer-clean' run.

The solution, as 'documented' by the original author is in the README file:

* NOTE: Currently theres a buildorder bug betweet libgpilotdCM and
* gpilotd. If you get a compiletime error in libgpilotdCM that file
* "gpilotd/gnome-pilot-conduit.h" is missing, do a make -k and then
* make again. 

This is grim, and points to circular dependencies between gpilotd and libgpilotdCM directories that I've never felt the urge to touch.

Suggestions?  I'm tempted to leave this as 'WONTFIX' as it affects users building from svn rather than tar.gz, unless we can find some relatively low impact solution.
Comment 2 Bastien Nocera 2008-01-09 17:39:07 UTC
Stopping using gob would fix it...
Comment 3 Bastien Nocera 2008-01-09 17:40:38 UTC
Or all the files in the same directory, even if you create 2 libraries from them. SVN makes this quite easy.

Marking as WONTFIX isn't really useful, it means that it will fail building for everyone following the "usual" building instructions, and means special-casing in build scripts.
Comment 4 Matt Davey 2008-01-09 17:49:13 UTC
agreed.  getting rid of the libgpilotdCM directory would probably be the way to go here.

When you say "SVN makes this quite easy", do you mean "easy to migrate files from one location to another while keeping history", or something else?
Comment 5 Bastien Nocera 2008-01-09 18:11:09 UTC
(In reply to comment #4)
> agreed.  getting rid of the libgpilotdCM directory would probably be the way to
> go here.
> 
> When you say "SVN makes this quite easy", do you mean "easy to migrate files
> from one location to another while keeping history", or something else?

Yeah, "svn move" makes it a snap. I can break it if you want me to :)
Comment 6 Matt Davey 2008-10-07 07:45:55 UTC
I've finally got around to fixing this (revision 1553).  Please check it out if you get a moment.  Shouldn't take much more than:
  svn co http://svn.gnome.org/svn/gnome-pilot/trunk gnome-pilot
  cd gnome-pilot/
  ./autogen.sh  && make
and then a quick sync test.

A gnome-pilot-2.0.17 release is due, so a quick confirmation this works for you would be great.
Comment 7 Matt Davey 2009-01-03 16:38:07 UTC
Bastien,
There is a problem with this approach: the generated headers are now in the gpilotd/ directory, and get installed in $prefix/include/gpilotd rather than $prefix/include/libgpilotdCM.  This will break existing code such as evolution conduits.

Rather than introduce an incompatibility between gnome-pilot 2.0.17 and existing conduit code, I think I'll look into putting the generated headers into a libgpilotdCM/ directory.

Thoughts?
Comment 8 Matt Davey 2009-01-05 10:05:17 UTC
Hope to have this fixed within the next day or two.  I'm going to take the approach of keeping the conduit-manager gob generated files in libgpilotdCM/ (where they were before) but doing the build of libgpilotdcm from the gpilotd/ directory so we avoid build order problems.
Comment 9 Bastien Nocera 2009-01-06 11:56:25 UTC
Wouldn't something as easy as that fix it?

Index: Makefile.am
===================================================================
--- Makefile.am	(revision 1555)
+++ Makefile.am	(working copy)
@@ -121,7 +121,7 @@
 libgpilotdcm_la_SOURCES = \
 	$(GOB_LIBGPILOTDCM_BUILT_SRCS)
 
-libgpilotdcmincludedir = $(includedir)/gpilotd
+libgpilotdcmincludedir = $(includedir)/libgpilotdCM
 
 libgpilotdcminclude_HEADERS = \
 	gnome-pilot-conduit-management.h 	\
Comment 10 Matt Davey 2009-01-06 12:54:00 UTC
There's a little more to it, because you can't have the headers generated in source/gpilotd/ and installed in prefix/include/libgpilotdCM because that breaks build-time for code that is using "#include<libgpilotdCM/blah.h>".
Comment 11 Bastien Nocera 2009-01-06 13:07:20 UTC
$ grep -r libgpilotdCM/ `find -name "*.[ch]"`
$

There aren't any such problematic files left in gnome-pilot. The only thing we'd be breaking would be programs that try to compile against the uninstalled version of gnome-pilot. I'm not sure that was ever supposed to work though.
Comment 12 Matt Davey 2009-01-07 12:31:43 UTC
Created attachment 125926 [details] [review]
return gnome-pilot-conduit-{config,management}.h to libgpilotdCM/

Take a look at, for example, gnome-pilot-conduit-config.h.
This is one of the headers installed by gnome-pilot, and in current SVN it includes "#include<gpilotd/gnome-pilot-conduit-management.h>".
However, this needs to change back to "<libgpilotdCM/gnome-pilot-conduit-management.h>", because existing third party code expects it to live there.

Once we change it back to "<libgpilotdCM/gnome-pilot-conduit-management.h>" then it needs to be present in that directory name in the uninstalled tree, too, for the build to work.

I'm attaching the proposed patch that seems to fix Evolution building for me.

With this patch, I'm ready to release 2.0.17, so any quick feedback would be great.
Comment 13 Bastien Nocera 2009-01-07 14:55:35 UTC
Oh well... I'd rather somebody just broke source compilation once and for all, and we avoid dragging that like a ball and chain.
Comment 14 Matt Davey 2009-01-07 17:19:56 UTC
Well, it should prove a pretty light ball and chain, and I'd rather that than force Evolution to require a specific gnome-pilot version.
Comment 15 André Klapper 2018-07-02 10:33:14 UTC
gnome-pilot is not under active development anymore and has not seen code
changes for seven years. Its codebase has been archived:
https://gitlab.gnome.org/Archive/gnome-pilot/commits/master

Closing this report as WONTFIX as part of Bugzilla Housekeeping to reflect
reality. Please feel free to reopen this ticket (or rather transfer the project
to GNOME Gitlab, as GNOME Bugzilla is deprecated) if anyone takes the
responsibility for active development again.