[gtk-osx] Reconfigure harfbuzz and freetype as dependencies.



commit 4271432ebc79524838056e454ee3f09bea80df02
Author: John Ralls <jralls ceridwen us>
Date:   Fri Aug 14 15:27:39 2020 -0700

    Reconfigure harfbuzz and freetype as dependencies.
    
    Harfbuzz and Freetype have become mandatory dependencies via Pango and
    librsvg. Freetype in turn has a circular dependency on Harbuzz, but
    can be built without it. Quartz doesn't really need harfbuzz for shaping
    we just need to satisfy the dependencies. So harfbuzz is moved out of
    meta-gtk-osx-freetype into gtk-osx.modules as a dependency of pango. It
    needs cairoft2 so cairo gets freetype-no-harfbuzz as an added depenedncy
    as well, as does librsvg.
    
    In the process upgraded both freetype modules and converted them to build
    with CMake, upgraded harfbuzz and fontconfig and converted them to build
    with meson on all three modulesets,

 modulesets-stable/gtk-osx-bootstrap.modules   |  46 ++-----
 modulesets-stable/gtk-osx.modules             | 173 +++++++++++++++-----------
 modulesets-unstable/gtk-osx-bootstrap.modules |  77 +++---------
 modulesets-unstable/gtk-osx.modules           | 107 +++++++++-------
 modulesets/gtk-osx-bootstrap.modules          |  36 +-----
 modulesets/gtk-osx.modules                    |  80 +++++++-----
 patches/freetype-install-name.patch           |  58 +++++++++
 7 files changed, 301 insertions(+), 276 deletions(-)
---
diff --git a/modulesets-stable/gtk-osx-bootstrap.modules b/modulesets-stable/gtk-osx-bootstrap.modules
index 17342f2..0323a95 100644
--- a/modulesets-stable/gtk-osx-bootstrap.modules
+++ b/modulesets-stable/gtk-osx-bootstrap.modules
@@ -20,8 +20,6 @@
              href="ftp://xmlsoft.org/libxml2/"/>
   <repository type="git" name="git.gnome.org"
               href="https://gitlab.gnome.org/GNOME"/>
-  <repository type="tarball" name="harfbuzz"
-              href="http://www.freedesktop.org/software/harfbuzz/release/"/>
   <repository type="tarball" name="itstool" href="http://files.itstool.org/"/>
   <repository type="tarball" name="github-tarball" href="https://github.com/"/>
   <repository type="tarball" name="ragel"
@@ -137,47 +135,21 @@
             hash="sha256:52a3f2209ab95559c1cf0a14f24338001f389615bf00e2585ef3dbc43ecf0a2e"/>
   </autotools>
 
-
-  <autotools id="ragel" autogen-sh='autoreconf'>
-    <branch repo="ragel" module="ragel-6.10.tar.gz" version="6.10">
-      <patch file="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/patches/ragel-6.9-setiosflags.patch"; 
strip="1"/>
-    </branch>
-  </autotools>
-
-  <autotools id="harfbuzz" autogen-sh="configure"
-             autogenargs="--with-coretext --with-icu">
-    <branch repo="harfbuzz" module="harfbuzz-2.6.4.tar.xz" version="2.6.4"
-            hash="sha256:9413b8d96132d699687ef914ebb8c50440efc87b3f775d25856d7ec347c03c12">
-    </branch>
-    <dependencies>
-      <dep package="ragel"/>
-      <dep package="glib"/>
-    </dependencies>
-    <after>
-      <dep package="icu"/>
-      <dep package="icu55"/>
-    </after>
-  </autotools>
-
-  <autotools id="freetype" autogen-sh="configure"
-             skip-autogen="never"
-             autogenargs="--without-bzip2 --without-harfbuzz">
+  <cmake id="freetype" cmakeargs="-DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE -D BUILD_SHARED_LIBS=true -D 
CMAKE_BUILD_TYPE=Release">
     <branch module="freetype/freetype-2.10.2.tar.gz" version="2.10.2"
-            repo="sourceforge">
-    </branch>
+            repo="sourceforge"/>
     <dependencies>
       <dep package="zlib"/>
     </dependencies>
-  </autotools>
+  </cmake>
 
-  <autotools id="fontconfig" autogen-sh="autoreconf"
-             autogenargs="--disable-docs 
'--with-add-fonts=/System/Library/Fonts,/Library/Fonts,~/Library/Fonts'">
-    <branch repo="fontconfig" version="2.13.1" module="fontconfig-2.13.1.tar.bz2">
-    </branch>
+  <meson id="fontconfig" mesonargs="-Ddocs=disabled">
+    <branch repo="fontconfig" version="2.13.1"
+            module="fontconfig-2.13.1.tar.bz2"/>
     <dependencies>
-      <dep package="freetype"/>
+      <dep package="freetype-no-harfbuzz"/>
     </dependencies>
-  </autotools>
+  </meson>
 
   <autotools id="hicolor-icon-theme" autogen-sh="configure"
             supports-non-srcdir-builds="no">
@@ -195,11 +167,11 @@
     </dependencies>
   </metamodule>
 
+  <!-- Use this only if you need fontconfig and for freetype to have harfbuzz shaping available. -->
   <metamodule id="meta-gtk-osx-freetype">
     <dependencies>
       <dep package="freetype"/>
       <dep package="fontconfig"/>
-      <dep package="harfbuzz"/>
     </dependencies>
   </metamodule>
 
diff --git a/modulesets-stable/gtk-osx.modules b/modulesets-stable/gtk-osx.modules
index e69a11a..238d605 100644
--- a/modulesets-stable/gtk-osx.modules
+++ b/modulesets-stable/gtk-osx.modules
@@ -19,28 +19,28 @@
   <!-- This module set works a bit differently than for example the
        GNOME ones do. It's split up in seperate pieces:
 
-       - gtk-osx-bootstrap: contains bootstrap-like modules that you
-         don't want to rebuild all the time.
+- gtk-osx-bootstrap: contains bootstrap-like modules that you
+don't want to rebuild all the time.
 
-       - gtk-osx.modules: contains the core GTK+ stack. This does not
-         have a hard dependency on the bootstrap modules, in order to
-         make it easy to rebuild the whole core stack without redoing
-         the bootstrap parts. They have a soft, "after", depencency.
+- gtk-osx.modules: contains the core GTK+ stack. This does not
+have a hard dependency on the bootstrap modules, in order to
+make it easy to rebuild the whole core stack without redoing
+the bootstrap parts. They have a soft, "after", depencency.
 
-       The remaining modules are mostly for testing and might not work
-       all the time:
+The remaining modules are mostly for testing and might not work
+all the time:
 
-       - gtk-osx-python.modules: self explaining.
-       - gtk-osx-gtkmm.modules: self explaining.
-       - gtk-osx-javascript.modules: GJS, associated tools, and the Mozilla JS
-         library it depends on.
-       - gtk-osx-gstreamer.modules: self explaining.
-       - gtk-osx-themes.modules: self explaining.
-       - gtk-osx-network.modules: The network/crypto stack and various
-         configurations of WebKit.
+- gtk-osx-python.modules: self explaining.
+- gtk-osx-gtkmm.modules: self explaining.
+- gtk-osx-javascript.modules: GJS, associated tools, and the Mozilla JS
+library it depends on.
+- gtk-osx-gstreamer.modules: self explaining.
+- gtk-osx-themes.modules: self explaining.
+- gtk-osx-network.modules: The network/crypto stack and various
+configurations of WebKit.
 
-       - gtk-osx-random.modules: "random stuff", has apps for testing GTK+.
-       - gtk-osx-unsupported.modules: more testing stuff, competely unsupported.
+- gtk-osx-random.modules: "random stuff", has apps for testing GTK+.
+- gtk-osx-unsupported.modules: more testing stuff, competely unsupported.
   -->
 
   <include href="gtk-osx-bootstrap.modules"/>
@@ -53,6 +53,11 @@
   <include href="gtk-osx-themes.modules"/>
   <include href="gtk-osx-unsupported.modules"/>
 
+  <!-- Dummy meson module to shut up a jhbuild warning. -->
+  <systemmodule id="meson">
+    <branch repo="system"/>
+  </systemmodule>
+
   <metamodule id="meta-gtk-osx-core">
     <dependencies>
       <dep package="gtk+"/>
@@ -85,22 +90,58 @@
     </after>
   </metamodule>
 
+  <autotools id="libffi" autogenargs="--disable-builddir"
+             autogen-sh="configure">
+    <branch module="libffi/libffi/releases/download/v3.3/libffi-3.3.tar.gz"
+            repo="github-tarball" version="3.3"/>
+  </autotools>
+
   <meson id="glib" mesonargs="-Dinternal_pcre=true -Dlibmount=disabled">
     <branch module="glib/2.64/glib-2.64.2.tar.xz"  version="2.64.2"
             hash="sha256:9a2f21ed8f13b9303399de13a0252b7cbcede593d26971378ec6cb90e87f2277">
     </branch>
     <dependencies>
-        <dep package="libffi"/>
+      <dep package="libffi"/>
+    </dependencies>
+  </meson>
+
+  <cmake id="freetype-no-harfbuzz" cmakeargs="-DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE 
-DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE -D BUILD_SHARED_LIBS=true -D CMAKE_BUILD_TYPE=Release">
+    <branch module="freetype/freetype-2.10.2.tar.gz" version="2.10.2"
+            repo="sourceforge">
+      <patch file="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/patches/freetype-install-name.patch"; 
strip="1"/>
+    </branch>
+    <dependencies>
+      <dep package="zlib"/>
     </dependencies>
+  </cmake>
+
+  <autotools id="pixman" autogenargs="--disable-gtk --disable-mmx"
+             autogen-sh="configure">
+    <branch version="0.40.0" module="pixman-0.40.0.tar.gz"
+            repo="cairographics"
+            
hash="sha512:063776e132f5d59a6d3f94497da41d6fc1c7dca0d269149c78247f0e0d7f520a25208d908cf5e421d1564889a91da44267b12d61c0bd7934cd54261729a7de5f">
+    </branch>
     <after>
       <dep package="meta-gtk-osx-bootstrap"/>
     </after>
-  </meson>
+  </autotools>
 
-  <autotools id="libffi" autogenargs="--disable-builddir"
-             autogen-sh="configure">
-    <branch module="libffi/libffi/releases/download/v3.3/libffi-3.3.tar.gz"
-            repo="github-tarball" version="3.3"/>
+  <autotools id="cairo"  autogen-sh="autoreconf"
+             autogenargs="--enable-pdf --enable-quartz --disable-xlib --without-x">
+    <branch module="cairo-1.16.0.tar.xz"  version="1.16.0"
+            repo="cairographics"
+            hash="sha1:00e81842ae5e81bb0343108884eb5205be0eac14">
+      <patch 
file="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/patches/cairo-freetype-font-variations.patch"; 
strip="1"/>
+      <patch file="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/patches/cairo-image-refcount.patch"; 
strip="1"/>
+    </branch>
+    <dependencies>
+      <dep package="pixman"/>
+      <dep package="meta-gtk-osx-bootstrap"/>
+      <dep package="freetype-no-harfbuzz"/>
+    </dependencies>
+    <after>
+      <dep package="fontconfig"/>
+    </after>
   </autotools>
 
   <meson id="gobject-introspection">
@@ -126,6 +167,20 @@
     </dependencies>
   </meson>
 
+  <meson id="harfbuzz" mesonargs="-Dcoretext=enabled -Ddocs=disabled">
+    <branch repo="github-tarball" version="2.7.1"
+            module="harfbuzz/harfbuzz/releases/download/2.7.1/harfbuzz-2.7.1.tar.xz" 
+            hash="sha256:e95ee43b6bd0d3d1307e2aacf0f9c0050e5baceb21988b367b833028114aa569">
+    </branch>
+    <dependencies>
+      <dep package="freetype-no-harfbuzz"/>
+      <dep package="cairo"/>
+    </dependencies>
+    <after>
+      <dep package="gobject-introspection"/>
+    </after>
+  </meson>
+
   <meson id="pango">
     <branch version="1.44.7" module="pango/1.44/pango-1.44.7.tar.xz"
             hash="sha256:66a5b6cc13db73efed67b8e933584509f8ddb7b10a8a40c3850ca4a985ea1b1f">
@@ -135,15 +190,15 @@
       <dep package="cairo"/>
       <dep package="fribidi"/>
       <dep package="harfbuzz"/>
-     </dependencies>
+    </dependencies>
     <after>
       <dep package="gobject-introspection"/>
-      <dep package="meta-gtk-osx-freetype"/>
       <dep package="meta-gtk-osx-bootstrap"/>
+      <dep package="freetype-no-harfbuzz"/>
     </after>
   </meson>
   
- <meson id="atk">
+  <meson id="atk">
     <branch module="atk/2.36/atk-2.36.0.tar.xz" version="2.36.0"
             hash="sha256:fb76247e369402be23f1f5c65d38a9639c1164d934e40f6a9cf3c9e96b652788"/>
     <dependencies>
@@ -180,7 +235,7 @@
       <patch 
file="https://gitlab.gnome.org/GNOME/gtk/uploads/f0c19446b9cd1df467c4cc9050516d4b/0001-Bug-743717-Crashes-on-clipboard-operation-influence-.patch";
 strip="1"/>
       <!-- upstream bug: https://gitlab.gnome.org/GNOME/gtk/issues/580 -->
       <patch 
file="https://gitlab.gnome.org/GNOME/gtk/uploads/2a194d81de8e8346a81816870264b3bf/gdkimage.patch"; strip="1"/>
-   </branch>
+    </branch>
     <dependencies>
       <dep package="glib"/>
       <dep package="pango"/>
@@ -217,7 +272,7 @@
       <patch file="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/patches/gtk3-14-get-scale-factor.patch"; 
strip="1"/>
       <patch 
file="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/patches/gtk-3.14-stylecontext-unnecessary-assert.patch";
 strip="1"/>
       <patch 
file="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/patches/gtk-3.14-GDesktopAppInfo-not-implemented-on-Mac.patch";
 strip="1"/>
-   </branch>
+    </branch>
     <dependencies>
       <dep package="glib"/>
       <dep package="pango"/>
@@ -249,38 +304,6 @@
     </after>
   </autotools>
 
-  <autotools id="pixman" autogenargs="--disable-gtk --disable-mmx"
-             autogen-sh="configure">
-    <branch version="0.40.0" module="pixman-0.40.0.tar.gz"
-            repo="cairographics"
-            
hash="sha512:063776e132f5d59a6d3f94497da41d6fc1c7dca0d269149c78247f0e0d7f520a25208d908cf5e421d1564889a91da44267b12d61c0bd7934cd54261729a7de5f">
-    </branch>
-    <after>
-      <dep package="meta-gtk-osx-bootstrap"/>
-    </after>
-  </autotools>
-
-  <!-- Cairo will automatically enable freetype and fontconfig if
-       meta-gtk-osx-freetype is built, so packages which require
-       cairoft or cairofc should have meta-gtk-osx-freetype as a
-       dependency. -->
-  <autotools id="cairo"  autogen-sh="autoreconf"
-             autogenargs="--enable-pdf --enable-quartz --disable-xlib --without-x">
-    <branch module="cairo-1.16.0.tar.xz"  version="1.16.0"
-            repo="cairographics"
-            hash="sha1:00e81842ae5e81bb0343108884eb5205be0eac14">
-      <patch 
file="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/patches/cairo-freetype-font-variations.patch"; 
strip="1"/>
-      <patch file="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/patches/cairo-image-refcount.patch"; 
strip="1"/>
-    </branch>
-    <dependencies>
-      <dep package="pixman"/>
-    </dependencies>
-    <after>
-      <dep package="meta-gtk-osx-bootstrap"/>
-      <dep package="meta-gtk-osx-freetype"/>
-    </after>
-  </autotools>
-
   <autotools id="gtk-mac-integration" autogen-sh="configure"
              autogenargs="--disable-python">
     <branch module="gtk-mac-integration/2.1/gtk-mac-integration-2.1.3.tar.xz"
@@ -297,12 +320,10 @@
     </after>
   </autotools>
 
-    <autotools id="adwaita-icon-theme" autogen-sh="configure">
-    <branch module="adwaita-icon-theme/3.36/adwaita-icon-theme-3.36.1.tar.xz"
-            version="3.36.1" hash="sha256:e498518627044dfd7db7d79a5b3d437848caf1991ef4ef036a2d3a2ac2c1f14d"/>
-    <dependencies>
-      <dep package="librsvg"/>
-    </dependencies>
+  <autotools id="libcroco" autogenargs="--disable-Bsymbolic"
+             autogen-sh="configure">
+    <branch module="libcroco/0.6/libcroco-0.6.13.tar.xz" version="0.6.13"
+            hash="sha256:767ec234ae7aa684695b3a735548224888132e063f92db585759b422570621d4"/>
   </autotools>
 
   <!-- librsvg is converting to the Rust language. This requires
@@ -310,23 +331,25 @@
        jhbuild, so we'll freeze at the 2.40 branch. -->
   <autotools id="librsvg" autogenargs="--disable-Bsymbolic">
     <branch module="librsvg/2.40/librsvg-2.40.17.tar.xz" version="2.40.17"
-           hash="sha256:e6f6c5cbecc405bb945c7cd15061276035ae3173bbb3bb25e8a916779c7f69cc"/>
+            hash="sha256:e6f6c5cbecc405bb945c7cd15061276035ae3173bbb3bb25e8a916779c7f69cc"/>
     <dependencies>
       <dep package="libcroco"/>
-      <dep package="meta-gtk-osx-freetype"/>
+      <dep package="freetype-no-harfbuzz"/>
     </dependencies>
     <after>
-<!-- Circular dependency if we depend on meta-gtk-osx or meta-gtk-osx-gtk3 -->
+      <!-- Circular dependency if we depend on meta-gtk-osx or meta-gtk-osx-gtk3 -->
       <dep package="gtk+"/>
       <dep package="gtk+-3.0"/>
       <dep package="gtk+-3.14"/>
     </after>
   </autotools>
 
-  <autotools id="libcroco" autogenargs="--disable-Bsymbolic"
-            autogen-sh="configure">
-    <branch module="libcroco/0.6/libcroco-0.6.13.tar.xz" version="0.6.13"
-           hash="sha256:767ec234ae7aa684695b3a735548224888132e063f92db585759b422570621d4"/>
+  <autotools id="adwaita-icon-theme" autogen-sh="configure">
+    <branch module="adwaita-icon-theme/3.36/adwaita-icon-theme-3.36.1.tar.xz"
+            version="3.36.1" hash="sha256:e498518627044dfd7db7d79a5b3d437848caf1991ef4ef036a2d3a2ac2c1f14d"/>
+    <dependencies>
+      <dep package="librsvg"/>
+    </dependencies>
   </autotools>
- 
+
 </moduleset>
diff --git a/modulesets-unstable/gtk-osx-bootstrap.modules b/modulesets-unstable/gtk-osx-bootstrap.modules
index 4abf8c2..1c86595 100644
--- a/modulesets-unstable/gtk-osx-bootstrap.modules
+++ b/modulesets-unstable/gtk-osx-bootstrap.modules
@@ -15,7 +15,7 @@
   <repository type="tarball" name="libtiff"
              href="http://download.osgeo.org/"/>
   <repository type="git" name="freedesktop"
-             href="git://anongit.freedesktop.org/"/>
+             href="https://gitlab.freedesktop.org/"/>
   <repository type="tarball" name="icon-theme"
               href="http://icon-theme.freedesktop.org/releases/"/>
   <repository type="tarball" name="xmlsoft.org"
@@ -113,79 +113,38 @@
             hash="sha256:52a3f2209ab95559c1cf0a14f24338001f389615bf00e2585ef3dbc43ecf0a2e"/>
   </autotools>
 
-  <!-- Ragel, like Vala, isn't bootstrappable from git, so we might as well just use the tarball. -->
-  <autotools id="ragel" autogen-sh='autoreconf'>
-    <branch repo="ragel" module="ragel-6.10.tar.gz" version="6.10">
-      <patch file="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/patches/ragel-6.9-setiosflags.patch"; 
strip="1"/>
-    </branch>
-  </autotools>
-
-  <autotools id="harfbuzz" autogenargs="--with-coretext --with-icu --with-gobject 
--enable-introspection=yes">
-    <branch repo="freedesktop" module="harfbuzz"/>
-    <dependencies>
-      <dep package="freetype-no-harfbuzz"/>
-      <dep package="ragel"/>
-      <dep package="glib"/>
-      <dep package="icu"/>
-    </dependencies>
-    <after>
-      <dep package="icu55"/>
-    </after>
-  </autotools>
-
-  <autotools id="freetype-no-harfbuzz" skip-autogen="never" autogenargs="--without-bzip2 --without-harfbuzz"
-            autogen-template="%(srcdir)s/%(autogen-sh)s &amp;&amp; %(srcdir)s/configure --prefix %(prefix)s  
%(autogenargs)s"
-             supports-non-srcdir-builds="no">
-    <branch module="freetype/freetype2" repo="nongnu"/>
-    <dependencies>
-      <dep package="zlib"/>
-    </dependencies>
-  </autotools>
-
-  <autotools id="freetype" skip-autogen="never" autogenargs="--without-bzip2"
-            autogen-template="make distclean &amp;&amp; %(srcdir)s/autogen.sh &amp;&amp; 
%(srcdir)s/configure --prefix %(prefix)s  %(autogenargs)s"
-            supports-non-srcdir-builds="no">
+  <cmake id="freetype" cmakeargs="-DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE -D BUILD_SHARED_LIBS=true -D 
CMAKE_BUILD_TYPE=Release">
     <branch module="freetype/freetype2" repo="nongnu"/>
     <dependencies>
       <dep package="harfbuzz"/>
       <dep package="zlib"/>
     </dependencies>
-  </autotools>
+  </cmake>
 
-  <distutils id="lxml">
-    <branch module="l/lxml/lxml-3.4.4.tar.gz" repo="pypi" version="3.4.4"/>
+  <meson id="fontconfig" mesonargs="-Ddocs=disabled">
+    <branch repo="freedesktop" module="fontconfig/fontconfig"/>
     <dependencies>
-      <dep package="libxml2"/>
-      <dep package="libxslt"/>
-    </dependencies>
-  </distutils>
-
-  <distutils id="python-six">
-    <branch module="s/six/six-1.10.0.tar.gz" repo="pypi" version="1.10.0"
-            checkoutdir="six"/>
-    <dependencies>
-      <dep package="libxml2"/>
-      <dep package="libxslt"/>
+      <dep package="freetype-no-harfbuzz"/>
     </dependencies>
-  </distutils>
-
-  <autotools id="fontconfig" autogenargs="--disable-docs">
-    <branch repo="freedesktop"/>
-    <dependencies>
-      <dep package="freetype"/>
-      <dep package="lxml"/>
-      <dep package="python-six"/>
-    </dependencies>
-  </autotools>
+  </meson>
 
   <autotools id="hicolor-icon-theme" autogen-sh="configure" supports-non-srcdir-builds="no">
     <branch module="hicolor-icon-theme-0.13.tar.gz" repo="icon-theme"
             version="0.13"/>
   </autotools>
 
+  <meson id="gtk-doc">
+    <branch repo="git.gnome.org"/>
+    <dependencies>
+      <dep package="libxml2"/>
+      <dep package="itstool"/>
+      <dep package="yelp-tools"/>
+      <dep package="glib"/>
+    </dependencies>
+  </meson>
+
    <metamodule id="meta-gtk-osx-bootstrap">
     <dependencies>
-      <dep package="readline"/>
       <dep package="libpng"/>
       <dep package="libjpeg"/>
       <dep package="libtiff"/>
@@ -194,11 +153,11 @@
     </dependencies>
   </metamodule>
 
+  <!-- Use this only if you need fontconfig and for freetype to have harfbuzz shaping available. -->
   <metamodule id="meta-gtk-osx-freetype">
     <dependencies>
       <dep package="freetype"/>
       <dep package="fontconfig"/>
-      <dep package="harfbuzz"/>
     </dependencies>
   </metamodule>
 
diff --git a/modulesets-unstable/gtk-osx.modules b/modulesets-unstable/gtk-osx.modules
index db4c51c..65ad7fc 100644
--- a/modulesets-unstable/gtk-osx.modules
+++ b/modulesets-unstable/gtk-osx.modules
@@ -6,9 +6,11 @@
               href="https://gitlab.gnome.org/GNOME"/>
   <repository type="git" name="github" href="git://github.com/"/>
   <repository type="git" name="freedesktop"
-              href="git://gitlab.freedesktop.org/"/>
+              href="https://gitlab.freedesktop.org/"/>
   <repository type="git" name="freedesktop-jralls"
-              href="git://gitlab.freedesktop.org/jralls/"/>
+              href="https://gitlab.freedesktop.org/jralls/"/>
+  <repository type="git" name="nongnu"
+             href="git://git.sv.nongnu.org/"/>
   <repository type="system" name="system"/>
 
   <!-- This module set works a bit differently than for example the
@@ -48,6 +50,11 @@
   <include href="gtk-osx-random.modules"/>
   <include href="gtk-osx-unsupported.modules"/>
 
+  <!-- Dummy meson module to shut up a jhbuild warning. -->
+  <systemmodule id="meson">
+    <branch repo="system"/>
+  </systemmodule>
+  
   <metamodule id="meta-gtk-osx-core">
     <dependencies>
       <dep package="gtk+"/>
@@ -69,6 +76,11 @@
     </after>
   </metamodule>
 
+  <autotools id="libffi" autogenargs="--disable-builddir"
+             autogen-sh="autoreconf" supports-non-srcdir-builds="no">
+    <branch module="atgreen/libffi" repo="github"/>
+  </autotools>
+
   <meson id="glib" mesonargs="-Dinternal_pcre=true -Dlibmount=disabled">
     <branch/>
     <dependencies>
@@ -76,9 +88,31 @@
     </dependencies>
   </meson>
 
-  <autotools id="libffi" autogenargs="--disable-builddir"
-             autogen-sh="autoreconf" supports-non-srcdir-builds="no">
-    <branch module="atgreen/libffi" repo="github"/>
+   <cmake id="freetype-no-harfbuzz" cmakeargs="-DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE 
-DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE -D BUILD_SHARED_LIBS=true -D CMAKE_BUILD_TYPE=Release">
+    <branch module="freetype/freetype2" repo="nongnu"/>
+    <dependencies>
+      <dep package="zlib"/>
+    </dependencies>
+  </cmake>
+
+  <autotools id="pixman" autogenargs="--disable-gtk --disable-mmx">
+    <branch repo="freedesktop" module="pixman/pixman" />
+    <after>
+      <dep package="meta-gtk-osx-bootstrap"/>
+    </after>
+  </autotools>
+
+  <autotools id="cairo"
+             autogenargs="--enable-pdf --enable-quartz --disable-xlib --without-x">
+    <branch repo="freedesktop-jralls" module="cairo" />
+    <dependencies>
+      <dep package="pixman"/>
+      <dep package="meta-gtk-osx-bootstrap"/>
+      <dep package="freetype-no-harfbuzz"/>
+    </dependencies>
+    <after>
+      <dep package="fontconfig"/>
+    </after>
   </autotools>
 
   <meson id="gobject-introspection">
@@ -90,6 +124,17 @@
     </dependencies>
   </meson>
 
+  <meson id="harfbuzz" mesonargs="-Ddocs=disabled">
+    <branch repo="github" module="harfbuzz/harfbuzz"/>
+    <dependencies>
+      <dep package="freetype-no-harfbuzz"/>
+      <dep package="cairo"/>
+    </dependencies>
+    <after>
+      <dep package="gobject-introspection"/>
+    </after>
+  </meson>
+
   <meson id="fribidi" mesonargs="-Ddocs=false">
     <branch module="fribidi/fribidi" repo="github"/>
     <dependencies>
@@ -100,15 +145,15 @@
   <meson id="pango">
     <branch />
     <dependencies>
-      <dep package="cairo"/>
       <dep package="glib"/>
+      <dep package="cairo"/>
       <dep package="fribidi"/>
       <dep package="harfbuzz"/>
     </dependencies>
     <after>
       <dep package="gobject-introspection"/>
+      <dep package="freetype-no-harfbuzz"/>
       <dep package="meta-gtk-osx-bootstrap"/>
-      <dep package="meta-gtk-osx-freetype"/>
     </after>
   </meson>
 
@@ -131,16 +176,6 @@
     </after>
   </meson>
 
-  <meson id="gtk-doc">
-    <branch repo="git.gnome.org"/>
-    <dependencies>
-      <dep package="libxml2"/>
-      <dep package="itstool"/>
-      <dep package="yelp-tools"/>
-      <dep package="glib"/>
-    </dependencies>
-  </meson>
-
   <autotools id="xorg-util-macros">
     <branch repo="freedesktop" module="xorg/util/macros"/>
   </autotools>
@@ -208,29 +243,6 @@
     </after>
   </meson>
 
-  <autotools id="pixman" autogenargs="--disable-gtk --disable-mmx">
-    <branch repo="freedesktop" module="pixman" />
-    <after>
-      <dep package="meta-gtk-osx-bootstrap"/>
-    </after>
-  </autotools>
-
-  <!-- Cairo will automatically enable freetype and fontconfig if
-       meta-gtk-osx-freetype is built, so packages which require
-       cairoft or cairofc should have meta-gtk-osx-freetype as a
-       dependency. -->
-  <autotools id="cairo"
-             autogenargs="--enable-pdf --enable-quartz --disable-xlib --without-x">
-    <branch repo="freedesktop-jralls" module="cairo" />
-    <dependencies>
-      <dep package="pixman"/>
-    </dependencies>
-    <after>
-      <dep package="meta-gtk-osx-bootstrap"/>
-      <dep package="meta-gtk-osx-freetype"/>
-    </after>
-  </autotools>
-
   <autotools id="gtk-mac-integration" autogenargs="--disable-python">
     <branch/>
     <after>
@@ -239,11 +251,8 @@
     </after>
   </autotools>
 
-  <autotools id="adwaita-icon-theme">
-    <branch />
-    <dependencies>
-      <dep package="librsvg"/>
-    </dependencies>
+  <autotools id="libcroco" autogenargs="--disable-Bsymbolic">
+    <branch/>
   </autotools>
 
   <!-- librsvg is converting to the Rust language. This requires
@@ -253,6 +262,7 @@
     <branch module="librsvg" tag="librsvg-2-40"/>
     <dependencies>
       <dep package="libcroco"/>
+      <dep package="freetype-no-harfbuzz"/>
     </dependencies>
     <after>
       <dep package="gtk+"/>
@@ -260,8 +270,11 @@
     </after>
   </autotools>
 
-  <autotools id="libcroco" autogenargs="--disable-Bsymbolic">
-    <branch/>
+  <autotools id="adwaita-icon-theme">
+    <branch />
+    <dependencies>
+      <dep package="librsvg"/>
+    </dependencies>
   </autotools>
 
 </moduleset>
diff --git a/modulesets/gtk-osx-bootstrap.modules b/modulesets/gtk-osx-bootstrap.modules
index 25a045a..54c8f44 100644
--- a/modulesets/gtk-osx-bootstrap.modules
+++ b/modulesets/gtk-osx-bootstrap.modules
@@ -120,43 +120,20 @@
             hash="sha256:52a3f2209ab95559c1cf0a14f24338001f389615bf00e2585ef3dbc43ecf0a2e"/>
   </autotools>
 
-  <!-- Ragel, like Vala, isn't bootstrappable from git, so we might as well just use the tarball. -->
-  <autotools id="ragel" autogen-sh='autoreconf'>
-    <branch repo="ragel" module="ragel-6.10.tar.gz" version="6.10">
-      <patch file="https://gitlab.gnome.org/GNOME/gtk-osx/raw/master/patches/ragel-6.9-setiosflags.patch"; 
strip="1"/>
-    </branch>
-  </autotools>
-
-  <autotools id="harfbuzz"
-             autogenargs="--with-coretext --with-freetype --with-icu">
-    <branch repo="github" module="harfbuzz/harfbuzz" tag="2.5.3"/>
-    <dependencies>
-      <dep package="ragel"/>
-      <dep package="glib"/>
-    </dependencies>
-    <after>
-      <dep package="icu"/>
-      <dep package="icu55"/>
-    </after>
-  </autotools>
-
-  <autotools id="freetype" skip-autogen="never" autogenargs="--without-bzip2"
-            autogen-template="if test -f Makefile; then make distclean; fi &amp;&amp; pushd %(srcdir)s 
&amp;&amp; ./autogen.sh &amp;&amp; popd &amp;&amp; %(srcdir)s/configure --prefix %(prefix)s  %(autogenargs)s">
-    <branch module="freetype/freetype2" tag="VER-2-9-1" repo="nongnu"/>
+  <cmake id="freetype" cmakeargs="-DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE -D BUILD_SHARED_LIBS=true -D 
CMAKE_BUILD_TYPE=Release">
+    <branch module="freetype/freetype2" repo="nongnu"/>
     <dependencies>
       <dep package="harfbuzz"/>
       <dep package="zlib"/>
     </dependencies>
- </autotools>
+  </cmake>
 
-  <autotools id="fontconfig" autogenargs="--disable-docs">
-    <branch repo="freedesktop" tag="2.13.1"/>
+  <meson id="fontconfig" mesonargs="-Ddocs=disabled">
+    <branch repo="freedesktop" module="fontconfig/fontconfig" tag="2.13.1"/>
     <dependencies>
       <dep package="freetype"/>
-      <dep package="pylxml"/>
-      <dep package="pysix"/>
     </dependencies>
-  </autotools>
+  </meson>
 
   <autotools id="hicolor-icon-theme" autogen-sh="configure"
             supports-non-srcdir-builds="no">
@@ -180,7 +157,6 @@
     <dependencies>
       <dep package="freetype"/>
       <dep package="fontconfig"/>
-      <dep package="harfbuzz"/>
     </dependencies>
   </metamodule>
 
diff --git a/modulesets/gtk-osx.modules b/modulesets/gtk-osx.modules
index 5ba4f65..297b4fe 100644
--- a/modulesets/gtk-osx.modules
+++ b/modulesets/gtk-osx.modules
@@ -7,6 +7,8 @@
   <repository type="git" name="github" href="git://github.com/"/>
   <repository type="git" name="freedesktop"
               href="git://gitlab.freedesktop.org/"/>
+  <repository type="git" name="nongnu"
+             href="git://git.sv.nongnu.org/"/>
   <repository type="system" name="system"/>
 
   <!-- This module set works a bit differently than for example the
@@ -46,6 +48,11 @@
   <include href="gtk-osx-random.modules"/>
   <include href="gtk-osx-unsupported.modules"/>
 
+  <!-- Dummy meson module to shut up a jhbuild warning. -->
+  <systemmodule id="meson">
+    <branch repo="system"/>
+  </systemmodule>
+
   <metamodule id="meta-gtk-osx-core">
     <dependencies>
       <dep package="gtk+"/>
@@ -67,6 +74,11 @@
     </after>
   </metamodule>
 
+  <autotools id="libffi" autogenargs="--disable-builddir"
+             autogen-sh="autoreconf" supports-non-srcdir-builds="no">
+    <branch module="atgreen/libffi" repo="github" tag="v3.3"/>
+  </autotools>
+
   <meson id="glib" mesonargs="-Dinternal_pcre=true -Dlibmount=disabled">
     <branch tag="glib-2-64"/>
     <dependencies>
@@ -74,9 +86,31 @@
     </dependencies>
   </meson>
 
-  <autotools id="libffi" autogenargs="--disable-builddir"
-             autogen-sh="autoreconf" supports-non-srcdir-builds="no">
-    <branch module="atgreen/libffi" repo="github" tag="v3.3"/>
+  <autotools id="pixman" autogenargs="--disable-gtk --disable-mmx">
+    <branch repo="freedesktop" module="pixman" revision="0.38"/>
+    <after>
+      <dep package="meta-gtk-osx-bootstrap"/>
+    </after>
+  </autotools>
+
+  <cmake id="freetype-no-harfbuzz" cmakeargs="-DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE 
-DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE -D BUILD_SHARED_LIBS=true -D CMAKE_BUILD_TYPE=Release">
+    <branch module="freetype/freetype2" repo="nongnu" tag="VER-2-10-2"/>
+    <dependencies>
+      <dep package="zlib"/>
+    </dependencies>
+  </cmake>
+
+  <autotools id="cairo"
+             autogenargs="--enable-pdf --enable-quartz --disable-xlib --without-x">
+    <branch repo="freedesktop" module="cairo" revision="1.16"/>
+    <dependencies>
+      <dep package="pixman"/>
+      <dep package="meta-gtk-osx-bootstrap"/>
+      <dep package="freetype-no-harfbuzz"/>
+    </dependencies>
+    <after>
+      <dep package="fontconfig"/>
+    </after>
   </autotools>
 
   <meson id="gobject-introspection">
@@ -84,7 +118,18 @@
     <dependencies>
       <dep package="glib"/>
       <dep package="cairo"/>
+    </dependencies>
+    <after> <!-- Mandatory if MAC_OS_X_MIN_REQURED != macOS Version. -->
       <dep package='python3'/>
+    </after>
+  </meson>
+
+  <meson id="harfbuzz" mesonargs=""-Dcoretext=enabled -Ddocs=disabled">
+    <branch repo="github" module="harfbuzz/harfbuzz" tag="2.7.1"/>
+    <dependencies>
+      <dep package="freetype-no-harfbuzz"/>
+      <dep package="gobject-introspection"/>
+      <dep package="cairo"/>
     </dependencies>
   </meson>
 
@@ -100,10 +145,12 @@
     <dependencies>
       <dep package="glib"/>
       <dep package="cairo"/>
+      <dep package="fribidi"/>
+      <dep package="harfbuzz"/>
     </dependencies>
     <after>
       <dep package="gobject-introspection"/>
-      <dep package="meta-gtk-osx-freetype"/>
+      <dep package="freetype-no-harfbuzz"/>
       <dep package="meta-gtk-osx-bootstrap"/>
     </after>
   </meson>
@@ -170,29 +217,6 @@
     </after>
   </autotools>
 
-  <autotools id="pixman" autogenargs="--disable-gtk --disable-mmx">
-    <branch repo="freedesktop" module="pixman" revision="0.38"/>
-    <after>
-      <dep package="meta-gtk-osx-bootstrap"/>
-    </after>
-  </autotools>
-
-    <!-- Cairo will automatically enable freetype and fontconfig if
-       meta-gtk-osx-freetype is built, so packages which require
-       cairoft or cairofc should have meta-gtk-osx-freetype as a
-       dependency. -->
-  <autotools id="cairo"
-             autogenargs="--enable-pdf --enable-quartz --disable-xlib --without-x">
-    <branch repo="freedesktop" module="cairo" revision="1.16"/>
-    <dependencies>
-      <dep package="pixman"/>
-    </dependencies>
-    <after>
-      <dep package="meta-gtk-osx-bootstrap"/>
-      <dep package="meta-gtk-osx-freetype"/>
-    </after>
-  </autotools>
-
   <autotools id="gtk-mac-integration" autogenargs="--disable-python">
 <!--gtk-mac-integration releases from master"-->
     <branch />
@@ -219,7 +243,7 @@
     <branch module="librsvg" tag="librsvg-2-40"/>
     <dependencies>
       <dep package="libcroco"/>
-      <dep package="meta-gtk-osx-freetype"/>
+      <dep package="freetype-no-harfbuzz"/>
     </dependencies>
     <after>
 <!-- Circular dependency if we depend on meta-gtk-osx or meta-gtk-osx-gtk3 -->
diff --git a/patches/freetype-install-name.patch b/patches/freetype-install-name.patch
new file mode 100644
index 0000000..e68e904
--- /dev/null
+++ b/patches/freetype-install-name.patch
@@ -0,0 +1,58 @@
+From 8e9574627ae0636706185607150197397e02fad6 Mon Sep 17 00:00:00 2001
+From: John Ralls <jralls ceridwen us>
+Date: Fri, 14 Aug 2020 14:16:52 -0700
+Subject: [PATCH] Set libfreetype's install name so that meson can link it
+ correctly.
+
+---
+ CMakeLists.txt | 27 +++++++++++++++------------
+ 1 file changed, 15 insertions(+), 12 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c9befb4..5395a46 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -426,17 +426,21 @@ target_include_directories(
+ )
+ 
+ 
+-if (BUILD_FRAMEWORK)
+-  set_property(SOURCE ${PUBLIC_CONFIG_HEADERS}
+-    PROPERTY MACOSX_PACKAGE_LOCATION Headers/config
+-  )
+-  set_target_properties(freetype PROPERTIES
+-    FRAMEWORK TRUE
+-    MACOSX_FRAMEWORK_INFO_PLIST builds/mac/freetype-Info.plist
+-    PUBLIC_HEADER "${PUBLIC_HEADERS}"
+-    XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
+-  )
+-endif ()
++if (APPLE)
++  if (BUILD_FRAMEWORK)
++    set_property(SOURCE ${PUBLIC_CONFIG_HEADERS}
++      PROPERTY MACOSX_PACKAGE_LOCATION Headers/config
++      )
++    set_target_properties(freetype PROPERTIES
++      FRAMEWORK TRUE
++      MACOSX_FRAMEWORK_INFO_PLIST builds/mac/freetype-Info.plist
++      PUBLIC_HEADER "${PUBLIC_HEADERS}"
++      XCODE_ATTRIBUTE_INSTALL_PATH "@rpath"
++      )
++  else ()
++    set_target_properties (freetype PROPERTIES MACOSX_RPATH FALSE INSTALL_NAME_DIR "$<INSTALL_PREFIX>/lib")
++  endif ()
++endif()
+ 
+ 
+ set(PKG_CONFIG_REQUIRED_PRIVATE "")
+@@ -469,7 +473,6 @@ if (BROTLIDEC_FOUND)
+   list(APPEND PKG_CONFIG_REQUIRED_PRIVATE "libbrotlidec")
+ endif ()
+ 
+-
+ # Installation
+ include(GNUInstallDirs)
+ 
+-- 
+2.2.2
+


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