[arch-commits] Commit in hyperkitty/repos (8 files)
David Runge
dvzrv at gemini.archlinux.org
Thu Oct 21 19:51:59 UTC 2021
Date: Thursday, October 21, 2021 @ 19:51:59
Author: dvzrv
Revision: 1032061
archrelease: copy trunk to community-staging-any
Added:
hyperkitty/repos/community-staging-any/
hyperkitty/repos/community-staging-any/PKGBUILD
(from rev 1032058, hyperkitty/trunk/PKGBUILD)
hyperkitty/repos/community-staging-any/hyperkitty-1.3.2-settings.patch
(from rev 1032058, hyperkitty/trunk/hyperkitty-1.3.2-settings.patch)
hyperkitty/repos/community-staging-any/hyperkitty-qcluster.service
(from rev 1032059, hyperkitty/trunk/hyperkitty-qcluster.service)
hyperkitty/repos/community-staging-any/hyperkitty.install
(from rev 1032060, hyperkitty/trunk/hyperkitty.install)
hyperkitty/repos/community-staging-any/hyperkitty.sysusers
(from rev 1032060, hyperkitty/trunk/hyperkitty.sysusers)
hyperkitty/repos/community-staging-any/hyperkitty.tmpfiles
(from rev 1032060, hyperkitty/trunk/hyperkitty.tmpfiles)
hyperkitty/repos/community-staging-any/hyperkitty.uwsgi
(from rev 1032060, hyperkitty/trunk/hyperkitty.uwsgi)
---------------------------------+
PKGBUILD | 112 ++++++++++++++++++++++++++++++++++++++
hyperkitty-1.3.2-settings.patch | 85 ++++++++++++++++++++++++++++
hyperkitty-qcluster.service | 38 ++++++++++++
hyperkitty.install | 10 +++
hyperkitty.sysusers | 1
hyperkitty.tmpfiles | 8 ++
hyperkitty.uwsgi | 25 ++++++++
7 files changed, 279 insertions(+)
Copied: hyperkitty/repos/community-staging-any/PKGBUILD (from rev 1032058, hyperkitty/trunk/PKGBUILD)
===================================================================
--- community-staging-any/PKGBUILD (rev 0)
+++ community-staging-any/PKGBUILD 2021-10-21 19:51:59 UTC (rev 1032061)
@@ -0,0 +1,112 @@
+# Maintainer: David Runge <dvzrv at archlinux.org>
+
+_name=HyperKitty
+pkgname=hyperkitty
+pkgver=1.3.5
+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-mistune' 'python-networkx'
+'python-pytz' 'python-robot-detection' 'python-whoosh' 'sassc')
+makedepends=('python-isort' 'python-setuptools')
+checkdepends=('python-beautifulsoup4' 'python-django-debug-toolbar'
+'python-elasticsearch' 'python-lxml' 'python-mock' 'python-pytest'
+'python-whoosh')
+optdepends=('python-elasticsearch: for using elasticsearch as search backend'
+ 'python-xapian-haystack: for using xapian as search backend'
+ 'uwsgi-plugin-python: for running inside uwsgi'
+ 'ruby-sassc: alternative to sassc')
+backup=("etc/uwsgi/${pkgname}.ini"
+ "etc/webapps/${pkgname}/settings_local.py"
+ "etc/webapps/${pkgname}/urls.py"
+)
+install="${pkgname}.install"
+source=("https://files.pythonhosted.org/packages/source/${_name::1}/${_name}/${_name}-${pkgver}.tar.gz"{,.asc}
+ "${pkgname}-1.3.2-settings.patch"
+ "${pkgname}-qcluster.service"
+ "${pkgname}.sysusers"
+ "${pkgname}.tmpfiles"
+ "${pkgname}.uwsgi")
+sha512sums=('9e794cd522904369dea5a70489e3ab7fe149680ed13f03e5002f0ad84304cf1de7481c71e302cf46cd9fa244cadca5d0c41767ceb4cee82b7153f052bc1b677d'
+ 'SKIP'
+ '452da2c049f0c35d27e15c16af1a6a526de79a6672b6fdaf9a4bcbdfd2110ebf608e8c5a1f5dfc3bb2febc39ecc6e69e2a657c3b2c6e1d2dc2eca2de81125380'
+ 'a41c938082ceee555143ddb21c3a95835f9832b9aff423142d78d3e52f12500561f80e0ce43c67a4f190065c9d045945741ac71ab3307db1419c4dc0686db09a'
+ '3267427109b08b8c9336b187381ed14357a07370bdcdfc24da94555020ad0424c5bbebc09e131e981e0540c51db443ffe558209e1bca7c2a1b7b1f602ed0805b'
+ 'c943d82b8640a513728e3f07fa44c0ddb5a3bb8ec84a3a70990e51287ca01977887f895b901688fc4643d8fcb106d524259a86a51bccaafd77c69b241f1b23ba'
+ '351f40a6bc1fd1735c883408f9941808e081206927a7c02467e03228243dd156378cac21f851b498702bd4f96fde8e4c80536dbcc6f3c384bf708bed4e988971')
+b2sums=('2ef6917425bdf00a5a03383a8f7ff0eb1243557c1189d9afba33b3c1f09db63b40827b0e7f9602964f251197045594d786df13c6cd288c97980967bdf85eba4c'
+ 'SKIP'
+ '1eab6221db4adb1a066bde8d6c84a90d3e414d1d30c5cf55a90a4ac58d131f7c4872c85d65e98d91ee0f4cac6f71c47c829993c736617a86be8fec5d831422c8'
+ 'e8ae1d123e74b0c6984df3e5fff720e03dcbc3f007123718fe845024b42e5c13b7eac4da6bde04a9e1372d446bfa50ac12479730a9092e8396b73434e59663d3'
+ 'f4e912e75c5127897837d67626ba94a418ec408f0f3a9bcd1767633347e107600cc43825caa5737a84362273a353bf03097879ff5b9065663150f6db4b96238a'
+ 'e4fd83e38703d8ff9a714b238296e4e12791b8ce0c19446709e5c20b4012ed10b97504cafda66cdbe12e56a9f943c094147b6a02db3bd9c854e609adca38ff01'
+ '767f334add0dd0e83b27e198415a2ef8ae3c505aa7f37d12138e37a98dc5575e43f83eb665431464ed488a5bf6b8913cd675eb112dc880cf17ff51511a3f07e6')
+validpgpkeys=('541EA0448453394FF77A0ECC9D9B2BA061D0A67C') # Abhilash Raj <raj.abhilash1 at gmail.com>
+
+prepare() {
+ mv -v "${_name}-${pkgver}" "$pkgname-$pkgver"
+ cd "$pkgname-$pkgver"
+ # setting FHS compliant default paths, remove debug options
+ patch -Np1 -i "../${pkgname}-1.3.2-settings.patch"
+ touch settings_local.py
+}
+
+build() {
+ cd "$pkgname-$pkgver"
+ python setup.py build
+}
+
+check() {
+ cd "$pkgname-$pkgver"
+ export PYTHONPATH="build:${PYTHONPATH}"
+ python 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 \
+ --root="${pkgdir}"
+ # remove example_project from top level site-packages:
+ # https://gitlab.com/mailman/hyperkitty/issues/279
+ rm -rfv "${pkgdir}/${python_stdlib_basepath}/site-packages/example_project"
+ # doc
+ install -vDm 644 README.rst -t "${pkgdir}/usr/share/doc/${pkgname}"
+ # django project
+ install -vDm 644 example_project/{__init__,manage,settings,wsgi}.py \
+ -t "${pkgdir}/usr/share/webapps/${pkgname}"
+ # symlink locale and static dirs to state dir
+ ln -svf "/var/lib/${pkgname}/locale/" \
+ "${pkgdir}/usr/share/webapps/${pkgname}"
+ ln -svf "/var/lib/${pkgname}/static/" \
+ "${pkgdir}/usr/share/webapps/${pkgname}"
+ # state dir
+ install -vdm 750 "${pkgdir}/var/lib/${pkgname}/data"
+ install -vdm 755 "${pkgdir}/var/lib/${pkgname}/"{locale,static}
+ # log dir
+ install -vdm 750 "${pkgdir}/var/log/${pkgname}"
+ # config
+ install -vDm 640 settings_local.py example_project/urls.py \
+ -t "${pkgdir}/etc/webapps/${pkgname}"
+ ln -svf "/etc/webapps/${pkgname}/settings_local.py" \
+ "${pkgdir}/usr/share/webapps/${pkgname}/settings_local.py"
+ ln -svf "/etc/webapps/${pkgname}/urls.py" \
+ "${pkgdir}/usr/share/webapps/${pkgname}/urls.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"
+}
Copied: hyperkitty/repos/community-staging-any/hyperkitty-1.3.2-settings.patch (from rev 1032058, hyperkitty/trunk/hyperkitty-1.3.2-settings.patch)
===================================================================
--- community-staging-any/hyperkitty-1.3.2-settings.patch (rev 0)
+++ community-staging-any/hyperkitty-1.3.2-settings.patch 2021-10-21 19:51:59 UTC (rev 1032061)
@@ -0,0 +1,85 @@
+diff -ruN a/example_project/settings.py b/example_project/settings.py
+--- a/example_project/settings.py 2020-06-01 18:21:21.000000000 +0200
++++ b/example_project/settings.py 2020-11-07 12:19:48.531767195 +0100
+@@ -75,12 +75,12 @@
+ 'allauth.socialaccount.providers.github',
+ 'allauth.socialaccount.providers.gitlab',
+ 'allauth.socialaccount.providers.google',
+- 'allauth.socialaccount.providers.facebook',
++ # 'allauth.socialaccount.providers.facebook',
+ 'allauth.socialaccount.providers.twitter',
+ 'allauth.socialaccount.providers.stackexchange',
+
+ # Dev only dependencies. Do not include in any production site.
+- 'debug_toolbar',
++ # 'debug_toolbar',
+ )
+
+
+@@ -88,7 +88,7 @@
+ 'django.middleware.security.SecurityMiddleware',
+ 'django.contrib.sessions.middleware.SessionMiddleware',
+ # NOTE: Do not include DebugToolbarMiddleware in any production site.
+- 'debug_toolbar.middleware.DebugToolbarMiddleware',
++ # 'debug_toolbar.middleware.DebugToolbarMiddleware',
+ 'django.middleware.common.CommonMiddleware',
+ 'django.middleware.csrf.CsrfViewMiddleware',
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
+@@ -134,7 +134,7 @@
+ # Use 'sqlite3', 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
+ 'ENGINE': 'django.db.backends.sqlite3',
+ # DB name or path to database file if using sqlite3.
+- 'NAME': os.path.join(BASE_DIR, 'hyperkitty.db'),
++ 'NAME': '/var/lib/hyperkitty/data/hyperkitty.db',
+ # The following settings are not used with sqlite3:
+ 'USER': 'hyperkitty',
+ 'PASSWORD': 'hkpass',
+@@ -202,7 +202,7 @@
+ # Don't put anything in this directory yourself; store your static files
+ # in apps' "static/" subdirectories and in STATICFILES_DIRS.
+ # Example: "/var/www/example.com/static/"
+-STATIC_ROOT = os.path.join(BASE_DIR, 'static')
++STATIC_ROOT = '/var/lib/hyperkitty/static'
+
+ # URL prefix for static files.
+ # Example: "http://example.com/static/", "http://static.example.com/"
+@@ -328,7 +328,8 @@
+ # recompiled on each requests. It means running an additional "compress"
+ # management command after each code upgrade.
+ # http://django-compressor.readthedocs.io/en/latest/usage/#offline-compression
+-# COMPRESS_OFFLINE = True
++COMPRESS_OFFLINE = True
++COMPRESS_ENABLED = True
+
+ # Needed for debug mode
+ INTERNAL_IPS = ('127.0.0.1',)
+@@ -340,7 +341,7 @@
+ HAYSTACK_CONNECTIONS = {
+ 'default': {
+ 'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
+- 'PATH': os.path.join(BASE_DIR, "fulltext_index"),
++ 'PATH': "/var/lib/hyperkitty/fulltext_index",
+ # You can also use the Xapian engine, it's faster and more accurate,
+ # but requires another library.
+ # http://django-haystack.readthedocs.io/en/v2.4.1/installing_search_engines.html#xapian
+@@ -395,7 +396,7 @@
+ 'level': 'INFO',
+ #'class': 'logging.handlers.RotatingFileHandler',
+ 'class': 'logging.handlers.WatchedFileHandler',
+- 'filename': os.path.join(BASE_DIR, 'hyperkitty.log'),
++ 'filename': '/var/log/hyperkitty/hyperkitty.log',
+ 'formatter': 'verbose',
+ },
+ },
+@@ -444,9 +445,9 @@
+ # When DEBUG is True, don't actually send emails to the SMTP server, just store
+ # them in a directory. This way you won't accidentally spam your mailing-lists
+ # while you're fiddling with the code.
+-if DEBUG == True:
++if DEBUG:
+ EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
+- EMAIL_FILE_PATH = os.path.join(BASE_DIR, 'emails')
++ EMAIL_FILE_PATH = '/var/lib/hyperkitty/emails'
+
+
+ #
Copied: hyperkitty/repos/community-staging-any/hyperkitty-qcluster.service (from rev 1032059, hyperkitty/trunk/hyperkitty-qcluster.service)
===================================================================
--- community-staging-any/hyperkitty-qcluster.service (rev 0)
+++ community-staging-any/hyperkitty-qcluster.service 2021-10-21 19:51:59 UTC (rev 1032061)
@@ -0,0 +1,38 @@
+[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
+LogsDirectory=hyperkitty
+RuntimeDirectory=hyperkitty
+StateDirectory=hyperkitty
+
+[Install]
+WantedBy=multi-user.target
Copied: hyperkitty/repos/community-staging-any/hyperkitty.install (from rev 1032060, hyperkitty/trunk/hyperkitty.install)
===================================================================
--- community-staging-any/hyperkitty.install (rev 0)
+++ community-staging-any/hyperkitty.install 2021-10-21 19:51:59 UTC (rev 1032061)
@@ -0,0 +1,10 @@
+post_install() {
+ echo "Run the following to create/migrate the database:"
+ echo "sudo -u hyperkitty django-admin migrate --pythonpath /usr/share/webapps/hyperkitty/ --settings settings"
+}
+
+post_upgrade() {
+ echo "Run the following to update static files and compress them:"
+ echo "sudo -u hyperkitty django-admin collectstatic --pythonpath /usr/share/webapps/hyperkitty --settings settings"
+ echo "sudo -u hyperkitty django-admin compress --pythonpath /usr/share/webapps/hyperkitty --settings settings"
+}
Copied: hyperkitty/repos/community-staging-any/hyperkitty.sysusers (from rev 1032060, hyperkitty/trunk/hyperkitty.sysusers)
===================================================================
--- community-staging-any/hyperkitty.sysusers (rev 0)
+++ community-staging-any/hyperkitty.sysusers 2021-10-21 19:51:59 UTC (rev 1032061)
@@ -0,0 +1 @@
+u hyperkitty - "GNU Mailman Archiver" -
Copied: hyperkitty/repos/community-staging-any/hyperkitty.tmpfiles (from rev 1032060, hyperkitty/trunk/hyperkitty.tmpfiles)
===================================================================
--- community-staging-any/hyperkitty.tmpfiles (rev 0)
+++ community-staging-any/hyperkitty.tmpfiles 2021-10-21 19:51:59 UTC (rev 1032061)
@@ -0,0 +1,8 @@
+z /etc/webapps/hyperkitty/settings_local.py 0640 root hyperkitty -
+z /etc/webapps/hyperkitty/urls.py 0640 root hyperkitty -
+d %L/hyperkitty 750 hyperkitty hyperkitty -
+d %S/hyperkitty - hyperkitty hyperkitty -
+d %S/hyperkitty/data 750 hyperkitty hyperkitty -
+d %S/hyperkitty/locale - hyperkitty hyperkitty -
+d %S/hyperkitty/static - hyperkitty hyperkitty -
+d %t/hyperkitty - hyperkitty hyperkitty -
Copied: hyperkitty/repos/community-staging-any/hyperkitty.uwsgi (from rev 1032060, hyperkitty/trunk/hyperkitty.uwsgi)
===================================================================
--- community-staging-any/hyperkitty.uwsgi (rev 0)
+++ community-staging-any/hyperkitty.uwsgi 2021-10-21 19:51:59 UTC (rev 1032061)
@@ -0,0 +1,25 @@
+[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/hyperkitty
+module = wsgi
+home = /
+touch-reload = %p
+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
More information about the arch-commits
mailing list