# Maintainer: Sergej Pupykin # Maintainer: David Runge pkgname=nextcloud # NOTE: always check first whether the version is supposed to be packaged: # https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule pkgver=25.0.4 pkgrel=1 pkgdesc="A cloud server to store your files centrally on a hardware controlled by you" arch=(any) url="https://nextcloud.com" license=(AGPL3) makedepends=(php) optdepends=( 'curl: for webcron jobs from within uwsgi' 'ffmpeg: for preview generation' 'libreoffice: for preview generation' 'mariadb: to use a local MariaDB server' 'memcached: to use a local memcached server' 'mod_itk: to use the Apache web server' 'postgresql: to use a local PostgreSQL server' 'redis: to use a local Redis server' 'smbclient: for SMB/CIFS integration' 'sudo: for privilege elevation in occ command when not run as root' ) backup=( etc/webapps/$pkgname/config/config.php etc/webapps/$pkgname/.htaccess etc/uwsgi/$pkgname.ini ) # there are no elf files, no need to strip anything options=(!strip) install=$pkgname.install source=( https://download.nextcloud.com/server/releases/$pkgname-$pkgver.tar.bz2{,.asc} apache.example.conf $pkgname.config.php $pkgname.hook $pkgname.occ.sh $pkgname.sysusers $pkgname.tmpfiles $pkgname.uwsgi $pkgname-cron.service $pkgname-cron.timer ) sha512sums=('0a9a6a2cc26951ede77509926fd6192668d140559daaa49611e8f9d592ccec39f22c7289d2d55794885afc7665bfb6f5eae43a0e6d160954b21c3e236da944e5' 'SKIP' '5f9be223225e6ad2772989c440df8585a852ea0be697274384064ec73df47dab2f5d0847c275732fab26c419a713911d8f77ebc2b639bf6e8ede76272b752cde' '92592f9a76ee534d0ae6d3aedf2257c147337debe7e2d6dbec1daff66a682e3abc74611e08662058de314bf3ea6ff1c85efd678674b782d71251c38786e446f9' '2791382d7b005c64cd6938695f273e83435cc5f1b785fe7d44d6dbd69864c502847e45d93c4a5f6752a759a660118279e3e22e5bc32f79b8775693fde603a9c5' '0bd4fc8f80b36ad40cfd6475aa3bb82c6055b8349bac0a6904f5b829932dbab08ff9f11596f274ef5d5efccd579edff984607170bee970dd8d49375d8fdd2ea1' '1d06f339c43d57e5f5406c2698b815241fd9e39039a9e55f777face510c9a5ddae5ccd4e051393e8f16f391301a6aa03fff2462837a2d3441d969ea7195e7d84' '919008a2bf6cf2492cb1e9c8e28c1e082d74e45da5a96e6669f8971d6cf721e36d23625c89918fe10d8bc1b202c0340aa897849d9ec501a26f3f4572ccb57a98' '532737bc6c9fb4af4c6d34ac5ce488451d21847b89acbfe74ce9775b038ace274bb0039ed59e76ab48269c444248b7c906a79d3f327a6cc09a766f81b2270dd2' '66f542d8b84701d81e6f6d896163faa232996ee081bcabe4acc121064ef538b5c1ea43728222b5cadc60a5d433b1e54ad7c1fe9d1d188ffa8eaf331fd4cd8ec0' 'eb69785a5b0df0e2a11f53f9c2e2dbf75681d7c698e88cbcc5ceed713a558d528511cc576813cc083cbaa28a2c83d543a39436ad4805670348ef22634305b1c8') b2sums=('b349cea558ef2b1925da19713b76553076d57ee9e2fd07123796c0f329e139ccfb66c3e113ddb4bcdb7841d5e61eb1237748fd1c38216f7ae43c006e87730deb' 'SKIP' '7d40d120c28291f1a7537f3e1b5049fa83c9c0af949371345ea9ccdf3de4a0f3a3a06edbc52d9254dba483e4d11acf562cf679b9e379c5dfc2f61dfbfc2e4cef' '4ad061efbc20b4d0e9f8cfd01c5e8e612fa5af29bce754b77f90c1835b98ee445ef4de3d8c83da91461053622620af14d880eb9014b51f2383c75f1860d479f4' 'c69f18de513562e32f0f655fee7ef81877d74a76717e2eaad9a13882bf8edd0dad99bec5958e460a4ec32eecfdd425ae009d11ac27af16a3ad1d6498282be32f' '43aeee02f45335088f9e4bb3893c8344ae63f0e7504246c033e74a785de07a661a78eb791f4313bf1d51f4dffacb3a14876c7f5ea4e339af9d199d1a501d6588' '1a61a89531636b65dade03cd7edca8747b3e1e880f9bbd4d5a53cffa452d70fe17e345cfed739ae92e99e336d4c1f2633c84a5c84a4ee6da518762bf1396b1db' 'd132044cb7f1d61a1ce87800d2e1142e3ac385acdec25e2f5ad685603a0ffa88e105f4c35688584d65d287adbb40b8d9a02d6a80d7a0b58bb8801a6769405218' '2b73e7bed7d1a0e5eb735fe4168708a46aa00cf4d56241d0e3b4e5cf753f4f6a1f259875011a30a764ac43c5cb051ba311bbf3e4ea7e4e2b21595ca7bf1419b9' 'a84fbdc9b5caf28eae6bfb147ea0c77e4cfc5a42f29b3fe93c0ecf8414f95ed20999a131efb7c7ba49041304fe7104813c574e6b5aaa6b03881aea3428144f33' 'e6214351ca16bfe97683e838e727d6b5eaa62194878272204034c62aac4a632c9b33cd31aa0570c2eb936d7e9e7ff60190ac05a3a8cc2e27eda423a7d89b6d39') validpgpkeys=('28806A878AE423A28372792ED75899B9A724937A') # Nextcloud Security prepare() { local _file truncate -s 0 nextcloud/lib/versioncheck.php # setup custom files with default PHP interpreter, etc. install -vDm 644 nextcloud.{occ.sh,uwsgi} nextcloud-cron.service -t custom_files/ for _file in custom_files/*; do sed -e "s/PHP_INTERPRETER/php/g;s/UWSGI_PLUGIN/php/g" -i $_file done } package() { depends=("php") # NOTE: this sets a custom php postfix based on whether php-legacy needs to be used depends+=("php-gd") # NOTE: due to weird makepkg checks we can't add optdepends with dynamically derived contents directly _optdepends=( "php-apcu: for caching with APCU" "php-apache: to use the Apache web server" "php-fpm: to run in fastCGI process manager" "php-imagick: for preview generation" "php-imap: for external user authentication" "php-intl: to increase language translation performance and fix sorting" "php-memcached: for caching with memcached" "php-pgsql: to use the PostgreSQL database backend" "php-redis: for caching with redis" "php-sqlite: to use the SQLite database backend" "uwsgi-plugin-php: run as application container" ) optdepends+=("${_optdepends[@]}") cd $pkgname # sysusers.d integration install -vDm 644 ../$pkgname.sysusers "$pkgdir/usr/lib/sysusers.d/$pkgname.conf" # tmpfiles.d integration install -vDm 644 ../$pkgname.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf" # state dir for data and writable apps install -vdm 755 "$pkgdir/var/lib/$pkgname/" install -vdm 770 "$pkgdir/var/lib/$pkgname/data" install -vdm 755 "$pkgdir/var/lib/$pkgname/apps" # log dir install -vdm 755 "$pkgdir/var/log/$pkgname/" # uwsgi integration install -vDm 644 ../custom_files/$pkgname.uwsgi "$pkgdir/etc/uwsgi/$pkgname.ini" # config dir install -vDm 644 .htaccess -t "$pkgdir/etc/webapps/$pkgname/" install -vDm 640 ../$pkgname.config.php "$pkgdir/etc/webapps/$pkgname/config/config.php" find config -type f -exec install -vDm 644 {} "$pkgdir/etc/webapps/$pkgname/"{} \; # remove config dir and .htaccess from source so that it is not installed to default location rm -rf config .htaccess # webapp find . -type f -not -iname "*.orig" -exec install -vDm 644 {} "$pkgdir/usr/share/webapps/$pkgname/"{} \; # symlink config directory into place ln -sv /etc/webapps/$pkgname/config "$pkgdir/usr/share/webapps/$pkgname/" # symlink .htaccess file into place ln -sv /etc/webapps/$pkgname/.htaccess "$pkgdir/usr/share/webapps/$pkgname/" # add symlink to default writable apps directory ln -sv /var/lib/$pkgname/apps "$pkgdir/usr/share/webapps/$pkgname/wapps" # install occ command install -vDm 755 occ -t "$pkgdir/usr/share/webapps/$pkgname/" # occ script install -vDm 755 ../custom_files/$pkgname.occ.sh "$pkgdir/usr/bin/occ" # optional pacman hook install -vDm 644 ../$pkgname.hook -t "$pkgdir/usr/share/doc/$pkgname/" # apache example conf install -vDm 644 ../apache.example.conf -t "$pkgdir/usr/share/doc/$pkgname/" # systemd service install -vDm 644 ../custom_files/$pkgname-cron.service -t "$pkgdir/usr/lib/systemd/system/" install -vDm 644 ../$pkgname-cron.timer -t "$pkgdir/usr/lib/systemd/system/" }