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