From f295c24f7ceef41142fa7bb35a16bf8c0c688c93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Daniel=20Colmenares=20Oviedo?= Date: Thu, 7 Nov 2024 18:22:13 -0800 Subject: [PATCH] www/py-pywebview-gtk: New port: Build GUI for your Python program with JavaScript, HTML, and CSS (gtk) pywebview is a lightweight cross-platform wrapper around a webview component that allows to display HTML content in its own native GUI window. It gives you the power of web technologies in your desktop application, hiding the fact that the GUI is browser based. Available for Windows, macOS, Linux and Android. You can use pywebview either with a 3rd party web framework or on its own with a two way bridge between Python and DOM. WWW: https://github.com/r0x0r/pywebview PR: 282459 --- www/Makefile | 1 + www/py-pywebview-gtk/Makefile | 31 +++++++++++++++++++ www/py-pywebview-gtk/distinfo | 3 ++ .../files/patch-webview_guilib.py | 20 ++++++++++++ www/py-pywebview-gtk/pkg-descr | 7 +++++ www/py-pywebview-gtk/pkg-message | 7 +++++ 6 files changed, 69 insertions(+) create mode 100644 www/py-pywebview-gtk/Makefile create mode 100644 www/py-pywebview-gtk/distinfo create mode 100644 www/py-pywebview-gtk/files/patch-webview_guilib.py create mode 100644 www/py-pywebview-gtk/pkg-descr create mode 100644 www/py-pywebview-gtk/pkg-message diff --git a/www/Makefile b/www/Makefile index ea896914a4ae..7111ef5f0f3f 100644 --- a/www/Makefile +++ b/www/Makefile @@ -1799,6 +1799,7 @@ SUBDIR += py-python-dotenv SUBDIR += py-python-multipart SUBDIR += py-pyweblib + SUBDIR += py-pywebview-gtk SUBDIR += py-pywikibot SUBDIR += py-pywry SUBDIR += py-qh3 diff --git a/www/py-pywebview-gtk/Makefile b/www/py-pywebview-gtk/Makefile new file mode 100644 index 000000000000..7a6c7a258827 --- /dev/null +++ b/www/py-pywebview-gtk/Makefile @@ -0,0 +1,31 @@ +PORTNAME= pywebview +DISTVERSION= 5.3.2 +CATEGORIES= www python +MASTER_SITES= PYPI +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} +PKGNAMESUFFIX= -gtk + +MAINTAINER= DtxdF@disroot.org +COMMENT= Build GUI for your Python program with JavaScript, HTML, and CSS (gtk) +WWW= https://github.com/r0x0r/pywebview + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}setuptools-scm>=0:devel/py-setuptools-scm@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR} +LIB_DEPENDS= libwebkit2gtk-4.0.so:www/webkit2-gtk3 +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}bottle>=0:www/py-bottle@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}proxy_tools>=0:www/py-proxy_tools@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}typing-extensions>=0:devel/py-typing-extensions@${PY_FLAVOR} + +USES= gnome python +USE_GNOME+= gtk30:run pygobject3:run +USE_PYTHON= autoplist cryptography pep517 + +CONFLICTS_INSTALL= www/py-${PORTNAME}-qt + +NO_ARCH= yes + +.include diff --git a/www/py-pywebview-gtk/distinfo b/www/py-pywebview-gtk/distinfo new file mode 100644 index 000000000000..b30de28d91b1 --- /dev/null +++ b/www/py-pywebview-gtk/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1730049620 +SHA256 (pywebview-5.3.2.tar.gz) = 77b88a63e65e12913d269205e9c6d357666d4864826749c738bf432bd3ad23d9 +SIZE (pywebview-5.3.2.tar.gz) = 443072 diff --git a/www/py-pywebview-gtk/files/patch-webview_guilib.py b/www/py-pywebview-gtk/files/patch-webview_guilib.py new file mode 100644 index 000000000000..072cd2d04a60 --- /dev/null +++ b/www/py-pywebview-gtk/files/patch-webview_guilib.py @@ -0,0 +1,20 @@ +--- webview/guilib.py.orig 2024-10-27 17:42:14 UTC ++++ webview/guilib.py +@@ -114,7 +114,7 @@ def initialize(forced_gui: GUIType | None = None): + elif hasattr(sys, 'getandroidapilevel'): + try_import([import_android]) + +- elif platform.system() == 'Linux' or platform.system() == 'OpenBSD': ++ elif platform.system() == 'Linux' or platform.system() == 'OpenBSD' or platform.system() == 'FreeBSD': + if forced_gui == 'qt': + guis = [import_qt, import_gtk] + else: +@@ -135,7 +135,7 @@ def initialize(forced_gui: GUIType | None = None): + raise WebViewException('You must have pythonnet installed in order to use pywebview.') + else: + raise WebViewException( +- 'Unsupported platform. Only Windows, Linux, OS X, OpenBSD are supported.' ++ 'Unsupported platform. Only Windows, Linux, OS X, OpenBSD, FreeBSD are supported.' + ) + + guilib.setup_app() diff --git a/www/py-pywebview-gtk/pkg-descr b/www/py-pywebview-gtk/pkg-descr new file mode 100644 index 000000000000..dd8643f9f8b9 --- /dev/null +++ b/www/py-pywebview-gtk/pkg-descr @@ -0,0 +1,7 @@ +pywebview is a lightweight cross-platform wrapper around a webview +component that allows to display HTML content in its own native GUI +window. It gives you the power of web technologies in your desktop +application, hiding the fact that the GUI is browser based. Available +for Windows, macOS, Linux and Android. You can use pywebview either +with a 3rd party web framework or on its own with a two way bridge +between Python and DOM. diff --git a/www/py-pywebview-gtk/pkg-message b/www/py-pywebview-gtk/pkg-message new file mode 100644 index 000000000000..c0f1b02ce916 --- /dev/null +++ b/www/py-pywebview-gtk/pkg-message @@ -0,0 +1,7 @@ +[ +{ type: install + message: <