On Fri, Jul 26, 2013 at 07:47:15PM +0200, Frank Terbeck wrote: > William Giokas wrote: > > I am working on having systemd install its own completion file in the > > `make install`, but was told that the directory that I was having it go > > to by default was non-standard. > > Hm, getting the completion into our repo and sync every now and then is > not an option? I don't think so. I feel like the completion file should be with the package so that when the package is updated, so is the completion file. Keeping them in a central place has uses, but I see very little benefit of it for a large, quickly changing project like systemd. > > Which directory should upstream provided completion files go? I > > Depends. :-) > > > currently have all of mine in /usr/share/zsh/site-functions/, but I was > > By default, the `site-functions' directory is located in /usr/local, for > admins to locally override functions. This is a compile-time option > though, and your vendor seems to change it. This is just some confusion. I meant $datadir, which would be '$prefix/share'. Don't mind that. > > told that they should be in /usr/share/zsh/vendor-functions/. However, > > This is a directory that debian uses (well, at least - so probably > ubuntu as well). This is done by specifying the following compile-time > option: > > --enable-additional-fpath=/usr/share/zsh/vendor-functions,/usr/share/zsh/vendor-completions > > The idea is to have a directory early in $fpath in /usr/share for other > debian packages to override zsh-default functions or provide additional > ones. Debian packages are not allowed to install files to /use/local. > Also, by not changing the `site-functions' location we still allow > admins to locally override any function they want by dropping files into > /usr/local/share/zsh/site-functions outside of the realm of the > packaging system. I am not talking about putting them in places for Debian, but for a generic Linux OS. If vendor-functions has to be specially added to zsh, then I am wary to set a default installation path to $datadir/zsh/vendor-completion. Using /usr/local is a good idea, but not every distro (In fact, only Debian and Ubuntu do) uses that in their default fpath. CentOS/RHEL's fpath is simple enough, if quite old: /usr/share/zsh/site-functions:/usr/share/zsh/4.3.10/functions > > going through a few distros (CentOS, Debian, Arch, and Fedora) nothing > > seems to install to that directory, and all completion files not > > supplied by the zsh package are in `site-functions`. There was a post on > > I don't think moving site-functions out of /usr/local is a good idea; it > robs people of the possibility to override functions locally. > > > the Debian MLs[1] that said to put them in vendor-functions, but I am > > wary if even in the debian packages they don't do that yet. (Unless this > > is in their experimental branch or something) > > A debian package for systemd should place the completion function you > are talking about to "/usr/share/vendor-functions". It is exactly the > intended place for such add-ons on debian. I should have made this clearer: I am looking for a generic place to use in a distro-agnostic Makefile, not a specfile, PKGBUILD or ebuild. Would it be sane to have the default be $datadir/zsh/site-functions, and allow Debian and the select few other distros use a ./configure flag to place this somewhere else? Thanks, -- William Giokas | KaiSforza | http://kaictl.net/ GnuPG Key: 0x73CD09CF Fingerprint: F73F 50EF BBE2 9846 8306 E6B8 6902 06D8 73CD 09CF