Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
xfce:building [2019/06/22 12:00] – [Build requirements] skunnyk | xfce:building [2019/09/08 01:45] – [Released packages] kevinbowen | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Building Xfce ====== | + | ====== Building Xfce from source |
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. | 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. | ||
- | ====== Version ====== | + | * **[[building# |
+ | * **[[building# | ||
+ | * **[[building# | ||
+ | * **[[building# | ||
+ | * **[[building# | ||
+ | |||
+ | ===== Choosing your Xfce version | ||
First you will need to decide on which version of Xfce that you want to compile. Xfce version numbers are constructed like this: 1.2.3 => major.minor.micro. If the minor version is an even number, this means that it is a stable release. An odd numbered minor version indicate a development, | First you will need to decide on which version of Xfce that you want to compile. Xfce version numbers are constructed like this: 1.2.3 => major.minor.micro. If the minor version is an even number, this means that it is a stable release. An odd numbered minor version indicate a development, | ||
Line 9: | Line 15: | ||
The latest releases available can be found on the [[http:// | The latest releases available can be found on the [[http:// | ||
- | ====== Source ====== | + | ===== Obtaining the Xfce source code ===== |
Once you have decided which version that you want to compile, there are a couple of ways to download the source code. You can either choose to build official released packages, or clone the source repositories. Choosing the released packages is the recommended option. The source repositories could possibly be broken and are not generally suitable for production environments. However, they always contains the latest features, bug fixes and translations. | Once you have decided which version that you want to compile, there are a couple of ways to download the source code. You can either choose to build official released packages, or clone the source repositories. Choosing the released packages is the recommended option. The source repositories could possibly be broken and are not generally suitable for production environments. However, they always contains the latest features, bug fixes and translations. | ||
- | If your are not sure what to choose, it is easiest to begin with the latest stable fat-tarball of a collection release. | + | If your are not sure which to choose, it is easiest to begin with the latest stable fat-tarball of a collection release. |
- | ===== Released packages | + | ==== Released packages ==== |
- | Xfce packages have two types of releases. Click the links, below, to open the the download locations. | + | Xfce packages have two types of releases: collection releases and individual |
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
- | ===== From the code repository | + | ==== From the code repository ==== |
For the latest code, you need to make local copies of the [[https:// | For the latest code, you need to make local copies of the [[https:// | ||
Line 37: | Line 43: | ||
After this, you can update your local copy of the repository with git pull and switch to another branch with '' | After this, you can update your local copy of the repository with git pull and switch to another branch with '' | ||
- | ====== Dependencies ====== | ||
- | ===== Build requirements | + | [[|Back To Top]] |
+ | ---- | ||
+ | ===== Xfce Dependencies explained ===== | ||
+ | |||
+ | ==== Build requirements ==== | ||
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. | 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. | ||
Line 57: | Line 66: | ||
- | ===== Xfce's dependency chain ===== | + | ==== Xfce's dependency chain ==== |
The Xfce packages need to be built 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. | The Xfce packages need to be built 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. | ||
Line 64: | Line 73: | ||
* libxfce4util | * libxfce4util | ||
* xfconf | * xfconf | ||
- | * libxfce4ui, garcon, < | + | * libxfce4ui |
- | * exo | + | * garcon, |
- | * xfce4-panel | + | |
* thunar | * thunar | ||
- | * xfce4-settings, | + | * xfce4-panel, |
- | ===== Package specific dependencies | + | ==== Package specific dependencies ==== |
Some core packages in Xfce have additional or optional dependencies, | Some core packages in Xfce have additional or optional dependencies, | ||
Line 78: | Line 86: | ||
| ^ Dependency(-ies) ^ Optional Dependency(-ies) ^ | | ^ Dependency(-ies) ^ Optional Dependency(-ies) ^ | ||
^ xfce4-dev-tools | autoconf, automake, intltool, pkgconfig | | | ^ xfce4-dev-tools | autoconf, automake, intltool, pkgconfig | | | ||
- | ^ libxfce4util | glib ((new in 4.10, was gobject in previous releaes)) | + | ^ libxfce4util | glib2 | | |
- | ^ xfconf | libxfce4util, | + | ^ xfconf | libxfce4util, |
^ libxfce4ui | libxfce4util, | ^ libxfce4ui | libxfce4util, | ||
- | ^ garcon | gio, libxfce4util | + | ^ garcon | gio, libxfce4util | | |
- | ^ libxfcegui4 ((deprecated, | + | ^ exo | libxfce4util, |
- | ^ exo | libxfce4util, | + | |
^ xfce4-panel | libxfce4ui, exo, garcon, libwnck | libstartup-notification | | ^ xfce4-panel | libxfce4ui, exo, garcon, libwnck | libstartup-notification | | ||
- | ^ thunar | libxfce4ui, exo, libpng, gtk+, glib | libexif, | + | ^ thunar | libxfce4ui, exo, libpng, gtk+, glib | libexif, |
- | ^ xfce4-settings | libxfce4ui, exo, xfconf, | + | ^ xfce4-settings | libxfce4ui, exo, xfconf, |
- | ^ xfce4-session | libxfce4ui, perl-xml-parser, | + | ^ xfce4-session | libxfce4ui, perl-xml-parser, |
- | ^ xfwm4 | libxfce4util, | + | ^ xfwm4 | libxfce4util, |
- | ^ xfdesktop | libxfce4ui, xfconf, libwnck, exo ((was optional in 4.8)) | thunarx, garcon, libnotify | | + | ^ xfdesktop | libxfce4ui, xfconf, libwnck, exo garcon |
- | ^ xfce4-appfinder | libxfce4ui, garcon, gio ((new dependency since 4.10)) | | | + | ^ xfce4-appfinder | libxfce4ui, garcon, gio | | |
- | ^ < | + | ^ tumbler | dbus-glib, gio, gmodule, gdk-pixbuf | freetype-config (fonts), jpeg (jpeg thumbnails from exif), libffmpegthumbnailer (video), gstreamer-1.0 (video), poppler-glib (pdf), libgsf (odf), libopenraw-gnome (various raw images) | |
- | ^ gtk-xfce-engine-2 | gtk+ | | | + | |
- | ^ tumbler | dbus-glib, gio, gmodule, gdk-pixbuf | freetype-config (fonts), jpeg (jpeg thumbnails from exif), libffmpegthumbnailer (video), gstreamer-0.10 (video), poppler-glib (pdf), libgsf (odf), libopenraw-gnome (various raw images) | | + | |
- | + | ||
- | ====== Building ====== | + | |
- | ===== Installation location and variables | + | [[|Back To Top]] |
+ | ---- | ||
+ | ===== Building the packages ===== | ||
+ | ==== Installation location and variables ==== | ||
Now it is finally time to start compiling the Xfce desktop. Last remaining thing is to choose an installation location. Possible examples are ''/ | Now it is finally time to start compiling the Xfce desktop. Last remaining thing is to choose an installation location. Possible examples are ''/ | ||
Line 112: | Line 118: | ||
export CFLAGS="" | export CFLAGS="" | ||
- | ===== Compiling and installing | + | |
+ | ==== Compiling and installing ==== | ||
Next step is compiling the various packages following the dependency chain above. If you have downloaded the tarballs, you will need to unpack them before going on. Inside each package directory you should run the following command: | Next step is compiling the various packages following the dependency chain above. If you have downloaded the tarballs, you will need to unpack them before going on. Inside each package directory you should run the following command: | ||
Line 132: | Line 139: | ||
sudo make install | sudo make install | ||
- | ==== Debug Levels | + | ==== Understanding |
Most Xfce modules use the m4 macro // | Most Xfce modules use the m4 macro // | ||
Line 145: | Line 152: | ||
! Same as the level above, including '' | ! Same as the level above, including '' | ||
- | ====== Help ====== | + | [[|Back To Top]] |
+ | ---- | ||
+ | ===== Help ===== | ||
Hopefully everything went fine after reading this guide. If you still have problems or questions you can ask on the [[http:// | Hopefully everything went fine after reading this guide. If you still have problems or questions you can ask on the [[http:// | ||
Line 151: | Line 160: | ||
Have fun building Xfce! | Have fun building Xfce! | ||
+ | [[|Back To Top]] | ||
+ | ---- |