-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Package Migration
Support has only been testing on DSM 5 and 6 and relies on availability of
synousersynogroupservicetoolsynosharesynoacltool
Please first refer to complete documentation.
Discard INSTALL_DIR from Makefile as new default is now set to
/var/packages/$(SPK_NAME)/target/ in mk/spk.directory.mk
If relevant, take benefit from group and share folder creation with
SERVICE_WIZARD_GROUP and SERVICE_WIZARD_SHARE
If INSTALLER_SCRIPT contains other specific actions like configuration setup
or link creation, move them to service_ACTION functions in SERVICE_SETUP
script.
For non service application, add explicitely STARTABLE=no for proper Package
Center status reporting.
If SSS_SCRIPT has specific code, try to move behaviour to service_prestart
or service_poststop. If not possible, create package specific from
mk/spksrc.service.start-stop-service.
If service user already exists in system, DSM will create an additional account
with _PKGtime suffix which prevents installer to enlist it in group for share
permissions.
Service user transistion with busybox user commands is obsolete, as we do not support dsm5 -> dsm6 migration anymore (since DSM7 beta, 2021).
For package transition, it is recommended to keep
busyboxdependency to properly clean "legacy" service account (without any prefix) thanks to following function inSERVICE_SETUPscript file:service_postinst () { # Discard legacy obsolete busybox user account BIN=${SYNOPKG_PKGDEST}/bin $BIN/busybox --install $BIN $BIN/delgroup "${USER}" "users" >> ${INST_LOG} $BIN/deluser "${USER}" >> ${INST_LOG} }Example with
mosquittoupdate PR: #3025
As a generic principal, application must produce files to user in DSM share
folder configured thanks to SERVICE_WIZARD_SHARE wizard variable or
SHARE_PATH in SERVICE_SETUP script.
By defaults, var folder is expected to be the only package location where
application can write its log, configuration or any other content.
Generic installer handles backup and restore process for var content
only. Other location content is discarded by DSM upgrade process which simply
consists in an uninstall/install sequence with additional preupgrade and
postupgrade scripts.
In case an application writes any persistent content out of var because
locations cannot be configured, please select either of these options:
-
Create target folder in
varand useservice_postinstto create symbolic links from original location -
Extend
service_postinstfunction to set proper permission and backup/restore process withservice_preupgradeandservice_postupgradeto handle modified files out ofvar.
- Home
-
Packages
- Adminer
- Aria2
- Beets
- BicBucStriim
- Borgmatic
- cloudflared
- Comskip
- Debian Chroot
- Deluge
- Duplicity
- dnscrypt-proxy
- FFmpeg
- FFsync
- Flexget
- Gstreamer
- Google Authenticator
- Home Assistant Core
- Jellyfin
- Kiwix
- [matrix] Synapse homeserver
- MinIO
- Mono
- Mosh
- Mosquitto
- Node-Exporter
- OpenList
- ownCloud
- Radarr/Sonarr/Lidarr/Jackett
- rclone
- SaltStack
- SickBeard Custom
- SynoCLI-Disk
- SynoCLI-Devel
- SynoCLI-File
- SynoCLI-Kernel
- SynoCLI-Misc.
- SynoCLI-Monitor
- SynoCLI-NET
- Synogear
- Concepts
- Development
- Resources