# Maintainer: George Rawlinson <george@rawlinson.net.nz> pkgbase=z-push pkgname=( # base package 'z-push-common' # backend 'z-push-backend-caldav' 'z-push-backend-carddav' 'z-push-backend-combined' 'z-push-backend-galsearch-ldap' 'z-push-backend-imap' 'z-push-backend-ldap' # ipc 'z-push-ipc-sharedmemory' 'z-push-ipc-memcached' # autodiscover 'z-push-autodiscover' # device state 'z-push-state-sql' ) pkgver=2.6.4 pkgrel=1 pkgdesc="Open-source ActiveSync implementation" arch=('any') url="https://z-push.org" license=('AGPL3') options=('!strip') source=( "$pkgbase-$pkgver.tar.gz::https://stash.kopano.io/rest/api/latest/projects/ZHUB/repos/z-push/archive?at=refs%2Ftags%2F$pkgver&format=tgz" 'tmpfiles.conf' 'sysusers.conf' ) b2sums=('f1686a9b00a3a1427d2a1ce383dbc92f0156be8a2f2b901dda2e9c3be6fbef921a69f90d8e84f3962667742f98405eceb51fb139a8f33aa6094008f7b84f16ee' '549a61faeed3762ab81ce649eae93ea6cac218740d8bfb022ceef045d5a23eb14b4f94d3cc4065b6c16b8de23f716d2ad10323376c662b54d2dfbbf33cbf1be1' '23a9402bfe309b0e2f509c4f6d250c4b8cb985af358659170563b7393c17de168d8dea5fc1e6222f658b005cf1b2bd00afd0cdf19fc3e150645b9edd29a8cd01') package_z-push-common() { depends=( 'sh' 'php' ) optdepends=( 'php-fpm: to run in FastCGI process manager' 'z-push-backend-caldav: to use a CalDAV server for calendaring' 'z-push-backend-carddav: to use a CardDAV server for contacts' 'z-push-backend-combined: to combine different backends' 'z-push-backend-galsearch-ldap: to search Global Address Book on a LDAP server' 'z-push-backend-imap: to use an IMAP server for e-mails' 'z-push-backend-ldap: to use a LDAP server for contacts' 'z-push-ipc-sharedmemory: to use the default IPC provider' 'z-push-ipc-memcached: to use memcached as an IPC provider' 'z-push-autodiscover: to utilise AutoDiscover' 'z-push-state-sql: to store device state in a SQL database' ) backup=( 'etc/z-push/z-push.conf.php' 'etc/z-push/policies.ini' ) # create folders install -vd \ "$pkgdir/usr/share/$pkgbase" \ "$pkgdir/usr/share/doc/$pkgbase" \ "$pkgdir/etc/$pkgbase" # install binary wrappers install -vDm755 -t "$pkgdir/usr/bin" \ build/deb/z-push-admin \ build/deb/z-push-top # install common cp -rv \ src/include \ src/lib \ src/vendor \ src/index.php \ src/z-push-admin.php \ src/z-push-top.php \ "$pkgdir/usr/share/$pkgbase" # logrotate configuration install -vDm644 config/z-push.lr "$pkgdir/etc/logrotate.d/$pkgbase" # man pages install -vDm644 -t "$pkgdir/usr/share/man/man8" \ man/z-push-admin.8 man/z-push-top.8 # documentation install -vDm644 -t "$pkgdir/usr/share/doc/$pkgbase" \ CONTRIBUTING.md README.md src/DEVELOPMENT src/INSTALL # web server documentation cp -rv config/apache2 config/lighttpd config/nginx \ "$pkgdir/usr/share/doc/$pkgbase" # license/trademark install -vDm644 -t "$pkgdir/usr/share/licenses/$pkgbase" \ src/TRADEMARKS # systemd integration install -vDm644 tmpfiles.conf "$pkgdir/usr/lib//tmpfiles.d/$pkgbase.conf" install -vDm644 sysusers.conf "$pkgdir/usr/lib/sysusers.d/$pkgbase.conf" # configuration install -vDm644 src/config.php "$pkgdir/etc/$pkgbase/z-push.conf.php" ln -sfv /etc/z-push/z-push.conf.php "$pkgdir/usr/share/$pkgbase/config.php" install -vDm644 src/policies.ini "$pkgdir/etc/$pkgbase/policies.ini" ln -sfv /etc/z-push/policies.ini "$pkgdir/usr/share/$pkgbase/policies.ini" # # patching # # set version number sed -s "s/ZPUSHVERSION/$pkgver/" build/version.php.in > "$pkgdir/usr/share/$pkgbase/version.php" # patch web-user (www-data -> z-push) sed -i -e "s/www-data/z-push/g" \ "$pkgdir/usr/bin/z-push-admin" \ "$pkgdir/usr/bin/z-push-top" \ "$pkgdir/etc/logrotate.d/z-push" } package_z-push-backend-caldav() { pkgdesc="Enables Z-Push to use a CalDAV backend for calendaring" depends=('z-push-common' 'awl') backup=('etc/z-push/caldav.conf.php') cd src/backend/caldav # package backend/caldav install -vDm644 -t "$pkgdir/usr/share/$pkgbase/backend/caldav" caldav.php # configuration install -vDm644 config.php "$pkgdir/etc/$pkgbase/caldav.conf.php" ln -sfv /etc/z-push/caldav.conf.php "$pkgdir/usr/share/$pkgbase/backend/caldav/config.php" # documentation install -vDm644 -t "$pkgdir/usr/share/doc/$pkgbase/caldav" AUTHOR REQUIREMENTS } package_z-push-backend-carddav() { pkgdesc="Enables Z-Push to use a CardDAV backend for contacts" depends=('z-push-common' 'php-xsl') backup=('etc/z-push/carddav.conf.php') cd src/backend/carddav # package backend/carddav install -vDm644 -t "$pkgdir/usr/share/$pkgbase/backend/carddav" carddav.php # configuration install -vDm644 config.php "$pkgdir/etc/$pkgbase/carddav.conf.php" ln -sfv /etc/z-push/carddav.conf.php "$pkgdir/usr/share/$pkgbase/backend/carddav/config.php" # documentation install -vDm644 -t "$pkgdir/usr/share/doc/$pkgbase/carddav" README REQUIREMENTS THANKS } package_z-push-backend-combined() { pkgdesc="Enables Z-Push to simultaneously use different backends" depends=('z-push-common') backup=('etc/z-push/combined.conf.php') cd src/backend/combined # package backend/combined install -vDm644 -t "$pkgdir/usr/share/$pkgbase/backend/combined" \ combined.php importer.php exporter.php # configuration install -vDm644 config.php "$pkgdir/etc/$pkgbase/combined.conf.php" ln -sfv /etc/z-push/combined.conf.php "$pkgdir/usr/share/$pkgbase/backend/combined/config.php" } package_z-push-backend-galsearch-ldap() { pkgdesc="Enables Z-Push to search the Global Address Book of a LDAP backend" depends=('z-push-common') backup=('etc/z-push/galsearch-ldap.conf.php') cd src/backend/searchldap # package backend/searchldap install -vDm644 -t "$pkgdir/usr/share/$pkgbase/backend/searchldap" searchldap.php # configuration install -vDm644 config.php "$pkgdir/etc/$pkgbase/galsearch-ldap.conf.php" ln -sfv /etc/z-push/galsearch-ldap.conf.php "$pkgdir/usr/share/$pkgbase/backend/searchldap/config.php" } package_z-push-backend-imap() { pkgdesc="Enables Z-Push to use an IMAP backend for e-mails" depends=('z-push-common' 'php-imap' 'awl') backup=('etc/z-push/imap.conf.php') # create folders install -vd "$pkgdir/usr/share/$pkgbase/backend" "$pkgdir/usr/share/doc/$pkgbase/imap" # package backend/imap cp -rv src/backend/imap "$pkgdir/usr/share/$pkgbase/backend" # fix incorrect permissions find "$pkgdir/usr/share/$pkgbase/backend/imap/Auth" -type f -perm 755 -exec chmod 644 {} \; # configuration install -vDm644 src/backend/imap/config.php "$pkgdir/etc/$pkgbase/imap.conf.php" ln -sfv /etc/z-push/imap.conf.php "$pkgdir/usr/share/$pkgbase/backend/imap/config.php" # documentation mv -v "$pkgdir/usr/share/$pkgbase/backend/imap/"{README,REQUIREMENTS,THANKS} \ "$pkgdir/usr/share/doc/$pkgbase/imap" } package_z-push-backend-ldap() { pkgdesc="Enables Z-Push to use a LDAP backend for contacts" depends=('z-push-common') backup=('etc/z-push/ldap.conf.php') cd src/backend/ldap # package backend/ldap install -vDm644 -t "$pkgdir/usr/share/$pkgbase/backend/ldap" ldap.php # configuration install -vDm644 config.php "$pkgdir/etc/$pkgbase/ldap.conf.php" ln -sfv /etc/z-push/ldap.conf.php "$pkgdir/usr/share/$pkgbase/backend/ldap/config.php" # documentation install -vDm644 -t "$pkgdir/usr/share/doc/$pkgbase/ldap" AUTHOR } package_z-push-autodiscover() { pkgdesc="Enables Z-Push to utilise AutoDiscover" depends=('z-push-common' 'awl') backup=('etc/z-push/autodiscover.conf.php') cd src/autodiscover # package autodiscover install -vDm644 -t "$pkgdir/usr/share/$pkgbase/autodiscover" \ autodiscover.php response.xml # configuration install -vDm644 config.php "$pkgdir/etc/$pkgbase/autodiscover.conf.php" ln -sfv /etc/z-push/autodiscover.conf.php \ "$pkgdir/usr/share/$pkgbase/autodiscover/config.php" # documentation install -vDm644 -t "$pkgdir/usr/share/doc/$pkgbase/autodiscover" INSTALL } package_z-push-ipc-sharedmemory() { pkgdesc="Default IPC provider for Z-Push" depends=('z-push-common') cd src/backend/ipcsharedmemory # package backend/ipcsharedmemory install -vDm644 -t "$pkgdir/usr/share/$pkgbase/backend/ipcsharedmemory" \ ipcsharedmemoryprovider.php } package_z-push-ipc-memcached() { pkgdesc="Enables Z-Push to use memcached as an IPC provider" depends=('z-push-common' 'php-memcached' 'memcached') backup=('etc/z-push/memcached.conf.php') cd src/backend/ipcmemcached # package backend/ipcmemcached install -vDm644 -t "$pkgdir/usr/share/$pkgbase/backend/ipcmemcached" \ ipcmemcachedprovider.php # configuration install -vDm644 config.php "$pkgdir/etc/$pkgbase/memcached.conf.php" ln -sfv /etc/z-push/memcached.conf.php "$pkgdir/usr/share/$pkgbase/backend/ipcmemcached/config.php" } package_z-push-state-sql() { pkgdesc="Enables Z-Push to store device state in a SQL database" depends=('z-push-common') optdepends=( 'mariadb: to use a local MariaDB database' 'php-pgsql: to use the PostgreSQL database backend' 'postgresql: to use a local PostgreSQL database' 'php-odbc: to use the ODBC database backend' 'php-sqlite: to use the SQLite database backend' ) backup=('etc/z-push/state-sql.conf.php') cd src/backend/sqlstatemachine # package backend/sqlstatemachine install -vDm644 -t "$pkgdir/usr/share/$pkgbase/backend/sqlstatemachine" \ sqlstatemachine.php # configuration install -vDm644 config.php "$pkgdir/etc/$pkgbase/state-sql.conf.php" ln -sfv /etc/z-push/state-sql.conf.php "$pkgdir/usr/share/$pkgbase/backend/sqlstatemachine/config.php" } # vim:set ts=2 sw=2 et: