diff options
-rw-r--r-- | www-apps/wger/Manifest | 1 | ||||
-rw-r--r-- | www-apps/wger/files/wger.confd | 8 | ||||
-rw-r--r-- | www-apps/wger/files/wger.initd | 28 | ||||
-rw-r--r-- | www-apps/wger/files/yarn.patch | 16 | ||||
-rw-r--r-- | www-apps/wger/metadata.xml | 21 | ||||
-rw-r--r-- | www-apps/wger/wger-2.3_pre20240614.ebuild | 120 |
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 +} |