Versions.html revision 1276
207N/A<?xml version="1.0" encoding="UTF-8"?>
207N/A<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
207N/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><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot_9276" /><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." /><style xmlns="" type="text/css">/*
207N/A * Copyright (c) 2011 Gaetan Nadon
207N/A * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
207N/A *
207N/A * Permission is hereby granted, free of charge, to any person obtaining a
207N/A * copy of this software and associated documentation files (the "Software"),
207N/A * to deal in the Software without restriction, including without limitation
207N/A * the rights to use, copy, modify, merge, publish, distribute, sublicense,
207N/A * and/or sell copies of the Software, and to permit persons to whom the
207N/A * Software is furnished to do so, subject to the following conditions:
207N/A *
207N/A * The above copyright notice and this permission notice (including the next
207N/A * paragraph) shall be included in all copies or substantial portions of the
207N/A * Software.
207N/A *
207N/A * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
207N/A * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
207N/A * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
207N/A * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
207N/A * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
207N/A * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
207N/A * DEALINGS IN THE SOFTWARE.
207N/A */
207N/A
207N/A/*
207N/A * Shared stylesheet for X.Org documentation translated to HTML format
207N/A * http://www.sagehill.net/docbookxsl/UsingCSS.html
207N/A * http://www.w3schools.com/css/default.asp
207N/A * https://addons.mozilla.org/en-US/firefox/addon/web-developer/developers
207N/A * https://addons.mozilla.org/en-US/firefox/addon/font-finder/
207N/A */
282N/A
207N/A/*
261N/A * The sans-serif fonts are considered more legible on a computer screen
320N/A * http://dry.sailingissues.com/linux-equivalents-verdana-arial.html
312N/A *
207N/A */
207N/Abody {
207N/A font-family: "Bitstream Vera Sans", "DejaVu Sans", Tahoma, Geneva, Arial, Sans-serif;
207N/A /* In support of using "em" font size unit, the w3c recommended method */
207N/A font-size: 100%;
207N/A}
207N/A
207N/A/*
207N/A * Selection: all elements requiring mono spaced fonts.
207N/A *
207N/A * The family names attempt to match the proportionally spaced font
207N/A * family names such that the same font name is used for both.
207N/A * We'd like to use Bitstream, for example, in both proportionally and
207N/A * mono spaced font text.
480N/A */
207N/A.command,
207N/A.errorcode,
207N/A.errorname,
207N/A.errortype,
207N/A.filename,
207N/A.funcsynopsis,
207N/A.function,
207N/A.parameter,
207N/A.programlisting,
207N/A.property,
207N/A.screen,
207N/A.structname,
207N/A.symbol,
207N/A.synopsis,
207N/A.type
207N/A{
207N/A font-family: "Bitstream Vera Sans Mono", "DejaVu Sans Mono", Courier, "Liberation Mono", Monospace;
207N/A}
207N/A
207N/A/*
253N/A * Books have a title page, a preface, some chapters and appendices,
359N/A * a glossary, an index and a bibliography, in that order.
207N/A *
359N/A * An Article has no preface and no chapters. It has sections, appendices,
274N/A * a glossary, an index and a bibliography.
320N/A */
274N/A
207N/A/*
207N/A * Selection: book main title and subtitle
207N/A */
207N/Adiv.book>div.titlepage h1.title,
207N/Adiv.book>div.titlepage h2.subtitle {
207N/A text-align: center;
207N/A}
207N/A
207N/A/*
207N/A * Selection: article main title and subtitle
207N/A */
207N/Adiv.article>div.titlepage h2.title,
207N/Adiv.article>div.titlepage h3.subtitle,
207N/Adiv.article>div.sect1>div.titlepage h2.title,
207N/Adiv.article>div.section>div.titlepage h2.title {
207N/A text-align: center;
207N/A}
207N/A
207N/A/*
207N/A * Selection: various types of authors and collaborators, individuals or corporate
207N/A *
207N/A * These authors are not always contained inside an authorgroup.
207N/A * They can be contained inside a lot of different parent types where they might
261N/A * not be centered.
459N/A * Reducing the margin at the bottom makes a visual separation between authors
207N/A * We specify here the ones on the title page, others may be added based on merit.
459N/A */
261N/Adiv.titlepage .authorgroup,
207N/Adiv.titlepage .author,
207N/Adiv.titlepage .collab,
207N/Adiv.titlepage .corpauthor,
207N/Adiv.titlepage .corpcredit,
261N/Adiv.titlepage .editor,
207N/Adiv.titlepage .othercredit {
459N/A text-align: center;
207N/A margin-bottom: 0.25em;
312N/A}
207N/A
207N/A/*
207N/A * Selection: the affiliation of various types of authors and collaborators,
261N/A * individuals or corporate.
207N/A */
207N/Adiv.titlepage .affiliation {
207N/A text-align: center;
261N/A}
261N/A
261N/A/*
261N/A * Selection: product release information (X Version 11, Release 7)
261N/A *
261N/A * The releaseinfo element can be contained inside a lot of different parent
468N/A * types where it might not be centered.
261N/A * We specify here the one on the title page, others may be added based on merit.
261N/A */
261N/Adiv.titlepage p.releaseinfo {
207N/A font-weight: bold;
207N/A text-align: center;
261N/A}
207N/A
207N/A/*
207N/A * Selection: publishing date
261N/A */
261N/Adiv.titlepage .pubdate {
261N/A text-align: center;
261N/A}
261N/A
261N/A/*
261N/A * The legal notices are displayed in smaller sized fonts
320N/A * Justification is only supported in IE and therefore not requested.
261N/A *
261N/A */
261N/A.legalnotice {
207N/A font-size: small;
207N/A font-style: italic;
207N/A}
460N/A
338N/A/*
207N/A * For documentation having multiple licenses, the copyright and legalnotice
207N/A * elements sequence cannot instantiated multiple times.
207N/A * The copyright notice and license text are therefore coded inside a legalnotice
207N/A * element. The role attribute on the paragraph is used to allow styling of the
207N/A * copyright notice text which should not be italicized.
207N/A */
207N/Ap.multiLicensing {
207N/A font-style: normal;
460N/A font-size: medium;
460N/A}
460N/A
460N/A/*
207N/A * Selection: book or article main ToC title
359N/A * A paragraph is generated for the title rather than a level 2 heading.
359N/A * We do not want to select chapters sub table of contents, only the main one
460N/A */
460N/Adiv.book>div.toc>p,
460N/Adiv.article>div.toc>p {
207N/A font-size: 1.5em;
207N/A text-align: center;
207N/A}
296N/A
296N/A/*
296N/A * Selection: major sections of a book or an article
207N/A *
207N/A * Unlike books, articles do not have a titlepage element for appendix.
207N/A * Using the selector "div.titlepage h2.title" would be too general.
207N/A */
296N/Adiv.book>div.preface>div.titlepage h2.title,
207N/Adiv.book>div.chapter>div.titlepage h2.title,
207N/Adiv.article>div.sect1>div.titlepage h2.title,
207N/Adiv.article>div.section>div.titlepage h2.title,
253N/Adiv.book>div.appendix>div.titlepage h2.title,
253N/Adiv.article>div.appendix h2.title,
274N/Adiv.glossary>div.titlepage h2.title,
207N/Adiv.index>div.titlepage h2.title,
207N/Adiv.bibliography>div.titlepage h2.title {
207N/A /* Add a border top over the major parts, just like printed books */
274N/A /* The Gray color is already used for the ruler over the main ToC. */
274N/A border-top-style: solid;
274N/A border-top-width: 2px;
274N/A border-top-color: Gray;
274N/A /* Put some space between the border and the title */
297N/A padding-top: 0.2em;
274N/A text-align: center;
464N/A}
274N/A
439N/A/*
439N/A * A Screen is a verbatim environment for displaying text that the user might
439N/A * see on a computer terminal. It is often used to display the results of a command.
464N/A *
439N/A * http://www.css3.info/preview/rounded-border/
297N/A */
439N/A.screen {
460N/A background: #e0ffff;
439N/A border-width: 1px;
274N/A border-style: solid;
460N/A border-color: #B0C4DE;
460N/A border-radius: 1.0em;
274N/A /* Browser's vendor properties prior to CSS 3 */
274N/A -moz-border-radius: 1.0em;
274N/A -webkit-border-radius: 1.0em;
274N/A -khtml-border-radius: 1.0em;
207N/A margin-left: 1.0em;
459N/A margin-right: 1.0em;
207N/A padding: 0.5em;
459N/A}
359N/A
359N/A/*
459N/A * Emphasis program listings with a light shade of gray similar to what
359N/A * DocBook XSL guide does: http://www.sagehill.net/docbookxsl/ProgramListings.html
359N/A * Found many C API docs on the web using like shades of gray.
359N/A */
359N/A.programlisting {
207N/A background: #F4F4F4;
207N/A border-width: 1px;
255N/A border-style: solid;
207N/A border-color: Gray;
456N/A padding: 0.5em;
460N/A}
460N/A
460N/A/*
274N/A * Emphasis functions synopsis using a darker shade of gray.
274N/A * Add a border such that it stands out more.
207N/A * Set the padding so the text does not touch the border.
274N/A */
274N/A.funcsynopsis, .synopsis {
274N/A background: #e6e6fa;
456N/A border-width: 1px;
274N/A border-style: solid;
274N/A border-color: Gray;
274N/A clear: both;
274N/A margin: 0.5em;
274N/A padding: 0.25em;
274N/A}
457N/A
457N/A/*
457N/A * Selection: paragraphs inside synopsis
207N/A *
457N/A * Removes the default browser margin, let the container set the padding.
207N/A * Paragraphs are not always used in synopsis
457N/A */
457N/A.funcsynopsis p,
457N/A.synopsis p {
457N/A margin: 0;
457N/A padding: 0;
457N/A}
274N/A
207N/A/*
207N/A * Selection: variable lists, informal tables and tables
207N/A *
207N/A * Note the parameter name "variablelist.as.table" in xorg-xhtml.xsl
207N/A * A table with rows and columns is constructed inside div.variablelist
207N/A *
508N/A * Set the left margin so it is indented to the right
207N/A * Display informal tables with single line borders
207N/A */
359N/Atable {
359N/A margin-left: 0.5em;
359N/A border-collapse: collapse;
207N/A}
207N/A
359N/A/*
253N/A * Selection: paragraphs inside tables
253N/A *
253N/A * Removes the default browser margin, let the container set the padding.
207N/A * Paragraphs are not always used in tables
207N/A */
207N/Atd p {
207N/A margin: 0;
207N/A padding: 0;
270N/A}
270N/A
459N/A/*
270N/A * Add some space between the left and right column.
312N/A * The vertical alignment helps the reader associate a term
270N/A * with a multi-line definition.
270N/A */
270N/Atd, th {
270N/A padding-left: 1.0em;
359N/A padding-right: 1.0em;
270N/A vertical-align: top;
270N/A}
270N/A
459N/A.warning {
270N/A border: 1px solid red;
270N/A background: #FFFF66;
270N/A padding-left: 0.5em;
270N/A}
270N/A</style></head><body><div class="article"><div class="titlepage"><div><div><h2 class="title"><a id="Versions"></a>X.Org Version Numbering Schemes</h2></div><div><h3 class="corpauthor">
270N/AThe XFree86 Project, Inc
359N/A</h3></div><div><h3 class="corpauthor">
270N/AUpdated for X.Org by Keith Packard, Kevin E. Martin, and Alan Coopersmith
270N/A</h3></div><div><p class="pubdate">November 2010</p></div><div><div class="abstract"><p>
270N/AX.Org has adopted the same basic numbering scheme used by the XFree86
270N/AProject, Inc. for their releases. The actual numbers are different, but the
270N/Abasic scheme is the same. This document reflects the policy that X.Org uses.
459N/A</p></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl><dt><span class="sect1"><a href="#Module_Versions">Module Versions</a></span></dt><dt><span class="sect1"><a href="#Releases_Development_Streams_and_Branches">Releases, Development Streams, and Branches</a></span></dt><dt><span class="sect1"><a href="#Current_Version_Numbering_Scheme">Current Version Numbering Scheme</a></span></dt><dd><dl><dt><span class="sect2"><a href="#Development_Branch">Development Branch</a></span></dt><dt><span class="sect2"><a href="#Stable_Branch">Stable Branch</a></span></dt></dl></dd><dt><span class="sect1"><a href="#Finding_the_X.Org_X_Server_Version_From_a_Client">Finding the X.Org X Server Version From a Client</a></span></dt></dl></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Module_Versions"></a>Module Versions</h2></div></div></div><p>
320N/AStarting with the X11R7.0 release, each module has its own version number.
270N/AFor those without a natural starting point, the version numbers started at
270N/A1.0. For instance, the X11R7.0 release included the xorg-server 1.0
270N/Amodule. As modules are released independently from the rest of the
270N/Awindow system, the module version is the most accurate source of version
270N/Ainformation. For instance, there are many X server releases in a year,
270N/Abut generally only one window system release, so an X server version number
270N/Asuch as 1.7.7 is more informative than the X11R7.5 version for the window
270N/Asystem <span class="quote">“<span class="quote">katamari</span>”</span> release.
207N/A</p><p>
207N/AUnfortunately, up through the X server 1.3 release, the X server
207N/Aused the Window System version when reporting its version number
359N/Ain log files, the -version option, and the connection setup string
359N/A(displayed by xdpyinfo). This was corrected with X server 1.3, which
359N/Acaused the visible version number string to appear to jump backwards
359N/Afrom 7.2 to 1.3.
359N/A</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Releases_Development_Streams_and_Branches"></a>Releases, Development Streams, and Branches</h2></div></div></div><p>
359N/AX.Org has two release branches for the X server software, and several
359N/Aother modules with active ongoing development.
207N/AFirst is the trunk of the git repository. This is
207N/Athe main development stream, where all new work and work for future
207N/Areleases is done.
320N/A</p><p>
207N/ASecond is the stable bugfix branch for the latest full release. It is
207N/Acreated around the time of the release. The branch will be named for the
207N/Arelease version, such as <span class="quote">“<span class="quote"><code class="literal">server-1.9-branch</code></span>”</span>
207N/Afor the X server 1.9.x series of releases.
320N/AFixes for bugs found in the release will be added to this branch (as
207N/Awell as the trunk), and updates to this release (if any) will be cut
359N/Afrom this branch. Similar stable branches are present for previous full
460N/Areleases.
460N/A</p><p>
460N/AThe X.Org Foundation is planning to make full releases from the main
359N/Adevelopment stream at regular intervals in the 6-12 month range. The
359N/Afeature freezes for these releases will usually be 2-3 months before the
359N/Arelease dates. This general plan is a goal, not a binding commitment.
207N/AThe actual release intervals and dates will depend to a large degree on
320N/Athe resource available to X.Org.
207N/AUpdate/bugfix releases will be made on an as-required basis,
207N/Adepending also on the availability of resources, and will generally be
207N/Alimited to serious bug and security fixes. New features will not
207N/Ausually be added in update releases.
207N/A</p><p>
508N/AAside from actual releases, snapshots of the active release branches
207N/Aare tagged in the git repository from time to time. Each such snapshot
207N/Ahas an identifiable version number.
359N/A</p></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Current_Version_Numbering_Scheme"></a>Current Version Numbering Scheme</h2></div></div></div><p>
359N/AStarting with the main development branch after X11R6.7, the X.Org
359N/Aversions are numbered according to the scheme outlined here.
207N/A</p><p>
207N/AThe version numbering format is <code class="literal">M.m.P.s</code>,
207N/Awhere <em class="replaceable"><code>M</code></em> is the major version number,
207N/A<em class="replaceable"><code>m</code></em> is the minor version number,
207N/A<em class="replaceable"><code>P</code></em> is the patch level, and
207N/A<em class="replaceable"><code>s</code></em> is the snapshot number.
207N/AFull releases have <em class="replaceable"><code>P</code></em> set to zero, and it is
207N/Aincremented for each subsequent bug fix release on the post-release
207N/Astable branch. The snapshot number <em class="replaceable"><code>s</code></em> is
207N/Apresent only for between-release snapshots of the development and
207N/Astable branches.
207N/A</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="Development_Branch"></a>Development Branch</h3></div></div></div><p>
320N/AImmediately after forming a release stable branch, the patch level
207N/Anumber for the main development branch is bumped to 99, and the snapshot
207N/Anumber is reset. The snapshot number is incremented for each tagged
207N/Adevelopment snapshot. The git tag for snapshots is
207N/A<span class="quote">“<span class="quote"><code class="literal">xorg-server-M.m.P.s</code></span>”</span>.
207N/AWhen the development branch enters feature
320N/Afreeze, the snapshot number is bumped to 900. A stable branch may be
207N/Acreated for the next full release at any time after the feature freeze.
207N/AWhen it is, the branch is called
320N/A<span class="quote">“<span class="quote"><code class="literal">server-M.m-branch</code></span>”</span>. The
207N/Asnapshot number is incremented from there until the release is
207N/Afinalised. Each of these snapshots is a <span class="quote">“<span class="quote">release candidate</span>”</span>. When the
207N/Arelease is finalised, the minor version is incremented, the patch level
207N/Ais set to zero, and the snapshot number removed.
207N/A</p><p>
508N/AHere's an example which shows the version number sequence for the
207N/Adevelopment leading up to version 1.8:
207N/A</p><p>
207N/A</p><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top" /></colgroup><tbody><tr><td><p><span class="term"><code class="literal">1.7.99.1</code></span></p></td><td><p>
207N/AThe first snapshot of the pre-1.8 development branch.
207N/A</p></td></tr><tr><td><p><span class="term"><code class="literal">1.7.99.23</code></span></p></td><td><p>
207N/AThe twenty-third snapshot of the pre-1.8 development branch.
207N/A</p></td></tr><tr><td><p><span class="term"><code class="literal">1.7.99.900</code></span></p></td><td><p>
207N/AThe start of the 1.8 feature freeze.
359N/A</p></td></tr><tr><td><p><span class="term"><code class="literal">1.7.99.903</code></span></p></td><td><p>
359N/AThe third 1.8 release candidate.
359N/A</p></td></tr><tr><td><p><span class="term"><code class="literal">1.8.0</code></span></p></td><td><p>
359N/AThe 1.8 release.
359N/A</p></td></tr><tr><td><p><span class="term"><code class="literal">1.8.99.1</code></span></p></td><td><p>
359N/AThe first pre-1.9 development snapshot, which is the first main
359N/Abranch snapshot after creating the 1.8 stable branch.
359N/A</p></td></tr></tbody></table></div><p>
359N/A</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a id="Stable_Branch"></a>Stable Branch</h3></div></div></div><p>
460N/AAfter a full release, the stable branch for the release will be
460N/Amaintained with bug fixes and important updates until the next full
460N/Arelease. Any snapshots on this branch are considered <span class="quote">“<span class="quote">release
359N/Acandidates,</span>”</span> which is indicated by setting <em class="replaceable"><code>s</code></em>
359N/Ato a number above
359N/A900. The snapshot number is incremented for each release candidate
359N/Auntil the update release is finalised. The patch level value
359N/A(<em class="replaceable"><code>P</code></em>) is incremented for each update release.
253N/A</p><p>
253N/AHere's an example which shows a version number sequence for a 1.8.x
253N/Astable branch:
207N/A</p><p>
207N/A</p><div class="variablelist"><table border="0" class="variablelist"><colgroup><col align="left" valign="top" /></colgroup><tbody><tr><td><p><span class="term"><code class="literal">1.8.0</code></span></p></td><td><p>
207N/AThe 1.8 release.
207N/A</p></td></tr><tr><td><p><span class="term"><code class="literal">1.8.0.901</code></span></p></td><td><p>
207N/AThe first pre 1.8.1 snapshot.
207N/A</p></td></tr><tr><td><p><span class="term"><code class="literal">1.8.0.903</code></span></p></td><td><p>
207N/AThe third pre 1.8.1 snapshot, also known as the third 1.8.1 release
207N/Acandidate.
207N/A</p></td></tr><tr><td><p><span class="term"><code class="literal">1.8.1</code></span></p></td><td><p>
207N/AThe 1.8.1 release.
207N/A</p></td></tr><tr><td><p><span class="term"><code class="literal">1.8.1.901</code></span></p></td><td><p>
207N/AThe first pre 1.8.2 snapshot.
207N/A</p></td></tr><tr><td><p><span class="term"><code class="literal">1.8.2</code></span></p></td><td><p>
207N/AThe 1.8.2 release.
359N/A</p></td></tr></tbody></table></div><p>
359N/A</p></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="Finding_the_X.Org_X_Server_Version_From_a_Client"></a>Finding the X.Org X Server Version From a Client</h2></div></div></div><p>
359N/AThe X.Org X servers report a <code class="function">VendorRelease</code> value that
359N/Amatches the X.Org version number. There have been some cases of releases where
359N/Athis value wasn't set correctly. The rules for interpreting this value
359N/Aas well as the known exceptions are outlined here.
359N/A</p><p>
506N/AAs noted above, the version reported by <code class="function">VendorRelease</code>
506N/Achanged from the window system version to the X server version starting in
506N/Athe xorg-server 1.3 release.
506N/A</p><p>
359N/AFor all X.Org development and release versions using this numbering
253N/Ascheme, the <code class="function">VendorRelease</code> value is
207N/A<em class="replaceable"><code>MMmmPPsss</code></em>. That is, version
207N/A<em class="replaceable"><code>M.m.P.s</code></em> has <code class="function">VendorRelease</code> set to
207N/A<code class="code">M * 10000000 + m * 100000 + P * 1000 + s</code>.
207N/A</p><p>
207N/AThe following is a code fragment taken from <code class="filename">xdpyinfo.c</code>
207N/Athat shows how the <code class="function">VendorRelease</code> information can be
207N/Ainterpreted.
207N/A</p><p>
207N/A
212N/A</p><pre class="programlisting">
212N/A if (strstr(ServerVendor(dpy), "X.Org")) {
212N/A int vendrel = VendorRelease(dpy);
212N/A
320N/A printf("X.Org version: ");
212N/A printf("%d.%d.%d", vendrel / 10000000,
212N/A (vendrel / 100000) % 100,
207N/A (vendrel / 1000) % 100);
207N/A if (vendrel % 1000) {
207N/A printf(".%d", vendrel % 1000);
207N/A }
207N/A }
207N/A</pre><p>
224N/A
460N/A</p></div></div></body></html>
460N/A