From 982f3bbde2178906fd1b8244a2bc207281b8a4ea Mon Sep 17 00:00:00 2001 From: nemsia Date: Tue, 12 Jun 2018 18:32:43 +0200 Subject: [PATCH 1/5] Testing 2.4 (#90) * Ready to Yunohost 3 and Debian Stretch * Remove mastodon cron tasks * Fix Upgrade yarn not installed * Fix Upgrade --- README.md | 2 +- conf/app-mastodon.src | 4 +- conf/crontab_mastodon | 7 --- manifest.json | 2 +- scripts/backup | 12 +--- scripts/install | 29 ++++----- scripts/remove | 7 ++- scripts/restore | 10 +-- scripts/upgrade | 138 +++++++++++++++++++++++++----------------- 9 files changed, 109 insertions(+), 102 deletions(-) delete mode 100644 conf/crontab_mastodon diff --git a/README.md b/README.md index 926ab36..103ebcd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Mastodon for YunoHost -[![Latest Version](https://img.shields.io/badge/version-2.2.0-green.svg?style=flat)](https://github.com/YunoHost-Apps/mastodon_ynh/releases) +[![Latest Version](https://img.shields.io/badge/version-2.4.0-green.svg?style=flat)](https://github.com/YunoHost-Apps/mastodon_ynh/releases) [![Status](https://img.shields.io/badge/status-testing-yellow.svg?style=flat)](https://github.com/YunoHost-Apps/mastodon_ynh/milestones) [![Dependencies](https://img.shields.io/badge/dependencies-includes-lightgrey.svg?style=flat)](https://github.com/YunoHost-Apps/mastodon_ynh#dependencies) [![GitHub license](https://img.shields.io/badge/license-GPLv3-blue.svg?style=flat)](https://raw.githubusercontent.com/YunoHost-Apps/mastodon_ynh/master/LICENSE) diff --git a/conf/app-mastodon.src b/conf/app-mastodon.src index 62d10c6..84b72fb 100644 --- a/conf/app-mastodon.src +++ b/conf/app-mastodon.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/tootsuite/mastodon/archive/v2.3.3.tar.gz -SOURCE_SUM=b2b2e2ee7cc034e92258263500c423b900611407db67682777eef0526118f66e +SOURCE_URL=https://github.com/tootsuite/mastodon/archive/v2.4.0.tar.gz +SOURCE_SUM=3d4904f30c28591333b1cf4c03173849dd6983ab00685f61e50e594160c672ee SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true diff --git a/conf/crontab_mastodon b/conf/crontab_mastodon deleted file mode 100644 index 62caff0..0000000 --- a/conf/crontab_mastodon +++ /dev/null @@ -1,7 +0,0 @@ -@daily __APP__ cd /opt/__APP__/live && RAILS_ENV=production /opt/__APP__/.rbenv/shims/bundle exec rake mastodon:media:clear - -@daily __APP__ cd /opt/__APP__/live && RAILS_ENV=production /opt/__APP__/.rbenv/shims/bundle exec rake mastodon:push:refresh - -@daily __APP__ cd /opt/__APP__/live && RAILS_ENV=production /opt/__APP__/.rbenv/shims/bundle exec rake mastodon:feeds:clear - -@daily __APP__ cd /opt/__APP__/live && RAILS_ENV=production /opt/__APP__/.rbenv/shims/bundle exec rake mastodon:users:clear diff --git a/manifest.json b/manifest.json index dc1bde6..3e6e9b4 100644 --- a/manifest.json +++ b/manifest.json @@ -9,7 +9,7 @@ "en": "Mastodon is a free, open-source social network.", "fr": "Mastodon est un réseau social gratuit et open source." }, - "version": "2.3.3-1", + "version": "2.4.0", "url": "https://github.com/tootsuite/mastodon", "license": "AGPL-3.0-or-later", "maintainer": { diff --git a/scripts/backup b/scripts/backup index 5e134ac..0846afe 100644 --- a/scripts/backup +++ b/scripts/backup @@ -65,16 +65,10 @@ ynh_backup "/etc/systemd/system/$app-web.service" ynh_backup "/etc/systemd/system/$app-sidekiq.service" ynh_backup "/etc/systemd/system/$app-streaming.service" -#================================================= -# BACKUP THE CRON FILE -#================================================= - -# Copy the nginx conf files -ynh_backup "/etc/cron.d/$app" - #================================================= # BACKUP THE sources.list FILES #================================================= - -ynh_backup "/etc/apt/sources.list.d/backports.list" "apt_backports.list" +if [ "$(lsb_release --codename --short)" == "jessie" ]; then + ynh_backup "/etc/apt/sources.list.d/backports.list" "apt_backports.list" +fi ynh_backup "/etc/apt/sources.list.d/yarn.list" "apt_yarn.list" diff --git a/scripts/install b/scripts/install index 8e505e7..cbce4e3 100644 --- a/scripts/install +++ b/scripts/install @@ -80,7 +80,9 @@ if [[ "$arch" = arm* ]]; then fi # Install source.list debian package backports & yarn -cp ../conf/backports.list /etc/apt/sources.list.d/ +if [ "$(lsb_release --codename --short)" == "jessie" ]; then +sudo cp ../conf/backports.list /etc/apt/sources.list.d/ +fi curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - cp ../conf/yarn.list /etc/apt/sources.list.d/ ynh_package_update @@ -170,14 +172,14 @@ eval \"\$(rbenv init -)\"" > $final_path/.profile # Install ruby-build ( - exec_as "$app" $final_path/.rbenv/bin/rbenv install 2.5.0 - exec_as "$app" $final_path/.rbenv/bin/rbenv global 2.5.0 - exec_as "$app" $final_path/.rbenv/versions/2.5.0/bin/ruby -v + exec_as "$app" $final_path/.rbenv/bin/rbenv install 2.5.1 + exec_as "$app" $final_path/.rbenv/bin/rbenv global 2.5.1 + exec_as "$app" $final_path/.rbenv/versions/2.5.1/bin/ruby -v ) # Create symlink for ruby rm /usr/bin/ruby || true -ln -s $final_path/.rbenv/versions/2.5.0/bin/ruby /usr/bin/ruby || true +ln -s $final_path/.rbenv/versions/2.5.1/bin/ruby /usr/bin/ruby || true # Adjust Mastodon config # TODO: use official helper ynh_replace_string @@ -214,13 +216,12 @@ sed -i "s@#SMTP_OPENSSL_VERIFY_MODE=peer@SMTP_OPENSSL_VERIFY_MODE=none@g" "${fin ( cd "$final_path/live" su mastodon <> .env.production -RAILS_ENV=production $final_path/live/bin/bundle exec rails db:migrate --quiet -RAILS_ENV=production $final_path/live/bin/bundle exec rails assets:precompile --quiet + $final_path/.rbenv/versions/2.5.1/bin/gem install bundler + $final_path/live/bin/bundle install -j$(getconf _NPROCESSORS_ONLN) --deployment --without development test --quiet + yarn install --production --no-progress --non-interactive --silent + echo "SAFETY_ASSURED=1">> .env.production + RAILS_ENV=production $final_path/live/bin/bundle exec rails db:migrate --quiet + RAILS_ENV=production $final_path/live/bin/bundle exec rails assets:precompile --quiet INSTALL ) @@ -246,10 +247,6 @@ RAILS_ENV=production bin/bundle exec rails mastodon:confirm_email USER_EMAIL=$ad SETADMIN ) -# Install crontab -cp ../conf/crontab_mastodon /etc/cron.d/$app -sed -i "s@__APP__@$app@g" /etc/cron.d/$app - #================================================= # GENERIC FINALIZATION #================================================= diff --git a/scripts/remove b/scripts/remove index 0c39054..e939908 100644 --- a/scripts/remove +++ b/scripts/remove @@ -98,12 +98,13 @@ ynh_secure_remove /etc/cron.d/$app #================================================= # REMOVE source.list #================================================= - -ynh_secure_remove /etc/apt/sources.list.d/backports.list +if [ "$(lsb_release --codename --short)" == "jessie" ]; then + ynh_secure_remove /etc/apt/sources.list.d/backports.list +fi ynh_secure_remove /etc/apt/sources.list.d/yarn.list # Delete ruby exec -ynh_secure_remove /usr/bin/ruby +#ynh_secure_remove /usr/bin/ruby #================================================= # GENERIC FINALIZATION diff --git a/scripts/restore b/scripts/restore index b9798a7..a800966 100644 --- a/scripts/restore +++ b/scripts/restore @@ -88,7 +88,9 @@ if [[ "$arch" = arm* ]]; then fi # Install source.list debian package backports & yarn -cp ../conf/backports.list /etc/apt/sources.list.d/ +if [ "$(lsb_release --codename --short)" == "jessie" ]; then + cp ../conf/backports.list /etc/apt/sources.list.d/ +fi curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - cp ../conf/yarn.list /etc/apt/sources.list.d/ ynh_package_update @@ -146,12 +148,6 @@ ynh_restore_file "/etc/systemd/system/$app-sidekiq.service" ynh_restore_file "/etc/systemd/system/$app-streaming.service" systemctl enable "$app-web" "$app-sidekiq" "$app-streaming" -#================================================= -# RESTORE THE CRON FILE -#================================================= - -ynh_restore_file "/etc/cron.d/$app" - #================================================= # GENERIC FINALIZATION #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index 54cdd8f..3858ee8 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -15,6 +15,7 @@ source /usr/share/yunohost/helpers # See comments in install script app=$YNH_APP_INSTANCE_NAME +db_name=$app # Retrieve app settings domain=$(ynh_app_setting_get "$app" domain) @@ -22,6 +23,7 @@ path=$(ynh_app_setting_get "$app" path) admin=$(ynh_app_setting_get "$app" admin) language=$(ynh_app_setting_get "$app" language) final_path=$(ynh_app_setting_get "$app" final_path) +path_url="/" #================================================= # ENSURE DOWNWARD COMPATIBILITY @@ -63,44 +65,14 @@ ynh_abort_if_errors #================================================= # Normalize the URL path syntax -path_url=$(ynh_normalize_url_path $path_url) +#path_url=$(ynh_normalize_url_path $path_url) #================================================= -# STANDARD UPGRADE STEPS +# INSTALL DEPENDENCIES #================================================= -# TODO TODO TODO -#================================================= - -db_name=$app - -# Modify Nginx configuration file and copy it to Nginx conf directory -sudo sed -i "s@__PATH__@$app@g" ../conf/nginx.conf* -sudo sed -i "s@__FINALPATH__@$final_path@g" ../conf/nginx.conf* -sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf - -# Stop Mastodon Services -sudo systemctl stop mastodon-*.service - -# Change owner of live folder -sudo chown -R $app: $final_path/live - -# Download Mastodon -sudo su - $app < Date: Tue, 12 Jun 2018 21:43:34 +0200 Subject: [PATCH 2/5] Update to 2.4.1 + fixs *Fix upgrade,restore scripts * Readme and manifest to 2.4.1 --- README.md | 4 ++-- manifest.json | 2 +- scripts/restore | 4 ++-- scripts/upgrade | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 103ebcd..488481d 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # Mastodon for YunoHost -[![Latest Version](https://img.shields.io/badge/version-2.4.0-green.svg?style=flat)](https://github.com/YunoHost-Apps/mastodon_ynh/releases) +[![Latest Version](https://img.shields.io/badge/version-2.4.1-green.svg?style=flat)](https://github.com/YunoHost-Apps/mastodon_ynh/releases) [![Status](https://img.shields.io/badge/status-testing-yellow.svg?style=flat)](https://github.com/YunoHost-Apps/mastodon_ynh/milestones) [![Dependencies](https://img.shields.io/badge/dependencies-includes-lightgrey.svg?style=flat)](https://github.com/YunoHost-Apps/mastodon_ynh#dependencies) [![GitHub license](https://img.shields.io/badge/license-GPLv3-blue.svg?style=flat)](https://raw.githubusercontent.com/YunoHost-Apps/mastodon_ynh/master/LICENSE) -[![Yunohost version](https://img.shields.io/badge/yunohost-2.7.7_tested-orange.svg?style=flat)](https://github.com/YunoHost/yunohost) +[![Yunohost version](https://img.shields.io/badge/yunohost-2.7.12_tested-orange.svg?style=flat)](https://github.com/YunoHost/yunohost) [![GitHub issues](https://img.shields.io/github/issues/YunoHost-Apps/mastodon_ynh.svg?style=flat)](https://github.com/YunoHost-Apps/mastodon_ynh/issues) [![Install Mastodon with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=mastodon) diff --git a/manifest.json b/manifest.json index 3e6e9b4..11c277b 100644 --- a/manifest.json +++ b/manifest.json @@ -9,7 +9,7 @@ "en": "Mastodon is a free, open-source social network.", "fr": "Mastodon est un réseau social gratuit et open source." }, - "version": "2.4.0", + "version": "2.4.1", "url": "https://github.com/tootsuite/mastodon", "license": "AGPL-3.0-or-later", "maintainer": { diff --git a/scripts/restore b/scripts/restore index a800966..0d32504 100644 --- a/scripts/restore +++ b/scripts/restore @@ -89,10 +89,10 @@ fi # Install source.list debian package backports & yarn if [ "$(lsb_release --codename --short)" == "jessie" ]; then - cp ../conf/backports.list /etc/apt/sources.list.d/ + cp ../conf/apt_backports.list /etc/apt/sources.list.d/ fi curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - -cp ../conf/yarn.list /etc/apt/sources.list.d/ +cp ../conf/apt_yarn.list /etc/apt/sources.list.d/yarn.list ynh_package_update # Install de Node.js diff --git a/scripts/upgrade b/scripts/upgrade index 3858ee8..53e1828 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -115,7 +115,7 @@ ynh_setup_source "$final_path/.rbenv/plugins/ruby-build" "app-ruby-build" # Install ruby 2.5.1 ( - exec_as "$app" $final_path/.rbenv/bin/rbenv install 2.5.1 || true + exec_as "$app" $final_path/.rbenv/bin/rbenv install -s 2.5.1 || true exec_as "$app" $final_path/.rbenv/bin/rbenv global 2.5.1 || true exec_as "$app" $final_path/.rbenv/versions/2.5.1/bin/ruby -v ) From 1993c3b2eed04b3df8e518a5d5a2837997133949 Mon Sep 17 00:00:00 2001 From: nemsia Date: Tue, 12 Jun 2018 21:44:45 +0200 Subject: [PATCH 3/5] db:Setup on install --- scripts/install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install b/scripts/install index cbce4e3..9e8a873 100644 --- a/scripts/install +++ b/scripts/install @@ -220,7 +220,7 @@ sed -i "s@#SMTP_OPENSSL_VERIFY_MODE=peer@SMTP_OPENSSL_VERIFY_MODE=none@g" "${fin $final_path/live/bin/bundle install -j$(getconf _NPROCESSORS_ONLN) --deployment --without development test --quiet yarn install --production --no-progress --non-interactive --silent echo "SAFETY_ASSURED=1">> .env.production - RAILS_ENV=production $final_path/live/bin/bundle exec rails db:migrate --quiet + RAILS_ENV=production $final_path/live/bin/bundle exec rails db:setup --quiet RAILS_ENV=production $final_path/live/bin/bundle exec rails assets:precompile --quiet INSTALL ) From f102d956921286ba066473a325b18b1416af030a Mon Sep 17 00:00:00 2001 From: nemsia Date: Tue, 12 Jun 2018 21:58:05 +0200 Subject: [PATCH 4/5] Mastodon Sources 2.4.1 --- conf/app-mastodon.src | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conf/app-mastodon.src b/conf/app-mastodon.src index 84b72fb..61c7260 100644 --- a/conf/app-mastodon.src +++ b/conf/app-mastodon.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/tootsuite/mastodon/archive/v2.4.0.tar.gz -SOURCE_SUM=3d4904f30c28591333b1cf4c03173849dd6983ab00685f61e50e594160c672ee +SOURCE_URL=https://github.com/tootsuite/mastodon/archive/v2.4.1.tar.gz +SOURCE_SUM=d90b573e16359f63f7b2834f1078ecfdd7d78cd5a26acd8293a314dd2b6ff1ec SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true From ae04282b9e5bb3a2dff513b1c37c0ff54fd95db4 Mon Sep 17 00:00:00 2001 From: nemsia Date: Tue, 12 Jun 2018 22:53:03 +0200 Subject: [PATCH 5/5] Change db_name on all scripts to mastodon_production --- scripts/backup | 6 +++++- scripts/install | 4 +++- scripts/remove | 5 ++++- scripts/restore | 6 +++++- scripts/upgrade | 4 ++-- 5 files changed, 19 insertions(+), 6 deletions(-) diff --git a/scripts/backup b/scripts/backup index 0846afe..f32dfdd 100644 --- a/scripts/backup +++ b/scripts/backup @@ -33,7 +33,11 @@ app=$YNH_APP_INSTANCE_NAME # Retrieve app settings domain=$(ynh_app_setting_get "$app" domain) final_path=$(ynh_app_setting_get "$app" final_path) -db_name=$(ynh_sanitize_dbid "$app") +db_name=$(ynh_app_setting_get "$app" db_name) +if [ -z "$db_name" ]; then + db_name="${app}_production" + ynh_app_setting_set "$app" db_name "$db_name" +fi #================================================= # STANDARD BACKUP STEPS diff --git a/scripts/install b/scripts/install index 9e8a873..90a8dfc 100644 --- a/scripts/install +++ b/scripts/install @@ -124,8 +124,10 @@ ynh_install_app_dependencies \ ynh_psql_test_if_first_run db_user=$(ynh_sanitize_dbid "$app") -db_name=$(ynh_sanitize_dbid "$app") +db_name="${app}_production" +db_name=$(ynh_sanitize_dbid "$db_name") db_pwd=$(ynh_string_random) +ynh_app_setting_set $app db_name $db_name ynh_app_setting_set $app db_pwd $db_pwd ynh_psql_setup_db "$db_user" "$db_name" "$db_pwd" diff --git a/scripts/remove b/scripts/remove index e939908..470455e 100644 --- a/scripts/remove +++ b/scripts/remove @@ -22,8 +22,11 @@ app=$YNH_APP_INSTANCE_NAME # Retrieve app settings domain=$(ynh_app_setting_get "$app" domain) db_name=$(ynh_app_setting_get "$app" db_name) +if [ -z "$db_name" ]; then + db_name="${app}_production" + ynh_app_setting_set "$app" db_name "$db_name" +fi db_user=$(ynh_sanitize_dbid "$app") -db_name=$(ynh_sanitize_dbid "$app") final_path=$(ynh_app_setting_get "$app" final_path) #================================================= diff --git a/scripts/restore b/scripts/restore index 0d32504..b41b9cd 100644 --- a/scripts/restore +++ b/scripts/restore @@ -124,7 +124,11 @@ ynh_install_app_dependencies \ # Restore PostgreSQL database db_user=$(ynh_sanitize_dbid "$app") -db_name=$(ynh_sanitize_dbid "$app") +db_name=$(ynh_app_setting_get "$app" db_name) +if [ -z "$db_name" ]; then + db_name="${app}_production" + ynh_app_setting_set "$app" db_name "$db_name" +fi db_pwd=$(ynh_app_setting_get "$app" db_pwd) ynh_psql_test_if_first_run diff --git a/scripts/upgrade b/scripts/upgrade index 53e1828..d50b729 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -15,7 +15,7 @@ source /usr/share/yunohost/helpers # See comments in install script app=$YNH_APP_INSTANCE_NAME -db_name=$app +db_name=$(ynh_app_setting_get "$app" db_name) # Retrieve app settings domain=$(ynh_app_setting_get "$app" domain) @@ -31,7 +31,7 @@ path_url="/" # If db_name doesn't exist, create it if [ -z "$db_name" ]; then - db_name=$(ynh_sanitize_dbid "$app") + db_name="${app}_production" ynh_app_setting_set "$app" db_name "$db_name" fi