-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Add package Ruby (3.0.0) #4352
Add package Ruby (3.0.0) #4352
Conversation
b54162c
to
5a632af
Compare
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.
@tsutsu Wow, this is a fast contribution!
I was working on this in parallel, but didn't solve the sofisticated prefix configuration (for me the native ruby couldn't find the rubygems.rb)
I plan to cleanup some outdated framework stuff directly on your branch...
- add numeric prefix to patch file - use generic installer to activate SPK_COMMANDS (remove obsolete dsm-control and installer scripts) - remove static libraries and pc files from PLIST - add license information - use package specific target names - move code from custom post_install_target to custom install_target - activate code optimization - set initial SPK_REV=7 (the last rev of former ruby 2.0.0 was 6) - remove BETA - add changelog information - shrink icon to 512x512 pix
@tsutsu Thanks again for your contribution. Two questions:
|
Yes, the Ruby REPL/shell command
Not too many (see https://www.ruby-lang.org/en/news/2020/12/25/ruby-3-0-0-released/). The only compatibility-breaking change that I'm aware of, that might affect existing scripts, is a piece of syntax that's exceedingly unusual — implicitly interchanging keyword arguments with a hash positional-arg. This syntax has never been idiomatic, and has been deprecated for a while now. This isn't a Python 2/3 thing; 99.999% of Ruby 2.x projects don't use this syntax. (IIRC it was only even allowed in the first place as legacy compatibility for Ruby 1.x code.) Otherwise, Ruby 3.0.0 is basically Ruby 2.8. It technically had to do a major version bump for SemVer reasons — it broke a stable API — but it's not a big break. Any sane Ruby code written in the last 10 years will work just fine if run on 3.0.0. And almost all of the not-sane code will work too! For the sake of continuity / an upgrade path for people using the current Ruby package from Synology, it might still make sense to provide a 2.7.2 package. But that'd be more of a one-shot "legacy" package. Again, this isn't a Python 2/3 situation where 2.x continues to receive updates, and people gradually switch over — there aren't going to be any more 2.x releases after 2.7.2. Up to you whether you want to just put that release out first. (It'd make sense to me to do this if Package Center had version-pinning capabilities like |
@tsutsu Thanks for this detailed information.
These Extensions are not built:
Shall we include these ruby extensions? for readline I already found a solution. It will be built when using libedit instead of readline (readline built with ncurses would work too, but cross/readline is built wth nursesw). And can you please confirm that |
- add patch to find readline built with ncursesw
- cross/berkeleydb needs configure option to enable the historic dbm interface
Answer to The SynoCommunity ruby package installs into the folder /var/packages/ruby whether the Synology package uses /var/packages/Ruby (uppercase R). |
To answer my own question: |
@tsutsu unfortunatlely the change on cross/berkeley triggered the github action to build additional packages that fail. Therefore no build artifacts are available there. For anyone who needs a latest build for testing I can provide prerelease packages. |
* Revert "Retire Ruby package" This reverts commit 799f368. * Update package versions and included binaries list * Update patch * Fix double-nesting of install prefix * Add commands to be linked * cleanup - add numeric prefix to patch file - use generic installer to activate SPK_COMMANDS (remove obsolete dsm-control and installer scripts) - remove static libraries and pc files from PLIST - add license information - use package specific target names - move code from custom post_install_target to custom install_target - activate code optimization - set initial SPK_REV=7 (the last rev of former ruby 2.0.0 was 6) - remove BETA - add changelog information - shrink icon to 512x512 pix * fix readline extension - add patch to find readline built with ncursesw * add gdbm and gdb extensions - cross/berkeleydb needs configure option to enable the historic dbm interface Co-authored-by: hgy59 <hpgy59@gmail.com>
Motivation: Un-retiring the previously-retired Ruby package, as Synology has EOLed their release.
Linked issues: closes #4350
Checklist
all-supported
completed successfullyOutstanding problems blocking merge
SPK_COMMANDS
aren't being picked up (i.e. binaries aren't being linked into/usr/local/bin
); I think becauseINSTALLER_SCRIPT
is customized. Not sure if that custom installer-script is still necessary.