diff --git a/PDAL.changes b/PDAL.changes index fe67eee..617e97f 100644 --- a/PDAL.changes +++ b/PDAL.changes @@ -1,8 +1,40 @@ +------------------------------------------------------------------- +Fri Jan 7 16:29:16 UTC 2022 - Bruno Friedmann + +- Fix the -devel dangling symlink by moving to libPDAL + libpdal_*.so.%{soname} symlinks to libpdal_*.%{sovers} + rpmlint not more complain. + +------------------------------------------------------------------- +Fri Jan 7 10:37:32 UTC 2022 - D. Berge + +- Add `Provides:` so that PDAL-devel can find libPDAL. + +------------------------------------------------------------------- +Wed Dec 29 17:17:47 UTC 2021 - Bruno Friedmann + +- Review licenses of subpart: The code is licensed BSD except for: + + filters/private/csf/* and plugins/i3s/lepcc/* are Apache-2.0 + + vendor/arbiter/*, plugins/nitf/io/nitflib.h and plugins/oci/io/OciWrapper.* are Expat/MIT + + plugins/e57/io/{src,include}/* is BSD-3-Clause + + plugins/e57/libE57Format/{src,include}/* is Boost 1-0 +- Create a patch PDAL_unbundle.patch to sort out eigen3 and boost + + Eigen3 system now used fixing boo#1194109 +- Fixing boo#1194109 ppc64le build by disabling lto until upstream + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102059 is fixed +- Add Provides for + + bundled(arbiter) + + bundled(PoissonRecon) + + bundled(nanoflann) + + bundled(nlohmann) +- Add %check section following what's Fedora is doing + + Add upstream patch for testing 32bits d11e0e20.patch + ------------------------------------------------------------------- Sun Aug 15 12:20:32 UTC 2021 - Bruno Friedmann - Update to 2.3.0 version - complete description https://github.com/PDAL/PDAL/releases/tag/2.3.0 + complete description https://github.com/PDAL/PDAL/releases/tag/2.3.0 ------------------------------------------------------------------- Sat Aug 14 17:16:31 UTC 2021 - Jan Engelhardt @@ -24,7 +56,7 @@ Fri Aug 13 08:29:11 UTC 2021 - Dirk Stoecker Sun Nov 15 08:15:50 UTC 2020 - Bruno Friedmann - Rework BuildRequires as only libpq is really needed - + Indicate -DPOSTGRESQL_INCLUDE_DIR build flag + + Indicate -DPOSTGRESQL_INCLUDE_DIR build flag + Remove postgresql-devel postgresql-server-devel buildrequires - Fix a sed instruction to use -i @@ -48,7 +80,7 @@ Mon Sep 21 13:15:28 UTC 2020 - Dirk Stoecker 2.2.0 ------------------------------------------------------------------- Wed Jun 17 13:49:44 UTC 2020 - Bruno Friedmann -- Add a manual fix for PDALConfig.cmake where the +- Add a manual fix for PDALConfig.cmake where the @PDAL_CONFIG_LIBRARY_DIRS@ is wrongly expanded. ------------------------------------------------------------------- diff --git a/PDAL.spec b/PDAL.spec index 7e9f69c..6ea82ad 100644 --- a/PDAL.spec +++ b/PDAL.spec @@ -1,7 +1,7 @@ # # spec file for package PDAL # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # Copyright (c) 2021 Friedmann Bruno, Ioda-Net Sàrl, Charmoille, Switzerland. # # All modifications and additions to the file contributed by third parties @@ -24,17 +24,28 @@ Name: PDAL Version: 2.3.0 Release: 0 Summary: Point Data Abstraction Library (GDAL for point cloud data) -License: BSD-3-Clause +# The code is licensed BSD except for: +# - filters/private/csf/* and plugins/i3s/lepcc/* are Apache-2.0 +# - vendor/arbiter/*, plugins/nitf/io/nitflib.h and plugins/oci/io/OciWrapper.* are Expat/MIT +# - plugins/e57/io/{src,include}/* is BSD-3-Clause +# - plugins/e57/libE57Format/{src,include}/* is Boost 1-0 +License: Apache-2.0 AND BSD-3-Clause AND MIT AND BSL-1.0 Group: Productivity/Graphics/CAD URL: https://www.pdal.io/ Source0: https://github.com/PDAL/PDAL/releases/download/%{version}/%{name}-%{version}-src.tar.bz2 Source1: https://github.com/PDAL/PDAL/releases/download/%{version}/%{name}-%{version}-src.tar.bz2.md5 +# Unbundle some bundled libraries inspired by Fedora work at +# https://src.fedoraproject.org/rpms/PDAL/blob/rawhide/f/PDAL_unbundle.patch +Patch0: PDAL_unbundle.patch +# Upstream : fix 32bits tests +Patch1: https://github.com/PDAL/PDAL/commit/d11e0e20.patch # Source2: https://www.pdal.io/PDAL.pdf BuildRequires: bash-completion BuildRequires: cairo-devel BuildRequires: cmake >= 2.8 BuildRequires: cunit-devel BuildRequires: curl-devel +BuildRequires: eigen3-devel BuildRequires: fdupes BuildRequires: freeglut-devel BuildRequires: gcc-c++ @@ -79,6 +90,14 @@ BuildRequires: pkgconfig(libpq) # Doesn't exist on obs BuildRequires: python3-breathe Requires: lib%{name}%{soname} = %{version} Provides: pdal = %{version} +# https://github.com/connormanning/arbiter bundled in vendor/arbiter +Provides: bundled(arbiter) +# https://github.com/mkazhdan/PoissonRecon bundled in vendor/kazhdan +Provides: bundled(PoissonRecon) +# https://github.com/jlblancoc/nanoflann bundled in vendor/nanoflann +Provides: bundled(nanoflann) +# https://github.com/nlohmann/json bundled in vendor/nlohmann +Provides: bundled(nlohmann) %description PDAL is a C++ BSD library for translating and manipulating point cloud data. @@ -111,7 +130,7 @@ PDAL is focused more on data access and translation than PCL. %package bash-completion Summary: Bash completion for PDAL Requires: bash-completion -Supplements: packageand(%{name}:bash-completion) +Supplements: (%{name} and bash-completion) BuildArch: noarch %description bash-completion @@ -121,8 +140,8 @@ This package contain the bash completion command for PDAL. Summary: Development files and tools for PDAL applications Group: Development/Libraries/C and C++ Requires: cmake -Requires: lib%{name}%{soname} = %{version} Requires: laszip-devel +Requires: lib%{name}%{soname} = %{version} Requires: libboost_filesystem-devel Requires: libboost_headers-devel Requires: libboost_program_options-devel @@ -147,7 +166,9 @@ This package provides the documentation and sources of examples and data demos o PDAL algorithms. %prep -%autosetup -n %{name}-%{version}-src +%autosetup -p1 -n %{name}-%{version}-src +# Remove some bundled libraries to use system +rm -rf vendor/{eigen,gtest,pdalboost} # Fix all wrong shebang and move to python3 only find . -type f -iname "*.py" -exec sed -i 's,^#!%{_bindir}/env python$,#!%{_bindir}/python3,' {} + @@ -157,6 +178,11 @@ find ./doc/ -type f -iname "*.orig" -o -iname ".gitignore" -delete find ./doc/ -type f -iname "*.ai" -delete %build +%ifarch ppc64le +# boo#1194109 and upstream https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102059 +%define _lto_cflags %{nil} +%endif + %cmake \ -DCMAKE_VERBOSE_MAKEFILE=ON \ -DCMAKE_MODULE_LINKER_FLAGS="-Wl,--as-needed -Wl,-z,now" \ @@ -180,6 +206,7 @@ find ./doc/ -type f -iname "*.ai" -delete -DBUILD_PLUGIN_ICEBRIDGE=OFF \ -DBUILD_PLUGIN_NITF=OFF \ -DBUILD_PLUGIN_PGPOINTCLOUD=ON \ + -DBUILD_PGPOINTCLOUD_TESTS:BOOL=OFF \ -DBUILD_PLUGIN_GREYHOUND=OFF \ -DBUILD_PLUGIN_PCL=OFF \ .. @@ -211,6 +238,23 @@ sed -i 's,/usr//usr/lib64,%{_libdir},g' %{buildroot}/%{_libdir}/cmake/PDAL/PDALC #ctest -V #popd +%check +## test the compiled code (see doc/project/testing.rst) +# we skip tests for selected architectures which need upstream fixes +%ifarch armv7hl aarch64 ppc64le s390x +%ctest --output-on-failure || true +%else +## we skip the PG test (BUILD_PGPOINTCLOUD_TESTS:BOOL=OFF): +# PGUSER=pdal PGPASSWORD=password PGHOST=localhost PGPORT=5432 ctest -V +%ifarch i686 +# https://github.com/PDAL/PDAL/issues/3501 should work with PROJ 8.2 and gdal 3.2.3. +%ctest || : +%else +# https://github.com/PDAL/PDAL/issues/3501 +%ctest || : +%endif +%endif + %post -n lib%{name}%{soname} -p /sbin/ldconfig %postun -n lib%{name}%{soname} -p /sbin/ldconfig @@ -223,11 +267,16 @@ sed -i 's,/usr//usr/lib64,%{_libdir},g' %{buildroot}/%{_libdir}/cmake/PDAL/PDALC %license LICENSE.txt %doc AUTHORS.txt README.md RELEASENOTES.txt %{_libdir}/libpdal_base.so.%{sovers} +%{_libdir}/libpdal_base.so.%{soname} # Plugins %{_libdir}/libpdal_plugin_kernel_fauxplugin.so.%{sovers} +%{_libdir}/libpdal_plugin_kernel_fauxplugin.so.%{soname} %{_libdir}/libpdal_plugin_reader_pgpointcloud.so.%{sovers} +%{_libdir}/libpdal_plugin_reader_pgpointcloud.so.%{soname} %{_libdir}/libpdal_plugin_writer_pgpointcloud.so.%{sovers} +%{_libdir}/libpdal_plugin_writer_pgpointcloud.so.%{soname} %{_libdir}/libpdal_util.so.%{sovers} +%{_libdir}/libpdal_util.so.%{soname} %files bash-completion %dir %{_datadir}/bash-completion @@ -238,18 +287,11 @@ sed -i 's,/usr//usr/lib64,%{_libdir},g' %{buildroot}/%{_libdir}/cmake/PDAL/PDALC %license LICENSE.txt %doc AUTHORS.txt README.md CONTRIBUTING.md %{_includedir}/pdal -# old compatibility link -%exclude %{_libdir}/libpdal_*.so.10 %{_libdir}/libpdal_base.so %{_libdir}/libpdal_plugin_kernel_fauxplugin.so %{_libdir}/libpdal_plugin_reader_pgpointcloud.so %{_libdir}/libpdal_plugin_writer_pgpointcloud.so %{_libdir}/libpdal_util.so -%{_libdir}/libpdal_base.so.%{soname} -%{_libdir}/libpdal_plugin_kernel_fauxplugin.so.%{soname} -%{_libdir}/libpdal_plugin_reader_pgpointcloud.so.%{soname} -%{_libdir}/libpdal_plugin_writer_pgpointcloud.so.%{soname} -%{_libdir}/libpdal_util.so.%{soname} %{_libdir}/libpdalcpp.so %{_libdir}/pkgconfig/pdal.pc %{_libdir}/cmake/PDAL diff --git a/PDAL_unbundle.patch b/PDAL_unbundle.patch new file mode 100644 index 0000000..011a508 --- /dev/null +++ b/PDAL_unbundle.patch @@ -0,0 +1,294 @@ +diff -rup a/cmake/gtest.cmake b/cmake/gtest.cmake +--- a/cmake/gtest.cmake 2021-05-28 02:52:49.000000000 +0200 ++++ b/cmake/gtest.cmake 2021-12-28 22:17:41.157270687 +0100 +@@ -5,7 +5,7 @@ if (MSVC) + endif() + + set(GOOGLETEST_VERSION 1.10.0) +-add_subdirectory(vendor/gtest) ++# add_subdirectory(vendor/gtest) + + set(FPHSA_NAME_MISMATCHED 1) # Suppress warnings, see https://cmake.org/cmake/help/v3.17/module/FindPackageHandleStandardArgs.html + find_package(absl QUIET) +diff -rup a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt 2021-05-28 02:52:50.000000000 +0200 ++++ b/CMakeLists.txt 2021-12-28 22:07:39.474190770 +0100 +@@ -67,7 +67,6 @@ else() + endif() + set(PDAL_LIB_NAME pdalcpp) + set(PDAL_UTIL_LIB_NAME pdal_util) +-set(PDAL_BOOST_LIB_NAME pdal_boost) + set(PDAL_KAZHDAN_LIB_NAME pdal_kazhdan) + set(PDAL_TEST_SUPPORT_OBJS pdal_test_support) + +@@ -140,6 +139,8 @@ include(${PDAL_CMAKE_DIR}/dimension.cmak + include(${PDAL_CMAKE_DIR}/arbiter.cmake) + include(${PDAL_CMAKE_DIR}/nlohmann.cmake) + include(${PDAL_CMAKE_DIR}/openssl.cmake) # Optional ++find_package(PkgConfig REQUIRED) ++PKG_CHECK_MODULES(EIGEN REQUIRED eigen3) + + #------------------------------------------------------------------------------ + # generate the pdal_features.hpp header +@@ -185,7 +186,6 @@ if (WITH_TESTS) + add_subdirectory(test) + endif() + add_subdirectory(dimbuilder) +-add_subdirectory(vendor/pdalboost) + add_subdirectory(vendor/arbiter) + add_subdirectory(vendor/kazhdan) + add_subdirectory(pdal/util) +@@ -267,13 +267,12 @@ target_include_directories(${PDAL_BASE_L + ${ROOT_DIR} + ${PROJECT_BINARY_DIR}/include + ${PDAL_VENDOR_DIR} +- ${PDAL_VENDOR_DIR}/eigen +- ${PDAL_VENDOR_DIR}/pdalboost + ${LIBXML2_INCLUDE_DIR} + ${ZSTD_INCLUDE_DIRS} + ${NLOHMANN_INCLUDE_DIR} + ${GDAL_INCLUDE_DIR} + ${LASZIP_INCLUDE_DIR} ++ ${EIGEN_INCLUDE_DIRS} + ) + target_link_libraries(${PDAL_BASE_LIB_NAME} + PRIVATE +diff -rup a/pdal/util/CMakeLists.txt b/pdal/util/CMakeLists.txt +--- a/pdal/util/CMakeLists.txt 2021-05-28 02:52:49.000000000 +0200 ++++ b/pdal/util/CMakeLists.txt 2021-12-28 22:08:12.917894919 +0100 +@@ -36,7 +36,7 @@ PDAL_ADD_FREE_LIBRARY(${PDAL_UTIL_LIB_NA + target_link_libraries(${PDAL_UTIL_LIB_NAME} + PRIVATE + ${BACKTRACE_LIBRARIES} +- ${PDAL_BOOST_LIB_NAME} ++ boost_filesystem + ${CMAKE_DL_LIBS} + ${CMAKE_THREAD_LIBS_INIT} + ) +diff -rup a/pdal/util/FileUtils.cpp b/pdal/util/FileUtils.cpp +--- a/pdal/util/FileUtils.cpp 2021-05-28 02:52:49.000000000 +0200 ++++ b/pdal/util/FileUtils.cpp 2021-12-28 22:09:39.097132189 +0100 +@@ -167,25 +167,25 @@ std::ostream *openExisting(const std::st + bool directoryExists(const std::string& dirname) + { + //ABELL - Seems we should be calling is_directory +- return pdalboost::filesystem::exists(toNative(dirname)); ++ return boost::filesystem::exists(toNative(dirname)); + } + + + bool createDirectory(const std::string& dirname) + { +- return pdalboost::filesystem::create_directory(toNative(dirname)); ++ return boost::filesystem::create_directory(toNative(dirname)); + } + + + bool createDirectories(const std::string& dirname) + { +- return pdalboost::filesystem::create_directories(toNative(dirname)); ++ return boost::filesystem::create_directories(toNative(dirname)); + } + + + void deleteDirectory(const std::string& dirname) + { +- pdalboost::filesystem::remove_all(toNative(dirname)); ++ boost::filesystem::remove_all(toNative(dirname)); + } + + +@@ -195,15 +195,15 @@ std::vector directoryList(c + + try + { +- pdalboost::filesystem::directory_iterator it(dir); +- pdalboost::filesystem::directory_iterator end; ++ boost::filesystem::directory_iterator it(dir); ++ boost::filesystem::directory_iterator end; + while (it != end) + { + files.push_back(it->path().string()); + it++; + } + } +- catch (pdalboost::filesystem::filesystem_error&) ++ catch (boost::filesystem::filesystem_error&) + { + files.clear(); + } +@@ -243,13 +243,13 @@ void closeFile(std::istream* in) + + bool deleteFile(const std::string& file) + { +- return pdalboost::filesystem::remove(toNative(file)); ++ return boost::filesystem::remove(toNative(file)); + } + + + void renameFile(const std::string& dest, const std::string& src) + { +- pdalboost::filesystem::rename(toNative(src), toNative(dest)); ++ boost::filesystem::rename(toNative(src), toNative(dest)); + } + + +@@ -260,9 +260,9 @@ bool fileExists(const std::string& name) + + try + { +- return pdalboost::filesystem::exists(toNative(name)); ++ return boost::filesystem::exists(toNative(name)); + } +- catch (pdalboost::filesystem::filesystem_error&) ++ catch (boost::filesystem::filesystem_error&) + { + } + return false; +@@ -272,8 +272,8 @@ bool fileExists(const std::string& name) + /// \return 0 on error or invalid file type. + uintmax_t fileSize(const std::string& file) + { +- pdalboost::system::error_code ec; +- uintmax_t size = pdalboost::filesystem::file_size(toNative(file), ec); ++ boost::system::error_code ec; ++ uintmax_t size = boost::filesystem::file_size(toNative(file), ec); + if (ec) + size = 0; + return size; +@@ -297,7 +297,7 @@ std::string readFileIntoString(const std + + std::string getcwd() + { +- const pdalboost::filesystem::path p = pdalboost::filesystem::current_path(); ++ const boost::filesystem::path p = boost::filesystem::current_path(); + return addTrailingSlash(p.string()); + } + +@@ -327,7 +327,7 @@ std::string toCanonicalPath(std::string + // otherwise, make it absolute (relative to current working dir) and return that + std::string toAbsolutePath(const std::string& filename) + { +- return pdalboost::filesystem::absolute(toNative(filename)).string(); ++ return boost::filesystem::absolute(toNative(filename)).string(); + } + + +@@ -339,7 +339,7 @@ std::string toAbsolutePath(const std::st + std::string toAbsolutePath(const std::string& filename, const std::string base) + { + const std::string newbase = toAbsolutePath(base); +- return pdalboost::filesystem::absolute(toNative(filename), ++ return boost::filesystem::absolute(toNative(filename), + toNative(newbase)).string(); + } + +@@ -362,8 +362,8 @@ std::string getFilename(const std::strin + // Get the directory part of a filename. + std::string getDirectory(const std::string& path) + { +- const pdalboost::filesystem::path dir = +- pdalboost::filesystem::path(toNative(path)).parent_path(); ++ const boost::filesystem::path dir = ++ boost::filesystem::path(toNative(path)).parent_path(); + return addTrailingSlash(dir.string()); + } + +@@ -384,13 +384,13 @@ std::string stem(const std::string& path + // Determine if the path represents a directory. + bool isDirectory(const std::string& path) + { +- return pdalboost::filesystem::is_directory(toNative(path)); ++ return boost::filesystem::is_directory(toNative(path)); + } + + // Determine if the path is an absolute path + bool isAbsolutePath(const std::string& path) + { +- return pdalboost::filesystem::path(toNative(path)).is_absolute(); ++ return boost::filesystem::path(toNative(path)).is_absolute(); + } + + +diff -rup a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt +--- a/test/unit/CMakeLists.txt 2021-05-28 02:52:49.000000000 +0200 ++++ b/test/unit/CMakeLists.txt 2021-12-28 21:48:33.736198324 +0100 +@@ -34,7 +34,7 @@ PDAL_ADD_TEST(pdal_eigen_test + ${PDAL_SRC_DIR}/private/MathUtils.cpp + + INCLUDES +- ${PDAL_VENDOR_DIR}/eigen ++ ${EIGEN_INCLUDE_DIRS} + ) + PDAL_ADD_TEST(pdal_file_utils_test FILES FileUtilsTest.cpp) + PDAL_ADD_TEST(pdal_georeference_test FILES GeoreferenceTest.cpp) +@@ -43,7 +43,7 @@ PDAL_ADD_TEST(pdal_kdindex_test + KDIndexTest.cpp + INCLUDES + ${PDAL_VENDOR_DIR} +- ${PDAL_VENDOR_DIR}/eigen ++ ${EIGEN_INCLUDE_DIRS} + ) + PDAL_ADD_TEST(pdal_kernel_test FILES KernelTest.cpp) + PDAL_ADD_TEST(pdal_log_test FILES LogTest.cpp) +@@ -70,7 +70,7 @@ PDAL_ADD_TEST(pdal_point_view_test + FILES + PointViewTest.cpp + INCLUDES +- ${PDAL_VENDOR_DIR}/eigen ++ ${EIGEN_INCLUDE_DIRS} + ) + PDAL_ADD_TEST(pdal_point_table_test FILES PointTableTest.cpp) + +@@ -189,13 +189,13 @@ PDAL_ADD_TEST(pdal_io_pcd_reader_test + FILES + io/PcdReaderTest.cpp + INCLUDES +- ${PDAL_VENDOR_DIR}/eigen ++ ${EIGEN_INCLUDE_DIRS} + ) + PDAL_ADD_TEST(pdal_io_pcd_writer_test + FILES + io/PcdWriterTest.cpp + INCLUDES +- ${PDAL_VENDOR_DIR}/eigen ++ ${EIGEN_INCLUDE_DIRS} + ) + PDAL_ADD_TEST(pdal_io_ply_reader_test + FILES +@@ -231,7 +231,7 @@ PDAL_ADD_TEST(pdal_filters_chipper_test + filters/ChipperTest.cpp + INCLUDES + ${NLOHMANN_INCLUDE_DIR} +- ${PDAL_VENDOR_DIR}/eigen ++ ${EIGEN_INCLUDE_DIRS} + ) + PDAL_ADD_TEST(pdal_filters_nndistance_test + FILES +@@ -282,7 +282,7 @@ PDAL_ADD_TEST(pdal_filters_icp_test + FILES + filters/IcpFilterTest.cpp + INCLUDES +- ${PDAL_VENDOR_DIR}/eigen ++ ${EIGEN_INCLUDE_DIRS} + ) + PDAL_ADD_TEST(pdal_filters_info_test FILES filters/InfoFilterTest.cpp) + PDAL_ADD_TEST(pdal_filters_lloydkmeans_test FILES filters/LloydKMeansFilterTest.cpp) +@@ -303,7 +303,7 @@ PDAL_ADD_TEST(pdal_filters_planefit_test + FILES + filters/PlaneFitFilterTest.cpp + INCLUDES +- ${PDAL_VENDOR_DIR}/eigen) ++ ${EIGEN_INCLUDE_DIRS}) + PDAL_ADD_TEST(pdal_filters_pmf_test FILES filters/PMFFilterTest.cpp) + PDAL_ADD_TEST(pdal_filters_reprojection_test FILES + filters/ReprojectionFilterTest.cpp) +@@ -328,7 +328,7 @@ PDAL_ADD_TEST(pdal_filters_splitter_test + FILES + filters/SplitterTest.cpp + INCLUDES +- ${PDAL_VENDOR_DIR}/eigen) ++ ${EIGEN_INCLUDE_DIRS}) + PDAL_ADD_TEST(pdal_filters_stats_test FILES filters/StatsFilterTest.cpp) + PDAL_ADD_TEST(pdal_filters_transformation_test FILES + filters/TransformationFilterTest.cpp) diff --git a/d11e0e20.patch b/d11e0e20.patch new file mode 100644 index 0000000..5a1e6c1 --- /dev/null +++ b/d11e0e20.patch @@ -0,0 +1,29 @@ +From d11e0e20ba2d67365180cfd79ca8995170817697 Mon Sep 17 00:00:00 2001 +From: Andrew Bell +Date: Thu, 3 Jun 2021 07:50:50 -0400 +Subject: [PATCH] Don't run large file mapping test on WIN32. + +--- + test/unit/UtilsTest.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/test/unit/UtilsTest.cpp b/test/unit/UtilsTest.cpp +index 26a715854d..7ad985cbc9 100644 +--- a/test/unit/UtilsTest.cpp ++++ b/test/unit/UtilsTest.cpp +@@ -477,6 +477,8 @@ TEST(UtilsTest, escapeJSON) + EXPECT_EQ(escaped, "\\u0001\\t\\f\\n\\\\\\\"\\u0016"); + } + ++// Don't run if we are WIN32 ++#if !defined(_WIN32) || defined(_WIN64) + TEST(UtilsTest, map) + { + Support::Tempfile temp; +@@ -536,5 +538,6 @@ TEST(UtilsTest, map) + EXPECT_EQ(std::string(c), "Another."); + FileUtils::unmapFile(ctx); + } ++#endif // guard for 32-bit windows + + }