diff --git a/.bash-completion.metadata b/.bash-completion.metadata new file mode 100644 index 0000000..2e4a519 --- /dev/null +++ b/.bash-completion.metadata @@ -0,0 +1 @@ +2260342127086cfedd4801f796fdaaa051411a14 SOURCES/bash-completion-2.7.tar.xz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4bc9993 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/bash-completion-2.7.tar.xz diff --git a/SOURCES/bash-completion-1.99-noblacklist.patch b/SOURCES/bash-completion-1.99-noblacklist.patch new file mode 100644 index 0000000..f3cd42e --- /dev/null +++ b/SOURCES/bash-completion-1.99-noblacklist.patch @@ -0,0 +1,12 @@ +diff -up bash-completion-1.99/bash_completion~ bash-completion-1.99/bash_completion +--- bash-completion-1.99/bash_completion~ 2012-01-08 01:03:46.000000000 +0200 ++++ bash-completion-1.99/bash_completion 2012-01-08 13:50:33.412012530 +0200 +@@ -45,7 +45,7 @@ readonly BASH_COMPLETION_COMPAT_DIR + + # Blacklisted completions, causing problems with our code. + # +-_blacklist_glob='@(acroread.sh)' ++_blacklist_glob='@()' + + # Turn on extended globbing and programmable completion + shopt -s extglob progcomp diff --git a/SOURCES/bash-completion-2.9-override-completions.patch b/SOURCES/bash-completion-2.9-override-completions.patch new file mode 100644 index 0000000..d0fe758 --- /dev/null +++ b/SOURCES/bash-completion-2.9-override-completions.patch @@ -0,0 +1,35 @@ +diff --git a/README.md b/README.md +--- a/README.md ++++ b/README.md +@@ -121,6 +121,31 @@ A. No. Use `M-/` to (in the words of the bash man page) attempt file + A. Put them in `~/.bash_completion`, which is parsed at the end of the + main completion script. See also the next question. + ++**Q. How can I override a completion shipped by bash-completion?** ++ ++A. Install a local completion of your own appropriately for the desired ++ command, and it will take precedence over the one shipped by us. See the ++ next answer for details where to install it, if you are doing it on per ++ user basis. If you want to do it system wide, you can install eagerly ++ loaded files in `compatdir` (see a couple of questions further down for ++ more info) and install a completion for the commands to override ++ completions shipped by us. ++ ++ If you want to use bash's default completion instead of one of ours, ++ something like this should work (where `$cmd` is the command to override ++ completion for): `complete -o default -o bashdefault $cmd` ++ ++**Q. Where should I install my own local completions?** ++ ++A. Put them in the `completions` subdir of `$BASH_COMPLETION_USER_DIR` ++ (defaults to `$XDG_DATA_HOME/bash-completion` or ++ `~/.local/share/bash-completion` ++ if `$XDG_DATA_HOME` is not set) to have them loaded on demand. ++ See also the next question's answer for considerations for these ++ files' names, they apply here as well. Alternatively, you can write ++ them directly in `~/.bash_completion` which is loaded eagerly by ++ our main script. ++ + **Q. I author/maintain package X and would like to maintain my own + completion code for this package. Where should I put it to be sure + that interactive bash shells will find it and source it?** diff --git a/SOURCES/bash-completion-manpath.patch b/SOURCES/bash-completion-manpath.patch new file mode 100644 index 0000000..fc8b39d --- /dev/null +++ b/SOURCES/bash-completion-manpath.patch @@ -0,0 +1,14 @@ +diff --git a/completions/man b/completions/man +--- a/completions/man ++++ b/completions/man +@@ -53,9 +53,7 @@ _man() + return + fi + +- local manpath="$MANPATH" +- [[ -z $manpath ]] && \ +- manpath=$( manpath 2>/dev/null || command man -w 2>/dev/null ) ++ local manpath=$( manpath 2>/dev/null || command man -w 2>/dev/null ) + [[ -z $manpath ]] && manpath="/usr/share/man:/usr/local/share/man" + + # determine manual section to search diff --git a/SOURCES/bash-completion-rfkill.patch b/SOURCES/bash-completion-rfkill.patch new file mode 100644 index 0000000..15299cf --- /dev/null +++ b/SOURCES/bash-completion-rfkill.patch @@ -0,0 +1,27 @@ +diff --git a/completions/Makefile.am b/completions/Makefile.am +--- a/completions/Makefile.am ++++ b/completions/Makefile.am +@@ -315,7 +315,7 @@ bashcomp_DATA = 2to3 \ + reportbug \ + _reptyr \ + resolvconf \ +- rfkill \ ++ _rfkill \ + ri \ + rmlist \ + rmmod \ +diff --git a/completions/rfkill b/completions/_rfkill +similarity index 86% +rename from completions/rfkill +rename to completions/_rfkill +--- a/completions/rfkill ++++ b/completions/_rfkill +@@ -1,5 +1,8 @@ + # bash completion for rfkill -*- shell-script -*- + ++# Use of this file is deprecated on systems with util-linux >= 2.31, which ++# ships completion for the rfkill included with it. ++ + _rfkill() + { + local cur prev words cword diff --git a/SPECS/bash-completion.spec b/SPECS/bash-completion.spec new file mode 100644 index 0000000..04b2815 --- /dev/null +++ b/SPECS/bash-completion.spec @@ -0,0 +1,189 @@ +# Expected failures in mock, hangs in koji +%bcond_with tests +# The *.py files we ship are not python scripts, #813651 +%global _python_bytecompile_errors_terminate_build 0 + +Name: bash-completion +Version: 2.7 +Release: 5%{?dist} +Epoch: 1 +Summary: Programmable completion for Bash + +License: GPLv2+ +URL: https://github.com/scop/bash-completion +Source0: https://github.com/scop/bash-completion/releases/download/%{version}/%{name}-%{version}.tar.xz +# https://bugzilla.redhat.com/677446, see also redefine_filedir comments +Patch0: %{name}-1.99-noblacklist.patch +# It should be removed while rebasing to bash-completion-2.8 +Patch1: %{name}-rfkill.patch +# It should be removed while rebasing to bash-completion-2.8 +Patch2: %{name}-manpath.patch +Patch3: %{name}-2.9-override-completions.patch + +BuildArch: noarch +%if %{with tests} +BuildRequires: dejagnu +BuildRequires: screen +BuildRequires: tcllib +%endif +# Needed for rfkill patch as it modifies Makefile.am +# It should be removed while rebasing to bash-completion-2.8 +BuildRequires: automake +Requires: bash >= 4.1 + +%description +bash-completion is a collection of shell functions that take advantage +of the programmable completion feature of bash. + +%prep +%autosetup -p1 + +%build +# Needed for rfkill patch as it modifies Makefile.am +# It should be removed while rebasing to bash-completion-2.8 +autoreconf -fi -v +%configure +%make_build + +cat <redefine_filedir +# This is a copy of the _filedir function in bash_completion, included +# and (re)defined separately here because some versions of Adobe +# Reader, if installed, are known to override this function with an +# incompatible version, causing various problems. +# +# https://bugzilla.redhat.com/677446 +# http://forums.adobe.com/thread/745833 + +EOF +sed -ne '/^_filedir\s*(/,/^}/p' bash_completion >>redefine_filedir + + +%install +%make_install +install -Dpm 644 redefine_filedir \ + %{buildroot}%{_sysconfdir}/bash_completion.d/redefine_filedir + +# Updated completion shipped in cowsay package: +rm %{buildroot}%{_datadir}/bash-completion/completions/{cowsay,cowthink} + + +%check +# For some tests involving non-ASCII filenames +export LANG=en_US.UTF-8 +%if %{with tests} +# This stuff borrowed from dejagnu-1.4.4-17 (tests need a terminal) +tmpfile=$(mktemp) +screen -D -m sh -c '( make check ; echo $? ) >'$tmpfile +cat $tmpfile +result=$(tail -n 1 $tmpfile) +rm -f $tmpfile +exit $result +%else +make -C completions check +%endif + + +%files +%license COPYING +%doc AUTHORS CHANGES CONTRIBUTING.md README.md +%doc doc/bash_completion.txt +%config(noreplace) %{_sysconfdir}/profile.d/bash_completion.sh +%{_sysconfdir}/bash_completion.d/ +%{_datadir}/bash-completion/ +%{_datadir}/cmake/ +%{_datadir}/pkgconfig/bash-completion.pc + + +%changelog +* Mon Aug 13 2018 Siteshwar Vashisht - 1:2.7-5 +- Document how to override default completions + Resolves: #1575573 + +* Wed Mar 14 2018 Siteshwar Vashisht - 1:2.7-4 +- Do not use $MANPATH directly + Resolves: #1495055 + +* Wed Feb 07 2018 Fedora Release Engineering - 1:2.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Mon Oct 09 2017 Siteshwar Vashisht - 1:2.7-2 +- Rename rfkill function to avoid conflict with util-linux >= 2.31 + Resolves: #1494855 + +* Thu Oct 05 2017 Siteshwar Vashisht - 1:2.7-1 +- Update to 2.7 + +* Wed Jul 26 2017 Fedora Release Engineering - 1:2.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Tue Jun 27 2017 Ville Skyttä - 1:2.6-1 +- Update to 2.6 + +* Fri Feb 10 2017 Fedora Release Engineering - 1:2.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Sat Feb 4 2017 Ville Skyttä - 1:2.5-1 +- Update to 2.5 + +* Fri Aug 12 2016 Ville Skyttä - 1:2.4-1 +- Update to 2.4 + +* Mon Mar 28 2016 Ville Skyttä - 1:2.3-1 +- Update to 2.3 + +* Thu Mar 3 2016 Ville Skyttä - 1:2.2-1 +- Update to 2.2 + +* Wed Feb 03 2016 Fedora Release Engineering - 1:2.1-9.20150513git1950590 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 1:2.1-8.20150513git1950590 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu May 14 2015 Ville Skyttä - 1:2.1-7.20150513git1950590 +- Autogenerate redefine_filedir (fixes #1171396 in it too) + +* Wed May 13 2015 Ville Skyttä - 1:2.1-6.20150513git1950590 +- Update to current upstream git (fixes #1171396) +- Move pre-1.90 %%changelog entries to CHANGES.package.old + +* Mon Nov 10 2014 Ville Skyttä - 1:2.1-6.20141110git52d8316 +- Update to current upstream git (fixes #744406, #949479, #1090481, #1015935, + #1132959, #1135489) +- Clean up no longer needed specfile conditionals +- Mark COPYING as %%license where applicable + +* Sat Jun 07 2014 Fedora Release Engineering - 1:2.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue Dec 17 2013 Ville Skyttä - 1:2.1-4 +- Ship bash_completion.txt. +- Make profile.d scriptlet noreplace again. + +* Sat Aug 03 2013 Fedora Release Engineering - 1:2.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue Apr 9 2013 Ville Skyttä - 1:2.1-2 +- Don't install nmcli completion on F-18+ (#950071). + +* Mon Apr 8 2013 Ville Skyttä - 1:2.1-1 +- Update to 2.1 (fixes #860510, #906469, #912113, #919246, #928253). +- Don't ship completions included in util-linux 2.23-rc2 for F-19+. + +* Wed Feb 13 2013 Fedora Release Engineering - 1:2.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Wed Jul 18 2012 Fedora Release Engineering - 1:2.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Jun 19 2012 Ville Skyttä - 1:2.0-1 +- Update to 2.0 (fixes #817902, #831835). +- Don't try to python-bytecompile our non-python *.py (#813651). + +* Sun Jan 8 2012 Ville Skyttä - 1:1.99-1 +- Update to 1.99. + +* Fri Nov 4 2011 Ville Skyttä - 1:1.90-1 +- Update to 1.90. +- Specfile cleanups. +- Move pre-1.2 %%changelog entries to CHANGES.package.old.