# Distributed under the terms of the GNU General Public License v2 SCM_REPOSITORY="http://git.bacula.org/bacula.git" SCM_BRANCH="Branch-9.0" require scm-git systemd-service qmake [ slot=5 ] require autotools [ supported_autoconf=[ 2.5 ] supported_automake=[ 1.15 1.13 1.12 1.11 ] need_libtool=true ] DOWNLOADS="" SLOT="0" PLATFORMS="~amd64 ~x86" SUMMARY="Featureful client/server network backup suite" HOMEPAGE="http://www.bacula.org/" LICENCES="AGPL-3" MYOPTIONS=" acl bacula-clientonly bacula-nodir bacula-nosd examples ipv6 logwatch qt5 readline ssl tcpd vim-syntax X ssl? ( providers: libressl openssl ) [[ number-selected = exactly-one ]] !bacula-clientonly? ( mysql postgres sqlite ) [[ number-selected = exactly-one ]] " DEPENDENCIES=" build: dev-libs/gmp !bacula-clientonly? ( postgres? ( dev-db/postgresql ) mysql? ( virtual/mysql ) sqlite? ( dev-db/sqlite ) !bacula-nodir? ( virtual/mta ) ) qt5? ( x11-libs/qwt[qt5] x11-libs/qtsvg:5 ) logwatch? ( sys-apps/logwatch ) tcpd? ( sys-apps/tcp-wrappers ) readline? ( sys-libs/readline ) acl? ( sys-apps/acl ) sys-libs/zlib app-arch/lzo sys-libs/ncurses ssl? ( providers:libressl? ( dev-libs/libressl ) providers:openssl? ( dev-libs/openssl ) ) build+run: !bacula-clientonly? ( !bacula-nosd? ( sys-block/mtx app-arch/mt-st ) ) vim-syntax? ( || ( app-editors/vim app-editors/gvim ) ) " WORK="${WORK}"/bacula pkg_setup() { option mysql && export mydbtype="mysql" option postgres && export mydbtype="postgresql" option sqlite && export mydbtype="sqlite3" #TODO: create group and user } src_prepare() { edo pushd src >&/dev/null 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 edo sed -i -e 's|^\(#define CONFIG_FILE "\)|\1/etc/bacula/|g' "${f}" done popd >&/dev/null || die edo sed -i -e 's/Application;//' scripts/bat.desktop.in edo sed -i -e 's/@CFLAGS@/@CXXFLAGS@/' autoconf/Make.common.in expatch -p0 "${FILES}"/7.2.0/${PN}-7.2.0-doc.patch expatch "${FILES}"/5.2.3/${PN}-5.2.3-as-needed.patch expatch -p0 "${FILES}"/9.0.2/${PN}-9.0.2-lib-search-path.patch expatch -p0 "${FILES}"/9.0.6/${PN}-9.0.6-bat-pro.patch expatch -p0 "${FILES}"/5.2.3/${PN}-5.2.3-openssl-1.patch expatch -p0 "${FILES}/bacula-fix-sonames.patch" edo sed -i -e "s/strip /# strip /" src/filed/Makefile.in edo sed -i -e "s/strip /# strip /" src/console/Makefile.in expatch -p0 "${FILES}"/7.0.2/${PN}-7.0.2-depend.patch edo sed -i -e '/Requires/d' platforms/systemd/*.service.in edo sed -i -e '/StandardOutput/d' platforms/systemd/*.service.in edo sed -i -e '/Alias=bacula-dir/d' platforms/systemd/bacula-dir.service.in edo sed -i -e 's/@dir_user@/root/g' platforms/systemd/bacula-dir.service.in edo sed -i -e 's#bins.files = bat#bins.files = .libs/bat#g' \ src/qt-console/bat.pro.in edo mkdir src/qt-console/.libs edo touch src/qt-console/.libs/bat edo chmod 755 src/qt-console/.libs/bat expatch -p0 "${FILES}"/9.0.6/${PN}-9.0.6-libressl.patch edo mv autoconf/libtool autoconf/libtool1 default } src_configure() { local myconf=() if option bacula-clientonly; then myconf+=( $(option_enable bacula-clientonly client-only) ) else myconf+=( $(option_enable !bacula-nodir build-dird) $(option_enable !bacula-nosd build-stored) --with-${mydbtype} ) if option mysql; then myconf+=( --disable-batch-insert ) else myconf+=( --enable-batch-insert ) fi fi econf \ "${myconf[@]}" \ $(option_enable qt5 bat) \ $(option_with X x) \ $(option_enable !readline conio) \ $(option_enable readline) \ $(option_with ssl openssl) \ $(option_enable acl) \ $(option_enable ipv6) \ $(option_with tcpd tcp-wrappers) \ --with-dir-user=bacula \ --with-dir-group=bacula \ --with-sd-user=root \ --with-sd-group=bacula \ --with-fd-user=root \ --with-fd-group=bacula \ --with-scriptdir=/usr/$(exhost --target)/libexec/bacula \ --with-working-dir=/var/lib/bacula \ --with-subsys-dir=/var/lock/subsys \ --sysconfdir=/etc/bacula \ --with-pid-dir=/var/run \ --libdir=/usr/$(exhost --target)/lib \ --enable-smartalloc \ --disable-afs \ } src_compile() { emake NO_ECHO="" } src_install() { default rm -f "${IMAGE}"/usr/libexec/bacula/{bacula,bacula-ctl-dir,bacula-ctl-fd,bacula-ctl-sd,startmysql,stopmysql} # extra files which 'make install' doesn't cover if ! option bacula-clientonly; then # the database update scripts diropts -m0750 insinto "${IMAGE}"/usr/$(exhost --target)/libexec/bacula/updatedb insopts -m0754 doins "${WORK}"/updatedb/* fperms 0640 "${IMAGE}"/usr/$(exhost --target)/libexec/bacula/updatedb/README # the logrotate configuration # (now unconditional wrt bug #258187) diropts -m0755 insinto "${IMAGE}"/etc/logrotate.d insopts -m0644 newins "${WORK}"/scripts/logrotate bacula # the logwatch scripts if option logwatch; then diropts -m0750 dodir /usr/share/logwatch/scripts/services dodir /usr/share/logwatch/scripts/shared dodir /etc/logwatch/conf/logfiles dodir /etc/logwatch/conf/services edo pushd "${WORK}"/scripts/logwatch >&/dev/null emake install popd >&/dev/null || die fi fi if ! option qt5; then rm -vf "${IMAGE}"/usr/share/man/man1/bat.1* fi rm -vf "${IMAGE}"/usr/share/man/man1/bacula-tray-monitor.1* if option bacula-clientonly || option bacula-nodir; then rm -vf "${IMAGE}"/usr/share/man/man8/bacula-dir.8* rm -vf "${IMAGE}"/usr/share/man/man8/dbcheck.8* rm -vf "${IMAGE}"/usr/share/man/man1/bsmtp.1* rm -vf "${IMAGE}"/usr/libexec/bacula/create_*_database rm -vf "${IMAGE}"/usr/libexec/bacula/drop_*_database rm -vf "${IMAGE}"/usr/libexec/bacula/make_*_tables rm -vf "${IMAGE}"/usr/libexec/bacula/update_*_tables rm -vf "${IMAGE}"/usr/libexec/bacula/drop_*_tables rm -vf "${IMAGE}"/usr/libexec/bacula/grant_*_privileges rm -vf "${IMAGE}"/usr/libexec/bacula/*_catalog_backup fi if option bacula-clientonly || option bacula-nosd; then rm -vf "${IMAGE}"/usr/share/man/man8/bacula-sd.8* rm -vf "${IMAGE}"/usr/share/man/man8/bcopy.8* rm -vf "${IMAGE}"/usr/share/man/man8/bextract.8* rm -vf "${IMAGE}"/usr/share/man/man8/bls.8* rm -vf "${IMAGE}"/usr/share/man/man8/bscan.8* rm -vf "${IMAGE}"/usr/share/man/man8/btape.8* rm -vf "${IMAGE}"/usr/libexec/bacula/disk-changer rm -vf "${IMAGE}"/usr/libexec/bacula/mtx-changer rm -vf "${IMAGE}"/usr/libexec/bacula/dvd-handler fi if option examples; then docinto examples/ dodoc -r examples/* fi # vim-files if option 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 edo rmdir "${IMAGE}"/usr/share/man/man1 edo rmdir "${IMAGE}"/tmp edo rmdir "${IMAGE}"/opt/bacula/log edo rmdir "${IMAGE}"/opt/bacula edo rmdir "${IMAGE}"/opt edo touch "${IMAGE}"/var/lib/bacula/.keep }