Date: Friday, January 31, 2020 @ 21:45:16 Author: dvzrv Revision: 560851
Adding hyperkitty as optdepends for mailman3. Added: hyperkitty/ hyperkitty/repos/ hyperkitty/trunk/ hyperkitty/trunk/PKGBUILD hyperkitty/trunk/hyperkitty-qcluster.service hyperkitty/trunk/hyperkitty.sysusers hyperkitty/trunk/hyperkitty.tmpfiles hyperkitty/trunk/hyperkitty.uwsgi -----------------------------+ PKGBUILD | 89 ++++++++++++++++++++++++++++++++++++++++++ hyperkitty-qcluster.service | 35 ++++++++++++++++ hyperkitty.sysusers | 1 hyperkitty.tmpfiles | 4 + hyperkitty.uwsgi | 24 +++++++++++ 5 files changed, 153 insertions(+) Added: hyperkitty/trunk/PKGBUILD =================================================================== --- hyperkitty/trunk/PKGBUILD (rev 0) +++ hyperkitty/trunk/PKGBUILD 2020-01-31 21:45:16 UTC (rev 560851) @@ -0,0 +1,89 @@ +# Maintainer: David Runge <[email protected]> + +_name=HyperKitty +pkgname=hyperkitty +pkgver=1.3.2 +pkgrel=1 +pkgdesc="A web interface to access GNU Mailman v3 archives" +arch=('any') +url="https://gitlab.com/mailman/hyperkitty" +license=('GPL3') +depends=('python-dateutil' 'python-django' 'python-django-compressor' +'python-django-extensions' 'python-django-gravatar' 'python-django-haystack' +'python-django-mailman3' 'python-django-q' 'python-django-rest-framework' +'python-flufl-lock' 'python-mailmanclient' 'python-networkx' 'python-pytz' +'python-robot-detection' 'sassc') +makedepends=('python-isort' 'python-setuptools') +checkdepends=('python-beautifulsoup4' 'python-coverage' 'python-elasticsearch' +'python-mock' 'python-pytest' 'python-whoosh') +optdepends=('uwsgi-plugin-python: for running inside uwsgi' + 'ruby-sassc: alternative to sassc') +backup=("etc/uwsgi/${pkgname}.ini" + "etc/webapps/${pkgname}/settings.py") +source=("https://files.pythonhosted.org/packages/source/${_name::1}/${_name}/${_name}-${pkgver}.tar.gz"{,.asc} + "${pkgname}-1.3.2-django3.patch::https://gitlab.com/mailman/hyperkitty/-/merge_requests/228.patch" + "${pkgname}-qcluster.service" + "${pkgname}.sysusers" + "${pkgname}.tmpfiles" + "${pkgname}.uwsgi") +sha512sums=('c0c20f0a0d999e08be32f9db52f43660179b2277e80385bb4ef58f2a652b8271e03690282aa3174a3408c48bd7e5ee18c5a8adcee736a45165647cb124cd6293' + 'SKIP' + '04b593949c80362324103726f54a73d5904f053efb5ef90cd3fbdefd90e93c707052bcb8cddf5b64efc1f053f5c51ad76285833448f6fcdff4bdfbf640f6b8c2' + 'f3ff31e0a725dab5c55692f0da27dfe3625123e48e65b08f3198e790551ba4f2530719f36373eccf8c28a5ebac94ab546a0ca4e51b4fcb5f0bcaf0b356c0a03e' + '3267427109b08b8c9336b187381ed14357a07370bdcdfc24da94555020ad0424c5bbebc09e131e981e0540c51db443ffe558209e1bca7c2a1b7b1f602ed0805b' + 'c7f564f0415721711535d3901f5d893a8456f5593ef562dad81faf7bfab2ae402058768cbbe443c014b76c968efbfe03cf7fc9d0e2bf699b14c07736e1e8d813' + '58bbd8c3d7338204b70611630c428e65cdf29c7c134ed291491a3484c565c4dd4a9cd286dfd23d54ec0c973d313ff4d9d7d037c5ce1ec223be0f63d3bb401b55') +validpgpkeys=('541EA0448453394FF77A0ECC9D9B2BA061D0A67C') # Abhilash Raj <[email protected]> + +prepare() { + mv -v "${_name}-${pkgver}" "$pkgname-$pkgver" + cd "$pkgname-$pkgver" + # removing legacy stuff to be compatible with django3: + # https://gitlab.com/mailman/hyperkitty/issues/278 + patch -Np1 -i "../${pkgname}-1.3.2-django3.patch" +} + +build() { + cd "$pkgname-$pkgver" + python setup.py build +} + +check() { + cd "$pkgname-$pkgver" + export PYTHONPATH="build:${PYTHONPATH}" + coverage run example_project/manage.py test --settings=hyperkitty.tests.settings_test hyperkitty +} + +package() { + cd "$pkgname-$pkgver" + local python_stdlib_basepath="$(python -c "from sysconfig import get_path; print(get_path('stdlib'))")" + python setup.py install --skip-build \ + --optimize=1 \ + --prefix=/usr \ + --root="${pkgdir}" + install -vDm 644 README.rst -t "${pkgdir}/usr/share/doc/${pkgname}" + # django project + install -vDm 644 example_project/{__init__,manage,urls,wsgi}.py \ + -t "${pkgdir}/usr/share/webapps/${pkgname}" + # symlink locale and static files (instead of generating them) + ln -svf "$python_stdlib_basepath/site-packages/${pkgname}/locale/" \ + "${pkgdir}/usr/share/webapps/${pkgname}" + ln -svf "$python_stdlib_basepath/site-packages/${pkgname}/static/" \ + "${pkgdir}/usr/share/webapps/${pkgname}" + # config + install -vDm 640 example_project/settings.py \ + -t "${pkgdir}/etc/webapps/${pkgname}" + ln -svf "/etc/webapps/${pkgname}/settings.py" \ + "${pkgdir}/usr/share/webapps/${pkgname}/settings.py" + # systemd service + install -vDm 644 "../${pkgname}-qcluster.service" \ + -t "${pkgdir}/usr/lib/systemd/system" + # uwsgi + install -vDm 644 "../${pkgname}.uwsgi" "${pkgdir}/etc/uwsgi/${pkgname}.ini" + # tmpfiles.d + install -vDm 644 "../${pkgname}.tmpfiles" \ + "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf" + # sysusers.d + install -vDm 644 "../${pkgname}.sysusers" \ + "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf" +} Added: hyperkitty/trunk/hyperkitty-qcluster.service =================================================================== --- hyperkitty/trunk/hyperkitty-qcluster.service (rev 0) +++ hyperkitty/trunk/hyperkitty-qcluster.service 2020-01-31 21:45:16 UTC (rev 560851) @@ -0,0 +1,35 @@ +[Unit] +Description=HyperKitty async tasks runner +Documentation=https://hyperkitty.readthedocs.io/en/latest/install.html#asynchronous-tasks +After=network.target remote-fs.target + +[Service] +User=hyperkitty +ExecStart=/usr/bin/django-admin qcluster --pythonpath /usr/share/webapps/hyperkitty --settings settings +Restart=always +StandardError=syslog +PrivateTmp=true +ProtectSystem=strict +ProtectHome=true +PrivateDevices=true +ProtectKernelTunables=true +ProtectControlGroups=true +NoNewPrivileges=true +MemoryDenyWriteExecute=true +LockPersonality=true +CapabilityBoundingSet=CAP_NET_BIND_SERVICE +ProtectHostname=true +ProtectKernelLogs=true +ProtectKernelModules=true +RemoveIPC=true +RestrictAddressFamilies=~AF_PACKET +RestrictNamespaces=true +RestrictRealtime=true +RestrictSUIDSGID=true +SystemCallArchitectures=native +SystemCallFilter=@system-service +SystemCallFilter=~@privileged @resources +ReadOnlyPaths=/etc/webapps/hyperkitty + +[Install] +WantedBy=multi-user.target Added: hyperkitty/trunk/hyperkitty.sysusers =================================================================== --- hyperkitty/trunk/hyperkitty.sysusers (rev 0) +++ hyperkitty/trunk/hyperkitty.sysusers 2020-01-31 21:45:16 UTC (rev 560851) @@ -0,0 +1 @@ +u hyperkitty - "GNU Mailman Archiver" - Added: hyperkitty/trunk/hyperkitty.tmpfiles =================================================================== --- hyperkitty/trunk/hyperkitty.tmpfiles (rev 0) +++ hyperkitty/trunk/hyperkitty.tmpfiles 2020-01-31 21:45:16 UTC (rev 560851) @@ -0,0 +1,4 @@ +z /etc/webapps/hyperkitty/settings.py 0640 root hyperkitty - +d %L/hyperkitty - hyperkitty hyperkitty - +d %S/hyperkitty - hyperkitty hyperkitty - +d %t/hyperkitty - hyperkitty hyperkitty - Added: hyperkitty/trunk/hyperkitty.uwsgi =================================================================== --- hyperkitty/trunk/hyperkitty.uwsgi (rev 0) +++ hyperkitty/trunk/hyperkitty.uwsgi 2020-01-31 21:45:16 UTC (rev 560851) @@ -0,0 +1,24 @@ +[uwsgi] +procname-master = hyperkitty +master = true +plugins = python +socket = /run/hyperkitty/%n.sock +stats = /run/hyperkitty/%n-stats.sock +uid = hyperkitty +gid = hyperkitty +processes = 10 +cheaper = 2 +cheaper-step = 1 +idle = 120 +die-on-idle = true +chdir = /usr/share/webapps +module = hyperkitty.wsgi +home = / +vacuum = true +cron2 = minute=0,hour=0,day=0,week=0,month=0,unique=1 /usr/bin/django-admin runjobs yearly --pythonpath /usr/share/webapps/hyperkitty --settings settings +cron2 = minute=0,hour=0,day=0,week=0,unique=1 /usr/bin/django-admin runjobs monthly --pythonpath /usr/share/webapps/hyperkitty --settings settings +cron2 = minute=0,hour=0,day=0,unique=1 /usr/bin/django-admin runjobs weekly --pythonpath /usr/share/webapps/hyperkitty --settings settings +cron2 = minute=0,hour=0,unique=1 django-admin runjobs daily --pythonpath /usr/share/webapps/hyperkitty --settings settings +cron2 = minute=0,unique=1 /usr/bin/django-admin runjobs hourly --pythonpath /usr/share/webapps/hyperkitty --settings settings +cron2 = minute=-15,unique=1 /usr/bin/django-admin runjobs quarter_hourly --pythonpath /usr/share/webapps/hyperkitty --settings settings +cron2 = unique=1 /usr/bin/django-admin runjobs minutely --pythonpath /usr/share/webapps/hyperkitty --settings settings
