From cfaca8188c485ae756f7d7f49fda1d9926d4652c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Thu, 21 Apr 2022 14:15:05 +0200 Subject: DEB sip4-tqt: Add packages for Python3 support. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Slávek Banko --- debian/_base/dependencies/sip4-tqt/debian/control | 70 +++++++++++++++++++--- .../sip4-tqt/debian/python-sip-tqt.install | 2 +- debian/_base/dependencies/sip4-tqt/debian/rules | 34 +++++++++-- .../sip4-tqt/debian/sip_tqt_config_py3.py | 13 ++++ 4 files changed, 104 insertions(+), 15 deletions(-) create mode 100644 debian/_base/dependencies/sip4-tqt/debian/sip_tqt_config_py3.py (limited to 'debian/_base/dependencies') diff --git a/debian/_base/dependencies/sip4-tqt/debian/control b/debian/_base/dependencies/sip4-tqt/debian/control index 68283ead1..ca64055dd 100644 --- a/debian/_base/dependencies/sip4-tqt/debian/control +++ b/debian/_base/dependencies/sip4-tqt/debian/control @@ -4,20 +4,21 @@ Priority: optional Maintainer: TDE Debian Team XSBC-Original-Maintainer: Debian Python Modules Team Uploaders: Torsten Marek , Bernd Zeimetz , Michael Casadevall -Build-Depends: debhelper (>= 9~), python-all-dev (>= 2.3.5-10), python-all-dbg, python-support (>= 0.7.1) | dh-python, libtqtinterface-dev, bison, flex +Build-Depends: debhelper (>= 9~), python-all-dev (>= 2.3.5-10), python-all-dbg, python3-all-dev, python3-all-dbg, python-support (>= 0.7.1) | dh-python, libtqtinterface-dev, bison, flex Standards-Version: 3.8.4 XS-Python-Version: all +X-Python3-Version: >= 3.0 Package: python-sip-tqt Architecture: any Section: python Replaces: python-sip-tqt (<< 4:14.0.0~) Breaks: python-sip-tqt (<< 4:14.0.0~) -Provides: ${python:Provides}, sip-tqt-api-7.1, sip-api-7.1 +Provides: ${python:Provides} Depends: ${python:Depends}, ${shlibs:Depends}, ${misc:Depends} Conflicts: python-sip4 (<< 4.10) Description: Python/C++ bindings generator runtime library - SIP is a tool for generating bindings for C++ classes with some ideas + SIP-TQt is a tool for generating bindings for C++ classes with some ideas borrowed from SWIG, but capable of tighter bindings because of its specificity towards C++ and Python. @@ -31,7 +32,7 @@ Provides: ${python:Provides} Depends: python-sip-tqt (= ${binary:Version}), python-all-dbg, ${shlibs:Depends}, ${misc:Depends} Conflicts: python-sip4-dbg (<< 4.10) Description: Python/C++ bindings generator runtime library (debug extension) - SIP is a tool for generating bindings for C++ classes with some ideas + SIP-TQt is a tool for generating bindings for C++ classes with some ideas borrowed from SWIG, but capable of tighter bindings because of its specificity towards C++ and Python. . @@ -47,17 +48,17 @@ Recommends: python-sip-tqt (>= ${source:Version}) Provides: python-sip-dev, python-sip4-dev, sip4 Conflicts: python-sip-dev, python-sip4-dev (<< 4.10), sip4 (<< 4.10) Description: Python/C++ bindings generator development files - SIP is a tool for generating bindings for C++ classes with some ideas + SIP-TQt is a tool for generating bindings for C++ classes with some ideas borrowed from SWIG, but capable of tighter bindings because of its specificity towards C++ and Python. . - SIP was originally designed to generate Python bindings for TDE and so + SIP-TQt was originally designed to generate Python bindings for TDE and so has explicit support for the signal slot mechanism used by the TQt/TDE class libraries. . Features: - - connecting Qt signals to Python functions and class methods - - connecting Python signals to Qt slots + - connecting TQt signals to Python functions and class methods + - connecting Python signals to TQt slots - overloading virtual member functions with Python class methods - protected member functions - abstract classes @@ -66,4 +67,55 @@ Description: Python/C++ bindings generator development files - static member functions. . This package contains the code generator tool and the development headers - needed to develop Python bindings with sip. + needed to develop Python bindings with sip-tqt. + +Package: python3-sip-tqt +Architecture: any +Section: python +Provides: ${python3:Provides} +Depends: ${python3:Depends}, ${shlibs:Depends}, ${misc:Depends} +Description: Python 3/C++ bindings generator runtime library + SIP-TQt is a tool for generating bindings for C++ classes with some ideas + borrowed from SWIG, but capable of tighter bindings because of its + specificity towards C++ and Python. + . + This package provides SIP-TQt with support for Python 3 + +Package: python3-sip-tqt-dev +Architecture: any +Section: python +Depends: ${python:Depends}, python3-sip-tqt (= ${binary:Version}), python-all-dev, ${shlibs:Depends}, libjs-jquery, ${misc:Depends} +Recommends: python3-sip-tqt (>= ${source:Version}) +Description: Python/C++ bindings generator development files + SIP-TQt is a tool for generating bindings for C++ classes with some ideas + borrowed from SWIG, but capable of tighter bindings because of its + specificity towards C++ and Python. + . + SIP-TQt was originally designed to generate Python bindings for TDE and so + has explicit support for the signal slot mechanism used by the TQt/TDE + class libraries. + . + Features: + - connecting TQt signals to Python functions and class methods + - connecting Python signals to TQt slots + - overloading virtual member functions with Python class methods + - protected member functions + - abstract classes + - enumerated types + - global class instances + - static member functions. + . + This package contains the code generator tool and the development headers + needed to develop Python 3 bindings with sip-tqt. + +Package: python3-sip-tqt-dbg +Architecture: any +Section: debug +Priority: extra +Depends: python3-sip-tqt (= ${binary:Version}), python3-all-dbg, ${shlibs:Depends}, ${misc:Depends} +Description: Python 3/C++ bindings generator runtime library + SIP-TQt is a tool for generating bindings for C++ classes with some ideas + borrowed from SWIG, but capable of tighter bindings because of its + specificity towards C++ and Python. + . + This package contains debugging symbols for python3-sip-tqt diff --git a/debian/_base/dependencies/sip4-tqt/debian/python-sip-tqt.install b/debian/_base/dependencies/sip4-tqt/debian/python-sip-tqt.install index bfa1b37f6..e9db89432 100644 --- a/debian/_base/dependencies/sip4-tqt/debian/python-sip-tqt.install +++ b/debian/_base/dependencies/sip4-tqt/debian/python-sip-tqt.install @@ -1 +1 @@ -usr/lib/python*/*-packages/sip_tqt.so +usr/lib/python2.*/*-packages/sip_tqt.so diff --git a/debian/_base/dependencies/sip4-tqt/debian/rules b/debian/_base/dependencies/sip4-tqt/debian/rules index 1b07c97d2..bee7971c1 100755 --- a/debian/_base/dependencies/sip4-tqt/debian/rules +++ b/debian/_base/dependencies/sip4-tqt/debian/rules @@ -14,6 +14,10 @@ endif export DH_OPTIONS +PY2_PROVIDES=sip-tqt-api-7.0, sip-tqt-api-7.1 +PY3_PROVIDES=sip-tqt-py3api-7.0, sip-tqt-py3api-7.1 +PYDIST=sip $(shell python -c "a=[i.strip() for i in '$(PY3_PROVIDES)'.split(',')]; print sorted(a, reverse=True)[0]") + INSTDIR=$(CURDIR)/debian CFLAGS= @@ -24,7 +28,7 @@ else CFLAGS += -O2 -g endif -PYTHONS := $(shell pyversions -vr debian/control) +PYTHONS := $(shell pyversions -vr) $(shell py3versions -vd) DEB_PYTHON_SYSTEM = $(if $(wildcard /usr/bin/dh_python2),,pysupport) DH_PYTHON2 = $(if $(wildcard /usr/bin/dh_python2),dh_python2,dh_pysupport) @@ -48,7 +52,6 @@ build-%/configure-stamp: cd build-$* \ && python$* ../configure.py \ -d /usr/lib/python$*/$(call py_sitename,$*) \ - -g python$* \ -u STRIP="" CFLAGS="${CFLAGS} -I/usr/include/tqt -I/usr/include/tqt3 -I/usr/include/qt3" CFLAGS_RELEASE="" CXXFLAGS="${CFLAGS} -I/usr/include/tqt -I/usr/include/tqt3 -I/usr/include/qt3" CXXFLAGS_RELEASE="" touch $@ @@ -58,7 +61,6 @@ dbg-build-%/configure-stamp: cd dbg-build-$* \ && python$*-dbg ../configure.py \ -d /usr/lib/python$*/$(call py_sitename,$*) \ - -g python$* \ -e /usr/include/python$*_d \ -u CFLAGS="-O0 -g -I/usr/include/tqt -I/usr/include/tqt3 -I/usr/include/qt3" CFLAGS_RELEASE="" CXXFLAGS="-O0 -g -I/usr/include/tqt -I/usr/include/tqt3 -I/usr/include/qt3" CXXFLAGS_RELEASE="" STRIP="" touch $@ @@ -81,12 +83,14 @@ clean: dh_testdir dh_testroot rm -rf *-stamp siputils.pyc $(PYTHONS:%=build-%) $(PYTHONS:%=dbg-build-%) - dh_clean + dh_clean debian/python3-sip.pydist install-arch: build dh_testdir dh_testroot dh_prep -a + echo "python:Provides=$(PY2_PROVIDES)" >> debian/python-sip-tqt.substvars + echo "python3:Provides=$(PY3_PROVIDES)" >> debian/python3-sip-tqt.substvars dh_installdirs -a # This is needed to enforce that the install-arch-% rules are # not run in parallel. Both rules install into the same directory, @@ -103,10 +107,27 @@ install-arch: build done find debian/python-sip-tqt-dbg ! -type d ! -name '*_d.*' | xargs rm -f find debian/python-sip-tqt-dbg -depth -empty -exec rmdir {} \; + find debian/python3-sip-tqt-dbg ! -type d ! -name '*_d.*' | xargs rm -f + find debian/python3-sip-tqt-dbg -depth -empty -exec rmdir {} \; dh_install -a --sourcedir=$(CURDIR)/debian/tmp install -m 755 -o root -g root debian/dh_sip_tqt debian/python-sip-tqt-dev/usr/bin +install-arch-3.%: + $(MAKE) -C build-3.$* install DESTDIR=$(CURDIR)/debian/tmp + $(MAKE) -C dbg-build-3.$* install DESTDIR=$(CURDIR)/debian/python3-sip-tqt-dbg + mkdir -p debian/python3-sip-tqt/usr/lib/python3.$*/dist-packages/ + install -m 644 -o root -g root debian/sip_tqt_config_py3.py debian/python3-sip-tqt/usr/lib/python3.$*/dist-packages/sip_tqt_config.py + install -m 644 -o root -g root build-3.$*/sip_tqt_config.py debian/python3-sip-tqt/usr/lib/python3.$*/dist-packages/sip_tqt_config_nd.py + install -m 644 -o root -g root dbg-build-3.$*/sip_tqt_config.py debian/python3-sip-tqt-dbg/usr/lib/python3.$*/dist-packages/sip_tqt_config_d.py + mkdir -p debian/python3-sip-tqt-dev/usr/include/python3.$* + install -m 644 -o root -g root siplib/sip-tqt.h debian/python3-sip-tqt-dev/usr/include/python3.$*/ + mkdir -p debian/python3-sip-tqt-dev/usr/include/python3.$*_d + ln -s ../python3.$*/sip-tqt.h \ + debian/python3-sip-tqt-dev/usr/include/python3.$*_d/sip-tqt.h + mkdir -p debian/python3-sip-tqt-dev/usr/lib/python3.$*/dist-packages + install -m 644 -o root -g root sip_tqt_distutils.py debian/python3-sip-tqt-dev/usr/lib/python3.$*/dist-packages + install-arch-%: $(MAKE) -C build-$* install DESTDIR=$(CURDIR)/debian/tmp $(MAKE) -C dbg-build-$* install DESTDIR=$(CURDIR)/debian/python-sip-tqt-dbg @@ -138,17 +159,20 @@ binary-common: ifneq (,$(findstring -a, $(DH_OPTIONS))) DH_OPTIONS= dh_strip -ppython-sip-tqt-dev DH_OPTIONS= dh_strip -ppython-sip-tqt -Npython-sip-tqt-dev --dbg-package=python-sip-tqt-dbg + DH_OPTIONS= dh_strip -ppython3-sip-tqt-dev + DH_OPTIONS= dh_strip -ppython3-sip-tqt -Npython3-sip-tqt-dev --dbg-package=python3-sip-tqt-dbg rm -rf debian/python-sip-tqt-dbg/usr/share/doc/python-sip-tqt-dbg mkdir -p debian/python-sip-tqt-dbg/usr/share/doc ln -s python-sip-tqt debian/python-sip-tqt-dbg/usr/share/doc/python-sip-tqt-dbg endif - dh_compress + dh_compress -X.inv dh_fixperms ifneq (dh_pysupport,${DH_PYTHON2}) ${DH_PYTHON2} --no-dbg-cleaning else ${DH_PYTHON2} endif + dh_python3 dh_installdeb dh_shlibdeps dh_gencontrol diff --git a/debian/_base/dependencies/sip4-tqt/debian/sip_tqt_config_py3.py b/debian/_base/dependencies/sip4-tqt/debian/sip_tqt_config_py3.py new file mode 100644 index 000000000..fb27b6475 --- /dev/null +++ b/debian/_base/dependencies/sip4-tqt/debian/sip_tqt_config_py3.py @@ -0,0 +1,13 @@ +# import the sip_tqt_config.py for the normal or the debug build + +import sys + +if getattr(sys, "pydebug", False): + try: + from sip_tqt_config_d import * + from sip_tqt_config_d import _pkg_config, _default_macros + except ImportError as msg: + raise ImportError('No module named sip_tqt_config; package python-sip-tqt-dbg not installed') +else: + from sip_tqt_config_nd import * + from sip_tqt_config_nd import _pkg_config, _default_macros -- cgit v1.2.1