From 401f62d415336ad74f7d83cd5005ee4372d9e9cb Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sat, 7 Aug 2021 13:59:24 +0200 Subject: [PATCH] Fix bullseye install (#12) * [autopatch] Update issue and PR templates (#6) Co-authored-by: Yunohost-Bot <> * Update to tomcat 9.0.31-1~deb10u4 (#8) * Update to tomcat 9.0.31-1~deb10u4 - It is annoying that older builds are getting removed from source server - Let's rename the downloaded archive to simplify the code * Silence make warnings * Bump package version * Apply last example_ynh (#11) * Apply last example_ynh * Fix restore Co-authored-by: YunoHost Bot Co-authored-by: tituspijean --- check_process | 15 +++------ doc/.gitkeep | 0 doc/DISCLAIMER.md | 3 ++ doc/DISCLAIMER_fr.md | 3 ++ doc/screenshots/.gitkeep | 0 doc/screenshots/screenshot1.jpg | Bin 0 -> 58502 bytes manifest.json | 12 +++++--- scripts/change_url | 14 ++++++--- scripts/install | 36 +++++++++++----------- scripts/remove | 4 +-- scripts/restore | 47 +++++++++++++++-------------- scripts/upgrade | 41 +++++++++++++------------ sources/extra_files/app/.gitignore | 2 -- sources/patches/.gitignore | 2 -- 14 files changed, 92 insertions(+), 87 deletions(-) create mode 100644 doc/.gitkeep create mode 100644 doc/DISCLAIMER.md create mode 100644 doc/DISCLAIMER_fr.md create mode 100644 doc/screenshots/.gitkeep create mode 100644 doc/screenshots/screenshot1.jpg delete mode 100644 sources/extra_files/app/.gitignore delete mode 100644 sources/patches/.gitignore diff --git a/check_process b/check_process index 338bf1d..ccf1005 100644 --- a/check_process +++ b/check_process @@ -1,14 +1,9 @@ -# See here for more information -# https://github.com/YunoHost/package_check#syntax-check_process-file - -# Move this file from check_process.default to check_process when you have filled it. - ;; Test complet ; Manifest - domain="domain.tld" (DOMAIN) - path="/path" (PATH) - admin="john" (USER) - is_public=0 (PUBLIC|public=1|private=0) + domain="domain.tld" + path="/path" + admin="john" + is_public=0 ; Checks pkg_linter=1 setup_sub_dir=1 @@ -17,7 +12,6 @@ setup_private=1 setup_public=1 upgrade=1 - upgrade=0 from_commit=CommitHash backup_restore=1 multi_instance=1 port_already_use=0 @@ -29,4 +23,3 @@ Notification=none ; commit=CommitHash name=Name and date of the commit. manifest_arg=domain=DOMAIN&path=PATH&admin=USER&is_public=1& - diff --git a/doc/.gitkeep b/doc/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/doc/DISCLAIMER.md b/doc/DISCLAIMER.md new file mode 100644 index 0000000..7ccabce --- /dev/null +++ b/doc/DISCLAIMER.md @@ -0,0 +1,3 @@ +## Configuration + +The user that is configured as admin during install will have access to admin settings in the settings menu of the app (under the user menu). Configuration files are in `/opt/yunohost/guacamole/etc/guacamole` (for the first install). diff --git a/doc/DISCLAIMER_fr.md b/doc/DISCLAIMER_fr.md new file mode 100644 index 0000000..439f20e --- /dev/null +++ b/doc/DISCLAIMER_fr.md @@ -0,0 +1,3 @@ +## Configuration + +L'utilisateur choisi comme admin durant le processus d'installation aura accès au paramétres d'administration dans le menu de configuration de l'application (sous le menu utilisateur). Le fichiers de configuration sont dans `/opt/yunohost/guacamole/etc/guacamole` (pour la première installation). diff --git a/doc/screenshots/.gitkeep b/doc/screenshots/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/doc/screenshots/screenshot1.jpg b/doc/screenshots/screenshot1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6c5b06aa132d254b05800cb1757af922e3885340 GIT binary patch literal 58502 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 EKVIfa=l}o! literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json index f0f7ede..6ced031 100644 --- a/manifest.json +++ b/manifest.json @@ -6,8 +6,14 @@ "en": "Clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH.", "fr": "Service de bureau à distance sans client. Fonctionne avec des protocoles standard comme VNC, RDP, et SSH." }, - "version": "1.3.0~ynh4", + "version": "1.3.0~ynh5", "url": "https://guacamole.apache.org/", + "upstream": { + "license": "Apache-2.0", + "website": "https://guacamole.apache.org/", + "admindoc": "https://guacamole.apache.org/doc/gug/", + "code": "https://github.com/search?utf8=%E2%9C%93&q=repo%3Aapache%2Fguacamole-server+repo%3Aapache%2Fguacamole-client+repo%3Aapache%2Fguacamole-website&type=Repositories&ref=searchresults" + }, "license": "Apache-2.0", "maintainer": { "name": "Jules Bertholet", @@ -31,10 +37,6 @@ { "name": "path", "type": "path", - "ask": { - "en": "Choose a path for Guacamole", - "fr": "Choisissez un chemin pour Guacamole" - }, "example": "/guacamole", "default": "/guacamole" }, diff --git a/scripts/change_url b/scripts/change_url index 0622964..7a634cc 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -31,7 +31,7 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path) port=$(ynh_app_setting_get --app=$app --key=port) #================================================= -# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP +# BACKUP BEFORE CHANGE URL THEN ACTIVE TRAP #================================================= ynh_script_progression --message="Backing up the app before changing its URL (may take a while)..." --weight=1 @@ -52,12 +52,14 @@ ynh_abort_if_errors #================================================= change_domain=0 -if [ "$old_domain" != "$new_domain" ]; then +if [ "$old_domain" != "$new_domain" ] +then change_domain=1 fi change_path=0 -if [ "$old_path" != "$new_path" ]; then +if [ "$old_path" != "$new_path" ] +then change_path=1 fi @@ -79,7 +81,8 @@ ynh_script_progression --message="Updating NGINX web server configuration..." -- nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf # Change the path in the NGINX config file -if [ $change_path -eq 1 ]; then +if [ $change_path -eq 1 ] +then # Make a backup of the original NGINX config file if modified ynh_backup_if_checksum_is_different --file="$nginx_conf_path" # Set global variables for NGINX helper @@ -90,7 +93,8 @@ if [ $change_path -eq 1 ]; then fi # Change the domain for NGINX -if [ $change_domain -eq 1 ]; then +if [ $change_domain -eq 1 ] +then # Delete file checksum for the old conf file location ynh_delete_file_checksum --file="$nginx_conf_path" mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf diff --git a/scripts/install b/scripts/install index 024bd54..89746af 100755 --- a/scripts/install +++ b/scripts/install @@ -92,6 +92,15 @@ if [ ! $tomcat_active ]; then systemctl stop tomcat9 --quiet fi +#================================================= +# CREATE DEDICATED USERS +#================================================= +ynh_script_progression --message="Configuring system users..." --weight=1 + +# Create system users +ynh_system_user_create --username="$app-guacd" +ynh_system_user_create --username="$app-tomcat" + #================================================= # CREATE A MYSQL DATABASE #================================================= @@ -166,15 +175,6 @@ ynh_script_progression --message="Configuring NGINX web server..." --weight=1 # Create a dedicated NGINX config ynh_add_nginx_config -#================================================= -# CREATE DEDICATED USERS -#================================================= -ynh_script_progression --message="Configuring system users..." --weight=1 - -# Create system users -ynh_system_user_create --username="$app-guacd" -ynh_system_user_create --username="$app-tomcat" - #================================================= # SPECIFIC SETUP #================================================= @@ -202,15 +202,6 @@ ln -s -f "/var/cache/$app-tomcat9" "$final_path/var/lib/tomcat9/work" #================================================= mkdir -p "/var/log/$app/tomcat/" "/var/log/$app/guacd/" "/var/log/$app/tomcat/" -#================================================= -# SETUP SYSTEMD -#================================================= -ynh_script_progression --message="Configuring systemd services..." --weight=1 - -# Create dedicated systemd configs -ynh_add_systemd_config --service="$app-guacd" --template="guacd.service" -v guacd_port -ynh_add_systemd_config --service="$app-tomcat" --template="tomcat.service" - #================================================= # ADD CONFIGURATIONS #================================================= @@ -219,6 +210,15 @@ ynh_add_config --template="guacamole.properties" --destination="$final_path/etc/ ynh_replace_string --match_string="8080" --replace_string="$port" --target_file="$final_path/etc/tomcat9/server.xml" +#================================================= +# SETUP SYSTEMD +#================================================= +ynh_script_progression --message="Configuring systemd services..." --weight=1 + +# Create dedicated systemd configs +ynh_add_systemd_config --service="$app-guacd" --template="guacd.service" +ynh_add_systemd_config --service="$app-tomcat" --template="tomcat.service" + #================================================= # GENERIC FINALIZATION #================================================= diff --git a/scripts/remove b/scripts/remove index f57c1af..c36b3d3 100755 --- a/scripts/remove +++ b/scripts/remove @@ -90,7 +90,7 @@ ynh_remove_logrotate #================================================= # REMOVE FAIL2BAN CONFIGURATION #================================================= -ynh_script_progression --message="Removing Fail2ban configuration..." --weight=1 +ynh_script_progression --message="Removing Fail2Ban configuration..." --weight=1 # Remove the dedicated Fail2Ban config ynh_remove_fail2ban_config @@ -102,7 +102,7 @@ ynh_remove_fail2ban_config #================================================= # Remove the log files -ynh_secure_remove --file="/var/log/$app/" +ynh_secure_remove --file="/var/log/$app" #================================================= # GENERIC FINALIZATION diff --git a/scripts/restore b/scripts/restore index f580fa6..fccdf1d 100755 --- a/scripts/restore +++ b/scripts/restore @@ -48,16 +48,10 @@ test ! -d $final_path \ #================================================= # RESTORE THE NGINX CONFIGURATION #================================================= +ynh_script_progression --message="Restoring the NGINX web server configuration..." ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" -#================================================= -# RESTORE THE APP MAIN DIR -#================================================= -ynh_script_progression --message="Restoring the app main directory..." --weight=1 - -ynh_restore_file --origin_path="$final_path" - #================================================= # RECREATE THE DEDICATED USER #================================================= @@ -68,11 +62,23 @@ ynh_system_user_create --username="$app-guacd" ynh_system_user_create --username="$app-tomcat" #================================================= -# RESTORE VARIOUS FILES +# RESTORE THE APP MAIN DIR #================================================= +ynh_script_progression --message="Restoring the app main directory..." --weight=1 -ynh_restore_file --origin_path="/var/log/$app" +ynh_restore_file --origin_path="$final_path" +#================================================= +# RESTORE FAIL2BAN CONFIGURATION +#================================================= +ynh_script_progression --message="Restoring the Fail2Ban configuration..." --weight=1 + +ynh_restore_file "/etc/fail2ban/jail.d/$app.conf" +ynh_restore_file "/etc/fail2ban/filter.d/$app.conf" +ynh_systemd_action --action=restart --service_name=fail2ban + +#================================================= +# SPECIFIC RESTORATION #================================================= # REINSTALL DEPENDENCIES #================================================= @@ -108,23 +114,10 @@ chown -R root:root $final_path chmod -R o-rwx $final_path setfacl -n -R -m user:$app-guacd:rx -m default:user:$app-guacd:rx $final_path setfacl -n -R -m user:$app-tomcat:rx -m default:user:$app-tomcat:rx $final_path -chown -R $app-guacd:$app-guacd "/var/log/$app/guacd/" -chown -R $app-tomcat:$app-tomcat "/var/log/$app/tomcat/" chown -R root:$app-tomcat "$final_path/etc/tomcat9/" "$final_path/etc/guacamole/" chown -R "$app-tomcat":"$app-tomcat" "$final_path/var/lib/tomcat9/webapps" setfacl -n -R -m user:$app-guacd:- -m default:user:$app-guacd:- "$final_path/var/lib/tomcat9/" "$final_path/etc/guacamole/" "$final_path/etc/tomcat9/" -#================================================= -# RESTORE FAIL2BAN CONFIGURATION -#================================================= -ynh_script_progression --message="Restoring the Fail2Ban configuration..." --weight=1 - -ynh_restore_file "/etc/fail2ban/jail.d/$app.conf" -ynh_restore_file "/etc/fail2ban/filter.d/$app.conf" -ynh_systemd_action --action=restart --service_name=fail2ban - -#================================================= -# SPECIFIC RESTORATION #================================================= # RESTORE THE MYSQL DATABASE #================================================= @@ -134,6 +127,15 @@ db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd) ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql +#================================================= +# RESTORE VARIOUS FILES +#================================================= +ynh_script_progression --message="Restoring various files..." + +ynh_restore_file --origin_path="/var/log/$app" +chown -R $app-guacd:$app-guacd "/var/log/$app/guacd/" +chown -R $app-tomcat:$app-tomcat "/var/log/$app/tomcat/" + #================================================= # RESTORE SYSTEMD #================================================= @@ -163,6 +165,7 @@ ynh_systemd_action --service_name="$app-tomcat" --action="start" --log_path="/va #================================================= # RESTORE THE LOGROTATE CONFIGURATION #================================================= +ynh_script_progression --message="Restoring the logrotate configuration..." ynh_restore_file --origin_path="/etc/logrotate.d/$app" diff --git a/scripts/upgrade b/scripts/upgrade index 69407ab..f468777 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -26,10 +26,10 @@ db_name=$(ynh_app_setting_get --app=$app --key=db_name) db_user=$db_name db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd) - #================================================= # CHECK VERSION #================================================= +ynh_script_progression --message="Checking version..." upgrade_type=$(ynh_check_app_version_changed) @@ -57,11 +57,21 @@ ynh_script_progression --message="Stopping systemd services..." --weight=1 ynh_systemd_action --service_name="$app-guacd" --action="stop" --log_path="/var/log/$app/guacd.log" ynh_systemd_action --service_name="$app-tomcat" --action="stop" --log_path="/var/log/$app/tomcat.log" +#================================================= +# CREATE DEDICATED USERS +#================================================= +ynh_script_progression --message="Making sure dedicated system user exists..." --weight=1 + +# Create dedicated users (if not existing) +ynh_system_user_create --username="$app-guacd" +ynh_system_user_create --username="$app-tomcat" + #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= -if [ "$upgrade_type" == "UPGRADE_APP" ]; then +if [ "$upgrade_type" == "UPGRADE_APP" ] +then ynh_script_progression --message="Upgrading source files..." --weight=1 # Download, check integrity, uncompress and patch the source from app.src @@ -140,15 +150,6 @@ if [ ! $tomcat_active ]; then systemctl stop tomcat9 --quiet fi -#================================================= -# CREATE DEDICATED USERS -#================================================= -ynh_script_progression --message="Making sure dedicated system user exists..." --weight=1 - -# Create dedicated users (if not existing) -ynh_system_user_create --username="$app-guacd" -ynh_system_user_create --username="$app-tomcat" - #================================================= # SPECIFIC UPGRADE #================================================= @@ -176,15 +177,6 @@ ln -s -f "/var/cache/$app-tomcat9" "$final_path/var/lib/tomcat9/work" #================================================= mkdir -p "/var/log/$app/tomcat/" "/var/log/$app/guacd/" "/var/log/$app/tomcat/" -#================================================= -# SETUP SYSTEMD -#================================================= -ynh_script_progression --message="Upgrading systemd configuration..." --weight=1 - -# Create dedicated systemd configs -ynh_add_systemd_config --service="$app-guacd" --template="guacd.service" -v guacd_port -ynh_add_systemd_config --service="$app-tomcat" --template="tomcat.service" - #================================================= # UPDATE CONFIG FILES #================================================= @@ -193,6 +185,15 @@ ynh_add_config --template="guacamole.properties" --destination="$final_path/etc/ ynh_replace_string --match_string="8080" --replace_string="$port" --target_file="$final_path/etc/tomcat9/server.xml" +#================================================= +# SETUP SYSTEMD +#================================================= +ynh_script_progression --message="Upgrading systemd configuration..." --weight=1 + +# Create dedicated systemd configs +ynh_add_systemd_config --service="$app-guacd" --template="guacd.service" +ynh_add_systemd_config --service="$app-tomcat" --template="tomcat.service" + #================================================= # GENERIC FINALIZATION #================================================= diff --git a/sources/extra_files/app/.gitignore b/sources/extra_files/app/.gitignore deleted file mode 100644 index 783a4ae..0000000 --- a/sources/extra_files/app/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*~ -*.sw[op] diff --git a/sources/patches/.gitignore b/sources/patches/.gitignore deleted file mode 100644 index 783a4ae..0000000 --- a/sources/patches/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*~ -*.sw[op]