]> git.pld-linux.org Git - packages/bash-completion.git/blob - bash-completion.spec
- consistent with trigger
[packages/bash-completion.git] / bash-completion.spec
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)
5 Summary:        bash-completion offers programmable completion for bash
6 Summary(pl.UTF-8):      Programowalne uzupełnianie nazw dla basha
7 Name:           bash-completion
8 Version:        20081219
9 Release:        2
10 License:        GPL
11 Group:          Applications/Shells
12 Source0:        ftp://distfiles.gentoo.org/pub/gentoo/distfiles/%{name}-%{version}.tar.bz2
13 # Source0-md5:  6b8f924417fb8cd758778025d97f2853
14 Source1:        %{name}-poldek.sh
15 Source2:        %{name}.sh
16 Patch0:         %{name}-rpm-cache.patch
17 Patch1:         %{name}-mplayer.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 -n %{name}
37 %patch0 -p1
38 %patch1 -p1
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}
52
53 %install
54 rm -rf $RPM_BUILD_ROOT
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}
81 install %{SOURCE2} $RPM_BUILD_ROOT/etc/shrc.d
82
83 # Take care of contrib files
84 for a in contrib/*; do
85         f=${a##*/}
86         ln -s ../..%{_datadir}/%{name}/$f $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d
87         echo "%ghost %{_sysconfdir}/bash_completion.d/$f"
88 done > %{name}-ghost.list
89
90 %clean
91 rm -rf $RPM_BUILD_ROOT
92
93 %triggerpostun -- %{name} < 20050721-3.9
94 sed -i -e '/^# START bash completion/,/^# END bash completion/d' /etc/bashrc
95
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
161 %defattr(644,root,root,755)
162 %doc README TODO debian/changelog debian/copyright
163 /etc/shrc.d/%{name}.sh
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
This page took 0.255089 seconds and 4 git commands to generate.