2.6 KiB
Developers documentation
Requirements
Diffuse depends on these projects:
- Python 3.8+
- PyPi
- Cairo and GObject Introspection development headers
- Meson
- Flatpak and Flatpak builder
Install the distribution dependencies
It's a bit difficult to get the command lines for all the distributions and their releases, but it should be enough to find the packages on other distributions.
Debian/Ubuntu
sudo apt install python3-pip libcairo2-dev libgirepository1.0-dev meson flatpak flatpak-builder
Note: Tested on Debian 11 (Buster) and Ubuntu 20.04 (Focal)
Fedora
sudo dnf install python-pip python3-cairo-devel python3-gobject-devel meson flatpak flatpak-builder
Note: Tested on Fedora 34
Install the project dependencies
To install the requirements just to execute the binary, run:
pip install -r requirements.txt
For developer tools, run this one instead (it includes requirements.txt):
pip install -r requirements.dev.txt
Setup on Linux
Build, test and install using Flatpak
To install Diffuse locally:
flatpak install runtime/org.gnome.Sdk/$(uname -p)/41
flatpak-builder --user --install build-flatpak io.github.mightycreak.Diffuse.yml
To run Diffuse through Flatpak:
flatpak run io.github.mightycreak.Diffuse
To uninstall Diffuse:
flatpak remove io.github.mightycreak.Diffuse
Build, test and install using Meson
Diffuse build system is meson.
To install diffuse locally:
meson setup build
cd build
meson compile
meson test
meson install # requires admin privileges
To uninstall diffuse afterwards:
sudo ninja uninstall -C build
sudo rm -v /usr/local/share/locale/*/LC_MESSAGES/diffuse.mo
Meson allows to change the default installation directories, see command-line documentation.
Setup on Windows
Note: The Windows port is not maintained and would need some love. Contributions are very welcome! 😉
The windows-installer
directory contains scripts for building an installable
package for Windows that includes all dependencies.
Diffuse can be packaged as a portable application by copying the installation
directory to a pen drive and creating a front end that sets the
XDG_CONFIG_HOME
and XDG_DATA_DIR
environment variables prior to launching
Diffuse. The XDG_CONFIG_HOME
and XDG_DATA_DIR
environment variables
indicate where Diffuse should store persistent settings (eg. the path to a
writable directory on the pen drive).