From 775eea1c5be7817294a76bac7e88c9e059a30ddb Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sat, 5 Nov 2022 10:22:51 +0100 Subject: updated bareos to 21.1.4 and OpenSSL 3 --- archlinuxaba/bareos/.SRCINFO | 252 ++++ archlinuxaba/bareos/0001-distver.patch | 10 + archlinuxaba/bareos/0002-libdroplet.patch | 23 + archlinuxaba/bareos/0003-zend.patch | 11 + archlinuxaba/bareos/0004-logspam.patch | 31 + archlinuxaba/bareos/0005-version.patch | 12 + archlinuxaba/bareos/0006-sqlspam.patch | 12 + archlinuxaba/bareos/0007-hostname.patch | 22 + archlinuxaba/bareos/0008-httpd.patch | 11 + archlinuxaba/bareos/009-fix-timer_thread.patch | 14 + archlinuxaba/bareos/PKGBUILD | 1260 ++++++++++---------- archlinuxaba/bareos/PoolModel.patch | 15 + archlinuxaba/bareos/bareos-bconsole.install | 7 +- archlinuxaba/bareos/bareos-common.install | 24 +- archlinuxaba/bareos/bareos-database-mysql.install | 12 +- .../bareos/bareos-database-postgresql.install | 12 +- archlinuxaba/bareos/bareos-director.install | 18 +- archlinuxaba/bareos/bareos-filedaemon.install | 8 +- archlinuxaba/bareos/bareos-storage.install | 15 +- archlinuxaba/bareos/bareos-traymonitor.install | 11 + .../bareos/bootstrap-table-locale-all.min.js | 10 + archlinuxaba/bareos/fix-build-bareos.patch | 44 + archlinuxaba/bareos/fix-headlink.patch | 193 +++ archlinuxaba/bareos/mysql.patch | 397 ++++++ archlinuxaba/bareos/plattforms-archlinux.patch | 11 + archlinuxaba/bareos/restore-form.patch | 12 + 26 files changed, 1753 insertions(+), 694 deletions(-) create mode 100644 archlinuxaba/bareos/.SRCINFO create mode 100644 archlinuxaba/bareos/0001-distver.patch create mode 100644 archlinuxaba/bareos/0002-libdroplet.patch create mode 100644 archlinuxaba/bareos/0003-zend.patch create mode 100644 archlinuxaba/bareos/0004-logspam.patch create mode 100644 archlinuxaba/bareos/0005-version.patch create mode 100644 archlinuxaba/bareos/0006-sqlspam.patch create mode 100644 archlinuxaba/bareos/0007-hostname.patch create mode 100644 archlinuxaba/bareos/0008-httpd.patch create mode 100644 archlinuxaba/bareos/009-fix-timer_thread.patch create mode 100644 archlinuxaba/bareos/PoolModel.patch create mode 100644 archlinuxaba/bareos/bareos-traymonitor.install create mode 100644 archlinuxaba/bareos/bootstrap-table-locale-all.min.js create mode 100644 archlinuxaba/bareos/fix-build-bareos.patch create mode 100644 archlinuxaba/bareos/fix-headlink.patch create mode 100644 archlinuxaba/bareos/mysql.patch create mode 100644 archlinuxaba/bareos/plattforms-archlinux.patch create mode 100644 archlinuxaba/bareos/restore-form.patch (limited to 'archlinuxaba') diff --git a/archlinuxaba/bareos/.SRCINFO b/archlinuxaba/bareos/.SRCINFO new file mode 100644 index 0000000..4a4e8b7 --- /dev/null +++ b/archlinuxaba/bareos/.SRCINFO @@ -0,0 +1,252 @@ +pkgbase = bareos + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced + pkgver = 21.1.4 + pkgrel = 4 + url = http://www.bareos.org + arch = i686 + arch = x86_64 + arch = armv7h + arch = aarch64 + groups = bareos + license = AGPL3 + makedepends = cmake + makedepends = gcc + makedepends = libmariadbclient + makedepends = postgresql-libs + makedepends = python + makedepends = python-setuptools + makedepends = rpcsvc-proto + makedepends = git + makedepends = lsb-release + makedepends = qt5-base + makedepends = glusterfs + makedepends = jansson + makedepends = pam_wrapper + source = git+https://github.com/bareos/bareos.git#tag=Release/21.1.4 + source = 0001-distver.patch + source = 0003-zend.patch + source = 0004-logspam.patch + source = 0005-version.patch + source = 0006-sqlspam.patch + source = 0007-hostname.patch + source = 0008-httpd.patch + source = bootstrap-table-locale-all.min.js + md5sums = SKIP + md5sums = 419b0c64af750aa3e8ea668edf464d3e + md5sums = f9b885e18313d9c070372d313e1b422d + md5sums = 39724df5903b712fb8d34209c7ac8f1e + md5sums = 5bf1233d94dfecc9060746bfb39b9d2b + md5sums = ca4c929a2462cafaead8d0b49e3cebed + md5sums = b0068e1a248ac0d0e83fb8ae1e034f62 + md5sums = 33d9c3a1d25b30ac2182aa8d874e28a5 + md5sums = e78b88f897cfc3e60129eec360521e3d + +pkgname = bareos-bconsole + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - Admin Tool (CLI) + install = bareos-bconsole.install + groups = bareos + groups = bareos-client + depends = bareos-common=21.1.4 + depends = readline + depends = jansson + backup = etc/bareos/bconsole.conf + +pkgname = bareos-common + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - Common files + install = bareos-common.install + depends = libcap + depends = openssl + depends = acl + depends = bash + depends = lzo + depends = jansson + depends = zlib + +pkgname = bareos-database-common + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - Generic abstration libs and tools for sql catalog + depends = bareos-common=21.1.4 + depends = libcap + depends = lzo + depends = zlib + depends = openssl + depends = bash + depends = jansson + +pkgname = bareos-database-postgresql + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - Libs and tools for postgresql catalog + install = bareos-database-postgresql.install + depends = bareos-database-common=21.1.4 + depends = postgresql-libs + provides = bareos-database=21.1.4 + +pkgname = bareos-database-tools + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - CLI tools with database dpendencies (dbcheck, bscan) + depends = bareos-database-common=21.1.4 + depends = openssl + depends = jansson + +pkgname = bareos-director + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - Director daemon + install = bareos-director.install + depends = bareos-common=21.1.4 + depends = openssl + depends = bash + depends = jansson + +pkgname = bareos-director-python-plugins-common + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - This package contains the common files for the python 2 and python 3 director plugins + depends = bareos-director=21.1.4 + +pkgname = bareos-director-python3-plugin + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - Python plugin for director daemon + depends = bareos-director=21.1.4 + depends = bareos-director-python-plugins-common=21.1.4 + depends = python + depends = libcap + depends = jansson + depends = lzo + conflicts = bareos-director-python-plugin + +pkgname = bareos-filedaemon + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - File daemon + install = bareos-filedaemon.install + groups = bareos + groups = bareos-client + depends = bareos-common=21.1.4 + depends = jansson + depends = zlib + depends = gcc-libs + +pkgname = bareos-filedaemon-glusterfs-plugin + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - GlusterFS plugin for Bareos File daemon + depends = bareos-filedaemon=21.1.4 + depends = glusterfs + +pkgname = bareos-filedaemon-ldap-python-plugin + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - LDAP Python plugin for Bareos File daemon + depends = bareos-filedaemon=21.1.4 + depends = bareos-filedaemon-python3-plugin=21.1.4 + depends = python-ldap + +pkgname = bareos-filedaemon-libcloud-python-plugin + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - Libcloud Python plugin for Bareos File daemon + depends = bareos-filedaemon=21.1.4 + depends = python-apache-libcloud + +pkgname = bareos-filedaemon-mariabackup-python-plugin + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - MariaBackup plugin for Bareos File daemon + depends = bareos-filedaemon=21.1.4 + depends = mariadb + +pkgname = bareos-filedaemon-percona-xtrabackup-python-plugin + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - XtraBackup plugin for Bareos File daemon + depends = bareos-filedaemon=21.1.4 + depends = xtrabackup + +pkgname = bareos-filedaemon-postgresql-python-plugin + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - PostgreSQL plugin for Bareos File daemon + depends = bareos-filedaemon=21.1.4 + depends = postgresql + +pkgname = bareos-filedaemon-python-plugins-common + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - This package contains the common files for the python 2 and python 3 filedaemon plugins + depends = bareos-filedaemon=21.1.4 + +pkgname = bareos-filedaemon-python3-plugin + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - Python plugin for file daemon + depends = bareos-filedaemon=21.1.4 + depends = bareos-filedaemon-python-plugins-common=21.1.4 + depends = python + depends = libcap + depends = lzo + depends = jansson + conflicts = bareos-filedaemon-python-plugin + +pkgname = bareos-storage + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - Storage daemon + install = bareos-storage.install + depends = bareos-common=21.1.4 + depends = zlib + depends = lzo + depends = jansson + depends = openssl + depends = libcap + +pkgname = bareos-storage-droplet + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - Droplet support for storage daemon + depends = bareos-storage=21.1.4 + +pkgname = bareos-storage-fifo + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - FIFO support for storage daemon + depends = bareos-storage=21.1.4 + depends = zlib + depends = libcap + depends = openssl + depends = jansson + depends = lzo + +pkgname = bareos-storage-glusterfs + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - GlusterFS support for storage daemon + depends = bareos-storage=21.1.4 + depends = glusterfs + +pkgname = bareos-storage-python-plugins-common + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - This package contains the common files for the python 2 and python 3 storage plugins + depends = bareos-storage=21.1.4 + +pkgname = bareos-storage-python3-plugin + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - Python plugin for storage daemon + depends = bareos-storage=21.1.4 + depends = bareos-storage-python-plugins-common=21.1.4 + depends = python + depends = lzo + depends = libcap + depends = jansson + conflicts = bareos-storage-python-plugin + +pkgname = bareos-storage-tape + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - Tape support for storage daemon + depends = bareos-storage=21.1.4 + depends = zlib + depends = libcap + depends = bash + depends = openssl + depends = jansson + depends = lzo + depends = mtx + backup = etc/bareos/mtx-changer.conf + +pkgname = bareos-tools + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - CLI tools (bcopy, bextract, bls, bregeq, bwild, bregex) + depends = bareos-common=21.1.4 + depends = glibc + +pkgname = bareos-webui + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - Webui (Bareos web administration) + depends = php7 + depends = php7-fpm + depends = jansson + backup = etc/bareos-webui/directors.ini + backup = etc/bareos-webui/configuration.ini + backup = etc/bareos/bareos-dir.d/console/admin.conf.example + backup = etc/bareos/bareos-dir.d/profile/webui-admin.conf + backup = etc/httpd/conf/extra/bareos-webui.conf + +pkgname = bareos-devel + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - Devel headers + arch = any + +pkgname = bareos-traymonitor + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - This package contains the tray monitor (QT based) + install = bareos-traymonitor.install + groups = bareos + groups = bareos-client + depends = bareos-common=21.1.4 + backup = etc/bareos/tray-monitor.d/monitor/bareos-mon.conf + +pkgname = python-bareos + pkgdesc = Bareos - Backup Archiving Recovery Open Sourced - python-bareos is a Python module to access a backup system. + depends = python + depends = python-sslpsk + depends = jansson + conflicts = python2-bareos diff --git a/archlinuxaba/bareos/0001-distver.patch b/archlinuxaba/bareos/0001-distver.patch new file mode 100644 index 0000000..855e152 --- /dev/null +++ b/archlinuxaba/bareos/0001-distver.patch @@ -0,0 +1,10 @@ +--- core/cmake/distname.sh 2021-12-23 02:16:52.596202300 +0100 ++++ core/cmake/distname.sh 2021-12-23 02:18:31.430250149 +0100 +@@ -181,6 +181,7 @@ else + elif test -f /etc/arch-release + then + PLATFORM=archlinux ++ DISTVER="Arch Linux" + elif test "$CYGWIN" = yes + then + PLATFORM=cygwin diff --git a/archlinuxaba/bareos/0002-libdroplet.patch b/archlinuxaba/bareos/0002-libdroplet.patch new file mode 100644 index 0000000..9b9dc5c --- /dev/null +++ b/archlinuxaba/bareos/0002-libdroplet.patch @@ -0,0 +1,23 @@ +# C99 introduced _Bool but library predates that, fix + +--- core/src/droplet/libdroplet/include/droplet/cdmi/crcmodel.h 2020-12-16 08:46:16.000000000 +0100 ++++ core/src/droplet/libdroplet/include/droplet/cdmi/crcmodel.h 2021-01-09 21:50:10.506666487 +0100 +@@ -79,7 +79,6 @@ + #ifndef DONE_STYLE + + typedef unsigned long ulong; +-typedef unsigned bool; + typedef unsigned char* p_ubyte_; + + # ifndef TRUE +@@ -107,8 +107,8 @@ + int cm_width; /* Parameter: Width in bits [8,32]. */ + ulong cm_poly; /* Parameter: The algorithm's polynomial. */ + ulong cm_init; /* Parameter: Initial register value. */ +- bool cm_refin; /* Parameter: Reflect input bytes? */ +- bool cm_refot; /* Parameter: Reflect output CRC? */ ++ _Bool cm_refin; /* Parameter: Reflect input bytes? */ ++ _Bool cm_refot; /* Parameter: Reflect output CRC? */ + ulong cm_xorot; /* Parameter: XOR this to output CRC. */ + + ulong cm_reg; /* Context: Context during execution. */ diff --git a/archlinuxaba/bareos/0003-zend.patch b/archlinuxaba/bareos/0003-zend.patch new file mode 100644 index 0000000..0c136fa --- /dev/null +++ b/archlinuxaba/bareos/0003-zend.patch @@ -0,0 +1,11 @@ +--- webui/vendor/zendframework/zend-stdlib/src/ArrayObject.php ++++ webui/vendor/zendframework/zend-stdlib/src/ArrayObject.php +@@ -423,7 +423,7 @@ public function unserialize($data) + $this->setIteratorClass($v); + break; + case 'protectedProperties': +- continue; ++ break; + default: + $this->__set($k, $v); + } diff --git a/archlinuxaba/bareos/0004-logspam.patch b/archlinuxaba/bareos/0004-logspam.patch new file mode 100644 index 0000000..18f6d5b --- /dev/null +++ b/archlinuxaba/bareos/0004-logspam.patch @@ -0,0 +1,31 @@ +--- core/src/lib/bsock.cc.orig 2021-12-23 08:56:38.194359400 +0100 ++++ core/src/lib/bsock.cc 2021-12-23 10:22:09.320240831 +0100 +@@ -584,10 +584,10 @@ bool BareosSocket::DoTlsHandshake(TlsPol + if (!initiated_by_remote) { + if (tls_conn) { + tls_conn->TlsLogConninfo(jcr, host(), port(), who()); +- } else { ++ } /* else { + Qmsg(jcr, M_INFO, 0, _("Connected %s at %s:%d, encryption: None\n"), + who(), host(), port()); +- } ++ } */ + } + return true; + } +--- core/src/lib/tls_openssl.cc.orig 2021-12-23 08:56:38.204359200 +0100 ++++ core/src/lib/tls_openssl.cc 2021-12-23 10:22:31.872857179 +0100 +@@ -107,11 +107,11 @@ void TlsOpenSsl::TlsLogConninfo(JobContr + if (!d_->openssl_) { + Qmsg(jcr, M_INFO, 0, _("No openssl to %s at %s:%d established\n"), who, + host, port); +- } else { ++ } /* else { + std::string cipher_name = TlsCipherGetName(); + Qmsg(jcr, M_INFO, 0, _("Connected %s at %s:%d, encryption: %s\n"), who, + host, port, cipher_name.empty() ? "Unknown" : cipher_name.c_str()); +- } ++ } */ + } + + /* diff --git a/archlinuxaba/bareos/0005-version.patch b/archlinuxaba/bareos/0005-version.patch new file mode 100644 index 0000000..96440ac --- /dev/null +++ b/archlinuxaba/bareos/0005-version.patch @@ -0,0 +1,12 @@ +--- core/src/lib/CMakeLists.txt.orig 2021-12-23 11:28:53.968803800 +0100 ++++ core/src/lib/CMakeLists.txt 2021-12-23 11:42:18.538613886 +0100 +@@ -147,6 +147,9 @@ + -DBAREOS_SHORT_DATE="${BAREOS_SHORT_DATE}" + -DBAREOS_PROG_DATE_TIME="${BAREOS_PROG_DATE_TIME}" + -DBAREOS_YEAR="${BAREOS_YEAR}" ++ -DBAREOS_BINARY_INFO="${BAREOS_BINARY_INFO}" ++ -DBAREOS_SERVICES_MESSAGE="${BAREOS_SERVICES_MESSAGE}" ++ -DBAREOS_JOBLOG_MESSAGE="${BAREOS_JOBLOG_MESSAGE}" + ) + set_target_properties(version-obj PROPERTIES POSITION_INDEPENDENT_CODE ON) + diff --git a/archlinuxaba/bareos/0006-sqlspam.patch b/archlinuxaba/bareos/0006-sqlspam.patch new file mode 100644 index 0000000..1882f0c --- /dev/null +++ b/archlinuxaba/bareos/0006-sqlspam.patch @@ -0,0 +1,12 @@ +--- core/src/dird/ua_prune.cc.orig 2021-12-23 12:29:52.844307700 +0100 ++++ core/src/dird/ua_prune.cc 2021-12-23 14:58:31.874042423 +0100 +@@ -585,7 +585,9 @@ bail_out: + + static void DropTempTables(UaContext* ua) + { ++ ua->db->SqlQuery("SET client_min_messages = warning"); + ua->db->SqlQuery(BareosDb::SQL_QUERY::drop_deltabs); ++ ua->db->SqlQuery("SET client_min_messages = notice"); + } + + static bool CreateTempTables(UaContext* ua) diff --git a/archlinuxaba/bareos/0007-hostname.patch b/archlinuxaba/bareos/0007-hostname.patch new file mode 100644 index 0000000..261be23 --- /dev/null +++ b/archlinuxaba/bareos/0007-hostname.patch @@ -0,0 +1,22 @@ +--- core/scripts/bareos-config-lib.sh.in 2022-05-07 14:35:31.000000000 +0300 ++++ core/scripts/bareos-config-lib.sh.in 2022-05-07 23:25:21.958745554 +0300 +@@ -1070,14 +1070,12 @@ + { + # put actual short hostname in configuration files + # try to get short hostname +- hname=`hostname -s` ++ hname=`hostnamectl --static | sed 's/\..*//g'` + if [ -z "$hname" ]; then +- # try to get long hostname +- hname=`hostname|sed 's/\..*//g'` +- if [ -z "$hname" ]; then +- # set to "localhost" +- hname='localhost' +- fi ++ if [ -z "$hname" ]; then ++ # set to "localhost" ++ hname='localhost' ++ fi + fi + echo "$hname" + } diff --git a/archlinuxaba/bareos/0008-httpd.patch b/archlinuxaba/bareos/0008-httpd.patch new file mode 100644 index 0000000..c8d8e8a --- /dev/null +++ b/archlinuxaba/bareos/0008-httpd.patch @@ -0,0 +1,11 @@ +--- webui/CMakeLists.txt 2022-05-10 23:29:44.000000000 +0300 ++++ webui/CMakeLists.txt 2022-05-11 00:05:05.698335917 +0300 +@@ -76,7 +76,7 @@ + elseif(EXISTS ${sysconfdir}/apache2/conf-available) + set(HTTPD_CONF ${sysconfdir}/apache2/conf-available) + else() +- set(HTTPD_CONF ${sysconfdir}/httpd/conf.d) ++ set(HTTPD_CONF ${sysconfdir}/httpd/conf/extra ) + endif() + + configure_file( diff --git a/archlinuxaba/bareos/009-fix-timer_thread.patch b/archlinuxaba/bareos/009-fix-timer_thread.patch new file mode 100644 index 0000000..533066c --- /dev/null +++ b/archlinuxaba/bareos/009-fix-timer_thread.patch @@ -0,0 +1,14 @@ +--- core/src/lib/timer_thread.cc 2022-03-17 17:22:34.000000000 +0100 ++++ core/src/lib/timer_thread.cc 2022-05-15 19:28:30.410009804 +0200 +@@ -213,9 +213,11 @@ + remove_from_list = true; + } else { + p->scheduled_run_timepoint = last_timer_run_timepoint + p->interval; ++ next_timer_run = min(p->scheduled_run_timepoint, next_timer_run); + } ++ } else { ++ next_timer_run = min(p->scheduled_run_timepoint, next_timer_run); + } +- next_timer_run = min(p->scheduled_run_timepoint, next_timer_run); + return remove_from_list; + } diff --git a/archlinuxaba/bareos/PKGBUILD b/archlinuxaba/bareos/PKGBUILD index 5d50731..62d6276 100644 --- a/archlinuxaba/bareos/PKGBUILD +++ b/archlinuxaba/bareos/PKGBUILD @@ -1,713 +1,697 @@ -# Maintainer: Erich Eckner +# Maintainer: khvalera +# Contributor: Matthias Fulz # Contributor: Michael Spradling pkgbase='bareos' -pkgname=("${pkgbase}-common" - "${pkgbase}-bconsole" - "${pkgbase}-database-common" - "${pkgbase}-database-postgresql" - "${pkgbase}-database-tools" -# "${pkgbase}-devel" - "${pkgbase}-director" - "${pkgbase}-storage-fifo" - "${pkgbase}-tools" - "${pkgbase}-filedaemon" - "${pkgbase}-storage" - "${pkgbase}-storage-tape" - "${pkgbase}-director-python-plugin" - "${pkgbase}-filedaemon-python-plugin" - "${pkgbase}-storage-python-plugin" - "${pkgbase}-webui") - -pkgver=21.1.2 -pkgrel=6.7 -arch=(x86_64 i486 i686 pentium4 armv6h armv7h aarch64) +pkgname=("bareos-bconsole" + "bareos-common" + "bareos-database-common" + "bareos-database-postgresql" + "bareos-database-tools" + "bareos-director" + "bareos-director-python-plugins-common" + "bareos-director-python3-plugin" + "bareos-filedaemon" + "bareos-filedaemon-glusterfs-plugin" + "bareos-filedaemon-ldap-python-plugin" + "bareos-filedaemon-libcloud-python-plugin" + "bareos-filedaemon-mariabackup-python-plugin" + "bareos-filedaemon-percona-xtrabackup-python-plugin" + "bareos-filedaemon-postgresql-python-plugin" + "bareos-filedaemon-python-plugins-common" + "bareos-filedaemon-python3-plugin" + "bareos-storage" + "bareos-storage-droplet" + "bareos-storage-fifo" + "bareos-storage-glusterfs" + "bareos-storage-python-plugins-common" + "bareos-storage-python3-plugin" + "bareos-storage-tape" + "bareos-tools" + "bareos-webui" + "bareos-devel" + "bareos-traymonitor" + "python-bareos" + ) + +pkgver=21.1.4 +pkgmajor=${pkgver%%.*} +pkgrel=4 +arch=(i686 x86_64 armv7h aarch64) groups=('bareos') -pkgdesc="Bareos - Backup Archiving REcovery Open Sourced" +pkgdesc="Bareos - Backup Archiving Recovery Open Sourced" url="http://www.bareos.org" license=('AGPL3') -_pinned_dependencies=( - 'gcc-libs=12.2.0' - 'glibc>=2.31' - 'jansson=2.14' - 'libacl.so=1' - 'libpam.so=0' - 'libpq.so=5' - 'libreadline.so=8' - 'lzo=2.10' - 'openssl=1.1.1.q' - 'python2=2.7.18' - 'zlib=1:1.2.13' -) -_pinned_dependencies_libmariadbclient=( - 'libmariadb.so=3' -) -makedepends=(systemd acl attr bash cmake lsb-release python "${_pinned_dependencies[@]}") -makedepends_x86_64=(ceph "${_pinned_dependencies_libmariadbclient[@]}") -makedepends_i686=("${_pinned_dependencies_libmariadbclient[@]}") -makedepends_pentium4=("${_pinned_dependencies_libmariadbclient[@]}") -makedepends_armv6h=("${_pinned_dependencies_libmariadbclient[@]}") -makedepends_armv7h=("${_pinned_dependencies_libmariadbclient[@]}") -makedepends_aarch64=(ceph "${_pinned_dependencies_libmariadbclient[@]}") -source=("$pkgbase-$pkgver.tar.gz::https://github.com/$pkgbase/$pkgbase/archive/Release/$pkgver.tar.gz" -'xattr.patch' -'check-if-bareos-backup-is-running' -'ce3339d28623b8bb771e5e0aa139168df5963c4b.patch' -) -sha512sums=('acdc787ff828add93c81b2b7d293dec90f2aa22aa3aee3002662bd30e88dc0dc58b753bb63ca7c111fac6c7eeea888938236c1169f92ed6cec27941036c7b6b1' - 'c535f89866816669208d56e21ffb13f70aa962e578847bc7bcc76a3e8ad54b252c8e09b745b500064d6f02cb5497cb81b62dd1c156d2e907c393aaa091aa5f0e' - '0235763891f368c13931f0fc43e3ae2d7ec796b7ef35896b6b9c048345d539308abe4a9bafda4e95221a89231d2f373ac3cfc2098d572d4068a1c068d27452f6' - '9c5b3ff610d50d0aef5de8ca0f2ed49bb72817a5a044013b87762139b048382b9a0949129ecf1788443363ef1dd4e70e773c985490dda1fae12212a4170da5aa' -) - +makedepends=('cmake' 'gcc' 'libmariadbclient' 'postgresql-libs' 'python' 'python-setuptools' 'rpcsvc-proto' 'git' 'lsb-release' 'qt5-base' 'glusterfs' 'jansson' 'pam_wrapper') +source=("git+https://github.com/bareos/bareos.git#tag=Release/${pkgver}" + "0001-distver.patch" + "0003-zend.patch" + "0004-logspam.patch" + "0005-version.patch" + "0006-sqlspam.patch" + "0007-hostname.patch" + "0008-httpd.patch" + "bootstrap-table-locale-all.min.js") +md5sums=('SKIP' + '419b0c64af750aa3e8ea668edf464d3e' + 'f9b885e18313d9c070372d313e1b422d' + '39724df5903b712fb8d34209c7ac8f1e' + '5bf1233d94dfecc9060746bfb39b9d2b' + 'ca4c929a2462cafaead8d0b49e3cebed' + 'b0068e1a248ac0d0e83fb8ae1e034f62' + '33d9c3a1d25b30ac2182aa8d874e28a5' + 'e78b88f897cfc3e60129eec360521e3d') +python3_ver="3.10" + +#========================================= prepare() { - cd $pkgbase-Release-$pkgver - patch -p1 -i ../xattr.patch - patch -p1 -i ../ce3339d28623b8bb771e5e0aa139168df5963c4b.patch + # Apply maintainer patches + cd "${srcdir}/${pkgbase}" + local _src + 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 $pkgbase-Release-$pkgver - mkdir build + cd "${srcdir}/${pkgbase}" + mkdir -p build cd build cmake .. \ - -Dprefix=/usr \ - -Dsbindir=/usr/bin \ - -Dsysconfdir=/etc \ - -Dconfdir=/etc/$pkgbase \ - -Dworkingdir=/etc/$pkgbase \ - -Dlocalstatedir=/ \ - -Dlibdir=/usr/lib/$pkgbase \ - -Dmandir=/usr/share/man \ - -Ddisable-conio=yes \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_INSTALL_SBINDIR=/usr/bin \ + -DCMAKE_INSTALL_SYSCONFDIR=/etc \ + -DCMAKE_INSTALL_LOCALSTATEDIR=/ \ + -DCMAKE_INSTALL_LIBDIR=/usr/lib/bareos \ + -Dlibdir=/usr/lib/bareos \ + -Dlogdir=/var/log/bareos \ + -Dpiddir=/run/bareos \ + -Dsubsysdir=/run/bareos \ + -Dconfdir=/etc/bareos \ + -Dconfigtemplatedir=/usr/share/bareos/config \ + -Dworkingdir=/var/lib/bareos \ + -Dplugindir=/usr/lib/bareos/plugins \ + -Dscriptdir=/usr/lib/bareos/scripts \ + -Dbackenddir=/usr/lib/bareos/backends \ + -Darchivedir=/var/lib/bareos/storage \ + -Dbsrdir=/var/lib/bareos \ + -Dwebuiconfdir=/etc/bareos-webui \ + -DBAREOS_BINARY_INFO="Arch Linux" \ + -DBAREOS_JOBLOG_MESSAGE="Arch Linux AUR" \ -Ddynamic-cats-backends=yes \ -Ddynamic-storage-backends=yes \ + -Dpostgresql=yes \ -Dpython=yes \ -Dopenssl=yes \ - -Ddisable-rpath=yes \ - -Dpostgresql=yes \ - -Dndmp=no \ - -Dhostname='XXX_REPLACE_WITH_LOCAL_HOSTNAME_XXX' \ - -Ddir-password="XXX_REPLACE_WITH_DIRECTOR_PASSWORD_XXX" \ - -Dfd-password="XXX_REPLACE_WITH_CLIENT_PASSWORD_XXX" \ - -Dsd-password="XXX_REPLACE_WITH_STORAGE_PASSWORD_XXX" \ - -Dmon-dir-password="XXX_REPLACE_WITH_DIRECTOR_MONITOR_PASSWORD_XXX" \ - -Dmon-fd-password="XXX_REPLACE_WITH_CLIENT_MONITOR_PASSWORD_XXX" \ - -Dmon-sd-password="XXX_REPLACE_WITH_STORAGE_MONITOR_PASSWORD_XXX" \ - -Dbasename="XXX_REPLACE_WITH_LOCAL_HOSTNAME_XXX" \ - -Dlogdir=/var/log/$pkgbase \ - -Ddir-user=$pkgbase \ - -Ddir-group=$pkgbase \ - -Dsd-user=$pkgbase \ - -Dsd-group=$pkgbase \ + -Ddir-user=bareos \ + -Ddir-group=bareos \ + -Dsd-user=bareos \ + -Dsd-group=bareos \ -Dfd-user=root \ - -Dpid-dir=/run/bareos \ -Dfd-group=root \ - -Dconfigtemplatedir=/usr/share/$pkgbase/config \ - -Dworking-dir=/var/lib/$pkgbase \ - -Dplugindir=/usr/lib/$pkgbase/plugins \ - -Dscriptdir=/usr/lib/$pkgbase/scripts \ - -Dbackenddir=/usr/lib/$pkgbase/backends \ - -Darchivedir=/var/lib/$pkgbase/storage \ - -Dbsrdir=/var/lib/$pkgbase \ - -Dsubsys-dir=/run/$pkgbase \ - -Dsystemd=yes - - make - make DESTDIR="$srcdir/install" install + -Dscsi-crypto=yes \ + -Dsystemd=yes \ + -Dtraymonitor=yes - # Currently upstream systemd file does not automatically create run directory - for _daemon in 'dir' 'fd' 'sd'; do - sed -i ' - /^StandardOutput=syslog$/d - /\[Service\]/a RuntimeDirectory=bareos/'"${_daemon}"' - s@^\(WorkingDirectory=\).*$@\1/run/bareos/'"${_daemon}"'@ - s@^\(PIDFile=\).*/\([^/]\+\)$@\1/run/bareos/'"${_daemon}"'/\2@ - ' "$srcdir/bareos-Release-$pkgver/core/platforms/systemd/bareos-${_daemon}.service" - done + make DESTDIR="${srcdir}/install" install - sed -i '1 a PID Directory = /run/bareos/dir' \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/director/bareos-dir.conf" - sed -i '1 a PID Directory = /run/bareos/sd' \ - "$srcdir/install/usr/share/bareos/config/bareos-sd.d/storage/bareos-sd.conf" - sed -i '1 a PID Directory = /run/bareos/fd' \ - "$srcdir/install/usr/share/bareos/config/bareos-fd.d/client/myself.conf" - find "$srcdir/install/usr/share/bareos/config" -type f \ - -exec sed -i 's@/usr/local/bin/@/usr/bin/@g' {} \; + cd "${srcdir}/${pkgbase}/python-bareos" + python setup.py build } -package_bareos-common() { - # Matches bareos-common.install.in - pkgdesc="${pkgdesc} - Common files" - local _pinned_dependencies - _pinned_dependencies=( - 'gcc-libs=12.2.0' - 'glibc>=2.31' - 'jansson=2.14' - 'libacl.so=1' - 'lzo=2.10' - 'openssl=1.1.1.q' - 'zlib=1:1.2.13' - ) - depends=('bash' "${_pinned_dependencies[@]}") - install=bareos-common.install - -# are these really 'common'? -# usr/lib/bareos/libbareoslmdb.so -# usr/lib/bareos/libbareossd.so - - install -Dm755 \ - "$srcdir/install/usr/lib/bareos"/libbareos.so* \ - "$srcdir/install/usr/lib/bareos"/libbareosfind.so* \ - "$srcdir/install/usr/lib/bareos"/libbareoslmdb.so* \ - "$srcdir/install/usr/lib/bareos"/libbareossd.so* \ - "$srcdir/install/usr/lib/bareos"/libbareosfastlz.so* \ - -t "$pkgdir/usr/lib/bareos" - - install -Dm755 \ - "$srcdir/install/usr/lib/bareos/scripts/bareos-config" \ - -t "$pkgdir/usr/lib/bareos/scripts" - install -Dm644 \ - "$srcdir/install/usr/lib/bareos/scripts/bareos-config-lib.sh" \ - "$srcdir/install/usr/lib/bareos/scripts/btraceback.gdb" \ - -t "$pkgdir/usr/lib/bareos/scripts" - - install -Dm755 \ - "$srcdir/install/usr/bin/bsmtp" \ - "$srcdir/install/usr/bin/btraceback" \ - -t "$pkgdir/usr/bin" - - install -Dm644 \ - "$srcdir/install/usr/share/man/man1/bsmtp.1" \ - -t "$pkgdir/usr/share/man/man1/" - install -Dm644 \ - "$srcdir/install/usr/share/man/man8/btraceback.8" \ - -t "$pkgdir/usr/share/man/man8/" - - install -dm755 "$pkgdir/var/lib/bareos" - install -dm750 "$pkgdir/etc/bareos" - install -dm755 "$pkgdir/run/bareos" +#========================================= +# + only directory created +# - skip a line +# directory - add recursively an arbitrary directory +cp_pkgdir() { + if [ "${1:0:1}" = "-" ] ; then + return + elif [ "${1:0:1}" = "+" ] ; then + dir_name=$pkgdir/`echo "$1" | sed "s|+||"` + mkdir -p "$dir_name" + return + fi + for n in $2$1 \ + ; do + if [ -f "$n" ]; then + dir_name=$pkgdir/$(dirname "$n" | sed "s|$2||") + else + dir_name=$pkgdir/`echo "$n" | sed "s|$2||"` + fi + if [ "${dir_name:0:1}" == "." ]; then + return + else + mkdir -p "$dir_name" + fi + if [ -f "$n" ]; then + cp -a "$n" "$dir_name" + elif [ -d "$n" ]; then + cp -aR "$n" "$(dirname $dir_name)" + fi + done } +#========================================= package_bareos-bconsole() { pkgdesc="${pkgdesc} - Admin Tool (CLI)" - local _pinned_dependencies - _pinned_dependencies=( - 'gcc-libs=12.2.0' - 'glibc>=2.31' - 'jansson=2.14' - 'libreadline.so=8' - ) - depends=("bareos-common=$pkgver" "${_pinned_dependencies[@]}") - groups+=('bareos-client') + depends=("bareos-common=${pkgver}" 'readline' 'jansson') + groups+=("bareos-client") install=bareos-bconsole.install + backup=("etc/bareos/bconsole.conf") + + for f in \ + usr/share/bareos/config/bconsole.conf \ + usr/bin/bconsole \ + usr/share/man/man1/bconsole.1* \ + +etc/bareos \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done + install -m640 "${srcdir}/install/usr/share/bareos/config/bconsole.conf" \ + "${pkgdir}/etc/bareos/bconsole.conf" +} - backup=('etc/bareos/bconsole.conf') - - install -Dm640 "$srcdir/install/usr/share/bareos/config/bconsole.conf" \ - -t "$pkgdir/etc/bareos" - install -Dm755 "$srcdir/install/usr/bin/bconsole" \ - -t "$pkgdir/usr/bin" - install -Dm644 "$srcdir/install/usr/share/man/man1/bconsole.1" \ - -t "$pkgdir/usr/share/man/man1" - chmod -R o-rx "$pkgdir/etc/bareos" +#========================================= +package_bareos-common() { + pkgdesc="${pkgdesc} - Common files" + depends=('libcap' 'openssl' 'acl' 'bash' 'lzo' 'jansson' 'zlib') + install=bareos-common.install + for f in \ + usr/lib/bareos/libbareos.so* \ + usr/lib/bareos/libbareosfastlz.so* \ + usr/lib/bareos/libbareosfind.so* \ + usr/lib/bareos/libbareoslmdb.so* \ + usr/lib/bareos/libbareosndmp.so* \ + usr/lib/bareos/libbareossd.so* \ + usr/lib/bareos/scripts/bareos-config \ + usr/lib/bareos/scripts/bareos-config-lib.sh \ + usr/lib/bareos/scripts/bareos-explorer \ + usr/lib/bareos/scripts/btraceback.gdb \ + usr/bin/bsmtp \ + usr/bin/btraceback \ + usr/share/man/man1/bsmtp.1* \ + usr/share/man/man8/btraceback.8* \ + var/lib/bareos \ + +etc/bareos \ + +var/log/bareos \ + +run/bareos \ + +usr/share/licenses/${pkgname} \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done + install -Dm644 ${srcdir}/bareos/core/{AGPL-3.0.txt,LICENSE,README.*} "${pkgdir}/usr/share/licenses/${pkgname}/" } + +#========================================= package_bareos-database-common() { pkgdesc="${pkgdesc} - Generic abstration libs and tools for sql catalog" - local _pinned_dependencies - _pinned_dependencies=( - 'gcc-libs=12.2.0' - 'glibc>=2.31' - ) - depends=("bareos-common=$pkgver" 'libcap' 'lzo' 'zlib' 'openssl' 'bash' 'jansson' "${_pinned_dependencies[@]}") - - install -Dm755 \ - "$srcdir/install/usr/lib/bareos"/libbareoscats.so* \ - "$srcdir/install/usr/lib/bareos"/libbareossql.so* \ - -t "$pkgdir/usr/lib/bareos" - - install -Dm755 \ - "$srcdir/install/usr/lib/bareos/scripts/create_bareos_database" \ - "$srcdir/install/usr/lib/bareos/scripts/drop_bareos_database" \ - "$srcdir/install/usr/lib/bareos/scripts/drop_bareos_tables" \ - "$srcdir/install/usr/lib/bareos/scripts/grant_bareos_privileges" \ - "$srcdir/install/usr/lib/bareos/scripts/make_bareos_tables" \ - "$srcdir/install/usr/lib/bareos/scripts/update_bareos_tables" \ - -t "$pkgdir/usr/lib/bareos/scripts" - install -Dm755 \ - "$srcdir/install/usr/lib/bareos/scripts/ddl/versions.map" \ - -t "$pkgdir/usr/lib/bareos/scripts/ddl" + depends=("bareos-common=${pkgver}" 'libcap' 'lzo' 'zlib' 'openssl' 'bash' 'jansson') + for f in \ + usr/lib/bareos/libbareossql.so* \ + usr/lib/bareos/libbareoscats.so* \ + usr/lib/bareos/scripts/create_bareos_database \ + usr/lib/bareos/scripts/drop_bareos_database \ + usr/lib/bareos/scripts/drop_bareos_tables \ + usr/lib/bareos/scripts/grant_bareos_privileges \ + usr/lib/bareos/scripts/make_bareos_tables \ + usr/lib/bareos/scripts/update_bareos_tables \ + usr/lib/bareos/scripts/ddl/versions.map \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done } +#========================================= package_bareos-database-postgresql() { pkgdesc="${pkgdesc} - Libs and tools for postgresql catalog" - provides=("bareos-database=$pkgver") - local _pinned_dependencies - _pinned_dependencies=( - 'gcc-libs=12.2.0' - 'glibc>=2.31' - 'libpq.so=5' - ) - depends=("bareos-common=$pkgver" "bareos-database-common=$pkgver" "${_pinned_dependencies[@]}") - install='bareos-database-postgresql.install' - - install -Dm755 \ - "$srcdir/install/usr/lib/bareos/backends/libbareoscats-postgresql.so" \ - -t "$pkgdir/usr/lib/bareos/backends" - install -Dm644 \ - "$srcdir/install/usr/lib/bareos/scripts/ddl/drops/postgresql.sql" \ - -t "$pkgdir/usr/lib/bareos/scripts/ddl/drops" - install -Dm644 \ - "$srcdir/install/usr/lib/bareos/scripts/ddl/grants/postgresql-change_owner.dbconfig-template.sql" \ - "$srcdir/install/usr/lib/bareos/scripts/ddl/grants/postgresql-readonly.sql" \ - "$srcdir/install/usr/lib/bareos/scripts/ddl/grants/postgresql.sql" \ - -t "$pkgdir/usr/lib/bareos/scripts/ddl/grants" - install -Dm644 \ - "$srcdir/install/usr/lib/bareos/scripts/ddl/creates/postgresql.sql" \ - -t "$pkgdir/usr/lib/bareos/scripts/ddl/creates" - install -Dm644 \ - "$srcdir/install/usr/lib/bareos/scripts/ddl/updates/"*".sql" \ - -t "$pkgdir/usr/lib/bareos/scripts/ddl/updates" + provides=("bareos-database=${pkgver}") + depends=("bareos-database-common=${pkgver}" "postgresql-libs") + install=bareos-database-postgresql.install + for f in \ + usr/lib/bareos/backends/libbareoscats-postgresql.so* \ + usr/lib/bareos/scripts/ddl/*/postgresql*.sql \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done } +#========================================= package_bareos-database-tools() { pkgdesc="${pkgdesc} - CLI tools with database dpendencies (dbcheck, bscan)" - local _pinned_dependencies - _pinned_dependencies=( - 'gcc-libs=12.2.0' - 'glibc>=2.31' - 'jansson=2.14' - 'openssl=1.1.1.q' - ) - depends=("bareos-common=$pkgver" "bareos-database-common=$pkgver" "${_pinned_dependencies[@]}") - - install -Dm755 \ - "$srcdir/install/usr/bin/bareos-dbcheck" \ - "$srcdir/install/usr/bin/bscan" \ - -t "$pkgdir/usr/bin" - install -Dm644 \ - "$srcdir/install/usr/share/man/man8/bareos-dbcheck.8" \ - "$srcdir/install/usr/share/man/man8/bscan.8" \ - -t "$pkgdir/usr/share/man/man8" -} - -#package_bareos-devel() { -# pkgdesc="${pkgdesc} - Devel headers" -# arch=(any) -# # TODO -# install -d $pkgdir/usr/include/bareos -#} + depends=("bareos-database-common=${pkgver}" 'openssl' 'jansson') + + for f in \ + usr/bin/bareos-dbcheck \ + usr/bin/bscan \ + usr/share/man/man8/bareos-dbcheck.8* \ + usr/share/man/man8/bscan.8* \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done +} + +#========================================= +package_bareos-devel() { + pkgdesc="${pkgdesc} - Devel headers" + arch=(any) + # TODO + install -d ${pkgdir}/usr/include/bareos + install -m640 ${srcdir}/bareos/core/src/lib/*.h ${pkgdir}/usr/include/bareos +} +#========================================= package_bareos-director() { pkgdesc="${pkgdesc} - Director daemon" - local _pinned_dependencies - _pinned_dependencies=( - 'gcc-libs=12.2.0' - 'glibc>=2.31' - 'jansson=2.14' - 'libpam.so=0' - 'openssl=1.1.1.q' - ) - depends=("bareos-common=$pkgver" "bareos-database=$pkgver" "bareos-database-common=$pkgver" 'bash' "${_pinned_dependencies[@]}") + depends=("bareos-common=${pkgver}" 'openssl' 'bash' 'jansson') install=bareos-director.install + for f in \ + etc/logrotate.d/bareos-dir \ + usr/lib/bareos/scripts/delete_catalog_backup \ + usr/lib/bareos/scripts/make_catalog_backup \ + usr/lib/bareos/scripts/make_catalog_backup.pl \ + usr/lib/bareos/scripts/query.sql \ + usr/share/bareos/config/bareos-dir.d/catalog/MyCatalog.conf \ + usr/share/bareos/config/bareos-dir.d/client/bareos-fd.conf \ + usr/share/bareos/config/bareos-dir.d/console/bareos-mon.conf \ + usr/share/bareos/config/bareos-dir.d/director/bareos-dir.conf \ + usr/share/bareos/config/bareos-dir.d/fileset/Catalog.conf \ + usr/share/bareos/config/bareos-dir.d/fileset/LinuxAll.conf \ + usr/share/bareos/config/bareos-dir.d/fileset/SelfTest.conf \ + usr/share/bareos/config/bareos-dir.d/fileset/Windows?All?Drives.conf \ + usr/share/bareos/config/bareos-dir.d/job/backup-bareos-fd.conf \ + usr/share/bareos/config/bareos-dir.d/job/BackupCatalog.conf \ + usr/share/bareos/config/bareos-dir.d/job/RestoreFiles.conf \ + usr/share/bareos/config/bareos-dir.d/jobdefs/DefaultJob.conf \ + usr/share/bareos/config/bareos-dir.d/messages/Daemon.conf \ + usr/share/bareos/config/bareos-dir.d/messages/Standard.conf \ + usr/share/bareos/config/bareos-dir.d/pool/Differential.conf \ + usr/share/bareos/config/bareos-dir.d/pool/Full.conf \ + usr/share/bareos/config/bareos-dir.d/pool/Incremental.conf \ + usr/share/bareos/config/bareos-dir.d/pool/Scratch.conf \ + usr/share/bareos/config/bareos-dir.d/profile/operator.conf \ + usr/share/bareos/config/bareos-dir.d/schedule/WeeklyCycleAfterBackup.conf \ + usr/share/bareos/config/bareos-dir.d/schedule/WeeklyCycle.conf \ + usr/share/bareos/config/bareos-dir.d/storage/File.conf \ + usr/share/bareos/config/bareos-dir.d/user \ + usr/share/bareos/config/tray-monitor.d/director/Director-local*.conf \ + usr/bin/bareos-dir \ + usr/share/man/man8/bareos-dir.8* \ + usr/share/man/man8/bareos.8* \ + usr/lib/systemd/system/bareos-dir.service \ + ; do + # pacman LINT tool currently does not like spaces + #space_removal=`echo $f | tr ' ' '_'` + cp_pkgdir "$f" "$srcdir/install/" + done - install -Dm755 \ - "$srcdir/install/usr/lib/bareos/scripts/delete_catalog_backup" \ - "$srcdir/install/usr/lib/bareos/scripts/make_catalog_backup" \ - "$srcdir/install/usr/lib/bareos/scripts/make_catalog_backup.pl" \ - -t "$pkgdir/usr/lib/bareos/scripts" - install -Dm644 \ - "$srcdir/install/usr/lib/bareos/scripts/query.sql" \ - -t "$pkgdir/usr/lib/bareos/scripts" - - backup=( - 'etc/bareos/bareos-dir.d/catalog/MyCatalog.conf' - 'etc/bareos/bareos-dir.d/client/bareos-fd.conf' - 'etc/bareos/bareos-dir.d/console/bareos-mon.conf' - 'etc/bareos/bareos-dir.d/director/bareos-dir.conf' - 'etc/bareos/bareos-dir.d/fileset/Catalog.conf' - 'etc/bareos/bareos-dir.d/fileset/LinuxAll.conf' - 'etc/bareos/bareos-dir.d/fileset/SelfTest.conf' - 'etc/bareos/bareos-dir.d/fileset/Windows All Drives.conf' - 'etc/bareos/bareos-dir.d/job/backup-bareos-fd.conf' - 'etc/bareos/bareos-dir.d/job/BackupCatalog.conf' - 'etc/bareos/bareos-dir.d/job/RestoreFiles.conf' - 'etc/bareos/bareos-dir.d/jobdefs/DefaultJob.conf' - 'etc/bareos/bareos-dir.d/messages/Daemon.conf' - 'etc/bareos/bareos-dir.d/messages/Standard.conf' - 'etc/bareos/bareos-dir.d/pool/Differential.conf' - 'etc/bareos/bareos-dir.d/pool/Full.conf' - 'etc/bareos/bareos-dir.d/pool/Incremental.conf' - 'etc/bareos/bareos-dir.d/pool/Scratch.conf' - 'etc/bareos/bareos-dir.d/profile/operator.conf' - 'etc/bareos/bareos-dir.d/schedule/WeeklyCycleAfterBackup.conf' - 'etc/bareos/bareos-dir.d/schedule/WeeklyCycle.conf' - 'etc/bareos/bareos-dir.d/storage/File.conf' - ) - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/catalog/MyCatalog.conf" \ - -t "$pkgdir/etc/bareos/bareos-dir.d/catalog" - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/client/bareos-fd.conf" \ - -t "$pkgdir/etc/bareos/bareos-dir.d/client" - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/console/bareos-mon.conf" \ - -t "$pkgdir/etc/bareos/bareos-dir.d/console" - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/director/bareos-dir.conf" \ - -t "$pkgdir/etc/bareos/bareos-dir.d/director" - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/fileset/Catalog.conf" \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/fileset/LinuxAll.conf" \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/fileset/SelfTest.conf" \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/fileset/Windows All Drives.conf" \ - -t "$pkgdir/etc/bareos/bareos-dir.d/fileset" - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/job/backup-bareos-fd.conf" \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/job/BackupCatalog.conf" \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/job/RestoreFiles.conf" \ - -t "$pkgdir/etc/bareos/bareos-dir.d/job" - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/jobdefs/DefaultJob.conf" \ - -t "$pkgdir/etc/bareos/bareos-dir.d/jobdefs" - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/messages/Daemon.conf" \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/messages/Standard.conf" \ - -t "$pkgdir/etc/bareos/bareos-dir.d/messages" - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/pool/Differential.conf" \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/pool/Full.conf" \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/pool/Incremental.conf" \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/pool/Scratch.conf" \ - -t "$pkgdir/etc/bareos/bareos-dir.d/pool" - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/profile/operator.conf" \ - -t "$pkgdir/etc/bareos/bareos-dir.d/profile" - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/schedule/WeeklyCycleAfterBackup.conf" \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/schedule/WeeklyCycle.conf" \ - -t "$pkgdir/etc/bareos/bareos-dir.d/schedule" - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/storage/File.conf" \ - -t "$pkgdir/etc/bareos/bareos-dir.d/storage" - - install -Dm755 \ - "$srcdir/install/usr/bin/bareos-dir" \ - -t "$pkgdir/usr/bin" - install -Dm644 \ - "$srcdir/install/usr/share/man/man8/bareos-dir.8" \ - "$srcdir/install/usr/share/man/man8/bareos.8" \ - -t "$pkgdir/usr/share/man/man8" - - install -Dm644 \ - "$srcdir/bareos-Release-$pkgver/core/platforms/systemd/bareos-dir.service" \ - -t "$pkgdir/usr/lib/systemd/system/" - chmod -R o-rx "$pkgdir/etc/bareos" + # Currently upstream systemd file does not automatically create run directory + sed -i '/\[Service\]/a RuntimeDirectory=bareos' ${pkgdir}/usr/lib/systemd/system/bareos-dir.service } -package_bareos-storage-fifo() { - pkgdesc="${pkgdesc} - FIFO support for storage daemon" - local _pinned_dependencies - _pinned_dependencies=( - 'gcc-libs=12.2.0' - 'glibc>=2.31' - ) - depends=("bareos-storage=$pkgver" 'libcap' 'openssl' 'jansson' 'lzo' "${_pinned_dependencies[@]}") - install=bareos-storage-fifo.install - install -Dm755 \ - "$srcdir/install/usr/lib/bareos/backends/libbareossd-fifo.so" \ - -t "$pkgdir/usr/lib/bareos/backends" - backup=( - 'etc/bareos/bareos-dir.d/storage/NULL.conf.example' - 'etc/bareos/bareos-sd.d/device/NULL.conf.example' - ) - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/storage/NULL.conf.example" \ - -t "$pkgdir/etc/bareos/bareos-dir.d/storage" - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-sd.d/device/NULL.conf.example" \ - -t "$pkgdir/etc/bareos/bareos-sd.d/device" - chmod -R o-rx "$pkgdir/etc/bareos" +#========================================= +package_bareos-director-python-plugins-common() { + pkgdesc="${pkgdesc} - This package contains the common files for the python 2 and python 3 director plugins" + depends=("bareos-director=${pkgver}") + + for f in \ + usr/lib/bareos/plugins/BareosDirWrapper.py* \ + usr/lib/bareos/plugins/BareosDirPluginBaseclass.py* \ + usr/lib/bareos/plugins/bareos-dir-class-plugin.py* \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done } -package_bareos-tools() { - pkgdesc="${pkgdesc} - CLI tools (bcopy, bextract, bls, bregeq, bwild)" - local _pinned_dependencies - _pinned_dependencies=( - 'gcc-libs=12.2.0' - 'glibc>=2.31' - ) - depends=("bareos-common=$pkgver" "${_pinned_dependencies[@]}") - - install -Dm755 \ - "$srcdir/install/usr/bin/bregex" \ - "$srcdir/install/usr/bin/bwild" \ - "$srcdir/install/usr/bin/bcopy" \ - "$srcdir/install/usr/bin/bextract" \ - "$srcdir/install/usr/bin/bls" \ - "$srcdir/install/usr/bin/bpluginfo" \ - -t "$pkgdir/usr/bin" - install -Dm644 \ - "$srcdir/install/usr/share/man/man1/bwild.1" \ - "$srcdir/install/usr/share/man/man1/bregex.1" \ - -t "$pkgdir/usr/share/man/man1" - install -Dm644 \ - "$srcdir/install/usr/share/man/man8/bcopy.8" \ - "$srcdir/install/usr/share/man/man8/bextract.8" \ - "$srcdir/install/usr/share/man/man8/bls.8" \ - "$srcdir/install/usr/share/man/man8/bpluginfo.8" \ - -t "$pkgdir/usr/share/man/man8" +#========================================= +package_bareos-director-python3-plugin() { + conflicts=("bareos-director-python-plugin") + pkgdesc="${pkgdesc} - Python plugin for director daemon" + depends=("bareos-director=${pkgver}" + "bareos-director-python-plugins-common=${pkgver}" + 'python' 'libcap' 'jansson' 'lzo') + for f in \ + usr/lib/bareos/plugins/python3-dir.so \ + usr/lib/python${python3_ver}/site-packages/bareosdir.cpython*.so \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done } +#========================================= package_bareos-filedaemon() { pkgdesc="${pkgdesc} - File daemon" - local _pinned_dependencies - _pinned_dependencies=( - 'gcc-libs=12.2.0' - 'glibc>=2.31' - 'jansson=2.14' - 'zlib=1:1.2.13' - ) - depends=("bareos-common=$pkgver" "${_pinned_dependencies[@]}") + depends=("bareos-common=${pkgver}" 'jansson' 'zlib' 'gcc-libs') groups+=('bareos-client') install=bareos-filedaemon.install + for f in \ + usr/share/bareos/config/bareos-fd.d/client/myself.conf \ + usr/share/bareos/config/bareos-fd.d/director/bareos-dir.conf \ + usr/share/bareos/config/bareos-fd.d/director/bareos-mon.conf \ + usr/share/bareos/config/bareos-fd.d/messages/Standard.conf \ + usr/share/bareos/config/tray-monitor.d/client/FileDaemon-local*.conf \ + usr/bin/bareos-fd \ + usr/lib/bareos/plugins/bpipe-fd.so \ + usr/share/man/man8/bareos-fd.8* \ + usr/lib/systemd/system/bareos-fd.service \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done + # Currently upstream systemd file does not automatically create run directory + sed -i '/\[Service\]/a RuntimeDirectory=bareos' ${pkgdir}/usr/lib/systemd/system/bareos-fd.service +} + +#========================================= +package_bareos-filedaemon-glusterfs-plugin() { + pkgdesc="${pkgdesc} - GlusterFS plugin for Bareos File daemon" + depends=("bareos-filedaemon=${pkgver}" + "glusterfs") + for f in \ + usr/lib/bareos/plugins/gfapi-fd.so \ + usr/share/bareos/config/bareos-dir.d/fileset/plugin-gfapi.conf.example \ + usr/share/bareos/config/bareos-dir.d/job/BackupGFAPI.conf.example \ + usr/share/bareos/config/bareos-dir.d/job/RestoreGFAPI.conf.example \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done +} + +#========================================= +package_bareos-filedaemon-ldap-python-plugin() { + pkgdesc="${pkgdesc} - LDAP Python plugin for Bareos File daemon" + depends=("bareos-filedaemon=${pkgver}" + "bareos-filedaemon-python3-plugin=${pkgver}" + 'python-ldap') + #backup=("etc/bareos/bareos-dir.d/plugin-python-ldap.conf") + + for f in \ + usr/lib/bareos/plugins/bareos-fd-ldap.py* \ + usr/lib/bareos/plugins/BareosFdPluginLDAP.py* \ + usr/share/bareos/config/bareos-dir.d/fileset/plugin-ldap.conf.example \ + usr/share/bareos/config/bareos-dir.d/job/backup-ldap.conf.example \ + usr/share/bareos/config/bareos-dir.d/job/restore-ldap.conf.example \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done +} + +#========================================= +package_bareos-filedaemon-libcloud-python-plugin() { + pkgdesc="${pkgdesc} - Libcloud Python plugin for Bareos File daemon" + depends=("bareos-filedaemon=${pkgver}" + "python-apache-libcloud") + for f in \ + usr/lib/bareos/plugins/bareos-fd-libcloud.py* \ + usr/lib/bareos/plugins/BareosFdPluginLibcloud.py* \ + usr/lib/bareos/plugins/BareosLibcloudApi.py \ + usr/lib/bareos/plugins/bareos_libcloud_api \ + usr/lib/bareos/plugins/bareos_libcloud_api/* \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done +} + +#========================================= +package_bareos-filedaemon-mariabackup-python-plugin() { + pkgdesc="${pkgdesc} - MariaBackup plugin for Bareos File daemon" + depends=("bareos-filedaemon=${pkgver}" + "mariadb") + for f in \ + usr/lib/bareos/plugins/bareos-fd-mariabackup.py* \ + usr/lib/bareos/plugins/BareosFdPluginMariabackup.py* \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done +} - backup=( - 'etc/bareos/bareos-fd.d/client/myself.conf' - 'etc/bareos/bareos-fd.d/director/bareos-dir.conf' - 'etc/bareos/bareos-fd.d/director/bareos-mon.conf' - 'etc/bareos/bareos-fd.d/messages/Standard.conf' - ) - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-fd.d/client/myself.conf" \ - -t "$pkgdir/etc/bareos/bareos-fd.d/client" - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-fd.d/director/bareos-dir.conf" \ - "$srcdir/install/usr/share/bareos/config/bareos-fd.d/director/bareos-mon.conf" \ - -t "$pkgdir/etc/bareos/bareos-fd.d/director" - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-fd.d/messages/Standard.conf" \ - -t "$pkgdir/etc/bareos/bareos-fd.d/messages" - - install -Dm755 \ - "$srcdir/install/usr/bin/bareos-fd" \ - "$srcdir/check-if-bareos-backup-is-running" \ - -t "$pkgdir/usr/bin" - install -Dm755 \ - "$srcdir/install/usr/lib/bareos/plugins/bpipe-fd.so" \ - -t "$pkgdir/usr/lib/bareos/plugins" - install -Dm644 \ - "$srcdir/install/usr/share/man/man8/bareos-fd.8" \ - -t "$pkgdir/usr/share/man/man8" - install -Dm644 \ - "$srcdir/bareos-Release-$pkgver/core/platforms/systemd/bareos-fd.service" \ - -t "$pkgdir/usr/lib/systemd/system" - chmod -R o-rx "$pkgdir/etc/bareos" +#========================================= +package_bareos-filedaemon-percona-xtrabackup-python-plugin() { + pkgdesc="${pkgdesc} - XtraBackup plugin for Bareos File daemon" + depends=("bareos-filedaemon=${pkgver}" + "xtrabackup") + for f in \ + usr/lib/bareos/plugins/bareos-fd-percona-xtrabackup.py* \ + usr/lib/bareos/plugins/BareosFdPluginPerconaXtraBackup.py* \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done +} + +#========================================= +package_bareos-filedaemon-postgresql-python-plugin() { + pkgdesc="${pkgdesc} - PostgreSQL plugin for Bareos File daemon" + depends=("bareos-filedaemon=${pkgver}" + "postgresql") + for f in \ + usr/lib/bareos/plugins/bareos-fd-postgres.py* \ + usr/lib/bareos/plugins/BareosFdPluginPostgres.py* \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done +} + +#========================================= +package_bareos-filedaemon-python-plugins-common() { + pkgdesc="${pkgdesc} - This package contains the common files for the python 2 and python 3 filedaemon plugins" + depends=("bareos-filedaemon=${pkgver}") + for f in \ + usr/lib/bareos/plugins/bareos-fd-local-fileset.py* \ + usr/lib/bareos/plugins/BareosFdPluginBaseclass.py* \ + usr/lib/bareos/plugins/BareosFdPluginLocalFileset.py* \ + usr/lib/bareos/plugins/BareosFdPluginLocalFilesBaseclass.py* \ + usr/lib/bareos/plugins/BareosFdWrapper.py* \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done +} + +#========================================= +package_bareos-filedaemon-python3-plugin() { + conflicts=("bareos-filedaemon-python-plugin") + pkgdesc="${pkgdesc} - Python plugin for file daemon" + depends=("bareos-filedaemon=${pkgver}" + "bareos-filedaemon-python-plugins-common=${pkgver}" + 'python' 'libcap' 'lzo' 'jansson') + for f in \ + usr/lib/bareos/plugins/python3-fd.so \ + usr/lib/python${python3_ver}/site-packages/bareosfd.cpython*.so \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done } +#========================================= package_bareos-storage() { pkgdesc="${pkgdesc} - Storage daemon" - local _pinned_dependencies - _pinned_dependencies=( - 'gcc-libs=12.2.0' - 'glibc>=2.31' - ) - depends=("bareos-common=$pkgver" 'lzo' 'jansson' 'openssl' 'libcap' "${_pinned_dependencies[@]}") + depends=("bareos-common=${pkgver}" 'zlib' 'lzo' 'jansson' 'openssl' 'libcap') install=bareos-storage.install + for f in \ + usr/lib/bareos/plugins/autoxflate-sd.so \ + usr/lib/bareos/scripts/disk-changer \ + usr/share/bareos/config/bareos-sd.d/device/FileStorage.conf \ + usr/share/bareos/config/bareos-sd.d/director/bareos-dir.conf \ + usr/share/bareos/config/bareos-sd.d/director/bareos-mon.conf \ + usr/share/bareos/config/bareos-sd.d/messages/Standard.conf \ + usr/share/bareos/config/bareos-sd.d/storage/bareos-sd.conf \ + usr/share/bareos/config/tray-monitor.d/storage/StorageDaemon-local*.conf \ + usr/bin/bareos-sd \ + usr/share/man/man8/bareos-sd.8 \ + usr/lib/systemd/system/bareos-sd.service \ + +var/lib/bareos/storage \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done + + # Currently upstream systemd file does not automatically create run directory + sed -i '/\[Service\]/a RuntimeDirectory=bareos' ${pkgdir}/usr/lib/systemd/system/bareos-sd.service +} + +#========================================= +package_bareos-storage-droplet() { + pkgdesc="${pkgdesc} - Droplet support for storage daemon" + depends=("bareos-storage=${pkgver}") + for f in \ + usr/lib/bareos/libbareosdroplet.so* \ + usr/lib/bareos/backends/libbareossd-chunked.so* \ + usr/lib/bareos/backends/libbareossd-droplet.so* \ + usr/share/bareos/config/bareos-dir.d/storage/S3_Object.conf.example \ + usr/share/bareos/config/bareos-sd.d/device/S3_ObjectStorage.conf.example \ + usr/share/bareos/config/bareos-sd.d/device/droplet \ + usr/share/bareos/config/bareos-sd.d/device/droplet/aws_eu-central-1.profile.example \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done +} + +#========================================= +package_bareos-storage-fifo() { + pkgdesc="${pkgdesc} - FIFO support for storage daemon" + depends=("bareos-storage=${pkgver}" 'zlib' 'libcap' 'openssl' 'jansson' 'lzo') + for f in \ + usr/lib/bareos/backends/libbareossd-fifo.so* \ + usr/share/bareos/config/bareos-dir.d/storage/NULL.conf.example \ + usr/share/bareos/config/bareos-sd.d/device/NULL.conf.example \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done +} + +#========================================= +package_bareos-storage-glusterfs() { + pkgdesc="${pkgdesc} - GlusterFS support for storage daemon" + depends=("bareos-storage=${pkgver}" + "glusterfs") + for f in \ + usr/lib/bareos/backends/libbareossd-gfapi.so* \ + usr/share/bareos/config/bareos-dir.d/storage/Gluster.conf.example \ + usr/share/bareos/config/bareos-sd.d/device/GlusterStorage.conf.example \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done +} + +#========================================= +package_bareos-storage-python-plugins-common() { + pkgdesc="${pkgdesc} - This package contains the common files for the python 2 and python 3 storage plugins" + depends=("bareos-storage=${pkgver}") + for f in \ + usr/lib/bareos/plugins/BareosSdPluginBaseclass.py* \ + usr/lib/bareos/plugins/BareosSdWrapper.py* \ + usr/lib/bareos/plugins/bareos-sd-class-plugin.py* \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done +} - install -Dm755 \ - "$srcdir/install/usr/lib/bareos/plugins/autoxflate-sd.so" \ - -t "$pkgdir/usr/lib/bareos/plugins" - install -Dm755 \ - "$srcdir/install/usr/lib/bareos/scripts/disk-changer" \ - -t "$pkgdir/usr/lib/bareos/scripts" - backup=( - 'etc/bareos/bareos-sd.d/device/FileStorage.conf' - 'etc/bareos/bareos-sd.d/director/bareos-dir.conf' - 'etc/bareos/bareos-sd.d/director/bareos-mon.conf' - 'etc/bareos/bareos-sd.d/messages/Standard.conf' - 'etc/bareos/bareos-sd.d/storage/bareos-sd.conf' - ) - install -Dm644 \ - "$srcdir/install/usr/share/bareos/config/bareos-sd.d/device/FileStorage.conf" \ - -t "$pkgdir/etc/bareos/bareos-sd.d/device" - install -Dm644 \ - "$srcdir/install/usr/share/bareos/config/bareos-sd.d/director/bareos-dir.conf" \ - "$srcdir/install/usr/share/bareos/config/bareos-sd.d/director/bareos-mon.conf" \ - -t "$pkgdir/etc/bareos/bareos-sd.d/director" - install -Dm644 \ - "$srcdir/install/usr/share/bareos/config/bareos-sd.d/messages/Standard.conf" \ - -t "$pkgdir/etc/bareos/bareos-sd.d/messages" - install -Dm644 \ - "$srcdir/install/usr/share/bareos/config/bareos-sd.d/storage/bareos-sd.conf" \ - -t "$pkgdir/etc/bareos/bareos-sd.d/storage" - install -Dm755 \ - "$srcdir/install/usr/bin/bareos-sd" \ - -t "$pkgdir/usr/bin" - install -Dm644 \ - "$srcdir/install/usr/share/man/man8/bareos-sd.8" \ - -t "$pkgdir/usr/share/man/man8" - install -Dm644 \ - "$srcdir/bareos-Release-$pkgver/core/platforms/systemd/bareos-sd.service" \ - -t "$pkgdir/usr/lib/systemd/system" - install -dm750 "$pkgdir/var/lib/bareos/storage" - chmod -R o-rx "$pkgdir/etc/bareos" +#========================================= +package_bareos-storage-python3-plugin() { + conflicts=("bareos-storage-python-plugin") + pkgdesc="${pkgdesc} - Python plugin for storage daemon" + depends=("bareos-storage=${pkgver}" + "bareos-storage-python-plugins-common=${pkgver}" + 'python' 'lzo' 'libcap' 'jansson') + for f in \ + usr/lib/bareos/plugins/python3-sd.so \ + usr/lib/python${python3_ver}/site-packages/bareossd.cpython*.so \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done } +#========================================= package_bareos-storage-tape() { pkgdesc="${pkgdesc} - Tape support for storage daemon" - local _pinned_dependencies - _pinned_dependencies=( - 'gcc-libs=12.2.0' - 'glibc>=2.31' - ) - depends=("bareos-common=$pkgver" "bareos-storage=$pkgver" 'libcap' 'bash' 'openssl' 'jansson' 'lzo' "${_pinned_dependencies[@]}") - install=bareos-storage-tape.install - backup=( - 'etc/bareos/mtx-changer.conf' - 'etc/bareos/bareos-dir.d/storage/Tape.conf.example' - 'etc/bareos/bareos-sd.d/autochanger/autochanger-0.conf.example' - 'etc/bareos/bareos-sd.d/device/tapedrive-0.conf.example' - ) - install -Dm640 \ - "$srcdir/install/etc/bareos/mtx-changer.conf" \ - -t "$pkgdir/etc/bareos" - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-dir.d/storage/Tape.conf.example" \ - -t "$pkgdir/etc/bareos/bareos-dir.d/storage" - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-sd.d/autochanger/autochanger-0.conf.example" \ - -t "$pkgdir/etc/bareos/bareos-sd.d/autochanger" - install -Dm640 \ - "$srcdir/install/usr/share/bareos/config/bareos-sd.d/device/tapedrive-0.conf.example" \ - -t "$pkgdir/etc/bareos/bareos-sd.d/device" - install -Dm755 \ - "$srcdir/install/usr/lib/bareos/backends/libbareossd-gentape.so" \ - "$srcdir/install/usr/lib/bareos/backends/libbareossd-tape.so" \ - -t "$pkgdir/usr/lib/bareos/backends" - install -Dm755 \ - "$srcdir/install/usr/lib/bareos/scripts/mtx-changer" \ - -t "$pkgdir/usr/lib/bareos/scripts" - install -Dm644 \ - "$srcdir/install/usr/share/man/man8/bscrypto.8" \ - "$srcdir/install/usr/share/man/man8/btape.8" \ - -t "$pkgdir/usr/share/man/man8" - install -Dm755 \ - "$srcdir/install/usr/bin/bscrypto" \ - "$srcdir/install/usr/bin/btape" \ - -t "$pkgdir/usr/bin" - chmod -R o-rx "$pkgdir/etc/bareos" -} - -package_bareos-director-python-plugin() { - pkgdesc="${pkgdesc} - Python plugin for director daemon" - local _pinned_dependencies - _pinned_dependencies=( - 'gcc-libs=12.2.0' - 'glibc>=2.31' - 'python2=2.7.18' - ) - depends=("bareos-common=$pkgver" "bareos-director=$pkgver" 'libcap' 'jansson' 'lzo' 'python' "${_pinned_dependencies[@]}") - - install -Dm755 \ - "$srcdir/install/usr/lib/bareos/plugins/python-dir.so" \ - "$srcdir/install/usr/lib/bareos/plugins/BareosDirWrapper.py" \ - "$srcdir/install/usr/lib/bareos/plugins/BareosDirPluginBaseclass.py" \ - "$srcdir/install/usr/lib/bareos/plugins/bareos-dir-class-plugin.py" \ - -t "$pkgdir/usr/lib/bareos/plugins" -} - -package_bareos-filedaemon-python-plugin() { - pkgdesc="${pkgdesc} - Python plugin for file daemon" - local _pinned_dependencies - _pinned_dependencies=( - 'gcc-libs=12.2.0' - 'glibc>=2.31' - 'python2=2.7.18' - ) - depends=("bareos-common=$pkgver" "bareos-filedaemon=$pkgver" 'python' "${_pinned_dependencies[@]}" 'libcap' 'lzo' 'jansson') - - install -Dm755 \ - "$srcdir/install/usr/lib/bareos/plugins/python-fd.so" \ - "$srcdir/install/usr/lib/bareos/plugins/bareos-fd-local-fileset.py" \ - "$srcdir/install/usr/lib/bareos/plugins/BareosFdPluginBaseclass.py" \ - "$srcdir/install/usr/lib/bareos/plugins/BareosFdPluginLocalFileset.py" \ - "$srcdir/install/usr/lib/bareos/plugins/BareosFdWrapper.py" \ - -t "$pkgdir/usr/lib/bareos/plugins" -} - -package_bareos-storage-python-plugin() { - pkgdesc="${pkgdesc} - Python plugin for storage daemon" - local _pinned_dependencies - _pinned_dependencies=( - 'gcc-libs=12.2.0' - 'glibc>=2.31' - 'python2=2.7.18' - ) - depends=("bareos-common=$pkgver" "bareos-storage=$pkgver" 'lzo' 'python' 'libcap' 'jansson' "${_pinned_dependencies[@]}") - - install -Dm755 \ - "$srcdir/install/usr/lib/bareos/plugins/python-sd.so" \ - "$srcdir/install/usr/lib/bareos/plugins/BareosSdPluginBaseclass.py" \ - "$srcdir/install/usr/lib/bareos/plugins/BareosSdWrapper.py" \ - "$srcdir/install/usr/lib/bareos/plugins/bareos-sd-class-plugin.py" \ - -t "$pkgdir/usr/lib/bareos/plugins" + depends=("bareos-storage=${pkgver}" 'zlib' 'libcap' 'bash' 'openssl' 'jansson' 'lzo' "mtx") + backup=(etc/bareos/mtx-changer.conf) + for f in \ + etc/bareos/mtx-changer.conf \ + usr/share/bareos/config/bareos-dir.d/storage/Tape.conf.example \ + usr/share/bareos/config/bareos-sd.d/autochanger/autochanger-0.conf.example \ + usr/share/bareos/config/bareos-sd.d/device/tapedrive-0.conf.example \ + usr/lib/bareos/backends/libbareossd-gentape.so* \ + usr/lib/bareos/backends/libbareossd-tape.so* \ + usr/lib/bareos/plugins/scsicrypto-sd.so \ + usr/lib/bareos/plugins/scsitapealert-sd.so \ + usr/lib/bareos/scripts/mtx-changer \ + usr/share/man/man8/bscrypto.8* \ + usr/share/man/man8/btape.8* \ + usr/bin/bscrypto \ + usr/bin/btape \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done +} + +#========================================= +package_bareos-tools() { + pkgdesc="${pkgdesc} - CLI tools (bcopy, bextract, bls, bregeq, bwild, bregex)" + depends=("bareos-common=${pkgver}" 'glibc') + for f in \ + usr/bin/bregex \ + usr/bin/bwild \ + usr/bin/bcopy \ + usr/bin/bextract \ + usr/bin/bls \ + usr/bin/bregex \ + usr/bin/bwild \ + usr/bin/bpluginfo \ + usr/share/man/man1/bwild.1* \ + usr/share/man/man1/bregex.1* \ + usr/share/man/man8/bcopy.8* \ + usr/share/man/man8/bextract.8* \ + usr/share/man/man8/bls.8* \ + usr/share/man/man8/bpluginfo.8* \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done +} + +#========================================= +package_bareos-traymonitor() { + groups+=("bareos-client") + pkgdesc="${pkgdesc} - This package contains the tray monitor (QT based)" + depends=("bareos-common=${pkgver}") + backup=("etc/bareos/tray-monitor.d/monitor/bareos-mon.conf") + install=bareos-traymonitor.install + + for f in \ + +etc/bareos/tray-monitor.d/monitor \ + etc/xdg/autostart/bareos-tray-monitor.desktop \ + usr/share/bareos/config/tray-monitor.d/monitor/bareos-mon.conf \ + usr/bin/bareos-tray-monitor \ + usr/share/man/man1/bareos-tray-monitor.1* \ + usr/share/applications/bareos-tray-monitor.desktop \ + usr/share/pixmaps/bareos-tray-monitor.png \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done + + # tray-monitor needs configuration files to run + install -m640 "${pkgdir}/usr/share/bareos/config/tray-monitor.d/monitor/bareos-mon.conf" "${pkgdir}/etc/bareos/tray-monitor.d/monitor/bareos-mon.conf" } +#========================================= package_bareos-webui() { - arch=('any') pkgdesc="${pkgdesc} - Webui (Bareos web administration)" - local _pinned_dependencies - _pinned_dependencies=( - ) - depends=('php' 'php-fpm' 'jansson') - optdepend=('nginx' 'apache') + depends=('php7' 'php7-fpm' 'jansson') + optdepend=('apache' 'nginx' 'php7-apache' ) backup=('etc/bareos-webui/directors.ini' 'etc/bareos-webui/configuration.ini' 'etc/bareos/bareos-dir.d/console/admin.conf.example' - 'etc/bareos/bareos-dir.d/profile/webui-admin.conf') - - install -dm755 \ - "$pkgdir/etc" \ - "$pkgdir/usr/share/webapps" - mv \ - "$srcdir/install/usr/local/share/bareos-webui" \ - "$pkgdir/usr/share/webapps/" - mv \ - "$srcdir/install/etc/bareos-webui" \ - "$pkgdir/etc/" - - install -Dm644 \ - "$srcdir/install/etc/httpd/conf.d/bareos-webui.conf" \ - -t "$pkgdir/etc/httpd/conf.d/extra" - install -Dm644 \ - "$srcdir/install/etc/bareos/bareos-dir.d/console/admin.conf.example" \ - -t "$pkgdir/etc/bareos/bareos-dir.d/console" - install -Dm644 \ - "$srcdir/install/etc/bareos/bareos-dir.d/profile/webui-admin.conf" \ - -t "$pkgdir/etc/bareos/bareos-dir.d/profile" -} - -makedepends+=( - $( - for _pn in "${pkgname[@]}"; do - ( - eval "$( - declare -f "package_${_pn}" \ - | sed ' - s/^\s*_pinned_dependencies=(\(.*\));\?$/echo \1/ - t - /\[ "${CARCH}" /!d - s/return/exit/ - ' - )" - ) \ - | tr ' ' '\n' \ - | tr -d '"'"'" - done \ - | sort -u - ) -) + 'etc/bareos/bareos-dir.d/profile/webui-admin.conf' + 'etc/httpd/conf/extra/bareos-webui.conf') + #_cp ${srcdir}/install/usr/share/bareos-webui ${pkgdir}/usr/share/webapps/bareos-webui + for f in \ + etc/bareos/bareos-dir.d/console/admin.conf.example \ + etc/bareos/bareos-dir.d/profile/webui-admin.conf \ + etc/bareos/bareos-dir.d/profile/webui-limited.conf.example \ + etc/bareos/bareos-dir.d/profile/webui-readonly.conf \ + etc/httpd/conf/extra/bareos-webui.conf \ + etc/bareos-webui/directors.ini \ + etc/bareos-webui/configuration.ini \ + usr/share/bareos-webui \ + +usr/share/licenses/${pkgname} \ + ; do + cp_pkgdir "$f" "$srcdir/install/" + done + cp ${srcdir}/bootstrap-table-locale-all.min.js ${pkgdir}/usr/share/bareos-webui/public/js/bootstrap-table-locale-all.min.js + install -Dm644 ${srcdir}/bareos/webui/{README.md,LICENSE,doc/README-TRANSLATION.md} "${pkgdir}/usr/share/licenses/${pkgname}/" +} + +#========================================= +package_python-bareos() { + pkgdesc="${pkgdesc} - python-bareos is a Python module to access a backup system." + depends=('python' 'python-sslpsk' 'jansson') + conflicts=("python2-bareos") + + cd "${srcdir}/${pkgbase}/python-bareos" + python setup.py install --skip-build --root="${pkgdir}" --optimize='1' +} diff --git a/archlinuxaba/bareos/PoolModel.patch b/archlinuxaba/bareos/PoolModel.patch new file mode 100644 index 0000000..91acadf --- /dev/null +++ b/archlinuxaba/bareos/PoolModel.patch @@ -0,0 +1,15 @@ +--- a/webui/module/Pool/src/Pool/Model/PoolModel.php 2021-06-10 16:18:18.371213388 +0300 ++++ b/webui/module/Pool/src/Pool/Model/PoolModel.php 2021-06-11 00:44:00.000000000 +0300 +@@ -146,9 +146,10 @@ + if(isset($bsock, $pool)) { + $cmd = 'show pool="'.$pool.'"'; + $result = $bsock->send_command($cmd, 0); +- + $matches = []; +- preg_match('/\s*Next\s*Pool\s*=\s*("|\')?(?.*)(?(1)\1|)/i', $result, $matches); ++ //preg_match('/\s*Next\s*Pool\s*=\s*("|\')?(?.*)(?(1)\1|)/i', $result, $matches); ++ preg_match('/\s*Pool\s*=?(?.*)(?(1)\1|)/i', $result, $matches); ++ //print_r($matches); + return $matches["value"]; + } + else { diff --git a/archlinuxaba/bareos/bareos-bconsole.install b/archlinuxaba/bareos/bareos-bconsole.install index e78060c..6ed9055 100644 --- a/archlinuxaba/bareos/bareos-bconsole.install +++ b/archlinuxaba/bareos/bareos-bconsole.install @@ -1,9 +1,8 @@ ## arg 1: the new package version post_install() { - /usr/lib/bareos/scripts/bareos-config initialize_local_hostname - /usr/lib/bareos/scripts/bareos-config initialize_passwords - - chown -R bareos:bareos /etc/bareos + /usr/lib/bareos/scripts/bareos-config initialize_local_hostname + /usr/lib/bareos/scripts/bareos-config initialize_passwords + chown root:bareos /etc/bareos/bconsole.conf } post_upgrade() { diff --git a/archlinuxaba/bareos/bareos-common.install b/archlinuxaba/bareos/bareos-common.install index 4261570..0e8b84e 100644 --- a/archlinuxaba/bareos/bareos-common.install +++ b/archlinuxaba/bareos/bareos-common.install @@ -1,31 +1,31 @@ # arg 1: the new package version pre_install() { - # Create User/Group - getent group bareos > /dev/null || groupadd --system bareos - getent passwd bareos > /dev/null || useradd --system --gid bareos \ - --home-dir /var/lib/bareos --no-create-home bareos - + # Create User/Group + getent group bareos > /dev/null || groupadd --system bareos + getent passwd bareos > /dev/null || useradd --system --gid bareos \ + --home-dir /var/lib/bareos --no-create-home bareos } # arg 1: the new package version post_install() { - chown bareos:bareos /var/lib/bareos/ - chown bareos:bareos /run/bareos/ - #chown bareos:bareos /var/log/bareos/ + chown bareos:bareos /etc/bareos/ + chown bareos:bareos /var/lib/bareos/ + chown bareos:bareos /run/bareos/ + chown bareos:bareos /var/log/bareos/ } # arg 1: the new package version # arg 2: the old package version pre_upgrade() { - pre_install + pre_install } post_upgrade() { - post_install + post_install } # arg 1: the old package version post_remove() { - getent passwd bareos > /dev/null && userdel bareos - rm -f /etc/bareos/.rndpwd + getent passwd bareos > /dev/null && userdel bareos + rm -f /etc/bareos/.rndpwd } diff --git a/archlinuxaba/bareos/bareos-database-mysql.install b/archlinuxaba/bareos/bareos-database-mysql.install index dcfdf04..d462ace 100644 --- a/archlinuxaba/bareos/bareos-database-mysql.install +++ b/archlinuxaba/bareos/bareos-database-mysql.install @@ -3,22 +3,16 @@ coloroff='\e[0m' # arg 0: the new package version post_install() { - echo -e "${yellow}NOTE: Please see documentation (section 2.4.2) to setup database:${coloroff}" - #echo -e "${yellow} http://doc.bareos.org/master/html/bareos-manual-main-reference.html#x1-400002.4.2${coloroff}" - echo -e "${yellow} http://download.bareos.org/bareos/release/17.2/documentation/html/bareos-manual-main-reference.html#QQ2-1-47${coloroff}" - + echo -e "${yellow}NOTE: Please see documentation to setup database${coloroff}" } # arg 0: the new package version # arg 2: the old package version post_upgrade() { - #echo -e "${yellow}NOTE: Please see documentation (section) 3.1.2 to update database${coloroff}" - #echo -e "${yellow} http://doc.bareos.org/master/html/bareos-manual-main-reference.html#x1-450003.1.2${coloroff}" - echo -e "${yellow}NOTE: Please see documentation (section) 4.2.2 to update database${coloroff}" - echo -e "${yellow} http://download.bareos.org/bareos/release/17.2/documentation/html/bareos-manual-main-reference.html#x1-710004.2.2${coloroff}" + echo -e "${yellow}NOTE: Please see documentation to setup database${coloroff}" } # arg 0: the old package version post_remove() { - echo -e "${yellow}NOTE: To remove all traces of bareos please delete the bareos database.${coloroff}" + echo -e "${yellow}NOTE: To remove all traces of bareos please delete the bareos database.${coloroff}" } diff --git a/archlinuxaba/bareos/bareos-database-postgresql.install b/archlinuxaba/bareos/bareos-database-postgresql.install index dcfdf04..d462ace 100644 --- a/archlinuxaba/bareos/bareos-database-postgresql.install +++ b/archlinuxaba/bareos/bareos-database-postgresql.install @@ -3,22 +3,16 @@ coloroff='\e[0m' # arg 0: the new package version post_install() { - echo -e "${yellow}NOTE: Please see documentation (section 2.4.2) to setup database:${coloroff}" - #echo -e "${yellow} http://doc.bareos.org/master/html/bareos-manual-main-reference.html#x1-400002.4.2${coloroff}" - echo -e "${yellow} http://download.bareos.org/bareos/release/17.2/documentation/html/bareos-manual-main-reference.html#QQ2-1-47${coloroff}" - + echo -e "${yellow}NOTE: Please see documentation to setup database${coloroff}" } # arg 0: the new package version # arg 2: the old package version post_upgrade() { - #echo -e "${yellow}NOTE: Please see documentation (section) 3.1.2 to update database${coloroff}" - #echo -e "${yellow} http://doc.bareos.org/master/html/bareos-manual-main-reference.html#x1-450003.1.2${coloroff}" - echo -e "${yellow}NOTE: Please see documentation (section) 4.2.2 to update database${coloroff}" - echo -e "${yellow} http://download.bareos.org/bareos/release/17.2/documentation/html/bareos-manual-main-reference.html#x1-710004.2.2${coloroff}" + echo -e "${yellow}NOTE: Please see documentation to setup database${coloroff}" } # arg 0: the old package version post_remove() { - echo -e "${yellow}NOTE: To remove all traces of bareos please delete the bareos database.${coloroff}" + echo -e "${yellow}NOTE: To remove all traces of bareos please delete the bareos database.${coloroff}" } diff --git a/archlinuxaba/bareos/bareos-director.install b/archlinuxaba/bareos/bareos-director.install index b464fee..d7d6f79 100644 --- a/archlinuxaba/bareos/bareos-director.install +++ b/archlinuxaba/bareos/bareos-director.install @@ -1,19 +1,15 @@ ## arg 1: the new package version post_install() { - /usr/lib/bareos/scripts/bareos-config initialize_local_hostname - /usr/lib/bareos/scripts/bareos-config initialize_passwords + /usr/lib/bareos/scripts/bareos-config initialize_local_hostname + /usr/lib/bareos/scripts/bareos-config initialize_passwords - chown -R bareos:bareos /etc/bareos + chown -R bareos:bareos /usr/share/bareos/config/bareos-dir.d + chown bareos:bareos /usr/bin/bareos-dir - /usr/lib/bareos/scripts/bareos-config initialize_database_driver - /usr/lib/bareos/scripts/bareos-config apply_dbconfig_settings - - #for dir in /etc/bareos/bareos-dir-export/ /etc/bareos/bareos-dir-export/client; do - #chown bareos:bareos "$dir" - #chmod 750 "$dir" - #done + /usr/lib/bareos/scripts/bareos-config initialize_database_driver + /usr/lib/bareos/scripts/bareos-config apply_dbconfig_settings } post_upgrade() { - post_install + post_install } diff --git a/archlinuxaba/bareos/bareos-filedaemon.install b/archlinuxaba/bareos/bareos-filedaemon.install index d88a620..e071d98 100644 --- a/archlinuxaba/bareos/bareos-filedaemon.install +++ b/archlinuxaba/bareos/bareos-filedaemon.install @@ -1,11 +1,9 @@ ## arg 1: the new package version post_install() { - /usr/lib/bareos/scripts/bareos-config initialize_local_hostname - /usr/lib/bareos/scripts/bareos-config initialize_passwords - - chown -R bareos:bareos /etc/bareos + /usr/lib/bareos/scripts/bareos-config initialize_local_hostname + /usr/lib/bareos/scripts/bareos-config initialize_passwords } post_upgrade() { - post_install + post_install } diff --git a/archlinuxaba/bareos/bareos-storage.install b/archlinuxaba/bareos/bareos-storage.install index 8833363..d4326a0 100644 --- a/archlinuxaba/bareos/bareos-storage.install +++ b/archlinuxaba/bareos/bareos-storage.install @@ -1,14 +1,17 @@ ## arg 1: the new package version post_install() { - /usr/lib/bareos/scripts/bareos-config initialize_local_hostname - /usr/lib/bareos/scripts/bareos-config initialize_passwords + /usr/lib/bareos/scripts/bareos-config initialize_local_hostname + /usr/lib/bareos/scripts/bareos-config initialize_passwords - chown -R bareos:bareos /etc/bareos - chown bareos:bareos /var/lib/bareos/storage/ + chown -R bareos:bareos /usr/share/bareos/config/bareos-sd.d + chown bareos:bareos /usr/bin/bareos-sd - /usr/lib/bareos/scripts/bareos-config setup_sd_user + chown bareos:bareos /var/lib/bareos/storage/ + chmod 750 /var/lib/bareos/storage/ + + /usr/lib/bareos/scripts/bareos-config setup_sd_user } post_upgrade() { - post_install + post_install } diff --git a/archlinuxaba/bareos/bareos-traymonitor.install b/archlinuxaba/bareos/bareos-traymonitor.install new file mode 100644 index 0000000..407370f --- /dev/null +++ b/archlinuxaba/bareos/bareos-traymonitor.install @@ -0,0 +1,11 @@ +post_install() { + /usr/lib/bareos/scripts/bareos-config initialize_local_hostname + /usr/lib/bareos/scripts/bareos-config initialize_passwords + CONFIGDIR="/etc/bareos/tray-monitor.d/" + chown -R root:bareos ${CONFIGDIR} + chmod -R u=rwX,go=rX ${CONFIGDIR} +} + +post_upgrade() { + post_install +} diff --git a/archlinuxaba/bareos/bootstrap-table-locale-all.min.js b/archlinuxaba/bareos/bootstrap-table-locale-all.min.js new file mode 100644 index 0000000..91f2b02 --- /dev/null +++ b/archlinuxaba/bareos/bootstrap-table-locale-all.min.js @@ -0,0 +1,10 @@ +/** +* bootstrap-table - An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation) +* +* @version v1.15.5 +* @homepage https://bootstrap-table.com +* @author wenzhixin (http://wenzhixin.net.cn/) +* @license MIT +*/ + +!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],n):n((t=t||self).jQuery)}(this,(function(t){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;var n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function o(t,n){return t(n={exports:{}},n.exports),n.exports}var r,e,a,c,i="object",u=function(t){return t&&t.Math==Math&&t},f=u(typeof globalThis==i&&globalThis)||u(typeof window==i&&window)||u(typeof self==i&&self)||u(typeof n==i&&n)||Function("return this")(),l=function(t){try{return!!t()}catch(t){return!0}},s=!l((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})),m={}.propertyIsEnumerable,g=Object.getOwnPropertyDescriptor,d={f:g&&!m.call({1:2},1)?function(t){var n=g(this,t);return!!n&&n.enumerable}:m},h=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}},p={}.toString,S=function(t){return p.call(t).slice(8,-1)},w="".split,T=l((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==S(t)?w.call(t,""):Object(t)}:Object,P=function(t){if(null==t)throw TypeError("Can't call method on "+t);return t},R=function(t){return T(P(t))},v=function(t){return"object"==typeof t?null!==t:"function"==typeof t},A=function(t,n){if(!v(t))return t;var o,r;if(n&&"function"==typeof(o=t.toString)&&!v(r=o.call(t)))return r;if("function"==typeof(o=t.valueOf)&&!v(r=o.call(t)))return r;if(!n&&"function"==typeof(o=t.toString)&&!v(r=o.call(t)))return r;throw TypeError("Can't convert object to primitive value")},x={}.hasOwnProperty,b=function(t,n){return x.call(t,n)},C=f.document,O=v(C)&&v(C.createElement),k=!s&&!l((function(){return 7!=Object.defineProperty((t="div",O?C.createElement(t):{}),"a",{get:function(){return 7}}).a;var t})),E=Object.getOwnPropertyDescriptor,M={f:s?E:function(t,n){if(t=R(t),n=A(n,!0),k)try{return E(t,n)}catch(t){}if(b(t,n))return h(!d.f.call(t,n),t[n])}},N=function(t){if(!v(t))throw TypeError(String(t)+" is not an object");return t},y=Object.defineProperty,D={f:s?y:function(t,n,o){if(N(t),n=A(n,!0),N(o),k)try{return y(t,n,o)}catch(t){}if("get"in o||"set"in o)throw TypeError("Accessors not supported");return"value"in o&&(t[n]=o.value),t}},H=s?function(t,n,o){return D.f(t,n,h(1,o))}:function(t,n,o){return t[n]=o,t},F=function(t,n){try{H(f,t,n)}catch(o){f[t]=n}return n},L=o((function(t){var n=f["__core-js_shared__"]||F("__core-js_shared__",{});(t.exports=function(t,o){return n[t]||(n[t]=void 0!==o?o:{})})("versions",[]).push({version:"3.1.3",mode:"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})})),B=L("native-function-to-string",Function.toString),z=f.WeakMap,j="function"==typeof z&&/native code/.test(B.call(z)),U=0,G=Math.random(),J=function(t){return"Symbol("+String(void 0===t?"":t)+")_"+(++U+G).toString(36)},V=L("keys"),Z={},K=f.WeakMap;if(j){var I=new K,q=I.get,_=I.has,W=I.set;r=function(t,n){return W.call(I,t,n),n},e=function(t){return q.call(I,t)||{}},a=function(t){return _.call(I,t)}}else{var Y=V[c="state"]||(V[c]=J(c));Z[Y]=!0,r=function(t,n){return H(t,Y,n),n},e=function(t){return b(t,Y)?t[Y]:{}},a=function(t){return b(t,Y)}}var Q,X={set:r,get:e,has:a,enforce:function(t){return a(t)?e(t):r(t,{})},getterFor:function(t){return function(n){var o;if(!v(n)||(o=e(n)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return o}}},$=o((function(t){var n=X.get,o=X.enforce,r=String(B).split("toString");L("inspectSource",(function(t){return B.call(t)})),(t.exports=function(t,n,e,a){var c=!!a&&!!a.unsafe,i=!!a&&!!a.enumerable,u=!!a&&!!a.noTargetGet;"function"==typeof e&&("string"!=typeof n||b(e,"name")||H(e,"name",n),o(e).source=r.join("string"==typeof n?n:"")),t!==f?(c?!u&&t[n]&&(i=!0):delete t[n],i?t[n]=e:H(t,n,e)):i?t[n]=e:F(n,e)})(Function.prototype,"toString",(function(){return"function"==typeof this&&n(this).source||B.call(this)}))})),tt=f,nt=function(t){return"function"==typeof t?t:void 0},ot=Math.ceil,rt=Math.floor,et=function(t){return isNaN(t=+t)?0:(t>0?rt:ot)(t)},at=Math.min,ct=function(t){return t>0?at(et(t),9007199254740991):0},it=Math.max,ut=Math.min,ft=function(t){return function(n,o,r){var e,a=R(n),c=ct(a.length),i=function(t,n){var o=et(t);return o<0?it(o+n,0):ut(o,n)}(r,c);if(t&&o!=o){for(;c>i;)if((e=a[i++])!=e)return!0}else for(;c>i;i++)if((t||i in a)&&a[i]===o)return t||i||0;return!t&&-1}},lt={includes:ft(!0),indexOf:ft(!1)}.indexOf,st=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"].concat("length","prototype"),mt={f:Object.getOwnPropertyNames||function(t){return function(t,n){var o,r=R(t),e=0,a=[];for(o in r)!b(Z,o)&&b(r,o)&&a.push(o);for(;n.length>e;)b(r,o=n[e++])&&(~lt(a,o)||a.push(o));return a}(t,st)}},gt={f:Object.getOwnPropertySymbols},dt=function(t,n){return arguments.length<2?nt(tt[t])||nt(f[t]):tt[t]&&tt[t][n]||f[t]&&f[t][n]}("Reflect","ownKeys")||function(t){var n=mt.f(N(t)),o=gt.f;return o?n.concat(o(t)):n},ht=function(t,n){for(var o=dt(n),r=D.f,e=M.f,a=0;a9007199254740991)throw TypeError("Maximum allowed index exceeded");for(o=0;o=9007199254740991)throw TypeError("Maximum allowed index exceeded");Ct(i,u++,a)}return i.length=u,i}}),t.fn.bootstrapTable.locales["af-ZA"]={formatLoadingMessage:function(){return"Besig om te laai, wag asseblief"},formatRecordsPerPage:function(t){return"".concat(t," rekords per bladsy")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Resultate ".concat(t," tot ").concat(n," van ").concat(o," rye (filtered from ").concat(r," total rows)"):"Resultate ".concat(t," tot ").concat(n," van ").concat(o," rye")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"Soek"},formatNoMatches:function(){return"Geen rekords gevind nie"},formatPaginationSwitch:function(){return"Wys/verberg bladsy nummering"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Herlaai"},formatToggle:function(){return"Wissel"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Kolomme"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"All"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["af-ZA"]),t.fn.bootstrapTable.locales["ar-SA"]={formatLoadingMessage:function(){return"جاري التحميل, يرجى الإنتظار"},formatRecordsPerPage:function(t){return"".concat(t," سجل لكل صفحة")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"الظاهر ".concat(t," إلى ").concat(n," من ").concat(o," سجل ").concat(r," total rows)"):"الظاهر ".concat(t," إلى ").concat(n," من ").concat(o," سجل")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"بحث"},formatNoMatches:function(){return"لا توجد نتائج مطابقة للبحث"},formatPaginationSwitch:function(){return"إخفاءإظهار ترقيم الصفحات"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"تحديث"},formatToggle:function(){return"تغيير"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"أعمدة"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"All"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["ar-SA"]),t.fn.bootstrapTable.locales["ca-ES"]={formatLoadingMessage:function(){return"Espereu, si us plau"},formatRecordsPerPage:function(t){return"".concat(t," resultats per pàgina")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Mostrant de ".concat(t," fins ").concat(n," - total ").concat(o," resultats (filtered from ").concat(r," total rows)"):"Mostrant de ".concat(t," fins ").concat(n," - total ").concat(o," resultats")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"Cerca"},formatNoMatches:function(){return"No s'han trobat resultats"},formatPaginationSwitch:function(){return"Amaga/Mostra paginació"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Refresca"},formatToggle:function(){return"Alterna formatació"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Columnes"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Tots"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["ca-ES"]),t.fn.bootstrapTable.locales["cs-CZ"]={formatLoadingMessage:function(){return"Čekejte, prosím"},formatRecordsPerPage:function(t){return"".concat(t," položek na stránku")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Zobrazena ".concat(t,". - ").concat(n," . položka z celkových ").concat(o," (filtered from ").concat(r," total rows)"):"Zobrazena ".concat(t,". - ").concat(n," . položka z celkových ").concat(o)},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"Vyhledávání"},formatNoMatches:function(){return"Nenalezena žádná vyhovující položka"},formatPaginationSwitch:function(){return"Skrýt/Zobrazit stránkování"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Aktualizovat"},formatToggle:function(){return"Přepni"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Sloupce"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Vše"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["cs-CZ"]),t.fn.bootstrapTable.locales["da-DK"]={formatLoadingMessage:function(){return"Indlæser, vent venligst"},formatRecordsPerPage:function(t){return"".concat(t," poster pr side")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Viser ".concat(t," til ").concat(n," af ").concat(o," række").concat(o>1?"r":""," (filtered from ").concat(r," total rows)"):"Viser ".concat(t," til ").concat(n," af ").concat(o," række").concat(o>1?"r":"")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Viser ".concat(t," række").concat(t>1?"r":"")},formatClearSearch:function(){return"Ryd filtre"},formatSearch:function(){return"Søg"},formatNoMatches:function(){return"Ingen poster fundet"},formatPaginationSwitch:function(){return"Skjul/vis nummerering"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Opdater"},formatToggle:function(){return"Skift"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Kolonner"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Alle"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Eksporter"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["da-DK"]),t.fn.bootstrapTable.locales["de-DE"]={formatLoadingMessage:function(){return"Lade, bitte warten"},formatRecordsPerPage:function(t){return"".concat(t," Zeilen pro Seite.")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Zeige Zeile ".concat(t," bis ").concat(n," von ").concat(o," Zeile").concat(o>1?"n":""," (Gefiltert von ").concat(r," Zeile").concat(r>1?"n":"",")"):"Zeige Zeile ".concat(t," bis ").concat(n," von ").concat(o," Zeile").concat(o>1?"n":"",".")},formatSRPaginationPreText:function(){return"Vorherige Seite"},formatSRPaginationPageText:function(t){return"Zu Seite ".concat(t)},formatSRPaginationNextText:function(){return"Nächste Seite"},formatDetailPagination:function(t){return"Zeige ".concat(t," Zeile").concat(t>1?"n":"",".")},formatClearSearch:function(){return"Lösche Filter"},formatSearch:function(){return"Suchen"},formatNoMatches:function(){return"Keine passenden Ergebnisse gefunden"},formatPaginationSwitch:function(){return"Verstecke/Zeige Nummerierung"},formatPaginationSwitchDown:function(){return"Zeige Nummerierung"},formatPaginationSwitchUp:function(){return"Verstecke Nummerierung"},formatRefresh:function(){return"Neu laden"},formatToggle:function(){return"Umschalten"},formatToggleOn:function(){return"Normale Ansicht"},formatToggleOff:function(){return"Kartenansicht"},formatColumns:function(){return"Spalten"},formatColumnsToggleAll:function(){return"Alle umschalten"},formatFullscreen:function(){return"Vollbild"},formatAllRows:function(){return"Alle"},formatAutoRefresh:function(){return"Automatisches Neuladen"},formatExport:function(){return"Datenexport"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Erweiterte Suche"},formatAdvancedCloseButton:function(){return"Schließen"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["de-DE"]),t.fn.bootstrapTable.locales["el-GR"]={formatLoadingMessage:function(){return"Φορτώνει, παρακαλώ περιμένετε"},formatRecordsPerPage:function(t){return"".concat(t," αποτελέσματα ανά σελίδα")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Εμφανίζονται από την ".concat(t," ως την ").concat(n," από σύνολο ").concat(o," σειρών (filtered from ").concat(r," total rows)"):"Εμφανίζονται από την ".concat(t," ως την ").concat(n," από σύνολο ").concat(o," σειρών")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"Αναζητήστε"},formatNoMatches:function(){return"Δεν βρέθηκαν αποτελέσματα"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Refresh"},formatToggle:function(){return"Toggle"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Columns"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"All"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["el-GR"]),t.fn.bootstrapTable.locales["en-US"]={formatLoadingMessage:function(){return"Loading, please wait"},formatRecordsPerPage:function(t){return"".concat(t," rows per page")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Showing ".concat(t," to ").concat(n," of ").concat(o," rows (filtered from ").concat(r," total rows)"):"Showing ".concat(t," to ").concat(n," of ").concat(o," rows")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"Search"},formatNoMatches:function(){return"No matching records found"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Refresh"},formatToggle:function(){return"Toggle"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Columns"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"All"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["en-US"]),t.fn.bootstrapTable.locales["es-AR"]={formatLoadingMessage:function(){return"Cargando, espere por favor"},formatRecordsPerPage:function(t){return"".concat(t," registros por página")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Mostrando ".concat(t," a ").concat(n," de ").concat(o," filas (filtered from ").concat(r," total rows)"):"Mostrando ".concat(t," a ").concat(n," de ").concat(o," filas")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Limpiar búsqueda"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se encontraron registros"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Refresh"},formatToggle:function(){return"Toggle"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Columns"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Todo"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["es-AR"]),t.fn.bootstrapTable.locales["es-CL"]={formatLoadingMessage:function(){return"Cargando, espere por favor"},formatRecordsPerPage:function(t){return"".concat(t," filas por página")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Mostrando ".concat(t," a ").concat(n," de ").concat(o," filas (filtered from ").concat(r," total rows)"):"Mostrando ".concat(t," a ").concat(n," de ").concat(o," filas")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Limpiar búsqueda"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se encontraron registros"},formatPaginationSwitch:function(){return"Ocultar/Mostrar paginación"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Refrescar"},formatToggle:function(){return"Cambiar"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Columnas"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Todo"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["es-CL"]),t.fn.bootstrapTable.locales["es-CR"]={formatLoadingMessage:function(){return"Cargando, por favor espere"},formatRecordsPerPage:function(t){return"".concat(t," registros por página")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Mostrando de ".concat(t," a ").concat(n," registros de ").concat(o," registros en total (filtered from ").concat(r," total rows)"):"Mostrando de ".concat(t," a ").concat(n," registros de ").concat(o," registros en total")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Limpiar búsqueda"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se encontraron registros"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Refrescar"},formatToggle:function(){return"Alternar"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Columnas"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Todo"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["es-CR"]),t.fn.bootstrapTable.locales["es-ES"]={formatLoadingMessage:function(){return"Por favor espere"},formatRecordsPerPage:function(t){return"".concat(t," resultados por página")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Mostrando desde ".concat(t," hasta ").concat(n," - En total ").concat(o," resultados (filtered from ").concat(r," total rows)"):"Mostrando desde ".concat(t," hasta ").concat(n," - En total ").concat(o," resultados")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Limpiar búsqueda"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se encontraron resultados"},formatPaginationSwitch:function(){return"Ocultar/Mostrar paginación"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Refrescar"},formatToggle:function(){return"Ocultar/Mostrar"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Columnas"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Todos"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Exportar los datos"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Búsqueda avanzada"},formatAdvancedCloseButton:function(){return"Cerrar"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["es-ES"]),t.fn.bootstrapTable.locales["es-MX"]={formatLoadingMessage:function(){return"Cargando, espere por favor"},formatRecordsPerPage:function(t){return"".concat(t," registros por página")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Mostrando ".concat(t," a ").concat(n," de ").concat(o," filas (filtered from ").concat(r," total rows)"):"Mostrando ".concat(t," a ").concat(n," de ").concat(o," filas")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Mostrando ".concat(t," filas")},formatClearSearch:function(){return"Limpiar búsqueda"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se encontraron registros que coincidan"},formatPaginationSwitch:function(){return"Mostrar/ocultar paginación"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Actualizar"},formatToggle:function(){return"Cambiar vista"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Columnas"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Pantalla completa"},formatAllRows:function(){return"Todo"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["es-MX"]),t.fn.bootstrapTable.locales["es-NI"]={formatLoadingMessage:function(){return"Cargando, por favor espere"},formatRecordsPerPage:function(t){return"".concat(t," registros por página")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Mostrando de ".concat(t," a ").concat(n," registros de ").concat(o," registros en total (filtered from ").concat(r," total rows)"):"Mostrando de ".concat(t," a ").concat(n," registros de ").concat(o," registros en total")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Limpiar búsqueda"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se encontraron registros"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Refrescar"},formatToggle:function(){return"Alternar"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Columnas"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Todo"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["es-NI"]),t.fn.bootstrapTable.locales["es-SP"]={formatLoadingMessage:function(){return"Cargando, por favor espera"},formatRecordsPerPage:function(t){return"".concat(t," registros por página.")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"".concat(t," - ").concat(n," de ").concat(o," registros (filtered from ").concat(r," total rows)"):"".concat(t," - ").concat(n," de ").concat(o," registros.")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Limpiar búsqueda"},formatSearch:function(){return"Buscar"},formatNoMatches:function(){return"No se han encontrado registros."},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Actualizar"},formatToggle:function(){return"Alternar"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Columnas"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Todo"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["es-SP"]),t.fn.bootstrapTable.locales["et-EE"]={formatLoadingMessage:function(){return"Päring käib, palun oota"},formatRecordsPerPage:function(t){return"".concat(t," rida lehe kohta")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Näitan tulemusi ".concat(t," kuni ").concat(n," - kokku ").concat(o," tulemust (filtered from ").concat(r," total rows)"):"Näitan tulemusi ".concat(t," kuni ").concat(n," - kokku ").concat(o," tulemust")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"Otsi"},formatNoMatches:function(){return"Päringu tingimustele ei vastanud ühtegi tulemust"},formatPaginationSwitch:function(){return"Näita/Peida lehtedeks jagamine"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Värskenda"},formatToggle:function(){return"Lülita"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Veerud"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Kõik"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["et-EE"]),t.fn.bootstrapTable.locales["eu-EU"]={formatLoadingMessage:function(){return"Itxaron mesedez"},formatRecordsPerPage:function(t){return"".concat(t," emaitza orriko.")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"".concat(o," erregistroetatik ").concat(t,"etik ").concat(n,"erakoak erakusten (filtered from ").concat(r," total rows)"):"".concat(o," erregistroetatik ").concat(t,"etik ").concat(n,"erakoak erakusten.")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"Bilatu"},formatNoMatches:function(){return"Ez da emaitzarik aurkitu"},formatPaginationSwitch:function(){return"Ezkutatu/Erakutsi orrikatzea"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Eguneratu"},formatToggle:function(){return"Ezkutatu/Erakutsi"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Zutabeak"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Guztiak"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["eu-EU"]),t.fn.bootstrapTable.locales["fa-IR"]={formatLoadingMessage:function(){return"در حال بارگذاری, لطفا صبر کنید"},formatRecordsPerPage:function(t){return"".concat(t," رکورد در صفحه")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"نمایش ".concat(t," تا ").concat(n," از ").concat(o," ردیف (filtered from ").concat(r," total rows)"):"نمایش ".concat(t," تا ").concat(n," از ").concat(o," ردیف")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"جستجو"},formatNoMatches:function(){return"رکوردی یافت نشد."},formatPaginationSwitch:function(){return"نمایش/مخفی صفحه بندی"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"به روز رسانی"},formatToggle:function(){return"تغییر نمایش"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"سطر ها"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"همه"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["fa-IR"]),t.fn.bootstrapTable.locales["fi-FI"]={formatLoadingMessage:function(){return"Ladataan, ole hyvä ja odota"},formatRecordsPerPage:function(t){return"".concat(t," riviä sivulla")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Näytetään rivit ".concat(t," - ").concat(n," / ").concat(o," (filtered from ").concat(r," total rows)"):"Näytetään rivit ".concat(t," - ").concat(n," / ").concat(o)},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Poista suodattimet"},formatSearch:function(){return"Hae"},formatNoMatches:function(){return"Hakuehtoja vastaavia tuloksia ei löytynyt"},formatPaginationSwitch:function(){return"Näytä/Piilota sivutus"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Päivitä"},formatToggle:function(){return"Valitse"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Sarakkeet"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Kaikki"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Vie tiedot"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["fi-FI"]),t.fn.bootstrapTable.locales["fr-BE"]={formatLoadingMessage:function(){return"Chargement en cours"},formatRecordsPerPage:function(t){return"".concat(t," lignes par page")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Affiche de ".concat(t," à ").concat(n," sur ").concat(o," lignes (filtrés à partir de ").concat(r," lignes)"):"Affiche de ".concat(t," à ").concat(n," sur ").concat(o," lignes")},formatSRPaginationPreText:function(){return"page précédente"},formatSRPaginationPageText:function(t){return"vers la page ".concat(t)},formatSRPaginationNextText:function(){return"page suivante"},formatDetailPagination:function(t){return"Affiche ".concat(t," lignes")},formatClearSearch:function(){return"Effacer la recherche"},formatSearch:function(){return"Recherche"},formatNoMatches:function(){return"Pas de lignes trouvés"},formatPaginationSwitch:function(){return"Cacher/Afficher pagination"},formatPaginationSwitchDown:function(){return"Afficher pagination"},formatPaginationSwitchUp:function(){return"Cacher pagination"},formatRefresh:function(){return"Rafraichir"},formatToggle:function(){return"Basculer"},formatToggleOn:function(){return"Afficher vue carte"},formatToggleOff:function(){return"Cacher vue carte"},formatColumns:function(){return"Colonnes"},formatColumnsToggleAll:function(){return"Tout basculer"},formatFullscreen:function(){return"Plein écran"},formatAllRows:function(){return"Tout"},formatAutoRefresh:function(){return"Rafraîchissement automatique"},formatExport:function(){return"Exporter les données"},formatJumpTo:function(){return"Aller à"},formatAdvancedSearch:function(){return"Recherche avancée"},formatAdvancedCloseButton:function(){return"Fermer"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["fr-BE"]),t.fn.bootstrapTable.locales["fr-CH"]={formatLoadingMessage:function(){return"Chargement en cours"},formatRecordsPerPage:function(t){return"".concat(t," lignes par page")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Affiche de ".concat(t," à ").concat(n," sur ").concat(o," lignes (filtrés à partir de ").concat(r," lignes)"):"Affiche de ".concat(t," à ").concat(n," sur ").concat(o," lignes")},formatSRPaginationPreText:function(){return"page précédente"},formatSRPaginationPageText:function(t){return"vers la page ".concat(t)},formatSRPaginationNextText:function(){return"page suivante"},formatDetailPagination:function(t){return"Affiche ".concat(t," lignes")},formatClearSearch:function(){return"Effacer la recherche"},formatSearch:function(){return"Recherche"},formatNoMatches:function(){return"Pas de lignes trouvés"},formatPaginationSwitch:function(){return"Cacher/Afficher pagination"},formatPaginationSwitchDown:function(){return"Afficher pagination"},formatPaginationSwitchUp:function(){return"Cacher pagination"},formatRefresh:function(){return"Rafraichir"},formatToggle:function(){return"Basculer"},formatToggleOn:function(){return"Afficher vue carte"},formatToggleOff:function(){return"Cacher vue carte"},formatColumns:function(){return"Colonnes"},formatColumnsToggleAll:function(){return"Tout basculer"},formatFullscreen:function(){return"Plein écran"},formatAllRows:function(){return"Tout"},formatAutoRefresh:function(){return"Rafraîchissement automatique"},formatExport:function(){return"Exporter les données"},formatJumpTo:function(){return"Aller à"},formatAdvancedSearch:function(){return"Recherche avancée"},formatAdvancedCloseButton:function(){return"Fermer"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["fr-CH"]),t.fn.bootstrapTable.locales["fr-FR"]={formatLoadingMessage:function(){return"Chargement en cours"},formatRecordsPerPage:function(t){return"".concat(t," lignes par page")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Affiche de ".concat(t," à ").concat(n," sur ").concat(o," lignes (filtrés à partir de ").concat(r," lignes)"):"Affiche de ".concat(t," à ").concat(n," sur ").concat(o," lignes")},formatSRPaginationPreText:function(){return"page précédente"},formatSRPaginationPageText:function(t){return"vers la page ".concat(t)},formatSRPaginationNextText:function(){return"page suivante"},formatDetailPagination:function(t){return"Affiche ".concat(t," lignes")},formatClearSearch:function(){return"Effacer la recherche"},formatSearch:function(){return"Recherche"},formatNoMatches:function(){return"Pas de lignes trouvés"},formatPaginationSwitch:function(){return"Cacher/Afficher pagination"},formatPaginationSwitchDown:function(){return"Afficher pagination"},formatPaginationSwitchUp:function(){return"Cacher pagination"},formatRefresh:function(){return"Rafraichir"},formatToggle:function(){return"Basculer"},formatToggleOn:function(){return"Afficher vue carte"},formatToggleOff:function(){return"Cacher vue carte"},formatColumns:function(){return"Colonnes"},formatColumnsToggleAll:function(){return"Tout basculer"},formatFullscreen:function(){return"Plein écran"},formatAllRows:function(){return"Tout"},formatAutoRefresh:function(){return"Rafraîchissement automatique"},formatExport:function(){return"Exporter les données"},formatJumpTo:function(){return"Aller à"},formatAdvancedSearch:function(){return"Recherche avancée"},formatAdvancedCloseButton:function(){return"Fermer"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["fr-FR"]),t.fn.bootstrapTable.locales["fr-LU"]={formatLoadingMessage:function(){return"Chargement en cours"},formatRecordsPerPage:function(t){return"".concat(t," lignes par page")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Affiche de ".concat(t," à ").concat(n," sur ").concat(o," lignes (filtrés à partir de ").concat(r," lignes)"):"Affiche de ".concat(t," à ").concat(n," sur ").concat(o," lignes")},formatSRPaginationPreText:function(){return"page précédente"},formatSRPaginationPageText:function(t){return"vers la page ".concat(t)},formatSRPaginationNextText:function(){return"page suivante"},formatDetailPagination:function(t){return"Affiche ".concat(t," lignes")},formatClearSearch:function(){return"Effacer la recherche"},formatSearch:function(){return"Recherche"},formatNoMatches:function(){return"Pas de lignes trouvés"},formatPaginationSwitch:function(){return"Cacher/Afficher pagination"},formatPaginationSwitchDown:function(){return"Afficher pagination"},formatPaginationSwitchUp:function(){return"Cacher pagination"},formatRefresh:function(){return"Rafraichir"},formatToggle:function(){return"Basculer"},formatToggleOn:function(){return"Afficher vue carte"},formatToggleOff:function(){return"Cacher vue carte"},formatColumns:function(){return"Colonnes"},formatColumnsToggleAll:function(){return"Tout basculer"},formatFullscreen:function(){return"Plein écran"},formatAllRows:function(){return"Tout"},formatAutoRefresh:function(){return"Rafraîchissement automatique"},formatExport:function(){return"Exporter les données"},formatJumpTo:function(){return"Aller à"},formatAdvancedSearch:function(){return"Recherche avancée"},formatAdvancedCloseButton:function(){return"Fermer"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["fr-LU"]),t.fn.bootstrapTable.locales["he-IL"]={formatLoadingMessage:function(){return"טוען, נא להמתין"},formatRecordsPerPage:function(t){return"".concat(t," שורות בעמוד")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"מציג ".concat(t," עד ").concat(n," מ-").concat(o,"שורות").concat(r," total rows)"):"מציג ".concat(t," עד ").concat(n," מ-").concat(o," שורות")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"חיפוש"},formatNoMatches:function(){return"לא נמצאו רשומות תואמות"},formatPaginationSwitch:function(){return"הסתר/הצג מספור דפים"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"רענן"},formatToggle:function(){return"החלף תצוגה"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"עמודות"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"הכל"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["he-IL"]),t.fn.bootstrapTable.locales["hr-HR"]={formatLoadingMessage:function(){return"Molimo pričekajte"},formatRecordsPerPage:function(t){return"".concat(t," broj zapisa po stranici")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Prikazujem ".concat(t,". - ").concat(n,". od ukupnog broja zapisa ").concat(o," (filtered from ").concat(r," total rows)"):"Prikazujem ".concat(t,". - ").concat(n,". od ukupnog broja zapisa ").concat(o)},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"Pretraži"},formatNoMatches:function(){return"Nije pronađen niti jedan zapis"},formatPaginationSwitch:function(){return"Prikaži/sakrij stranice"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Osvježi"},formatToggle:function(){return"Promijeni prikaz"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Kolone"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Sve"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["hr-HR"]),t.fn.bootstrapTable.locales["hu-HU"]={formatLoadingMessage:function(){return"Betöltés, kérem várjon"},formatRecordsPerPage:function(t){return"".concat(t," rekord per oldal")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Megjelenítve ".concat(t," - ").concat(n," / ").concat(o," összesen (filtered from ").concat(r," total rows)"):"Megjelenítve ".concat(t," - ").concat(n," / ").concat(o," összesen")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"Keresés"},formatNoMatches:function(){return"Nincs találat"},formatPaginationSwitch:function(){return"Lapozó elrejtése/megjelenítése"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Frissítés"},formatToggle:function(){return"Összecsuk/Kinyit"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Oszlopok"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Összes"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["hu-HU"]),t.fn.bootstrapTable.locales["id-ID"]={formatLoadingMessage:function(){return"Memuat, mohon tunggu"},formatRecordsPerPage:function(t){return"".concat(t," baris per halaman")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Menampilkan ".concat(t," sampai ").concat(n," dari ").concat(o," baris (filtered from ").concat(r," total rows)"):"Menampilkan ".concat(t," sampai ").concat(n," dari ").concat(o," baris")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Bersihkan filter"},formatSearch:function(){return"Pencarian"},formatNoMatches:function(){return"Tidak ditemukan data yang cocok"},formatPaginationSwitch:function(){return"Sembunyikan/Tampilkan halaman"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Muat ulang"},formatToggle:function(){return"Beralih"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"kolom"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Semua"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Ekspor data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["id-ID"]),t.fn.bootstrapTable.locales["it-IT"]={formatLoadingMessage:function(){return"Caricamento in corso"},formatRecordsPerPage:function(t){return"".concat(t," elementi per pagina")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Visualizzazione da ".concat(t," a ").concat(n," di ").concat(o," elementi (filtered from ").concat(r," total rows)"):"Visualizzazione da ".concat(t," a ").concat(n," di ").concat(o," elementi")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Pulisci filtri"},formatSearch:function(){return"Cerca"},formatNoMatches:function(){return"Nessun elemento trovato"},formatPaginationSwitch:function(){return"Nascondi/Mostra paginazione"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Aggiorna"},formatToggle:function(){return"Attiva/Disattiva"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Colonne"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Tutto"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Esporta dati"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["it-IT"]),t.fn.bootstrapTable.locales["ja-JP"]={formatLoadingMessage:function(){return"読み込み中です。少々お待ちください。"},formatRecordsPerPage:function(t){return"ページ当たり最大".concat(t,"件")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"全".concat(o,"件から、").concat(t,"から").concat(n,"件目まで表示しています (filtered from ").concat(r," total rows)"):"全".concat(o,"件から、").concat(t,"から").concat(n,"件目まで表示しています")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"検索"},formatNoMatches:function(){return"該当するレコードが見つかりません"},formatPaginationSwitch:function(){return"ページ数を表示・非表示"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"更新"},formatToggle:function(){return"トグル"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"列"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"すべて"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["ja-JP"]),t.fn.bootstrapTable.locales["ka-GE"]={formatLoadingMessage:function(){return"იტვირთება, გთხოვთ მოიცადოთ"},formatRecordsPerPage:function(t){return"".concat(t," ჩანაწერი თითო გვერდზე")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"ნაჩვენებია ".concat(t,"-დან ").concat(n,"-მდე ჩანაწერი ჯამური ").concat(o,"-დან (filtered from ").concat(r," total rows)"):"ნაჩვენებია ".concat(t,"-დან ").concat(n,"-მდე ჩანაწერი ჯამური ").concat(o,"-დან")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"ძებნა"},formatNoMatches:function(){return"მონაცემები არ არის"},formatPaginationSwitch:function(){return"გვერდების გადამრთველის დამალვა/გამოჩენა"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"განახლება"},formatToggle:function(){return"ჩართვა/გამორთვა"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"სვეტები"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"All"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["ka-GE"]),t.fn.bootstrapTable.locales["ko-KR"]={formatLoadingMessage:function(){return"데이터를 불러오는 중입니다"},formatRecordsPerPage:function(t){return"페이지 당 ".concat(t,"개 데이터 출력")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"전체 ".concat(o,"개 중 ").concat(t,"~").concat(n,"번째 데이터 출력, (filtered from ").concat(r," total rows)"):"전체 ".concat(o,"개 중 ").concat(t,"~").concat(n,"번째 데이터 출력,")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"검색"},formatNoMatches:function(){return"조회된 데이터가 없습니다."},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"새로 고침"},formatToggle:function(){return"전환"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"컬럼 필터링"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"All"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["ko-KR"]),t.fn.bootstrapTable.locales["ms-MY"]={formatLoadingMessage:function(){return"Permintaan sedang dimuatkan. Sila tunggu sebentar"},formatRecordsPerPage:function(t){return"".concat(t," rekod setiap muka surat")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Sedang memaparkan rekod ".concat(t," hingga ").concat(n," daripada jumlah ").concat(o," rekod (filtered from ").concat(r," total rows)"):"Sedang memaparkan rekod ".concat(t," hingga ").concat(n," daripada jumlah ").concat(o," rekod")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"Cari"},formatNoMatches:function(){return"Tiada rekod yang menyamai permintaan"},formatPaginationSwitch:function(){return"Tunjuk/sembunyi muka surat"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Muatsemula"},formatToggle:function(){return"Tukar"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Lajur"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Semua"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["ms-MY"]),t.fn.bootstrapTable.locales["nb-NO"]={formatLoadingMessage:function(){return"Oppdaterer, vennligst vent"},formatRecordsPerPage:function(t){return"".concat(t," poster pr side")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Viser ".concat(t," til ").concat(n," av ").concat(o," rekker (filtered from ").concat(r," total rows)"):"Viser ".concat(t," til ").concat(n," av ").concat(o," rekker")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"Søk"},formatNoMatches:function(){return"Ingen poster funnet"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Oppdater"},formatToggle:function(){return"Endre"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Kolonner"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"All"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["nb-NO"]),t.fn.bootstrapTable.locales["nl-BE"]={formatLoadingMessage:function(){return"Laden, even geduld"},formatRecordsPerPage:function(t){return"".concat(t," records per pagina")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Toon ".concat(t," tot ").concat(n," van ").concat(o," record").concat(o>1?"s":""," (gefilterd van ").concat(r," records in totaal)"):"Toon ".concat(t," tot ").concat(n," van ").concat(o," record").concat(o>1?"s":"")},formatSRPaginationPreText:function(){return"vorige pagina"},formatSRPaginationPageText:function(t){return"tot pagina ".concat(t)},formatSRPaginationNextText:function(){return"volgende pagina"},formatDetailPagination:function(t){return"Toon ".concat(t," record").concat(t>1?"s":"")},formatClearSearch:function(){return"Verwijder filters"},formatSearch:function(){return"Zoeken"},formatNoMatches:function(){return"Geen resultaten gevonden"},formatPaginationSwitch:function(){return"Verberg/Toon paginering"},formatPaginationSwitchDown:function(){return"Toon paginering"},formatPaginationSwitchUp:function(){return"Verberg paginering"},formatRefresh:function(){return"Vernieuwen"},formatToggle:function(){return"Omschakelen"},formatToggleOn:function(){return"Toon kaartweergave"},formatToggleOff:function(){return"Verberg kaartweergave"},formatColumns:function(){return"Kolommen"},formatColumnsToggleAll:function(){return"Allen omschakelen"},formatFullscreen:function(){return"Volledig scherm"},formatAllRows:function(){return"Alle"},formatAutoRefresh:function(){return"Automatisch vernieuwen"},formatExport:function(){return"Exporteer gegevens"},formatJumpTo:function(){return"GA"},formatAdvancedSearch:function(){return"Geavanceerd zoeken"},formatAdvancedCloseButton:function(){return"Sluiten"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["nl-BE"]),t.fn.bootstrapTable.locales["nl-NL"]={formatLoadingMessage:function(){return"Laden, even geduld"},formatRecordsPerPage:function(t){return"".concat(t," records per pagina")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Toon ".concat(t," tot ").concat(n," van ").concat(o," record").concat(o>1?"s":""," (gefilterd van ").concat(r," records in totaal)"):"Toon ".concat(t," tot ").concat(n," van ").concat(o," record").concat(o>1?"s":"")},formatSRPaginationPreText:function(){return"vorige pagina"},formatSRPaginationPageText:function(t){return"tot pagina ".concat(t)},formatSRPaginationNextText:function(){return"volgende pagina"},formatDetailPagination:function(t){return"Toon ".concat(t," record").concat(t>1?"s":"")},formatClearSearch:function(){return"Verwijder filters"},formatSearch:function(){return"Zoeken"},formatNoMatches:function(){return"Geen resultaten gevonden"},formatPaginationSwitch:function(){return"Verberg/Toon paginering"},formatPaginationSwitchDown:function(){return"Toon paginering"},formatPaginationSwitchUp:function(){return"Verberg paginering"},formatRefresh:function(){return"Vernieuwen"},formatToggle:function(){return"Omschakelen"},formatToggleOn:function(){return"Toon kaartweergave"},formatToggleOff:function(){return"Verberg kaartweergave"},formatColumns:function(){return"Kolommen"},formatColumnsToggleAll:function(){return"Allen omschakelen"},formatFullscreen:function(){return"Volledig scherm"},formatAllRows:function(){return"Alle"},formatAutoRefresh:function(){return"Automatisch vernieuwen"},formatExport:function(){return"Exporteer gegevens"},formatJumpTo:function(){return"GA"},formatAdvancedSearch:function(){return"Geavanceerd zoeken"},formatAdvancedCloseButton:function(){return"Sluiten"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["nl-NL"]),t.fn.bootstrapTable.locales["pl-PL"]={formatLoadingMessage:function(){return"Ładowanie, proszę czekać"},formatRecordsPerPage:function(t){return"".concat(t," rekordów na stronę")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Wyświetlanie rekordów od ".concat(t," do ").concat(n," z ").concat(o," (filtered from ").concat(r," total rows)"):"Wyświetlanie rekordów od ".concat(t," do ").concat(n," z ").concat(o)},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"Szukaj"},formatNoMatches:function(){return"Niestety, nic nie znaleziono"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Odśwież"},formatToggle:function(){return"Przełącz"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Kolumny"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"All"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["pl-PL"]),t.fn.bootstrapTable.locales["pt-BR"]={formatLoadingMessage:function(){return"Carregando, aguarde"},formatRecordsPerPage:function(t){return"".concat(t," registros por página")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Exibindo ".concat(t," até ").concat(n," de ").concat(o," linhas (filtered from ").concat(r," total rows)"):"Exibindo ".concat(t," até ").concat(n," de ").concat(o," linhas")},formatSRPaginationPreText:function(){return"página anterior"},formatSRPaginationPageText:function(t){return"Para a página ".concat(t)},formatSRPaginationNextText:function(){return"próxima página"},formatDetailPagination:function(t){return"Mostrando ".concat(t," linhas")},formatClearSearch:function(){return"Limpar Pasquisa"},formatSearch:function(){return"Pesquisar"},formatNoMatches:function(){return"Nenhum registro encontrado"},formatPaginationSwitch:function(){return"Ocultar/Exibir paginação"},formatPaginationSwitchDown:function(){return"Mostrar Paginação"},formatPaginationSwitchUp:function(){return"Esconder Paginação"},formatRefresh:function(){return"Recarregar"},formatToggle:function(){return"Alternar"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Colunas"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Tela cheia"},formatAllRows:function(){return"Tudo"},formatAutoRefresh:function(){return"Atualização Automática"},formatExport:function(){return"Exportar dados"},formatJumpTo:function(){return"IR"},formatAdvancedSearch:function(){return"Pesquisa Avançada"},formatAdvancedCloseButton:function(){return"Fechar"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["pt-BR"]),t.fn.bootstrapTable.locales["pt-PT"]={formatLoadingMessage:function(){return"A carregar, por favor aguarde"},formatRecordsPerPage:function(t){return"".concat(t," registos por página")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"A mostrar ".concat(t," até ").concat(n," de ").concat(o," linhas (filtered from ").concat(r," total rows)"):"A mostrar ".concat(t," até ").concat(n," de ").concat(o," linhas")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"Pesquisa"},formatNoMatches:function(){return"Nenhum registo encontrado"},formatPaginationSwitch:function(){return"Esconder/Mostrar paginação"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Atualizar"},formatToggle:function(){return"Alternar"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Colunas"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Tudo"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["pt-PT"]),t.fn.bootstrapTable.locales["ro-RO"]={formatLoadingMessage:function(){return"Se incarca, va rugam asteptati"},formatRecordsPerPage:function(t){return"".concat(t," inregistrari pe pagina")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Arata de la ".concat(t," pana la ").concat(n," din ").concat(o," randuri (filtered from ").concat(r," total rows)"):"Arata de la ".concat(t," pana la ").concat(n," din ").concat(o," randuri")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"Cauta"},formatNoMatches:function(){return"Nu au fost gasite inregistrari"},formatPaginationSwitch:function(){return"Ascunde/Arata paginatia"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Reincarca"},formatToggle:function(){return"Comuta"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Coloane"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Toate"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["ro-RO"]),t.fn.bootstrapTable.locales["ru-RU"]={formatLoadingMessage:function(){return"Пожалуйста, подождите, идёт загрузка"},formatRecordsPerPage:function(t){return"".concat(t," записей на страницу")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Записи с ".concat(t," по ").concat(n," из ").concat(o," (filtered from ").concat(r," total rows)"):"Записи с ".concat(t," по ").concat(n," из ").concat(o)},formatSRPaginationPreText:function(){return"предыдущая страница"},formatSRPaginationPageText:function(t){return"на страницу ".concat(t)},formatSRPaginationNextText:function(){return"следущая страница"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Очистить фильтры"},formatSearch:function(){return"Поиск"},formatNoMatches:function(){return"Ничего не найдено"},formatPaginationSwitch:function(){return"Скрыть/Показать нумерацию страниц"},formatPaginationSwitchDown:function(){return"Показать пагинацию"},formatPaginationSwitchUp:function(){return"Скрыть пагинацию"},formatRefresh:function(){return"Обновить"},formatToggle:function(){return"Переключить"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Колонки"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Полноэкранный"},formatAllRows:function(){return"Все"},formatAutoRefresh:function(){return"Авто обновление"},formatExport:function(){return"Экспорт данных"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Расширенный поиск"},formatAdvancedCloseButton:function(){return"Закрыть"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["ru-RU"]),t.fn.bootstrapTable.locales["sk-SK"]={formatLoadingMessage:function(){return"Prosím čakajte"},formatRecordsPerPage:function(t){return"".concat(t," záznamov na stranu")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Zobrazená ".concat(t,". - ").concat(n,". položka z celkových ").concat(o," (filtered from ").concat(r," total rows)"):"Zobrazená ".concat(t,". - ").concat(n,". položka z celkových ").concat(o)},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Odstráň filtre"},formatSearch:function(){return"Vyhľadávanie"},formatNoMatches:function(){return"Nenájdená žiadna vyhovujúca položka"},formatPaginationSwitch:function(){return"Skry/Zobraz stránkovanie"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Obnoviť"},formatToggle:function(){return"Prepni"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Stĺpce"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Všetky"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Exportuj dáta"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["sk-SK"]),t.fn.bootstrapTable.locales["sr-Cyrl-RS"]={formatLoadingMessage:function(){return"Молим сачекај"},formatRecordsPerPage:function(t){return"".concat(t," редова по страни")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Приказано ".concat(t,". - ").concat(n,". од укупног броја редова ").concat(o," (филтрирано од ").concat(r,")"):"Приказано ".concat(t,". - ").concat(n,". од укупног броја редова ").concat(o)},formatSRPaginationPreText:function(){return"претходна страна"},formatSRPaginationPageText:function(t){return"на страну ".concat(t)},formatSRPaginationNextText:function(){return"следећа страна"},formatDetailPagination:function(t){return"Приказано ".concat(t," редова")},formatClearSearch:function(){return"Обриши претрагу"},formatSearch:function(){return"Пронађи"},formatNoMatches:function(){return"Није пронађен ни један податак"},formatPaginationSwitch:function(){return"Прикажи/сакриј пагинацију"},formatPaginationSwitchDown:function(){return"Прикажи пагинацију"},formatPaginationSwitchUp:function(){return"Сакриј пагинацију"},formatRefresh:function(){return"Освежи"},formatToggle:function(){return"Промени приказ"},formatToggleOn:function(){return"Прикажи картице"},formatToggleOff:function(){return"Сакриј картице"},formatColumns:function(){return"Колоне"},formatColumnsToggleAll:function(){return"Прикажи/сакриј све"},formatFullscreen:function(){return"Цео екран"},formatAllRows:function(){return"Све"},formatAutoRefresh:function(){return"Аутоматско освежавање"},formatExport:function(){return"Извези податке"},formatJumpTo:function(){return"Иди"},formatAdvancedSearch:function(){return"Напредна претрага"},formatAdvancedCloseButton:function(){return"Затвори"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["sr-Cyrl-RS"]),t.fn.bootstrapTable.locales["sr-Latn-RS"]={formatLoadingMessage:function(){return"Molim sačekaj"},formatRecordsPerPage:function(t){return"".concat(t," redova po strani")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Prikazano ".concat(t,". - ").concat(n,". od ukupnog broja redova ").concat(o," (filtrirano od ").concat(r,")"):"Prikazano ".concat(t,". - ").concat(n,". od ukupnog broja redova ").concat(o)},formatSRPaginationPreText:function(){return"prethodna strana"},formatSRPaginationPageText:function(t){return"na stranu ".concat(t)},formatSRPaginationNextText:function(){return"sledeća strana"},formatDetailPagination:function(t){return"Prikazano ".concat(t," redova")},formatClearSearch:function(){return"Obriši pretragu"},formatSearch:function(){return"Pronađi"},formatNoMatches:function(){return"Nije pronađen ni jedan podatak"},formatPaginationSwitch:function(){return"Prikaži/sakrij paginaciju"},formatPaginationSwitchDown:function(){return"Prikaži paginaciju"},formatPaginationSwitchUp:function(){return"Sakrij paginaciju"},formatRefresh:function(){return"Osveži"},formatToggle:function(){return"Promeni prikaz"},formatToggleOn:function(){return"Prikaži kartice"},formatToggleOff:function(){return"Sakrij kartice"},formatColumns:function(){return"Kolone"},formatColumnsToggleAll:function(){return"Prikaži/sakrij sve"},formatFullscreen:function(){return"Ceo ekran"},formatAllRows:function(){return"Sve"},formatAutoRefresh:function(){return"Automatsko osvežavanje"},formatExport:function(){return"Izvezi podatke"},formatJumpTo:function(){return"Idi"},formatAdvancedSearch:function(){return"Napredna pretraga"},formatAdvancedCloseButton:function(){return"Zatvori"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["sr-Latn-RS"]),t.fn.bootstrapTable.locales["sv-SE"]={formatLoadingMessage:function(){return"Laddar, vänligen vänta"},formatRecordsPerPage:function(t){return"".concat(t," rader per sida")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Visa ".concat(t," till ").concat(n," av ").concat(o," rader (filtered from ").concat(r," total rows)"):"Visa ".concat(t," till ").concat(n," av ").concat(o," rader")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"Sök"},formatNoMatches:function(){return"Inga matchande resultat funna."},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Uppdatera"},formatToggle:function(){return"Skifta"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"kolumn"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"All"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["sv-SE"]),t.fn.bootstrapTable.locales["th-TH"]={formatLoadingMessage:function(){return"กำลังโหลดข้อมูล, กรุณารอสักครู่"},formatRecordsPerPage:function(t){return"".concat(t," รายการต่อหน้า")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"รายการที่ ".concat(t," ถึง ").concat(n," จากทั้งหมด ").concat(o," รายการ (filtered from ").concat(r," total rows)"):"รายการที่ ".concat(t," ถึง ").concat(n," จากทั้งหมด ").concat(o," รายการ")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"ค้นหา"},formatNoMatches:function(){return"ไม่พบรายการที่ค้นหา !"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"รีเฟรส"},formatToggle:function(){return"สลับมุมมอง"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"คอลัมน์"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"All"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["th-TH"]),t.fn.bootstrapTable.locales["tr-TR"]={formatLoadingMessage:function(){return"Yükleniyor, lütfen bekleyin"},formatRecordsPerPage:function(t){return"Sayfa başına ".concat(t," kayıt.")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"".concat(o," kayıttan ").concat(t,"-").concat(n," arası gösteriliyor (filtered from ").concat(r," total rows)."):"".concat(o," kayıttan ").concat(t,"-").concat(n," arası gösteriliyor.")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"Ara"},formatNoMatches:function(){return"Eşleşen kayıt bulunamadı."},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Yenile"},formatToggle:function(){return"Değiştir"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Sütunlar"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Tüm Satırlar"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["tr-TR"]),t.fn.bootstrapTable.locales["uk-UA"]={formatLoadingMessage:function(){return"Завантаження, будь ласка, зачекайте"},formatRecordsPerPage:function(t){return"".concat(t," записів на сторінку")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Показано з ".concat(t," по ").concat(n,". Всього: ").concat(o," (filtered from ").concat(r," total rows)"):"Показано з ".concat(t," по ").concat(n,". Всього: ").concat(o)},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Очистити фільтри"},formatSearch:function(){return"Пошук"},formatNoMatches:function(){return"Не знайдено жодного запису"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Оновити"},formatToggle:function(){return"Змінити"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Стовпці"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"All"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["uk-UA"]),t.fn.bootstrapTable.locales["ur-PK"]={formatLoadingMessage:function(){return"براۓ مہربانی انتظار کیجئے"},formatRecordsPerPage:function(t){return"".concat(t," ریکارڈز فی صفہ ")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"دیکھیں ".concat(t," سے ").concat(n," کے ").concat(o,"ریکارڈز (filtered from ").concat(r," total rows)"):"دیکھیں ".concat(t," سے ").concat(n," کے ").concat(o,"ریکارڈز")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"تلاش"},formatNoMatches:function(){return"کوئی ریکارڈ نہیں ملا"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"تازہ کریں"},formatToggle:function(){return"تبدیل کریں"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"کالم"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"All"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["ur-PK"]),t.fn.bootstrapTable.locales["uz-Latn-UZ"]={formatLoadingMessage:function(){return"Yuklanyapti, iltimos kuting"},formatRecordsPerPage:function(t){return"".concat(t," qator har sahifada")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Ko'rsatypati ".concat(t," dan ").concat(n," gacha ").concat(o," qatorlarni (filtered from ").concat(r," total rows)"):"Ko'rsatypati ".concat(t," dan ").concat(n," gacha ").concat(o," qatorlarni")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Filtrlarni tozalash"},formatSearch:function(){return"Qidirish"},formatNoMatches:function(){return"Hech narsa topilmadi"},formatPaginationSwitch:function(){return"Sahifalashni yashirish/ko'rsatish"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Yangilash"},formatToggle:function(){return"Ko'rinish"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Ustunlar"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"Hammasi"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Eksport"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["uz-Latn-UZ"]),t.fn.bootstrapTable.locales["vi-VN"]={formatLoadingMessage:function(){return"Đang tải"},formatRecordsPerPage:function(t){return"".concat(t," bản ghi mỗi trang")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"Hiển thị từ trang ".concat(t," đến ").concat(n," của ").concat(o," bảng ghi (filtered from ").concat(r," total rows)"):"Hiển thị từ trang ".concat(t," đến ").concat(n," của ").concat(o," bảng ghi")},formatSRPaginationPreText:function(){return"previous page"},formatSRPaginationPageText:function(t){return"to page ".concat(t)},formatSRPaginationNextText:function(){return"next page"},formatDetailPagination:function(t){return"Showing ".concat(t," rows")},formatClearSearch:function(){return"Clear Search"},formatSearch:function(){return"Tìm kiếm"},formatNoMatches:function(){return"Không có dữ liệu"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatPaginationSwitchDown:function(){return"Show pagination"},formatPaginationSwitchUp:function(){return"Hide pagination"},formatRefresh:function(){return"Refresh"},formatToggle:function(){return"Toggle"},formatToggleOn:function(){return"Show card view"},formatToggleOff:function(){return"Hide card view"},formatColumns:function(){return"Columns"},formatColumnsToggleAll:function(){return"Toggle all"},formatFullscreen:function(){return"Fullscreen"},formatAllRows:function(){return"All"},formatAutoRefresh:function(){return"Auto Refresh"},formatExport:function(){return"Export data"},formatJumpTo:function(){return"GO"},formatAdvancedSearch:function(){return"Advanced search"},formatAdvancedCloseButton:function(){return"Close"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["vi-VN"]),t.fn.bootstrapTable.locales["zh-CN"]={formatLoadingMessage:function(){return"正在努力地加载数据中,请稍候"},formatRecordsPerPage:function(t){return"每页显示 ".concat(t," 条记录")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"显示第 ".concat(t," 到第 ").concat(n," 条记录,总共 ").concat(o," 条记录(从 ").concat(r," 总记录中过滤)"):"显示第 ".concat(t," 到第 ").concat(n," 条记录,总共 ").concat(o," 条记录")},formatSRPaginationPreText:function(){return"上一页"},formatSRPaginationPageText:function(t){return"第".concat(t,"页")},formatSRPaginationNextText:function(){return"下一页"},formatDetailPagination:function(t){return"总共 ".concat(t," 条记录")},formatClearSearch:function(){return"清空过滤"},formatSearch:function(){return"搜索"},formatNoMatches:function(){return"没有找到匹配的记录"},formatPaginationSwitch:function(){return"隐藏/显示分页"},formatPaginationSwitchDown:function(){return"显示分页"},formatPaginationSwitchUp:function(){return"隐藏分页"},formatRefresh:function(){return"刷新"},formatToggle:function(){return"切换"},formatToggleOn:function(){return"显示卡片视图"},formatToggleOff:function(){return"隐藏卡片视图"},formatColumns:function(){return"列"},formatColumnsToggleAll:function(){return"切换所有"},formatFullscreen:function(){return"全屏"},formatAllRows:function(){return"所有"},formatAutoRefresh:function(){return"自动刷新"},formatExport:function(){return"导出数据"},formatJumpTo:function(){return"跳转"},formatAdvancedSearch:function(){return"高级搜索"},formatAdvancedCloseButton:function(){return"关闭"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["zh-CN"]),t.fn.bootstrapTable.locales["zh-TW"]={formatLoadingMessage:function(){return"正在努力地載入資料,請稍候"},formatRecordsPerPage:function(t){return"每頁顯示 ".concat(t," 項記錄")},formatShowingRows:function(t,n,o,r){return void 0!==r&&r>0&&r>o?"顯示第 ".concat(t," 到第 ").concat(n," 項記錄,總共 ").concat(o," 項記錄(從 ").concat(r," 總記錄中過濾)"):"顯示第 ".concat(t," 到第 ").concat(n," 項記錄,總共 ").concat(o," 項記錄")},formatSRPaginationPreText:function(){return"上一頁"},formatSRPaginationPageText:function(t){return"第".concat(t,"頁")},formatSRPaginationNextText:function(){return"下一頁"},formatDetailPagination:function(t){return"總共 ".concat(t," 項記錄")},formatClearSearch:function(){return"清空過濾"},formatSearch:function(){return"搜尋"},formatNoMatches:function(){return"沒有找到符合的結果"},formatPaginationSwitch:function(){return"隱藏/顯示分頁"},formatPaginationSwitchDown:function(){return"顯示分頁"},formatPaginationSwitchUp:function(){return"隱藏分頁"},formatRefresh:function(){return"重新整理"},formatToggle:function(){return"切換"},formatToggleOn:function(){return"顯示卡片視圖"},formatToggleOff:function(){return"隱藏卡片視圖"},formatColumns:function(){return"列"},formatColumnsToggleAll:function(){return"切換所有"},formatFullscreen:function(){return"全屏"},formatAllRows:function(){return"所有"},formatAutoRefresh:function(){return"自動刷新"},formatExport:function(){return"導出數據"},formatJumpTo:function(){return"跳轉"},formatAdvancedSearch:function(){return"高級搜尋"},formatAdvancedCloseButton:function(){return"關閉"}},t.extend(t.fn.bootstrapTable.defaults,t.fn.bootstrapTable.locales["zh-TW"])})); \ No newline at end of file diff --git a/archlinuxaba/bareos/fix-build-bareos.patch b/archlinuxaba/bareos/fix-build-bareos.patch new file mode 100644 index 0000000..e0b963b --- /dev/null +++ b/archlinuxaba/bareos/fix-build-bareos.patch @@ -0,0 +1,44 @@ +--- a/core/src/droplet/libdroplet/src/utils.c 2021-04-16 00:09:37.856912334 +0300 ++++ b/core/src/droplet/libdroplet/src/utils.c 2021-04-16 00:32:28.058300432 +0300 +@@ -33,7 +33,7 @@ + */ + #include + #include +-#include ++#include + #include + + /** @file */ +--- a/core/src/droplet/libdroplet/include/droplet/cdmi/crcmodel.h 2021-04-16 17:25:43.613478257 +0300 ++++ b/core/src/droplet/libdroplet/include/droplet/cdmi/crcmodel.h 2021-04-16 17:31:53.449697759 +0300 +@@ -78,7 +78,7 @@ + #ifndef DONE_STYLE + + typedef unsigned long ulong; +-typedef unsigned bool; ++/*typedef unsigned bool;*/ + typedef unsigned char * p_ubyte_; + + #ifndef TRUE +@@ -107,8 +107,8 @@ + int cm_width; /* Parameter: Width in bits [8,32]. */ + ulong cm_poly; /* Parameter: The algorithm's polynomial. */ + ulong cm_init; /* Parameter: Initial register value. */ +- bool cm_refin; /* Parameter: Reflect input bytes? */ +- bool cm_refot; /* Parameter: Reflect output CRC? */ ++ _Bool cm_refin; /* Parameter: Reflect input bytes? */ ++ _Bool cm_refot; /* Parameter: Reflect output CRC? */ + ulong cm_xorot; /* Parameter: XOR this to output CRC. */ + + ulong cm_reg; /* Context: Context during execution. */ +--- a/core/src/droplet/libdroplet/src/backend/posix/reqbuilder.c 2021-04-16 17:32:41.619204579 +0300 ++++ b/core/src/droplet/libdroplet/src/backend/posix/reqbuilder.c 2021-04-16 17:33:54.938453657 +0300 +@@ -39,7 +39,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include diff --git a/archlinuxaba/bareos/fix-headlink.patch b/archlinuxaba/bareos/fix-headlink.patch new file mode 100644 index 0000000..6830228 --- /dev/null +++ b/archlinuxaba/bareos/fix-headlink.patch @@ -0,0 +1,193 @@ +--- a/webui/vendor/zendframework/zend-view/src/Helper/HeadLink.php 2021-04-16 20:54:47.655312342 +0300 ++++ b/webui/vendor/zendframework/zend-view/src/Helper/HeadLink.php 2021-04-16 23:17:00.000000000 +0300 +@@ -13,21 +13,23 @@ + use Zend\View; + use Zend\View\Exception; + ++// @codingStandardsIgnoreStart + /** + * Zend_Layout_View_Helper_HeadLink + * + * @see http://www.w3.org/TR/xhtml1/dtds.html + * + * Creates the following virtual methods: +- * @method HeadLink appendStylesheet($href, $media = 'screen', $conditionalStylesheet = '', $extras = array()) +- * @method HeadLink offsetSetStylesheet($index, $href, $media = 'screen', $conditionalStylesheet = '', $extras = array()) +- * @method HeadLink prependStylesheet($href, $media = 'screen', $conditionalStylesheet = '', $extras = array()) +- * @method HeadLink setStylesheet($href, $media = 'screen', $conditionalStylesheet = '', $extras = array()) +- * @method HeadLink appendAlternate($href, $type, $title, $extras = array()) +- * @method HeadLink offsetSetAlternate($index, $href, $type, $title, $extras = array()) +- * @method HeadLink prependAlternate($href, $type, $title, $extras = array()) +- * @method HeadLink setAlternate($href, $type, $title, $extras = array()) ++ * @method HeadLink appendStylesheet($href, $media = 'screen', $conditionalStylesheet = '', $extras = []) ++ * @method HeadLink offsetSetStylesheet($index, $href, $media = 'screen', $conditionalStylesheet = '', $extras = []) ++ * @method HeadLink prependStylesheet($href, $media = 'screen', $conditionalStylesheet = '', $extras = []) ++ * @method HeadLink setStylesheet($href, $media = 'screen', $conditionalStylesheet = '', $extras = []) ++ * @method HeadLink appendAlternate($href, $type, $title, $extras = []) ++ * @method HeadLink offsetSetAlternate($index, $href, $type, $title, $extras = []) ++ * @method HeadLink prependAlternate($href, $type, $title, $extras = []) ++ * @method HeadLink setAlternate($href, $type, $title, $extras = []) + */ ++// @codingStandardsIgnoreEnd + class HeadLink extends Placeholder\Container\AbstractStandalone + { + /** +@@ -35,7 +37,7 @@ + * + * @var string[] + */ +- protected $itemKeys = array( ++ protected $itemKeys = [ + 'charset', + 'href', + 'hreflang', +@@ -46,8 +48,12 @@ + 'sizes', + 'type', + 'title', +- 'extras' +- ); ++ 'extras', ++ 'itemprop', ++ 'crossorigin', ++ 'integrity', ++ 'as', ++ ]; + + /** + * Registry key for placeholder +@@ -80,7 +86,7 @@ + */ + public function headLink(array $attributes = null, $placement = Placeholder\Container\AbstractContainer::APPEND) + { +- return call_user_func_array(array($this, '__invoke'), func_get_args()); ++ return call_user_func_array([$this, '__invoke'], func_get_args()); + } + + /** +@@ -142,7 +148,11 @@ + */ + public function __call($method, $args) + { +- if (preg_match('/^(?Pset|(ap|pre)pend|offsetSet)(?PStylesheet|Alternate|Prev|Next)$/', $method, $matches)) { ++ if (preg_match( ++ '/^(?Pset|(ap|pre)pend|offsetSet)(?PStylesheet|Alternate|Prev|Next)$/', ++ $method, ++ $matches ++ )) { + $argc = count($args); + $action = $matches['action']; + $type = $matches['type']; +@@ -190,7 +200,7 @@ + */ + protected function isValid($value) + { +- if (!$value instanceof stdClass) { ++ if (! $value instanceof stdClass) { + return false; + } + +@@ -213,7 +223,7 @@ + */ + public function append($value) + { +- if (!$this->isValid($value)) { ++ if (! $this->isValid($value)) { + throw new Exception\InvalidArgumentException( + 'append() expects a data token; please use one of the custom append*() methods' + ); +@@ -232,7 +242,7 @@ + */ + public function offsetSet($index, $value) + { +- if (!$this->isValid($value)) { ++ if (! $this->isValid($value)) { + throw new Exception\InvalidArgumentException( + 'offsetSet() expects a data token; please use one of the custom offsetSet*() methods' + ); +@@ -250,7 +260,7 @@ + */ + public function prepend($value) + { +- if (!$this->isValid($value)) { ++ if (! $this->isValid($value)) { + throw new Exception\InvalidArgumentException( + 'prepend() expects a data token; please use one of the custom prepend*() methods' + ); +@@ -268,7 +278,7 @@ + */ + public function set($value) + { +- if (!$this->isValid($value)) { ++ if (! $this->isValid($value)) { + throw new Exception\InvalidArgumentException( + 'set() expects a data token; please use one of the custom set*() methods' + ); +@@ -315,7 +325,7 @@ + } + + if (isset($attributes['conditionalStylesheet']) +- && !empty($attributes['conditionalStylesheet']) ++ && ! empty($attributes['conditionalStylesheet']) + && is_string($attributes['conditionalStylesheet']) + ) { + // inner wrap with comment end and start if !IE +@@ -340,7 +350,7 @@ + ? $this->getWhitespace($indent) + : $this->getIndent(); + +- $items = array(); ++ $items = []; + $this->getContainer()->ksort(); + foreach ($this as $item) { + $items[] = $this->itemToString($item); +@@ -378,7 +388,7 @@ + return false; + } + +- if (0 < count($args)) { ++ if ($args) { + $media = array_shift($args); + if (is_array($media)) { + $media = implode(',', $media); +@@ -386,18 +396,20 @@ + $media = (string) $media; + } + } +- if (0 < count($args)) { ++ if ($args) { + $conditionalStylesheet = array_shift($args); +- if (!empty($conditionalStylesheet) && is_string($conditionalStylesheet)) { ++ if (! empty($conditionalStylesheet) && is_string($conditionalStylesheet)) { + $conditionalStylesheet = (string) $conditionalStylesheet; + } else { + $conditionalStylesheet = null; + } + } + +- if (0 < count($args) && is_array($args[0])) { ++ if ($args && is_array($args[0])) { + $extras = array_shift($args); + $extras = (array) $extras; ++ } else { ++ $extras = array(); + } + + $attributes = compact('rel', 'type', 'href', 'media', 'conditionalStylesheet', 'extras'); +@@ -443,13 +455,15 @@ + $type = array_shift($args); + $title = array_shift($args); + +- if (0 < count($args) && is_array($args[0])) { ++ if ($args && is_array($args[0])) { + $extras = array_shift($args); + $extras = (array) $extras; + + if (isset($extras['media']) && is_array($extras['media'])) { + $extras['media'] = implode(',', $extras['media']); + } ++ } else { ++ $extras = array(); + } + + $href = (string) $href; diff --git a/archlinuxaba/bareos/mysql.patch b/archlinuxaba/bareos/mysql.patch new file mode 100644 index 0000000..b10f910 --- /dev/null +++ b/archlinuxaba/bareos/mysql.patch @@ -0,0 +1,397 @@ +--- a/core/src/cats/ddl/creates/mysql.sql 2021-06-10 16:14:05.373605979 +0300 ++++ b/core/src/cats/ddl/creates/mysql.sql 2021-06-10 16:33:09.592630760 +0300 +@@ -11,63 +11,6 @@ + INDEX (Path(255)) + ); + +--- We strongly recommend to avoid the temptation to add new indexes. +--- In general, these will cause very significant performance +--- problems in other areas. A better approach is to carefully check +--- that all your memory configuration parameters are +--- suitable for the size of your installation. If you backup +--- millions of files, you need to adapt the database memory +--- configuration parameters concerning sorting, joining and global +--- memory. By default, sort and join parameters are very small +--- (sometimes 8Kb), and having sufficient memory specified by those +--- parameters is extremely important to run fast. +- +--- In File table +--- FileIndex is 0 for FT_DELETED files +--- Name is '' for directories +--- The index INDEX (PathId, JobId, FileIndex) is +--- important for bvfs performance, especially +--- for .bvfs_lsdirs which is used by bareos-webui. +-CREATE TABLE File ( +- FileId BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, +- FileIndex INTEGER UNSIGNED DEFAULT 0, +- JobId INTEGER UNSIGNED NOT NULL REFERENCES Job, +- PathId INTEGER UNSIGNED NOT NULL REFERENCES Path, +- DeltaSeq SMALLINT UNSIGNED DEFAULT 0, +- MarkId INTEGER UNSIGNED DEFAULT 0, +- Fhinfo NUMERIC(20) DEFAULT 0, +- Fhnode NUMERIC(20) DEFAULT 0, +- LStat TINYBLOB NOT NULL, +- MD5 TINYBLOB NOT NULL, +- Name BLOB NOT NULL, +- PRIMARY KEY (FileId), +- INDEX (JobId, PathId, Name(255)), +- INDEX (PathId, JobId, FileIndex) +-); +- +--- +--- Possibly add one or more of the following indexes +--- to the above File table if your Verifies are +--- too slow, but they can slow down backups. +--- +--- INDEX (PathId), +- +-CREATE TABLE RestoreObject ( +- RestoreObjectId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, +- ObjectName BLOB NOT NULL, +- RestoreObject LONGBLOB NOT NULL, +- PluginName TINYBLOB NOT NULL, +- ObjectLength INTEGER DEFAULT 0, +- ObjectFullLength INTEGER DEFAULT 0, +- ObjectIndex INTEGER DEFAULT 0, +- ObjectType INTEGER DEFAULT 0, +- FileIndex INTEGER UNSIGNED DEFAULT 0, +- JobId INTEGER UNSIGNED NOT NULL REFERENCES Job, +- ObjectCompression INTEGER DEFAULT 0, +- PRIMARY KEY(RestoreObjectId), +- INDEX (JobId) +-); +- + CREATE TABLE MediaType ( + MediaTypeId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, + MediaType TINYBLOB NOT NULL, +@@ -101,13 +44,65 @@ + PRIMARY KEY(DeviceId) + ); + ++CREATE TABLE FileSet ( ++ FileSetId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ++ FileSet TINYBLOB NOT NULL, ++ MD5 TINYBLOB, ++ CreateTime DATETIME DEFAULT NULL, ++ FileSetText BLOB NOT NULL, ++ PRIMARY KEY(FileSetId) ++); ++ ++CREATE TABLE Client ( ++ ClientId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ++ Name TINYBLOB NOT NULL, ++ Uname TINYBLOB NOT NULL, /* full uname -a of client */ ++ AutoPrune TINYINT DEFAULT 0, ++ FileRetention BIGINT UNSIGNED DEFAULT 0, ++ JobRetention BIGINT UNSIGNED DEFAULT 0, ++ UNIQUE (Name(128)), ++ PRIMARY KEY(ClientId) ++); ++ ++CREATE TABLE Pool ( ++ PoolId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ++ Name TINYBLOB NOT NULL, ++ NumVols INTEGER UNSIGNED DEFAULT 0, ++ MaxVols INTEGER UNSIGNED DEFAULT 0, ++ UseOnce TINYINT DEFAULT 0, ++ UseCatalog TINYINT DEFAULT 0, ++ AcceptAnyVolume TINYINT DEFAULT 0, ++ VolRetention BIGINT UNSIGNED DEFAULT 0, ++ VolUseDuration BIGINT UNSIGNED DEFAULT 0, ++ MaxVolJobs INTEGER UNSIGNED DEFAULT 0, ++ MaxVolFiles INTEGER UNSIGNED DEFAULT 0, ++ MaxVolBytes BIGINT UNSIGNED DEFAULT 0, ++ AutoPrune TINYINT DEFAULT 0, ++ Recycle TINYINT DEFAULT 0, ++ ActionOnPurge TINYINT DEFAULT 0, ++ PoolType ENUM('Backup', 'Copy', 'Cloned', 'Archive', 'Migration', 'Scratch') NOT NULL, ++ LabelType TINYINT DEFAULT 0, ++ LabelFormat TINYBLOB, ++ Enabled TINYINT DEFAULT 1, ++ ScratchPoolId INTEGER UNSIGNED DEFAULT 0, ++ RecyclePoolId INTEGER UNSIGNED DEFAULT 0, ++ NextPoolId INTEGER UNSIGNED DEFAULT 0, ++ MinBlockSize INTEGER UNSIGNED DEFAULT 0, ++ MaxBlockSize INTEGER UNSIGNED DEFAULT 0, ++ MigrationHighBytes BIGINT UNSIGNED DEFAULT 0, ++ MigrationLowBytes BIGINT UNSIGNED DEFAULT 0, ++ MigrationTime BIGINT UNSIGNED DEFAULT 0, ++ UNIQUE (Name(128)), ++ PRIMARY KEY (PoolId) ++); ++ + CREATE TABLE Job ( + JobId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, + Job TINYBLOB NOT NULL, + Name TINYBLOB NOT NULL, + Type BINARY(1) NOT NULL, + Level BINARY(1) NOT NULL, +- ClientId INTEGER DEFAULT 0 REFERENCES Client(ClientId), ++ ClientId INTEGER UNSIGNED DEFAULT 0 REFERENCES Client(ClientId), + JobStatus BINARY(1) NOT NULL, + SchedTime DATETIME DEFAULT NULL, + StartTime DATETIME DEFAULT NULL, +@@ -121,9 +116,9 @@ + ReadBytes BIGINT UNSIGNED DEFAULT 0, + JobErrors INTEGER UNSIGNED DEFAULT 0, + JobMissingFiles INTEGER UNSIGNED DEFAULT 0, +- PoolId INTEGER UNSIGNED DEFAULT 0 REFERENCES Pool(PoolId), +- FileSetId INTEGER UNSIGNED DEFAULT 0 REFERENCES FileSet(FileSetId), +- PriorJobId INTEGER UNSIGNED DEFAULT 0 REFERENCES Job(JobId), ++ PoolId INTEGER UNSIGNED DEFAULT 0, ++ FileSetId INTEGER UNSIGNED DEFAULT 0, ++ PriorJobId INTEGER UNSIGNED DEFAULT 0, + PurgedFiles TINYINT DEFAULT 0, + HasBase TINYINT DEFAULT 0, + HasCache TINYINT DEFAULT 0, +@@ -134,6 +129,63 @@ + INDEX (JobTDate) + ); + ++-- We strongly recommend to avoid the temptation to add new indexes. ++-- In general, these will cause very significant performance ++-- problems in other areas. A better approach is to carefully check ++-- that all your memory configuration parameters are ++-- suitable for the size of your installation. If you backup ++-- millions of files, you need to adapt the database memory ++-- configuration parameters concerning sorting, joining and global ++-- memory. By default, sort and join parameters are very small ++-- (sometimes 8Kb), and having sufficient memory specified by those ++-- parameters is extremely important to run fast. ++ ++-- In File table ++-- FileIndex is 0 for FT_DELETED files ++-- Name is '' for directories ++-- The index INDEX (PathId, JobId, FileIndex) is ++-- important for bvfs performance, especially ++-- for .bvfs_lsdirs which is used by bareos-webui. ++CREATE TABLE File ( ++ FileId BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, ++ FileIndex INTEGER UNSIGNED DEFAULT 0, ++ JobId INTEGER UNSIGNED NOT NULL REFERENCES Job, ++ PathId INTEGER UNSIGNED NOT NULL REFERENCES Path, ++ DeltaSeq SMALLINT UNSIGNED DEFAULT 0, ++ MarkId INTEGER UNSIGNED DEFAULT 0, ++ Fhinfo NUMERIC(20) DEFAULT 0, ++ Fhnode NUMERIC(20) DEFAULT 0, ++ LStat TINYBLOB NOT NULL, ++ MD5 TINYBLOB NOT NULL, ++ Name BLOB NOT NULL, ++ PRIMARY KEY (FileId), ++ INDEX (JobId, PathId, Name(255)), ++ INDEX (PathId, JobId, FileIndex) ++); ++ ++-- ++-- Possibly add one or more of the following indexes ++-- to the above File table if your Verifies are ++-- too slow, but they can slow down backups. ++-- ++-- INDEX (PathId), ++ ++CREATE TABLE RestoreObject ( ++ RestoreObjectId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ++ ObjectName BLOB NOT NULL, ++ RestoreObject LONGBLOB NOT NULL, ++ PluginName TINYBLOB NOT NULL, ++ ObjectLength INTEGER DEFAULT 0, ++ ObjectFullLength INTEGER DEFAULT 0, ++ ObjectIndex INTEGER DEFAULT 0, ++ ObjectType INTEGER DEFAULT 0, ++ FileIndex INTEGER UNSIGNED DEFAULT 0, ++ JobId INTEGER UNSIGNED NOT NULL REFERENCES Job, ++ ObjectCompression INTEGER DEFAULT 0, ++ PRIMARY KEY(RestoreObjectId), ++ INDEX (JobId) ++); ++ + -- Create a table like Job for long term statistics + CREATE TABLE JobHisto ( + JobId INTEGER UNSIGNED NOT NULL, +@@ -175,50 +227,13 @@ + PRIMARY KEY(LocationId) + ); + +-CREATE TABLE LocationLog ( +- LocLogId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, +- Date DATETIME DEFAULT NULL, +- Comment BLOB NOT NULL, +- MediaId INTEGER UNSIGNED DEFAULT 0 REFERENCES Media(MediaId), +- LocationId INTEGER UNSIGNED DEFAULT 0 REFERENCES Location(LocationId), +- NewVolStatus ENUM('Full', 'Archive', 'Append', 'Recycle', 'Purged', +- 'Read-Only', 'Disabled', 'Error', 'Busy', 'Used', 'Cleaning') NOT NULL, +- NewEnabled TINYINT, +- PRIMARY KEY(LocLogId) +-); +- +-CREATE TABLE FileSet ( +- FileSetId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, +- FileSet TINYBLOB NOT NULL, +- MD5 TINYBLOB, +- CreateTime DATETIME DEFAULT NULL, +- FileSetText BLOB NOT NULL, +- PRIMARY KEY(FileSetId) +-); +- +-CREATE TABLE JobMedia ( +- JobMediaId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, +- JobId INTEGER UNSIGNED NOT NULL REFERENCES Job, +- MediaId INTEGER UNSIGNED NOT NULL REFERENCES Media, +- FirstIndex INTEGER UNSIGNED DEFAULT 0, +- LastIndex INTEGER UNSIGNED DEFAULT 0, +- StartFile INTEGER UNSIGNED DEFAULT 0, +- EndFile INTEGER UNSIGNED DEFAULT 0, +- StartBlock INTEGER UNSIGNED DEFAULT 0, +- EndBlock INTEGER UNSIGNED DEFAULT 0, +- JobBytes NUMERIC(20) DEFAULT 0, +- VolIndex INTEGER UNSIGNED DEFAULT 0, +- PRIMARY KEY(JobMediaId), +- INDEX (JobId, MediaId) +-); +- + CREATE TABLE Media ( + MediaId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, + VolumeName TINYBLOB NOT NULL, + Slot INTEGER DEFAULT 0, + PoolId INTEGER UNSIGNED DEFAULT 0 REFERENCES Pool(PoolId), + MediaType TINYBLOB NOT NULL, +- MediaTypeId INTEGER UNSIGNED DEFAULT 0 REFERENCES MediaType(MediaTypeId), ++ MediaTypeId INTEGER UNSIGNED DEFAULT 0, + LabelType TINYINT DEFAULT 0, + FirstWritten DATETIME DEFAULT NULL, + LastWritten DATETIME DEFAULT NULL, +@@ -244,19 +259,19 @@ + MaxVolBytes BIGINT UNSIGNED DEFAULT 0, + InChanger TINYINT DEFAULT 0, + StorageId INTEGER UNSIGNED DEFAULT 0 REFERENCES Storage(StorageId), +- DeviceId INTEGER UNSIGNED DEFAULT 0 REFERENCES Device(DeviceId), ++ DeviceId INTEGER UNSIGNED DEFAULT 0, + MediaAddressing TINYINT DEFAULT 0, + VolReadTime BIGINT UNSIGNED DEFAULT 0, + VolWriteTime BIGINT UNSIGNED DEFAULT 0, + EndFile INTEGER UNSIGNED DEFAULT 0, + EndBlock INTEGER UNSIGNED DEFAULT 0, +- LocationId INTEGER UNSIGNED DEFAULT 0 REFERENCES Location(LocationId), ++ LocationId INTEGER UNSIGNED DEFAULT 0, + RecycleCount INTEGER UNSIGNED DEFAULT 0, + MinBlockSize INTEGER UNSIGNED DEFAULT 0, + MaxBlockSize INTEGER UNSIGNED DEFAULT 0, + InitialWrite DATETIME DEFAULT NULL, +- ScratchPoolId INTEGER UNSIGNED DEFAULT 0 REFERENCES Pool(PoolId), +- RecyclePoolId INTEGER UNSIGNED DEFAULT 0 REFERENCES Pool(PoolId), ++ ScratchPoolId INTEGER UNSIGNED DEFAULT 0, ++ RecyclePoolId INTEGER UNSIGNED DEFAULT 0, + EncryptionKey TINYBLOB, + Comment BLOB, + PRIMARY KEY(MediaId), +@@ -264,47 +279,32 @@ + INDEX (PoolId) + ); + +-CREATE TABLE Pool ( +- PoolId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, +- Name TINYBLOB NOT NULL, +- NumVols INTEGER UNSIGNED DEFAULT 0, +- MaxVols INTEGER UNSIGNED DEFAULT 0, +- UseOnce TINYINT DEFAULT 0, +- UseCatalog TINYINT DEFAULT 0, +- AcceptAnyVolume TINYINT DEFAULT 0, +- VolRetention BIGINT UNSIGNED DEFAULT 0, +- VolUseDuration BIGINT UNSIGNED DEFAULT 0, +- MaxVolJobs INTEGER UNSIGNED DEFAULT 0, +- MaxVolFiles INTEGER UNSIGNED DEFAULT 0, +- MaxVolBytes BIGINT UNSIGNED DEFAULT 0, +- AutoPrune TINYINT DEFAULT 0, +- Recycle TINYINT DEFAULT 0, +- ActionOnPurge TINYINT DEFAULT 0, +- PoolType ENUM('Backup', 'Copy', 'Cloned', 'Archive', 'Migration', 'Scratch') NOT NULL, +- LabelType TINYINT DEFAULT 0, +- LabelFormat TINYBLOB, +- Enabled TINYINT DEFAULT 1, +- ScratchPoolId INTEGER UNSIGNED DEFAULT 0 REFERENCES Pool, +- RecyclePoolId INTEGER UNSIGNED DEFAULT 0 REFERENCES Pool, +- NextPoolId INTEGER UNSIGNED DEFAULT 0 REFERENCES Pool, +- MinBlockSize INTEGER UNSIGNED DEFAULT 0, +- MaxBlockSize INTEGER UNSIGNED DEFAULT 0, +- MigrationHighBytes BIGINT UNSIGNED DEFAULT 0, +- MigrationLowBytes BIGINT UNSIGNED DEFAULT 0, +- MigrationTime BIGINT UNSIGNED DEFAULT 0, +- UNIQUE (Name(128)), +- PRIMARY KEY (PoolId) ++CREATE TABLE JobMedia ( ++ JobMediaId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ++ JobId INTEGER UNSIGNED NOT NULL REFERENCES Job, ++ MediaId INTEGER UNSIGNED NOT NULL REFERENCES Media, ++ FirstIndex INTEGER UNSIGNED DEFAULT 0, ++ LastIndex INTEGER UNSIGNED DEFAULT 0, ++ StartFile INTEGER UNSIGNED DEFAULT 0, ++ EndFile INTEGER UNSIGNED DEFAULT 0, ++ StartBlock INTEGER UNSIGNED DEFAULT 0, ++ EndBlock INTEGER UNSIGNED DEFAULT 0, ++ JobBytes NUMERIC(20) DEFAULT 0, ++ VolIndex INTEGER UNSIGNED DEFAULT 0, ++ PRIMARY KEY(JobMediaId), ++ INDEX (JobId, MediaId) + ); + +-CREATE TABLE Client ( +- ClientId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, +- Name TINYBLOB NOT NULL, +- Uname TINYBLOB NOT NULL, /* full uname -a of client */ +- AutoPrune TINYINT DEFAULT 0, +- FileRetention BIGINT UNSIGNED DEFAULT 0, +- JobRetention BIGINT UNSIGNED DEFAULT 0, +- UNIQUE (Name(128)), +- PRIMARY KEY(ClientId) ++CREATE TABLE LocationLog ( ++ LocLogId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, ++ Date DATETIME DEFAULT NULL, ++ Comment BLOB NOT NULL, ++ MediaId INTEGER UNSIGNED DEFAULT 0 REFERENCES Media(MediaId), ++ LocationId INTEGER UNSIGNED DEFAULT 0 REFERENCES Location(LocationId), ++ NewVolStatus ENUM('Full', 'Archive', 'Append', 'Recycle', 'Purged', ++ 'Read-Only', 'Disabled', 'Error', 'Busy', 'Used', 'Cleaning') NOT NULL, ++ NewEnabled TINYINT, ++ PRIMARY KEY(LocLogId) + ); + + CREATE TABLE Log ( +@@ -318,9 +318,9 @@ + + CREATE TABLE BaseFiles ( + BaseId BIGINT UNSIGNED AUTO_INCREMENT, +- BaseJobId INTEGER UNSIGNED NOT NULL REFERENCES Job, +- JobId INTEGER UNSIGNED NOT NULL REFERENCES Job, +- FileId BIGINT UNSIGNED NOT NULL REFERENCES File, ++ BaseJobId INTEGER UNSIGNED NOT NULL, ++ JobId INTEGER UNSIGNED NOT NULL REFERENCES Job(JobId), ++ FileId BIGINT UNSIGNED NOT NULL REFERENCES File(FileId), + FileIndex INTEGER UNSIGNED, + PRIMARY KEY(BaseId) + ); +@@ -360,7 +360,7 @@ + ); + + CREATE INDEX pathhierarchy_ppathid +- ON PathHierarchy (PPathId); ++ ON PathHierarchy (PPathId); + + CREATE TABLE PathVisibility + ( +@@ -376,14 +376,14 @@ + ); + + CREATE TABLE Quota ( +- ClientId INTEGER DEFAULT 0 REFERENCES Client, ++ ClientId INTEGER UNSIGNED DEFAULT 0 REFERENCES Client(ClientId), + GraceTime BIGINT DEFAULT 0, + QuotaLimit BIGINT UNSIGNED DEFAULT 0, + PRIMARY KEY (ClientId) + ); + + CREATE TABLE NDMPLevelMap ( +- ClientId INTEGER DEFAULT 0 REFERENCES Client(ClientId), ++ ClientId INTEGER UNSIGNED DEFAULT 0 REFERENCES Client(ClientId), + FileSetId INTEGER UNSIGNED DEFAULT 0 REFERENCES FileSet(FileSetId), + FileSystem TINYBLOB NOT NULL, + DumpLevel INTEGER NOT NULL, diff --git a/archlinuxaba/bareos/plattforms-archlinux.patch b/archlinuxaba/bareos/plattforms-archlinux.patch new file mode 100644 index 0000000..caa7bd3 --- /dev/null +++ b/archlinuxaba/bareos/plattforms-archlinux.patch @@ -0,0 +1,11 @@ +--- bareos/core/platforms/CMakeLists.txt 2020-02-07 22:05:23.436631465 +0100 ++++ bareosb/core/platforms/CMakeLists.txt 2020-02-07 22:19:25.365678836 +0100 +@@ -31,6 +31,8 @@ + add_subdirectory(univention) + elseif(${DISTNAME} STREQUAL hpux) + message(STATUS "DISTNAME: " ${DISTNAME}) ++ elseif(${DISTNAME} STREQUAL archlinux) ++ message(STATUS "DISTNAME: ", ${DISTNAME}) + else() + add_subdirectory(${DISTNAME}) + endif() diff --git a/archlinuxaba/bareos/restore-form.patch b/archlinuxaba/bareos/restore-form.patch new file mode 100644 index 0000000..9860474 --- /dev/null +++ b/archlinuxaba/bareos/restore-form.patch @@ -0,0 +1,12 @@ +--- bareos/webui/module/Restore/src/Restore/Form/RestoreForm.php 2020-02-21 23:01:23.000000000 +0200 ++++ bareos/webui/module/Restore/src/Restore/Form/RestoreForm.php 2020-04-09 23:28:34.194634728 +0300 +@@ -244,7 +244,8 @@ + )); + } + else { +- if(!empty($this->restore_params['client']) && count($this->getRestoreJobList()) == 1) { ++ // if(!empty($this->restore_params['client']) && count($this->getRestoreJobList()) == 1) { ++ if(!empty($this->restore_params['client']) && count($this->getRestoreJobList()) > 0) { + $this->add(array( + 'name' => 'restorejob', + 'type' => 'select', -- cgit v1.2.3-54-g00ecf