Building Cinnamon
General Build Instructions
Create a Sandbox
When you build projects it produces .deb packages in their parent directory, so it's a good idea to create a directory for all your development needs, in which you'll have subdirectories for each project, or each group of projects. This keeps things tidy and well organized in your computer so it becomes easier to search for code across different projects.
We commonly call our main development directory "Sandbox" and place it in our home folder.
mkdir ~/SandboxOf course, you can call your "Sandbox" whatever you want and place it anywhere you want as well.
Install mint-dev-tools
Install the mint-dev-tools package from the Linux Mint repositories.
apt update
apt install mint-dev-tools --install-recommendsIt contains useful tools to help you compile and develop Linux Mint projects.
Installing Source
cd ~/Sandbox
git clone https://github.com/linuxmint/mintinstall.gitFirst-Time Build
cd ~/Sandbox/mintinstall
mint-buildFaster Rebuild
cd ~/Sandbox/mintinstall
dpkg-buildpackageBuild Order
Here is the build order for everything cinnamon
cinnamon-translationscinnamon-desktopcinnamon-menuscinnamon-sessioncinnamon-settings-daemoncinnamon-screensavercjscinnamon-control-centermuffincinnamonnemo
For Debian-based Systems
Add APT Source Repositories
Edit /etc/apt/sources.list:
deb http://packages.linuxmint.com wilma main upstream import
deb-src http://packages.linuxmint.com wilma main upstream importInstall Build Dependencies
sudo apt-get update
sudo apt-get install dpkg-dev
sudo apt-get build-dep cinnamon cinnamon-control-center cinnamon-desktop \
cinnamon-menus cinnamon-screensaver cinnamon-session \
cinnamon-settings-daemon cinnamon-translations cjs muffin nemoClone All Repositories
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.gitCompile Order
cinnamon-translations
cinnamon-desktop
cinnamon-menus
**INSTALL**
cinnamon-session
cinnamon-settings-daemon
cinnamon-screensaver
cjs
**INSTALL**
cinnamon-control-center
muffin
**INSTALL**
cinnamon
nemo
**INSTALL**Build
cd package-name
dpkg-buildpackageInstall
sudo dpkg -i ../*.debStable Branch
cd package-name
git checkout stable
dpkg-buildpackageOther Systems
Build Dependencies
Install development packages (*-dev) for:
Core:
glib,gtk3,gobject-introspection,meson,pulseaudio,spidermonkey, etc.
Optional:
cups,gstreamer,libwacom,wayland, etc.
Python:
dbus-python,pexpect,pillow,pycairo,pygobject, etc.
Clone All Repositories
Same as in Debian section.
Compile Order
Same as Debian.
Compile with Meson
cd package-name
meson setup builddir
meson compile -C builddir
meson install -C builddircinnamon-translations
cd cinnamon-translations
make
sudo cp -r usr /Stable Branch
cd package-name
git checkout stable
meson setup builddir
meson compile -C builddir
meson install -C builddirFor cinnamon-translations:
cd cinnamon-translations
git checkout stable
make
sudo cp -r usr /