Python package is incompatible with dissect-squashfs
evan-goode opened this issue · 2 comments
Describe the bug
Hi, I'm trying to use the Python packages unblob
and dissect-squashfs
in the same project, but I can't since unblob
depends on a rather old (2020) version of dissect.cstruct
and dissect-squashfs
depends on dissect.cstruct == 4.*
. Poetry gives me the following error:
Because no versions of dissect-squashfs match >1.5,<1.6.dev1 || >1.6.dev1,<1.6.dev2 || >1.6.dev2,<2.0
and dissect-squashfs (1.6.dev1) depends on dissect.cstruct (==4.*), dissect-squashfs (>1.5,<1.6.dev2 || >1.6.dev2,<2.0) requires dissect.cstruct (==4.*).
And because dissect-squashfs (1.6.dev2) depends on dissect.cstruct (==4.*)
and dissect-squashfs (1.5) depends on dissect.cstruct (==3.*), dissect-squashfs (>=1.5,<2.0) requires dissect.cstruct (>=3.0.dev,<5).
Because no versions of unblob match >24.6.10,<25.0.0
and unblob (24.6.10) depends on dissect.cstruct (>=2.0,<3.0), unblob (>=24.6.10,<25.0.0) requires dissect.cstruct (>=2.0,<3.0).
Thus, unblob (>=24.6.10,<25.0.0) is incompatible with dissect-squashfs (>=1.5,<2.0).
So, because sample-project depends on both dissect-squashfs (^1.5) and unblob (^24.6.10), version solving failed.
Would it be possible to update unblob to use the latest version of dissect.cstruct?
To Reproduce
Steps to reproduce the behavior:
Use this pyproject.toml:
[tool.poetry]
name = "sample-project"
version = "0.1.0"
description = ""
authors = ["Author Name <author@example.com>"]
# readme = "README.md"
# license = "BSD"
packages = [
{ include = "sample_package" }
]
[tool.poetry.dependencies]
python = "^3.10"
dissect-squashfs = "^1.5"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
and run poetry add unblob
.
Expected behavior
I would like to be able to use both dissect-squashfs and unblob in the same codebase.
Environment information (please complete the following information):
- OS: NixOS
poetry env info
:
Virtualenv
Python: 3.11.9
Implementation: CPython
Path: /home/evan/.cache/pypoetry/virtualenvs/sample-project-VQNKDeYX-py3.11
Executable: /home/evan/.cache/pypoetry/virtualenvs/sample-project-VQNKDeYX-py3.11/bin/python
Valid: True
Base
Platform: linux
OS: posix
Python: 3.11.9
Path: /nix/store/6b1fqdwb3g56j5pazv8zkx9qd0mv3wiz-python3-3.11.9
Executable: /nix/store/6b1fqdwb3g56j5pazv8zkx9qd0mv3wiz-python3-3.11.9/bin/python3.11
Good point, we should update it.
Unfortunately, dissect.cstruct
4.0 is not API compatible, at least on the typing level, so it needs some massaging.
@evan-goode #907 should fix this issue. Could you check it?