]> git.sur5r.net Git - bacula/bacula/blob - bacula/platforms/redhat/bacula.spec.in
kes More copyright changes.
[bacula/bacula] / bacula / platforms / redhat / bacula.spec.in
1 # Bacula RPM spec file
2 # Copyright (C) 2000-2006 Free Software Foundation Europe e.V.
3
4 # Platform Build Configuration
5
6 # basic defines for every build
7 %define _version @VERSION@
8 %define _release 1
9 %define depkgs_version 25Jun06
10 %define _rescuever 1.8.6
11 %define docs_version @VERSION@
12
13 # any patches for this release
14 # be sure to check the setup section for patch macros
15
16
17 #--------------------------------------------------------------------------
18 # it should not be necessary to change anything below here for a release
19 # except for patch macros in the setup section
20 #--------------------------------------------------------------------------
21
22 # third party packagers
23 %define _packager D. Scott Barninger <barninger@fairfieldcomputers.com>
24 %{?contrib_packager:%define _packager %{contrib_packager}}
25
26 Summary: Bacula - The Network Backup Solution
27 Name: bacula
28 Version: %{_version}
29 Release: %{_release}
30 Group: System Environment/Daemons
31 License: GPL v2
32 Source0: http://www.prdownloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
33 Source1: http://www.prdownloads.sourceforge.net/bacula/depkgs-%{depkgs_version}.tar.gz
34 Source2: Release_Notes-%{version}-%{release}.tar.gz
35 Source3: http://www.prdownloads.sourceforge.net/bacula/%{name}-docs-%{docs_version}.tar.gz
36 Source4: http://www.prdownloads.sourceforge.net/bacula/%{name}-rescue-%{_rescuever}.tar.gz
37 BuildRoot: %{_tmppath}/%{name}-root
38 URL: http://www.bacula.org/
39 Vendor: The Bacula Team
40 Packager: %{_packager}
41
42 # define the basic package description
43 %define blurb Bacula - It comes by night and sucks the vital essence from your computers.
44 %define blurb2 Bacula is a set of computer programs that permit you (or the system
45 %define blurb3 administrator) to manage backup, recovery, and verification of computer
46 %define blurb4 data across a network of computers of different kinds. In technical terms,
47 %define blurb5 it is a network client/server based backup program. Bacula is relatively
48 %define blurb6 easy to use and efficient, while offering many advanced storage management
49 %define blurb7 features that make it easy to find and recover lost or damaged files.
50 %define blurb8 Bacula source code has been released under the GPL version 2 license.
51
52 # directory locations
53 %define sqlite_bindir /usr/lib/bacula/sqlite
54 %define working_dir /var/bacula
55 %define _docsrc ../%{name}-docs-%{docs_version}
56 %define _rescuesrc ../%{name}-rescue-%{_rescuever}
57 %define depkgs ../depkgs
58 %define _mandir /usr/share/man
59
60 # NOTE these defines are used in some rather complex useradd and groupadd
61 # commands. If you change them examine the post scripts for consequences.
62 %define director_daemon_user bacula
63 %define storage_daemon_user bacula
64 %define file_daemon_user root
65 %define daemon_group bacula
66 # group that has write access to tape devices, usually disk on Linux
67 %define storage_daemon_group disk
68 %define user_file /etc/passwd
69 %define group_file /etc/group
70
71 # program locations
72 %define useradd /usr/sbin/useradd
73 %define groupadd /usr/sbin/groupadd
74 %define usermod /usr/sbin/usermod
75
76 # platform defines - set one below or define the build_xxx on the command line
77 # RedHat builds
78 %define rh7 0
79 %{?build_rh7:%define rh7 1}
80 %define rh8 0
81 %{?build_rh8:%define rh8 1}
82 %define rh9 0
83 %{?build_rh9:%define rh9 1}
84 # Fedora Core build
85 %define fc1 0
86 %{?build_fc1:%define fc1 1}
87 %define fc3 0
88 %{?build_fc3:%define fc3 1}
89 %define fc4 0
90 %{?build_fc4:%define fc4 1}
91 %define fc5 0
92 %{?build_fc5:%define fc5 1}
93 # Whitebox Enterprise build
94 %define wb3 0
95 %{?build_wb3:%define wb3 1}
96 # RedHat Enterprise builds
97 %define rhel3 0
98 %{?build_rhel3:%define rhel3 1}
99 %{?build_rhel3:%define wb3 1}
100 %define rhel4 0
101 %{?build_rhel4:%define rhel4 1}
102 %{?build_rhel4:%define fc3 1}
103 # CentOS build
104 %define centos3 0
105 %{?build_centos3:%define centos3 1}
106 %{?build_centos3:%define wb3 1}
107 %define centos4 0
108 %{?build_centos4:%define centos4 1}
109 %{?build_centos4:%define fc3 1}
110 # SuSE build
111 %define su9 0
112 %{?build_su9:%define su9 1}
113 %define su10 0
114 %{?build_su10:%define su10 1}
115 # Mandrake builds
116 %define mdk 0
117 %{?build_mdk:%define mdk 1}
118 %define mdv 0
119 %{?build_mdv:%define mdv 1}
120 %{?build_mdv:%define mdk 1}
121
122 # client only build
123 %define client_only 0
124 %{?build_client_only:%define client_only 1}
125
126 # test for a platform definition
127 %if ! %{rh7} && ! %{rh8} && ! %{rh9} && ! %{fc1} && ! %{fc3} && ! %{fc4} && ! %{fc5} && ! %{wb3} && ! %{su9} && ! %{su10} && ! %{mdk}
128 %{error: You must specify a platform. Please examine the spec file.}
129 exit 1
130 %endif
131
132 # database defines
133 # set for database support desired or define the build_xxx on the command line
134 %define mysql 0
135 %{?build_mysql:%define mysql 1}
136 # if using mysql 4.x define this and mysql above
137 # currently: Mandrake 10.1, SuSE 9.x & 10.0, RHEL4 and Fedora Core 4
138 %define mysql4 0
139 %{?build_mysql4:%define mysql4 1}
140 %{?build_mysql4:%define mysql 1}
141 # if using mysql 5.x define this and mysql above
142 # currently: SuSE 10.1 and Fedora Core 5
143 %define mysql5 0
144 %{?build_mysql5:%define mysql5 1}
145 %{?build_mysql5:%define mysql 1}
146 %define sqlite 0
147 %{?build_sqlite:%define sqlite 1}
148 %define postgresql 0
149 %{?build_postgresql:%define postgresql 1}
150
151 # test for a database definition
152 %if ! %{mysql} && ! %{sqlite} && ! %{postgresql} && ! %{client_only}
153 %{error: You must specify database support. Please examine the spec file.}
154 exit 1
155 %endif
156
157 %if %{mysql}
158 %define db_backend mysql
159 %endif
160 %if %{sqlite}
161 %define db_backend sqlite
162 %endif
163 %if %{postgresql}
164 %define db_backend postgresql
165 %endif
166
167 # 64 bit support
168 %define x86_64 0
169 %{?build_x86_64:%define x86_64 1}
170
171 # check what distribution we are
172 %if %{rh7} || %{rh8} || %{rh9} || %{rhel3} || %{rhel4}
173 %define _dist %(grep Red /etc/redhat-release)
174 %endif
175 %if %{fc1} || %{fc4} || %{fc5}
176 %define _dist %(grep Fedora /etc/redhat-release)
177 %endif
178 %if %{centos4} || %{centos3}
179 %define _dist %(grep CentOS /etc/redhat-release)
180 %endif
181 %if %{fc3} && ! %{rhel4} && ! %{centos4}
182 %define _dist %(grep Fedora /etc/redhat-release)
183 %endif
184 %if %{wb3} && ! %{rhel3} && ! %{centos3}
185 %define _dist %(grep White /etc/whitebox-release)
186 %endif
187 %if %{su9} || %{su10}
188 %define _dist %(grep -i SuSE /etc/SuSE-release)
189 %endif
190 %if %{mdk}
191 %define _dist %(grep Mand /etc/mandrake-release)
192 %endif
193 Distribution: %{_dist}
194
195 # Should we build gconsole, possible only if gtk= >= 2.4 available.
196 # leaving all the BuildRequires and Requires in place below for now.
197
198 %define gconsole 1
199 %if %{rh7} || %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{su9}
200 %define gconsole 0
201 %endif
202 %if %{mdk} && ! %{mdv}
203 %define gconsole 0
204 %endif
205
206 # specifically disallow gconsole if desired
207 %{?nobuild_gconsole:%define gconsole 0}
208
209 # Should we build wxconsole, only wxWidgets >=2.6 is supported
210 # currently only SuSE 10 and FC4/FC5
211 %define wxconsole 0
212 %{?build_wxconsole:%define wxconsole 1}
213
214 # should we turn on python support
215 %define python 0
216 %{?build_python:%define python 1}
217
218 # Mandriva somehow forces the manpage file extension to bz2 rather than gz
219 %if %{mdk}
220 %define manpage_ext bz2
221 %else
222 %define manpage_ext gz
223 %endif
224
225 # for client only build
226 %if %{client_only}
227 %define mysql 0
228 %define mysql4 0
229 %define mysql5 0
230 %define postgresql 0
231 %define sqlite 0
232 %define gconsole 0
233 %define wxconsole 0
234 %endif
235
236 %{expand: %%define gccver %(rpm -q gcc | cut -d - -f 2)}
237 %{expand: %%define gccrel %(rpm -q gcc | cut -d - -f 3)}
238
239 BuildRequires: gcc, gcc-c++, make, autoconf
240 BuildRequires: atk-devel, ncurses-devel, perl
241 BuildRequires: libstdc++-devel = %{gccver}-%{gccrel}, libxml2-devel, zlib-devel
242 BuildRequires: openssl-devel
243 %if %{python}
244 BuildRequires: python, python-devel
245 %{expand: %%define pyver %(python -c 'import sys;print(sys.version[0:3])')}
246 %endif
247 %if %{gconsole}
248 BuildRequires: pkgconfig, pango-devel
249 %endif
250 %if %{rh7}
251 BuildRequires: libtermcap-devel
252 BuildRequires: glibc-devel >= 2.2
253 %endif
254 %if %{su9}
255 BuildRequires: termcap
256 BuildRequires: glibc-devel >= 2.3
257 %endif
258 %if %{su9} && %{gconsole}
259 BuildRequires: libgnome >= 2.0
260 BuildRequires: gtk2-devel >= 2.0
261 BuildRequires: libgnomeui-devel >= 2.0
262 BuildRequires: ORBit2-devel
263 BuildRequires: libart_lgpl-devel >= 2.0
264 BuildRequires: libbonobo-devel >= 2.0
265 BuildRequires: libbonoboui-devel >= 2.0
266 BuildRequires: bonobo-activation-devel
267 BuildRequires: gconf2-devel
268 BuildRequires: linc-devel
269 BuildRequires: freetype2-devel
270 %endif
271 %if %{su10}
272 BuildRequires: termcap
273 BuildRequires: glibc-devel >= 2.3
274 %endif
275 %if %{su10} && %{gconsole}
276 BuildRequires: libgnome >= 2.12
277 BuildRequires: gtk2-devel >= 2.8
278 BuildRequires: libgnomeui-devel >= 2.12
279 BuildRequires: ORBit2-devel
280 BuildRequires: libart_lgpl-devel >= 2.3
281 BuildRequires: libbonobo-devel >= 2.10
282 BuildRequires: libbonoboui-devel >= 2.10
283 BuildRequires: bonobo-activation-devel
284 BuildRequires: gconf2-devel
285 BuildRequires: freetype2-devel
286 BuildRequires: cairo-devel
287 BuildRequires: fontconfig-devel >= 2.3
288 BuildRequires: gnome-vfs2-devel >= 2.12
289 BuildRequires: libpng-devel
290 %endif
291 %if %{mdk}
292 BuildRequires: libtermcap-devel
293 BuildRequires: libstdc++-static-devel
294 BuildRequires: glibc-static-devel
295 BuildRequires: glibc-devel >= 2.3
296 %endif
297 %if %{mdk} && !%{mdv} && %{gconsole}
298 BuildRequires: gtk2-devel >= 2.0
299 BuildRequires: libgnomeui2-devel >= 2.0
300 BuildRequires: libORBit2-devel
301 BuildRequires: libart_lgpl-devel >= 2.0
302 BuildRequires: libbonobo2_0-devel
303 BuildRequires: libbonoboui2_0-devel
304 BuildRequires: libbonobo-activation-devel
305 BuildRequires: libGConf2-devel
306 BuildRequires: freetype2-devel
307 %endif
308 %if %{mdv} && %{gconsole}
309 BuildRequires: gtk2-devel >= 2.8
310 BuildRequires: libgnomeui2-devel >= 2.10
311 BuildRequires: libORBit2-devel
312 BuildRequires: libart_lgpl-devel >= 2.3
313 BuildRequires: libbonobo2_0-devel
314 BuildRequires: libbonoboui2_0-devel
315 BuildRequires: libbonobo-activation-devel
316 BuildRequires: libGConf2-devel
317 BuildRequires: freetype2-devel
318 %endif
319 %if %{fc3}
320 BuildRequires: libtermcap-devel
321 BuildRequires: glibc-devel >= 2.3
322 %endif
323 %if %{fc3} && %{gconsole}
324 BuildRequires: gtk2-devel >= 2.4
325 BuildRequires: libgnomeui-devel >= 2.8
326 BuildRequires: ORBit2-devel
327 BuildRequires: libart_lgpl-devel >= 2.3
328 BuildRequires: libbonobo-devel >= 2.8
329 BuildRequires: libbonoboui-devel >= 2.8
330 BuildRequires: bonobo-activation-devel
331 BuildRequires: GConf2-devel
332 BuildRequires: freetype-devel
333 %endif
334 %if %{fc4}
335 BuildRequires: libtermcap-devel
336 BuildRequires: glibc-devel >= 2.3
337 %endif
338 %if %{fc4} && %{gconsole}
339 BuildRequires: gtk2-devel >= 2.6
340 BuildRequires: libgnomeui-devel >= 2.10
341 BuildRequires: ORBit2-devel
342 BuildRequires: libart_lgpl-devel >= 2.3
343 BuildRequires: libbonobo-devel >= 2.8
344 BuildRequires: libbonoboui-devel >= 2.8
345 BuildRequires: bonobo-activation-devel
346 BuildRequires: GConf2-devel
347 BuildRequires: freetype-devel
348 %endif
349 %if %{fc5}
350 BuildRequires: libtermcap-devel
351 BuildRequires: glibc-devel >= 2.4
352 %endif
353 %if %{fc5} && %{gconsole}
354 BuildRequires: gtk2-devel >= 2.8
355 BuildRequires: libgnomeui-devel >= 2.14
356 BuildRequires: ORBit2-devel
357 BuildRequires: libart_lgpl-devel >= 2.3
358 BuildRequires: libbonobo-devel >= 2.14
359 BuildRequires: libbonoboui-devel >= 2.14
360 BuildRequires: GConf2-devel
361 BuildRequires: freetype-devel
362 %endif
363 %if ! %{rh7} && ! %{su9} && ! %{su10} && ! %{mdk} && ! %{fc3} && ! %{fc4} && ! %{fc5}
364 BuildRequires: libtermcap-devel
365 BuildRequires: glibc-devel >= 2.3
366 %endif
367 %if ! %{rh7} && ! %{su9} && ! %{su10} && ! %{mdk} && ! %{fc3} && ! %{fc4} && ! %{fc5} && %{gconsole}
368 BuildRequires: gtk2-devel >= 2.0
369 BuildRequires: libgnomeui-devel >= 2.0
370 BuildRequires: ORBit2-devel
371 BuildRequires: libart_lgpl-devel >= 2.0
372 BuildRequires: libbonobo-devel >= 2.0
373 BuildRequires: libbonoboui-devel >= 2.0
374 BuildRequires: bonobo-activation-devel
375 BuildRequires: GConf2-devel
376 BuildRequires: linc-devel
377 BuildRequires: freetype-devel
378 %endif
379
380 %if %{mysql} && ! %{mysql4} && ! %{mysql5}
381 BuildRequires: mysql-devel >= 3.23
382 %endif
383
384 %if %{mysql} && %{mysql4}
385 BuildRequires: mysql-devel >= 4.0
386 %endif
387
388 %if %{mysql} && %{mysql5}
389 BuildRequires: mysql-devel >= 5.0
390 %endif
391
392 %if %{postgresql} && %{wb3}
393 BuildRequires: rh-postgresql-devel >= 7
394 %endif
395
396 %if %{postgresql} && ! %{wb3}
397 BuildRequires: postgresql-devel >= 7
398 %endif
399
400 %if %{wxconsole}
401 BuildRequires: wxGTK-devel >= 2.6
402 %endif
403
404 %description
405 %{blurb}
406
407 %{blurb2}
408 %{blurb3}
409 %{blurb4}
410 %{blurb5}
411 %{blurb6}
412 %{blurb7}
413 %{blurb8}
414
415 %if %{mysql}
416 %package mysql
417 %endif
418 %if %{sqlite}
419 %package sqlite
420 %endif
421 %if %{postgresql}
422 %package postgresql
423 %endif
424
425 Summary: Bacula - The Network Backup Solution
426 Group: System Environment/Daemons
427 Provides: bacula-dir, bacula-sd, bacula-fd, bacula-server
428 Conflicts: bacula-client
429 Obsoletes: bacula-rescue
430
431 %if %{su9} || %{su10}
432 Conflicts: bacula
433 %endif
434
435 Requires: ncurses, libstdc++, zlib, openssl, mtx
436
437 %if %{rh7}
438 Requires: glibc >= 2.2
439 Requires: libtermcap
440 %endif
441 %if %{su9} || %{su10}
442 Requires: glibc >= 2.3
443 Requires: termcap
444 %endif
445 %if ! %{rh7} && ! %{su9} && ! %{su10} && ! %{fc5}
446 Requires: glibc >= 2.3
447 Requires: libtermcap
448 %endif
449 %if %{fc5}
450 Requires: glibc >= 2.4
451 Requires: libtermcap
452 %endif
453
454 %if %{mysql} && ! %{su9} && ! %{mdk} && ! %{mysql4} && ! %{mysql5}
455 Requires: mysql >= 3.23
456 Requires: mysql-server >= 3.23
457 %endif
458 %if %{mysql} && ! %{su9} && ! %{su10} && ! %{mdk} && %{mysql4}
459 Requires: mysql >= 4.0
460 Requires: mysql-server >= 4.0
461 %endif
462 %if %{mysql} && ! %{su9} && ! %{su10} && ! %{mdk} && %{mysql5}
463 Requires: mysql >= 5.0
464 Requires: mysql-server >= 5.0
465 %endif
466
467 %if %{mysql} && %{su9} && ! %{mysql4}
468 Requires: mysql >= 3.23
469 Requires: mysql-client >= 3.23
470 %endif
471 %if %{mysql} && %{su9} && %{mysql4}
472 Requires: mysql >= 4.0
473 Requires: mysql-client >= 4.0
474 %endif
475 %if %{mysql} && %{su10} && %{mysql4}
476 Requires: mysql >= 4.0
477 Requires: mysql-client >= 4.0
478 %endif
479 %if %{mysql} && %{su10} && %{mysql5}
480 Requires: mysql >= 5.0
481 Requires: mysql-client >= 5.0
482 %endif
483
484 %if %{mysql} && %{mdk} && ! %{mysql4}
485 Requires: mysql >= 3.23
486 Requires: mysql-client >= 3.23
487 %endif
488 %if %{mysql} && %{mdk} && %{mysql4}
489 Requires: mysql >= 4.0
490 Requires: mysql-client >= 4.0
491 %endif
492
493 %if %{postgresql} && %{wb3}
494 Requires: rh-postgresql >= 7
495 Requires: rh-postgresql-server >= 7
496 %endif
497 %if %{postgresql} && ! %{wb3}
498 Requires: postgresql >= 7
499 Requires: postgresql-server >= 7
500 %endif
501
502 %if %{mysql}
503 %description mysql
504 %endif
505 %if %{sqlite}
506 %description sqlite
507 %endif
508 %if %{postgresql}
509 %description postgresql
510 %endif
511
512 %if %{python}
513 Requires: python >= %{pyver}
514 %endif
515
516 %{blurb}
517
518 %{blurb2}
519 %{blurb3}
520 %{blurb4}
521 %{blurb5}
522 %{blurb6}
523 %{blurb7}
524 %{blurb8}
525
526 %if %{mysql}
527 This build requires MySQL to be installed separately as the catalog database.
528 %endif
529 %if %{postgresql}
530 This build requires PostgreSQL to be installed separately as the catalog database.
531 %endif
532 %if %{sqlite}
533 This build incorporates sqlite as the catalog database, statically compiled.
534 %endif
535 %if %{python}
536 This build includes python scripting support.
537 %endif
538
539 %if ! %{client_only}
540 %package mtx
541 Summary: Bacula - The Network Backup Solution
542 Group: System Environment/Daemons
543 Provides: mtx
544
545 %description mtx
546 This is Bacula's version of mtx tape utilities for Linux distributions that
547 do not provide their own mtx package
548 %endif
549
550 %package client
551 Summary: Bacula - The Network Backup Solution
552 Group: System Environment/Daemons
553 Provides: bacula-fd
554 Conflicts: bacula-mysql
555 Conflicts: bacula-sqlite
556 Conflicts: bacula-postgresql
557 Obsoletes: bacula-rescue
558
559 %if %{su9} || %{su10}
560 Provides: bacula
561 %endif
562
563 Requires: libstdc++, zlib, openssl
564
565 %if %{rh7}
566 Requires: glibc >= 2.2
567 Requires: libtermcap
568 %endif
569 %if %{su9} || %{su10}
570 Requires: glibc >= 2.3
571 Requires: termcap
572 %endif
573 %if ! %{rh7} && ! %{su9} && ! %{su10} && ! %{fc5}
574 Requires: glibc >= 2.3
575 Requires: libtermcap
576 %endif
577 %if %{fc5}
578 Requires: glibc >= 2.4
579 Requires: libtermcap
580 %endif
581
582 %if %{python}
583 Requires: python >= %{pyver}
584 %endif
585
586 %description client
587 %{blurb}
588
589 %{blurb2}
590 %{blurb3}
591 %{blurb4}
592 %{blurb5}
593 %{blurb6}
594 %{blurb7}
595 %{blurb8}
596
597 This is the File daemon (Client) only package. It includes the command line 
598 console program.
599 %if %{python}
600 This build includes python scripting support.
601 %endif
602
603 %if ! %{client_only}
604 %package updatedb
605
606 Summary: Bacula - The Network Backup Solution
607 Group: System Environment/Daemons
608
609 %description updatedb
610 %{blurb}
611
612 %{blurb2}
613 %{blurb3}
614 %{blurb4}
615 %{blurb5}
616 %{blurb6}
617 %{blurb7}
618 %{blurb8}
619
620 This package installs scripts for updating older versions of the bacula
621 database.
622 %endif
623
624 %if %{gconsole}
625 %package gconsole
626 Summary: Bacula - The Network Backup Solution
627 Group: System Environment/Daemons
628 Requires: atk, libstdc++, zlib, pango, libxml2, bacula-fd, openssl
629 %endif
630
631 %if %{gconsole} && %{su9}
632 Requires: gtk2 >= 2.0
633 Requires: libgnome >= 2.0
634 Requires: libgnomeui >= 2.0
635 Requires: glibc >= 2.3
636 Requires: ORBit2
637 Requires: libart_lgpl >= 2.0
638 Requires: libbonobo >= 2.0
639 Requires: libbonoboui >= 2.0
640 Requires: bonobo-activation
641 Requires: gconf2
642 Requires: linc
643 Requires: freetype2
644 %endif
645 %if %{gconsole} && %{su10}
646 Requires: gtk2 >= 2.8
647 Requires: libgnome >= 2.12
648 Requires: libgnomeui >= 2.12
649 Requires: glibc >= 2.3
650 Requires: ORBit2
651 Requires: libart_lgpl >= 2.3
652 Requires: libbonobo >= 2.10
653 Requires: libbonoboui >= 2.10
654 Requires: bonobo-activation
655 Requires: gconf2
656 Requires: freetype2
657 Requires: cairo
658 Requires: fontconfig >= 2.3
659 Requires: gnome-vfs2 >= 2.12
660 Requires: libpng
661 %endif
662 %if %{gconsole} && %{mdk} && !%{mdv}
663 Requires: gtk2 >= 2.0
664 Requires: libgnomeui2
665 Requires: glibc >= 2.3
666 Requires: ORBit2
667 Requires: libart_lgpl >= 2.0
668 Requires: libbonobo >= 2.0
669 Requires: libbonoboui >= 2.0
670 Requires: GConf2
671 Requires: freetype2
672 %endif
673 %if %{gconsole} && %{mdv}
674 Requires: gtk2 >= 2.8
675 Requires: libgnomeui2
676 Requires: glibc >= 2.3
677 Requires: ORBit2
678 Requires: libart_lgpl >= 2.3
679 Requires: libbonobo >= 2.10
680 Requires: libbonoboui >= 2.10
681 Requires: GConf2
682 Requires: freetype2
683 %endif
684 %if %{gconsole} && %{fc3}  
685 Requires: gtk2 >= 2.4
686 Requires: libgnomeui >= 2.8
687 Requires: glibc >= 2.3
688 Requires: ORBit2
689 Requires: libart_lgpl >= 2.3
690 Requires: libbonobo >= 2.8
691 Requires: libbonoboui >= 2.8
692 Requires: bonobo-activation
693 Requires: GConf2
694 Requires: freetype
695 %endif
696 %if %{gconsole} && %{fc4}  
697 Requires: gtk2 >= 2.6
698 Requires: libgnomeui >= 2.10
699 Requires: glibc >= 2.3
700 Requires: ORBit2
701 Requires: libart_lgpl >= 2.3
702 Requires: libbonobo >= 2.8
703 Requires: libbonoboui >= 2.8
704 Requires: bonobo-activation
705 Requires: GConf2
706 Requires: freetype
707 %endif
708 %if %{gconsole} && %{fc5}  
709 Requires: gtk2 >= 2.8
710 Requires: libgnomeui >= 2.14
711 Requires: glibc >= 2.4
712 Requires: ORBit2
713 Requires: libart_lgpl >= 2.3
714 Requires: libbonobo >= 2.14
715 Requires: libbonoboui >= 2.14
716 Requires: GConf2
717 Requires: freetype
718 %endif
719 %if %{gconsole} && ! %{su9} && ! %{su10} && ! %{mdk} && ! %{fc3} && ! %{fc4} && ! %{fc5}
720 Requires: gtk2 >= 2.0
721 Requires: libgnomeui >= 2.0
722 Requires: glibc >= 2.3
723 Requires: ORBit2
724 Requires: libart_lgpl >= 2.0
725 Requires: libbonobo >= 2.0
726 Requires: libbonoboui >= 2.0
727 Requires: bonobo-activation
728 Requires: GConf2
729 Requires: linc
730 Requires: freetype
731 %endif
732 %if %{gconsole} && %{su9}
733 Requires: xsu
734 %endif
735 %if %{gconsole} && %{su10}
736 Requires: xsu
737 %endif
738 %if %{gconsole} && ! %{su9} && ! %{su10}
739 Requires: usermode
740 %endif
741
742 %if %{gconsole}
743 %description gconsole
744 %{blurb}
745
746 %{blurb2}
747 %{blurb3}
748 %{blurb4}
749 %{blurb5}
750 %{blurb6}
751 %{blurb7}
752 %{blurb8}
753
754 This is the Gnome Console package. It is an add-on to the client or
755 server packages.
756 %endif
757
758 %if %{wxconsole}
759 %package wxconsole
760 Summary: Bacula - The Network Backup Solution
761 Group: System Environment/Daemons
762 Requires: wxGTK >= 2.6, libstdc++, openssl
763 %endif
764
765 %if %{wxconsole} && %{su10}
766 Requires: gtk2 >= 2.8
767 %endif
768
769 %if %{wxconsole} && %{fc3}  
770 Requires: gtk2 >= 2.4
771 %endif
772
773 %if %{wxconsole} && %{fc4}  
774 Requires: gtk2 >= 2.6
775 %endif
776
777 %if %{wxconsole} && %{fc5}  
778 Requires: gtk2 >= 2.8
779 %endif
780
781 %if %{wxconsole}
782 %description wxconsole
783 %{blurb}
784
785 %{blurb2}
786 %{blurb3}
787 %{blurb4}
788 %{blurb5}
789 %{blurb6}
790 %{blurb7}
791 %{blurb8}
792
793 This is the WXWindows Console package. It is an add-on to the client or
794 server packages.
795 %endif
796
797 %prep
798
799 %setup
800 %setup -T -D -b 1
801 %setup -T -D -b 2
802 %setup -T -D -b 3
803 %setup -T -D -b 4
804
805 %build
806
807 %if %{su9} || %{su10}
808 export LDFLAGS="${LDFLAGS} -L/usr/lib/termcap"
809 %endif
810
811 cwd=${PWD}
812 cd %{depkgs}
813 %if %{sqlite}
814 make sqlite
815 %endif
816 %if ! %{client_only}
817 make mtx
818 %endif
819 cd ${cwd}
820
821 # patches for the bundled sqlite scripts
822
823 # patch the make_sqlite_tables script for installation bindir
824 patch src/cats/make_sqlite_tables.in src/cats/make_sqlite_tables.in.patch
825
826 # patch the create_sqlite_database script for installation bindir
827 # not necessary after 1.39.26 no longer references sqlite binary
828 #patch src/cats/create_sqlite_database.in src/cats/create_sqlite_database.in.patch
829
830 # patch the make_catalog_backup script for installation bindir
831 patch src/cats/make_catalog_backup.in src/cats/make_catalog_backup.in.patch
832
833 # patch the update_sqlite_tables script for installation bindir
834 patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch
835
836 # patch the bacula-dir init script to remove sqlite service
837 %if %{sqlite} && %{su9}
838 patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch
839 %endif
840 %if %{sqlite} && %{su10}
841 patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch
842 %endif
843
844 # 64 bit lib location hacks
845 # as of 1.39.18 it should not be necessary to enable x86_64 as configure is
846 # reported to be fixed to properly detect lib locations.
847 %if %{x86_64}
848 export LDFLAGS="${LDFLAGS} -L/usr/lib64"
849 %endif
850 %if %{mysql} && %{x86_64}
851 export LDFLAGS="${LDFLAGS} -L/usr/lib64/mysql"
852 %endif
853 %if %{python} && %{x86_64}
854 export LDFLAGS="${LDFLAGS} -L/usr/lib64/python%{pyver}"
855 %endif
856
857 %configure \
858         --prefix=/usr \
859         --sbindir=/usr/sbin \
860         --sysconfdir=/etc/bacula \
861         --with-scriptdir=/etc/bacula \
862         --enable-smartalloc \
863         --enable-client-only \
864         %if %{mdk}
865         --disable-nls \
866         %endif
867         --enable-static-fd
868
869 make
870
871 %configure \
872         --prefix=/usr \
873         --sbindir=/usr/sbin \
874         --sysconfdir=/etc/bacula \
875         --with-scriptdir=/etc/bacula \
876         --enable-smartalloc \
877 %if %{gconsole}
878         --enable-gnome \
879 %endif
880 %if %{gconsole} && ! %{rh8}
881         --enable-tray-monitor \
882 %endif
883 %if %{mysql}
884         --with-mysql \
885 %endif
886 %if %{sqlite}
887         --with-sqlite=${cwd}/%{depkgs}/sqlite \
888 %endif
889 %if %{postgresql}
890         --with-postgresql \
891 %endif
892 %if %{wxconsole}
893         --enable-wx-console \
894 %endif
895 %if %{python}
896         --with-python \
897 %endif
898 %if %{client_only}
899         --enable-client-only \
900 %endif
901         --mandir=%{_mandir} \
902         --with-working-dir=%{working_dir} \
903         --with-pid-dir=/var/run \
904         --with-subsys-dir=/var/lock/subsys \
905         --with-dir-user=%{director_daemon_user} \
906         --with-dir-group=%{daemon_group} \
907         --with-sd-user=%{storage_daemon_user} \
908         --with-sd-group=%{storage_daemon_group} \
909         --with-fd-user=%{file_daemon_user} \
910         --with-fd-group=%{daemon_group} \
911         --with-dir-password="XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX" \
912         --with-fd-password="XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX" \
913         --with-sd-password="XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX" \
914         --with-mon-dir-password="XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX" \
915         --with-mon-fd-password="XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX" \
916         --with-mon-sd-password="XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX" \
917         --with-openssl
918
919 make
920
921 %install
922  
923 cwd=${PWD}
924 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
925 mkdir -p $RPM_BUILD_ROOT/etc/init.d
926 mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
927 mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/logfiles
928 mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/services
929 mkdir -p $RPM_BUILD_ROOT/etc/log.d/scripts/services
930 mkdir -p $RPM_BUILD_ROOT/etc/bacula/updatedb
931
932 %if %{gconsole} || %{wxconsole}
933 mkdir -p $RPM_BUILD_ROOT/usr/share/applications
934 mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps
935 %endif
936
937 %if %{gconsole} || %{wxconsole}
938 %define usermode_iftrick 1
939 %else
940 %define usermode_iftrick 0
941 %endif
942
943 %if %{usermode_iftrick} && ! %{su9} && ! %{su10}
944 mkdir -p $RPM_BUILD_ROOT/etc/pam.d
945 mkdir -p $RPM_BUILD_ROOT/etc/security/console.apps
946 mkdir -p $RPM_BUILD_ROOT/usr/bin
947 %endif
948
949 %if %{sqlite}
950 mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir}
951 %endif
952
953 make \
954         prefix=$RPM_BUILD_ROOT/usr \
955         sbindir=$RPM_BUILD_ROOT/usr/sbin \
956         sysconfdir=$RPM_BUILD_ROOT/etc/bacula \
957         scriptdir=$RPM_BUILD_ROOT/etc/bacula \
958         working_dir=$RPM_BUILD_ROOT%{working_dir} \
959         mandir=$RPM_BUILD_ROOT%{_mandir} \
960         install
961
962 %if ! %{client_only}
963 cd %{depkgs}
964 make \
965         prefix=$RPM_BUILD_ROOT/usr \
966         sbindir=$RPM_BUILD_ROOT/usr/sbin \
967         sysconfdir=$RPM_BUILD_ROOT/etc/bacula \
968         working_dir=$RPM_BUILD_ROOT%{working_dir} \
969         mandir=$RPM_BUILD_ROOT%{_mandir} \
970         mtx-install
971 cd ${cwd}
972 %endif
973
974 # make install in manpages installs _everything_ shotgun style
975 # so now delete what we will not be packaging
976 %if ! %{wxconsole}
977 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-wxconsole.1.gz
978 %endif
979 %if ! %{gconsole}
980 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-console-gnome.1.gz
981 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bacula-tray-monitor.1.gz
982 %endif
983 %if %{client_only}
984 rm -f $RPM_BUILD_ROOT%{_mandir}/man1/bsmtp.1.gz
985 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-dir.8.gz
986 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bacula-sd.8.gz
987 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bcopy.8.gz
988 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bextract.8.gz
989 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bls.8.gz
990 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/bscan.8.gz
991 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/btape.8.gz
992 rm -f $RPM_BUILD_ROOT%{_mandir}/man8/dbcheck.8.gz
993 %endif
994
995 # fixme - make installs the mysql scripts for sqlite build
996 %if %{sqlite}
997 rm -f $RPM_BUILD_ROOT/etc/bacula/startmysql
998 rm -f $RPM_BUILD_ROOT/etc/bacula/stopmysql
999 rm -f $RPM_BUILD_ROOT/etc/bacula/grant_mysql_privileges
1000 %endif
1001
1002 # fixme - make installs the mysql scripts for postgresql build
1003 %if %{postgresql}
1004 rm -f $RPM_BUILD_ROOT/etc/bacula/startmysql
1005 rm -f $RPM_BUILD_ROOT/etc/bacula/stopmysql
1006 %endif
1007
1008 # fixme - make installs gconsole script for build without gconsole
1009 %if ! %{gconsole}
1010 rm -f $RPM_BUILD_ROOT/etc/bacula/gconsole
1011 %endif
1012
1013 rm -f $RPM_BUILD_ROOT/usr/sbin/static-bacula-fd
1014
1015 # install the init scripts
1016 %if %{su9} || %{su10}
1017 cp -p platforms/suse/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
1018 cp -p platforms/suse/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
1019 cp -p platforms/suse/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
1020 %endif
1021 %if %{mdk}
1022 cp -p platforms/mandrake/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
1023 cp -p platforms/mandrake/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
1024 cp -p platforms/mandrake/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
1025 %endif
1026 %if ! %{su9} && ! %{su10} && ! %{mdk}
1027 cp -p platforms/redhat/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
1028 cp -p platforms/redhat/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
1029 cp -p platforms/redhat/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
1030 %endif
1031 chmod 0754 $RPM_BUILD_ROOT/etc/init.d/*
1032 %if %{client_only}
1033 rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-dir
1034 rm -f $RPM_BUILD_ROOT/etc/init.d/bacula-sd
1035 %endif
1036
1037 # install the menu stuff
1038 %if %{gconsole} && %{su9}
1039 cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png
1040 cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop
1041 cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm
1042 cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop
1043 %endif
1044 %if %{gconsole} && %{su10}
1045 cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png
1046 cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop
1047 cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm
1048 cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop
1049 %endif
1050 %if %{wxconsole} && %{su10}
1051 cp -p src/wx-console/wxwin16x16.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/wxwin16x16.xpm
1052 cp -p scripts/wxconsole.desktop.xsu $RPM_BUILD_ROOT/usr/share/applications/wxconsole.desktop
1053 %endif
1054 %if %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{fc3} || %{fc4} || %{fc5} || %{mdk}
1055 %define iftrick 1
1056 %else
1057 %define iftrick 0
1058 %endif
1059 %if %{gconsole} && %{iftrick}
1060 cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png
1061 cp -p scripts/bacula.desktop.gnome2.consolehelper $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop
1062 cp -p scripts/gnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/gnome-console
1063 cp -p scripts/gnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/gnome-console
1064 ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/gnome-console
1065 %endif
1066 %if %{gconsole} && ! %{rh8}
1067 cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm
1068 cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop
1069 %endif
1070 %if %{wxconsole} && %{iftrick}
1071 cp -p src/wx-console/wxwin16x16.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/wxwin16x16.xpm
1072 cp -p scripts/wxconsole.desktop.consolehelper $RPM_BUILD_ROOT/usr/share/applications/wxconsole.desktop
1073 cp -p scripts/wxconsole.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/wxconsole
1074 cp -p scripts/wxconsole.pamd $RPM_BUILD_ROOT/etc/pam.d/wxconsole
1075 ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/wxconsole
1076 %endif
1077
1078 # install sqlite
1079 %if %{sqlite}
1080 cp -p %{depkgs}/sqlite/sqlite $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite
1081 cp -p %{depkgs}/sqlite/sqlite.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite.h
1082 cp -p %{depkgs}/sqlite/libsqlite.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite.a
1083 %endif
1084
1085 # install the logrotate file
1086 cp -p scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula
1087
1088 # install the updatedb scripts
1089 cp -p updatedb/* $RPM_BUILD_ROOT/etc/bacula/updatedb/
1090
1091 # install the logwatch scripts
1092 %if ! %{client_only}
1093 cp -p scripts/logwatch/bacula $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula
1094 cp -p scripts/logwatch/logfile.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf
1095 cp -p scripts/logwatch/services.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf
1096 chmod 755 $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula
1097 chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf
1098 chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf
1099 %endif
1100
1101 # install the rescue files
1102 mkdir $RPM_BUILD_ROOT/etc/bacula/rescue
1103 cp -p %{_rescuesrc}/Makefile* $RPM_BUILD_ROOT/etc/bacula/rescue/
1104 cp -p %{_rescuesrc}/README $RPM_BUILD_ROOT/etc/bacula/rescue/
1105 cp -p %{_rescuesrc}/configure $RPM_BUILD_ROOT/etc/bacula/rescue/
1106 cp -p %{_rescuesrc}/version.h $RPM_BUILD_ROOT/etc/bacula/rescue/
1107 cp -pr %{_rescuesrc}/linux $RPM_BUILD_ROOT/etc/bacula/rescue/
1108 cp -pr %{_rescuesrc}/autoconf $RPM_BUILD_ROOT/etc/bacula/rescue/
1109 touch $RPM_BUILD_ROOT/etc/bacula/rescue/linux/cdrom/rpm_release
1110 cp -p src/filed/static-bacula-fd $RPM_BUILD_ROOT/etc/bacula/rescue/linux/cdrom/bacula/bin/bacula-fd
1111 rm -f src/filed/static-bacula-fd
1112
1113 %if %{wxconsole}
1114 mv $RPM_BUILD_ROOT/usr/sbin/wx-console $RPM_BUILD_ROOT/usr/sbin/wxconsole
1115 mv $RPM_BUILD_ROOT/etc/bacula/wx-console.conf $RPM_BUILD_ROOT/etc/bacula/wxconsole.conf
1116 %endif
1117
1118 # now clean up permissions that are left broken by the install
1119 %if ! %{client_only}
1120 chmod o-r $RPM_BUILD_ROOT/etc/bacula/query.sql
1121 %endif
1122 chmod o-rwx $RPM_BUILD_ROOT%{working_dir}
1123 %if %{gconsole} && ! %{rh8}
1124 chmod 755 $RPM_BUILD_ROOT/usr/sbin/bacula-tray-monitor
1125 chmod 644 $RPM_BUILD_ROOT/etc/bacula/tray-monitor.conf
1126 %endif
1127
1128 # fix me - building enable-client-only installs files not included in bacula-client package
1129 %if %{client_only}
1130 rm -f $RPM_BUILD_ROOT/etc/bacula/bacula
1131 rm -f $RPM_BUILD_ROOT/etc/bacula/bacula-ctl-dir
1132 rm -f $RPM_BUILD_ROOT/etc/bacula/bacula-ctl-sd
1133 rm -f $RPM_BUILD_ROOT/etc/bacula/disk-changer
1134 rm -f $RPM_BUILD_ROOT/etc/bacula/dvd-handler
1135 rm -f $RPM_BUILD_ROOT/etc/bacula/mtx-changer
1136 rm -f $RPM_BUILD_ROOT/etc/bacula/startmysql
1137 rm -f $RPM_BUILD_ROOT/etc/bacula/stopmysql
1138 rm -rf $RPM_BUILD_ROOT/etc/bacula/updatedb
1139 %endif
1140
1141 %clean
1142 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
1143
1144 %if %{mysql}
1145 # MySQL specific files
1146 %files mysql
1147 %defattr(-, root, root)
1148 %attr(-, root, %{daemon_group}) /etc/bacula/create_mysql_database
1149 %attr(-, root, %{daemon_group}) /etc/bacula/drop_mysql_database
1150 %attr(-, root, %{daemon_group}) /etc/bacula/make_mysql_tables
1151 %attr(-, root, %{daemon_group}) /etc/bacula/drop_mysql_tables
1152 %attr(-, root, %{daemon_group}) /etc/bacula/update_mysql_tables
1153 %attr(-, root, %{daemon_group}) /etc/bacula/grant_mysql_privileges
1154 %attr(-, root, %{daemon_group}) /etc/bacula/startmysql
1155 %attr(-, root, %{daemon_group}) /etc/bacula/stopmysql
1156 %endif
1157
1158 %if %{sqlite}
1159 %files sqlite
1160 %defattr(-,root,root)
1161 %attr(-, root, %{daemon_group}) /etc/bacula/create_sqlite_database
1162 %attr(-, root, %{daemon_group}) /etc/bacula/drop_sqlite_database
1163 %attr(-, root, %{daemon_group}) /etc/bacula/grant_sqlite_privileges
1164 %attr(-, root, %{daemon_group}) /etc/bacula/make_sqlite_tables
1165 %attr(-, root, %{daemon_group}) /etc/bacula/drop_sqlite_tables
1166 %attr(-, root, %{daemon_group}) /etc/bacula/update_sqlite_tables
1167 %{sqlite_bindir}/libsqlite.a
1168 %{sqlite_bindir}/sqlite.h
1169 %{sqlite_bindir}/sqlite
1170 %endif
1171
1172 %if %{postgresql}
1173 %files postgresql
1174 %defattr(-,root,root)
1175 %attr(-, root, %{daemon_group}) /etc/bacula/create_postgresql_database
1176 %attr(-, root, %{daemon_group}) /etc/bacula/drop_postgresql_database
1177 %attr(-, root, %{daemon_group}) /etc/bacula/make_postgresql_tables
1178 %attr(-, root, %{daemon_group}) /etc/bacula/drop_postgresql_tables
1179 %attr(-, root, %{daemon_group}) /etc/bacula/update_postgresql_tables
1180 %attr(-, root, %{daemon_group}) /etc/bacula/grant_postgresql_privileges
1181 %endif
1182
1183 # The rest is DB backend independent
1184 %if ! %{client_only}
1185 %attr(-, root, %{daemon_group}) %dir /etc/bacula
1186 %attr(-, root, %{daemon_group}) /etc/bacula/bacula
1187 %attr(-, root, %{daemon_group}) /etc/bacula/bconsole
1188 %attr(-, root, %{daemon_group}) /etc/bacula/create_bacula_database
1189 %attr(-, root, %{daemon_group}) /etc/bacula/drop_bacula_database
1190 %attr(-, root, %{daemon_group}) /etc/bacula/grant_bacula_privileges
1191 %attr(-, root, %{daemon_group}) /etc/bacula/make_bacula_tables
1192 %attr(-, root, %{daemon_group}) /etc/bacula/drop_bacula_tables
1193 %attr(-, root, %{daemon_group}) /etc/bacula/update_bacula_tables
1194 %attr(-, root, %{daemon_group}) /etc/bacula/make_catalog_backup
1195 %attr(-, root, %{daemon_group}) /etc/bacula/delete_catalog_backup
1196 %attr(-, root, %{daemon_group}) /etc/bacula/btraceback.dbx
1197 %attr(-, root, %{daemon_group}) /etc/bacula/btraceback.gdb
1198 %attr(-, root, %{daemon_group}) /etc/bacula/rescue
1199 %attr(-, root, %{daemon_group}) /etc/bacula/disk-changer
1200 %attr(-, root, %{daemon_group}) /etc/bacula/bacula-ctl-dir
1201 %attr(-, root, %{daemon_group}) /etc/bacula/bacula-ctl-fd
1202 %attr(-, root, %{daemon_group}) /etc/bacula/bacula-ctl-sd
1203 %attr(-, root, %{daemon_group}) /etc/init.d/bacula-dir
1204 %attr(-, root, %{daemon_group}) /etc/init.d/bacula-fd
1205 %attr(-, root, %{storage_daemon_group}) /etc/bacula/dvd-handler
1206 %attr(-, root, %{storage_daemon_group}) /etc/init.d/bacula-sd
1207 %attr(-, root, %{storage_daemon_group}) /etc/bacula/mtx-changer
1208
1209 %doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo 
1210 %doc %{_docsrc}/manual/bacula.pdf %{_docsrc}/developers/developers.pdf %{_docsrc}/manual/bacula ../Release_Notes-%{version}-%{release}.txt
1211
1212 /etc/logrotate.d/bacula
1213 /etc/log.d/scripts/services/bacula
1214 %attr(-, root, %{daemon_group}) %config(noreplace) /etc/bacula/bacula-dir.conf
1215 %attr(-, root, %{daemon_group}) %config(noreplace) /etc/bacula/bacula-fd.conf
1216 %attr(-, root, %{storage_daemon_group}) %config(noreplace) /etc/bacula/bacula-sd.conf
1217 %attr(-, root, %{daemon_group}) %config(noreplace) /etc/bacula/bconsole.conf
1218 %attr(-, root, %{daemon_group}) %config(noreplace) /etc/log.d/conf/logfiles/bacula.conf
1219 %attr(-, root, %{daemon_group}) %config(noreplace) /etc/log.d/conf/services/bacula.conf
1220 %attr(-, root, %{daemon_group}) /etc/bacula/query.sql
1221
1222 %attr(-, %{storage_daemon_user}, %{daemon_group}) %dir %{working_dir}
1223
1224 /usr/sbin/bacula-dir
1225 /usr/sbin/bacula-fd
1226 /usr/sbin/bacula-sd
1227 /usr/sbin/bcopy
1228 /usr/sbin/bextract
1229 /usr/sbin/bls
1230 /usr/sbin/bscan
1231 /usr/sbin/btape
1232 /usr/sbin/btraceback
1233 /usr/sbin/bconsole
1234 /usr/sbin/dbcheck
1235 /usr/sbin/bsmtp
1236 /usr/sbin/bregex
1237 /usr/sbin/bwild
1238 %{_mandir}/man8/bacula-fd.8.%{manpage_ext}
1239 %{_mandir}/man8/bacula-dir.8.%{manpage_ext}
1240 %{_mandir}/man8/bacula-sd.8.%{manpage_ext}
1241 %{_mandir}/man8/bacula.8.%{manpage_ext}
1242 %{_mandir}/man8/bconsole.8.%{manpage_ext}
1243 %{_mandir}/man8/bcopy.8.%{manpage_ext}
1244 %{_mandir}/man8/bextract.8.%{manpage_ext}
1245 %{_mandir}/man8/bls.8.%{manpage_ext}
1246 %{_mandir}/man8/bscan.8.%{manpage_ext}
1247 %{_mandir}/man8/btape.8.%{manpage_ext}
1248 %{_mandir}/man8/btraceback.8.%{manpage_ext}
1249 %{_mandir}/man8/dbcheck.8.%{manpage_ext}
1250 %{_mandir}/man1/bsmtp.1.%{manpage_ext}
1251 %endif
1252
1253 %if %{mysql}
1254 %pre mysql
1255 # test for bacula database older than version 9
1256 # note: this ASSUMES no password has been set for bacula database
1257 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
1258 %endif
1259
1260 %if %{sqlite}
1261 %pre sqlite
1262 # test for bacula database older than version 9
1263 if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite ];then
1264         DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
1265 %endif
1266
1267 %if %{postgresql}
1268 %pre postgresql
1269 DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1`
1270 %endif
1271
1272 %if ! %{client_only}
1273 if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "9" ]; then
1274         echo "This bacula upgrade will update a bacula database from version 9 to 10."
1275         echo "You appear to be running database version $DB_VER. You must first update"
1276         echo "your database to version 9 and then install this upgrade. The alternative"
1277         echo "is to use /etc/bacula/drop_%{db_backend}_tables to delete all your your current"
1278         echo "catalog information, then do the upgrade. Information on updating a"
1279         echo "database older than version 9 can be found in the release notes."
1280         exit 1
1281 fi
1282 %endif
1283
1284 %if %{sqlite}
1285 fi
1286 %endif
1287
1288 %if ! %{client_only}
1289 # check for and copy /etc/bacula/console.conf to bconsole.conf
1290 if [ -s /etc/bacula/console.conf ];then
1291         cp -p /etc/bacula/console.conf /etc/bacula/bconsole.conf
1292 fi
1293
1294 # create the daemon users and groups
1295 # first create the groups if they don't exist
1296 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1297 if [ -z "$HAVE_BACULA" ]; then
1298         %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1299         echo "The group %{daemon_group} has been added to %{group_file}."
1300         echo "See the manual chapter \"Running Bacula\" for details."
1301 fi
1302 HAVE_BACULA=`grep %{storage_daemon_group} %{group_file} 2>/dev/null`
1303 if [ -z "$HAVE_BACULA" ]; then
1304         %{groupadd} -r %{storage_daemon_group} > /dev/null 2>&1
1305         echo "The group %{storage_daemon_group} has been added to %{group_file}."
1306         echo "See the manual chapter \"Running Bacula\" for details."
1307 fi
1308 # now create the users if they do not exist
1309 # we do not use the -g option allowing the primary group to be set to system default
1310 # this will be a unique group on redhat type systems or the group users on some systems
1311 HAVE_BACULA=`grep %{storage_daemon_user} %{user_file} 2>/dev/null`
1312 if [ -z "$HAVE_BACULA" ]; then
1313         %{useradd} -r -c "Bacula" -d %{working_dir} -g %{storage_daemon_group} -M -s /sbin/nologin %{storage_daemon_user} > /dev/null 2>&1
1314         echo "The user %{storage_daemon_user} has been added to %{user_file}."
1315         echo "See the manual chapter \"Running Bacula\" for details."
1316 fi
1317 HAVE_BACULA=`grep %{director_daemon_user} %{user_file} 2>/dev/null`
1318 if [ -z "$HAVE_BACULA" ]; then
1319         %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{director_daemon_user} > /dev/null 2>&1
1320         echo "The user %{director_daemon_user} has been added to %{user_file}."
1321         echo "See the manual chapter \"Running Bacula\" for details."
1322 fi
1323 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
1324 if [ -z "$HAVE_BACULA" ]; then
1325         %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
1326         echo "The user %{file_daemon_user} has been added to %{user_file}."
1327         echo "See the manual chapter \"Running Bacula\" for details."
1328 fi
1329 # now we add the supplementary groups, this is ok to call even if the users already exist
1330 # we only do this if the user is NOT root
1331 IS_ROOT=%{director_daemon_user}
1332 if [ "$IS_ROOT" != "root" ]; then
1333 %{usermod} -G %{daemon_group} %{director_daemon_user}
1334 fi
1335 IS_ROOT=%{storage_daemon_user}
1336 if [ "$IS_ROOT" != "root" ]; then
1337 %{usermod} -G %{daemon_group},%{storage_daemon_group} %{storage_daemon_user}
1338 fi
1339 IS_ROOT=%{file_daemon_user}
1340 if [ "$IS_ROOT" != "root" ]; then
1341 %{usermod} -G %{daemon_group} %{file_daemon_user}
1342 fi
1343 %endif
1344
1345 %if %{mysql}
1346 %post mysql
1347 %endif
1348 %if %{sqlite}
1349 %post sqlite
1350 %endif
1351 %if %{postgresql}
1352 %post postgresql
1353 %endif
1354
1355 %if ! %{client_only}
1356 # add our links
1357 if [ "$1" -ge 1 ] ; then
1358 /sbin/chkconfig --add bacula-dir
1359 /sbin/chkconfig --add bacula-fd
1360 /sbin/chkconfig --add bacula-sd
1361 fi
1362 %endif
1363
1364 %if %{mysql}
1365 # test for an existing database
1366 # note: this ASSUMES no password has been set for bacula database
1367 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
1368
1369 # grant privileges and create tables if they do not exist
1370 if [ -z "$DB_VER" ]; then
1371         echo "Hmm, doesn't look like you have an existing database."
1372         echo "Granting privileges for MySQL user bacula..."
1373         /etc/bacula/grant_mysql_privileges
1374         echo "Creating MySQL bacula database..."
1375         /etc/bacula/create_mysql_database
1376         echo "Creating bacula tables..."
1377         /etc/bacula/make_mysql_tables
1378
1379 # check to see if we need to upgrade a 1.38 or lower database
1380 elif [ "$DB_VER" -lt "10" ]; then
1381         echo "This release requires an upgrade to your bacula database."
1382         echo "Backing up your current database..."
1383         mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1384         echo "Upgrading bacula database ..."
1385         /etc/bacula/update_mysql_tables
1386         echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1387
1388 fi
1389 %endif
1390
1391 %if %{sqlite}
1392 # test for an existing database
1393 if [ -s %{working_dir}/bacula.db ]; then
1394         DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
1395         # check to see if we need to upgrade a 1.38 or lower database
1396         if [ "$DB_VER" -lt "10" ] && [ "$DB_VER" -ge "9" ]; then
1397                 echo "This release requires an upgrade to your bacula database."
1398                 echo "Backing up your current database..."
1399                 echo ".dump" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1400                 echo "Upgrading bacula database ..."
1401                 /etc/bacula/update_sqlite_tables
1402                 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1403         fi
1404 else
1405         # create the database and tables
1406         echo "Hmm, doesn't look like you have an existing database."
1407         echo "Creating SQLite database..."
1408         /etc/bacula/create_sqlite_database
1409         echo "Creating the SQLite tables..."
1410         /etc/bacula/make_sqlite_tables
1411 fi
1412 %endif
1413
1414 %if %{postgresql}
1415 # test for an existing database
1416 # note: this ASSUMES no password has been set for bacula database
1417 DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1`
1418
1419 # grant privileges and create tables if they do not exist
1420 if [ -z "$DB_VER" ]; then
1421         echo "Hmm, doesn't look like you have an existing database."
1422         echo "Creating PostgreSQL bacula database..."
1423         /etc/bacula/create_postgresql_database
1424         echo "Creating bacula tables..."
1425         /etc/bacula/make_postgresql_tables
1426         echo "Granting privileges for PostgreSQL user bacula..."
1427         /etc/bacula/grant_postgresql_privileges
1428
1429 # check to see if we need to upgrade a 1.38 or lower database
1430 elif [ "$DB_VER" -lt "10" ]; then
1431         echo "This release requires an upgrade to your bacula database."
1432         echo "Backing up your current database..."
1433         pg_dump bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
1434         echo "Upgrading bacula database ..."
1435         /etc/bacula/update_postgresql_tables
1436         echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
1437         
1438 fi
1439 %endif
1440
1441 %if ! %{client_only}
1442 # generate passwords if needed
1443 if [ -d /etc/bacula ]; then
1444         cd /etc/bacula
1445         for file in *.conf; do
1446                 for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do
1447                         need_password=`grep $string $file 2>/dev/null`
1448                         if [ -n "$need_password" ]; then
1449                                 pass=`openssl rand -base64 33`
1450                                 sed "s-$string-$pass-g" $file > $file.new
1451                                 cp -f $file.new $file; rm -f $file.new
1452                         fi
1453                 done
1454         done
1455 fi
1456 %endif
1457
1458 %if %{mysql}
1459 %preun mysql
1460 %endif
1461 %if %{sqlite}
1462 %preun sqlite
1463 %endif
1464 %if %{postgresql}
1465 %preun postgresql
1466 %endif
1467
1468 %if ! %{client_only}
1469 # delete our links
1470 if [ $1 = 0 ]; then
1471 /sbin/chkconfig --del bacula-dir
1472 /sbin/chkconfig --del bacula-fd
1473 /sbin/chkconfig --del bacula-sd
1474 fi
1475 %endif
1476
1477
1478 %if ! %{client_only}
1479 %files mtx
1480 %defattr(-,root,root)
1481 %attr(-, root, %{storage_daemon_group}) /usr/sbin/loaderinfo
1482 %attr(-, root, %{storage_daemon_group}) /usr/sbin/mtx
1483 %attr(-, root, %{storage_daemon_group}) /usr/sbin/scsitape
1484 %attr(-, root, %{storage_daemon_group}) /usr/sbin/tapeinfo
1485 %{_mandir}/man1/loaderinfo.1.%{manpage_ext}
1486 %{_mandir}/man1/mtx.1.%{manpage_ext}
1487 %{_mandir}/man1/scsitape.1.%{manpage_ext}
1488 %{_mandir}/man1/tapeinfo.1.%{manpage_ext}
1489 %endif
1490
1491
1492 %files client
1493 %defattr(-,root,root)
1494 %attr(-, root, %{daemon_group}) %dir /etc/bacula
1495 %attr(-, root, %{daemon_group}) /etc/bacula/bconsole
1496 /etc/bacula/bacula-ctl-fd
1497 /etc/init.d/bacula-fd
1498 %attr(-, root, %{daemon_group}) /etc/bacula/rescue
1499
1500 %doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo 
1501 %doc %{_docsrc}/manual/bacula.pdf %{_docsrc}/developers/developers.pdf %{_docsrc}/manual/bacula ../Release_Notes-%{version}-%{release}.txt
1502
1503 /etc/logrotate.d/bacula
1504
1505 %attr(-, root, %{daemon_group}) %config(noreplace) /etc/bacula/bacula-fd.conf
1506 %attr(-, root, %{daemon_group}) %config(noreplace) /etc/bacula/bconsole.conf
1507
1508 %attr(-, root, %{daemon_group}) %dir %{working_dir}
1509
1510 /usr/sbin/bacula-fd
1511 /usr/sbin/btraceback
1512 %attr(-, root, %{daemon_group}) /etc/bacula/btraceback.gdb
1513 %attr(-, root, %{daemon_group}) /etc/bacula/btraceback.dbx
1514 /usr/sbin/bconsole
1515 %{_mandir}/man8/bacula-fd.8.%{manpage_ext}
1516 %{_mandir}/man8/bacula.8.%{manpage_ext}
1517 %{_mandir}/man8/bconsole.8.%{manpage_ext}
1518 %{_mandir}/man8/btraceback.8.%{manpage_ext}
1519
1520
1521 %pre client
1522 # create the daemon group and user
1523 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1524 if [ -z "$HAVE_BACULA" ]; then
1525         %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1526         echo "The group %{daemon_group} has been added to %{group_file}."
1527         echo "See the manual chapter \"Running Bacula\" for details."
1528 fi
1529 # we do not use the -g option allowing the primary group to be set to system default
1530 # this will be a unique group on redhat type systems or the group users on some systems
1531 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
1532 if [ -z "$HAVE_BACULA" ]; then
1533         %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
1534         echo "The user %{file_daemon_user} has been added to %{user_file}."
1535         echo "See the manual chapter \"Running Bacula\" for details."
1536 fi
1537 # now we add the supplementary group, this is ok to call even if the user already exists
1538 # we only do this if the user is NOT root
1539 IS_ROOT=%{file_daemon_user}
1540 if [ "$IS_ROOT" != "root" ]; then
1541 %{usermod} -G %{daemon_group} %{file_daemon_user}
1542 fi
1543
1544 %post client
1545 # add our link
1546 if [ "$1" -ge 1 ] ; then
1547 /sbin/chkconfig --add bacula-fd
1548 fi
1549
1550 # generate passwords if needed
1551 if [ -d /etc/bacula ]; then
1552         cd /etc/bacula
1553         for file in *.conf; do
1554                 for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do
1555                         need_password=`grep $string $file 2>/dev/null`
1556                         if [ -n "$need_password" ]; then
1557                                 pass=`openssl rand -base64 33`
1558                                 sed "s-$string-$pass-g" $file > $file.new
1559                                 cp -f $file.new $file; rm -f $file.new
1560                         fi
1561                 done
1562         done
1563 fi
1564
1565 %preun client
1566 # delete our link
1567 if [ $1 = 0 ]; then
1568 /sbin/chkconfig --del bacula-fd
1569 fi
1570
1571 %if ! %{client_only}
1572 %files updatedb
1573 %defattr(-,root,%{daemon_group})
1574 /etc/bacula/updatedb/*
1575
1576 %pre updatedb
1577 # create the daemon group
1578 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1579 if [ -z "$HAVE_BACULA" ]; then
1580         %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1581         echo "The group %{daemon_group} has been added to %{group_file}."
1582         echo "See the manual chapter \"Running Bacula\" for details."
1583 fi
1584
1585 %post updatedb
1586 echo "The database update scripts were installed to /etc/bacula/updatedb"
1587 %endif
1588
1589 %if %{gconsole}
1590 %files gconsole
1591 %defattr(-,root,root)
1592 /usr/sbin/gnome-console
1593 %attr(-, root, %{daemon_group}) %dir /etc/bacula
1594 %attr(-, root, %{daemon_group}) /etc/bacula/gconsole
1595 %attr(-, root, %{daemon_group}) %config(noreplace) /etc/bacula/gnome-console.conf
1596 /usr/share/pixmaps/bacula.png
1597 /usr/share/applications/bacula.desktop
1598 %{_mandir}/man1/bacula-console-gnome.1.%{manpage_ext}
1599 %endif
1600
1601 %if %{gconsole} && ! %{rh8}
1602 /usr/sbin/bacula-tray-monitor
1603 %config(noreplace) /etc/bacula/tray-monitor.conf
1604 /usr/share/pixmaps/bacula-tray-monitor.xpm
1605 /usr/share/applications/bacula-tray-monitor.desktop
1606 %{_mandir}/man1/bacula-tray-monitor.1.%{manpage_ext}
1607 %endif
1608
1609 %if %{gconsole} && ! %{su9} && ! %{su10}
1610 # add the console helper files
1611 %config(noreplace,missingok) /etc/pam.d/gnome-console
1612 %config(noreplace,missingok) /etc/security/console.apps/gnome-console
1613 /usr/bin/gnome-console
1614 %endif
1615
1616 %if %{gconsole}
1617 %pre gconsole
1618 # create the daemon group
1619 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1620 if [ -z "$HAVE_BACULA" ]; then
1621         %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1622         echo "The group %{daemon_group} has been added to %{group_file}."
1623         echo "See the manual chapter \"Running Bacula\" for details."
1624 fi
1625
1626 %post gconsole
1627 # generate passwords if needed
1628 if [ -d /etc/bacula ]; then
1629         cd /etc/bacula
1630         for file in *.conf; do
1631                 for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do
1632                         need_password=`grep $string $file 2>/dev/null`
1633                         if [ -n "$need_password" ]; then
1634                                 pass=`openssl rand -base64 33`
1635                                 sed "s-$string-$pass-g" $file > $file.new
1636                                 cp -f $file.new $file; rm -f $file.new
1637                         fi
1638                 done
1639         done
1640 fi
1641 %endif
1642
1643 %if %{wxconsole}
1644 %files wxconsole
1645 %defattr(-,root,root)
1646 /usr/sbin/wxconsole
1647 %attr(-, root, %{daemon_group}) %dir /etc/bacula
1648 %attr(-, root, %{daemon_group}) %config(noreplace) /etc/bacula/wxconsole.conf
1649 /usr/share/pixmaps/wxwin16x16.xpm
1650 /usr/share/applications/wxconsole.desktop
1651 %{_mandir}/man1/bacula-wxconsole.1.%{manpage_ext}
1652 %endif
1653
1654 %if %{wxconsole} && ! %{su9} && ! %{su10}
1655 # add the console helper files
1656 %config(noreplace,missingok) /etc/pam.d/wxconsole
1657 %config(noreplace,missingok) /etc/security/console.apps/wxconsole
1658 /usr/bin/wxconsole
1659 %endif
1660
1661 %if %{wxconsole}
1662 %pre wxconsole
1663 # create the daemon group
1664 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1665 if [ -z "$HAVE_BACULA" ]; then
1666         %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1667         echo "The group %{daemon_group} has been added to %{group_file}."
1668         echo "See the manual chapter \"Running Bacula\" for details."
1669 fi
1670
1671 %post wxconsole
1672 # generate passwords if needed
1673 if [ -d /etc/bacula ]; then
1674         cd /etc/bacula
1675         for file in *.conf; do
1676                 for string in XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX; do
1677                         need_password=`grep $string $file 2>/dev/null`
1678                         if [ -n "$need_password" ]; then
1679                                 pass=`openssl rand -base64 33`
1680                                 sed "s-$string-$pass-g" $file > $file.new
1681                                 cp -f $file.new $file; rm -f $file.new
1682                         fi
1683                 done
1684         done
1685 fi
1686 %endif
1687
1688 %changelog
1689 * Sun Oct 15 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1690 - 1.39.26 remove create_sqlite_database.in.patch
1691 * Sun Sep 24 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1692 - change ownership of working_dir on server packages to bacula.bacula so that
1693 - bacula-sd can create bootstrap files
1694 * Sat Sep 02 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1695 - 1.39.22 remove separate cd and make of manpages the main Makefile does it now
1696 * Sun Aug 06 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1697 - fix manpages file extension for mdk
1698 * Sat Aug 05 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1699 - bug 648 re-enable and update sqlite patches
1700 - 1.39.18 changes
1701 - updatedb 9 to 10
1702 - install man pages
1703 - lock out gconsole build for gtk+ < 2.4
1704 * Mon Jul 17 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1705 - move pango-devel BuildRequires into gconsole only build
1706 * Sat Jul 15 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1707 - add provides and conflicts for standard suse packages
1708 - add third party packager tag support
1709 - add build_client_only tag
1710 - remove bsmtp from client package
1711 - add bacula-ctl-fd to client package
1712 * Thu Jul 13 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1713 - fix directory creation when wxconsole and not gconsole
1714 * Tue Jul 04 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1715 - add check to buildrequires to make sure libstdc++ version matches gcc
1716 * Mon Jul 03 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1717 - add python build support
1718 - fix LDFLAGS declarations
1719 * Sun Jul 02 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1720 - add requires for standard compiler toolchain
1721 - move version and release tags up
1722 - move patches up
1723 - add docs_version tag
1724 * Sat Jul 01 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1725 - update rescuever to 1.8.6
1726 * Sun Jun 25 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1727 - update depkgs to 25Jun06
1728 - add mysql5 build tag
1729 * Mon Jun 12 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1730 - 1.38.10 bump rescue version
1731 * Sun Jun 03 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1732 - fix usermod statements
1733 - add fc5 target
1734 * Thu Apr 27 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1735 - add -g param back to useradd statements Bug 605
1736 * Mon Apr 17 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1737 - redundant code cleanup
1738 * Sun Apr 16 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1739 - add wxconsole package
1740 * Fri Apr 14 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1741 - 1.38.8 release
1742 - dependency update for Mandriva
1743 * Sun Apr 08 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1744 - 1.38.7 release
1745 - remove -n option from useradd scripts
1746 * Sun Apr 02 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1747 - 1.38.6 release
1748 - fix problem specifying more than one primary group for user bacula
1749 - add build switch to not build gconsole regardless of platform
1750 * Sun Jan 29 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1751 - add centos3 build tag
1752 - fix link error of static-fd on Mandrake with --disable-nls
1753 * Fri Jan 27 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1754 - add fc4 dependencies
1755 * Mon Jan 23 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1756 - add SuSE 10.0 build
1757 - remove specific permission in attrib macros
1758 * Sat Jan 21 2006 D. Scott Barninger <barninger@fairfieldcomputers.com>
1759 - 1.38.5 release
1760 - fix usermode required on suse, suse doesn't have usermode (xsu instead)
1761 - refix compat for _dist on SLES9 which seems to have been removed
1762 - added note regarding Aleksandar's use of specific permissions in attrib macros
1763 - need to review and add specific fc4 build currently using fc3 Requires
1764 * Wed Dec 14 2005 Aleksandar Milivojevic <alex@milivojevic.org>
1765 - 1.38.2 release
1766 - Reorganize files and pre/post sections to remove repetitions
1767 - Always build separate mtx package
1768 - Fix file ownerships for /etc/bacula and Bacula's working dir
1769 * Wed Nov 23 2005 Aleksandar Milivojevic <alex@milivojevic.org>
1770 - Disable GNOME on RH7
1771 * Fri Nov 18 2005 Aleksandar Milivojevic <alex@milivojevic.org>
1772 - Red Hat and look alikes have mtx RPM, do not build/package our version
1773 * Sun Nov 13 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1774 - minor edit to _dist for SLES9 compatibility
1775 * Sat Nov 05 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1776 - 1.38.0 release
1777 - kern changed location of pdf files and html manual in docs package
1778 * Sun Oct 30 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1779 - 1.38.0 release
1780 - add docs (from prebuilt tarball) and rescue packages back in
1781 - remove dvd-freespace and dvd-writepart files, add dvd-handler
1782 - remove 3 of 4 sqlite script patches as not needed
1783 * Sun Jul 24 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1784 - changes for 1.38
1785 - remove docs and rescue sections (remove static fd)
1786 - add dvd-freespace and dvd-writepart files
1787 - update depkgs to 22Jun05
1788 - change database update to 8 to 9
1789 * Sun Jul 24 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1790 - minor cleanups before 1.38 changes
1791 - add popt and popt-devel build dependencies
1792 - add tetex and tetex-dvips dependencies for doc build
1793 - replace deprecated Copyright tag with License
1794 * Sat May 07 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1795 - move sqlite installation bindir to /usr/lib/bacula/sqlite and remove
1796 - conflict with sqlite packages. remove readline dependency.
1797 * Sun Apr 17 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1798 - release 1.36.3 update docs
1799 * Tue Apr 05 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1800 - add centos4 build tag
1801 - add x86_64 build tag
1802 * Sun Apr 03 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1803 - add rhel4 build tag
1804 - clean up for mysql4 which is now mdk-10.1, suse-9.2 and rhel4
1805 * Sun Mar 06 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1806 - add rhel3 build tag
1807 * Tue Mar 01 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1808 - fix tray-monitor.conf for noreplace
1809 * Mon Feb 28 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1810 - fix distribution check for Fedora and Whitebox
1811 * Sun Feb 06 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1812 - add logwatch script
1813 - add dvd scripts
1814 * Sat Jan 15 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1815 - add build for Fedora Core 3 (linc now included in ORDit2)
1816 - add mysql4 define for Mandrake 10.1
1817 * Fri Jan 14 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1818 - fix {group_file} variable in post scripts
1819 * Thu Dec 30 2004 D. Scott Barninger <barninger@fairfieldcomputers.com>
1820 - add distribution checking and custom Distribution tag
1821 * Thu Dec 09 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1822 - ASSIGNMENT OF COPYRIGHT
1823 - FOR VALUE RECEIVED, D. Scott Barninger hereby sells, transfers and 
1824 - assigns unto Kern Sibbald, his successors, assigns and personal representatives, 
1825 - all right, title and interest in and to the copyright in this software RPM
1826 - spec file. D. Scott Barninger warrants good title to said copyright, that it is 
1827 - free of all liens, encumbrances or any known claims against said copyright.
1828 * Sat Dec 04 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1829 - bug 183 fixes
1830 - thanks to Daniel Widyono
1831 - update description for rescue package to describe cdrom creation
1832 * Thu Nov 18 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1833 - update depkgs to 29Oct04
1834 * Fri Nov 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1835 - add cdrom rescue to bacula-rescue package
1836 * Sun Oct 31 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1837 - misc fixes from 1.36.0 suse feedback
1838 - fix situation where sqlite database exists but sqlite has been removed.
1839 * Fri Oct 22 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1840 - remove tray-monitor from RH8 build
1841 - fix permissions on tray-monitor files
1842 * Wed Oct 13 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1843 - add Mandrake support and tray-monitor, misc changes for 1.35.8/1.36.0,
1844 - change database update to 7 to 8 upgrade,
1845 - revert depkgs to 08Mar04 as there seems to be a bug in the sqlite
1846 - build in 30Jul04, add freetype dependancy to gnome package.
1847 * Sun Sep 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1848 - add documentation to console for groupadd
1849 * Sat Sep 04 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1850 - add support for running daemons as root.bacula
1851 - correct for change in location of floppy rescue files in 1.35.2
1852 - removed /etc/bacula/fd script from all packages as it has disappeared from 1.35.2
1853 - updated depgkgs to 30Jul04
1854 * Thu Jun 24 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1855 - really, really fix symlink creation for gconsole
1856 * Thu Jun 17 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1857 - fix symlink creation in gconsole post install
1858 * Sat Jun 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1859 - fixed error in gconsole post script
1860 * Fri Apr 30 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1861 - add check for gconsole symlink before trying to create it
1862 * Sun Apr 11 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1863 - fix some minor permissions issues on doc files that CVS won't let us fix
1864 * Sun Apr 04 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1865 - add pkgconfig to BuildRequires
1866 - clean up gnome1/2 menu entries for appropriate packages
1867 * Fri Apr 02 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1868 - tightened up doc distribution
1869 * Tue Mar 30 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1870 - added usermode (Redhat) and xsu (SuSE) support for gnome-console;
1871 - rpm's horrible bug that prevents nested conditional macros prevents me
1872 - from implementing these 2 separate approaches within the conditionals which
1873 - create the separate server packages.
1874 - the solution adopted is to remove the gnome-console files from the server packages
1875 - so bacula-gconsole is now an add on for both client and server packages.
1876 - this also now allows the server packages to be install on machines without
1877 - an X-server and we can still maintain a single spec file.
1878 - added tests to make sure we have defined platform and database macros.
1879 * Sat Mar 13 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1880 - corrected mysql prerequisites for suse
1881 * Mon Mar 1 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1882 - replaced all cp commands with cp -p
1883 - removed addition of a+x permissions on gnome-console
1884 - corrected permissions on init scripts
1885 * Sat Feb 28 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1886 - corrected creation of sqlite_bindir in install from !mysql to sqlite
1887 -
1888 - various cleanup patches from Michael K. Johnson:
1889 - corrected post install routines for nicer chkconfig
1890 - removed chmod changes in post routines and moved to install section
1891 - removed interactive nature of post routine for rescue package
1892 - added description of building rescue disks to the description of rescue package
1893 - added clean of build root to beginning of install
1894 - removed specifying attr in all file lists
1895 * Fri Feb 20 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1896 - added bconsole to client package
1897 - added gconsole package as add-on to client
1898 - removed spurious dependancies on updatedb package (!cut/paste)
1899 * Thu Feb 19 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1900 - added updatedb package
1901 * Thu Feb 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1902 - added postgresql package
1903 * Wed Feb 11 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1904 - corrected the if else logic in the dependancy sections
1905 - changes for 1.34 release
1906 - /etc/bacula/console is now /etc/bacula/bconsole
1907 - /etc/bacula/console.conf is now /etc/bacula/bconsole.conf
1908 - /usr/sbin/btraceback.gdb is now /etc/bacula/btraceback.gdb
1909 - /usr/sbin/smtp is now /usr/sbin/bsmtp
1910 - added new /etc/bacula/drop_mysql_database
1911 - added new /etc/bacula/drop_sqlite_database
1912 - added new /etc/bacula/grant_sqlite_privileges
1913 - added new generic bacula database scripts in /etc/bacula
1914 - added pre-install sections to check for database versions older than 6
1915 - added check for /etc/bacula/console.conf and copy to bconsole.conf
1916 * Sun Feb 08 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1917 - added /etc/bacula/update_sqlite_tables and /etc/bacula/update_mysql_tables for 1.34 release
1918 - added testing for existing databases before executing any of the database creation scripts
1919 - added defines working_dir and sqlite_bindir in place of hard coded paths
1920 * Sat Jan 31 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1921 - added build configuration for SuSE.
1922 - Thanks to Matt Vollmar <matt at panamschool.edu.sv> for his input
1923 * Sat Jan 24 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1924 - added patch for create_sqlite_database to fix the installed bindir
1925 - added execute of create_sqlite_database to post of sqlite package
1926 * Sat Jan 10 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1927 - added virtual package Provides bacula-dir, bacula-sd, bacula-fd
1928 - added bacula-fd as Requires for rescue package
1929 - added build tag for Fedora Core 1
1930 - cleaned up dependancies for all builds
1931 * Thu Jan 1 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1932 - removed rh_version from package names
1933 - added platform build configuration section to beginning of file
1934 * Tue Nov 25 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1935 - removed make_static_bacula script from rescue package install
1936 * Sun Nov 23 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1937 - Added define at top of file for depkgs version
1938 - Added rescue sub-package
1939 - Moved requires statements into proper sub-package locations
1940 * Mon Oct 27 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1941 - Corrected Requires for Gnome 1.4/2.0 builds
1942 * Fri Oct 24 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1943 - Added separate source declaration for depkgs
1944 - added patch for make_catalog_backup script
1945 * Mon May 11 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1946 - Misc changes to mysql/sqlite build and rh7/8 menu differences
1947 - Added rh_version to sub-package names
1948 - Added installed but missing file /etc/bacula/gconsole
1949 - rm'd /etc/bacula/grant_mysql_privileges on sqlite builds
1950 * Thu May 08 2003 Kern Sibbald <kern at sibbald.com>
1951 - Update spec for version 1.31 and combine client
1952 * Sun Mar 30 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1953 - Initial spec file