Pip package dependency issue, qtfaststart won't install
Describe the bug This is not a bug with SMA, but a problem with package dependency. qtfaststart won't install, when looking online it seems that it's a very old package and likely unsupported... so the likely chance of a fix seems to be very low... I am posting this because I'm hoping you can at least validate that there is a problem installing the legacy package. If it is reproducible, it might be time to consider deprecating it?
Command or context you are trying to run pip3 install -r /usr/local/sma/setup/requirements.txt
Log files
Collecting qtfaststart
Using cached qtfaststart-1.8.tar.gz (7.7 kB)
ERROR: Exception:
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/pip/_internal/cli/base_command.py", line 179, in exc_logging_wrapper
status = run_func(*args)
^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_internal/cli/req_command.py", line 67, in wrapper
return func(self, options, args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_internal/commands/install.py", line 377, in run
requirement_set = resolver.resolve(
^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 95, in resolve
result = self._result = resolver.resolve(
^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 546, in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 397, in resolve
self._add_to_criteria(self.state.criteria, r, parent=None)
File "/usr/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py", line 173, in _add_to_criteria
if not criterion.candidates:
^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_vendor/resolvelib/structs.py", line 156, in __bool__
return bool(self._sequence)
^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 174, in __bool__
return any(self)
^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 162, in <genexpr>
return (c for c in iterator if id(c) not in self._incompatible_ids)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 53, in _iter_built
candidate = func()
^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 185, in _make_candidate_from_link
base: Optional[BaseCandidate] = self._make_base_candidate_from_link(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py", line 231, in _make_base_candidate_from_link
self._link_candidate_cache[link] = LinkCandidate(
^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 303, in __init__
super().__init__(
File "/usr/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 158, in __init__
self.dist = self._prepare()
^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 235, in _prepare
dist = self._prepare_distribution()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py", line 314, in _prepare_distribution
return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 527, in prepare_linked_requirement
return self._prepare_linked_requirement(req, parallel_builds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 598, in _prepare_linked_requirement
local_file = unpack_url(
^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pip/_internal/operations/prepare.py", line 180, in unpack_url
unpack_file(file.path, location, file.content_type)
File "/usr/lib/python3.12/site-packages/pip/_internal/utils/unpacking.py", line 316, in unpack_file
untar_file(filename, location)
File "/usr/lib/python3.12/site-packages/pip/_internal/utils/unpacking.py", line 235, in untar_file
tar.extractall(location, filter=pip_filter)
File "/usr/lib/python3.12/tarfile.py", line 2269, in extractall
self._extract_one(tarinfo, path, set_attrs=not tarinfo.isdir(),
File "/usr/lib/python3.12/tarfile.py", line 2332, in _extract_one
self._extract_member(tarinfo, os.path.join(path, tarinfo.name),
File "/usr/lib/python3.12/tarfile.py", line 2423, in _extract_member
self.makelink(tarinfo, targetpath)
File "/usr/lib/python3.12/tarfile.py", line 2521, in makelink
self._extract_member(self._find_link_target(tarinfo),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/tarfile.py", line 2725, in _find_link_target
raise KeyError("linkname %r not found" % linkname)
KeyError: "linkname 'qtfaststart-1.8/README.rst' not found"
System Information
- OS: Docker (Alpine Linux)
- Python version: 3.12.3
Expected behavior Install required packages, because the one package is unable to install, all required packages fail to install using the requirements.txt file
Additional context Just looking for a confirmation that it is broken and if there is any guidance that could help resolve it
FYI: Commenting out the qtfaststart package from the requirements.txt did resolve my issue with getting SMA to run because the other packages successfully installed. But that doesn't resolve it long term and is only a workaround. My output format is mkv, so it's not used in my configuration, but I would imagine it would be a problem for others doing a new installation...
This appears to be a duplicate of https://github.com/mdhiggins/sma-mod/issues/17#issuecomment-2185264895 but probably better suited here since it impacts any installation not just SMA-mod
This appears to be related to this issue here
https://github.com/pypa/pip/issues/12781
For now I will force pip version 24.0 across the containers to address this, should be propagating out now
Are you going to update the requirements file to specify the version?
This would be for those that are doing a git pull of the repo and installing via the requirements.txt file.
Thanks!
It’s not a requirements file issue. It’s the pip version. You would have to have pip installed already to even act on a requirements file and I don’t think you can modify the pip version while it’s actively installing a requirements file
Okay, thanks for the explanation.
Fortunately it looks like they’re actively committing changes to fix the issue as of this morning so hopefully this will just be a transient 24.1 bug that gets quickly resolved
This was resolved upstream. Thx!
Went ahead and removed the version 24.0 force then so we can continue to be on the latest version of pip