-
Notifications
You must be signed in to change notification settings - Fork 53
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
Linux Viewer #1149
Comments
This issue has been linked to a Canny post: Linux Viewer 🎉 |
I'm generally in favor of a Linden Linux viewer.
What actually caused us to drop Linux support years ago was the project to introduce a 64-bit viewer. I was appalled to discover that some of the Linux 3p repos contained only 32-bit binary libraries (from some already outdated distro version?). I started down the path of trying to build those Linux libraries from source -- but kept having to add repos as I continued discovering more and more unforeseen dependencies -- not to mention autoconf weirdness trying to build the ones I was accumulating. My then boss inferred a whole rabbit warren and made me stop. There has since been an effort to make the Linux viewer rely on system libraries instead of replicating the whole ecosystem in autobuild land. Hopefully that gets us past what was, at the time, a showstopper obstacle -- not just an excuse. |
I think we are past it. with the current 3p lib contributions that have gone into maint-b, I have been able to run a full linux64 ReleaseOS build and log in successfully |
You are not entirely wrong. That was the gtk-atk-pango 3P. I had a source version for Firestorm and I remember you losing a lot of hair over trying to get it to compile on the rather strange LL franken-debian. That dependency was a mess either way. And got replaced with fltk.
There was for some time the hope to go USE_SYSTEMLIBS, but it never did go anywhere. Then I pulled all that during the cmake renovation. |
I think it's better to organize Linux x86 (non x64) dependencies before the official release. At least from the viewer. |
What would be the proper way to test a Release build? |
@kylelinden @brad-linden @nat-goodspeed @Nicky-D As for linux's havok, it doesn't seem to be used even on third-party viewers, so I think it would be a good idea to disable it for now. What do you think? |
Do Linux viewers not support pathfinding? |
Not without Havok. Without Havok there is also no mesh upload. |
I think disabling havok and pathfinding to get unblocked is fine. We should file an issue for restoring it in the future. actually we should probably have issues for all of the closed source dependencies other than vivox |
Hmm. I don't think there are any major obstacles to including the Linux version of the viewer in the release notes. We hope that by including this in the release notes, we will be able to identify any potential fatal bugs that need to be resolved before the production release. |
Revive upstream linux builds with the help of viewer contributors.
Why?
The Second Life client has breakout capacity for re-enabling linux viewer builds: most of the connective tissue for building linux remains in the codebase, and linux viewers are actively maintained in forks. In the past, a few familiar excuses have come up whenever this idea is entertained:
However, it's been a long time since each of these complaints has been evaluated:
Support Load - An additional officially supported OS would create additional support load. However, compatibility between contemporary linux distros has improved since we stopped publishing a linux build, and in general there are a lot more solid resources, in particular from Valve's work with proton and Steam, for users to use before contacting LL or that we could direct them to. We can also take a different approach when releasing the linux viewer by distributing a plain archive. This would eliminate the expectation that the viewer works with a specific distro, and put some responsibility on distro package maintainers to bottle and prepare the client for users.
Distributing an archive rather than *.deb, *.rpm, et al. would be helpful in that ensuring SL works on specific distros would be left to the people that know those distros best. Speaking as a package maintainer (alpine, arch linux) this is preferred. :)
Library Updates - Since linux support was dropped we've moved 3p library CI/CD to GitHub Actions (GHA.) This means that the entire CI/CD process is transparent and can be contributed to from the open source community. We've already seen a large increase in open source PRs from people interested in restoring linux support. This should reduce the maintenance burden of keeping libraries up to date and compatible with multiple operating systems.
Userbase - I've never bought this argument, because even though the userbase is small the residents on linux are more likely to be the ones contributing back to our open source projects. There's terrific benefit in helping people help us.
General plan
Note: A lot of this work is in progress already (#1099, #1147, #1146)
LL responsibilities:
After a basic open source configuration is being built and merged into one of our release branches:
Tasks
The text was updated successfully, but these errors were encountered: