summaryrefslogtreecommitdiffstats
path: root/packaging/macos/jhb/etc/modulesets/jhb
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/macos/jhb/etc/modulesets/jhb')
-rw-r--r--packaging/macos/jhb/etc/modulesets/jhb/bootstrap.modules158
-rw-r--r--packaging/macos/jhb/etc/modulesets/jhb/jhb.modules60
-rw-r--r--packaging/macos/jhb/etc/modulesets/jhb/moduleset.dtd240
-rw-r--r--packaging/macos/jhb/etc/modulesets/jhb/moduleset.xsl196
-rw-r--r--packaging/macos/jhb/etc/modulesets/jhb/patches/libtool-apple-sort.patch38
-rw-r--r--packaging/macos/jhb/etc/modulesets/jhb/patches/vasnprintf.patch11
6 files changed, 703 insertions, 0 deletions
diff --git a/packaging/macos/jhb/etc/modulesets/jhb/bootstrap.modules b/packaging/macos/jhb/etc/modulesets/jhb/bootstrap.modules
new file mode 100644
index 0000000..6cc2ed6
--- /dev/null
+++ b/packaging/macos/jhb/etc/modulesets/jhb/bootstrap.modules
@@ -0,0 +1,158 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: nxml -*-->
+<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?>
+<moduleset>
+ <repository type="tarball" name="ftp.gnu.org"
+ href="https://ftp.gnu.org/gnu/"/>
+ <repository type="tarball" name="pkgconfig"
+ href="http://pkgconfig.freedesktop.org/releases/"/>
+ <repository type="tarball" name="sourceforge"
+ href="http://downloads.sourceforge.net/sourceforge/"/>
+ <repository type="tarball" name="tukaani.org"
+ href="http://tukaani.org/"/>
+ <repository type="tarball" name="cmake"
+ href="https://cmake.org/files/"/>
+ <repository type="tarball" name="cpan" href="http://search.cpan.org/CPAN/" />
+ <repository type="tarball" name="intltool"
+ href="http://launchpad.net/intltool/trunk/"/>
+ <repository type="tarball" name="github" href="https://github.com"/>
+
+ <autotools id="xz" autogen-sh="configure" bootstrap="true">
+ <branch repo="tukaani.org" module="xz/xz-5.2.5.tar.bz2" version="5.2.5"
+ hash="sha256:5117f930900b341493827d63aa910ff5e011e0b994197c3b71c08a20228a42df"/>
+ </autotools>
+
+ <!-- gnu make 4.xx, needed to unbreak parallel builds for the webkit -->
+ <autotools id="gnumake" autogen-sh="configure" bootstrap="true"
+ autogenargs="--disable-dependency-tracking">
+ <branch repo="ftp.gnu.org"
+ module="make/make-4.3.tar.gz" version="4.3"
+ hash="sha256:e05fdde47c5f7ca45cb697e973894ff4f5d79e13b750ed57d7b66d8defc78e19">
+ </branch>
+ </autotools>
+
+ <autotools id="gettext" autogen-sh="configure"
+ autogenargs="--without-emacs --disable-java --disable-native-java --disable-libasprintf --disable-csharp --with-included-glib --with-included-libcroco"
+ hash="sha256:d20fcbb537e02dcf1383197ba05bd0734ef7bf5db06bdb241eb69b7d16b73192">
+ <branch repo="ftp.gnu.org"
+ module="gettext/gettext-0.21.tar.xz" version="0.21">
+ </branch>
+ </autotools>
+
+ <!-- cmakes ./configure is picky about invalid flags so we manually set it -->
+ <autotools id="cmake" autogen-sh="bootstrap" bootstrap="true"
+ autogen-template="%(srcdir)s/%(autogen-sh)s --prefix=%(prefix)s --docdir=share/doc/cmake-3.20">
+ <branch repo="cmake" module="v3.20/cmake-3.20.0.tar.gz" version="3.20.0">
+ </branch>
+ </autotools>
+ <!-- The version of m4 provided with Xcode is now too old, see
+ https://savannah.gnu.org/support/index.php?110397 -->
+ <autotools id="m4" autogen-sh="configure" bootstrap="true">
+ <branch repo="ftp.gnu.org"
+ module="m4/m4-1.4.18.tar.xz" version="1.4.18"
+ hash="sha256:f2c1e86ca0a404ff281631bdc8377638992744b175afb806e25871a24a934e07">
+ <patch file="vasnprintf.patch" strip="1"/>
+ </branch>
+ </autotools>
+
+ <autotools id="autoconf" autogen-sh="configure" bootstrap="true">
+ <branch repo="ftp.gnu.org"
+ module="autoconf/autoconf-2.71.tar.xz" version="2.71"
+ hash="shas56:f14c83cfebcc9427f2c3cea7258bd90df972d92eb26752da4ddad81c87a0faa4"/>
+ <dependencies>
+ <dep package="m4"/>
+ <dep package="xz"/>
+ </dependencies>
+ </autotools>
+
+ <autotools id="autoconf-archive" autogen-sh="configure" bootstrap="true">
+ <branch repo="ftp.gnu.org"
+ module="autoconf-archive/autoconf-archive-2021.02.19.tar.xz"
+ version="2021-02-19"
+ hash="sha256:e8a6eb9d28ddcba8ffef3fa211653239e9bf239aba6a01a6b7cfc7ceaec69cbd"/>
+ </autotools>
+
+ <autotools id="libtool" autogen-sh="configure" bootstrap="true">
+ <branch repo="ftp.gnu.org"
+ module="libtool/libtool-2.4.6.tar.gz" version="2.4.6"
+ hash="sha256:e3bd4d5d3d025a36c21dd6af7ea818a2afcd4dfc1ea5a17b39d7854bcd0c06e3">
+ <patch file="libtool-apple-sort.patch" strip="1"/>
+ </branch>
+ </autotools>
+
+
+ <autotools id="automake" autogen-sh="configure" bootstrap="true">
+ <branch repo="ftp.gnu.org" version="1.16.3"
+ module="automake/automake-1.16.3.tar.xz"
+ hash="sha256:ff2bf7656c4d1c6fdda3b8bebb21f09153a736bcba169aaf65eab25fa113bf3a"/>
+ <dependencies>
+ <dep package="autoconf"/>
+ </dependencies>
+ </autotools>
+
+ <autotools id="pkg-config" autogen-sh="configure" bootstrap="true"
+ autogenargs="--with-internal-glib">
+ <branch repo="pkgconfig"
+ module="pkg-config-0.29.2.tar.gz" version="0.29.2"
+ hash="sha256:6fc69c01688c9458a57eb9a1664c9aba372ccda420a02bf4429fe610e7e7d591"/>
+ </autotools>
+
+ <!-- MacOS provides 2.3 (presumably the last GPL2 version, gstreamer
+ requires 2.4. -->
+ <autotools id="bison" autogen-sh="configure">
+ <branch repo="ftp.gnu.org" module="bison/bison-3.7.6.tar.xz"
+ version="3.7.6"
+ hash="sha256:67d68ce1e22192050525643fc0a7a22297576682bef6a5c51446903f5aeef3cf">
+ </branch>
+ <dependencies>
+ <dep package='flex'/>
+ </dependencies>
+ </autotools>
+
+ <!-- As of 29 March 2021 Flex hasn't had an update since May 2017. -->
+ <autotools id="flex" autogen-sh="configure" autogenargs="--disable-libfl">
+ <branch module="westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz"
+ repo="github" version="2.6.4"
+ hash="sha256:e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995"/>
+ </autotools>
+
+ <!-- This is generated by tarring up the needed docbook stylesheets
+ for gtk-doc to work. If someone wants to work on a setup that
+ uses the real docbook source from upstream, feel free to do so,
+ it used to be a huge amount of work, but might be easier these
+ days.
+
+ -->
+ <autotools id="gtk-osx-docbook" autogen-sh="configure"
+ supports-non-srcdir-builds="no" >
+ <branch repo="github" module="jralls/gtk-osx-docbook/releases/download/gtk-osx-docbook-1.3/gtk-osx-docbook-1.3.tar.xz"
+ version="1.3"
+ hash="sha256:fcf497688a1d531b192301bd09c55adefda5a662729a58eb8a895166e38ef219"/>
+ </autotools>
+
+ <autotools id="intltool" autogen-sh="configure">
+ <branch repo="intltool" module="0.51.0/+download/intltool-0.51.0.tar.gz"
+ version="0.51.0"
+ hash="sha256:67c74d94196b153b774ab9f89b2fa6c6ba79352407037c8c14d5aeb334e959cd"/>
+ <!--dependencies>
+ <dep package="perl-xml-parser"/>
+ </dependencies-->
+ </autotools>
+
+ <metamodule id="meta-bootstrap">
+ <dependencies>
+ <dep package="xz"/>
+ <dep package="gettext" /> <!-- Needed for 64-bit -->
+ <dep package="cmake"/>
+ <dep package="autoconf-archive" />
+ <dep package="libtool" />
+ <dep package="automake"/>
+ <dep package="pkg-config" />
+ <dep package="bison"/>
+ <dep package="flex"/>
+ <dep package="gtk-osx-docbook"/>
+ <dep package="intltool"/>
+ <dep package="gnumake"/>
+ </dependencies>
+ </metamodule>
+
+</moduleset>
diff --git a/packaging/macos/jhb/etc/modulesets/jhb/jhb.modules b/packaging/macos/jhb/etc/modulesets/jhb/jhb.modules
new file mode 100644
index 0000000..f2fc9e3
--- /dev/null
+++ b/packaging/macos/jhb/etc/modulesets/jhb/jhb.modules
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<!DOCTYPE moduleset SYSTEM "moduleset.dtd">
+<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?>
+<moduleset>
+
+ <repository name="gnu" type="tarball" href="http://ftp.halifax.rwth-aachen.de/gnu/"/>
+
+ <!-- GNU core utilities https://www.gnu.org/software/coreutils/ -->
+ <autotools
+ id="coreutils"
+ autogen-sh="configure"
+ autogenargs="--prefix=$JHBUILD_PREFIX/usr --program-prefix=g">
+ <branch
+ module="coreutils/coreutils-9.1.tar.xz"
+ version="9.1"
+ hash="sha256:61a1f410d78ba7e7f37a5a4f50e6d1320aca33375484a3255eddf17a38580423"
+ repo="gnu">
+ </branch>
+ </autotools>
+
+ <!-- GNU Find Utilities https://www.gnu.org/software/findutils/ -->
+ <autotools
+ id="findutils"
+ autogen-sh="configure"
+ autogenargs="--prefix=$JHBUILD_PREFIX/usr --program-prefix=g">
+ <branch
+ module="findutils/findutils-4.9.0.tar.xz"
+ version="4.9.0"
+ hash="sha256:a2bfb8c09d436770edc59f50fa483e785b161a3b7b9d547573cb08065fd462fe"
+ repo="gnu">
+ </branch>
+ </autotools>
+
+ <!-- GNU sed https://www.gnu.org/software/sed/ -->
+ <autotools
+ id="sed"
+ autogen-sh="configure"
+ autogenargs="--prefix=$JHBUILD_PREFIX/usr --program-prefix=g">
+ <branch
+ module="sed/sed-4.8.tar.xz"
+ version="4.8"
+ hash="sha256:f79b0cfea71b37a8eeec8490db6c5f7ae7719c35587f21edb0617f370eeff633"
+ repo="gnu">
+ </branch>
+ </autotools>
+
+ <!-- GNU Tar https://www.gnu.org/software/tar/ -->
+ <autotools
+ id="tar"
+ autogen-sh="configure"
+ autogenargs="--prefix=$JHBUILD_PREFIX/usr --program-prefix=g">
+ <branch
+ module="tar/tar-1.34.tar.xz"
+ version="1.34"
+ hash="sha256:63bebd26879c5e1eea4352f0d03c991f966aeb3ddeb3c7445c902568d5411d28"
+ repo="gnu">
+ </branch>
+ </autotools>
+
+</moduleset>
diff --git a/packaging/macos/jhb/etc/modulesets/jhb/moduleset.dtd b/packaging/macos/jhb/etc/modulesets/jhb/moduleset.dtd
new file mode 100644
index 0000000..d9c392a
--- /dev/null
+++ b/packaging/macos/jhb/etc/modulesets/jhb/moduleset.dtd
@@ -0,0 +1,240 @@
+<!ELEMENT moduleset (if|redirect|repository|include|autotools|metamodule|tarball|distutils|perl|linux|testmodule|cvsroot|cvsmodule|waf|cmake|meson|systemmodule)+>
+<!ATTLIST moduleset
+ name CDATA #IMPLIED>
+
+<!-- DTD is incapable of allowing different children of an element
+ of a given name depending on the context in which it appears so
+ this is more permissive than it ought to be. The RNG version
+ of the schema gets this correct.
+
+ DTD also appears to be incapable of describing the fact that
+ exactly one of condition-set='' and condition-unset='' is required.
+-->
+<!ELEMENT if (if|autotools|dep|autogenargs|cmakeargs|mesonargs|makeargs|ninjaargs|makeinstallargs)+>
+<!ATTLIST if
+ condition-set CDATA #IMPLIED
+ condition-unset CDATA #IMPLIED>
+
+<!ELEMENT repository (mirror*)>
+<!ATTLIST repository
+ name CDATA #REQUIRED
+ type (arch|bzr|cvs|darcs|fossil|git|hg|mtn|svn|system|tarball) #REQUIRED
+ default (yes|no) "no"
+ password CDATA #IMPLIED
+ cvsroot CDATA #IMPLIED
+ archive CDATA #IMPLIED
+ href CDATA #IMPLIED
+ server CDATA #IMPLIED
+ database CDATA #IMPLIED
+ defbranch CDATA #IMPLIED
+ developer-href-example CDATA #IMPLIED
+ trunk-template CDATA #IMPLIED
+ branches-template CDATA #IMPLIED
+ tags-template CDATA #IMPLIED>
+<!-- note the following attributes are specific to some repository types:
+ - CVS: password & cvsroot
+ - Arch: archive & href
+ - Monotone: server, database, defbranch
+ - Subversion: *-template -->
+
+<!ELEMENT mirror EMPTY>
+<!ATTLIST mirror
+ type (arch|bzr|cvs|darcs|fossil|git|hg|svn|tarball) #REQUIRED
+ trunk-template CDATA #IMPLIED
+ branches-template CDATA #IMPLIED
+ href CDATA #IMPLIED>
+
+<!ELEMENT include EMPTY>
+<!ATTLIST include href CDATA #REQUIRED>
+
+<!ELEMENT redirect EMPTY>
+<!ATTLIST redirect href CDATA #REQUIRED>
+
+<!ELEMENT autotools (if*,autogenargs*,makeargs*,makeinstallargs*,pkg-config?,branch,dependencies?,suggests?,after?)>
+<!-- Note: Here the ID type is not used as some existing IDs in modsets are not
+ valid XML ID types - instead CDATA is used -->
+<!ATTLIST autotools
+ id CDATA #REQUIRED
+ autogenargs CDATA #IMPLIED
+ makeargs CDATA #IMPLIED
+ makeinstallargs CDATA #IMPLIED
+ autogen-sh CDATA #IMPLIED
+ makefile CDATA #IMPLIED
+ bootstrap (true|false) "false"
+ skip-autogen (true|false|never) "false"
+ skip-install (yes|no) "no"
+ uninstall-before-install (true|false) "false"
+ supports-non-srcdir-builds (yes|no) "yes"
+ force-non-srcdir-builds (yes|no) "no"
+ supports-parallel-builds (yes|no) "yes"
+ supports-unknown-configure-options (yes|no) "yes"
+ autogen-template CDATA #IMPLIED
+ check-target (true|false) "true">
+
+<!ELEMENT autogenargs EMPTY>
+<!ATTLIST autogenargs value CDATA #REQUIRED>
+<!ELEMENT makeargs EMPTY>
+<!ATTLIST makeargs value CDATA #REQUIRED>
+<!ELEMENT makeinstallargs EMPTY>
+<!ATTLIST makeinstallargs value CDATA #REQUIRED>
+
+<!ELEMENT waf (pkg-config?,branch,dependencies?,suggests?,after?)>
+<!-- Note: Here the ID type is not used as some existing IDs in modsets are not
+ valid XML ID types - instead CDATA is used -->
+<!ATTLIST waf
+ id CDATA #REQUIRED
+ waf-command CDATA #IMPLIED>
+
+<!ELEMENT metamodule (dependencies,suggests?,after?)>
+<!ATTLIST metamodule
+ id CDATA #REQUIRED>
+
+<!-- tarball module type is deprecated, a tarball repository inside the
+ appropriate modtype should be used instead -->
+<!ELEMENT tarball (pkg-config?,source,branch?,dependencies?,suggests?,after?,patches?)>
+<!ATTLIST tarball
+ id CDATA #REQUIRED
+ version CDATA #REQUIRED
+ checkoutdir CDATA #IMPLIED
+ autogenargs CDATA #IMPLIED
+ makeargs CDATA #IMPLIED
+ autogen-sh CDATA #IMPLIED
+ supports-non-srcdir-builds (yes|no) "yes">
+
+<!ELEMENT distutils (pkg-config?,branch?,dependencies?,after?)>
+<!ATTLIST distutils
+ id ID #REQUIRED
+ python3 CDATA #FIXED "1"
+ supports-non-srcdir-builds (yes|no) "yes">
+
+<!ELEMENT ninjaargs EMPTY>
+<!ATTLIST ninjaargs value CDATA #REQUIRED>
+
+<!ELEMENT cmake (if*,cmakeargs*,makeargs*,ninjaargs*,pkg-config?,branch?,dependencies?,suggests?,after?)>
+<!ATTLIST cmake
+ id CDATA #REQUIRED
+ cmakeargs CDATA #IMPLIED
+ makeargs CDATA #IMPLIED
+ ninjaargs CDATA #IMPLIED
+ use-ninja (yes|no) "yes"
+ supports-non-srcdir-builds (yes|no) "yes"
+ force-non-srcdir-builds (yes|no) "no">
+
+<!ELEMENT cmakeargs EMPTY>
+<!ATTLIST cmakeargs value CDATA #REQUIRED>
+
+<!ELEMENT meson (if*,mesonargs*,ninjaargs*,pkg-config?,branch?,dependencies?,suggests?,after?)>
+<!ATTLIST meson
+ id CDATA #REQUIRED
+ mesonargs CDATA #IMPLIED
+ ninjaargs CDATA #IMPLIED>
+
+<!ELEMENT mesonargs EMPTY>
+<!ATTLIST mesonargs value CDATA #REQUIRED>
+
+<!ELEMENT perl (pkg-config?,branch?,dependencies?,after?)>
+<!ATTLIST perl
+ id CDATA #REQUIRED
+ makeargs CDATA #IMPLIED>
+
+<!ELEMENT linux (pkg-config?,branch?,dependencies?,after?,kconfig+)>
+<!ATTLIST linux
+ id CDATA #REQUIRED>
+
+<!ELEMENT systemmodule (pkg-config?,branch,dependencies?,suggests?,after?,systemdependencies?)>
+<!ATTLIST systemmodule
+ id CDATA #REQUIRED
+ supports-parallel-builds (yes|no) "yes">
+
+<!ELEMENT testmodule (pkg-config?,branch?,dependencies?,after?,testedmodules?)>
+<!ATTLIST testmodule
+ id CDATA #REQUIRED
+ type CDATA #REQUIRED>
+
+<!ELEMENT cvsroot EMPTY>
+<!ATTLIST cvsroot
+ name CDATA #REQUIRED
+ root CDATA #REQUIRED
+ password CDATA "">
+
+
+<!ELEMENT cvsmodule (suggests?,dependencies?,after?)>
+<!ATTLIST cvsmodule
+ id CDATA #REQUIRED
+ cvsroot CDATA #REQUIRED
+ supports-non-srcdir-builds (yes|no) "yes">
+
+<!-- Tarball's children -->
+<!ELEMENT source EMPTY>
+<!ATTLIST source
+ href CDATA #REQUIRED
+ size CDATA #IMPLIED
+ md5sum CDATA #IMPLIED
+ hash CDATA #IMPLIED>
+
+<!ELEMENT patches (patch*)>
+<!ELEMENT patch EMPTY>
+<!ATTLIST patch
+ file CDATA #REQUIRED
+ strip CDATA "0">
+
+
+<!-- Linux's children -->
+<!ELEMENT kconfig EMPTY>
+<!ATTLIST kconfig
+ repo CDATA #IMPLIED
+ version CDATA #REQUIRED
+ module CDATA #IMPLIED
+ config CDATA #IMPLIED>
+
+
+<!-- Testmodule's children -->
+<!ELEMENT testedmodules (tested)>
+<!ELEMENT tested EMPTY>
+<!ATTLIST tested
+ package CDATA #REQUIRED>
+
+<!-- Other children -->
+<!ELEMENT pkg-config (#PCDATA)>
+<!ELEMENT dependencies (dep|if)*>
+<!ELEMENT suggests (dep|if)*>
+<!ELEMENT after (dep|if)*>
+<!ELEMENT systemdependencies (dep*)>
+<!ELEMENT dep (altdep*)>
+<!-- This is actually 2 different types of element: <dep package=""/> as used in <dependencies>
+ and <dep type="" name=""/> as used in <systemdependencies>. The DTD can't specify both
+ separately since they have the same element name. -->
+<!ATTLIST dep
+ package CDATA #IMPLIED
+ type CDATA #IMPLIED
+ name CDATA #IMPLIED>
+<!-- <altdep> is only used in <systemdependencies> to specify alternative dependencies. -->
+<!ELEMENT altdep EMPTY>
+<!ATTLIST altdep
+ type CDATA #IMPLIED
+ name CDATA #IMPLIED>
+
+<!ELEMENT branch (patch*,quilt*)>
+<!ATTLIST branch
+ repo CDATA #IMPLIED
+ module CDATA #IMPLIED
+ checkoutdir CDATA #IMPLIED
+ override-checkoutdir (yes|no) "yes"
+ update-new-dirs (yes|no) "yes"
+ source-subdir CDATA #IMPLIED
+ revision CDATA #IMPLIED
+ tag CDATA #IMPLIED
+ user CDATA #IMPLIED
+ revspec CDATA #IMPLIED
+ branch CDATA #IMPLIED
+ version CDATA #IMPLIED
+ size CDATA #IMPLIED
+ md5sum CDATA #IMPLIED
+ hash CDATA #IMPLIED
+ rename-tarball CDATA #IMPLIED>
+ <!-- override-checkoutdir and update-new-dirs are CVS only
+ source-subdir is tarballs only -->
+
+<!ELEMENT quilt (branch)>
+<!ATTLIST quilt
+ id CDATA #REQUIRED>
diff --git a/packaging/macos/jhb/etc/modulesets/jhb/moduleset.xsl b/packaging/macos/jhb/etc/modulesets/jhb/moduleset.xsl
new file mode 100644
index 0000000..c2e7f7a
--- /dev/null
+++ b/packaging/macos/jhb/etc/modulesets/jhb/moduleset.xsl
@@ -0,0 +1,196 @@
+<?xml version='1.0'?> <!--*- mode: nxml -*-->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+ <xsl:output method="html" encoding="ISO-8859-1" indent="yes" />
+ <xsl:key name="module-id" match="moduleset/*" use="@id" />
+
+ <xsl:template match="/">
+ <html>
+ <head>
+ <title>Module Set</title>
+ <style type="text/css">
+ <xsl:text>
+ dl {
+ -moz-column-width: 40em;
+ -moz-column-gap: 2em;
+ }
+ dt {
+ font-weight: bold;
+ background: #8f8;
+ display: inline;
+ padding: 0 1ex;
+ }
+ dt.metamodule {
+ background: #F08080;
+ }
+ dt.tarball {
+ background: #EEDD82;
+ }
+ dd {
+ font-size: smaller;
+ }
+ dd {
+ margin-bottom: 0.5em;
+ }
+ th {
+ text-align: left;
+ vertical-align: top;
+ }
+ ul.patches {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ }
+ </xsl:text>
+ </style>
+ </head>
+ <body>
+ <xsl:apply-templates />
+ </body>
+ </html>
+ </xsl:template>
+
+ <xsl:template match="moduleset">
+ <h1>JHBuild Module Set</h1>
+ <dl>
+ <xsl:apply-templates />
+ </dl>
+ </xsl:template>
+
+ <xsl:template match="dependencies|suggests|after">
+ <xsl:variable name="deps" select="dep/@package" />
+ <xsl:for-each select="$deps">
+ <a href="#{generate-id(key('module-id', .))}">
+ <xsl:value-of select="." />
+ </a>
+ <xsl:if test="not($deps[last()] = .)">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template match="moduleset/*">
+ <xsl:param name="reponame">
+ <xsl:choose>
+ <xsl:when test="branch/@repo"><xsl:value-of select="branch/@repo"/></xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="//repository[@default = 'yes']/@name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:param>
+
+ <dt id="{generate-id(.)}">
+ <xsl:attribute name="class">module
+ <xsl:if test="name(.) = 'tarball' or
+ //repository[@name = $reponame]/@type = 'tarball'">tarball</xsl:if>
+ </xsl:attribute>
+ <xsl:value-of select="@id" />
+ </dt>
+
+ <dd>
+ <table>
+ <tr>
+ <th>Module:</th>
+ <td>
+ <xsl:choose>
+ <xsl:when test="@module">
+ <xsl:value-of select="@module" />
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@id" />
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="branch/@revision">
+ <xsl:text> revision: </xsl:text>
+ <xsl:value-of select="branch/@revision" />
+ </xsl:if>
+ </td>
+ </tr>
+ <xsl:if test="name(.) = 'tarball' or //repository[@name = $reponame]/@type = 'tarball'">
+ <tr>
+ <th>URL:</th>
+ <td>
+ <xsl:variable name="url">
+ <xsl:choose>
+ <xsl:when test="name(.) = 'tarball'">
+ <xsl:value-of select="source/@href"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="//repository[@name=$reponame]/@href"
+ /><xsl:value-of select="branch/@module"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <a href="{$url}"><xsl:value-of select="$url"/></a>
+ <xsl:if test="branch/@size"> (<xsl:value-of select="branch/@size"/> bytes)</xsl:if>
+ <xsl:if test="source/@size"> (<xsl:value-of select="source/@size"/> bytes)</xsl:if>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="branch/patch">
+ <tr>
+ <th>Patches:</th>
+ <td>
+ <ul class="patches">
+ <xsl:apply-templates select="branch/patch"/>
+ </ul>
+ </td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="@checkoutdir">
+ <tr>
+ <th>Checkout directory:</th>
+ <td><xsl:value-of select="@checkoutdir" /></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="@autogenargs">
+ <tr>
+ <th>Autogen args:</th>
+ <td><xsl:value-of select="@autogenargs" /></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="dependencies/dep">
+ <tr>
+ <th>Dependencies:</th>
+ <td><xsl:apply-templates select="dependencies" /></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="suggests">
+ <tr>
+ <th>Suggests:</th>
+ <td><xsl:apply-templates select="suggests" /></td>
+ </tr>
+ </xsl:if>
+ <xsl:if test="after">
+ <tr>
+ <th>After:</th>
+ <td><xsl:apply-templates select="after" /></td>
+ </tr>
+ </xsl:if>
+ </table>
+ </dd>
+ </xsl:template>
+
+ <xsl:template match="moduleset/repository|moduleset/include">
+ </xsl:template>
+
+ <xsl:template match="moduleset/metamodule">
+ <dt id="{generate-id(.)}" class="metamodule"><xsl:value-of select="@id" /></dt>
+ <dd>
+ <table>
+ <xsl:if test="dependencies/dep">
+ <tr>
+ <th>Dependencies:</th>
+ <td><xsl:apply-templates select="dependencies" /></td>
+ </tr>
+ </xsl:if>
+ </table>
+ </dd>
+ </xsl:template>
+
+ <xsl:template match="patch">
+ <li><xsl:value-of select="@file" /></li>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/packaging/macos/jhb/etc/modulesets/jhb/patches/libtool-apple-sort.patch b/packaging/macos/jhb/etc/modulesets/jhb/patches/libtool-apple-sort.patch
new file mode 100644
index 0000000..8c880ef
--- /dev/null
+++ b/packaging/macos/jhb/etc/modulesets/jhb/patches/libtool-apple-sort.patch
@@ -0,0 +1,38 @@
+--- a/Makefile.am 2015-01-20 07:34:33.000000000 -0800
++++ b/Makefile.am 2021-11-12 10:18:23.000000000 -0800
+@@ -416,8 +416,8 @@
+ # files created in the build tree, so instead we regenerate the
+ # manual pages if the sources for the build-tree files we want to
+ # run have changed.
+-$(libtool_1): $(ltmain_sh)
+- $(AM_V_GEN)$(update_mans) --help-option=--help-all libtool
++#$(libtool_1): $(ltmain_sh)
++# $(AM_V_GEN)$(update_mans) --help-option=--help-all libtool
+ $(libtoolize_1): $(libtoolize_in)
+ $(AM_V_GEN)$(update_mans) libtoolize
+
+--- s/Makefile.in 2015-02-15 08:14:14.000000000 -0800
++++ b/Makefile.in 2021-11-12 10:26:26.000000000 -0800
+@@ -2324,8 +2324,8 @@
+ # files created in the build tree, so instead we regenerate the
+ # manual pages if the sources for the build-tree files we want to
+ # run have changed.
+-$(libtool_1): $(ltmain_sh)
+- $(AM_V_GEN)$(update_mans) --help-option=--help-all libtool
++#$(libtool_1): $(ltmain_sh)
++# $(AM_V_GEN)$(update_mans) --help-option=--help-all libtool
+ $(libtoolize_1): $(libtoolize_in)
+ $(AM_V_GEN)$(update_mans) libtoolize
+
+--- a/build-aux/ltmain.in 2015-02-06 04:57:56.000000000 -0800
++++ b/build-aux/ltmain.in 2021-11-08 14:58:33.000000000 -0800
+@@ -3188,7 +3188,7 @@
+ if test yes = "$lock_old_archive_extraction"; then
+ $opt_dry_run || rm -f "$lockfile"
+ fi
+- if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
++ if ($AR t "$f_ex_an_ar_oldlib" | sort -u | sort -c >/dev/null 2>&1); then
+ :
+ else
+ func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
+
diff --git a/packaging/macos/jhb/etc/modulesets/jhb/patches/vasnprintf.patch b/packaging/macos/jhb/etc/modulesets/jhb/patches/vasnprintf.patch
new file mode 100644
index 0000000..995e1e3
--- /dev/null
+++ b/packaging/macos/jhb/etc/modulesets/jhb/patches/vasnprintf.patch
@@ -0,0 +1,11 @@
+--- a/lib/vasnprintf.c 2017-09-29 11:10:29.000000000 +0200
++++ b/lib/vasnprintf.c 2017-09-29 11:15:06.000000000 +0200
+@@ -4858,7 +4858,7 @@
+ #endif
+ *fbp = dp->conversion;
+ #if USE_SNPRINTF
+-# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
++# if !(((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) && !defined __UCLIBC__) || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) || defined __APPLE__)
+ fbp[1] = '%';
+ fbp[2] = 'n';
+ fbp[3] = '\0';