]> git.sur5r.net Git - bacula/bacula/blob - bacula/platforms/redhat/bacula.spec.in
Minor updates
[bacula/bacula] / bacula / platforms / redhat / bacula.spec.in
1 # Bacula RPM spec file
2 # Copyright (C) 2000-2005 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 device_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: 1
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=%{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(0750, root, %{daemon_group}) /etc/bacula/mtx-changer
779 %attr(0640, root, %{daemon_group}) /etc/bacula/btraceback.dbx
780 %attr(0640, root, %{daemon_group}) /etc/bacula/btraceback.gdb
781 #%attr(0750, root, %{daemon_group}) /etc/bacula/dvd-freespace
782 #%attr(0750, root, %{daemon_group}) /etc/bacula/dvd-writepart
783 %attr(0750, root, %{daemon_group}) /etc/bacula/dvd-handler
784 %attr(0750, root, %{daemon_group}) /etc/init.d/bacula-dir
785 %attr(0750, root, %{daemon_group}) /etc/init.d/bacula-fd
786 %attr(0750, root, %{daemon_group}) /etc/init.d/bacula-sd
787 %attr(0750, root, %{daemon_group}) /etc/bacula/rescue
788
789 %doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo 
790 %doc %{_docsrc}/manual/bacula.pdf %{_docsrc}/developers/developers.pdf %{_docsrc}/manual/bacula ../Release_Notes-%{version}-%{release}.txt
791
792 /etc/logrotate.d/bacula
793 /etc/log.d/scripts/services/bacula
794 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/bacula-dir.conf
795 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/bacula-fd.conf
796 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/bacula-sd.conf
797 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/bconsole.conf
798 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/log.d/conf/logfiles/bacula.conf
799 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/log.d/conf/services/bacula.conf
800 %attr(0640, root, %{daemon_group}) /etc/bacula/query.sql
801 %attr(0770, root, %{daemon_group}) %dir %{working_dir}
802
803 /usr/sbin/bacula-dir
804 /usr/sbin/bacula-fd
805 /usr/sbin/bacula-sd
806 /usr/sbin/bcopy
807 /usr/sbin/bextract
808 /usr/sbin/bls
809 /usr/sbin/bscan
810 /usr/sbin/btape
811 /usr/sbin/btraceback
812 /usr/sbin/bconsole
813 /usr/sbin/dbcheck
814 /usr/sbin/bsmtp
815
816 %if %{mysql}
817 %pre mysql
818 # test for bacula database older than version 8
819 # note: this ASSUMES no password has been set for bacula database
820 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
821 %endif
822
823 %if %{sqlite}
824 %pre sqlite
825 # test for bacula database older than version 8
826 if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite ];then
827         DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
828 %endif
829
830 %if %{postgresql}
831 %pre postgresql
832 DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1`
833 %endif
834
835 if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "8" ]; then
836         echo "This bacula upgrade will update a bacula database from version 8 to 9."
837         echo "You appear to be running database version $DB_VER. You must first update"
838         echo "your database to version 8 and then install this upgrade. The alternative"
839         echo "is to use /etc/bacula/drop_%{db_backend}_tables to delete all your your current"
840         echo "catalog information, then do the upgrade. Information on updating a"
841         echo "database older than version 8 can be found in the release notes."
842         exit 1
843 fi
844
845 %if %{sqlite}
846 fi
847 %endif
848
849 # check for and copy /etc/bacula/console.conf to bconsole.conf
850 if [ -s /etc/bacula/console.conf ];then
851         cp -p /etc/bacula/console.conf /etc/bacula/bconsole.conf
852 fi
853
854 # create the daemon user and group
855 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
856 if [ -z "$HAVE_BACULA" ]; then
857         %{groupadd} -r %{daemon_group} > /dev/null 2>&1
858         echo "The group %{daemon_group} has been added to %{group_file}."
859         echo "See the manual chapter \"Running Bacula\" for details."
860 fi
861 HAVE_BACULA=`grep %{storage_daemon_user} %{user_file} 2>/dev/null`
862 if [ -z "$HAVE_BACULA" ]; then
863         %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -G %{device_group} -M -n -s /sbin/nologin %{storage_daemon_user} > /dev/null 2>&1
864         echo "The user %{storage_daemon_user} has been added to %{user_file}."
865         echo "See the manual chapter \"Running Bacula\" for details."
866 fi
867 HAVE_BACULA=`grep %{director_daemon_user} %{user_file} 2>/dev/null`
868 if [ -z "$HAVE_BACULA" ]; then
869         %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -n -s /sbin/nologin %{director_daemon_user} > /dev/null 2>&1
870         echo "The user %{director_daemon_user} has been added to %{user_file}."
871         echo "See the manual chapter \"Running Bacula\" for details."
872 fi
873 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
874 if [ -z "$HAVE_BACULA" ]; then
875         %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -n -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
876         echo "The user %{file_daemon_user} has been added to %{user_file}."
877         echo "See the manual chapter \"Running Bacula\" for details."
878 fi
879
880 %if %{mysql}
881 %post mysql
882 %endif
883 %if %{sqlite}
884 %post sqlite
885 %endif
886 %if %{postgresql}
887 %post postgresql
888 %endif
889
890 # add our links
891 if [ "$1" -ge 1 ] ; then
892 /sbin/chkconfig --add bacula-dir
893 /sbin/chkconfig --add bacula-fd
894 /sbin/chkconfig --add bacula-sd
895 fi
896
897 %if %{mysql}
898 # test for an existing database
899 # note: this ASSUMES no password has been set for bacula database
900 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
901
902 # grant privileges and create tables if they do not exist
903 if [ -z "$DB_VER" ]; then
904         echo "Hmm, doesn't look like you have an existing database."
905         echo "Granting privileges for MySQL user bacula..."
906         /etc/bacula/grant_mysql_privileges
907         echo "Creating MySQL bacula database..."
908         /etc/bacula/create_mysql_database
909         echo "Creating bacula tables..."
910         /etc/bacula/make_mysql_tables
911
912 # check to see if we need to upgrade a 1.36 or lower database
913 elif [ "$DB_VER" -lt "9" ]; then
914         echo "This release requires an upgrade to your bacula database."
915         echo "Backing up your current database..."
916         mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
917         echo "Upgrading bacula database ..."
918         /etc/bacula/update_mysql_tables
919         echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
920
921 fi
922 %endif
923
924 %if %{sqlite}
925 # test for an existing database
926 if [ -s %{working_dir}/bacula.db ]; then
927         DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
928         # check to see if we need to upgrade a 1.36 or lower database
929         if [ "$DB_VER" -lt "9" ] && [ "$DB_VER" -ge "8" ]; then
930                 echo "This release requires an upgrade to your bacula database."
931                 echo "Backing up your current database..."
932                 echo ".dump" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | bzip2 > %{working_dir}/bacula_backup.sql.bz2
933                 echo "Upgrading bacula database ..."
934                 /etc/bacula/update_sqlite_tables
935                 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
936         fi
937 else
938         # create the database and tables
939         echo "Hmm, doesn't look like you have an existing database."
940         echo "Creating SQLite database..."
941         /etc/bacula/create_sqlite_database
942         echo "Creating the SQLite tables..."
943         /etc/bacula/make_sqlite_tables
944 fi
945 %endif
946
947 %if %{postgresql}
948 # test for an existing database
949 # note: this ASSUMES no password has been set for bacula database
950 DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1`
951
952 # grant privileges and create tables if they do not exist
953 if [ -z "$DB_VER" ]; then
954         echo "Hmm, doesn't look like you have an existing database."
955         echo "Creating PostgreSQL bacula database..."
956         /etc/bacula/create_postgresql_database
957         echo "Creating bacula tables..."
958         /etc/bacula/make_postgresql_tables
959         echo "Granting privileges for PostgreSQL user bacula..."
960         /etc/bacula/grant_postgresql_privileges
961
962 # check to see if we need to upgrade a 1.36 or lower database
963 elif [ "$DB_VER" -lt "9" ]; then
964         echo "This release requires an upgrade to your bacula database."
965         echo "Backing up your current database..."
966         pg_dump bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
967         echo "Upgrading bacula database ..."
968         /etc/bacula/update_postgresql_tables
969         echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
970         
971 fi
972 %endif
973
974 # generate passwords if needed
975 if [ -d /etc/bacula ]; then
976         cd /etc/bacula
977         for file in *.conf; do
978                 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
979                         need_password=`grep $string $file 2>/dev/null`
980                         if [ -n "$need_password" ]; then
981                                 pass=`openssl rand -base64 33`
982                                 sed "s-$string-$pass-g" $file > $file.new
983                                 cp -f $file.new $file; rm -f $file.new
984                         fi
985                 done
986         done
987 fi
988
989 %if %{mysql}
990 %preun mysql
991 %endif
992 %if %{sqlite}
993 %preun sqlite
994 %endif
995 %if %{postgresql}
996 %preun postgresql
997 %endif
998
999 # delete our links
1000 if [ $1 = 0 ]; then
1001 /sbin/chkconfig --del bacula-dir
1002 /sbin/chkconfig --del bacula-fd
1003 /sbin/chkconfig --del bacula-sd
1004 fi
1005
1006
1007 %files mtx
1008 /usr/sbin/loaderinfo
1009 /usr/sbin/mtx
1010 /usr/sbin/scsitape
1011 /usr/sbin/tapeinfo
1012 /usr/man/man1/*
1013
1014
1015 %files client
1016 %defattr(-,root,root)
1017 %attr(0750, root, %{daemon_group}) %dir /etc/bacula
1018 %attr(0750, root, %{daemon_group}) /etc/bacula/bconsole
1019 /etc/init.d/bacula-fd
1020 %attr(0750, root, %{daemon_group}) /etc/bacula/rescue
1021
1022 %doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo 
1023 %doc %{_docsrc}/manual/bacula.pdf %{_docsrc}/developers/developers.pdf %{_docsrc}/manual/bacula ../Release_Notes-%{version}-%{release}.txt
1024
1025 /etc/logrotate.d/bacula
1026
1027 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/bacula-fd.conf
1028 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/bconsole.conf
1029 %attr(0770, root, %{daemon_group}) %dir %{working_dir}
1030
1031 /usr/sbin/bacula-fd
1032 /usr/sbin/btraceback
1033 %attr(0640, root, %{daemon_group}) /etc/bacula/btraceback.gdb
1034 %attr(0640, root, %{daemon_group}) /etc/bacula/btraceback.dbx
1035 /usr/sbin/bsmtp
1036 /usr/sbin/bconsole
1037
1038
1039 %pre client
1040 # create the daemon group and user
1041 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1042 if [ -z "$HAVE_BACULA" ]; then
1043         %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1044         echo "The group %{daemon_group} has been added to %{group_file}."
1045         echo "See the manual chapter \"Running Bacula\" for details."
1046 fi
1047 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
1048 if [ -z "$HAVE_BACULA" ]; then
1049         %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -n -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
1050         echo "The user %{file_daemon_user} has been added to %{user_file}."
1051         echo "See the manual chapter \"Running Bacula\" for details."
1052 fi
1053
1054 %post client
1055 # add our link
1056 if [ "$1" -ge 1 ] ; then
1057 /sbin/chkconfig --add bacula-fd
1058 fi
1059
1060 # generate passwords if needed
1061 if [ -d /etc/bacula ]; then
1062         cd /etc/bacula
1063         for file in *.conf; do
1064                 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
1065                         need_password=`grep $string $file 2>/dev/null`
1066                         if [ -n "$need_password" ]; then
1067                                 pass=`openssl rand -base64 33`
1068                                 sed "s-$string-$pass-g" $file > $file.new
1069                                 cp -f $file.new $file; rm -f $file.new
1070                         fi
1071                 done
1072         done
1073 fi
1074
1075 %preun client
1076 # delete our link
1077 if [ $1 = 0 ]; then
1078 /sbin/chkconfig --del bacula-fd
1079 fi
1080
1081 %files updatedb
1082 %defattr(-,root,%{daemon_group})
1083 /etc/bacula/updatedb/*
1084
1085 %pre updatedb
1086 # create the daemon group
1087 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1088 if [ -z "$HAVE_BACULA" ]; then
1089         %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1090         echo "The group %{daemon_group} has been added to %{group_file}."
1091         echo "See the manual chapter \"Running Bacula\" for details."
1092 fi
1093
1094 %post updatedb
1095 echo "The database update scripts were installed to /etc/bacula/updatedb"
1096
1097 %if %{gconsole}
1098 %files gconsole
1099 %defattr(-,root,root)
1100 /usr/sbin/gnome-console
1101 %attr(0750, root, %{daemon_group}) %dir /etc/bacula
1102 %attr(075, root, %{daemon_group}) /etc/bacula/gconsole
1103 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/gnome-console.conf
1104 /usr/share/pixmaps/bacula.png
1105 %endif
1106
1107 %if %{gconsole}
1108 /usr/share/applications/bacula.desktop
1109 %endif
1110
1111 %if %{gconsole} && ! %{rh8}
1112 /usr/sbin/bacula-tray-monitor
1113 %config(noreplace) /etc/bacula/tray-monitor.conf
1114 /usr/share/pixmaps/bacula-tray-monitor.xpm
1115 /usr/share/applications/bacula-tray-monitor.desktop
1116 %endif
1117
1118 %if %{gconsole} && ! %{su9}
1119 # add the console helper files
1120 %config(noreplace,missingok) /etc/pam.d/gnome-console
1121 %config(noreplace,missingok) /etc/security/console.apps/gnome-console
1122 /usr/bin/gnome-console
1123 %endif
1124
1125 %if %{gconsole}
1126 %pre gconsole
1127 # create the daemon group
1128 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1129 if [ -z "$HAVE_BACULA" ]; then
1130         %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1131         echo "The group %{daemon_group} has been added to %{group_file}."
1132         echo "See the manual chapter \"Running Bacula\" for details."
1133 fi
1134
1135 %post gconsole
1136 # generate passwords if needed
1137 if [ -d /etc/bacula ]; then
1138         cd /etc/bacula
1139         for file in *.conf; do
1140                 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
1141                         need_password=`grep $string $file 2>/dev/null`
1142                         if [ -n "$need_password" ]; then
1143                                 pass=`openssl rand -base64 33`
1144                                 sed "s-$string-$pass-g" $file > $file.new
1145                                 cp -f $file.new $file; rm -f $file.new
1146                         fi
1147                 done
1148         done
1149 fi
1150 %endif
1151
1152 %changelog
1153 * Wed Dec 14 2005 Aleksandar Milivojevic <alex@milivojevic.org>
1154 - 1.38.2 release
1155 - Reorganize files and pre/post sections to remove repetitions
1156 - Always build separate mtx package
1157 - Fix file ownerships for /etc/bacula and Bacula's working dir
1158 * Wed Nov 23 2005 Aleksandar Milivojevic <alex@milivojevic.org>
1159 - Disable GNOME on RH7
1160 * Fri Nov 18 2005 Aleksandar Milivojevic <alex@milivojevic.org>
1161 - Red Hat and look alikes have mtx RPM, do not build/package our version
1162 * Sun Nov 13 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1163 - minor edit to _dist for SLES9 compatibility
1164 * Sat Nov 05 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1165 - 1.38.0 release
1166 - kern changed location of pdf files and html manual in docs package
1167 * Sun Oct 30 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1168 - 1.38.0 release
1169 - add docs (from prebuilt tarball) and rescue packages back in
1170 - remove dvd-freespace and dvd-writepart files, add dvd-handler
1171 - remove 3 of 4 sqlite script patches as not needed
1172 * Sun Jul 24 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1173 - changes for 1.38
1174 - remove docs and rescue sections (remove static fd)
1175 - add dvd-freespace and dvd-writepart files
1176 - update depkgs to 22Jun05
1177 - change database update to 8 to 9
1178 * Sun Jul 24 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1179 - minor cleanups before 1.38 changes
1180 - add popt and popt-devel build dependencies
1181 - add tetex and tetex-dvips dependencies for doc build
1182 - replace deprecated Copyright tag with License
1183 * Sat May 07 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1184 - move sqlite installation bindir to /usr/lib/bacula/sqlite and remove
1185 - conflict with sqlite packages. remove readline dependency.
1186 * Sun Apr 17 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1187 - release 1.36.3 update docs
1188 * Tue Apr 05 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1189 - add centos4 build tag
1190 - add x86_64 build tag
1191 * Sun Apr 03 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1192 - add rhel4 build tag
1193 - clean up for mysql4 which is now mdk-10.1, suse-9.2 and rhel4
1194 * Sun Mar 06 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1195 - add rhel3 build tag
1196 * Tue Mar 01 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1197 - fix tray-monitor.conf for noreplace
1198 * Mon Feb 28 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1199 - fix distribution check for Fedora and Whitebox
1200 * Sun Feb 06 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1201 - add logwatch script
1202 - add dvd scripts
1203 * Sat Jan 15 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1204 - add build for Fedora Core 3 (linc now included in ORDit2)
1205 - add mysql4 define for Mandrake 10.1
1206 * Fri Jan 14 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1207 - fix {group_file} variable in post scripts
1208 * Thu Dec 30 2004 D. Scott Barninger <barninger@fairfieldcomputers.com>
1209 - add distribution checking and custom Distribution tag
1210 * Thu Dec 09 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1211 - ASSIGNMENT OF COPYRIGHT
1212 - FOR VALUE RECEIVED, D. Scott Barninger hereby sells, transfers and 
1213 - assigns unto Kern Sibbald, his successors, assigns and personal representatives, 
1214 - all right, title and interest in and to the copyright in this software RPM
1215 - spec file. D. Scott Barninger warrants good title to said copyright, that it is 
1216 - free of all liens, encumbrances or any known claims against said copyright.
1217 * Sat Dec 04 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1218 - bug 183 fixes
1219 - thanks to Daniel Widyono
1220 - update description for rescue package to describe cdrom creation
1221 * Thu Nov 18 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1222 - update depkgs to 29Oct04
1223 * Fri Nov 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1224 - add cdrom rescue to bacula-rescue package
1225 * Sun Oct 31 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1226 - misc fixes from 1.36.0 suse feedback
1227 - fix situation where sqlite database exists but sqlite has been removed.
1228 * Fri Oct 22 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1229 - remove tray-monitor from RH8 build
1230 - fix permissions on tray-monitor files
1231 * Wed Oct 13 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1232 - add Mandrake support and tray-monitor, misc changes for 1.35.8/1.36.0,
1233 - change database update to 7 to 8 upgrade,
1234 - revert depkgs to 08Mar04 as there seems to be a bug in the sqlite
1235 - build in 30Jul04, add freetype dependancy to gnome package.
1236 * Sun Sep 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1237 - add documentation to console for groupadd
1238 * Sat Sep 04 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1239 - add support for running daemons as root.bacula
1240 - correct for change in location of floppy rescue files in 1.35.2
1241 - removed /etc/bacula/fd script from all packages as it has disappeared from 1.35.2
1242 - updated depgkgs to 30Jul04
1243 * Thu Jun 24 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1244 - really, really fix symlink creation for gconsole
1245 * Thu Jun 17 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1246 - fix symlink creation in gconsole post install
1247 * Sat Jun 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1248 - fixed error in gconsole post script
1249 * Fri Apr 30 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1250 - add check for gconsole symlink before trying to create it
1251 * Sun Apr 11 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1252 - fix some minor permissions issues on doc files that CVS won't let us fix
1253 * Sun Apr 04 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1254 - add pkgconfig to BuildRequires
1255 - clean up gnome1/2 menu entries for appropriate packages
1256 * Fri Apr 02 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1257 - tightened up doc distribution
1258 * Tue Mar 30 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1259 - added usermode (Redhat) and xsu (SuSE) support for gnome-console;
1260 - rpm's horrible bug that prevents nested conditional macros prevents me
1261 - from implementing these 2 separate approaches within the conditionals which
1262 - create the separate server packages.
1263 - the solution adopted is to remove the gnome-console files from the server packages
1264 - so bacula-gconsole is now an add on for both client and server packages.
1265 - this also now allows the server packages to be install on machines without
1266 - an X-server and we can still maintain a single spec file.
1267 - added tests to make sure we have defined platform and database macros.
1268 * Sat Mar 13 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1269 - corrected mysql prerequisites for suse
1270 * Mon Mar 1 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1271 - replaced all cp commands with cp -p
1272 - removed addition of a+x permissions on gnome-console
1273 - corrected permissions on init scripts
1274 * Sat Feb 28 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1275 - corrected creation of sqlite_bindir in install from !mysql to sqlite
1276 -
1277 - various cleanup patches from Michael K. Johnson:
1278 - corrected post install routines for nicer chkconfig
1279 - removed chmod changes in post routines and moved to install section
1280 - removed interactive nature of post routine for rescue package
1281 - added description of building rescue disks to the description of rescue package
1282 - added clean of build root to beginning of install
1283 - removed specifying attr in all file lists
1284 * Fri Feb 20 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1285 - added bconsole to client package
1286 - added gconsole package as add-on to client
1287 - removed spurious dependancies on updatedb package (!cut/paste)
1288 * Thu Feb 19 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1289 - added updatedb package
1290 * Thu Feb 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1291 - added postgresql package
1292 * Wed Feb 11 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1293 - corrected the if else logic in the dependancy sections
1294 - changes for 1.34 release
1295 - /etc/bacula/console is now /etc/bacula/bconsole
1296 - /etc/bacula/console.conf is now /etc/bacula/bconsole.conf
1297 - /usr/sbin/btraceback.gdb is now /etc/bacula/btraceback.gdb
1298 - /usr/sbin/smtp is now /usr/sbin/bsmtp
1299 - added new /etc/bacula/drop_mysql_database
1300 - added new /etc/bacula/drop_sqlite_database
1301 - added new /etc/bacula/grant_sqlite_privileges
1302 - added new generic bacula database scripts in /etc/bacula
1303 - added pre-install sections to check for database versions older than 6
1304 - added check for /etc/bacula/console.conf and copy to bconsole.conf
1305 * Sun Feb 08 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1306 - added /etc/bacula/update_sqlite_tables and /etc/bacula/update_mysql_tables for 1.34 release
1307 - added testing for existing databases before executing any of the database creation scripts
1308 - added defines working_dir and sqlite_bindir in place of hard coded paths
1309 * Sat Jan 31 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1310 - added build configuration for SuSE.
1311 - Thanks to Matt Vollmar <matt at panamschool.edu.sv> for his input
1312 * Sat Jan 24 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1313 - added patch for create_sqlite_database to fix the installed bindir
1314 - added execute of create_sqlite_database to post of sqlite package
1315 * Sat Jan 10 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1316 - added virtual package Provides bacula-dir, bacula-sd, bacula-fd
1317 - added bacula-fd as Requires for rescue package
1318 - added build tag for Fedora Core 1
1319 - cleaned up dependancies for all builds
1320 * Thu Jan 1 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1321 - removed rh_version from package names
1322 - added platform build configuration section to beginning of file
1323 * Tue Nov 25 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1324 - removed make_static_bacula script from rescue package install
1325 * Sun Nov 23 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1326 - Added define at top of file for depkgs version
1327 - Added rescue sub-package
1328 - Moved requires statements into proper sub-package locations
1329 * Mon Oct 27 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1330 - Corrected Requires for Gnome 1.4/2.0 builds
1331 * Fri Oct 24 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1332 - Added separate source declaration for depkgs
1333 - added patch for make_catalog_backup script
1334 * Mon May 11 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1335 - Misc changes to mysql/sqlite build and rh7/8 menu differences
1336 - Added rh_version to sub-package names
1337 - Added installed but missing file /etc/bacula/gconsole
1338 - rm'd /etc/bacula/grant_mysql_privileges on sqlite builds
1339 * Thu May 08 2003 Kern Sibbald <kern at sibbald.com>
1340 - Update spec for version 1.31 and combine client
1341 * Sun Mar 30 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1342 - Initial spec file