1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/dolibarr_ynh.git synced 2024-09-03 18:35:53 +02:00

Update to 16.0.3 & scripts improvement & fixs

Update to 16.0.3 & scripts improvement & fixs
This commit is contained in:
mastereur 2022-12-08 22:57:52 +01:00 committed by GitHub
commit 52a3492e0c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 313 additions and 153 deletions

View file

@ -17,8 +17,7 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in
Dolibarr ERP & CRM is a modern software for managing your professional or associative activity (contacts, invoices, orders, stocks, agenda, etc.). Dolibarr ERP & CRM is a modern software for managing your professional or associative activity (contacts, invoices, orders, stocks, agenda, etc.).
**Shipped version:** 15.0.3~ynh1 **Shipped version:** 16.0.3~ynh1
**Demo:** https://www.dolibarr.org/onlinedemo **Demo:** https://www.dolibarr.org/onlinedemo

View file

@ -17,8 +17,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour
Dolibarr ERP & CRM est un logiciel moderne de gestion de votre activité professionnelle ou associative (contacts, factures, commandes, stocks, agenda, etc.). Dolibarr ERP & CRM est un logiciel moderne de gestion de votre activité professionnelle ou associative (contacts, factures, commandes, stocks, agenda, etc.).
**Version incluse :** 15.0.3~ynh1 **Version incluse :** 16.0.3~ynh1
**Démo :** https://www.dolibarr.org/onlinedemo **Démo :** https://www.dolibarr.org/onlinedemo

View file

@ -1,5 +0,0 @@
SOURCE_URL=https://github.com/Dolibarr/dolibarr/archive/15.0.3.tar.gz
SOURCE_SUM=b145a38f56c44b166721d64909fb12408c6d10d08fcf74d2c00418a60201cc9d
SOURCE_SUM_PRG=sha256sum
SOURCE_FORMAT=tar.gz
SOURCE_IN_SUBDIR=true

View file

@ -4,11 +4,6 @@ location __PATH__/ {
# Path to source # Path to source
alias __FINALPATH__/htdocs/ ; alias __FINALPATH__/htdocs/ ;
# Force usage of https
if ($scheme = http) {
rewrite ^ https://$server_name$request_uri? permanent;
}
index index.php; index index.php;
# Common parameter to increase upload size limit in conjunction with dedicated php-fpm file # Common parameter to increase upload size limit in conjunction with dedicated php-fpm file

View file

@ -1,21 +1,21 @@
#!/bin/bash #!/bin/bash
app=__APP__ app="$(basename $0 | cut -d- -f 2-)" # Extract the app name from the script name, which is supposed to be something like "50-app_id"
src_path=__FINALPATH__ src_path=$(yunohost app setting $app final_path)
member=__MEMBER__ # member=__MEMBER__
# Sync users # Sync users
if sudo php $src_path/scripts/user/sync_users_ldap2dolibarr.php commitiferror --server=localhost -y; then if sudo php "$src_path/scripts/user/sync_users_ldap2dolibarr.php" commitiferror --server=localhost -y; then
echo ldap user update ok echo ldap user update ok
else else
echo ldap user update ended with error echo ldap user update ended with error
fi fi
# If YNH users should also be members, sync members # If YNH users should also be members, sync members
if [ $member -eq 1 ]; # if [ $member -eq 1 ];
then # then
if sudo php $src_path/scripts/members/sync_members_ldap2dolibarr.php commitiferror 1 --server=localhost -y; then # if sudo php "$src_path/scripts/members/sync_members_ldap2dolibarr.php" commitiferror 1 --server=localhost -y; then
echo ldap member update ok # echo ldap member update ok
else # else
echo ldap member update ended with error # echo ldap member update ended with error
fi # fi
fi # fi

View file

@ -6,7 +6,7 @@
"en": "Manage the various aspects of your business or association", "en": "Manage the various aspects of your business or association",
"fr": "Gérez les différents aspects de votre activité pro ou associative" "fr": "Gérez les différents aspects de votre activité pro ou associative"
}, },
"version": "15.0.3~ynh1", "version": "16.0.3~ynh1",
"url": "https://www.dolibarr.org/", "url": "https://www.dolibarr.org/",
"upstream": { "upstream": {
"license": "GPL-3.0-or-later", "license": "GPL-3.0-or-later",
@ -23,12 +23,12 @@
"url": "https://github.com/mastereur" "url": "https://github.com/mastereur"
}, },
"requirements": { "requirements": {
"yunohost": ">= 4.3.4" "yunohost": ">= 11.0"
}, },
"multi_instance": true, "multi_instance": true,
"services": [ "services": [
"nginx", "nginx",
"php7.3-fpm", "php7.4-fpm",
"mysql" "mysql"
], ],
"arguments": { "arguments": {

View file

@ -3,20 +3,24 @@
#================================================= #=================================================
# COMMON VARIABLES # COMMON VARIABLES
#================================================= #=================================================
YNH_PHP_VERSION="7.3" YNH_PHP_VERSION="7.4"
extra_php_dependencies="php${YNH_PHP_VERSION}-mysql \ php_dependencies="php$YNH_PHP_VERSION-mysql \
php${YNH_PHP_VERSION}-imagick \ php$YNH_PHP_VERSION-imagick \
php${YNH_PHP_VERSION}-gd \ php$YNH_PHP_VERSION-gd \
php${YNH_PHP_VERSION}-mbstring \ php$YNH_PHP_VERSION-mbstring \
php${YNH_PHP_VERSION}-soap \ php$YNH_PHP_VERSION-soap \
php${YNH_PHP_VERSION}-curl \ php$YNH_PHP_VERSION-curl \
php${YNH_PHP_VERSION}-intl \ php$YNH_PHP_VERSION-intl \
php${YNH_PHP_VERSION}-opcache \ php$YNH_PHP_VERSION-opcache \
php${YNH_PHP_VERSION}-calendar \ php$YNH_PHP_VERSION-calendar \
php${YNH_PHP_VERSION}-zip \ php$YNH_PHP_VERSION-zip \
php${YNH_PHP_VERSION}-xml \ php$YNH_PHP_VERSION-xml \
php${YNH_PHP_VERSION}-fileinfo" php$YNH_PHP_VERSION-fileinfo \
php$YNH_PHP_VERSION-imap"
# dependencies used by the app (must be on a single line)
pkg_dependencies="$php_dependencies"
#================================================= #=================================================
# PERSONAL HELPERS # PERSONAL HELPERS

View file

@ -23,8 +23,9 @@ ynh_abort_if_errors
domain=$YNH_APP_ARG_DOMAIN domain=$YNH_APP_ARG_DOMAIN
path_url=$YNH_APP_ARG_PATH path_url=$YNH_APP_ARG_PATH
admin=$YNH_APP_ARG_ADMIN admin=$YNH_APP_ARG_ADMIN
member=0 #member=0
#is_public=0 #is_public=0
phpversion=$YNH_PHP_VERSION
app=$YNH_APP_INSTANCE_NAME app=$YNH_APP_INSTANCE_NAME
@ -48,9 +49,18 @@ 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=path --value=$path_url
ynh_app_setting_set --app=$app --key=admin --value=$admin ynh_app_setting_set --app=$app --key=admin --value=$admin
#ynh_app_setting_set --app=$app --key=is_public --value=$is_public #ynh_app_setting_set --app=$app --key=is_public --value=$is_public
ynh_app_setting_set --app=$app --key=member --value=$member #ynh_app_setting_set --app=$app --key=member --value=$member
ynh_app_setting_set --app=$app --key=version --value=$(ynh_app_upstream_version "../manifest.json") ynh_app_setting_set --app=$app --key=version --value=$(ynh_app_upstream_version "../manifest.json")
#=================================================
# STANDARD MODIFICATIONS
#=================================================
# INSTALL DEPENDENCIES
#=================================================
ynh_script_progression --message="Installing dependencies..." --weight=1
ynh_install_app_dependencies $pkg_dependencies
#================================================= #=================================================
# CREATE DEDICATED USER # CREATE DEDICATED USER
#================================================= #=================================================
@ -59,8 +69,6 @@ ynh_script_progression --message="Configuring system user..." --weight=2
# Create a system user # Create a system user
ynh_system_user_create --username=$app --home_dir="$final_path" ynh_system_user_create --username=$app --home_dir="$final_path"
#=================================================
# STANDARD MODIFICATIONS
#================================================= #=================================================
# CREATE A MYSQL DATABASE # CREATE A MYSQL DATABASE
#================================================= #=================================================
@ -78,6 +86,19 @@ ynh_mysql_execute_as_root --sql="ALTER DATABASE $db_name charset=utf8"
#================================================= #=================================================
ynh_script_progression --message="Setting up source files..." --weight=1 ynh_script_progression --message="Setting up source files..." --weight=1
# Load the last available version
source upgrade.d/upgrade.last.sh
# Create an app.src for the last version of nextcloud
cat > ../conf/app.src << EOF
SOURCE_URL=https://github.com/Dolibarr/dolibarr/archive/$next_version.tar.gz
SOURCE_SUM=$dolibarr_source_sha256
SOURCE_SUM_PRG=sha256sum
SOURCE_FORMAT=tar.bz2
SOURCE_IN_SUBDIR=true
EOF
ynh_app_setting_set --app=$app --key=final_path --value=$final_path ynh_app_setting_set --app=$app --key=final_path --value=$final_path
# Download, check integrity, uncompress and patch the source from app.src # Download, check integrity, uncompress and patch the source from app.src
@ -91,10 +112,17 @@ touch $final_path/htdocs/conf/conf.php
#================================================= #=================================================
# PHP-FPM CONFIGURATION # PHP-FPM CONFIGURATION
#================================================= #=================================================
ynh_script_progression --message="Configuring PHP-FPM and install dependencies..." --weight=2 ynh_script_progression --message="Configuring PHP-FPM" --weight=2
fpm_footprint="medium"
fpm_usage="medium"
ynh_app_setting_set --app=$app --key=fpm_footprint --value=$fpm_footprint
ynh_app_setting_set --app=$app --key=fpm_usage --value=$fpm_usage
# Create a dedicated php-fpm config # Create a dedicated php-fpm config
ynh_add_fpm_config --usage=medium --footprint=medium --package="$extra_php_dependencies" ynh_add_fpm_config --phpversion=$phpversion --usage=$fpm_usage --footprint=$fpm_footprint
# Used by ynh_add_nginx_config
phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) phpversion=$(ynh_app_setting_get --app=$app --key=phpversion)
#================================================= #=================================================
@ -114,14 +142,6 @@ ynh_script_progression --message="Adding a configuration file..." --weight=1
ynh_add_config --template="../conf/install.forced.php" --destination="$final_path/htdocs/install/install.forced.php" ynh_add_config --template="../conf/install.forced.php" --destination="$final_path/htdocs/install/install.forced.php"
#=================================================
# CONFIGURE THE HOOK FILE FOR USER CREATE
#=================================================
fhook=../hooks/post_user_create
ynh_replace_string --match_string="__APP__" --replace_string="$app" --target_file="$fhook"
ynh_replace_string --match_string="__MEMBER__" --replace_string="$member" --target_file="$fhook"
ynh_replace_string --match_string="__FINALPATH__" --replace_string="$final_path" --target_file="$fhook"
#================================================= #=================================================
# SETUP APPLICATION WITH CURL # SETUP APPLICATION WITH CURL
#================================================= #=================================================
@ -129,10 +149,10 @@ ynh_replace_string --match_string="__FINALPATH__" --replace_string="$final_path"
# Set right permissions for curl install # Set right permissions for curl install
chown -R $app: "$final_path" chown -R $app: "$final_path"
# Set the app as temporarily public for curl call
ynh_script_progression --message="Configuring permissions..." --weight=1
# Set the app as temporarily public for cURL call # Set the app as temporarily public for cURL call
ynh_permission_update --permission="main" --add="visitors" if ! ynh_permission_has_user --permission "main" --user="visitors"; then
ynh_permission_update --permission="main" --add="visitors"
fi
# Reload NGINX # Reload NGINX
ynh_systemd_action --service_name=nginx --action=reload ynh_systemd_action --service_name=nginx --action=reload
@ -190,10 +210,10 @@ ynh_mysql_connect_as --user=$db_name --password=$db_pwd --database=$db_name < ..
# Populate the database with YNH users. # Populate the database with YNH users.
ynh_mysql_connect_as --user=$db_name --password=$db_pwd --database=$db_name < ../conf/sql/ldap_user.sql ynh_mysql_connect_as --user=$db_name --password=$db_pwd --database=$db_name < ../conf/sql/ldap_user.sql
if php $final_path/scripts/user/sync_users_ldap2dolibarr.php commitiferror --server=localhost -y; then if php$phpversion $final_path/scripts/user/sync_users_ldap2dolibarr.php commitiferror --server=localhost -y; then
ynh_print_info --message="LDAP user update ok" ynh_print_info --message="LDAP user update ok"
else else
ynh_print_warn --message="LDAP user update ended with error" ynh_print_info --message="LDAP user update ended with error"
fi fi
# Remove the public access # Remove the public access
@ -219,8 +239,15 @@ ynh_store_file_checksum --file="$final_path/htdocs/conf/conf.php"
#================================================= #=================================================
# SECURE FILES AND DIRECTORIES # SECURE FILES AND DIRECTORIES
#================================================= #=================================================
ynh_script_progression --message="Configuring permissions..." --weight=1
# Set permissions on app files # Set permissions on app files
if [ ! -f "$datadir/install.lock" ]; then
echo 'This is a lock file to prevent use of install pages (set with permission 440)' > "$datadir/install.lock"
chown $app:$app "$datadir/install.lock"
chmod 440 "$datadir/install.lock"
fi
chmod 750 "$final_path" chmod 750 "$final_path"
chmod -R o-rwx "$final_path" chmod -R o-rwx "$final_path"
chown -R $app:www-data "$final_path" chown -R $app:www-data "$final_path"

View file

@ -24,6 +24,13 @@ final_path=$(ynh_app_setting_get --app=$app --key=final_path)
#================================================= #=================================================
# STANDARD REMOVE # STANDARD REMOVE
# REMOVE DEPENDENCIES
#=================================================
ynh_script_progression --message="Removing dependencies..." --weight=1
# Remove metapackage and its dependencies
ynh_remove_app_dependencies
#================================================= #=================================================
# REMOVE THE MYSQL DATABASE # REMOVE THE MYSQL DATABASE
#================================================= #=================================================

View file

@ -46,10 +46,12 @@ test ! -d $final_path \
#================================================= #=================================================
# STANDARD RESTORATION STEPS # STANDARD RESTORATION STEPS
#================================================= #=================================================
# RESTORE THE NGINX CONFIGURATION # RECREATE THE DEDICATED USER
#================================================= #=================================================
ynh_script_progression --message="Recreating the dedicated system user..." --weight=3
ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" # Create the dedicated user (if not existing)
ynh_system_user_create --username=$app
#================================================= #=================================================
# RESTORE THE APP MAIN DIR # RESTORE THE APP MAIN DIR
@ -59,12 +61,14 @@ ynh_script_progression --message="Restoring the app main directory..." --weight=
ynh_restore_file --origin_path="$final_path" ynh_restore_file --origin_path="$final_path"
#================================================= #=================================================
# RECREATE THE DEDICATED USER # SPECIFIC RESTORATION
#================================================= #=================================================
ynh_script_progression --message="Recreating the dedicated system user..." --weight=3 # REINSTALL DEPENDENCIES
#=================================================
ynh_script_progression --message="Reinstalling dependencies..." --weight=1
# Create the dedicated user (if not existing) # Define and install dependencies
ynh_system_user_create --username=$app ynh_install_app_dependencies $pkg_dependencies
#================================================= #=================================================
# RESTORE THE PHP-FPM CONFIGURATION # RESTORE THE PHP-FPM CONFIGURATION
@ -75,11 +79,14 @@ ynh_print_info --message="Reconfiguring PHP-FPM..."
ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf"
# Recreate a dedicated php-fpm config # Recreate a dedicated php-fpm config
ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint --phpversion=$phpversion --package="$extra_php_dependencies" ynh_add_fpm_config --phpversion=$phpversion --usage=$fpm_usage --footprint=$fpm_footprint
#================================================= #=================================================
# SPECIFIC RESTORATION # RESTORE THE NGINX CONFIGURATION
#=================================================
ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
#================================================= #=================================================
# RESTORE THE MYSQL DATABASE # RESTORE THE MYSQL DATABASE
#================================================= #=================================================
@ -92,12 +99,14 @@ ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./
#================================================= #=================================================
# RESTORE THE LOGROTATE CONFIGURATION # RESTORE THE LOGROTATE CONFIGURATION
#================================================= #=================================================
ynh_script_progression --message="Restoring the logrotate configuration..." --weight=1
ynh_restore_file --origin_path="/etc/logrotate.d/$app" ynh_restore_file --origin_path="/etc/logrotate.d/$app"
#================================================= #=================================================
# SECURE FILES AND DIRECTORIES # SECURE FILES AND DIRECTORIES
#================================================= #=================================================
ynh_script_progression --message="Configuring permissions..." --weight=1
# Set permissions on app files # Set permissions on app files
chmod 750 "$final_path" chmod 750 "$final_path"

View file

@ -19,7 +19,6 @@ app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get --app=$app --key=domain) domain=$(ynh_app_setting_get --app=$app --key=domain)
path_url=$(ynh_app_setting_get --app=$app --key=path) path_url=$(ynh_app_setting_get --app=$app --key=path)
admin=$(ynh_app_setting_get --app=$app --key=admin) admin=$(ynh_app_setting_get --app=$app --key=admin)
member=$(ynh_app_setting_get --app=$app --key=member)
final_path=$(ynh_app_setting_get --app=$app --key=final_path) final_path=$(ynh_app_setting_get --app=$app --key=final_path)
language=$(ynh_app_setting_get --app=$app --key=language) language=$(ynh_app_setting_get --app=$app --key=language)
db_name=$(ynh_app_setting_get --app=$app --key=db_name) db_name=$(ynh_app_setting_get --app=$app --key=db_name)
@ -29,7 +28,7 @@ datadir=$final_path/documents/
fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint) fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint)
fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage) fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage)
phpversion=$(ynh_app_setting_get --app="$app" --key=phpversion) phpversion=$(ynh_app_setting_get --app=$app --key=phpversion)
#================================================= #=================================================
# CHECK VERSION # CHECK VERSION
@ -51,6 +50,8 @@ ynh_clean_setup () {
# Exit if an error occurs during the execution of the script # Exit if an error occurs during the execution of the script
ynh_abort_if_errors ynh_abort_if_errors
#=================================================
# STANDARD UPGRADE STEPS
#================================================= #=================================================
# ENSURE DOWNWARD COMPATIBILITY # ENSURE DOWNWARD COMPATIBILITY
#================================================= #=================================================
@ -87,10 +88,16 @@ if ynh_legacy_permissions_exists; then
ynh_app_setting_delete --app=$app --key=is_public ynh_app_setting_delete --app=$app --key=is_public
fi fi
# Create a permission if needed
if ! ynh_permission_exists --permission "public_space"; then if ! ynh_permission_exists --permission "public_space"; then
ynh_permission_create --permission "public_space" --url "/public/" --allowed "visitors" ynh_permission_create --permission "public_space" --url "/public/" --allowed "visitors"
fi fi
# Delete existing ini configuration file (backward compatibility)
if [ -f /etc/php/$YNH_PHP_VERSION/fpm/conf.d/20-$app.ini ]; then
ynh_secure_remove --file=/etc/php/$YNH_PHP_VERSION/fpm/conf.d/20-$app.ini
fi
#================================================= #=================================================
# CREATE DEDICATED USER # CREATE DEDICATED USER
#================================================= #=================================================
@ -100,24 +107,26 @@ ynh_script_progression --message="Making sure dedicated system user exists..." -
ynh_system_user_create --username=$app --home_dir="$final_path" ynh_system_user_create --username=$app --home_dir="$final_path"
#================================================= #=================================================
# STANDARD UPGRADE STEPS # UPGRADE DEPENDENCIES
#=================================================
# DOWNLOAD, CHECK AND UNPACK SOURCE
#================================================= #=================================================
ynh_script_progression --message="Upgrading dependencies..." --weight=1
if [ "$upgrade_type" == "UPGRADE_APP" ] ynh_install_app_dependencies $pkg_dependencies
then
ynh_script_progression --message="Upgrading source files..." --weight=70
# Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source --dest_dir="$final_path"
fi
#================================================= #=================================================
# NGINX CONFIGURATION # NGINX CONFIGURATION
#================================================= #=================================================
ynh_script_progression --message="Upgrading NGINX web server configuration..." --weight=1 ynh_script_progression --message="Upgrading NGINX web server configuration..." --weight=1
ynh_backup_if_checksum_is_different --file="/etc/nginx/conf.d/$domain.d/$app.conf"
# Delete current NGINX configuration to be able to check if .well-known is already served.
ynh_remove_nginx_config
ynh_app_setting_delete --app=$app --key="checksum__etc_nginx_conf.d_$domain.d_$app.conf"
# Wait untils NGINX has fully reloaded
ynh_systemd_action --service_name=nginx --action=reload --line_match="Reloaded" --log_path="systemd"
# Create a dedicated nginx config # Create a dedicated nginx config
ynh_add_nginx_config ynh_add_nginx_config
@ -129,86 +138,149 @@ ynh_script_progression --message="Upgrading PHP-FPM configuration..." --weight=2
# If php has changed, remove the old fpm config file # If php has changed, remove the old fpm config file
# if [ "$phpversion" != $YNH_PHP_VERSION ] # if [ "$phpversion" != $YNH_PHP_VERSION ]
# then # then
# ynh_backup_if_checksum_is_different --file="/etc/php/$phpversion/fpm/pool.d/$app.conf" # ynh_backup_if_checksum_is_different --file="/etc/php/$phpversion/fpm/pool.d/$app.conf"
# ynh_secure_remove --file="/etc/php/$phpversion/fpm/pool.d/$app.conf" # ynh_secure_remove --file="/etc/php/$phpversion/fpm/pool.d/$app.conf"
# if [ -f /etc/php/$phpversion/fpm/conf.d/20-$app.ini ]; then # if [ -f /etc/php/$phpversion/fpm/conf.d/20-$app.ini ]; then
# ynh_secure_remove --file="/etc/php/$phpversion/fpm/conf.d/20-$app.ini" # ynh_secure_remove --file="/etc/php/$phpversion/fpm/conf.d/20-$app.ini"
# fi # fi
# ynh_systemd_action --service_name="php${phpversion}-fpm" --action=reload # ynh_systemd_action --service_name="php${phpversion}-fpm" --action=reload
# phpversion="$YNH_PHP_VERSION" # phpversion="$YNH_PHP_VERSION"
# fi # fi
# Recreate a dedicated PHP-FPM config # Recreate a dedicated PHP-FPM config
ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint --package="$extra_php_dependencies" ynh_add_fpm_config --usage=$fpm_usage --footprint=$fpm_footprint
phpversion=$(ynh_app_setting_get --app=$app --key=phpversion)
#================================================= #=================================================
# SPECIFIC UPGRADE # SPECIFIC UPGRADE
#================================================= #=================================================
# LAUNCH UPGRADE # MAKE SEQUENTIAL UPGRADES FROM EACH MAJOR
# VERSION TO THE NEXT ONE
#================================================= #=================================================
if [ "$upgrade_type" == "UPGRADE_APP" ] if [ "$upgrade_type" == "UPGRADE_APP" ]
then then
ynh_script_progression --message="Upgrading app from $current_version to $update_version" --weight=3 ynh_script_progression --message="Upgrading source files..." --weight=60
chown -R $app: "$final_path" # Load the last available version
source upgrade.d/upgrade.last.sh
last_version=$next_version
# Remove the lock if it exists last_major_version=${last_version%%.*}
lock=$final_path/documents/install.lock
if [ -f $lock ] # While the current version is not the last version, do an upgrade
then while [ "$last_version" != "$current_version" ]
ynh_secure_remove $lock do
fi
mkdir -p /var/log/$app/ # The major version is the first part of the version number
current_major_version=${current_version%%.*}
# Upgrade with CURL
if [ ! -f upgrade.d/upgrade.$current_major_version.sh ]; then
# Set the app as temporarily public for cURL call source upgrade.d/upgrade.last.sh
ynh_permission_update --permission="main" --add="visitors" else
source upgrade.d/upgrade.$current_major_version.sh
fi
pushd $final_path/htdocs/install/ # If the current version has the same major version than the next one,
if php$phpversion upgrade.php $current_version $update_version > /var/log/$app/upgrade.html; then # then it's the last upgrade to do
ynh_print_info --message="Step 1 upgrading ended successfully" # We also cover the case where the last version is the first of the current major version series
else # (e.g. 20.0.0 is the latest version)
ynh_print_warn --message="Step 1 upgrading ended with error" if [[ ("$last_major_version" -eq "$current_major_version") || ( ("$last_major_version" -eq "$((current_major_version+1))") && ("$next_version" == "$last_version") ) ]]; then
fi current_major_version=last
fi
# Load the value for this version
source upgrade.d/upgrade.$current_major_version.sh
ynh_exec_fully_quiet sleep 5 ynh_print_info --message="Upgrading app from $current_version to $next_version"
if php$phpversion upgrade2.php $current_version $update_version > /var/log/$app/upgrade2.html; then
ynh_print_info --message="Step 2 upgrading ended successfully"
else
ynh_print_warn --message="Step 2 upgrading ended with error"
fi
ynh_exec_fully_quiet sleep 5
charset=$(mysql -ss -N -e "SELECT default_character_set_name FROM information_schema.SCHEMATA WHERE schema_name = '$db_name'")
if [ "$charset" != "utf8" ]
then
ynh_script_progression --message="Changing Database charset to utf8" --weight=5
ynh_mysql_execute_as_root --database=$db_name --sql="ALTER DATABASE $db_name charset=utf8" # Create an app.src for this version of Dolibarr
cat > ../conf/app.src << EOF
ynh_local_curl "/install/repair.php" \ SOURCE_URL=https://github.com/Dolibarr/dolibarr/archive/$next_version.tar.gz
"force_utf8_on_tables=confirmed" > /var/log/$app/repair.html SOURCE_SUM=$dolibarr_source_sha256
fi SOURCE_SUM_PRG=sha256sum
SOURCE_FORMAT=tar.bz2
SOURCE_IN_SUBDIR=true
EOF
ynh_exec_fully_quiet sleep 5
if php$phpversion step5.php $current_version $update_version > /var/log/$app/upgrade3.html; then
ynh_print_info --message="Step 3 upgrading ended successfully"
else
ynh_print_warn --message="Step 3 upgrading ended with error"
fi
ynh_app_setting_set --app=$app --key=version --value=$update_version # Download, check integrity, uncompress and patch the source from app.src
ynh_setup_source --dest_dir="$final_path"
popd chown -R $app: "$final_path"
ynh_permission_update --permission="main" --remove="visitors" # Remove the lock if it exists
lock=$final_path/documents/install.lock
if [ -f $lock ]
then
ynh_secure_remove $lock
fi
mkdir -p /var/log/$app/
# Upgrade with CURL
# Set the app as temporarily public for cURL call
if ! ynh_permission_has_user --permission "main" --user="visitors"; then
ynh_permission_update --permission="main" --add="visitors"
fi
charset=$(mysql -ss -N -e "SELECT default_character_set_name FROM information_schema.SCHEMATA WHERE schema_name = '$db_name'")
if [ "$charset" != "utf8" ]
then
ynh_print_info --message="Changing Database charset to utf8"
ynh_mysql_execute_as_root --database=$db_name --sql="ALTER DATABASE $db_name charset=utf8"
ynh_local_curl "/install/repair.php" \
"force_utf8_on_tables=confirmed" > /var/log/$app/repair.html
fi
ynh_exec_fully_quiet sleep 5
pushd $final_path/htdocs/install/
if php$phpversion upgrade.php $current_version $next_version > /var/log/$app/upgrade.html; then
ynh_print_info --message="Step 1 upgrading ended successfully"
else
ynh_die --message="Step 1 upgrading ended with error"
fi
ynh_exec_fully_quiet sleep 5
if php$phpversion upgrade2.php $current_version $next_version > /var/log/$app/upgrade2.html; then
ynh_print_info --message="Step 2 upgrading ended successfully"
else
ynh_die --message="Step 2 upgrading ended with error"
fi
ynh_exec_fully_quiet sleep 5
if php$phpversion step5.php $current_version $next_version > /var/log/$app/upgrade3.html; then
ynh_print_info --message="Step 3 upgrading ended successfully"
else
ynh_die --message="Step 3 upgrading ended with error"
fi
popd
ynh_permission_update --permission="main" --remove="visitors"
# Get the new current version number
current_version=$next_version
current_major_version=${current_version%%.*}
done
if php$phpversion $final_path/scripts/user/sync_users_ldap2dolibarr.php commitiferror --server=localhost -y; then
ynh_print_info --message="LDAP user update ok"
else
ynh_print_info --message="LDAP user update ended with error"
fi
ynh_app_setting_set --app=$app --key=version --value=$update_version
fi fi
#================================================= #=================================================
@ -228,23 +300,20 @@ ynh_script_progression --message="Upgrading logrotate configuration..." --weight
# Use logrotate to manage app-specific logfile(s) # Use logrotate to manage app-specific logfile(s)
ynh_use_logrotate --non-append ynh_use_logrotate --non-append
#=================================================
# UPDATE THE HOOK FILE FOR USER CREATE
#=================================================
# Set system group in hooks
fhook=../hooks/post_user_create
ynh_replace_string --match_string="__APP__" --replace_string="$app" --target_file="$fhook"
ynh_replace_string --match_string="__MEMBER__" --replace_string="$member" --target_file="$fhook"
ynh_replace_string --match_string="__FINALPATH__" --replace_string="$final_path" --target_file="$fhook"
#================================================= #=================================================
# GENERIC FINALIZATION # GENERIC FINALIZATION
#================================================= #=================================================
# SECURE FILES AND DIRECTORIES # SECURE FILES AND DIRECTORIES
#================================================= #=================================================
ynh_script_progression --message="Configuring permissions..." --weight=1
# Set permissions on app files # Set permissions on app files
if [ ! -f "$datadir/install.lock" ]; then
echo 'This is a lock file to prevent use of install pages (set with permission 440)' > "$datadir/install.lock"
chown $app:$app "$datadir/install.lock"
chmod 440 "$datadir/install.lock"
fi
chmod 750 "$final_path" chmod 750 "$final_path"
chmod -R o-rwx "$final_path" chmod -R o-rwx "$final_path"
chown -R $app:www-data "$final_path" chown -R $app:www-data "$final_path"
@ -256,7 +325,7 @@ chmod go-w $datadir
#================================================= #=================================================
# RELOAD NGINX # RELOAD NGINX
#================================================= #=================================================
ynh_script_progression --message="Reloading NGINX web server and PHP-FPM..." --weight=1 ynh_script_progression --message="Reloading NGINX web server..." --weight=1
ynh_systemd_action --service_name=nginx --action=reload ynh_systemd_action --service_name=nginx --action=reload

View file

@ -0,0 +1,7 @@
#!/bin/bash
# Target version of the Dolibarr update
next_version="11.0.5"
# Dolibarr tarball checksum
dolibarr_source_sha256="6f51435a4ffe576e836bf6449d900de9a56016f09591322cb2ba47a07c97679d"

View file

@ -0,0 +1,7 @@
#!/bin/bash
# Target version of the Dolibarr update
next_version="12.0.5"
# Dolibarr tarball checksum
dolibarr_source_sha256="b60b124ebcd294375f6200cc0683449e475b5dec687f8317b820fc8ec1413d21"

View file

@ -0,0 +1,7 @@
#!/bin/bash
# Target version of the Dolibarr update
next_version="13.0.5"
# Dolibarr tarball checksum
dolibarr_source_sha256="08ec08dc5093d614361f273237f5aaf8d70e63d764c2fa8d7f3f68a1485156d0"

View file

@ -0,0 +1,7 @@
#!/bin/bash
# Target version of the Dolibarr update
next_version="14.0.5"
# Dolibarr tarball checksum
dolibarr_source_sha256="31f4c934e484a9582d8867e4170f1f1acd8c41628b059370a6a449eb6e94ae75"

View file

@ -0,0 +1,7 @@
#!/bin/bash
# Target version of the Dolibarr update
next_version="15.0.3"
# Dolibarr tarball checksum
dolibarr_source_sha256="b145a38f56c44b166721d64909fb12408c6d10d08fcf74d2c00418a60201cc9d"

View file

@ -0,0 +1,7 @@
#!/bin/bash
# Target version of the Dolibarr update
next_version="16.0.3"
# Dolibarr tarball checksum
dolibarr_source_sha256="52010375412c780b378145633a4e18abf6bde4c8e89a4cc1ad56d98fcd6120fd"

View file

@ -0,0 +1,7 @@
#!/bin/bash
# Target version of the Dolibarr update
next_version="10.0.7"
# Dolibarr tarball checksum
dolibarr_source_sha256="6efc230f400a7b7152a0e4b9ba02a780f38b869b4aebd2bc28883268270ef871"

View file

@ -0,0 +1,7 @@
#!/bin/bash
# Target version of the Dolibarr update
next_version="16.0.3"
# Dolibarr tarball checksum
dolibarr_source_sha256="52010375412c780b378145633a4e18abf6bde4c8e89a4cc1ad56d98fcd6120fd"