Hi Norm, I'm working on a fix for the texinfo package, and I'd like to ask/discuss with you the way it should go (because you initially introduced the texinfo package into userland).
7121463 text/texinfo doesn't deliver a file, but manifests it http://monaco.sfbay.sun.com/detail.jsf?cr=7121463 The problem is related to so called "dir" files (an index of all *.info files present in given directory). These files are generated by the service svc:/application/texinfo-update:default in runtime and at the same time they're delivered by the package. The service expects the "dir" file is a symbolic link pointing to /var/info/<real-dir-file>. Currently the texinfo package delivers these for 2 directories: /usr/share/info and /usr/sfw/share/info. Problems: 1) If there're no *.info files in the directory, there should be no "dir" file there as well. This is the case for our /usr/sfw/share/info directory. I was fixing the service script in CR 7109099 to delete the "dir" file in this case. But it leads to "pkg verify" error, because the "dir" file is stated in the package manifest. I see 3 possible approches how to fix it: a) Do not delete the "dir" file, but create a dummy (empty) one instead. The dummy "dir" file has to be a valid info file. b) Remove "dir" files (and symbolic links to them) from the manifest. This would be a more invasive change, because the link is used to find directories where "dir" file should be updated. We would have to invent some other way how to tell the service where to update "dir" files. Also the "dir" files would not be removed in case of package uninstall. (but they would be "salvaged" when last package delivering files into directory they live in will be uninstalled). c) Do not deliver "dir" file (and link) for /usr/sfw/share/info in the texinfo package. I have initial diff for options a and b (the b option with just hardcoded paths into it - needs additional work). Is there an approach you would suggest? Or something completely different? 2) The path, where info(1) utility searches for "dir" and *.info files. The default path is compiled into the binary (can be changed when configuring the package) and currently there are these directories: /usr/local/info /usr/info /usr/local/lib/info /usr/lib/info /usr/local/gnu/info /usr/local/gnu/lib/info /usr/gnu/info /usr/gnu/lib/info /opt/gnu/info /usr/share/info /usr/share/lib/info /usr/local/share/info /usr/local/share/lib/info /usr/gnu/lib/emacs/info /usr/local/gnu/lib/emacs/info /usr/local/lib/emacs/info /usr/local/emacs/info . (current directory) I searched for directories where we deliver our *.info files and found these: $ pkg search -H -o path ':file:path:*.info' | sed -e 's:/[^/]*\.info::g' | sort -u usr/gcc/4.5/share/info usr/gnu/share/info usr/mysql/5.1/docs usr/sfw/share/info usr/share/doc/freeipmi/info usr/share/info usr/share/src/grub/docs So by default (if the user doesn't explicitly set INFOPATH variable in its environment) the files in /usr/sfw/share/info are ignored (not found). Shouldn't we set the default info path when configuring the package to include directories where we deliver *.info files? (I think at least /usr/sfw/share/info and /usr/gnu/share/info is worth of) I apologize for so long mail :) Petr _______________________________________________ userland-discuss mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/userland-discuss
