On Mon, 09 Mar 2009 14:45:08 -0700 Piotr Stanczyk <pstanc...@ilm.com> wrote:
> J.C. Roberts wrote: > > Hello, > > > > This is my first post to this mailing list, and I tried to RTFM for > > the answer, but was unsuccessful. On neither savannah.nongnu.org nor > > openexr.org could I find out the preferred way to submit patches? > > > > If you'd be so kind to drop-kick me towards the docs/faq on this > > topic, it would be much appreciated. > > > > Thanks. > > > > > Hi. > > You are welcome to send them to the administrators of the project; > feel free to drop me a line. > > Piotr > Thank you. One of the OpenBSD developers suggested *explaining* the reason for changes made by the patches. There is a very easy work-around for the problem, so changing the OpenEXR code is entirely a matter of correctness. There are two main syntaxes for using the #include directive: #include <SYSTEM> and #include "local" The '#include <SYSTEM>' syntax tells the preprocessor to search along the defined list of system header paths. The default list of system header paths is prepended by using '-I /path/to/where/ever' option. The '#include "local"' syntax tells the preprocessor to search in the directory of the file currently being processed. http://gcc.gnu.org/onlinedocs/cpp/Include-Syntax.html Though it does vary from OS to OS, let's assume there are three main places on your <SYSTEM> where header files are kept: /usr/include/ /usr/local/include/ /usr/X11R6/include/ The above typically constitute your default list of header search paths for finding '#include <SYSTEM>` header files. The OpenEXR headers are typically installed in: /usr/local/include/OpenEXR/ And again typically, other programs correctly attempt to include the OpenEXR header files would use directives like: #include <OpenEXR/ImfHeader.h> Unfortunately, the above "correct" syntax fails due to the way the OpenEXR headers are written. I've found 45 OpenEXR header files which mistakenly use '#include <SYSTEM>' syntax where they should be using the '#include "local"' syntax to include the other OpenEXR headers stored within the same directory. The reason why no one has noticed this in building OpenEXR itself is due to the use of "-I." in the build. As for the easy work-around, it seems most people will just add a "-I/where/ever/OpenEXR/headers/are" to their own programs to get around the mistakes in the OpenEXR headers. Using the "-I/where/ever" work-around can lead to conflicts (since it prepends your list of search paths), and the reason why no conflicts have cropped up is due to the fairly unique names of the OpenEXR headers. Though I seriously doubt it's really been much trouble for anyone, it's still best to fix the source of the problem. I've put the OpenEXR header patches on my server here: http://www.designtools.org/OpenBSD/OpenEXR-patches.tar.gz Yep, I'll be the first to admit the changes are trivial, pedantic and fairly easy to work-around, but they do improve code quality. Kind Regards, jcr -- J.C. Roberts _______________________________________________ Openexr-devel mailing list Openexr-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/openexr-devel