X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=bash-completion-rpm-cache.patch;h=14776144fb7b28c5eb1712fb743dcc1b6b9f77b4;hb=f11c616c44d760c1c90c38c2a1b029e391c667a7;hp=7f8190e8915a54504896d92ba7edcc1bdee1429e;hpb=8369e19809be6ec9470f59a97ec745acac1f3831;p=packages%2Fbash-completion.git diff --git a/bash-completion-rpm-cache.patch b/bash-completion-rpm-cache.patch index 7f8190e..1477614 100644 --- a/bash-completion-rpm-cache.patch +++ b/bash-completion-rpm-cache.patch @@ -1,42 +1,20 @@ ---- bash_completion/bash_completion~ 2006-03-01 18:20:18.000000000 +0200 -+++ bash_completion/bash_completion 2008-01-08 02:50:17.000000000 +0200 -@@ -1732,29 +1732,20 @@ - # +Support rpm (jbj rpm 4.4.7+) hrmib exports for rpm -qa filter (via %_hrmib_path /var/cache/hrmib) + +-- +Signed-off-by: Elan Ruusamäe + +--- bash-completion-1.2/contrib/rpm~ 2010-06-13 13:21:19.000000000 +0300 ++++ bash-completion-1.2/contrib/rpm 2010-08-09 21:52:51.377872623 +0300 +@@ -5,6 +5,12 @@ + _rpm_installed_packages() { -- local ver nodig nosig -+ # refresh cache if writable -+ if [ /var/cache/rpmpkgs.txt -ot /var/lib/rpm/Packages -a -w /var/cache/rpmpkgs.txt ]; then -+ # we grab the output to local variable to prevent possible race -+ local tmp=$(rpm -qa --nodigest --nosignature --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n' | LC_ALL=C sort) -+ echo "$tmp" > /var/cache/rpmpkgs.txt -+ fi - -- if [ -r /var/log/rpmpkgs -a \ -- /var/log/rpmpkgs -nt /var/lib/rpm/Packages ]; then -+ if [ -r /var/cache/rpmpkgs.txt -a /var/cache/rpmpkgs.txt -nt /var/lib/rpm/Packages ]; then - # using RHL 7.2 or later - this is quicker than querying the DB - COMPREPLY=( $( sed -ne \ -- 's|^\('$cur'.*\)-[0-9a-zA-Z._]\+-[0-9a-z.@]\+.*\.rpm$|\1|p' \ -- /var/log/rpmpkgs ) ) -+ 's|^\('$cur'.*\)\.rpm$|\1|p' \ -+ /var/cache/rpmpkgs.txt ) ) - else -- nodig="" -- nosig="" -- ver=$(rpm --version) -- ver=${ver##* } -- -- if [[ "$ver" > "4.0.4" ]]; then -- nodig="--nodigest" -- fi -- if [[ "$ver" > "4.0.99" ]]; then -- nosig="--nosignature" -- fi -- -- COMPREPLY=( $( rpm -qa $nodig $nosig | sed -ne \ -- 's|^\('$cur'.*\)-[0-9a-zA-Z._]\+-[0-9a-z.@]\+$|\1|p' ) ) -+ COMPREPLY=( $( rpm -qa --nodigest --nosignature --qf '%{name}-%{version}-%{release}.%{arch}\n' "$cur*" ) ) - fi - } ++ # if rpm (4.4.7+) is configured to export it's rpmdb to /var/cache/hrmib (%_hrmib_path) ++ if [ -d /var/cache/hrmib -a -r /var/cache/hrmib ]; then ++ COMPREPLY=( $( LC_ALL=C command ls -1 /var/cache/hrmib | sed -ne '/^'$cur'/p') ) ++ return ++ fi ++ + local nodig="$1" nosig="$2" + if [[ -r /var/log/rpmpkgs && \