Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

completion functions reorganisation and cleanup



We carry a few completion functions that have their own licence terms
listed in their headers. In some cases packagers need to jump through
hoops to accomodate this. There are probably also cases where they ought
to but it has gone unnoticied. I'm not especially keen to be a stickler
for licences but we might be doing some packagers a favour by making a
clearer distinction.

How about the following patch to add in an extra directory for
completions that will NOT be installed by default? A configure option is
there so tweaking of config.modules is not required. I have named the
directory `Contrib' which isn't a particularly accurate description of
its contents. If anything they are not contributed but the name might be
a good match to expectations for the contents. Any better ideas would
be good, though we should perhaps first decide on what the criteria
should be for being moved to the non-Default-installed directory. Other
criteria that come to mind are:
    - low quality,
    - poorly maintained,
    - obscure command
    - dead upstream

We might also consider pulling in the whole zsh-completions project,
perhaps updating periodically via git-subtree rather than with a view to
replacing it.

Differently licenced functions are: _hg, _qdbus, _osc, _darcs and _zypper. 
_hg is carried by upstream so I would suggest we just remove it. The same
applies to _notmuch (and possibly _git-buildpackage - that needs verifying on
Debian). _osc and _zypper would be good candidates for trying to persuade
upstream to take them.

Where the upstream projects are dead, there may be users around long
afterwards so I'm not sure I would be too quick to remove completions.
They also have the advantage of being stable and not breaking our
completions. But functions for dead projects, that I would suggest
removing include:

prcs - this was fairly well known 20 years ago and the completion is
       good quality (by Sven) but appears to be very dead
vux
uzbl
flasher
elm
tpconfig
sablotron - not sure, sources still there on sourceforge but not packaged
raggle - website only down since Feb 2016, not in Debian

aap, cplay, totd also seem to be dead but still are packaged on either
Debian or FreeBSD so should perhaps be kept.

Should we just remove these? Or perhaps announce for 5.8 that they will
go in 5.9? Any individual objections, or additions.

The only thing that really comes to mind for the "obscure command"
criteria is mysqldiff. Sadly for "poorly maintained" there are quite a
few.

Oliver

diff --git a/INSTALL b/INSTALL
index cf70893a7..9edcc63f6 100644
--- a/INSTALL
+++ b/INSTALL
@@ -479,6 +479,12 @@ want; in particular, the zsh/complete and zsh/zftp modules are of much less
 use without the associated functions.  The functions listed with zsh/zle
 are not used by the editor unless you explicitly load them, however.
 
+Some of the completion functions have been separated out into a `Contrib'
+directory where they are licenced under different terms to the rest of the
+zsh distribution - see the headers of individual files for details.  These
+are not installed by default but you can use the configure option
+--enable-contrib-completions to include them in config.modules.
+
 You can also use the configure option --enable-function-subdirs to allow
 shell functions to be installed into subdirectories of the function
 directory, i.e. `Base/*' files will be installed into `FNDIR/Base, and so
diff --git a/Src/Zle/complete.mdd b/Src/Zle/complete.mdd
index 77e33504d..93e9084dc 100644
--- a/Src/Zle/complete.mdd
+++ b/Src/Zle/complete.mdd
@@ -1,8 +1,7 @@
 name=zsh/complete
 link=either
 load=yes
-functions='Completion/*comp* Completion/AIX/*/* Completion/BSD/*/* Completion/Base/*/* Completion/Cygwin/*/* Completion/Darwin/*/* Completion/Debian/*/* Completion/Linux/*/* Completion/Mandriva/*/* Completion/Redhat/*/* Completion/Solaris/*/* Completion/openSUSE/*/* Completion/Unix/*/* Completion/X/*/* Completion/Zsh/*/*'
-
+functions='Completion/*comp* Completion/AIX/*/* Completion/BSD/*/* Completion/Base/*/* Completion/Cygwin/*/* Completion/Darwin/*/* Completion/Debian/*/* Completion/Linux/*/* Completion/Mandriva/*/* Completion/Redhat/*/* Completion/Solaris/*/* Completion/openSUSE/*/* Completion/Unix/*/* Completion/X/*/*'`if test x$enable_contrib_completions = xyes; then echo " Completion/Contrib/*/*"; fi`
 moddeps="zsh/zle"
 
 autofeatures="b:compadd b:compset c:prefix c:suffix c:between c:after"
diff --git a/configure.ac b/configure.ac
index 8a2664ed2..8c8790767 100644
--- a/configure.ac
+++ b/configure.ac
@@ -344,6 +344,9 @@ else
   FUNCTIONS_SUBDIRS=no
 fi
 
+AC_ARG_ENABLE(contrib-completions,
+AS_HELP_STRING([--enable-contrib-completions],[install additional completion functions]))
+
 ifdef([additionalfpath],[undefine([additionalfpath])])dnl
 AC_ARG_ENABLE(additional-fpath,
 AS_HELP_STRING([--enable-additional-fpath=DIR],[add directories to default function path]),



Messages sorted by: Reverse Date, Date, Thread, Author