From 22adedf6d28ca7f658c2f108653a1e2cadc190d4 Mon Sep 17 00:00:00 2001
From: mreid-tt <943378+mreid-tt@users.noreply.github.com>
Date: Sat, 14 Sep 2024 12:33:10 -0400
Subject: [PATCH 1/4] Update to v3.2.2
Requires PHP 8.2
---
cross/cops/Makefile | 2 +-
cross/cops/digests | 6 +++---
spk/cops/Makefile | 10 +++++-----
spk/cops/src/conf/resource | 2 +-
4 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/cross/cops/Makefile b/cross/cops/Makefile
index 8e50cada54c..eb3a73a8324 100644
--- a/cross/cops/Makefile
+++ b/cross/cops/Makefile
@@ -1,5 +1,5 @@
PKG_NAME = cops
-PKG_VERS = 1.5.4
+PKG_VERS = 3.2.2
PKG_EXT = zip
PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT)
PKG_DIST_SITE = https://github.com/mikespub-org/seblucas-cops/releases/download/$(PKG_VERS)
diff --git a/cross/cops/digests b/cross/cops/digests
index d00a2440103..62697c01ce1 100644
--- a/cross/cops/digests
+++ b/cross/cops/digests
@@ -1,3 +1,3 @@
-cops-1.5.4.zip SHA1 6fc653f9b7b83766547c420875579bd02503c98e
-cops-1.5.4.zip SHA256 7fc18946c003d91e77c4a189f0b752f021224187d86e93f8813b165d9ac306c9
-cops-1.5.4.zip MD5 17cb2d4ce02f7ddbd51baa27fcc26a0d
+cops-3.2.2.zip SHA1 530c525cdfdb72040d089d031e8d48053d68437c
+cops-3.2.2.zip SHA256 c3dbb1a310d846364e7a1c3f1453098a2273b45a80655a57fadc5a393868797b
+cops-3.2.2.zip MD5 1e89e57e7862df462a1f6b397858bd4b
diff --git a/spk/cops/Makefile b/spk/cops/Makefile
index 7d523b6a658..771f2251419 100644
--- a/spk/cops/Makefile
+++ b/spk/cops/Makefile
@@ -1,20 +1,20 @@
SPK_NAME = cops
-SPK_VERS = 1.5.4
-SPK_REV = 9
+SPK_VERS = 3.2.2
+SPK_REV = 10
SPK_ICON = src/cops.png
DEPENDS = cross/cops
# Pure PHP package, make sure ARCH is not defined
override ARCH=
-REQUIRED_MIN_DSM = 6.0
-SPK_DEPENDS=WebStation:PHP7.4:Apache2.4
+REQUIRED_MIN_DSM = 7.0
+SPK_DEPENDS=WebStation:PHP8.2:Apache2.4
MAINTAINER = Diaoul
DESCRIPTION = Calibre OPDS and HTML PHP Server : light alternative to Calibre content server / Calibre2OPDS.
DESCRIPTION_FRE = Calibre OPDS et HTML PHP Serveur : alternative légère au serveur de contenu de Calibre et à Calibre2OPDS.
DISPLAY_NAME = COPS
-CHANGELOG = "1. Update to 1.5.4"
+CHANGELOG = "1. Update to v3.2.2. \(Requires PHP 8.2\)"
HOMEPAGE = https://blog.slucas.fr/en/oss/calibre-opds-php-server
LICENSE = GPLv2
diff --git a/spk/cops/src/conf/resource b/spk/cops/src/conf/resource
index bd8ac149c5f..cfa7f087cd4 100644
--- a/spk/cops/src/conf/resource
+++ b/spk/cops/src/conf/resource
@@ -34,7 +34,7 @@
"display_name": "COPS",
"icon": "app/images/cops-{0}.png",
"php": {
- "backend": 8,
+ "backend": 11,
"extensions": [
"gd",
"intl",
From d4d496cb8095c0d8c9a1abf517be197b82c2e069 Mon Sep 17 00:00:00 2001
From: mreid-tt <943378+mreid-tt@users.noreply.github.com>
Date: Sat, 14 Sep 2024 12:49:37 -0400
Subject: [PATCH 2/4] Remove DSM 6 code
---
spk/cops/Makefile | 9 --
spk/cops/src/conf_6/resource | 11 --
spk/cops/src/service-setup.sh | 133 +-----------------
spk/cops/src/web/cops.conf | 16 ---
spk/cops/src/web/cops.json | 25 ----
.../src/wizard_templates/install_uifile.sh | 28 ----
.../src/wizard_templates/install_uifile.yml | 3 -
.../wizard_templates/install_uifile_fre.yml | 3 -
.../src/wizard_templates/upgrade_uifile.sh | 4 -
9 files changed, 1 insertion(+), 231 deletions(-)
delete mode 100644 spk/cops/src/conf_6/resource
delete mode 100644 spk/cops/src/web/cops.conf
delete mode 100644 spk/cops/src/web/cops.json
diff --git a/spk/cops/Makefile b/spk/cops/Makefile
index 771f2251419..457a39d0943 100644
--- a/spk/cops/Makefile
+++ b/spk/cops/Makefile
@@ -30,13 +30,6 @@ DSM_UI_DIR = app
DSM_UI_CONFIG = src/app/config
CONF_DIR = src/conf/
-include ../../mk/spksrc.common.mk
-
-# Alternate conf dir for DSM 6
-ifeq ($(call version_lt, ${TCVERSION}, 7.0),1)
-CONF_DIR = src/conf_6/
-endif
-
SERVICE_USER = auto
SERVICE_SETUP = src/service-setup.sh
STARTABLE = no
@@ -48,7 +41,5 @@ include ../../mk/spksrc.spk.mk
.PHONY: cops_extra_install
cops_extra_install:
install -m 755 -d $(STAGING_DIR)/web
- install -m 644 src/web/cops.conf $(STAGING_DIR)/web/cops.conf
- install -m 644 src/web/cops.json $(STAGING_DIR)/web/cops.json
@$(MSG) Install default config file
install -m 666 src/web/config_local.php.synology $(STAGING_DIR)/web/config_local.php.synology
diff --git a/spk/cops/src/conf_6/resource b/spk/cops/src/conf_6/resource
deleted file mode 100644
index 391d1ed706c..00000000000
--- a/spk/cops/src/conf_6/resource
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "data-share": {
- "shares": [{
- "name": "{{wizard_calibre_share}}",
- "once": true,
- "permission": {
- "rw": ["http"]
- }
- }]
- }
-}
diff --git a/spk/cops/src/service-setup.sh b/spk/cops/src/service-setup.sh
index 5501b0177c0..a562ea8f82d 100644
--- a/spk/cops/src/service-setup.sh
+++ b/spk/cops/src/service-setup.sh
@@ -1,99 +1,13 @@
# Package
PACKAGE="cops"
-DNAME="COPS"
-SC_PKG_PREFIX="com-synocommunity-packages-"
-PACKAGE_NAME="${SC_PKG_PREFIX}${PACKAGE}"
# Others
-SYNOSVC="/usr/syno/sbin/synoservice"
WEB_DIR="/var/services/web_packages"
-# for backwards compatability
-if [ $SYNOPKG_DSM_VERSION_MAJOR -lt 7 ];then
- WEB_DIR="/var/services/web"
-fi
WEB_ROOT="${WEB_DIR}/${PACKAGE}"
-validate_preinst ()
-{
- # Check for modification to PHP template defaults on DSM 6
- if [ ${SYNOPKG_DSM_VERSION_MAJOR} -lt 7 ]; then
- WS_TMPL_PATH="/var/packages/WebStation/target/misc"
- WS_TMPL_FILE="php74_fpm.mustache"
- FULL_WS_TMPL_FILE="${WS_TMPL_PATH}/${WS_TMPL_FILE}"
- # Check for PHP template defaults
- if ! grep -q -E '^user = http$' "${FULL_WS_TMPL_FILE}" || ! grep -q -E '^listen\.owner = http$' "${FULL_WS_TMPL_FILE}"; then
- echo "PHP template defaults have been modified. Installation is not supported."
- exit 1
- fi
- fi
-}
-
service_postinst ()
{
- # Web interface setup for DSM 6 -- used by INSTALL and UPGRADE
- if [ ${SYNOPKG_DSM_VERSION_MAJOR} -lt 7 ]; then
- # Install the web interface
- echo "Installing web interface"
- ${MKDIR} ${WEB_ROOT}
- rsync -aX ${SYNOPKG_PKGDEST}/share/${PACKAGE}/ ${WEB_ROOT} 2>&1
-
- # Install web configurations
- TEMPDIR="${SYNOPKG_PKGTMP}/web"
- ${MKDIR} ${TEMPDIR}
- WS_CFG_DIR="/usr/syno/etc/packages/WebStation"
- WS_CFG_FILE="WebStation.json"
- WS_CFG_PATH="${WS_CFG_DIR}/${WS_CFG_FILE}"
- TMP_WS_CFG_PATH="${TEMPDIR}/${WS_CFG_FILE}"
- PHP_CFG_FILE="PHPSettings.json"
- PHP_CFG_PATH="${WS_CFG_DIR}/${PHP_CFG_FILE}"
- TMP_PHP_CFG_PATH="${TEMPDIR}/${PHP_CFG_FILE}"
- PHP_PROF_NAME="Default PHP 7.4 Profile"
- WS_BACKEND="$(jq -r '.default.backend' ${WS_CFG_PATH})"
- WS_PHP="$(jq -r '.default.php' ${WS_CFG_PATH})"
- RESTART_APACHE="no"
- RSYNC_ARCH_ARGS="--backup --suffix=.bak --remove-source-files"
- # Check if Apache is the selected back-end
- if [ ! "$WS_BACKEND" = "2" ]; then
- echo "Set Apache as the back-end server"
- jq '.default.backend = 2' ${WS_CFG_PATH} > ${TMP_WS_CFG_PATH}
- rsync -aX ${RSYNC_ARCH_ARGS} ${TMP_WS_CFG_PATH} ${WS_CFG_DIR}/ 2>&1
- RESTART_APACHE="yes"
- fi
- # Check if default PHP profile is selected
- if [ -z "$WS_PHP" ] || [ "$WS_PHP" = "null" ]; then
- echo "Enable default PHP profile"
- # Locate default PHP profile
- PHP_PROF_ID="$(jq -r '. | to_entries[] | select(.value | type == "object" and .profile_desc == "'"$PHP_PROF_NAME"'") | .key' "${PHP_CFG_PATH}")"
- jq ".default.php = \"$PHP_PROF_ID\"" "${WS_CFG_PATH}" > ${TMP_WS_CFG_PATH}
- rsync -aX ${RSYNC_ARCH_ARGS} ${TMP_WS_CFG_PATH} ${WS_CFG_DIR}/ 2>&1
- RESTART_APACHE="yes"
- fi
- # Check for PHP profile
- if ! jq -e ".[\"${PACKAGE_NAME}\"]" "${PHP_CFG_PATH}" >/dev/null; then
- echo "Add PHP profile for ${DNAME}"
- jq --slurpfile ocNode ${SYNOPKG_PKGDEST}/web/${PACKAGE}.json '.["'"${PACKAGE_NAME}"'"] = $ocNode[0]' ${PHP_CFG_PATH} > ${TMP_PHP_CFG_PATH}
- rsync -aX ${RSYNC_ARCH_ARGS} ${TMP_PHP_CFG_PATH} ${WS_CFG_DIR}/ 2>&1
- RESTART_APACHE="yes"
- fi
- # Check for Apache config
- if [ ! -f "/usr/local/etc/apache24/sites-enabled/${PACKAGE}.conf" ]; then
- echo "Add Apache config for ${DNAME}"
- rsync -aX ${SYNOPKG_PKGDEST}/web/${PACKAGE}.conf /usr/local/etc/apache24/sites-enabled/ 2>&1
- RESTART_APACHE="yes"
- fi
- # Restart Apache if configs have changed
- if [ "$RESTART_APACHE" = "yes" ]; then
- if jq -e 'to_entries | map(select((.key | startswith("'"${SC_PKG_PREFIX}"'")) and .key != "'"${PACKAGE_NAME}"'")) | length > 0' "${PHP_CFG_PATH}" >/dev/null; then
- echo " [WARNING] Multiple PHP profiles detected, will require restart of DSM to load new configs"
- else
- echo "Restart Apache to load new configs"
- ${SYNOSVC} --restart pkgctl-Apache2.4
- fi
- fi
- # Clean-up temporary files
- ${RM} ${TEMPDIR}
- fi
# Initialize or update configuration file based on user preferences.
if [ "${SYNOPKG_PKG_STATUS}" = "INSTALL" ]; then
CFG_FILE="${WEB_ROOT}/config_local.php"
@@ -110,51 +24,6 @@ service_postinst ()
fi
}
-service_postuninst ()
-{
- # Web interface removal for DSM 6 -- used by UNINSTALL and UPGRADE
- if [ ${SYNOPKG_DSM_VERSION_MAJOR} -lt 7 ]; then
- # Remove the web interface
- echo "Removing web interface"
- ${RM} ${WEB_ROOT}
-
- # Remove web configurations
- TEMPDIR="${SYNOPKG_PKGTMP}/web"
- ${MKDIR} ${TEMPDIR}
- WS_CFG_DIR="/usr/syno/etc/packages/WebStation"
- PHP_CFG_FILE="PHPSettings.json"
- PHP_CFG_PATH="${WS_CFG_DIR}/${PHP_CFG_FILE}"
- TMP_PHP_CFG_PATH="${TEMPDIR}/${PHP_CFG_FILE}"
- RESTART_APACHE="no"
- RSYNC_ARCH_ARGS="--backup --suffix=.bak --remove-source-files"
- # Check for PHP profile
- if jq -e ".[\"${PACKAGE_NAME}\"]" "${PHP_CFG_PATH}" >/dev/null; then
- echo "Removing PHP profile for ${DNAME}"
- jq 'del(.["'"${PACKAGE_NAME}"'"])' ${PHP_CFG_PATH} > ${TMP_PHP_CFG_PATH}
- rsync -aX ${RSYNC_ARCH_ARGS} ${TMP_PHP_CFG_PATH} ${WS_CFG_DIR}/ 2>&1
- ${RM} "${WS_CFG_DIR}/php_profile/${PACKAGE_NAME}"
- RESTART_APACHE="yes"
- fi
- # Check for Apache config
- if [ -f "/usr/local/etc/apache24/sites-enabled/${PACKAGE}.conf" ]; then
- echo "Removing Apache config for ${DNAME}"
- ${RM} /usr/local/etc/apache24/sites-enabled/${PACKAGE}.conf
- RESTART_APACHE="yes"
- fi
- # Restart Apache if configs have changed
- if [ "$RESTART_APACHE" = "yes" ]; then
- if jq -e 'to_entries | map(select((.key | startswith("'"${SC_PKG_PREFIX}"'")) and .key != "'"${PACKAGE_NAME}"'")) | length > 0' "${PHP_CFG_PATH}" >/dev/null; then
- echo " [WARNING] Multiple PHP profiles detected, will require restart of DSM to load new configs"
- else
- echo "Restart Apache to load new configs"
- ${SYNOSVC} --restart pkgctl-Apache2.4
- fi
- fi
- # Clean-up temporary files
- ${RM} ${TEMPDIR}
- fi
-}
-
service_save ()
{
# Save some stuff
@@ -172,7 +41,7 @@ service_restore ()
# Restore some stuff
echo "Restore previous data from ${SYNOPKG_TEMP_UPGRADE_FOLDER}/${PACKAGE}"
# Restore cops configuration file
- rsync -aX --update -I ${SYNOPKG_TEMP_UPGRADE_FOLDER}/${PACKAGE}/web/config_local.php ${WEB_ROOT}/config_local.php 2>&1
+ rsync -aX -I ${SYNOPKG_TEMP_UPGRADE_FOLDER}/${PACKAGE}/web/config_local.php ${WEB_ROOT}/config_local.php 2>&1
else
# Backup missing, re-initialise default values
CFG_FILE="${WEB_ROOT}/config_local.php"
diff --git a/spk/cops/src/web/cops.conf b/spk/cops/src/web/cops.conf
deleted file mode 100644
index d4b7b8be227..00000000000
--- a/spk/cops/src/web/cops.conf
+++ /dev/null
@@ -1,16 +0,0 @@
-Alias "/cops" "/var/services/web/cops"
-
-
- ProxySet timeout=3600
-
-
-
-
-
- SetHandler "proxy:fcgi://cops"
-
-
-
- DirectoryIndex index.php index.htm index.html
-
-
diff --git a/spk/cops/src/web/cops.json b/spk/cops/src/web/cops.json
deleted file mode 100644
index cea76cec32f..00000000000
--- a/spk/cops/src/web/cops.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "backend": 8,
- "custom_open_basedir": false,
- "display_errors": false,
- "enable_cache": true,
- "enable_xdebug": false,
- "extensions": [
- "gd",
- "pdo_sqlite",
- "sqlite3",
- "intl",
- "zlib"
- ],
- "fpm_settings": {
- "max_children": 20,
- "max_spare_servers": 3,
- "min_spare_servers": 1,
- "mode": "dynamic",
- "start_servers": 2
- },
- "open_basedir": "",
- "php_settings": {},
- "profile_desc": "PHP profile used by cops",
- "profile_name": "cops"
-}
\ No newline at end of file
diff --git a/spk/cops/src/wizard_templates/install_uifile.sh b/spk/cops/src/wizard_templates/install_uifile.sh
index e15abf5a107..f9e0557c5dc 100644
--- a/spk/cops/src/wizard_templates/install_uifile.sh
+++ b/spk/cops/src/wizard_templates/install_uifile.sh
@@ -16,21 +16,6 @@ page_append ()
fi
}
-# Check for multiple PHP profiles
-check_php_profiles ()
-{
- PACKAGE="cops"
- SC_PKG_PREFIX="com-synocommunity-packages-"
- PACKAGE_NAME="${SC_PKG_PREFIX}${PACKAGE}"
- PHP_CFG_PATH="/usr/syno/etc/packages/WebStation/PHPSettings.json"
- if [ "${SYNOPKG_DSM_VERSION_MAJOR}" -lt 7 ] && \
- jq -e 'to_entries | map(select((.key | startswith("'"${SC_PKG_PREFIX}"'")) and .key != "'"${PACKAGE_NAME}"'")) | length > 0' "${PHP_CFG_PATH}" >/dev/null; then
- return 0 # true
- else
- return 1 # false
- fi
-}
-
PAGE_ADMIN_CONFIG=$(/bin/cat< "${SYNOPKG_TEMP_LOGFILE}"
}
diff --git a/spk/cops/src/wizard_templates/install_uifile.yml b/spk/cops/src/wizard_templates/install_uifile.yml
index 55c7d0e47c4..64f688f0ac2 100644
--- a/spk/cops/src/wizard_templates/install_uifile.yml
+++ b/spk/cops/src/wizard_templates/install_uifile.yml
@@ -12,6 +12,3 @@ DO_YOU_WANT_TO_USE_COPS_WITH_A_KOBO_LABEL: "Kobo"
DSM_PERMISSIONS_TITLE: "Attention! DSM Permissions"
DSM_PERMISSIONS_TEXT: "Package user and group will not appear on most UI settings. Please read Permission Management for details."
-
-PHP_PROFILES_TITLE: "Multiple PHP profiles"
-PHP_PROFILES_DESCRIPTION: "Attention: Multiple PHP profiles detected; the package webpage will not display until a DSM restart is performed to load new configurations."
diff --git a/spk/cops/src/wizard_templates/install_uifile_fre.yml b/spk/cops/src/wizard_templates/install_uifile_fre.yml
index 7be2ebf510d..0d24e4f0b37 100644
--- a/spk/cops/src/wizard_templates/install_uifile_fre.yml
+++ b/spk/cops/src/wizard_templates/install_uifile_fre.yml
@@ -12,6 +12,3 @@ DO_YOU_WANT_TO_USE_COPS_WITH_A_KOBO_LABEL: "Kobo"
DSM_PERMISSIONS_TITLE: "Attention! DSM Permissions"
DSM_PERMISSIONS_TEXT: "L'utilisateur et le group du package n'apparaîtront pas sur la plupart des UI réglages. Veuillez vous référrer à Permission Management pour plus de détails."
-
-PHP_PROFILES_TITLE: "Plusieurs profils PHP"
-PHP_PROFILES_DESCRIPTION: "Attention : Plusieurs profils PHP détectés ; la page Web du package ne s'affichera pas tant qu'un redémarrage de DSM n'aura pas été effectué pour charger de nouvelles configurations."
diff --git a/spk/cops/src/wizard_templates/upgrade_uifile.sh b/spk/cops/src/wizard_templates/upgrade_uifile.sh
index fc2c24724b1..f1eca70988b 100644
--- a/spk/cops/src/wizard_templates/upgrade_uifile.sh
+++ b/spk/cops/src/wizard_templates/upgrade_uifile.sh
@@ -1,10 +1,6 @@
#!/bin/bash
WEB_DIR="/var/services/web_packages"
-# for backwards compatability
-if [ "${SYNOPKG_DSM_VERSION_MAJOR}" -lt 7 ]; then
- WEB_DIR="/var/services/web"
-fi
quote_json ()
{
From d8e106de4f0623b1e21af6354e660be76d339201 Mon Sep 17 00:00:00 2001
From: mreid-tt <943378+mreid-tt@users.noreply.github.com>
Date: Sat, 14 Sep 2024 13:03:27 -0400
Subject: [PATCH 3/4] Minor fixes
---
spk/cops/Makefile | 2 +-
spk/cops/src/conf/resource | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/spk/cops/Makefile b/spk/cops/Makefile
index 457a39d0943..ef7fe07361c 100644
--- a/spk/cops/Makefile
+++ b/spk/cops/Makefile
@@ -10,7 +10,7 @@ override ARCH=
REQUIRED_MIN_DSM = 7.0
SPK_DEPENDS=WebStation:PHP8.2:Apache2.4
-MAINTAINER = Diaoul
+MAINTAINER = SynoCommunity
DESCRIPTION = Calibre OPDS and HTML PHP Server : light alternative to Calibre content server / Calibre2OPDS.
DESCRIPTION_FRE = Calibre OPDS et HTML PHP Serveur : alternative légère au serveur de contenu de Calibre et à Calibre2OPDS.
DISPLAY_NAME = COPS
diff --git a/spk/cops/src/conf/resource b/spk/cops/src/conf/resource
index cfa7f087cd4..6c47bb0db5f 100644
--- a/spk/cops/src/conf/resource
+++ b/spk/cops/src/conf/resource
@@ -40,6 +40,7 @@
"intl",
"pdo_sqlite",
"sqlite3",
+ "zip",
"zlib"
],
"group": "http",
From 293ee45d84d7760a5c5c3cc42f5caee96e2a02a6 Mon Sep 17 00:00:00 2001
From: mreid-tt <943378+mreid-tt@users.noreply.github.com>
Date: Sat, 14 Sep 2024 17:23:33 -0400
Subject: [PATCH 4/4] Simplify install wizard
---
.../{install_uifile.sh => install_uifile} | 35 ++-----------------
.../src/wizard_templates/install_uifile.yml | 2 +-
.../wizard_templates/install_uifile_fre.yml | 2 +-
3 files changed, 5 insertions(+), 34 deletions(-)
rename spk/cops/src/wizard_templates/{install_uifile.sh => install_uifile} (73%)
diff --git a/spk/cops/src/wizard_templates/install_uifile.sh b/spk/cops/src/wizard_templates/install_uifile
similarity index 73%
rename from spk/cops/src/wizard_templates/install_uifile.sh
rename to spk/cops/src/wizard_templates/install_uifile
index f9e0557c5dc..733250a0a50 100644
--- a/spk/cops/src/wizard_templates/install_uifile.sh
+++ b/spk/cops/src/wizard_templates/install_uifile
@@ -1,23 +1,4 @@
-#!/bin/bash
-
-quote_json ()
-{
- sed -e 's|\\|\\\\|g' -e 's|\"|\\\"|g'
-}
-
-page_append ()
-{
- if [ -z "$1" ]; then
- echo "$2"
- elif [ -z "$2" ]; then
- echo "$1"
- else
- echo "$1,$2"
- fi
-}
-
-PAGE_ADMIN_CONFIG=$(/bin/cat< "${SYNOPKG_TEMP_LOGFILE}"
-}
-
-main "$@"
+}]
diff --git a/spk/cops/src/wizard_templates/install_uifile.yml b/spk/cops/src/wizard_templates/install_uifile.yml
index 64f688f0ac2..42bcfbcc18c 100644
--- a/spk/cops/src/wizard_templates/install_uifile.yml
+++ b/spk/cops/src/wizard_templates/install_uifile.yml
@@ -2,7 +2,7 @@ COPS_CONFIGURATION_FIRST_STEP_TITLE: "COPS configuration"
EXISTING_CALIBRE_DIRECTORY_DESCRIPTION: "Existing Calibre library directory."
EXISTING_CALIBRE_DIRECTORY_LABEL: "Share name"
-EXISTING_CALIBRE_DIRECTORY_VALIDATION_ERROR_TEXT: "Subdirectories are not supported."
+EXISTING_CALIBRE_DIRECTORY_VALIDATION_ERROR_TEXT: "The shared folder name contains invalid characters or starts/ends with a space."
COPS_CATALOG_TITLE_DESCRIPTION: "Catalog title."
COPS_CATALOG_TITLE_LABEL: "Catalog title"
diff --git a/spk/cops/src/wizard_templates/install_uifile_fre.yml b/spk/cops/src/wizard_templates/install_uifile_fre.yml
index 0d24e4f0b37..d70cddff7a7 100644
--- a/spk/cops/src/wizard_templates/install_uifile_fre.yml
+++ b/spk/cops/src/wizard_templates/install_uifile_fre.yml
@@ -2,7 +2,7 @@ COPS_CONFIGURATION_FIRST_STEP_TITLE: "Configuration de COPS"
EXISTING_CALIBRE_DIRECTORY_DESCRIPTION: "Répertoire existant contenant une bibliothèque Calibre."
EXISTING_CALIBRE_DIRECTORY_LABEL: "Partager le nom"
-EXISTING_CALIBRE_DIRECTORY_VALIDATION_ERROR_TEXT: "Les sous-répertoires ne sont pas pris en charge."
+EXISTING_CALIBRE_DIRECTORY_VALIDATION_ERROR_TEXT: "Le nom du dossier partagé contient des caractères non valides ou commence/se termine par un espace."
COPS_CATALOG_TITLE_DESCRIPTION: "Titre du catalogue."
COPS_CATALOG_TITLE_LABEL: "Titre du catalogue"