[geos-devel] [GEOS] #1143: Release distribution contains generated files with "dev" in version

GEOS geos-trac at osgeo.org
Sun Oct 31 19:00:02 PDT 2021


#1143: Release distribution contains generated files with "dev" in version
------------------------+--------------------------
 Reporter:  Mike Taves  |      Owner:  geos-devel@…
     Type:  defect      |     Status:  new
 Priority:  major       |  Milestone:  3.10.1
Component:  Default     |    Version:  main
 Severity:  Unassigned  |   Keywords:
------------------------+--------------------------
 A few surprises with the latest geos-3.10 release from
 http://download.osgeo.org/geos/geos-3.10.0.tar.bz2
  - It contains generated files that shouldn't be distributed, e.g.
 `cmake_install.cmake`, `include/geos/version.h`, `tools/geos-config`,
 `tools/geos.pc`, and empty `bin`, and a fun script `bisect_script.sh`
 (full diff later)
  - The generated files in this release still have "dev" as part of the
 version
 - From the release build, the first line from the command `geosop` shows
 "GEOS 3.10.0dev" and not "GEOS 3.10.0"

 I suspect the reason is that `make dist` was done in a git repository with
 these generated files.

 The first "fix" is to expand `CPACK_SOURCE_IGNORE_FILES` (also with
 `set(CPACK_VERBATIM_VARIABLES TRUE)`, e.g.
 [https://github.com/OSGeo/PROJ/blob/3e1cfd2164e5339cbb075c35d7eab4c55cae9bf0/CMakeLists.txt#L350-L377
 done with PROJ]. However, that doesn't guarantee that some other random
 file won't show up in the source distribution (e.g. `bisect_script.sh`).

 The safest way to run `make dist` is to do something like the following:
 {{{
 sdist_dir=$(mktemp -d)
 cd $sdist_dir
 git clone --depth 1 --branch 3.10
 https://git.osgeo.org/gitea/geos/geos.git
 cd geos
 # maybe edit Version.txt
 mkdir build
 cd geos
 cmake -G"Unix Makefiles" ..
 make dist
 }}}

 Another idea is to not use CMake for `make dist`. Use something like
 [https://git-scm.com/docs/git-archive git-archive].

 ----

 Here is the full diff of what I see in the release vs the source generated
 from the above steps in the 3.10 branch:
 {{{
 Only in geos-3.10.0: bin
 Only in geos-3.10.0: bisect_script.sh
 Only in geos-3.10.0: cmake_install.cmake
 Files geos-3.10.0/include/geos/io/WKBConstants.h and
 geos-3.10.1dev/include/geos/io/WKBConstants.h differ
 Files geos-3.10.0/include/geos/triangulate/quadedge/Vertex.h and
 geos-3.10.1dev/include/geos/triangulate/quadedge/Vertex.h differ
 Files geos-3.10.0/include/geos/util.h and
 geos-3.10.1dev/include/geos/util.h differ
 Only in geos-3.10.0/include/geos: version.h
 Only in geos-3.10.0: ltmain.sh
 Files geos-3.10.0/NEWS and geos-3.10.1dev/NEWS differ
 Files geos-3.10.0/README.md and geos-3.10.1dev/README.md differ
 Files geos-3.10.0/src/algorithm/Distance.cpp and
 geos-3.10.1dev/src/algorithm/Distance.cpp differ
 Files geos-3.10.0/src/algorithm/LineIntersector.cpp and
 geos-3.10.1dev/src/algorithm/LineIntersector.cpp differ
 Files geos-3.10.0/src/algorithm/MinimumBoundingCircle.cpp and
 geos-3.10.1dev/src/algorithm/MinimumBoundingCircle.cpp differ
 Files geos-3.10.0/src/geom/LineSegment.cpp and
 geos-3.10.1dev/src/geom/LineSegment.cpp differ
 Files geos-3.10.0/src/geom/util/Densifier.cpp and
 geos-3.10.1dev/src/geom/util/Densifier.cpp differ
 Files geos-3.10.0/src/geom/util/GeometryTransformer.cpp and
 geos-3.10.1dev/src/geom/util/GeometryTransformer.cpp differ
 Files geos-3.10.0/src/io/GeoJSONReader.cpp and
 geos-3.10.1dev/src/io/GeoJSONReader.cpp differ
 Files geos-3.10.0/src/triangulate/VoronoiDiagramBuilder.cpp and
 geos-3.10.1dev/src/triangulate/VoronoiDiagramBuilder.cpp differ
 Files geos-3.10.0/tests/unit/capi/GEOSDistanceTest.cpp and
 geos-3.10.1dev/tests/unit/capi/GEOSDistanceTest.cpp differ
 Files geos-3.10.0/tests/unit/capi/GEOSFrechetDistanceTest.cpp and
 geos-3.10.1dev/tests/unit/capi/GEOSFrechetDistanceTest.cpp differ
 Files geos-3.10.0/tests/unit/capi/GEOSGeom_setPrecisionTest.cpp and
 geos-3.10.1dev/tests/unit/capi/GEOSGeom_setPrecisionTest.cpp differ
 Files geos-3.10.0/tests/unit/capi/GEOSHausdorffDistanceTest.cpp and
 geos-3.10.1dev/tests/unit/capi/GEOSHausdorffDistanceTest.cpp differ
 Files geos-3.10.0/tests/unit/capi/GEOSSTRtreeTest.cpp and
 geos-3.10.1dev/tests/unit/capi/GEOSSTRtreeTest.cpp differ
 Files geos-3.10.0/tests/unit/io/GeoJSONReaderTest.cpp and
 geos-3.10.1dev/tests/unit/io/GeoJSONReaderTest.cpp differ
 Only in geos-3.10.0/tools: geos-config
 Only in geos-3.10.0/tools: geos.pc
 Files geos-3.10.0/Version.txt and geos-3.10.1dev/Version.txt differ
 }}}

-- 
Ticket URL: <https://trac.osgeo.org/geos/ticket/1143>
GEOS <http://trac.osgeo.org/geos>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).


More information about the geos-devel mailing list