aboutsummaryrefslogblamecommitdiffstats
path: root/community/nextcloud/APKBUILD
blob: 168f996339d15b5e7a0a203cfa7a21efcaa17ced (plain) (tree)
1
2
3
4
5
6
7
8
9
                                                     
                                               
                 
             
        


                                       
                       
         
                                                                          
                                                                                
                                                      
                        

                                       

                                                       

                                                                        
                                                                                           
                                            
                                                                           
                                    
                                  
                                                
                                            
                                                
                                                  
 

                           
                      
                     
                     
           
         
                
                    
                    
                           
 
                                                                     

                                                                           



                   















                               













                                                            

                                            

           

                                        








                                                 



                                       


                                                                               
                                             
 


                                                                                          

                                                     

                                                    



                                                                           
 



                                         


                                                           

                                                                   
 

                                                                                 
                                                     
 






                                                             

 







                                                                     

                                                              
                                    





                                                                                   
                                                                                          






                                                                    
         
                                              
                                                      
                             


          
                                          
                                                         
                             


         
                                         
                                          
                             

 

                                        
                          
 




                                                                                
 
                             

 
                
                                               






                                                                                         
                         
 
                          


                                                                                    








                                                                       
 

                                                             
                                       
                                                               

 
                                                                                                                                                                  
                                                                                                                                                              
                                                                                                                                                            

                                                                                                                                                                          
                                                                                                                                                                          
                                                                                                                                                                            
                                                                                                                                                      
                                                                                                                                                     
                                                                                                                                                 
                                                                                                                                                
                                                                                                                                               
                                                                                                                                      
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
pkgname=nextcloud
pkgver=14.0.1
pkgrel=0
pkgdesc="A safe home for all your data"
url="http://nextcloud.com"
arch="noarch"
license="AGPL-3.0-only"
_php=php7
_php_mods="-ctype -curl -dom -gd -fileinfo -iconv -json -mbstring -openssl
	-pcntl -posix -session -simplexml -xml -xmlreader -xmlwriter -zlib -zip"
depends="ca-certificates $_php ${_php_mods//-/$_php-}"
makedepends="xmlstarlet"
provides="$pkgname-dav=$pkgver-r$pkgrel
	$pkgname-files=$pkgver-r$pkgrel
	$pkgname-provisioning_api=$pkgver-r$pkgrel
	$pkgname-federatedfilesharing=$pkgver-r$pkgrel"
install="$pkgname.pre-install $pkgname.pre-upgrade $pkgname.post-upgrade
	$pkgname-initscript.post-install"
subpackages="$pkgname-doc $pkgname-initscript $pkgname-mysql $pkgname-pgsql $pkgname-sqlite
	$pkgname-default-apps:_default_apps"
source="https://download.nextcloud.com/server/releases/$pkgname-$pkgver.zip
	nextcloud14-dont-chmod.patch
	dont-update-htaccess.patch
	disable-integrity-check-as-default.patch
	app-encryption-info-add-mcrypt.patch
	iconv-ascii-translit-not-supported.patch
	use-external-docs-if-local-not-avail.patch

	$pkgname-config.php
	$pkgname.logrotate
	$pkgname.confd
	$pkgname.cron
	fpm-pool.conf
	occ
	"
options="!check"
pkgusers="nextcloud"
pkggroups="www-data"
builddir="$srcdir"/$pkgname

# List of bundled apps to separate into subpackages. Keep it in sync!
# Note: Don't add "files", "dav", and "provisioning_api" here, these should
# be always installed.
_apps="activity
	admin_audit
	comments
	encryption
	federation
	files_external
	files_pdfviewer
	files_sharing
	files_texteditor
	files_trashbin
	files_versions
	files_videoplayer
	firstrunwizard
	gallery
	logreader
	lookup_server_connector
	nextcloud_announcements
	notifications
	oauth2
	password_policy
	serverinfo
	sharebymail
	survey_client
	systemtags
	theming
	twofactor_backupcodes
	user_external
	user_ldap
	workflowengine
	"
for _i in $_apps; do
	subpackages="$subpackages $pkgname-$_i:_package_app"
done

# Directory for apps shipped with Nextcloud.
_appsdir="usr/share/webapps/$pkgname/apps"

package() {
	local basedir="var/lib/$pkgname"
	local datadir="$basedir/data"
	local wwwdir="usr/share/webapps/$pkgname"
	local confdir="etc/$pkgname"

	mkdir -p "$pkgdir"
	cd "$pkgdir"

	mkdir -p ./${wwwdir%/*}
	cp -a "$builddir" ./$wwwdir

	chmod +x ./$wwwdir/occ
	chmod 664 ./$wwwdir/.htaccess \
		./$wwwdir/.user.ini

	# Let's not ship upstream's 'updatenotification' app and updater, which
	# has zero chance of working and a big chance of blowing things up.
	rm -r ./$wwwdir/apps/updatenotification \
		./$wwwdir/lib/private/Updater

	# Replace bundled CA bundle with ours.
	ln -sf /etc/ssl/certs/ca-certificates.crt ./$wwwdir/resources/config/ca-bundle.crt

	install -d -m 770 -o nextcloud -g www-data \
		./$confdir ./$datadir ./$basedir/apps
	install -d -m 775 -o nextcloud -g www-data \
		./var/log/$pkgname

	# Create symlink from web root to site-apps, so web server can find
	# assets w/o explicit configuration for this layout.
	ln -s /$basedir/apps ./$wwwdir/apps-appstore

	mv ./$wwwdir/config/* ./$confdir/
	rm -r ./$wwwdir/config
	ln -s /$confdir ./$wwwdir/config

	mkdir -p ./usr/share/doc/$pkgname
	mv ./$wwwdir/core/doc ./usr/share/doc/$pkgname/core

	install -m 660 -o nextcloud -g www-data \
		"$srcdir"/$pkgname-config.php ./$confdir/config.php

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

	install -m 755 -D "$srcdir"/occ ./usr/bin/occ

	# Clean some unnecessary files.
	find . -name .gitignore -delete \
		-o -name .bower.json -delete \
		-o -name 'README*' -delete \
		-o -name 'CHANGELOG*' -delete \
		-o -name 'CONTRIBUTING*' -delete
	find . -name .github -type d -prune -exec rm -r {} \;
}

doc() {
	default_doc

	local target="$subpkgdir"/usr/share/webapps/$pkgname/core/doc
	mkdir -p "${target%/*}"
	ln -s ../../../doc/$pkgname/core "$target"
}

initscript() {
	pkgdesc="Init script that runs Nextcloud with php-fpm"
	depends="$pkgname $_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"/$pkgname.conf
	install -m 644 -D "$srcdir"/$pkgname.confd "$subpkgdir"/etc/conf.d/$pkgname
	install -m 755 -D "$srcdir"/$pkgname.cron "$subpkgdir"/etc/periodic/15min/$pkgname

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

	install -m 700 -o nextcloud -d "$subpkgdir"/var/tmp/$pkgname
}

pgsql() {
	pkgdesc="Nextcloud PostgreSQL support"
	depends="$pkgname $_php-pgsql $_php-pdo_pgsql"
	mkdir -p "$subpkgdir"
}

sqlite() {
	pkgdesc="Nextcloud SQLite support"
	depends="$pkgname $_php-sqlite3 $_php-pdo_sqlite"
	mkdir -p "$subpkgdir"
}

mysql() {
	pkgdesc="Nextcloud MySQL support"
	depends="$pkgname $_php-pdo_mysql"
	mkdir -p "$subpkgdir"
}

_default_apps() {
	pkgdesc="Nextcloud default apps"
	depends="$pkgname"

	local path; for path in "$pkgdir"/$_appsdir/*; do
		if grep -q '<default_enable\s*/>' "$path"/appinfo/info.xml; then
			depends="$depends $pkgname-${path##*/}"
		fi
	done

	mkdir -p "$subpkgdir"
}

_package_app() {
	local appname="${subpkgname#$pkgname-}"
	local appinfo="$pkgdir/$_appsdir/$appname/appinfo/info.xml"

	local name=$(xmlstarlet sel -t -v 'info/name/text()' "$appinfo")
	pkgdesc="Nextcloud ${name:-$appname} app"

	local php_deps=$(xmlstarlet sel -t -v 'info/dependencies/lib/text()' "$appinfo" \
		| xargs -r -n1 printf "$_php-%s\n")
	local app_deps=""

	case "$appname" in
		files_sharing) app_deps="-federatedfilesharing";;

		# XXX: Provides/replaces for backward compatibility with <12.0.0-r2.
		files_pdfviewer | files_texteditor | files_videoplayer)
			provides="$pkgname-${appname#files_}"
			replaces="$provides"
		;;
		user_ldap)
			provides="$pkgname-ldap"
			replaces="$provides"
		;;
	esac

	depends="$pkgname $php_deps ${app_deps//-/$pkgname-}"

	mkdir -p "$subpkgdir"/$_appsdir
	mv "$pkgdir"/$_appsdir/$appname "$subpkgdir"/$_appsdir/
}

sha512sums="06808b9f790cfba685161db4c8e10e6973fc1fb52223f974b312eaa0407ab449957d6c8fc8578c0c27fd8d71a94e61cff6a1acdeba852b0568cfbb35bf7ddbd0  nextcloud-14.0.1.zip
63690b8d8ffe6d4896c5b666aa9d493b501aa3e171c6557e7a003599049f0d36f266a2a257a9535dea055bca1e84208b219c6cd5e4ecd70dd064e1dd1007203a  nextcloud14-dont-chmod.patch
aef3c92497d738d6968e0f0b0d415b4953500db24ae14af41ef972665cf7eff00cb6c53dc953845fdbb389c3c965a75b8b14b9247513c05cf4130fe1cfc61731  dont-update-htaccess.patch
ebeabf850761348346c1e10a60a6f67771a30efc308e4f776f1455f8b48ee357c51c4821e1db92453f1548345a5c6005ea0eb642fb6a4fd0ee910c68a65e3290  disable-integrity-check-as-default.patch
7dd7113ab34aedea23b377e465b39f20123495c83eae4e4b0120bc843b124a25930c2ff27617c11615e6ad987257005a1eaf59c7f57b88f0878c8d00cbef5f55  app-encryption-info-add-mcrypt.patch
7d60ba2f1c012b0a1cded30f757b7ec0efe7fc4bfa7b5c6879f35eb80711ac1d5e6c894356346222a0de68b0808c99bac358aaae1c69124a855da2a98cdff6ec  iconv-ascii-translit-not-supported.patch
478f5cd7c5d30380ea619d3e8ec623217a06a09b27534266f00297545c7d276b068c5d984673eebc5676e8bac7f45112549498944ce3fa678ac8a69541d7c430  use-external-docs-if-local-not-avail.patch
5f73cd9399fa484ef15bd47e803c93381deffbc7699eceadbb5c27e43b20156806d74e5021a64d28f0165ef87b519e962780651711a37bceb9f0b04455dfdce1  nextcloud-config.php
f224d72799ee5819979089eb58978225454223bee597c938681a4f6279eb49297fe9250ac54ccf8bcb33ae262bce43d085affb77723492ee662263710d4008c9  nextcloud.logrotate
dcc57735d7d4af4a7ebbdd1186d301e51d2ae4675022aea6bf1111222dfa188a3a490ebd6e7c8a7ac30046cb7d93f81cec72a51acbc60d0c10b7fb64630c637a  nextcloud.confd
edb699ea6127b231793254115b334006c2d50a0d2ecc846188c3521ddffc3c0e19c5e2944f03cae81e6c645c859258380691081b1c522a22d40939b31db36e8a  nextcloud.cron
ee9073a6df4286cba2d1d855cf40863968f20677729b2c7848ab50a70d4915b8e84c957a850a03a707231256c11312e5792e7817dd50afbf73efe767fef2112d  fpm-pool.conf
959852e34f010e635470829d66713f3e22c47717ec2c6487759eed2b6aeff9fd1421fe0271d494a02781bd1c98beb2823583623ee2cf03057cd5db794627d6c2  occ"