This repository contains files related to GIMP/macOS build using CircleCI.
To build GIMP/macOS we are using fork
of the gtk-osx project (gimp
branch).
Fork adds modules related to GIMP and some gimp-specific patches to GTK.
Currently build is done using CircleCI.
Because CircleCI is not supporting gitlab [yet] there is a GitHub mirror of this repository. To get access to the Circle-CI build administration, packagers need to ask admin access to this Github repository.
I found that GTK and GIMP build process on macOS are very fragile. If you have any other build system (brew, MacPorts) installed - try to remove it first or at least isolate from the JHBuild environment as much as you can.
I was able to get working builds in the VirtualBox VM, it works stable enough for me.
Steps in the CircleCI config.yml are:
- Installs Python 3 and Rust as they are required for the GIMP dependencies.
- Setting up macOS 10.9 SDK. This is needed to ensure that GIMP can run on macOS 10.9+. See this article for the details.
- Setting up JHBuild with a custom
~/.config/jhbuildrc-custom
file (see https://github.com/GNOME/gimp-macos-build/blob/master/jhbuildrc-gtk-osx-gimp). As part of the setup, it is runningbootstrap-gtk-osx-gimp
JHBuild command to compile required modules to run JHBuild. JHBuild is using Python3 venv to run. - Installs fork of the gtk-mac-bundler - the tool which helps to create macOS application bundles for the GTK apps. The only difference with official one is this PR
- Installing all gtk-osx, gimp and WebKit dependencies using JHBuild
- Building WebKit v1. This step could be avoided as it takes a lot of time, this is a soft dependency.
- Building GIMP and gimp-help (from git).
- Importing signing certificate/key from the environment variables
- Launching
build.sh
which:- Building package using
gtk-mac-bundler
- Using
install_name_tool
fixing all library path to make package relocatable. - generating debug symbols
- fixing
pixmap
andimm
cache files to remove absolute pathnames - compiles all
.py
files to.pyc
to avoid writes to the Application folder - Signing all binaries
- Creating a DMG package using create-dmg tool and signing it
- Building package using
- Notarizing package using Apple
altool
utility - Uploading a DMG to the CircleCI build artifacts
- Gtk-OSX project to simplify building MacOS application bundles for Gtk+-based applications
- gimp-plugins-collection - GMIC, LiquidRescale, NUFraw, PhFGimp and ResynthesizerPlugin GIMP plugin builds, including macOS version
- CircleCI gimp-macos-build project
- XPM import/export will not work due to missing libXpm/macOS.
- No scanning support. Scanner support needs to be re-implemented using ImageCaptureCore framework. Probably could be a small Python plugin as there is a module for it. As a workaround you can use your scanner utility or any other third-party tool.
- Some of the system modifiers are not working correctly, e.g.
Command+H
,Command+~
, etc. - Loading of the remote HTTP objects is not supported due to Glib limitations on macOS
master
: latest GIMP releasegimp-2-10
: gimp-2-10 builddebug
: same as themaster
, but with full debug symbolshardened-runtime
: singed and notarized package with a hardened runtime enabled