[sdk/kdesrc-build] doc: doc: features - separate docbook
Andrew Shark
null at kde.org
Fri Jan 5 19:07:02 GMT 2024
Git commit 17357b81a15786f0066759f9433819912678f87b by Andrew Shark.
Committed on 05/01/2024 at 19:59.
Pushed by ashark into branch 'master'.
doc: features - separate docbook
A +262 -0 doc/features.docbook
M +2 -262 doc/index.docbook
https://invent.kde.org/sdk/kdesrc-build/-/commit/17357b81a15786f0066759f9433819912678f87b
diff --git a/doc/features.docbook b/doc/features.docbook
new file mode 100644
index 00000000..2a911dc3
--- /dev/null
+++ b/doc/features.docbook
@@ -0,0 +1,262 @@
+<chapter id="features">
+<title>Script Features</title>
+
+<sect1 id="features-overview">
+<title>Feature Overview</title>
+
+<para>
+&kdesrc-build; features include:
+</para>
+
+<itemizedlist>
+
+<listitem><para>
+You can <quote>pretend</quote> to do the operations. If you pass
+<option>--pretend</option> or <option>-p</option> on the
+command line, the script will give a verbose description of the commands
+it is about to execute, without actually executing it. However if you've never
+run &kdesrc-build;, you would want to run the <command>kdesrc-build
+<option><link
+linkend="cmdline-metadata-only">--metadata-only</link></option></command>
+command first in order for <option>--pretend</option> to work.
+
+<tip><para>For an even more verbose description of what &kdesrc-build; is
+doing, try using the <option>--debug</option> option.
+</para></tip>
+
+</para></listitem>
+
+<listitem><para>
+&kdesrc-build; allows you to checkout modules quickly. If the module you are checking out
+has already been checked out previously, then &kdesrc-build; will download only commits
+that are not yet on your computer.
+</para>
+
+<tip><para>There is generally no need for any special preparation to perform
+the initial checkout of a Git module, as the entire Git repository must be
+downloaded anyways, so it is easy for the server to determine what to
+send.</para></tip>
+
+<para>This is faster for you, and helps to ease the load on the kde.org
+anonymous &git; servers.</para>
+</listitem>
+
+<listitem><para>
+Another speedup is provided by starting the build process for a module as soon
+as the source code for that module has been downloaded. (Available since
+version 1.6)
+</para></listitem>
+
+<listitem><para>
+Excellent support for building the &Qt; library (in case the &kde; software you
+are trying to build depends on a recent &Qt; not available in your
+distribution).
+</para></listitem>
+
+<listitem><para>
+&kdesrc-build; does not require a <acronym>GUI</acronym> present to operate. So,
+you can build &kde; software without needing a graphical environment.
+</para></listitem>
+
+<listitem><para>
+Supports setting default options for all modules (such as the compilation
+settings or the configuration options). Such options can normally be changed
+for specific modules as well.</para>
+
+<para>Also, &kdesrc-build; will <link linkend="kdesrc-build-std-flags">add
+standard flags</link> as appropriate to save you the trouble and possible
+errors from typing them yourself. Nota Bene: this does not apply when a (custom)
+toolchain is configured through e.g.:
+<link linkend="conf-cmake-toolchain">cmake-toolchain</link>
+</para></listitem>
+
+<listitem><para>
+&kdesrc-build; can checkout a specific <link linkend="using-branches">branch
+or tag</link> of a module. You can also ensure that a specific <link
+linkend="conf-revision">revision</link> is checked out of a module.
+</para></listitem>
+
+<listitem><para>
+&kdesrc-build; can automatically switch a source directory to checkout from
+a different repository, branch, or tag. This happens automatically when you
+change an option that changes what the repository &url; should be, but you must
+use the <link linkend="cmdline-src-only">--src-only</link> option to let
+&kdesrc-build; know that it is acceptable to perform the switch.
+</para></listitem>
+
+<listitem><para>
+&kdesrc-build; can <link linkend="partial-builds">checkout only portions of a
+module</link>, for those situations where you only need one program from a
+large module.
+</para></listitem>
+
+<listitem><para>
+For developers: &kdesrc-build; will <link linkend="ssh-agent-reminder">remind
+you</link> if you use git+ssh:// but <application>ssh-agent</application> is
+not running, as this will lead to repeated password requests from
+&ssh;.
+</para></listitem>
+
+<listitem><para>
+Can <link linkend="deleting-build-dir">delete the build directory</link> of a
+module after its installation to save space at the expense of future compilation
+time.
+</para></listitem>
+
+<listitem><para>
+The locations for the directories used by &kdesrc-build; are configurable (even
+per module).
+</para></listitem>
+
+<listitem><para>
+Can use &sudo;, or a different user-specified command
+to <link linkend="root-installation">install modules</link> so that
+&kdesrc-build; does not need to be run as the super user.
+</para></listitem>
+
+<listitem><para>
+&kdesrc-build; runs <link linkend="build-priority">with reduced priority</link>
+by default to allow you to still use your computer while &kdesrc-build; is
+working.
+</para></listitem>
+
+<listitem><para>
+Has support for using &kde;'s <link linkend="using-branches">tags and
+branches</link>.
+</para></listitem>
+
+<listitem><para>
+There is support for <link linkend="resuming">resuming a build</link> from a
+given module. You can even <link linkend="ignoring-modules">ignore some
+modules</link> temporarily for a given build.
+</para></listitem>
+
+<listitem><para>
+&kdesrc-build; will show the <link linkend="build-progress">progress of your
+build</link> when using &cmake;, and will always time the build
+process so you know after the fact how long it took.
+</para></listitem>
+
+<listitem><para>
+Comes built-in with a sane set of default options appropriate for building
+a base &kde; single-user installation from the anonymous source repositories.
+</para></listitem>
+
+<listitem><para>
+Tilde-expansion for your configuration options. For example, you can
+specify:
+<programlisting>qtdir ~/kdesrc/build/qt</programlisting>
+</para></listitem>
+
+<listitem><para>
+Automatically sets up a build system, with the source directory not the
+same as the build directory, in order to keep the source directory
+pristine.
+</para></listitem>
+
+<listitem><para>
+You can specify global options to apply to every module to check out, and
+you can specify options to apply to individual modules as well.
+</para></listitem>
+
+<listitem><para>
+Forced full rebuilds, by running
+&kdesrc-build; with the <option>--refresh-build</option> option.
+</para></listitem>
+
+<listitem><para>
+You can specify various environment values to be used during the build,
+including <envar>QTDIR</envar>, <envar>DO_NOT_COMPILE</envar>,
+and <envar>CXXFLAGS</envar>.
+</para></listitem>
+
+<listitem><para>
+Command logging. Logs are dated and numbered so that you always have a
+log of a script run. Also, a special symlink called latest is created to
+always point to the most recent log entry in the log directory.
+</para></listitem>
+
+</itemizedlist>
+
+</sect1>
+
+<sect1 id="kdesrc-build-logging">
+<title>&kdesrc-build;'s build logging</title>
+
+<sect2 id="logging-overview">
+<title>Logging overview</title>
+
+<para>Logging is a &kdesrc-build; feature whereby the output from every command
+that &kdesrc-build; runs is saved to a file for examination later, if
+necessary. This is done because it is often necessary to have the output of
+these programs when there is a build failure, because there are so many
+reasons why a build can fail in the first place.</para>
+
+<sect3 id="log-directory-layout">
+<title>Logging directory layout</title>
+
+<para>The logs are always stored under the log directory. The destination of
+the log directory is controlled by the <link linkend="conf-log-dir">log-dir</link>
+option, which defaults to <filename class="directory"><symbol>${source-dir}</symbol>/log</filename> (where
+<symbol>${source-dir}</symbol> is the value of the <link linkend="conf-source-dir">source-dir</link>
+option. The in rest of this section, this value will be referred to as
+<symbol>${log-dir}</symbol>).</para>
+
+<para>Under <symbol>${log-dir}</symbol>, is a set of directories, one for every
+time that &kdesrc-build; was run. Each directory is named with the date, and
+the run number. For instance, the second time that &kdesrc-build; is run on
+May 26, 2004, it would create a directory called <filename>2004-05-26-02</filename>,
+where the 2004-05-26 is for the date, and the -02 is the run number.</para>
+
+<para>For your convenience, &kdesrc-build; will also create a link to the
+logs for your latest run, called <filename class="directory">latest</filename>. So the logs for
+the most recent &kdesrc-build; run should always be under <filename class="directory"><symbol>${log-dir}</symbol>/latest</filename>.
+</para>
+
+<para>Now, each directory for a &kdesrc-build; run will itself contain a set of
+directories, one for every &kde; module that &kdesrc-build; tries to build. Also,
+a file called <filename>build-status</filename> will be contained in the directory,
+which will allow you to determine which modules built and which failed.</para>
+
+<note><para>
+If a module itself has a submodule (such as extragear/multimedia,
+playground/utils, or KDE/kdelibs), then there would actually be a matching
+layout in the log directory. For example, the logs for KDE/kdelibs after the
+last &kdesrc-build; run would be found in <filename class="directory"><symbol>${log-dir}</symbol>/latest/KDE/kdelibs</filename>,
+and not under <filename class="directory"><symbol>${log-dir}</symbol>/latest/kdelibs</filename>.
+</para></note>
+
+<para>In each module log directory, you will find a set of files for each
+operation that &kdesrc-build; performs. If &kdesrc-build; updates a module,
+you may see filenames such as <filename>git-checkout-update.log</filename> (for a
+module checkout or when updating a module
+that has already been checked out). If the <command>configure</command>
+command was run, then you would expect to see a <filename>configure.log</filename>
+in that directory.</para>
+
+<para>If an error occurred, you should be able to see an explanation of why in
+one of the files. To help you determine which file contains the error,
+&kdesrc-build; will create a link from the file containing the error (such as
+<filename>build-1.log</filename> to a file called <filename>error.log</filename>).</para>
+
+<para>The upshot to all of this is that to see why a module failed to build
+after your last &kdesrc-build;, the file you should look at first is
+<filename><symbol>${log-dir}</symbol>/latest/<replaceable>module-name</replaceable>/error.log</filename>.
+</para>
+
+<tip><para>If the file <filename>error.log</filename> is empty (especially after
+an installation), then perhaps there was no error. Some of the tools used by
+the &kde; build system will sometimes mistakenly report an error when there was
+none.</para>
+
+<para>Also, some commands will evade &kdesrc-build;'s output redirection and
+bypass the log file in certain circumstances (normally when performing the
+first &git; checkout), and the error output in that case is not in the log file
+but is instead at the &konsole; or terminal where you ran &kdesrc-build;.</para>
+</tip>
+
+</sect3>
+</sect2>
+</sect1>
+
+</chapter>
diff --git a/doc/index.docbook b/doc/index.docbook
index e4f365d5..02ceb3ba 100644
--- a/doc/index.docbook
+++ b/doc/index.docbook
@@ -79,6 +79,7 @@
<!ENTITY credits-and-license SYSTEM "credits-and-license.docbook">
<!ENTITY developer-features SYSTEM "developer-features.docbook">
<!ENTITY environment SYSTEM "environment.docbook">
+ <!ENTITY features SYSTEM "features.docbook">
]>
<book id="kdesrc-build" lang="&language;">
@@ -820,268 +821,7 @@ tool.</para>
</chapter>
-<chapter id="features">
-<title>Script Features</title>
-
-<sect1 id="features-overview">
-<title>Feature Overview</title>
-
-<para>
-&kdesrc-build; features include:
-</para>
-
-<itemizedlist>
-
-<listitem><para>
-You can <quote>pretend</quote> to do the operations. If you pass
-<option>--pretend</option> or <option>-p</option> on the
-command line, the script will give a verbose description of the commands
-it is about to execute, without actually executing it. However if you've never
-run &kdesrc-build;, you would want to run the <command>kdesrc-build
-<option><link
-linkend="cmdline-metadata-only">--metadata-only</link></option></command>
-command first in order for <option>--pretend</option> to work.
-
-<tip><para>For an even more verbose description of what &kdesrc-build; is
-doing, try using the <option>--debug</option> option.
-</para></tip>
-
-</para></listitem>
-
-<listitem><para>
-&kdesrc-build; allows you to checkout modules quickly. If the module you are checking out
-has already been checked out previously, then &kdesrc-build; will download only commits
-that are not yet on your computer.
-</para>
-
-<tip><para>There is generally no need for any special preparation to perform
-the initial checkout of a Git module, as the entire Git repository must be
-downloaded anyways, so it is easy for the server to determine what to
-send.</para></tip>
-
-<para>This is faster for you, and helps to ease the load on the kde.org
-anonymous &git; servers.</para>
-</listitem>
-
-<listitem><para>
-Another speedup is provided by starting the build process for a module as soon
-as the source code for that module has been downloaded. (Available since
-version 1.6)
-</para></listitem>
-
-<listitem><para>
-Excellent support for building the &Qt; library (in case the &kde; software you
-are trying to build depends on a recent &Qt; not available in your
-distribution).
-</para></listitem>
-
-<listitem><para>
-&kdesrc-build; does not require a <acronym>GUI</acronym> present to operate. So,
-you can build &kde; software without needing a graphical environment.
-</para></listitem>
-
-<listitem><para>
-Supports setting default options for all modules (such as the compilation
-settings or the configuration options). Such options can normally be changed
-for specific modules as well.</para>
-
-<para>Also, &kdesrc-build; will <link linkend="kdesrc-build-std-flags">add
-standard flags</link> as appropriate to save you the trouble and possible
-errors from typing them yourself. Nota Bene: this does not apply when a (custom)
-toolchain is configured through e.g.:
-<link linkend="conf-cmake-toolchain">cmake-toolchain</link>
-</para></listitem>
-
-<listitem><para>
-&kdesrc-build; can checkout a specific <link linkend="using-branches">branch
-or tag</link> of a module. You can also ensure that a specific <link
-linkend="conf-revision">revision</link> is checked out of a module.
-</para></listitem>
-
-<listitem><para>
-&kdesrc-build; can automatically switch a source directory to checkout from
-a different repository, branch, or tag. This happens automatically when you
-change an option that changes what the repository &url; should be, but you must
-use the <link linkend="cmdline-src-only">--src-only</link> option to let
-&kdesrc-build; know that it is acceptable to perform the switch.
-</para></listitem>
-
-<listitem><para>
-&kdesrc-build; can <link linkend="partial-builds">checkout only portions of a
-module</link>, for those situations where you only need one program from a
-large module.
-</para></listitem>
-
-<listitem><para>
-For developers: &kdesrc-build; will <link linkend="ssh-agent-reminder">remind
-you</link> if you use git+ssh:// but <application>ssh-agent</application> is
-not running, as this will lead to repeated password requests from
-&ssh;.
-</para></listitem>
-
-<listitem><para>
-Can <link linkend="deleting-build-dir">delete the build directory</link> of a
-module after its installation to save space at the expense of future compilation
-time.
-</para></listitem>
-
-<listitem><para>
-The locations for the directories used by &kdesrc-build; are configurable (even
-per module).
-</para></listitem>
-
-<listitem><para>
-Can use &sudo;, or a different user-specified command
-to <link linkend="root-installation">install modules</link> so that
-&kdesrc-build; does not need to be run as the super user.
-</para></listitem>
-
-<listitem><para>
-&kdesrc-build; runs <link linkend="build-priority">with reduced priority</link>
-by default to allow you to still use your computer while &kdesrc-build; is
-working.
-</para></listitem>
-
-<listitem><para>
-Has support for using &kde;'s <link linkend="using-branches">tags and
-branches</link>.
-</para></listitem>
-
-<listitem><para>
-There is support for <link linkend="resuming">resuming a build</link> from a
-given module. You can even <link linkend="ignoring-modules">ignore some
-modules</link> temporarily for a given build.
-</para></listitem>
-
-<listitem><para>
-&kdesrc-build; will show the <link linkend="build-progress">progress of your
-build</link> when using &cmake;, and will always time the build
-process so you know after the fact how long it took.
-</para></listitem>
-
-<listitem><para>
-Comes built-in with a sane set of default options appropriate for building
-a base &kde; single-user installation from the anonymous source repositories.
-</para></listitem>
-
-<listitem><para>
-Tilde-expansion for your configuration options. For example, you can
-specify:
-<programlisting>qtdir ~/kdesrc/build/qt</programlisting>
-</para></listitem>
-
-<listitem><para>
-Automatically sets up a build system, with the source directory not the
-same as the build directory, in order to keep the source directory
-pristine.
-</para></listitem>
-
-<listitem><para>
-You can specify global options to apply to every module to check out, and
-you can specify options to apply to individual modules as well.
-</para></listitem>
-
-<listitem><para>
-Forced full rebuilds, by running
-&kdesrc-build; with the <option>--refresh-build</option> option.
-</para></listitem>
-
-<listitem><para>
-You can specify various environment values to be used during the build,
-including <envar>QTDIR</envar>, <envar>DO_NOT_COMPILE</envar>,
-and <envar>CXXFLAGS</envar>.
-</para></listitem>
-
-<listitem><para>
-Command logging. Logs are dated and numbered so that you always have a
-log of a script run. Also, a special symlink called latest is created to
-always point to the most recent log entry in the log directory.
-</para></listitem>
-
-</itemizedlist>
-
-</sect1>
-
-<sect1 id="kdesrc-build-logging">
-<title>&kdesrc-build;'s build logging</title>
-
-<sect2 id="logging-overview">
-<title>Logging overview</title>
-
-<para>Logging is a &kdesrc-build; feature whereby the output from every command
-that &kdesrc-build; runs is saved to a file for examination later, if
-necessary. This is done because it is often necessary to have the output of
-these programs when there is a build failure, because there are so many
-reasons why a build can fail in the first place.</para>
-
-<sect3 id="log-directory-layout">
-<title>Logging directory layout</title>
-
-<para>The logs are always stored under the log directory. The destination of
-the log directory is controlled by the <link linkend="conf-log-dir">log-dir</link>
-option, which defaults to <filename class="directory"><symbol>${source-dir}</symbol>/log</filename> (where
-<symbol>${source-dir}</symbol> is the value of the <link linkend="conf-source-dir">source-dir</link>
-option. The in rest of this section, this value will be referred to as
-<symbol>${log-dir}</symbol>).</para>
-
-<para>Under <symbol>${log-dir}</symbol>, is a set of directories, one for every
-time that &kdesrc-build; was run. Each directory is named with the date, and
-the run number. For instance, the second time that &kdesrc-build; is run on
-May 26, 2004, it would create a directory called <filename>2004-05-26-02</filename>,
-where the 2004-05-26 is for the date, and the -02 is the run number.</para>
-
-<para>For your convenience, &kdesrc-build; will also create a link to the
-logs for your latest run, called <filename class="directory">latest</filename>. So the logs for
-the most recent &kdesrc-build; run should always be under <filename class="directory"><symbol>${log-dir}</symbol>/latest</filename>.
-</para>
-
-<para>Now, each directory for a &kdesrc-build; run will itself contain a set of
-directories, one for every &kde; module that &kdesrc-build; tries to build. Also,
-a file called <filename>build-status</filename> will be contained in the directory,
-which will allow you to determine which modules built and which failed.</para>
-
-<note><para>
-If a module itself has a submodule (such as extragear/multimedia,
-playground/utils, or KDE/kdelibs), then there would actually be a matching
-layout in the log directory. For example, the logs for KDE/kdelibs after the
-last &kdesrc-build; run would be found in <filename class="directory"><symbol>${log-dir}</symbol>/latest/KDE/kdelibs</filename>,
-and not under <filename class="directory"><symbol>${log-dir}</symbol>/latest/kdelibs</filename>.
-</para></note>
-
-<para>In each module log directory, you will find a set of files for each
-operation that &kdesrc-build; performs. If &kdesrc-build; updates a module,
-you may see filenames such as <filename>git-checkout-update.log</filename> (for a
-module checkout or when updating a module
-that has already been checked out). If the <command>configure</command>
-command was run, then you would expect to see a <filename>configure.log</filename>
-in that directory.</para>
-
-<para>If an error occurred, you should be able to see an explanation of why in
-one of the files. To help you determine which file contains the error,
-&kdesrc-build; will create a link from the file containing the error (such as
-<filename>build-1.log</filename> to a file called <filename>error.log</filename>).</para>
-
-<para>The upshot to all of this is that to see why a module failed to build
-after your last &kdesrc-build;, the file you should look at first is
-<filename><symbol>${log-dir}</symbol>/latest/<replaceable>module-name</replaceable>/error.log</filename>.
-</para>
-
-<tip><para>If the file <filename>error.log</filename> is empty (especially after
-an installation), then perhaps there was no error. Some of the tools used by
-the &kde; build system will sometimes mistakenly report an error when there was
-none.</para>
-
-<para>Also, some commands will evade &kdesrc-build;'s output redirection and
-bypass the log file in certain circumstances (normally when performing the
-first &git; checkout), and the error output in that case is not in the log file
-but is instead at the &konsole; or terminal where you ran &kdesrc-build;.</para>
-</tip>
-
-</sect3>
-</sect2>
-</sect1>
-
-</chapter>
+&features;
<chapter id="kdesrc-buildrc">
<title>Configuring &kdesrc-build;</title>
More information about the kde-doc-english
mailing list