diff --git a/app-misc/solaar/Manifest b/app-misc/solaar/Manifest index bc3dc3b9a6e44..3328693fff57b 100644 --- a/app-misc/solaar/Manifest +++ b/app-misc/solaar/Manifest @@ -2,3 +2,4 @@ DIST solaar-1.1.14.tar.gz 1790657 BLAKE2B bc2d2d42e4af02f72ecf9fb25152605582ada7 DIST solaar-1.1.16.tar.gz 1813937 BLAKE2B dc53ba62b77cebb3fbf6d51c8ef0e07272506ffc86dfd2120740ce1180712160de52fbb9eb58c14f7524c874320d211bbb7500421d575909d500deb373470e81 SHA512 e6a83e046e36801e30c15819815bb5566028a527b1c54d5d5f036a677a12bca13781cc1d622dc400c6cc3b1a3303aa492f7ef8200937a3ee4d0abe0fe3344ec2 DIST solaar-1.1.18.tar.gz 1837716 BLAKE2B 0b85f1a17f020eeaae2a4533879c20ea9df013f849f3eb7e518267b9218478aa97cc3490f2420003b167443f76ecda54743f80f87973072025880a2ded0ac664 SHA512 766468ed6b23597aee8c1214e8094483fa25bc2a38ff58bb95f7a14ebd3eb4d9976f07b9006d285b88d90ce704c72ef649251f06c913e0483baa12dadd71f6d9 DIST solaar-1.1.19.tar.gz 1856285 BLAKE2B 6d7a2d99502b2695a80d8418f6dbffe8cec328fc0387710b6a582271107d2d6346a00fd3936688d46b1f7a9da1e7184efb8c4eec3714301ff9d1fece97a4b6a1 SHA512 5127703f1539671a254cfbaef2408d5e2d446ffa2549689f15773ee090741e55c0c832a7ac520a7a661004f243f9dda38ae5fba5ff7a3651d68d0990cdeb8f76 +DIST solaar-1.1.20.tar.gz 2061247 BLAKE2B 11e100cbd2efab0c50529506ac26d4dc8f43038abf57ffb05f406ff8ca9b2e22dc40d560ac56b8135214657717fcb78ff521053cd60e3683248d52d27c1d43d2 SHA512 40d02868ba946a1e855c0ee61aaf57d176db364dd963f91e8a87abb91f511df725acfb3403046e84a5824de950ad2c1f022c52e43f03d7e42df60f506d3d371a diff --git a/app-misc/solaar/solaar-1.1.20.ebuild b/app-misc/solaar/solaar-1.1.20.ebuild new file mode 100644 index 0000000000000..774100c9e64f8 --- /dev/null +++ b/app-misc/solaar/solaar-1.1.20.ebuild @@ -0,0 +1,113 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{10..15} ) + +inherit linux-info udev xdg distutils-r1 + +DESCRIPTION="Linux Device Manager for Logitech Unifying Receivers and Paired Devices" +HOMEPAGE="https://pwr-solaar.github.io/Solaar/" +if [[ ${PV} =~ 9999* ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/pwr-Solaar/Solaar" +else + SRC_URI="https://github.com/pwr-Solaar/Solaar/archive/${PV/_rc/rc}.tar.gz -> ${P/_rc/rc}.tar.gz" + KEYWORDS="~amd64 ~arm ~arm64 ~x86" + S="${WORKDIR}"/Solaar-${PV/_rc/rc} +fi + +LICENSE="GPL-2" +SLOT="0" +IUSE="appindicator dbus doc libnotify test wayland" +RESTRICT="!test? ( test )" + +RDEPEND=" + acct-group/plugdev + dev-python/evdev[${PYTHON_USEDEP}] + dev-python/psutil[${PYTHON_USEDEP}] + dev-python/pygobject:3[${PYTHON_USEDEP}] + dev-python/python-xlib[${PYTHON_USEDEP}] + >=dev-python/pyudev-0.13[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + dev-python/typing-extensions[${PYTHON_USEDEP}] + x11-libs/gtk+:3[introspection] + appindicator? ( dev-libs/libayatana-appindicator ) + libnotify? ( x11-libs/libnotify[introspection] ) + dbus? ( dev-python/dbus-python ) +" +BDEPEND=" + test? ( + dev-python/pytest-mock[${PYTHON_USEDEP}] + ) +" +# libayatana-appindicator & libnotify are entirely optional and detected at runtime + +CONFIG_CHECK="~HID_LOGITECH_DJ ~HIDRAW" + +distutils_enable_tests pytest + +python_prepare_all() { + # don't autostart (bug #494608) + sed -r \ + -e '/yield autostart_path/d' \ + -e '/yield.*udev.*rules.d/{s,/etc,/lib,g}' \ + -i setup.py || die + + # grant plugdev group rw access + sed 's/#MODE=/MODE=/' \ + -i rules.d/42-logitech-unify-permissions.rules || die + # and the same for wayland (bug #933418) + sed 's/#MODE=/MODE=/' \ + -i rules.d-uinput/42-logitech-unify-permissions.rules || die + + distutils-r1_python_prepare_all +} + +python_install_all() { + distutils-r1_python_install_all + + dodoc docs/devices.md CHANGELOG.md + if use doc; then + dodoc -r docs/* + else + newdoc docs/index.md README.md + fi + + # bug #933418 + if use wayland; then + udev_dorules "${S}"/rules.d-uinput/42-logitech-unify-permissions.rules + else + udev_dorules "${S}"/rules.d/42-logitech-unify-permissions.rules + fi +} + +python_test() { + local -a EPYTEST_PLUGINS=( + pytest-mock + ) + local -a EPYTEST_DESELECT=( + # don't like sandbox + tests/logitech_receiver/test_desktop_notifications.py::test_notifications_available + tests/logitech_receiver/test_desktop_notifications.py::test_init + tests/logitech_receiver/test_desktop_notifications.py::test_show + tests/solaar/ui/test_desktop_notifications.py::test_notifications_available + tests/solaar/ui/test_desktop_notifications.py::test_init + tests/solaar/ui/test_desktop_notifications.py::test_show + tests/solaar/ui/test_desktop_notifications.py::test_alert + ) + + distutils-r1_python_test +} + +pkg_postinst() { + udev_reload + xdg_pkg_postinst +} + +pkg_postrm() { + udev_reload + xdg_pkg_postrm +}