diff options
author | Chris Severance | 2015-07-29 02:11:23 -0400 |
---|---|---|
committer | Chris Severance | 2015-07-29 02:11:23 -0400 |
commit | 01a3bf5250520400da7e4a73073ce3a776f08276 (patch) | |
tree | b4a042c270c162a0f986df1e666c5f38ff8a62da | |
download | aur-01a3bf5250520400da7e4a73073ce3a776f08276.tar.gz |
Initial version
-rw-r--r-- | .SRCINFO | 20 | ||||
-rw-r--r-- | PKGBUILD | 128 | ||||
-rw-r--r-- | urbackup-server.install | 24 |
3 files changed, 172 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..5d9ce8aa056c --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,20 @@ +pkgbase = urbackup-server-git + pkgdesc = Client/Server network backup for Windows and Linux + pkgver = 1.4.9.r21.g6d3d464 + pkgrel = 1 + url = http://www.urbackup.org/ + install = urbackup-server.install + arch = i686 + arch = x86_64 + license = GPL + makedepends = python3 + makedepends = autoconf + depends = crypto++ + optdepends = btrfs-progs: compressed and subvolume assisted backups + provides = urbackup-server + conflicts = urbackup-server + source = git+https://github.com/uroni/urbackup_backend.git + sha256sums = SKIP + +pkgname = urbackup-server-git + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..bec6486ada62 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,128 @@ +# Maintainer: Chris Severance aur.severach AatT spamgourmet.com +# Contributor: Artem Alabin <kirpicheff@yandex.ru> +# Contributor: K0n24d <konrad AT knauber DOT net> + +# TODO: New version of SQLite. Can we use the distro provided sqlite? +# TODO: New version of deprecated pbs.py +# TODO: Implement enclosed sbin patches upstream +# TODO: Graceful reload like Apache for upgrades to running systems +# TODO: Version numbers in git tags instead of scanning configuration files +# TODO: Need to rebuild on upgrade: /var/urbackup/'{UrBackupUpdate.exe,UrBackupUpdate.sig} +# TODO: New feature: [x] Follow symbolic links on Windows clients +# TODO: urbackup-client-git + +# Build-n-install: makepkg -scCf +# For running systems, watch htop and upgrade when your urbackup server processes are idle +# sudo systemctl stop urbackup-server.service +# makepkg -i +# sudo systemctl start urbackup-server.service + +# Build-n-observe: makepkg -sCf +# Fix-n-rebuild: makepkg -ef + +# See the btrfs section in the UrBackup Administration Manual for special instructions. +# The best configuration is where whole drive btrfs is mounted on /urbackup. The data +# and the db in /var are on separate spinners. + +# To preserve your server identify for clients place these 3 files in with the PKGBUILD +# and they will be built into the package. +# server_ident.key +# server_ident.priv +# server_ident.pub + +set -u +_pkgname='urbackup-server' +pkgname="${_pkgname}-git" +pkgver=1.4.9.r21.g6d3d464 +pkgrel=1 +pkgdesc='Client/Server network backup for Windows and Linux' +arch=('i686' 'x86_64') +url='http://www.urbackup.org/' +license=('GPL') +depends=('crypto++') +optdepends=('btrfs-progs: compressed and subvolume assisted backups') +makedepends=('python3' 'autoconf') +provides=("${_pkgname}") +conflicts=("${_pkgname}") +source=('git+https://github.com/uroni/urbackup_backend.git') +sha256sums=('SKIP') +install=("${_pkgname}.install") +_srcdir='urbackup_backend' + +pkgver() { + set -u + cd "${srcdir}/${_srcdir}" + local _gitver="$(git describe --long --tags | sed -e 's/\([^-]*-g\)/r\1/' -e 's/-/./g')" + # The BUILDID is not supplied so is always zero + local _filever="$(sed -n -e 's:^.*\[\([0-9\.]\+\)BUILDID.*$:\1:p' 'configure.ac_server')" + #^#define VERSION "\([^"]*\)"$:\1:p' 'configure.ac_server')" #' + if [ ! -z "${_filever}" ]; then + _gitver="$(git describe --long --tags)" + _gitver="r${_gitver#*-}" + _gitver="${_gitver//-/.}" + _gitver="${_filever}${_gitver}" + fi + echo "${_gitver}" + set +u +} + +prepare() { + set -u + cd "${srcdir}/${_srcdir}" + cp -p 'build_server.sh' 'build_server.Arch.sh' # git reset --hard immediately reverts the origional + sed -i -e '# Fix configure line' \ + -e 's:^\(\s*\)./configure.*$: ./configure --prefix="/usr" --sbindir="/usr/bin" --sysconfdir="/etc" --localstatedir="/var" --enable-packaging --with-mountvhd:g' \ + -e '# Block make so makepkg -e so works properly' \ + -e 's:^make:exit 0\n#&:g' \ + -e "# We'll do git reset so we can make a few changes afterwards" \ + -e 's:^git reset:#&:g' \ + 'build_server.Arch.sh' + git reset --hard + sed -i -e 's:$PREFIX/sbin/:$PREFIX/bin/:g' start_urbackup_{client,server} + sed -i -e 's:/sbin/btrfs:/usr/bin/btrfs:g' 'snapshot_helper/main.cpp' + sed -i -e 's:/usr/sbin/:/usr/bin/:g' 'urbackupserver/doc/admin_guide.tex' 'urbackup-server.service' + sed -i -e 's,L"C:\\\\urbackup",\n#ifdef _WIN32\n&\n#else\nL"/urbackup"\n#endif\n,g' 'urbackupserver/server_settings.cpp' # Irksome bug! + sh 'build_server.Arch.sh' + rm -f 'build_server.Arch.sh' + set +u +} + +build() { + set -u + cd "${srcdir}/${_srcdir}" + make -s -j $(nproc) + make dist + set +u +} + +package() { + set -u + cd "${srcdir}/${_srcdir}" + + make DESTDIR="${pkgdir}" install + + local _serverkey + for _serverkey in 'server_ident.key' 'server_ident.priv' 'server_ident.pub'; do + install -Dpm644 "${srcdir}/../${_serverkey}" "${pkgdir}/var/urbackup/${_serverkey}" || : + done + + # special btrfs support + install -dm755 "${pkgdir}/etc/urbackup" + echo '/urbackup' > "${pkgdir}/etc/urbackup/backupfolder" + chmod 644 "${pkgdir}/etc/urbackup/backupfolder" + + install -Dpm644 'urbackup-server.service' -t "${pkgdir}/usr/lib/systemd/system/" + install -Dpm644 'urbackup-server-firewalld.xml' -t "${pkgdir}/usr/lib/firewalld/services/" + install -Dpm644 'logrotate_urbackup_srv' "${pkgdir}/etc/logrotate.d/urbackup_srv" + install -Dpm644 docs/{start_urbackup_server,urbackup_srv}.1 -t "${pkgdir}/usr/share/man/man1/" + +# Ensure there are no forbidden paths. Comment these out as you find or need exceptions. (git-aurcheck) + ! grep -alqr "/sbin" "${pkgdir}" || echo "${}" + # ! grep -alqr "/usr/tmp" "${pkgdir}" || echo "${}" # This fails over + # ! grep -alqr "/usr/local" "${pkgdir}" || echo "${}" # This fails over + ! test -d "${pkgdir}/usr/sbin" || echo "${}" + ! test -d "${pkgdir}/usr/local" || echo "${}" + set +u +} +set +u +# vim: ts=2 diff --git a/urbackup-server.install b/urbackup-server.install new file mode 100644 index 000000000000..0a0ded8ba73a --- /dev/null +++ b/urbackup-server.install @@ -0,0 +1,24 @@ +post_upgrade() { + mandb -q + systemctl daemon-reload + # The Win client hasn't changed in years so we don't need them to upgrade. + #rm -f '/var/urbackup/'{UrBackupUpdate.exe,UrBackupUpdate.sig,server_token.key} + # urbackup might use server_version_info.properties for db version +} + +post_remove() { + post_upgrade + # Should we delete user urbackup? +} + +post_install() { + local _urbackup_user='urbackup' + local _urbackup_group='urbackup' + + getent group "${_urbackup_group}" >/dev/null || groupadd -r "${_urbackup_group}" >/dev/null + getent passwd "${_urbackup_user}" >/dev/null || useradd -r -g "${_urbackup_group}" \ + -d /dev/null -s '/bin/false' "${_urbackup_user}" >/dev/null + + chown -hR --preserve-root "${_urbackup_user}:${_urbackup_group}" '/var/urbackup' + post_upgrade +} |