I'm currently in the process of adopting the Debian Spring package. I have successfully built 95.0 but encountered three issues. I'd be glad for some pointers here.
tl;dr
1. Tests don't work
2. Cannot pass custom CPPFLAGS or CXXFLAGS to CMake
3. Embedded libraries
1. Tests don't work
I would like to run the test suite but most tests fail like this one
It seems those executables aren't built andCould not find executable /tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/test_SyncedPrimitive
Looked in the following places:
/tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/test_SyncedPrimitive
/tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/test_SyncedPrimitive
/tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/Release/test_SyncedPrimitive
/tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/Release/test_SyncedPrimitive
/tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/Debug/test_SyncedPrimitive
/tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/Debug/test_SyncedPrimitive
/tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/MinSizeRel/test_SyncedPrimitive
/tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/MinSizeRel/test_SyncedPrimitive
/tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/RelWithDebInfo/test_SyncedPrimitive
/tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/RelWithDebInfo/test_SyncedPrimitive
/tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/Deployment/test_SyncedPrimitive
/tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/Deployment/test_SyncedPrimitive
/tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/Development/test_SyncedPrimitive
/tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/Development/test_SyncedPrimitive
tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/test_SyncedPrimitive
tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/test_SyncedPrimitive
tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/Release/test_SyncedPrimitive
tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/Release/test_SyncedPrimitive
tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/Debug/test_SyncedPrimitive
tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/Debug/test_SyncedPrimitive
tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/MinSizeRel/test_SyncedPrimitive
tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/MinSizeRel/test_SyncedPrimitive
tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/RelWithDebInfo/test_SyncedPrimitive
tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/RelWithDebInfo/test_SyncedPrimitive
tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/Deployment/test_SyncedPrimitive
tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/Deployment/test_SyncedPrimitive
tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/Development/test_SyncedPrimitive
tmp/buildd/spring-95.0+dfsg/obj-x86_64-linux-gnu/test/Development/test_SyncedPrimitive
Code: Select all
make tests
How can I use the test suite?
2. Debian usually passes some additional CPPFLAGS and CXXFLAGS to the gcc compiler for hardening reasons. https://wiki.debian.org/Hardening
I haven't had any luck so far with adding additional flags to the build, e.g with -DCMAKE_CXX_FLAGS. I think it would make the whole engine more secure if options like -D_FORTIFY_SOURCE=2 or -fstack-protector --param ssp-buffer-size=4 were added.
The question is do you support hardening build flags (I read this could cause online sync problems) or what do you think in general about it?
3. Spring embeds a couple of well-known libraries such as lua and luasocket or assimp. Using embedded libraries is frowned upon in Debian and normally they are replaced by system libraries to make it easier to maintain the software in question and to fix security issues only once.
I did this for the assimp library but it seems your lua and luasocket versions are more difficult to replace. Is there a chance to get your changes into the upstream version of lua and luasocket?
Thanks for reading