Breaking Changes in 7.0
In DSM7.0 , there’re some breaking changes in package framework、Package Center and commands. Also see Release Notes.
Package Framework Changes
1. Force lower privilege for package
All packages should provide conf/privilege
with package
in run-as
explicitly. Any privileged operation should be accomplished via resource worker.
2. Force some INFO fields to be neccessary
Any package should have package
, version
, os_min_ver
, description
, arch
and maintainer
fields. Futhermore, the value of os_min_ver
should be at least 7.0-40000
or you cannot install the package correctly.
3. Remove package signing mechanism
Packages are no longer able to do signing in packing stage.
4. Remove run-as system
from privilege
Packages will not be able to use run-as system in conf/privilege
. Instead, all packages should run as package
.
5. Change default home path from target
to home
The home directory of package is changed from /var/packages/[package_name]/target
to /var/packages/[package_name]/home
and its mode will be 0700.
6. Change PACKAGE_ICON.PNG
from 72x72 to 64x64
Package should have PACKAGE_ICON.PNG in 64x64 above 7.0.
7. Change FHS directory owner according to privilege settings
FHS directories such as target
will have new privilege settings according to conf/privilege
.
8. Change package log location to /var/log/packages/[package_name].log
and /var/log/synopkg.log
Package operation log is still at /var/log/synopkg.log
but control script log will be at /var/log/packages/[package_name].log
. Besides, when you are developing a package, you should always pay attention to the content of /var/log/messages
to check if there are any warning or error.
9. Consider prestart
script on bootup
The prestart
script will run on bootup to check if a package can be started.
Package Center Changes
1. Remove keyring && Remove trust level
User are no longer be able to add / remove keyrings on package center since we have deprecated the codesign mechanism of spk. Similarly, there will be no trust level settings for user to choose. Any non-synology package will get alert on installation.
Command Changes
1. synopkg start
starts a package with its dependees
If A depends on B, run synopkg start A
will also start B when B is not started.
2. synopkg install
checks if package can be installed
The synopkg install
command will have same constraints as UI installation.