Welcome! This development environment is meant to get you up and running fast. This environment is intended for development of the GNU Image Manipulation Program or GIMP for short.
This repository assumes you already have Vagrant installed and VirtualBox installed.
- Install the latest version of Vagrant (Vagrant 1.8.1 as of this writing).
- Install the latest version of VirtualBox (VirtualBox 5.0.12 as of this writing).
Requirements are based on the final size after provisioning the VM and compiled GIMP.
Minimum:
- 64-bit single-core processor
- 6GB hard disk space
- 4GB RAM - this can be lowered by adjusting the
Vagrantfile
. - 10Mbps internet connection - slower internet means provisioning will take hours
Recommended:
- Multi-core 64-bit processor with Intel VT-x or AMD-V extensions
- 10GB hard disk space
- 16GB RAM
- 20Mbps or higher internet connection seems to be the limits of how fast Debian packages will download from mirrors.
See Tips and Tricks (documented below) for getting more performance out of the VM. I recommend leaving at least 2GB of RAM for your operating system and other applications.
git clone https://github.com/samrocketman/vagrant-gimp.git
cd vagrant-gimp
vagrant up
When the provisioning is done you should reload to get a desktop environment.
vagrant reload
To get the current status of your virtual machine execute the following.
vagrant status
To poweroff the virtual machine execute the following.
vagrant halt
Use vagrant up
to power on the development environment.
Then log in with the user vagrant
and password gimp
.
Alternatively, open a terminal and execute the following.
vagrant ssh
After the environment first loads it should be ready to build GIMP.
There should the following files and directories in the vagrant
user.
~/gimp-git
- contains all of the output from the gimp build.~/gimp-git/share/config.site
- a file containing variables used by the build process.~/git/babl
- source code of BABL~/git/gegl
- source code of GEGL~/git/gimp
- source code of GIMP~/build-gimp.sh
- a script to compile BABL, GEGL, and GIMP all at once.
To build GIMP either open a terminal from the GUI or launch vagrant ssh
. Then execute the following command from the vagrant home
directory.
./build-gimp.sh
When the process is done, GIMP should be built. Simply execute
gimp-2.9
from a terminal to start the latest development build of GIMP.
The binary is located in ~/gimp-git/bin/gimp-2.9
.
GIMP Development Resources:
Plugin Development:
- See libgimp-Gimp and libgimp-gimpplugin interface documentation around GIMP plugins.
- Idea: JavaScript bindings for GIMP plugins.
- Perl language bindings for GIMP plugins.
- From the GIMP master branch see
gimp/plug-ins/pygimp
for the python language bindings for GIMP plugins. - For Gtk+ dialogs see GOjbect Introspection and Javascript implementations using GObject Introspection.
Currently the vagrant box is relatively low spec with the default 8MB video RAM,
2048MB RAM, and 1 CPU core. The build-gimp.sh
script will automatically take
advantage of more cores to build GIMP faster. Just edit the
Vagrantfile
file and update the following settings.
# Customize the VM specs (memory values in MB)
vb.memory = "8192"
vb.customize ["modifyvm", :id, "--vram", "128"]
vb.cpus = "8"
Why VirtualBox guest additions? The VM becomes more performant. If you're using a graphical UI then it will autoscale when you fullscreen the virtual machine. Shared clipboards can also be enabled. These features are useful when developing software inside a VM.
A script for installing VirtualBox guest additions has been provided. From within the VM simply call:
/vagrant/setup/vbox-guest-additions/install.sh
One can override the version of guest additions being installed. The version of guest additions should match the version of VirtualBox installed on the host system.
vbox_version=5.0.12 /vagrant/setup/vbox-guest-additions/install.sh