From 9082ccd66998f576684e380a8d01b82668370b78 Mon Sep 17 00:00:00 2001 From: fgma Date: Wed, 4 Jan 2023 21:58:14 +0100 Subject: [PATCH 01/15] restic rest-server 0.11.0 initial package --- cross/rest-server/Makefile | 24 ++++ cross/rest-server/PLIST | 1 + cross/rest-server/digests | 3 + spk/rest-server/Makefile | 29 ++++ spk/rest-server/src/logo.png | Bin 0 -> 170435 bytes spk/rest-server/src/rest-server.sc | 5 + spk/rest-server/src/service-setup.sh | 50 +++++++ spk/rest-server/src/wizard/install_uifile | 128 +++++++++++++++++ spk/rest-server/src/wizard/upgrade_uifile.sh | 143 +++++++++++++++++++ 9 files changed, 383 insertions(+) create mode 100644 cross/rest-server/Makefile create mode 100644 cross/rest-server/PLIST create mode 100644 cross/rest-server/digests create mode 100644 spk/rest-server/Makefile create mode 100644 spk/rest-server/src/logo.png create mode 100644 spk/rest-server/src/rest-server.sc create mode 100644 spk/rest-server/src/service-setup.sh create mode 100644 spk/rest-server/src/wizard/install_uifile create mode 100644 spk/rest-server/src/wizard/upgrade_uifile.sh diff --git a/cross/rest-server/Makefile b/cross/rest-server/Makefile new file mode 100644 index 00000000000..5fbd974899e --- /dev/null +++ b/cross/rest-server/Makefile @@ -0,0 +1,24 @@ +PKG_NAME = rest-server +PKG_VERS = 0.11.0 +PKG_COMMIT_ID = 4741eec619a2b61d251ffbd0acce028620067579 +PKG_EXT = tar.gz +PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) +PKG_DIST_SITE = https://github.com//restic/rest-server/releases/download/v$(PKG_VERS) +PKG_DIST_FILE = $(PKG_DIST_NAME) +EXTRACT_PATH = $(WORK_DIR)/$(PKG_NAME) +PKG_DIR = $(PKG_NAME) + +BUILD_DEPENDS = native/go + +HOMEPAGE = https://restic.net/ +COMMENT = Rest Server is a high performance HTTP server that implements restic's REST backend API. +LICENSE = BSD 2-Clause License + +GO_SRC_DIR = $(EXTRACT_PATH) +GO_BIN_DIR = $(GO_SRC_DIR)/$(PKG_NAME) + +ENV += CGO_ENABLED=0 + +GO_BUILD_ARGS = ./cmd/rest-server + +include ../../mk/spksrc.cross-go.mk diff --git a/cross/rest-server/PLIST b/cross/rest-server/PLIST new file mode 100644 index 00000000000..1fd39aa58c8 --- /dev/null +++ b/cross/rest-server/PLIST @@ -0,0 +1 @@ +bin:bin/rest-server diff --git a/cross/rest-server/digests b/cross/rest-server/digests new file mode 100644 index 00000000000..c417978d25b --- /dev/null +++ b/cross/rest-server/digests @@ -0,0 +1,3 @@ +rest-server-0.11.0.tar.gz SHA1 beba01ecbcb331e9d6e6ab26350d1a13ad096896 +rest-server-0.11.0.tar.gz SHA256 b9081748e0f32d6095e9b5fadad1adcecfad683e62b67c7e8de388e17791ea35 +rest-server-0.11.0.tar.gz MD5 8e5040acbb8f92acd1554e073fc8462d diff --git a/spk/rest-server/Makefile b/spk/rest-server/Makefile new file mode 100644 index 00000000000..b1bfadec91d --- /dev/null +++ b/spk/rest-server/Makefile @@ -0,0 +1,29 @@ +SPK_NAME = rest-server +SPK_VERS = 0.11.0 +SPK_REV = 1 +SPK_ICON = src/logo.png +DSM_UI_DIR = app + +DEPENDS = cross/rest-server + +UNSUPPORTED_ARCHS = $(PPC_ARCHS) + +MAINTAINER = fgma +DESCRIPTION = Rest Server is a high performance HTTP server that implements restic's REST backend API. +DISPLAY_NAME = Restic rest-server +CHANGELOG = "Initial release." +LICENSE_FILE = $(WORK_DIR)/rest-server/LICENSE +HOMEPAGE = https://restic.net/ +LICENSE = BSD 2-Clause License + +WIZARDS_DIR = src/wizard + +STARTABLE = yes +SERVICE_USER = auto +SERVICE_SETUP = src/service-setup.sh +SERVICE_WIZARD_SHARE = wizard_data_directory +USE_DATA_SHARE_WORKER = yes +FWPORTS = src/rest-server.sc +ADMIN_PORT = 8500 + +include ../../mk/spksrc.spk.mk diff --git a/spk/rest-server/src/logo.png b/spk/rest-server/src/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..21c5884bc1fca9c907ad52f6740012689259d83b GIT binary patch literal 170435 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%0A8Yw?F@>JL6gP<; zBZ^@8Wdi@W*^ePMS@VJ&B|w8-(ls%1Du>?NmacIT_?*)*6Bw%ROvW!pxXmf z7~lSl~Jz!rcuaT_|OhYZkTr6J5oM-us5}-0{%luB0IYyTuk6EiIxu z`_~|8yPq{dd8_7l)=OI&ELci?>++4Dw)rHhpg|}jF%a;aoc$6DAAKAEV{<;&Q(ZyQ8 z$PzS`yu7F(es4rZ63f{#^SGNTWZF1)lHW~8Ah^3Zu;N)*=mX;6LcJZy3$XQ3)6tPJ zF-3z-k)Zacp`|6Iqoad(`4?v%Bd;)h}L?d9rz`<2@1 zWT9rhE50W<&216#xv4)s|303J*oxcKc&7ev9)g0{B3L!dNYsM*`4>w)R zn;!eDw{aE6DJ#w%37V^tHbFwLiO1 zn-{Xs!#3wVLY(^wt6h@|@5_DTmt>CIkOko|U9Sht=E`smtJK9t^KWIDxIrv+h}6T5 zg0%?;76RD$g|w`_fgcNI)Ew``kTuwwL-&-w#+ZgWYo*2TZV^mcFDeTUMP1+z_|TSuLZ^{@w; zjhvUKISON_?vaD7Uq9@j5dVmf-+JjI1YuQ%JaMF;1&-e~p)(eDt?|Lv_u(J1yI6`F zKvw25j9yyezg&*Lj1Zl;Q&nmlGTFDMho^HG^Ma{R=~Dgl%F5>txIIUX*_QZ3M@M

9Kp`B6@N*E8R*4l5Iy(<&%wsr88s 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

`T9D#Sp}fs+09MkQz(8| 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 literal 0 HcmV?d00001 diff --git a/spk/rest-server/src/rest-server.sc b/spk/rest-server/src/rest-server.sc new file mode 100644 index 00000000000..c5646bcfd23 --- /dev/null +++ b/spk/rest-server/src/rest-server.sc @@ -0,0 +1,5 @@ +[restic-rest-server] +title="Restic rest-server" +desc="Restic rest-server" +port_forward="yes" +dst.ports="8500/tcp" diff --git a/spk/rest-server/src/service-setup.sh b/spk/rest-server/src/service-setup.sh new file mode 100644 index 00000000000..9314a5b5dc1 --- /dev/null +++ b/spk/rest-server/src/service-setup.sh @@ -0,0 +1,50 @@ + +PATH="${SYNOPKG_PKGDEST}/bin:${PATH}" +GROUP="sc-rest-server" + +INST_ETC="/var/packages/${SYNOPKG_PKGNAME}/etc" +INST_VARIABLES="${INST_ETC}/installer-variables" + +# Reload wizard variables stored by postinst +if [ -r "${INST_VARIABLES}" ]; then + # we cannot source the file to reload the variables, when values have special characters like <, >, ... + for _line in $(cat "${INST_VARIABLES}"); do + _key="$(echo ${_line} | awk -F'=' '{print $1}')" + _value="$(echo ${_line} | awk -F'=' '{print $2}')" + declare "${_key}=${_value}" + done +fi + +ARGS="" + +if [ "${WIZARD_APPEND_ONLY}" == "true" ]; then + ARGS="${ARGS} --append-only" +fi +if [ "${WIZARD_PRIVATE_REPOS}" == "true" ]; then + ARGS="${ARGS} --private-repos" +fi +if [ "${WIZARD_PROMETHEUS}" == "true" ]; then + ARGS="${ARGS} --prometheus" + + if [ "${WIZARD_PROMETHEUS_NO_AUTH}" == "true" ]; then + ARGS="${ARGS} --prometheus-no-auth" + fi +fi + +PORT=8500 + +SERVICE_COMMAND="${SYNOPKG_PKGDEST}/bin/rest-server --listen ":${PORT}" --path ${WIZARD_DATA_VOLUME}/${WIZARD_DATA_DIRECTORY} ${ARGS}" +SVC_BACKGROUND=y +SVC_WRITE_PID=y + + +service_postinst () +{ + touch ${wizard_data_volume}/${wizard_data_directory}/.htpasswd + echo WIZARD_DATA_VOLUME="${wizard_data_volume}" >> ${INST_VARIABLES} + echo WIZARD_DATA_DIRECTORY="${wizard_data_directory}" >> ${INST_VARIABLES} + echo WIZARD_APPEND_ONLY="${wizard_append_only}" >> ${INST_VARIABLES} + echo WIZARD_PRIVATE_REPOS="${wizard_private_repos}" >> ${INST_VARIABLES} + echo WIZARD_PROMETHEUS="${wizard_prometheus}" >> ${INST_VARIABLES} + echo WIZARD_PROMETHEUS_NO_AUTH="${wizard_prometheus_no_auth}" >> ${INST_VARIABLES} +} diff --git a/spk/rest-server/src/wizard/install_uifile b/spk/rest-server/src/wizard/install_uifile new file mode 100644 index 00000000000..cd3de75ed86 --- /dev/null +++ b/spk/rest-server/src/wizard/install_uifile @@ -0,0 +1,128 @@ +[ + { + "step_title": "rest-server configuration", + "items": [ + { + "type": "combobox", + "desc": "Please select a volume to use for the data folder", + "subitems": [ + { + "key": "wizard_data_volume", + "desc": "Volume name", + "displayField": "display_name", + "valueField": "volume_path", + "editable": false, + "mode": "remote", + "api_store": { + "api": "SYNO.Core.Storage.Volume", + "method": "list", + "version": 1, + "baseParams": { + "limit": -1, + "offset": 0, + "location": "internal" + }, + "root": "volumes", + "idProperty": "volume_path", + "fields": [ + "display_name", + "volume_path" + ] + }, + "validator": { + "fn": "{console.log(arguments);return true;}" + } + } + ] + }, + { + "type": "textfield", + "desc": "Data shared folder (using the volume chosen above)", + "subitems": [ + { + "key": "wizard_data_directory", + "desc": "Data shared folder", + "defaultValue": "rest-server", + "validator": { + "allowBlank": false, + "regex": { + "expr": "/^[\\w _-]+$/", + "errorText": "Subdirectories are not supported." + } + } + } + ] + }, + { + "desc": "The folder will be created on demand as regular DSM shared folder for the service user sc-rest-server. For details about the DSM permissions see Permission Management.

" + }, + { + "desc": "Please define the following settings for the rest-server:" + }, + { + "type": "singleselect", + "desc": "Append only mode", + "subitems": [ + { + "key": "wizard_append_only", + "desc": "enabled", + "defaultValue": true + }, + { + "key": "", + "desc": "disabled", + "defaultValue": false + } + ] + }, + { + "type": "singleselect", + "desc": "Private repositories", + "subitems": [ + { + "key": "wizard_private_repos", + "desc": "enable", + "defaultValue": true + }, + { + "key": "", + "desc": "disabled", + "defaultValue": false + } + ] + }, + { + "type": "singleselect", + "desc": "Prometheus", + "subitems": [ + { + "key": "wizard_prometheus", + "desc": "enable", + "defaultValue": true + }, + { + "key": "", + "desc": "disabled", + "defaultValue": false + } + ] + }, + { + "type": "singleselect", + "desc": "Prometheus no auth", + "subitems": [ + { + "key": "wizard_prometheus_no_auth", + "desc": "enable", + "defaultValue": false + }, + { + "key": "", + "desc": "disabled", + "defaultValue": true + } + ] + } + ] + } +] \ No newline at end of file diff --git a/spk/rest-server/src/wizard/upgrade_uifile.sh b/spk/rest-server/src/wizard/upgrade_uifile.sh new file mode 100644 index 00000000000..53fd9537587 --- /dev/null +++ b/spk/rest-server/src/wizard/upgrade_uifile.sh @@ -0,0 +1,143 @@ +#!/bin/sh + +INST_ETC="/var/packages/${SYNOPKG_PKGNAME}/etc" +INST_VARIABLES="${INST_ETC}/installer-variables" + +# Reload wizard variables stored by postinst +if [ -r "${INST_VARIABLES}" ]; then + # we cannot source the file to reload the variables, when values have special characters like <, >, ... + for _line in $(cat "${INST_VARIABLES}"); do + _key="$(echo ${_line} | awk -F'=' '{print $1}')" + _value="$(echo ${_line} | awk -F'=' '{print $2}')" + declare "${_key}=${_value}" + done +fi + +cat < $SYNOPKG_TEMP_LOGFILE +[ + { + "step_title": "rest-server configuration", + "items": [ + { + "type": "combobox", + "desc": "Please select a volume to use for the data folder", + "subitems": [ + { + "key": "wizard_data_volume", + "desc": "Volume name", + "defaultValue": "${WIZARD_DATA_VOLUME}", + "displayField": "display_name", + "valueField": "volume_path", + "editable": false, + "mode": "remote", + "api_store": { + "api": "SYNO.Core.Storage.Volume", + "method": "list", + "version": 1, + "baseParams": { + "limit": -1, + "offset": 0, + "location": "internal" + }, + "root": "volumes", + "idProperty": "volume_path", + "fields": [ + "display_name", + "volume_path" + ] + }, + "validator": { + "fn": "{console.log(arguments);return true;}" + } + } + ] + }, + { + "type": "textfield", + "desc": "Data shared folder (using the volume chosen above)", + "subitems": [ + { + "key": "wizard_data_directory", + "desc": "Data shared folder", + "defaultValue": "${WIZARD_DATA_DIRECTORY}", + "validator": { + "allowBlank": false, + "regex": { + "expr": "/^[\\\\w _-]+$/", + "errorText": "Subdirectories are not supported." + } + } + } + ] + }, + { + "desc": "The folder will be created on demand as regular DSM shared folder for the service user sc-rest-server. For details about the DSM permissions see Permission Management.

" + }, + { + "desc": "Please define the following settings for the rest-server:" + }, + { + "type": "singleselect", + "desc": "Append only mode", + "subitems": [ + { + "key": "wizard_append_only", + "desc": "enabled", + "defaultValue": "${WIZARD_APPEND_ONLY}" + }, + { + "key": "", + "desc": "disabled" + } + ] + }, + { + "type": "singleselect", + "desc": "Private repositories", + "subitems": [ + { + "key": "wizard_private_repos", + "desc": "enable", + "defaultValue": "${WIZARD_PRIVATE_REPOS}" + }, + { + "key": "", + "desc": "disabled" + } + ] + }, + { + "type": "singleselect", + "desc": "Prometheus", + "subitems": [ + { + "key": "wizard_prometheus", + "desc": "enable", + "defaultValue": "${WIZARD_PROMETHEUS}" + }, + { + "key": "", + "desc": "disabled" + } + ] + }, + { + "type": "singleselect", + "desc": "Prometheus no auth", + "subitems": [ + { + "key": "wizard_prometheus_no_auth", + "desc": "enable", + "defaultValue": "${WIZARD_PROMETHEUS_NO_AUTH}" + }, + { + "key": "", + "desc": "disabled" + } + ] + } + ] + } +] +EOF +exit 0 From f3294202021fcf898772f02857ea01c2b9bad0b6 Mon Sep 17 00:00:00 2001 From: fgma Date: Wed, 4 Jan 2023 23:00:23 +0100 Subject: [PATCH 02/15] rest-server: fix package upgrade --- spk/rest-server/src/wizard/upgrade_uifile.sh | 36 +++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/spk/rest-server/src/wizard/upgrade_uifile.sh b/spk/rest-server/src/wizard/upgrade_uifile.sh index 53fd9537587..c30bb2c3d03 100644 --- a/spk/rest-server/src/wizard/upgrade_uifile.sh +++ b/spk/rest-server/src/wizard/upgrade_uifile.sh @@ -13,6 +13,22 @@ if [ -r "${INST_VARIABLES}" ]; then done fi +function default_if_true(){ + if [ "$1" == "true" ]; then + echo "true" + else + echo "false" + fi +} + +function default_if_false(){ + if [ "$1" == "false" ]; then + echo "true" + else + echo "false" + fi +} + cat < $SYNOPKG_TEMP_LOGFILE [ { @@ -83,11 +99,12 @@ cat < $SYNOPKG_TEMP_LOGFILE { "key": "wizard_append_only", "desc": "enabled", - "defaultValue": "${WIZARD_APPEND_ONLY}" + "defaultValue": $(default_if_true ${WIZARD_APPEND_ONLY}) }, { "key": "", - "desc": "disabled" + "desc": "disabled", + "defaultValue": $(default_if_false ${WIZARD_APPEND_ONLY}) } ] }, @@ -98,11 +115,12 @@ cat < $SYNOPKG_TEMP_LOGFILE { "key": "wizard_private_repos", "desc": "enable", - "defaultValue": "${WIZARD_PRIVATE_REPOS}" + "defaultValue": $(default_if_true ${WIZARD_PRIVATE_REPOS}) }, { "key": "", - "desc": "disabled" + "desc": "disabled", + "defaultValue": $(default_if_false ${WIZARD_PRIVATE_REPOS}) } ] }, @@ -113,11 +131,12 @@ cat < $SYNOPKG_TEMP_LOGFILE { "key": "wizard_prometheus", "desc": "enable", - "defaultValue": "${WIZARD_PROMETHEUS}" + "defaultValue": $(default_if_true ${WIZARD_PROMETHEUS}) }, { "key": "", - "desc": "disabled" + "desc": "disabled", + "defaultValue": $(default_if_false ${WIZARD_PROMETHEUS}) } ] }, @@ -128,11 +147,12 @@ cat < $SYNOPKG_TEMP_LOGFILE { "key": "wizard_prometheus_no_auth", "desc": "enable", - "defaultValue": "${WIZARD_PROMETHEUS_NO_AUTH}" + "defaultValue": $(default_if_true ${WIZARD_PROMETHEUS_NO_AUTH}) }, { "key": "", - "desc": "disabled" + "desc": "disabled", + "defaultValue": $(default_if_false ${WIZARD_PROMETHEUS_NO_AUTH}) } ] } From ac34467f6e9f720a35e832417c7fa8c3122c11f0 Mon Sep 17 00:00:00 2001 From: fgma Date: Thu, 5 Jan 2023 20:53:54 +0100 Subject: [PATCH 03/15] rest-server: makefile cleanup --- cross/rest-server/Makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/cross/rest-server/Makefile b/cross/rest-server/Makefile index 5fbd974899e..5d4071341a5 100644 --- a/cross/rest-server/Makefile +++ b/cross/rest-server/Makefile @@ -1,10 +1,8 @@ PKG_NAME = rest-server PKG_VERS = 0.11.0 -PKG_COMMIT_ID = 4741eec619a2b61d251ffbd0acce028620067579 PKG_EXT = tar.gz PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://github.com//restic/rest-server/releases/download/v$(PKG_VERS) -PKG_DIST_FILE = $(PKG_DIST_NAME) EXTRACT_PATH = $(WORK_DIR)/$(PKG_NAME) PKG_DIR = $(PKG_NAME) From 820be07e03eda6f887934622dc4964fc36b0efd2 Mon Sep 17 00:00:00 2001 From: fgma Date: Thu, 5 Jan 2023 21:38:10 +0100 Subject: [PATCH 04/15] rest-server: rename to restic-rest-server --- cross/rest-server/PLIST | 1 - cross/{rest-server => restic-rest-server}/Makefile | 7 ++++--- cross/restic-rest-server/PLIST | 1 + cross/{rest-server => restic-rest-server}/digests | 0 spk/{rest-server => restic-rest-server}/Makefile | 8 ++++---- .../src/logo.png | Bin .../src/restic-rest-server.sc} | 0 .../src/service-setup.sh | 4 ++-- .../src/wizard/install_uifile | 8 ++++---- .../src/wizard/upgrade_uifile.sh | 6 +++--- 10 files changed, 18 insertions(+), 17 deletions(-) delete mode 100644 cross/rest-server/PLIST rename cross/{rest-server => restic-rest-server}/Makefile (69%) create mode 100644 cross/restic-rest-server/PLIST rename cross/{rest-server => restic-rest-server}/digests (100%) rename spk/{rest-server => restic-rest-server}/Makefile (78%) rename spk/{rest-server => restic-rest-server}/src/logo.png (100%) rename spk/{rest-server/src/rest-server.sc => restic-rest-server/src/restic-rest-server.sc} (100%) rename spk/{rest-server => restic-rest-server}/src/service-setup.sh (90%) rename spk/{rest-server => restic-rest-server}/src/wizard/install_uifile (89%) rename spk/{rest-server => restic-rest-server}/src/wizard/upgrade_uifile.sh (92%) diff --git a/cross/rest-server/PLIST b/cross/rest-server/PLIST deleted file mode 100644 index 1fd39aa58c8..00000000000 --- a/cross/rest-server/PLIST +++ /dev/null @@ -1 +0,0 @@ -bin:bin/rest-server diff --git a/cross/rest-server/Makefile b/cross/restic-rest-server/Makefile similarity index 69% rename from cross/rest-server/Makefile rename to cross/restic-rest-server/Makefile index 5d4071341a5..01af261d029 100644 --- a/cross/rest-server/Makefile +++ b/cross/restic-rest-server/Makefile @@ -1,8 +1,9 @@ -PKG_NAME = rest-server +PKG_NAME = restic-rest-server +PKG_REAL_NAME = rest-server PKG_VERS = 0.11.0 PKG_EXT = tar.gz -PKG_DIST_NAME = $(PKG_NAME)-$(PKG_VERS).$(PKG_EXT) -PKG_DIST_SITE = https://github.com//restic/rest-server/releases/download/v$(PKG_VERS) +PKG_DIST_NAME = $(PKG_REAL_NAME)-$(PKG_VERS).$(PKG_EXT) +PKG_DIST_SITE = https://github.com/restic/rest-server/releases/download/v$(PKG_VERS) EXTRACT_PATH = $(WORK_DIR)/$(PKG_NAME) PKG_DIR = $(PKG_NAME) diff --git a/cross/restic-rest-server/PLIST b/cross/restic-rest-server/PLIST new file mode 100644 index 00000000000..1132f0ca894 --- /dev/null +++ b/cross/restic-rest-server/PLIST @@ -0,0 +1 @@ +bin:bin/restic-rest-server diff --git a/cross/rest-server/digests b/cross/restic-rest-server/digests similarity index 100% rename from cross/rest-server/digests rename to cross/restic-rest-server/digests diff --git a/spk/rest-server/Makefile b/spk/restic-rest-server/Makefile similarity index 78% rename from spk/rest-server/Makefile rename to spk/restic-rest-server/Makefile index b1bfadec91d..73687f55e61 100644 --- a/spk/rest-server/Makefile +++ b/spk/restic-rest-server/Makefile @@ -1,10 +1,10 @@ -SPK_NAME = rest-server +SPK_NAME = restic-rest-server SPK_VERS = 0.11.0 SPK_REV = 1 SPK_ICON = src/logo.png DSM_UI_DIR = app -DEPENDS = cross/rest-server +DEPENDS = cross/restic-rest-server UNSUPPORTED_ARCHS = $(PPC_ARCHS) @@ -12,7 +12,7 @@ MAINTAINER = fgma DESCRIPTION = Rest Server is a high performance HTTP server that implements restic's REST backend API. DISPLAY_NAME = Restic rest-server CHANGELOG = "Initial release." -LICENSE_FILE = $(WORK_DIR)/rest-server/LICENSE +LICENSE_FILE = $(WORK_DIR)/restic-rest-server/LICENSE HOMEPAGE = https://restic.net/ LICENSE = BSD 2-Clause License @@ -23,7 +23,7 @@ SERVICE_USER = auto SERVICE_SETUP = src/service-setup.sh SERVICE_WIZARD_SHARE = wizard_data_directory USE_DATA_SHARE_WORKER = yes -FWPORTS = src/rest-server.sc +FWPORTS = src/restic-rest-server.sc ADMIN_PORT = 8500 include ../../mk/spksrc.spk.mk diff --git a/spk/rest-server/src/logo.png b/spk/restic-rest-server/src/logo.png similarity index 100% rename from spk/rest-server/src/logo.png rename to spk/restic-rest-server/src/logo.png diff --git a/spk/rest-server/src/rest-server.sc b/spk/restic-rest-server/src/restic-rest-server.sc similarity index 100% rename from spk/rest-server/src/rest-server.sc rename to spk/restic-rest-server/src/restic-rest-server.sc diff --git a/spk/rest-server/src/service-setup.sh b/spk/restic-rest-server/src/service-setup.sh similarity index 90% rename from spk/rest-server/src/service-setup.sh rename to spk/restic-rest-server/src/service-setup.sh index 9314a5b5dc1..f1e79767354 100644 --- a/spk/rest-server/src/service-setup.sh +++ b/spk/restic-rest-server/src/service-setup.sh @@ -1,6 +1,6 @@ PATH="${SYNOPKG_PKGDEST}/bin:${PATH}" -GROUP="sc-rest-server" +GROUP="sc-restic-rest-server" INST_ETC="/var/packages/${SYNOPKG_PKGNAME}/etc" INST_VARIABLES="${INST_ETC}/installer-variables" @@ -33,7 +33,7 @@ fi PORT=8500 -SERVICE_COMMAND="${SYNOPKG_PKGDEST}/bin/rest-server --listen ":${PORT}" --path ${WIZARD_DATA_VOLUME}/${WIZARD_DATA_DIRECTORY} ${ARGS}" +SERVICE_COMMAND="${SYNOPKG_PKGDEST}/bin/restic-rest-server --listen ":${PORT}" --path ${WIZARD_DATA_VOLUME}/${WIZARD_DATA_DIRECTORY} ${ARGS}" SVC_BACKGROUND=y SVC_WRITE_PID=y diff --git a/spk/rest-server/src/wizard/install_uifile b/spk/restic-rest-server/src/wizard/install_uifile similarity index 89% rename from spk/rest-server/src/wizard/install_uifile rename to spk/restic-rest-server/src/wizard/install_uifile index cd3de75ed86..ee4bfa652bc 100644 --- a/spk/rest-server/src/wizard/install_uifile +++ b/spk/restic-rest-server/src/wizard/install_uifile @@ -1,6 +1,6 @@ [ { - "step_title": "rest-server configuration", + "step_title": "Restic rest-server configuration", "items": [ { "type": "combobox", @@ -42,7 +42,7 @@ { "key": "wizard_data_directory", "desc": "Data shared folder", - "defaultValue": "rest-server", + "defaultValue": "restic-rest-server", "validator": { "allowBlank": false, "regex": { @@ -54,10 +54,10 @@ ] }, { - "desc": "The folder will be created on demand as regular DSM shared folder for the service user sc-rest-server. For details about the DSM permissions see Permission Management.

" + "desc": "The folder will be created on demand as regular DSM shared folder for the service user sc-restic-rest-server. For details about the DSM permissions see Permission Management.

" }, { - "desc": "Please define the following settings for the rest-server:" + "desc": "Please define the following settings for restic rest-server:" }, { "type": "singleselect", diff --git a/spk/rest-server/src/wizard/upgrade_uifile.sh b/spk/restic-rest-server/src/wizard/upgrade_uifile.sh similarity index 92% rename from spk/rest-server/src/wizard/upgrade_uifile.sh rename to spk/restic-rest-server/src/wizard/upgrade_uifile.sh index c30bb2c3d03..6514be703c7 100644 --- a/spk/rest-server/src/wizard/upgrade_uifile.sh +++ b/spk/restic-rest-server/src/wizard/upgrade_uifile.sh @@ -32,7 +32,7 @@ function default_if_false(){ cat < $SYNOPKG_TEMP_LOGFILE [ { - "step_title": "rest-server configuration", + "step_title": "Restic rest-server configuration", "items": [ { "type": "combobox", @@ -87,10 +87,10 @@ cat < $SYNOPKG_TEMP_LOGFILE ] }, { - "desc": "The folder will be created on demand as regular DSM shared folder for the service user sc-rest-server. For details about the DSM permissions see Permission Management.

" + "desc": "The folder will be created on demand as regular DSM shared folder for the service user sc-restic-rest-server. For details about the DSM permissions see Permission Management.

" }, { - "desc": "Please define the following settings for the rest-server:" + "desc": "Please define the following settings for restic rest-server:" }, { "type": "singleselect", From f9d466b763c7658f86611fc5fe2e8e9bbf445da1 Mon Sep 17 00:00:00 2001 From: fgma Date: Thu, 5 Jan 2023 21:58:28 +0100 Subject: [PATCH 05/15] restic-rest-server: fix definition of SERVICE_PORT --- spk/restic-rest-server/Makefile | 3 ++- spk/restic-rest-server/src/service-setup.sh | 4 +--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/spk/restic-rest-server/Makefile b/spk/restic-rest-server/Makefile index 73687f55e61..f8c2e6ef31d 100644 --- a/spk/restic-rest-server/Makefile +++ b/spk/restic-rest-server/Makefile @@ -24,6 +24,7 @@ SERVICE_SETUP = src/service-setup.sh SERVICE_WIZARD_SHARE = wizard_data_directory USE_DATA_SHARE_WORKER = yes FWPORTS = src/restic-rest-server.sc -ADMIN_PORT = 8500 +SERVICE_PORT = 8500 +NO_SERVICE_SHORTCUT = yes include ../../mk/spksrc.spk.mk diff --git a/spk/restic-rest-server/src/service-setup.sh b/spk/restic-rest-server/src/service-setup.sh index f1e79767354..6212fa20d9a 100644 --- a/spk/restic-rest-server/src/service-setup.sh +++ b/spk/restic-rest-server/src/service-setup.sh @@ -31,9 +31,7 @@ if [ "${WIZARD_PROMETHEUS}" == "true" ]; then fi fi -PORT=8500 - -SERVICE_COMMAND="${SYNOPKG_PKGDEST}/bin/restic-rest-server --listen ":${PORT}" --path ${WIZARD_DATA_VOLUME}/${WIZARD_DATA_DIRECTORY} ${ARGS}" +SERVICE_COMMAND="${SYNOPKG_PKGDEST}/bin/restic-rest-server --listen ":${SERVICE_PORT}" --path ${WIZARD_DATA_VOLUME}/${WIZARD_DATA_DIRECTORY} ${ARGS}" SVC_BACKGROUND=y SVC_WRITE_PID=y From dc0d2d61254435e9fd14b03dccf9ff0d5c34411a Mon Sep 17 00:00:00 2001 From: fgma Date: Thu, 5 Jan 2023 22:39:20 +0100 Subject: [PATCH 06/15] restic-rest-server: use multiselect in wizard --- .../src/wizard/install_uifile | 34 +++-------- .../src/wizard/upgrade_uifile.sh | 58 ++++--------------- 2 files changed, 18 insertions(+), 74 deletions(-) diff --git a/spk/restic-rest-server/src/wizard/install_uifile b/spk/restic-rest-server/src/wizard/install_uifile index ee4bfa652bc..2298439a393 100644 --- a/spk/restic-rest-server/src/wizard/install_uifile +++ b/spk/restic-rest-server/src/wizard/install_uifile @@ -60,66 +60,46 @@ "desc": "Please define the following settings for restic rest-server:" }, { - "type": "singleselect", + "type": "multiselect", "desc": "Append only mode", "subitems": [ { "key": "wizard_append_only", "desc": "enabled", "defaultValue": true - }, - { - "key": "", - "desc": "disabled", - "defaultValue": false } ] }, { - "type": "singleselect", + "type": "multiselect", "desc": "Private repositories", "subitems": [ { "key": "wizard_private_repos", - "desc": "enable", + "desc": "enabled", "defaultValue": true - }, - { - "key": "", - "desc": "disabled", - "defaultValue": false } ] }, { - "type": "singleselect", + "type": "multiselect", "desc": "Prometheus", "subitems": [ { "key": "wizard_prometheus", - "desc": "enable", + "desc": "enabled", "defaultValue": true - }, - { - "key": "", - "desc": "disabled", - "defaultValue": false } ] }, { - "type": "singleselect", + "type": "multiselect", "desc": "Prometheus no auth", "subitems": [ { "key": "wizard_prometheus_no_auth", - "desc": "enable", + "desc": "enabled", "defaultValue": false - }, - { - "key": "", - "desc": "disabled", - "defaultValue": true } ] } diff --git a/spk/restic-rest-server/src/wizard/upgrade_uifile.sh b/spk/restic-rest-server/src/wizard/upgrade_uifile.sh index 6514be703c7..8a443fc4f28 100644 --- a/spk/restic-rest-server/src/wizard/upgrade_uifile.sh +++ b/spk/restic-rest-server/src/wizard/upgrade_uifile.sh @@ -13,22 +13,6 @@ if [ -r "${INST_VARIABLES}" ]; then done fi -function default_if_true(){ - if [ "$1" == "true" ]; then - echo "true" - else - echo "false" - fi -} - -function default_if_false(){ - if [ "$1" == "false" ]; then - echo "true" - else - echo "false" - fi -} - cat < $SYNOPKG_TEMP_LOGFILE [ { @@ -93,66 +77,46 @@ cat < $SYNOPKG_TEMP_LOGFILE "desc": "Please define the following settings for restic rest-server:" }, { - "type": "singleselect", + "type": "multiselect", "desc": "Append only mode", "subitems": [ { "key": "wizard_append_only", "desc": "enabled", - "defaultValue": $(default_if_true ${WIZARD_APPEND_ONLY}) - }, - { - "key": "", - "desc": "disabled", - "defaultValue": $(default_if_false ${WIZARD_APPEND_ONLY}) + "defaultValue": ${WIZARD_APPEND_ONLY} } ] }, { - "type": "singleselect", + "type": "multiselect", "desc": "Private repositories", "subitems": [ { "key": "wizard_private_repos", - "desc": "enable", - "defaultValue": $(default_if_true ${WIZARD_PRIVATE_REPOS}) - }, - { - "key": "", - "desc": "disabled", - "defaultValue": $(default_if_false ${WIZARD_PRIVATE_REPOS}) + "desc": "enabled", + "defaultValue": ${WIZARD_PRIVATE_REPOS} } ] }, { - "type": "singleselect", + "type": "multiselect", "desc": "Prometheus", "subitems": [ { "key": "wizard_prometheus", - "desc": "enable", - "defaultValue": $(default_if_true ${WIZARD_PROMETHEUS}) - }, - { - "key": "", - "desc": "disabled", - "defaultValue": $(default_if_false ${WIZARD_PROMETHEUS}) + "desc": "enabled", + "defaultValue": ${WIZARD_PROMETHEUS} } ] }, { - "type": "singleselect", + "type": "multiselect", "desc": "Prometheus no auth", "subitems": [ { "key": "wizard_prometheus_no_auth", - "desc": "enable", - "defaultValue": $(default_if_true ${WIZARD_PROMETHEUS_NO_AUTH}) - }, - { - "key": "", - "desc": "disabled", - "defaultValue": $(default_if_false ${WIZARD_PROMETHEUS_NO_AUTH}) + "desc": "enabled", + "defaultValue": ${WIZARD_PROMETHEUS_NO_AUTH} } ] } From 5c09da40be530ffb33f2693db5dfc80edc867429 Mon Sep 17 00:00:00 2001 From: fgma Date: Fri, 6 Jan 2023 14:53:10 +0100 Subject: [PATCH 07/15] restic-rest-server: additional note on how to configure auth --- spk/restic-rest-server/src/wizard/install_uifile | 2 +- spk/restic-rest-server/src/wizard/upgrade_uifile.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spk/restic-rest-server/src/wizard/install_uifile b/spk/restic-rest-server/src/wizard/install_uifile index 2298439a393..3717c54fcc2 100644 --- a/spk/restic-rest-server/src/wizard/install_uifile +++ b/spk/restic-rest-server/src/wizard/install_uifile @@ -57,7 +57,7 @@ "desc": "The folder will be created on demand as regular DSM shared folder for the service user sc-restic-rest-server. For details about the DSM permissions see Permission Management.

" }, { - "desc": "Please define the following settings for restic rest-server:" + "desc": "The .htpasswd file is located at the root of the shared folder defined above. Add users acccording to the official documentation. Please define the following settings for restic rest-server:" }, { "type": "multiselect", diff --git a/spk/restic-rest-server/src/wizard/upgrade_uifile.sh b/spk/restic-rest-server/src/wizard/upgrade_uifile.sh index 8a443fc4f28..e34d7e32a58 100644 --- a/spk/restic-rest-server/src/wizard/upgrade_uifile.sh +++ b/spk/restic-rest-server/src/wizard/upgrade_uifile.sh @@ -74,7 +74,7 @@ cat < $SYNOPKG_TEMP_LOGFILE "desc": "The folder will be created on demand as regular DSM shared folder for the service user sc-restic-rest-server. For details about the DSM permissions see Permission Management.

" }, { - "desc": "Please define the following settings for restic rest-server:" + "desc": "The .htpasswd file is located at the root of the shared folder defined above. Add users acccording to the official documentation. Please define the following settings for restic rest-server:" }, { "type": "multiselect", From 90398e34904e56ba47bb866043eaf499b19747f2 Mon Sep 17 00:00:00 2001 From: fgma Date: Fri, 6 Jan 2023 15:19:30 +0100 Subject: [PATCH 08/15] restic-rest-server: additional infos for users in wizard --- spk/restic-rest-server/src/wizard/install_uifile | 2 +- spk/restic-rest-server/src/wizard/upgrade_uifile.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spk/restic-rest-server/src/wizard/install_uifile b/spk/restic-rest-server/src/wizard/install_uifile index 3717c54fcc2..4f847a913c4 100644 --- a/spk/restic-rest-server/src/wizard/install_uifile +++ b/spk/restic-rest-server/src/wizard/install_uifile @@ -57,7 +57,7 @@ "desc": "The folder will be created on demand as regular DSM shared folder for the service user sc-restic-rest-server. For details about the DSM permissions see Permission Management.

" }, { - "desc": "The .htpasswd file is located at the root of the shared folder defined above. Add users acccording to the official documentation. Please define the following settings for restic rest-server:" + "desc": "The non-standard port 8500 is used. The .htpasswd file is located at the root of the shared folder defined above. Add users acccording to the official documentation. Please define the following additional settings for restic rest-server:" }, { "type": "multiselect", diff --git a/spk/restic-rest-server/src/wizard/upgrade_uifile.sh b/spk/restic-rest-server/src/wizard/upgrade_uifile.sh index e34d7e32a58..885b642f7cc 100644 --- a/spk/restic-rest-server/src/wizard/upgrade_uifile.sh +++ b/spk/restic-rest-server/src/wizard/upgrade_uifile.sh @@ -74,7 +74,7 @@ cat < $SYNOPKG_TEMP_LOGFILE "desc": "The folder will be created on demand as regular DSM shared folder for the service user sc-restic-rest-server. For details about the DSM permissions see Permission Management.

" }, { - "desc": "The .htpasswd file is located at the root of the shared folder defined above. Add users acccording to the official documentation. Please define the following settings for restic rest-server:" + "desc": "The non-standard port 8500 is used. The .htpasswd file is located at the root of the shared folder defined above. Add users acccording to the official documentation. Please define the following additional settings for restic rest-server:" }, { "type": "multiselect", From 98f1560ba104b3d9adf8f096cc7f78dbfe789bfd Mon Sep 17 00:00:00 2001 From: fgma Date: Sun, 8 Jan 2023 13:14:34 +0100 Subject: [PATCH 09/15] restic-rest-server: use existing function to load wizard vars --- mk/spksrc.service.installer.functions | 12 +++++ spk/restic-rest-server/src/service-setup.sh | 49 ++++++++++----------- 2 files changed, 35 insertions(+), 26 deletions(-) diff --git a/mk/spksrc.service.installer.functions b/mk/spksrc.service.installer.functions index a6ee4894091..72f26288570 100644 --- a/mk/spksrc.service.installer.functions +++ b/mk/spksrc.service.installer.functions @@ -119,6 +119,7 @@ install_python_wheels () # already defined variables are not taken from the file (e.g. variables from wizard) load_variables_from_file () { +<<<<<<< HEAD if [ -n "$1" -a -r "$1" ]; then while read -r _line; do if [ "$(echo ${_line} | grep -v ^[/s]*#)" != "" ]; then @@ -131,6 +132,17 @@ load_variables_from_file () fi done < "$1" fi +======= + # Reload wizard variables stored by postinst + if [ -r "${INST_VARIABLES}" ]; then + # we cannot source the file to reload the variables, when values have special characters like <, >, ... + for _line in $(cat "${INST_VARIABLES}"); do + _key="$(echo ${_line} | awk -F'=' '{print $1}')" + _value="$(echo ${_line} | awk -F'=' '{print $2}')" + declare -g "${_key}=${_value}" + done + fi +>>>>>>> 65187ff2 (restic-rest-server: use existing function to load wizard vars) } diff --git a/spk/restic-rest-server/src/service-setup.sh b/spk/restic-rest-server/src/service-setup.sh index 6212fa20d9a..6aff50dce61 100644 --- a/spk/restic-rest-server/src/service-setup.sh +++ b/spk/restic-rest-server/src/service-setup.sh @@ -2,39 +2,36 @@ PATH="${SYNOPKG_PKGDEST}/bin:${PATH}" GROUP="sc-restic-rest-server" -INST_ETC="/var/packages/${SYNOPKG_PKGNAME}/etc" -INST_VARIABLES="${INST_ETC}/installer-variables" - -# Reload wizard variables stored by postinst -if [ -r "${INST_VARIABLES}" ]; then - # we cannot source the file to reload the variables, when values have special characters like <, >, ... - for _line in $(cat "${INST_VARIABLES}"); do - _key="$(echo ${_line} | awk -F'=' '{print $1}')" - _value="$(echo ${_line} | awk -F'=' '{print $2}')" - declare "${_key}=${_value}" - done +# Source installer variables and functions to be available for service start (and not only during installation) +INST_FUNCTIONS=$(dirname $0)"/functions" +if [ -r "${INST_FUNCTIONS}" ]; then + . "${INST_FUNCTIONS}" fi -ARGS="" +reload_inst_variables -if [ "${WIZARD_APPEND_ONLY}" == "true" ]; then - ARGS="${ARGS} --append-only" -fi -if [ "${WIZARD_PRIVATE_REPOS}" == "true" ]; then - ARGS="${ARGS} --private-repos" -fi -if [ "${WIZARD_PROMETHEUS}" == "true" ]; then - ARGS="${ARGS} --prometheus" +service_prestart () +{ + ARGS="" - if [ "${WIZARD_PROMETHEUS_NO_AUTH}" == "true" ]; then - ARGS="${ARGS} --prometheus-no-auth" + if [ "${WIZARD_APPEND_ONLY}" == "true" ]; then + ARGS="${ARGS} --append-only" fi -fi + if [ "${WIZARD_PRIVATE_REPOS}" == "true" ]; then + ARGS="${ARGS} --private-repos" + fi + if [ "${WIZARD_PROMETHEUS}" == "true" ]; then + ARGS="${ARGS} --prometheus" -SERVICE_COMMAND="${SYNOPKG_PKGDEST}/bin/restic-rest-server --listen ":${SERVICE_PORT}" --path ${WIZARD_DATA_VOLUME}/${WIZARD_DATA_DIRECTORY} ${ARGS}" -SVC_BACKGROUND=y -SVC_WRITE_PID=y + if [ "${WIZARD_PROMETHEUS_NO_AUTH}" == "true" ]; then + ARGS="${ARGS} --prometheus-no-auth" + fi + fi + SERVICE_COMMAND="${SYNOPKG_PKGDEST}/bin/restic-rest-server --listen ":${SERVICE_PORT}" --path ${WIZARD_DATA_VOLUME}/${WIZARD_DATA_DIRECTORY} ${ARGS}" + SVC_BACKGROUND=y + SVC_WRITE_PID=y +} service_postinst () { From 6794b966c2aba95e023b61afab5a188a7d608de1 Mon Sep 17 00:00:00 2001 From: fgma Date: Sun, 5 Mar 2023 15:15:16 +0100 Subject: [PATCH 10/15] restic-rest-server: fixes to work in master branch --- spk/restic-rest-server/src/service-setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spk/restic-rest-server/src/service-setup.sh b/spk/restic-rest-server/src/service-setup.sh index 6aff50dce61..3035e91373d 100644 --- a/spk/restic-rest-server/src/service-setup.sh +++ b/spk/restic-rest-server/src/service-setup.sh @@ -8,7 +8,7 @@ if [ -r "${INST_FUNCTIONS}" ]; then . "${INST_FUNCTIONS}" fi -reload_inst_variables +load_variables_from_file "${INST_VARIABLES}" service_prestart () { From 031088c42b897c65741257d5ff8980b7e68ecacd Mon Sep 17 00:00:00 2001 From: fgma Date: Sun, 5 Mar 2023 15:52:53 +0100 Subject: [PATCH 11/15] resitc-rest-server: fix building with go --- mk/spksrc.cross-go-env.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mk/spksrc.cross-go-env.mk b/mk/spksrc.cross-go-env.mk index 712d359edd7..fd92c000d45 100644 --- a/mk/spksrc.cross-go-env.mk +++ b/mk/spksrc.cross-go-env.mk @@ -37,7 +37,7 @@ ifeq ($(GO_ARCH),) endif # Use -buildvcs=false to disable VCS stamping. -GO_BUILD_ARGS += -buildvcs=false +GO_BUILD_ARGS := -buildvcs=false $(GO_BUILD_ARGS) ifeq ($(strip $(GO_STATIC_BINARIES)),1) GO_BUILD_ARGS += -no-upgrade From a12e2a95fd43fead79a48aa6417be2e6b5e3e41d Mon Sep 17 00:00:00 2001 From: fgma Date: Wed, 15 Mar 2023 22:25:44 +0100 Subject: [PATCH 12/15] restic-rest-server: add support for custom args --- spk/restic-rest-server/src/service-setup.sh | 7 +++++++ spk/restic-rest-server/src/wizard/install_uifile | 2 +- spk/restic-rest-server/src/wizard/upgrade_uifile.sh | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/spk/restic-rest-server/src/service-setup.sh b/spk/restic-rest-server/src/service-setup.sh index 3035e91373d..f011f215b63 100644 --- a/spk/restic-rest-server/src/service-setup.sh +++ b/spk/restic-rest-server/src/service-setup.sh @@ -10,6 +10,8 @@ fi load_variables_from_file "${INST_VARIABLES}" +REST_SERVER_CUSTOM_ARGS_FILE="${WIZARD_DATA_VOLUME}/${WIZARD_DATA_DIRECTORY}/restic_rest_server_custom_args.txt" + service_prestart () { ARGS="" @@ -27,6 +29,10 @@ service_prestart () ARGS="${ARGS} --prometheus-no-auth" fi fi + if [ -f "$REST_SERVER_CUSTOM_ARGS_FILE" -a -r "$REST_SERVER_CUSTOM_ARGS_FILE" ]; then + CUSTOM_ARGS=`cat ${REST_SERVER_CUSTOM_ARGS_FILE}` + ARGS="${ARGS} ${CUSTOM_ARGS}" + fi SERVICE_COMMAND="${SYNOPKG_PKGDEST}/bin/restic-rest-server --listen ":${SERVICE_PORT}" --path ${WIZARD_DATA_VOLUME}/${WIZARD_DATA_DIRECTORY} ${ARGS}" SVC_BACKGROUND=y @@ -36,6 +42,7 @@ service_prestart () service_postinst () { touch ${wizard_data_volume}/${wizard_data_directory}/.htpasswd + touch ${REST_SERVER_CUSTOM_ARGS_FILE} echo WIZARD_DATA_VOLUME="${wizard_data_volume}" >> ${INST_VARIABLES} echo WIZARD_DATA_DIRECTORY="${wizard_data_directory}" >> ${INST_VARIABLES} echo WIZARD_APPEND_ONLY="${wizard_append_only}" >> ${INST_VARIABLES} diff --git a/spk/restic-rest-server/src/wizard/install_uifile b/spk/restic-rest-server/src/wizard/install_uifile index 4f847a913c4..4e53fe92132 100644 --- a/spk/restic-rest-server/src/wizard/install_uifile +++ b/spk/restic-rest-server/src/wizard/install_uifile @@ -57,7 +57,7 @@ "desc": "The folder will be created on demand as regular DSM shared folder for the service user sc-restic-rest-server. For details about the DSM permissions see Permission Management.

" }, { - "desc": "The non-standard port 8500 is used. The .htpasswd file is located at the root of the shared folder defined above. Add users acccording to the official documentation. Please define the following additional settings for restic rest-server:" + "desc": "The non-standard port 8500 is used. The .htpasswd file and restic_rest_server_custom_args.txt to specify custom arguments to the service are located at the root of the shared folder defined above. Add users acccording to the official documentation. Please define the following additional settings for restic rest-server:" }, { "type": "multiselect", diff --git a/spk/restic-rest-server/src/wizard/upgrade_uifile.sh b/spk/restic-rest-server/src/wizard/upgrade_uifile.sh index 885b642f7cc..6573f7f08d1 100644 --- a/spk/restic-rest-server/src/wizard/upgrade_uifile.sh +++ b/spk/restic-rest-server/src/wizard/upgrade_uifile.sh @@ -74,7 +74,7 @@ cat < $SYNOPKG_TEMP_LOGFILE "desc": "The folder will be created on demand as regular DSM shared folder for the service user sc-restic-rest-server. For details about the DSM permissions see Permission Management.

" }, { - "desc": "The non-standard port 8500 is used. The .htpasswd file is located at the root of the shared folder defined above. Add users acccording to the official documentation. Please define the following additional settings for restic rest-server:" + "desc": "The non-standard port 8500 is used. The .htpasswd file and restic_rest_server_custom_args.txt to specify custom arguments to the service are located at the root of the shared folder defined above. Add users acccording to the official documentation. Please define the following additional settings for restic rest-server:" }, { "type": "multiselect", From 4ec4a86ac49bfb8c8fe169856fe5de8b4b11d7a8 Mon Sep 17 00:00:00 2001 From: fgma Date: Mon, 24 Apr 2023 22:01:13 +0200 Subject: [PATCH 13/15] restic-rest-server: update to 0.12.0 --- cross/restic-rest-server/Makefile | 2 +- cross/restic-rest-server/digests | 6 +++--- spk/restic-rest-server/Makefile | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cross/restic-rest-server/Makefile b/cross/restic-rest-server/Makefile index 01af261d029..4a77f41f8be 100644 --- a/cross/restic-rest-server/Makefile +++ b/cross/restic-rest-server/Makefile @@ -1,6 +1,6 @@ PKG_NAME = restic-rest-server PKG_REAL_NAME = rest-server -PKG_VERS = 0.11.0 +PKG_VERS = 0.12.0 PKG_EXT = tar.gz PKG_DIST_NAME = $(PKG_REAL_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://github.com/restic/rest-server/releases/download/v$(PKG_VERS) diff --git a/cross/restic-rest-server/digests b/cross/restic-rest-server/digests index c417978d25b..cdafa04f5f4 100644 --- a/cross/restic-rest-server/digests +++ b/cross/restic-rest-server/digests @@ -1,3 +1,3 @@ -rest-server-0.11.0.tar.gz SHA1 beba01ecbcb331e9d6e6ab26350d1a13ad096896 -rest-server-0.11.0.tar.gz SHA256 b9081748e0f32d6095e9b5fadad1adcecfad683e62b67c7e8de388e17791ea35 -rest-server-0.11.0.tar.gz MD5 8e5040acbb8f92acd1554e073fc8462d +rest-server-0.12.0.tar.gz SHA1 6df82da0ab99eac9c449d23e60e3c6346e562746 +rest-server-0.12.0.tar.gz SHA256 a808460371c9d2bcf53501432fbf65c5b7e94d43e4c13f31042425c1648bbc8a +rest-server-0.12.0.tar.gz MD5 21d10c3cb49adc44a914c34d173de921 diff --git a/spk/restic-rest-server/Makefile b/spk/restic-rest-server/Makefile index f8c2e6ef31d..525a2dd463f 100644 --- a/spk/restic-rest-server/Makefile +++ b/spk/restic-rest-server/Makefile @@ -1,5 +1,5 @@ SPK_NAME = restic-rest-server -SPK_VERS = 0.11.0 +SPK_VERS = 0.12.0 SPK_REV = 1 SPK_ICON = src/logo.png DSM_UI_DIR = app From 05dadc4684ac6b165db830e7b4fa71e66db00ae1 Mon Sep 17 00:00:00 2001 From: fgma Date: Mon, 17 Jul 2023 21:07:56 +0200 Subject: [PATCH 14/15] restic-rest-server: update to 0.12.1 --- cross/restic-rest-server/Makefile | 2 +- cross/restic-rest-server/digests | 6 +++--- mk/spksrc.service.installer.functions | 12 ------------ spk/restic-rest-server/Makefile | 2 +- 4 files changed, 5 insertions(+), 17 deletions(-) diff --git a/cross/restic-rest-server/Makefile b/cross/restic-rest-server/Makefile index 4a77f41f8be..c2efa16f506 100644 --- a/cross/restic-rest-server/Makefile +++ b/cross/restic-rest-server/Makefile @@ -1,6 +1,6 @@ PKG_NAME = restic-rest-server PKG_REAL_NAME = rest-server -PKG_VERS = 0.12.0 +PKG_VERS = 0.12.1 PKG_EXT = tar.gz PKG_DIST_NAME = $(PKG_REAL_NAME)-$(PKG_VERS).$(PKG_EXT) PKG_DIST_SITE = https://github.com/restic/rest-server/releases/download/v$(PKG_VERS) diff --git a/cross/restic-rest-server/digests b/cross/restic-rest-server/digests index cdafa04f5f4..6690e4bbc30 100644 --- a/cross/restic-rest-server/digests +++ b/cross/restic-rest-server/digests @@ -1,3 +1,3 @@ -rest-server-0.12.0.tar.gz SHA1 6df82da0ab99eac9c449d23e60e3c6346e562746 -rest-server-0.12.0.tar.gz SHA256 a808460371c9d2bcf53501432fbf65c5b7e94d43e4c13f31042425c1648bbc8a -rest-server-0.12.0.tar.gz MD5 21d10c3cb49adc44a914c34d173de921 +rest-server-0.12.1.tar.gz SHA1 50a68154ffebc228bffae7cd06744a9224fdb9b9 +rest-server-0.12.1.tar.gz SHA256 f1b4e4ce581d698847c8a4a354a7fe201b073ebca223abf01898c53d87ccbf31 +rest-server-0.12.1.tar.gz MD5 970aa609b3a2793b82480cc4344881ef diff --git a/mk/spksrc.service.installer.functions b/mk/spksrc.service.installer.functions index 72f26288570..a6ee4894091 100644 --- a/mk/spksrc.service.installer.functions +++ b/mk/spksrc.service.installer.functions @@ -119,7 +119,6 @@ install_python_wheels () # already defined variables are not taken from the file (e.g. variables from wizard) load_variables_from_file () { -<<<<<<< HEAD if [ -n "$1" -a -r "$1" ]; then while read -r _line; do if [ "$(echo ${_line} | grep -v ^[/s]*#)" != "" ]; then @@ -132,17 +131,6 @@ load_variables_from_file () fi done < "$1" fi -======= - # Reload wizard variables stored by postinst - if [ -r "${INST_VARIABLES}" ]; then - # we cannot source the file to reload the variables, when values have special characters like <, >, ... - for _line in $(cat "${INST_VARIABLES}"); do - _key="$(echo ${_line} | awk -F'=' '{print $1}')" - _value="$(echo ${_line} | awk -F'=' '{print $2}')" - declare -g "${_key}=${_value}" - done - fi ->>>>>>> 65187ff2 (restic-rest-server: use existing function to load wizard vars) } diff --git a/spk/restic-rest-server/Makefile b/spk/restic-rest-server/Makefile index 525a2dd463f..75df4d4fe77 100644 --- a/spk/restic-rest-server/Makefile +++ b/spk/restic-rest-server/Makefile @@ -1,5 +1,5 @@ SPK_NAME = restic-rest-server -SPK_VERS = 0.12.0 +SPK_VERS = 0.12.1 SPK_REV = 1 SPK_ICON = src/logo.png DSM_UI_DIR = app From 96d1553cec1942b8dfbe98255243bea9dc8917da Mon Sep 17 00:00:00 2001 From: fgma Date: Mon, 26 Feb 2024 21:40:15 +0100 Subject: [PATCH 15/15] restic-rest-server: remove DSM_UI_DIR --- spk/restic-rest-server/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/spk/restic-rest-server/Makefile b/spk/restic-rest-server/Makefile index 75df4d4fe77..96b42a7cecd 100644 --- a/spk/restic-rest-server/Makefile +++ b/spk/restic-rest-server/Makefile @@ -2,7 +2,6 @@ SPK_NAME = restic-rest-server SPK_VERS = 0.12.1 SPK_REV = 1 SPK_ICON = src/logo.png -DSM_UI_DIR = app DEPENDS = cross/restic-rest-server