]>
Commit | Line | Data |
---|---|---|
d29cc16a ER |
1 | # TODO |
2 | # - bittorrent complete doesn't actually handle our prognames | |
3 | # - handle multiple package links (freeciv case) | |
4 | # - handle upgrade path to symlinks (see notes in install section) | |
7a6139c0 | 5 | Summary: bash-completion offers programmable completion for bash |
dc5beabb | 6 | Summary(pl.UTF-8): Programowalne uzupełnianie nazw dla basha |
d27c9ff9 | 7 | Name: bash-completion |
d710ecea | 8 | Version: 20081219 |
d29cc16a | 9 | Release: 2 |
aa677e2c | 10 | License: GPL |
7a6139c0 | 11 | Group: Applications/Shells |
d710ecea ER |
12 | Source0: ftp://distfiles.gentoo.org/pub/gentoo/distfiles/%{name}-%{version}.tar.bz2 |
13 | # Source0-md5: 6b8f924417fb8cd758778025d97f2853 | |
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 | |
d710ecea | 36 | %setup -q -n %{name} |
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 | |
51 | rm contrib/{harbour,larch,lisp,modules,monodevelop,p4} | |
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 | |
134 | %bashcomp_trigger cksfv | |
135 | %bashcomp_trigger clisp | |
136 | %bashcomp_trigger dsniff | |
137 | %bashcomp_trigger freeciv-client,freeciv-server freeciv | |
138 | %bashcomp_trigger gcc-ada gnatmake | |
139 | %bashcomp_trigger gcl | |
140 | %bashcomp_trigger gkrellm | |
141 | %bashcomp_trigger gnupg2 gpg2 | |
142 | %bashcomp_trigger lilypond | |
143 | %bashcomp_trigger mailman | |
144 | %bashcomp_trigger mcrypt | |
145 | %bashcomp_trigger mercurial hg | |
146 | %bashcomp_trigger mtx | |
147 | %bashcomp_trigger openssh-clients ssh | |
148 | %bashcomp_trigger poldek | |
149 | %bashcomp_trigger povray | |
150 | %bashcomp_trigger QtDBus qdbus | |
151 | %bashcomp_trigger ruby-modules ri | |
152 | %bashcomp_trigger sbcl | |
153 | %bashcomp_trigger sitecopy | |
154 | %bashcomp_trigger snownews | |
155 | %bashcomp_trigger svk | |
156 | %bashcomp_trigger unace | |
157 | %bashcomp_trigger unixODBC isql | |
158 | %bashcomp_trigger unrar | |
159 | ||
160 | %files -f %{name}-ghost.list | |
aa677e2c | 161 | %defattr(644,root,root,755) |
d710ecea | 162 | %doc README TODO debian/changelog debian/copyright |
0b5a8e37 | 163 | /etc/shrc.d/%{name}.sh |
d29cc16a ER |
164 | %{_sysconfdir}/bash_completion |
165 | %dir %{_sysconfdir}/bash_completion.d | |
166 | %dir %{_datadir}/%{name} | |
167 | # we list all files to be sure we have all of them handled by triggers | |
168 | %{_datadir}/%{name}/bitkeeper | |
169 | %{_datadir}/%{name}/bittorrent | |
170 | %{_datadir}/%{name}/cksfv | |
171 | %{_datadir}/%{name}/clisp | |
172 | %{_datadir}/%{name}/dsniff | |
173 | %{_datadir}/%{name}/freeciv | |
174 | %{_datadir}/%{name}/gcl | |
175 | %{_datadir}/%{name}/gkrellm | |
176 | %{_datadir}/%{name}/gnatmake | |
177 | %{_datadir}/%{name}/gpg2 | |
178 | %{_datadir}/%{name}/hg | |
179 | %{_datadir}/%{name}/isql | |
180 | %{_datadir}/%{name}/lilypond | |
181 | %{_datadir}/%{name}/mailman | |
182 | %{_datadir}/%{name}/mcrypt | |
183 | %{_datadir}/%{name}/mtx | |
184 | %{_datadir}/%{name}/poldek | |
185 | %{_datadir}/%{name}/povray | |
186 | %{_datadir}/%{name}/qdbus | |
187 | %{_datadir}/%{name}/ri | |
188 | %{_datadir}/%{name}/sbcl | |
189 | %{_datadir}/%{name}/sitecopy | |
190 | %{_datadir}/%{name}/snownews | |
191 | %{_datadir}/%{name}/ssh | |
192 | %{_datadir}/%{name}/svk | |
193 | %{_datadir}/%{name}/unace | |
194 | %{_datadir}/%{name}/unrar |