]> git.pld-linux.org Git - packages/bash.git/blob - bash.spec
use distfiles for bash patches
[packages/bash.git] / bash.spec
1 # Conditional build:
2 %bcond_without  static          # don't build static version
3 %bcond_with     bash_history    # build with additional history in /var/log/bash_hist ;)
4 %bcond_without  tests   # do not perform "make test"
5
6 %define         ver             4.2
7 %define         patchlevel      45
8 %define         rel             1
9 Summary:        GNU Bourne Again Shell (bash)
10 Summary(fr.UTF-8):      Le shell Bourne Again de GNU
11 Summary(pl.UTF-8):      Powłoka GNU Bourne Again Shell (bash)
12 Name:           bash
13 Version:        %{ver}%{?patchlevel:.%{patchlevel}}
14 Release:        %{rel}%{?with_bash_history:inv}
15 License:        GPL
16 Group:          Applications/Shells
17 Source0:        http://ftp.gnu.org/gnu/bash/%{name}-%{ver}.tar.gz
18 # Source0-md5:  3fb927c7c33022f1c327f14a81c0d4b0
19 Source1:        %{name}rc
20 Source2:        %{name}-skel-.bash_logout
21 Source3:        %{name}-skel-.bash_profile
22 Source4:        %{name}-skel-.bashrc
23 Source5:        http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
24 # Source5-md5:  d2aacf89c4a444c5da648da69afdb01a
25 Patch0:         %{name}-paths.patch
26 Patch1:         %{name}-security.patch
27 Patch2:         %{name}-autoconf.patch
28 Patch3:         %{name}-info.patch
29 Patch4:         %{name}-profile.patch
30 Patch5:         %{name}-requires.patch
31 Patch6:         %{name}-compat.patch
32 Patch8:         %{name}-sighup.patch
33 Patch9:         %{name}-backup_history.patch
34 Patch10:        %{name}-act_like_sh.patch
35 Patch11:        %{name}-elinks_cont.patch
36 Patch12:        %{name}-pl.po-update.patch
37 Patch13:        %{name}-format-string.patch
38 %patchset_source -f http://ftp.gnu.org/gnu/bash/bash-4.2-patches/bash42-%03g 1 %{patchlevel}
39 URL:            http://www.gnu.org/software/bash/
40 BuildRequires:  autoconf
41 BuildRequires:  automake
42 BuildRequires:  bison
43 BuildRequires:  ncurses-devel >= 5.2
44 BuildRequires:  readline-devel >= 6.2
45 BuildRequires:  rpmbuild(macros) >= 1.462
46 BuildRequires:  sed >= 4.0
47 BuildRequires:  texinfo
48 %if %{with static}
49 # Require static library only for static build
50 BuildRequires:  glibc-static >= 2.2
51 BuildRequires:  ncurses-static >= 5.2
52 BuildRequires:  readline-static >= 6.2
53 %endif
54 Requires:       readline >= 6.2
55 Requires:       setup >= 2.4.6-2
56 Obsoletes:      bash-doc
57 Obsoletes:      bash2
58 Obsoletes:      bash2-doc
59 Obsoletes:      etcskel
60 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
61
62 %description
63 Bash is a GNU project sh-compatible shell or command language
64 interpreter. Bash (Bourne Again shell) incorporates useful features
65 from the Korn shell (ksh) and the C shell (csh). Most sh scripts can
66 be run by bash without modification. Bash offers several improvements
67 over sh, including command line editing, unlimited size command
68 history, job control, shell functions and aliases, indexed arrays of
69 unlimited size and integer arithmetic in any base from two to 64. Bash
70 is ultimately intended to conform to the IEEE POSIX P1003.2/ISO 9945.2
71 Shell and Tools standard. Bash is the default shell for Linux
72 Mandrake. You should install bash because of its popularity and power.
73 You'll probably end up using it.
74
75 %description -l es.UTF-8
76 Bash es un interpretador de comandos compatible con sh, que ejecuta
77 comandos leídos de la entrada padrón o de un archivo. Bash también
78 incorpora características útiles de las shells Korn y C (ksh y csh).
79 Bash ha sido desarrollado para ser una adición compatible con la
80 especificación IEEE Posix para shells y herramientas (IEEE Working
81 Group 1003.2).
82
83 %description -l de.UTF-8
84 Bash ist eine sh-kompatible Shell und Kommandosprache aus dem
85 GNU-Projekt. Bash (Bourne Again Shell) vereinigt die nützlichen
86 Features aus der Korn-Shell (ksh) und der C-Shell (csh). Die meisten
87 sh-Skripte laufen ohne Änderungen auf bash. Bash hat viele
88 Erweiterungen im Vergleich zur "normalen" sh, wie z.B.
89 Kommandozeilenbearbeitung, unbeschränkte Größe der command-history,
90 Job-Kontrolle, Shell-Funktionen und -Aliase, unbegrenzt große
91 indizierte Arrays und Integer-Arithmetik in einer Basis von 2 bis 64.
92 Hauptziel von bash ist es, den IEEE POSIX P1003.2/ISO 9945.2 Shell-
93 und Tools-Standard einzuhalten. Bash ist die Standard-Shell für Linux
94 Mandrake.
95
96 %description -l fr.UTF-8
97 Bash est un shell (interpréteur de commande) du projet GNU, compatible
98 avec le shell historique sh. Bash (Bourne Again SHell) comprend de
99 nombreuses fonctionnalités du Korn SHell (ksh) et du C SHell (csh). La
100 plupart des scripts sh sont exécutables sans modifications. Bash
101 comprend nombre d'améliorations par rapport à sh : édition de la ligne
102 de commande, historique illimité, contrôle des processus
103 d'arrière-plan, fonctions de shell, alias, tableaux indexés de taille
104 illimitée et calcul sur des entiers dans n'importe quelle base de 2 à
105 64. Bash est conforme au standard IEEE POSIX P1003.2/ISO 9945.2 Shell
106 and Tools. Bash est le shell par défaut de Mandrake. Vous devriez
107 l'installer du fait de sa puissance et de sa popularité. Vous finirez
108 probablement par l'utiliser.
109
110 %description -l pl.UTF-8
111 Bash (Bourne Again SHell) jest projektem GNU powłoki kompatybilnej z
112 sh oraz interpretera języka poleceń. Posiada użyteczne właściwości
113 powłok Korn (ksh) i C (csh). Większość skryptów sh może być
114 uruchamiana w bashu bez modyfikacji. Oferuje on kilka ulepszeń w
115 stosunku do sh, włączając edycję linii poleceń, nieograniczony rozmiar
116 historii poleceń, funkcje i aliasy, indeksowane tablice
117 nieograniczonych rozmiarów oraz arytmetykę całkowitoliczbową o
118 dowolnej podstawie od 2 do 64. W zamierzeniu ostatecznie ma być zgodny
119 ze standardem IEEE POSIX P1003.2/ISO 9945.2 Shell and Tools.
120
121 %description -l pt_BR.UTF-8
122 Bash é um interpretador de comandos compatível com sh, que executa
123 comandos lidos da entrada padrão ou de um arquivo. Bash também
124 incorpora características úteis das shells Korn e C (ksh e csh). Bash
125 tem sido desenvolvido para ser uma implementação compatível com a
126 especificação IEEE Posix para shells e ferramentas (IEEE Working Group
127 1003.2).
128
129 %description -l ru.UTF-8
130 Bash - это sh-совместимый интерпретатор командного языка (shell),
131 исполняющий команды, поступающие со стандартного ввода или из файла.
132 Bash включает полезные расширения из интерпретаторов Korn и C shell
133 (ksh и csh).
134
135 Bash разрабатывается как реализация, отвечающая IEEE Posix Shell and
136 Tools specification (IEEE Working Group 1003.2).
137
138 %description -l tr.UTF-8
139 Bash standart girişten ya da bir dosyadan komut okuyup çalıştıran sh
140 uyumlu bir komut dili yorumlayıcısıdır. Aynı zamanda Korn ve C
141 kabuklarının (ksh ve csh) kullanışlı özelliklerini de kapsar. Bash,
142 IEEE Posix Kabuk ve Araç ayrıntılarına (IEEE Working Group 1003.2)
143 uyumlu bir uygulama olarak tasarlanmıştır.
144
145 %description -l uk.UTF-8
146 Bash - це sh-сумістний інтерпретатор командної мови (shell),
147 виконуючий команди зі стандартного вводу або з файла. Bash містить
148 користні розширення з інтерпретаторів Korn та C shell (ksh та csh).
149
150 Bash розроблявся як реалізація, що відповідає IEEE Posix Shell and
151 Tools specification (IEEE Working Group 1003.2).
152
153 %package static
154 Summary:        Statically linked GNU Bourne Again Shell (bash)
155 Summary(pl.UTF-8):      Statycznie skonsolidowany GNU Bourne Again Shell (bash)
156 Group:          Applications/Shells
157 Requires:       %{name} = %{version}-%{release}
158
159 %description static
160 Bash is a GNU project sh-compatible shell or command language
161 interpreter. Bash (Bourne Again shell) incorporates useful features
162 from the Korn shell (ksh) and the C shell (csh). Most sh scripts can
163 be run by bash without modification. Bash offers several improvements
164 over sh, including command line editing, unlimited size command
165 history, job control, shell functions and aliases, indexed arrays of
166 unlimited size and integer arithmetic in any base from two to 64. Bash
167 is ultimately intended to conform to the IEEE POSIX P1003.2/ISO 9945.2
168 Shell and Tools standard. Bash is the default shell for Linux
169 Mandrake. You should install bash because of its popularity and power.
170 You'll probably end up using it. This package contains statically
171 linked version of bash.
172
173 %description static -l pl.UTF-8
174 Bash jest zaawansowaną powłoką, która wykonuje komendy czytane ze
175 standardowego wejścia (stdin) lub z pliku. Posiada właściwości powłok
176 Korn i C (ksh i csh). Bash jest również zaimplementowany IEEE Posix
177 Shell oraz jest zgodny ze specyfikacją - IEEE Working Group 1003.2. W
178 tym pakiecie jest wersja basha skonsolidowana statycznie.
179
180 %prep
181 %setup -q -n %{name}-%{ver} -a5
182 # official patches
183 %{?patchlevel:%patchset_patch 1 %{patchlevel}}
184 %patch0 -p1
185 %patch1 -p1
186 %patch2 -p1
187 %patch3 -p1
188 %patch4 -p1
189 %patch5 -p1
190 %patch6 -p1
191 %patch8 -p1
192 %{?with_bash_history:%patch9 -p1}
193 %patch10 -p1
194 %patch11 -p1
195 %patch12 -p1
196 %patch13 -p1
197
198 %build
199 cp -f /usr/share/automake/config.* support
200 %{__autoconf}
201 for mode in %{?with_static:static} shared; do
202 %configure \
203         --enable-alias \
204         --enable-help-builtin \
205         --enable-history \
206         --enable-job-control \
207         --enable-restricted \
208         --enable-readline \
209         --with-curses \
210         --enable-extended-glob \
211         --enable-dparen-arithmetic \
212         --enable-separate-helpfiles \
213         --without-bash-malloc \
214         `[ "$mode" = "static" ] && echo "--enable-static-link"` \
215         --with-installed-readline
216
217 %{__make} \
218         DEFS="-DHAVE_CONFIG_H -D_GNU_SOURCE"
219
220 [ "$mode" = "static" ] && mv -f bash bash.static || :
221 done
222
223 %{?with_tests:%{__make} tests}
224
225 %install
226 rm -rf $RPM_BUILD_ROOT
227 install -d $RPM_BUILD_ROOT{/bin,/etc/skel,%{_datadir}/%{name}}
228 %{?with_bash_history:install -d $RPM_BUILD_ROOT/var/log/bash_hist}
229
230 %{__make} install \
231         DESTDIR=$RPM_BUILD_ROOT
232
233 mv -f $RPM_BUILD_ROOT%{_bindir}/bash $RPM_BUILD_ROOT/bin
234 %{?with_static:install bash.static $RPM_BUILD_ROOT/bin}
235
236 install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/bashrc
237 echo .so bash.1 > $RPM_BUILD_ROOT%{_mandir}/man1/rbash.1
238
239 for d in es fr it ja ko nl pl ; do
240         install -d $RPM_BUILD_ROOT%{_mandir}/$d/man1
241         install man/$d/* $RPM_BUILD_ROOT%{_mandir}/$d/man1
242         echo .so bash.1 > $RPM_BUILD_ROOT%{_mandir}/$d/man1/rbash.1
243 done
244
245 ln -sf bash $RPM_BUILD_ROOT/bin/rbash
246
247 install %{SOURCE2} $RPM_BUILD_ROOT/etc/skel/.bash_logout
248 install %{SOURCE3} $RPM_BUILD_ROOT/etc/skel/.bash_profile
249 install %{SOURCE4} $RPM_BUILD_ROOT/etc/skel/.bashrc
250 rm -f $RPM_BUILD_ROOT%{_infodir}/dir
251
252 # use our bugtracker, upstream will ignore reports from this anyway
253 rm -f $RPM_BUILD_ROOT%{_bindir}/bashbug
254
255 %find_lang %{name}
256
257 %clean
258 rm -rf $RPM_BUILD_ROOT
259
260 %post   -p <lua>
261 %lua_add_etc_shells /bin/bash /bin/rbash
262 os.execute("/usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1")
263
264 %preun  -p <lua>
265 if arg[2] == 0 then
266         %lua_remove_etc_shells /bin/bash /bin/rbash
267 end
268
269 %postun -p      /sbin/postshell
270 -/usr/sbin/fix-info-dir -c %{_infodir}
271
272 %post static -p <lua>
273 %lua_add_etc_shells /bin/bash.static
274
275 %preun static -p <lua>
276 if arg[2] == 0 then
277         %lua_remove_etc_shells /bin/bash.static
278 end
279
280 %files -f %{name}.lang
281 %defattr(644,root,root,755)
282 %doc CHANGES NEWS README doc/{FAQ,INTRO}
283
284 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/bashrc
285 %config(noreplace,missingok) %verify(not md5 mtime size) /etc/skel/.bash_logout
286 %config(noreplace,missingok) %verify(not md5 mtime size) /etc/skel/.bash_profile
287 %config(noreplace,missingok) %verify(not md5 mtime size) /etc/skel/.bashrc
288
289 %attr(755,root,root) /bin/bash
290 %attr(755,root,root) /bin/rbash
291
292 %{?with_bash_history:%attr(1733,root,root) %dir /var/log/bash_hist}
293 %{_infodir}/bash.info*
294 %{_mandir}/man1/*
295 %lang(es) %{_mandir}/es/man1/*
296 %lang(fr) %{_mandir}/fr/man1/*
297 %lang(it) %{_mandir}/it/man1/*
298 %lang(ja) %{_mandir}/ja/man1/*
299 %lang(ko) %{_mandir}/ko/man1/*
300 %lang(nl) %{_mandir}/nl/man1/*
301 %lang(pl) %{_mandir}/pl/man1/*
302 %dir %{_datadir}/%{name}
303 %doc %{_datadir}/%{name}/*
304
305 %if %{with static}
306 %files static
307 %defattr(644,root,root,755)
308 %attr(755,root,root) /bin/bash.static
309 %endif
This page took 0.664375 seconds and 3 git commands to generate.