mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Bastian Stender <bst@pengutronix.de>
To: ptxdist@pengutronix.de
Cc: Robin van der Gracht <robin@protonic.nl>
Subject: [ptxdist] [PATCH 3/3] python3-pyside: new package
Date: Wed, 31 Jan 2018 12:16:45 +0100	[thread overview]
Message-ID: <20180131111645.19171-3-bst@pengutronix.de> (raw)
In-Reply-To: <20180131111645.19171-1-bst@pengutronix.de>

From: Robin van der Gracht <robin@protonic.nl>

The patches directory patches/pyside-qt4.8+1.2.2 is ready and
compile-time tested with python2 and python3. Because we could not
really test pyside qt4.8+1.2.2 (python2), we did not do a version bump
for it.

Signed-off-by: Robin van der Gracht <robin@protonic.nl>
---
 ...ccessibleevent_wrapper.cpp-if-accessible-.patch |  37 +++++++
 .../0002-add-include-iostream.patch                |  23 ++++
 .../pyside-qt4.8+1.2.2/0003-add-qws-support.patch  | 116 +++++++++++++++++++++
 patches/pyside-qt4.8+1.2.2/series                  |   6 ++
 rules/python3-pyside.in                            |  11 ++
 rules/python3-pyside.make                          |  64 ++++++++++++
 6 files changed, 257 insertions(+)
 create mode 100644 patches/pyside-qt4.8+1.2.2/0001-only-add-qaccessibleevent_wrapper.cpp-if-accessible-.patch
 create mode 100644 patches/pyside-qt4.8+1.2.2/0002-add-include-iostream.patch
 create mode 100644 patches/pyside-qt4.8+1.2.2/0003-add-qws-support.patch
 create mode 100644 patches/pyside-qt4.8+1.2.2/series
 create mode 100644 rules/python3-pyside.in
 create mode 100644 rules/python3-pyside.make

diff --git a/patches/pyside-qt4.8+1.2.2/0001-only-add-qaccessibleevent_wrapper.cpp-if-accessible-.patch b/patches/pyside-qt4.8+1.2.2/0001-only-add-qaccessibleevent_wrapper.cpp-if-accessible-.patch
new file mode 100644
index 000000000..d3575867c
--- /dev/null
+++ b/patches/pyside-qt4.8+1.2.2/0001-only-add-qaccessibleevent_wrapper.cpp-if-accessible-.patch
@@ -0,0 +1,37 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Wed, 26 Jan 2011 01:20:31 +0100
+Subject: [PATCH] only add qaccessibleevent_wrapper.cpp if accessible is
+ enabled
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ PySide/QtGui/CMakeLists.txt | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/PySide/QtGui/CMakeLists.txt b/PySide/QtGui/CMakeLists.txt
+index 6e147067f8aa..94d4787d57ff 100644
+--- a/PySide/QtGui/CMakeLists.txt
++++ b/PySide/QtGui/CMakeLists.txt
+@@ -86,6 +86,13 @@ check_qt_class(QtGui QMacStyle                  QtGui_OPTIONAL_SRC QtGui_DROPPED
+ 
+ qt4_wrap_cpp(QPYTEXTOBJECT_MOC "${pyside_SOURCE_DIR}/qpytextobject.h")
+ 
++if (QT_QCONFIG MATCHES "accessibility")
++set(QtGui_accessible_SRC
++${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qaccessibleevent_wrapper.cpp)
++else()
++set(QtGui_accessible_SRC )
++endif ()
++
+ set(QtGui_SRC
+ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qabstractbutton_wrapper.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qabstractgraphicsshapeitem_wrapper.cpp
+@@ -98,7 +105,7 @@ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qabstractspinbox_wrapper.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qabstracttextdocumentlayout_paintcontext_wrapper.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qabstracttextdocumentlayout_selection_wrapper.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qabstracttextdocumentlayout_wrapper.cpp
+-${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qaccessibleevent_wrapper.cpp
++${QtGui_accessible_SRC}
+ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qactionevent_wrapper.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qactiongroup_wrapper.cpp
+ ${CMAKE_CURRENT_BINARY_DIR}/PySide/QtGui/qaction_wrapper.cpp
diff --git a/patches/pyside-qt4.8+1.2.2/0002-add-include-iostream.patch b/patches/pyside-qt4.8+1.2.2/0002-add-include-iostream.patch
new file mode 100644
index 000000000..48c6b6b1b
--- /dev/null
+++ b/patches/pyside-qt4.8+1.2.2/0002-add-include-iostream.patch
@@ -0,0 +1,23 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Fri, 28 Jan 2011 16:03:10 +0100
+Subject: [PATCH] add "#include <iostream>"
+
+Without it std::copy() is undefined when Qt is build without stl.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ libpyside/dynamicqmetaobject.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libpyside/dynamicqmetaobject.cpp b/libpyside/dynamicqmetaobject.cpp
+index e88e3dfdfcec..a2db462a0104 100644
+--- a/libpyside/dynamicqmetaobject.cpp
++++ b/libpyside/dynamicqmetaobject.cpp
+@@ -35,6 +35,7 @@
+ #include <QLinkedList>
+ #include <QObject>
+ #include <cstring>
++#include <iostream>
+ #include <QDebug>
+ #include <QMetaMethod>
+ #include <shiboken.h>
diff --git a/patches/pyside-qt4.8+1.2.2/0003-add-qws-support.patch b/patches/pyside-qt4.8+1.2.2/0003-add-qws-support.patch
new file mode 100644
index 000000000..ee13ed6e3
--- /dev/null
+++ b/patches/pyside-qt4.8+1.2.2/0003-add-qws-support.patch
@@ -0,0 +1,116 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Date: Mon, 20 Jun 2011 21:42:41 +0200
+Subject: [PATCH] add qws support
+
+based on a patch from OpenEmbedded:
+http://cgit.openembedded.net/cgit.cgi/openembedded/tree/recipes/pyside/python-pyside-embedded/support-qws.patch
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+---
+ CMakeLists.txt                         |  4 ++++
+ PySide/QtCore/typesystem_core_qws.xml  | 26 ++++++++++++++++++++++++++
+ PySide/QtGui/typesystem_gui_common.xml |  2 ++
+ PySide/QtGui/typesystem_gui_qws.xml    | 26 ++++++++++++++++++++++++++
+ 4 files changed, 58 insertions(+)
+ create mode 100644 PySide/QtCore/typesystem_core_qws.xml
+ create mode 100644 PySide/QtGui/typesystem_gui_qws.xml
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9e0e3d07e2e3..0e7d85025376 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -88,6 +88,7 @@ set(ENABLE_X11 "0")
+ set(ENABLE_MAC "0")
+ set(ENABLE_WIN "0")
+ set(ENABLE_SIMULATOR "0")
++set(ENABLE_QWS "0")
+ if(Q_WS_X11)
+     set(ENABLE_X11 "1")
+     if(Q_WS_MAEMO_5)
+@@ -104,6 +105,9 @@ elseif(Q_WS_WIN)
+ elseif(Q_WS_SIMULATOR)
+     set(ENABLE_SIMULATOR "1")
+     set(AUTO_OS "simulator")
++elseif(Q_WS_QWS)
++    set(ENABLE_QWS "1")
++    set(AUTO_OS "qws")
+ else()
+     message(FATAL_ERROR "OS not supported")
+ endif()
+diff --git a/PySide/QtCore/typesystem_core_qws.xml b/PySide/QtCore/typesystem_core_qws.xml
+new file mode 100644
+index 000000000000..eba223c73097
+--- /dev/null
++++ b/PySide/QtCore/typesystem_core_qws.xml
+@@ -0,0 +1,26 @@
++<?xml version="1.0"?>
++<!--
++    This file is part of PySide project.
++    Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
++    Contact: PySide team <contact@pyside.org>
++
++    This library is free software; you can redistribute it and/or
++    modify it under the terms of the GNU Lesser General Public
++    License as published by the Free Software Foundation; either
++    version 2.1 of the License, or (at your option) any later version.
++
++    This library is distributed in the hope that it will be useful,
++    but WITHOUT ANY WARRANTY; without even the implied warranty of
++    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++    Lesser General Public License for more details.
++
++    You should have received a copy of the GNU Lesser General Public
++    License along with this library; if not, write to the Free Software
++    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
++-->
++<typesystem package="PySide.QtCore">
++  <primitive-type name="Qt::HANDLE" target-lang-api-name="PyLong">
++    <!-- FIXME APIExtractor or shiboken do not support multiple includes by primitive type -->
++    <include file-name="QTextDocument" location="global"/>
++  </primitive-type>
++</typesystem>
+diff --git a/PySide/QtGui/typesystem_gui_common.xml b/PySide/QtGui/typesystem_gui_common.xml
+index 711d7cc3a352..e7d00eac6df8 100644
+--- a/PySide/QtGui/typesystem_gui_common.xml
++++ b/PySide/QtGui/typesystem_gui_common.xml
+@@ -5635,6 +5635,8 @@
+     <modify-function signature="QApplication(int&amp;,char**,bool,int)" remove="all"/>
+     <modify-function signature="QApplication(int&amp;,char**,QApplication::Type,int)" remove="all"/>
+     <!-- ### -->
++    <!-- QWS: FIXME: really fix this -->
++    <modify-function signature="setArgs(int,char**)" remove="all"/>
+ 
+     <!-- ownership control transfer to qApp -->
+     <modify-function signature="setStyle(QStyle*)">
+diff --git a/PySide/QtGui/typesystem_gui_qws.xml b/PySide/QtGui/typesystem_gui_qws.xml
+new file mode 100644
+index 000000000000..d4a4793ad496
+--- /dev/null
++++ b/PySide/QtGui/typesystem_gui_qws.xml
+@@ -0,0 +1,26 @@
++<?xml version="1.0"?>
++<!--
++    This file is part of PySide project.
++    Copyright (C) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
++    Contact: PySide team <contact@pyside.org>
++
++    This library is free software; you can redistribute it and/or
++    modify it under the terms of the GNU Lesser General Public
++    License as published by the Free Software Foundation; either
++    version 2.1 of the License, or (at your option) any later version.
++
++    This library is distributed in the hope that it will be useful,
++    but WITHOUT ANY WARRANTY; without even the implied warranty of
++    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++    Lesser General Public License for more details.
++
++    You should have received a copy of the GNU Lesser General Public
++    License along with this library; if not, write to the Free Software
++    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
++-->
++<typesystem package="PySide.QtGui">
++  <value-type name="QCursor">
++    <!-- Does not exist on QWS -->
++    <modify-function signature="QCursor(Qt::HANDLE)" remove="all"/>
++  </value-type>
++</typesystem>
diff --git a/patches/pyside-qt4.8+1.2.2/series b/patches/pyside-qt4.8+1.2.2/series
new file mode 100644
index 000000000..cce9c351b
--- /dev/null
+++ b/patches/pyside-qt4.8+1.2.2/series
@@ -0,0 +1,6 @@
+# generated by git-ptx-patches
+#tag:base --start-number 1
+0001-only-add-qaccessibleevent_wrapper.cpp-if-accessible-.patch
+0002-add-include-iostream.patch
+0003-add-qws-support.patch
+# edb0310fe7e30ecdc0404f3b02598af7  - git-ptx-patches magic
diff --git a/rules/python3-pyside.in b/rules/python3-pyside.in
new file mode 100644
index 000000000..cb8db5a1a
--- /dev/null
+++ b/rules/python3-pyside.in
@@ -0,0 +1,11 @@
+## SECTION=qt
+
+config PYTHON3_PYSIDE
+	tristate
+	prompt "python3-pyside-qt4"
+	select QT4
+	select PYTHON3_SHIBOKEN
+	select HOST_CMAKE
+	help
+	  PySide provides Python bindings for the Qt cross-platform
+	  application and UI framework.
diff --git a/rules/python3-pyside.make b/rules/python3-pyside.make
new file mode 100644
index 000000000..5d4bdddfb
--- /dev/null
+++ b/rules/python3-pyside.make
@@ -0,0 +1,64 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2016 by Robin van der Gracht <robin@protonic.nl>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_PYTHON3_PYSIDE) += python3-pyside
+
+#
+# Paths and names
+#
+PYTHON3_PYSIDE_VERSION	:= 4.8+1.2.2
+PYTHON3_PYSIDE_MD5		:= 1969c2ff90eefaa4b200d234059d2287
+PYTHON3_PYSIDE			:= pyside-qt$(PYTHON3_PYSIDE_VERSION)
+PYTHON3_PYSIDE_SUFFIX	:= tar.bz2
+PYTHON3_PYSIDE_URL		:= http://download.qt-project.org/official_releases/pyside/$(PYTHON3_PYSIDE).$(PYTHON3_PYSIDE_SUFFIX)
+PYTHON3_PYSIDE_SOURCE	:= $(SRCDIR)/$(PYTHON3_PYSIDE).$(PYTHON3_PYSIDE_SUFFIX)
+PYTHON3_PYSIDE_DIR		:= $(BUILDDIR)/$(PYTHON3_PYSIDE)
+PYTHON3_PYSIDE_LICENSE	:= LGPL-2.1
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# cmake
+#
+PYSIDE_CONF_TOOL	:= cmake
+PYSIDE_CONF_ENV		:= PATH=$(CROSS_PATH)
+PYSIDE_CONF_OPT	= \
+	$(CROSS_CMAKE_USR) \
+	-DUSE_PYTHON3:BOOL=ON
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/python3-pyside.targetinstall:
+	@$(call targetinfo)
+
+	@$(call install_init, python3-pyside)
+	@$(call install_fixup, python3-pyside, PRIORITY, optional)
+	@$(call install_fixup, python3-pyside, SECTION, base)
+	@$(call install_fixup, python3-pyside, AUTHOR, "Robin van der Gracht <robin@protonic.nl>")
+	@$(call install_fixup, python3-pyside, DESCRIPTION, missing)
+
+	@$(call install_lib, python3-pyside, 0, 0, 0644, \
+		libpyside.cpython-*)
+	@$(call install_tree, python3-pyside, 0, 0, \
+		$(PYTHON3_PYSIDE_PKGDIR)/usr/lib/python$(PYTHON3_MAJORMINOR)/site-packages/PySide, \
+		/usr/lib/python$(PYTHON3_MAJORMINOR)/site-packages/PySide)
+
+	@$(call install_finish, python3-pyside)
+
+	@$(call touch)
+
+# vim: syntax=make
-- 
2.15.1


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

      parent reply	other threads:[~2018-01-31 11:16 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-31 11:16 [ptxdist] [PATCH 1/3] python3-shiboken: " Bastian Stender
2018-01-31 11:16 ` [ptxdist] [PATCH 2/3] host-python3-shiboken: " Bastian Stender
2018-01-31 11:16 ` Bastian Stender [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180131111645.19171-3-bst@pengutronix.de \
    --to=bst@pengutronix.de \
    --cc=ptxdist@pengutronix.de \
    --cc=robin@protonic.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox