]>
Commit | Line | Data |
---|---|---|
d29cc16a ER |
1 | # TODO |
2 | # - bittorrent complete doesn't actually handle our prognames | |
3 | # - handle multiple package links (freeciv case) | |
7a6139c0 | 4 | Summary: bash-completion offers programmable completion for bash |
dc5beabb | 5 | Summary(pl.UTF-8): Programowalne uzupełnianie nazw dla basha |
d27c9ff9 | 6 | Name: bash-completion |
993e26e2 ER |
7 | Version: 1.0 |
8 | Release: 1 | |
9 | Epoch: 1 | |
aa677e2c | 10 | License: GPL |
7a6139c0 | 11 | Group: Applications/Shells |
993e26e2 ER |
12 | Source0: http://bash-completion.alioth.debian.org/files/%{name}-%{version}.tar.gz |
13 | # Source0-md5: cd1c5648272917fbe0eef4ba30bb93f4 | |
80319ab9 | 14 | Source1: %{name}-poldek.sh |
f4f5d91d ER |
15 | Source2: %{name}.sh |
16 | Patch0: %{name}-rpm-cache.patch | |
d0a05e0d | 17 | Patch1: %{name}-mplayer.patch |
d710ecea | 18 | URL: http://bash-completion.alioth.debian.org/ |
8820cfb2 | 19 | Requires(triggerpostun): sed >= 4.0 |
7a6139c0 | 20 | Requires: bash >= 2.05a-3 |
80319ab9 | 21 | Obsoletes: bash-completion-rpm-cache |
c65ce1a0 | 22 | Conflicts: rpm < 4.4.9-44 |
23c95f44 | 23 | BuildArch: noarch |
7a6139c0 | 24 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
aa677e2c | 25 | |
26 | %description | |
27 | bash-completion is a collection of shell functions that take advantage | |
7a6139c0 | 28 | of the programmable completion feature of bash 2.04 and later. |
aa677e2c | 29 | |
5b7e80f9 JR |
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ń. | |
aa677e2c | 34 | |
35 | %prep | |
993e26e2 | 36 | %setup -q |
deca8a33 | 37 | %patch0 -p1 |
e9c9a2cf | 38 | %patch1 -p1 |
d29cc16a ER |
39 | cp -a %{SOURCE1} contrib/poldek |
40 | ||
41 | # cleanup backups after patching | |
42 | find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f | |
43 | ||
44 | # packaged by subversion.spec | |
45 | rm contrib/_subversion | |
46 | ||
47 | # No package matches '*/apache2ctl' | |
48 | rm contrib/apache2ctl | |
49 | ||
50 | # No PLD package or no such binary to complete on | |
993e26e2 | 51 | rm contrib/{harbour,larch,lisp,modules,monodevelop,p4,cowsay,cpan2dist} |
aa677e2c | 52 | |
e9c9a2cf ER |
53 | %install |
54 | rm -rf $RPM_BUILD_ROOT | |
d29cc16a ER |
55 | install -d $RPM_BUILD_ROOT{%{_sysconfdir}/bash_completion.d,/etc/shrc.d,%{_datadir}/%{name}} |
56 | ||
57 | T=$(grep -c '^%%bashcomp_trigger' %{_specdir}/%{name}.spec) | |
58 | F=$(grep -c '^%%{_datadir}/%%{name}/' %{_specdir}/%{name}.spec) | |
59 | if [ $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 | |
77 | fi | |
78 | ||
79 | cp -a bash_completion $RPM_BUILD_ROOT%{_sysconfdir} | |
80 | cp -a contrib/* $RPM_BUILD_ROOT%{_datadir}/%{name} | |
f4f5d91d | 81 | install %{SOURCE2} $RPM_BUILD_ROOT/etc/shrc.d |
8820cfb2 | 82 | |
d29cc16a ER |
83 | # Take care of contrib files |
84 | for 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" |
88 | done > %{name}-ghost.list | |
89 | ||
8820cfb2 ER |
90 | %clean |
91 | rm -rf $RPM_BUILD_ROOT | |
92 | ||
80319ab9 | 93 | %triggerpostun -- %{name} < 20050721-3.9 |
8820cfb2 | 94 | sed -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 | |
98 | if [ $1 -le 1 ]; then | |
99 | exit 0 | |
100 | fi | |
101 | # No rpm in vservers | |
102 | if [ ! -x /bin/rpm ]; then | |
103 | exit 0 | |
104 | fi | |
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 | |
110 | files=$(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. | |
115 | oldpkg=$(rpm -qf $(echo "$files") 2>/dev/null | grep -v 'is not' | sort -u | grep -v %{name}-%{version}-%{release}) | |
116 | for 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 | |
120 | done | |
121 | ||
122 | # Usage: bashcomp_trigger PACKAGENAME [SCRIPTNAME] | |
123 | %define bashcomp_trigger() \ | |
124 | %triggerin -- %1\ | |
125 | if [ ! -L %{_sysconfdir}/bash_completion.d/%{?2}%{!?2:%1} ] ; then\ | |
126 | ln -sf ../..%{_datadir}/%{name}/%{?2}%{!?2:%1} %{_sysconfdir}/bash_completion.d\ | |
127 | fi\ | |
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 | |
993e26e2 | 134 | %bashcomp_trigger bridge-utils brctl |
d29cc16a ER |
135 | %bashcomp_trigger cksfv |
136 | %bashcomp_trigger clisp | |
137 | %bashcomp_trigger dsniff | |
138 | %bashcomp_trigger freeciv-client,freeciv-server freeciv | |
139 | %bashcomp_trigger gcc-ada gnatmake | |
140 | %bashcomp_trigger gcl | |
141 | %bashcomp_trigger gkrellm | |
142 | %bashcomp_trigger gnupg2 gpg2 | |
143 | %bashcomp_trigger lilypond | |
993e26e2 ER |
144 | %bashcomp_trigger lzma,xz lzma |
145 | %bashcomp_trigger lzop | |
d29cc16a ER |
146 | %bashcomp_trigger mailman |
147 | %bashcomp_trigger mcrypt | |
993e26e2 | 148 | %bashcomp_trigger minicom |
d29cc16a | 149 | %bashcomp_trigger mtx |
993e26e2 | 150 | %bashcomp_trigger net-tools |
d29cc16a ER |
151 | %bashcomp_trigger openssh-clients ssh |
152 | %bashcomp_trigger poldek | |
153 | %bashcomp_trigger povray | |
993e26e2 | 154 | %bashcomp_trigger qemu |
d29cc16a | 155 | %bashcomp_trigger QtDBus qdbus |
993e26e2 ER |
156 | %bashcomp_trigger quota-tools |
157 | %bashcomp_trigger rdesktop | |
d29cc16a ER |
158 | %bashcomp_trigger ruby-modules ri |
159 | %bashcomp_trigger sbcl | |
160 | %bashcomp_trigger sitecopy | |
161 | %bashcomp_trigger snownews | |
162 | %bashcomp_trigger svk | |
993e26e2 | 163 | %bashcomp_trigger tightvnc,vnc vncviewer |
d29cc16a ER |
164 | %bashcomp_trigger unace |
165 | %bashcomp_trigger unixODBC isql | |
166 | %bashcomp_trigger unrar | |
167 | ||
168 | %files -f %{name}-ghost.list | |
aa677e2c | 169 | %defattr(644,root,root,755) |
993e26e2 | 170 | %doc README TODO |
0b5a8e37 | 171 | /etc/shrc.d/%{name}.sh |
d29cc16a ER |
172 | %{_sysconfdir}/bash_completion |
173 | %dir %{_sysconfdir}/bash_completion.d | |
174 | %dir %{_datadir}/%{name} | |
175 | # we list all files to be sure we have all of them handled by triggers | |
176 | %{_datadir}/%{name}/bitkeeper | |
177 | %{_datadir}/%{name}/bittorrent | |
993e26e2 | 178 | %{_datadir}/%{name}/brctl |
d29cc16a ER |
179 | %{_datadir}/%{name}/cksfv |
180 | %{_datadir}/%{name}/clisp | |
181 | %{_datadir}/%{name}/dsniff | |
182 | %{_datadir}/%{name}/freeciv | |
183 | %{_datadir}/%{name}/gcl | |
184 | %{_datadir}/%{name}/gkrellm | |
185 | %{_datadir}/%{name}/gnatmake | |
186 | %{_datadir}/%{name}/gpg2 | |
d29cc16a ER |
187 | %{_datadir}/%{name}/isql |
188 | %{_datadir}/%{name}/lilypond | |
993e26e2 ER |
189 | %{_datadir}/%{name}/lzma |
190 | %{_datadir}/%{name}/lzop | |
d29cc16a ER |
191 | %{_datadir}/%{name}/mailman |
192 | %{_datadir}/%{name}/mcrypt | |
993e26e2 | 193 | %{_datadir}/%{name}/minicom |
d29cc16a | 194 | %{_datadir}/%{name}/mtx |
993e26e2 | 195 | %{_datadir}/%{name}/net-tools |
d29cc16a ER |
196 | %{_datadir}/%{name}/poldek |
197 | %{_datadir}/%{name}/povray | |
198 | %{_datadir}/%{name}/qdbus | |
993e26e2 ER |
199 | %{_datadir}/%{name}/qemu |
200 | %{_datadir}/%{name}/quota-tools | |
201 | %{_datadir}/%{name}/rdesktop | |
d29cc16a ER |
202 | %{_datadir}/%{name}/ri |
203 | %{_datadir}/%{name}/sbcl | |
204 | %{_datadir}/%{name}/sitecopy | |
205 | %{_datadir}/%{name}/snownews | |
206 | %{_datadir}/%{name}/ssh | |
207 | %{_datadir}/%{name}/svk | |
208 | %{_datadir}/%{name}/unace | |
209 | %{_datadir}/%{name}/unrar | |
993e26e2 | 210 | %{_datadir}/%{name}/vncviewer |