Bug#951707: gringo ftbfs with Python 3.8

Steve Langasek steve.langasek at canonical.com
Fri Feb 21 05:48:31 GMT 2020


Package: gringo
Followup-For: Bug #951707
User: ubuntu-devel at lists.ubuntu.com
Usertags: origin-ubuntu focal ubuntu-patch

Please find attached a patch for this issue, which has been uploaded to
Ubuntu.

This debdiff also includes fixes to the packaging to cause it to use the
default python3 at build-time, instead of a hard-coded python3.7, since
python3.7 will shortly disappear from unstable.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                   https://www.debian.org/
slangasek at ubuntu.com                                     vorlon at debian.org
-------------- next part --------------
diff -Nru gringo-5.3.0/debian/control gringo-5.3.0/debian/control
--- gringo-5.3.0/debian/control	2019-03-01 23:11:37.000000000 -0800
+++ gringo-5.3.0/debian/control	2020-02-20 21:43:17.000000000 -0800
@@ -11,9 +11,9 @@
  re2c,
  bison,
  liblua5.3-dev,
- python3.7,
- libpython3.7-dev,
- python3.7-distutils
+ python3,
+ libpython3-dev,
+ python3-distutils
 Standards-Version: 4.3.0
 Vcs-Git: https://salsa.debian.org/science-team/gringo.git
 Vcs-Browser: https://salsa.debian.org/science-team/gringo
diff -Nru gringo-5.3.0/debian/patches/python3.8-compat.patch gringo-5.3.0/debian/patches/python3.8-compat.patch
--- gringo-5.3.0/debian/patches/python3.8-compat.patch	1969-12-31 16:00:00.000000000 -0800
+++ gringo-5.3.0/debian/patches/python3.8-compat.patch	2020-02-20 21:43:07.000000000 -0800
@@ -0,0 +1,23 @@
+Description: fix compatibility with Python 3.8
+ Python 3.8 changes the type of an element of the PyTypeObject struct
+ (https://www.python.org/dev/peps/pep-0590/) leading to compiler errors.
+Author: Steve Langasek <steve.langasek at ubuntu.com>
+Last-Update: 2020-02-20
+Forwarded: no
+
+Index: gringo-5.3.0/libpyclingo/pyclingo.cc
+===================================================================
+--- gringo-5.3.0.orig/libpyclingo/pyclingo.cc
++++ gringo-5.3.0/libpyclingo/pyclingo.cc
+@@ -1128,7 +1128,11 @@
+     sizeof(T),                                  // tp_basicsize
+     0,                                          // tp_itemsize
+     PythonDetail::Get_tp_dealloc<T>::value,     // tp_dealloc
++#if PY_VERSION_HEX >= 0x03080000
++    0,                                          // tp_vectorcall_offset
++#else
+     nullptr,                                    // tp_print
++#endif
+     nullptr,                                    // tp_getattr
+     nullptr,                                    // tp_setattr
+     nullptr,                                    // tp_compare
diff -Nru gringo-5.3.0/debian/patches/series gringo-5.3.0/debian/patches/series
--- gringo-5.3.0/debian/patches/series	2018-11-18 21:48:21.000000000 -0800
+++ gringo-5.3.0/debian/patches/series	2020-02-20 21:40:23.000000000 -0800
@@ -1,3 +1,4 @@
 gringo-manpages.patch
 gringo-python3-utf8.patch
 gringo-python37-async.patch
+python3.8-compat.patch
diff -Nru gringo-5.3.0/debian/rules gringo-5.3.0/debian/rules
--- gringo-5.3.0/debian/rules	2018-11-04 00:23:40.000000000 -0700
+++ gringo-5.3.0/debian/rules	2020-02-20 20:26:14.000000000 -0800
@@ -13,7 +13,7 @@
 
 # use custom hardening config flags for compiling clasp
 CONFIG=hardening
-CONFIGPARMS = -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -LAH -DCMAKE_SKIP_RPATH=YES -DCLINGO_MANAGE_RPATH=OFF -DLIB_POTASSCO_BUILD_APP=ON -DLIB_POTASSCO_BUILD_TESTS=ON -DCLASP_BUILD_APP=OFF -DCLASP_BUILD_TESTS=OFF -DCLASP_BUILD_EXAMPLES=OFF -DCLINGO_BUILD_EXAMPLES=ON -DCLINGO_BUILD_TESTS=ON -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3.7
+CONFIGPARMS = -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -LAH -DCMAKE_SKIP_RPATH=YES -DCLINGO_MANAGE_RPATH=OFF -DLIB_POTASSCO_BUILD_APP=ON -DLIB_POTASSCO_BUILD_TESTS=ON -DCLASP_BUILD_APP=OFF -DCLASP_BUILD_TESTS=OFF -DCLASP_BUILD_EXAMPLES=OFF -DCLINGO_BUILD_EXAMPLES=ON -DCLINGO_BUILD_TESTS=ON -DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3
 TOPBUILDDIR = build/$(CONFIG)_mt
 ROOTDIR = $(shell pwd)
 


More information about the debian-science-maintainers mailing list