# Maintainer: Stephan Eisvogel pkgname=bareos _pkgname=bareos #_commit=#commit=8bffdafce82c01ac664ccd4fed732988b16aa8b7 #_commit=#commit=16e632576bb26de69dc594921e83ef13075e82c8 #_commit=#commit=7855a6dd2faf65f6fd5c8798a79605cc70d63e36 _commit=#commit=32e1c97ebe9d77bf7062d12b9fb8c02f26cd4120 pkgver=21.1.7 pkgrel=1 arch=(i486 i686 x86_64 armv7h aarch64) options=(emptydirs) pkgdesc="Backup Archiving REcovery Open Sourced" url="https://www.bareos.org" license=(AGPL3) makedepends=(git cmake rpcsvc-proto) depends=(json-c python lzo jansson postgresql-libs) optdepends=( "postgresql: SQL database for director's backup catalog" "nginx: Web server for web UI" "openresty: Web server based on NGINX for web UI" "php-fpm: PHP support for web UI" "php7-fpm: PHP 7 support for web UI" "lbzip2: Fast bzip2 compression for SQL database backup" "pwgen: Generate secure passwords on command line" "sg3_utils: Generic SCSI utilities" "ceph: Distributed, fault-tolerant storage platform" "glusterfs: cluster file-system capable of scaling to several peta-bytes" "beep: Audible operator alerts" ) install=bareos.install source=( "$_pkgname::git+https://github.com/bareos/bareos.git$_commit" PKGBUILD README bareos.install tape-helper tape-label tape-operator tape-watch pwg read_attribute.pl bareos-dir.conf bareos-sd.conf bareos-fd.conf bconsole.conf configuration.ini directors.ini 99-bareos-usb.rules bareos-dir.service bareos-sd.service bareos-fd.service 0001-distver.patch 0003-zend.patch 0004-logspam.patch 0005-version.patch 0006-sqlspam.patch 0007-syslog.patch bareos.conf ) sha256sums=( SKIP SKIP SKIP SKIP SKIP SKIP SKIP SKIP SKIP SKIP SKIP SKIP SKIP SKIP SKIP SKIP cc08df2c49b125fada27cf725ff5e7519a2e5778c16682ff04ffba9e3baf62b7 753364ef6cd94733e73fdd1a41174996468b81a3cdc41336c8f8812f94d10c24 8656c751353f5dd889881cf5d2ae4722b4e2450c433fa08b66d8e11441cbe050 9c40b70b04339a70bebbe13f7d2ee370416d38dce662d854f2722edb2191a10c eca8b7f5e52c7b42050c4bf5c3cdfd4dcc586e95f593c1b56f034fdb5c606af2 a957f3a0d3af1b1da0d80a3407d00230a0b146aa20f6105f2f572fce2f316ea8 SKIP SKIP SKIP SKIP 3b046d11f66e16b4fb7531674a3d31ff6b506d7572a6041712826d956ff434aa ) _reverts=( # webui icons: support Ukraine! 2f6672aeb90fb47fa351c291e570c5a24896c941 # webui: login screen Ukraine flag background 1a156163d1217dc7f295163b046b7de473270299 ) # Local customizations _cmake_extra="-Ddump_email=admin@example.com -Djob_email=admin@example.com -Dsmtp_host=192.168.2.3" [ -r PKGBUILD.custom ] && source ./PKGBUILD.custom prepare() { cd "${srcdir}/${_pkgname}" local _c _src # Reverts, if any for _c in "${_reverts[@]}"; do git log --oneline -1 "${_c}" git revert -n "${_c}" done # Apply maintainer patches local _patch="patch -N -t -p0 -l --no-backup-if-mismatch -i" for _src in "${source[@]}"; do _src="${_src%%::*}" _src="${_src##*/}" [[ $_src = *.patch ]] || continue echo "Applying patch $_src..." $_patch "../$_src" done } build() { cd "${srcdir}/${_pkgname}" mkdir build && cd build cmake .. \ -DENABLE_PYTHON2=no \ -DVERSION_STRING=$pkgver \ -DBAREOS_BINARY_INFO="Arch Linux" \ -DBAREOS_JOBLOG_MESSAGE="Arch Linux AUR" \ -DBAREOS_SERVICES_MESSAGE="" \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_SBINDIR=/usr/bin \ -Dconfigtemplatedir=/etc/bareos/examples \ -Dwebuiconfdir=/etc/bareos \ -Dconfdir=/etc/bareos \ -Ddb_password=bareos \ -Ddir-user=bareos \ -Ddir-group=bareos \ -Dsd-user=bareos \ -Dsd-group=bareos \ -Dfd-user=bareos \ -Dfd-group=bareos \ -Dscsi-crypto=yes \ -Dsystemd=yes \ ${_cmake_extra} } package() { cd "${srcdir}/${_pkgname}/build" make DESTDIR="$pkgdir" install # Before doing anything, like editing systemd files, copy package sources # so they can be written to tape easily for disaster recovery cd "${pkgdir}/etc/bareos" mkdir pkgbuild cp "${srcdir}"/{*.patch,*.rules,*.install,*.service,*.conf,*.ini,*.pl,PKGBUILD*,tape-*,README,pwg} pkgbuild/ # Better systemd service files cd "${srcdir}" if check_option "debug" "n"; then msg "Not a debug build, removing CAP_SYS_PTRACE from systemd-files" sed -i '/^AmbientCapabilities=/d' bareos-dir.service sed -i 's/CAP_SYS_PTRACE //g' bareos-fd.service bareos-sd.service fi for f in dir sd fd; do cat bareos-$f.service > "${pkgdir}"/usr/lib/systemd/system/bareos-$f.service done # Move all stock example configuration files out of the way cd "${pkgdir}/etc/bareos" mkdir -p examples/{bconsole,webui,nginx,scripts} mv ./examples/bconsole.conf examples/bconsole/ mv bareos-dir.d/console/*.example examples/bareos-dir.d/console mv bareos-dir.d/profile/*.conf examples/bareos-dir.d/profile rm -rf bareos-dir.d mv ./*.ini examples/webui/ mv ./mtx-changer.conf examples/ # Maintainer configuration examples cp "${srcdir}"/{README,bconsole.conf,bareos-dir.conf,bareos-sd.conf,bareos-fd.conf,configuration.ini,directors.ini} examples/ cp "${srcdir}"/{tape-helper,tape-label,tape-operator,tape-watch,read_attribute.pl,pwg} examples/scripts/ cp "${srcdir}"/bareos.conf examples/nginx/ # USB switch box mode/group override cd "${srcdir}" install -D -m 644 99-bareos-usb.rules "${pkgdir}/usr/lib/udev/rules.d/99-bareos-usb.rules" # Cleanups cd "${pkgdir}" rm -rf ./var/log ./etc/httpd ./etc/logrotate.d mv usr/share/bareos-webui usr/lib/bareos/webui cd usr/lib/bareos/webui rm -rf ./tests ./data find . -type f \( \ -name "*.travis" -o \ -name "*.dist" -o \ -name "*.yml" -o \ -name "*.txt" -o \ -name "*.md" -o \ -name "*.in" -o \ -name .gitignore -o \ -name .editorconfig -o \ -name LICENSE \ \) -exec rm {} \; # Print any remaining stray files find . -type f | grep -Ev "\.(js|json|php|map|mo|po|css|ttf|png|phtml|woff|woff2|gif|ico|eot|svg|csv|pot)$" || true # Fix modes and permissions cd "${pkgdir}" chown -R root:root etc usr var chmod 0755 etc/bareos/{,pkgbuild,examples,examples/bconsole,examples/nginx,examples/webui} chmod 0644 etc/bareos/examples/{README,*.conf,*.ini} chmod 0750 var/lib/bareos }