iwd depends on docutils only when ${PV} == *9999*: > iwd-1.12.ebuild:[[ ${PV} == *9999* ]] && DEPEND+=" dev-python/docutils" > iwd-1.13.ebuild:[[ ${PV} == *9999* ]] && BDEPEND+=" dev-python/docutils" > iwd-1.14.ebuild:[[ ${PV} == *9999* ]] && BDEPEND+=" dev-python/docutils" > iwd-9999.ebuild:[[ ${PV} == *9999* ]] && BDEPEND+=" dev-python/docutils" But it actually uses it unconditionally. This is particularly problematic when docutils requires a PYTHON_TARGETS update, because without the knowledge of the dependency, portage doesn't update docutils, which leads to iwd failing to build: /bin/mkdir -p src/ && /bin/sed -e 's,@libexecdir\@,/usr/libexec,g' < src/iwd.service.in > src/iwd.service /bin/mkdir -p src/ && rst2man.py --strict --no-raw --no-generator --no-datestamp src/iwd.rst src/iwd.8 /bin/mkdir -p src/ && rst2man.py --strict --no-raw --no-generator --no-datestamp src/iwd.config.rst src/iwd.config.5 /bin/mkdir -p src/ && rst2man.py --strict --no-raw --no-generator --no-datestamp src/iwd.network.rst src/iwd.network.5 /bin/mkdir -p src/ && rst2man.py --strict --no-raw --no-generator --no-datestamp src/iwd.ap.rst src/iwd.ap.5 rst2man.py: no python-exec wrapped executable found in /usr/lib/python-exec. make[1]: *** [Makefile:3678: src/iwd.8] Error 127 make[1]: *** Waiting for unfinished jobs.... rst2man.py: no python-exec wrapped executable found in /usr/lib/python-exec. rst2man.py: no python-exec wrapped executable found in /usr/lib/python-exec. make[1]: *** [Makefile:3672: src/iwd.config.5] Error 127 make[1]: *** [Makefile:3672: src/iwd.network.5] Error 127 rst2man.py: no python-exec wrapped executable found in /usr/lib/python-exec. make[1]: *** [Makefile:3672: src/iwd.ap.5] Error 127 make: *** [Makefile:1478: all] Error 2 * ERROR: net-wireless/iwd-1.13::gentoo failed (compile phase): * emake failed
I can build it fine without docutils installed, but perhaps it's a sort of automagic dep... mine checks for (and doesn't find) rst2man during configure, I bet yours finds it and thinks it can use it, but it actually cannot: checking for rst2man... no checking for rst2man.py... no Is that the case?
I can reproduce failure if I don't install docutils but create /usr/bin/rst2man with "false" inside. What if we pass RST2MAN=/bin/true to make? This will effectively skip the (re)build of man pages but still install them, and eliminate any attempt to use the system rst2man (whether it exists or not).
Yeah, I think you've hit the nail on the head. Thanks for investigating so quickly!
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=37185b74ecef0c62116ef5733b5b36cbb9c475c6 commit 37185b74ecef0c62116ef5733b5b36cbb9c475c6 Author: Ben Kohler <bkohler@gentoo.org> AuthorDate: 2021-05-13 13:11:25 +0000 Commit: Ben Kohler <bkohler@gentoo.org> CommitDate: 2021-05-13 13:12:05 +0000 net-wireless/iwd: make sure not to call rst2man on official releases Closes: https://bugs.gentoo.org/789588 Package-Manager: Portage-3.0.18, Repoman-3.0.3 Signed-off-by: Ben Kohler <bkohler@gentoo.org> net-wireless/iwd/iwd-1.14.ebuild | 7 ++++++- net-wireless/iwd/iwd-9999.ebuild | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-)