The package rpms/cloudcompare.git has added or updated architecture specific content in
its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/cloudcompare.git/commit/?id=a9415...
https://src.fedoraproject.org/cgit/rpms/cloudcompare.git/commit/?id=5d003....
Change:
+ExcludeArch: %{ix86}
+%ifarch %ix86 x86_64
Thanks.
Full change:
============
commit a9415eacdd8691e7522209a27a0c4fdfcace776b
Author: Miro Hrončok <miro(a)hroncok.cz>
Date: Wed Mar 30 20:43:04 2022 +0200
Exclude ix86 on F37+
https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
diff --git a/cloudcompare.spec b/cloudcompare.spec
index 07246e6..052f96b 100644
--- a/cloudcompare.spec
+++ b/cloudcompare.spec
@@ -33,6 +33,11 @@ License: GPLv2+
URL:
http://www.cloudcompare.org/
+#
https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
+%if 0%{?fedora} >= 37 || 0%{?rhel} >= 10
+ExcludeArch: %{ix86}
+%endif
+
Source0:
https://github.com/%{cname}/%{cname}/archive/v%{version}/%{cname}-%{versi...
# git submodules
commit 5d00397cc3dea9d541073b2ee83dabcacac54cd0
Author: Charalampos Stratakis <cstratak(a)redhat.com>
Date: Tue Mar 29 04:21:56 2022 +0200
Update to 2.11.3
Fixes: rhbz#2045263
diff --git a/.gitignore b/.gitignore
index 9724f18..f61dcdd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,6 @@
CloudCompare-*.tar.gz
+CloudCompare-*/
PoissonRecon-*.tar.gz
normals_Hough-*.tar.gz
+libE57Format-*.tar.gz
cloudcompare-*.rpm
diff --git a/cloudcompare-big-endian.patch b/cloudcompare-big-endian.patch
deleted file mode 100644
index 460d823..0000000
--- a/cloudcompare-big-endian.patch
+++ /dev/null
@@ -1,415 +0,0 @@
---- CloudCompare-2.9.1/libs/qCC_io/ShpFilter.cpp 2017-11-03 12:30:42.000000000 +0100
-+++ ./ShpFilter.cpp 2018-02-23 14:19:46.837624000 +0100
-@@ -72,6 +72,34 @@
- SHP_MULTI_PATCH = 31
- };
-
-+//DGM: by default qToLittleEndian and qFromLittleEndian only works for integer types!
-+double swapD(double in)
-+{
-+ //! Change the endianness (see
https://stackoverflow.com/questions/41012414/convert-double-value-from-li...)
-+ std::array<char, sizeof(double)> p;
-+ memcpy(&p[0], &in, sizeof(double));
-+ std::reverse(p.begin(), p.end());
-+ memcpy(&in, &p[0], sizeof(double));
-+ return in;
-+}
-+
-+double qFromLittleEndianD(double in)
-+{
-+#if Q_BYTE_ORDER == Q_BIG_ENDIAN
-+ return swapD(in);
-+#endif
-+ return in;
-+}
-+
-+double qToLittleEndianD(double in)
-+{
-+#if Q_BYTE_ORDER == Q_BIG_ENDIAN
-+ return swapD(in);
-+#endif
-+ return in;
-+}
-+
-+
- //! Shape File Save dialog
- class SaveSHPFileDialog : public QDialog, public Ui::SaveSHPFileDlg
- {
-@@ -271,10 +299,10 @@
- {
- //The Bounding Box for the PolyLine stored in the order Xmin, Ymin, Xmax, Ymax
- //DGM: ignored
-- //double xMin =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header ));
-- //double xMax =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header+ 8));
-- //double yMin =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header+16));
-- //double yMax =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header+24));
-+ //double xMin = qFromLittleEndianD(*reinterpret_cast<double*>(header ));
-+ //double xMax = qFromLittleEndianD(*reinterpret_cast<double*>(header+ 8));
-+ //double yMin = qFromLittleEndianD(*reinterpret_cast<double*>(header+16));
-+ //double yMax = qFromLittleEndianD(*reinterpret_cast<double*>(header+24));
- }
-
- //Byte 32: NumParts (The number of parts in the PolyLine)
-@@ -321,8 +349,8 @@
- //check for errors
- if (file.error() != QFile::NoError)
- return CC_FERR_READING;
-- double x =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header));
-- double y = qFromLittleEndian<double>(*reinterpret_cast<double*>(header +
8));
-+ double x = qFromLittleEndianD(*reinterpret_cast<double*>(header));
-+ double y = qFromLittleEndianD(*reinterpret_cast<double*>(header + 8));
- points[i].x = static_cast<PointCoordinateType>(x + PShift.x);
- points[i].y = static_cast<PointCoordinateType>(y + PShift.y);
- points[i].z = 0;
-@@ -337,8 +365,8 @@
- {
- file.read(header, 16);
- //DGM: ignored
-- //double zMin =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header ));
-- //double zMax =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header+8));
-+ //double zMin = qFromLittleEndianD(*reinterpret_cast<double*>(header ));
-+ //double zMax = qFromLittleEndianD(*reinterpret_cast<double*>(header+8));
- }
-
- //Z coordinates (an array of length NumPoints)
-@@ -349,7 +377,7 @@
- //check for errors
- if (file.error() != QFile::NoError)
- return CC_FERR_READING;
-- double z =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header));
-+ double z = qFromLittleEndianD(*reinterpret_cast<double*>(header));
- points[i].z = static_cast<PointCoordinateType>(z + PShift.z);
- }
- }
-@@ -365,8 +393,8 @@
- //check for errors
- if (file.error() != QFile::NoError)
- return CC_FERR_READING;
-- double mMin =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header));
-- double mMax = qFromLittleEndian<double>(*reinterpret_cast<double*>(header
+ 8));
-+ double mMin = qFromLittleEndianD(*reinterpret_cast<double*>(header));
-+ double mMax = qFromLittleEndianD(*reinterpret_cast<double*>(header + 8));
-
- if (mMin != ESRI_NO_DATA && mMax != ESRI_NO_DATA)
- {
-@@ -391,7 +419,7 @@
- //check for errors
- if (file.error() != QFile::NoError)
- return CC_FERR_READING;
-- double m =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header));
-+ double m = qFromLittleEndianD(*reinterpret_cast<double*>(header));
- scalarValues[i] = (m == ESRI_NO_DATA ? NAN_VALUE :
static_cast<ScalarType>(m));
- }
- }
-@@ -509,10 +537,10 @@
-
- //Byte 4: Box
- {
-- double xMin = qToLittleEndian<double>(bbMing.u[X]);
-- double xMax = qToLittleEndian<double>(bbMaxg.u[X]);
-- double yMin = qToLittleEndian<double>(bbMing.u[Y]);
-- double yMax = qToLittleEndian<double>(bbMaxg.u[Y]);
-+ double xMin = qToLittleEndianD(bbMing.u[X]);
-+ double xMax = qToLittleEndianD(bbMaxg.u[X]);
-+ double yMin = qToLittleEndianD(bbMing.u[Y]);
-+ double yMax = qToLittleEndianD(bbMaxg.u[Y]);
- //The Bounding Box for the PolyLine stored in the order Xmin, Ymin, Xmax, Ymax
- /*Byte 4*/file.write((const char*)&xMin, 8);
- /*Byte 12*/file.write((const char*)&yMin, 8);
-@@ -595,8 +623,8 @@
- const CCVector3* P = vertices->getPoint(ii % realNumPoints); //warning: handle
loop if polyline is closed
- CCVector3d Pg = poly->toGlobal3d(*P);
-
-- double x = qToLittleEndian<double>(Pg.u[X]);
-- double y = qToLittleEndian<double>(Pg.u[Y]);
-+ double x = qToLittleEndianD(Pg.u[X]);
-+ double y = qToLittleEndianD(Pg.u[Y]);
- /*Byte 0*/file.write((const char*)&x, 8);
- /*Byte 8*/file.write((const char*)&y, 8);
- bytesWritten += 16;
-@@ -608,8 +636,8 @@
- {
- //Z boundaries
- {
-- double zMin = qToLittleEndian<double>(bbMing.u[Z]);
-- double zMax = qToLittleEndian<double>(bbMaxg.u[Z]);
-+ double zMin = qToLittleEndianD(bbMing.u[Z]);
-+ double zMax = qToLittleEndianD(bbMaxg.u[Z]);
- file.write((const char*)&zMin, 8);
- file.write((const char*)&zMax, 8);
- bytesWritten += 16;
-@@ -622,7 +650,7 @@
- int32_t ii = (inverseOrder ? numPoints - 1 - i : i);
- const CCVector3* P = vertices->getPoint(ii % realNumPoints); //warning: handle
loop if polyline is closed
- CCVector3d Pg = poly->toGlobal3d(*P);
-- double z = qToLittleEndian<double>(Pg.u[Z]);
-+ double z = qToLittleEndianD(Pg.u[Z]);
- file.write((const char*)&z, 8);
- bytesWritten += 8;
- }
-@@ -651,8 +679,8 @@
- }
- }
- }
-- mMin = qToLittleEndian<double>(mMin);
-- mMax = qToLittleEndian<double>(mMax);
-+ mMin = qToLittleEndianD(mMin);
-+ mMax = qToLittleEndianD(mMax);
- file.write((const char*)&mMin, 8);
- file.write((const char*)&mMax, 8);
- bytesWritten += 16;
-@@ -660,13 +688,13 @@
-
- //M values (for each part - just one here)
- {
-- double scalar = qToLittleEndian<double>(ESRI_NO_DATA);
-+ double scalar = qToLittleEndianD(ESRI_NO_DATA);
- for (int32_t i = 0; i < numPoints; ++i)
- {
- if (hasSF)
- {
- scalar = static_cast<double>(vertices->getPointScalarValue(i %
realNumPoints)); //warning: handle loop if polyline is closed
-- scalar = qToLittleEndian<double>(scalar);
-+ scalar = qToLittleEndianD(scalar);
- }
- file.write((const char*)&scalar, 8);
- bytesWritten += 8;
-@@ -686,10 +714,10 @@
- {
- //The Bounding Box for the Cloud stored in the order Xmin, Ymin, Xmax, Ymax
- //DGM: ignored
-- //double xMin =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header ));
-- //double xMax =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header+ 8));
-- //double yMin =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header+16));
-- //double yMax =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header+24));
-+ //double xMin = qFromLittleEndianD(*reinterpret_cast<double*>(header ));
-+ //double xMax = qFromLittleEndianD(*reinterpret_cast<double*>(header+ 8));
-+ //double yMin = qFromLittleEndianD(*reinterpret_cast<double*>(header+16));
-+ //double yMax = qFromLittleEndianD(*reinterpret_cast<double*>(header+24));
- }
-
- //Byte 32: NumPoints (The total number of points)
-@@ -708,8 +736,8 @@
- for (int32_t i = 0; i < numPoints; ++i)
- {
- file.read(header, 16);
-- double x =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header));
-- double y = qFromLittleEndian<double>(*reinterpret_cast<double*>(header +
8));
-+ double x = qFromLittleEndianD(*reinterpret_cast<double*>(header));
-+ double y = qFromLittleEndianD(*reinterpret_cast<double*>(header + 8));
- CCVector3 P(static_cast<PointCoordinateType>(x + PShift.x),
- static_cast<PointCoordinateType>(y + PShift.y),
- 0);
-@@ -724,8 +752,8 @@
- {
- file.read(header, 16);
- //DGM: ignored
-- //double zMin =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header ));
-- //double zMax =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header+8));
-+ //double zMin = qFromLittleEndianD(*reinterpret_cast<double*>(header ));
-+ //double zMax = qFromLittleEndianD(*reinterpret_cast<double*>(header+8));
- }
-
- //Z coordinates (an array of length NumPoints)
-@@ -733,7 +761,7 @@
- for (int32_t i = 0; i < numPoints; ++i)
- {
- file.read(header, 8);
-- double z =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header));
-+ double z = qFromLittleEndianD(*reinterpret_cast<double*>(header));
- const CCVector3* P = cloud->getPoint(i);
- const_cast<CCVector3*>(P)->z = static_cast<PointCoordinateType>(z +
PShift.z);
- }
-@@ -749,8 +777,8 @@
- ccScalarField* sf = 0;
- {
- file.read(header, 16);
-- double mMin =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header));
-- double mMax = qFromLittleEndian<double>(*reinterpret_cast<double*>(header
+ 8));
-+ double mMin = qFromLittleEndianD(*reinterpret_cast<double*>(header));
-+ double mMax = qFromLittleEndianD(*reinterpret_cast<double*>(header + 8));
-
- if (mMin != ESRI_NO_DATA && mMax != ESRI_NO_DATA)
- {
-@@ -770,7 +798,7 @@
- for (int32_t i = 0; i < numPoints; ++i)
- {
- file.read(header, 8);
-- double m =
qFromLittleEndian<double>(*reinterpret_cast<double*>(header));
-+ double m = qFromLittleEndianD(*reinterpret_cast<double*>(header));
- ScalarType s = m == ESRI_NO_DATA ? NAN_VALUE : static_cast<ScalarType>(m);
- sf->addElement(s);
- }
-@@ -809,10 +837,10 @@
-
- //Byte 4: Box
- {
-- double xMin = qToLittleEndian<double>(bbMing.x);
-- double xMax = qToLittleEndian<double>(bbMaxg.x);
-- double yMin = qToLittleEndian<double>(bbMing.y);
-- double yMax = qToLittleEndian<double>(bbMaxg.y);
-+ double xMin = qToLittleEndianD(bbMing.x);
-+ double xMax = qToLittleEndianD(bbMaxg.x);
-+ double yMin = qToLittleEndianD(bbMing.y);
-+ double yMax = qToLittleEndianD(bbMaxg.y);
- //The Bounding Box for the Cloud stored in the order Xmin, Ymin, Xmax, Ymax
- /*Byte 4*/file.write((const char*)&xMin, 8);
- /*Byte 12*/file.write((const char*)&yMin, 8);
-@@ -836,8 +864,8 @@
- const CCVector3* P = cloud->getPoint(i);
- CCVector3d Pg = cloud->toGlobal3d(*P);
-
-- double x = qToLittleEndian<double>(Pg.x);
-- double y = qToLittleEndian<double>(Pg.y);
-+ double x = qToLittleEndianD(Pg.x);
-+ double y = qToLittleEndianD(Pg.y);
- /*Byte 0*/file.write((const char*)&x, 8);
- /*Byte 8*/file.write((const char*)&y, 8);
- bytesWritten += 16;
-@@ -846,8 +874,8 @@
-
- //Z boundaries
- {
-- double zMin = qToLittleEndian<double>(bbMing.z);
-- double zMax = qToLittleEndian<double>(bbMaxg.z);
-+ double zMin = qToLittleEndianD(bbMing.z);
-+ double zMax = qToLittleEndianD(bbMaxg.z);
- file.write((const char*)&zMin, 8);
- file.write((const char*)&zMax, 8);
- bytesWritten += 16;
-@@ -859,7 +887,7 @@
- {
- const CCVector3* P = cloud->getPoint(i);
- CCVector3d Pg = cloud->toGlobal3d(*P);
-- double z = qToLittleEndian<double>(Pg.z);
-+ double z = qToLittleEndianD(Pg.z);
- file.write((const char*)&z, 8);
- bytesWritten += 8;
- }
-@@ -888,8 +916,8 @@
- }
- }
- }
-- mMin = qToLittleEndian<double>(mMin);
-- mMax = qToLittleEndian<double>(mMax);
-+ mMin = qToLittleEndianD(mMin);
-+ mMax = qToLittleEndianD(mMax);
- file.write((const char*)&mMin, 8);
- file.write((const char*)&mMax, 8);
- bytesWritten += 16;
-@@ -897,13 +925,13 @@
-
- //M values
- {
-- double scalar = qToLittleEndian<double>(ESRI_NO_DATA);
-+ double scalar = qToLittleEndianD(ESRI_NO_DATA);
- for (int32_t i = 0; i < numPoints; ++i)
- {
- if (hasSF)
- {
- scalar = static_cast<double>(cloud->getPointScalarValue(i));
-- scalar = qToLittleEndian<double>(scalar);
-+ scalar = qToLittleEndianD(scalar);
- }
- file.write((const char*)&scalar, 8);
- bytesWritten += 8;
-@@ -918,8 +946,8 @@
- char buffer[16];
- file.read(buffer, 16);
-
-- double x = qFromLittleEndian<double>(*reinterpret_cast<double*>(buffer));
-- double y = qFromLittleEndian<double>(*reinterpret_cast<double*>(buffer +
8));
-+ double x = qFromLittleEndianD(*reinterpret_cast<double*>(buffer));
-+ double y = qFromLittleEndianD(*reinterpret_cast<double*>(buffer + 8));
- CCVector3 P(static_cast<PointCoordinateType>(x + PShift.x),
- static_cast<PointCoordinateType>(y + PShift.y),
- 0);
-@@ -930,7 +958,7 @@
- //Z coordinate
- {
- file.read(buffer, 8);
-- double z =
qFromLittleEndian<double>(*reinterpret_cast<double*>(buffer));
-+ double z = qFromLittleEndianD(*reinterpret_cast<double*>(buffer));
- P.z = static_cast<PointCoordinateType>(z + PShift.z);
- }
- }
-@@ -957,7 +985,7 @@
- //Measure
- {
- file.read(buffer, 8);
-- double m =
qFromLittleEndian<double>(*reinterpret_cast<double*>(buffer));
-+ double m = qFromLittleEndianD(*reinterpret_cast<double*>(buffer));
- if (m != ESRI_NO_DATA)
- {
- s = static_cast<ScalarType>(m);
-@@ -1144,10 +1172,10 @@
- _header += 4;
-
- //X and Y bounaries
-- double xMin = qToLittleEndian<double>(bbMinCorner.u[X]);
-- double xMax = qToLittleEndian<double>(bbMaxCorner.u[X]);
-- double yMin = qToLittleEndian<double>(bbMinCorner.u[Y]);
-- double yMax = qToLittleEndian<double>(bbMaxCorner.u[Y]);
-+ double xMin = qToLittleEndianD(bbMinCorner.u[X]);
-+ double xMax = qToLittleEndianD(bbMaxCorner.u[X]);
-+ double yMin = qToLittleEndianD(bbMinCorner.u[Y]);
-+ double yMax = qToLittleEndianD(bbMaxCorner.u[Y]);
- //Byte 36: box X min
- memcpy(_header, (const char*)&xMin, 8);
- _header += 8;
-@@ -1163,8 +1191,8 @@
-
- //Z bounaries
- //Unused, with value 0.0, if not Measured or Z type
-- double zMin = outputShapeType < SHP_POINT_Z ? 0.0 :
qToLittleEndian<double>(bbMinCorner.u[Z]);
-- double zMax = outputShapeType < SHP_POINT_Z ? 0.0 :
qToLittleEndian<double>(bbMaxCorner.u[Z]);
-+ double zMin = outputShapeType < SHP_POINT_Z ? 0.0 :
qToLittleEndianD(bbMinCorner.u[Z]);
-+ double zMax = outputShapeType < SHP_POINT_Z ? 0.0 :
qToLittleEndianD(bbMaxCorner.u[Z]);
- //Byte 68: box Z min
- memcpy(_header, (const char*)&zMin, 8);
- _header += 8;
-@@ -1447,25 +1475,25 @@
-
- //X and Y bounaries
- //Byte 36: box X min
-- double xMin = qFromLittleEndian<double>(*reinterpret_cast<const
double*>(_header));
-+ double xMin = qFromLittleEndianD(*reinterpret_cast<const double*>(_header));
- _header += 8;
- //Byte 44: box Y min
-- double yMin = qFromLittleEndian<double>(*reinterpret_cast<const
double*>(_header));
-+ double yMin = qFromLittleEndianD(*reinterpret_cast<const double*>(_header));
- _header += 8;
- //Byte 52: box X max
-- //double xMax = qFromLittleEndian<double>(*reinterpret_cast<const
double*>(_header));
-+ //double xMax = qFromLittleEndianD(*reinterpret_cast<const double*>(_header));
- _header += 8;
- //Byte 60: box Y max
-- //double yMax = qFromLittleEndian<double>(*reinterpret_cast<const
double*>(_header));
-+ //double yMax = qFromLittleEndianD(*reinterpret_cast<const double*>(_header));
- _header += 8;
-
- //Z bounaries
- //Unused, with value 0.0, if not Measured or Z type
- //Byte 68: box Z min
-- double zMin = qFromLittleEndian<double>(*reinterpret_cast<const
double*>(_header));
-+ double zMin = qFromLittleEndianD(*reinterpret_cast<const double*>(_header));
- _header += 8;
- //Byte 76: box Z max
-- //double zMax = qFromLittleEndian<double>(*reinterpret_cast<const
double*>(_header));
-+ //double zMax = qFromLittleEndianD(*reinterpret_cast<const double*>(_header));
- _header += 8;
-
- if (std::isnan(zMin))
-@@ -1482,10 +1510,10 @@
-
- //M bounaries (M = measures)
- //Byte 84: M min
-- //double mMin = qFromLittleEndian<double>(*reinterpret_cast<const
double*>(_header));
-+ //double mMin = qFromLittleEndianD(*reinterpret_cast<const double*>(_header));
- _header += 8;
- //Byte 92: M max
-- //double mMax = qFromLittleEndian<double>(*reinterpret_cast<const
double*>(_header));
-+ //double mMax = qFromLittleEndianD(*reinterpret_cast<const double*>(_header));
- _header += 8;
- }
- assert(fileLength >= 100);
diff --git a/cloudcompare-pcl.patch b/cloudcompare-pcl.patch
deleted file mode 100644
index 145e9ce..0000000
--- a/cloudcompare-pcl.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -rupN CloudCompare-2.9.1/plugins/qPCL/PclUtils/filters/MLSSmoothingUpsampling.cpp
CloudCompare-2.9.1-new/plugins/qPCL/PclUtils/filters/MLSSmoothingUpsampling.cpp
----
CloudCompare-2.9.1/plugins/qPCL/PclUtils/filters/MLSSmoothingUpsampling.cpp 2017-11-03
12:30:42.000000000 +0100
-+++
CloudCompare-2.9.1-new/plugins/qPCL/PclUtils/filters/MLSSmoothingUpsampling.cpp 2021-05-08
14:59:43.450040253 +0200
-@@ -25,6 +25,7 @@
-
- //PCL
- #include <pcl/surface/mls.h>
-+#include <pcl/search/kdtree.h>
-
- //qCC_plugins
- #include <ccMainAppInterface.h>
-diff -rupN CloudCompare-2.9.1/plugins/qPCL/PclUtils/utils/my_point_types.h
CloudCompare-2.9.1-new/plugins/qPCL/PclUtils/utils/my_point_types.h
---- CloudCompare-2.9.1/plugins/qPCL/PclUtils/utils/my_point_types.h 2017-11-03
12:30:42.000000000 +0100
-+++ CloudCompare-2.9.1-new/plugins/qPCL/PclUtils/utils/my_point_types.h 2021-05-08
14:58:57.696039230 +0200
-@@ -19,7 +19,7 @@
- #define Q_PCL_PLUGIN_MY_POINT_TYPES_H
-
- //PCL
--#include <pcl/ros/register_point_struct.h>
-+#include <pcl/register_point_struct.h>
- #include <pcl/point_types.h>
-
- //! PCL custom point type used for reading RGB data
diff --git a/cloudcompare-pcl1.11.patch b/cloudcompare-pcl1.11.patch
index e0457ee..4726c49 100644
--- a/cloudcompare-pcl1.11.patch
+++ b/cloudcompare-pcl1.11.patch
@@ -1,7 +1,7 @@
-diff --git a/CMakeSetCompilerOptions.cmake b/CMakeSetCompilerOptions.cmake
+diff --git a/cmake/CMakeSetCompilerOptions.cmake b/cmake/CMakeSetCompilerOptions.cmake
index b73e149..11c9f56 100644
---- a/CMakeSetCompilerOptions.cmake
-+++ b/CMakeSetCompilerOptions.cmake
+--- a/cmake/CMakeSetCompilerOptions.cmake
++++ b/cmake/CMakeSetCompilerOptions.cmake
@@ -5,13 +5,13 @@ if( UNIX OR MINGW )
#
https://cmake.org/cmake/help/v3.1/prop_tgt/CXX_STANDARD.html
include(CheckCXXCompilerFlag)
@@ -20,10 +20,10 @@ index b73e149..11c9f56 100644
# MinGW doesn't use fPIC
if( UNIX )
-diff --git a/plugins/qPCL/PclUtils/utils/my_point_types.h
b/plugins/qPCL/PclUtils/utils/my_point_types.h
-index 0fd7297..ee2bdb9 100644
---- a/plugins/qPCL/PclUtils/utils/my_point_types.h
-+++ b/plugins/qPCL/PclUtils/utils/my_point_types.h
+diff --git a/plugins/core/Standard/qPCL/PclUtils/utils/my_point_types.h
b/plugins/core/Standard/qPCL/PclUtils/utils/my_point_types.h
+index 3128e83..7f5cd7f 100644
+--- a/plugins/core/Standard/qPCL/PclUtils/utils/my_point_types.h
++++ b/plugins/core/Standard/qPCL/PclUtils/utils/my_point_types.h
@@ -21,6 +21,7 @@
//PCL
#include <pcl/register_point_struct.h>
diff --git a/cloudcompare-pcl1.12.patch b/cloudcompare-pcl1.12.patch
index b2c22a6..2d23978 100644
--- a/cloudcompare-pcl1.12.patch
+++ b/cloudcompare-pcl1.12.patch
@@ -1,16 +1,17 @@
-diff --git a/plugins/qPCL/PclUtils/filters/MLSSmoothingUpsampling.cpp
b/plugins/qPCL/PclUtils/filters/MLSSmoothingUpsampling.cpp
-index f664030..5668554 100644
---- a/plugins/qPCL/PclUtils/filters/MLSSmoothingUpsampling.cpp
-+++ b/plugins/qPCL/PclUtils/filters/MLSSmoothingUpsampling.cpp
-@@ -24,6 +24,7 @@
- #include "../utils/sm2cc.h"
+diff --git a/plugins/core/Standard/qPCL/PclUtils/filters/MLSSmoothingUpsampling.cpp
b/plugins/core/Standard/qPCL/PclUtils/filters/MLSSmoothingUpsampling.cpp
+index 59c803c..48a611b 100644
+--- a/plugins/core/Standard/qPCL/PclUtils/filters/MLSSmoothingUpsampling.cpp
++++ b/plugins/core/Standard/qPCL/PclUtils/filters/MLSSmoothingUpsampling.cpp
+@@ -25,6 +25,8 @@
//PCL
-+#include <pcl/common/io.h>
#include <pcl/surface/mls.h>
- #include <pcl/search/kdtree.h>
++#include <pcl/common/io.h> // for getFieldIndex
++#include <pcl/search/kdtree.h> // for KdTree
-@@ -54,7 +55,7 @@ int smooth_mls(const typename pcl::PointCloud<PointInT>::Ptr
&incloud,
+ //qCC_plugins
+ #include <ccMainAppInterface.h>
+@@ -53,7 +55,7 @@ int smooth_mls(const typename pcl::PointCloud<PointInT>::Ptr
&incloud,
#ifdef _OPENMP
//create the smoothing object
@@ -19,18 +20,10 @@ index f664030..5668554 100644
int n_threads = omp_get_max_threads();
smoother.setNumberOfThreads(n_threads);
#else
-@@ -64,7 +65,6 @@ int smooth_mls(const typename pcl::PointCloud<PointInT>::Ptr
&incloud,
- smoother.setSearchMethod(tree);
- smoother.setSearchRadius(params.search_radius_);
- smoother.setComputeNormals(params.compute_normals_);
-- smoother.setPolynomialFit(params.polynomial_fit_);
-
- if (params.polynomial_fit_)
- {
-diff --git a/plugins/qPCL/PclUtils/utils/PCLConv.h
b/plugins/qPCL/PclUtils/utils/PCLConv.h
+diff --git a/plugins/core/Standard/qPCL/PclUtils/utils/PCLConv.h
b/plugins/core/Standard/qPCL/PclUtils/utils/PCLConv.h
index 1a480aa..d5706de 100644
---- a/plugins/qPCL/PclUtils/utils/PCLConv.h
-+++ b/plugins/qPCL/PclUtils/utils/PCLConv.h
+--- a/plugins/core/Standard/qPCL/PclUtils/utils/PCLConv.h
++++ b/plugins/core/Standard/qPCL/PclUtils/utils/PCLConv.h
@@ -27,7 +27,7 @@
#else //Version 1.7 or newer
diff --git a/cloudcompare-signed-chars.patch b/cloudcompare-signed-chars.patch
deleted file mode 100644
index ef21e9e..0000000
--- a/cloudcompare-signed-chars.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From 457ee6699bfbe95a387bc53667c6b2ab39917d3b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro(a)hroncok.cz>
-Date: Thu, 22 Feb 2018 17:23:25 +0100
-Subject: [PATCH] Be explicit about signed chars
-
-Chars being signed is apparently an implementation detail, see [1].
-
-This was failing the build on various architectures:
-
- ppc64le aarch64 ppc64 s390x armv7hl
-
-With:
-
- CC/src/ChamferDistanceTransform.cpp:44:1:
- error: narrowing conversion of '-1' from 'int' to 'char'
inside { }
- ...
-
-[1]
https://stackoverflow.com/q/31634962/1839451
----
- CC/src/ChamferDistanceTransform.cpp | 22 +++++++++++-----------
- 1 file changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/CC/src/ChamferDistanceTransform.cpp b/CC/src/ChamferDistanceTransform.cpp
-index 5cba46c6..026b2349 100644
---- a/CC/src/ChamferDistanceTransform.cpp
-+++ b/CC/src/ChamferDistanceTransform.cpp
-@@ -26,7 +26,7 @@
- using namespace CCLib;
-
- //! Forward mask shifts and weights (Chamfer 3-4-5)
--const char ForwardNeighbours345[14*4] = {
-+const signed char ForwardNeighbours345[14*4] = {
- -1,-1,-1, 5,
- 0,-1,-1, 4,
- 1,-1,-1, 5,
-@@ -44,7 +44,7 @@ const char ForwardNeighbours345[14*4] = {
- };
-
- //! Backward mask shifts and weights (Chamfer 3-4-5)
--const char BackwardNeighbours345[14*4] = {
-+const signed char BackwardNeighbours345[14*4] = {
- 0, 0, 0, 0,
- 1, 0, 0, 3,
- -1, 1, 0, 4,
-@@ -62,7 +62,7 @@ const char BackwardNeighbours345[14*4] = {
- };
-
- //! Forward mask shifts and weights (Chamfer 1-1-1)
--const char ForwardNeighbours111[14*4] = {
-+const signed char ForwardNeighbours111[14*4] = {
- -1,-1,-1, 1,
- 0,-1,-1, 1,
- 1,-1,-1, 1,
-@@ -80,7 +80,7 @@ const char ForwardNeighbours111[14*4] = {
- };
-
- //! Backward masks shifts and weights (Chamfer 1-1-1)
--const char BackwardNeighbours111[14*4] = {
-+const signed char BackwardNeighbours111[14*4] = {
- 0, 0, 0, 0,
- 1, 0, 0, 1,
- -1, 1, 0, 1,
-@@ -101,7 +101,7 @@ const char BackwardNeighbours111[14*4] = {
- // unsigned jStart,
- // unsigned kStart,
- // bool forward,
--// const char neighbours[14][4],
-+// const signed char neighbours[14][4],
- // NormalizedProgress* normProgress/*=0*/)
- //{
- // assert(!m_grid.empty());
-@@ -169,8 +169,8 @@ int
ChamferDistanceTransform::propagateDistance(CC_CHAMFER_DISTANCE_TYPE type, G
- return -1;
- }
-
-- const char* fwNeighbours = 0;
-- const char* bwNeighbours = 0;
-+ const signed char* fwNeighbours = 0;
-+ const signed char* bwNeighbours = 0;
- switch (type)
- {
- case CHAMFER_111:
-@@ -216,7 +216,7 @@ int
ChamferDistanceTransform::propagateDistance(CC_CHAMFER_DISTANCE_TYPE type, G
- {
- for (unsigned char v=0; v<14; ++v)
- {
-- const char* fwNeighbour = fwNeighbours + 4*v;
-+ const signed char* fwNeighbour = fwNeighbours + 4*v;
- neighborShift[v] = static_cast<int>(fwNeighbour[0]) +
- static_cast<int>(fwNeighbour[1]) * static_cast<int>(m_rowSize) +
- static_cast<int>(fwNeighbour[2]) * static_cast<int>(m_sliceSize);
-@@ -233,7 +233,7 @@ int
ChamferDistanceTransform::propagateDistance(CC_CHAMFER_DISTANCE_TYPE type, G
-
- for (unsigned char v=1; v<14; ++v)
- {
-- const char* fwNeighbour = fwNeighbours + 4*v;
-+ const signed char* fwNeighbour = fwNeighbours + 4*v;
- GridElement neighborVal = _grid[neighborShift[v]] +
static_cast<GridElement>(fwNeighbour[3]);
- minVal = std::min(minVal, neighborVal);
- }
-@@ -260,7 +260,7 @@ int
ChamferDistanceTransform::propagateDistance(CC_CHAMFER_DISTANCE_TYPE type, G
- {
- for (unsigned char v=0; v<14; ++v)
- {
-- const char* bwNeighbour = bwNeighbours + 4*v;
-+ const signed char* bwNeighbour = bwNeighbours + 4*v;
- neighborShift[v] = static_cast<int>(bwNeighbour[0]) +
- static_cast<int>(bwNeighbour[1]) * static_cast<int>(m_rowSize) +
- static_cast<int>(bwNeighbour[2]) * static_cast<int>(m_sliceSize);
-@@ -279,7 +279,7 @@ int
ChamferDistanceTransform::propagateDistance(CC_CHAMFER_DISTANCE_TYPE type, G
-
- for (unsigned char v=1; v<14; ++v)
- {
-- const char* bwNeighbour = bwNeighbours + 4*v;
-+ const signed char* bwNeighbour = bwNeighbours + 4*v;
- GridElement neighborVal = _grid[neighborShift[v]] +
static_cast<GridElement>(bwNeighbour[3]);
- minVal = std::min(minVal, neighborVal);
- }
diff --git a/cloudcompare.spec b/cloudcompare.spec
index 99c3c1a..07246e6 100644
--- a/cloudcompare.spec
+++ b/cloudcompare.spec
@@ -18,13 +18,14 @@
%global edition Release
%global cname CloudCompare
Name: cloudcompare
-Version: 2.9.1
-Release: 18%{?dist}
+Version: 2.11.3
+Release: 1%{?dist}
Summary: 3D point cloud and mesh processing software
# Main part is GPLv2+
# CCLib is LGPLv2+
-# Plugins from Source1 and Source2 are MIT
+# Plugin from Source1 is MIT
+# Plugin from Source2 is Boost
# dxflib is GPLv2+
# shapelib is (LGPLv2+ or MIT)
# as the result is compiled into one piece, it should be:
@@ -35,32 +36,24 @@ URL:
http://www.cloudcompare.org/
Source0:
https://github.com/%{cname}/%{cname}/archive/v%{version}/%{cname}-%{versi...
# git submodules
-%global pr_commit f42872b45ac35bf85efc662d348bb5d8ac9e5577
+%global pr_commit 134fb831764dd5ebd53616e83992f0060e4b09ce
Source1:
https://github.com/%{cname}/PoissonRecon/archive/%{pr_commit}/PoissonReco...
-%global nh_commit 61ba8056d72eedffadb838d9051cc8975ec7a825
-Source2:
https://github.com/%{cname}/normals_Hough/archive/%{nh_commit}/normals_Ho...
+%global lE57F_commit 14f6a67cf98485189cfd154bc42081d38e480b9d
+Source2:
https://github.com/asmaloney/libE57Format/archive/%{lE57F_commit}/libE57F...
# desktop files
Source3: %{name}.desktop
Source4: ccviewer.desktop
-#
https://github.com/CloudCompare/CloudCompare/pull/648
-Patch0: %{name}-signed-chars.patch
-
-#
https://github.com/CloudCompare/CloudCompare/issues/649
-Patch1: %{name}-big-endian.patch
-
-#
https://github.com/CloudCompare/CloudCompare/pull/661
-Patch2: %{name}-pcl.patch
-
#
https://github.com/CloudCompare/CloudCompare/pull/1310
-Patch3: %{name}-pcl1.11.patch
+Patch: %{name}-pcl1.11.patch
#
https://github.com/CloudCompare/CloudCompare/commit/5bc453a08a
-#
https://github.com/CloudCompare/CloudCompare/commit/cd578da678
+#
https://github.com/CloudCompare/CloudCompare/commit/1b5f2a710e
+#
https://github.com/CloudCompare/CloudCompare/commit/535c501760
#
https://github.com/CloudCompare/CloudCompare/issues/1504
-Patch4: %{name}-pcl1.12.patch
+Patch: %{name}-pcl1.12.patch
BuildRequires: boost-devel
BuildRequires: desktop-file-utils
@@ -69,7 +62,8 @@ BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: laszip-devel
BuildRequires: libgomp
-BuildRequires: liblas-devel
+BuildRequires: libusb1-devel
+BuildRequires: make
BuildRequires: pcl-devel
BuildRequires: pkgconfig(gdal)
BuildRequires: pkgconfig(cunit)
@@ -103,9 +97,8 @@ BuildRequires: pkgconfig(Qt5Xml)
BuildRequires: pkgconfig(Qt5XmlPatterns)
BuildRequires: pkgconfig(xerces-c)
BuildRequires: pkgconfig(zlib)
-BuildRequires: make
-Provides: bundled(dxflib) = 3.3.4
+Provides: bundled(dxflib) = 3.17.0
Provides: %{cname} = %{version}-%{release}
%{?_isa:Provides: %{cname}%{_isa} = %{version}-%{release}}
@@ -147,19 +140,13 @@ This is the documentation.
%prep
%autosetup -n %{cname}-%{version} -p1
-rmdir plugins/qPoissonRecon/PoissonReconLib
+rmdir plugins/core/Standard/qPoissonRecon/PoissonReconLib
tar -xf %{SOURCE1}
-mv PoissonRecon-%{pr_commit} plugins/qPoissonRecon/PoissonReconLib
+mv PoissonRecon-%{pr_commit} plugins/core/Standard/qPoissonRecon/PoissonReconLib
-rmdir plugins/qHoughNormals/normals_Hough
+rmdir plugins/core/IO/qE57IO/extern/libE57Format
tar -xf %{SOURCE2}
-mv normals_Hough-%{nh_commit} plugins/qHoughNormals/normals_Hough
-
-# fix spurious executable permissions
-#
https://github.com/aboulch/normals_Hough/pull/5
-#
https://github.com/CloudCompare/normals_Hough/pull/3
-#
https://github.com/CloudCompare/CloudCompare/pull/650
-find plugins/qHoughNormals '(' -name '*.h' -o -name '*.hpp'
')' -exec chmod -x {} \;
+mv libE57Format-%{lE57F_commit} plugins/core/IO/qE57IO/extern/libE57Format
# On 64bits, change /usr/lib/cloudcompare to /usr/lib64/cloudcompare
sed -i 's|lib/%{name}|%{_lib}/%{name}|g' $(grep -r lib/%{name} -l)
@@ -167,53 +154,52 @@ sed -i 's|lib/%{name}|%{_lib}/%{name}|g' $(grep -r
lib/%{name} -l)
# Remove french TeX docs
rm -rf doc/fr*
-# Remove bundle shapelib
https://github.com/CloudCompare/CloudCompare/issues/497
-rm -rf contrib/shapelib-*
+# Remove bundled shapelib
https://github.com/CloudCompare/CloudCompare/issues/497
+rm -rf contrib/shapelib
sed -i 's/add_subdirectory.*//' contrib/ShapeLibSupport.cmake
-sed -i 's/ SHAPELIB / shp /g' plugins/qFacets/CMakeLists.txt
contrib/ShapeLibSupport.cmake
+sed -i 's/ SHAPELIB / shp /g' plugins/core/Standard/qFacets/CMakeLists.txt
contrib/ShapeLibSupport.cmake
%build
mkdir build
pushd build
-%cmake \
+%cmake .. \
-DCMAKE_BUILD_TYPE=%{edition} \
-DCMAKE_INSTALL_RPATH=%{_libdir}/%{name} \
-DEIGEN_ROOT_DIR=%{_includedir}/eigen3 \
- -DGDAL_LIB_SRC_DIR=%{_includedir} \
- -DINSTALL_QANIMATION_PLUGIN=ON \
- -DINSTALL_QBLUR_PLUGIN=ON \
- -DINSTALL_QBROOM_PLUGIN=ON \
- -DINSTALL_QCSF_PLUGIN=ON \
- -DINSTALL_QDUMMY_PLUGIN=OFF \
- -DINSTALL_QEDL_PLUGIN=ON \
- -DINSTALL_QFACETS_PLUGIN=ON \
- -DINSTALL_QHOUGH_NORMALS_PLUGIN=ON \
- -DINSTALL_QHPR_PLUGIN=ON \
- -DINSTALL_QKINECT_PLUGIN=OFF \
- -DINSTALL_QM3C2_PLUGIN=ON \
- -DINSTALL_QPCL_PLUGIN=ON \
- -DINSTALL_QPCV_PLUGIN=ON \
- -DINSTALL_QPHOTOSCAN_IO_PLUGIN=ON \
- -DINSTALL_QPOISSON_RECON_PLUGIN=ON \
- -DINSTALL_QSRA_PLUGIN=ON \
- -DINSTALL_QSSAO_PLUGIN=ON \
- -DLIBLAS_INCLUDE_DIR=%{_includedir}/liblas \
- -DLIBLAS_RELEASE_LIBRARY_FILE=%{_libdir}/liblas.so.3 \
- -DOPTION_SUPPORT_3DCONNEXION_DEV=OFF \
+ -DGDAL_INCLUDE_DIR=%{_includedir}/gdal \
+ -DDLIB_ROOT=%{_includedir}/dlib \
+ -DPLUGIN_STANDARD_QANIMATION=ON \
+ -DPLUGIN_STANDARD_QBROOM=ON \
+ -DPLUGIN_STANDARD_QCSF=ON \
+ -DPLUGIN_STANDARD_QCOMPASS=ON \
+ -DPLUGIN_STANDARD_QHPR=ON \
+ -DPLUGIN_STANDARD_QHOUGH_NORMALS=ON \
+ -DPLUGIN_STANDARD_QM3C2=ON \
+ -DPLUGIN_STANDARD_QPCL=ON \
+ -DPLUGIN_STANDARD_QPCV=ON \
+ -DPLUGIN_STANDARD_QCSF=ON \
+ -DPLUGIN_STANDARD_QPOISSON_RECON=ON \
+ -DPLUGIN_STANDARD_QSRA=ON \
+ -DPLUGIN_GL_QEDL=ON \
+ -DPLUGIN_GL_QSSAO=ON \
+ -DPLUGIN_IO_QADDITIONAL=ON \
+ -DPLUGIN_IO_QCSV_MATRIX=ON \
+ -DPLUGIN_IO_QCORE=ON \
+ -DPLUGIN_IO_QPHOTOSCAN=ON \
+ -DOPTION_SUPPORT_3DCONNEXION_DEVICES=OFF \
-DOPTION_USE_DXF_LIB=ON \
-DOPTION_USE_GDAL=ON \
- -DOPTION_USE_LIBLAS=ON \
-DOPTION_USE_SHAPE_LIB=ON \
-DSHAPELIB_SOURCE_DIR=%{_includedir} \
+ -DPLUGIN_STANDARD_QFACETS=ON \
%ifarch %ix86 x86_64
- -DINSTALL_QRANSAC_SD_PLUGIN=ON \
+ -DPLUGIN_STANDARD_QRANSAC_SD=ON \
%else
- -DINSTALL_QRANSAC_SD_PLUGIN=OFF \
+ -DPLUGIN_STANDARD_QRANSAC_SD=OFF \
%endif
- ..
-# QRANSAC_SD_PLUGIN on other arches: fatal error: xmmintrin.h: No such file or directory
+# PLUGIN_STANDARD_QRANSAC_SD on other arches: fatal error: xmmintrin.h: No such file or
directory
%make_build VERBOSE=1
@@ -241,16 +227,50 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications
%{SOURCE4}
%files
-%doc README.md CONTRIBUTING.md CHANGELOG.md
-%license license.txt license_headers.txt
+%doc README.md CONTRIBUTING.md
%{_bindir}/%{name}
%{_bindir}/%{cname}
%{_bindir}/ccviewer
%{_bindir}/ccViewer
-%{_libdir}/%{name}/
-%{_datadir}/%{name}/
-%exclude %{_datadir}/%{name}/CHANGELOG.md
-%exclude %{_datadir}/%{name}/license.txt
+
+%dir %{_libdir}/%{name}/
+%{_libdir}/%{name}/lib*.so
+%dir %{_libdir}/%{name}/plugins/
+%{_libdir}/%{name}/plugins/libQADDITIONAL_IO_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQANIMATION_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQBROOM_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQCOMPASS_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQCORE_IO_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQCSF_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQCSV_MATRIX_IO_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQEDL_GL_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQFACETS_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQHOUGH_NORMALS_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQHPR_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQM3C2_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQPCL_IO_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQPCL_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQPCV_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQPHOTOSCAN_IO_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQPOISSON_RECON_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQSRA_PLUGIN.so
+%{_libdir}/%{name}/plugins/libQSSAO_GL_PLUGIN.so
+%ifarch %ix86 x86_64
+%{_libdir}/%{name}/plugins/libQRANSAC_SD_PLUGIN.so
+%endif
+
+%dir %{_datadir}/%{name}/
+%{_datadir}/%{name}/global_shift_list_template.txt
+%{_datadir}/%{name}/shaders/
+%dir %{_datadir}/%{name}/translations/
+%lang(es) %{_datadir}/%{name}/translations/*_es_AR.qm
+%lang(fr) %{_datadir}/%{name}/translations/*_fr.qm
+%lang(ja) %{_datadir}/%{name}/translations/*_ja.qm
+%lang(pt) %{_datadir}/%{name}/translations/*_pt.qm
+%lang(ru) %{_datadir}/%{name}/translations/*_ru.qm
+%doc %{_datadir}/%{name}/CHANGELOG.md
+%license %{_datadir}/%{name}/license.txt
+
%{_datadir}/icons/hicolor/*/apps/*.png
%{_datadir}/applications/*.desktop
@@ -258,6 +278,10 @@ desktop-file-install --dir=%{buildroot}%{_datadir}/applications
%{SOURCE4}
%doc doc
%changelog
+* Tue Mar 29 2022 Charalampos Stratakis <cstratak(a)redhat.com> - 2.11.3-1
+- Update to 2.11.3
+- Fixes: rhbz#2045263
+
* Wed Jan 19 2022 Fedora Release Engineering <releng(a)fedoraproject.org> - 2.9.1-18
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
diff --git a/sources b/sources
index 43950db..0edc759 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (CloudCompare-2.9.1.tar.gz) =
f647197cdb500c3438fffdd8752a9a1016d91d7a535bd8a4fdfdcbab0df11b047b0f054881d0ba1e29db01fbc40f7dfcfb7233c5fc7f409417e43b4297fc6635
-SHA512 (normals_Hough-61ba8056d72eedffadb838d9051cc8975ec7a825.tar.gz) =
2c3b3aa3d1288ee0d3bea8a5ff9da198b518c6e43993eb4a67cb91a13e7e8411e38e00c655c771a76f2c92139ce77ee295f1a1039cbab9565f642821aa5884ec
-SHA512 (PoissonRecon-f42872b45ac35bf85efc662d348bb5d8ac9e5577.tar.gz) =
9e5f23d03f3baef891421809dd4cf7fce5aeb703e21584c8e2fde348a0819102359dac83dcad98b4cafcdb7929e5868cf1c6f9c57087e5712c4142c9ab1781d5
+SHA512 (CloudCompare-2.11.3.tar.gz) =
9e9ef9f3491c6953896538227d6b271158f4a272a9bba3e9697ff66398ce8f075edff2f1672f8c1f00d7bb36aadfc653bacb3e06d6159146fd9074d1850c6dfb
+SHA512 (libE57Format-14f6a67cf98485189cfd154bc42081d38e480b9d.tar.gz) =
70d9adb7609aec66722714329b6f2eb3b335df6cb5ae77bd98e438e7e131994601106eaea13283e05d0eed337003ec8e837b5b44847935cb5e8d694c9034aa40
+SHA512 (PoissonRecon-134fb831764dd5ebd53616e83992f0060e4b09ce.tar.gz) =
1e11d0ccd62e0c9bb8bf8c3b8adf2c776bae517b2d98409eb6fb7ccef59da6ecf4110f834d5b58419cc9fd8f873ddf46fc526f89dc63f71b04160297901909b3