www-apps/syncserver: new package (and deps) for Firefox Sync Server
This commit is contained in:
parent
ceb5871da9
commit
b1dc230fa4
98 changed files with 1907 additions and 0 deletions
4
www-apps/syncserver/Manifest
Normal file
4
www-apps/syncserver/Manifest
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
AUX syncserver.conf 146 BLAKE2B 2d1e8a083d4dc4acaa024e1da0a994da14d055fdc3901a19799f681e872a29b3f7e632155eb447b8d38e74b47c28550592a5abc411d6952306f829934680c0b8 SHA512 651ec902a5810de23a66e44130552b5d1198c92a529ddaabe684a6fabc9d2bab9fafb626855fb14e937852ef9629333cd97ac62bfb1f3af486852909c033440f
|
||||
AUX syncserver.init 2932 BLAKE2B 3ce4b459a8aa50ba255a6b102750acc1daf780e6cd6b4dd74749bd3c4cd4f73a2a046745da552a78c182411a03b55bd121f4423e1992e5f2d5ce0dc1578689cd SHA512 463cbdb1a088b36ac76291aa0726007980fb86f6fbaa0ccf8a2ead1dc5326edd9bf32bf91c3b4c53185f02b52aa905f284dcd1856b3ba9aa837598195fb2973e
|
||||
DIST syncserver-1.8.0.tar.gz 11213 BLAKE2B b601808930f37ff277ee16bda9b520c0506b2142888d8aebd4735a639c206933921e78c292ad251c556c162e55651bc0760366deeda267c0d56d4b1cb4268a72 SHA512 73f7e32e900fac5e8385b2b7b521aed964ec85879283733daf84a8afe194e1775b654074ae19e7bf574a2e41a01a821104a10f4c4794eecacffb7a903814e093
|
||||
EBUILD syncserver-1.8.0.ebuild 1196 BLAKE2B 1e0702de8cf16fa7ef74d906d5db5991099c1e8b64e66f1ba88d79742101250841b880b72613ca0e94721113d2c1debc0f6f9fb77b618a4e523df7591f41c85f SHA512 584bb74134e956aabfbb944589256e478a0093052fdda8b7b8bb7ea44ffe29228bfaa82cd37bbf95bb4e07557f045ea4ccc83aac3a27433e81292e216bb005b6
|
||||
5
www-apps/syncserver/files/syncserver.conf
Normal file
5
www-apps/syncserver/files/syncserver.conf
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
BINARY="/usr/lib/python-exec/python2.7/gunicorn"
|
||||
WSGI_APP=/etc/syncserver.ini
|
||||
CONFIG=/etc/gunicorn/syncserver.py
|
||||
USER=syncserver
|
||||
GROUP=syncserver
|
||||
127
www-apps/syncserver/files/syncserver.init
Normal file
127
www-apps/syncserver/files/syncserver.init
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
#!/sbin/openrc-run
|
||||
|
||||
[[ -z "${PIDFILE}" ]] && PIDFILE="/var/run/gunicorn/${SVCNAME}.pid"
|
||||
[[ -z "${BINARY}" ]] && BINARY="/usr/bin/gunicorn"
|
||||
|
||||
depend() {
|
||||
need net
|
||||
use dns logger netmount
|
||||
}
|
||||
|
||||
check_params() {
|
||||
if [[ "${SVCNAME}" == "gunicorn" && -z "${I_KNOW}" ]]; then
|
||||
ewarn "It is highly recommended to use a symbolic link for this"
|
||||
ewarn "script and start via that instead. This allows you to run"
|
||||
ewarn "multiple spawn services simultaneously. To do this, simply:"
|
||||
ewarn
|
||||
ewarn " ln -s /etc/init.d/gunicorn /etc/init.d/gunicorn.mysvc"
|
||||
ewarn " cp /etc/conf.d/gunicorn /etc/conf.d/gunicorn.mysvc"
|
||||
ewarn
|
||||
ewarn "If you don't want to be bothered by this message, set I_KNOW=yes"
|
||||
ewarn "in your configuration file."
|
||||
ewarn
|
||||
fi
|
||||
|
||||
if [[ -z "${WSGI_APP}" ]] && [[ -z "${WSGI_TYPE}" ]]; then
|
||||
eerror "${WSGI_APP} not set. Exiting"
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ -z "${PIDFILE}" ]]; then
|
||||
eerror "PIDFILE must be set in /etc/conf.d/${SVCNAME}"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
test_pidfile() {
|
||||
if [[ ! -f "${PIDFILE}" ]]; then
|
||||
eerror "${PIDFILE} does not exist"
|
||||
return 1
|
||||
fi
|
||||
|
||||
read -r PID <"${PIDFILE}"
|
||||
|
||||
if [[ -z "${PID}" ]]; then
|
||||
eerror "${PIDFILE} contains no PID"
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ ! -d "/proc/${PID}" ]]; then
|
||||
eerror "${PID} does not appear to be an existing process"
|
||||
return 1
|
||||
fi
|
||||
|
||||
if awk -F: 'BEGIN { found = 0; } END { exit(found); }; $1 == "State" && $2 !~ /^[[:space:]]*Z / { found = 1; };' "/proc/${PID}/status"; then
|
||||
eerror "${PID} does not appear to be an active process"
|
||||
return 1
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
kill_pidfile() {
|
||||
check_params && test_pidfile || return 1
|
||||
|
||||
ebegin "$1"
|
||||
shift
|
||||
read -r PID <"${PIDFILE}"
|
||||
kill "$@" "${PID}"
|
||||
local RC=$?
|
||||
eend $RC
|
||||
|
||||
return $RC
|
||||
}
|
||||
|
||||
# actions
|
||||
|
||||
start() {
|
||||
check_params || return 1
|
||||
|
||||
mkdir -p /var/run/gunicorn
|
||||
|
||||
local -a OPTS
|
||||
OPTS=( "--user=${USER}"
|
||||
"--group=${GROUP}"
|
||||
"--daemon"
|
||||
"--pid=${PIDFILE}"
|
||||
"--paste"
|
||||
"${WSGI_APP}" )
|
||||
|
||||
ebegin "Starting ${SVCNAME} using ${CONFIG}"
|
||||
env PYTHONPATH="${PYTHONPATH}" "${BINARY}" "${OPTS[@]}"
|
||||
local RC=$?
|
||||
eend "${RC}"
|
||||
|
||||
if [[ "${RC}" == 0 ]]; then
|
||||
ebegin "No early errors, checking liveliness"
|
||||
sleep 1
|
||||
if ! test_pidfile; then
|
||||
eend 1
|
||||
return 1
|
||||
fi
|
||||
eend 0
|
||||
fi
|
||||
|
||||
return "${RC}"
|
||||
}
|
||||
|
||||
status() {
|
||||
check_params && test_pidfile
|
||||
}
|
||||
|
||||
stop() {
|
||||
kill_pidfile "Stopping (gracefully) ${SVCNAME}" \
|
||||
-s QUIT
|
||||
}
|
||||
|
||||
force_stop() {
|
||||
kill_pidfile "Stopping (disregarding jobs) ${SVCNAME}" \
|
||||
-s INT
|
||||
}
|
||||
|
||||
reload() {
|
||||
kill_pidfile "Telling ${SVCNAME} to reload itself" \
|
||||
-s HUP
|
||||
}
|
||||
|
||||
extra_commands="${opts} status reload force_stop"
|
||||
46
www-apps/syncserver/syncserver-1.8.0.ebuild
Normal file
46
www-apps/syncserver/syncserver-1.8.0.ebuild
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
# Copyright 1999-2019 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=7
|
||||
|
||||
PYTHON_COMPAT=( python2_7 )
|
||||
|
||||
inherit distutils-r1 user
|
||||
|
||||
DESCRIPTION="Run-Your-Own Firefox Sync Server"
|
||||
SRC_URI="https://github.com/mozilla-services/syncserver/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="MPL"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~x86"
|
||||
IUSE=""
|
||||
|
||||
RDEPEND="
|
||||
>=dev-python/configparser-1.5.0[${PYTHON_USEDEP}]
|
||||
dev-python/cornice[${PYTHON_USEDEP}]
|
||||
dev-python/moz-server-syncstorage[${PYTHON_USEDEP}]
|
||||
dev-python/moz-tokenserver[${PYTHON_USEDEP}]
|
||||
dev-python/mozsvc[${PYTHON_USEDEP}]
|
||||
dev-python/pyramid[${PYTHON_USEDEP}]
|
||||
dev-python/requests[${PYTHON_USEDEP}]
|
||||
>=dev-python/sqlalchemy-1.3.3[${PYTHON_USEDEP}]
|
||||
dev-python/unittest2[${PYTHON_USEDEP}]
|
||||
dev-python/webob[${PYTHON_USEDEP}]
|
||||
dev-python/zope-component[${PYTHON_USEDEP}]
|
||||
www-servers/gunicorn[${PYTHON_USEDEP}]
|
||||
"
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
python_install_all() {
|
||||
distutils-r1_python_install_all
|
||||
|
||||
keepdir /var/lib/${PN}
|
||||
|
||||
newinitd "${FILESDIR}/syncserver.init" syncserver
|
||||
newconfd "${FILESDIR}/syncserver.conf" syncserver
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
enewgroup syncserver
|
||||
enewuser syncserver -1 -1 /var/lib/syncserver syncserver
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue