Description of problem: Got this trying to rebuild gdal for f18: /usr/include/ogdi/ecs_util.h:108:22: fatal error: projects.h: No such file or directory This appears to be triggered by proj-devel dropping /usr/include/projects.h, possibly because that is a private header. Version-Release number of selected component (if applicable): ogdi-3.2.0-0.16.beta2.fc17.x86_64 proj-4.8.0-1.fc18.x86_64 Task Info: http://koji.fedoraproject.org/koji/taskinfo?taskID=4022464 Build Info: http://koji.fedoraproject.org/koji/buildinfo?buildID=315319
Adding in gdal and proj maintainers to CC for comment/monitoring.
Yes, projects.h is no longer part of the public API. Including proj_api.h might be enough, if we're lucky.
First if there is anybody more knowledgeable in this geo stuff, I would like to transfer the ownership of ogdi. With simple s/projects.h/proj_api.h/g (see attached patch) I get ... mkdir OBJ.Linux make --directory OBJ.Linux -f ../makefile PASS='depend' /builddir/build/BUILD/ogdi-3.2.0.beta2/bin/Linux/libogdi.so.3.2 make[3]: Entering directory `/builddir/build/BUILD/ogdi-3.2.0.beta2/ogdi/c-api/OBJ.Linux' gcc -I.. -I/builddir/build/BUILD/ogdi-3.2.0.beta2/include/Linux -I/builddir/build/BUILD/ogdi-3.2.0.beta2/ogdi/include -g -O2 -pipe -Wall -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC -DPIC -DDONT_TD_VOID -DUSE_TERMIO -Wall -DUNIX=1 -DMODULES_PATH="\"/usr/lib64/ogdi/\"" -c -o ecs_dyna.o ../ecs_dyna.c In file included from /builddir/build/BUILD/ogdi-3.2.0.beta2/ogdi/include/ecs.h:353:0, from ../ecs_dyna.c:32: /builddir/build/BUILD/ogdi-3.2.0.beta2/ogdi/include/ecs_util.h:1095:3: error: unknown type name 'PJ' /builddir/build/BUILD/ogdi-3.2.0.beta2/ogdi/include/ecs_util.h:1096:3: error: unknown type name 'PJ' /builddir/build/BUILD/ogdi-3.2.0.beta2/ogdi/include/ecs_util.h:1168:1: error: unknown type name 'PJ' ../ecs_dyna.c:34:99: warning: 'cvsid_aw' defined but not used [-Wunused-function] make[3]: Leaving directory `/builddir/build/BUILD/ogdi-3.2.0.beta2/ogdi/c-api/OBJ.Linux' make[3]: *** [ecs_dyna.o] Error 1 make[2]: *** [all] Error 2 make[2]: Leaving directory `/builddir/build/BUILD/ogdi-3.2.0.beta2/ogdi/c-api' make[1]: *** [c-api] Error 2 make[1]: Leaving directory `/builddir/build/BUILD/ogdi-3.2.0.beta2/ogdi' make: *** [ogdi] Error 2 chyba: Špatný návratový kód z /var/tmp/rpm-tmp.NPnAmH (%build)
Created attachment 580233 [details] switch to proj_api.h
I'm progressing well, stay tuned ...
Created attachment 580250 [details] switch to proj_api.h Now I end with which seems as a bigger trouble, the nad_* functions are not provided by proj_api.h, some expert will be needed ... make[3]: Entering directory `/builddir/build/BUILD/ogdi-3.2.0.beta2/ogdi/datum_driver/usa' /builddir/build/BUILD/ogdi-3.2.0.beta2/config/mkinstalldirs OBJ.Linux make --directory OBJ.Linux -f ../makefile PASS='depend' /builddir/build/BUILD/ogdi-3.2.0.beta2/bin/Linux/libdtusa.so make[4]: Entering directory `/builddir/build/BUILD/ogdi-3.2.0.beta2/ogdi/datum_driver/usa/OBJ.Linux' gcc -I.. -I/builddir/build/BUILD/ogdi-3.2.0.beta2/include/Linux -I/builddir/build/BUILD/ogdi-3.2.0.beta2/ogdi/include -g -O2 -pipe -Wall -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC -DPIC -DDONT_TD_VOID -DUSE_TERMIO -Wall -DUNIX=1 -c -o dtusa.o ../dtusa.c ../dtusa.c: In function ‘dyn_nad_init’: ../dtusa.c:127:5: warning: implicit declaration of function ‘nad_init’ [-Wimplicit-function-declaration] ../dtusa.c:127:16: warning: assignment makes pointer from integer without a cast [enabled by default] ../dtusa.c: In function ‘dyn_nad_close’: ../dtusa.c:184:5: warning: implicit declaration of function ‘nad_free’ [-Wimplicit-function-declaration] ../dtusa.c: In function ‘dyn_nad_forward’: ../dtusa.c:247:3: warning: implicit declaration of function ‘nad_cvt’ [-Wimplicit-function-declaration] ../dtusa.c:247:8: error: incompatible types when assigning to type ‘projUV’ from type ‘int’ ../dtusa.c: In function ‘dyn_nad_reverse’: ../dtusa.c:314:8: error: incompatible types when assigning to type ‘projUV’ from type ‘int’ make[4]: *** [dtusa.o] Error 1 make[4]: Leaving directory `/builddir/build/BUILD/ogdi-3.2.0.beta2/ogdi/datum_driver/usa/OBJ.Linux' make[3]: *** [all] Error 2 make[3]: Leaving directory `/builddir/build/BUILD/ogdi-3.2.0.beta2/ogdi/datum_driver/usa' make[2]: *** [usa] Error 2 make[2]: Leaving directory `/builddir/build/BUILD/ogdi-3.2.0.beta2/ogdi/datum_driver' make[1]: *** [datum_driver] Error 2 make[1]: Leaving directory `/builddir/build/BUILD/ogdi-3.2.0.beta2/ogdi' make: *** [ogdi] Error 2
(While you're at it: I noticed the Requires should have %{?_isa} and proj should be deleted in the prep section.)
Upstream bug: https://sourceforge.net/tracker/?func=detail&aid=3512200&group_id=11181&atid=111181
Created attachment 589954 [details] Patch to Proj 4.8.0 You could copy the needed declarations from the current projects.h That done, you still need some very little changes to ogdi/datum_driver/usa/dtusa.c, contrib/ogdi_info/ogdi_info.c and contrib/ogdi_import/ogdi_import.c Then it builds. Whether it actually work is beyond my knowledge...
I just notice I didn't post this information here: I asked Frank Warmerdam, one of the Proj developers and OGDI developer/maintainer about this problem. He hadn't decided at that time and suggested to just ship the header file again, if it causes us problems. He said, he'd consider to ship it again in the future. I asked Devrim Gündüz for a new Proj build doing so, but it's not there yet.
Looks like Spot fixed it for us properly in ogdi-3.2.0-0.18.beta2.fc18