aiogithubapi/aiogithubapi requires dev-python/sigstore #3358

Closed
opened 2024-05-22 17:50:37 +02:00 by zentoo · 5 comments

The lack of sigstore dependency broke HACS usage and installation and most of us use HACS to add custom integration.

From https://github.com/ludeeus/aiogithubapi/blob/main/pyproject.toml sigstore is optional but an homeassistant venv installation install it as a dependency:

aiogithubapi==23.11.0
├── aiohttp [required: >=3.8,<4.0, installed: 3.9.5]
│   ├── aiosignal [required: >=1.1.2, installed: 1.3.1]
│   │   └── frozenlist [required: >=1.1.0, installed: 1.4.1]
│   ├── attrs [required: >=17.3.0, installed: 23.2.0]
│   ├── frozenlist [required: >=1.1.1, installed: 1.4.1]
│   ├── multidict [required: >=4.5,<7.0, installed: 6.0.5]
│   └── yarl [required: >=1.0,<2.0, installed: 1.9.4]
│       ├── idna [required: >=2.0, installed: 3.7]
│       └── multidict [required: >=4.0, installed: 6.0.5]
├── backoff [required: <3, installed: 2.2.1]
└── sigstore [required: <2, installed: 1.0.0]
    ├── appdirs [required: ~=1.4, installed: 1.4.4]
    ├── cryptography [required: >=39, installed: 42.0.5]
    │   └── cffi [required: >=1.12, installed: 1.16.0]
    │       └── pycparser [required: Any, installed: 2.22]
    ├── pydantic [required: Any, installed: 1.10.12]
    │   └── typing_extensions [required: >=4.2.0, installed: 4.11.0]
    ├── PyJWT [required: >=2.1, installed: 2.8.0]
    ├── pyOpenSSL [required: >=22.0.0, installed: 24.1.0]
    │   └── cryptography [required: >=41.0.5,<43, installed: 42.0.5]
    │       └── cffi [required: >=1.12, installed: 1.16.0]
    │           └── pycparser [required: Any, installed: 2.22]
    ├── requests [required: Any, installed: 2.31.0]
    │   ├── certifi [required: >=2017.4.17, installed: 2024.2.2]
    │   ├── charset-normalizer [required: >=2,<4, installed: 3.2.0]
    │   ├── idna [required: >=2.5,<4, installed: 3.7]
    │   └── urllib3 [required: >=1.21.1,<3, installed: 1.26.18]
    ├── securesystemslib [required: Any, installed: 1.0.0]
    └── tuf [required: >=2.0.0, installed: 5.0.0]
        ├── requests [required: >=2.19.1, installed: 2.31.0]
        │   ├── certifi [required: >=2017.4.17, installed: 2024.2.2]
        │   ├── charset-normalizer [required: >=2,<4, installed: 3.2.0]
        │   ├── idna [required: >=2.5,<4, installed: 3.7]
        │   └── urllib3 [required: >=1.21.1,<3, installed: 1.26.18]
        └── securesystemslib [required: ~=1.0, installed: 1.0.0]

So I've create an ebuild for dev-python/sigstore and modified aiogithubapi/aiogithubapi one.
Please find them as attachment.

The lack of `sigstore` dependency broke HACS usage and installation and most of us use HACS to add custom integration. From https://github.com/ludeeus/aiogithubapi/blob/main/pyproject.toml sigstore is optional but an homeassistant venv installation install it as a dependency: ``` aiogithubapi==23.11.0 ├── aiohttp [required: >=3.8,<4.0, installed: 3.9.5] │ ├── aiosignal [required: >=1.1.2, installed: 1.3.1] │ │ └── frozenlist [required: >=1.1.0, installed: 1.4.1] │ ├── attrs [required: >=17.3.0, installed: 23.2.0] │ ├── frozenlist [required: >=1.1.1, installed: 1.4.1] │ ├── multidict [required: >=4.5,<7.0, installed: 6.0.5] │ └── yarl [required: >=1.0,<2.0, installed: 1.9.4] │ ├── idna [required: >=2.0, installed: 3.7] │ └── multidict [required: >=4.0, installed: 6.0.5] ├── backoff [required: <3, installed: 2.2.1] └── sigstore [required: <2, installed: 1.0.0] ├── appdirs [required: ~=1.4, installed: 1.4.4] ├── cryptography [required: >=39, installed: 42.0.5] │ └── cffi [required: >=1.12, installed: 1.16.0] │ └── pycparser [required: Any, installed: 2.22] ├── pydantic [required: Any, installed: 1.10.12] │ └── typing_extensions [required: >=4.2.0, installed: 4.11.0] ├── PyJWT [required: >=2.1, installed: 2.8.0] ├── pyOpenSSL [required: >=22.0.0, installed: 24.1.0] │ └── cryptography [required: >=41.0.5,<43, installed: 42.0.5] │ └── cffi [required: >=1.12, installed: 1.16.0] │ └── pycparser [required: Any, installed: 2.22] ├── requests [required: Any, installed: 2.31.0] │ ├── certifi [required: >=2017.4.17, installed: 2024.2.2] │ ├── charset-normalizer [required: >=2,<4, installed: 3.2.0] │ ├── idna [required: >=2.5,<4, installed: 3.7] │ └── urllib3 [required: >=1.21.1,<3, installed: 1.26.18] ├── securesystemslib [required: Any, installed: 1.0.0] └── tuf [required: >=2.0.0, installed: 5.0.0] ├── requests [required: >=2.19.1, installed: 2.31.0] │ ├── certifi [required: >=2017.4.17, installed: 2024.2.2] │ ├── charset-normalizer [required: >=2,<4, installed: 3.2.0] │ ├── idna [required: >=2.5,<4, installed: 3.7] │ └── urllib3 [required: >=1.21.1,<3, installed: 1.26.18] └── securesystemslib [required: ~=1.0, installed: 1.0.0] ``` So I've create an ebuild for dev-python/sigstore and modified aiogithubapi/aiogithubapi one. Please find them as attachment.

Thank you for your files, I had the same problem and emerging yours advanced the problem to the next line: now I'm stuck with securesystemslib:

2024-05-23 09:53:18.452 ERROR (MainThread) [homeassistant.setup] Setup failed for custom integration 'hacs': Unable to import component: No module named 'securesystemslib.util'
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/homeassistant/setup.py", line 322, in _async_setup_component
component = await integration.async_get_component()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/homeassistant/loader.py", line 1001, in async_get_component
self._component_future.result()
File "/usr/lib/python3.12/site-packages/homeassistant/loader.py", line 981, in async_get_component
comp = await self.hass.async_add_import_executor_job(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/homeassistant/loader.py", line 1041, in _get_component
ComponentProtocol, importlib.import_module(self.pkg_path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/homeassistant/util/loop.py", line 144, in protected_loop_func
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 995, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "/etc/homeassistant/custom_components/hacs/__init__.py", line 12, in <module>
from aiogithubapi import AIOGitHubAPIException, GitHub, GitHubAPI
File "/usr/lib/python3.12/site-packages/aiogithubapi/__init__.py", line 20, in <module>
from .device import GitHubDeviceAPI
File "/usr/lib/python3.12/site-packages/aiogithubapi/device.py", line 14, in <module>
from .client import GitHubClient
File "/usr/lib/python3.12/site-packages/aiogithubapi/client.py", line 27, in <module>
from .legacy.client import AIOGitHubAPIClient as LegacyAIOGitHubAPIClient
File "/usr/lib/python3.12/site-packages/aiogithubapi/legacy/client.py", line 15, in <module>
from ..helpers import async_call_api
File "/usr/lib/python3.12/site-packages/aiogithubapi/helpers.py", line 8, in <module>
from sigstore.verify import (
File "/usr/lib/python3.12/site-packages/sigstore/verify/__init__.py", line 54, in <module>
from sigstore.verify.models import (
File "/usr/lib/python3.12/site-packages/sigstore/verify/models.py", line 30, in <module>
from sigstore._internal.rekor import RekorClient
File "/usr/lib/python3.12/site-packages/sigstore/_internal/rekor/__init__.py", line 19, in <module>
from .client import RekorClient
File "/usr/lib/python3.12/site-packages/sigstore/_internal/rekor/client.py", line 35, in <module>
from sigstore._internal.tuf import TrustUpdater
File "/usr/lib/python3.12/site-packages/sigstore/_internal/tuf.py", line 28, in <module>
from tuf.ngclient import Updater
File "/usr/lib/python3.12/site-packages/tuf/ngclient/__init__.py", line 6, in <module>
from tuf.api.metadata import TargetFile
File "/usr/lib/python3.12/site-packages/tuf/api/metadata.py", line 39, in <module>
from securesystemslib.util import persist_temp_file
ModuleNotFoundError: No module named 'securesystemslib.util'

I'm already using 1.0.0 from this repo but the problem persists :/

Thank you for your files, I had the same problem and emerging yours advanced the problem to the next line: now I'm stuck with securesystemslib: ``` 2024-05-23 09:53:18.452 ERROR (MainThread) [homeassistant.setup] Setup failed for custom integration 'hacs': Unable to import component: No module named 'securesystemslib.util' Traceback (most recent call last): File "/usr/lib/python3.12/site-packages/homeassistant/setup.py", line 322, in _async_setup_component component = await integration.async_get_component() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/homeassistant/loader.py", line 1001, in async_get_component self._component_future.result() File "/usr/lib/python3.12/site-packages/homeassistant/loader.py", line 981, in async_get_component comp = await self.hass.async_add_import_executor_job( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/concurrent/futures/thread.py", line 58, in run result = self.fn(*self.args, **self.kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/homeassistant/loader.py", line 1041, in _get_component ComponentProtocol, importlib.import_module(self.pkg_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/site-packages/homeassistant/util/loop.py", line 144, in protected_loop_func return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1387, in _gcd_import File "<frozen importlib._bootstrap>", line 1360, in _find_and_load File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 935, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 995, in exec_module File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed File "/etc/homeassistant/custom_components/hacs/__init__.py", line 12, in <module> from aiogithubapi import AIOGitHubAPIException, GitHub, GitHubAPI File "/usr/lib/python3.12/site-packages/aiogithubapi/__init__.py", line 20, in <module> from .device import GitHubDeviceAPI File "/usr/lib/python3.12/site-packages/aiogithubapi/device.py", line 14, in <module> from .client import GitHubClient File "/usr/lib/python3.12/site-packages/aiogithubapi/client.py", line 27, in <module> from .legacy.client import AIOGitHubAPIClient as LegacyAIOGitHubAPIClient File "/usr/lib/python3.12/site-packages/aiogithubapi/legacy/client.py", line 15, in <module> from ..helpers import async_call_api File "/usr/lib/python3.12/site-packages/aiogithubapi/helpers.py", line 8, in <module> from sigstore.verify import ( File "/usr/lib/python3.12/site-packages/sigstore/verify/__init__.py", line 54, in <module> from sigstore.verify.models import ( File "/usr/lib/python3.12/site-packages/sigstore/verify/models.py", line 30, in <module> from sigstore._internal.rekor import RekorClient File "/usr/lib/python3.12/site-packages/sigstore/_internal/rekor/__init__.py", line 19, in <module> from .client import RekorClient File "/usr/lib/python3.12/site-packages/sigstore/_internal/rekor/client.py", line 35, in <module> from sigstore._internal.tuf import TrustUpdater File "/usr/lib/python3.12/site-packages/sigstore/_internal/tuf.py", line 28, in <module> from tuf.ngclient import Updater File "/usr/lib/python3.12/site-packages/tuf/ngclient/__init__.py", line 6, in <module> from tuf.api.metadata import TargetFile File "/usr/lib/python3.12/site-packages/tuf/api/metadata.py", line 39, in <module> from securesystemslib.util import persist_temp_file ModuleNotFoundError: No module named 'securesystemslib.util' ``` I'm already using 1.0.0 from this repo but the problem persists :/

"Solved" I had to makeshift a tuf-5.0.0 ebuild too so it could continue, now I'm manually emerging kegtron-ble-0.4.0 xiaomi-ble... (I still have no HACS and no home automation ;'( )

"Solved" I had to makeshift a tuf-5.0.0 ebuild too so it could continue, now I'm manually emerging kegtron-ble-0.4.0 xiaomi-ble... (I still have no HACS and no home automation ;'( )
Author

"Solved" I had to makeshift a tuf-5.0.0 ebuild too so it could continue, now I'm manually emerging kegtron-ble-0.4.0 xiaomi-ble... (I still have no HACS and no home automation ;'( )

Ho I came too late: I gave tuf-5.0.0 in another ticket.
Take a look to other tickets I've created along this one.

For HACS you need to add the USE flag github to homeassistant too.

TIPS to get extra package without corresponding ebuild:

Purpose:

/etc/homeassistant/deps/lib/python3.12/site-packages/
├── my-needed-dep
└── my-needed-dep-1.1.0.dist-info

Get it:

pip install my-needed-dep
mv .local/lib/python3.12/site-packages/my-needed-dep* /etc/homeassistant/deps/lib/python3.12/site-packages/

or let homeassistant install it for you as needed by letting it populate required deps:

mkdir /etc/homeassistant/.config/pip
echo -e '[global]\nbreak-system-packages = true\nuser = true' > /etc/homeassistant/.config/pip/pip.conf
# restart homeassistant

I join a txt files that describe extra ebuilds and USE that I need to get no deps packages actually.
I join too a pipdeptree of a venv installation of my ha where you will see the dependencies tree that have help me to stabilise my gentoo ha.

> "Solved" I had to makeshift a tuf-5.0.0 ebuild too so it could continue, now I'm manually emerging kegtron-ble-0.4.0 xiaomi-ble... (I still have no HACS and no home automation ;'( ) Ho I came too late: I gave tuf-5.0.0 in another ticket. Take a look to other tickets I've created along this one. For HACS you need to add the USE flag github to homeassistant too. TIPS to get extra package without corresponding ebuild: Purpose: ``` /etc/homeassistant/deps/lib/python3.12/site-packages/ ├── my-needed-dep └── my-needed-dep-1.1.0.dist-info ``` Get it: ``` pip install my-needed-dep mv .local/lib/python3.12/site-packages/my-needed-dep* /etc/homeassistant/deps/lib/python3.12/site-packages/ ``` or let homeassistant install it for you as needed by letting it populate required deps: ``` mkdir /etc/homeassistant/.config/pip echo -e '[global]\nbreak-system-packages = true\nuser = true' > /etc/homeassistant/.config/pip/pip.conf # restart homeassistant ``` I join a txt files that describe extra ebuilds and USE that I need to get no deps packages actually. I join too a pipdeptree of a venv installation of my ha where you will see the dependencies tree that have help me to stabilise my gentoo ha.
Owner

44a99b95d dev-python/sigstore: new package, add 1.0.0

44a99b95d dev-python/sigstore: new package, add 1.0.0
Owner

456597629 dev-python/tuf: add 5.0.0
Thanks to all of you.

456597629 dev-python/tuf: add 5.0.0 Thanks to all of you.
onkelbeh added the
Bug
requirement
labels 2024-05-26 11:21:43 +02:00
onkelbeh added this to the 2024.5.5 milestone 2024-05-26 11:21:46 +02:00
Sign in to join this conversation.
No Label
Bug
requirement
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: onkelbeh/HomeAssistantRepository#3358
No description provided.