# Copyright 2026 mva # Distributed under the terms of the Public Domain or CC0 License EAPI=8 PYTHON_COMPAT=(python3_{12..15} pypy3{,_11} ) PYTHON_REQ_USE="tk" inherit python-r1 wrapper desktop MY_PN="RNode_Halow_OTA_Flasher" DESCRIPTION="GUI updater for RNode-HaLow devices" HOMEPAGE="https://github.com/I-AM-ENGINEER/RNode_Halow_OTA_Flasher" SRC_URI="https://github.com/I-AM-ENGINEER/${MY_PN}/archive/${PV+v}${MY_SHA:-${PV}}.tar.gz -> ${P}.tar.gz" S="${WORKDIR}/${MY_PN}-${MY_SHA:-${PV}}" LICENSE="MIT" SLOT="0" KEYWORDS="~amd64 ~arm ~arm64 ~x86" IUSE="utils" RDEPEND=" ${PYTHON_DEPS} dev-python/tftpy net-analyzer/scapy sys-auth/polkit utils? ( net-libs/libpcap ) " DEPEND="${RDEPEND}" REQUIRED_USE="${PYTHON_REQUIRED_USE}" src_install() { # NOTE: package is not compatible with normal packaging, so goes to /opt. # TODO: But maybe I'll try to make it normal way someday insinto "/opt/${PN}" doins -r modules embedded_fw *py magick "${S}/rns.ico" "${T}/${PN}.png" || die doicon "${T}/${PN}.png" echo '#!/bin/sh exec pkexec --keep-cwd env \ DISPLAY=${DISPLAY} \ WAYLAND_DISPLAY=${WAYLAND_DISPLAY} \ XDG_SESSION_TYPE=${XDG_SESSION_TYPE} \ XAUTHORITY=${XAUTHORITY} \ SCAPY_USE_LIBPCAP=${SCAPY_USE_LIBPCAP} \ ${PYTHON:-python} ${*} ' > "${EPREFIX}/${D}/opt/${PN}/pke-py-wrapper" fperms +x "/opt/${PN}/pke-py-wrapper" make_wrapper "${PN}" "./pke-py-wrapper ./rnode-halow-flasher-gui.py" "/opt/${PN}" if use utils; then make_wrapper "rnode-halow-utils" \ "SCAPY_USE_LIBPCAP=yes ./pke-py-wrapper ./rnode-halow-utils.py" \ "/opt/${PN}" fi make_desktop_entry "${PN}" "${PN}" "${PN}" "Qt;KDE;Network" || die # TODO: # # python_foreach_impl python_newscript "${S}/rnode-halow-flasher-gui.py" "rnode-halow-flasher-gui" # python_foreach_impl python_newscript "${S}/rnode-halow-utils.py" "rnode-halow-utils" default }