Gentoo Archives: gentoo-commits

From: "Wolfram Schlich (wschlich)" <wschlich@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in app-backup/bacula: ChangeLog bacula-3.0.2.ebuild
Date: Wed, 09 Sep 2009 07:45:21
Message-Id: E1MlHri-0008QX-K1@stork.gentoo.org
1 wschlich 09/09/09 07:45:18
2
3 Modified: ChangeLog
4 Added: bacula-3.0.2.ebuild
5 Log:
6 version bump, (also) fixes bugs #280048, #272282, #265647, #258187, #257016, #254743, #235515
7 (Portage version: 2.2_rc33/cvs/Linux i686)
8
9 Revision Changes Path
10 1.75 app-backup/bacula/ChangeLog
11
12 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-backup/bacula/ChangeLog?rev=1.75&view=markup
13 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-backup/bacula/ChangeLog?rev=1.75&content-type=text/plain
14 diff : http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-backup/bacula/ChangeLog?r1=1.74&r2=1.75
15
16 Index: ChangeLog
17 ===================================================================
18 RCS file: /var/cvsroot/gentoo-x86/app-backup/bacula/ChangeLog,v
19 retrieving revision 1.74
20 retrieving revision 1.75
21 diff -u -r1.74 -r1.75
22 --- ChangeLog 19 Aug 2009 13:47:56 -0000 1.74
23 +++ ChangeLog 9 Sep 2009 07:45:18 -0000 1.75
24 @@ -1,6 +1,17 @@
25 # ChangeLog for app-backup/bacula
26 # Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
27 -# $Header: /var/cvsroot/gentoo-x86/app-backup/bacula/ChangeLog,v 1.74 2009/08/19 13:47:56 betelgeuse Exp $
28 +# $Header: /var/cvsroot/gentoo-x86/app-backup/bacula/ChangeLog,v 1.75 2009/09/09 07:45:18 wschlich Exp $
29 +
30 +*bacula-3.0.2 (09 Sep 2009)
31 +
32 + 09 Sep 2009; Wolfram Schlich <wschlich@g.o>
33 + +files/3.0.2/bacula-default-configs.patch, +files/3.0.2/bacula-dir-conf,
34 + +files/3.0.2/bacula-dir-init, +files/3.0.2/bacula-fd-conf,
35 + +files/3.0.2/bacula-fd-init, +files/3.0.2/bacula-gnomesu2gksu.diff,
36 + +files/3.0.2/bacula-sd-conf, +files/3.0.2/bacula-sd-init,
37 + +bacula-3.0.2.ebuild:
38 + version bump, (also) fixes bugs #280048, #272282, #265647, #258187, #257016,
39 + #254743, #235515
40
41 19 Aug 2009; Petteri Räty <betelgeuse@g.o> bacula-2.4.4.ebuild:
42 Migrate to EAPI 2 in order to get rid of built_with_use.
43
44
45
46 1.1 app-backup/bacula/bacula-3.0.2.ebuild
47
48 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-backup/bacula/bacula-3.0.2.ebuild?rev=1.1&view=markup
49 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/app-backup/bacula/bacula-3.0.2.ebuild?rev=1.1&content-type=text/plain
50
51 Index: bacula-3.0.2.ebuild
52 ===================================================================
53 # Copyright 1999-2009 Gentoo Foundation
54 # Distributed under the terms of the GNU General Public License v2
55 # $Header: /var/cvsroot/gentoo-x86/app-backup/bacula/bacula-3.0.2.ebuild,v 1.1 2009/09/09 07:45:18 wschlich Exp $
56
57 EAPI="2"
58 inherit eutils
59
60 IUSE="bacula-clientonly bacula-console bacula-nodir bacula-nosd gnome ipv6 logwatch mysql postgres python qt4 readline sqlite +sqlite3 ssl static tcpd wxwindows X"
61 # bacula-web bimagemgr brestore bweb
62 KEYWORDS="~amd64 ~hppa ~ppc ~sparc ~x86"
63
64 DESCRIPTION="Featureful client/server network backup suite"
65 HOMEPAGE="http://www.bacula.org/"
66
67 MY_PV=${PV/_beta/-b}
68 MY_P=${PN}-${MY_PV}
69 S=${WORKDIR}/${MY_P}
70 #DOC_VER="${MY_PV}"
71 #DOC_SRC_URI="mirror://sourceforge/bacula/${PN}-docs-${DOC_VER}.tar.bz2"
72 #GUI_VER="${PV}"
73 #GUI_SRC_URI="mirror://sourceforge/bacula/${PN}-gui-${GUI_VER}.tar.gz"
74 SRC_URI="mirror://sourceforge/bacula/${MY_P}.tar.gz"
75 # doc? ( ${DOC_SRC_URI} )
76 # bacula-web? ( ${GUI_SRC_URI} )
77 # bimagemgr? ( ${GUI_SRC_URI} )
78 # brestore? ( ${GUI_SRC_URI} )
79 # bweb? ( ${GUI_SRC_URI} )
80
81 LICENSE="GPL-2"
82 SLOT="0"
83
84 DEPEND="
85 >=sys-libs/zlib-1.1.4
86 dev-libs/gmp
87 !bacula-clientonly? (
88 postgres? ( >=virtual/postgresql-server-7.4 )
89 mysql? ( virtual/mysql )
90 sqlite? ( =dev-db/sqlite-2* )
91 sqlite3? ( >=dev-db/sqlite-3.0.0 )
92 virtual/mta
93 )
94 bacula-console? (
95 wxwindows? ( =x11-libs/wxGTK-2.6* )
96 qt4? (
97 || ( x11-libs/qt-svg:4 =x11-libs/qt-4.3* )
98 >=x11-libs/qwt-5
99 )
100 gnome? (
101 >=gnome-base/libgnome-2
102 >=gnome-base/libgnomeui-2
103 x11-libs/gksu
104 )
105 )
106 ssl? ( dev-libs/openssl )
107 logwatch? ( sys-apps/logwatch )
108 tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
109 readline? ( >=sys-libs/readline-4.1 )
110 python? ( dev-lang/python[threads] )"
111 # doc? (
112 # virtual/ghostscript
113 # dev-tex/latex2html[png]
114 # app-text/dvipdfm
115 # )
116 RDEPEND="${DEPEND}
117 !bacula-clientonly? (
118 sys-block/mtx
119 app-arch/mt-st
120 )"
121
122 pkg_setup() {
123 local dbnum
124 declare -i dbnum=0
125 if ! useq bacula-clientonly; then
126 if useq mysql; then
127 export mydbtype='mysql'
128 let dbnum++
129 fi
130 if useq postgres; then
131 export mydbtype='postgresql'
132 let dbnum++
133 fi
134 if useq sqlite; then
135 export mydbtype='sqlite'
136 let dbnum++
137 fi
138 if useq sqlite3; then
139 export mydbtype='sqlite3'
140 let dbnum++
141 fi
142 if [[ "${dbnum}" -lt 1 ]]; then
143 eerror
144 eerror "To use ${P} it is required to set a database in the USE flags."
145 eerror "Supported databases are mysql, postgresql, sqlite, sqlite3"
146 eerror
147 die "No database type selected."
148 elif [[ "${dbnum}" -gt 1 ]]; then
149 eerror
150 eerror "You have set ${P} to use multiple database types."
151 eerror "I don't know which to set as the default!"
152 eerror "You can use /etc/portage/package.use to set per-package USE flags"
153 eerror "Set it so only one database type, mysql, postgres, sqlite, sqlite3"
154 eerror
155 die "Multiple database types selected."
156 fi
157 fi
158
159 # create the daemon group and user
160 if [ -z "$(egetent group bacula)" ]; then
161 enewgroup bacula
162 einfo
163 einfo "The group 'bacula' has been created. Any users you add to this"
164 einfo "group have access to files created by the daemons."
165 einfo
166 fi
167 if ! useq bacula-clientonly; then
168 if [ -z "$(egetent passwd bacula)" ]; then
169 enewuser bacula -1 -1 /var/lib/bacula bacula,disk,tape,cdrom,cdrw
170 einfo
171 einfo "The user 'bacula' has been created. Please see the bacula manual"
172 einfo "for information about running bacula as a non-root user."
173 einfo
174 fi
175 fi
176 }
177
178 src_prepare() {
179 # adjusts default configuration files for several binaries
180 # to /etc/bacula/<config> instead of ./<config>
181 pushd src && epatch "${FILESDIR}/${PV}/${PN}"-default-configs.patch && popd
182
183 # replaces (deprecated) gnomesu with gksu in the gnome menu files
184 useq bacula-console && useq gnome && epatch "${FILESDIR}/${PV}/${PN}"-gnomesu2gksu.diff
185
186 # apply upstream patches
187 #epatch "${FILESDIR}"/${PV}/${PV}-foo.patch
188 }
189
190 src_configure() {
191 local myconf=''
192
193 if useq bacula-clientonly; then
194 myconf="${myconf} \
195 $(use_enable bacula-clientonly client-only) \
196 $(use_enable static static-fd)"
197 else
198 myconf="${myconf} \
199 --with-${mydbtype} \
200 $(use_enable static static-tools) \
201 $(use_enable static static-fd) \
202 $(use_enable !bacula-nodir build-dird) \
203 $(use_enable !bacula-nosd build-stored)"
204 if ! useq bacula-nodir; then
205 myconf="${myconf} $(use_enable static static-dir)"
206 fi
207 if ! useq bacula-nosd; then
208 myconf="${myconf} $(use_enable static static-sd)"
209 fi
210 case "${mydbtype}" in
211 sqlite) ;;
212 *) myconf="${myconf} --enable-batch-insert" ;;
213 esac
214 fi
215
216 if useq bacula-console; then
217 if useq qt4 && has_version '<x11-libs/qwt-5'; then
218 eerror "x11-libs/qwt found in a version < 5, thus the"
219 eerror "compilation of 'bat' would fail (see"
220 eerror "http://bugs.gentoo.org/188477#c11 for details)."
221 eerror "please either unmerge <x11-libs/qwt-5 or disable"
222 eerror "the qt4 USE flag to disable building 'bat'."
223 die "incompatible slotted qwt version found"
224 fi
225 myconf="${myconf} \
226 $(use_with X x) \
227 $(use_enable gnome) \
228 $(use_enable gnome tray-monitor) \
229 $(use_enable wxwindows bwx-console) \
230 $(use_enable qt4 bat) \
231 $(use_enable static static-cons)"
232 fi
233
234 myconf="${myconf} \
235 $(use_with python) \
236 $(use_enable readline) \
237 $(use_with readline readline /usr) \
238 $(use_with ssl openssl) \
239 $(use_enable ipv6) \
240 $(use_with tcpd tcp-wrappers)"
241
242 ./configure \
243 --prefix=/usr \
244 --mandir=/usr/share/man \
245 --with-pid-dir=/var/run \
246 --sysconfdir=/etc/bacula \
247 --infodir=/usr/share/info \
248 --with-subsys-dir=/var/lock/subsys \
249 --with-working-dir=/var/lib/bacula \
250 --with-scriptdir=/usr/libexec/bacula \
251 --with-dir-user=bacula \
252 --with-dir-group=bacula \
253 --with-sd-user=root \
254 --with-sd-group=bacula \
255 --with-fd-user=root \
256 --with-fd-group=bacula \
257 --enable-smartalloc \
258 --host=${CHOST} \
259 ${myconf} \
260 || die "configure failed"
261 }
262
263 src_compile() {
264 emake || die "emake failed"
265
266 # build various GUIs from bacula-gui tarball
267 # if useq bacula-web || useq bimagemgr || useq brestore || useq bweb; then
268 # pushd "${WORKDIR}/${PN}-gui-${GUI_VER}"
269 # local myconf_gui=''
270 # if useq bimagemgr; then
271 # ## TODO FIXME: webapp-config? !apache?
272 # myconf_gui="${myconf_gui} \
273 # --with-bimagemgr-cgidir=/var/www/localhost/cgi-bin \
274 # --with-bimagemgr-docdir=/var/www/localhost/htdocs \
275 # --with-bimagemgr-binowner=root \
276 # --with-bimagemgr-bingroup=root \
277 # --with-bimagemgr-dataowner=apache \
278 # --with-bimagemgr-datagroup=apache \
279 # "
280 # fi
281 # ./configure \
282 # --with-bacula="${S}" \
283 # ${myconf} \
284 # || die "configure for bacula-gui failed"
285 # ## TODO FIXME: install files (see bacula-gui.spec)
286 # if useq bacula-web; then
287 # : install
288 # fi
289 # if useq bimagemgr; then
290 # : install
291 # fi
292 # if useq brestore; then
293 # : install
294 # fi
295 # if useq bweb; then
296 # : install
297 # fi
298 # popd
299 # fi
300
301 # build docs from bacula-docs tarball
302 # if useq doc; then
303 # pushd "${WORKDIR}/${PN}-docs-${DOC_VER}"
304 # ./configure \
305 # --with-bacula="${S}" \
306 # || die "configure for bacula-docs failed"
307 # emake -j1 || die "emake for bacula-docs failed"
308 # popd
309 # fi
310 }
311
312 src_install() {
313 emake DESTDIR="${D}" install || die "emake install failed"
314
315 # install bat when enabled (for some reason ./configure doesn't pick this up)
316 if useq bacula-console && useq qt4; then
317 dosbin "${S}"/src/qt-console/.libs/bat
318 fi
319
320 # remove some scripts we don't need at all
321 rm -f "${D}"/usr/libexec/bacula/{bacula,bacula-ctl-dir,bacula-ctl-fd,bacula-ctl-sd,startmysql,stopmysql}
322
323 # rename statically linked apps
324 if useq static; then
325 pushd "${D}"/usr/sbin
326 mv static-bacula-fd bacula-fd
327 mv static-bconsole bconsole
328 if ! useq bacula-clientonly; then
329 mv static-bacula-dir bacula-dir
330 mv static-bacula-sd bacula-sd
331 fi
332 if useq bacula-console && useq gnome; then
333 mv static-gnome-console gnome-console
334 fi
335 if useq bacula-console && useq qt4; then
336 mv static-bat bat
337 fi
338 popd
339 fi
340
341 # gnome-console menu entries using gksu
342 if useq bacula-console && useq gnome; then
343 emake DESTDIR="${D}" install-menu-xsu \
344 || die "Failed to install gnome menu files"
345 fi
346
347 # extra files which 'make install' doesn't cover
348 if ! useq bacula-clientonly; then
349 # the database update scripts
350 diropts -m0750
351 insinto /usr/libexec/bacula/updatedb
352 insopts -m0754
353 doins "${S}"/updatedb/*
354 fperms 0640 /usr/libexec/bacula/updatedb/README
355
356 # the logrotate configuration
357 # (now unconditional wrt bug #258187)
358 diropts -m0755
359 insinto /etc/logrotate.d
360 insopts -m0644
361 newins "${S}"/scripts/logrotate bacula
362
363 # the logwatch scripts
364 if useq logwatch; then
365 diropts -m0750
366 dodir /etc/log.d/scripts/services
367 dodir /etc/log.d/conf/logfiles
368 dodir /etc/log.d/conf/services
369 cd "${S}"/scripts/logwatch
370 emake DESTDIR="${D}" install || die "Failed to install logwatch scripts"
371 cd "${S}"
372 fi
373 fi
374
375 # remove unwanted files
376 if ! use bacula-console; then
377 rm -vf "${D}"/etc/bacula/bconsole.conf
378 rm -vf "${D}"/usr/sbin/bconsole
379 rm -vf "${D}"/usr/libexec/bacula/bconsole
380 fi
381 if ! ( use bacula-console && use gnome ); then
382 rm -vf "${D}"/usr/share/man/man1/bacula-bgnome-console.1*
383 rm -vf "${D}"/usr/libexec/bacula/gconsole
384 fi
385 if ! ( use bacula-console && use wxwindows ); then
386 rm -vf "${D}"/usr/share/man/man1/bacula-bwxconsole.1*
387 fi
388 if use bacula-clientonly; then
389 rm -vf "${D}"/usr/share/man/man1/bat.1*
390 rm -vf "${D}"/usr/share/man/man1/bacula-tray-monitor.1*
391 fi
392 if use bacula-clientonly || use bacula-nodir; then
393 rm -vf "${D}"/usr/share/man/man8/bacula-dir.8*
394 rm -vf "${D}"/usr/share/man/man8/dbcheck.8*
395 rm -vf "${D}"/usr/share/man/man1/bsmtp.1*
396 rm -vf "${D}"/usr/libexec/bacula/create_*_database
397 rm -vf "${D}"/usr/libexec/bacula/drop_*_database
398 rm -vf "${D}"/usr/libexec/bacula/make_*_tables
399 rm -vf "${D}"/usr/libexec/bacula/update_*_tables
400 rm -vf "${D}"/usr/libexec/bacula/drop_*_tables
401 rm -vf "${D}"/usr/libexec/bacula/grant_*_privileges
402 rm -vf "${D}"/usr/libexec/bacula/*_catalog_backup
403 fi
404 if use bacula-clientonly || use bacula-nosd; then
405 rm -vf "${D}"/usr/share/man/man8/bacula-sd.8*
406 rm -vf "${D}"/usr/share/man/man8/bcopy.8*
407 rm -vf "${D}"/usr/share/man/man8/bextract.8*
408 rm -vf "${D}"/usr/share/man/man8/bls.8*
409 rm -vf "${D}"/usr/share/man/man8/bscan.8*
410 rm -vf "${D}"/usr/share/man/man8/btape.8*
411 rm -vf "${D}"/usr/libexec/bacula/disk-changer
412 rm -vf "${D}"/usr/libexec/bacula/mtx-changer
413 rm -vf "${D}"/usr/libexec/bacula/dvd-handler
414 fi
415
416 # documentation
417 for d in "${S}"/{ChangeLog,LICENSE,README,ReleaseNotes,SUPPORT,kernstodo,projects}; do
418 dodoc "${d}"
419 done
420 # if useq doc; then
421 # for i in catalog concepts console developers install problems utility; do
422 # dodoc "${WORKDIR}/${PN}-docs-${DOC_VER}"/manuals/en/${i}/${i}.pdf
423 # done
424 # fi
425
426 # setup init scripts
427 myscripts="bacula-fd"
428 if ! useq bacula-clientonly; then
429 if ! useq bacula-nodir; then
430 myscripts="${myscripts} bacula-dir"
431 fi
432 if ! useq bacula-nosd; then
433 myscripts="${myscripts} bacula-sd"
434 fi
435 fi
436 for script in ${myscripts}; do
437 # copy over init script and config to a temporary location
438 # so we can modify them as needed
439 cp "${FILESDIR}/${PV}/${script}"-conf "${T}/${script}".conf || die "failed to copy ${script}-conf"
440 cp "${FILESDIR}/${PV}/${script}"-init "${T}/${script}".init || die "failed to copy ${script}-init"
441 # set database dependancy for the director init scripts
442 case "${script}" in
443 bacula-dir)
444 case "${mydbtype}" in
445 sqlite*)
446 # sqlite + sqlite3 databases don't have daemons
447 sed -i -e 's/need "%database%"/:/g' "${T}/${script}".init
448 ;;
449 *)
450 # all other databases have daemons
451 sed -i -e "s:%database%:${mydbtype}:" "${T}/${script}".init
452 ;;
453 esac
454 ;;
455 *)
456 ;;
457 esac
458 # install init script and config
459 newinitd "${T}/${script}".init "${script}"
460 newconfd "${T}/${script}".conf "${script}"
461 done
462
463 # make sure the working directory exists
464 diropts -m0750
465 keepdir /var/lib/bacula
466
467 # make sure bacula group can execute bacula libexec scripts
468 fowners -R root:bacula /usr/libexec/bacula
469 }
470
471 pkg_postinst() {
472 if useq bacula-clientonly; then
473 fowners root:bacula /var/lib/bacula
474 else
475 fowners bacula:bacula /var/lib/bacula
476 fi
477
478 if ! useq bacula-clientonly && ! useq bacula-nodir; then
479 einfo
480 einfo "If this is a new install, you must create the ${mydbtype} databases with:"
481 einfo " /usr/libexec/bacula/create_${mydbtype}_database"
482 einfo " /usr/libexec/bacula/make_${mydbtype}_tables"
483 einfo " /usr/libexec/bacula/grant_${mydbtype}_privileges"
484 einfo
485 einfo "If you're upgrading from a major release, you must upgrade your bacula catalog database."
486 einfo "Please read the manual chapter for how to upgrade your database."
487 einfo "You can find database upgrade scripts in /usr/libexec/bacula/updatedb."
488 einfo
489 fi
490
491 ewarn
492 ewarn "*** ATTENTION! IMPORTANT! ATTENTION! IMPORTANT! ATTENTION! IMPORTANT! ***"
493 ewarn
494 ewarn "The bundled catalog backup script (/usr/libexec/bacula/make_catalog_backup)"
495 ewarn "is INSECURE. The script needs to be called with the database access password"
496 ewarn "as a command line parameter, thus, the password can be seen from any other"
497 ewarn "user on the system (if not using some non-default hardened/patched kernel"
498 ewarn "with /proc restrictions)!"
499 ewarn
500 ewarn "Our advice is to NOT USE the bundled script at all, but instead use something"
501 ewarn "like this in your catalog backup job definition (example using MySQL as the"
502 ewarn "catalog database):"
503 ewarn
504 ewarn "RunBeforeJob = \"mysqldump --defaults-file=/etc/bacula/my.cnf --opt -f -r /var/lib/bacula/bacula.sql bacula\""
505 ewarn "RunAfterJob = \"rm -f /var/lib/bacula/bacula.sql\""
506 ewarn
507 ewarn "This requires you to put all database access parameters (like user, host and"
508 ewarn "password) into a dedicated file (/etc/bacula/my.cnf in this example) which"
509 ewarn "can (and should!) be secured by simple filesystem access permissions."
510 ewarn
511 ewarn "See also:"
512 ewarn "http://www.bacula.org/en/rel-manual/Bacula_Security_Issues.html"
513 ewarn "http://www.bacula.org/en/rel-manual/Catalog_Maintenance.html#BackingUpBaculaSecurityConsiderations"
514 ewarn
515 ewarn "*** ATTENTION! IMPORTANT! ATTENTION! IMPORTANT! ATTENTION! IMPORTANT! ***"
516 ewarn
517 ebeep 10
518 epause 20
519
520 ewarn
521 ewarn "*** NOTICE! NOTICE! NOTICE! NOTICE! NOTICE! NOTICE! NOTICE! NOTICE! ***"
522 ewarn
523 ewarn "Support for the bacula all-in-one init script has been removed from"
524 ewarn "this release -- if you were previously using the all-in-one init"
525 ewarn "script, please switch to using the individual init scripts now:"
526 ewarn
527 ewarn "- bacula-dir: bacula director (for the central bacula server)"
528 ewarn "- bacula-fd: bacula file daemon (for hosts to be backed up)"
529 ewarn "- bacula-sd: bacula storage daemon (for hosts storing the backup data)"
530 ewarn
531 ewarn "*** NOTICE! NOTICE! NOTICE! NOTICE! NOTICE! NOTICE! NOTICE! NOTICE! ***"
532 ewarn
533 ebeep 5
534 epause 10
535 }