From 59013d066d2c1ffa36714e776b2912acd236d84d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Wed, 17 Mar 2021 20:59:57 +0100 Subject: [PATCH 1/9] Fix linter (#224) * Fix linter * Update manifest.json * Set password variable to smtp_user_pwd * Fix doc link --- README.md | 2 +- README_fr.md | 2 +- conf/config.json | 12 ++++++------ conf/nginx.conf | 1 + manifest.json | 22 +--------------------- scripts/change_url | 2 +- scripts/install | 20 ++++---------------- scripts/remove | 2 +- scripts/restore | 2 +- scripts/upgrade | 34 ++++++++-------------------------- 10 files changed, 25 insertions(+), 74 deletions(-) diff --git a/README.md b/README.md index 5067312..624c91a 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Mattermost is a self-hosted, open source instant messaging and service software. ## Documentation * Official documentation: https://docs.mattermost.com/ - * YunoHost documentation: https://yunohost.org/#/app_mattermost + * YunoHost documentation: https://yunohost.org/en/app_mattermost ## YunoHost specific features diff --git a/README_fr.md b/README_fr.md index 408ce62..5c8d042 100644 --- a/README_fr.md +++ b/README_fr.md @@ -24,7 +24,7 @@ Mattermost est un logiciel et un service de messagerie instantanée libre auto-h ## Documentation * Documentation officielle : https://docs.mattermost.com/ - * Documentation YunoHost : https://yunohost.org/#/app_mattermost_fr + * Documentation YunoHost : https://yunohost.org/fr/app_mattermost ## Caractéristiques spécifiques YunoHost diff --git a/conf/config.json b/conf/config.json index 1a51505..80df047 100644 --- a/conf/config.json +++ b/conf/config.json @@ -3,7 +3,7 @@ "SiteURL": "__URL__", "WebsocketURL": "", "LicenseFileLocation": "", - "ListenAddress": "__PORT__", + "ListenAddress": "127.0.0.1:__PORT__", "ConnectionSecurity": "", "TLSCertFile": "", "TLSKeyFile": "", @@ -144,7 +144,7 @@ }, "SqlSettings": { "DriverName": "mysql", - "DataSource": "__DB_USER__:__DB_PASS__@tcp(localhost:3306)/__DB_NAME__?charset=utf8mb4,utf8", + "DataSource": "__DB_USER__:__DB_PWD__@tcp(localhost:3306)/__DB_NAME__?charset=utf8mb4,utf8", "DataSourceReplicas": [], "DataSourceSearchReplicas": [], "MaxIdleConns": 20, @@ -185,7 +185,7 @@ "EnableFile": true, "FileLevel": "INFO", "FileJson": true, - "FileLocation": "__LOG__", + "FileLocation": "__LOGS_PATH__", "AdvancedLoggingConfig": "" }, "PasswordSettings": { @@ -201,7 +201,7 @@ "EnableMobileDownload": true, "MaxFileSize": 52428800, "DriverName": "local", - "Directory": "__DATA__", + "Directory": "__DATA_PATH__", "EnablePublicLink": false, "PublicLinkSalt": "", "InitialFont": "nunito-bold.ttf", @@ -224,12 +224,12 @@ "UseChannelInEmailNotifications": false, "RequireEmailVerification": false, "FeedbackName": "Mattermost notification", - "FeedbackEmail": "__FEEDBACK__", + "FeedbackEmail": "no-reply@__DOMAIN__", "ReplyToAddress": "", "FeedbackOrganization": "", "EnableSMTPAuth": false, "SMTPUsername": "mattermost", - "SMTPPassword": "__USER_PW__", + "SMTPPassword": "__SMTP_USER_PWD__", "SMTPServer": "localhost", "SMTPPort": "25", "SMTPServerTimeout": 10, diff --git a/conf/nginx.conf b/conf/nginx.conf index edbf5b1..9eff7cb 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -34,6 +34,7 @@ location __PATH__/ { #proxy_cache_use_stale timeout; #proxy_cache_lock on; proxy_pass http://127.0.0.1:__PORT__; + # Yunohost addition: redirect HTTP to HTTPS if ($scheme = http) { rewrite ^ https://$server_name$request_uri? permanent; diff --git a/manifest.json b/manifest.json index 62c3750..63f740f 100644 --- a/manifest.json +++ b/manifest.json @@ -19,36 +19,24 @@ "mysql" ], "requirements": { - "yunohost": ">= 3.8.1" + "yunohost": ">= 4.1.7" }, "arguments": { "install" : [ { "name": "domain", "type": "domain", - "ask": { - "en": "Choose a domain for Mattermost", - "fr": "Choisissez un domaine pour Mattermost" - }, "example": "domain.org" }, { "name": "path", "type": "path", - "ask": { - "en": "Choose a path for Mattermost", - "fr": "Choisissez un chemin pour Mattermost" - }, "example": "/mattermost", "default": "/chat" }, { "name": "is_public", "type": "boolean", - "ask": { - "en": "Is it a public application?", - "fr": "Est-ce une application publique ?" - }, "help": { "en": "If enabled, Mattermost will be accessible by the user without a YunoHost account. This can be changed later via the webadmin.", "fr": "Si cette case est cochée, Mattermost sera accessible par l'utilisateur sans compte YunoHost. Vous pourrez changer ceci plus tard via l’interface d’administration." @@ -58,19 +46,11 @@ { "name": "admin", "type": "user", - "ask": { - "en": "Choose an admin user", - "fr": "Choisissez l'administrateur" - }, "example": "johndoe" }, { "name": "password", "type": "password", - "ask": { - "en": "Set the administrator password", - "fr": "Définissez le mot de passe administrateur" - }, "example": "Choose a password" }, { diff --git a/scripts/change_url b/scripts/change_url index 12fa15a..81f256a 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -122,7 +122,7 @@ ynh_store_file_checksum --file="$final_path/config/config.json" ynh_script_progression --message="Starting a systemd service..." --weight=2 # Start a systemd service -ynh_systemd_action --service_name=$app --action=start --log_path="systemd" --line_match="Started Mattermost" +ynh_systemd_action --service_name=$app --action=start --log_path=systemd --line_match="Started Mattermost" #================================================= # RELOAD NGINX diff --git a/scripts/install b/scripts/install index bf2f82c..8144413 100644 --- a/scripts/install +++ b/scripts/install @@ -54,7 +54,6 @@ ynh_script_progression --message="Storing installation settings..." --weight=6 ynh_app_setting_set --app=$app --key=domain --value=$domain ynh_app_setting_set --app=$app --key=path --value=$path_url -ynh_app_setting_set --app=$app --key=is_public --value=$is_public ynh_app_setting_set --app=$app --key=admin --value=$admin ynh_app_setting_set --app=$app --key=password --value=$password ynh_app_setting_set --app=$app --key=language --value=$language @@ -138,21 +137,10 @@ ynh_use_logrotate #================================================= ynh_script_progression --message="Modifying a config file..." --weight=3 -cp ../conf/config.json $final_path/config/config.json +smtp_user_pwd=$(ynh_string_random --length=24) +url=https://$domain$path_url -# Main config File -ynh_replace_string --match_string="__URL__" --replace_string="https://$domain$path_url" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__PORT__" --replace_string="127.0.0.1:$port" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__DB_NAME__" --replace_string="$db_name" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__DB_USER__" --replace_string="$db_user" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__DB_PASS__" --replace_string="$db_pwd" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__DATA__" --replace_string="$data_path" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__FEEDBACK__" --replace_string="no-reply@${domain}" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__USER_PW__" --replace_string="$(ynh_string_random --length=24)" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__LOG__" --replace_string="$logs_path" --target_file="$final_path/config/config.json" -ynh_replace_string --match_string="__LANGUAGE__" --replace_string="$language" --target_file="$final_path/config/config.json" - -ynh_store_file_checksum --file="$final_path/config/config.json" +ynh_add_config --template="../conf/config.json" --destination="$final_path/config/config.json" #================================================= # SECURE FILES AND DIRECTORIES @@ -203,7 +191,7 @@ yunohost service add $app --description="Collaboration platform built for develo ynh_script_progression --message="Starting a systemd service..." --weight=2 # Start a systemd service -ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="Started Mattermost" +ynh_systemd_action --service_name=$app --action=start --log_path=systemd --line_match="Started Mattermost" #================================================= # SETUP SSOWAT diff --git a/scripts/remove b/scripts/remove index 46b9cc8..26aa613 100755 --- a/scripts/remove +++ b/scripts/remove @@ -27,7 +27,7 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path) # REMOVE SERVICE FROM ADMIN PANEL #================================================= -# Remove the service from the list of services known by Yunohost (added from `yunohost service add`) +# Remove the service from the list of services known by YunoHost (added from `yunohost service add`) if ynh_exec_warn_less yunohost service status $app >/dev/null then ynh_script_progression --message="Removing $app service..." --weight=1 diff --git a/scripts/restore b/scripts/restore index 546890c..b0dcec2 100644 --- a/scripts/restore +++ b/scripts/restore @@ -115,7 +115,7 @@ yunohost service add $app --description="Collaboration platform built for develo ynh_script_progression --message="Starting a systemd service..." --weight=2 # Start a systemd service -ynh_systemd_action --service_name=$app --action="start" --log_path="systemd" --line_match="Started Mattermost" +ynh_systemd_action --service_name=$app --action=start --log_path=systemd --line_match="Started Mattermost" #================================================= # RESTORE THE LOGROTATE CONFIGURATION diff --git a/scripts/upgrade b/scripts/upgrade index d1df4cc..ac00303 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -28,7 +28,6 @@ app=$YNH_APP_INSTANCE_NAME domain=$(ynh_app_setting_get --app=$app --key=domain) path_url=$(ynh_app_setting_get --app=$app --key=path) -is_public=$(ynh_app_setting_get --app=$app --key=is_public) port=$(ynh_app_setting_get --app=$app --key=port) final_path=$(ynh_app_setting_get --app=$app --key=final_path) language=$(ynh_app_setting_get --app=$app --key=language) @@ -47,14 +46,6 @@ upgrade_type=$(ynh_check_app_version_changed) # ENSURE DOWNWARD COMPATIBILITY #================================================= -# Convert is_public from "Yes"/"No" to 1 / 0 -if [[ $is_public == "Yes" ]]; then - is_public=1 -elif [[ $is_public == "No" ]]; then - is_public=0 -fi -ynh_app_setting_set --app=$app --key=is_public --value=$is_public - # Save the port used if not present if [ -z "$port" ]; then port=8065 @@ -78,6 +69,13 @@ if [ -z "$db_name" ]; then ynh_app_setting_set --app=$app --key=db_name --value=$db_name fi +# Cleaning legacy permissions +if ynh_legacy_permissions_exists; then + ynh_legacy_permissions_delete_all + + ynh_app_setting_delete --app=$app --key=is_public +fi + #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP #================================================= @@ -155,22 +153,6 @@ ynh_script_progression --message="Upgrading systemd configuration..." --weight=2 # Create a dedicated systemd config ynh_add_systemd_config -#================================================= -# SPECIFIC UPGRADE STEPS -#================================================= - -# # Fix log FileLocation path (changed in Mattermost 3.8, makes Mattermost >= 4.2 crash) -# # https://docs.mattermost.com/administration/changelog.html#release-v3-8-3 -# ynh_replace_string --match_string "\"FileLocation\": \"/var/log/mattermost.log\"" --replace_string "\"FileLocation\": \"/var/log\"" --target_file "$config_file" - -# # Move log files to a directory (rather than directly in /var/log) -# # See https://github.com/YunoHost-Apps/mattermost_ynh/issues/61 -# mkdir -p "$logs_path" -# ynh_replace_string --match_string "\"FileLocation\": \"/var/log\"" --replace_string "\"FileLocation\": \"$logs_path\"" --target_file "$config_file" -# if [ -f "/var/log/${app}.log" ]; then -# mv "/var/log/${app}.log" "$logs_path/" -# fi - #================================================= # CREATE DIRECTORY FOR DATA #================================================= @@ -212,7 +194,7 @@ yunohost service add $app --description="Collaboration platform built for develo ynh_script_progression --message="Starting a systemd service..." --weight=2 # Start a systemd service -ynh_systemd_action --service_name=$app --action=start --log_path="systemd" --line_match="Started Mattermost" +ynh_systemd_action --service_name=$app --action=start --log_path=systemd --line_match="Started Mattermost" #================================================= # RELOAD NGINX From 6ae37ea2f1be017a566fc71798b8ee6229a68b99 Mon Sep 17 00:00:00 2001 From: Amy Blais Date: Wed, 17 Mar 2021 18:32:19 -0400 Subject: [PATCH 2/9] Update enterprise.src --- conf/enterprise.src | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/conf/enterprise.src b/conf/enterprise.src index 8b2b950..91e3641 100644 --- a/conf/enterprise.src +++ b/conf/enterprise.src @@ -1,6 +1,6 @@ -SOURCE_URL=https://releases.mattermost.com/5.32.1/mattermost-5.32.1-linux-amd64.tar.gz -SOURCE_SUM=9117ab9777d8453ae8b63f3a008152a2bdc6a638400640a67a0a359acf479a44 +SOURCE_URL=https://releases.mattermost.com/5.33.0/mattermost-5.33.0-linux-amd64.tar.gz +SOURCE_SUM=bee5b5b66306a4dc13531584e1b6d565f238eda87d9d1574189c2baa83495375 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true -SOURCE_FILENAME=mattermost-5.32.1-linux-amd64.tar.gz +SOURCE_FILENAME=mattermost-5.33.0-linux-amd64.tar.gz From d51e146f01115ee566043c31c41dac9bb249022a Mon Sep 17 00:00:00 2001 From: Amy Blais Date: Wed, 17 Mar 2021 18:33:43 -0400 Subject: [PATCH 3/9] Update x86-64.src --- conf/x86-64.src | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/conf/x86-64.src b/conf/x86-64.src index 9fc7b97..1cab570 100644 --- a/conf/x86-64.src +++ b/conf/x86-64.src @@ -1,6 +1,6 @@ -SOURCE_URL=https://releases.mattermost.com/5.32.1/mattermost-team-5.32.1-linux-amd64.tar.gz -SOURCE_SUM=86fd99e49b6ed687004d46813e51fd91e761a87dff58fa2878e752728fac555a +SOURCE_URL=https://releases.mattermost.com/5.33.0/mattermost-team-5.33.0-linux-amd64.tar.gz +SOURCE_SUM=ea9d01018af02016dd4fab0ba07c634fbaa16aaf9435feb99dee225b4e1992ac SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=tar.gz SOURCE_IN_SUBDIR=true -SOURCE_FILENAME=mattermost-team-5.32.1-linux-amd64.tar.gz +SOURCE_FILENAME=mattermost-team-5.33.0-linux-amd64.tar.gz From 8f367e2b02df4c7b2cf2864911685bfaa305f19b Mon Sep 17 00:00:00 2001 From: Amy Blais Date: Wed, 17 Mar 2021 18:34:25 -0400 Subject: [PATCH 4/9] Update manifest.json --- manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.json b/manifest.json index 62c3750..25bf821 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Open source collaboration platform built for developers", "fr": "Plateforme de collaboration open source conçue pour les développeurs" }, - "version": "5.32.1~ynh1", + "version": "5.33.0~ynh1", "url": "http://www.mattermost.org/", "license": "GPL-3.0-only", "maintainer": { From 34e1d214ae2d41f0fc55b6f0161b389b333e9050 Mon Sep 17 00:00:00 2001 From: Amy Blais Date: Wed, 17 Mar 2021 18:34:47 -0400 Subject: [PATCH 5/9] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5067312..d8644af 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in ## Overview Mattermost is a self-hosted, open source instant messaging and service software. It's designed as an internal chat for organizations and businesses, and it's touted as an alternative to Slack. -**Shipped version:** 5.32.1 +**Shipped version:** 5.33.0 ## Screenshots From f87824aef06b4b919383e55259d1c33f5411138c Mon Sep 17 00:00:00 2001 From: Amy Blais Date: Wed, 17 Mar 2021 18:35:20 -0400 Subject: [PATCH 6/9] Update README_fr.md --- README_fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README_fr.md b/README_fr.md index 408ce62..cb94c9b 100644 --- a/README_fr.md +++ b/README_fr.md @@ -11,7 +11,7 @@ Si vous n'avez pas YunoHost, consultez [le guide](https://yunohost.org/#/install ## Vue d'ensemble Mattermost est un logiciel et un service de messagerie instantanée libre auto-hébergeable. Il est conçu comme un chat interne pour les organisations et les entreprises, et il est présenté comme une alternative à Slack. -**Version incluse :** 5.32.1 +**Version incluse :** 5.33.0 ## Captures d'écran From 10b3deeec87048f4627ff57bc50d36c5d79a7404 Mon Sep 17 00:00:00 2001 From: "ljf (zamentur)" Date: Sun, 21 Mar 2021 22:15:35 +0100 Subject: [PATCH 7/9] [fix] This dir could be in giga --- scripts/backup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/backup b/scripts/backup index 71939c6..941ad87 100755 --- a/scripts/backup +++ b/scripts/backup @@ -42,7 +42,7 @@ ynh_backup --src_path="$final_path" # BACKUP THE APP DATA #================================================= -ynh_backup --src_path="/home/yunohost.app/$app" +ynh_backup --src_path="/home/yunohost.app/$app" --is_big #================================================= # BACKUP THE NGINX CONFIGURATION From b09591eb5ed3036c3ac3c43a4e38be6b03464642 Mon Sep 17 00:00:00 2001 From: "ljf (zamentur)" Date: Sun, 21 Mar 2021 22:18:19 +0100 Subject: [PATCH 8/9] [fix] AVoid to delete data --- scripts/remove | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/remove b/scripts/remove index 26aa613..783d0d0 100755 --- a/scripts/remove +++ b/scripts/remove @@ -58,7 +58,8 @@ ynh_script_progression --message="Removing $app main directory..." --weight=6 # Remove the app directory securely ynh_secure_remove --file="$final_path" -ynh_secure_remove --file="/home/yunohost.app/$app" +# We don't delete this dir as it is marked as is-big +# ynh_secure_remove --file="/home/yunohost.app/$app" #================================================= # REMOVE NGINX CONFIGURATION From 46630b05a50de97a021bdfa69ba6b0f2f95d6daf Mon Sep 17 00:00:00 2001 From: "ljf (zamentur)" Date: Sun, 21 Mar 2021 23:06:11 +0100 Subject: [PATCH 9/9] [fix] Add not mandatory for data --- scripts/restore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/restore b/scripts/restore index b0dcec2..6ece5f9 100644 --- a/scripts/restore +++ b/scripts/restore @@ -70,7 +70,7 @@ ynh_system_user_create --username=$app # RESTORE THE APP DATA #================================================= -ynh_restore_file --origin_path="/home/yunohost.app/$app" +ynh_restore_file --origin_path="/home/yunohost.app/$app" --not_mandatory chown -R $app: "/home/yunohost.app/$app" #=================================================