vletroye / Mods

Mods can be used to Create or Open/Edit and Generate packages for Synology
Microsoft Public License
86 stars 10 forks source link

DSM 7.0 SPK format #20

Closed nr-plaxon closed 3 years ago

nr-plaxon commented 3 years ago

The SPK format has changed slightly in DSM 7.0 and DSM 7.0 packages currently cannot be opened in MODS. It would be great to implement support for DSM 7.0 SPKs.

vletroye commented 3 years ago

I see indeed a few breaking changes in the new guide

I understand that none of the packages built in the past will work anymore on 7.0 without a proper upgrade. Indeed, in the INFO file, the os_min_ver field is now mandatory and must be at least 7.0-40000 or the package won't install :(

I see also that all packages must now provide a file "conf/privilege". I just started to add support for such configuration files in MODS but I am far from comfortable yet with them. I will need time to investigate further. This is the part going to take me a lot of time. Other changes sounds minor...

But I need to buy first a 2nd hand Synology to install DSM 7.0 (or be able to install it on XPenology in VMWare). Without a DSM 7.0 to test my packages, it will be walking in the dark...

I will post here when I start to work on this.

nr-plaxon commented 3 years ago

I can provide you with a VirtualDSM running DSM 7.0 Beta if this would help. Just let me know.

vletroye commented 3 years ago

Thx. But I should get a second hand DS214play this afternoon. I will install DSM 7.0 Beta asap and do some tests...

I hope also that I will be able to capture some "native" packages of Synology to study their config. I always deeded some concrete samples in the past, as Synology documentation was never that clear.

[Edit] Capture Packages from DSM 7.0 will be really easy :D They are all here

[Edit²] Unfortunately, I can't find a trick to open those new spk (neither on Windows with 7zip on on my Syno with tar)?!?

$ tar -xvf phpMyAdmin-4.9.6-1017.spk tar: This does not look like a tar archive tar: Skipping to next header tar: Exiting with failure status due to previous errors

vletroye commented 3 years ago

Ok... I have some progress on deploying a "MODS Dummy" package on DSM 7.0... I did implement support to edit the minimal requirement: set "run-as" = "package" in a conf/privilege file

image

Without that, we get the following error:

image

Next, it's mandatory to set the Min. Firmware = 7.0-40000 (NB: It's possible to add that version in the supported list, for auto completion, via Mods Settings > Mods Parameters > Edit DSM v.)

image

Without that, we get the following error:

image

I didn't try yet to sign my package, so, I had to accept this warning

image

Et voilà:

image

The source of this Dummy Package for DSM 7.0 is here" to open a URL on DSM 7.0

And I did check in my changes in MODS here

I didn't investigate further why I couldn't open the package (spk) of Synology yet. But I would guess that Synology did change something in the binary file (after compression with tar) to prevent us to open it...

vletroye commented 3 years ago

In case of failure during installation, logs to be checked are:

vletroye commented 3 years ago

Very good news.. the trick based on a pseudo "router.cgi" still works to run php scripts without the WebStation and the init 3rdParty...

I have however to find now how to get the privilege to create an link as: _ln: failed to create symbolic link '/usr/syno/share/nginx/conf.d/dsm.MODS_Dummy7.conf': Permission denied

If I create the link as admin from a SSH console, then it works (here : a php page to display the phpinfo)

image

nr-plaxon commented 3 years ago

That's good news to start with. Did you ever manage to extract the DSM 7.0 SPK for existing packages? This would be useful to make some changes to existing packages.

vletroye commented 3 years ago

Unfortunately, I am still unable to open a SPK for DSM 7.0.

I did post a question on the forum... https://community.synology.com/enu/forum/20/post/140587

But as often, no answer :( Is there any real/active support forum for Synology ?

vletroye commented 3 years ago

Ok... First packages for DSM 7.x work fine. Check here.

Still have to complete the documentation for those packages, clean-up a bit the scripts, and do so fine tuning in Mods Packager. But starting from those samples should do the trick.

That being said, I can still not open existing SPK from Synology. A workaround is to capture the SPK during installation.

Create a Shared Folder named "public" on the volume1 of your NAS Create a shell script named cp.sh in that share with:

#!/bin/bash
mkdir -p "/volume1/public/SynoCapture/"
rm -R /volume1/@tmp/pkginstall/*
echo "Press [CTRL+C] to stop.."
while true
do
rsync -qavr --exclude='*/package' /volume1/\@tmp/pkginstall/ /volume1/public/SynoCapture/ 2>/dev/null
done

And in a SSH console, run

cd /volume1/public
sudo ./cp.sh

It's not bullet proof, but voilà !