Skip to content

Building Budgie Desktop

David Mohammed edited this page Oct 19, 2020 · 20 revisions

Build Dependencies

budgie-desktop has a number of build dependencies that must be present before attempting configuration. The names are different depending on distribution. The following is a list of pkg-config dependencies currently required to build Budgie from source.

  • accountsservice >= 0.6.40
  • alsa-lib >= 1.1.0
  • gio-2.0 >= 2.62.0
  • gio-unix-2.0 >= 2.62.0
  • gnome-bluetooth-1.0 >= 3.24.0
  • gnome-desktop-3.0 >= 3.24.0
  • gnome-settings-daemon >= 3.24.0
  • gobject-2.0 >= 2.62.0
  • gobject-introspection-1.0 >= 1.62.0
  • gtk+-3.0 >= 3.24.0
  • ibus-1.0 >= 1.5.10
  • libgnome-menu-3.0 >= 3.10.3
  • libnotify >= 0.7
  • libpeas-gtk-1.0 >= 1.24.0
  • libpulse >= 2
  • libwnck >= 3.32.0
  • meson
  • mutter >= 3.24.0
  • polkit-agent-1 >= 0.110
  • polkit-gobject-1 >= 0.110
  • upower-glib >= 0.99.0
  • uuid

And:

  • gtk-doc (For documentation building from git only)
  • sassc (to build theming)
  • vala >= 0.46.0

Install build dependencies on Solus

sudo eopkg it accountsservice-devel alsa-lib-devel gnome-bluetooth-devel gtk-doc gnome-settings-daemon-devel ibus-devel libgnome-desktop-devel libgnome-menus-devel libnotify-devel libpeas-devel libwnck-devel mutter-devel pulseaudio-devel sassc upower-devel vala -c system.devel

Install build dependencies on Debian & Ubuntu

sudo apt build-dep budgie-desktop

The manual method for dependency installation is:

sudo apt install gnome-settings-daemon-dev gtk-doc-tools intltool libaccountsservice-dev libasound2-dev libgnome-bluetooth-dev libgnome-desktop-3-dev libgnome-menu-3-dev libgtk-3-dev libibus-1.0-dev libmutter-6-dev libpeas-dev libpolkit-agent-1-dev libpulse-dev libupower-glib-dev libwnck-3-dev meson ninja-build sassc uuid-dev valac

Note - mutter library versions will vary depending upon the version of libmutter your are targeting

Install build dependencies on Fedora

sudo dnf install accountsservice-devel git glib2-devel gnome-bluetooth-libs-devel gnome-desktop3-devel gnome-menus-devel gnome-settings-daemon-devel gobject-introspection-devel gsettings-desktop-schemas-devel gtk-doc gtk3-devel ibus-devel intltool json-glib-devel libX11-devel libXtst-devel libnotify-devel libpeas-devel libuuid-devel libwnck3-devel meson mutter-devel polkit-devel pulseaudio-libs-devel sassc upower-devel vala

Install build dependencies on Sabayon

sudo equo i dev-util/re2c dev-libs/libsass dev-lang/sassc dev-util/intltool dev-util/ninja dev-util/itstool app-text/docbook-sgml-dtd app-text/docbook-dsssl-stylesheets dev-util/meson dev-util/gtk-doc-am app-text/yelp-tools dev-util/gtk-doc x11-libs/wxGTK app-eselect/eselect-wxwidgets

Cloning the repository

git clone https://github.com/solus-project/budgie-desktop.git
cd budgie-desktop
git submodule update --init

Configuring

Solus

Solus has special requirements and mandates the use of stateless XDG paths, as well as using the OS default CFLAGS:

cd budgie-desktop
meson --prefix /usr --libdir /usr/lib64 --sysconfdir /etc -Dwith-stateless=true build --buildtype plain

Debian & Ubuntu

cd budgie-desktop
meson build --prefix=/usr --libdir=/usr/lib

All other distributions

cd budgie-desktop
meson build --prefix=/usr --sysconfdir=/etc

Building

ninja -j$(($(getconf _NPROCESSORS_ONLN)+1)) -C build
sudo ninja install -C build

Note: When building a distro package, please ensure you use:

meson build --prefix=/usr --sysconfdir=/etc --buildtype plain

This ensures your distro flags are respected.