[sdk/kdesrc-build/docbook_historied_per_file] doc: Use XDG_STATE_HOME for persistent data file

Ignacy Kajdan <[email protected]>
Newsgroups gmane.comp.kde.cvs,gmane.comp.kde.doc
Message-ID <[email protected]>
Git commit 23df6e04c36ac3b92e726852e5165906bb324c8d by Ignacy Kajdan.
Committed on 21/01/2022 at 17:40.
Pushed by ashark into branch 'docbook_historied_per_file'.

Use XDG_STATE_HOME for persistent data file

Original commit: 4a2c0a8f
https://invent.kde.org/sdk/kdesrc-build/-/commit/4a2c0a8fe776490fde92bec120bfae51d9e9c982

M  +5    -3    doc/cmdline/supported-cmdline-params.docbook
M  +17   -13   doc/getting-started/before-building.docbook
M  +10   -7    doc/getting-started/configure-data.docbook
M  +26   -15   doc/kdesrc-buildrc/conf-options-table.docbook
M  +57   -7    doc/using-kdesrc-build/advanced-features.docbook

https://invent.kde.org/sdk/kdesrc-build/-/commit/23df6e04c36ac3b92e726852e5165906bb324c8d

diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook
index 25c4f8cc..75c2c452 100644
--- a/doc/cmdline/supported-cmdline-params.docbook
+++ b/doc/cmdline/supported-cmdline-params.docbook
@@ -496,9 +496,11 @@ This option was added with &kdesrc-build; 1.16. See also the
 <listitem><para>
 This interprets the next command line parameter as the file to read the
 configuration options from. The default value for this parameter is
-<filename>kdesrc-buildrc</filename> (checked in the current directory) if
-it is present, or <filename>~/.kdesrc-buildrc</filename> otherwise. See
-also <xref linkend="kdesrc-buildrc" />.
+<filename>kdesrc-buildrc</filename> (checked in the current working directory).
+If this file doesn't exist, <filename>~/.config/kdesrc-buildrc</filename>
+(<filename>$XDG_CONFIG_HOME/kdesrc-buildrc</filename>, if
+<envar>$XDG_CONFIG_HOME</envar> is set) will be used instead. See also
+<xref linkend="kdesrc-buildrc"/>.
 </para></listitem>
 </varlistentry>
 
diff --git a/doc/getting-started/before-building.docbook b/doc/getting-started/before-building.docbook
index d6920929..b4853081 100644
--- a/doc/getting-started/before-building.docbook
+++ b/doc/getting-started/before-building.docbook
@@ -151,15 +151,17 @@ without having to fully specify its path every time.</para></tip>
 <sect3 id="setup-rcfile">
 <title>Prepare the configuration file</title>
 
-<para>&kdesrc-build; uses a <link linkend="configure-data">configuration
-file</link> (located at <filename>~/.kdesrc-buildrc</filename>) to control
-which modules are built, where they are installed to, etc.</para>
+<para>&kdesrc-build; uses a <link linkend="configure-data">configuration file</link>
+to control which modules are built, where they are installed to, etc.
+This file is located at <filename>~/.config/kdesrc-buildrc</filename>
+(<filename>$XDG_CONFIG_HOME/kdesrc-buildrc</filename>, if
+<envar>$XDG_CONFIG_HOME</envar> is set).</para>
 
 <para>You can use a program included with &kdesrc-build;, called
 <application>kdesrc-build-setup</application> in order to prepare a simple
 kdesrc-build configuration. You can then edit the
-<filename>~/.kdesrc-buildrc</filename> from there to make any changes you see
-fit.</para>
+<filename>~/.config/kdesrc-buildrc</filename> configuration file to make
+any changes you see fit.</para>
 
 <para><application>kdesrc-build-setup</application> itself runs from a terminal
 (instead of using a graphical interface), just like &kdesrc-build;, so you can
@@ -169,17 +171,19 @@ use it even if you have no graphical interface available yet.</para>
 <title>Manual setup of configuration file</title>
 
 <para>You can also setup your configuration file manually, by copying the
-included sample configuration file
-<filename>kdesrc-buildrc-kf5-sample</filename> to
-<filename>~/.kdesrc-buildrc</filename> and then editing the file.  <xref
-linkend="kdesrc-buildrc"/> will be a useful reference for this, especially its
-<link linkend="conf-options-table">table of configuration options</link>.
+included sample configuration file <filename>kdesrc-buildrc-kf5-sample</filename>
+to <filename>~/.config/kdesrc-buildrc</filename> and then editing the file.
+<xref linkend="kdesrc-buildrc"/> will be a useful reference for this, especially
+its <link linkend="conf-options-table">table of configuration options</link>.
 </para>
 
 <para>&kdesrc-build; contains many recommended configuration files to support
-&kde; Frameworks 5, &plasma; 5, and other &kde; applications.  The <application>kdesrc-build-setup</application> refers to these files in the configuration file it generates, but you can also use them
-yourself.  See <xref linkend="kdesrc-buildrc-including"/> for information on how
-to use other configuration files from your own <filename>~/.kdesrc-buildrc</filename>.</para>
+&kde; Frameworks 5, &plasma; 5, and other &kde; applications. The
+<application>kdesrc-build-setup</application> refers to these files in the
+configuration file it generates, but you can also use them yourself. See
+<xref linkend="kdesrc-buildrc-including"/> for information on how to use other
+configuration files from your own <filename>kdesrc-buildrc</filename>.
+</para>
 
 <para>You can find more information about the syntax of the <link
 linkend="configure-data">configuration file</link> in <xref
diff --git a/doc/getting-started/configure-data.docbook b/doc/getting-started/configure-data.docbook
index 5643e977..4ce65d40 100644
--- a/doc/getting-started/configure-data.docbook
+++ b/doc/getting-started/configure-data.docbook
@@ -2,15 +2,18 @@
 <title>Setting the Configuration Data</title>
 
 <para>
-To use &kdesrc-build;, you should have a file in your home directory called
-<filename>.kdesrc-buildrc</filename>, which sets the general options and sets the modules
-you would like to download and build.
+To use &kdesrc-build;, you should have a file in your <filename>~/.config</filename>
+(or in <envar>$XDG_CONFIG_HOME</envar>, if set) directory called
+<filename>kdesrc-buildrc</filename>, which sets the general options and
+specifies the modules you would like to download and build.
 </para>
 
-<note><para>It is possible to use different configuration files for &kdesrc-build;,
-which is described in <xref linkend="kdesrc-buildrc" />. If you need to use
-multiple configurations, please see that section. Here, we will assume the
-configuration is stored in <filename>~/.kdesrc-buildrc</filename>.</para></note>
+<note><para>
+It is possible to use different configuration files for &kdesrc-build;, which is
+described in <xref linkend="kdesrc-buildrc" />. If you need to use multiple
+configurations, please see that section. Here, we will assume that the
+configuration is stored in <filename>~/.config/kdesrc-buildrc</filename>.
+</para></note>
 
 <para>
 The easiest way to proceed is to use the
diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook b/doc/kdesrc-buildrc/conf-options-table.docbook
index 64230a63..379cfa80 100644
--- a/doc/kdesrc-buildrc/conf-options-table.docbook
+++ b/doc/kdesrc-buildrc/conf-options-table.docbook
@@ -214,9 +214,16 @@ change at all.</para></important>
 <row id="conf-checkout-only">
 <entry>checkout-only</entry>
 <entry>Module setting overrides global</entry>
-<entry><para>This option was removed in January 2022. It used to control
-the ability to checkout subsets of a module from a Subversion repository.</para>
-</entry>
+<entry><para>Set this option to checkout &subversion; sources piece by piece. The
+value for this option should be a space-separated list of directories to
+checkout.  Although this option overrides the global option, be aware that
+setting this as a global option makes no sense.
+</para>
+
+<para>Note that this setting has no effect on &git; modules due to the
+operation of the &git; source control system.</para>
+
+<para>See <xref linkend="checking-out-parts"/> for an example.</para></entry>
 </row>
 
 <row id="conf-cmake-generator">
@@ -405,13 +412,13 @@ for every module. You can disable this check by setting
 <entry><para>Use this option to select a specific set of directories not to be built in a
 module (instead of all of them). The directories not to build should be space-separated.</para>
 
-<para>Note that the sources to the programs will still be downloaded.</para>
+<para>Note that the sources to the programs will still be downloaded. You can use
+the <link linkend="conf-checkout-only">checkout-only</link>
+directive to choose directories that you want to check out.</para>
 
-<para>For example, to disable building the <literal>codeeditor</literal> and <literal>minimaltest</literal>
-directories of the <literal>syntaxhighlighting</literal> framework, you
-would add <userinput>do-not-compile codeeditor minimaltest</userinput>
-compiling, you would add "do-not-compile juk kscd" to your syntaxhighlighting
-options.</para>
+<para>For example, to hold &juk; and &kscd; in the kdemultimedia module from
+compiling, you would add "do-not-compile juk kscd" to your kdemultimedia
+settings.</para>
 
 <para>See <xref linkend="not-compiling"/> for an example.</para>
 </entry>
@@ -1025,12 +1032,16 @@ cannot figure out what you mean using <link linkend="conf-branch">branch</link>.
 <row id="conf-persistent-data-file">
 <entry>persistent-data-file</entry>
 <entry>Cannot be overridden</entry>
-<entry><para>Use this option to change where &kdesrc-build; stores its persistent
-data. The default is to store this data in a file called
-<filename>.kdesrc-build-data</filename> placed in the same directory as the
-configuration file in use. If you have multiple available configurations in the
-same directory you may want to manually set this option so that the different
-configurations do not end up with conflicting persistent data.</para>
+<entry><para>Use this option to change where &kdesrc-build; stores its
+persistent data. The default is to store this data in a file called
+<filename>.kdesrc-build-data</filename>, placed in the same directory as the
+configuration file in use. If the global configuration file is in use, it will
+be saved to <filename>~/.local/state/kdesrc-build-data</filename>
+(<filename>$XDG_STATE_HOME/kdesrc-build-data</filename>, if
+<envar>$XDG_STATE_HOME</envar> is set). If you have multiple available
+configurations in the same directory, you may want to manually set this option,
+so that different configurations do not end up with conflicting persistent data.
+</para>
 
 <para>This option was added with &kdesrc-build; 1.15.</para>
 </entry>
diff --git a/doc/using-kdesrc-build/advanced-features.docbook b/doc/using-kdesrc-build/advanced-features.docbook
index 6c41cc2e..45e73a44 100644
--- a/doc/using-kdesrc-build/advanced-features.docbook
+++ b/doc/using-kdesrc-build/advanced-features.docbook
@@ -9,19 +9,69 @@ has features to make this easy. There are several complementing ways to
 do this.
 </para>
 
+<sect3 id="checking-out-parts">
+<title>Checking out portions of a module</title>
+
+<para>This is perhaps the best way to do this. When it works, it will save you
+download time and disk space. What happens is that &kdesrc-build; will download
+only the parts of a module that you specify. This is done using the &checkout-only;
+option for a module, which will specify a list of directories to download.
+</para>
+
+<tip><para>
+If you do not already know what to download from a module, it may be a good idea
+to browse the &subversion; layout for a module first, using
+<ulink url="https://websvn.kde.org/branches/KDE/4.6/">WebSVN</ulink>. <!--FIXME outdated-->
+</para></tip>
+
+<informalexample>
+<para>To only grab &kuser; and <application>KSystemLog</application> from
+kdeadmin, you could use &checkout-only; like this:</para>
+
+<screen>
+module <replaceable>kdeadmin</replaceable>
+  &checkout-only; <replaceable>kuser ksystemlog</replaceable>
+end module
+</screen>
+
+</informalexample>
+
+<important><para>The directories will be built in the order they are listed
+in the option. If one of the directories needs something else from the module
+to compile, then you need to make sure they are both in the &checkout-only;
+line, and that the required dependency goes before the directory that needs it.</para>
+
+<para>Also, sometimes an application may need other directories and it is hard
+to figure out what they are, which may require some trial and error of constantly
+adding directories to the option to figure out. This option depends on support
+from the build system of the module, so it is only useful for modules that are
+collections of individual applications.</para>
+</important>
+
+<para>One final note to make about this option: If you change the value of this
+option, you should use <userinput><command>kdesrc-build</command>
+<option>&cmd-refresh-build;</option> <option><replaceable>module</replaceable></option></userinput>
+in order to ensure that the module is reconfigured properly. In addition,
+&kdesrc-build; will never remove existing files if you take away the number of
+directories from your &checkout-only; option, or add the option to a module that
+has already been checked out.</para>
+
+</sect3>
+
 <sect3 id="not-compiling">
 <title>Removing directories from a build</title>
-<para>It is possible to download an entire repository
-but have the build system leave out a few directories when it does
-the build. This requires that the module uses &cmake; and that the
-module's build system allows the directory to remove to be
-optional.
+<para>Instead of restricting what is downloaded, it is possible to download
+everything but have the build system leave out a few directories when it does
+the build. This may be useful if one directory always breaks and is
+unnecessary to the rest of the module.
 </para>
 
-<para>This is controlled with the &do-not-compile; option.</para>
+<para>This is controlled with the &do-not-compile; option. It works similar
+to the &checkout-only; option just described, in that it is simply a list of
+directories that should not be compiled.</para>
 
 <important><para>
-This option requires at least that the
+Also like &checkout-only;, this option requires at least that the
 build system for the module is reconfigured after changing
 it. This is done using the <userinput><command>kdesrc-build</command>
 <option>&cmd-reconfigure;</option>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.