From e2f94584c847b20278a1e022716c2ef98f93b996 Mon Sep 17 00:00:00 2001 From: Miraty Date: Sun, 22 Mar 2020 19:02:01 +0100 Subject: [PATCH] Prepare upgrade to LibreQR 1.2.0 --- LICENSE | 0 README.md | 8 ++--- conf/app.src | 4 +-- conf/nginx.conf | 0 manifest.json | 24 +++++++------- screenshot.png | Bin 43417 -> 35030 bytes scripts/_common.sh | 0 scripts/backup | 32 +------------------ scripts/change_url | 27 ---------------- scripts/install | 24 ++------------ scripts/remove | 77 +-------------------------------------------- scripts/restore | 53 ++----------------------------- scripts/upgrade | 22 ++----------- 13 files changed, 28 insertions(+), 243 deletions(-) mode change 100644 => 100755 LICENSE mode change 100644 => 100755 README.md mode change 100644 => 100755 conf/app.src mode change 100644 => 100755 conf/nginx.conf mode change 100644 => 100755 manifest.json mode change 100644 => 100755 scripts/_common.sh mode change 100644 => 100755 scripts/change_url diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 index bf7a87a..c2d97de --- a/README.md +++ b/README.md @@ -27,11 +27,11 @@ Modifiez le fichier /var/www/qr/options.inc.php à votre guise ## Caractéristiques spécifiques YunoHost -#### Support multi-utilisateurs +### Support multi-utilisateurs Il n'y a aucune forme d'authentification dans l'application. -#### Supported architectures +### Supported architectures * x86-64b - [![Build Status](https://ci-apps.yunohost.org/ci/logs/qr%20%28Apps%29.svg)](https://ci-apps.yunohost.org/ci/apps/qr/) * ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/qr%20%28Apps%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/qr/) @@ -48,8 +48,8 @@ Il n'y a aucune forme d'authentification dans l'application. ## Liens * Signaler un bug dans le paquet YunoHost : https://code.antopie.org/miraty/qr_ynh/issues - * Signaler un bug dans le logiciel source : https://code.antopie.org/miraty/qr/issues - * Dépôt de l'application principale : https://code.antopie.org/miraty/qr/ + * Signaler un bug dans le logiciel source : https://code.antopie.org/miraty/libreqr/issues + * Dépôt de l'application principale : https://code.antopie.org/miraty/libreqr/ * Site web de YunoHost : https://yunohost.org/ --- diff --git a/conf/app.src b/conf/app.src old mode 100644 new mode 100755 index 29e16a6..138e132 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://code.antopie.org/miraty/qr/archive/1.1.0.zip -SOURCE_SUM=b409c5ec4cc98968bbe46152fd33b83aca7337205c81c1b0cf73c4203ecb9a9f +SOURCE_URL=https://code.antopie.org/miraty/libreqr/archive/master.zip +SOURCE_SUM=b8ef7510344b74881ba719a2290c089246439c48bb2f1dac757d213d173f016e SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=zip SOURCE_IN_SUBDIR=true diff --git a/conf/nginx.conf b/conf/nginx.conf old mode 100644 new mode 100755 diff --git a/manifest.json b/manifest.json old mode 100644 new mode 100755 index efa9fd7..34b6316 --- a/manifest.json +++ b/manifest.json @@ -1,18 +1,18 @@ { - "name": "Generateur de codes QR", + "name": "LibreQR", "id": "qr", "packaging_format": 1, "description": { "en": "A QR codes generator", "fr": "Un générateur de codes QR" }, - "version": "1.0~ynh1", - "url": "https://code.antopie.org/miraty/qr/", - "license": "Apache-2.0", + "version": "1.2.0~ynh2", + "url": "https://code.antopie.org/miraty/libreqr/", + "license": "AGPL-3.0-or-later", "maintainer": { "name": "Miraty", - "email": "miraty@antopie.org", - "url": "https://www.antopie.org" + "email": "miraty+ynh@antopie.org", + "url": "https://miraty.antopie.org" }, "requirements": { "yunohost": ">= 3.6" @@ -28,8 +28,8 @@ "name": "domain", "type": "domain", "ask": { - "en": "Choose a domain for QR code generator", - "fr": "Choisissez un domaine pour le Générateur de codes QR" + "en": "Choose a domain for LibreQR", + "fr": "Choisissez un domaine pour LibreQR" }, "example": "michu.home" }, @@ -37,8 +37,8 @@ "name": "path", "type": "path", "ask": { - "en": "Choose a path for QR code generator", - "fr": "Choisissez un chemin pour le Générateur de codes QR" + "en": "Choose a path for LibreQR", + "fr": "Choisissez un chemin pour LibreQR" }, "example": "/qr", "default": "/qr" @@ -51,8 +51,8 @@ "fr": "Est-ce une application publique ?" }, "help": { - "en": "Can the QR code generator be used by everyone?", - "fr": "Le générateur de codes QR peut-il être utilisé par tout le monde ?" + "en": "Can LibreQR be used by everyone?", + "fr": "LibreQR peut-elle être utilisée par tout le monde ?" }, "default": true } diff --git a/screenshot.png b/screenshot.png index ae239626dff28f7e96aab4c3767b560d068b8ae8..30d1450ae5891936e894e94eb4262afdfdbd895e 100644 GIT binary patch literal 35030 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 t=|rhD=ltdyc;=^Mk({|AdnlSKdk literal 43417 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

9sdYYIEn$GYN4QJl`ngX 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 SS(2Rl*14?zTdwAv$Nv|eI~x)J diff --git a/scripts/_common.sh b/scripts/_common.sh old mode 100644 new mode 100755 diff --git a/scripts/backup b/scripts/backup index 71a7a80..e9f5b01 100755 --- a/scripts/backup +++ b/scripts/backup @@ -30,7 +30,7 @@ app=$YNH_APP_INSTANCE_NAME final_path=$(ynh_app_setting_get --app=$app --key=final_path) domain=$(ynh_app_setting_get --app=$app --key=domain) -db_name=$(ynh_app_setting_get --app=$app --key=db_name) +#db_name=$(ynh_app_setting_get --app=$app --key=db_name) #================================================= # STANDARD BACKUP STEPS @@ -55,36 +55,6 @@ ynh_script_progression --message="Backing up php-fpm configuration..." --time -- ynh_backup --src_path="/etc/php/7.0/fpm/pool.d/$app.conf" -#================================================= -# BACKUP THE MYSQL DATABASE -#================================================= -#ynh_script_progression --message="Backing up the MySQL database..." --time --weight=1 - -#ynh_mysql_dump_db --database="$db_name" > db.sql - -#================================================= -# BACKUP FAIL2BAN CONFIGURATION -#================================================= -#ynh_script_progression --message="Backing up fail2ban configuration..." --time --weight=1 - -#ynh_backup --src_path="/etc/fail2ban/jail.d/$app.conf" -#ynh_backup --src_path="/etc/fail2ban/filter.d/$app.conf" - -#================================================= -# SPECIFIC BACKUP -#================================================= -# BACKUP LOGROTATE -#================================================= -#ynh_script_progression --message="Backing up logrotate configuration..." --time --weight=1 - -#ynh_backup --src_path="/etc/logrotate.d/$app" - -#================================================= -# BACKUP A CRON FILE -#================================================= - -#ynh_backup --src_path="/etc/cron.d/$app" - #================================================= # END OF SCRIPT #================================================= diff --git a/scripts/change_url b/scripts/change_url old mode 100644 new mode 100755 index 9336b50..997a61b --- a/scripts/change_url +++ b/scripts/change_url @@ -53,12 +53,6 @@ fi #================================================= # STANDARD MODIFICATIONS #================================================= -# STOP SYSTEMD SERVICE -#================================================= -#ynh_script_progression --message="Stopping a systemd service..." --time --weight=1 - -#ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app/$app.log" - #================================================= # MODIFY URL IN NGINX CONF #================================================= @@ -88,27 +82,6 @@ then ynh_store_file_checksum --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" fi -#================================================= -# SPECIFIC MODIFICATIONS -#================================================= - -# Mofifie la nouvelle URL dans le fichier de conf options.inc.php -ynh_replace_string --match_string="\$cheminInstall = \"https://$old_domain/$old_path\";" --replace_string="\$cheminInstall = \"https://$new_domain/$new_path\";" --target_file=$final_path/options.inc.php - -#================================================= -# END SPECIFIC MODIFICATIONS -#================================================= - - -#================================================= -# GENERIC FINALISATION -#================================================= -# START SYSTEMD SERVICE -#================================================= -#ynh_script_progression --message="Starting a systemd service..." --time --weight=1 - -#ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" - #================================================= # RELOAD NGINX #================================================= diff --git a/scripts/install b/scripts/install index f095e1b..a437421 100755 --- a/scripts/install +++ b/scripts/install @@ -123,17 +123,6 @@ ynh_print_info "Configuring php-fpm..." # Create a dedicated php-fpm config ynh_add_fpm_config -#================================================= -# MODIFY A CONFIG FILE -#================================================= - -ynh_script_progression --message="MODIFY A CONFIG FILE" --time --weight=1 - -### `ynh_replace_string` is used to replace a string in a file. -### (It's compatible with sed regular expressions syntax) - -ynh_replace_string --match_string="\$cheminInstall = \"https://example.org/\";" --replace_string="\$cheminInstall = \"https://$domain/$path_url\";" --target_file=$final_path/options.inc.php - #================================================= # GENERIC FINALIZATION #================================================= @@ -145,17 +134,8 @@ ynh_replace_string --match_string="\$cheminInstall = \"https://example.org/\";" ### that really need such authorization. # Set permissions to app files -chown -R root: $final_path -chown -R root:$app $final_path/temp -chmod -R g+w $final_path/temp - -#================================================= -# SETUP FAIL2BAN -#================================================= -#ynh_script_progression --message="Configuring fail2ban..." --time --weight=1 - -# Create a dedicated fail2ban config -#ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="Regex to match into the log for a failed login" +chown -R root:$app $final_path +chmod -R g+w $final_path #================================================= # SETUP SSOWAT diff --git a/scripts/remove b/scripts/remove index 2e03392..9390010 100755 --- a/scripts/remove +++ b/scripts/remove @@ -17,46 +17,12 @@ ynh_script_progression --message="Loading installation settings..." --time --wei app=$YNH_APP_INSTANCE_NAME domain=$(ynh_app_setting_get --app=$app --key=domain) -port=$(ynh_app_setting_get --app=$app --key=port) +#port=$(ynh_app_setting_get --app=$app --key=port) final_path=$(ynh_app_setting_get --app=$app --key=final_path) #================================================= # STANDARD REMOVE #================================================= -# REMOVE SERVICE FROM ADMIN PANEL -#================================================= - -# Remove a service from the admin panel, added by `yunohost service add` -#if ynh_exec_warn_less yunohost service status $app >/dev/null -#then -# ynh_script_progression --message="Removing $app service..." --time --weight=1 -# yunohost service remove $app -#fi - -#================================================= -# STOP AND REMOVE SERVICE -#================================================= -#ynh_script_progression --message="Stopping and removing the systemd service..." --time --weight=1 - -# Remove the dedicated systemd config -#ynh_remove_systemd_config - -#================================================= -# REMOVE THE MYSQL DATABASE -#================================================= -#ynh_script_progression --message="Removing the MySQL database..." --time --weight=1 - -# Remove a database if it exists, along with the associated user -#ynh_mysql_remove_db --db_user=$db_user --db_name=$db_name - -#================================================= -# REMOVE DEPENDENCIES -#================================================= -#ynh_script_progression --message="Removing dependencies..." --time --weight=1 - -# Remove metapackage and its dependencies -#ynh_remove_app_dependencies - #================================================= # REMOVE APP MAIN DIR #================================================= @@ -81,47 +47,6 @@ ynh_script_progression --message="Removing php-fpm configuration..." --time --we # Remove the dedicated php-fpm config ynh_remove_fpm_config -#================================================= -# REMOVE LOGROTATE CONFIGURATION -#================================================= -#ynh_script_progression --message="Removing logrotate configuration..." --time --weight=1 - -# Remove the app-specific logrotate config -#ynh_remove_logrotate - -#================================================= -# CLOSE A PORT -#================================================= - -if yunohost firewall list | grep -q "\- $port$" -then - ynh_script_progression --message="Closing port $port..." - ynh_exec_warn_less yunohost firewall disallow TCP $port -fi - -#================================================= -# REMOVE FAIL2BAN CONFIGURATION -#================================================= -#ynh_script_progression --message="Removing fail2ban configuration..." --time --weight=1 - -# Remove the dedicated fail2ban config -#ynh_remove_fail2ban_config - -#================================================= -# SPECIFIC REMOVE -#================================================= -# REMOVE THE CRON FILE -#================================================= - -# Remove a cron file -#ynh_secure_remove --file="/etc/cron.d/$app" - -# Remove a directory securely -#ynh_secure_remove --file="/etc/$app/" - -# Remove the log files -#ynh_secure_remove --file="/var/log/$app/" - #================================================= # GENERIC FINALIZATION #================================================= diff --git a/scripts/restore b/scripts/restore index 1fdce31..18f6c21 100755 --- a/scripts/restore +++ b/scripts/restore @@ -69,10 +69,9 @@ ynh_system_user_create --username=$app # RESTORE USER RIGHTS #================================================= -# Restore permissions on app files -chown -R root: $final_path -chown -R root:$app $final_path/temp -chmod -R g+w $final_path/temp +# Set permissions to app files +chown -R root:$app $final_path +chmod -R g+w $final_path #================================================= # RESTORE THE PHP-FPM CONFIGURATION @@ -80,52 +79,6 @@ chmod -R g+w $final_path/temp ynh_restore_file --origin_path="/etc/php/7.0/fpm/pool.d/$app.conf" -#================================================= -# RESTORE FAIL2BAN CONFIGURATION -#================================================= -#ynh_script_progression --message="Restoring the fail2ban configuration..." --time --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 -#================================================= -#ynh_script_progression --message="Reinstalling dependencies..." --time --weight=1 - -# Define and install dependencies -#ynh_install_app_dependencies $pkg_dependencies - -#================================================= -# RESTORE THE MYSQL DATABASE -#================================================= -#ynh_script_progression --message="Restoring the MySQL database..." --time --weight=1 - -#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 - -#================================================= -# ADVERTISE SERVICE IN ADMIN PANEL -#================================================= - -#yunohost service add $app --log "/var/log/$app/$app.log" - -#================================================= -# RESTORE THE CRON FILE -#================================================= - -#ynh_restore_file --origin_path="/etc/cron.d/$app" - -#================================================= -# RESTORE THE LOGROTATE CONFIGURATION -#================================================= - -#ynh_restore_file --origin_path="/etc/logrotate.d/$app" - #================================================= # GENERIC FINALIZATION #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index 2cf3c96..a0b7e5d 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -126,12 +126,6 @@ ynh_script_progression --message="Upgrading php-fpm configuration..." --time --w # Create a dedicated php-fpm config ynh_add_fpm_config -#================================================= -# SPECIFIC UPGRADE -#================================================= -# ... -#================================================= - #================================================= # STORE THE CONFIG FILE CHECKSUM #================================================= @@ -142,25 +136,15 @@ ynh_backup_if_checksum_is_different --file="$final_path/options.inc.php" # Recalculate and store the checksum of the file for the next upgrade. ynh_store_file_checksum --file="$final_path/options.inc.php" - #================================================= # GENERIC FINALIZATION -#================================================= -# UPGRADE FAIL2BAN -#================================================= -#ynh_script_progression --message="Reconfiguring fail2ban..." --time --weight=1 - -# Create a dedicated fail2ban config -#ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="Regex to match into the log for a failed login" - #================================================= # SECURE FILES AND DIRECTORIES #================================================= -# Set permissions on app files -chown -R root: $final_path -chown -R root:$app $final_path/temp -chmod -R g+w $final_path/temp +# Set permissions to app files +chown -R root:$app $final_path +chmod -R g+w $final_path #================================================= # SETUP SSOWAT