From 6b7e1dadf347f87a3f9f359466298eeabd14a453 Mon Sep 17 00:00:00 2001 From: Earldridge Jazzed Pineda Date: Fri, 6 Sep 2024 14:02:05 +0800 Subject: [PATCH] Update "Building Cinnamon" from Sara/Xenial to Wilma/Noble, add section for other systems --- reference/git/cinnamon-tutorials/building.md | 187 +++++++++++++++++-- 1 file changed, 175 insertions(+), 12 deletions(-) diff --git a/reference/git/cinnamon-tutorials/building.md b/reference/git/cinnamon-tutorials/building.md index 9dac25d..620fa7b 100644 --- a/reference/git/cinnamon-tutorials/building.md +++ b/reference/git/cinnamon-tutorials/building.md @@ -1,31 +1,32 @@ + [Home](/) / [Reference](/reference/git/) / [Cinnamon Tutorials](/reference/git/cinnamon-tutorials) -# Part II. Building Cinnamon +# Part II. Building Cinnamon ## Debian-based systems ### Add APT sources repositories -Open `/etc/apt/sources.list`. For each deb line, add the same line with deb replaced with deb-src. For instance, here's how it should look like in Linux Mint 18: +Open `/etc/apt/sources.list`. For each deb line, add the same line with deb replaced with deb-src. For instance, here's how it should look like in Linux Mint 22: ```bash -deb http://packages.linuxmint.com sara main upstream import -deb-src http://packages.linuxmint.com sara main upstream import +deb http://packages.linuxmint.com wilma main upstream import +deb-src http://packages.linuxmint.com wilma main upstream import -deb http://archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse -deb-src http://archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse +deb http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse +deb-src http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse -deb http://archive.ubuntu.com/ubuntu/ xenial-updates main restricted universe multiverse -deb-src http://archive.ubuntu.com/ubuntu/ xenial-updates main restricted universe multiverse +deb http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse +deb-src http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse -deb http://extras.ubuntu.com/ubuntu xenial main -deb-src http://extras.ubuntu.com/ubuntu xenial main +deb http://extras.ubuntu.com/ubuntu noble main +deb-src http://extras.ubuntu.com/ubuntu noble main ``` ### Get build dependencies -Then we install the packages needed to compile the cinnamon stack. Run the following in a terminal (as root): +Then we install the packages needed to compile the Cinnamon stack. Run the following in a terminal (as root): ```bash apt-get update apt-get install dpkg-dev @@ -86,7 +87,7 @@ sudo dpkg -i *packages produced* ### Optional: Compiling from stable branch -The instructions above compile the Cinnamon stack from their "master" branch, which isn't always stable. To compile from the stable branch, instead of the usual building procedure, you need to to the following (for all packages): +The instructions above compile the Cinnamon stack from their "master" branch, which isn't always stable. To compile from the stable branch, instead of the usual building procedure, you need to do the following (for all packages): ```bash cd *package-name* @@ -94,3 +95,165 @@ git checkout stable dpkg-buildpackage cd .. ``` + +## Other systems + +### Get build dependencies +Install the following dependencies using your system's package manager. For build-time dependencies, you may need the development headers (usually found in packages suffixed `-dev` or `-devel`). If a dependency is not available for your system, you can build and install it. +* Build-time dependencies: + * C/C++ compiler + * `at-spi2-core`, or `at-spi2-atk` and `atk >= 2.5.3` + * `cairo >= 1.10.0` + * `dbus` + * `fontconfig` + * `fribidi >= 1.0.0` + * `gdk-pixbuf >= 2.22.0` + * `gettext` + * `glib >= 2.66.0` + * `gobject-introspection >= 1.66.0` + * `graphene >= 1.9.3` + * `gtk3 >= 3.19.8` + * `intltool` + * `iso-codes` + * `json-glib >= 1.6` + * `libcanberra >= 0.26` + * `libffi` + * `libgnomekbd >= 3.6.0` + * `libgudev >= 232` + * `libice` + * `libnotify >= 0.7.3` + * `libsm` + * `libx11` + * `libxau` + * `libxcb` + * `libxcomposite >= 0.4` + * `libxcursor` + * `libxdamage` + * `libxext >= 1.1` + * `libxfixes >= 3` + * `libxi >= 1.7.4` + * `libxinerama` + * `libxkbcommon >= 0.4.3` + * `libxkbfile` + * `libxklavier >= 5.1` + * `libxml2` + * `libxrandr >= 1.5.0` + * `libxrender` + * `libxtst` + * `linux-pam` or `openpam` + * `make` + * `mesa` or `libglvnd` + * `meson >= 0.56.0` + * `pango >= 1.40.0` + * `pkg-config` or `pkgconf` + * `polkit >= 0.103` + * `pulseaudio >= 12.99.3` + * `spidermonkey = 115` + * `upower >= 0.99.8` + * `xapp >= 2.6.0` + * `xdotool` + * `xkeyboard-config` + * `xorgproto` +* Run-time dependencies (these can be installed before or after compiling Cinnamon): + * NTPD implementation, `systemd`, or `openrc-settingsd` + * X11 server + * `accountsservice` + * `adwaita-icon-theme` + * `bash` + * `caribou` + * `evolution-data-server` + * `gnome-icon-theme` or `adwaita-icon-theme-legacy` + * `gsound` + * `libical` + * `libtimezonemap` + * `touchegg` + +Python has to be installed, along with some Python modules. Install the following modules by using your system's package manager, from PyPI by using `pip`, or by building and installing them: +* `dbus-python` +* `pexpect` +* `pillow` +* `psutil` +* `py-setproctitle` (`setproctitle` on PyPI) +* `pycairo` +* `pygobject` +* `python-pam` +* `python3-xapp` (not on PyPI) +* `pytz` +* `requests` +* `tinycss2` + +Now get the latest git code for everything. Run (not as root): + +```bash +git clone git://github.com/linuxmint/cinnamon.git +git clone git://github.com/linuxmint/cinnamon-control-center.git +git clone git://github.com/linuxmint/cinnamon-desktop.git +git clone git://github.com/linuxmint/cinnamon-menus.git +git clone git://github.com/linuxmint/cinnamon-screensaver.git +git clone git://github.com/linuxmint/cinnamon-session.git +git clone git://github.com/linuxmint/cinnamon-settings-daemon.git +git clone git://github.com/linuxmint/cinnamon-translations.git +git clone git://github.com/linuxmint/cjs.git +git clone git://github.com/linuxmint/muffin.git +git clone git://github.com/linuxmint/nemo.git +``` + +### Compile and install the stack + +Build and install in the following order. See below for how to build and install. + +``` +cinnamon-translations +cinnamon-desktop +cinnamon-menus +cinnamon-session +cinnamon-settings-daemon +cinnamon-screensaver +cjs +cinnamon-control-center +muffin +cinnamon +nemo +``` + +To build and install a package: + +```bash +cd *package-name* +meson setup builddir +meson compile -C builddir +meson install -C builddir +cd .. +``` + +The procedure for building and installing `cinnamon-translations` is different: + +```bash +cd cinnamon-translations +make +sudo cp -r usr / +cd .. +``` + +### Optional: Compiling from stable branch + +The instructions above compile the Cinnamon stack from their "master" branch, which isn't always stable. To compile from the stable branch, instead of the usual building procedure, you need to do the following (for all packages except `cinnamon-translations`): + +```bash +cd *package-name* +git checkout stable +meson setup builddir +meson compile -C builddir +meson install -C builddir +cd .. +``` + +For `cinnamon-translations`: + +```bash +cd cinnamon-translations +git checkout stable +make +sudo cp -r usr / +cd .. +``` \ No newline at end of file