Skip to content

Commit 190363a

Browse files
Update "Building Cinnamon" from Sara/Xenial to Wilma/Noble, add section for other systems (#11)
1 parent 2736143 commit 190363a

File tree

1 file changed

+206
-12
lines changed

1 file changed

+206
-12
lines changed

reference/git/cinnamon-tutorials/building.md

Lines changed: 206 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,32 @@
1+
12
[Home](/) /
23
[Reference](/reference/git/) /
34
[Cinnamon Tutorials](/reference/git/cinnamon-tutorials)
45

5-
# Part II. Building Cinnamon
6+
# Part II. Building Cinnamon
67

78
## Debian-based systems
89

910
### Add APT sources repositories
1011

11-
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:
12+
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:
1213

1314
```bash
14-
deb http://packages.linuxmint.com sara main upstream import
15-
deb-src http://packages.linuxmint.com sara main upstream import
15+
deb http://packages.linuxmint.com wilma main upstream import
16+
deb-src http://packages.linuxmint.com wilma main upstream import
1617

17-
deb http://archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse
18-
deb-src http://archive.ubuntu.com/ubuntu/ xenial main restricted universe multiverse
18+
deb http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse
19+
deb-src http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse
1920

20-
deb http://archive.ubuntu.com/ubuntu/ xenial-updates main restricted universe multiverse
21-
deb-src http://archive.ubuntu.com/ubuntu/ xenial-updates main restricted universe multiverse
21+
deb http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse
22+
deb-src http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse
2223

23-
deb http://extras.ubuntu.com/ubuntu xenial main
24-
deb-src http://extras.ubuntu.com/ubuntu xenial main
24+
deb http://extras.ubuntu.com/ubuntu noble main
25+
deb-src http://extras.ubuntu.com/ubuntu noble main
2526
```
2627

2728
### Get build dependencies
28-
Then we install the packages needed to compile the cinnamon stack. Run the following in a terminal (as root):
29+
Then we install the packages needed to compile the Cinnamon stack. Run the following in a terminal (as root):
2930
```bash
3031
apt-get update
3132
apt-get install dpkg-dev
@@ -86,11 +87,204 @@ sudo dpkg -i *packages produced*
8687

8788
### Optional: Compiling from stable branch
8889

89-
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):
90+
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):
9091

9192
```bash
9293
cd *package-name*
9394
git checkout stable
9495
dpkg-buildpackage
9596
cd ..
9697
```
98+
99+
## Other systems
100+
101+
### Get build dependencies
102+
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.
103+
* Build-time dependencies:
104+
* C/C++ compiler
105+
* `at-spi2-core`, or `at-spi2-atk` and `atk >= 2.5.3`
106+
* `cairo >= 1.10.0`
107+
* `dbus`
108+
* `fontconfig`
109+
* `fribidi >= 1.0.0`
110+
* `gdk-pixbuf >= 2.22.0`
111+
* `gettext`
112+
* `glib >= 2.66.0`
113+
* `gobject-introspection >= 1.66.0`
114+
* `graphene >= 1.9.3`
115+
* `gtk3 >= 3.19.8`
116+
* `intltool`
117+
* `iso-codes`
118+
* `json-glib >= 1.6`
119+
* `libcanberra >= 0.26`
120+
* `libffi`
121+
* `libgnomekbd >= 3.6.0`
122+
* `libgsf`
123+
* `libgudev >= 232`
124+
* `libice`
125+
* `libnotify >= 0.7.3`
126+
* `libsm`
127+
* `libx11`
128+
* `libxau`
129+
* `libxcb`
130+
* `libxcomposite >= 0.4`
131+
* `libxcursor`
132+
* `libxdamage`
133+
* `libxext >= 1.1`
134+
* `libxfixes >= 3`
135+
* `libxi >= 1.7.4`
136+
* `libxinerama`
137+
* `libxkbcommon >= 0.4.3`
138+
* `libxkbfile`
139+
* `libxklavier >= 5.1`
140+
* `libxml2`
141+
* `libxrandr >= 1.5.0`
142+
* `libxrender`
143+
* `libxtst`
144+
* `linux-pam` or `openpam`
145+
* `make`
146+
* `mesa` or `libglvnd`
147+
* `meson >= 0.56.0`
148+
* `pango >= 1.40.0`
149+
* `pkg-config` or `pkgconf`
150+
* `polkit >= 0.103`
151+
* `pulseaudio >= 12.99.3`
152+
* `spidermonkey = 115`
153+
* `upower >= 0.99.8`
154+
* `xapp >= 2.6.0`
155+
* `xdotool`
156+
* `xkeyboard-config`
157+
* `xorgproto`
158+
* Optional build-time dependencies:
159+
* logind implementation (`systemd` or `elogind`)
160+
* udev implementation `>= 228` (`systemd`, `eudev`, `libudev-devd`, or `libudev-zero`)
161+
* `colord >= 0.1.27`
162+
* `cups >= 1.4`
163+
* `egl-wayland`
164+
* `exempi >= 2.2.0`
165+
* `gstreamer`
166+
* `gtk-doc`
167+
* `libdrm`
168+
* `libexif >= 0.6.20`
169+
* `libinput >= 1.7`
170+
* `librsvg >= 2.36.2`
171+
* `libwacom >= 0.13`
172+
* `libxcvt`
173+
* `libxtrans`
174+
* `little-cms >= 2.0`
175+
* `modemmanager >= 0.7`
176+
* `networkmanager >= 1.2.0`
177+
* `nss >= 3.11.2`
178+
* `pipewire >= 0.3.0`
179+
* `selinux >= 2.0`
180+
* `startup-notification >= 0.7`
181+
* `sysprof3` and/or `sysprof4`
182+
* `tinysparql` or `tracker`
183+
* `wayland >= 1.13.0`
184+
* `wayland-protocols >= 1.19`
185+
* `xwayland`
186+
* Run-time dependencies (these can be installed before or after compiling Cinnamon):
187+
* NTPD implementation, `systemd`, or `openrc-settingsd`
188+
* X11 server
189+
* `accountsservice`
190+
* `adwaita-icon-theme`
191+
* `bash`
192+
* `caribou`
193+
* `evolution-data-server`
194+
* `gnome-icon-theme` or `adwaita-icon-theme-legacy`
195+
* `gsound`
196+
* `keybinder3`
197+
* `libical`
198+
* `libtimezonemap`
199+
* `touchegg`
200+
201+
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:
202+
* `dbus-python`
203+
* `pexpect`
204+
* `pillow`
205+
* `psutil`
206+
* `py-setproctitle` (`setproctitle` on PyPI)
207+
* `pycairo`
208+
* `pygobject`
209+
* `python-pam`
210+
* `python3-xapp` (not on PyPI)
211+
* `pytz`
212+
* `requests`
213+
* `tinycss2`
214+
* `xlrd`
215+
216+
Now get the latest git code for everything. Run (not as root):
217+
218+
```bash
219+
git clone git://github.com/linuxmint/cinnamon.git
220+
git clone git://github.com/linuxmint/cinnamon-control-center.git
221+
git clone git://github.com/linuxmint/cinnamon-desktop.git
222+
git clone git://github.com/linuxmint/cinnamon-menus.git
223+
git clone git://github.com/linuxmint/cinnamon-screensaver.git
224+
git clone git://github.com/linuxmint/cinnamon-session.git
225+
git clone git://github.com/linuxmint/cinnamon-settings-daemon.git
226+
git clone git://github.com/linuxmint/cinnamon-translations.git
227+
git clone git://github.com/linuxmint/cjs.git
228+
git clone git://github.com/linuxmint/muffin.git
229+
git clone git://github.com/linuxmint/nemo.git
230+
```
231+
232+
### Compile and install the stack
233+
234+
Build and install in the following order. See below for how to build and install.
235+
236+
```
237+
cinnamon-translations
238+
cinnamon-desktop
239+
cinnamon-menus
240+
cinnamon-session
241+
cinnamon-settings-daemon
242+
cinnamon-screensaver
243+
cjs
244+
cinnamon-control-center
245+
muffin
246+
cinnamon
247+
nemo
248+
```
249+
250+
To build and install a package:
251+
252+
```bash
253+
cd *package-name*
254+
meson setup builddir
255+
meson compile -C builddir
256+
meson install -C builddir
257+
cd ..
258+
```
259+
260+
The procedure for building and installing `cinnamon-translations` is different:
261+
262+
```bash
263+
cd cinnamon-translations
264+
make
265+
sudo cp -r usr /
266+
cd ..
267+
```
268+
269+
### Optional: Compiling from stable branch
270+
271+
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`):
272+
273+
```bash
274+
cd *package-name*
275+
git checkout stable
276+
meson setup builddir
277+
meson compile -C builddir
278+
meson install -C builddir
279+
cd ..
280+
```
281+
282+
For `cinnamon-translations`:
283+
284+
```bash
285+
cd cinnamon-translations
286+
git checkout stable
287+
make
288+
sudo cp -r usr /
289+
cd ..
290+
```

0 commit comments

Comments
 (0)