1056N/A<?
xml version="1.0" encoding="UTF-8"?>
1056N/A<
html xmlns="http://www.w3.org/1999/xhtml"><
head><
meta http-
equiv="Content-Type" content="text/html; charset=UTF-8" /><
title>
X.Org Version Numbering Schemes</
title><
link rel="stylesheet" href="/usr/share/sgml/X11/xorg.css" type="text/css" /><
meta name="generator" content="DocBook XSL Stylesheets V1.69.1" /><
meta name="description" content=" X.Org has adopted the same basic numbering scheme used by the XFree86 Project, Inc. for their releases. The actual numbers are different, but the basic scheme is the same. This document reflects the policy that X.Org uses. " /></
head><
body><
div class="article" lang="en" xml:
lang="en"><
div class="titlepage"><
div><
div><
h1 class="title"><
a id="id2418659"></
a>
X.Org Version Numbering Schemes</
h1></
div><
div><
h3 class="corpauthor">
1056N/A</
h3></
div><
div><
h3 class="corpauthor">
1056N/AUpdated for
X.Org by Keith Packard, Kevin E. Martin, and Alan Coopersmith
1056N/A</
h3></
div><
div><
p class="pubdate">November 2010</
p></
div><
div><
div class="abstract"><
p class="title"><
b>Abstract</
b></
p><
p>
1056N/AX.Org has adopted the same basic numbering scheme used by the XFree86
1056N/AProject, Inc. for their releases. The actual numbers are different, but the
1056N/Abasic scheme is the same. This document reflects the policy that
X.Org uses.
1056N/A</
p></
div></
div></
div><
hr /></
div><
div class="toc"><
p><
b>Table of Contents</
b></
p><
dl><
dt><
span class="sect1"><
a href="#id2465608">Module Versions</
a></
span></
dt><
dt><
span class="sect1"><
a href="#id2465694">Releases, Development Streams and Branches</
a></
span></
dt><
dt><
span class="sect1"><
a href="#id2494250">Current Version Numbering Scheme</
a></
span></
dt><
dd><
dl><
dt><
span class="sect2"><
a href="#id2494298">Development Branch</
a></
span></
dt><
dt><
span class="sect2"><
a href="#id2466380">Stable Branch</
a></
span></
dt></
dl></
dd><
dt><
span class="sect1"><
a href="#id2464673">Finding the
X.Org X Server Version From a Client</
a></
span></
dt></
dl></
div><
div class="sect1" lang="en" xml:
lang="en"><
div class="titlepage"><
div><
div><
h2 class="title" style="clear: both"><
a id="id2465608"></
a>Module Versions</
h2></
div></
div></
div><
p>
1056N/AStarting with the X11R7.0 release, each module has its own version number.
1056N/AFor those without a natural starting point, the version numbers started at
1056N/A1.0. For instance, the X11R7.0 release included the xorg-server 1.0
1056N/Amodule. As modules are released independently from the rest of the
1056N/Awindow system, the module version is the most accurate source of version
1056N/Ainformation. For instance, there are many X server releases in a year,
1056N/Abut generally only one window system release, so an X server version number
1056N/Asuch as 1.7.7 is more informative than the X11R7.5 version for the window
1056N/Asystem “<
span class="quote">katamari</
span>” release.
1056N/AUnfortunately, up through the X server 1.3 release, the X server
1056N/Aused the Window System version when reporting its version number
1056N/Ain log files, the -version option, and the connection setup string
1056N/A(displayed by xdpyinfo). This was corrected with X server 1.3, which
1056N/Acaused the visible version number string to appear to jump backwards
1056N/A</
p></
div><
div class="sect1" lang="en" xml:
lang="en"><
div class="titlepage"><
div><
div><
h2 class="title" style="clear: both"><
a id="id2465694"></
a>Releases, Development Streams and Branches</
h2></
div></
div></
div><
p>
1056N/AX.Org has two release branches for the X server software, and several
1056N/Aother modules with active ongoing development.
1056N/AFirst is the trunk of the git repository. This is
1056N/Athe main development stream, where all new work and work for future
1056N/ASecond is the stable bugfix branch for the latest full release. It is
1056N/Acreated around the time of the release. The branch will be named for the
1056N/Arelease version, such as “<
span class="quote"><
code class="literal">server-1.9-branch</
code></
span>”
1056N/AFixes for bugs found in the release will be added to this branch (as
1056N/Awell as the trunk), and updates to this release (if any) will be cut
1056N/Afrom this branch. Similar stable branches are present for previous full
1056N/AThe
X.Org Foundation is planning to make full releases from the main
1056N/Adevelopment stream at regular intervals in the 6-12 month range. The
1056N/Afeature freezes for these releases will usually be 2-3 months before the
1056N/Arelease dates. This general plan is a goal, not a binding commitment.
1056N/AThe actual release intervals and dates will depend to a large degree on
1056N/Adepending also on the availability of resources, and will generally be
1056N/Alimited to serious bug and security fixes. New features will not
1056N/Ausually be added in update releases.
1056N/AAside from actual releases, snapshots of the active release branches
1056N/Aare tagged in the git repository from time to time. Each such snapshot
1056N/Ahas an identifiable version number.
1056N/A</
p></
div><
div class="sect1" lang="en" xml:
lang="en"><
div class="titlepage"><
div><
div><
h2 class="title" style="clear: both"><
a id="id2494250"></
a>Current Version Numbering Scheme</
h2></
div></
div></
div><
p>
1056N/AStarting with the main development branch after X11R6.7, the
X.Org 1056N/Aversions are numbered according to the scheme outlined here.
1056N/AThe version numbering format is <
code class="literal">
M.m.P.s</
code>,
1056N/Awhere <
em class="replaceable"><
code>M</
code></
em> is the major version number,
1056N/A<
em class="replaceable"><
code>m</
code></
em> is the minor version number,
1056N/A<
em class="replaceable"><
code>P</
code></
em> is the patch level, and
1056N/A<
em class="replaceable"><
code>s</
code></
em> is the snapshot number.
1056N/AFull releases have <
em class="replaceable"><
code>P</
code></
em> set to zero, and it is
1056N/Aincremented for each subsequent bug fix release on the post-release
1056N/Astable branch. The snapshot number <
em class="replaceable"><
code>s</
code></
em> is
1056N/Apresent only for between-release snapshots of the development and
1056N/A</
p><
div class="sect2" lang="en" xml:
lang="en"><
div class="titlepage"><
div><
div><
h3 class="title"><
a id="id2494298"></
a>Development Branch</
h3></
div></
div></
div><
p>
1056N/AImmediately after forming a release stable branch, the patch level
1056N/Anumber for the main development branch is bumped to 99, and the snapshot
1056N/Anumber is reset. The snapshot number is incremented for each tagged
1056N/Adevelopment snapshot. The git tag for snapshots is
1056N/AWhen the development branch enters feature
1056N/Afreeze, the snapshot number is bumped to 900. A stable branch may be
1056N/Acreated for the next full release at any time after the feature freeze.
1056N/AWhen it is, the branch is called
1056N/Asnapshot number is incremented from there until the release is
1056N/Afinalised. Each of these snapshots is a “<
span class="quote">release candidate</
span>”. When the
1056N/Arelease is finalised, the minor version is incremented, the patch level
1056N/Ais set to zero, and the snapshot number removed.
1056N/AHere's an example which shows the version number sequence for the
1056N/Adevelopment leading up to version 1.8:
1056N/A</
p><
div class="variablelist"><
table border="0"><
col align="left" valign="top" /><
tbody><
tr><
td><
span class="term"><
code class="literal">1.7.99.1</
code></
span></
td><
td><
p>
1056N/AThe first snapshot of the pre-1.8 development branch.
1056N/A</
p></
td></
tr><
tr><
td><
span class="term"><
code class="literal">1.7.99.23</
code></
span></
td><
td><
p>
1056N/AThe twenty-third snapshot of the pre-1.8 development branch.
1056N/A</
p></
td></
tr><
tr><
td><
span class="term"><
code class="literal">1.7.99.900</
code></
span></
td><
td><
p>
1056N/AThe start of the 1.8 feature freeze.
1056N/A</
p></
td></
tr><
tr><
td><
span class="term"><
code class="literal">1.7.99.903</
code></
span></
td><
td><
p>
1056N/AThe third 1.8 release candidate.
1056N/A</
p></
td></
tr><
tr><
td><
span class="term"><
code class="literal">1.8.0</
code></
span></
td><
td><
p>
1056N/A</
p></
td></
tr><
tr><
td><
span class="term"><
code class="literal">1.8.99.1</
code></
span></
td><
td><
p>
1056N/AThe first pre-1.9 development snapshot, which is the first main
1056N/Abranch snapshot after creating the 1.8 stable branch.
1056N/A</
p></
td></
tr></
tbody></
table></
div><
p>
1056N/A</
p></
div><
div class="sect2" lang="en" xml:
lang="en"><
div class="titlepage"><
div><
div><
h3 class="title"><
a id="id2466380"></
a>Stable Branch</
h3></
div></
div></
div><
p>
1056N/AAfter a full release, the stable branch for the release will be
1056N/Amaintained with bug fixes and important updates until the next full
1056N/Arelease. Any snapshots on this branch are considered “<
span class="quote">release
1056N/Acandidates,</
span>” which is indicated by setting <
em class="replaceable"><
code>s</
code></
em>
1056N/A900. The snapshot number is incremented for each release candidate
1056N/Auntil the update release is finalised. The patch level value
1056N/A(<
em class="replaceable"><
code>P</
code></
em>) is incremented for each update release.
1056N/AHere's an example which shows a version number sequence for a
1.8.x 1056N/A</
p><
div class="variablelist"><
table border="0"><
col align="left" valign="top" /><
tbody><
tr><
td><
span class="term"><
code class="literal">1.8.0</
code></
span></
td><
td><
p>
1056N/A</
p></
td></
tr><
tr><
td><
span class="term"><
code class="literal">1.8.0.901</
code></
span></
td><
td><
p>
1056N/AThe first pre 1.8.1 snapshot.
1056N/A</
p></
td></
tr><
tr><
td><
span class="term"><
code class="literal">1.8.0.903</
code></
span></
td><
td><
p>
1056N/AThe third pre 1.8.1 snapshot, also known as the third 1.8.1 release
1056N/A</
p></
td></
tr><
tr><
td><
span class="term"><
code class="literal">1.8.1</
code></
span></
td><
td><
p>
1056N/A</
p></
td></
tr><
tr><
td><
span class="term"><
code class="literal">1.8.1.901</
code></
span></
td><
td><
p>
1056N/AThe first pre 1.8.2 snapshot.
1056N/A</
p></
td></
tr><
tr><
td><
span class="term"><
code class="literal">1.8.2</
code></
span></
td><
td><
p>
1056N/A</
p></
td></
tr></
tbody></
table></
div><
p>
1056N/A</
p></
div></
div><
div class="sect1" lang="en" xml:
lang="en"><
div class="titlepage"><
div><
div><
h2 class="title" style="clear: both"><
a id="id2464673"></
a>Finding the
X.Org X Server Version From a Client</
h2></
div></
div></
div><
p>
1056N/AThe
X.Org X servers report a <
code class="function">VendorRelease</
code> value that
1056N/Amatches the
X.Org version number. There have been some cases of releases where
1056N/Athis value wasn't set correctly. The rules for interpreting this value
1056N/Aas well as the known exceptions are outlined here.
1056N/AAs noted above, the version reported by <
code class="function">VendorRelease</
code>
1056N/Achanged from the window system version to the X server version starting in
1056N/Athe xorg-server 1.3 release.
1056N/AFor all
X.Org development and release versions using this numbering
1056N/Ascheme, the <
code class="function">VendorRelease</
code> value is
1056N/A<
em class="replaceable"><
code>MMmmPPsss</
code></
em>. That is, version
1056N/A<
em class="replaceable"><
code>
M.m.P.s</
code></
em> has <
code class="function">VendorRelease</
code> set to
1056N/A<
code class="code">M * 10000000 + m * 100000 + P * 1000 + s</
code>.
1056N/AThe following is a code fragment taken from <
code class="filename">
xdpyinfo.c</
code>
1056N/Athat shows how the <
code class="function">VendorRelease</
code> information can be
1056N/A</
p><
pre class="programlisting">
1056N/A int vendrel = VendorRelease(dpy);
1056N/A printf("%d.%d.%d", vendrel / 10000000,
1056N/A printf(".%d", vendrel % 1000);
1056N/A</
p></
div></
div></
body></
html>