Difference between revisions of "Channel and Version Requirements"

From Second Life Wiki
Jump to navigation Jump to search
m (Protected "Channel and Version Requirements": Policy statement by Linden Lab [edit=sysop:move=sysop])
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== Setting a Channel and Version for an Open Source Viewer ==
== Setting a Viewer Identifier for an Open Source Viewer ==
1. Choose a channel name
A Viewer Identifier is unique to a particular release of a viewer. It is composed of two parts: the Viewer Channel Name and the Version Number.
* The default channel name is "Second Life Release"
* Other Linden Lab channel names are "Second Life Release Candidate" and "Second Life First Look [Feature]"
* The channel name can be any ASCII string, however we suggest something along the lines of:
** "Second Life Open Source [Brand and/or Feature]"
2. Choose a version number
* The version number is in the form Major.Minor.Patch.Build
* The version number can be any four numbers
* We recommend using the Major, Minor, and Patch numbers from the most recently merged Linden Lab source code.
* We recommend using a Build number >= 100 to indicate a non Linden Lab version.
** Linden Lab uses the Subversion revision number for the build number for non Release / Release Candidate builds
3. Set the Channel and Version in the code
* Edit indra/llcommon/llversionviewer.h
** Modify LL_CHANNEL with the Channel Name
** Modify LL_VERSION_BUILD with the appropriate build number
* Update the version number in the following files:
** indra/newview/res/newViewRes.rc - ''"FileVersion" and "ProductVersion" in the Version section''
** indra/newview/Info-SecondLife.plist - ''CFBundleVersion''
** indra/newview/English.lproj/InfoPlist.strings - ''CFBundleShortVersionString''
* Build the code


== Packaging for Distribution ==
=== Viewer Channel Name===
* From the indra/newview directory run viewer_manifest.py with the following arguments:
The Viewer Channel Name should be a unique base name for your viewer, optionally combined with a variant name (typically used to distinguish the type of build). Linden Lab viewer builds use:
** viewer_manifest.py --login_url=http://your.login.url.com
;Second Life
* See http://wiki.secondlife.com/wiki/Viewer_Manifest for more information on packaging the Viewer
:as the base name, followed by either
:;Release
::for release builds
:;Beta ''project-name''
::for early release user test builds
:;Project ''project-name''
::for integration builds (which may or may not be publicly available)
:;Test
::for developer builds
:The default Version Name is '''Second Life Test'''
{{Note|Any Channel Name containing "Second Life" is reserved for use by Linden Lab (if you are building a test version for submission to Linden Lab, there is no need to change this)}}
 
The Channel Name can be any ASCII string. It should not violate [http://secondlife.com/corporate/brand/trademark/ Linden Lab's trademark policy]. We recommend that the Channel Name be the name of the Open Source Viewer.
 
To set the channel name, set the cmake variable on the autobuild command line:
autobuild configure -- -DVIEWER_CHANNEL='"''channel''"'
or
autobuild configure -- -DVIEWER_CHANNEL="\"''channel''\""
 
===Version Number===
The Version Number is in the form ''major''.''minor''.''patch''.''build'': any four numbers, separated by periods.
* We recommend using the Major and Minor numbers from the most recently merged Linden Lab source code.
 
The 4 numbers together should uniquely identify a version of the sources from which the viewer was built; Linden Lab uses an internal number from our build farm system for the Build number to ensure uniqueness.
 
'''To change the first three elements of the version number, edit the file <tt>indra/newview/VIEWER_VERSION.txt</tt>'''
 
To set the revision, set the <tt>revision</tt> environment variable. If that variable is not set, the <tt>indra/cmake/BuildVersion.cmake</tt> file will attempt to get the local revision number from your Mercurial working copy (which will not change for any changes that have not yet been committed), or if that is not found then it will use 0.


== Updating an Open Source Viewer ==
== Updating an Open Source Viewer ==
* Anyone distributing an Open Source version of the Viewer is responsible for messaging updates to residents using that client.
* Anyone distributing an Open Source version of the Viewer is responsible for messaging updates to residents using that client.
* We recommend using your login url for directing residents to updates.
* We recommend using your login url for directing residents to updates.
* Clients not based on the Linden viewer code base should ensure that the XMLRPC login connection sends:
** channel = the channel name, e.g. "My Viewer"
** version = a four-part version, e.g. "1.2.3.4"


== Linden Lab Updates ==
== Linden Lab Updates ==
Line 34: Line 45:
* '''NOTE: If Linden Lab determines that a particular client distribution contains security vulnerabilities or exploits, Linden Lab may block that particular version of the client from logging in.'''
* '''NOTE: If Linden Lab determines that a particular client distribution contains security vulnerabilities or exploits, Linden Lab may block that particular version of the client from logging in.'''
* '''NOTE: If Linden Lab introduces a server update that requires a particular capability in order to connect to the server, Viewers that do not include the required capability will be unable to connect to ''regions running that version of the server.''''' It is the intention of Linden Lab to make these required updates infrequent, and to make the Viewer code available well in advance of the server update.
* '''NOTE: If Linden Lab introduces a server update that requires a particular capability in order to connect to the server, Viewers that do not include the required capability will be unable to connect to ''regions running that version of the server.''''' It is the intention of Linden Lab to make these required updates infrequent, and to make the Viewer code available well in advance of the server update.
[[Category:Open Source Portal]]

Latest revision as of 07:02, 9 August 2013

Setting a Viewer Identifier for an Open Source Viewer

A Viewer Identifier is unique to a particular release of a viewer. It is composed of two parts: the Viewer Channel Name and the Version Number.

Viewer Channel Name

The Viewer Channel Name should be a unique base name for your viewer, optionally combined with a variant name (typically used to distinguish the type of build). Linden Lab viewer builds use:

Second Life
as the base name, followed by either
Release
for release builds
Beta project-name
for early release user test builds
Project project-name
for integration builds (which may or may not be publicly available)
Test
for developer builds
The default Version Name is Second Life Test
NOTE: Any Channel Name containing "Second Life" is reserved for use by Linden Lab (if you are building a test version for submission to Linden Lab, there is no need to change this)

The Channel Name can be any ASCII string. It should not violate Linden Lab's trademark policy. We recommend that the Channel Name be the name of the Open Source Viewer.

To set the channel name, set the cmake variable on the autobuild command line:

autobuild configure -- -DVIEWER_CHANNEL='"channel"'

or

autobuild configure -- -DVIEWER_CHANNEL="\"channel\""

Version Number

The Version Number is in the form major.minor.patch.build: any four numbers, separated by periods.

  • We recommend using the Major and Minor numbers from the most recently merged Linden Lab source code.

The 4 numbers together should uniquely identify a version of the sources from which the viewer was built; Linden Lab uses an internal number from our build farm system for the Build number to ensure uniqueness.

To change the first three elements of the version number, edit the file indra/newview/VIEWER_VERSION.txt

To set the revision, set the revision environment variable. If that variable is not set, the indra/cmake/BuildVersion.cmake file will attempt to get the local revision number from your Mercurial working copy (which will not change for any changes that have not yet been committed), or if that is not found then it will use 0.

Updating an Open Source Viewer

  • Anyone distributing an Open Source version of the Viewer is responsible for messaging updates to residents using that client.
  • We recommend using your login url for directing residents to updates.
  • Clients not based on the Linden viewer code base should ensure that the XMLRPC login connection sends:
    • channel = the channel name, e.g. "My Viewer"
    • version = a four-part version, e.g. "1.2.3.4"

Linden Lab Updates

  • Linden Lab updates will not affect non Linden Lab channels. This includes optional and mandatory updates. It is the responsibility of other distributors to ensure that security patches are provided to residents using their client.
  • NOTE: If Linden Lab determines that a particular client distribution contains security vulnerabilities or exploits, Linden Lab may block that particular version of the client from logging in.
  • NOTE: If Linden Lab introduces a server update that requires a particular capability in order to connect to the server, Viewers that do not include the required capability will be unable to connect to regions running that version of the server. It is the intention of Linden Lab to make these required updates infrequent, and to make the Viewer code available well in advance of the server update.