[Xfce4-commits] <www:nick/gettext> Write installation guide.
Nick Schermer
noreply at xfce.org
Sat Dec 18 21:12:01 CET 2010
Updating branch refs/heads/nick/gettext
to 7374d4755ecd14aac7022b771b84de0640d1ab29 (commit)
from 1d29069308527c89787977682e9a4b7a1c4e1fd3 (commit)
commit 7374d4755ecd14aac7022b771b84de0640d1ab29
Author: Nick Schermer <nick at xfce.org>
Date: Sat Dec 18 21:10:22 2010 +0100
Write installation guide.
index.php | 2 +
pages/download/building.php | 261 ++++++++++++++++++++++++++++++++++++++++
pages/download/development.php | 80 ------------
pages/download/index.php | 2 +-
pages/download/nav.php | 2 +-
pages/footer.php | 6 +
style/base.css | 40 ++++++-
7 files changed, 308 insertions(+), 85 deletions(-)
diff --git a/index.php b/index.php
index 5ee4c8a..a620737 100644
--- a/index.php
+++ b/index.php
@@ -1,6 +1,7 @@
<?php
error_reporting(E_ALL | E_STRICT);
+date_default_timezone_set ('UTC');
function microtime_float ()
{
@@ -44,6 +45,7 @@ if (str_has_prefix ($uri, 'download/changelogs/'))
echo $contents;
/* end with the footer */
+$footer['mtime'] = date ('Y/m/d G:i', filemtime ($content_file));
include ('pages/footer.php');
$timer_end = microtime_float ();
diff --git a/pages/download/building.php b/pages/download/building.php
new file mode 100644
index 0000000..b64b1c8
--- /dev/null
+++ b/pages/download/building.php
@@ -0,0 +1,261 @@
+<?php
+
+$head['title'] = R_('Building');
+
+$toc['anchors'] = array (
+ 'version' => R_('Version'),
+ 'source' => R_('Source'),
+ 'dependencies' => R_('Dependencies'),
+ 'building' => R_('Building'),
+ 'help' => R_('Help'));
+?>
+
+
+<h1><?php echo $head['title'] ?></h1>
+
+<p>
+ <?php E_('To compile a complete Xfce desktop from source requires some information about the dependency chain and the various configure options available in each module. This page will describe this in detail, so you can compile your own Xfce desktop; both system wide as well as in your $HOME directory.') ?>
+</p>
+
+<h2 id="version"><?php E_('Version') ?></h2>
+<p>
+ <?php E_('First you need to decide which version of Xfce you want to compile. Version numbers are mostly build like this: 1.2.3 => major.minor.micro. If the minor version is an even number, it is a stable release, odd number are development snapshots. The micro number increases each release. Also keep the major.minor version the same for the core components (some packages don\'t follow those numbers) else you will most likely get dependency version problems during compiling.') ?>
+</p>
+
+<p>
+ <?php E_('The latest releases available can be found on the <a href="/download">download page</a>. You can also build from the source repositories if you have enough experience, more about that below.') ?>
+</p>
+
+<h2 id="source"><?php E_('Source') ?></h2>
+<p>
+ <?php E_('If you\'ve decided which version you want to compile, there are a couple of ways to download the source code. You can choose to build official released packages or clone the source repositories. Choosing the released packages is recommended here; the source repositories could be broken and are not suitable for production environments, but on the other hand always contains the latest features, bug fixes and translations.') ?>
+</p>
+
+<p>
+ <?php E_('If your not sure what to choose: easiest is to start with the latest stable fat-tarball of a collection release.') ?>
+</p>
+
+<h3><?php E_('Released packages') ?></h3>
+<p>
+ <?php E_('Xfce packages have two types of releases. Click the links to open the the download locations.') ?>
+ <ul>
+ <li><a href="http://archive.xfce.org/xfce/" class="external"><?php E_('Collection releases of the core modules') ?></a>
+ <p>
+ <?php E_('From time to time a new collection release if Xfce is made. A collection release consists of a number of individual tarballs and a fat-tarball that contains all the individual tarballs.') ?>
+ </p>
+
+ <p>
+ <?php E_('The collection releases always contain the correct versions to build the other packages in the release. If you want the latest version of each package, you can start with a collection release and then look for individual bug fix releases, explained in the item below.') ?>
+ </p>
+ </li>
+
+ <li><a href="http://archive.xfce.org/src/xfce/" class="external"><?php E_('Individual releases') ?></a>
+ <p>
+ <?php E_('Each package in Xfce is allowed to make development and stable releases at any time, see the <a href="/development/releasemodel">release model</a> documentation for more information.') ?>
+ </p>
+ </li>
+ </ul>
+</p>
+
+<h3><?php E_('From the code repository') ?></h3>
+<p>
+ <?php E_('For the latest code you need to make local copies of the GIT repositories, this is the place where developers submit their code. It you decide to use GIT, try to use the same branch for all the packages to avoid dependency version problems.') ?>
+</p>
+
+<p>
+ <?php E_('You first need to make clones of each GIT repository, like the command below, where <em>$category</em> is for example <em>xfce</em> and <em>$module</em> <em>xfce4-panel</em>. If you click on a module in the online <a href="http://git.xfce.org/xfce" class="external">repository list</a> the clone uri is shown at the buttom of the page.') ?>
+</p>
+
+<p>
+ <code>git clone git://git.xfce.org/$category/$module</code>
+</p>
+
+<p>
+ <?php E_('After the repository is cloned you need to choose which branch you want to compile. By default the <em>master</em> branch is selected, but there are also branches for stable releases like <em>xfce-4.6</em>. The stable branches contain the latest bug fixes without any major new feature, the <em>master</em> branch is the development version for the next release of Xfce. Both should not be used in a production environment.') ?>
+</p>
+
+<p>
+ <?php E_('To switch to another branch (<em>git branch -a</em> lists all available branches) run the following command inside the cloned directory to switch to, for example, the <em>xfce-4.6</em> branch:') ?>
+</p>
+
+<p>
+ <code>git checkout --track origin/xfce-4.6</code>
+</p>
+
+<p>
+ <?php E_('After this you can update your local copy of the repository with <em>git pull</em> and switch to another branch with <em>git checkout $branchname</em>. Read the <a href="http://git-scm.com/documentation" class="external">GIT manuals</a> for more information about using GIT.') ?>
+</p>
+
+<h2 id="dependencies"><?php E_('Dependencies')?></h2>
+
+<h3><?php E_('Build requirements')?></h3>
+<p>
+ <?php E_('Before you can start compiling, you need a couple of packages that are required to compile Xfce. Use your distributions package manager to install those packages. Additional packages are required too for some modules, but we\'ll get to that later.') ?>
+
+ <ul>
+ <li><a href="http://en.wikipedia.org/wiki/GNU_toolchain" class="external"><?php E_('A working GNU toolchain')?></a></li>
+ <li><?php E_('Gtk+ and Glib headers, in some distributions called the <em>-devel</em> packages')?>
+ <ul>
+ <li><?php E_('Xfce 4.8 requires Gtk+ 2.14 and Glib 2.20')?></li>
+ <li><?php E_('Xfce 4.6 requires Gtk+ 2.10 and Glib 2.12')?></li>
+ </ul>
+ </li>
+ <li>pkgconfig</li>
+ <li><?php E_('Coffee') ?></li>
+ </ul>
+</p>
+
+<h3><?php E_('Xfce\'s dependency chain') ?></h3>
+<p>
+ <?php E_('The Xfce packages need to be build in a specific order. If you don\'t follow this compile options might not be available or the configure stage will abort because of missing dependencies.') ?>
+
+ <ul>
+ <li>xfce4-dev-tools (<?php E_('only required if you build from GIT') ?>)</li>
+ <li>libxfce4util</li>
+ <li>xfconf</li>
+ <li>libxfce4ui (<?php E_('new in 4.8') ?>), libxfcegui4 (<?php E_('deprecated since 4.8') ?>), libxfce4menu (<?php E_('deprecated since 4.8') ?>), garcon (<?php E_('new in 4.8') ?>) & exo</li>
+ <li>xfce4-panel</li>
+ <li>thunar</li>
+ <li>xfce4-settings, xfce4-session, xfdesktop, xfwm4, xfce-utils, xfce4-appfinder, ...</li>
+ </ul>
+</p>
+
+<h3><?php E_('Package specific dependencies') ?></h3>
+<p>
+ <?php E_('Some core packages in Xfce have addition or optional dependencies, all are listed in the table below for the latest stable version. We only show the top package as dependency (so xfce4-panel also requires gtk+, but libxfce4ui already depends on that). Note that some of the package names may vary between distributions.') ?>
+</p>
+
+<table>
+ <tr>
+ <th>Package</td>
+ <th>Dependency(-ies)</td>
+ <th>Optional Dependency(-ies)</td>
+ </tr>
+ <tr>
+ <td>xfce4-dev-tools</td>
+ <td>autoconf, automake, intltool, pkgconfig</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>libxfce4util</td>
+ <td>glib</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>libxfce4ui</td>
+ <td>libxfce4util, gtk+</td>
+ <td>xfconf, libstartup-notification, libgladeui</td>
+ </tr>
+ <tr>
+ <td>xfconf</td>
+ <td>libxfce4util, dbus-glib</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>libxfcegui4</td>
+ <td>libxfce4util, gtk+, libglade</td>
+ <td>libstartup-notification, libgladeui, xfconf</td>
+ </tr>
+ <tr>
+ <td>exo</td>
+ <td>libxfce4util, gtk+, perl-uri</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>xfce4-panel</td>
+ <td>libxfce4ui, exo, garcon, libwnck</td>
+ <td>libstartup-notification</td>
+ </tr>
+ <tr>
+ <td>thunar</td>
+ <td>libxfce4ui, exo, libpng, gtk+, glib</td>
+ <td>libexif, dbus-glib, gconf, libstartup-notification, freetype, libjpeg, libxfce4panel, xfconf</td>
+ </tr>
+ <tr>
+ <td>xfce4-settings</td>
+ <td>libxfce4ui, exo, xfconf, dbus-glib, libXi, libXrandr</td>
+ <td>libXcursor, libnotify</td>
+ </tr>
+ <tr>
+ <td>xfce4-session</td>
+ <td>libxfce4ui, perl-xml-parser, libwnck, dbus-glib</td>
+ <td>gnome-keyring, gconf</td>
+ </tr>
+ <tr>
+ <td>xfwm4</td>
+ <td>libxfce4util, libxfcegui4, libxfconf, dbus-glib, libwnck</td>
+ <td>libstartup-notification</td>
+ </tr>
+ <tr>
+ <td>xfdesktop</td>
+ <td>libxfce4ui, xfconf, libwnck</td>
+ <td>exo, thunarx, garcon, libnotify</td>
+ </tr>
+ <tr>
+ <td>xfce4-appfinder</td>
+ <td>libxfce4ui, garcon</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>xfce-utils</td>
+ <td>libxfce4ui</td>
+ <td>dbus-glib</td>
+ </tr>
+ <tr>
+ <td nowrap>gtk-xfce-engine-2</td>
+ <td>gtk+</td>
+ <td> </td>
+ </tr>
+</table>
+
+<h2 id="building"><?php E_('Building') ?></h2>
+<h3><?php E_('Insallation location and variables')?></h3>
+<p>
+ <?php E_('Now it is finally time to start compiling the Xfce desktop. Last remaining thing is to choose an installation location. Possible examples are <em>/usr</em>, <em>/usr/local</em> and <em>/opt/xfce4</em> for a system-wide installation or <em>$HOME/local</em> if you want to install in your home directory (whatever you choose, never put spaces in the name). We will referrer to this location as <em>${PREFIX}</em> in the code examples below!') ?>
+</p>
+
+<p>
+ <?php E_('You need to make sure the <em>PKG_CONFIG_PATH</em> variable include the path to the *.pc files installed by the Xfce libraries:') ?>
+</p>
+
+<p>
+ <code>export PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig:$PKG_CONFIG_PATH</code>
+</p>
+
+<p>
+ <?php E_('You can also set some optimization flags for the compiler. This may speed up Xfce, but can also make debugging impossible on some systems. Even worse, this can also cause gcc to generate broken code, so be carefull with this. The line below should be safe for most system.') ?>
+</p>
+
+<p>
+ <code>export CFLAGS=-O2 -pipe</code>
+</p>
+
+<h3><?php E_('Compiling and installing') ?></h3>
+<p>
+ <?php E_('Next step is compiling the various packages following the dependency chain above. If you have downloaded the tarballs, you need to unpack them before going on. Inside each package directory you should run the following command:') ?>
+</p>
+
+<p>
+ <code>./configure --prefix=${PREFIX} && make && make install</code>
+</p>
+
+<p>
+ <?php E_('To build from GIT you need need to install the xfce4-dev-tools package first, all other packages should be installed with this command:') ?>
+</p>
+
+<p>
+ <code>./autogen.sh --enable-maintainer-mode --prefix=${PREFIX} && make && make install</code>
+</p>
+
+<p>
+ <?php E_('Specific configure options for each package can be shown with <em>./configure --help</em>. Note that most packages benefit if you pass the configure option <em>--disable-debug</em>, however if you want to provide backtraces or test new code, no <em>CFLAGS</em>, no binary stripping and <em>--enable-debug=full</em> are recommended.') ?>
+</p>
+
+<h2 id="help"><?php E_('Help') ?></h2>
+<p>
+ <?php E_('Hopefully everything went fine after reading this guide. If you still have problems or questions you can ask on the <a href="/community#mail">Xfce users mailing list</a>, the <a href="http://forum.xfce.org" class="external">forum</a> or ask distribution related questions on their forums and mailing lists.') ?>
+</p>
+
+<p>
+ <?php E_('Have fun building Xfce!') ?>
+</p>
diff --git a/pages/download/development.php b/pages/download/development.php
deleted file mode 100644
index 4e8ae97..0000000
--- a/pages/download/development.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php $head['title'] = R_('Development source code') ?>
-
-
-<?php include ('pages/versions.php'); ?>
-
-<h1><?php echo $head['title'] ?></h1>
-<p>
- <?php E_('If you want to build Xfce from source code, you can either download the source tarballs of a released version of Xfce from our <a href="/download">download page</a>, or try a development version, by downloading it from GIT (only for the adventurous). Please note that installing two different versions of Xfce (ie. stable and development) is not supported.') ?>
-</p>
-
-<h3><?php printf (R_('Latest released version (%s)'), $stable_version) ?></h3>
-<p>
- <?php E_('This version contains the latest bug fixes, without any major new feature. This should be more stable than the development version (and even than the last official release), but there is still no guarantee that this version is bug free.') ?>
-</p>
-
-<h3><?php printf (R_('Latest development version (%s)'), $preview_version) ?></h3>
-<p>
- <?php E_('This version contains the latest development updates and bug fixes. There is no guarantee that it\'s fully working and bug free.') ?>
-</p>
-
-<h2><?php E_('Getting the source code') ?></h2>
-<p>
-<?php E_('To get a list of available modules and components, you can <a href="http://git.xfce.org/" class="external">browse the GIT repositories</a>.') ?>
-</p>
-
-<h3><?php printf (R_('Latest released version (%s) from the GIT repositories'), $stable_version) ?></h3>
-
-<p><?php E_('You can download the desired modules with the following command:') ?></p>
-
-<p>
- <code>git clone -b xfce-4.6 git://git.xfce.org/{category}/{modulename}</code>
-</p>
-
-<p><?php E_('For example:') ?></p>
-<p>
- <code>git clone -b xfce-4.6 git://git.xfce.org/xfce/xfce4-panel</code>
-</p>
-
-<h3><?php printf(R_('Latest development version (%s) from the GIT repositories'), $preview_version) ?></h3>
-<p>
- <?php E_('You can download the desired modules with the following command:') ?></p>
-
-<p>
- <code>git clone git://git.xfce.org/category/$modulename</code>
-</p>
-
-<p><?php E_('For example:') ?></p>
-
-<p>
- <code>git clone git://git.xfce.org/xfce/xfce4-panel</code>
-</p>
-
-<div class="tip"><?php E_('To synchronize your local copy (checkout) of the release or development tree with the one on the server you can run <code>git pull</code> instead of <code>git clone</code>. This will speed up the process and minimize the Xfce server transfer.') ?>
-</div>
-
-<h2><?php E_('Building the modules') ?></h2>
-
-<p>
- <?php E_('If you have downloaded the tarballs, you need to unpack them before going on.') ?>
-</p>
-
-<p>
- <?php E_('If you install into a different prefix from pkg-config, you have to set the PKG_CONFIG_PATH variable to include the path to the *.pc files installed by the Xfce libraries, which is ${prefix}/lib/pkgconfig. For example:') ?>
-</p>
-
-<p>
- <code>export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig</code>
-</p>
-
-<p><?php E_('To build the modules from the tarballs just run:') ?></p>
-
-<p>
- <code>./configure --prefix=/usr/local && make && make install</code>
-</p>
-
-<p><?php E_('To build the Xfce modules from GIT (you need the xfce4-dev-tools package) run this command:') ?></p>
-
-<p><code>./autogen.sh --prefix=/usr/local && make && make install</code></p>
-
-<p><?php E_('The <a href="/download/requirements">requirements</a> page lists all the required dependencies and the build order of the modules.') ?></p>
diff --git a/pages/download/index.php b/pages/download/index.php
index 3944564..ca453b1 100644
--- a/pages/download/index.php
+++ b/pages/download/index.php
@@ -31,7 +31,7 @@ function print_servers($path)
<h1><?php echo $head['title'] ?></h1>
<p>
- <?php E_('Most distributions ship with Xfce in their own packaging format, but if you want a newer version or you want to build Xfce from scratch, you can find the packages below. You can also take a look at the list of <a href="/download/distros">Xfce-oriented distributions</a>.') ?>
+ <?php E_('Most distributions ship with Xfce in their own packaging format, but if you want a newer version or you want to build Xfce from scratch, you can find the packages below. Instructions how to compile Xfce can be found <a href="/download/building">here</a>. You can also take a look at the list of <a href="/download/distros">Xfce-oriented distributions</a>.') ?>
</p>
<h2 id="stable"><?php printf (R_('Stable release %s'), $stable_version) ?></h2>
diff --git a/pages/download/nav.php b/pages/download/nav.php
index 6729b39..1ac1869 100644
--- a/pages/download/nav.php
+++ b/pages/download/nav.php
@@ -4,7 +4,7 @@ include ('pages/versions.php');
$toc['menu'] = array (
'download' => R_('Download'),
- 'download/development' => R_('Development'),
+ 'download/building' => R_('Building'),
'download/changelogs' => R_('Changelogs'),
'download/distros' => R_('Distributions'));
diff --git a/pages/footer.php b/pages/footer.php
index c6be8dd..875e5a9 100644
--- a/pages/footer.php
+++ b/pages/footer.php
@@ -1,4 +1,10 @@
</div> <!-- page-contents -->
+ <div id="footer">
+ <hr />
+ <p>
+ <?php printf (R_('Copyright %s Xfce Development Team. This page was last modified on %s.'), '2003-'.date ('Y'), $footer['mtime']) ?>
+ </p>
+ </div>
</div> <!-- page-wrap -->
</body>
diff --git a/style/base.css b/style/base.css
index 41d0313..57b0f3e 100644
--- a/style/base.css
+++ b/style/base.css
@@ -3,8 +3,8 @@
body {
margin: 0;
padding: 0;
- line-height: 1.7em;
font: 80% Verdana, Arial, Helvetica, sans-serif;
+ line-height: 1.7em;
}
#page-wrap {
@@ -80,10 +80,35 @@ body {
font-size: 140%;
}
+#footer {
+ color: #999;
+ font-size: small;
+ margin-bottom: 5em;
+}
+
+#footer hr {
+ margin: 2em 0 0.5em 0;
+ height: 1px;
+ background: #ccc;
+ border: 0;
+}
+
+#footer p {
+ margin: 0;
+ padding: 0;
+}
+
table th {
text-align: left;
}
+p em {
+ background-color: #ccc;
+ font-family: monospace;
+ font-style: normal;
+ padding: 0.1em 0.2em;
+}
+
table tr:nth-child(even) {
background: #ccc;
}
@@ -121,6 +146,15 @@ a:hover {
color: #f00;
}
+code {
+ font-family: monospace;
+ color: #fff;
+ background-color: #333;
+ display: inline-block;
+ padding: 0.7em;
+ white-space: pre;
+}
+
.clearboth {
clear: both;
}
@@ -139,5 +173,5 @@ a:hover {
}
.center {
- text-align: center;
- }
+ text-align: center;
+}
More information about the Xfce4-commits
mailing list