Summary: | ports-mgmt/pkg: POST-DEINSTALL script failed: indexinfo not found | ||
---|---|---|---|
Product: | Ports & Packages | Reporter: | Sergey <kpect> |
Component: | Individual Port(s) | Assignee: | Baptiste Daroussin <bapt> |
Status: | Closed Works As Intended | ||
Severity: | Affects Some People | CC: | cperciva, portmgr, w.schwarzenfeld |
Priority: | --- | Flags: | bugzilla:
maintainer-feedback?
(bapt) |
Version: | Latest | ||
Hardware: | amd64 | ||
OS: | Any |
Description
Sergey
2018-03-05 18:26:25 UTC
Is this still relevant? (In reply to w.schwarzenfeld from comment #1) To solve the issue I had to install indexinfo manually, so it's working now. But I suppose it have to be installed as a dependency if it's required for proper deinstallation. It's a pity 'pkg' doesn't allow to get rid of different garbage which is not required all the time. Like 'yum' for example allows to set: --setopt='tsflags=nodocs' it'd be cool if 'pkg' would allow the same to get rid of DOCS INFO MAN LICENSE ... etc. So less dependencies would be required. This bug is still present, but I don't think it's pkg's fault. This happens because ports/Keywords/info.ucl says to call "indexinfo" without providing a full path; this code makes its way into packages created by pkg(8) and as a result any attempt to install or deinstall packages containing .info files will fail to run indexinfo unless PATH contains /usr/local/bin/ . Maybe pkg(8) should adjust its PATH but I think the solution is probably to amend the ports/Keywords/info.ucl script. (Also possibly others -- there are some scripts for handling fonts which also seem to have the same problem.) Maybe at least to start with something like this? actions: [file] post-install: <<EOD case "%@" in /*) file="%@" ;; *) file="%D/%@" ;; esac [ "$(which indexinfo)" ] && indexinfo ${PKG_ROOTDIR}${file%/*} EOD post-deinstall: <<EOD case "%@" in /*) file="%@" ;; *) file="%D/%@" ;; esac [ "$(which indexinfo)" ] && indexinfo ${PKG_ROOTDIR}${file%/*} EOD one additional note, I don't use INFO in world: $ grep INFO /etc/src.conf WITHOUT_INFO=YES Actually even deleting indexinfo from ports/Keywords/info.ucl file still triggers it with "/bin/sh: indexinfo: not found" First of all, texinfo and info have been removed from world long ago (thus you do not need at all to specify it anymore in your src.conf) Second indexinfo should be automatically triggered as a dependency by the ports tree. I don't know why it is not the case. And that is where the bug is. indexinfo has been created to avoid a huge dependency on the big texinfo for the very simple task of creating the index for the info files. It is very small and thin on purpose. The fact it is not on your system is what should be tracked down as a bug. Now the fact pkg does not have the equivalent of the yum feature is due to the fact noone took time to provide a patch for that. it is in the todo list since day 1 (In reply to Baptiste Daroussin from comment #8) Baptiste, the problem is that indexinfo is installed as /usr/local/bin/indexinfo but the post-install scripts don't specify the full path and pkg(8) doesn't adjust its PATH to include /usr/local/bin. None of the keywords are doing that (adjusting the path) and we never got issue so far. (In reply to Baptiste Daroussin from comment #10) I've heard from several users who ran into this exact error. I suspect the only reason you haven't heard from them is that people tend to shrug their shoulders and say "oh well I wasn't using info anyway". (In reply to Baptiste Daroussin from comment #8) Hello Baptiste, As I don't have INFO pages installed on my system anyway, is there a way to disable pkg from triggering the indexinfo? I just don't use/need it. as I was saying noone anymore has info pages installed on the system :) no it is for now impossible to prevent triggering indexinfo at all. (In reply to Baptiste Daroussin from comment #13) In this case I'm closing this task, Thank you) |