From 3f7bec87dc5af5e7cac6c70eae2b9b29e285f43d Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Thu, 1 Dec 2022 07:25:29 +0100 Subject: temporarily added a patched and upgraded version of bacula 13.0.1 --- archlinuxaba/bacula/.SRCINFO | 88 +++++++++ archlinuxaba/bacula/PKGBUILD | 269 ++++++++++++++++++++++++++++ archlinuxaba/bacula/bacula-dir.service | 24 +++ archlinuxaba/bacula/bacula-fd.service | 18 ++ archlinuxaba/bacula/bacula-sd.service | 18 ++ archlinuxaba/bacula/bacula.install | 4 + archlinuxaba/bacula/look-for-qt-order.patch | 23 +++ 7 files changed, 444 insertions(+) create mode 100644 archlinuxaba/bacula/.SRCINFO create mode 100644 archlinuxaba/bacula/PKGBUILD create mode 100644 archlinuxaba/bacula/bacula-dir.service create mode 100644 archlinuxaba/bacula/bacula-fd.service create mode 100644 archlinuxaba/bacula/bacula-sd.service create mode 100755 archlinuxaba/bacula/bacula.install create mode 100644 archlinuxaba/bacula/look-for-qt-order.patch diff --git a/archlinuxaba/bacula/.SRCINFO b/archlinuxaba/bacula/.SRCINFO new file mode 100644 index 0000000..4ffc4a8 --- /dev/null +++ b/archlinuxaba/bacula/.SRCINFO @@ -0,0 +1,88 @@ +pkgbase = bacula + pkgdesc = Bacula - A Network Backup Tool + pkgver = 13.0.1 + pkgrel = 1 + url = https://www.bacula.org + install = bacula.install + arch = x86_64 + license = AGPL3 + makedepends = sqlite + makedepends = libmariadbclient + makedepends = postgresql-libs + makedepends = qt5-base + makedepends = openssl + makedepends = readline + makedepends = lzo + source = https://downloads.sourceforge.net/sourceforge/bacula/bacula-13.0.1.tar.gz + source = https://downloads.sourceforge.net/sourceforge/bacula/bacula-13.0.1.tar.gz.sig + source = bacula-dir.service + source = bacula-fd.service + source = bacula-sd.service + source = look-for-qt-order.patch + validpgpkeys = 5235F5B668D81DB61704A82DC0BE2A5FE9DF3643 + sha256sums = d63848d695ac15c1ccfc117892753314bcb9232a852c40e32cca88c0e918978a + sha256sums = SKIP + sha256sums = d1f06403b3460ad8cb7bd063ec31108d87c77dc58bb8a916229262d2bac4a565 + sha256sums = 072a408b136f27251e9420f801d162e828218306ee74c0c5ba83b24f558e5e39 + sha256sums = a5e75ee945479f9e38415d2841cf3485200d9d9374d5a68c19c13b39467ca5bb + sha256sums = 6d0f8dc08d4d5344525f700ec35ae8306a03c3252b47b8870257cf40c581db76 + +pkgname = bacula-common + pkgdesc = Bacula - A Network Backup Tool (common files) + +pkgname = bacula-console + pkgdesc = Bacula - A Network Backup Tool (management CLI) + depends = bacula-common=13.0.1 + depends = readline + backup = etc/bacula/bconsole.conf + +pkgname = bacula-fd + pkgdesc = Bacula - A Network Backup Tool (file daemon) + depends = bacula-common=13.0.1 + backup = etc/bacula/bacula-fd.conf + +pkgname = bacula-bat + pkgdesc = Bacula - A Network Backup Tool (management GUI) + depends = bacula-common=13.0.1 + depends = qt5-base + backup = etc/bacula/bat.conf + +pkgname = bacula-sd + pkgdesc = Bacula - A Network Backup Tool (Storage Daemon) + depends = bacula-common + backup = etc/bacula/bacula-sd.conf + +pkgname = bacula-dir + pkgdesc = Bacula - A Network Backup Tool (Director) + depends = bacula-common=13.0.1 + optdepends = bacula-dir-sqlite3: SQLite support + optdepends = bacula-dir-mariadb: MariaDB support + optdepends = bacula-dir-postgresql: PostgreSQL support + backup = etc/bacula/bacula-dir.conf + +pkgname = bacula-dir-sqlite3 + pkgdesc = Bacula - A Network Backup Tool (Director - SQLite3 support) + depends = bacula-dir + depends = sqlite + conflicts = bacula-dir-mariadb + conflicts = bacula-dir-postgresql + +pkgname = bacula-dir-mariadb + pkgdesc = Bacula - A Network Backup Tool (Director - MariaDB support) + depends = bacula-dir + depends = libmariadbclient + provides = bacula-dir-mysql + conflicts = bacula-dir-sqlite3 + conflicts = bacula-dir-postgresql + replaces = bacula-dir-mysql + +pkgname = bacula-dir-postgresql + pkgdesc = Bacula - A Network Backup Tool (Director - PostgreSQL support) + depends = bacula-dir + depends = postgresql-libs + conflicts = bacula-dir-sqlite3 + conflicts = bacula-dir-mariadb + +pkgname = bacula-dir-mysql + pkgdesc = Bacula - A Network Backup Tool (transition package) + depends = bacula-dir-mariadb diff --git a/archlinuxaba/bacula/PKGBUILD b/archlinuxaba/bacula/PKGBUILD new file mode 100644 index 0000000..7ecdf30 --- /dev/null +++ b/archlinuxaba/bacula/PKGBUILD @@ -0,0 +1,269 @@ +# Maintainer: Marcin (CTRL) Wieczorek +# Contributor: Tom Keller +# Contributor: Daniel Albers +# Contributor: Steven Haigh +# Contributor: Georg Altmann +# bacula-fd.service by Christian Hesse + +pkgbase=bacula +_dir_backends=("${pkgbase}-dir-sqlite3" "${pkgbase}-dir-mariadb" "${pkgbase}-dir-postgresql") +pkgname=("${pkgbase}-common" + "${pkgbase}-console" + "${pkgbase}-fd" + "${pkgbase}-bat" + "${pkgbase}-sd" + "${pkgbase}-dir" + "${_dir_backends[@]}" + "${pkgbase}-dir-mysql") +pkgver=13.0.1 +pkgrel=1 +arch=(x86_64) +pkgdesc="${pkgbase^} - A Network Backup Tool " +url="https://www.${pkgbase}.org" +license=('AGPL3') +makedepends=(sqlite libmariadbclient postgresql-libs qt5-base openssl readline lzo) +install="bacula.install" +source=("https://downloads.sourceforge.net/sourceforge/${pkgbase}/${pkgbase}-${pkgver}.tar.gz"{,.sig} + 'bacula-dir.service' + 'bacula-fd.service' + 'bacula-sd.service' + 'look-for-qt-order.patch') + +sha256sums=('d63848d695ac15c1ccfc117892753314bcb9232a852c40e32cca88c0e918978a' + 'SKIP' + 'd1f06403b3460ad8cb7bd063ec31108d87c77dc58bb8a916229262d2bac4a565' + '072a408b136f27251e9420f801d162e828218306ee74c0c5ba83b24f558e5e39' + 'a5e75ee945479f9e38415d2841cf3485200d9d9374d5a68c19c13b39467ca5bb' + '6d0f8dc08d4d5344525f700ec35ae8306a03c3252b47b8870257cf40c581db76') + +# Bacula 4096 Distribution Verification Key (www.bacula.org) +validpgpkeys=('5235F5B668D81DB61704A82DC0BE2A5FE9DF3643') + +_workdir="/var/lib/${pkgbase}" + +build() { + cd "${srcdir}/${pkgbase}-${pkgver}" + patch -i "${srcdir}/look-for-qt-order.patch" + + ./configure \ + --enable-bat \ + --enable-smartalloc \ + --prefix=/usr \ + --sbindir=/usr/bin \ + --sysconfdir=/etc/${pkgbase} \ + --with-scriptdir=/etc/${pkgbase}/scripts \ + --with-sqlite3 \ + --with-mysql \ + --with-postgresql \ + --with-pid-dir=/run \ + --with-systemd=/usr/lib/systemd/system \ + --with-logdir=/var/log/${pkgbase} \ + --with-working-dir="${_workdir}" \ + --with-openssl=/usr \ + --with-x \ + --enable-readline \ + --disable-conio + + make + make DESTDIR="${srcdir}/install" install + ./libtool --silent --mode=install install \ + src/qt-console/bat src/qt-console/tray-monitor/bacula-tray-monitor \ + "${srcdir}/install/usr/bin" +} + +package_bacula-bat() { + pkgdesc+="(management GUI)" + backup=("etc/${pkgbase}/bat.conf") + depends=("${pkgbase}-common=${pkgver}" qt5-base) + + cd "${srcdir}/install" + cp --parents -a usr/bin/bat "${pkgdir}" + cp --parents -a usr/bin/bacula-tray-monitor "${pkgdir}" + cp --parents -a etc/${pkgbase}/bat.conf "${pkgdir}" + cp --parents -a etc/${pkgbase}/bacula-tray-monitor.conf "${pkgdir}" + cp --parents -a usr/share/man/man1/bat.1.gz "${pkgdir}" + + chmod 755 "${pkgdir}/etc/${pkgbase}" "${pkgdir}/usr/bin/bat" "${pkgdir}/usr/bin/bacula-tray-monitor" + chmod 644 "${pkgdir}/etc/${pkgbase}/bat.conf" "${pkgdir}/etc/${pkgbase}/bacula-tray-monitor.conf" + + mkdir -p "${pkgdir}/usr/share/applications" "${pkgdir}/usr/share/pixmaps" + cp -a "${srcdir}/${pkgbase}-${pkgver}/scripts/bat.desktop" "${pkgdir}/usr/share/applications/" + cp -a "${srcdir}/${pkgbase}-${pkgver}/scripts/bacula-tray-monitor.desktop" "${pkgdir}/usr/share/applications/" + cp -a "${srcdir}/${pkgbase}-${pkgver}/src/qt-console/images/bat_icon.png" "${pkgdir}/usr/share/pixmaps/" +} + +package_bacula-fd() { + pkgdesc+="(file daemon)" + backup=("etc/${pkgbase}/${pkgname}.conf") + depends=("${pkgbase}-common=${pkgver}") + + cd "${srcdir}/install" + cp --parents -a etc/${pkgbase}/${pkgname}.conf "${pkgdir}" + cp --parents -a usr/bin/${pkgname} "${pkgdir}" + cp --parents -a usr/bin/bfdjson "${pkgdir}" + cp --parents -a usr/lib/bpipe-fd.so "${pkgdir}" + cp --parents -a usr/share/man/man8/${pkgname}.8.gz "${pkgdir}" + + mkdir -p "${pkgdir}/usr/lib/systemd/system/" + cp -f "${srcdir}/${pkgbase}-fd.service" "${pkgdir}/usr/lib/systemd/system/" +} + +package_bacula-common() { + pkgdesc+="(common files)" + + cd "${srcdir}/install" + cp --parents -a etc/${pkgbase}/scripts/${pkgbase}_config "${pkgdir}" + cp --parents -a etc/${pkgbase}/scripts/btraceback.gdb "${pkgdir}" + cp --parents -a etc/${pkgbase}/scripts/btraceback.dbx "${pkgdir}" + cp --parents -a etc/${pkgbase}/scripts/btraceback.mdb "${pkgdir}" + cp --parents -a usr/bin/btraceback "${pkgdir}" + cp --parents -a usr/lib/libbac-${pkgver}.so "${pkgdir}" + cp --parents -a usr/lib/libbaccfg-${pkgver}.so "${pkgdir}" + cp --parents -a usr/lib/libbacfind-${pkgver}.so "${pkgdir}" + cp --parents -a usr/share/man/man8/btraceback.8.gz "${pkgdir}" + #cp --parents -a usr/lib/libbacpy-${pkgver}.so "${pkgdir}" + + mkdir -p "${pkgdir}${_workdir}" + mkdir -p "${pkgdir}/var/log/${pkgbase}" +} + +package_bacula-console() { + pkgdesc+="(management CLI)" + backup=("etc/${pkgbase}/bconsole.conf") + depends=("${pkgbase}-common=${pkgver}" readline) + + cd "${srcdir}/install" + cp --parents -a usr/bin/bconsole "${pkgdir}" + cp --parents -a usr/bin/bbconsjson "${pkgdir}" + cp --parents -a etc/${pkgbase}/bconsole.conf "${pkgdir}" + cp --parents -a usr/share/man/man8/bconsole.8.gz "${pkgdir}" + + chmod 755 "${pkgdir}/etc/${pkgbase}" "${pkgdir}/usr/bin/bconsole" + chmod 644 "${pkgdir}/etc/${pkgbase}/bconsole.conf" +} + +package_bacula-dir() { + pkgdesc+="(Director)" + depends=("${pkgbase}-common=${pkgver}") + optdepends=("${pkgname}-sqlite3: SQLite support" + "${pkgname}-mariadb: MariaDB support" + "${pkgname}-postgresql: PostgreSQL support") + backup=("etc/${pkgbase}/${pkgname}.conf") + + cd "${srcdir}/install" + cp --parents -a etc/${pkgbase}/${pkgname}.conf "${pkgdir}" + cp --parents -a etc/${pkgbase}/scripts/query.sql "${pkgdir}" + cp --parents -a etc/${pkgbase}/scripts/create_${pkgbase}_database "${pkgdir}" + cp --parents -a etc/${pkgbase}/scripts/delete_catalog_backup "${pkgdir}" + cp --parents -a etc/${pkgbase}/scripts/drop_${pkgbase}_database "${pkgdir}" + cp --parents -a etc/${pkgbase}/scripts/drop_${pkgbase}_tables "${pkgdir}" + cp --parents -a etc/${pkgbase}/scripts/grant_${pkgbase}_privileges "${pkgdir}" + cp --parents -a etc/${pkgbase}/scripts/make_${pkgbase}_tables "${pkgdir}" + cp --parents -a etc/${pkgbase}/scripts/make_catalog_backup.pl "${pkgdir}" + cp --parents -a etc/${pkgbase}/scripts/update_${pkgbase}_tables "${pkgdir}" + cp --parents -a usr/bin/${pkgname} "${pkgdir}" + cp --parents -a usr/bin/bdirjson "${pkgdir}" + cp --parents -a usr/bin/bregex "${pkgdir}" + cp --parents -a usr/bin/bsmtp "${pkgdir}" + cp --parents -a usr/bin/bwild "${pkgdir}" + cp --parents -a usr/bin/dbcheck "${pkgdir}" + cp --parents -a usr/share/man/man1/bsmtp.1.gz "${pkgdir}" + cp --parents -a usr/share/man/man8/${pkgname}.8.gz "${pkgdir}" + cp --parents -a usr/share/man/man8/bregex.8.gz "${pkgdir}" + cp --parents -a usr/share/man/man8/bwild.8.gz "${pkgdir}" + cp --parents -a usr/share/man/man8/dbcheck.8.gz "${pkgdir}" + cp --parents -a usr/lib/libbacsql-${pkgver}.so "${pkgdir}" + + mkdir -p "${pkgdir}/usr/lib/systemd/system/" + cp -f "${srcdir}/${pkgname}.service" "${pkgdir}/usr/lib/systemd/system/" + + ## Logwatch Support + mkdir -p "${pkgdir}/etc/logwatch/scripts/services/" "${pkgdir}/etc/logwatch/scripts/shared/" + mkdir -p "${pkgdir}/etc/logwatch/conf/logfiles/" "${pkgdir}/etc/logwatch/conf/services/" + cp -a "${srcdir}/${pkgbase}-${pkgver}/scripts/logwatch/${pkgbase}" "${pkgdir}/etc/logwatch/scripts/services/" + cp -a "${srcdir}/${pkgbase}-${pkgver}/scripts/logwatch/applybaculadate" "${pkgdir}/etc/logwatch/scripts/shared/" + cp -a "${srcdir}/${pkgbase}-${pkgver}/scripts/logwatch/logfile.${pkgbase}.conf" "${pkgdir}/etc/logwatch/conf/logfiles/${pkgbase}.conf" + cp -a "${srcdir}/${pkgbase}-${pkgver}/scripts/logwatch/services.${pkgbase}.conf" "${pkgdir}/etc/logwatch/conf/services/${pkgbase}.conf" + + ## Logrotate Support + mkdir -p ${pkgdir}/etc/logrotate.d/ + cp -a ${srcdir}/${pkgbase}-${pkgver}/scripts/logrotate ${pkgdir}/etc/logrotate.d/${pkgbase} +} + +package_bacula-dir-mariadb() { + pkgdesc+="(Director - MariaDB support)" + depends=("${pkgbase}-dir" libmariadbclient) + conflicts=(${_dir_backends[@]/${pkgname}}) + replaces=("${pkgbase}-dir-mysql") + provides=("${pkgbase}-dir-mysql") + + cd "${srcdir}/install" + cp --parents -a usr/lib/libbaccats-mysql-${pkgver}.so "${pkgdir}" + cp --parents -a usr/lib/libbaccats-mysql.so "${pkgdir}" + cp -d usr/lib/libbaccats-mysql.so ${pkgdir}/usr/lib/libbaccats-${pkgver}.so + for file in etc/${pkgbase}/scripts/*mysql*; do + cp --parents -a "${file}" "${pkgdir}" + done +} + +package_bacula-dir-mysql() { + pkgdesc+="(transition package)" + depends=("${pkgbase}-dir-mariadb") +} + +package_bacula-dir-postgresql() { + pkgdesc+="(Director - PostgreSQL support)" + depends=("${pkgbase}-dir" postgresql-libs) + conflicts=(${_dir_backends[@]/${pkgname}}) + + cd "${srcdir}/install" + cp --parents -a usr/lib/libbaccats-postgresql-${pkgver}.so "${pkgdir}" + cp --parents -a usr/lib/libbaccats-postgresql.so "${pkgdir}" + cp -d usr/lib/libbaccats-postgresql.so "${pkgdir}/usr/lib/libbaccats-${pkgver}.so" + for file in etc/${pkgbase}/scripts/*postgresql*; do + cp --parents -a "${file}" "${pkgdir}" + done +} + +package_bacula-dir-sqlite3() { + pkgdesc+="(Director - SQLite3 support)" + depends=("${pkgbase}-dir" sqlite) + conflicts=(${_dir_backends[@]/${pkgname}}) + + cd "${srcdir}/install" + cp --parents -a usr/lib/libbaccats-sqlite3-${pkgver}.so "${pkgdir}" + cp --parents -a usr/lib/libbaccats-sqlite3.so "${pkgdir}" + cp -d usr/lib/libbaccats-sqlite3.so "${pkgdir}/usr/lib/libbaccats-${pkgver}.so" + for file in etc/${pkgbase}/scripts/*sqlite3*; do + cp --parents -a "${file}" "${pkgdir}" + done +} + +package_bacula-sd() { + pkgdesc+="(Storage Daemon)" + backup=("etc/${pkgbase}/${pkgname}.conf") + depends=("${pkgbase}-common") + + cd "${srcdir}/install" + cp --parents -a etc/${pkgbase}/${pkgname}.conf "${pkgdir}" + cp --parents -a usr/bin/${pkgname} "${pkgdir}" + cp --parents -a usr/bin/bextract "${pkgdir}" + cp --parents -a usr/bin/bls "${pkgdir}" + cp --parents -a usr/bin/bcopy "${pkgdir}" + cp --parents -a usr/bin/bscan "${pkgdir}" + cp --parents -a usr/bin/bsdjson "${pkgdir}" + cp --parents -a usr/bin/btape "${pkgdir}" + cp --parents -a usr/lib/libbacsd-${pkgver}.so "${pkgdir}" + cp --parents -a usr/lib/libbacsd.so "${pkgdir}" + cp --parents -a usr/share/man/man8/${pkgname}.8.gz "${pkgdir}" + cp --parents -a usr/share/man/man8/bextract.8.gz "${pkgdir}" + cp --parents -a usr/share/man/man8/bls.8.gz "${pkgdir}" + cp --parents -a usr/share/man/man8/bcopy.8.gz "${pkgdir}" + cp --parents -a usr/share/man/man8/bscan.8.gz "${pkgdir}" + cp --parents -a usr/share/man/man8/btape.8.gz "${pkgdir}" + + chmod +x "${pkgdir}/usr/bin"* + mkdir -p "${pkgdir}${_workdir}" + mkdir -p "${pkgdir}/usr/lib/systemd/system/" + cp -f "${srcdir}/${pkgname}.service" "${pkgdir}/usr/lib/systemd/system/" +} diff --git a/archlinuxaba/bacula/bacula-dir.service b/archlinuxaba/bacula/bacula-dir.service new file mode 100644 index 0000000..9f07619 --- /dev/null +++ b/archlinuxaba/bacula/bacula-dir.service @@ -0,0 +1,24 @@ +# +# Bacula Director Daemon service +# + +[Unit] +Description=Bacula Director +Alias=bacula-dir +Requires=network.target +After=network.target remote-fs.target syslog.target +# Dependency about the database +# We let administrators decide if they need it (if local db instance) +#Wants=sqlite3.service +# Check if working dir exist and is a directory +ConditionPathIsDirectory=/var/lib/bacula + +[Service] +Type=forking +Restart=always +PIDFile=/run/bacula-dir.9101.pid +# EnvironmentFile=-/etc/sysconfig/bacula-dir +ExecStart=/usr/bin/bacula-dir -c /etc/bacula/bacula-dir.conf + +[Install] +WantedBy=multi-user.target diff --git a/archlinuxaba/bacula/bacula-fd.service b/archlinuxaba/bacula/bacula-fd.service new file mode 100644 index 0000000..a2bb0a9 --- /dev/null +++ b/archlinuxaba/bacula/bacula-fd.service @@ -0,0 +1,18 @@ +# +# Bacula File Daemon service +# + +[Unit] +Description=Bacula File Daemon +Requires=network.target +After=network.target remote-fs.target syslog.target + +[Service] +Type=forking +Restart=always +ExecStart=/usr/bin/bacula-fd -c /etc/bacula/bacula-fd.conf +IOSchedulingClass=idle +PIDFile=/run/bacula-fd.9102.pid + +[Install] +WantedBy=multi-user.target diff --git a/archlinuxaba/bacula/bacula-sd.service b/archlinuxaba/bacula/bacula-sd.service new file mode 100644 index 0000000..45f4738 --- /dev/null +++ b/archlinuxaba/bacula/bacula-sd.service @@ -0,0 +1,18 @@ +# +# Bacula Storage Daemon service +# + +[Unit] +Description=Bacula Storage Daemon +Requires=network.target +After=network.target remote-fs.target syslog.target + +[Service] +Type=forking +Restart=always +PIDFile=/run/bacula-sd.9103.pid +# EnvironmentFile=-/etc/sysconfig/bacula-sd +ExecStart=/usr/bin/bacula-sd -c /etc/bacula/bacula-sd.conf + +[Install] +WantedBy=multi-user.target diff --git a/archlinuxaba/bacula/bacula.install b/archlinuxaba/bacula/bacula.install new file mode 100755 index 0000000..bcc3cd9 --- /dev/null +++ b/archlinuxaba/bacula/bacula.install @@ -0,0 +1,4 @@ +post_install() { + SERVERNAME=$(hostname -s) + sed -i "s/__BASENAME__/${SERVERNAME}/g" /etc/bacula/*.conf +} diff --git a/archlinuxaba/bacula/look-for-qt-order.patch b/archlinuxaba/bacula/look-for-qt-order.patch new file mode 100644 index 0000000..089b828 --- /dev/null +++ b/archlinuxaba/bacula/look-for-qt-order.patch @@ -0,0 +1,23 @@ +diff -rauN bacula-13.0.1/configure bacula-13.0.1-look-for-qt-order-patch/configure +--- bacula-13.0.1/configure 2022-08-05 17:13:35.000000000 +0200 ++++ bacula-13.0.1-look-for-qt-order-patch/configure 2022-12-01 06:58:25.828032900 +0100 +@@ -22000,15 +22000,15 @@ + + BAT_DIR= + if test x$support_bat = xyes; then +- abc=`$PKG_CONFIG QtGui` ++ abc=`$PKG_CONFIG Qt5Gui` + pkg=$? + if test $pkg = 0; then +- BAT_DIR=src/qt-console ++ BAT_DIR="src/qt-console src/qt-console/tray-monitor" + else +- abc=`$PKG_CONFIG Qt5Gui` ++ abc=`$PKG_CONFIG QtGui` + pkg=$? + if test $pkg = 0; then +- BAT_DIR="src/qt-console src/qt-console/tray-monitor" ++ BAT_DIR=src/qt-console + else + as_fn_error $? "Unable to find either Qt4 or Qt5 installation needed by bat" "$LINENO" 5 + fi -- cgit v1.2.3-54-g00ecf