Gentoo Archives: gentoo-commits

From: Thomas Beierlein <tomjbe@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-backup/bacula/, app-backup/bacula/files/9.0.6/
Date: Sun, 18 Feb 2018 18:38:27
Message-Id: 1518978984.9b8f311cb9d88f02bebc4bfb51282db4457f87d7.tomjbe@gentoo
1 commit: 9b8f311cb9d88f02bebc4bfb51282db4457f87d7
2 Author: Thomas Beierlein <tomjbe <AT> gentoo <DOT> org>
3 AuthorDate: Sun Feb 18 18:33:02 2018 +0000
4 Commit: Thomas Beierlein <tomjbe <AT> gentoo <DOT> org>
5 CommitDate: Sun Feb 18 18:36:24 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9b8f311c
7
8 app-backup/bacula: Fix building bat with coming Qt5.9
9
10 See bug 644566 for more information
11
12 Package-Manager: Portage-2.3.24, Repoman-2.3.6
13
14 app-backup/bacula/bacula-9.0.6-r2.ebuild | 427 +++++++++++++++++++++
15 .../bacula/files/9.0.6/bacula-9.0.6-bat-pro.patch | 21 +
16 2 files changed, 448 insertions(+)
17
18 diff --git a/app-backup/bacula/bacula-9.0.6-r2.ebuild b/app-backup/bacula/bacula-9.0.6-r2.ebuild
19 new file mode 100644
20 index 00000000000..79f747f6e18
21 --- /dev/null
22 +++ b/app-backup/bacula/bacula-9.0.6-r2.ebuild
23 @@ -0,0 +1,427 @@
24 +# Copyright 1999-2018 Gentoo Foundation
25 +# Distributed under the terms of the GNU General Public License v2
26 +
27 +EAPI="6"
28 +
29 +inherit qmake-utils desktop systemd user libtool
30 +
31 +MY_PV=${PV/_beta/-b}
32 +MY_P=${PN}-${MY_PV}
33 +
34 +DESCRIPTION="Featureful client/server network backup suite"
35 +HOMEPAGE="http://www.bacula.org/"
36 +SRC_URI="mirror://sourceforge/bacula/${MY_P}.tar.gz"
37 +
38 +LICENSE="AGPL-3"
39 +SLOT="0"
40 +KEYWORDS="~amd64 ~ppc ~sparc ~x86"
41 +IUSE="acl bacula-clientonly bacula-nodir bacula-nosd examples ipv6 libressl logwatch mysql postgres qt5 readline +sqlite ssl static tcpd vim-syntax X"
42 +
43 +DEPEND="
44 + dev-libs/gmp:0
45 + !bacula-clientonly? (
46 + postgres? ( dev-db/postgresql:=[threads] )
47 + mysql? ( virtual/mysql )
48 + sqlite? ( dev-db/sqlite:3 )
49 + !bacula-nodir? ( virtual/mta )
50 + )
51 + qt5? (
52 + dev-qt/qtsvg:5
53 + x11-libs/qwt:6
54 + )
55 + logwatch? ( sys-apps/logwatch )
56 + tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
57 + readline? ( sys-libs/readline:0 )
58 + static? (
59 + acl? ( virtual/acl[static-libs] )
60 + sys-libs/zlib[static-libs]
61 + dev-libs/lzo[static-libs]
62 + sys-libs/ncurses:=[static-libs]
63 + ssl? (
64 + !libressl? ( dev-libs/openssl:0=[static-libs] )
65 + libressl? ( dev-libs/libressl:0=[static-libs] )
66 + )
67 + )
68 + !static? (
69 + acl? ( virtual/acl )
70 + sys-libs/zlib
71 + dev-libs/lzo
72 + sys-libs/ncurses:=
73 + ssl? (
74 + !libressl? ( dev-libs/openssl:0= )
75 + libressl? ( dev-libs/libressl:0= )
76 + )
77 + )"
78 +RDEPEND="${DEPEND}
79 + !bacula-clientonly? (
80 + !bacula-nosd? (
81 + sys-block/mtx
82 + app-arch/mt-st
83 + )
84 + )
85 + vim-syntax? ( || ( app-editors/vim app-editors/gvim ) )"
86 +
87 +REQUIRED_USE="!bacula-clientonly? ( ^^ ( mysql postgres sqlite ) )
88 + static? ( bacula-clientonly )"
89 +
90 +S=${WORKDIR}/${MY_P}
91 +
92 +pkg_setup() {
93 + #XOR and !bacula-clientonly controlled by REQUIRED_USE
94 + use mysql && export mydbtype="mysql"
95 + use postgres && export mydbtype="postgresql"
96 + use sqlite && export mydbtype="sqlite3"
97 +
98 + # create the daemon group and user
99 + if [ -z "$(egetent group bacula 2>/dev/null)" ]; then
100 + enewgroup bacula
101 + einfo
102 + einfo "The group 'bacula' has been created. Any users you add to this"
103 + einfo "group have access to files created by the daemons."
104 + einfo
105 + fi
106 +
107 + if use bacula-clientonly && use static && use qt5; then
108 + ewarn
109 + ewarn "Building statically linked 'bat' is not supported. Ignorig 'qt5' useflag."
110 + ewarn
111 + fi
112 +
113 + if ! use bacula-clientonly; then
114 + if [ -z "$(egetent passwd bacula 2>/dev/null)" ]; then
115 + enewuser bacula -1 -1 /var/lib/bacula bacula,disk,tape,cdrom,cdrw
116 + einfo
117 + einfo "The user 'bacula' has been created. Please see the bacula manual"
118 + einfo "for information about running bacula as a non-root user."
119 + einfo
120 + fi
121 + fi
122 +}
123 +
124 +src_prepare() {
125 + # adjusts default configuration files for several binaries
126 + # to /etc/bacula/<config> instead of ./<config>
127 + pushd src >&/dev/null || die
128 + for f in console/console.c dird/dird.c filed/filed.c \
129 + stored/bcopy.c stored/bextract.c stored/bls.c \
130 + stored/bscan.c stored/btape.c stored/stored.c \
131 + qt-console/main.cpp; do
132 + sed -i -e 's|^\(#define CONFIG_FILE "\)|\1/etc/bacula/|g' "${f}" \
133 + || die "sed on ${f} failed"
134 + done
135 + popd >&/dev/null || die
136 +
137 + # bug 466688 drop deprecated categories from Desktop file
138 + sed -i -e 's/Application;//' scripts/bat.desktop.in || die
139 +
140 + # bug 466690 Use CXXFLAGS instead of CFLAGS
141 + sed -i -e 's/@CFLAGS@/@CXXFLAGS@/' autoconf/Make.common.in || die
142 +
143 + # drop automatic install of unneeded documentation (for bug 356499)
144 + eapply -p0 "${FILESDIR}"/7.2.0/${PN}-7.2.0-doc.patch
145 +
146 + # bug #310087
147 + eapply "${FILESDIR}"/5.2.3/${PN}-5.2.3-as-needed.patch
148 +
149 + # bug #311161
150 + eapply -p0 "${FILESDIR}"/9.0.2/${PN}-9.0.2-lib-search-path.patch
151 +
152 + # bat needs to respect LDFLAGS and CFLAGS
153 + eapply -p0 "${FILESDIR}"/9.0.6/${PN}-9.0.6-bat-pro.patch
154 +
155 + # bug #328701
156 + eapply -p0 "${FILESDIR}"/5.2.3/${PN}-5.2.3-openssl-1.patch
157 +
158 + eapply -p0 "${FILESDIR}"/9.0.2/${PN}-9.0.2-fix-static.patch
159 +
160 + # fix soname in libbaccat.so bug #602952
161 + eapply -p0 "${FILESDIR}/bacula-fix-sonames.patch"
162 +
163 + # do not strip binaries
164 + sed -i -e "s/strip /# strip /" src/filed/Makefile.in || die
165 + sed -i -e "s/strip /# strip /" src/console/Makefile.in || die
166 +
167 + # fix file not found error during make depend
168 + eapply -p0 "${FILESDIR}"/7.0.2/${PN}-7.0.2-depend.patch
169 +
170 + # fix missing QtGlobal include in src/qt-console/pages.h for Qt5
171 + eapply -p0 "${FILESDIR}"/9.0.6/${PN}-9.0.6-fix-pages-h-qt-includes.patch
172 + eapply_user
173 +
174 + # Fix systemd unit files:
175 + # bug 497748
176 + sed -i -e '/Requires/d' platforms/systemd/*.service.in || die
177 + sed -i -e '/StandardOutput/d' platforms/systemd/*.service.in || die
178 + # bug 504370
179 + sed -i -e '/Alias=bacula-dir/d' platforms/systemd/bacula-dir.service.in || die
180 + # bug 584442 and 504368
181 + sed -i -e 's/@dir_user@/root/g' platforms/systemd/bacula-dir.service.in || die
182 +
183 + # build 'bat' for Qt5
184 + export QMAKE="$(qt5_get_bindir)"/qmake
185 +
186 + # adapt to >=Qt-5.9 (see bug #644566)
187 + # qmake needs an existing target file to generate install instructions
188 + sed -i -e 's#bins.files = bat#bins.files = .libs/bat#g' \
189 + src/qt-console/bat.pro.in || die
190 + mkdir src/qt-console/.libs || die
191 + touch src/qt-console/.libs/bat || die
192 + chmod 755 src/qt-console/.libs/bat || die
193 +
194 + # fix bundled libtool (bug 466696)
195 + # But first move directory with M4 macros out of the way.
196 + # It is only needed by autoconf and gives errors during elibtoolize.
197 + mv autoconf/libtool autoconf/libtool1 || die
198 + elibtoolize
199 +}
200 +
201 +src_configure() {
202 + local myconf=''
203 +
204 + if use bacula-clientonly; then
205 + myconf="${myconf} \
206 + $(use_enable bacula-clientonly client-only) \
207 + $(use_enable !static libtool) \
208 + $(use_enable static static-cons) \
209 + $(use_enable static static-fd)"
210 + else
211 + myconf="${myconf} \
212 + $(use_enable !bacula-nodir build-dird) \
213 + $(use_enable !bacula-nosd build-stored)"
214 + # bug #311099
215 + # database support needed by dir-only *and* sd-only
216 + # build as well (for building bscan, btape, etc.)
217 + myconf="${myconf}
218 + --with-${mydbtype}"
219 + if use mysql; then
220 + myconf="${myconf} \
221 + --disable-batch-insert"
222 + else
223 + myconf="${myconf} \
224 + --enable-batch-insert"
225 + fi
226 + fi
227 +
228 + # do not build bat if 'static' clientonly
229 + if ! use bacula-clientonly || ! use static; then
230 + myconf="${myconf} \
231 + $(use_enable qt5 bat)"
232 + fi
233 +
234 + myconf="${myconf} \
235 + $(use_with X x) \
236 + $(use_enable !readline conio) \
237 + $(use_enable readline) \
238 + $(use_with readline readline /usr) \
239 + $(use_with ssl openssl) \
240 + $(use_enable ipv6) \
241 + $(use_enable acl) \
242 + $(use_with tcpd tcp-wrappers)"
243 +
244 + econf \
245 + --libdir=/usr/$(get_libdir) \
246 + --docdir=/usr/share/doc/${PF} \
247 + --htmldir=/usr/share/doc/${PF}/html \
248 + --with-pid-dir=/var/run \
249 + --sysconfdir=/etc/bacula \
250 + --with-subsys-dir=/var/lock/subsys \
251 + --with-working-dir=/var/lib/bacula \
252 + --with-logdir=/var/lib/bacula \
253 + --with-scriptdir=/usr/libexec/bacula \
254 + --with-systemd=$(systemd_get_systemunitdir) \
255 + --with-dir-user=bacula \
256 + --with-dir-group=bacula \
257 + --with-sd-user=root \
258 + --with-sd-group=bacula \
259 + --with-fd-user=root \
260 + --with-fd-group=bacula \
261 + --enable-smartalloc \
262 + --disable-afs \
263 + --host=${CHOST} \
264 + ${myconf}
265 +}
266 +
267 +src_compile() {
268 + # Make build log verbose (bug #447806)
269 + emake NO_ECHO=""
270 +}
271 +
272 +src_install() {
273 + emake DESTDIR="${D}" install
274 + doicon scripts/bacula.png
275 +
276 + # install bat icon and desktop file when enabled
277 + # (for some reason ./configure doesn't pick this up)
278 + if use qt5 && ! use static ; then
279 + doicon src/qt-console/images/bat_icon.png
280 + domenu scripts/bat.desktop
281 + fi
282 +
283 + # remove some scripts we don't need at all
284 + rm -f "${D}"/usr/libexec/bacula/{bacula,bacula-ctl-dir,bacula-ctl-fd,bacula-ctl-sd,startmysql,stopmysql}
285 +
286 + # rename statically linked apps
287 + if use bacula-clientonly && use static ; then
288 + pushd "${D}"/usr/sbin || die
289 + mv static-bacula-fd bacula-fd || die
290 + mv static-bconsole bconsole || die
291 + popd || die
292 + fi
293 +
294 + # extra files which 'make install' doesn't cover
295 + if ! use bacula-clientonly; then
296 + # the database update scripts
297 + diropts -m0750
298 + insinto /usr/libexec/bacula/updatedb
299 + insopts -m0754
300 + doins "${S}"/updatedb/*
301 + fperms 0640 /usr/libexec/bacula/updatedb/README
302 +
303 + # the logrotate configuration
304 + # (now unconditional wrt bug #258187)
305 + diropts -m0755
306 + insinto /etc/logrotate.d
307 + insopts -m0644
308 + newins "${S}"/scripts/logrotate bacula
309 +
310 + # the logwatch scripts
311 + if use logwatch; then
312 + diropts -m0750
313 + dodir /usr/share/logwatch/scripts/services
314 + dodir /usr/share/logwatch/scripts/shared
315 + dodir /etc/logwatch/conf/logfiles
316 + dodir /etc/logwatch/conf/services
317 + pushd "${S}"/scripts/logwatch >&/dev/null || die
318 + emake DESTDIR="${D}" install
319 + popd >&/dev/null || die
320 + fi
321 + fi
322 +
323 + if ! use qt5; then
324 + rm -vf "${D}"/usr/share/man/man1/bat.1*
325 + fi
326 + rm -vf "${D}"/usr/share/man/man1/bacula-tray-monitor.1*
327 + if use bacula-clientonly || use bacula-nodir; then
328 + rm -vf "${D}"/usr/share/man/man8/bacula-dir.8*
329 + rm -vf "${D}"/usr/share/man/man8/dbcheck.8*
330 + rm -vf "${D}"/usr/share/man/man1/bsmtp.1*
331 + rm -vf "${D}"/usr/libexec/bacula/create_*_database
332 + rm -vf "${D}"/usr/libexec/bacula/drop_*_database
333 + rm -vf "${D}"/usr/libexec/bacula/make_*_tables
334 + rm -vf "${D}"/usr/libexec/bacula/update_*_tables
335 + rm -vf "${D}"/usr/libexec/bacula/drop_*_tables
336 + rm -vf "${D}"/usr/libexec/bacula/grant_*_privileges
337 + rm -vf "${D}"/usr/libexec/bacula/*_catalog_backup
338 + fi
339 + if use bacula-clientonly || use bacula-nosd; then
340 + rm -vf "${D}"/usr/share/man/man8/bacula-sd.8*
341 + rm -vf "${D}"/usr/share/man/man8/bcopy.8*
342 + rm -vf "${D}"/usr/share/man/man8/bextract.8*
343 + rm -vf "${D}"/usr/share/man/man8/bls.8*
344 + rm -vf "${D}"/usr/share/man/man8/bscan.8*
345 + rm -vf "${D}"/usr/share/man/man8/btape.8*
346 + rm -vf "${D}"/usr/libexec/bacula/disk-changer
347 + rm -vf "${D}"/usr/libexec/bacula/mtx-changer
348 + rm -vf "${D}"/usr/libexec/bacula/dvd-handler
349 + fi
350 +
351 + # documentation
352 + dodoc ChangeLog ReleaseNotes SUPPORT
353 +
354 + # install examples (bug #457504)
355 + if use examples; then
356 + docinto examples/
357 + dodoc -r examples/*
358 + fi
359 +
360 + # vim-files
361 + if use vim-syntax; then
362 + insinto /usr/share/vim/vimfiles/syntax
363 + doins scripts/bacula.vim
364 + insinto /usr/share/vim/vimfiles/ftdetect
365 + newins scripts/filetype.vim bacula_ft.vim
366 + fi
367 +
368 + # setup init scripts
369 + myscripts="bacula-fd"
370 + if ! use bacula-clientonly; then
371 + if ! use bacula-nodir; then
372 + myscripts="${myscripts} bacula-dir"
373 + fi
374 + if ! use bacula-nosd; then
375 + myscripts="${myscripts} bacula-sd"
376 + fi
377 + fi
378 + for script in ${myscripts}; do
379 + # copy over init script and config to a temporary location
380 + # so we can modify them as needed
381 + cp "${FILESDIR}/${script}".confd "${T}/${script}".confd || die "failed to copy ${script}.confd"
382 + cp "${FILESDIR}/newscripts/${script}".initd "${T}/${script}".initd || die "failed to copy ${script}.initd"
383 +
384 + # now set the database dependancy for the director init script
385 + case "${script}" in
386 + bacula-dir)
387 + case "${mydbtype}" in
388 + sqlite3)
389 + # sqlite databases don't have a daemon
390 + sed -i -e 's/need "%database%"/:/g' "${T}/${script}".initd || die
391 + ;;
392 + *)
393 + # all other databases have daemons
394 + sed -i -e "s:%database%:${mydbtype}:" "${T}/${script}".initd || die
395 + ;;
396 + esac
397 + ;;
398 + *)
399 + ;;
400 + esac
401 +
402 + # install init script and config
403 + newinitd "${T}/${script}".initd "${script}"
404 + newconfd "${T}/${script}".confd "${script}"
405 + done
406 +
407 + systemd_dounit "${S}"/platforms/systemd/bacula-{dir,fd,sd}.service
408 +
409 + # make sure the working directory exists
410 + diropts -m0750
411 + keepdir /var/lib/bacula
412 +
413 + # make sure bacula group can execute bacula libexec scripts
414 + fowners -R root:bacula /usr/libexec/bacula
415 +}
416 +
417 +pkg_postinst() {
418 + if use bacula-clientonly; then
419 + fowners root:bacula /var/lib/bacula
420 + else
421 + fowners bacula:bacula /var/lib/bacula
422 + fi
423 +
424 + if ! use bacula-clientonly && ! use bacula-nodir; then
425 + einfo
426 + einfo "If this is a new install, you must create the ${mydbtype} databases with:"
427 + einfo " /usr/libexec/bacula/create_${mydbtype}_database"
428 + einfo " /usr/libexec/bacula/make_${mydbtype}_tables"
429 + einfo " /usr/libexec/bacula/grant_${mydbtype}_privileges"
430 + einfo
431 +
432 + ewarn "ATTENTION!"
433 + ewarn "The format of the database may have changed."
434 + ewarn "If you just upgraded from a version below 9.0.0 you must run"
435 + ewarn "'update_bacula_tables' now."
436 + ewarn "Make sure to have a backup of your catalog before."
437 + ewarn
438 + fi
439 +
440 + if use sqlite; then
441 + einfo
442 + einfo "Be aware that Bacula does not officially support SQLite database anymore."
443 + einfo "Best use it only for a client-only installation. See Bug #445540."
444 + einfo
445 + fi
446 +
447 + einfo "Please note that 'bconsole' will always be installed. To compile 'bat'"
448 + einfo "you have to enable 'USE=qt5'."
449 + einfo
450 +}
451
452 diff --git a/app-backup/bacula/files/9.0.6/bacula-9.0.6-bat-pro.patch b/app-backup/bacula/files/9.0.6/bacula-9.0.6-bat-pro.patch
453 new file mode 100644
454 index 00000000000..3d055b8c307
455 --- /dev/null
456 +++ b/app-backup/bacula/files/9.0.6/bacula-9.0.6-bat-pro.patch
457 @@ -0,0 +1,21 @@
458 +--- src/qt-console/bat.pro.in.orig 2018-02-18 16:17:21.027921363 +0100
459 ++++ src/qt-console/bat.pro.in 2018-02-18 16:18:12.554137528 +0100
460 +@@ -12,7 +12,7 @@
461 + greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
462 +
463 + bins.path = /$(DESTDIR)@sbindir@
464 +-bins.files = bat
465 ++bins.files = .libs/bat
466 + confs.path = /$(DESTDIR)@sysconfdir@
467 + confs.commands = ./install_conf_file
468 + help.path = /$(DESTDIR)@docdir@
469 +@@ -29,6 +29,9 @@
470 + QMAKE_LINK = $${LIBTOOL_LINK} $(CXX)
471 + QMAKE_INSTALL_PROGRAM = $${LIBTOOL_INSTALL} install -m @SBINPERM@ -p
472 + QMAKE_CLEAN += .libs/* bat
473 ++QMAKE_LFLAGS += @LDFLAGS@
474 ++QMAKE_CFLAGS += @CFLAGS@
475 ++QMAKE_CXXFLAGS += @CXXFLAGS@
476 +
477 + qwt {
478 + INCLUDEPATH += @QWT_INC@