-
-
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
Isolate DSM5 branch #3917
Isolate DSM5 branch #3917
Conversation
Two suggestions
|
@hgy59 I am not satisfied about the way I added SRM toolchains... which prevents to re-use DSM_REQUIRED variable in package... Any proposal for theses? |
@th0ma7 WARNING this PR targets "master" branch which is not "expected" |
Ideas on top of my head:
|
@ymartin59 Thnx for the WARNING!! Would it be possible to create a new branch, perhaps named |
I strongly recomment something like
agreed, will ensure to remove them once a new branch gets created so my work doesn't apply on master but rather on the new branch |
I already introduced a different variable SRM_REQUIRED to define a minimal SRM-Version and separated DSM_REQUIRED to match DSM versions only. see commit 5a67e15 |
Many packages properly build for DSM 5.2 and DSM 6 without "source change"... Moving DSM 5 out-of master branch will require to maintain these packages in both branches to deliver them. So I agree to "move out" DSM < 5 toolchains from master but would keep DSM 5.2 for a while. Another point, at least one arch has not received DSM 6.2 but only DSM 6.1 update. For most packages compilation, it changes nothing to build against DSM 6.1 toolchain instead of DSM 6.2. For my own "minimal effort", I select to build and package either for DSM 5.2 (all archs) or for DSM 6.1 according to source requirements. |
for this, we need download counters in spkrepo |
Makes sense.
From a compilation point of view, fully agreed. Although from a security perspective probably not as I would assume that some fixes went into both the kernel & compiler to address various intel flaws resulting in 6.2.2 release.
Would Also, this will not address my original PR to drop ppc853x arch from default supported build process #3908 |
The idea to isolate DSM < 6 into a separate branch is to not maintain and deliver such versions anymore. The following we want to get rid of.
As deadline to accomplish, I see the day DSM 7 gets available for building thirdparty packages (alpha, beta, pre-release - what ever will get available first), and this may take another couple of months from now. |
@th0ma7 I see no security issue here. Compilation is done against kernel headers, (not implementation version for runtime, Synology has to take care of) and it is rare to hear about security fixes in compiler itself. Synology packages both toolchain (compiler and kernel headers) and SDK (with full DSM libraries' headers in addition to toolchain) but as far as I noticed until now, only SDK really differs between DSM minor versions. By the way, we may compare compiler versions in toolchains for each architecture and DSM minor versions but my opinion is that Synology is quite lazy with it and never update it. |
Yes, we may compare (and document) the compiler and glibc versions of the toolchains. With this, we could avoid:
And write something like this instead:
|
Ok, let's try to recap and align future work on this, actions are:
To be refined, options are:
Seems to lean towards keeping DSM 5.2, DSM 6.1, SRM 1.x and ppc853x to master until DSM 7 and use Unanswered question: Should we only keep "latest" DSM of each of each starting with 5.2? This would then mean also migrating to As for the question of differences on the toolchain from 6.1 vs 6.2. I had a quick look at it and indeed they do look quite similar. Although
vs 6.1:
|
I have just deleted As far as I know (so to be confirmed), all DSM 6.0 architectures have received updates to 6.1.x, so if I am right, there is no trouble to expect removing all DSM 6.0.2 toolchains from I am OK with proposals but I really wonder what is "motivation" to cleanup If we decide to create a Notice I have created tag |
Original motivation came from here #3908 (comment) . Personally I think it's a great opportunity to clean-up the code for eventual push on dsm7.
Interesting question. There may be a tipping point where some specific arch or DSM version becomes unsupported. Download counter could help on this but mostly for updated packages against such arch & version. My understanding is that current proposal would keep for now 5.2, 6.1 and 6.2.2 and move everything else to |
I would not call such a branch The main motivation for me on this topic is to cleanup the installer code from the pre dsm 6 user management and the dsm 5 to 6 migration code. |
That is a point of view from "toolchains support", but what about "package code" support? In case recent "package code" still works on a no-longer supported toolchain, it becomes more difficult to "play with it", except if we decide and maintain that "unsupported" branch - which means replicating any package code update there too. From my point of view, it is "useless effort", even if package-code-only PR may merge without conflict/work on that "unsupported" branch, it may be simply broken if no tests are driven. Without speaking about PR mixing package code and toolchain-or-framework code, and additional process for merge, which may simple lead to forget-or-mistake to replicate to "unsupported" branch. |
Notice that "pre dsm 6" user management is included in generic installer framework support. So as far as a package uses generic installer, it should work as-is on DSM 4 or DSM 5. It is correct that some package service-setup.sh functions contain code for dsm 5 to 6 migration BUT after 2 years, we may consider anyone willing/able to upgrade already did, so it sounds me relevant to discard that specific 5-to-6 migration code when writing any 6-to-7 code if needed. And "with luck", first package installation (without upgrade) should still works on unsupported target DSM version someone has just built for his own needs. |
Really interesting discussion and also clearly we are not entirely in agreement with expected outcome. Looking at things differently, what if we where to define a rule of thumb for spksrc such as, using a rule of two:
Otherwise, current ideas being shared (and please correct me if I'm wrong):
|
Just an idea: if toolchains, framework and package code were disjointed into separate Git repositories, we would have more options how/what to branch, allowing to mix but again more difficult to manage. |
I fear this would be become way harder to maintain... On the other hand, creating a branch for each toolchains+kernel (single containing both) such as:
So action could be to git checkout master, something like "merge" branch associated to needed toolchain to compile against it... |
Further thinking about it.... Looking at things with a workflow perspective and doing additional mileage from your previous comment @ymartin59 :
It may sound a bit crazy but doing so might allow meeting all/most comments made previously.... ? |
Can I propose to create a new repository for legacy branches? it makes for smaller repository sizes and makes it super clear form a users pint of view that they are deprecated but are keep for historical reasons. |
@publicarray Creating a "fork" has similar troubles as "creating a branch" in existing spksrc... that is first to "not maintain" content with packages/frameworks. By the way, DSM 7 is coming and it is too much effort to maintain three targets DSM 5, 6 and 7. And I really doubt that are many DSM 5 still running out there. Our effort has to be put in migrating current packages to DSM 7, when we know how that version looks like. |
What about to separate all |
@th0ma7 @hgy59 @publicarray I would let all toolchains "in place"... that cost nothing and it still allows users to build packages for their own usage on old arch/dsm versions if interested - with same concept as "diyspk/". So I propose to close without merging. |
Definitively this thread will end-up being closed without merging. This really was more about the asking ourselves what do we want to do (or not) about it. Personally I still think we should create a |
Motivation: Isolate DSM5 from master.
Linked issues: Relates to discussion from PR #3908 ans #3919
Checklist
all-supported
completed successfully