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