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