Simon McVittie <s...@debian.org> 於 2018年12月12日 週三 上午4:22寫道: > > Control: tags -1 + moreinfo > > On Wed, 12 Dec 2018 at 00:45:34 +0800, You-Sheng Yang wrote: > > Somehow dash failed to expand /usr/share/docutils/scripts/python3/*, so > > that exec variable is simply '/usr/share/docutils/scripts/python3/*', > > which is later expanded as extra dozens of update-alternatives' > > arguments. To be more detailed, at the time executed, dash path > > expansion still worked as it's able to expand /usr/share/* and > > /usr/share/docutils*, but it failed to expand /usr/share/docutils/* and > > any other pattern with a /usr/share/docutils/ prefix. Files has been > > installed correctly and accessible, but dash simply unable to expand > > such globs. > > The obvious question is: why don't basic operations like glob() work > on the system in question? > > Is there something unusual on the system where these expansions failed, > like a non-standard filesystem or kernel, or weird permissions > (directories not 0755 or files not 0755 or 0644) anywhere under > /usr/share/docutils?
They have been correctly installed. Only expanding /usr/share/docutils/* and any other expanding attempt with a /usr/share/docutils/ prefix failed. Actually many other directories under /usr/share has the same problem in dash. Not just /usr/share/docutils. > You mentioned Docker containers. What is the host system and how are > these Docker containers configured? If /usr is an overlayfs or similar, > failing to evaluate a glob might be a bug in the overlay implementation? I was running docker images from docker.io/vicamo/debian:sid-<arch> on the same host, so the same host configuration applies to all available Debian Sid images. Other paths have the same issue, with or without python3-docutils installed. I think the root cause should be in dash, but since ptrace is not available inside a qemu-based foreign arch container, it would probably take some time to hunt for the root cause. > (Since 32-bit ARM and MIPS are not exactly fast machines, I would > suggest building your kernels with dpkg-buildpackage -B and using an > x86_64 machine to build documentation, which would maybe sidestep this > by not needing docutils at all.) Just like you, I don't like work-arounds, either. Anyway, the problem is python3-docutils fails to install on container based Sid armel/armhf/mips/mipsel environments. I don't own a real arm32/MIPS board, so I cannot verify if this also happens outside a qemu jail. But while many debian installations today are actually container images, I'd still say this is critical enough that I would recommend a quick fix to unblock all other people while the issue being investigated. > > Replace that path glob with a `find ... -type f` fixes the problem. > > Sorry, I don't think python3-docutils can be expected to swap a path > expansion for a subprocess that ought to be equivalent to work around > whatever is going on with these systems - and definitely not without > understanding what it is that's going wrong and why. > > smcv You-Sheng Yang