"Regina Obe" <l...@pcorp.us> writes: > Speaking of reverting the last change that started this whole > discussion -- does anyone have thoughts on alternative to printf for > sh? I would like to keep the intent if possible without causing > backward compatibility issues. > > I assume these are the sections that would need reverting. > > https://git.osgeo.org/gitea/geos/geos/pulls/99.diff - in the > tools/geos-config.cmake #!/bin/sh > > index 24a5725..abef1e3 100644 > --- a/tools/geos-config.cmake > +++ b/tools/geos-config.cmake > @@ -1,12 +1,12 @@ > -#!/bin/sh > +#!/bin/bash -e > > -prefix=@CMAKE_INSTALL_PREFIX@ > -exec_prefix=@CMAKE_INSTALL_PREFIX@/bin > -libdir=@CMAKE_INSTALL_PREFIX@/lib > +# escape path > +prefix=$(printf %q "@CMAKE_INSTALL_PREFIX@") > +libdir=${prefix}/lib > > and tools/geos-config.in > > --- a/tools/geos-config.in > +++ b/tools/geos-config.in > @@ -1,11 +1,12 @@ > -#!/bin/sh > -prefix=@prefix@ > -exec_prefix=@exec_prefix@ > -libdir=@libdir@ > +#!/bin/bash -e > + > +# escape paths > +prefix=$(printf %q "@prefix@") > +libdir=$(printf %q "@libdir@")
So assigning prefix=@prefix@ works perfectly fine. The problem is when that is printed later. If it's just space we are worried about, one could basically printf into sed to change space to "\ ", and I think that's what the stack overflow suggestion is doing. The basic problem is that the build ecosystems assume that one can use space to tokenize arguments. That is indeed the ancient Unix tradition, and fighting that leads to lots of pain with quoting. There's another problem here, which is that inserting \ for quoting is presuming that the output of geos-config is going to be interpreted by a shell, rather than taken as is and used to build a command line. I suppose there is that implication because there are multiiple arguments separated by a space. One could argue that the interface is space separated arguments, not shell language. So overall I see allowing spaces in prefix as heading off into not-well-defined behavior. _______________________________________________ geos-devel mailing list geos-devel@lists.osgeo.org https://lists.osgeo.org/mailman/listinfo/geos-devel