Re: [gtk-osx-users] GTK+ macOS: fontconfig



The way I intend to resolve the problem with PIP modules going forward is in 
https://github.com/jralls/gtk-osx-build/tree/pipenv. No-one on the list seems terribly interested in that 
though, so when I get bit of bandwidth I'll just finish it up and merge it to master.

In the meantime the simplest thing to do is to build python and then run the following commands in a jhbuild 
shell:
  python -m ensurepip
  pip install six

Once six is installed you can build meta-gtk-osx-bootstrap and whatever else you need.

Regards,
John Ralls

On Sep 8, 2018, at 3:44 PM, Jeffrey Sheen <jeffrey sheen00 alumni imperial ac uk> wrote:

Hi list,

I'm finally getting around to building a MAS compliant set of Pango libraries.

However, after building `bootstrap', I am unable to build `python meta-gtk-osx-bootstrap 
meta-gtk-osx-freetype pango'. The error is python related, and occurs when make is installing glib:

Traceback (most recent call last):
  File "/Users/gtk-build/gtk/inst/bin/gtkdoc-rebase", line 28, in <module>
    from gtkdoc import common, config, rebase
  File "/Users/gtk-build/gtk/inst/share/gtk-doc/python/gtkdoc/common.py", line 31, in <module>
    import six
ImportError: No module named six

I tried with my existing jhbuild environment (that I had previously successfully built the above modules), 
and then with a clean prefix, having updated gtk-osx and rerun `gtk-osx-build-setup.sh'.

I found a reference to the python six module in the following file (See `<disutils id="pysix">'):

https://gitlab.gnome.org/GNOME/gtk-osx/blob/master/modulesets/gtk-osx-python.modules

However, the `gtk-osx-python.modules' file under `~/Source/jhbuild/modulesets/' does not contain any 
`disutils' entries.

I'm not sure how my previous build environment could have been broken, unless there are dynamic build 
scripts downloaded at runtime that have changed to include this dependency on python six?

Cheers,

Jeff.

On 10 May 2018 at 03:49, John Ralls <jralls ceridwen us> wrote:
Jeff,

You should manually override libz. The easiest way would be to add it to your skip list so that it isn’t 
built.

You can file a bug against Pango, the bug tracker is https://bugzilla.gnome.org until Pango gets migrated 
to https://gitlab.gnome.org (supposedly sometime this month). It will get attention faster if you can 
provide a patch. Behdad isn’t terribly familiar with the details of the MacOS API.

Regards,
John Ralls


On May 9, 2018, at 9:34 AM, Jeffrey Sheen <jeffrey sheen00 alumni imperial ac uk> wrote:

Hi John,

I've had success building i386 and x86_64 flavours of the pango/cairo dylibs and using lipo to create 
universal binaries.

However, uploading to the Mac App Store, I encountered the following two issues:
     • By default, GTK+ is building its own version of libzip and linking other libraries to it. This is 
not allowed by Apple, who insist on their distributed library being used.
     • There is a call to `CTFontCopyDefaultCascadeList' in `pangocoretext-fontmap.c', which is not 
allowed by Apple, as it is not a "public" API function.
Is there an easy way to have GTK+ OSX build and link against the system's libzip, or shall I manually 
override that?

As we only use FontConfig, not Core Text, do you know if there is a way of disabling all other font 
managers in the build config of the stack?

Cheers,

Jeff.

On 31 March 2018 at 00:50, Jeffrey Sheen <jeffrey sheen00 alumni imperial ac uk> wrote:
You're too quick for me John!

Nice one.


On Sat, 31 Mar 2018, 00:48 John Ralls, <jralls ceridwen us> wrote:
Yes, you need to build python for i386 because the one Apple provides is x86_64 only.

The reason adding libxml2 and python didn't do anything for you is because you've already build libxml2 
(it's included in meta-gtk-osx-bootstrap) and you need to rebuild it with python:
  jhbuild build -f --clean libxml2 python

Regards,
John Ralls


On Mar 30, 2018, at 4:37 PM, Jeffrey Sheen <jeffrey sheen00 alumni imperial ac uk> wrote:

Great tip, thanks John. It did not occur to me that some of the `bootstrap' modules were optional for 
subsequent builds.

This command worked for the `x86_64' build:

jhbuild build meta-gtk-osx-bootstrap meta-gtk-osx-freetype pango

However, I am encountering an error when building `i386':

checking for python script directory... ${prefix}/lib/python2.7/site-packages
checking for python extension module directory... ${exec_prefix}/lib/python2.7/site-packages
checking for python module libxml2... not found
configure: error: Python module libxml2 is needed to run this package
*** Error during phase configure of itstool: ########## Error running ./configure --prefix 
/Users/gtk-build/gtk/inst    *** [8/25]

I tried adding modules `libxml2' and `python' to the list explicitly, but with the same result.

N.B. In the `~/gtk/inst/lib/python2.7/site-packages/' directory for the `x86_64' build, there are 
multiple `libxml' and `libxslt' library/module files. At the point of failure in the `i386' build, the 
`libxml' files are present in the same location, but the `libxslt' files are not.

I'm not sure why the error is being generated, so I am going to debug 
`~/gtk/source/itstool-2.0.2/configure'. The error message is being generated at line 2426.

On 29 March 2018 at 02:01, John Ralls <jralls ceridwen us> wrote:


On Mar 28, 2018, at 8:38 AM, Jeffrey Sheen <jeffrey sheen00 alumni imperial ac uk> wrote:

N.B. Using a Sierra 10.12.6 environment with Xcode 9.2 and the `~/.jhbuildrc-custom' parameters:

setup_sdk(target='10.6')
or
setup_sdk(target='10.7')

This causes `jhbuild bootstrap' to fail when bootstrapping `cmake 3.10.0':

clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9 
[-Wdeprecated]
cmake_bootstrap_24961_test.cxx:6:2: error: "Compiler is not in a mode aware of C++11."

The approach I am taking now is to roll back to gtk-osx `Last-Lion', and create a custom local branch 
to fold in subsequent commits necessary to update pango/cairo/freetype versions.

I may need to set up a custom environment to improve build compatibility.

Unless you need cmake for some reason, why don’t you just add cmake to the skip list in 
.jhbuildrc-custom?

Regards,
John Ralls









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