Xfce Wiki

Sub domains
 

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
xfce:building [2019/12/09 10:50] – [Obtaining the Xfce source code] kevinbowenxfce:building [2022/12/17 20:26] (current) – bump xfce version kevinbowen
Line 1: Line 1:
 ~~NOTOC~~ ~~NOTOC~~
 +{{ :xfce-64x64.png?nolink|}}
 ====== Building Xfce from source ====== ====== Building Xfce from source ======
  
Line 16: Line 17:
 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, or testing snapshots. The micro number increases with each release. Also, it is recommended to keep the major.minor version the same for the core components (some packages don't follow those numbers) or there will most likely be dependency version problems during compilation. 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, or testing snapshots. The micro number increases with each release. Also, it is recommended to keep the major.minor version the same for the core components (some packages don't follow those numbers) or there will most likely be dependency version problems during compilation.
  
-The latest releases available can be found on the [[http://xfce.org/download|download]] page. You can also build from the source repositories if you have enough experience. Additional information about this is provided below.+The latest releases available can be found on the [[https://www.xfce.org/download|download]] page. You can also build from the source repositories if you have enough experience. Additional information about this is provided below.
  
 ---- ----
Line 28: Line 29:
 ==== Released packages ==== ==== Released packages ====
  
-Xfce packages have two types of releases: collection releases and individual releases. Click the linksbelowto open the download locations.+Xfce packages have two types of releases: collection releases and individual releases. Click the links below to open the relevant download location.
  
-  * [[http://archive.xfce.org/xfce/|Collection releases of the core modules]]\\ From time to time a new collection release of Xfce is made. A collection release consists of a number of individual tarballs and a fat-tarball that contains all of the individual tarballs.\\ The collection releases always contains the correct versions needed 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.  +  * [[https://archive.xfce.org/xfce/|Collection releases of the core modules]]\\ From time to time a new collection release of Xfce is made. A collection release consists of a number of individual tarballs and a fat-tarball that contains all of the individual tarballs.\\ The collection releases always contains the correct versions needed 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.  
-  * [[http://archive.xfce.org/src/xfce/|Individual releases]]\\ Each package in Xfce is allowed to make development and stable releases at any time, see the [[http://xfce.org/about/releasemodel|release model]] documentation for more information. +  * [[https://archive.xfce.org/src/xfce/|Individual releases]]\\ Each package in Xfce is allowed to make development and stable releases at any time, see the [[http://xfce.org/about/releasemodel|release model]] documentation for more information. 
  
 ==== From the code repository ==== ==== From the code repository ====
  
-For the latest code, you need to make local copies of the [[https://git.xfce.org/|GIT repositories]]. This is the place where developers submit their code. If you decide to use GIT, try to use the same branch for all the packages to avoid dependency version problems.+For the latest code, you need to make local copies of the [[https://gitlab.xfce.org/|GIT repositories]]. This is the place where developers submit their code. If you decide to use GIT, try to use the same branch for all the packages to avoid dependency version problems.
  
 <note information>For additional information about using Git with Xfce, see the [[https://docs.xfce.org/contribute/dev/git/start|Xfce and git information]] page.</note> <note information>For additional information about using Git with Xfce, see the [[https://docs.xfce.org/contribute/dev/git/start|Xfce and git information]] page.</note>
  
-You first need to make clones of each GIT repository, like the command below, where ''$category'' is for example ''xfce'' and ''$module'' ''xfce4-panel''. If you click on a module in the [[https://git.xfce.org/xfce|online repository]] list, the clone uri is shown at the bottom of the page.+You first need to make clones of each GIT repository, like the command below, where ''$category'' is for example ''xfce'' and ''$module'' ''xfce4-panel''. If you click on a module in the [[https://gitlab.xfce.org/xfce|online repository]] list, the clone uri is shown at the bottom of the page.
  
-  git clone https://git.xfce.org/$category/$module+  git clone https://gitlab.xfce.org/$category/$module
  
-After the repository is cloned, you will need to choose which branch you want to compile. By default, the ''master'' branch is selected, but there are also branches for stable releases like ''xfce-4.12''. The stable branches contain the latest bug fixes without any major new features, the master branch is the development version for the next release of Xfce. Both should not be used in a production environment.+After the repository is cloned, you will need to choose which branch you want to compile. By default, the ''master'' branch is selected, but there are also branches for stable releases like ''xfce-4.18''. The stable branches contain the latest bug fixes without any major new features, the master branch is the development version for the next release of Xfce. Both should not be used in a production environment.
  
-To switch to another branch (''git branch -a'' lists all available branches) run the following command inside the cloned directory to switch to, for example, the ''xfce-4.12'' branch:+To switch to another branch (''git branch -a'' lists all available branches) run the following command inside the cloned directory to switch to, for example, the ''xfce-4.18'' branch:
  
-  git checkout --track origin/xfce-4.12+  git checkout --track origin/xfce-4.18
  
 After this, you can update your local copy of the repository with git pull and switch to another branch with ''git checkout $branchname''. Read the [[http://git-scm.com/documentation|GIT manuals]] for more information about using GIT. After this, you can update your local copy of the repository with git pull and switch to another branch with ''git checkout $branchname''. Read the [[http://git-scm.com/documentation|GIT manuals]] for more information about using GIT.
Line 62: Line 63:
   * [[http://en.wikipedia.org/wiki/GNU_toolchain|A working GNU toolchain]]   * [[http://en.wikipedia.org/wiki/GNU_toolchain|A working GNU toolchain]]
   * Gtk+ and Glib headers, in some distributions called the -devel packages    * Gtk+ and Glib headers, in some distributions called the -devel packages 
-    * Xfce 4.14 requires Gtk+ 3.22 and Glib 2.42 +    * Xfce 4.18 requires Gtk+ 3.24 and Glib 2.66 (See also: [[https://wiki.xfce.org/releng/4.18/roadmap#changes_in_dependencies|4.18 dependencies]])
-    * Xfce 4.12 requires Gtk+ 2.24 and Glib +
     * pkgconfig     * pkgconfig
     * Coffee or tea     * Coffee or tea
  
  
-For history, here are the versions needed for older xfce releases, which are not supported anymore+For history, here are the versions needed for older Xfce releases
 +    * Xfce 4.16 requires Gtk+ 3.22 and Glib 2.50 
 +    * Xfce 4.14 requires Gtk+ 3.22 and Glib 2.42 
 +    * Xfce 4.12 requires Gtk+ 2.24 and Glib 
     * Xfce 4.10 requires Gtk+ 2.20 and Glib 2.24     * Xfce 4.10 requires Gtk+ 2.20 and Glib 2.24
     * Xfce 4.8 requires Gtk+ 2.14 and Glib 2.20     * Xfce 4.8 requires Gtk+ 2.14 and Glib 2.20
Line 96: Line 99:
 ^ libxfce4util | glib2 | | ^ libxfce4util | glib2 | |
 ^ xfconf | libxfce4util, gdbus | | ^ xfconf | libxfce4util, gdbus | |
-^ libxfce4ui | libxfce4util, gtk+, xfconf | libstartup-notification, libgladeui |+^ libxfce4ui | libxfce4util, gtk+, xfconf, glibtop | libstartup-notification, libgladeui |
 ^ garcon | gio, libxfce4util | | ^ garcon | gio, libxfce4util | |
 ^ exo | libxfce4util, gtk+, perl-uri, libxfce4ui | | ^ exo | libxfce4util, gtk+, perl-uri, libxfce4ui | |
Line 165: Line 168:
 ===== Finding additional Help ===== ===== Finding additional Help =====
  
-Hopefully everything went fine after reading this guide. If you still have problems or questions you can ask on the [[http://xfce.org/community#mail|Xfce users mailing list]], the [[http://forum.xfce.org|forum]] or ask distribution related questions on their forums and mailing lists.+Hopefully everything went fine after reading this guide. If you still have problems or questions you can ask on the [[https://www.xfce.org/community#mail|Xfce users mailing list]], the [[https://forum.xfce.org|forum]] or ask distribution related questions on their forums and mailing lists.
  
 Have fun building Xfce! Have fun building Xfce!