From 9d28b75fb96220e41e377986529b5992e5ec53f7 Mon Sep 17 00:00:00 2001 From: Kay0u Date: Thu, 7 Nov 2019 22:10:31 +0900 Subject: [PATCH 001/115] New permissions system --- conf/config.json | 2 +- manifest.json | 2 +- scripts/install | 1 - scripts/upgrade | 1 - 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/conf/config.json b/conf/config.json index 2e7aca8..5554238 100644 --- a/conf/config.json +++ b/conf/config.json @@ -27,7 +27,7 @@ "ldap_group_filter_mode": "0", "ldap_groupfilter_objectclass": "posixGroup", "ldap_host": "localhost", - "ldap_login_filter": "(&(|(objectclass=posixAccount))(uid=%uid))", + "ldap_login_filter": "(&(|(objectclass=posixAccount))(uid=%uid)(permission=cn=nextcloud.main,ou=permission,dc=yunohost,dc=org))", "ldap_login_filter_mode": "0", "ldap_port": "389", "ldap_quota_attr": "userquota", diff --git a/manifest.json b/manifest.json index fc300a4..563693c 100644 --- a/manifest.json +++ b/manifest.json @@ -14,7 +14,7 @@ "email": "apps@yunohost.org" }, "requirements": { - "yunohost": ">= 3.5.0" + "yunohost": ">= 3.7.0" }, "multi_instance": true, "services": [ diff --git a/scripts/install b/scripts/install index a9152cd..7758382 100755 --- a/scripts/install +++ b/scripts/install @@ -331,7 +331,6 @@ ynh_add_fail2ban_config --logpath="/home/yunohost.app/$app/data/nextcloud.log" - #================================================= ynh_script_progression --message="Configuring SSOwat..." -ynh_app_setting_set --app=$app --key=unprotected_uris --value="/" ynh_app_setting_set --app=$app --key=skipped_regex \ --value="$(sed 's/[\.\-]/\%&/g' <<< $domain)/%.well%-known/.*" diff --git a/scripts/upgrade b/scripts/upgrade index 2e3f7ec..54f4258 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -438,7 +438,6 @@ ynh_add_fail2ban_config --logpath="/home/yunohost.app/$app/data/nextcloud.log" - #================================================= ynh_script_progression --message="Upgrading SSOwat configuration..." --weight=2 -ynh_app_setting_set --app=$app --key=unprotected_uris --value="/" ynh_app_setting_set --app=$app --key=skipped_regex \ --value="$(sed 's/[\.\-]/\%&/g' <<< $domain)/%.well%-known/.*" From fc110058a97ba1bc189ece96bc0242db4b397d36 Mon Sep 17 00:00:00 2001 From: Kay0u Date: Wed, 20 Nov 2019 13:30:15 +0900 Subject: [PATCH 002/115] fix multi_instance --- conf/config.json | 2 +- scripts/install | 1 + scripts/upgrade | 3 +-- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/conf/config.json b/conf/config.json index 5554238..2d4daca 100644 --- a/conf/config.json +++ b/conf/config.json @@ -27,7 +27,7 @@ "ldap_group_filter_mode": "0", "ldap_groupfilter_objectclass": "posixGroup", "ldap_host": "localhost", - "ldap_login_filter": "(&(|(objectclass=posixAccount))(uid=%uid)(permission=cn=nextcloud.main,ou=permission,dc=yunohost,dc=org))", + "ldap_login_filter": "(&(|(objectclass=posixAccount))(uid=%uid)(permission=cn=__APP__.main,ou=permission,dc=yunohost,dc=org))", "ldap_login_filter_mode": "0", "ldap_port": "389", "ldap_quota_attr": "userquota", diff --git a/scripts/install b/scripts/install index 7758382..47fe8e7 100755 --- a/scripts/install +++ b/scripts/install @@ -177,6 +177,7 @@ ynh_secure_remove --file="$nc_conf" nc_conf="$final_path/config.json" cp ../conf/config.json "$nc_conf" +ynh_replace_string --match_string="__APP__" --replace_string="$app" --target_file="$nc_conf" exec_occ config:import "$nc_conf" # Then remove the config file diff --git a/scripts/upgrade b/scripts/upgrade index 54f4258..8a63ab3 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -295,8 +295,7 @@ then nc_conf="${final_path}/config.json" cp ../conf/config.json "$nc_conf" - ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file="$nc_conf" - ynh_replace_string --match_string="__DATADIR__" --replace_string="$datadir" --target_file="$nc_conf" + ynh_replace_string --match_string="__APP__" --replace_string="$app" --target_file="$nc_conf" # Ensure that UpdateNotification app is disabled exec_occ app:disable updatenotification From 7badbb544a5083b6ca652d146ec6b94e73dd6e30 Mon Sep 17 00:00:00 2001 From: Kay0u Date: Fri, 27 Mar 2020 15:36:03 +0100 Subject: [PATCH 003/115] Clean legacy permission --- scripts/upgrade | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/scripts/upgrade b/scripts/upgrade index c7de781..33321de 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -27,6 +27,8 @@ user_home=$(ynh_app_setting_get --app=$app --key=user_home) fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint) fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage) +unprotected_uris=$(ynh_app_setting_get $app unprotected_uris) + #================================================= # CHECK VERSION #================================================= @@ -65,6 +67,13 @@ if [ -z "$fpm_usage" ]; then ynh_app_setting_set --app=$app --key=fpm_usage --value=$fpm_usage fi +# Delete unprotected_uris if it exists +if [ ! -z $unprotected_uris ]; then + ynh_app_setting_delete $app unprotected_uris + # Delete unprotected_uris implicitly remove visitors, add it again. + ynh_permission_update --permission "main" --add "visitors" +fi + #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP #================================================= From d8dde6edb870e7a5dd2b6663937bd1d3d2726c62 Mon Sep 17 00:00:00 2001 From: "ljf (zamentur)" Date: Wed, 7 Oct 2020 22:59:00 +0200 Subject: [PATCH 004/115] [fix] Group and user are not associated --- conf/config.json | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/config.json b/conf/config.json index 7d24587..8c30f91 100644 --- a/conf/config.json +++ b/conf/config.json @@ -27,6 +27,7 @@ "ldap_group_filter": "objectClass=posixGroup", "ldap_group_filter_mode": "0", "ldap_groupfilter_objectclass": "posixGroup", + "ldap_group_member_assoc_attribute": "memberUid", "ldap_host": "localhost", "ldap_login_filter": "(&(|(objectclass=posixAccount))(uid=%uid))", "ldap_login_filter_mode": "0", From 4df58a431865719d1cdf02c640ec2058f725345f Mon Sep 17 00:00:00 2001 From: "ljf (zamentur)" Date: Wed, 7 Oct 2020 23:24:50 +0200 Subject: [PATCH 005/115] [fix] Avoid to display eponym group --- conf/config.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/conf/config.json b/conf/config.json index 8c30f91..870c2df 100644 --- a/conf/config.json +++ b/conf/config.json @@ -22,9 +22,10 @@ "ldap_configuration_active": "1", "ldap_display_name": "displayname", "ldap_email_attr": "mail", + "ldapExperiencedAdmin": "1", "ldap_expert_username_attr": "uid", "ldap_group_display_name": "cn", - "ldap_group_filter": "objectClass=posixGroup", + "ldap_group_filter": "(&(objectclass=top)(memberUid=*))", "ldap_group_filter_mode": "0", "ldap_groupfilter_objectclass": "posixGroup", "ldap_group_member_assoc_attribute": "memberUid", From 63b0a9541917ede6c8a32487abb81237055a1d6d Mon Sep 17 00:00:00 2001 From: Kay0u Date: Thu, 31 Dec 2020 17:59:51 +0100 Subject: [PATCH 006/115] Migrate legacy permissions --- manifest.json | 2 +- scripts/_common.sh | 19 +++++++++++++++++++ scripts/install | 3 +-- scripts/upgrade | 14 ++++++-------- 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/manifest.json b/manifest.json index 5e3ec17..113cc2e 100644 --- a/manifest.json +++ b/manifest.json @@ -14,7 +14,7 @@ "email": "apps@yunohost.org" }, "requirements": { - "yunohost": ">= 3.8.1" + "yunohost": ">= 4.1.0" }, "multi_instance": true, "services": [ diff --git a/scripts/_common.sh b/scripts/_common.sh index ebffb0e..915612d 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -386,3 +386,22 @@ ynh_multimedia_addaccess () { groupadd -f multimedia usermod -a -G multimedia $user_name } + +ynh_legacy_permissions_exists () { + for permission in "skipped" "unprotected" "protected" + do + if ynh_permission_exists --permission="legacy_${permission}_uris"; then + return 0 + fi + done + return 1 +} + +ynh_legacy_permissions_delete_all () { + for permission in "skipped" "unprotected" "protected" + do + if ynh_permission_exists --permission="legacy_${permission}_uris"; then + ynh_permission_delete --permission="legacy_${permission}_uris" + fi + done +} diff --git a/scripts/install b/scripts/install index cd9e1c7..f031147 100755 --- a/scripts/install +++ b/scripts/install @@ -340,8 +340,7 @@ ynh_add_fail2ban_config --logpath="/home/yunohost.app/$app/data/nextcloud.log" - #================================================= ynh_script_progression --message="Configuring SSOwat..." -ynh_app_setting_set --app=$app --key=skipped_regex \ - --value="$(sed 's/[\.\-]/\%&/g' <<< $domain)/%.well%-known/.*" +ynh_permission_create --permission="api" --url="re:$(sed 's/[\.\-]/\%&/g' <<< $domain)/%.well%-known/.*" #================================================= # RELOAD NGINX diff --git a/scripts/upgrade b/scripts/upgrade index 0c17cd3..f35d8c7 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -134,6 +134,12 @@ then ynh_replace_string "\('datadirectory' =>.*\)$old_app" "\1$app" "$final_path/config/config.php" fi +if ynh_legacy_permissions_exists; then + ynh_legacy_permissions_delete_all + + ynh_permission_create --permission="api" --label="api" --url="re:$(sed 's/[\.\-]/\%&/g' <<< $domain)/%.well%-known/.*" --allowed="visitors" "all_users" --auth_header="false" --show_tile="false" --protected="true" +fi + #================================================= # UPGRADE DEPENDENCIES #================================================= @@ -476,14 +482,6 @@ ynh_add_fail2ban_config --logpath="/home/yunohost.app/$app/data/nextcloud.log" - #================================================= # GENERIC FINALIZATION -#================================================= -# SETUP SSOWAT -#================================================= -ynh_script_progression --message="Upgrading SSOwat configuration..." --weight=2 - -ynh_app_setting_set --app=$app --key=skipped_regex \ - --value="$(sed 's/[\.\-]/\%&/g' <<< $domain)/%.well%-known/.*" - #================================================= # RELOAD NGINX #================================================= From 712b84067bf590b775054f28238a65aaef9ccb77 Mon Sep 17 00:00:00 2001 From: Kay0u Date: Thu, 31 Dec 2020 18:02:40 +0100 Subject: [PATCH 007/115] create the api permission in install script --- scripts/install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/install b/scripts/install index f031147..0eba7ce 100755 --- a/scripts/install +++ b/scripts/install @@ -340,7 +340,7 @@ ynh_add_fail2ban_config --logpath="/home/yunohost.app/$app/data/nextcloud.log" - #================================================= ynh_script_progression --message="Configuring SSOwat..." -ynh_permission_create --permission="api" --url="re:$(sed 's/[\.\-]/\%&/g' <<< $domain)/%.well%-known/.*" +ynh_permission_create --permission="api" --label="api" --url="re:$(sed 's/[\.\-]/\%&/g' <<< $domain)/%.well%-known/.*" --allowed="visitors" "all_users" --auth_header="false" --show_tile="false" --protected="true" #================================================= # RELOAD NGINX From 8757f832db2ea8ca38ccb2d1d62564e350f19013 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Fri, 19 Feb 2021 10:02:44 +0100 Subject: [PATCH 008/115] Upgrade to version 21.0.0 --- README.md | 2 +- README_fr.md | 2 +- manifest.json | 2 +- scripts/upgrade.d/upgrade.20.sh | 7 +++++++ scripts/upgrade.d/upgrade.last.sh | 4 ++-- 5 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 scripts/upgrade.d/upgrade.20.sh diff --git a/README.md b/README.md index e439bda..2b6719d 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to [Nextcloud](https://nextcloud.com) gives you freedom and control over your own data. A personal cloud which runs on your own server. With Nextcloud you can synchronize your files over your devices. -**Shipped version:** 20.0.7 +**Shipped version:** 21.0.0 ## Screenshots diff --git a/README_fr.md b/README_fr.md index a949264..68cb691 100644 --- a/README_fr.md +++ b/README_fr.md @@ -13,7 +13,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour [Nextcloud](https://nextcloud.com) vous donne la liberté et le contrôle sur vos données. Un nuage personnel qui tourne sur votre serveur. Avec NextCloud vous pouvez synchroniser vos fichiers sur vos appareils. -**Version incluse :** 20.0.7 +**Version incluse :** 21.0.0 ## Captures d'écran diff --git a/manifest.json b/manifest.json index 9bb361f..e6bcc8e 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Online storage, file sharing platform and various other applications", "fr": "Stockage en ligne, plateforme de partage de fichiers et diverses autres applications" }, - "version": "20.0.7~ynh1", + "version": "21.0.0~ynh1", "url": "https://nextcloud.com", "license": "AGPL-3.0", "maintainer": { diff --git a/scripts/upgrade.d/upgrade.20.sh b/scripts/upgrade.d/upgrade.20.sh new file mode 100644 index 0000000..01a1f94 --- /dev/null +++ b/scripts/upgrade.d/upgrade.20.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# Last available nextcloud version +next_version="21.0.0" + +# Nextcloud tarball checksum sha256 +nextcloud_source_sha256="ceadaeef67685a11afc5b23b0a86ba3c7bd0a7b138d5d1ecc05262383655f1f0" diff --git a/scripts/upgrade.d/upgrade.last.sh b/scripts/upgrade.d/upgrade.last.sh index 1e8134f..c7a6270 100755 --- a/scripts/upgrade.d/upgrade.last.sh +++ b/scripts/upgrade.d/upgrade.last.sh @@ -1,7 +1,7 @@ #!/bin/bash # Last available Nextcloud version -next_version="20.0.7" +next_version="21.0.0" # Nextcloud tarball checksum sha256 -nextcloud_source_sha256="8ced82b772bf0af67d5be1323e40f977429bc0a2bcc864095efc78767500b72b" +nextcloud_source_sha256="ceadaeef67685a11afc5b23b0a86ba3c7bd0a7b138d5d1ecc05262383655f1f0" From 721be928f0e1e6fbefb99b5c189ab5d3a20380c7 Mon Sep 17 00:00:00 2001 From: Thomas <51749973+Thovi98@users.noreply.github.com> Date: Tue, 23 Feb 2021 11:20:12 +0100 Subject: [PATCH 009/115] Update nginx.conf --- conf/nginx.conf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/conf/nginx.conf b/conf/nginx.conf index e9f864a..7b0447d 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -12,6 +12,9 @@ location ^~ /.well-known { location = /.well-known/carddav { return 301 __PATH__/remote.php/dav/; } location = /.well-known/caldav { return 301 __PATH__/remote.php/dav/; } + + # Anything else is dynamically handled by Nextcloud + location ^~ /.well-known { return 301 /nextcloud/index.php$uri; } try_files $uri $uri/ =404; } From ace84e6b4d2f4378c8134ef36987beda82155ab6 Mon Sep 17 00:00:00 2001 From: Thomas <51749973+Thovi98@users.noreply.github.com> Date: Tue, 23 Feb 2021 12:11:42 +0100 Subject: [PATCH 010/115] Update conf/nginx.conf Co-authored-by: Kayou --- conf/nginx.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/nginx.conf b/conf/nginx.conf index 7b0447d..8a4ba50 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -14,7 +14,7 @@ location ^~ /.well-known { location = /.well-known/caldav { return 301 __PATH__/remote.php/dav/; } # Anything else is dynamically handled by Nextcloud - location ^~ /.well-known { return 301 /nextcloud/index.php$uri; } + location ^~ /.well-known { return 301 __PATH__/index.php$uri; } try_files $uri $uri/ =404; } From 0f446f15df2801c47a2e923ae6044165fe162bdb Mon Sep 17 00:00:00 2001 From: Kay0u Date: Mon, 1 Mar 2021 12:57:27 +0100 Subject: [PATCH 011/115] remove ldapExperiencedAdmin --- conf/config.json | 1 - 1 file changed, 1 deletion(-) diff --git a/conf/config.json b/conf/config.json index 870c2df..f7c5fa5 100644 --- a/conf/config.json +++ b/conf/config.json @@ -22,7 +22,6 @@ "ldap_configuration_active": "1", "ldap_display_name": "displayname", "ldap_email_attr": "mail", - "ldapExperiencedAdmin": "1", "ldap_expert_username_attr": "uid", "ldap_group_display_name": "cn", "ldap_group_filter": "(&(objectclass=top)(memberUid=*))", From ce982e3d7a000695105a94dc73e0c635835b83f3 Mon Sep 17 00:00:00 2001 From: Kay0u Date: Mon, 1 Mar 2021 12:57:39 +0100 Subject: [PATCH 012/115] fix ldap admin page --- conf/nginx.conf | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/conf/nginx.conf b/conf/nginx.conf index e9f864a..781fb77 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -93,6 +93,10 @@ location ^~ __PATH__/ { # then Nginx will encounter an infinite rewriting loop when it prepends # `/nextcloud/index.php` to the URI, resulting in a HTTP 500 error response. location ~ \.php(?:$|/) { + # Required for legacy support + # https://github.com/nextcloud/documentation/pull/2197#issuecomment-721432337 + # This line fix the ldap admin page + rewrite ^__PATH__/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode\/proxy) __PATH__/index.php$request_uri; fastcgi_split_path_info ^(.+?\.php)(/.*)$; set $path_info $fastcgi_path_info; try_files $fastcgi_script_name =404; From 71c9cbf6072da2e0c8a8e75fab08afe0fa054fdb Mon Sep 17 00:00:00 2001 From: Kay0u Date: Mon, 1 Mar 2021 13:09:38 +0100 Subject: [PATCH 013/115] unprotected_uris is deleted by the core --- scripts/upgrade | 9 --------- 1 file changed, 9 deletions(-) diff --git a/scripts/upgrade b/scripts/upgrade index 109c7e9..6ba6a84 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -27,8 +27,6 @@ phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) fpm_footprint=$(ynh_app_setting_get --app=$app --key=fpm_footprint) fpm_usage=$(ynh_app_setting_get --app=$app --key=fpm_usage) -unprotected_uris=$(ynh_app_setting_get $app unprotected_uris) - #================================================= # CHECK VERSION #================================================= @@ -67,13 +65,6 @@ if [ -z "$fpm_usage" ]; then ynh_app_setting_set --app=$app --key=fpm_usage --value=$fpm_usage fi -# Delete unprotected_uris if it exists -if [ -n "$unprotected_uris" ]; then - ynh_app_setting_delete $app unprotected_uris - # Delete unprotected_uris implicitly remove visitors, add it again. - ynh_permission_update --permission "main" --add "visitors" -fi - # If phpversion doesn't exist, create it if [ -z "$phpversion" ]; then phpversion="$YNH_PHP_VERSION" From 2fe11292fe6413f1c4116ac3096738112adaa1e9 Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Mon, 1 Mar 2021 18:30:45 +0100 Subject: [PATCH 014/115] Update _common.sh --- scripts/_common.sh | 245 --------------------------------------------- 1 file changed, 245 deletions(-) diff --git a/scripts/_common.sh b/scripts/_common.sh index ebffb0e..adf5f21 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -59,251 +59,6 @@ is_url_handled() { fi } -#================================================= - -# Make the main steps to migrate an app to its fork. -# -# This helper has to be used for an app which needs to migrate to a new name or a new fork -# (like owncloud to nextcloud or zerobin to privatebin). -# -# This helper will move the files of an app to its new name -# or recreate the things it can't move. -# -# To specify which files it has to move, you have to create a "migration file", stored in ../conf -# This file is a simple list of each file it has to move, -# except that file names must reference the $app variable instead of the real name of the app, -# and every instance-specific variables (like $domain). -# $app is especially important because it's this variable which will be used to identify the old place and the new one for each file. -# -# If a database exists for this app, it will be dumped and then imported in a newly created database, with a new name and new user. -# Don't forget you have to then apply these changes to application-specific settings (depends on the packaged application) -# -# Same things for an existing user, a new one will be created. -# But the old one can't be removed unless it's not used. See below. -# -# If you have some dependencies for your app, it's possible to change the fake debian package which manages them. -# You have to fill the $pkg_dependencies variable, and then a new fake package will be created and installed, -# and the old one will be removed. -# If you don't have a $pkg_dependencies variable, the helper can't know what the app dependencies are. -# -# The app settings.yml will be modified as follows: -# - finalpath will be changed according to the new name (but only if the existing $final_path contains the old app name) -# - The checksums of php-fpm and nginx config files will be updated too. -# - If there is a $db_name value, it will be changed. -# - And, of course, the ID will be changed to the new name too. -# -# Finally, the $app variable will take the value of the new name. -# The helper will set the $migration_process variable to 1 if a migration has been successfully handled. -# -# You have to handle by yourself all the migrations not done by this helper, like configuration or special values in settings.yml -# Also, at the end of the upgrade script, you have to add a post_migration script to handle all the things the helper can't do during YunoHost upgrade (mostly for permission reasons), -# especially remove the old user, move some hooks and remove the old configuration directory -# To launch this script, you have to move it elsewhere and start it after the upgrade script. -# `cp ../conf/$script_post_migration /tmp` -# `(cd /tmp; echo "/tmp/$script_post_migration" | at now + 2 minutes)` -# -# usage: ynh_handle_app_migration migration_id migration_list -# | arg: migration_id - ID from which to migrate -# | arg: migration_list - File specifying every file to move (one file per line) -ynh_handle_app_migration () { - #================================================= - # LOAD SETTINGS - #================================================= - - old_app=$YNH_APP_INSTANCE_NAME - local old_app_id=$YNH_APP_ID - local old_app_number=$YNH_APP_INSTANCE_NUMBER - - # Get the id from which to migrate - local migration_id="$1" - # And the file with the paths to move - local migration_list="$2" - - # Get the new app id in the manifest - local new_app_id=$(grep \"id\": ../manifest.json | cut -d\" -f4) - if [ $old_app_number -eq 1 ]; then - local new_app=$new_app_id - else - local new_app=${new_app_id}__${old_app_number} - fi - - #================================================= - # CHECK IF IT HAS TO MIGRATE - #================================================= - - migration_process=0 - - if [ "$old_app_id" == "$new_app_id" ] - then - # If the 2 id are the same - # No migration to do. - echo 0 - return 0 - else - if [ "$old_app_id" != "$migration_id" ] - then - # If the new app is not the authorized id, fail. - ynh_die "Incompatible application for migration from $old_app_id to $new_app_id" - fi - - echo "Migrate from $old_app_id to $new_app_id" >&2 - - #================================================= - # CHECK IF THE MIGRATION CAN BE DONE - #================================================= - - # TODO Handle multi instance apps... - # Check that there is not already an app installed for this id. - yunohost app list | grep -q 'id: $appname' \ - && ynh_die "$new_app is already installed" - - #================================================= - # CHECK THE LIST OF FILES TO MOVE - #================================================= - - local temp_migration_list="$(tempfile)" - - # Build the list by removing blank lines and comment lines - sed '/^#.*\|^$/d' "../conf/$migration_list" > "$temp_migration_list" - - # Check if there is no file in the destination - local file_to_move="" - while read file_to_move - do - # Replace all occurences of $app by $new_app in each file to move. - local move_to_destination="${file_to_move//\$app/$new_app}" - test -e "$move_to_destination" && ynh_die "A file named $move_to_destination already exists." - done < "$temp_migration_list" - - #================================================= - # COPY YUNOHOST SETTINGS FOR THIS APP - #================================================= - - local settings_dir="/etc/yunohost/apps" - cp -a "$settings_dir/$old_app" "$settings_dir/$new_app" - - # Replace the old id by the new one - ynh_replace_string "\(^id: .*\)$old_app" "\1$new_app" "$settings_dir/$new_app/settings.yml" - # INFO: There a special behavior with yunohost app setting: - # if the id given in argument does not match with the id - # stored in the config file, the config file will be purged. - # That's why we use sed instead of app setting here. - # https://github.com/YunoHost/yunohost/blob/c6b5284be8da39cf2da4e1036a730eb5e0515096/src/yunohost/app.py#L1316-L1321 - - # Change the label if it's simply the name of the app - old_label=$(ynh_app_setting_get $new_app label) - if [ "${old_label,,}" == "$old_app_id" ] - then - # Build the new label from the id of the app. With the first character as upper case - new_label=$(echo $new_app_id | cut -c1 | tr [:lower:] [:upper:])$(echo $new_app_id | cut -c2-) - ynh_app_setting_set $new_app label $new_label - fi - - #================================================= - # MOVE FILES TO THE NEW DESTINATION - #================================================= - - while read file_to_move - do - # Replace all occurence of $app by $new_app in each file to move. - move_to_destination="$(eval echo "${file_to_move//\$app/$new_app}")" - local real_file_to_move="$(eval echo "${file_to_move//\$app/$old_app}")" - echo "Move file $real_file_to_move to $move_to_destination" >&2 - mv "$real_file_to_move" "$move_to_destination" - done < "$temp_migration_list" - - #================================================= - # UPDATE SETTINGS KNOWN ENTRIES - #================================================= - - # Replace nginx checksum - ynh_replace_string "\(^checksum__etc_nginx.*\)_$old_app" "\1_$new_app/" "$settings_dir/$new_app/settings.yml" - - # Replace php5-fpm checksums - ynh_replace_string "\(^checksum__etc_php5.*[-_]\)$old_app" "\1$new_app/" "$settings_dir/$new_app/settings.yml" - - # Replace final_path - ynh_replace_string "\(^final_path: .*\)$old_app" "\1$new_app" "$settings_dir/$new_app/settings.yml" - - #================================================= - # MOVE THE DATABASE - #================================================= - - db_pwd=$(ynh_app_setting_get $old_app mysqlpwd) - db_name=$(ynh_app_setting_get $old_app db_name) - - # Check if a database exists before trying to move it - local mysql_root_password=$(cat $MYSQL_ROOT_PWD_FILE) - if [ -n "$db_name" ] && mysqlshow -u root -p$mysql_root_password | grep -q "^| $db_name" - then - new_db_name=$(ynh_sanitize_dbid $new_app) - echo "Rename the database $db_name to $new_db_name" >&2 - - local sql_dump="/tmp/${db_name}-$(date '+%s').sql" - - # Dump the old database - ynh_mysql_dump_db "$db_name" > "$sql_dump" - - # Create a new database - ynh_mysql_setup_db $new_db_name $new_db_name $db_pwd - # Then restore the old one into the new one - ynh_mysql_connect_as $new_db_name $db_pwd $new_db_name < "$sql_dump" - - # Remove the old database - ynh_mysql_remove_db $db_name $db_name - # And the dump - ynh_secure_remove "$sql_dump" - - # Update the value of $db_name - db_name=$new_db_name - ynh_app_setting_set $new_app db_name $db_name - fi - - #================================================= - # CREATE A NEW USER - #================================================= - - # Check if the user exists on the system - if ynh_system_user_exists "$old_app" - then - echo "Create a new user $new_app to replace $old_app" >&2 - ynh_system_user_create $new_app - fi - - #================================================= - # CHANGE THE FAKE DEPENDENCIES PACKAGE - #================================================= - - # Check if a variable $pkg_dependencies exists - # If this variable doesn't exist, this part shall be managed in the upgrade script. - if [ -n "${pkg_dependencies:-}" ] - then - # Define the name of the package - local old_package_name="${old_app//_/-}-ynh-deps" - local new_package_name="${new_app//_/-}-ynh-deps" - - if ynh_package_is_installed "$old_package_name" - then - # Install a new fake package - app=$new_app - ynh_install_app_dependencies $pkg_dependencies - # Then remove the old one - app=$old_app - ynh_remove_app_dependencies - fi - fi - - #================================================= - # UPDATE THE ID OF THE APP - #================================================= - - app=$new_app - - - # Set migration_process to 1 to inform that an upgrade has been made - migration_process=1 - fi -} #================================================= From 348776b795d22067052b528789c823674c90281c Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 1 Mar 2021 18:43:29 +0100 Subject: [PATCH 015/115] Update links --- README.md | 6 +++--- README_fr.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2b6719d..409ca59 100644 --- a/README.md +++ b/README.md @@ -25,9 +25,9 @@ If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to ## Documentation - * Official documentation: https://docs.nextcloud.com/server/20/user_manual/en/ - * YunoHost documentation: https://github.com/YunoHost/doc/blob/master/app_nextcloud.md - + * Official documentation: https://docs.nextcloud.com/server/21/user_manual/en/ + * YunoHost documentation: https://yunohost.org/en/app_nextcloud + ## Configuration #### Configure OnlyOffice integration diff --git a/README_fr.md b/README_fr.md index 68cb691..e91d9c1 100644 --- a/README_fr.md +++ b/README_fr.md @@ -26,8 +26,8 @@ Avec NextCloud vous pouvez synchroniser vos fichiers sur vos appareils. ## Documentation - * Documentation officielle : https://docs.nextcloud.com/server/20/user_manual/fr/ - * Documentation YunoHost : https://github.com/YunoHost/doc/blob/master/app_nextcloud_fr.md + * Documentation officielle : https://docs.nextcloud.com/server/21/user_manual/fr/ + * Documentation YunoHost : https://yunohost.org/fr/app_nextcloud ## Configuration From e63347b49a12ee3787a4d2c86c6d24f91cd93e30 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 1 Mar 2021 18:45:28 +0100 Subject: [PATCH 016/115] Fix spacing --- config_panel.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config_panel.toml b/config_panel.toml index b88c83e..9c73626 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -8,19 +8,19 @@ name = "Nextcloud configuration" name = "PHP-FPM configuration" [main.php_fpm_config.footprint] - ask = "Memory footprint of the service ?" + ask = "Memory footprint of the service?" choices = ["low", "medium", "high", "specific"] default = "low" help = "low <= 20Mb per pool. medium between 20Mb and 40Mb per pool. high > 40Mb per pool.
Use specific to set a value with the following option." [main.php_fpm_config.free_footprint] - ask = "Memory footprint of the service ?" + ask = "Memory footprint of the service?" type = "number" default = "0" help = "Free field to specify exactly the footprint in Mb if you don't want to use one of the three previous values." [main.php_fpm_config.usage] - ask = "Expected usage of the service ?" + ask = "Expected usage of the service?" choices = ["low", "medium", "high"] default = "low" help = "low: Personal usage, behind the sso. No RAM footprint when not used, but the impact on the processor can be high if many users are using the service.
medium: Low usage, few people or/and publicly accessible. Low RAM footprint, medium processor footprint when used.
high: High usage, frequently visited website. High RAM footprint, but lower on processor usage and quickly responding." From 466b0a6c418bac82eb9c36d89c6f435aeec4a3e5 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 1 Mar 2021 18:57:27 +0100 Subject: [PATCH 017/115] Use global variables --- conf/nextcloud.cron | 2 +- scripts/install | 4 ++-- scripts/upgrade | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/conf/nextcloud.cron b/conf/nextcloud.cron index 3a63ff5..e04f227 100644 --- a/conf/nextcloud.cron +++ b/conf/nextcloud.cron @@ -1 +1 @@ -*/15 * * * * __USER__ /usr/bin/php__YNH_PHP_VERSION__ -f __DESTDIR__/cron.php +*/15 * * * * __USER__ /usr/bin/php__PHPVERSION__ -f __FINALPATH__/cron.php diff --git a/scripts/install b/scripts/install index 1e1621d..601f42d 100755 --- a/scripts/install +++ b/scripts/install @@ -269,8 +269,8 @@ chown root: "$cron_path" chmod 644 "$cron_path" ynh_replace_string --match_string="__USER__" --replace_string="$app" --target_file="$cron_path" -ynh_replace_string --match_string="__DESTDIR__" --replace_string="$final_path" --target_file="$cron_path" -ynh_replace_string --match_string="__YNH_PHP_VERSION__" --replace_string="$phpversion" --target_file="$cron_path" +ynh_replace_string --match_string="__FINALPATH__" --replace_string="$final_path" --target_file="$cron_path" +ynh_replace_string --match_string="__PHPVERSION__" --replace_string="$phpversion" --target_file="$cron_path" exec_occ background:cron diff --git a/scripts/upgrade b/scripts/upgrade index 5805432..bb30679 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -405,8 +405,8 @@ chown root: "$cron_path" chmod 644 "$cron_path" ynh_replace_string --match_string="__USER__" --replace_string="$app" --target_file="$cron_path" -ynh_replace_string --match_string="__DESTDIR__" --replace_string="$final_path" --target_file="$cron_path" -ynh_replace_string --match_string="__YNH_PHP_VERSION__" --replace_string="$phpversion" --target_file="$cron_path" +ynh_replace_string --match_string="__FINALPATH__" --replace_string="$final_path" --target_file="$cron_path" +ynh_replace_string --match_string="__PHPVERSION__" --replace_string="$phpversion" --target_file="$cron_path" exec_occ background:cron From 5d48fb76f648b91d79f7a7b48b76ca8518a771ad Mon Sep 17 00:00:00 2001 From: Kay0u Date: Mon, 8 Mar 2021 18:46:13 +0100 Subject: [PATCH 018/115] fix nginx conf --- conf/nginx.conf | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/conf/nginx.conf b/conf/nginx.conf index 8a4ba50..9c565e8 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -5,16 +5,12 @@ location ^~ /.well-known { # Uncomment it if you're planning to use this app. #rewrite ^/\.well-known/host-meta\.json __PATH__/public.php?service=host-meta-json last; #rewrite ^/\.well-known/host-meta __PATH__/public.php?service=host-meta last; - # The following 2 rules are only needed for the Social app. - # Uncomment it if you're planning to use this app. - #rewrite ^/\.well-known/webfinger __PATH__/public.php?service=webfinger last; - #rewrite ^/\.well-known/nodeinfo __PATH__/public.php?service=nodeinfo last; location = /.well-known/carddav { return 301 __PATH__/remote.php/dav/; } location = /.well-known/caldav { return 301 __PATH__/remote.php/dav/; } - # Anything else is dynamically handled by Nextcloud - location ^~ /.well-known { return 301 __PATH__/index.php$uri; } + location = /.well-known/webfinger { return 301 __PATH__/index.php$uri; } + location = /.well-known/nodeinfo { return 301 __PATH__/index.php$uri; } try_files $uri $uri/ =404; } From 5918601e28e9ede1e4a76730ba07a882c69f15ab Mon Sep 17 00:00:00 2001 From: Kay0u Date: Mon, 8 Mar 2021 18:47:01 +0100 Subject: [PATCH 019/115] fix allowsymlinks --- README.md | 5 ----- README_fr.md | 5 ----- conf/config.json | 3 ++- scripts/install | 3 --- scripts/upgrade | 3 --- 5 files changed, 2 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 409ca59..7761916 100644 --- a/README.md +++ b/README.md @@ -65,11 +65,6 @@ To integrate the logout button to the SSO, we have to patch Nextcloud sources. I Also, note we made the choice to disable third-parties applications at the upgrade. It allows to prevent an unstable - and sometimes broken - Nextcloud installation. You will just have to manually activate them after the upgrade. -Finally, the following error message in Nextcloud logs can be safely ignored: -``` -Following symlinks is not allowed ('/home/yunohost.multimedia/user/Share' -> '/home/yunohost.multimedia/share/' not inside '/home/yunohost.multimedia/user/') -``` - ## Additionnal informations #### `occ` command usage diff --git a/README_fr.md b/README_fr.md index e91d9c1..1e3f42f 100644 --- a/README_fr.md +++ b/README_fr.md @@ -67,11 +67,6 @@ En attendant un intégration de leur part, la vérification d'intégrité du cod Notez également que nous avons choisi de désactiver les applications tierces-parties lors des mises à jour. Ça permet d'éviter une installation de Nextcloud instable - ou qui pourrait planter. Vous devrez juste les réactiver manuellement après chaque mise à jour. -Et enfin, le message d'erreur suivant dans les logs de Nextcloud peut être ignoré sans problème : -``` -Following symlinks is not allowed ('/home/yunohost.multimedia/user/Share' -> '/home/yunohost.multimedia/share/' not inside '/home/yunohost.multimedia/user/') -``` - ## Liens * Signaler un bug : https://github.com/YunoHost-Apps/nextcloud_ynh/issues diff --git a/conf/config.json b/conf/config.json index 7d24587..dd91882 100644 --- a/conf/config.json +++ b/conf/config.json @@ -11,7 +11,8 @@ "timeout": "0.0", "password": "" }, - "hashing_default_password": true + "hashing_default_password": true, + "localstorage.allowsymlinks": true }, "apps": { "user_ldap": { diff --git a/scripts/install b/scripts/install index 1e1621d..143d1b9 100755 --- a/scripts/install +++ b/scripts/install @@ -84,9 +84,6 @@ cp -a ../sources/patches_last_version/* ../sources/patches # Download, check integrity, uncompress and patch the source from app.src ynh_setup_source --dest_dir="$final_path" -# Allow Symlinks for multimedia folder -ynh_replace_string --match_string="protected \$allowSymlinks = false;" --replace_string="protected \$allowSymlinks = true;" --target_file="$final_path/lib/private/Files/Storage/Local.php" - #================================================= # CREATE DEDICATED USER #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index 5805432..3c2c125 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -271,9 +271,6 @@ then # Install the next nextcloud version in $tmpdir ynh_setup_source --dest_dir="$tmpdir" - # Allow Symlinks for multimedia folder - ynh_replace_string --match_string="protected \$allowSymlinks = false;" --replace_string="protected \$allowSymlinks = true;" --target_file="$tmpdir/lib/private/Files/Storage/Local.php" - # Enable maintenance mode exec_occ maintenance:mode --on From 6b75223ab03e04a4fa2798cbb0672b6e3573c2fa Mon Sep 17 00:00:00 2001 From: Georgelemental Date: Tue, 9 Mar 2021 21:42:30 -0500 Subject: [PATCH 020/115] Update to version 20.0.8 --- README.md | 2 +- README_fr.md | 2 +- manifest.json | 2 +- scripts/upgrade.d/upgrade.last.sh | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index e439bda..dac2f68 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to [Nextcloud](https://nextcloud.com) gives you freedom and control over your own data. A personal cloud which runs on your own server. With Nextcloud you can synchronize your files over your devices. -**Shipped version:** 20.0.7 +**Shipped version:** 20.0.8 ## Screenshots diff --git a/README_fr.md b/README_fr.md index a949264..b478bea 100644 --- a/README_fr.md +++ b/README_fr.md @@ -13,7 +13,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour [Nextcloud](https://nextcloud.com) vous donne la liberté et le contrôle sur vos données. Un nuage personnel qui tourne sur votre serveur. Avec NextCloud vous pouvez synchroniser vos fichiers sur vos appareils. -**Version incluse :** 20.0.7 +**Version incluse :** 20.0.8 ## Captures d'écran diff --git a/manifest.json b/manifest.json index 9bb361f..fa604f1 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Online storage, file sharing platform and various other applications", "fr": "Stockage en ligne, plateforme de partage de fichiers et diverses autres applications" }, - "version": "20.0.7~ynh1", + "version": "20.0.8~ynh1", "url": "https://nextcloud.com", "license": "AGPL-3.0", "maintainer": { diff --git a/scripts/upgrade.d/upgrade.last.sh b/scripts/upgrade.d/upgrade.last.sh index 1e8134f..5d3dd4e 100755 --- a/scripts/upgrade.d/upgrade.last.sh +++ b/scripts/upgrade.d/upgrade.last.sh @@ -1,7 +1,7 @@ #!/bin/bash # Last available Nextcloud version -next_version="20.0.7" +next_version="20.0.8" # Nextcloud tarball checksum sha256 -nextcloud_source_sha256="8ced82b772bf0af67d5be1323e40f977429bc0a2bcc864095efc78767500b72b" +nextcloud_source_sha256="ceadaeef67685a11afc5b23b0a86ba3c7bd0a7b138d5d1ecc05262383655f1f0" From d28b5f78308bcccbd3bd88c735cb04ee0bbf9871 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Wed, 10 Mar 2021 10:40:18 +0100 Subject: [PATCH 021/115] Fix shasum --- scripts/upgrade.d/upgrade.last.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/upgrade.d/upgrade.last.sh b/scripts/upgrade.d/upgrade.last.sh index 5d3dd4e..051172b 100755 --- a/scripts/upgrade.d/upgrade.last.sh +++ b/scripts/upgrade.d/upgrade.last.sh @@ -4,4 +4,4 @@ next_version="20.0.8" # Nextcloud tarball checksum sha256 -nextcloud_source_sha256="ceadaeef67685a11afc5b23b0a86ba3c7bd0a7b138d5d1ecc05262383655f1f0" +nextcloud_source_sha256="85746a4bda87bf754be5834cdb6489c365dc847653bab8ff3afccdaac3b356b5" From c127427dfdeee56c95773d8c8b9840a426c1677d Mon Sep 17 00:00:00 2001 From: yalh76 Date: Sun, 14 Mar 2021 22:08:19 +0100 Subject: [PATCH 022/115] Update manifest.json --- manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index 9bb361f..f44b0e9 100644 --- a/manifest.json +++ b/manifest.json @@ -10,8 +10,8 @@ "url": "https://nextcloud.com", "license": "AGPL-3.0", "maintainer": { - "name": "YunoHost Contributors", - "email": "apps@yunohost.org" + "name": "", + "email": "" }, "requirements": { "yunohost": ">= 4.1.6" From cad0e82c0d1be36dec9c27ea26a7e7ca493bdd55 Mon Sep 17 00:00:00 2001 From: Yunohost-Bot <> Date: Mon, 15 Mar 2021 00:22:00 +0100 Subject: [PATCH 023/115] [autopatch] Missing ynh_abort_if_errors in change_url scripts --- scripts/change_url | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/change_url b/scripts/change_url index 5cb1cb9..682277d 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -8,6 +8,7 @@ source _common.sh source /usr/share/yunohost/helpers +ynh_abort_if_errors #================================================= # RETRIEVE ARGUMENTS From c881e9390e45a3957d0d268073bb2673a1510b8d Mon Sep 17 00:00:00 2001 From: yalh76 Date: Mon, 15 Mar 2021 11:17:58 +0100 Subject: [PATCH 024/115] Update manifest.json Co-authored-by: Kayou --- manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/manifest.json b/manifest.json index f44b0e9..29f8327 100644 --- a/manifest.json +++ b/manifest.json @@ -10,8 +10,8 @@ "url": "https://nextcloud.com", "license": "AGPL-3.0", "maintainer": { - "name": "", - "email": "" + "name": "Kay0u", + "email": "pierre@kayou.io" }, "requirements": { "yunohost": ">= 4.1.6" From 41d2c377623d58862c8ee3dc2dc70f1f8351fe4f Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Wed, 17 Mar 2021 15:26:07 +0100 Subject: [PATCH 025/115] Make sure to redact admin password --- scripts/install | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/install b/scripts/install index 1e1621d..a627b88 100755 --- a/scripts/install +++ b/scripts/install @@ -147,11 +147,16 @@ exec_occ() { # Set write access for the following commands chown -R $app: "$final_path" "$datadir" +# Define password in an intermediate var +# The fact that it's called _password allows it to be +# picked up by Yunohost's auto-redact mecanism +admin_password="$(ynh_string_random --length=6)" + # Install Nextcloud using a temporary admin user exec_occ maintenance:install \ --database "mysql" --database-name $db_name \ --database-user $db_name --database-pass "$db_pwd" \ - --admin-user "admin" --admin-pass "$(ynh_string_random --length=6)" \ + --admin-user "admin" --admin-pass "$admin_password" \ --data-dir "$datadir" \ || ynh_die --message="Unable to install Nextcloud" From e2a87e800ba8a11218818b846e6b64b58855910f Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Tue, 6 Apr 2021 12:13:20 +0200 Subject: [PATCH 026/115] Fix badges --- README.md | 4 ++-- README_fr.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 7761916..d53b483 100644 --- a/README.md +++ b/README.md @@ -56,8 +56,8 @@ this package: #### Supported architectures -* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/nextcloud%20%28Apps%29.svg)](https://ci-apps.yunohost.org/ci/apps/nextcloud/) -* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/nextcloud%20%28Apps%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/nextcloud/) +* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/nextcloud.svg)](https://ci-apps.yunohost.org/ci/apps/nextcloud/) +* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/nextcloud.svg)](https://ci-apps-arm.yunohost.org/ci/apps/nextcloud/) ## Limitations diff --git a/README_fr.md b/README_fr.md index 1e3f42f..960ea9c 100644 --- a/README_fr.md +++ b/README_fr.md @@ -56,8 +56,8 @@ En plus des fonctionnalités principales de Nextcloud, les fonctionnalités suiv #### Architectures supportées -* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/nextcloud%20%28Apps%29.svg)](https://ci-apps.yunohost.org/ci/apps/nextcloud/) -* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/nextcloud%20%28Apps%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/nextcloud/) +* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/nextcloud.svg)](https://ci-apps.yunohost.org/ci/apps/nextcloud/) +* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/nextcloud.svg)](https://ci-apps-arm.yunohost.org/ci/apps/nextcloud/) ## Limitations From 50f549f2435a4c608bbc7ced64c8355ea849e0b7 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Tue, 6 Apr 2021 12:14:01 +0200 Subject: [PATCH 027/115] Remove ask --- manifest.json | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/manifest.json b/manifest.json index e6bcc8e..9c8acf9 100644 --- a/manifest.json +++ b/manifest.json @@ -27,29 +27,17 @@ { "name": "domain", "type": "domain", - "ask": { - "en": "Choose a domain for Nextcloud", - "fr": "Choisissez un domaine pour Nextcloud" - }, "example": "domain.org" }, { "name": "path", "type": "path", - "ask": { - "en": "Choose a path for Nextcloud", - "fr": "Choisissez un chemin pour Nextcloud" - }, "example": "/nextcloud", "default": "/nextcloud" }, { "name": "admin", "type": "user", - "ask": { - "en": "Choose the Nextcloud administrator (must be an existing YunoHost user)", - "fr": "Choisissez l'administrateur de Nextcloud (doit être un utilisateur YunoHost existant)" - }, "example": "homer" }, { From 81b80732e4ee02054af618e7320ebedfe52d5000 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Tue, 6 Apr 2021 12:19:41 +0200 Subject: [PATCH 028/115] Add backup/restore system --- scripts/change_url | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/scripts/change_url b/scripts/change_url index 682277d..e9f4ba7 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -8,7 +8,6 @@ source _common.sh source /usr/share/yunohost/helpers -ynh_abort_if_errors #================================================= # RETRIEVE ARGUMENTS @@ -31,6 +30,23 @@ ynh_script_progression --message="Loading installation settings..." final_path=$(ynh_app_setting_get --app=$app --key=final_path) phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) +#================================================= +# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP +#================================================= +ynh_script_progression --message="Backing up the app before changing its URL (may take a while)..." --weight=1 + +# Backup the current version of the app +ynh_backup_before_upgrade +ynh_clean_setup () { + # Remove the new domain config file, the remove script won't do it as it doesn't know yet its location. + ynh_secure_remove --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" + + # Restore it if the upgrade fails + ynh_restore_upgradebackup +} +# Exit if an error occurs during the execution of the script +ynh_abort_if_errors + #================================================= # CHECK WHICH PARTS SHOULD BE CHANGED #================================================= From 661dba1f713ae7709592ec8d5a7298599e9edc3f Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Thu, 8 Apr 2021 16:08:01 +0200 Subject: [PATCH 029/115] Upgrade to version 21.0.1 --- README.md | 2 +- README_fr.md | 2 +- manifest.json | 2 +- scripts/upgrade.d/upgrade.last.sh | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index d53b483..75c4518 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to [Nextcloud](https://nextcloud.com) gives you freedom and control over your own data. A personal cloud which runs on your own server. With Nextcloud you can synchronize your files over your devices. -**Shipped version:** 21.0.0 +**Shipped version:** 21.0.1 ## Screenshots diff --git a/README_fr.md b/README_fr.md index 960ea9c..ee696b6 100644 --- a/README_fr.md +++ b/README_fr.md @@ -13,7 +13,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour [Nextcloud](https://nextcloud.com) vous donne la liberté et le contrôle sur vos données. Un nuage personnel qui tourne sur votre serveur. Avec NextCloud vous pouvez synchroniser vos fichiers sur vos appareils. -**Version incluse :** 21.0.0 +**Version incluse :** 21.0.1 ## Captures d'écran diff --git a/manifest.json b/manifest.json index ec6fae9..9e0c1c4 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Online storage, file sharing platform and various other applications", "fr": "Stockage en ligne, plateforme de partage de fichiers et diverses autres applications" }, - "version": "21.0.0~ynh1", + "version": "21.0.1~ynh1", "url": "https://nextcloud.com", "license": "AGPL-3.0", "maintainer": { diff --git a/scripts/upgrade.d/upgrade.last.sh b/scripts/upgrade.d/upgrade.last.sh index c7a6270..fe64754 100755 --- a/scripts/upgrade.d/upgrade.last.sh +++ b/scripts/upgrade.d/upgrade.last.sh @@ -1,7 +1,7 @@ #!/bin/bash # Last available Nextcloud version -next_version="21.0.0" +next_version="21.0.1" # Nextcloud tarball checksum sha256 -nextcloud_source_sha256="ceadaeef67685a11afc5b23b0a86ba3c7bd0a7b138d5d1ecc05262383655f1f0" +nextcloud_source_sha256="dd7c8ccc01547914a75b44bbf86028289c8919dc39f4e2e720147b6bd596aebe" From d970198aded1467fa6f251cb312ebb9cfc3f1b99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Mennetrier?= Date: Wed, 28 Apr 2021 16:31:37 +0200 Subject: [PATCH 030/115] Disable HTTP encoding from nextcloud to inject ynh scripts --- conf/nginx.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/conf/nginx.conf b/conf/nginx.conf index 781fb77..e62f9cb 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -107,6 +107,7 @@ location ^~ __PATH__/ { fastcgi_param HTTPS on; fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice fastcgi_param front_controller_active true; # Enable pretty urls + fastcgi_param HTTP_ACCEPT_ENCODING ""; # Disable encoding of nextcloud response to inject ynh scripts fastcgi_pass unix:/var/run/php/php__PHPVERSION__-fpm-__NAME__.sock; fastcgi_intercept_errors on; fastcgi_request_buffering off; From 04778503876c3a5d41568d5f5f20caccc2f9d949 Mon Sep 17 00:00:00 2001 From: Yunohost-Bot <> Date: Thu, 13 May 2021 17:50:19 +0200 Subject: [PATCH 031/115] [autopatch] Update issue and PR templates --- .github/ISSUE_TEMPLATE.md | 55 ++++++++++++++++++++++++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 16 ++++++++++ pull_request_template.md | 24 -------------- 3 files changed, 71 insertions(+), 24 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md delete mode 100644 pull_request_template.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..2729a6b --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,55 @@ +--- +name: Bug report +about: When creating a bug report, please use the following template to provide all the relevant information and help debugging efficiently. + +--- + +**How to post a meaningful bug report** +1. *Read this whole template first.* +2. *Determine if you are on the right place:* + - *If you were performing an action on the app from the webadmin or the CLI (install, update, backup, restore, change_url...), you are on the right place!* + - *Otherwise, the issue may be due to the app itself. Refer to its documentation or repository for help.* + - *When in doubt, post here and we will figure it out together.* +3. *Delete the italic comments as you write over them below, and remove this guide.* +--- + +### Describe the bug + +*A clear and concise description of what the bug is.* + +### Context + +- Hardware: *VPS bought online / Old laptop or computer / Raspberry Pi at home / Internet Cube with VPN / Other ARM board / ...* +- YunoHost version: x.x.x +- I have access to my server: *Through SSH | through the webadmin | direct access via keyboard / screen | ...* +- Are you in a special context or did you perform some particular tweaking on your YunoHost instance?: *no / yes* + - If yes, please explain: +- Using, or trying to install package version/branch: +- If upgrading, current package version: *can be found in the admin, or with `yunohost app info $app_id`* + +### Steps to reproduce + +- *If you performed a command from the CLI, the command itself is enough. For example:* + ```sh + sudo yunohost app install the_app + ``` +- *If you used the webadmin, please perform the equivalent command from the CLI first.* +- *If the error occurs in your browser, explain what you did:* + 1. *Go to '...'* + 2. *Click on '...'* + 3. *Scroll down to '...'* + 4. *See error* + +### Expected behavior + +*A clear and concise description of what you expected to happen. You can remove this section if the command above is enough to understand your intent.* + +### Logs + +*When an operation fails, YunoHost provides a simple way to share the logs.* +- *In the webadmin, the error message contains a link to the relevant log page. On that page, you will be able to 'Share with Yunopaste'. If you missed it, the logs of previous operations are also available under Tools > Logs.* +- *In command line, the command to share the logs is displayed at the end of the operation and looks like `yunohost log display [log name] --share`. If you missed it, you can find the log ID of a previous operation using `yunohost log list`.* + +*After sharing the log, please copypaste directly the link provided by YunoHost (to help readability, no need to copypaste the entire content of the log here, just the link is enough...)* + +*If applicable and useful, add screenshots to help explain your problem.* diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..ef70e18 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,16 @@ +## Problem + +- *Description of why you made this PR* + +## Solution + +- *And how do you fix that problem* + +## PR Status + +- [ ] Code finished and ready to be reviewed/tested +- [ ] The fix/enhancement were manually tested (if applicable) + +## Automatic tests + +Automatic tests can be triggered on https://ci-apps-dev.yunohost.org/ *after creating the PR*, by commenting "!testme", "!gogogadgetoci" or "By the power of systemd, I invoke The Great App CI to test this Pull Request!". (N.B. : for this to work you need to be a member of the Yunohost-Apps organization) diff --git a/pull_request_template.md b/pull_request_template.md deleted file mode 100644 index f501dd4..0000000 --- a/pull_request_template.md +++ /dev/null @@ -1,24 +0,0 @@ -## Problem -- *Description of why you made this PR* - -## Solution -- *And how you fix that* - -## PR Status -- [ ] Code finished. -- [ ] Tested with Package_check. -- [ ] Fix or enhancement tested. -- [ ] Upgrade from last version tested. -- [ ] Can be reviewed and tested. - -## Validation ---- -*Minor decision* -- **Upgrade previous version** : -- [ ] **Code review** : -- [ ] **Approval (LGTM)** : -- [ ] **Approval (LGTM)** : - -## Package_check results ---- -* An automatic package_check will be launch at https://ci-apps-dev.yunohost.org/, when you add a specific comment to your Pull Request: "!testme", "!gogogadgetoci" or "By the power of systemd, I invoke The Great App CI to test this Pull Request!"* From de5a3aab33848270ae90847c01ad471a70f6139e Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 24 May 2021 09:43:29 +0200 Subject: [PATCH 032/115] 21.0.2 --- README.md | 2 +- README_fr.md | 2 +- check_process | 6 +++--- manifest.json | 2 +- scripts/upgrade.d/upgrade.last.sh | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 75c4518..ff3e040 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to [Nextcloud](https://nextcloud.com) gives you freedom and control over your own data. A personal cloud which runs on your own server. With Nextcloud you can synchronize your files over your devices. -**Shipped version:** 21.0.1 +**Shipped version:** 21.0.2 ## Screenshots diff --git a/README_fr.md b/README_fr.md index ee696b6..24ab543 100644 --- a/README_fr.md +++ b/README_fr.md @@ -13,7 +13,7 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour [Nextcloud](https://nextcloud.com) vous donne la liberté et le contrôle sur vos données. Un nuage personnel qui tourne sur votre serveur. Avec NextCloud vous pouvez synchroniser vos fichiers sur vos appareils. -**Version incluse :** 21.0.1 +**Version incluse :** 21.0.2 ## Captures d'écran diff --git a/check_process b/check_process index 440eb43..8d88180 100644 --- a/check_process +++ b/check_process @@ -1,8 +1,8 @@ ;; Test complet ; Manifest - domain="domain.tld" (DOMAIN) - path="/path" (PATH) - admin="homer" (USER) + domain="domain.tld" + path="/path" + admin="homer" user_home="1" ; Checks pkg_linter=1 diff --git a/manifest.json b/manifest.json index 9e0c1c4..edee96b 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Online storage, file sharing platform and various other applications", "fr": "Stockage en ligne, plateforme de partage de fichiers et diverses autres applications" }, - "version": "21.0.1~ynh1", + "version": "21.0.2~ynh1", "url": "https://nextcloud.com", "license": "AGPL-3.0", "maintainer": { diff --git a/scripts/upgrade.d/upgrade.last.sh b/scripts/upgrade.d/upgrade.last.sh index fe64754..da7061c 100755 --- a/scripts/upgrade.d/upgrade.last.sh +++ b/scripts/upgrade.d/upgrade.last.sh @@ -1,7 +1,7 @@ #!/bin/bash # Last available Nextcloud version -next_version="21.0.1" +next_version="21.0.2" # Nextcloud tarball checksum sha256 -nextcloud_source_sha256="dd7c8ccc01547914a75b44bbf86028289c8919dc39f4e2e720147b6bd596aebe" +nextcloud_source_sha256="5e5b38109a3485db5fd2d248f24478eabe6c0790ec10b030acbbee207d5511fe" From e8cb7a2eb66415a15a7e7abd7ae4c0b9c9d659d9 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 24 May 2021 10:12:36 +0200 Subject: [PATCH 033/115] Add templates --- .github/ISSUE_TEMPLATE.md | 55 ++++++++++++++++++++++++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 16 ++++++++++ doc/DISCLAIMER.md | 23 +++++++++++++ doc/DISCLAIMER_fr.md | 22 +++++++++++++ manifest.json | 8 +++++ pull_request_template.md | 24 -------------- 6 files changed, 124 insertions(+), 24 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 doc/DISCLAIMER.md create mode 100644 doc/DISCLAIMER_fr.md delete mode 100644 pull_request_template.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..2729a6b --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,55 @@ +--- +name: Bug report +about: When creating a bug report, please use the following template to provide all the relevant information and help debugging efficiently. + +--- + +**How to post a meaningful bug report** +1. *Read this whole template first.* +2. *Determine if you are on the right place:* + - *If you were performing an action on the app from the webadmin or the CLI (install, update, backup, restore, change_url...), you are on the right place!* + - *Otherwise, the issue may be due to the app itself. Refer to its documentation or repository for help.* + - *When in doubt, post here and we will figure it out together.* +3. *Delete the italic comments as you write over them below, and remove this guide.* +--- + +### Describe the bug + +*A clear and concise description of what the bug is.* + +### Context + +- Hardware: *VPS bought online / Old laptop or computer / Raspberry Pi at home / Internet Cube with VPN / Other ARM board / ...* +- YunoHost version: x.x.x +- I have access to my server: *Through SSH | through the webadmin | direct access via keyboard / screen | ...* +- Are you in a special context or did you perform some particular tweaking on your YunoHost instance?: *no / yes* + - If yes, please explain: +- Using, or trying to install package version/branch: +- If upgrading, current package version: *can be found in the admin, or with `yunohost app info $app_id`* + +### Steps to reproduce + +- *If you performed a command from the CLI, the command itself is enough. For example:* + ```sh + sudo yunohost app install the_app + ``` +- *If you used the webadmin, please perform the equivalent command from the CLI first.* +- *If the error occurs in your browser, explain what you did:* + 1. *Go to '...'* + 2. *Click on '...'* + 3. *Scroll down to '...'* + 4. *See error* + +### Expected behavior + +*A clear and concise description of what you expected to happen. You can remove this section if the command above is enough to understand your intent.* + +### Logs + +*When an operation fails, YunoHost provides a simple way to share the logs.* +- *In the webadmin, the error message contains a link to the relevant log page. On that page, you will be able to 'Share with Yunopaste'. If you missed it, the logs of previous operations are also available under Tools > Logs.* +- *In command line, the command to share the logs is displayed at the end of the operation and looks like `yunohost log display [log name] --share`. If you missed it, you can find the log ID of a previous operation using `yunohost log list`.* + +*After sharing the log, please copypaste directly the link provided by YunoHost (to help readability, no need to copypaste the entire content of the log here, just the link is enough...)* + +*If applicable and useful, add screenshots to help explain your problem.* diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..ef70e18 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,16 @@ +## Problem + +- *Description of why you made this PR* + +## Solution + +- *And how do you fix that problem* + +## PR Status + +- [ ] Code finished and ready to be reviewed/tested +- [ ] The fix/enhancement were manually tested (if applicable) + +## Automatic tests + +Automatic tests can be triggered on https://ci-apps-dev.yunohost.org/ *after creating the PR*, by commenting "!testme", "!gogogadgetoci" or "By the power of systemd, I invoke The Great App CI to test this Pull Request!". (N.B. : for this to work you need to be a member of the Yunohost-Apps organization) diff --git a/doc/DISCLAIMER.md b/doc/DISCLAIMER.md new file mode 100644 index 0000000..ff9f640 --- /dev/null +++ b/doc/DISCLAIMER.md @@ -0,0 +1,23 @@ +## Configuration + +#### Configure OnlyOffice integration + +Starting from Nextcloud 18, it features a direct integration of OnlyOffice (an online rich text document editor) through a Nextcloud app. +To install and configure it: +- Install *Community Document Server* application in your Nextcloud. That's the part that runs OnlyOffice server. +- Install *ONLYOFFICE* application. That's the client part that will connect to an OnlyOffice server. +- Then in Settings -> ONLYOFFICE (`https://yourdomain.tld/nextcloud/settings/admin/onlyoffice`), if you want to configure which file formats should be opened by OnlyOffice. +- Here you go :) You should be able to create new type of documents and open them. + +*NB: OnlyOffice is only available for x86 architecture - **ARM** architecture is **not** supported (Raspberry Pi, OLinuXino...)* + +## YunoHost specific features + +In addition to Nextcloud core features, the following are made available with +this package: + + * Integrate with YunoHost users and SSO - i.e. logout button + * Allow one user to be the administrator (set at the installation) + * Allow multiple instances of this application + * Optionally access the user home folder from Nextcloud files (set at the installation, the sharing is enabled by default) + * Serve `/.well-known` paths for CalDAV and CardDAV on the domain only if it's not already served - i.e. by Baïkal diff --git a/doc/DISCLAIMER_fr.md b/doc/DISCLAIMER_fr.md new file mode 100644 index 0000000..aacdc22 --- /dev/null +++ b/doc/DISCLAIMER_fr.md @@ -0,0 +1,22 @@ +## Configuration + +#### Configurer l'intégration d'OnlyOffice + +À partir de sa version 18, Nextcloud inclut une intégration directe de OnlyOffice (un éditeur de texte enrichi en ligne) via une application Nextcloud. +Pour l'installer et la configurer : +- Installez l'application *Community Document Server* dans votre Nextcloud. C'est la partie qui fait tourner un serveur OnlyOffice. +- Installez l'application *ONLYOFFICE*. C'est la partie cliente qui va se connecter au serveur OnlyOffice. +- Ensuite dans les Paramètres -> ONLYOFFICE (`https://yourdomain.tld/nextcloud/settings/admin/onlyoffice`), si vous voulez configurer quels formats de fichier s'ouvrent avec OnlyOffice. +- Et voilà :) Vous devriez pouvoir créer de nouveaux types de documents, et les ouvrir. + +*NB : OnlyOffice n'est disponible que sous architecture x86 - L'architecture **ARM** n'est **pas** supporté (Raspberry Pi, OLinuXino...)* + +## Caractéristiques spécifiques YunoHost + +En plus des fonctionnalités principales de Nextcloud, les fonctionnalités suivantes sont incluses dans ce package : + + * Intégration avec les utilisateurs YunoHost et le SSO - exemple, le bouton de déconnexion + * Permet à un utilisateur d'être l'administrateur (choisi à l'installation) + * Permet de multiples instances de cette application + * Accès optionnel au répertoire home depuis les fichiers Nextcloud (à activer à l'installation, le partage étant activé par défaut) + * Utilise l'adresse `/.well-known` pour la synchronisation CalDAV et CardDAV du domaine si aucun autre service ne l'utilise déjà - par exemple, baikal diff --git a/manifest.json b/manifest.json index edee96b..063d098 100644 --- a/manifest.json +++ b/manifest.json @@ -8,6 +8,14 @@ }, "version": "21.0.2~ynh1", "url": "https://nextcloud.com", + "upstream": { + "license": "AGPL-3.0", + "website": "https://nextcloud.com", + "demo": "https://demo.nextcloud.com/", + "admindoc": "https://docs.nextcloud.com/server/21/user_manual/en/", + "userdoc": "https://yunohost.org/en/app_nextcloud", + "code": "https://github.com/nextcloud/server" + }, "license": "AGPL-3.0", "maintainer": { "name": "Kay0u", diff --git a/pull_request_template.md b/pull_request_template.md deleted file mode 100644 index f501dd4..0000000 --- a/pull_request_template.md +++ /dev/null @@ -1,24 +0,0 @@ -## Problem -- *Description of why you made this PR* - -## Solution -- *And how you fix that* - -## PR Status -- [ ] Code finished. -- [ ] Tested with Package_check. -- [ ] Fix or enhancement tested. -- [ ] Upgrade from last version tested. -- [ ] Can be reviewed and tested. - -## Validation ---- -*Minor decision* -- **Upgrade previous version** : -- [ ] **Code review** : -- [ ] **Approval (LGTM)** : -- [ ] **Approval (LGTM)** : - -## Package_check results ---- -* An automatic package_check will be launch at https://ci-apps-dev.yunohost.org/, when you add a specific comment to your Pull Request: "!testme", "!gogogadgetoci" or "By the power of systemd, I invoke The Great App CI to test this Pull Request!"* From 71e312e188303863e7141c6469ffbda96d5e3f50 Mon Sep 17 00:00:00 2001 From: Yunohost-Bot <> Date: Mon, 24 May 2021 08:12:48 +0000 Subject: [PATCH 034/115] Auto-update README --- README.md | 74 ++++++++++++++++++++-------------------------------- README_fr.md | 63 ++++++++++++++++---------------------------- 2 files changed, 51 insertions(+), 86 deletions(-) diff --git a/README.md b/README.md index ff3e040..1873714 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,35 @@ + + +--- + + + # Nextcloud for YunoHost -[![Integration level](https://dash.yunohost.org/integration/nextcloud.svg)](https://dash.yunohost.org/appci/app/nextcloud) ![](https://ci-apps.yunohost.org/ci/badges/nextcloud.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/nextcloud.maintain.svg) -[![Install Nextcloud with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=nextcloud) +[![Integration level](https://dash.yunohost.org/integration/nextcloud.svg)](https://dash.yunohost.org/appci/app/nextcloud) ![](https://ci-apps.yunohost.org/ci/badges/nextcloud.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/nextcloud.maintain.svg) +[![Install nextcloud with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=nextcloud) *[Lire ce readme en français.](./README_fr.md)* -> *This package allow you to install Nextcloud quickly and simply on a YunoHost server. -If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to know how to install and enjoy it.* +> *This package allows you to install nextcloud quickly and simply on a YunoHost server. +If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.* ## Overview -[Nextcloud](https://nextcloud.com) gives you freedom and control over your own data. A personal cloud which runs on your own server. With Nextcloud you can synchronize your files over your devices. +Online storage, file sharing platform and various other applications -**Shipped version:** 21.0.2 +**Shipped version:** 21.0.2~ynh1 -## Screenshots +**Demo:** https://demo.nextcloud.com/ -![](https://raw.githubusercontent.com/nextcloud/screenshots/master/files/Files%20Overview.png) -## Demo -* [YunoHost demo](https://demo.yunohost.org/nextcloud/) -* [Official demo](https://demo.nextcloud.com/) -## Documentation +## Disclaimers / important information - * Official documentation: https://docs.nextcloud.com/server/21/user_manual/en/ - * YunoHost documentation: https://yunohost.org/en/app_nextcloud - ## Configuration #### Configure OnlyOffice integration @@ -52,42 +54,20 @@ this package: * Optionally access the user home folder from Nextcloud files (set at the installation, the sharing is enabled by default) * Serve `/.well-known` paths for CalDAV and CardDAV on the domain only if it's not already served - i.e. by Baïkal -#### Multi-users support -#### Supported architectures -* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/nextcloud.svg)](https://ci-apps.yunohost.org/ci/apps/nextcloud/) -* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/nextcloud.svg)](https://ci-apps-arm.yunohost.org/ci/apps/nextcloud/) +## Documentation and resources -## Limitations +* Official app website: https://nextcloud.com +* Official user documentation: https://yunohost.org/en/app_nextcloud +* Official admin documentation: https://docs.nextcloud.com/server/21/user_manual/en/ +* Upstream app code repository: https://github.com/nextcloud/server +* YunoHost documentation for this app: https://yunohost.org/app_nextcloud +* Report a bug: https://github.com/YunoHost-Apps/nextcloud_ynh/issues -To integrate the logout button to the SSO, we have to patch Nextcloud sources. In waiting an upstream integration, the source code integrity checking has been disabled to prevent the warning message. +## Developer info -Also, note we made the choice to disable third-parties applications at the upgrade. It allows to prevent an unstable - and sometimes broken - Nextcloud installation. You will just have to manually activate them after the upgrade. - -## Additionnal informations - -#### `occ` command usage - -If you need/want to use Nextcloud `occ` command¹, you need to be in `/var/www/nextcloud/` folder (or `/var/www/nextcloud__n/` depending on your instance number in case of multiple concurrent installations), then use `sudo -u nextcloud php7.3 occ` instead of `occ` (as an alternative, you can use `/var/www/nextcloud/occ` to run the command from another directory). - -*NB: You may need to adapt `php7.3` to the PHP version that Nextcloud is using. Starting from Nextcloud 18, YunoHost uses php7.3, it used before php7.0.* - -¹ See https://docs.nextcloud.com/server/18/admin_manual/configuration_server/occ_command.html - Use this only if you know what you're doing :) - -## Links - - * Report a bug: https://github.com/YunoHost-Apps/nextcloud_ynh/issues - * Nextcloud website: https://nextcloud.com/ - * Nextcloud repository: https://github.com/nextcloud/server - * YunoHost website: https://yunohost.org/ - ---- - -## Developers infos - -Please do your pull request to the [testing branch](https://github.com/YunoHost-Apps/nextcloud_ynh/tree/testing). +Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/nextcloud_ynh/tree/testing). To try the testing branch, please proceed like that. ``` @@ -95,3 +75,5 @@ sudo yunohost app install https://github.com/YunoHost-Apps/nextcloud_ynh/tree/te or sudo yunohost app upgrade nextcloud -u https://github.com/YunoHost-Apps/nextcloud_ynh/tree/testing --debug ``` + +**More info regarding app packaging:** https://yunohost.org/packaging_apps \ No newline at end of file diff --git a/README_fr.md b/README_fr.md index 24ab543..6771a9a 100644 --- a/README_fr.md +++ b/README_fr.md @@ -1,34 +1,27 @@ # Nextcloud pour YunoHost -[![Niveau d'integration](https://dash.yunohost.org/integration/nextcloud.svg)](https://dash.yunohost.org/appci/app/nextcloud) ![](https://ci-apps.yunohost.org/ci/badges/nextcloud.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/nextcloud.maintain.svg) -[![Installer Nextcloud avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=nextcloud) +[![Niveau d'intégration](https://dash.yunohost.org/integration/nextcloud.svg)](https://dash.yunohost.org/appci/app/nextcloud) ![](https://ci-apps.yunohost.org/ci/badges/nextcloud.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/nextcloud.maintain.svg) +[![Installer nextcloud avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=nextcloud) -*[Read this readme in english.](./README.md)* +*[Read this readme in english.](./README.md)* +*[Lire ce readme en français.](./README_fr.md)* -> *Ce package vous permet d'installer Nextcloud rapidement et simplement sur un serveur YunoHost. -Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l'installer et en profiter.* +> *This package allows you to install nextcloud quickly and simply on a YunoHost server. +If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.* ## Vue d'ensemble -[Nextcloud](https://nextcloud.com) vous donne la liberté et le contrôle sur vos données. Un nuage personnel qui tourne sur votre serveur. -Avec NextCloud vous pouvez synchroniser vos fichiers sur vos appareils. +Stockage en ligne, plateforme de partage de fichiers et diverses autres applications -**Version incluse :** 21.0.2 +**Version incluse:** 21.0.2~ynh1 -## Captures d'écran +**Démo:** https://demo.nextcloud.com/ -![](https://raw.githubusercontent.com/nextcloud/screenshots/master/files/Files%20Overview.png) -## Démo -* [Démo YunoHost](https://demo.yunohost.org/nextcloud/) -* [Démo officielle](https://demo.nextcloud.com/) -## Documentation +## Avertissements / informations importantes - * Documentation officielle : https://docs.nextcloud.com/server/21/user_manual/fr/ - * Documentation YunoHost : https://yunohost.org/fr/app_nextcloud - ## Configuration #### Configurer l'intégration d'OnlyOffice @@ -52,36 +45,26 @@ En plus des fonctionnalités principales de Nextcloud, les fonctionnalités suiv * Accès optionnel au répertoire home depuis les fichiers Nextcloud (à activer à l'installation, le partage étant activé par défaut) * Utilise l'adresse `/.well-known` pour la synchronisation CalDAV et CardDAV du domaine si aucun autre service ne l'utilise déjà - par exemple, baikal -#### Support multi-utilisateurs -#### Architectures supportées -* x86-64 - [![Build Status](https://ci-apps.yunohost.org/ci/logs/nextcloud.svg)](https://ci-apps.yunohost.org/ci/apps/nextcloud/) -* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/nextcloud.svg)](https://ci-apps-arm.yunohost.org/ci/apps/nextcloud/) +## Documentations et ressources -## Limitations - -Pour intégrer le bouton de déconnexion du SSO, nous devons patcher les sources de Nextcloud. -En attendant un intégration de leur part, la vérification d'intégrité du code source est désactivée pour ne pas avoir de message d'avertissement. - -Notez également que nous avons choisi de désactiver les applications tierces-parties lors des mises à jour. Ça permet d'éviter une installation de Nextcloud instable - ou qui pourrait planter. -Vous devrez juste les réactiver manuellement après chaque mise à jour. - -## Liens - - * Signaler un bug : https://github.com/YunoHost-Apps/nextcloud_ynh/issues - * Site web de Nextcloud : https://nextcloud.com/ - * Dépôt de Nextcloud : https://github.com/nextcloud/server - * Site web de YunoHost : https://yunohost.org/ - ---- +* Site official de l'app : https://nextcloud.com +* Documentation officielle utilisateur: https://yunohost.org/en/app_nextcloud +* Documentation officielle de l'admin: https://docs.nextcloud.com/server/21/user_manual/en/ +* Dépôt de code officiel de l'app: https://github.com/nextcloud/server +* Documentation YunoHost pour cette app: https://yunohost.org/app_nextcloud +* Signaler un bug: https://github.com/YunoHost-Apps/nextcloud_ynh/issues ## Informations pour les développeurs -Merci de faire votre « pull request » sur la [branche testing](https://github.com/YunoHost-Apps/nextcloud_ynh/tree/testing). -Pour tester la branche testing, faites comme ceci. +Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/nextcloud_ynh/tree/testing). + +Pour essayer la branche testing, procédez comme suit. ``` sudo yunohost app install https://github.com/YunoHost-Apps/nextcloud_ynh/tree/testing --debug -ou +or sudo yunohost app upgrade nextcloud -u https://github.com/YunoHost-Apps/nextcloud_ynh/tree/testing --debug ``` + +**Plus d'infos sur le packaging d'applications:** https://yunohost.org/packaging_apps \ No newline at end of file From b9656ceecdb0acdf8149d3c665e6080206847308 Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Mon, 24 May 2021 10:18:47 +0200 Subject: [PATCH 035/115] Create screenshot.png --- doc/screenshots/screenshot.png | Bin 0 -> 33846 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/screenshots/screenshot.png diff --git a/doc/screenshots/screenshot.png b/doc/screenshots/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..966bb3e884660ce121a9692a0d4a7ea9d1355240 GIT binary patch literal 33846 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 literal 0 HcmV?d00001 From ed1f3edbf201b28d8e9be74e695f857095ade59f Mon Sep 17 00:00:00 2001 From: Yunohost-Bot <> Date: Mon, 24 May 2021 08:19:09 +0000 Subject: [PATCH 036/115] Auto-update README --- README.md | 6 ++++++ README_fr.md | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/README.md b/README.md index 1873714..32f081a 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,12 @@ Online storage, file sharing platform and various other applications **Demo:** https://demo.nextcloud.com/ +## Screenshots + + + ![](./doc/screenshots/screenshot.png) + + ## Disclaimers / important information diff --git a/README_fr.md b/README_fr.md index 6771a9a..7edd38b 100644 --- a/README_fr.md +++ b/README_fr.md @@ -18,6 +18,12 @@ Stockage en ligne, plateforme de partage de fichiers et diverses autres applicat **Démo:** https://demo.nextcloud.com/ +## Captures d'écran + + + ![](./doc/screenshots/screenshot.png) + + ## Avertissements / informations importantes From 792378c4634580a0600d115777172bc6797403fc Mon Sep 17 00:00:00 2001 From: Alexandre Aubin Date: Tue, 25 May 2021 20:38:05 +0200 Subject: [PATCH 037/115] Get rid of ynh_replace_string and multimedia helper now official --- conf/app.src.default | 6 ------ conf/nextcloud.cron | 2 +- hooks/post_user_create | 5 +++-- manifest.json | 2 +- scripts/_common.sh | 39 --------------------------------------- scripts/change_url | 2 +- scripts/install | 33 ++++++++++++--------------------- scripts/upgrade | 29 ++++++++++------------------- 8 files changed, 28 insertions(+), 90 deletions(-) delete mode 100644 conf/app.src.default diff --git a/conf/app.src.default b/conf/app.src.default deleted file mode 100644 index 1347e37..0000000 --- a/conf/app.src.default +++ /dev/null @@ -1,6 +0,0 @@ -SOURCE_URL=https://download.nextcloud.com/server/releases/nextcloud-__VERSION__.tar.bz2 -SOURCE_SUM=__SHA256_SUM__ -SOURCE_SUM_PRG=sha256sum -SOURCE_FORMAT=tar.bz2 -SOURCE_IN_SUBDIR=true -SOURCE_FILENAME= diff --git a/conf/nextcloud.cron b/conf/nextcloud.cron index e04f227..e040d0c 100644 --- a/conf/nextcloud.cron +++ b/conf/nextcloud.cron @@ -1 +1 @@ -*/15 * * * * __USER__ /usr/bin/php__PHPVERSION__ -f __FINALPATH__/cron.php +*/15 * * * * __APP__ /usr/bin/php__PHPVERSION__ -f __FINAL_PATH__/cron.php diff --git a/hooks/post_user_create b/hooks/post_user_create index da6bb53..c6717ef 100644 --- a/hooks/post_user_create +++ b/hooks/post_user_create @@ -1,5 +1,6 @@ #!/bin/bash -user=$1 +user="$1" +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" -sudo setfacl --modify g:__GROUP__:rwx /home/$user +setfacl --modify g:$app:rwx /home/$user diff --git a/manifest.json b/manifest.json index 063d098..ccc8955 100644 --- a/manifest.json +++ b/manifest.json @@ -22,7 +22,7 @@ "email": "pierre@kayou.io" }, "requirements": { - "yunohost": ">= 4.1.6" + "yunohost": ">= 4.2" }, "multi_instance": true, "services": [ diff --git a/scripts/_common.sh b/scripts/_common.sh index adf5f21..ca742ee 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -102,42 +102,3 @@ ynh_smart_mktemp () { #================================================= # FUTURE OFFICIAL HELPERS #================================================= - -#================================================= -# YUNOHOST MULTIMEDIA INTEGRATION -#================================================= - -# Install or update the main directory yunohost.multimedia -# -# usage: ynh_multimedia_build_main_dir -ynh_multimedia_build_main_dir () { - local ynh_media_release="v1.2" - local checksum="806a827ba1902d6911095602a9221181" - - # Download yunohost.multimedia scripts - wget -nv https://github.com/YunoHost-Apps/yunohost.multimedia/archive/${ynh_media_release}.tar.gz 2>&1 - - # Check the control sum - echo "${checksum} ${ynh_media_release}.tar.gz" | md5sum -c --status \ - || ynh_die "Corrupt source" - - # Check if the package acl is installed. Or install it. - ynh_package_is_installed 'acl' \ - || ynh_package_install acl - - # Extract - mkdir yunohost.multimedia-master - tar -xf ${ynh_media_release}.tar.gz -C yunohost.multimedia-master --strip-components 1 - ./yunohost.multimedia-master/script/ynh_media_build.sh -} - -# Grant write access to multimedia directories to a specified user -# -# usage: ynh_multimedia_addaccess user_name -# -# | arg: user_name - User to be granted write access -ynh_multimedia_addaccess () { - local user_name=$1 - groupadd -f multimedia - usermod -a -G multimedia $user_name -} diff --git a/scripts/change_url b/scripts/change_url index e9f4ba7..f89e12e 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -111,7 +111,7 @@ then exec_occ config:system:set trusted_domains 1 --value=$new_domain # Change hostname for activity notifications - ynh_replace_string --match_string="'overwrite.cli.url' => 'http://${old_domain}'," --replace_string="'overwrite.cli.url' => 'https://${new_domain}'," --target_file="${final_path}/config/config.php" + exec_occ config:system:set overwrite.cli.url --value="https://${new_domain}" fi if [ $change_domain -eq 1 ] diff --git a/scripts/install b/scripts/install index 6b49c74..614c496 100755 --- a/scripts/install +++ b/scripts/install @@ -73,10 +73,15 @@ ynh_script_progression --message="Setting up source files..." # Load the last available version source upgrade.d/upgrade.last.sh + # Create an app.src for the last version of nextcloud -cp ../conf/app.src.default ../conf/app.src -ynh_replace_string --match_string="__VERSION__" --replace_string="$next_version" --target_file="../conf/app.src" -ynh_replace_string --match_string="__SHA256_SUM__" --replace_string="$nextcloud_source_sha256" --target_file="../conf/app.src" +cat > ../conf/app.src << EOF +SOURCE_URL=https://download.nextcloud.com/server/releases/nextcloud-$next_version.tar.bz2 +SOURCE_SUM=$nextcloud_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 # Enable YunoHost patches on Nextcloud sources @@ -171,10 +176,8 @@ exec_occ ldap:create-empty-config # Load the installation config file in Nextcloud nc_conf="$final_path/config_install.json" -cp ../conf/config_install.json "$nc_conf" +ynh_add_config --template="../conf/config_install.json" --destination="$nc_conf" -ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file="$nc_conf" -ynh_replace_string --match_string="__DATADIR__" --replace_string="$datadir" --target_file="$nc_conf" exec_occ config:import "$nc_conf" # Then remove the config file @@ -182,9 +185,8 @@ ynh_secure_remove --file="$nc_conf" # Load the additional config file (used also for upgrade) nc_conf="$final_path/config.json" -cp ../conf/config.json "$nc_conf" +ynh_add_config --template="../conf/config.json" --destination="$nc_conf" -ynh_replace_string --match_string="__APP__" --replace_string="$app" --target_file="$nc_conf" exec_occ config:import "$nc_conf" # Then remove the config file @@ -243,7 +245,7 @@ exec_occ config:system:get logout_url >/dev/null 2>&1 \ # CHANGE HOSTNAME FOR ACTIVITY NOTIFICATIONS #================================================= -ynh_replace_string --match_string="'overwrite.cli.url' => 'http://localhost'," --replace_string="'overwrite.cli.url' => 'https://${domain}'," --target_file="${final_path}/config/config.php" +exec_occ config:system:set overwrite.cli.url --value="https://${domain}" #================================================= # REMOVE THE TEMPORARY ADMIN AND SET THE TRUE ONE @@ -267,14 +269,10 @@ ynh_store_file_checksum --file="$final_path/config/config.php" #================================================= cron_path="/etc/cron.d/$app" -cp -a ../conf/nextcloud.cron "$cron_path" +ynh_add_config --template="../conf/nextcloud.cron" --destination="$cron_path" chown root: "$cron_path" chmod 644 "$cron_path" -ynh_replace_string --match_string="__USER__" --replace_string="$app" --target_file="$cron_path" -ynh_replace_string --match_string="__FINALPATH__" --replace_string="$final_path" --target_file="$cron_path" -ynh_replace_string --match_string="__PHPVERSION__" --replace_string="$phpversion" --target_file="$cron_path" - exec_occ background:cron #================================================= @@ -285,13 +283,6 @@ exec_occ db:add-missing-indices exec_occ db:add-missing-columns exec_occ db:convert-filecache-bigint -n -#================================================= -# CONFIGURE THE HOOK FILE FOR USER CREATE -#================================================= - -# Set system group in hooks -ynh_replace_string --match_string="__GROUP__" --replace_string="$app" --target_file=../hooks/post_user_create - #================================================= # YUNOHOST MULTIMEDIA INTEGRATION #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index eea4379..a9ed1c6 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -267,9 +267,13 @@ then ynh_print_info --message="Upgrade to nextcloud $next_version" # Create an app.src for this version of Nextcloud - cp ../conf/app.src.default ../conf/app.src - ynh_replace_string --match_string="__VERSION__" --replace_string="$next_version" --target_file="../conf/app.src" - ynh_replace_string --match_string="__SHA256_SUM__" --replace_string="$nextcloud_source_sha256" --target_file="../conf/app.src" + cat > ../conf/app.src << EOF +SOURCE_URL=https://download.nextcloud.com/server/releases/nextcloud-$next_version.tar.bz2 +SOURCE_SUM=$nextcloud_source_sha256 +SOURCE_SUM_PRG=sha256sum +SOURCE_FORMAT=tar.bz2 +SOURCE_IN_SUBDIR=true +EOF # Create a temporary directory tmpdir="$(ynh_smart_mktemp min_size=300)" @@ -332,9 +336,7 @@ then ynh_backup_if_checksum_is_different --file="$final_path/config/config.php" nc_conf="${final_path}/config.json" - cp ../conf/config.json "$nc_conf" - - ynh_replace_string --match_string="__APP__" --replace_string="$app" --target_file="$nc_conf" + ynh_add_config --template="../conf/config.json" --destination="$nc_conf" # Reneable the mail app if [ $mail_app_must_be_reactived -eq 1 ]; then @@ -371,7 +373,7 @@ then # CHANGE HOSTNAME FOR ACTIVITY NOTIFICATIONS #================================================= - ynh_replace_string --match_string="'overwrite.cli.url' => 'http://localhost'," --replace_string="'overwrite.cli.url' => 'https://${domain}'," --target_file="${final_path}/config/config.php" + exec_occ config:system:set overwrite.cli.url --value="https://${domain}" #================================================= # MOUNT HOME FOLDERS AS EXTERNAL STORAGE @@ -402,23 +404,12 @@ fi #================================================= cron_path="/etc/cron.d/$app" -cp -a ../conf/nextcloud.cron "$cron_path" +ynh_add_config --template="../conf/nextcloud.cron" --destination="$cron_path" chown root: "$cron_path" chmod 644 "$cron_path" -ynh_replace_string --match_string="__USER__" --replace_string="$app" --target_file="$cron_path" -ynh_replace_string --match_string="__FINALPATH__" --replace_string="$final_path" --target_file="$cron_path" -ynh_replace_string --match_string="__PHPVERSION__" --replace_string="$phpversion" --target_file="$cron_path" - exec_occ background:cron -#================================================= -# UPDATE THE HOOK FILE FOR USER CREATE -#================================================= - -# Set system group in hooks -ynh_replace_string --match_string="__GROUP__" --replace_string="$app" --target_file=../hooks/post_user_create - #================================================= # GENERIC FINALIZATION #================================================= From fd04753b75655af4ca796cb5fa4cb5b19689625c Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Thu, 27 May 2021 11:35:42 +0200 Subject: [PATCH 038/115] Use ynh_exec_as --- scripts/_common.sh | 15 --------------- scripts/change_url | 2 +- scripts/install | 2 +- scripts/upgrade | 2 +- 4 files changed, 3 insertions(+), 18 deletions(-) diff --git a/scripts/_common.sh b/scripts/_common.sh index ca742ee..c4e3403 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -12,21 +12,6 @@ extra_php_dependencies="php${YNH_PHP_VERSION}-bz2 php${YNH_PHP_VERSION}-imap php # EXPERIMENTAL HELPERS #================================================= -# Execute a command as another user -# usage: exec_as USER COMMAND [ARG ...] -exec_as() { - local USER=$1 - shift 1 - - if [[ $USER = $(whoami) ]]; then - eval "$@" - else - sudo -u "$USER" "$@" - fi -} - -#================================================= - # Check if an URL is already handled # usage: is_url_handled --domain=DOMAIN --path=PATH_URI is_url_handled() { diff --git a/scripts/change_url b/scripts/change_url index f89e12e..5c6deb8 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -101,7 +101,7 @@ ynh_script_progression --message="Applying Nextcloud specific modifications..." # Define a function to execute commands with `occ` exec_occ() { - (cd "$final_path" && exec_as "$app" \ + (cd "$final_path" && ynh_exec_as "$app" \ php${phpversion} occ --no-interaction --no-ansi "$@") } diff --git a/scripts/install b/scripts/install index 614c496..bb5e844 100755 --- a/scripts/install +++ b/scripts/install @@ -142,7 +142,7 @@ ynh_script_progression --message="Installing Nextcloud..." --weight=30 # Define a function to execute commands with `occ` exec_occ() { - (cd "$final_path" && exec_as "$app" \ + (cd "$final_path" && ynh_exec_as "$app" \ php${phpversion} occ --no-interaction --no-ansi "$@") } diff --git a/scripts/upgrade b/scripts/upgrade index a9ed1c6..39b124d 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -193,7 +193,7 @@ exec_occ() { else NEXTCLOUD_PHP_VERSION="7.0" fi -(cd "$final_path" && exec_as "$app" \ +(cd "$final_path" && ynh_exec_as "$app" \ php$NEXTCLOUD_PHP_VERSION occ --no-interaction --no-ansi "$@") } From 75e49051adbdc75e6fecf04797d9b71228d0425d Mon Sep 17 00:00:00 2001 From: ericgaspar Date: Thu, 3 Jun 2021 13:08:45 +0200 Subject: [PATCH 039/115] Update _common.sh --- scripts/_common.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/_common.sh b/scripts/_common.sh index c4e3403..98be903 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -3,7 +3,7 @@ # COMMON VARIABLES #================================================= -pkg_dependencies="imagemagick acl tar smbclient at" +pkg_dependencies="imagemagick libmagickcore-6.q16-6-extra acl tar smbclient at" YNH_PHP_VERSION="7.3" extra_php_dependencies="php${YNH_PHP_VERSION}-bz2 php${YNH_PHP_VERSION}-imap php${YNH_PHP_VERSION}-smbclient php${YNH_PHP_VERSION}-gmp php${YNH_PHP_VERSION}-gd php${YNH_PHP_VERSION}-json php${YNH_PHP_VERSION}-intl php${YNH_PHP_VERSION}-curl php${YNH_PHP_VERSION}-apcu php${YNH_PHP_VERSION}-redis php${YNH_PHP_VERSION}-ldap php${YNH_PHP_VERSION}-imagick php${YNH_PHP_VERSION}-zip php${YNH_PHP_VERSION}-mbstring php${YNH_PHP_VERSION}-xml php${YNH_PHP_VERSION}-mysql php${YNH_PHP_VERSION}-igbinary php${YNH_PHP_VERSION}-bcmath" From abfc4ec473e34a091bf389b6f9c8afdc76a3226c Mon Sep 17 00:00:00 2001 From: Yunohost-Bot <> Date: Thu, 3 Jun 2021 11:08:54 +0000 Subject: [PATCH 040/115] Auto-update README --- README.md | 21 +++++---------------- README_fr.md | 37 +++++++++++++++---------------------- 2 files changed, 20 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 32f081a..4007b2f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,3 @@ - - ---- - + # Nextcloud pour YunoHost -[![Niveau d'intégration](https://dash.yunohost.org/integration/nextcloud.svg)](https://dash.yunohost.org/appci/app/nextcloud) ![](https://ci-apps.yunohost.org/ci/badges/nextcloud.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/nextcloud.maintain.svg) +[![Niveau d'intégration](https://dash.yunohost.org/integration/nextcloud.svg)](https://dash.yunohost.org/appci/app/nextcloud) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/nextcloud.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/nextcloud.maintain.svg) [![Installer Nextcloud avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=nextcloud) *[Read this readme in english.](./README.md)* -*[Lire ce readme en français.](./README_fr.md)* > *Ce package vous permet d'installer Nextcloud rapidement et simplement sur un serveur YunoHost. Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l'installer et en profiter.* @@ -13,13 +17,13 @@ Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour Stockage en ligne, plateforme de partage de fichiers et diverses autres applications -**Version incluse :** 22.2.7~ynh1 +**Version incluse :** 22.2.9~ynh1 **Démo :** https://demo.nextcloud.com/ ## Captures d'écran -![](./doc/screenshots/screenshot.png) +![Capture d'écran de Nextcloud](./doc/screenshots/screenshot.png) ## Avertissements / informations importantes @@ -48,22 +52,23 @@ En plus des fonctionnalités principales de Nextcloud, les fonctionnalités suiv ## Documentations et ressources -* Site officiel de l'app : https://nextcloud.com -* Documentation officielle utilisateur : https://docs.nextcloud.com/server/latest/user_manual/en/ -* Documentation officielle de l'admin : https://docs.nextcloud.com/server/stable/admin_manual/ -* Dépôt de code officiel de l'app : https://github.com/nextcloud/server -* Documentation YunoHost pour cette app : https://yunohost.org/app_nextcloud -* Signaler un bug : https://github.com/YunoHost-Apps/nextcloud_ynh/issues +* Site officiel de l'app : +* Documentation officielle utilisateur : +* Documentation officielle de l'admin : +* Dépôt de code officiel de l'app : +* Documentation YunoHost pour cette app : +* Signaler un bug : ## Informations pour les développeurs Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/nextcloud_ynh/tree/testing). Pour essayer la branche testing, procédez comme suit. -``` + +``` bash sudo yunohost app install https://github.com/YunoHost-Apps/nextcloud_ynh/tree/testing --debug ou sudo yunohost app upgrade nextcloud -u https://github.com/YunoHost-Apps/nextcloud_ynh/tree/testing --debug ``` -**Plus d'infos sur le packaging d'applications :** https://yunohost.org/packaging_apps \ No newline at end of file +**Plus d'infos sur le packaging d'applications :** From b225b69020bc6ccdc0602b44f2c5be820ae8dbf5 Mon Sep 17 00:00:00 2001 From: yunohost-bot Date: Sun, 3 Jul 2022 09:32:14 +0000 Subject: [PATCH 115/115] Auto-update README --- README.md | 21 +++++++++++---------- README_fr.md | 27 ++++++++++++++++----------- 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 2a39847..c78b520 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ It shall NOT be edited by hand. # Nextcloud for YunoHost -[![Integration level](https://dash.yunohost.org/integration/nextcloud.svg)](https://dash.yunohost.org/appci/app/nextcloud) ![](https://ci-apps.yunohost.org/ci/badges/nextcloud.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/nextcloud.maintain.svg) +[![Integration level](https://dash.yunohost.org/integration/nextcloud.svg)](https://dash.yunohost.org/appci/app/nextcloud) ![Working status](https://ci-apps.yunohost.org/ci/badges/nextcloud.status.svg) ![Maintenance status](https://ci-apps.yunohost.org/ci/badges/nextcloud.maintain.svg) [![Install Nextcloud with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=nextcloud) *[Lire ce readme en français.](./README_fr.md)* @@ -23,7 +23,7 @@ Online storage, file sharing platform and various other applications ## Screenshots -![](./doc/screenshots/screenshot.png) +![Screenshot of Nextcloud](./doc/screenshots/screenshot.png) ## Disclaimers / important information @@ -53,22 +53,23 @@ this package: ## Documentation and resources -* Official app website: https://nextcloud.com -* Official user documentation: https://docs.nextcloud.com/server/latest/user_manual/en/ -* Official admin documentation: https://docs.nextcloud.com/server/stable/admin_manual/ -* Upstream app code repository: https://github.com/nextcloud/server -* YunoHost documentation for this app: https://yunohost.org/app_nextcloud -* Report a bug: https://github.com/YunoHost-Apps/nextcloud_ynh/issues +* Official app website: +* Official user documentation: +* Official admin documentation: +* Upstream app code repository: +* YunoHost documentation for this app: +* Report a bug: ## Developer info Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/nextcloud_ynh/tree/testing). To try the testing branch, please proceed like that. -``` + +``` bash sudo yunohost app install https://github.com/YunoHost-Apps/nextcloud_ynh/tree/testing --debug or sudo yunohost app upgrade nextcloud -u https://github.com/YunoHost-Apps/nextcloud_ynh/tree/testing --debug ``` -**More info regarding app packaging:** https://yunohost.org/packaging_apps \ No newline at end of file +**More info regarding app packaging:** diff --git a/README_fr.md b/README_fr.md index 6a1eebe..c724ab0 100644 --- a/README_fr.md +++ b/README_fr.md @@ -1,10 +1,14 @@ + + # Nextcloud pour YunoHost -[![Niveau d'intégration](https://dash.yunohost.org/integration/nextcloud.svg)](https://dash.yunohost.org/appci/app/nextcloud) ![](https://ci-apps.yunohost.org/ci/badges/nextcloud.status.svg) ![](https://ci-apps.yunohost.org/ci/badges/nextcloud.maintain.svg) +[![Niveau d'intégration](https://dash.yunohost.org/integration/nextcloud.svg)](https://dash.yunohost.org/appci/app/nextcloud) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/nextcloud.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/nextcloud.maintain.svg) [![Installer Nextcloud avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=nextcloud) *[Read this readme in english.](./README.md)* -*[Lire ce readme en français.](./README_fr.md)* > *Ce package vous permet d'installer Nextcloud rapidement et simplement sur un serveur YunoHost. Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l'installer et en profiter.* @@ -19,7 +23,7 @@ Stockage en ligne, plateforme de partage de fichiers et diverses autres applicat ## Captures d'écran -![](./doc/screenshots/screenshot.png) +![Capture d'écran de Nextcloud](./doc/screenshots/screenshot.png) ## Avertissements / informations importantes @@ -48,22 +52,23 @@ En plus des fonctionnalités principales de Nextcloud, les fonctionnalités suiv ## Documentations et ressources -* Site officiel de l'app : https://nextcloud.com -* Documentation officielle utilisateur : https://docs.nextcloud.com/server/latest/user_manual/en/ -* Documentation officielle de l'admin : https://docs.nextcloud.com/server/stable/admin_manual/ -* Dépôt de code officiel de l'app : https://github.com/nextcloud/server -* Documentation YunoHost pour cette app : https://yunohost.org/app_nextcloud -* Signaler un bug : https://github.com/YunoHost-Apps/nextcloud_ynh/issues +* Site officiel de l'app : +* Documentation officielle utilisateur : +* Documentation officielle de l'admin : +* Dépôt de code officiel de l'app : +* Documentation YunoHost pour cette app : +* Signaler un bug : ## Informations pour les développeurs Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/nextcloud_ynh/tree/testing). Pour essayer la branche testing, procédez comme suit. -``` + +``` bash sudo yunohost app install https://github.com/YunoHost-Apps/nextcloud_ynh/tree/testing --debug ou sudo yunohost app upgrade nextcloud -u https://github.com/YunoHost-Apps/nextcloud_ynh/tree/testing --debug ``` -**Plus d'infos sur le packaging d'applications :** https://yunohost.org/packaging_apps \ No newline at end of file +**Plus d'infos sur le packaging d'applications :**