]> git.pld-linux.org Git - packages/bash-completion.git/blob - bash-completion.spec
- fix /sbin/service completion
[packages/bash-completion.git] / bash-completion.spec
1 # vim:ft=spec
2 # TODO
3 # - bittorrent complete doesn't actually handle our prognames
4 # - use mkinitrd and update for geninitrd
5 # - can we have duplicate trigger on pwdutils pkg? merge files?
6 # - fix vim not to mark this file as bash
7 Summary:        bash-completion offers programmable completion for bash
8 Summary(pl.UTF-8):      Programowalne uzupełnianie nazw dla basha
9 Name:           bash-completion
10 Version:        1.1
11 Release:        1
12 Epoch:          1
13 License:        GPL
14 Group:          Applications/Shells
15 Source0:        http://bash-completion.alioth.debian.org/files/%{name}-%{version}.tar.gz
16 # Source0-md5:  593d3edcf287b9e9d735049bd4d3f229
17 Source1:        %{name}-poldek.sh
18 Source2:        %{name}.sh
19 Patch0:         %{name}-rpm-cache.patch
20 Patch1:         %{name}-service.patch
21 URL:            http://bash-completion.alioth.debian.org/
22 Requires(triggerpostun):        sed >= 4.0
23 Requires:       bash >= 2.05a-3
24 Obsoletes:      bash-completion-rpm-cache
25 Conflicts:      rpm < 4.4.9-44
26 BuildArch:      noarch
27 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
28
29 %description
30 bash-completion is a collection of shell functions that take advantage
31 of the programmable completion feature of bash 2.04 and later.
32
33 %description -l pl.UTF-8
34 bash-completion jest kolekcją funkcji shella, które opierają się na
35 wbudowanych rozszerzeniach basha 2.04 lub późniejszego umożliwiającego
36 kompletowanie parametrów linii poleceń.
37
38 %prep
39 %setup -q
40 %patch0 -p1
41 %patch1 -p1
42 cp -a %{SOURCE1} contrib/poldek
43
44 # cleanup backups after patching
45 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
46
47 # packaged by subversion.spec
48 rm contrib/_subversion
49 # soon packaged by yum, but not yet
50 mv contrib/{_,}yum
51
52 # No package matches '*/apache2ctl'
53 rm contrib/apache2ctl
54
55 # No PLD package or no such binary to complete on
56 rm contrib/{larch,lisp,modules,monodevelop,p4,cowsay,cpan2dist}
57 rm contrib/{cfengine,mkinitrd,repomanage,rpmcheck}
58 rm contrib/{kldload,pkg_install,portupgrade,pkgtools} # FreeBSD Stuff
59 rm contrib/{apt-build,dselect,mock,reportbug,sysv-rc,update-alternatives}
60
61 # no package to hook to
62 rm contrib/configure
63
64 # split freeciv-client,freeciv-server as we have these in separate packages
65 mv contrib/freeciv .
66 %{__sed} -ne '/civserver completion/,/complete -F _civserver civserver/p;/# Local/,/# ex:/p' freeciv > contrib/freeciv-server
67 %{__sed} -ne '/civclient completion/,/complete -F _civclient civclient/p;/# Local/,/# ex:/p' freeciv > contrib/freeciv-client
68 if [ $(md5sum freeciv | awk '{print $1}') != "aaaba09338c01cf3c14bbd1bdcb0897f" ]; then
69         : check that split out contrib/freeciv-{client,server} are ok and update md5sum
70         exit 1
71 fi
72
73 # split munin as we have subpackage for node
74 mv contrib/munin-node .
75 %{__sed} -ne '1,2p;/have munin-update /,/complete -F _munin-update/p;/have munin-run /,/complete -F _munin-run/p;/# Local/,/# ex:/p' munin-node > contrib/munin
76 %{__sed} -ne '1,2p;/have munin-node-configure /,/complete -F _munin-node-configure/p;/# Local/,/# ex:/p' munin-node > contrib/munin-node
77 if [ $(md5sum munin-node | awk '{print $1}') != "78a95bb707452778355af992e8fe30fa" ]; then
78         : check that split out contrib/munin{,-node} are ok and update md5sum
79         exit 1
80 fi
81
82 # we have lastlog in sysvinit package
83 mv contrib/shadow .
84 %{__sed} -ne '1,/complete -F _faillog faillog/p' shadow > contrib/shadow
85 %{__sed} -ne '1,2p;/have lastlog/,$p' shadow > contrib/sysvinit
86 if [ $(md5sum shadow | awk '{print $1}') != "c62642a786329aa07702b0c09965a9e8" ]; then
87         : check that split out contrib/{shadow,sysvinit} are ok and update md5sum
88         exit 1
89 fi
90
91 %install
92 rm -rf $RPM_BUILD_ROOT
93 install -d $RPM_BUILD_ROOT{%{_sysconfdir}/bash_completion.d,/etc/shrc.d,%{_datadir}/%{name}}
94
95 T=$(grep -c '^%%bashcomp_trigger' %{_specdir}/%{name}.spec)
96 F=$(grep -c '^%%{_datadir}/%%{name}/' %{_specdir}/%{name}.spec)
97 if [ $T != $F ]; then
98         check_triggers() {
99                 echo >&2 "ERROR: triggers count and packaged files mismatch"
100                 for f in $(awk '/^%%bashcomp_trigger/{print $3 ? $3 : $2}' %{_specdir}/%{name}.spec); do
101                         A=$(awk -vf=$f '$0 == "%%{_datadir}/%%{name}/" f {print}' %{_specdir}/%{name}.spec)
102                         if [ -z "$A" ]; then
103                                 echo >&2 "!! $f not listed in %%files"
104                         fi
105                 done
106                 for f in $(awk -F/ '$0 ~ "^%%{_datadir}/%%{name}/"{print $NF}' %{_specdir}/%{name}.spec); do
107                         A=$(awk -vf=$f '/^%%bashcomp_trigger/ && ($3 ? $3 : $2) == f' %{_specdir}/%{name}.spec)
108                         if [ -z "$A" ]; then
109                                 echo >&2 "!! $f has no trigger"
110                         fi
111                 done
112         }
113         check_triggers
114         exit 1
115 fi
116
117 cp -a bash_completion $RPM_BUILD_ROOT%{_sysconfdir}
118 cp -a contrib/* $RPM_BUILD_ROOT%{_datadir}/%{name}
119 cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/shrc.d
120
121 # Take care of contrib files
122 for a in contrib/*; do
123         f=${a##*/}
124         ln -s ../..%{_datadir}/%{name}/$f $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
125         echo "%ghost %{_sysconfdir}/bash_completion.d/$f"
126 done > %{name}-ghost.list
127
128 %clean
129 rm -rf $RPM_BUILD_ROOT
130
131 %triggerpostun -- %{name} < 20050721-3.9
132 sed -i -e '/^# START bash completion/,/^# END bash completion/d' /etc/bashrc
133
134 %triggerpostun -- %{name} < 20081219-0.1
135 # don't do anything on --downgrade
136 if [ $1 -le 1 ]; then
137         exit 0
138 fi
139 # No rpm in vservers
140 if [ ! -x /bin/rpm ]; then
141         exit 0
142 fi
143
144 # This ugly trigger is here because we package same pathnames as ghost
145 # meaning the files will lay around from previous package version.
146
147 # get files which are ghost for us
148 files=$(rpm -ql %{name}-%{version}-%{release} | grep %{_sysconfdir}/bash_completion.d/)
149
150 # this is to get old pkg NVR, actually gives list of files that are
151 # packaged by other versions than this installed one, which is ok even for
152 # multiple bash-completion pkgs being installed.
153 oldpkg=$(rpm -qf $(echo "$files") 2>/dev/null | grep -v 'is not' | sort -u | grep -v %{name}-%{version}-%{release})
154 for a in $(rpm -ql $oldpkg | grep %{_sysconfdir}/bash_completion.d/); do
155         # remove files from old package (which are ghost in new pkg),
156         # if not already converted to symlink
157         [ -L $a ] || rm -f $a
158 done
159
160 # Usage: bashcomp_trigger PACKAGENAME [SCRIPTNAME]
161 %define bashcomp_trigger() \
162 %triggerin -- %1\
163 if [ ! -L %{_sysconfdir}/bash_completion.d/%{?2}%{!?2:%1} ] ; then\
164         ln -sf ../..%{_datadir}/%{name}/%{?2}%{!?2:%1} %{_sysconfdir}/bash_completion.d\
165 fi\
166 %triggerun -- %1\
167 [ $2 -gt 0 ] || rm -f %{_sysconfdir}/bash_completion.d/%{?2}%{!?2:%1}\
168 %{nil}
169
170 %bashcomp_trigger ant
171 %bashcomp_trigger apt
172 %bashcomp_trigger aptitude
173 %bashcomp_trigger aspell
174 %bashcomp_trigger autorpm
175 %bashcomp_trigger bash bash-builtins
176 %bashcomp_trigger bind-utils
177 %bashcomp_trigger bitkeeper
178 %bashcomp_trigger BitTorrent bittorrent
179 %bashcomp_trigger bluez bluez-utils
180 %bashcomp_trigger bridge-utils brctl
181 %bashcomp_trigger bzip2
182 %bashcomp_trigger cdrkit,cdrtools wodim
183 %bashcomp_trigger cdrtools-mkisofs,dvdrtools-mkisofs genisoimage
184 %bashcomp_trigger chkconfig
185 %bashcomp_trigger cksfv
186 %bashcomp_trigger clisp
187 %bashcomp_trigger coreutils dd
188 %bashcomp_trigger cpio
189 %bashcomp_trigger cups-clients cups
190 %bashcomp_trigger cvsnt,cvs cvs
191 %bashcomp_trigger dhcp-client dhclient
192 %bashcomp_trigger dict
193 %bashcomp_trigger dpkg
194 %bashcomp_trigger dsniff
195 %bashcomp_trigger expat xmlwf
196 %bashcomp_trigger findutils
197 %bashcomp_trigger freeciv-client
198 %bashcomp_trigger freeciv-server
199 %bashcomp_trigger gcc-ada gnatmake
200 %bashcomp_trigger gcc,gcc-java,fortran,gcc-c++ gcc
201 %bashcomp_trigger gcl
202 %bashcomp_trigger gdb
203 %bashcomp_trigger gkrellm
204 %bashcomp_trigger glibc iconv
205 %bashcomp_trigger glibc-misc getent
206 %bashcomp_trigger gnupg2 gpg2
207 %bashcomp_trigger gnupg gpg
208 %bashcomp_trigger gzip
209 %bashcomp_trigger heimdal
210 %bashcomp_trigger ImageMagick imagemagick
211 %bashcomp_trigger info,pinfo info
212 %bashcomp_trigger ipmitool
213 %bashcomp_trigger iptables
214 %bashcomp_trigger jar
215 %bashcomp_trigger java-sun-jre,java-gcj-compat java
216 %bashcomp_trigger kdelibs dcop
217 %bashcomp_trigger ldapvi
218 %bashcomp_trigger lftp
219 %bashcomp_trigger libxml2-progs xmllint
220 %bashcomp_trigger lilo
221 %bashcomp_trigger links
222 %bashcomp_trigger lvm2 lvm
223 %bashcomp_trigger lzma,xz lzma
224 %bashcomp_trigger lzop
225 %bashcomp_trigger mailman
226 %bashcomp_trigger make
227 %bashcomp_trigger man
228 %bashcomp_trigger mc
229 %bashcomp_trigger mcrypt
230 %bashcomp_trigger mdadm
231 %bashcomp_trigger minicom
232 %bashcomp_trigger mplayer
233 %bashcomp_trigger mtx
234 %bashcomp_trigger multisync-msynctool,msynctool msynctool
235 %bashcomp_trigger munin
236 %bashcomp_trigger munin-node
237 %bashcomp_trigger mutt
238 %bashcomp_trigger mysql-client mysqladmin
239 %bashcomp_trigger ncftp
240 %bashcomp_trigger net-tools
241 %bashcomp_trigger nfs-utils rpcdebug
242 %bashcomp_trigger ntp-client ntpdate
243 %bashcomp_trigger openldap
244 %bashcomp_trigger openssh-clients ssh
245 %bashcomp_trigger openssl-tools openssl
246 %bashcomp_trigger pcmciautils cardctl
247 %bashcomp_trigger perl-base perl
248 %bashcomp_trigger pine
249 %bashcomp_trigger pkgconfig pkg-config
250 %bashcomp_trigger poldek
251 %bashcomp_trigger postfix
252 %bashcomp_trigger postgresql-clients postgresql
253 %bashcomp_trigger povray
254 %bashcomp_trigger procps sysctl
255 %bashcomp_trigger pwdutils shadow
256 %bashcomp_trigger pwdutils,shadow-extras chsh
257 %bashcomp_trigger python
258 %bashcomp_trigger qemu
259 %bashcomp_trigger QtDBus qdbus
260 %bashcomp_trigger quota-tools
261 %bashcomp_trigger rcs
262 %bashcomp_trigger rdesktop
263 %bashcomp_trigger resolvconf
264 %bashcomp_trigger rfkill
265 %bashcomp_trigger rpm
266 %bashcomp_trigger rrdtool
267 %bashcomp_trigger rsync
268 %bashcomp_trigger ruby-modules ri
269 %bashcomp_trigger samba-client samba
270 %bashcomp_trigger sbcl
271 %bashcomp_trigger screen
272 %bashcomp_trigger sitecopy
273 %bashcomp_trigger smartmontools,smartsuite smartctl
274 %bashcomp_trigger snownews
275 %bashcomp_trigger strace
276 %bashcomp_trigger svk
277 %bashcomp_trigger tar
278 %bashcomp_trigger tcpdump
279 %bashcomp_trigger tightvnc vncviewer
280 %bashcomp_trigger unace
281 %bashcomp_trigger unixODBC isql
282 %bashcomp_trigger unrar
283 %bashcomp_trigger upstart-SysVinit,SysVinit sysvinit
284 %bashcomp_trigger vpnc
285 %bashcomp_trigger wireless-tools
286 %bashcomp_trigger wvdial
287 %bashcomp_trigger X11,xorg-app-xhost xhost
288 %bashcomp_trigger X11,xorg-app-xrandr xrandr
289 %bashcomp_trigger xen xm
290 %bashcomp_trigger xmms
291 %bashcomp_trigger xz
292 %bashcomp_trigger yp-tools
293 %bashcomp_trigger yum
294 %bashcomp_trigger yum-arch
295
296 %files -f %{name}-ghost.list
297 %defattr(644,root,root,755)
298 %doc README TODO
299 /etc/shrc.d/%{name}.sh
300 %{_sysconfdir}/bash_completion
301 %dir %{_sysconfdir}/bash_completion.d
302 %dir %{_datadir}/%{name}
303 # we list all files to be sure we have all of them handled by triggers
304 %{_datadir}/%{name}/ant
305 %{_datadir}/%{name}/apt
306 %{_datadir}/%{name}/aptitude
307 %{_datadir}/%{name}/aspell
308 %{_datadir}/%{name}/autorpm
309 %{_datadir}/%{name}/bash-builtins
310 %{_datadir}/%{name}/bind-utils
311 %{_datadir}/%{name}/bitkeeper
312 %{_datadir}/%{name}/bittorrent
313 %{_datadir}/%{name}/bluez-utils
314 %{_datadir}/%{name}/brctl
315 %{_datadir}/%{name}/bzip2
316 %{_datadir}/%{name}/cardctl
317 %{_datadir}/%{name}/chkconfig
318 %{_datadir}/%{name}/chsh
319 %{_datadir}/%{name}/cksfv
320 %{_datadir}/%{name}/clisp
321 %{_datadir}/%{name}/cpio
322 %{_datadir}/%{name}/cups
323 %{_datadir}/%{name}/cvs
324 %{_datadir}/%{name}/dcop
325 %{_datadir}/%{name}/dd
326 %{_datadir}/%{name}/dhclient
327 %{_datadir}/%{name}/dict
328 %{_datadir}/%{name}/dpkg
329 %{_datadir}/%{name}/dsniff
330 %{_datadir}/%{name}/findutils
331 %{_datadir}/%{name}/freeciv-client
332 %{_datadir}/%{name}/freeciv-server
333 %{_datadir}/%{name}/gcc
334 %{_datadir}/%{name}/gcl
335 %{_datadir}/%{name}/gdb
336 %{_datadir}/%{name}/genisoimage
337 %{_datadir}/%{name}/getent
338 %{_datadir}/%{name}/gkrellm
339 %{_datadir}/%{name}/gnatmake
340 %{_datadir}/%{name}/gpg
341 %{_datadir}/%{name}/gpg2
342 %{_datadir}/%{name}/gzip
343 %{_datadir}/%{name}/heimdal
344 %{_datadir}/%{name}/iconv
345 %{_datadir}/%{name}/imagemagick
346 %{_datadir}/%{name}/info
347 %{_datadir}/%{name}/ipmitool
348 %{_datadir}/%{name}/iptables
349 %{_datadir}/%{name}/isql
350 %{_datadir}/%{name}/jar
351 %{_datadir}/%{name}/java
352 %{_datadir}/%{name}/ldapvi
353 %{_datadir}/%{name}/lftp
354 %{_datadir}/%{name}/lilo
355 %{_datadir}/%{name}/links
356 %{_datadir}/%{name}/lvm
357 %{_datadir}/%{name}/lzma
358 %{_datadir}/%{name}/lzop
359 %{_datadir}/%{name}/mailman
360 %{_datadir}/%{name}/make
361 %{_datadir}/%{name}/man
362 %{_datadir}/%{name}/mc
363 %{_datadir}/%{name}/mcrypt
364 %{_datadir}/%{name}/mdadm
365 %{_datadir}/%{name}/minicom
366 %{_datadir}/%{name}/mplayer
367 %{_datadir}/%{name}/msynctool
368 %{_datadir}/%{name}/mtx
369 %{_datadir}/%{name}/munin
370 %{_datadir}/%{name}/munin-node
371 %{_datadir}/%{name}/mutt
372 %{_datadir}/%{name}/mysqladmin
373 %{_datadir}/%{name}/ncftp
374 %{_datadir}/%{name}/net-tools
375 %{_datadir}/%{name}/ntpdate
376 %{_datadir}/%{name}/openldap
377 %{_datadir}/%{name}/openssl
378 %{_datadir}/%{name}/perl
379 %{_datadir}/%{name}/pine
380 %{_datadir}/%{name}/pkg-config
381 %{_datadir}/%{name}/poldek
382 %{_datadir}/%{name}/postfix
383 %{_datadir}/%{name}/postgresql
384 %{_datadir}/%{name}/povray
385 %{_datadir}/%{name}/python
386 %{_datadir}/%{name}/qdbus
387 %{_datadir}/%{name}/qemu
388 %{_datadir}/%{name}/quota-tools
389 %{_datadir}/%{name}/rcs
390 %{_datadir}/%{name}/rdesktop
391 %{_datadir}/%{name}/resolvconf
392 %{_datadir}/%{name}/rfkill
393 %{_datadir}/%{name}/ri
394 %{_datadir}/%{name}/rpcdebug
395 %{_datadir}/%{name}/rpm
396 %{_datadir}/%{name}/rrdtool
397 %{_datadir}/%{name}/rsync
398 %{_datadir}/%{name}/samba
399 %{_datadir}/%{name}/sbcl
400 %{_datadir}/%{name}/screen
401 %{_datadir}/%{name}/shadow
402 %{_datadir}/%{name}/sitecopy
403 %{_datadir}/%{name}/smartctl
404 %{_datadir}/%{name}/snownews
405 %{_datadir}/%{name}/ssh
406 %{_datadir}/%{name}/strace
407 %{_datadir}/%{name}/svk
408 %{_datadir}/%{name}/sysctl
409 %{_datadir}/%{name}/sysvinit
410 %{_datadir}/%{name}/tar
411 %{_datadir}/%{name}/tcpdump
412 %{_datadir}/%{name}/unace
413 %{_datadir}/%{name}/unrar
414 %{_datadir}/%{name}/vncviewer
415 %{_datadir}/%{name}/vpnc
416 %{_datadir}/%{name}/wireless-tools
417 %{_datadir}/%{name}/wodim
418 %{_datadir}/%{name}/wvdial
419 %{_datadir}/%{name}/xhost
420 %{_datadir}/%{name}/xm
421 %{_datadir}/%{name}/xmllint
422 %{_datadir}/%{name}/xmlwf
423 %{_datadir}/%{name}/xmms
424 %{_datadir}/%{name}/xrandr
425 %{_datadir}/%{name}/xz
426 %{_datadir}/%{name}/yp-tools
427 %{_datadir}/%{name}/yum
428 %{_datadir}/%{name}/yum-arch
This page took 0.079484 seconds and 3 git commands to generate.