Package Details: etesync-server 0.3.0-1

Git Clone URL: https://aur.archlinux.org/etesync-server.git (read-only, click to copy)
Package Base: etesync-server
Description: A self-hostable EteSync server
Upstream URL: https://github.com/etesync/server
Licenses: AGPLv3
Submitter: daftaupe
Maintainer: daftaupe (tasn)
Last Packager: daftaupe
Votes: 4
Popularity: 0.41
First Submitted: 2019-05-02 08:53
Last Updated: 2020-01-29 15:04

Latest Comments

tasn commented on 2020-02-05 11:10

I was just granted ownership for python-django-cors-headers and updated it. A custom build of that is no longer required.

eomanis commented on 2020-01-21 19:20

All right, thanks for the quick response.

As promised etesync-server-0.2.2-1 doesn't require a downgrade to python-django-rest-framework-3.10.3-1 anymore. All that is needed now is the custom build of python-django-cors-headers-3.2.1, sweet.

I can now remove both python-django-rest-framework and python-django-cors-headers from my IgnorePkg= setting since the latter won't be downgraded automatically due to the greater version number.

daftaupe commented on 2020-01-21 10:49

@eomanis, I've updated etesync-server and python-django-etesync-journal.

But we're not in charge of python-django-cors-headers. So for now you will have to build it manually (I see you've provided a patch, so you should have something usable on your side).

tasn commented on 2020-01-21 07:33

eomanis: thanks for report and all of the info!

We've just released version etesync-server 0.2.2 that includes the rest-framework compatibility changes.

The cors-header maintainer seems to be missing though. :| We'll also update this package today, either daftaupe or myself.

Thanks!

eomanis commented on 2020-01-20 23:03

etesync-server-0.2.1-1 is broken since the release of python-django-3.0.2-1, because the required AUR package python-django-cors-headers is currently out-of-date with version 2.4.0-1, which is incompatible with Django 3.

Solution for this: Download the PKGBUILD of python-django-cors-headers and edit it to build version python-django-cors-headers-3.2.1 instead. See the respective comment at the package's AUR page for details.

However, after python-django-cors-headers-3.2.1 has been installed etesync-server-0.2.1-1 remains broken and exhibits this error when the mobile client requests a sync (stack trace excerpt):

  File "./etesync_server/urls.py", line 31, in <module>
    journals_router.register(r'members', views.MembersViewSet, base_name='journal-members')
TypeError: register() got an unexpected keyword argument 'base_name'

This error was introduced by the transition of the python-django-rest-framework-3.10.3-1 AUR package to the community repository as python-django-rest-framework-3.11.0-2.

Solution for this: Downgrade to python-django-rest-framework-3.10.3-1, see below for a PKGBUILD.

After the solutions have been applied you might need to rebuild etesync-server and other involved AUR python packages. Also, you should put possibly put python-django-cors-headers and python-django-rest-framework into your IgnorePkg list in /etc/pacman.conf.

PKGBULID for python-django-rest-framework-3.10.3-1:

# Maintainer: Donald Webster <fryfrog@gmail.com>
# Contributor: Simon Hanna <simhnna AT google email>

pkgname=('python-django-rest-framework')
_name=djangorestframework
pkgver=3.10.3
pkgrel=1
pkgdesc="Awesome web-browsable Web APIs"
arch=(any)
url="https://github.com/tomchristie/django-rest-framework"
license=('MIT')
options=(!emptydirs)
source=("https://files.pythonhosted.org/packages/source/${_name::1}/${_name}/${_name}-${pkgver}.tar.gz")
sha512sums=('bd1a8c9dd639d34f88911cee4d02252e608c26cfec5f1c96ae3250f359c6c962612bf56718cd3d74d680b3733bcc86664b94c9241cbf184984a30827c34ba4d8')
makedepends=('python-setuptools')
depends=('python-django')
optdepends=('python-pygments: Pygments support for API docs'
            'python-markdown: Markdown support for the browsable API'
            'python-django-crispy-forms: Improved HTML display for filtering'
            'python-coreapi: Schema generation support')

package() {
  cd "${srcdir}/djangorestframework-${pkgver}"
  install -D -m644 LICENSE.md "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
  python setup.py install --root="${pkgdir}/" --optimize=1
}

eomanis commented on 2019-10-20 21:03

Upstream feature request to support more settings in etesync-server.ini.

tasn commented on 2019-10-19 08:30

Nice catch, it's needed indeed! Could you please open a feature request / PR upstream? Thanks!

eomanis commented on 2019-10-18 23:26

Woops. I think I accidentally clicked clicked "Flag package out-of-date" when I intended to click "Vote for this package". If that was indeed the case please disregard the out-of-date thing, sorry.

While I am here, does anyone know a way how to customize STATIC_ROOT without having to edit /usr/lib/etesync-server/etesync_server/settings.py? Because, of course, this file will be overwritten on every package update.

If it can't be done without editing that file I guess I will make a feature request to upstream to implement reading STATIC_ROOT from /etc/etesync-server.ini.

Anyhow, thanks for maintaining this package, much appreciated.

daftaupe commented on 2019-10-10 12:17

Hello Gordane,

I've made an update to 0.2.1 and fixed the wrong name of the directory which is due to the fact that the github repo has changed its name recently.

Please try.

Gordane commented on 2019-10-10 11:51

EDIT: The checksum doesn't fail anymore since you updated to package, but the skeleton crash is still happening.

==> Validating source files with sha256sums...
    v0.2.0.tar.gz ... FAILED
    etesync-server.install ... Passed
    etesync-server.sysusers ... Passed
    etesync-server ... Passed
==> ERROR: One or more files did not pass the validity check!

sha256sum v0.2.0.tar.gz gives this result: 468a0a0bd1aa4f4b93fcf4690651039f544cc7078b9a94d89a41def805fe340b

PKGBUILD have 435aef6f8f33f82b13dbb99f00c16fa92743194aedb0b4a88ee51001e51244f1

Then after changing the checksum, I had issues because the folder was renamed 'server-' instead of 'server-skeleton'. It worked with this PKGBUILD file:

pkgname=('etesync-server')
pkgver=0.2.0
pkgrel=1
pkgdesc="A self-hostable EteSync server"
arch=(any)
depends=('python-django-cors-headers'
         'python-django-etesync-journal' 
         'python-pytz')
optdepends=('postgresql: storage backend'
            'uwsgi-plugin-python: application container')
url="https://github.com/etesync/server-skeleton"
license=('AGPLv3')
backup=('etc/etesync-server/etesync-server.ini')
options=(!emptydirs)
source=(https://github.com/etesync/server-skeleton/archive/v"$pkgver".tar.gz
        $pkgname.install
        $pkgname.sysusers
        $pkgname)
sha256sums=('468a0a0bd1aa4f4b93fcf4690651039f544cc7078b9a94d89a41def805fe340b'
            '965e5eb9664f7aaf4e071c901d3be9b345b6480846c7146697d945e877a5480e'
            '7363b065206a40e067675d072c5ff269b32704ec89c4eed98e5d3edd71fca122'
            'd695d13c339c72fde298d5f751e99a6f6c4da467692a6c1be352dfe7a9c8791a')
install=$pkgname.install

package() {
    mkdir -p "$pkgdir/etc/etesync-server/"
    mkdir -p "$pkgdir/usr/bin/"
    mkdir -p "$pkgdir/usr/lib"
    mkdir -p "$pkgdir/usr/share/doc/$pkgname"
    mkdir -p "$pkgdir/usr/share/licenses/$pkgname"

    install -Dm644 "$pkgname.sysusers" "$pkgdir/usr/lib/sysusers.d/$pkgname.conf"

    install -Dm644 "server-$pkgver/$pkgname.ini" "$pkgdir/etc/$pkgname/$pkgname.ini"
    sed -i "s@secret.txt@/var/lib/$pkgname/secret.txt@;s@db.sqlite3@/var/lib/$pkgname/db.sqlite3@" "$pkgdir/etc/$pkgname/$pkgname.ini"

    install -Dm644 "server-$pkgver/README.md" "$pkgdir/usr/share/doc/$pkgname/README.md"
    mv "server-$pkgver/example-configs" "$pkgdir/usr/share/doc/$pkgname/"
    rm -f "server-$pkgver/README.md"

    install -Dm644 "server-$pkgver/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
    rm -f "server-$pkgver/LICENSE"

    rm -f "server-$pkgver/icon.svg"

    cp -r "server-$pkgver" "$pkgdir/usr/lib/$pkgname"

    install -Dm755 "$pkgname" "$pkgdir/usr/bin/$pkgname"
    chmod +x "$pkgdir/usr/bin/etesync-server"
}