]> git.pld-linux.org Git - packages/bash-completion.git/blame - bash-completion.spec
- consistent with trigger
[packages/bash-completion.git] / bash-completion.spec
CommitLineData
d29cc16a
ER
1# TODO
2# - bittorrent complete doesn't actually handle our prognames
3# - handle multiple package links (freeciv case)
4# - handle upgrade path to symlinks (see notes in install section)
7a6139c0 5Summary: bash-completion offers programmable completion for bash
dc5beabb 6Summary(pl.UTF-8): Programowalne uzupełnianie nazw dla basha
d27c9ff9 7Name: bash-completion
d710ecea 8Version: 20081219
d29cc16a 9Release: 2
aa677e2c 10License: GPL
7a6139c0 11Group: Applications/Shells
d710ecea
ER
12Source0: ftp://distfiles.gentoo.org/pub/gentoo/distfiles/%{name}-%{version}.tar.bz2
13# Source0-md5: 6b8f924417fb8cd758778025d97f2853
80319ab9 14Source1: %{name}-poldek.sh
f4f5d91d
ER
15Source2: %{name}.sh
16Patch0: %{name}-rpm-cache.patch
d0a05e0d 17Patch1: %{name}-mplayer.patch
d710ecea 18URL: http://bash-completion.alioth.debian.org/
8820cfb2 19Requires(triggerpostun): sed >= 4.0
7a6139c0 20Requires: bash >= 2.05a-3
80319ab9 21Obsoletes: bash-completion-rpm-cache
c65ce1a0 22Conflicts: rpm < 4.4.9-44
23c95f44 23BuildArch: noarch
7a6139c0 24BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
aa677e2c 25
26%description
27bash-completion is a collection of shell functions that take advantage
7a6139c0 28of the programmable completion feature of bash 2.04 and later.
aa677e2c 29
5b7e80f9
JR
30%description -l pl.UTF-8
31bash-completion jest kolekcją funkcji shella, które opierają się na
32wbudowanych rozszerzeniach basha 2.04 lub późniejszego umożliwiającego
33kompletowanie parametrów linii poleceń.
aa677e2c 34
35%prep
d710ecea 36%setup -q -n %{name}
deca8a33 37%patch0 -p1
e9c9a2cf 38%patch1 -p1
d29cc16a
ER
39cp -a %{SOURCE1} contrib/poldek
40
41# cleanup backups after patching
42find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
43
44# packaged by subversion.spec
45rm contrib/_subversion
46
47# No package matches '*/apache2ctl'
48rm contrib/apache2ctl
49
50# No PLD package or no such binary to complete on
51rm contrib/{harbour,larch,lisp,modules,monodevelop,p4}
aa677e2c 52
e9c9a2cf
ER
53%install
54rm -rf $RPM_BUILD_ROOT
d29cc16a
ER
55install -d $RPM_BUILD_ROOT{%{_sysconfdir}/bash_completion.d,/etc/shrc.d,%{_datadir}/%{name}}
56
57T=$(grep -c '^%%bashcomp_trigger' %{_specdir}/%{name}.spec)
58F=$(grep -c '^%%{_datadir}/%%{name}/' %{_specdir}/%{name}.spec)
59if [ $T != $F ]; then
60 check_triggers() {
61 echo >&2 "ERROR: triggers count and packaged files mismatch"
62 for f in $(awk '/^%%bashcomp_trigger/{print $3 ? $3 : $2}' %{_specdir}/%{name}.spec); do
63 A=$(awk -vf=$f '$0 == "%%{_datadir}/%%{name}/" f {print}' %{_specdir}/%{name}.spec)
64 if [ -z "$A" ]; then
65 echo >&2 "!! $f not listed in %%files"
66 fi
67 done
68 for f in $(awk -F/ '$0 ~ "^%%{_datadir}/%%{name}/"{print $NF}' %{_specdir}/%{name}.spec); do
69 A=$(awk -vf=$f '/^%%bashcomp_trigger/ && ($3 ? $3 : $2) == f' %{_specdir}/%{name}.spec)
70 if [ -z "$A" ]; then
71 echo >&2 "!! $f has no trigger"
72 fi
73 done
74 }
75 check_triggers
76 exit 1
77fi
78
79cp -a bash_completion $RPM_BUILD_ROOT%{_sysconfdir}
80cp -a contrib/* $RPM_BUILD_ROOT%{_datadir}/%{name}
f4f5d91d 81install %{SOURCE2} $RPM_BUILD_ROOT/etc/shrc.d
8820cfb2 82
d29cc16a
ER
83# Take care of contrib files
84for a in contrib/*; do
85 f=${a##*/}
9e60043b 86 ln -s ../..%{_datadir}/%{name}/$f $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
d29cc16a
ER
87 echo "%ghost %{_sysconfdir}/bash_completion.d/$f"
88done > %{name}-ghost.list
89
8820cfb2
ER
90%clean
91rm -rf $RPM_BUILD_ROOT
92
80319ab9 93%triggerpostun -- %{name} < 20050721-3.9
8820cfb2 94sed -i -e '/^# START bash completion/,/^# END bash completion/d' /etc/bashrc
aa677e2c 95
d29cc16a
ER
96%triggerpostun -- %{name} < 20081219-0.1
97# don't do anything on --downgrade
98if [ $1 -le 1 ]; then
99 exit 0
100fi
101# No rpm in vservers
102if [ ! -x /bin/rpm ]; then
103 exit 0
104fi
105
106# This ugly trigger is here because we package same pathnames as ghost
107# meaning the files will lay around from previous package version.
108
109# get files which are ghost for us
110files=$(rpm -ql %{name}-%{version}-%{release} | grep %{_sysconfdir}/bash_completion.d/)
111
112# this is to get old pkg NVR, actually gives list of files that are
113# packaged by other versions than this installed one, which is ok even for
114# multiple bash-completion pkgs being installed.
115oldpkg=$(rpm -qf $(echo "$files") 2>/dev/null | grep -v 'is not' | sort -u | grep -v %{name}-%{version}-%{release})
116for a in $(rpm -ql $oldpkg | grep %{_sysconfdir}/bash_completion.d/); do
117 # remove files from old package (which are ghost in new pkg),
118 # if not already converted to symlink
119 [ -L $a ] || rm -f $a
120done
121
122# Usage: bashcomp_trigger PACKAGENAME [SCRIPTNAME]
123%define bashcomp_trigger() \
124%triggerin -- %1\
125if [ ! -L %{_sysconfdir}/bash_completion.d/%{?2}%{!?2:%1} ] ; then\
126 ln -sf ../..%{_datadir}/%{name}/%{?2}%{!?2:%1} %{_sysconfdir}/bash_completion.d\
127fi\
128%triggerun -- %1\
129[ $2 -gt 0 ] || rm -f %{_sysconfdir}/bash_completion.d/%{?2}%{!?2:%1}\
130%{nil}
131
132%bashcomp_trigger bitkeeper
133%bashcomp_trigger BitTorrent bittorrent
134%bashcomp_trigger cksfv
135%bashcomp_trigger clisp
136%bashcomp_trigger dsniff
137%bashcomp_trigger freeciv-client,freeciv-server freeciv
138%bashcomp_trigger gcc-ada gnatmake
139%bashcomp_trigger gcl
140%bashcomp_trigger gkrellm
141%bashcomp_trigger gnupg2 gpg2
142%bashcomp_trigger lilypond
143%bashcomp_trigger mailman
144%bashcomp_trigger mcrypt
145%bashcomp_trigger mercurial hg
146%bashcomp_trigger mtx
147%bashcomp_trigger openssh-clients ssh
148%bashcomp_trigger poldek
149%bashcomp_trigger povray
150%bashcomp_trigger QtDBus qdbus
151%bashcomp_trigger ruby-modules ri
152%bashcomp_trigger sbcl
153%bashcomp_trigger sitecopy
154%bashcomp_trigger snownews
155%bashcomp_trigger svk
156%bashcomp_trigger unace
157%bashcomp_trigger unixODBC isql
158%bashcomp_trigger unrar
159
160%files -f %{name}-ghost.list
aa677e2c 161%defattr(644,root,root,755)
d710ecea 162%doc README TODO debian/changelog debian/copyright
0b5a8e37 163/etc/shrc.d/%{name}.sh
d29cc16a
ER
164%{_sysconfdir}/bash_completion
165%dir %{_sysconfdir}/bash_completion.d
166%dir %{_datadir}/%{name}
167# we list all files to be sure we have all of them handled by triggers
168%{_datadir}/%{name}/bitkeeper
169%{_datadir}/%{name}/bittorrent
170%{_datadir}/%{name}/cksfv
171%{_datadir}/%{name}/clisp
172%{_datadir}/%{name}/dsniff
173%{_datadir}/%{name}/freeciv
174%{_datadir}/%{name}/gcl
175%{_datadir}/%{name}/gkrellm
176%{_datadir}/%{name}/gnatmake
177%{_datadir}/%{name}/gpg2
178%{_datadir}/%{name}/hg
179%{_datadir}/%{name}/isql
180%{_datadir}/%{name}/lilypond
181%{_datadir}/%{name}/mailman
182%{_datadir}/%{name}/mcrypt
183%{_datadir}/%{name}/mtx
184%{_datadir}/%{name}/poldek
185%{_datadir}/%{name}/povray
186%{_datadir}/%{name}/qdbus
187%{_datadir}/%{name}/ri
188%{_datadir}/%{name}/sbcl
189%{_datadir}/%{name}/sitecopy
190%{_datadir}/%{name}/snownews
191%{_datadir}/%{name}/ssh
192%{_datadir}/%{name}/svk
193%{_datadir}/%{name}/unace
194%{_datadir}/%{name}/unrar
This page took 0.051695 seconds and 4 git commands to generate.