summaryrefslogtreecommitdiff
path: root/dev-go/qt
diff options
context:
space:
mode:
authorMarek Szuba <marecki@gentoo.org>2021-01-20 12:01:56 +0000
committerMarek Szuba <marecki@gentoo.org>2021-01-20 12:10:47 +0000
commit61cde53256edaec280c5e2ffa2af93a655bf6e31 (patch)
tree224a0742659bfca33cbee522737f1f0f22af364a /dev-go/qt
parentvirtualbox packages: Bump to version 6.1.18 (diff)
downloadgentoo-61cde53256edaec280c5e2ffa2af93a655bf6e31.tar.gz
gentoo-61cde53256edaec280c5e2ffa2af93a655bf6e31.tar.bz2
gentoo-61cde53256edaec280c5e2ffa2af93a655bf6e31.zip
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 <marecki@gentoo.org>
Diffstat (limited to 'dev-go/qt')
-rw-r--r--dev-go/qt/Manifest18
-rw-r--r--dev-go/qt/files/qt-0_pre20200904-disable_modules.patch75
-rw-r--r--dev-go/qt/metadata.xml8
-rw-r--r--dev-go/qt/qt-0_pre20200904.ebuild123
4 files changed, 224 insertions, 0 deletions
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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>marecki@gentoo.org</email>
+ <name>Marek Szuba</name>
+ </maintainer>
+</pkgmetadata>
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/*
+}