xpra icon
Bug tracker and wiki

This bug tracker and wiki are being discontinued
please use https://github.com/Xpra-org/xpra instead.

Opened 3 years ago

Closed 2 years ago

Last modified 17 months ago

#2505 closed task (fixed)

macos update build vm

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: major Milestone: 4.0
Component: platforms Version:
Keywords: Cc:


Use 10.14.x (Mojave)?
Require 10.?

Record steps to setup the dev env.

Change History (7)

comment:1 Changed 3 years ago by Antoine Martin

  • enable ssh
  • install xcode 11.2.1
  • as per build gtk-osx, run ./gtk-osx-setup.sh
  • verify we can use the shell:
    alias jhbuild="PATH=.new_local/bin:$PATH jhbuild";jhbuild shell
  • add our jhbuildrc:
    cat > .config/jhbuildrc-custom <<EOF
    _gtk_osx_use_jhbuild_python = True
    setup_sdk(target="10.14", sdk_version="10.14", architectures=["x86_64"])
    os.environ["CC"] = "/usr/bin/gcc"
    os.environ["DYLD_LIBRARY_PATH"] = ""
    build_policy = "updated-deps"
    modules = ["meta-osx-xpra-deps"]
    #os.environ["SSL_CERT_FILE"] = "/Users/osx/gtk/inst/etc/ssl/cacert.pem"
  • run:
    jhbuild bootstrap-gtk-osx
    jhbuild update
    jhbuild build meta-gtk-osx-bootstrap meta-gtk-osx-gtk3
    cd $JHBUILD_PREFIX/bin; ln -sf python3 python
    jhbuild buildone -f libxml
    jhbuild build
  • build xpra

Still TODO:

  • fix some build errors:
    • pango error during tests (solved by nuking them from the Makefile)
    • pycairo: tries python2? wrong path?
    • pygobject3: wrong path?
    • gtk-mac-integration-python: python2?
    • gtk-mac-bundler: wrong path?
    • python-lzo: lzo was not build first? force it?
    • pyobjc-*: version 6.1 bump needed, error with sdk level detection?
    • orc 0.4.31 requires meson
    • libvorbis: error missing uint*_t (inttypes.h?)
    • twolame: wrong path, needs --disable-maintainer-mode, error building docs: man page (skip)
    • faac and faad: wrong path, needs autoreconf
    • flac: needs inttypes.h? (as per ticket:2383#comment:21)
    • gstreamer: cannot find g-ir-scanner python bits
  • moduleset updates: #2385
  • merge changes from upstream gtk-osx (backport to v3.0.x as needed), and send pull requests for some of our changes, ie:
  • #2384 gstreamer 1.16
  • copy and import developer keys for signing
Last edited 3 years ago by Antoine Martin (previous) (diff)

comment:2 Changed 3 years ago by Antoine Martin

Status: newassigned

Updates (too many to list - important ones only):

Remaining problems:

  • latest pango fails to build: revert it?
  • pycairo: tries to run commands with python2!, must run from source dir?
  • gtk-mac-bundler: must run from source dir
  • pyobjc errors are caused by the sdk path, change it to have the version number instead of the symlink:
    export SDKDIR=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk
    export SDKROOT=$SDKDIR

others fail to detect the "os_level" - I've hardcoded it in the build file to move on.

  • vorbis add #include <stdint.h> to $JHBUILD_PREFIX/include/ogg/os_types.h
  • bomutils: needs source dir
  • scons tries to use python2
  • serf: path issue? needs python2?

comment:3 Changed 3 years ago by Antoine Martin

Needed to make python3 a symlink:

ln -sf python3 python
ln -sf python3-config python-config

Rebuilt from scratch - building python3 early so we don't use the system one, doing libwebp early to avoid errors building libtiff 4.1:

jhbuild bootstrap-gtk-osx
jhbuild buildone -f openssl
jhbuild buildone -f python3
jhbuild buildone -f libwebp
jhbuild meta-gtk-osx-bootstrap meta-gtk-osx-gtk3
  • error finding girscanner:

gobject-introspection builds against the wrong python3 and uses the system one!

PYTHON=$JHBUILD_PREFIX/bin/python3 jhbuild buildone -f gobject-introspection

Hit issues building pango:

  • needs to link against fontconfig, tweaked the ninja build file to add it
  • fontconfig required an older version of the freetype dylib?
  • rebuilt both then:
    ../../../../gtk/source/pango-1.44.7/pango/pangocairo-fcfontmap.c:109:5: error: implicit declaration of function 'cairo_ft_font_options_substitute' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
  • rebuilt cairo and then pycairo
  • error building gtk3 versions 3.24.11 to 3.24.13:
      CC       gdkglobals-quartz.lo
    /Users/gtk3/gtk/source/gtk+-3.24.13/gdk/quartz/gdkdnd-quartz.c:24:10: fatal error: 'gdkquartz-gtk-only.h' file not found
    #include "gdkquartz-gtk-only.h"
  • pyobjc (still todo)
  • liborc:
    ERROR: Error in gtkdoc helper script:
    ERROR: ['gtkdoc-fixxref', '--module=orc', '--module-dir=html'] failed with status 1
    Traceback (most recent call last):
      File "/Users/macos/gtk/inst/bin/gtkdoc-fixxref", line 28, in <module>
        from gtkdoc import common, config, fixxref
      File "/Users/macos/gtk/inst/share/gtk-doc/python/gtkdoc/fixxref.py", line 28, in <module>
        from . import common, highlight
      File "/Users/macos/gtk/inst/share/gtk-doc/python/gtkdoc/highlight.py", line 28, in <module>
        from pygments import highlight
    ModuleNotFoundError: No module named 'pygments'
  • on the older system, itstool moaned about libxml2 until I rebuilt libxml2 against python2:
    jhbuild buildone -f python2
    PYTHON=/Users/gtk3/gtk/inst/bin/python2 jhbuild buildone -f libxml2
    PYTHON=/Users/gtk3/gtk/inst/bin/python2 jhbuild buildone -f itstool

Despite a newer version of scons, we have to temporarily switch the symlinks to python2 to build serf...

There's a circular dependency between libtiff and libwebp..

Last edited 3 years ago by Antoine Martin (previous) (diff)

comment:4 Changed 2 years ago by Antoine Martin

Resolution: fixed
Status: assignedclosed

Works well enough.

Some details in duplicate ticket #2422.

Last edited 2 years ago by Antoine Martin (previous) (diff)

comment:5 Changed 2 years ago by Antoine Martin

Regression spotted: #2680

comment:6 Changed 2 years ago by Antoine Martin

GTK3 bug forced a downgrade: ticket:2672#comment:8

comment:7 Changed 17 months ago by migration script

this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/2505

Note: See TracTickets for help on using tickets.