-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sonarr v4 beta #5524
Sonarr v4 beta #5524
Conversation
aa6aa93
to
5c4316b
Compare
@hgy59, continuing the discussion in this new PR as the old one was closed after I rebased...
I did some more investigation and apparently, a method to deploy and avoid the port conflict check was attempted before in 4d88fa9. I've taken this logic and included it in the latest commit and I was able to confirm that the package installed without flagging a conflicting port with the addition of the Thanks for your additional comments:
With regard to the DSM6 config, I'll work on it once I have successfully tested a package replace under DSM7. I've done a basic implementation but may need some assistance with this as there seems to be a few other things done with that older OS looking at the other examples.
I thought the SynoCommunity spksrc platform would include the code I provided for all relevant architectures. Is there something more I would need to do?
Yes, that makes sense. I believe that we can just configure the build not to make anything for DSM5 (if not already configured to do so).
Thanks for confirming that the
I'm not sure what SRM 1.x is exactly but from a bit of searching I see that SRM is some type of O/S like DSM? I came across it in a post on #5424 where you were asking Synology for toolchains for SRM 1.3. From the link you posted there, it seems that Synology eventually provided a response. Let me know what would be needed from my end. |
@hgy59, so I did some deployment tests and the
What this appears to be is the function starting, passing the spksrc/spk/sonarr/src/service-setup.sh Line 54 in 5e5a5d4
I believe it attempts to stop the old NzbDrone but fails to complete because the command is not executed with elevated privileges. From checks elsewhere in the code, all of the scripts under DSM7 seem to be executed with the privilege of the package. The documentation mentions:
I am not able to identify how to use this resource worker to give the script the required privilages in the I also did some further testing with the commands commented out but the remainder of the I don't quite know what should go into the functions themselves. For example, having |
9be9827
to
5e5a5d4
Compare
I've also done an upgrade test from 20221216-21 (Sonarr v3) to 20221217-1 (Sonarr v4) to compare DSM 6.2 to DSM 7.1 and found some interesting divergences. Most importantly, under DSM 6.2 the upgrade function actually works and removes the previous version. Video and logs from DSM 6.2: Screen.Recording.2022-12-16.at.9.06.50.PM.mp4
Video and logs from DSM 7.1: Screen.Recording.2022-12-16.at.9.54.58.PM.mp4
As you can see, in DSM 6.2 the replace actually works (unlike in DSM 7.1) even though the code is the same. This will need some further investigation. Unfortunately in both situations, the copying of the configuration files to the new version didn't happen so that will need to be looked into more. I found this interesting tidbit in the
This suggested to me that the removal of Sonarr v3 perhaps took place before the |
6eb0cfd
to
50e918f
Compare
@hgy59, with some further testing I was able to confirm that the logic I wanted to use for the One challenge remains (mentioned above) regarding the uninstall of the old package under DSM7. I've tried a number of variations including adding the This I believe may be a bug in DSM7 itself because I've scoured the internet and can find no discussions on this point. If you have any insight into fixing this I believe that should be the last thing required for this PR. EDIT: I've also reached out to the community with this support post to hopefully get some assistance. |
a445a75
to
a160c01
Compare
@hgy59, I opened a ticket with Synology support for the Line 38 in a160c01
... to ... Line 38 in 0d9c7eb
... this resolved the issue. I've tested it and I believe the package is ready. Once you are comfortable with the changes, I'll squash the commits for you to merge. |
473fff1
to
0d9c7eb
Compare
d7a5ae9
to
2e74ece
Compare
I think I've finished all the refinements. The last two included the following:
|
A question I have is regarding the installation, there is a screen titled "Attention! DSM Permissions" which says:
Given this is no longer true in DSM7 should we change or remove this message? Or is there a way to have the screen display different information if running DSM7 versus DSM6? EDIT: I looked at the UI components in Radarr and they seemed fairly up to date so I copied these and changed the app name. |
👍 I suppose for the upgrade wizard we should add information that the package replaces the v3 package (and an extra advice to create a backup first). It might be necessary to have a different upgrade wizard page when updating from v3 vs updating from v4. To implement this, we need a shell script for the upgrade_uifile to create different wizard pages - you find example scripts in spk/redis/src/upgrade_uifile.sh or in minio, mosquitto and tt-rss (tt-rss has even different pages for DSM 6 and DSM 7). |
bee07fc
to
74bd527
Compare
Thanks for the guidance. Given that this would be a new package it would be an Looking at this package we have:
This is very different than two of the other examples which have the execute bits set:
I've done some light digging around and this setting of the execution bits should happen automatically based on this framework code: Lines 394 to 397 in 5efc808
@hgy59 interested to get your thoughts on the above analysis. Is the reason the |
@hgy59 so apparently my analysis was correct. The build checks that are currently performed do not seem to set the execution bits. When I look at the run from "redis: update to v7.0.7 #5526" (Atifacts), the package for x64-6.1 does not have the execution bits set either:
So I tried setting the bits manually with the following:
This resulted in an archive with the correct bits:
With this I was able to successfully test the |
Thanks for all your work on this @mreid-tt. How do we get this merged in? |
I can have this merged relatively easily but as this is a new package I would prefer the assistance of a senior dev (i.e. @hgy59 or @publicarray) to review and approve the PR. I would then also need their assistance with the publishing of the package to be made available for download. |
Afaik the data migration/package replacement only worked for DSM7. Did you test this on dsm6? |
Otherwise well done for moving the package to the correct name 👍 |
Yes, I tested this under DSM 6 and DSM 7 and both were eventually successful. There was an initial issue with package replacement under DSM 7 but this was because of the version specificity in the The main difference with DSM 6 is that because it does a clean uninstall, the previous configuration files are removed on migration (no option to downgrade). In DSM 7 the older configuration files are left in the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regarding the i18n versions of the installers wouldn't be worth using a template mechanism with i18n variables being injected ? (To avoid basically having to maintain separate wizard files which essentially do the same thing except for the text which are differing)
I've not used i18n before but looking into it this seems to be a DSM 7 feature (doesn't seem to be present in the DSM 6 developer guide) and related to things like help files and config. I don't see any reference to be able to use this with wizard files. Do you have a specific example of where this could be used? |
Actually I was more thinking about using a mechanism such as the one done for
TBH I didn't know there was something about it in DSM 7 :D |
An interesting proposal but I don't think this will be easier to maintain. Looking at the developer guide it is expecting the wizard UI files of the form |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall looking quite good. A few proposed changes proposed below.
Hey @th0ma7, any responses to the feedback on your requested changes? |
I did compile and install this over a basic Sonarr v3 setup on DSM7 on a Realtek chip - no issues to report. Sonarr seems to self upgrade just fine after install as well. Nice work! |
Hey @th0ma7, my review of the suggested changes show that the important ones were addressed (including updating the Wiki) and I've gone ahead an merged the PR. Do let me know if you can also assist with publishing. |
Overall looked good, nice work. EDIT: Now published. |
Excellent! Thanks much. I manually installed from the repo on my DS916+ and all went smoothly. As expected, I had to change the permissions allowed on the download and video folders with the change of user from Also because I am a stickler for file ownership I also did this:
|
Worked great on a DS920+ running DSM 7.1.1. Thank you! |
Will there be an armada38x (DS216j) version for DSM6? Thanks |
Based on the testing of dotnet *arr packages with ARMv7 archs we did (see #5574), the |
Thanks for the update everything went fine updating on my ds220+ |
Description
This is a new deployment of Sonarr v4 beta (.NET) for Synology which replaces #5520. As this is a major change, the package internal name has also changed from
nzbdrone
tosonarr
. The upgrade steps from Sonarr v3 would thus be:Fixes #5051
Checklist
all-supported
completed successfullyType of change