From ca853346607510cc281fc3a85ab436f1e81a2879 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=A4felfinger?= Date: Mon, 24 Oct 2016 23:35:31 +0200 Subject: [PATCH] added copy of ffsync from arch as base info for ubuntu --- firefox/sync/PKGBUILD | 76 +++++++++++++++++++ firefox/sync/ffsync.service | 14 ++++ firefox/sync/ffsync.tmpfiles | 1 + firefox/sync/install.md | 21 +++++ .../mozilla-firefox-sync-server-git.install | 20 +++++ 5 files changed, 132 insertions(+) create mode 100644 firefox/sync/PKGBUILD create mode 100644 firefox/sync/ffsync.service create mode 100644 firefox/sync/ffsync.tmpfiles create mode 100644 firefox/sync/install.md create mode 100644 firefox/sync/mozilla-firefox-sync-server-git.install diff --git a/firefox/sync/PKGBUILD b/firefox/sync/PKGBUILD new file mode 100644 index 0000000..c2fb548 --- /dev/null +++ b/firefox/sync/PKGBUILD @@ -0,0 +1,76 @@ +# Maintainer: Timothée Ravier + +pkgname=mozilla-firefox-sync-server-git +pkgver=1.5.2.r0.g3d216e9 +pkgrel=1 +pkgdesc="Mozilla Sync Server for built-in Firefox Sync - 1.5 version for Firefox 29+" +arch=('i686' 'x86_64') +url='http://docs.services.mozilla.com/howtos/run-sync-1.5.html' +license=('GPL') +depends=('python2' 'python-virtualenv') +makedepends=('git') +options=(!debug) +conflicts=('mozilla-firefox-sync-server-hg') +install=${pkgname}.install +source=("${pkgname}::git+https://github.com/mozilla-services/syncserver" + 'ffsync.service' + 'ffsync.tmpfiles') +sha256sums=('SKIP' + 'f2e69486825f43f6a288adced31a6c2e51b0dbd84483aa427b2d85699c942446' + '462bfdccc672339a03622dbe0a76a2df1b4293de8b240e82fe127a6befaa1a89') +backup=('opt/mozilla-firefox-sync-server/syncserver.ini') + +pkgver() { + cd ${pkgname} + git describe --long --tags | sed 's/\([^-]*-g\)/r\1/;s/-/./g' +} + +prepare() { + cd ${pkgname} + + # Change default sqlite database location + sed -i "s|/tmp/syncserver.db|/var/lib/ffsync/sync_storage.db|g" syncserver.ini +} + +build() { + cd ${pkgname} + make build + + # Install gunicorn to use with nginx + local/bin/pip install gunicorn + + # There is no install target in the Makefile, so let's do some cleaning + rm -rf .git .gitignore Dockerfile Makefile MANIFEST.in README.rst setup.py \ + local/bin/pep8 local/bin/build* local/bin/easy_install* local/bin/pip* \ + local/COMPLETE + + # Remove compiled python files as they may cause issues + find . -name '*.pyc' -delete + + # Manually fix install path + find . -type f -exec sed -i "s|${srcdir}/${pkgname}|/opt/${pkgname/-git}|g" {} \; +} + +check() { + cd ${pkgname} + + #make test +} + +package() { + cd ${pkgname} + + # There is no install target in the Makefile, installing manually + install -dm 755 "${pkgdir}"/opt/${pkgname/-git} "${pkgdir}"/var/lib/ffsync + cp -a * "${pkgdir}"/opt/${pkgname/-git} + + # Manually fix permissions + cd "${pkgdir}"/opt/${pkgname/-git} + find . -exec chmod go-w {} \; + find . -type f -exec chmod a+r {} \; + + install -Dm 644 "${srcdir}"/ffsync.service "${pkgdir}"/usr/lib/systemd/system/ffsync.service + install -Dm 644 "${srcdir}"/ffsync.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/ffsync.conf +} + +# vim: ft=sh syn=sh ts=2 sw=2 et: diff --git a/firefox/sync/ffsync.service b/firefox/sync/ffsync.service new file mode 100644 index 0000000..e813263 --- /dev/null +++ b/firefox/sync/ffsync.service @@ -0,0 +1,14 @@ +[Unit] +Description=Gunicorn server running Mozilla's Firefox Sync Server - Version 1.5 +After=network.target + +[Service] +Type=simple +User=ffsync +Group=http +UMask=007 +Restart=on-abort +ExecStart=/opt/mozilla-firefox-sync-server/local/bin/gunicorn --paste /opt/mozilla-firefox-sync-server/syncserver.ini + +[Install] +WantedBy=multi-user.target diff --git a/firefox/sync/ffsync.tmpfiles b/firefox/sync/ffsync.tmpfiles new file mode 100644 index 0000000..8de56d1 --- /dev/null +++ b/firefox/sync/ffsync.tmpfiles @@ -0,0 +1 @@ +D /run/ffsync 0750 ffsync http diff --git a/firefox/sync/install.md b/firefox/sync/install.md new file mode 100644 index 0000000..e7b8fbb --- /dev/null +++ b/firefox/sync/install.md @@ -0,0 +1,21 @@ +# Installation of firefox sync 1.5 with systemd + +## install packages +apt-get install python-dev git-core python-virtualenv g++ make + +## add user and group +groupadd ffsync +useradd -r -s /usr/bin/false -g ffsync -G ffsync,http -d /var/lib/ffsync ffsync + +## create installation directory + + + +## create systemd config + +### tempfiles config + +### startup config + + +## configure server diff --git a/firefox/sync/mozilla-firefox-sync-server-git.install b/firefox/sync/mozilla-firefox-sync-server-git.install new file mode 100644 index 0000000..4db07ce --- /dev/null +++ b/firefox/sync/mozilla-firefox-sync-server-git.install @@ -0,0 +1,20 @@ +post_install() { + getent group ffsync &>/dev/null || groupadd ffsync >/dev/null + getent passwd ffsync &>/dev/null || useradd -r -s /usr/bin/false -g ffsync -G ffsync,http -d /var/lib/ffsync ffsync >/dev/null + + chown -R ffsync:ffsync /var/lib/ffsync + systemd-tmpfiles --create ffsync.conf +} + +post_update() { + chown -R ffsync:ffsync /var/lib/ffsync + chown -R ffsync:http /run/ffsync + + echo ">> Documentation: https://wiki.archlinux.org/index.php/Mozilla_Firefox_Sync_Server" +} + +pre_remove() { + getent passwd ffsync &>/dev/null && userdel ffsync >/dev/null + getent group ffsync &>/dev/null && groupdel ffsync >/dev/null + true +}