[Git][debian-gis-team/tilemaker][patch-queue/master] 10 commits: Cleanup changelog and add TODO.

ǝɹʇʇɐʃǝ◖ xıʃǝɟ (@xamanu) gitlab at salsa.debian.org
Tue Aug 9 16:22:09 BST 2022



ǝɹʇʇɐʃǝ◖ xıʃǝɟ pushed to branch patch-queue/master at Debian GIS Project / tilemaker


Commits:
f3a39921 by Bas Couwenberg at 2022-08-03T05:40:17+02:00
Cleanup changelog and add TODO.

- - - - -
59ca3a71 by Bas Couwenberg at 2022-08-03T07:39:42+02:00
Set distribution back to UNRELEASED.

- - - - -
9fbe328a by Felix Delattre at 2022-08-03T07:53:42+00:00
Adjusted copyright information.

- - - - -
e1556c13 by Felix Delattre at 2022-08-03T07:53:54+00:00
Removed pedantic linitian error override.

- - - - -
a0480298 by Felix Delattre at 2022-08-03T08:21:25+00:00
Set distribution to unstable.

- - - - -
b7fde355 by Felix Delattre at 2022-08-03T12:58:15+00:00
Added libatomic for armel, mipsel and powerpc architectures.

- - - - -
d15deb83 by Felix Delattre at 2022-08-03T13:09:43+00:00
Set distribution back to UNRELEASED.

- - - - -
73459bc0 by Felix Delattre at 2022-08-09T15:20:20+00:00
Added patch to include latomic flag when needed.

- - - - -
3fae4194 by Felix Delattre at 2022-08-09T15:21:21+00:00
Fix manpage in makefile.

Origin: https://github.com/systemed/tilemaker/pull/423/commits/b810fd7102a43840fd60f2fac139ec745a1db5c4
Bug: https://github.com/systemed/tilemaker/pull/423

Gbp-Pq: Name 0001-Fix-manpage-in-makefiles.patch
- - - - -
f0585256 by Felix Delattre at 2022-08-09T15:21:21+00:00
Check and add latomic

Origin: https://github.com/systemed/tilemaker/pull/427/commits/d837f3ac82668d72ffd6877152824405cf6b124e
Bug: https://github.com/systemed/tilemaker/pull/427

Gbp-Pq: Name 0002-Check-and-add-latomic.patch
- - - - -


10 changed files:

- CMakeLists.txt
- Makefile
- + cmake/CheckCxxAtomic.cmake
- debian/changelog
- debian/copyright
- debian/patches/0001-Fix-manpage-in-makefiles.patch
- + debian/patches/0002-Check-and-add-latomic.patch
- debian/patches/series
- debian/rules
- − debian/source/lintian-overrides


Changes:

=====================================
CMakeLists.txt
=====================================
@@ -106,12 +106,20 @@ file(GLOB tilemaker_src_files
 	src/tilemaker.cpp
 	src/write_geometry.cpp
   )
+
 add_executable(tilemaker vector_tile.pb.cc osmformat.pb.cc ${tilemaker_src_files})
 target_link_libraries(tilemaker ${PROTOBUF_LIBRARY} ${LIBSHP_LIBRARIES} ${SQLITE3_LIBRARIES} ${LUAJIT_LIBRARY} ${LUA_LIBRARIES} ${ZLIB_LIBRARY} ${THREAD_LIB} ${CMAKE_DL_LIBS}
 	Boost::system Boost::filesystem Boost::program_options Boost::iostreams)
 
+include(CheckCxxAtomic)
+if(NOT HAVE_CXX11_ATOMIC)
+	string(APPEND CMAKE_CXX_STANDARD_LIBRARIES
+	" ${LIBATOMIC_LINK_FLAGS}")
+endif()
+
 if(MSVC)
     target_link_libraries(tilemaker unofficial::sqlite3::sqlite3)
 endif()
 
+install(FILES docs/man/tilemaker.1 DESTINATION share/man/man1)
 install(TARGETS tilemaker RUNTIME DESTINATION bin)


=====================================
Makefile
=====================================
@@ -101,8 +101,8 @@ tilemaker: include/osmformat.pb.o include/vector_tile.pb.o src/mbtiles.o src/pbf
 install:
 	install -m 0755 -d $(DESTDIR)$(prefix)/bin/
 	install -m 0755 tilemaker $(DESTDIR)$(prefix)/bin/
-	install -d ${DESTDIR}${MANPREFIX}/man1/
-	-install docs/man/tilemaker.1 ${DESTDIR}${MANPREFIX}/man1/
+	install -m 0755 -d ${DESTDIR}${MANPREFIX}/man1/
+	install docs/man/tilemaker.1 ${DESTDIR}${MANPREFIX}/man1/
 
 clean:
 	rm -f tilemaker src/*.o include/*.o include/*.pb.h


=====================================
cmake/CheckCxxAtomic.cmake
=====================================
@@ -0,0 +1,66 @@
+# some platforms do not offer support for atomic primitive for all integer
+# types, in that case we need to link against libatomic
+
+include(CheckCXXSourceCompiles)
+include(CMakePushCheckState)
+
+
+function(check_cxx_atomics var)
+  set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -std=c++11")
+    check_cxx_source_compiles("
+#include <atomic>
+#include <cstdint>
+#include <cstddef>
+#if defined(__SIZEOF_INT128__)
+// Boost needs 16-byte atomics for tagged pointers.
+// These are implemented via inline instructions on the platform
+// if 16-byte alignment can be proven, and are delegated to libatomic
+// library routines otherwise.  Whether or not alignment is provably
+// OK for a std::atomic unfortunately depends on compiler version and
+// optimization levels, and also on the details of the expression.
+// We specifically test access via an otherwise unknown pointer here
+// to ensure we get the most complex case.  If this access can be
+// done without libatomic, then all accesses can be done.
+struct tagged_ptr {
+  int* ptr;
+  std::size_t tag;
+};
+void atomic16(std::atomic<tagged_ptr> *ptr)
+{
+  tagged_ptr p{nullptr, 1};
+  ptr->store(p);
+  tagged_ptr f = ptr->load();
+  tagged_ptr new_tag{nullptr, 0};
+  ptr->compare_exchange_strong(f, new_tag);
+}
+#endif
+int main() {
+#if defined(__SIZEOF_INT128__)
+  std::atomic<tagged_ptr> ptr;
+  atomic16(&ptr);
+#endif
+  std::atomic<uint8_t> w1;
+  std::atomic<uint16_t> w2;
+  std::atomic<uint32_t> w4;
+  std::atomic<uint64_t> w8;
+  return w1 + w2 + w4 + w8;
+}
+" ${var})
+endfunction(check_cxx_atomics)
+
+cmake_push_check_state()
+check_cxx_atomics(HAVE_CXX11_ATOMIC)
+cmake_pop_check_state()
+
+if(NOT HAVE_CXX11_ATOMIC)
+  cmake_push_check_state()
+  set(CMAKE_REQUIRED_LIBRARIES "atomic")
+  check_cxx_atomics(HAVE_LIBATOMIC)
+  cmake_pop_check_state()
+  if(HAVE_LIBATOMIC)
+    set(LIBATOMIC_LINK_FLAGS "-latomic")
+  else()
+    message(FATAL_ERROR
+      "Host compiler ${CMAKE_CXX_COMPILER} requires libatomic, but it is not found")
+  endif()
+endif()


=====================================
debian/changelog
=====================================
@@ -1,20 +1,19 @@
+tilemaker (2.2.0-2) UNRELEASED; urgency=medium
+
+  * Added libatomic for armel, mipsel and powerpc architectures.
+
+ -- Felix Delattre <debian at xama.nu>  Wed, 03 Aug 2022 12:57:08 +0000
+
 tilemaker (2.2.0-1) unstable; urgency=medium
 
   [ Felix Delattre ]
-
   * New upstream release 2.2.0.
-  * Lintian: ignore very-long-line-length-in-source-file.
-    It's not a useful check, for fonts and test data
   * Updated patches.
-  * Updated copyright information.
-  * New upstream release 2.1.0.
 
   [ Bas Couwenberg ]
-
-  * Team upload.
   * Bump Standards-Version to 4.6.1, no changes.
 
- -- Felix Delattre <debian at xama.nu>  Tue, 02 Aug 2022 23:40:33 +0000
+ -- Felix Delattre <debian at xama.nu>  Wed, 03 Aug 2022 08:20:20 +0000
 
 tilemaker (2.0.0+ds-1) unstable; urgency=medium
 


=====================================
debian/copyright
=====================================
@@ -4,7 +4,7 @@ Upstream-Contact: Richard Fairhurst <richard at systemed.net>
 Source: https://github.com/systemed/tilemaker
 
 Files: *
-Copyright: 2015-2022, tilemaker contributors
+Copyright: 2015-2021, tilemaker contributors
 License: FTWPL
 
 Files: include/sqlite_modern_cpp.h
@@ -30,7 +30,6 @@ License: OFL-1.1
 
 Files: debian/*
 Copyright: 2021-2022, Felix Delattre <debian at xama.nu>
-           2022, Bas Couwenberg <sebastic at debian.org>
 License: GPL-2+
 
 License: FTWPL


=====================================
debian/patches/0001-Fix-manpage-in-makefiles.patch
=====================================
@@ -1,9 +1,9 @@
 From: Felix Delattre <felix at delattre.de>
 Date: Tue, 2 Aug 2022 22:04:10 +0000
 Subject: Fix manpage in makefile.
+
 Origin: https://github.com/systemed/tilemaker/pull/423/commits/b810fd7102a43840fd60f2fac139ec745a1db5c4
 Bug: https://github.com/systemed/tilemaker/pull/423
-
 ---
  CMakeLists.txt | 1 +
  Makefile       | 4 ++--


=====================================
debian/patches/0002-Check-and-add-latomic.patch
=====================================
@@ -0,0 +1,106 @@
+From: Felix Delattre <felix at delattre.de>
+Date: Mon, 8 Aug 2022 19:18:34 +0000
+Subject: Check and add latomic
+
+Origin: https://github.com/systemed/tilemaker/pull/427/commits/d837f3ac82668d72ffd6877152824405cf6b124e
+Bug: https://github.com/systemed/tilemaker/pull/427
+---
+ CMakeLists.txt             |  7 +++++
+ cmake/CheckCxxAtomic.cmake | 66 ++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 73 insertions(+)
+ create mode 100644 cmake/CheckCxxAtomic.cmake
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 78bfa5c..204f612 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -106,10 +106,17 @@ file(GLOB tilemaker_src_files
+ 	src/tilemaker.cpp
+ 	src/write_geometry.cpp
+   )
++
+ add_executable(tilemaker vector_tile.pb.cc osmformat.pb.cc ${tilemaker_src_files})
+ target_link_libraries(tilemaker ${PROTOBUF_LIBRARY} ${LIBSHP_LIBRARIES} ${SQLITE3_LIBRARIES} ${LUAJIT_LIBRARY} ${LUA_LIBRARIES} ${ZLIB_LIBRARY} ${THREAD_LIB} ${CMAKE_DL_LIBS}
+ 	Boost::system Boost::filesystem Boost::program_options Boost::iostreams)
+ 
++include(CheckCxxAtomic)
++if(NOT HAVE_CXX11_ATOMIC)
++	string(APPEND CMAKE_CXX_STANDARD_LIBRARIES
++	" ${LIBATOMIC_LINK_FLAGS}")
++endif()
++
+ if(MSVC)
+     target_link_libraries(tilemaker unofficial::sqlite3::sqlite3)
+ endif()
+diff --git a/cmake/CheckCxxAtomic.cmake b/cmake/CheckCxxAtomic.cmake
+new file mode 100644
+index 0000000..a4c8a77
+--- /dev/null
++++ b/cmake/CheckCxxAtomic.cmake
+@@ -0,0 +1,66 @@
++# some platforms do not offer support for atomic primitive for all integer
++# types, in that case we need to link against libatomic
++
++include(CheckCXXSourceCompiles)
++include(CMakePushCheckState)
++
++
++function(check_cxx_atomics var)
++  set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -std=c++11")
++    check_cxx_source_compiles("
++#include <atomic>
++#include <cstdint>
++#include <cstddef>
++#if defined(__SIZEOF_INT128__)
++// Boost needs 16-byte atomics for tagged pointers.
++// These are implemented via inline instructions on the platform
++// if 16-byte alignment can be proven, and are delegated to libatomic
++// library routines otherwise.  Whether or not alignment is provably
++// OK for a std::atomic unfortunately depends on compiler version and
++// optimization levels, and also on the details of the expression.
++// We specifically test access via an otherwise unknown pointer here
++// to ensure we get the most complex case.  If this access can be
++// done without libatomic, then all accesses can be done.
++struct tagged_ptr {
++  int* ptr;
++  std::size_t tag;
++};
++void atomic16(std::atomic<tagged_ptr> *ptr)
++{
++  tagged_ptr p{nullptr, 1};
++  ptr->store(p);
++  tagged_ptr f = ptr->load();
++  tagged_ptr new_tag{nullptr, 0};
++  ptr->compare_exchange_strong(f, new_tag);
++}
++#endif
++int main() {
++#if defined(__SIZEOF_INT128__)
++  std::atomic<tagged_ptr> ptr;
++  atomic16(&ptr);
++#endif
++  std::atomic<uint8_t> w1;
++  std::atomic<uint16_t> w2;
++  std::atomic<uint32_t> w4;
++  std::atomic<uint64_t> w8;
++  return w1 + w2 + w4 + w8;
++}
++" ${var})
++endfunction(check_cxx_atomics)
++
++cmake_push_check_state()
++check_cxx_atomics(HAVE_CXX11_ATOMIC)
++cmake_pop_check_state()
++
++if(NOT HAVE_CXX11_ATOMIC)
++  cmake_push_check_state()
++  set(CMAKE_REQUIRED_LIBRARIES "atomic")
++  check_cxx_atomics(HAVE_LIBATOMIC)
++  cmake_pop_check_state()
++  if(HAVE_LIBATOMIC)
++    set(LIBATOMIC_LINK_FLAGS "-latomic")
++  else()
++    message(FATAL_ERROR
++      "Host compiler ${CMAKE_CXX_COMPILER} requires libatomic, but it is not found")
++  endif()
++endif()


=====================================
debian/patches/series
=====================================
@@ -1 +1,2 @@
 0001-Fix-manpage-in-makefiles.patch
+0002-Check-and-add-latomic.patch


=====================================
debian/rules
=====================================
@@ -12,5 +12,6 @@ TM_VERSION := $(shell echo $(DEB_VERSION_UPSTREAM) | sed -e 's/\+.*//')
 
 export DEB_CXXFLAGS_MAINT_APPEND=-DTM_VERSION=$(TM_VERSION)
 
+
 %:
 	dh $@ --buildsystem=cmake


=====================================
debian/source/lintian-overrides deleted
=====================================
@@ -1 +0,0 @@
-tilemaker source: very-long-line-length-in-source-file *



View it on GitLab: https://salsa.debian.org/debian-gis-team/tilemaker/-/compare/b0bdeaa5def5d292d9b35ff1cab47a76e9de65c5...f058525647d6c4fabab9ca203ffce8949ba9897d

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/tilemaker/-/compare/b0bdeaa5def5d292d9b35ff1cab47a76e9de65c5...f058525647d6c4fabab9ca203ffce8949ba9897d
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20220809/3a1956b1/attachment-0001.htm>


More information about the Pkg-grass-devel mailing list