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