From 10911ea00bea974049560efa00bfe20ab3a63262 Mon Sep 17 00:00:00 2001 From: Thomas Beierlein Date: Fri, 4 Sep 2015 14:32:40 +0200 Subject: [PATCH] app-backup/bacula: Version bump Package-Manager: portage-2.2.20.1 --- app-backup/bacula/Manifest | 1 + app-backup/bacula/bacula-7.2.0.ebuild | 408 ++++++++++++++++++ .../bacula/files/7.2.0/bacula-7.2.0-doc.patch | 12 + .../files/7.2.0/bacula-7.2.0-fix-static.patch | 56 +++ 4 files changed, 477 insertions(+) create mode 100644 app-backup/bacula/bacula-7.2.0.ebuild create mode 100644 app-backup/bacula/files/7.2.0/bacula-7.2.0-doc.patch create mode 100644 app-backup/bacula/files/7.2.0/bacula-7.2.0-fix-static.patch diff --git a/app-backup/bacula/Manifest b/app-backup/bacula/Manifest index 1dae12073297..bf59f2bec5d9 100644 --- a/app-backup/bacula/Manifest +++ b/app-backup/bacula/Manifest @@ -1,3 +1,4 @@ DIST bacula-5.0.3.tar.gz 3800556 SHA256 9905598e18bbe94fa871ddcb3f13ef8b754dcb301331b67b5b92a65eb834fdb4 SHA512 feb4a7333b4c898aec175c6e8b45ce5d4eb6e15100a9f27c6010e1a17b44133b7d181d25419e923321d8bd7147d85342bf1e0dca8387d6e9cd269a0e2fec4626 WHIRLPOOL 65a900cc740a300b509a02d953ec5265e3cfbd2ce85d8e40b47e1f1fdd6d77885ec48e68471cc559accd6707fdd9f1cbb34fba22371e806d404abed052a168fb DIST bacula-5.2.13.tar.gz 4243395 SHA256 a4bed458bf001889bd06bf31671b5d9908055a1d1e8113fd750ae4d326607ad8 SHA512 dfdff353f5b6ed4d85013dc292526706bbd67066f7057a114012172926c819c8df1eb8779166d5a90db3a49a5584f0a8daf7566cc93cf4fa3f1bdda245b55cf0 WHIRLPOOL f559a3650ae45e149a80cdc74ab84e32c94f492321c2222c18003bacfb6690615befc3a37826055f6c436a4af6ace4b81497181f2ec4f641b0ad3a13817488a7 DIST bacula-7.0.5.tar.gz 3216406 SHA256 1457849eb33011b43371801b62ffa13d29bebe51be8d5a36da563b87bb094a49 SHA512 df7908769fd13a1cb2e0491d3773577db40c0f1c010b887c6dc6d7e0bc0b408fbfc260e6d5a2a34975e5b424152c7f558b33aeedea45f366636739295641394b WHIRLPOOL 47642c52928d84a50c01adfb8afa49c0c9376cba3b0f709d0c5113cba3380e047ded04980ffad339deeb1ce6d3a8ec59f58cf1968223973def7074a446a09da5 +DIST bacula-7.2.0.tar.gz 3301720 SHA256 818606fe69c50c3ca21b91e609d4ac6ca08e4189419b89d3ec2e81c8c0389e1c SHA512 ff50db48039c9040d4995f53a8d83ad6e5568da254527d07cfe450bf0e4a25717387b5e4aa9f29197c284f513240e714c48d8232d7d7edb9159afbc13cd0cd54 WHIRLPOOL 17f5b19a6fb9bf2a05e79663c7810358cf79aebad7f2709a01fadf15d5d494a243290e9c66e30c8b9bde6a627e238b77c1853a0d40891c5f5f4b390ae0ded1e5 diff --git a/app-backup/bacula/bacula-7.2.0.ebuild b/app-backup/bacula/bacula-7.2.0.ebuild new file mode 100644 index 000000000000..a5eb41fe7d57 --- /dev/null +++ b/app-backup/bacula/bacula-7.2.0.ebuild @@ -0,0 +1,408 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +inherit eutils multilib qt4-r2 systemd user libtool + +MY_PV=${PV/_beta/-b} +MY_P=${PN}-${MY_PV} + +DESCRIPTION="Featureful client/server network backup suite" +HOMEPAGE="http://www.bacula.org/" +SRC_URI="mirror://sourceforge/bacula/${MY_P}.tar.gz" + +LICENSE="AGPL-3" +SLOT="0" +KEYWORDS="~amd64 ~ppc ~sparc ~x86" +IUSE="acl bacula-clientonly bacula-nodir bacula-nosd examples ipv6 logwatch mysql postgres qt4 readline +sqlite ssl static tcpd vim-syntax X" + +DEPEND=" + dev-libs/gmp + !bacula-clientonly? ( + postgres? ( dev-db/postgresql[threads] ) + mysql? ( virtual/mysql ) + sqlite? ( dev-db/sqlite:3 ) + !bacula-nodir? ( virtual/mta ) + ) + qt4? ( + dev-qt/qtsvg:4 + x11-libs/qwt:5 + ) + logwatch? ( sys-apps/logwatch ) + tcpd? ( >=sys-apps/tcp-wrappers-7.6 ) + readline? ( >=sys-libs/readline-4.1 ) + static? ( + acl? ( virtual/acl[static-libs] ) + sys-libs/zlib[static-libs] + dev-libs/lzo[static-libs] + sys-libs/ncurses[static-libs] + ssl? ( dev-libs/openssl[static-libs] ) + ) + !static? ( + acl? ( virtual/acl ) + sys-libs/zlib + dev-libs/lzo + sys-libs/ncurses + ssl? ( dev-libs/openssl ) + )" +RDEPEND="${DEPEND} + !bacula-clientonly? ( + !bacula-nosd? ( + sys-block/mtx + app-arch/mt-st + ) + ) + vim-syntax? ( || ( app-editors/vim app-editors/gvim ) )" + +REQUIRED_USE="|| ( ^^ ( mysql postgres sqlite ) bacula-clientonly ) + static? ( bacula-clientonly )" + +S=${WORKDIR}/${MY_P} + +pkg_setup() { + #XOR and !bacula-clientonly controlled by REQUIRED_USE + use mysql && export mydbtype="mysql" + use postgres && export mydbtype="postgresql" + use sqlite && export mydbtype="sqlite3" + + # create the daemon group and user + if [ -z "$(egetent group bacula 2>/dev/null)" ]; then + enewgroup bacula + einfo + einfo "The group 'bacula' has been created. Any users you add to this" + einfo "group have access to files created by the daemons." + einfo + fi + + if use bacula-clientonly && use static && use qt4; then + ewarn + ewarn "Building statically linked 'bat' is not supported. Ignorig 'qt4' useflag." + ewarn + fi + + if ! use bacula-clientonly; then + if [ -z "$(egetent passwd bacula 2>/dev/null)" ]; then + enewuser bacula -1 -1 /var/lib/bacula bacula,disk,tape,cdrom,cdrw + einfo + einfo "The user 'bacula' has been created. Please see the bacula manual" + einfo "for information about running bacula as a non-root user." + einfo + fi + fi +} + +src_prepare() { + # adjusts default configuration files for several binaries + # to /etc/bacula/ instead of ./ + pushd src >&/dev/null || die + for f in console/console.c dird/dird.c filed/filed.c \ + stored/bcopy.c stored/bextract.c stored/bls.c \ + stored/bscan.c stored/btape.c stored/stored.c \ + qt-console/main.cpp; do + sed -i -e 's|^\(#define CONFIG_FILE "\)|\1/etc/bacula/|g' "${f}" \ + || die "sed on ${f} failed" + done + popd >&/dev/null || die + + # bug 466688 drop deprecated categories from Desktop file + sed -i -e 's/Application;//' scripts/bat.desktop.in || die + + # bug 466690 Use CXXFLAGS instead of CFLAGS + sed -i -e 's/@CFLAGS@/@CXXFLAGS@/' autoconf/Make.common.in || die + + # drop automatic install of unneeded documentation (for bug 356499) + epatch "${FILESDIR}"/7.2.0/${PN}-7.2.0-doc.patch + + # bug #310087 + epatch "${FILESDIR}"/5.2.3/${PN}-5.2.3-as-needed.patch + + # bug #311161 + epatch "${FILESDIR}"/5.2.3/${PN}-5.2.3-lib-search-path.patch + + # bat needs to respect LDFLAGS + epatch "${FILESDIR}"/5.2.3/${PN}-5.2.3-ldflags.patch + + # bug #328701 + epatch "${FILESDIR}"/5.2.3/${PN}-5.2.3-openssl-1.patch + + epatch "${FILESDIR}"/7.2.0/${PN}-7.2.0-fix-static.patch + + # do not strip binaries + sed -i -e "s/strip /# strip /" src/filed/Makefile.in || die + sed -i -e "s/strip /# strip /" src/console/Makefile.in || die + + # fix file not found error during make depend + epatch "${FILESDIR}"/7.0.2/${PN}-7.0.2-depend.patch + + # Fix systemd unit files: + # bug 497748 + sed -i -e '/Requires/d' platforms/systemd/*.service.in || die + sed -i -e '/StandardOutput/d' platforms/systemd/*.service.in || die + # bug 504370 + sed -i -e '/Alias=bacula-dir/d' platforms/systemd/bacula-dir.service.in || die + + # Fix tmpfiles config for client-only (no bacula user) install + # NOTE: Change only first occurance (user) not second (group) + # bug 528398 + if use bacula-clientonly; then + sed -i -e 's/bacula/root/' platforms/systemd/bacula.conf.in || die + fi + + # fix bundled libtool (bug 466696) + # But first move directory with M4 macros out of the way. + # It is only needed by autoconf and gives errors during elibtoolize. + mv autoconf/libtool autoconf/libtool1 || die + elibtoolize +} + +src_configure() { + local myconf='' + + if use bacula-clientonly; then + myconf="${myconf} \ + $(use_enable bacula-clientonly client-only) \ + $(use_enable !static libtool) \ + $(use_enable static static-cons) \ + $(use_enable static static-fd)" + else + myconf="${myconf} \ + $(use_enable !bacula-nodir build-dird) \ + $(use_enable !bacula-nosd build-stored)" + # bug #311099 + # database support needed by dir-only *and* sd-only + # build as well (for building bscan, btape, etc.) + myconf="${myconf} \ + --with-${mydbtype} \ + --enable-batch-insert" + fi + + # do not build bat if 'static' clientonly + if ! use bacula-clientonly || ! use static; then + myconf="${myconf} \ + $(use_enable qt4 bat)" + fi + + myconf="${myconf} \ + $(use_with X x) \ + $(use_enable !readline conio) \ + $(use_enable readline) \ + $(use_with readline readline /usr) \ + $(use_with ssl openssl) \ + $(use_enable ipv6) \ + $(use_enable acl) \ + $(use_with tcpd tcp-wrappers)" + + econf \ + --libdir=/usr/$(get_libdir) \ + --docdir=/usr/share/doc/${PF} \ + --htmldir=/usr/share/doc/${PF}/html \ + --with-pid-dir=/var/run \ + --sysconfdir=/etc/bacula \ + --with-subsys-dir=/var/lock/subsys \ + --with-working-dir=/var/lib/bacula \ + --with-logdir=/var/lib/bacula \ + --with-scriptdir=/usr/libexec/bacula \ + --with-systemd=$(systemd_get_unitdir) \ + --with-dir-user=bacula \ + --with-dir-group=bacula \ + --with-sd-user=root \ + --with-sd-group=bacula \ + --with-fd-user=root \ + --with-fd-group=bacula \ + --enable-smartalloc \ + --disable-afs \ + --host=${CHOST} \ + ${myconf} + # correct configuration for QT based bat + if use qt4 ; then + pushd src/qt-console + eqmake4 + popd + fi +} + +src_compile() { + # Make build log verbose (bug #447806) + emake NO_ECHO="" +} + +src_install() { + emake DESTDIR="${D}" install + doicon scripts/bacula.png + + # install bat icon and desktop file when enabled + # (for some reason ./configure doesn't pick this up) + if use qt4 && ! use static ; then + doicon src/qt-console/images/bat_icon.png + domenu scripts/bat.desktop + fi + + # remove some scripts we don't need at all + rm -f "${D}"/usr/libexec/bacula/{bacula,bacula-ctl-dir,bacula-ctl-fd,bacula-ctl-sd,startmysql,stopmysql} + + # rename statically linked apps + if use bacula-clientonly && use static ; then + pushd "${D}"/usr/sbin || die + mv static-bacula-fd bacula-fd || die + mv static-bconsole bconsole || die + popd || die + fi + + # extra files which 'make install' doesn't cover + if ! use bacula-clientonly; then + # the database update scripts + diropts -m0750 + insinto /usr/libexec/bacula/updatedb + insopts -m0754 + doins "${S}"/updatedb/* + fperms 0640 /usr/libexec/bacula/updatedb/README + + # the logrotate configuration + # (now unconditional wrt bug #258187) + diropts -m0755 + insinto /etc/logrotate.d + insopts -m0644 + newins "${S}"/scripts/logrotate bacula + + # the logwatch scripts + if use logwatch; then + diropts -m0750 + dodir /etc/log.d/scripts/services + dodir /etc/log.d/scripts/shared + dodir /etc/log.d/conf/logfiles + dodir /etc/log.d/conf/services + pushd "${S}"/scripts/logwatch >&/dev/null || die + emake DESTDIR="${D}" install + popd >&/dev/null || die + fi + fi + + if ! use qt4; then + rm -vf "${D}"/usr/share/man/man1/bat.1* + fi + rm -vf "${D}"/usr/share/man/man1/bacula-tray-monitor.1* + if use bacula-clientonly || use bacula-nodir; then + rm -vf "${D}"/usr/share/man/man8/bacula-dir.8* + rm -vf "${D}"/usr/share/man/man8/dbcheck.8* + rm -vf "${D}"/usr/share/man/man1/bsmtp.1* + rm -vf "${D}"/usr/libexec/bacula/create_*_database + rm -vf "${D}"/usr/libexec/bacula/drop_*_database + rm -vf "${D}"/usr/libexec/bacula/make_*_tables + rm -vf "${D}"/usr/libexec/bacula/update_*_tables + rm -vf "${D}"/usr/libexec/bacula/drop_*_tables + rm -vf "${D}"/usr/libexec/bacula/grant_*_privileges + rm -vf "${D}"/usr/libexec/bacula/*_catalog_backup + fi + if use bacula-clientonly || use bacula-nosd; then + rm -vf "${D}"/usr/share/man/man8/bacula-sd.8* + rm -vf "${D}"/usr/share/man/man8/bcopy.8* + rm -vf "${D}"/usr/share/man/man8/bextract.8* + rm -vf "${D}"/usr/share/man/man8/bls.8* + rm -vf "${D}"/usr/share/man/man8/bscan.8* + rm -vf "${D}"/usr/share/man/man8/btape.8* + rm -vf "${D}"/usr/libexec/bacula/disk-changer + rm -vf "${D}"/usr/libexec/bacula/mtx-changer + rm -vf "${D}"/usr/libexec/bacula/dvd-handler + fi + + # documentation + dodoc ChangeLog ReleaseNotes SUPPORT + + # install examples (bug #457504) + if use examples; then + docinto examples/ + dodoc -r examples/* + fi + + # vim-files + if use vim-syntax; then + insinto /usr/share/vim/vimfiles/syntax + doins scripts/bacula.vim + insinto /usr/share/vim/vimfiles/ftdetect + newins scripts/filetype.vim bacula_ft.vim + fi + + # setup init scripts + myscripts="bacula-fd" + if ! use bacula-clientonly; then + if ! use bacula-nodir; then + myscripts="${myscripts} bacula-dir" + fi + if ! use bacula-nosd; then + myscripts="${myscripts} bacula-sd" + fi + fi + for script in ${myscripts}; do + # copy over init script and config to a temporary location + # so we can modify them as needed + cp "${FILESDIR}/${script}".confd "${T}/${script}".confd || die "failed to copy ${script}.confd" + cp "${FILESDIR}/${script}".initd "${T}/${script}".initd || die "failed to copy ${script}.initd" + + # now set the database dependancy for the director init script + case "${script}" in + bacula-dir) + case "${mydbtype}" in + sqlite3) + # sqlite databases don't have a daemon + sed -i -e 's/need "%database%"/:/g' "${T}/${script}".initd || die + ;; + *) + # all other databases have daemons + sed -i -e "s:%database%:${mydbtype}:" "${T}/${script}".initd || die + ;; + esac + ;; + *) + ;; + esac + + # install init script and config + newinitd "${T}/${script}".initd "${script}" + newconfd "${T}/${script}".confd "${script}" + done + + systemd_dounit "${S}"/platforms/systemd/bacula-{dir,fd,sd}.service + + # make sure the working directory exists + diropts -m0750 + keepdir /var/lib/bacula + + # make sure bacula group can execute bacula libexec scripts + fowners -R root:bacula /usr/libexec/bacula +} + +pkg_postinst() { + if use bacula-clientonly; then + fowners root:bacula /var/lib/bacula + else + fowners bacula:bacula /var/lib/bacula + fi + + if ! use bacula-clientonly && ! use bacula-nodir; then + einfo + einfo "If this is a new install, you must create the ${mydbtype} databases with:" + einfo " /usr/libexec/bacula/create_${mydbtype}_database" + einfo " /usr/libexec/bacula/make_${mydbtype}_tables" + einfo " /usr/libexec/bacula/grant_${mydbtype}_privileges" + einfo + + ewarn "ATTENTION!" + ewarn "The format of the database has changed." + ewarn "If you just upgraded you must run 'update_bacula_tables' now" + ewarn "Make sure to have a backup of your catalog before" + ewarn + fi + + if use sqlite; then + einfo + einfo "Be aware that Bacula does not officially support SQLite database anymore." + einfo "Best use it only for a client-only installation. See Bug #445540." + einfo + fi + + einfo "Please note that 'bconsole' will always be installed. To compile 'bat'" + einfo "you have to enable 'USE=qt4'." + einfo +} diff --git a/app-backup/bacula/files/7.2.0/bacula-7.2.0-doc.patch b/app-backup/bacula/files/7.2.0/bacula-7.2.0-doc.patch new file mode 100644 index 000000000000..155746a876dd --- /dev/null +++ b/app-backup/bacula/files/7.2.0/bacula-7.2.0-doc.patch @@ -0,0 +1,12 @@ +--- Makefile.in.orig 2015-09-03 20:03:22.000000000 +0200 ++++ Makefile.in 2015-09-03 20:03:50.000000000 +0200 +@@ -35,8 +35,7 @@ + autoconf/config.h.in autoconf/acconfig.h autoconf/Make.common.in \ + autoconf/install-sh autoconf/mkinstalldirs + +-doc_files = VERIFYING ChangeLog README ReleaseNotes LICENSE \ +- LICENSE-FAQ LICENSE-FOSS INSTALL ++doc_files = + + MKDIR = $(srcdir)/autoconf/mkinstalldirs + LIBTOOL_DEPS = @LIBTOOL_DEPS@ diff --git a/app-backup/bacula/files/7.2.0/bacula-7.2.0-fix-static.patch b/app-backup/bacula/files/7.2.0/bacula-7.2.0-fix-static.patch new file mode 100644 index 000000000000..faf0d065b90f --- /dev/null +++ b/app-backup/bacula/files/7.2.0/bacula-7.2.0-fix-static.patch @@ -0,0 +1,56 @@ +--- src/console/Makefile.in.orig 2011-10-30 14:10:41.100802721 -0400 ++++ src/console/Makefile.in 2011-10-30 14:14:42.330488174 -0400 +@@ -29,10 +29,11 @@ + GETTEXT_LIBS = @LIBINTL@ + + CONS_INC=@CONS_INC@ + CONS_LIBS=@CONS_LIBS@ + CONS_LDFLAGS=@CONS_LDFLAGS@ ++ZLIBS=@ZLIBS@ + + .SUFFIXES: .c .o + .PHONY: + .DONTCARE: + +@@ -46,17 +47,17 @@ + @echo " " + + + bconsole: Makefile $(CONSOBJS) ../lib/libbac$(DEFAULT_ARCHIVE_TYPE) ../lib/libbaccfg$(DEFAULT_ARCHIVE_TYPE) + $(LIBTOOL_LINK) $(CXX) -L../lib -L../cats $(LDFLAGS) $(CONS_LDFLAGS) -o $@ $(CONSOBJS) \ +- $(DLIB) $(CONS_LIBS) -lbaccfg -lbac -lm $(LIBS) $(GETTEXT_LIBS) \ +- $(OPENSSL_LIBS) ++ $(DLIB) $(CONS_LIBS) -lbaccfg -lbac -lm $(ZLIBS) $(GETTEXT_LIBS) \ ++ $(OPENSSL_LIBS) $(LIBS) + + static-bconsole: Makefile $(CONSOBJS) ../lib/libbac.a ../lib/libbaccfg$(DEFAULT_ARCHIVE_TYPE) + $(LIBTOOL_LINK) $(CXX) -static $(LDFLAGS) $(CONS_LDFLAGS) -L../lib -L../cats -o $@ $(CONSOBJS) \ +- $(DLIB) $(CONS_LIBS) -lbaccfg -lbac -lm $(LIBS) $(GETTEXT_LIBS) \ +- $(OPENSSL_LIBS) ++ $(DLIB) $(CONS_LIBS) -lbaccfg -lbac -lm $(ZLIBS) $(GETTEXT_LIBS) \ ++ $(OPENSSL_LIBS) $(LIBS) $(ZLIBS) + strip $@ + + + Makefile: $(srcdir)/Makefile.in $(topdir)/config.status + cd $(topdir) \ +--- src/filed/Makefile.in.orig 2015-09-04 12:47:13.000000000 +0200 ++++ src/filed/Makefile.in 2015-09-04 12:49:39.000000000 +0200 +@@ -66,13 +66,13 @@ + bacula-fd: Makefile $(SVROBJS) ../findlib/libbacfind$(DEFAULT_ARCHIVE_TYPE) ../lib/libbaccfg$(DEFAULT_ARCHIVE_TYPE) ../lib/libbac$(DEFAULT_ARCHIVE_TYPE) + @echo "Linking $@ ..." + $(LIBTOOL_LINK) $(CXX) $(WLDFLAGS) $(LDFLAGS) -L../lib -L../findlib -o $@ $(SVROBJS) \ +- $(FDLIBS) $(ZLIBS) -lbacfind -lbaccfg -lbac -lm $(LIBS) \ +- $(DLIB) $(WRAPLIBS) $(GETTEXT_LIBS) $(OPENSSL_LIBS) $(CAP_LIBS) $(AFS_LIBS) $(LZO_LIBS) ++ $(FDLIBS) $(ZLIBS) -lbacfind -lbaccfg -lbac -lm \ ++ $(DLIB) $(WRAPLIBS) $(GETTEXT_LIBS) $(OPENSSL_LIBS) $(LIBS) $(CAP_LIBS) $(AFS_LIBS) $(LZO_LIBS) + + static-bacula-fd: Makefile $(SVROBJS) ../findlib/libbacfind.a ../lib/libbaccfg$(DEFAULT_ARCHIVE_TYPE) ../lib/libbac$(DEFAULT_ARCHIVE_TYPE) + $(LIBTOOL_LINK) $(CXX) $(WLDFLAGS) $(LDFLAGS) -static -L../lib -L../findlib -o $@ $(SVROBJS) \ +- $(FDLIBS) $(ZLIBS) -lbacfind -lbaccfg -lbac -lm $(LIBS) \ +- $(DLIB) $(WRAPLIBS) $(GETTEXT_LIBS) $(OPENSSL_LIBS) $(CAP_LIBS) $(AFS_LIBS) $(LZO_LIBS) ++ $(FDLIBS) $(ZLIBS) -lbacfind -lbaccfg -lbac -lm \ ++ $(DLIB) $(WRAPLIBS) $(GETTEXT_LIBS) $(OPENSSL_LIBS) $(LIBS) $(CAP_LIBS) $(AFS_LIBS) $(LZO_LIBS) + strip $@ + + Makefile: $(srcdir)/Makefile.in $(topdir)/config.status -- 2.26.2