diff -Nru sip4-4.19.17+dfsg/ChangeLog sip4-4.19.18+dfsg/ChangeLog --- sip4-4.19.17+dfsg/ChangeLog 2019-05-06 08:48:42.000000000 +0000 +++ sip4-4.19.18+dfsg/ChangeLog 2019-07-04 16:28:08.000000000 +0000 @@ -1,5 +1,58 @@ +2019-07-03 Phil Thompson + + * NEWS: + Released as v4.19.18. + [d750db0124aa] [4.19.18] <4.19-maint> + +2019-07-02 Phil Thompson + + * NEWS: + Updated the NEWS file. + [ef41d6f6ba52] <4.19-maint> + +2019-07-01 Phil Thompson + + * configure.py.in: + Removed a non-ASCII character. + [345665372f96] <4.19-maint> + +2019-06-30 Phil Thompson + + * siplib/siplib.c: + Don't try and acquire the GIL if the interpreter is no longer there. + [0339fda05a90] <4.19-maint> + +2019-06-24 Phil Thompson + + * siplib/array.c, siplib/descriptors.c, siplib/siplib.c, + siplib/voidptr.c: + Fixed warnings triggered by Python v3.8. + [79f89221765d] <4.19-maint> + +2019-06-20 Phil Thompson + + * sphinx/introduction.rst.in: + Updated the docs regarding sip5. + [a9890af70254] <4.19-maint> + +2019-05-22 Phil Thompson + + * configure.py.in: + Check that the name of the private sip module is valid. + [57ec4f189c8f] <4.19-maint> + + * siplib/sip.h.in: + Define SIP_NULLPTR as NULL (rather than 0) for older C++ compilers + so that the right sized zero gets passed to functions with variable + number of arguments (where the argument type isn't known). + [8e12736053f7] <4.19-maint> + 2019-05-06 Phil Thompson + * .hgtags: + Added tag 4.19.17 for changeset 6bd401a26793 + [1cb4f1190dc9] <4.19-maint> + * NEWS: Released as v4.19.17. [6bd401a26793] [4.19.17] <4.19-maint> diff -Nru sip4-4.19.17+dfsg/configure.py sip4-4.19.18+dfsg/configure.py --- sip4-4.19.17+dfsg/configure.py 2019-05-06 08:48:42.000000000 +0000 +++ sip4-4.19.18+dfsg/configure.py 2019-07-04 16:28:08.000000000 +0000 @@ -1,6 +1,6 @@ # This script handles the SIP configuration and generates the Makefiles. # -# Copyright (c) 2018 Riverbank Computing Limited +# Copyright (c) 2019 Riverbank Computing Limited # # This file is part of SIP. # @@ -15,6 +15,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +import keyword import sys import os import glob @@ -30,8 +31,8 @@ # Initialise the globals. -sip_version = 0x041311 -sip_version_str = "4.19.17" +sip_version = 0x041312 +sip_version_str = "4.19.18" py_version = sys.hexversion >> 8 py_platform = sys.platform plat_py_site_dir = None @@ -970,6 +971,17 @@ module_path = sip_module_name.split(".") + # Check the module name is valid. + for m in module_path: + # Python v2 doesn't have isidentifier() but we don't bother to provide + # an alternative. + try: + if keyword.iskeyword(m) or not m.isidentifier(): + siputils.error( + "'%s' is an invalid Python module name." % sip_module_name) + except AttributeError: + pass + if len(module_path) > 1: del module_path[-1] module_path.insert(0, sip_module_dir) diff -Nru sip4-4.19.17+dfsg/debian/changelog sip4-4.19.18+dfsg/debian/changelog --- sip4-4.19.17+dfsg/debian/changelog 2019-05-10 09:35:07.000000000 +0000 +++ sip4-4.19.18+dfsg/debian/changelog 2019-07-13 17:04:09.000000000 +0000 @@ -1,3 +1,12 @@ +sip4 (4.19.18+dfsg-1) unstable; urgency=medium + + * New upstream release. + * Fix Lintian source-contains-empty-directory warning. + * Fix a typo in a comment in debian/rules. + * Upload to unstable. + + -- Dmitry Shachnev Sat, 13 Jul 2019 20:04:09 +0300 + sip4 (4.19.17+dfsg-1) experimental; urgency=medium * New upstream release. diff -Nru sip4-4.19.17+dfsg/debian/copyright sip4-4.19.18+dfsg/debian/copyright --- sip4-4.19.17+dfsg/debian/copyright 2019-05-10 09:35:07.000000000 +0000 +++ sip4-4.19.18+dfsg/debian/copyright 2019-07-13 17:04:09.000000000 +0000 @@ -1,6 +1,6 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Contact: pyqt@riverbankcomputing.com -Files-Excluded: doc/html sipgen/lexer.c sipgen/parser.c sipgen/parser.h +Files-Excluded: doc sipgen/lexer.c sipgen/parser.c sipgen/parser.h Files: * Copyright: 2015-2018, Riverbank Computing Limited diff -Nru sip4-4.19.17+dfsg/debian/rules sip4-4.19.18+dfsg/debian/rules --- sip4-4.19.17+dfsg/debian/rules 2019-05-10 09:35:07.000000000 +0000 +++ sip4-4.19.18+dfsg/debian/rules 2019-07-13 17:04:09.000000000 +0000 @@ -4,7 +4,7 @@ PY2_PROVIDES=sip-api-12.0, sip-api-12.1, sip-api-12.2, sip-api-12.3, sip-api-12.4, sip-api-12.5, sip-api-12.6 PY3_PROVIDES=sip-py3api-12.0, sip-py3api-12.1, sip-py3api-12.2, sip-py3api-12.3, sip-py3api-12.4, sip-py3api-12.5, sip-py3api-12.6 -# `dh_python3 --depends sip3` should generate dependency on newest API only +# `dh_python3 --depends sip` should generate dependency on newest API only PYDIST=sip $(lastword $(PY3_PROVIDES)) PYTHON3S := $(shell py3versions -vr) diff -Nru sip4-4.19.17+dfsg/mk_distinfo.py sip4-4.19.18+dfsg/mk_distinfo.py --- sip4-4.19.17+dfsg/mk_distinfo.py 2019-04-30 15:00:18.000000000 +0000 +++ sip4-4.19.18+dfsg/mk_distinfo.py 2019-07-04 16:26:17.000000000 +0000 @@ -86,6 +86,10 @@ all_fns = [] for root, dirs, files in os.walk(native_name): + # Reproducable builds. + dirs.sort() + files.sort() + for f in files: all_fns.append(os.path.join(root, f).replace(os.sep, '/')) diff -Nru sip4-4.19.17+dfsg/NEWS sip4-4.19.18+dfsg/NEWS --- sip4-4.19.17+dfsg/NEWS 2019-05-06 08:48:27.000000000 +0000 +++ sip4-4.19.18+dfsg/NEWS 2019-07-04 16:27:51.000000000 +0000 @@ -1,3 +1,6 @@ +v4.19.18 5th July 2019 + - Bug fixes. + v4.19.17 6th May 2019 - Bug fixes. diff -Nru sip4-4.19.17+dfsg/sipgen/sip.h sip4-4.19.18+dfsg/sipgen/sip.h --- sip4-4.19.17+dfsg/sipgen/sip.h 2019-05-06 08:48:42.000000000 +0000 +++ sip4-4.19.18+dfsg/sipgen/sip.h 2019-07-04 16:28:08.000000000 +0000 @@ -27,8 +27,8 @@ /* * Define the SIP version number. */ -#define SIP_VERSION 0x041311 -#define SIP_VERSION_STR "4.19.17" +#define SIP_VERSION 0x041312 +#define SIP_VERSION_STR "4.19.18" #ifdef TRUE diff -Nru sip4-4.19.17+dfsg/siplib/array.c sip4-4.19.18+dfsg/siplib/array.c --- sip4-4.19.17+dfsg/siplib/array.c 2019-05-06 08:48:27.000000000 +0000 +++ sip4-4.19.18+dfsg/siplib/array.c 2019-07-04 16:27:51.000000000 +0000 @@ -1,7 +1,7 @@ /* * This file implements the API for the array type. * - * Copyright (c) 2018 Riverbank Computing Limited + * Copyright (c) 2019 Riverbank Computing Limited * * This file is part of SIP. * @@ -526,6 +526,9 @@ #if PY_VERSION_HEX >= 0x03040000 0, /* tp_finalize */ #endif +#if PY_VERSION_HEX >= 0x03080000 + 0, /* tp_vectorcall */ +#endif }; diff -Nru sip4-4.19.17+dfsg/siplib/descriptors.c sip4-4.19.18+dfsg/siplib/descriptors.c --- sip4-4.19.17+dfsg/siplib/descriptors.c 2019-05-06 08:48:27.000000000 +0000 +++ sip4-4.19.18+dfsg/siplib/descriptors.c 2019-07-04 16:27:51.000000000 +0000 @@ -1,7 +1,7 @@ /* * The implementation of the different descriptors. * - * Copyright (c) 2016 Riverbank Computing Limited + * Copyright (c) 2019 Riverbank Computing Limited * * This file is part of SIP. * @@ -108,6 +108,9 @@ #if PY_VERSION_HEX >= 0x03040000 0, /* tp_finalize */ #endif +#if PY_VERSION_HEX >= 0x03080000 + 0, /* tp_vectorcall */ +#endif }; @@ -317,6 +320,9 @@ #if PY_VERSION_HEX >= 0x03040000 0, /* tp_finalize */ #endif +#if PY_VERSION_HEX >= 0x03080000 + 0, /* tp_vectorcall */ +#endif }; diff -Nru sip4-4.19.17+dfsg/siplib/sip.h sip4-4.19.18+dfsg/siplib/sip.h --- sip4-4.19.17+dfsg/siplib/sip.h 2019-05-06 08:48:42.000000000 +0000 +++ sip4-4.19.18+dfsg/siplib/sip.h 2019-07-04 16:28:08.000000000 +0000 @@ -54,8 +54,8 @@ /* * Define the SIP version number. */ -#define SIP_VERSION 0x041311 -#define SIP_VERSION_STR "4.19.17" +#define SIP_VERSION 0x041312 +#define SIP_VERSION_STR "4.19.18" /* @@ -303,7 +303,7 @@ #else /* Earlier versions of C++. */ -#define SIP_NULLPTR 0 +#define SIP_NULLPTR NULL #define SIP_OVERRIDE #endif diff -Nru sip4-4.19.17+dfsg/siplib/siplib.c sip4-4.19.18+dfsg/siplib/siplib.c --- sip4-4.19.17+dfsg/siplib/siplib.c 2019-05-06 08:48:27.000000000 +0000 +++ sip4-4.19.18+dfsg/siplib/siplib.c 2019-07-04 16:27:51.000000000 +0000 @@ -1,7 +1,7 @@ /* * SIP library code. * - * Copyright (c) 2018 Riverbank Computing Limited + * Copyright (c) 2019 Riverbank Computing Limited * * This file is part of SIP. * @@ -121,6 +121,9 @@ #if PY_VERSION_HEX >= 0x03040000 0, /* tp_finalize */ #endif +#if PY_VERSION_HEX >= 0x03080000 + 0, /* tp_vectorcall */ +#endif }; @@ -190,6 +193,9 @@ #if PY_VERSION_HEX >= 0x03040000 0, /* tp_finalize */ #endif +#if PY_VERSION_HEX >= 0x03080000 + 0, /* tp_vectorcall */ +#endif }, #if PY_VERSION_HEX >= 0x03050000 { @@ -811,6 +817,9 @@ #if PY_VERSION_HEX >= 0x03040000 0, /* tp_finalize */ #endif +#if PY_VERSION_HEX >= 0x03080000 + 0, /* tp_vectorcall */ +#endif }; @@ -6105,11 +6114,18 @@ */ static void sip_api_instance_destroyed_ex(sipSimpleWrapper **sipSelfp) { + /* If there is no interpreter just to the minimum and get out. */ + if (sipInterpreter == NULL) + { + *sipSelfp = NULL; + return; + } + SIP_BLOCK_THREADS sipSimpleWrapper *sipSelf = *sipSelfp; - if (sipSelf != NULL && sipInterpreter != NULL) + if (sipSelf != NULL) { PyObject *xtype, *xvalue, *xtb; @@ -6140,15 +6156,15 @@ { removeFromParent((sipWrapper *)sipSelf); } - } - /* - * Normally this is done in the generated dealloc function. However this - * is only called if the pointer/access function has not been reset (which - * it has). It acts as a guard to prevent any further invocations of - * reimplemented virtuals. - */ - *sipSelfp = NULL; + /* + * Normally this is done in the generated dealloc function. However + * this is only called if the pointer/access function has not been + * reset (which it has). It acts as a guard to prevent any further + * invocations of reimplemented virtuals. + */ + *sipSelfp = NULL; + } SIP_UNBLOCK_THREADS } @@ -11542,6 +11558,9 @@ #if PY_VERSION_HEX >= 0x03040000 0, /* tp_finalize */ #endif +#if PY_VERSION_HEX >= 0x03080000 + 0, /* tp_vectorcall */ +#endif }, #if PY_VERSION_HEX >= 0x03050000 { diff -Nru sip4-4.19.17+dfsg/siplib/voidptr.c sip4-4.19.18+dfsg/siplib/voidptr.c --- sip4-4.19.17+dfsg/siplib/voidptr.c 2019-05-06 08:48:27.000000000 +0000 +++ sip4-4.19.18+dfsg/siplib/voidptr.c 2019-07-04 16:27:51.000000000 +0000 @@ -1,7 +1,7 @@ /* * SIP library code. * - * Copyright (c) 2018 Riverbank Computing Limited + * Copyright (c) 2019 Riverbank Computing Limited * * This file is part of SIP. * @@ -802,6 +802,9 @@ #if PY_VERSION_HEX >= 0x03040000 0, /* tp_finalize */ #endif +#if PY_VERSION_HEX >= 0x03080000 + 0, /* tp_vectorcall */ +#endif }; diff -Nru sip4-4.19.17+dfsg/sphinx/conf.py sip4-4.19.18+dfsg/sphinx/conf.py --- sip4-4.19.17+dfsg/sphinx/conf.py 2019-05-06 08:48:42.000000000 +0000 +++ sip4-4.19.18+dfsg/sphinx/conf.py 2019-07-04 16:28:08.000000000 +0000 @@ -48,9 +48,9 @@ # built documents. # # The short X.Y version. -version = '4.19.17' +version = '4.19.18' # The full version, including alpha/beta/rc tags. -release = '4.19.17' +release = '4.19.18' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff -Nru sip4-4.19.17+dfsg/sphinx/introduction.rst sip4-4.19.18+dfsg/sphinx/introduction.rst --- sip4-4.19.17+dfsg/sphinx/introduction.rst 2019-05-06 08:48:42.000000000 +0000 +++ sip4-4.19.18+dfsg/sphinx/introduction.rst 2019-07-04 16:28:08.000000000 +0000 @@ -1,7 +1,7 @@ Introduction ============ -This is the reference guide for SIP 4.19.17. SIP is a tool for +This is the reference guide for SIP 4.19.18. SIP is a tool for automatically generating `Python `__ bindings for C and C++ libraries. SIP was originally developed in 1998 for `PyQt `__ - the Python @@ -168,7 +168,8 @@ -------------------- SIP v4.19 will be the final series of SIP v4 releases. The next major release -of SIP will be v5. SIP v5.0 and SIP v5.1 will have different goals. +of SIP will be v5. SIP v5 will adopt semantic versioning. SIP v5.0 and SIP +v5.1 will have different goals. The goals of SIP v5.0 will be to: