]> git.sur5r.net Git - bacula/bacula/blob - bacula/platforms/redhat/bacula.spec.in
Clean up menu entries in rpm spec.
[bacula/bacula] / bacula / platforms / redhat / bacula.spec.in
1 # Platform Build Configuration
2
3 # basic defines for every build
4 %define depkgs ../depkgs
5 %define depkgs_version 24Jul03
6 %define tomsrtbt tomsrtbt-2.0.103
7 %define sqlite_bindir /usr/lib/sqlite
8 %define working_dir /var/bacula
9
10 # platform defines - set one below or define the build_xxx on the command line
11 # RedHat builds
12 %define rh7 0
13 %{?build_rh7:%define rh7 1}
14 %define rh8 0
15 %{?build_rh8:%define rh8 1}
16 %define rh9 0
17 %{?build_rh9:%define rh9 1}
18 # Fedora Core 1 build
19 %define fc1 0
20 %{?build_fc1:%define fc1 1}
21 # Whitebox Enterprise build
22 # this should also work for RHEL
23 %define wb3 0
24 %{?build_wb3:%define wb3 1}
25 # SuSE build
26 # this is known to build on SuSE 8.2 and 9.0
27 %define su9 0
28 %{?build_su9:%define su9 1}
29
30 # test for a platform definition
31 %if ! %{rh7} && ! %{rh8} && ! %{rh9} && ! %{fc1} && ! %{wb3} && ! %{su9}
32 %{error: You must specify a platform. Please examine the spec file.}
33 exit 1
34 %endif
35
36 # database defines
37 # set for database support desired or define the build_xxx on the command line
38 %define mysql 0
39 %{?build_mysql:%define mysql 1}
40 %define sqlite 0
41 %{?build_sqlite:%define sqlite 1}
42 %define postgresql 0
43 %{?build_postgresql:%define postgresql 1}
44
45 # test for a database definition
46 %if ! %{mysql} && ! %{sqlite} && ! %{postgresql}
47 %{error: You must specify database support. Please examine the spec file.}
48 exit 1
49 %endif
50
51 Summary: Bacula - The Network Backup Solution
52 Name: bacula
53 Version: @VERSION@
54 Release: 1
55 Group: System Environment/Daemons
56 Copyright: GPL v2
57 Source0:http://www.prdownloads.sourceforge.net/bacula/%{name}-%{version}.tar.gz
58 Source1:http://www.prdownloads.sourceforge.net/bacula/depkgs-%{depkgs_version}.tar.gz
59 Source2:http://www.tux.org/pub/distributions/tinylinux/tomsrtbt/%{tomsrtbt}.tar.gz
60 Source3: Release_Notes-%{version}-%{release}.tar.gz
61 BuildRoot: %{_tmppath}/%{name}-root
62 URL: http://www.bacula.org/
63 Vendor: The Bacula Team
64 Distribution: The Bacula Team
65 Packager: D. Scott Barninger <barninger@fairfieldcomputers.com>
66 BuildRequires: readline-devel, atk-devel, ncurses-devel, pango-devel
67 BuildRequires: libstdc++-devel, libxml2-devel, zlib-devel, pkgconfig
68 %if %{rh7}
69 BuildRequires: libtermcap-devel
70 BuildRequires: gtk+-devel >= 1.2
71 BuildRequires: gnome-libs-devel >= 1.4
72 BuildRequires: glibc-devel >= 2.2
73 BuildRequires: ORBit-devel
74 BuildRequires: bonobo-devel
75 BuildRequires: GConf-devel
76 %endif
77 %if %{su9}
78 BuildRequires: termcap
79 BuildRequires: gtk2-devel >= 2.0
80 BuildRequires: libgnomeui-devel >= 2.0
81 BuildRequires: glibc-devel >= 2.3
82 BuildRequires: ORBit2-devel
83 BuildRequires: libart_lgpl-devel >= 2.0
84 BuildRequires: libbonobo-devel >= 2.0
85 BuildRequires: libbonoboui-devel >= 2.0
86 BuildRequires: bonobo-activation-devel
87 BuildRequires: gconf2-devel
88 BuildRequires: linc-devel
89 %endif
90 %if ! %{rh7} && ! %{su9}
91 BuildRequires: libtermcap-devel
92 BuildRequires: gtk2-devel >= 2.0
93 BuildRequires: libgnomeui-devel >= 2.0
94 BuildRequires: glibc-devel >= 2.3
95 BuildRequires: ORBit2-devel
96 BuildRequires: libart_lgpl-devel >= 2.0
97 BuildRequires: libbonobo-devel >= 2.0
98 BuildRequires: libbonoboui-devel >= 2.0
99 BuildRequires: bonobo-activation-devel
100 BuildRequires: GConf2-devel
101 BuildRequires: linc-devel
102 %endif
103
104 %if %{mysql}
105 BuildRequires: mysql-devel >= 3.23
106 %endif
107
108 %if %{postgresql} && %{wb3}
109 BuildRequires: rh-postgresql-devel >= 7
110 %endif
111
112 %if %{postgresql} && ! %{wb3}
113 BuildRequires: postgresql-devel >= 7
114 %endif
115
116 %description
117 Bacula - It comes by night and sucks the vital essence from your computers.
118
119 Bacula is a set of computer programs that permit you (or the system 
120 administrator) to manage backup, recovery, and verification of computer 
121 data across a network of computers of different kinds. In technical terms, 
122 it is a network client/server based backup program. Bacula is relatively 
123 easy to use and efficient, while offering many advanced storage management 
124 features that make it easy to find and recover lost or damaged files. 
125 Bacula source code has been released under the GPL version 2 license.
126
127 %if %{mysql}
128 %package mysql
129 %endif
130 %if %{sqlite}
131 %package sqlite
132 %endif
133 %if %{postgresql}
134 %package postgresql
135 %endif
136
137 Summary: Bacula - The Network Backup Solution
138 Group: System Environment/Daemons
139 Provides: bacula-dir, bacula-sd, bacula-fd, bacula-server
140 Conflicts: bacula-client
141 Requires: readline, ncurses, libstdc++, zlib
142 %if %{rh7}
143 Requires: glibc >= 2.2
144 Requires: libtermcap
145 %endif
146 %if %{su9}
147 Requires: glibc >= 2.3
148 Requires: termcap
149 %endif
150 %if ! %{rh7} && ! %{su9}
151 Requires: glibc >= 2.3
152 Requires: libtermcap
153 %endif
154 %if %{mysql} && ! %{su9}
155 Requires: mysql >= 3.23
156 Requires: mysql-server >= 3.23
157 %endif
158 %if %{mysql} && %{su9}
159 Requires: mysql >= 3.23
160 Requires: mysql-client >= 3.23
161 %endif
162 %if %{postgresql} && %{wb3}
163 Requires: rh-postgresql >= 7
164 Requires: rh-postgresql-server >= 7
165 %endif
166 %if %{postgresql} && ! %{wb3}
167 Requires: postgresql >= 7
168 Requires: postgresql-server >= 7
169 %endif
170
171 %if %{mysql}
172 %description mysql
173 %endif
174 %if %{sqlite}
175 %description sqlite
176 %endif
177 %if %{postgresql}
178 %description postgresql
179 %endif
180
181 Bacula - It comes by night and sucks the vital essence from your computers.
182
183 Bacula is a set of computer programs that permit you (or the system 
184 administrator) to manage backup, recovery, and verification of computer 
185 data across a network of computers of different kinds. In technical terms, 
186 it is a network client/server based backup program. Bacula is relatively 
187 easy to use and efficient, while offering many advanced storage management 
188 features that make it easy to find and recover lost or damaged files. 
189 Bacula source code has been released under the GPL version 2 license.
190
191 %if %{mysql}
192 This build requires MySQL to be installed separately as the catalog database.
193 %endif
194 %if %{postgresql}
195 This build requires PostgreSQL to be installed separately as the catalog database.
196 %endif
197 %if %{sqlite}
198 This build incorporates sqlite as the catalog database, statically compiled.
199 %endif
200
201 %package client
202 Summary: Bacula - The Network Backup Solution
203 Group: System Environment/Daemons
204 Provides: bacula-fd
205 Requires: readline, libstdc++, zlib
206
207 %if %{rh7}
208 Requires: glibc >= 2.2
209 Requires: libtermcap
210 %endif
211 %if %{su9}
212 Requires: glibc >= 2.3
213 Requires: termcap
214 %endif
215 %if ! %{rh7} && ! %{su9}
216 Requires: glibc >= 2.3
217 Requires: libtermcap
218 %endif
219
220 %description client
221 Bacula - It comes by night and sucks the vital essence from your computers.
222
223 Bacula is a set of computer programs that permit you (or the system 
224 administrator) to manage backup, recovery, and verification of computer 
225 data across a network of computers of different kinds. In technical terms, 
226 it is a network client/server based backup program. Bacula is relatively 
227 easy to use and efficient, while offering many advanced storage management 
228 features that make it easy to find and recover lost or damaged files. 
229 Bacula source code has been released under the GPL version 2 license.
230
231 This is the File daemon (Client) only package. It includes the command line 
232 console program.
233
234 %package rescue
235
236 Summary: Bacula - The Network Backup Solution
237 Group: System Environment/Daemons
238 Requires: coreutils, util-linux, libc5, bacula-fd
239
240 %description rescue
241 Bacula - It comes by night and sucks the vital essence from your computers.
242
243 Bacula is a set of computer programs that permit you (or the system 
244 administrator) to manage backup, recovery, and verification of computer 
245 data across a network of computers of different kinds. In technical terms, 
246 it is a network client/server based backup program. Bacula is relatively 
247 easy to use and efficient, while offering many advanced storage management 
248 features that make it easy to find and recover lost or damaged files. 
249 Bacula source code has been released under the GPL version 2 license.
250
251 This package installs scripts for disaster recovery and builds rescue 
252 floppy disks for bare metal recovery. This package includes tomsrtbt
253 (http://www.toms.net/rb/, by Tom Oehser, Tom@Toms.NET) to provide a tool
254 to build a boot floppy disk.
255
256 You need to have the bacula-sqlite, bacula-mysql, bacula-postgresql or 
257 bacula-client package for your platform installed and configured before 
258 installing this package.
259
260 To create a boot disk run "./getdiskinfo" from the /etc/bacula/rescue
261 directory (this is done when the package is first installed), 
262 then run "./install.s" from the /etc/bacula/rescue/tomsrtbt/
263 directory. To make the bacula rescue disk run
264 "./make_rescue_disk --copy-static-bacula --copy-etc-files"
265 from the /etc/bacula/rescue directory. To recreate the rescue
266 information for this system run ./getdiskinfo again.
267
268 %package updatedb
269
270 Summary: Bacula - The Network Backup Solution
271 Group: System Environment/Daemons
272
273 %description updatedb
274 Bacula - It comes by night and sucks the vital essence from your computers.
275
276 Bacula is a set of computer programs that permit you (or the system 
277 administrator) to manage backup, recovery, and verification of computer 
278 data across a network of computers of different kinds. In technical terms, 
279 it is a network client/server based backup program. Bacula is relatively 
280 easy to use and efficient, while offering many advanced storage management 
281 features that make it easy to find and recover lost or damaged files. 
282 Bacula source code has been released under the GPL version 2 license.
283
284 This package installs scripts for updating older versions of the bacula
285 database.
286
287 %package gconsole
288 Summary: Bacula - The Network Backup Solution
289 Group: System Environment/Daemons
290 Requires: readline, atk, libstdc++, zlib, pango, libxml2, bacula-fd
291
292 %if %{rh7}
293 Requires: gtk+ >= 1.2
294 Requires: gnome-libs >= 1.4
295 Requires: glibc >= 2.2
296 Requires: ORBit
297 Requires: bonobo
298 Requires: GConf
299 %endif
300 %if %{su9}
301 Requires: gtk2 >= 2.0
302 Requires: libgnomeui >= 2.0
303 Requires: glibc >= 2.3
304 Requires: ORBit2
305 Requires: libart_lgpl >= 2.0
306 Requires: libbonobo >= 2.0
307 Requires: libbonoboui >= 2.0
308 Requires: bonobo-activation
309 Requires: gconf2
310 Requires: linc
311 %endif
312 %if ! %{rh7} && ! %{su9}
313 Requires: gtk2 >= 2.0
314 Requires: libgnomeui >= 2.0
315 Requires: glibc >= 2.3
316 Requires: ORBit2
317 Requires: libart_lgpl >= 2.0
318 Requires: libbonobo >= 2.0
319 Requires: libbonoboui >= 2.0
320 Requires: bonobo-activation
321 Requires: GConf2
322 Requires: linc
323 %endif
324 %if %{su9}
325 Requires: xsu
326 %else
327 Requires: usermode
328 %endif
329
330 %description gconsole
331 Bacula - It comes by night and sucks the vital essence from your computers.
332
333 Bacula is a set of computer programs that permit you (or the system 
334 administrator) to manage backup, recovery, and verification of computer 
335 data across a network of computers of different kinds. In technical terms, 
336 it is a network client/server based backup program. Bacula is relatively 
337 easy to use and efficient, while offering many advanced storage management 
338 features that make it easy to find and recover lost or damaged files. 
339 Bacula source code has been released under the GPL version 2 license.
340
341 This is the Gnome Console package. It is an add-on to the client or
342 server packages.
343
344 %prep
345
346 %setup -b 1
347 %setup -b 2
348 %setup -b 3
349
350 %build
351
352 %if %{su9}
353 export LDFLAGS="-L/usr/lib/termcap"
354 %endif
355
356 cwd=${PWD}
357 cd %{depkgs}
358 %if %{sqlite}
359 make sqlite
360 %endif
361 make mtx
362 cd ${cwd}
363
364 # patches for the bundled sqlite scripts
365
366 # patch the make_sqlite_tables script for installation bindir
367 patch src/cats/make_sqlite_tables.in src/cats/make_sqlite_tables.in.patch
368
369 # patch the create_sqlite_database script for installation bindir
370 patch src/cats/create_sqlite_database.in src/cats/create_sqlite_database.in.patch
371
372 # patch the make_catalog_backup script for installation bindir
373 patch src/cats/make_catalog_backup.in src/cats/make_catalog_backup.in.patch
374
375 # patch the update_sqlite_tables script for installation bindir
376 patch src/cats/update_sqlite_tables.in src/cats/update_sqlite_tables.in.patch
377
378 %configure \
379         --prefix=/usr \
380         --sbindir=/usr/sbin \
381         --sysconfdir=/etc/bacula \
382         --with-scriptdir=/etc/bacula \
383         --enable-smartalloc \
384         --enable-gnome \
385         --enable-static-fd \
386 %if %{mysql}
387         --with-mysql \
388 %endif
389 %if %{sqlite}
390         --with-sqlite=${cwd}/../depkgs/sqlite \
391 %endif
392 %if %{postgresql}
393         --with-postgresql \
394 %endif
395         --with-working-dir=%{working_dir} \
396         --with-pid-dir=/var/run \
397         --with-subsys-dir=/var/lock/subsys
398 make
399
400 cd src/filed
401 strip static-bacula-fd
402 cd ../../
403
404 %install
405  
406 cwd=${PWD}
407 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
408 mkdir -p $RPM_BUILD_ROOT/etc/init.d
409 mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
410 mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps
411 %if %{rh7}
412 mkdir -p $RPM_BUILD_ROOT/usr/share/gnome/apps/System
413 %else
414 mkdir -p $RPM_BUILD_ROOT/usr/share/applications
415 %endif
416 mkdir -p $RPM_BUILD_ROOT/etc/bacula/rescue
417 mkdir -p $RPM_BUILD_ROOT/etc/bacula/rescue/tomsrtbt
418 mkdir -p $RPM_BUILD_ROOT/etc/bacula/updatedb
419 %if ! %{su9}
420 mkdir -p $RPM_BUILD_ROOT/etc/pam.d
421 mkdir -p $RPM_BUILD_ROOT/etc/security/console.apps
422 %endif
423
424 %if %{sqlite}
425 mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir}
426 %endif
427
428 make \
429         prefix=$RPM_BUILD_ROOT/usr \
430         sbindir=$RPM_BUILD_ROOT/usr/sbin \
431         sysconfdir=$RPM_BUILD_ROOT/etc/bacula \
432         scriptdir=$RPM_BUILD_ROOT/etc/bacula \
433         working_dir=$RPM_BUILD_ROOT%{working_dir} \
434         install
435
436 cd %{depkgs}
437 make \
438         prefix=$RPM_BUILD_ROOT/usr \
439         sbindir=$RPM_BUILD_ROOT/usr/sbin \
440         sysconfdir=$RPM_BUILD_ROOT/etc/bacula \
441         working_dir=$RPM_BUILD_ROOT%{working_dir} \
442         mandir=$RPM_BUILD_ROOT/usr/man \
443         mtx-install
444 cd ${cwd}
445
446 # setup the manual for the doc dir
447 mkdir html-manual
448 cp -p doc/html-manual/*.html html-manual/
449 cp -p doc/html-manual/*.jpg html-manual/
450 cp -p doc/html-manual/*.gif html-manual/
451 cp -p doc/html-manual/*.css html-manual/
452
453 # fixme - make installs the mysql scripts for sqlite build
454 %if %{sqlite}
455 rm -f $RPM_BUILD_ROOT/etc/bacula/startmysql
456 rm -f $RPM_BUILD_ROOT/etc/bacula/stopmysql
457 rm -f $RPM_BUILD_ROOT/etc/bacula/grant_mysql_privileges
458 %endif
459
460 # fixme - make installs the mysql scripts for postgresql build
461 %if %{postgresql}
462 rm -f $RPM_BUILD_ROOT/etc/bacula/startmysql
463 rm -f $RPM_BUILD_ROOT/etc/bacula/stopmysql
464 %endif
465
466 # install the init scripts
467 %if %{su9}
468 cp -p platforms/suse/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
469 cp -p platforms/suse/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
470 cp -p platforms/suse/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
471 %else
472 cp -p platforms/redhat/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
473 cp -p platforms/redhat/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
474 cp -p platforms/redhat/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
475 %endif
476 chmod 0754 $RPM_BUILD_ROOT/etc/init.d/*
477
478 # install the menu stuff
479 %if %{su9}
480 cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png
481 cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop
482 %endif
483 %if %{rh7}
484 cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png
485 cp -p scripts/bacula.desktop.gnome1.consolehelper $RPM_BUILD_ROOT/usr/share/gnome/apps/System/bacula.desktop
486 cp -p scripts/gnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/gnome-console
487 cp -p scripts/gnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/gnome-console
488 %endif
489 %if %{rh8} || %{rh9} || %{wb3} || %{fc1}
490 cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png
491 cp -p scripts/bacula.desktop.gnome2.consolehelper $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop
492 cp -p scripts/gnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/gnome-console
493 cp -p scripts/gnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/gnome-console
494 %endif
495
496 # install sqlite
497 %if %{sqlite}
498 cp -p ../depkgs/sqlite/sqlite $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite
499 cp -p ../depkgs/sqlite/sqlite.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite.h
500 cp -p ../depkgs/sqlite/libsqlite.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite.a
501 %endif
502
503 # install the logrotate file
504 cp -p scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula
505
506 # install the rescue stuff
507 # these are the rescue scripts
508 cp -p rescue/linux/backup.etc.list $RPM_BUILD_ROOT/etc/bacula/rescue/
509 cp -p rescue/linux/format_floppy $RPM_BUILD_ROOT/etc/bacula/rescue/
510 cp -p rescue/linux/getdiskinfo $RPM_BUILD_ROOT/etc/bacula/rescue/
511 cp -p rescue/linux/make_rescue_disk $RPM_BUILD_ROOT/etc/bacula/rescue/
512 cp -p rescue/linux/restore_bacula $RPM_BUILD_ROOT/etc/bacula/rescue/
513 cp -p rescue/linux/restore_etc $RPM_BUILD_ROOT/etc/bacula/rescue/
514 cp -p rescue/linux/run_grub $RPM_BUILD_ROOT/etc/bacula/rescue/
515 cp -p rescue/linux/run_lilo $RPM_BUILD_ROOT/etc/bacula/rescue/
516 cp -p rescue/linux/sfdisk.bz2 $RPM_BUILD_ROOT/etc/bacula/rescue/
517
518 # this is the static file daemon
519 cp -p src/filed/static-bacula-fd $RPM_BUILD_ROOT/etc/bacula/rescue/bacula-fd
520
521 # this is the tom's root boot disk
522 cp -p ../%{tomsrtbt}/* $RPM_BUILD_ROOT/etc/bacula/rescue/tomsrtbt/
523
524 # install the updatedb scripts
525 cp -p updatedb/* $RPM_BUILD_ROOT/etc/bacula/updatedb/
526
527 # now clean up permissions that are left broken by the install
528 chmod o-r $RPM_BUILD_ROOT/etc/bacula/query.sql
529 chmod o-rwx $RPM_BUILD_ROOT/var/bacula
530
531 %clean
532 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
533
534 %if %{mysql}
535
536 %files mysql
537 %defattr(-,root,root)
538
539 /etc/bacula/bacula
540 /etc/bacula/bconsole
541 /etc/bacula/fd
542 /etc/bacula/create_mysql_database
543 /etc/bacula/drop_mysql_database
544 /etc/bacula/make_mysql_tables
545 /etc/bacula/drop_mysql_tables
546 /etc/bacula/update_mysql_tables
547 /etc/bacula/grant_mysql_privileges
548 /etc/bacula/create_bacula_database
549 /etc/bacula/drop_bacula_database
550 /etc/bacula/grant_bacula_privileges
551 /etc/bacula/make_bacula_tables
552 /etc/bacula/drop_bacula_tables
553 /etc/bacula/update_bacula_tables
554 /etc/bacula/make_catalog_backup
555 /etc/bacula/delete_catalog_backup
556 /etc/bacula/startmysql
557 /etc/bacula/stopmysql
558 /etc/bacula/mtx-changer
559 /etc/init.d/bacula-dir
560 /etc/init.d/bacula-fd
561 /etc/init.d/bacula-sd
562
563 %doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt
564 /usr/man/man1/*
565
566 /etc/logrotate.d/bacula
567
568 %config(noreplace) /etc/bacula/bacula-dir.conf
569 %config(noreplace) /etc/bacula/bacula-fd.conf
570 %config(noreplace) /etc/bacula/bacula-sd.conf
571 %config(noreplace) /etc/bacula/bconsole.conf
572 /etc/bacula/query.sql
573 %dir %{working_dir}
574
575 /usr/sbin/bacula-dir
576 /usr/sbin/bacula-fd
577 /usr/sbin/bacula-sd
578 /usr/sbin/bcopy
579 /usr/sbin/bextract
580 /usr/sbin/bls
581 /usr/sbin/bscan
582 /usr/sbin/btape
583 /usr/sbin/btraceback
584 /usr/sbin/bconsole
585 /usr/sbin/dbcheck
586 /usr/sbin/loaderinfo
587 /usr/sbin/mtx
588 /usr/sbin/scsitape
589 /usr/sbin/bsmtp
590 /usr/sbin/tapeinfo
591 /usr/sbin/static-bacula-fd
592 /etc/bacula/btraceback.gdb
593
594 %pre mysql
595 # test for bacula database older than version 6
596 # note: this ASSUMES no password has been set for bacula database
597 DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null`
598
599 if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "6" ]; then
600         echo "This bacula upgrade will update a bacula database from version 6 to 7."
601         echo "You appear to be running database version $DB_VER. You must first update"
602         echo "your database to version 6 and then install this upgrade. The alternative"
603         echo "is to use /etc/bacula/drop_mysql_tables to delete all your your current"
604         echo "catalog information, then do the upgrade. Information on updating a"
605         echo "database older than version 6 can be found in the release notes."
606         exit 1
607 fi
608 # check for and copy /etc/bacula/console.conf to bconsole.conf
609 if [ -s /etc/bacula/console.conf ];then
610         cp -p /etc/bacula/console.conf /etc/bacula/bconsole.conf
611 fi
612
613 %post mysql
614
615 # add our links
616 if [ "$1" -ge 1 ] ; then
617 /sbin/chkconfig --add bacula-dir
618 /sbin/chkconfig --add bacula-fd
619 /sbin/chkconfig --add bacula-sd
620 fi
621
622 # test for an existing database
623 # note: this ASSUMES no password has been set for bacula database
624 DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null`
625
626 # grant privileges and create tables if they do not exist
627 if [ -z "$DB_VER" ]; then
628         echo "Hmm, doesn't look like you have an existing database."
629         echo "Granting privileges for MySQL user bacula..."
630         /etc/bacula/grant_mysql_privileges
631         echo "Creating MySQL bacula database..."
632         /etc/bacula/create_mysql_database
633         echo "Creating bacula tables..."
634         /etc/bacula/make_mysql_tables
635
636 # check to see if we need to upgrade a 1.32 or lower database
637 elif [ "$DB_VER" -lt "7" ]; then
638         echo "This release requires an upgrade to your bacula database."
639         echo "Backing up your current database..."
640         mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
641         echo "Upgrading bacula database ..."
642         /etc/bacula/update_mysql_tables
643         echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
644
645 fi
646
647 %preun mysql
648 # delete our links
649 if [ $1 = 0 ]; then
650 /sbin/chkconfig --del bacula-dir
651 /sbin/chkconfig --del bacula-fd
652 /sbin/chkconfig --del bacula-sd
653 fi
654
655 %endif
656
657 %if %{sqlite}
658
659 %files sqlite
660 %defattr(-,root,root)
661
662 /etc/bacula/bacula
663 /etc/bacula/bconsole
664 /etc/bacula/fd
665 /etc/bacula/create_bacula_database
666 /etc/bacula/drop_bacula_database
667 /etc/bacula/grant_bacula_privileges
668 /etc/bacula/make_bacula_tables
669 /etc/bacula/drop_bacula_tables
670 /etc/bacula/update_bacula_tables
671 /etc/bacula/create_sqlite_database
672 /etc/bacula/drop_sqlite_database
673 /etc/bacula/grant_sqlite_privileges
674 /etc/bacula/make_sqlite_tables
675 /etc/bacula/drop_sqlite_tables
676 /etc/bacula/update_sqlite_tables
677 /etc/bacula/make_catalog_backup
678 /etc/bacula/delete_catalog_backup
679 /etc/bacula/mtx-changer
680 /etc/init.d/bacula-dir
681 /etc/init.d/bacula-fd
682 /etc/init.d/bacula-sd
683
684 %doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt
685 /usr/man/man1/*
686
687 /etc/logrotate.d/bacula
688
689 %config(noreplace) /etc/bacula/bacula-dir.conf
690 %config(noreplace) /etc/bacula/bacula-fd.conf
691 %config(noreplace) /etc/bacula/bacula-sd.conf
692 %config(noreplace) /etc/bacula/bconsole.conf
693 /etc/bacula/query.sql
694 %{sqlite_bindir}/libsqlite.a
695 %{sqlite_bindir}/sqlite.h
696 %dir %{working_dir}
697
698 /usr/sbin/bacula-dir
699 /usr/sbin/bacula-fd
700 /usr/sbin/bacula-sd
701 /usr/sbin/bcopy
702 /usr/sbin/bextract
703 /usr/sbin/bls
704 /usr/sbin/bscan
705 /usr/sbin/btape
706 /usr/sbin/btraceback
707 /usr/sbin/bconsole
708 /usr/sbin/dbcheck
709 /usr/sbin/loaderinfo
710 /usr/sbin/mtx
711 /usr/sbin/scsitape
712 /usr/sbin/bsmtp
713 /usr/sbin/tapeinfo
714 /usr/sbin/static-bacula-fd
715 %{sqlite_bindir}/sqlite
716 /etc/bacula/btraceback.gdb
717
718 %pre sqlite
719 # test for bacula database older than version 6
720 if [ -s %{working_dir}/bacula.db ];then
721         DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | tail -n 1 2>/dev/null`
722         if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "6" ]; then
723                 echo "This bacula upgrade will update a bacula database from version 6 to 7."
724                 echo "You appear to be running database version $DB_VER. You must first update"
725                 echo "your database to version 6 and then install this upgrade. The alternative"
726                 echo "is to use /etc/bacula/drop_sqlite_tables to delete all your your current"
727                 echo "catalog information, then do the upgrade. Information on updating a"
728                 echo "database older than version 6 can be found in the release notes."
729                 exit 1
730         fi
731 fi
732 # check for and copy /etc/bacula/console.conf to bconsole.conf
733 if [ -s /etc/bacula/console.conf ];then
734         cp -p /etc/bacula/console.conf /etc/bacula/bconsole.conf
735 fi
736
737 %post sqlite
738 # add our links
739 if [ "$1" -ge 1 ] ; then
740 /sbin/chkconfig --add bacula-dir
741 /sbin/chkconfig --add bacula-fd
742 /sbin/chkconfig --add bacula-sd
743 fi
744
745 # test for an existing database
746 if [ -s %{working_dir}/bacula.db ]; then
747         DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | tail -n 1 2>/dev/null`
748         # check to see if we need to upgrade a 1.32 or lower database
749         if [ "$DB_VER" -lt "7" ]; then
750                 echo "This release requires an upgrade to your bacula database."
751                 echo "Backing up your current database..."
752                 echo ".dump" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | bzip2 > %{working_dir}/bacula_backup.sql.bz2
753                 echo "Upgrading bacula database ..."
754                 /etc/bacula/update_sqlite_tables
755                 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
756         fi
757 else
758         # create the database and tables
759         echo "Hmm, doesn't look like you have an existing database."
760         echo "Creating SQLite database..."
761         /etc/bacula/create_sqlite_database
762         echo "Creating the SQLite tables..."
763         /etc/bacula/make_sqlite_tables
764 fi
765
766 %preun sqlite
767 # delete our links
768 if [ $1 = 0 ]; then
769 /sbin/chkconfig --del bacula-dir
770 /sbin/chkconfig --del bacula-fd
771 /sbin/chkconfig --del bacula-sd
772 fi
773
774 %endif
775
776 %if %{postgresql}
777
778 %files postgresql
779 %defattr(-,root,root)
780
781 /etc/bacula/bacula
782 /etc/bacula/bconsole
783 /etc/bacula/fd
784 /etc/bacula/create_postgresql_database
785 /etc/bacula/drop_postgresql_database
786 /etc/bacula/make_postgresql_tables
787 /etc/bacula/drop_postgresql_tables
788 /etc/bacula/update_postgresql_tables
789 /etc/bacula/grant_postgresql_privileges
790 /etc/bacula/create_bacula_database
791 /etc/bacula/drop_bacula_database
792 /etc/bacula/grant_bacula_privileges
793 /etc/bacula/make_bacula_tables
794 /etc/bacula/drop_bacula_tables
795 /etc/bacula/update_bacula_tables
796 /etc/bacula/make_catalog_backup
797 /etc/bacula/delete_catalog_backup
798 /etc/bacula/mtx-changer
799 /etc/init.d/bacula-dir
800 /etc/init.d/bacula-fd
801 /etc/init.d/bacula-sd
802
803 %doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt
804 /usr/man/man1/*
805
806 /etc/logrotate.d/bacula
807
808 %config(noreplace) /etc/bacula/bacula-dir.conf
809 %config(noreplace) /etc/bacula/bacula-fd.conf
810 %config(noreplace) /etc/bacula/bacula-sd.conf
811 %config(noreplace) /etc/bacula/bconsole.conf
812 /etc/bacula/query.sql
813 %dir %{working_dir}
814
815 /usr/sbin/bacula-dir
816 /usr/sbin/bacula-fd
817 /usr/sbin/bacula-sd
818 /usr/sbin/bcopy
819 /usr/sbin/bextract
820 /usr/sbin/bls
821 /usr/sbin/bscan
822 /usr/sbin/btape
823 /usr/sbin/btraceback
824 /usr/sbin/bconsole
825 /usr/sbin/dbcheck
826 /usr/sbin/loaderinfo
827 /usr/sbin/mtx
828 /usr/sbin/scsitape
829 /usr/sbin/bsmtp
830 /usr/sbin/tapeinfo
831 /usr/sbin/static-bacula-fd
832 /etc/bacula/btraceback.gdb
833
834 %post postgresql
835 # add our links
836 if [ "$1" -ge 1 ] ; then
837 /sbin/chkconfig --add bacula-dir
838 /sbin/chkconfig --add bacula-fd
839 /sbin/chkconfig --add bacula-sd
840 fi
841
842 # test for an existing database
843 # note: this ASSUMES no password has been set for bacula database
844 DB_VER=`echo 'select * from Version;' | psql bacula | tail -3 | head -1 2>/dev/null`
845
846 # grant privileges and create tables if they do not exist
847 if [ -z "$DB_VER" ]; then
848         echo "Hmm, doesn't look like you have an existing database."
849         echo "Granting privileges for PostgreSQL user bacula..."
850         /etc/bacula/grant_postgresql_privileges
851         echo "Creating PostgreSQL bacula database..."
852         /etc/bacula/create_postgresql_database
853         echo "Creating bacula tables..."
854         /etc/bacula/make_postgresql_tables
855         
856
857 %preun postgresql
858 # delete our links
859 if [ $1 = 0 ]; then
860 /sbin/chkconfig --del bacula-dir
861 /sbin/chkconfig --del bacula-fd
862 /sbin/chkconfig --del bacula-sd
863 fi
864
865 %endif
866
867 %files client
868 %defattr(-,root,root)
869
870 /etc/bacula/fd
871 /etc/bacula/bconsole
872 /etc/init.d/bacula-fd
873
874 %doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt
875 /etc/logrotate.d/bacula
876
877 %config(noreplace) /etc/bacula/bacula-fd.conf
878 %config(noreplace) /etc/bacula/bconsole.conf
879 %dir %{working_dir}
880
881 /usr/sbin/bacula-fd
882 /usr/sbin/btraceback
883 /etc/bacula/btraceback.gdb
884 /usr/sbin/bsmtp
885 /usr/sbin/bconsole
886
887
888 %post client
889 # add our link
890 if [ "$1" -ge 1 ] ; then
891 /sbin/chkconfig --add bacula-fd
892 fi
893
894 %preun client
895 # delete our link
896 if [ $1 = 0 ]; then
897 /sbin/chkconfig --del bacula-fd
898 fi
899
900 %files rescue
901 %defattr(-,root,root)
902 /etc/bacula/rescue/backup.etc.list
903 /etc/bacula/rescue/format_floppy
904 /etc/bacula/rescue/getdiskinfo
905 /etc/bacula/rescue/make_rescue_disk
906 /etc/bacula/rescue/restore_bacula
907 /etc/bacula/rescue/restore_etc
908 /etc/bacula/rescue/run_grub
909 /etc/bacula/rescue/run_lilo
910 /etc/bacula/rescue/sfdisk.bz2
911 /etc/bacula/rescue/bacula-fd
912 /etc/bacula/rescue/tomsrtbt/*
913
914 %post rescue
915 # link our current installed conf file to the rescue directory
916 ln -s /etc/bacula-fd.conf /etc/bacula/rescue/bacula-fd.conf
917
918 # run getdiskinfo
919 echo "Creating rescue files for this system..."
920 cd /etc/bacula/rescue
921 ./getdiskinfo
922
923 %preun rescue
924 # remove the files created after the initial rpm installation
925 rm -f /etc/bacula/rescue/bacula-fd.conf
926 rm -f /etc/bacula/rescue/partition.*
927 rm -f /etc/bacula/rescue/format.*
928 rm -f /etc/bacula/rescue/mount_drives
929 rm -f /etc/bacula/rescue/start_network
930 rm -f /etc/bacula/rescue/sfdisk
931 rm -rf /etc/bacula/rescue/diskinfo/*
932
933 %files updatedb
934 %defattr(-,root,root)
935 /etc/bacula/updatedb/*
936
937 %post updatedb
938 echo "The database update scripts were installed to /etc/bacula/updatedb"
939
940 %files gconsole
941 %defattr(-,root,root)
942 /usr/sbin/gnome-console
943 /etc/bacula/gconsole
944 %config(noreplace) /etc/bacula/gnome-console.conf
945 /usr/share/pixmaps/bacula.png
946 %if %{rh7}
947 /usr/share/gnome/apps/System/bacula.desktop
948 %else
949 /usr/share/applications/bacula.desktop
950 %endif
951
952 %if ! %{su9} 
953 # add the console helper files
954 %config(noreplace,missingok) /etc/pam.d/gnome-console
955 %config(noreplace,missingok) /etc/security/console.apps/gnome-console
956
957 %post gconsole
958 # add gnome-console consolehelper link
959 ln -s /usr/bin/consolehelper /usr/bin/gnome-console
960
961 %postun gconsole
962 # remove gnome-console consolehelper link
963 rm -f /usr/bin/gnome-console
964 %endif
965
966 %changelog
967 * Sun Apr 04 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
968 - add pkgconfig to BuildRequires
969 - clean up gnome1/2 menu entries for appropriate packages
970 * Fri Apr 02 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
971 - tightened up doc distribution
972 * Tue Mar 30 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
973 - added usermode (Redhat) and xsu (SuSE) support for gnome-console;
974 - rpm's horrible bug that prevents nested conditional macros prevents me
975 - from implementing these 2 separate approaches within the conditionals which
976 - create the separate server packages.
977 - the solution adopted is to remove the gnome-console files from the server packages
978 - so bacula-gconsole is now an add on for both client and server packages.
979 - this also now allows the server packages to be install on machines without
980 - an X-server and we can still maintain a single spec file.
981 - added tests to make sure we have defined platform and database macros.
982 * Sat Mar 13 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
983 - corrected mysql prerequisites for suse
984 * Mon Mar 1 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
985 - replaced all cp commands with cp -p
986 - removed addition of a+x permissions on gnome-console
987 - corrected permissions on init scripts
988 * Sat Feb 28 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
989 - corrected creation of sqlite_bindir in install from !mysql to sqlite
990 -
991 - various cleanup patches from Michael K. Johnson:
992 - corrected post install routines for nicer chkconfig
993 - removed chmod changes in post routines and moved to install section
994 - removed interactive nature of post routine for rescue package
995 - added description of building rescue disks to the description of rescue package
996 - added clean of build root to beginning of install
997 - removed specifying attr in all file lists
998 * Fri Feb 20 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
999 - added bconsole to client package
1000 - added gconsole package as add-on to client
1001 - removed spurious dependancies on updatedb package (!cut/paste)
1002 * Thu Feb 19 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1003 - added updatedb package
1004 * Thu Feb 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1005 - added postgresql package
1006 * Wed Feb 11 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1007 - corrected the if else logic in the dependancy sections
1008 - changes for 1.34 release
1009 - /etc/bacula/console is now /etc/bacula/bconsole
1010 - /etc/bacula/console.conf is now /etc/bacula/bconsole.conf
1011 - /usr/sbin/btraceback.gdb is now /etc/bacula/btraceback.gdb
1012 - /usr/sbin/smtp is now /usr/sbin/bsmtp
1013 - added new /etc/bacula/drop_mysql_database
1014 - added new /etc/bacula/drop_sqlite_database
1015 - added new /etc/bacula/grant_sqlite_privileges
1016 - added new generic bacula database scripts in /etc/bacula
1017 - added pre-install sections to check for database versions older than 6
1018 - added check for /etc/bacula/console.conf and copy to bconsole.conf
1019 * Sun Feb 08 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1020 - added /etc/bacula/update_sqlite_tables and /etc/bacula/update_mysql_tables for 1.34 release
1021 - added testing for existing databases before executing any of the database creation scripts
1022 - added defines working_dir and sqlite_bindir in place of hard coded paths
1023 * Sat Jan 31 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1024 - added build configuration for SuSE.
1025 - Thanks to Matt Vollmar <matt at panamschool.edu.sv> for his input
1026 * Sat Jan 24 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1027 - added patch for create_sqlite_database to fix the installed bindir
1028 - added execute of create_sqlite_database to post of sqlite package
1029 * Sat Jan 10 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1030 - added virtual package Provides bacula-dir, bacula-sd, bacula-fd
1031 - added bacula-fd as Requires for rescue package
1032 - added build tag for Fedora Core 1
1033 - cleaned up dependancies for all builds
1034 * Thu Jan 1 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1035 - removed rh_version from package names
1036 - added platform build configuration section to beginning of file
1037 * Tue Nov 25 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1038 - removed make_static_bacula script from rescue package install
1039 * Sun Nov 23 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1040 - Added define at top of file for depkgs version
1041 - Added rescue sub-package
1042 - Moved requires statements into proper sub-package locations
1043 * Mon Oct 27 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1044 - Corrected Requires for Gnome 1.4/2.0 builds
1045 * Fri Oct 24 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1046 - Added separate source declaration for depkgs
1047 - added patch for make_catalog_backup script
1048 * Mon May 11 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1049 - Misc changes to mysql/sqlite build and rh7/8 menu differences
1050 - Added rh_version to sub-package names
1051 - Added installed but missing file /etc/bacula/gconsole
1052 - rm'd /etc/bacula/grant_mysql_privileges on sqlite builds
1053 * Thu May 08 2003 Kern Sibbald <kern at sibbald.com>
1054 - Update spec for version 1.31 and combine client
1055 * Sun Mar 30 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1056 - Initial spec file