]> git.sur5r.net Git - bacula/bacula/blob - bacula/platforms/redhat/bacula.spec.in
This commit was manufactured by cvs2svn to create tag
[bacula/bacula] / bacula / platforms / redhat / bacula.spec.in
1 # Bacula RPM spec file
2 # Copyright (C) 2000-2006 Kern Sibbald
3
4 # Platform Build Configuration
5
6 # basic defines for every build
7 %define depkgs ../depkgs
8 %define depkgs_version 22Jun05
9 %define sqlite_bindir /usr/lib/bacula/sqlite
10 %define working_dir /var/bacula
11 %define director_daemon_user bacula
12 %define storage_daemon_user bacula
13 %define file_daemon_user root
14 %define daemon_group bacula
15 # group that has write access to tape devices, usually disk on Linux
16 %define storage_daemon_group disk
17 %define user_file /etc/passwd
18 %define group_file /etc/group
19 %define useradd /usr/sbin/useradd
20 %define groupadd /usr/sbin/groupadd
21 %define _rescuever 1.8.2
22
23 # platform defines - set one below or define the build_xxx on the command line
24 # RedHat builds
25 %define rh7 0
26 %{?build_rh7:%define rh7 1}
27 %define rh8 0
28 %{?build_rh8:%define rh8 1}
29 %define rh9 0
30 %{?build_rh9:%define rh9 1}
31 # Fedora Core build
32 %define fc1 0
33 %{?build_fc1:%define fc1 1}
34 %define fc3 0
35 %{?build_fc3:%define fc3 1}
36 %define fc4 0
37 %{?build_fc4:%define fc3 1}
38 # Whitebox Enterprise build
39 %define wb3 0
40 %{?build_wb3:%define wb3 1}
41 # RedHat Enterprise builds
42 %define rhel3 0
43 %{?build_rhel3:%define rhel3 1}
44 %{?build_rhel3:%define wb3 1}
45 %define rhel4 0
46 %{?build_rhel4:%define rhel4 1}
47 %{?build_rhel4:%define fc3 1}
48 # CentOS build
49 %define centos4 0
50 %{?build_centos4:%define centos4 1}
51 %{?build_centos4:%define fc3 1}
52 # SuSE build
53 %define su9 0
54 %{?build_su9:%define su9 1}
55 # Mandrake build
56 %define mdk 0
57 %{?build_mdk:%define mdk 1}
58
59 # test for a platform definition
60 %if ! %{rh7} && ! %{rh8} && ! %{rh9} && ! %{fc1} && ! %{fc3} && ! %{wb3} && ! %{su9} && ! %{mdk}
61 %{error: You must specify a platform. Please examine the spec file.}
62 exit 1
63 %endif
64
65 # database defines
66 # set for database support desired or define the build_xxx on the command line
67 %define mysql 0
68 %{?build_mysql:%define mysql 1}
69 # if using mysql 4.x define this and mysql above
70 # currently: Mandrake 10.1, SuSE 9.2, RHEL4 and Fedora Core 4
71 %define mysql4 0
72 %{?build_mysql4:%define mysql4 1}
73 %{?build_mysql4:%define mysql 1}
74 %define sqlite 0
75 %{?build_sqlite:%define sqlite 1}
76 %define postgresql 0
77 %{?build_postgresql:%define postgresql 1}
78
79 # test for a database definition
80 %if ! %{mysql} && ! %{sqlite} && ! %{postgresql}
81 %{error: You must specify database support. Please examine the spec file.}
82 exit 1
83 %endif
84
85 %if %{mysql}
86 %define db_backend mysql
87 %endif
88 %if %{sqlite}
89 %define db_backend sqlite
90 %endif
91 %if %{postgresql}
92 %define db_backend postgresql
93 %endif
94
95 # 64 bit support
96 %define x86_64 0
97 %{?build_x86_64:%define x86_64 1}
98
99 # check what distribution we are
100 %if %{rh7} || %{rh8} || %{rh9} || %{rhel3} || %{rhel4}
101 %define _dist %(grep Red /etc/redhat-release)
102 %endif
103 %if %{fc1}
104 %define _dist %(grep Fedora /etc/redhat-release)
105 %endif
106 %if %{centos4}
107 %define _dist %(grep CentOS /etc/redhat-release)
108 %endif
109 %if %{fc3} && ! %{rhel4} && ! %{centos4}
110 %define _dist %(grep Fedora /etc/redhat-release)
111 %endif
112 %if %{wb3} && ! %{rhel3}
113 %define _dist %(grep White /etc/whitebox-release)
114 %endif
115 %if %{su9}
116 %define _dist %(grep SuSE /etc/SuSE-release)
117 %endif
118 %if %{mdk}
119 %define _dist %(grep Mandrake /etc/mandrake-release)
120 %endif
121
122 # Should we build gconsole, possible only if gnome >= 2.0 available
123 %if %{rh7}
124 %define gconsole 0
125 %else
126 %define gconsole 1
127 %endif
128
129 Summary: Bacula - The Network Backup Solution
130 Name: bacula
131 Version: @VERSION@
132 Release: 2
133 Group: System Environment/Daemons
134 License: GPL v2
135 Source0:http://www.prdownloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
136 Source1:http://www.prdownloads.sourceforge.net/bacula/depkgs-%{depkgs_version}.tar.gz
137 Source2: Release_Notes-%{version}-%{release}.tar.gz
138 Source3:http://www.prdownloads.sourceforge.net/bacula/%{name}-docs-%{version}.tar.gz
139 Source4:http://www.prdownloads.sourceforge.net/bacula/%{name}-rescue-%{_rescuever}.tar.gz
140 BuildRoot: %{_tmppath}/%{name}-root
141 URL: http://www.bacula.org/
142 Vendor: The Bacula Team
143 Distribution: %{_dist}
144 Packager: D. Scott Barninger <barninger@fairfieldcomputers.com>
145
146 %define _docsrc ../%{name}-docs-%{version}
147 %define _rescuesrc ../%{name}-rescue-%{_rescuever}
148
149 BuildRequires: atk-devel, ncurses-devel, pango-devel, perl
150 BuildRequires: libstdc++-devel, libxml2-devel, zlib-devel, pkgconfig
151 BuildRequires: openssl-devel
152 %if %{rh7}
153 BuildRequires: libtermcap-devel
154 BuildRequires: glibc-devel >= 2.2
155 BuildRequires: ORBit-devel
156 %endif
157 %if %{su9}
158 BuildRequires: termcap
159 BuildRequires: libgnome >= 2.0
160 BuildRequires: gtk2-devel >= 2.0
161 BuildRequires: libgnomeui-devel >= 2.0
162 BuildRequires: glibc-devel >= 2.3
163 BuildRequires: ORBit2-devel
164 BuildRequires: libart_lgpl-devel >= 2.0
165 BuildRequires: libbonobo-devel >= 2.0
166 BuildRequires: libbonoboui-devel >= 2.0
167 BuildRequires: bonobo-activation-devel
168 BuildRequires: gconf2-devel
169 BuildRequires: linc-devel
170 BuildRequires: freetype2-devel
171 %endif
172 %if %{mdk}
173 BuildRequires: libtermcap-devel
174 BuildRequires: gtk2-devel >= 2.0
175 BuildRequires: libgnomeui2-devel >= 2.0
176 BuildRequires: glibc-devel >= 2.3
177 BuildRequires: libORBit2-devel
178 BuildRequires: libart_lgpl-devel >= 2.0
179 BuildRequires: libbonobo2_0-devel
180 BuildRequires: libbonoboui2_0-devel
181 BuildRequires: libbonobo-activation-devel
182 BuildRequires: libGConf2-devel
183 BuildRequires: libstdc++-static-devel
184 BuildRequires: glibc-static-devel
185 BuildRequires: freetype2-devel
186 %endif
187 %if %{fc3}
188 BuildRequires: libtermcap-devel
189 BuildRequires: gtk2-devel >= 2.4
190 BuildRequires: libgnomeui-devel >= 2.8
191 BuildRequires: glibc-devel >= 2.3
192 BuildRequires: ORBit2-devel
193 BuildRequires: libart_lgpl-devel >= 2.3
194 BuildRequires: libbonobo-devel >= 2.8
195 BuildRequires: libbonoboui-devel >= 2.8
196 BuildRequires: bonobo-activation-devel
197 BuildRequires: GConf2-devel
198 BuildRequires: freetype-devel
199 %endif
200 %if ! %{rh7} && ! %{su9} && ! %{mdk} && ! %{fc3}
201 BuildRequires: libtermcap-devel
202 BuildRequires: gtk2-devel >= 2.0
203 BuildRequires: libgnomeui-devel >= 2.0
204 BuildRequires: glibc-devel >= 2.3
205 BuildRequires: ORBit2-devel
206 BuildRequires: libart_lgpl-devel >= 2.0
207 BuildRequires: libbonobo-devel >= 2.0
208 BuildRequires: libbonoboui-devel >= 2.0
209 BuildRequires: bonobo-activation-devel
210 BuildRequires: GConf2-devel
211 BuildRequires: linc-devel
212 BuildRequires: freetype-devel
213 %endif
214
215 %if %{mysql} && ! %{mysql4}
216 BuildRequires: mysql-devel >= 3.23
217 %endif
218
219 %if %{mysql} && %{mysql4}
220 BuildRequires: mysql-devel >= 4.0
221 %endif
222
223 %if %{postgresql} && %{wb3}
224 BuildRequires: rh-postgresql-devel >= 7
225 %endif
226
227 %if %{postgresql} && ! %{wb3}
228 BuildRequires: postgresql-devel >= 7
229 %endif
230
231 %description
232 Bacula - It comes by night and sucks the vital essence from your computers.
233
234 Bacula is a set of computer programs that permit you (or the system 
235 administrator) to manage backup, recovery, and verification of computer 
236 data across a network of computers of different kinds. In technical terms, 
237 it is a network client/server based backup program. Bacula is relatively 
238 easy to use and efficient, while offering many advanced storage management 
239 features that make it easy to find and recover lost or damaged files. 
240 Bacula source code has been released under the GPL version 2 license.
241
242 %if %{mysql}
243 %package mysql
244 %endif
245 %if %{sqlite}
246 %package sqlite
247 %endif
248 %if %{postgresql}
249 %package postgresql
250 %endif
251
252 Summary: Bacula - The Network Backup Solution
253 Group: System Environment/Daemons
254 Provides: bacula-dir, bacula-sd, bacula-fd, bacula-server
255 Conflicts: bacula-client
256 Obsoletes: bacula-rescue
257 Requires: ncurses, libstdc++, zlib, openssl, mtx
258
259 %if %{rh7}
260 Requires: glibc >= 2.2
261 Requires: libtermcap
262 %endif
263 %if %{su9}
264 Requires: glibc >= 2.3
265 Requires: termcap
266 %endif
267 %if ! %{rh7} && ! %{su9}
268 Requires: glibc >= 2.3
269 Requires: libtermcap
270 %endif
271
272 %if %{mysql} && ! %{su9} && ! %{mdk} && ! %{mysql4}
273 Requires: mysql >= 3.23
274 Requires: mysql-server >= 3.23
275 %endif
276 %if %{mysql} && ! %{su9} && ! %{mdk} && %{mysql4}
277 Requires: mysql >= 4.0
278 Requires: mysql-server >= 4.0
279 %endif
280
281 %if %{mysql} && %{su9} && ! %{mysql4}
282 Requires: mysql >= 3.23
283 Requires: mysql-client >= 3.23
284 %endif
285 %if %{mysql} && %{su9} && %{mysql4}
286 Requires: mysql >= 4.0
287 Requires: mysql-client >= 4.0
288 %endif
289
290 %if %{mysql} && %{mdk} && ! %{mysql4}
291 Requires: mysql >= 3.23
292 Requires: mysql-client >= 3.23
293 %endif
294 %if %{mysql} && %{mdk} && %{mysql4}
295 Requires: mysql >= 4.0
296 Requires: mysql-client >= 4.0
297 %endif
298
299 %if %{postgresql} && %{wb3}
300 Requires: rh-postgresql >= 7
301 Requires: rh-postgresql-server >= 7
302 %endif
303 %if %{postgresql} && ! %{wb3}
304 Requires: postgresql >= 7
305 Requires: postgresql-server >= 7
306 %endif
307
308 %if %{mysql}
309 %description mysql
310 %endif
311 %if %{sqlite}
312 %description sqlite
313 %endif
314 %if %{postgresql}
315 %description postgresql
316 %endif
317
318 Bacula - It comes by night and sucks the vital essence from your computers.
319
320 Bacula is a set of computer programs that permit you (or the system 
321 administrator) to manage backup, recovery, and verification of computer 
322 data across a network of computers of different kinds. In technical terms, 
323 it is a network client/server based backup program. Bacula is relatively 
324 easy to use and efficient, while offering many advanced storage management 
325 features that make it easy to find and recover lost or damaged files. 
326 Bacula source code has been released under the GPL version 2 license.
327
328 %if %{mysql}
329 This build requires MySQL to be installed separately as the catalog database.
330 %endif
331 %if %{postgresql}
332 This build requires PostgreSQL to be installed separately as the catalog database.
333 %endif
334 %if %{sqlite}
335 This build incorporates sqlite as the catalog database, statically compiled.
336 %endif
337
338 %package mtx
339 Summary: Bacula - The Network Backup Solution
340 Group: System Environment/Daemons
341 Provides: mtx
342
343 %description mtx
344 This is Bacula's version of mtx tape utilities for Linux distributions that
345 do not provide their own mtx package
346
347 %package client
348 Summary: Bacula - The Network Backup Solution
349 Group: System Environment/Daemons
350 Provides: bacula-fd
351 Conflicts: bacula-mysql
352 Conflicts: bacula-sqlite
353 Conflicts: bacula-postgresql
354 Obsoletes: bacula-rescue
355 Requires: libstdc++, zlib, openssl
356
357 %if %{rh7}
358 Requires: glibc >= 2.2
359 Requires: libtermcap
360 %endif
361 %if %{su9}
362 Requires: glibc >= 2.3
363 Requires: termcap
364 %endif
365 %if ! %{rh7} && ! %{su9}
366 Requires: glibc >= 2.3
367 Requires: libtermcap
368 %endif
369
370 %description client
371 Bacula - It comes by night and sucks the vital essence from your computers.
372
373 Bacula is a set of computer programs that permit you (or the system 
374 administrator) to manage backup, recovery, and verification of computer 
375 data across a network of computers of different kinds. In technical terms, 
376 it is a network client/server based backup program. Bacula is relatively 
377 easy to use and efficient, while offering many advanced storage management 
378 features that make it easy to find and recover lost or damaged files. 
379 Bacula source code has been released under the GPL version 2 license.
380
381 This is the File daemon (Client) only package. It includes the command line 
382 console program.
383
384 %package updatedb
385
386 Summary: Bacula - The Network Backup Solution
387 Group: System Environment/Daemons
388
389 %description updatedb
390 Bacula - It comes by night and sucks the vital essence from your computers.
391
392 Bacula is a set of computer programs that permit you (or the system 
393 administrator) to manage backup, recovery, and verification of computer 
394 data across a network of computers of different kinds. In technical terms, 
395 it is a network client/server based backup program. Bacula is relatively 
396 easy to use and efficient, while offering many advanced storage management 
397 features that make it easy to find and recover lost or damaged files. 
398 Bacula source code has been released under the GPL version 2 license.
399
400 This package installs scripts for updating older versions of the bacula
401 database.
402
403 %if %{gconsole}
404 %package gconsole
405 Summary: Bacula - The Network Backup Solution
406 Group: System Environment/Daemons
407 Requires: atk, libstdc++, zlib, pango, libxml2, bacula-fd
408 Requires: usermode, openssl
409 %endif
410
411 %if %{gconsole} && %{su9}
412 Requires: gtk2 >= 2.0
413 Requires: libgnome >= 2.0
414 Requires: libgnomeui >= 2.0
415 Requires: glibc >= 2.3
416 Requires: ORBit2
417 Requires: libart_lgpl >= 2.0
418 Requires: libbonobo >= 2.0
419 Requires: libbonoboui >= 2.0
420 Requires: bonobo-activation
421 Requires: gconf2
422 Requires: linc
423 Requires: freetype2
424 %endif
425 %if %{gconsole} && %{mdk}
426 Requires: gtk2 >= 2.0
427 Requires: libgnomeui2
428 Requires: glibc >= 2.3
429 Requires: ORBit2
430 Requires: libart_lgpl >= 2.0
431 Requires: libbonobo >= 2.0
432 Requires: libbonoboui >= 2.0
433 Requires: GConf2
434 Requires: freetype2
435 %endif
436 %if %{gconsole} && %{fc3}  
437 Requires: gtk2 >= 2.4
438 Requires: libgnomeui >= 2.8
439 Requires: glibc >= 2.3
440 Requires: ORBit2
441 Requires: libart_lgpl >= 2.3
442 Requires: libbonobo >= 2.8
443 Requires: libbonoboui >= 2.8
444 Requires: bonobo-activation
445 Requires: GConf2
446 Requires: freetype
447 %endif
448 %if %{gconsole} && ! %{su9} && ! %{mdk} && ! %{fc3}
449 Requires: gtk2 >= 2.0
450 Requires: libgnomeui >= 2.0
451 Requires: glibc >= 2.3
452 Requires: ORBit2
453 Requires: libart_lgpl >= 2.0
454 Requires: libbonobo >= 2.0
455 Requires: libbonoboui >= 2.0
456 Requires: bonobo-activation
457 Requires: GConf2
458 Requires: linc
459 Requires: freetype
460 %endif
461 %if %{gconsole} && %{su9}
462 Requires: xsu
463 %endif
464
465 %if %{gconsole}
466 %description gconsole
467 Bacula - It comes by night and sucks the vital essence from your computers.
468
469 Bacula is a set of computer programs that permit you (or the system 
470 administrator) to manage backup, recovery, and verification of computer 
471 data across a network of computers of different kinds. In technical terms, 
472 it is a network client/server based backup program. Bacula is relatively 
473 easy to use and efficient, while offering many advanced storage management 
474 features that make it easy to find and recover lost or damaged files. 
475 Bacula source code has been released under the GPL version 2 license.
476
477 This is the Gnome Console package. It is an add-on to the client or
478 server packages.
479 %endif
480
481 %prep
482
483 %setup
484 %setup -T -D -b 1
485 %setup -T -D -b 2
486 %setup -T -D -b 3
487 %setup -T -D -b 4
488
489 %build
490
491 %if %{su9}
492 export LDFLAGS="-L/usr/lib/termcap"
493 %endif
494
495 cwd=${PWD}
496 cd %{depkgs}
497 %if %{sqlite}
498 make sqlite
499 %endif
500 make mtx
501 cd ${cwd}
502
503 # patches for the bundled sqlite scripts
504 # as of 1.38.0 first 3 patches no longer needed
505
506 # patch the make_sqlite_tables script for installation bindir
507 # patch src/cats/make_sqlite_tables.in src/cats/make_sqlite_tables.in.patch
508
509 # patch the create_sqlite_database script for installation bindir
510 #patch src/cats/create_sqlite_database.in src/cats/create_sqlite_database.in.patch
511
512 # patch the make_catalog_backup script for installation bindir
513 #patch src/cats/make_catalog_backup.in src/cats/make_catalog_backup.in.patch
514
515 # patch the update_sqlite_tables script for installation bindir
516 patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch
517
518 # patch the bacula-dir init script to remove sqlite service
519 %if %{sqlite} && %{su9}
520 patch platforms/suse/bacula-dir.in platforms/suse/bacula-dir-suse-sqlite.patch
521 %endif
522
523 # 64 bit lib location hacks
524 # this is the location on redhat type platforms, don't know about others yet
525 %if %{x86_64}
526 export LDFLAGS=-L/usr/lib64
527 %endif
528 %if %{mysql} && %{x86_64}
529 export LDFLAGS=-L/usr/lib64/mysql
530 %endif
531
532 %configure \
533         --prefix=/usr \
534         --sbindir=/usr/sbin \
535         --sysconfdir=/etc/bacula \
536         --with-scriptdir=/etc/bacula \
537         --enable-smartalloc \
538         --enable-client-only \
539         --enable-static-fd
540
541 make
542
543 %configure \
544         --prefix=/usr \
545         --sbindir=/usr/sbin \
546         --sysconfdir=/etc/bacula \
547         --with-scriptdir=/etc/bacula \
548         --enable-smartalloc \
549 %if %{gconsole}
550         --enable-gnome \
551 %endif
552 %if %{gconsole} && ! %{rh8}
553         --enable-tray-monitor \
554 %endif
555 %if %{mysql}
556         --with-mysql \
557 %endif
558 %if %{sqlite}
559         --with-sqlite=${cwd}/%{depkgs}/sqlite \
560 %endif
561 %if %{postgresql}
562         --with-postgresql \
563 %endif
564         --with-working-dir=%{working_dir} \
565         --with-pid-dir=/var/run \
566         --with-subsys-dir=/var/lock/subsys \
567         --with-dir-user=%{director_daemon_user} \
568         --with-dir-group=%{daemon_group} \
569         --with-sd-user=%{storage_daemon_user} \
570         --with-sd-group=%{storage_daemon_group} \
571         --with-fd-user=%{file_daemon_user} \
572         --with-fd-group=%{daemon_group} \
573         --with-dir-password="XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX" \
574         --with-fd-password="XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX" \
575         --with-sd-password="XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX" \
576         --with-mon-dir-password="XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX" \
577         --with-mon-fd-password="XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX" \
578         --with-mon-sd-password="XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX" \
579         --with-openssl
580
581 make
582
583 %install
584  
585 cwd=${PWD}
586 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
587 mkdir -p $RPM_BUILD_ROOT/etc/init.d
588 mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
589 mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/logfiles
590 mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/services
591 mkdir -p $RPM_BUILD_ROOT/etc/log.d/scripts/services
592 mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps
593 %if %{gconsole}
594 mkdir -p $RPM_BUILD_ROOT/usr/share/applications
595 %endif
596 mkdir -p $RPM_BUILD_ROOT/etc/bacula/updatedb
597 %if %{gconsole} && ! %{su9}
598 mkdir -p $RPM_BUILD_ROOT/etc/pam.d
599 mkdir -p $RPM_BUILD_ROOT/etc/security/console.apps
600 mkdir -p $RPM_BUILD_ROOT/usr/bin
601 %endif
602
603 %if %{sqlite}
604 mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir}
605 %endif
606
607 make \
608         prefix=$RPM_BUILD_ROOT/usr \
609         sbindir=$RPM_BUILD_ROOT/usr/sbin \
610         sysconfdir=$RPM_BUILD_ROOT/etc/bacula \
611         scriptdir=$RPM_BUILD_ROOT/etc/bacula \
612         working_dir=$RPM_BUILD_ROOT%{working_dir} \
613         install
614
615 cd %{depkgs}
616 make \
617         prefix=$RPM_BUILD_ROOT/usr \
618         sbindir=$RPM_BUILD_ROOT/usr/sbin \
619         sysconfdir=$RPM_BUILD_ROOT/etc/bacula \
620         working_dir=$RPM_BUILD_ROOT%{working_dir} \
621         mandir=$RPM_BUILD_ROOT/usr/man \
622         mtx-install
623 cd ${cwd}
624
625 # fixme - make installs the mysql scripts for sqlite build
626 %if %{sqlite}
627 rm -f $RPM_BUILD_ROOT/etc/bacula/startmysql
628 rm -f $RPM_BUILD_ROOT/etc/bacula/stopmysql
629 rm -f $RPM_BUILD_ROOT/etc/bacula/grant_mysql_privileges
630 %endif
631
632 # fixme - make installs the mysql scripts for postgresql build
633 %if %{postgresql}
634 rm -f $RPM_BUILD_ROOT/etc/bacula/startmysql
635 rm -f $RPM_BUILD_ROOT/etc/bacula/stopmysql
636 %endif
637
638 rm -f $RPM_BUILD_ROOT/usr/sbin/static-bacula-fd
639
640 # install the init scripts
641 %if %{su9}
642 cp -p platforms/suse/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
643 cp -p platforms/suse/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
644 cp -p platforms/suse/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
645 %endif
646 %if %{mdk}
647 cp -p platforms/mandrake/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
648 cp -p platforms/mandrake/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
649 cp -p platforms/mandrake/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
650 %endif
651 %if ! %{su9} && ! %{mdk}
652 cp -p platforms/redhat/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
653 cp -p platforms/redhat/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
654 cp -p platforms/redhat/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
655 %endif
656 chmod 0754 $RPM_BUILD_ROOT/etc/init.d/*
657
658 # install the menu stuff
659 %if %{gconsole} && %{su9}
660 cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png
661 cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop
662 cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm
663 cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop
664 %endif
665 %if %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{fc3} || %{mdk}
666 %define iftrick 1
667 %else
668 %define iftrick 0
669 %endif
670 %if %{gconsole} && %{iftrick}
671 cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png
672 cp -p scripts/bacula.desktop.gnome2.consolehelper $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop
673 cp -p scripts/gnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/gnome-console
674 cp -p scripts/gnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/gnome-console
675 ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/gnome-console
676 %endif
677 %if %{gconsole} && ! %{rh8}
678 cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm
679 cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop
680 %endif
681
682 # install sqlite
683 %if %{sqlite}
684 cp -p %{depkgs}/sqlite/sqlite $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite
685 cp -p %{depkgs}/sqlite/sqlite.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite.h
686 cp -p %{depkgs}/sqlite/libsqlite.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite.a
687 %endif
688
689 # install the logrotate file
690 cp -p scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula
691
692 # install the updatedb scripts
693 cp -p updatedb/* $RPM_BUILD_ROOT/etc/bacula/updatedb/
694
695 # install the logwatch scripts
696 cp -p scripts/logwatch/bacula $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula
697 cp -p scripts/logwatch/logfile.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf
698 cp -p scripts/logwatch/services.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf
699 chmod 755 $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula
700 chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf
701 chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf
702
703 # install the rescue files
704 mkdir $RPM_BUILD_ROOT/etc/bacula/rescue
705 cp -p %{_rescuesrc}/Makefile* $RPM_BUILD_ROOT/etc/bacula/rescue/
706 cp -p %{_rescuesrc}/README $RPM_BUILD_ROOT/etc/bacula/rescue/
707 cp -p %{_rescuesrc}/configure $RPM_BUILD_ROOT/etc/bacula/rescue/
708 cp -p %{_rescuesrc}/version.h $RPM_BUILD_ROOT/etc/bacula/rescue/
709 cp -pr %{_rescuesrc}/linux $RPM_BUILD_ROOT/etc/bacula/rescue/
710 cp -pr %{_rescuesrc}/autoconf $RPM_BUILD_ROOT/etc/bacula/rescue/
711 touch $RPM_BUILD_ROOT/etc/bacula/rescue/linux/cdrom/rpm_release
712 cp -p src/filed/static-bacula-fd $RPM_BUILD_ROOT/etc/bacula/rescue/linux/cdrom/bacula/bin/bacula-fd
713 rm -f src/filed/static-bacula-fd
714
715 # now clean up permissions that are left broken by the install
716 chmod o-r $RPM_BUILD_ROOT/etc/bacula/query.sql
717 chmod o-rwx $RPM_BUILD_ROOT/var/bacula
718 %if %{gconsole} && ! %{rh8}
719 chmod 755 $RPM_BUILD_ROOT/usr/sbin/bacula-tray-monitor
720 chmod 644 $RPM_BUILD_ROOT/etc/bacula/tray-monitor.conf
721 %endif
722
723 %clean
724 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
725
726
727 %if %{mysql}
728 # MySQL specific files
729 %files mysql
730 %defattr(-, root, root)
731 %attr(0750, root, %{daemon_group}) /etc/bacula/create_mysql_database
732 %attr(0750, root, %{daemon_group}) /etc/bacula/drop_mysql_database
733 %attr(0750, root, %{daemon_group}) /etc/bacula/make_mysql_tables
734 %attr(0750, root, %{daemon_group}) /etc/bacula/drop_mysql_tables
735 %attr(0750, root, %{daemon_group}) /etc/bacula/update_mysql_tables
736 %attr(0750, root, %{daemon_group}) /etc/bacula/grant_mysql_privileges
737 %attr(0750, root, %{daemon_group}) /etc/bacula/startmysql
738 %attr(0750, root, %{daemon_group}) /etc/bacula/stopmysql
739 %endif
740
741 %if %{sqlite}
742 %files sqlite
743 %defattr(-,root,root)
744 %attr(0750, root, %{daemon_group}) /etc/bacula/create_sqlite_database
745 %attr(0750, root, %{daemon_group}) /etc/bacula/drop_sqlite_database
746 %attr(0750, root, %{daemon_group}) /etc/bacula/grant_sqlite_privileges
747 %attr(0750, root, %{daemon_group}) /etc/bacula/make_sqlite_tables
748 %attr(0750, root, %{daemon_group}) /etc/bacula/drop_sqlite_tables
749 %attr(0750, root, %{daemon_group}) /etc/bacula/update_sqlite_tables
750 %{sqlite_bindir}/libsqlite.a
751 %{sqlite_bindir}/sqlite.h
752 %{sqlite_bindir}/sqlite
753 %endif
754
755 %if %{postgresql}
756 %files postgresql
757 %defattr(-,root,root)
758 %attr(0750, root, %{daemon_group}) /etc/bacula/create_postgresql_database
759 %attr(0750, root, %{daemon_group}) /etc/bacula/drop_postgresql_database
760 %attr(0750, root, %{daemon_group}) /etc/bacula/make_postgresql_tables
761 %attr(0750, root, %{daemon_group}) /etc/bacula/drop_postgresql_tables
762 %attr(0750, root, %{daemon_group}) /etc/bacula/update_postgresql_tables
763 %attr(0750, root, %{daemon_group}) /etc/bacula/grant_postgresql_privileges
764 %endif
765
766 # The rest is DB backend independent
767 %attr(0750, root, %{daemon_group}) %dir /etc/bacula
768 %attr(0750, root, %{daemon_group}) /etc/bacula/bacula
769 %attr(0750, root, %{daemon_group}) /etc/bacula/bconsole
770 %attr(0750, root, %{daemon_group}) /etc/bacula/create_bacula_database
771 %attr(0750, root, %{daemon_group}) /etc/bacula/drop_bacula_database
772 %attr(0750, root, %{daemon_group}) /etc/bacula/grant_bacula_privileges
773 %attr(0750, root, %{daemon_group}) /etc/bacula/make_bacula_tables
774 %attr(0750, root, %{daemon_group}) /etc/bacula/drop_bacula_tables
775 %attr(0750, root, %{daemon_group}) /etc/bacula/update_bacula_tables
776 %attr(0750, root, %{daemon_group}) /etc/bacula/make_catalog_backup
777 %attr(0750, root, %{daemon_group}) /etc/bacula/delete_catalog_backup
778 %attr(0644, root, %{daemon_group}) /etc/bacula/btraceback.dbx
779 %attr(0644, root, %{daemon_group}) /etc/bacula/btraceback.gdb
780 %attr(0750, root, %{daemon_group}) /etc/bacula/rescue
781 %attr(0750, root, %{daemon_group}) /etc/init.d/bacula-dir
782 %attr(0750, root, %{daemon_group}) /etc/init.d/bacula-fd
783 %attr(0750, root, %{storage_daemon_group}) /etc/bacula/dvd-handler
784 %attr(0750, root, %{storage_daemon_group}) /etc/init.d/bacula-sd
785 %attr(0750, root, %{storage_daemon_group}) /etc/bacula/mtx-changer
786
787 %doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo 
788 %doc %{_docsrc}/manual/bacula.pdf %{_docsrc}/developers/developers.pdf %{_docsrc}/manual/bacula ../Release_Notes-%{version}-%{release}.txt
789
790 /etc/logrotate.d/bacula
791 /etc/log.d/scripts/services/bacula
792 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/bacula-dir.conf
793 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/bacula-fd.conf
794 %attr(0640, root, %{storage_daemon_group}) %config(noreplace) /etc/bacula/bacula-sd.conf
795 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/bconsole.conf
796 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/log.d/conf/logfiles/bacula.conf
797 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/log.d/conf/services/bacula.conf
798 %attr(0640, root, %{daemon_group}) /etc/bacula/query.sql
799 %attr(0770, root, %{daemon_group}) %dir %{working_dir}
800
801 /usr/sbin/bacula-dir
802 /usr/sbin/bacula-fd
803 /usr/sbin/bacula-sd
804 /usr/sbin/bcopy
805 /usr/sbin/bextract
806 /usr/sbin/bls
807 /usr/sbin/bscan
808 /usr/sbin/btape
809 /usr/sbin/btraceback
810 /usr/sbin/bconsole
811 /usr/sbin/dbcheck
812 /usr/sbin/bsmtp
813
814 %if %{mysql}
815 %pre mysql
816 # test for bacula database older than version 8
817 # note: this ASSUMES no password has been set for bacula database
818 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
819 %endif
820
821 %if %{sqlite}
822 %pre sqlite
823 # test for bacula database older than version 8
824 if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite ];then
825         DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
826 %endif
827
828 %if %{postgresql}
829 %pre postgresql
830 DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1`
831 %endif
832
833 if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "8" ]; then
834         echo "This bacula upgrade will update a bacula database from version 8 to 9."
835         echo "You appear to be running database version $DB_VER. You must first update"
836         echo "your database to version 8 and then install this upgrade. The alternative"
837         echo "is to use /etc/bacula/drop_%{db_backend}_tables to delete all your your current"
838         echo "catalog information, then do the upgrade. Information on updating a"
839         echo "database older than version 8 can be found in the release notes."
840         exit 1
841 fi
842
843 %if %{sqlite}
844 fi
845 %endif
846
847 # check for and copy /etc/bacula/console.conf to bconsole.conf
848 if [ -s /etc/bacula/console.conf ];then
849         cp -p /etc/bacula/console.conf /etc/bacula/bconsole.conf
850 fi
851
852 # create the daemon user and group
853 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
854 if [ -z "$HAVE_BACULA" ]; then
855         %{groupadd} -r %{daemon_group} > /dev/null 2>&1
856         echo "The group %{daemon_group} has been added to %{group_file}."
857         echo "See the manual chapter \"Running Bacula\" for details."
858 fi
859 HAVE_BACULA=`grep %{storage_daemon_group} %{group_file} 2>/dev/null`
860 if [ -z "$HAVE_BACULA" ]; then
861         %{groupadd} -r %{storage_daemon_group} > /dev/null 2>&1
862         echo "The group %{storage_daemon_group} has been added to %{group_file}."
863         echo "See the manual chapter \"Running Bacula\" for details."
864 fi
865 HAVE_BACULA=`grep %{storage_daemon_user} %{user_file} 2>/dev/null`
866 if [ -z "$HAVE_BACULA" ]; then
867         %{useradd} -r -c "Bacula" -d %{working_dir} -g %{storage_daemon_group} -M -n -s /sbin/nologin %{storage_daemon_user} > /dev/null 2>&1
868         echo "The user %{storage_daemon_user} has been added to %{user_file}."
869         echo "See the manual chapter \"Running Bacula\" for details."
870 fi
871 HAVE_BACULA=`grep %{director_daemon_user} %{user_file} 2>/dev/null`
872 if [ -z "$HAVE_BACULA" ]; then
873         %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -n -s /sbin/nologin %{director_daemon_user} > /dev/null 2>&1
874         echo "The user %{director_daemon_user} has been added to %{user_file}."
875         echo "See the manual chapter \"Running Bacula\" for details."
876 fi
877 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
878 if [ -z "$HAVE_BACULA" ]; then
879         %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -n -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
880         echo "The user %{file_daemon_user} has been added to %{user_file}."
881         echo "See the manual chapter \"Running Bacula\" for details."
882 fi
883
884 %if %{mysql}
885 %post mysql
886 %endif
887 %if %{sqlite}
888 %post sqlite
889 %endif
890 %if %{postgresql}
891 %post postgresql
892 %endif
893
894 # add our links
895 if [ "$1" -ge 1 ] ; then
896 /sbin/chkconfig --add bacula-dir
897 /sbin/chkconfig --add bacula-fd
898 /sbin/chkconfig --add bacula-sd
899 fi
900
901 %if %{mysql}
902 # test for an existing database
903 # note: this ASSUMES no password has been set for bacula database
904 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
905
906 # grant privileges and create tables if they do not exist
907 if [ -z "$DB_VER" ]; then
908         echo "Hmm, doesn't look like you have an existing database."
909         echo "Granting privileges for MySQL user bacula..."
910         /etc/bacula/grant_mysql_privileges
911         echo "Creating MySQL bacula database..."
912         /etc/bacula/create_mysql_database
913         echo "Creating bacula tables..."
914         /etc/bacula/make_mysql_tables
915
916 # check to see if we need to upgrade a 1.36 or lower database
917 elif [ "$DB_VER" -lt "9" ]; then
918         echo "This release requires an upgrade to your bacula database."
919         echo "Backing up your current database..."
920         mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
921         echo "Upgrading bacula database ..."
922         /etc/bacula/update_mysql_tables
923         echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
924
925 fi
926 %endif
927
928 %if %{sqlite}
929 # test for an existing database
930 if [ -s %{working_dir}/bacula.db ]; then
931         DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
932         # check to see if we need to upgrade a 1.36 or lower database
933         if [ "$DB_VER" -lt "9" ] && [ "$DB_VER" -ge "8" ]; then
934                 echo "This release requires an upgrade to your bacula database."
935                 echo "Backing up your current database..."
936                 echo ".dump" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | bzip2 > %{working_dir}/bacula_backup.sql.bz2
937                 echo "Upgrading bacula database ..."
938                 /etc/bacula/update_sqlite_tables
939                 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
940         fi
941 else
942         # create the database and tables
943         echo "Hmm, doesn't look like you have an existing database."
944         echo "Creating SQLite database..."
945         /etc/bacula/create_sqlite_database
946         echo "Creating the SQLite tables..."
947         /etc/bacula/make_sqlite_tables
948 fi
949 %endif
950
951 %if %{postgresql}
952 # test for an existing database
953 # note: this ASSUMES no password has been set for bacula database
954 DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1`
955
956 # grant privileges and create tables if they do not exist
957 if [ -z "$DB_VER" ]; then
958         echo "Hmm, doesn't look like you have an existing database."
959         echo "Creating PostgreSQL bacula database..."
960         /etc/bacula/create_postgresql_database
961         echo "Creating bacula tables..."
962         /etc/bacula/make_postgresql_tables
963         echo "Granting privileges for PostgreSQL user bacula..."
964         /etc/bacula/grant_postgresql_privileges
965
966 # check to see if we need to upgrade a 1.36 or lower database
967 elif [ "$DB_VER" -lt "9" ]; then
968         echo "This release requires an upgrade to your bacula database."
969         echo "Backing up your current database..."
970         pg_dump bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
971         echo "Upgrading bacula database ..."
972         /etc/bacula/update_postgresql_tables
973         echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
974         
975 fi
976 %endif
977
978 # generate passwords if needed
979 if [ -d /etc/bacula ]; then
980         cd /etc/bacula
981         for file in *.conf; do
982                 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
983                         need_password=`grep $string $file 2>/dev/null`
984                         if [ -n "$need_password" ]; then
985                                 pass=`openssl rand -base64 33`
986                                 sed "s-$string-$pass-g" $file > $file.new
987                                 cp -f $file.new $file; rm -f $file.new
988                         fi
989                 done
990         done
991 fi
992
993 %if %{mysql}
994 %preun mysql
995 %endif
996 %if %{sqlite}
997 %preun sqlite
998 %endif
999 %if %{postgresql}
1000 %preun postgresql
1001 %endif
1002
1003 # delete our links
1004 if [ $1 = 0 ]; then
1005 /sbin/chkconfig --del bacula-dir
1006 /sbin/chkconfig --del bacula-fd
1007 /sbin/chkconfig --del bacula-sd
1008 fi
1009
1010
1011 %files mtx
1012 %attr(0750, root, %{storage_daemon_group}) /usr/sbin/loaderinfo
1013 %attr(0750, root, %{storage_daemon_group}) /usr/sbin/mtx
1014 %attr(0750, root, %{storage_daemon_group}) /usr/sbin/scsitape
1015 %attr(0750, root, %{storage_daemon_group}) /usr/sbin/tapeinfo
1016 /usr/man/man1/*
1017
1018
1019 %files client
1020 %defattr(-,root,root)
1021 %attr(0750, root, %{daemon_group}) %dir /etc/bacula
1022 %attr(0750, root, %{daemon_group}) /etc/bacula/bconsole
1023 /etc/init.d/bacula-fd
1024 %attr(0750, root, %{daemon_group}) /etc/bacula/rescue
1025
1026 %doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo 
1027 %doc %{_docsrc}/manual/bacula.pdf %{_docsrc}/developers/developers.pdf %{_docsrc}/manual/bacula ../Release_Notes-%{version}-%{release}.txt
1028
1029 /etc/logrotate.d/bacula
1030
1031 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/bacula-fd.conf
1032 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/bconsole.conf
1033 %attr(0770, root, %{daemon_group}) %dir %{working_dir}
1034
1035 /usr/sbin/bacula-fd
1036 /usr/sbin/btraceback
1037 %attr(0644, root, %{daemon_group}) /etc/bacula/btraceback.gdb
1038 %attr(0644, root, %{daemon_group}) /etc/bacula/btraceback.dbx
1039 /usr/sbin/bsmtp
1040 /usr/sbin/bconsole
1041
1042
1043 %pre client
1044 # create the daemon group and user
1045 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1046 if [ -z "$HAVE_BACULA" ]; then
1047         %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1048         echo "The group %{daemon_group} has been added to %{group_file}."
1049         echo "See the manual chapter \"Running Bacula\" for details."
1050 fi
1051 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
1052 if [ -z "$HAVE_BACULA" ]; then
1053         %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -n -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
1054         echo "The user %{file_daemon_user} has been added to %{user_file}."
1055         echo "See the manual chapter \"Running Bacula\" for details."
1056 fi
1057
1058 %post client
1059 # add our link
1060 if [ "$1" -ge 1 ] ; then
1061 /sbin/chkconfig --add bacula-fd
1062 fi
1063
1064 # generate passwords if needed
1065 if [ -d /etc/bacula ]; then
1066         cd /etc/bacula
1067         for file in *.conf; do
1068                 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
1069                         need_password=`grep $string $file 2>/dev/null`
1070                         if [ -n "$need_password" ]; then
1071                                 pass=`openssl rand -base64 33`
1072                                 sed "s-$string-$pass-g" $file > $file.new
1073                                 cp -f $file.new $file; rm -f $file.new
1074                         fi
1075                 done
1076         done
1077 fi
1078
1079 %preun client
1080 # delete our link
1081 if [ $1 = 0 ]; then
1082 /sbin/chkconfig --del bacula-fd
1083 fi
1084
1085 %files updatedb
1086 %defattr(-,root,%{daemon_group})
1087 /etc/bacula/updatedb/*
1088
1089 %pre updatedb
1090 # create the daemon group
1091 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1092 if [ -z "$HAVE_BACULA" ]; then
1093         %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1094         echo "The group %{daemon_group} has been added to %{group_file}."
1095         echo "See the manual chapter \"Running Bacula\" for details."
1096 fi
1097
1098 %post updatedb
1099 echo "The database update scripts were installed to /etc/bacula/updatedb"
1100
1101 %if %{gconsole}
1102 %files gconsole
1103 %defattr(-,root,root)
1104 /usr/sbin/gnome-console
1105 %attr(0750, root, %{daemon_group}) %dir /etc/bacula
1106 %attr(075, root, %{daemon_group}) /etc/bacula/gconsole
1107 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/gnome-console.conf
1108 /usr/share/pixmaps/bacula.png
1109 %endif
1110
1111 %if %{gconsole}
1112 /usr/share/applications/bacula.desktop
1113 %endif
1114
1115 %if %{gconsole} && ! %{rh8}
1116 /usr/sbin/bacula-tray-monitor
1117 %config(noreplace) /etc/bacula/tray-monitor.conf
1118 /usr/share/pixmaps/bacula-tray-monitor.xpm
1119 /usr/share/applications/bacula-tray-monitor.desktop
1120 %endif
1121
1122 %if %{gconsole} && ! %{su9}
1123 # add the console helper files
1124 %config(noreplace,missingok) /etc/pam.d/gnome-console
1125 %config(noreplace,missingok) /etc/security/console.apps/gnome-console
1126 /usr/bin/gnome-console
1127 %endif
1128
1129 %if %{gconsole}
1130 %pre gconsole
1131 # create the daemon group
1132 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1133 if [ -z "$HAVE_BACULA" ]; then
1134         %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1135         echo "The group %{daemon_group} has been added to %{group_file}."
1136         echo "See the manual chapter \"Running Bacula\" for details."
1137 fi
1138
1139 %post gconsole
1140 # generate passwords if needed
1141 if [ -d /etc/bacula ]; then
1142         cd /etc/bacula
1143         for file in *.conf; do
1144                 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
1145                         need_password=`grep $string $file 2>/dev/null`
1146                         if [ -n "$need_password" ]; then
1147                                 pass=`openssl rand -base64 33`
1148                                 sed "s-$string-$pass-g" $file > $file.new
1149                                 cp -f $file.new $file; rm -f $file.new
1150                         fi
1151                 done
1152         done
1153 fi
1154 %endif
1155
1156 %changelog
1157 * Wed Dec 14 2005 Aleksandar Milivojevic <alex@milivojevic.org>
1158 - 1.38.2 release
1159 - Reorganize files and pre/post sections to remove repetitions
1160 - Always build separate mtx package
1161 - Fix file ownerships for /etc/bacula and Bacula's working dir
1162 * Wed Nov 23 2005 Aleksandar Milivojevic <alex@milivojevic.org>
1163 - Disable GNOME on RH7
1164 * Fri Nov 18 2005 Aleksandar Milivojevic <alex@milivojevic.org>
1165 - Red Hat and look alikes have mtx RPM, do not build/package our version
1166 * Sun Nov 13 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1167 - minor edit to _dist for SLES9 compatibility
1168 * Sat Nov 05 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1169 - 1.38.0 release
1170 - kern changed location of pdf files and html manual in docs package
1171 * Sun Oct 30 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1172 - 1.38.0 release
1173 - add docs (from prebuilt tarball) and rescue packages back in
1174 - remove dvd-freespace and dvd-writepart files, add dvd-handler
1175 - remove 3 of 4 sqlite script patches as not needed
1176 * Sun Jul 24 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1177 - changes for 1.38
1178 - remove docs and rescue sections (remove static fd)
1179 - add dvd-freespace and dvd-writepart files
1180 - update depkgs to 22Jun05
1181 - change database update to 8 to 9
1182 * Sun Jul 24 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1183 - minor cleanups before 1.38 changes
1184 - add popt and popt-devel build dependencies
1185 - add tetex and tetex-dvips dependencies for doc build
1186 - replace deprecated Copyright tag with License
1187 * Sat May 07 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1188 - move sqlite installation bindir to /usr/lib/bacula/sqlite and remove
1189 - conflict with sqlite packages. remove readline dependency.
1190 * Sun Apr 17 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1191 - release 1.36.3 update docs
1192 * Tue Apr 05 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1193 - add centos4 build tag
1194 - add x86_64 build tag
1195 * Sun Apr 03 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1196 - add rhel4 build tag
1197 - clean up for mysql4 which is now mdk-10.1, suse-9.2 and rhel4
1198 * Sun Mar 06 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1199 - add rhel3 build tag
1200 * Tue Mar 01 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1201 - fix tray-monitor.conf for noreplace
1202 * Mon Feb 28 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1203 - fix distribution check for Fedora and Whitebox
1204 * Sun Feb 06 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1205 - add logwatch script
1206 - add dvd scripts
1207 * Sat Jan 15 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1208 - add build for Fedora Core 3 (linc now included in ORDit2)
1209 - add mysql4 define for Mandrake 10.1
1210 * Fri Jan 14 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1211 - fix {group_file} variable in post scripts
1212 * Thu Dec 30 2004 D. Scott Barninger <barninger@fairfieldcomputers.com>
1213 - add distribution checking and custom Distribution tag
1214 * Thu Dec 09 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1215 - ASSIGNMENT OF COPYRIGHT
1216 - FOR VALUE RECEIVED, D. Scott Barninger hereby sells, transfers and 
1217 - assigns unto Kern Sibbald, his successors, assigns and personal representatives, 
1218 - all right, title and interest in and to the copyright in this software RPM
1219 - spec file. D. Scott Barninger warrants good title to said copyright, that it is 
1220 - free of all liens, encumbrances or any known claims against said copyright.
1221 * Sat Dec 04 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1222 - bug 183 fixes
1223 - thanks to Daniel Widyono
1224 - update description for rescue package to describe cdrom creation
1225 * Thu Nov 18 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1226 - update depkgs to 29Oct04
1227 * Fri Nov 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1228 - add cdrom rescue to bacula-rescue package
1229 * Sun Oct 31 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1230 - misc fixes from 1.36.0 suse feedback
1231 - fix situation where sqlite database exists but sqlite has been removed.
1232 * Fri Oct 22 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1233 - remove tray-monitor from RH8 build
1234 - fix permissions on tray-monitor files
1235 * Wed Oct 13 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1236 - add Mandrake support and tray-monitor, misc changes for 1.35.8/1.36.0,
1237 - change database update to 7 to 8 upgrade,
1238 - revert depkgs to 08Mar04 as there seems to be a bug in the sqlite
1239 - build in 30Jul04, add freetype dependancy to gnome package.
1240 * Sun Sep 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1241 - add documentation to console for groupadd
1242 * Sat Sep 04 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1243 - add support for running daemons as root.bacula
1244 - correct for change in location of floppy rescue files in 1.35.2
1245 - removed /etc/bacula/fd script from all packages as it has disappeared from 1.35.2
1246 - updated depgkgs to 30Jul04
1247 * Thu Jun 24 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1248 - really, really fix symlink creation for gconsole
1249 * Thu Jun 17 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1250 - fix symlink creation in gconsole post install
1251 * Sat Jun 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1252 - fixed error in gconsole post script
1253 * Fri Apr 30 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1254 - add check for gconsole symlink before trying to create it
1255 * Sun Apr 11 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1256 - fix some minor permissions issues on doc files that CVS won't let us fix
1257 * Sun Apr 04 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1258 - add pkgconfig to BuildRequires
1259 - clean up gnome1/2 menu entries for appropriate packages
1260 * Fri Apr 02 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1261 - tightened up doc distribution
1262 * Tue Mar 30 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1263 - added usermode (Redhat) and xsu (SuSE) support for gnome-console;
1264 - rpm's horrible bug that prevents nested conditional macros prevents me
1265 - from implementing these 2 separate approaches within the conditionals which
1266 - create the separate server packages.
1267 - the solution adopted is to remove the gnome-console files from the server packages
1268 - so bacula-gconsole is now an add on for both client and server packages.
1269 - this also now allows the server packages to be install on machines without
1270 - an X-server and we can still maintain a single spec file.
1271 - added tests to make sure we have defined platform and database macros.
1272 * Sat Mar 13 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1273 - corrected mysql prerequisites for suse
1274 * Mon Mar 1 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1275 - replaced all cp commands with cp -p
1276 - removed addition of a+x permissions on gnome-console
1277 - corrected permissions on init scripts
1278 * Sat Feb 28 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1279 - corrected creation of sqlite_bindir in install from !mysql to sqlite
1280 -
1281 - various cleanup patches from Michael K. Johnson:
1282 - corrected post install routines for nicer chkconfig
1283 - removed chmod changes in post routines and moved to install section
1284 - removed interactive nature of post routine for rescue package
1285 - added description of building rescue disks to the description of rescue package
1286 - added clean of build root to beginning of install
1287 - removed specifying attr in all file lists
1288 * Fri Feb 20 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1289 - added bconsole to client package
1290 - added gconsole package as add-on to client
1291 - removed spurious dependancies on updatedb package (!cut/paste)
1292 * Thu Feb 19 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1293 - added updatedb package
1294 * Thu Feb 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1295 - added postgresql package
1296 * Wed Feb 11 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1297 - corrected the if else logic in the dependancy sections
1298 - changes for 1.34 release
1299 - /etc/bacula/console is now /etc/bacula/bconsole
1300 - /etc/bacula/console.conf is now /etc/bacula/bconsole.conf
1301 - /usr/sbin/btraceback.gdb is now /etc/bacula/btraceback.gdb
1302 - /usr/sbin/smtp is now /usr/sbin/bsmtp
1303 - added new /etc/bacula/drop_mysql_database
1304 - added new /etc/bacula/drop_sqlite_database
1305 - added new /etc/bacula/grant_sqlite_privileges
1306 - added new generic bacula database scripts in /etc/bacula
1307 - added pre-install sections to check for database versions older than 6
1308 - added check for /etc/bacula/console.conf and copy to bconsole.conf
1309 * Sun Feb 08 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1310 - added /etc/bacula/update_sqlite_tables and /etc/bacula/update_mysql_tables for 1.34 release
1311 - added testing for existing databases before executing any of the database creation scripts
1312 - added defines working_dir and sqlite_bindir in place of hard coded paths
1313 * Sat Jan 31 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1314 - added build configuration for SuSE.
1315 - Thanks to Matt Vollmar <matt at panamschool.edu.sv> for his input
1316 * Sat Jan 24 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1317 - added patch for create_sqlite_database to fix the installed bindir
1318 - added execute of create_sqlite_database to post of sqlite package
1319 * Sat Jan 10 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1320 - added virtual package Provides bacula-dir, bacula-sd, bacula-fd
1321 - added bacula-fd as Requires for rescue package
1322 - added build tag for Fedora Core 1
1323 - cleaned up dependancies for all builds
1324 * Thu Jan 1 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1325 - removed rh_version from package names
1326 - added platform build configuration section to beginning of file
1327 * Tue Nov 25 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1328 - removed make_static_bacula script from rescue package install
1329 * Sun Nov 23 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1330 - Added define at top of file for depkgs version
1331 - Added rescue sub-package
1332 - Moved requires statements into proper sub-package locations
1333 * Mon Oct 27 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1334 - Corrected Requires for Gnome 1.4/2.0 builds
1335 * Fri Oct 24 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1336 - Added separate source declaration for depkgs
1337 - added patch for make_catalog_backup script
1338 * Mon May 11 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1339 - Misc changes to mysql/sqlite build and rh7/8 menu differences
1340 - Added rh_version to sub-package names
1341 - Added installed but missing file /etc/bacula/gconsole
1342 - rm'd /etc/bacula/grant_mysql_privileges on sqlite builds
1343 * Thu May 08 2003 Kern Sibbald <kern at sibbald.com>
1344 - Update spec for version 1.31 and combine client
1345 * Sun Mar 30 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1346 - Initial spec file