[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