From 61cde53256edaec280c5e2ffa2af93a655bf6e31 Mon Sep 17 00:00:00 2001 From: Marek Szuba Date: Wed, 20 Jan 2021 12:01:56 +0000 Subject: dev-go/qt: New package Qt5 Go bindings, Go package name 'therecipe/qt'. Dependency of mail-mta/protonmail-bridge[gui]. Packaged for Gentoo instead of using vendoring because it takes a long time to build, uses golang-vcs-snapshot.eclass for now because it seems to be incompatible with go-module.eclass - it keeps failing on vendored dependencies having already been unzipped. Builds fine and most tests pass, that said I haven't done any runtime testing yet and it will likely be very sensitive to dev-qt/* upgrades. Use at own risk for now. Signed-off-by: Marek Szuba --- dev-go/qt/Manifest | 18 +++ .../files/qt-0_pre20200904-disable_modules.patch | 75 +++++++++++++ dev-go/qt/metadata.xml | 8 ++ dev-go/qt/qt-0_pre20200904.ebuild | 123 +++++++++++++++++++++ 4 files changed, 224 insertions(+) create mode 100644 dev-go/qt/Manifest create mode 100644 dev-go/qt/files/qt-0_pre20200904-disable_modules.patch create mode 100644 dev-go/qt/metadata.xml create mode 100644 dev-go/qt/qt-0_pre20200904.ebuild (limited to 'dev-go/qt') diff --git a/dev-go/qt/Manifest b/dev-go/qt/Manifest new file mode 100644 index 000000000000..7b969cf03f80 --- /dev/null +++ b/dev-go/qt/Manifest @@ -0,0 +1,18 @@ +DIST github.com-davecgh-go-spew-v1.1.0.tar.gz 42337 BLAKE2B 691ee430beca602ea686aa065b23af5e00356e866cbca2b014bf0c8f4cc965a2318e6a39232772098e250d61d5bd6707afb769fdf4223c81a8249cad267d1971 SHA512 20c9f0550a2d5030265dde8ad3ed009ce5c6490d010f184ad3f656b8fe5eb6e5c6abc9594408240aa731c0977afd9739d293490e6164cc0ce156652611b05b39 +DIST github.com-davecgh-go-spew-v1.1.1.tar.gz 42152 BLAKE2B 3c6689b3d2861fbc4a70b8ab25b790d132865e4ec34062fd80005fc7d62c1b4cd77df534c27a2d8b1c42c63f8a551fc7d98e3649bf902d176fd965e933faf6be SHA512 b00621d2f11c4cc858e69fda3e6975f910deb375c4f2305a45b230e2d9be73f183db5d2ce4f5e30a14b27e11e79380233ee68fceeef0d855c64fca966e68111e +DIST github.com-golang-crypto-df01cb2cc480.tar.gz 1678929 BLAKE2B 1f803bbce58260aa5d57d63841999b33cfe27866bf762dfb10510b1f7e9448afa83afc7861786dd83416cfce3ed820cff8c6be5ec15c1cce6caea9656014891a SHA512 d2ccc27b8a239a8bd48af49763d6a2123d95c2db6ae0d818802c5d70c66d7ec39e4294e282ed9dc3874e48126bc26f4997dc85626cd9a51739a1854c37ac58b5 +DIST github.com-golang-net-afa5a82059c6.tar.gz 978660 BLAKE2B 35d7f0a63ebb3f00c77236ff886c485caf792cbfda70378814e3250e500df7192aadd2258a4c3a3151956f3ea2f7695cf5fb7225fdbe5ed2564b18130a70f066 SHA512 4e0a9aa0e1cc612b9f662a5cd1106e1daba65cadef345b3221b9210ed5251727f2cce3126ac7cbaf9105b2929e04a3938da2402a49e767d5b00f8ccac7826e2a +DIST github.com-golang-sys-e8e3143a4f4a.tar.gz 1353192 BLAKE2B f6506d74ca44953839468a81ce40c4b3a686f5361819cd9218858d61235d44bc8c4fa9d62f2873aa39fc15c6946b2fc097f8d41d88a66be9684e30114a5debc0 SHA512 2cd3f41a05e749c868f4cf81aba68876a23ac89e73f91e19bb084e40aac6c5df8d900502362a43f0832740a89ae8f0003df09d8b933edb5fb6da5e8092c6b75e +DIST github.com-golang-text-f4905fbd45b6.tar.gz 6595858 BLAKE2B 8209515bae60d8b465881678fb2bd65fa84683001c2d97ea872f33f3a12ccd6fcc063c6a2e085f9e0e10d702f6e0ad327524b840b1ace749244d48e95495db95 SHA512 fba082d8f80250fa058cd144bd9eabd3ea3ef0d3d53d231e288e9cc218b2e6d95e5e170381f01a1c5c0220cdd406dbe4e21a5aaceda8e3fd54f28e3e086603b1 +DIST github.com-golang-tools-aa740d480789.tar.gz 2081304 BLAKE2B 735b69e0a0ff9db74e1d0ce528a29141f4adf5f15433e578e043f2fcabc309425248f956a753efbda864c988729fafce66c54657492f6e7a117d8ea673ae2b55 SHA512 bd83fa44078ee3d9d889d8e3d9ac92ee1165fef6cb999f33b8cbd8e43ef04404d2aaa9d0989a23df621f74325833f85e29e876b72faed26116acf792be47a00d +DIST github.com-gopherjs-gopherjs-bd77b112433e.tar.gz 221699 BLAKE2B 99714586d93fd3d85c6baf65eef7411a9e8e70d3f57a06381c165f2b013c97a1cdd2d7b733faec79b7f3c29f3ee493c6b7f73df2bd067a452e58a60c3db2ea5d SHA512 d468dbac7a993322d4602689d0407af25c44691853d3845b2edbd291200fe74babc3e7a8b811390f6e2a3ce4ca6a8bafa668be20ffc6322b64ec95e6a2416cc3 +DIST github.com-konsorten-go-windows-terminal-sequences-v1.0.1.tar.gz 1909 BLAKE2B edc8dc8f9a9c27d724b98614c2d937f5fed94977c1590f542cb1c8724478a63bba61cd6569fc7daed1e870bc59fc5ca0f5acd501f58e7c93e5c69517c9ca80ac SHA512 8c781a4c17df20623b8ab5af9757fedf6fae9362c10f195eaaeb821a0520ab9407de30607fb085a38a04915eb180bb8d5c4940f91db4fca7ce1cf69a8276bbe7 +DIST github.com-konsorten-go-windows-terminal-sequences-v1.0.2.tar.gz 1987 BLAKE2B 7dfa1ce4e84b4a6c49676b58d76071b0e82c0cd65cb066ea82bb424740278a34efa53f76d165e3c93a76724115700b7265bb9f73b9ae1907e71fcd97c29663c5 SHA512 25d32f73ca5c7f6fe12037d4ff406264093a36508100fb647864dbe465fc81a7f534beaf4fd9f8b17d299bb1e992d0d37511e92b7e39c8d4ba4176877a20225a +DIST github.com-pmezard-go-difflib-v1.0.0.tar.gz 11398 BLAKE2B 8f317c172d615e07c92337dd814c07c772347de3fe81b952bbc4fd1a643d495cfb6ec5b694a531f2745e1601eca2d4977ea2c1202ac7fb1e3cdba31e90c4ea34 SHA512 283927de73a3d0405bbca8b5b0c24137dde2f1063539c6ce4437331ed99e732175b2a384e5a70cb9a87cc74da94f5347e2a9785fbf3e46ec2431dc5071c3f045 +DIST github.com-sirupsen-logrus-v1.4.1.tar.gz 40811 BLAKE2B cde067ff74800153f555e3f9f00021d4cd9d11adadfa6df6b3da0cf86cc7a8cf7137e5d8e12adc7fdfd45022e9dc0c309a6e23ec4b50d9b9cfc37d73038e21b9 SHA512 7e8e215abb0a7909602378caf8ad746b73f3097b56d2ffd81fc7fb4c9a6b68dd8be25ad452cb19b02d7129e0abbb1e29aca51d91a9421ecdec711abcb97da268 +DIST github.com-stretchr-objx-v0.1.0.tar.gz 109451 BLAKE2B 4283e5260eac80654b310c02660973644f2f8a4520e8ff4f58d34c0be34938ab7da2a56a807d0661f66c322555277e10f43a2d4cefdc282fcc54fe97a9ebbff4 SHA512 206d0c5cb6b4879d3eafeacfae6d0bd9e6f2372eb3e48d62fc57e4f6b0680253b70326ee1d68d55024a1b8c6ffa8a0007eaff91dd3a75ff7096ac8b885889bf9 +DIST github.com-stretchr-objx-v0.1.1.tar.gz 75768 BLAKE2B a394114d3d4d7d1a7fabd3f4b4e0a1722df8f1332685d1fdfff9662a7077ac43f5d6e5cd5f360fc47a9ca0852a81574f050e41a089ef40052c14311dc4fc3e90 SHA512 1db9240a7f4c1f34788418abe60bf566823d4881f5224eae9ba6cbf31e65177ef9f5f94b42fca2151bd0111a69b42f1fa6d5ec317955a32463199d4bd6d86b75 +DIST github.com-stretchr-objx-v0.2.0.tar.gz 79981 BLAKE2B 142269aa50602af8a00dd5f9acb0c85d3287c3d1fbfd953675c6023e597dad88462560ad02d3d20671fa1f3c89fdf66e46a94015e5c492287fb4973beb84d2c8 SHA512 d2b9b907c33b52e6ae5ef58280b3e8b2aa03bb7fe055275850cbe95ed4c62663867abe6ad7a5790ee10ecfab9c0cc7cbcefea1d3971454c02fb198c792402b36 +DIST github.com-stretchr-testify-v1.2.2.tar.gz 101698 BLAKE2B 8280ff92a5005f9862ebfb80c6904b61105315189b6f56f087ba891dba47eaa5789a055e63c602b355c6c0c6ad68eefe3c26de9f1fac7a6dc44f9715bbbd86f8 SHA512 d925fe6c118f212868967cf1985aa70ca460bf4e3486d58be689e05ff6368485b42cc9a4ae1d5ce40eed38be45678b11d399a26000ce35d6e5ad218fc7d022ed +DIST github.com-stretchr-testify-v1.3.0.tar.gz 102859 BLAKE2B 0b590484005372f6c1a8c591c6439d1072c53299db1508495c02712b187623552196421321c5e64aedc0fba6acdbd68db53ddbc8e5d6a78fd783e6f7344783b1 SHA512 29dc8389f0efba9caeb2d2d5704878c93f3b00c21e6ad2712bac52bbc09c460d9028aecbfd5430f200a15fd0e8c8d0157e084b72463d82ceecc5459d93d4d896 +DIST qt-0_pre20200904.tar.gz 125636107 BLAKE2B 1b9878e5f48a46b0d53610741c58356197c00897f1ea815376638008b6931a8f5a608b52cc45df40c4274e78edc8ebafba568a65740c4851c980935ef3986d77 SHA512 0e5ffa3662e92331dc0438bda09127eed186180570046c919ff5a33ed9ad3124a51279bbbe08fafe685f3fd5b0c61dc94ae217e2699a8ebcb24f4cd796c85b1a diff --git a/dev-go/qt/files/qt-0_pre20200904-disable_modules.patch b/dev-go/qt/files/qt-0_pre20200904-disable_modules.patch new file mode 100644 index 000000000000..79ebd7ec1ddd --- /dev/null +++ b/dev-go/qt/files/qt-0_pre20200904-disable_modules.patch @@ -0,0 +1,75 @@ +We cannot generate bindings for Nfc or RemoteObjects because they +haven't been packaged for Gentoo yet. On the other hand, the modules: +Script, ScriptTools and XmlPatterns have long since been deprecated. + +--- a/src/github.com/therecipe/qt/internal/binding/parser/helper.go ++++ b/src/github.com/therecipe/qt/internal/binding/parser/helper.go +@@ -191,10 +191,8 @@ + "AndroidExtras": {"Core"}, + "Gui": {"Widgets", "Core"}, //Widgets + "Network": {"Core"}, +- "Xml": {"XmlPatterns", "Core"}, //XmlPatterns ++ "Xml": {"Core"}, //XmlPatterns + "DBus": {"Core"}, +- "Nfc": {"Core"}, +- "Script": {"Core"}, + "Sensors": {"Core"}, + "Positioning": {"Core"}, + "Widgets": {"Gui", "Core"}, +@@ -202,7 +200,6 @@ + "MacExtras": {"Gui", "Core"}, + "Qml": {"Network", "Core"}, + "WebSockets": {"Network", "Core"}, +- "XmlPatterns": {"Network", "Core"}, + "Bluetooth": {"Core"}, + "WebChannel": {"Network", "Qml", "Core"}, //Network (needed for static linking ios) + "Svg": {"Widgets", "Gui", "Core"}, +@@ -210,7 +207,6 @@ + "Quick": {"QuickWidgets", "Widgets", "Network", "Qml", "Gui", "Core"}, //QuickWidgets, Widgets, Network (needed for static linking ios) + "Help": {"Sql", "Network", "Widgets", "Gui", "Core"}, //Sql + CLucene + Network (needed for static linking ios) + "Location": {"Positioning", "Quick", "Gui", "Core"}, +- "ScriptTools": {"Script", "Widgets", "Core"}, //Script, Widgets + "UiTools": {"Widgets", "Gui", "Core"}, + "X11Extras": {"Gui", "Core"}, + "WinExtras": {"Widgets", "Gui", "Core"}, +@@ -237,7 +233,6 @@ + "WebView": {"Core"}, + + "NetworkAuth": {"Network", "Gui", "Core"}, +- "RemoteObjects": {"Network", "Core"}, + + "WebKit": {"WebKitWidgets", "Multimedia", "Positioning", "Widgets", "Sql", "Network", "Gui", "Sensors", "Core"}, + +@@ -389,8 +384,6 @@ + "Network", + "Xml", + "DBus", +- "Nfc", +- "Script", //depreached (planned) in 5.6 + "Sensors", + "Positioning", + "Widgets", +@@ -398,7 +391,6 @@ + "MacExtras", + "Qml", + "WebSockets", +- "XmlPatterns", + "Bluetooth", + "WebChannel", + "Svg", +@@ -406,7 +398,6 @@ + "Quick", + "Help", + "Location", +- "ScriptTools", //depreached (planned) in 5.6 + "UiTools", + //"X11Extras", //TODO: + "WinExtras", +@@ -433,7 +424,6 @@ + "WebView", + + //"NetworkAuth", //TODO: +- "RemoteObjects", + + "WebKit", + diff --git a/dev-go/qt/metadata.xml b/dev-go/qt/metadata.xml new file mode 100644 index 000000000000..3e5026ee3754 --- /dev/null +++ b/dev-go/qt/metadata.xml @@ -0,0 +1,8 @@ + + + + + marecki@gentoo.org + Marek Szuba + + diff --git a/dev-go/qt/qt-0_pre20200904.ebuild b/dev-go/qt/qt-0_pre20200904.ebuild new file mode 100644 index 000000000000..d219474554db --- /dev/null +++ b/dev-go/qt/qt-0_pre20200904.ebuild @@ -0,0 +1,123 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +EGO_PN="github.com/therecipe/qt" +EGO_VENDOR=( + "github.com/davecgh/go-spew v1.1.0" + "github.com/davecgh/go-spew v1.1.1" + "github.com/gopherjs/gopherjs bd77b112433e" + "github.com/konsorten/go-windows-terminal-sequences v1.0.1" + "github.com/konsorten/go-windows-terminal-sequences v1.0.2" + "github.com/pmezard/go-difflib v1.0.0" + "github.com/sirupsen/logrus v1.4.1" + "github.com/stretchr/objx v0.1.0" + "github.com/stretchr/objx v0.1.1" + "github.com/stretchr/objx v0.2.0" + "github.com/stretchr/testify v1.2.2" + "github.com/stretchr/testify v1.3.0" + "golang.org/x/crypto df01cb2cc480 github.com/golang/crypto" + "golang.org/x/net afa5a82059c6 github.com/golang/net" + "golang.org/x/sys e8e3143a4f4a github.com/golang/sys" + "golang.org/x/sys e8e3143a4f4a github.com/golang/sys" + "golang.org/x/text f4905fbd45b6 github.com/golang/text" + "golang.org/x/tools aa740d480789 github.com/golang/tools" +) + +inherit golang-vcs-snapshot xdg-utils + +EGIT_COMMIT="c0c124a5770d357908f16fa57e0aa0ec6ccd3f91" + +DESCRIPTION="Qt5 Go bindings" +HOMEPAGE="https://github.com/therecipe/qt/" +SRC_URI="https://github.com/therecipe/${PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz + ${EGO_VENDOR_URI}" + +LICENSE="LGPL-3+" +SLOT="0" +KEYWORDS="~amd64" + +# As of 2021-01-20 the test 'widgets/textedit' calls methods which do not exist, at least in qt-5.15. +# TODO: figure out how to disable this test. +RESTRICT="test" + +# We need qt-docs[html] because binding generation depends on core .index files +# installed by this USE flag. +RDEPEND="dev-qt/designer:5= + dev-qt/qt-docs:5=[html] + dev-qt/qtbluetooth:5= + dev-qt/qtcharts:5= + dev-qt/qtdatavis3d:5= + dev-qt/qtdbus:5= + dev-qt/qtgamepad:5= + dev-qt/qthelp:5= + dev-qt/qtlocation:5= + dev-qt/qtmultimedia:5=[widgets] + dev-qt/qtpositioning:5= + dev-qt/qtquickcontrols2:5= + dev-qt/qtscxml:5= + dev-qt/qtsensors:5= + dev-qt/qtserialbus:5= + dev-qt/qtserialport:5= + dev-qt/qtspeech:5= + dev-qt/qtsql:5= + dev-qt/qtsvg:5= + dev-qt/qtvirtualkeyboard:5= + dev-qt/qtwebchannel:5= + dev-qt/qtwebengine:5= + dev-qt/qtwebsockets:5= + dev-qt/qtwebview:5= +" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}"/${PN}-0_pre20200904-disable_modules.patch +) + +src_prepare() { + xdg_environment_reset + default +} + +src_configure() { + export GOPATH="${WORKDIR}"/${P} + export QT_PKG_CONFIG=true + export QT_DOC_DIR="${EPREFIX}/usr/share/qt5-doc" +} + +src_compile() { + # Not a typo, all that gets installed here is the bootstrap for generating + # and building actual bindings + go install -v -work -x -tags=no_env ${EGO_PN}/cmd/... || die + + # Conversely, this step DOES install the actual bindings but there seems + # to be no way of only building them. + # Note: passing -test actually DISABLES running tests + "${GOPATH}"/bin/qtsetup -failfast -test=false || die +} + +src_test() { + "${GOPATH}"/bin/qtsetup -failfast test || die +} + +src_install() { + # Just in case + unset GOPATH + + rm -rf src/${EGO_PN}/vendor + rm -rf src/${EGO_PN}/.git* + find src/${EGO_PN}/internal/examples -type d -name deploy -exec rm -rf {} \; + find src/${EGO_PN} -name '*.c' -exec rm -f {} \; + find src/${EGO_PN} -name '*.h' -exec rm -f {} \; + + insinto $(dirname "$(get_golibdir)/src/${EGO_PN%/*}") + doins -r src/${EGO_PN%/*} + + insinto $(dirname "$(get_golibdir)/pkg/$(go env GOOS)_$(go env GOARCH)/${EGO_PN%/*}") + doins -r pkg/$(go env GOOS)_$(go env GOARCH)/${EGO_PN%/*} + + # Not sure if we actually need these - but just in case + exeinto "$(get_golibdir)"/bin + doexe bin/* +} -- cgit v1.2.3-65-gdbad