Skip to content

Linux Viewer #1149

@bennettgoble

Description

@bennettgoble

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:

  • Support Load - Providing official support for linux viewers creates an outsized support load due to users encountering issues getting the viewer to run on their local linux install
  • Library Updates - Keeping the libraries up to date requires effort
  • Userbase - There are not enough users on linux to justify its upkeep

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)

  1. Restore 3p libs - The linux dependencies in autobuild.xml have been left to rot for many years. We need to get newly built versions added, and add linux64 platform support and builds to 3p libs that are missing it.
  2. Restore ReleaseOS build Once 3p libs are in better shape, the coderot in the viewer needs to be addressed. This will involve things such as updating SDL to SDL2 so that it is up to date with forks, fixing build scripts, etc.
  3. Add GHA builds - Get linux building in GHA CI
  4. Package - Set up a basic archive packaging so that the linux viewer can be downloaded from GHA artifacts

LL responsibilities:

After a basic open source configuration is being built and merged into one of our release branches:

  1. Set up release build - Set up proprietary build with havok, kdu, fmod, et al.
  2. (Maybe) Publish to releasenotes - Set up publication of distribution archives via https://releasenotes.secondlife.com
  3. (Maybe) Add viewer to release page - Add the linux platform back to https://secondlife.com/support/downloads/

Sub-issues

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions