aboutsummaryrefslogblamecommitdiffstats
path: root/main/bacula/APKBUILD
blob: b2de02cd88b2d8ada3de2f9b74b5336c29b03762 (plain) (tree)
1
2
3
4
5
6
7
8
9
                                                   
                                                     
              
            
        
                                                        
                            
          
                           
                                                                                    
                                                       
                                                    

                                                                       

                  
                              
                                                                                                   


                        
                                       
         
                                        
                                   
 

                             
            
                       
 
                               
                                    


         

                      



                                 
                                            



                                           

                                                    
                                                 






                                                     




                                                        
                                          
                                            
                                     

                                      
 
                     


           

                      

                                      
                                                 
                                                                   
                                                               
            
 
                                                  
                                                        
 
                             
                                                     
                                                        
 
                                  
                                                                         
                                                     
                                                  
 
                                                             
                                                                
                                                        
 



                                                            
          
                                                        
            
 
                                                                 



                                     
                                                  
 
                                                           
                                    
 
                                                                        
                                            

                                                            

                                                    



                                      
                          
 




                                      
                          
                           
 
                              

                  
                                                                       
                                                   
          
                                                                      
            



                                       
                          
 
                           

 







                                                   
                                        


                                                               

                                                                


                                                                             

 
                                                                                                                                                                 

                                                                                                                                                  
                                                                                                                                                 
                                                                                                                                                                  
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=bacula
pkgver=9.4.4
pkgrel=3
pkgdesc="Enterprise ready, network based backup program"
url="https://www.bacula.org"
arch="all"
license="AGPL-3.0-or-later"
makedepends="autoconf mariadb-connector-c-dev ncurses-dev openssl-dev postgresql-dev
	sqlite-dev zlib-dev lzo-dev acl-dev postgresql"
install="$pkgname.pre-install $pkgname.post-upgrade"
subpackages="$pkgname-doc $pkgname-mysql $pkgname-pgsql $pkgname-sqlite
	$pkgname-client $pkgname-libs"
pkgusers="bacula"
pkggroups="bacula"
somask="libbaccats-$pkgver.so"
source="https://downloads.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz
	bacula-dir.initd
	bacula-sd.initd
	bacula-fd.initd
	bacula-7.4.0-path-mounted.patch
	"
options="!check" #no test suite provided
builddir="$srcdir/$pkgname-$pkgver"

_bworkdir="/var/lib/$pkgname"

prepare () {
	default_prepare

	cd "$builddir"/autoconf
	autoconf && cp configure ../
}

build() {
	cd "$builddir"

	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc/$pkgname \
		--localstatedir=/var \
		--mandir=/usr/share/man \
		--docdir=/usr/share/doc \
		--infodir=/usr/share/info \
		--with-pid-dir=/run/$pkgname \
		--with-subsys-dir=/run/lock/subsys \
		--with-logdir=/var/log/$pkgname \
		--enable-largefile \
		--enable-smartalloc \
		--disable-nls \
		--with-openssl=/usr/include/openssl \
		--with-postgresql \
		--with-mysql \
		--with-sqlite3 \
		--with-scriptdir=/etc/$pkgname/scripts \
		--with-working-dir=$_bworkdir \
		--with-dir-user=$pkgname \
		--with-dir-group=$pkgname \
		--with-archivedir=$_bworkdir/archive \
		--with-sd-user=$pkgusers \
		--with-sd-group=$pkggroups \
		--with-fd-user=root \
		--with-fd-group=root \
		--with-sbin-perm=0755

	make NO_ECHO=
}

package() {
	cd "$builddir"

	make DESTDIR="$pkgdir" install

	local daemon; for daemon in dir sd fd; do
		install -Dm755 "$srcdir"/$pkgname-${daemon}.initd \
			"$pkgdir"/etc/init.d/$pkgname-${daemon}
	done

	install -Dm644 examples/sample-query.sql \
		"$pkgdir"/etc/$pkgname/scripts/query.sql

	# Fix correct log dir
	sed -i 's%/var/bacula/log%/var/log/bacula%' \
		"$pkgdir"/etc/$pkgname/$pkgname-dir.conf

	# Install logrotate script
	install -Dm644 scripts/logrotate $pkgdir/etc/logrotate.d/$pkgname
	sed -i 's%/var/bacula/log%/var/log/bacula%' \
		"$pkgdir"/etc/logrotate.d/$pkgname

	# Use shell script for catalog backup instead of perl
	sed -i 's/make_catalog_backup.pl/make_catalog_backup/' \
		"$pkgdir"/etc/$pkgname/$pkgname-dir.conf

	local dir; for dir in $_bworkdir \
		/etc/$pkgname/scripts/make_catalog_backup* \
		/etc/$pkgname/scripts/mtx-changer* \
		/etc/$pkgname/*.conf
	do
		chown $pkgusers.$pkggroups "$pkgdir"$dir
	done

	find "$pkgdir"/usr/lib -iname libbaccats* -type l -delete
}

_mv_backend() {
	mkdir -p "$subpkgdir"/usr/lib
	mkdir -p "$subpkgdir"/etc/$pkgname/scripts

	mv "$pkgdir"/usr/lib/libbaccats-${1}-${pkgver}.so \
		"$subpkgdir"/usr/lib

	ln -s libbaccats-${pkgver}.so "$subpkgdir"/usr/lib/libbaccats.so
	ln -s libbaccats-${1}-${pkgver}.so \
		"$subpkgdir"/usr/lib/libbaccats-${pkgver}.so

	mv "$pkgdir"/etc/$pkgname/scripts/*_${1}_* \
		"$subpkgdir"/etc/$pkgname/scripts
}

mysql() {
	pkgdesc="Bacula MySQL backend"
	depends="$pkgname"

	_mv_backend mysql
}

pgsql() {
	pkgdesc="Bacula PGSQL backend"
	depends="$pkgname"
	pkgusers="postgres"

	_mv_backend postgresql

	local file
	for file in create_postgresql_database make_postgresql_tables \
			grant_postgresql_privileges
	do
		chown postgres "$subpkgdir"/etc/$pkgname/scripts/$file
	done
}

sqlite() {
	pkgdesc="Bacula SQLite backend"
	depends="$pkgname"

	_mv_backend sqlite3
}

libs() {
	pkgdesc="Bacula libraries"
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/* "$subpkgdir"/usr/lib
}

client() {
	pkgdesc="Bacula client"
	mkdir -p "$subpkgdir"/usr/sbin \
		"$subpkgdir"/etc/init.d \
		"$subpkgdir"/etc/$pkgname
	for bin in $pkgname $pkgname-fd bconsole btraceback; do
		mv "$pkgdir"/usr/sbin/$bin "$subpkgdir"/usr/sbin
	done
	mv "$pkgdir"/etc/init.d/$pkgname-fd "$subpkgdir"/etc/init.d
	mv "$pkgdir"/etc/$pkgname/$pkgname-fd.conf "$subpkgdir"/etc/$pkgname/
	install -d -o $pkgname -g $pkgname "$subpkgdir"/$_bworkdir
}

sha512sums="f973c9ab8ee9867962645b1a1388b494fd402c990be8128b892e043e16361bff2fc08ec43e2c8c9bebeae9c94afd3fdbc04a610b35f99e7dd054ed1ad2c04b31  bacula-9.4.4.tar.gz
bb954bb94bffa68ba80872046782a73012487291f019fb8d7ff77fc7f4325e25bee88612b3279b4db7d3c2002ac7448ffabcda62da7bab54642a7413904abc91  bacula-dir.initd
0505b9a74520af6982d5df4390525976f8e009e641d0acfe8f24b2ec9f155166a65eecbabee9ff70ffe188d523effa64f958acd8f657410b1c002a6d736e8aee  bacula-sd.initd
91a53cb566cfd91b42a319bd6ff9947047cae187c6ec198767853d1a0253667d6c2c58f0e72ed43a7b9f40b76e705cafde7a1d6ac86577fa0f64f44b031dec11  bacula-fd.initd
2d3757236aacca421261a8866ff04b5b0151538e1462559bd1240119b1bece1d456acbba9fee86dbc6aaec7af2a52eb2c0b7490c5f371b7deb478731c74342ff  bacula-7.4.0-path-mounted.patch"