aboutsummaryrefslogblamecommitdiffstats
path: root/community/roundcubemail/APKBUILD
blob: 29e0a31c1ffa9ebd49a15a64d2721d653f452f1b (plain) (tree)
1
2
3
4
5
6
7
8
9
                                                      
                                               

                                                   
            
        

                                     
             
                          




                   



                      
                 



                            
                             
                     
                     
                 
                       
         



                                                                    

                     
                                     
                                                                         
                                                                 
                                                             

                                                                                               
                                
                                              

                      
                          
                      

                                   
 
           

                     

                      
             
                     
 



                                                    








                                                            

                                      
           

                       
 


                                                    
                 
                                             
                        


                                                    













                                                                     

 
           

                             



                                         
 



                                                                              
                                     


                                                                         
            

                                                               
                                                                                

                                                                                 
                                                                       










                                                                         
 


                                                
                                           



                                                                 















                                                                                    


















                                                                        









                                                                                     



                                                                

 
                                                                                                                                                                        
                                                                                                                                                
                                                                                                                                                          
                                                                                                                                                                        
                                                                                                                                               
                                                                                                                                                     

                                                                                                                                                         
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=roundcubemail
pkgver=1.3.6
pkgrel=1
pkgdesc="A PHP web-based mail client"
url="http://www.roundcube.net"
arch="noarch"
license="GPL-3.0-or-later"
_php=php7
depends="$_php
	$_php-dom
	$_php-exif
	$_php-iconv
	$_php-intl
	$_php-json
	$_php-mbstring
	$_php-openssl
	$_php-pdo
	$_php-pear-auth_sasl
	$_php-pear-mail_mime
	$_php-pear-net_idna2
	$_php-pear-net_smtp
	$_php-pear-net_socket
	$_php-session
	$_php-sockets
	$_php-xml
	ca-certificates
	"
_depends_managesieve="$_php-pear-net_sieve"
_depends_zipdownload="$_php-zip"
# Install plugins' deps during build just to verify that they exist.
makedepends="$_depends_managesieve"
pkgusers="roundcube"
pkggroups="$pkgusers"
options="!check"  # no tests provided
install="$pkgname.pre-install $pkgname.post-install $pkgname.post-upgrade
	$pkgname-openrc.post-install $pkgname-pgsql.post-install"
subpackages="$pkgname-installer $pkgname-openrc $pkgname-doc"
source="https://github.com/roundcube/$pkgname/releases/download/$pkgver/$pkgname-$pkgver.tar.gz
	fix-dirs.patch
	config-session_key.patch
	config-disable-remote-spellcheck.patch
	fpm-pool.conf
	$pkgname.confd
	$pkgname.logrotate
	$pkgname.daily
	"
builddir="$srcdir/$pkgname-$pkgver"

# secfixes:
#   1.3.6-r0:
#     - CVE-2018-9846
#   1.2.7-r0:
#     - CVE-2017-16651
#   1.2.5-r0:
#     - CVE-2017-8114

for _db in mssql mysql pgsql sqlite; do
	subpackages="$subpackages $pkgname-$_db:_db"
done

# List of plugins to move into subpackages.
_plugins="
	managesieve
	zipdownload
	"
for _plugin in $_plugins; do
	subpackages="$subpackages $pkgname-$_plugin:_plugin"
done

_destdir="usr/share/webapps/roundcube"

prepare() {
	cd "$builddir"
	default_prepare

	# remove .htaccess
	find . -name \.htaccess -print | xargs rm -f

	# cleanup
	sed -i 's/\r//' SQL/mssql.initial.sql
	rm -rf logs temp

	# Useless 'cause there's no FOSS PDO driver.
	rm -R SQL/oracle*

	cd bin

	# Remove development scripts.
	rm -f cssshrink.* dumpschema.* install-jsdeps.* installto.* \
		jsshrink.* makedoc.*

	# These are all PHP files, not shell scripts!
	local file; for file in *.sh; do
		mv $file ${file%.sh}.php
	done

	# Fix shebang.
	sed -i "s|/usr/bin/env php|/usr/bin/env $_php|" *.php
}

package() {
	local config plugname

	mkdir -p "$pkgdir/$_destdir"
	cd "$pkgdir"

	cp -rp "$builddir"/* ./$_destdir/

	# Install config in /etc/roundcube so config files are not overwritten
	# on upgrades.
	mkdir -p ./etc/
	mv ./$_destdir/config ./etc/roundcube
	mkdir ./etc/roundcube/plugins

	local file; for file in CHANGELOG INSTALL README.md UPGRADING; do
		_mv ./$_destdir/$file ./usr/share/doc/roundcube/
	done
	_mv ./$_destdir/LICENSE ./usr/share/licenses/roundcube/

	install -m 755 -D "$srcdir"/$pkgname.daily ./etc/periodic/daily/$pkgname
	install -m 644 -D "$srcdir"/$pkgname.logrotate ./etc/logrotate.d/$pkgname

	install -d -m 750 -o roundcube -g roundcube ./var/log/roundcube

	# Copy plugin configs into /etc and symlink them back.
	cd ./$_destdir/plugins
	for config in */config.inc.php.dist; do
		plugname=${config%/*}

		install -m 644 -g roundcube $config -D \
			"$pkgdir"/etc/roundcube/plugins/$plugname.inc.php
		ln -s /etc/roundcube/plugins/$plugname.inc.php \
			$plugname/config.inc.php
	done
}

installer() {
	pkgdesc="Roundcubemail installer script"
	depends="$pkgname=$pkgver-r$pkgrel"

	_mv "$pkgdir"/$_destdir/installer "$subpkgdir"/$_destdir/
}

openrc() {
	pkgdesc="OpenRC init script that runs Roundcube with php-fpm"
	depends="$pkgname=$pkgver-r$pkgrel $_php-fpm"

	local confdir="$subpkgdir/etc/$_php/php-fpm.d"
	local fpm_name="php-fpm${_php#php}"

	install -m 644 -D "$srcdir"/fpm-pool.conf "$confdir"/roundcube.conf
	install -m 644 -D "$srcdir"/$pkgname.confd "$subpkgdir"/etc/conf.d/roundcube

	mkdir -p "$subpkgdir"/etc/init.d
	ln -s $fpm_name "$subpkgdir"/etc/init.d/roundcube

	install -m 700 -o roundcube -g roundcube -d "$subpkgdir"/var/tmp/roundcube
}

_db() {
	local subname=${subpkgname#$pkgname-}
	local driver="$subname"
	local rcname="$subname"
	local desc

	case "$subname" in
		mssql) desc="MS SQL" driver=dblib;;
		mysql) desc="MariaDB";;
		pgsql) desc="PostgreSQL" rcname="postgres";;
		sqlite) desc="SQLite";;
	esac

	pkgdesc="$pkgdesc ($desc DB)"
	depends="$pkgname=$pkgver-r$pkgrel $_php-pdo_${driver}"

	_mv "$pkgdir"/$_destdir/SQL/$rcname* "$subpkgdir"/$_destdir/SQL/
}

_plugin() {
	local name="${subpkgname#$pkgname-}"
	pkgdesc="$pkgdesc ($name plugin)"
	depends="$pkgname=$pkgver-r$pkgrel $(eval "echo \$_depends_$name")"

	cd "$pkgdir"
	_mv ./$_destdir/plugins/$name "$subpkgdir"/$_destdir/plugins/
	_mv ./etc/roundcube/plugins/$name.inc.php "$subpkgdir"/etc/roundcube/plugins/
}

_mv() {
	local dest; for dest; do true; done  # get last argument
	mkdir -p "$dest"
	mv $@
}

sha512sums="c5e1e80034392ea4fcf780750ad2b7db43422a746462015865cbdb027e9e47b2bae7b191da19b65a7b9303c195bdfd0aa5b5a0382c09dd97d117671271cdc122  roundcubemail-1.3.6.tar.gz
d205ba8442870b26f93fb287e7fe2bd1a452ea534823869b7ef299e2dca52d64c8a3fdc9a44bd3bc731c1e400efcf745c1866974e3b908e4e54d05b47b835f3e  fix-dirs.patch
7c4b88da4d2baa53d247dcb7b130d564954a04611c13f2770f45924fafab2a0e98f8dd078cabc87f3eddd0ab03f3ca48a48f27a462676354af22566cb19d220b  config-session_key.patch
e46cdded33114ee7dae671d936cc41551168df29778dbf18f848a4f0eb0738a54c0751a5689716ba126ac256f2a50284afdcde542a42827003d6ba89af94f064  config-disable-remote-spellcheck.patch
c88d609e94c212215a24f54d2a2cb800d4a382b1044e0c875416bdda6a4e6c0cb896675918e8d24f3ed9e1b677d526d61f3ee1564cb870f674dac687696e8ba4  fpm-pool.conf
acaa76bfbba6117172a02ad11e39f9b55838895104e75180b057f647156c04fd2e44ac695a333f2332691d19bac5ef8afaca1f89ad409800b19f78afbb40aecb  roundcubemail.confd
2e923d556d46bd7dc9360c3190fa1c5864bd0385fadaf73dacee5780cdad94ce09bc8462ccc05c3ca70bc7890aa1f1b3314a3cc831eab9d5b06c5a463483ccf7  roundcubemail.logrotate
1eca0dba4ad2bab2d2e849a13fb8752ef6a7f3fd19522d5a32600923d575983dcf873a13a338ddfc100e6d1a50151fd717b926f3a33903920398d69c9c495564  roundcubemail.daily"