aboutsummaryrefslogtreecommitdiff
path: root/www-apps/wger
diff options
context:
space:
mode:
authorJulien Roy <julien@jroy.ca>2024-11-24 16:35:39 -0500
committerJulien Roy <julien@jroy.ca>2024-11-24 16:35:39 -0500
commit742985225b74798a8490d4b34ed337a7cdb04fdc (patch)
treee987c9a469de5fab84d98036d37b0e257dcddbba /www-apps/wger
parentafd71b46f9b782f5f768ca859321f4a590ad0616 (diff)
downloadwger-overlay-742985225b74798a8490d4b34ed337a7cdb04fdc.tar.gz
wger-overlay-742985225b74798a8490d4b34ed337a7cdb04fdc.tar.bz2
wger-overlay-742985225b74798a8490d4b34ed337a7cdb04fdc.zip
www-apps/wger: new package, add 2.3_pre20241121
Signed-off-by: Julien Roy <julien@jroy.ca>
Diffstat (limited to 'www-apps/wger')
-rw-r--r--www-apps/wger/Manifest2
-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.patch17
-rw-r--r--www-apps/wger/metadata.xml21
-rw-r--r--www-apps/wger/wger-2.3_pre20241121.ebuild135
6 files changed, 211 insertions, 0 deletions
diff --git a/www-apps/wger/Manifest b/www-apps/wger/Manifest
new file mode 100644
index 0000000..952ff9a
--- /dev/null
+++ b/www-apps/wger/Manifest
@@ -0,0 +1,2 @@
+DIST wger-2.3_pre20241121-npm.tar.xz 5784904 BLAKE2B ea3649d90868c396b594d4b58ff05e836457d81082f1dc7b949661e2aa5253d3f78c694e90197b2302f74224d3b748e22974cf2d06f35ab05bdf8a33d5d06e68 SHA512 1f804a1b247193c24d8f2bddd807770b8c1ef49ffbf1f2da8ce61bcdbb5553064e684ede1af2916d398aa862407bbecff3a6950db726b2c35cad0481a5a64986
+DIST wger-2.3_pre20241121.gh.tar.gz 7942028 BLAKE2B bcbbc6d3d7c60129ca175e4dede7f3e129e73b8bb14a9f65a184b4dcde0f48897d9591a5081d6a9d3f8572e2ae2900563b00ef51a52c8d0d894accf729e9b2e3 SHA512 510339d4c5cbe1208abdcf00a225e2dc1893481921d510e9c3abc6a8a60ed834395c306b37cd92a8c38c69dc532db2a48501b0d70b53a982f508ddc2f2a03102
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..6491299
--- /dev/null
+++ b/www-apps/wger/files/yarn.patch
@@ -0,0 +1,17 @@
+diff --git a/wger/tasks.py b/wger/tasks.py
+index b1b4b7c65..629814711 100644
+--- a/wger/tasks.py
++++ b/wger/tasks.py
+@@ -91,12 +91,6 @@ def bootstrap(context, settings_path=None, database_path=None, process_static=Tr
+ load_fixtures(context, settings_path=settings_path)
+ create_or_reset_admin(context, settings_path=settings_path)
+
+- # Download JS and CSS libraries
+- if process_static:
+- 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_pre20241121.ebuild b/www-apps/wger/wger-2.3_pre20241121.ebuild
new file mode 100644
index 0000000..2e10394
--- /dev/null
+++ b/www-apps/wger/wger-2.3_pre20241121.ebuild
@@ -0,0 +1,135 @@
+# 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="c7147d05fbd13fada7a926925e921a389574e897"
+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
+ https://jroy.ca/dist/${P}-npm.tar.xz
+"
+S="${WORKDIR}/${PN}-${COMMIT}"
+
+LICENSE="AGPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ acct-user/wger
+ acct-group/wger
+
+ >=dev-python/django-4.2.16[${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-7.0.0[${PYTHON_USEDEP}]
+ >=dev-python/django4-bootstrap-breadcrumbs-0.10.0[${PYTHON_USEDEP}]
+ >=dev-python/django-crispy-forms-2.3[${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.5[${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.10[${PYTHON_USEDEP}]
+ >=dev-python/flower-2.0.1[${PYTHON_USEDEP}]
+ >=dev-python/fontawesomefree-6.6.0[${PYTHON_USEDEP}]
+ >=dev-python/icalendar-6.0.1[${PYTHON_USEDEP}]
+ >=dev-python/invoke-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/openfoodfacts-2.2.0[${PYTHON_USEDEP}]
+ >=dev-python/pillow-10.4.0[${PYTHON_USEDEP}]
+ >=dev-python/reportlab-4.2.5[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.32.3[${PYTHON_USEDEP}]
+ >=dev-python/tqdm-4.66.5[${PYTHON_USEDEP}]
+ >=dev-python/tzdata-2024.2[${PYTHON_USEDEP}]
+ >=dev-python/django-cors-headers-4.6.0[${PYTHON_USEDEP}]
+ >=dev-python/django-filter-24.3[${PYTHON_USEDEP}]
+ >=dev-python/djangorestframework-3.15.2[${PYTHON_USEDEP}]
+ >=dev-python/djangorestframework-simplejwt-5.3.1[${PYTHON_USEDEP}]
+ >=dev-python/django-sortedm2m-3.1[${PYTHON_USEDEP}]
+ >=dev-python/pymongo-4.10.1[${PYTHON_USEDEP}]
+ >=dev-python/django-extensions-3.2[${PYTHON_USEDEP}]
+ >=dev-python/django-debug-toolbar-4.4.5[${PYTHON_USEDEP}]
+ >=dev-python/psycopg-3.2.3[${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 \
+ --offline \
+ --modules-folder "${BUILD_DIR}"/install"$(python_get_sitedir)"/"${PN}"/core/static/yarn/ \
+ --cache-folder "${T}/yarn-cache" \
+ --use-yarnrc "${S}"/.yarnrc || die
+}
+
+src_unpack() {
+ default
+ cat << EOF > "${S}"/.yarnrc || die
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+yarn-offline-mirror "../npm-packages-offline-cache"
+EOF
+}
+
+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
+ cp "${WORKDIR}"/yarn.lock "${WGER_PATH}" || die
+ cd "${WGER_PATH}" || die
+ eyarn
+
+ 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
+}