Xfce Wiki

Sub domains
 

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
xfce:building [2014/03/14 10:38]
nick [Installation location and variables]
xfce:building [2019/06/22 12:13] (current)
skunnyk [Package specific dependencies]
Line 24: Line 24:
 ===== From the code repository ===== ===== From the code repository =====
  
-For the latest code, you need to make local copies of the [[http://​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://​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.
  
-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 [[http://​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://​git.xfce.org/​xfce|online repository]] list, the clone uri is shown at the bottom of the page.
  
-  git clone git://​git.xfce.org/​$category/​$module+  git clone https://​git.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.10''​. 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.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.
  
-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.10''​ 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.12''​ branch:
  
-  git checkout --track origin/​xfce-4.10+  git checkout --track origin/​xfce-4.12
  
 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 45: Line 45:
   * [[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.12 requires Gtk+ 2.24 and Glib 
 +    * pkgconfig
 +    * Coffee or tea
 +
 +
 +For history, here are the versions needed for older xfce releases, which are not supported anymore
     * 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
     * Xfce 4.6 requires Gtk+ 2.10 and Glib 2.12     * Xfce 4.6 requires Gtk+ 2.10 and Glib 2.12
-  * pkgconfig +
-  * Coffee+
  
 ===== Xfce's dependency chain ===== ===== Xfce's dependency chain =====
Line 58: Line 64:
   * libxfce4util   * libxfce4util
   * xfconf   * xfconf
-  * libxfce4ui, garcon, <​del>​libxfcegui4</​del>​ ((deprecated since 4.8 but still required for some plugins)) +  * libxfce4ui 
-  * exo +  * garcon, ​exo
-  * xfce4-panel+
   * thunar   * thunar
-  * xfce4-settings,​ xfce4-session,​ xfdesktop, xfwm4, <​del>​xfce-utils</​del>​ ((this package conflicts with xfce4-session,​ xfce4-appfinder and libxfce4ui since Xfce 4.10 and is not required anymore)), xfce4-appfinder,​ ...+  * xfce4-panel, ​xfce4-settings,​ xfce4-session,​ xfdesktop, xfwm4, xfce4-appfinder, ​tumbler...
  
 ===== Package specific dependencies ===== ===== Package specific dependencies =====
Line 72: Line 77:
 | ^ 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, ​dbus-glib ​| |+^ xfconf | libxfce4util, ​gdbus | |
 ^ libxfce4ui | libxfce4util,​ gtk+, xfconf | libstartup-notification,​ libgladeui | ^ libxfce4ui | libxfce4util,​ gtk+, xfconf | libstartup-notification,​ libgladeui |
-^ garcon | gio, libxfce4util ​((new dependency since 0.1.9)) ​+^ garcon | gio, libxfce4util | | 
-^ libxfcegui4 ((deprecated,​ not required for the Xfce core packages since 4.8)) | libxfce4util,​ gtk+, libglade | libstartup-notification,​ libgladeui, xfconf ​+^ exo | libxfce4util,​ gtk+, perl-uri, libxfce4ui | |
-^ exo | libxfce4util,​ gtk+, perl-uri, libxfce4ui ​((new dependency since 4.10)) ​| |+
 ^ xfce4-panel | libxfce4ui, exo, garcon, libwnck | libstartup-notification | ^ xfce4-panel | libxfce4ui, exo, garcon, libwnck | libstartup-notification |
-^ thunar | libxfce4ui, exo, libpng, gtk+, glib | libexif, ​dbus-glib, gconf, libnotify, libstartup-notification,​ freetype, libjpeg, libxfce4panel,​ xfconf | +^ thunar | libxfce4ui, exo, libpng, gtk+, glib | libexif, ​gdbus, libnotify, libstartup-notification,​ freetype, libjpeg, libxfce4panel,​ xfconf | 
-^ xfce4-settings | libxfce4ui, exo, xfconf, ​dbus-glib, libXi, libXrandr | libXcursor, libnotify | +^ xfce4-settings | libxfce4ui, exo, xfconf, ​gdbus, libXi, libXrandr | libXcursor, libnotify | 
-^ xfce4-session | libxfce4ui, perl-xml-parser,​ libwnck, ​dbus-glib ​gnome-keyring,​ gconf ((not a dependecy since Xfce 4.10)) ​+^ xfce4-session | libxfce4ui, perl-xml-parser,​ libwnck, ​gdbus | | 
-^ xfwm4 | libxfce4util,​ libxfce4ui, libxfconf, ​dbus-glib, libwnck | libstartup-notification | +^ xfwm4 | libxfce4util,​ libxfce4ui, libxfconf, ​gdbus, libwnck | libstartup-notification | 
-^ xfdesktop | libxfce4ui, xfconf, libwnck, exo ((was optional in 4.8)) | thunarx, garcon, libnotify | +^ xfdesktop | libxfce4ui, xfconf, libwnck, exo garcon ​| thunarx, garcon, libnotify | 
-^ xfce4-appfinder | libxfce4ui, garcon, gio ((new dependency since 4.10)) | | +^ xfce4-appfinder | libxfce4ui, garcon, gio | | 
-^ <​del>​xfce-utils</​del>​ ((deprecated fince Xfce 4.10, file conflicts with other packages)) | libxfce4ui | dbus-glib | +^ tumbler | dbus-glib, gio, gmodule, gdk-pixbuf | freetype-config (fonts), jpeg (jpeg thumbnails from exif), libffmpegthumbnailer (video), gstreamer-1.(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 ====== ====== Building ======
Line 137: Line 139:
 ! A number of ''​$CFLAGS''​ are set to check the code for different errors. During configure you'll see all the options are tested to avoid binaries that do not work. ! A number of ''​$CFLAGS''​ are set to check the code for different errors. During configure you'll see all the options are tested to avoid binaries that do not work.
 ? full ? full
-! Same as the level above, including ''​-Werror''​ so the compilers aborts during compiler errors. The compiler will also generate binaries with debug information suitable for backtraces and memory checks.+! Same as the level above, including ''​-Werror''​ so the compilers aborts during compiler errors. The compiler will also generate binaries with debug information suitable for [[:​contribute:​bugs:​|backtraces]] and memory checks. ​This is the recommended level for developers or users who want to report bugs. 
 ====== Help ====== ====== Help ======