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