GNOME Bugzilla – Bug 499920
missing header files has to be shipped
Last modified: 2008-03-19 20:49:39 UTC
Please describe the problem: Although shell/es-event.h is shipped to develop something, that refers e-shell.h that isn't shipped. also e-component-registry.h, e-shell-window.h, Evolution.h and e-sidebar.h is missing too. which is being referred from e-shell.h and/or e-shell-window.h. Steps to reproduce: 1. build something that has "#include <shell/es-event.h>" line. 2. 3. Actual results: No such file or directory during compiling with es-event.h Expected results: No errors related to that. Does this happen every time? Yes Other information:
I seem to recall this sort of thing happening before. The usual solution is to forward declare the needed struct and remove the bad #include directive. In this case, - Remove #include "e-shell.h" - Add "struct _EShell;" - Replace all "EShell *shell" with "struct _EShell *shell" More broadly, what can we do to make it more obvious which header files are installed and which ones are private to Evolution? It looks like currently the only way to tell is to examine Makefile.am, which is insufficient for catching this sort of error in a peer review. Should we add a notice to the public header files or change the directory layout somehow? Perhaps add a "make check" test that checks for this sort of thing?
Created attachment 99730 [details] [review] Patch for the immediate problem
Please commit
This has been blocking people from compiling certain Evolution extensions like the Zimbra plugin, so I think it's important enough to commit to stable too. Committed to trunk (revision 34618) and gnome-2-20 branch (revision 34619). Saving the larger issue I mentioned in comment #1 for another day...
*** Bug 504385 has been marked as a duplicate of this bug. ***