aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreric_G <46165813+ericgaspar@users.noreply.github.com>2025-09-24 22:57:50 +0200
committereric_G <46165813+ericgaspar@users.noreply.github.com>2025-09-24 22:57:50 +0200
commit192d0fa48372d1ac5a8f73947df2e8da5e5da54a (patch)
treef825f7ad0b74e99700b0b273cdfc4f27ea3683f8
parentf153dc5aa68f66d3fabe39baa54f7fcdad8e3ebf (diff)
parentfdc80e8c352611d3422a2b903840a25e5e277d01 (diff)
downloadmastodon_ynh-192d0fa48372d1ac5a8f73947df2e8da5e5da54a.tar.gz
mastodon_ynh-192d0fa48372d1ac5a8f73947df2e8da5e5da54a.tar.bz2
mastodon_ynh-192d0fa48372d1ac5a8f73947df2e8da5e5da54a.zip
Merge branch 'testing' into pr/466
-rw-r--r--README.md2
-rw-r--r--conf/cron10
-rw-r--r--conf/mastodon-sidekiq.service2
-rw-r--r--conf/mastodon-web.service2
-rw-r--r--manifest.toml17
-rw-r--r--scripts/_common.sh20
-rw-r--r--scripts/install34
-rw-r--r--scripts/remove4
-rw-r--r--scripts/restore10
-rw-r--r--scripts/upgrade28
10 files changed, 44 insertions, 85 deletions
diff --git a/README.md b/README.md
index e285399..eab8681 100644
--- a/README.md
+++ b/README.md
@@ -12,7 +12,7 @@ Libre and federated social network
[![🌐 Official app website](https://img.shields.io/badge/Official_app_website-darkgreen?style=for-the-badge)](https://joinmastodon.org/)
[![App Demo](https://img.shields.io/badge/App_Demo-blue?style=for-the-badge)](https://joinmastodon.org/)
-[![Version: 4.4.3~ynh1](https://img.shields.io/badge/Version-4.4.3~ynh1-rgb(18,138,11)?style=for-the-badge)](https://ci-apps.yunohost.org/ci/apps/mastodon/)
+[![Version: 4.4.5~ynh1](https://img.shields.io/badge/Version-4.4.5~ynh1-rgb(18,138,11)?style=for-the-badge)](https://ci-apps.yunohost.org/ci/apps/mastodon/)
<div align="center">
<a href="https://apps.yunohost.org/app/mastodon"><img height="100px" src="https://github.com/YunoHost/yunohost-artwork/raw/refs/heads/main/badges/neopossum-badges/badge_more_info_on_the_appstore.svg"/></a>
diff --git a/conf/cron b/conf/cron
index ca08f7f..f3d532c 100644
--- a/conf/cron
+++ b/conf/cron
@@ -1,7 +1,7 @@
# This is a system cron file, see crontab(5)
# m h dom mon dow user command
-@daily __APP__ cd __INSTALL_DIR__/live && PATH=__PATH_WITH_RUBY__ __LD_PRELOAD__ RAILS_ENV=production bin/tootctl media remove
-@monthly __APP__ cd __INSTALL_DIR__/live && PATH=__PATH_WITH_RUBY__ __LD_PRELOAD__ RAILS_ENV=production bin/tootctl media remove-orphans
-@monthly __APP__ cd __INSTALL_DIR__/live && PATH=__PATH_WITH_RUBY__ __LD_PRELOAD__ RAILS_ENV=production bin/tootctl accounts cull
-@monthly __APP__ cd __INSTALL_DIR__/live && PATH=__PATH_WITH_RUBY__ __LD_PRELOAD__ RAILS_ENV=production bin/tootctl statuses remove
-@monthly __APP__ cd __INSTALL_DIR__/live && PATH=__PATH_WITH_RUBY__ __LD_PRELOAD__ RAILS_ENV=production bin/tootctl preview_cards remove
+@daily __APP__ cd __INSTALL_DIR__/live && PATH=__PATH_WITH_RUBY__ LD_PRELOAD=libjemalloc.so RAILS_ENV=production bin/tootctl media remove
+@monthly __APP__ cd __INSTALL_DIR__/live && PATH=__PATH_WITH_RUBY__ LD_PRELOAD=libjemalloc.so RAILS_ENV=production bin/tootctl media remove-orphans
+@monthly __APP__ cd __INSTALL_DIR__/live && PATH=__PATH_WITH_RUBY__ LD_PRELOAD=libjemalloc.so RAILS_ENV=production bin/tootctl accounts cull
+@monthly __APP__ cd __INSTALL_DIR__/live && PATH=__PATH_WITH_RUBY__ LD_PRELOAD=libjemalloc.so RAILS_ENV=production bin/tootctl statuses remove
+@monthly __APP__ cd __INSTALL_DIR__/live && PATH=__PATH_WITH_RUBY__ LD_PRELOAD=libjemalloc.so RAILS_ENV=production bin/tootctl preview_cards remove
diff --git a/conf/mastodon-sidekiq.service b/conf/mastodon-sidekiq.service
index 0048c61..1ad6590 100644
--- a/conf/mastodon-sidekiq.service
+++ b/conf/mastodon-sidekiq.service
@@ -9,7 +9,7 @@ WorkingDirectory=__INSTALL_DIR__/live
Environment="RAILS_ENV=production"
Environment="DB_POOL=25"
Environment="MALLOC_ARENA_MAX=2"
-Environment="__LD_PRELOAD__"
+Environment="LD_PRELOAD=libjemalloc.so"
Environment="PATH=__PATH_WITH_RUBY__"
ExecStart=__INSTALL_DIR__/live/bin/bundle exec sidekiq -c 25
TimeoutSec=15
diff --git a/conf/mastodon-web.service b/conf/mastodon-web.service
index 2635c71..5b3da39 100644
--- a/conf/mastodon-web.service
+++ b/conf/mastodon-web.service
@@ -8,7 +8,7 @@ User=__APP__
WorkingDirectory=__INSTALL_DIR__/live
Environment="RAILS_ENV=production"
Environment="PORT=__PORT_WEB__"
-Environment="__LD_PRELOAD__"
+Environment="LD_PRELOAD=libjemalloc.so"
Environment="PATH=__PATH_WITH_RUBY__"
ExecStart=__INSTALL_DIR__/live/bin/bundle exec puma -C config/puma.rb
ExecReload=/bin/kill -SIGUSR1 $MAINPID
diff --git a/manifest.toml b/manifest.toml
index 3575af5..03fe662 100644
--- a/manifest.toml
+++ b/manifest.toml
@@ -5,7 +5,7 @@ name = "Mastodon"
description.en = "Libre and federated social network"
description.fr = "Réseau social libre et fédéré"
-version = "4.4.3~ynh1"
+version = "4.4.5~ynh1"
maintainers = []
@@ -19,7 +19,7 @@ cpe = "cpe:2.3:a:joinmastodon:mastodon"
fund = "https://joinmastodon.org/sponsors"
[integration]
-yunohost = ">= 12.0.10"
+yunohost = ">= 12.1.17"
helpers_version = "2.1"
architectures = "all"
multi_instance = true
@@ -52,8 +52,8 @@ ram.runtime = "500M"
[resources]
[resources.sources]
[resources.sources.main]
- url = "https://github.com/mastodon/mastodon/archive/refs/tags/v4.4.3.tar.gz"
- sha256 = "ede116b80a525462f5ea68d046a4cdd787930fc6d2f9327c140756311ee07848"
+ url = "https://github.com/mastodon/mastodon/archive/refs/tags/v4.4.5.tar.gz"
+ sha256 = "add9ee5caae722549a2f7ed2129ecaed0945a1b2f942afbdbb7bd8ab73961fe6"
autoupdate.strategy = "latest_github_release"
[resources.sources.redis_migration]
@@ -67,7 +67,8 @@ ram.runtime = "500M"
allow_email = true
[resources.install_dir]
-
+ group = "www-data:r-x"
+
[resources.permissions]
main.url = "/"
@@ -86,3 +87,9 @@ ram.runtime = "500M"
[resources.database]
type = "postgresql"
+
+ [resources.nodejs]
+ version = "22"
+
+ [resources.ruby]
+ version = "3.4.5"
diff --git a/scripts/_common.sh b/scripts/_common.sh
index 089f541..0ad6190 100644
--- a/scripts/_common.sh
+++ b/scripts/_common.sh
@@ -5,23 +5,3 @@
#=================================================
memory_needed="2560"
-ruby_version="3.4.5"
-nodejs_version="22"
-
-case $YNH_ARCH in
- amd64)
- ld_preload="LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so"
- ;;
- arm64)
- ld_preload="LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libjemalloc.so"
- ;;
- armhf)
- ld_preload="LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libjemalloc.so"
- ;;
- armel)
- ld_preload="LD_PRELOAD=/usr/lib/arm-linux-gnueabi/libjemalloc.so"
- ;;
- i386)
- ld_preload="LD_PRELOAD=/usr/lib/i386-linux-gnu/libjemalloc.so"
- ;;
-esac
diff --git a/scripts/install b/scripts/install
index 6efd8ef..ddff21c 100644
--- a/scripts/install
+++ b/scripts/install
@@ -8,14 +8,6 @@ admin_mail=$(ynh_user_get_info --username=$admin --key=mail)
ynh_app_setting_set --key=service --value="$app-web.service"
#=================================================
-# INSTALL DEPENDENCIES
-#=================================================
-ynh_script_progression "Installing Ruby and NodeJS..."
-
-ynh_ruby_install
-ynh_nodejs_install
-
-#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
ynh_script_progression "Setting up source files..."
@@ -79,19 +71,19 @@ ynh_script_progression "Building app..."
pushd "$install_dir/live"
gem update --system
gem install bundler --no-document
- ynh_hide_warnings ynh_exec_as_app $ld_preload bin/bundle config deployment 'true'
- ynh_hide_warnings ynh_exec_as_app $ld_preload bin/bundle config without 'development test'
- ynh_hide_warnings ynh_exec_as_app $ld_preload bin/bundle config set force_ruby_platform true --quiet
- ynh_hide_warnings ynh_exec_as_app $ld_preload bin/bundle install -j$(getconf _NPROCESSORS_ONLN)
+ ynh_hide_warnings ynh_exec_as_app LD_PRELOAD=libjemalloc.so bin/bundle config deployment 'true'
+ ynh_hide_warnings ynh_exec_as_app LD_PRELOAD=libjemalloc.so bin/bundle config without 'development test'
+ ynh_hide_warnings ynh_exec_as_app LD_PRELOAD=libjemalloc.so bin/bundle config set force_ruby_platform true --quiet
+ ynh_hide_warnings ynh_exec_as_app LD_PRELOAD=libjemalloc.so bin/bundle install -j$(getconf _NPROCESSORS_ONLN)
env corepack enable
- echo Y | ynh_hide_warnings ynh_exec_as_app yarn workspaces focus --production
- ynh_hide_warnings ynh_exec_as_app yarn install --immutable
+ echo Y | ynh_exec_as_app yarn workspaces focus --production
+ ynh_exec_as_app yarn install --immutable
echo "SAFETY_ASSURED=1">> $config
# Generate vapid keys
- ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production $ld_preload bin/bundle exec rails mastodon:webpush:generate_vapid_key > vapid_key.txt
+ ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production LD_PRELOAD=libjemalloc.so bin/bundle exec rails mastodon:webpush:generate_vapid_key > vapid_key.txt
# Generate active record encryption
- ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production $ld_preload bin/bundle exec rails db:encryption:init > active_record_encryption.txt
+ ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production LD_PRELOAD=libjemalloc.so bin/bundle exec rails db:encryption:init > active_record_encryption.txt
popd
# Re-generate config with vapid keys and active record encryption
@@ -111,12 +103,12 @@ ynh_delete_file_checksum "$config"
ynh_config_add --template=".env.production.sample" --destination="$config"
pushd "$install_dir/live"
- ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production $ld_preload bin/bundle exec rails db:migrate --quiet
- ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production $ld_preload bin/bundle exec rails db:seed --quiet
- ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production $ld_preload bin/bundle exec rails assets:precompile --quiet
+ ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production LD_PRELOAD=libjemalloc.so bin/bundle exec rails db:migrate --quiet
+ ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production LD_PRELOAD=libjemalloc.so bin/bundle exec rails db:seed --quiet
+ ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production LD_PRELOAD=libjemalloc.so bin/bundle exec rails assets:precompile --quiet
# Create the first admin user
- ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production $ld_preload bin/tootctl accounts create "$admin" --email="$admin_mail" --confirmed --role=Owner
- ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production $ld_preload bin/tootctl accounts approve "$admin"
+ ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production LD_PRELOAD=libjemalloc.so bin/tootctl accounts create "$admin" --email="$admin_mail" --confirmed --role=Owner
+ ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production LD_PRELOAD=libjemalloc.so bin/tootctl accounts approve "$admin"
popd
#=================================================
diff --git a/scripts/remove b/scripts/remove
index 6b978fb..0f07807 100644
--- a/scripts/remove
+++ b/scripts/remove
@@ -35,10 +35,6 @@ ynh_safe_rm "/etc/cron.d/$app"
# Remote logrotate config
ynh_config_remove_logrotate
-# Remove metapackage and its dependencies
-ynh_ruby_remove
-ynh_nodejs_remove
-
# Remove swap
ynh_del_swap
diff --git a/scripts/restore b/scripts/restore
index 6052da2..2491c12 100644
--- a/scripts/restore
+++ b/scripts/restore
@@ -37,14 +37,6 @@ ynh_script_progression "Adding $swap_needed Mo to swap..."
ynh_add_swap --size=$swap_needed
#=================================================
-# REINSTALL DEPENDENCIES
-#=================================================
-ynh_script_progression "Reinstalling Ruby and NodeJS..."
-
-ynh_ruby_install
-ynh_nodejs_install
-
-#=================================================
# BUILD APP
#=================================================
ynh_script_progression "Building app..."
@@ -52,7 +44,7 @@ ynh_script_progression "Building app..."
pushd "$install_dir/live"
gem update --system
gem install bundler --no-document
- ynh_hide_warnings ynh_exec_as_app $ld_preload bin/bundle install --redownload -j$(getconf _NPROCESSORS_ONLN)
+ ynh_hide_warnings ynh_exec_as_app LD_PRELOAD=libjemalloc.so bin/bundle install --redownload -j$(getconf _NPROCESSORS_ONLN)
popd
#=================================================
diff --git a/scripts/upgrade b/scripts/upgrade
index 53dcced..24b131e 100644
--- a/scripts/upgrade
+++ b/scripts/upgrade
@@ -46,14 +46,6 @@ ynh_script_progression "Adding $swap_needed Mo to swap..."
ynh_add_swap --size=$swap_needed
#=================================================
-# UPGRADE DEPENDENCIES
-#=================================================
-ynh_script_progression "Upgrading Ruby and NodeJS..."
-
-ynh_ruby_install
-ynh_nodejs_install
-
-#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#=================================================
ynh_script_progression "Upgrading source files..."
@@ -75,14 +67,14 @@ ynh_script_progression "Building assets..."
pushd "$install_dir/live"
gem update --system
gem install bundler --no-document
- ynh_hide_warnings ynh_exec_as_app $ld_preload bin/bundle config deployment 'true'
- ynh_hide_warnings ynh_exec_as_app $ld_preload bin/bundle config without 'development test'
- ynh_hide_warnings ynh_exec_as_app $ld_preload bin/bundle config set force_ruby_platform true --quiet
- ynh_hide_warnings ynh_exec_as_app $ld_preload bin/bundle install -j$(getconf _NPROCESSORS_ONLN)
+ ynh_hide_warnings ynh_exec_as_app LD_PRELOAD=libjemalloc.so bin/bundle config deployment 'true'
+ ynh_hide_warnings ynh_exec_as_app LD_PRELOAD=libjemalloc.so bin/bundle config without 'development test'
+ ynh_hide_warnings ynh_exec_as_app LD_PRELOAD=libjemalloc.so bin/bundle config set force_ruby_platform true --quiet
+ ynh_hide_warnings ynh_exec_as_app LD_PRELOAD=libjemalloc.so bin/bundle install -j$(getconf _NPROCESSORS_ONLN)
env corepack enable
- echo Y | ynh_hide_warnings ynh_exec_as_app yarn workspaces focus --production
- ynh_hide_warnings ynh_exec_as_app yarn install --immutable
+ echo Y | ynh_exec_as_app yarn workspaces focus --production
+ ynh_exec_as_app yarn install --immutable
popd
chown -R "$app:www-data" "$install_dir/live/public"
@@ -119,7 +111,7 @@ if ynh_app_upgrading_from_version_before 4.3.2~ynh1; then
pushd "$install_dir/live"
# Generate active record encryption
- ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production $ld_preload bin/bundle exec rails db:encryption:init > active_record_encryption.txt
+ ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production LD_PRELOAD=libjemalloc.so bin/bundle exec rails db:encryption:init > active_record_encryption.txt
active_record_encryption_deterministic_key=$(grep -oP "ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=\K.+" "$install_dir/live/active_record_encryption.txt")
ynh_app_setting_set --key=active_record_encryption_deterministic_key --value="$active_record_encryption_deterministic_key"
active_record_encryption_key_derivation_salt=$(grep -oP "ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=\K.+" "$install_dir/live/active_record_encryption.txt")
@@ -140,11 +132,11 @@ ynh_config_add --template=".env.production.sample" --destination="$config"
ynh_script_progression "Applying migrations..."
pushd "$install_dir/live"
- ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production $ld_preload bin/bundle exec rails db:migrate --quiet
- ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production $ld_preload bin/bundle exec rails assets:precompile --quiet
+ ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production LD_PRELOAD=libjemalloc.so bin/bundle exec rails db:migrate --quiet
+ ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production LD_PRELOAD=libjemalloc.so bin/bundle exec rails assets:precompile --quiet
# Apply redis namespace migration (https://github.com/mastodon/redis_namespace_migration)
- ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production COREPACK_ENABLE_DOWNLOAD_PROMPT=0 $ld_preload bin/rails runner rename.rb
+ ynh_hide_warnings ynh_exec_as_app RAILS_ENV=production COREPACK_ENABLE_DOWNLOAD_PROMPT=0 LD_PRELOAD=libjemalloc.so bin/rails runner rename.rb
redis_namespace="$(ynh_app_setting_get --key=redis_namespace)"
if [ $redis_namespace ]; then
if [ ynh_app_setting_get --key=es_enabled == "true" ] && [ ynh_app_setting_get --key=es_prefix == "" ]; then