[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#857269: unblock: pybind11/2.0.1-3



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package pybind11

The current packaging of pybind11 available in Stretch suffers an
important deficiency which was brought to me after the freeze dealine.

The -dev package does not ship its corresponding CMake packaging
configuration (#854502), which is a critical component to facilitate
the use of this library by external CMake projects.

I have rectified the problem in subsequent updates in unstable (2.0.1-2,
2.0.1-3). Please consider applying the debdiff between 2.0.1-1 and
2.0.1-3 attached below.

Cheers,
Ghis

unblock pybind11/2.0.1-3

-- System Information:
Debian Release: 9.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 4.9.0-2-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff -Nru pybind11-2.0.1/debian/changelog pybind11-2.0.1/debian/changelog
--- pybind11-2.0.1/debian/changelog	2017-01-07 17:36:51.000000000 +0000
+++ pybind11-2.0.1/debian/changelog	2017-02-26 20:43:11.000000000 +0000
@@ -1,3 +1,19 @@
+pybind11 (2.0.1-3) unstable; urgency=medium
+
+  * Run autopkgtests for all supported Python versions
+
+ -- Ghislain Antony Vaillant <ghisvail@gmail.com>  Sat, 25 Feb 2017 12:11:08 +0000
+
+pybind11 (2.0.1-2) unstable; urgency=medium
+
+  * Fix missing CMake package configuration in -dev package
+    - New patch 0002-Arch-indep-CMake-package-configuration.patch
+    - Install the missing CMake package configuration
+    - Use CMake to build the autopkgtest example tests
+    Thanks to Jason Rhinelander for reporting (Closes: #854502)
+
+ -- Ghislain Antony Vaillant <ghisvail@gmail.com>  Thu, 23 Feb 2017 13:16:46 +0000
+
 pybind11 (2.0.1-1) unstable; urgency=medium
 
   * New upstream release
diff -Nru pybind11-2.0.1/debian/.git-dpm pybind11-2.0.1/debian/.git-dpm
--- pybind11-2.0.1/debian/.git-dpm	2017-01-07 17:36:51.000000000 +0000
+++ pybind11-2.0.1/debian/.git-dpm	2017-02-26 20:43:11.000000000 +0000
@@ -1,6 +1,6 @@
 # see git-dpm(1) from git-dpm package
-c2010fb61826c45bdd0ee6f36c17d7bf84d8daaf
-c2010fb61826c45bdd0ee6f36c17d7bf84d8daaf
+c91e0ad75aa42ff3252b14c90a9b77c2309a76be
+c91e0ad75aa42ff3252b14c90a9b77c2309a76be
 72d57df80676e2965c20128f76f00d4ae6fd696d
 72d57df80676e2965c20128f76f00d4ae6fd696d
 pybind11_2.0.1.orig.tar.gz
diff -Nru pybind11-2.0.1/debian/patches/0002-Arch-indep-CMake-package-configuration.patch pybind11-2.0.1/debian/patches/0002-Arch-indep-CMake-package-configuration.patch
--- pybind11-2.0.1/debian/patches/0002-Arch-indep-CMake-package-configuration.patch	1970-01-01 01:00:00.000000000 +0100
+++ pybind11-2.0.1/debian/patches/0002-Arch-indep-CMake-package-configuration.patch	2017-02-26 20:43:11.000000000 +0000
@@ -0,0 +1,26 @@
+From c91e0ad75aa42ff3252b14c90a9b77c2309a76be Mon Sep 17 00:00:00 2001
+From: Ghislain Antony Vaillant <ghisvail@gmail.com>
+Date: Tue, 7 Feb 2017 20:08:59 +0000
+Subject: Arch-indep CMake package configuration
+
+---
+ CMakeLists.txt | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 341f845..4757ea4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -117,9 +117,12 @@ if (PYBIND11_INSTALL)
+   configure_package_config_file(tools/${PROJECT_NAME}Config.cmake.in
+                                 "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+                                 INSTALL_DESTINATION ${PYBIND11_CMAKECONFIG_INSTALL_DIR})
++  set(_PYBIND11_CMAKE_SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P})
++  unset(CMAKE_SIZEOF_VOID_P)
+   write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
+                                    VERSION ${${PROJECT_NAME}_VERSION}
+                                    COMPATIBILITY AnyNewerVersion)
++  set(CMAKE_SIZEOF_VOID_P ${_PYBIND11_CMAKE_SIZEOF_VOID_P})
+   install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake
+                 ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake
+                 tools/FindPythonLibsNew.cmake
diff -Nru pybind11-2.0.1/debian/patches/series pybind11-2.0.1/debian/patches/series
--- pybind11-2.0.1/debian/patches/series	2017-01-07 17:36:51.000000000 +0000
+++ pybind11-2.0.1/debian/patches/series	2017-02-26 20:43:11.000000000 +0000
@@ -1 +1,2 @@
 0001-Use-system-include-path.patch
+0002-Arch-indep-CMake-package-configuration.patch
diff -Nru pybind11-2.0.1/debian/pybind11-dev.install pybind11-2.0.1/debian/pybind11-dev.install
--- pybind11-2.0.1/debian/pybind11-dev.install	2017-01-07 17:36:51.000000000 +0000
+++ pybind11-2.0.1/debian/pybind11-dev.install	2017-02-26 20:43:11.000000000 +0000
@@ -1 +1,2 @@
-include/* usr/include
+usr/include
+usr/share/cmake usr/lib
diff -Nru pybind11-2.0.1/debian/tests/control pybind11-2.0.1/debian/tests/control
--- pybind11-2.0.1/debian/tests/control	2017-01-07 17:36:51.000000000 +0000
+++ pybind11-2.0.1/debian/tests/control	2017-02-26 20:43:11.000000000 +0000
@@ -1,15 +1,39 @@
-Test-Command: c++ -shared -fPIC `python-config --cflags --ldflags` -o $AUTOPKGTEST_TMP/example.so ./debian/tests/example.cpp
- ; PYTHONPATH=$AUTOPKGTEST_TMP python -c "import example; assert(example.add(1, 2) == 3)"
-Depends: g++ | c++-compiler, pybind11-dev, python-dev
+Test-Command: set -e
+ ; cp debian/tests/example/* "$AUTOPKGTEST_TMP"
+ ; for py in $(pyversions -r 2>/dev/null)
+ ; do cd "$AUTOPKGTEST_TMP"
+ ; echo "Testing with $py:"
+ ; cmake -DPYTHON_EXECUTABLE=/usr/bin/$py .
+ ; cmake --build .
+ ; $py -c "import example; assert(example.add(1, 2) == 3)"
+ ; done
+Depends: cmake, g++ | c++-compiler, pybind11-dev, python-all-dev
 Restrictions: allow-stderr
 
-Test-Command: c++ -shared -fPIC `python3-config --cflags --ldflags` -o $AUTOPKGTEST_TMP/example.so ./debian/tests/example.cpp 
- ; PYTHONPATH=$AUTOPKGTEST_TMP python3 -c "import example; assert(example.add(1, 2) == 3)"
-Depends: g++ | c++-compiler, pybind11-dev, python3-dev
+Test-Command: set -e
+ ; cp debian/tests/example/* "$AUTOPKGTEST_TMP"
+ ; for py in $(py3versions -r 2>/dev/null)
+ ; do cd "$AUTOPKGTEST_TMP"
+ ; echo "Testing with $py:"
+ ; cmake -DPYTHON_EXECUTABLE=/usr/bin/$py .
+ ; cmake --build .
+ ; $py -c "import example; assert(example.add(1, 2) == 3)"
+ ; done
+Depends: cmake, g++ | c++-compiler, pybind11-dev, python3-all-dev
 Restrictions: allow-stderr
 
-Test-Command: python -c "import pybind11; print pybind11.get_include()"
-Depends: python-pybind11
+Test-Command: set -e
+ ; for py in $(pyversions -r 2>/dev/null)
+ ; do cd "$AUTOPKGTEST_TMP"
+ ; echo "Testing with $py:"
+ ; $py -c "import pybind11; print(pybind11.get_include())"
+ ; done
+Depends: python-all, python-pybind11
 
-Test-Command: python3 -c "import pybind11; print(pybind11.get_include())"
-Depends: python3-pybind11
+Test-Command: set -e
+ ; for py in $(py3versions -r 2>/dev/null)
+ ; do cd "$AUTOPKGTEST_TMP"
+ ; echo "Testing with $py:"
+ ; $py -c "import pybind11; print(pybind11.get_include())"
+ ; done
+Depends: python3-all, python3-pybind11
diff -Nru pybind11-2.0.1/debian/tests/example/CMakeLists.txt pybind11-2.0.1/debian/tests/example/CMakeLists.txt
--- pybind11-2.0.1/debian/tests/example/CMakeLists.txt	1970-01-01 01:00:00.000000000 +0100
+++ pybind11-2.0.1/debian/tests/example/CMakeLists.txt	2017-02-26 20:43:11.000000000 +0000
@@ -0,0 +1,5 @@
+cmake_minimum_required(VERSION 2.8.12)
+project(pybind11-example)
+
+find_package(pybind11 REQUIRED)
+pybind11_add_module(example example.cpp)
diff -Nru pybind11-2.0.1/debian/tests/example/example.cpp pybind11-2.0.1/debian/tests/example/example.cpp
--- pybind11-2.0.1/debian/tests/example/example.cpp	1970-01-01 01:00:00.000000000 +0100
+++ pybind11-2.0.1/debian/tests/example/example.cpp	2017-02-26 20:43:11.000000000 +0000
@@ -0,0 +1,19 @@
+// Basic example from the upstream documentation.
+//
+// See: http://pybind11.readthedocs.io/en/latest/basics.html
+
+#include <pybind11/pybind11.h>
+
+int add(int i, int j) {
+    return i + j;
+}
+
+namespace py = pybind11;
+
+PYBIND11_PLUGIN(example) {
+    py::module m("example", "pybind11 example plugin");
+
+    m.def("add", &add, "A function which adds two numbers");
+
+    return m.ptr();
+}
diff -Nru pybind11-2.0.1/debian/tests/example.cpp pybind11-2.0.1/debian/tests/example.cpp
--- pybind11-2.0.1/debian/tests/example.cpp	2017-01-07 17:36:51.000000000 +0000
+++ pybind11-2.0.1/debian/tests/example.cpp	1970-01-01 01:00:00.000000000 +0100
@@ -1,19 +0,0 @@
-// Basic example from the upstream documentation.
-//
-// See: http://pybind11.readthedocs.io/en/latest/basics.html
-
-#include <pybind11/pybind11.h>
-
-int add(int i, int j) {
-    return i + j;
-}
-
-namespace py = pybind11;
-
-PYBIND11_PLUGIN(example) {
-    py::module m("example", "pybind11 example plugin");
-
-    m.def("add", &add, "A function which adds two numbers");
-
-    return m.ptr();
-}

Reply to: