[Pkg-zsh-devel] Bug#934926: overridding of default fpath causes uncessary complexity and pain for software providing zsh completions

Joey Hess id at joeyh.name
Fri Aug 16 19:10:36 BST 2019


Package: zsh
Version: 5.7.1-1
Severity: normal

By default zsh loads completions from /usr/share/zsh/site-functions
and while the name of that is perhaps not great, as it's not
site-specific[1], it's a standard location. Debian has overridden this,
so zsh does not look there, but instead in
/usr/share/zsh/vendor-functions and /usr/share/zsh/vendor-completions

This means that, as a developer of software that has zsh completions,
I first had to learn that the Debian location, which I had made my
software's Makefile install to, is non-standard (which took a while
since I use Debian everywhere). Then I had to grapple with the question
of how to deal with this inconsistency; should I try to probe if it's a
Debian system or what?

For me this involved looking at how several other Debian packages that
ship files in /usr/share/zsh/vendor-completions got them there. I
learned that few upstream software packages bother to probe for the
correct location, the one I found that does probe does so in a way that
would not work if building the software with zsh not installed. I
concluded a build system option and documentation was the sanest
approach for my software. The Debian package of my software will need
to use that in its debian/rules.

The rationalle for the change in #620452 seems too weak to justify this
added complexity. zsh could at least continue looking in the default
location as well as whatever other locations Debian wants to patch in.

-- Package-specific info:

Packages which provide vendor completions:

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name              Version       Architecture Description
+++-=================-=============-============-===============================================================
ii  borgbackup        1.1.10-2      amd64        deduplicating and compressing backup program
ii  curl              7.65.1-1      amd64        command line tool for transferring data with URL syntax
ii  git-annex         7.20190129-3  amd64        manage files with git, without checking their contents into git
ii  meson             0.51.1-1      all          high-productivity build system
ii  mpv               0.29.1-1      amd64        video player based on MPlayer/mplayer2
ii  ninja-build       1.9.0-2       amd64        small build system closest in spirit to Make
ii  pulseaudio        12.2-4        amd64        PulseAudio sound server
ii  restic            0.9.4+ds-2+b1 amd64        backup program with multiple revisions, encryption and more
ii  systemd           241-7         amd64        system and service manager
ii  systemd-container 241-7         amd64        systemd container/nspawn tools
ii  torsocks          2.3.0-2       amd64        use SOCKS-friendly applications with Tor
ii  udev              241-7         amd64        /dev/ and hotplug management daemon
ii  vlc-bin           3.0.7.1-3     amd64        binaries from VLC
ii  youtube-dl        2019.07.02-1  all          downloader of videos from YouTube and other sites

dpkg-query: no path found matching pattern /usr/share/zsh/vendor-functions/


-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'unstable'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-5-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_USER, TAINT_WARN, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8), LANGUAGE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages zsh depends on:
ii  libc6       2.28-10
ii  libcap2     1:2.25-2
ii  libtinfo6   6.1+20190713-1
ii  zsh-common  5.7.1-1

Versions of packages zsh recommends:
ii  libc6         2.28-10
ii  libncursesw6  6.1+20190713-1
ii  libpcre3      2:8.39-12

Versions of packages zsh suggests:
pn  zsh-doc  <none>

-- no debconf information

-- 
see shy jo

[1] per the FHS, the actually site-specific directory is
    /usr/local/share/zsh/site-functions, which zsh also looks in
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-zsh-devel/attachments/20190816/0760785e/attachment.sig>


More information about the Pkg-zsh-devel mailing list