LMS-Community / slimserver-vendor

Third-party software used with Lyrion Music Server
https://lyrion.org
42 stars 68 forks source link

Modules update. Fix in buildme.sh script. #83

Closed simonefil closed 3 years ago

simonefil commented 3 years ago

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.

michaelherger commented 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?

simonefil commented 3 years ago

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.

tomscytale commented 3 years ago

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.)

simonefil commented 3 years ago

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