Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
132 lines (94 sloc) 5.12 KB

Overview

This is my attempt to get repeatable builds for the latest GIMP/OSX. Goal is to provide single binary package without external dependencies packed in the dmg or pkg (to decide) format

Currently project is based on the fork of the GNOME gtk-osx project. Fork was created because original version contains outdated GIMP 2.8, as well as many dependencies are missing/outdated. I will try to submit my changes to the upstream at some point.

Build is done inside vm to make sure that it is reproducible and does not mess with any other host dependencies.

Installing OSX in the VirtualBox

MOJAVE UPDATE:


#!/bin/bash

hdiutil create -o /tmp/Mojave.cdr -size 8g -layout SPUD -fs HFS+J
hdiutil attach /tmp/Mojave.cdr.dmg -noverify -mountpoint /Volumes/install_build
sudo /Applications/Install\ macOS\ 10.14\ Mojave.app/Contents/Resources/createinstallmedia --volume /Volumes/install_build
mv /tmp/Mojave.cdr.dmg ~/Desktop/InstallSystem.dmg
hdiutil detach /Volumes/Install\ macOS\ 10.14\ Beta
hdiutil convert ~/Desktop/InstallSystem.dmg -format UDTO -o ~/Desktop/Mojave.iso

Setup jhbuild

  • Pre tasks:

    • setup xcode (xcode-select --install)
    • setup rust curl https://sh.rustup.rs -sSf | sh -s -- -y, it is build dependency for the librsvg
  • Setup repositories

  • Bootstrap:

    • jhbuild bootstrap
    • jhbuild build python python-six
    • jhbuild build meta-gtk-osx-bootstrap

Build GIMP and all required packages

  • jhbuild build gimp

or if you want to build GIMP with WebKit plugin (this would take a while!) :

  • jhbuild build webkit gimp

FIXME: check if its webkit listed as optional gimp dependency

GIMP configuration info (todo - validate if something needs to be enabled/added)

Extra Binaries:
  gimp-console:            yes

Optional Features:
  Language selection:      yes
  Vector icons:            yes
  Dr. Mingw (Win32):       no
  Bundled MyPaint Brushes: no (at /Users/builder/gtk/inst/share/mypaint-data/1.0/brushes)
  Default ICC directory:

Optional Plug-Ins:
  Ascii Art:               yes
  Ghostscript:             yes
  Help Browser:            yes
  JPEG 2000:               yes
  MNG:                     yes
  OpenEXR:                 yes
  WebP:                    yes
  Heif:                    yes
  PDF (export):            yes
  Print:                   yes
  Python 2:                yes
  TWAIN (Win32):           no
  Webpage:                 yes
  WMF:                     yes
  X11 Mouse Cursor:        no (libXcursor not found)
  XPM:                     no (XPM library not found)
  Email:                   needs runtime dependency: xdg-email

Optional Modules:
  ALSA (MIDI Input):       no (libasound not found or unusable)
  Linux Input:             no (linux input support disabled) (GUdev support: no)
  DirectInput (Win32):     no

Tests:
  Use xvfb-run             no (not found)
  Test appdata             no (appstream-util not found)
  Test desktop file        no (desktop-file-validate not found)

Building bundle

To build package i am using gtk-mac-bundler and some custom scripts to re-link libraries using @rpath.

To build dmg do

  1. Install gtk-mac-bundler.
  2. Clone this repository to the build host
  3. Run jhbuild run ./build.sh to build the package.

Also during bundling we should relink libraries to get rid of the absolute pathnames. It was found that gtk-mac-bundler does not work as expected with GIMP due to binaries installed in many different locations.

Some questions so far:

  • How to distribute additional plugins?
  • do we need x32 build? Probably not, everything supported is x86_64 and i do not have any hardware or time to test i386

Issues

See https://github.com/samm-git/gimp-osx-package/issues for the osx-specific issues. Upstream issues should be reported to upstream.

Screenshot

TODO

You can’t perform that action at this time.