readthedocs.org: Installing conda package ncurses fails with 'placeholder too short'
I specified some packages to install in a conda environment, and it appeared to download them OK, but when trying to link them, I got:
[ncurses-5.9-5 /home/docs/checkouts/readthedocs.org/user_builds/takluyver]|| 13%
Error: ERROR: placeholder '/root/miniconda3/envs/_build_placehold_placehold_placehold_placehold_placehold_p' too short in: ncurses-5.9-5
This looks similar to conda/conda#1087, but it’s not immediately clear what’s going on. When I do the same steps on my local machine, it succeeds. I suspect it’s a problem with the environment prefix being relatively long (/home/docs/checkouts/readthedocs.org/user_builds/takluyver-nbconvert-test/conda/docs-build-w-conda/
). @ilanschnell may be able to shed more light.
About this issue
- Original URL
- State: closed
- Created 8 years ago
- Comments: 22 (12 by maintainers)
Commits related to this issue
- DOC: change branch name py3doc-enh-theme Because of this bug: https://github.com/rtfd/readthedocs.org/issues/1902 — committed to spatialaudio/nbsphinx by mgeier 8 years ago
- DOC: change branch name py3doc-enh-theme Because of this bug: https://github.com/rtfd/readthedocs.org/issues/1902 — committed to spatialaudio/nbsphinx by mgeier 8 years ago
- Temporarily disable autodoc build of salishsea_tools.nc_tools module due to readthedocs issue. See https://github.com/rtfd/readthedocs.org/issues/1902 — committed to SalishSeaCast/FVCOM-Cmd by douglatornell 8 years ago
- Temporarily disable autodoc build of salishsea_tools.nc_tools module due to readthedocs issue. See https://github.com/rtfd/readthedocs.org/issues/1902 — committed to SalishSeaCast/FVCOM-Cmd by douglatornell 8 years ago
- Temporarily disable autodoc build of salishsea_tools.nc_tools module due to readthedocs issue. See https://github.com/rtfd/readthedocs.org/issues/1902 — committed to SalishSeaCast/FVCOM-Cmd by douglatornell 8 years ago
- Temporarily disable autodoc build of salishsea_tools.nc_tools module due to readthedocs issue. See https://github.com/rtfd/readthedocs.org/issues/1902 — committed to SalishSeaCast/FVCOM-Cmd by douglatornell 8 years ago
- Temporarily disable autodoc build of salishsea_tools.nc_tools module due to readthedocs issue. See https://github.com/rtfd/readthedocs.org/issues/1902 — committed to SalishSeaCast/FVCOM-Cmd by douglatornell 8 years ago
- Temporarily disable autodoc build of salishsea_tools.nc_tools module due to readthedocs issue. See https://github.com/rtfd/readthedocs.org/issues/1902 — committed to SalishSeaCast/FVCOM-Cmd by douglatornell 8 years ago
- Temporarily disable autodoc build of salishsea_tools.nc_tools module due to readthedocs issue. See https://github.com/rtfd/readthedocs.org/issues/1902 — committed to SalishSeaCast/FVCOM-Cmd by douglatornell 8 years ago
Having a guess at what’s going on:
Part of the point of conda is that packages are relocatable - they can be installed in an environment anywhere, and find other things relative to that environment. In some cases, packages use hardcoded absolute paths. When these occur inside a binary file, conda builds the package using a placeholder path (that’s the bizarre _build_placehold_placehold… path), and on installation, rewrites the file to edit the environment path in there. That can’t work if the environment path is longer than the placeholder, as it is in this case. That’s partly because I’ve picked fairly long names for both the project and the branch, but other people will probably hit this too. By my count, the path structure RTD is using (
/home/docs/checkouts/readthedocs.org/user_builds/{}/conda/{}/
leaves 23 characters to share between the two names before it exceeds that placeholder.If I’m right, conda developers can alleviate the problem by rebuilding that package with a longer placeholder, but they can’t easily remove the limitation entirely.
It’s not so much an error in conda as simply a property of packages. When you build a package, you do so in a folder with a particular length. Packages that embed paths in binaries then cannot be installed into paths longer than that creation-time length. About 2 years ago, the standard was 80 characters. We changed it to 255. Essentially all packages in the ecosystem have been rebuilt, so this problem should be extremely rare (only happening to users with very long install paths).
Thanks you all for the update. I’m closing this issue. Feel free to re-open if you consider 😃
IOW this was a conda package issue (not a RTD issue) that has been resolved by improved tooling since used to rebuild many packages in the intervening time.