Closed simonefil closed 3 years ago
Thanks for the effort, @simonefil . But there are too many changes for my taste. You added a whole lot of new files which were not needed before? There's a new build_module_with_build
in buildme.sh
- what is it?
And overall: what problem does this PR solve?
You added a whole lot of new files which were not needed before? Some dependecies needed for updated modules.
_ There's a new build_module_withbuild in buildme.sh - what is it? Some modules don't use Makefile.PL to compile but the Build.PL method.
And overall: what problem does this PR solve?
In short: long-term maintainability
Long answer:
IMHO, and from my experience, when maintaining a software without having a company behind that pays developers my mantra is "target only major platforms and keep everything updated to not have headaches when something will break".
Which is pretty much the opposite of lms : there are patches for SunOS (which was dead 26 years ago) the code checks if the perl version is 5.8 (19 years ago), and 32 bit versions are still official maintained (and 64bit has been a thing for the last 15 years)
Take as an example the discussion we had about how to debug memory usage on lms. It didn't work because: -> it relies on dependecy that are something like 15 years old that do not work anymore (as expected) -> it calls function that Perl does not support anymore. And there is not an easy fix since it's based on such old modules.
Updating CPAN modules should be an easy thing, but since some of them have not been updated for decades (literally) it took me days of trial and errors and testing.
Don't take this as a criticism, it is not; I just try to contribute to make the code easier to maintain.
It's ok if you don't merge, I'll keep my fork updated which I use to maintain the FreeBSD/FreeNAS version of LMS, from which you can cherry pick updates when needed.
But please uncomment the built of IO-Socket-SSL, this is a bug and without it you won't be able to access streaming services or login to mysqueezebox.
I think you're missing the point of all that old cruft
LMS is supported on a variety of old and obscure platforms because that is what people run it on.
This is a community project aimed at keeping users happy.
This is not a commercial project aimed at keeping costs down by pushing users into upgrading operating systems or hardware.
So yes, dealing with all the old stuff is annoying but it's there for a reason.
(Until 2 weeks ago I was running it on a 2008 EEE pc (remember those?) running Ubuntu 14.04. Every few months I'd update LMS using a USB key and it would happily continue doing its job.)
I think you're missing the point of all that old cruft
LMS is supported on a variety of old and obscure platforms because that is what people run it on.
This is a community project aimed at keeping users happy.
This is not a commercial project aimed at keeping costs down by pushing users into upgrading operating systems or hardware.
So yes, dealing with all the old stuff is annoying but it's there for a reason.
(Until 2 weeks ago I was running it on a 2008 EEE pc (remember those?) running Ubuntu 14.04. Every few months I'd update LMS using a USB key and it would happily continue doing its job.)
I'm not missing the point. It's always a compromise between wide support and maintainability. More device to maintain, more time consuming and difficult Is maintain the code. And the more time pass before updating, more difficult and problematic will be updating the code. So, Is It worth to keep old and unmaintained code, make dev's Life difficult for some dudes that wants to use prehistoric hardware? I don't know...
I Will keep my repo updated cleaning up the code. When mherger Will want to update I'll be Happy to contribute.
Cheers
I updated the vast majority of modules and edit the buildme.sh script accordingly. I've added an option to compile in multithread. Tested on debian buster and freebsd 12.