Re: [Gimp-developer] Easy access for contributors

At 16.03.12 16:42, bootch wrote:

Could you please expound on your idea?  (I don't know much about virtual machines.)  What would a "middle level" developer do to get the environment and what would they have to learn about virtual machines and about GIMP development?  It sounds like magic to me.  I assume that you mean something like: a user downloads and installs one package.  The package does not do any building at installation time, all libraries and programs (GEGL, GIMP, etc) are already built in the virtual environment?  After that, they can enter a virtual environment where they can hack on GIMP without fear of destroying their production environment.  Or do they first need to download the virtual machine package that supports virtual machines?  They can destroy and refresh the virtual environment whenever they want, but it may take a few hours to download it again?

Do you have a link to another project that offers a virtual development environment?
You can think of a virtual machine (VM) as a 'computer in your computer'. It's a software which emulates a computer. In a VM (the 'guest' computer) you can run programs like on a physical computer. It's a common technique to test programs safely. Your physical computer (the 'host'), which runs the VM, is not touched by the processes in the VM. So you can safely test or modify developer versions of GIMP in the VM without disturbing your productive GIMP version on the host. Even if you destroyed the whole system within the VM, it would have no bearing on the host computer. It's a sandbox. This works vice versa - installing software on your host computer usually doesn't affect the guest environment.

Modern VM software uses savepoints (like in computer games): if you came to a dead end in your VM, you can recover a stable state in a very short time. Depending on the power of your physical computer it's only a matter of up to a few minutes. You wouldn't neither have to download the virtual environment for hours again nor wouldn't you need to sit a whole weekend to recover a broken physical environment in this case.

Also a VM can be used to compare two different GIMP versions, like a developer version and a stable version. This can be useful to check whether open bugs are already fixed. It also has the benefit of a defined environment for contributors. They could help each other easier and in shorter time, no matter which physical environment they own.

To be fair it should be mentioned, that final product tests must still be done in the target environment. So a VM running Linux cannot be used for final tests of GIMPs Windows or Mac versions. Also a VM can do no magic if the host operating system doesn't recognize particular hardware. If some hardware is not recognized by the host operating system at all, the VM wouldn't also be able to use it.

From a technical point of view the VM consists of two parts: the emulator software (the 'hypervisor') and a big data file (the 'appliance'). For a more detailed description see, especially the chapter 'Emulation of the underlying raw hardware (native execution)'.

A GIMP specific VM could look like this:
Due to license issues the guest operating system needs to be Linux. This also has the advantage to receive distro software updates constantly without much effort. For testers, bug triagers or people who just want to play with a current GIMP: a pre-built, fully operative GIMP with documentation. For developers, authors, translators: a ready-to-use development environment with the GIMP sources und developer documentation. For all: an IRC software and a browser with bookmarks to important GIMP sites:, GIMPs G*+-site, Bugzilla etc. To be independent from specific hypervisor products, the VM should be in an open file format, like OVF (
This is a first proposal. Detail questions need to be discussed separately.

A user would
1. download and install the hypervisor software
2. download the GIMP appliance and import it into the hypervisor
3. boot the GIMP-VM and start playing or working

Well-known hypervisor products are Virtualbox, VMWare or Virtual PC. There are already some projects offering appliances, for instance the VMWare Marketplace, Turnkey Linux, Suse Studio Gallery or the Oracle Developer VMs. Using these keywords a search engine will show the right addresses among the first results. Maybe there is already something that can be used out-of-the-box or with minor modifications.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]