diff options
author | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2018-08-23 01:05:10 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss@sss.chaoslab.ru> | 2018-08-23 01:05:10 +0300 |
commit | 6050b8026fead1a1ef9ccd54da88b4739e57d954 (patch) | |
tree | b260235f683d004d5f7388bffab72cb2ba02b042 /packages/app-backup/bacula/bacula.exlib | |
parent | 99b36426bd20f2ccfa36ac0cb28a0bd239da1772 (diff) |
bacula: refactoring, libressl fix
- added libressl>=2.7 patch
- redone src_configure related code
- used exlib
- added release versions 9.0.8, 9.2.1
Diffstat (limited to 'packages/app-backup/bacula/bacula.exlib')
-rw-r--r-- | packages/app-backup/bacula/bacula.exlib | 270 |
1 files changed, 270 insertions, 0 deletions
diff --git a/packages/app-backup/bacula/bacula.exlib b/packages/app-backup/bacula/bacula.exlib new file mode 100644 index 0000000..f4d0ba3 --- /dev/null +++ b/packages/app-backup/bacula/bacula.exlib @@ -0,0 +1,270 @@ +# Distributed under the terms of the GNU General Public License v2 +# Copyright 1999-2018 Gentoo Foundation +# Copyright 2018 Gluzskiy Alexandr <sss@sss.chaoslab.ru> + + +SCM_REPOSITORY="http://git.bacula.org/bacula.git" +if ever is_scm; then + SCM_BRANCH="Branch-9.2" +else + SCM_TAG="Release-${PV}" +fi +require scm-git systemd-service +require autotools [ supported_autoconf=[ 2.5 ] supported_automake=[ 1.15 1.13 1.12 1.11 ] need_libtool=true ] + +export_exlib_phases pkg_setup src_prepare src_compile src_install + +DOWNLOADS="" +SLOT="0" + +SUMMARY="Featureful client/server network backup suite" +HOMEPAGE="https://blog.bacula.org" +LICENCES="AGPL-3" + +MYOPTIONS=" + acl + minimal [[ description = [ Build only bacula-fd client daemon ] ]] + bacula-dir [[ description = [ Do not build bacula directory server ] ]] + bacula-sd [[ description = [ Do not build storage daemon ] ]] + examples + ipv6 [[ description = [ Bacula is backup solution used mostly in local networks, most probably you want ipv6 turned off ] ]] + logwatch [[ description = [ Add support for sys-apps/logwatch ] ]] + qt5 + readline + ssl [[ description = [ Allow to use encryption of data storage via ssl backend library ] ]] + tcpd + vim-syntax + X + ssl? ( providers: + libressl + openssl + ) + [[ number-selected = exactly-one ]] + !minimal? ( + mysql + postgres [[ description = [ Adds PostgreSQL Database support ] ]] + sqlite + ) + [[ number-selected = exactly-one ]] +" + +DEPENDENCIES=" + build+run: + app-arch/lzo + dev-libs/gmp:6 + sys-libs/ncurses + sys-libs/zlib + acl? ( sys-apps/acl ) + logwatch? ( sys-apps/logwatch ) + !minimal? ( + postgres? ( dev-db/postgresql ) + mysql? ( virtual/mysql ) + sqlite? ( dev-db/sqlite ) + bacula-dir? ( virtual/mta ) + bacula-sd? ( + sys-block/mtx + app-arch/mt-st + ) + ) + qt5? ( + x11-libs/qtbase:5 + x11-libs/qwt[qt5] + x11-libs/qtsvg:5 + ) + readline? ( sys-libs/readline:7 ) + ssl? ( + providers:libressl? ( dev-libs/libressl ) + providers:openssl? ( dev-libs/openssl ) + ) + tcpd? ( sys-apps/tcp-wrappers ) + vim-syntax? ( || ( app-editors/vim app-editors/gvim ) ) + user/bacula + group/bacula +" + +WORK="${WORK}"/bacula + +bacula_pkg_setup() { + option mysql && export mydbtype="mysql" + option postgres && export mydbtype="postgresql" + option sqlite && export mydbtype="sqlite3" +} + +DEFAULT_SRC_PREPARE_PATCHES=( + -p0 "${FILES}"/7.2.0/${PN}-7.2.0-doc.patch + -p1 "${FILES}"/5.2.3/${PN}-5.2.3-as-needed.patch + -p0 "${FILES}"/9.0.2/${PN}-9.0.2-lib-search-path.patch + "${FILES}"/5.2.3/${PN}-5.2.3-openssl-1.patch + "${FILES}/bacula-fix-sonames.patch" + "${FILES}"/7.0.2/${PN}-7.0.2-depend.patch + -p0 "${FILES}"/9.0.6/${PN}-9.0.6-libressl.patch + -p1 "${FILES}"/bacula-libressl-2.7.patch +) + +bacula_src_prepare() { + #NOTE: ciphertext mostly copypasted from gentoo follows + #do not ask me to decipher this, i probably can't + + 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 + edo popd >&/dev/null + edo sed -i -e 's/Application;//' scripts/bat.desktop.in + edo sed -i -e 's/@CFLAGS@/@CXXFLAGS@/' autoconf/Make.common.in + expatch -p0 "${FILES}"/9.0.6/${PN}-9.0.6-bat-pro.patch + edo sed -i -e "s/strip /# strip /" src/filed/Makefile.in + edo sed -i -e "s/strip /# strip /" src/console/Makefile.in + 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 + edo mv autoconf/libtool autoconf/libtool1 + + default +} + +DEFAULT_SRC_CONFIGURE_PARAMS=( + --hates=disable-dependency-tracking + --hates=disable-silent-rules + --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 +) +DEFAULT_SRC_CONFIGURE_OPTION_ENABLES=( + 'minimal client-only' + 'bacula-dir build-dird' + 'bacula-sd build-stored' + 'mysql batch-insert' + 'qt5 bat' + readline + '!readline conio' + ipv6 + acl +) + +DEFAULT_SRC_CONFIGURE_OPTION_WITHS=( + mysql + 'sqlite sqlite3' + 'postgres postgresql' + 'X x' + 'tcpd tcp-wrappers' + 'ssl openssl' +) + +#bacula_src_configure() { +# econf \ +# "${myconf[@]}" \ +# $(option_enable !readline conio) \ +# +#} + +bacula_src_compile() { + emake NO_ECHO="" +} + +bacula_src_install() { + default + edo 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 minimal; then + # the database update scripts + diropts -m0750 + insinto /usr/$(exhost --target)/libexec/bacula/updatedb + insopts -m0754 + doins "${WORK}"/updatedb/* + edo chmod 0640 "${IMAGE}"/usr/$(exhost --target)/libexec/bacula/updatedb/README + + # the logrotate configuration + # (now unconditional wrt bug #258187) + diropts -m0755 + insinto /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 + edo popd >&/dev/null + fi + fi + + if ! option qt5; then + edo rm -vf "${IMAGE}"/usr/share/man/man1/bat.1* + fi + + edo rm -vf "${IMAGE}"/usr/share/man/man1/bacula-tray-monitor.1* + + if option minimal || ! option bacula-dir; then + nonfatal edo rm -vf "${IMAGE}"/usr/share/man/man8/bacula-dir.8* + nonfatal edo rm -vf "${IMAGE}"/usr/share/man/man8/dbcheck.8* + nonfatal edo rm -vf "${IMAGE}"/usr/share/man/man1/bsmtp.1* + nonfatal edo rm -vf "${IMAGE}"/usr/libexec/bacula/create_*_database + nonfatal edo rm -vf "${IMAGE}"/usr/libexec/bacula/drop_*_database + nonfatal edo rm -vf "${IMAGE}"/usr/libexec/bacula/make_*_tables + nonfatal edo rm -vf "${IMAGE}"/usr/libexec/bacula/update_*_tables + nonfatal edo rm -vf "${IMAGE}"/usr/libexec/bacula/drop_*_tables + nonfatal edo rm -vf "${IMAGE}"/usr/libexec/bacula/grant_*_privileges + nonfatal edo rm -vf "${IMAGE}"/usr/libexec/bacula/*_catalog_backup + fi + if option minimal || ! option bacula-sd; then + nonfatal edo rm -vf "${IMAGE}"/usr/share/man/man8/bacula-sd.8* + nonfatal edo rm -vf "${IMAGE}"/usr/share/man/man8/bcopy.8* + nonfatal edo rm -vf "${IMAGE}"/usr/share/man/man8/bextract.8* + nonfatal edo rm -vf "${IMAGE}"/usr/share/man/man8/bls.8* + nonfatal edo rm -vf "${IMAGE}"/usr/share/man/man8/bscan.8* + nonfatal edo rm -vf "${IMAGE}"/usr/share/man/man8/btape.8* + nonfatal edo rm -vf "${IMAGE}"/usr/libexec/bacula/disk-changer + nonfatal edo rm -vf "${IMAGE}"/usr/libexec/bacula/mtx-changer + nonfatal edo 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 + + if option minimal; then + edo rmdir "${IMAGE}"/usr/share/man/man1 + fi + edo rmdir "${IMAGE}"/tmp + edo rmdir "${IMAGE}"/opt/bacula/log + edo rmdir "${IMAGE}"/opt/bacula + edo rmdir "${IMAGE}"/opt + keepdir /var/lib/bacula +} + |