diff --git a/PDAL-1.5.0-src.tar.bz2 b/PDAL-1.5.0-src.tar.bz2 deleted file mode 100644 index 555c22a..0000000 --- a/PDAL-1.5.0-src.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d86c83aa87669c0a084833449b294db3a32a15aab6d7f8215e7eac7695a0518c -size 58884629 diff --git a/PDAL-1.5.0-src.tar.bz2.md5 b/PDAL-1.5.0-src.tar.bz2.md5 deleted file mode 100644 index 1ab4ae4..0000000 --- a/PDAL-1.5.0-src.tar.bz2.md5 +++ /dev/null @@ -1 +0,0 @@ -bda90d15e84e36684836212ebbca09f2 PDAL-1.5.0-src.tar.bz2 diff --git a/PDAL-1.6.0-src.tar.gz b/PDAL-1.6.0-src.tar.gz new file mode 100644 index 0000000..947ce82 --- /dev/null +++ b/PDAL-1.6.0-src.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61f328691699f4fdd28486489b1e679fc3b83bb75300d3075f69fe1092e63efc +size 62428350 diff --git a/PDAL-1.6.0-src.tar.gz.md5 b/PDAL-1.6.0-src.tar.gz.md5 new file mode 100644 index 0000000..bc103c3 --- /dev/null +++ b/PDAL-1.6.0-src.tar.gz.md5 @@ -0,0 +1 @@ +MD5 (PDAL-1.6.0-src.tar.gz) = 4e801b06e2bde2316782fcdd1be4422f diff --git a/PDAL.changes b/PDAL.changes index cddf978..605c66f 100644 --- a/PDAL.changes +++ b/PDAL.changes @@ -1,3 +1,17 @@ +------------------------------------------------------------------- +Mon Jan 15 13:00:20 UTC 2018 - bruno@ioda-net.ch + +- Update to version 1.6.0 + Visit https://github.com/PDAL/PDAL/releases/tag/1.6.0 for all + improvements done since 1.5 +- Adjust sofull_version to 6.1.0 soname to 5 and sovers to 5 +- Add upstream patch f717a4c.patch (json-c 0.13 support) +- Packaging: + + tarball are only published in tar.gz so adapt + + Build now only with python3 + + ToBeDone upgrade laszip to 3.1.0 + + Adapt file list to newer version + ------------------------------------------------------------------- Wed May 31 06:24:07 UTC 2017 - bruno@ioda-net.ch diff --git a/PDAL.spec b/PDAL.spec index 6728b2e..62bb571 100644 --- a/PDAL.spec +++ b/PDAL.spec @@ -2,7 +2,7 @@ # spec file for package PDAL # # Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. -# Copyright (c) 2016 Friedmann Bruno, Ioda-Net Sàrl, Charmoille, Switzerland. +# Copyright (c) 2018 Friedmann Bruno, Ioda-Net Sàrl, Charmoille, Switzerland. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,21 +24,23 @@ # Ask upstream to clarify seems sofull_version is build version %define soname 5 -%define sovers 4 -%define sofull_version 5.1.0 +%define sovers 5 +%define sofull_version 6.1.0 %define lname pdal Name: PDAL -Version: 1.5.0 +Version: 1.6.0 Release: 0 Summary: Point Data Abstraction Library. GDAL for point cloud data #@TODO verify with upstream if not BSD-3 License: BSD-2-Clause Group: Productivity/Graphics/CAD Url: http://www.pdal.io/ -Source0: http://download.osgeo.org/pdal/%{name}-%{version}-src.tar.bz2 -Source1: http://download.osgeo.org/pdal/%{name}-%{version}-src.tar.bz2.md5 -# Source2: https://www.pdal.io/PDAL.pdf +Source0: http://download.osgeo.org/pdal/%{name}-%{version}-src.tar.gz +Source1: http://download.osgeo.org/pdal/%{name}-%{version}-src.tar.gz.md5 +# Source2: https://www.pdal.io/PDAL.pdf +#Upstream issue#1789 fix for jsoncpp signature +Patch0: https://github.com/PDAL/PDAL/commit/f717a4c.patch # Override the problem of libpsl5 in tumbleweed %if 0%{?suse_version} >= 1330 BuildRequires: libpsl5 @@ -68,6 +70,7 @@ BuildRequires: libgeos-devel BuildRequires: geotiff-devel BuildRequires: libght-devel BuildRequires: jsoncpp-devel +# We need 3.1.1+ for 1.6 BuildRequires: laszip-devel BuildRequires: liblas-devel BuildRequires: libproj-devel @@ -76,16 +79,15 @@ BuildRequires: libtiff-devel BuildRequires: libxml2-devel BuildRequires: netcdf-devel BuildRequires: pkg-config -BuildRequires: postgresql-devel >= 9.1 -BuildRequires: libpq5 >= 9.1 +BuildRequires: pkgconfig(libpq) # We don't have it yet # BuildRequires: pointcloud-devel -BuildRequires: python-Cython -BuildRequires: python-devel -BuildRequires: python-numpy-devel -BuildRequires: python-setuptools -# BuildRequires: python3-devel -# BuildRequires: python3-numpy-devel +# Python extension will be build separately. +BuildRequires: python3-Cython +BuildRequires: python3 +BuildRequires: python3-devel +BuildRequires: python3-numpy-devel +BuildRequires: python3-setuptools BuildRequires: sqlite3-devel BuildRequires: zlib-devel # Needed for documentation but we don't build it. @@ -183,6 +185,9 @@ PDAL algorithms. %prep %setup -q -n %{name}-%{version}-src +%patch0 -p1 +# Fix all wrong shebang and move to python3 only +find . -type f -iname "*.py" -exec sed 's,^#!/usr/bin/env python,#/usr/bin/python3,' {} \; #Cleanup spurious perms in documentation find ./doc/ -type f -exec chmod -v 0644 {} \; @@ -206,6 +211,9 @@ find ./doc/ -type f -iname "*.ai" -delete -DGEOTIFF_INCLUDE_DIR=%{_includedir}/libgeotiff \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_PLUGIN_PYTHON=ON \ + -DPYTHON_EXECUTABLE=%{_bindir}/python%{py3_ver} \ + -DPYTHON_INCLUDE_DIR=%{_includedir}/python%{py3_ver}m \ + -DNUMPY_INCLUDE_DIR=%{_libdir}/python%{py3_ver}/site-packages/numpy \ -DBUILD_PLUGIN_HEXBIN=OFF \ -DBUILD_PLUGIN_ICEBRIDGE=OFF \ -DBUILD_PLUGIN_NITF=OFF \ @@ -217,12 +225,9 @@ find ./doc/ -type f -iname "*.ai" -delete .. make VERBOSE=1 %{?_smp_mflags} - # Make documentation once fixed upstream # make doxygen html man pdf -# Python part should be build from pypi in own .spec - %install pushd build make DESTDIR=%{buildroot} install %{?_smp_mflags} @@ -250,6 +255,11 @@ find %{buildroot} -type f -name "*.la" -o -name "*.a" -delete -print %files %defattr(-,root,root,-) +%if 0%{?leap_version} >= 420200 || 0%{?suse_version} > 1320 +%license LICENSE.txt +%else +%doc LICENSE.txt +%endif %{_bindir}/pdal %dir %{_datadir}/bash-completion %dir %{_datadir}/bash-completion/completions @@ -259,10 +269,8 @@ find %{buildroot} -type f -name "*.la" -o -name "*.a" -delete -print %defattr(-,root,root,-) %doc AUTHORS.txt LICENSE.txt README.md ChangeLog %{_libdir}/libpdal_base.so.%{sofull_version} -%{_libdir}/libpdal_plang.so.%{sofull_version} -# Plugins exist with their -%{_libdir}/libpdal_plugin_filter_predicate.so.%{sofull_version} -%{_libdir}/libpdal_plugin_filter_programmable.so.%{sofull_version} +# Plugins +%{_libdir}/libpdal_plugin_filter_python.so.%{sofull_version} %{_libdir}/libpdal_plugin_reader_sqlite.so.%{sofull_version} %{_libdir}/libpdal_plugin_writer_sqlite.so.%{sofull_version} %{_libdir}/libpdal_plugin_reader_pgpointcloud.so.%{sofull_version} @@ -276,12 +284,8 @@ find %{buildroot} -type f -name "*.la" -o -name "*.a" -delete -print %{_includedir}/pdal %{_libdir}/libpdal_base.so.%{sovers} %{_libdir}/libpdal_base.so -%{_libdir}/libpdal_plang.so.%{sovers} -%{_libdir}/libpdal_plang.so -%{_libdir}/libpdal_plugin_filter_predicate.so -%{_libdir}/libpdal_plugin_filter_predicate.so.%{sovers} -%{_libdir}/libpdal_plugin_filter_programmable.so -%{_libdir}/libpdal_plugin_filter_programmable.so.%{sovers} +%{_libdir}/libpdal_plugin_filter_python.so +%{_libdir}/libpdal_plugin_filter_python.so.%{sovers} %{_libdir}/libpdal_plugin_reader_sqlite.so %{_libdir}/libpdal_plugin_reader_sqlite.so.%{sovers} %{_libdir}/libpdal_plugin_writer_sqlite.so diff --git a/f717a4c.patch b/f717a4c.patch new file mode 100644 index 0000000..ab4f1c5 --- /dev/null +++ b/f717a4c.patch @@ -0,0 +1,57 @@ +From f717a4ceabf2c23fcb03838945865cd54a4698c7 Mon Sep 17 00:00:00 2001 +From: Howard Butler +Date: Thu, 28 Dec 2017 09:05:02 -0600 +Subject: [PATCH] jsoncpp changed the return signature of removeMember and we + need to get the same behavior in two steps now (#1759) + +--- + dimbuilder/DimBuilder.cpp | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +diff --git a/dimbuilder/DimBuilder.cpp b/dimbuilder/DimBuilder.cpp +index dd2f4a4c7..96b978a67 100644 +--- a/dimbuilder/DimBuilder.cpp ++++ b/dimbuilder/DimBuilder.cpp +@@ -174,9 +174,11 @@ bool DimBuilder::execute() + void DimBuilder::extractDim(Json::Value& dim) + { + DimSpec d; ++ Json::Value empty; + + // Get dimension name. +- Json::Value name = dim.removeMember("name"); ++ Json::Value name = dim.get("name", empty); ++ dim.removeMember("name"); + if (name.isNull()) + throw dimbuilder_error("Dimension missing name."); + if (!name.isString()) +@@ -185,7 +187,8 @@ void DimBuilder::extractDim(Json::Value& dim) + validateDimension(d.m_name); + + // Get dimension description. +- Json::Value description = dim.removeMember("description"); ++ Json::Value description = dim.get("description", empty); ++ dim.removeMember("description"); + if (description.isNull()) + { + std::ostringstream oss; +@@ -204,7 +207,8 @@ void DimBuilder::extractDim(Json::Value& dim) + d.m_description = description.asString(); + + // Get dimension type +- Json::Value type = dim.removeMember("type"); ++ Json::Value type = dim.get("type", empty); ++ dim.removeMember("type"); + if (type.isNull()) + { + std::ostringstream oss; +@@ -222,7 +226,8 @@ void DimBuilder::extractDim(Json::Value& dim) + throw dimbuilder_error(oss.str()); + } + +- Json::Value altNames = dim.removeMember("alt_names"); ++ Json::Value altNames = dim.get("alt_names", empty); ++ dim.removeMember("alt_names"); + if (!altNames.isNull()) + { + if (!altNames.isString())