<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-guide.
</pre>
<p><a href="https://github.com/macports/macports-guide/commit/b3be0d0468303dbea8eba25c76f7e071ef08267b">https://github.com/macports/macports-guide/commit/b3be0d0468303dbea8eba25c76f7e071ef08267b</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new b3be0d0 guide: additions for subport
</span>b3be0d0 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit b3be0d0468303dbea8eba25c76f7e071ef08267b
</span>Author: Jim DeLaHunt <from+project_by_git@jdlh.com>
AuthorDate: Fri Dec 20 18:52:36 2024 -0500
<span style='display:block; white-space:pre;color:#404040;'> guide: additions for subport
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Co-Authored-By: Christopher Nielsen <mascguy@github.com>
</span><span style='display:block; white-space:pre;color:#404040;'> Fixes: https://trac.macports.org/ticket/36957
</span>---
guide/xml/portfile-subports.xml | 49 +++++++++++++++++++++++
guide/xml/portfiledev.xml | 86 +++++++++++++++++++++++++++++++++++++++++
guide/xml/portfileref.xml | 3 ++
3 files changed, 138 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/xml/portfile-subports.xml b/guide/xml/portfile-subports.xml
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..74b3d64
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/xml/portfile-subports.xml
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,49 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+<?xml version="1.0" encoding="UTF-8"?>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V5.0//EN"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+"http://docbook.org/xml/5.0/dtd/docbook.dtd">
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+<section xml:id="reference.subports" xmlns:xlink="http://www.w3.org/1999/xlink">
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <title>Subports</title>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <para>The subport declaration causes MacPorts to define an additional port,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with the <literal>name</literal> given by the declaration. The keywords
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for the subport are those in the global section of the Portfile, and those
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ in the brace-enclosed <literal>body</literal>.</para>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <variablelist>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <varlistentry>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <term>subport <replaceable>name</replaceable> <replaceable>body</replaceable></term>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <listitem>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <para>Example:</para>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <programlisting>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Portfile 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name example
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib aaa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args --bbb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport example-sub1 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append ccc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args --ddd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport example-sub2 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append eee
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append --fff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}</programlisting>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ </listitem>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <listitem>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <para>Because MacPorts treats each subport as a separate port declaration,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ each subport will have its own, independent phases: fetch, configure,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build, destroot, install, activate, etc. However, because the subports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ share the global declaration part, all the subports will by default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ share the same dist_subdir. This means that MacPorts only needs to fetch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ the distfiles once, and the remaining subports can reuse the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ distfiles.</para>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ </listitem>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ </varlistentry>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ </variablelist>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+</section>
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/xml/portfiledev.xml b/guide/xml/portfiledev.xml
</span><span style='display:block; white-space:pre;color:#808080;'>index f2a4bb4..7034489 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/xml/portfiledev.xml
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/xml/portfiledev.xml
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -516,6 +516,92 @@ variant sqlite description {Build sqlite support} {
</span> </section>
</section>
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ <section xml:id="development.subport">
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <title>Subports</title>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <para>MacPorts subports are a way of declaring multiple related ports in a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ single Portfile. It is especially helpful to use subports when the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ related ports share variables or keywords, because they can be declared
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ in the shared part of the Portfile and used by each subport.</para>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <section xml:id="development.subport.declarations">
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <title>Subport Declarations</title>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <para>subport <emphasis>name</emphasis> <emphasis>body</emphasis></para>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <para>The subport declaration causes MacPorts to define an additional port,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ with the <emphasis>name</emphasis> given by the declaration. The keywords
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ for the subport are those in the global section of the Portfile, and those
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ in the brace-enclosed <emphasis>body</emphasis>.</para>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ </section>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <section xml:id="development.subport.examples">
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <title>Subport Examples</title>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <para>For example, if a Portfile contains:</para>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <programlisting>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Portfile 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name example
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib aaa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args --bbb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport example-sub1 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append ccc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args --ddd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport example-sub2 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append eee
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append --fff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}</programlisting>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <para>MacPorts will produce the same results as if there were three
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Portfiles:</para>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <programlisting>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Portfile 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name example
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib aaa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args --bbb</programlisting>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <programlisting>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Portfile 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name example-sub1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib aaa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append ccc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args --ddd</programlisting>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <programlisting>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Portfile 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name example-sub2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib aaa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append eee
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args --bbb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append --fff</programlisting>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ </section>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <section xml:id="development.subport.tips">
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <title>Subport Tips</title>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ <para>Because MacPorts treats each subport as a separate port declaration,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ each subport will have its own, independent phases: fetch, configure,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build, destroot, install, activate, etc. However, because the subports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ share the global declaration part, all the subports will by default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ share the same dist_subdir. This means that MacPorts only needs to fetch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ the distfiles once, and the remaining subports can reuse the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ distfiles.</para>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ </section>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ </section>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> <section xml:id="development.patches">
<title>Patch Files</title>
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/guide/xml/portfileref.xml b/guide/xml/portfileref.xml
</span><span style='display:block; white-space:pre;color:#808080;'>index f22b219..e4eee29 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/guide/xml/portfileref.xml
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/guide/xml/portfileref.xml
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -23,6 +23,9 @@
</span> <xi:include href="portfile-variants.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ <xi:include href="portfile-subports.xml"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xmlns:xi="http://www.w3.org/2001/XInclude" />
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> <xi:include href="portfile-tcl.xml"
xmlns:xi="http://www.w3.org/2001/XInclude" />
</pre><pre style='margin:0'>
</pre>