IPS Facets and Info files
- by mkupfer
One of the unusual things about IPS is its "facet" feature. For
example, if you're a developer using the foo library, you don't
install a libfoo-dev package to get the header files. Intead, you
install the libfoo package, and your facet.devel setting controls whether you get header files.
I was reminded of this recently when I tried to look at some
documentation for Emacs Org mode. I was surprised when Emacs's Info
browser said it couldn't find the top-level Info directory. I poked
around in /usr/share but couldn't find any info files.
$ ls -l /usr/share/info
ls: cannot access /usr/share/info: No such file or directory
Was I was missing a package?
$ pkg list -a | egrep "info|emacs"
editor/gnu-emacs 23.1-0.175.0.0.0.2.537 i--
editor/gnu-emacs/gnu-emacs-gtk 23.1-0.175.0.0.0.2.537 i--
editor/gnu-emacs/gnu-emacs-lisp 23.1-0.175.0.0.0.2.537 ---
editor/gnu-emacs/gnu-emacs-no-x11 23.1-0.175.0.0.0.2.537 ---
editor/gnu-emacs/gnu-emacs-x11 23.1-0.175.0.0.0.2.537 i--
system/data/terminfo 0.5.11-0.175.0.0.0.2.1 i--
system/data/terminfo/terminfo-core 0.5.11-0.175.0.0.0.2.1 i--
text/texinfo 4.7-0.175.0.0.0.2.537 i--
x11/diagnostic/x11-info-clients 7.6-0.175.0.0.0.0.1215 i--
$
Hmm. I didn't have the gnu-emacs-lisp package. That seemed an
unlikely place to stick the Info files, and pkg(1) confirmed that the
info files were not there:
$ pkg contents -r gnu-emacs-lisp | grep info
usr/share/emacs/23.1/lisp/info-look.el.gz
usr/share/emacs/23.1/lisp/info-xref.el.gz
usr/share/emacs/23.1/lisp/info.el.gz
usr/share/emacs/23.1/lisp/informat.el.gz
usr/share/emacs/23.1/lisp/org/org-info.el.gz
usr/share/emacs/23.1/lisp/org/org-jsinfo.el.gz
usr/share/emacs/23.1/lisp/pcvs-info.el.gz
usr/share/emacs/23.1/lisp/textmodes/makeinfo.el.gz
usr/share/emacs/23.1/lisp/textmodes/texinfo.el.gz
$
Well, if I have what look like the right packages but don't have the
right files, the next thing to check are the facets.
The first check is whether there is a facet associated with the Info files:
$ pkg contents -m gnu-emacs | grep usr/share/info
dir facet.doc.info=true group=bin mode=0755 owner=root path=usr/share/info
file [...] chash=[...] facet.doc.info=true group=bin mode=0444 owner=root path=usr/share/info/mh-e-1 [...]
file [...] chash=[...] facet.doc.info=true group=bin mode=0444 owner=root path=usr/share/info/mh-e-2 [...]
[...]
Yes, they're associated with facet.doc.info.
Now let's look at the facet settings on my desktop:
$ pkg facet
FACETS VALUE
facet.locale.en* True
facet.locale* False
facet.doc.man True
facet.doc* False
$
Oops. I've got man pages and various English documentation files, but
not the Info files. Let's fix that:
# pkg change-facet facet.doc.info=True
Packages to update: 970
Variants/Facets to change: 1
Create boot environment: No
Create backup boot environment: Yes
Services to change: 1
DOWNLOAD PKGS FILES XFER (MB)
Completed 970/970 181/181 9.2/9.2
PHASE ACTIONS
Install Phase 226/226
PHASE ITEMS
Image State Update Phase 2/2
PHASE ITEMS
Reading Existing Index 8/8
Indexing Packages 970/970
#
Now we have the info files:
$ ls -F /usr/share/info
a2ps.info dir@ flex.info groff-2 regex.info
aalib.info dired-x flex.info-1 groff-3 remember
...