On 2022-11-04 13:44, john wrote:

On Nov 4, 2022, at 12:27 AM, Jim DeLaHunt <list+gnuc...@jdlh.com> wrote:
% pkg-config --print-errors --exists freetype2
Package libbrotlidec was not found in the pkg-config search path.
Perhaps you should add the directory containing `libbrotlidec.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libbrotlidec', required by 'freetype2', not found

Aha! Another gtk-osx user experienced that failure a couple of weeks ago [1]. 
You have libbrotli installed somewhere outside of /Users/gtkdeveloper/gnucash 
that Cmake can find it and pkg-config can't. That makes meson decide that it 
can't use that freetype to build harfbuzz so it ignores it and builds harfbuzz 
without freetype.

Add
   module_cmakeargs['freetype']="-DFT_DISABLE_BROTLI=YES"
   module_cmakeargs['freetype-no-harfbuzz']="-DFT_DISABLE_BROTLI=YES"

to /Users/gtkdeveloper/.config/jhbuildrc-custom and run
   jhbuild buildone -fc freetype-no-harfbuzz
   jhbuild build

I just pushed a commit to gtk-osx to make Harfbuzz fail immediately if it's 
unhappy with Freetype for some reason. That should make troubleshooting this 
kind of problem a little quicker.

Thank you. That got me a step further.

freetype-no-harfbuzz now compiles happily, but harfbuzz-no-cairo seems to be unhappy about freetype's lack of libbrotlidec in the same way:

=====

*** Configuring harfbuzz-no-cairo *** [2/2]
The Meson build system
Version: 0.63.3
Source dir: /Users/gtkdeveloper/gnucash/src/harfbuzz-4.1.0
Build dir: /Users/gtkdeveloper/gnucash/build/harfbuzz-4.1.0
Build type: native build
Project name: harfbuzz
Project version: 4.1.0
C compiler for the host machine: /Library/Developer/CommandLineTools/usr/bin/gcc (clang 14.0.0 "Apple clang version 14.0.0 (clang-1400.0.29.202)") C linker for the host machine: /Library/Developer/CommandLineTools/usr/bin/gcc ld64 820.1 C++ compiler for the host machine: /Library/Developer/CommandLineTools/usr/bin/g++ (clang 14.0.0 "Apple clang version 14.0.0 (clang-1400.0.29.202)") C++ linker for the host machine: /Library/Developer/CommandLineTools/usr/bin/g++ ld64 820.1
Host machine cpu family: aarch64
Host machine cpu: arm64
Compiler for C++ supports link arguments -Bsymbolic-functions: YES
Compiler for C++ supports arguments -fno-exceptions: YES
Compiler for C++ supports arguments -fno-rtti: YES
Compiler for C++ supports arguments -fno-threadsafe-statics: YES
Compiler for C++ supports arguments -fvisibility-inlines-hidden: YES
Library m found: YES
Found pkg-config: /Users/gtkdeveloper/gnucash/inst/bin/pkg-config (0.29.2)
Found CMake: /Users/gtkdeveloper/gnucash/inst/bin/cmake (3.20.0)
Run-time dependency freetype2 found: NO (tried pkgconfig, framework and cmake)
Not looking for a fallback subproject for the dependency freetype2 because:
Use of fallback dependencies is disabled.

../../src/harfbuzz-4.1.0/meson.build:87:0: ERROR: Dependency 'freetype2' is required but not found.

A full log can be found at /Users/gtkdeveloper/gnucash/build/harfbuzz-4.1.0/meson-logs/meson-log.txt meson --prefix /Users/gtkdeveloper/gnucash/inst --libdir lib -Dcoretext=enabled -Dfreetype=enabled -Ddocs=disabled -Dbenchmark=disabled -Dintrospection=disabled --wrap-mode=nofallback /Users/gtkdeveloper/gnucash/src/harfbuzz-4.1.0 *** Error during phase configure of harfbuzz-no-cairo: ########## Error running meson --prefix /Users/gtkdeveloper/gnucash/inst --libdir lib -Dcoretext=enabled -Dfreetype=enabled -Ddocs=disabled -Dbenchmark=disabled -Dintrospection=disabled --wrap-mode=nofallback /Users/gtkdeveloper/gnucash/src/harfbuzz-4.1.0 *** [2/2]

=====

The relevant part of meson-log.txt seems to say:

=====

Pkg-config binary for 1 is not cached.
Pkg-config binary missing from cross or native file, or env var undefined.
Trying a default Pkg-config fallback at pkg-config
Found pkg-config: /Users/gtkdeveloper/gnucash/inst/bin/pkg-config (0.29.2)
Determining dependency 'freetype2' with pkg-config executable '/Users/gtkdeveloper/gnucash/inst/bin/pkg-config' env[PKG_CONFIG_PATH]: /Users/gtkdeveloper/gnucash/inst/lib/pkgconfig:/Users/gtkdeveloper/gnucash/inst/share/pkgconfig:/usr/lib/pkgconfig Called `/Users/gtkdeveloper/gnucash/inst/bin/pkg-config --modversion freetype2` -> 0
24.1.18
env[PKG_CONFIG_PATH]: /Users/gtkdeveloper/gnucash/inst/lib/pkgconfig:/Users/gtkdeveloper/gnucash/inst/share/pkgconfig:/usr/lib/pkgconfig Called `/Users/gtkdeveloper/gnucash/inst/bin/pkg-config --cflags freetype2` -> 1

pkg-config error with 'freetype2': Could not generate cargs for freetype2:
Package libbrotlidec was not found in the pkg-config search path.
Perhaps you should add the directory containing `libbrotlidec.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libbrotlidec', required by 'freetype2', not found

Finding framework path by running: /Library/Developer/CommandLineTools/usr/bin/g++ -v -E - -arch arm64 -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -mmacosx-version-min=12 -I/Users/gtkdeveloper/gnucash/inst/include -arch arm64 -I/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk

Looking for framework freetype2 in /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks
CMake binary for 1 is not cached
CMake binary missing from cross or native file, or env var undefined.
Trying a default CMake fallback at cmake
Found CMake: /Users/gtkdeveloper/gnucash/inst/bin/cmake (3.20.0)
Extracting basic cmake information
CMake Toolchain: Calling CMake once to generate the compiler state
Calling CMake (['/Users/gtkdeveloper/gnucash/inst/bin/cmake']) in /Users/gtkdeveloper/gnucash/build/harfbuzz-4.1.0/meson-private/__CMake_compiler_info__ with:
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-G"
  - "Ninja"
  - "-DCMAKE_TOOLCHAIN_FILE=/Users/gtkdeveloper/gnucash/build/harfbuzz-4.1.0/meson-private/__CMake_compiler_info__/CMakeMesonTempToolchainFile.cmake"
  - "."
  - "-DCMAKE_PREFIX_PATH=/Users/gtkdeveloper/gnucash/inst;/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr"
Try CMake generator: auto
Calling CMake (['/Users/gtkdeveloper/gnucash/inst/bin/cmake']) in /Users/gtkdeveloper/gnucash/build/harfbuzz-4.1.0/meson-private/cmake_freetype2 with:
  - "--trace-expand"
  - "--trace-format=json-v1"
  - "--no-warn-unused-cli"
  - "--trace-redirect=cmake_trace.txt"
  - "-DCMAKE_TOOLCHAIN_FILE=/Users/gtkdeveloper/gnucash/build/harfbuzz-4.1.0/meson-private/cmake_freetype2/CMakeMesonToolchainFile.cmake"
  - "."
  - "-DCMAKE_PREFIX_PATH=/Users/gtkdeveloper/gnucash/inst;/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr"   -- Module search paths:    ['/', '/Applications', '/Library/Developer/CommandLineTools/Library/Frameworks', '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks', '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr', '/Library/Frameworks', '/System/Library/Frameworks', '/Users/gtkdeveloper/gnucash/inst', '/opt', '/opt/local', '/usr', '/usr/local']
  -- CMake root: /Users/gtkdeveloper/gnucash/inst/share/cmake-3.20
  -- CMake architectures:    []
  -- CMake lib search paths: ['lib', 'lib32', 'lib64', 'libx32', 'share']
Preliminary CMake check failed. Aborting.
Run-time dependency freetype2 found: NO (tried pkgconfig, framework and cmake)
Not looking for a fallback subproject for the dependency freetype2 because:
Use of fallback dependencies is disabled.

../../src/harfbuzz-4.1.0/meson.build:87:0: ERROR: Dependency 'freetype2' is required but not found.

=====

Like a good script kiddie, I tried adding to jhbuildrc-custom a line:
  module_cmakeargs['harfbuzz-no-cairo']="-DFT_DISABLE_BROTLI=YES"

... and cleaning and remaking harfbuzz-no-cairo, but it had no effect.

By the way, in the CMake part of the meson-log above, I see a mention of the path /opt/local . It turns out that I do have an /opt/local/lib/libbrotlidec*.dylib and /opt/local/lib/pkgconfig/libbrotlidec.pc,  installed there by MacPorts port "brotli". If Cmake looks for libraries in /opt/local, maybe it found that.

Thank you for your help, John. If I may continue to impose, and ideas for a next step?
     —Jim DeLaHunt


[1] https://gitlab.gnome.org/GNOME/gtk-osx/-/issues/62 
<https://gitlab.gnome.org/GNOME/gtk-osx/-/issues/62>
_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to