Zsh Mailing List Archive
Messages sorted by:
Re: The default $fpath
Tanu Kaskinen wrote:
> Let's assume that I write a program, let's call it "Foo". I want to support Zsh
> completion for Foo, so I write a shell completion script. By default, if
> someone builds Foo from source, Foo should be installed under prefix
> /usr/local. Distributions will install Foo under prefix /usr.
> Regardless of whether Foo is installed under /usr or /usr/local, I want the Zsh
> completion to Just Work. I think it should not matter whether the Zsh
> completion is installed under /usr/share/zsh/site-functions or
> /usr/local/share/zsh/site-functions, the completion script should be picked up
> by Zsh either way.
> On some distributions this appears to work, but not all. At least Fedora's Zsh
> doesn't include /usr/local/share/zsh/site-functions in the default $fpath. This
> doesn't seem to be Fedora's fault. As far as I can see, Zsh upstream doesn't
> include /usr/local/share/zsh/site-functions in $fpath if the install prefix is
> Would a patch be accepted that adds /usr/local/share/zsh/site-functions to
> $fpath always, no matter what the install prefix is?
I think this is a problem that should be tackled in vendor packages.
Here's how we do it in debian land, using build-time parameters passed
to the ‘configure’ script: We set the ‘site-functions’ location to
/usr/local by using:
This solves the problem of site-specific additions out of the scope of
the package system. Now there's the problem, that other packages, that
may want to install zsh completions can't just write to /usr/local... To
solve that we use
And we just tell other packages to install completions to
This would solve what you're asking for, in addition to leaving a clean
place for completions from other packages in a vendor's repository.
In protocol design, perfection has been reached not when there is
nothing left to add, but when there is nothing left to take away.
-- RFC 1925
Messages sorted by: