aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Roy <julien@jroy.ca>2024-06-15 14:36:48 -0400
committerJulien Roy <julien@jroy.ca>2024-06-15 14:36:48 -0400
commit11545abc0d394162ca593fba2a0067bd119d0e95 (patch)
treeb8fdae60364b42c97ec158529fbbaf932efcdb1c
parentb4e2919f28ceeb72d318d1aa0602f70cb7378792 (diff)
downloadMrRoy-Overlay-11545abc0d394162ca593fba2a0067bd119d0e95.tar.gz
MrRoy-Overlay-11545abc0d394162ca593fba2a0067bd119d0e95.tar.bz2
MrRoy-Overlay-11545abc0d394162ca593fba2a0067bd119d0e95.zip
www-apps/wger: new package, add 2.3_pre20240614
Signed-off-by: Julien Roy <julien@jroy.ca>
-rw-r--r--www-apps/wger/Manifest1
-rw-r--r--www-apps/wger/files/wger.confd8
-rw-r--r--www-apps/wger/files/wger.initd28
-rw-r--r--www-apps/wger/files/yarn.patch16
-rw-r--r--www-apps/wger/metadata.xml21
-rw-r--r--www-apps/wger/wger-2.3_pre20240614.ebuild120
6 files changed, 194 insertions, 0 deletions
diff --git a/www-apps/wger/Manifest b/www-apps/wger/Manifest
new file mode 100644
index 0000000..d719241
--- /dev/null
+++ b/www-apps/wger/Manifest
@@ -0,0 +1 @@
+DIST wger-2.3_pre20240614.gh.tar.gz 7878728 BLAKE2B ec8808cecf0b76bb5e497c697300e97c1b8f55b72e44f988288efca5ebbb3c36d8d38c4b456f1b6c7639008a1c25d54fa9bf1f5ca5ca2fcb6a11379d69c31ba1 SHA512 49a91c975f858ad0ab2cda4093494a4ee20b9558c5922940092ebf3f589059e0862019fc34b7e92c3f3c8584f9e5c05d47db0774a7a43cf75b7241d27080e5b6
diff --git a/www-apps/wger/files/wger.confd b/www-apps/wger/files/wger.confd
new file mode 100644
index 0000000..7f90358
--- /dev/null
+++ b/www-apps/wger/files/wger.confd
@@ -0,0 +1,8 @@
+# Path to the wger settings file
+# SETTINGS_FILE=/etc/wger/settings.py
+
+# Address to listen to
+# LISTEN_ADDR=0.0.0.0
+
+# Port to listen to
+# LISTEN_PORT=8000
diff --git a/www-apps/wger/files/wger.initd b/www-apps/wger/files/wger.initd
new file mode 100644
index 0000000..e3988c3
--- /dev/null
+++ b/www-apps/wger/files/wger.initd
@@ -0,0 +1,28 @@
+#!/sbin/openrc-run
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+SETTINGS_FILE=${SETTINGS_FILE:-/etc/wger/settings.py}
+LISTEN_ADDR=${LISTEN_ADDR:-0.0.0.0}
+LISTEN_PORT=${LISTEN_PORT:-8000}
+
+name="wger daemon"
+description="Self hosted FLOSS fitness/workout, nutrition and weight tracker"
+
+pidfile="/run/${RC_SVCNAME}.pid"
+command="/usr/bin/python"
+command_args="-m wger start --settings-path=${SETTINGS_FILE} --address=${LISTEN_ADDR} --port=${LISTEN_PORT}"
+command_background=true
+command_user="wger:wger"
+
+output_log="/var/log/wger.log"
+error_log="/var/log/wger.log"
+
+depend() {
+ need net
+}
+
+start_pre() {
+ checkpath -d -m 0755 -o "$command_user" /var/lib/wger
+ checkpath -f -m 0644 -o "$command_user" "$output_log"
+}
diff --git a/www-apps/wger/files/yarn.patch b/www-apps/wger/files/yarn.patch
new file mode 100644
index 0000000..db2e20a
--- /dev/null
+++ b/www-apps/wger/files/yarn.patch
@@ -0,0 +1,16 @@
+diff --git a/wger/tasks.py b/wger/tasks.py
+index 81669a12f..9244973d2 100644
+--- a/wger/tasks.py
++++ b/wger/tasks.py
+@@ -91,11 +91,6 @@ def bootstrap(context, settings_path=None, database_path=None):
+ load_fixtures(context, settings_path=settings_path)
+ create_or_reset_admin(context, settings_path=settings_path)
+
+- # Download JS and CSS libraries
+- context.run('yarn install')
+- context.run('yarn build:css:sass')
+-
+-
+ @task(
+ help={
+ 'settings-path': 'Path to settings file (absolute path). Leave empty for default',
diff --git a/www-apps/wger/metadata.xml b/www-apps/wger/metadata.xml
new file mode 100644
index 0000000..e255236
--- /dev/null
+++ b/www-apps/wger/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Julien Roy</name>
+ <email>julien@jroy.ca</email>
+ </maintainer>
+ <longdescription>
+wger (ˈvɛɡɐ) Workout Manager is a free, open source web application that helps you manage your personal workouts, weight and diet plans and can also be used as a simple gym management utility. It offers a REST API as well, for easy integration with other projects and tools.
+ </longdescription>
+ <upstream>
+ <maintainer>
+ <name>Roland Geider</name>
+ <email>roland@geider.net</email>
+ </maintainer>
+ <bugs-to>https://github.com/wger-project/wger/issues</bugs-to>
+ <changelog>https://wger.readthedocs.io/en/latest/changelog.html</changelog>
+ <doc>https://wger.readthedocs.io/</doc>
+ <remote-id type="github">wger-project/wger</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/www-apps/wger/wger-2.3_pre20240614.ebuild b/www-apps/wger/wger-2.3_pre20240614.ebuild
new file mode 100644
index 0000000..bab397d
--- /dev/null
+++ b/www-apps/wger/wger-2.3_pre20240614.ebuild
@@ -0,0 +1,120 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{11..12} )
+DISTUTILS_USE_PEP517=hatchling
+
+inherit distutils-r1
+
+COMMIT="e68afe7fc3394432dd19949ea28c433ae7278159"
+DESCRIPTION="FLOSS workout, fitness and weight manager/tracker"
+HOMEPAGE="https://github.com/wger-project/wger"
+SRC_URI="https://github.com/wger-project/wger/archive/${COMMIT}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}/${PN}-${COMMIT}"
+
+LICENSE="AGPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+# For Yarn/NPM
+RESTRICT="network-sandbox"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ acct-user/wger
+ acct-group/wger
+
+ >=dev-python/django-4.2.13[${PYTHON_USEDEP}]
+ >=dev-python/bleach-6.1.0[${PYTHON_USEDEP}]
+ >=dev-python/celery-5.4.0[${PYTHON_USEDEP}]
+ >=dev-python/crispy-bootstrap5-2024.2[${PYTHON_USEDEP}]
+ >=dev-python/django-activity-stream-2.0.0[${PYTHON_USEDEP}]
+ >=dev-python/django-axes-6.4.0[${PYTHON_USEDEP}]
+ >=dev-python/django4-bootstrap-breadcrumbs-0.1.0[${PYTHON_USEDEP}]
+ >=dev-python/django-crispy-forms-2.1[${PYTHON_USEDEP}]
+ >=dev-python/django-email-verification-0.3.3[${PYTHON_USEDEP}]
+ >=dev-python/django-environ-0.11.2[${PYTHON_USEDEP}]
+ >=dev-python/django-formtools-2.5[${PYTHON_USEDEP}]
+ >=dev-python/django-prometheus-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/django-recaptcha-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/django-simple-history-3.7[${PYTHON_USEDEP}]
+ >=dev-python/django-storages-1.14[${PYTHON_USEDEP}]
+ >=dev-python/django-compressor-4.4[${PYTHON_USEDEP}]
+ >=dev-python/drf-spectacular-0.27.2[${PYTHON_USEDEP}]
+ >=dev-python/drf-spectacular-sidecar-2024.6.1[${PYTHON_USEDEP}]
+ >=dev-python/easy-thumbnails-2.8.5[${PYTHON_USEDEP}]
+ >=dev-python/flower-2.0.1[${PYTHON_USEDEP}]
+ >=dev-python/fontawesomefree-6.5.1[${PYTHON_USEDEP}]
+ >=dev-python/icalendar-5.0.12[${PYTHON_USEDEP}]
+ >=dev-python/invoke-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/openfoodfacts-0.3.0[${PYTHON_USEDEP}]
+ >=dev-python/pillow-10.3.0[${PYTHON_USEDEP}]
+ >=dev-python/reportlab-4.2.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.32.3[${PYTHON_USEDEP}]
+ >=dev-python/tqdm-4.66.4[${PYTHON_USEDEP}]
+ >=dev-python/tzdata-2024.1[${PYTHON_USEDEP}]
+ >=dev-python/django-cors-headers-4.3.1[${PYTHON_USEDEP}]
+ >=dev-python/django-filter-24.2[${PYTHON_USEDEP}]
+ >=dev-python/djangorestframework-3.15.1[${PYTHON_USEDEP}]
+ >=dev-python/djangorestframework-simplejwt-5.3.1[${PYTHON_USEDEP}]
+ >=dev-python/django-sortedm2m-3.1[${PYTHON_USEDEP}]
+ >=dev-python/pymongo-4.7.1[${PYTHON_USEDEP}]
+ >=dev-python/django-extensions-3.2[${PYTHON_USEDEP}]
+ >=dev-python/django-debug-toolbar-4.3.0[${PYTHON_USEDEP}]
+ >=dev-python/psycopg-2.9.9[${PYTHON_USEDEP}]
+ >=dev-python/django-redis-5.4.0[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ net-libs/nodejs[npm]
+ >=sys-apps/yarn-1.22.21
+ dev-lang/sassc
+"
+
+PATCHES=(
+ # Remove yarn commands from tasks.py
+ # Since they are done in python_install
+ "${FILESDIR}"/yarn.patch
+)
+
+eyarn() {
+ yarn \
+ --non-interactive \
+ --modules-folder "${BUILD_DIR}/install$(python_get_sitedir)/wger/core/static/yarn/" \
+ "${@}" || die
+}
+
+python_compile() {
+ distutils-r1_python_compile
+
+ local WGER_PATH
+ WGER_PATH="${BUILD_DIR}/install$(python_get_sitedir)/${PN}/"
+
+ cp "${S}"/package.json "${WGER_PATH}" || die
+ eyarn --cwd "${WGER_PATH}" install
+
+ sassc "${WGER_PATH}"core/static/scss/main.scss "${WGER_PATH}"core/static/yarn/bootstrap-compiled.css || die
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ python_moduleinto wger
+ python_foreach_impl python_domodule "${S}"/wger/settings_global.py
+
+ newinitd "${FILESDIR}/${PN}.initd" "${PN}"
+ newconfd "${FILESDIR}/${PN}.confd" "${PN}"
+}
+
+pkg_postinst() {
+ einfo
+ elog "To configure wger, you need to generate a settings file and running the bootstrap using these command:"
+ elog "wger create-settings --settings-path=/etc/wger/settings.py --database-type={sqlite3,postgresql}"
+ elog "wger bootstrap --settings-path=/etc/wger/settings.py [--database-path=<sqlite3 database path>]"
+ elog "wger load-online-fixtures --settings-path=/etc/wger/settings.py"
+ elog "Make sure to review the other settings in settings.py"
+ elog "Refer to https://wger.readthedocs.io/en/latest/settings.html"
+ einfo
+}