]> git.sur5r.net Git - bacula/bacula/blob - bacula/platforms/suse/bacula.spec.in
- Fix seg fault if user labels a drive directory bug #513
[bacula/bacula] / bacula / platforms / suse / 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.1
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 %if %{gconsole}
539         --enable-gnome \
540 %endif
541 %if %{gconsole} && ! %{rh8}
542         --enable-tray-monitor \
543 %endif
544 %if %{mysql}
545         --with-mysql \
546 %endif
547 %if %{sqlite}
548         --with-sqlite=${cwd}/%{depkgs}/sqlite \
549 %endif
550 %if %{postgresql}
551         --with-postgresql \
552 %endif
553         --with-working-dir=%{working_dir} \
554         --with-pid-dir=/var/run \
555         --with-subsys-dir=/var/lock/subsys \
556         --with-dir-user=%{director_daemon_user} \
557         --with-dir-group=%{daemon_group} \
558         --with-sd-user=%{storage_daemon_user} \
559         --with-sd-group=%{daemon_group} \
560         --with-fd-user=%{file_daemon_user} \
561         --with-fd-group=%{daemon_group} \
562         --with-dir-password="XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX" \
563         --with-fd-password="XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX" \
564         --with-sd-password="XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX" \
565         --with-mon-dir-password="XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX" \
566         --with-mon-fd-password="XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX" \
567         --with-mon-sd-password="XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX" \
568         --with-openssl
569
570 make
571
572 %install
573  
574 cwd=${PWD}
575 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
576 mkdir -p $RPM_BUILD_ROOT/etc/init.d
577 mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
578 mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/logfiles
579 mkdir -p $RPM_BUILD_ROOT/etc/log.d/conf/services
580 mkdir -p $RPM_BUILD_ROOT/etc/log.d/scripts/services
581 mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps
582 %if %{gconsole}
583 mkdir -p $RPM_BUILD_ROOT/usr/share/applications
584 %endif
585 mkdir -p $RPM_BUILD_ROOT/etc/bacula/updatedb
586 %if %{gconsole} && ! %{su9}
587 mkdir -p $RPM_BUILD_ROOT/etc/pam.d
588 mkdir -p $RPM_BUILD_ROOT/etc/security/console.apps
589 mkdir -p $RPM_BUILD_ROOT/usr/bin
590 %endif
591
592 %if %{sqlite}
593 mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir}
594 %endif
595
596 make \
597         prefix=$RPM_BUILD_ROOT/usr \
598         sbindir=$RPM_BUILD_ROOT/usr/sbin \
599         sysconfdir=$RPM_BUILD_ROOT/etc/bacula \
600         scriptdir=$RPM_BUILD_ROOT/etc/bacula \
601         working_dir=$RPM_BUILD_ROOT%{working_dir} \
602         install
603
604 cd %{depkgs}
605 make \
606         prefix=$RPM_BUILD_ROOT/usr \
607         sbindir=$RPM_BUILD_ROOT/usr/sbin \
608         sysconfdir=$RPM_BUILD_ROOT/etc/bacula \
609         working_dir=$RPM_BUILD_ROOT%{working_dir} \
610         mandir=$RPM_BUILD_ROOT/usr/man \
611         mtx-install
612 cd ${cwd}
613
614 # fixme - make installs the mysql scripts for sqlite build
615 %if %{sqlite}
616 rm -f $RPM_BUILD_ROOT/etc/bacula/startmysql
617 rm -f $RPM_BUILD_ROOT/etc/bacula/stopmysql
618 rm -f $RPM_BUILD_ROOT/etc/bacula/grant_mysql_privileges
619 %endif
620
621 # fixme - make installs the mysql scripts for postgresql build
622 %if %{postgresql}
623 rm -f $RPM_BUILD_ROOT/etc/bacula/startmysql
624 rm -f $RPM_BUILD_ROOT/etc/bacula/stopmysql
625 %endif
626
627 # install the init scripts
628 %if %{su9}
629 cp -p platforms/suse/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
630 cp -p platforms/suse/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
631 cp -p platforms/suse/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
632 %endif
633 %if %{mdk}
634 cp -p platforms/mandrake/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
635 cp -p platforms/mandrake/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
636 cp -p platforms/mandrake/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
637 %endif
638 %if ! %{su9} && ! %{mdk}
639 cp -p platforms/redhat/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
640 cp -p platforms/redhat/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
641 cp -p platforms/redhat/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
642 %endif
643 chmod 0754 $RPM_BUILD_ROOT/etc/init.d/*
644
645 # install the menu stuff
646 %if %{gconsole} && %{su9}
647 cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png
648 cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop
649 cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm
650 cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop
651 %endif
652 %if %{rh8} || %{rh9} || %{wb3} || %{fc1} || %{fc3} || %{mdk}
653 %define iftrick 1
654 %else
655 %define iftrick 0
656 %endif
657 %if %{gconsole} && %{iftrick}
658 cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png
659 cp -p scripts/bacula.desktop.gnome2.consolehelper $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop
660 cp -p scripts/gnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/gnome-console
661 cp -p scripts/gnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/gnome-console
662 ln -sf consolehelper $RPM_BUILD_ROOT/usr/bin/gnome-console
663 %endif
664 %if %{gconsole} && ! %{rh8}
665 cp -p src/tray-monitor/generic.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/bacula-tray-monitor.xpm
666 cp -p scripts/bacula-tray-monitor.desktop $RPM_BUILD_ROOT/usr/share/applications/bacula-tray-monitor.desktop
667 %endif
668
669 # install sqlite
670 %if %{sqlite}
671 cp -p %{depkgs}/sqlite/sqlite $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite
672 cp -p %{depkgs}/sqlite/sqlite.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite.h
673 cp -p %{depkgs}/sqlite/libsqlite.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite.a
674 %endif
675
676 # install the logrotate file
677 cp -p scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula
678
679 # install the updatedb scripts
680 cp -p updatedb/* $RPM_BUILD_ROOT/etc/bacula/updatedb/
681
682 # install the logwatch scripts
683 cp -p scripts/logwatch/bacula $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula
684 cp -p scripts/logwatch/logfile.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf
685 cp -p scripts/logwatch/services.bacula.conf $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf
686 chmod 755 $RPM_BUILD_ROOT/etc/log.d/scripts/services/bacula
687 chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/logfiles/bacula.conf
688 chmod 644 $RPM_BUILD_ROOT/etc/log.d/conf/services/bacula.conf
689
690 # install the rescue files
691 mkdir $RPM_BUILD_ROOT/etc/bacula/rescue
692 cp -p %{_rescuesrc}/Makefile* $RPM_BUILD_ROOT/etc/bacula/rescue/
693 cp -p %{_rescuesrc}/README $RPM_BUILD_ROOT/etc/bacula/rescue/
694 cp -p %{_rescuesrc}/configure $RPM_BUILD_ROOT/etc/bacula/rescue/
695 cp -p %{_rescuesrc}/version.h $RPM_BUILD_ROOT/etc/bacula/rescue/
696 cp -pr %{_rescuesrc}/linux $RPM_BUILD_ROOT/etc/bacula/rescue/
697 cp -pr %{_rescuesrc}/autoconf $RPM_BUILD_ROOT/etc/bacula/rescue/
698
699 # now clean up permissions that are left broken by the install
700 chmod o-r $RPM_BUILD_ROOT/etc/bacula/query.sql
701 chmod o-rwx $RPM_BUILD_ROOT/var/bacula
702 %if %{gconsole} && ! %{rh8}
703 chmod 755 $RPM_BUILD_ROOT/usr/sbin/bacula-tray-monitor
704 chmod 644 $RPM_BUILD_ROOT/etc/bacula/tray-monitor.conf
705 %endif
706
707 %clean
708 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
709
710
711 %if %{mysql}
712 # MySQL specific files
713 %files mysql
714 %defattr(-, root, root)
715 %attr(0750, root, %{daemon_group}) /etc/bacula/create_mysql_database
716 %attr(0750, root, %{daemon_group}) /etc/bacula/drop_mysql_database
717 %attr(0750, root, %{daemon_group}) /etc/bacula/make_mysql_tables
718 %attr(0750, root, %{daemon_group}) /etc/bacula/drop_mysql_tables
719 %attr(0750, root, %{daemon_group}) /etc/bacula/update_mysql_tables
720 %attr(0750, root, %{daemon_group}) /etc/bacula/grant_mysql_privileges
721 %attr(0750, root, %{daemon_group}) /etc/bacula/startmysql
722 %attr(0750, root, %{daemon_group}) /etc/bacula/stopmysql
723 %endif
724
725 %if %{sqlite}
726 %files sqlite
727 %defattr(-,root,root)
728 %attr(0750, root, %{daemon_group}) /etc/bacula/create_sqlite_database
729 %attr(0750, root, %{daemon_group}) /etc/bacula/drop_sqlite_database
730 %attr(0750, root, %{daemon_group}) /etc/bacula/grant_sqlite_privileges
731 %attr(0750, root, %{daemon_group}) /etc/bacula/make_sqlite_tables
732 %attr(0750, root, %{daemon_group}) /etc/bacula/drop_sqlite_tables
733 %attr(0750, root, %{daemon_group}) /etc/bacula/update_sqlite_tables
734 %{sqlite_bindir}/libsqlite.a
735 %{sqlite_bindir}/sqlite.h
736 %{sqlite_bindir}/sqlite
737 %endif
738
739 %if %{postgresql}
740 %files postgresql
741 %defattr(-,root,root)
742 %attr(0750, root, %{daemon_group}) /etc/bacula/create_postgresql_database
743 %attr(0750, root, %{daemon_group}) /etc/bacula/drop_postgresql_database
744 %attr(0750, root, %{daemon_group}) /etc/bacula/make_postgresql_tables
745 %attr(0750, root, %{daemon_group}) /etc/bacula/drop_postgresql_tables
746 %attr(0750, root, %{daemon_group}) /etc/bacula/update_postgresql_tables
747 %attr(0750, root, %{daemon_group}) /etc/bacula/grant_postgresql_privileges
748 %endif
749
750 # The rest is DB backend independent
751 %attr(0750, root, %{daemon_group}) %dir /etc/bacula
752 %attr(0750, root, %{daemon_group}) /etc/bacula/bacula
753 %attr(0750, root, %{daemon_group}) /etc/bacula/bconsole
754 %attr(0750, root, %{daemon_group}) /etc/bacula/create_bacula_database
755 %attr(0750, root, %{daemon_group}) /etc/bacula/drop_bacula_database
756 %attr(0750, root, %{daemon_group}) /etc/bacula/grant_bacula_privileges
757 %attr(0750, root, %{daemon_group}) /etc/bacula/make_bacula_tables
758 %attr(0750, root, %{daemon_group}) /etc/bacula/drop_bacula_tables
759 %attr(0750, root, %{daemon_group}) /etc/bacula/update_bacula_tables
760 %attr(0750, root, %{daemon_group}) /etc/bacula/make_catalog_backup
761 %attr(0750, root, %{daemon_group}) /etc/bacula/delete_catalog_backup
762 %attr(0750, root, %{daemon_group}) /etc/bacula/mtx-changer
763 %attr(0640, root, %{daemon_group}) /etc/bacula/btraceback.dbx
764 %attr(0640, root, %{daemon_group}) /etc/bacula/btraceback.gdb
765 #%attr(0750, root, %{daemon_group}) /etc/bacula/dvd-freespace
766 #%attr(0750, root, %{daemon_group}) /etc/bacula/dvd-writepart
767 %attr(0750, root, %{daemon_group}) /etc/bacula/dvd-handler
768 %attr(0750, root, %{daemon_group}) /etc/init.d/bacula-dir
769 %attr(0750, root, %{daemon_group}) /etc/init.d/bacula-fd
770 %attr(0750, root, %{daemon_group}) /etc/init.d/bacula-sd
771 %attr(0750, root, %{daemon_group}) /etc/bacula/rescue
772
773 %doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo 
774 %doc %{_docsrc}/manual/bacula.pdf %{_docsrc}/developers/developers.pdf %{_docsrc}/manual/bacula ../Release_Notes-%{version}-%{release}.txt
775
776 /etc/logrotate.d/bacula
777 /etc/log.d/scripts/services/bacula
778 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/bacula-dir.conf
779 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/bacula-fd.conf
780 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/bacula-sd.conf
781 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/bconsole.conf
782 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/log.d/conf/logfiles/bacula.conf
783 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/log.d/conf/services/bacula.conf
784 %attr(0640, root, %{daemon_group}) /etc/bacula/query.sql
785 %attr(0770, root, %{daemon_group}) %dir %{working_dir}
786
787 /usr/sbin/bacula-dir
788 /usr/sbin/bacula-fd
789 /usr/sbin/bacula-sd
790 /usr/sbin/bcopy
791 /usr/sbin/bextract
792 /usr/sbin/bls
793 /usr/sbin/bscan
794 /usr/sbin/btape
795 /usr/sbin/btraceback
796 /usr/sbin/bconsole
797 /usr/sbin/dbcheck
798 /usr/sbin/bsmtp
799
800 %if %{mysql}
801 %pre mysql
802 # test for bacula database older than version 8
803 # note: this ASSUMES no password has been set for bacula database
804 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
805 %endif
806
807 %if %{sqlite}
808 %pre sqlite
809 # test for bacula database older than version 8
810 if [ -s %{working_dir}/bacula.db ] && [ -s %{sqlite_bindir}/sqlite ];then
811         DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
812 %endif
813
814 %if %{postgresql}
815 %pre postgresql
816 DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1`
817 %endif
818
819 if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "8" ]; then
820         echo "This bacula upgrade will update a bacula database from version 8 to 9."
821         echo "You appear to be running database version $DB_VER. You must first update"
822         echo "your database to version 8 and then install this upgrade. The alternative"
823         echo "is to use /etc/bacula/drop_%{db_backend}_tables to delete all your your current"
824         echo "catalog information, then do the upgrade. Information on updating a"
825         echo "database older than version 8 can be found in the release notes."
826         exit 1
827 fi
828
829 %if %{sqlite}
830 fi
831 %endif
832
833 # check for and copy /etc/bacula/console.conf to bconsole.conf
834 if [ -s /etc/bacula/console.conf ];then
835         cp -p /etc/bacula/console.conf /etc/bacula/bconsole.conf
836 fi
837
838 # create the daemon user and group
839 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
840 if [ -z "$HAVE_BACULA" ]; then
841         %{groupadd} -r %{daemon_group} > /dev/null 2>&1
842         echo "The group %{daemon_group} has been added to %{group_file}."
843         echo "See the manual chapter \"Running Bacula\" for details."
844 fi
845 HAVE_BACULA=`grep %{storage_daemon_user} %{user_file} 2>/dev/null`
846 if [ -z "$HAVE_BACULA" ]; then
847         %{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
848         echo "The user %{storage_daemon_user} has been added to %{user_file}."
849         echo "See the manual chapter \"Running Bacula\" for details."
850 fi
851 HAVE_BACULA=`grep %{director_daemon_user} %{user_file} 2>/dev/null`
852 if [ -z "$HAVE_BACULA" ]; then
853         %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -n -s /sbin/nologin %{director_daemon_user} > /dev/null 2>&1
854         echo "The user %{director_daemon_user} has been added to %{user_file}."
855         echo "See the manual chapter \"Running Bacula\" for details."
856 fi
857 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
858 if [ -z "$HAVE_BACULA" ]; then
859         %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -n -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
860         echo "The user %{file_daemon_user} has been added to %{user_file}."
861         echo "See the manual chapter \"Running Bacula\" for details."
862 fi
863
864 %if %{mysql}
865 %post mysql
866 %endif
867 %if %{sqlite}
868 %post sqlite
869 %endif
870 %if %{postgresql}
871 %post postgresql
872 %endif
873
874 # add our links
875 if [ "$1" -ge 1 ] ; then
876 /sbin/chkconfig --add bacula-dir
877 /sbin/chkconfig --add bacula-fd
878 /sbin/chkconfig --add bacula-sd
879 fi
880
881 %if %{mysql}
882 # test for an existing database
883 # note: this ASSUMES no password has been set for bacula database
884 DB_VER=`mysql 2>/dev/null bacula -e 'select * from Version;'|tail -n 1`
885
886 # grant privileges and create tables if they do not exist
887 if [ -z "$DB_VER" ]; then
888         echo "Hmm, doesn't look like you have an existing database."
889         echo "Granting privileges for MySQL user bacula..."
890         /etc/bacula/grant_mysql_privileges
891         echo "Creating MySQL bacula database..."
892         /etc/bacula/create_mysql_database
893         echo "Creating bacula tables..."
894         /etc/bacula/make_mysql_tables
895
896 # check to see if we need to upgrade a 1.36 or lower database
897 elif [ "$DB_VER" -lt "9" ]; then
898         echo "This release requires an upgrade to your bacula database."
899         echo "Backing up your current database..."
900         mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
901         echo "Upgrading bacula database ..."
902         /etc/bacula/update_mysql_tables
903         echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
904
905 fi
906 %endif
907
908 %if %{sqlite}
909 # test for an existing database
910 if [ -s %{working_dir}/bacula.db ]; then
911         DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite 2>/dev/null %{working_dir}/bacula.db | tail -n 1`
912         # check to see if we need to upgrade a 1.36 or lower database
913         if [ "$DB_VER" -lt "9" ] && [ "$DB_VER" -ge "8" ]; then
914                 echo "This release requires an upgrade to your bacula database."
915                 echo "Backing up your current database..."
916                 echo ".dump" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | bzip2 > %{working_dir}/bacula_backup.sql.bz2
917                 echo "Upgrading bacula database ..."
918                 /etc/bacula/update_sqlite_tables
919                 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
920         fi
921 else
922         # create the database and tables
923         echo "Hmm, doesn't look like you have an existing database."
924         echo "Creating SQLite database..."
925         /etc/bacula/create_sqlite_database
926         echo "Creating the SQLite tables..."
927         /etc/bacula/make_sqlite_tables
928 fi
929 %endif
930
931 %if %{postgresql}
932 # test for an existing database
933 # note: this ASSUMES no password has been set for bacula database
934 DB_VER=`echo 'select * from Version;' | psql bacula 2>/dev/null | tail -3 | head -1`
935
936 # grant privileges and create tables if they do not exist
937 if [ -z "$DB_VER" ]; then
938         echo "Hmm, doesn't look like you have an existing database."
939         echo "Creating PostgreSQL bacula database..."
940         /etc/bacula/create_postgresql_database
941         echo "Creating bacula tables..."
942         /etc/bacula/make_postgresql_tables
943         echo "Granting privileges for PostgreSQL user bacula..."
944         /etc/bacula/grant_postgresql_privileges
945
946 # check to see if we need to upgrade a 1.36 or lower database
947 elif [ "$DB_VER" -lt "9" ]; then
948         echo "This release requires an upgrade to your bacula database."
949         echo "Backing up your current database..."
950         pg_dump bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
951         echo "Upgrading bacula database ..."
952         /etc/bacula/update_postgresql_tables
953         echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
954         
955 fi
956 %endif
957
958 # generate passwords if needed
959 if [ -d /etc/bacula ]; then
960         cd /etc/bacula
961         for file in *.conf; do
962                 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
963                         need_password=`grep $string $file 2>/dev/null`
964                         if [ -n "$need_password" ]; then
965                                 pass=`openssl rand -base64 33`
966                                 sed "s-$string-$pass-g" $file > $file.new
967                                 cp -f $file.new $file; rm -f $file.new
968                         fi
969                 done
970         done
971 fi
972
973 %if %{mysql}
974 %preun mysql
975 %endif
976 %if %{sqlite}
977 %preun sqlite
978 %endif
979 %if %{postgresql}
980 %preun postgresql
981 %endif
982
983 # delete our links
984 if [ $1 = 0 ]; then
985 /sbin/chkconfig --del bacula-dir
986 /sbin/chkconfig --del bacula-fd
987 /sbin/chkconfig --del bacula-sd
988 fi
989
990
991 %files mtx
992 /usr/sbin/loaderinfo
993 /usr/sbin/mtx
994 /usr/sbin/scsitape
995 /usr/sbin/tapeinfo
996 /usr/man/man1/*
997
998
999 %files client
1000 %defattr(-,root,root)
1001 %attr(0750, root, %{daemon_group}) %dir /etc/bacula
1002 %attr(0750, root, %{daemon_group}) /etc/bacula/bconsole
1003 /etc/init.d/bacula-fd
1004 %attr(0750, root, %{daemon_group}) /etc/bacula/rescue
1005
1006 %doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo 
1007 %doc %{_docsrc}/manual/bacula.pdf %{_docsrc}/developers/developers.pdf %{_docsrc}/manual/bacula ../Release_Notes-%{version}-%{release}.txt
1008
1009 /etc/logrotate.d/bacula
1010
1011 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/bacula-fd.conf
1012 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/bconsole.conf
1013 %attr(0770, root, %{daemon_group}) %dir %{working_dir}
1014
1015 /usr/sbin/bacula-fd
1016 /usr/sbin/btraceback
1017 %attr(0640, root, %{daemon_group}) /etc/bacula/btraceback.gdb
1018 %attr(0640, root, %{daemon_group}) /etc/bacula/btraceback.dbx
1019 /usr/sbin/bsmtp
1020 /usr/sbin/bconsole
1021
1022
1023 %pre client
1024 # create the daemon group and user
1025 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1026 if [ -z "$HAVE_BACULA" ]; then
1027         %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1028         echo "The group %{daemon_group} has been added to %{group_file}."
1029         echo "See the manual chapter \"Running Bacula\" for details."
1030 fi
1031 HAVE_BACULA=`grep %{file_daemon_user} %{user_file} 2>/dev/null`
1032 if [ -z "$HAVE_BACULA" ]; then
1033         %{useradd} -r -c "Bacula" -d %{working_dir} -g %{daemon_group} -M -n -s /sbin/nologin %{file_daemon_user} > /dev/null 2>&1
1034         echo "The user %{file_daemon_user} has been added to %{user_file}."
1035         echo "See the manual chapter \"Running Bacula\" for details."
1036 fi
1037
1038 %post client
1039 # add our link
1040 if [ "$1" -ge 1 ] ; then
1041 /sbin/chkconfig --add bacula-fd
1042 fi
1043
1044 # generate passwords if needed
1045 if [ -d /etc/bacula ]; then
1046         cd /etc/bacula
1047         for file in *.conf; do
1048                 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
1049                         need_password=`grep $string $file 2>/dev/null`
1050                         if [ -n "$need_password" ]; then
1051                                 pass=`openssl rand -base64 33`
1052                                 sed "s-$string-$pass-g" $file > $file.new
1053                                 cp -f $file.new $file; rm -f $file.new
1054                         fi
1055                 done
1056         done
1057 fi
1058
1059 %preun client
1060 # delete our link
1061 if [ $1 = 0 ]; then
1062 /sbin/chkconfig --del bacula-fd
1063 fi
1064
1065 %files updatedb
1066 %defattr(-,root,%{daemon_group})
1067 /etc/bacula/updatedb/*
1068
1069 %pre updatedb
1070 # create the daemon group
1071 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1072 if [ -z "$HAVE_BACULA" ]; then
1073         %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1074         echo "The group %{daemon_group} has been added to %{group_file}."
1075         echo "See the manual chapter \"Running Bacula\" for details."
1076 fi
1077
1078 %post updatedb
1079 echo "The database update scripts were installed to /etc/bacula/updatedb"
1080
1081 %if %{gconsole}
1082 %files gconsole
1083 %defattr(-,root,root)
1084 /usr/sbin/gnome-console
1085 %attr(0750, root, %{daemon_group}) %dir /etc/bacula
1086 %attr(075, root, %{daemon_group}) /etc/bacula/gconsole
1087 %attr(0640, root, %{daemon_group}) %config(noreplace) /etc/bacula/gnome-console.conf
1088 /usr/share/pixmaps/bacula.png
1089 %endif
1090
1091 %if %{gconsole}
1092 /usr/share/applications/bacula.desktop
1093 %endif
1094
1095 %if %{gconsole} && ! %{rh8}
1096 /usr/sbin/bacula-tray-monitor
1097 %config(noreplace) /etc/bacula/tray-monitor.conf
1098 /usr/share/pixmaps/bacula-tray-monitor.xpm
1099 /usr/share/applications/bacula-tray-monitor.desktop
1100 %endif
1101
1102 %if %{gconsole} && ! %{su9}
1103 # add the console helper files
1104 %config(noreplace,missingok) /etc/pam.d/gnome-console
1105 %config(noreplace,missingok) /etc/security/console.apps/gnome-console
1106 /usr/bin/gnome-console
1107 %endif
1108
1109 %if %{gconsole}
1110 %pre gconsole
1111 # create the daemon group
1112 HAVE_BACULA=`grep %{daemon_group} %{group_file} 2>/dev/null`
1113 if [ -z "$HAVE_BACULA" ]; then
1114         %{groupadd} -r %{daemon_group} > /dev/null 2>&1
1115         echo "The group %{daemon_group} has been added to %{group_file}."
1116         echo "See the manual chapter \"Running Bacula\" for details."
1117 fi
1118
1119 %post gconsole
1120 # generate passwords if needed
1121 if [ -d /etc/bacula ]; then
1122         cd /etc/bacula
1123         for file in *.conf; do
1124                 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
1125                         need_password=`grep $string $file 2>/dev/null`
1126                         if [ -n "$need_password" ]; then
1127                                 pass=`openssl rand -base64 33`
1128                                 sed "s-$string-$pass-g" $file > $file.new
1129                                 cp -f $file.new $file; rm -f $file.new
1130                         fi
1131                 done
1132         done
1133 fi
1134 %endif
1135
1136 %changelog
1137 * Wed Dec 14 2005 Aleksandar Milivojevic <alex@milivojevic.org>
1138 - 1.38.2 release
1139 - Reorganize files and pre/post sections to remove repetitions
1140 - Always build separate mtx package
1141 - Fix file ownerships for /etc/bacula and Bacula's working dir
1142 * Wed Nov 23 2005 Aleksandar Milivojevic <alex@milivojevic.org>
1143 - Disable GNOME on RH7
1144 * Fri Nov 18 2005 Aleksandar Milivojevic <alex@milivojevic.org>
1145 - Red Hat and look alikes have mtx RPM, do not build/package our version
1146 * Sun Nov 13 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1147 - minor edit to _dist for SLES9 compatibility
1148 * Sat Nov 05 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1149 - 1.38.0 release
1150 - kern changed location of pdf files and html manual in docs package
1151 * Sun Oct 30 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1152 - 1.38.0 release
1153 - add docs (from prebuilt tarball) and rescue packages back in
1154 - remove dvd-freespace and dvd-writepart files, add dvd-handler
1155 - remove 3 of 4 sqlite script patches as not needed
1156 * Sun Jul 24 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1157 - changes for 1.38
1158 - remove docs and rescue sections (remove static fd)
1159 - add dvd-freespace and dvd-writepart files
1160 - update depkgs to 22Jun05
1161 - change database update to 8 to 9
1162 * Sun Jul 24 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1163 - minor cleanups before 1.38 changes
1164 - add popt and popt-devel build dependencies
1165 - add tetex and tetex-dvips dependencies for doc build
1166 - replace deprecated Copyright tag with License
1167 * Sat May 07 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1168 - move sqlite installation bindir to /usr/lib/bacula/sqlite and remove
1169 - conflict with sqlite packages. remove readline dependency.
1170 * Sun Apr 17 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1171 - release 1.36.3 update docs
1172 * Tue Apr 05 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1173 - add centos4 build tag
1174 - add x86_64 build tag
1175 * Sun Apr 03 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1176 - add rhel4 build tag
1177 - clean up for mysql4 which is now mdk-10.1, suse-9.2 and rhel4
1178 * Sun Mar 06 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1179 - add rhel3 build tag
1180 * Tue Mar 01 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1181 - fix tray-monitor.conf for noreplace
1182 * Mon Feb 28 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1183 - fix distribution check for Fedora and Whitebox
1184 * Sun Feb 06 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1185 - add logwatch script
1186 - add dvd scripts
1187 * Sat Jan 15 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1188 - add build for Fedora Core 3 (linc now included in ORDit2)
1189 - add mysql4 define for Mandrake 10.1
1190 * Fri Jan 14 2005 D. Scott Barninger <barninger@fairfieldcomputers.com>
1191 - fix {group_file} variable in post scripts
1192 * Thu Dec 30 2004 D. Scott Barninger <barninger@fairfieldcomputers.com>
1193 - add distribution checking and custom Distribution tag
1194 * Thu Dec 09 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1195 - ASSIGNMENT OF COPYRIGHT
1196 - FOR VALUE RECEIVED, D. Scott Barninger hereby sells, transfers and 
1197 - assigns unto Kern Sibbald, his successors, assigns and personal representatives, 
1198 - all right, title and interest in and to the copyright in this software RPM
1199 - spec file. D. Scott Barninger warrants good title to said copyright, that it is 
1200 - free of all liens, encumbrances or any known claims against said copyright.
1201 * Sat Dec 04 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1202 - bug 183 fixes
1203 - thanks to Daniel Widyono
1204 - update description for rescue package to describe cdrom creation
1205 * Thu Nov 18 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1206 - update depkgs to 29Oct04
1207 * Fri Nov 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1208 - add cdrom rescue to bacula-rescue package
1209 * Sun Oct 31 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1210 - misc fixes from 1.36.0 suse feedback
1211 - fix situation where sqlite database exists but sqlite has been removed.
1212 * Fri Oct 22 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1213 - remove tray-monitor from RH8 build
1214 - fix permissions on tray-monitor files
1215 * Wed Oct 13 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1216 - add Mandrake support and tray-monitor, misc changes for 1.35.8/1.36.0,
1217 - change database update to 7 to 8 upgrade,
1218 - revert depkgs to 08Mar04 as there seems to be a bug in the sqlite
1219 - build in 30Jul04, add freetype dependancy to gnome package.
1220 * Sun Sep 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1221 - add documentation to console for groupadd
1222 * Sat Sep 04 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1223 - add support for running daemons as root.bacula
1224 - correct for change in location of floppy rescue files in 1.35.2
1225 - removed /etc/bacula/fd script from all packages as it has disappeared from 1.35.2
1226 - updated depgkgs to 30Jul04
1227 * Thu Jun 24 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1228 - really, really fix symlink creation for gconsole
1229 * Thu Jun 17 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1230 - fix symlink creation in gconsole post install
1231 * Sat Jun 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1232 - fixed error in gconsole post script
1233 * Fri Apr 30 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1234 - add check for gconsole symlink before trying to create it
1235 * Sun Apr 11 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1236 - fix some minor permissions issues on doc files that CVS won't let us fix
1237 * Sun Apr 04 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1238 - add pkgconfig to BuildRequires
1239 - clean up gnome1/2 menu entries for appropriate packages
1240 * Fri Apr 02 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1241 - tightened up doc distribution
1242 * Tue Mar 30 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1243 - added usermode (Redhat) and xsu (SuSE) support for gnome-console;
1244 - rpm's horrible bug that prevents nested conditional macros prevents me
1245 - from implementing these 2 separate approaches within the conditionals which
1246 - create the separate server packages.
1247 - the solution adopted is to remove the gnome-console files from the server packages
1248 - so bacula-gconsole is now an add on for both client and server packages.
1249 - this also now allows the server packages to be install on machines without
1250 - an X-server and we can still maintain a single spec file.
1251 - added tests to make sure we have defined platform and database macros.
1252 * Sat Mar 13 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1253 - corrected mysql prerequisites for suse
1254 * Mon Mar 1 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1255 - replaced all cp commands with cp -p
1256 - removed addition of a+x permissions on gnome-console
1257 - corrected permissions on init scripts
1258 * Sat Feb 28 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1259 - corrected creation of sqlite_bindir in install from !mysql to sqlite
1260 -
1261 - various cleanup patches from Michael K. Johnson:
1262 - corrected post install routines for nicer chkconfig
1263 - removed chmod changes in post routines and moved to install section
1264 - removed interactive nature of post routine for rescue package
1265 - added description of building rescue disks to the description of rescue package
1266 - added clean of build root to beginning of install
1267 - removed specifying attr in all file lists
1268 * Fri Feb 20 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1269 - added bconsole to client package
1270 - added gconsole package as add-on to client
1271 - removed spurious dependancies on updatedb package (!cut/paste)
1272 * Thu Feb 19 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1273 - added updatedb package
1274 * Thu Feb 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1275 - added postgresql package
1276 * Wed Feb 11 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1277 - corrected the if else logic in the dependancy sections
1278 - changes for 1.34 release
1279 - /etc/bacula/console is now /etc/bacula/bconsole
1280 - /etc/bacula/console.conf is now /etc/bacula/bconsole.conf
1281 - /usr/sbin/btraceback.gdb is now /etc/bacula/btraceback.gdb
1282 - /usr/sbin/smtp is now /usr/sbin/bsmtp
1283 - added new /etc/bacula/drop_mysql_database
1284 - added new /etc/bacula/drop_sqlite_database
1285 - added new /etc/bacula/grant_sqlite_privileges
1286 - added new generic bacula database scripts in /etc/bacula
1287 - added pre-install sections to check for database versions older than 6
1288 - added check for /etc/bacula/console.conf and copy to bconsole.conf
1289 * Sun Feb 08 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1290 - added /etc/bacula/update_sqlite_tables and /etc/bacula/update_mysql_tables for 1.34 release
1291 - added testing for existing databases before executing any of the database creation scripts
1292 - added defines working_dir and sqlite_bindir in place of hard coded paths
1293 * Sat Jan 31 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1294 - added build configuration for SuSE.
1295 - Thanks to Matt Vollmar <matt at panamschool.edu.sv> for his input
1296 * Sat Jan 24 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1297 - added patch for create_sqlite_database to fix the installed bindir
1298 - added execute of create_sqlite_database to post of sqlite package
1299 * Sat Jan 10 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1300 - added virtual package Provides bacula-dir, bacula-sd, bacula-fd
1301 - added bacula-fd as Requires for rescue package
1302 - added build tag for Fedora Core 1
1303 - cleaned up dependancies for all builds
1304 * Thu Jan 1 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1305 - removed rh_version from package names
1306 - added platform build configuration section to beginning of file
1307 * Tue Nov 25 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1308 - removed make_static_bacula script from rescue package install
1309 * Sun Nov 23 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1310 - Added define at top of file for depkgs version
1311 - Added rescue sub-package
1312 - Moved requires statements into proper sub-package locations
1313 * Mon Oct 27 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1314 - Corrected Requires for Gnome 1.4/2.0 builds
1315 * Fri Oct 24 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1316 - Added separate source declaration for depkgs
1317 - added patch for make_catalog_backup script
1318 * Mon May 11 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1319 - Misc changes to mysql/sqlite build and rh7/8 menu differences
1320 - Added rh_version to sub-package names
1321 - Added installed but missing file /etc/bacula/gconsole
1322 - rm'd /etc/bacula/grant_mysql_privileges on sqlite builds
1323 * Thu May 08 2003 Kern Sibbald <kern at sibbald.com>
1324 - Update spec for version 1.31 and combine client
1325 * Sun Mar 30 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1326 - Initial spec file