-
-
Notifications
You must be signed in to change notification settings - Fork 366
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Appimage: can't install local requires
directories which require extra context
#1051
Comments
Well dang - that's annoying. Mounting a single |
Ok - I've done a quick check; it turns out to be pretty easy to implement - and as predicted, there are some permissions issues. I'm running my Docker builds on macOS, so some of these issues are macOS related - but:
Thinking around the problem - another option would be to inspect all the local package references, and specify the highest common folder as the mount point. If a project has no local folder references, then there's no This would mean:
Thoughts? |
As discussed, a more reliable solution is probably to build the directory into an sdist, which is inherently relocatable, and then mount the sdist into the container rather than the directory. An sdist is better than a wheel, because it ensures that any native compilation is done inside the container. We talked about using the pypa/build tool to make the sdist, but I'm not sure whether that supports building projects which have a setup.py but not a pyproject.toml. |
Yes, it does - the docs for build explicitly call out the only extension to "pure" PEP517 behavior is that in the absence of a PEP517 configuration, it uses |
#993 allowed AppImage to support most local
requires
directories by adding each one as a volume mount when running pip within Docker. However, the build will still fail if the directory's build script needs to read anything outside of the directory.For example, see this job in the Toga setuptools-scm PR. Setuptools-scm needs to run within a Git repository in order to detect the version number. But the volume mount doesn't include the whole repository, only a subdirectory of it. This produces the error:
The simplest solution I can think of is to just mount the entire host filesystem into the Docker container, e.g. at the path /host, and use that instead of one mount per local requirement.
The text was updated successfully, but these errors were encountered: