diff options
Diffstat (limited to 'www-apps')
-rw-r--r-- | www-apps/wger/Manifest | 2 | ||||
-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 | 17 | ||||
-rw-r--r-- | www-apps/wger/metadata.xml | 21 | ||||
-rw-r--r-- | www-apps/wger/wger-2.3_pre20241121.ebuild | 135 |
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 +} |