]> git.sur5r.net Git - bacula/bacula/blob - bacula/platforms/redhat/bacula.spec.in
Update rpm spec, add pkgconfig to BuildRequires.
[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 mkdir -p $RPM_BUILD_ROOT/usr/share/gnome/apps/System
412 mkdir -p $RPM_BUILD_ROOT/usr/share/applications
413 mkdir -p $RPM_BUILD_ROOT/etc/bacula/rescue
414 mkdir -p $RPM_BUILD_ROOT/etc/bacula/rescue/tomsrtbt
415 mkdir -p $RPM_BUILD_ROOT/etc/bacula/updatedb
416 %if ! %{su9}
417 mkdir -p $RPM_BUILD_ROOT/etc/pam.d
418 mkdir -p $RPM_BUILD_ROOT/etc/security/console.apps
419 %endif
420
421 %if %{sqlite}
422 mkdir -p $RPM_BUILD_ROOT%{sqlite_bindir}
423 %endif
424
425 make \
426         prefix=$RPM_BUILD_ROOT/usr \
427         sbindir=$RPM_BUILD_ROOT/usr/sbin \
428         sysconfdir=$RPM_BUILD_ROOT/etc/bacula \
429         scriptdir=$RPM_BUILD_ROOT/etc/bacula \
430         working_dir=$RPM_BUILD_ROOT%{working_dir} \
431         install
432
433 cd %{depkgs}
434 make \
435         prefix=$RPM_BUILD_ROOT/usr \
436         sbindir=$RPM_BUILD_ROOT/usr/sbin \
437         sysconfdir=$RPM_BUILD_ROOT/etc/bacula \
438         working_dir=$RPM_BUILD_ROOT%{working_dir} \
439         mandir=$RPM_BUILD_ROOT/usr/man \
440         mtx-install
441 cd ${cwd}
442
443 # setup the manual for the doc dir
444 mkdir html-manual
445 cp -p doc/html-manual/*.html html-manual/
446 cp -p doc/html-manual/*.jpg html-manual/
447 cp -p doc/html-manual/*.gif html-manual/
448 cp -p doc/html-manual/*.css html-manual/
449
450 # fixme - make installs the mysql scripts for sqlite build
451 %if %{sqlite}
452 rm -f $RPM_BUILD_ROOT/etc/bacula/startmysql
453 rm -f $RPM_BUILD_ROOT/etc/bacula/stopmysql
454 rm -f $RPM_BUILD_ROOT/etc/bacula/grant_mysql_privileges
455 %endif
456
457 # fixme - make installs the mysql scripts for postgresql build
458 %if %{postgresql}
459 rm -f $RPM_BUILD_ROOT/etc/bacula/startmysql
460 rm -f $RPM_BUILD_ROOT/etc/bacula/stopmysql
461 %endif
462
463 # install the init scripts
464 %if %{su9}
465 cp -p platforms/suse/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
466 cp -p platforms/suse/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
467 cp -p platforms/suse/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
468 %else
469 cp -p platforms/redhat/bacula-dir $RPM_BUILD_ROOT/etc/init.d/bacula-dir
470 cp -p platforms/redhat/bacula-fd $RPM_BUILD_ROOT/etc/init.d/bacula-fd
471 cp -p platforms/redhat/bacula-sd $RPM_BUILD_ROOT/etc/init.d/bacula-sd
472 %endif
473 chmod 0754 $RPM_BUILD_ROOT/etc/init.d/*
474
475 # install the menu stuff
476 %if %{su9}
477 cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png
478 cp -p scripts/bacula.desktop.gnome1.xsu $RPM_BUILD_ROOT/usr/share/gnome/apps/System/bacula.desktop
479 cp -p scripts/bacula.desktop.gnome2.xsu $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop
480 %else
481 cp -p scripts/bacula.png $RPM_BUILD_ROOT/usr/share/pixmaps/bacula.png
482 cp -p scripts/bacula.desktop.gnome1.consolehelper $RPM_BUILD_ROOT/usr/share/gnome/apps/System/bacula.desktop
483 cp -p scripts/bacula.desktop.gnome2.consolehelper $RPM_BUILD_ROOT/usr/share/applications/bacula.desktop
484 cp -p scripts/gnome-console.console_apps $RPM_BUILD_ROOT/etc/security/console.apps/gnome-console
485 cp -p scripts/gnome-console.pamd $RPM_BUILD_ROOT/etc/pam.d/gnome-console
486 %endif
487
488 # install sqlite
489 %if %{sqlite}
490 cp -p ../depkgs/sqlite/sqlite $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite
491 cp -p ../depkgs/sqlite/sqlite.h $RPM_BUILD_ROOT%{sqlite_bindir}/sqlite.h
492 cp -p ../depkgs/sqlite/libsqlite.a $RPM_BUILD_ROOT%{sqlite_bindir}/libsqlite.a
493 %endif
494
495 # install the logrotate file
496 cp -p scripts/logrotate $RPM_BUILD_ROOT/etc/logrotate.d/bacula
497
498 # install the rescue stuff
499 # these are the rescue scripts
500 cp -p rescue/linux/backup.etc.list $RPM_BUILD_ROOT/etc/bacula/rescue/
501 cp -p rescue/linux/format_floppy $RPM_BUILD_ROOT/etc/bacula/rescue/
502 cp -p rescue/linux/getdiskinfo $RPM_BUILD_ROOT/etc/bacula/rescue/
503 cp -p rescue/linux/make_rescue_disk $RPM_BUILD_ROOT/etc/bacula/rescue/
504 cp -p rescue/linux/restore_bacula $RPM_BUILD_ROOT/etc/bacula/rescue/
505 cp -p rescue/linux/restore_etc $RPM_BUILD_ROOT/etc/bacula/rescue/
506 cp -p rescue/linux/run_grub $RPM_BUILD_ROOT/etc/bacula/rescue/
507 cp -p rescue/linux/run_lilo $RPM_BUILD_ROOT/etc/bacula/rescue/
508 cp -p rescue/linux/sfdisk.bz2 $RPM_BUILD_ROOT/etc/bacula/rescue/
509
510 # this is the static file daemon
511 cp -p src/filed/static-bacula-fd $RPM_BUILD_ROOT/etc/bacula/rescue/bacula-fd
512
513 # this is the tom's root boot disk
514 cp -p ../%{tomsrtbt}/* $RPM_BUILD_ROOT/etc/bacula/rescue/tomsrtbt/
515
516 # install the updatedb scripts
517 cp -p updatedb/* $RPM_BUILD_ROOT/etc/bacula/updatedb/
518
519 # now clean up permissions that are left broken by the install
520 chmod o-r $RPM_BUILD_ROOT/etc/bacula/query.sql
521 chmod o-rwx $RPM_BUILD_ROOT/var/bacula
522
523 %clean
524 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
525
526 %if %{mysql}
527
528 %files mysql
529 %defattr(-,root,root)
530
531 /etc/bacula/bacula
532 /etc/bacula/bconsole
533 /etc/bacula/fd
534 /etc/bacula/create_mysql_database
535 /etc/bacula/drop_mysql_database
536 /etc/bacula/make_mysql_tables
537 /etc/bacula/drop_mysql_tables
538 /etc/bacula/update_mysql_tables
539 /etc/bacula/grant_mysql_privileges
540 /etc/bacula/create_bacula_database
541 /etc/bacula/drop_bacula_database
542 /etc/bacula/grant_bacula_privileges
543 /etc/bacula/make_bacula_tables
544 /etc/bacula/drop_bacula_tables
545 /etc/bacula/update_bacula_tables
546 /etc/bacula/make_catalog_backup
547 /etc/bacula/delete_catalog_backup
548 /etc/bacula/startmysql
549 /etc/bacula/stopmysql
550 /etc/bacula/mtx-changer
551 /etc/init.d/bacula-dir
552 /etc/init.d/bacula-fd
553 /etc/init.d/bacula-sd
554
555 %doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt
556 /usr/man/man1/*
557
558 /etc/logrotate.d/bacula
559
560 %config(noreplace) /etc/bacula/bacula-dir.conf
561 %config(noreplace) /etc/bacula/bacula-fd.conf
562 %config(noreplace) /etc/bacula/bacula-sd.conf
563 %config(noreplace) /etc/bacula/bconsole.conf
564 /etc/bacula/query.sql
565 %dir %{working_dir}
566
567 /usr/sbin/bacula-dir
568 /usr/sbin/bacula-fd
569 /usr/sbin/bacula-sd
570 /usr/sbin/bcopy
571 /usr/sbin/bextract
572 /usr/sbin/bls
573 /usr/sbin/bscan
574 /usr/sbin/btape
575 /usr/sbin/btraceback
576 /usr/sbin/bconsole
577 /usr/sbin/dbcheck
578 /usr/sbin/loaderinfo
579 /usr/sbin/mtx
580 /usr/sbin/scsitape
581 /usr/sbin/bsmtp
582 /usr/sbin/tapeinfo
583 /usr/sbin/static-bacula-fd
584 /etc/bacula/btraceback.gdb
585
586 %pre mysql
587 # test for bacula database older than version 6
588 # note: this ASSUMES no password has been set for bacula database
589 DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null`
590
591 if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "6" ]; then
592         echo "This bacula upgrade will update a bacula database from version 6 to 7."
593         echo "You appear to be running database version $DB_VER. You must first update"
594         echo "your database to version 6 and then install this upgrade. The alternative"
595         echo "is to use /etc/bacula/drop_mysql_tables to delete all your your current"
596         echo "catalog information, then do the upgrade. Information on updating a"
597         echo "database older than version 6 can be found in the release notes."
598         exit 1
599 fi
600 # check for and copy /etc/bacula/console.conf to bconsole.conf
601 if [ -s /etc/bacula/console.conf ];then
602         cp -p /etc/bacula/console.conf /etc/bacula/bconsole.conf
603 fi
604
605 %post mysql
606
607 # add our links
608 if [ "$1" -ge 1 ] ; then
609 /sbin/chkconfig --add bacula-dir
610 /sbin/chkconfig --add bacula-fd
611 /sbin/chkconfig --add bacula-sd
612 fi
613
614 # test for an existing database
615 # note: this ASSUMES no password has been set for bacula database
616 DB_VER=`mysql bacula -e 'select * from Version;'|tail -n 1 2>/dev/null`
617
618 # grant privileges and create tables if they do not exist
619 if [ -z "$DB_VER" ]; then
620         echo "Hmm, doesn't look like you have an existing database."
621         echo "Granting privileges for MySQL user bacula..."
622         /etc/bacula/grant_mysql_privileges
623         echo "Creating MySQL bacula database..."
624         /etc/bacula/create_mysql_database
625         echo "Creating bacula tables..."
626         /etc/bacula/make_mysql_tables
627
628 # check to see if we need to upgrade a 1.32 or lower database
629 elif [ "$DB_VER" -lt "7" ]; then
630         echo "This release requires an upgrade to your bacula database."
631         echo "Backing up your current database..."
632         mysqldump -f --opt bacula | bzip2 > %{working_dir}/bacula_backup.sql.bz2
633         echo "Upgrading bacula database ..."
634         /etc/bacula/update_mysql_tables
635         echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
636
637 fi
638
639 %preun mysql
640 # delete our links
641 if [ $1 = 0 ]; then
642 /sbin/chkconfig --del bacula-dir
643 /sbin/chkconfig --del bacula-fd
644 /sbin/chkconfig --del bacula-sd
645 fi
646
647 %endif
648
649 %if %{sqlite}
650
651 %files sqlite
652 %defattr(-,root,root)
653
654 /etc/bacula/bacula
655 /etc/bacula/bconsole
656 /etc/bacula/fd
657 /etc/bacula/create_bacula_database
658 /etc/bacula/drop_bacula_database
659 /etc/bacula/grant_bacula_privileges
660 /etc/bacula/make_bacula_tables
661 /etc/bacula/drop_bacula_tables
662 /etc/bacula/update_bacula_tables
663 /etc/bacula/create_sqlite_database
664 /etc/bacula/drop_sqlite_database
665 /etc/bacula/grant_sqlite_privileges
666 /etc/bacula/make_sqlite_tables
667 /etc/bacula/drop_sqlite_tables
668 /etc/bacula/update_sqlite_tables
669 /etc/bacula/make_catalog_backup
670 /etc/bacula/delete_catalog_backup
671 /etc/bacula/mtx-changer
672 /etc/init.d/bacula-dir
673 /etc/init.d/bacula-fd
674 /etc/init.d/bacula-sd
675
676 %doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt
677 /usr/man/man1/*
678
679 /etc/logrotate.d/bacula
680
681 %config(noreplace) /etc/bacula/bacula-dir.conf
682 %config(noreplace) /etc/bacula/bacula-fd.conf
683 %config(noreplace) /etc/bacula/bacula-sd.conf
684 %config(noreplace) /etc/bacula/bconsole.conf
685 /etc/bacula/query.sql
686 %{sqlite_bindir}/libsqlite.a
687 %{sqlite_bindir}/sqlite.h
688 %dir %{working_dir}
689
690 /usr/sbin/bacula-dir
691 /usr/sbin/bacula-fd
692 /usr/sbin/bacula-sd
693 /usr/sbin/bcopy
694 /usr/sbin/bextract
695 /usr/sbin/bls
696 /usr/sbin/bscan
697 /usr/sbin/btape
698 /usr/sbin/btraceback
699 /usr/sbin/bconsole
700 /usr/sbin/dbcheck
701 /usr/sbin/loaderinfo
702 /usr/sbin/mtx
703 /usr/sbin/scsitape
704 /usr/sbin/bsmtp
705 /usr/sbin/tapeinfo
706 /usr/sbin/static-bacula-fd
707 %{sqlite_bindir}/sqlite
708 /etc/bacula/btraceback.gdb
709
710 %pre sqlite
711 # test for bacula database older than version 6
712 if [ -s %{working_dir}/bacula.db ];then
713         DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | tail -n 1 2>/dev/null`
714         if [ -n "$DB_VER" ] && [ "$DB_VER" -lt "6" ]; then
715                 echo "This bacula upgrade will update a bacula database from version 6 to 7."
716                 echo "You appear to be running database version $DB_VER. You must first update"
717                 echo "your database to version 6 and then install this upgrade. The alternative"
718                 echo "is to use /etc/bacula/drop_sqlite_tables to delete all your your current"
719                 echo "catalog information, then do the upgrade. Information on updating a"
720                 echo "database older than version 6 can be found in the release notes."
721                 exit 1
722         fi
723 fi
724 # check for and copy /etc/bacula/console.conf to bconsole.conf
725 if [ -s /etc/bacula/console.conf ];then
726         cp -p /etc/bacula/console.conf /etc/bacula/bconsole.conf
727 fi
728
729 %post sqlite
730 # add our links
731 if [ "$1" -ge 1 ] ; then
732 /sbin/chkconfig --add bacula-dir
733 /sbin/chkconfig --add bacula-fd
734 /sbin/chkconfig --add bacula-sd
735 fi
736
737 # test for an existing database
738 if [ -s %{working_dir}/bacula.db ]; then
739         DB_VER=`echo "select * from Version;" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | tail -n 1 2>/dev/null`
740         # check to see if we need to upgrade a 1.32 or lower database
741         if [ "$DB_VER" -lt "7" ]; then
742                 echo "This release requires an upgrade to your bacula database."
743                 echo "Backing up your current database..."
744                 echo ".dump" | %{sqlite_bindir}/sqlite %{working_dir}/bacula.db | bzip2 > %{working_dir}/bacula_backup.sql.bz2
745                 echo "Upgrading bacula database ..."
746                 /etc/bacula/update_sqlite_tables
747                 echo "If bacula works correctly you can remove the backup file %{working_dir}/bacula_backup.sql.bz2"
748         fi
749 else
750         # create the database and tables
751         echo "Hmm, doesn't look like you have an existing database."
752         echo "Creating SQLite database..."
753         /etc/bacula/create_sqlite_database
754         echo "Creating the SQLite tables..."
755         /etc/bacula/make_sqlite_tables
756 fi
757
758 %preun sqlite
759 # delete our links
760 if [ $1 = 0 ]; then
761 /sbin/chkconfig --del bacula-dir
762 /sbin/chkconfig --del bacula-fd
763 /sbin/chkconfig --del bacula-sd
764 fi
765
766 %endif
767
768 %if %{postgresql}
769
770 %files postgresql
771 %defattr(-,root,root)
772
773 /etc/bacula/bacula
774 /etc/bacula/bconsole
775 /etc/bacula/fd
776 /etc/bacula/create_postgresql_database
777 /etc/bacula/drop_postgresql_database
778 /etc/bacula/make_postgresql_tables
779 /etc/bacula/drop_postgresql_tables
780 /etc/bacula/update_postgresql_tables
781 /etc/bacula/grant_postgresql_privileges
782 /etc/bacula/create_bacula_database
783 /etc/bacula/drop_bacula_database
784 /etc/bacula/grant_bacula_privileges
785 /etc/bacula/make_bacula_tables
786 /etc/bacula/drop_bacula_tables
787 /etc/bacula/update_bacula_tables
788 /etc/bacula/make_catalog_backup
789 /etc/bacula/delete_catalog_backup
790 /etc/bacula/mtx-changer
791 /etc/init.d/bacula-dir
792 /etc/init.d/bacula-fd
793 /etc/init.d/bacula-sd
794
795 %doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt
796 /usr/man/man1/*
797
798 /etc/logrotate.d/bacula
799
800 %config(noreplace) /etc/bacula/bacula-dir.conf
801 %config(noreplace) /etc/bacula/bacula-fd.conf
802 %config(noreplace) /etc/bacula/bacula-sd.conf
803 %config(noreplace) /etc/bacula/bconsole.conf
804 /etc/bacula/query.sql
805 %dir %{working_dir}
806
807 /usr/sbin/bacula-dir
808 /usr/sbin/bacula-fd
809 /usr/sbin/bacula-sd
810 /usr/sbin/bcopy
811 /usr/sbin/bextract
812 /usr/sbin/bls
813 /usr/sbin/bscan
814 /usr/sbin/btape
815 /usr/sbin/btraceback
816 /usr/sbin/bconsole
817 /usr/sbin/dbcheck
818 /usr/sbin/loaderinfo
819 /usr/sbin/mtx
820 /usr/sbin/scsitape
821 /usr/sbin/bsmtp
822 /usr/sbin/tapeinfo
823 /usr/sbin/static-bacula-fd
824 /etc/bacula/btraceback.gdb
825
826 %post postgresql
827 # add our links
828 if [ "$1" -ge 1 ] ; then
829 /sbin/chkconfig --add bacula-dir
830 /sbin/chkconfig --add bacula-fd
831 /sbin/chkconfig --add bacula-sd
832 fi
833
834 # test for an existing database
835 # note: this ASSUMES no password has been set for bacula database
836 DB_VER=`echo 'select * from Version;' | psql bacula | tail -3 | head -1 2>/dev/null`
837
838 # grant privileges and create tables if they do not exist
839 if [ -z "$DB_VER" ]; then
840         echo "Hmm, doesn't look like you have an existing database."
841         echo "Granting privileges for PostgreSQL user bacula..."
842         /etc/bacula/grant_postgresql_privileges
843         echo "Creating PostgreSQL bacula database..."
844         /etc/bacula/create_postgresql_database
845         echo "Creating bacula tables..."
846         /etc/bacula/make_postgresql_tables
847         
848
849 %preun postgresql
850 # delete our links
851 if [ $1 = 0 ]; then
852 /sbin/chkconfig --del bacula-dir
853 /sbin/chkconfig --del bacula-fd
854 /sbin/chkconfig --del bacula-sd
855 fi
856
857 %endif
858
859 %files client
860 %defattr(-,root,root)
861
862 /etc/bacula/fd
863 /etc/bacula/bconsole
864 /etc/init.d/bacula-fd
865
866 %doc COPYING ChangeLog ReleaseNotes VERIFYING kernstodo doc/bacula.pdf html-manual ../Release_Notes-%{version}-%{release}.txt
867 /etc/logrotate.d/bacula
868
869 %config(noreplace) /etc/bacula/bacula-fd.conf
870 %config(noreplace) /etc/bacula/bconsole.conf
871 %dir %{working_dir}
872
873 /usr/sbin/bacula-fd
874 /usr/sbin/btraceback
875 /etc/bacula/btraceback.gdb
876 /usr/sbin/bsmtp
877 /usr/sbin/bconsole
878
879
880 %post client
881 # add our link
882 if [ "$1" -ge 1 ] ; then
883 /sbin/chkconfig --add bacula-fd
884 fi
885
886 %preun client
887 # delete our link
888 if [ $1 = 0 ]; then
889 /sbin/chkconfig --del bacula-fd
890 fi
891
892 %files rescue
893 %defattr(-,root,root)
894 /etc/bacula/rescue/backup.etc.list
895 /etc/bacula/rescue/format_floppy
896 /etc/bacula/rescue/getdiskinfo
897 /etc/bacula/rescue/make_rescue_disk
898 /etc/bacula/rescue/restore_bacula
899 /etc/bacula/rescue/restore_etc
900 /etc/bacula/rescue/run_grub
901 /etc/bacula/rescue/run_lilo
902 /etc/bacula/rescue/sfdisk.bz2
903 /etc/bacula/rescue/bacula-fd
904 /etc/bacula/rescue/tomsrtbt/*
905
906 %post rescue
907 # link our current installed conf file to the rescue directory
908 ln -s /etc/bacula-fd.conf /etc/bacula/rescue/bacula-fd.conf
909
910 # run getdiskinfo
911 echo "Creating rescue files for this system..."
912 cd /etc/bacula/rescue
913 ./getdiskinfo
914
915 %preun rescue
916 # remove the files created after the initial rpm installation
917 rm -f /etc/bacula/rescue/bacula-fd.conf
918 rm -f /etc/bacula/rescue/partition.*
919 rm -f /etc/bacula/rescue/format.*
920 rm -f /etc/bacula/rescue/mount_drives
921 rm -f /etc/bacula/rescue/start_network
922 rm -f /etc/bacula/rescue/sfdisk
923 rm -rf /etc/bacula/rescue/diskinfo/*
924
925 %files updatedb
926 %defattr(-,root,root)
927 /etc/bacula/updatedb/*
928
929 %post updatedb
930 echo "The database update scripts were installed to /etc/bacula/updatedb"
931
932 %files gconsole
933 %defattr(-,root,root)
934 /usr/sbin/gnome-console
935 /etc/bacula/gconsole
936 %config(noreplace) /etc/bacula/gnome-console.conf
937 /usr/share/pixmaps/bacula.png
938 /usr/share/gnome/apps/System/bacula.desktop
939 /usr/share/applications/bacula.desktop
940
941 %if ! %{su9} 
942 # add the console helper files
943 %config(noreplace,missingok) /etc/pam.d/gnome-console
944 %config(noreplace,missingok) /etc/security/console.apps/gnome-console
945
946 %post gconsole
947 # add gnome-console consolehelper link
948 ln -s /usr/bin/consolehelper /usr/bin/gnome-console
949
950 %postun gconsole
951 # remove gnome-console consolehelper link
952 rm -f /usr/bin/gnome-console
953 %endif
954
955 %changelog
956 * Sun Apr 04 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
957 - add pkgconfig to BuildRequires
958 * Fri Apr 02 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
959 - tightened up doc distribution
960 * Tue Mar 30 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
961 - added usermode (Redhat) and xsu (SuSE) support for gnome-console;
962 - rpm's horrible bug that prevents nested conditional macros prevents me
963 - from implementing these 2 separate approaches within the conditionals which
964 - create the separate server packages.
965 - the solution adopted is to remove the gnome-console files from the server packages
966 - so bacula-gconsole is now an add on for both client and server packages.
967 - this also now allows the server packages to be install on machines without
968 - an X-server and we can still maintain a single spec file.
969 - added tests to make sure we have defined platform and database macros.
970 * Sat Mar 13 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
971 - corrected mysql prerequisites for suse
972 * Mon Mar 1 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
973 - replaced all cp commands with cp -p
974 - removed addition of a+x permissions on gnome-console
975 - corrected permissions on init scripts
976 * Sat Feb 28 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
977 - corrected creation of sqlite_bindir in install from !mysql to sqlite
978 -
979 - various cleanup patches from Michael K. Johnson:
980 - corrected post install routines for nicer chkconfig
981 - removed chmod changes in post routines and moved to install section
982 - removed interactive nature of post routine for rescue package
983 - added description of building rescue disks to the description of rescue package
984 - added clean of build root to beginning of install
985 - removed specifying attr in all file lists
986 * Fri Feb 20 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
987 - added bconsole to client package
988 - added gconsole package as add-on to client
989 - removed spurious dependancies on updatedb package (!cut/paste)
990 * Thu Feb 19 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
991 - added updatedb package
992 * Thu Feb 12 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
993 - added postgresql package
994 * Wed Feb 11 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
995 - corrected the if else logic in the dependancy sections
996 - changes for 1.34 release
997 - /etc/bacula/console is now /etc/bacula/bconsole
998 - /etc/bacula/console.conf is now /etc/bacula/bconsole.conf
999 - /usr/sbin/btraceback.gdb is now /etc/bacula/btraceback.gdb
1000 - /usr/sbin/smtp is now /usr/sbin/bsmtp
1001 - added new /etc/bacula/drop_mysql_database
1002 - added new /etc/bacula/drop_sqlite_database
1003 - added new /etc/bacula/grant_sqlite_privileges
1004 - added new generic bacula database scripts in /etc/bacula
1005 - added pre-install sections to check for database versions older than 6
1006 - added check for /etc/bacula/console.conf and copy to bconsole.conf
1007 * Sun Feb 08 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1008 - added /etc/bacula/update_sqlite_tables and /etc/bacula/update_mysql_tables for 1.34 release
1009 - added testing for existing databases before executing any of the database creation scripts
1010 - added defines working_dir and sqlite_bindir in place of hard coded paths
1011 * Sat Jan 31 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1012 - added build configuration for SuSE.
1013 - Thanks to Matt Vollmar <matt at panamschool.edu.sv> for his input
1014 * Sat Jan 24 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1015 - added patch for create_sqlite_database to fix the installed bindir
1016 - added execute of create_sqlite_database to post of sqlite package
1017 * Sat Jan 10 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1018 - added virtual package Provides bacula-dir, bacula-sd, bacula-fd
1019 - added bacula-fd as Requires for rescue package
1020 - added build tag for Fedora Core 1
1021 - cleaned up dependancies for all builds
1022 * Thu Jan 1 2004 D. Scott Barninger <barninger at fairfieldcomputers.com>
1023 - removed rh_version from package names
1024 - added platform build configuration section to beginning of file
1025 * Tue Nov 25 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1026 - removed make_static_bacula script from rescue package install
1027 * Sun Nov 23 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1028 - Added define at top of file for depkgs version
1029 - Added rescue sub-package
1030 - Moved requires statements into proper sub-package locations
1031 * Mon Oct 27 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1032 - Corrected Requires for Gnome 1.4/2.0 builds
1033 * Fri Oct 24 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1034 - Added separate source declaration for depkgs
1035 - added patch for make_catalog_backup script
1036 * Mon May 11 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1037 - Misc changes to mysql/sqlite build and rh7/8 menu differences
1038 - Added rh_version to sub-package names
1039 - Added installed but missing file /etc/bacula/gconsole
1040 - rm'd /etc/bacula/grant_mysql_privileges on sqlite builds
1041 * Thu May 08 2003 Kern Sibbald <kern at sibbald.com>
1042 - Update spec for version 1.31 and combine client
1043 * Sun Mar 30 2003 D. Scott Barninger <barninger at fairfieldcomputers.com>
1044 - Initial spec file