From b211df4eb3c4f629945a3312f7e7d0856bfa3e6f Mon Sep 17 00:00:00 2001 From: layman Date: Sun, 29 Oct 2017 21:21:40 +0100 Subject: [PATCH] New pyside:2 and shiboken:2 ebuilds --- dev-python/pyside/Manifest | 3 + dev-python/pyside/files/rpath.cmake | 10 ++ dev-python/pyside/metadata.xml | 33 +++++ dev-python/pyside/pyside-9999.ebuild | 155 +++++++++++++++++++++++ dev-python/shiboken/Manifest | 3 + dev-python/shiboken/files/rpath.cmake | 10 ++ dev-python/shiboken/metadata.xml | 11 ++ dev-python/shiboken/shiboken-9999.ebuild | 93 ++++++++++++++ 8 files changed, 318 insertions(+) create mode 100644 dev-python/pyside/Manifest create mode 100644 dev-python/pyside/files/rpath.cmake create mode 100644 dev-python/pyside/metadata.xml create mode 100644 dev-python/pyside/pyside-9999.ebuild create mode 100644 dev-python/shiboken/Manifest create mode 100644 dev-python/shiboken/files/rpath.cmake create mode 100644 dev-python/shiboken/metadata.xml create mode 100644 dev-python/shiboken/shiboken-9999.ebuild diff --git a/dev-python/pyside/Manifest b/dev-python/pyside/Manifest new file mode 100644 index 0000000..754ebbf --- /dev/null +++ b/dev-python/pyside/Manifest @@ -0,0 +1,3 @@ +AUX rpath.cmake 393 SHA256 b89f3698d321e30afef0f7c32be009d5d926f92ba310ad44b384cdbc1a6a104d SHA512 b9f2d3b34fd31a7e289e3aa1c96110f92bc66f45e5bfaf796f86d52eb832e960caca0e314b87248d0a41c13c95f04402607cbb5ad7d0b3238d5bab5580c3a65f WHIRLPOOL 79dbd32a58b6bf8a408f8fef3dd918c1946c89c32731b515984cb0ed8230c63cd724150db636523484d525c2ebad1f78217c7ccb6a294221aa8d2ca8dcce6a1d +EBUILD pyside-9999.ebuild 5334 SHA256 12caf866c4644c39c1024dd2293d4a8c22c51897fb9193c01e6fcb796357c05d SHA512 6f59077dbf291ef7cb1dae0ac6bb334ee49df59149c2f31ed1981a9a7e5dc9e9745dafb8445eedf50d00b7ff9f9afe5f939b28e1484194055dc27f3dea58c5fc WHIRLPOOL 6cce0ad6ad5e89732f11b90bf3567383ca1827a2924825b66020527615513d4b1fe966b52f2cd1c9f1d438e8c6fa969c55115f4d98f44c821093827a0e2d3cf1 +MISC metadata.xml 1625 SHA256 5086ff64f05e6079c9e73bbe2a880deafe25f8eab5b9e67363e5f5aa97bcd727 SHA512 4ebab1fd1948a764a2afa8eba682a627b6df3165d37bfa814c024486c97d4d7286f21fce1ac4f446d439acf9df65e1f010e86153c6afe23cd642bffadd480270 WHIRLPOOL b8cba8c976891a8163097076065eb3b9781e6351572e3267ba8455369deb713231688e07879dc9fd4e23d3e027b29c3bfc48fdc598f76d1d0620fdfb1bcc73ce diff --git a/dev-python/pyside/files/rpath.cmake b/dev-python/pyside/files/rpath.cmake new file mode 100644 index 0000000..b896c87 --- /dev/null +++ b/dev-python/pyside/files/rpath.cmake @@ -0,0 +1,10 @@ +# use, i.e. don't skip the full RPATH for the build tree +SET(CMAKE_SKIP_BUILD_RPATH FALSE) + +# when building, don't use the install RPATH already +# (but later on when installing) +SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) + +# add the automatically determined parts of the RPATH +# which point to directories outside the build tree to the install RPATH +SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) diff --git a/dev-python/pyside/metadata.xml b/dev-python/pyside/metadata.xml new file mode 100644 index 0000000..9c04985 --- /dev/null +++ b/dev-python/pyside/metadata.xml @@ -0,0 +1,33 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Build QtCharts module + Build QtConcurrent module + Build QtDataVisualization module + Build QtQml, QtQuick, and QtQuickWidgets modules + Build QtDesigner and QtUiTools modules + Build QtGui module + Build QtHelp module + Build QtMultimedia and QtMultimediaWidgets modules + Build QtNetwork module + Build QtOpenGL module + Build QtPrintSupport module + Build QtScript module + Build QtScriptTools module + Build QtSql module + Build QtSvg module + Build QtTest module + Build QtWebChannel module + Build QtWebEngine and QtWebEngineWidgets modules + Build QtWebKit and QtWebKitWidgets modules + Build QtWebSockets module + Build QtWidgets module + Build QtX11Extras module + Build QtXmlPatterns module + + diff --git a/dev-python/pyside/pyside-9999.ebuild b/dev-python/pyside/pyside-9999.ebuild new file mode 100644 index 0000000..6cf6512 --- /dev/null +++ b/dev-python/pyside/pyside-9999.ebuild @@ -0,0 +1,155 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) + +inherit cmake-utils python-r1 virtualx git-r3 toolchain-funcs + +DESCRIPTION="Python bindings for the Qt framework" +HOMEPAGE="https://wiki.qt.io/PySide2" +EGIT_REPO_URI="https://code.qt.io/pyside/pyside-setup.git" +EGIT_BRANCH="5.9" +EGIT_SUBMODULES=() + +# See "sources/pyside2/PySide2/licensecomment.txt" for licensing details. +LICENSE="|| ( GPL-2 GPL-3+ LGPL-3 )" +SLOT="2" +KEYWORDS="" + +# TODO: speech +IUSE="charts concurrent datavis declarative designer gui help multimedia + network opengl printsupport script scripttools sql svg test testlib + webchannel webengine webkit websockets widgets x11extras xmlpatterns" + +# The requirements below were extracted from the output of +# 'grep "set(.*_deps" "${S}"/PySide2/Qt*/CMakeLists.txt' +REQUIRED_USE=" + ${PYTHON_REQUIRED_USE} + charts? ( widgets ) + datavis? ( gui ) + declarative? ( gui network ) + designer? ( widgets ) + help? ( widgets ) + multimedia? ( gui network ) + opengl? ( widgets ) + printsupport? ( widgets ) + scripttools? ( gui script widgets ) + sql? ( widgets ) + svg? ( widgets ) + testlib? ( widgets ) + webengine? ( gui network webchannel widgets ) + webkit? ( gui network printsupport widgets ) + websockets? ( network ) + widgets? ( gui ) + x11extras? ( gui ) +" + +# Minimum version of Qt required, derived from the CMakeLists.txt line: +# find_package(Qt5 ${QT_PV} REQUIRED COMPONENTS Core) +QT_PV="5.9*:5" + +DEPEND=" + ${PYTHON_DEPS} + >=dev-python/shiboken-${PV}:${SLOT}[${PYTHON_USEDEP}] + =dev-qt/qtcore-${QT_PV} + =dev-qt/qtxml-${QT_PV} + charts? ( =dev-qt/qtcharts-${QT_PV} ) + concurrent? ( =dev-qt/qtconcurrent-${QT_PV} ) + datavis? ( =dev-qt/qtdatavis3d-${QT_PV} ) + declarative? ( =dev-qt/qtdeclarative-${QT_PV}[widgets?] ) + designer? ( =dev-qt/designer-${QT_PV} ) + gui? ( =dev-qt/qtgui-${QT_PV} ) + help? ( =dev-qt/qthelp-${QT_PV} ) + multimedia? ( =dev-qt/qtmultimedia-${QT_PV}[widgets?] ) + network? ( =dev-qt/qtnetwork-${QT_PV} ) + opengl? ( =dev-qt/qtopengl-${QT_PV} ) + printsupport? ( =dev-qt/qtprintsupport-${QT_PV} ) + script? ( =dev-qt/qtscript-${QT_PV} ) + sql? ( =dev-qt/qtsql-${QT_PV} ) + svg? ( =dev-qt/qtsvg-${QT_PV} ) + testlib? ( =dev-qt/qttest-${QT_PV} ) + webchannel? ( =dev-qt/qtwebchannel-${QT_PV} ) + webengine? ( =dev-qt/qtwebengine-${QT_PV}[widgets] ) + webkit? ( =dev-qt/qtwebkit-${QT_PV}[printsupport] ) + websockets? ( =dev-qt/qtwebsockets-${QT_PV} ) + widgets? ( =dev-qt/qtwidgets-${QT_PV} ) + x11extras? ( =dev-qt/qtx11extras-${QT_PV} ) + xmlpatterns? ( =dev-qt/qtxmlpatterns-${QT_PV} ) +" +RDEPEND="${DEPEND}" + +S=${WORKDIR}/${P}/sources/pyside2 + +src_prepare() { + if use prefix; then + cp "${FILESDIR}"/rpath.cmake . || die + sed -i -e '1iinclude(rpath.cmake)' CMakeLists.txt || die + fi + + cmake-utils_src_prepare +} + +src_configure() { + # See COLLECT_MODULE_IF_FOUND macros in CMakeLists.txt + local mycmakeargs=( + -DBUILD_TESTS=$(usex test) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Charts=$(usex !charts) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Concurrent=$(usex !concurrent) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5DataVisualization=$(usex !datavis) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Designer=$(usex !designer) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Gui=$(usex !gui) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Help=$(usex !help) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Multimedia=$(usex !multimedia) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5MultimediaWidgets=$(usex !multimedia yes $(usex !widgets)) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Network=$(usex !network) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5OpenGL=$(usex !opengl) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5PrintSupport=$(usex !printsupport) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Qml=$(usex !declarative) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Quick=$(usex !declarative) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5QuickWidgets=$(usex !declarative yes $(usex !widgets)) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Script=$(usex !script) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5ScriptTools=$(usex !scripttools) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Sql=$(usex !sql) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Svg=$(usex !svg) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Test=$(usex !testlib) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5UiTools=$(usex !designer) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5WebChannel=$(usex !webchannel) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5WebEngineWidgets=$(usex !webengine) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5WebKit=$(usex !webkit) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5WebKitWidgets=$(usex !webkit) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5WebSockets=$(usex !websockets) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Widgets=$(usex !widgets) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5X11Extras=$(usex !x11extras) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5XmlPatterns=$(usex !xmlpatterns) + ) + + configuration() { + local mycmakeargs=( + "${mycmakeargs[@]}" + -DPYTHON_EXECUTABLE="${PYTHON}" + ) + cmake-utils_src_configure + } + python_foreach_impl configuration +} + +src_compile() { + CXXFLAGS="${CXXFLAGS} -I/usr/lib/gcc/"${CTARGET}"/$(gcc-fullversion)/include" + echo "CXXFLAGS: ${CXXFLAGS}" + python_foreach_impl cmake-utils_src_compile +} + +src_test() { + local -x PYTHONDONTWRITEBYTECODE + python_foreach_impl virtx cmake-utils_src_test +} + +src_install() { + installation() { + cmake-utils_src_install + mv "${ED}"usr/$(get_libdir)/pkgconfig/${PN}2{,-${EPYTHON}}.pc || die + } + python_foreach_impl installation +} diff --git a/dev-python/shiboken/Manifest b/dev-python/shiboken/Manifest new file mode 100644 index 0000000..363ff16 --- /dev/null +++ b/dev-python/shiboken/Manifest @@ -0,0 +1,3 @@ +AUX rpath.cmake 393 SHA256 b89f3698d321e30afef0f7c32be009d5d926f92ba310ad44b384cdbc1a6a104d SHA512 b9f2d3b34fd31a7e289e3aa1c96110f92bc66f45e5bfaf796f86d52eb832e960caca0e314b87248d0a41c13c95f04402607cbb5ad7d0b3238d5bab5580c3a65f WHIRLPOOL 79dbd32a58b6bf8a408f8fef3dd918c1946c89c32731b515984cb0ed8230c63cd724150db636523484d525c2ebad1f78217c7ccb6a294221aa8d2ca8dcce6a1d +EBUILD shiboken-9999.ebuild 2336 SHA256 5fef6b564d82401df51b978733f4fe765b057a70ea72e0fc48da692d92bb5a95 SHA512 94d6b4eddbc7da46ead7e0fa39b7b45389a28803834dc08e8acee88974616064bcf7af3b5036174f3c339cfc19d4bc43f806dbdb2ff8bab6f80da34af4e90e3f WHIRLPOOL 78463c632c598c8dfa94e9b114f31e475efdd5b5b74ca49a40797990c94566014872831e75fce0a3611d482e85ffab20a12d249cc67393c2769253971280e5af +MISC metadata.xml 326 SHA256 128b953c1da35dd210f8368ffb75d00820e5ae11e51f84ea58216861d6f7c90b SHA512 d65136c0fcaf336df2f18df675392789b54f9569f7b2027835ed218500c53733db1e21c5121fbceb5cc93cb1442aa8faa4e324142e3ca9a73c954592d495a229 WHIRLPOOL 30423cb87a99b247f71a740b41fa12540186bb46f6affa614b00643d17cc502c40724eff746ff7d00233d072040b0ec4b5f775e5e5ac2f0d7d21fb921121da1e diff --git a/dev-python/shiboken/files/rpath.cmake b/dev-python/shiboken/files/rpath.cmake new file mode 100644 index 0000000..b896c87 --- /dev/null +++ b/dev-python/shiboken/files/rpath.cmake @@ -0,0 +1,10 @@ +# use, i.e. don't skip the full RPATH for the build tree +SET(CMAKE_SKIP_BUILD_RPATH FALSE) + +# when building, don't use the install RPATH already +# (but later on when installing) +SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) + +# add the automatically determined parts of the RPATH +# which point to directories outside the build tree to the install RPATH +SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) diff --git a/dev-python/shiboken/metadata.xml b/dev-python/shiboken/metadata.xml new file mode 100644 index 0000000..d199c54 --- /dev/null +++ b/dev-python/shiboken/metadata.xml @@ -0,0 +1,11 @@ + + + + + qt@gentoo.org + Gentoo Qt Project + + + Enable NumPy-based 2D array support + + diff --git a/dev-python/shiboken/shiboken-9999.ebuild b/dev-python/shiboken/shiboken-9999.ebuild new file mode 100644 index 0000000..37b58a1 --- /dev/null +++ b/dev-python/shiboken/shiboken-9999.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) + +inherit cmake-utils llvm python-r1 git-r3 + +DESCRIPTION="Tool for creating Python bindings for C++ libraries" +HOMEPAGE="https://wiki.qt.io/PySide2" +EGIT_REPO_URI="https://code.qt.io/pyside/pyside-setup.git" +EGIT_BRANCH="5.9" +EGIT_SUBMODULES=() + +# The "sources/shiboken2/libshiboken" directory is triple-licensed under the GPL +# v2, v3+, and LGPL v3. All remaining files are licensed under the GPL v3 with +# version 1.0 of a Qt-specific exception enabling shiboken2 output to be +# arbitrarily relicensed. (TODO) +LICENSE="|| ( GPL-2 GPL-3+ LGPL-3 ) GPL-3" +SLOT="2" +KEYWORDS="" +IUSE="numpy test" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +# Minimum version of Qt required. +QT_PV="5.9*:5" + +#FIXME: Determine the maximum supported version of clang. +#FIXME: Determine exactly which versions of numpy are supported. +DEPEND=" + ${PYTHON_DEPS} + dev-libs/libxml2 + dev-libs/libxslt + =dev-qt/qtcore-${QT_PV} + =dev-qt/qtxml-${QT_PV} + =dev-qt/qtxmlpatterns-${QT_PV} + sys-devel/clang:5 + numpy? ( dev-python/numpy ) +" +RDEPEND="${DEPEND}" + +S=${WORKDIR}/${P}/sources/shiboken2 + +DOCS=( AUTHORS ) + +# Ensure the path returned by get_llvm_prefix() contains clang as well. +llvm_check_deps() { + has_version "sys-devel/clang:${LLVM_SLOT}" +} + +src_prepare() { + #FIXME: File an upstream issue requesting a sane way to disable NumPy support. + if ! use numpy; then + sed -i -e '/print(os\.path\.realpath(numpy))/d' \ + libshiboken/CMakeLists.txt || die + fi + + if use prefix; then + cp "${FILESDIR}"/rpath.cmake . || die + sed -i -e '1iinclude(rpath.cmake)' CMakeLists.txt || die + fi + + cmake-utils_src_prepare +} + +src_configure() { + configuration() { + local mycmakeargs=( + -DBUILD_TESTS=$(usex test) + -DPYTHON_EXECUTABLE="${PYTHON}" + ) + # CMakeLists.txt expects LLVM_INSTALL_DIR as an environment variable. + LLVM_INSTALL_DIR="$(get_llvm_prefix)" cmake-utils_src_configure + } + python_foreach_impl configuration +} + +src_compile() { + python_foreach_impl cmake-utils_src_compile +} + +src_test() { + python_foreach_impl cmake-utils_src_test +} + +src_install() { + installation() { + cmake-utils_src_install + mv "${ED}"usr/$(get_libdir)/pkgconfig/${PN}2{,-${EPYTHON}}.pc || die + } + python_foreach_impl installation +}